Idea for an A2048 "mode of operation" switch

Caution: Non registered users only see threads and messages in the currently selected language, which is determined by their browser. Please create an account and log in to see all content by default. This is a limitation of the forum software.


Also users that are not logged in can not create new threads. This is a, unfortunately needed, counter measure against spam. Please create an account and log in to start new threads.

Don't Panic. Please wash hands.
  • I recently bought the A2048 expansion for my A500 Rev 8A.1 and it's fantastic, but an idea for improvement that I could make myself came to my mind.


    The thing is, that now that my A500 has 2 MB chip RAM, alongside the obvious advantages it has become slightly less compatible (e.g. Shadow of the Beast won't run from a floppy).
    But I remembered that A2048 has that jumper that can "downgrade" it to a regular 512K trapdoor expansion. This unfortunately also requires reversing all the other steps from the upgrade (changing jumpers on the mobo, removing the wires for deactivating onboard RAM and passing additional signal etc.).


    But what if I created a little board, where all the affected jumper pads, including the jumper pins on the A2048, plus the additional wires on the mobo would connect? Then, with a few clever connections and a few transoptors I could design a circuit that can alternate the Amiga between "512 K onboard + 512 K slow" and "2 MB chip" configs with the flip of a switch, by making all connections as they should be in a given config. Does that make sense? Are there some caveats I should be aware of? Cheers!

  • As I read the detail for enabling 2MB ChipRAM, the decision to re-use the JP7 pad and pin path onto the expansion connector may be your solution. It appears that is the address line enabling the additional 1MB of RAM (0010.0000-001F.FFFF). If it's disconnected from to the expansion card, the RAM on the card won't respond, and you will have only 1MB ChipRAM. The size of that memory is detected by Kickstart memory test routines upon early power on.


    Assuming the above is correct, you might get away with a simple toggle switch on that line as long as the lines are short and it doesn't pick up any electronic noise. Otherwise, a bit of gate logic, connected to an actual switch, that allows or prevents the address line signal from leaving the A500->expansion would, in theory, do the same thing.

  • I don't think that a mere downgrade to 1 MB chip RAM will suffice. As I've read somewhere, the older games rely on that "512 KB chip + 512 KB slow" config pretty closely, and approximating that with 1 MB chip wouldn't be enough. Although, I don't know enough about the hardware to know how it differentiates between chip and slow RAM - maybe by using the EXTRAM signal? I think reversing the whole upgrade process back to a 512+512 config is a safer bet in terms of backwards compatibility. It would require quite a few connections though.

  • As I read the detail for enabling 2MB ChipRAM, the decision to re-use the JP7 pad and pin path onto the expansion connector may be your solution. It appears that is the address line enabling the additional 1MB of RAM (0010.0000-001F.FFFF).

    Almost - It's the multiplexed highest address line from the 2M Chipram Agnus, so technically, it's two address lines in one. As a result, you won't get 1M, but only 512k from the card. However, since I am combining the two RAS lines on the A2048, this may result in funny mirrors being mis-interpreted as actual RAM. The jumper on the A2048 would also have to be changed to avoid that.


    Further, I would not route any control signal through a toggle switch, as it will pick up noise and possibly malfunction because of that.


    Also, if a game title expects memory at $00c0.0000, downgrading chip ram won't help. You still need to map memory to that specific place.


    I would not spend too much time thinking about such a switch. Just using an ACA500plus will solve this problem, as it will map memory to the trapdoor area, and it will even slow it down cycle-exact to the speed of trapdoor memory if the CPU runs at 7MHz. This ensures full compatibility both in terms of memory location and access speed, which is variable depending on the number of colours that the screen is showing.


    When developing the A2048, I wanted modifications to be as simple as possible, and as reversible as possible. Adding an order of magnitude of complexity does not feel right while just attaching an ACA500plus does the same (and much more), being equally reversible by just removing the card or running it with cloaking device switched on. Yes, it's just a launch option in the startup-menu.

  • while just attaching an ACA500plus does the same (and much more), being equally reversible by just removing the card or running it with cloaking device switched on. Yes, it's just a launch option in the startup-menu.

    Oh! That's interesting. I do have ACA500Plus but I didn't realize that cloaking can do this because it's normally unavailable for me, as I also have ACA1221lc connected too. I pulled the ACA1221lc out and indeed I could use cloaking to pretend that there's 0,5 MB slow mem and Shadow of The Beast booted.


    That's nice but in such case, is there a way to deactivate ACA1221lc electrically somehow? Without the need to pull it out?

  • is there a way to deactivate ACA1221lc electrically somehow? Without the need to pull it out?

    Unfortunately, these small cards (ACA1221, ACA1221ec and ACA1221lc) don't have a way to deactivate; they are hard-wired to take over the bus, because they are mainly developed for the A1200, where it does not make much sense to switch from a 68020 back to a 68020 CPU :-)


    Only on the bigger cards, I had enough logic space to implement switching off. The ACA1220, ACA1232 and ACA1233 had this as a jumper-option, and starting with the ACA1233n, it's a pure software option. This is of course also in the upcoming ACA1234, which cannot only switch off in software, but also switch back on without power-cycling (the ACA1233n needs a power cycle to return to 68030 operation).

  • Unfortunately, these small cards (ACA1221, ACA1221ec and ACA1221lc) don't have a way to deactivate; [....] Only on the bigger cards, I had enough logic space to implement switching off.

    While I don't have access to the bigger cards (and can't afford them in the aftermarket), what if I made a little "pass-through" board with a male and female A1200 accelerator connector and a pair of transoptors, controlled by a manual switch, that would cut off the +12V and -12V lines going to the ACA1221lc? Would this work as a switcher? Sorry for the wall of questions BTW :-)


    Or to rephrase my question: would cutting the +12V and -12V lines from the ACA1221lc be enough to safely deactivate it?

  • Or to rephrase my question: would cutting the +12V and -12V lines from the ACA1221lc be enough to safely deactivate it?

    The ACA1221lc runs exclusively off the 5V rail. And no, it's not enough to just cut power, as the bus would still be blocked.


    what if I made a little "pass-through" board with a male and female A1200 accelerator connector and a pair of transoptors, controlled by a manual switch, that would cut off the +12V and -12V lines going to the ACA1221lc? Would this work as a switcher?

    A switcher would have to isolate the whole bus, but keep the ACA1221lc powered. That would be the complete 24-bit address bus, the 32-bit data bus, 7 bus control lines (14MHz clock can be left connected). The address bus and control lines are uni-directional, but data bus would have to be buffered both ways. Given the rather slow speed of the A1200/ACA500plus side (14MHz 68020 bus), propagation delays of such a unit would probably be negligible. I'd have to double-check the source code of hte ACA1221lc CPLD; maybe you can trick more signals into going tri-state by keeping the reset line low - I remember writing this down in the ACA2000 ideas sheet, which was started around the time when I finalized the ACA1221lc. So the number of components required for such a switcher can probably be lower than "eight driver chips of 8 bits each".

  • This turned out to be simpler than I thought - I really have implemented going tri-state for most of the signals when reset is pulled. It's just two control signals that need to be separated for the 68(s)ec000 CPU on the ACA500plus to continue to work.


    I have ordered sample PCBs of this thing to see if it works. If it does, it'll be a nice addition to the portfolio, as it takes one feature away from the ACA1234 that it has over the ACA1221lc. This may reduce demand for the ACA1234 - and that's a good thing, given the limited supply.

  • Works, and on the mechanical side, the ACA1221lc is even in a nicer spot, as it can't bend down that much. Not sure how this will fit in the cases that some people have built, but it'll be much better when I'm finished with the design:

    This is really just a proof-of-concept, as I would not sell the thing with a physical switch. It was just the fastest way to test it. Next steps:


    * make it soft-switchable

    * check if other cards can also work, maybe with a small update to the circuit: ACA1221ec, ACA1221, ACA1220, ACA1232 and ACA1233 (without the "n") are candidates.