A real-mode OS for everypony
Go to file
Juhani Krekelä d4c15687c8 Add option for 8-colour mode
Some BIOSs initialize the VGA card by default into a mode where the high
bit of background nybble signals that the cell should blink. The simple
way to avoid this is by restricting the background colours to the range
0…7. However, since our mouse cursor is implemented by swapping the
foreground and the background colours, we also need to restrict the
foreground colours to the range 0…7.
2023-05-11 22:02:18 +03:00
.gitignore Use the extension .wall for wallpapers 2023-03-22 19:28:58 +02:00
CC0 Add CC0 license file 2023-03-23 17:18:10 +02:00
Makefile Add option for 8-colour mode 2023-05-11 22:02:18 +03:00
README.md Add option for 8-colour mode 2023-05-11 22:02:18 +03:00
assemble_floppy.py No need to explicitly add a zero dirent 2023-03-27 15:18:04 +03:00
debug.inc Implement window unhooking 2023-03-20 21:42:59 +02:00
extract_symbols.py Implement mouse events 2023-03-20 20:18:49 +02:00
hello.asm Add option for 8-colour mode 2023-05-11 22:02:18 +03:00
memory.asm Add option for 8-colour mode 2023-05-11 22:02:18 +03:00
passion.ans Allow changing wallpapers from shell 2023-03-23 00:54:35 +02:00
ponydos-viewer.png Add a second screenshot 2023-03-27 21:56:36 +03:00
ponydos.ans Add CrazyEttin's pony wallpaper 2023-03-22 19:30:49 +02:00
ponydos.asm Lower mouse sensitivity 2023-03-29 13:28:36 +03:00
ponydos.png README: Add a screenshot 2023-03-27 19:42:56 +02:00
ponydos_static.inc Allow opening text files by clicking on them in the file window 2023-03-29 13:04:47 +03:00
process_wallpaper.py Add option for 8-colour mode 2023-05-11 22:02:18 +03:00
shell.asm Add option for 8-colour mode 2023-05-11 22:02:18 +03:00
viewer.asm Add option for 8-colour mode 2023-05-11 22:02:18 +03:00



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 topwrite 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 distributionit'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.