; PRINTIO (LISTING 8)
PROC Ppt(INT ARRAY v)
PrintD(2,"("):PrintID(2,v(0))
PrintD(2," "):PrintID(2,v(1))
PrintD(2," "):PrintID(2,v(2))
PrintD(2,":"):PrintID(2,v(3))
PrintD(2,") "):RETURN
PROC Prnt():BYTE i,j,k:CARD n,t
BYTE ARRAY a(13),st=[3 27 51 16]
,pre=[4 27 75 192 0],s,d(193)
Position(1,16):Print(" Péã Dáôá ")
WHILE key=255 DO OD k=key:key=255
IF k<>10 AND k<>58 THEN Position(1,24)
Put('P):Print(abort):RETURN
FI:t=Error:Error=MyErr:err=0
Close(2):Open(2,"P:",8,0)
IF err>0 THEN Close(2):Error=t:RETURN FI
b(0)=12:SCopy(a,b):SCopyS(a,fln,3,14)
PrintDE(2," "):PrintDE(2,a)
IF err>0 THEN Close(2):Error=t:RETURN FI
IF k=10 THEN st(3)=16:PrintDE(2,st)
s=sa1:d(0)=192
FOR i=0 TO 39 DO n=7640+i
FOR j=1 TO 192 DO d(j)=s(n):n==-40 OD
PrintD(2,pre):PrintDE(2,d)
OD
ELSE st(3)=20:PrintDE(2,st)
PrintD(2,"eye="):Ppt(eye)
PrintD(2," focus="):Ppt(foc)
PrintDE(2," "):i=0:j=0:n=P+10
DO i==+1:IF i>P(0) THEN EXIT FI
j==+1:n==+8:Ppt(n)
IF j>2 THEN j=0:PutDE(2) FI
OD PrintDE(2," ")
FI Position(1,16):Print(" ÐÒÉÎÔÅÄ ")
Error=t:Close(2):RETURN