diff --git a/Makefile b/Makefile index 41ebd43d..c08d2f56 100644 --- a/Makefile +++ b/Makefile @@ -193,7 +193,7 @@ SEG_LIST_X16 = $(DIR_X16)/basic.seg_0 \ $(DIR_X16)/kernal.seg_0 \ $(DIR_X16)/kernal.seg_1 -REL_TARGET_LIST = $(TARGET_LIST_GEN) $(TARGET_M65_x) $(TARGET_M65_x_PXL) $(TARGET_LIST_U64) +REL_TARGET_LIST = $(TARGET_LIST_GEN) $(TARGET_LIST_CRT) $(TARGET_M65_x) $(TARGET_M65_x_PXL) $(TARGET_LIST_U64) # Misc strings diff --git a/bin/README.md b/bin/README.md index 19a5b8e1..93f2ac57 100644 --- a/bin/README.md +++ b/bin/README.md @@ -13,7 +13,7 @@ Follow these rules, or bad things will happen! * Don't mix ROMs from different builds/versions (again, CHARGEN is an exception). * The generic ROM set should be compatible with any C64-compatible machine; platform-specific ROMs might not work on other platforms. - +
For Ultimate 64 motherboard the following settings are recommended: @@ -22,6 +22,10 @@ For Ultimate 64 motherboard the following settings are recommended:
+The generic_crt ROM set is a special version of generic set, with some code moved to external ROM on the cartridge - thus, more features could be enabled. It needs all the 3 files (BASIC, Kernal, cartridge) to be operable. + +
+ Have fun!
diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 57c77764..370684bc 100644 Binary files a/bin/basic_generic.rom and b/bin/basic_generic.rom differ diff --git a/bin/basic_generic_crt.rom b/bin/basic_generic_crt.rom new file mode 100644 index 00000000..23f011e1 Binary files /dev/null and b/bin/basic_generic_crt.rom differ diff --git a/bin/basic_ultimate64.rom b/bin/basic_ultimate64.rom index 7efd47c9..1ea03b7b 100644 Binary files a/bin/basic_ultimate64.rom and b/bin/basic_ultimate64.rom differ diff --git a/bin/external_generic.crt b/bin/external_generic.crt new file mode 100644 index 00000000..2001cc51 Binary files /dev/null and b/bin/external_generic.crt differ diff --git a/bin/kernal_generic.rom b/bin/kernal_generic.rom index 8cf7e144..d0858184 100644 Binary files a/bin/kernal_generic.rom and b/bin/kernal_generic.rom differ diff --git a/bin/kernal_generic_crt.rom b/bin/kernal_generic_crt.rom new file mode 100644 index 00000000..ee4b0800 Binary files /dev/null and b/bin/kernal_generic_crt.rom differ diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index 79ab55e2..e1a873fc 100644 Binary files a/bin/kernal_ultimate64.rom and b/bin/kernal_ultimate64.rom differ diff --git a/bin/mega65.rom b/bin/mega65.rom index f3fde96d..179efd80 100644 Binary files a/bin/mega65.rom and b/bin/mega65.rom differ diff --git a/bin/mega65_pxlfont.rom b/bin/mega65_pxlfont.rom index 76afe45a..6c040c15 100644 Binary files a/bin/mega65_pxlfont.rom and b/bin/mega65_pxlfont.rom differ diff --git a/doc/Development.md b/doc/Development.md index 9d9ad202..000dc546 100644 --- a/doc/Development.md +++ b/doc/Development.md @@ -95,9 +95,10 @@ List of the most important make targets: ### Code segments and ROM layouts -Currently there are 3 ROM layouts defined: +Currently there are 4 ROM layouts defined: - `STD` - with 2 code segments: `BASIC` (`$A000-$E4D2`, where `$C000-$DFFF` is a skip-gap for RAM and I/O area) and `KERNAL` (`$E4D3 - $FFFF`) +- `CRT` - where `BASIC` becames `BASIC_0` and `KERNAL` becames `KERNAL_0`, with additional `BASIC`/`KERNAL` segments are placed on the required cartridge image - `M65` - where `BASIC` becames `BASIC_0` and `KERNAL` becames `KERNAL_0`, additional segments might be added to the build system in the future; at the moment of writing this document additional 16KB of ROM is defined as `BASIC_1` segment and additional 8KB of ROM is defined as `KERNAL_1` segment - `X16` - memory layout for the Commander X16 machine diff --git a/doc/Extended-BASIC.md b/doc/Extended-BASIC.md index 09e7dd35..eac72c6d 100644 --- a/doc/Extended-BASIC.md +++ b/doc/Extended-BASIC.md @@ -39,7 +39,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` (MEGA65) +### `←H` (MEGA65, cartridge) Launches a built-in tape head alignment tool. Destroys program in memory. Press `RUN/STOP` to terminate the tool. diff --git a/tools/release.cc b/tools/release.cc index 3bf52b82..918d3790 100644 --- a/tools/release.cc +++ b/tools/release.cc @@ -50,6 +50,16 @@ const std::vector ROM_DEFINITIONS = 0x1F80 // KERNAL ID offset }, + { + "CART", + 32896, // file size + 0x203C, // signature offset 1 + 0, // signature offset 2 + 0, // DOS date offset + 0, // BASIC ID offset + 0 // KERNAL ID offset + }, + { "MEGA65", 128 * 1024, // file size