?login_element?
?pathlinks? – Rev 1889
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
;dehl = m
;dehl' = n
;out: dehl = m/n
uintdiv32
ld a,h
cpl
ld h,a
ld a,l
cpl
ld l,a
ld (.dividendlo),hl
ld a,d
cpl
ld h,a
ld a,e
cpl
ld l,a
ld (.dividendhi),hl
ld a,1
ld bc,0
ld de,1
ld hl,0
ld iy,0
ld (.templo),hl
ld (.temphi),hl
exx
ld bc,de
ex de,hl
bit 7,b
jr nz,.rshiftloop
.lshiftloop
sla de
rl bc
exx
sla de
rl bc
exx
inc a
bit 7,b
jr z,.lshiftloop
.rshiftloop
.templo=$+2
ld ix,0
.temphi=$+1
ld hl,0
add ix,de
adc hl,bc
jr c,.nextbit
push ix
push hl
push de
.dividendlo=$+1
ld de,0
add ix,de
.dividendhi=$+1
ld de,0
adc hl,de
pop de
pop hl
pop ix
jr c,.nextbit
ld (.templo),ix
ld (.temphi),hl
exx
add iy,de
add hl,bc
exx
.nextbit
srl bc
rr de
exx
srl bc
rr de
exx
dec a
jr nz,.rshiftloop
exx
ld de,iy
ex de,hl
ret
;bc = m
;de = n
;out: dehl = m*n
uintmul16
ld hl,0
exx
ld hl,0
ld de,hl
exx
.loop srl bc
jr nc,.skip
add hl,de
exx
adc hl,de
exx
.skip sla de
exx
rl de
exx
ld a,b
or c
jr nz,.loop
exx
push hl
exx
pop de
ret