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
@@ -146,6 +146,9 @@ TOOLS_LIST = $(TOOL_GENERATE_CONSTANTS) \
|
||||
|
||||
# List of targets
|
||||
|
||||
TARGET_CHR_OR = build/chargen_openroms.rom
|
||||
TARGET_CHR_PXL = build/chargen_pxlfont.rom
|
||||
|
||||
TARGET_CUS_B = build/basic_custom.rom
|
||||
TARGET_GEN_B = build/basic_generic.rom
|
||||
TARGET_CRT_B = build/basic_generic_crt.rom
|
||||
@@ -270,17 +273,17 @@ build/tools/%: tools/%.cc tools/common.h
|
||||
|
||||
# Rules - CHARGEN
|
||||
|
||||
build/chargen_openroms.rom: $(TOOL_PNGPREPARE) assets/8x8font.png
|
||||
$(TARGET_CHR_OR): $(TOOL_PNGPREPARE) assets/8x8font.png
|
||||
@$(TOOL_PNGPREPARE) charrom assets/8x8font.png $@ 1>build/pngprepare.log
|
||||
|
||||
build/chargen_pxlfont.rom: bin/chargen_pxlfont_2.3.rom
|
||||
$(TARGET_CHR_PXL): bin/chargen_pxlfont_2.3.rom
|
||||
@cp $< $@
|
||||
|
||||
build/chargen_openroms.patched: $(TOOL_PATCH_CHARGEN) build/chargen_openroms.rom
|
||||
@$(TOOL_PATCH_CHARGEN) -i build/chargen_openroms.rom -o $@ -n 7px-OpenROMs
|
||||
build/chargen_openroms.patched: $(TOOL_PATCH_CHARGEN) $(TARGET_CHR_OR)
|
||||
@$(TOOL_PATCH_CHARGEN) -i $(TARGET_CHR_OR) -o $@ -n 7px-OpenROMs
|
||||
|
||||
build/chargen_pxlfont.patched: $(TOOL_PATCH_CHARGEN) build/chargen_pxlfont.rom
|
||||
@$(TOOL_PATCH_CHARGEN) -i build/chargen_pxlfont.rom -o $@ -n 6px-PXLfont
|
||||
build/chargen_pxlfont.patched: $(TOOL_PATCH_CHARGEN) $(TARGET_CHR_PXL)
|
||||
@$(TOOL_PATCH_CHARGEN) -i $(TARGET_CHR_PXL) -o $@ -n 6px-PXLfont
|
||||
|
||||
# Dependencies - BASIC, DOS, and KERNAL
|
||||
|
||||
@@ -591,7 +594,7 @@ build/padding_64_KB:
|
||||
@mkdir -p build
|
||||
@dd if=/dev/zero bs=8192 count=8 of=$@ status=none
|
||||
|
||||
$(TARGET_M65_x) $(TARGET_M65_x_PXL): $(SEG_LIST_M65) build/padding_64_KB build/chargen_openroms.rom build/chargen_openroms.patched build/chargen_pxlfont.rom build/chargen_pxlfont.patched
|
||||
$(TARGET_M65_x) $(TARGET_M65_x_PXL): $(SEG_LIST_M65) build/padding_64_KB $(TARGET_CHR_OR) build/chargen_openroms.patched $(TARGET_CHR_PXL) build/chargen_pxlfont.patched
|
||||
@echo
|
||||
@echo
|
||||
@echo
|
||||
@@ -602,7 +605,7 @@ $(TARGET_M65_x) $(TARGET_M65_x_PXL): $(SEG_LIST_M65) build/padding_64_KB build/c
|
||||
@cat $(DIR_M65)/kernal.seg_1 >> $(TARGET_M65_x)
|
||||
@cat $(DIR_M65)/basic.seg_1 >> $(TARGET_M65_x)
|
||||
@cat $(DIR_M65)/basic.seg_0 >> $(TARGET_M65_x)
|
||||
@cat build/chargen_openroms.rom >> $(TARGET_M65_x)
|
||||
@cat $(TARGET_CHR_OR) >> $(TARGET_M65_x)
|
||||
@cat build/chargen_openroms.patched >> $(TARGET_M65_x)
|
||||
@cat $(DIR_M65)/kernal.seg_0 >> $(TARGET_M65_x)
|
||||
@cat build/padding_64_KB >> $(TARGET_M65_x)
|
||||
@@ -616,7 +619,7 @@ $(TARGET_M65_x) $(TARGET_M65_x_PXL): $(SEG_LIST_M65) build/padding_64_KB build/c
|
||||
@cat $(DIR_M65)/kernal.seg_1 >> $(TARGET_M65_x_PXL)
|
||||
@cat $(DIR_M65)/basic.seg_1 >> $(TARGET_M65_x_PXL)
|
||||
@cat $(DIR_M65)/basic.seg_0 >> $(TARGET_M65_x_PXL)
|
||||
@cat build/chargen_pxlfont.rom >> $(TARGET_M65_x_PXL)
|
||||
@cat $(TARGET_CHR_PXL) >> $(TARGET_M65_x_PXL)
|
||||
@cat build/chargen_pxlfont.patched >> $(TARGET_M65_x_PXL)
|
||||
@cat $(DIR_M65)/kernal.seg_0 >> $(TARGET_M65_x_PXL)
|
||||
@cat build/padding_64_KB >> $(TARGET_M65_x_PXL)
|
||||
@@ -647,23 +650,23 @@ $(TARGET_X16_x): $(SEG_LIST_X16) build/chargen_openroms.rom
|
||||
test: test_custom
|
||||
test_crt: test_generic_crt
|
||||
|
||||
test_custom: $(TARGET_LIST_CUS) build/symbols_custom.vs
|
||||
x64 -kernal $(TARGET_CUS_K) -basic $(TARGET_CUS_B) -moncommands build/symbols_custom.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
test_custom: $(TARGET_LIST_CUS) $(TARGET_CHR_PXL) build/symbols_custom.vs
|
||||
x64 -kernal $(TARGET_CUS_K) -basic $(TARGET_CUS_B) -chargen $(TARGET_CHR_PXL) -moncommands build/symbols_custom.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
|
||||
test_generic: $(TARGET_LIST_GEN) build/symbols_generic.vs
|
||||
x64 -kernal $(TARGET_GEN_K) -basic $(TARGET_GEN_B) -moncommands build/symbols_generic.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
test_generic: $(TARGET_LIST_GEN)$(TARGET_CHR_PXL) build/symbols_generic.vs
|
||||
x64 -kernal $(TARGET_GEN_K) -basic $(TARGET_GEN_B) -chargen $(TARGET_CHR_PXL) -moncommands build/symbols_generic.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
|
||||
test_generic_x128: $(TARGET_LIST_GEN) build/symbols_generic.vs
|
||||
x128 -go64 -kernal64 $(TARGET_GEN_K) -basic64 $(TARGET_GEN_B) -moncommands build/symbols_generic.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
test_generic_x128: $(TARGET_LIST_GEN) $(TARGET_CHR_PXL) build/symbols_generic.vs
|
||||
x128 -go64 -kernal64 $(TARGET_GEN_K) -basic64 $(TARGET_GEN_B) -chargen $(TARGET_CHR_PXL) -moncommands build/symbols_generic.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
|
||||
test_generic_crt: $(TARGET_LIST_CRT) build/symbols_generic_crt.vs
|
||||
x64 -kernal $(TARGET_CRT_K) -basic $(TARGET_CRT_B) -cartcrt $(TARGET_CRT_X) -moncommands build/symbols_generic_crt.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
test_generic_crt: $(TARGET_LIST_CRT) $(TARGET_CHR_PXL) build/symbols_generic_crt.vs
|
||||
x64 -kernal $(TARGET_CRT_K) -basic $(TARGET_CRT_B) -chargen $(TARGET_CHR_PXL) -cartcrt $(TARGET_CRT_X) -moncommands build/symbols_generic_crt.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
|
||||
test_testing: $(TARGET_LIST_TST) build/symbols_testing.vs
|
||||
x64 -kernal $(TARGET_TST_K) -basic $(TARGET_TST_B) -moncommands build/symbols_testing.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
test_testing: $(TARGET_LIST_TST) $(TARGET_CHR_PXL) build/symbols_testing.vs
|
||||
x64 -kernal $(TARGET_TST_K) -basic $(TARGET_TST_B) -chargen $(TARGET_CHR_PXL) -moncommands build/symbols_testing.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
|
||||
test_ultimate64: $(TARGET_LIST_U64) build/symbols_ultimate64.vs
|
||||
x64 -kernal $(TARGET_U64_K) -basic $(TARGET_U64_B) -moncommands build/symbols_ultimate64.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
test_ultimate64: $(TARGET_LIST_U64) $(TARGET_CHR_PXL) build/symbols_ultimate64.vs
|
||||
x64 -kernal $(TARGET_U64_K) -basic $(TARGET_U64_B) -chargen $(TARGET_CHR_PXL) -moncommands build/symbols_ultimate64.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
|
||||
test_mega65: $(TARGET_M65_x) $(TARGET_M65_x_PXL)
|
||||
../xemu/build/bin/xmega65.native -dmarev 2 -besure -fontrefresh -forcerom -loadrom $(TARGET_M65_x_PXL)
|
||||
@@ -671,20 +674,20 @@ test_mega65: $(TARGET_M65_x) $(TARGET_M65_x_PXL)
|
||||
test_cx16: $(TARGET_X16_x)
|
||||
../x16-emulator/x16emu -rom $(TARGET_X16_x)
|
||||
|
||||
test_hybrid: build/kernal_hybrid.rom build/symbols_hybrid.vs
|
||||
test_hybrid: build/kernal_hybrid.rom $(TARGET_CHR_PXL) build/symbols_hybrid.vs
|
||||
@echo
|
||||
@echo $(HYBRID_WARNING)
|
||||
@echo
|
||||
x64 -kernal build/kernal_hybrid.rom -moncommands build/symbols_hybrid.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
x64 -kernal build/kernal_hybrid.rom -chargen $(TARGET_CHR_PXL) -moncommands build/symbols_hybrid.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
@echo
|
||||
@echo $(HYBRID_WARNING)
|
||||
@echo
|
||||
|
||||
test_hybrid_u64: build/kernal_hybrid_u64.rom build/symbols_hybrid_u64.vs
|
||||
test_hybrid_u64: build/kernal_hybrid_u64.rom $(TARGET_CHR_PXL) build/symbols_hybrid_u64.vs
|
||||
@echo
|
||||
@echo $(HYBRID_WARNING)
|
||||
@echo
|
||||
x64 -kernal build/kernal_hybrid_u64.rom -moncommands build/symbols_hybrid_u64.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
x64 -kernal build/kernal_hybrid_u64.rom -chargen $(TARGET_CHR_PXL) -moncommands build/symbols_hybrid_u64.vs -1 $(TESTTAPE) -8 $(TESTDISK)
|
||||
@echo
|
||||
@echo $(HYBRID_WARNING)
|
||||
@echo
|
||||
@@ -692,8 +695,8 @@ test_hybrid_u64: build/kernal_hybrid_u64.rom build/symbols_hybrid_u64.vs
|
||||
test_m65: build/mega65.rom
|
||||
m65 -b ../mega65-core/bin/mega65r1.bit -k ../mega65-core/bin/KICKUP.M65 -R build/mega65.rom -4
|
||||
|
||||
testremote: build/kernal_custom.rom build/basic_custom.rom build/symbols_custom.vs
|
||||
x64 -kernal build/kernal_custom.rom -basic build/basic_custom.rom -moncommands build/symbols_custom.vs -remotemonitor
|
||||
testremote: build/kernal_custom.rom build/basic_custom.rom $(TARGET_CHR_PXL) build/symbols_custom.vs
|
||||
x64 -kernal build/kernal_custom.rom -basic build/basic_custom.rom -chargen $(TARGET_CHR_PXL) -moncommands build/symbols_custom.vs -remotemonitor
|
||||
|
||||
testsimilarity: $(TOOL_SIMILARITY) $(DIR_GEN)/OUTx_x.BIN kernal basic
|
||||
$(TOOL_SIMILARITY) kernal $(DIR_GEN)/OUTx_x.BIN
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
|
||||
# Extended BASIC
|
||||
|
||||
NOTE: Command syntax, behaviour details, and tokens are still subject to change! Currently the availability of some depends on the build configuration, in the future most (if not all) extended commands will be available only on machines with extended ROM, like the *MEGA65* or *Ultimate 64*.
|
||||
NOTE: Command syntax, behaviour details, and tokens are still subject to change! Currently the availability of some depends on the build configuration, in the future most (if not all) extended commands will be available only on machines with extended ROM, like the *MEGA65*, *Ultimate 64*, or a build utilizing cartridge with external ROM (build marked as *cart*).
|
||||
|
||||
## DOS Wedge
|
||||
|
||||
@@ -42,7 +42,7 @@ Loads the file from tape. Depending on the configuration, it tries to load the f
|
||||
|
||||
Like above, but merges a BASIC program to the one already stored in memory.
|
||||
|
||||
### `←H` or `←HF` (MEGA65, cartridge)
|
||||
### `←H` or `←HF` (cart, MEGA65)
|
||||
|
||||
Launches a built-in tape head alignment tool. Destroys program in memory. Press `RUN/STOP` to terminate the tool. `←HF` is for compatibility with the *BlackBox v3/v4/v8* cartridges.
|
||||
|
||||
@@ -71,7 +71,7 @@ Saves the binary data from the given memory area. NOTE: for now syntax differs f
|
||||
|
||||
## Additional BASIC commands - misc
|
||||
|
||||
### `COLD` (MEGA65)
|
||||
### `COLD` (cart, MEGA65)
|
||||
|
||||
Resets the machine. In direct mode asks for confirmation first.
|
||||
|
||||
@@ -83,7 +83,7 @@ Tries to switch the machine to turbo mode (or back to 1MHz operation mode) - det
|
||||
|
||||
Tries to restore program destroyed by the `NEW` command or a reset.
|
||||
|
||||
### `MEM` (MEGA65)
|
||||
### `MEM` (cart, MEGA65)
|
||||
|
||||
Displays BASIC memory usage information:
|
||||
* `TEXT` - size of BASIC program text, always at least 2 bytes are used
|
||||
|
||||
@@ -94,6 +94,9 @@
|
||||
!ifdef CONFIG_MB_M65 {
|
||||
!ifdef CONFIG_MEMORY_MODEL_60K { !error "Do not use CONFIG_MEMORY_MODEL_60K options for MEGA65 motherboard" }
|
||||
}
|
||||
!ifdef ROM_LAYOUT_CRT {
|
||||
!ifdef CONFIG_MEMORY_MODEL_60K { !error "Do not use CONFIG_MEMORY_MODEL_60K options for CRT ROM layout" }
|
||||
}
|
||||
!ifdef CONFIG_PLATFORM_COMMANDER_X16 {
|
||||
!ifndef CONFIG_MEMORY_MODEL_38K { !error "Select CONFIG_MEMORY_MODEL_38K options for Commander X16 platform" }
|
||||
}
|
||||
@@ -445,9 +448,9 @@
|
||||
|
||||
; Determine if we need space-savings in BASIC code
|
||||
|
||||
!ifndef CONFIG_MB_M65 {
|
||||
!ifndef CONFIG_MB_M65 { !ifndef ROM_LAYOUT_CRT {
|
||||
!set HAS_SMALL_BASIC = 1
|
||||
}
|
||||
} }
|
||||
|
||||
|
||||
|
||||
@@ -469,4 +472,12 @@
|
||||
!ifdef SEGMENT_BASIC_0 { !set SEGMENT_M65_BASIC_0 = 1 }
|
||||
!ifdef SEGMENT_BASIC_1 { !set SEGMENT_M65_BASIC_1 = 1 }
|
||||
!ifdef SEGMENT_KERNAL_0 { !set SEGMENT_M65_KERNAL_0 = 1 }
|
||||
!ifdef SEGMENT_KERNAL_1 { !set SEGMENT_M65_KERNAL_1 = 1 }
|
||||
}
|
||||
|
||||
!ifdef ROM_LAYOUT_CRT {
|
||||
!ifdef SEGMENT_BASIC_0 { !set SEGMENT_CRT_BASIC_0 = 1 }
|
||||
!ifdef SEGMENT_BASIC_1 { !set SEGMENT_CRT_BASIC_1 = 1 }
|
||||
!ifdef SEGMENT_KERNAL_0 { !set SEGMENT_CRT_KERNAL_0 = 1 }
|
||||
!ifdef SEGMENT_KERNAL_1 { !set SEGMENT_CRT_KERNAL_1 = 1 }
|
||||
}
|
||||
@@ -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'
|
||||
|
||||
+12
-11
@@ -200,8 +200,8 @@ const StringEntryList GLOBAL_Keywords_01 = { ListType::KEYWORDS, "keywords_01",
|
||||
const StringEntryList GLOBAL_Keywords_02 = { ListType::KEYWORDS, "keywords_02",
|
||||
{
|
||||
// STD CRT M65 U64 X16
|
||||
{ false, false, true, false, false, "K02_07", "COLD", }, // Not present in CBM BASIC dialects, but common to some extensions (*)
|
||||
{ false, false, true, false, false, "K02_08", "MEM", }, // Not present in CBM BASIC dialects, Open ROMs specific
|
||||
{ false, true, true, false, false, "K02_07", "COLD", }, // Not present in CBM BASIC dialects, but common to some extensions (*)
|
||||
{ false, true, true, false, false, "K02_08", "MEM", }, // Not present in CBM BASIC dialects, Open ROMs specific
|
||||
{ false, false, true, false, false, "K02_09", "SYSINFO", }, // Not present in CBM BASIC dialects, Open ROMs specific
|
||||
|
||||
// (*) see https://sourceforge.net/p/vice-emu/code/HEAD/tree/trunk/vice/src/petcat.c
|
||||
@@ -290,7 +290,7 @@ const StringEntryList GLOBAL_MiscStrings = { ListType::STRINGS_BASIC, "misc",
|
||||
{ true, true, true, true, true, "STR_READY", "\rREADY.\r" }, // https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zconcepts/zconc_whatistsonative.htm https://github.com/stefanhaustein/expressionparser
|
||||
{ true, true, true, true, true, "STR_ERROR", " ERROR" }, // simply the word error that is attached to the other parts of messages https://fjkraan.home.xs4all.nl/comp/apple2faq/app2asoftfaq.html
|
||||
{ true, true, true, true, true, "STR_IN", " IN " },
|
||||
{ false, false, true, false, false, "STR_IF_SURE", "\rARE YOU SURE? " }, // https://docs.microsoft.com/en-us/windows/win32/uxguide/mess-confirm
|
||||
{ false, true, true, false, false, "STR_IF_SURE", "\rARE YOU SURE? " }, // https://docs.microsoft.com/en-us/windows/win32/uxguide/mess-confirm
|
||||
// STD CRT M65 U64 X16 --- misc strings specific to Open ROMs, not present in CBM ROMs
|
||||
{ true, true, true, true, true, "STR_BRK_AT", "\rBRK AT $" },
|
||||
|
||||
@@ -298,14 +298,14 @@ const StringEntryList GLOBAL_MiscStrings = { ListType::STRINGS_BASIC, "misc",
|
||||
{ false, false, true, false, false, "STR_ORS_LEGACY_1", "OPEN ROMS " },
|
||||
{ false, false, true, false, false, "STR_ORS_LEGACY_2", "\r\rLEGACY MODE " },
|
||||
|
||||
{ false, false, true, false, false, "STR_MEM_HDR", "\r\x12 AREA START SIZE \r" },
|
||||
{ false, false, true, false, false, "STR_MEM_1", " $" },
|
||||
{ false, false, true, false, false, "STR_MEM_2", " " },
|
||||
{ false, false, true, false, false, "STR_MEM_TEXT", "\r TEXT" },
|
||||
{ false, false, true, false, false, "STR_MEM_VARS", "\r VARS" },
|
||||
{ false, false, true, false, false, "STR_MEM_ARRS", "\r ARRS" },
|
||||
{ false, false, true, false, false, "STR_MEM_STRS", "\r STRS" },
|
||||
{ false, false, true, false, false, "STR_MEM_FREE", "\r\r FREE" },
|
||||
{ false, true, true, false, false, "STR_MEM_HDR", "\r\x12 AREA START SIZE \r" },
|
||||
{ false, true, true, false, false, "STR_MEM_1", " $" },
|
||||
{ false, true, true, false, false, "STR_MEM_2", " " },
|
||||
{ false, true, true, false, false, "STR_MEM_TEXT", "\r TEXT" },
|
||||
{ false, true, true, false, false, "STR_MEM_VARS", "\r VARS" },
|
||||
{ false, true, true, false, false, "STR_MEM_ARRS", "\r ARRS" },
|
||||
{ false, true, true, false, false, "STR_MEM_STRS", "\r STRS" },
|
||||
{ false, true, true, false, false, "STR_MEM_FREE", "\r\r FREE" },
|
||||
|
||||
{ false, false, true, false, false, "STR_SI_HEADER", "OPEN ROMS, " },
|
||||
{ false, false, true, false, false, "STR_SI_MODE64", "LEGACY MODE" },
|
||||
@@ -1879,6 +1879,7 @@ void writeStrings()
|
||||
|
||||
dataSetCRT.addStrings(GLOBAL_Keywords_V2);
|
||||
dataSetCRT.addStrings(GLOBAL_Keywords_01);
|
||||
dataSetCRT.addStrings(GLOBAL_Keywords_02);
|
||||
dataSetCRT.addStrings(GLOBAL_Errors);
|
||||
dataSetCRT.addStrings(GLOBAL_MiscStrings);
|
||||
|
||||
|
||||
Reference in new issue
Block a user