VOGONS


First post, by DenizOezmen

User metadata
Rank Member
Rank
Member

Hello everyone,

recently I took a closer look at the BIOS chips of a Diamond SpeedSTAR 24 and encountered some oddities regarding their content. Since no conclusive information was to be found on the web (apart from a thread in a german forum where a user made similar observations), I decided to research a bit further. Apologies if all of this is already known, but if not, it might be useful to someone:

The SpeedSTAR 24 has two BIOS chips labeled "DBIOS-L" and "DBIOS-H". Both chips are M27C256B EPROMS with a capacity of 32 KiB each. This seems a bit odd at first, since the full BIOS itself is only 32 KiB large, i.e. there seems to be twice as much space as strictly necessary.

The next surprise awaits when dumping the contents of the chips: They do not seem to contain anything useful. The label suffixes ("H" and "L") seem to indicate "high" and "low" bytes, but even interleaving the data does not yield anything useable. Additionally, the "H" chip contains the same 16 KiB data block twice.

This is due to the fact that Diamond shuffled around most of the address and data lines while connecting the BIOS chips to the ISA bus, and the contents of the chips compensate for that. The chips' data outputs are connected directly to the bus, while the address lines are routed through two 74LS245 transcievers. The "L" chip's data outputs are connected the the lower 8 bits of the ISA bus data lines while the "H" chip is connected the the higher 8 bits in the following manner:

DBIOS-L:                  DBIOS-H:

EPROM ISA Bus EPROM ISA Bus

A0 Addr 03 A0 Addr 09
A1 Addr 02 A1 Addr 05
A2 Addr 12 A2 Addr 10
A3 Addr 01 A3 Addr 04
A4 Addr 11 A4 Addr 11
A5 Addr 04 A5 Addr 01
A6 Addr 10 A6 Addr 12
A7 Addr 05 A7 Addr 02
A8 Addr 08 A8 Addr 13
A9 Addr 13 A9 Addr 08
A10 Addr 00 A10 Addr 07
A11 Addr 14 A11 Addr 06
A12 Addr 09 A12 Addr 03
A13 Addr 06 A13 Addr 14
A14 Addr 07 A14 (not connected ot the address bus)
Q0 Data 0 Q0 Data 15
Q1 Data 1 Q1 Data 14
Q2 Data 2 Q2 Data 13
Q3 Data 7 Q3 Data 12
Q4 Data 6 Q4 Data 11
Q5 Data 5 Q5 Data 10
Q6 Data 3 Q6 Data 09
Q7 Data 4 Q7 Data 08

After unscrambling the chip contents using this information, it becomes clear that the DBIOS-L chip simply contains a copy of the full BIOS. The DBIOS-H chip carries additional copies of the bytes residing at odd addresses (which are repeated once within the chip for reasons unknown to me). Obviously, the card has the ability to feed the BIOS contents to the bus using either both chips in parallel or using only the DBIOS-L chip. (Might this be related to the "Turbo BIOS" setting?)

Note: The above might be valid for other models of Diamond VGA cards utilizing two BIOS chips. I currently don't have access to any other cards to check this, though.

In any case, I have attached the utility I used to process the dump files. It can either unscramble the contents of the DBIOS-L chip (the H chip is not needed since it only contains redundant data) ...

DBIOS /u scrambled_low.bin unscrambled_bios.bin

... or produce images for both chips from a plain (unscrambled) BIOS file:

DBIOS /s unscrambled_bios.bin scrambled_low.bin scrambled_high.bin

Attachments

  • Filename
    DBIOS.zip
    File size
    60.56 KiB
    Downloads
    64 downloads
    File license
    Fair use/fair dealing exception

Reply 1 of 6, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
DenizOezmen wrote on 2020-03-17, 20:53:

Obviously, the card has the ability to feed the BIOS contents to the bus using either both chips in parallel or using only the DBIOS-L chip.

Support for both 8-bit and 16-bit ISA?

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 2 of 6, by keropi

User metadata
Rank l33t++
Rank
l33t++

interesting thanks for sharing this!
some time ago I dumped IIRC the 2 BIOS chips for the Speedstar24x and I was surprised to see they just carried the same data. Even the labels don't state H/L or ODD/EVEN , they are just the same...

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 3 of 6, by Predator99

User metadata
Rank l33t
Rank
l33t
keropi wrote on 2020-03-17, 22:11:

interesting thanks for sharing this!
some time ago I dumped IIRC the 2 BIOS chips for the Speedstar24x and I was surprised to see they just carried the same data. Even the labels don't state H/L or ODD/EVEN , they are just the same...

Interesting work!

Yes, it was here for the Diamond Stealth VRAM (S3 P86C911):
Re: BIOS for Diamond Stealth VRAM (S3 P86C911) needed
Both ROMs have the same content. Most likely to allow 16-bit access to the BIOS.

Reply 4 of 6, by maxtherabbit

User metadata
Rank l33t
Rank
l33t

tag! I have one of these cards too, and noticed the same thing when dumping the BIOS. I think the "turbo" option has something to do with interleaving the two ROMs?

Reply 6 of 6, by DenizOezmen

User metadata
Rank Member
Rank
Member
Predator99 wrote on 2020-03-17, 22:40:
Interesting work! […]
Show full quote
keropi wrote on 2020-03-17, 22:11:

interesting thanks for sharing this!
some time ago I dumped IIRC the 2 BIOS chips for the Speedstar24x and I was surprised to see they just carried the same data. Even the labels don't state H/L or ODD/EVEN , they are just the same...

Interesting work!

Yes, it was here for the Diamond Stealth VRAM (S3 P86C911):
Re: BIOS for Diamond Stealth VRAM (S3 P86C911) needed
Both ROMs have the same content. Most likely to allow 16-bit access to the BIOS.

Thanks for the feedback! That definitely fits the pattern. Haven't found out what the "Turbo BIOS" setting does, though. Even the manual does not really seem to explain it.

dr.zeissler wrote on 2020-03-18, 07:31:

Does the BIOS contain informations about the geometry/calibration of the image?

I haven't disassembled the BIOS, so I currently don't know that, sorry.