ld a,h
ld c,l
ld hl,0
+ scf
call div0
ld b,a
ld a,c
ld c,b
call div
- jr nc,1$
+ jr c,1$
add hl,de
1$: ld d,c
ld e,a
; is implicitly in the 100s place, making the code awkward though it's correct
; now optimized to only inc/dec a when doing zero-crossing, fix above analysis
+; and inverted cf return sense so that it eliminates a scf instruction in div0
-div: jr c,div1
-div0:
+div: jr nc,div1
+div0: ; enter with cf=1
push af
ld a,'A
call print_char
call print_word
ex de,hl
ld b,8
- scf
rla
div00: adc hl,hl
sbc hl,de
div01: add a,a
djnz div00
dec a
- or a
+ scf
push af
ld a,'B
call print_char
djnz div10
;inc a
;dec a ; compensation
- scf
+ jr c,.
push af
ld a,'D
call print_char