Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sst-6809:top [2024/10/25 19:34] robertsst-6809:top [2025/05/10 09:40] (current) – add sub page link for microFORTH robert
Line 1: Line 1:
 ====== SST-6809 Single Board Computer ====== ====== SST-6809 Single Board Computer ======
  
-{{sst-6809-2.0.png?512|SST-6809 SBC V2.0}} +^  SST-6809 SBC V2.0  ^  SST-6809 SBC V2.1  ^ 
- +|  {{sst-6809-2.0.png?512|SST-6809 SBC V2.0}}  |  {{sst-6809-2.1.png?512|SST-6809 SBC V2.1}}  |
-{{sst-6809-2.1.png?512|SST-6809 SBC V2.1}}+
  
 [[https://github.com/KenWillmott/SST-6809]] [[https://github.com/KenWillmott/SST-6809]]
  
-^ V2.0 Part ^ Integrated Circuit ^ +  * The [[Parts List]] 
-| U1 | Motorola MC68B09 or Hitachi HD63C09 MPU | +  The [[Memory Map]] 
-| U2 | Texas Instruments SN74HCT273N Octal Flip-Flop with Reset | +    * [[56K NVRAM]] 
-| U3 | Alliance AS6C4008-55PCN 4Mbit / 512KB SRAM | +    * [[Main Bus Select 0 1K]] 
-| U4 | Motorola MC68B50 or Hitachi HD63B50 ACIA | +    * [[Main Bus Select 1K]] 
-| U5 | Dallas Semiconductor DS1813 EconoReset | +    * [[ACIA Select 256b]] 
-| U6 | Phillips 74HCT02N Quad 2-Input NOR | +    * [[Memory Latch Select 256b]] 
-| U7 | Dallas Semiconductor DS1210 Nonvolatile Controller |  +    [[EEPROM 4K]] 
-| U8 | Shenzhen Honglifa HLF SN74HCT139N Dual 2-to-4 Line Decoder / Demultiplexer | +  * Configuring the Jumpers 
-| U9 | Atmel At28C256 256Kbit / 32KB Parallel EEPROM | +    * [[JP2]] - Secondary Battery 
-| U10 | Motorola MC74HCT138AN 3-to-8 Line Decoder / Demultiplexer | +    * [[JP3]] Power Select 
-| U11 | Dallas Semiconductor DS1233 EconoReset | +    * [[JP5]] - Boot ROM Select 
-| U12 | - not present - | +    * [[J4]] - Main Serial Signals 
-| U13 | Phillips 74HCT20N Dual 4-input NAND | +    * [[J5]] Addtional 6x09 Signals 
- +    [[J6]] - Secondary Battery and Additional Serial Signals 
-The [[Memory Map]] and Bank Switching. +  The [[SBC Reset Circuit]] 
- +  The [[M8 Bus]] 
-===== Jumpers ===== +    [[M8 Motorino Game Board]] 
- +    * [[M8 6809 Mezzanine Board]] 
-==== JP2 ==== +    [[M8 6522 Prototyping Board]] 
- +    [[M8 Blinkenlights]] 
-JP2 connects to on-board 3.0V coin cell to the backup circuit. +  * Motorola [[ASSIST09]] 
- +    * [[Getting Started]] 
-The purpose is to provide an easy way to clear the NVRAM contents on the V2.1 SBC. +    [[Hexadecimal Loader]] 
- +    [[Load Motorola S-Records]] 
-==== JP3 ==== +  * Ported Software 
- +    * [[TinyBASIC]] by Tom Pittman, Holger Veit, and Doug Gilliland 
-^ JP3 ^ Selects ^ +    [[TSC BASIC]] by TSCBrian LStuartand Doug Gilliland 
-1-2 | External 5V from screw terminals | +    * [[PSYMON]] 1.20B by Percom Data Systems  
-| 2-3 | 5V Comes from USB serial adapter | +    [[BUGGY]] 1.01 by Lennart Benschop 
- +    [[microFORTH]] 1.0 by Mike Pasheaported by Ken Willmott 
-Some boards like the [[#M8 Game Board]] use too much power for the USB port to supply. +  * Development Tools 
- +    The [[http://www.lwtools.ca/|Lost Wizard Assembler (lwasm)]] can output assembled code as S-records, usually saved as .s19 files 
-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. +    The [[http://john.ccac.rwth-aachen.de:8000/as/|MacroAssembler AS]] 
- +  * The Future 
-Otherwise, it should join pins 2-3 for USB power. +    * :?: Flex 6809 
- +    :?: CP/M 
-This is done to prevent 5V board power from backfeeding into the USB port. +    :?: NitrOS-9 Level 1 
- +    :?: NitrOS-9 Level 2 
-==== JP5 ==== +    :?: Fuzix 
- +  Additional Resources 
-^ JP5 ^ SBC V2.1 Boot ROM Select ((SBC V2.0 has two jumpers for ROM select.)) ^ +    * [[https://archive.org/details/6809_Assembly_Language_Programming_by_Lance_Leventhal|6809 Assembly Language Programming]] by Lance Leventhal  
-| 1-2 | normal | +    * [[https://archive.org/details/assembly-language-subroutines-for-the-6809_Leventhal|Assembly Language Subroutines for the 6809]] by Lance Leventhal 
-| 2-3 | ROM A14 inverted | +    * [[http://searle.x10host.com/6809/Simple6809.html|Grant Searle's Simple 6809]] 
- +    * [[http://jefftranter.blogspot.com/2019/01/a-6809-single-board-computer.html|Jeff Tranter's 6809 Single Board Computer]] 
-In the normal position, the system boots from the top of the 32K EEPROM +    * [[https://www.cs.drexel.edu/~bls96/6809sbc/]] 
- +    * [[https://github.com/douggilliland/Retro-Computers]] in 6809 subdirectory 
-In the inverted position, it boots from code at the top of the lower 16K of the same EEPROM. +    * Lost Wizard Assembler [[http://www.lwtools.ca/]] 
- +    * MacroAssembler AS [[http://john.ccac.rwth-aachen.de:8000/as/]]
-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 6x09 signals that do not appear on [[#The M8 Bus]] +
- +
-^ Pin ^ Signal ^ +
-| 1 | BS :!: | +
-| 2 | NVBAT | +
-| 3 | /FIRQ "Fast" Interrupt Request | +
-| 4 | /RESET Reset Interrupt Request | +
-| 5 | BSEL1 M8 Bus Select 1 | +
-| 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. +
- +
-^ 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]] +
- +
-===== Software ===== +
- +
-{{sst-6809-green.png?512|The SST-6809 running ASSIST09 over USB serial via Cool Retro Term}} +
- +
-  * [[ASSIST09]] +
- +
-==== 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 windowor use minicom's cut-and-paste feature: +
-  [CTRL]+[A[Y] +
-  Choose a file name +
- +
-Be patientlarger loads may take some time. +
- +
-If the load succeedsyou 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 [[https://github.com/jefftranter/6809/tree/master/sbc/tinybasic|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 [[https://github.com/jefftranter/6809/tree/master/sbc/tscbasic|Jeff Tranter's 6809 SBC repo]] loads and runs with the S19 steps above. +
- +
-Thenstart TSC BASIC with: +
-  >G 1000 +
-  ! +
- +
-===== Additional Software ===== +
- +
-The [[http://www.lwtools.ca/|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 ===== +
-  * [[https://archive.org/details/6809_Assembly_Language_Programming_by_Lance_Leventhal|6809 Assembly Language Programming]] by Lance Leventhal  +
-  * [[https://archive.org/details/assembly-language-subroutines-for-the-6809_Leventhal|Assembly Language Subroutines for the 6809]] by Lance Leventhal +
-  * [[http://searle.x10host.com/6809/Simple6809.html|Grant Searle's Simple 6809]] +
-  * [[http://jefftranter.blogspot.com/2019/01/a-6809-single-board-computer.html|Jeff Tranter's 6809 Single Board Computer]]+
  
-===== RTS ===== 
 Return to [[:top]] Return to [[:top]]