| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Ooh, look at that, the device number comes conveniently initialized in
the right register. No need to hardcode it.
https://wiki.osdev.org/MBR_(x86)
|
| |
|
|
|
|
| |
A little more robustness after reading https://stackoverflow.com/questions/43786251/int-13h-42h-doesnt-load-anything-in-bochs/43787939#43787939
|
| |
|
|
|
|
|
| |
apps/boot.hex doesn't need much by way of syntax highlighting. Have it
work even for people who haven't installed subx.vim
|
| |
|
| |
|
|
|
|
| |
Use a more realistically sized disk image. Now we can read the second sector.
|
|
|
|
|
|
| |
There were two problems:
a) We have only 1 sector per track (spt=1), so 'second sector' is meaningless.
b) Drives 0-127 are reserved for floppies.
|
|
|
|
|
| |
Lots of great tips here:
https://stackoverflow.com/questions/43786251/int-13h-42h-doesnt-load-anything-in-bochs/43787939#43787939
|
|
|
|
|
| |
Not working yet. Reading sectors from disk returns an error (sets carry
flag).
|
|
|
|
|
|
| |
Move more padding around.
Reading a sector from disk requires about 24 bytes of code.
|
| |
|
| |
|
|
|
|
|
| |
Kinda brutal way to lose the bochs warning. Should suffice for now. As
we add more code we'll introduce more sectors.
|
|
|
|
|
| |
I hadn't noticed that bochs was getting into a reset loop after executing
my code correctly. Fix that.
|
|
|
|
|
| |
Switch bochs from floppy to hard disk.
Bochs throws a new warning, but otherwise 32bit.hex continues to work.
|
|
|
|
|
| |
Insert padding in a few places so we don't have to recalculate addresses
quite so much.
|
| |
|
|
|
|
|
|
|
| |
Snapshot: first draft of a boot image that switches to 32-bit mode as quickly
as possible (~70 bytes)
Doesn't work yet. Gets stuck in an infinite reset loop.
|
| |
|
| |
|
|
|
|
|
|
| |
These exercises are from the incomplete "Writing a simple operating system
from scratch" by Nick Blundell.
https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
A tiny modicum of reuse amidst all this copypasta: I'm able to reuse the
same function that renders lines without stacks in the sandbox.
|
|
|
|
|
| |
Still a bug in cursor positioning. It's always shown at the start of the
function body.
|
|
|
|
| |
Still can't edit functions, but we're getting there.
|
|
|
|
|
|
|
|
|
| |
In particular, I'm starting to have opinions about how to scalably position
the cursor at the end of each frame.
One advantage of text mode without a pointer device (mouse/trackpad): only
one cursor to track. UI can't be modified anywhere. That simplifies any
reactive UI framework.
|
|
|
|
| |
We can't yet edit the function once we jump to it.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The code is shit and I can't be arsed to clean it up. But it was a useful
exercise given the bugs and gaps it caught in Mu.
|
| |
|
|
|
|
| |
Now I need to tune the SubX vocabulary.
|
|
|
|
|
|
|
|
|
|
|
|
| |
I've found two bugs in SubX libraries:
1. next-word had an out-of-bounds read
2. next-word was skipping comments, because that's what I need during bootstrapping.
I've created a new variant called next-raw-word that doesn't skip comments.
These really need better names.
We're now at the point where 4b.mu has the right structure and returns
identical result to 4a.mu.
|
|
|
|
|
| |
Bug #1: forgot to process final passport
Stupid mistake #2: was reporting invalid rather than valid passports
|