10
20
30
40
50 :
60
70
80 :
90
100
110 DEFFNfile(A$,A%):$name%=A$:?X%=name%:X%?1=name%DIV256:=(USR&FFDD)AND&FF
120 :
130
140
150 DEFPROCgbpb(A%,chn%,addr%,num%,ptr%):?X%=chn%:X%!1=addr%:X%!5=num%:X%!9=ptr%:CALL&FFD1:ENDPROC
160 :
170
180
190 DEFFNgbpb(A%):X%!1=name%:CALL&FFD1:A%=name%+((1+?name%)AND((A%AND-2)=6)):A%?(1+?A%)=13:=$(A%+1)
200 :
210
220
230 DEFFNgbpb8(ptr%):X%!1=name%:X%!5=1:X%!9=ptr%:A%=8:CALL&FFD1:IFX%!5=1:=""
240 A%=name%+1:A%!(A%?-1)=&D20:A%?(INSTR($A%," ")-1)=13:=$A%
250 :
260
270
280 DEFFNgbpb11(ptr%)
290 IFos%=6:IFHIMEM>&FFFF:SYS"OS_GBPB",11,"",name%,1,ptr%,79TO,,,X%!5,X%!9:IFX%!5=0:=""
300 IFos%=6:IFHIMEM>&FFFF:SYS"OS_WriteN",name%+29 TO $(name%+29):=$(name%+29)
310 X%?0=0:X%!1=name%:X%!5=1:X%!9=ptr%:A%=11:CALL&FFD1:IFX%!5=0:=""
320 name%!39=&D00:A%=INSTR($(name%+29),CHR$0):name%?(A%+28)=13:=$(name%+29)
330 :
340
350
360 DEFFNargs(A%,Y%,ptr%):LOCALX%,E%:IF?(TOP-3)=0:E%=Y%:Y%=0
370 IFHIMEM>&FFFF:SYS"OS_Args",A%,Y%,ptr%TO,,ptr%:=ptr%
380 LOCAL!&70:X%=&70:!X%=ptr%:CALL&FFDA:=!X%
390 :
400
410
420 DEFFNargsA(A%):IFHIMEM>&FFFF:SYS"OS_Args",A%TOA%:=A%
430 LOCALX%,Y%,E%,!&70:X%=&70:=(USR&FFDA)AND&FF
440 :
450
460
470 DEFFNfs:LOCALA%,Y%,E%:=(USR&FFDA)AND&FF
480 :