A real-mode OS for everypony
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Juhani Krekelä d4c15687c8 Add option for 8-colour mode 5 months ago
.gitignore Use the extension .wall for wallpapers 6 months ago
CC0 Add CC0 license file 6 months ago
Makefile Add option for 8-colour mode 5 months ago
README.md Add option for 8-colour mode 5 months ago
assemble_floppy.py No need to explicitly add a zero dirent 6 months ago
debug.inc Implement window unhooking 7 months ago
extract_symbols.py Implement mouse events 7 months ago
hello.asm Add option for 8-colour mode 5 months ago
memory.asm Add option for 8-colour mode 5 months ago
passion.ans Allow changing wallpapers from shell 6 months ago
ponydos-viewer.png Add a second screenshot 6 months ago
ponydos.ans Add CrazyEttin's pony wallpaper 6 months ago
ponydos.asm Lower mouse sensitivity 6 months ago
ponydos.png README: Add a screenshot 6 months ago
ponydos_static.inc Allow opening text files by clicking on them in the file window 6 months ago
process_wallpaper.py Add option for 8-colour mode 5 months ago
shell.asm Add option for 8-colour mode 5 months ago
viewer.asm Add option for 8-colour mode 5 months ago



What is PonyDOS?

PonyDOS is a hobby 512-byte operating system, designed for ponies like you!

Is PonyDOS a DOS distribution?

No! PonyDOS uses its own 512-byte kernel, built from scratch.


PonyDOS in action PonyDOS viewing PonyDOS source code

Building from scratch

To build PonyDOS from scratch, on an environment with nasm and python3, run make. make run runs the floppy disk image ponydos.img with QEMU. By default, qemu-system-i386 is invoked. If you want to use a different backend, use make QEMU=<backend> run.

Build options

You can configure the build using build options passed to the build system using the BUILDOPTS variable, e.g. make BUILDOPTS='-DBLINKY'. It is advised to run make clean before changing the value of BUILDOPTS.

  • -DBLINKY builds an image which restricts the number of colours to 8. This is for compatibility with BIOSs which use the highest bit of background colour to signal that a cell should blink.

How do I contribute?

There is a model hello.asm file to demonstrate how best to use the multitude of features the kernel provides. Build your own program on top–write an assembler, an audio mixer, a ponysay, whatever your heart desires!–and contact us to merge it in.


This is a parody of klange's wonderful PonyOS. The creators of this project, CrazyEttin, nortti, shikhin, and wolf hang out in #offtopia on libera.chat.

What are people saying about PonyDOS?

Nothing so far.


Does PonyDOS work on real hardware?

Yes! PonyDOS works on many different machines. The kernel can run on any 80286-compatible CPU, and the applications on any 8086-compatible CPU.

Is this really not a DOS distribution?

PonyDOS is not a DOS distribution–it's also not a BSD, or a Hurd, or a Minix, or a Sortix!

How do I resize windows?

If the top-left corner of the window is the ↨ symbol, you can click and drag the symbol to resize.

How do I adjust the mouse sensitivity?

Tweak X_SENSITIVITY and Y_SENSITIVITY in ponydos.asm. Lower values mean higher sensitivity.

I started an application and it doesn't have a title bar, how do I exit it?

You don't.

How do I install PonyDOS?

At the moment, PonyDOS is only offered as a live floppy disk image with no installation option, for your safety.

How do I stop my entire desktop from blinking?

Build with the build option -DBLINKY.