- Pascal 37.4%
- Python 25.3%
- Assembly 18.7%
- C 11%
- C++ 6.7%
- Other 0.9%
| asl-tbil @e2c33db9d4 | update submodule | |
| rom | correct a useless comment | |
| sim | final tidying | |
| .gitmodules | finish re-org | |
| asl-Makefile.def | finish re-org | |
| Makefile | finish re-org | |
| README.md | Update README.md | |
Firmware & Simulator for Breadboard 6800
A friend made a breadboard 6800 computer and we worked together on software for it.
Overview of the computer
- 6800 CPU
- 8 KiB RAM @0000 (simulator: 16KiB @0000 + 12KiB RAM @0x5000)
- 32 KiB ROM @8000
- Fixed-speed UART (I/O @2000..3fff)
- Votrax SC-01 (I/O @4000..4fff)
(The I/O spaces are so large because it made I/O decoding easy)
There is no schematic, it grew organically on the breadboard. Sorry :-/
Overview of the ROM
- monitor adapted from Smithbug, starts @8000
- BASIC adapted from TinyBASIC, with added SAY command, starts @9000
The system boots to the monitor. Use "?" for help, "L" to load ihex listings, "J9000" to jump to BASIC.
ROM vectors for use by programs: See rom/calls.inc
Build the 32kB ROM image "combined.bin" by running "make rom" in the top directory.
The English to phoneme translation code is generated by rom/xkcdwords.py but this is not done automatically as it has large
dependencies and takes a few seconds to run. I run it manually with uv run xkcdwords.py > english.inc.
TinyBASIC & "SAY" command
In TinyBASIC, you can "SAY" things. This sends phonemes to the Votrax SC-01 chip.
A vocabulary adapted from the xkcd simplewriter is supported, or you can write in phonemes:
10 SAY"HELLO TINY/B A1 Y S I2 K/"
99 END
Return to monitor with "PRUSR(32768)".
Overview of the simulator
The simulator is written in Python, with the 6800 CPU core & Votrax simulator in C.
Build the C parts by running "make sim" in the top directory. SDL is required.
Run the simulator by entering the "sim" directory and typing "python driver.py"
Controlling the simulator:
- Ctrl-] accesses simulator commands, everything else is passed to the simulated UART
- Ctrl-] : for commandline, Ctrl-] q to quit, Ctrl-] Ctrl-] to send a literal Ctrl-]
Simulator commandline:
- shows register values. IL_PC is the TinyBASIC instruction pointer, if running TinyBASIC.
- "help" for help