d4c15687c8
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.
86 lines
2.7 KiB
Markdown
86 lines
2.7 KiB
Markdown
# 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 top–write
|
||
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 distribution–it'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`.
|