Single Board Steckschwein

The single board Steckschwein marks several major milestones in the development of our favourite homebrew computer. The goal has alwas been to integrate the various boards onto one single PCB.

Specifications

  • 65c02-CPU @ 10MHz

  • 512k RAM

  • 32k ROM

  • Video chip V9958

    • Video RAM: 128 KB + 64 KB of expanded VRAM (optional)
    • Text modes:
      • 80 x 24
      • 32 x 24
    • Graphics Resolutions:
      • 512 x 212 (4 or 16 colors out of 512)
      • 256 x 212 (16, 256, 12499 or 19268 colors)
    • Sprites: 32 (max 8 per horizontal line)
    • Scroll registers
  • Sound chip YM3812 (OPL2)

    • 9 voices
    • 2 oscillators (operators) per voice
    • 4 waveforms (sine, half-sine, absolute sine, pseudo-sawtooth) per operator
  • rs232 via UART 16550

  • SPI used as main peripheral bus for:

    • sd-card based mass storage
    • PS/2-peripheral controller (keyboard, mouse) (ATmega8)
    • RTC (Maxim DS1306)

Memory Map

For a detailed description on how our banking scheme works, see this post and also the slides from our talk at CVFe 22.0.

512k RAM organized in pages 16k each

SlotStartEnd
0$0000$3fff
1$4000$7fff
2$8000$bfff
3$c000$ffff

Slot 0 is special, since it also contains the zero page, the stack (as given by the 65C02’s design) and also the IO-area.

AddressDescription
$0000-$00ffZeropage
$0100-$01ffStack
$0200-$02ffIO-Area
$0300-$3fffRAM

The IO-area consists of 16 byte areas for the peripheral devices to be mapped in and also 4 internal registers to control the memory mapping.

AddressDevice
$0200UART
$0210VIA
$0220VDP
$0230banking register slot 0
$0231banking register slot 1
$0232banking register slot 2
$0233banking register slot 3
$0240OPL
$0250Expansion Slot 0
$0260Expansion Slot 1
$0270reserved

The four “banking registers” are used to select the memory page to be mapped into which slot. Writing 0 into the banking register for slot 0 ($0230) will map the first 16k of the 512k into slot 0.

Pinouts

Connectors on the Steckschwein are more or less standard like PS/2, RS232, s-video. RGB is “inspired” by the NeoGeo Console, who used a standard 8pin DIN-Type connector for RGB, Composite Video and Audio.
User Port and the espansion slots have custom pinouts, of course.

S-Video

S-Video jack

PinDescription
1Luminance GND
2Chrominance GND
3Luminance
4Chrominance

RGB

RGB jack

PinDescription
1Audio
2GND
3Composite / Sync
45V
5Green
6Red
7Composite / Sync
8Blue

Expansion Slots

PinDescription
1D0
2A9
3D1
4A1
5D2
6A2
7D3
8A3
9D4
10RW
11D5
12WE
13D6
14OE
15D7
16CS
17IRQ
18NMI
19RDY
20PHI2
21RESET
22RESET_TRIG
235V
24GND

User Port

PinDescription
1VIA PA0
2VIA PA1
3VIA PA2
4VIA PA3
5VIA PA4
6VIA PA5
7VIA PA6
8VIA PA7
9GND
105V
11N.C. (key)
12N.C. (key)
13RESET
14IRQ
15VIA CA2
16VIA CA1

JTAG

This connector is used to program the CPLD

PinDescription
1TMS
2TDI
3TDO
4TCK
5GND
65V