1 REM Ins{nd av Kristoffer Eriksson <5357>    1987-12-11 19.43.16 (KERMIT)
; Fil: IDIV.ASM
; Inskrivet av: Kristoffer Eriksson, "SKE" <5357>.
;
;-Ver--/-Datum----/-Sign-/-Kommentar----------------------------------
; 1.00 / 87-08-29 / SKE  / Avskrivet fr}n Basic-tolken i ABC800
;
; Heltalsdivision HL := HL/BC. HL och BC betraktas som heltal utan tecken.
; F|rst|r DE och A. Ger carry om BC=0, s}vida inte anrop g|rs vid IDivZ.

            extern IDiv, IDivZ

IDiv:       ld     a,b
            or     c
            scf
            ret z
IDivZ:      ld     de,0
            ex     de,hl
            ld     a,17
            scf
Loop:       ccf
            ex     de,hl
            adc    hl,hl
            dec    a
            ret z
            ex     de,hl
            adc    hl,hl
            and    a
            sbc    hl,bc
            jr nc  Loop
            add    hl,bc
            jr     Loop
