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
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.
| 52,718 bytes | The scheduler, model manager, VGA driver, rodent driver, sound layer, record manager, loader, Task Manager and Control Panel, each of it. |
| 512 bytes | LBA-to-CHS translator and retrying BIOS floppy reads. The build fails if it assembles to thing else. |
| 59,031 bytes | Code 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,183 | Hand-written real-mode 8086. No C, nary linker, nary runtime library. |
| VGA, Hercules aliases CGA | Probed 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 default | An 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 stacks | Each Clock and each Bounce model is its ain pre-empted task. |
| 18.2065 Hz | The PC's banal timer rate. Every tick the handler saves 9 registers, swaps the stack pointer and returns into a different program. |
| a conception each | Packages 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, 7N1 | A 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.77MHz | 256K of RAM, a serial mouse, and immoderate of a VGA, Hercules aliases CGA card. Repaints are slow capable to watch happen. |
| 8086 only, enforced | cpu 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
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
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
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
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
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.
English (US) ·
Indonesian (ID) ·