10 REM Sideways printing program for PCW8256. (C) John Rawnsley 1987. 20 REM For 11 inch continuous listing paper. Uses screen characters. 30 MEMORY &HEFFF:DEFINT a-z:OPTION RUN:OPTION NOT TAB:DIM l$(40):WIDTH LPRINT 255 40 GOSUB 270:copy=&HF500:CALL copy:e$=CHR$(27):t$=CHR$(9):tab$=STRING$(8,32) 50 type$(1)="Low density":d$(1)=e$+"K"+CHR$(224)+CHR$(1) 60 type$(2)="High density":d$(2)=e$+"L"+CHR$(192)+CHR$(3) 70 LPRINT e$"@"e$"A"CHR$(8)e$"C"CHR$(1)e$"c"e$'9'e$"Q"chr$(81)e$"d" 80 LINE INPUT "File to print (must be ASCII): ",n$:IF n$="" THEN END 90 IF FIND$(n$)="" THEN PRINT "File not found":END 100 PRINT:PRINT "Low or high density printing? (L/H): "; 110 y=(INSTR("0LlHh",INKEY$)\2):IF y=0 THEN 110 ELSE PRINT type$(y):PRINT:PRINT 120 OPEN "I",1,n$:page=1 130 WHILE i$="" AND NOT EOF(1):col=1:FOR i=1 TO 40:l$(i)="":NEXT 140 i=1:WHILE i<41 AND NOT EOF(1):LINE INPUT #1,l$ 150 t=INSTR(l$,t$):l=LEN(l$):IF t>0 THEN l$=LEFT$(l$,t-1)+tab$+RIGHT$(l$,l-t):GOTO 150 160 l$(i)=l$:m=MAX(m,l):i=i+1:WEND 170 FOR i=1 TO 40:l$(i)=l$(i)+STRING$(m+1-LEN(l$(i))," "):NEXT 180 PRINT "Page";page:PRINT 190 WHILE i$="" AND col<=m:LPRINT d$(y); 200 FOR i=0 TO 39:a=ASC(MID$(l$(40-i),col,1)):IF a<32 OR a>126 THEN a=32 210 addr=&HEF00+8*a:ch$=STRING$(4*y,0) 220 FOR k=0 TO 7:ch$=STRING$(y,PEEK(addr+k))+ch$:NEXT 230 LPRINT ch$;:NEXT 240 LPRINT:PRINT e$"AColumn";col:col=col+1:i$=INKEY$:WEND 250 feed=105-(m MOD 105):FOR i=1 TO feed:LPRINT:NEXT:page=page+1:WEND 260 CLOSE:LPRINT e$+"@":END 270 RESTORE 280:FOR i=0 TO 35:READ a$:POKE &HF500+i,VAL("&H"+a$):NEXT:RETURN 280 DATA ED,4B,01,00,21,57,00,09,22,21,F5,01,14,F5,CD,20 290 DATA F5,E9,00,C9,21,00,B9,11,00,F0,01,00,03,ED,B0,C9 300 DATA C3,00,00,C9,00,00,00,00,00,00,00,00,00,00,00,00 ,F5,CD,20 290 DATA F5,E9,00,C9,21