From b772ed31f4d418bcaf455234deab4c3dad71ff25 Mon Sep 17 00:00:00 2001 From: Leo C Date: Sat, 13 Aug 2016 00:06:52 +0200 Subject: [PATCH] Reorg --- ddt180.z80 | 233 +++++++++++++++++++++++++---------------------------- 1 file changed, 109 insertions(+), 124 deletions(-) diff --git a/ddt180.z80 b/ddt180.z80 index 93df19a..8d7cb46 100644 --- a/ddt180.z80 +++ b/ddt180.z80 @@ -558,6 +558,114 @@ cp_hl_de: add hl,de ret +sub_hl_a1: + dec hl +sub_hl_a: + push bc + ld c,a + ld b,0 + or a + sbc hl,bc + pop bc + ret + +sym_getname: + push de + push hl + ld hl,ddtz_base+2 +sgn_l: + ld d,(hl) + dec hl + ld e,(hl) + dec hl + ld a,(hl) + cp 0c3h + jr z,sgn_e + + ex (sp),hl + call cp_hl_de + jr z,sgn_e + ex (sp),hl + call sub_hl_a1 + jr sgn_l +sgn_e: + sub 0c3h + pop hl + pop de + ret + +p_symstr: + push bc + ld b,(hl) +pss_l: + dec hl + ld a,(hl) + call outchar + djnz pss_l + pop bc + ret + +p_sym_space: + if 0 + ld a,(dash_flag) + or a + ret nz + endif + + push hl + push bc + ld c,a + ld a,(con_col) + ld b,a + call sym_getname + jr z,psb_align + bit 7,c + jr z,psb_nd + ld a,' ' + call outchar + ld a,'.' + call outchar +psb_nd: + call p_symstr + +psb_align: + ld a,(con_col) + sub b + ld b,a + ld a,(symlen_max) + bit 7,c + jr z,$+4 + add a,2 + res 7,c + add c + sub b + ld b,a + jr z,psb_e +psb_a_l: + call outbl + djnz psb_a_l +psb_e: + pop bc + pop hl + ret + +p_label: + if 0 + ld a,(dash_flag) + or a + ret nz + endif + push hl + call sym_getname + jr z,pl_e + call p_symstr + ld a,':' + call outchar + call crlf +pl_e: + pop hl + ret + lookupch: ld b,0 l02f5h: @@ -2396,8 +2504,6 @@ l0e5eh: p_symbols: inc de call assert_eol - ld hl,ddtz_base+2 - ld a,(symlen_max) add a,8 ld b,a @@ -2408,6 +2514,7 @@ psym_1: sub a,b jr nc,psym_1 + ld hl,ddtz_base+2 psym_nxtline: ld b,c psym_nxtcol: @@ -2435,128 +2542,6 @@ psym_e: ret z jp crlf - -p_sym_space: - if 0 - ld a,(dash_flag) - or a - ret nz - endif - - push hl - push bc - ld c,a - ld a,(con_col) - ld b,a - call sym_getname - jr z,psb_align - bit 7,c - jr z,psb_nd - ld a,' ' - call outchar - ld a,'.' - call outchar -psb_nd: - call p_symstr - -psb_align: - ld a,(con_col) - sub b - ld b,a - ld a,(symlen_max) - bit 7,c - jr z,$+4 - add a,2 - res 7,c - add c - sub b - ld b,a - jr z,psb_e -psb_a_l: - call outbl - djnz psb_a_l -psb_e: - pop bc - pop hl - ret - - -p_symbol: - if 0 - ld a,(dash_flag) - or a - ret nz - endif - call sym_getname - ret z - call pstr_inl - dc ' .' - -p_symstr: - push bc - ld b,(hl) -pss_l: - dec hl - ld a,(hl) - call outchar - djnz pss_l - pop bc - ret - -p_label: - if 0 - ld a,(dash_flag) - or a - ret nz - endif - push hl - call sym_getname - jr z,pl_e - call p_symstr - ld a,':' - call outchar - call crlf -pl_e: - pop hl - ret - - -sym_getname: - push de - push hl - ld hl,ddtz_base+2 -sgn_l: - ld d,(hl) - dec hl - ld e,(hl) - dec hl - ld a,(hl) - cp 0c3h - jr z,sgn_e - - ex (sp),hl - call cp_hl_de - jr z,sgn_e - ex (sp),hl - call sub_hl_a1 - jr sgn_l -sgn_e: - sub 0c3h - pop hl - pop de - ret - -sub_hl_a1: - dec hl -sub_hl_a: - push bc - ld c,a - ld b,0 - or a - sbc hl,bc - pop bc - ret - cmd_Q: ld a,(de) sub 'J' -- 2.39.2