PRINT now accepts multiple expressions without comma separator

This commit is contained in:
FeralChild64 committed 2020-06-06 21:39:28 +02:00
1 parent 153b34a58a
commit e8e78baa7f
2 files changed
+24 -13

No files matched your search

+22 -12
View File
@@ -9,17 +9,21 @@ cmd_print:
// First check if we have anything to print
jsr end_of_statement_check
bcs cmd_print_new_line
bcs cmd_print_new_line_done
jsr fetch_character
cmp #$3B // semicolon
beq cmd_print_done
// FALLTROUGH
cmd_print_loop:
jsr unconsume_character
// FALLTROUGH
cmd_print_loop:
cmd_print_after_comma:
// Now evaluate the expression
@@ -38,7 +42,17 @@ cmd_print_string:
cpy __FAC1 + 0
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
iny
jmp !-
@@ -55,19 +69,15 @@ cmd_print_next_arg:
// Look for the next argument
jsr end_of_statement_check
bcs cmd_print_new_line
bcs cmd_print_new_line_done
jsr fetch_character
cmp #$2C // comma
beq cmd_print_loop
cmp #$2C // comma XXX on C64 behavior is more complicated, fix it
beq cmd_print_after_comma
cmp #$3B // semicolon
beq cmd_print_done
bne cmd_print_loop
// Something unexpected
jmp do_SYNTAX_error
cmd_print_new_line:
cmd_print_new_line_done:
jsr print_return
+2 -1
View File
@@ -15,7 +15,8 @@
// - for float: FAC1
// - for string: __FAC1 + 0 = length, __FAC1 + 1 = pointer to string
// XXX provide documentation and implementation
// XXX finish the implementation
FRMEVL: