YABUS - universal 8-bit magistral
This magistral is dedicated to connect standardized I/O devices (ports) to micoroprocesor units (computers). Modules connected to the YABUS magistral are called YAMOD and their construction is independent from the computers, they are connected to.
A 1/2C EURO slot is used. Female one on the board (YABUS) and male one in the module (YAMOD). Most of base modules use only two outer rows of pins of the slot, what simplifies their construction.
|A0..A15|| - address output lines (16 bits)
|D0..D7|| - data bidirectional lines (8 bits)
|/P0../P7|| - decoded A5..A7 for A4=1 output lines
|/DMA|| - DMA request input line
|/INT|| - interrupt request input line
|/RD|| - strobe output line for reading from port
|/WR|| - strobe output line for writing to port
|/SEL|| - address recognized input line*
|/RES|| - reset output (optionally input) line
|GND, +5V, -12V, +12V - power supply lines
* The module resets /SEL line (forces low state) for addresses used by it. Low state disables other ports (e.g. pulls up the /IORQGE line in ZX Spectrum) opens the data lines buffer of buffered YABUS, also can disable module in slot of lower priority (YABUS can be wired with slots priority).
For Z80CPU the /RD and /WR lines of YABUS must inlcude /IORQ.
This can be done with two 74LS32 OR gates or half of 74LS139 decoder. The /P0../P7 selcection lines can be generated with 74LS138 from A4..A7.
Write-only or read-only ports
Both in YABUS.ZX and YABUS.Z80RTC the /RD and /WR of YABUS signals are forced to high state when /SEL is not low. So the only way to make write-only and read-only ports is to use time delays.
The write-only ports means writing goes to YAMOD and locks internal port, but reading port at the same address is from internal port, not blocked by YAMOD. In this case, the YAMOD detects address of this port and sets /SEL to low. If then /WR=0 appears, the /SEL remains low and YAMOD makes use of the writenn byte. But if /RD=0 appears in this cycle, /SEL must be immediately set to high impedance to allow reading from internal port. The /SEL must be hold in high impedance until the address is unchanged.
The read-only port means the reading is from YAMOD with intrernal port blocked, while writing to the same address goes into internal port. YAMOD detects port address and sets low on /SEL. Then, if /RD=0 appears, YAMOD provides its data. But when /WR=0 appears, /SEL must be set to high impedance until the addres change.
Example of read-only port is keyboard interface for ZX Spectrum. YAMOD detects #xxFE address. In case of reading, YAMOD provides keyboard data. In case of writing - YAMOD must enable the internal port, as it is used to border changes and sound generation.
Files for download
- bend.zip 10.3kB (2004-10-21 13:30)
- Small board that angles YABUS slot from vertical to horizontal. Eagle data files.
- yabus.zip 37.5kB (2007-02-12 17:20)
- Library for Eagle "yabus.lbr". Contains slots of YABUS, ZX Spectrum, IDE.
- iorqge.png 1.3kB (2003-12-30 23:15)
- The idea of internal ZX Spectrum port disabling with /IORQGE line.
Links to other pages
- Two YABUS slots for Sam Coupé.
- Two YABUS slots for Timex FDD 3000 with memory extension (4MB RAM).
- 4MB RAM extension for Timex FDD 3 with YABUS support.
- Two YABUS slots for ZX Spectrum computers.
- ISA slots for ZX Spectrum (I/O mapped). LPT, 2×RS232, Floppy Disk Controller and sound card.
- YAMOD.ATBUS 8bit IDE
- The fastest 8bit universal IDE multiplexer for YABUS. Includes RTC type DS 1287, DS 12887 or MC 146818.
- AY-3-8910 sound board (ZX Spectrum 128K and Timex 2068 compatibility) with printer slot and IIC magistral.
- Very simple and cheap EPROM programmer. Based on 8255, can program up to 1MB.
- The FDC interface, compatibile to ZX Spectrum +3 or YABUS.ZXISA.
- Kempston Joystick for YABUS.
- Quite fast IDE multiplexer made from 8255 PIO.
- Universal PC AT keyboard and serial mouse interface.