• 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.

PowerBook 1400 series ROM and RAM tidbits

croissantking

Well-known member
This week I've been getting my PowerBook 1400c to work with a 166MHz CPU card. To do this, I installed newer ROMs from a donor 166 board, and this has been successful.

While I had the 2 revisions of ROM chips off the boards, I dumped their contents with my T48 programmer, and have attached here if anyone is interested in comparing their contents (@David Cook maybe?).

Meanwhile the donor board, which now has the old ROMs, has a problem that I'd be interested in resolving. It won't let me install more than 56MB RAM. If I try to fit 64MB, it will display an error during extensions load - 'The built-in memory test has detected a problem' - and then disable some of the memory. The thing is, it's not one single RAM module it has an issue with, because all memory works fine so long as it doesn't need to count past 56MB. And the same modules all work together in my other board for 64MB total.

I noted this advisory on everymac.com:
A maximum of 56 MB of RAM is possible with the 16 MB of onboard RAM, one 24 MB memory card and a second 16 MB memory card. Curiously, unlike the slower PowerBook 1400cs/117 and 1400c/117, installing two 24 MB memory cards will not work and will result in a memory test failure at startup.
Has anyone else experienced this issue?

Both boards are recapped.
 

Attachments

  • PowerBook 1400 series ROMS.zip
    4.5 MB · Views: 8
Last edited:

Snial

Well-known member
Curious. My PB1400c/166 (sorry old bean), has 56MB from 8MB Mobo RAM + 8MB System RAM + 16MB +24MB user RAM modules. So, I can't really prove or fix that issue (I do have another 8MB System RAM module and there are 4 spaces for RAM on my 24MB module, or maybe the 16MB one. But I don't know if the 8MB is reliable anyway. I'll have to swap the System modules to check that).
 

eharmon

Well-known member
Interesting, the 166MHz ROM is checksum 838C0831. I don't think that's a previously known dump, at least!
 

greystash

Well-known member
I haven't done what you have, but if it helps I have 64MB and here's my ROM revision
 

Attachments

  • 1400.jpg
    1400.jpg
    79.9 KB · Views: 17

Trash80toHP_Mini

NIGHT STALKER
Are you swapping out the "factory" memory card (MoBo RAM) as well as the "user" memory card? I'd say so given the everymac quote/link in your IP, but it never hurts to ask the basic questions just in case. ;)
 

joevt

Well-known member
Has anyone disassembled the ROMs?
Not really.

You can combine two rom chip dumps into a ROM file, then use tbxi to dump all the resources and parts of each ROM file.
Code:
cd "/Volumes/Work/Open Firmware and Name Registry/ROM Apple/PowerBook 1400 series ROMs"

combine_rom () {
	local part_high="$1"
	local part_low="$2"
	xxd -c 2 -e "$part_high" | sed -E 's/.{8}: (.{4}) .*/\1/' > "/tmp/part_high.txt"
	xxd -c 2 -e "$part_low" | sed -E 's/.{8}: (.{4}) .*/\1/' > "/tmp/part_low.txt"
	paste "/tmp/part_high.txt" "/tmp/part_low.txt" | xxd -p -r
}

combine_rom "117+133/341S0204 High.BIN" "117+133/341S0203 Low.BIN" > "117+133/341S0203-4.rom"
xxd "117+133/341S0203-4.rom" > "117+133/341S0203-4.txt"

combine_rom "166/341S0365 High.BIN" "166/341S0364 Low.BIN" > "166/341S0364-5.rom"
xxd "166/341S0364-5.rom" > "166/341S0364-5.txt"

bbdiff "117+133/341S0203-4.txt" "166/341S0364-5.txt"

tbxi dump "117+133/341S0203-4.rom"
supermario
powerpc

tbxi dump "166/341S0364-5.rom"
supermario
powerpc

bbdiff "117+133/341S0203-4.rom.src" "166/341S0364-5.rom.src"

diff -rl -x '.DS_Store' "117+133/341S0203-4.rom.src" "166/341S0364-5.rom.src"
Binary files 117+133/341S0203-4.rom.src/ExceptionTable and 166/341S0364-5.rom.src/ExceptionTable differ
Binary files 117+133/341S0203-4.rom.src/Mac68KROM and 166/341S0364-5.rom.src/Mac68KROM differ
Binary files 117+133/341S0203-4.rom.src/Mac68KROM.src/DeclData and 166/341S0364-5.rom.src/Mac68KROM.src/DeclData differ
Binary files 117+133/341S0203-4.rom.src/Mac68KROM.src/MainCode and 166/341S0364-5.rom.src/Mac68KROM.src/MainCode differ
Binary files 117+133/341S0203-4.rom.src/Mac68KROM.src/Rsrc/DRVR_-20000_PCCardSRAMDisk and 166/341S0364-5.rom.src/Mac68KROM.src/Rsrc/DRVR_-20000_PCCardSRAMDisk differ
Binary files 117+133/341S0203-4.rom.src/Mac68KROM.src/Rsrc/DRVR_4_Sony and 166/341S0364-5.rom.src/Mac68KROM.src/Rsrc/DRVR_4_Sony differ

Then you would disassemble the different parts.
 

croissantking

Well-known member
Are you swapping out the "factory" memory card (MoBo RAM) as well as the "user" memory card? I'd say so given the everymac quote/link in your IP, but it never hurts to ask the basic questions just in case. ;)
Yep, that’s right. I only have one factory memory card between the two boards so I have to.
 

croissantking

Well-known member
Also a Mac OS X terminal command? I thought it was just the location of the boot file from the Open Firmware command line.

xxd creates a hex dump of a file, OK got that.

Aaaah, a BBEdit command line tool.

-cheers from Julz
If you manage it, do upload the files here. I am quite curious to poke around.
 

Trash80toHP_Mini

NIGHT STALKER
The thing is, it's not one single RAM module it has an issue with, because all memory works fine so long as it doesn't need to count past 56MB. And the same modules all work together in my other board for 64MB total.
Second question, does the donor machine boot with only that factory card installed. If so, how much memory is reported?

Sounds more like a CAS/RAS line problem on the board rather than a problem with the ROM to me. Paging @trag
 

joevt

Well-known member
Also a Mac OS X terminal command? I thought it was just the location of the boot file from the Open Firmware command line.
I am referring to @elliotnunn 's tbxi project on GitHub. https://github.com/elliotnunn/tbxi

xxd creates a hex dump of a file, OK got that.
Yes. The xxd commands (with sed) in the combine_rom function are used to flip pairs of bytes in the two input files. The paste command combines two hex bytes from the high file with two hex bytes from the low file.
xxd -p -r converts the result hex into a binary file.

I think the commands should work in macOS and Linux.

Aaaah, a BBEdit command line tool.
I execute the commands in a BBEdit worksheet. You can use Terminal.app to enter the command and some other program to compare hex or text dumps.
 

croissantking

Well-known member
Second question, does the donor machine boot with only that factory card installed. If so, how much memory is reported?

Yes. My factory card is 8MB, so 16MB total is reported when installed.

Sounds more like a CAS/RAS line problem on the board rather than a problem with the ROM to me. Paging @trag

Agree, since swapping ROMs from one board to another did not change the behaviour of the individual boards; i.e. the problem did not move with the ROMs.
 

3lectr1cPPC

Well-known member
Only the 117 was sold in a 12MB standard config. What sizes are your two user cards?
Sorry, got confused.
The 1400 has 12MB on board IIRC. Maybe I’m wrong and it’s 8.
Factory card brings it up to 16 (or 12 or 16 if I’m wrong and it’s 8MB onboard)
And user cards take care of the other 48
 

croissantking

Well-known member
Sorry, got confused.
The 1400 has 12MB on board IIRC. Maybe I’m wrong and it’s 8.
Factory card brings it up to 16 (or 12 or 16 if I’m wrong and it’s 8MB onboard)
And user cards take care of the other 48
All 1400s have 8MB on board, and came with either a 4MB or 8MB factory card in addition to this.
 

Trash80toHP_Mini

NIGHT STALKER
Is there a memory test that'll let you know which 4MB block is borken? I got confused, I thought you'd said 12MB reported, but you said 16MB shows up. Sounds like user slot lines are the culprit, taking down 8MB somewhere, probably on the bottom card?

Again, what are the capacities of your two user cards?
 
Last edited:

croissantking

Well-known member
Is there a memory test that'll let you know which 4MB block is borken?

This is a good idea but I don’t know how to…

I got confused, I thought you'd said 12MB reported, but you said 16MB shows up. Sounds like user slot lines are the culprit, taking down 8MB somewhere, probably on the bottom card?

The thing is that I can run both user cards no problem, as long as the factory card is not present.

I wonder if it would count up to 60MB correctly, but I don’t have a 4MB factory card to test this.

Again, what are the capacities of your two user cards?

My user cards are both 24MB.
 
Top