Improved way that uses cf to do most of the adjustment needed for zero crossing
authorNick Downing <nick@ndcode.org>
Mon, 10 Jun 2019 10:05:44 +0000 (20:05 +1000)
committerNick Downing <nick@ndcode.org>
Mon, 10 Jun 2019 10:05:44 +0000 (20:05 +1000)
sm.asm

diff --git a/sm.asm b/sm.asm
index 3b7712a..1b4e70c 100644 (file)
--- a/sm.asm
+++ b/sm.asm
@@ -852,10 +852,11 @@ div_hl_de:
        adc     hl,hl
        sbc     hl,de
        jr      nc,2$
-       sub     1
+       dec     a
        jr      6$
 2$:    djnz    1$
        rla
+       add     a,a
        dec     a
        push    af
  ld a,'a
@@ -867,10 +868,11 @@ div_hl_de:
        adc     hl,hl
        sbc     hl,de
        jr      nc,4$
-       sub     1
+       dec     a
        jr      8$
 4$:    djnz    3$
        rla
+       add     a,a
        dec     a
        pop     de
        ld      e,a
@@ -882,11 +884,10 @@ div_hl_de:
 5$:    rla
        adc     hl,hl
        add     hl,de
-       jr      nc,6$
-       add     1
-       jr      2$
+       jr      c,2$
 6$:    djnz    5$
        rla
+       add     a,a
        push    af
  ld a,'c
  call print_char
@@ -896,11 +897,10 @@ div_hl_de:
 7$:    rla
        adc     hl,hl
        add     hl,de
-       jr      nc,8$
-       add     1
-       jr      4$
+       jr      c,4$
 8$:    djnz    7$
        rla
+       add     a,a
        add     hl,de
        pop     de
        ld      e,a