summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo C2020-02-22 14:04:10 +0100
committerLeo C2020-02-22 15:21:57 +0100
commit2cf71a6bc2f529887e54c5ed3564fe3195001164 (patch)
treec176068c0ca0134004c0eeac78b0f7f8ec2ac2be
parenta6f1f1cde59f0ba4890059a0a476be7ff4a68d49 (diff)
downloadddt180-2cf71a6bc2f529887e54c5ed3564fe3195001164.zip
disas opt
-rw-r--r--ddt180.z80104
1 files changed, 41 insertions, 63 deletions
diff --git a/ddt180.z80 b/ddt180.z80
index 07ca9eb..3f356f2 100644
--- a/ddt180.z80
+++ b/ddt180.z80
@@ -2902,12 +2902,10 @@ tabe_1:
add a,l
tabe_2:
PUSH DE ;save source pointer
- ld de,disasbuf ;buffer pointer
- LD HL,t_MNEMONICS
+ ld hl,disasbuf ;buffer pointer
+ LD de,t_MNEMONICS
CALL XTRACT ;copy mnemonic to buffer
-
- ex de,hl
- LD DE,disasbuf+5
+ LD de,disasbuf+5
da_spaces:
ld (hl),' '
inc hl
@@ -3337,14 +3335,16 @@ OPRND2:
DJNZ DAT8 ;1?
;RELADR:
CALL FETCH
- LD C,A
- RLA
- SBC A,A
- LD B,A
- EX DE,HL
- PUSH HL
- ADD HL,BC
- JR DHL
+ ld c,a
+ rla
+ sbc a,a
+ ld b,a
+ ld a,c
+ add a,e
+ ld c,a
+ ld a,b
+ adc a,d
+ jr conv_ac
CONDIT:
RRA
@@ -3365,18 +3365,12 @@ DAT8:
D8:
CALL FETCH
DA:
- EX DE,HL
- call conv_hex
- EX DE,HL
- RET
+ jr conv_hex
BITNUM:
DJNZ INTMOD ;3?
AND 7
- EX DE,HL
- call conv_dgt
- EX DE,HL
- RET
+ jr conv_dgt
DAT16:
DJNZ EXAF
@@ -3384,18 +3378,28 @@ D16:
CALL FETCH
LD C,A
CALL FETCH
-;DAC:
- EX DE,HL
- PUSH HL
- LD H,A
- LD L,C
-
-DHL:
- CALL conv_hl
- POP HL
- EX DE,HL
- RET
+conv_ac:
+ call conv_hex
+ ld a,c
+conv_hex:
+ push af
+ rra
+ rra
+ rra
+ rra
+ call conv_dgt
+ pop af
+conv_dgt:
+ or 0f0h
+ daa
+ add a,0a0h
+ adc a,040h
+ LD (HL),A
+ INC HL
+ ret
+
+;-------------------------------------------------------------------------------
INTMOD:
DJNZ STKTOP ;4?
@@ -3418,17 +3422,14 @@ STKTOP:
DEC A
JR RNX
-
EXAF:
LD C,10
DEC B
JR Z,PS2
-
;EXDE:
INC C
DEC B
JR Z,PS2
-
;REG8S:
DJNZ ACCUM
@@ -3522,40 +3523,16 @@ REGX:
LD A,(iy+1)
ADD A,16
PS4:
- EX DE,HL
- PUSH HL
- LD HL,RGSTRS
+ PUSH de
+ LD de,RGSTRS
CALL XTRACT
- POP HL
- EX DE,HL
+ POP de
RET
;-------------------------------------------------------------------------------
-conv_hl:
- ld a,h
- call conv_hex
- ld a,l
-conv_hex:
- push af
- rra
- rra
- rra
- rra
- call conv_dgt
- pop af
-conv_dgt:
- or 0f0h
- daa
- add a,0a0h
- adc a,040h
- LD (DE),A
- INC DE
- ret
-
-;-------------------------------------------------------------------------------
-
XTRACT:
+ ex de,hl
OR A
JR Z,COPY
SKIP:
@@ -3573,6 +3550,7 @@ COPY:
INC DE
INC HL
JR NC,COPY
+ ex de,hl
RET
;-------------------------------------------------------------------------------