10 'NLQ mode for non NLQ printers
20 'By Simon Knights
30 'Amstrad Action March 1989
40 'Redefine problem characters
50 SYMBOL AFTER 44
60 SYMBOL 95,0,0,0,0,0,0,255,0
70 SYMBOL 103,0,0,&X3E,&X66,&X3E,&X6,&XFC,0
80 SYMBOL 106,&X2,&XE,&X6,&X66,&X66,&X3C,0
90 SYMBOL 112,0,0,&XDC,&X66,&X7C,&X60,&XF0,0
100 SYMBOL 113,0,0,&X76,&XCC,&X7C,&XC,&X1E,0
110 SYMBOL 121,0,0,&X66,&X66,&X3E,&X6,&X7C,0
120 SYMBOL 44,0,0,0,0,&X18,&X18,&X30,0
130 SYMBOL 59,0,&X18,&X18,0,&X18,&X18,&X30,0
150 CLS:MODE 2:PRINT "Hello and welcome to N/NLQ.":INPUT "Do you wish to use the 1 or 2 pass print (1/2)";pass:IF pass<>1 AND pass<>2 THEN GOTO 150 ELSE pass=pass-1
155 ON ERROR GOTO 2000
160 INPUT"Please enter filename ";a$
170 OPENIN a$
180 LINE INPUT #9,a$:CLS:PRINT a$:'print one line of text
185 FOR flag=0 TO pass
187 FOR a=1 TO centre:PRINT #8," ";:NEXT
190 PRINT #8,CHR$(27);"Z";CHR$(flag);CHR$(5);
195 IF flag=1 THEN PRINT #8,CHR$(0);
196 'Output line of text to printer
200 FOR x=0 TO 639
210 MOVE x,385
220 CALL &B000
230 NEXT x
250 IF flag=0 THEN PRINT #8,CHR$(13);
270 NEXT flag
275 PRINT #8
280 GOTO 180
999 'Poke M/Code in
1000 FOR a=&B000 TO &B000+46:READ b$:POKE a,VAL("&"+b$):NEXT
1010 RETURN
2000 'Error routine
2010 'Picks up EOF
2020 CLOSEIN
2030 PRINT "That's all folks":INPUT "Unless you want to NNLQ another document (Y/N)",a$
2040 IF LOWER$(a$)="y" THEN GOTO 150
2050 PRINT"O.K. then, abandon me to lie unused on some sector in a magnetic wasteland of a disc!"
2060 END
2999 'Data for M/Code
3000 DATA 3E,00,06,07,11,00,00,C5
3010 DATA F5,21,02,00,CD,F3,BB,FE
3020 DATA 00,20,11,F1,CB,3F,C1,10
3030 DATA EB,CD,2B,BD,30,0B,CD,2B
3040 DATA BD,30,08,C9,F1,CB,FF,18
3050 DATA EB,18,EE,18,F1,00,00,00