REM > SaveArray DIM array(9,9,9,9) :array(9,9,9,9)=PI :REM Sample real array DIM array%(9,9,9,9):array%(9,9,9,9)=&12345678 :REM Sample integer array addrof%=FNAddrOf_ARM REM Save array CALL addrof%,addr%,array() :PROCarray_Save("testfile1",addr%) CALL addrof%,addr%,array%():PROCarray_Save("testfile2",addr%) REM Load array CALL addrof%,addr%,array() :PROCarray_Load("testfile1",addr%) CALL addrof%,addr%,array%():PROCarray_Load("testfile2",addr%) END DEFPROCarray_Save(file$, parr%):LOCAL write%:write%=TRUE DEFPROCarray_Load(file$, parr%):LOCAL write% LOCAL temp%, esize%, asize% : temp%=parr%-5:REPEAT:temp%=temp%+1:UNTIL ?temp%=0 IF temp%?-1<>ASC"(" THEN ERROR 6,"Type mismatch: not an array" : CASE temp%?-2 OF WHEN ASC"%":esize%=4 WHEN ASC"$":ERROR 6,"Type mismatch: strings not supported" OTHERWISE :esize%=5 ENDCASE : temp%=!parr%:REPEAT:temp%=temp%+4:UNTIL temp%!-4=0 : IF write% THEN asize%=!temp%*esize% + temp%-parr% OSCLI "Save "+file$+" "+STR$~!parr%+" +"+STR$~asize% OSCLI "SetType "+file$+" Data" ELSE OSCLI "Load "+file$+" "+STR$~!parr% ENDIF ENDPROC DEFFNAddrOf_ARM:DIM A% 15 [OPT2:LDR R0,[R9,#8]:LDR R1,[R9]:STR R1,[R0]:MOV PC,R14:]:=A%