This is an old revision of the document!
SST-6809 Single Board Computer
https://github.com/KenWillmott/SST-6809
Part | Integrated Circuit |
---|---|
U1 | Motorola MC68B09 or Hitachi HD63C09 MPU |
U2 | Texas Instruments SN74HCT273N Octal Flip-Flop with Reset |
U3 | Alliance AS6C4008-55PCN 4Mbit / 512KB SRAM |
U4 | Motorola MC68B50 or Hitachi HD63B50 ACIA |
U5 | Dallas Semiconductor DS1813 EconoReset |
U6 | Phillips 74HCT02N Quad 2-Input NOR |
U7 | Dallas Semiconductor DS1210 Nonvolatile Controller |
U8 | Shenzhen Honglifa HLF SN74HCT139N Dual 2-to-4 Line Decoder / Demultiplexer |
U9 | Atmel At28C256 256Kbit / 32KB Parallel EEPROM |
U10 | Motorola MC74HCT138AN 3-to-8 Line Decoder / Demultiplexer |
U11 | Dallas Semiconductor DS1233 EconoReset |
U12 | |
U13 | Phillips 74HCT20N Dual 4-input NAND |
The Memory Map and Bank Switching.
The M8 bus design allows using the most advanced ICs that were available at the time, without regard to brand and fully supports DMA with the 6809 as well.
M8 Game Board
The M8 Game Board combines a TMS9918A Video Display Processor (VDP), dual Phillips SAA1099 sound synthesizers, and dual joystick inputs.
https://github.com/KenWillmott/M8-Game-Board
M8 Game Board Wiki:
https://github.com/KenWillmott/M8-Game-Board/wiki
I/O Memory Map | R/W | IC |
---|---|---|
00-07 | R/W | TMS9918A |
08-0F | R | HCT541 |
W | SAA1099P A | |
18-1F | R | HCT541 |
W | SAA1099P B |
Bit 0 of each HCT541 is a read of the corresponding synth's DTACK pin for polling when using slower commands.
M8 6809 Mezzanine Board
M8-bus 6809 Mezzanine adds a timer IC, parallel I/O IC, two UARTs for serial communication to the SST-6809 SBC.
One UART is dedicated to an ESP32 module for wifi and bluetooth communications.
M8 6522 Proto
M8-bus compatible card which combines a 6522 VIA multi-IO chip with a prototyping area and some I/O connector footprints.
Software
Getting Started
Plug in USB-C power from a serial port on a Debian GNU/Linux machine.
Install minicom if you haven't already:
sudo aptitude install minicom
Hunt down your USB device pathlist:
ls /dev/tty*
Start minicom with the path to your USB device (-D pathlist):
minicom -D /dev/ttyUSB0
Configure minicom terminal timings for 1ms per character and line ending delays:
[CTRL]+[A] [T] [D] [1] [ENTER] [F] [1] [ENTER]
Press RESET on the SST-6809 and you should see:
ASSIST09 >
Hexadecimal Loader
You can use ASSIST09 to load data and code as a hexadecimal loader with these three starting commands:
Dump out a memory range
>D 0000 0100
Display/Edit memory
>M 0000 00-
Simply pick a memory address and start typing in hex codes as 2 digits, and then hit space to go to the next byte
“Go To” an address to start running code:
>G 1000
Load Motorola S-Records
You can also load assembled code as S-record files:
>L
You can load S19 records using copy and paste into the terminal emulator window, or use minicom's cut-and-paste feature:
[CTRL]+[A] [Y] Choose a file name
Be patient, larger loads may take some time.
If the load succeeds, you will see:
>00
If the load fails, you will see:
? >
Once loaded, use the “Call subroutine” C <start address> or “Go” G <start address> command to start the loaded program executing on the MPU.
TinyBASIC
TinyBASIC from Jeff Tranter's 6809 SBC repo loads and runs with the S19 steps above.
Then, start TinyBASIC with:
>G 020D :
TSC BASIC
TSC BASIC from Jeff Tranter's 6809 SBC repo loads and runs with the S19 steps above.
Then, start TSC BASIC with:
>G 1000 !
Additional Software
The Lost Wizard Assembler (lwasm) can output assembled code as S-records, usually saved as .s19 files.
With it, I have also adapted the following to execute:
Future ...
With the addition of DriveWire or other access to storage, loading full 6809 operating systems may become possible:
- Flex 6809?
- CP/M?
- NitrOS-9 Level 1?
- NitrOS-9 Level 2?
- Fuzix?
Additional Resources
- 6809 Assembly Language Programming by Lance Leventhal
- Assembly Language Subroutines for the 6809 by Lance Leventhal
RTS
Return to top