From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search


The ECB Bus is a (more or less) standarized bus for Z80 and 8080 computers; similar to the ISA bus used on 80x86 computers. In theory, ECB cards could be used with different computers - however, in practice, different computer systems have different memory and I/O maps, so one would need to modify the memory and I/O address decoding (on the ECB cards) in order to get them working on other computers. Another problem is that some pins aren't standarized, and various companies have assigned different signals to them, including for -5V and -12V supplies (which may blow-up other cards that don't expect negative voltages on those pins).


The ECB bus was invented in 1977 by the German company Kontron. ECB originally stands for "Einfach Europaformat Computer Baugruppen" (Simple or Single Europaformat Computer Modules; where "Europaformat" refers to a standarized circuit board size of 160×100mm). ECB is sometimes also referred to as "Europa Bus" or "Europe Card Bus".

Aside from Kontron, other companies like J&K, o+r, ELZET80, Conitec, E-Lab, Marflow, and miro also invented different ECB-bus variants. The CPC Schneiderware series also invented a new variant. There is also an extended 16bit variant (for 68000 processors or so).

The bus is still used in some situations (for example, as by 2010, still sells 96-pin "Euro Bus" backplane boards). Confusingly, Kontron themselves are now using the abbreviation "ECB" for PCI-bus based "Embedded Computer Boards", which have little (or nothing) to do with the original ECB bus.

ECB Bus Hardware for CPC

ECB Bus Pin-Outs

The ECB Bus uses 3x32 pin connectors (96 pins), of which, usually on 2x32 (64 pins) are actually used (the middle row is used only for newer "16bit" cards).

Pin A B C
1 +5V (+5V) +5V
2 D5 (A20) D0
3 D6 (A21) D7
4 D3 (A22) D2
5 D4 (A23) A0
6 A2 (D8) A3
7 A4 (D9) A1
8 A5 (D10) A8
9 A6 (D11) A7
10 /WAIT (D12) (A16,A21,CLK/2)
11 /BUSRQ (D13) IEI
Schneiderware: RAMRD
12 (/BAI,A18) (D14) (A17,A19)
Schneiderware: RAMDIS
13 +12V (D15) (A18,-12V,A20)
14 (A19,-12V,/MMU DIS) (IRQ7) D1
15 (-12V,-5V)
Schneiderware: EXP
(IRQ6) (-12/15V)
Schneiderware: -12V
16 (2PHI,nPHI)
Schneiderware: HALT
Schneiderware: LPEN
17 (/BAO,A17) (IRQ4) A11
18 A14 (IRQ3) A10
19 (+12/15V) (IRQ2) (A21,A16)
Schneiderware: ROMEN
20 /M1
Schneiderware: SOUND
21 (A22,BDCL) (IRQ0) /INT
Schneiderware: ROMDIS
22 (A23,/RDY,/BOOT)
Schneiderware: M1
23 (DPR,/PF,/BAI) (xxx) (A20,/SEL,/VBLANK,A21)
Schneiderware: INT
24 (UBAT 2V..3V)
Schneiderware: 5V ACCU
Schneiderware: CURSOR
26 (/WREN,/BAO) (xxx) (/PCL,/RESOUT ;similar to /RESET)
Schneiderware: RESET (Reset from CPC)
27 /IORQ (MEMWR) A12
28 /RFSH (DS0: /DataLSB) A15
29 A13 (DS1: /DataMSB) PHI
30 A9 (OFF) /MREQ
Schneiderware: BUSRESET (Reset to CPC)

Signals in brackets "(...)" aren't available on all ECB variants; the Schneiderware series doesn't support those signals. Moreover, the Schneiderware pin-outs are somewhat customized: Signals HALT, M1, INT, are mapped to wrong pin numbers, -12V complies with some ECB variants, and some non-ECB signals SOUND, CURSOR, LPEN, EXP, ROMEN, ROMDIS, RAMRD, RAMDIS are added, and, UBAT is listed as 5V in Schneiderware (normally it should be 2V..3V) (though UBAT isn't actually used/connected on the Schneiderware boards). Aside from the +5V, +12V, -12V supply voltages, the Schneiderware motherboard also has an "AC" soldering point; it's voltage/purpose and it's ECB-pin number are unknown -- it might possibly refer to the ACCU battery (rather than to a analog current AC voltage). The CPC's two Reset signals (BUSRESET and RESET) are mapped to the corresponding ECB-locations (not sure if they are assigned correctly, or if they should be exchanged with each other).