Home » Archimedes archive » Micro User » MU 1991-04.adf » PD-Stuff » Mod_Dis/ModDis201
Mod_Dis/ModDis201
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Micro User » MU 1991-04.adf » PD-Stuff |
Filename: | Mod_Dis/ModDis201 |
Read OK: | ✔ |
File size: | 6B35 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >ModDis201 20REM Revised script file format 30REM Detects end-of-code with BIC 40REM Handles help code correctly 50REM Fixed negative bug in PROCloadtypes 60REM Some support for out-of-module branches added 70REM 'Acorn' compressed string format can now be selected 80REM Works with modules with no title string 90REM >ModDis200 100REM New version recognises its own script files 110REM OSWriteI recognised 120REM Doesn't crash when padded string ends module 130REM >ModDis105 140REM Fixed bug with word in PROCask 150REM Length of padded string now captured when writescript%=TRUE 160REM Works if branch table not followed by code 170REM >ModDis104 180REM Fixed bug with SWI branch table overrun 190REM Fixed bug with SWI mask 200REM No more keypress prompts while reading script file 210REM Warns about simultaneously reading and writing script file 220REM >ModDis103 230REM Can cope with some strings longer than 255 bytes (I think) 240REM Copes with " character in strings 250REM >ModDis102 260REM Bundled macro for ADRlong implemented 270REM >ModDis101 280REM Scripts added 290REM Bug with SWI table entries exceeding number of names fixed 300REM >ModDis100 310REM Keyword table now copes with zeros 320REM Copes with ADR followed by ADD or SUB (ADRlong) 330REM Speeded up final pass 340REM Fixed bug in EQUW 350REM >ModDisF 360REM Sorted out bits,shift problem 370REM >ModDisE 380REM Tried to improve recognition of SWI branch table 390REM Added external type (7) 400REM Header labels now take precedence over sABCD 410REM Alignment problem with SWI OS_WriteS fixed 420REM >ModDisD 430REM Debug information added 440REM Better trapping for no SWI decoding code 450REM >ModDisC 460REM Recognises Configure keywords 470REM Warns about coprocessor and undefined commands 480REM Recognises CR-terminated strings and padded strings 490REM Provision for loading and saving type% array 500REM >ModDisB 510REM Provision for LDR/STR Rn,exp 520REM Speeded up Ask 530 540REM Lorcan Mongey 550REM 56 Salisbury Court 560REM Dublin Road 570REM Belfast BT7 1DD 580REM Tel: 0232 234386 590 600REM I can also be reached at the following BBS 610 620REM BBS Telephone ID 630REM ---------------------------------------------- 640REM CIX 081 390 1244 lorcan@cix.uucp 650REM World of Cryton 0749 670030 lorcan (#237) 660REM Arcade 081 654 2212 lorcan (#417) 670 680PROCinit 690PROCexternal 710PROCheader 730offset%=0 740WHILEoffset%<=bytes% 750 IFtype%(offset%)=0THENPROCask:offset%-=1 760 offset%+=1 770ENDWHILE 780CLOSE#0 800PROCdis 810END 820 830DEFPROCaddress(RETURN offset%) 840CASEtype%(offset%)OF 850 WHEN0: 860 WHEN3:ENDPROC 870 OTHERWISE:ERROR255,"Expecting type 3 or 0" 880ENDCASE 890LOCALI% 900address%=base%!offset% 910FORI%=0TO3 920 type%(offset%+I%)=3 930NEXT 940offset%+=4 950ENDPROC 960 970DEFPROCadradd 980LOCALI%,len2% 990FORI%=0TO3 1000 type%(offset%+I%)=5 1010NEXT 1020I%=INSTR(inst$,"#") 1030dest$=MID$(inst$,I%+1,9) 1040dest%=FNimm(dest$)+offset%+8 1050PROCcheckformore 1060IFdest%>bytes%ORdest%<0THENoffset%+=4:ENDPROC 1070IFlabel$(dest%)=""THENlabel$(dest%)="x"+STR$~(dest%) 1080IFtype%(dest%)=0THEN 1090 IFdebug%THEN 1100 COLOUR6 1110 PRINT"Add",~offset% 1120 COLOUR7 1130 ENDIF 1140 PROCwhatsthis(offset%,dest%) 1150 CASEtype%OF 1160 WHEN-4:PROCstringA(offset%) 1170 WHEN-3:PROCpaddedstring(dest%,number%) 1180 WHEN-2:PROCstringCR(dest%) 1190 WHEN-1:PROCstring0(dest%) 1200 WHEN 0: 1210 WHEN 1:PROCbyte(dest%) 1220 WHEN 2:PROCword(dest%) 1230 WHEN 4:PROCdouble(dest%) 1240 WHEN 5:PROCcode(dest%) 1250 ENDCASE 1260ENDIF 1270offset%+=4 1280ENDPROC 1290 1300DEFPROCadrsub 1310LOCALI% 1320FORI%=0TO3 1330 type%(offset%+I%)=5 1340NEXT 1350I%=INSTR(inst$,"#") 1360dest$=MID$(inst$,I%+1,9) 1370dest%=offset%-FNimm(dest$)+8 1380PROCcheckformore 1390IFdest%>bytes%ORdest%<0THENoffset%+=4:ENDPROC 1400IFlabel$(dest%)=""THENlabel$(dest%)="x"+STR$~(dest%) 1410IFtype%(dest%)=0THEN 1420 IFdebug%THEN 1430 COLOUR6 1440 PRINT"Sub",~offset% 1450 COLOUR7 1460 ENDIF 1470 PROCwhatsthis(offset%,dest%) 1480 CASEtype%OF 1490 WHEN-4:PROCstringA(offset%) 1500 WHEN-3:PROCpaddedstring(dest%,number%) 1510 WHEN-2:PROCstringCR(dest%) 1520 WHEN-1:PROCstring0(dest%) 1530 WHEN 0: 1540 WHEN 1:PROCbyte(dest%) 1550 WHEN 2:PROCword(dest%) 1560 WHEN 4:PROCdouble(dest%) 1570 WHEN 5:PROCcode(dest%) 1580 ENDCASE 1590ENDIF 1600offset%+=4 1610ENDPROC 1620 1630DEFPROCalign(RETURN offset%) 1640CASEtype%(offset%)OF 1650 WHEN0: 1660 WHEN6:ENDPROC 1670 OTHERWISE:ERROR255,"Expecting type 6 or 0" 1680ENDCASE 1690LOCALpointer% 1700pointer%=offset%+base% 1710WHILEpointer%MOD4<>0 1720 type%(offset%)=6 1730 pointer%+=1 1740 offset%+=1 1750ENDWHILE 1760ENDPROC 1770 1780DEFPROCask 1790LOCALcount%,type%,I%,J% 1800count%=1 1810WHILEtype%(offset%+count%)=0AND(offset%+count%)<=bytes%ANDcount%<=68 1820 count%+=1 1830ENDWHILE 1840OSCLI"MemoryI "+STR$~(offset%+base%-&20)+" +20" 1850COLOUR1 1860OSCLI"MemoryI "+STR$~(offset%+base%)+" +4" 1870COLOUR7 1880OSCLI"MemoryI "+STR$~(offset%+base%+4)+" +20" 1890PRINT'count%," byte(s) at ";~offset%;" of unknown type" 1900type%=0:number%=1 1910IFNOTFNreplay(offset%,type%,number%)THEN 1920 INPUTtype% 1930 CASEtype%OF 1940 WHEN-3 :INPUT"Length of padded string",number% 1950 WHEN1,2,3,4:INPUT"How many",number% 1960 ENDCASE 1970 PROCcapture(offset%,type%,number%) 1980ENDIF 1990CASEtype%OF 2000 WHEN-4:PROCstringA(offset%) 2010 WHEN-3:PROCpaddedstring(offset%,number%) 2020 WHEN-2:PROCstringCR(offset%) 2030 WHEN-1:PROCstring0(offset%) 2040 WHEN 1:FORJ%=1TOnumber%:PROCbyte(offset%):NEXT 2050 WHEN 2:FORJ%=1TOnumber%:PROCword(offset%):NEXT 2060 WHEN 3:FORJ%=1TOnumber%:PROCaddress(offset%):NEXT 2070 WHEN 4:FORJ%=1TOnumber%:PROCdouble(offset%):NEXT 2080 WHEN 5:PROCcode(offset%) 2090 WHEN 6:PROCalign(offset%) 2100ENDCASE 2110ENDPROC 2120 2130DEFPROCbranch 2140dest%=(((EVAL(RIGHT$(inst$,len%-7)))<<8)>>8)+offset% 2150IFdest%>bytes%ORdest%<0THENoffset%+=4:ENDPROC 2160IFlabel$(dest%)=""THENlabel$(dest%)="x"+STR$~(dest%) 2170PROCcode(dest%) 2180offset%+=4 2190ENDPROC 2200 2210DEFPROCbranchlink 2220dest%=(((EVAL(RIGHT$(inst$,len%-7)))<<8)>>8)+offset% 2230IFdest%>bytes%ORdest%<0THENoffset%+=4:ENDPROC 2240IFLEFT$(label$(dest%),1)="x"ORlabel$(dest%)=""THENlabel$(dest%)="s"+STR$~(dest%) 2250PROCcode(dest%) 2260offset%+=4 2270ENDPROC 2280 2290DEFPROCbranchtable 2300LOCALendoftable% 2310offset%+=4 2320LOCALI% 2330endoftable%=FALSE 2340REPEAT 2350 inst%=base%!offset% 2360 inst$=FNextract(inst%,len%) 2370 CASEFNinst(inst%)OF 2380 WHEN1:FORI%=0TO3 2390 type%(offset%+I%)=5 2400 NEXT 2410 PROCbranch 2420 OTHERWISE:endoftable%=TRUE 2430 ENDCASE 2440UNTILendoftable% 2450ENDPROC 2460 2470DEFPROCbyte(RETURN offset%) 2480CASEtype%(offset%)OF 2490 WHEN0: 2500 WHEN1:ENDPROC 2510 OTHERWISE:ERROR255,"Expecting type 1 or 0" 2520ENDCASE 2530byte%=base%?offset% 2540type%(offset%)=1 2550offset%+=1 2560ENDPROC 2570 2580DEFPROCcapture(offset%,type%,number%) 2590LOCALstring$ 2600IFwritescript%THEN 2610 string$=STR$~offset%+","+STR$type%+","+STR$number% 2620 PTR#script%=EXT#script% 2630 BPUT#script%,string$ 2640ENDIF 2650ENDPROC 2660 2670DEFPROCcheckformore 2680LOCALI% 2690cond%=(inst%AND&F0000000)>>28 2700rd%=(inst%AND&0000F000)>>12 2710same%=(cond%<<28)OR(rd%<<16)OR(rd%<<12) 2720mask%=&FFEFF000 2730target1%=&02800000 ORsame% 2740target2%=&02400000 ORsame% 2750inst2%=base%!(offset%+4) 2760extra$="" 2770IF((inst2%ANDmask%)=target1%)OR((inst2%ANDmask%)=target2%)THEN 2780 inst2$=FNextract(inst2%,len2%) 2790 I%=INSTR(inst2$,"#") 2800 dest2$=MID$(inst2$,I%+1,9) 2810 offset2%=FNimm(dest2$) 2820 IF(inst2%AND&00800000)=&800000THEN 2830 dest%+=offset2% 2840 extra$="-&"+STR$~offset2% 2850 ELSE 2860 dest%-=offset2% 2870 extra$="+&"+STR$~offset2% 2880 ENDIF 2890 IFNOTdebug%THEN 2900 COLOUR6 2910 PRINT"ADRL" 2920 OSCLI"MemoryI "+STR$~(base%+offset%)+" +8" 2930 PRINT~dest% offset2% 2940 G%=GET 2950 COLOUR7 2960 ENDIF 2970ENDIF 2980ENDPROC 2990 3000DEFPROCcode(RETURN offset%) 3010CASEtype%(offset%)OF 3020 WHEN0: 3030 WHEN5:ENDPROC 3040 OTHERWISE:ERROR255,"Expecting type 5 or 0" 3050ENDCASE 3060LOCALI% 3070inst%=base%!offset% 3080IFdebug%THEN 3090 COLOUR6 3100 PRINT"Code",~offset% 3110 COLOUR7 3120ENDIF 3130FORI%=0TO3 3140 type%(offset%+I%)=5 3150NEXT 3160inst$=FNextract(inst%,len%) 3170return%=FALSE 3180CASEFNinst(inst%)OF 3190 WHEN 1:PROCbranch:ENDPROC 3200 WHEN 2:PROCbranch 3210 WHEN 3:PROCbranchlink 3220 WHEN 4:ENDPROC 3230 WHEN 5:PROCswi:IFreturn%THENreturn%=FALSE:ENDPROC 3240 WHEN 6:ENDPROC 3250 WHEN 7:PROCbranchtable:ENDPROC 3260 WHEN 8:PROCadradd 3270 WHEN 9:PROCadrsub 3280 WHEN10:ENDPROC 3290 WHEN11:PROClsexp 3300 WHEN12:PROCcopro:ENDPROC 3310 WHEN13:PROCundef:ENDPROC 3320 WHEN14:ENDPROC 3330 OTHERWISE:offset%+=4 3340ENDCASE 3350IFoffset%>bytes%THENENDPROC 3360IFtype%(offset%)=0THEN3070 3370ENDPROC 3380 3390DEFPROCcopro 3400LOCALI% 3410VDU7 3420PRINT"Attempting to disassemble coprocessor instruction" 3430OSCLI("MemoryI "+STR$~(offset%+base%)) 3440IFreadscript%THEN 3450 PRINT"Continuing in a moment..." 3460 FORI%=1TO100000:NEXT 3470ELSE 3480 PRINT"Press any key to continue"' 3490 G%=GET 3500ENDIF 3510FORI%=0TO3 3520 type%(offset%+I%)=0 3530NEXT 3540ENDPROC 3550 3560DEFPROCdebug 3570FORoffset%=0TObytes% 3580IFlabel$(offset%)<>""THEN 3590 PRINT~offset%,type%(offset%)," ",label$(offset%) 3600ENDIF 3610NEXT 3620*MEMORYI 10000 +32 3630G%=GET 3640FORI%=0TObytes% 3650 PRINT~I%,type%(I%),label$(I%) 3660NEXT 3670G%=GET 3680FORI%=0TObytes% 3690 IFtype%(I%)=0THENPRINT~I%,type%(I%),label$(I%) 3700NEXT 3710ENDPROC 3720 3730DEFPROCdis 3740offset%=0 3750OSCLI"Spool SOURCES."+filename$ 3760PRINT"REM >SOURCES."+filename$ 3770PRINT"DIMcode%&10000" 3780PRINT"FORI%=0TO&10000STEP4" 3790PRINT" code%!I%=0" 3800PRINT"NEXT" 3810PRINT"OS_WriteI=&100" 3820PRINT"XOS_WriteI=&20100" 3830PRINT"FORpass%=4TO7STEP3" 3840PRINT"O%=code%" 3850PRINT"P%=0" 3860PRINT"[OPT pass%" 3870REPEAT 3880 CASEtype%(offset%)OF 3890 WHEN-3:PROCdispaddedstring 3900 WHEN-2:PROCdisstrCR 3910 WHEN-1:PROCdisstr0 3920 WHEN 0:offset%+=1 3930 WHEN 1:PROCdisbyte 3940 WHEN 2:PROCdisword 3950 WHEN 3:PROCdisaddr 3960 WHEN 4:PROCdisdoub 3970 WHEN 5:PROCdiscode 3980 WHEN 6:PROCdisalign 3990 WHEN 7:PROCdisexternal 4000 ENDCASE 4010UNTILoffset%>bytes% 4020PRINT"]:NEXT" 4030PRINT"SYS""OS_File"",10,""MODULES."+filename$+""",&FFA,,code%,O%" 4040PRINT"END"' 4050PRINT"DEFFNadrl(cond$,reg%,label$)" 4060PRINT"IFcond$=""""ORcond$="" ""THENcond$=""AL""" 4070PRINT"cc%=(INSTR(""EQNECSCCMIPLVSVCHILSGELTGTLEALNV"",cond$)-1)DIV2" 4080PRINT"IFpass%AND2=0THEN" 4090PRINT" [OPT pass%" 4100PRINT" EQUD 0" 4110PRINT" EQUD 0" 4120PRINT" ]" 4130PRINT"ELSE" 4140PRINT" offset%=EVAL(label$)-P%-8" 4150PRINT" lo%=ABS(offset%)AND&FF" 4160PRINT" hi%=ABS(offset%)AND&FF00" 4170PRINT" IFoffset%>=0THEN" 4180PRINT" op1%=(cc%<<28)OR(&028F0000+(reg%<<12)+lo%)" 4190PRINT" op2%=(cc%<<28)OR(&02800C00+(reg%<<16)+(reg%<<12)+(hi%>>8))" 4200PRINT" ELSE" 4210PRINT" op1%=(cc%<<28)OR(&024F0000+(reg%<<12)+lo%)" 4220PRINT" op2%=(cc%<<28)OR(&02400C00+(reg%<<16)+(reg%<<12)+(hi%>>8))" 4230PRINT" ENDIF" 4240PRINT" [OPT pass%" 4250PRINT" EQUD op1%" 4260PRINT" EQUD op2%" 4270PRINT" ]" 4280PRINT"ENDIF" 4290PRINT"=0" 4300*Spool 4310ENDPROC 4320 4330DEFPROCdisaddr 4340address%=base%!offset% 4350IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 4360PRINTTAB(20)"EQUD ";label$(address%) 4370offset%+=4 4380ENDPROC 4390 4400DEFPROCdisadradd 4410inst%=base%!offset% 4420inst$=FNextract(inst%,len%) 4430I%=INSTR(inst$,"#") 4440dest%=EVAL(MID$(inst$,I%+1,9))+offset%+8 4450PROCcheckformore 4460IFextra$=""THEN 4470 IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 4480 I%=INSTR(inst$,",") 4490 LEFT$(inst$)="ADR" 4500 PRINTTAB(20)LEFT$(inst$,I%)+label$(dest%) 4510 offset%+=4 4520ELSE 4530 IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 4540 cond$=MID$(inst$,4,2) 4550 IFdest%>bytes%ORdest%<0THEN 4560 PRINTTAB(20)"FNadrl("""+cond$+""","+STR$(rd%)+",""&"+STR$~dest%+""")" 4570 ELSE 4580 PRINTTAB(20)"FNadrl("""+cond$+""","+STR$(rd%)+","""+label$(dest%)+""")" 4590 ENDIF 4600 offset%+=8 4610ENDIF 4620ENDPROC 4630 4640DEFPROCdisadrsub 4650inst%=base%!offset% 4660inst$=FNextract(inst%,len%) 4670I%=INSTR(inst$,"#") 4680dest%=-EVAL(MID$(inst$,I%+1,9))+offset%+8 4690PROCcheckformore 4700IFextra$=""THEN 4710 IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 4720 I%=INSTR(inst$,",") 4730 LEFT$(inst$)="ADR" 4740 PRINTTAB(20)LEFT$(inst$,I%)+label$(dest%) 4750 offset%+=4 4760ELSE 4770 IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 4780 cond$=MID$(inst$,4,2) 4790 IFdest%>bytes%ORdest%<0THEN 4800 PRINTTAB(20)"FNadrl("""+cond$+""","+STR$(rd%)+",""&"+STR$~dest%+""")" 4810 ELSE 4820 PRINTTAB(20)"FNadrl("""+cond$+""","+STR$(rd%)+","""+label$(dest%)+""")" 4830 ENDIF 4840 offset%+=8 4850ENDIF 4860ENDPROC 4870 4880DEFPROCdisalign 4890LOCALpointer% 4900PRINTTAB(20)"ALIGN" 4910pointer%=offset%+base% 4920WHILEpointer%MOD4<>0 4930 pointer%+=1 4940 offset%+=1 4950ENDWHILE 4960ENDPROC 4970 4980DEFPROCdisbl 4990dest%=(((EVAL(RIGHT$(inst$,len%-7)))<<8)>>8)+offset% 5000IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 5010IFdest%>bytes%ORdest%<0THEN 5020 PRINTTAB(20)LEFT$(inst$,8)+"&";~dest% 5030ELSE 5040 PRINTTAB(20)LEFT$(inst$,8)+label$(dest%) 5050ENDIF 5060offset%+=4 5070ENDPROC 5080 5090DEFPROCdisbranch 5100dest%=(((EVAL(RIGHT$(inst$,len%-7)))<<8)>>8)+offset% 5110IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 5120IFdest%>bytes%ORdest%<0THEN 5130 PRINTTAB(20)LEFT$(inst$,8)+"&";~dest% 5140ELSE 5150 PRINTTAB(20)LEFT$(inst$,8)+label$(dest%) 5151ENDIF 5160offset%+=4 5170ENDPROC 5180 5190DEFPROCdisbyte 5200byte%=base%?offset% 5210IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 5220byte$=STR$~(byte%) 5230byte$=STRING$(2-LEN(byte$),"0")+byte$ 5240PRINTTAB(20)"EQUB &";byte$ 5250offset%+=1 5260ENDPROC 5270 5280DEFPROCdiscode 5290inst%=base%!offset% 5300inst$=FNextract(inst%,len%) 5310CASEFNinst(inst%)OF 5320 WHEN 1:PROCdisbranch 5330 WHEN 2:PROCdisbranch 5340 WHEN 3:PROCdisbl 5350 WHEN 4:PROCdisother 5360 WHEN 5:PROCdisswi 5370 WHEN 6:PROCdisother 5380 WHEN 7:PROCdisother 5390 WHEN 8:PROCdisadradd 5400 WHEN 9:PROCdisadrsub 5410 WHEN10:PROCdisother 5420 WHEN11:PROCdislsexp 5430 WHEN12:PROCdiscopro 5440 WHEN13:PROCdisundef 5450 WHEN14:PROCdisother 5460 OTHERWISE:PROCdisother 5470ENDCASE 5480ENDPROC 5490 5500DEFPROCdisdoub 5510double%=base%!offset% 5520IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 5530double$=STR$~(double%) 5540double$=STRING$(8-LEN(double$),"0")+double$ 5550PRINTTAB(20)"EQUD &";double$ 5560offset%+=4 5570ENDPROC 5580 5590DEFPROCdisexternal 5600REM Desktop module 5610CASEoffset%OF 5620 WHEN &5FC:PRINT"]" 5630 PRINT"OSCLI""Load TEMPLATES.Filer ""+STR$~O%" 5640 PRINT"O%+=&489" 5650 PRINT"P%+=&489" 5660 PRINT"[OPT pass%" 5670 offset%+=&489 5680 WHEN &AAF:PRINT"]" 5690 PRINT"OSCLI""Load TEMPLATES.NetFiler ""+STR$~O%" 5700 PRINT"O%+=&43F" 5710 PRINT"P%+=&43F" 5720 PRINT"[OPT pass%" 5730 offset%+=&43F 5740 WHEN &F16:PRINT"]" 5750 PRINT"OSCLI""Load TEMPLATES.Palette ""+STR$~O%" 5760 PRINT"O%+=&4E1" 5770 PRINT"P%+=&4E1" 5780 PRINT"[OPT pass%" 5790 offset%+=&4E1 5800 WHEN&141F:PRINT"]" 5810 PRINT"OSCLI""Load TEMPLATES.Switcher ""+STR$~O%" 5820 PRINT"O%+=&4D9" 5830 PRINT"P%+=&4D9" 5840 PRINT"[OPT pass%" 5850 offset%+=&4D9 5860 WHEN&191B:PRINT"]" 5870 PRINT"OSCLI""Load TEMPLATES.Wimp ""+STR$~O%" 5880 PRINT"O%+=&27D" 5890 PRINT"P%+=&27D" 5900 PRINT"[OPT pass%" 5910 offset%+=&27D 5920ENDCASE 5930ENDPROC 5940 5950DEFPROCdislsexp 5960inst%=base%!offset% 5970inst$=FNextract(inst%,len%) 5980I%=INSTR(inst$,"#")+1 5990J%=INSTR(inst$,"]")-I% 6000dest%=EVAL(MID$(inst$,I%,J%))+offset%+8 6010IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 6020I%=INSTR(inst$,",") 6030PRINTTAB(20)LEFT$(inst$,I%)+label$(dest%) 6040offset%+=4 6050ENDPROC 6060 6070DEFPROCdisother 6080IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 6090PRINTTAB(20)inst$ 6100offset%+=4 6110ENDPROC 6120 6130DEFPROCdispaddedstring 6140LOCALend% 6150strlen%=0 6160IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 6170end%=FALSE 6180REPEAT 6190 char$=CHR$(base%?offset%) 6200 strbuf%?strlen%=ASCchar$ 6210 strlen%+=1 6220 offset%+=1 6230 IFoffset%>bytes%THEN 6240 end%=TRUE 6250 ELSE 6260 IFtype%(offset%)<>-3 ORlabel$(offset%)<>""THENend%=TRUE 6270 ENDIF 6280UNTILend% 6290PROCprintString(strlen%) 6300ENDPROC 6310 6320DEFPROCdisstr0 6330strlen%=0 6340IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 6350REPEAT 6360 char$=CHR$(base%?offset%) 6370 strbuf%?strlen%=ASCchar$ 6380 strlen%+=1 6390 offset%+=1 6400 IFchar$=CHR$27THEN 6410 char$=CHR$(base%?offset%) 6420 strbuf%?strlen%=ASCchar$ 6430 strlen%+=1 6440 offset%+=1 6450 char$=CHR$(base%?offset%) 6460 strbuf%?strlen%=ASCchar$ 6470 strlen%+=1 6480 offset%+=1 6490 ENDIF 6500UNTILchar$=CHR$0 ORlabel$(offset%)<>"" 6510PROCprintString(strlen%) 6520ENDPROC 6530 6540DEFPROCdisstrCR 6550LOCALlen% 6560string$=$(base%+offset%)+CHR$13 6570$strbuf%=string$ 6580strlen%=LENstring$ 6590IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 6600offset%+=strlen% 6610PROCprintString(strlen%) 6620ENDPROC 6630 6640DEFPROCdisswi 6650IF(inst%AND&0FFDFF00)=&0F000100THEN 6660 I%=INSTR(inst$,"""") 6670 IFI%<>0THEN 6680 inst$=LEFT$(inst$,I%-1)+"ASC"+RIGHT$(inst$,LENinst$-I%+1) 6690 ENDIF 6700ELSE 6710 IFRIGHT$(inst$,4)="User"THEN 6720 num%=inst%AND&00FFFFFF 6730 inst$=LEFT$(inst$,8)+"&"+STR$~num% 6740 ELSE 6750 inst$=LEFT$(inst$,8)+""""+RIGHT$(inst$,len%-8)+"""" 6760 ENDIF 6770ENDIF 6780IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 6790PRINTTAB(20)inst$ 6800num%=inst%ANDsmask% 6810offset%+=4 6820CASEnum%OF 6830 WHEN1:PROCdisstr0:PROCdisalign 6840ENDCASE 6850ENDPROC 6860 6870DEFPROCdisword 6880word%=base%?offset%+&100*(base%?(offset%+1)) 6890IFlabel$(offset%)<>""THENPRINT".";label$(offset%); 6900word$=STR$~(word%) 6910word$=STRING$(4-LEN(word$),"0")+word$ 6920PRINTTAB(20)"EQUW &";STR$~(word%) 6930offset%+=2 6940ENDPROC 6950 6960DEFPROCdouble(RETURN offset%) 6970CASEtype%(offset%)OF 6980 WHEN0: 6990 WHEN3,4:ENDPROC 7000 OTHERWISE:ERROR255,"Expecting type 3, 4 or 0" 7010ENDCASE 7020LOCALI% 7030double%=base%!offset% 7040FORI%=0TO3 7050 type%(offset%+I%)=4 7060NEXT 7070offset%+=4 7080ENDPROC 7090 7100DEFPROCerror 7110*Spool 7130COLOUR7 7140PRINTREPORT$+" at line ";ERL 7290CLOSE#0 7300END 7310 7320DEFPROCexit 7330return%=TRUE 7340offset%+=4 7350ENDPROC 7360 7370DEFPROCexternal 7380ENDPROC 7390 7740DEFPROCexternal 7750REM Desktop module 7760FORoffset%=&5FCTO&5FC+&489-1 7770 type%(offset%)=7 7780NEXT 7790FORoffset%=&AAFTO&AAF+&43F-1 7800 type%(offset%)=7 7810NEXT 7820FORoffset%=&F16TO&F16+&4E1-1 7830 type%(offset%)=7 7840NEXT 7850FORoffset%=&141FTO&141F+&4D9-1 7860 type%(offset%)=7 7870NEXT 7880FORoffset%=&191BTO&191B+&27D-1 7890 type%(offset%)=7 7900NEXT 7910ENDPROC 7920 7930DEFPROCheader 7940label$(0)="Header" 7950offset%=0 7960FORI%=0TO3 7970 READA$ 7980 IFdebug%THEN 7990 COLOUR6 8000 PRINTA$ 8010 COLOUR7 8020 ENDIF 8030 IFbase%!offset%=0THEN 8040 PROCdouble(offset%) 8050 ELSE 8060 PROCaddress(offset%) 8070 label$(address%)=A$ 8080 PROCcode(address%) 8090 ENDIF 8100NEXT 8110REM Title string 8120IFdebug%THEN 8130 COLOUR6 8140 PRINT"TitleString" 8150 COLOUR7 8160ENDIF 8161 READA$ 8170 IFbase%!offset%=0THEN 8180 PROCdouble(offset%) 8190 ELSE 8200 PROCaddress(offset%) 8220 label$(address%)=A$ 8230 PROCstring0(address%) 8240 ENDIF 8250REM Help string 8260READA$ 8270IFdebug%THEN 8280 COLOUR6 8290 PRINTA$ 8300 COLOUR7 8310ENDIF 8320IFbase%!offset%=0THEN 8330 PROCdouble(offset%) 8340ELSE 8350 PROCaddress(offset%) 8360 label$(address%)=A$ 8370 PROCstring0(address%) 8380ENDIF 8390REM Help and command keyword table 8400READA$ 8410IFdebug%THEN 8420 COLOUR6 8430 PRINTA$ 8440 COLOUR7 8450ENDIF 8460IFbase%!offset%=0THEN 8470 PROCdouble(offset%) 8480ELSE 8490 PROCaddress(offset%) 8500 label$(address%)=A$ 8510 PROCkwtable(address%) 8520ENDIF 8530 8540IFtype%(offset%)<>0THENENDPROC 8550REM SWI chunk base number 8560IFdebug%THEN 8570 COLOUR6 8580 PRINT"SWIChunkBaseNumber" 8590 COLOUR7 8600ENDIF 8610IFbase%!offset%=0THENENDPROC 8620IF((base%!offset%)AND&FF00003F)<>&00000000THENENDPROC 8630IF((base%!(offset%+4))AND&FC000003)<>&00000000THENENDPROC 8640PROCdouble(offset%) 8650 8660REM SWI decoding table 8670offset%=&24 8680IF(base%!offset%<bytes%)THEN 8690 IFdebug%THEN 8700 COLOUR6 8710 PRINT"SWIDecodingTable" 8720 COLOUR7 8730 ENDIF 8740 IFbase%!offset%=0THEN 8750 PROCdouble(offset%) 8760 ELSE 8770 PROCaddress(offset%) 8780 label$(address%)="SWIDecodeTable" 8790 PROCswitable(address%) 8800 ENDIF 8810ENDIF 8820 8830REM SWI handler code 8840offset%=&20 8850IFdebug%THEN 8860 COLOUR6 8870 PRINT"SWIHandlerCode" 8880 COLOUR7 8890ENDIF 8900IFbase%!offset%=0THEN 8910 PROCdouble(offset%) 8920ELSE 8930 PROCaddress(offset%) 8940 label$(address%)="SWIHandlerCode" 8950 PROCswihandler(address%) 8960ENDIF 8970 8980REM SWI decoding code 8990offset%=&28 9000IFdebug%THEN 9010 COLOUR6 9020 PRINT"SWIDecodingCode" 9030 COLOUR7 9040ENDIF 9050IFbase%!offset%=0THEN 9060 PROCdouble(offset%) 9070ELSE 9080 IFbase%!offset%<bytes%THEN 9090 PROCaddress(offset%) 9100 label$(address%)="SWIDecodeCode" 9110 PROCcode(address%) 9120 ENDIF 9130ENDIF 9140ENDPROC 9150 9160DEFPROCinit 9170ONERRORPROCerror 9180LOMEM=&30000 9190version$="2.00" 9200stage%=0 9210debug%=TRUE:REM Prints debugging information in cyan 9220flop%=FALSE:REM Accept floating-point opcodes (not implemented) 9230readscript%=TRUE:REM Read user responses from file 9240writescript%=TRUE:REM Write user responses to file 9250REMIFreadscript%ANDwritescript%THENERROR255,"Can't read and write script" 9260base%=&10000 9270REMMODE20:REM If you have no multisync, try MODE 12 9280MODE12:REM If you have a multisync, try MODE 20 9290INPUT"filename",filename$ 9300SYS"OS_File",12,filename$,base%,0,"ORIGINALS."TO,,,,filelen% 9310IFreadscript%ORwritescript%THEN 9320 SYS"OS_File",17,"SCRIPTS."+filename$TOtype% 9330 IFtype%=0THENSYS"OS_File",11,"SCRIPTS."+filename$,&FFF,0,0 9340 script%=OPENUP("SCRIPTS."+filename$) 9350ENDIF 9360REM Fix for Podule !&107C8=&814:REM @@@@@@@@@@@@@@@@@@@@@@@@ 9370bytes%=filelen%-1 9380words%=((bytes%+1)DIV4)-1 9390DIMlabel$(bytes%),type%(bytes%+1),buffer%&100,swi$(63),strbuf%&1000 9400bmask%=(%1111)<<24 9410b%=(%1010)<<24 9420bl%=(%1011)<<24 9430end%=(%11101000000100001)<<15 9440emask%=end% 9450smask%=&000DFFFF 9460swi%=(%1111)<<24 9470ENDPROC 9480 9490DEFPROCkwtable(offset%) 9500LOCALkeyword$,helpcode% 9510REPEAT 9520 helpcode%=FALSE 9530 PROCstring0(offset%) 9540 keyword$=string$ 9550 PROCalign(offset%) 9560 offset%+=4 9570 PROCdouble(offset%) 9580 IF(double%AND&40000000)=&40000000THENkeyword$="Config"+keyword$ 9590 IF(double%AND&20000000)=&20000000THENhelpcode%=TRUE 9600 offset%-=8 9610 IFbase%!offset%=0THEN 9620 PROCdouble(offset%) 9630 ELSE 9640 IFbase%!offset%>bytes%ORbase%!offset%<0THEN 9650 PROCdouble(offset%) 9660 ELSE 9670 PROCaddress(offset%) 9680 label$(address%)=keyword$+"Code" 9690 PROCcode(address%) 9700 ENDIF 9710 ENDIF 9720 offset%+=4 9730 IFbase%!offset%=0THEN 9740 PROCdouble(offset%) 9750 ELSE 9760 PROCaddress(offset%) 9770 label$(address%)=keyword$+"Syntax" 9780 PROCstringA(address%) 9790 ENDIF 9800 IFbase%!offset%=0THEN 9810 PROCdouble(offset%) 9820 ELSE 9830 PROCaddress(offset%) 9840 label$(address%)=keyword$+"Help" 9850 IFhelpcode%THEN 9860 PROCcode(address%) 9870 ELSE 9880 PROCstringA(address%) 9890 ENDIF 9900 ENDIF 9910UNTILbase%?offset%=0 9920PROCbyte(offset%) 9930ENDPROC 9940 9950DEFPROCloadtypes 9960LOCALF%,I% 9970F%=OPENIN("Types") 9980FORI%=0TObytes% 9990 type%(I%)=BGET#F% 10000 IFtype%(I%)>127THENtype%(I%)-=256 10010NEXT 10020CLOSE#F% 10030F%=OPENIN("Labels") 10040FORI%=0TObytes% 10050 INPUT#F%,label$(I%) 10060NEXT 10070CLOSE#F% 10080ENDPROC 10090 10100DEFPROClsexp 10110LOCALI%,J% 10120FORI%=0TO3 10130 type%(offset%+I%)=5 10140NEXT 10150I%=INSTR(inst$,"#")+1 10160J%=INSTR(inst$,"]")-I% 10170dest%=EVAL(MID$(inst$,I%,J%))+offset%+8 10180IFlabel$(dest%)=""THENlabel$(dest%)="x"+STR$~(dest%) 10190IFtype%(dest%)=0THEN 10200 IFdebug%THEN 10210 COLOUR6 10220 PRINT"LSexp",~offset% 10230 COLOUR7 10240 ENDIF 10250 PROCwhatsthis(offset%,dest%) 10260 CASEtype%OF 10270 WHEN-4:PROCstringA(offset%) 10280 WHEN-3:PROCpaddedstring(dest%,number%) 10290 WHEN-2:PROCstringCR(dest%) 10300 WHEN-1:PROCstring0(dest%) 10310 WHEN 0: 10320 WHEN 1:PROCbyte(dest%) 10330 WHEN 2:PROCword(dest%) 10340 WHEN 4:PROCdouble(dest%) 10350 WHEN 5:PROCcode(dest%) 10360 ENDCASE 10370ENDIF 10380offset%+=4 10390ENDPROC 10400 10410DEFPROCpaddedstring(RETURN offset%,len%) 10420LOCALI% 10430CASEtype%(offset%)OF 10440 WHEN 0: 10450 WHEN-3:REMENDPROC 10460 OTHERWISE:ERROR255,"Expecting type -3 or 0" 10470ENDCASE 10480FORI%=1TOlen% 10490 type%(offset%)=-3 10500 offset%+=1 10510NEXT 10520ENDPROC 10530 10540DEFPROCsavetypes 10550LOCALF%,I% 10560F%=OPENOUT("Types") 10570FORI%=0TObytes% 10580 BPUT#F%,type%(I%) 10590NEXT 10600CLOSE#F% 10610F%=OPENOUT("Labels") 10620FORI%=0TObytes% 10630 PRINT#F%,label$(I%) 10640NEXT 10650CLOSE#F% 10660ENDPROC 10670 10680DEFPROCstring0(RETURN offset%) 10690CASEtype%(offset%)OF 10700 WHEN 0: 10710 WHEN-1:REMENDPROC 10720 OTHERWISE:ERROR255,"Expecting type -1 or 0" 10730ENDCASE 10740string$="" 10750WHILEbase%?offset%<>0 10760 IFLENstring$<255THENstring$+=CHR$(base%?offset%) 10770 type%(offset%)=-1 10780 offset%+=1 10790ENDWHILE 10800type%(offset%)=-1 10810offset%+=1 10820ENDPROC 10830 10840DEFPROCstringA(RETURN offset%) 10850CASEtype%(offset%)OF 10860 WHEN 0: 10870 WHEN-1:ENDPROC 10880 OTHERWISE:ERROR255,"Expecting type -1 or 0" 10890ENDCASE 10900WHILEbase%?offset%<>0 10910 type%(offset%)=-1 10920 IFbase%?offset%=27THEN 10930 offset%+=1 10940 type%(offset%)=-1 10950 ENDIF 10960 offset%+=1 10970ENDWHILE 10980type%(offset%)=-1 10990offset%+=1 11000ENDPROC 11010 11020DEFPROCstringCR(RETURN offset%) 11030CASEtype%(offset%)OF 11040 WHEN 0: 11050 WHEN-2:REMENDPROC 11060 OTHERWISE:ERROR255,"Expecting type -2 or 0" 11070ENDCASE 11080WHILEbase%?offset%<>13 11090 type%(offset%)=-2 11100 offset%+=1 11110ENDWHILE 11120type%(offset%)=-2 11130offset%+=1 11140ENDPROC 11150 11160DEFPROCswi 11170inst$=LEFT$(inst$,8)+""""+RIGHT$(inst$,len%-8)+"""" 11180num%=inst%ANDsmask% 11190CASEnum%OF 11200 WHEN 1:PROCwriteS 11210 WHEN&11:PROCexit 11220 OTHERWISE:offset%+=4 11230ENDCASE 11240ENDPROC 11250 11260DEFPROCswibranch 11270dest%=(((EVAL(RIGHT$(inst$,len%-7)))<<8)>>8)+offset% 11280IFswi$(counter%)=""THEN 11290 IFlabel$(dest%)=""THENlabel$(dest%)="x"+STR$~(dest%) 11300ELSE 11310 label$(dest%)=swi$(counter%) 11320ENDIF 11330PROCcode(dest%) 11340offset%+=4 11350ENDPROC 11360 11370DEFPROCswibranchtable 11380IFdebug%THEN 11390 COLOUR6 11400 PRINT"Got to SWI branch table" 11410 COLOUR7 11420ENDIF 11430offset%+=4 11440LOCALI%,end%,counter% 11450end%=FALSE 11460REPEAT 11470 IFtype%(offset%)=0THEN 11480 inst%=base%!offset% 11490 FORI%=0TO3 11500 type%(offset%+I%)=5 11510 NEXT 11520 inst$=FNextract(inst%,len%) 11530 IFdebug%THEN 11540 COLOUR6 11550 PRINTcounter%,FNinst(inst%) 11560 COLOUR7 11570 ENDIF 11580 CASEFNinst(inst%)OF 11590 WHEN1:PROCswibranch 11600 OTHERWISE:IFcounter%=0THEN 11610 PROCcode(offset%) 11620 offset%+=4 11630 ELSE 11640 end%=TRUE:REM End of table 11650 ENDIF 11660 ENDCASE 11670 counter%+=1 11680 ELSE 11690 end%=TRUE 11700 ENDIF 11710UNTILend% 11720IFdebug%THEN 11730 COLOUR6 11740 PRINT"Left SWI branch table with counter=";counter% 11750 COLOUR7 11760ENDIF 11770ENDPROC 11780 11790DEFPROCswihandler(offset%) 11800CASEtype%(offset%)OF 11810 WHEN0: 11820 WHEN5:ENDPROC 11830 OTHERWISE:ERROR255,"Expecting type 5 or 0" 11840ENDCASE 11850LOCALI% 11860inst%=base%!offset% 11870FORI%=0TO3 11880 type%(offset%+I%)=5 11890NEXT 11900inst$=FNextract(inst%,len%) 11910CASEFNinst(inst%)OF 11920 WHEN 1:PROCbranch:ENDPROC 11930 REMWHEN 2:IFFNinst(base%!(offset%+4))=2THENPROCswibranchtable ELSEPROCbranch 11940 WHEN 2:PROCbranch 11950 WHEN 3:PROCbranchlink 11960 WHEN 4:ENDPROC 11970 WHEN 5:PROCswi 11980 WHEN 6:ENDPROC 11990 WHEN 7:PROCswibranchtable 12000 WHEN 8:PROCadradd 12010 WHEN 9:PROCadrsub 12020 WHEN10:ENDPROC 12030 WHEN11:PROClsexp 12040 WHEN12:PROCcopro:ENDPROC 12050 WHEN13:PROCundef:ENDPROC 12060 WHEN14:ENDPROC 12070 OTHERWISE:offset%+=4 12080ENDCASE 12090IFoffset%>bytes%THENENDPROC 12100IFtype%(offset%)=0THEN11860 12110ENDPROC 12120 12130DEFPROCswitable(RETURN offset%) 12140LOCALI%,prefix$ 12150PROCstring0(offset%) 12160prefix$=string$+"_" 12170swi$(I%)=prefix$+"BadSWI" 12180I%+=1 12190WHILEbase%?offset%<>0 12200 PROCstring0(offset%) 12210 swi$(I%)=prefix$+string$ 12220 I%+=1 12230ENDWHILE 12240PROCbyte(offset%) 12250ENDPROC 12260 12270DEFPROCundef 12280LOCALI% 12290VDU7 12300PRINT"Attempting to disassemble undefined instruction" 12310OSCLI("MemoryI "+STR$~(offset%+base%)) 12320IFreadscript%THEN 12330 PRINT"Continuing in a moment..." 12340 FORI%=1TO100000:NEXT 12350ELSE 12360 PRINT"Press any key to continue"' 12370 G%=GET 12380ENDIF 12390FORI%=0TO3 12400 type%(offset%+I%)=0 12410NEXT 12420ENDPROC 12430 12440DEFPROCwhatsthis(offset%,dest%) 12450LOCALcount%,I% 12460count%=1 12470WHILEtype%(dest%+count%)=0AND(dest%+count%)<=bytes%ANDcount%<=68 12480 count%+=1 12490ENDWHILE 12500COLOUR3 12510OSCLI"MemoryI "+STR$~(offset%+base%)+" +10" 12520COLOUR7:PRINT 12530OSCLI"MEMORYI "+STR$~(dest%+base%-&20)+" +20" 12540COLOUR1 12550OSCLI"MEMORYI "+STR$~(dest%+base%)+" +4" 12560COLOUR7 12570OSCLI"MEMORYI "+STR$~(dest%+base%+4)+" +20" 12580PRINT'~dest% 12590PRINT"What's this?" 12600type%=0:number%=1 12610IFNOTFNreplay(dest%,type%,number%)THEN 12620 INPUTtype% 12630 IFtype%=-3THENINPUT"Length of padded string",number% 12640 IFtype%<>0THENPROCcapture(dest%,type%,number%) 12650ENDIF 12660ENDPROC 12670 12680DEFPROCword(RETURN offset%) 12690CASEtype%(offset%)OF 12700 WHEN0: 12710 WHEN2:ENDPROC 12720 OTHERWISE:ERROR255,"Expecting type 2 or 0" 12730ENDCASE 12740LOCALI% 12750word%=base%?offset%+&100*(base%?(offset%+1)) 12760FORI%=0TO1 12770 type%(offset%+I%)=2 12780NEXT 12790offset%+=2 12800ENDPROC 12810 12820DEFPROCwriteS 12830offset%+=4 12840PROCstring0(offset%) 12850IFoffset%MOD4<>0THEN 12860 PROCalign(offset%) 12870ENDIF 12880ENDPROC 12890 12900DEFFNextract(inst%,RETURN len%) 12910LOCALI% 12920SYS"Debugger_Disassemble",inst%,0TO,buffer%,len% 12930len%-=1 12940inst$="" 12950REPEAT 12960 inst$+=CHR$(buffer%?I%) 12970 I%+=1 12980UNTILbuffer%?I%=0 12990=inst$ 13000 13010DEFFNimm(imm$) 13020LOCALI%,imm%,bits%,shift% 13030I%=INSTR(imm$,",") 13040IFI%=0THEN 13050 imm%=EVAL(imm$) 13060ELSE 13070 bits%=EVAL(LEFT$(imm$,I%-1)) 13080 shift%=EVAL(RIGHT$(imm$,LEN(imm$)-I%)) 13090 imm%=(bits%<<(32-shift%))OR(bits%>>shift%) 13100ENDIF 13110=imm% 13120 13130DEFFNinst(inst%) 13140IF(inst%AND&FF000000)=&EA000000THEN= 1:REM BAL 13150IF(inst%AND&0F000000)=&0A000000THEN= 2:REM conditional branch 13160IF(inst%AND&0F000000)=&0B000000THEN= 3:REM BL 13170IF(inst%AND&FE108000)=&E8108000THEN= 4:REM LDM ,{PC} 13180IF(inst%AND&0F000000)=&0F000000THEN= 5:REM SWI 13190IF(inst%AND&FDE0F000)=&E1A0F000THEN= 6:REM MOV PC, 13200IF(inst%AND&08EFFFF0)=&008FF100THEN= 7:REM Branch table 13210IF(inst%AND&0FEF0000)=&028F0000THEN= 8:REM ADR add 13220IF(inst%AND&0FEF0000)=&024F0000THEN= 9:REM ADR sub 13230IF(inst%AND&FFFFF000)=&E39EF000THEN=10:REM ORRS PC,R14,#... 13240IF(inst%AND&0F2F0000)=&050F0000THEN=11:REM LDR/STR Rn,<expr> 13250IF(inst%AND&0F000000)=&0E000000THEN=12:REM Co-pro 13260IF(inst%AND&0E000000)=&0C000000THEN=12:REM Co-pro 13270IF(inst%AND&0F000090)=&01000090THEN=13:REM Undefined 13280IF(inst%AND&0E000010)=&06000010THEN=13:REM Undefined 13290IF(inst%AND&FFFFF000)=&E3DEF000THEN=14:REM BICS PC,R14,#... 13300=0 13310 13320DEFFNreplay(target%,RETURN type%,RETURN number%) 13330IFNOTreadscript%THEN=FALSE 13340LOCALend%,string$,offset%,success%,I% 13350PTR#script%=0 13360end%=FALSE 13370REPEAT 13380 IFEOF#script%THEN 13390 success%=FALSE 13400 end%=TRUE 13410 ELSE 13420 string$=GET$#script% 13430 offset%=EVAL("&"+string$) 13440 IFoffset%=target%THEN 13450 success%=TRUE 13460 I%=INSTR(string$,",") 13470 LEFT$(string$,I%)=STRING$(I%," ") 13480 type%=EVALstring$ 13490 I%=INSTR(string$,",") 13500 LEFT$(string$,I%)=STRING$(I%," ") 13510 number%=EVALstring$ 13520 end%=TRUE 13530 ENDIF 13540 ENDIF 13550UNTILend% 13560=success% 13570 13580DEFFNyesno 13590G%=GET 13600IFG%=89 ORG%=121 THEN=TRUE ELSE=FALSE 13610 13620DATA StartCode,InitCode,FinalCode,SerCallHandler,TitleString,HelpString,HelpCommKeywTab,SWIChunkBaseNum,SWIHandlerCode,SWIDecodTab,SWIDecodCode 13630 13640DEFPROCprintString(Length%) 13650REM Prints a string in EQUS format 13660LOCALI%,String% 13670PRINTTAB(20)"EQUS "; 13680String%=FALSE 13690IFLength%>1THEN 13700 FORI%=0TOLength%-2 13710 Char%=strbuf%?I% 13720 REMChar%=ASC(MID$(String$,I%,1)) 13730 IF(Char%<32)OR(Char%>126)THEN 13740 IFString%THEN 13750 String%=FALSE 13760 PRINT"""+CHR$"+STR$(Char%)+"+"; 13770 ELSE 13780 PRINT"CHR$"+STR$(Char%)+"+"; 13790 ENDIF 13800 ELSE 13810 IFString%THEN 13820 PRINTCHR$(Char%); 13830 ELSE 13840 String%=TRUE 13850 PRINT""""+CHR$(Char%); 13860 ENDIF 13870 IFChar%=34THENPRINTCHR$(Char%); 13880 ENDIF 13890 NEXT 13900ENDIF 13910Char%=strbuf%?(Length%-1) 13920REMChar%=ASC(RIGHT$(String$,1)) 13930IF(Char%<32)OR(Char%>126)THEN 13940 IFString%THEN 13950 PRINT"""+CHR$"+STR$(Char%) 13960 ELSE 13970 PRINT"CHR$"+STR$(Char%) 13980 ENDIF 13990ELSE 14000 IFString%THEN 14010 PRINTCHR$(Char%)+"""" 14020 ELSE 14030 PRINT""""+CHR$(Char%)+"""" 14040 ENDIF 14050ENDIF 14060ENDPROC
� >ModDis201 � Revised script file format "� Detects end-of-code with BIC (!� Handles help code correctly 2)� Fixed negative bug in PROCloadtypes <3� Some support for out-of-module branches added F:� 'Acorn' compressed string format can now be selected P-� Works with modules with no title string Z� >ModDis200 d1� New version recognises its own script files n� OSWriteI recognised x2� Doesn't crash when padded string ends module �� >ModDis105 �$� Fixed bug with word in PROCask �A� Length of padded string now captured when writescript%=TRUE �0� Works if branch table not followed by code �� >ModDis104 �-� Fixed bug with SWI branch table overrun �� Fixed bug with SWI mask �8� No more keypress prompts while reading script file �@� Warns about simultaneously reading and writing script file �� >ModDis103 �@� Can cope with some strings longer than 255 bytes (I think) �'� Copes with " character in strings �� >ModDis102 +� Bundled macro for ADRlong implemented � >ModDis101 � Scripts added "@� Bug with SWI table entries exceeding number of names fixed ,� >ModDis100 6(� Keyword table now copes with zeros @5� Copes with ADR followed by ADD or SUB (ADRlong) J� Speeded up final pass T� Fixed bug in EQUW ^� >ModDisF h#� Sorted out bits,shift problem r� >ModDisE |6� Tried to improve recognition of SWI branch table �� Added external type (7) �2� Header labels now take precedence over sABCD �0� Alignment problem with SWI OS_WriteS fixed �� >ModDisD �� Debug information added �.� Better trapping for no SWI decoding code �� >ModDisC �#� Recognises Configure keywords �4� Warns about coprocessor and undefined commands �9� Recognises CR-terminated strings and padded strings �2� Provision for loading and saving type% array �� >ModDisB �"� Provision for LDR/STR Rn,exp � Speeded up Ask � Lorcan Mongey &� 56 Salisbury Court 0� Dublin Road :� Belfast BT7 1DD D� Tel: 0232 234386 N X0� I can also be reached at the following BBS b l'� BBS Telephone ID v4� ---------------------------------------------- �4� CIX 081 390 1244 lorcan@cix.uucp �2� World of Cryton 0749 670030 lorcan (#237) �2� Arcade 081 654 2212 lorcan (#417) � � �init � �external ��header � offset%=0 �ȕoffset%<=bytes% �' �type%(offset%)=0��ask:offset%-=1 � offset%+=1 � �#0 �dis *� 4 >��address(� offset%) HȎtype%(offset%)� R �0: \ �3:� f$ :�255,"Expecting type 3 or 0" p� z�I% �address%=base%!offset% ��I%=0�3 � type%(offset%+I%)=3 �� �offset%+=4 �� � ���adradd � �I%,len2% ��I%=0�3 � type%(offset%+I%)=5 �� �I%=�inst$,"#") dest$=�inst$,I%+1,9) dest%=�imm(dest$)+offset%+8 �checkformore $&�dest%>bytes%�dest%<0�offset%+=4:� .1�label$(dest%)=""�label$(dest%)="x"+�~(dest%) 8�type%(dest%)=0� B �debug%� L �6 V �"Add",~offset% ` �7 j � t �whatsthis(offset%,dest%) ~ Ȏtype%� � �-4:�stringA(offset%) �( �-3:�paddedstring(dest%,number%) � �-2:�stringCR(dest%) � �-1:�string0(dest%) � � 0: � � 1:�byte(dest%) � � 2:�word(dest%) � � 4:�double(dest%) � � 5:�code(dest%) � � �� �offset%+=4 � ��adrsub �I% (�I%=0�3 2 type%(offset%+I%)=5 <� FI%=�inst$,"#") Pdest$=�inst$,I%+1,9) Zdest%=offset%-�imm(dest$)+8 d�checkformore n&�dest%>bytes%�dest%<0�offset%+=4:� x1�label$(dest%)=""�label$(dest%)="x"+�~(dest%) ��type%(dest%)=0� � �debug%� � �6 � �"Sub",~offset% � �7 � � � �whatsthis(offset%,dest%) � Ȏtype%� � �-4:�stringA(offset%) �( �-3:�paddedstring(dest%,number%) � �-2:�stringCR(dest%) � �-1:�string0(dest%) � � 0: � 1:�byte(dest%) � 2:�word(dest%) � 4:�double(dest%) " � 5:�code(dest%) , � 6� @offset%+=4 J� T ^��align(� offset%) hȎtype%(offset%)� r �0: | �6:� �$ :�255,"Expecting type 6 or 0" �� � �pointer% �pointer%=offset%+base% �ȕpointer%�4<>0 � type%(offset%)=6 � pointer%+=1 � offset%+=1 �� �� � � ��ask ��count%,type%,I%,J% count%=1 Aȕtype%(offset%+count%)=0�(offset%+count%)<=bytes%�count%<=68 count%+=1 &� 0,�"MemoryI "+�~(offset%+base%-&20)+" +20" :�1 D'�"MemoryI "+�~(offset%+base%)+" +4" N�7 X*�"MemoryI "+�~(offset%+base%+4)+" +20" b7�'count%," byte(s) at ";~offset%;" of unknown type" ltype%=0:number%=1 v%笤replay(offset%,type%,number%)� � �type% � Ȏtype%� �3 �-3 :�"Length of padded string",number% �$ �1,2,3,4:�"How many",number% � � �% �capture(offset%,type%,number%) �� �Ȏtype%� � �-4:�stringA(offset%) �( �-3:�paddedstring(offset%,number%) � �-2:�stringCR(offset%) � �-1:�string0(offset%) �( � 1:�J%=1�number%:�byte(offset%):� ( � 2:�J%=1�number%:�word(offset%):� + � 3:�J%=1�number%:�address(offset%):� * � 4:�J%=1�number%:�double(offset%):� � 5:�code(offset%) * � 6:�align(offset%) 4� >� H R��branch \/dest%=(((�(�inst$,len%-7)))<<8)>>8)+offset% f&�dest%>bytes%�dest%<0�offset%+=4:� p1�label$(dest%)=""�label$(dest%)="x"+�~(dest%) z�code(dest%) �offset%+=4 �� � ���branchlink �/dest%=(((�(�inst$,len%-7)))<<8)>>8)+offset% �&�dest%>bytes%�dest%<0�offset%+=4:� �G�label$(dest%),1)="x"�label$(dest%)=""�label$(dest%)="s"+�~(dest%) ��code(dest%) �offset%+=4 �� � ���branchtable ��endoftable% offset%+=4 �I% endoftable%=� $� . inst%=base%!offset% 8 inst$=�extract(inst%,len%) B Ȏ�inst(inst%)� L �1:�I%=0�3 V# type%(offset%+I%)=5 ` � j �branch t :endoftable%=� ~ � ��endoftable% �� � ���byte(� offset%) �Ȏtype%(offset%)� � �0: � �1:� �$ :�255,"Expecting type 1 or 0" �� �byte%=base%?offset% �type%(offset%)=1 �offset%+=1 � $��capture(offset%,type%,number%) �string$ (�writescript%� 2/ string$=�~offset%+","+�type%+","+�number% < �#script%=�#script% F �#script%,string$ P� Z� d n��checkformore x�I% �cond%=(inst%�&F0000000)>>28 �rd%=(inst%�&0000F000)>>12 �)same%=(cond%<<28)�(rd%<<16)�(rd%<<12) �mask%=&FFEFF000 �target1%=&02800000 �same% �target2%=&02400000 �same% �inst2%=base%!(offset%+4) � extra$="" �9�((inst2%�mask%)=target1%)�((inst2%�mask%)=target2%)� �# inst2$=�extract(inst2%,len2%) � I%=�inst2$,"#") � dest2$=�inst2$,I%+1,9) � offset2%=�imm(dest2$) " �(inst2%�&00800000)=&800000� dest%+=offset2% extra$="-&"+�~offset2% " � , dest%-=offset2% 6 extra$="+&"+�~offset2% @ � J �debug%� T �6 ^ �"ADRL" h+ �"MemoryI "+�~(base%+offset%)+" +8" r �~dest% offset2% | G%=� � �7 � � �� �� � ���code(� offset%) �Ȏtype%(offset%)� � �0: � �5:� �$ :�255,"Expecting type 5 or 0" �� ��I% �inst%=base%!offset% �debug%� �6 �"Code",~offset% & �7 0� :�I%=0�3 D type%(offset%+I%)=5 N� Xinst$=�extract(inst%,len%) b return%=� lȎ�inst(inst%)� v � 1:�branch:� � � 2:�branch � � 3:�branchlink � � 4:� �# � 5:�swi:�return%�return%=�:� � � 6:� � � 7:�branchtable:� � � 8:�adradd � � 9:�adrsub � �10:� � �11:�lsexp � �12:�copro:� � �13:�undef:� � �14:� :offset%+=4 � �offset%>bytes%�� �type%(offset%)=0��d~K *� 4 >��copro H�I% R�7 \8�"Attempting to disassemble coprocessor instruction" f#�("MemoryI "+�~(offset%+base%)) p�readscript%� z" �"Continuing in a moment..." � �I%=1�100000:� �� �# �"Press any key to continue"' � G%=� �� ��I%=0�3 � type%(offset%+I%)=0 �� �� � ���debug ��offset%=0�bytes% ��label$(offset%)<>""� 2 �~offset%,type%(offset%)," ",label$(offset%) � � $*MEMORYI 10000 +32 .G%=� 8�I%=0�bytes% B �~I%,type%(I%),label$(I%) L� VG%=� `�I%=0�bytes% j, �type%(I%)=0��~I%,type%(I%),label$(I%) t� ~� � � ��dis � offset%=0 ��"Spool SOURCES."+filename$ ��"REM >SOURCES."+filename$ ��"DIMcode%&10000" ��"FORI%=0TO&10000STEP4" ��" code%!I%=0" ��"NEXT" ��"OS_WriteI=&100" ��"XOS_WriteI=&20100" ��"FORpass%=4TO7STEP3" �"O%=code%" �"P%=0" �"[OPT pass%" � ( Ȏtype%(offset%)� 2 �-3:�dispaddedstring < �-2:�disstrCR F �-1:�disstr0 P � 0:offset%+=1 Z � 1:�disbyte d � 2:�disword n � 3:�disaddr x � 4:�disdoub � � 5:�discode � � 6:�disalign � � 7:�disexternal � � ��offset%>bytes% � �"]:NEXT" �A�"SYS""OS_File"",10,""MODULES."+filename$+""",&FFA,,code%,O%" ��"END"' �#�"DEFFNadrl(cond$,reg%,label$)" �1�"IFcond$=""""ORcond$="" ""THENcond$=""AL""" �D�"cc%=(INSTR(""EQNECSCCMIPLVSVCHILSGELTGTLEALNV"",cond$)-1)DIV2" ��"IFpass%AND2=0THEN" ��" [OPT pass%" �" EQUD 0" �" EQUD 0" �" ]" "�"ELSE" ,"�" offset%=EVAL(label$)-P%-8" 6�" lo%=ABS(offset%)AND&FF" @!�" hi%=ABS(offset%)AND&FF00" J�" IFoffset%>=0THEN" T5�" op1%=(cc%<<28)OR(&028F0000+(reg%<<12)+lo%)" ^E�" op2%=(cc%<<28)OR(&02800C00+(reg%<<16)+(reg%<<12)+(hi%>>8))" h �" ELSE" r5�" op1%=(cc%<<28)OR(&024F0000+(reg%<<12)+lo%)" |E�" op2%=(cc%<<28)OR(&02400C00+(reg%<<16)+(reg%<<12)+(hi%>>8))" ��" ENDIF" ��" [OPT pass%" ��" EQUD op1%" ��" EQUD op2%" � �" ]" ��"ENDIF" � �"=0" � *Spool �� � � ��disaddr �address%=base%!offset% �.�label$(offset%)<>""��".";label$(offset%); $�20)"EQUD ";label$(address%) offset%+=4 � & 0��disadradd :inst%=base%!offset% Dinst$=�extract(inst%,len%) NI%=�inst$,"#") X%dest%=�(�inst$,I%+1,9))+offset%+8 b�checkformore l�extra$=""� v0 �label$(offset%)<>""��".";label$(offset%); � I%=�inst$,",") � �inst$)="ADR" �# �20)�inst$,I%)+label$(dest%) � offset%+=4 �� �0 �label$(offset%)<>""��".";label$(offset%); � cond$=�inst$,4,2) � �dest%>bytes%�dest%<0� �@ �20)"FNadrl("""+cond$+""","+�(rd%)+",""&"+�~dest%+""")" � � �E �20)"FNadrl("""+cond$+""","+�(rd%)+","""+label$(dest%)+""")" � � � offset%+=8 � � ��disadrsub *inst%=base%!offset% 4inst$=�extract(inst%,len%) >I%=�inst$,"#") H&dest%=-�(�inst$,I%+1,9))+offset%+8 R�checkformore \�extra$=""� f0 �label$(offset%)<>""��".";label$(offset%); p I%=�inst$,",") z �inst$)="ADR" �# �20)�inst$,I%)+label$(dest%) � offset%+=4 �� �0 �label$(offset%)<>""��".";label$(offset%); � cond$=�inst$,4,2) � �dest%>bytes%�dest%<0� �@ �20)"FNadrl("""+cond$+""","+�(rd%)+",""&"+�~dest%+""")" � � �E �20)"FNadrl("""+cond$+""","+�(rd%)+","""+label$(dest%)+""")" � � � offset%+=8 �� �� ��disalign �pointer% $�20)"ALIGN" .pointer%=offset%+base% 8ȕpointer%�4<>0 B pointer%+=1 L offset%+=1 V� `� j t��disbl ~/dest%=(((�(�inst$,len%-7)))<<8)>>8)+offset% �.�label$(offset%)<>""��".";label$(offset%); ��dest%>bytes%�dest%<0� � �20)�inst$,8)+"&";~dest% �� �" �20)�inst$,8)+label$(dest%) �� �offset%+=4 �� � ���disbranch �/dest%=(((�(�inst$,len%-7)))<<8)>>8)+offset% �.�label$(offset%)<>""��".";label$(offset%); �dest%>bytes%�dest%<0� �20)�inst$,8)+"&";~dest% � " �20)�inst$,8)+label$(dest%) � (offset%+=4 2� < F ��disbyte Pbyte%=base%?offset% Z.�label$(offset%)<>""��".";label$(offset%); dbyte$=�~(byte%) n byte$=�2-�(byte$),"0")+byte$ x�20)"EQUB &";byte$ �offset%+=1 �� � � ��discode �inst%=base%!offset% �inst$=�extract(inst%,len%) �Ȏ�inst(inst%)� � � 1:�disbranch � � 2:�disbranch � � 3:�disbl � � 4:�disother � � 5:�disswi � � 6:�disother � 7:�disother � 8:�disadradd � 9:�disadrsub " �10:�disother , �11:�dislsexp 6 �12:�discopro @ �13:�disundef J �14:�disother T :�disother ^� h� r | ��disdoub �double%=base%!offset% �.�label$(offset%)<>""��".";label$(offset%); �double$=�~(double%) �&double$=�8-�(double$),"0")+double$ ��20)"EQUD &";double$ �offset%+=4 �� � ���disexternal �� Desktop module �Ȏoffset%� � � &5FC:�"]" �9 �"OSCLI""Load TEMPLATES.Filer ""+STR$~O%" �"O%+=&489" �"P%+=&489" �"[OPT pass%" & offset%+=&489 0 � &AAF:�"]" :< �"OSCLI""Load TEMPLATES.NetFiler ""+STR$~O%" D �"O%+=&43F" N �"P%+=&43F" X �"[OPT pass%" b offset%+=&43F l � &F16:�"]" v; �"OSCLI""Load TEMPLATES.Palette ""+STR$~O%" � �"O%+=&4E1" � �"P%+=&4E1" � �"[OPT pass%" � offset%+=&4E1 � �&141F:�"]" �< �"OSCLI""Load TEMPLATES.Switcher ""+STR$~O%" � �"O%+=&4D9" � �"P%+=&4D9" � �"[OPT pass%" � offset%+=&4D9 � �&191B:�"]" �8 �"OSCLI""Load TEMPLATES.Wimp ""+STR$~O%" � �"O%+=&27D" �"P%+=&27D" �"[OPT pass%" offset%+=&27D � *� 4 >��dislsexp Hinst%=base%!offset% Rinst$=�extract(inst%,len%) \I%=�inst$,"#")+1 fJ%=�inst$,"]")-I% p$dest%=�(�inst$,I%,J%))+offset%+8 z.�label$(offset%)<>""��".";label$(offset%); �I%=�inst$,",") �!�20)�inst$,I%)+label$(dest%) �offset%+=4 �� � ���disother �.�label$(offset%)<>""��".";label$(offset%); ��20)inst$ �offset%+=4 �� � ���dispaddedstring � �end% strlen%=0 .�label$(offset%)<>""��".";label$(offset%); end%=� $� . char$=�(base%?offset%) 8 strbuf%?strlen%=�char$ B strlen%+=1 L offset%+=1 V �offset%>bytes%� ` end%=� j � t7 �type%(offset%)<>-3 �label$(offset%)<>""�end%=� ~ � � �end% ��printString(strlen%) �� � � ��disstr0 � strlen%=0 �.�label$(offset%)<>""��".";label$(offset%); �� � char$=�(base%?offset%) � strbuf%?strlen%=�char$ � strlen%+=1 � offset%+=1 �char$=�27� char$=�(base%?offset%) strbuf%?strlen%=�char$ strlen%+=1 ( offset%+=1 2 char$=�(base%?offset%) < strbuf%?strlen%=�char$ F strlen%+=1 P offset%+=1 Z � d"�char$=�0 �label$(offset%)<>"" n�printString(strlen%) x� � ���disstrCR � �len% � string$=$(base%+offset%)+�13 �$strbuf%=string$ �strlen%=�string$ �.�label$(offset%)<>""��".";label$(offset%); �offset%+=strlen% ��printString(strlen%) �� � ���disswi �!�(inst%�&0FFDFF00)=&0F000100� I%=�inst$,"""") �I%<>0� 4 inst$=�inst$,I%-1)+"ASC"+�inst$,�inst$-I%+1) " � ,� 6 ��inst$,4)="User"� @ num%=inst%�&00FFFFFF J" inst$=�inst$,8)+"&"+�~num% T � ^0 inst$=�inst$,8)+""""+�inst$,len%-8)+"""" h � r� |.�label$(offset%)<>""��".";label$(offset%); ��20)inst$ �num%=inst%�smask% �offset%+=4 �Ȏnum%� � �1:�disstr0:�disalign �� �� � � ��disword �0word%=base%?offset%+&100*(base%?(offset%+1)) �.�label$(offset%)<>""��".";label$(offset%); �word$=�~(word%) � word$=�4-�(word$),"0")+word$ �20)"EQUW &";�~(word%) offset%+=2 � & 0��double(� offset%) :Ȏtype%(offset%)� D �0: N �3,4:� X' :�255,"Expecting type 3, 4 or 0" b� l�I% vdouble%=base%!offset% ��I%=0�3 � type%(offset%+I%)=4 �� �offset%+=4 �� � ���error � *Spool ��7 ��$+" at line ";� z�#0 �� � � ��exit � return%=� �offset%+=4 �� � ���external �� � <��external F� Desktop module P�offset%=&5FC�&5FC+&489-1 Z type%(offset%)=7 d� n�offset%=&AAF�&AAF+&43F-1 x type%(offset%)=7 �� ��offset%=&F16�&F16+&4E1-1 � type%(offset%)=7 �� ��offset%=&141F�&141F+&4D9-1 � type%(offset%)=7 �� ��offset%=&191B�&191B+&27D-1 � type%(offset%)=7 �� �� � ���header label$(0)="Header" offset%=0 �I%=0�3 " �A$ , �debug%� 6 �6 @ �A$ J �7 T � ^ �base%!offset%=0� h �double(offset%) r � | �address(offset%) � label$(address%)=A$ � �code(address%) � � �� �� Title string ��debug%� � �6 � �"TitleString" � �7 �� � �A$ � �base%!offset%=0� � �double(offset%) � � �address(offset%) label$(address%)=A$ & �string0(address%) 0 � :� Help string D�A$ N�debug%� X �6 b �A$ l �7 v� ��base%!offset%=0� � �double(offset%) �� � �address(offset%) � label$(address%)=A$ � �string0(address%) �� �$� Help and command keyword table ��A$ ��debug%� � �6 � �A$ � �7 !� !�base%!offset%=0� ! �double(offset%) ! � !* �address(offset%) !4 label$(address%)=A$ !> �kwtable(address%) !H� !R !\�type%(offset%)<>0�� !f� SWI chunk base number !p�debug%� !z �6 !� �"SWIChunkBaseNumber" !� �7 !�� !��base%!offset%=0�� !�-�((base%!offset%)�&FF00003F)<>&00000000�� !�1�((base%!(offset%+4))�&FC000003)<>&00000000�� !��double(offset%) !� !�� SWI decoding table !�offset%=&24 !��(base%!offset%<bytes%)� !� �debug%� !� �6 " �"SWIDecodingTable" " �7 " � "$ �base%!offset%=0� ". �double(offset%) "8 � "B �address(offset%) "L) label$(address%)="SWIDecodeTable" "V �switable(address%) "` � "j� "t "~� SWI handler code "�offset%=&20 "��debug%� "� �6 "� �"SWIHandlerCode" "� �7 "�� "��base%!offset%=0� "� �double(offset%) "�� "� �address(offset%) "�' label$(address%)="SWIHandlerCode" "� �swihandler(address%) # � # #� SWI decoding code #offset%=&28 #(�debug%� #2 �6 #< �"SWIDecodingCode" #F �7 #P� #Z�base%!offset%=0� #d �double(offset%) #n� #x �base%!offset%<bytes%� #� �address(offset%) #�( label$(address%)="SWIDecodeCode" #� �code(address%) #� � #�� #�� #� #� ��init #���error #��=&30000 #�version$="2.00" #�stage%=0 #�3debug%=�:� Prints debugging information in cyan $=flop%=�:� Accept floating-point opcodes (not implemented) $1readscript%=�:� Read user responses from file $1writescript%=�:� Write user responses to file $"K�IFreadscript%ANDwritescript%THENERROR255,"Can't read and write script" $,base%=&10000 $65�MODE20:REM If you have no multisync, try MODE 12 $@.�12:� If you have a multisync, try MODE 20 $J�"filename",filename$ $T>ș"OS_File",12,filename$,base%,0,"ORIGINALS."�,,,,filelen% $^�readscript%�writescript%� $h/ ș"OS_File",17,"SCRIPTS."+filename$�type% $r; �type%=0�ș"OS_File",11,"SCRIPTS."+filename$,&FFF,0,0 $|% script%=�("SCRIPTS."+filename$) $�� $�>� Fix for Podule !&107C8=&814:REM @@@@@@@@@@@@@@@@@@@@@@@@ $�bytes%=filelen%-1 $�words%=((bytes%+1)�4)-1 $�E�label$(bytes%),type%(bytes%+1),buffer%&100,swi$(63),strbuf%&1000 $�bmask%=(%1111)<<24 $�b%=(%1010)<<24 $�bl%=(%1011)<<24 $�!end%=(%11101000000100001)<<15 $�emask%=end% $�smask%=&000DFFFF $�swi%=(%1111)<<24 $�� % %��kwtable(offset%) %�keyword$,helpcode% %&� %0 helpcode%=� %: �string0(offset%) %D keyword$=string$ %N �align(offset%) %X offset%+=4 %b �double(offset%) %l? �(double%�&40000000)=&40000000�keyword$="Config"+keyword$ %v0 �(double%�&20000000)=&20000000�helpcode%=� %� offset%-=8 %� �base%!offset%=0� %� �double(offset%) %� � %�. �base%!offset%>bytes%�base%!offset%<0� %� �double(offset%) %� � %� �address(offset%) %�* label$(address%)=keyword$+"Code" %� �code(address%) %� � %� � %� offset%+=4 & �base%!offset%=0� & �double(offset%) & � & �address(offset%) &** label$(address%)=keyword$+"Syntax" &4 �stringA(address%) &> � &H �base%!offset%=0� &R �double(offset%) &\ � &f �address(offset%) &p( label$(address%)=keyword$+"Help" &z �helpcode%� &� �code(address%) &� � &� �stringA(address%) &� � &� � &��base%?offset%=0 &��byte(offset%) &�� &� &���loadtypes &� �F%,I% &�F%=�("Types") &��I%=0�bytes% ' type%(I%)=�#F% '# �type%(I%)>127�type%(I%)-=256 '� '$�#F% '.F%=�("Labels") '8�I%=0�bytes% 'B �#F%,label$(I%) 'L� 'V�#F% '`� 'j 't��lsexp '~ �I%,J% '��I%=0�3 '� type%(offset%+I%)=5 '�� '�I%=�inst$,"#")+1 '�J%=�inst$,"]")-I% '�$dest%=�(�inst$,I%,J%))+offset%+8 '�1�label$(dest%)=""�label$(dest%)="x"+�~(dest%) '��type%(dest%)=0� '� �debug%� '� �6 '� �"LSexp",~offset% '� �7 ( � ( �whatsthis(offset%,dest%) ( Ȏtype%� ( �-4:�stringA(offset%) ((( �-3:�paddedstring(dest%,number%) (2 �-2:�stringCR(dest%) (< �-1:�string0(dest%) (F � 0: (P � 1:�byte(dest%) (Z � 2:�word(dest%) (d � 4:�double(dest%) (n � 5:�code(dest%) (x � (�� (�offset%+=4 (�� (� (�"��paddedstring(� offset%,len%) (��I% (�Ȏtype%(offset%)� (� � 0: (� �-3:�ENDPROC (�% :�255,"Expecting type -3 or 0" (�� (��I%=1�len% (� type%(offset%)=-3 ) offset%+=1 )� )� )" ),��savetypes )6 �F%,I% )@F%=�("Types") )J�I%=0�bytes% )T �#F%,type%(I%) )^� )h�#F% )rF%=�("Labels") )|�I%=0�bytes% )� �#F%,label$(I%) )�� )��#F% )�� )� )���string0(� offset%) )�Ȏtype%(offset%)� )� � 0: )� �-1:�ENDPROC )�% :�255,"Expecting type -1 or 0" )�� )�string$="" )�ȕbase%?offset%<>0 *- �string$<255�string$+=�(base%?offset%) * type%(offset%)=-1 * offset%+=1 *&� *0type%(offset%)=-1 *:offset%+=1 *D� *N *X��stringA(� offset%) *bȎtype%(offset%)� *l � 0: *v �-1:� *�% :�255,"Expecting type -1 or 0" *�� *�ȕbase%?offset%<>0 *� type%(offset%)=-1 *� �base%?offset%=27� *� offset%+=1 *� type%(offset%)=-1 *� � *� offset%+=1 *�� *�type%(offset%)=-1 *�offset%+=1 *�� + +��stringCR(� offset%) +Ȏtype%(offset%)� + � 0: +* �-2:�ENDPROC +4% :�255,"Expecting type -2 or 0" +>� +Hȕbase%?offset%<>13 +R type%(offset%)=-2 +\ offset%+=1 +f� +ptype%(offset%)=-2 +zoffset%+=1 +�� +� +� ��swi +�,inst$=�inst$,8)+""""+�inst$,len%-8)+"""" +�num%=inst%�smask% +�Ȏnum%� +� � 1:�writeS +� �&11:�exit +� :offset%+=4 +�� +�� +� +���swibranch ,/dest%=(((�(�inst$,len%-7)))<<8)>>8)+offset% ,�swi$(counter%)=""� ,3 �label$(dest%)=""�label$(dest%)="x"+�~(dest%) ,$� ,." label$(dest%)=swi$(counter%) ,8� ,B�code(dest%) ,Loffset%+=4 ,V� ,` ,j��swibranchtable ,t�debug%� ,~ �6 ,� �"Got to SWI branch table" ,� �7 ,�� ,�offset%+=4 ,��I%,end%,counter% ,� end%=� ,�� ,� �type%(offset%)=0� ,� inst%=base%!offset% ,� �I%=0�3 ,� type%(offset%+I%)=5 ,� � - " inst$=�extract(inst%,len%) - �debug%� - �6 - �counter%,�inst(inst%) -( �7 -2 � -< Ȏ�inst(inst%)� -F �1:�swibranch -P :�counter%=0� -Z$ �code(offset%) -d offset%+=4 -n � -x+ end%=�:� End of table -� � -� � -� counter%+=1 -� � -� end%=� -� � -� �end% -��debug%� -� �6 -�5 �"Left SWI branch table with counter=";counter% -� �7 -�� -�� . .��swihandler(offset%) .Ȏtype%(offset%)� ." �0: ., �5:� .6$ :�255,"Expecting type 5 or 0" .@� .J�I% .Tinst%=base%!offset% .^�I%=0�3 .h type%(offset%+I%)=5 .r� .|inst$=�extract(inst%,len%) .�Ȏ�inst(inst%)� .� � 1:�branch:� .�P �WHEN 2:IFFNinst(base%!(offset%+4))=2THENPROCswibranchtable ELSEPROCbranch .� � 2:�branch .� � 3:�branchlink .� � 4:� .� � 5:�swi .� � 6:� .� � 7:�swibranchtable .� � 8:�adradd .� � 9:�adrsub .� �10:� .� �11:�lsexp / �12:�copro:� / �13:�undef:� / �14:� /& :offset%+=4 /0� /:�offset%>bytes%�� /D�type%(offset%)=0��DTn /N� /X /b��switable(� offset%) /l�I%,prefix$ /v�string0(offset%) /�prefix$=string$+"_" /�swi$(I%)=prefix$+"BadSWI" /� I%+=1 /�ȕbase%?offset%<>0 /� �string0(offset%) /� swi$(I%)=prefix$+string$ /� I%+=1 /�� /��byte(offset%) /�� /� /���undef /��I% 0�7 06�"Attempting to disassemble undefined instruction" 0#�("MemoryI "+�~(offset%+base%)) 0 �readscript%� 0*" �"Continuing in a moment..." 04 �I%=1�100000:� 0>� 0H# �"Press any key to continue"' 0R G%=� 0\� 0f�I%=0�3 0p type%(offset%+I%)=0 0z� 0�� 0� 0���whatsthis(offset%,dest%) 0��count%,I% 0�count%=1 0�=ȕtype%(dest%+count%)=0�(dest%+count%)<=bytes%�count%<=68 0� count%+=1 0�� 0��3 0�(�"MemoryI "+�~(offset%+base%)+" +10" 0��7:� 0�*�"MEMORYI "+�~(dest%+base%-&20)+" +20" 0��1 1%�"MEMORYI "+�~(dest%+base%)+" +4" 1�7 1(�"MEMORYI "+�~(dest%+base%+4)+" +20" 1$�'~dest% 1.�"What's this?" 18type%=0:number%=1 1B#笤replay(dest%,type%,number%)� 1L �type% 1V2 �type%=-3��"Length of padded string",number% 1`- �type%<>0��capture(dest%,type%,number%) 1j� 1t� 1~ 1���word(� offset%) 1�Ȏtype%(offset%)� 1� �0: 1� �2:� 1�$ :�255,"Expecting type 2 or 0" 1�� 1��I% 1�0word%=base%?offset%+&100*(base%?(offset%+1)) 1��I%=0�1 1� type%(offset%+I%)=2 1�� 1�offset%+=2 2 � 2 2��writeS 2offset%+=4 2(�string0(offset%) 22�offset%�4<>0� 2< �align(offset%) 2F� 2P� 2Z 2dݤextract(inst%,� len%) 2n�I% 2x2ș"Debugger_Disassemble",inst%,0�,buffer%,len% 2�len%-=1 2�inst$="" 2�� 2� inst$+=�(buffer%?I%) 2� I%+=1 2��buffer%?I%=0 2� =inst$ 2� 2�ݤimm(imm$) 2��I%,imm%,bits%,shift% 2�I%=�imm$,",") 2� �I%=0� 2� imm%=�(imm$) 3� 3 bits%=�(�imm$,I%-1)) 3! shift%=�(�imm$,�(imm$)-I%)) 3"/ imm%=(bits%<<(32-shift%))�(bits%>>shift%) 3,� 36 =imm% 3@ 3Jݤinst(inst%) 3T*�(inst%�&FF000000)=&EA000000�= 1:� BAL 3^9�(inst%�&0F000000)=&0A000000�= 2:� conditional branch 3h)�(inst%�&0F000000)=&0B000000�= 3:� BL 3r0�(inst%�&FE108000)=&E8108000�= 4:� LDM ,{PC} 3|*�(inst%�&0F000000)=&0F000000�= 5:� SWI 3�.�(inst%�&FDE0F000)=&E1A0F000�= 6:� MOV PC, 3�3�(inst%�&08EFFFF0)=&008FF100�= 7:� Branch table 3�.�(inst%�&0FEF0000)=&028F0000�= 8:� ADR add 3�.�(inst%�&0FEF0000)=&024F0000�= 9:� ADR sub 3�7�(inst%�&FFFFF000)=&E39EF000�=10:� ORRS PC,R14,#... 3�8�(inst%�&0F2F0000)=&050F0000�=11:� LDR/STR Rn,<expr> 3�-�(inst%�&0F000000)=&0E000000�=12:� Co-pro 3�-�(inst%�&0E000000)=&0C000000�=12:� Co-pro 3�0�(inst%�&0F000090)=&01000090�=13:� Undefined 3�0�(inst%�&0E000010)=&06000010�=13:� Undefined 3�7�(inst%�&FFFFF000)=&E3DEF000�=14:� BICS PC,R14,#... 3�=0 3� 4'ݤreplay(target%,� type%,� number%) 4�readscript%�=� 4%�end%,string$,offset%,success%,I% 4&�#script%=0 40 end%=� 4:� 4D ��#script%� 4N success%=� 4X end%=� 4b � 4l string$=�#script% 4v offset%=�("&"+string$) 4� �offset%=target%� 4� success%=� 4� I%=�string$,",") 4� �string$,I%)=�I%," ") 4� type%=�string$ 4� I%=�string$,",") 4� �string$,I%)=�I%," ") 4� number%=�string$ 4� end%=� 4� � 4� � 4� �end% 4� =success% 5 5ݤyesno 5G%=� 5 �G%=89 �G%=121 �=� �=� 5* 54�� StartCode,InitCode,FinalCode,SerCallHandler,TitleString,HelpString,HelpCommKeywTab,SWIChunkBaseNum,SWIHandlerCode,SWIDecodTab,SWIDecodCode 5> 5H��printString(Length%) 5R$� Prints a string in EQUS format 5\�I%,String% 5f�20)"EQUS "; 5p String%=� 5z�Length%>1� 5� �I%=0�Length%-2 5� Char%=strbuf%?I% 5�& �Char%=ASC(MID$(String$,I%,1)) 5� �(Char%<32)�(Char%>126)� 5� �String%� 5� String%=� 5�$ �"""+CHR$"+�(Char%)+"+"; 5� � 5�! �"CHR$"+�(Char%)+"+"; 5� � 5� � 5� �String%� 5� �(Char%); 6 � 6 String%=� 6 �""""+�(Char%); 6$ � 6. �Char%=34��(Char%); 68 � 6B � 6L� 6VChar%=strbuf%?(Length%-1) 6`!�Char%=ASC(RIGHT$(String$,1)) 6j�(Char%<32)�(Char%>126)� 6t �String%� 6~ �"""+CHR$"+�(Char%) 6� � 6� �"CHR$"+�(Char%) 6� � 6�� 6� �String%� 6� �(Char%)+"""" 6� � 6� �""""+�(Char%)+"""" 6� � 6�� 6�� �
00000000 0d 00 0a 10 f4 20 3e 4d 6f 64 44 69 73 32 30 31 |..... >ModDis201| 00000010 0d 00 14 20 f4 20 52 65 76 69 73 65 64 20 73 63 |... . Revised sc| 00000020 72 69 70 74 20 66 69 6c 65 20 66 6f 72 6d 61 74 |ript file format| 00000030 0d 00 1e 22 f4 20 44 65 74 65 63 74 73 20 65 6e |...". Detects en| 00000040 64 2d 6f 66 2d 63 6f 64 65 20 77 69 74 68 20 42 |d-of-code with B| 00000050 49 43 0d 00 28 21 f4 20 48 61 6e 64 6c 65 73 20 |IC..(!. Handles | 00000060 68 65 6c 70 20 63 6f 64 65 20 63 6f 72 72 65 63 |help code correc| 00000070 74 6c 79 0d 00 32 29 f4 20 46 69 78 65 64 20 6e |tly..2). Fixed n| 00000080 65 67 61 74 69 76 65 20 62 75 67 20 69 6e 20 50 |egative bug in P| 00000090 52 4f 43 6c 6f 61 64 74 79 70 65 73 0d 00 3c 33 |ROCloadtypes..<3| 000000a0 f4 20 53 6f 6d 65 20 73 75 70 70 6f 72 74 20 66 |. Some support f| 000000b0 6f 72 20 6f 75 74 2d 6f 66 2d 6d 6f 64 75 6c 65 |or out-of-module| 000000c0 20 62 72 61 6e 63 68 65 73 20 61 64 64 65 64 0d | branches added.| 000000d0 00 46 3a f4 20 27 41 63 6f 72 6e 27 20 63 6f 6d |.F:. 'Acorn' com| 000000e0 70 72 65 73 73 65 64 20 73 74 72 69 6e 67 20 66 |pressed string f| 000000f0 6f 72 6d 61 74 20 63 61 6e 20 6e 6f 77 20 62 65 |ormat can now be| 00000100 20 73 65 6c 65 63 74 65 64 0d 00 50 2d f4 20 57 | selected..P-. W| 00000110 6f 72 6b 73 20 77 69 74 68 20 6d 6f 64 75 6c 65 |orks with module| 00000120 73 20 77 69 74 68 20 6e 6f 20 74 69 74 6c 65 20 |s with no title | 00000130 73 74 72 69 6e 67 0d 00 5a 10 f4 20 3e 4d 6f 64 |string..Z.. >Mod| 00000140 44 69 73 32 30 30 0d 00 64 31 f4 20 4e 65 77 20 |Dis200..d1. New | 00000150 76 65 72 73 69 6f 6e 20 72 65 63 6f 67 6e 69 73 |version recognis| 00000160 65 73 20 69 74 73 20 6f 77 6e 20 73 63 72 69 70 |es its own scrip| 00000170 74 20 66 69 6c 65 73 0d 00 6e 19 f4 20 4f 53 57 |t files..n.. OSW| 00000180 72 69 74 65 49 20 72 65 63 6f 67 6e 69 73 65 64 |riteI recognised| 00000190 0d 00 78 32 f4 20 44 6f 65 73 6e 27 74 20 63 72 |..x2. Doesn't cr| 000001a0 61 73 68 20 77 68 65 6e 20 70 61 64 64 65 64 20 |ash when padded | 000001b0 73 74 72 69 6e 67 20 65 6e 64 73 20 6d 6f 64 75 |string ends modu| 000001c0 6c 65 0d 00 82 10 f4 20 3e 4d 6f 64 44 69 73 31 |le..... >ModDis1| 000001d0 30 35 0d 00 8c 24 f4 20 46 69 78 65 64 20 62 75 |05...$. Fixed bu| 000001e0 67 20 77 69 74 68 20 77 6f 72 64 20 69 6e 20 50 |g with word in P| 000001f0 52 4f 43 61 73 6b 0d 00 96 41 f4 20 4c 65 6e 67 |ROCask...A. Leng| 00000200 74 68 20 6f 66 20 70 61 64 64 65 64 20 73 74 72 |th of padded str| 00000210 69 6e 67 20 6e 6f 77 20 63 61 70 74 75 72 65 64 |ing now captured| 00000220 20 77 68 65 6e 20 77 72 69 74 65 73 63 72 69 70 | when writescrip| 00000230 74 25 3d 54 52 55 45 0d 00 a0 30 f4 20 57 6f 72 |t%=TRUE...0. Wor| 00000240 6b 73 20 69 66 20 62 72 61 6e 63 68 20 74 61 62 |ks if branch tab| 00000250 6c 65 20 6e 6f 74 20 66 6f 6c 6c 6f 77 65 64 20 |le not followed | 00000260 62 79 20 63 6f 64 65 0d 00 aa 10 f4 20 3e 4d 6f |by code..... >Mo| 00000270 64 44 69 73 31 30 34 0d 00 b4 2d f4 20 46 69 78 |dDis104...-. Fix| 00000280 65 64 20 62 75 67 20 77 69 74 68 20 53 57 49 20 |ed bug with SWI | 00000290 62 72 61 6e 63 68 20 74 61 62 6c 65 20 6f 76 65 |branch table ove| 000002a0 72 72 75 6e 0d 00 be 1d f4 20 46 69 78 65 64 20 |rrun..... Fixed | 000002b0 62 75 67 20 77 69 74 68 20 53 57 49 20 6d 61 73 |bug with SWI mas| 000002c0 6b 0d 00 c8 38 f4 20 4e 6f 20 6d 6f 72 65 20 6b |k...8. No more k| 000002d0 65 79 70 72 65 73 73 20 70 72 6f 6d 70 74 73 20 |eypress prompts | 000002e0 77 68 69 6c 65 20 72 65 61 64 69 6e 67 20 73 63 |while reading sc| 000002f0 72 69 70 74 20 66 69 6c 65 0d 00 d2 40 f4 20 57 |ript file...@. W| 00000300 61 72 6e 73 20 61 62 6f 75 74 20 73 69 6d 75 6c |arns about simul| 00000310 74 61 6e 65 6f 75 73 6c 79 20 72 65 61 64 69 6e |taneously readin| 00000320 67 20 61 6e 64 20 77 72 69 74 69 6e 67 20 73 63 |g and writing sc| 00000330 72 69 70 74 20 66 69 6c 65 0d 00 dc 10 f4 20 3e |ript file..... >| 00000340 4d 6f 64 44 69 73 31 30 33 0d 00 e6 40 f4 20 43 |ModDis103...@. C| 00000350 61 6e 20 63 6f 70 65 20 77 69 74 68 20 73 6f 6d |an cope with som| 00000360 65 20 73 74 72 69 6e 67 73 20 6c 6f 6e 67 65 72 |e strings longer| 00000370 20 74 68 61 6e 20 32 35 35 20 62 79 74 65 73 20 | than 255 bytes | 00000380 28 49 20 74 68 69 6e 6b 29 0d 00 f0 27 f4 20 43 |(I think)...'. C| 00000390 6f 70 65 73 20 77 69 74 68 20 22 20 63 68 61 72 |opes with " char| 000003a0 61 63 74 65 72 20 69 6e 20 73 74 72 69 6e 67 73 |acter in strings| 000003b0 0d 00 fa 10 f4 20 3e 4d 6f 64 44 69 73 31 30 32 |..... >ModDis102| 000003c0 0d 01 04 2b f4 20 42 75 6e 64 6c 65 64 20 6d 61 |...+. Bundled ma| 000003d0 63 72 6f 20 66 6f 72 20 41 44 52 6c 6f 6e 67 20 |cro for ADRlong | 000003e0 69 6d 70 6c 65 6d 65 6e 74 65 64 0d 01 0e 10 f4 |implemented.....| 000003f0 20 3e 4d 6f 64 44 69 73 31 30 31 0d 01 18 13 f4 | >ModDis101.....| 00000400 20 53 63 72 69 70 74 73 20 61 64 64 65 64 0d 01 | Scripts added..| 00000410 22 40 f4 20 42 75 67 20 77 69 74 68 20 53 57 49 |"@. Bug with SWI| 00000420 20 74 61 62 6c 65 20 65 6e 74 72 69 65 73 20 65 | table entries e| 00000430 78 63 65 65 64 69 6e 67 20 6e 75 6d 62 65 72 20 |xceeding number | 00000440 6f 66 20 6e 61 6d 65 73 20 66 69 78 65 64 0d 01 |of names fixed..| 00000450 2c 10 f4 20 3e 4d 6f 64 44 69 73 31 30 30 0d 01 |,.. >ModDis100..| 00000460 36 28 f4 20 4b 65 79 77 6f 72 64 20 74 61 62 6c |6(. Keyword tabl| 00000470 65 20 6e 6f 77 20 63 6f 70 65 73 20 77 69 74 68 |e now copes with| 00000480 20 7a 65 72 6f 73 0d 01 40 35 f4 20 43 6f 70 65 | zeros..@5. Cope| 00000490 73 20 77 69 74 68 20 41 44 52 20 66 6f 6c 6c 6f |s with ADR follo| 000004a0 77 65 64 20 62 79 20 41 44 44 20 6f 72 20 53 55 |wed by ADD or SU| 000004b0 42 20 28 41 44 52 6c 6f 6e 67 29 0d 01 4a 1b f4 |B (ADRlong)..J..| 000004c0 20 53 70 65 65 64 65 64 20 75 70 20 66 69 6e 61 | Speeded up fina| 000004d0 6c 20 70 61 73 73 0d 01 54 17 f4 20 46 69 78 65 |l pass..T.. Fixe| 000004e0 64 20 62 75 67 20 69 6e 20 45 51 55 57 0d 01 5e |d bug in EQUW..^| 000004f0 0e f4 20 3e 4d 6f 64 44 69 73 46 0d 01 68 23 f4 |.. >ModDisF..h#.| 00000500 20 53 6f 72 74 65 64 20 6f 75 74 20 62 69 74 73 | Sorted out bits| 00000510 2c 73 68 69 66 74 20 70 72 6f 62 6c 65 6d 0d 01 |,shift problem..| 00000520 72 0e f4 20 3e 4d 6f 64 44 69 73 45 0d 01 7c 36 |r.. >ModDisE..|6| 00000530 f4 20 54 72 69 65 64 20 74 6f 20 69 6d 70 72 6f |. Tried to impro| 00000540 76 65 20 72 65 63 6f 67 6e 69 74 69 6f 6e 20 6f |ve recognition o| 00000550 66 20 53 57 49 20 62 72 61 6e 63 68 20 74 61 62 |f SWI branch tab| 00000560 6c 65 0d 01 86 1d f4 20 41 64 64 65 64 20 65 78 |le..... Added ex| 00000570 74 65 72 6e 61 6c 20 74 79 70 65 20 28 37 29 0d |ternal type (7).| 00000580 01 90 32 f4 20 48 65 61 64 65 72 20 6c 61 62 65 |..2. Header labe| 00000590 6c 73 20 6e 6f 77 20 74 61 6b 65 20 70 72 65 63 |ls now take prec| 000005a0 65 64 65 6e 63 65 20 6f 76 65 72 20 73 41 42 43 |edence over sABC| 000005b0 44 0d 01 9a 30 f4 20 41 6c 69 67 6e 6d 65 6e 74 |D...0. Alignment| 000005c0 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 53 57 | problem with SW| 000005d0 49 20 4f 53 5f 57 72 69 74 65 53 20 66 69 78 65 |I OS_WriteS fixe| 000005e0 64 0d 01 a4 0e f4 20 3e 4d 6f 64 44 69 73 44 0d |d..... >ModDisD.| 000005f0 01 ae 1d f4 20 44 65 62 75 67 20 69 6e 66 6f 72 |.... Debug infor| 00000600 6d 61 74 69 6f 6e 20 61 64 64 65 64 0d 01 b8 2e |mation added....| 00000610 f4 20 42 65 74 74 65 72 20 74 72 61 70 70 69 6e |. Better trappin| 00000620 67 20 66 6f 72 20 6e 6f 20 53 57 49 20 64 65 63 |g for no SWI dec| 00000630 6f 64 69 6e 67 20 63 6f 64 65 0d 01 c2 0e f4 20 |oding code..... | 00000640 3e 4d 6f 64 44 69 73 43 0d 01 cc 23 f4 20 52 65 |>ModDisC...#. Re| 00000650 63 6f 67 6e 69 73 65 73 20 43 6f 6e 66 69 67 75 |cognises Configu| 00000660 72 65 20 6b 65 79 77 6f 72 64 73 0d 01 d6 34 f4 |re keywords...4.| 00000670 20 57 61 72 6e 73 20 61 62 6f 75 74 20 63 6f 70 | Warns about cop| 00000680 72 6f 63 65 73 73 6f 72 20 61 6e 64 20 75 6e 64 |rocessor and und| 00000690 65 66 69 6e 65 64 20 63 6f 6d 6d 61 6e 64 73 0d |efined commands.| 000006a0 01 e0 39 f4 20 52 65 63 6f 67 6e 69 73 65 73 20 |..9. Recognises | 000006b0 43 52 2d 74 65 72 6d 69 6e 61 74 65 64 20 73 74 |CR-terminated st| 000006c0 72 69 6e 67 73 20 61 6e 64 20 70 61 64 64 65 64 |rings and padded| 000006d0 20 73 74 72 69 6e 67 73 0d 01 ea 32 f4 20 50 72 | strings...2. Pr| 000006e0 6f 76 69 73 69 6f 6e 20 66 6f 72 20 6c 6f 61 64 |ovision for load| 000006f0 69 6e 67 20 61 6e 64 20 73 61 76 69 6e 67 20 74 |ing and saving t| 00000700 79 70 65 25 20 61 72 72 61 79 0d 01 f4 0e f4 20 |ype% array..... | 00000710 3e 4d 6f 64 44 69 73 42 0d 01 fe 22 f4 20 50 72 |>ModDisB...". Pr| 00000720 6f 76 69 73 69 6f 6e 20 66 6f 72 20 4c 44 52 2f |ovision for LDR/| 00000730 53 54 52 20 52 6e 2c 65 78 70 0d 02 08 14 f4 20 |STR Rn,exp..... | 00000740 53 70 65 65 64 65 64 20 75 70 20 41 73 6b 0d 02 |Speeded up Ask..| 00000750 12 04 0d 02 1c 13 f4 20 4c 6f 72 63 61 6e 20 4d |....... Lorcan M| 00000760 6f 6e 67 65 79 0d 02 26 18 f4 20 35 36 20 53 61 |ongey..&.. 56 Sa| 00000770 6c 69 73 62 75 72 79 20 43 6f 75 72 74 0d 02 30 |lisbury Court..0| 00000780 11 f4 20 44 75 62 6c 69 6e 20 52 6f 61 64 0d 02 |.. Dublin Road..| 00000790 3a 15 f4 20 42 65 6c 66 61 73 74 20 42 54 37 20 |:.. Belfast BT7 | 000007a0 31 44 44 0d 02 44 16 f4 20 54 65 6c 3a 20 30 32 |1DD..D.. Tel: 02| 000007b0 33 32 20 32 33 34 33 38 36 0d 02 4e 04 0d 02 58 |32 234386..N...X| 000007c0 30 f4 20 49 20 63 61 6e 20 61 6c 73 6f 20 62 65 |0. I can also be| 000007d0 20 72 65 61 63 68 65 64 20 61 74 20 74 68 65 20 | reached at the | 000007e0 66 6f 6c 6c 6f 77 69 6e 67 20 42 42 53 0d 02 62 |following BBS..b| 000007f0 04 0d 02 6c 27 f4 20 42 42 53 20 20 20 20 20 20 |...l'. BBS | 00000800 20 20 20 20 20 20 20 20 54 65 6c 65 70 68 6f 6e | Telephon| 00000810 65 20 20 20 20 20 49 44 0d 02 76 34 f4 20 2d 2d |e ID..v4. --| 00000820 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000840 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 02 80 34 |------------...4| 00000850 f4 20 43 49 58 20 20 20 20 20 20 20 20 20 20 20 |. CIX | 00000860 20 20 20 30 38 31 20 33 39 30 20 31 32 34 34 20 | 081 390 1244 | 00000870 20 6c 6f 72 63 61 6e 40 63 69 78 2e 75 75 63 70 | lorcan@cix.uucp| 00000880 0d 02 8a 32 f4 20 57 6f 72 6c 64 20 6f 66 20 43 |...2. World of C| 00000890 72 79 74 6f 6e 20 20 30 37 34 39 20 36 37 30 30 |ryton 0749 6700| 000008a0 33 30 20 20 20 6c 6f 72 63 61 6e 20 28 23 32 33 |30 lorcan (#23| 000008b0 37 29 0d 02 94 32 f4 20 41 72 63 61 64 65 20 20 |7)...2. Arcade | 000008c0 20 20 20 20 20 20 20 20 20 30 38 31 20 36 35 34 | 081 654| 000008d0 20 32 32 31 32 20 20 6c 6f 72 63 61 6e 20 28 23 | 2212 lorcan (#| 000008e0 34 31 37 29 0d 02 9e 04 0d 02 a8 09 f2 69 6e 69 |417).........ini| 000008f0 74 0d 02 b2 0d f2 65 78 74 65 72 6e 61 6c 0d 02 |t.....external..| 00000900 c6 0b f2 68 65 61 64 65 72 0d 02 da 0d 6f 66 66 |...header....off| 00000910 73 65 74 25 3d 30 0d 02 e4 15 c8 95 6f 66 66 73 |set%=0......offs| 00000920 65 74 25 3c 3d 62 79 74 65 73 25 0d 02 ee 27 20 |et%<=bytes%...' | 00000930 20 e7 74 79 70 65 25 28 6f 66 66 73 65 74 25 29 | .type%(offset%)| 00000940 3d 30 8c f2 61 73 6b 3a 6f 66 66 73 65 74 25 2d |=0..ask:offset%-| 00000950 3d 31 0d 02 f8 10 20 20 6f 66 66 73 65 74 25 2b |=1.... offset%+| 00000960 3d 31 0d 03 02 05 ce 0d 03 0c 07 d9 23 30 0d 03 |=1..........#0..| 00000970 20 08 f2 64 69 73 0d 03 2a 05 e0 0d 03 34 04 0d | ..dis..*....4..| 00000980 03 3e 18 dd f2 61 64 64 72 65 73 73 28 f8 20 6f |.>...address(. o| 00000990 66 66 73 65 74 25 29 0d 03 48 15 c8 8e 74 79 70 |ffset%)..H...typ| 000009a0 65 25 28 6f 66 66 73 65 74 25 29 ca 0d 03 52 09 |e%(offset%)...R.| 000009b0 20 20 c9 30 3a 0d 03 5c 0a 20 20 c9 33 3a e1 0d | .0:..\. .3:..| 000009c0 03 66 24 20 20 7f 3a 85 32 35 35 2c 22 45 78 70 |.f$ .:.255,"Exp| 000009d0 65 63 74 69 6e 67 20 74 79 70 65 20 33 20 6f 72 |ecting type 3 or| 000009e0 20 30 22 0d 03 70 05 cb 0d 03 7a 07 ea 49 25 0d | 0"..p....z..I%.| 000009f0 03 84 1a 61 64 64 72 65 73 73 25 3d 62 61 73 65 |...address%=base| 00000a00 25 21 6f 66 66 73 65 74 25 0d 03 8e 0b e3 49 25 |%!offset%.....I%| 00000a10 3d 30 b8 33 0d 03 98 19 20 20 74 79 70 65 25 28 |=0.3.... type%(| 00000a20 6f 66 66 73 65 74 25 2b 49 25 29 3d 33 0d 03 a2 |offset%+I%)=3...| 00000a30 05 ed 0d 03 ac 0e 6f 66 66 73 65 74 25 2b 3d 34 |......offset%+=4| 00000a40 0d 03 b6 05 e1 0d 03 c0 04 0d 03 ca 0c dd f2 61 |...............a| 00000a50 64 72 61 64 64 0d 03 d4 0d ea 49 25 2c 6c 65 6e |dradd.....I%,len| 00000a60 32 25 0d 03 de 0b e3 49 25 3d 30 b8 33 0d 03 e8 |2%.....I%=0.3...| 00000a70 19 20 20 74 79 70 65 25 28 6f 66 66 73 65 74 25 |. type%(offset%| 00000a80 2b 49 25 29 3d 35 0d 03 f2 05 ed 0d 03 fc 12 49 |+I%)=5.........I| 00000a90 25 3d a7 69 6e 73 74 24 2c 22 23 22 29 0d 04 06 |%=.inst$,"#")...| 00000aa0 18 64 65 73 74 24 3d c1 69 6e 73 74 24 2c 49 25 |.dest$=.inst$,I%| 00000ab0 2b 31 2c 39 29 0d 04 10 1f 64 65 73 74 25 3d a4 |+1,9)....dest%=.| 00000ac0 69 6d 6d 28 64 65 73 74 24 29 2b 6f 66 66 73 65 |imm(dest$)+offse| 00000ad0 74 25 2b 38 0d 04 1a 11 f2 63 68 65 63 6b 66 6f |t%+8.....checkfo| 00000ae0 72 6d 6f 72 65 0d 04 24 26 e7 64 65 73 74 25 3e |rmore..$&.dest%>| 00000af0 62 79 74 65 73 25 84 64 65 73 74 25 3c 30 8c 6f |bytes%.dest%<0.o| 00000b00 66 66 73 65 74 25 2b 3d 34 3a e1 0d 04 2e 31 e7 |ffset%+=4:....1.| 00000b10 6c 61 62 65 6c 24 28 64 65 73 74 25 29 3d 22 22 |label$(dest%)=""| 00000b20 8c 6c 61 62 65 6c 24 28 64 65 73 74 25 29 3d 22 |.label$(dest%)="| 00000b30 78 22 2b c3 7e 28 64 65 73 74 25 29 0d 04 38 14 |x"+.~(dest%)..8.| 00000b40 e7 74 79 70 65 25 28 64 65 73 74 25 29 3d 30 8c |.type%(dest%)=0.| 00000b50 0d 04 42 0e 20 20 e7 64 65 62 75 67 25 8c 0d 04 |..B. .debug%...| 00000b60 4c 0a 20 20 20 20 fb 36 0d 04 56 17 20 20 20 20 |L. .6..V. | 00000b70 f1 22 41 64 64 22 2c 7e 6f 66 66 73 65 74 25 0d |."Add",~offset%.| 00000b80 04 60 0a 20 20 20 20 fb 37 0d 04 6a 07 20 20 cd |.`. .7..j. .| 00000b90 0d 04 74 1f 20 20 f2 77 68 61 74 73 74 68 69 73 |..t. .whatsthis| 00000ba0 28 6f 66 66 73 65 74 25 2c 64 65 73 74 25 29 0d |(offset%,dest%).| 00000bb0 04 7e 0e 20 20 c8 8e 74 79 70 65 25 ca 0d 04 88 |.~. ..type%....| 00000bc0 1d 20 20 20 20 c9 2d 34 3a f2 73 74 72 69 6e 67 |. .-4:.string| 00000bd0 41 28 6f 66 66 73 65 74 25 29 0d 04 92 28 20 20 |A(offset%)...( | 00000be0 20 20 c9 2d 33 3a f2 70 61 64 64 65 64 73 74 72 | .-3:.paddedstr| 00000bf0 69 6e 67 28 64 65 73 74 25 2c 6e 75 6d 62 65 72 |ing(dest%,number| 00000c00 25 29 0d 04 9c 1c 20 20 20 20 c9 2d 32 3a f2 73 |%).... .-2:.s| 00000c10 74 72 69 6e 67 43 52 28 64 65 73 74 25 29 0d 04 |tringCR(dest%)..| 00000c20 a6 1b 20 20 20 20 c9 2d 31 3a f2 73 74 72 69 6e |.. .-1:.strin| 00000c30 67 30 28 64 65 73 74 25 29 0d 04 b0 0c 20 20 20 |g0(dest%).... | 00000c40 20 c9 20 30 3a 0d 04 ba 18 20 20 20 20 c9 20 31 | . 0:.... . 1| 00000c50 3a f2 62 79 74 65 28 64 65 73 74 25 29 0d 04 c4 |:.byte(dest%)...| 00000c60 18 20 20 20 20 c9 20 32 3a f2 77 6f 72 64 28 64 |. . 2:.word(d| 00000c70 65 73 74 25 29 0d 04 ce 1a 20 20 20 20 c9 20 34 |est%).... . 4| 00000c80 3a f2 64 6f 75 62 6c 65 28 64 65 73 74 25 29 0d |:.double(dest%).| 00000c90 04 d8 18 20 20 20 20 c9 20 35 3a f2 63 6f 64 65 |... . 5:.code| 00000ca0 28 64 65 73 74 25 29 0d 04 e2 07 20 20 cb 0d 04 |(dest%).... ...| 00000cb0 ec 05 cd 0d 04 f6 0e 6f 66 66 73 65 74 25 2b 3d |.......offset%+=| 00000cc0 34 0d 05 00 05 e1 0d 05 0a 04 0d 05 14 0c dd f2 |4...............| 00000cd0 61 64 72 73 75 62 0d 05 1e 07 ea 49 25 0d 05 28 |adrsub.....I%..(| 00000ce0 0b e3 49 25 3d 30 b8 33 0d 05 32 19 20 20 74 79 |..I%=0.3..2. ty| 00000cf0 70 65 25 28 6f 66 66 73 65 74 25 2b 49 25 29 3d |pe%(offset%+I%)=| 00000d00 35 0d 05 3c 05 ed 0d 05 46 12 49 25 3d a7 69 6e |5..<....F.I%=.in| 00000d10 73 74 24 2c 22 23 22 29 0d 05 50 18 64 65 73 74 |st$,"#")..P.dest| 00000d20 24 3d c1 69 6e 73 74 24 2c 49 25 2b 31 2c 39 29 |$=.inst$,I%+1,9)| 00000d30 0d 05 5a 1f 64 65 73 74 25 3d 6f 66 66 73 65 74 |..Z.dest%=offset| 00000d40 25 2d a4 69 6d 6d 28 64 65 73 74 24 29 2b 38 0d |%-.imm(dest$)+8.| 00000d50 05 64 11 f2 63 68 65 63 6b 66 6f 72 6d 6f 72 65 |.d..checkformore| 00000d60 0d 05 6e 26 e7 64 65 73 74 25 3e 62 79 74 65 73 |..n&.dest%>bytes| 00000d70 25 84 64 65 73 74 25 3c 30 8c 6f 66 66 73 65 74 |%.dest%<0.offset| 00000d80 25 2b 3d 34 3a e1 0d 05 78 31 e7 6c 61 62 65 6c |%+=4:...x1.label| 00000d90 24 28 64 65 73 74 25 29 3d 22 22 8c 6c 61 62 65 |$(dest%)="".labe| 00000da0 6c 24 28 64 65 73 74 25 29 3d 22 78 22 2b c3 7e |l$(dest%)="x"+.~| 00000db0 28 64 65 73 74 25 29 0d 05 82 14 e7 74 79 70 65 |(dest%).....type| 00000dc0 25 28 64 65 73 74 25 29 3d 30 8c 0d 05 8c 0e 20 |%(dest%)=0..... | 00000dd0 20 e7 64 65 62 75 67 25 8c 0d 05 96 0a 20 20 20 | .debug%..... | 00000de0 20 fb 36 0d 05 a0 17 20 20 20 20 f1 22 53 75 62 | .6.... ."Sub| 00000df0 22 2c 7e 6f 66 66 73 65 74 25 0d 05 aa 0a 20 20 |",~offset%.... | 00000e00 20 20 fb 37 0d 05 b4 07 20 20 cd 0d 05 be 1f 20 | .7.... ..... | 00000e10 20 f2 77 68 61 74 73 74 68 69 73 28 6f 66 66 73 | .whatsthis(offs| 00000e20 65 74 25 2c 64 65 73 74 25 29 0d 05 c8 0e 20 20 |et%,dest%).... | 00000e30 c8 8e 74 79 70 65 25 ca 0d 05 d2 1d 20 20 20 20 |..type%..... | 00000e40 c9 2d 34 3a f2 73 74 72 69 6e 67 41 28 6f 66 66 |.-4:.stringA(off| 00000e50 73 65 74 25 29 0d 05 dc 28 20 20 20 20 c9 2d 33 |set%)...( .-3| 00000e60 3a f2 70 61 64 64 65 64 73 74 72 69 6e 67 28 64 |:.paddedstring(d| 00000e70 65 73 74 25 2c 6e 75 6d 62 65 72 25 29 0d 05 e6 |est%,number%)...| 00000e80 1c 20 20 20 20 c9 2d 32 3a f2 73 74 72 69 6e 67 |. .-2:.string| 00000e90 43 52 28 64 65 73 74 25 29 0d 05 f0 1b 20 20 20 |CR(dest%).... | 00000ea0 20 c9 2d 31 3a f2 73 74 72 69 6e 67 30 28 64 65 | .-1:.string0(de| 00000eb0 73 74 25 29 0d 05 fa 0c 20 20 20 20 c9 20 30 3a |st%).... . 0:| 00000ec0 0d 06 04 18 20 20 20 20 c9 20 31 3a f2 62 79 74 |.... . 1:.byt| 00000ed0 65 28 64 65 73 74 25 29 0d 06 0e 18 20 20 20 20 |e(dest%).... | 00000ee0 c9 20 32 3a f2 77 6f 72 64 28 64 65 73 74 25 29 |. 2:.word(dest%)| 00000ef0 0d 06 18 1a 20 20 20 20 c9 20 34 3a f2 64 6f 75 |.... . 4:.dou| 00000f00 62 6c 65 28 64 65 73 74 25 29 0d 06 22 18 20 20 |ble(dest%)..". | 00000f10 20 20 c9 20 35 3a f2 63 6f 64 65 28 64 65 73 74 | . 5:.code(dest| 00000f20 25 29 0d 06 2c 07 20 20 cb 0d 06 36 05 cd 0d 06 |%)..,. ...6....| 00000f30 40 0e 6f 66 66 73 65 74 25 2b 3d 34 0d 06 4a 05 |@.offset%+=4..J.| 00000f40 e1 0d 06 54 04 0d 06 5e 16 dd f2 61 6c 69 67 6e |...T...^...align| 00000f50 28 f8 20 6f 66 66 73 65 74 25 29 0d 06 68 15 c8 |(. offset%)..h..| 00000f60 8e 74 79 70 65 25 28 6f 66 66 73 65 74 25 29 ca |.type%(offset%).| 00000f70 0d 06 72 09 20 20 c9 30 3a 0d 06 7c 0a 20 20 c9 |..r. .0:..|. .| 00000f80 36 3a e1 0d 06 86 24 20 20 7f 3a 85 32 35 35 2c |6:....$ .:.255,| 00000f90 22 45 78 70 65 63 74 69 6e 67 20 74 79 70 65 20 |"Expecting type | 00000fa0 36 20 6f 72 20 30 22 0d 06 90 05 cb 0d 06 9a 0d |6 or 0".........| 00000fb0 ea 70 6f 69 6e 74 65 72 25 0d 06 a4 1a 70 6f 69 |.pointer%....poi| 00000fc0 6e 74 65 72 25 3d 6f 66 66 73 65 74 25 2b 62 61 |nter%=offset%+ba| 00000fd0 73 65 25 0d 06 ae 13 c8 95 70 6f 69 6e 74 65 72 |se%......pointer| 00000fe0 25 83 34 3c 3e 30 0d 06 b8 16 20 20 74 79 70 65 |%.4<>0.... type| 00000ff0 25 28 6f 66 66 73 65 74 25 29 3d 36 0d 06 c2 11 |%(offset%)=6....| 00001000 20 20 70 6f 69 6e 74 65 72 25 2b 3d 31 0d 06 cc | pointer%+=1...| 00001010 10 20 20 6f 66 66 73 65 74 25 2b 3d 31 0d 06 d6 |. offset%+=1...| 00001020 05 ce 0d 06 e0 05 e1 0d 06 ea 04 0d 06 f4 09 dd |................| 00001030 f2 61 73 6b 0d 06 fe 17 ea 63 6f 75 6e 74 25 2c |.ask.....count%,| 00001040 74 79 70 65 25 2c 49 25 2c 4a 25 0d 07 08 0c 63 |type%,I%,J%....c| 00001050 6f 75 6e 74 25 3d 31 0d 07 12 41 c8 95 74 79 70 |ount%=1...A..typ| 00001060 65 25 28 6f 66 66 73 65 74 25 2b 63 6f 75 6e 74 |e%(offset%+count| 00001070 25 29 3d 30 80 28 6f 66 66 73 65 74 25 2b 63 6f |%)=0.(offset%+co| 00001080 75 6e 74 25 29 3c 3d 62 79 74 65 73 25 80 63 6f |unt%)<=bytes%.co| 00001090 75 6e 74 25 3c 3d 36 38 0d 07 1c 0f 20 20 63 6f |unt%<=68.... co| 000010a0 75 6e 74 25 2b 3d 31 0d 07 26 05 ce 0d 07 30 2c |unt%+=1..&....0,| 000010b0 ff 22 4d 65 6d 6f 72 79 49 20 22 2b c3 7e 28 6f |."MemoryI "+.~(o| 000010c0 66 66 73 65 74 25 2b 62 61 73 65 25 2d 26 32 30 |ffset%+base%-&20| 000010d0 29 2b 22 20 2b 32 30 22 0d 07 3a 06 fb 31 0d 07 |)+" +20"..:..1..| 000010e0 44 27 ff 22 4d 65 6d 6f 72 79 49 20 22 2b c3 7e |D'."MemoryI "+.~| 000010f0 28 6f 66 66 73 65 74 25 2b 62 61 73 65 25 29 2b |(offset%+base%)+| 00001100 22 20 2b 34 22 0d 07 4e 06 fb 37 0d 07 58 2a ff |" +4"..N..7..X*.| 00001110 22 4d 65 6d 6f 72 79 49 20 22 2b c3 7e 28 6f 66 |"MemoryI "+.~(of| 00001120 66 73 65 74 25 2b 62 61 73 65 25 2b 34 29 2b 22 |fset%+base%+4)+"| 00001130 20 2b 32 30 22 0d 07 62 37 f1 27 63 6f 75 6e 74 | +20"..b7.'count| 00001140 25 2c 22 20 62 79 74 65 28 73 29 20 61 74 20 22 |%," byte(s) at "| 00001150 3b 7e 6f 66 66 73 65 74 25 3b 22 20 6f 66 20 75 |;~offset%;" of u| 00001160 6e 6b 6e 6f 77 6e 20 74 79 70 65 22 0d 07 6c 15 |nknown type"..l.| 00001170 74 79 70 65 25 3d 30 3a 6e 75 6d 62 65 72 25 3d |type%=0:number%=| 00001180 31 0d 07 76 25 e7 ac a4 72 65 70 6c 61 79 28 6f |1..v%...replay(o| 00001190 66 66 73 65 74 25 2c 74 79 70 65 25 2c 6e 75 6d |ffset%,type%,num| 000011a0 62 65 72 25 29 8c 0d 07 80 0c 20 20 e8 74 79 70 |ber%)..... .typ| 000011b0 65 25 0d 07 8a 0e 20 20 c8 8e 74 79 70 65 25 ca |e%.... ..type%.| 000011c0 0d 07 94 33 20 20 20 20 c9 2d 33 20 20 20 20 20 |...3 .-3 | 000011d0 3a e8 22 4c 65 6e 67 74 68 20 6f 66 20 70 61 64 |:."Length of pad| 000011e0 64 65 64 20 73 74 72 69 6e 67 22 2c 6e 75 6d 62 |ded string",numb| 000011f0 65 72 25 0d 07 9e 24 20 20 20 20 c9 31 2c 32 2c |er%...$ .1,2,| 00001200 33 2c 34 3a e8 22 48 6f 77 20 6d 61 6e 79 22 2c |3,4:."How many",| 00001210 6e 75 6d 62 65 72 25 0d 07 a8 07 20 20 cb 0d 07 |number%.... ...| 00001220 b2 25 20 20 f2 63 61 70 74 75 72 65 28 6f 66 66 |.% .capture(off| 00001230 73 65 74 25 2c 74 79 70 65 25 2c 6e 75 6d 62 65 |set%,type%,numbe| 00001240 72 25 29 0d 07 bc 05 cd 0d 07 c6 0c c8 8e 74 79 |r%)...........ty| 00001250 70 65 25 ca 0d 07 d0 1b 20 20 c9 2d 34 3a f2 73 |pe%..... .-4:.s| 00001260 74 72 69 6e 67 41 28 6f 66 66 73 65 74 25 29 0d |tringA(offset%).| 00001270 07 da 28 20 20 c9 2d 33 3a f2 70 61 64 64 65 64 |..( .-3:.padded| 00001280 73 74 72 69 6e 67 28 6f 66 66 73 65 74 25 2c 6e |string(offset%,n| 00001290 75 6d 62 65 72 25 29 0d 07 e4 1c 20 20 c9 2d 32 |umber%).... .-2| 000012a0 3a f2 73 74 72 69 6e 67 43 52 28 6f 66 66 73 65 |:.stringCR(offse| 000012b0 74 25 29 0d 07 ee 1b 20 20 c9 2d 31 3a f2 73 74 |t%).... .-1:.st| 000012c0 72 69 6e 67 30 28 6f 66 66 73 65 74 25 29 0d 07 |ring0(offset%)..| 000012d0 f8 28 20 20 c9 20 31 3a e3 4a 25 3d 31 b8 6e 75 |.( . 1:.J%=1.nu| 000012e0 6d 62 65 72 25 3a f2 62 79 74 65 28 6f 66 66 73 |mber%:.byte(offs| 000012f0 65 74 25 29 3a ed 0d 08 02 28 20 20 c9 20 32 3a |et%):....( . 2:| 00001300 e3 4a 25 3d 31 b8 6e 75 6d 62 65 72 25 3a f2 77 |.J%=1.number%:.w| 00001310 6f 72 64 28 6f 66 66 73 65 74 25 29 3a ed 0d 08 |ord(offset%):...| 00001320 0c 2b 20 20 c9 20 33 3a e3 4a 25 3d 31 b8 6e 75 |.+ . 3:.J%=1.nu| 00001330 6d 62 65 72 25 3a f2 61 64 64 72 65 73 73 28 6f |mber%:.address(o| 00001340 66 66 73 65 74 25 29 3a ed 0d 08 16 2a 20 20 c9 |ffset%):....* .| 00001350 20 34 3a e3 4a 25 3d 31 b8 6e 75 6d 62 65 72 25 | 4:.J%=1.number%| 00001360 3a f2 64 6f 75 62 6c 65 28 6f 66 66 73 65 74 25 |:.double(offset%| 00001370 29 3a ed 0d 08 20 18 20 20 c9 20 35 3a f2 63 6f |):... . . 5:.co| 00001380 64 65 28 6f 66 66 73 65 74 25 29 0d 08 2a 19 20 |de(offset%)..*. | 00001390 20 c9 20 36 3a f2 61 6c 69 67 6e 28 6f 66 66 73 | . 6:.align(offs| 000013a0 65 74 25 29 0d 08 34 05 cb 0d 08 3e 05 e1 0d 08 |et%)..4....>....| 000013b0 48 04 0d 08 52 0c dd f2 62 72 61 6e 63 68 0d 08 |H...R...branch..| 000013c0 5c 2f 64 65 73 74 25 3d 28 28 28 a0 28 c2 69 6e |\/dest%=(((.(.in| 000013d0 73 74 24 2c 6c 65 6e 25 2d 37 29 29 29 3c 3c 38 |st$,len%-7)))<<8| 000013e0 29 3e 3e 38 29 2b 6f 66 66 73 65 74 25 0d 08 66 |)>>8)+offset%..f| 000013f0 26 e7 64 65 73 74 25 3e 62 79 74 65 73 25 84 64 |&.dest%>bytes%.d| 00001400 65 73 74 25 3c 30 8c 6f 66 66 73 65 74 25 2b 3d |est%<0.offset%+=| 00001410 34 3a e1 0d 08 70 31 e7 6c 61 62 65 6c 24 28 64 |4:...p1.label$(d| 00001420 65 73 74 25 29 3d 22 22 8c 6c 61 62 65 6c 24 28 |est%)="".label$(| 00001430 64 65 73 74 25 29 3d 22 78 22 2b c3 7e 28 64 65 |dest%)="x"+.~(de| 00001440 73 74 25 29 0d 08 7a 10 f2 63 6f 64 65 28 64 65 |st%)..z..code(de| 00001450 73 74 25 29 0d 08 84 0e 6f 66 66 73 65 74 25 2b |st%)....offset%+| 00001460 3d 34 0d 08 8e 05 e1 0d 08 98 04 0d 08 a2 10 dd |=4..............| 00001470 f2 62 72 61 6e 63 68 6c 69 6e 6b 0d 08 ac 2f 64 |.branchlink.../d| 00001480 65 73 74 25 3d 28 28 28 a0 28 c2 69 6e 73 74 24 |est%=(((.(.inst$| 00001490 2c 6c 65 6e 25 2d 37 29 29 29 3c 3c 38 29 3e 3e |,len%-7)))<<8)>>| 000014a0 38 29 2b 6f 66 66 73 65 74 25 0d 08 b6 26 e7 64 |8)+offset%...&.d| 000014b0 65 73 74 25 3e 62 79 74 65 73 25 84 64 65 73 74 |est%>bytes%.dest| 000014c0 25 3c 30 8c 6f 66 66 73 65 74 25 2b 3d 34 3a e1 |%<0.offset%+=4:.| 000014d0 0d 08 c0 47 e7 c0 6c 61 62 65 6c 24 28 64 65 73 |...G..label$(des| 000014e0 74 25 29 2c 31 29 3d 22 78 22 84 6c 61 62 65 6c |t%),1)="x".label| 000014f0 24 28 64 65 73 74 25 29 3d 22 22 8c 6c 61 62 65 |$(dest%)="".labe| 00001500 6c 24 28 64 65 73 74 25 29 3d 22 73 22 2b c3 7e |l$(dest%)="s"+.~| 00001510 28 64 65 73 74 25 29 0d 08 ca 10 f2 63 6f 64 65 |(dest%).....code| 00001520 28 64 65 73 74 25 29 0d 08 d4 0e 6f 66 66 73 65 |(dest%)....offse| 00001530 74 25 2b 3d 34 0d 08 de 05 e1 0d 08 e8 04 0d 08 |t%+=4...........| 00001540 f2 11 dd f2 62 72 61 6e 63 68 74 61 62 6c 65 0d |....branchtable.| 00001550 08 fc 10 ea 65 6e 64 6f 66 74 61 62 6c 65 25 0d |....endoftable%.| 00001560 09 06 0e 6f 66 66 73 65 74 25 2b 3d 34 0d 09 10 |...offset%+=4...| 00001570 07 ea 49 25 0d 09 1a 11 65 6e 64 6f 66 74 61 62 |..I%....endoftab| 00001580 6c 65 25 3d a3 0d 09 24 05 f5 0d 09 2e 19 20 20 |le%=...$...... | 00001590 69 6e 73 74 25 3d 62 61 73 65 25 21 6f 66 66 73 |inst%=base%!offs| 000015a0 65 74 25 0d 09 38 20 20 20 69 6e 73 74 24 3d a4 |et%..8 inst$=.| 000015b0 65 78 74 72 61 63 74 28 69 6e 73 74 25 2c 6c 65 |extract(inst%,le| 000015c0 6e 25 29 0d 09 42 15 20 20 c8 8e a4 69 6e 73 74 |n%)..B. ...inst| 000015d0 28 69 6e 73 74 25 29 ca 0d 09 4c 12 20 20 20 20 |(inst%)...L. | 000015e0 c9 31 3a e3 49 25 3d 30 b8 33 0d 09 56 23 20 20 |.1:.I%=0.3..V# | 000015f0 20 20 20 20 20 20 20 20 20 20 74 79 70 65 25 28 | type%(| 00001600 6f 66 66 73 65 74 25 2b 49 25 29 3d 35 0d 09 60 |offset%+I%)=5..`| 00001610 0f 20 20 20 20 20 20 20 20 20 20 ed 0d 09 6a 15 |. ...j.| 00001620 20 20 20 20 20 20 20 20 20 20 f2 62 72 61 6e 63 | .branc| 00001630 68 0d 09 74 17 20 20 20 20 7f 3a 65 6e 64 6f 66 |h..t. .:endof| 00001640 74 61 62 6c 65 25 3d b9 0d 09 7e 07 20 20 cb 0d |table%=...~. ..| 00001650 09 88 10 fd 65 6e 64 6f 66 74 61 62 6c 65 25 0d |....endoftable%.| 00001660 09 92 05 e1 0d 09 9c 04 0d 09 a6 15 dd f2 62 79 |..............by| 00001670 74 65 28 f8 20 6f 66 66 73 65 74 25 29 0d 09 b0 |te(. offset%)...| 00001680 15 c8 8e 74 79 70 65 25 28 6f 66 66 73 65 74 25 |...type%(offset%| 00001690 29 ca 0d 09 ba 09 20 20 c9 30 3a 0d 09 c4 0a 20 |)..... .0:.... | 000016a0 20 c9 31 3a e1 0d 09 ce 24 20 20 7f 3a 85 32 35 | .1:....$ .:.25| 000016b0 35 2c 22 45 78 70 65 63 74 69 6e 67 20 74 79 70 |5,"Expecting typ| 000016c0 65 20 31 20 6f 72 20 30 22 0d 09 d8 05 cb 0d 09 |e 1 or 0".......| 000016d0 e2 17 62 79 74 65 25 3d 62 61 73 65 25 3f 6f 66 |..byte%=base%?of| 000016e0 66 73 65 74 25 0d 09 ec 14 74 79 70 65 25 28 6f |fset%....type%(o| 000016f0 66 66 73 65 74 25 29 3d 31 0d 09 f6 0e 6f 66 66 |ffset%)=1....off| 00001700 73 65 74 25 2b 3d 31 0d 0a 00 05 e1 0d 0a 0a 04 |set%+=1.........| 00001710 0d 0a 14 24 dd f2 63 61 70 74 75 72 65 28 6f 66 |...$..capture(of| 00001720 66 73 65 74 25 2c 74 79 70 65 25 2c 6e 75 6d 62 |fset%,type%,numb| 00001730 65 72 25 29 0d 0a 1e 0c ea 73 74 72 69 6e 67 24 |er%).....string$| 00001740 0d 0a 28 12 e7 77 72 69 74 65 73 63 72 69 70 74 |..(..writescript| 00001750 25 8c 0d 0a 32 2f 20 20 73 74 72 69 6e 67 24 3d |%...2/ string$=| 00001760 c3 7e 6f 66 66 73 65 74 25 2b 22 2c 22 2b c3 74 |.~offset%+","+.t| 00001770 79 70 65 25 2b 22 2c 22 2b c3 6e 75 6d 62 65 72 |ype%+","+.number| 00001780 25 0d 0a 3c 19 20 20 cf 23 73 63 72 69 70 74 25 |%..<. .#script%| 00001790 3d a2 23 73 63 72 69 70 74 25 0d 0a 46 17 20 20 |=.#script%..F. | 000017a0 d5 23 73 63 72 69 70 74 25 2c 73 74 72 69 6e 67 |.#script%,string| 000017b0 24 0d 0a 50 05 cd 0d 0a 5a 05 e1 0d 0a 64 04 0d |$..P....Z....d..| 000017c0 0a 6e 12 dd f2 63 68 65 63 6b 66 6f 72 6d 6f 72 |.n...checkformor| 000017d0 65 0d 0a 78 07 ea 49 25 0d 0a 82 1f 63 6f 6e 64 |e..x..I%....cond| 000017e0 25 3d 28 69 6e 73 74 25 80 26 46 30 30 30 30 30 |%=(inst%.&F00000| 000017f0 30 30 29 3e 3e 32 38 0d 0a 8c 1d 72 64 25 3d 28 |00)>>28....rd%=(| 00001800 69 6e 73 74 25 80 26 30 30 30 30 46 30 30 30 29 |inst%.&0000F000)| 00001810 3e 3e 31 32 0d 0a 96 29 73 61 6d 65 25 3d 28 63 |>>12...)same%=(c| 00001820 6f 6e 64 25 3c 3c 32 38 29 84 28 72 64 25 3c 3c |ond%<<28).(rd%<<| 00001830 31 36 29 84 28 72 64 25 3c 3c 31 32 29 0d 0a a0 |16).(rd%<<12)...| 00001840 13 6d 61 73 6b 25 3d 26 46 46 45 46 46 30 30 30 |.mask%=&FFEFF000| 00001850 0d 0a aa 1d 74 61 72 67 65 74 31 25 3d 26 30 32 |....target1%=&02| 00001860 38 30 30 30 30 30 20 84 73 61 6d 65 25 0d 0a b4 |800000 .same%...| 00001870 1d 74 61 72 67 65 74 32 25 3d 26 30 32 34 30 30 |.target2%=&02400| 00001880 30 30 30 20 84 73 61 6d 65 25 0d 0a be 1c 69 6e |000 .same%....in| 00001890 73 74 32 25 3d 62 61 73 65 25 21 28 6f 66 66 73 |st2%=base%!(offs| 000018a0 65 74 25 2b 34 29 0d 0a c8 0d 65 78 74 72 61 24 |et%+4)....extra$| 000018b0 3d 22 22 0d 0a d2 39 e7 28 28 69 6e 73 74 32 25 |=""...9.((inst2%| 000018c0 80 6d 61 73 6b 25 29 3d 74 61 72 67 65 74 31 25 |.mask%)=target1%| 000018d0 29 84 28 28 69 6e 73 74 32 25 80 6d 61 73 6b 25 |).((inst2%.mask%| 000018e0 29 3d 74 61 72 67 65 74 32 25 29 8c 0d 0a dc 23 |)=target2%)....#| 000018f0 20 20 69 6e 73 74 32 24 3d a4 65 78 74 72 61 63 | inst2$=.extrac| 00001900 74 28 69 6e 73 74 32 25 2c 6c 65 6e 32 25 29 0d |t(inst2%,len2%).| 00001910 0a e6 15 20 20 49 25 3d a7 69 6e 73 74 32 24 2c |... I%=.inst2$,| 00001920 22 23 22 29 0d 0a f0 1c 20 20 64 65 73 74 32 24 |"#").... dest2$| 00001930 3d c1 69 6e 73 74 32 24 2c 49 25 2b 31 2c 39 29 |=.inst2$,I%+1,9)| 00001940 0d 0a fa 1b 20 20 6f 66 66 73 65 74 32 25 3d a4 |.... offset2%=.| 00001950 69 6d 6d 28 64 65 73 74 32 24 29 0d 0b 04 22 20 |imm(dest2$)..." | 00001960 20 e7 28 69 6e 73 74 32 25 80 26 30 30 38 30 30 | .(inst2%.&00800| 00001970 30 30 30 29 3d 26 38 30 30 30 30 30 8c 0d 0b 0e |000)=&800000....| 00001980 17 20 20 20 20 64 65 73 74 25 2b 3d 6f 66 66 73 |. dest%+=offs| 00001990 65 74 32 25 0d 0b 18 1e 20 20 20 20 65 78 74 72 |et2%.... extr| 000019a0 61 24 3d 22 2d 26 22 2b c3 7e 6f 66 66 73 65 74 |a$="-&"+.~offset| 000019b0 32 25 0d 0b 22 07 20 20 cc 0d 0b 2c 17 20 20 20 |2%..". ...,. | 000019c0 20 64 65 73 74 25 2d 3d 6f 66 66 73 65 74 32 25 | dest%-=offset2%| 000019d0 0d 0b 36 1e 20 20 20 20 65 78 74 72 61 24 3d 22 |..6. extra$="| 000019e0 2b 26 22 2b c3 7e 6f 66 66 73 65 74 32 25 0d 0b |+&"+.~offset2%..| 000019f0 40 07 20 20 cd 0d 0b 4a 0f 20 20 e7 ac 64 65 62 |@. ...J. ..deb| 00001a00 75 67 25 8c 0d 0b 54 0a 20 20 20 20 fb 36 0d 0b |ug%...T. .6..| 00001a10 5e 0f 20 20 20 20 f1 22 41 44 52 4c 22 0d 0b 68 |^. ."ADRL"..h| 00001a20 2b 20 20 20 20 ff 22 4d 65 6d 6f 72 79 49 20 22 |+ ."MemoryI "| 00001a30 2b c3 7e 28 62 61 73 65 25 2b 6f 66 66 73 65 74 |+.~(base%+offset| 00001a40 25 29 2b 22 20 2b 38 22 0d 0b 72 18 20 20 20 20 |%)+" +8"..r. | 00001a50 f1 7e 64 65 73 74 25 20 6f 66 66 73 65 74 32 25 |.~dest% offset2%| 00001a60 0d 0b 7c 0c 20 20 20 20 47 25 3d a5 0d 0b 86 0a |..|. G%=.....| 00001a70 20 20 20 20 fb 37 0d 0b 90 07 20 20 cd 0d 0b 9a | .7.... ....| 00001a80 05 cd 0d 0b a4 05 e1 0d 0b ae 04 0d 0b b8 15 dd |................| 00001a90 f2 63 6f 64 65 28 f8 20 6f 66 66 73 65 74 25 29 |.code(. offset%)| 00001aa0 0d 0b c2 15 c8 8e 74 79 70 65 25 28 6f 66 66 73 |......type%(offs| 00001ab0 65 74 25 29 ca 0d 0b cc 09 20 20 c9 30 3a 0d 0b |et%)..... .0:..| 00001ac0 d6 0a 20 20 c9 35 3a e1 0d 0b e0 24 20 20 7f 3a |.. .5:....$ .:| 00001ad0 85 32 35 35 2c 22 45 78 70 65 63 74 69 6e 67 20 |.255,"Expecting | 00001ae0 74 79 70 65 20 35 20 6f 72 20 30 22 0d 0b ea 05 |type 5 or 0"....| 00001af0 cb 0d 0b f4 07 ea 49 25 0d 0b fe 17 69 6e 73 74 |......I%....inst| 00001b00 25 3d 62 61 73 65 25 21 6f 66 66 73 65 74 25 0d |%=base%!offset%.| 00001b10 0c 08 0c e7 64 65 62 75 67 25 8c 0d 0c 12 08 20 |....debug%..... | 00001b20 20 fb 36 0d 0c 1c 16 20 20 f1 22 43 6f 64 65 22 | .6.... ."Code"| 00001b30 2c 7e 6f 66 66 73 65 74 25 0d 0c 26 08 20 20 fb |,~offset%..&. .| 00001b40 37 0d 0c 30 05 cd 0d 0c 3a 0b e3 49 25 3d 30 b8 |7..0....:..I%=0.| 00001b50 33 0d 0c 44 19 20 20 74 79 70 65 25 28 6f 66 66 |3..D. type%(off| 00001b60 73 65 74 25 2b 49 25 29 3d 35 0d 0c 4e 05 ed 0d |set%+I%)=5..N...| 00001b70 0c 58 1e 69 6e 73 74 24 3d a4 65 78 74 72 61 63 |.X.inst$=.extrac| 00001b80 74 28 69 6e 73 74 25 2c 6c 65 6e 25 29 0d 0c 62 |t(inst%,len%)..b| 00001b90 0d 72 65 74 75 72 6e 25 3d a3 0d 0c 6c 13 c8 8e |.return%=...l...| 00001ba0 a4 69 6e 73 74 28 69 6e 73 74 25 29 ca 0d 0c 76 |.inst(inst%)...v| 00001bb0 13 20 20 c9 20 31 3a f2 62 72 61 6e 63 68 3a e1 |. . 1:.branch:.| 00001bc0 0d 0c 80 11 20 20 c9 20 32 3a f2 62 72 61 6e 63 |.... . 2:.branc| 00001bd0 68 0d 0c 8a 15 20 20 c9 20 33 3a f2 62 72 61 6e |h.... . 3:.bran| 00001be0 63 68 6c 69 6e 6b 0d 0c 94 0b 20 20 c9 20 34 3a |chlink.... . 4:| 00001bf0 e1 0d 0c 9e 23 20 20 c9 20 35 3a f2 73 77 69 3a |....# . 5:.swi:| 00001c00 e7 72 65 74 75 72 6e 25 8c 72 65 74 75 72 6e 25 |.return%.return%| 00001c10 3d a3 3a e1 0d 0c a8 0b 20 20 c9 20 36 3a e1 0d |=.:..... . 6:..| 00001c20 0c b2 18 20 20 c9 20 37 3a f2 62 72 61 6e 63 68 |... . 7:.branch| 00001c30 74 61 62 6c 65 3a e1 0d 0c bc 11 20 20 c9 20 38 |table:..... . 8| 00001c40 3a f2 61 64 72 61 64 64 0d 0c c6 11 20 20 c9 20 |:.adradd.... . | 00001c50 39 3a f2 61 64 72 73 75 62 0d 0c d0 0b 20 20 c9 |9:.adrsub.... .| 00001c60 31 30 3a e1 0d 0c da 10 20 20 c9 31 31 3a f2 6c |10:..... .11:.l| 00001c70 73 65 78 70 0d 0c e4 12 20 20 c9 31 32 3a f2 63 |sexp.... .12:.c| 00001c80 6f 70 72 6f 3a e1 0d 0c ee 12 20 20 c9 31 33 3a |opro:..... .13:| 00001c90 f2 75 6e 64 65 66 3a e1 0d 0c f8 0b 20 20 c9 31 |.undef:..... .1| 00001ca0 34 3a e1 0d 0d 02 12 20 20 7f 3a 6f 66 66 73 65 |4:..... .:offse| 00001cb0 74 25 2b 3d 34 0d 0d 0c 05 cb 0d 0d 16 15 e7 6f |t%+=4..........o| 00001cc0 66 66 73 65 74 25 3e 62 79 74 65 73 25 8c e1 0d |ffset%>bytes%...| 00001cd0 0d 20 1a e7 74 79 70 65 25 28 6f 66 66 73 65 74 |. ..type%(offset| 00001ce0 25 29 3d 30 8c 8d 64 7e 4b 0d 0d 2a 05 e1 0d 0d |%)=0..d~K..*....| 00001cf0 34 04 0d 0d 3e 0b dd f2 63 6f 70 72 6f 0d 0d 48 |4...>...copro..H| 00001d00 07 ea 49 25 0d 0d 52 06 ef 37 0d 0d 5c 38 f1 22 |..I%..R..7..\8."| 00001d10 41 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 64 69 |Attempting to di| 00001d20 73 61 73 73 65 6d 62 6c 65 20 63 6f 70 72 6f 63 |sassemble coproc| 00001d30 65 73 73 6f 72 20 69 6e 73 74 72 75 63 74 69 6f |essor instructio| 00001d40 6e 22 0d 0d 66 23 ff 28 22 4d 65 6d 6f 72 79 49 |n"..f#.("MemoryI| 00001d50 20 22 2b c3 7e 28 6f 66 66 73 65 74 25 2b 62 61 | "+.~(offset%+ba| 00001d60 73 65 25 29 29 0d 0d 70 11 e7 72 65 61 64 73 63 |se%))..p..readsc| 00001d70 72 69 70 74 25 8c 0d 0d 7a 22 20 20 f1 22 43 6f |ript%...z" ."Co| 00001d80 6e 74 69 6e 75 69 6e 67 20 69 6e 20 61 20 6d 6f |ntinuing in a mo| 00001d90 6d 65 6e 74 2e 2e 2e 22 0d 0d 84 14 20 20 e3 49 |ment...".... .I| 00001da0 25 3d 31 b8 31 30 30 30 30 30 3a ed 0d 0d 8e 05 |%=1.100000:.....| 00001db0 cc 0d 0d 98 23 20 20 f1 22 50 72 65 73 73 20 61 |....# ."Press a| 00001dc0 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 6e |ny key to contin| 00001dd0 75 65 22 27 0d 0d a2 0a 20 20 47 25 3d a5 0d 0d |ue"'.... G%=...| 00001de0 ac 05 cd 0d 0d b6 0b e3 49 25 3d 30 b8 33 0d 0d |........I%=0.3..| 00001df0 c0 19 20 20 74 79 70 65 25 28 6f 66 66 73 65 74 |.. type%(offset| 00001e00 25 2b 49 25 29 3d 30 0d 0d ca 05 ed 0d 0d d4 05 |%+I%)=0.........| 00001e10 e1 0d 0d de 04 0d 0d e8 0b dd f2 64 65 62 75 67 |...........debug| 00001e20 0d 0d f2 15 e3 6f 66 66 73 65 74 25 3d 30 b8 62 |.....offset%=0.b| 00001e30 79 74 65 73 25 0d 0d fc 19 e7 6c 61 62 65 6c 24 |ytes%.....label$| 00001e40 28 6f 66 66 73 65 74 25 29 3c 3e 22 22 8c 0d 0e |(offset%)<>""...| 00001e50 06 32 20 20 f1 7e 6f 66 66 73 65 74 25 2c 74 79 |.2 .~offset%,ty| 00001e60 70 65 25 28 6f 66 66 73 65 74 25 29 2c 22 20 22 |pe%(offset%)," "| 00001e70 2c 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 25 29 |,label$(offset%)| 00001e80 0d 0e 10 05 cd 0d 0e 1a 05 ed 0d 0e 24 16 2a 4d |............$.*M| 00001e90 45 4d 4f 52 59 49 20 31 30 30 30 30 20 2b 33 32 |EMORYI 10000 +32| 00001ea0 0d 0e 2e 08 47 25 3d a5 0d 0e 38 10 e3 49 25 3d |....G%=...8..I%=| 00001eb0 30 b8 62 79 74 65 73 25 0d 0e 42 1f 20 20 f1 7e |0.bytes%..B. .~| 00001ec0 49 25 2c 74 79 70 65 25 28 49 25 29 2c 6c 61 62 |I%,type%(I%),lab| 00001ed0 65 6c 24 28 49 25 29 0d 0e 4c 05 ed 0d 0e 56 08 |el$(I%)..L....V.| 00001ee0 47 25 3d a5 0d 0e 60 10 e3 49 25 3d 30 b8 62 79 |G%=...`..I%=0.by| 00001ef0 74 65 73 25 0d 0e 6a 2c 20 20 e7 74 79 70 65 25 |tes%..j, .type%| 00001f00 28 49 25 29 3d 30 8c f1 7e 49 25 2c 74 79 70 65 |(I%)=0..~I%,type| 00001f10 25 28 49 25 29 2c 6c 61 62 65 6c 24 28 49 25 29 |%(I%),label$(I%)| 00001f20 0d 0e 74 05 ed 0d 0e 7e 05 e1 0d 0e 88 04 0d 0e |..t....~........| 00001f30 92 09 dd f2 64 69 73 0d 0e 9c 0d 6f 66 66 73 65 |....dis....offse| 00001f40 74 25 3d 30 0d 0e a6 1f ff 22 53 70 6f 6f 6c 20 |t%=0....."Spool | 00001f50 53 4f 55 52 43 45 53 2e 22 2b 66 69 6c 65 6e 61 |SOURCES."+filena| 00001f60 6d 65 24 0d 0e b0 1e f1 22 52 45 4d 20 3e 53 4f |me$....."REM >SO| 00001f70 55 52 43 45 53 2e 22 2b 66 69 6c 65 6e 61 6d 65 |URCES."+filename| 00001f80 24 0d 0e ba 15 f1 22 44 49 4d 63 6f 64 65 25 26 |$....."DIMcode%&| 00001f90 31 30 30 30 30 22 0d 0e c4 1b f1 22 46 4f 52 49 |10000"....."FORI| 00001fa0 25 3d 30 54 4f 26 31 30 30 30 30 53 54 45 50 34 |%=0TO&10000STEP4| 00001fb0 22 0d 0e ce 13 f1 22 20 20 63 6f 64 65 25 21 49 |"....." code%!I| 00001fc0 25 3d 30 22 0d 0e d8 0b f1 22 4e 45 58 54 22 0d |%=0"....."NEXT".| 00001fd0 0e e2 15 f1 22 4f 53 5f 57 72 69 74 65 49 3d 26 |...."OS_WriteI=&| 00001fe0 31 30 30 22 0d 0e ec 18 f1 22 58 4f 53 5f 57 72 |100"....."XOS_Wr| 00001ff0 69 74 65 49 3d 26 32 30 31 30 30 22 0d 0e f6 19 |iteI=&20100"....| 00002000 f1 22 46 4f 52 70 61 73 73 25 3d 34 54 4f 37 53 |."FORpass%=4TO7S| 00002010 54 45 50 33 22 0d 0f 00 0f f1 22 4f 25 3d 63 6f |TEP3"....."O%=co| 00002020 64 65 25 22 0d 0f 0a 0b f1 22 50 25 3d 30 22 0d |de%"....."P%=0".| 00002030 0f 14 11 f1 22 5b 4f 50 54 20 70 61 73 73 25 22 |...."[OPT pass%"| 00002040 0d 0f 1e 05 f5 0d 0f 28 17 20 20 c8 8e 74 79 70 |.......(. ..typ| 00002050 65 25 28 6f 66 66 73 65 74 25 29 ca 0d 0f 32 1c |e%(offset%)...2.| 00002060 20 20 20 20 c9 2d 33 3a f2 64 69 73 70 61 64 64 | .-3:.dispadd| 00002070 65 64 73 74 72 69 6e 67 0d 0f 3c 15 20 20 20 20 |edstring..<. | 00002080 c9 2d 32 3a f2 64 69 73 73 74 72 43 52 0d 0f 46 |.-2:.disstrCR..F| 00002090 14 20 20 20 20 c9 2d 31 3a f2 64 69 73 73 74 72 |. .-1:.disstr| 000020a0 30 0d 0f 50 16 20 20 20 20 c9 20 30 3a 6f 66 66 |0..P. . 0:off| 000020b0 73 65 74 25 2b 3d 31 0d 0f 5a 14 20 20 20 20 c9 |set%+=1..Z. .| 000020c0 20 31 3a f2 64 69 73 62 79 74 65 0d 0f 64 14 20 | 1:.disbyte..d. | 000020d0 20 20 20 c9 20 32 3a f2 64 69 73 77 6f 72 64 0d | . 2:.disword.| 000020e0 0f 6e 14 20 20 20 20 c9 20 33 3a f2 64 69 73 61 |.n. . 3:.disa| 000020f0 64 64 72 0d 0f 78 14 20 20 20 20 c9 20 34 3a f2 |ddr..x. . 4:.| 00002100 64 69 73 64 6f 75 62 0d 0f 82 14 20 20 20 20 c9 |disdoub.... .| 00002110 20 35 3a f2 64 69 73 63 6f 64 65 0d 0f 8c 15 20 | 5:.discode.... | 00002120 20 20 20 c9 20 36 3a f2 64 69 73 61 6c 69 67 6e | . 6:.disalign| 00002130 0d 0f 96 18 20 20 20 20 c9 20 37 3a f2 64 69 73 |.... . 7:.dis| 00002140 65 78 74 65 72 6e 61 6c 0d 0f a0 07 20 20 cb 0d |external.... ..| 00002150 0f aa 13 fd 6f 66 66 73 65 74 25 3e 62 79 74 65 |....offset%>byte| 00002160 73 25 0d 0f b4 0d f1 22 5d 3a 4e 45 58 54 22 0d |s%....."]:NEXT".| 00002170 0f be 41 f1 22 53 59 53 22 22 4f 53 5f 46 69 6c |..A."SYS""OS_Fil| 00002180 65 22 22 2c 31 30 2c 22 22 4d 4f 44 55 4c 45 53 |e"",10,""MODULES| 00002190 2e 22 2b 66 69 6c 65 6e 61 6d 65 24 2b 22 22 22 |."+filename$+"""| 000021a0 2c 26 46 46 41 2c 2c 63 6f 64 65 25 2c 4f 25 22 |,&FFA,,code%,O%"| 000021b0 0d 0f c8 0b f1 22 45 4e 44 22 27 0d 0f d2 23 f1 |....."END"'...#.| 000021c0 22 44 45 46 46 4e 61 64 72 6c 28 63 6f 6e 64 24 |"DEFFNadrl(cond$| 000021d0 2c 72 65 67 25 2c 6c 61 62 65 6c 24 29 22 0d 0f |,reg%,label$)"..| 000021e0 dc 31 f1 22 49 46 63 6f 6e 64 24 3d 22 22 22 22 |.1."IFcond$=""""| 000021f0 4f 52 63 6f 6e 64 24 3d 22 22 20 20 22 22 54 48 |ORcond$="" ""TH| 00002200 45 4e 63 6f 6e 64 24 3d 22 22 41 4c 22 22 22 0d |ENcond$=""AL""".| 00002210 0f e6 44 f1 22 63 63 25 3d 28 49 4e 53 54 52 28 |..D."cc%=(INSTR(| 00002220 22 22 45 51 4e 45 43 53 43 43 4d 49 50 4c 56 53 |""EQNECSCCMIPLVS| 00002230 56 43 48 49 4c 53 47 45 4c 54 47 54 4c 45 41 4c |VCHILSGELTGTLEAL| 00002240 4e 56 22 22 2c 63 6f 6e 64 24 29 2d 31 29 44 49 |NV"",cond$)-1)DI| 00002250 56 32 22 0d 0f f0 18 f1 22 49 46 70 61 73 73 25 |V2"....."IFpass%| 00002260 41 4e 44 32 3d 30 54 48 45 4e 22 0d 0f fa 13 f1 |AND2=0THEN".....| 00002270 22 20 20 5b 4f 50 54 20 70 61 73 73 25 22 0d 10 |" [OPT pass%"..| 00002280 04 0f f1 22 20 20 45 51 55 44 20 30 22 0d 10 0e |..." EQUD 0"...| 00002290 0f f1 22 20 20 45 51 55 44 20 30 22 0d 10 18 0a |.." EQUD 0"....| 000022a0 f1 22 20 20 5d 22 0d 10 22 0b f1 22 45 4c 53 45 |." ]"..".."ELSE| 000022b0 22 0d 10 2c 22 f1 22 20 20 6f 66 66 73 65 74 25 |"..,"." offset%| 000022c0 3d 45 56 41 4c 28 6c 61 62 65 6c 24 29 2d 50 25 |=EVAL(label$)-P%| 000022d0 2d 38 22 0d 10 36 1f f1 22 20 20 6c 6f 25 3d 41 |-8"..6.." lo%=A| 000022e0 42 53 28 6f 66 66 73 65 74 25 29 41 4e 44 26 46 |BS(offset%)AND&F| 000022f0 46 22 0d 10 40 21 f1 22 20 20 68 69 25 3d 41 42 |F"..@!." hi%=AB| 00002300 53 28 6f 66 66 73 65 74 25 29 41 4e 44 26 46 46 |S(offset%)AND&FF| 00002310 30 30 22 0d 10 4a 19 f1 22 20 20 49 46 6f 66 66 |00"..J.." IFoff| 00002320 73 65 74 25 3e 3d 30 54 48 45 4e 22 0d 10 54 35 |set%>=0THEN"..T5| 00002330 f1 22 20 20 20 20 6f 70 31 25 3d 28 63 63 25 3c |." op1%=(cc%<| 00002340 3c 32 38 29 4f 52 28 26 30 32 38 46 30 30 30 30 |<28)OR(&028F0000| 00002350 2b 28 72 65 67 25 3c 3c 31 32 29 2b 6c 6f 25 29 |+(reg%<<12)+lo%)| 00002360 22 0d 10 5e 45 f1 22 20 20 20 20 6f 70 32 25 3d |"..^E." op2%=| 00002370 28 63 63 25 3c 3c 32 38 29 4f 52 28 26 30 32 38 |(cc%<<28)OR(&028| 00002380 30 30 43 30 30 2b 28 72 65 67 25 3c 3c 31 36 29 |00C00+(reg%<<16)| 00002390 2b 28 72 65 67 25 3c 3c 31 32 29 2b 28 68 69 25 |+(reg%<<12)+(hi%| 000023a0 3e 3e 38 29 29 22 0d 10 68 0d f1 22 20 20 45 4c |>>8))"..h.." EL| 000023b0 53 45 22 0d 10 72 35 f1 22 20 20 20 20 6f 70 31 |SE"..r5." op1| 000023c0 25 3d 28 63 63 25 3c 3c 32 38 29 4f 52 28 26 30 |%=(cc%<<28)OR(&0| 000023d0 32 34 46 30 30 30 30 2b 28 72 65 67 25 3c 3c 31 |24F0000+(reg%<<1| 000023e0 32 29 2b 6c 6f 25 29 22 0d 10 7c 45 f1 22 20 20 |2)+lo%)"..|E." | 000023f0 20 20 6f 70 32 25 3d 28 63 63 25 3c 3c 32 38 29 | op2%=(cc%<<28)| 00002400 4f 52 28 26 30 32 34 30 30 43 30 30 2b 28 72 65 |OR(&02400C00+(re| 00002410 67 25 3c 3c 31 36 29 2b 28 72 65 67 25 3c 3c 31 |g%<<16)+(reg%<<1| 00002420 32 29 2b 28 68 69 25 3e 3e 38 29 29 22 0d 10 86 |2)+(hi%>>8))"...| 00002430 0e f1 22 20 20 45 4e 44 49 46 22 0d 10 90 13 f1 |.." ENDIF".....| 00002440 22 20 20 5b 4f 50 54 20 70 61 73 73 25 22 0d 10 |" [OPT pass%"..| 00002450 9a 12 f1 22 20 20 45 51 55 44 20 6f 70 31 25 22 |..." EQUD op1%"| 00002460 0d 10 a4 12 f1 22 20 20 45 51 55 44 20 6f 70 32 |....." EQUD op2| 00002470 25 22 0d 10 ae 0a f1 22 20 20 5d 22 0d 10 b8 0c |%"....." ]"....| 00002480 f1 22 45 4e 44 49 46 22 0d 10 c2 09 f1 22 3d 30 |."ENDIF"....."=0| 00002490 22 0d 10 cc 0a 2a 53 70 6f 6f 6c 0d 10 d6 05 e1 |"....*Spool.....| 000024a0 0d 10 e0 04 0d 10 ea 0d dd f2 64 69 73 61 64 64 |..........disadd| 000024b0 72 0d 10 f4 1a 61 64 64 72 65 73 73 25 3d 62 61 |r....address%=ba| 000024c0 73 65 25 21 6f 66 66 73 65 74 25 0d 10 fe 2e e7 |se%!offset%.....| 000024d0 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3c |label$(offset%)<| 000024e0 3e 22 22 8c f1 22 2e 22 3b 6c 61 62 65 6c 24 28 |>""..".";label$(| 000024f0 6f 66 66 73 65 74 25 29 3b 0d 11 08 24 f1 8a 32 |offset%);...$..2| 00002500 30 29 22 45 51 55 44 20 20 20 20 22 3b 6c 61 62 |0)"EQUD ";lab| 00002510 65 6c 24 28 61 64 64 72 65 73 73 25 29 0d 11 12 |el$(address%)...| 00002520 0e 6f 66 66 73 65 74 25 2b 3d 34 0d 11 1c 05 e1 |.offset%+=4.....| 00002530 0d 11 26 04 0d 11 30 0f dd f2 64 69 73 61 64 72 |..&...0...disadr| 00002540 61 64 64 0d 11 3a 17 69 6e 73 74 25 3d 62 61 73 |add..:.inst%=bas| 00002550 65 25 21 6f 66 66 73 65 74 25 0d 11 44 1e 69 6e |e%!offset%..D.in| 00002560 73 74 24 3d a4 65 78 74 72 61 63 74 28 69 6e 73 |st$=.extract(ins| 00002570 74 25 2c 6c 65 6e 25 29 0d 11 4e 12 49 25 3d a7 |t%,len%)..N.I%=.| 00002580 69 6e 73 74 24 2c 22 23 22 29 0d 11 58 25 64 65 |inst$,"#")..X%de| 00002590 73 74 25 3d a0 28 c1 69 6e 73 74 24 2c 49 25 2b |st%=.(.inst$,I%+| 000025a0 31 2c 39 29 29 2b 6f 66 66 73 65 74 25 2b 38 0d |1,9))+offset%+8.| 000025b0 11 62 11 f2 63 68 65 63 6b 66 6f 72 6d 6f 72 65 |.b..checkformore| 000025c0 0d 11 6c 0f e7 65 78 74 72 61 24 3d 22 22 8c 0d |..l..extra$=""..| 000025d0 11 76 30 20 20 e7 6c 61 62 65 6c 24 28 6f 66 66 |.v0 .label$(off| 000025e0 73 65 74 25 29 3c 3e 22 22 8c f1 22 2e 22 3b 6c |set%)<>""..".";l| 000025f0 61 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3b 0d |abel$(offset%);.| 00002600 11 80 14 20 20 49 25 3d a7 69 6e 73 74 24 2c 22 |... I%=.inst$,"| 00002610 2c 22 29 0d 11 8a 13 20 20 c0 69 6e 73 74 24 29 |,").... .inst$)| 00002620 3d 22 41 44 52 22 0d 11 94 23 20 20 f1 8a 32 30 |="ADR"...# ..20| 00002630 29 c0 69 6e 73 74 24 2c 49 25 29 2b 6c 61 62 65 |).inst$,I%)+labe| 00002640 6c 24 28 64 65 73 74 25 29 0d 11 9e 10 20 20 6f |l$(dest%).... o| 00002650 66 66 73 65 74 25 2b 3d 34 0d 11 a8 05 cc 0d 11 |ffset%+=4.......| 00002660 b2 30 20 20 e7 6c 61 62 65 6c 24 28 6f 66 66 73 |.0 .label$(offs| 00002670 65 74 25 29 3c 3e 22 22 8c f1 22 2e 22 3b 6c 61 |et%)<>""..".";la| 00002680 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3b 0d 11 |bel$(offset%);..| 00002690 bc 17 20 20 63 6f 6e 64 24 3d c1 69 6e 73 74 24 |.. cond$=.inst$| 000026a0 2c 34 2c 32 29 0d 11 c6 1c 20 20 e7 64 65 73 74 |,4,2).... .dest| 000026b0 25 3e 62 79 74 65 73 25 84 64 65 73 74 25 3c 30 |%>bytes%.dest%<0| 000026c0 8c 0d 11 d0 40 20 20 20 20 f1 8a 32 30 29 22 46 |....@ ..20)"F| 000026d0 4e 61 64 72 6c 28 22 22 22 2b 63 6f 6e 64 24 2b |Nadrl("""+cond$+| 000026e0 22 22 22 2c 22 2b c3 28 72 64 25 29 2b 22 2c 22 |""","+.(rd%)+","| 000026f0 22 26 22 2b c3 7e 64 65 73 74 25 2b 22 22 22 29 |"&"+.~dest%+""")| 00002700 22 0d 11 da 07 20 20 cc 0d 11 e4 45 20 20 20 20 |".... ....E | 00002710 f1 8a 32 30 29 22 46 4e 61 64 72 6c 28 22 22 22 |..20)"FNadrl("""| 00002720 2b 63 6f 6e 64 24 2b 22 22 22 2c 22 2b c3 28 72 |+cond$+""","+.(r| 00002730 64 25 29 2b 22 2c 22 22 22 2b 6c 61 62 65 6c 24 |d%)+","""+label$| 00002740 28 64 65 73 74 25 29 2b 22 22 22 29 22 0d 11 ee |(dest%)+""")"...| 00002750 07 20 20 cd 0d 11 f8 10 20 20 6f 66 66 73 65 74 |. ..... offset| 00002760 25 2b 3d 38 0d 12 02 05 cd 0d 12 0c 05 e1 0d 12 |%+=8............| 00002770 16 04 0d 12 20 0f dd f2 64 69 73 61 64 72 73 75 |.... ...disadrsu| 00002780 62 0d 12 2a 17 69 6e 73 74 25 3d 62 61 73 65 25 |b..*.inst%=base%| 00002790 21 6f 66 66 73 65 74 25 0d 12 34 1e 69 6e 73 74 |!offset%..4.inst| 000027a0 24 3d a4 65 78 74 72 61 63 74 28 69 6e 73 74 25 |$=.extract(inst%| 000027b0 2c 6c 65 6e 25 29 0d 12 3e 12 49 25 3d a7 69 6e |,len%)..>.I%=.in| 000027c0 73 74 24 2c 22 23 22 29 0d 12 48 26 64 65 73 74 |st$,"#")..H&dest| 000027d0 25 3d 2d a0 28 c1 69 6e 73 74 24 2c 49 25 2b 31 |%=-.(.inst$,I%+1| 000027e0 2c 39 29 29 2b 6f 66 66 73 65 74 25 2b 38 0d 12 |,9))+offset%+8..| 000027f0 52 11 f2 63 68 65 63 6b 66 6f 72 6d 6f 72 65 0d |R..checkformore.| 00002800 12 5c 0f e7 65 78 74 72 61 24 3d 22 22 8c 0d 12 |.\..extra$=""...| 00002810 66 30 20 20 e7 6c 61 62 65 6c 24 28 6f 66 66 73 |f0 .label$(offs| 00002820 65 74 25 29 3c 3e 22 22 8c f1 22 2e 22 3b 6c 61 |et%)<>""..".";la| 00002830 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3b 0d 12 |bel$(offset%);..| 00002840 70 14 20 20 49 25 3d a7 69 6e 73 74 24 2c 22 2c |p. I%=.inst$,",| 00002850 22 29 0d 12 7a 13 20 20 c0 69 6e 73 74 24 29 3d |")..z. .inst$)=| 00002860 22 41 44 52 22 0d 12 84 23 20 20 f1 8a 32 30 29 |"ADR"...# ..20)| 00002870 c0 69 6e 73 74 24 2c 49 25 29 2b 6c 61 62 65 6c |.inst$,I%)+label| 00002880 24 28 64 65 73 74 25 29 0d 12 8e 10 20 20 6f 66 |$(dest%).... of| 00002890 66 73 65 74 25 2b 3d 34 0d 12 98 05 cc 0d 12 a2 |fset%+=4........| 000028a0 30 20 20 e7 6c 61 62 65 6c 24 28 6f 66 66 73 65 |0 .label$(offse| 000028b0 74 25 29 3c 3e 22 22 8c f1 22 2e 22 3b 6c 61 62 |t%)<>""..".";lab| 000028c0 65 6c 24 28 6f 66 66 73 65 74 25 29 3b 0d 12 ac |el$(offset%);...| 000028d0 17 20 20 63 6f 6e 64 24 3d c1 69 6e 73 74 24 2c |. cond$=.inst$,| 000028e0 34 2c 32 29 0d 12 b6 1c 20 20 e7 64 65 73 74 25 |4,2).... .dest%| 000028f0 3e 62 79 74 65 73 25 84 64 65 73 74 25 3c 30 8c |>bytes%.dest%<0.| 00002900 0d 12 c0 40 20 20 20 20 f1 8a 32 30 29 22 46 4e |...@ ..20)"FN| 00002910 61 64 72 6c 28 22 22 22 2b 63 6f 6e 64 24 2b 22 |adrl("""+cond$+"| 00002920 22 22 2c 22 2b c3 28 72 64 25 29 2b 22 2c 22 22 |"","+.(rd%)+",""| 00002930 26 22 2b c3 7e 64 65 73 74 25 2b 22 22 22 29 22 |&"+.~dest%+""")"| 00002940 0d 12 ca 07 20 20 cc 0d 12 d4 45 20 20 20 20 f1 |.... ....E .| 00002950 8a 32 30 29 22 46 4e 61 64 72 6c 28 22 22 22 2b |.20)"FNadrl("""+| 00002960 63 6f 6e 64 24 2b 22 22 22 2c 22 2b c3 28 72 64 |cond$+""","+.(rd| 00002970 25 29 2b 22 2c 22 22 22 2b 6c 61 62 65 6c 24 28 |%)+","""+label$(| 00002980 64 65 73 74 25 29 2b 22 22 22 29 22 0d 12 de 07 |dest%)+""")"....| 00002990 20 20 cd 0d 12 e8 10 20 20 6f 66 66 73 65 74 25 | ..... offset%| 000029a0 2b 3d 38 0d 12 f2 05 cd 0d 12 fc 05 e1 0d 13 06 |+=8.............| 000029b0 04 0d 13 10 0e dd f2 64 69 73 61 6c 69 67 6e 0d |.......disalign.| 000029c0 13 1a 0d ea 70 6f 69 6e 74 65 72 25 0d 13 24 10 |....pointer%..$.| 000029d0 f1 8a 32 30 29 22 41 4c 49 47 4e 22 0d 13 2e 1a |..20)"ALIGN"....| 000029e0 70 6f 69 6e 74 65 72 25 3d 6f 66 66 73 65 74 25 |pointer%=offset%| 000029f0 2b 62 61 73 65 25 0d 13 38 13 c8 95 70 6f 69 6e |+base%..8...poin| 00002a00 74 65 72 25 83 34 3c 3e 30 0d 13 42 11 20 20 70 |ter%.4<>0..B. p| 00002a10 6f 69 6e 74 65 72 25 2b 3d 31 0d 13 4c 10 20 20 |ointer%+=1..L. | 00002a20 6f 66 66 73 65 74 25 2b 3d 31 0d 13 56 05 ce 0d |offset%+=1..V...| 00002a30 13 60 05 e1 0d 13 6a 04 0d 13 74 0b dd f2 64 69 |.`....j...t...di| 00002a40 73 62 6c 0d 13 7e 2f 64 65 73 74 25 3d 28 28 28 |sbl..~/dest%=(((| 00002a50 a0 28 c2 69 6e 73 74 24 2c 6c 65 6e 25 2d 37 29 |.(.inst$,len%-7)| 00002a60 29 29 3c 3c 38 29 3e 3e 38 29 2b 6f 66 66 73 65 |))<<8)>>8)+offse| 00002a70 74 25 0d 13 88 2e e7 6c 61 62 65 6c 24 28 6f 66 |t%.....label$(of| 00002a80 66 73 65 74 25 29 3c 3e 22 22 8c f1 22 2e 22 3b |fset%)<>""..".";| 00002a90 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3b |label$(offset%);| 00002aa0 0d 13 92 1a e7 64 65 73 74 25 3e 62 79 74 65 73 |.....dest%>bytes| 00002ab0 25 84 64 65 73 74 25 3c 30 8c 0d 13 9c 1f 20 20 |%.dest%<0..... | 00002ac0 f1 8a 32 30 29 c0 69 6e 73 74 24 2c 38 29 2b 22 |..20).inst$,8)+"| 00002ad0 26 22 3b 7e 64 65 73 74 25 0d 13 a6 05 cc 0d 13 |&";~dest%.......| 00002ae0 b0 22 20 20 f1 8a 32 30 29 c0 69 6e 73 74 24 2c |." ..20).inst$,| 00002af0 38 29 2b 6c 61 62 65 6c 24 28 64 65 73 74 25 29 |8)+label$(dest%)| 00002b00 0d 13 ba 05 cd 0d 13 c4 0e 6f 66 66 73 65 74 25 |.........offset%| 00002b10 2b 3d 34 0d 13 ce 05 e1 0d 13 d8 04 0d 13 e2 0f |+=4.............| 00002b20 dd f2 64 69 73 62 72 61 6e 63 68 0d 13 ec 2f 64 |..disbranch.../d| 00002b30 65 73 74 25 3d 28 28 28 a0 28 c2 69 6e 73 74 24 |est%=(((.(.inst$| 00002b40 2c 6c 65 6e 25 2d 37 29 29 29 3c 3c 38 29 3e 3e |,len%-7)))<<8)>>| 00002b50 38 29 2b 6f 66 66 73 65 74 25 0d 13 f6 2e e7 6c |8)+offset%.....l| 00002b60 61 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3c 3e |abel$(offset%)<>| 00002b70 22 22 8c f1 22 2e 22 3b 6c 61 62 65 6c 24 28 6f |""..".";label$(o| 00002b80 66 66 73 65 74 25 29 3b 0d 14 00 1a e7 64 65 73 |ffset%);.....des| 00002b90 74 25 3e 62 79 74 65 73 25 84 64 65 73 74 25 3c |t%>bytes%.dest%<| 00002ba0 30 8c 0d 14 0a 1f 20 20 f1 8a 32 30 29 c0 69 6e |0..... ..20).in| 00002bb0 73 74 24 2c 38 29 2b 22 26 22 3b 7e 64 65 73 74 |st$,8)+"&";~dest| 00002bc0 25 0d 14 14 05 cc 0d 14 1e 22 20 20 f1 8a 32 30 |%........" ..20| 00002bd0 29 c0 69 6e 73 74 24 2c 38 29 2b 6c 61 62 65 6c |).inst$,8)+label| 00002be0 24 28 64 65 73 74 25 29 0d 14 1f 05 cd 0d 14 28 |$(dest%).......(| 00002bf0 0e 6f 66 66 73 65 74 25 2b 3d 34 0d 14 32 05 e1 |.offset%+=4..2..| 00002c00 0d 14 3c 04 0d 14 46 0d dd f2 64 69 73 62 79 74 |..<...F...disbyt| 00002c10 65 0d 14 50 17 62 79 74 65 25 3d 62 61 73 65 25 |e..P.byte%=base%| 00002c20 3f 6f 66 66 73 65 74 25 0d 14 5a 2e e7 6c 61 62 |?offset%..Z..lab| 00002c30 65 6c 24 28 6f 66 66 73 65 74 25 29 3c 3e 22 22 |el$(offset%)<>""| 00002c40 8c f1 22 2e 22 3b 6c 61 62 65 6c 24 28 6f 66 66 |..".";label$(off| 00002c50 73 65 74 25 29 3b 0d 14 64 13 62 79 74 65 24 3d |set%);..d.byte$=| 00002c60 c3 7e 28 62 79 74 65 25 29 0d 14 6e 20 62 79 74 |.~(byte%)..n byt| 00002c70 65 24 3d c4 32 2d a9 28 62 79 74 65 24 29 2c 22 |e$=.2-.(byte$),"| 00002c80 30 22 29 2b 62 79 74 65 24 0d 14 78 1a f1 8a 32 |0")+byte$..x...2| 00002c90 30 29 22 45 51 55 42 20 20 20 20 26 22 3b 62 79 |0)"EQUB &";by| 00002ca0 74 65 24 0d 14 82 0e 6f 66 66 73 65 74 25 2b 3d |te$....offset%+=| 00002cb0 31 0d 14 8c 05 e1 0d 14 96 04 0d 14 a0 0d dd f2 |1...............| 00002cc0 64 69 73 63 6f 64 65 0d 14 aa 17 69 6e 73 74 25 |discode....inst%| 00002cd0 3d 62 61 73 65 25 21 6f 66 66 73 65 74 25 0d 14 |=base%!offset%..| 00002ce0 b4 1e 69 6e 73 74 24 3d a4 65 78 74 72 61 63 74 |..inst$=.extract| 00002cf0 28 69 6e 73 74 25 2c 6c 65 6e 25 29 0d 14 be 13 |(inst%,len%)....| 00002d00 c8 8e a4 69 6e 73 74 28 69 6e 73 74 25 29 ca 0d |...inst(inst%)..| 00002d10 14 c8 14 20 20 c9 20 31 3a f2 64 69 73 62 72 61 |... . 1:.disbra| 00002d20 6e 63 68 0d 14 d2 14 20 20 c9 20 32 3a f2 64 69 |nch.... . 2:.di| 00002d30 73 62 72 61 6e 63 68 0d 14 dc 10 20 20 c9 20 33 |sbranch.... . 3| 00002d40 3a f2 64 69 73 62 6c 0d 14 e6 13 20 20 c9 20 34 |:.disbl.... . 4| 00002d50 3a f2 64 69 73 6f 74 68 65 72 0d 14 f0 11 20 20 |:.disother.... | 00002d60 c9 20 35 3a f2 64 69 73 73 77 69 0d 14 fa 13 20 |. 5:.disswi.... | 00002d70 20 c9 20 36 3a f2 64 69 73 6f 74 68 65 72 0d 15 | . 6:.disother..| 00002d80 04 13 20 20 c9 20 37 3a f2 64 69 73 6f 74 68 65 |.. . 7:.disothe| 00002d90 72 0d 15 0e 14 20 20 c9 20 38 3a f2 64 69 73 61 |r.... . 8:.disa| 00002da0 64 72 61 64 64 0d 15 18 14 20 20 c9 20 39 3a f2 |dradd.... . 9:.| 00002db0 64 69 73 61 64 72 73 75 62 0d 15 22 13 20 20 c9 |disadrsub..". .| 00002dc0 31 30 3a f2 64 69 73 6f 74 68 65 72 0d 15 2c 13 |10:.disother..,.| 00002dd0 20 20 c9 31 31 3a f2 64 69 73 6c 73 65 78 70 0d | .11:.dislsexp.| 00002de0 15 36 13 20 20 c9 31 32 3a f2 64 69 73 63 6f 70 |.6. .12:.discop| 00002df0 72 6f 0d 15 40 13 20 20 c9 31 33 3a f2 64 69 73 |ro..@. .13:.dis| 00002e00 75 6e 64 65 66 0d 15 4a 13 20 20 c9 31 34 3a f2 |undef..J. .14:.| 00002e10 64 69 73 6f 74 68 65 72 0d 15 54 11 20 20 7f 3a |disother..T. .:| 00002e20 f2 64 69 73 6f 74 68 65 72 0d 15 5e 05 cb 0d 15 |.disother..^....| 00002e30 68 05 e1 0d 15 72 04 0d 15 7c 0d dd f2 64 69 73 |h....r...|...dis| 00002e40 64 6f 75 62 0d 15 86 19 64 6f 75 62 6c 65 25 3d |doub....double%=| 00002e50 62 61 73 65 25 21 6f 66 66 73 65 74 25 0d 15 90 |base%!offset%...| 00002e60 2e e7 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 25 |..label$(offset%| 00002e70 29 3c 3e 22 22 8c f1 22 2e 22 3b 6c 61 62 65 6c |)<>""..".";label| 00002e80 24 28 6f 66 66 73 65 74 25 29 3b 0d 15 9a 17 64 |$(offset%);....d| 00002e90 6f 75 62 6c 65 24 3d c3 7e 28 64 6f 75 62 6c 65 |ouble$=.~(double| 00002ea0 25 29 0d 15 a4 26 64 6f 75 62 6c 65 24 3d c4 38 |%)...&double$=.8| 00002eb0 2d a9 28 64 6f 75 62 6c 65 24 29 2c 22 30 22 29 |-.(double$),"0")| 00002ec0 2b 64 6f 75 62 6c 65 24 0d 15 ae 1c f1 8a 32 30 |+double$......20| 00002ed0 29 22 45 51 55 44 20 20 20 20 26 22 3b 64 6f 75 |)"EQUD &";dou| 00002ee0 62 6c 65 24 0d 15 b8 0e 6f 66 66 73 65 74 25 2b |ble$....offset%+| 00002ef0 3d 34 0d 15 c2 05 e1 0d 15 cc 04 0d 15 d6 11 dd |=4..............| 00002f00 f2 64 69 73 65 78 74 65 72 6e 61 6c 0d 15 e0 14 |.disexternal....| 00002f10 f4 20 44 65 73 6b 74 6f 70 20 6d 6f 64 75 6c 65 |. Desktop module| 00002f20 0d 15 ea 0e c8 8e 6f 66 66 73 65 74 25 ca 0d 15 |......offset%...| 00002f30 f4 11 20 20 c9 20 26 35 46 43 3a f1 22 5d 22 0d |.. . &5FC:."]".| 00002f40 15 fe 39 20 20 20 20 20 20 20 20 20 20 20 20 f1 |..9 .| 00002f50 22 4f 53 43 4c 49 22 22 4c 6f 61 64 20 54 45 4d |"OSCLI""Load TEM| 00002f60 50 4c 41 54 45 53 2e 46 69 6c 65 72 20 22 22 2b |PLATES.Filer ""+| 00002f70 53 54 52 24 7e 4f 25 22 0d 16 08 1b 20 20 20 20 |STR$~O%".... | 00002f80 20 20 20 20 20 20 20 20 f1 22 4f 25 2b 3d 26 34 | ."O%+=&4| 00002f90 38 39 22 0d 16 12 1b 20 20 20 20 20 20 20 20 20 |89".... | 00002fa0 20 20 20 f1 22 50 25 2b 3d 26 34 38 39 22 0d 16 | ."P%+=&489"..| 00002fb0 1c 1d 20 20 20 20 20 20 20 20 20 20 20 20 f1 22 |.. ."| 00002fc0 5b 4f 50 54 20 70 61 73 73 25 22 0d 16 26 1d 20 |[OPT pass%"..&. | 00002fd0 20 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 65 | offse| 00002fe0 74 25 2b 3d 26 34 38 39 0d 16 30 11 20 20 c9 20 |t%+=&489..0. . | 00002ff0 26 41 41 46 3a f1 22 5d 22 0d 16 3a 3c 20 20 20 |&AAF:."]"..:< | 00003000 20 20 20 20 20 20 20 20 20 f1 22 4f 53 43 4c 49 | ."OSCLI| 00003010 22 22 4c 6f 61 64 20 54 45 4d 50 4c 41 54 45 53 |""Load TEMPLATES| 00003020 2e 4e 65 74 46 69 6c 65 72 20 22 22 2b 53 54 52 |.NetFiler ""+STR| 00003030 24 7e 4f 25 22 0d 16 44 1b 20 20 20 20 20 20 20 |$~O%"..D. | 00003040 20 20 20 20 20 f1 22 4f 25 2b 3d 26 34 33 46 22 | ."O%+=&43F"| 00003050 0d 16 4e 1b 20 20 20 20 20 20 20 20 20 20 20 20 |..N. | 00003060 f1 22 50 25 2b 3d 26 34 33 46 22 0d 16 58 1d 20 |."P%+=&43F"..X. | 00003070 20 20 20 20 20 20 20 20 20 20 20 f1 22 5b 4f 50 | ."[OP| 00003080 54 20 70 61 73 73 25 22 0d 16 62 1d 20 20 20 20 |T pass%"..b. | 00003090 20 20 20 20 20 20 20 20 6f 66 66 73 65 74 25 2b | offset%+| 000030a0 3d 26 34 33 46 0d 16 6c 11 20 20 c9 20 26 46 31 |=&43F..l. . &F1| 000030b0 36 3a f1 22 5d 22 0d 16 76 3b 20 20 20 20 20 20 |6:."]"..v; | 000030c0 20 20 20 20 20 20 f1 22 4f 53 43 4c 49 22 22 4c | ."OSCLI""L| 000030d0 6f 61 64 20 54 45 4d 50 4c 41 54 45 53 2e 50 61 |oad TEMPLATES.Pa| 000030e0 6c 65 74 74 65 20 22 22 2b 53 54 52 24 7e 4f 25 |lette ""+STR$~O%| 000030f0 22 0d 16 80 1b 20 20 20 20 20 20 20 20 20 20 20 |".... | 00003100 20 f1 22 4f 25 2b 3d 26 34 45 31 22 0d 16 8a 1b | ."O%+=&4E1"....| 00003110 20 20 20 20 20 20 20 20 20 20 20 20 f1 22 50 25 | ."P%| 00003120 2b 3d 26 34 45 31 22 0d 16 94 1d 20 20 20 20 20 |+=&4E1".... | 00003130 20 20 20 20 20 20 20 f1 22 5b 4f 50 54 20 70 61 | ."[OPT pa| 00003140 73 73 25 22 0d 16 9e 1d 20 20 20 20 20 20 20 20 |ss%".... | 00003150 20 20 20 20 6f 66 66 73 65 74 25 2b 3d 26 34 45 | offset%+=&4E| 00003160 31 0d 16 a8 11 20 20 c9 26 31 34 31 46 3a f1 22 |1.... .&141F:."| 00003170 5d 22 0d 16 b2 3c 20 20 20 20 20 20 20 20 20 20 |]"...< | 00003180 20 20 f1 22 4f 53 43 4c 49 22 22 4c 6f 61 64 20 | ."OSCLI""Load | 00003190 54 45 4d 50 4c 41 54 45 53 2e 53 77 69 74 63 68 |TEMPLATES.Switch| 000031a0 65 72 20 22 22 2b 53 54 52 24 7e 4f 25 22 0d 16 |er ""+STR$~O%"..| 000031b0 bc 1b 20 20 20 20 20 20 20 20 20 20 20 20 f1 22 |.. ."| 000031c0 4f 25 2b 3d 26 34 44 39 22 0d 16 c6 1b 20 20 20 |O%+=&4D9".... | 000031d0 20 20 20 20 20 20 20 20 20 f1 22 50 25 2b 3d 26 | ."P%+=&| 000031e0 34 44 39 22 0d 16 d0 1d 20 20 20 20 20 20 20 20 |4D9".... | 000031f0 20 20 20 20 f1 22 5b 4f 50 54 20 70 61 73 73 25 | ."[OPT pass%| 00003200 22 0d 16 da 1d 20 20 20 20 20 20 20 20 20 20 20 |".... | 00003210 20 6f 66 66 73 65 74 25 2b 3d 26 34 44 39 0d 16 | offset%+=&4D9..| 00003220 e4 11 20 20 c9 26 31 39 31 42 3a f1 22 5d 22 0d |.. .&191B:."]".| 00003230 16 ee 38 20 20 20 20 20 20 20 20 20 20 20 20 f1 |..8 .| 00003240 22 4f 53 43 4c 49 22 22 4c 6f 61 64 20 54 45 4d |"OSCLI""Load TEM| 00003250 50 4c 41 54 45 53 2e 57 69 6d 70 20 22 22 2b 53 |PLATES.Wimp ""+S| 00003260 54 52 24 7e 4f 25 22 0d 16 f8 1b 20 20 20 20 20 |TR$~O%".... | 00003270 20 20 20 20 20 20 20 f1 22 4f 25 2b 3d 26 32 37 | ."O%+=&27| 00003280 44 22 0d 17 02 1b 20 20 20 20 20 20 20 20 20 20 |D".... | 00003290 20 20 f1 22 50 25 2b 3d 26 32 37 44 22 0d 17 0c | ."P%+=&27D"...| 000032a0 1d 20 20 20 20 20 20 20 20 20 20 20 20 f1 22 5b |. ."[| 000032b0 4f 50 54 20 70 61 73 73 25 22 0d 17 16 1d 20 20 |OPT pass%".... | 000032c0 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 65 74 | offset| 000032d0 25 2b 3d 26 32 37 44 0d 17 20 05 cb 0d 17 2a 05 |%+=&27D.. ....*.| 000032e0 e1 0d 17 34 04 0d 17 3e 0e dd f2 64 69 73 6c 73 |...4...>...disls| 000032f0 65 78 70 0d 17 48 17 69 6e 73 74 25 3d 62 61 73 |exp..H.inst%=bas| 00003300 65 25 21 6f 66 66 73 65 74 25 0d 17 52 1e 69 6e |e%!offset%..R.in| 00003310 73 74 24 3d a4 65 78 74 72 61 63 74 28 69 6e 73 |st$=.extract(ins| 00003320 74 25 2c 6c 65 6e 25 29 0d 17 5c 14 49 25 3d a7 |t%,len%)..\.I%=.| 00003330 69 6e 73 74 24 2c 22 23 22 29 2b 31 0d 17 66 15 |inst$,"#")+1..f.| 00003340 4a 25 3d a7 69 6e 73 74 24 2c 22 5d 22 29 2d 49 |J%=.inst$,"]")-I| 00003350 25 0d 17 70 24 64 65 73 74 25 3d a0 28 c1 69 6e |%..p$dest%=.(.in| 00003360 73 74 24 2c 49 25 2c 4a 25 29 29 2b 6f 66 66 73 |st$,I%,J%))+offs| 00003370 65 74 25 2b 38 0d 17 7a 2e e7 6c 61 62 65 6c 24 |et%+8..z..label$| 00003380 28 6f 66 66 73 65 74 25 29 3c 3e 22 22 8c f1 22 |(offset%)<>"".."| 00003390 2e 22 3b 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 |.";label$(offset| 000033a0 25 29 3b 0d 17 84 12 49 25 3d a7 69 6e 73 74 24 |%);....I%=.inst$| 000033b0 2c 22 2c 22 29 0d 17 8e 21 f1 8a 32 30 29 c0 69 |,",")...!..20).i| 000033c0 6e 73 74 24 2c 49 25 29 2b 6c 61 62 65 6c 24 28 |nst$,I%)+label$(| 000033d0 64 65 73 74 25 29 0d 17 98 0e 6f 66 66 73 65 74 |dest%)....offset| 000033e0 25 2b 3d 34 0d 17 a2 05 e1 0d 17 ac 04 0d 17 b6 |%+=4............| 000033f0 0e dd f2 64 69 73 6f 74 68 65 72 0d 17 c0 2e e7 |...disother.....| 00003400 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3c |label$(offset%)<| 00003410 3e 22 22 8c f1 22 2e 22 3b 6c 61 62 65 6c 24 28 |>""..".";label$(| 00003420 6f 66 66 73 65 74 25 29 3b 0d 17 ca 0e f1 8a 32 |offset%);......2| 00003430 30 29 69 6e 73 74 24 0d 17 d4 0e 6f 66 66 73 65 |0)inst$....offse| 00003440 74 25 2b 3d 34 0d 17 de 05 e1 0d 17 e8 04 0d 17 |t%+=4...........| 00003450 f2 15 dd f2 64 69 73 70 61 64 64 65 64 73 74 72 |....dispaddedstr| 00003460 69 6e 67 0d 17 fc 09 ea 65 6e 64 25 0d 18 06 0d |ing.....end%....| 00003470 73 74 72 6c 65 6e 25 3d 30 0d 18 10 2e e7 6c 61 |strlen%=0.....la| 00003480 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3c 3e 22 |bel$(offset%)<>"| 00003490 22 8c f1 22 2e 22 3b 6c 61 62 65 6c 24 28 6f 66 |"..".";label$(of| 000034a0 66 73 65 74 25 29 3b 0d 18 1a 0a 65 6e 64 25 3d |fset%);....end%=| 000034b0 a3 0d 18 24 05 f5 0d 18 2e 1c 20 20 63 68 61 72 |...$...... char| 000034c0 24 3d bd 28 62 61 73 65 25 3f 6f 66 66 73 65 74 |$=.(base%?offset| 000034d0 25 29 0d 18 38 1c 20 20 73 74 72 62 75 66 25 3f |%)..8. strbuf%?| 000034e0 73 74 72 6c 65 6e 25 3d 97 63 68 61 72 24 0d 18 |strlen%=.char$..| 000034f0 42 10 20 20 73 74 72 6c 65 6e 25 2b 3d 31 0d 18 |B. strlen%+=1..| 00003500 4c 10 20 20 6f 66 66 73 65 74 25 2b 3d 31 0d 18 |L. offset%+=1..| 00003510 56 16 20 20 e7 6f 66 66 73 65 74 25 3e 62 79 74 |V. .offset%>byt| 00003520 65 73 25 8c 0d 18 60 0e 20 20 20 20 65 6e 64 25 |es%...`. end%| 00003530 3d b9 0d 18 6a 07 20 20 cc 0d 18 74 37 20 20 20 |=...j. ...t7 | 00003540 20 e7 74 79 70 65 25 28 6f 66 66 73 65 74 25 29 | .type%(offset%)| 00003550 3c 3e 2d 33 20 84 6c 61 62 65 6c 24 28 6f 66 66 |<>-3 .label$(off| 00003560 73 65 74 25 29 3c 3e 22 22 8c 65 6e 64 25 3d b9 |set%)<>"".end%=.| 00003570 0d 18 7e 07 20 20 cd 0d 18 88 09 fd 65 6e 64 25 |..~. ......end%| 00003580 0d 18 92 19 f2 70 72 69 6e 74 53 74 72 69 6e 67 |.....printString| 00003590 28 73 74 72 6c 65 6e 25 29 0d 18 9c 05 e1 0d 18 |(strlen%).......| 000035a0 a6 04 0d 18 b0 0d dd f2 64 69 73 73 74 72 30 0d |........disstr0.| 000035b0 18 ba 0d 73 74 72 6c 65 6e 25 3d 30 0d 18 c4 2e |...strlen%=0....| 000035c0 e7 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 25 29 |.label$(offset%)| 000035d0 3c 3e 22 22 8c f1 22 2e 22 3b 6c 61 62 65 6c 24 |<>""..".";label$| 000035e0 28 6f 66 66 73 65 74 25 29 3b 0d 18 ce 05 f5 0d |(offset%);......| 000035f0 18 d8 1c 20 20 63 68 61 72 24 3d bd 28 62 61 73 |... char$=.(bas| 00003600 65 25 3f 6f 66 66 73 65 74 25 29 0d 18 e2 1c 20 |e%?offset%).... | 00003610 20 73 74 72 62 75 66 25 3f 73 74 72 6c 65 6e 25 | strbuf%?strlen%| 00003620 3d 97 63 68 61 72 24 0d 18 ec 10 20 20 73 74 72 |=.char$.... str| 00003630 6c 65 6e 25 2b 3d 31 0d 18 f6 10 20 20 6f 66 66 |len%+=1.... off| 00003640 73 65 74 25 2b 3d 31 0d 19 00 11 20 20 e7 63 68 |set%+=1.... .ch| 00003650 61 72 24 3d bd 32 37 8c 0d 19 0a 1e 20 20 20 20 |ar$=.27..... | 00003660 63 68 61 72 24 3d bd 28 62 61 73 65 25 3f 6f 66 |char$=.(base%?of| 00003670 66 73 65 74 25 29 0d 19 14 1e 20 20 20 20 73 74 |fset%).... st| 00003680 72 62 75 66 25 3f 73 74 72 6c 65 6e 25 3d 97 63 |rbuf%?strlen%=.c| 00003690 68 61 72 24 0d 19 1e 12 20 20 20 20 73 74 72 6c |har$.... strl| 000036a0 65 6e 25 2b 3d 31 0d 19 28 12 20 20 20 20 6f 66 |en%+=1..(. of| 000036b0 66 73 65 74 25 2b 3d 31 0d 19 32 1e 20 20 20 20 |fset%+=1..2. | 000036c0 63 68 61 72 24 3d bd 28 62 61 73 65 25 3f 6f 66 |char$=.(base%?of| 000036d0 66 73 65 74 25 29 0d 19 3c 1e 20 20 20 20 73 74 |fset%)..<. st| 000036e0 72 62 75 66 25 3f 73 74 72 6c 65 6e 25 3d 97 63 |rbuf%?strlen%=.c| 000036f0 68 61 72 24 0d 19 46 12 20 20 20 20 73 74 72 6c |har$..F. strl| 00003700 65 6e 25 2b 3d 31 0d 19 50 12 20 20 20 20 6f 66 |en%+=1..P. of| 00003710 66 73 65 74 25 2b 3d 31 0d 19 5a 07 20 20 cd 0d |fset%+=1..Z. ..| 00003720 19 64 22 fd 63 68 61 72 24 3d bd 30 20 84 6c 61 |.d".char$=.0 .la| 00003730 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3c 3e 22 |bel$(offset%)<>"| 00003740 22 0d 19 6e 19 f2 70 72 69 6e 74 53 74 72 69 6e |"..n..printStrin| 00003750 67 28 73 74 72 6c 65 6e 25 29 0d 19 78 05 e1 0d |g(strlen%)..x...| 00003760 19 82 04 0d 19 8c 0e dd f2 64 69 73 73 74 72 43 |.........disstrC| 00003770 52 0d 19 96 09 ea 6c 65 6e 25 0d 19 a0 20 73 74 |R.....len%... st| 00003780 72 69 6e 67 24 3d 24 28 62 61 73 65 25 2b 6f 66 |ring$=$(base%+of| 00003790 66 73 65 74 25 29 2b bd 31 33 0d 19 aa 14 24 73 |fset%)+.13....$s| 000037a0 74 72 62 75 66 25 3d 73 74 72 69 6e 67 24 0d 19 |trbuf%=string$..| 000037b0 b4 14 73 74 72 6c 65 6e 25 3d a9 73 74 72 69 6e |..strlen%=.strin| 000037c0 67 24 0d 19 be 2e e7 6c 61 62 65 6c 24 28 6f 66 |g$.....label$(of| 000037d0 66 73 65 74 25 29 3c 3e 22 22 8c f1 22 2e 22 3b |fset%)<>""..".";| 000037e0 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 25 29 3b |label$(offset%);| 000037f0 0d 19 c8 14 6f 66 66 73 65 74 25 2b 3d 73 74 72 |....offset%+=str| 00003800 6c 65 6e 25 0d 19 d2 19 f2 70 72 69 6e 74 53 74 |len%.....printSt| 00003810 72 69 6e 67 28 73 74 72 6c 65 6e 25 29 0d 19 dc |ring(strlen%)...| 00003820 05 e1 0d 19 e6 04 0d 19 f0 0c dd f2 64 69 73 73 |............diss| 00003830 77 69 0d 19 fa 21 e7 28 69 6e 73 74 25 80 26 30 |wi...!.(inst%.&0| 00003840 46 46 44 46 46 30 30 29 3d 26 30 46 30 30 30 31 |FFDFF00)=&0F0001| 00003850 30 30 8c 0d 1a 04 15 20 20 49 25 3d a7 69 6e 73 |00..... I%=.ins| 00003860 74 24 2c 22 22 22 22 29 0d 1a 0e 0d 20 20 e7 49 |t$,"""").... .I| 00003870 25 3c 3e 30 8c 0d 1a 18 34 20 20 20 20 69 6e 73 |%<>0....4 ins| 00003880 74 24 3d c0 69 6e 73 74 24 2c 49 25 2d 31 29 2b |t$=.inst$,I%-1)+| 00003890 22 41 53 43 22 2b c2 69 6e 73 74 24 2c a9 69 6e |"ASC"+.inst$,.in| 000038a0 73 74 24 2d 49 25 2b 31 29 0d 1a 22 07 20 20 cd |st$-I%+1)..". .| 000038b0 0d 1a 2c 05 cc 0d 1a 36 18 20 20 e7 c2 69 6e 73 |..,....6. ..ins| 000038c0 74 24 2c 34 29 3d 22 55 73 65 72 22 8c 0d 1a 40 |t$,4)="User"...@| 000038d0 1c 20 20 20 20 6e 75 6d 25 3d 69 6e 73 74 25 80 |. num%=inst%.| 000038e0 26 30 30 46 46 46 46 46 46 0d 1a 4a 22 20 20 20 |&00FFFFFF..J" | 000038f0 20 69 6e 73 74 24 3d c0 69 6e 73 74 24 2c 38 29 | inst$=.inst$,8)| 00003900 2b 22 26 22 2b c3 7e 6e 75 6d 25 0d 1a 54 07 20 |+"&"+.~num%..T. | 00003910 20 cc 0d 1a 5e 30 20 20 20 20 69 6e 73 74 24 3d | ...^0 inst$=| 00003920 c0 69 6e 73 74 24 2c 38 29 2b 22 22 22 22 2b c2 |.inst$,8)+""""+.| 00003930 69 6e 73 74 24 2c 6c 65 6e 25 2d 38 29 2b 22 22 |inst$,len%-8)+""| 00003940 22 22 0d 1a 68 07 20 20 cd 0d 1a 72 05 cd 0d 1a |""..h. ...r....| 00003950 7c 2e e7 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 ||..label$(offset| 00003960 25 29 3c 3e 22 22 8c f1 22 2e 22 3b 6c 61 62 65 |%)<>""..".";labe| 00003970 6c 24 28 6f 66 66 73 65 74 25 29 3b 0d 1a 86 0e |l$(offset%);....| 00003980 f1 8a 32 30 29 69 6e 73 74 24 0d 1a 90 15 6e 75 |..20)inst$....nu| 00003990 6d 25 3d 69 6e 73 74 25 80 73 6d 61 73 6b 25 0d |m%=inst%.smask%.| 000039a0 1a 9a 0e 6f 66 66 73 65 74 25 2b 3d 34 0d 1a a4 |...offset%+=4...| 000039b0 0b c8 8e 6e 75 6d 25 ca 0d 1a ae 1b 20 20 c9 31 |...num%..... .1| 000039c0 3a f2 64 69 73 73 74 72 30 3a f2 64 69 73 61 6c |:.disstr0:.disal| 000039d0 69 67 6e 0d 1a b8 05 cb 0d 1a c2 05 e1 0d 1a cc |ign.............| 000039e0 04 0d 1a d6 0d dd f2 64 69 73 77 6f 72 64 0d 1a |.......disword..| 000039f0 e0 30 77 6f 72 64 25 3d 62 61 73 65 25 3f 6f 66 |.0word%=base%?of| 00003a00 66 73 65 74 25 2b 26 31 30 30 2a 28 62 61 73 65 |fset%+&100*(base| 00003a10 25 3f 28 6f 66 66 73 65 74 25 2b 31 29 29 0d 1a |%?(offset%+1))..| 00003a20 ea 2e e7 6c 61 62 65 6c 24 28 6f 66 66 73 65 74 |...label$(offset| 00003a30 25 29 3c 3e 22 22 8c f1 22 2e 22 3b 6c 61 62 65 |%)<>""..".";labe| 00003a40 6c 24 28 6f 66 66 73 65 74 25 29 3b 0d 1a f4 13 |l$(offset%);....| 00003a50 77 6f 72 64 24 3d c3 7e 28 77 6f 72 64 25 29 0d |word$=.~(word%).| 00003a60 1a fe 20 77 6f 72 64 24 3d c4 34 2d a9 28 77 6f |.. word$=.4-.(wo| 00003a70 72 64 24 29 2c 22 30 22 29 2b 77 6f 72 64 24 0d |rd$),"0")+word$.| 00003a80 1b 08 1e f1 8a 32 30 29 22 45 51 55 57 20 20 20 |.....20)"EQUW | 00003a90 20 26 22 3b c3 7e 28 77 6f 72 64 25 29 0d 1b 12 | &";.~(word%)...| 00003aa0 0e 6f 66 66 73 65 74 25 2b 3d 32 0d 1b 1c 05 e1 |.offset%+=2.....| 00003ab0 0d 1b 26 04 0d 1b 30 17 dd f2 64 6f 75 62 6c 65 |..&...0...double| 00003ac0 28 f8 20 6f 66 66 73 65 74 25 29 0d 1b 3a 15 c8 |(. offset%)..:..| 00003ad0 8e 74 79 70 65 25 28 6f 66 66 73 65 74 25 29 ca |.type%(offset%).| 00003ae0 0d 1b 44 09 20 20 c9 30 3a 0d 1b 4e 0c 20 20 c9 |..D. .0:..N. .| 00003af0 33 2c 34 3a e1 0d 1b 58 27 20 20 7f 3a 85 32 35 |3,4:...X' .:.25| 00003b00 35 2c 22 45 78 70 65 63 74 69 6e 67 20 74 79 70 |5,"Expecting typ| 00003b10 65 20 33 2c 20 34 20 6f 72 20 30 22 0d 1b 62 05 |e 3, 4 or 0"..b.| 00003b20 cb 0d 1b 6c 07 ea 49 25 0d 1b 76 19 64 6f 75 62 |...l..I%..v.doub| 00003b30 6c 65 25 3d 62 61 73 65 25 21 6f 66 66 73 65 74 |le%=base%!offset| 00003b40 25 0d 1b 80 0b e3 49 25 3d 30 b8 33 0d 1b 8a 19 |%.....I%=0.3....| 00003b50 20 20 74 79 70 65 25 28 6f 66 66 73 65 74 25 2b | type%(offset%+| 00003b60 49 25 29 3d 34 0d 1b 94 05 ed 0d 1b 9e 0e 6f 66 |I%)=4.........of| 00003b70 66 73 65 74 25 2b 3d 34 0d 1b a8 05 e1 0d 1b b2 |fset%+=4........| 00003b80 04 0d 1b bc 0b dd f2 65 72 72 6f 72 0d 1b c6 0a |.......error....| 00003b90 2a 53 70 6f 6f 6c 0d 1b da 06 fb 37 0d 1b e4 15 |*Spool.....7....| 00003ba0 f1 f6 24 2b 22 20 61 74 20 6c 69 6e 65 20 22 3b |..$+" at line ";| 00003bb0 9e 0d 1c 7a 07 d9 23 30 0d 1c 84 05 e0 0d 1c 8e |...z..#0........| 00003bc0 04 0d 1c 98 0a dd f2 65 78 69 74 0d 1c a2 0d 72 |.......exit....r| 00003bd0 65 74 75 72 6e 25 3d b9 0d 1c ac 0e 6f 66 66 73 |eturn%=.....offs| 00003be0 65 74 25 2b 3d 34 0d 1c b6 05 e1 0d 1c c0 04 0d |et%+=4..........| 00003bf0 1c ca 0e dd f2 65 78 74 65 72 6e 61 6c 0d 1c d4 |.....external...| 00003c00 05 e1 0d 1c de 04 0d 1e 3c 0e dd f2 65 78 74 65 |........<...exte| 00003c10 72 6e 61 6c 0d 1e 46 14 f4 20 44 65 73 6b 74 6f |rnal..F.. Deskto| 00003c20 70 20 6d 6f 64 75 6c 65 0d 1e 50 1d e3 6f 66 66 |p module..P..off| 00003c30 73 65 74 25 3d 26 35 46 43 b8 26 35 46 43 2b 26 |set%=&5FC.&5FC+&| 00003c40 34 38 39 2d 31 0d 1e 5a 16 20 20 74 79 70 65 25 |489-1..Z. type%| 00003c50 28 6f 66 66 73 65 74 25 29 3d 37 0d 1e 64 05 ed |(offset%)=7..d..| 00003c60 0d 1e 6e 1d e3 6f 66 66 73 65 74 25 3d 26 41 41 |..n..offset%=&AA| 00003c70 46 b8 26 41 41 46 2b 26 34 33 46 2d 31 0d 1e 78 |F.&AAF+&43F-1..x| 00003c80 16 20 20 74 79 70 65 25 28 6f 66 66 73 65 74 25 |. type%(offset%| 00003c90 29 3d 37 0d 1e 82 05 ed 0d 1e 8c 1d e3 6f 66 66 |)=7..........off| 00003ca0 73 65 74 25 3d 26 46 31 36 b8 26 46 31 36 2b 26 |set%=&F16.&F16+&| 00003cb0 34 45 31 2d 31 0d 1e 96 16 20 20 74 79 70 65 25 |4E1-1.... type%| 00003cc0 28 6f 66 66 73 65 74 25 29 3d 37 0d 1e a0 05 ed |(offset%)=7.....| 00003cd0 0d 1e aa 1f e3 6f 66 66 73 65 74 25 3d 26 31 34 |.....offset%=&14| 00003ce0 31 46 b8 26 31 34 31 46 2b 26 34 44 39 2d 31 0d |1F.&141F+&4D9-1.| 00003cf0 1e b4 16 20 20 74 79 70 65 25 28 6f 66 66 73 65 |... type%(offse| 00003d00 74 25 29 3d 37 0d 1e be 05 ed 0d 1e c8 1f e3 6f |t%)=7..........o| 00003d10 66 66 73 65 74 25 3d 26 31 39 31 42 b8 26 31 39 |ffset%=&191B.&19| 00003d20 31 42 2b 26 32 37 44 2d 31 0d 1e d2 16 20 20 74 |1B+&27D-1.... t| 00003d30 79 70 65 25 28 6f 66 66 73 65 74 25 29 3d 37 0d |ype%(offset%)=7.| 00003d40 1e dc 05 ed 0d 1e e6 05 e1 0d 1e f0 04 0d 1e fa |................| 00003d50 0c dd f2 68 65 61 64 65 72 0d 1f 04 16 6c 61 62 |...header....lab| 00003d60 65 6c 24 28 30 29 3d 22 48 65 61 64 65 72 22 0d |el$(0)="Header".| 00003d70 1f 0e 0d 6f 66 66 73 65 74 25 3d 30 0d 1f 18 0b |...offset%=0....| 00003d80 e3 49 25 3d 30 b8 33 0d 1f 22 09 20 20 f3 41 24 |.I%=0.3..". .A$| 00003d90 0d 1f 2c 0e 20 20 e7 64 65 62 75 67 25 8c 0d 1f |..,. .debug%...| 00003da0 36 0a 20 20 20 20 fb 36 0d 1f 40 0b 20 20 20 20 |6. .6..@. | 00003db0 f1 41 24 0d 1f 4a 0a 20 20 20 20 fb 37 0d 1f 54 |.A$..J. .7..T| 00003dc0 07 20 20 cd 0d 1f 5e 17 20 20 e7 62 61 73 65 25 |. ...^. .base%| 00003dd0 21 6f 66 66 73 65 74 25 3d 30 8c 0d 1f 68 18 20 |!offset%=0...h. | 00003de0 20 20 20 f2 64 6f 75 62 6c 65 28 6f 66 66 73 65 | .double(offse| 00003df0 74 25 29 0d 1f 72 07 20 20 cc 0d 1f 7c 19 20 20 |t%)..r. ...|. | 00003e00 20 20 f2 61 64 64 72 65 73 73 28 6f 66 66 73 65 | .address(offse| 00003e10 74 25 29 0d 1f 86 1b 20 20 20 20 6c 61 62 65 6c |t%).... label| 00003e20 24 28 61 64 64 72 65 73 73 25 29 3d 41 24 0d 1f |$(address%)=A$..| 00003e30 90 17 20 20 20 20 f2 63 6f 64 65 28 61 64 64 72 |.. .code(addr| 00003e40 65 73 73 25 29 0d 1f 9a 07 20 20 cd 0d 1f a4 05 |ess%).... .....| 00003e50 ed 0d 1f ae 12 f4 20 54 69 74 6c 65 20 73 74 72 |...... Title str| 00003e60 69 6e 67 0d 1f b8 0c e7 64 65 62 75 67 25 8c 0d |ing.....debug%..| 00003e70 1f c2 08 20 20 fb 36 0d 1f cc 14 20 20 f1 22 54 |... .6.... ."T| 00003e80 69 74 6c 65 53 74 72 69 6e 67 22 0d 1f d6 08 20 |itleString".... | 00003e90 20 fb 37 0d 1f e0 05 cd 0d 1f e1 09 20 20 f3 41 | .7......... .A| 00003ea0 24 0d 1f ea 17 20 20 e7 62 61 73 65 25 21 6f 66 |$.... .base%!of| 00003eb0 66 73 65 74 25 3d 30 8c 0d 1f f4 18 20 20 20 20 |fset%=0..... | 00003ec0 f2 64 6f 75 62 6c 65 28 6f 66 66 73 65 74 25 29 |.double(offset%)| 00003ed0 0d 1f fe 07 20 20 cc 0d 20 08 19 20 20 20 20 f2 |.... .. .. .| 00003ee0 61 64 64 72 65 73 73 28 6f 66 66 73 65 74 25 29 |address(offset%)| 00003ef0 0d 20 1c 1b 20 20 20 20 6c 61 62 65 6c 24 28 61 |. .. label$(a| 00003f00 64 64 72 65 73 73 25 29 3d 41 24 0d 20 26 1a 20 |ddress%)=A$. &. | 00003f10 20 20 20 f2 73 74 72 69 6e 67 30 28 61 64 64 72 | .string0(addr| 00003f20 65 73 73 25 29 0d 20 30 07 20 20 cd 0d 20 3a 11 |ess%). 0. .. :.| 00003f30 f4 20 48 65 6c 70 20 73 74 72 69 6e 67 0d 20 44 |. Help string. D| 00003f40 07 f3 41 24 0d 20 4e 0c e7 64 65 62 75 67 25 8c |..A$. N..debug%.| 00003f50 0d 20 58 08 20 20 fb 36 0d 20 62 09 20 20 f1 41 |. X. .6. b. .A| 00003f60 24 0d 20 6c 08 20 20 fb 37 0d 20 76 05 cd 0d 20 |$. l. .7. v... | 00003f70 80 15 e7 62 61 73 65 25 21 6f 66 66 73 65 74 25 |...base%!offset%| 00003f80 3d 30 8c 0d 20 8a 16 20 20 f2 64 6f 75 62 6c 65 |=0.. .. .double| 00003f90 28 6f 66 66 73 65 74 25 29 0d 20 94 05 cc 0d 20 |(offset%). .... | 00003fa0 9e 17 20 20 f2 61 64 64 72 65 73 73 28 6f 66 66 |.. .address(off| 00003fb0 73 65 74 25 29 0d 20 a8 19 20 20 6c 61 62 65 6c |set%). .. label| 00003fc0 24 28 61 64 64 72 65 73 73 25 29 3d 41 24 0d 20 |$(address%)=A$. | 00003fd0 b2 18 20 20 f2 73 74 72 69 6e 67 30 28 61 64 64 |.. .string0(add| 00003fe0 72 65 73 73 25 29 0d 20 bc 05 cd 0d 20 c6 24 f4 |ress%). .... .$.| 00003ff0 20 48 65 6c 70 20 61 6e 64 20 63 6f 6d 6d 61 6e | Help and comman| 00004000 64 20 6b 65 79 77 6f 72 64 20 74 61 62 6c 65 0d |d keyword table.| 00004010 20 d0 07 f3 41 24 0d 20 da 0c e7 64 65 62 75 67 | ...A$. ...debug| 00004020 25 8c 0d 20 e4 08 20 20 fb 36 0d 20 ee 09 20 20 |%.. .. .6. .. | 00004030 f1 41 24 0d 20 f8 08 20 20 fb 37 0d 21 02 05 cd |.A$. .. .7.!...| 00004040 0d 21 0c 15 e7 62 61 73 65 25 21 6f 66 66 73 65 |.!...base%!offse| 00004050 74 25 3d 30 8c 0d 21 16 16 20 20 f2 64 6f 75 62 |t%=0..!.. .doub| 00004060 6c 65 28 6f 66 66 73 65 74 25 29 0d 21 20 05 cc |le(offset%).! ..| 00004070 0d 21 2a 17 20 20 f2 61 64 64 72 65 73 73 28 6f |.!*. .address(o| 00004080 66 66 73 65 74 25 29 0d 21 34 19 20 20 6c 61 62 |ffset%).!4. lab| 00004090 65 6c 24 28 61 64 64 72 65 73 73 25 29 3d 41 24 |el$(address%)=A$| 000040a0 0d 21 3e 18 20 20 f2 6b 77 74 61 62 6c 65 28 61 |.!>. .kwtable(a| 000040b0 64 64 72 65 73 73 25 29 0d 21 48 05 cd 0d 21 52 |ddress%).!H...!R| 000040c0 04 0d 21 5c 18 e7 74 79 70 65 25 28 6f 66 66 73 |..!\..type%(offs| 000040d0 65 74 25 29 3c 3e 30 8c e1 0d 21 66 1b f4 20 53 |et%)<>0...!f.. S| 000040e0 57 49 20 63 68 75 6e 6b 20 62 61 73 65 20 6e 75 |WI chunk base nu| 000040f0 6d 62 65 72 0d 21 70 0c e7 64 65 62 75 67 25 8c |mber.!p..debug%.| 00004100 0d 21 7a 08 20 20 fb 36 0d 21 84 1b 20 20 f1 22 |.!z. .6.!.. ."| 00004110 53 57 49 43 68 75 6e 6b 42 61 73 65 4e 75 6d 62 |SWIChunkBaseNumb| 00004120 65 72 22 0d 21 8e 08 20 20 fb 37 0d 21 98 05 cd |er".!.. .7.!...| 00004130 0d 21 a2 16 e7 62 61 73 65 25 21 6f 66 66 73 65 |.!...base%!offse| 00004140 74 25 3d 30 8c e1 0d 21 ac 2d e7 28 28 62 61 73 |t%=0...!.-.((bas| 00004150 65 25 21 6f 66 66 73 65 74 25 29 80 26 46 46 30 |e%!offset%).&FF0| 00004160 30 30 30 33 46 29 3c 3e 26 30 30 30 30 30 30 30 |0003F)<>&0000000| 00004170 30 8c e1 0d 21 b6 31 e7 28 28 62 61 73 65 25 21 |0...!.1.((base%!| 00004180 28 6f 66 66 73 65 74 25 2b 34 29 29 80 26 46 43 |(offset%+4)).&FC| 00004190 30 30 30 30 30 33 29 3c 3e 26 30 30 30 30 30 30 |000003)<>&000000| 000041a0 30 30 8c e1 0d 21 c0 14 f2 64 6f 75 62 6c 65 28 |00...!...double(| 000041b0 6f 66 66 73 65 74 25 29 0d 21 ca 04 0d 21 d4 18 |offset%).!...!..| 000041c0 f4 20 53 57 49 20 64 65 63 6f 64 69 6e 67 20 74 |. SWI decoding t| 000041d0 61 62 6c 65 0d 21 de 0f 6f 66 66 73 65 74 25 3d |able.!..offset%=| 000041e0 26 32 34 0d 21 e8 1c e7 28 62 61 73 65 25 21 6f |&24.!...(base%!o| 000041f0 66 66 73 65 74 25 3c 62 79 74 65 73 25 29 8c 0d |ffset%<bytes%)..| 00004200 21 f2 0e 20 20 e7 64 65 62 75 67 25 8c 0d 21 fc |!.. .debug%..!.| 00004210 0a 20 20 20 20 fb 36 0d 22 06 1b 20 20 20 20 f1 |. .6.".. .| 00004220 22 53 57 49 44 65 63 6f 64 69 6e 67 54 61 62 6c |"SWIDecodingTabl| 00004230 65 22 0d 22 10 0a 20 20 20 20 fb 37 0d 22 1a 07 |e".".. .7."..| 00004240 20 20 cd 0d 22 24 17 20 20 e7 62 61 73 65 25 21 | .."$. .base%!| 00004250 6f 66 66 73 65 74 25 3d 30 8c 0d 22 2e 18 20 20 |offset%=0..".. | 00004260 20 20 f2 64 6f 75 62 6c 65 28 6f 66 66 73 65 74 | .double(offset| 00004270 25 29 0d 22 38 07 20 20 cc 0d 22 42 19 20 20 20 |%)."8. .."B. | 00004280 20 f2 61 64 64 72 65 73 73 28 6f 66 66 73 65 74 | .address(offset| 00004290 25 29 0d 22 4c 29 20 20 20 20 6c 61 62 65 6c 24 |%)."L) label$| 000042a0 28 61 64 64 72 65 73 73 25 29 3d 22 53 57 49 44 |(address%)="SWID| 000042b0 65 63 6f 64 65 54 61 62 6c 65 22 0d 22 56 1b 20 |ecodeTable"."V. | 000042c0 20 20 20 f2 73 77 69 74 61 62 6c 65 28 61 64 64 | .switable(add| 000042d0 72 65 73 73 25 29 0d 22 60 07 20 20 cd 0d 22 6a |ress%)."`. .."j| 000042e0 05 cd 0d 22 74 04 0d 22 7e 16 f4 20 53 57 49 20 |..."t.."~.. SWI | 000042f0 68 61 6e 64 6c 65 72 20 63 6f 64 65 0d 22 88 0f |handler code."..| 00004300 6f 66 66 73 65 74 25 3d 26 32 30 0d 22 92 0c e7 |offset%=&20."...| 00004310 64 65 62 75 67 25 8c 0d 22 9c 08 20 20 fb 36 0d |debug%..".. .6.| 00004320 22 a6 17 20 20 f1 22 53 57 49 48 61 6e 64 6c 65 |".. ."SWIHandle| 00004330 72 43 6f 64 65 22 0d 22 b0 08 20 20 fb 37 0d 22 |rCode".".. .7."| 00004340 ba 05 cd 0d 22 c4 15 e7 62 61 73 65 25 21 6f 66 |...."...base%!of| 00004350 66 73 65 74 25 3d 30 8c 0d 22 ce 16 20 20 f2 64 |fset%=0..".. .d| 00004360 6f 75 62 6c 65 28 6f 66 66 73 65 74 25 29 0d 22 |ouble(offset%)."| 00004370 d8 05 cc 0d 22 e2 17 20 20 f2 61 64 64 72 65 73 |....".. .addres| 00004380 73 28 6f 66 66 73 65 74 25 29 0d 22 ec 27 20 20 |s(offset%).".' | 00004390 6c 61 62 65 6c 24 28 61 64 64 72 65 73 73 25 29 |label$(address%)| 000043a0 3d 22 53 57 49 48 61 6e 64 6c 65 72 43 6f 64 65 |="SWIHandlerCode| 000043b0 22 0d 22 f6 1b 20 20 f2 73 77 69 68 61 6e 64 6c |".".. .swihandl| 000043c0 65 72 28 61 64 64 72 65 73 73 25 29 0d 23 00 05 |er(address%).#..| 000043d0 cd 0d 23 0a 04 0d 23 14 17 f4 20 53 57 49 20 64 |..#...#... SWI d| 000043e0 65 63 6f 64 69 6e 67 20 63 6f 64 65 0d 23 1e 0f |ecoding code.#..| 000043f0 6f 66 66 73 65 74 25 3d 26 32 38 0d 23 28 0c e7 |offset%=&28.#(..| 00004400 64 65 62 75 67 25 8c 0d 23 32 08 20 20 fb 36 0d |debug%..#2. .6.| 00004410 23 3c 18 20 20 f1 22 53 57 49 44 65 63 6f 64 69 |#<. ."SWIDecodi| 00004420 6e 67 43 6f 64 65 22 0d 23 46 08 20 20 fb 37 0d |ngCode".#F. .7.| 00004430 23 50 05 cd 0d 23 5a 15 e7 62 61 73 65 25 21 6f |#P...#Z..base%!o| 00004440 66 66 73 65 74 25 3d 30 8c 0d 23 64 16 20 20 f2 |ffset%=0..#d. .| 00004450 64 6f 75 62 6c 65 28 6f 66 66 73 65 74 25 29 0d |double(offset%).| 00004460 23 6e 05 cc 0d 23 78 1c 20 20 e7 62 61 73 65 25 |#n...#x. .base%| 00004470 21 6f 66 66 73 65 74 25 3c 62 79 74 65 73 25 8c |!offset%<bytes%.| 00004480 0d 23 82 19 20 20 20 20 f2 61 64 64 72 65 73 73 |.#.. .address| 00004490 28 6f 66 66 73 65 74 25 29 0d 23 8c 28 20 20 20 |(offset%).#.( | 000044a0 20 6c 61 62 65 6c 24 28 61 64 64 72 65 73 73 25 | label$(address%| 000044b0 29 3d 22 53 57 49 44 65 63 6f 64 65 43 6f 64 65 |)="SWIDecodeCode| 000044c0 22 0d 23 96 17 20 20 20 20 f2 63 6f 64 65 28 61 |".#.. .code(a| 000044d0 64 64 72 65 73 73 25 29 0d 23 a0 07 20 20 cd 0d |ddress%).#.. ..| 000044e0 23 aa 05 cd 0d 23 b4 05 e1 0d 23 be 04 0d 23 c8 |#....#....#...#.| 000044f0 0a dd f2 69 6e 69 74 0d 23 d2 0c ee 85 f2 65 72 |...init.#.....er| 00004500 72 6f 72 0d 23 dc 0c d2 3d 26 33 30 30 30 30 0d |ror.#...=&30000.| 00004510 23 e6 13 76 65 72 73 69 6f 6e 24 3d 22 32 2e 30 |#..version$="2.0| 00004520 30 22 0d 23 f0 0c 73 74 61 67 65 25 3d 30 0d 23 |0".#..stage%=0.#| 00004530 fa 33 64 65 62 75 67 25 3d b9 3a f4 20 50 72 69 |.3debug%=.:. Pri| 00004540 6e 74 73 20 64 65 62 75 67 67 69 6e 67 20 69 6e |nts debugging in| 00004550 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 63 79 61 |formation in cya| 00004560 6e 0d 24 04 3d 66 6c 6f 70 25 3d a3 3a f4 20 41 |n.$.=flop%=.:. A| 00004570 63 63 65 70 74 20 66 6c 6f 61 74 69 6e 67 2d 70 |ccept floating-p| 00004580 6f 69 6e 74 20 6f 70 63 6f 64 65 73 20 28 6e 6f |oint opcodes (no| 00004590 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 29 0d 24 |t implemented).$| 000045a0 0e 31 72 65 61 64 73 63 72 69 70 74 25 3d b9 3a |.1readscript%=.:| 000045b0 f4 20 52 65 61 64 20 75 73 65 72 20 72 65 73 70 |. Read user resp| 000045c0 6f 6e 73 65 73 20 66 72 6f 6d 20 66 69 6c 65 0d |onses from file.| 000045d0 24 18 31 77 72 69 74 65 73 63 72 69 70 74 25 3d |$.1writescript%=| 000045e0 b9 3a f4 20 57 72 69 74 65 20 75 73 65 72 20 72 |.:. Write user r| 000045f0 65 73 70 6f 6e 73 65 73 20 74 6f 20 66 69 6c 65 |esponses to file| 00004600 0d 24 22 4b f4 49 46 72 65 61 64 73 63 72 69 70 |.$"K.IFreadscrip| 00004610 74 25 41 4e 44 77 72 69 74 65 73 63 72 69 70 74 |t%ANDwritescript| 00004620 25 54 48 45 4e 45 52 52 4f 52 32 35 35 2c 22 43 |%THENERROR255,"C| 00004630 61 6e 27 74 20 72 65 61 64 20 61 6e 64 20 77 72 |an't read and wr| 00004640 69 74 65 20 73 63 72 69 70 74 22 0d 24 2c 10 62 |ite script".$,.b| 00004650 61 73 65 25 3d 26 31 30 30 30 30 0d 24 36 35 f4 |ase%=&10000.$65.| 00004660 4d 4f 44 45 32 30 3a 52 45 4d 20 49 66 20 79 6f |MODE20:REM If yo| 00004670 75 20 68 61 76 65 20 6e 6f 20 6d 75 6c 74 69 73 |u have no multis| 00004680 79 6e 63 2c 20 74 72 79 20 4d 4f 44 45 20 31 32 |ync, try MODE 12| 00004690 0d 24 40 2e eb 31 32 3a f4 20 49 66 20 79 6f 75 |.$@..12:. If you| 000046a0 20 68 61 76 65 20 61 20 6d 75 6c 74 69 73 79 6e | have a multisyn| 000046b0 63 2c 20 74 72 79 20 4d 4f 44 45 20 32 30 0d 24 |c, try MODE 20.$| 000046c0 4a 19 e8 22 66 69 6c 65 6e 61 6d 65 22 2c 66 69 |J.."filename",fi| 000046d0 6c 65 6e 61 6d 65 24 0d 24 54 3e c8 99 22 4f 53 |lename$.$T>.."OS| 000046e0 5f 46 69 6c 65 22 2c 31 32 2c 66 69 6c 65 6e 61 |_File",12,filena| 000046f0 6d 65 24 2c 62 61 73 65 25 2c 30 2c 22 4f 52 49 |me$,base%,0,"ORI| 00004700 47 49 4e 41 4c 53 2e 22 b8 2c 2c 2c 2c 66 69 6c |GINALS.".,,,,fil| 00004710 65 6c 65 6e 25 0d 24 5e 1e e7 72 65 61 64 73 63 |elen%.$^..readsc| 00004720 72 69 70 74 25 84 77 72 69 74 65 73 63 72 69 70 |ript%.writescrip| 00004730 74 25 8c 0d 24 68 2f 20 20 c8 99 22 4f 53 5f 46 |t%..$h/ .."OS_F| 00004740 69 6c 65 22 2c 31 37 2c 22 53 43 52 49 50 54 53 |ile",17,"SCRIPTS| 00004750 2e 22 2b 66 69 6c 65 6e 61 6d 65 24 b8 74 79 70 |."+filename$.typ| 00004760 65 25 0d 24 72 3b 20 20 e7 74 79 70 65 25 3d 30 |e%.$r; .type%=0| 00004770 8c c8 99 22 4f 53 5f 46 69 6c 65 22 2c 31 31 2c |..."OS_File",11,| 00004780 22 53 43 52 49 50 54 53 2e 22 2b 66 69 6c 65 6e |"SCRIPTS."+filen| 00004790 61 6d 65 24 2c 26 46 46 46 2c 30 2c 30 0d 24 7c |ame$,&FFF,0,0.$|| 000047a0 25 20 20 73 63 72 69 70 74 25 3d ad 28 22 53 43 |% script%=.("SC| 000047b0 52 49 50 54 53 2e 22 2b 66 69 6c 65 6e 61 6d 65 |RIPTS."+filename| 000047c0 24 29 0d 24 86 05 cd 0d 24 90 3e f4 20 46 69 78 |$).$....$.>. Fix| 000047d0 20 66 6f 72 20 50 6f 64 75 6c 65 20 21 26 31 30 | for Podule !&10| 000047e0 37 43 38 3d 26 38 31 34 3a 52 45 4d 20 40 40 40 |7C8=&814:REM @@@| 000047f0 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 |@@@@@@@@@@@@@@@@| 00004800 40 40 40 40 40 0d 24 9a 15 62 79 74 65 73 25 3d |@@@@@.$..bytes%=| 00004810 66 69 6c 65 6c 65 6e 25 2d 31 0d 24 a4 1b 77 6f |filelen%-1.$..wo| 00004820 72 64 73 25 3d 28 28 62 79 74 65 73 25 2b 31 29 |rds%=((bytes%+1)| 00004830 81 34 29 2d 31 0d 24 ae 45 de 6c 61 62 65 6c 24 |.4)-1.$.E.label$| 00004840 28 62 79 74 65 73 25 29 2c 74 79 70 65 25 28 62 |(bytes%),type%(b| 00004850 79 74 65 73 25 2b 31 29 2c 62 75 66 66 65 72 25 |ytes%+1),buffer%| 00004860 26 31 30 30 2c 73 77 69 24 28 36 33 29 2c 73 74 |&100,swi$(63),st| 00004870 72 62 75 66 25 26 31 30 30 30 0d 24 b8 16 62 6d |rbuf%&1000.$..bm| 00004880 61 73 6b 25 3d 28 25 31 31 31 31 29 3c 3c 32 34 |ask%=(%1111)<<24| 00004890 0d 24 c2 12 62 25 3d 28 25 31 30 31 30 29 3c 3c |.$..b%=(%1010)<<| 000048a0 32 34 0d 24 cc 13 62 6c 25 3d 28 25 31 30 31 31 |24.$..bl%=(%1011| 000048b0 29 3c 3c 32 34 0d 24 d6 21 65 6e 64 25 3d 28 25 |)<<24.$.!end%=(%| 000048c0 31 31 31 30 31 30 30 30 30 30 30 31 30 30 30 30 |1110100000010000| 000048d0 31 29 3c 3c 31 35 0d 24 e0 0f 65 6d 61 73 6b 25 |1)<<15.$..emask%| 000048e0 3d 65 6e 64 25 0d 24 ea 14 73 6d 61 73 6b 25 3d |=end%.$..smask%=| 000048f0 26 30 30 30 44 46 46 46 46 0d 24 f4 14 73 77 69 |&000DFFFF.$..swi| 00004900 25 3d 28 25 31 31 31 31 29 3c 3c 32 34 0d 24 fe |%=(%1111)<<24.$.| 00004910 05 e1 0d 25 08 04 0d 25 12 16 dd f2 6b 77 74 61 |...%...%....kwta| 00004920 62 6c 65 28 6f 66 66 73 65 74 25 29 0d 25 1c 17 |ble(offset%).%..| 00004930 ea 6b 65 79 77 6f 72 64 24 2c 68 65 6c 70 63 6f |.keyword$,helpco| 00004940 64 65 25 0d 25 26 05 f5 0d 25 30 11 20 20 68 65 |de%.%&...%0. he| 00004950 6c 70 63 6f 64 65 25 3d a3 0d 25 3a 17 20 20 f2 |lpcode%=..%:. .| 00004960 73 74 72 69 6e 67 30 28 6f 66 66 73 65 74 25 29 |string0(offset%)| 00004970 0d 25 44 16 20 20 6b 65 79 77 6f 72 64 24 3d 73 |.%D. keyword$=s| 00004980 74 72 69 6e 67 24 0d 25 4e 15 20 20 f2 61 6c 69 |tring$.%N. .ali| 00004990 67 6e 28 6f 66 66 73 65 74 25 29 0d 25 58 10 20 |gn(offset%).%X. | 000049a0 20 6f 66 66 73 65 74 25 2b 3d 34 0d 25 62 16 20 | offset%+=4.%b. | 000049b0 20 f2 64 6f 75 62 6c 65 28 6f 66 66 73 65 74 25 | .double(offset%| 000049c0 29 0d 25 6c 3f 20 20 e7 28 64 6f 75 62 6c 65 25 |).%l? .(double%| 000049d0 80 26 34 30 30 30 30 30 30 30 29 3d 26 34 30 30 |.&40000000)=&400| 000049e0 30 30 30 30 30 8c 6b 65 79 77 6f 72 64 24 3d 22 |00000.keyword$="| 000049f0 43 6f 6e 66 69 67 22 2b 6b 65 79 77 6f 72 64 24 |Config"+keyword$| 00004a00 0d 25 76 30 20 20 e7 28 64 6f 75 62 6c 65 25 80 |.%v0 .(double%.| 00004a10 26 32 30 30 30 30 30 30 30 29 3d 26 32 30 30 30 |&20000000)=&2000| 00004a20 30 30 30 30 8c 68 65 6c 70 63 6f 64 65 25 3d b9 |0000.helpcode%=.| 00004a30 0d 25 80 10 20 20 6f 66 66 73 65 74 25 2d 3d 38 |.%.. offset%-=8| 00004a40 0d 25 8a 17 20 20 e7 62 61 73 65 25 21 6f 66 66 |.%.. .base%!off| 00004a50 73 65 74 25 3d 30 8c 0d 25 94 18 20 20 20 20 f2 |set%=0..%.. .| 00004a60 64 6f 75 62 6c 65 28 6f 66 66 73 65 74 25 29 0d |double(offset%).| 00004a70 25 9e 07 20 20 cc 0d 25 a8 2e 20 20 20 20 e7 62 |%.. ..%.. .b| 00004a80 61 73 65 25 21 6f 66 66 73 65 74 25 3e 62 79 74 |ase%!offset%>byt| 00004a90 65 73 25 84 62 61 73 65 25 21 6f 66 66 73 65 74 |es%.base%!offset| 00004aa0 25 3c 30 8c 0d 25 b2 1a 20 20 20 20 20 20 f2 64 |%<0..%.. .d| 00004ab0 6f 75 62 6c 65 28 6f 66 66 73 65 74 25 29 0d 25 |ouble(offset%).%| 00004ac0 bc 09 20 20 20 20 cc 0d 25 c6 1b 20 20 20 20 20 |.. ..%.. | 00004ad0 20 f2 61 64 64 72 65 73 73 28 6f 66 66 73 65 74 | .address(offset| 00004ae0 25 29 0d 25 d0 2a 20 20 20 20 20 20 6c 61 62 65 |%).%.* labe| 00004af0 6c 24 28 61 64 64 72 65 73 73 25 29 3d 6b 65 79 |l$(address%)=key| 00004b00 77 6f 72 64 24 2b 22 43 6f 64 65 22 0d 25 da 19 |word$+"Code".%..| 00004b10 20 20 20 20 20 20 f2 63 6f 64 65 28 61 64 64 72 | .code(addr| 00004b20 65 73 73 25 29 0d 25 e4 09 20 20 20 20 cd 0d 25 |ess%).%.. ..%| 00004b30 ee 07 20 20 cd 0d 25 f8 10 20 20 6f 66 66 73 65 |.. ..%.. offse| 00004b40 74 25 2b 3d 34 0d 26 02 17 20 20 e7 62 61 73 65 |t%+=4.&.. .base| 00004b50 25 21 6f 66 66 73 65 74 25 3d 30 8c 0d 26 0c 18 |%!offset%=0..&..| 00004b60 20 20 20 20 f2 64 6f 75 62 6c 65 28 6f 66 66 73 | .double(offs| 00004b70 65 74 25 29 0d 26 16 07 20 20 cc 0d 26 20 19 20 |et%).&.. ..& . | 00004b80 20 20 20 f2 61 64 64 72 65 73 73 28 6f 66 66 73 | .address(offs| 00004b90 65 74 25 29 0d 26 2a 2a 20 20 20 20 6c 61 62 65 |et%).&** labe| 00004ba0 6c 24 28 61 64 64 72 65 73 73 25 29 3d 6b 65 79 |l$(address%)=key| 00004bb0 77 6f 72 64 24 2b 22 53 79 6e 74 61 78 22 0d 26 |word$+"Syntax".&| 00004bc0 34 1a 20 20 20 20 f2 73 74 72 69 6e 67 41 28 61 |4. .stringA(a| 00004bd0 64 64 72 65 73 73 25 29 0d 26 3e 07 20 20 cd 0d |ddress%).&>. ..| 00004be0 26 48 17 20 20 e7 62 61 73 65 25 21 6f 66 66 73 |&H. .base%!offs| 00004bf0 65 74 25 3d 30 8c 0d 26 52 18 20 20 20 20 f2 64 |et%=0..&R. .d| 00004c00 6f 75 62 6c 65 28 6f 66 66 73 65 74 25 29 0d 26 |ouble(offset%).&| 00004c10 5c 07 20 20 cc 0d 26 66 19 20 20 20 20 f2 61 64 |\. ..&f. .ad| 00004c20 64 72 65 73 73 28 6f 66 66 73 65 74 25 29 0d 26 |dress(offset%).&| 00004c30 70 28 20 20 20 20 6c 61 62 65 6c 24 28 61 64 64 |p( label$(add| 00004c40 72 65 73 73 25 29 3d 6b 65 79 77 6f 72 64 24 2b |ress%)=keyword$+| 00004c50 22 48 65 6c 70 22 0d 26 7a 13 20 20 20 20 e7 68 |"Help".&z. .h| 00004c60 65 6c 70 63 6f 64 65 25 8c 0d 26 84 19 20 20 20 |elpcode%..&.. | 00004c70 20 20 20 f2 63 6f 64 65 28 61 64 64 72 65 73 73 | .code(address| 00004c80 25 29 0d 26 8e 09 20 20 20 20 cc 0d 26 98 1c 20 |%).&.. ..&.. | 00004c90 20 20 20 20 20 f2 73 74 72 69 6e 67 41 28 61 64 | .stringA(ad| 00004ca0 64 72 65 73 73 25 29 0d 26 a2 09 20 20 20 20 cd |dress%).&.. .| 00004cb0 0d 26 ac 07 20 20 cd 0d 26 b6 14 fd 62 61 73 65 |.&.. ..&...base| 00004cc0 25 3f 6f 66 66 73 65 74 25 3d 30 0d 26 c0 12 f2 |%?offset%=0.&...| 00004cd0 62 79 74 65 28 6f 66 66 73 65 74 25 29 0d 26 ca |byte(offset%).&.| 00004ce0 05 e1 0d 26 d4 04 0d 26 de 0f dd f2 6c 6f 61 64 |...&...&....load| 00004cf0 74 79 70 65 73 0d 26 e8 0a ea 46 25 2c 49 25 0d |types.&...F%,I%.| 00004d00 26 f2 11 46 25 3d 8e 28 22 54 79 70 65 73 22 29 |&..F%=.("Types")| 00004d10 0d 26 fc 10 e3 49 25 3d 30 b8 62 79 74 65 73 25 |.&...I%=0.bytes%| 00004d20 0d 27 06 14 20 20 74 79 70 65 25 28 49 25 29 3d |.'.. type%(I%)=| 00004d30 9a 23 46 25 0d 27 10 23 20 20 e7 74 79 70 65 25 |.#F%.'.# .type%| 00004d40 28 49 25 29 3e 31 32 37 8c 74 79 70 65 25 28 49 |(I%)>127.type%(I| 00004d50 25 29 2d 3d 32 35 36 0d 27 1a 05 ed 0d 27 24 08 |%)-=256.'....'$.| 00004d60 d9 23 46 25 0d 27 2e 12 46 25 3d 8e 28 22 4c 61 |.#F%.'..F%=.("La| 00004d70 62 65 6c 73 22 29 0d 27 38 10 e3 49 25 3d 30 b8 |bels").'8..I%=0.| 00004d80 62 79 74 65 73 25 0d 27 42 15 20 20 e8 23 46 25 |bytes%.'B. .#F%| 00004d90 2c 6c 61 62 65 6c 24 28 49 25 29 0d 27 4c 05 ed |,label$(I%).'L..| 00004da0 0d 27 56 08 d9 23 46 25 0d 27 60 05 e1 0d 27 6a |.'V..#F%.'`...'j| 00004db0 04 0d 27 74 0b dd f2 6c 73 65 78 70 0d 27 7e 0a |..'t...lsexp.'~.| 00004dc0 ea 49 25 2c 4a 25 0d 27 88 0b e3 49 25 3d 30 b8 |.I%,J%.'...I%=0.| 00004dd0 33 0d 27 92 19 20 20 74 79 70 65 25 28 6f 66 66 |3.'.. type%(off| 00004de0 73 65 74 25 2b 49 25 29 3d 35 0d 27 9c 05 ed 0d |set%+I%)=5.'....| 00004df0 27 a6 14 49 25 3d a7 69 6e 73 74 24 2c 22 23 22 |'..I%=.inst$,"#"| 00004e00 29 2b 31 0d 27 b0 15 4a 25 3d a7 69 6e 73 74 24 |)+1.'..J%=.inst$| 00004e10 2c 22 5d 22 29 2d 49 25 0d 27 ba 24 64 65 73 74 |,"]")-I%.'.$dest| 00004e20 25 3d a0 28 c1 69 6e 73 74 24 2c 49 25 2c 4a 25 |%=.(.inst$,I%,J%| 00004e30 29 29 2b 6f 66 66 73 65 74 25 2b 38 0d 27 c4 31 |))+offset%+8.'.1| 00004e40 e7 6c 61 62 65 6c 24 28 64 65 73 74 25 29 3d 22 |.label$(dest%)="| 00004e50 22 8c 6c 61 62 65 6c 24 28 64 65 73 74 25 29 3d |".label$(dest%)=| 00004e60 22 78 22 2b c3 7e 28 64 65 73 74 25 29 0d 27 ce |"x"+.~(dest%).'.| 00004e70 14 e7 74 79 70 65 25 28 64 65 73 74 25 29 3d 30 |..type%(dest%)=0| 00004e80 8c 0d 27 d8 0e 20 20 e7 64 65 62 75 67 25 8c 0d |..'.. .debug%..| 00004e90 27 e2 0a 20 20 20 20 fb 36 0d 27 ec 19 20 20 20 |'.. .6.'.. | 00004ea0 20 f1 22 4c 53 65 78 70 22 2c 7e 6f 66 66 73 65 | ."LSexp",~offse| 00004eb0 74 25 0d 27 f6 0a 20 20 20 20 fb 37 0d 28 00 07 |t%.'.. .7.(..| 00004ec0 20 20 cd 0d 28 0a 1f 20 20 f2 77 68 61 74 73 74 | ..(.. .whatst| 00004ed0 68 69 73 28 6f 66 66 73 65 74 25 2c 64 65 73 74 |his(offset%,dest| 00004ee0 25 29 0d 28 14 0e 20 20 c8 8e 74 79 70 65 25 ca |%).(.. ..type%.| 00004ef0 0d 28 1e 1d 20 20 20 20 c9 2d 34 3a f2 73 74 72 |.(.. .-4:.str| 00004f00 69 6e 67 41 28 6f 66 66 73 65 74 25 29 0d 28 28 |ingA(offset%).((| 00004f10 28 20 20 20 20 c9 2d 33 3a f2 70 61 64 64 65 64 |( .-3:.padded| 00004f20 73 74 72 69 6e 67 28 64 65 73 74 25 2c 6e 75 6d |string(dest%,num| 00004f30 62 65 72 25 29 0d 28 32 1c 20 20 20 20 c9 2d 32 |ber%).(2. .-2| 00004f40 3a f2 73 74 72 69 6e 67 43 52 28 64 65 73 74 25 |:.stringCR(dest%| 00004f50 29 0d 28 3c 1b 20 20 20 20 c9 2d 31 3a f2 73 74 |).(<. .-1:.st| 00004f60 72 69 6e 67 30 28 64 65 73 74 25 29 0d 28 46 0c |ring0(dest%).(F.| 00004f70 20 20 20 20 c9 20 30 3a 0d 28 50 18 20 20 20 20 | . 0:.(P. | 00004f80 c9 20 31 3a f2 62 79 74 65 28 64 65 73 74 25 29 |. 1:.byte(dest%)| 00004f90 0d 28 5a 18 20 20 20 20 c9 20 32 3a f2 77 6f 72 |.(Z. . 2:.wor| 00004fa0 64 28 64 65 73 74 25 29 0d 28 64 1a 20 20 20 20 |d(dest%).(d. | 00004fb0 c9 20 34 3a f2 64 6f 75 62 6c 65 28 64 65 73 74 |. 4:.double(dest| 00004fc0 25 29 0d 28 6e 18 20 20 20 20 c9 20 35 3a f2 63 |%).(n. . 5:.c| 00004fd0 6f 64 65 28 64 65 73 74 25 29 0d 28 78 07 20 20 |ode(dest%).(x. | 00004fe0 cb 0d 28 82 05 cd 0d 28 8c 0e 6f 66 66 73 65 74 |..(....(..offset| 00004ff0 25 2b 3d 34 0d 28 96 05 e1 0d 28 a0 04 0d 28 aa |%+=4.(....(...(.| 00005000 22 dd f2 70 61 64 64 65 64 73 74 72 69 6e 67 28 |"..paddedstring(| 00005010 f8 20 6f 66 66 73 65 74 25 2c 6c 65 6e 25 29 0d |. offset%,len%).| 00005020 28 b4 07 ea 49 25 0d 28 be 15 c8 8e 74 79 70 65 |(...I%.(....type| 00005030 25 28 6f 66 66 73 65 74 25 29 ca 0d 28 c8 0a 20 |%(offset%)..(.. | 00005040 20 c9 20 30 3a 0d 28 d2 12 20 20 c9 2d 33 3a f4 | . 0:.(.. .-3:.| 00005050 45 4e 44 50 52 4f 43 0d 28 dc 25 20 20 7f 3a 85 |ENDPROC.(.% .:.| 00005060 32 35 35 2c 22 45 78 70 65 63 74 69 6e 67 20 74 |255,"Expecting t| 00005070 79 70 65 20 2d 33 20 6f 72 20 30 22 0d 28 e6 05 |ype -3 or 0".(..| 00005080 cb 0d 28 f0 0e e3 49 25 3d 31 b8 6c 65 6e 25 0d |..(...I%=1.len%.| 00005090 28 fa 17 20 20 74 79 70 65 25 28 6f 66 66 73 65 |(.. type%(offse| 000050a0 74 25 29 3d 2d 33 0d 29 04 10 20 20 6f 66 66 73 |t%)=-3.).. offs| 000050b0 65 74 25 2b 3d 31 0d 29 0e 05 ed 0d 29 18 05 e1 |et%+=1.)....)...| 000050c0 0d 29 22 04 0d 29 2c 0f dd f2 73 61 76 65 74 79 |.)"..),...savety| 000050d0 70 65 73 0d 29 36 0a ea 46 25 2c 49 25 0d 29 40 |pes.)6..F%,I%.)@| 000050e0 11 46 25 3d ae 28 22 54 79 70 65 73 22 29 0d 29 |.F%=.("Types").)| 000050f0 4a 10 e3 49 25 3d 30 b8 62 79 74 65 73 25 0d 29 |J..I%=0.bytes%.)| 00005100 54 14 20 20 d5 23 46 25 2c 74 79 70 65 25 28 49 |T. .#F%,type%(I| 00005110 25 29 0d 29 5e 05 ed 0d 29 68 08 d9 23 46 25 0d |%).)^...)h..#F%.| 00005120 29 72 12 46 25 3d ae 28 22 4c 61 62 65 6c 73 22 |)r.F%=.("Labels"| 00005130 29 0d 29 7c 10 e3 49 25 3d 30 b8 62 79 74 65 73 |).)|..I%=0.bytes| 00005140 25 0d 29 86 15 20 20 f1 23 46 25 2c 6c 61 62 65 |%.).. .#F%,labe| 00005150 6c 24 28 49 25 29 0d 29 90 05 ed 0d 29 9a 08 d9 |l$(I%).)....)...| 00005160 23 46 25 0d 29 a4 05 e1 0d 29 ae 04 0d 29 b8 18 |#F%.)....)...)..| 00005170 dd f2 73 74 72 69 6e 67 30 28 f8 20 6f 66 66 73 |..string0(. offs| 00005180 65 74 25 29 0d 29 c2 15 c8 8e 74 79 70 65 25 28 |et%).)....type%(| 00005190 6f 66 66 73 65 74 25 29 ca 0d 29 cc 0a 20 20 c9 |offset%)..).. .| 000051a0 20 30 3a 0d 29 d6 12 20 20 c9 2d 31 3a f4 45 4e | 0:.).. .-1:.EN| 000051b0 44 50 52 4f 43 0d 29 e0 25 20 20 7f 3a 85 32 35 |DPROC.).% .:.25| 000051c0 35 2c 22 45 78 70 65 63 74 69 6e 67 20 74 79 70 |5,"Expecting typ| 000051d0 65 20 2d 31 20 6f 72 20 30 22 0d 29 ea 05 cb 0d |e -1 or 0".)....| 000051e0 29 f4 0e 73 74 72 69 6e 67 24 3d 22 22 0d 29 fe |)..string$="".).| 000051f0 16 c8 95 62 61 73 65 25 3f 6f 66 66 73 65 74 25 |...base%?offset%| 00005200 3c 3e 30 0d 2a 08 2d 20 20 e7 a9 73 74 72 69 6e |<>0.*.- ..strin| 00005210 67 24 3c 32 35 35 8c 73 74 72 69 6e 67 24 2b 3d |g$<255.string$+=| 00005220 bd 28 62 61 73 65 25 3f 6f 66 66 73 65 74 25 29 |.(base%?offset%)| 00005230 0d 2a 12 17 20 20 74 79 70 65 25 28 6f 66 66 73 |.*.. type%(offs| 00005240 65 74 25 29 3d 2d 31 0d 2a 1c 10 20 20 6f 66 66 |et%)=-1.*.. off| 00005250 73 65 74 25 2b 3d 31 0d 2a 26 05 ce 0d 2a 30 15 |set%+=1.*&...*0.| 00005260 74 79 70 65 25 28 6f 66 66 73 65 74 25 29 3d 2d |type%(offset%)=-| 00005270 31 0d 2a 3a 0e 6f 66 66 73 65 74 25 2b 3d 31 0d |1.*:.offset%+=1.| 00005280 2a 44 05 e1 0d 2a 4e 04 0d 2a 58 18 dd f2 73 74 |*D...*N..*X...st| 00005290 72 69 6e 67 41 28 f8 20 6f 66 66 73 65 74 25 29 |ringA(. offset%)| 000052a0 0d 2a 62 15 c8 8e 74 79 70 65 25 28 6f 66 66 73 |.*b...type%(offs| 000052b0 65 74 25 29 ca 0d 2a 6c 0a 20 20 c9 20 30 3a 0d |et%)..*l. . 0:.| 000052c0 2a 76 0b 20 20 c9 2d 31 3a e1 0d 2a 80 25 20 20 |*v. .-1:..*.% | 000052d0 7f 3a 85 32 35 35 2c 22 45 78 70 65 63 74 69 6e |.:.255,"Expectin| 000052e0 67 20 74 79 70 65 20 2d 31 20 6f 72 20 30 22 0d |g type -1 or 0".| 000052f0 2a 8a 05 cb 0d 2a 94 16 c8 95 62 61 73 65 25 3f |*....*....base%?| 00005300 6f 66 66 73 65 74 25 3c 3e 30 0d 2a 9e 17 20 20 |offset%<>0.*.. | 00005310 74 79 70 65 25 28 6f 66 66 73 65 74 25 29 3d 2d |type%(offset%)=-| 00005320 31 0d 2a a8 18 20 20 e7 62 61 73 65 25 3f 6f 66 |1.*.. .base%?of| 00005330 66 73 65 74 25 3d 32 37 8c 0d 2a b2 12 20 20 20 |fset%=27..*.. | 00005340 20 6f 66 66 73 65 74 25 2b 3d 31 0d 2a bc 19 20 | offset%+=1.*.. | 00005350 20 20 20 74 79 70 65 25 28 6f 66 66 73 65 74 25 | type%(offset%| 00005360 29 3d 2d 31 0d 2a c6 07 20 20 cd 0d 2a d0 10 20 |)=-1.*.. ..*.. | 00005370 20 6f 66 66 73 65 74 25 2b 3d 31 0d 2a da 05 ce | offset%+=1.*...| 00005380 0d 2a e4 15 74 79 70 65 25 28 6f 66 66 73 65 74 |.*..type%(offset| 00005390 25 29 3d 2d 31 0d 2a ee 0e 6f 66 66 73 65 74 25 |%)=-1.*..offset%| 000053a0 2b 3d 31 0d 2a f8 05 e1 0d 2b 02 04 0d 2b 0c 19 |+=1.*....+...+..| 000053b0 dd f2 73 74 72 69 6e 67 43 52 28 f8 20 6f 66 66 |..stringCR(. off| 000053c0 73 65 74 25 29 0d 2b 16 15 c8 8e 74 79 70 65 25 |set%).+....type%| 000053d0 28 6f 66 66 73 65 74 25 29 ca 0d 2b 20 0a 20 20 |(offset%)..+ . | 000053e0 c9 20 30 3a 0d 2b 2a 12 20 20 c9 2d 32 3a f4 45 |. 0:.+*. .-2:.E| 000053f0 4e 44 50 52 4f 43 0d 2b 34 25 20 20 7f 3a 85 32 |NDPROC.+4% .:.2| 00005400 35 35 2c 22 45 78 70 65 63 74 69 6e 67 20 74 79 |55,"Expecting ty| 00005410 70 65 20 2d 32 20 6f 72 20 30 22 0d 2b 3e 05 cb |pe -2 or 0".+>..| 00005420 0d 2b 48 17 c8 95 62 61 73 65 25 3f 6f 66 66 73 |.+H...base%?offs| 00005430 65 74 25 3c 3e 31 33 0d 2b 52 17 20 20 74 79 70 |et%<>13.+R. typ| 00005440 65 25 28 6f 66 66 73 65 74 25 29 3d 2d 32 0d 2b |e%(offset%)=-2.+| 00005450 5c 10 20 20 6f 66 66 73 65 74 25 2b 3d 31 0d 2b |\. offset%+=1.+| 00005460 66 05 ce 0d 2b 70 15 74 79 70 65 25 28 6f 66 66 |f...+p.type%(off| 00005470 73 65 74 25 29 3d 2d 32 0d 2b 7a 0e 6f 66 66 73 |set%)=-2.+z.offs| 00005480 65 74 25 2b 3d 31 0d 2b 84 05 e1 0d 2b 8e 04 0d |et%+=1.+....+...| 00005490 2b 98 09 dd f2 73 77 69 0d 2b a2 2c 69 6e 73 74 |+....swi.+.,inst| 000054a0 24 3d c0 69 6e 73 74 24 2c 38 29 2b 22 22 22 22 |$=.inst$,8)+""""| 000054b0 2b c2 69 6e 73 74 24 2c 6c 65 6e 25 2d 38 29 2b |+.inst$,len%-8)+| 000054c0 22 22 22 22 0d 2b ac 15 6e 75 6d 25 3d 69 6e 73 |"""".+..num%=ins| 000054d0 74 25 80 73 6d 61 73 6b 25 0d 2b b6 0b c8 8e 6e |t%.smask%.+....n| 000054e0 75 6d 25 ca 0d 2b c0 12 20 20 c9 20 20 31 3a f2 |um%..+.. . 1:.| 000054f0 77 72 69 74 65 53 0d 2b ca 10 20 20 c9 26 31 31 |writeS.+.. .&11| 00005500 3a f2 65 78 69 74 0d 2b d4 12 20 20 7f 3a 6f 66 |:.exit.+.. .:of| 00005510 66 73 65 74 25 2b 3d 34 0d 2b de 05 cb 0d 2b e8 |fset%+=4.+....+.| 00005520 05 e1 0d 2b f2 04 0d 2b fc 0f dd f2 73 77 69 62 |...+...+....swib| 00005530 72 61 6e 63 68 0d 2c 06 2f 64 65 73 74 25 3d 28 |ranch.,./dest%=(| 00005540 28 28 a0 28 c2 69 6e 73 74 24 2c 6c 65 6e 25 2d |((.(.inst$,len%-| 00005550 37 29 29 29 3c 3c 38 29 3e 3e 38 29 2b 6f 66 66 |7)))<<8)>>8)+off| 00005560 73 65 74 25 0d 2c 10 17 e7 73 77 69 24 28 63 6f |set%.,...swi$(co| 00005570 75 6e 74 65 72 25 29 3d 22 22 8c 0d 2c 1a 33 20 |unter%)=""..,.3 | 00005580 20 e7 6c 61 62 65 6c 24 28 64 65 73 74 25 29 3d | .label$(dest%)=| 00005590 22 22 8c 6c 61 62 65 6c 24 28 64 65 73 74 25 29 |"".label$(dest%)| 000055a0 3d 22 78 22 2b c3 7e 28 64 65 73 74 25 29 0d 2c |="x"+.~(dest%).,| 000055b0 24 05 cc 0d 2c 2e 22 20 20 6c 61 62 65 6c 24 28 |$...,." label$(| 000055c0 64 65 73 74 25 29 3d 73 77 69 24 28 63 6f 75 6e |dest%)=swi$(coun| 000055d0 74 65 72 25 29 0d 2c 38 05 cd 0d 2c 42 10 f2 63 |ter%).,8...,B..c| 000055e0 6f 64 65 28 64 65 73 74 25 29 0d 2c 4c 0e 6f 66 |ode(dest%).,L.of| 000055f0 66 73 65 74 25 2b 3d 34 0d 2c 56 05 e1 0d 2c 60 |fset%+=4.,V...,`| 00005600 04 0d 2c 6a 14 dd f2 73 77 69 62 72 61 6e 63 68 |..,j...swibranch| 00005610 74 61 62 6c 65 0d 2c 74 0c e7 64 65 62 75 67 25 |table.,t..debug%| 00005620 8c 0d 2c 7e 08 20 20 fb 36 0d 2c 88 20 20 20 f1 |..,~. .6.,. .| 00005630 22 47 6f 74 20 74 6f 20 53 57 49 20 62 72 61 6e |"Got to SWI bran| 00005640 63 68 20 74 61 62 6c 65 22 0d 2c 92 08 20 20 fb |ch table".,.. .| 00005650 37 0d 2c 9c 05 cd 0d 2c a6 0e 6f 66 66 73 65 74 |7.,....,..offset| 00005660 25 2b 3d 34 0d 2c b0 15 ea 49 25 2c 65 6e 64 25 |%+=4.,...I%,end%| 00005670 2c 63 6f 75 6e 74 65 72 25 0d 2c ba 0a 65 6e 64 |,counter%.,..end| 00005680 25 3d a3 0d 2c c4 05 f5 0d 2c ce 18 20 20 e7 74 |%=..,....,.. .t| 00005690 79 70 65 25 28 6f 66 66 73 65 74 25 29 3d 30 8c |ype%(offset%)=0.| 000056a0 0d 2c d8 1b 20 20 20 20 69 6e 73 74 25 3d 62 61 |.,.. inst%=ba| 000056b0 73 65 25 21 6f 66 66 73 65 74 25 0d 2c e2 0f 20 |se%!offset%.,.. | 000056c0 20 20 20 e3 49 25 3d 30 b8 33 0d 2c ec 1d 20 20 | .I%=0.3.,.. | 000056d0 20 20 20 20 74 79 70 65 25 28 6f 66 66 73 65 74 | type%(offset| 000056e0 25 2b 49 25 29 3d 35 0d 2c f6 09 20 20 20 20 ed |%+I%)=5.,.. .| 000056f0 0d 2d 00 22 20 20 20 20 69 6e 73 74 24 3d a4 65 |.-." inst$=.e| 00005700 78 74 72 61 63 74 28 69 6e 73 74 25 2c 6c 65 6e |xtract(inst%,len| 00005710 25 29 0d 2d 0a 10 20 20 20 20 e7 64 65 62 75 67 |%).-.. .debug| 00005720 25 8c 0d 2d 14 0c 20 20 20 20 20 20 fb 36 0d 2d |%..-.. .6.-| 00005730 1e 20 20 20 20 20 20 20 f1 63 6f 75 6e 74 65 72 |. .counter| 00005740 25 2c a4 69 6e 73 74 28 69 6e 73 74 25 29 0d 2d |%,.inst(inst%).-| 00005750 28 0c 20 20 20 20 20 20 fb 37 0d 2d 32 09 20 20 |(. .7.-2. | 00005760 20 20 cd 0d 2d 3c 17 20 20 20 20 c8 8e a4 69 6e | ..-<. ...in| 00005770 73 74 28 69 6e 73 74 25 29 ca 0d 2d 46 17 20 20 |st(inst%)..-F. | 00005780 20 20 20 20 c9 31 3a f2 73 77 69 62 72 61 6e 63 | .1:.swibranc| 00005790 68 0d 2d 50 18 20 20 20 20 20 20 7f 3a e7 63 6f |h.-P. .:.co| 000057a0 75 6e 74 65 72 25 3d 30 8c 0d 2d 5a 24 20 20 20 |unter%=0..-Z$ | 000057b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 | .| 000057c0 63 6f 64 65 28 6f 66 66 73 65 74 25 29 0d 2d 64 |code(offset%).-d| 000057d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000057e0 20 20 20 6f 66 66 73 65 74 25 2b 3d 34 0d 2d 6e | offset%+=4.-n| 000057f0 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00005800 20 cc 0d 2d 78 2b 20 20 20 20 20 20 20 20 20 20 | ..-x+ | 00005810 20 20 20 20 20 20 20 20 65 6e 64 25 3d b9 3a f4 | end%=.:.| 00005820 20 45 6e 64 20 6f 66 20 74 61 62 6c 65 0d 2d 82 | End of table.-.| 00005830 15 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00005840 20 cd 0d 2d 8c 09 20 20 20 20 cb 0d 2d 96 13 20 | ..-.. ..-.. | 00005850 20 20 20 63 6f 75 6e 74 65 72 25 2b 3d 31 0d 2d | counter%+=1.-| 00005860 a0 07 20 20 cc 0d 2d aa 0e 20 20 20 20 65 6e 64 |.. ..-.. end| 00005870 25 3d b9 0d 2d b4 07 20 20 cd 0d 2d be 09 fd 65 |%=..-.. ..-...e| 00005880 6e 64 25 0d 2d c8 0c e7 64 65 62 75 67 25 8c 0d |nd%.-...debug%..| 00005890 2d d2 08 20 20 fb 36 0d 2d dc 35 20 20 f1 22 4c |-.. .6.-.5 ."L| 000058a0 65 66 74 20 53 57 49 20 62 72 61 6e 63 68 20 74 |eft SWI branch t| 000058b0 61 62 6c 65 20 77 69 74 68 20 63 6f 75 6e 74 65 |able with counte| 000058c0 72 3d 22 3b 63 6f 75 6e 74 65 72 25 0d 2d e6 08 |r=";counter%.-..| 000058d0 20 20 fb 37 0d 2d f0 05 cd 0d 2d fa 05 e1 0d 2e | .7.-....-.....| 000058e0 04 04 0d 2e 0e 19 dd f2 73 77 69 68 61 6e 64 6c |........swihandl| 000058f0 65 72 28 6f 66 66 73 65 74 25 29 0d 2e 18 15 c8 |er(offset%).....| 00005900 8e 74 79 70 65 25 28 6f 66 66 73 65 74 25 29 ca |.type%(offset%).| 00005910 0d 2e 22 09 20 20 c9 30 3a 0d 2e 2c 0a 20 20 c9 |..". .0:..,. .| 00005920 35 3a e1 0d 2e 36 24 20 20 7f 3a 85 32 35 35 2c |5:...6$ .:.255,| 00005930 22 45 78 70 65 63 74 69 6e 67 20 74 79 70 65 20 |"Expecting type | 00005940 35 20 6f 72 20 30 22 0d 2e 40 05 cb 0d 2e 4a 07 |5 or 0"..@....J.| 00005950 ea 49 25 0d 2e 54 17 69 6e 73 74 25 3d 62 61 73 |.I%..T.inst%=bas| 00005960 65 25 21 6f 66 66 73 65 74 25 0d 2e 5e 0b e3 49 |e%!offset%..^..I| 00005970 25 3d 30 b8 33 0d 2e 68 19 20 20 74 79 70 65 25 |%=0.3..h. type%| 00005980 28 6f 66 66 73 65 74 25 2b 49 25 29 3d 35 0d 2e |(offset%+I%)=5..| 00005990 72 05 ed 0d 2e 7c 1e 69 6e 73 74 24 3d a4 65 78 |r....|.inst$=.ex| 000059a0 74 72 61 63 74 28 69 6e 73 74 25 2c 6c 65 6e 25 |tract(inst%,len%| 000059b0 29 0d 2e 86 13 c8 8e a4 69 6e 73 74 28 69 6e 73 |).......inst(ins| 000059c0 74 25 29 ca 0d 2e 90 13 20 20 c9 20 31 3a f2 62 |t%)..... . 1:.b| 000059d0 72 61 6e 63 68 3a e1 0d 2e 9a 50 20 20 f4 57 48 |ranch:....P .WH| 000059e0 45 4e 20 32 3a 49 46 46 4e 69 6e 73 74 28 62 61 |EN 2:IFFNinst(ba| 000059f0 73 65 25 21 28 6f 66 66 73 65 74 25 2b 34 29 29 |se%!(offset%+4))| 00005a00 3d 32 54 48 45 4e 50 52 4f 43 73 77 69 62 72 61 |=2THENPROCswibra| 00005a10 6e 63 68 74 61 62 6c 65 20 45 4c 53 45 50 52 4f |nchtable ELSEPRO| 00005a20 43 62 72 61 6e 63 68 0d 2e a4 11 20 20 c9 20 32 |Cbranch.... . 2| 00005a30 3a f2 62 72 61 6e 63 68 0d 2e ae 15 20 20 c9 20 |:.branch.... . | 00005a40 33 3a f2 62 72 61 6e 63 68 6c 69 6e 6b 0d 2e b8 |3:.branchlink...| 00005a50 0b 20 20 c9 20 34 3a e1 0d 2e c2 0e 20 20 c9 20 |. . 4:..... . | 00005a60 35 3a f2 73 77 69 0d 2e cc 0b 20 20 c9 20 36 3a |5:.swi.... . 6:| 00005a70 e1 0d 2e d6 19 20 20 c9 20 37 3a f2 73 77 69 62 |..... . 7:.swib| 00005a80 72 61 6e 63 68 74 61 62 6c 65 0d 2e e0 11 20 20 |ranchtable.... | 00005a90 c9 20 38 3a f2 61 64 72 61 64 64 0d 2e ea 11 20 |. 8:.adradd.... | 00005aa0 20 c9 20 39 3a f2 61 64 72 73 75 62 0d 2e f4 0b | . 9:.adrsub....| 00005ab0 20 20 c9 31 30 3a e1 0d 2e fe 10 20 20 c9 31 31 | .10:..... .11| 00005ac0 3a f2 6c 73 65 78 70 0d 2f 08 12 20 20 c9 31 32 |:.lsexp./.. .12| 00005ad0 3a f2 63 6f 70 72 6f 3a e1 0d 2f 12 12 20 20 c9 |:.copro:../.. .| 00005ae0 31 33 3a f2 75 6e 64 65 66 3a e1 0d 2f 1c 0b 20 |13:.undef:../.. | 00005af0 20 c9 31 34 3a e1 0d 2f 26 12 20 20 7f 3a 6f 66 | .14:../&. .:of| 00005b00 66 73 65 74 25 2b 3d 34 0d 2f 30 05 cb 0d 2f 3a |fset%+=4./0.../:| 00005b10 15 e7 6f 66 66 73 65 74 25 3e 62 79 74 65 73 25 |..offset%>bytes%| 00005b20 8c e1 0d 2f 44 1a e7 74 79 70 65 25 28 6f 66 66 |.../D..type%(off| 00005b30 73 65 74 25 29 3d 30 8c 8d 44 54 6e 0d 2f 4e 05 |set%)=0..DTn./N.| 00005b40 e1 0d 2f 58 04 0d 2f 62 19 dd f2 73 77 69 74 61 |../X../b...swita| 00005b50 62 6c 65 28 f8 20 6f 66 66 73 65 74 25 29 0d 2f |ble(. offset%)./| 00005b60 6c 0f ea 49 25 2c 70 72 65 66 69 78 24 0d 2f 76 |l..I%,prefix$./v| 00005b70 15 f2 73 74 72 69 6e 67 30 28 6f 66 66 73 65 74 |..string0(offset| 00005b80 25 29 0d 2f 80 17 70 72 65 66 69 78 24 3d 73 74 |%)./..prefix$=st| 00005b90 72 69 6e 67 24 2b 22 5f 22 0d 2f 8a 1d 73 77 69 |ring$+"_"./..swi| 00005ba0 24 28 49 25 29 3d 70 72 65 66 69 78 24 2b 22 42 |$(I%)=prefix$+"B| 00005bb0 61 64 53 57 49 22 0d 2f 94 09 49 25 2b 3d 31 0d |adSWI"./..I%+=1.| 00005bc0 2f 9e 16 c8 95 62 61 73 65 25 3f 6f 66 66 73 65 |/....base%?offse| 00005bd0 74 25 3c 3e 30 0d 2f a8 17 20 20 f2 73 74 72 69 |t%<>0./.. .stri| 00005be0 6e 67 30 28 6f 66 66 73 65 74 25 29 0d 2f b2 1e |ng0(offset%)./..| 00005bf0 20 20 73 77 69 24 28 49 25 29 3d 70 72 65 66 69 | swi$(I%)=prefi| 00005c00 78 24 2b 73 74 72 69 6e 67 24 0d 2f bc 0b 20 20 |x$+string$./.. | 00005c10 49 25 2b 3d 31 0d 2f c6 05 ce 0d 2f d0 12 f2 62 |I%+=1./..../...b| 00005c20 79 74 65 28 6f 66 66 73 65 74 25 29 0d 2f da 05 |yte(offset%)./..| 00005c30 e1 0d 2f e4 04 0d 2f ee 0b dd f2 75 6e 64 65 66 |../.../....undef| 00005c40 0d 2f f8 07 ea 49 25 0d 30 02 06 ef 37 0d 30 0c |./...I%.0...7.0.| 00005c50 36 f1 22 41 74 74 65 6d 70 74 69 6e 67 20 74 6f |6."Attempting to| 00005c60 20 64 69 73 61 73 73 65 6d 62 6c 65 20 75 6e 64 | disassemble und| 00005c70 65 66 69 6e 65 64 20 69 6e 73 74 72 75 63 74 69 |efined instructi| 00005c80 6f 6e 22 0d 30 16 23 ff 28 22 4d 65 6d 6f 72 79 |on".0.#.("Memory| 00005c90 49 20 22 2b c3 7e 28 6f 66 66 73 65 74 25 2b 62 |I "+.~(offset%+b| 00005ca0 61 73 65 25 29 29 0d 30 20 11 e7 72 65 61 64 73 |ase%)).0 ..reads| 00005cb0 63 72 69 70 74 25 8c 0d 30 2a 22 20 20 f1 22 43 |cript%..0*" ."C| 00005cc0 6f 6e 74 69 6e 75 69 6e 67 20 69 6e 20 61 20 6d |ontinuing in a m| 00005cd0 6f 6d 65 6e 74 2e 2e 2e 22 0d 30 34 14 20 20 e3 |oment...".04. .| 00005ce0 49 25 3d 31 b8 31 30 30 30 30 30 3a ed 0d 30 3e |I%=1.100000:..0>| 00005cf0 05 cc 0d 30 48 23 20 20 f1 22 50 72 65 73 73 20 |...0H# ."Press | 00005d00 61 6e 79 20 6b 65 79 20 74 6f 20 63 6f 6e 74 69 |any key to conti| 00005d10 6e 75 65 22 27 0d 30 52 0a 20 20 47 25 3d a5 0d |nue"'.0R. G%=..| 00005d20 30 5c 05 cd 0d 30 66 0b e3 49 25 3d 30 b8 33 0d |0\...0f..I%=0.3.| 00005d30 30 70 19 20 20 74 79 70 65 25 28 6f 66 66 73 65 |0p. type%(offse| 00005d40 74 25 2b 49 25 29 3d 30 0d 30 7a 05 ed 0d 30 84 |t%+I%)=0.0z...0.| 00005d50 05 e1 0d 30 8e 04 0d 30 98 1e dd f2 77 68 61 74 |...0...0....what| 00005d60 73 74 68 69 73 28 6f 66 66 73 65 74 25 2c 64 65 |sthis(offset%,de| 00005d70 73 74 25 29 0d 30 a2 0e ea 63 6f 75 6e 74 25 2c |st%).0...count%,| 00005d80 49 25 0d 30 ac 0c 63 6f 75 6e 74 25 3d 31 0d 30 |I%.0..count%=1.0| 00005d90 b6 3d c8 95 74 79 70 65 25 28 64 65 73 74 25 2b |.=..type%(dest%+| 00005da0 63 6f 75 6e 74 25 29 3d 30 80 28 64 65 73 74 25 |count%)=0.(dest%| 00005db0 2b 63 6f 75 6e 74 25 29 3c 3d 62 79 74 65 73 25 |+count%)<=bytes%| 00005dc0 80 63 6f 75 6e 74 25 3c 3d 36 38 0d 30 c0 0f 20 |.count%<=68.0.. | 00005dd0 20 63 6f 75 6e 74 25 2b 3d 31 0d 30 ca 05 ce 0d | count%+=1.0....| 00005de0 30 d4 06 fb 33 0d 30 de 28 ff 22 4d 65 6d 6f 72 |0...3.0.(."Memor| 00005df0 79 49 20 22 2b c3 7e 28 6f 66 66 73 65 74 25 2b |yI "+.~(offset%+| 00005e00 62 61 73 65 25 29 2b 22 20 2b 31 30 22 0d 30 e8 |base%)+" +10".0.| 00005e10 08 fb 37 3a f1 0d 30 f2 2a ff 22 4d 45 4d 4f 52 |..7:..0.*."MEMOR| 00005e20 59 49 20 22 2b c3 7e 28 64 65 73 74 25 2b 62 61 |YI "+.~(dest%+ba| 00005e30 73 65 25 2d 26 32 30 29 2b 22 20 2b 32 30 22 0d |se%-&20)+" +20".| 00005e40 30 fc 06 fb 31 0d 31 06 25 ff 22 4d 45 4d 4f 52 |0...1.1.%."MEMOR| 00005e50 59 49 20 22 2b c3 7e 28 64 65 73 74 25 2b 62 61 |YI "+.~(dest%+ba| 00005e60 73 65 25 29 2b 22 20 2b 34 22 0d 31 10 06 fb 37 |se%)+" +4".1...7| 00005e70 0d 31 1a 28 ff 22 4d 45 4d 4f 52 59 49 20 22 2b |.1.(."MEMORYI "+| 00005e80 c3 7e 28 64 65 73 74 25 2b 62 61 73 65 25 2b 34 |.~(dest%+base%+4| 00005e90 29 2b 22 20 2b 32 30 22 0d 31 24 0c f1 27 7e 64 |)+" +20".1$..'~d| 00005ea0 65 73 74 25 0d 31 2e 13 f1 22 57 68 61 74 27 73 |est%.1..."What's| 00005eb0 20 74 68 69 73 3f 22 0d 31 38 15 74 79 70 65 25 | this?".18.type%| 00005ec0 3d 30 3a 6e 75 6d 62 65 72 25 3d 31 0d 31 42 23 |=0:number%=1.1B#| 00005ed0 e7 ac a4 72 65 70 6c 61 79 28 64 65 73 74 25 2c |...replay(dest%,| 00005ee0 74 79 70 65 25 2c 6e 75 6d 62 65 72 25 29 8c 0d |type%,number%)..| 00005ef0 31 4c 0c 20 20 e8 74 79 70 65 25 0d 31 56 32 20 |1L. .type%.1V2 | 00005f00 20 e7 74 79 70 65 25 3d 2d 33 8c e8 22 4c 65 6e | .type%=-3.."Len| 00005f10 67 74 68 20 6f 66 20 70 61 64 64 65 64 20 73 74 |gth of padded st| 00005f20 72 69 6e 67 22 2c 6e 75 6d 62 65 72 25 0d 31 60 |ring",number%.1`| 00005f30 2d 20 20 e7 74 79 70 65 25 3c 3e 30 8c f2 63 61 |- .type%<>0..ca| 00005f40 70 74 75 72 65 28 64 65 73 74 25 2c 74 79 70 65 |pture(dest%,type| 00005f50 25 2c 6e 75 6d 62 65 72 25 29 0d 31 6a 05 cd 0d |%,number%).1j...| 00005f60 31 74 05 e1 0d 31 7e 04 0d 31 88 15 dd f2 77 6f |1t...1~..1....wo| 00005f70 72 64 28 f8 20 6f 66 66 73 65 74 25 29 0d 31 92 |rd(. offset%).1.| 00005f80 15 c8 8e 74 79 70 65 25 28 6f 66 66 73 65 74 25 |...type%(offset%| 00005f90 29 ca 0d 31 9c 09 20 20 c9 30 3a 0d 31 a6 0a 20 |)..1.. .0:.1.. | 00005fa0 20 c9 32 3a e1 0d 31 b0 24 20 20 7f 3a 85 32 35 | .2:..1.$ .:.25| 00005fb0 35 2c 22 45 78 70 65 63 74 69 6e 67 20 74 79 70 |5,"Expecting typ| 00005fc0 65 20 32 20 6f 72 20 30 22 0d 31 ba 05 cb 0d 31 |e 2 or 0".1....1| 00005fd0 c4 07 ea 49 25 0d 31 ce 30 77 6f 72 64 25 3d 62 |...I%.1.0word%=b| 00005fe0 61 73 65 25 3f 6f 66 66 73 65 74 25 2b 26 31 30 |ase%?offset%+&10| 00005ff0 30 2a 28 62 61 73 65 25 3f 28 6f 66 66 73 65 74 |0*(base%?(offset| 00006000 25 2b 31 29 29 0d 31 d8 0b e3 49 25 3d 30 b8 31 |%+1)).1...I%=0.1| 00006010 0d 31 e2 19 20 20 74 79 70 65 25 28 6f 66 66 73 |.1.. type%(offs| 00006020 65 74 25 2b 49 25 29 3d 32 0d 31 ec 05 ed 0d 31 |et%+I%)=2.1....1| 00006030 f6 0e 6f 66 66 73 65 74 25 2b 3d 32 0d 32 00 05 |..offset%+=2.2..| 00006040 e1 0d 32 0a 04 0d 32 14 0c dd f2 77 72 69 74 65 |..2...2....write| 00006050 53 0d 32 1e 0e 6f 66 66 73 65 74 25 2b 3d 34 0d |S.2..offset%+=4.| 00006060 32 28 15 f2 73 74 72 69 6e 67 30 28 6f 66 66 73 |2(..string0(offs| 00006070 65 74 25 29 0d 32 32 12 e7 6f 66 66 73 65 74 25 |et%).22..offset%| 00006080 83 34 3c 3e 30 8c 0d 32 3c 15 20 20 f2 61 6c 69 |.4<>0..2<. .ali| 00006090 67 6e 28 6f 66 66 73 65 74 25 29 0d 32 46 05 cd |gn(offset%).2F..| 000060a0 0d 32 50 05 e1 0d 32 5a 04 0d 32 64 1b dd a4 65 |.2P...2Z..2d...e| 000060b0 78 74 72 61 63 74 28 69 6e 73 74 25 2c f8 20 6c |xtract(inst%,. l| 000060c0 65 6e 25 29 0d 32 6e 07 ea 49 25 0d 32 78 32 c8 |en%).2n..I%.2x2.| 000060d0 99 22 44 65 62 75 67 67 65 72 5f 44 69 73 61 73 |."Debugger_Disas| 000060e0 73 65 6d 62 6c 65 22 2c 69 6e 73 74 25 2c 30 b8 |semble",inst%,0.| 000060f0 2c 62 75 66 66 65 72 25 2c 6c 65 6e 25 0d 32 82 |,buffer%,len%.2.| 00006100 0b 6c 65 6e 25 2d 3d 31 0d 32 8c 0c 69 6e 73 74 |.len%-=1.2..inst| 00006110 24 3d 22 22 0d 32 96 05 f5 0d 32 a0 1a 20 20 69 |$="".2....2.. i| 00006120 6e 73 74 24 2b 3d bd 28 62 75 66 66 65 72 25 3f |nst$+=.(buffer%?| 00006130 49 25 29 0d 32 aa 0b 20 20 49 25 2b 3d 31 0d 32 |I%).2.. I%+=1.2| 00006140 b4 11 fd 62 75 66 66 65 72 25 3f 49 25 3d 30 0d |...buffer%?I%=0.| 00006150 32 be 0a 3d 69 6e 73 74 24 0d 32 c8 04 0d 32 d2 |2..=inst$.2...2.| 00006160 0f dd a4 69 6d 6d 28 69 6d 6d 24 29 0d 32 dc 19 |...imm(imm$).2..| 00006170 ea 49 25 2c 69 6d 6d 25 2c 62 69 74 73 25 2c 73 |.I%,imm%,bits%,s| 00006180 68 69 66 74 25 0d 32 e6 11 49 25 3d a7 69 6d 6d |hift%.2..I%=.imm| 00006190 24 2c 22 2c 22 29 0d 32 f0 0a e7 49 25 3d 30 8c |$,",").2...I%=0.| 000061a0 0d 32 fa 12 20 20 69 6d 6d 25 3d a0 28 69 6d 6d |.2.. imm%=.(imm| 000061b0 24 29 0d 33 04 05 cc 0d 33 0e 1a 20 20 62 69 74 |$).3....3.. bit| 000061c0 73 25 3d a0 28 c0 69 6d 6d 24 2c 49 25 2d 31 29 |s%=.(.imm$,I%-1)| 000061d0 29 0d 33 18 21 20 20 73 68 69 66 74 25 3d a0 28 |).3.! shift%=.(| 000061e0 c2 69 6d 6d 24 2c a9 28 69 6d 6d 24 29 2d 49 25 |.imm$,.(imm$)-I%| 000061f0 29 29 0d 33 22 2f 20 20 69 6d 6d 25 3d 28 62 69 |)).3"/ imm%=(bi| 00006200 74 73 25 3c 3c 28 33 32 2d 73 68 69 66 74 25 29 |ts%<<(32-shift%)| 00006210 29 84 28 62 69 74 73 25 3e 3e 73 68 69 66 74 25 |).(bits%>>shift%| 00006220 29 0d 33 2c 05 cd 0d 33 36 09 3d 69 6d 6d 25 0d |).3,...36.=imm%.| 00006230 33 40 04 0d 33 4a 11 dd a4 69 6e 73 74 28 69 6e |3@..3J...inst(in| 00006240 73 74 25 29 0d 33 54 2a e7 28 69 6e 73 74 25 80 |st%).3T*.(inst%.| 00006250 26 46 46 30 30 30 30 30 30 29 3d 26 45 41 30 30 |&FF000000)=&EA00| 00006260 30 30 30 30 8c 3d 20 31 3a f4 20 42 41 4c 0d 33 |0000.= 1:. BAL.3| 00006270 5e 39 e7 28 69 6e 73 74 25 80 26 30 46 30 30 30 |^9.(inst%.&0F000| 00006280 30 30 30 29 3d 26 30 41 30 30 30 30 30 30 8c 3d |000)=&0A000000.=| 00006290 20 32 3a f4 20 63 6f 6e 64 69 74 69 6f 6e 61 6c | 2:. conditional| 000062a0 20 62 72 61 6e 63 68 0d 33 68 29 e7 28 69 6e 73 | branch.3h).(ins| 000062b0 74 25 80 26 30 46 30 30 30 30 30 30 29 3d 26 30 |t%.&0F000000)=&0| 000062c0 42 30 30 30 30 30 30 8c 3d 20 33 3a f4 20 42 4c |B000000.= 3:. BL| 000062d0 0d 33 72 30 e7 28 69 6e 73 74 25 80 26 46 45 31 |.3r0.(inst%.&FE1| 000062e0 30 38 30 30 30 29 3d 26 45 38 31 30 38 30 30 30 |08000)=&E8108000| 000062f0 8c 3d 20 34 3a f4 20 4c 44 4d 20 2c 7b 50 43 7d |.= 4:. LDM ,{PC}| 00006300 0d 33 7c 2a e7 28 69 6e 73 74 25 80 26 30 46 30 |.3|*.(inst%.&0F0| 00006310 30 30 30 30 30 29 3d 26 30 46 30 30 30 30 30 30 |00000)=&0F000000| 00006320 8c 3d 20 35 3a f4 20 53 57 49 0d 33 86 2e e7 28 |.= 5:. SWI.3...(| 00006330 69 6e 73 74 25 80 26 46 44 45 30 46 30 30 30 29 |inst%.&FDE0F000)| 00006340 3d 26 45 31 41 30 46 30 30 30 8c 3d 20 36 3a f4 |=&E1A0F000.= 6:.| 00006350 20 4d 4f 56 20 50 43 2c 0d 33 90 33 e7 28 69 6e | MOV PC,.3.3.(in| 00006360 73 74 25 80 26 30 38 45 46 46 46 46 30 29 3d 26 |st%.&08EFFFF0)=&| 00006370 30 30 38 46 46 31 30 30 8c 3d 20 37 3a f4 20 42 |008FF100.= 7:. B| 00006380 72 61 6e 63 68 20 74 61 62 6c 65 0d 33 9a 2e e7 |ranch table.3...| 00006390 28 69 6e 73 74 25 80 26 30 46 45 46 30 30 30 30 |(inst%.&0FEF0000| 000063a0 29 3d 26 30 32 38 46 30 30 30 30 8c 3d 20 38 3a |)=&028F0000.= 8:| 000063b0 f4 20 41 44 52 20 61 64 64 0d 33 a4 2e e7 28 69 |. ADR add.3...(i| 000063c0 6e 73 74 25 80 26 30 46 45 46 30 30 30 30 29 3d |nst%.&0FEF0000)=| 000063d0 26 30 32 34 46 30 30 30 30 8c 3d 20 39 3a f4 20 |&024F0000.= 9:. | 000063e0 41 44 52 20 73 75 62 0d 33 ae 37 e7 28 69 6e 73 |ADR sub.3.7.(ins| 000063f0 74 25 80 26 46 46 46 46 46 30 30 30 29 3d 26 45 |t%.&FFFFF000)=&E| 00006400 33 39 45 46 30 30 30 8c 3d 31 30 3a f4 20 4f 52 |39EF000.=10:. OR| 00006410 52 53 20 50 43 2c 52 31 34 2c 23 2e 2e 2e 0d 33 |RS PC,R14,#....3| 00006420 b8 38 e7 28 69 6e 73 74 25 80 26 30 46 32 46 30 |.8.(inst%.&0F2F0| 00006430 30 30 30 29 3d 26 30 35 30 46 30 30 30 30 8c 3d |000)=&050F0000.=| 00006440 31 31 3a f4 20 4c 44 52 2f 53 54 52 20 52 6e 2c |11:. LDR/STR Rn,| 00006450 3c 65 78 70 72 3e 0d 33 c2 2d e7 28 69 6e 73 74 |<expr>.3.-.(inst| 00006460 25 80 26 30 46 30 30 30 30 30 30 29 3d 26 30 45 |%.&0F000000)=&0E| 00006470 30 30 30 30 30 30 8c 3d 31 32 3a f4 20 43 6f 2d |000000.=12:. Co-| 00006480 70 72 6f 0d 33 cc 2d e7 28 69 6e 73 74 25 80 26 |pro.3.-.(inst%.&| 00006490 30 45 30 30 30 30 30 30 29 3d 26 30 43 30 30 30 |0E000000)=&0C000| 000064a0 30 30 30 8c 3d 31 32 3a f4 20 43 6f 2d 70 72 6f |000.=12:. Co-pro| 000064b0 0d 33 d6 30 e7 28 69 6e 73 74 25 80 26 30 46 30 |.3.0.(inst%.&0F0| 000064c0 30 30 30 39 30 29 3d 26 30 31 30 30 30 30 39 30 |00090)=&01000090| 000064d0 8c 3d 31 33 3a f4 20 55 6e 64 65 66 69 6e 65 64 |.=13:. Undefined| 000064e0 0d 33 e0 30 e7 28 69 6e 73 74 25 80 26 30 45 30 |.3.0.(inst%.&0E0| 000064f0 30 30 30 31 30 29 3d 26 30 36 30 30 30 30 31 30 |00010)=&06000010| 00006500 8c 3d 31 33 3a f4 20 55 6e 64 65 66 69 6e 65 64 |.=13:. Undefined| 00006510 0d 33 ea 37 e7 28 69 6e 73 74 25 80 26 46 46 46 |.3.7.(inst%.&FFF| 00006520 46 46 30 30 30 29 3d 26 45 33 44 45 46 30 30 30 |FF000)=&E3DEF000| 00006530 8c 3d 31 34 3a f4 20 42 49 43 53 20 50 43 2c 52 |.=14:. BICS PC,R| 00006540 31 34 2c 23 2e 2e 2e 0d 33 f4 06 3d 30 0d 33 fe |14,#....3..=0.3.| 00006550 04 0d 34 08 27 dd a4 72 65 70 6c 61 79 28 74 61 |..4.'..replay(ta| 00006560 72 67 65 74 25 2c f8 20 74 79 70 65 25 2c f8 20 |rget%,. type%,. | 00006570 6e 75 6d 62 65 72 25 29 0d 34 12 14 e7 ac 72 65 |number%).4....re| 00006580 61 64 73 63 72 69 70 74 25 8c 3d a3 0d 34 1c 25 |adscript%.=..4.%| 00006590 ea 65 6e 64 25 2c 73 74 72 69 6e 67 24 2c 6f 66 |.end%,string$,of| 000065a0 66 73 65 74 25 2c 73 75 63 63 65 73 73 25 2c 49 |fset%,success%,I| 000065b0 25 0d 34 26 0f cf 23 73 63 72 69 70 74 25 3d 30 |%.4&..#script%=0| 000065c0 0d 34 30 0a 65 6e 64 25 3d a3 0d 34 3a 05 f5 0d |.40.end%=..4:...| 000065d0 34 44 11 20 20 e7 c5 23 73 63 72 69 70 74 25 8c |4D. ..#script%.| 000065e0 0d 34 4e 12 20 20 20 20 73 75 63 63 65 73 73 25 |.4N. success%| 000065f0 3d a3 0d 34 58 0e 20 20 20 20 65 6e 64 25 3d b9 |=..4X. end%=.| 00006600 0d 34 62 07 20 20 cc 0d 34 6c 19 20 20 20 20 73 |.4b. ..4l. s| 00006610 74 72 69 6e 67 24 3d be 23 73 63 72 69 70 74 25 |tring$=.#script%| 00006620 0d 34 76 1e 20 20 20 20 6f 66 66 73 65 74 25 3d |.4v. offset%=| 00006630 a0 28 22 26 22 2b 73 74 72 69 6e 67 24 29 0d 34 |.("&"+string$).4| 00006640 80 19 20 20 20 20 e7 6f 66 66 73 65 74 25 3d 74 |.. .offset%=t| 00006650 61 72 67 65 74 25 8c 0d 34 8a 14 20 20 20 20 20 |arget%..4.. | 00006660 20 73 75 63 63 65 73 73 25 3d b9 0d 34 94 1a 20 | success%=..4.. | 00006670 20 20 20 20 20 49 25 3d a7 73 74 72 69 6e 67 24 | I%=.string$| 00006680 2c 22 2c 22 29 0d 34 9e 1f 20 20 20 20 20 20 c0 |,",").4.. .| 00006690 73 74 72 69 6e 67 24 2c 49 25 29 3d c4 49 25 2c |string$,I%)=.I%,| 000066a0 22 20 22 29 0d 34 a8 18 20 20 20 20 20 20 74 79 |" ").4.. ty| 000066b0 70 65 25 3d a0 73 74 72 69 6e 67 24 0d 34 b2 1a |pe%=.string$.4..| 000066c0 20 20 20 20 20 20 49 25 3d a7 73 74 72 69 6e 67 | I%=.string| 000066d0 24 2c 22 2c 22 29 0d 34 bc 1f 20 20 20 20 20 20 |$,",").4.. | 000066e0 c0 73 74 72 69 6e 67 24 2c 49 25 29 3d c4 49 25 |.string$,I%)=.I%| 000066f0 2c 22 20 22 29 0d 34 c6 1a 20 20 20 20 20 20 6e |," ").4.. n| 00006700 75 6d 62 65 72 25 3d a0 73 74 72 69 6e 67 24 0d |umber%=.string$.| 00006710 34 d0 10 20 20 20 20 20 20 65 6e 64 25 3d b9 0d |4.. end%=..| 00006720 34 da 09 20 20 20 20 cd 0d 34 e4 07 20 20 cd 0d |4.. ..4.. ..| 00006730 34 ee 09 fd 65 6e 64 25 0d 34 f8 0d 3d 73 75 63 |4...end%.4..=suc| 00006740 63 65 73 73 25 0d 35 02 04 0d 35 0c 0b dd a4 79 |cess%.5...5....y| 00006750 65 73 6e 6f 0d 35 16 08 47 25 3d a5 0d 35 20 1a |esno.5..G%=..5 .| 00006760 e7 47 25 3d 38 39 20 84 47 25 3d 31 32 31 20 8c |.G%=89 .G%=121 .| 00006770 3d b9 20 8b 3d a3 0d 35 2a 04 0d 35 34 90 dc 20 |=. .=..5*..54.. | 00006780 53 74 61 72 74 43 6f 64 65 2c 49 6e 69 74 43 6f |StartCode,InitCo| 00006790 64 65 2c 46 69 6e 61 6c 43 6f 64 65 2c 53 65 72 |de,FinalCode,Ser| 000067a0 43 61 6c 6c 48 61 6e 64 6c 65 72 2c 54 69 74 6c |CallHandler,Titl| 000067b0 65 53 74 72 69 6e 67 2c 48 65 6c 70 53 74 72 69 |eString,HelpStri| 000067c0 6e 67 2c 48 65 6c 70 43 6f 6d 6d 4b 65 79 77 54 |ng,HelpCommKeywT| 000067d0 61 62 2c 53 57 49 43 68 75 6e 6b 42 61 73 65 4e |ab,SWIChunkBaseN| 000067e0 75 6d 2c 53 57 49 48 61 6e 64 6c 65 72 43 6f 64 |um,SWIHandlerCod| 000067f0 65 2c 53 57 49 44 65 63 6f 64 54 61 62 2c 53 57 |e,SWIDecodTab,SW| 00006800 49 44 65 63 6f 64 43 6f 64 65 0d 35 3e 04 0d 35 |IDecodCode.5>..5| 00006810 48 1a dd f2 70 72 69 6e 74 53 74 72 69 6e 67 28 |H...printString(| 00006820 4c 65 6e 67 74 68 25 29 0d 35 52 24 f4 20 50 72 |Length%).5R$. Pr| 00006830 69 6e 74 73 20 61 20 73 74 72 69 6e 67 20 69 6e |ints a string in| 00006840 20 45 51 55 53 20 66 6f 72 6d 61 74 0d 35 5c 0f | EQUS format.5\.| 00006850 ea 49 25 2c 53 74 72 69 6e 67 25 0d 35 66 14 f1 |.I%,String%.5f..| 00006860 8a 32 30 29 22 45 51 55 53 20 20 20 20 22 3b 0d |.20)"EQUS ";.| 00006870 35 70 0d 53 74 72 69 6e 67 25 3d a3 0d 35 7a 0f |5p.String%=..5z.| 00006880 e7 4c 65 6e 67 74 68 25 3e 31 8c 0d 35 84 15 20 |.Length%>1..5.. | 00006890 20 e3 49 25 3d 30 b8 4c 65 6e 67 74 68 25 2d 32 | .I%=0.Length%-2| 000068a0 0d 35 8e 18 20 20 20 20 43 68 61 72 25 3d 73 74 |.5.. Char%=st| 000068b0 72 62 75 66 25 3f 49 25 0d 35 98 26 20 20 20 20 |rbuf%?I%.5.& | 000068c0 f4 43 68 61 72 25 3d 41 53 43 28 4d 49 44 24 28 |.Char%=ASC(MID$(| 000068d0 53 74 72 69 6e 67 24 2c 49 25 2c 31 29 29 0d 35 |String$,I%,1)).5| 000068e0 a2 20 20 20 20 20 e7 28 43 68 61 72 25 3c 33 32 |. .(Char%<32| 000068f0 29 84 28 43 68 61 72 25 3e 31 32 36 29 8c 0d 35 |).(Char%>126)..5| 00006900 ac 13 20 20 20 20 20 20 e7 53 74 72 69 6e 67 25 |.. .String%| 00006910 8c 0d 35 b6 15 20 20 20 20 20 20 20 20 53 74 72 |..5.. Str| 00006920 69 6e 67 25 3d a3 0d 35 c0 24 20 20 20 20 20 20 |ing%=..5.$ | 00006930 20 20 f1 22 22 22 2b 43 48 52 24 22 2b c3 28 43 | ."""+CHR$"+.(C| 00006940 68 61 72 25 29 2b 22 2b 22 3b 0d 35 ca 0b 20 20 |har%)+"+";.5.. | 00006950 20 20 20 20 cc 0d 35 d4 21 20 20 20 20 20 20 20 | ..5.! | 00006960 20 f1 22 43 48 52 24 22 2b c3 28 43 68 61 72 25 | ."CHR$"+.(Char%| 00006970 29 2b 22 2b 22 3b 0d 35 de 0b 20 20 20 20 20 20 |)+"+";.5.. | 00006980 cd 0d 35 e8 09 20 20 20 20 cc 0d 35 f2 13 20 20 |..5.. ..5.. | 00006990 20 20 20 20 e7 53 74 72 69 6e 67 25 8c 0d 35 fc | .String%..5.| 000069a0 16 20 20 20 20 20 20 20 20 f1 bd 28 43 68 61 72 |. ..(Char| 000069b0 25 29 3b 0d 36 06 0b 20 20 20 20 20 20 cc 0d 36 |%);.6.. ..6| 000069c0 10 15 20 20 20 20 20 20 20 20 53 74 72 69 6e 67 |.. String| 000069d0 25 3d b9 0d 36 1a 1b 20 20 20 20 20 20 20 20 f1 |%=..6.. .| 000069e0 22 22 22 22 2b bd 28 43 68 61 72 25 29 3b 0d 36 |""""+.(Char%);.6| 000069f0 24 0b 20 20 20 20 20 20 cd 0d 36 2e 1e 20 20 20 |$. ..6.. | 00006a00 20 20 20 e7 43 68 61 72 25 3d 33 34 8c f1 bd 28 | .Char%=34...(| 00006a10 43 68 61 72 25 29 3b 0d 36 38 09 20 20 20 20 cd |Char%);.68. .| 00006a20 0d 36 42 07 20 20 ed 0d 36 4c 05 cd 0d 36 56 1d |.6B. ..6L...6V.| 00006a30 43 68 61 72 25 3d 73 74 72 62 75 66 25 3f 28 4c |Char%=strbuf%?(L| 00006a40 65 6e 67 74 68 25 2d 31 29 0d 36 60 21 f4 43 68 |ength%-1).6`!.Ch| 00006a50 61 72 25 3d 41 53 43 28 52 49 47 48 54 24 28 53 |ar%=ASC(RIGHT$(S| 00006a60 74 72 69 6e 67 24 2c 31 29 29 0d 36 6a 1c e7 28 |tring$,1)).6j..(| 00006a70 43 68 61 72 25 3c 33 32 29 84 28 43 68 61 72 25 |Char%<32).(Char%| 00006a80 3e 31 32 36 29 8c 0d 36 74 0f 20 20 e7 53 74 72 |>126)..6t. .Str| 00006a90 69 6e 67 25 8c 0d 36 7e 1b 20 20 20 20 f1 22 22 |ing%..6~. .""| 00006aa0 22 2b 43 48 52 24 22 2b c3 28 43 68 61 72 25 29 |"+CHR$"+.(Char%)| 00006ab0 0d 36 88 07 20 20 cc 0d 36 92 18 20 20 20 20 f1 |.6.. ..6.. .| 00006ac0 22 43 48 52 24 22 2b c3 28 43 68 61 72 25 29 0d |"CHR$"+.(Char%).| 00006ad0 36 9c 07 20 20 cd 0d 36 a6 05 cc 0d 36 b0 0f 20 |6.. ..6....6.. | 00006ae0 20 e7 53 74 72 69 6e 67 25 8c 0d 36 ba 16 20 20 | .String%..6.. | 00006af0 20 20 f1 bd 28 43 68 61 72 25 29 2b 22 22 22 22 | ..(Char%)+""""| 00006b00 0d 36 c4 07 20 20 cc 0d 36 ce 1b 20 20 20 20 f1 |.6.. ..6.. .| 00006b10 22 22 22 22 2b bd 28 43 68 61 72 25 29 2b 22 22 |""""+.(Char%)+""| 00006b20 22 22 0d 36 d8 07 20 20 cd 0d 36 e2 05 cd 0d 36 |"".6.. ..6....6| 00006b30 ec 05 e1 0d ff |.....| 00006b35