following test program lets you check to see what codes, if any, are problems for your software. This program is in BASIC; use an equivalent program for another programming language.

l0 FOR X=0 TO 255

20 LPRINT CHR$(X);

30 NEXT X

Put the printer in hex dump mode and then RUN the program. Remember to press the ON LINE button to make the LQ print the final line. Then compare your printout with the list of hex codes in order in Appendix B. If any are skipped or repeated, you will know that your computer system changes some codes before it sends them to the printer.

For example, in the lines below, which are the first two lines of the printout of the test program run with IBM PC BASIC release 2.0, you can see that in this case BASIC adds hex 0A, which is the code for line feed, after hex 0D, the code for a carriage return. You will also notice that the program does not send hex 1A (decimal 26). Both of these characteristics are discussed in the next section.

00

01

02

03

04

05

06

07

08

09

0 A

0B

0C

0 D

0 A

0 E ...............................................

0F

10

11

12

13

14

15

16

17

18

19

1B

1C

1D

1E

1F ................................................

The hex dumping capability can help you debug a program quickly. Appendix B will help you translate the hex codes to ASCII equiva- lents.

IBM PC BASIC Solutions

There are three problems in using the IBM Personal Computer BASIC to drive a printer. First, the IBM PC BASIC inserts a carriage- return/line feed (CR—LF) after each 80 characters you send it. Sec- ond, it adds an LF to each CR in an LPRINT statement. Third, release 2.0 of PC BASIC will not send hex 1A (decimal 26).

Here is the way to adjust the width when it is the only problem. Tell the computer that the print line is wider than 80 characters with this WIDTH statement:

WIDTH "LPT1:",255

D-6