В оригинальной Сеге, сигнал !CART управляет свапом двух сигналов: !CE0 и !ROM. Первый выведен на гнездо, а второй на EXT для SegaCD. Смысл в том, что если !CART в воздухе (лог.1), то !ROM по адресам $000000-$3FFFFF, а !CE0 - $400000-$7FFFFF. Если сигнал !CART заземлить (лог.0), то эти сигналы меняются местами. Это дает возможность бутить Сегу в SegaCD BIOS и при этом использовать картридж-расширение памяти.
Магистр не использует эту возможность (настоящий сигнал !CART чипа всегда заземлен), но использует свой собственный маппер на PALке, которая опознает по этому сигналу свой картридж и меняет карту памяти согласно требованию: если родной картридж, то он включается в 0, а так же подключается флеш диск и порты с дисководом. В противном случае, все дополнительные устройства изолируются и игровой картридж получает 2оригинальное" окружение. Все просто, оказалось.
PS Основное ОЗУ все же расширено со стандартных 64К до 256К. На самом деле, в оригинале выделено 2 сегмента по 1М на ОЗУ: $E00000-$FFFFFF. Но игры в основном используют косвенную короткую адресацию, а она дает доступ только к 32К $FF8000-$FFFFFF. Область $FF0000-$FF7FFF используется уже прямой полной адресацией (или индексной), т.к. задокументировано всего 64К. Поэтому, наращивание ОЗУ вплоть до 2МБ к краху игр не приводит - я проверял. А системному картриджу оно необходимо. И, кстати, там есть тест ОЗУ на старте, который падает на обычной Сеге или в эмуляторе.
