LLXX Posted July 13, 2006 Posted July 13, 2006 (edited) Version 1.1 is now available.2006-07-13 15:19 Finished driver analysis, initial announcement2006-07-14 10:43 Working on inserting new code2006-07-15 09:56 First successful build 2006-07-15 22:03 Major change of plan2006-07-20 18:10 Version 1.0 released2006-07-21 04:51 Begin work on WinME version2006-07-21 05:50 Finish WinME version2006-07-21 06:22 Begin work on 4.10.22252006-07-21 06:37 Version 1.1 (4.10.2225) released2006-07-22 07:34 Win98FE version (4.10.2001) released2006-07-23 08:51 Win98FE version (4.10.2186) released2006-07-29 20:05 Win98SE version (4.10.2226) released - only for replacing an existing v4.10.2226 file2006-08-02 17:57 Win95 OSR2+ version (4.00.1111) released2006-08-04 20:27 Win95 OSR2+ version (4.00.1119) releasedFor 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 optimised4] LBA-48 commands implemented in separate routines instead of "patched into" existing 28-bit's code5] 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 137Gb2. Information dialog, the results of a successful scandisk on the drive3. 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/board/index.php?showtopic=46752However, 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.4102222F.ZIP4903000F.ZIP4102225F.ZIP4102001F.ZIP4102186F.ZIP4102226F.ZIP4001111F.ZIP4001119F.ZIP Edited August 4, 2006 by LLXX
MDGx Posted July 13, 2006 Posted July 13, 2006 Congratulations.Sounds like a major breakthrough for Win98 OSes.
LLXX Posted July 14, 2006 Author Posted July 14, 2006 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...
erpdude8 Posted July 14, 2006 Posted July 14, 2006 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.
LLXX Posted July 14, 2006 Author Posted July 14, 2006 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)")
eidenk Posted July 15, 2006 Posted July 15, 2006 (edited) 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.microsoft.com/kb/q243450/http://www.microsoft.com/windows98/downloa...ide/Default.asp Edited July 15, 2006 by eidenk
Lunac Posted July 15, 2006 Posted July 15, 2006 (edited) 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. Edited July 15, 2006 by Lunac
LLXX Posted July 15, 2006 Author Posted July 15, 2006 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.- All devices shall support LBA translation.- If the device’s capacity is greater than or equal to one sector and less than or equal to16,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 CHStranslation.- If a device supports CHS translation, then, following a power-on or hardware reset, the CHStranslation 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 INITIALIZEDEVICE PARAMETERS command to select other CHS translations.- If a device supports CHS translation, then IDENTIFY DEVICE words 1,3, and 6 shall describethe 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.
erpdude8 Posted July 15, 2006 Posted July 15, 2006 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.microsoft.com/kb/q243450/http://www.microsoft.com/windows98/downloa...ide/Default.aspLet'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.
LLXX Posted July 15, 2006 Author Posted July 15, 2006 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.
Acheron Posted July 15, 2006 Posted July 15, 2006 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.
erpdude8 Posted July 16, 2006 Posted July 16, 2006 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.microsoft.com/kb/239694/not sure about v4.10.2224 of esdi_506.pdrGood 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.
LLXX Posted July 16, 2006 Author Posted July 16, 2006 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 LBALCOD:C0000631 mov ecx, [esi+0BBh]LCOD:C0000637 test byte ptr [ecx+203h], 4; LBA disabled?LCOD:C000063E jz short use_CHSLCOD:C0000640 test eax, 0F0000000h; >128Gb?LCOD:C0000645 jnz short use_CHS ; ** this jump will go to the new code appended to end of section **
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now