diff options
author | Nathan Ringo <nathan@remexre.com> | 2024-10-21 08:28:00 -0500 |
---|---|---|
committer | Nathan Ringo <nathan@remexre.com> | 2024-10-21 08:28:00 -0500 |
commit | 2465e4ba5926f3137bb10f1d17944a56425332a3 (patch) | |
tree | ea3c04a2463df2aa4a069934d4ca4dad1fc2e490 /README.md | |
parent | 5c89c77fcf7493778732c12e2b141b5e9fa1f4a3 (diff) |
README updates and the start of the E8051 assembler.
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -23,14 +23,26 @@ Finally, a variety of devices connect to the iCEBreaker over I²C, including sev The different components are in the following subdirectories: - `case/` contains the [OpenSCAD] code for the case design. +- `ch559/` contains the source code to the Forth implementation that runs on the CH559. - `fpga/` contains the [Bluespec] code that runs on the iCEBreaker. - `inkplate/` contains the code that runs on the Inkplate. - `simhost/` contains Rust code that implements simulated peripherals for bluesim. -- `usbkbd/` contains the C code that runs on the CH559. [Bluespec]: https://github.com/B-Lang-org/bsc [OpenSCAD]: https://openscad.org/ +## CH559 Code + +The CH559 is a microcontroller based on an enhanced [8051]. +It has two USB ports that can operate in device or host mode, which we will use to access USB keyboards. +Programming the board is somewhat annoying -- it has [ICSP] support, but entering the programming mode requires unplugging the board's power. +To circumvent this, and for general ease of development, the software for the board will be written in a custom Forth. +The Forth implementation itself is in the `ch559/` directory. +To reduce reliance on external tools, an assembly toolchain is implemented in Python, and the Forth is implemented in that. + +[8051]: https://en.wikipedia.org/wiki/8051 +[ICSP]: https://en.wikipedia.org/wiki/In-system_programming + ## Inkplate The Inkplate 6 provides 800x600 pixels with 3 bits of greyscale color depth. |