diff options
author | Thomas Albers Raviola <thomas@thomaslabs.org> | 2024-12-02 21:43:04 +0100 |
---|---|---|
committer | Thomas Albers Raviola <thomas@thomaslabs.org> | 2024-12-02 21:43:59 +0100 |
commit | 9cd14efb76a4ddbcd013f44d50dc1ff93d56c4ca (patch) | |
tree | 6784edf3de941c8f7200a133d2f086bcfc08e9f2 /asm/crt0.asm | |
parent | 37bc2b32d3492a86d87e3642ce48c753264c795a (diff) |
Move bootloader to payload
Diffstat (limited to 'asm/crt0.asm')
-rw-r--r-- | asm/crt0.asm | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/asm/crt0.asm b/asm/crt0.asm index 6f92149..523c39e 100644 --- a/asm/crt0.asm +++ b/asm/crt0.asm @@ -10,7 +10,22 @@ start: ld i, a ld sp, #0x0000 di - + ;; Init PIO and check for KEY2 + ld a, #PIO_MODE_3 + out (PORT_B_CTRL), a + ld a, #0x7F + out (PORT_B_CTRL), a + in a, (PORT_B_DATA) + and #0x02 ; is KEY2 pressed? If so, start booloader + jr NZ, main + ;; Load payload (bootloader) + ld HL, #0x7000 + ld DE, #0x8000 + ld BC, #0x1000 + ldir + ;; Start bootloader + jp 0x8000 +main: call gsinit call _main 1$: |