CBT emulator written in rust compiled to webassembly with an interface in react. Available to play with at: https://maksrawski.gitlab.io/cbt-emulator/.
Refer to ucode/README.md
for information about generating microcode.
Generated microcode gets compressed and then hardcoded into a binary, then decompressed at runtime.
This way instead of throwing over 256KB into a binary we put just a bit shy (pun intended) of 1KB.
zstd
is used for compression so the runtime overhead isn't that big.
Unit tests for the emulator itself are available to run via cargo test
,
however its integration tests have to be run with wasm-pack test --node
- add labels to each bit of CW
- fix hello world
- add LCD module in UI (using react setters)
- disable CLK when in HLT
- add a way of previewing what's in ram
- add a way to set up custom interrupts, which key on the keyboard would trigger which routine in interrupt space
- ability to set custom programs after clicking on ROM module
- style for mobile, add a "real view"
- add tooltips
- improve clock module's controls
- cw module should be toggleable
- setup codecov
- make web interface to be a git submodule instead
try to use this somehow
- "LCD Dot Matrix HD44780U" font was used for the LCD's font.