Commits

Author Commit Message Labels Comments Date
Cliff Biffle
Fixed some out-of-date comments in the VGA driver.
Cliff Biffle
Expanded the monitor help message to include all implemented commands.
Cliff Biffle
Stopped initializing the VT in the monitor-only demo. Apparently the VT *still* doesn't cleanly reinitialize!
Cliff Biffle
Abstracted the KERNAL's calling convention and user context access through a set of macros. This will make it easier to change the calling convention, which I think I'm about to do.
Cliff Biffle
Added CHAR and [CHAR].
Cliff Biffle
More time improvements:
Cliff Biffle
Added U.R, for right-justified space-padded numeric output, and .TIME for showing, well, the time.
Cliff Biffle
Reworked RTC-set syscall to update day-of-year, which is required for epoch calculation.
Cliff Biffle
Fixed a bug in the VGA driver: on hsync_init, the driver would stomp on the contents of PCLKSEL0. This works fine if VGA is the first thing initialized, but it was causing the VT driver to clobber itself on reinit, and causing the cycle counter to use CCLK/4 and require a multiply on read.
Cliff Biffle
Cleaned up an accidental extra instruction in the RTC-write syscall.
Cliff Biffle
Reworked the RTC-read syscall to return a linear epoch date in addition to human-readable dates. The epoch is currently the first instance of 2000-01-01, though I may change it to 2001-01-01 later.
Cliff Biffle
Cleanups in KERNAL initialization, preferring compound instructions and displacement addressing where possible. In addition to making it prettier, it's now 32 bytes smaller.
Cliff Biffle
Added syscalls to disable and re-enable the display interrupts. Like Fast Mode on computers of yore, this improves performance of CPU-bound code significantly -- at the cost of losing the display temporarily.
Cliff Biffle
Improved speed of VGA rasterization routine.
Cliff Biffle
Fixed an incorrect comment in the VGA driver.
Cliff Biffle
Increased the system clock frequency to 100MHz.
Cliff Biffle
Removed VGA-INIT and VGA-CLS. VGA-CLS isn't currently used, since CLS works fine. VGA-INIT doesn't work properly: the VT driver can't cleanly reinitialize itself right now.
Cliff Biffle
The KERNAL now initializes the VT and UART on boot, and puts the cursor at the bottom-left on VT initialization.
Cliff Biffle
The VT-init syscall (2.0) now clears the display after initialization completes.
Cliff Biffle
Improvements to monitor fault reporting: a new flag in RAM indicates whether we're recursing due to a monitor fault, and monitor bus faults are made precise by disabling the store buffer.
Cliff Biffle
Fixed an error in the monitor memory layout change I made earlier.
Cliff Biffle
The monitor no longer saves state if the halted program is the monitor itself. This means exceptions taken in the monitor don't destroy the register state.
Cliff Biffle
Added memory access commands to the monitor.
Cliff Biffle
Monitor now resets the bus fault status on entry. This way, if the monitor itself hits a bus fault, it's correctly identified. Need to do this for the other exception types too.
Cliff Biffle
Cleaned up register usage in context writing. No performance or space gains, but the code makes more sense now.
Cliff Biffle
mon_printhex now adds a trailing space, like Forth's . word. Saved some repeated space-printing code.
Cliff Biffle
Reduced some of the syscall dispatch tables from 16-bit offsets to 8-bit, saving a few bytes.
Cliff Biffle
Moved the monitor into a separate section.
Cliff Biffle
Rewrote the linker script that I had nicked from my LPC13xx board. It had a lot of cruft in it from back when I wrote my C runtime, and this project doesn't use C...ergo, very short linker script.
Cliff Biffle
Added an explicit syscall (0.5) to invoke the ROM monitor from user code.
  1. Prev
  2. Next