Modular Z50Bus system (SC500 series)

The SC500 is a modular 8-bit computer built around the Z50Bus. The system conforms to the Z50Bus specification with cards being the recommended “standard” size (100mm x 75mm).

Example system (SC591): Backplane, Power/reset card, Z180 processor card

The design is open source with full details of the schematics, printed circuit board Gerber files, and software, either on this website or linked from this site. Kits are available for those who would like the convenience and reassurance that kits offer.

Software and firmware support includes RomWBW and CP/M.

The following modules are available.

Example Systems

The following are examples of systems that can be made with SC500 backplanes and cards.

Popular additions to any of the above systems:

  • SC506 – Digital I/O card
    • Provides diagnostic ‘display’ (LEDs) at startup that can also be used as a simple software debugging ‘display’
    • Includes 8 digital inputs and 8 digital outputs for interfacing to external electronics
  • SC510 – Prototyping card
    • Allows custom made additions to an SC500 series system

Card and Backplane Dimensions

The illustrations below show the dimensions of SC500 series cards and backplanes. The components are mostly arranged on a 0.1″ grid. The board dimensions are specified in millimetres to match the recommendations for a “standard” size Z50Bus card.

Socket spacing is either 0.6″ (narrow spacing) or 0.8″ (wide spacing).

I/O Device Addresses

The table below is LiNC’s suggested use of the limited I/O address space:

I/O AddressUse
0x00 to 0x3FProcessor card, SBC, or motherboard, and cards operating specifically with these devices
0x40 to 0x4FAvailable to third party vendors
0x50 to 0x5FAvailable to third party designs/vendors
Alternative addresses for some LiNC cards
0x60 to 0x7FSpecialist cards where address clashes are not likely
0x80 to 0xAFCore cards with well-specified functions
Vendors are encouraged to map compatible cards here
0xB0 to 0xDFAvailable to third party vendors
0xE0 to 0xFFUser’s own designs (suggested addresses)
Do not use for products that are to be sold

The recommendation for I/O device addresses for SCxxx products to best fit with LiNC’s suggestions is detailed in the tables below. The jumper positions for these defaults are illustrated here.

However, the actual addresses to be used will depend on the software being run, so consult software documentation for requirements.

The new range of Z50Bus compatible designs has part numbers starting “SC5”. Older designs have part numbers starting “SC1”.

Recommended input/output address map for SCxxx series systems:

I/O AddressUseZ50Bus Cards
0x00 to
0x3F
Processor cards (Z80)SC516
SC118
0x00 to
0x3F
Processor cards (Z180)SC503
SC140
0x00 to
0x3F
Single Board Computers
and Motherboards
0x00 to
0x3F
Cards operating specifically
with the above devices
SC519
SC523
0x40 to
0x5F
Not currently used
0x60 to
0x63
Z80 CTC
(when not used as a system
timer or baud generator)
SC514
0x64 to
0x7F
Not currently used
0x80 to
0x83
Z80 SIO #1SC511
SC521
SC125
0x84 to
0x87
Z80 SIO #2SC511
SC521
SC125
0x88 to
0x8B
Z80 CTC #1
CTC 0 baud for SIO #1 port A
CTC 1 baud for SIO #1 port B
CTC 2/3 system timer
SC511
SC125
0x8C to
0x8F
Z80 CTC #2
CTC 0 baud for SIO #2 port A
CTC 1 baud for SIO #2 port B
CTC 2/3 user timer
SC511
SC125
0x90 to 97 or
0x10 to 17 *
8-bit IDE direct on CPU bus
Compact Flash controller #1
SC504
SC127
0x98 to
0x9B
Z80 PIO #1SC509
0x9C to
0x9F
Z80 PIO #2SC509
0xA0 or
0x0D *
Digital I/O #1SC506
0xA1 or
Ox0C *
RTC and I2C masterSC505
SC144
0xA2 to
0xA3
Serial ACIA (68B50) #1SC520
0xA4 to
0xA5
Serial ACIA (68B50) #2SC520
0xA6 to
0xAF
Not currently used
0xB0 to
0xB7
8-bit IDE direct on CPU bus
Compact Flash controller #2
SC504
0xB8 to
0xBF
Not currently used
0xC0 to
0xFF
RomWBW for Z180 currently uses
this range for Z180 internal registers
SC503
SC140
0x00 to 0xFFPrototyping cardsSC510
SC512
SC117
NoneCards not using I/O addressesSC502
SC518

Notes:
Device addresses need to be set to match the software you are running. Some software use the following addresses:
SC504 – Compact Flash interface = 0x10 to 0x17
SC505 – Real-time clock and I2C bus master = 0x0C
SC506 – Digital I/O as diagnostic LED port = 0x0D


SC500 series recommended input/output port addresses:
(type ‘C’ have configurable addresses, type ‘H are hard-wired addresses)

ProductFunctionI/O AddressesType
SC5017-slot backplanenone
SC502Power and reset cardnone
SC503Z180 processor card
Registers (RomWBW)
0x0C and 0x0E
0xC0 to 0xFF
H
C
SC504 #1Compact Flash0x90 to 0x97
or 0x10 to 0x17 *
C
SC504 #2Compact Flash0xB0 to 0xB7C
SC505RTC and I2C master card0xA1
or 0x0C *
C
SC506Digital I/O card0xA0
or 0x0D *
C
SC506As diagnostic LEDs0x0D
or 0xA0 *
C
SC5073-slot backplanenone
SC50810-slot backplanenone
SC509 #1Z80 PIO card0x98 to 0x9BC
SC509 #2Z80 PIO card0x9C to 0x9FC
SC510Prototyping card0x00 to 0xFFC
SC511 #1Serial and timer card 0x80 to 0x83 (SIO)
0x88 to 0x8B (CTC)
H
SC511 #2Serial and timer card 0x84 to 0x87 (SIO)
0x8C to 0x8F (CTC)
H
SC512Breakout card0x00 to 0xFFC
SC513Modular backplanenone
SC514Z80 CTC card0x60 to 0x63C
SC51514-slot backplanenone
SC516Z80 processor card0x08 to 0x0B (LED)
0x20 to 0x23 (RTS)
0x28 to 0x2B (TXD)
0x30 to 0x33 (R16)
0x38 to 0x3B (/FS)
H
SC517Modular backplane (RC)none
SC518Z80 CPU cardnone
SC519Memory card for Z800x08 to 0x0B (LED)
0x20 to 0x23 (F15)
0x28 to 0x2B (F16)
0x30 to 0x33 (R16)
0x38 to 0x3B (/FS)
H
SC520 #1Serial ACIA (68B50) card 0xA2 to 0xA3C
SC520 #2Serial ACIA (68B50) card 0xA4 to 0xA5C
SC521 #1Serial Z80 SIO/2 card0x80 to 0x83C
SC521 #2Serial Z80 SIO/2 card0x88 to 0x8BC
SC522Modular backplanenone
SC523Programmable ‘ROM’0x08 to 0x0B (LED)
0x20 to 0x23 (M15)
0x28 to 0x2B (M16)
0x38 to 0x3B (/CE)
H
SC526Power and reset cardnone

Notes:
Device addresses need to be set to match the software you are running. Some software use the following addresses:
SC504 – Compact Flash interface = 0x10 to 0x17
SC505 – Real-time clock and I2C bus master = 0x0C
SC506 – Digital I/O as diagnostic LED port = 0x0D

User Pins

The Z50Bus has four “user” pins (USR0 to USR3). These are not required for a Z80 system and are free for anything the user wishes. Some cards have the option of inputting signals from or outputting signals to these pins. In each case, these cards have jumper links to determine if these signals are connected to the bus pins or not. The following table summarises the current uses of these pins.

Card(s)USR0USR1USR2USR3
SC503
SC140
/INT1
input
/INT2
input
SC505
SC144
I2C SDA
in & out
I2C SCL
in & out
SC514CTC #
in or out
CTC #
in or out
CTC #
in or out
CTC #
in or out
SC518CLOCK
input
SC520Interrupt
output
Interrupt
output
Interrupt
output
Interrupt
output

SC500 series designs can be used with the above-related products. The main differences are really cosmetic. SC500 cards use box headers to help align the card on the backplane and to reduce the chance of the pins bending. They also have provision for spacers to help prevent cards from touching each other.

Notes

  • This design is made with the permission of LiNC (designers of the Z50Bus).
  • This product is designed for hobby use and is not suitable for industrial, commercial, or safety-critical applications.
  • The product contains small parts and is not suitable for young children.
  • RomWBW has been provided free of charge by its author Wayne Warthen.

Homebrew 8-bit retro computing