diff --git a/CONFIG.md b/CONFIG.md index a4a983a5..6d492764 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -27,6 +27,10 @@ Since Open ROMs is highly modular, it should be possible to add other platforms If you don't know which variant to choose - select this one. +### `CONFIG_BRAND_TESTING` + +Use this one for any kind of testing/experimental build. + ### `CONFIG_BRAND_MEGA_65`, `CONFIG_BRAND_ULTIMATE_64` Select if you are using appropriate motherboard. diff --git a/Makefile b/Makefile index 74544f9b..b8f93f63 100644 --- a/Makefile +++ b/Makefile @@ -43,6 +43,7 @@ TOOLS_LIST = $(pathsubst src/tools/%,build/tools/%,$(basename $(SRC_TOOLS))) # List of targets STD_TARGET_LIST = build/kernal_generic.rom build/basic_generic.rom \ + build/kernal_testing.rom build/basic_testing.rom \ build/kernal_mega65.rom build/basic_mega65.rom \ build/kernal_ultimate64.rom build/basic_ultimate64.rom \ build/chargen.rom @@ -69,7 +70,7 @@ clean: @rm -rf build updatebin: $(STD_TARGET_LIST) $(TOOL_RELEASE) - $(TOOL_RELEASE) -i ./build -o ./bin basic_generic.rom kernal_generic.rom basic_mega65.rom kernal_mega65.rom basic_ultimate64.rom kernal_ultimate64.rom + $(TOOL_RELEASE) -i ./build -o ./bin basic_generic.rom kernal_generic.rom basic_testing.rom kernal_testing.rom basic_mega65.rom kernal_mega65.rom basic_ultimate64.rom kernal_ultimate64.rom cp build/chargen.rom bin/chargen.rom # Rules - tools @@ -101,6 +102,10 @@ build/target_generic/OUTB.BIN build/target_generic/BASIC_combined.vs: \ $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_BASIC) $(SRCDIR_BASIC) \ c64/,,config_generic.s build/target_generic/KERNAL_combined.sym \ $(foreach dir,$(SRCDIR_BASIC),$(wildcard $(dir)/*.s)) +build/target_testing/OUTB.BIN build/target_generic/BASIC_combined.vs: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_BASIC) $(SRCDIR_BASIC) \ + c64/,,config_testing.s build/target_testing/KERNAL_combined.sym \ + $(foreach dir,$(SRCDIR_BASIC),$(wildcard $(dir)/*.s)) build/target_mega65/OUTB.BIN build/target_mega65/BASIC_combined.vs: \ $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_BASIC) $(SRCDIR_BASIC) \ c64/,,config_mega65.s build/target_mega65/KERNAL_combined.sym \ @@ -114,6 +119,10 @@ build/target_generic/OUTK.BIN build/target_generic/KERNAL_combined.vs bu $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_KERNAL) $(SRCDIR_KERNAL) \ c64/,,config_generic.s \ $(foreach dir,$(SRCDIR_KERNAL),$(wildcard $(dir)/*.s)) +build/target_testing/OUTK.BIN build/target_testing/KERNAL_combined.vs build/target_testing/KERNAL_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_KERNAL) $(SRCDIR_KERNAL) \ + c64/,,config_testing.s \ + $(foreach dir,$(SRCDIR_KERNAL),$(wildcard $(dir)/*.s)) build/target_mega65/OUTK.BIN build/target_mega65/KERNAL_combined.vs build/target_mega65/KERNAL_combined.sym: \ $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(GEN_KERNAL) $(SRCDIR_KERNAL) \ c64/,,config_mega65.s \ @@ -124,18 +133,22 @@ build/target_ultimate64/OUTK.BIN build/target_ultimate64/KERNAL_combined.vs bu $(foreach dir,$(SRCDIR_KERNAL),$(wildcard $(dir)/*.s)) build/target_generic/newrom: build/target_generic/OUTB.BIN build/target_generic/OUTK.BIN +build/target_testing/newrom: build/target_testing/OUTB.BIN build/target_testing/OUTK.BIN build/target_mega65/newrom: build/target_mega65/OUTB.BIN build/target_mega65/OUTK.BIN build/target_ultimate64/newrom: build/target_ultimate64/OUTB.BIN build/target_ultimate64/OUTK.BIN build/kernal_generic.rom: build/target_generic/newrom +build/kernal_testing.rom: build/target_testing/newrom build/kernal_mega65.rom: build/target_mega65/newrom build/kernal_ultimate64.rom: build/target_ultimate64/newrom build/basic_generic.rom: build/target_generic/newrom +build/basic_testing.rom: build/target_testing/newrom build/basic_mega65.rom: build/target_mega65/newrom build/basic_ultimate64.rom: build/target_ultimate64/newrom build/symbols_generic.vs: build/target_generic/BASIC_combined.vs build/target_generic/KERNAL_combined.vs +build/symbols_testing.vs: build/target_testing/BASIC_combined.vs build/target_testing/KERNAL_combined.vs build/symbols_mega65.vs: build/target_mega65/BASIC_combined.vs build/target_mega65/KERNAL_combined.vs build/symbols_ultimate64.vs: build/target_ultimate64/BASIC_combined.vs build/target_ultimate64/KERNAL_combined.vs @@ -196,7 +209,10 @@ build/newc65.rom: build/kernal_mega65.rom build/basic_mega65.rom build/chargen.r # Rules - tests -.PHONY: test test_generic test_generic_x128 test_mega65 test_mega65_xemu test_ultimate64 test_hybrid test_m65 testremote testsimilarity +.PHONY: test test_generic test_generic_x128 test_hybrid test_testing \ + test_mega65 test_mega65_xemu test_m65 \ + test_ultimate64 \ + testremote testsimilarity test: test_generic @@ -206,6 +222,9 @@ test_generic: build/kernal_generic.rom build/basic_generic.rom build/symbols_gen test_generic_x128: build/kernal_generic.rom build/basic_generic.rom build/symbols_generic.vs x128 -go64 -kernal64 build/kernal_generic.rom -basic64 build/basic_generic.rom -moncommands build/symbols_generic.vs -8 empty.d64 +test_testing: build/kernal_testing.rom build/basic_testing.rom build/symbols_testing.vs + x64 -kernal build/kernal_testing.rom -basic build/basic_testing.rom -moncommands build/symbols_testing.vs -8 empty.d64 + test_mega65: build/kernal_mega65.rom build/basic_mega65.rom build/symbols_mega65.vs x64 -kernal build/kernal_mega65.rom -basic build/basic_mega65.rom -moncommands build/symbols_mega65.vs -8 empty.d64 diff --git a/c64/,,config_generic.s b/c64/,,config_generic.s index c0d78dc1..32283b0e 100644 --- a/c64/,,config_generic.s +++ b/c64/,,config_generic.s @@ -15,6 +15,7 @@ #define CONFIG_PLATFORM_COMMODORE_64 #define CONFIG_BRAND_GENERIC +// #define CONFIG_BRAND_TESTING // #define CONFIG_BRAND_MEGA_65 // #define CONFIG_BRAND_ULTIMATE_64 diff --git a/c64/,,config_mega65.s b/c64/,,config_mega65.s index 6ffc2998..ea34f998 100644 --- a/c64/,,config_mega65.s +++ b/c64/,,config_mega65.s @@ -7,7 +7,6 @@ // Idea: // - sane defaults for the Mega 65 FPGA computer -// - enable compatibility-risky features too // - unless VICE gains Commodore 65 (or at least Flash8 cartridge) emulation support, // do not enable CPU-specific optimizations; ROMs would be hard to test @@ -17,6 +16,7 @@ #define CONFIG_PLATFORM_COMMODORE_64 // #define CONFIG_BRAND_GENERIC +// #define CONFIG_BRAND_TESTING #define CONFIG_BRAND_MEGA_65 // #define CONFIG_BRAND_ULTIMATE_64 @@ -31,8 +31,8 @@ // Memory model configuration -// #define CONFIG_MEMORY_MODEL_38K -#define CONFIG_MEMORY_MODEL_60K +#define CONFIG_MEMORY_MODEL_38K +// #define CONFIG_MEMORY_MODEL_60K // Multiple SID support @@ -50,11 +50,11 @@ // Keyboard settings -#define CONFIG_LEGACY_SCNKEY +// #define CONFIG_LEGACY_SCNKEY // #define CONFIG_KEYBOARD_C128 // #define CONFIG_KEYBOARD_C128_CAPS_LOCK // #define CONFIG_KEY_REPEAT_DEFAULT -// #define CONFIG_KEY_REPEAT_ALWAYS +#define CONFIG_KEY_REPEAT_ALWAYS #define CONFIG_KEY_FAST_SCAN #define CONFIG_JOY1_CURSOR #define CONFIG_JOY2_CURSOR diff --git a/c64/,,config_testing.s b/c64/,,config_testing.s new file mode 100644 index 00000000..c44dcef9 --- /dev/null +++ b/c64/,,config_testing.s @@ -0,0 +1,81 @@ + +.const CONFIG_ID = $F0 // should be 1 byte, different for each config file! + +// +// Please read CONFIG.md before modifying this file! +// + +// Idea: +// - enable compatibility-risky features +// - enable code not normally used yto make sure it still compiles + + + +// Hardware platform and brand + +#define CONFIG_PLATFORM_COMMODORE_64 + +// #define CONFIG_BRAND_GENERIC +#define CONFIG_BRAND_TESTING +// #define CONFIG_BRAND_MEGA_65 +// #define CONFIG_BRAND_ULTIMATE_64 + + +// Processor instruction set + +#define CONFIG_CPU_MOS_6502 +// #define CONFIG_CPU_WDC_65C02 +// #define CONFIG_CPU_CSG_65CE02 +// #define CONFIG_CPU_WDC_65816 + + +// Memory model configuration + +// #define CONFIG_MEMORY_MODEL_38K +#define CONFIG_MEMORY_MODEL_60K + + +// Multiple SID support + +#define CONFIG_SID_2ND +.const CONFIG_SID_2ND_ADDRESS = $D420 + +// #define CONFIG_SID_3RD +.const CONFIG_SID_3RD_ADDRESS = $D440 + +// #define CONFIG_SID_D4XX +// #define CONFIG_SID_D5XX + + +// Keyboard settings + + +#define CONFIG_LEGACY_SCNKEY +// #define CONFIG_KEYBOARD_C128 +// #define CONFIG_KEYBOARD_C128_CAPS_LOCK +// #define CONFIG_KEY_REPEAT_DEFAULT +// #define CONFIG_KEY_REPEAT_ALWAYS +#define CONFIG_KEY_FAST_SCAN +#define CONFIG_JOY1_CURSOR +#define CONFIG_JOY2_CURSOR + + +// Eye candy + +// #define CONFIG_BANNER_SIMPLE +#define CONFIG_BANNER_FANCY +// #define CONFIG_BANNER_BRAND +// #define CONFIG_SHOW_PAL_NTSC + + +// Software features + +#define CONFIG_PANIC_SCREEN +#define CONFIG_DOS_WEDGE +#define CONFIG_BCD_SAFE_INTERRUPTS + + +// Debug options + +// #define CONFIG_DBG_STUBS_BRK +#define CONFIG_DBG_PRINTF diff --git a/c64/,,config_ultimate64.s b/c64/,,config_ultimate64.s index dca7299a..fe635527 100644 --- a/c64/,,config_ultimate64.s +++ b/c64/,,config_ultimate64.s @@ -15,6 +15,7 @@ #define CONFIG_PLATFORM_COMMODORE_64 // #define CONFIG_BRAND_GENERIC +// #define CONFIG_BRAND_TESTING // #define CONFIG_BRAND_MEGA_65 #define CONFIG_BRAND_ULTIMATE_64 diff --git a/c64/aliases/,aliases_config.s b/c64/aliases/,aliases_config.s index 77ebc752..353ec3d0 100644 --- a/c64/aliases/,aliases_config.s +++ b/c64/aliases/,aliases_config.s @@ -27,6 +27,9 @@ #if CONFIG_BRAND_GENERIC .eval selected++ #endif +#if CONFIG_BRAND_TESTING + .eval selected++ +#endif #if CONFIG_BRAND_MEGA_65 .eval selected++ #endif diff --git a/c64/basic/init/startup_banner.s b/c64/basic/init/startup_banner.s index 5443ef47..bb0901ed 100644 --- a/c64/basic/init/startup_banner.s +++ b/c64/basic/init/startup_banner.s @@ -8,6 +8,8 @@ #if CONFIG_BRAND_GENERIC .text "OPEN ROMS GENERIC BUILD" +#elif CONFIG_BRAND_TESTING + .text "OPEN ROMS TESTING BUILD" #elif CONFIG_BRAND_MEGA_65 .text "OPEN ROMS FOR MEGA65" #elif CONFIG_BRAND_ULTIMATE_64