ref: b5a8e3b3b32b2734d8fc642c77d96a0d4ef9c6d1
dir: /engine/routines/getsquareroot.asm/
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