shithub: pokecrystal

Download patch

ref: 53b7926f5e2c06384f228dccd03c70c960ae16b0
parent: ee04a2fcd9c0da06f8d960c4627d6d2276e7de23
author: yenatch <yenatch@gmail.com>
date: Sun Sep 8 21:21:36 EDT 2013

move multiplication/division functions into common/math.asm

--- /dev/null
+++ b/common/math.asm
@@ -1,0 +1,76 @@
+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
+; Multiply hMultiplicand (3 bytes) by hMultiplier. Result in hProduct.
+; All values are big endian.
+	push hl
+	push bc
+
+	callab _Multiply
+
+	pop bc
+	pop hl
+	ret
+; 3124
+
+
+Divide: ; 3124
+; Divide hDividend length b (max 4 bytes) by hDivisor. Result in hQuotient.
+; All values are big endian.
+	push hl
+	push de
+	push bc
+	ld a, [hROMBank]
+	push af
+	ld a, BANK(_Divide)
+	rst Bankswitch
+
+	call _Divide
+
+	pop af
+	rst Bankswitch
+	pop bc
+	pop de
+	pop hl
+	ret
+; 3136
+
+
+SubtractSigned: ; 3136
+; Return a - b, sign in carry.
+	sub b
+	ret nc
+	cpl
+	add 1
+	scf
+	ret
+; 313d
+
--- a/main.asm
+++ b/main.asm
@@ -861,81 +861,7 @@
 ; 0x3105
 
 
-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
-; Multiply hMultiplicand (3 bytes) by hMultiplier. Result in hProduct.
-; All values are big endian.
-	push hl
-	push bc
-
-	callab _Multiply
-
-	pop bc
-	pop hl
-	ret
-; 3124
-
-
-Divide: ; 3124
-; Divide hDividend length b (max 4 bytes) by hDivisor. Result in hQuotient.
-; All values are big endian.
-	push hl
-	push de
-	push bc
-	ld a, [hROMBank]
-	push af
-	ld a, BANK(_Divide)
-	rst Bankswitch
-
-	call _Divide
-
-	pop af
-	rst Bankswitch
-	pop bc
-	pop de
-	pop hl
-	ret
-; 3136
-
-
-SubtractSigned: ; 3136
-; Return a - b, sign in carry.
-	sub b
-	ret nc
-	cpl
-	add 1
-	scf
-	ret
-; 313d
+INCLUDE "common/math.asm"
 
 
 PrintLetterDelay: ; 313d
--