10
20
30
40
50
60 :
70 DIM ctrl% 31:X%=ctrl%:Y%=X%DIV256
80 END
90 :
100
110 :
120 DEFPROCmem_rd(mem%,io%,rom%,num%)
130 IFFNfx(130,0)=&FFFF:LOCALY%,!&F6:Y%=rom%:FORA%=0TOnum%-1:!&F6=io%+A%:mem%?A%=USR&FFB9:NEXT:ENDPROC
140 PROCmem_wr(0,0,rom%,0):IFnum%=0:ENDPROC
150 A%=5:REPEAT:!X%=io%:CALL&FFF1:?mem%=X%?4:io%=io%+1:mem%=mem%+1:num%=num%-1
160 UNTILnum%<1:ENDPROC
170 :
180 DEFPROCmem_wr(mem%,io%,rom%,num%)
190 IFFNfx(130,0)=&FFFF:FORA%=0TOnum%-1:io%?A%=mem%?A%:NEXT:ENDPROC
200 IFnum%=0:X%?4=rom%:PROCmem_wr(X%+4,&F4,0,1):mem%=X%+4:io%=&FE30:num%=1
210 A%=6:REPEAT:!X%=io%:X%?4=?mem%:CALL&FFF1:io%=io%+1:mem%=mem%+1:num%=num%-1
220 UNTILnum%<1:ENDPROC
230 :
240 DEFPROCio_call(io%,A$)
250 !X%=&200:A%=6:REPEAT:X%?4=io%:CALL&FFF1:io%=io%DIV256:?X%=?X%+1:UNTIL?X%=2
260 OSCLI"LINE "+A$:ENDPROC
270 :
280 DEFFNio_call(io%,B%,C%)
290 !X%=&200:A%=6:REPEAT:X%?4=io%:CALL&FFF1:io%=io%DIV256:?X%=?X%+1:UNTIL?X%=2
300 =FNfx(136,B%+256*,C%)
310 :
320 DEFFNfx(A%,X%):LOCALY%:=((USR&FFF4)AND&FFFF00)DIV256
330 :