summaryrefslogtreecommitdiff
path: root/engine/math
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2018-08-25 22:23:45 -0400
committerGitHub <noreply@github.com>2018-08-25 22:23:45 -0400
commit3eacab563d0e1ab5557c2443556a7a5e58d14cad (patch)
tree3d747166409fdc94f0fd1aa760693a7ee5bd2156 /engine/math
parent89681d231611938a791f4256e602c88c2f9aa3e1 (diff)
parentb2adcd6d6ff91efc764a6ecc65147be7b9cda9e8 (diff)
Merge pull request #555 from Rangi42/ldh
Use real labels for HRAM instead of constants, and the ldh instruction
Diffstat (limited to 'engine/math')
-rw-r--r--engine/math/math.asm158
-rw-r--r--engine/math/print_num.asm116
2 files changed, 137 insertions, 137 deletions
diff --git a/engine/math/math.asm b/engine/math/math.asm
index c2e5f70a3..18aa042ed 100644
--- a/engine/math/math.asm
+++ b/engine/math/math.asm
@@ -4,41 +4,41 @@ _Multiply::
ld b, a
xor a
- ld [hProduct], a
- ld [hMathBuffer + 1], a
- ld [hMathBuffer + 2], a
- ld [hMathBuffer + 3], a
- ld [hMathBuffer + 4], a
+ ldh [hProduct], a
+ ldh [hMathBuffer + 1], a
+ ldh [hMathBuffer + 2], a
+ ldh [hMathBuffer + 3], a
+ ldh [hMathBuffer + 4], a
.loop
- ld a, [hMultiplier]
+ ldh a, [hMultiplier]
srl a
- ld [hMultiplier], a
+ ldh [hMultiplier], a
jr nc, .next
- ld a, [hMathBuffer + 4]
+ ldh a, [hMathBuffer + 4]
ld c, a
- ld a, [hMultiplicand + 2]
+ ldh a, [hMultiplicand + 2]
add c
- ld [hMathBuffer + 4], a
+ ldh [hMathBuffer + 4], a
- ld a, [hMathBuffer + 3]
+ ldh a, [hMathBuffer + 3]
ld c, a
- ld a, [hMultiplicand + 1]
+ ldh a, [hMultiplicand + 1]
adc c
- ld [hMathBuffer + 3], a
+ ldh [hMathBuffer + 3], a
- ld a, [hMathBuffer + 2]
+ ldh a, [hMathBuffer + 2]
ld c, a
- ld a, [hMultiplicand + 0]
+ ldh a, [hMultiplicand + 0]
adc c
- ld [hMathBuffer + 2], a
+ ldh [hMathBuffer + 2], a
- ld a, [hMathBuffer + 1]
+ ldh a, [hMathBuffer + 1]
ld c, a
- ld a, [hProduct]
+ ldh a, [hProduct]
adc c
- ld [hMathBuffer + 1], a
+ ldh [hMathBuffer + 1], a
.next
dec b
@@ -46,71 +46,71 @@ _Multiply::
; hMultiplicand <<= 1
- ld a, [hMultiplicand + 2]
+ ldh a, [hMultiplicand + 2]
add a
- ld [hMultiplicand + 2], a
+ ldh [hMultiplicand + 2], a
- ld a, [hMultiplicand + 1]
+ ldh a, [hMultiplicand + 1]
rla
- ld [hMultiplicand + 1], a
+ ldh [hMultiplicand + 1], a
- ld a, [hMultiplicand + 0]
+ ldh a, [hMultiplicand + 0]
rla
- ld [hMultiplicand + 0], a
+ ldh [hMultiplicand + 0], a
- ld a, [hProduct]
+ ldh a, [hProduct]
rla
- ld [hProduct], a
+ ldh [hProduct], a
jr .loop
.done
- ld a, [hMathBuffer + 4]
- ld [hProduct + 3], a
+ ldh a, [hMathBuffer + 4]
+ ldh [hProduct + 3], a
- ld a, [hMathBuffer + 3]
- ld [hProduct + 2], a
+ ldh a, [hMathBuffer + 3]
+ ldh [hProduct + 2], a
- ld a, [hMathBuffer + 2]
- ld [hProduct + 1], a
+ ldh a, [hMathBuffer + 2]
+ ldh [hProduct + 1], a
- ld a, [hMathBuffer + 1]
- ld [hProduct + 0], a
+ ldh a, [hMathBuffer + 1]
+ ldh [hProduct + 0], a
ret
_Divide::
xor a
- ld [hMathBuffer + 0], a
- ld [hMathBuffer + 1], a
- ld [hMathBuffer + 2], a
- ld [hMathBuffer + 3], a
- ld [hMathBuffer + 4], 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
- ld a, [hMathBuffer + 0]
+ ldh a, [hMathBuffer + 0]
ld c, a
- ld a, [hDividend + 1]
+ ldh a, [hDividend + 1]
sub c
ld d, a
- ld a, [hDivisor]
+ ldh a, [hDivisor]
ld c, a
- ld a, [hDividend + 0]
+ ldh a, [hDividend + 0]
sbc c
jr c, .next
- ld [hDividend + 0], a
+ ldh [hDividend + 0], a
ld a, d
- ld [hDividend + 1], a
+ ldh [hDividend + 1], a
- ld a, [hMathBuffer + 4]
+ ldh a, [hMathBuffer + 4]
inc a
- ld [hMathBuffer + 4], a
+ ldh [hMathBuffer + 4], a
jr .loop
@@ -119,39 +119,39 @@ _Divide::
cp 1
jr z, .done
- ld a, [hMathBuffer + 4]
+ ldh a, [hMathBuffer + 4]
add a
- ld [hMathBuffer + 4], a
+ ldh [hMathBuffer + 4], a
- ld a, [hMathBuffer + 3]
+ ldh a, [hMathBuffer + 3]
rla
- ld [hMathBuffer + 3], a
+ ldh [hMathBuffer + 3], a
- ld a, [hMathBuffer + 2]
+ ldh a, [hMathBuffer + 2]
rla
- ld [hMathBuffer + 2], a
+ ldh [hMathBuffer + 2], a
- ld a, [hMathBuffer + 1]
+ ldh a, [hMathBuffer + 1]
rla
- ld [hMathBuffer + 1], a
+ ldh [hMathBuffer + 1], a
dec e
jr nz, .next2
ld e, 8
- ld a, [hMathBuffer + 0]
- ld [hDivisor], a
+ ldh a, [hMathBuffer + 0]
+ ldh [hDivisor], a
xor a
- ld [hMathBuffer + 0], a
+ ldh [hMathBuffer + 0], a
- ld a, [hDividend + 1]
- ld [hDividend + 0], a
+ ldh a, [hDividend + 1]
+ ldh [hDividend + 0], a
- ld a, [hDividend + 2]
- ld [hDividend + 1], a
+ ldh a, [hDividend + 2]
+ ldh [hDividend + 1], a
- ld a, [hDividend + 3]
- ld [hDividend + 2], a
+ ldh a, [hDividend + 3]
+ ldh [hDividend + 2], a
.next2
ld a, e
@@ -160,30 +160,30 @@ _Divide::
dec b
.okay
- ld a, [hDivisor]
+ ldh a, [hDivisor]
srl a
- ld [hDivisor], a
+ ldh [hDivisor], a
- ld a, [hMathBuffer + 0]
+ ldh a, [hMathBuffer + 0]
rr a
- ld [hMathBuffer + 0], a
+ ldh [hMathBuffer + 0], a
jr .loop
.done
- ld a, [hDividend + 1]
- ld [hDivisor], a
+ ldh a, [hDividend + 1]
+ ldh [hDivisor], a
- ld a, [hMathBuffer + 4]
- ld [hDividend + 3], a
+ ldh a, [hMathBuffer + 4]
+ ldh [hDividend + 3], a
- ld a, [hMathBuffer + 3]
- ld [hDividend + 2], a
+ ldh a, [hMathBuffer + 3]
+ ldh [hDividend + 2], a
- ld a, [hMathBuffer + 2]
- ld [hDividend + 1], a
+ ldh a, [hMathBuffer + 2]
+ ldh [hDividend + 1], a
- ld a, [hMathBuffer + 1]
- ld [hDividend + 0], a
+ ldh a, [hMathBuffer + 1]
+ ldh [hDividend + 0], a
ret
diff --git a/engine/math/print_num.asm b/engine/math/print_num.asm
index c8899be6c..fce3c9027 100644
--- a/engine/math/print_num.asm
+++ b/engine/math/print_num.asm
@@ -23,9 +23,9 @@ _PrintNum::
.main
xor a
- ld [hPrintNum1], a
- ld [hPrintNum2], a
- ld [hPrintNum3], a
+ ldh [hPrintNumBuffer + 0], a
+ ldh [hPrintNumBuffer + 1], a
+ ldh [hPrintNumBuffer + 2], a
ld a, b
and $f
cp 1
@@ -35,26 +35,26 @@ _PrintNum::
; maximum 3 bytes
.long
ld a, [de]
- ld [hPrintNum2], a
+ ldh [hPrintNumBuffer + 1], a
inc de
ld a, [de]
- ld [hPrintNum3], a
+ ldh [hPrintNumBuffer + 2], a
inc de
ld a, [de]
- ld [hPrintNum4], a
+ ldh [hPrintNumBuffer + 3], a
jr .start
.word
ld a, [de]
- ld [hPrintNum3], a
+ ldh [hPrintNumBuffer + 2], a
inc de
ld a, [de]
- ld [hPrintNum4], a
+ ldh [hPrintNumBuffer + 3], a
jr .start
.byte
ld a, [de]
- ld [hPrintNum4], a
+ ldh [hPrintNumBuffer + 3], a
.start
push de
@@ -81,51 +81,51 @@ _PrintNum::
.seven
ld a, HIGH(1000000 >> 8)
- ld [hPrintNum5], a
+ ldh [hPrintNumBuffer + 4], a
ld a, HIGH(1000000) ; mid
- ld [hPrintNum6], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(1000000)
- ld [hPrintNum7], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
.six
ld a, HIGH(100000 >> 8)
- ld [hPrintNum5], a
+ ldh [hPrintNumBuffer + 4], a
ld a, HIGH(100000) ; mid
- ld [hPrintNum6], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(100000)
- ld [hPrintNum7], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
.five
xor a ; HIGH(10000 >> 8)
- ld [hPrintNum5], a
+ ldh [hPrintNumBuffer + 4], a
ld a, HIGH(10000) ; mid
- ld [hPrintNum6], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(10000)
- ld [hPrintNum7], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
.four
xor a ; HIGH(1000 >> 8)
- ld [hPrintNum5], a
+ ldh [hPrintNumBuffer + 4], a
ld a, HIGH(1000) ; mid
- ld [hPrintNum6], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(1000)
- ld [hPrintNum7], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
.three
xor a ; HIGH(100 >> 8)
- ld [hPrintNum5], a
+ ldh [hPrintNumBuffer + 4], a
xor a ; HIGH(100) ; mid
- ld [hPrintNum6], a
+ ldh [hPrintNumBuffer + 5], a
ld a, LOW(100)
- ld [hPrintNum7], a
+ ldh [hPrintNumBuffer + 6], a
call .PrintDigit
call .AdvancePointer
@@ -133,11 +133,11 @@ _PrintNum::
dec e
jr nz, .two_skip
ld a, "0"
- ld [hPrintNum1], a
+ ldh [hPrintNumBuffer + 0], a
.two_skip
ld c, 0
- ld a, [hPrintNum4]
+ ldh a, [hPrintNumBuffer + 3]
.mod_10
cp 10
jr c, .modded_10
@@ -147,7 +147,7 @@ _PrintNum::
.modded_10
ld b, a
- ld a, [hPrintNum1]
+ ldh a, [hPrintNumBuffer + 0]
or c
jr nz, .money
call .PrintLeadingZero
@@ -160,7 +160,7 @@ _PrintNum::
add c
ld [hl], a
pop af
- ld [hPrintNum1], a
+ ldh [hPrintNumBuffer + 0], a
inc e
dec e
jr nz, .money_leading_zero
@@ -180,7 +180,7 @@ _PrintNum::
.PrintYen:
push af
- ld a, [hPrintNum1]
+ ldh a, [hPrintNumBuffer + 0]
and a
jr nz, .stop
bit 5, d
@@ -197,68 +197,68 @@ _PrintNum::
dec e
jr nz, .ok
ld a, "0"
- ld [hPrintNum1], a
+ ldh [hPrintNumBuffer + 0], a
.ok
ld c, 0
.loop
- ld a, [hPrintNum5]
+ ldh a, [hPrintNumBuffer + 4]
ld b, a
- ld a, [hPrintNum2]
- ld [hPrintNum8], a
+ ldh a, [hPrintNumBuffer + 1]
+ ldh [hPrintNumBuffer + 7], a
cp b
jr c, .skip1
sub b
- ld [hPrintNum2], a
- ld a, [hPrintNum6]
+ ldh [hPrintNumBuffer + 1], a
+ ldh a, [hPrintNumBuffer + 5]
ld b, a
- ld a, [hPrintNum3]
- ld [hPrintNum9], a
+ ldh a, [hPrintNumBuffer + 2]
+ ldh [hPrintNumBuffer + 8], a
cp b
jr nc, .skip2
- ld a, [hPrintNum2]
+ ldh a, [hPrintNumBuffer + 1]
or 0
jr z, .skip3
dec a
- ld [hPrintNum2], a
- ld a, [hPrintNum3]
+ ldh [hPrintNumBuffer + 1], a
+ ldh a, [hPrintNumBuffer + 2]
.skip2
sub b
- ld [hPrintNum3], a
- ld a, [hPrintNum7]
+ ldh [hPrintNumBuffer + 2], a
+ ldh a, [hPrintNumBuffer + 6]
ld b, a
- ld a, [hPrintNum4]
- ld [hPrintNum10], a
+ ldh a, [hPrintNumBuffer + 3]
+ ldh [hPrintNumBuffer + 9], a
cp b
jr nc, .skip4
- ld a, [hPrintNum3]
+ ldh a, [hPrintNumBuffer + 2]
and a
jr nz, .skip5
- ld a, [hPrintNum2]
+ ldh a, [hPrintNumBuffer + 1]
and a
jr z, .skip6
dec a
- ld [hPrintNum2], a
+ ldh [hPrintNumBuffer + 1], a
xor a
.skip5
dec a
- ld [hPrintNum3], a
- ld a, [hPrintNum4]
+ ldh [hPrintNumBuffer + 2], a
+ ldh a, [hPrintNumBuffer + 3]
.skip4
sub b
- ld [hPrintNum4], a
+ ldh [hPrintNumBuffer + 3], a
inc c
jr .loop
.skip6
- ld a, [hPrintNum9]
- ld [hPrintNum3], a
+ ldh a, [hPrintNumBuffer + 8]
+ ldh [hPrintNumBuffer + 2], a
.skip3
- ld a, [hPrintNum8]
- ld [hPrintNum2], a
+ ldh a, [hPrintNumBuffer + 7]
+ ldh [hPrintNumBuffer + 1], a
.skip1
- ld a, [hPrintNum1]
+ ldh a, [hPrintNumBuffer + 0]
or c
jr z, .PrintLeadingZero
- ld a, [hPrintNum1]
+ ldh a, [hPrintNumBuffer + 0]
and a
jr nz, .done
bit 5, d
@@ -270,7 +270,7 @@ _PrintNum::
ld a, "0"
add c
ld [hl], a
- ld [hPrintNum1], a
+ ldh [hPrintNumBuffer + 0], a
inc e
dec e
ret nz
@@ -292,7 +292,7 @@ _PrintNum::
jr nz, .inc
bit 6, d ; left alignment or right alignment?
jr z, .inc
- ld a, [hPrintNum1]
+ ldh a, [hPrintNumBuffer + 0]
and a
ret z
.inc