UNCLE BERNIE'S IMPROVED APPLE-1 CASSETTE INTERFACE

3 posts / 0 new
Last post
Offline
Last seen: 2 days 6 hours ago
Joined: Apr 1 2020 - 16:46
Posts: 174
UNCLE BERNIE'S IMPROVED APPLE-1 CASSETTE INTERFACE

You probably expected already that something like this must be coming, after you followed me on the bumpy road that lead to this - at the present time -  "final" result of my work on improving the notorious Apple-1 cassette interface, as documented in this thread spanning many months:

 

https://www.applefritter.com/content/which-aci-improvements-do-exist-and-work

 

This new thread is meant for those of you who are not interested in how all this came about, and was developed, but only in the final result, the recipe on how to modify your ACI to get improved functionality and to activate the hidden page in my new ACI PROMs (which have been sold with my more recent IC Kits since early July 2020).

 

The mod addresses three shortcomings of the the original ACI circuit design and its firmware:

 

1) it fixes the volume indicator LED circuit (which in the original form almost never works).

 

2) it adds Apple-II style checksums to the recordings so you can read / write tapes with either Apple-1 or Apple-II and use the same recordings on both machines.

 

3) it adds an "extended" formatting capability to the recordings to make them less awkward to read back.

 

The latter is based on a proprietary format which I had developed a few months ago in my "improved ACI project".This proprietary format is fully forward and backwards compatible with both Apple-1 and Apple-II even if those are unmodified. But if you use my new ACI PROMs on an ACI card modified for them, you don't need to remember or type in any load address ranges or start addresses. All this information is embedded in the "extended format" recordings. So, for instance, if you have made an extended format recording of a machine language game that consists of one data block and one autostart block, to load it, you just give the commands:

 

C500R <return>

RX RX <return>

 

... and the game loads and starts. There is one RX for each block. The number of blocks is all you need to know. The C500R starts the second page in the PROMs which I have added. The first page still contains the original ACI firmware written by Woz back in 1976 (used with his permission). So with the mod you lose nothing. The original, unmodified firmware can be started with the command C100R as usual. This is a bit different from the 512 Bytes PROMs I had developed a few months ago. They were a complete re-write and also had a CRC (cyclic redundancy check) capability. They also know about the number of blocks in a record - only one RX command needed. But they would not work at all in an unmodified ACI card. Which would mean I could not sell those with my famous 100% tested and burned in IC kits on Ebay. Buyers expect to have the real deal, the real firmware as written by Woz. And I agree with that attitude. So when I ran out of 256x4 PROMs and sought a good use for the 2nd page of 512x4 PROMs, I decided to make a stripped down version of my "extended ACI" firmware PROMs to avoid wasting this 2nd page. A few functions had to be thrown out, but finally I could make it fit. This is not a "crippled" version, though. The "extended" format it makes is the real thing but the CRC fields are marked to be invalid and the block count is not used on readback. Everything else is still there, and everything stays forwards and backwards compatible.

 

In the following I will show you how to modify any ACI card to fix the volume indicator LED circuit and to enable the hidden page in my new ACI PROMs. You can implement both or only one of these two mods. My recent kits also include all the small passive components to fully populate an ACI card (except the IC sockets) so I ordered two ACI cards from "Pinguoso" on Ebay ($10 each, great price !) and used one of my parts bags to build a new ACI with the mods from scratch. This of course also was a test to see if everything would work for builders - my older ACI cards are "lab rats" with so many modifications that they don't qualify for that and could not be used to make nice photos of them.

 

Step 1: One cut on the component side (this is for the volume indicator LED circuit fix):

 

 

The best way to cut these traces is to use one of these diamond tipped, battery driven etching pencils you can find at Harbor Fright (pun intended) and elsewhere. You can also use a X-acto knive to cut out a piece of the PCB trace, but I found the etching pencil works much, much more precisely and never cuts too deep - because it does not cut - it's a grinding process.

 

 

Step 2: Three cuts on the solder side (this is to enable the hidden PROM page):

 

 

Note the read arrow. On some ACI PCBs not based on the Russian Open Source Gerbers there is a trace at that location that duplicates the component side trace we just have cut in Step 1. If such a trace is there, it also needs to be cut.

 

 

Step 3: Populate the PCB as usual. Be aware of the option to hide the added 1nF capacitor for the volume indicator LED circuit fix in the IC socket, if it is the kind with precision machined contacts. This requires good fine motor skills and a very precise soldering technique. If you can't do that, you can always put the capacitor on the solder side of the PCB. It just is an eyesore there, see the photo in the above thread, post #13. But yet another alternative is to use a small 1nF SMD capacitor (the "bird feed" type), if you have those, in lieu of the disk capacitor. I chose to hide the latter in the IC socket: I snipped off the pin#9 of the DIL-14 socket just at the point where it gets skinny (this avoids damaging the internal contact fingers, do not snip any further). Then I soldered one leg of the capacitor to the stump of that pin and then I ground it down, again with this marvelous diamond tipped etching pen (but be careful -- only remove the solder bead, and once copper is visible, stop immediately). This procedure increases the clearance of the stump to the PCB, such that a thin insulated wire can go through the pin #9 pad hole of the PCB location #2 into which the pin would go had we not snipped it off. That thin wire is soldered to the other leg of the capacitor. Just prior to that step the IC socket with the hidden capacitor looks like this:

 

 

 

When the socket is being installed, the thin wire is threaded through the hole and then pulled gently from the other side while placing the socket into the PCB. Only solder two diagonal pins (#1 and #8 recommended) of the socket and then adjust its height over the PCB by alternately re-heating these two solder joints while pulling / pushing on the socket. Make sure there still is some small clearance from the stump to the wire going though the hole of the pad, and make sure the IC socket is not tilted in any ugly way. Do not solder any of the other pins of that socket yet. Then put in all the other parts. The component side of the ACI should look like this:

 

 

 

You might note that I used DIL-16 sockets with built-in 100nF bypass capacitors in locations #3 and #4, where the PROMs go. Bipolar PROMs make nasty current spikes and this may be one reason why the ACI is not such a great performer in terms of readback reliability. So I can recommend this measure (although it's hard to prove how much it really brings).

 

 

Step 4: Add the wires on the solder side like this:

 

 

 

Some of the wires tap into a PCB trace. Scrape a little bit of the solder mask away and then polish the exposed copper with a pencil eraser until smooth and shiny. This helps to make a better solder joint. But don't overdo this, use a corner of the pencil eraser to avoid a dull speck on the solder mask that is too large. If your pencil eraser has no sharp corners anymore, cut a piece off and you have four fresh corners to work with. That should be plenty. Solder the insulated wired that comes out of the pin #9 hole of the IC #2 (the socket with the hidden capacitor) first, because if you botch that and cut it off too short, or if there is a mishap with stripping the insulation, you can still get the IC socket out to install a new insulated wire (rinse and repeat).Remember we only soldered two diagonal pins of the IC in location #2 for a reason. Any mishap with stripping insulation can be avoided by using polyurethane insulated wire used for winding inductors. This thin insulation can be stripped by heating it with the tip of the soldering iron (apply some solder in the process). But do not inhale the fumes - they are toxic. I used this type of wire for the photos seen in post #13 of the beforementioned thread. But for the example here in this new thread, I used blueish wire-wrap wire because I think it looks nicer and I wanted to show you the difference. Alas, I have no such wire with an insulation of a color that matches the green solder mask. That would be ideal for better looks.

Make sure the insulated wire that comes out of the pin #9 hole of the IC #2 is long enough to be bent into the final configuration seen here:

 

 

Which looks neater. In the previous photo I just had bent it away again so you can discern all these wires and where they connect to more easily.So many words for just one wire. But is is the most difficult wire to add and it must be done right and completed as the first one. Then add all the other wires and solder only those pins of IC #2 where a wire must be attached. Do not solder any of the other pins of IC #2 until all wires are in, and have been bent into their final positions. You could still break that difficult to replace wire off in the process and if this happens you want to be able to get the IC socket #2 out again to replace it. After all the wiring work is done, solder the remaining pins of IC socket #2.

 

This is how I built a new ACI card with all the currently known mods. It will work with both 256x4 and 512x4 type PROMs, so you can do these mods even if you don't have the new 512x4 PROMs yet. It would be great to have somebody who has the tool to edit Gerbers so these mods could be put right into the PCB itself. If the extra capacitor would be a SMD hidden under the socket of IC #2, then nobody could tell it apart from any unmodified ACI, except for spotting the 5.1 MEGOhm resistor in lieu of the 100K resistor. Alas, the only tool I know which can edit Gerbers with grace is the "FAB2000 Gerber Edit"(or so, my memory is not 100% certain after all these years). Our PCB wizard in the last company I worked for before retirement had it. But it is heinously expensive. Most likely it can't be found outside the electronics industry. But maybe our Russian friend who made these Open Source Gerbers could make that modified PCB for us ? If you read this, dear Misha, please get in contact with me by a private message here at Applefritter.

 

So far today's post on UNCLE BERNIE'S IMPROVED APPLE-1 CASSETTE INTERFACE.

 

We have covered the hardware side.

 

And that is all I could do in this internet session. If anyone is interested in adopting these mods, please write a comment. If there is enough interest, I will make another post explaining the software side and how my proprietary extended format works on both the Apple-1, the Apple-II and how it can be used on any non-modified ACI (same procedure as with using it to read these recordings on an Apple-II, btw.)

 

Comments invited !

macnoyd's picture
Offline
Last seen: 1 day 1 hour ago
Joined: Oct 15 2012 - 08:59
Posts: 692
Really NICE work UncleBernie !!

Easy to understand write-up too.

I have no comment on the technical parts but I would like to suggest that you consider making up an "UncleBernie's" version of the cassette interface PCB with all the mods included in the traces.

I know I'd buy one! :-D 

If PCB making isn't in your bag, maybe someone here would take it on. (?)

 

Very nice work and thanks for posting !!

You've become an excellent source for mods and technical info to the Apple 1 - which is most appreciated by me and I'm sure many others as well.

Macintosh_nik's picture
Offline
Last seen: 6 hours 31 min ago
Joined: Jan 8 2021 - 05:18
Posts: 73
Hi Uncle Bernie!

There is a free program for creating and editing PCBs.

 

https://easyeda.com/

Log in or register to post comments