ref: 61521f4458a06ae5e7b8c872ae1b48cb5dd9572c
parent: 55972bfb83780f597ab30fd1c42475a194f3f0d1
author: yenatch <[email protected]>
date: Wed Jun 4 12:21:10 EDT 2014
Comment PrintNum.
--- a/main.asm
+++ b/main.asm
@@ -8503,33 +8503,42 @@
ld [ScriptVar], a
jp CloseSRAM
+
_PrintNum:: ; c4c7
+; Print c digits of the b-byte value at hl.
+; Allows 2 to 7 digits. For 1-digit numbers, add
+; the value to char "0" instead of calling PrintNum.
+; Some extra flags can be given in bits 5-7 of b.
+
push bc
+
bit 5, b
- jr z, .asm_c4d9
+ jr z, .main
bit 7, b
- jr nz, .asm_c4d4
+ jr nz, .bit_7
bit 6, b
- jr z, .asm_c4d9
+ jr z, .main
-.asm_c4d4
+.bit_7
ld a, $f0
ld [hli], a
res 5, b
-.asm_c4d9
+.main
xor a
- ld [hProduct], a
- ld [hMultiplicand], a
+ ld [$ffb3], a
+ ld [$ffb4], a
ld [$ffb5], a
ld a, b
and $f
- cp $1
- jr z, .asm_c501
- cp $2
- jr z, .asm_c4f8
+ cp 1
+ jr z, .byte
+ cp 2
+ jr z, .word
+
+.long
ld a, [de]
- ld [hMultiplicand], a
+ ld [$ffb4], a
inc de
ld a, [de]
ld [$ffb5], a
@@ -8536,22 +8545,23 @@
inc de
ld a, [de]
ld [$ffb6], a
- jr .asm_c504
+ jr .start
-.asm_c4f8
+.word
ld a, [de]
ld [$ffb5], a
inc de
ld a, [de]
ld [$ffb6], a
- jr .asm_c504
+ jr .start
-.asm_c501
+.byte
ld a, [de]
ld [$ffb6], a
-.asm_c504
+.start
push de
+
ld d, b
ld a, c
swap a
@@ -8560,123 +8570,126 @@
ld a, c
and $f
ld b, a
- ld c, $0
- cp $2
- jr z, .asm_c57c
- cp $3
- jr z, .asm_c56c
- cp $4
- jr z, .asm_c55b
- cp $5
- jr z, .asm_c54a
- cp $6
- jr z, .asm_c538
- ld a, $f
- ld [hMultiplier], a
- ld a, $42
- ld [hMathBuffer], a
- ld a, $40
+ ld c, 0
+ cp 2
+ jr z, .two
+ cp 3
+ jr z, .three
+ cp 4
+ jr z, .four
+ cp 5
+ jr z, .five
+ cp 6
+ jr z, .six
+
+.seven
+ ld a, 1000000 / $10000 % $100
+ ld [$ffb7], a
+ ld a, 1000000 / $100 % $100
+ ld [$ffb8], a
+ ld a, 1000000 % $100
ld [$ffb9], a
- call Functionc5cb
- call PrintNumber_AdvancePointer
+ call .PrintDigit
+ call .AdvancePointer
-.asm_c538
- ld a, $1
- ld [hMultiplier], a
- ld a, $86
- ld [hMathBuffer], a
- ld a, $a0
+.six
+ ld a, 100000 / $10000 % $100
+ ld [$ffb7], a
+ ld a, 100000 / $100 % $100
+ ld [$ffb8], a
+ ld a, 100000 % $100
ld [$ffb9], a
- call Functionc5cb
- call PrintNumber_AdvancePointer
+ call .PrintDigit
+ call .AdvancePointer
-.asm_c54a
+.five
xor a
- ld [hMultiplier], a
- ld a, $27
- ld [hMathBuffer], a
- ld a, $10
+ ld [$ffb7], a
+ ld a, 10000 / $100
+ ld [$ffb8], a
+ ld a, 10000 % $100
ld [$ffb9], a
- call Functionc5cb
- call PrintNumber_AdvancePointer
+ call .PrintDigit
+ call .AdvancePointer
-.asm_c55b
+.four
xor a
- ld [hMultiplier], a
- ld a, $3
- ld [hMathBuffer], a
- ld a, $e8
+ ld [$ffb7], a
+ ld a, 1000 / $100
+ ld [$ffb8], a
+ ld a, 1000 % $100
ld [$ffb9], a
- call Functionc5cb
- call PrintNumber_AdvancePointer
+ call .PrintDigit
+ call .AdvancePointer
-.asm_c56c
+.three
xor a
- ld [hMultiplier], a
+ ld [$ffb7], a
xor a
- ld [hMathBuffer], a
- ld a, $64
+ ld [$ffb8], a
+ ld a, 100
ld [$ffb9], a
- call Functionc5cb
- call PrintNumber_AdvancePointer
+ call .PrintDigit
+ call .AdvancePointer
-.asm_c57c
+.two
dec e
jr nz, .asm_c583
ld a, $f6
- ld [hProduct], a
-
+ ld [$ffb3], a
.asm_c583
- ld c, $0
+
+ ld c, 0
ld a, [$ffb6]
-.asm_c587
- cp $a
- jr c, .asm_c590
- sub $a
+.mod_10
+ cp 10
+ jr c, .modded_10
+ sub 10
inc c
- jr .asm_c587
+ jr .mod_10
+.modded_10
-.asm_c590
ld b, a
- ld a, [hProduct]
+ ld a, [$ffb3]
or c
jr nz, .asm_c59b
- call PrintNumber_PrintLeadingZero
+ call .PrintLeadingZero
jr .asm_c5ad
.asm_c59b
- call Functionc5ba
+ call .PrintYen
push af
- ld a, $f6
+ ld a, "0"
add c
ld [hl], a
pop af
- ld [hProduct], a
+ ld [$ffb3], a
inc e
dec e
jr nz, .asm_c5ad
inc hl
- ld [hl], $f2
+ ld [hl], $f2 ; XXX
.asm_c5ad
- call PrintNumber_AdvancePointer
- call Functionc5ba
- ld a, $f6
+ call .AdvancePointer
+ call .PrintYen
+ ld a, "0"
add b
ld [hli], a
+
pop de
pop bc
ret
; c5ba
-Functionc5ba: ; c5ba
+.PrintYen: ; c5ba
push af
- ld a, [hProduct]
+ ld a, [$ffb3]
and a
jr nz, .asm_c5c9
bit 5, d
jr z, .asm_c5c9
- ld a, $f0
+ ld a, "¥"
ld [hli], a
res 5, d
@@ -8685,76 +8698,72 @@
ret
; c5cb
-
-; known jump sources: c532 (3:4532), c544 (3:4544), c555 (3:4555), c566 (3:4566), c576 (3:4576)
-Functionc5cb: ; c5cb (3:45cb)
+.PrintDigit: ; c5cb (3:45cb)
dec e
- jr nz, PrintNumber_PrintDigit
+ jr nz, .ok
ld a, $f6
- ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
-
-; known jump sources: c5cc (3:45cc)
-PrintNumber_PrintDigit: ; c5d2 (3:45d2)
+ ld [$ffb3], a
+.ok
ld c, $0
.asm_c5d4
- ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier)
+ ld a, [$ffb7]
ld b, a
- ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand)
- ld [$FF00+$ba], a
+ ld a, [$ffb4]
+ ld [$ffba], a
cp b
jr c, .asm_c624
sub b
- ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
- ld a, [hMathBuffer] ; $ff00+$b8
+ ld [$ffb4], a
+ ld a, [$ffb8]
ld b, a
- ld a, [$FF00+$b5]
- ld [$FF00+$bb], a
+ ld a, [$ffb5]
+ ld [$ffbb], a
cp b
jr nc, .asm_c5f6
- ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand)
+ ld a, [$ffb4]
or $0
jr z, .asm_c620
dec a
- ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
- ld a, [$FF00+$b5]
+ ld [$ffb4], a
+ ld a, [$ffb5]
.asm_c5f6
sub b
- ld [$FF00+$b5], a
- ld a, [$FF00+$b9]
+ ld [$ffb5], a
+ ld a, [$ffb9]
ld b, a
- ld a, [$FF00+$b6]
- ld [$FF00+$bc], a
+ ld a, [$ffb6]
+ ld [$ffbc], a
cp b
jr nc, .asm_c616
- ld a, [$FF00+$b5]
+ ld a, [$ffb5]
and a
jr nz, .asm_c611
- ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand)
+ ld a, [$ffb4]
and a
jr z, .asm_c61c
dec a
- ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
+ ld [$ffb4], a
xor a
.asm_c611
dec a
- ld [$FF00+$b5], a
- ld a, [$FF00+$b6]
+ ld [$ffb5], a
+ ld a, [$ffb6]
.asm_c616
sub b
- ld [$FF00+$b6], a
+ ld [$ffb6], a
inc c
jr .asm_c5d4
.asm_c61c
- ld a, [$FF00+$bb]
- ld [$FF00+$b5], a
+ ld a, [$ffbb]
+ ld [$ffb5], a
.asm_c620
- ld a, [$FF00+$ba]
- ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
+ ld a, [$ffba]
+ ld [$ffb4], a
.asm_c624
- ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld a, [$ffb3]
or c
- jr z, PrintNumber_PrintLeadingZero
- ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct)
+ jr z, .PrintLeadingZero
+ ld a, [$ffb3]
and a
jr nz, .asm_c637
bit 5, d
@@ -8766,7 +8775,7 @@
ld a, $f6
add c
ld [hl], a
- ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld [$ffb3], a
inc e
dec e
ret nz
@@ -8774,7 +8783,7 @@
ld [hl], $f2
ret
-PrintNumber_PrintLeadingZero: ; c644
+.PrintLeadingZero: ; c644
; prints a leading zero unless they are turned off in the flags
bit 7, d ; print leading zeroes?
ret z
@@ -8781,42 +8790,44 @@
ld [hl], "0"
ret
-PrintNumber_AdvancePointer: ; c64a
+.AdvancePointer: ; c64a
; increments the pointer unless leading zeroes are not being printed,
; the number is left-aligned, and no nonzero digits have been printed yet
bit 7, d ; print leading zeroes?
- jr nz, .incrementPointer
+ jr nz, .inc
bit 6, d ; left alignment or right alignment?
- jr z, .incrementPointer
- ld a, [hPastLeadingZeroes]
+ jr z, .inc
+ ld a, [$ffb3]
and a
ret z
-.incrementPointer
+.inc
inc hl
ret
-; 0xc658
+; c658
+
Functionc658: ; c658
xor a
ld [CurPartyMon], a
ld hl, PartySpecies
-.asm_c65f
+.loop
ld a, [hli]
cp $ff
- jr z, .asm_c676
- cp $fd
- jr z, .asm_c66d
+ jr z, .done
+ cp EGG
+ jr z, .next
+
push hl
call Functionc677
pop hl
-.asm_c66d
+.next
ld a, [CurPartyMon]
inc a
ld [CurPartyMon], a
- jr .asm_c65f
+ jr .loop
-.asm_c676
+.done
ret
; c677
@@ -44727,7 +44738,7 @@
; known jump sources: 397d0 (e:57d0)
Function3991b: ; 3991b (e:591b)
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld hl, $ffb3
xor a
ld [hli], a
ld [hli], a
@@ -51173,10 +51184,10 @@
; known jump sources: 48d40 (12:4d40), 48d46 (12:4d46)
Function48d94: ; 48d94 (12:4d94)
xor a
- ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld [$ffb3], a
ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
ld a, [hli]
- ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld [$ffb3], a
ld a, [hl]
ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
ld a, 100
@@ -106119,7 +106130,7 @@
ld a, [$FF00+$bb]
cp $2
jr z, Function104b22
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld hl, $ffb3
ld b, $1
call Function104d56
jr nz, .asm_104ac8
@@ -106197,7 +106208,7 @@
; known jump sources: 104b04 (41:4b04), 104b2e (41:4b2e)
Function104b40: ; 104b40 (41:4b40)
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld hl, $ffb3
ld b, $1
call Function104d56
ret nz
@@ -106208,14 +106219,14 @@
ld a, [$FF00+$bc]
cp $6c
ret nz
- ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld a, [$ffb3]
cp $96
jp nz, Function104d32
ld a, $90
- ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld [$ffb3], a
call Function104d38
ret nz
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld hl, $ffb3
ld b, $1
call Function104d4e
ret nz
@@ -106238,8 +106249,8 @@
; known jump sources: 104b10 (41:4b10), 104b22 (41:4b22)
Function104b88: ; 104b88 (41:4b88)
ld a, $96
- ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld [$ffb3], a
+ ld hl, $ffb3
ld b, $1
call Function104d4e
ret nz
@@ -106249,7 +106260,7 @@
ret nz
call Function104d43
ret nz
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld hl, $ffb3
ld b, $1
call Function104d56
ret nz
@@ -106257,7 +106268,7 @@
ld a, [$FF00+$bc]
cp $6c
ret nz
- ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld a, [$ffb3]
cp $90
jp nz, Function104d32
call Function104d38
@@ -106358,7 +106369,7 @@
; known jump sources: 104c4e (41:4c4e), 104c78 (41:4c78)
Function104c8a: ; 104c8a (41:4c8a)
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld hl, $ffb3
ld b, $1
call Function104d56
ret nz
@@ -106366,14 +106377,14 @@
ld a, [$FF00+$bc]
cp $6c
ret nz
- ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld a, [$ffb3]
cp $3c
jp nz, Function104d32
swap a
- ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld [$ffb3], a
call Function104d38
ret nz
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld hl, $ffb3
ld b, $1
call Function104d4e
ret nz
@@ -106396,8 +106407,8 @@
; known jump sources: 104c5a (41:4c5a), 104c6c (41:4c6c)
Function104cd2: ; 104cd2 (41:4cd2)
ld a, $3c
- ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld [$ffb3], a
+ ld hl, $ffb3
ld b, $1
call Function104d4e
ret nz
@@ -106407,7 +106418,7 @@
ret nz
call Function104d43
ret nz
- ld hl, hPastLeadingZeroes ; $ffb3 (aliases: hDividend, hProduct)
+ ld hl, $ffb3
ld b, $1
call Function104d56
ret nz
@@ -106415,7 +106426,7 @@
ld a, [$FF00+$bc]
cp $6c
ret nz
- ld a, [hPastLeadingZeroes] ; $ff00+$b3 (aliases: hDividend, hProduct)
+ ld a, [$ffb3]
swap a
cp $3c
jp nz, Function104d32