shortened BASIC commands jumptable handling
This commit is contained in:
1 parent
3a885a2d14
commit
5a2f847cb6
2 files changed
+34
-76
No files matched your search
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user