From 021c9b3189ced35a1dde1be4a6c297bc781bfa58 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Wed, 11 Sep 2019 21:50:48 +0200 Subject: [PATCH] size-optimized cartridge check --- c64/kernal/cartridge_check.s | 10 ++++------ c64/kernal/interrupts/fe47.default_nmi_handler.s | 2 +- c64/kernal/reset_entry.s | 5 +++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/c64/kernal/cartridge_check.s b/c64/kernal/cartridge_check.s index 09a58216..f74cfeaa 100644 --- a/c64/kernal/cartridge_check.s +++ b/c64/kernal/cartridge_check.s @@ -1,15 +1,13 @@ // c64 prg p263 cartridge_check: - ldx #$04 + ldx #$05 cartridge_check_l1: - lda CART_SIG,x - cmp cartridge_signature,x + lda CART_SIG-1,x + cmp cartridge_signature-1,x bne no_cartridge dex - bpl cartridge_check_l1 - sec + bne cartridge_check_l1 rts no_cartridge: - clc rts diff --git a/c64/kernal/interrupts/fe47.default_nmi_handler.s b/c64/kernal/interrupts/fe47.default_nmi_handler.s index fdf3115c..2c89e4a0 100644 --- a/c64/kernal/interrupts/fe47.default_nmi_handler.s +++ b/c64/kernal/interrupts/fe47.default_nmi_handler.s @@ -16,7 +16,7 @@ default_nmi_handler: // XXX confirm NMIs from CIA, or no other NMI will arrive! jsr cartridge_check - bcc !+ + bne !+ jmp (ICART_WARM_START) !: diff --git a/c64/kernal/reset_entry.s b/c64/kernal/reset_entry.s index 9eb9eca7..626e6d72 100644 --- a/c64/kernal/reset_entry.s +++ b/c64/kernal/reset_entry.s @@ -3,11 +3,12 @@ reset_entry: + // The GPL program at https://github.com/Klaus2m5/6502_65C02_functional_tests/blob/master/6502_functional_test.a65 // uses the following initial reset sequence // affirmed by c64 PRG p269 cld - ldx #$ff + ldx #$FF txs sei @@ -18,7 +19,7 @@ reset_entry: // C64 PRG p269 jsr cartridge_check - bcc !+ + bne !+ jmp (ICART_COLD_START) !: // Initialising IO is obviously required. Also indicated by c64 prg p269.