| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Port some support for unicode to baremetal.
|
| |
|
| |
|
|
|
|
|
|
|
| |
https://en.wikipedia.org/wiki/GNU_Unifont#The_.hex_font_format
http://unifoundry.com/unifont/index.html
Since GNU Unifont is covered under the GPL v2, so I believe is this repo.
|
| |
|
| |
|
|
|
|
|
| |
It also clears keys after reading them, allowing us to read more than 16
keys.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
I was wrong in commit 7437 that only one keystroke was working. The problem
was just that I was getting _too_ many events. I wasn't handling key-up
events, and they were entering the buffer, and I was not skipping null
events since the circular buffer is currently considered to be null-terminated.
ex3 isn't done yet; it can only handle 16 events. Apps need to be clearing
the keyboard buffer.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The ol' 8-byte-register-names issue strikes again. There's no way to access
the lower 8 bits of ESI.
There's still a bug in baremetal/ex2.mu; it's printing transposed somehow.
|
|
|
|
|
| |
It doesn't _quite_ do what it should, so this is more precisely the first
_buggy_ baremetal Mu program. But the tooling works, at least.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
It's now clear that our keyboard handler doesn't trigger after the first
event.
|
|
|
|
| |
Start highlighting lines that may need to be recomputed when offsets change.
|
|
|
|
|
|
|
|
|
| |
I'm trying to read the status register, but I'm still not seeing the breakpoint
being hit a second time. (And I again ran into the Bochs bug that breakpoints
at the first instruction of an interrupt handler don't work.)
Maybe this is just a debugger issue. Let's keep going, and try to start
using the keyboard events.
|
|
|
|
| |
Fix a stale displacement.
|
|
|
|
|
|
| |
I'd missed that VBE call 0x4f01 (get video mode) can write up to 256 bytes.
Unexpected areas were getting clobbered because I wasn't reserving enough
space.
|
|
|
|
|
| |
Bugfix: 32-bit code in 16-bit mode.
Seems like it was benign, maybe.
|
|
|
|
| |
Typo.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
It's now very obvious that we don't actually have 256 unique colors by
default in 256-color graphics modes.
|
|
|
|
|
|
|
|
| |
If it's large enough that I have doubts whether my top-of-the-line Mac
is showing the bottom of the screen inside an emulator, it's too large.
This way I also feel more confident that most modern hardware will support
this graphics mode, and that these programs will work for others.
|
| |
|
| |
|
|
|
|
| |
First keypress is detected, but we need to ack it somehow.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We need a few pages of data for the keyboard mappings.
If I moved them to some later address I'd be able to keep the nice round
starting address unchanged. But that seems like a superficial aesthetic
concern. There's really no value in having an array of hex bytes represented
in SubX rather than just raw hex. And it's better to colocate data near
the handler code which uses it (and which runs instructions SubX doesn't
support).
|
| |
|
|
|
|
|
| |
This currently works on Qemu, but not on Bochs. I'm now trying to make
sense of https://wiki.osdev.org/Bochs_VBE_Extensions#Using_a_linear_frame_buffer_.28LFB.29
|
|
|
|
|
| |
0xa0000 only contains a single bank's worth of memory-mapped video RAM.
The LFB is supposed to have everything.
|
| |
|
| |
|
|
|
|
|
| |
This works, but colors are unexpected. 0xff isn't white. Lots of colors
are black. Perhaps I need to initialize a palette.
|
| |
|
| |
|
| |
|
| |
|
| |
|