Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
msx:carnivore2:specification [2020-03-21 21:49] Wierzbowsky [MiniROM] |
msx:carnivore2:specification [2024-02-27 08:52] (текущий) GreyWolf |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Техническая документация на Carnivore2 ====== | ====== Техническая документация на Carnivore2 ====== | ||
- | Ниже представлена подробная техническая документация на на многофункциональный картридж [[carnivore2|Carnivore2]]. | + | Ниже представлена подробная техническая документация на многофункциональный картридж [[carnivore2|Carnivore2]]. |
**Примечания:** | **Примечания:** | ||
Строка 9: | Строка 9: | ||
**Основные функциональные блоки и возможности:** | **Основные функциональные блоки и возможности:** | ||
* Внешний накопитель: карта памяти [[compactflash:compactflash|]] | * Внешний накопитель: карта памяти [[compactflash:compactflash|]] | ||
- | * В качестве ДОС используется [[msx:nextor:nextor|]] (встроенная поддержка FAT12/16, максимальный размер раздела: 4 Гб). | + | * В качестве ДОС используется [[msx:nextor:nextor|]] (встроенная поддержка FAT12/16, максимальный размер раздела: 4 Гбайт). |
* Поддерживаются адаптеры [[sd_card:sd_card|SD и MicroSD]] карт | * Поддерживаются адаптеры [[sd_card:sd_card|SD и MicroSD]] карт | ||
* [[msx:nextor:nextor|]] поддерживает эмуляцию образов дискет | * [[msx:nextor:nextor|]] поддерживает эмуляцию образов дискет | ||
- | * Утилиты совместимы с [[msx:dos|]] версий 1 и 2 | + | * Утилиты совместимы с [[msx:dos:|]] версий 1 и 2 |
* Картридж можно настроить как расширение ОЗУ, IDE диск, звуковая карта FMPAC, звуковые карты SCC/SCC+ или любую их комбинацию | * Картридж можно настроить как расширение ОЗУ, IDE диск, звуковая карта FMPAC, звуковые карты SCC/SCC+ или любую их комбинацию | ||
- | * ОЗУ: 2048 Кб (2 Мб) | + | * ОЗУ: 2048 Кбайт (2 Мбайт) |
* Состав: | * Состав: | ||
- | * 1024 Кб основное ОЗУ с маппером | + | * 1024 Кбайт основное ОЗУ с маппером |
- | * 256 Кб для копий ПЗУ при апгрейде | + | * 256 Кбайт для копий ПЗУ при апгрейде |
- | * 720 Кб дополнительное ОЗУ с маппером, используемое по принципу [[#MegaRAM]] | + | * 720 Кбайт дополнительное ОЗУ с маппером, используемое по принципу [[#MegaRAM]] |
- | * 4 Кб (в последнем 64 Кб–ном блоке) для ОЗУ FMPAC (для сохранения данных после отключения питания нужна батарея) | + | * 4 Кбайт ОЗУ FMPAC (для сохранения данных после отключения питания нужна батарея) |
- | * Флэш память (FlashROM): объём 8 Мб, скорость 64 Мбит/с | + | * Флэш память (FlashROM): объём 8 Мбайт, скорость 64 Мбит/с |
- | * Первые 256 Кб используются для служебной информации и ПЗУ эмулируемых устройств | + | * Первые 256 Кбайт используются для служебной информации и ПЗУ эмулируемых устройств |
* Эмуляция мапперов: | * Эмуляция мапперов: | ||
- | * образы картриджей до 64 Кб (планарный режим) | + | * образы картриджей до 64 Кбайт (планарный режим) |
* ASCII8 | * ASCII8 | ||
* ASCII16 | * ASCII16 | ||
Строка 32: | Строка 32: | ||
* Эмуляция PPI и PSG (порты ввода/вывода: 10h–12h) | * Эмуляция PPI и PSG (порты ввода/вывода: 10h–12h) | ||
* Эмуляция Konami SCC и SCC+ | * Эмуляция Konami SCC и SCC+ | ||
- | * Эмуляция OPLL (YM2413, [[msx:music|MSX–Music]]), переведённое на английский язык ПЗУ | + | * Эмуляция OPLL (YM2413, [[msx:music:|]]), переведённое на английский язык ПЗУ |
* Настройка громкости для всех эмулируемых звуковых устройств | * Настройка громкости для всех эмулируемых звуковых устройств | ||
* PSG и PPI можно отключить в пользовательском интерфейсе | * PSG и PPI можно отключить в пользовательском интерфейсе | ||
Строка 44: | Строка 44: | ||
^ Файл ^ Подслот ^ Описание ^ | ^ Файл ^ Подслот ^ Описание ^ | ||
- | | ''BOOTCMFC.ROM'' | 0 | Загрузочное меню | | + | | ''BOOTCMFC.BIN'' | 0 | Стартовое меню | |
- | | ''BIDECMFC.ROM'' | 1 | ПЗУ IDE | | + | | ''BIDECMFC.BIN'' | 1 | ПЗУ IDE | |
- | | | 2 | 1 Мб ОЗУ | | + | | | 2 | 1 Мбайт ОЗУ | |
- | | ''FMPCCMFC.ROM'' | 3 | ПЗУ FMPAC | | + | | ''FMPCCMFC.BIN'' | 3 | ПЗУ FMPAC | |
- | Расположение загрузочного меню, каталога и BIOS в чипе FlashROM описано ниже. Существуют логические и физические блоки, они имеют разную нумерацию. | + | Расположение стартового меню, каталога и BIOS в чипе FlashROM описано ниже. Существуют логические и физические блоки, они имеют разную нумерацию. |
====== Расположение блоков в микросхеме флеш памяти ====== | ====== Расположение блоков в микросхеме флеш памяти ====== | ||
- | Микросхема FlashROM, используемая в Carnivore2 имеет в начале 8 логических блоков (в первом физическом 64кб блоке), а затем следуют монолитные 64кб блоки. В логических блоках расположены загрузочное меню и каталог. Далее следуют ПЗУ (BIOS) встроенных устройств. Ниже приведено их расположение по блокам. | + | Микросхема FlashROM, используемая в Carnivore2 имеет в начале 8 логических блоков (в первом физическом 64 Кбайтном блоке), а затем следуют монолитные 64 Кбайные блоки. В логических блоках расположены стартовое меню и каталог. Далее следуют ПЗУ (BIOS) встроенных устройств. Ниже приведено их расположение по блокам. |
===== 8–килобайтные блоки ===== | ===== 8–килобайтные блоки ===== | ||
- | Первые 8 логических блоков флэш соответствуют нулевому физическому блоку, задаваемому регистром AddrFR. Логическте блоки 0 и 1 содержат код загрузочного меню. Далее следуют блоки директории, а также блоки данных загрузочного меню. | + | Первые 8 логических блоков флэш соответствуют нулевому физическому блоку, задаваемому регистром AddrFR. Логическте блоки 0, 1, 6 и 7 содержат код и данные стартового меню. Блоки 2 и 3 содержат записи директории. Следующие 2 блока зарезервированы для использования в будущем. |
^ Диапазон адресов ^ № блока ^ Описание ^ | ^ Диапазон адресов ^ № блока ^ Описание ^ | ||
|''000000h–001FFFh''| 0 |после включения питания (AddrFR=#00, R1Mult="10000101" B1AdrD = #4000) отображается в Subslot 0 по адресу #4000–#5FFF и содержит блок загрузчика (заголовок ROM картриджа "AB" + адреса старта)| | |''000000h–001FFFh''| 0 |после включения питания (AddrFR=#00, R1Mult="10000101" B1AdrD = #4000) отображается в Subslot 0 по адресу #4000–#5FFF и содержит блок загрузчика (заголовок ROM картриджа "AB" + адреса старта)| | ||
- | |''002000h–003FFFh''| 1 |после включения питание отображается в Subslot 0 по адресу #6000–#7FFF (биты 2–0 регистра R1Mult = "101" означают размер отображаемого блока (картриджа) 16 Кб и состоят из двух физических 8 Кб блоков| | + | |''002000h–003FFFh''| 1 |после включения питание отображается в Subslot 0 по адресу #6000–#7FFF (биты 2–0 регистра R1Mult = "101" означают размер отображаемого блока (картриджа) 16 Кбайт и состоят из двух физических 8 Кбайтных блоков| |
|''004000h–005FFFh''| 2 |записи каталога| | |''004000h–005FFFh''| 2 |записи каталога| | ||
|''006000h–007FFFh''| 3 |:::| | |''006000h–007FFFh''| 3 |:::| | ||
- | |''008000h–009FFFh''| 4 |содержит таблицу "Autostart"; чтобы не записывать переменную автостарта по одному физическому байту, она последовательно перемещается по всему блоку| | + | |''008000h–009FFFh''| 4 |не используется| |
- | |''00A000h–00BFFFh''| 5 |используется для «экранных» данных меню загрузки, переключается при необходимости вручную| | + | |''00A000h–00BFFFh''| 5 |не используется| |
- | |''00C000h–00DFFFh''| 6 |:::| | + | |''00C000h–00DFFFh''| 6 |используется для «экранных» данных стартового меню, подключается при необходимости вручную| |
- | |''00E000h–00FFFFh''| 7 |не используются| | + | |''00E000h–00FFFFh''| 7 |используется для «экранных» данных стартового меню, подключается при необходимости вручную| |
===== 64–килобайтные блоки ===== | ===== 64–килобайтные блоки ===== | ||
- | После первых восьми логических 8 Кб блоков начинаются 64 Кб физические блоки флеш. | + | После первых восьми логических 8 Кбайтных блоков начинаются 64 Кбайтные физические блоки флеш. |
^ Диапазон адресов ^ № физического блока ^ № логического блока ^ Описание ^ | ^ Диапазон адресов ^ № физического блока ^ № логического блока ^ Описание ^ | ||
Строка 110: | Строка 109: | ||
FlashROM идентификатор: #7E | FlashROM идентификатор: #7E | ||
- | * Блок 0 зарезервирован за загрусочным меню (''BOOTCMFC.ROM'') и директорией | + | * Блок 0 зарезервирован за стартовым меню (''BOOTCMFC.BIN'') и директорией |
- | * Блоки 1–2 зарезервированы за IDE BIOS (''BIDECMFC.ROM'') | + | * Блоки 1–2 зарезервированы за IDE BIOS (''BIDECMFC.BIN'') |
- | * Блок 3 зарезервирован за FMPAC BIOS (''FMPCCMFC.ROM'') | + | * Блок 3 зарезервирован за FMPAC BIOS (''FMPCCMFC.BIN'') |
====== Эмуляция FMPAC ====== | ====== Эмуляция FMPAC ====== | ||
Строка 118: | Строка 117: | ||
Эмуляция FMPAC поддерживается картриджем через порты #7C–#7D. | Эмуляция FMPAC поддерживается картриджем через порты #7C–#7D. | ||
- | Память FMPAC SRAM эмулируется с использованием 8 Кб в верхней части первого мегабайта ОЗУ (теневое ОЗУ). Этот участок памяти не входит в основное ОЗУ и не управляется маппером. Физическая адресация этого блока памяти в теневом ОЗУ: #0FE000h–#0FFFFFh. | + | Память FMPAC SRAM эмулируется с использованием 8 Кбайт в верхней части первого мегабайта ОЗУ (теневое ОЗУ). Этот участок памяти не входит в основное ОЗУ и не управляется маппером. Физическая адресация этого блока памяти в теневом ОЗУ: #0FE000h–#0FFFFFh. |
Примечание: Данные в ОЗУ стираются сразу после выключения питания компьютера если в картридже не установлена батарея для поддержки долгосрочного хранения данных в ОЗУ. | Примечание: Данные в ОЗУ стираются сразу после выключения питания компьютера если в картридже не установлена батарея для поддержки долгосрочного хранения данных в ОЗУ. | ||
Строка 128: | Строка 127: | ||
* 7FF7h: страница ПЗУ (чтение и запись) | * 7FF7h: страница ПЗУ (чтение и запись) | ||
- | Для включения 8 Кб SRAM по адресам 4000h–5FFFh, запишите 4Dh по адресу 5FFEh и 69h по адресу 5FFFh. | + | Для включения 8 Кбайт SRAM по адресам 4000h–5FFFh, запишите 4Dh по адресу 5FFEh и 69h по адресу 5FFFh. |
====== Конфигурационное ППЗУ ====== | ====== Конфигурационное ППЗУ ====== | ||
Строка 139: | Строка 138: | ||
Это ППЗУ используется для хранения данных конфигурации картриджа, чтобы избежать их потери после выключения питания. В таблице ниже приведены адреса для хранения данных в ППЗУ, а также информация по самим данным. | Это ППЗУ используется для хранения данных конфигурации картриджа, чтобы избежать их потери после выключения питания. В таблице ниже приведены адреса для хранения данных в ППЗУ, а также информация по самим данным. | ||
- | ^ Адрес ^ Описание ^ | + | ^ Адрес ^ Описание ^ |
- | |01|громкость FMPAC и SCC. По 3 бита на громкость, максимальное значение — 8. Первые 2 бита используются как признак того, что громкость была предварительно записана в ППЗУ| | + | | 01 | громкость FMPAC и SCC. По 3 бита на громкость, максимальное значение — 8. Первые 2 бита используются как признак того, что громкость была предварительно записана в ППЗУ | |
- | |02|флаг 50 или 60 Гц развёртки для видеопроцессора. Бит 1 в этом байте — сам флаг. Если бит в нуле, то используется 60 Гц| | + | | 02 | флаг 50 или 60 Гц развёртки для видеопроцессора. Бит 1 в этом байте — сам флаг. Если бит в нуле, то используется 60 Гц | |
- | |03|флаги включения/выключения PSG и PPI Clicker, а также их громкость. По 3 бита на громкость, максимальное значение — 8.\\ Первые 2 бита используются для включения и выключения PSG и Clicker| | + | | 03 | флаги включения/выключения PSG и PPI Clicker, а также их громкость. По 3 бита на громкость, максимальное значение — 8.\\ Первые 2 бита используются для включения и выключения PSG и Clicker | |
- | |04|Сортировка каталога (0 = не сортировать)| | + | | 04 | Сортировка каталога (0 = не сортировать) | |
- | |05|Эффекты (0 = выключены)| | + | | 05 | Эффекты (0 = выключены) | |
- | |06|Скорость клавиатуры/джойстика| | + | | 06 | Скорость клавиатуры/джойстика | |
- | |07|Палитра шрифта меню| | + | | 07 | Палитра шрифта меню | |
- | |08|:::| | + | | 08 | ::: | |
- | |09|Палитра фона меню| | + | | 09 | Палитра фона меню | |
- | |0A|:::| | + | | 0A | ::: | |
- | |0B|Палитра шрифта экрана помощи| | + | | 0B | Палитра шрифта экрана помощи | |
- | |0C|:::| | + | | 0C | ::: | |
- | |0D|Палитра фона экрана помощи| | + | | 0D | Палитра фона экрана помощи | |
- | |0E|:::| | + | | 0E | ::: | |
- | |0F|Палитра шрифта экрана настройки громкости| | + | | 0F | Палитра шрифта экрана настройки громкости | |
- | |10|:::| | + | | 10 | ::: | |
- | |11|Палитра фона экрана настройки громкости| | + | | 11 | Палитра фона экрана настройки громкости | |
- | |12|:::| | + | | 12 | ::: | |
- | |13|Палитра шрифта экрана настройки PSG/PPI| | + | | 13 | Палитра шрифта экрана настройки PSG/PPI | |
- | |14|:::| | + | | 14 | ::: | |
- | |15|Палитра фона экрана настройки PSG/PPI| | + | | 15 | Палитра фона экрана настройки PSG/PPI | |
- | |16|:::| | + | | 16 | ::: | |
- | |17|Флаг использования пользовательских настроек интерфейса (должен быть равен #42)| | + | | 17 | Флаг использования пользовательских настроек интерфейса (должен быть равен #42) | |
- | |18|Двойной сброс (Double reset) при "холодной загрузке" (1=включен)| | + | | 18 | Двойной сброс (Double reset) при "холодной загрузке" (1=включен) | |
- | |19|FMPAC моно (1=включен)| | + | | 19 | FMPAC моно (1=включен) | |
+ | | 1A | Последняя запущенная запись | | ||
+ | | 1B | Флаг проигрывания музыки | | ||
+ | | 1C | Номер записи директории для автостарта | | ||
+ | | 1D | Флаг бегущей строки помощи | | ||
+ | | 1E | Статус Dual-PSG | | ||
+ | | 1F | Задержка при автостарте | | ||
+ | | 20 | Флаг разрешения работы в слоте 3 | | ||
+ | | 21 | Номер порта для идентификации и контроля картриджа | | ||
Запись в ППЗУ осуществляется с помощью регистра CardMDR+#23. Команды для ППЗУ записываются в этот регистр по очереди, как указано в спецификации на чип. Используются только команды разрешения записи, чтения и записи данных. | Запись в ППЗУ осуществляется с помощью регистра CardMDR+#23. Команды для ППЗУ записываются в этот регистр по очереди, как указано в спецификации на чип. Используются только команды разрешения записи, чтения и записи данных. | ||
Строка 170: | Строка 177: | ||
====== Регистры конфигурации ====== | ====== Регистры конфигурации ====== | ||
- | Регистры конфигурации и управления начинаются с адреса 0F80h или 4F80h или 8F80h или СF80h. Видимость регистров зависит от того, что записано в "нулевом" управляющем регистре после включения питания, этот регистр расположен по адресу 4F80h. Все регистры доступны только для записи за исключением псевдорегистра для прямого доступа к FlashROM или к конфигурационному ППЗУ. | + | Регистры конфигурации и управления начинаются с адреса 0F80h или 4F80h или 8F80h или СF80h. Видимость регистров зависит от того, что записано в "нулевом" управляющем регистре после включения питания, этот регистр расположен по адресу 4F80h. Все регистры доступны только для записи за исключением псевдорегистра для прямого доступа к FlashROM или к конфигурационному ППЗУ, а также 3 байта версии прошивки ПЛИС - FPGA_ver. |
В таблице ниже дана информация о регистрах конфигурации. Таблица содержит информацию о битовых значениях байтов конфигурации картриджа. | В таблице ниже дана информация о регистрах конфигурации. Таблица содержит информацию о битовых значениях байтов конфигурации картриджа. | ||
+ | ^ № регистра, название ^ Назначение, номер бита ^ Значение бита ^ Описание ^ | ||
+ | | 00 [[#CardMDR]] | регистр управления конфигурацией картриджа ||| | ||
+ | | 01 AddrM0 | младший регистр адреса (7…0) для обращения к FlashROM ||| | ||
+ | | 02 AddrM1 | средний регистр адреса (15…8) для обращения к FlashROM ||| | ||
+ | | 03 AddrM2 | старший регистр адреса (22…16) для обращения к FlashROM ||| | ||
+ | | 04 DatM0 | псевдорегистр для передачи данных FlashRОM ||| | ||
+ | | 05 AddrFR | регистр номера блока FlashROM с которого будут читаться данные для эмуляции ROM (размер блока 64 Кбайт) начальная конфигурация 00h ||| | ||
+ | | 06 R1Mask | [[#bank_config_registers|Регистры конфигурации банка]] 1 ||| | ||
+ | | 07 R1Addr | ::: | ::: | ::: | | ||
+ | | 08 R1Reg | ::: | ::: | ::: | | ||
+ | | 09 R1Mult | ::: | ::: | ::: | | ||
+ | | 0A B1MaskR | ::: | ::: | ::: | | ||
+ | | 0B B1AdrD | ::: | ::: | ::: | | ||
+ | | 0C R2Mask | [[#bank_config_registers|Регистры конфигурации банка]] 2 ||| | ||
+ | | 0D R2Addr | ::: | ::: | ::: | | ||
+ | | 0E R2Reg | ::: | ::: | ::: | | ||
+ | | 0F R2Mult | ::: | ::: | ::: | | ||
+ | | 10 B2MaskR | ::: | ::: | ::: | | ||
+ | | 11 B2AdrD | ::: | ::: | ::: | | ||
+ | | 12 R3Mask | [[#bank_config_registers|Регистры конфигурации банка]] 3 ||| | ||
+ | | 13 R3Addr | ::: | ::: | ::: | | ||
+ | | 14 R3Reg | ::: | ::: | ::: | | ||
+ | | 15 R3Mult | ::: | ::: | ::: | | ||
+ | | 16 B3MaskR | ::: | ::: | ::: | | ||
+ | | 17 B3AdrD | ::: | ::: | ::: | | ||
+ | | 18 R4Mask | [[#bank_config_registers|Регистры конфигурации банка]] 4 ||| | ||
+ | | 19 R4Addr | ::: | ::: | ::: | | ||
+ | | 1A R4Reg | ::: | ::: | ::: | | ||
+ | | 1B R4Mult | ::: | ::: | ::: | | ||
+ | | 1C B4MaskR | ::: | ::: | ::: | | ||
+ | | 1D B4AdrD | ::: | ::: | ::: | | ||
+ | | 1E [[#Mconf]] | Конфигурация мультикартриджа, расширенный слот ||| | ||
+ | | 1F CMDRCpy | дубль регистра управления CardMDR (для использования команды LDIR) ||| | ||
+ | | 20 ConfFl | регистр конфигурации чипа FlashROM \\ начальная конфигурация — 010b ||| | ||
+ | | | 2 | 0 | для 8 разрядной шины данных | | ||
+ | | ::: | ::: | 1 | для 16 разрядной шины данных | | ||
+ | | ::: | 1 | Reset/protect flag || | ||
+ | | ::: | 0 | 1 | подать 12 вольт для режима скоростной записи | | ||
+ | | ::: | ::: | 0 | запретить +12в | | ||
+ | | 21 NSReg | служебный регистр \\ начальная конфигурация — #00, не меняйте его! ||| | ||
+ | | 22 SndLVL | регистр уровня громкости для FMPAC и SCC \\ начальная конфигурация — 1Bh (00011011b) по включению питания; аппаратный рестарт не влияет ||| | ||
+ | | | 7, 6 | 10 = FMPAC моно, \\ 00 = FMPAC стерео || | ||
+ | | ::: | 5, 4, 3 | уровень звука с FMPAK модуля (0–7) || | ||
+ | | ::: | 2, 1, 0 | уровень звука с SCC(SCC+) модуля (0–7) || | ||
+ | | 23 CfgEEPR | управление конфигурационным ППЗУ 93С46 (чтение и запись байтов конфигурации) ||| | ||
+ | | | 7, 6, 5, 4 | не используется || | ||
+ | | ::: | 3 | EECS сигнал Chip Select EEPROM || | ||
+ | | ::: | 2 | EECK сигнал CLK (синхро) || | ||
+ | | ::: | 1 | EEDI сигнал Data Input (данные подаваемые на EEPROM) || | ||
+ | | ::: | 0 | EEDO сигнал Data Output (данные выдаваемые с EEPROM); только чтение || | ||
+ | | 24 PSGCtrl | регистр управления встроенным PSG \\ начальная конфигурация — 1Bh (00011011b) по включению питания; аппаратный рестарт не влияет ||| | ||
+ | | | 7 | включение/выключение PSG || | ||
+ | | ::: | 6 | включение/выключение PPI Clicker || | ||
+ | | ::: | 5, 4, 3 | уровень звука с PSG модуля (0–7) || | ||
+ | | ::: | 2, 1, 0 | уровень звука с PPI Clicker (0–7) || | ||
+ | | 25 | зарезервировано для использования в будущем ||| | ||
+ | | 26 | зарезервировано для использования в будущем ||| | ||
+ | | 27 | зарезервировано для использования в будущем ||| | ||
+ | | | 0 | включение перехватчика по рестарту системы или по чтению с адреса #4000 || | ||
+ | | ::: | ::: | 1 | включён | | ||
+ | | ::: | 1 | расположение перехватчика || | ||
+ | | ::: | ::: | 0 | блок загрузчика в FlashRОM | | ||
+ | | ::: | ::: | 1 | нулевой блок скрытого ОЗУ | | ||
+ | | 28 SLM_cfg | назначение подслота для устройства (главный слот) ||| | ||
+ | | | 7 | номер подслота FMPAC || | ||
+ | | ::: | 6 | ::: | ::: | | ||
+ | | ::: | 5 | номер подслота RAM (Mapper MMM) || | ||
+ | | ::: | 4 | ::: | ::: | | ||
+ | | ::: | 3 | номер подслота IDE (CF) || | ||
+ | | ::: | 2 | ::: | ::: | | ||
+ | | ::: | 1 | номер подслота FlashROM/SC || | ||
+ | | ::: | 0 | ::: | ::: | | ||
+ | | 29 SCART_cfg | регистр управления эмулируемым слотом ||| | ||
+ | | | 7 | 1 | эмулируемый слот включён | | ||
+ | | ::: | ::: | 0 | эмулируемый слот отключён | | ||
+ | | ::: | 6 | 1 | расположение эмулируемого слота назначено пользователем | | ||
+ | | ::: | ::: | 0 | эмулируемый слот назначен подслотом главного слота | | ||
+ | | ::: | 5 | 1 | эмулируемый слот расширен (если не используется как подслот главного слота) | | ||
+ | | ::: | ::: | 0 | эмулируемый слот не расширен (если не используется как подслот главного слота) | | ||
+ | | ::: | 4 | 1 | расположение главного слота назначено пользователем | | ||
+ | | ::: | ::: | 0 | главный слот расположен в физическом слоте (там же, гже картридж) | | ||
+ | | ::: | 3 | 1 | не используется | | ||
+ | | ::: | ::: | 0 | ::: | | ||
+ | | ::: | 2 | 1 | разрешить чтение регистра эмулированного слота FFFF (используется только для 1 и 2 слотов) | | ||
+ | | ::: | ::: | 0 | запретить чтение (будут читаться существующие регистры нормальных слотов) | | ||
+ | | 2A SCART_SLT | конфигурация слота/подслота при включении ||| | ||
+ | | | 7, 6 | 00 = мини ROM до 32 Кбайт без маппера \\ 01 = маппер K4 \\ 10 = маппер K5 без SCC \\ 11 = маппер K5 + SCC || | ||
+ | | ::: | 5, 4 | номер главного слота || | ||
+ | | ::: | 3, 2 | номер расширенного подслота для эмулируемого слота || | ||
+ | | ::: | 1, 0 | номер эмулируемого слота || | ||
+ | | 2B SCART_StBl | Назначение 64 Кбайтного блока эмулируемого слота в FlashROM ||| | ||
+ | | 2C, 2D, 2E FPGA_ver | версия прошивки FPGA (3 байта ASCII) ||| | ||
+ | | 2F MROM_offs | сдвиг мини ROM в 64 Кбайтном блоке (в 8 Кбайтных единицах) ||| | ||
+ | | 30 PSGAlt | конфигурация портов PSG ||| | ||
+ | | | 1 | зарезервировано | | | ||
+ | | ::: | 0 | 1 | альтернативные порты: #10-#11 | | ||
+ | | ::: | ::: | 0 | порты по-умолчанию: #A0-#A1 | | ||
+ | | 35 PFXN | Номер порта для идентификации и конфигурирования картриджа ||| | ||
+ | |||
+ | {{anchor:bank_config_registers}} | ||
+ | ===== Регистры конфигурации банка ===== | ||
+ | |||
+ | Существует шесть регистров конфигурации банка: | ||
+ | - [[#RnMask]] | ||
+ | - [[#RnAddr]] | ||
+ | - [[#RnReg]] | ||
+ | - [[#RnMult]] | ||
+ | - [[#BnMaskR]] | ||
+ | - [[#BnAdrD]] | ||
+ | |||
+ | n — это номер банка | ||
+ | ==== RnMask ==== | ||
+ | |||
+ | Маска для адреса регистра страницы банка (этот регистр как правило дублируется на несколько адресов, например для картриджа Konami 5 (SCC) эти адреса для первого банка 5000h–57FFh, здесь задаётся маска только старшего байта — 11111000b или F8h | ||
+ | |||
+ | Начальная конфигурация F8h | ||
+ | |||
+ | ==== RnAddr ==== | ||
+ | |||
+ | Адрес регистра страницы банка, старший байт для адреса 5000h это 50h | ||
+ | |||
+ | Начальная конфигурация 50h | ||
+ | |||
+ | ==== RnReg ==== | ||
+ | |||
+ | Содержимое регистра страницы банка, здесь задаётся начальное значение страницы перед запуском содержимого ROM как правило = 00h | ||
+ | |||
+ | Начальная конфигурация 00h | ||
+ | |||
+ | |||
+ | ==== RnMult ==== | ||
+ | |||
+ | RnMult — регистр режима банка и его размера | ||
+ | |||
+ | ^ Бит ^ Значение ^ Описание ^ | ||
+ | | 7 | 1 |разрешение регистра страницы банка| | ||
+ | |:::| 0 |управление страницей банка выключено| | ||
+ | | 6 | 1 |зеркалирование выключено| | ||
+ | |:::| 0 |включено| | ||
+ | | 5 |выбор в качестве источника|| | ||
+ | |:::| 0 |FlashROM| | ||
+ | |:::| 1 |RAM| | ||
+ | | 4 | 1 |разрешение записи в банк| | ||
+ | |:::| 0 |запрет записи в банк| | ||
+ | | 3 | 0 |банк включён| | ||
+ | |:::| 1 |банк выключен| | ||
+ | | 2, \\ 1, \\ 0 |размер банка \\ 111b = 64 Кбайт, \\ 110b = 32 Кбайт, \\ 101b = 16 Кбайт, \\ 100b = 8 Кбайт, \\ 011b = 4 Кбайт \\ остальные значения — банк выключен \\ начальная конфигурация — 85h|| | ||
+ | |||
+ | Начальное значение — 00h, банк выключен. | ||
+ | |||
+ | ==== BnMaskR ==== | ||
+ | |||
+ | Маска для адресации банка в блок FlashROM (размер эмулируемой ROM или количество страничек, например для 128 Кбайт ROM нужно 16 страничек по 8 Кбайт, значит выбираем маску = 0Fh или 00001111b) | ||
+ | |||
+ | Начальная конфигурация — 03h | ||
+ | |||
+ | ==== BnAdrD ==== | ||
+ | |||
+ | Адрес банка, только старший байт, для 4000h = 40h | ||
+ | |||
+ | Начальная конфигурация — 40h | ||
+ | ===== CardMDR ===== | ||
+ | |||
+ | 00 CardMDR — регистр управления конфигурацией картриджа | ||
+ | |||
+ | ^ Бит ^ Значение ^ Описание ^ | ||
+ | | 7 |1|запрет отображения регистров| | ||
+ | |:::|0|регистры отображаются| | ||
+ | | 6 |0/1/2/3|регистры отображаются начиная с адреса 0F80h/4F80h/8F80h/CF80h| | ||
+ | | 5 |:::|:::| | ||
+ | | 4 |1|разрешение "чипа" SCC| | ||
+ | |:::|0|запрет "чипа" SCC| | ||
+ | | 3 |1|режим отложенной конфигурации| | ||
+ | |:::|0|конфигурация меняется сразу после изменения управляющих регистров| | ||
+ | | 2 |0|при отложенной конфигурации изменения вступают в силу после выполнения процессором команды с адреса 0000h| | ||
+ | |:::|1|изменения вступают в силу после выполнения чтения с адреса 4000h отложенная конфигурация регистров действует только для AddrFR и регистров управления банками| | ||
+ | | 1 |данные для чтения BIOS встроенных устройств|| | ||
+ | |:::|0|данные системных ROM образов (меню загрузки, IDE контроллер, FMPAС) читаются из флеш| | ||
+ | |:::|1|данные системных ROM образов (меню загрузки, IDE контроллер, FMPAС) читаются из RAM картриджа (внимание! предварительно данные нужно перезаписать из флеш в RAM)| | ||
+ | | 0 |управление чтением служебных регистров|| | ||
+ | |:::|0|все служебные регистры читаются по соответствующим адресам памяти согласно битам 6,5 в 0F80h/4F80h/8F80h/CF80h| | ||
+ | |:::|1|служебные регистры не читаются, отображается только 1 байт данных флеш блока согласно установленным значениям регистров банка| | ||
+ | |||
+ | ===== Mconf ===== | ||
+ | |||
+ | 1E Mconf — регистр конфигурации мультикартриджа, расширенный слот | ||
+ | |||
+ | ^ Байт ^ Значение ^ Описание ^ | ||
+ | | 7 | 1 |разрешение расширенного слота| | ||
+ | |:::| 0 |один слот| | ||
+ | | 6 | 1 |разрешение чтения портов МММ–маппера FC,FD,FE,FF| | ||
+ | | 5 | 1 |разрешение YM2413 (FM Pack Synt. 7Ch,7Dh)| | ||
+ | | 4 | 1 |разрешение 3С порта (МММ–маппера)| | ||
+ | | 3 | 1 |разрешение -3 Subslot FM Pack bios ROM| | ||
+ | | 2 | 1 |разрешение -2 Subslot 1 Mb RAM с маппером (MMM стандарт)| | ||
+ | | 1 | 1 |разрешение -1 Subslot CF card интерфейс| | ||
+ | | 0 | 1 |разрешение -0 Subslot MSCC (и данного регистра)| | ||
- | ^ № регистра, название ^ Назначение, номер бита ^ Значение бита ^ Описание ^ | ||
- | |00 CardMDR|регистр управления конфигурацией картриджа||| | ||
- | | | 7 |1|запрет отображения регистров| | ||
- | |:::|:::|0|регистры отображаются| | ||
- | |:::| 6 |0/1/2/3|регистры отображаются начиная с адреса 0F80h/4F80h/8F80h/CF80h| | ||
- | |:::| 5 |:::|:::| | ||
- | |:::| 4 |1|разрешение "чипа" SCC| | ||
- | |:::|:::|0|запрет "чипа" SCC| | ||
- | |:::| 3 |1|режим отложенной конфигурации| | ||
- | |:::|:::|0|конфигурация меняется сразу после изменения управляющих регистров| | ||
- | |:::| 2 |0|при отложенной конфигурации изменения вступают в силу после выполнения процессором команды с адреса 0000h| | ||
- | |:::|:::|1|изменения вступают в силу после выполнения чтения с адреса 4000h отложенная конфигурация регистров действует только для AddrFR и регистров управления банками| | ||
- | |:::| 1 |данные для чтения BIOS встроенных устройств|| | ||
- | |:::|:::|0|данные системных ROM образов (меню загрузки, IDE контроллер, FMPAС) читаются из флеш| | ||
- | |:::|:::|1|данные системных ROM образов (меню загрузки, IDE контроллер, FMPAС) читаются из RAM картриджа (внимание! предварительно данные нужно перезаписать из флеш в RAM)| | ||
- | |:::| 0 |управление чтением служебных регистров|| | ||
- | |:::|:::|0|все служебные регистры читаются по соответствующим адресам памяти согласно битам 6,5 в 0F80h/4F80h/8F80h/CF80h| | ||
- | |:::|:::|1|служебные регистры не читаются, отображается только 1 байт данных флеш блока согласно установленным значениям регистров банка| | ||
- | |01 AddrM0|младший регистр адреса (7…0) для обращения к FlashROM||| | ||
- | |02 AddrM1|средний регистр адреса (15…8) для обращения к FlashROM||| | ||
- | |03 AddrM2|старший регистр адреса (22…16) для обращения к FlashROM||| | ||
- | |04 DatM0|псевдорегистр для передачи данных FlashRОM||| | ||
- | |05 AddrFR|регистр номера блока FlashROM с которого будут читаться данные для эмуляции ROM (размер блока 64кб) начальная конфигурация 00h||| | ||
- | ^Регистры конфигурации первого банка|||| | ||
- | |06 R1Mask|маска для адреса регистра страницы банка (этот регистр как правило дублируется на несколько адресов, \\ например для картриджа Konami 5 (SCC) эти адреса для первого банка 5000h–57FFh, здесь задаётся маска только старшего байта — 11111000b или F8h \\ начальная конфигурация F8h||| | ||
- | |07 R1Addr|адрес регистра страницы банка, старший байт для адреса 5000h это 50h \\ начальная конфигурация 50h||| | ||
- | |08 R1Reg|содержимое регистра страницы банка, здесь задаётся начальное значение страницы перед запуском \\ содержимого ROM как правило = 00h \\ начальная конфигурация 00h||| | ||
- | |09 R1Mult|регистр режима банка и его размера||| | ||
- | | | 7 | 1 |разрешение регистра страницы банка| | ||
- | |:::|:::| 0 |управление страницей банка выключено| | ||
- | |:::| 6 | 1 |зеркалирование выключено| | ||
- | |:::|:::| 0 |включено| | ||
- | |:::| 5 |выбор в качестве источника|| | ||
- | |:::|:::| 0 |FlashROM| | ||
- | |:::|:::| 1 |RAM| | ||
- | |:::| 4 | 1 |разрешение записи в банк| | ||
- | |:::|:::| 0 |запрет записи в банк| | ||
- | |:::| 3 | 0 |банк включён| | ||
- | |:::|:::| 1 |банк выключен| | ||
- | |:::| 2, \\ 1, \\ 0 |размер банка \\ 111b = 64 Кбайт, \\ 110b = 32 Кбайт, \\ 101b = 16 Кбайт, \\ 100b = 8 Кбайт, \\ 011b = 4 Кбайт \\ остальные значения — банк выключен \\ начальная конфигурация — 85h|| | ||
- | |0A B1MaskR|Маска для адресации банка в блок FlashROM (размер эмулируемой ROM или количество страничек, например \\ для 128 Кб ROM нужно 16 страничек по 8 Кб, значит выбираем маску = 0Fh или 00001111b) \\ начальная конфигурация — 03h||| | ||
- | |0B B1AdrD|Адрес банка, только старший байт.. для 4000h = 40h \\ начальная конфигурация — 40h||| | ||
- | ^Регистры конфигурации второго банка|||| | ||
- | |0C R2Mask|аналогично R1Mask||| | ||
- | |0D R2Addr|аналогично R1Addr||| | ||
- | |0E R2Reg|аналогично R1Reg||| | ||
- | |0F R2Mult|аналогично R1Mult, начальное значение — 00h, банк выключен||| | ||
- | |10 B2MaskR|аналогично B1MaskR||| | ||
- | |11 B2AdrD|аналогично B1AdrD||| | ||
- | ^Регистры конфигурации третьего банка|||| | ||
- | |12 R3Mask|аналогично R1Mask||| | ||
- | |13 R3Addr|аналогично R1Addr||| | ||
- | |14 R3Reg|аналогично R1Reg||| | ||
- | |15 R3Mult|аналогично R1Mult, начальное значение — 00h, банк выключен||| | ||
- | |16 B3MaskR|аналогично B1MaskR||| | ||
- | |17 B3AdrD|аналогично B1AdrD||| | ||
- | ^Регистры конфигурации четвёртого банка|||| | ||
- | |18 R4Mask|аналогично R1Mask||| | ||
- | |19 R4Addr|аналогично R1Addr||| | ||
- | |1A R4Reg|аналогично R1Reg||| | ||
- | |1B R4Mult|аналогично R1Mult, начальное значение — 00h, банк выключен||| | ||
- | |1C B4MaskR|аналогично B1MaskR||| | ||
- | |1D B4AdrD|аналогично B1AdrD||| | ||
- | |1E Mconf|мультикартридж конфигурация, расширенный слот||| | ||
- | | | 7 | 1 |разрешение расширенного слота| | ||
- | |:::|:::| 0 |один слот| | ||
- | |:::| 6 | 1 |разрешение чтения портов МММ–маппера FC,FD,FE,FF| | ||
- | |:::| 5 | 1 |разрешение YM2413 (FM Pack Synt. 7Ch,7Dh)| | ||
- | |:::| 4 | 1 |разрешение 3С порта (МММ–маппера)| | ||
- | |:::| 3 | 1 |разрешение -3 Subslot FM Pack bios ROM| | ||
- | |:::| 2 | 1 |разрешение -2 Subslot 1 Mb RAM с маппером (MMM стандарт)| | ||
- | |:::| 1 | 1 |разрешение -1 Subslot CF card интерфейс| | ||
- | |:::| 0 | 1 |разрешение -0 Subslot MSCC (и данного регистра)| | ||
- | |1F CMDRCpy|дубль регистра управления CardMDR (для использования команды LDIR)||| | ||
- | |20 ConfFl|регистр конфигурации чипа FlashROM \\ начальная конфигурация — 010b||| | ||
- | | | 2 | 0 |для 8 разрядной шины данных| | ||
- | |:::|:::| 1 |для 16 разрядной шины данных| | ||
- | |:::| 1 |Reset/protect flag|| | ||
- | |:::| 0 | 1 |подать 12 вольт для режима скоростной записи| | ||
- | |:::|:::| 0 |запретить +12в | | ||
- | |21 NSReg|служебный регистр \\ начальная конфигурация — #00, не меняйте его!||| | ||
- | |22 SndLVL|регистр уровня громкости для FMPAC и SCC \\ начальная конфигурация — 1Bh (00011011b) по включению питания; аппаратный рестарт не влияет||| | ||
- | | | 7, \\ 6 |10 = FMPAC моно, \\ 00 = FMPAC стерео|| | ||
- | |:::| 5, \\ 4, \\ 3 |уровень аудио с FMPAK модуля (0–7)|| | ||
- | |:::| 2, \\ 1, \\ 0 |уровень аудио с SCC(SCC+) модуля (0–7)|| | ||
- | |23 CfgEEPR|управление конфигурационным ППЗУ 93С46 (чтение и запись байтов конфигурации)||| | ||
- | | | 7, \\ 6, \\ 5, \\ 4 |не используется|| | ||
- | |:::| 3 |EECS сигнал Chip Select EEPROM|| | ||
- | |:::| 2 |EECK сигнал CLK (синхро)|| | ||
- | |:::| 1 |EEDI сигнал Data Input (данные подаваемые на EEPROM)|| | ||
- | |:::| 0 |EEDO сигнал Data Output (данные выдаваемые с EEPROM); только чтение|| | ||
- | |24 PSGCtrl|регистр управления встроенным PSG \\ начальная конфигурация — 1Bh (00011011b) по включению питания; аппаратный рестарт не влияет||| | ||
- | | | 7 |включение/выключение PSG|| | ||
- | |:::| 6 |включение/выключение PPI Clicker|| | ||
- | |:::| 5, \\ 4, \\ 3 |уровень аудио с PSG модуля (0–7)|| | ||
- | |:::| 2, \\ 1, \\ 0 |уровень аудио с PPI Clicker (0–7)|| | ||
- | |25 V_AR_L|младшие 8 бит адреса кода перехватчика||| | ||
- | |26 V_AR_H|старшие 8 бит адреса кода перехватчика||| | ||
- | |27 aV_hunt|конфигурация перехватчика для режима отложенной конфигурации||| | ||
- | | | 0 |включение перехватчика по рестарту системы или по чтению с адреса #4000|| | ||
- | |:::|:::| 1 |включён| | ||
- | |:::| 1 |расположение перехватчика|| | ||
- | |:::|:::| 0 |блок загрузчика в FlashRОM| | ||
- | |:::|:::| 1 |нулевой блок скрытого ОЗУ| | ||
- | |28 SLM_cfg|назначение подслота для устройства (главный слот)||| | ||
- | | | 7 |номер подслота FMPAC|| | ||
- | |:::| 6 |:::|| | ||
- | |:::| 5 |номер подслота RAM (Mapper MMM)|| | ||
- | |:::| 4 |:::|| | ||
- | |:::| 3 |номер подслота IDE (CF)|| | ||
- | |:::| 2 |:::|| | ||
- | |:::| 1 |номер подслота FlashROM/SC|| | ||
- | |:::| 0 |:::|| | ||
- | |29 SCART_cfg|регистр управления подчинённым слотом||| | ||
- | | | 7 | 1 |подчинённый слот включён| | ||
- | |:::|:::| 0 |подчинённый слот отключён| | ||
- | |:::| 6 | 1 |расположение слота подчинённого назначено пользователем| | ||
- | |:::|:::| 0 |починенный слот назначен подслотом главного слота| | ||
- | |:::| 5 | 1 |подчинённый слот расширен (если не используется как подслот главного слота)| | ||
- | |:::|:::| 0 |подчинённый слот не расширен (если не используется как подслот главного слота)| | ||
- | |:::| 4 | 1 |расположение главного слота назначено пользователем| | ||
- | |:::|:::| 0 |главный слот, расположен в физическом слоте| | ||
- | |:::| 3 | 1 |не используется| | ||
- | |:::|:::| 0 |:::| | ||
- | |2A SCART_SLT|конфигурация слота/послота при включении||| | ||
- | | | 7, \\ 6 |00 = мини ROM до 32 Кб без маппера, \\ 01 = маппер K4, \\ 10 = маппер K5+SCC, \\ 11 = маппер K5 без SCC|| | ||
- | |:::| 5, \\ 4 |номер главного слота|| | ||
- | |:::| 3, \\ 2 |номер расширенного слота|| | ||
- | |:::| 1, \\ 0 |номер подчинённого слота|| | ||
- | |2B SCART_StBl|Назначение 64 Кб блока подчинённого слота в FlashROM||| | ||
- | |2C, 2D, 2E FPGA_ver|версия прошивки FPGA (3 байта ASCII)||| | ||
- | |2F|MROM_offs = сдвиг мини ROM в 64 Кб блоке (в 8 Кб единицах)||| | ||
{{anchor:directoryentryformat}} | {{anchor:directoryentryformat}} | ||
Строка 312: | Строка 384: | ||
В картридже доступно 253 контролируемых пользователем записей каталога. Первая запись каталога не может быть отредактирована или удалена, потому что она устанавливает конфигурацию картриджа по умолчанию — "всё включено". | В картридже доступно 253 контролируемых пользователем записей каталога. Первая запись каталога не может быть отредактирована или удалена, потому что она устанавливает конфигурацию картриджа по умолчанию — "всё включено". | ||
- | Каталог содержит 2 блока по 8 Кб и физически расположен в 2 и 3 логических блоках микросхемы FlashROM (диапазон адресов 004000h–005FFFh (блок 2) и 006000h–007FFFh (блок 3). Номер физического блока, адресуемый регистром AddrFr, равен нулю. | + | Каталог содержит 2 блока по 8 Кбайт и физически расположен в 2 и 3 логических блоках микросхемы FlashROM (диапазон адресов 004000h–005FFFh (блок 2) и 006000h–007FFFh (блок 3). Номер физического блока, адресуемый регистром AddrFr, равен нулю. |
Каждая запись каталога занимает 40h (64 байта) и имеет следующий формат: | Каждая запись каталога занимает 40h (64 байта) и имеет следующий формат: | ||
Строка 318: | Строка 390: | ||
|#00|NUM|Номер записи (последняя запись — FF игнорируется)|| | |#00|NUM|Номер записи (последняя запись — FF игнорируется)|| | ||
|#01|ACT|Флаг активной/пустой записи (#FF — активная запись)|| | |#01|ACT|Флаг активной/пустой записи (#FF — активная запись)|| | ||
- | |#02|STB|Стартовый блок данных 64 Кб|| | + | |#02|STB|Стартовый блок данных 64 Кбайт|| |
- | |#03|LNB|Размер данных в 64 Кб блоках|| | + | |#03|LNB|Размер данных в 64 Кбайтных блоках|| |
|#04|MAP|Символ типа маппера|| | |#04|MAP|Символ типа маппера|| | ||
- | |#05|NAM|Имя начала записи (30 байт)|| | + | |#05|NAM|Имя записи (30 байт)|| |
- | |#22|NAM|Имя конца записи|| | + | |#22|NAM|:::|| |
- | |#23|R1Mask|6 байт конфигурации первого банка|| | + | |#23|R1Mask|[[#bank_config_registers|Регистры конфигурации банка]] 1|| |
|#24|R1Addr|:::|| | |#24|R1Addr|:::|| | ||
|#25|R1Reg|:::|| | |#25|R1Reg|:::|| | ||
Строка 329: | Строка 401: | ||
|#27|B1MaskR|:::|| | |#27|B1MaskR|:::|| | ||
|#28|B1AdrD|:::|| | |#28|B1AdrD|:::|| | ||
- | |#29|R2Mask|6 байт конфигурации второго банка|| | + | |#29|R2Mask|[[#bank_config_registers|Регистры конфигурации банка]] 2|| |
|#2A|R2Addr|:::|| | |#2A|R2Addr|:::|| | ||
|#2B|R2Reg|:::|| | |#2B|R2Reg|:::|| | ||
Строка 335: | Строка 407: | ||
|#2D|B2MaskR|:::|| | |#2D|B2MaskR|:::|| | ||
|#2E|B2AdrD|:::|| | |#2E|B2AdrD|:::|| | ||
- | |#2F|R3Mask|6 байт конфигурации третьего банка|| | + | |#2F|R3Mask|[[#bank_config_registers|Регистры конфигурации банка]] 3|| |
|#30|R3Addr|:::|| | |#30|R3Addr|:::|| | ||
|#31|R3Reg|:::|| | |#31|R3Reg|:::|| | ||
Строка 341: | Строка 413: | ||
|#33|B3MaskR|:::|| | |#33|B3MaskR|:::|| | ||
|#34|B3AdrD|:::|| | |#34|B3AdrD|:::|| | ||
- | |#35|R4Mask|6 байт конфигурации четвёртого банка|| | + | |#35|R4Mask|[[#bank_config_registers|Регистры конфигурации банка]] 4|| |
|#36|R4Addr|:::|| | |#36|R4Addr|:::|| | ||
|#37|R4Reg|:::|| | |#37|R4Reg|:::|| | ||
Строка 347: | Строка 419: | ||
|#39|B4MaskR|:::|| | |#39|B4MaskR|:::|| | ||
|#3A|B4AdrD|:::|| | |#3A|B4AdrD|:::|| | ||
- | |#3B|Mconf|регистр конфигурации расширенного слота|| | + | |#3B|[[#Mconf]]|регистр конфигурации расширенного слота|| |
- | |#3C|CardMDR|регистр основной конфигурации|| | + | |#3C|[[#CardMDR]]|регистр основной конфигурации|| |
- | |#3D|PosSiz|размер и позиция mini ROM в 64 Кб блоке|| | + | |#3D|[[#PosSiz]]|размер и позиция mini ROM в 64 Кбайтном блоке|| |
- | | | | 7 |зарезервировано| | + | |#3E|[[#RstRun]]|параметры сброса и старта|| |
- | |:::|:::| 6, \\ 5, \\ 4 |смещение mini ROM в 64 Кб блоке в зависимости от длины ROM файла: <WRAP> | + | |
- | | ^ 8 Кб ^ 16 Кб ^ 32 Кб ^ | + | |
- | |000b| 0 Кб| 0 Кб | 0 Кб | | + | |
- | |001b| 8 Кб| 16 Кб | 32 Кб | | + | |
- | |010b| 16 Кб | 32 Кб | | | + | |
- | |011b| 24 Кб | 48 Кб | | | + | |
- | |100b| 32 Кб | | | | + | |
- | |101b| 40 Кб | | | | + | |
- | |110b| 48 Кб | | | + | |
- | |111b| 56 Кб | | | + | |
- | </WRAP>| | + | |
- | | | | 3 |нестандартный размер образа картриджа:\\ 1 — 49 Кб \\ 0 — стандартный размер образа картриджа| | + | |
- | | | | 2,\\ 1, \\ 0 |размер mini ROM: \\ 110b = 32 Кб \\ 101b = 16 Кб \\ 100b = 8 Кб \\ 011b = 4 Кб \\ 000b = не mini ROM| | + | |
- | |#3E|RstRun|параметры сброса и старта|| | + | |
- | | | | 3 |начальный адрес образа картриджа:\\ 0 — использовать 2–ой бит этого регистра \\ 1 — использовать стартовый адрес 0002h| | + | |
- | | | | 2 |начальный адрес образа картриджа:\\ 0 — использовать стартовый адрес 4002h \\ 1 — использовать стартовый адрес 8002h| | + | |
- | | | | 1 |контроль выполнения: \\ 0 — не запускать образа картриджа \\ 1 — запустить образа картриджа используя адрес инициализации образа картриджа (биты 3,2)| | + | |
- | | | | 0 |флаг сброса: \\ 0 — не выполнять сброс MSX \\ 1 — сброс MSX| | + | |
|#3F|Resrv|Зарезервировано|| | |#3F|Resrv|Зарезервировано|| | ||
+ | |||
+ | ===== PosSiz ===== | ||
+ | |||
+ | PosSiz — размер и позиция mini ROM в 64 Кбайтном блоке | ||
+ | |||
+ | ^ Бит ^ Значение/описание ^ | ||
+ | | 7 |зарезервировано| | ||
+ | | 6, \\ 5, \\ 4 |смещение mini ROM в 64 Кбайтном блоке в зависимости от длины ROM файла: <WRAP> | ||
+ | | ^ 8 Кбайт ^ 16 Кбайт ^ 32 Кбайт ^ | ||
+ | |000b| 0 Кбайт | 0 Кб | 0 Кбайт | | ||
+ | |001b| 8 Кбайт | 16 Кбайт | 32 Кбайт | | ||
+ | |010b| 16 Кбайт | 32 Кбайт | | | ||
+ | |011b| 24 Кбайт | 48 Кбайт | | | ||
+ | |100b| 32 Кбайт | | | | ||
+ | |101b| 40 Кбайт | | | | ||
+ | |110b| 48 Кбайт | | | ||
+ | |111b| 56 Кбайт | | | ||
+ | </WRAP>| | ||
+ | | 3 |нестандартный размер образа картриджа:\\ 1 — 49 Кбайт \\ 0 — стандартный размер образа картриджа| | ||
+ | | 2,\\ 1, \\ 0 |размер mini ROM: \\ 110b = 32 Кбайт \\ 101b = 16 Кбайт \\ 100b = 8 Кбайт \\ 011b = 4 Кбайт \\ 000b = не mini ROM| | ||
+ | |||
+ | ===== RstRun ===== | ||
+ | |||
+ | RstRun — параметры перезагрузки и старта | ||
+ | |||
+ | ^ Бит ^ Значение ^ Описание ^ | ||
+ | | 3 |начальный адрес образа картриджа|| | ||
+ | |:::|0|использовать 2–ой бит этого регистра | | ||
+ | |:::|1|использовать стартовый адрес из 0002h| | ||
+ | | 2 |начальный адрес образа картриджа|| | ||
+ | |:::|0|использовать стартовый адрес из 4002h| | ||
+ | |:::|1|использовать стартовый адрес из 8002h| | ||
+ | | 1 |контроль запуска|| | ||
+ | |:::|0|не запускать образ картриджа| | ||
+ | |:::|1|запустить образ картриджа используя стартовый адрес (биты 3,2)| | ||
+ | | 0 |флаг перезагрузки|| | ||
+ | |:::|0|не выполнять перезагрузку MSX| | ||
+ | |:::|1|перезагрузка MSX| | ||
+ | |||
====== Мапперы ====== | ====== Мапперы ====== | ||
Картридж поддерживает несколько широко распространённых мапперов, а также планарный режим. Физические адреса ОЗУ, выделенные для работы мапперов, находятся в диапазоне 100000h–1FFFFFh, что означает, что для этого используется вторая (основная) часть чипа ОЗУ. | Картридж поддерживает несколько широко распространённых мапперов, а также планарный режим. Физические адреса ОЗУ, выделенные для работы мапперов, находятся в диапазоне 100000h–1FFFFFh, что означает, что для этого используется вторая (основная) часть чипа ОЗУ. | ||
+ | |||
+ | {{anchor:mapper_type}} | ||
+ | Таблица значений типов мапперов: | ||
+ | ^ Символ ^ Значение ^ | ||
+ | |''K''|маппер [[#Konami5|Konami 5 SCC]]| | ||
+ | |''k''|маппер [[#Konami4]]| | ||
+ | |''a''|маппер [[#ASCII8]]| | ||
+ | |''A''|маппер [[#ASCII16]]| | ||
+ | |''M''|[[#minirom|мини ROM (до 64 Кбайт)]]| | ||
+ | |''C''|конфигурационная запись| | ||
+ | |''U''|неизвестный маппер| | ||
+ | |''%%-%%''|для остальных случаев| | ||
+ | |||
===== ASCII8 ===== | ===== ASCII8 ===== | ||
Строка 379: | Строка 485: | ||
Значения конфигурации по умолчанию: | Значения конфигурации по умолчанию: | ||
- | |#F8|#60|#00|#84|#FF|#40^банк 0| | + | |#F8|#60|#00|#84|#FF|#40^банк 1| |
- | |#F8|#68|#01|#84|#FF|#60^банк 1| | + | |#F8|#68|#00|#84|#FF|#60^банк 2| |
- | |#F8|#70|#02|#84|#FF|#80^банк 2| | + | |#F8|#70|#00|#84|#FF|#80^банк 3| |
- | |#F8|#78|#03|#84|#FF|#A0^банк 3| | + | |#F8|#78|#00|#84|#FF|#A0^банк 4| |
|#FF|#AC|#00|#02|#FF| ^регистры конфигурации| | |#FF|#AC|#00|#02|#FF| ^регистры конфигурации| | ||
Строка 390: | Строка 496: | ||
Значения конфигурации по умолчанию: | Значения конфигурации по умолчанию: | ||
- | |#F8|#60|#00|#85|#FF|#40^банк 0| | + | |#F8|#60|#00|#85|#FF|#40^банк 1| |
- | |#F8|#70|#01|#85|#FF|#80^банк 1| | + | |#F8|#70|#00|#85|#FF|#80^банк 2| |
- | |#F8|#70|#02|#08|#3F|#80^банк 2| | + | |#F8|#60|#00|#85|#FF|#C0^банк 3| |
- | |#F8|#78|#03|#08|#3F|#A0^банк 3| | + | |#F8|#70|#00|#85|#FF|#00^банк 4| |
|#FF|#8C|#00|#01|#FF| ^регистры конфигурации| | |#FF|#8C|#00|#01|#FF| ^регистры конфигурации| | ||
Строка 401: | Строка 507: | ||
Значения конфигурации по умолчанию: | Значения конфигурации по умолчанию: | ||
- | |#E8|#50|#00|#04|#FF|#40^банк 0| | + | |#E8|#50|#00|#04|#FF|#40^банк 1| |
- | |#E8|#60|#01|#84|#FF|#60^банк 1| | + | |#E8|#60|#01|#84|#FF|#60^банк 2| |
- | |#E8|#80|#02|#84|#FF|#80^банк 2| | + | |#E8|#80|#02|#84|#FF|#80^банк 3| |
- | |#E8|#A0|#03|#84|#FF|#A0^банк 3| | + | |#E8|#A0|#03|#84|#FF|#A0^банк 4| |
|#FF|#AC|#00|#02|#FF| ^регистры конфигурации| | |#FF|#AC|#00|#02|#FF| ^регистры конфигурации| | ||
Строка 412: | Строка 518: | ||
Значения конфигурации по умолчанию: | Значения конфигурации по умолчанию: | ||
- | |#F8|#50|#00|#84|#FF|#40^банк 0| | + | |#F8|#50|#00|#84|#FF|#40^банк 1| |
- | |#F8|#70|#01|#84|#FF|#60^банк 1| | + | |#F8|#70|#01|#84|#FF|#60^банк 2| |
- | |#F8|#90|#02|#84|#FF|#80^банк 2| | + | |#F8|#90|#02|#84|#FF|#80^банк 3| |
- | |#F8|#B0|#03|#84|#FF|#A0^банк 3| | + | |#F8|#B0|#03|#84|#FF|#A0^банк 4| |
|#FF|#BC|#00|#02|#FF| ^регистры конфигурации| | |#FF|#BC|#00|#02|#FF| ^регистры конфигурации| | ||
{{anchor:minirom}} | {{anchor:minirom}} | ||
- | |||
===== MiniROM ===== | ===== MiniROM ===== | ||
- | Картридж поддерживает MiniROM (образы ROM до 49 Кб) без маппера. | + | Картридж поддерживает MiniROM (образы ROM до 49 Кбайт) без маппера. |
Значения конфигурации по умолчанию: | Значения конфигурации по умолчанию: | ||
- | |#F8|#60|#00|#06|#7F|#40^банк 0| | + | |#F8|#60|#00|#06|#7F|#40^банк 1| |
- | |#F8|#70|#01|#08|#7F|#80^банк 1| | + | |#F8|#70|#01|#08|#7F|#80^банк 2| |
- | |#F8|#70|#02|#08|#3F|#С0^банк 2| | + | |#F8|#70|#02|#08|#3F|#С0^банк 3| |
- | |#F8|#78|#03|#08|#3F|#A0^банк 3| | + | |#F8|#78|#03|#08|#3F|#A0^банк 4| |
|#FF|#8C|#07|#01|#FF| ^регистры конфигурации| | |#FF|#8C|#07|#01|#FF| ^регистры конфигурации| | ||
{{anchor:linear64}} | {{anchor:linear64}} | ||
+ | ===== Планарный режим 64 Кбайт ===== | ||
- | ===== Планарный режим 64 Кб ===== | + | Картридж поддерживает планарный режим, когда первые 64 Кбайт образа ROM видны в адресном пространстве. |
- | + | ||
- | Картридж поддерживает планарный режим, когда первые 64 Кб образа ROM видны в адресном пространстве. | + | |
Значения конфигурации по–умолчанию для MiniROM: | Значения конфигурации по–умолчанию для MiniROM: | ||
- | |#F8|#60|#00|#06|#7F|#40^банк 0| | + | |#F8|#60|#00|#06|#7F|#40^банк 1| |
- | |#F8|#70|#01|#08|#7F|#80^банк 1| | + | |#F8|#70|#01|#08|#7F|#80^банк 2| |
- | |#F8|#70|#02|#08|#3F|#C0^банк 2| | + | |#F8|#70|#02|#08|#3F|#C0^банк 3| |
- | |#F8|#78|#03|#08|#3F|#A0^банк 3| | + | |#F8|#78|#03|#08|#3F|#A0^банк 4| |
|#FF|#8C|#07|#01|#FF| ^регистры конфигурации| | |#FF|#8C|#07|#01|#FF| ^регистры конфигурации| | ||
Диапазоны адресов: | Диапазоны адресов: | ||
- | |#0000–#3FFF^банк 0| | + | |#0000–#3FFF^банк 1| |
- | |#4000–#7FFF^банк 1| | + | |#4000–#7FFF^банк 2| |
- | |#8000–#BFFF^банк 2| | + | |#8000–#BFFF^банк 3| |
- | |#C000–#FFFF^банк 3| | + | |#C000–#FFFF^банк 4| |
{{anchor:defaultvalues}} | {{anchor:defaultvalues}} | ||
Строка 464: | Строка 568: | ||
|ConfFl|CardMDR+#20|02h| | |ConfFl|CardMDR+#20|02h| | ||
- | ====== Ссылки ====== | + | {{anchor:rcp_file_format}} |
+ | ====== Формат файла RCP ====== | ||
- | [[https://sysadminmosaic.ru/msx/carnivore2/carnivore2|Инструкция по эксплуатации]] | + | Описание формата файла RCP (Register Configuration Preset) — набор настроек регистров. |
+ | |||
+ | ^ Адрес (байт) ^ Описание ^^ | ||
+ | |#00|[[#mapper_type|Тип маппера]]|| | ||
+ | |#01|R1Mask|[[#bank_config_registers|Регистры конфигурации банка]] 1| | ||
+ | |#02|R1Addr|:::| | ||
+ | |#03|R1Reg|:::| | ||
+ | |#04|R1Mult|:::| | ||
+ | |#05|B1MaskR|:::| | ||
+ | |#06|B1AdrD|:::| | ||
+ | |#07|R2Mask|[[#bank_config_registers|Регистры конфигурации банка]] 2| | ||
+ | |#08|R2Addr|:::| | ||
+ | |#09|R2Reg|:::| | ||
+ | |#0A|R2Mult|:::| | ||
+ | |#0B|B2MaskR|:::| | ||
+ | |#0C|B2AdrD|:::| | ||
+ | |#0D|R3Mask|[[#bank_config_registers|Регистры конфигурации банка]] 3| | ||
+ | |#0E|R3Addr|:::| | ||
+ | |#0F|R3Reg|:::| | ||
+ | |#10|R3Mult|:::| | ||
+ | |#11|B3MaskR|:::| | ||
+ | |#12|B3AdrD|:::| | ||
+ | |#13|R4Mask|[[#bank_config_registers|Регистры конфигурации банка]] 4| | ||
+ | |#14|R4Addr|:::| | ||
+ | |#15|R4Reg|:::| | ||
+ | |#16|R4Mult|:::| | ||
+ | |#17|B4MaskR|:::| | ||
+ | |#18|B4AdrD|:::| | ||
+ | |#19|[[#Mconf]]|регистр конфигурации расширенного слота| | ||
+ | |#1A|[[#CardMDR]]|регистр основной конфигурации| | ||
+ | |#1B|[[#PosSiz]]|размер и позиция mini ROM в 64 Кбайтном блоке| | ||
+ | |#1C|[[#RstRun]]|параметры перезагрузки и старта ROM| | ||
+ | |#1D|Не используется, всегда FF|| | ||
+ | |||
+ | ====== Порт для идентификации и контроля ====== | ||
+ | |||
+ | Карнивор может быть найден и может управляться с помощью специального порта-ввода вывода, который можно выбрать в конфигурационном меню. Номер порта может быть установлен в диапазоне #F0-F2. Поддерживаются следующие операции: | ||
+ | |||
+ | - Детектирование картриджа | ||
+ | * Запишите "C" в порт и прочитайте оттуда значение в байт. Карнивор ответит номером версии "2" (в ASCII формате) | ||
+ | - Определение слота, в котором находится Карнивор | ||
+ | * Запишите "S" в порт и прочитайте оттуда значение в байт. Карнивор ответит номером слота, в котором он находится, например "1" (в ASCII формате) | ||
+ | - Спрятать регистры конфигурации | ||
+ | * Запишите "H" в порт, регистры конфигурации будут спрятаны | ||
+ | - Показать регистры конфигурации | ||
+ | * Запишите "R" в порт, регистры конфигурации будут показаны по выбранному (смотрите информацию ниже) или дефолтному адресу #4F80 | ||
+ | - Управление местоположением регистров конфигурации в памяти | ||
+ | * Запишите "0" в порт, регистры конфигурации будут показаны по адресу #0F80 | ||
+ | * Запишите "1" в порт, регистры конфигурации будут показаны по адресу #4F80 | ||
+ | * Запишите "2" в порт, регистры конфигурации будут показаны по адресу #8F80 | ||
+ | * Запишите "3" в порт, регистры конфигурации будут показаны по адресу #CF80 | ||
+ | - Управление режимом работы картриджа (ВНИМАНИЕ! После изменения нужна программная перезагрузка по JP 0) | ||
+ | * Запишите "A" в порт, картридж будет переведён в монофункциональный режим работы (активно только одно устройство) | ||
+ | * Запишите "M" в порт, картридж будет переведён в мультифункциональный режим работы (активны все устройства) | ||
+ | |||
+ | ====== Ссылки ====== | ||
+ | [[carnivore2|]] | ||
+ | {{tag>MSX RBSC}} |