mu/baremetal/README.md

31 lines
1.2 KiB
Markdown
Raw Normal View History

Some apps written in SubX and Mu. Where the rest of this repo relies on a few
Linux syscalls, the apps in this subdirectory interface directly with hardware.
2020-12-27 06:56:44 +00:00
We still need the top-level and apps to build them.
I'd like to eventually test these programs on real hardware, and to that end
they are extremely parsimonious in the hardware they assume:
2020-12-26 23:34:10 +00:00
2020-12-27 01:35:16 +00:00
0. Lots (more than 640KB/1MB[1]) of RAM
1. Pure-graphics video mode (1280x1024 pixels) in 256-color mode.
2. Keyboard
That's it:
* No wifi, no networking
* No multitouch, no touchscreen, no mouse
* No graphics acceleration, no graphics
* No virtual memory, no memory reclamation
2020-12-26 23:34:10 +00:00
2020-12-27 00:37:10 +00:00
Just your processor, gigabytes of RAM[1], a moderately-sized monitor and a
keyboard.
2020-12-27 00:38:47 +00:00
These programs don't convert to ELF, and there's also currently no code/data
segment separation. Just labels and bytes.
Most programs here assume `main` starts at address 0x8800 (3KB or 6 disk
sectors past the BIOS entrypoint). See baremetal/boot.hex for details.
So far the programs have only been tested in Qemu and Bochs emulators.
2020-12-27 00:37:10 +00:00
2020-12-27 00:38:01 +00:00
[1] Though we might need to start thinking of [the PC memory map](https://wiki.osdev.org/Memory_Map_(x86))
as our programs grow past the first 512KB of memory.