Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ld h, -1
- ld l, 0
- push hl
- sra h
- rr l
- ld d, h
- ld e, l
- call _FP_Mul
- push hl ; x^2/4
- sra h
- rr l
- ld d, h
- ld e, l
- call _FP_Mul
- sra h
- rr l
- inc h
- ex (sp), hl ; x^4/128+1 is on stack, HL=x^2/4
- xor a, a
- ld d, a
- ld b, h
- ld c, l
- add.s hl, hl \ rla
- add.s hl, hl \ rla
- add.s hl, bc \ adc a, d
- ld b, h
- ld c, l
- add.s hl, hl \ rla
- add.s hl, hl \ rla
- add.s hl, hl \ rla
- add.s hl, hl \ rla
- add.s hl, bc \ adc a, d
- ld e, l
- ld l, h
- ld h, a
- rl e
- adc.s hl, hl
- rl e
- jr nc, $+3
- inc hl
- pop de
- ex de, hl
- or a, a
- sbc hl, de
- pop de
- _FP_Mul:
- ; Inputs: H.L * D.E
- ; Output: H.L
- ; Speed:
- ; 154 cycles
- ld a, e
- push hl
- ld b, l
- ld c, d
- ld l, d
- ld d, h
- mlt hl
- mlt de
- mlt bc
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, de
- add hl, bc
- pop de
- ld d, a
- mlt de
- ld e, d
- ld d, 0
- add hl, de
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement