adapted BASIC to CRT memory layout, updated binaries

This commit is contained in:
FeralChild64 committed 2020-10-23 14:38:14 +02:00
1 parent 222b72cf7e
commit 732ba36d87
54 files changed
+461 -91

No files matched your search

+1
View File
@@ -1,6 +1,7 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE-FLOAT
;; #LAYOUT# M65 BASIC_1 #TAKE-FLOAT
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -21,18 +21,22 @@
!set ITEM_00 = cmd_cold
!set ITEM_01 = cmd_mem
!set ITEM_02 = cmd_sysinfo
!ifdef CONFIG_MB_M65 {
!set ITEM_02 = cmd_sysinfo
}
!ifndef HAS_OPCODES_65C02 {
command_02_jumptable_lo:
!byte <(ITEM_00-1), <(ITEM_01-1), <(ITEM_02-1)
!byte <(ITEM_00-1), <(ITEM_01-1)
!ifdef CONFIG_MB_M65 { !byte <(ITEM_02-1) }
command_02_jumptable_hi:
!byte >(ITEM_00-1), >(ITEM_01-1), >(ITEM_02-1)
!byte >(ITEM_00-1), >(ITEM_01-1)
!ifdef CONFIG_MB_M65 { !byte >(ITEM_02-1) }
} else { ; HAS_OPCODES_65C02
@@ -40,5 +44,6 @@ command_02_jumptable:
; Note: 65C02 has the page boundary vector bug fixed!
!word ITEM_00, ITEM_01, ITEM_02
!word ITEM_00, ITEM_01
!ifdef CONFIG_MB_M65 { !word ITEM_02 }
} }
+20 -8
View File
@@ -1,38 +1,50 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# M65 * #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
!ifndef HAS_SMALL_BASIC {
; First perform the garbage collection - to be able to determine real values
!ifdef SEGMENT_M65_BASIC_0 {
cmd_mem:
; First perform the garbage collection - to be able to determine real values
jsr varstr_garbage_collect
jsr map_BASIC_1
jsr (VB1__cmd_mem_cont)
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
cmd_mem:
jsr varstr_garbage_collect
jsr map_BASIC_1
jsr JB1__cmd_mem_cont
jmp map_NORMAL
} else ifdef SEGMENT_M65_BASIC_1 {
cmd_mem_cont:
} else ifdef SEGMENT_CRT_BASIC_1 {
cmd_mem_cont:
} else {
cmd_mem:
; First perform the garbage collection - to be able to determine real values
jsr varstr_garbage_collect
}
!ifndef SEGMENT_M65_BASIC_0 {
!ifndef SEGMENT_BASIC_0 {
; Print header
@@ -1,4 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -19,6 +20,12 @@ helper_ask_if_sure:
jsr (VB1__helper_ask_if_sure)
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
jsr map_BASIC_1
jsr JB1__helper_ask_if_sure
jmp map_NORMAL
} else {
; First check, if we are in direct mode,; if not, do not ask
@@ -1,4 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -1,4 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -1,4 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -0,0 +1,54 @@
;; #LAYOUT# CRT BASIC_0 #TAKE-FLOAT
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# * * #IGNORE
;
; Definitions for communication with cartridge segment BASIC_1 from BASIC_0
;
!ifdef SEGMENT_BASIC_0 {
; Label definitions
!addr JB1__INITMSG = $8000 + 3 * 0
!addr JB1__LINKPRG = $8000 + 3 * 1
!addr JB1__tokenise_line = $8000 + 3 * 2
!addr JB1__list_single_line = $8000 + 3 * 3
!addr JB1__print_packed_error = $8000 + 3 * 4
!addr JB1__print_packed_misc_str = $8000 + 3 * 5
!addr JB1__do_new = $8000 + 3 * 6
!addr JB1__do_clr = $8000 + 3 * 7
!addr JB1__do_restore = $8000 + 3 * 8
!addr JB1__cmd_mem_cont = $8000 + 3 * 9
!addr JB1__prepare_direct_execution = $8000 + 3 * 10
!addr JB1__helper_ask_if_sure = $8000 + 3 * 11
!ifdef CONFIG_DOS_WEDGE {
!addr JB1__wedge_dos = $8000 + 3 * 12
}
} else {
; Jump table (Open ROMs private!)
jmp INITMSG
jmp LINKPRG
jmp tokenise_line
jmp list_single_line
jmp print_packed_error
jmp print_packed_misc_str
jmp do_new
jmp do_clr
jmp do_restore
jmp cmd_mem_cont
jmp prepare_direct_execution
jmp helper_ask_if_sure
!ifdef CONFIG_DOS_WEDGE {
jmp wedge_dos
}
}
+1
View File
@@ -0,0 +1 @@
This particular address is not for interoperability - we had to choose some fixed location for the extended ROM jumptable, beginning of the mapped memory block is just sane.
+41
View File
@@ -0,0 +1,41 @@
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# * * #IGNORE
;; #IMPORT# BASIC_0 = BASIC_0_combined.sym
;; #IMPORT# KERNAL_0 = KERNAL_0_combined.sym
;
; Definitions for calling segments BASIC_0 and KERNAL_0 routines from BASIC_1
;
;; #ALIAS# peek_via_OLDTXT = BASIC_0.proxy_B1_peek_via_OLDTXT
;; #ALIAS# poke_via_OLDTXT = BASIC_0.proxy_B1_poke_via_OLDTXT
;; #ALIAS# JCHROUT = BASIC_0.proxy_B1_JCHROUT
;; #ALIAS# JCLALL = BASIC_0.proxy_B1_JCLALL
;; #ALIAS# plot_set = BASIC_0.proxy_B1_plot_set
;; #ALIAS# JCLOSE = BASIC_0.proxy_B1_JCLOSE
;; #ALIAS# JOPEN = BASIC_0.proxy_B1_JOPEN
;; #ALIAS# JMEMTOP = KERNAL_0.JMEMTOP
;; #ALIAS# JSETFLS = KERNAL_0.JSETFLS
;; #ALIAS# JSETNAM = KERNAL_0.JSETNAM
;; #ALIAS# JGETIN = KERNAL_0.JGETIN
;; #ALIAS# JCHKIN = BASIC_0.proxy_B1_JCHKIN
;; #ALIAS# JCHRIN = BASIC_0.proxy_B1_JCHRIN
;; #ALIAS# JREADST = KERNAL_0.JREADST
;; #ALIAS# JSCREEN = KERNAL_0.JSCREEN
;; #ALIAS# SELDEV = KERNAL_0.SELDEV
;; #ALIAS# init_oldtxt = BASIC_0.init_oldtxt
;; #ALIAS# tmpstr_free_all_reset = BASIC_0.tmpstr_free_all_reset
;; #ALIAS# print_hex_byte = BASIC_0.proxy_B1_print_hex_byte
;; #ALIAS# print_integer = BASIC_0.proxy_B1_print_integer
;; #ALIAS# print_return = BASIC_0.proxy_B1_print_return
;; #ALIAS# print_space = BASIC_0.proxy_B1_print_space
;; #ALIAS# print_features = BASIC_0.proxy_B1_print_features
;; #ALIAS# do_error_fetch = BASIC_0.do_error_fetch
;; #ALIAS# do_basic_error = BASIC_0.do_basic_error
;; #ALIAS# str_rev_question = BASIC_0.str_rev_question
;; #ALIAS# fetch_character = BASIC_0.proxy_B1_fetch_character
;; #ALIAS# fetch_character_skip_spaces = BASIC_0.proxy_B1_fetch_character_skip_spaces
;; #ALIAS# fetch_uint8 = BASIC_0.proxy_B1_fetch_uint8
;; #ALIAS# shell_main_loop = BASIC_0.proxy_B1_shell_main_loop
+130
View File
@@ -0,0 +1,130 @@
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
;
; Proxies for calling segment BASIC_0 and KERNAL_0 routines from BASIC_1
;
proxy_B1_peek_via_OLDTXT:
jsr map_NORMAL
!ifdef CONFIG_MEMORY_MODEL_60K {
!error "not implemented"
} else ifdef CONFIG_MEMORY_MODEL_46K_OR_50K {
jsr peek_under_roms_via_OLDTXT
cmp #$00
} else { ; CONFIG_MEMORY_MODEL_38K
lda (OLDTXT),y
}
jmp map_BASIC_1 ; do not do 'bra' - we want this one as fast as possible
proxy_B1_poke_via_OLDTXT:
jsr map_NORMAL
!ifdef CONFIG_MEMORY_MODEL_60K {
!error "not implemented"
} else { ; CONFIG_MEMORY_MODEL_38K || CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
sta (OLDTXT),y
}
jmp map_BASIC_1
proxy_B1_JCLALL:
jsr map_NORMAL
jsr JCLALL
jmp map_BASIC_1
!ifdef CONFIG_DOS_WEDGE {
proxy_B1_JCLOSE:
jsr map_NORMAL
jsr JCLOSE
jmp map_BASIC_1
proxy_B1_JOPEN:
jsr map_NORMAL
jsr JOPEN
jmp map_BASIC_1
}
proxy_B1_JCHKIN:
jsr map_NORMAL
jsr JCHKIN
jmp map_BASIC_1
proxy_B1_JCHRIN:
jsr map_NORMAL
jsr JCHRIN
jmp map_BASIC_1
proxy_B1_JCHROUT:
jsr map_NORMAL
jsr JCHROUT
jmp map_BASIC_1
proxy_B1_print_hex_byte:
jsr map_NORMAL
jsr print_hex_byte
jmp map_BASIC_1
proxy_B1_print_integer:
jsr map_NORMAL
jsr print_integer
jmp map_BASIC_1
proxy_B1_print_return:
jsr map_NORMAL
jsr print_return
jmp map_BASIC_1
proxy_B1_print_space:
jsr map_NORMAL
jsr print_space
jmp map_BASIC_1
proxy_B1_plot_set:
jsr map_NORMAL
jsr plot_set
jmp map_BASIC_1
!ifdef CONFIG_DOS_WEDGE {
proxy_B1_fetch_character:
jsr map_NORMAL
jsr fetch_character
jmp map_BASIC_1
proxy_B1_fetch_character_skip_spaces:
jsr map_NORMAL
jsr fetch_character_skip_spaces
jmp map_BASIC_1
proxy_B1_fetch_uint8:
jsr map_NORMAL
jsr fetch_uint8
jmp map_BASIC_1
proxy_B1_shell_main_loop:
jsr map_NORMAL
jmp shell_main_loop
}
-4
View File
@@ -1,4 +0,0 @@
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# * * #IGNORE
+nop
+15
View File
@@ -1,5 +1,6 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE-FLOAT
;; #LAYOUT# M65 BASIC_0 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE-FLOAT
;; #LAYOUT# X16 BASIC_0 #TAKE-OFFSET 2000
@@ -20,6 +21,12 @@ LINKPRG:
jsr (VB1__LINKPRG)
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
jsr map_BASIC_1
jsr JB1__LINKPRG
jmp map_NORMAL
} else {
; Start by getting pointer to the first line
@@ -31,6 +38,8 @@ linkprg_loop:
!ifdef CONFIG_MB_M65 {
jsr peek_via_OLDTXT
} else ifdef ROM_LAYOUT_CRT {
jsr peek_via_OLDTXT
} else ifdef CONFIG_MEMORY_MODEL_60K {
ldx #<OLDTXT+0
jsr peek_under_roms
@@ -55,6 +64,8 @@ linkprg_end_of_line_search:
!ifdef CONFIG_MB_M65 {
jsr peek_via_OLDTXT
} else ifdef ROM_LAYOUT_CRT {
jsr peek_via_OLDTXT
} else ifdef CONFIG_MEMORY_MODEL_60K {
ldx #<OLDTXT+0
jsr peek_under_roms
@@ -91,6 +102,8 @@ linkprg_end_of_line_search:
!ifdef CONFIG_MB_M65 {
jsr poke_via_OLDTXT
} else ifdef ROM_LAYOUT_CRT {
jsr poke_via_OLDTXT
} else ifdef CONFIG_MEMORY_MODEL_60K {
ldx #<OLDTXT+0
jsr poke_under_roms
@@ -105,6 +118,8 @@ linkprg_end_of_line_search:
!ifdef CONFIG_MB_M65 {
jsr poke_via_OLDTXT
} else ifdef ROM_LAYOUT_CRT {
jsr poke_via_OLDTXT
} else ifdef CONFIG_MEMORY_MODEL_60K {
jsr poke_under_roms
} else {
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+9 -1
View File
@@ -1,6 +1,8 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# M65 * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_0 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -20,6 +22,12 @@ tokenise_line:
jsr (VB1__tokenise_line)
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
jsr map_BASIC_1
jsr JB1__tokenise_line
jmp map_NORMAL
} else {
; Initialize variables
+9 -3
View File
@@ -1,4 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -46,6 +47,8 @@ do_kernal_error: ; .A = KERNAL error code, also almost mat
dex
!ifdef SEGMENT_M65_BASIC_1 {
jmp do_basic_error
} else ifdef SEGMENT_CRT_BASIC_1 {
jmp do_basic_error
} else {
bpl do_basic_error ; branch always
}
@@ -152,9 +155,9 @@ do_TO_MANY_FILES_error:
!byte $EA
!ifdef SEGMENT_M65_BASIC_1 {
jmp do_error_fetch
} else ifdef SEGMENT_CRT_BASIC_1 {
jmp do_error_fetch
} else {
; FALLTROUGH
@@ -185,8 +188,11 @@ do_error_fetch:
do_basic_error: ; error code in .X
!ifdef ROM_LAYOUT_M65 {
; Make sure we are back with normal memory map
!ifdef ROM_LAYOUT_M65 {
jsr map_NORMAL
} else ifdef ROM_LAYOUT_CRT {
jsr map_NORMAL
}
+21 -1
View File
@@ -1,6 +1,8 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# M65 * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_0 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -33,6 +35,24 @@ do_restore_end:
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
jsr map_BASIC_1
jsr JB1__do_new
jmp map_NORMAL
do_clr:
jsr map_BASIC_1
jsr JB1__do_clr
jmp map_NORMAL
do_restore:
jsr map_BASIC_1
jsr JB1__do_restore
jmp map_NORMAL
} else {
; See Computes Mapping the Commodore 64 - page 96
@@ -1,4 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -1,4 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -15,6 +16,12 @@ prepare_direct_execution:
jsr (VB1__prepare_direct_execution)
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
jsr map_BASIC_1
jsr JB1__prepare_direct_execution
jmp map_NORMAL
} else {
; Setup pointer to the statement
+6
View File
@@ -29,6 +29,12 @@ INITMSG_autoswitch:
jsr (VB1__INITMSG_autoswitch)
bra INITMSG_end
} else ifdef ROM_LAYOUT_CRT {
jsr map_BASIC_1
jsr JB1__INITMSG
jmp map_NORMAL
} else {
jmp initmsg_real
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+9 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -7,8 +7,16 @@
; Routine is too long to fit in the original location
!ifdef ROM_LAYOUT_CRT {
INITMSG:
} else {
initmsg_real:
}
; Clear the screen first, some cartridges (like IEEE-488) are leaving a mess on the screen
lda #147
jsr JCHROUT
+17 -3
View File
@@ -1,7 +1,7 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# M65 * #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -13,6 +13,12 @@ list_single_line:
jsr (VB1__list_single_line)
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
jsr map_BASIC_1
jsr JB1__list_single_line
jmp map_NORMAL
} else {
; Print line number - in a new line
@@ -21,6 +27,8 @@ list_single_line:
!ifdef CONFIG_MB_M65 {
jsr peek_via_OLDTXT
} else ifdef ROM_LAYOUT_CRT {
jsr peek_via_OLDTXT
} else ifdef CONFIG_MEMORY_MODEL_60K {
jsr peek_under_roms
} else ifdef CONFIG_MEMORY_MODEL_46K_OR_50K {
@@ -34,6 +42,8 @@ list_single_line:
!ifdef CONFIG_MB_M65 {
jsr peek_via_OLDTXT
} else ifdef ROM_LAYOUT_CRT {
jsr peek_via_OLDTXT
} else ifdef CONFIG_MEMORY_MODEL_60K {
jsr peek_under_roms
} else ifdef CONFIG_MEMORY_MODEL_46K_OR_50K {
@@ -58,6 +68,8 @@ list_print_loop:
!ifdef CONFIG_MB_M65 {
jsr peek_via_OLDTXT
} else ifdef ROM_LAYOUT_CRT {
jsr peek_via_OLDTXT
} else ifdef CONFIG_MEMORY_MODEL_60K {
ldx #<OLDTXT
jsr peek_under_roms
@@ -261,6 +273,8 @@ list_fetch_subtoken:
iny
!ifdef CONFIG_MB_M65 {
jsr peek_via_OLDTXT
} else ifdef ROM_LAYOUT_CRT {
jsr peek_via_OLDTXT
} else ifdef CONFIG_MEMORY_MODEL_60K {
ldx #<OLDTXT
jsr peek_under_roms
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+17 -3
View File
@@ -1,7 +1,7 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# M65 * #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
; This routine prints strings that have been packed using the 'generate_trings' tool.
@@ -22,6 +22,20 @@ print_packed_misc_str:
jsr (VB1__print_packed_misc_str)
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
print_packed_error:
jsr map_BASIC_1
jsr JB1__print_packed_error
jmp map_NORMAL
print_packed_misc_str:
jsr map_BASIC_1
jsr JB1__print_packed_misc_str
jmp map_NORMAL
} else {
!ifndef CONFIG_COMPRESSION_LVL_2 {
+1 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# X16 BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
+7 -1
View File
@@ -1,5 +1,5 @@
;; #LAYOUT# STD * #TAKE
;; #LAYOUT# CRT BASIC_0 #TAKE
;; #LAYOUT# CRT BASIC_1 #TAKE
;; #LAYOUT# M65 BASIC_1 #TAKE
;; #LAYOUT# * BASIC_0 #TAKE
;; #LAYOUT# * * #IGNORE
@@ -18,6 +18,12 @@ wedge_dos:
jsr (VB1__wedge_dos)
jmp map_NORMAL
} else ifdef SEGMENT_CRT_BASIC_0 {
jsr map_BASIC_1
jsr JB1__wedge_dos
jmp map_NORMAL
} else {
; Prepare buffer - finish it with '0'