; 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›››