From 170a0245ca0718112d829796d687ab422e4752a8 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Mon, 27 Jan 2020 22:11:03 +0100 Subject: [PATCH] added indirect JSR for 65CE02 --- c64/aliases/,aliases_cpu.s | 8 ++++++++ ...able_kernal_1.s => 4000.mega65_vectable_kernal_1.s} | 10 ++++------ c64/kernal/init/fd50.ramtas.s | 6 +++--- c64/kernal/screen/chrout_screen_jumptable_codes.s | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) rename c64/kernal/banking/{4000.mega65_jumptable_kernal_1.s => 4000.mega65_vectable_kernal_1.s} (50%) diff --git a/c64/aliases/,aliases_cpu.s b/c64/aliases/,aliases_cpu.s index cf99d957..85f94c76 100644 --- a/c64/aliases/,aliases_cpu.s +++ b/c64/aliases/,aliases_cpu.s @@ -99,6 +99,14 @@ .byte $E3, arg } +// additional addressing modes + +.pseudocommand jsr_ind addr +{ + .var arg = addr.getValue() + .byte $22, mod(arg, $100), floor(arg / $100) +} + #endif diff --git a/c64/kernal/banking/4000.mega65_jumptable_kernal_1.s b/c64/kernal/banking/4000.mega65_vectable_kernal_1.s similarity index 50% rename from c64/kernal/banking/4000.mega65_jumptable_kernal_1.s rename to c64/kernal/banking/4000.mega65_vectable_kernal_1.s index 001d624e..f0e86942 100644 --- a/c64/kernal/banking/4000.mega65_jumptable_kernal_1.s +++ b/c64/kernal/banking/4000.mega65_vectable_kernal_1.s @@ -3,7 +3,7 @@ // #LAYOUT# * * #IGNORE // -// Definitions for communication with Mega65 segment KERNAL_1 +// Definitions for communication with Mega65 segment KERNAL_1 from KERNAL_0 // @@ -11,16 +11,14 @@ // Labels for jumps - - .label KERNAL_1__RAMTAS = $4000 + .label VK1__RAMTAS = $4000 #else - // Jumptable (OpenROMs private!) + // Vector table (OpenROMs private!) - - jmp RAMTAS + .word RAMTAS #endif diff --git a/c64/kernal/init/fd50.ramtas.s b/c64/kernal/init/fd50.ramtas.s index cb135a4a..3ef9461b 100644 --- a/c64/kernal/init/fd50.ramtas.s +++ b/c64/kernal/init/fd50.ramtas.s @@ -16,9 +16,9 @@ RAMTAS: #if (ROM_LAYOUT_M65 && SEGMENT_KERNAL_0) - jsr map_KERNAL_1 - jsr KERNAL_1__RAMTAS - jmp map_NORMAL + jsr map_KERNAL_1 + jsr_ind VK1__RAMTAS + jmp map_NORMAL #else diff --git a/c64/kernal/screen/chrout_screen_jumptable_codes.s b/c64/kernal/screen/chrout_screen_jumptable_codes.s index 4e494b4d..499ed5ed 100644 --- a/c64/kernal/screen/chrout_screen_jumptable_codes.s +++ b/c64/kernal/screen/chrout_screen_jumptable_codes.s @@ -120,6 +120,6 @@ chrout_screen_jumptable: .word chrout_screen_DEL .word chrout_screen_RETURN -.if (mod(*, $2) == 0) { nop } // make sure routine size is always the same, needed by build system +.if (mod(*, $2) == 1) { nop } // make sure routine size is always the same, needed by build system #endif