MSFN Forum: Enable48BitLBA | Break the 137Gb barrier! - MSFN Forum

Jump to content


  • 23 Pages +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Enable48BitLBA | Break the 137Gb barrier! Who said it couldn't be done? Enjoy your huge disks :) Rate Topic: -----

#1 User is offline   LLXX 

  • MSFN Junkie
  • PipPipPipPipPipPipPipPipPip
  • Group: Banned
  • Posts: 3,399
  • Joined: 04-December 05

Posted 12 July 2006 - 10:30 PM

Version 1.1 is now available.

2006-07-13 15:19 Finished driver analysis, initial announcement
2006-07-14 10:43 Working on inserting new code
2006-07-15 09:56 First successful build :)
2006-07-15 22:03 Major change of plan
2006-07-20 18:10 Version 1.0 released
2006-07-21 04:51 Begin work on WinME version
2006-07-21 05:50 Finish WinME version
2006-07-21 06:22 Begin work on 4.10.2225
2006-07-21 06:37 Version 1.1 (4.10.2225) released
2006-07-22 07:34 Win98FE version (4.10.2001) released
2006-07-23 08:51 Win98FE version (4.10.2186) released
2006-07-29 20:05 Win98SE version (4.10.2226) released - only for replacing an existing v4.10.2226 file
2006-08-02 17:57 Win95 OSR2+ version (4.00.1111) released
2006-08-04 20:27 Win95 OSR2+ version (4.00.1119) released

For those that don't know, this is an attempt to implement 48-bit LBA support into Windows 98se's default IDE driver, enabling the use of hard drives in excess of 128Gb. This is not just another variant of Loew's "High Capacity Disk Patch" because

1] It's completely free (and of course, has no guarantee)
2] Addressing to 2048Gb is possible (limit of FAT32)
3] A large portion of driver code has been rewritten and optimised
4] LBA-48 commands implemented in separate routines instead of "patched into" existing 28-bit's code
5] Slightly increased performance over Loew's patch due to [4]

If Enable48BitLBA has worked for you, please post a link to a validation image containing the following:

1. Properties page of a drive filled past 137Gb
2. Information dialog, the results of a successful scandisk on the drive
3. System Properties -> Device Manager -> (your IDE controller) Properties -> Driver -> Driver File Details (must show ESDI_506.PDR being used)
Also specify your hardware (in particular, mobo chipset and HDD specs).

This will help to confirm that it works.

Reference: http://www.msfn.org/...showtopic=46752

Quote

However, this current version may cause data corruption on _some_ drives w/ 48-bit LBA!!! So be extremely careful!!!
I am not responsible for any damage caused by the use of these drivers.

Attached File(s)


This post has been edited by LLXX: 04 August 2006 - 03:29 AM



#2 User is offline   wizardofwindows 

  • Wizard of Windows
  • PipPipPip
  • Group: Members
  • Posts: 443
  • Joined: 17-June 05

Posted 12 July 2006 - 10:44 PM

:thumbup excellent

#3 User is offline   MDGx 

  • 98SE2ME + 98MP10
  • Group: Super Moderator
  • Posts: 2,678
  • Joined: 22-November 04
  • OS:none specified
  • Country: Country Flag

Posted 12 July 2006 - 11:30 PM

Congratulations.
Sounds like a major breakthrough for Win98 OSes.

#4 User is offline   T D 

  • Go MSFN!
  • PipPipPipPipPip
  • Group: Members
  • Posts: 940
  • Joined: 05-April 06

Posted 13 July 2006 - 03:34 PM

Can't wait for 48-bit LBA on 98Se!

#5 User is offline   LLXX 

  • MSFN Junkie
  • PipPipPipPipPipPipPipPipPip
  • Group: Banned
  • Posts: 3,399
  • Joined: 04-December 05

Posted 14 July 2006 - 03:10 AM

Having a little bit of a technical difficulty... the driver won't assemble! I'm getting "Out of Memory" errors from ML.

Might have to move the release date forward a bit... :(

#6 User is offline   erpdude8 

  • MSFN Master
  • PipPipPipPipPipPipPipPip
  • Group: Members
  • Posts: 2,139
  • Joined: 24-November 04

Posted 14 July 2006 - 11:25 AM

take your time LLXX. remember that you have to create a 48-bit LBA driver NOT just for Win98se, but also for Win98 FE and WinME. you cant just create a driver just for Win98se and ignore the other versions of Windows.

#7 User is offline   LLXX 

  • MSFN Junkie
  • PipPipPipPipPipPipPipPipPip
  • Group: Banned
  • Posts: 3,399
  • Joined: 04-December 05

Posted 14 July 2006 - 05:02 PM

I've solved the memory problem and it's assembling fine now...

Now I'll just need to figure out what link options were used so I can the exact binary as M$ original one (with unmodified source), then I'll start inserting the new code :)

@erpdude8 : Are there vast differences between the three versions you've mentioned? I'm only working on the one from 98se (file version 4.10.2222 - "ESDI_506 Virtual Device (Version 4.0)")

#8 User is offline   eidenk 

  • MSFN Addict
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 1,527
  • Joined: 28-March 05

Posted 14 July 2006 - 06:00 PM

Keep in mind that the current esdi_506.pdr for 98SE is version 4.10.0.2225. When using Norton File Compare there is 7747 differences against version 4.10.0.2222.

22191 differences between 4.10.0.2222 and 4.90.0.3000 (Win ME)
22357 differences between 4.10.0.2225 and 4.90.0.3000 (Win ME)

See below for the Windows 98 Large IDE Update which contains the current files for both 98 SE (4.10.0.2225) and FE (4.10.0.2186).


http://support.micro...com/kb/q243450/
http://www.microsoft.com/windows98/downloa...ide/Default.asp

This post has been edited by eidenk: 14 July 2006 - 06:16 PM


#9 User is offline   Lunac 

  • Junior
  • Pip
  • Group: Members
  • Posts: 94
  • Joined: 09-July 05

Posted 14 July 2006 - 06:42 PM

My esdi_506.pdr is 4.10.2225, also my Kernel32.dll is 4.10.2225. Running Win98SE of course. LLXX good luck with the build.

This post has been edited by Lunac: 14 July 2006 - 06:42 PM


#10 User is offline   LLXX 

  • MSFN Junkie
  • PipPipPipPipPipPipPipPipPip
  • Group: Banned
  • Posts: 3,399
  • Joined: 04-December 05

Posted 15 July 2006 - 05:02 AM

Quote

This problem only occurs on computers that use a Phoenix BIOS and use the Phoenix BitShift translation algorithm to report the geometry of large IDE hard disks (larger than 32 GB). Your computer is not vulnerable if the BIOS uses logical block addressing (LBA) Assist translation instead of the Phoenix BitShift translation
"vulnerable"... lol. All drives must support LBA according to the ATAPI-4 Standard, so this is a moot point. The driver automatically selects LBA mode when available.

ATAPI-4 Standard, on section 6.2, said:

- All devices shall support LBA translation.
- If the device’s capacity is greater than or equal to one sector and less than or equal to
16,514,064 sectors the device shall support CHS translation.
- If the device’s capacity is greater than 16,514,064 sectors, then the device may support CHS
translation.
- If a device supports CHS translation, then, following a power-on or hardware reset, the CHS
translation enabled by the device shall be known as the default translation.
- If a device supports CHS translation, then a device may allow a host to use the INITIALIZE
DEVICE PARAMETERS command to select other CHS translations.
- If a device supports CHS translation, then IDENTIFY DEVICE words 1,3, and 6 shall describe
the default translation, and words 53-58 shall describe the current translation.
If a device conforms to an earlier Standard (in which case LBA support is Optional), its capacity is unlikely to exceed 32Gb in any case. I doubt there were 32Gb IDE devices being produced in 1996.

Because of this, I doubt there will be any problems encountered in using the 4.10.2222 version of ESDI_506.PDR as a base. In any case, applying the patch to a newer version should prove just as easy.

I've chosen to abandon reassembling the driver completely, as it seems to have been built with a strange Linker that is apparently not available outside of Micro$oft. Instead, it will be more similar to a complex version of the Loew patch.

#11 User is offline   erpdude8 

  • MSFN Master
  • PipPipPipPipPipPipPipPip
  • Group: Members
  • Posts: 2,139
  • Joined: 24-November 04

Posted 15 July 2006 - 12:56 PM

View Posteidenk, on Jul 14 2006, 07:00 PM, said:

Keep in mind that the current esdi_506.pdr for 98SE is version 4.10.0.2225. When using Norton File Compare there is 7747 differences against version 4.10.0.2222.

22191 differences between 4.10.0.2222 and 4.90.0.3000 (Win ME)
22357 differences between 4.10.0.2225 and 4.90.0.3000 (Win ME)

See below for the Windows 98 Large IDE Update which contains the current files for both 98 SE (4.10.0.2225) and FE (4.10.0.2186).


http://support.micro...com/kb/q243450/
http://www.microsoft.com/windows98/downloa...ide/Default.asp


Let's not forget, there was also a version 4.10.2226 of esdi_506.pdr for Win98se [Q252187]. this hotfix was built for certain IBM laptops only that came bundled with pre-installed 98 SE. this version may cause startup problems (like hanging at startup before Win98se loads) on non-IBM machines.

#12 User is offline   LLXX 

  • MSFN Junkie
  • PipPipPipPipPipPipPipPipPip
  • Group: Banned
  • Posts: 3,399
  • Joined: 04-December 05

Posted 15 July 2006 - 04:18 PM

Does anyone know what 4.10.2223 and 4.10.2224 were for?

Anyway, I'm planning to release a fixed 4.10.2222 and do other versions when necessary.

#13 User is offline   Acheron 

  • Friend of MSFN
  • PipPipPipPipPip
  • Group: Members
  • Posts: 937
  • Joined: 28-June 04
  • OS:XP Pro x86
  • Country: Country Flag

Posted 15 July 2006 - 04:39 PM

View PostLLXX, on Jul 16 2006, 12:18 AM, said:

Does anyone know what 4.10.2223 and 4.10.2224 were for?

Anyway, I'm planning to release a fixed 4.10.2222 and do other versions when necessary.


Good point to first release a standard patch for Windows 98SE. The best would be to test on a clean Windows 98SE machine with harddiscs larger than 137 GB.

However we must not forget to test also HDD's smaller than 137 GB!

Especially HDD's <8GB and <32GB HDD's should get tested, since these use different specifications.

#14 User is offline   erpdude8 

  • MSFN Master
  • PipPipPipPipPipPipPipPip
  • Group: Members
  • Posts: 2,139
  • Joined: 24-November 04

Posted 15 July 2006 - 07:58 PM

View PostLLXX, on Jul 15 2006, 05:18 PM, said:

Does anyone know what 4.10.2223 and 4.10.2224 were for?

Anyway, I'm planning to release a fixed 4.10.2222 and do other versions when necessary.


Esdi_506.pdr version 4.10.2223 is mentioned in MS article 239694:
http://support.micro....com/kb/239694/

not sure about v4.10.2224 of esdi_506.pdr

View Posthp38guser, on Jul 15 2006, 05:39 PM, said:

Good point to first release a standard patch for Windows 98SE. The best would be to test on a clean Windows 98SE machine with harddiscs larger than 137 GB.

However we must not forget to test also HDD's smaller than 137 GB!

Especially HDD's <8GB and <32GB HDD's should get tested, since these use different specifications.


good points hp38guser made of testing the patch on HDDs of all sizes.

#15 User is offline   LLXX 

  • MSFN Junkie
  • PipPipPipPipPipPipPipPipPip
  • Group: Banned
  • Posts: 3,399
  • Joined: 04-December 05

Posted 16 July 2006 - 05:13 AM

View Posthp38guser, on Jul 15 2006, 05:39 PM, said:

However we must not forget to test also HDD's smaller than 137 GB!

Especially HDD's <8GB and <32GB HDD's should get tested, since these use different specifications.
If I was following the original plan of fully rebuilding the driver, that would definitely be done before release. However, as the new plan of action I'm taking is not going to affect the existing code at all except for one change, I'm quite certain it will work fine at smaller sizes. Testing the new code, however, is a totally different problem.

Here's the only change to the existing code that I'll make:
LCOD:C000062E mov	 eax, [ebx+10h] ; get LBA
LCOD:C0000631 mov	 ecx, [esi+0BBh]
LCOD:C0000637 test	byte ptr [ecx+203h], 4; LBA disabled?
LCOD:C000063E jz	  short use_CHS
LCOD:C0000640 test	eax, 0F0000000h; >128Gb?
LCOD:C0000645 jnz	 short use_CHS  ; ** this jump will go to the new code appended to end of section **


#16 User is offline   MDGx 

  • 98SE2ME + 98MP10
  • Group: Super Moderator
  • Posts: 2,678
  • Joined: 22-November 04
  • OS:none specified
  • Country: Country Flag

Posted 17 July 2006 - 07:09 PM

Windows 98 SE ESDI_506.PDR versions:

* Microsoft Windows 98 SE Computer Hangs with Removable Device in Docking Station ESDI_506.PDR 4.10.2226 Fix:
http://support.micro....com/?id=252187
Direct download [154 KB, English]:
http://www.mdgx.com/files/Q252187.EXE
Install this ESDI_506.PDR Fix ONLY on IBM portables with removable disks!
Install ESDI_506.PDR 4.10.2225 Fix below on ALL other PCs/portables!


* Microsoft Windows 98/98 SE ScanDisk Errors With (E)IDE Hard Disks > 32 GB ESDI_506.PDR (4.10.2186 for Win98/98 SP1 + 4.10.2225 for Win98 SE) Fix:
http://support.micro....com/?id=243450
Direct download [158 KB, English]:
http://download.microsoft.com/download/win.../243450USA8.EXE
Install this ESDI_506.PDR Fix on ALL PCs/portables EXCEPT IBM portables with removable disks!
Install ESDI_506.PDR 4.10.2226 Fix above ONLY on IBM portables with removable disks!


Windows 98 FE (First Edition) ESDI_506.PDR version:

* Microsoft Windows 98 IBM ThinkPad Laptops ACPI Standby Error With IDE DMA Hard Disk ESDI_506.PDR 4.10.2001 + IOS.VXD 4.10.2001 Fix:
http://support.micro....com/?id=193473
Direct download [167 KB, English]:
http://www.mdgx.com/files/Q193473.EXE

HTH

#17 User is offline   MDGx 

  • 98SE2ME + 98MP10
  • Group: Super Moderator
  • Posts: 2,678
  • Joined: 22-November 04
  • OS:none specified
  • Country: Country Flag

Posted 18 July 2006 - 12:08 PM

LLXX:

Please tell Gape to make this thread a sticky after you post the driver, and also to merge the old one with this one [if possible], and then close your old one:
http://www.msfn.org/...showtopic=46752

Thanks.

#18 User is offline   LLXX 

  • MSFN Junkie
  • PipPipPipPipPipPipPipPipPip
  • Group: Banned
  • Posts: 3,399
  • Joined: 04-December 05

Posted 20 July 2006 - 01:14 AM

Version 1.0 is now available.

I repeat once again, I am NOT responsible for any loss of data caused by this driver.

We do not have any hard drives supporting 48-bit LBA, so I am unable to test the extended commands.

There should be no problems with drives less than 128Gb. It's just the new code that needs testing.

#19 User is offline   Acheron 

  • Friend of MSFN
  • PipPipPipPipPip
  • Group: Members
  • Posts: 937
  • Joined: 28-June 04
  • OS:XP Pro x86
  • Country: Country Flag

Posted 20 July 2006 - 03:05 AM

I have two HDD's in my system. One 40GB and a 250GB Maxtor Diamond Max 10 ATA HDD. It's special for it's ATAPI-6 (133 MB/s) Interface. most HDD's use ATAPi-5 (100 MB/s).

I'll try to backup all stuff necessary to the 40GB HDD and DVD's. Than I'll be able to do some Windows 98 tests with the 250 GB HDD.

However I'm not sure about my mainboard. It's a VIA KT333 mainboard. Does this motherboard automaticly enable 48-bit lba support or only after I install the VIA ide drivers in Windows 98?

#20 User is offline   LLXX 

  • MSFN Junkie
  • PipPipPipPipPipPipPipPipPip
  • Group: Banned
  • Posts: 3,399
  • Joined: 04-December 05

Posted 20 July 2006 - 03:47 AM

Quote

However I'm not sure about my mainboard. It's a VIA KT333 mainboard. Does this motherboard automaticly enable 48-bit lba support or only after I install the VIA ide drivers in Windows 98?
The point is to use my fixed driver, not VIA's own drivers. Nothing needs to be "enabled". The driver will automatically switch to using extended commands when reading past the limit (see doc for more info).

Share this topic:


  • 23 Pages +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

2 User(s) are reading this topic
0 members, 2 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2013 msfn.org
Privacy Policy