ponydos/README.md
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

86 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PonyDOS
### 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.
### Screenshots
![PonyDOS in action](ponydos.png)
![PonyDOS viewing PonyDOS source code](ponydos-viewer.png)
### 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.
### Credits
This is a parody of [klange](https://github.com/klange)'s wonderful
[PonyOS](https://ponyos.org/). The creators of this project,
[CrazyEttin](https://ahti.space/~crazyettin/),
[nortti](https://ahti.space/~nortti), [shikhin](https://shikhin.in), and
[wolf](https://oriole.systems) hang out in `#offtopia` on
[libera.chat](https://libera.chat/).
### What are people saying about PonyDOS?
Nothing so far.
## FAQ
#### 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](https://sortix.org/)!
#### 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](#build-options) `-DBLINKY`.