diff --git a/src/basic/board_m65/4000.mega65_vectable_basic_1.s b/src/basic/board_m65/4000.mega65_vectable_basic_1.s index 2f116b08..70339ac0 100644 --- a/src/basic/board_m65/4000.mega65_vectable_basic_1.s +++ b/src/basic/board_m65/4000.mega65_vectable_basic_1.s @@ -11,16 +11,17 @@ // Label definitions - .label VB1__INITMSG = $4000 + 2 * 0 - .label VB1__LINKPRG = $4000 + 2 * 1 - .label VB1__tokenise_line = $4000 + 2 * 2 - .label VB1__list_single_line = $4000 + 2 * 3 - .label VB1__print_packed_error = $4000 + 2 * 4 - .label VB1__print_packed_misc_str = $4000 + 2 * 5 - .label VB1__do_new = $4000 + 2 * 6 - .label VB1__do_clr = $4000 + 2 * 7 - .label VB1__do_restore = $4000 + 2 * 8 - .label VB1__cmd_mem_cont = $4000 + 2 * 9 + .label VB1__INITMSG = $4000 + 2 * 0 + .label VB1__LINKPRG = $4000 + 2 * 1 + .label VB1__tokenise_line = $4000 + 2 * 2 + .label VB1__list_single_line = $4000 + 2 * 3 + .label VB1__print_packed_error = $4000 + 2 * 4 + .label VB1__print_packed_misc_str = $4000 + 2 * 5 + .label VB1__do_new = $4000 + 2 * 6 + .label VB1__do_clr = $4000 + 2 * 7 + .label VB1__do_restore = $4000 + 2 * 8 + .label VB1__cmd_mem_cont = $4000 + 2 * 9 + .label VB1__prepare_direct_execution = $4000 + 2 * 10 #else @@ -36,5 +37,6 @@ .word do_clr .word do_restore .word cmd_mem_cont + .word prepare_direct_execution #endif diff --git a/src/basic/engine/prepare_direct_execution.s b/src/basic/engine/prepare_direct_execution.s index 1b2b1bb0..be63db97 100644 --- a/src/basic/engine/prepare_direct_execution.s +++ b/src/basic/engine/prepare_direct_execution.s @@ -1,4 +1,5 @@ // #LAYOUT# STD * #TAKE +// #LAYOUT# M65 BASIC_1 #TAKE // #LAYOUT# * BASIC_0 #TAKE // #LAYOUT# * * #IGNORE @@ -8,6 +9,14 @@ prepare_direct_execution: +#if (ROM_LAYOUT_M65 && SEGMENT_BASIC_0) + + jsr map_BASIC_1 + jsr_ind VB1__prepare_direct_execution + jmp map_NORMAL + +#else + // Setup pointer to the statement lda #