motherboard extras can now be configured

This commit is contained in:
FeralChild64 committed 2019-10-20 09:55:35 +02:00
1 parent 34f984b8f0
commit aec7fe9721
7 files changed
+57 -8

No files matched your search

+4
View File
@@ -23,6 +23,10 @@ Since Open ROMs is highly modular, it should be possible to add other platforms
* 8KB ROM area `$A000`-`$BFFF` * 8KB ROM area `$A000`-`$BFFF`
* 8KB ROM area `$E000`-`$FFFF` * 8KB ROM area `$E000`-`$FFFF`
### `CONFIG_MB_MEGA_65`, `CONFIG_MB_ULTIMATE_64`
Select if the ROM is going to be used exclusively on the specific motherboard. It prevents from enabling options not having sense, skips initialization of C128-only registers, etc.
### `CONFIG_BRAND_GENERIC` ### `CONFIG_BRAND_GENERIC`
If you don't know which variant to choose - select this one. If you don't know which variant to choose - select this one.
+3
View File
@@ -14,6 +14,9 @@
#define CONFIG_PLATFORM_COMMODORE_64 #define CONFIG_PLATFORM_COMMODORE_64
// #define CONFIG_MB_MEGA_65
// #define CONFIG_MB_ULTIMATE_64
#define CONFIG_BRAND_GENERIC #define CONFIG_BRAND_GENERIC
// #define CONFIG_BRAND_TESTING // #define CONFIG_BRAND_TESTING
// #define CONFIG_BRAND_MEGA_65 // #define CONFIG_BRAND_MEGA_65
+4
View File
@@ -7,6 +7,7 @@
// Idea: // Idea:
// - sane defaults for the Mega 65 FPGA computer // - sane defaults for the Mega 65 FPGA computer
// - do not enable features which are a significant compatibility risk
// - unless VICE gains Commodore 65 (or at least Flash8 cartridge) emulation support, // - unless VICE gains Commodore 65 (or at least Flash8 cartridge) emulation support,
// do not enable CPU-specific optimizations; ROMs would be hard to test // do not enable CPU-specific optimizations; ROMs would be hard to test
@@ -15,6 +16,9 @@
#define CONFIG_PLATFORM_COMMODORE_64 #define CONFIG_PLATFORM_COMMODORE_64
#define CONFIG_MB_MEGA_65
// #define CONFIG_MB_ULTIMATE_64
// #define CONFIG_BRAND_GENERIC // #define CONFIG_BRAND_GENERIC
// #define CONFIG_BRAND_TESTING // #define CONFIG_BRAND_TESTING
#define CONFIG_BRAND_MEGA_65 #define CONFIG_BRAND_MEGA_65
+4 -1
View File
@@ -7,7 +7,7 @@
// Idea: // Idea:
// - enable compatibility-risky features // - enable compatibility-risky features
// - enable code not normally used yto make sure it still compiles // - enable code not normally used - to make sure they still compile
@@ -15,6 +15,9 @@
#define CONFIG_PLATFORM_COMMODORE_64 #define CONFIG_PLATFORM_COMMODORE_64
// #define CONFIG_MB_MEGA_65
// #define CONFIG_MB_ULTIMATE_64
// #define CONFIG_BRAND_GENERIC // #define CONFIG_BRAND_GENERIC
#define CONFIG_BRAND_TESTING #define CONFIG_BRAND_TESTING
// #define CONFIG_BRAND_MEGA_65 // #define CONFIG_BRAND_MEGA_65
+3
View File
@@ -14,6 +14,9 @@
#define CONFIG_PLATFORM_COMMODORE_64 #define CONFIG_PLATFORM_COMMODORE_64
// #define CONFIG_MB_MEGA_65
#define CONFIG_MB_ULTIMATE_64
// #define CONFIG_BRAND_GENERIC // #define CONFIG_BRAND_GENERIC
// #define CONFIG_BRAND_TESTING // #define CONFIG_BRAND_TESTING
// #define CONFIG_BRAND_MEGA_65 // #define CONFIG_BRAND_MEGA_65
+35 -7
View File
@@ -19,7 +19,31 @@
// Check that platform and brand configuration is correct // Check that motherboard extras configuration is correct
{
.var selected = 0;
#if CONFIG_MB_MEGA_65
.eval selected++
#endif
#if CONFIG_MB_ULTIMATE_64
.eval selected++
#endif
.if (selected > 1) .error "Please select at most one CONFIG_MB_* option"
#if !CONFIG_PLATFORM_COMMODORE_64 && CONFIG_BRAND_MEGA_65 &&
.error "CONFIG_BRAND_MEGA_65 can only be used with CONFIG_PLATFORM_COMMODORE_64"
#endif
#if !CONFIG_PLATFORM_COMMODORE_64 && CONFIG_BRAND_ULTIMATE_64 &&
.error "CONFIG_BRAND_ULTIMATE_64 can only be used with CONFIG_PLATFORM_COMMODORE_64"
#endif
}
// Check that brand configuration is correct
{ {
.var selected = 0; .var selected = 0;
@@ -39,11 +63,11 @@
.if (selected != 1) .error "Please select exactly one CONFIG_BRAND_* option" .if (selected != 1) .error "Please select exactly one CONFIG_BRAND_* option"
#if !CONFIG_PLATFORM_COMMODORE_64 && CONFIG_BRAND_MEGA_65 && #if CONFIG_MB_MEGA_65 && !(CONFIG_BRAND_MEGA_65 || CONFIG_BRAND_TESTING)
.error "CONFIG_BRAND_MEGA_65 can only be used with CONFIG_PLATFORM_COMMODORE_64" .error "Please select brand either matching the CONFIG_MB_*, or a testing one"
#endif #endif
#if !CONFIG_PLATFORM_COMMODORE_64 && CONFIG_BRAND_ULTIMATE_64 && #if CONFIG_MB_ULTIMATE_64 && !(CONFIG_BRAND_ULTIMATE_64 || CONFIG_BRAND_TESTING)
.error "CONFIG_BRAND_ULTIMATE_64 can only be used with CONFIG_PLATFORM_COMMODORE_64" .error "Please select brand either matching the CONFIG_MB_*, or a testing one"
#endif #endif
} }
@@ -121,8 +145,12 @@
// Check if keyboard options are correct // Check if keyboard options are correct
{ {
#if CONFIG_LEGACY_SCNKEY && CONFIG_KEYBOARD_C128 #if CONFIG_LEGACY_SCNKEY && (CONFIG_KEYBOARD_C128 || CONFIG_KEYBOARD_C128_CAPS_LOCK)
.error "CONFIG_LEGACY_SCNKEY and CONFIG_KEYBOARD_C128 are mutually exclusive" .error "CONFIG_LEGACY_SCNKEY and CONFIG_KEYBOARD_C128* are mutually exclusive"
#endif
#if (CONFIG_MB_MEGA_65 || CONFIG_MB_ULTIMATE_64) && (CONFIG_KEYBOARD_C128 || CONFIG_KEYBOARD_C128_CAPS_LOCK)
.error "Selected CONFIG_MB_* is not compatible with CONFIG_KEYBOARD_C128*"
#endif #endif
} }
+4
View File
@@ -18,6 +18,8 @@ setup_vicii:
dex dex
bpl !- bpl !-
#if !CONFIG_MB_MEGA_65 && !CONFIG_MB_ULTIMATE_64
// Disable C128 extra keys - just to be sure they won't interfere with anything // Disable C128 extra keys - just to be sure they won't interfere with anything
stx VIC_XSCAN stx VIC_XSCAN
@@ -26,6 +28,8 @@ setup_vicii:
stx VIC_CLKRATE stx VIC_CLKRATE
#endif
// Set up default IO values // Set up default IO values
// - [CM64] page 129 - VIC_SCROLY // - [CM64] page 129 - VIC_SCROLY
// - [CM64] pages 140-144 - VIC_SCROLX // - [CM64] pages 140-144 - VIC_SCROLX