SST-6809 Single Board Computer

SST-6809 SBC V2.0 SST-6809 SBC V2.1
SST-6809 SBC V2.0 SST-6809 SBC V2.1

https://github.com/KenWillmott/SST-6809

V2.0 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 - not present -
U13 Phillips 74HCT20N Dual 4-input NAND

The Memory Map and Bank Switching.

Jumpers

JP2

JP2 connects to on-board 3.0V coin cell to the backup circuit.

The purpose is to provide an easy way to clear the NVRAM contents on the V2.1 SBC.

JP3

JP3 Selects
1-2 External 5V from screw terminals
2-3 5V Comes from USB serial adapter

Some boards like the M8 Game Board use too much power for the USB port to supply.

In that case, external regulated 5V should be connect to the screw terminals, and the jumper on JP3 should be moved to pins 1-2.

Otherwise, it should join pins 2-3 for USB power.

This is done to prevent 5V board power from backfeeding into the USB port.

JP5

JP5 SBC V2.1 Boot ROM Select 1)
1-2 normal
2-3 ROM A14 inverted

In the normal position, the system boots from the top of the 32K EEPROM

In the inverted position, it boots from code at the top of the lower 16K of the same EEPROM.

This control bit originates from the latch, so it can be changed by writing the latch, regardless of position.

J4

J4 Main Serial Connector
1 Ground
2 VCC (5V)
3 Transmit Data (TXD)
4 Receive Data (RXD)
5 Data Terminal Ready (DTR) - Not Connected
6 3V3 - Not Connected

J5

J5 exposes some 6×09 signals that do not appear on The M8 Bus

J5 Pin Signal
1 6×09 Bus Status (BS)
2 NVBAT
3 6×09 /FIRQ “Fast” Interrupt Request
4 6×09 /RESET Reset Interrupt Request
5 M8 Bus Select 1 (BSEL1)
6 Ground

The NVBAT pin on J5 has two possible uses.

It is connected directly to the on board battery.

So it can either be used to replace the on board with an external battery, or can convey backup power to additional circuits such as, for example, an RTC.

J6

J6 Access to the secondary battery connection and additional serial signals.

The DS1210 NVRAM controller supports two backup batteries.

J6 provides access to the secondary battery.

This should have a jumper between pin 1 and 2 to ground BAT2 if it's not in use.

It makes it possible to use an external battery.

One important purpose of the BAT2 connection, is that the on board battery may be removed for replacement without incurring memory loss, provided that a second battery is temporarily connected to GND and BAT2 on J6.

J6 Pin Purpose
1 Ground
2 Battery 2
3 Serial Ready To Send (RTS)
4 Serial Data Terminal Ready (DTR)

SBC Reset Circuit

There are three footprints for a reset circuit on the board.

Only one should be populated for use.

The basic RC does work but some future devices may not tolerate the slow rise time.

There is a footprint for a DS1813 or for a DS1233 - these are obsolete parts but better than the RC reset solution if they are available.

The M8 Bus

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.

Note: The board decodes two bus select signals BSEL0 and BSEL1, only BSEL0 is routed to the M8 bus.

The additional decode could be routed to circuits on peripheral cards, using fly wire jumpers, for development purposes.

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.

https://github.com/KenWillmott/M8-6809-Mezzanine

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.

https://github.com/KenWillmott/6522-proto

M8 Blinkenlights

:!: Coming soon

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:

  • PSYMON 1.20B by Percom Data Systems
  • BUGGY 1.01 by Lennart Benschop

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

RTS

Return to top

1)
SBC V2.0 has two jumpers for ROM select.
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies