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