summaryrefslogtreecommitdiff
path: root/home/header.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/header.asm')
-rw-r--r--home/header.asm66
1 files changed, 66 insertions, 0 deletions
diff --git a/home/header.asm b/home/header.asm
new file mode 100644
index 000000000..3531d2851
--- /dev/null
+++ b/home/header.asm
@@ -0,0 +1,66 @@
+; rst vectors (called through the rst instruction)
+
+SECTION "rst0", ROM0
+ di
+ jp Start
+
+SECTION "rst8", ROM0 ; rst FarCall
+ jp FarCall_hl
+
+SECTION "rst10", ROM0 ; rst Bankswitch
+ ldh [hROMBank], a
+ ld [MBC3RomBank], a
+ ret
+
+SECTION "rst18", ROM0
+ rst $38
+
+SECTION "rst20", ROM0
+ rst $38
+
+SECTION "rst28", ROM0 ; rst JumpTable
+ push de
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+; SECTION "rst30", ROM0
+ ld l, a
+ pop de
+ jp hl
+
+SECTION "rst38", ROM0
+ rst $38
+
+
+; Game Boy hardware interrupts
+
+SECTION "vblank", ROM0
+ jp VBlank
+
+SECTION "lcd", ROM0
+ jp LCD
+
+SECTION "timer", ROM0
+ jp Timer
+
+SECTION "serial", ROM0
+ jp Serial
+
+SECTION "joypad", ROM0
+ jp JoypadInt
+
+
+; Game Boy cartridge header
+
+SECTION "Header", ROM0
+
+Start::
+ nop
+ jp _Start
+
+; The cartridge header data is filled in by rgbfix.
+; This makes sure it doesn't get used.
+ ds $0150 - $0104