/ToastCPU

ToastCPU is a 16-bit architecture spec, an emulator, an FPGA implementation, and an assembler

Primary LanguageRust

Toast CPU

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.

Todo

  • 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
  • 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 and div in hardware
  • Re-implement stack to grow downwards and add addressing with offset load r5 r6 0xA to load @r6 + 10