80GB: 12/18/1999-i440LX-SMC67X-2A69JDC-00

BIOS update, EIDE card, or overlay software? (FAQ Hard disk recognition)
Selfdefence
New visitors - please read the rules.
Posts: 5
Joined: Tue Mar 01, 2005 11:10 pm

I have an problem with my Gemlight P6LIAK V0 motherboard. The BIOS did not recognize my 80GB, Maxtor 4D080H4 harddisk. I have upgrade to the last BIOS from DTK for the DTK PRM-0076I E0. It now recognizes the harddisk but hangs on size calculation. If I limit the harddisk to 4092 cylinders it works fine.

Current BIOS:
http://www.dtk.com.tw/download/bios/76ie0b.html

BIOS Type: Award Modular BIOS v4.51PG
BIOS ID: 12/18/1999-i440LX-SMC67X-2A69JD19C
OEM Sign-On: (2A69JD19) DTKPRM0076I.P02.01.07-V1.07

Any ideas?

Thanks!
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

Looking at it now....yes, 32GiB bug fixed but not 64GiB bug. Should be at the "untested" link in my signature shortly...
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Selfdefence
New visitors - please read the rules.
Posts: 5
Joined: Tue Mar 01, 2005 11:10 pm

Thanks NickS,

I have tried the untested BIOS and it does not work. It will not get past the 'Systems Configurations' table. It usually hangs on size calculation with any attached harddrive. If it doesn't, it just crashes displaying random garbage after the size calculation part.
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

OK, thanks for the feedback. Is it set in CMOS to autodetect? Rumours say that using User Defined parameters sometimes works in this situation, particularly with WD drives.

If it is set to autodetect but crashing or displaying garbage at the Configuration display screen, I assume that it is getting through the autodetect phase ok; does it also cause a system hang when you enter the CMOS configuration page to display drive parameters? I'm just wondering whether it is worth taking a look at the BIOS manually.

Would you like me to patch with apple_rom's "bp", or try that yourself (www.rom.by)?
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

Would you like me to patch with apple_rom's "bp", or try that yourself (www.rom.by)?
Hmm, maybe not.

Code: Select all

(c)2002-2003 apple_rom, www.ROM.by
76I107.bin have not enough space for adding ROM. (Over 4EB2h bytes)
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Selfdefence
New visitors - please read the rules.
Posts: 5
Joined: Tue Mar 01, 2005 11:10 pm

All drives are set to autodetect. I have tried user CHS settings too.

With the original BIOS, it detects my WD Caviar 26400R and can calculate and display its size (6448.6MB). It detects 80GB Maxtor, but can not display the size.

With the modded BIOS it can't diplay the size in 'Systems Configurations' table for both drives. It just hangs when its supposed to display it. But it can display the size of the WD in the 'Standard CMOS setup' BIOS page.

I can't get it to display random garbage anymore. (no more inverted M's and omegas and such). But sometimes it gets past the size part, then it lists all ports at adress 720 and 4 harddrives SMART messages.

If I look at http://www.ryston.cz/petr/bios/ga586t2_mod.html
it looks to me I can just skip the whole part and start with: 'X:05D4 ret', or am I missing something here?

I don't know much about ASM, but I'm going to try it anyway. :D

Code: Select all

;-------------------
;calculate HDD size
;-------------------
-- MACRO				F000_call	Get_HDD_CMOS_Info
X:05D4  0E				push	cs
X:05D5  68 05E0				push	ret_addr_1
X:05D8  68 7B4A				push	offset Get_HDD_CMOS_Info
X:05DB  EA E000ECC0			jmp	far ptr F000_call_proc
X:05E0			ret_addr_1
X:05E0  1E				push	ds
X:05E1  53				push	bx
X:05E2  75 1D				jnz	short Get_User_Type
X:05E4  0F B6 02			movzx	ax,byte ptr [bp+si]		;Hdd type no.
X:05E7  FE C8				dec	al
X:05E9  C1 E0 04			shl	ax,4
X:05EC  BB 56F2				mov	bx,offset HDISK_PARMS
X:05EF  03 D8				add	bx,ax
X:05F1  68 F000				push	0f000h
X:05F4  1F				pop	ds
X:05F5  0F B6 47 02			movzx	ax,byte ptr [bx+2]		;heads
X:05F9  0F B6 4F 0E			movzx	cx,byte ptr [bx+14]		;sectors
X:05FD  8B 1F				mov	bx,[bx]				;cylinders
X:05FF  EB 0A				jmp	short Disp_HDD_Size
X:0601			Get_User_Type:
X:0601  0F B6 43 02			movzx	ax,byte ptr [bp+di+2]		;heads
X:0605  0F B6 4B 07			movzx	cx,byte ptr [bp+di+7]		;sectors
X:0609  8B 1B				mov	bx,[bp+di+0]			;cylinders
X:060B			Disp_HDD_Size:
X:060B  C1 E1 02			shl	cx,2
X:060E  F7 E1				mul	cx
X:0610  F7 E3				mul	bx
X:0612  5B				pop	bx
X:0613  1F				pop	ds
X:0614  B9 1E84				mov	cx,15625/2
X:0617  F7 F1				div	cx				;Divide overflow here!!!
X:0619  89 86 009C			mov	HDDSIZE[bp],ax
-- MACRO				F000_call Disp_Word_Int5
X:061D  0E				push	cs
X:061F  68 0629				push	offset ret_addr_2
X:0621  68 43AA				push	offset Disp_Word_Int5
X:0624  EA E000ECC0			jmp	far ptr F000_call_proc
X:0629			ret_addr_2:
X:0629  BE 02EC				mov	si,offset MB_Str
X:062C			@@:
-- MACRO				post_func_call	Disp_Str_In_BIOS
X:062C  0E				push	cs
X:062D  68 0638				push	offset ret_addr_3
X:0630  68 6681				push	offset Disp_Str_In_BIOS
X:0633  EA F0004F32			jmp	far ptr Post_call_proc		; (F000:4F32)
X:0638			ret_addr_3:
X:0638  C3				ret
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

The first step is to identify the correct entry point in the AWARDEXT.ROM component of the BIOS, as it is not at 0x05D4 in your BIOS. I am not at my patching machine right now, so I can't tell you where it is. I assume you know how to use CBROM, or will do soon! Also, I find that the sequence shown as:

Code: Select all

X:05F5  0F B6 47 02			movzx	ax,byte ptr [bx+2]		;heads
X:05F9  0F B6 4F 0E			movzx	cx,byte ptr [bx+14]		;sectors
appears to be different in your BIOS, so it is not straightforward and this could be why Rainbow's utility has not worked.
I guess a RET might simply bypass the configuration display as you hope; good luck!
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Ritchie
BIOS Guru
Posts: 761
Joined: Wed Oct 30, 2002 5:17 am

if the BIOS can be patched with an alternative patcher that would both detect and display a drive's size correctly, I would consider this preferable as long as other features and functionality are not compromised.

Failing that, I would set the drive type and mode (LBA, CHS, etc.) to AUTO for all ATA disks. Reason being that if they are a user setting and display the drive size incorrectly, this may confuse you each time you look in that section of the BIOS. But with the auto settings, they get detected every time you boot and you will probably get used to the idea that drives are being detected properly each time you boot even if they are not displaying correctly.

If AUTO for some reason can not be used, revert to USER. And if the auto-detect will not work but manual parameters will, I would consider that as a last resort.

Off-topic slightly, if anyone can explain, in a private message if need be (to avoid me hijacking the post) why Western Digital drives often do not display their size correctly while other makes usually will, this would be quite useful to be aware of.
sulbert
Master Flasher
Posts: 204
Joined: Wed Jul 17, 2002 1:38 pm
Contact:

...
Last edited by sulbert on Thu Mar 03, 2005 10:54 pm, edited 1 time in total.
Rainbow
The UniFlasher
Posts: 3122
Joined: Wed Mar 20, 2002 4:16 pm
Location: Slovakia
Contact:

You MUST use CBROM 1.xx (not 2.xx) for Award 4.51 BIOSes.
Patched and tested BIOSes are at http://wims.rainbow-software.org
UniFlash - Flash anything anywhere
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

sulbert wrote:Looks like the CBROM has troubles with that BIOS.
CBROM 1.13 has no problem.

Code: Select all

CBROM v1.13a
Copyright (c) Award Software, Inc. 1995-1997 All Rights Reserved.


              ********   76i107.bin BIOS component ********

 No. Item-Name         Original-Size   Compressed-Size Original-File-Name
==========================================================================
  0. System BIOS       20000h(128.00K)13DB8h(79.43K)original.tmp
  1. CPU micro code    04000h(16.00K)022EFh(8.73K)CPUCODE.BIN
  2. ACPI table        024CAh(9.20K)00E51h(3.58K)ACPITBL.BIN
  3. EPA pattern       00642h(1.56K)002A1h(0.66K)AWARDEPA.BIN
  4. Other(4100:0000)  0432Dh(16.79K)02E64h(11.60K)awardext.rom

  Total compress code space  = 1A000h(104.00K)
  Total compressed code size = 19FFDh(104.00K)
  Remain compress code space = 00003h(0.00K)
The other thing that could be done perhaps is to remove unwanted CPUs from the CPUcode table to shrink its size.
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
sulbert
Master Flasher
Posts: 204
Joined: Wed Jul 17, 2002 1:38 pm
Contact:

...
Last edited by sulbert on Thu Mar 03, 2005 10:54 pm, edited 1 time in total.
Selfdefence
New visitors - please read the rules.
Posts: 5
Joined: Tue Mar 01, 2005 11:10 pm

I had to hotflash the chip in another bord to get the machine booting again.
Selfdefence wrote: it looks to me I can just skip the whole part and start with: 'X:05D4 ret'
Sweet, it works!

I used AwardMod and WinHex to do it.
NickS
BIOS Bodhisattva
Posts: 3145
Joined: Fri May 03, 2002 10:34 am
Location: Thames Valley, UK

I'm still interested in what went wrong with Rainbow's patcher. My statement above about the code being different is wrong, I was looking in the wrong place. :oops: For this BIOS the configuration "display size" entry point apears to be at 0x0980 in the XGROUP code.
Tested patched BIOSes. Untested patched BIOSes.
Emails *will* be ignored unless the subject line starts "Wim's BIOS forum"
Rainbow
The UniFlasher
Posts: 3122
Joined: Wed Mar 20, 2002 4:16 pm
Location: Slovakia
Contact:

Looks like I should remember how the code works (or should work) and debug it...
Patched and tested BIOSes are at http://wims.rainbow-software.org
UniFlash - Flash anything anywhere
Post Reply