gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
commit 4606981b81a5b140e8ebd635590852ac23012b0f parent 3ef4db914e2c9ddea0ba22020bdac4fd2f951362 Author: Toxa <untoxa@mail.ru> Date: Sat, 10 Jul 2021 20:33:39 +0300 inline disable_interrupts() and enable_interrupts() Diffstat:
| M | gbdk-lib/include/gb/gb.h | 8 | ++++++-- |
| M | gbdk-lib/libc/gb/crt0.s | 14 | +++++--------- |
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/gbdk-lib/include/gb/gb.h b/gbdk-lib/include/gb/gb.h @@ -506,7 +506,9 @@ void joypad_ex(joypads_t * joypads) __preserves_regs(b, c); /** Enables unmasked interrupts @see disable_interrupts, set_interrupts */ -void enable_interrupts(void) NONBANKED __preserves_regs(a, b, c, d, e, h, l); +inline void enable_interrupts(void) __preserves_regs(a, b, c, d, e, h, l) { + __asm__("ei"); +} /** Disables interrupts. @@ -515,7 +517,9 @@ void enable_interrupts(void) NONBANKED __preserves_regs(a, b, c, d, e, h, l); them. @see enable_interrupts, set_interrupts */ -void disable_interrupts(void) NONBANKED __preserves_regs(a, b, c, d, e, h, l); +inline void disable_interrupts(void) __preserves_regs(a, b, c, d, e, h, l) { + __asm__("di"); +} /** Clears any pending interrupts and sets the interrupt mask register IO to flags. diff --git a/gbdk-lib/libc/gb/crt0.s b/gbdk-lib/libc/gb/crt0.s @@ -268,14 +268,6 @@ _exit:: NOP JR 99$ ; Wait forever -_enable_interrupts:: - EI - RET - -_disable_interrupts:: - DI - RET - _set_interrupts:: DI LDA HL,2(SP) ; Skip return address @@ -317,8 +309,12 @@ _set_interrupts:: .area _CODE_0 ;; Constant data .area _LIT +; ;; since _CODE_1 area base address is pre-defined in the linker from 0x4000, +; ;; that moves initializer code and tables out of bank 0 +; .area _CODE_1 + ;; Constant data, used to init _DATA .area _INITIALIZER - ;; Constant data used to init _DATA + ;; Code, used to init _DATA .area _GSINIT .area _GSFINAL ;; Uninitialised ram data
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.