LINKPRG moved to Mega65 extra ROM
This commit is contained in:
1 parent
56a1431db8
commit
4b381db9f7
5 files changed
+61
-20
No files matched your search
@@ -1,6 +1,7 @@
|
|||||||
// #LAYOUT# STD * #TAKE
|
// #LAYOUT# STD * #TAKE
|
||||||
|
// #LAYOUT# M65 BASIC_0 #TAKE
|
||||||
|
// #LAYOUT# M65 BASIC_1 #TAKE-FLOAT
|
||||||
// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000
|
// #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000
|
||||||
// #LAYOUT# * BASIC_0 #TAKE
|
|
||||||
// #LAYOUT# * * #IGNORE
|
// #LAYOUT# * * #IGNORE
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -12,6 +13,14 @@
|
|||||||
|
|
||||||
LINKPRG:
|
LINKPRG:
|
||||||
|
|
||||||
|
#if (ROM_LAYOUT_M65 && SEGMENT_BASIC_0)
|
||||||
|
|
||||||
|
jsr map_BASIC_1
|
||||||
|
jsr_ind VB1__LINKPRG
|
||||||
|
jmp map_NORMAL
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
// Start by getting pointer to the first line
|
// Start by getting pointer to the first line
|
||||||
jsr init_oldtxt
|
jsr init_oldtxt
|
||||||
|
|
||||||
@@ -19,11 +28,13 @@ linkprg_loop:
|
|||||||
// Is the pointer to the end of the program
|
// Is the pointer to the end of the program
|
||||||
ldy #1
|
ldy #1
|
||||||
|
|
||||||
#if CONFIG_MEMORY_MODEL_60K
|
#if ROM_LAYOUT_M65
|
||||||
|
jsr peek_via_OLDTXT
|
||||||
|
#elif CONFIG_MEMORY_MODEL_60K
|
||||||
ldx #<OLDTXT+0
|
ldx #<OLDTXT+0
|
||||||
jsr peek_under_roms
|
jsr peek_under_roms
|
||||||
cmp #$00
|
cmp #$00
|
||||||
#else // CONFIG_MEMORY_MODEL_38K
|
#else
|
||||||
lda (OLDTXT),y
|
lda (OLDTXT),y
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -38,10 +49,12 @@ linkprg_loop:
|
|||||||
|
|
||||||
linkprg_end_of_line_search:
|
linkprg_end_of_line_search:
|
||||||
|
|
||||||
#if CONFIG_MEMORY_MODEL_60K
|
#if ROM_LAYOUT_M65
|
||||||
|
jsr peek_via_OLDTXT
|
||||||
|
#elif CONFIG_MEMORY_MODEL_60K
|
||||||
ldx #<OLDTXT+0
|
ldx #<OLDTXT+0
|
||||||
jsr peek_under_roms
|
jsr peek_under_roms
|
||||||
#else // CONFIG_MEMORY_MODEL_38K
|
#else
|
||||||
lda (OLDTXT),y
|
lda (OLDTXT),y
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -70,10 +83,12 @@ linkprg_end_of_line_search:
|
|||||||
php
|
php
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
#if CONFIG_MEMORY_MODEL_60K
|
#if ROM_LAYOUT_M65
|
||||||
|
jsr poke_via_OLDTXT
|
||||||
|
#elif CONFIG_MEMORY_MODEL_60K
|
||||||
ldx #<OLDTXT+0
|
ldx #<OLDTXT+0
|
||||||
jsr poke_under_roms
|
jsr poke_under_roms
|
||||||
#else // CONFIG_MEMORY_MODEL_38K
|
#else
|
||||||
sta (OLDTXT),y
|
sta (OLDTXT),y
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -82,9 +97,11 @@ linkprg_end_of_line_search:
|
|||||||
adc #0
|
adc #0
|
||||||
ldy #1
|
ldy #1
|
||||||
|
|
||||||
#if CONFIG_MEMORY_MODEL_60K
|
#if ROM_LAYOUT_M65
|
||||||
|
jsr poke_via_OLDTXT
|
||||||
|
#elif CONFIG_MEMORY_MODEL_60K
|
||||||
jsr poke_under_roms
|
jsr poke_under_roms
|
||||||
#else // CONFIG_MEMORY_MODEL_38K
|
#else
|
||||||
sta (OLDTXT),y
|
sta (OLDTXT),y
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -93,3 +110,6 @@ linkprg_end_of_line_search:
|
|||||||
sta OLDTXT+0
|
sta OLDTXT+0
|
||||||
|
|
||||||
jmp linkprg_loop
|
jmp linkprg_loop
|
||||||
|
|
||||||
|
|
||||||
|
#endif // ROM layout
|
||||||
@@ -12,17 +12,19 @@
|
|||||||
// Label definitions
|
// Label definitions
|
||||||
|
|
||||||
.label VB1__INITMSG = $4000 + 2 * 0
|
.label VB1__INITMSG = $4000 + 2 * 0
|
||||||
.label VB1__tokenise_line = $4000 + 2 * 1
|
.label VB1__LINKPRG = $4000 + 2 * 1
|
||||||
.label VB1__list_single_line = $4000 + 2 * 2
|
.label VB1__tokenise_line = $4000 + 2 * 2
|
||||||
.label VB1__print_packed_message = $4000 + 2 * 3
|
.label VB1__list_single_line = $4000 + 2 * 3
|
||||||
.label VB1__basic_do_clr = $4000 + 2 * 4
|
.label VB1__print_packed_message = $4000 + 2 * 4
|
||||||
.label VB1__basic_do_new = $4000 + 2 * 5
|
.label VB1__basic_do_clr = $4000 + 2 * 5
|
||||||
|
.label VB1__basic_do_new = $4000 + 2 * 6
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
// Vector table (OpenROMs private!)
|
// Vector table (OpenROMs private!)
|
||||||
|
|
||||||
.word INITMSG
|
.word INITMSG
|
||||||
|
.word LINKPRG
|
||||||
.word tokenise_line
|
.word tokenise_line
|
||||||
.word list_single_line
|
.word list_single_line
|
||||||
.word print_packed_message
|
.word print_packed_message
|
||||||
|
|||||||
@@ -8,10 +8,12 @@
|
|||||||
#import "BASIC_0_combined.sym"
|
#import "BASIC_0_combined.sym"
|
||||||
|
|
||||||
|
|
||||||
.label peek_under_roms = BASIC_0.proxy_B1_peek_under_roms
|
.label peek_via_OLDTXT = BASIC_0.proxy_B1_peek_via_OLDTXT
|
||||||
|
.label poke_via_OLDTXT = BASIC_0.proxy_B1_poke_via_OLDTXT
|
||||||
.label JCHROUT = BASIC_0.proxy_B1_JCHROUT
|
.label JCHROUT = BASIC_0.proxy_B1_JCHROUT
|
||||||
.label JMEMTOP = KERNAL_0.JMEMTOP
|
.label JMEMTOP = KERNAL_0.JMEMTOP
|
||||||
.label plot_set = KERNAL_0.plot_set
|
.label plot_set = KERNAL_0.plot_set
|
||||||
|
.label init_oldtxt = BASIC_0.init_oldtxt
|
||||||
.label rom_revision_basic_string = BASIC_0.rom_revision_basic_string
|
.label rom_revision_basic_string = BASIC_0.rom_revision_basic_string
|
||||||
.label print_integer = BASIC_0.proxy_B1_print_integer
|
.label print_integer = BASIC_0.proxy_B1_print_integer
|
||||||
.label print_return = BASIC_0.proxy_B1_print_return
|
.label print_return = BASIC_0.proxy_B1_print_return
|
||||||
|
|||||||
@@ -6,16 +6,26 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
proxy_B1_peek_under_roms:
|
proxy_B1_peek_via_OLDTXT:
|
||||||
|
|
||||||
jsr map_NORMAL
|
jsr map_NORMAL
|
||||||
#if CONFIG_MEMORY_MODEL_60K
|
#if CONFIG_MEMORY_MODEL_60K
|
||||||
jsr peek_under_roms
|
.error "not implemented"
|
||||||
#else // CONFIG_MEMORY_MODEL_38K
|
#else // CONFIG_MEMORY_MODEL_38K
|
||||||
lda (OLDTXT),y
|
lda (OLDTXT),y
|
||||||
#endif
|
#endif
|
||||||
jmp map_BASIC_1
|
jmp map_BASIC_1
|
||||||
|
|
||||||
|
proxy_B1_poke_via_OLDTXT:
|
||||||
|
|
||||||
|
jsr map_NORMAL
|
||||||
|
#if CONFIG_MEMORY_MODEL_60K
|
||||||
|
.error "not implemented"
|
||||||
|
#else // CONFIG_MEMORY_MODEL_38K
|
||||||
|
sta (OLDTXT),y
|
||||||
|
#endif
|
||||||
|
jmp map_BASIC_1
|
||||||
|
|
||||||
|
|
||||||
proxy_B1_JCHROUT:
|
proxy_B1_JCHROUT:
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ list_single_line:
|
|||||||
// Print line number
|
// Print line number
|
||||||
ldy #3
|
ldy #3
|
||||||
|
|
||||||
#if ROM_LAYOUT_M65 || CONFIG_MEMORY_MODEL_60K
|
#if ROM_LAYOUT_M65
|
||||||
|
jsr peek_via_OLDTXT
|
||||||
|
#elif CONFIG_MEMORY_MODEL_60K
|
||||||
jsr peek_under_roms
|
jsr peek_under_roms
|
||||||
#else
|
#else
|
||||||
lda (OLDTXT),y
|
lda (OLDTXT),y
|
||||||
@@ -25,7 +27,9 @@ list_single_line:
|
|||||||
pha
|
pha
|
||||||
dey
|
dey
|
||||||
|
|
||||||
#if ROM_LAYOUT_M65 || CONFIG_MEMORY_MODEL_60K
|
#if ROM_LAYOUT_M65
|
||||||
|
jsr peek_via_OLDTXT
|
||||||
|
#elif CONFIG_MEMORY_MODEL_60K
|
||||||
jsr peek_under_roms
|
jsr peek_under_roms
|
||||||
#else
|
#else
|
||||||
lda (OLDTXT),y
|
lda (OLDTXT),y
|
||||||
@@ -42,9 +46,12 @@ list_single_line:
|
|||||||
sta QTSW
|
sta QTSW
|
||||||
|
|
||||||
ldy #4
|
ldy #4
|
||||||
|
|
||||||
list_print_loop:
|
list_print_loop:
|
||||||
|
|
||||||
#if ROM_LAYOUT_M65 || CONFIG_MEMORY_MODEL_60K
|
#if ROM_LAYOUT_M65
|
||||||
|
jsr peek_via_OLDTXT
|
||||||
|
#elif CONFIG_MEMORY_MODEL_60K
|
||||||
ldx #<OLDTXT
|
ldx #<OLDTXT
|
||||||
jsr peek_under_roms
|
jsr peek_under_roms
|
||||||
cmp #$00
|
cmp #$00
|
||||||
|
|||||||
Reference in new issue
Block a user