• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Switch between 128K & 512K RAM

Mac128

Well-known member
Since a 128K & 512K operate differently, some software doesn't work properly under a 512K. Plus I do a lot of testing between the two machines which usually involves a logicboard swap rather than dragging another Mac out. So, I've been thinking ... I have an original 128K board that has been upgraded to 512K RAM via the Larry Pina described method, not the Tom Lee method. Larry Pina says on p. 183 of Macintosh Repair and Upgrade Secrets that after installing 512K RAM, the Mac will continue to act as a 128K until the mux. decoder is installed. Since the mux. board only attaches by 5 pins at location E3 on the original 128K board, it seems like I could install a simple 5x dip switch between it and the logicboard and with the flip of a switch go back and forth between having 128K & 512K RAM.

I would appreciate anyone with more knowledge in this area to weigh in on whether this is sound reasoning, or if there is some consideration I am overlooking.

 

JDW

Well-known member
While I must defer to Tom Lee on the precise answer to your RAM switching question, I must admit that I've thought along the same lines as you with regard to the ROM. I'd love to have an external switch that would allow me to use the 64k ROM or the 128k ROM (obviously, only selectable when the machine is turned off).

 

Charlieman

Well-known member
JDW and ROM switching:

Shouldn't be too hard to implement. Similar hacks were common in the Apple II world in the 1980s to switch the Disk II card ROM or Language Card between different ROMs.

Mac128 and RAM switching:

I suspect that there may be a very simple way to implement this hack, but I'll wait for Tom Lee to comment.

My reservations are that any switch mechanism and associated cables will generate noise on a sensitive circuit. The Apple II hacks were implemented on a much slower computer.

See also: http://www.folklore.org/StoryView.py?project=Macintosh&story=PC_Board_Esthetics.txt&topic=Hardware%20Design&sortOrder=Sort%20by%20Date&detail=medium

 

tomlee59

Well-known member
That should work. Just keep all connections as short as possible to avoid the sorts of problems Charlieman alluded to.

There's almost certainly a way to get by with fewer than five switches, but that would require work. :) And five is not a bad number. Keep us posted as to your progress.

 

Mac128

Well-known member
All good advice ... yeah, five seemed tolerable, but 56 pins on the ROMs strike me as extremely troublesome. And as you point out, I may be able to do it with one or two pins, by limiting the initial re-routing.

If I were doing the RAM mod myself I would prefer Tom Lee's method as the new chips are simply soldered to the old and is not only less work than removing the old, but also reversible. I would assume the same principle applies to your method as well in that the new RAM without the Mux board in circuit is undetected, or does the piggy-backing change the equation in yours?

 

JDW

Well-known member
The ROM-switch solution I had envisioned centered on a custom made circuit board that would simply plug into the two ROM sockets. That custom board would then have two pairs of sockets on it, allowing you to plug in the two 64k ROMs and the two 128k ROMs. It would then have circuitry that would "digitally switch" between the two ROMs by a single button press external to the machine. The switch mechanism could either be momentary or locking, which would affect how the controller on the customer board would have to treat the switch.

Sure, it's easier in terms of "development" to switch a few dozen DIP switches. But its a pain in the back side to do that every time you want to switch ROMs. It's easier to perform the switch with a single button press. But then, such would need to be done when the Mac is powered off. And yet, if it is a digital switch, how would you "easily" power the custom board if the machine is switched off?

So there are tradeoffs that need to be considered. Is it supposed to be "easy to develop" or "easy to use"?

 

Mac128

Well-known member
That's way outta my league JDW. Give me a little solder, some mechanical switches, a little wire ... that I can do.

I'm actually hoping per Tom Lee's response that I can get it down to 1 or two switches, but either way, I've seen some multi-switch dips that will toggle between up to 6 circuits at once. So that's what I had in mind since I really don't want to have to flip 5 switches every-time either. I also need to figure out where to put the switch without modifying the case. I was thinking run the wires through the vent under the floppy drive and bolt it through the slats. Either way, I'm gonna have to introduce another connection to disconnect the wires in order to remove the logic board.

But, you get that ROM circuit board going and I'll buy one for sure! It'll go great with my RAM switch ;-)

 

JDW

Well-known member
I don't know if its even a practical idea. I was just speculating. I do know how to program assembly code for Microchip's PIC microcontrollers. I've only run them at the standard 4MHz though. I suspect I would have to drive it at twice the clock of the Macintosh (16MHz) for the timing to be right. And basically, the PIC would act as the switcher. That's what I was thinking anyway.

I would love to hear the thoughts of others on this idea though. Because the concept is simple in that it would theoretically allow the user to simply press ONE BUTTON to switch between the 64k ROM and the 128k ROM. And since there are real benefits to having both on the same machine, what an interface this would be! But if you have to switch multiple tiny DIP switches, it's a hassle. And what if you missed switching a switch or two? Would that harm the logic board when you switched on the machine? These things need to be taken into consideration for whatever solution is ultimately implemented.

 

Mac128

Well-known member
chris, never fear, when I say bolt it on, I meant non-destructively. I have to secure it after-all. The bolts run through the vents too and then the nuts on the opposite side secure it tightly to the case, but completely removable.

 

Mac128

Well-known member
I did a trace map of the 128K board from the stock empty pins where the Mux. mounts on my 512K upgrade.

http://farm2.static.flickr.com/1056/1459852804_2e660cab9b_o.png (HUGE)

http://farm2.static.flickr.com/1056/1459852804_c660d10467.jpg(small)

I too was concerned as JDW was that I might cause some damage if I did not flip the right combinations of dips in determining just what pins I actually needed. It appears from this that the two leads I should be concerned with are the red and blue paths coming off the 68K chip itself. Perhaps If I simply disconnect the red or blue, then like a light switch, if I do not send the voltage out, then I don't have to worry about disconnecting the rest of the network.

Confirmation would be appreciated. And, anybody got any idea which is the "out" pin and which is the "in" on the 68K chip if indeed it works that way?

 

bigD

Well-known member
Not to hijack the thread, but how does a 512K Mac operate differently than a 128K?

I ask only because I have a 512K and haven't yet found any software that doesn't run on it. Just curious to know.

 

Mac128

Well-known member
I'll skip the obvious flaw in your statement, that you haven't found ANY software that won't run on it. I'll bet OS X won't ... ;-)

Most 128K will run on a 512K. Some will not recognize the additional RAM and load anyway running as if it were a 128K. Many will crash because of the presence of additional RAM, i.e. not expecting it. Also, most software that runs on and written for a 128K uses a different method than that written to take advantage of the greater 512K RAM. In particular, the 128K swaps out chunks of code which it reads and writes from the disk and calls from ROM, so that software is optimized for that process and may not work as well with more RAM.

I'm sure others have a better perspective on this. My main reason for wanting to switch between RAM is because I prefer to work within the limitations of the 128K, but recognize the need for 512K RAM from time to time, despite what I may have said above.

 

bigD

Well-known member
I'll skip the obvious flaw in your statement, that you haven't found ANY software that won't run on it. I'll bet OS X won't ... ;-)
Heh - I woke up this morning thinking that someone would probably bust me on my less than precise language.

Interesting. It didn't occur to me that the software would be any different. Makes sense.

 

Kallikak

Well-known member
Can you give some specific examples of software that crashes with 512K of RAM but works with 128K? (Both using the 64K ROMs of course.) It seems very unlikely to me, so I'd like to see it happen and maybe work out just why. From a Mac Toolbox perspective, you make a call that allocates memory and it either works or doesn't. I don't know why someone writing for a 128K mac would have a call checking the total available RAM - there was only the one size and its not like they had to make sure there was not only 64K or something... (especially given the lack of multitasking).

Ken

 

Mac128

Well-known member
Nope, not off the top of my head. Just seen it happen in the past. And I don't think the 128K software is making a call checking for RAM. It was explained to me on some old boards once upon a time when this came up, that the 512K allowed more of the program to reside in RAM than the software allowed and the 128K software did not know where to find it as it wasn't in the expected location. Then there was something about not writing to disk anything above a certain RAM address ... something that could happen on sloppy programs that did not take into account the availability of addition RAM, or so I was told. If this is in error about my understanding of this, let me know, Otherwise, I will keep an eye out for the software that does not seem to work properly under 512K. It would mainly be the very early stuff I have so easy enough to track down when I have some time.

 

trag

Well-known member
Many, if not all, ROM chips have a Chip Enable pin. This also applies to EPROM, EEPROM and Flash. When Chip Enable is low (at or near ground) the chip is activated. When Chip Enable is high (at or near Vdd, 5V in this case) the chip is disabled and all the outputs go to high impedance--they become mostly invisible to the rest of the machine.

So, to do a one switch ROM changer, you would install both sets of ROM in parallel and connect a switch to the CEs. There's a name for the type of switch, but I forget what it is. It has a common and two poles. In one position it connects pole1 to common. In the other position it connects pole2 to common. Use a few hundred ohms of resistance to 5V as the common. Tie each of the CE pins to Ground through something like a 4Kohm resistor or so. That way, they're grounded unless the switch connects them to 5V. The one connected to 5V is disabled and the other one is activated. Voila, one switch changing of the ROMs.

Still, you'll need a way to mount them, but you could just piggy-back them on top of each other, as long as the CE pins are not connected together.

 
Top