ref: 906496e10735bb7ad6b4b5de9802b3021aebaf28
parent: 2b5b6f3e3a1375066371beecb7e14ae9be1ae626
author: yenatch <[email protected]>
date: Thu Aug 29 14:52:16 EDT 2013
split lcd functions out of main.asm
--- /dev/null
+++ b/engine/lcd.asm
@@ -1,0 +1,81 @@
+; LCD handling
+
+
+Function547: ; 547
+ ld a, [hLCDStatCustom]
+ cp rSCX & $ff
+ ret nz
+ ld c, a
+ ld a, [LYOverrides]
+ ld [$ff00+c], a
+ ret
+; 552
+
+
+LCD: ; 552
+ push af
+ ld a, [hLCDStatCustom]
+ and a
+ jr z, .done
+
+; At this point it's assumed we're in WRAM bank 5!
+ push bc
+ ld a, [rLY]
+ ld c, a
+ ld b, LYOverrides >> 8
+ ld a, [bc]
+ ld b, a
+ ld a, [hLCDStatCustom]
+ ld c, a
+ ld a, b
+ ld [$ff00+c], a
+ pop bc
+
+.done
+ pop af
+ reti
+; 568
+
+
+DisableLCD: ; 568
+; Turn the LCD off
+
+; Don't need to do anything if the LCD is already off
+ ld a, [rLCDC]
+ bit 7, a ; lcd enable
+ ret z
+
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ ld b, a
+
+; Disable VBlank
+ res 0, a ; vblank
+ ld [rIE], a
+
+.wait
+; Wait until VBlank would normally happen
+ ld a, [rLY]
+ cp 145
+ jr nz, .wait
+
+ ld a, [rLCDC]
+ and %01111111 ; lcd enable off
+ ld [rLCDC], a
+
+ xor a
+ ld [rIF], a
+ ld a, b
+ ld [rIE], a
+ ret
+; 58a
+
+
+EnableLCD: ; 58a
+ ld a, [rLCDC]
+ set 7, a ; lcd enable
+ ld [rLCDC], a
+ ret
+; 591
+
--- a/main.asm
+++ b/main.asm
@@ -116,83 +116,7 @@
INCLUDE "engine/fade.asm"
-Function547: ; 547
- ld a, [hLCDStatCustom]
- cp rSCX & $ff
- ret nz
- ld c, a
- ld a, [LYOverrides]
- ld [$ff00+c], a
- ret
-; 552
-
-
-LCD: ; 552
- push af
- ld a, [hLCDStatCustom]
- and a
- jr z, .done
-
-; At this point it's assumed we're in WRAM bank 5!
- push bc
- ld a, [rLY]
- ld c, a
- ld b, LYOverrides >> 8
- ld a, [bc]
- ld b, a
- ld a, [hLCDStatCustom]
- ld c, a
- ld a, b
- ld [$ff00+c], a
- pop bc
-
-.done
- pop af
- reti
-; 568
-
-
-DisableLCD: ; 568
-; Turn the LCD off
-
-; Don't need to do anything if the LCD is already off
- ld a, [rLCDC]
- bit 7, a ; lcd enable
- ret z
-
- xor a
- ld [rIF], a
- ld a, [rIE]
- ld b, a
-
-; Disable VBlank
- res 0, a ; vblank
- ld [rIE], a
-
-.wait
-; Wait until VBlank would normally happen
- ld a, [rLY]
- cp 145
- jr nz, .wait
-
- ld a, [rLCDC]
- and %01111111 ; lcd enable off
- ld [rLCDC], a
-
- xor a
- ld [rIF], a
- ld a, b
- ld [rIE], a
- ret
-; 58a
-
-
-EnableLCD: ; 58a
- ld a, [rLCDC]
- set 7, a ; lcd enable
- ld [rLCDC], a
- ret
-; 591
+INCLUDE "engine/lcd.asm"
AskTimer: ; 591