An Introduction to Dot Matrix Printing

There are several code numbers already reserved for special things. If we look closely at the printouts from this chapter, we can see that the spacing when the following numbers are used may not be what we have anticipated:

8 - reserved for (DELETE PREVIOUS CHARACTER)

9 - reserved for (TAB)

10 - reserved for Line Feed

12 - reserved for Form Feed

13 - reserved for Carriage Return

There are no nice clean ways around this problem -just very messy ones. (See Appendices D and F for ways to POKE these codes to the printer). Best we restrict our selection to the remaining numbers.

Underlining

Many computers do not have the capability of sending an ASCII character to temporarily suppress the Line Feed when a Carriage Return is sent. An Apple running BASIC with the Epson printer card falls in this category. We cannot do underlining by simply sending CHR$ (13), a simple CR, then sending underlining dashes in the right places.

TRS-80 zealots can refer to Chapter 2, open up the printer, and move the auto line feed wire to the red terminal. This means absolutely no line feeds unless we send a CHR$ (10) each time one is needed. This “technique” does permit underlining, but for all practical purposes, it’s impractical!

Underlining should not be confused with just moving down one line then printing a series of dashes. True underlining requires that we first print the line to which we want to add whole or partial underlining. We then Return the Carriage (print head), suppress the LF so the paper does not advance, and print the underline character ASCII 95. This is called “overstriking.” The underline character is printed in position 7 of our 12 x 6 character dot matrix. Users with LF suppression can also do such things as slashing zeros, sevens, etc.

There is another way to suppress the LF using the vertical spacing tricks we just learned. The method to be demonstrated is practical for such things as report headings or special emphasis, where the result is deemed worthy of the extra programming effort.

37