UNCLE BERNIE'S IMPROVED APPLE-1 CASSETTE INTERFACE

63 posts / 0 new
Last post
Macintosh_nik's picture
Offline
Last seen: 2 hours 2 min ago
Joined: Jan 8 2021 - 05:18
Posts: 463
Hi ebruchez!

The problem is that the distance between ic sockets A1-A2 (A3-A4) on the main board and the ACI card is different, you can't use the adapter of the respected P-Lab for the ACI card. You need a different board, if I remember correctly Claudio has not yet posted the corrected gerber file for the ACI card. 

 

You might want to take a look at my EPROM card project, there are only a few cheap and distributed components for less than 10$, but you can run some of the most popular programs and games with it.

 

https://www.applefritter.com/content/apple-1-eprom-interface

Offline
Last seen: 1 month 1 week ago
Joined: Jul 5 2018 - 09:44
Posts: 2587
ebruchez wrote:I wrote:Mmh,
ebruchez wrote:
I wrote:

Mmh, thinking more about it, I suppose that the content of the ACI PROMs can be included in the EPROMs on the main board's EPROM adapter! In that case, I suppose that the ACI PROM sockets can be left empty. Is my understanding correct?

Thinking further, I realize that I was wrong: the main board EPROM adapter, plug

The ACI PROMs only contain 256 bytes though, don't they?  MMI 6303 are 256x4 each?

 

Offline
Last seen: 2 days 15 hours ago
Joined: Apr 1 2020 - 16:46
Posts: 996
About replacing the ACI PROMs ...

... 'softwarejanitor's post #53 is right that the ACI firmware written by Woz is only 256 bytes long, so, theoretically, it could be put into one 256 bytes page of an EPROM adapter sitting in the A1/A2 locations on the motherboard. All you would need is to provide some logic for proper chip select of that EPROM.

 

But here is the catch: the ACI uses another foul Woz trick to save ICs (he is famous for these tricks). The ACI manipulates one address line of the local PROMs on it to make a one bit input port for TAPE IN.

 

How this works is a as follows:

 

- in the address range $C100 to $C1FF, the PROM gets a copy of the original address line.

 

- in the address range $C000 to $C0FF, the PROM gets the TAPE IN signal in lieu of that address signal (see the ACI schematic in the original manual).

 

To test the input port, the firmware running in $C100 to $C1FF reads from a location in $C000 to $C0FF where a change of the TAPE IN signal (from the comparator) leads to two different byte values in the PROM.

 

One problem with this approach is that the CPU will occasionally read an erratic byte when the comparator output toggles close to the end of the PHI2 clock phase. This may cause a read fail as the bogus byte then is used as a compare value  to detect the next comparator output change. It does not happen all too often with bipolar PROMs (they are fast, so the timing window for a read data setup/hold time violation is small) but with a slower EPROM it will happen more often even if you add the input port trick circuit.

 

In my work on the ACI improvements I have greatly mitigated that problem by using the one unused flipflop in the 74LS74 as a synchronizer.

This was part of the Gen1 fixes. Gen1 also removed the need for a negative supply voltage, to make the Gen1 improved ACI compatible with Vince Briel's "Replica 1". The other Gen 1 fix was fixing the totally botched volume indicator LED circuit. Gen 1 also added the 2nd firmware page with my 'extended formatting' routines ($C500-$C5FF) which make the ACI fully Apple II compatible, and also provides autoload and autostart capabilities.

 

Gen2 finally fixed the botched comparator circuit. This involved adding some SMD components hidden under the LM311 socket. This 'Gen 2 improved' ACI PCB which once came with my Apple-1 IC kits currently is only available from Ebay seller newton-computer (as my work was based on his Gerbers).

 

Implementing all these functions on the motherboard is a tall order. Good luck with that !

Tell us how you did it !

 

- Uncle Bernie

 

 

Offline
Last seen: 9 hours 42 min ago
Joined: Nov 9 2023 - 22:13
Posts: 68
For someone building an ACI

For someone building an ACI in 2024, there are two issues:

  • ACI PROM sourcing
  • ACI reliability

I'd love to have a solution for both.

A main board option for this would be good to have, but until then, if going with a Gen 2 card, then an EPROM (or other) adapter for the ACI card is needed. I fear that this can be a little clunky, though. A Gen3 or Gen2+ PCB which somehow supports directly an EPROM would be nice :)

    Macintosh_nik's picture
    Offline
    Last seen: 2 hours 2 min ago
    Joined: Jan 8 2021 - 05:18
    Posts: 463
    Hi ebruchez!

    This has all been done before, in 2007 the esteemed Vince Briel developed a cassette interface board with EPROM.

     

    Offline
    Last seen: 19 hours 2 min ago
    Joined: Jun 29 2018 - 16:55
    Posts: 590
    Macintosh_nik wrote:This has
    Macintosh_nik wrote:

    This has all been done before, in 2007 the esteemed Vince Briel developed a cassette interface board with EPROM.

     

    [[{"fid":"38403","view_mode":"default","fields":{"format":"default","alignment":"","field_file_image_alt_text[und][0][value]":false,"field_file_image_title_text[und][0][value]":false},"link_text":null,"type":"media","field_deltas":{"1":{"format":"default","alignmen

    I wish it were easier to find it / info on making one, I have only seen photos honestly.

     

    I use Bernie's improved gen 2 with my Briel replica 1+. 

    Offline
    Last seen: 1 month 1 week ago
    Joined: Jul 5 2018 - 09:44
    Posts: 2587
    Macintosh_nik wrote:This has
    Macintosh_nik wrote:

    This has all been done before, in 2007 the esteemed Vince Briel developed a cassette interface board with EPROM.

     

    [[{"fid":"38403","view_mode":"default","fields":{"format":"default","alignment":"","field_file_image_alt_text[und][0][value]":false,"field_file_image_title_text[und][0][value]":false},"link_text":null,"type":"media","field_deltas":{"1":{"format":"default","alignmen

     

    Does anyone know if the Gerners or a project file for that in a CAD app is available?

     

    Macintosh_nik's picture
    Offline
    Last seen: 2 hours 2 min ago
    Joined: Jan 8 2021 - 05:18
    Posts: 463
    Hi softwarejanitor!

    Why do you need it? The project looks a bit bulky, you can make a better simpler one with EPROM 2716, there is enough space and the board will be a bit bigger than the original ACI. And also need a jumper to switch pages if the author's PROM ACI Uncle Bernie's will ever be freely available. It's a couple of evenings' work. If you undertake to make I will give you suitable for editing CAD files of the project Misha Mdesk. But on the condition that it will be an open source project. What do you say?

    Offline
    Last seen: 9 hours 42 min ago
    Joined: Nov 9 2023 - 22:13
    Posts: 68
    Asking for clarification regarding the status of the GEN 2 ACI

    I am considering my options to build or buy an ACI card. I know Mike Newton is still selling one with PROMs, but that is the original design. Someone in canada is also selling some boards, also, probably the original design. Both have, I think, only cosmetic improvements, but none of the functional improvements. Re-Reading this thread, it seems to me that the GEN 2 kit is no longer available. Is that correct, Uncle Bernie? Or is there still a way to get it, or simply to order the PCB? Thanks!

    UPDATE: I see that assembled GEN 2 cards are available from Mike Newton, but that's a little steep for me and I'd rather build one rather than buying one entirely assembled.

    Offline
    Last seen: 2 days 15 hours ago
    Joined: Apr 1 2020 - 16:46
    Posts: 996
    About the Gen1 / Gen2 PCBs for the ACI

    In post #60, 'ebruchetz' wrote:

     

    " I am considering my options to build or buy an ACI card. "

     

    " I see that assembled GEN 2 cards are available from Mike Newton, but that's a little steep for me and I'd rather build one rather than buying one entirely assembled. "

     

    Uncle Bernie clarifies:

     

    If you read through this thread from the beginning, you can see that the original ACI has a lot of flaws, and does not work well enough to be a viable product. IMHO, it was this flawed ACI, and not the few flaws in the Apple-1 motherboard, which caused the phone at Apple, Inc. to ring off the hooks, desperate users asking Woz for help / advice, and to stop this distraction - Woz had to focus on designing the Apple II - the infamous "buyback" decision was made and the fate of the Apple-1 was sealed.

     

    So I can STRONGLY advise anyone not to build a verbatim copy of the original ACI, UNLESS you are willing to follow the instructions in this thread to modify it, by cutting traces and adding wires, to turn it at least into a GEN1 improved ACI.

     

    The GEN1 improved ACI fixes the volume indicator LED circuit (which almost never works in the original ACI, and if the LED ever lights up, it's giving wrong information fooling the user). It also fixes the setup/hold time issues for the 6502 ACI port read by adding a synchronizer flipflop - the spare one in the 74LS74 which Woz did not use. Gen1 also does not need the negative supply voltage anymore, so it can work with the Briel Replica-1. It also modifies the PROM sockets to accept either 256x4 or 512x4 PROMs. When using the former, you can only have the original ACI firmware as written by Woz back in Y1976. Which has no checksum - yet another annoyance / flaw. When you use 512x4 PROMs which add my 'extended formatting' page to Woz' work, you get checksums, full Apple II compatibility of cassette recordings, and my autoload and autostart feature. What GEN1 did not do is to change the comparator circuit. So a GEN1 improved ACI is still finicky with finding a proper volume setting of the cassette recorder to get successful read. But since the volume indicator LED circuit has been fixed, this adjustment is quick to do: just run the recording and slowly turn up the volume from 'silence' to the point where the LED lights up. Then turn it up a little bit more (some volume dials have numbers 0....9, give it one number more). With this procedure, I was satisfied with the playback reliability. It's not much worse than with other cassette interfaces of the time. But some users still complained that they had issues with insufficient volume from media players used in lieu of a  cassette recorder. Seems that this is related to hearing protection circuits: once some audio is being played too loud for a short while, the volume automatically is dialed down. Which then causes readback errors due to insufficent signal. I did not want to spend any more time on further investigations of these media player issues, just be aware that this effect exists.

     

    The fix seemed to be easy: just increase the sensitivity of the LM311 based TAPE IN comparator circuit. As a comparator has infinite gain (in the ideal case, good enough assumption for this discussion) the only thing that can be done to increase sensitivity is to decrease the hysteresis. I quickly found out that this is all but impossible with the original circuit, and this looks as if it's the most likely reason why Woz must have struggled with making this circuit work at all - there are signs all over his schematic that he experimented a lot, and the 'residues' of this struggle look weird, such as the futility to specify 1% resistors and the use of a negative supply voltage for the comparator - the latter hints that Woz likely may have tried many types of comparators, some of which may have needed the negative supply. As we know, none of these measures brought the playback reliability up too snuff. It's all but impossible with this circuit topology, which has no impedance balancing anymore on the differential comparator inputs, once the cassette recorder is plugged in.  Ironically, it does have impedance balancing when no audio cable is plugged into TAPE IN. But this is not the use case. I still wonder how Woz could not have seen that fatal flaw of his comparator circuit. Maybe he ain't no mixed signal or analog circuit designer. Being brilliant as a pure digital designer (which he undoubtly is) does not help much once the design task involves interfacing with the real world, which is analog in nature. This is where pure digital designers typically screw up.

     

    To fix this, I had to modify the comparator circuit to have impedance balancing in the use case (cassette recorder being plugged in). This mod allows me to reduce the hysteresis by a factor of 6 or so. Which makes the TAPE IN input much more sensitive and so even smaller volume settings will lead to a successful readback. Smaller volume settings also help with keeping tape noise and distortions low. The result is the "GEN2 improved ACI".

     

    Now, here is the problem: I never was satisfied with the GEN1 PCB as it was based on the open source Gerbers made available to the Apple-1 community by Misha Mdesk. His work on the Apple-1 motherboard and the ACI Gerbers is high quality, but reflects the Russian engineering credo that no effort shall be wasted to make any product look any nicer. Soviet Union products designed in that era generally look ugly because NO effort was expended for what in the West is called "Industrial Design". Sure, this adds effort and costs, but in the Capitalistic world, you want products which look more beautiful than the competitor's products. Consumers will buy the products which pleases their eyes better. In Communist planned economies, there is no such competition. So "Industrial Design" was not deemed necessary. Hope this explains why Misha did not try to faithfully reproduce every little cosmetic detail of the original Apple-1 PCB layouts. They work, but don't look exactly the same. This has been a point of criticism within the Apple-1 builder community, and so the American Logan Greer took Misha's "Russian" Gerbers and edited them to look much closer to the original layouts. You can find his Gerbers somewhere here on Applefritter.

     

    For me, when I developed the GEN2 ACI mods, I had no source of more faithful ACI Gerbers other than cutting a deal with Mike "Newton": he gave me his ACI Gerbers to put my mods in, and the deal was that I could produce them and put them into my kits, but the rights of the modified Gerbers would revert to him, and I could not sell them outside my kits.

     

    So the only way to get a "GEN2 improved ACI" PCB other than buying one of my famous Apple-1 IC kits is to get the "official" PCB from Mike "Newton" himself. Why he decided to only sell them as fully assembled ACIs, I don't know. I thought he would sell blank PCBs, too. I know he struggled with finding 512x4 PROM blanks at any acceptable price. Even I have almost none of those left. So even if he would decide to sell blank Gen2 PCBs, you still would struggle with getting the PROMs.

     

    Any prospective builder of a "GEN2 improved ACI" faces the problem how to source the blank PCB and the two PROMs, programmed with both the original ACI firmware page written by Woz and my added "extended format" page.

     

    Unless somebody would add these mods to some open source Gerbers of the ACI, the mods must be done by hand. This is possible - actually, I intend to write and publish instructions on how to do the Gen1 -> Gen2 mod, if there is enough demand for this. So far nobody asked me. Why I don't know. Maybe the owners of Gen1 improved ACIs are perfectly happy with their readback performance. And those few who had the issue with their media players not having enough signal, may have bought one of my famous IC kits containing a Gen2 improved PCB.

     

    So, if you want to do the Gen1->Gen2 mod, comment here in this thread. With enough demand, I would write and publish the modding instructions. Note that you could start with the original ACI if you first apply the GEN1 mod which is fully disclosed above in this thread.

     

    This leaves the problem with finding 512x4 PROM blanks at any reasonable price (buyer beware that most PROMs offered on alibaba or from other Chinese sources are programmed, worthless, pulls from electronic junk, which may have been relabled to appear uniform and new = fraud).

     

    If you are happy to find genuine PROM blanks, which will cost $$$, then you need a programmer to program them, which is tricky. You might need to buy an old programming system and then refurbish and recalibrate it. Recalibration may be tricky as some (like the Data I/O System 19) needs calibration fixtures which are unobtainable nowadays, 50 years later. If you understand mixed signal work, and have a well equipped lab, you may be able to improvise so you don't need the fixtures. I went that path to access some otherwise unaccessible signals from within the System 19 with the UniPak installed. This needs some RF knowledge on how to hook up coax cables such that the signals are not compromized. Typical hobbyists may get it wrong. And if the observed signal is wrong, then the calibration will be off target, and the PROMs may not be properly programmed and suffer from poor programming yield (losing the money you paid for them) or, worse, fuse growback.

     

    So how can we solve these issues to get more "GEN2 improved ACIs" into the Apple-1 community ?

     

    Comments invited !

     

    - Uncle Bernie

    Offline
    Last seen: 9 hours 42 min ago
    Joined: Nov 9 2023 - 22:13
    Posts: 68
    Thanks Uncle Bernie for all the details

    I for one would be interested in doing those Gen1 -> Gen2 mods. Hopefully I am not the only one :)

    Offline
    Last seen: 3 hours 55 min ago
    Joined: Jul 14 2012 - 07:54
    Posts: 111
    Unfortunately, all my GEN2

    Unfortunately, all my GEN2 bare boards have been used for assembled boards, since most of the folks need the ACIs in assembled form. However, I don't think I will order fresh batch soon since I still sit on inventory of some assembled GEN2 ACIs. In fact, I also have a small inventory of GEN1 board (made in the same quality as my Newton NTI motherboard) which I am trying to move  with either GEN1 A3/A4 PROM pairs I still have or send them as gift with the last few Apple 1 motherboards.

    Pages

    Log in or register to post comments