2 ! ********************************************************************** 3 ! Program SUBRUT1.BAS Utg}va 1.1 1983-07-21 4 ! av Bo Kullmar 5 ! Ins{nd av Bo Kullmar 6 ! F|r ABC800M ABC800C ABC802 ABC806 8 ! Testad p} ABC806 9 ! Subrutin som skall l{nas in med chain fr}n VIRTUELL.BAS medan huvud- 10 ! programmet finns kvar i minnet. Detta {r ett exempel p} hur man kan 11 ! g|ra. Detta program m}ste lagras i BAC-format, annars fungerar det inte! 12 ! ********************************************************************** 60 INTEGER : EXTEND : OPTION BASE 0 1000 COMMON Bofa,Eofa,Top 1010 ; CHR$(12) 1020 Z=FNList 1030 ; : ; 1040 ; 'Tryck f|r }terg}ng! '; : GET Svar$ 1050 Z=FN]ter 2000 DEF FNList LOCAL Par$=20,Par 2010 Par$='1-1050'+CHR$(13) 2020 Par=VARPTR(Par$) 2030 POKE 64512,213,33,Par,SWAP%(Par),201 2040 Z=CALL(64512,FNListadr) 2050 RETURN 0 2060 FNEND 2070 DEF FN]ter 2080 POKE -242,Top,SWAP%(Top) 2090 POKE -250,Bofa,SWAP%(Bofa) 2100 POKE -248,Eofa,SWAP%(Eofa) 2110 Z=FNRun 2120 FNEND 2130 DEF FNRun LOCAL Par$=20,Par 2140 Par$=''+CHR$(13) 2150 Par=VARPTR(Par$) 2160 POKE 64512,213,33,Par,SWAP%(Par),201 2170 Z=CALL(64512,FNRunadr) 2180 RETURN 0 2190 FNEND 10000 DEF FNListadr LOCAL Adr,Tolk$=0 10010 POKE VAROOT(Tolk$),0,96,0,0,0,96 10020 Adr=INSTR(1,Tolk$,"UNSAVE") 10030 Adr=INSTR(Adr,Tolk$,CHR$(255))+VARPTR(Tolk$) 10040 ! RUN = Adr, LOAD = Adr + 4, SAVE = Adr + 22 osv 10050 RETURN PEEK2(Adr+8) 10060 FNEND 10100 DEF FNRunadr LOCAL Adr,Tolk$=0 10110 POKE VAROOT(Tolk$),0,96,0,0,0,96 10120 Adr=INSTR(1,Tolk$,"UNSAVE") 10130 Adr=INSTR(Adr,Tolk$,CHR$(255))+VARPTR(Tolk$) 10140 ! RUN = Adr, LOAD = Adr + 4, SAVE = Adr + 22 osv 10150 RETURN PEEK2(Adr) 10160 FNEND