Skip to content

os8088 v1.0.20260822

Choose a tag to compare

@jggonz jggonz released this 22 Aug 21:38
· 47 commits to main since this release
00f1102

os8088 now runs a Commodore 64. It is a port of VICE, the emulator the Commodore world has used since 1996, and it boots Commodore's own ROMs to the BASIC prompt in a window you can drag around like any other. There is a page about it. The rest of the release is interface work: a dark theme, windows that zoom open and closed, programs that can say how big they want to be on each kind of screen, and Note Pad asking before it throws away your changes. Mice can now be plugged into the PS/2 port as well as a serial port.

A Commodore 64 (#106)

The Commodore 64 was the best-selling computer of the 1980s, and this runs one: a 6510 processor, the chip that drew the screen, both timer chips, and Commodore's own KERNAL and BASIC read off the floppy at launch. The behaviour is taken from VICE's source file by file rather than from memory -- 6,943 lines of C, plus 2,304 lines of hand-written 8086 assembly for the processor itself, which is the part that has to be fast.

The picture is black and white on every screen including VGA: drawing a C64 text screen in sixteen colours costs 0.2 to 0.35 seconds a band on the machine this targets, so each colour is resolved to black or white by how bright the real chip made it. On a 4.77 MHz IBM PC it runs at a few per cent of a real C64's speed, and the status strip prints the figure it actually managed rather than one anybody assumed.

That program is under the GPL, because VICE is. The licence file travels on every disk that carries it, and it is COPYING.C64 in the zip. The rest of os8088 is still MIT.

Mice in the PS/2 port (#107)

os8088 has always driven a serial mouse, because a serial port is the only place an IBM PC/XT has to put one. Machines newer than that have a second place -- the small round port on the keyboard controller -- and it now works. The system looks for a serial mouse first and a PS/2 one after; where both are plugged in, both come up and whichever one you move first wins. An XT skips the whole thing in a single instruction, because its keyboard hardware cannot answer the question.

A dark theme (#103)

The Control Panel now offers Bright and Dark. Dark inverts four things and nothing else: the desktop, the menu bar, the dock along the bottom and every window's title bar. What is inside a window is left alone -- a document, a drawing, a game's board -- because the inside of a window belongs to the program and the frame around it belongs to the machine. Drawing that line is what keeps the feature small: the whole of it is 49 bytes of kernel code.

Windows zoom open and closed (#103)

A window now grows out of its own centre when it opens and shrinks back into it when it closes: five outlines drawn and rubbed out, about 53 milliseconds on a CGA screen. Most of that is the deliberate pause between frames rather than the drawing, so it looks the same on a fast machine and a slow one. Windows that come and go constantly can turn it off.

Note Pad asks before it throws away your changes (#103)

Closing a Note Pad window with unsaved text now asks whether to save first, with Yes, No and Cancel. Cancel does nothing at all -- the window is not closed, not hidden and not moved behind anything. The mechanism underneath is general: any program can now be asked before it is closed and refuse.

Programs can say how big they want to be (#103)

Every window in the source tree was designed for a 640x480 screen, so on a 640x200 CGA the system simply cut them down to fit. Ten of the nineteen programs on the software disk came out exactly the same height that way, and not one of them chose it. A program can now give the size it wants for each kind of display, which is also what eleven programs had each grown their own arithmetic to do. Windows on a desktop spanning two monitors get the same treatment.

What is in the download

One zip, 3.1MB, holding twenty floppy images. You need two of them: os8088.img in the first drive and apps.img in the second. If your machine or emulator uses 360KB disks -- which is what a real IBM PC/XT reads -- take os8088-360.img and apps360.img instead, and media360.img for the music.

The Commodore 64 has a floppy of its own, c64.img, or c64360.img at 360KB. It is also on apps-all.img, the single disk with every program on it.

sha256  3da4733c4e046253303cff8d6472e888422217fc872ff225c16cad065f98d7aa

SHA256SUMS inside the zip has a checksum for every file in it. The per-image checksums are also on the download page, which serves the images individually.

The kernel is 102,668 bytes this release, up 3,072 on v1.0.20260819.