; function: 16 bits multiply routine; N.O.P.; [EMAIL PROTECTED]
;entry name: Mul16Bits
; in: DE, BC
; out: HL=DE*BC
; changes: A=0, HL, DE=0, flags
; speed: 1089 clocks (3287 calculations/sec)
Mul16Bits ld a,16
Mul16Bits_1 sla l
rl h
sla e
rl d
jp nc,Mul16Bits_2
add hl,bc
Mul16Bits_2 dec a
jp nz,Mul16Bits_1
ret
; function: 16 bits divide routine; N.O.P.; [EMAIL PROTECTED]
;entry name: Div16Bits
; in: DE, BC
; out: BC=DE/BC HL=rest (BC=0; HL=DE when division by zero)
; changes: A=0, HL, BC, DE=0, flags
; speed: 1783-2087 clocks (min. 1715 calculations/sec)
Div16Bits ld a,16
ld hl,0
ld (Div16Bits_4+1),sp
ld (Div16Bits_1+1),bc
Div16Bits_1 ld sp,0
Div16Bits_2 sla e
rl d
rl l
rl h
or a
sbc hl,sp
jp c,Div16Bits_3
sbc hl,sp
ccf
Div16Bits_3 ccf
rl c
rl b
add hl,sp
dec a
jp nz,Div16Bits_2
Div16Bits_4 ld sp,0
ret
greetings, stephan smetsers
[EMAIL PROTECTED]