Readers who have programmed in BASIC with the OLIGER printer driver use the LET/P=0 command to send data to their large printer. This command works fine for LPRINTing text and messages but not so good for printer codes. When a programmer wishes to use printer codes the accepted method is to go direct through port 127 by use of the OUT command. For reference see the OLIGER print driver manual and parts of Bill Jones‘s Smart Text program plus UP-DATE (Printer Programming, 1988)
There is a way that follows conventional programming methods such as LPRINT CHR$ n where “n” is a character code number, or using a series of CHR$s to make up a printer code such as LPRINT CHR$ 27; CHR$ 52 (EPSON Italics ON). See your printer manual for codes used by your printer. Probably examples are also displayed in your manual.
According to John Oliger the procedure for using LPRINT CHR$ n is as follows: start with LET/P=0 and then make these 2 pokes, 23300,60 and 23001,3 in the immediate mode. Then program accordingly, possibly try examples from your printer manual. When RUN the programs should perform properly. This change will not permit LLIST to be used so just use LET/P=0 and make a LLIST. Make the pokes again to set up the program to RUN. What happens is that these two pokes turn off the BASIC TOKEN crunching.
If the reader’s printer provides a HEX dump capability then a simple test of a printer driver is easily made. With LET/P=0, enter this one line program:
10 FOR N=0 TO 255: LPRINT CHR$ N;:NEXT N
Set up the printer for HEX dump (see manual) and RUN. My printer puts 20 HEX numbers to a line, from 00 to FF, many incorrect. If the last line does not print just press the ON LINE button to empty the printer buffer. Now run the same test after the 2 pokes have been made. Now I get a perfect 00 to FF print-out. This shows that the printer driver will correctly send all code numbers to the printer.
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.