LINKPRG moved to Mega65 extra ROM

This commit is contained in:
FeralChild64 committed 2020-02-27 21:53:36 +01:00
1 parent 56a1431db8
commit 4b381db9f7
5 files changed
+61 -20

No files matched your search

+29 -9
View File
@@ -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
+3 -1
View File
@@ -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
+12 -2
View File
@@ -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:
+10 -3
View File
@@ -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