Skip to content

EN Machine

drew.po28@gmail.com edited this page Jul 22, 2026 · 8 revisions

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)

Overview

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 Profi value 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 set NO_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.

Menu structure

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.)

Models

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.

"Custom" ROM slots

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).

Profi submenu (RP2350)

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

Karabas-Pro "Menu" (Win) key hotkeys

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.

Serial (COM) mouse

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.

RTC + NVRAM

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.

Disk images for CP/M and PQDOS

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 .fdi image (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.

Loading boot from SD — the FATALL file manager (karabas_boot.$C)

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 0xFF and the boot fails);
  • karabas_boot.$c in 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.

ALF cartridge loading (RP2350)

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/.bin file (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.

Switching machines — side effects

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.

Preferred machine / ROM

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.

How to test

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.

Links

Clone this wiki locally