›; Horizontal screen dump for EPSON printer›; prepared on 30 Apr 84 by Jim Watson›; Use par of Clinton Parker's PLOT›; routine from ANALOG No.18, Apr84››››BYTE row=[40],y=[1],x=[1],j,k,› Cvalue,LTR,INVFLG›››BYTE ARRAY SCRNstring(420)›BYTE ARRAY div8(320)››BYTE POINTER pos››CARD ARRAY Line(192)››CARD col=[0],i,l,› ctr,start=[1],end=[59500],› Screen=88,Offset,Charset››BYTE FUNC ASCtoGR8(BYTE Ltr)› IF Ltr>127 THEN› Ltr==-128 › FI›› IF Ltr<32 THEN› RETURN(Ltr+64)› ELSEIF Ltr<97 THEN› RETURN(Ltr-32)› FI›RETURN (Ltr)››PROC Gr8Txt()›› y=125 x=20› Offset=Screen+y*40+x› INVFLG=('±)› LTR=ASCtoGR8(INVFLG)› Charset=57344+Ltr*8›› FOR j=0 TO 7 DO› Cvalue=Peek(charset+j)› IF INVFLG>127 THEN› Cvalue== ! 255 › FI› PokeC(Offset+j*40,Cvalue)› OD›RETURN››PROC Frame()› Plot (2,2) DrawTo (318,2)› DrawTo (318,190)› Drawto (2,190)› Drawto (2,2)› Plot (4,4) Drawto (316,4)› Drawto (316,188)› Drawto (4,188)› Drawto (4,4)›RETURN››PROC Isometric()› PLOT (12+col,18+row) DRAWTO(39+col,3+row)› DRAWTO(78+col,27+row) DRAWTO(51+col,42+row)› DRAWTO(12+col,18+row)› PLOT (78+col,27+row) DRAWTO(78+col,57+row)› DRAWTO(51+col,72+row) DRAWTO(12+col,48+row)› DRAWTO(12+col,18+row)› PLOT (51+Col,42+Row) DRAWTO(51+col,72+row)›RETURN››PROC Cabinet()› PLOT (21+col,30+row) DRAWTO(39+col,18+row)› DRAWTO(69+col,18+row) DRAWTO(51+col,30+row)› DRAWTO(21+col,30+row)› PLOT (69+col,18+row) DRAWTO(69+col,48+row)› DRAWTO(51+col,60+row) DRAWTO(21+col,60+row)› DRAWTO(21+col,30+row)› PLOT (51+Col,30+Row) DRAWTO(51+col,60+row)›RETURN››PROC TwoPoint()› PLOT (15+col,18+row) DRAWTO(37+col,13+row)› DRAWTO(75+col,24+row) DRAWTO(51+col,36+row)› DRAWTO(15+col,18+row)› PLOT (75+col,24+row) DRAWTO(75+col,50+row)› DRAWTO(51+col,66+row) DRAWTO(15+col,36+row)› DRAWTO(15+col,18+row)› PLOT (51+Col,36+Row) DRAWTO(51+col,66+row)›RETURN››PROC Dumpinit()› BYTE POINTER LineLoc›› LineLoc=Screen› FOR i=0 TO 191 DO› Line(i)=LineLoc› LineLoc==+40› OD› FOR i=0 TO 319 DO› div8(i)=i/8› OD›RETURN››PROC Makestring(BYTE vertpos)› BYTE vline› BYTE ARRAY TEMP(6)›› FOR i=0 TO 319 DO› k=(i&7)› vline==LSH 9› FOR j=0 TO 5 DO› pos=line(j+vertpos)+div8(i)› Temp(j)=pos^› Temp(j)==LSH k› Temp(j)==RSH 7› vline==% Temp(j)› IF j<5 THEN› vline==LSH 1› FI› OD› SCRNstring(50+i)=vline› OD›RETURN››PROC SCRNdmp()› BYTE ctr,t,vertpos=[0]›› FOR i=0 TO 420 DO› SCRNstring(i)='› OD›› Dumpinit()› Close(3) OPEN(3,"P:",8)› PrintDE(3,"A")› FOR ctr=0 TO 31 DO› MakeSTRING(vertpos)› PrintD(3,"K¤")› FOR i=1 to 420 DO› PutD(3,SCRNstring(i))› OD› PutDE(3)› vertpos==+6› OD› PrintDE(3,"@") CLOSE(3)›RETURN››PROC Main()› GRAPHICS(24)› SetColor(2,8,0) SetColor(4,3,0)› color=1›› Frame()› col=10 TwoPoint()› col=115 Isometric()› col=220 Cabinet()› Gr8Txt()› FOR ctr=start TO end DO› ;****** null statement› OD› SCRNdmp()›RETURN› ›