10
20
30 :
40 A%=PAGE:REPEAT
50 IFA%?1<>&FF:PRINTFNd(A%?2+256*A%?1,5);FNDetokenise($(A%+4)):A%=A%+A%?3
60 UNTILA%?1=&FF
70 END
80 :
90 DEFFNd(A%,N%)=RIGHT$(" "+STR$A%,N%)
100 :
110 GOTO 130
120 :
130 DEFFNDetokenise(A$):LOCAL A%,B%,C%,D%
140 tok%=tok%:IFtok%=0:tok%=&8000:REPEATtok%=tok%+1:UNTIL!tok%=&80444E41
150 B%=0:A%=0:REPEAT:A%=A%+1:C%=ASCMID$(A$,A%,1)
160 IFC%=34:B%=B%EOR1:VDU34:UNTILA%>=LENA$:=""
170 IFB%:VDUC%:UNTILA%>=LENA$:=""
180 IFC%=&F4:B%=&80
190 IFC%<128:VDUC%:UNTILA%>=LENA$:=""
200 IFC%=141:B%=ASCMID$(A$,A%+1,1):C%=ASCMID$(A$,A%+2,1):D%=ASCMID$(A$,A%+3,1):PRINT;(C%AND63)+256*(D%AND63)+4*((B%AND&30)EOR&10)+&1000*((B%AND&C0)EOR&40);:B%=0:A%=A%+3:UNTILA%>=LENA$:=""
210 D%=tok%:REPEAT:B%=D%:REPEAT:D%=D%+1:UNTIL?D%>127:D%=D%+2
220 UNTILD%?-2=C%:REPEATVDU?B%:B%=B%+1:UNTIL?B%>127
240 B%=0:UNTILA%>=LENA$:=""