I have an article which explains how to connect a multiplication/division chip to the Apple II Expansion Slot. It's a simple schematic with 8 pins connected to Expansion Port pins D0-D7 and several control lines. It also provides a program to send values to the chip and fetch the results.
The program stores four bytes to locations $C0A0-$C0A3 (Expansion slot one). Three bytes are the numbers to be manipulated and one byte tells the chip which operation to perform. Then it reads the results from these same locations. That's all it does.
Is this really enough to send data through the Expansion bus to the chip? Certainly there needs to be more code to get each of these bytes from memory onto pins D0-D7? Maybe this program isn't a full project, but just a loose explanation.
(This is part of me trying to learn more about my Bank Street Laboratory card, but this discussion deserves its own thread.)
In post #1, 'gmontag451' asked:
" Is this really enough to send data through the Expansion bus to the chip ?"
Uncle Bernie answers:
Yes, it's enough. Databus is there (8 lines), 2 address lines, R/W (2 lines), DEVSEL (1 line). The latter is the device select offered by the Apple II. The IC also gets a RESET and a clock, but these are not needed in other typical cases. You can hook up a 74LS374 register or 74LS244 bus driver to the Apple bus without any further logic. Which would give you octal (8 bit) output and input ports, respectively.
I mention these just for sake of completeness.
The more interesting part would be to find the OKI6203 datasheet. Running out of time (battery) but I'm curious what it can do and how fast. And how much load it can drive when things are read out from it. Maybe this is a weakness of this minimalistic circuit. I guess it's a CMOS part so its own inputs loading the signals won't matter.
- Uncle Bernie
Thanks for the completeness! It's all fascinating and I need to find some good books on Expansion port projects.
What I don't really understand is how the code can be enough. It just puts the data into the memory locations, and reads the results. It doesn't trigger the chip to perform a calculation, unless writing to the "operation" location is enough to trigger it?
Yes. When the CPU writes to an address there's a certain amount of handshaking that goes on - it puts the address on the address bus, the value on the data bus, it sets the read/write signal to "write", and the CE ("chip enable") signal is set for the chip in question. That's more than enough extra signals to trigger some activity in addition to just storing data.
Wow, I had no idea! Definitely not that easy on other 8-bits I've done interfacing projects on.
I definitely need to do some research. If anyone has any book suggestions, I'd welcome them!
"The Apple Connection" (ISBN: 0-89588-085-7) and "Apple Interfacing" (ISBN: 0-672-21862-3) both come to mind as easy reads.
The first is on ebay right now:
https://www.ebay.ca/itm/304237473694
Also availble to borrow and read online at archive.org:
https://archive.org/details/appleconnectioni0000coff
https://archive.org/details/appleinterfacing0000titu
Thanks for those suggestions, baldrick! I downloaded them from the archive. Should keep me busy for a while!
Apple (the company) always encouraged users to make their own slot cards and to plug them into the Apple II. It was a hardware hacker's dream machine because of the slots and the super easy interface logic. Not only did Apple (the company) document everything in the Apple II very well (schematic of the whole machine, all pinouts of connectors and signal descriptions in the Apple II User Manual) but they also sold "hobby boards" which had the correct form factor and the edge connector fingers, and a good power / ground grid. These can be used to construct slot cards of any desired used function.
Just recently it has been brought to my attention (in a post) that somebody made new Gerbers for these hobby boards using KiCAD. They are on github. Sorry no time to look for the link (you do, it's somewhere in my IWM reverse engineering or Replica 2e project threads).
Since I ran out of knockoffs of these PCBs I need for my own development work I intend to order a production run from JLCPCB but was reluctant to pull the trigger yet. The issue is quantity. These PCB get heinously expensive if only two or three are being ordered. But in higher numbers (12, 20, ...) they get much, much cheaper.
If anyone reading this is interested in such a production run, tell me. Don't know if the guy who made these Gerbers available would want to chime in, maybe he did not order some yet (for the same reason as I have, makes no sense to order too few).
If there is demand, I'm willing to finance the production run and sell those I don't need at cost. But I don't want to spend my time selling and packing them piecemeal, there should be one person for each continent interested to handle the distribution.
Comments invited (or send me a PM by using the "Send PM" button).
- Uncle Bernie
There are often Apple II proto boards of various types for sale on eBay. There are also more than one set of gerbers out there for making your own. Generally you have to order at least 5 from most of the PCB makers, but the price does indeed go way down if you order 10, 15 or more at a time. Depending on size JLCPCB is usually very reasonable for making such boards. The biggest cost usually being the shipping if you choose one of the faster methods like DHL or FexEx. The cheaper options often bring the total shipped cost per board down under $10 each, which I think is less than Apple charged back in the day. And $10 went a lot further back then.
FWIW, I have a whole bunch of Apple-1 proto boards around here that I had made a year or two ago. I was thinking about listing them for sale on eBay at one point but I've since kind of soured on trying to sell anything due to bad experiences with it.
FWIW, here are a few sources of gerbers that a quick googling turned up:
https://github.com/tebl/Apple2-Prototyping-Card
And ReActive Micro sells this or you can get it through Tindie from GlitchWorks I think:
https://www.reactivemicro.com/product/apple-ii-prototyping-board-from-glitchworks/
Or there's this one on Tindie:
https://www.tindie.com/products/tkimweston/apple-ii-peripheral-card-prototyping-pcb/
I think PCBWay also has some in shared projects you can use too.
I have written an edge connector wizard for KiCad. I have made a few cards with it (through PCBWay) and confirm it works for the Apple IIe.
If you are interested, I can post it on this board along with a minimal how-to.
always willing to learn something new on KiCad.
Thanks!
This works with KiCad 8.0. It probably won't work for previous versions.
First, decompress this file edge_connector_wizard.zip to the KiCad plugin directory (on windows, it will be something like C:\Program Files\KiCad\8.0\share\kicad\scripting\plugins)
In KiCad, open the Footprint Editor and click on this icon:
FootprintEditorIcon.png
If you don't see a Footprint Generator named 'Edge Connector' click on 'Update python modules'.Select this generator by double-clicking it.
This should bring the edge connector generator:
EdgeConnectorWizard.png
The only thing you will probably need to change is 'n' which is the total number of pins, for example '60' for the AUX connector, or '50' for a slot connector.
Note that the generator also create the Edge Cuts for the connector part:
EdgeCuts.png
Be sure to include it in your final Cuts:
FinalEdgeCuts.png
Once your board is finished, you will need to tell the PCB fab house about your edge connector. Using PCBWay for example:
EdgeConnectorPCBWay.png
Change Edge Connector to 'Yes'
Add bevelling; 45 degrees gives an almost round feeling, lower angles makes the edge sharper.
HASL is fine for prototypes that aren't inserted-removed too many times. I guess damage will begin to appear around maybe 100 insertions.
Hard gold is best but priciest.
Immersion tin is I believe pretty common and a good cost/value ratio. But don't quote me on that, I only order HASL.
The engineer reviewing your board may ask you about the residual thickness at the bevelling area. For example, for a 1.6mm board and 45 degrees bevelling, the engineer will ask if a 0.5mm residual thickness is acceptable (it is if you're not sure).
That edge connector tool looks pretty cool. I may have to upgrade my KiCAD though.
edit -- yep, I have 7.0.11 installed. Looks like I will have to manually install the newest version.
In post #13, 'frozen_signal' wrote:
" Hard gold is best but priciest."
" Immersion tin is I believe pretty common and a good cost/value ratio. But don't quote me on that, I only order HASL."
Uncle Bernie warns:
Don't use tin or lead/tin on any edge connector contact finger. It is terrible for sliding contacts although it will work for a few insertions.
What happens is that it will oxidize over time and then you need to polish these fingers up with a pencil eraser every time you want to use the card.
Back in the day (1980's) there were numerous home computers supporting game software cartridges (with ROMs) and those cheapskate manufacturers who used tin or lead/tin contact fingers quickly learned the lesson that it doesn't work long enough to not make masses of very angry customers.
Atari always used golden contact fingers on their game cartridges for a reason.
The cheapest way to get reasonably good 'golden' contact fingers at a low price is to use the ENIG process option. I did some runs of my Gen1 and Gen2 improved ACI PCBs for the Apple-1 using ENIG, and the last lot ever made (now sold by newton-computers on Ebay) used the 2 x ENIG thickness option and looks more golden, despite it's only a few atom layers of gold more. Note that the "golden" wrapping papers use essentially the same process, chemically deposited gold, only a few atom layers thick, so the amount of gold used is negligible. What you pay for the 2x option is not the added gold (pennies), it's the added time in the bath.
ENIG never was meant to make industry standard gold fingers for edge connectors, it is just to allow longer storage of naked PCBs due to the enhanced corrosion protection offered by the thin nickel/gold layer.
Real industry standard gold fingers use an electroplating process and that is much more expensive. The layers are thicker and last for more insertions.
But for hobby purposes, ENIG gold fingers are good enough. I would not use tin or lead/tin fingers, though. Had too much trouble with that.
- Uncle Bernie
Sorry for the confusion but the wizard above is my old version; it is for KiCad 7.0 and the top margin need to be changed to 0 mm.
This is the correct version:
edge_connector_wizard_KiCad8.0.zip
(Maybe I should create a github repo with my few KiCad footprints and symbols for the Apple IIe...)
That's a great idea. The community would appreciate it.