A real-mode x86 Disk Operating System that is, and forever will be, mostly useless. It's written completely in x86 assembler.
This was originally created as a summer project during the 2020 pandemic. I've been having lots of fun creating it, and hope to continue to take this project further.
Special thanks to:
You will need the Netwide Assembler (NASM).
BUILD.SH
as root.House-DOS commands are written in real-mode x86 assembly. There are many different system calls available for many specific tasks; here are a few examples:
A full and complete reference can be found in docs/SYSCALL.TXT
. System calls are always being added.
Here are some features planned for the next release (v0.1.2
), which is in the works:
/HOME
directory for user files/BIN
directory for binaries/DEV
virtual filesystem for device filesOver the course of creating this project, I've encountered lots and lots of segmentation errors. Basically, since I like to use different 64K segments for different things, I have to change around the segment registers quite a lot... And it ends up reading to or writing from the wrong memory segment.
The answer? Either don't use segments, or push them.
Another thing that helps solve the issue is by making subroutines out of code that is reused in some form.
Other things I've learned: