summaryrefslogtreecommitdiff
path: root/engine/bcd.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/bcd.asm')
-rw-r--r--engine/bcd.asm43
1 files changed, 22 insertions, 21 deletions
diff --git a/engine/bcd.asm b/engine/bcd.asm
index a5322702..204c2e40 100644
--- a/engine/bcd.asm
+++ b/engine/bcd.asm
@@ -1,22 +1,22 @@
; divide hMoney by hDivideBCDDivisor
; return output in hDivideBCDQuotient (same as hDivideBCDDivisor)
; used only to halve player money upon losing a fight
-DivideBCDPredef:: ; f5a4 (3:75a4)
+DivideBCDPredef::
DivideBCDPredef2::
DivideBCDPredef3:: ; only used function
DivideBCDPredef4::
call GetPredefRegisters
-DivideBCD:: ; f5a8 (3:75a8)
+DivideBCD::
xor a
ld [hDivideBCDBuffer], a
ld [hDivideBCDBuffer + 1], a
ld [hDivideBCDBuffer + 2], a
ld d, $1
-.asm_f5b0
+.loop1
ld a, [hDivideBCDDivisor]
and $f0
- jr nz, .asm_f5e1
+ jr nz, .go
inc d
ld a, [hDivideBCDDivisor]
swap a
@@ -40,8 +40,9 @@ DivideBCD:: ; f5a8 (3:75a8)
ld a, [hDivideBCDDivisor + 2]
and $f0
ld [hDivideBCDDivisor + 2], a
- jr .asm_f5b0
-.asm_f5e1
+ jr .loop1
+
+.go
push de
push de
call DivideBCD_f686
@@ -51,7 +52,7 @@ DivideBCD:: ; f5a8 (3:75a8)
and $f0
ld [hDivideBCDBuffer], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -60,7 +61,7 @@ DivideBCD:: ; f5a8 (3:75a8)
or b
ld [hDivideBCDBuffer], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -70,7 +71,7 @@ DivideBCD:: ; f5a8 (3:75a8)
and $f0
ld [hDivideBCDBuffer + 1], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -79,7 +80,7 @@ DivideBCD:: ; f5a8 (3:75a8)
or b
ld [hDivideBCDBuffer + 1], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -89,7 +90,7 @@ DivideBCD:: ; f5a8 (3:75a8)
and $f0
ld [hDivideBCDBuffer + 2], a
dec d
- jr z, .asm_f642
+ jr z, .skip
push de
call DivideBCD_f65d
call DivideBCD_f686
@@ -97,7 +98,7 @@ DivideBCD:: ; f5a8 (3:75a8)
ld a, [hDivideBCDBuffer + 2]
or b
ld [hDivideBCDBuffer + 2], a
-.asm_f642
+.skip
ld a, [hDivideBCDBuffer]
ld [hDivideBCDQuotient], a
ld a, [hDivideBCDBuffer + 1]
@@ -109,15 +110,15 @@ DivideBCD:: ; f5a8 (3:75a8)
sub d
and a
ret z
-.asm_f654
+.loop2
push af
call DivideBCD_f65d
pop af
dec a
- jr nz, .asm_f654
+ jr nz, .loop2
ret
-DivideBCD_f65d: ; f65d (3:765d)
+DivideBCD_f65d:
ld a, [hDivideBCDDivisor + 2]
swap a
and $f
@@ -142,7 +143,7 @@ DivideBCD_f65d: ; f65d (3:765d)
ld [hDivideBCDDivisor], a
ret
-DivideBCD_f686: ; f686 (3:7686)
+DivideBCD_f686:
ld bc, $3
.asm_f689
ld de, hMoney
@@ -160,10 +161,10 @@ DivideBCD_f686: ; f686 (3:7686)
jr .asm_f689
-AddBCDPredef:: ; f6a3 (3:76a3)
+AddBCDPredef::
call GetPredefRegisters
-AddBCD:: ; f6a6 (3:76a6)
+AddBCD::
and a
ld b, c
.add
@@ -187,10 +188,10 @@ AddBCD:: ; f6a6 (3:76a6)
ret
-SubBCDPredef:: ; f6bc (3:76bc)
+SubBCDPredef::
call GetPredefRegisters
-SubBCD:: ; f6bf (3:76bf)
+SubBCD::
and a
ld b, c
.sub
@@ -212,4 +213,4 @@ SubBCD:: ; f6bf (3:76bf)
jr nz, .fill
scf
.done
- ret \ No newline at end of file
+ ret