Installation, updates, general problem solving and assistance.
DyLucke

2018-03-23 11:23 »

Hello there community, i come here to request for some advice.

I own a Fujitsu Siemens Scenic S computer i want to refurbish.
It's an old PIII Coppermine 1ghz on an intel 815i motherboard chipset.
I pretend to turn it a decent Win98 gaming computer with DOS capabilities.

However i'm having some problems.
I would like to have a 250gb IDE HDD installed and it's driving me nuts.

I'm aware that there are several limitations for large HDDs, related to the BIOS or Windows98SE themselves.

That's what i've tested so far having a boot disk for Win98SE and a bootable CD based Win98SE installation.

FDISK only detects around 40GB of space on the HDD.
I've partitioned the HDD using FDISK and created a primary partition of a bit less than 8gb, where i've installed DOS 7.10 using the unofficial installation CD.

The rest of the detected HDD was set as an extended partition of around 34GB.

I can install Windows98SE on the extended partition with apparently no issues.
However, i wasn't able to make the rest of the HDD available, not even for windows.

I've tried a couple of partitioning tools (W98 based) with no luck, they can't just detect the hardware returning an error message related to the drive unit of the geometry of the HDD.

I've used GParted to partition the rest of the disk, but was not satisfactory either... I was able to partition, boot up and all the stuff, but, if i only set a single partition for the around 190gb remaining, the partition will not be recognised properly since it's over the 137gb limit.

So i have partitioned it setting different partitions, different sizes... A bit of testing.

It seems W98 is not able to recognise a 64GB USB memory stick in the same way it can't recognise any HDD partition over 64GB.
I believe it makes somehow sense since outside W98 the computer can't detect sizes over 41GB.

I'm not sure about how all this stuff works, i've never tried to install such a large size HDD on a Windows98 system.

I wonder if there's some way to make all the space accesible.

I've read somewhere about installing a PCI-IDE controller card, but i'm not sure if it would solve anything, or if it would be accesible under DOS.

Any idea about how to solve this situation?

Thank you very much.

User avatar
!
25%
Posts: 2539
Joined: 2013-02-25 18:36

2018-03-23 23:23 »

I think you are out of luck here...
https://www.philscomputerlab.com/windows-98-maximum-hard-drive-capacity.html wrote:The 28 bit LBA supports 2^28 sectors which works out to 268435456 sectors. Each sector holds 512 bytes and therefore the maximum capacity is 137438953472 bytes. This is the maximum Windows 98 supports for a bootable hard drive...
...about 137 GB is the maximum amount you can use.

Why won't you just install a virtual computer and make that the gaming machine? Isn't it much better, more reliable and of course, future proof?

As much as I love those old hardwares... unless it's an old AMIGA or ATARI or VIC20... I say, sell it! ...or clean it and save it 20-30 years, it will be worth a fortune that time. :think:

User avatar
!
25%
Posts: 2539
Joined: 2013-02-25 18:36

2018-03-23 23:25 »

Off-topic, wow, I almost replied to you exactly 12 hours from your post time! Hahahhaa spooky... :mrgreen: :eek:

Guest

2018-03-24 06:39 »

The 137GB limit was broken over a decade ago.
Search MSFN or rloew for solutions.

User avatar
!
25%
Posts: 2539
Joined: 2013-02-25 18:36

2018-03-25 05:38 »

Right, I forgot about that... I think he sells the patch or something. It was years ago. :oops:

User avatar
Steven W
VIP
Posts: 1151
Joined: 2013-08-10 22:40

2018-10-28 03:01 »

Wish I'd been here back when..

http://www.mdgx.com/files/atadrv98.php

http://www.mdgx.com/files/ATADRV98.EXE

Cached:
ATADRV98.EXE
(125 KiB) Downloaded 16 times
MDGx
Unofficial Windows 98 SE 48-bit LBA > 137 GB Hard Disk
ATA/IDE Improved Driver ESDI_506.PDR 4.10.2230 ReadMe

Unofficial Windows 98 SE 48-bit LBA > 137 GB Hard Disk ATA/IDE Improved Driver ESDI_506.PDR 4.10.2230 ReadMe in plain text (ASCII) format



----------------------
-=[ Enable48BitLBA ]=-
----------------------
v1.1 2006-07-21 06:35


Enable48BitLBA MSFN forum:
http://www.msfn.org/board/index.php?showtopic=78592
Reference:
http://www.msfn.org/board/index.php?showtopic=46752

Install Fixed ESDI_506.PDR 4.10.2230 on ALL PCs/portables, including IBM
portables/laptops with removable disks!
This generic ESDI driver (ESDI_506.PDR) build should work properly with all
types of Personal Computers (PC) + portables.

NOTE
~~~~
This fix/update is cumulative. This means it includes ALL BUG fixes from all
previous official + unofficial patches/(hot)fixes/updates. Do NOT replace with
ANY other older file version(s) UNLESS having problems with current file
version(s).

INSTALL / BACKUP
~~~~~~~~~~~~~~~~
This update copies ESDI_506.PDR 4.10.2230 into %windir%\SYSTEM\IOSUBSYS
[%windir% = usually C:\WINDOWS].
Original file (if any) is backed up (renamed) as:
ESDI_506.ORI
into your %windir%\SYSTEM\IOSUBSYS folder.
CAUTION:
Installing more than ONCE will overwrite the renamed backup (ESDI_506.ORI)!

RESTORE / UNINSTALL
~~~~~~~~~~~~~~~~~~~
How to restore original driver (if any):
Start button -> Settings -> Control Panel -> Add/Remove Programs -> select
"Unofficial 48-bit LBA > 137 GB Hard Disk ATA/IDE Improved Driver" -> click
Add/Remove button.
Or run this command from a DOS box/session/window:
RUNDLL32 ADVPACK.DLL,LaunchINFSection %windir%\INF\ATADRV98.INF,UNX
This restores original file (if any) from %windir%\SYSTEM\IOSUBSYS renamed
backup:
ESDI_506.ORI
back to its original name:
ESDI_506.PDR

Description
~~~~~~~~~~~
This generic ESDI driver has been improved to make use of the 48-bit LBA
command set introduced in the ATAPI-6 standard for access to devices which
contain more than 268,435,455 sectors.

NEW WINDOWS INSTALLATIONS
~~~~~~~~~~~~~~~~~~~~~~~~~
If you are doing a clean install of Windows on a Computer where any of the
drives has a partition extending above the 137 GB limit, you must install the
patched ESDI_506.PDR before Windows has a chance to use its unpatched driver.
Corruption may occur before you can complete the installation otherwise.
If the Windows partition itself is above the 137 Gb limit, it will DEFINTELY
CRASH!

HARD DRIVE SIZE LIMITS
~~~~~~~~~~~~~~~~~~~~~~
The patched ESDI_506.PDR provides support for Hard Drives up to the 32-bit
Addressing Limit of 2048 GB. Possibly DOS, BIOS or Windows flaws may limit
support to 1024 GB or less. Raw Disk access tools may have their own limits.

DRIVE/PARTITION SIZE LIMITS
~~~~~~~~~~~~~~~~~~~~~~~~~~~
The size of individual Drives/Partitions are subject to additional limitations
due to File System design and Partition management tools.

IN CASE THIS ESDI_506.PDR IS OVERWRITTEN
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you install a Windows update (MDCU, Unofficial Service Pack, update, hotfix
etc) that replaces this newer ESDI_506.PDR file, and have defined
Drives/Partitions that extend above the 137 GB limit, there is a possibility of
data loss anywhere on that drive/partition.
This is due to a flaw in the original version of the ESDI_506.PDR file that
misinterprets sectors above the 137 GB limit as being sectors below it.
If in doubt, rerun the patched ESDI_506.PDR driver installer executable
BEFORE allowing Windows to reboot. If the Computer reboots before you can run
that program, make it boot in Safe Mode, run the installer, and then Reboot
again.
Or add this line:

COPY/Y %winbootdir%\COMMAND\BIGHDD\ESDI_506.PDR %winbootdir%\SYSTEM\IOSUBSYS\ESDI_506.PDR>NUL

to your C:\AUTOEXEC.BAT file, using Notepad in Windows or (EDIT.COM in DOS).
Create a new text file using Notepad in Windows (or EDIT.COM in DOS), name it
AUTOEXEC.BAT and place it in C:\ root, if you have never used AUTOEXEC.BAT
before.
Then reboot.
Last step: delete [or comment out/remark with REM or a double colon (::)] the
line above, that is if you do use an AUTOEXEC.BAT on an every day basis.
If you do not use an AUTOEXEC.BAT file, just delete it altogether after the
reboot.

System Requirements
~~~~~~~~~~~~~~~~~~~
Windows 98 Second Edition (SE).

Technical Information
~~~~~~~~~~~~~~~~~~~~~
The extended commands that have been added are:
- 25 READ DMA EXT
- 24 READ SECTOR(S) EXT
- 42 READ VERIFY SECTOR(S) EXT
- 35 WRITE DMA EXT
- 34 WRITE SECTOR(S) EXT
The code to use these commands is appended to the end of the existing LCOD
section along with a new register initialiser to accomodate the new doubly-
written registers. The new code duplicates the style of the existing code
where necessary.

FAQ
~~~
1. Can this driver be used with drives less than 128 Gb?
> In most cases. The driver will switch over to extended commands past the
268,435,200th sector. Drives between 268,435,201 and 268,435,455 sectors
that do not implement the extended command set properly may malfunction at
this boundary condition.

2. Can this driver be used with SATA devices?
> "Though Serial ATA (SATA) will not be able to directly interface with
legacy Ultra ATA (UATA) hardware, it is fully compliant with the ATA
protocol and thus is software compatible." - SATA standard.

3. Differences between this and R.Loew's "High Capacity Disk Patch" (HCDP)?
> a. HCDP is commercial software. Enable48BitLBA is freeware.
b. HCDP does not implement a separate register initialiser and commands
section (read,read_noDMA,write,write_noDMA,verify). This driver uses
a separated execution flow resulting in slightly better performance.
c. HCDP freeware only accesses up to 145 Gb. Enable48BitLBA concievably
should work up to FAT32 addressing limit of 2048 Gb (less 1 byte).

4. What about limits on partition sizes?
> This driver does not accept.

Disclaimer
~~~~~~~~~~
THE AUTHOR SHALL NOT BE LIABLE IN ANY WAY (INCLUDING NEGLIGENCE) FOR DAMAGE
OR SUBSEQUENT DAMAGE ARISING FROM THE USE OF THIS SOFTWARE. IT IS STRONGLY
RECOMMENDED TO BACKUP ALL DATA BEFORE INSTALLING THIS SOFTWARE. SOFTWARE IS
NOT APPROVED FOR USE IN MISSION-CRITICAL ENVIRONMENTS.
Provided 'as is', without any warranties, expressed or implied.
Use at your own risk!

License
~~~~~~~
Freeware, no restrictions.

Greetz to
~~~~~~~~~
Petr/MSFN (for the idea) Tihiy/MSFN (RPLite!) MDGx/MSFN (best site for 9x!)
Team DoKEMiLU (IOS docs) PrincessByte/Angelix86 (general help),
... and YOU, for using this release. :)

Author
~~~~~~
LittyX/Lixaanli [pncw_redir_7031@hotmail.com]
______________________________________________________________________________
This installer created using MS Iexpress/INF/SED tool [free]:
http://www.mdgx.com/add.htm#IEA
More info:
http://www.mdgx.com/add.htm#INF
MDGx
http://www.mdgx.com/


Back 2 Contents
Back!
137GB limit - ESDI_506.PDR and other limits
By Petr, May 22, 2005 in Windows 9x Member Projects

1 2 3 4 5 6 NEXT Page 1 of 12
Petr
Petr

0
995 posts
OS: 98SE
Country:
Posted May 22, 2005
Since I have invented how to break 34GB and 64GB barrier in Award BIOS several years ago (details here) I tried to summarize the knowledge about 137GB barrier and suggest some solutions.

At first, it has to be expressed that 32/34 GB limit (old Award BIOS, sysdm.cpl in W98/SE/ME) and 64 GB limit (old Award BIOS) are caused by overflow condition in the software (BIOS or CPL) and may be considered as bugs - the programer just used 16-bit integer value for disk capacity in megabytes => 32GB limit for signed int (sysdm.cpl), 64GB limit for unsigned int (Award BIOS), or divide overflow in translated geometry calculation (Award BIOS).

137GB limit has different nature. It is caused by different logic of the hardware interface of the hard disk drive. Now I will forget all older HDDs that do not support LBA and I will describe the difference. Classic HDDs use 28-bit addressing of the sector, each sector has 512 bytes, and therefore the maximum size is 0xfffffffh * 512 = 137,438,952,960 bytes. New 48-bit LBA addressing has theoretical maximum size 0xffffffffffff * 512 = 144,115,188,075,855,360 bytes. Detail description of the difference and how it works is in ATA/ATAPI-7 specification, especially chapter 4.14 on page 38/58. Another source of information is http://www.48bitlba.com/ .

I will describe it in short.

How ithe IDE (ATA) interface works? It is controlled by 8+1 registers addressed as ports (page 71 of ATA/ATAPI-7 spec), given example is for the most standard base address of the primary IDE controller 0x1f0 to 0x1f7 and 0x3f6.

When read:

0x1f0: Data

0x1f1: Error

0x1f2: Sector Count

0x1f3: LBA low

0x1f4: LBA mid

0x1f5: LBA high

0x1f6: Device

0x1f7: Status

0x3f6: Alternate Status

When written:

0x1f0: Data

0x1f1: Features

0x1f2: Sector Count

0x1f3: LBA low

0x1f4: LBA mid

0x1f5: LBA high

0x1f6: Device

0x1f7: Command

0x3f6: Device Control

For 28-bit LBA addressing, the highest 4 bits are part of the Device register.

For example, read of a sector works so that Sector Count, LBA Low, Mid, High, Device register are filled with the right data and then the Command is issued. Please also see table 6, p. 39/59.

48-bit LBA uses the same interface, but Sector Count, LBA Low, Mid, High are 2-bit FIFO registers, it means that the first write to these register contain upper 24 bits and the second write lower 24 bits. The 4 bits of Device register used by 28-bit LBA for are not used by 48-bit LBA. Please see table 5, p. 38/58.

This description clearly shows that there has to be no special hardware controller to support 48-bit LBA HDD, only the software has to be modified to address the sectors properly. To boot from such disk, either the BIOS has to have 48-LBA support, or some boot manager has to be used. Also if you want to use DOS based tools that use BIOS.

And how it is with Windows 98?

The maximum FAT32 partition size is 2 TB, it is (2^32-1) * 512 = 2,199,023,255,552 bytes. Windows seems to use 32-bit addressing of sectors. If the upper 4 bits are zero, 28-bit LBA will be used and no problem arise. But for size above 137GB, 48-bit LBA addressing has to be used and it means the above described two writes to each address register, in this case it means to write the upper 8 bits to the LBA Low register and zeroes to LBA Mid and LBA High in first step, and in the second step to write remianing 24 bits to LBA Low-Mid-High. Also Sector Count register has to be written in 2-byte sequence if programmed.

And this is the modification that has to be done with ESDI_506.PDR driver. There is a commercial patch made by Rudolph R. Loew but if we are looking for something to add to the SE SP, it has to be free. I'd strongly recommend that if anybody will want to write the patch for ESDI_506.PDR, he should never look at Mr. Loew patch to avoid possible license problems.

So what has to be done. ESDI_506.PDR is linear executable (LE) file, there are symbols available and also debug version + symbols is available in Windows 98 DDK.

All routines that has to be modified are in the first code segment, it is located at address 0x00800 in the ESDI_506.PDR file and this segment has size 0x2000 = 8192 bytes. In version 4.10.2225, 0x1dec = 7660 bytes are used, it means there are 532 bytes free for the patch. The code that needs to be modified seems to be in the following 4 procedures:

ESDI_Start_Hardware

ESDI_Func_Read

ESDI_Func_Write

ESDI_Func_Verify

So if the sector address is lower than 0xfffff00, old routine will be used, if it is higher or equal, new routine with LBA-48 addressing has to be used. In fact, this new routine can to be simplified to writing 8 highest bits to LBA Low and zeroes to LBA Mid and High and then the old procedure can be called - but with changed command number. It looks like the following commands are used, the first command number is for 28-bit LBA, the second for 48-bit LBA:

0xc8 -> 0x25 − READ DMA EXT

0xc4 -> 0x29 − READ MULTIPLE EXT

0x20 -> 0x24 − READ SECTOR(S) EXT

0x40 -> 0x42 − READ VERIFY SECTOR(S) EXT

0xca -> 0x35 − WRITE DMA EXT

0xc5 -> 0x39 − WRITE MULTIPLE EXT

0x30 -> 0x34 − WRITE SECTOR(S) EXT

There may be other tests needed, but this seems to be essential.

Regarding utilities, some of them use BIOS, some of them use Windows, and they has to be tested for compatibility with 137GB+ drives. I see no technical reason for 137GB limit here because this limit is caused by 28-bit hardware addressing and none of these utilities access hardware directly, always via BIOS or Windows calls, and there seems to be no 28-bit limit, the sector number is 32-bit. I suppose that if there is really 137GB limit, it could be easily removed, it is probably artificial only.

Short Q&A:

Q: Why the highest sector number for 28-bit LBA is 0xffffffe and not 0xfffffff?

A: Because the maximum number of sectors is 0xfffffff and they are numbered from 0, not from 1.

Q: Why the 28-bit LBA maximum sector number in ESDI_506.PDR proposed modification is 0xffffe0f and not 0xffffffe?

A: Because the sector count many be up to 255, and even the last sector shoud fit into 28-bit addressing.

Q: Why new HDD controller is often recommended as a solution? You wrote that no hardware changes are necessary.

A: This is not related to hardware. The only reason is that new controller comes with its own new BIOS and Windows driver that supports 48-bit LBA, this eliminates the need to have the 48-bit compatible BIOS or boot manager, and the need of patched ESDI_506.PDR.

Q: When the ESDI_506.PDR driver is used?

A: It is for standard controllers, like Intel PIIX, most newer controllers uses its own driver, like Intel Application Accelerator, these new drivers usually support 48-bit LBA.

Q: How to test whether the 48-bit LBA wirks as expected?

A: One possibility is just to fill the disk beyond 137GB and see whether the disk content got corrupted. Programmers could try to write small utility that would read and write data beyond the 137GB limit using registry access, using BIOS calls and using Windows calls and compare if the same sector is read and written.

I wrote this to enable somebody to write the necessary patches - I personally have no 137GB+ disk, not I'm skilled coder, nor I have time enough.

But this could help to make some overview what the 137GB limit is and what is not, and what has to be done to fully suport it in Windows 98 SE.

Petr

https://msfn.org/board/topic/46752-137g ... er-limits/
Enable48BitLBA | Break the 137Gb barrier!
By LLXX, July 13, 2006 in Windows 9x Member Projects

1 2 3 4 5 6 NEXT Page 1 of 30
LLXX
LLXX

0
3,353 posts
Posted July 13, 2006 (edited)
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/board/index.php?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.
4102222F.ZIP

4903000F.ZIP

4102225F.ZIP

4102001F.ZIP

4102186F.ZIP

4102226F.ZIP

4001111F.ZIP

4001119F.ZIP

Edited August 4, 2006 by LLXX

https://msfn.org/board/topic/78592-enab ... b-barrier/

User avatar
Steven W
VIP
Posts: 1151
Joined: 2013-08-10 22:40

2018-10-28 03:10 »

As for the partitioning, Use an XP or even 2000 install disk and make it FAT32. Just stop before installing files. There are some 3rd party tools too, I had an install disk that came with an old Seagate drive that was so awesome for that.

User avatar
Steven W
VIP
Posts: 1151
Joined: 2013-08-10 22:40

2018-10-28 03:17 »

Sorry to keep replying, but may also wanna try replacing fdisk.exe and format.com with these:

http://www.mdgx.com/files/FDSKFRMT.EXE

Cached:
FDSKFRMT.EXE
(110.5 KiB) Downloaded 20 times

Post Reply