-
Notifications
You must be signed in to change notification settings - Fork 3
Machine
Путь в меню: Machine · Платы: все (Pentagon 512K / 1024K · Byte · Murmuzavr · Profi требуют доп. ОЗУ / RP2350 — см. ниже) · Требует: ничего (большинству моделей для страничной памяти нужна SD-карта или PSRAM)
Выбор модели машины и её набора ROM. Выбор модели открывает подменю ROM; выбор ROM (или модели с единственным ROM) применяет смену, перезагружает эмулируемую машину и возвращает назад. Изменение сохраняется в NVS только когда предпочитаемая машина / ROM установлены в Last used (Options → Preferred machine / Preferred ROM) — иначе модель применяется только на текущий сеанс, а сохранённое значение по умолчанию остаётся.
Список предлагаемых моделей зависит от объёма ОЗУ, доступного для страничной памяти:
-
Есть PSRAM или SD-карта (
ext_ram): полный список — 48K · 128K · Pentagon 128K / 512K / 1024K · Byte · Murmuzavr mode · Profi (RP2350). - Нет SD-карты и нет PSRAM: показываются только модели, загружающиеся без внешней страничной памяти — RP2350: 48K · 128K · Pentagon 128K; RP2040: только 48K. (128K / Pentagon требуют реальной страничной памяти; без backing-store они обратились бы к null и зависли, поэтому их скрывают.)
Profi — только для RP2350. Нужна PSRAM (его hi-res фреймбуфер DS80 живёт в PSRAM) и сборка VGA/HDMI (режим вывода DS80 packed-pair живёт в драйверах VGA/HDMI). На RP2040, на платах только-с-SD без PSRAM и в сборках не-VGA/HDMI (TFT / SOFTTV / TV) строка Profi убирается из меню; устаревшее значение
Profiв NVS на RP2040 при загрузке переписывается в 128K.
ALF TV GAME появляется только если прошивка собрана без
NO_ALF(сборки по умолчанию задаютNO_ALF=1, поэтому ALF не показывается). Когда Profi скрыт, а ALF присутствует, ALF поднимается на место Profi.
48K Issue 2/3 в этом меню нет — он в Options → Other → 48K Issue 2. TR-DOS / Betadisk тоже отдельно (Storage → Betadisk) и работает с любой моделью.
Machine (Select machine)
├── Spectrum 48K ▸
│ ├── 48K
│ ├── 48K Spanish (если не собрано NO_SPAIN_ROM_48k → "Byte 48K")
│ └── Custom
├── Spectrum 128K ▸
│ ├── 128K
│ ├── 128K Spanish (полный список, если не собрано NO_SPAIN_ROM_128k)
│ ├── +2
│ ├── +2 Spanish
│ ├── ZX81+
│ └── Custom
├── Pentagon 128K ▸
│ ├── 128Kp
│ ├── 128Kp + Mr Gluk Reset Srvs
│ └── Custom
├── Pentagon 512K ▸ (нужно доп. ОЗУ) 128Kp / 128Kp+Gluk / Custom
├── Pentagon 1024K ▸ (нужно доп. ОЗУ) 128Kp / 128Kp+Gluk / Custom
├── Byte ▸ (нужно доп. ОЗУ)
│ ├── 48K
│ ├── 128K
│ ├── 128K + Mr Gluk Reset Srvs
│ └── COBMECT. Mode (Yes/No — «совместимый» ROM Byte)
├── Murmuzavr mode ▸ (нужно доп. ОЗУ) None / 4 / 8 / 16 / 32 MB (перезагрузка)
├── Profi ▸ (RP2350, PSRAM, VGA/HDMI)
│ ├── 1024K (Original) штатный сервис Profi + TR-DOS
│ ├── 1024K (Karabas) загрузочное меню ROMain (ROMSET 0)
│ ├── 1024K (Karabas+PQDOS) BIOS PQDOS (ROMSET 1)
│ ├── 1024K (Karabas+FlashTool) Flash Tool (ROMSET 2)
│ ├── 1024K (Karabas+FDImage) FDImage (ROMSET 3)
│ ├── XT keyboard [ON/OFF]
│ └── OSD palette [STD/DS80]
└── ALF TV GAME (только если собрано без NO_ALF)
(На плате без SD-карты и без PSRAM список сокращается — см. «Что это».)
| Модель | Набор(ы) ROM | Примечания |
|---|---|---|
| Spectrum 48K |
48K, 48K Spanish (48Kes), Custom (48Kcs) |
Оригинальный Spectrum 48 КБ. Машина загрузки по умолчанию |
| Spectrum 128K |
128K, 128K Spanish (128Kes), +2, +2 Spanish (+2es), ZX81+, Custom (128Kcs) |
128 КБ / +2 с редактором 128 + AY. ZX81+ — ROM в слоте 128K |
| Pentagon 128K |
128Kp, 128Kp + Mr Gluk Reset Srvs (128Kpg), Custom
|
Советский/клонированный Pentagon 128. Вариант Gluk добавляет Mr Gluk Reset Service (TimeKeeper, см. Network) |
| Pentagon 512K |
128Kp / 128Kpg / Custom |
Pentagon с 512 КБ ОЗУ. Нужна PSRAM или страничная память на SD |
| Pentagon 1024K |
128Kp / 128Kpg / Custom |
Pentagon с 1 МБ ОЗУ. Нужна PSRAM или страничная память на SD |
| Byte |
48Kby, 128Kby, 128Kbg (+ Gluk), COBMECT. Mode
|
Советский клон Byte (Байт) — выпускался Брестским электромеханическим заводом (БЭМЗ) в Бресте, Беларусь; один из самых массовых клонов Spectrum в СССР (см. zxbyte.org). Выпускался в версии 48K, позже расширялся до 128K. COBMECT. (совместимый) Mode — переключатель Yes/No, меняющий ROM страницы 0 (gb_rom_0_byte_sovmest_48k); применяется на лету |
| Murmuzavr mode | объём доп. ОЗУ | Не ROM — выбор доп. ОЗУ от 4 МБ до 32 МБ (None = выкл.; шаги 4 / 8 / 16 / 32 МБ на RP2350, на RP2040 максимум 4 / 8 МБ). Смена вызывает запрос применить-и-перезагрузить (меняет MEM_PG_CNT) |
| Profi (RP2350) |
Profi / ProfiKarabas / ProfiPQ / ProfiKarabasFT / ProfiKarabasFDI
|
Profi 1024 с hi-res режимом DS80 512×240 и пятью выбираемыми ROM-наборами Karabas-Pro (ниже). Подменю также добавляет XT keyboard и OSD palette. Принудительно включает Betadisk; при необходимости отключает Gigascreen и ZiFi NIC |
| ALF TV GAME | ALF1 |
Только при сборке без NO_ALF. Машина-приставка картриджного типа. Встроенного картриджа нет — на RP2350 картриджи ALF монтируются с SD-карты (см. ниже) |
На Pentagon и Profi TR-DOS обязателен — переключение на любой вариант Pentagon или Profi автоматически включает Betadisk (с уведомлением). TR-DOS при этом работает с любой моделью; см. Storage → Betadisk.
48K, 128K и Pentagon имеют Custom ROM, который вы прошиваете сами (см.
Hardware → прошивка). Прошивка custom ROM никогда не затирает заводские
наборы ROM. Custom TR-DOS ROM в Betadisk — снова отдельный слот (см.
Storage).
Строка Profi — это подменю из пяти ROM-наборов Karabas-Pro (повторяют реальные слоты ROMSET флеша Karabas-Pro) плюс два дисплейных параметра Profi. Выбор любого ROM-набора переключает на машину Profi и перезагружает в bank 0 этого ROM.
| Пункт | Значения | Описание |
|---|---|---|
| 1024K (Original) | — | Штатный сервисный ROM Profi + TR-DOS — классическая загрузка Profi |
| 1024K (Karabas) | — | Графическое загрузочное меню ROMain (Karabas-Pro ROMSET 0): экранный селектор Karabas-Pro / Main menu (Loading CP/M system, Run TR-DOS 48/128, Run Sinclair 48/128, Test&Tools) |
| 1024K (Karabas+PQDOS) | — | BIOS PQDOS (ROMSET 1) |
| 1024K (Karabas+FlashTool) | — | Flash Tool от Doctor Max (ROMSET 2) |
| 1024K (Karabas+FDImage) | — | FDImage от Doctor Max (ROMSET 3) |
| XT keyboard | ON / OFF | Расширенный (XT) режим клавиатуры Profi — F1–F10 и т. д. Также переключается на лету горячей клавишей **Alt + ~** (показывается напоминание). Сохраняется в Config::profi_ext_keys
|
| OSD palette | STD / DS80 | Использует ли OSD/меню стандартную палитру ZX (STD) или живую палитру Profi DS80. Применяется сразу. Сохраняется в Config::profi_ds80_std_palette_osd
|
Пока активен ROM-набор Karabas, клавиша Menu / Win (GUI) на PC-клавиатуре работает как настоящая клавиша «Menu» Karabas-Pro. Полный список также на экране F1 Help:
| Комбинация | Действие |
|---|---|
| Menu + F1…F4 | Смена ROM-набора (Karabas / PQDOS / Flash Tool / FDImage) и перезагрузка в него |
| Menu + F5 | Turbo FDC (быстрый режим TR-DOS) вкл/выкл |
| Menu + F7 | Режим стерео AY (ABC / ACB / Mono) |
| Menu + F11 | Частота CPU (3.5 / 7 / 14 МГц) |
| Menu + F12 | NMI |
| Menu + Tab | Поменять диски A ↔ B |
| Menu + J | Тип джойстика |
| Menu + Esc | Открыть главное меню |
На Profi обычная PrtScr переключает XT-клавиатуру (как на реальном железе); снимок экрана в BMP переезжает на Alt + PrtScr.
Софт под CP/M на Profi (например, Honey Commander с pcmsmous.com) использует
последовательную (COM) мышь — Kempston-мышь аппаратно отключена в CP/M на
Karabas. pico-spec эмулирует последовательную мышь К580ВВ51 автоматически —
достаточно двигать USB-мышью.
ROM-наборы Karabas (ROMain / PQDOS) рассчитывают на встроенные часы (RTC).
Включите их в Options → Other → «RTC + NVRAM» — при выключенных часах уголковые
часы ROMain показывают FF. См. Network → RTC / время.
Для CP/M в ROMain и для ROM-набора PQDOS нужны образы дисков на SD-карте:
-
pqdos1.fdi— загрузочная дискета PQDOS; монтируется как образ Betadisk.fdi(см. Storage → Betadisk). -
CP_M_2GB_CF.hdd— образ CF-карты на 2 ГБ с системой CP/M; монтируется как raw-образ IDE/HDD по схеме Profi (см. Storage → IDE/HDD). Затем ROMain → Loading CP/M system загружается с него.
Скачать эти образы и другой софт для Karabas-Pro можно из коллекции софта Karabas-Pro (Яндекс.Диск).
Справочник: руководства разработчика и пользователя Karabas-Pro — https://github.com/andykarpov/karabas-pro/tree/master/docs.
Пункт меню ROMain Loading boot from SD читает физическую SD-карту напрямую через
Z-Controller: парсит FAT-раздел, находит в корне карты файл karabas_boot.$c
(hobeta) и запускает его. Это файловый менеджер FATALL 0.26 (aka Simplorer) — из
него можно ходить по FAT, запускать hobeta-файлы ($C/$B), SPG, заходить внутрь
TRD/SCL-образов и запускать их содержимое.
Что нужно для работы:
-
Storage → Z-Controller = Yes — без него ROM не увидит карту (чтение вернёт
0xFF, и загрузка упадёт); - файл
karabas_boot.$cв корне SD-карты; первый раздел карты — FAT16/FAT32 (exFAT гостевой код не понимает); - скачайте исправленный karabas_boot.zip
и распакуйте в корень карты. В оригинальном FATALL 0.26 из дистрибутива Karabas-Pro
запуск бейсик-файлов ($B) сломан: перед стартом не инициализируется карта памяти
BASIC (VARS/E_LINE/WORKSP), из-за чего стартовая строка самоуничтожается и падает с
Nonsense in BASIC, 256:1— одинаково в эмуляторе и на реальном железе. В исправленном файле карта памяти выставляется при старте; остальное не тронуто.
Диск D: — это RAM-диск, а не физический привод. Раскладка дисков в наборе «1024K (Karabas)»: A:/B: — образы Betadisk из OSD-меню, C: — пусто, D: — встроенный в ПЗУ RAM-диск (живёт в расширенной памяти Profi). Simplorer распаковывает TRD/SCL-образы именно в RAM-диск D:. Перед запуском файлов выберите текущий диск клавишей 2 (drive) — по умолчанию он сбрасывается на A:.
Ограничение RAM-диска (так же на реальном Karabas-Pro): хук RAM-диска в ПЗУ перекрывает только стандартные вызовы TR-DOS API. Игры и демо с собственными или турбо-загрузчиками читают контроллер WD1793 напрямую — а физического привода D не существует (CPLD Karabas выбирает только приводы 0/1), поэтому такой софт с RAM-диска зависает. Монтируйте такие диски обычным образом как A:/B: через Storage → Betadisk.
На RP2350 можно запустить любой картридж ALF (до 1 МБ) с SD-карты. Картридж не прошивается во флеш: файл остаётся на SD и обслуживается «лениво», как дискета контроллером wd1793 — 16-килобайтные банки подгружаются по мере обращения к ним. Переключение в ALF происходит на лету, без перезагрузки; путь картриджа сохраняется в настройках, и после перезагрузки он монтируется снова автоматически.
Загрузить картридж можно тремя способами:
-
F5 (файловый браузер) — выберите файл
.rom/.bin(в том числе внутри ZIP): эмулятор смонтирует картридж и переключится в ALF. - Options → Update → «Cartridge ROM ALF» — то же самое через меню.
- Web Archives (онлайн-каталог) — источник картриджей ALF: Enter для быстрого запуска или F5 для сохранения на SD (см. Network).
Встроенного картриджа Elf-1 больше нет (убран из прошивки для экономии флеш-памяти). Без смонтированного картриджа слот пуст — как TR-DOS без дискеты.
Конфликта с банком wavetable-MIDI GM.DLS больше нет: картридж не занимает общую область флеш-памяти, поэтому GM.DLS и картридж ALF могут стоять одновременно.
При уходе с ALF на другую машину картридж размонтируется (слот становится пустым; файл на SD не трогается).
В отдельных случаях переключение в ALF всё же перезагружает эмулятор (был включён General Sound, либо на платах без butter-PSRAM нужно перекомпоновать память после Profi); картридж при этом перемонтируется на загрузке автоматически.
Когда выбранная модель/ROM отличается от текущей, эмулятор сбрасывается и:
- очищает загруженный
ram_file(без автопереноса снапшота); - включает Betadisk, если выбран Pentagon / Profi;
- на RP2350 отключает несовместимые с целью функции (MB-02+ для Pentagon/Profi/Byte, видео Timex для Byte, и — для Profi — Gigascreen и ZiFi NIC, освобождая их ОЗУ);
- на платах SPI-PSRAM (не-butter) перезагружается всякий раз, когда переключение
пересекает границу Profi, чтобы
setup()заново разместил ~80 КБ принудительных SRAM-страниц Profi.
Машина и ROM по умолчанию (на загрузку) задаются отдельно в Options → Preferred machine и Options → Preferred ROM, где вариант Last used делает любой выбор из меню Machine постоянным. Если задана конкретная предпочитаемая машина, изменения из меню Machine применяются только на сеанс.
| Модель | Что проверяет | Ожидаемый результат |
|---|---|---|
| Spectrum 48K | Базовая машина | Загрузка до (C) 1982 Sinclair
|
Spectrum 128K → 128K
|
Страничная память 128 + AY | Загрузка в меню 128 |
Pentagon 128K → 128Kpg
|
Pentagon + сервис Gluk | Доступен Mr Gluk Reset Service (часы — см. Network) |
Profi → 1024K (Original) (RP2350)
|
DS80 hi-res + Betadisk | Загружается Profi; Betadisk включён автоматически; цвет DS80 в приложениях TR-DOS |
Profi → 1024K (Karabas) (RP2350)
|
Меню ROMain + RTC | При включённых RTC + NVRAM появляется меню Karabas-Pro / Main menu; при смонтированных pqdos1.fdi / CP_M_2GB_CF.hdd пункт Loading CP/M system загружается |
| Murmuzavr mode → 4 MB | Изменение объёма доп. ОЗУ | Запрос применить-и-перезагрузить; возврат с большим числом страниц ОЗУ |
См. тестовые образы.
- Модели ZX Spectrum: https://en.wikipedia.org/wiki/ZX_Spectrum
- Pentagon (клон): https://en.wikipedia.org/wiki/Pentagon_(computer)
- Profi: https://speccy.info/Profi
- Руководства разработчика и пользователя Karabas-Pro: https://github.com/andykarpov/karabas-pro/tree/master/docs
- Коллекция софта Karabas-Pro (Яндекс.Диск): https://disk.yandex.ru/d/zwQ1zw3POjO8Lw
- Клон Byte (Байт): https://zxbyte.org/
- Mr Gluk Reset Service / TimeKeeper: см. Network
Меню (RU)
Сквозные темы
Для разработчиков