' *** FILELOAD.LST *** 2nd GFA-Manual, page 11-22 > PROCEDURE file_load(file$,VAR array|(),adr%) ' ' *** Load file$ into byte-array ' *** Return address of loaded file in adr% (0 if loading not succesful) ' *** Procedure refuses to load if less than 2000 bytes would remain free ' *** WARNING: after an ERASE adr% is not correct anymore! ' ' *** Procedure: Program_exit ' LOCAL bytes%,free%,m$,k IF EXIST(file$) bytes%={FGETDTA()+26} ! file-length free%=FRE()-2000 ! free RAM (leave at least 2000 bytes) IF free%>bytes% IF DIM?(array|())>0 ERASE array|() ENDIF DIM array|(PRED(bytes%)) ! byte-array for file adr%=V:array|(0) BLOAD file$,adr% ! load file here ELSE m$=" *** Error ***|Not enough memory |available for loading |" m$=m$+"file "+RIGHT$(file$,LEN(file$)-RINSTR(file$,"\")) ALERT 3,m$,1,"Continue|Quit",k IF k=1 adr%=0 ELSE @program_exit ENDIF ENDIF ELSE m$=" *** Error ***| |File "+RIGHT$(file$,LEN(file$)-RINSTR(file$,"\")) m$=m$+"|not found" ALERT 3,m$,1,"Continue|Quit",k IF k=1 adr%=0 ELSE @program_exit ENDIF ENDIF RETURN ' ********* '