Yes.@pl212 Looking at the drawing code, the 8LC has the logo stored as 1 bit per pixel. So each byte in the array is 8 pixels. 0 bits are black, 1 bits are "RasterOps blue/green".
perl -0777 -pE 's/DC\.B//g; s/[^\w]//g; s/(.{62})/\1\n/g;
while (/(?{$X=pos()})(\w\w)/mg) { substr($_,$X,2) = sprintf ("%08b", hex($1)); pos() = $X + 8 };
' <<< '
DC.B $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FC,$00,$00,$00,$00,$00
DC.B $00,$00,$00,$00,$00,$00,$00,$0F,$C0,$00,$00,$00,$00
DC.B $00,$7F,$FF,$FC,$00,$00,$00,$00,$00,$00,$00,$01,$FC,$00,$00,$00,$00,$00
DC.B $00,$00,$00,$00,$FF,$80,$00,$0F,$C0,$00,$00,$00,$00
DC.B $00,$7F,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$01,$FC,$00,$00,$00,$00,$00
DC.B $00,$00,$00,$07,$FF,$E0,$00,$1F,$80,$00,$00,$00,$00
DC.B $00,$0F,$FF,$FF,$C0,$00,$00,$00,$00,$00,$00,$01,$FC,$00,$00,$00,$00,$00
DC.B $00,$00,$00,$1F,$FF,$F0,$00,$1F,$80,$00,$00,$00,$00
DC.B $00,$07,$FC,$3F,$E0,$00,$00,$00,$00,$00,$00,$01,$F8,$00,$00,$00,$00,$00
DC.B $00,$00,$00,$7F,$87,$F8,$00,$1F,$80,$00,$00,$00,$00
DC.B $00,$07,$F8,$0F,$F0,$00,$3C,$FE,$00,$1F,$E0,$03,$F8,$00,$00,$FE,$00,$1E
DC.B $00,$E0,$00,$FE,$01,$FC,$00,$FF,$F8,$00,$03,$FC,$00
DC.B $00,$0F,$F8,$0F,$F0,$01,$FE,$FE,$00,$7F,$FC,$3F,$FF,$E0,$07,$FF,$80,$7F
DC.B $03,$F0,$01,$FC,$01,$FC,$07,$FF,$FF,$00,$0F,$FF,$80
DC.B $00,$0F,$F0,$07,$F8,$07,$FF,$FE,$00,$FF,$FF,$3F,$FF,$C0,$1F,$FF,$C0,$FF
DC.B $87,$F0,$03,$F8,$00,$FE,$0F,$FF,$1F,$C0,$1F,$FF,$E0
DC.B $00,$0F,$F0,$07,$F8,$0F,$F3,$FC,$00,$FC,$FF,$7F,$FF,$C0,$3F,$CF,$C1,$FF
DC.B $8F,$F8,$07,$F0,$00,$FE,$0E,$7F,$07,$E0,$1F,$9F,$E0
DC.B $00,$0F,$F0,$07,$F8,$1F,$C1,$FC,$01,$F8,$3F,$07,$F0,$00,$7F,$87,$E3,$FF
DC.B $9F,$F8,$0F,$F0,$00,$FE,$00,$7F,$07,$F0,$3F,$07,$E0
DC.B $00,$1F,$F0,$07,$F8,$3F,$81,$FC,$01,$F8,$1F,$07,$F0,$00,$FF,$07,$E7,$3F
DC.B $BB,$F8,$1F,$E0,$00,$FF,$00,$7F,$03,$F0,$3F,$03,$E0
DC.B $00,$1F,$E0,$07,$F8,$7F,$01,$FC,$01,$FC,$0E,$07,$F0,$01,$FE,$07,$EE,$3F
DC.B $F1,$F8,$1F,$E0,$00,$FF,$00,$7E,$03,$F8,$3F,$81,$C0
DC.B $00,$1F,$E0,$0F,$F0,$7F,$03,$F8,$01,$FE,$06,$07,$E0,$01,$FE,$07,$FC,$3F
DC.B $E1,$F8,$3F,$C0,$00,$FF,$00,$FE,$03,$F8,$3F,$C0,$C0
DC.B $00,$1F,$E0,$0F,$F0,$FE,$03,$F8,$01,$FF,$00,$0F,$E0,$03,$FC,$0F,$D8,$3F
DC.B $C1,$F0,$3F,$C0,$00,$FF,$00,$FE,$03,$F8,$3F,$E0,$00
DC.B $00,$3F,$E0,$1F,$E0,$FE,$03,$F8,$00,$FF,$80,$0F,$E0,$03,$FC,$0F,$C0,$7F
DC.B $80,$E0,$7F,$C0,$00,$FF,$00,$FE,$03,$F8,$1F,$F0,$00
DC.B $00,$3F,$C0,$1F,$C1,$FC,$03,$F8,$00,$FF,$C0,$0F,$E0,$07,$F8,$1F,$80,$7F
DC.B $80,$00,$7F,$80,$00,$FF,$00,$FC,$03,$F8,$1F,$F8,$00
DC.B $00,$3F,$C0,$3F,$81,$FC,$07,$F0,$00,$7F,$E0,$0F,$C0,$07,$F8,$7E,$00,$7F
DC.B $00,$00,$7F,$80,$01,$FF,$01,$FC,$03,$F8,$0F,$FC,$00
DC.B $00,$3F,$C0,$7F,$03,$FC,$07,$F0,$00,$3F,$F0,$1F,$C0,$07,$FB,$F8,$00,$7F
DC.B $00,$00,$FF,$80,$01,$FF,$01,$FC,$03,$F8,$07,$FE,$00
DC.B $00,$7F,$C0,$FE,$03,$F8,$07,$F0,$00,$1F,$F8,$1F,$C0,$0F,$FF,$C0,$00,$FE
DC.B $00,$00,$FF,$00,$01,$FE,$01,$FC,$07,$F0,$03,$FF,$00
DC.B $00,$7F,$83,$F8,$03,$F8,$0F,$F0,$00,$0F,$F8,$1F,$C0,$0F,$FE,$00,$00,$FE
DC.B $00,$00,$FF,$00,$01,$FE,$01,$F8,$07,$F0,$01,$FF,$00
DC.B $00,$7F,$9F,$E0,$03,$F8,$0F,$E0,$00,$07,$FC,$1F,$80,$0F,$F0,$00,$00,$FE
DC.B $00,$01,$FF,$00,$03,$FE,$03,$F8,$07,$F0,$00,$FF,$80
DC.B $00,$7F,$FF,$C0,$03,$F8,$1F,$E0,$C6,$03,$FC,$3F,$83,$0F,$F0,$00,$C0,$FE
DC.B $00,$01,$FF,$00,$03,$FC,$03,$F8,$0F,$E0,$C0,$7F,$80
DC.B $00,$FF,$FF,$E0,$03,$F8,$3F,$E1,$C7,$01,$FC,$3F,$87,$0F,$F0,$01,$C1,$FC
DC.B $00,$01,$FE,$00,$03,$FC,$03,$F8,$0F,$E0,$E0,$3F,$80
DC.B $00,$FF,$0F,$E0,$03,$F8,$7F,$E3,$8F,$80,$FC,$3F,$8E,$0F,$F8,$03,$81,$FC
DC.B $00,$01,$FE,$00,$07,$FC,$03,$F0,$1F,$C1,$F0,$1F,$80
DC.B $00,$FF,$0F,$F0,$03,$FC,$EF,$E7,$0F,$C0,$FC,$3F,$9C,$0F,$F8,$07,$01,$FC
DC.B $00,$01,$FE,$00,$07,$F8,$07,$F0,$1F,$C1,$F8,$1F,$80
DC.B $00,$FF,$0F,$F0,$03,$FF,$CF,$FE,$1F,$E0,$F8,$3F,$F8,$07,$FE,$1E,$01,$FC
DC.B $00,$01,$FE,$00,$07,$F8,$07,$F8,$3F,$83,$FC,$1F,$00
DC.B $01,$FF,$07,$F0,$01,$FF,$8F,$FC,$1F,$F1,$F8,$3F,$F0,$07,$FF,$FC,$03,$F8
DC.B $00,$01,$FE,$00,$0F,$F0,$07,$FC,$FF,$03,$FE,$3F,$00
DC.B $01,$FE,$07,$F8,$01,$FF,$0F,$F8,$1F,$FF,$F0,$1F,$E0,$03,$FF,$F0,$03,$F8
DC.B $00,$01,$FE,$00,$0F,$F0,$07,$FF,$FE,$03,$FF,$FE,$00
DC.B $01,$FE,$07,$F8,$00,$FC,$07,$E0,$07,$FF,$E0,$1F,$80,$01,$FF,$C0,$03,$F8
DC.B $00,$00,$FE,$00,$1F,$E0,$0F,$EF,$F8,$00,$FF,$FC,$00
DC.B $01,$FE,$03,$F8,$00,$70,$03,$80,$00,$FF,$80,$0E,$00,$00,$7E,$00,$03,$F8
DC.B $00,$00,$FE,$00,$1F,$C0,$0F,$E3,$C0,$00,$1F,$F0,$00
DC.B $03,$FE,$03,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
DC.B $00,$00,$FE,$00,$3F,$80,$0F,$C0,$00,$00,$00,$00,$00
DC.B $03,$FC,$03,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
DC.B $00,$00,$7F,$00,$7F,$00,$0F,$C0,$00,$00,$00,$00,$00
DC.B $03,$FC,$01,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
DC.B $00,$00,$7F,$00,$FE,$00,$1F,$C0,$00,$00,$00,$00,$00
DC.B $07,$FC,$01,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
DC.B $00,$00,$3F,$C3,$FC,$00,$1F,$80,$00,$00,$00,$00,$00
DC.B $0F,$FE,$01,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
DC.B $00,$00,$1F,$FF,$F0,$00,$3F,$C0,$00,$00,$00,$00,$00
DC.B $7F,$FF,$C0,$FF,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
DC.B $00,$00,$07,$FF,$C0,$01,$FF,$F8,$00,$00,$00,$00,$00
DC.B $7F,$FF,$C0,$FF,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
DC.B $00,$00,$00,$FE,$00,$01,$FF,$F8,$00,$00,$00,$00,$00
'
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111100000000000000000000000000000000000000
00000000011111111111111111111100000000000000000000000000000000000000000000000000000000000000000111111100000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000011111100000000000000000000000000000000000000
00000000011111111111111111111111000000000000000000000000000000000000000000000000000000000000000111111100000000000000000000000000000000000000000000000000000000000000000000000111111111111110000000000000000111111000000000000000000000000000000000000000
00000000000011111111111111111111110000000000000000000000000000000000000000000000000000000000000111111100000000000000000000000000000000000000000000000000000000000000000000011111111111111111000000000000000111111000000000000000000000000000000000000000
00000000000001111111110000111111111000000000000000000000000000000000000000000000000000000000000111111000000000000000000000000000000000000000000000000000000000000000000001111111100001111111100000000000000111111000000000000000000000000000000000000000
00000000000001111111100000001111111100000000000000111100111111100000000000011111111000000000001111111000000000000000000011111110000000000001111000000000111000000000000011111110000000011111110000000000111111111111100000000000000000111111110000000000
00000000000011111111100000001111111100000000000111111110111111100000000001111111111111000011111111111111111000000000011111111111100000000111111100000011111100000000000111111100000000011111110000000111111111111111111100000000000011111111111110000000
00000000000011111111000000000111111110000000011111111111111111100000000011111111111111110011111111111111110000000001111111111111110000001111111110000111111100000000001111111000000000001111111000001111111111110001111111000000000111111111111111100000
00000000000011111111000000000111111110000000111111110011111111000000000011111100111111110111111111111111110000000011111111001111110000011111111110001111111110000000011111110000000000001111111000001110011111110000011111100000000111111001111111100000
00000000000011111111000000000111111110000001111111000001111111000000000111111000001111110000011111110000000000000111111110000111111000111111111110011111111110000000111111110000000000001111111000000000011111110000011111110000001111110000011111100000
00000000000111111111000000000111111110000011111110000001111111000000000111111000000111110000011111110000000000001111111100000111111001110011111110111011111110000001111111100000000000001111111100000000011111110000001111110000001111110000001111100000
00000000000111111110000000000111111110000111111100000001111111000000000111111100000011100000011111110000000000011111111000000111111011100011111111110001111110000001111111100000000000001111111100000000011111100000001111111000001111111000000111000000
00000000000111111110000000001111111100000111111100000011111110000000000111111110000001100000011111100000000000011111111000000111111111000011111111100001111110000011111111000000000000001111111100000000111111100000001111111000001111111100000011000000
00000000000111111110000000001111111100001111111000000011111110000000000111111111000000000000111111100000000000111111110000001111110110000011111111000001111100000011111111000000000000001111111100000000111111100000001111111000001111111110000000000000
00000000001111111110000000011111111000001111111000000011111110000000000011111111100000000000111111100000000000111111110000001111110000000111111110000000111000000111111111000000000000001111111100000000111111100000001111111000000111111111000000000000
00000000001111111100000000011111110000011111110000000011111110000000000011111111110000000000111111100000000001111111100000011111100000000111111110000000000000000111111110000000000000001111111100000000111111000000001111111000000111111111100000000000
00000000001111111100000000111111100000011111110000000111111100000000000001111111111000000000111111000000000001111111100001111110000000000111111100000000000000000111111110000000000000011111111100000001111111000000001111111000000011111111110000000000
00000000001111111100000001111111000000111111110000000111111100000000000000111111111100000001111111000000000001111111101111111000000000000111111100000000000000001111111110000000000000011111111100000001111111000000001111111000000001111111111000000000
00000000011111111100000011111110000000111111100000000111111100000000000000011111111110000001111111000000000011111111111111000000000000001111111000000000000000001111111100000000000000011111111000000001111111000000011111110000000000111111111100000000
00000000011111111000001111111000000000111111100000001111111100000000000000001111111110000001111111000000000011111111111000000000000000001111111000000000000000001111111100000000000000011111111000000001111110000000011111110000000000011111111100000000
00000000011111111001111111100000000000111111100000001111111000000000000000000111111111000001111110000000000011111111000000000000000000001111111000000000000000011111111100000000000000111111111000000011111110000000011111110000000000001111111110000000
00000000011111111111111111000000000000111111100000011111111000001100011000000011111111000011111110000011000011111111000000000000110000001111111000000000000000011111111100000000000000111111110000000011111110000000111111100000110000000111111110000000
00000000111111111111111111100000000000111111100000111111111000011100011100000001111111000011111110000111000011111111000000000001110000011111110000000000000000011111111000000000000000111111110000000011111110000000111111100000111000000011111110000000
00000000111111110000111111100000000000111111100001111111111000111000111110000000111111000011111110001110000011111111100000000011100000011111110000000000000000011111111000000000000001111111110000000011111100000001111111000001111100000001111110000000
00000000111111110000111111110000000000111111110011101111111001110000111111000000111111000011111110011100000011111111100000000111000000011111110000000000000000011111111000000000000001111111100000000111111100000001111111000001111110000001111110000000
00000000111111110000111111110000000000111111111111001111111111100001111111100000111110000011111111111000000001111111111000011110000000011111110000000000000000011111111000000000000001111111100000000111111110000011111110000011111111000001111100000000
00000001111111110000011111110000000000011111111110001111111111000001111111110001111110000011111111110000000001111111111111111100000000111111100000000000000000011111111000000000000011111111000000000111111111001111111100000011111111100011111100000000
00000001111111100000011111111000000000011111111100001111111110000001111111111111111100000001111111100000000000111111111111110000000000111111100000000000000000011111111000000000000011111111000000000111111111111111111000000011111111111111111000000000
00000001111111100000011111111000000000001111110000000111111000000000011111111111111000000001111110000000000000011111111111000000000000111111100000000000000000001111111000000000000111111110000000001111111011111111100000000000111111111111110000000000
00000001111111100000001111111000000000000111000000000011100000000000000011111111100000000000111000000000000000000111111000000000000000111111100000000000000000001111111000000000000111111100000000001111111000111100000000000000000111111111000000000000
00000011111111100000001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111000000000001111111000000000001111110000000000000000000000000000000000000000000000
00000011111111000000001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111100000000011111110000000000001111110000000000000000000000000000000000000000000000
00000011111111000000000111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111100000000111111100000000000011111110000000000000000000000000000000000000000000000
00000111111111000000000111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111000011111111000000000000011111100000000000000000000000000000000000000000000000
00001111111111100000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111100000000000000111111110000000000000000000000000000000000000000000000
01111111111111111100000011111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111110000000000000111111111111110000000000000000000000000000000000000000000
01111111111111111100000011111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111110000000000000000111111111111110000000000000000000000000000000000000000000
It's not modern, but for a pin compatible option you might look at the w27c257. It's an EEPROM, which is nice, but it is old so harder to come by (less nice).Is there a modern pin-compatible replacement for the EPROMs used on these cards? I think the original is a 28-pin 27C128, but I'm having a hard time finding a Flash or EEPROM replacement.
Looks valid to me! Nice job.Finally recieved my T48! Attached is a dump of the "Supermac Spectrum SE/30 v1.0" rom. Please help me check wether it seems correct as it's my first ever rom dump. I could read some text in the written data so that at least looked promising .
I just wrote this up recently, and yeah, unfortunately, 27C128 has no replacement, but the others have a few options:
eharmon | Guide to EPROM Replacements
Suitable EEPROM and Flash replacements for EPROM chipseharmon.net
Oh, and confusingly a 28C256 is definitely not compatible with a 27C256. The pinout is slightly different. I think it might be workable for a 27C128 though.
Yep, should work in most circuits if you repeat the ROM data twice.What about a 29c256? Seems like a popular replacement for a 27c128 from what I managed to find online.
I tried installing this ROM in my SuperMac ColorCard SE/30. Since I don't have any blank 16KB 27C128 EPROMs, I used a 32KB W27C257 and repeated the 16KB Spectrum SE/30 ROM two times to fill 32KB. The modified 32KB ROM file is attached.Finally recieved my T48! Attached is a dump of the "Supermac Spectrum SE/30 v1.0" rom
That’s awesome! There’s a fourth socket available for adding an oscillator, so hopefully you wouldn’t have to exchange anything and can just add the 24mhz one .I tried installing this ROM in my SuperMac ColorCard SE/30. Since I don't have any blank 16KB 27C128 EPROMs, I used a 32KB W27C257 and repeated the 16KB Spectrum SE/30 ROM two times to fill 32KB. The modified 32KB ROM file is attached.
Upgrade successful! With the stock ROM, the card will do 640x480@256 colors or 1024x768@16 colors, as well as portrait mode (which I don't care about). After the ROM swap I was able to run 1024x768@256 colors! This proves that the resolution and color depth settings were entirely firmware-limited on the ColorCard, for sales and marketing purposes and not for engineering reasons.
My card has three different oscillators installed: 64 MHz (used for 1024x768), 30.24 MHz (used for Apple 13 inch RGB), and 57.28 (used for 15 inch portrait mode). In Apple 13 inch RGB mode, it outputs composite sync and sync-on-green, but not separate horizontal and vertical sync. That's disappointing, since it limits the range of monitors it'll work on. The SuperMac SuperVideo control panel also lists an option for 640x480 multisync monitor, but it requires a 24 MHz oscillator. I wonder if I replaced the 57.28 oscillator with a 24 MHz one, could I then use the 640x480 multisync option, and would it output separate hsync and vsync for wider monitor support?
I noticed something else curious about the sync signals. Initially I tried two different Mac-to-VGA adapters: a Griffin Mac PNP and my own prototype adapter. The PnP was set for "autoconfigure" and my prototype was set to pass through the non-existent hsync and vsync. In both cases, there was an echo of the red component of all pixels:
View attachment 65479
I then reconfigured my prototype adapter to cut off all the sync signals, so the monitor would be forced to use sync-on-green (if it could). The result looked much better:
View attachment 65480
If anyone has those cards, those ROM revisions look newer than the dumps floating out on the internet. If you'd like to give them a try you don't need to compile anything, there's already srecord dumps in the repo. If you need a binary format for your flasher, you can convert with SRecord's srec_cat:BTW, the 24Mx, 24MxRGB, and 24MxTV were added to the GitHub repo a few days ago. And there are more cards to come.
$ srec_cat ROM.24Mx.S1.64K -o ROM.24Mx.bin -binary
$ cat ROM.24MxTV.S1.64K | sed "s/\m/\n/g" > fixed.ROM.24MxTV.S1.64K