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 [2025/02/01 07:05] – [Additional Software] robertsst-6809:top [2025/05/10 09:40] (current) – add sub page link for microFORTH robert
Line 6: Line 6:
 [[https://github.com/KenWillmott/SST-6809]] [[https://github.com/KenWillmott/SST-6809]]
  
- V2.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 1K]] 
- U4  |  Motorola MC68B50 or Hitachi HD63B50 ACIA  | +    * [[Main Bus Select 1 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 [[SBC Reset Circuit]] 
 +  * The [[M8 Bus]] 
 +    * [[M8 Motorino Game Board]] 
 +    * [[M8 6809 Mezzanine Board]] 
 +    * [[M8 6522 Prototyping Board]] 
 +    * [[M8 Blinkenlights]] 
 +  Motorola [[ASSIST09]] 
 +    * [[Getting Started]] 
 +    * [[Hexadecimal Loader]] 
 +    * [[Load Motorola S-Records]] 
 +  * Ported Software 
 +    * [[TinyBASIC]] by Tom Pittman, Holger Veit, and Doug Gilliland 
 +    * [[TSC BASIC]] by TSC, Brian L. Stuart, and Doug Gilliland 
 +    * [[PSYMON]] 1.20B by Percom Data Systems  
 +    * [[BUGGY]] 1.01 by Lennart Benschop 
 +    * [[microFORTH]] 1.0 by Mike Pashea, ported by Ken Willmott 
 +  * Development Tools 
 +    * The [[http://www.lwtools.ca/|Lost Wizard Assembler (lwasm)]] can output assembled code as S-records, usually saved as .s19 files 
 +    * The [[http://john.ccac.rwth-aachen.de:8000/as/|MacroAssembler AS]] 
 +  * The Future 
 +    * :?: 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]] 
 +    * [[https://www.cs.drexel.edu/~bls96/6809sbc/]] 
 +    * [[https://github.com/douggilliland/Retro-Computers]] in 6809 subdirectory 
 +    * Lost Wizard Assembler [[http://www.lwtools.ca/]] 
 +    * MacroAssembler AS [[http://john.ccac.rwth-aachen.de:8000/as/]]
  
-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 ((SBC V2.0 has two jumpers for ROM select.))  ^ 
-|  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 6x09 signals that do not appear on [[#The M8 Bus]] 
- 
-^  J5 Pin  ^  Signal  ^ 
-|  1  |  6x09 Bus Status (BS)  | 
-|  2  |  NVBAT  | 
-|  3  |  6x09 /FIRQ "Fast" Interrupt Request  | 
-|  4  |  6x09 /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 ===== 
- 
-{{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 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 [[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. 
- 
-Then, start 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 
- 
-===== M8 Motorino and VDP09 ===== 
- 
-The M8 family grew with the addition of the M8 Game Board (code name Motorino) 
- 
- 
-===== 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]]