10
20
30 :
40
50
60 :
70 :
80
90
100
110
120 DEFPROCBBC_WrStr(O%,A$):LOCAL L%:L%=LENA$:data%?0=0:data%?1=L%
130 IF L%:FOR A%=2 TO L%+1:data%?A%=ASCMID$(A$,L%-A%+2,1):NEXT
140 PROCgbpb(2,O%,data%,L%+2,0):ENDPROC
150 :
160 :
170
180
190
200
210 DEFPROCBBC_WrInt(O%,I%)
220 data%!4=I%:data%?3=data%?5:data%?2=data%?6:data%?1=data%?7:data%?0=&40
230 PROCgbpb(2,O%,data%,5,0):ENDPROC
240 :
250 :
260
270
280
290
300 DEFPROCBBC_WrReal(O%,A)
310 IF FALSE THEN
320 PRINT#O%,A:ENDPROC
330 ENDIF
340 ?data%=&FF:|(data%+1)=A:PROCgbpb(2,O%,data%,6,0):ENDPROC
350 :
360 :
370
380
390
400
410 DEFFNBBC_Rd(I%):LOCAL L%,A$,A:A%=BGET#I%
420 IF A%=0:L%=BGET#I%:IF L%=0:=""
430 IF A%=0:PROCgbpb(4,I%,data%,L%,0):L%=L%-1:REPEATA$=A$+CHR$data%?L%:L%=L%-1:UNTILL%<0:=A$
440 IF A%=&40 OR A%=1:PROCgbpb(4,I%,data%,4,0):data%?4=data%?2:data%?5=data%?1:data%?6=data%?0:=data%!3
450 IF FALSE THEN
460 PTR#I%=PTR#I%-1:INPUT#I%,A:=A
470 ENDIF
480 PROCgbpb(4,I%,data%,5,0):=|data%