Repository navigation
Releases
gxemul-rp 1.0.23
DEC 3000/400: Tru64 UNIX V5.1
Compaq Tru64 UNIX V5.1 now installs and runs on the emulated DEC 3000/400, using the real SRM V7.0 console. It runs multi-user with networking and the CDE desktop on the HX (PMAGB-BA) framebuffer. The 5.1 release notes no longer list the DEC 3000 as supported (5.0A was the last version that was), but its drivers are still in the kernel.
Fixes
- Alpha:
WH64andECBare cache hints and now run as no-ops instead of raising an illegal-instruction fault. Tru64 5.1's_OtsMoveusesWH64, so its kernel panicked as soon as it started. - SCSI: INQUIRY with the EVPD bit set now returns the vital product data pages 0x00, 0x80 (unit serial number) and 0x83 (device identification). The serial number comes from the SCSI id and the image's file name, so it stays the same for an image. Tru64 5.x names disks after this identity and ignored disks without it ("This system appears to have no disks").
- DEC 3000 sparse space: a 64-bit read now returns zero in the high longword. That is where a 64-bit write carries its byte mask, so read-modify-write sequences (
LDQ_U/STQ_U, as Tru64 5.x uses for the RTC) now work. Before, most of those writes were lost. - MC146818 RTC:
- A time register written while the clock is running takes effect at once. Tru64 5.x sets the clock without the SET bit.
- A time set by the guest is now saved in the NVRAM file, after the 50 NVRAM bytes. It survives restarts like a battery-backed clock. Versions that read only the 50 bytes still read these files.
Notes
- SRM V3.3 isn't enough for Tru64 5.x. Its first console call after the remap to virtual addresses closes all open channels. The kernel then can't read its hardware and device databases ("error reading PVD block"), and device names change on every boot. V7.0 doesn't have this problem.
- A V7.0 ROM image for the emulator is the firmware update's system and I/O ROM images, one after the other.
Documentation
doc/machine_dec3000.html: Tru64 UNIX V5.1 installation notes and SRM V7.0.doc/dec3000-plan.md: details of each fix.
gxemul-rp 1.0.22
Alpha System Presets & machine.json Documentation
This release brings full integration of Alpha architecture systems into GXemul's graphical configuration window and expands documentation for configuring Alpha emulation via machine.json.
Highlights
- Alpha System Presets in the Machines Window:
- Selecting Architecture → Alpha in the Machines Window (
gxemulwithout arguments orgxemul --edit) now exposes ready-to-run presets:- DEC 3000 AXP (Model: DEC 3000/400): 133 MHz EV4 RISC processor, 64 MB RAM, PMAGB-BA (SFB) 1280×1024 2D graphics, NCR 53C94 SCSI (
disk.imgID 0, CD-ROM ID 4), real SRM v3.3 firmware. Runs DEC OSF/1, Digital UNIX, and OpenVMS. - DECpc AXP 150 / DEC 2000 Model 300 (Model: DECpc AXP 150): 150 MHz EV4 RISC processor, 64 MB RAM, EISA bus, Adaptec AHA-1742A SCSI, real ROM v1.3 firmware, telnet serial console (
localhost:4000), and automatic NVRAM/ECU pre-population. Runs Windows NT 3.1 Alpha and OpenVMS. - Test-machine for Alpha: Lightweight test target for standalone binary execution.
- DEC 3000 AXP (Model: DEC 3000/400): 133 MHz EV4 RISC processor, 64 MB RAM, PMAGB-BA (SFB) 1280×1024 2D graphics, NCR 53C94 SCSI (
- Drive Model Selection: Real DEC SCSI disk and CD-ROM models (RZ22 through RZ74, RRD40/RRD42) are now selectable in the drive model dropdown for both DEC 3000 and Jensen.
- Selecting Architecture → Alpha in the Machines Window (
- Firmware & ROM Configuration:
- Added Flash ROM window 0 address mapping (
0x180000000) for the DECpc AXP 150, enabling proper ROM path resolution and validation undermachine.json. - Added aliases
"3000"and"sandpiper"to the DEC 3000 machine registration.
- Added Flash ROM window 0 address mapping (
- Documentation:
- Updated
/doc/configfiles.htmlwith Alpha minimal examples,populate_ecudocumentation, and ROM address mappings. - Updated
/doc/machine_jensen.htmlwith a dedicatedmachine.jsonconfiguration guide covering both Windows NT 3.1 Setup (jensen_nt.json) and OpenVMS AXP (jensen_vms.json). - Updated
/doc/machine_dec3000.htmlwith a completedec3000_du40.jsonconfiguration for DEC OSF/1 and Digital UNIX 4.0D. - Updated
/doc/intro.htmlhighlighting Alpha presets in the Machines Window andmachine.jsonworkflows.
- Updated
gxemul-rp 1.0.21
DECpc AXP 150 / DEC 2000 Model 300 ("Jensen"): Windows NT 3.1 ARC Multiboot Support
This release adds support for Microsoft Windows NT 3.1 Alpha on the DECpc AXP 150 / DEC 2000 Model 300 ("Jensen"), including authentic factory NVRAM pre-population, ARC Multiboot 3.0.g initialization, and dynamic OS/firmware console selection.
Highlights
- Pre-populated Factory NVRAM & ECU Configuration:
- Added configurable
populate_ecuoption (defaulttruefor Jensen) inmachine_config, JSON configurations ("populate_ecu"/ alias"ecu"), and the interactive text UI. - Embedded authentic Digital factory NVRAM tables in
dev_jensen_nvram.h:- Block 6 (
0x60000): EISA slot 1 configuration for Adaptec AHA-1742A SCSI host adapter on IRQ 11. - Block C (
0xc0000): ARC Configuration Tree (Section 1) and Environment Variables (Section 2, includingSYSTEMPARTITION,OSLOADER,CONSOLEIN,CONSOLEOUT).
- Block 6 (
- Eliminates NVRAM checksum mismatch and configuration popup errors during ARC Multiboot 3.0.g boot.
- Added configurable
- Dynamic OS Selection in CMOS:
- CMOS register
0x4f(OS_TYPE): defaults to1(Windows NT ARC Multiboot), switches to2(OpenVMS SRM) if-o vmsor-o srmis supplied, and3(DEC OSF/1 SRM) for-o osf/unix.
- CMOS register
- RTC / CMOS BCD Compatibility:
- Fixed MC146818 PC CMOS year modulo 100 handling and dynamic BCD tracking for ARC time validation.
- Firmware & Guest OS Verification:
- ARC Multiboot 3.0.g: boots cleanly without NVRAM errors and presents the interactive boot menu.
- Windows NT 3.1 Setup: loads
setupldrfrom CD-ROM (scsi(0)cdrom(4)fdisk(0)\alpha\setupldr), initializes the kernel and HAL, and reaches the interactive "Welcome to Setup" and Express/Custom setup selection screens. - OpenVMS SRM: passes all 8 diagnostic tests and reaches the
>>>prompt with-o vms.
- Documentation:
- Updated
/doc/machine_jensen.htmlwith step-by-step ARC Multiboot usage, console keyboard navigation (VT100 escape sequences), and Windows NT 3.1 setup instructions.
- Updated
gxemul-rp 1.0.20
DEC 3000/400: DEC OSF/1 V3.0 and Digital UNIX V3.2C and V4.0D
The DEC 3000/400 ("Sandpiper") now installs and runs DEC OSF/1 AXP V3.0, Digital UNIX V3.2C and Digital UNIX V4.0D from their CDs, with the real SRM V3.3 console. Each one runs multi-user with networking and the HX (PMAGB-BA) framebuffer: DECwindows on 3.x, CDE on 4.0D.
Fixes
- MC146818 RTC: ticks the guest still has to take are now counted only while periodic interrupts are enabled, and at most one second's worth. The DEC 3000 console enables the RTC and never takes its interrupts. The ticks that piled up then arrived all at once, which made OSF/1 V3.0's SCSI selection watchdog (sim94) expire and reset the bus during boot.
- Alpha EV4, IMB: a write to the
FLUSH_IC/FLUSH_IC_ASMIPRs (which is what the PALcode'simbdoes) now throws away all translated code. Digital UNIX 4.0 patches its lock call sites at boot and then runs the patched code, but gxemul kept running the old translation, and the boot hung aftertcds0. - Alpha EV4, CMPTxx: IEEE compares now order infinities and denormals like any other value, and trap only on NaN. Before,
/bin/sh'sfabs(x) == HUGE_VALcheck got SIGFPE, so the 4.0D single-user shell kept dying and being restarted.
Documentation
doc/machine_dec3000.htmllists DEC OSF/1 2.0B and 3.0 and Digital UNIX 3.2C and 4.0D as verified, with install notes for each.
gxemul-rp 1.0.19
DECpc AXP 150 / DEC 2000 Model 300 ("Jensen") Emulation
This release introduces complete system emulation of Digital's first PC-class Alpha system, the DECpc AXP 150 (also known as the DEC 2000 Model 300 AXP, code-named "Jensen"), featuring an EISA bus and Adaptec AHA-1742A SCSI host adapter.
Highlights
-
DECpc AXP 150 Architecture & System Logic:
- Complete motherboard emulation powered by a 150 MHz DECchip 21064 (EV4) RISC microprocessor and default 64 MB RAM.
- Full EISA address mapping: sparse EISA memory space (
0x200000000), sparse EISA I/O space (0x300000000), dense EISA memory space (0x3f0000000), and HAE (Hardware Address Extension) translation. - System control registers:
SYSCTL, LED/switch status register, and INTA interrupt vector generation. - PC/EISA chipset: Intel 82357 ISP (cascaded 8259 PICs, 8254 PIT, dual 8237 DMA), dual 16550A UARTs (
COM1at0x3f8,COM2at0x2f8), bidirectional parallel port (LPT1 at0x3bc), PS/2 keyboard/mouse (8042), and MC146818/DS1287 RTC NVRAM. - Flash ROM subsystem with genuine SRM/ARC firmware support and embedded EISA Configuration Utility (ECU) non-volatile configuration memory (NVRAM Block 6).
-
Adaptec AHA-1742A EISA SCSI Host Adapter:
- Emulated in EISA Slot 1 (
0x1000–0x1fff). - Full 32-bit Enhanced Mode with Mailbox In/Out communication protocol (
MBOXIN,MBOXOUT,ATTN,G2CNTRL,G2INTST,G2STAT). - Support for Enhanced Command Blocks (ECBs):
OP_START_ECB,OP_IMMED,OP_ABORT_ECB, Read Host Adapter Inquiry (0x0a), and NOP (0x00). - 32-bit physical bus master scatter-gather DMA engine.
- Level-triggered IRQ delivery and clearing via
G2CNTRL_CLEAR_EISA_INT(0x40) with hardware INTDEF decoding for IRQ 11.
- Emulated in EISA Slot 1 (
-
Firmware & Guest OS Verification:
- Genuine DEC SRM Firmware ROM Version 1.3 (Firmware 309): Passes 100% of power-up self-tests (
CPU OK,MEM OK 64MB,NVR OK,SCC OK,IT OK,KBD OK,LPT OK,SCSI OK). - OpenVMS AXP V1.5-1H1: Boots from CD-ROM via Primary Bootstrap (
APB), initializes the executive, attaches Adaptec AHA-1742A SCSI driver (SYS$PKJDRIVER) on IRQ 11, autoconfiguresPKA0:andDKA0:, accepts interactive date/time, and reaches the Stand-alone BACKUP interactive DCL prompt ($).
- Genuine DEC SRM Firmware ROM Version 1.3 (Firmware 309): Passes 100% of power-up self-tests (
-
Documentation & Machine Guides:
- Added
doc/machine_jensen.html— an exhaustive step-by-step user guide for Jensen hardware, SRM console usage, and OpenVMS AXP 1.5-1H1 installation. - Updated
doc/index.htmlanddoc/intro.htmlto include the DECpc AXP 150 ("Jensen") platform.
- Added
gxemul-rp 1.0.18
DEC OSF/1 AXP V2.0B on the DEC 3000/400, Linux on the DECstation 5000/1xx
Highlights
-
DEC OSF/1 AXP V2.0B (DEC 3000/400):
- Installs from the May 1994 CD-ROM (
boot dka400, thenboot -fl a dka0), builds its kernel, and runs multi-user with networking. - DECwindows (xdm, session manager, mwm, DECterm) runs on the HX (PMAGB-BA) framebuffer at 1280x1024.
- TURBOchannel option cards now repeat every 4 MB in the DEC 3000's slots, since they decode only 22 address bits. OSF/1 2.0's X server writes the HX VRAM through eight such aliases in turn, so the CPU's write buffer never merges two writes to the same address. Before this fix, every other write was lost and X drew in stripes.
- Installs from the May 1994 CD-ROM (
-
DECstation 5000/1xx:
- Linux 2.4 (Debian 3.1) runs. Fixes: R3000 cop0 register 3 writes are ignored, the IOASIC free-running counter counts, the MC146818 periodic flag is set at the periodic rate, and the Z8530's RR1 reads like an idle chip.
- NetBSD 11.0 installs with the 10.1 installer.
-
Framebuffer & console:
- Window titles (and the VNC desktop name) show the VM's name, e.g. "Ultrix 4.5 (DECstation 5000/200)".
--record file.mp4and--record-nonblack file.mp4record the framebuffer window.- Bt459 cursor fix: the rightmost columns are no longer cut off, and pixels without a color are transparent in b/w mode.
- Pasting into the serial console is paced to one character per tick (lk201, dc7085, IOASIC), so long pastes no longer lose characters.
- The DECstations' MC146818 clock starts running in binary 24-hour mode, so there is no more
?RTCor "battery backup clock not valid".
-
Documentation:
- Reorganized around using gxemul and the tested systems, and deployed to GitHub Pages.
- DECstation guides for Ultrix, NetBSD, OpenBSD 2.8 and Sprite with the real ROMs.
- OSF/1 V2.0B in
doc/machine_dec3000.html. doc/RELEASE.htmlis retired in favor ofHISTORY, and there is a new top-levelTODO.md.
gxemul-rp 1.0.17
OpenVMS AXP 1.0 & DECwindows Motif 1.2 on DEC 3000/400
This release brings full support for running OpenVMS AXP V1.0 and the DECwindows Motif V1.2 graphical desktop environment on the emulated DEC 3000 Model 400 ("Pelican"), executing under real SRM console firmware (v3.3) and native Alpha EV4 PALcode.
Key Highlights
-
OpenVMS AXP 1.0 Support:
- Boots the installation CD-ROM using stand-alone
BACKUPunder real SRM console firmware (boot dka400). - Completes full system initialization, disk formatting, AUTOGEN, and boots to multi-user DCL (
boot dka0). - Fixed Z8530 SCC channel reset handling so OpenVMS's
SYS$YRDRIVERinitializes without kernel bugchecks (INVEXCEPTN). - Fixed Alpha EV4 AST delivery privilege check (
(2 << cm) - 1).
- Boots the installation CD-ROM using stand-alone
-
SCSI & Storage Subsystem:
- Implemented NCR 53C94 (ASC) DMA selection with external TCDS DMA engine.
- Added
NCRCMD_TRPADsupport for bothPHASE_DATA_INandPHASE_DATA_OUT(zero-padding partial sectors when writing variable-length records). - Implemented SCSI
MODE_SELECT_10(0x55) and handled parameter-less / zero-length transfers cleanly.
-
DECwindows Motif 1.2 Desktop:
- Runs the X11 server (
DECW$SERVER_MAIN), Motif Window Manager (DECW$MWM), and Session Manager (DECW$SESSION) on the PMAGB-BA (SFB) smart framebuffer at 1280x1024 in 8-bit color. - Dynamic Translation Isolation: Fixed dyntrans virtual translation table pollution during physical memory accesses (
PHYSICALflag inmemory_rw()), eliminating corrupted queue operations inDECTPU(SS$_ROPRAND). - Global Page Table Tuning: Sized SYSGEN parameters (
GBLPAGES=150000,GBLSECTIONS=2000) to support the 80+ DECwindows Motif shared libraries without-SYSTEM-F-GPTFULLerrors. - LMF License Management Bypass: Documented and verified universal license check bypass in
SYS$LOADABLE_IMAGES:SYSLICENSE.EXEforDW-MOTIF.
- Runs the X11 server (
-
Documentation:
- Added
doc/machine_dec3000.html— an exhaustive step-by-step installation and configuration guide modeled ondoc/machine_decstation.html, complete with full-resolution screenshots and thumbnails. - Updated CPU & machine emulation matrix in
doc/intro.html.
- Added
-
Machine Configuration & Logging:
- Robust JSON machine configuration parsing with line/column/snippet error diagnostics, fuzzy typo suggestions via Levenshtein distance, and enum validation.
- Added
--config <path>CLI option and improved option conflict reporting. - High-performance subsystem debug logging (
debugmsg) with dynamic registration and configurable destinations (file, console, stderr). - Automatic build header dependency tracking (
-MMD -MP).
v1.0.16
gxemul-rp 1.0.15
The Windows package again
1.0.14's Windows build linked against libwinpthread-1.dll, so it wasn't packaged. This release fixes that and is otherwise the same as 1.0.14.
See 1.0.14 for what's new: the DEC 3000 Model 400 (Alpha), which runs its real SRM firmware and DEC OSF/1 V1.2, with networking and X on an HX framebuffer.
gxemul-rp 1.0.14
There is no Windows package for this release: use 1.0.15, which is otherwise the same.
DEC 3000 Model 400: a new Alpha machine (-E dec3000 -e 400)
The DEC 3000/400 ("Sandpiper") runs its real firmware: the SRM console V3.3 and its PALcode, from a ROM image. Under it, DEC OSF/1 V1.2 installs from its CD and runs multi-user, with networking. With the display on, it also runs X (DECwindows) on an HX framebuffer.
- Alpha CPU:
- the complete 21064 (EV4) user instruction set, with the instruction tests checked against QEMU;
- the 21064 privileged architecture: PALmode, IPRs, ITB/DTB, interrupts and machine checks.
- Machine:
- the TURBOchannel ASIC, with dense and sparse space and the scatter/gather map;
- the IOCTL: SCCs with DMA, the LANCE, the RTC, the flash ROM and the 79C30A;
- the dual SCSI ASIC with two 53C94s;
- an NVRAM file, so console settings persist.
- Framebuffer:
- with the display on, slot TC0 holds an HX (PMAGB-BA);
- the console firmware and OSF/1 use it, with the LK401 keyboard and the mouse, as the console and for X;
- the serial console line gets its own telnet port.
- Getting started: see doc/dec3000-plan.md. It covers the ROM image, the drive identities the OSF/1 installer needs (e.g. an RZ26-sized disk image named
DEC RZ26, and the CD asDEC RRD42), installing X, and setting up the network.
The power-up self-test still reports ?? for MEM (the LLSC test), ISDN, and TC0 with gxemul's built-in option ROM. None of these stop OSF/1 from running.
Other changes
- MC146818: the update-ended flag is no longer cleared on every access, so Sprite's clock runs again.
- LANCE: received frames are filtered by address with every network backend, not only tap.
- LK201 keyboard:
- Esc is typed as Ctrl+[, so it works in vi and X;
- more control keys, plus F15 to F20, come through;
- escape sequences that arrive split are still recognized, and keys typed right after Esc aren't dropped.
- Simulated network:
- UDP datagrams that arrive in IP fragments are put back together, so NFS's 8 KB writes work;
- reserved source ports are kept where the host allows it. (Antoni Sawicki)
start_paused: starts in the debugger, as-Vdoes.