toast
is a 16-bit architecture spec, an emulator, a subscalar FPGA implementation, and an assembler.
Read documents on the architecture, and the application binary interface.
- Fix assembler to include calling convention and register renamings
- Fix the emulator, create an emulated screen
- Finish VGA text mode (Maybe a smaller VGA text mode font for more lines)
- VGA buffer currently takes up too much of the IO mapped space, maybe consider changing to 0x0000: Address, 0x0001: Value type of memory addressing.
- Implement elementary OS / Basic interpreter
- Extend functionality of assembler
- Add
call
macro
- Add
- Implement a compiler backend for C->
toast
compilation - Add floating point module, maybe a 32-bit variant?
- IRQ and handlers (keyboard driver testing TBD...)
- Implement a
rti
instruction that allows for more interrupts to occur. Currently, interrupts will nest themselves and cause a ton of issues.-
rti
will also need to restore the status register -
rti
will also stop other interrupts from occuring
-
- Implement better multi-interrupt support.
-
Add Register Banking (Maybe...) - Implement
mult
anddiv
in hardware - Re-implement stack to grow downwards and add addressing with offset
load r5 r6 0xA
to load@r6 + 10