summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordannye <corrnondacqb@yahoo.com>2015-10-10 10:31:23 -0500
committerdannye <corrnondacqb@yahoo.com>2015-10-10 10:31:23 -0500
commitb588526b89b003faf22888ab542df67685891f49 (patch)
tree6b61d9707d736a83b1638301832b18e19dab33f4 /src
parentd867415edd72d2956b53aea66bae93566f3b984a (diff)
rst vectors, interrupts, and rom header
Diffstat (limited to 'src')
-rwxr-xr-xsrc/home.asm57
-rw-r--r--src/main.asm3
2 files changed, 58 insertions, 2 deletions
diff --git a/src/home.asm b/src/home.asm
new file mode 100755
index 0000000..18addba
--- /dev/null
+++ b/src/home.asm
@@ -0,0 +1,57 @@
+; rst vectors
+SECTION "rst 00",ROM0[$00]
+ rst $38
+
+SECTION "rst 08",ROM0[$08]
+ rst $38
+
+SECTION "rst 10",ROM0[$10]
+ rst $38
+
+SECTION "rst 18",ROM0[$18]
+ rst $38
+
+SECTION "rst 20",ROM0[$20]
+ rst $38
+
+SECTION "rst 28",ROM0[$28]
+ rst $38
+
+SECTION "rst 30",ROM0[$30]
+ rst $38
+
+SECTION "rst 38",ROM0[$38]
+ rst $38
+
+; interrupts
+SECTION "vblank",ROM0[$40]
+ jp $c492 ; VBlankHandler
+
+SECTION "hblank",ROM0[$48]
+ jp $c342 ; HBlankHandler
+
+SECTION "timer",ROM0[$50]
+ jp $0ef8 ; TimerHandler
+
+SECTION "serial",ROM0[$58]
+ jp $0e54 ; SerialHandler
+
+SECTION "joypad",ROM0[$60]
+ reti
+
+SECTION "romheader",ROM0[$100]
+ nop
+ jp Start
+
+; manually declare part of the rom header
+; because rgblink mistakenly pads these with FF
+SECTION "gbc only",ROM0[$143]
+ db $c0
+
+SECTION "sgb flag",ROM0[$146]
+ db $00
+
+SECTION "start",ROM0[$150]
+Start: ; 0150 (0:0150)
+
+INCBIN "baserom.gbc",$150,$35b6 - $150
diff --git a/src/main.asm b/src/main.asm
index ca09a5e..ee98b27 100644
--- a/src/main.asm
+++ b/src/main.asm
@@ -1,5 +1,4 @@
-SECTION "bank0",ROM0[0]
-INCBIN "baserom.gbc",$0,$4000
+INCLUDE "home.asm"
SECTION "bank1",ROMX,BANK[$1]
INCBIN "baserom.gbc",$4000,$4000