shortened BASIC commands jumptable handling

This commit is contained in:
FeralChild64 committed 2020-06-08 17:36:25 +02:00
1 parent 3a885a2d14
commit 5a2f847cb6
2 files changed
+34 -76

No files matched your search

+14 -76
View File
@@ -50,7 +50,7 @@
cmd_sys,
cmd_open,
// $A0-$AF
// $A0-$A9
cmd_close,
cmd_get,
@@ -62,19 +62,18 @@
cmd_then,
cmd_not,
cmd_step,
cmd_plus,
cmd_minus,
cmd_mult,
cmd_div,
cmd_exponent,
cmd_and,
// $B0-$BF
// $CB, but remapped to $A9
cmd_go
)
/*
XXX we need a separate function dispatch table for the following ones:
// $B4-$BF
cmd_or,
cmd_greater,
cmd_equal,
cmd_less,
cmd_sgn,
cmd_int,
cmd_abs,
@@ -88,7 +87,7 @@
cmd_cos,
cmd_sin,
// $C0-$CF
// $C0-$CA
cmd_tan,
cmd_atn,
@@ -100,70 +99,9 @@
cmd_chr,
cmd_left,
cmd_right,
cmd_mid,
cmd_go,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_mid
*/
// $D0-$DF
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
// $E0-$EF
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
// $F0-$FF
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented,
cmd_unimplemented
)
@@ -32,6 +32,11 @@ execute_statements:
cmp #$7F
bcc_16 do_SYNTAX_error // branch if not a token XXX here we should handle variable assignments
cmp #$A9
bcs execute_statements_extended
execute_statements_run_token:
// Initialize temporary string stack - just about any statement might need it
// XXX original C64 ROM initializes this during the startup too - not sure where to put this
@@ -63,6 +68,21 @@ execute_statements:
#endif
execute_statements_extended:
cmp #$CB
bne !+
// 'GO' command has a strande token, after functions
lda #$A9
bne execute_statements_run_token
!:
// XXX here is the place for possible extended BASIC command set
jmp do_SYNTAX_error
execute_statements_end_of_line:
// First check, if we are in direct mode - if so,