diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-12-27 08:03:48 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-12-27 08:03:48 -0800 |
commit | 0e0b0c6edbe198d42725f03b6e83e75ea22f5429 (patch) | |
tree | 95d89b8db9b59eec0b8f956868bf341be1003396 | |
parent | 2628a51f377133502f86b27e15c4573891077067 (diff) | |
download | mu-0e0b0c6edbe198d42725f03b6e83e75ea22f5429.tar.gz |
7423
-rw-r--r-- | baremetal/README.md | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/baremetal/README.md b/baremetal/README.md index 39d3786a..9932b662 100644 --- a/baremetal/README.md +++ b/baremetal/README.md @@ -6,20 +6,29 @@ I'd like to eventually test these programs on real hardware, and to that end they are extremely parsimonious in the hardware they assume: 0. Lots (more than 640KB/1MB[1]) of RAM - 1. Pure-graphics video mode (1280x1024 pixels) in 256-color mode. - 2. Keyboard + 1. Pure-graphics video mode (1280x1024 pixels) in 256-color mode. At 8x8 + pixels per grapheme, this will give us 160x128 graphemes. But it's still + an open question if it's reasonably widely supported by modern hardware. + If it isn't, I'll downsize. + 2. Keyboard. Just a partial US keyboard for now. That's it: * No wifi, no networking * No multitouch, no touchscreen, no mouse - * No graphics acceleration, no graphics + * No graphics acceleration * No virtual memory, no memory reclamation Just your processor, gigabytes of RAM[1], a moderately-sized monitor and a -keyboard. +keyboard. (The mouse should also be easy to provide.) -These programs don't convert to ELF, and there's also currently no code/data -segment separation. Just labels and bytes. +We can't yet read from or write to disk, except for the initial load of the +program. Enabling access to lots of RAM gives up access to BIOS helpers for +the disk. + +These programs don't convert to formats like ELF that can load on other +operating systems. There's also currently no code/data segment separation, +just labels and bytes. I promise not to write self-modifying code. Security +and sandboxing is still an open question. Most programs here assume `main` starts at address 0x8800 (3KB or 6 disk sectors past the BIOS entrypoint). See baremetal/boot.hex for details. |