From 5cdd71b3fc062b9188ab8fdbff2748dc38bbe521 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 21 Jun 2020 23:26:31 +0200 Subject: [PATCH] some error message improvements --- c64/basic/engine/do_error.s | 2 ++ c64/basic/engine/execute_line_statements.s | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/c64/basic/engine/do_error.s b/c64/basic/engine/do_error.s index e86c82d6..e916f016 100644 --- a/c64/basic/engine/do_error.s +++ b/c64/basic/engine/do_error.s @@ -40,6 +40,8 @@ do_kernal_error: // .A = KERNAL error code, also almost ma // Convert to BASIC error code tax + beq do_BREAK_error // XXX is 0 really a proper error code? + dex bpl do_basic_error // branch always diff --git a/c64/basic/engine/execute_line_statements.s b/c64/basic/engine/execute_line_statements.s index 23b8a680..6b85037b 100644 --- a/c64/basic/engine/execute_line_statements.s +++ b/c64/basic/engine/execute_line_statements.s @@ -40,7 +40,7 @@ execute_statements: // Check if token is valid for execution cmp #$7F - bcc_16 do_SYNTAX_error // branch if not a token XXX here we should handle variable assignments + bcc_16 execute_statements_var_assign // not a token - try variable assign cmp #$A6 bcs execute_statements_extended @@ -224,3 +224,21 @@ execute_line: sta CURLIN+1 jmp execute_statements + + +execute_statements_var_assign: + + // XXX here we should handle variable assignments, probably in a separate file + + // Prevent wedges from being executed within a program + +#if CONFIG_TAPE_WEDGE + cmp #$40 + beq_16 do_DIRECT_MODE_ONLY_error +#endif +#if CONFIG_DOS_WEDGE + cmp #$5F + beq_16 do_DIRECT_MODE_ONLY_error +#endif + + jmp do_SYNTAX_error