diff --git a/src/aliases/,aliases_ram_lowmem.s b/src/aliases/,aliases_ram_lowmem.s index d673f7bc..f0f4438a 100644 --- a/src/aliases/,aliases_ram_lowmem.s +++ b/src/aliases/,aliases_ram_lowmem.s @@ -35,8 +35,8 @@ .label RESHO = $26 // $26-$2A temporary variables, [!] our usage might be different .label TXTTAB = $2B // $2B-$2C start of BASIC code .label VARTAB = $2D // $2D-$2E end of BASIC code, start of variables - .label ARYTAB = $2F // $2F-$30 -- NOT IMPLEMENTED -- - .label STREND = $31 // $31-$32 -- NOT IMPLEMENTED -- + .label ARYTAB = $2F // $2F-$30 pointer to start of array storage + .label STREND = $31 // $31-$32 pointer to start of free RAM .label FRETOP = $33 // $33-$34 pointer to bottom of strings area .label FRESPC = $35 // $35-$36 [!] our implementation uses this as temporary string pointer .label MEMSIZ = $37 // $37-$38 highest address of BASIC memory + 1 diff --git a/src/basic/basic_commands/cmd__jumptable.s b/src/basic/basic_commands/cmd__jumptable.s index a23533a4..321ebb31 100644 --- a/src/basic/basic_commands/cmd__jumptable.s +++ b/src/basic/basic_commands/cmd__jumptable.s @@ -17,7 +17,7 @@ cmd_data, cmd_inputhash, cmd_input, - cmd_dim, + array_create, // cmd_dim cmd_read, assign_variable, // cmd_let cmd_goto, diff --git a/src/basic/engine_variables/array_create.s b/src/basic/engine_variables/array_create.s new file mode 100644 index 00000000..159d9cc1 --- /dev/null +++ b/src/basic/engine_variables/array_create.s @@ -0,0 +1,10 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + + +array_create: + + // XXX + + jsr do_NOT_IMPLEMENTED_error diff --git a/src/basic/engine_variables/fetch_variable.s b/src/basic/engine_variables/fetch_variable.s index 1c99b4f6..29957635 100644 --- a/src/basic/engine_variables/fetch_variable.s +++ b/src/basic/engine_variables/fetch_variable.s @@ -15,6 +15,11 @@ fetch_variable: bcc !+ rts !: + // If this is array, redirect to appropriate routine + + bit DIMFLG + bmi_16 fetch_variable_arr + // Handle special variables - TI$, TI, ST jsr is_var_TI_string diff --git a/src/basic/engine_variables/fetch_variable_arr.s b/src/basic/engine_variables/fetch_variable_arr.s new file mode 100644 index 00000000..c2ce4581 --- /dev/null +++ b/src/basic/engine_variables/fetch_variable_arr.s @@ -0,0 +1,10 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + + +fetch_variable_arr: + + // XXX implement this + + jmp do_NOT_IMPLEMENTED_error diff --git a/src/basic/engine_variables/fetch_variable_name.s b/src/basic/engine_variables/fetch_variable_name.s index d4356d79..5fe50075 100644 --- a/src/basic/engine_variables/fetch_variable_name.s +++ b/src/basic/engine_variables/fetch_variable_name.s @@ -94,6 +94,9 @@ fetch_variable_type_string: fetch_variable_name_check_array: // XXX add check for array + lda #$00 + sta DIMFLG + clc rts