Merge pull request #2 from ISSOtm/patch-1

Optimize handlers slightly
This commit is contained in:
2019-01-03 10:04:20 +01:00
committed by GitHub

View File

@@ -158,18 +158,6 @@ ConwayGroup: MACRO
ld [hl], b ld [hl], b
ENDM ENDM
SECTION "Timer Interrupt Handler", ROM0[$50]
TimerInterruptHandler:
reti
SECTION "Serial Interrupt Handler", ROM0[$58]
SerialInterruptHandler:
reti
SECTION "Joypad Interrupt Handler", ROM0[$60]
JoypadInterruptHandler:
reti
SECTION "Header", ROM0[$100] SECTION "Header", ROM0[$100]
EntryPoint: EntryPoint:
di di
@@ -447,28 +435,14 @@ Start:
SECTION "V-Blank Interrupt Handler", ROM0[$40] SECTION "V-Blank Interrupt Handler", ROM0[$40]
VBlankInterruptHandler: VBlankInterruptHandler:
; save registers jr LCDStatInterruptHandler
push af
push bc
push de
push hl
; render
jp Render
SECTION "LCD Stat Interrupt Handler", ROM0[$48] SECTION "LCD Stat Interrupt Handler", ROM0[$48]
LCDStatInterruptHandler: LCDStatInterruptHandler:
; save registers ; save registers
push af push af
push bc push bc
push de
push hl
; render
jp Render
SECTION "Render", ROM0
Render:
; check there are tiles to render ; check there are tiles to render
ldh a, [LinesLeft] ldh a, [LinesLeft]
ld b, a ld b, a
@@ -476,6 +450,9 @@ Render:
or b or b
jr z, .exit jr z, .exit
push de
push hl
.render .render
; load buffer pointer into DE ; load buffer pointer into DE
ld hl, Rendered ld hl, Rendered
@@ -546,10 +523,11 @@ Render:
ld a, d ld a, d
ldh [Rendered + 1], a ldh [Rendered + 1], a
.exit
; restore registers saved in interrupt handler ; restore registers saved in interrupt handler
pop hl pop hl
pop de pop de
.exit
pop bc pop bc
pop af pop af