Skip to content
/ AC6309 Public

A minimalistic industrial computer running 6809/6309

Notifications You must be signed in to change notification settings

izne/AC6309

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AC6309 Platform

A minimalistic industrial computer core, based on Motorola 6809 architecture.

Purpose

Proof of concept custom 8-bit industrial computer with minimal device count implementation. Modular, low-power design, allowing easy expansion and customization per use case.

Dedication

AC29 is dedicated to my beloved father.

BAUS

AC29 projected configuration

AC29 Config

Prototype build

  • CPU: HD63B09 @ 1.8MHz
  • RAM: 32KB W24257A
  • ROM: 16KB 28C256 (half of it)
  • UART: HD63B50 (1MBps) on FT23 USB Serial
  • Address decoding: 74HCT00 & 74HCT138
  • Expansion: 1x 40-pin header for expansion board with 3 slots mapped at $8000, $9000 and $B000
  • Power over USB

AC29 Breadboard

AC29 BASIC

Example physical layout

AC29 Layout

PCB Updates

Current state of PCB design: AC29 PCB AC29 TOP AC29 BTM

System memory map

Address range Device Size
$0000-$7FFF RAM 32KB
$8000-$8FFF Extension port #1 4KB
$9000-$9FFF Extension port #2 4KB
$A000-$AFFF UART 4KB
$B000-$BFFF Extension port #3 4KB
$C000-$FFFF ROM 16KB

The 32KB of RAM is allocated from the bottom of the address range $0000 to $7FFF. The ROM is allocated at top 16KB of the address space starting $C000 to $FFFF.

The I/O mapping is allowing compatibility with existing BIOS images having ACIA on address 0xA000.

Writing the ROM image

Using the combination ROM image in Intel HEX format it needs first be turned into a binary image to be written to the EEPROM.

objcopy -I ihex -O binary combined.hex combined.bin

Write the resulting .bin file using the specially created EEPROM programmer for AT28C-series EEPROMs. Or any other.

promdude.exe -combined.bin

As a note, burning the combined.bin (16K) onto 32K 28C256 has to be at the correct half. Optionally, a copy of combined.bin twice into the chip will do as well.

ROM switching

As the firmware is 16K and 28C256 (32K) chips are nowadays more accesible, two firmware images could be stored in the full 32K capacity of the chip. A ROM switching key to be implemented on the board, to switch the higher or lower part of the chip to be "visible" (A15) at boot.

Communication

The system communicates with a terminal via USB serial connection using the included ACIA device and its UART capability, coupled with an FT23 header. Terminal serial port settings: 115200 baud, 8n1, no hardware handshake.

Software checklist

  • Run ASSIST09 and Extended BASIC
  • Write basic program (asm)
  • Cross-compile on host machine
  • Easy program transer via ASSIST09 Load (S19)
  • Use of high level C code (CMOC)

Hardware checklist

  • Breadboard prototype running
  • Revision 1 completion and PCB fabrication
  • Extended addressing ("A" - four internal devices, "B" - four external devices)
  • Expansion board with easy coupling
  • 28C16-based address decoder
  • Expansion card: Am9511 card (Am9511, 3MHz osc, 5to12Vbuck)
  • Expansion card: Tape interface
  • Expansion card: TMP68681 / 2x RS232 / 115200 bps (own osc)
  • Expansion card: Ethernet adapter (ENC28J60)
  • Expansion card: SAA1099 + TDA2822 audio interface
  • Expansion card: VGA and PS/2 (Arduino)
  • Expansion card: VGA and PS/2 (MC6845/HD6321)
  • Expansion card: VGA (EF9367)
  • Expansion card: Keyboard controller (XT, AT, PS/2, USB)

Toolchain

Emulators


Prerequisites

The schematics and PCB design is made with KiCad

References and inspiration:

Some great oldschool books:

https://colorcomputerarchive.com/repo/Documents/Books/Programming%20the%206809%20(Rodney%20Zaks%20and%20William%20Labiak).pdf

https://www.chibiakumas.com/6809/

About

A minimalistic industrial computer running 6809/6309

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published