2000IF HIMEM<>&B800 PROCTYPE("CH.""LINK"""+CHR$13): OSCLI("X.HIBASIC") 2010IF PAGE<>&800 THEN PAGE=&800: CHAIN"LINK" 2020 2030HIMEM = HIMEM - &5000: REM &3000 source + &1000 object 2040 2050ON ERROR PAGE=&800: GOTO2070 2060GOTO2130 2070ON ERROR OFF 2080CLOSE #0 2090*OPT 1 2100REPORT: PRINT" at line ";ERL 2110OSCLI("*KEY4""*BA.|MLO.""""" +f$+ """""|ML." +STR$ERL+ "|M""") 2120END 2130 2140DIM Mlink 13 2150 2160OSGBPB = &FFD1 2170 2180obj_max = &2000 2190src_max = &3000 2200 2210object_addr = HIMEM 2220source_addr = object_addr + obj_max 2230 2240 save$ = ":0.R.fsys" 2250 OSCLI ("SAVE "+save$+" 0000 +1000") :REM Avoid extending file 2260 2270 run_addr = &8000 2280 2290VDU15: OSCLI("OPT1,1") 2300 2310obj_han = OPENOUT(save$) 2320 2330FORPass=4TO6STEP2 2340 O%=object_addr: P%=run_addr 2350 REPEAT 2360 READ f$ 2370 IF f$="" THEN 2490 2380 OSCLI("LOAD "+f$+" "+STR$~source_addr) 2390 PAGE=source_addr: GOSUB 1000: PAGE=&800 2400 IF Pass = 4 THEN 2480 2410 ?(Mlink+&00) = obj_han 2420 !(Mlink+&01) = object_addr 2430 !(Mlink+&05) = (O%-object_addr) 2440 A%=&02 2450 X%=(Mlink MOD &100) 2460 Y%=(Mlink DIV &100) 2470 CALL OSGBPB 2480 O% = object_addr 2490 UNTILf$="" 2500 RESTORE 2510NEXT 2520 2530CLOSE #obj_han 2540 2550PRINT"Top of symbol table: ";~(!2)AND&FFFF 2560PRINT"source_addr : ";~source_addr 2570PAGE=&800: HIMEM=&B800 2580*OPT 1 2590END 2600 2610DATA Consts 2620DATA Vars 2621DATA :3.B.Globals 2622DATA :3.B.FltVars 2623DATA :3.B.ECFvars 2630DATA VecAddr 2640DATA Serv 2650DATA Cli 2660DATA Entries 2670DATA RSutils 2680DATA InitVec 2690DATA osfile 2691DATA oscli 2700DATA fsys 2710DATA FileOps 2720DATA Tube 2730DATA extras 2780DATA :3.B.S_entry 2790DATA :3.B.L_entry 2800DATA :3.B.BRK 2801DATA :3.Mouse 2810DATA :3.B.InitFLT 2820DATA :3.B.InitBF 2830DATA :3.B.InitFX 2840DATA :3.B.InitECF 2850DATA :3.B.VSTRING 2860DATA :3.B.PHEX 2870DATA :3.B.Main!!! 2880DATA :3.B.Filter 2890DATA :3.B.Put 2900DATA :3.B.Get 2910DATA :3.B.Count 2920DATA :3.B.Emul8 2930DATA :3.B.Help 2940DATA :3.B.Boot 2950DATA :3.B.KeyTab 2960DATA :3.B.ECFG 2961REM *************** ECFG Must be last 2970DATA "" 2980DEF PROCSAVE 2990OSCLI("SAVE link "+STR$~PAGE+" "+STR$~TOP) 3000ENDPROC 3010DEF PROCTYPE(S$) 3020LOCAL I 3030FORI=1TO LENS$ 3040OSCLI("FX138,0,"+STR$ASCMID$(S$,I,1)) 3050NEXT 3060ENDPROC