| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Redo commit 7381. There was a bug.
Current state: commit 7381 excluding 7376.
|
|
|
|
| |
Commit 7380 excluding 7376.
|
|
|
|
| |
Commit 7379 excluding 7376.
|
|
|
|
|
| |
Currently at commit 7378 (reset the A20 address line) except without 7376
(enabling interrupts).
|
|
|
|
|
| |
Currently at commit 7377 except without 7376 (enabling interrupts). Works
as advertised.
|
|
|
|
|
| |
Turns out I've been "testing" with a stale file since commit 7373. We need
to go over everything since then.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Turns out we only had access to 50% of RAM so far. Closing my nose and
moving right along..
Though this _does_ give me practice interacting with ports. That'll be
handy for the keyboard.
|
|
|
|
|
|
|
| |
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.
|