diff --git a/Makefile b/Makefile index 95cd9ca9..343b39a4 100644 --- a/Makefile +++ b/Makefile @@ -137,6 +137,7 @@ GEN_ZMAC_H = $(DIR_ZMAC_TMP)/doc.inl # List of build directories DIR_C64 = build/target_c64 +DIR_MC64 = build/target_mc64 DIR_CUS = build/target_custom DIR_GEN = build/target_generic DIR_GENCRT = build/target_generic_crt @@ -151,6 +152,7 @@ DIR_X16 = build/target_cx16 CFG_CUS = src/,,config_custom.s CFG_C64 = src/,,config_c64.s +CFG_MC64 = src/,,config_mc64.s CFG_GEN = src/,,config_generic.s CFG_GENCRT = src/,,config_generic_crt.s CFG_TST38 = src/,,config_testing_38K.s @@ -164,6 +166,7 @@ CFG_U64CRT = src/,,config_ultimate64_crt.s GEN_STR_CUS = $(DIR_CUS)/,generated/,packed_strings.s GEN_STR_C64 = $(DIR_C64)/,generated/,packed_strings.s +GEN_STR_MC64 = $(DIR_MC64)/,generated/,packed_strings.s GEN_STR_GEN = $(DIR_GEN)/,generated/,packed_strings.s GEN_STR_GENCRT = $(DIR_GENCRT)/,generated/,packed_strings.s GEN_STR_TST38 = $(DIR_TST38)/,generated/,packed_strings.s @@ -212,6 +215,7 @@ TARGET_CHR_PXL = build/chargen_pxlfont.rom TARGET_CUS_B = build/basic_custom.rom TARGET_C64_B = build/basic_c64.rom +TARGET_MC64_B = build/basic_mc64.rom TARGET_GEN_B = build/basic_generic.rom TARGET_GENCRT_B = build/basic_generic_crt.rom TARGET_TST38_B = build/basic_testing_38K.rom @@ -221,6 +225,7 @@ TARGET_U64CRT_B = build/basic_ultimate64_crt.rom TARGET_CUS_K = build/kernal_custom.rom TARGET_C64_K = build/kernal_c64.rom +TARGET_MC64_K = build/kernal_mc64.rom TARGET_GEN_K = build/kernal_generic.rom TARGET_GENCRT_K = build/kernal_generic_crt.rom TARGET_TST38_K = build/kernal_testing_38K.rom @@ -237,6 +242,7 @@ TARGET_X16_x = build/cx16-dummy.rom TARGET_LIST_CUS = $(TARGET_CUS_B) $(TARGET_CUS_K) TARGET_LIST_C64 = $(TARGET_C64_B) $(TARGET_C64_K) +TARGET_LIST_MC64 = $(TARGET_MC64_B) $(TARGET_MC64_K) TARGET_LIST_GEN = $(TARGET_GEN_B) $(TARGET_GEN_K) TARGET_LIST_GENCRT = $(TARGET_GENCRT_B) $(TARGET_GENCRT_K) $(TARGET_GENCRT_X) TARGET_LIST_TST38 = $(TARGET_TST38_B) $(TARGET_TST38_K) @@ -249,6 +255,7 @@ TARGET_Z80TEST = ./build/cpm/Z80TEST.COM TARGET_LIST = $(TARGET_CHR_ORF) \ $(TARGET_LIST_CUS) \ $(TARGET_LIST_C64) \ + $(TARGET_LIST_MC64) \ $(TARGET_LIST_GEN) \ $(TARGET_LIST_GENCRT) \ $(TARGET_LIST_TST38) \ @@ -385,6 +392,8 @@ $(DIR_CUS)/OUTB_x.BIN $(DIR_CUS)/BASIC_combined.vs: \ $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_CUS) $(GEN_STR_CUS) $(DIR_CUS)/KERNAL_combined.sym $(DIR_C64)/OUTB_x.BIN $(DIR_C64)/BASIC_combined.vs: \ $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_C64) $(GEN_STR_C64) $(DIR_C64)/KERNAL_combined.sym +$(DIR_MC64)/OUTB_x.BIN $(DIR_MC64)/BASIC_combined.vs: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_MC64) $(GEN_STR_MC64) $(DIR_MC64)/KERNAL_combined.sym $(DIR_GEN)/OUTB_x.BIN $(DIR_GEN)/BASIC_combined.vs: \ $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_BASIC) $(CFG_GEN) $(GEN_STR_GEN) $(DIR_GEN)/KERNAL_combined.sym $(DIR_TST38)/OUTB_x.BIN $(DIR_TST38)/BASIC_combined.vs: \ @@ -398,6 +407,8 @@ $(DIR_CUS)/OUTK_x.BIN $(DIR_CUS)/KERNAL_combined.vs $(DIR_CUS)/KERNAL_combined.s $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_CUS) $(GEN_STR_CUS) $(DIR_C64)/OUTK_x.BIN $(DIR_C64)/KERNAL_combined.vs $(DIR_C64)/KERNAL_combined.sym: \ $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_C64) $(GEN_STR_C64) +$(DIR_MC64)/OUTK_x.BIN $(DIR_MC64)/KERNAL_combined.vs $(DIR_MC64)/KERNAL_combined.sym: \ + $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_MC64) $(GEN_STR_MC64) $(DIR_GEN)/OUTK_x.BIN $(DIR_GEN)/KERNAL_combined.vs $(DIR_GEN)/KERNAL_combined.sym: \ $(TOOL_ASSEMBLER) $(TOOL_BUILD_SEGMENT) $(DEP_KERNAL) $(CFG_GEN) $(GEN_STR_GEN) $(DIR_TST38)/OUTK_x.BIN $(DIR_TST38)/KERNAL_combined.vs $(DIR_TST38)/KERNAL_combined.sym: \ @@ -457,6 +468,7 @@ $(DIR_X16)/kernal.seg_1 $(DIR_X16)/KERNAL_1_combined.vs $(DIR_X16)/KERNAL_1_comb $(DIR_CUS)/OUTx_x.BIN: $(DIR_CUS)/OUTB_x.BIN $(DIR_CUS)/OUTK_x.BIN $(DIR_C64)/OUTx_x.BIN: $(DIR_C64)/OUTB_x.BIN $(DIR_C64)/OUTK_x.BIN +$(DIR_MC64)/OUTx_x.BIN: $(DIR_MC64)/OUTB_x.BIN $(DIR_MC64)/OUTK_x.BIN $(DIR_GEN)/OUTx_x.BIN: $(DIR_GEN)/OUTB_x.BIN $(DIR_GEN)/OUTK_x.BIN $(DIR_GENCRT)/OUTx_0.BIN: $(DIR_GENCRT)/OUTB_0.BIN $(DIR_GENCRT)/OUTK_0.BIN $(DIR_TST38)/OUTx_x.BIN: $(DIR_TST38)/OUTB_x.BIN $(DIR_TST38)/OUTK_x.BIN @@ -468,6 +480,7 @@ $(DIR_X16)/OUTx_0.BIN: $(DIR_X16)/OUTB_0.BIN $(DIR_X16)/OUTK_0.BIN $(TARGET_CUS_B): $(DIR_CUS)/OUTx_x.BIN $(TARGET_C64_B): $(DIR_C64)/OUTx_x.BIN +$(TARGET_MC64_B): $(DIR_MC64)/OUTx_x.BIN $(TARGET_GEN_B): $(DIR_GEN)/OUTx_x.BIN $(TARGET_TST38_B): $(DIR_TST38)/OUTx_x.BIN $(TARGET_TST60_B): $(DIR_TST60)/OUTx_x.BIN @@ -475,6 +488,7 @@ $(TARGET_U64_B): $(DIR_U64)/OUTx_x.BIN $(TARGET_CUS_K): $(DIR_CUS)/OUTx_x.BIN $(TARGET_C64_K): $(DIR_C64)/OUTx_x.BIN +$(TARGET_MC64_K): $(DIR_MC64)/OUTx_x.BIN $(TARGET_GEN_K): $(DIR_GEN)/OUTx_x.BIN $(TARGET_TST38_K): $(DIR_TST38)/OUTx_x.BIN $(TARGET_TST60_K): $(DIR_TST60)/OUTx_x.BIN @@ -482,6 +496,7 @@ $(TARGET_U64_K): $(DIR_U64)/OUTx_x.BIN build/symbols_custom.vs: $(DIR_CUS)/BASIC_combined.vs $(DIR_CUS)/KERNAL_combined.vs build/symbols_c64.vs: $(DIR_C64)/BASIC_combined.vs $(DIR_C64)/KERNAL_combined.vs +build/symbols_mc64.vs: $(DIR_MC64)/BASIC_combined.vs $(DIR_MC64)/KERNAL_combined.vs build/symbols_generic.vs: $(DIR_GEN)/BASIC_combined.vs $(DIR_GEN)/KERNAL_combined.vs build/symbols_generic_crt.vs: $(DIR_GENCRT)/BASIC_0_combined.vs $(DIR_GENCRT)/KERNAL_0_combined.vs build/symbols_testing_38K.vs: $(DIR_TST38)/BASIC_combined.vs $(DIR_TST38)/KERNAL_combined.vs @@ -499,6 +514,10 @@ $(GEN_STR_C64): $(TOOL_GENERATE_STRINGS) $(CFG_C64) @mkdir -p $(DIR_C64)/,generated $(TOOL_GENERATE_STRINGS) -o $@ -c $(CFG_C64) +$(GEN_STR_MC64): $(TOOL_GENERATE_STRINGS) $(CFG_MC64) + @mkdir -p $(DIR_MC64)/,generated + $(TOOL_GENERATE_STRINGS) -o $@ -c $(CFG_MC64) + $(GEN_STR_GEN): $(TOOL_GENERATE_STRINGS) $(CFG_GEN) @mkdir -p $(DIR_GEN)/,generated $(TOOL_GENERATE_STRINGS) -o $@ -c $(CFG_GEN) @@ -541,6 +560,7 @@ build/,generated/,z80_tables.s: $(TOOL_GENERATE_Z80_TABLES) GEN_STR_custom = $(GEN_STR_CUS) GEN_STR_c64 = $(GEN_STR_C64) +GEN_STR_mc64 = $(GEN_STR_MC64) GEN_STR_generic = $(GEN_STR_GEN) GEN_STR_generic_crt = $(GEN_STR_GENCRT) GEN_STR_testing_38K = $(GEN_STR_TST38) diff --git a/NOTICE b/NOTICE new file mode 100644 index 00000000..bbcefdf7 --- /dev/null +++ b/NOTICE @@ -0,0 +1,16 @@ +This is a modified version of MEGA65 Open ROMs (https://github.com/MEGA65/open-roms), +forked at upstream commit ad178dbe4d48cd6a317737a8e0e7e662f7e33d32. + +Modified by Christian Werner, 2026-10-14, for the mc64 computers of arnitech, a set of +Minecraft mods (https://git.susdog.de/chris/arnitech). The fork lives at +https://git.susdog.de/chris/open-roms, branch mc64. + +Changes: + +- src/,,config_mc64.s: a new build configuration, copied from src/,,config_c64.s, with its + own config ID ($6D), the brand "MC64", and BCD_SAFE_INTERRUPTS turned off. +- Makefile: targets for that configuration, build/kernal_mc64.rom and build/basic_mc64.rom, + made the same way as the c64 ones. +- NOTICE: this file. + +The licence terms are unchanged; see LICENSE, COPYING, and COPYING.LESSER. diff --git a/src/,,config_mc64.s b/src/,,config_mc64.s new file mode 100644 index 00000000..867a4d03 --- /dev/null +++ b/src/,,config_mc64.s @@ -0,0 +1,130 @@ + +;; #CONFIG# ID $6D ; should be 1 byte, different for each config file! + +; +; Please read CONFIG.md before modifying this file! +; + +; Idea: +; The Firmware of arnitech's mc64 computers, a Minecraft mod +; Same as the 'c64' configuration, except: +; - the banner names mc64 +; - BCD_SAFE_INTERRUPTS is off, for IRQ entry timing closer to the original + + + +; --- Hardware platform and brand + +;; #CONFIG# PLATFORM_COMMODORE_64 YES +;; #CONFIG# BRAND_CUSTOM "MC64" + + +; --- Processor instruction set + +;; #CONFIG# CPU_MOS_6502 YES +;; #CONFIG# CPU_DTV_6502 NO +;; #CONFIG# CPU_RCW_65C02 NO +;; #CONFIG# CPU_WDC_65C02 NO +;; #CONFIG# CPU_WDC_65816 NO +;; #CONFIG# CPU_CSG_65CE02 NO + + +; --- Memory model + +;; #CONFIG# MEMORY_MODEL_38K YES +;; #CONFIG# MEMORY_MODEL_46K NO +;; #CONFIG# MEMORY_MODEL_50K NO +;; #CONFIG# MEMORY_MODEL_60K NO + + +; --- IEC bus configuration + +;; #CONFIG# IEC YES +;; #CONFIG# IEC_DOLPHINDOS NO +;; #CONFIG# IEC_DOLPHINDOS_FAST NO +;; #CONFIG# IEC_JIFFYDOS NO +;; #CONFIG# IEC_JIFFYDOS_BLANK NO + + +; --- Tape deck configuration + +;; #CONFIG# TAPE_NORMAL YES +;; #CONFIG# TAPE_TURBO NO +;; #CONFIG# TAPE_AUTODETECT NO +;; #CONFIG# TAPE_NO_KEY_SENSE NO +;; #CONFIG# TAPE_NO_MOTOR_CONTROL NO + + +; --- Sound support + +;; #CONFIG# SID_2ND_ADDRESS NO +;; #CONFIG# SID_3RD_ADDRESS NO +;; #CONFIG# SID_D4XX NO +;; #CONFIG# SID_D5XX NO +;; #CONFIG# SID_D6XX NO +;; #CONFIG# SID_D7XX NO + + +; --- Keyboard settings + +;; #CONFIG# KEYBOARD_C128 NO +;; #CONFIG# KEYBOARD_C128_CAPS_LOCK NO +;; #CONFIG# KEY_REPEAT_DEFAULT NO +;; #CONFIG# KEY_REPEAT_ALWAYS NO +;; #CONFIG# KEY_FAST_SCAN YES +;; #CONFIG# JOY1_CURSOR YES +;; #CONFIG# JOY2_CURSOR YES + +;; #CONFIG# PROGRAMMABLE_KEYS YES + +;; #CONFIG# KEYCMD_RUN "\5FL" + +;; #CONFIG# KEYCMD_F1 "@8$" +;; #CONFIG# KEYCMD_F2 "LOAD" +;; #CONFIG# KEYCMD_F3 "@9$" +;; #CONFIG# KEYCMD_F4 "RUN:" +;; #CONFIG# KEYCMD_F5 "@10$" +;; #CONFIG# KEYCMD_F6 NO +;; #CONFIG# KEYCMD_F7 "@11$" +;; #CONFIG# KEYCMD_F8 NO + +;; #CONFIG# KEYCMD_HELP "LIST" + + +; --- Screen editor + +;; #CONFIG# EDIT_STOPQUOTE YES + + +; --- Software features + +;; #CONFIG# PANIC_SCREEN YES +;; #CONFIG# DOS_WEDGE NO +;; #CONFIG# TAPE_WEDGE NO +;; #CONFIG# TAPE_HEAD_ALIGN NO +;; #CONFIG# BCD_SAFE_INTERRUPTS NO + + +; --- BASIC features + +;; #CONFIG# ORIGINAL_UNPATCHED_BASIC YES +;; #CONFIG# TRANSCENDENTAL_FUNCTIONS YES + + +; --- Eye candy + +;; #CONFIG# COLORS_BRAND NO +;; #CONFIG# BANNER_SIMPLE YES +;; #CONFIG# BANNER_FANCY NO +;; #CONFIG# SHOW_FEATURES YES + + +; --- Debug options + +;; #CONFIG# DBG_STUBS_BRK NO +;; #CONFIG# DBG_PRINTF NO + + +; --- Other + +;; #CONFIG# COMPRESSION_LVL_2 NO