1
0
Fork
You've already forked cr6800
0
No description
  • Pascal 37.4%
  • Python 25.3%
  • Assembly 18.7%
  • C 11%
  • C++ 6.7%
  • Other 0.9%
2026年05月25日 18:12:56 -05:00
asl-tbil @e2c33db9d4 update submodule 2026年05月19日 11:44:50 -07:00
rom correct a useless comment 2026年05月25日 18:06:57 -05:00
sim final tidying 2026年05月25日 18:12:56 -05:00
.gitmodules finish re-org 2026年04月27日 09:07:41 -05:00
asl-Makefile.def finish re-org 2026年04月27日 09:07:41 -05:00
Makefile finish re-org 2026年04月27日 09:07:41 -05:00
README.md Update README.md 2026年04月27日 16:40:17 +02:00

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