changed handling of external token lists
This commit is contained in:
1 parent
151b9440dd
commit
985a0882f6
29 files changed
+295
-316
No files matched your search
@@ -14,8 +14,8 @@ SRCDIR_BASIC = $(SRCDIR_COMMON) \
|
||||
src/basic/,stubs_math \
|
||||
src/basic/assets \
|
||||
src/basic/basic_commands \
|
||||
src/basic/basic_commands_CC \
|
||||
src/basic/basic_commands_CD \
|
||||
src/basic/basic_commands_01 \
|
||||
src/basic/basic_commands_02 \
|
||||
src/basic/basic_operators \
|
||||
src/basic/basic_functions \
|
||||
src/basic/board_m65 \
|
||||
|
||||
@@ -31,7 +31,7 @@ Ideas for the future, most of them suitable for Mega65 or other power machines o
|
||||
* consider `BOOT` command
|
||||
* possibly some commands for creating menus and dialog boxes
|
||||
* more configurable `INPUT`
|
||||
* `PRINT USING`, `PRINT AT(x, y)`, `PRINT CENTRE`
|
||||
* `PRINT USING`, ability to position cursor, ability to print result in the center of the screen
|
||||
* `CURSOR` command from BASIC V10
|
||||
* `RESTORE` should accept lline number as argument
|
||||
* hex/dec conversion functions
|
||||
|
||||
File renamed without changes.
@@ -4,6 +4,6 @@
|
||||
// #LAYOUT# * * #IGNORE
|
||||
|
||||
|
||||
packed_freq_keywords_CC:
|
||||
packed_freq_keywords_01:
|
||||
|
||||
put_packed_freq_keywords_CC()
|
||||
put_packed_freq_keywords_01()
|
||||
@@ -3,7 +3,10 @@
|
||||
// #LAYOUT# X16 BASIC_0 #TAKE
|
||||
// #LAYOUT# * * #IGNORE
|
||||
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
packed_freq_keywords_CD:
|
||||
packed_freq_keywords_02:
|
||||
|
||||
put_packed_freq_keywords_CD()
|
||||
put_packed_freq_keywords_02()
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,58 @@
|
||||
// #LAYOUT# STD * #TAKE
|
||||
// #LAYOUT# * BASIC_0 #TAKE
|
||||
// #LAYOUT# * * #IGNORE
|
||||
|
||||
//
|
||||
// Jumptable for BASIC commands with tokens prefixed by $01
|
||||
//
|
||||
|
||||
|
||||
.const command_01_list = List().add(
|
||||
|
||||
cmd_slow,
|
||||
cmd_fast,
|
||||
cmd_old,
|
||||
|
||||
// NOTE! These commands are temporarily placed here, they should be a part of list 02!
|
||||
|
||||
cmd_merge,
|
||||
|
||||
cmd_bload,
|
||||
cmd_bsave,
|
||||
cmd_bverify,
|
||||
|
||||
cmd_clear,
|
||||
varstr_garbage_collect // cmd_dispose
|
||||
)
|
||||
|
||||
|
||||
#if !HAS_OPCODES_65C02
|
||||
|
||||
|
||||
command_01_jumptable_lo:
|
||||
|
||||
put_jumptable_lo(command_01_list)
|
||||
|
||||
|
||||
command_01_jumptable_hi:
|
||||
|
||||
put_jumptable_hi(command_01_list)
|
||||
|
||||
|
||||
#else // HAS_OPCODES_65C02
|
||||
|
||||
|
||||
__before_command_01_jumptable:
|
||||
|
||||
.if (mod(*, $2) == 1) { brk } // align code so that vector never crosses page boundary
|
||||
|
||||
command_01_jumptable:
|
||||
|
||||
put_jumptable(command_01_list)
|
||||
|
||||
// Make sure routine size is always the same - build system limitation
|
||||
|
||||
.if (__before_command_01_jumptable == command_01_jumptable) { brk }
|
||||
|
||||
|
||||
#endif
|
||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,60 @@
|
||||
// #LAYOUT# STD * #TAKE
|
||||
// #LAYOUT# * BASIC_0 #TAKE
|
||||
// #LAYOUT# * * #IGNORE
|
||||
|
||||
//
|
||||
// Jumptable for BASIC commands with tokens prefixed by $02
|
||||
//
|
||||
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
.const command_02_list = List().add(
|
||||
|
||||
// NOTE! These commands are temporarily placed in list 01!
|
||||
|
||||
// cmd_merge,
|
||||
|
||||
// cmd_bload,
|
||||
// cmd_bsave,
|
||||
// cmd_bverify,
|
||||
|
||||
// cmd_clear,
|
||||
// varstr_garbage_collect, // cmd_dispose
|
||||
|
||||
cmd_cold,
|
||||
cmd_mem
|
||||
)
|
||||
|
||||
|
||||
#if !HAS_OPCODES_65C02
|
||||
|
||||
|
||||
command_02_jumptable_lo:
|
||||
|
||||
put_jumptable_lo(command_02_list)
|
||||
|
||||
|
||||
command_02_jumptable_hi:
|
||||
|
||||
put_jumptable_hi(command_02_list)
|
||||
|
||||
|
||||
#else // HAS_OPCODES_65C02
|
||||
|
||||
|
||||
__before_command_02_jumptable:
|
||||
|
||||
.if (mod(*, $2) == 1) { brk } // align code so that vector never crosses page boundary
|
||||
|
||||
command_02_jumptable:
|
||||
|
||||
put_jumptable(command_02_list)
|
||||
|
||||
// Make sure routine size is always the same - build system limitation
|
||||
|
||||
.if (__before_command_02_jumptable == command_02_jumptable) { brk }
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,76 +0,0 @@
|
||||
// #LAYOUT# STD * #TAKE
|
||||
// #LAYOUT# * BASIC_0 #TAKE
|
||||
// #LAYOUT# * * #IGNORE
|
||||
|
||||
//
|
||||
// Jumptable for BASIC commands with tokens prefixed by $CC
|
||||
//
|
||||
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
.const command_CC_list = List().add(
|
||||
|
||||
cmd_old,
|
||||
|
||||
cmd_merge,
|
||||
|
||||
cmd_bload,
|
||||
cmd_bsave,
|
||||
cmd_bverify,
|
||||
|
||||
cmd_clear,
|
||||
varstr_garbage_collect, // cmd_dispose
|
||||
|
||||
cmd_cold,
|
||||
cmd_mem
|
||||
)
|
||||
|
||||
#else
|
||||
|
||||
.const command_CC_list = List().add(
|
||||
|
||||
cmd_old,
|
||||
|
||||
cmd_merge,
|
||||
|
||||
cmd_bload,
|
||||
cmd_bsave,
|
||||
cmd_bverify,
|
||||
|
||||
cmd_clear,
|
||||
varstr_garbage_collect // cmd_dispose
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if !HAS_OPCODES_65C02
|
||||
|
||||
|
||||
command_CC_jumptable_lo:
|
||||
|
||||
put_jumptable_lo(command_CC_list)
|
||||
|
||||
|
||||
command_CC_jumptable_hi:
|
||||
|
||||
put_jumptable_hi(command_CC_list)
|
||||
|
||||
|
||||
#else // HAS_OPCODES_65C02
|
||||
|
||||
|
||||
__before_command_CC_jumptable:
|
||||
|
||||
.if (mod(*, $2) == 1) { brk } // align code so that vector never crosses page boundary
|
||||
|
||||
command_CC_jumptable:
|
||||
|
||||
put_jumptable(command_CC_list)
|
||||
|
||||
// Make sure routine size is always the same - build system limitation
|
||||
|
||||
.if (__before_command_CC_jumptable == command_CC_jumptable) { brk }
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,46 +0,0 @@
|
||||
// #LAYOUT# STD * #TAKE
|
||||
// #LAYOUT# * BASIC_0 #TAKE
|
||||
// #LAYOUT# * * #IGNORE
|
||||
|
||||
//
|
||||
// Jumptable for BASIC commands with tokens prefixed by $CD
|
||||
//
|
||||
|
||||
|
||||
.const command_CD_list = List().add(
|
||||
|
||||
cmd_slow,
|
||||
cmd_fast
|
||||
)
|
||||
|
||||
|
||||
#if !HAS_OPCODES_65C02
|
||||
|
||||
|
||||
command_CD_jumptable_lo:
|
||||
|
||||
put_jumptable_lo(command_CD_list)
|
||||
|
||||
|
||||
command_CD_jumptable_hi:
|
||||
|
||||
put_jumptable_hi(command_CD_list)
|
||||
|
||||
|
||||
#else // HAS_OPCODES_65C02
|
||||
|
||||
|
||||
__before_command_CD_jumptable:
|
||||
|
||||
.if (mod(*, $2) == 1) { brk } // align code so that vector never crosses page boundary
|
||||
|
||||
command_CD_jumptable:
|
||||
|
||||
put_jumptable(command_CD_list)
|
||||
|
||||
// Make sure routine size is always the same - build system limitation
|
||||
|
||||
.if (__before_command_CD_jumptable == command_CD_jumptable) { brk }
|
||||
|
||||
|
||||
#endif
|
||||
@@ -80,21 +80,25 @@ tokenise_line_loop:
|
||||
|
||||
// Check for extended tokens
|
||||
|
||||
lda #<packed_freq_keywords_CC
|
||||
lda #<packed_freq_keywords_01
|
||||
sta FRESPC+0
|
||||
lda #>packed_freq_keywords_CC
|
||||
lda #>packed_freq_keywords_01
|
||||
sta FRESPC+1
|
||||
|
||||
jsr tk_search
|
||||
bcc tokenise_line_keyword_CC // branch if keyword identified
|
||||
bcc tokenise_line_keyword_01 // branch if keyword identified
|
||||
|
||||
lda #<packed_freq_keywords_CD
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
lda #<packed_freq_keywords_02
|
||||
sta FRESPC+0
|
||||
lda #>packed_freq_keywords_CD
|
||||
lda #>packed_freq_keywords_02
|
||||
sta FRESPC+1
|
||||
|
||||
jsr tk_search
|
||||
bcc tokenise_line_keyword_CD // branch if keyword identified
|
||||
bcc tokenise_line_keyword_02 // branch if keyword identified
|
||||
|
||||
#endif
|
||||
|
||||
// Shorten packed keyword candidate and try again
|
||||
|
||||
@@ -169,20 +173,24 @@ tokenise_line_char:
|
||||
|
||||
// Support for extended keyword lists
|
||||
|
||||
tokenise_line_keyword_CC:
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
tokenise_line_keyword_02:
|
||||
|
||||
// Store the token list index
|
||||
|
||||
lda #$CC
|
||||
lda #$02
|
||||
skip_2_bytes_trash_nvz
|
||||
|
||||
// FALLTROUGH
|
||||
|
||||
tokenise_line_keyword_CD:
|
||||
#endif
|
||||
|
||||
tokenise_line_keyword_01:
|
||||
|
||||
// Store the token list index
|
||||
|
||||
lda #$CD
|
||||
lda #$01
|
||||
|
||||
ldy tk__offset
|
||||
sta BUF, y
|
||||
|
||||
@@ -39,12 +39,24 @@ execute_statements:
|
||||
|
||||
// Check if token is valid for execution
|
||||
|
||||
#if HAS_SMALL_BASIC
|
||||
|
||||
cpx #$01
|
||||
beq execute_statements_01
|
||||
|
||||
#else
|
||||
|
||||
cpx #$03
|
||||
bcc execute_statements_extended
|
||||
|
||||
#endif
|
||||
|
||||
cpx #$CB
|
||||
beq_16 cmd_go // // 'GO' command has a strange token, placed after function tokens
|
||||
|
||||
cpx #$7F
|
||||
bcc_16 execute_statements_var_assign // not a token - try variable assign
|
||||
|
||||
cpx #$A6
|
||||
bcs execute_statements_extended
|
||||
|
||||
#if !HAS_OPCODES_65C02
|
||||
|
||||
// Get the jump table entry for it, push it on the stack, and then RTS to start it.
|
||||
@@ -67,25 +79,25 @@ execute_statements:
|
||||
|
||||
#endif
|
||||
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
execute_statements_extended:
|
||||
|
||||
// Support for extended BASIC commands
|
||||
|
||||
cpx #$CC
|
||||
beq execute_statements_CC
|
||||
cpx #$CD
|
||||
beq execute_statements_CD
|
||||
// XXX consider jumpable here
|
||||
|
||||
// 'GO' command has a strange token, it is placed after function tokens
|
||||
cpx #$01
|
||||
beq execute_statements_01
|
||||
|
||||
cpx #$CB
|
||||
beq_16 cmd_go
|
||||
cpx #$02
|
||||
beq execute_statements_02
|
||||
|
||||
jmp do_SYNTAX_error
|
||||
|
||||
#endif
|
||||
|
||||
execute_statements_CC:
|
||||
execute_statements_01:
|
||||
|
||||
// Get the sub-token, check that it is valid
|
||||
|
||||
@@ -93,7 +105,7 @@ execute_statements_CC:
|
||||
cmp #$00
|
||||
beq_16 do_SYNTAX_error
|
||||
|
||||
cmp #(TK__MAXTOKEN_keywords_CC+1)
|
||||
cmp #(TK__MAXTOKEN_keywords_01+1)
|
||||
bcs_16 do_SYNTAX_error
|
||||
|
||||
// Execute command
|
||||
@@ -103,9 +115,9 @@ execute_statements_CC:
|
||||
// Get the jump table entry for it, push it on the stack, and then RTS to start it.
|
||||
|
||||
tax
|
||||
lda command_CC_jumptable_hi - 1, x
|
||||
lda command_01_jumptable_hi - 1, x
|
||||
pha
|
||||
lda command_CC_jumptable_lo - 1, x
|
||||
lda command_01_jumptable_lo - 1, x
|
||||
pha
|
||||
|
||||
rts
|
||||
@@ -116,12 +128,13 @@ execute_statements_CC:
|
||||
|
||||
asl
|
||||
tax
|
||||
jmp (command_CC_jumptable - 2, x)
|
||||
jmp (command_01_jumptable - 2, x)
|
||||
|
||||
#endif
|
||||
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
execute_statements_CD:
|
||||
execute_statements_02:
|
||||
|
||||
// Get the sub-token, check that it is valid
|
||||
|
||||
@@ -129,7 +142,7 @@ execute_statements_CD:
|
||||
cmp #$00
|
||||
beq_16 do_SYNTAX_error
|
||||
|
||||
cmp #(TK__MAXTOKEN_keywords_CD+1)
|
||||
cmp #(TK__MAXTOKEN_keywords_02+1)
|
||||
bcs_16 do_SYNTAX_error
|
||||
|
||||
// Execute command
|
||||
@@ -139,9 +152,9 @@ execute_statements_CD:
|
||||
// Get the jump table entry for it, push it on the stack, and then RTS to start it.
|
||||
|
||||
tax
|
||||
lda command_CD_jumptable_hi - 1, x
|
||||
lda command_02_jumptable_hi - 1, x
|
||||
pha
|
||||
lda command_CD_jumptable_lo - 1, x
|
||||
lda command_02_jumptable_lo - 1, x
|
||||
pha
|
||||
|
||||
rts
|
||||
@@ -152,10 +165,11 @@ execute_statements_CD:
|
||||
|
||||
asl
|
||||
tax
|
||||
jmp (command_CD_jumptable - 2, x)
|
||||
jmp (command_02_jumptable - 2, x)
|
||||
|
||||
#endif
|
||||
|
||||
#endif // !HAS_SMALL_BASIC
|
||||
|
||||
execute_statements_end_of_line:
|
||||
|
||||
|
||||
@@ -79,6 +79,7 @@ list_print_loop:
|
||||
jmp list_is_literal
|
||||
|
||||
list_not_quote:
|
||||
|
||||
// Check quote mode, and display as literal if required
|
||||
ldx QTSW
|
||||
bne list_is_literal
|
||||
@@ -86,87 +87,19 @@ list_not_quote:
|
||||
cmp #$FF
|
||||
beq list_is_pi
|
||||
|
||||
// Check for extended BASIC tokens
|
||||
cmp #$01
|
||||
beq list_display_token_01
|
||||
#if !HAS_SMALL_BASIC
|
||||
cmp #$02
|
||||
beq list_display_token_02
|
||||
#endif
|
||||
|
||||
// Check for literals
|
||||
cmp #$7F
|
||||
bcc list_is_literal
|
||||
|
||||
// Display a token
|
||||
|
||||
list_display_token_CC:
|
||||
|
||||
cmp #$CC
|
||||
bne list_display_token_CD
|
||||
|
||||
// Fetch the sub-token
|
||||
|
||||
iny
|
||||
#if ROM_LAYOUT_M65
|
||||
jsr peek_via_OLDTXT
|
||||
#elif CONFIG_MEMORY_MODEL_60K
|
||||
ldx #<OLDTXT
|
||||
jsr peek_under_roms
|
||||
cmp #$00
|
||||
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
|
||||
jsr peek_under_roms_via_OLDTXT
|
||||
cmp #$00
|
||||
#else // CONFIG_MEMORY_MODEL_38K
|
||||
lda (OLDTXT),y
|
||||
#endif
|
||||
|
||||
// Save registers
|
||||
tax
|
||||
pha
|
||||
phy_trash_a
|
||||
|
||||
// Subtract $1 from token to get offset in token list
|
||||
dex
|
||||
|
||||
// Check if token is known
|
||||
cpx #TK__MAXTOKEN_keywords_CC
|
||||
bcs list_display_unknown_token // XXX consider displaying two question marks here
|
||||
|
||||
// Now ask for it to be printed
|
||||
jsr print_packed_keyword_CC
|
||||
|
||||
jmp_8 list_token_displayed
|
||||
|
||||
|
||||
list_display_token_CD:
|
||||
|
||||
cmp #$CD
|
||||
bne list_display_token_V2
|
||||
|
||||
// Fetch the sub-token
|
||||
|
||||
iny
|
||||
#if ROM_LAYOUT_M65
|
||||
jsr peek_via_OLDTXT
|
||||
#elif CONFIG_MEMORY_MODEL_60K
|
||||
ldx #<OLDTXT
|
||||
jsr peek_under_roms
|
||||
cmp #$00
|
||||
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
|
||||
jsr peek_under_roms_via_OLDTXT
|
||||
cmp #$00
|
||||
#else // CONFIG_MEMORY_MODEL_38K
|
||||
lda (OLDTXT),y
|
||||
#endif
|
||||
|
||||
// Save registers
|
||||
tax
|
||||
pha
|
||||
phy_trash_a
|
||||
|
||||
// Subtract $1 from token to get offset in token list
|
||||
dex
|
||||
|
||||
// Check if token is known
|
||||
cpx #TK__MAXTOKEN_keywords_CD
|
||||
bcs list_display_unknown_token // XXX consider displaying two question marks here
|
||||
|
||||
// Now ask for it to be printed
|
||||
jsr print_packed_keyword_CD
|
||||
|
||||
jmp_8 list_token_displayed
|
||||
// Display a token - V2 dialect
|
||||
|
||||
list_display_token_V2:
|
||||
|
||||
@@ -254,4 +187,67 @@ list_display_unknown_token:
|
||||
|
||||
jmp_8 list_is_unknown
|
||||
|
||||
list_display_token_01:
|
||||
|
||||
// Display a 2-byte token - for extended BASIC
|
||||
jsr list_fetch_subtoken
|
||||
|
||||
// Check if token is known
|
||||
cpx #TK__MAXTOKEN_keywords_01
|
||||
bcs list_is_unknown // XXX consider displaying two question marks here, not one
|
||||
|
||||
// Now ask for it to be printed
|
||||
phy_trash_a
|
||||
jsr print_packed_keyword_01
|
||||
ply_trash_a
|
||||
|
||||
// Next iteration
|
||||
jmp list_print_loop
|
||||
|
||||
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
list_display_token_02:
|
||||
|
||||
// Display a 2-byte token - for extended BASIC
|
||||
jsr list_fetch_subtoken
|
||||
|
||||
// Check if token is known
|
||||
cpx #TK__MAXTOKEN_keywords_02
|
||||
bcs list_is_unknown // XXX consider displaying two question marks here, not one
|
||||
|
||||
// Now ask for it to be printed
|
||||
phy_trash_a
|
||||
jsr print_packed_keyword_02
|
||||
ply_trash_a
|
||||
|
||||
// Next iteration
|
||||
jmp list_print_loop
|
||||
|
||||
#endif
|
||||
|
||||
list_fetch_subtoken:
|
||||
|
||||
// Fetch the sub-token
|
||||
|
||||
iny
|
||||
#if ROM_LAYOUT_M65
|
||||
jsr peek_via_OLDTXT
|
||||
#elif CONFIG_MEMORY_MODEL_60K
|
||||
ldx #<OLDTXT
|
||||
jsr peek_under_roms
|
||||
cmp #$00
|
||||
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
|
||||
jsr peek_under_roms_via_OLDTXT
|
||||
cmp #$00
|
||||
#else // CONFIG_MEMORY_MODEL_38K
|
||||
lda (OLDTXT),y
|
||||
#endif
|
||||
|
||||
// Subtract $1 from token to get offset in token list
|
||||
tax
|
||||
dex
|
||||
|
||||
rts
|
||||
|
||||
#endif // ROM layout
|
||||
@@ -39,18 +39,22 @@ print_packed_misc_str: // .X - misc string index
|
||||
|
||||
#endif
|
||||
|
||||
print_packed_keyword_CC: // .X - token number
|
||||
print_packed_keyword_01: // .X - token number
|
||||
|
||||
lda #<packed_freq_keywords_CC
|
||||
ldy #>packed_freq_keywords_CC
|
||||
lda #<packed_freq_keywords_01
|
||||
ldy #>packed_freq_keywords_01
|
||||
bne print_freq_packed_string // branch always
|
||||
|
||||
print_packed_keyword_CD: // .X - token number
|
||||
#if !HAS_SMALL_BASIC
|
||||
|
||||
lda #<packed_freq_keywords_CD
|
||||
ldy #>packed_freq_keywords_CD
|
||||
print_packed_keyword_02: // .X - token number
|
||||
|
||||
lda #<packed_freq_keywords_02
|
||||
ldy #>packed_freq_keywords_02
|
||||
bne print_freq_packed_string // branch always
|
||||
|
||||
#endif
|
||||
|
||||
print_packed_keyword_V2: // .X - token number
|
||||
|
||||
lda #<packed_freq_keywords_V2
|
||||
|
||||
+31
-73
@@ -173,78 +173,39 @@ const StringEntryList GLOBAL_Keywords_V2 = { ListType::KEYWORDS, "keywords_V2",
|
||||
{ true, true, true, true, "KV2_CB", "GO", 0 }, // https://en.wikipedia.org/wiki/Goto
|
||||
} };
|
||||
|
||||
// extended BASIC keywords - reserved for generic (hardware independent) BASIC commands
|
||||
// extended BASIC keywords - list reserved for small BASIC commands, suitable for inclusion in non-extended ROMs
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_CC = { ListType::KEYWORDS, "keywords_CC",
|
||||
const StringEntryList GLOBAL_Keywords_01 = { ListType::KEYWORDS, "keywords_01",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
{ true, true, true, true, "KCC_01", "OLD", }, // Not present in CBM BASIC dialects, but common to some extensions (*)
|
||||
{ true, true, true, true, "KCC_02", "MERGE", }, // Not present in CBM BASIC dialects, but common to some extensions (*)
|
||||
{ true, true, true, true, "KCC_03", "BLOAD", }, // http://www.antonis.de/qbebooks/gwbasman/bload.html
|
||||
{ true, true, true, true, "KCC_04", "BSAVE", }, // http://www.antonis.de/qbebooks/gwbasman/bsave.html
|
||||
{ true, true, true, true, "KCC_05", "BVERIFY", },
|
||||
{ true, true, true, true, "KCC_06", "CLEAR", }, // Not present in CBM BASIC dialects, OpenROMs specific
|
||||
{ true, true, true, true, "KCC_07", "DISPOSE", }, // Not present in CBM BASIC dialects, OpenROMs specific
|
||||
{ false, true, false, false, "KCC_08", "COLD", }, // Not present in CBM BASIC dialects, but common to some extensions (*)
|
||||
{ false, true, false, false, "KCC_09", "MEM", }, // Not present in CBM BASIC dialects, OpenROMs specific
|
||||
{ true, true, true, true, "K01_01", "SLOW", }, // https://en.wikipedia.org/wiki/Sinclair_BASIC - ZX81 variant
|
||||
{ true, true, true, true, "K01_02", "FAST", }, // https://en.wikipedia.org/wiki/Sinclair_BASIC - ZX81 variant
|
||||
{ true, true, true, true, "K01_03", "OLD", }, // Not present in CBM BASIC dialects, but common to some extensions (*)
|
||||
|
||||
// (*) see https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/petcat.c
|
||||
|
||||
// NOTE! These commands are temporarily placed here, they should be a part of list 02!
|
||||
|
||||
{ true, true, true, true, "K02_01", "MERGE", }, // Not present in CBM BASIC dialects, but common to some extensions (*)
|
||||
{ true, true, true, true, "K02_02", "BLOAD", }, // http://www.antonis.de/qbebooks/gwbasman/bload.html
|
||||
{ true, true, true, true, "K02_03", "BSAVE", }, // http://www.antonis.de/qbebooks/gwbasman/bsave.html
|
||||
{ true, true, true, true, "K02_04", "BVERIFY", },
|
||||
{ true, true, true, true, "K02_05", "CLEAR", }, // Not present in CBM BASIC dialects, OpenROMs specific
|
||||
{ true, true, true, true, "K02_06", "DISPOSE", }, // Not present in CBM BASIC dialects, OpenROMs specific
|
||||
} };
|
||||
|
||||
// extended BASIC keywords - list reserved for generic (mostly hardware independent) BASIC commands
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_02 = { ListType::KEYWORDS, "keywords_02",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
|
||||
{ false, true, false, false, "K02_07", "COLD", }, // Not present in CBM BASIC dialects, but common to some extensions (*)
|
||||
{ false, true, false, false, "K02_08", "MEM", }, // Not present in CBM BASIC dialects, OpenROMs specific
|
||||
|
||||
// (*) see https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/petcat.c
|
||||
} };
|
||||
|
||||
// extended BASIC keywords - reserved for BASIC commands likely making sense on most C64-compatible machines
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_CD = { ListType::KEYWORDS, "keywords_CD",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
{ true, true, true, true, "KCD_01", "SLOW", }, // https://en.wikipedia.org/wiki/Sinclair_BASIC - ZX81 variant
|
||||
{ true, true, true, true, "KCD_02", "FAST", }, // https://en.wikipedia.org/wiki/Sinclair_BASIC - ZX81 variant
|
||||
} };
|
||||
|
||||
// extended BASIC keywords - reserved for board-specific BASIC commands
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_CE = { ListType::KEYWORDS, "keywords_CE",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
{ false, false, false, false, "KCE_01", "TESTCMD", },
|
||||
} };
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_CF = { ListType::KEYWORDS, "keywords_CF",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
{ false, false, false, false, "KCF_01", "TESTCMD", },
|
||||
} };
|
||||
|
||||
// extended BASIC keywords - reserved for generic (hardware independent) BASIC functions
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_D0 = { ListType::KEYWORDS, "keywords_D0",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
{ false, false, false, false, "KD0_01", "TESTFUN", },
|
||||
} };
|
||||
|
||||
// extended BASIC keywords - reserved for BASIC functions likely making sense on most C64-compatible machines
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_D1 = { ListType::KEYWORDS, "keywords_D1",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
{ false, false, false, false, "KD1_01", "TESTFUN", },
|
||||
} };
|
||||
|
||||
// extended BASIC keywords - reserved for board-specific BASIC functions
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_D2 = { ListType::KEYWORDS, "keywords_D2",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
{ false, false, false, false, "KD2_01", "TESTFUN", },
|
||||
} };
|
||||
|
||||
const StringEntryList GLOBAL_Keywords_D3 = { ListType::KEYWORDS, "keywords_D3",
|
||||
{
|
||||
// STD M65 U64 X16
|
||||
{ false, false, false, false, "KD3_01", "TESTFUN", },
|
||||
} };
|
||||
|
||||
|
||||
// BASIC errors - all dialects
|
||||
|
||||
/*
|
||||
@@ -1782,8 +1743,7 @@ void writeStrings()
|
||||
// Add input data to computation objects
|
||||
|
||||
dataSetX16.addStrings(GLOBAL_Keywords_V2);
|
||||
dataSetX16.addStrings(GLOBAL_Keywords_CC);
|
||||
dataSetX16.addStrings(GLOBAL_Keywords_CD);
|
||||
dataSetX16.addStrings(GLOBAL_Keywords_01);
|
||||
dataSetX16.addStrings(GLOBAL_Errors);
|
||||
dataSetX16.addStrings(GLOBAL_MiscStrings);
|
||||
|
||||
@@ -1798,8 +1758,8 @@ void writeStrings()
|
||||
// Add input data to computation objects
|
||||
|
||||
dataSetM65.addStrings(GLOBAL_Keywords_V2);
|
||||
dataSetM65.addStrings(GLOBAL_Keywords_CC);
|
||||
dataSetM65.addStrings(GLOBAL_Keywords_CD);
|
||||
dataSetM65.addStrings(GLOBAL_Keywords_01);
|
||||
dataSetM65.addStrings(GLOBAL_Keywords_02);
|
||||
dataSetM65.addStrings(GLOBAL_Errors);
|
||||
dataSetM65.addStrings(GLOBAL_MiscStrings);
|
||||
|
||||
@@ -1814,8 +1774,7 @@ void writeStrings()
|
||||
// Add input data to computation objects
|
||||
|
||||
dataSetU64.addStrings(GLOBAL_Keywords_V2);
|
||||
dataSetU64.addStrings(GLOBAL_Keywords_CC);
|
||||
dataSetU64.addStrings(GLOBAL_Keywords_CD);
|
||||
dataSetU64.addStrings(GLOBAL_Keywords_01);
|
||||
dataSetU64.addStrings(GLOBAL_Errors);
|
||||
dataSetU64.addStrings(GLOBAL_MiscStrings);
|
||||
|
||||
@@ -1830,8 +1789,7 @@ void writeStrings()
|
||||
// Add input data to computation objects
|
||||
|
||||
dataSetSTD.addStrings(GLOBAL_Keywords_V2);
|
||||
dataSetSTD.addStrings(GLOBAL_Keywords_CC);
|
||||
dataSetSTD.addStrings(GLOBAL_Keywords_CD);
|
||||
dataSetSTD.addStrings(GLOBAL_Keywords_01);
|
||||
dataSetSTD.addStrings(GLOBAL_Errors);
|
||||
dataSetSTD.addStrings(GLOBAL_MiscStrings);
|
||||
|
||||
|
||||
Reference in new issue
Block a user