home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG001.ARK
/
DISASSM2.ASM
< prev
next >
Wrap
Assembly Source File
|
1984-04-29
|
4KB
|
322 lines
;REF. NO. AB22
;PROGRAM NAME DISASM (8080 DISASSEMBLER)
;
;(FROM INTEL LIBRARY??)
;
;
;
;
ORG 1B00H
CO EQU 3809H
RDBYTE: LHLD PC
MOV A,M
INX H
SHLD PC
RET
RGPRNT: INR A
ANI 07
CPI 06
JC RGP1
ADI 03
RGP1: CPI 05
JC RGP2
ADI 02
RGP2: ADI 41H
MOV C,A
JMP CO
DECODE: MOV B,A
ANI 0F0H
RRC
RRC
RRC
RRC
ADI 90H
DAA
ACI 40H
DAA
MOV C,A
CALL CO
MOV A,B
ANI 0F0H
ADI 90H
DAA
ACI 40H
DAA
MOV C,A
JMP CO
PRINT: MVI B,4
P1: MOV C,M
CALL CO
INX H
DCR B
JNZ P1
MVI C,20H
JMP CO
XTRACT: MOV A,D
ANI 38H
RRC
RRC
RRC
RET
CCPRNT: CALL XTRACT
ADD A
MOV C,A
LXI H,CCODE
DAD B
MOV C,M
CALL CO
INX H
MOV C,M
CALL CO
MVI C,20H
CALL CO
JMP CO
RPPRNT: CALL XTRACT
ANI 06
CPI 06
JNZ RGPRNT
MVI C,53H
CALL CO
MVI C,50H
JMP CO
DISASM: MVI C,0DH
CALL CO
MVI C,0AH
CALL CO
LHLD PC
MOV A,H
CALL DECODE
MOV A,L
CALL DECODE
MVI C,20H
CALL CO
CALL CO
CALL RDBYTE
MOV D,A
LXI H,TABLE
LXI B,11H
D1: CMP M
JZ TG1
INX H
DCR C
JNZ D1
MVI C,0AH
CMP M
D2: CMP M
JZ TG2
INX H
DCR C
JNZ D2
MVI C,6
D3: CMP M
JZ TG3
INX H
DCR C
JNZ D3
ANI 0C0H
CPI 40H
JZ MG0
CPI 80H
JZ MG1
MOV A,D
ANI 0C7H
SUI 04
JZ MG2
DCR A
JZ MG3
DCR A
JZ MG4
MOV A,D
ANI 0C0H
JZ MG5
MOV A,D
ANI 0C7H
SUI 0C0H
JZ MG6
SUI 02
JZ MG7
SUI 02
JZ MG8
SUI 03
JZ MG9
MOV A,D
ANI 07
MOV C,A
LXI H,PPOP-1
DAD B
CALL PRINT
CALL XTRACT
CPI 06
JNZ D6
LXI H,PPSW
CALL PRINT
JMP DISASM
MG9: LXI H,PRST
CALL PRINT
CALL DECODE
JMP DISASM
MG8: MVI C,43H
CALL CO
CALL CCPRNT
JMP D7
MG7: MVI C,4AH
CALL CO
CALL CCPRNT
JMP D7
MG6: MVI C,52H
CALL CO
CALL CCPRNT
JMP DISASM
MG5: LXI H,PLXI
MOV A,D
ANI 0FH
DCR A
JZ MG51
CPI 04
JC D4
SUI 05
D4: ADD A
ADD A
MOV C,A
DAD B
CALL PRINT
CALL RPPRNT
JMP DISASM
MG51: CALL PRINT
CALL RPPRNT
MVI C,2CH
CALL CO
JMP D7
MG4: LXI H,PMVI
CALL PRINT
CALL XTRACT
CARGPRNT
MVI C,2CH
CALL CO
JMP D8
MG3: LXI H,PDCR
JMP D5
MG2: LXI H,PINR
D5: CALL PRINT
CALL XTRACT
D6: CALL RGPRNT
JMP DISASM
MG1: MOV A,D
ANI 38H
RRC
MOV C,A
LXI H,PADD
DAD B
CALL PRINT
JMP D9
MG0: LXI H,PMOV
CALL PRINT
CALL XTRACT
CALL RGPRNT
MVI C,2CH
CALL CO
D9: MOV A,D
ANI 07
CALL RGPRNT
JMP DISASM
TG3: MOV A,C
ADD A
ADD A
MOV C,A
LXI H,TAB3-4
DAD B
CALL PRINT
D7: CALL RDBYTE
MOV D,A
CALL RDBYTE
CALL DECODE
MOV A,D
CALL DECODE
JMP DISASM
TG2: MOV A,C
ADD A
ADD A
MOV C,A
LXI H,TAB2-4
DAD B
CALL PRINT
D8: CALL RDBYTE
CALL DECODE
JMP DISASM
TG1: MOV A,C
ADD A
ADD A
MOV C,A
LXI H,TAB1-4
DAD B
CALL PRINT
JMP DISASM
PC: DS 2
TABLE: DB 000H,007H,00FH,017H
DB 01FH,027H,02FH,037H
DB 03FH,076H,0C9H,0E3H
DB 0E9H,0EBH,0F3H,0F9H
DB 0FBH,0C6H,0CEH,0D3H
DB 0D6H,0DBH,0DEH,0E6H
DB 0EEH,0F6H,0FFH,022H
DB 02AH,032H,03AH,0C3H
DB 0CDH
TAB1: DB 'EI ','SPHL','DI ','XCHG'
DB 'PCHL','XTHL','RET','HLT '
DB 'CMC ','STC ','CMA ','DAA '
DB 'RAR ','RAL ','RRC ','RLC '
DB 'NOP '
TAB2: DB 'CPI ','ORI ','XRI ','ANI '
DB 'SBI ','IN ','SUI ','OUT '
DB 'ACI ','ADI '
TAB3: DB 'CALL','JMP ','LDA ','STA '
DB 'LHLD','SHLD'
PMOV: DB 'MOV '
PADD: DB 'ADD ','ADC ','SUB ','SBB '
DB 'ANA ','XRA ','ORA ','CMP '
PINR: DB 'INR '
PDCR: DB 'DCR '
PMVI: DB 'MVI '
PLXI: DB 'LXI ','STAX','INX ','DAD '
DB 'LDAX','DCX '
PRST: DB 'RST '
PPSW: DB 'PSW '
PPOP: DB 'POP ','PUSH'
CCODE: DB 'NZ','Z ','NC','C '
DB 'PO','PE','P ','M '
END