• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Powerbook 540c Resurrection

I just made myself a ‘printer cable’ (crossover cable) with Mini-DIN8 plugs and 3m of nine-wire cable. I was delighted when it worked - my Powerbook G3 Wallstreet (9.2.1) and my Powerbook 100 (7.1) can now see each other, and read each other’s files!

I must admit, I was baffled by how I shared just one folder on each, yet the entire hard drive was available to browse on the other, and even any other connected drives. But that seems familiar, I think I remember similar ‘accidental total access’ across a school Phonenet network, about 30 years ago.
If you connect as a guest then it only makes available the folders you’ve shared.
 
that is totally cool! nice job on the homemade crossover cable. I have been diving into rascsi - I have 2 of them: 1 connected to my 520 and another connected to a Classic II. In addition to emulating multiple scsi devices, the raspberry pi's also emulate a daynaport scsi2ethernet adapter....and wifi, for that matter, which provides network connectivity through the scsi port. And since the raspberry pi's are running linux, they can run netatalk which is an apple file sharing server for linux. This works really well, allowing the macs to share files through the pi's shared folders.
 
I bring this up again for some questions for those who did that RAm transplantation mod..
my 540c RAM board looks like this ( its only the basic 8 MB) :

ram.jpg

you can solder 16 chips on it, the actual installed now reads 444Y KM48C2100ALLT-7

I have two PB 3400c RAM spare that I dont need and can salvage for this, its 32 MB..of course the 3400 is IDE based and a bit newer, that chip reads KM48V2104CS-L6. I also noticed that board has some ICs on it, too ( under the connector)
I wonder if I can use those.

IMG_1119-1.jpg
 
The small difference in package size would not matter (you can see that the 540c RAM card has long pads to accommodate a narrower chip). However, the 3400c RAM card has 3.3V chips, but the 540c needs 5V chips. You can do what I did and find some old 5V desktop EDO/FPM RAM sticks on eBay and harvest the chips from those.

TLDR: It won’t work but you have other options.
 
Nice! I haven't replaced the PRAM batts from my 500s, yet, I didn't know where to find them...I searched AppleMacParts, but it looks like I'm yielding the wrong sources still! I've decided my PBs will probably be anchored to my desk anyways, so it might not be worth the trouble looking for these myself? Sounds like yours could be NOS OEM? I'm wondering how old and how long they could last


You really attempted this? I was reading through his steps, and wanted to try it out myself, but never got around to picking up the RAM. I've been trying to find higher capacity RAM chips to try this out; I assume the chips on the RAM board are 2MB a piece, so if I could find 4MB chips, one could have 32MB each side for a total of 64MB.

Edit: congrats on the modification! Good to hear it worked out! I'll need to give it a go myself when I get a chance.

So that's the other thing, if it's even possible to detect higher capacity. I believe someone has tried adding more RAM through the PPC daughterboard, which NewerTech has done before with the NUPowr 183c, but finding one of those, much less with on-board RAM, feels next to impossible these days...my new Holy Grail. Anyways, if you're up for a read, this guy hacked a 183c to incorporate a total of 64MB (including RAM module...I think this daughterboard didn't have RAM? I don't understand from the translation though) and overclocked the 603 to 200MHz (had to build a custom cooling fan on the stiffener though):

http://itoi.jp/pb550-5.html

Translated version:

https://translate.google.com/translate?hl=en&sl=ja&u=http://itoi.jp/pb550-5.html&prev=search

Hacked NUpowr 183c from the website above:

View attachment 16571

View attachment 16572
I was looking at this link again today. The writer (Itoi) doesn't actually explain how he created his custom RAM module, but I was able to find a photo of it elsewhere on his site:

pb-18.jpg

OK, so you can't really tell much from the photo. But reading further I understood that Itoi followed a guide written by Toyoki of PHENiX, and that original guide for creating a 64MB module is here: https://web.archive.org/web/2002021....org/phenix/laboratory/memory_64mb/index.html
Use Google to translate into English.

Basically, he is breaking out the unused RAS lines on the CPU card's PBX IC and sending three of them over the unused pins 28, 29 and 30 of the memory card connector to get to 56MB. He says that a fourth wire, to get to 64MB, needs to be run separately. He is stacking modules and then running the extra RAS lines where needed.

02b.jpg

If we wanted to do this with a 040 CPU card, we would need to know which pins of the Pratt IC are for those extra RAS lines. AFAIK there isn't any documentation or schematic publicly available, but we can easily trace at least the two lines which go to the onboard 4MB of RAM, and with this info get a 48MB RAM card working.
 
Last edited:
I was looking at this link again today. The writer (Itoi) doesn't actually explain how he created his custom RAM module, but I was able to find a photo of it elsewhere on his site:

View attachment 77527

OK, so you can't really tell much from the photo. But reading further I understood that Itoi followed a guide written by Toyoki of PHENiX, and that original guide for creating a 64MB module is here: https://web.archive.org/web/2002021....org/phenix/laboratory/memory_64mb/index.html
Use Google to translate into English.

Basically, he is breaking out the unused RAS lines on the CPU card's PBX IC and sending three of them over the unused pins 28, 29 and 30 of the memory card connector to get to 56MB. He says that a fourth wire, to get to 64MB, needs to be run separately. He is stacking modules and then running the extra RAS lines where needed.

View attachment 77528

If we wanted to do this with a 040 CPU card, we would need to know which pins of the Pratt IC are for those extra RAS lines. AFAIK there isn't any documentation or schematic publicly available, but we can easily trace at least the two lines which go to the onboard 4MB of RAM, and with this info get a 48MB RAM card working.

This has been on my mind for ages, so tonight I finally modded one of my homemade 32MB RAM cards (the one I showed in post #37)
as in the following photo.

IMG_6473.JPG

I followed Toyoki's method, and piggybacked 4*2MB chips on top of one of the banks, except for pin 7 (/RAS). I then used enamel wire to join those pins together and run this back to the CPU card. I desoldered the onboard 4MB RAM, and connected the lead up to one of the /RAS pads.

I tried to route the new /RAS line through pin 30 of the RAM card connector, because Toyoki claimed that pins 28, 29 and 30 are unused on the connector. But they *do* seem to be used on the original 040 card; at least pins 28 and 30 definitely go back to the Pratt IC memory controller. So I just ran a flying wire instead.

IMG_6474.JPG

Success! This gets us 40MB of RAM:

IMG_6476.JPG

It's only 4MB extra, but I'm pretty happy about it :) Brings it in line with the Duo 280.

I don't know if we can go beyond 40MB. It could be possible if:

– there are some more /RAS lines on the Pratt IC;
– we can address higher density chips.
 
Last edited:
Brings it in line with the Duo 280.
Is "it" the subject of this thread - the PowerBook 540c? Oh wait, the top of the display in the photo says "PowerBook 520c".

The Universal Tables seem to suggest that RAM could be up to 48 MB? 6 banks of 8 MB - assuming the following:
  • The ROM is "1994-05 - B6909089 - PowerBook 520 520c 540 540c".
  • The only ProductInfo that uses the PrattDecoder, InfoBlackbird, is the one that corresponds to the 520c.
  • The RamBankInfo pointed to by RamInfoPtr contains meaningful information.
  • The hardware allows it.
  • The firmware detects it.
I suppose one should look at the supermario source code to see how RamInfoPtr gets used.

I don't think MAME supports emulating the PowerBook 520c so you can't use that to test if the firmware can detect more RAM.

I've attached the Rom Fiend output for the ROM (uses my forks of HexFiend, rom_fiend, and 68K-mac-rom-maps. I'm still working on rom_fiend, so the fork is not up to date.
 

Attachments

Is "it" the subject of this thread - the PowerBook 540c? Oh wait, the top of the display in the photo says "PowerBook 520c".

“It” is the PowerBook 520/540. I threw the modded CPU card into my 520c chassis for the experiment, but there’s no difference between a 540c. They have same ROMs and machine ID. The CPU card is the same electronically, it’s just a different speed grade.

The Universal Tables seem to suggest that RAM could be up to 48 MB? 6 banks of 8 MB - assuming the following:
  • The ROM is "1994-05 - B6909089 - PowerBook 520 520c 540 540c".
  • The only ProductInfo that uses the PrattDecoder, InfoBlackbird, is the one that corresponds to the 520c.
  • The RamBankInfo pointed to by RamInfoPtr contains meaningful information.
  • The hardware allows it.
  • The firmware detects it.
I suppose one should look at the supermario source code to see how RamInfoPtr gets used.

I don't think MAME supports emulating the PowerBook 520c so you can't use that to test if the firmware can detect more RAM.

I've attached the Rom Fiend output for the ROM (uses my forks of HexFiend, rom_fiend, and 68K-mac-rom-maps. I'm still working on rom_fiend, so the fork is not up to date.

Nice sleuthing, I’ll look for another /RAS line on the Pratt.
 
@joevt Some relevant data from the 520/540 Dev Note:

The RAM array is located in the system memory map between addresses $0000 0000 and $02FF FFFF

I believe this is the 48MB array you referenced in the ROM code, right?

The following refers to the RAM card connector:

DRAM_RAS_L[2–5] Row address select signals for up to four banks of DRAM. (The first two banks, selected by DRAM_RAS_L[1:0], reside on the CPU and memory module.)

This confirms the existence of 6* RAS signals, of which 2* are on the CPU card. Only 1* of these is used for the onboard 4MB DRAM, so the other probably goes nowhere. I’ll have to find it - it’s probably next to the other 5 on the Pratt chip.
 
@joevt Some relevant data from the 520/540 Dev Note:



I believe this is the 48MB array you referenced in the ROM code, right?

The following refers to the RAM card connector:



This confirms the existence of 6* RAS signals, of which 2* are on the CPU card. Only 1* of these is used for the onboard 4MB DRAM, so the other probably goes nowhere. I’ll have to find it - it’s probably next to the other 5 on the Pratt chip.


That $02ff ffff matches the 0x3000000 in the Universal Tables in the ROM.
Code:
0A7A60      RamInfoPtr -> RamBankInfo offset    -> 0xA892C
0A892C      MinBankSize    0x200000

0A8930      HighBankStart    0x0
0A8934      HighBankEnd    0x800000

0A8938      NextBankStart    0x800000
0A893C      NextBankEnd    0x1000000

0A8940      NextBankStart    0x1000000
0A8944      NextBankEnd    0x1800000

0A8948      NextBankStart    0x1800000
0A894C      NextBankEnd    0x2000000

0A8950      NextBankStart    0x2000000
0A8954      NextBankEnd    0x2800000

0A8958      NextBankStart    0x2800000
0A895C      NextBankEnd    0x3000000

0A8960      NextBankStart    end of table(s) (0xFFFFFFFF)
 
That $02ff ffff matches the 0x3000000 in the Universal Tables in the ROM.
Code:
0A7A60      RamInfoPtr -> RamBankInfo offset    -> 0xA892C
0A892C      MinBankSize    0x200000

0A8930      HighBankStart    0x0
0A8934      HighBankEnd    0x800000

0A8938      NextBankStart    0x800000
0A893C      NextBankEnd    0x1000000

0A8940      NextBankStart    0x1000000
0A8944      NextBankEnd    0x1800000

0A8948      NextBankStart    0x1800000
0A894C      NextBankEnd    0x2000000

0A8950      NextBankStart    0x2000000
0A8954      NextBankEnd    0x2800000

0A8958      NextBankStart    0x2800000
0A895C      NextBankEnd    0x3000000

0A8960      NextBankStart    end of table(s) (0xFFFFFFFF)

Cool, this is coming together.

The other '040 PowerBook that uses the Pratt IC is the 190 Series (I don't think the Duo 280 does). The 190 officially maxes out at either 36MB or 40MB RAM, depending on whether it has 4MB or 8MB built-in. Now, I studied some photos of its logicboard: the onboard chips are 1M x 16Bit, therefore 2 chips per bank. That means it uses *both* RAS0 and RAS1 signals in the 8MB onboard configuration.

Who has a spare 190 board who could help me trace those RAS lines back to the Pratt? :)
 
Cool, this is coming together.

The other '040 PowerBook that uses the Pratt IC is the 190 Series (I don't think the Duo 280 does). The 190 officially maxes out at either 36MB or 40MB RAM, depending on whether it has 4MB or 8MB built-in. Now, I studied some photos of its logicboard: the onboard chips are 1M x 16Bit, therefore 2 chips per bank. That means it uses *both* RAS0 and RAS1 signals in the 8MB onboard configuration.

Who has a spare 190 board who could help me trace those RAS lines back to the Pratt? :)

The 190 ROM is later than 520/540. I think it contain Universal Tables for 520/540 but some info has changed.

I'm not sure which ProductInfo corresponds to the 190 and which to the 520/540. A dump of the CPU ID register and the lowmem globals using MacsBug or whatever will show which ProductInfo is being chosen. See this thread: #20
Maybe @noglin has a utility to dump the info.
 

Attachments

Done it. 48MB in a Blackbird.

IMG_6521.JPG

IMG_6518.JPG

RAS[1] is indeed an unused pin on the 500 Series, someone kindly helped me to locate it by beeping out their 190 board. It's right inbetween RAS[0] (onboard RAM) and RAS[2:5] (RAM expansion) which is pretty logical.

I'm going to tidy up my work and try to route the RAS signals through the connector, I did this in a rush just to prove it works. I hope to later design a new PCB with pads for 16MB onboard RAM, essentially the Reloaded concept but just for the CPU card.
 
Last edited:
I hope to later design a new PCB with pads for 16MB onboard RAM, essentially the Reloaded concept but just for the CPU card.
Ooh, that would be fantastic. I have a 520 and a 550 that I'm looking to deck out. The 550 has been upgraded to PPC so I have the original full 040 for the 520, but I would actually like to downgrade the 550 to 68k. A Reloaded CPU card would be a great solution.
 
Excited to the see the writeup on the ram mod. I ended up upgrading 2 cpu boards to full 040's this past weekend. I still need to change the crystal.and see if I can get 40mhz stable on these cards. BIG Thanks to the guys that did this mod previously!!! @croissantking and @jmacz. I had to try it since y'all had laid out all the ground work for it!.Mucho Kuddos!!!
 

Attachments

  • 17617016799654292696140279707415.jpg
    17617016799654292696140279707415.jpg
    1.4 MB · Views: 18
Ooh, that would be fantastic. I have a 520 and a 550 that I'm looking to deck out. The 550 has been upgraded to PPC so I have the original full 040 for the 520, but I would actually like to downgrade the 550 to 68k. A Reloaded CPU card would be a great solution.
Out of curiosity, have you tried using the full 040 card from your 520 in the 550? See I have a 540 and a 550 prototype which has a 167mhz 603e upgrade card in it, but there’s no sound. It doesn’t work at all with my 540’s daughter card. Me and @croissantking have discussed this and we believe it’s the ROMs on the 540 card that’d needs upgrading to work with the 550, but I’m curious as to if you’ve tried it and if so did it work?
 
Out of curiosity, have you tried using the full 040 card from your 520 in the 550? See I have a 540 and a 550 prototype which has a 167mhz 603e upgrade card in it, but there’s no sound. It doesn’t work at all with my 540’s daughter card. Me and @croissantking have discussed this and we believe it’s the ROMs on the 540 card that’d needs upgrading to work with the 550, but I’m curious as to if you’ve tried it and if so did it work?
Isn’t @pax saying that the full 040 card they have originally came from their 550c, but that they moved it to their 520 when they upgraded the former with a PPC card?
 
Back
Top