diff options
author | mid-kid <esteve.varela@gmail.com> | 2018-03-25 18:24:14 +0200 |
---|---|---|
committer | mid-kid <esteve.varela@gmail.com> | 2018-03-25 18:24:14 +0200 |
commit | be76ee56a89e72c0b87a605321bb1670e86f8220 (patch) | |
tree | 277ffa2bc094e74b27ec5b72f748b93e58b3437f /engine/routines/math.asm | |
parent | 0d9241889fc8a2f047b9fd6db25e55de1e721877 (diff) |
Organize the engine/ directory, director's cut
Cleaned up `engine/routines`, in favor of moving files into more
appropriate directories. predef-related routines are now in top-level
`engine`.
`rtc/delete_save_change_clock.asm` has been split into both
`menus/delete_save.asm` and `rtc/reset_password.asm`.
Made a new subdirectory:
* engine/math: Contains all generic math-related routines.
Diffstat (limited to 'engine/routines/math.asm')
-rwxr-xr-x | engine/routines/math.asm | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/engine/routines/math.asm b/engine/routines/math.asm deleted file mode 100755 index 0cd6b0b47..000000000 --- a/engine/routines/math.asm +++ /dev/null @@ -1,196 +0,0 @@ -_Multiply:: ; 66de - -; hMultiplier is one byte. - ld a, 8 - ld b, a - - xor a - ld [hProduct], a - ld [hMathBuffer + 1], a - ld [hMathBuffer + 2], a - ld [hMathBuffer + 3], a - ld [hMathBuffer + 4], a - - -.loop - ld a, [hMultiplier] - srl a - ld [hMultiplier], a - jr nc, .next - - ld a, [hMathBuffer + 4] - ld c, a - ld a, [hMultiplicand + 2] - add c - ld [hMathBuffer + 4], a - - ld a, [hMathBuffer + 3] - ld c, a - ld a, [hMultiplicand + 1] - adc c - ld [hMathBuffer + 3], a - - ld a, [hMathBuffer + 2] - ld c, a - ld a, [hMultiplicand + 0] - adc c - ld [hMathBuffer + 2], a - - ld a, [hMathBuffer + 1] - ld c, a - ld a, [hProduct] - adc c - ld [hMathBuffer + 1], a - -.next - dec b - jr z, .done - - -; hMultiplicand <<= 1 - - ld a, [hMultiplicand + 2] - add a - ld [hMultiplicand + 2], a - - ld a, [hMultiplicand + 1] - rla - ld [hMultiplicand + 1], a - - ld a, [hMultiplicand + 0] - rla - ld [hMultiplicand + 0], a - - ld a, [hProduct] - rla - ld [hProduct], a - - jr .loop - - -.done - ld a, [hMathBuffer + 4] - ld [hProduct + 3], a - - ld a, [hMathBuffer + 3] - ld [hProduct + 2], a - - ld a, [hMathBuffer + 2] - ld [hProduct + 1], a - - ld a, [hMathBuffer + 1] - ld [hProduct + 0], a - - ret -; 673e - - -_Divide:: ; 673e - xor a - ld [hMathBuffer + 0], a - ld [hMathBuffer + 1], a - ld [hMathBuffer + 2], a - ld [hMathBuffer + 3], a - ld [hMathBuffer + 4], a - - ld a, 9 - ld e, a - -.loop - ld a, [hMathBuffer + 0] - ld c, a - ld a, [hDividend + 1] - sub c - ld d, a - - ld a, [hDivisor] - ld c, a - ld a, [hDividend + 0] - sbc c - jr c, .next - - ld [hDividend + 0], a - - ld a, d - ld [hDividend + 1], a - - ld a, [hMathBuffer + 4] - inc a - ld [hMathBuffer + 4], a - - jr .loop - -.next - ld a, b - cp 1 - jr z, .done - - ld a, [hMathBuffer + 4] - add a - ld [hMathBuffer + 4], a - - ld a, [hMathBuffer + 3] - rla - ld [hMathBuffer + 3], a - - ld a, [hMathBuffer + 2] - rla - ld [hMathBuffer + 2], a - - ld a, [hMathBuffer + 1] - rla - ld [hMathBuffer + 1], a - - dec e - jr nz, .next2 - - ld e, 8 - ld a, [hMathBuffer + 0] - ld [hDivisor], a - xor a - ld [hMathBuffer + 0], a - - ld a, [hDividend + 1] - ld [hDividend + 0], a - - ld a, [hDividend + 2] - ld [hDividend + 1], a - - ld a, [hDividend + 3] - ld [hDividend + 2], a - -.next2 - ld a, e - cp 1 - jr nz, .okay - dec b - -.okay - ld a, [hDivisor] - srl a - ld [hDivisor], a - - ld a, [hMathBuffer + 0] - rr a - ld [hMathBuffer + 0], a - - jr .loop - -.done - ld a, [hDividend + 1] - ld [hDivisor], a - - ld a, [hMathBuffer + 4] - ld [hDividend + 3], a - - ld a, [hMathBuffer + 3] - ld [hDividend + 2], a - - ld a, [hMathBuffer + 2] - ld [hDividend + 1], a - - ld a, [hMathBuffer + 1] - ld [hDividend + 0], a - - ret -; 67c1 |