summaryrefslogtreecommitdiff
path: root/z180
diff options
context:
space:
mode:
authorLeo C2015-05-28 22:56:55 +0200
committerLeo C2015-05-28 22:56:55 +0200
commit8590a76bcc7cbe1443abf37498f824a0eab0c8d7 (patch)
treec479eaa490cd325ec2717e7ad7b5a525a3d5ddeb /z180
parent393b1897603fddeb4f16170880ddd9414b3726e0 (diff)
downloadz180-stamp-8590a76bcc7cbe1443abf37498f824a0eab0c8d7.zip
Server: get_time command/responsehexrel-6.1
Diffstat (limited to 'z180')
-rw-r--r--z180/ddtz.1801074
-rw-r--r--z180/z180reg.inc2
2 files changed, 539 insertions, 537 deletions
diff --git a/z180/ddtz.180 b/z180/ddtz.180
index e8a26fd..aa4e977 100644
--- a/z180/ddtz.180
+++ b/z180/ddtz.180
@@ -957,449 +957,450 @@ do_op_mod:
ex de,hl
jr l0b58h
+; divide x/y
+; x: hl
+; y: de
+; return:
+; x/y: hl
+; rem: de
+
DIV_HL_DE:
- push bc
- ex de,hl
- ld b,h
- ld c,l
- ld hl,0
- ld a,16
+ push bc
+ ex de,hl ;de = x, hl = y
+ ld b,h ;bc = y
+ ld c,l
+ ld hl,0 ;r = 0
+ ld a,16 ;count
l0b89h:
- push af
- add hl,hl
- ex de,hl
- xor a
- add hl,hl
- ex de,hl
- adc a,l
- sub c
- ld l,a
- ld a,h
- sbc a,b
- ld h,a
- inc de
- jr nc,l0b9ah
- add hl,bc
- dec de
-l0b9ah:
- pop af
- dec a
- jr nz,l0b89h
- ex de,hl
- pop bc
+ ex de,hl ;x
+ add hl,hl ;x <<= 1
+ ex de,hl ;r
+ adc hl,hl ;r <<= 1
+
+ or a
+ sbc hl,bc
+ inc de
+ jr nc,div_no_restore
+ add hl,bc
+ dec de
+div_no_restore:
+ dec a
+ jr nz,l0b89h
+ ex de,hl
+ pop bc
ret
do_op_and:
- ld a,h
- and d
- ld h,a
- ld a,l
- and e
- ld l,a
- jr l0b58h
+ ld a,h
+ and d
+ ld h,a
+ ld a,l
+ and e
+ ld l,a
+ jr l0b58h
do_op_or:
- ld a,h
- or d
- ld h,a
- ld a,l
- or e
- ld l,a
- jr l0b58h
+ ld a,h
+ or d
+ ld h,a
+ ld a,l
+ or e
+ ld l,a
+ jr l0b58h
do_op_xor:
- ld a,h
- xor d
- ld h,a
- ld a,l
- xor e
- ld l,a
- jr l0b58h
+ ld a,h
+ xor d
+ ld h,a
+ ld a,l
+ xor e
+ ld l,a
+ jr l0b58h
do_binary_op:
- push hl
- ld hl,tab_op_a
- call lookupch
- ld a,b
- ld hl,tab_func_opa
- add a,a
- call ADD_HL_A
- ld c,(hl)
- inc hl
- ld b,(hl)
- pop hl
+ push hl
+ ld hl,tab_op_a
+ call lookupch
+ ld a,b
+ ld hl,tab_func_opa
+ add a,a
+ call ADD_HL_A
+ ld c,(hl)
+ inc hl
+ ld b,(hl)
+ pop hl
ret
tab_op_a:
DB '+-*/%&!#',0
tab_func_opa:
- defw do_op_add
- defw do_op_sub
- defw do_op_mlt
- defw do_op_div
- defw do_op_mod
- defw do_op_and
- defw do_op_or
- defw do_op_xor
- defw 0
+ defw do_op_add
+ defw do_op_sub
+ defw do_op_mlt
+ defw do_op_div
+ defw do_op_mod
+ defw do_op_and
+ defw do_op_or
+ defw do_op_xor
+ defw 0
fact_factor:
- call do_factor
- ret nc
- jp ERROR
+ call do_factor
+ ret nc
+ jp ERROR
do_factor:
- call chk.sp
- call get.number
- ret nc
- inc de
- ld hl,TOPRAM
- cp 'T'
- ret z
- ld hl,(HILOD)
- cp 'H'
- ret z
- ld hl,(MAXLOD)
- cp 'M'
- ret z
- ld hl,TPA
- cp 'L'
- ret z
- ld hl,(offs.@)
- cp '@'
- ret z
- ld hl,(OFFS.pc)
- cp '$'
- ret z
- cp '-'
- jr z,fact_factneg
- cp '~'
- jr z,fact_factinv
- cp '+'
- jr z,fact_factor
- cp '^'
- jr z,fact_reg.CPU
- cp 'Y'
- jr z,fact_reg.Y
- cp '('
- jr z,fact_mem
- cp '['
- jp z,EXPR_BRCKT ;0c35 [ expression ]
- cp ''''
- jr z,fact_factstring
- dec de
+ call chk.sp
+ call get.number
+ ret nc
+ inc de
+ ld hl,TOPRAM
+ cp 'T'
+ ret z
+ ld hl,(HILOD)
+ cp 'H'
+ ret z
+ ld hl,(MAXLOD)
+ cp 'M'
+ ret z
+ ld hl,TPA
+ cp 'L'
+ ret z
+ ld hl,(offs.@)
+ cp '@'
+ ret z
+ ld hl,(OFFS.pc)
+ cp '$'
+ ret z
+ cp '-'
+ jr z,fact_factneg
+ cp '~'
+ jr z,fact_factinv
+ cp '+'
+ jr z,fact_factor
+ cp '^'
+ jr z,fact_reg.CPU
+ cp 'Y'
+ jr z,fact_reg.Y
+ cp '('
+ jr z,fact_mem
+ cp '['
+ jp z,EXPR_BRCKT ;0c35 [ expression ]
+ cp ''''
+ jr z,fact_factstring
+ dec de
scf
ret
fact_reg.Y:
- call get.decdigit
- jp c,ERROR
- inc de
- add a,a
- ld hl,reg.Y
- call ADD_HL_A
- ld a,(hl)
- inc hl
- ld h,(hl)
- ld l,a
- and a
+ call get.decdigit
+ jp c,ERROR
+ inc de
+ add a,a
+ ld hl,reg.Y
+ call ADD_HL_A
+ ld a,(hl)
+ inc hl
+ ld h,(hl)
+ ld l,a
+ and a
ret
fact_factstring:
- ld hl,0
+ ld hl,0
l0c56h:
- ld a,(de)
- cp ''''
- jr z,l0c62h
- and a
- ret z
+ ld a,(de)
+ cp ''''
+ jr z,l0c62h
+ and a
+ ret z
l0c5dh:
- ld h,l
- ld l,a
- inc de
- jr l0c56h
+ ld h,l
+ ld l,a
+ inc de
+ jr l0c56h
l0c62h:
- inc de
- ld a,(de)
- cp ''''
- jr z,l0c5dh
- sub '.'
- or a
- ret nz
- inc de
- set 7,l
+ inc de
+ ld a,(de)
+ cp ''''
+ jr z,l0c5dh
+ sub '.'
+ or a
+ ret nz
+ inc de
+ set 7,l
ret
fact_reg.CPU:
- call sub_1315h
- jr nc,l0cbbh
- ld a,(hl)
- inc hl
- ld h,(hl)
- ld l,a
- and a
- bit 0,c
- ret nz
- ld h,000h
+ call sub_1315h
+ jr nc,l0cbbh
+ ld a,(hl)
+ inc hl
+ ld h,(hl)
+ ld l,a
+ and a
+ bit 0,c
+ ret nz
+ ld h,000h
ret
fact_factneg:
- call fact_factor
- dec hl
+ call fact_factor
+ dec hl
cpl.hl:
- ld a,h
+ ld a,h
cpl
- ld h,a
- ld a,l
+ ld h,a
+ ld a,l
cpl
- ld l,a
+ ld l,a
ret
fact_factinv:
- call fact_factor
- jr cpl.hl
+ call fact_factor
+ jr cpl.hl
fact_mem:
- call EXPR1
- jr c,l0cbbh
- ld a,(de)
- cp ')'
- jr nz,l0cbbh
- inc de
+ call EXPR1
+ jr c,l0cbbh
+ ld a,(de)
+ cp ')'
+ jr nz,l0cbbh
+ inc de
comst
- ld a,(hl)
- inc hl ;
- ld h,(hl) ;
+ ld a,(hl)
+ inc hl ;
+ ld h,(hl) ;
comend
- ld l,a
- ld a,(de)
- inc de
- cp '.'
- ret z
- dec de
- xor a
- ld h,a
+ ld l,a
+ ld a,(de)
+ inc de
+ cp '.'
+ ret z
+ dec de
+ xor a
+ ld h,a
ret
EXPR_BRCKT:
- call EXPR1
- jr c,l0cbbh
- ld a,(de)
- cp ']'
- inc de
- ret z
+ call EXPR1
+ jr c,l0cbbh
+ ld a,(de)
+ cp ']'
+ inc de
+ ret z
l0cbbh:
- jp ERROR
+ jp ERROR
get.number:
- call get.hexdigit
- ret c
- push de
+ call get.hexdigit
+ ret c
+ push de
l0cc3h:
- inc de
- call get.hexdigit
- jr nc,l0cc3h
- pop de
- cp '.'
- jr z,l0d04h
- cp '"'
- jr z,l0ce9h
- ld hl,0
+ inc de
+ call get.hexdigit
+ jr nc,l0cc3h
+ pop de
+ cp '.'
+ jr z,l0d04h
+ cp '"'
+ jr z,l0ce9h
+ ld hl,0
l0cd5h:
- call get.hexdigit
- jr c,l0ce4h
- add hl,hl
- add hl,hl
- add hl,hl
- add hl,hl
- call ADD_HL_A
- inc de
- jr l0cd5h
+ call get.hexdigit
+ jr c,l0ce4h
+ add hl,hl
+ add hl,hl
+ add hl,hl
+ add hl,hl
+ call ADD_HL_A
+ inc de
+ jr l0cd5h
l0ce4h:
- xor 'H'
- ret nz
- inc de
+ xor 'H'
+ ret nz
+ inc de
ret
l0ce9h:
- ld hl,0
+ ld hl,0
l0cech:
- call get.decdigit
+ call get.decdigit
l0cefh:
- inc de
- jr c,l0cf8h
- add hl,hl
- call ADD_HL_A
- jr l0cech
+ inc de
+ jr c,l0cf8h
+ add hl,hl
+ call ADD_HL_A
+ jr l0cech
l0cf8h:
- cp '"'
- jp nz,ERROR
- call get.decdigit
- jr nc,l0cefh
- or a
+ cp '"'
+ jp nz,ERROR
+ call get.decdigit
+ jr nc,l0cefh
+ or a
ret
l0d04h:
- ld hl,0
+ ld hl,0
l0d07h:
- call get.decdigit
- inc de
- jr c,l0d1ah
- push bc
- add hl,hl ;0d0e hl *= 10
- ld b,h
- ld c,l
- add hl,hl
- add hl,hl
- add hl,bc
- pop bc
- call ADD_HL_A
- jr l0d07h
+ call get.decdigit
+ inc de
+ jr c,l0d1ah
+ push bc
+ add hl,hl ;0d0e hl *= 10
+ ld b,h
+ ld c,l
+ add hl,hl
+ add hl,hl
+ add hl,bc
+ pop bc
+ call ADD_HL_A
+ jr l0d07h
l0d1ah:
- cp '.'
- ret z
- jp ERROR
+ cp '.'
+ ret z
+ jp ERROR
sub_0d20h:
- ld a,(de)
- cp 05bh
- jr l0d28h
+ ld a,(de)
+ cp 05bh
+ jr l0d28h
get.hexdigit:
- ld a,(de)
+ ld a,(de)
sub_0d26h:
- cp 'F'+1
+ cp 'F'+1
l0d28h:
ccf
- ret c
- cp 'A'
- jr c,l0d32h
- sub 'A'-10
+ ret c
+ cp 'A'
+ jr c,l0d32h
+ sub 'A'-10
ret
get.decdigit:
- ld a,(de)
+ ld a,(de)
l0d32h:
- cp '9'+1
- jr l0d39h
+ cp '9'+1
+ jr l0d39h
get.bindigit:
- ld a,(de)
- cp '1'+1
+ ld a,(de)
+ cp '1'+1
l0d39h:
ccf
- ret c
- cp '0'
- ret c
- sub '0'
+ ret c
+ cp '0'
+ ret c
+ sub '0'
ret
l0d41h:
- call assert_eol
+ call assert_eol
prnt_cpustat:
- call prnt_f
- call outbl2
- ld hl,b_0x0DFD_start
- ld de,b_0x0E1D_start
- ld b,006h
+ call prnt_f
+ call outbl2
+ ld hl,b_0x0DFD_start
+ ld de,b_0x0E1D_start
+ ld b,006h
l0d52h:
- call prnt_regs
- djnz l0d52h
- push hl
- push de
- ld iy,(REG.PC)
- call sub_1f77h
+ call prnt_regs
+ djnz l0d52h
+ push hl
+ push de
+ ld iy,(REG.PC)
+ call sub_1f77h
exx
- ex af,af'
- call CRLF
- call prnt_f2
- call outbl2
- pop de
- pop hl
- ld b,007h
+ ex af,af'
+ call CRLF
+ call prnt_f2
+ call outbl2
+ pop de
+ pop hl
+ ld b,007h
l0d6fh:
- call prnt_regs
- djnz l0d6fh
+ call prnt_regs
+ djnz l0d6fh
exx
- ex af,af'
- and a
- jr z,l0d7fh
- call outbl6
- call sub_1f5bh
+ ex af,af'
+ and a
+ jr z,l0d7fh
+ call outbl6
+ call sub_1f5bh
l0d7fh:
- jp crlf
+ jp crlf
prnt_f:
- ld a,(reg.f)
- call prnt_flags
- ld a,(reg.iff)
- cp 0f3h
- jp z,outbl
- ld a,'E'
- jp outchar
+ ld a,(reg.f)
+ call prnt_flags
+ ld a,(reg.iff)
+ cp 0f3h
+ jp z,outbl
+ ld a,'E'
+ jp outchar
prnt_f2:
- ld a,(reg.f2)
- call prnt_flags
- jp outbl
+ ld a,(reg.f2)
+ call prnt_flags
+ jp outbl
prnt_flags:
- ld b,a
- ld a,'S'
- call sub_0dbeh
- ld a,'Z'
- call sub_0dbeh
- rl b
- ld a,'H'
- call sub_0dbeh
- rl b
- ld a,'V'
- call sub_0dbeh
- ld a,'N'
- call sub_0dbeh
- ld a,'C'
+ ld b,a
+ ld a,'S'
+ call sub_0dbeh
+ ld a,'Z'
+ call sub_0dbeh
+ rl b
+ ld a,'H'
+ call sub_0dbeh
+ rl b
+ ld a,'V'
+ call sub_0dbeh
+ ld a,'N'
+ call sub_0dbeh
+ ld a,'C'
sub_0dbeh:
- rl b
- jp c,OUTCHAR
- jp OUTBL
+ rl b
+ jp c,OUTCHAR
+ jp OUTBL
prnt_regs:
- push bc
- push de
- call PSTR
- ld a,'='
- call OUTCHAR
- ex (sp),hl
- ld e,(hl)
- inc hl
- ld d,(hl)
- inc hl
- ld a,(hl)
- inc hl
- push hl
- and a
- jr z,l0df2h
- push af
- ld a,(de)
- ld l,a
- inc de
- ld a,(de)
- ld h,a
- pop af
- dec a
- jr z,l0dedh
- call out.hl.@
- call z,outbl6
- jr l0df6h
+ push bc
+ push de
+ call PSTR
+ ld a,'='
+ call OUTCHAR
+ ex (sp),hl
+ ld e,(hl)
+ inc hl
+ ld d,(hl)
+ inc hl
+ ld a,(hl)
+ inc hl
+ push hl
+ and a
+ jr z,l0df2h
+ push af
+ ld a,(de)
+ ld l,a
+ inc de
+ ld a,(de)
+ ld h,a
+ pop af
+ dec a
+ jr z,l0dedh
+ call out.hl.@
+ call z,outbl6
+ jr l0df6h
l0dedh:
- call out.hl
- jr l0df6h
+ call out.hl
+ jr l0df6h
l0df2h:
- ld a,(de)
- call out.hex
+ ld a,(de)
+ call out.hex
l0df6h:
- call OUTBL
- pop de
- pop hl
- pop bc
+ call OUTBL
+ pop de
+ pop hl
+ pop bc
ret
b_0x0DFD_start:
@@ -1419,234 +1420,234 @@ b_0x0DFD_start:
DB 0
b_0x0E1D_start:
- defw reg.a
- defb 000h
- defw reg.c
- defb 001h
- defw reg.e
- defb 001h
- defw reg.l
- defb 001h
- defw reg.sp
- defb 001h
- defw reg.pc
- defb 002h
- defw reg.a2
- defb 000h
- defw reg.c2
- defb 001h
- defw reg.e2
- defb 001h
- defw reg.l2
- defb 001h
- defw reg.ix
- defb 001h
- defw reg.iy
- defb 001h
- defw reg.i
+ defw reg.a
+ defb 000h
+ defw reg.c
+ defb 001h
+ defw reg.e
+ defb 001h
+ defw reg.l
+ defb 001h
+ defw reg.sp
+ defb 001h
+ defw reg.pc
+ defb 002h
+ defw reg.a2
+ defb 000h
+ defw reg.c2
+ defb 001h
+ defw reg.e2
+ defb 001h
+ defw reg.l2
+ defb 001h
+ defw reg.ix
+ defb 001h
+ defw reg.iy
+ defb 001h
+ defw reg.i
dw 0
CMD.G:
- sub a
- ld (TCFLG),a
- ld (XA747),a
- call EXPR
- jr c,l0e54h
- ld (REG.PC),hl
+ sub a
+ ld (TCFLG),a
+ ld (XA747),a
+ call EXPR
+ jr c,l0e54h
+ ld (REG.PC),hl
l0e54h:
- call SKIPBL
- jp z,l1183h
- cp ';'
- jp nz,ERROR
- inc de
- ld a,002h
- call sub_0f24h
- jp l1183h
+ call SKIPBL
+ jp z,l1183h
+ cp ';'
+ jp nz,ERROR
+ inc de
+ ld a,002h
+ call sub_0f24h
+ jp l1183h
sub_0e68h:
- ld b,BP_CNT
- ld ix,bp_tab
+ ld b,BP_CNT
+ ld ix,bp_tab
l0e6eh:
- ld a,(ix+000h)
- and 0f1h
- ld (ix+000h),a
- call sub_11c5h
- ld de,BP_SIZE
- add ix,de
- djnz l0e6eh
+ ld a,(ix+000h)
+ and 0f1h
+ ld (ix+000h),a
+ call sub_11c5h
+ ld de,BP_SIZE
+ add ix,de
+ djnz l0e6eh
ret
CMD.B:
- call SKIPBL
- jr z,l0ecbh
- inc de
- cp 'X'
- jr z,l0e91h
- dec de
- ld a,001h
- jp sub_0f24h
+ call SKIPBL
+ jr z,l0ecbh
+ inc de
+ cp 'X'
+ jr z,l0e91h
+ dec de
+ ld a,001h
+ jp sub_0f24h
l0e91h:
- call SKIPBL
- jr z,l0ea6h
+ call SKIPBL
+ jr z,l0ea6h
l0e96h:
- call EXPR
- jp c,assert_eol
- push de
- call sub_0ea7h
- pop de
- call skip_to_nextarg
- jr l0e96h
+ call EXPR
+ jp c,assert_eol
+ push de
+ call sub_0ea7h
+ pop de
+ call skip_to_nextarg
+ jr l0e96h
l0ea6h:
scf
sub_0ea7h:
- ld b,BP_CNT
- ld ix,bp_tab
+ ld b,BP_CNT
+ ld ix,bp_tab
l0eadh:
- push af
- jr c,l0ebbh
- ld e,(ix+002h)
- ld d,(ix+003h)
- call CP.HL.DE
- jr nz,l0ec2h
+ push af
+ jr c,l0ebbh
+ ld e,(ix+002h)
+ ld d,(ix+003h)
+ call CP.HL.DE
+ jr nz,l0ec2h
l0ebbh:
- ld (ix+000h),000h
- call sub_11c5h
+ ld (ix+000h),000h
+ call sub_11c5h
l0ec2h:
- ld de,BP_SIZE
- add ix,de
- pop af
- djnz l0eadh
+ ld de,BP_SIZE
+ add ix,de
+ pop af
+ djnz l0eadh
ret
l0ecbh:
- ld b,BP_CNT
- ld ix,bp_tab
+ ld b,BP_CNT
+ ld ix,bp_tab
l0ed1h:
- bit 0,(ix+000h)
- jr z,l0f1ch
- ld a,'R'
- bit 4,(ix+000h)
- jr nz,l0ee1h
- ld a,' '
+ bit 0,(ix+000h)
+ jr z,l0f1ch
+ ld a,'R'
+ bit 4,(ix+000h)
+ jr nz,l0ee1h
+ ld a,' '
l0ee1h:
- call OUTCHAR
- call OUTBL
- ld l,(ix+002h)
- ld h,(ix+003h)
- call out.hl.@
- call outbl2
- ld a,':'
- call OUTCHAR
- ld l,(ix+004h)
- ld h,(ix+005h)
- call out.hl
- ld l,(ix+006h)
- ld h,(ix+007h)
- ld a,h
- or l
- jr z,l0f19h
- call outbl4
- ld a,'I'
- call OUTCHAR
- call outbl2
- call PSTR
+ call OUTCHAR
+ call OUTBL
+ ld l,(ix+002h)
+ ld h,(ix+003h)
+ call out.hl.@
+ call outbl2
+ ld a,':'
+ call OUTCHAR
+ ld l,(ix+004h)
+ ld h,(ix+005h)
+ call out.hl
+ ld l,(ix+006h)
+ ld h,(ix+007h)
+ ld a,h
+ or l
+ jr z,l0f19h
+ call outbl4
+ ld a,'I'
+ call OUTCHAR
+ call outbl2
+ call PSTR
l0f19h:
- call CRLF
+ call CRLF
l0f1ch:
- ld de,BP_SIZE
- add ix,de
- djnz l0ed1h
+ ld de,BP_SIZE
+ add ix,de
+ djnz l0ed1h
ret
sub_0f24h:
- ld b,a
- call SKIPBL
- ret z
- cp 'R'
- jr nz,l0f30h
- inc de
- set 4,b
+ ld b,a
+ call SKIPBL
+ ret z
+ cp 'R'
+ jr nz,l0f30h
+ inc de
+ set 4,b
l0f30h:
- push bc
- call EXPR
- jp c,ERROR
- pop bc
- bit 0,b
- push bc
- push de
- push hl
- call nz,sub_0ea7h
- pop hl
- call sub_0f68h
- pop de
- ld (ix+002h),l
- ld (ix+003h),h
- call sub_0f80h
- ld (ix+004h),l
- ld (ix+005h),h
- call sub_0f91h
- ld (ix+006h),l
- ld (ix+007h),h
- call skip_to_nextarg
- pop af
- ld (ix+000h),a
- and 00fh
- jr sub_0f24h
+ push bc
+ call EXPR
+ jp c,ERROR
+ pop bc
+ bit 0,b
+ push bc
+ push de
+ push hl
+ call nz,sub_0ea7h
+ pop hl
+ call sub_0f68h
+ pop de
+ ld (ix+002h),l
+ ld (ix+003h),h
+ call sub_0f80h
+ ld (ix+004h),l
+ ld (ix+005h),h
+ call sub_0f91h
+ ld (ix+006h),l
+ ld (ix+007h),h
+ call skip_to_nextarg
+ pop af
+ ld (ix+000h),a
+ and 00fh
+ jr sub_0f24h
sub_0f68h:
- ld b,BP_CNT
- ld ix,bp_tab
+ ld b,BP_CNT
+ ld ix,bp_tab
l0f6eh:
- ld a,(ix+000h)
- and 00fh
- ret z
- push bc
- ld bc,BP_SIZE
- add ix,bc
- pop bc
- djnz l0f6eh
- jp ERROR
+ ld a,(ix+000h)
+ and 00fh
+ ret z
+ push bc
+ ld bc,BP_SIZE
+ add ix,bc
+ pop bc
+ djnz l0f6eh
+ jp ERROR
sub_0f80h:
- call SKIPBL
- ld hl,1
- cp 03ah
- ret nz
- inc de
- call EXPR
- jp c,ERROR
+ call SKIPBL
+ ld hl,1
+ cp 03ah
+ ret nz
+ inc de
+ call EXPR
+ jp c,ERROR
ret
sub_0f91h:
- call SKIPBL
- cp 049h
- ld hl,0
- ret nz
- inc de
- call SKIPBL
- push de
- call EXPR
- jp c,ERROR
- ex de,hl
- pop de
- push de
- sbc hl,de
- ld b,h
- ld c,l
- ld hl,(sexp1)
- push hl
- add hl,bc
- ld de,sexpbufe
- call CP.HL.DE
- jp nc,ERROR
- pop hl
- ld (sexp2),hl
- pop de
- ex de,hl
+ call SKIPBL
+ cp 049h
+ ld hl,0
+ ret nz
+ inc de
+ call SKIPBL
+ push de
+ call EXPR
+ jp c,ERROR
+ ex de,hl
+ pop de
+ push de
+ sbc hl,de
+ ld b,h
+ ld c,l
+ ld hl,(sexp1)
+ push hl
+ add hl,bc
+ ld de,sexpbufe
+ call CP.HL.DE
+ jp nc,ERROR
+ pop hl
+ ld (sexp2),hl
+ pop de
+ ex de,hl
ldir
- xor a
- ld (de),a
- inc de
- ex de,hl
- ld (sexp1),hl
- ld hl,(sexp2)
+ xor a
+ ld (de),a
+ inc de
+ ex de,hl
+ ld (sexp1),hl
+ ld hl,(sexp2)
ret
bpddtz:
@@ -4752,6 +4753,7 @@ b_0x2108_start: ; 1 byte opcodes
defb 029h
defw l254bh
+
defb 0c7h ;216c inc r
defb 004h
defb 041h
diff --git a/z180/z180reg.inc b/z180/z180reg.inc
index 271a446..a248f5f 100644
--- a/z180/z180reg.inc
+++ b/z180/z180reg.inc
@@ -24,7 +24,7 @@ cntla1 equ IOBASE+01h ;ASCI Control Register A Channel 1
b2m MPBR, 3 ;Multiprocessor Bit Receive (Read)
b2m EFR, 3 ;Error Flag Reset (Write)
b2m MOD2, 2 ;Data Format Mode 1 = 8-Bit data
- b2m NOD1, 1 ;1 = Parity enabled
+ b2m MOD1, 1 ;1 = Parity enabled
b2m MOD0, 0 ;1 = 2 stop bits
cntlb0 equ IOBASE+02h ;ASCI Control Register B Channel 0