PRINT now accepts multiple expressions without comma separator
This commit is contained in:
1 parent
153b34a58a
commit
e8e78baa7f
2 files changed
+24
-13
No files matched your search
@@ -9,17 +9,21 @@ cmd_print:
|
|||||||
// First check if we have anything to print
|
// First check if we have anything to print
|
||||||
|
|
||||||
jsr end_of_statement_check
|
jsr end_of_statement_check
|
||||||
bcs cmd_print_new_line
|
bcs cmd_print_new_line_done
|
||||||
|
|
||||||
jsr fetch_character
|
jsr fetch_character
|
||||||
cmp #$3B // semicolon
|
cmp #$3B // semicolon
|
||||||
beq cmd_print_done
|
beq cmd_print_done
|
||||||
|
|
||||||
|
// FALLTROUGH
|
||||||
|
|
||||||
|
cmd_print_loop:
|
||||||
|
|
||||||
jsr unconsume_character
|
jsr unconsume_character
|
||||||
|
|
||||||
// FALLTROUGH
|
// FALLTROUGH
|
||||||
|
|
||||||
cmd_print_loop:
|
cmd_print_after_comma:
|
||||||
|
|
||||||
// Now evaluate the expression
|
// Now evaluate the expression
|
||||||
|
|
||||||
@@ -38,7 +42,17 @@ cmd_print_string:
|
|||||||
cpy __FAC1 + 0
|
cpy __FAC1 + 0
|
||||||
beq cmd_print_next_arg
|
beq cmd_print_next_arg
|
||||||
|
|
||||||
lda (__FAC1 + 1), y // XXX read from under ROM
|
#if CONFIG_MEMORY_MODEL_60K
|
||||||
|
|
||||||
|
ldx #<(__FAC1 + 1)
|
||||||
|
jsr peek_under_roms
|
||||||
|
|
||||||
|
#else // CONFIG_MEMORY_MODEL_38K
|
||||||
|
|
||||||
|
lda (__FAC1 + 1), y
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
jsr JCHROUT
|
jsr JCHROUT
|
||||||
iny
|
iny
|
||||||
jmp !-
|
jmp !-
|
||||||
@@ -55,19 +69,15 @@ cmd_print_next_arg:
|
|||||||
// Look for the next argument
|
// Look for the next argument
|
||||||
|
|
||||||
jsr end_of_statement_check
|
jsr end_of_statement_check
|
||||||
bcs cmd_print_new_line
|
bcs cmd_print_new_line_done
|
||||||
|
|
||||||
jsr fetch_character
|
cmp #$2C // comma XXX on C64 behavior is more complicated, fix it
|
||||||
cmp #$2C // comma
|
beq cmd_print_after_comma
|
||||||
beq cmd_print_loop
|
|
||||||
cmp #$3B // semicolon
|
cmp #$3B // semicolon
|
||||||
beq cmd_print_done
|
beq cmd_print_done
|
||||||
|
bne cmd_print_loop
|
||||||
|
|
||||||
// Something unexpected
|
cmd_print_new_line_done:
|
||||||
|
|
||||||
jmp do_SYNTAX_error
|
|
||||||
|
|
||||||
cmd_print_new_line:
|
|
||||||
|
|
||||||
jsr print_return
|
jsr print_return
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,8 @@
|
|||||||
// - for float: FAC1
|
// - for float: FAC1
|
||||||
// - for string: __FAC1 + 0 = length, __FAC1 + 1 = pointer to string
|
// - for string: __FAC1 + 0 = length, __FAC1 + 1 = pointer to string
|
||||||
|
|
||||||
// XXX provide documentation and implementation
|
// XXX finish the implementation
|
||||||
|
|
||||||
|
|
||||||
FRMEVL:
|
FRMEVL:
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user