From d9f2d1bc8b8afbbbf8c383e6ecd95efc19b4b060 Mon Sep 17 00:00:00 2001 From: "Curt J. Sampson" Date: Thu, 21 May 2020 18:43:32 +0900 Subject: [PATCH 1/2] Bus: Add comparision with RC2014 bus The backplanes (though not the cards) are actually fairly compatible, so we include this information to give guidance on using a backplane from one system with the other. This may also provide helpful insight for RC6502 board designers. --- Bus.md | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/Bus.md b/Bus.md index 0bb3c0e..4c19cc9 100644 --- a/Bus.md +++ b/Bus.md @@ -174,6 +174,71 @@ The following boards may optionally use this line as an output: joystick/paddle fire button signal. +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/ @@ -188,3 +253,6 @@ The following boards may optionally use this line as an output: [TIA]: ./RC6502%20TIA%20NTSC/ [Terminal]: ./RC6502%20Terminal/ [VDU]: ./RC6502%20VDU/ + +[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 From 08996975e0133e4da202ca72259064625df0aa20 Mon Sep 17 00:00:00 2001 From: "Curt J. Sampson" Date: Fri, 22 May 2020 16:52:45 +0900 Subject: [PATCH 2/2] Bus: Address decode mods from third party developer appleii6502 --- Bus.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/Bus.md b/Bus.md index 4c19cc9..6a3ddee 100644 --- a/Bus.md +++ b/Bus.md @@ -174,6 +174,47 @@ 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 --------------------- @@ -240,11 +281,13 @@ compatible. The following other pins have caveats: 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/ @@ -254,5 +297,14 @@ compatible. The following other pins have caveats: [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