diff options
Diffstat (limited to 'engine/math.asm')
-rwxr-xr-x | engine/math.asm | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/engine/math.asm b/engine/math.asm deleted file mode 100755 index cdac2d37..00000000 --- a/engine/math.asm +++ /dev/null @@ -1,190 +0,0 @@ -_Multiply:: ; 67bd - -; hMultiplier is one byte. - ld a, 8 - ld b, a - - xor a - ldh [hProduct], a - ldh [hMathBuffer + 1], a - ldh [hMathBuffer + 2], a - ldh [hMathBuffer + 3], a - ldh [hMathBuffer + 4], a - -.loop - ldh a, [hMultiplier] - srl a - ldh [hMultiplier], a - jr nc, .next - - ldh a, [hMathBuffer + 4] - ld c, a - ldh a, [hMultiplicand + 2] - add c - ldh [hMathBuffer + 4], a - - ldh a, [hMathBuffer + 3] - ld c, a - ldh a, [hMultiplicand + 1] - adc c - ldh [hMathBuffer + 3], a - - ldh a, [hMathBuffer + 2] - ld c, a - ldh a, [hMultiplicand + 0] - adc c - ldh [hMathBuffer + 2], a - - ldh a, [hMathBuffer + 1] - ld c, a - ldh a, [hProduct] - adc c - ldh [hMathBuffer + 1], a - -.next - dec b - jr z, .done - -; hMultiplicand <<= 1 - - ldh a, [hMultiplicand + 2] - add a - ldh [hMultiplicand + 2], a - - ldh a, [hMultiplicand + 1] - rla - ldh [hMultiplicand + 1], a - - ldh a, [hMultiplicand + 0] - rla - ldh [hMultiplicand + 0], a - - ldh a, [hProduct] - rla - ldh [hProduct], a - - jr .loop - -.done - ldh a, [hMathBuffer + 4] - ldh [hProduct + 3], a - - ldh a, [hMathBuffer + 3] - ldh [hProduct + 2], a - - ldh a, [hMathBuffer + 2] - ldh [hProduct + 1], a - - ldh a, [hMathBuffer + 1] - ldh [hProduct + 0], a - - ret - -_Divide:: ; 681d - xor a - ldh [hMathBuffer + 0], a - ldh [hMathBuffer + 1], a - ldh [hMathBuffer + 2], a - ldh [hMathBuffer + 3], a - ldh [hMathBuffer + 4], a - - ld a, 9 - ld e, a - -.loop - ldh a, [hMathBuffer + 0] - ld c, a - ldh a, [hDividend + 1] - sub c - ld d, a - - ldh a, [hDivisor] - ld c, a - ldh a, [hDividend + 0] - sbc c - jr c, .next - - ldh [hDividend + 0], a - - ld a, d - ldh [hDividend + 1], a - - ldh a, [hMathBuffer + 4] - inc a - ldh [hMathBuffer + 4], a - - jr .loop - -.next - ld a, b - cp 1 - jr z, .done - - ldh a, [hMathBuffer + 4] - add a - ldh [hMathBuffer + 4], a - - ldh a, [hMathBuffer + 3] - rla - ldh [hMathBuffer + 3], a - - ldh a, [hMathBuffer + 2] - rla - ldh [hMathBuffer + 2], a - - ldh a, [hMathBuffer + 1] - rla - ldh [hMathBuffer + 1], a - - dec e - jr nz, .next2 - - ld e, 8 - ldh a, [hMathBuffer + 0] - ldh [hDivisor], a - xor a - ldh [hMathBuffer + 0], a - - ldh a, [hDividend + 1] - ldh [hDividend + 0], a - - ldh a, [hDividend + 2] - ldh [hDividend + 1], a - - ldh a, [hDividend + 3] - ldh [hDividend + 2], a - -.next2 - ld a, e - cp 1 - jr nz, .okay - dec b - -.okay - ldh a, [hDivisor] - srl a - ldh [hDivisor], a - - ldh a, [hMathBuffer + 0] - rr a - ldh [hMathBuffer + 0], a - - jr .loop - -.done - ldh a, [hDividend + 1] - ldh [hDivisor], a - - ldh a, [hMathBuffer + 4] - ldh [hDividend + 3], a - - ldh a, [hMathBuffer + 3] - ldh [hDividend + 2], a - - ldh a, [hMathBuffer + 2] - ldh [hDividend + 1], a - - ldh a, [hMathBuffer + 1] - ldh [hDividend + 0], a - - ret |