ref: e7318ed4bc38baebce0f26048b166c76d13c1838
parent: 4a04a09a6b7a80f97392563b1b1b115fa1cf6316
author: yenatch <[email protected]>
date: Sat Sep 7 23:14:24 EDT 2013
move double speed functions into common/double_speed.asm
--- /dev/null
+++ b/common/double_speed.asm
@@ -1,0 +1,31 @@
+; The CGB hardware introduces Double Speed Mode.
+; While active, the clock speed is doubled.
+
+; The hardware can switch between normal speed
+; and double speed at any time, but LCD output
+; collapses during the switch.
+
+DoubleSpeed: ; 2fef
+ ld hl, rKEY1
+ bit 7, [hl]
+ jr z, SwitchSpeed
+ ret
+; 2ff7
+
+NormalSpeed: ; 2ff7
+ ld hl, rKEY1
+ bit 7, [hl]
+ ret z
+; 2ffd
+
+SwitchSpeed: ; 2ffd
+ set 0, [hl]
+ xor a
+ ld [rIF], a
+ ld [rIE], a
+ ld a, $30
+ ld [rJOYP], a
+ stop ; rgbasm adds a nop after this instruction by default
+ ret
+; 300b
+
--- a/main.asm
+++ b/main.asm
@@ -827,36 +827,7 @@
; 2fef
-; The CGB hardware introduces Double Speed Mode.
-; While active, the clock speed is doubled.
-
-; The hardware can switch between normal speed
-; and double speed at any time, but LCD output
-; collapses during the switch.
-
-DoubleSpeed: ; 2fef
- ld hl, rKEY1
- bit 7, [hl]
- jr z, SwitchSpeed
- ret
-; 2ff7
-
-NormalSpeed: ; 2ff7
- ld hl, rKEY1
- bit 7, [hl]
- ret z
-; 2ffd
-
-SwitchSpeed: ; 2ffd
- set 0, [hl]
- xor a
- ld [rIF], a
- ld [rIE], a
- ld a, $30
- ld [rJOYP], a
- stop ; rgbasm adds a nop after this instruction by default
- ret
-; 300b
+INCLUDE "common/double_speed.asm"
ClearSprites: ; 300b