0 'DISASM.BA - BY PHIL WHEELER 1 'CLUB 100 LIBRARY - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 2 MAXFILES=1:CLEAR500:DIMH$(15),M$(255,1):FORA=0TO15:READH$(A):NEXT:FORA=0TO255:READM$(A,0):M$(A,1)="1":NEXT:FORA=1TO18:READB2:M$(B2,1)="2":NEXT:FORA=1TO26:READB3:M$(B3,1)="3":NEXT:CLS:PRINT:LINEINPUT"Output to: ";FL$:OPENFL$FOROUTPUTAS1 3 INPUT"Start at Decimal Address";S:INPUT"Ending Decimal Address ";E:G=0:FOR AD=S TO E:P=PEEK(AD):DE=P:GOSUB8:HD$=H2$:C=P:GOSUB11:CH$=C$:DE=AD:GOSUB9:AD$=H4$:IFG<1THENPRINT#1,AD$;" ";ELSEG=G-1:GOTO7 4 PRINT#1,M$(P,0);:IFM$(P,1)="2"THENG=1:DE=PEEK(AD+1):GOSUB8:HD$=HD$+H2$:W$=H2$:PRINT#1,W$;:C=DE:GOSUB11:CH$=CH$+C$ 5 IFM$(P,1)="3"THENG=2:DE=PEEK(AD+1):GOSUB8:HD$=HD$+H2$:W$=H2$:C=DE:GOSUB11:CH$=CH$+C$:DE=PEEK(AD+2):GOSUB8:HD$=HD$+H2$:W$=H2$+W$:C=DE:GOSUB11:CH$=CH$+C$:PRINT#1,W$; 6 PRINT#1," ;";HD$;" ";CH$ 7 NEXT AD:END:REM 1 byte to 2 hex digits 8 H2$=H$(DE\16)+H$(DEMOD16):RETURN:REM 2 byte to 4 hex digits 9 IFDE>32767THENH4$=H$(DE/4096):DE=DE-4096*FIX(DE/4096)ELSEH4$=H$(DE\4096):DE=DEMOD4096 10 H4$=H4$+H$(DE\256):DE=DEMOD256:GOSUB8:H4$=H4$+H2$:RETURN:REM ctrl char filter 11 IFC<32THENC$="^"+CHR$(C+64):RETURNELSEIFC>127THENC$=" ":RETURNELSEC$=CHR$(C):RETURN 12 DATA "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F":DATA"NOP ","LXI BC,","STAX BC","INX BC","INR B","DCR B","MVI B,","RLC "," ","DAD BC","LDAX BC","DCX BC","INR C","DCR C","MVI C,","RRC " 13 DATA" ","LXI DE,","STAX DE","INX DE","INR D","DCR D","MVI D,","RAL "," ","DAD DE","LDAX DE","DCX DE","INR E","DCR E","MVI E,","RAR " 14 DATA"RIM ","LXI HL,","SHLD ","INX HL","INR H","DCR H","MVI H,","DAA"," ","DAD HL","LHLD ","DCX HL","INR L","DRC L","MVI L,","CMA " 15 DATA"SIM ","LXI SP,","STA ","INX SP","INR M","DCR M","MVI M,","STC "," ","DAD SP","LDA ","DCX SP","INR A","DCR A","MVI A,","CMC " 16 DATA"MOV B,B","MOV B,C","MOV B,D","MOV B,E","MOV B,H","MOV B,L","MOV B,M","MOV B,A","MOV C,B","MOV C,C","MOV C,D","MOV C,E","MOV C,H","MOV C,L","MOV C,M","MOV C,A" 17 DATA"MOV D,B","MOV D,C","MOV D,D","MOV D,E","MOV D,H","MOV D,L","MOV D,M","MOV D,A","MOV E,B","MOV E,C","MOV E,D","MOV E,E","MOV E,H","MOV E,L","MOV E,M","MOV E,A" 18 DATA"MOV H,B","MOV H,C","MOV H,D","MOV H,E","MOV H,H","MOV H,L","MOV H,M","MOV H,A","MOV L,B","MOV L,C","MOV L,D","MOV L,E","MOV L,H","MOV L,L","MOV L,M","MOV L,A" 19 DATA"MOV M,B","MOV M,C","MOV M,D","MOV M,E","MOV M,H","MOV M,L","HLT","MOV M,A","MOV A,B","MOV A,C","MOV A,D","MOV A,E","MOV A,H","MOV A,L","MOV A,M","MOV A,A" 20 DATA"ADD B","ADD C","ADD D","ADD E","ADD H","ADD L","ADD M","ADD A","ADC B","ADC C","ADC D","ADC E","ADC H","ADC L","ADC M","ADC A" 21 DATA"SUB B","SUB C","SUB D","SUB E","SUB H","SUB L","SUB M","SUB A","SBB B","SBB C","SBB D","SBB E","SBB H","SBB L","SBB M","SBB A" 22 DATA"ANA B","ANA C","ANA D","ANA E","ANA H","ANA L","ANA M","ANA A","XRA B","XRA C","XRA D","XRA E","XRA H","XRA L","XRA M","XRA A" 23 DATA"ORA B","ORA C","ORA D","ORA E","ORA H","ORA L","ORA M","ORA A","CMP B","CMP C","CMP D","CMP E","CMP H","CMP L","CMP M","CMP A" 24 DATA"RNZ ","POP BC","JNZ ","JMP ","CNZ ","PUSH BC","ADI ","RST 0","RZ ","RET ","JZ "," ","CZ ","CALL ","ACI ","RST 1":DATA"RNC ","POP DE","JNC ","OUT ","CNC ","PUSH DE","SUI ","RST 2","RC "," ","JC ","IN ","CC "," ","SBI ","RST 3" 25 DATA"RPO ","POP HL","JPO ","XTHL ","CPO ","PUSH HL","ANI ","RST 4","RPE ","PCHL ","JPE ","XCHG ","CPE "," ","XRI ","RST 5":DATA"RP ","POP AF","JP ","DI ","CP ","PUSH AF","ORI ","RST 6","RM ","SPHL ","JM ","EI ","CM "," ","CPI ","RST 7" 26 DATA 6,14,22,30,38,46,54,62,198,206,211,214,219,222,230,238,246,254:DATA 1,17,33,34,42,49,50,58,194,195,196,202,204,205,210,212,218,220,226,228,234,236,242,244,250,252