ref: ec3f279d53fba86e759eb0baa02b03e5303da95a
parent: 993eecdc4a931dde7c5c487fba5d79f548866030
author: yenatch <[email protected]>
date: Thu May 2 18:45:34 EDT 2013
SimpleMultiply and SimpleDivide
--- a/main.asm
+++ b/main.asm
@@ -2699,7 +2699,7 @@
ld b, a
push bc
.asm_2fbb
- call $2f8c
+ call RNG
ld a, [hRandomAdd]
ld c, a
add b
@@ -2706,7 +2706,7 @@
jr c, .asm_2fbb
ld a, c
pop bc
- call $3110
+ call SimpleDivide
pop bc
ret
; 2fcb
@@ -2933,7 +2933,34 @@
; 0x3105
-INCBIN "baserom.gbc", $3105, $3119 - $3105
+SimpleMultiply: ; 3105
+; Return a * c.
+ and a
+ ret z
+
+ push bc
+ ld b, a
+ xor a
+.loop
+ add c
+ dec b
+ jr nz, .loop
+ pop bc
+ ret
+; 3110
+
+
+SimpleDivide: ; 3110
+; Divide a by c. Return quotient b and remainder a.
+ ld b, 0
+.loop
+ inc b
+ sub c
+ jr nc, .loop
+ dec b
+ add c
+ ret
+; 3119
Multiply: ; 3119