GetSquareRoot

This commit is contained in:
yenatch 2013-02-28 17:28:35 -05:00
parent 37355aef99
commit 767cc1376b
1 changed files with 33 additions and 1 deletions

View File

@ -4805,7 +4805,39 @@ OpenPartyStats: ; 12e00
ret
; 0x12e1b
INCBIN "baserom.gbc",$12e1b,$13d96 - $12e1b
INCBIN "baserom.gbc",$12e1b,$13b87 - $12e1b
GetSquareRoot: ; 13b87
; Return the square root of de in b.
; Rather than calculating the result, we take the index of the
; first value in a table of squares that isn't lower than de.
ld hl, Squares
ld b, 0
.loop
; Make sure we don't go past the end of the table.
inc b
ld a, b
cp $ff
ret z
; Iterate over the table until b**2 >= de.
ld a, [hli]
sub e
ld a, [hli]
sbc d
jr c, .loop
ret
Squares: ; 13b98
root set 1
rept $ff
dw root*root
root set root+1
endr
; 13d96
SECTION "bank5",DATA,BANK[$5]