adapted BASIC to CRT memory layout, updated binaries
This commit is contained in:
1 parent
222b72cf7e
commit
732ba36d87
54 files changed
+461
-91
No files matched your search
@@ -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,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,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,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,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,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,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,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,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,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,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 }
|
||||
} }
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
;; #LAYOUT# CRT BASIC_1 #TAKE
|
||||
;; #LAYOUT# * * #IGNORE
|
||||
|
||||
+nop
|
||||
@@ -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,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,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,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,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,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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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,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
|
||||
|
||||
@@ -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,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,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,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,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,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'
|
||||
|
||||
Reference in new issue
Block a user