implemented some missing parts for 46K/50K/60K memory models

This commit is contained in:
FeralChild64 committed 2020-08-01 16:52:24 +02:00
1 parent b047c456b1
commit 0d903a8c16
3 files changed
+48 -6

No files matched your search

@@ -115,7 +115,14 @@ assign_variable_common_1:
// Get array address
jsr find_array
bcc !+
// Array does not exist - we will have to create one with default parameters
// XXX implement this
jmp do_NOT_IMPLEMENTED_error
!:
// Fetch the number of dimensions
pla
@@ -101,15 +101,18 @@ fetch_variable_arr_calc_pos_loop:
#if CONFIG_MEMORY_MODEL_60K
// XXX
// XXX
// XXX
ldx #<VARPNT
jsr peek_under_roms
sta __FAC1+3
iny
jsr peek_under_roms
sta __FAC1+4
iny
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
// XXX
// XXX
// XXX
jsr helper_array_fetch_dimension
#else // CONFIG_MEMORY_MODEL_38
@@ -0,0 +1,32 @@
// #LAYOUT# STD * #TAKE-HIGH
// #LAYOUT# * BASIC_0 #TAKE-HIGH
// #LAYOUT# * * #IGNORE
// This has to go $E000 or above - routine below banks out the main BASIC ROM!
#if CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
helper_array_fetch_dimension:
// Unmap BASIC lower ROM
lda #$26
sta CPU_R6510
// Fetch the dimension
lda (VARPNT), y
sta __FAC1+3
iny
lda (VARPNT), y
sta __FAC1+4
iny
// Restore default memory mapping
lda #$27
sta CPU_R6510
rts
#endif