Skip to content

Releases: zygvlogs/manios

ManiOS 0.26.1-10252026

Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 23:27

ManiOS 0.26.1-10252026

This maintenance release completes the shared DOS text-screen path introduced
for the FreeDOS utility workflows.

  • DOS console string writes now update the emulated B800 text cells, so a
    later DOS process can read the text drawn by earlier VCLS, VFRAME and VECHO
    processes.
  • The kernel provisions one empty writable /dos-screen.bin file in RAMFS
    for the screen state shared between dosrun processes. Other root paths
    remain read-only.
  • DOS Enter input is normalized to carriage return, as DOS programs expect.
  • The DOS host harness keeps raw stdout behavior; screen teletype output is
    enabled only in ManiOS builds.
  • FreeDOS DELTREE passed six disposable-image cases covering deletion,
    cancellation, root safety and missing targets. VCHOICE help, arrow selection,
    digit selection and Escape passed; timeout-to-default remains unverified
    and is marked Partial in the compatibility matrix.

The Android package embeds the same ManiOS system image.

Verification

  • make -j2 test passed, including boot, installer, console, network, graphics,
    desktop, GUI, DOS guest, driver and cluster suites.
  • The signed Android APK verifies with APK signature schemes v1, v2 and v3; its
    embedded ISO matches the standalone Android ISO byte for byte.

ManiOS 0.26.0-10232026

Pre-release

Choose a tag to compare

@zygvlogs zygvlogs released this 23 Oct 16:40

ManiOS 0.26.0-10232026 is a date-stamped pre-release rebuild of 0.26.0.
It keeps the 0.26.0 DOS EXEC and compatibility work and adds the latest DOS
text-console and PIC mask fixes from 2026-10-23. This is a pre-release for
i386 PCs, tested in QEMU.

What changed

  • dosrun now implements BIOS INT 10h AH=06h/07h scrolling for rectangular
    text windows on the active 80x25 page.
  • DOS console output scrolls the active text page when a newline reaches the
    bottom row, instead of overwriting the last line.
  • The DOS runner models the master PIC mask register at port 21h, allowing
    programs to read, modify and restore its state. Hardware IRQ delivery is
    not implemented.
  • PIT channel 0 now supports the common binary modes 0, 2 and 3, byte-pair
    reloads and count latching. Timer IRQs are still not delivered.
  • The compatibility database now records 51 programs: 14 Working, 9 Partial,
    28 Broken/unsupported and 0 Untested.
  • Zork I (MIT story data, ZIP 2.00) is Working: room text, commands,
    inventory, score, save/restore and quit were verified.
  • Adventure (350-point DECUS DOS build) is Working: look, inventory, movement
    and quit were verified.
  • The official Infocom Sampler starts and accepts the Planetfall selection,
    but the Planetfall sample text does not render correctly under ZIP/JZIP.
    Full Planetfall remains untested and is not bundled.

Base 0.26.0 release

This build includes the 0.26.0 DOS EXEC child-process support, DOS
directory/file fixes, video-status polling, PIT channel 2 and PC-speaker
control, and the Windows 1.01 setup progress described in the 0.26.0 release
notes. The Windows desktop still does not run.

Validation and limits

The release workflow builds with the i686-elf cross toolchain and runs the
repository test suite before publishing. The text-adventure tests were run in
QEMU i386 with a 486 CPU, 64 MiB RAM and a serial console, using fresh FAT16
images.

Zork I still clips the right side of its status line, and a bottom-right black
rectangle remains in the text display. Frotz 2.55/2.53 stop at OUT 0043h
(PIT channel 0 control) and DZIP stops at OUT 00F0h. JZIP starts the games
but has poor status-line and screen formatting. These are recorded in the
compatibility details.

The Android APK packages the same source snapshot with the Android boot image
using shell=manide. It is signed with the existing local upgrade key and is
not a replacement for a physical-device test. No commercial Planetfall story
file, application binaries, ZIP archives or test disk images are included.

Downloads

  • manios-0.26.0-10232026.iso: bootable CD/USB/disk image.
  • ManiOS-0.26.0-10232026-Android.iso: Android ManiDE shell image.
  • manios-0.26.0-10232026-kernel.elf: kernel with symbols.
  • ManiOS-0.26.0-10232026.apk: standalone Android app, versionCode 26001.
  • ManiOS-0.26.0-10232026-Android-source.zip: Android packaging project and
    source snapshot.
  • NOTICES.txt: third-party notices.
  • SHA256SUMS: artifact checksums.

ManiOS 0.26.0

ManiOS 0.26.0 Pre-release
Pre-release

Choose a tag to compare

@zygvlogs zygvlogs released this 23 Oct 10:51

ManiOS 0.26.0 adds DOS EXEC child-process support and includes the DOS
compatibility and installer fixes made since 0.25.0. This is a pre-release
for i386 PCs, tested in QEMU.

DOS EXEC

  • INT 21h AX=4B00h loads and runs COM and MZ executables from DOS paths.
  • Children receive their own allocation, PSP, environment, command tail,
    default FCBs, and inherited handles. Nested execution is supported.
  • Child termination restores the parent; AH=4Dh returns the exit status.
    Child-owned memory and handles are reclaimed.
  • MZ relocation uses the child's load segment. Zero-minimum/maximum MZ
    images load at the high end of their allocation.
  • Missing files, invalid formats, insufficient memory, and unsupported
    EXEC subfunctions report DOS errors without replacing the parent.

Other changes since 0.25.0

The release includes the committed DOS directory creation/removal, per-drive
current-directory, file-search, persisted timestamp, FAT directory-growth,
video-status polling, PIT channel 2, and PC-speaker control fixes. These
changes allowed Windows 1.01 setup to complete on the saved test disk.

Windows 1.01 status

Setup completes; the Windows desktop still does not run. EXEC now enters
WIN100.BIN, removing the original missing-EXEC blocker. Windows then rejects
the emulated DOS 4.00 version. A diagnostic version override reaches the
unsupported DOS-internal list-of-lists service (AH=52h). This release does
not spoof that service or ship the diagnostic override.

The saved Windows installation is preserved. Microsoft binaries and disk
images are not included in this release.

Validation and limits

Generated regression programs cover child COM/MZ execution, nested return,
status retrieval, PSP/environment inheritance, inherited handle isolation,
parent stack/DTA restoration, private-handle exclusion, memory reclamation,
and load failures. The EXEC harness passes AddressSanitizer and
UndefinedBehaviorSanitizer; a QEMU child program returns status 42 to its parent.

Two existing graphics checks fail when restoring text after VGA mode 13h.
Both failures reproduce on the saved pre-change kernel; this release does
not fix that graphics issue. The low-memory boot test now accepts either
the physical-allocator or user-program exhaustion point as the embedded
archive grows, while still checking the visible panic and halt.

TSRs, load-only/overlay EXEC subfunctions, protected mode, and DOS extenders
remain unsupported. Direct DOS-internal structures and arbitrary guest
interrupt hooks are not a complete DOS compatibility layer.

Downloads

  • manios-0.26.0.iso: bootable CD/USB/disk image.
  • manios-0.26.0-kernel.elf: kernel with symbols.
  • NOTICES.txt: third-party notices.
  • SHA256SUMS: artifact checksums.

Android APK

  • ManiOS-0.26.0.apk: standalone Android app, API 21+, versionCode 26000.
    Boots ManiDE using the released kernel, with Limbo/QEMU bundled.
  • ManiOS-0.26.0-Android-source.zip: modified Android project, packaging
    scripts, original Limbo source snapshot, and released ManiOS source.

The APK retains the existing local signing certificate for upgrades. Signature
verification passes and the embedded ISO matches the generated desktop-boot
image. Native libraries are unchanged from Limbo 6.0.1. This version has not
been tested on an Android device: the local emulator requires unavailable
KVM acceleration. The Windows desktop limitation above also applies here.

ManiOS 0.25.0

ManiOS 0.25.0 Pre-release
Pre-release

Choose a tag to compare

@zygvlogs zygvlogs released this 13 Oct 02:33

ManiOS 0.25.0 brings dosrun, a way to run DOS programs on ManiOS:
an 8086/386 real-mode interpreter with DOS and BIOS services. This is
for the DOS software the user wants to run, including games from a CD.

ManiOS remains an independent operating system for i386 PCs with its own
kernel (ZKT), userland, desktop (ManiDE), disk operating system
(ManiDOS) and drivers; see 0.24.0.

This is a pre-release, tested in QEMU.

What's new

  • dosrun, the DOS program runner in /bin. It loads a .COM or
    .EXE, interprets its x86 instructions, and serves INT 21h (DOS),
    INT 10h (video), INT 16h (keyboard), INT 1Ah (clock), INT 2Fh
    (XMS) and INT 67h (EMS).
  • 8086 interpreter in userland/dosrun/: ALU, ModR/M addressing
    with segment overrides, shifts/rotates, string instructions with
    REP, control flow, stack, interrupts and flags.
  • Common 386 instructions: MOVZX, MOVSX, SETcc, BT/BTS/
    BTR/BTC, BSF/BSR, CMOVcc, XADD, CMPXCHG, BSWAP,
    CPUID, SHLD/SHRD, and the two-byte Jcc. The interpreter stays
    16-bit, so protected mode and DOS extenders are still out.
  • XMS (INT 2Fh AH=43h): allocate, resize and free extended-memory
    handles, and move data between conventional memory and extended
    memory. Pool size is 8 MiB by default.
  • EMS (INT 67h): allocate pages, get the page-frame segment, map
    logical pages into the 64 KiB frame, save and restore the page map.
    Pool size is 4 MiB by default.
  • .COM and .EXE loader: the classic PSP at 0x100 for .COM,
    the MZ header and relocation table for .EXE.
  • Drive mapping: DOS paths map onto ManiOS paths with the same
    scheme ManiDOS uses, so dosrun and ManiDOS see the same files.
  • Mode 13h: a graphical DOS program's framebuffer at physical
    0xA0000 is copied to ManiOS's VGA mode 13h screen.
  • The decision: ADR-0010 records why DOSBox, FreeDOS and
    MS-DOS binaries were rejected, and that a native emulator is the path.
  • The guide: docs/dosrun.md describes what runs and what doesn't.
  • The milestone: docs/milestones/M24-dosrun.md.

Changed

  • Nothing in the kernel, desktop, or ManiDOS changed. dosrun is a new
    userspace program.

Files

File What it is
manios-0.25.0.iso The bootable image: a CD image that is also a USB-stick / hard-disk image
manios-0.25.0-kernel.elf The ZKT kernel with its symbols
NOTICES.txt The copyright notices and licenses of the code from OpenBSD
SHA256SUMS Checksums of the three

Install guide: docs/install.md.

Known limits

  • No protected mode, no DOS extenders, no 32-bit segmented memory.
  • No sound (Sound Blaster, AdLib, PC speaker), no mouse, no serial,
    no joystick.
  • No TSRs, no child processes (INT 21h AH=4Bh EXEC is absent).
  • No networking from DOS programs.
  • Only one DOS program at a time; dosrun returns to the shell when
    it ends.
  • EMS and XMS pools are fixed at compile time.

ManiOS is BSD 2-Clause licensed; the code from OpenBSD keeps its own
licenses (see NOTICES.txt).

ManiOS 0.24.0

ManiOS 0.24.0 Pre-release
Pre-release

Choose a tag to compare

@zygvlogs zygvlogs released this 13 Oct 01:59

ManiOS 0.24.0 brings graphical software: libui, a toolkit for
writing it, and the first programs written with it. ManiOS is an
independent operating system for i386 PCs with its own kernel (ZKT),
userland, desktop (ManiDE), disk operating system (ManiDOS) and drivers;
see 0.23.0.

ManiDE has had a window system since 0.12, but every program drew its
own pixels and there was little to run in it besides a terminal. Now
there is a way to write graphical programs, a guide to it, and programs
you can use.

This is a pre-release, tested in QEMU.

A calculator and the file browser in ManiDE

What's new

  • libui, the widget toolkit: boxes and grids that follow the size
    ManiDE gives a window, labels, buttons, check boxes, one-line entries,
    lists, multi-line text with scroll bars, progress bars, messages, a
    timer, and widgets a program draws and handles itself, in ManiDE's
    look. Integer arithmetic only. The guide:
    docs/gui.md;
    the decision: ADR-0009.
  • files: a file browser. Folders first, sizes, a box to type a path
    in, Enter or a double click to open, Backspace to go up. A file opens in
    view, a text viewer with line numbers.
  • calc: a calculator. Click it or type; six decimals, eleven digits,
    no floating point. calc -t checks its arithmetic.
  • paint: a sketchpad. Sixteen colours, brushes from 1 to 24 pixels, the
    right button erases.
  • widgets: every widget in one window. greet: the smallest
    graphical program, the guide's first example (34 lines).
  • ManiDE's menu (F1) lists Files, Calculator and Paint; the
    run prompt (Alt+d) completes the others. To write a program, put a .c
    file in desktop/apps/: make builds it into /bin.

Changed

  • ManiDE's F1 menu has three more entries. Nothing else about the desktop
    changed: its session still opens fetch, the welcome, top and a terminal.

Files

File What it is
manios-0.24.0.iso The bootable image: a CD image that is also a USB-stick / hard-disk image
manios-0.24.0-kernel.elf The ZKT kernel with its symbols
NOTICES.txt The copyright notices and licenses of the code from OpenBSD
SHA256SUMS Checksums of the three

Install guide: docs/install.md.

Known limits

None of these programs saves: view and files look, and paint keeps
its picture in memory. ManiOS writes FAT volumes since 0.23.0, but libui
has no file chooser or question dialog to pick a volume and a name with,
and no clipboard or menu bar either; Shift+Tab is Tab. Otherwise as
0.23.0: only FAT12 and FAT16; no USB, Intel HD Audio, NVMe or SCSI; no
floating point in programs; no signals. Details:
M23's notes.

ManiOS is BSD 2-Clause licensed; the code from OpenBSD keeps its own
licenses (see NOTICES.txt).

ManiOS 0.23.0

ManiOS 0.23.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Oct 06:08

ManiOS 0.23.0 makes FAT volumes writable: the kernel now writes
them itself, and ManiDOS's DEL, MD, RD, REN and COPY onto a
file write to the disk instead of saying "Access denied". > FILE
writes a file, libc grows unlink, mkdir, rmdir, rename,
remove and mkstemp, and OpenBSD's sed -i and tee FILE work.
ManiOS is an independent operating system for i386 PCs with its own
kernel (ZKT), userland, desktop (ManiDE), disk operating system
(ManiDOS) and drivers.

Until this release ManiOS could read a FAT volume but not write one:
every program that tried to make a file got EROFS. The writer lives in
the kernel (zkt/fs/fat.c) and every change reaches the device before
the call returns -- there is no dirty cache to flush -- so both copies
of the FAT are written, one after the other, and what a program wrote
can be read back from the image with mtools straight afterwards.

This is a pre-release, tested in QEMU.

What's new

  • The kernel's FAT writer. Clusters are allocated and linked,
    directory entries are created, emptied and renamed, long-name slots
    beside a changed entry are dropped, and a full disk answers
    ENOSPC. Only FAT12 and FAT16 (FAT32 still isn't mounted).
  • The syscalls for it, ABI version 2. SYS_UNLINK, SYS_MKDIR,
    SYS_RMDIR and SYS_RENAME, plus O_CREAT, O_TRUNC and O_EXCL
    for SYS_OPEN. Programs built against the older ABI still run: the
    kernel still takes version 1.
  • ManiDOS writes. DEL/ERASE, MD/MKDIR, RD/RMDIR
    (empty directories only), REN/RENAME in one directory, COPY
    onto a file -- and one name alone, copied into the current directory
    -- and > FILE / >> FILE writing files. Each refuses in DOS's own
    words: "Access denied - NEWDIR is a directory", "File not found",
    "Duplicate file name or file not found", "The file cannot be copied
    onto itself", "Insufficient disk space".
  • A POSIX file layer in libc. open() takes O_CREAT, O_TRUNC
    and O_EXCL; unlink, rmdir, rename and mkdir; remove()
    and mkstemp(); fopen/freopen/fdopen emptying a file for "w"
    and seeking to the end for "a".
  • The OpenBSD tools can write. sed -i (a temporary file, then a
    rename over the original) and tee FILE work on a FAT volume.

Changed

  • The refusal to write now names the drive rather than the system:
    "Access denied - that drive is read-only", for A:, Z:, a CD and a
    write-protected floppy alike -- while FORMAT, FDISK, LABEL and
    SYS still aren't in ManiDOS, and CHKDSK /F says it has no repair
    rather than that the drives are read-only (they aren't any more).

Files

File What it is
manios-0.23.0.iso The bootable image: a CD image that is also a USB-stick / hard-disk image
manios-0.23.0-kernel.elf The ZKT kernel with its symbols
NOTICES.txt The copyright notices and licenses of the code from OpenBSD
SHA256SUMS Checksums of the three

Install guide: docs/install.md.

Known limits

Only FAT12 and FAT16, and only a volume ManiOS has mounted; a volume
whose device takes no writes -- A:, Z:, a CD, a write-protected floppy
-- says so. A long name is written under its ~1 alias with no
long-name entry beside it, so two long names that share their first six
letters and their extension are told apart when they are made but not
when they are asked for. No FORMAT, FDISK, LABEL or SYS, no
CHKDSK /F repair, no DEL /P /S /Q, no wildcards in REN; a rename
stays within one directory. Files have no times, so DIR shows no
dates. See the milestone's notes.
Otherwise as 0.22.0: no USB, Intel HD Audio, NVMe or SCSI; no floating
point in programs; no signals. None of ManiOS's drivers has met real
hardware other than the one that found a gap in an earlier release
yet: reports are welcome.

ManiOS is BSD 2-Clause licensed; the code from OpenBSD keeps its own
licenses (see NOTICES.txt).

ManiOS 0.22.0

ManiOS 0.22.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Oct 09:25

ManiOS 0.22.0 makes the gfx=auto linear framebuffer from
0.21.0
actually usable on a real machine: the kernel console now draws into
it, an explicit resolution can be asked for, and a page-table collision
that black-screened the boot is fixed. ManiOS is an independent
operating system for i386 PCs with its own kernel (ZKT), userland,
desktop (ManiDE), disk operating system (ManiDOS) and drivers.

0.21.0 set a real adapter's VESA mode, but the kernel still wrote its
boot log to the VGA text buffer -- which a VESA mode has replaced, so
the screen went dark the moment the loader handed over. This release
gives the kernel a software text console that draws into the linear
framebuffer, so the whole boot, the shell and every program are visible
on a real card, not only in an emulator.

This is a pre-release, tested in QEMU (on three different display
adapters, none of them QEMU's own Bochs-compatible one).

What's new

  • The kernel console on a linear framebuffer. When the boot loader
    has set a VESA mode, zkt/drivers/lfb_console.c draws the kernel's
    own text -- the boot log, the shell, every program's output -- into
    the framebuffer with an 8x16 font, including the ANSI colours and
    cursor movement the text console already understood. On a machine
    with no Bochs VBE adapter, gfx=auto now shows a working ManiOS
    instead of a black screen.
  • gfx=WxH on the boot line: the same VESA probe as gfx=auto,
    but asking for the biggest mode that fits within W by H (e.g.
    gfx=1400x1050), so a panel's native resolution can be selected
    explicitly instead of capping at 1024x768.
  • manide matches the screen. Started with no size, ManiDE now
    takes the current framebuffer's size (the fixed VESA mode, or a Bochs
    VBE mode already set) rather than always asking for 800x600.

Fixed

  • A page-table collision that black-screened the boot. The kernel's
    own page tables lived in the page-directory entry a 1024x768x32
    framebuffer's window reaches, so mapping the framebuffer overwrote a
    page table with device memory and the kernel faulted on the next
    instruction it fetched through it -- a black screen, with nothing on
    the serial line to say why. The tables now live in the entry just
    below the recursive one, out of every device window's way
    (zkt/arch/i386/memlayout.h, paging.c, zkt/mm/mmio.c).
  • Leaving graphics on an LFB machine no longer faults. A VESA mode
    can't be undone (no V86 monitor to call the BIOS with), so fbctl's
    text command now leaves the framebuffer mapped and the console
    drawing to it, instead of unmapping the memory the console was still
    writing to. The screen stays in graphics, as documented, and the
    machine keeps working.

Changed

  • The boot loader no longer fills the framebuffer red or beeps the PC
    speaker while probing: those were bring-up aids, not behaviour.

Files

File What it is
manios-0.22.0.iso The bootable image: a CD image that is also a USB-stick / hard-disk image
manios-0.22.0-kernel.elf The ZKT kernel with its symbols
NOTICES.txt The copyright notices and licenses of the code from OpenBSD
SHA256SUMS Checksums of the three

Install guide: docs/install.md.

Known limits

The mode is set once, at boot: no changing its size, and no way back
to text mode that is sure to work on every card (M21's own notes,
docs/milestones/M21-vesa-lfb.md).
32-bit colour only; with gfx=auto at most 1024x768, larger only by
asking with gfx=WxH. Otherwise as 0.21.0: no USB, Intel HD Audio,
NVMe or SCSI; ManiOS's FAT drives are read-only to files; no floating
point in programs; no signals. None of ManiOS's drivers, this one
included, has met real hardware other than the one that found this gap
yet: reports are welcome.

ManiOS is BSD 2-Clause licensed; the code from OpenBSD keeps its own
licenses (see NOTICES.txt).

ManiOS 0.21.0

ManiOS 0.21.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Sep 04:04
f0cf7b7

ManiOS 0.21.0 brings gfx=auto: a real display adapter's own
linear framebuffer, for manide and gfxdemo on real hardware, not
only emulators. ManiOS is an independent operating system for i386 PCs
with its own kernel (ZKT), userland, desktop (ManiDE), disk operating
system (ManiDOS) and drivers; see
0.20.0.

Found within hours of 0.20.0 booting on a real machine for the first
time: without QEMU's, VirtualBox's or VMware's emulator-specific
graphics registers, manide had nothing to draw to. gfx=auto on the
boot line has ManiOS's own boot loader ask the real card's own VESA
BIOS for a linear framebuffer before ManiOS starts.

This is a pre-release, tested in QEMU (on three different display
adapters, none of them QEMU's own Bochs-compatible one).

What's new

  • gfx=auto on the boot line: the boot loader probes the display's
    VESA BIOS Extensions (2.0 or later) for the biggest 32-bit-colour
    linear-framebuffer mode up to 1024x768, and sets it before ManiOS
    starts. manide and gfxdemo then draw to it exactly as to a Bochs
    VBE adapter's.
  • Left out (the default), or given anything but auto: nothing
    changes -- no probe, no different boot, exactly as 0.20.0.
  • Where a Bochs VBE adapter is also there, it is still preferred (any
    size, changed at will); gfx=auto's own mode goes unused.
graphics: VESA 1024x768 found

Guide: docs/install.md.

Changed

  • manide's "no such device" message now also mentions gfx=auto.

Files

File What it is
manios-0.21.0.iso The bootable image: a CD image that is also a USB-stick / hard-disk image
manios-0.21.0-kernel.elf The ZKT kernel with its symbols
NOTICES.txt The copyright notices and licenses of the code from OpenBSD
SHA256SUMS Checksums of the three

Install guide: docs/install.md.

Known limits

The mode is set once, at boot: no changing its size, and no way back
to text mode that is sure to work on every card (M21's own notes,
docs/milestones/M21-vesa-lfb.md).
32-bit colour only, at most 1024x768. Otherwise as 0.20.0: no USB,
Intel HD Audio, NVMe or SCSI; ManiOS's FAT drives are read-only to
files; no floating point in programs; no signals. None of ManiOS's
drivers, this one included, has met real hardware other than the one
that found this gap yet: reports are welcome.

ManiOS is BSD 2-Clause licensed; the code from OpenBSD keeps its own
licenses (see NOTICES.txt).

ManiOS 0.20.0

ManiOS 0.20.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Sep 16:19
8d195c3

ManiOS 0.20.0 brings drivers: floppies, CD-ROMs, SATA disks, virtio
disks and network cards, a RealTek 8139 and a DEC Tulip, the PC
speaker, the Sound Blaster 16, AC'97 and the AdLib's FM synthesizer,
serial ports COM2-COM4, the parallel port, the CMOS memory, and ACPI to
turn the machine off. ManiOS is an independent operating system for
i386 PCs with its own kernel (ZKT), userland, desktop (ManiDE) and disk
operating system (ManiDOS); see
0.19.0.

Every driver is ManiOS's own code, BSD-licensed, written from the
hardware's public documentation, and tested on QEMU's models of the
hardware.

This is a pre-release, tested in QEMU.

What's new

  • Disks: floppy drives (fd0; 360 KB to 2.88 MB disks, the format
    found by itself), CD and DVD drives on IDE or SATA (cd0), SATA
    disks on AHCI controllers (sata0), virtio disks (vd0).
  • CDs: ISO 9660 with Rock Ridge and Joliet long names, at /n/cd0,
    which follows the disc in the drive -- take one out, put another in.
    An .iso written to a disk or USB stick is read too.
  • Network cards: RealTek RTL8139 (rl0), virtio-net (vio0), DEC
    21143 "Tulip" (dc0) -- with the NE2000, PCnet and PRO/1000, seven.
  • Sound: beep on the PC speaker; play FILE.WAV and play -t 440 500 on a Sound Blaster 16 or AC'97 (/dev/audio); fm, notes
    on an AdLib's (or Sound Blaster's) OPL2 FM synthesizer (/dev/opl).
  • Ports and power: COM2-COM4 (/dev/com2, speed in /dev/com2ctl),
    the printer port (/dev/lpt1), the CMOS memory (/dev/nvram),
    poweroff and reboot (ACPI, /dev/power).
  • ManiDOS: the floppy is B:, SATA and virtio disks get letters after
    the IDE ones, then the CD drives; VOL shows a disc's name.
  • install puts ManiOS on SATA and virtio disks too (install sata0).
fd0: 3.5" 1.44 MB drive, 1.44 MB disk, on the 82077 controller
cd0: QEMU DVD-ROM, ATAPI, disc of 2 MiB
ahci: AHCI 1.0 controller (8086:2922) at pci 00:03.0, 32 slots
sata0: QEMU HARDDISK, 16 MiB, on AHCI port 0
sb16: Sound Blaster 16 (DSP 4.05) at 0x220, irq 5, dma 5: /dev/audio
opl: Yamaha OPL2 (AdLib) FM synthesizer at 0x388: /dev/opl
lpt1: parallel port at 0x378, printer ready
acpi: BOCHS, PM1a at 0x604, S5 found, reset by keyboard controller
cd0: ISO 9660, Rock Ridge, 2 MiB, TEST_rr
cd0: the disc in the drive, mounted at /n/cd0
fd0: FAT12, 1440 KiB, mounted at /n/fd0
sata0p1: FAT12, 15 MiB, mounted at /n/sata0p1
rl0: RealTek 8139 at pci 00:04.0, irq 11, 52:54:00:12:34:56, link up

Guide: docs/drivers.md.

Changed

  • QEMU's PC has a CD drive, a floppy drive, a PC speaker, a parallel port
    and ACPI, so ls /dev lists cd0, fd0, beep, lpt1, nvram
    and power there, and /n/cd0 exists (empty without a disc).
  • ManiDOS starts on the first hard disk (not the first drive after B:),
    or A: without one.

Files

File What it is
manios-0.20.0.iso The bootable image: a CD image that is also a USB-stick / hard-disk image
manios-0.20.0-kernel.elf The ZKT kernel with its symbols
NOTICES.txt The copyright notices and licenses of the code from OpenBSD
SHA256SUMS Checksums of the three

Install guide: docs/install.md.

Known limits

No USB, Intel HD Audio, NVMe or SCSI yet. CDs are read only; a floppy
is mounted if a disk is in at boot. One sound format for /dev/audio
(16-bit stereo, 44.1 kHz), no volume control. ACPI turns the machine
off and resets it, nothing more. None of the drivers has met real
hardware yet: reports are welcome. Otherwise as 0.19.0: ManiOS's FAT
drives are read-only to files; no floating point in programs; no
signals.

ManiOS is BSD 2-Clause licensed; the code from OpenBSD keeps its own
licenses (see NOTICES.txt).

ManiOS 0.19.0

ManiOS 0.19.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Sep 20:44
adf034c

ManiOS 0.19.0 brings ManiDOS, a disk operating system of ManiOS's
own: type dos and you are at a C:\> prompt. ManiOS is an
independent operating system for i386 PCs with its own kernel (ZKT),
userland and desktop (ManiDE); see
0.18.0.

ManiDOS is written for ManiOS from nothing. It is not MS-DOS, it
contains no MS-DOS code, and it doesn't run MS-DOS
(nor FreeDOS). It
takes from DOS the way of working: drive letters, the commands, batch
files.

This is a pre-release, tested in QEMU.

What's new

  • dos starts ManiDOS; dos /C COMMAND runs one command;
    shell=dos on the boot command line starts ManiOS in it; and ManiDE's
    F1 menu has it.
  • Drive letters: A: the boot disk (with AUTOEXEC.BAT), C:, D: ...
    the FAT disks, Z: all of ManiOS. DRIVES lists them.
  • Commands: DIR (/W /B /P /S), CD, TYPE, COPY (to the
    screen or a device), VOL, CHKDSK, TREE, FIND, SORT, MORE,
    ECHO, SET, PATH, PROMPT, CLS, VER, MEM, DATE, TIME,
    HELP, TRUENAME, and |, <, > between them.
  • Batch files: %1...%9, SHIFT, @, ECHO OFF, GOTO,
    IF ERRORLEVEL / EXIST / ==, FOR ... IN (*.TXT) DO, CALL.
  • CHKDSK reads a FAT disk cluster by cluster and finds cross-linked
    files, files longer or shorter than their chains, lost clusters, and
    FAT copies that differ.
  • ManiOS's programs run from ManiDOS, with DOS paths in their
    arguments turned into ManiOS paths (grep -c line C:\LONG.TXT).
C:\>DIR
 Volume in drive C is MANIDOS
 Volume Serial Number is 230B-9F38
 Directory of C:\

README   TXT            56
NAMES    TXT            30
LONG     TXT           360
TEST     BAT           498
SUB      BAT            21
GAME     EXE            64
DOCS            <DIR>
        6 file(s)          1,029 bytes
        1 dir(s)       8,301,568 bytes free

Guide: docs/dos.md.

Changed

  • ManiOS now needs 7 MiB of memory (6 MiB until 0.18): its boot image is
    52 KiB bigger, mostly ManiDOS, and it needs 6,022 KiB where QEMU's 6 MiB machine
    has 6,016 free. The loader says both: "ManiOS needs 6 MiB; this
    machine has 6016 KiB".
  • The boot message suggests dos; shell=PROGRAM is a new boot
    option.

Files

File What it is
manios-0.19.0.iso The bootable image: a CD image that is also a USB-stick / hard-disk image
manios-0.19.0-kernel.elf The ZKT kernel with its symbols
NOTICES.txt The copyright notices and licenses of the code from OpenBSD
SHA256SUMS Checksums of the three

Install guide: docs/install.md.

Known limits

ManiOS's drives are read-only, so DEL, REN, MD, RD and COPY
to a file say "Access denied". ManiDOS runs ManiOS programs and batch
files, not DOS programs (.COM, .EXE). No dates in DIR, no Ctrl+C.
Otherwise as 0.18.0: no floating point in programs; no signals; BIOS
only, PIO disks only.

ManiOS is BSD 2-Clause licensed; the code from OpenBSD keeps its own
licenses (see NOTICES.txt).