moved RAMTAS to Mega65 extra ROM, as a proof of concept

This commit is contained in:
FeralChild64 committed 2020-01-15 18:30:37 +01:00
1 parent 73f05a13c8
commit 435ff6bbc2
6 files changed
+27 -32

No files matched your search

+6 -13
View File
@@ -61,9 +61,7 @@ STD_TARGET_LIST_CUSTOM = build/kernal_custom.rom build/basic_custom.rom
STD_TARGET_LIST_GENERIC = build/kernal_generic.rom build/basic_generic.rom
STD_TARGET_LIST_TESTING = build/kernal_testing.rom build/basic_testing.rom
STD_TARGET_LIST_ULTIMATE64 = build/kernal_ultimate64.rom build/basic_ultimate64.rom
STD_TARGET_LIST_MEGA65 = build/kernal_mega65.rom_0 \
build/kernal_mega65.rom_1 \
build/basic_mega65.rom_0
STD_TARGET_LIST_MEGA65 = build/mega65.rom
STD_TARGET_LIST = build/chargen.rom \
$(STD_TARGET_LIST_CUSTOM) \
@@ -161,10 +159,6 @@ build/target_mega65/OUTK_0.BIN build/target_mega65/KERNAL_0_combined.vs bu
$(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_KERNAL) $(SRCDIR_KERNAL) \
c64/,,config_mega65.s \
$(foreach dir,$(SRCDIR_KERNAL),$(wildcard $(dir)/*.s))
build/target_mega65/OUTK_1.BIN build/target_mega65/KERNAL_1_combined.vs build/target_mega65/KERNAL_1_combined.sym: \
$(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_KERNAL) $(SRCDIR_KERNAL) \
c64/,,config_mega65.s \
$(foreach dir,$(SRCDIR_KERNAL),$(wildcard $(dir)/*.s))
build/target_ultimate64/OUTK.BIN build/target_ultimate64/KERNAL_combined.vs build/target_ultimate64/KERNAL_combined.sym: \
$(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_KERNAL) $(SRCDIR_KERNAL) \
c64/,,config_ultimate64.s \
@@ -222,11 +216,10 @@ build/target_mega65/OUTK_0.BIN build/target_mega65/KERNAL_0_combined.vs build/ta
@rm -f $@* build/target_mega65/KERNAL_0*
@$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s KERNAL_0 -i KERNAL_0-mega65 -o OUTK_0.BIN -d build/target_mega65 -l e4d3 -h ffff c64/,,config_mega65.s $(SRCDIR_KERNAL) $(GEN_KERNAL)
build/kernal_mega65.rom_1 build/target_mega65/OUTK_1.BIN build/target_mega65/KERNAL_1_combined.vs build/target_mega65/KERNAL_1_combined.sym: $(TOOL_BUILD_SEGMENT)
build/target_mega65/kernal.seg_1 build/target_mega65/KERNAL_1_combined.vs build/target_mega65/KERNAL_1_combined.sym: $(TOOL_BUILD_SEGMENT)
@mkdir -p build/target_mega65
@rm -f $@* build/kernal_mega65.rom_1 build/target_mega65/KERNAL_1*
@$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s KERNAL_1 -i KERNAL_1-mega65 -o OUTK_1.BIN -d build/target_mega65 -l 4000 -h 5fff c64/,,config_mega65.s $(SRCDIR_KERNAL) $(GEN_KERNAL)
@cp build/target_mega65/OUTK_1.BIN build/kernal_mega65.rom_1
@rm -f $@* build/target_mega65/kernal.seg_1 build/target_mega65/KERNAL_1*
@$(TOOL_BUILD_SEGMENT) -a ../../$(TOOL_ASSEMBLER) -r M65 -s KERNAL_1 -i KERNAL_1-mega65 -o kernal.seg_1 -d build/target_mega65 -l 4000 -h 5fff c64/,,config_mega65.s $(SRCDIR_KERNAL) $(GEN_KERNAL)
.PRECIOUS: build/target_%/newrom
build/target_%/newrom:
@@ -267,12 +260,12 @@ build/symbols_hybrid.vs: build/target_generic/KERNAL_combined.vs
# Rules - platform 'Mega 65' specific
build/mega65.rom: build/kernal_mega65.rom_0 build/kernal_mega65.rom_1 build/basic_mega65.rom_0 build/chargen.rom
build/mega65.rom: build/kernal_mega65.rom_0 build/target_mega65/kernal.seg_1 build/basic_mega65.rom_0 build/chargen.rom
dd if=/dev/zero bs=8192 count=1 of=build/padding_8k
dd if=/dev/zero bs=8192 count=8 of=build/padding_64k
cat build/padding_8k > build/mega65.rom
cat build/padding_8k >> build/mega65.rom
cat build/kernal_mega65.rom_1 >> build/mega65.rom
cat build/target_mega65/kernal.seg_1 >> build/mega65.rom
cat build/padding_8k >> build/mega65.rom
cat build/padding_8k >> build/mega65.rom
cat build/basic_mega65.rom_0 >> build/mega65.rom
@@ -12,20 +12,15 @@
// Labels for jumps
.label KERNAL_1__TESTROUTINE = $4000
.label KERNAL_1__RAMTAS = $4000
#elif
#else
// Jumptable (OpenROMs private!)
jmp TESTROUTINE
TESTROUTINE:
rts
jmp RAMTAS
#endif
@@ -12,6 +12,7 @@
map_NORMAL:
php
pha
phx
phy
@@ -33,12 +34,14 @@ map_end:
ply
plx
pla
plp
rts
map_KERNAL_1:
php
pha
phx
phy
+12 -2
View File
@@ -1,4 +1,7 @@
#if ROM_LAYOUT_STD || (ROM_LAYOUT_M65 && SEGMENT_KERNAL_0)
// #LAYOUT# STD * #TAKE
// #LAYOUT# M65 KERNAL_0 #TAKE
// #LAYOUT# M65 KERNAL_1 #TAKE-FLOAT
// #LAYOUT# * * #IGNORE
//
// Official Kernal routine, described in:
@@ -11,6 +14,14 @@
RAMTAS:
#if (ROM_LAYOUT_M65 && SEGMENT_KERNAL_0)
jsr map_KERNAL_1
jsr KERNAL_1__RAMTAS
jmp map_NORMAL
#else
// C64 Programmers Reference guide p291:
// Clear $0000-$0101, $0200-$03ff
// PGS: $0000, $0001 are CPU IO ports, so should not get written to
@@ -83,5 +94,4 @@ ramtas_32k:
ldy #$80
bne !- // branch always
#endif // ROM layout
-6
View File
@@ -12,12 +12,6 @@
IOINIT:
// XXX make something useful with this
//
// jsr map_KERNAL_1
// jsr KERNAL_1__TESTROUTINE
// jsr map_NORMAL
//
// First initialize the CPU port, to make sure we have correct memory map
//
+3 -3
View File
@@ -673,12 +673,12 @@ bool SourceFile::preprocessLine(const std::string &line)
// Check if segment name and rom layout match
if (iter == tokens.end()) ERROR("syntax error, missing segment name in '#LAYOUT#'");
if (!nameMatch(*(iter++), CMD_segName)) return true;
if (iter == tokens.end()) ERROR("syntax error, missing rom layout in '#LAYOUT#'");
if (!nameMatch(*(iter++), CMD_romLayout)) return true;
if (iter == tokens.end()) ERROR("syntax error, missing segment name in '#LAYOUT#'");
if (!nameMatch(*(iter++), CMD_segName)) return true;
// Retrieve and apply action
if (iter == tokens.end()) ERROR("syntax error, missing action in '#LAYOUT#'");