VOGONS


First post, by Dorunkāku

User metadata
Rank Member
Rank
Member

I modified my ASUS VL/I-486SVGOX4 rev 1.2 to support 128MB of RAM. I am using two 64MB FPM modules which should give me 128MB of RAM. But the BIOSes listed for the ASUS socket SIS471 boards only support 64MB of RAM. Right now I have the full 128MB recognized by a BIOS from another board, but that BIOS is terrible. I tried modifying the 'modded, write-back L2 fix' labelled BIOS from the ASUS VL/I-486SV2GX4 (Rev. 2.0) with MODBIN by setting bit 2 of register 50 to '1'. This should have repurposed RAS3 as MA11, but that did not work.

Is there a AWARD BIOS for SIS471 that is not terrible like and supports 128MB of RAM? Not with four 32MB sticks ,but with two 64MB sticks or one 128MB FPM stick.

Reply 1 of 4, by rasz_pl

User metadata
Rank l33t
Rank
l33t

My guess would be those bioses ram detection routine doesnt test above 64 = never sees more so never reports more.
Easiest way would be modifying bios by hardcoding result of ram detection routine. LLM should be able to do this when given example of a bios that does detect ram properly and 64MB limited Asus bios.

>Not with four 32MB sticks ,but with two 64MB sticks or one 128MB FPM stick.

does Asus detect 128MB with four 32MB sticks ? that would invalidate my hypothesis

https://github.com/raszpl/sigrok-disk FM/MFM/RLL decoder
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module (AT&T Globalyst)
https://github.com/raszpl/386RC-16 ram board
https://github.com/raszpl/Zenith_ZBIOS Zenith Z-386 MFM-300 ZBIOS disassembly

Reply 2 of 4, by Dorunkāku

User metadata
Rank Member
Rank
Member

My Asus board detected a maximum of two 32MB sticks.

BIOSes from other boards I modified to use RAS3 as MA11 just worked fine with two 64MB sticks. My plan now is to have a look with a disassembler to see the Asus BIOS does differently. I saw the postcodes progress from: 6E, to C1 (Auto detect on-board DRAM & cache), to 30 ( Get size of base and extended memory) to 31 (Test memory). I guess, if I start disassembling after the part where it writes postcode C1 to port 80 I should be able to spot the difference between the BIOSes.

Reply 4 of 4, by Dorunkāku

User metadata
Rank Member
Rank
Member

Succes, well...sort of.
I managed to find the memory size detection routines in both the ASUS and the non ASUS BIOSes. The routine in the non ASUS BIOS is larger than the one in the ASUS BIOS. This, combined with having to fix the absolute adresses used for jumping around in the code, stopped me from just pasting in the non ASUS BIOS routine in the ASUS BIOS.

So I patched in a hard coded value right before the memory size register is actually set and with Modbin set RAS3 to MA11. The resulting BIOS now works with only two memory configurations. The first is two 64MB banks on RAS0 and RAS1 (I didn't test if RAS2 works too). On my board those are now on seperate SIMM slots. And the second being one 64MB bank on RAS0. I don't have a clue why this works even when I specificly told the BIOS that it has 128MB of RAM.