Merge pull request #13 from 0cjs/dev/cjs/200521/rc2014-bus-comparison

Bus.md: Various Updates
This commit is contained in:
tebl 2020-05-30 23:18:25 +02:00 committed by GitHub
commit 7041009bc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 120 additions and 0 deletions

120
Bus.md
View File

@ -174,12 +174,120 @@ The following boards may optionally use this line as an output:
joystick/paddle fire button signal.
Third-party Modifications
-------------------------
This section describes changes to the bus interface used by
third-party boards.
#### appleii6502
[appleii6502][a26] (apparently an anonymous user hosting his blog on
[Ninja Tools][a26-nt]) has been producing and selling RC6502 boards
and kits in Japan. The technical focus seems to be around re-using the
signals generated by the [SBC]'s [74LS138 decoder][a26-decode] by
routing them on to the bus in the following way:
Decode Range RC6502 Bus Apple 1 Expansion Slot
$A000 35 TX T (pin L)
$B000 36 RX S (pin 11)
$C000 39 R (pin 21)
The $C000 to expansion slot pin R mapping corresponds to the [Apple 1
address decoding][a1decode] jumper settings needed by the [Apple Cassette
Interface (ACI)][aci].
His [Apple1 SBC Slot Expander][a26-se] adds two 44-pin expansion slots with
the same pinout as the original Apple 1. RC6502 bus signals TX, RX, 38 and
39 are brought to pads adacent to pads for the Apple 1 slot signals S, T
and R to which the builder can solder jumpers. Pin 39 is labeled `$̅C̅0̅0̅0̅`;
it's intended that the [SBC] be modified to bring its address decoding for
that signal to that pin. These jumperings are [shown in images
here][a26-cass-7].
The [Cassette Interface][a26-cass] is a clone of the original [ACI] that
plugs into the slot expander. It has a 2K ROM enabled by RC6502 bus pin 39,
which must be set up as a $C000-$CFFF decode (see above).
Another [post on slot expander decoding][a26-ab] explains how to disconnect
the Arduino's TX/RX (by cutting the pins off the Arduino board) and instead
wire $A000 and $B000 decoding to those bus pins. Presumably this is for a
future expansion card project.
RC2014 Bus Comparison
---------------------
The RC6502 bus is very similar to the [RC2014 bus] used on some Z80
homebrew computers. The following table compares the two; pins with
substantially different/incompatible functions are marked with a bullet
(`●`).
The 6502 uses the Motorola bus prococols; the Intel bus protocols are
substantially different, precluding sharing of peripherals unless they are
specifically designed with the extra hardware necessary to support both.
However, the backplanes are interchagable with some cavats; see below for
details.
RC6502 Pin RC2014 Notes
----------------------------------------------------------------
A15 1 A15
… … …
A0 16 A0
GND 17 GND
Vcc 18 Vcc
Φ2out 19 ● /M1 Low on Z80 instruction fetch/int ack cycles
/RESET 20 /RESET
Φ0in 21 CLK
/IRQ 22 /INT
Φ1out,EX0 23 ● /MREQ
R/W̅ 24 ● /WR
RDY 25 ● /RD
SYNC 26 ● /IORQ
D0 27 D0
… … …
D7 34 D7
TX 35 TX,TX2 May be user-specified function on RC2014
RX 36 RX,TX2 May be user-specified function on RC2014
/NMI 37 ● USER1
-,EX1 38 USER2 Some RC2014 modules use USER2 and USER3 as
-,EX2 39 USER3 IEI and IEO for interrupt daisy chain.
40 USER4,IEO Nonexistent on RC6502
### Backplane Compatibility
The [RC2014 backplanes][RC2014-spec] (as of the 0.4 draft specification)
can be used with RC6502 boards and vice versa, with some caveats. The power
(18) and ground (19) pins may be supplied by the backplane and are
compatible. The following other pins have caveats:
* __/RESET__ (20)
* RC2014 backplanes with a power supply (SC105, SC112) have a 4.7 kΩ
pull-up resistor on /RESET. RC6502 board reset logic should be able to
pull this line low to reset the system. RC2014 backplanes also have a
reset switch; this ___must not be closed___ as it will conflict with
the standard reset output circuitry of RC6502 boards, potentially
damaging the board.
* RC6502 backplanes have no reset logic, so a pull-up (4.7 kΩ to Vcc) and
an RC2014 board will need to supply a reset signal. The SC108 CPU board
supplies power-on reset but has no reset button. The SC101, SC114 and
SC130 provide a reset button.
* __Pin 40__.
* RC2014 backplanes provide pin 40 as a bus or daisy chain (with pin
80) depending on the model. This pin does not exist on RC6502 boards
and thus can be ignored. Be careful not to insert the RC6502 board
offset by one pin.
* RC6502 backplanes do not provide pin 40, so the USER4 signal cannot be
used.
<!-------------------------------------------------------------------->
[Backplane]: ./RC6502%20Backplane/
[CPU]: ./RC6502%20CPU/
[Reset]: ./RC6502%20Reset%20Circuit/
[SBC]: RC6502%20Apple%201%20SBC/
[a1decode]: https://github.com/0cjs/sedoc/tree/master/8bit/apple1#address-decoding
[Debug]: ./RC6502%20Debug/
[RIOT]: ./RC6502%20RIOT/
@ -188,3 +296,15 @@ The following boards may optionally use this line as an output:
[TIA]: ./RC6502%20TIA%20NTSC/
[Terminal]: ./RC6502%20Terminal/
[VDU]: ./RC6502%20VDU/
[ACI]: https://www.sbprojects.net/projects/apple1/aci.php
[a26-ab]: https://appleii6502.no-mania.com/apple1%20sbc%20slot%20expander/apple1%20sbc%20slot%20expander%E3%82%A2%E3%83%89
[a26-cass-7]: https://appleii6502.no-mania.com/apple1%20cassette%20interface/apple1%20cassette%20interface%E7%B5%84
[a26-cass]: https://appleii6502.no-mania.com/apple1%20cassette%20interface/apple1%20cassette%20interface
[a26-decode]: https://appleii6502.no-mania.com/apple1computer/apple1%20sbc%E3%81%AE%E3%80%8C4k%20blocks%E3%80%8D%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9
[a26-nt]: https://www.ninja.co.jp/
[a26-se]: https://appleii6502.no-mania.com/apple1%20sbc%20slot%20expander/apple1%20sbc%20slot%20expander%E5%9B%9E%E8%B7%AF%E5%9B%B3
[a26]: https://appleii6502.no-mania.com/
[RC2014 bus]: https://smallcomputercentral.wordpress.com/documentation/specification-rc2014-bus/
[RC2014-spec]: https://smallcomputercentral.files.wordpress.com/2018/09/modular-backplane-specification-v0-4-2018-09-19.pdf