Инструменты пользователя

Инструменты сайта


msx:carnivore2:specification

Это старая версия документа!


Техническая документация на Carnivore2

Ниже представлена подробная техническая документация на на многофункциональный картридж Carnivore2.

Примечания:

  • Шестнадцатеричные числа могут быть указаны как #90, 90h или 0x90
  • FlashROM память далее именуется как флеш

Основные функциональные блоки и возможности:

  • Внешний накопитель: карта памяти CompactFlash (CF)
    • В качестве ДОС используется Nextor (встроенная поддержка FAT12/16, максимальный размер раздела: 4 Гб).
    • Поддерживаются адаптеры SD и MicroSD карт
    • Nextor поддерживает эмуляцию образов дискет
    • Утилиты совместимы с dos версий 1 и 2
    • Картридж можно настроить как расширение ОЗУ, IDE диск, звуковая карта FMPAC, звуковые карты SCC/SCC+ или любую их комбинацию
  • ОЗУ: 2048 Кб (2 Мб)
    • Состав:
      • 1024 Кб основное ОЗУ с маппером
      • 256 Кб для копий ПЗУ при апгрейде
      • 720 Кб дополнительное ОЗУ с маппером, используемое по принципу MegaRAM
      • 4 Кб (в последнем 64 Кб–ном блоке) для ОЗУ FMPAC (для сохранения данных после отключения питания нужна батарея)
  • Флэш память (FlashROM): объём 8 Мб, скорость 64 Мбит/с
    • Первые 256 Кб используются для служебной информации и ПЗУ эмулируемых устройств
    • Эмуляция мапперов:
      • образы картриджей до 64 Кб (планарный режим)
      • ASCII8
      • ASCII16
      • Konami4
      • Konami5 (SCC/SCC+)
      • Настраиваемый маппер
  • Звук
    • Эмуляция PPI и PSG (порты ввода/вывода: 10h–12h)
    • Эмуляция Konami SCC и SCC+
    • Эмуляция OPLL (YM2413, MSX–Music), переведённое на английский язык ПЗУ
    • Настройка громкости для всех эмулируемых звуковых устройств
    • PSG и PPI можно отключить в пользовательском интерфейсе
  • Дополнительные 128 байт для хранения параметров конфигурации в конфигурационном ППЗУ (M93C46MN1), работает в 8–битном режиме
  • Задаваемая пользователем громкость SCC и FMPAC (8 позиций), сохраняется в конфигурационном ППЗУ
  • Задаваемая пользователем громкость PSG и Clicker (8 позиций), сохраняется в конфигурационном ППЗУ
  • Доступное пользователю включение/выключение устройств PSG и Clicker
  • Задаваемая пользователем частота VDP (50/60 Гц), сохраняется в конфигурационном ППЗУ

Встроенные ПЗУ (BIOS) и модули:

Файл Подслот Описание
BOOTCMFC.ROM 0 Загрузочное меню
BIDECMFC.ROM 1 ПЗУ IDE
2 1 Мб ОЗУ
FMPCCMFC.ROM 3 ПЗУ FMPAC

Расположение загрузочного меню, каталога и BIOS в чипе FlashROM описано ниже. Существуют логические и физические блоки, они имеют разную нумерацию.

Расположение блоков в микросхеме флеш памяти

Микросхема FlashROM, используемая в Carnivore2 имеет в начале 8 логических блоков (в первом физическом 64кб блоке), а затем следуют монолитные 64кб блоки. В логических блоках расположены загрузочное меню и каталог. Далее следуют ПЗУ (BIOS) встроенных устройств. Ниже приведено их расположение по блокам.

8–килобайтные блоки

Первые 8 логических блоков флэш соответствуют нулевому физическому блоку, задаваемому регистром AddrFR. Логическте блоки 0 и 1 содержат код загрузочного меню. Далее следуют блоки директории, а также блоки данных загрузочного меню.

Диапазон адресов № блока Описание
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 Кб блоков
004000h–005FFFh 2 записи каталога
006000h–007FFFh 3
008000h–009FFFh 4 содержит таблицу «Autostart»; чтобы не записывать переменную автостарта по одному физическому байту, она последовательно перемещается по всему блоку
00A000h–00BFFFh 5 используется для «экранных» данных меню загрузки, переключается при необходимости вручную
00C000h–00DFFFh 6
00E000h–00FFFFh 7 не используются

64–килобайтные блоки

После первых восьми логических 8 Кб блоков начинаются 64 Кб физические блоки флеш.

Диапазон адресов № физического блока № логического блока Описание
010000h–01FFFFh81, AddrFR=#01содержат BIOS контроллера IDE
020000h–02FFFFh92, AddrFR=#02
030000h–03FFFFh103, AddrFR=#03содержит FMPAC BIOS
040000h–04FFFFh114, AddrFR=#03Блоки данных — блоки отданы для загрузки пользовательских ROM образов (игр).
050000h–05FFFFh125, AddrFR=#03
7F0000h–7FFFFFh134127, AddrFR=#7F

Микросхема FlashROM

Тип: Numonix M29W640GB TSOP48
Спецификация

Расположение блоков:

#000008K
#020008K
#040008K
#060008K
#080008K
#0A0008K
#0C0008K
#0E0008K
#1000064K x 127

Адреса управления: #4555 и #5AAA

Команды управления:

AUTOSELECT#90
WRITE#A0
CHIP_ERASE#10
BLOCK_ERASE#30
RESET#F0

FlashROM идентификатор: #7E

  • Блок 0 зарезервирован за загрусочным меню (BOOTCMFC.ROM) и директорией
  • Блоки 1–2 зарезервированы за IDE BIOS (BIDECMFC.ROM)
  • Блок 3 зарезервирован за FMPAC BIOS (FMPCCMFC.ROM)

Эмуляция FMPAC

Эмуляция FMPAC поддерживается картриджем через порты #7C–#7D.

Память FMPAC SRAM эмулируется с использованием 8 Кб в верхней части первого мегабайта ОЗУ (теневое ОЗУ). Этот участок памяти не входит в основное ОЗУ и не управляется маппером. Физическая адресация этого блока памяти в теневом ОЗУ: #0FE000h–#0FFFFFh.

Примечание: Данные в ОЗУ стираются сразу после выключения питания компьютера если в картридже не установлена батарея для поддержки долгосрочного хранения данных в ОЗУ.

Регистры управления FMPAC:

  • 7FF4h: запись в YM-2413 порт регистров (только запись)
  • 7FF5h: запись в YM-2413 порт данных (только запись)
  • 7FF6h: активация портов ввода–вывода OPLL (чтение и запись)
  • 7FF7h: страница ПЗУ (чтение и запись)

Для включения 8 Кб SRAM по адресам 4000h–5FFFh, запишите 4Dh по адресу 5FFEh и 69h по адресу 5FFFh.

Конфигурационное ППЗУ

Тип: M93C46MN1 (128 bytes/1 kbit)
Спецификация

Внимание! ППЗУ используется в 8–битном режиме!

Это ППЗУ используется для хранения данных конфигурации картриджа, чтобы избежать их потери после выключения питания. В таблице ниже приведены адреса для хранения данных в ППЗУ, а также информация по самим данным.

Адрес Описание
01громкость FMPAC и SCC. По 3 бита на громкость, максимальное значение — 8. Первые 2 бита используются как признак того, что громкость была предварительно записана в ППЗУ
02флаг 50 или 60 Гц развёртки для видеопроцессора. Бит 1 в этом байте — сам флаг. Если бит в нуле, то используется 60 Гц
03флаги включения/выключения PSG и PPI Clicker, а также их громкость. По 3 бита на громкость, максимальное значение — 8.
Первые 2 бита используются для включения и выключения PSG и Clicker
04Сортировка каталога (0 = не сортировать)
05Эффекты (0 = выключены)
06Скорость клавиатуры/джойстика
07Палитра шрифта меню
08
09Палитра фона меню
0A
0BПалитра шрифта экрана помощи
0C
0DПалитра фона экрана помощи
0E
0FПалитра шрифта экрана настройки громкости
10
11Палитра фона экрана настройки громкости
12
13Палитра шрифта экрана настройки PSG/PPI
14
15Палитра фона экрана настройки PSG/PPI
16
17Флаг использования пользовательских настроек интерфейса (должен быть равен #42)
18Двойной сброс (Double reset) при «холодной загрузке» (1=включен)
19FMPAC моно (1=включен)

Запись в ППЗУ осуществляется с помощью регистра CardMDR+#23. Команды для ППЗУ записываются в этот регистр по очереди, как указано в спецификации на чип. Используются только команды разрешения записи, чтения и записи данных.

Регистры конфигурации

Регистры конфигурации и управления начинаются с адреса 0F80h или 4F80h или 8F80h или СF80h. Видимость регистров зависит от того, что записано в «нулевом» управляющем регистре после включения питания, этот регистр расположен по адресу 4F80h. Все регистры доступны только для записи за исключением псевдорегистра для прямого доступа к FlashROM или к конфигурационному ППЗУ.

В таблице ниже дана информация о регистрах конфигурации. Таблица содержит информацию о битовых значениях байтов конфигурации картриджа.

№ регистра, название Назначение, номер бита Значение бита Описание
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)
2FMROM_offs = сдвиг мини ROM в 64 Кб блоке (в 8 Кб единицах)

Формат записи каталога

В картридже доступно 253 контролируемых пользователем записей каталога. Первая запись каталога не может быть отредактирована или удалена, потому что она устанавливает конфигурацию картриджа по умолчанию — «всё включено».

Каталог содержит 2 блока по 8 Кб и физически расположен в 2 и 3 логических блоках микросхемы FlashROM (диапазон адресов 004000h–005FFFh (блок 2) и 006000h–007FFFh (блок 3). Номер физического блока, адресуемый регистром AddrFr, равен нулю.

Каждая запись каталога занимает 40h (64 байта) и имеет следующий формат:

Адрес Название Назначение, номер бита Значение бита, описание
#00NUMНомер записи (последняя запись — FF игнорируется)
#01ACTФлаг активной/пустой записи (#FF — активная запись)
#02STBСтартовый блок данных 64 Кб
#03LNBРазмер данных в 64 Кб блоках
#04MAPСимвол типа маппера
#05NAMИмя начала записи (30 байт)
#22NAMИмя конца записи
#23R1Mask6 байт конфигурации первого банка
#24R1Addr
#25R1Reg
#26R1Mult
#27B1MaskR
#28B1AdrD
#29R2Mask6 байт конфигурации второго банка
#2AR2Addr
#2BR2Reg
#2CR2Mult
#2DB2MaskR
#2EB2AdrD
#2FR3Mask6 байт конфигурации третьего банка
#30R3Addr
#31R3Reg
#32R3Mult
#33B3MaskR
#34B3AdrD
#35R4Mask6 байт конфигурации четвёртого банка
#36R4Addr
#37R4Reg
#38R4Mult
#39B4MaskR
#3AB4AdrD
#3BMconfрегистр конфигурации расширенного слота
#3CCardMDRрегистр основной конфигурации
#3DPosSizразмер и позиция mini ROM в 64 Кб блоке
7 зарезервировано
6,
5,
4
смещение mini ROM в 64 Кб блоке в зависимости от длины ROM файла:
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 Кб
3 нестандартный размер образа картриджа:
1 — 49 Кб
0 — стандартный размер образа картриджа
2,
1,
0
размер mini ROM:
110b = 32 Кб
101b = 16 Кб
100b = 8 Кб
011b = 4 Кб
000b = не mini ROM
#3ERstRunпараметры сброса и старта
3 начальный адрес образа картриджа:
0 — использовать 2–ой бит этого регистра
1 — использовать стартовый адрес 0002h
2 начальный адрес образа картриджа:
0 — использовать стартовый адрес 4002h
1 — использовать стартовый адрес 8002h
1 контроль выполнения:
0 — не запускать образа картриджа
1 — запустить образа картриджа используя адрес инициализации образа картриджа (биты 3,2)
0 флаг сброса:
0 — не выполнять сброс MSX
1 — сброс MSX
#3FResrvЗарезервировано

Мапперы

Картридж поддерживает несколько широко распространённых мапперов, а также планарный режим. Физические адреса ОЗУ, выделенные для работы мапперов, находятся в диапазоне 100000h–1FFFFFh, что означает, что для этого используется вторая (основная) часть чипа ОЗУ.

ASCII8

Картридж поддерживает стандартный маппер ASCII8.

Значения конфигурации по умолчанию:

#F8#60#00#84#FF#40банк 0
#F8#68#01#84#FF#60банк 1
#F8#70#02#84#FF#80банк 2
#F8#78#03#84#FF#A0банк 3
#FF#AC#00#02#FF регистры конфигурации

ASCII16

Картридж поддерживает стандартный маппер ASCII16.

Значения конфигурации по умолчанию:

#F8#60#00#85#FF#40банк 0
#F8#70#01#85#FF#80банк 1
#F8#70#02#08#3F#80банк 2
#F8#78#03#08#3F#A0банк 3
#FF#8C#00#01#FF регистры конфигурации

Konami4

Картридж поддерживает стандартный маппер Konami4.

Значения конфигурации по умолчанию:

#E8#50#00#04#FF#40банк 0
#E8#60#01#84#FF#60банк 1
#E8#80#02#84#FF#80банк 2
#E8#A0#03#84#FF#A0банк 3
#FF#AC#00#02#FF регистры конфигурации

Konami5

Картридж поддерживает стандартный маппер Konami5 (SCC).

Значения конфигурации по умолчанию:

#F8#50#00#84#FF#40банк 0
#F8#70#01#84#FF#60банк 1
#F8#90#02#84#FF#80банк 2
#F8#B0#03#84#FF#A0банк 3
#FF#BC#00#02#FF регистры конфигурации

MiniROM

Картридж поддерживает MiniROM (образы ROM до 49 Кб) без маппера.

Значения конфигурации по умолчанию:

#F8#60#00#06#7F#40банк 0
#F8#70#01#08#7F#80банк 1
#F8#70#02#08#3F#С0банк 2
#F8#78#03#08#3F#A0банк 3
#FF#8C#07#01#FF регистры конфигурации

Планарный режим 64 Кб

Картридж поддерживает планарный режим, когда первые 64 Кб образа ROM видны в адресном пространстве.

Значения конфигурации по–умолчанию для MiniROM:

#F8#60#00#06#7F#40банк 0
#F8#70#01#08#7F#80банк 1
#F8#70#02#08#3F#C0банк 2
#F8#78#03#08#3F#A0банк 3
#FF#8C#07#01#FF регистры конфигурации

Диапазоны адресов:

#0000–#3FFFбанк 0
#4000–#7FFFбанк 1
#8000–#BFFFбанк 2
#C000–#FFFFбанк 3

Значения по умолчанию

Ниже приведены значения регистров конфигурации по–умолчанию.

CardMDRCardMDR+#0020h (но может отличаться из–за 2 последних бит)
AddrFRCardMDR+#0500h
R1MultCardMDR+#0985h
R2MultCardMDR+#0F00h
R3MultCardMDR+#1500h
R4MultCardMDR+#1B00h
CMDRCpyCardMDR+#1F20h
ConfFlCardMDR+#2002h

Ссылки

msx/carnivore2/specification.1584816549.txt.gz · Последние изменения: 2020-03-21 21:49 — Wierzbowsky