SMC ROM SIMM Prototype

Kay K.M.Mods

Active Tinkerer
Sep 23, 2021
315
702
93
Tokyo
www.kerosmm.com
Thank you for great animation work @retr01 !
that reminds us of the good old days of computer games in the 80's 🕹️ The first half feels like an elevator action. Unfortunately, my office isn't a splendid building like your anime.
Can't miss the place where rainbow 🌈 colors are featured in everything 🤘
 
  • Love
Reactions: retr01

V.Yakob

Tinkerer
Sep 6, 2023
85
31
18
Syktyvkar
Create a working folder and put SRecode and the bin (ROM) file you want to split
Launch the Windows Command Prompt:

cd "<FOLDER where you create and store images>"
srec_cat rom.bin -binary -split 4 0 -o U4.bin -binary
srec_cat rom.bin -binary -split 4 1 -o U3.bin -binary
srec_cat rom.bin -binary -split 4 2 -o U2.bin -binary
srec_cat rom.bin -binary -split 4 3 -o U1.bin -binary

The binary is divided into
U4, U3, U2, U1
in the order
0,1,2,3
4,5,6,7
....
@Kay K.M.Mods, @eric, I'm just getting ready to try it on Quadra 950.

In general, I understood everything, but I can't understand why when splitting ROM, the chunks are named in reverse order?

0 chunk of firmware = file 4
1 chunk of firmware = file 3
 

Kay K.M.Mods

Active Tinkerer
Sep 23, 2021
315
702
93
Tokyo
www.kerosmm.com
@Kay K.M.Mods, @eric, I'm just getting ready to try it on Quadra 950.

In general, I understood everything, but I can't understand why when splitting ROM, the chunks are named in reverse order?

0 chunk of firmware = file 4
1 chunk of firmware = file 3
When the ROM file is split into 4 binary files, the files are named U4, U3, U2, U1, which may seem like the order is reversed at first glance. However, this is due to the hardware design and programming tool specifications. Specifically, each split binary file corresponds to a specific ROM chip and is named based on its layout and reading order. U4 is the first data, U3 is the next data, and so on, so that the system can read the data correctly. This naming convention allows the hardware and software to work together properly, and although it may be confusing, it is intentional by design.

BTW, Quadra 950 may not work properly. It was last year. I know that some of the pinouts are different on 68040 machines. This was something that neither I nor Steve Chamberlin of BMOW knew. This is explanation of Doug Brown and has a blog so see there:

From what I understand they are pins 11 and 12, but in the case of the SE/30 and many 030 machines they are controlled by pin 27 of the GLUE chip. *Doug Brown's blog simply illustrates the concept of CS and OE. However, on the 040 machine, pin 11 from the board is always pulled up to +5V, and the ROM's CS is pulled down to GND.
To be honest, I don't have much experience with 040 machine's ROM SIMM, and since Cay Mac was the first to start designing 040 SIMM at the time, I didn't think it would be right for me to jump in, because I showed respect to the developers... so I didn't do any further research.
Thank you for your understanding.
 
Last edited:
  • Like
Reactions: V.Yakob

V.Yakob

Tinkerer
Sep 6, 2023
85
31
18
Syktyvkar
@Kay K.M.Mods Thank you for the explanation.
I saw the successful launches of Quadra 900 in YouTube and decided to study this topic. I found ROM SIMM here and some explanations, as well as a link to GitHub, where you can get a custom ROM.
I became interested, and of course I wanted to try it. But my whole way with vintage poppies is not easy, I don't hope it will be easy.

While I'm waiting for my order (it will take a very long time), I decided to follow in your footsteps. Actually, I no longer want to run Windows in UTM to use the XGecu programmer, so I forced myself to use minipro and write/erase/read my old "SST39SF040" chips that I have left over from the modification of sil3112 boards for Power Macintosh.

I will also have ROMmate Programmer, because I want to try everything. 🤪

I'll leave my cheat sheet here, in case someone needs it.

Code:
# Install packages
brew install srecord minipro

# split
srec_cat rom.bin -binary -split 4 0 -o chunk4.bin -binary
srec_cat rom.bin -binary -split 4 1 -o chunk3.bin -binary
srec_cat rom.bin -binary -split 4 2 -o chunk2.bin -binary
srec_cat rom.bin -binary -split 4 3 -o chunk1.bin -binary

# Check XGecu
minipro -i -d "SST39SF040"

# is blank?
minipro -b -p "SST39SF040"

# ROM chip is automatically erased when flashed, but I prefer to do it manually
minipro -u -E -p "SST39SF040"

# Write the firmware
minipro -u -w ~/Temp/chunk1.bin -p "SST39SF040"

# After the firmware, verification is performed automatically,
# but if you need to compare the firmware in the file and on the ROM chip, you can do it manually
minipro -m ~/Temp/chunk1.bin -p "SST39SF040"

I haven't figured out how to perform the compression that SIMMProgrammer performs yet. :unsure:

@JDW, Helped me deal with the issue of manual disk compression with the FC8 algorithm. Thank you!

First you need to build the application:

Code:
cd ~/Temp/Sources
git clone https://github.com/steve-chamberlin/fc8-compression.git && cd fc8-compression
gcc -o fc8 fc8.c compression.c
chmod +x fc8

Now we can conduct tests and compare the size. Some explanations can be found here.

Code:
./fc8 -b:65536 ~/ROM/ROMDisk.dsk ~/ROM/ROMDisk.fc8.dsk

Now I will wait for my parcel with double power to try it all. 🤪

P.S.
My compilation was performed without errors, but with 4 warnings. I don't know how critical it is, but the compression works.
 
Last edited:

Kay K.M.Mods

Active Tinkerer
Sep 23, 2021
315
702
93
Tokyo
www.kerosmm.com
Branchus Creations had a stream today—did everyone catch it? Sales have started today.

PDS ROM for Macintosh SE/30
Revive your SE/30 – even with a broken ROM SIMM socket!
What It Is
This is a brand-new ROM card that installs into the PDS slot of your SE/30, completely bypassing the aging and failure-prone ROM SIMM socket.
It’s designed not just as an upgrade, but as a repair solution for machines with damaged ROM sockets.
Based on the trusted SMC ROM SIMM, now redesigned for direct use through PDS.
What’s Included
    • PDS ROM Card for Macintosh SE/30
    • EPROMs (Installed / Not Installed) – choose your preferred configuration
    • Mini Test Clip – for connecting to the GLUE chip (pin 27)
    • Female-to-Female Jumper Cable – connects test clip to ROM card (JP2)
Features
    • Boots from ROM Disk (press R at startup)
    • Fully 32-bit clean
    • Memory checksum bypassed
    • Custom icons via Crucible app
    • Uses four 39SF040 or 29F040 chips (2MB total)
    • Works with most standard ROM programmers
Easy Installation
Just plug the PDS ROM into your SE/30’s PDS slot.
One simple jumper is required from the logic board’s GLUE chip (UI8, pin 27) — a test clip is included, and long-term users can choose to solder for maximum reliability.
No complicated mods. No socket replacement. Just plug, clip, and boot.
Why the Jumper?
The SE/30’s GLUE chip handles ROM access timing. We tap into its ROM select signal to trigger the ROM correctly via the PDS slot—just like the original SIMM would.

Stay tuned!

 

Kay K.M.Mods

Active Tinkerer
Sep 23, 2021
315
702
93
Tokyo
www.kerosmm.com
More info on the PDS ROM

@Branchus did a livestream where he did some testing:

@This Does Not Compute made a great new introduction Video:

I'm excited to see people gradually turning to PDS ROM.
I think the usage will be limited, but I can learn from hearing various opinions. However, the current shape is the best shape after eliminating various options and thinking about it! Thanks.
 

V.Yakob

Tinkerer
Sep 6, 2023
85
31
18
Syktyvkar
I finally got a programmer and 8 MB ROM SIMM.
First I tried ready-made images for Quadra 950, and now I'm making my own.
And here's the question... do I understand correctly that at the moment the custom firmware for Quadra 950 does not support disk compression? :unsure:
All my attempts to somehow make it work lead to a flashing floppy disk with a cross inside.
Uncompressed disks work perfectly.
 

Attachments

  • Programmer.png
    Programmer.png
    1.2 MB · Views: 12

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,883
1,597
113
54
Japan
youtube.com
Friends, I humbly wish to clarify, without any offense to anyone, that this thread is entitled "SMC ROM SIMM Prototype". It is therefore tied to Kay Koba's products found at his website here:



Steve Chamberlin of BMOW made his BASE ROM FILE, which supports his FC8 compression, freely available to owners of any ROM SIMM, be that from Kay Koba or anyone else. The main caveat being that ROM SIMM vendors cannot bundle Steve's Base ROM file without permission. Getting permission is not hard, and you don't need to spend thousands on lawyers to get it either. Just talk to Steve if you are a vendor. It's not difficult.

But there is also another Base ROM file from Rob Braun which doesn't require special permissions (from what I understand), and I believe it is that or some variant of it, that is used when flashing the "SMC" branded ROM SIMM.

Both Base ROM files are linked below (a copy/paste from the text description under my ROM SIMM video):

💾 Base ROM Files
• Rob Braun (FC8 not supported): https://bit.ly/3R7PyI1
• BMOW*: https://bit.ly/3Z8NTnu
* 9/8/2023: Steve Chamberlin made it free to use on any vendor's ROM SIMM!
(Vendors need permission to distribute.)

In Sept. 2023, I made this ROM SIMM video which showcases ROM SIMM from all vendors, including Kay's, and includes the ROMmate Programmer (a photo of which is shown in the previous post by @V.Yakob ). That video explains very clearly that there is a fundamental difference between the ROB BRAUN Base ROM File and the BMOW (Steve Chamberlin) Base ROM File. Use Rob's Base ROM file, and you WILL NOT get FC8 support. Use Steve's (BMOW) and you WILL get FC8 support. FC8 lets you use bigger Disk Images — more files on your ROM SIMMs. Steve created FC8. It's his baby. He alone determines who can use it.

As I explain in my video, if you compress your disk image with FC8, if you don't also concatenate that FC8-compressed image with the BMOW Base ROM File, it won't work. Why? Because the BMOW Base ROM file knows how to decompress FC8 while Rob's ROM file doesn't. It's that simple.

Now for people who own Kay Koba's ROM SIMM (with 4 socketed chips), you will most likely be using his excellent Crucible software. At the direction of Kay and the SMC team, Crucible was coded by @OneGeekArmy , creator of the outstanding Disk Jockey software — donations to him accepted here — and yes, I have donated. Crucible concatenates your disk image with Rob's Base ROM (or some variant of it), not the BMOW Base ROM. That is hard coded into Crucible. NO ONE using Crucible should be using FC8 compression on their disk images! (If that changes in the future, great, but its truth for now in May 2025.)

Also, if you use Crucible, you should be using Kay Koba's ROM SIMM products because Crucible is tied to those products and is not intended for use with other ROM SIMMs. It's a morals and ethics thing, not a technological limitation.

So what do you do if you want to use FC8?
Because Kay and the SMC team have not sought a deal with Steve (to my knowledge), the BMOW Base ROM file isn't used in Crucible and therefore the FC8 topic itself is rather "off topic" when it comes to this thread. But for the sake of not leaving everyone hanging, I will say this...

As mentioned in my ROM SIMM video, you must use Downtown Doug Brown's SIMM Programmer 2.0 app on your Mac. That software lets you use any Base ROM, be that from Rob or BMOW or something else I've not heard of. And yes, you can flash the ROM SIMM (4 socketed chips) from Kay Koba too (which means you would use it instead of Crucible.)

The only thing Doug's SIMM Programmer 2.0 app CANNOT do (as of May 2025) is concatenate a disk image and Base ROM intended for the CayMac Universal ROM SIMM that is used in the LC575 or Quadra machines. (My video doesn’t talk about the Universal ROM SIMM because it didn’t exist when my video was made.) SIMM Programmer 2.0 CAN FLASH an already concatenated file (disk image + Base ROM) to the Universal ROM SIMM. It simple cannot do the concatenation for reasons that only Doug Brown knows. I have a Universal ROM SIMM and am still working with @Jockelill and another person named "frontein1" at the MLA forum to see if we can't crush all the bugs. For now, I have it running in my Mystic using the R key to boot from ROM, but booting from RAM isn't bug-free yet. I mention this because the previous post is using the Universal ROM SIMM (Quadra compatible).

With all that said, this thread is focused on the products from @Kay K.M.Mods , so it's best we strive to keep on topic. As you have just read, there is some overlap on this rather complex topic; but overall, I strongly recommend discussions about SIMMs and Programmers FROM VENDORS OTHER THAN KAY be placed into their own threads, so that:

1. They get the attention they deserve, and
2. So that we don’t cause offense to Kay Koba, who makes some amazing products and software.

I consider Kay a friend and I am trying to watch out for him by saying all this.

Thanks for your kind understanding, and best wishes to my fellow ROM SIMM enthusiasts!
 
  • Like
Reactions: Kay K.M.Mods

V.Yakob

Tinkerer
Sep 6, 2023
85
31
18
Syktyvkar
@JDW, In general, I could not even think that this forum threads discuss only specific SIMM ROMs, not all that can be created. It's amazing for me. :)
But I learned a lot of new things, thanx.

Someday I will probably tell you about my experiments with the Q950, which I received this year.

I propose to end the discussion of my question on this.
 
  • Like
Reactions: JDW

JDW

Administrator
Staff member
Founder
Sep 2, 2021
1,883
1,597
113
54
Japan
youtube.com
@JDW, I propose to end the discussion of my question on this.
It wasn’t my intention to force you out of this thread. But I would encourage you to start a new thread so that discussions about your particular situation and programmer and ROM SIMM can be discussed at greater length.