From b1fbc1c6930c57c8061b9115b6910ec6bf4e52c7 Mon Sep 17 00:00:00 2001 From: Christian Werner Date: Sun, 18 Oct 2026 08:57:01 +0200 Subject: [PATCH] feat(init): no Cartridge or VIC-II at a Blade's reset and NMI A Blade has no expansion port for Cartridges and no VIC-II: with ARNITECH_BLADE the reset neither looks for a Cartridge nor blanks the screen, and the NMI handler looks for no Cartridge. --- src/kernal/init/fce2.hw_entry_reset.s | 3 +++ src/kernal/interrupts/fe47.default_nmi_handler.s | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/kernal/init/fce2.hw_entry_reset.s b/src/kernal/init/fce2.hw_entry_reset.s index 33ef4ace..b97d72de 100644 --- a/src/kernal/init/fce2.hw_entry_reset.s +++ b/src/kernal/init/fce2.hw_entry_reset.s @@ -45,6 +45,8 @@ hw_entry_reset: ; Also, https://codebase64.org/doku.php?id=base:assembling_your_own_cart_rom_image was used ; as it shows example startup sequence, to be followe by cartridge creators +!ifndef CONFIG_ARNITECH_BLADE { ; a Blade has no Cartridges and no VIC-II + !ifndef ROM_LAYOUT_CRT { ; C64 PRG p269 @@ -56,6 +58,7 @@ hw_entry_reset: ; Disable the screen (and set 40 columns) to prevent visual glitches later ldx #$28 stx VIC_SCROLX +} } ; Initialising IO is obviously required. Also indicated by c64 prg p269. jsr JIOINIT diff --git a/src/kernal/interrupts/fe47.default_nmi_handler.s b/src/kernal/interrupts/fe47.default_nmi_handler.s index eb6946ba..67dcc244 100644 --- a/src/kernal/interrupts/fe47.default_nmi_handler.s +++ b/src/kernal/interrupts/fe47.default_nmi_handler.s @@ -17,13 +17,13 @@ default_nmi_handler: ; XXX confirm NMIs from CIA, or no other NMI will arrive! -!ifdef CONFIG_PLATFORM_COMMODORE_64 { +!ifdef CONFIG_PLATFORM_COMMODORE_64 { !ifndef CONFIG_ARNITECH_BLADE { ; a Blade has no Cartridges jsr cartridge_check bne @1 jmp (ICART_WARM_START) @1: -} +} } ; According to C64 Wiki, if STOP key is pressed, the routine assumes warm start request