-
Notifications
You must be signed in to change notification settings - Fork 3
EN Machine
Menu path: Machine · Boards: all (Pentagon 512K / 1024K · Byte · Murmuzavr · Profi need extra RAM / RP2350 — see below) · Requires: nothing (most models need an SD card or PSRAM for paging)
Pick the machine model and its ROM set. Selecting a model opens a ROM submenu; choosing a ROM (or a model with a single ROM) commits the change, resets the emulated machine and returns. The change is saved to NVS only when your Preferred machine / ROM is set to Last used (Options → Preferred machine / Preferred ROM) — otherwise the model is applied for this session but the saved default is kept.
The set of models offered depends on how much RAM is available for paging:
-
PSRAM or SD card present (
ext_ram): full list — 48K · 128K · Pentagon 128K / 512K / 1024K · Byte · Murmuzavr mode · Profi (RP2350). - No SD card and no PSRAM: only the models that boot without external paging are shown — RP2350: 48K · 128K · Pentagon 128K; RP2040: 48K only. (128K / Pentagon need real paging to a backing store; without one they would dereference null and hang, so they are hidden.)
Profi is RP2350-only. It needs PSRAM (its DS80 hi-res framebuffer lives in PSRAM) and a VGA/HDMI build (the DS80 packed-pair display mode lives in the VGA/HDMI drivers). On RP2040, on SD-only boards with no PSRAM, and on non-VGA/HDMI builds (TFT / SOFTTV / TV) the Profi row is removed from the menu; a stale
Profivalue in NVS is rewritten to 128K on RP2040 at boot.
ALF TV GAME appears only when the firmware is built without
NO_ALF(default builds setNO_ALF=1, so ALF is not shown). When Profi is hidden and ALF is present, ALF moves up to fill Profi's slot.
48K Issue 2/3 is not in this menu — it lives in Options → Other → 48K Issue 2. TR-DOS / Betadisk is also separate (Storage → Betadisk) and works with any model.
Machine (Select machine)
├── Spectrum 48K ▸
│ ├── 48K
│ ├── 48K Spanish (unless built NO_SPAIN_ROM_48k → "Byte 48K")
│ └── Custom
├── Spectrum 128K ▸
│ ├── 128K
│ ├── 128K Spanish (full list unless built NO_SPAIN_ROM_128k)
│ ├── +2
│ ├── +2 Spanish
│ ├── ZX81+
│ └── Custom
├── Pentagon 128K ▸
│ ├── 128Kp
│ ├── 128Kp + Mr Gluk Reset Srvs
│ └── Custom
├── Pentagon 512K ▸ (needs ext RAM) 128Kp / 128Kp+Gluk / Custom
├── Pentagon 1024K ▸ (needs ext RAM) 128Kp / 128Kp+Gluk / Custom
├── Byte ▸ (needs ext RAM)
│ ├── 48K
│ ├── 128K
│ ├── 128K + Mr Gluk Reset Srvs
│ └── COBMECT. Mode (Yes/No — Byte "compatible" ROM)
├── Murmuzavr mode ▸ (needs ext RAM) None / 4 / 8 / 16 / 32 MB (reboot)
├── Profi ▸ (RP2350, PSRAM, VGA/HDMI)
│ ├── 1024K (Original) stock Profi service + TR-DOS
│ ├── 1024K (Karabas) ROMain boot menu (ROMSET 0)
│ ├── 1024K (Karabas+PQDOS) PQDOS BIOS (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 (only if built without NO_ALF)
(On a board with no SD card and no PSRAM the list collapses — see Overview.)
| Model | ROM set(s) | Notes |
|---|---|---|
| Spectrum 48K |
48K, 48K Spanish (48Kes), Custom (48Kcs) |
The original 48 KB Spectrum. Default boot machine |
| Spectrum 128K |
128K, 128K Spanish (128Kes), +2, +2 Spanish (+2es), ZX81+, Custom (128Kcs) |
128 KB / +2 with the 128 editor + AY. ZX81+ is a 128K-slot ROM |
| Pentagon 128K |
128Kp, 128Kp + Mr Gluk Reset Srvs (128Kpg), Custom
|
Soviet/clone Pentagon 128. The Gluk variant adds the Mr Gluk Reset Service (TimeKeeper, see Network) |
| Pentagon 512K |
128Kp / 128Kpg / Custom |
Pentagon with 512 KB RAM. Needs PSRAM or SD paging |
| Pentagon 1024K |
128Kp / 128Kpg / Custom |
Pentagon with 1 MB RAM. Needs PSRAM or SD paging |
| Byte |
48Kby, 128Kby, 128Kbg (+ Gluk), COBMECT. Mode
|
The Soviet Byte (Байт) clone — built by the Brest Electromechanical Plant (БЭМЗ) in Brest, Belarus, one of the most widespread Spectrum clones in the USSR (see zxbyte.org). Sold in 48K form and later upgraded to 128K. COBMECT. (compatible) Mode is a Yes/No toggle that swaps the page-0 ROM (gb_rom_0_byte_sovmest_48k) and is applied live |
| Murmuzavr mode | extended RAM size | Not a ROM — selects extended RAM from 4 MB up to 32 MB (None = off; steps 4 / 8 / 16 / 32 MB on RP2350, RP2040 caps at 4 / 8 MB). Changing it prompts an apply-and-reboot (it resizes MEM_PG_CNT) |
| Profi (RP2350) |
Profi / ProfiKarabas / ProfiPQ / ProfiKarabasFT / ProfiKarabasFDI
|
Profi 1024 with the DS80 512×240 hi-res mode and five selectable Karabas-Pro ROM sets (below). Submenu also adds XT keyboard and OSD palette. Forces Betadisk on; turns off Gigascreen and the ZiFi NIC if needed |
| ALF TV GAME | ALF1 |
Only when built without NO_ALF. A cartridge-style TV-game machine. No built-in cartridge — on RP2350 ALF cartridges are mounted from the SD card (see below) |
TR-DOS is mandatory on Pentagon and Profi — switching to any Pentagon variant or Profi auto-enables Betadisk (with a notice). TR-DOS still works with any model; see Storage → Betadisk.
48K, 128K and Pentagon each expose a Custom ROM that you flash yourself
(see Hardware → flashing). Flashing a custom ROM never overwrites the
factory ROM sets. The Betadisk Custom TR-DOS ROM is a separate slot again (see
Storage).
The Profi row is a submenu of five Karabas-Pro ROM sets (mirroring the real Karabas-Pro flash ROMSET slots) plus two Profi display options. Selecting any ROM set switches to the Profi machine and reboots into that ROM's bank 0.
| Item | Values | Description |
|---|---|---|
| 1024K (Original) | — | Stock Profi service ROM + TR-DOS — the classic Profi boot |
| 1024K (Karabas) | — | ROMain graphical boot menu (Karabas-Pro ROMSET 0): the on-screen Karabas-Pro / Main menu selector (Loading CP/M system, Run TR-DOS 48/128, Run Sinclair 48/128, Test&Tools) |
| 1024K (Karabas+PQDOS) | — | PQDOS BIOS (ROMSET 1) |
| 1024K (Karabas+FlashTool) | — | Doctor Max Flash Tool (ROMSET 2) |
| 1024K (Karabas+FDImage) | — | Doctor Max FDImage (ROMSET 3) |
| XT keyboard | ON / OFF | Profi extended (XT) keyboard mode — F1–F10 etc. Also toggled live with the **Alt + ~** hotkey (a reminder is shown). Saved to Config::profi_ext_keys
|
| OSD palette | STD / DS80 | Whether the OSD/menu uses the standard ZX palette (STD) or the live Profi DS80 palette. Applied immediately. Saved to Config::profi_ds80_std_palette_osd
|
While a Karabas ROM set is active, the PC keyboard Menu / Win (GUI) key acts as the real Karabas-Pro "Menu" key. The full list is also on the F1 Help screen:
| Combo | Action |
|---|---|
| Menu + F1…F4 | Switch ROM set (Karabas / PQDOS / Flash Tool / FDImage) and reboot into it |
| Menu + F5 | Turbo FDC (TR-DOS fast mode) toggle |
| Menu + F7 | AY stereo mode (ABC / ACB / Mono) |
| Menu + F11 | CPU speed (3.5 / 7 / 14 MHz) |
| Menu + F12 | NMI |
| Menu + Tab | Swap drives A ↔ B |
| Menu + J | Joystick type |
| Menu + Esc | Open the main menu |
On Profi the plain PrtScr key toggles the XT keyboard (as on real hardware); the BMP screen capture moves to Alt + PrtScr.
Profi CP/M software (e.g. Honey Commander with pcmsmous.com) uses a serial (COM)
mouse — the Kempston mouse is hardware-gated off in CP/M on Karabas. pico-spec
emulates the К580ВВ51 serial mouse automatically; just move your USB mouse.
The Karabas ROM sets (ROMain / PQDOS) expect the on-board RTC. Enable it under
Options → Other → "RTC + NVRAM" — when off, ROMain's corner clock shows FF.
See Network → RTC / time.
ROMain's CP/M and the PQDOS ROM set need their disk images on the SD card:
-
pqdos1.fdi— the PQDOS boot floppy; mount it as a Betadisk.fdiimage (see Storage → Betadisk). -
CP_M_2GB_CF.hdd— a 2 GB CF-card image holding the CP/M system; mount it as an IDE/HDD raw image with the Profi scheme (see Storage → IDE/HDD). ROMain → Loading CP/M system then boots from it.
Download these images and other Karabas-Pro software from the Karabas-Pro software collection (Yandex Disk).
Reference: Karabas-Pro developer & user manuals — https://github.com/andykarpov/karabas-pro/tree/master/docs.
The ROMain menu entry Loading boot from SD reads the physical SD card directly
through the Z-Controller: it parses the FAT partition, looks for karabas_boot.$c
(a hobeta file) in the card root and runs it. The file is the FATALL 0.26
file manager (aka Simplorer) — it browses the FAT, runs hobeta files ($C/$B) and SPG,
and can enter TRD/SCL images and launch their contents.
Requirements:
-
Storage → Z-Controller = Yes — without it the ROM cannot see the card (reads
float
0xFFand the boot fails); -
karabas_boot.$cin the SD card root; the card's first partition must be FAT16/FAT32 (guest code does not understand exFAT); - download the fixed karabas_boot.zip
and unpack it into the card root. The stock FATALL 0.26 from the Karabas-Pro
distribution has a broken BASIC ($B) file launcher: it never initializes the
BASIC memory map (VARS/E_LINE/WORKSP), so the startup line self-destructs and dies
with
Nonsense in BASIC, 256:1— identically in the emulator and on real hardware. The fixed file sets up the memory map at startup; everything else is untouched.
Drive D: is a RAM-disk, not a physical drive. Drive layout in the "1024K (Karabas)" set: A:/B: — Betadisk images from the OSD menu, C: — empty, D: — the ROM's built-in RAM-disk (lives in Profi extended RAM). Simplorer extracts TRD/SCL images into the RAM-disk D:. Before launching files select the current drive with the 2 (drive) key — it defaults back to A: otherwise.
RAM-disk limitation (same on a real Karabas-Pro): the ROM's RAM-disk hook covers only the standard TR-DOS API calls. Games and demos with custom or turbo loaders talk to the WD1793 controller directly — and physical drive D does not exist (the Karabas CPLD only selects drives 0/1), so such software hangs when run from the RAM-disk. Mount those disks normally as A:/B: via Storage → Betadisk.
On RP2350 you can run any ALF cartridge (up to 1 MB) from the SD card. The cartridge is not flashed: the file stays on SD and is served lazily, like a floppy through the wd1793 controller — 16 KB banks are read in on demand as the guest pages them. Switching into ALF happens in place, with no reboot; the cartridge path is persisted, so after a reboot it is re-mounted automatically.
Three ways to load one:
-
F5 (file browser) — pick a
.rom/.binfile (including inside a ZIP): the emulator mounts the cartridge and switches into ALF. - Options → Update → "Cartridge ROM ALF" — the same via the menu.
- Web Archives online catalog — the ALF cartridges source: Enter to quick-start or F5 to save to SD (see Network).
There is no built-in Elf-1 cartridge anymore (removed from the firmware to free flash). With no cartridge mounted the slot is empty — like TR-DOS with no disk.
The GM.DLS wavetable-MIDI bank conflict is gone: the cartridge no longer uses the shared flash region, so GM.DLS and an ALF cartridge can be installed at the same time.
Leaving ALF for another machine unmounts the cartridge (the slot goes empty; the file on SD is untouched).
In a few cases switching into ALF still reboots the emulator (General Sound was enabled, or a non-butter-PSRAM board needs to re-lay out memory after Profi); the cartridge is then re-mounted automatically at boot.
When the chosen model/ROM differs from the current one, the emulator resets and:
- clears the loaded
ram_file(no auto-snapshot carry-over); - enables Betadisk if you picked Pentagon / Profi;
- on RP2350, disables features incompatible with the target (MB-02+ for Pentagon/Profi/Byte, Timex video for Byte, and — for Profi — Gigascreen and the ZiFi NIC, freeing their RAM);
- on SPI-PSRAM (non-butter) boards, reboots whenever the switch crosses the
Profi boundary, so
setup()can re-lay out the ~80 KB of forced-SRAM Profi pages.
The default machine and ROM (used at boot) are set separately in Options → Preferred machine and Options → Preferred ROM, with a Last used choice that makes any Machine-menu selection stick. With a specific preferred machine set, Machine-menu changes apply only for the session.
| Model | What it checks | Expected result |
|---|---|---|
| Spectrum 48K | Base machine | Boots to (C) 1982 Sinclair
|
Spectrum 128K → 128K
|
128 paging + AY | Boots to the 128 menu |
Pentagon 128K → 128Kpg
|
Pentagon + Gluk service | Mr Gluk Reset Service reachable (see Network for the clock) |
Profi → 1024K (Original) (RP2350)
|
DS80 hi-res + Betadisk | Boots Profi; Betadisk auto-enabled; DS80 colour in TR-DOS apps |
Profi → 1024K (Karabas) (RP2350)
|
ROMain boot menu + RTC | With RTC + NVRAM on, the Karabas-Pro / Main menu appears; pqdos1.fdi / CP_M_2GB_CF.hdd mounted → Loading CP/M system boots |
| Murmuzavr mode → 4 MB | Extended RAM resize | Apply-and-reboot prompt; comes back with more RAM pages |
See test images.
- ZX Spectrum models: https://en.wikipedia.org/wiki/ZX_Spectrum
- Pentagon (clone): https://en.wikipedia.org/wiki/Pentagon_(computer)
- Profi: https://speccy.info/Profi
- Karabas-Pro developer & user manuals: https://github.com/andykarpov/karabas-pro/tree/master/docs
- Karabas-Pro software collection (Yandex Disk): https://disk.yandex.ru/d/zwQ1zw3POjO8Lw
- Byte (Байт) clone: https://zxbyte.org/
- Mr Gluk Reset Service / TimeKeeper: see Network
Меню (RU)
Сквозные темы
Для разработчиков