Os8088: A powerful Mac-like OS for the IBM XT, 286, 386

Aug 09, 2026 06:37 AM - 5 hours ago 1

os8088 1.0

A Macintosh System 1-style desktop for the Intel 8086, written wholly in real-mode assembly and booted from a floppy. Overlapping windows, pull-down menus, a serial mouse, loadable programs -- and pre-emptive multitasking, which the existent 1984 Macintosh ne'er had.

pixels640x480

colors16

of RAM256K

byte kernel52,718

task slots12

pre-emption18.2Hz

os8088

 a paper barroom crossed the top, a Note Pad model pinch typed text, a Clock counting up, a Bounce window, the Control Panel showing a pre-emptive/cooperative choice, and the Task Manager pinch a CPU history chart -- 5 programs moving astatine once, pinch a tile for each successful the dock on the bottom. Five programs astatine once, connected a CPU from 1978. A Note Pad loaded disconnected the package floppy, a ticking Clock, a bouncing ball, the Control Panel and the Task Manager, each a abstracted lawsuit pinch its ain dock tile. The Task Manager reports the instrumentality astatine 70% engaged and 147K of RAM successful use.

What it is

os8088 boots from the first assemblage of a floppy into a graphical desktop. There is nary DOS underneath it and nary bid statement anyplace successful it -- the 512-byte footwear assemblage loads a 40KB kernel, the kernel useful retired which show adapter the instrumentality has and switches it into graphics, borrows the video card's ain 8x8 characteristic set, and puts up a paper bar.

Everything aft that is the interface you retrieve from a 1984 Macintosh: windows you resistance by the title barroom pinch a rubber-band outline, menus you propulsion down and resistance through, a adjacent container and a minimize box, icons for each floppy drive, and a dock on the bottom pinch 1 tile per moving program. Programs load from a 2nd floppy and tally as first-class applications, respective astatine a time.

The full point fits successful 256K of RAM connected an Intel 8086 aliases 8088 -- the processor successful the original IBM PC and PC/XT. It is simply a hobby project, it is vanished capable to use, and the root is 66,183 lines of NASM you tin publication successful an afternoon.

By the numbers

Every fig beneath comes from the build, not from memory.

Verified specifications of os8088 Kernel sizeBoot sectorSegment footprintLines of assemblyDisplayBack bufferTasksContext move rateLoadable programsMouseTarget hardwareInstruction set
52,718 bytesThe scheduler, model manager, VGA driver, rodent driver, sound layer, record manager, loader, Task Manager and Control Panel, each of it.
512 bytesLBA-to-CHS translator and retrying BIOS floppy reads. The build fails if it assembles to thing else.
59,031 bytesCode positive each buffer the kernel reaches done DS. It must fresh the 64K conception -- presently 6,505 bytes of headroom. The task stacks, the disk buffers and each loaded programme unrecorded extracurricular the conception and are not counted here.
66,183Hand-written real-mode 8086. No C, nary linker, nary runtime library.
VGA, Hercules aliases CGAProbed astatine boot. VGA mode 12h is 640x480 successful 16 colors -- 4 1-bit planes, 80 bytes per scanline; Hercules is 720x348 and CGA 640x200, some monochrome and banked. Drawn consecutive to the framebuffer connected each three.
optional, disconnected by defaultAn off-screen transcript of the surface is 153,600 bytes, much than half the machine's memory, truthful a 256K instrumentality ever draws consecutive to the display, arsenic the 1984 Macintosh did. At 500K aliases much the Control Panel tin move 1 on.
12 slots, 1,536-byte stacksEach Clock and each Bounce model is its ain pre-empted task.
18.2065 HzThe PC's banal timer rate. Every tick the handler saves 9 registers, swaps the stack pointer and returns into a different program.
a conception eachPackages loaded from a 2nd floppy into their ain regions of accepted representation -- astir 107K of arena connected a 512K machine, 233K astatine 640K -- respective resident astatine once, each freeing its representation erstwhile closed.
1200 baud, 7N1A Microsoft serial rodent connected COM1, 3 bytes per report, decoded successful an interrupt handler that besides draws the cursor.
IBM PC/XT, 8088 astatine 4.77MHz256K of RAM, a serial mouse, and immoderate of a VGA, Hercules aliases CGA card. Repaints are slow capable to watch happen.
8086 only, enforcedcpu 8086 positive -w+error, truthful thing newer is simply a build failure. A 1978 instruction set, mechanically guaranteed.

What it does

Four of the things it is really bully at. There are much connected the screenshots page.

Pre-emptive multitasking

Two Clock windows counting up and 2 Bounce windows pinch squares moving astir wrong them, each animating astatine the aforesaid time. Nothing has to cooperate. Two clocks support clip and 2 balls support moving while you type into thing else. The timer interrupt fires 18.2 times a second, saves whichever task was running, swaps the stack pointer and returns into the adjacent 1 -- astir 30 instructions. The Macintosh of the play could not do this astatine all: System 1 ran 1 exertion astatine a time, and when MultiFinder arrived successful 1987 it was cooperative.

Rubber-band dragging

A Note Pad model staying still while a one-pixel rectangular outline is dragged crossed the desktop, past the model jumping to the outline's position. The model does not move until you fto go. A one-pixel XOR outline follows the pointer and the model snaps to it connected merchandise -- because redrawing a full model connected each rodent study was retired of the mobility at 4.77MHz, precisely arsenic it was successful 1984.

Loadable software

The Disk record head showing the GAMES files -- MINES.O88, SOLITAIR.O88 and ARKANOID.O88, each pinch its ain icon -- pinch a Minesweeper model unfastened connected apical showing a partially revealed 9 by 9 grid pinch colored numbers and reddish flags. Programs travel disconnected a 2nd floppy. Double-click a record successful the Disk model and it loads into a conception of its ain and runs as a existent application. Minesweeper is 1,510 bytes including its icon. Several packages -- or respective copies of 1 -- tin beryllium resident astatine the aforesaid time.

Task Manager

The Task Manager model showing a CPU percentage, a history chart swept crossed its afloat width, a RAM barroom reference 39K of 639K, and a database of moving instances pinch their authorities and CPU share. It watches itself. A unrecorded CPU metre pinch a scrolling history graph, a RAM readout, and 1 statement per running program. Apps without their ain task get their model callbacks timed astatine the dispatch tract and billed to them, truthful the rows still adhd up to 1 total.

All the screenshots

It runs connected the existent thing

Everything supra was captured successful an emulator. In August 2026 personification wrote the disk images onto existent floppies and booted them connected 3 play machines -- a 1981 IBM 5150, a Toshiba T1100 Plus and a 286 -- and photographed the results.

IBM 5150, 8088 astatine 4.77MHz

A greenish phosphor IBM 5151 show showing the os8088 desktop pinch a Note Pad, an About box, a Clock, a Task Manager, a Minesweeper committee and a Disk model unfastened astatine once. Six programs astatine erstwhile connected a 1981 IBM PC. A existent 5150 driving a Hercules paper astatine 720x348, booted disconnected a 360K floppy, pinch the machine's ain paper database typed into a Note Pad that was loaded from that aforesaid disk. Photographed by Elendilon, who besides reported that it is nary slower present than it is nether emulation.

os8088 connected existent hardware

The history it is arguing with

In February 1985 Digital Research shipped GEM 1.0 for the IBM PC: a Macintosh-style desktop pinch overlapping windows and icons, moving connected banal XT hardware. Apple sued. The colony led to GEM Desktop 2.0 successful 1986, which removed overlapping windows and desktop icons connected the PC -- while the Atari ST version, not covered by the agreement, kept them.

So the PC did concisely person this, and past it did not. os8088 is simply a rebuild of roughly that idea, from scratch, forty years later, connected the aforesaid people of instrumentality -- positive the pre-emptive multitasking that neither GEM nor the Macintosh of the play offered.

What it is not

  • It is not DOS and it does not tally DOS programs. There is nary DOS underneath it; it owns the instrumentality from the footwear assemblage up.
  • It has nary representation protection. The 8086 has nary to connection -- each programme shares one 64K conception pinch the kernel, which is precisely what makes a discourse move inexpensive enough to beryllium worthy doing.
  • There are nary record handles and nary seeking. The disk API moves full files astatine a clip -- write, read, delete, rename -- which is the largest subset that stays honorable pinch nary disk cache and 12 pre-empted tasks.
  • There is nary networking and nary difficult disk support.
  • It is simply a hobby project, not a product. It is besides complete capable that you tin sit down and usage it, which is the full point.

Try it

The browser demo boots the existent floppy image successful an emulated PC -- aforesaid bytes you would constitute to a disk. If you would alternatively tally it yourself, the download page has 360K images for play hardware and 86Box, and 1.44MB images for QEMU.

More