For example, if you wish to send 1632 columns of graphics data, nl should be 96 and n2 should be 6 because 1632 = 96 + (6 x 256).

The LQ will interpret the number of bytes determined by nl and n2 as graphics data, no matter what codes they are. This means that you must be sure to supply enough bytes of graphics data or the LQ will stop and wait for more data and will seem to be locked. If, on the other hand, you supply too much graphics data, the excess will be interpreted and printed as regular text.

A simple graphics program

This first program is just a simple example to show you how the graphics command, column reservation numbers, and data can be used in a BASIC program. Type in and run the following program; be especially careful to include both semicolons. The program produces the printout you see below it.

10 WIDTH "LPT1:",255

20 LPRINT CHR$(27)"*"CHR$(32)CHR$(40)CHR$(B)i 30 FOR X=1 TO 120

40 LPRINT CHR$(170);

50 NEXT X

Line 20 selects single-density 24-pin graphics (mode 32) and also reserves 40 columns for graphics. Since 24-pin graphics requires three bytes of data for each column, line 30 begins a loop to supply 120 bytes of data. Line 40 contains the number 170, which produces the first pin pattern shown in the section on pin labels, and line 50 finishes the loop.

Using hand-calculated data to print graphics

With what you know now, you can use the simplest application of graphics - using hand-calculated data to print graphic images. While this method is the most tedious, it helps you understand dot graphics. Also, it is useful for small graphic elements that are used many times.