diff --git a/Makefile b/Makefile index 92dff008..7dcd2041 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,7 @@ SRCDIR_BASIC = $(SRCDIR_COMMON) \ src/basic/basic_functions \ src/basic/board_m65 \ src/basic/board_x16 \ + src/basic/editor \ src/basic/engine \ src/basic/init \ src/basic/math \ @@ -28,7 +29,6 @@ SRCDIR_BASIC = $(SRCDIR_COMMON) \ src/basic/memory \ src/basic/print \ src/basic/rom_revision \ - src/basic/tokenizer \ src/basic/wedge SRCDIR_KERNAL = $(SRCDIR_COMMON) \ diff --git a/src/basic/basic_commands/cmd_list.s b/src/basic/basic_commands/cmd_list.s index be79ad4c..d1b8b75b 100644 --- a/src/basic/basic_commands/cmd_list.s +++ b/src/basic/basic_commands/cmd_list.s @@ -31,7 +31,7 @@ list_loop: // LIST terminates any running program, // because it has fiddled with the current line pointer. // (Confirmed by testing on a C64) - jmp basic_main_loop + jmp shell_main_loop list_more_lines: lda STKEY diff --git a/src/basic/basic_commands/cmd_load_verify.s b/src/basic/basic_commands/cmd_load_verify.s index aab37558..868c7406 100644 --- a/src/basic/basic_commands/cmd_load_verify.s +++ b/src/basic/basic_commands/cmd_load_verify.s @@ -80,4 +80,4 @@ cmd_load_no_error: cmd_load_end: - jmp basic_main_loop + jmp shell_main_loop diff --git a/src/basic/basic_commands/cmd_new.s b/src/basic/basic_commands/cmd_new.s index ce879826..d2186c3f 100644 --- a/src/basic/basic_commands/cmd_new.s +++ b/src/basic/basic_commands/cmd_new.s @@ -9,4 +9,4 @@ cmd_new: // NEW command terminates execution (confirmed on a C64) - jmp basic_main_loop + jmp shell_main_loop diff --git a/src/basic/basic_commands/cmd_run_goto.s b/src/basic/basic_commands/cmd_run_goto.s index 65570149..dc93da96 100644 --- a/src/basic/basic_commands/cmd_run_goto.s +++ b/src/basic/basic_commands/cmd_run_goto.s @@ -18,7 +18,7 @@ cmd_goto: bcs !+ jsr basic_parse_line_number - jsr basic_find_line + jsr find_line bcc !+ // Line does not exist, so report error jmp do_UNDEFD_STATEMENT_error diff --git a/src/basic/basic_commands/cmd_stop_end.s b/src/basic/basic_commands/cmd_stop_end.s index 51c4906e..3cf6f64c 100644 --- a/src/basic/basic_commands/cmd_stop_end.s +++ b/src/basic/basic_commands/cmd_stop_end.s @@ -27,4 +27,4 @@ cmd_stop: cmd_end: - jmp basic_main_loop + jmp shell_main_loop diff --git a/src/basic/basic_commands_CC/cmd_bload_bverify.s b/src/basic/basic_commands_CC/cmd_bload_bverify.s index a85891f5..2b6db9fb 100644 --- a/src/basic/basic_commands_CC/cmd_bload_bverify.s +++ b/src/basic/basic_commands_CC/cmd_bload_bverify.s @@ -39,4 +39,4 @@ cmd_bload: // XXX when number parsing is done, change to continue execution - jmp basic_main_loop + jmp shell_main_loop diff --git a/src/basic/basic_commands_CC/cmd_merge.s b/src/basic/basic_commands_CC/cmd_merge.s index 5734b68d..bf157798 100644 --- a/src/basic/basic_commands_CC/cmd_merge.s +++ b/src/basic/basic_commands_CC/cmd_merge.s @@ -50,4 +50,4 @@ cmd_merge_no_error: // XXX when number parsing is done, change to continue execution - jmp basic_main_loop + jmp shell_main_loop diff --git a/src/basic/basic_delete_line.s b/src/basic/basic_delete_line.s index 864fd0c7..fdeff539 100644 --- a/src/basic/basic_delete_line.s +++ b/src/basic/basic_delete_line.s @@ -3,7 +3,7 @@ // #LAYOUT# * * #IGNORE // Delete the current BASIC line, which is assumed to have already -// been found with basic_find_line. +// been found with find_line. // Really only consists of copying memory down. // The only complication is that we have to do the copy with ROMs // banked out. Oh, yes, and we have to update all the links in diff --git a/src/basic/basic_find_line.s b/src/basic/editor/find_line.s similarity index 60% rename from src/basic/basic_find_line.s rename to src/basic/editor/find_line.s index be9a962e..a98cc91c 100644 --- a/src/basic/basic_find_line.s +++ b/src/basic/editor/find_line.s @@ -5,19 +5,24 @@ // Find the BASIC line with number LINNUM +// XXX it should be possible to start from the current line (OLDTXT), or from the startup, +// depending on the current and target line number + + +find_line: -basic_find_line: // Get pointer to start of BASIC text lda TXTTAB+0 sta OLDTXT+0 lda TXTTAB+1 sta OLDTXT+1 -basic_find_line_loop: - // Then search for line number - // Line number - - ldy #3 + // FALLTROUGH + +find_line_loop: + + // Fetch the high byte of line number and compare + ldy #$03 #if CONFIG_MEMORY_MODEL_60K ldx #