Jump to content

Patches for ESDI_506.PDR from Windows 98SE / RLoew's Terabyte Plus Pack 2.1 and more


Recommended Posts

Posted

http://sweetlow.orgfree.com/download/esdi_506.zip

Patches for ESDI_506.PDR from Windows 98SE [98SE] /
RLoew's Terabyte Plus Pack 2.1 [TBP2.1].

Fixes:
1. [TBP2.1 - BigHDD] Handles drives with LBA48 support using algorithm
from Windows NT: LBA48 commands are only used for drives that
really need them, i.e. >= 128GiB, for drives < 128GiB LBA28 is used.
Needed as work-around the rare situation of badly functioning hardware
that reports support for LBA48 commands, but in reality does not
process them.
2. [TBP2.1 - SATA] Interrupt handler:
- Based on code from RLoew's TBP3.0.
- For dedicated interrupts (Legacy ATA controllers) the code is completely
identical in behavior to the original one (no unnecessary access to ports).
- DMA error flag is preserved, only the Interrupt flag is reset. 
3. [TBP2.1 - SATA] Data synchronization with BIOS:
- LBA usage is enabled for drives with LBA support 
without any additional checks, drives without LBA use the old
(full) algorithm
- rollback to PIO if DMA fails
4. [98SE] Driver retrieves shared interrupt flag not from the CONFIGMG
shared interrupt flag, but from the level/front interrupt flag.
The CONFIGMG incorrectly changes the shared interrupt flag
for multi-function devices (which are the vast majority of standard
PCI ATA controllers).
5. [98SE] Fixed minor bug of non-saving register with the value of error
of command execution for drives with removable media and media status
notification enabled.
6. [98SE] Changed drive characteristic flags for the default record.

Additions:
1. [98SE] Added IOR_IDE_PASS_THROUGH request processing for ATAPI devices.
Also this request is correctly processed for ATA devices
with sector size other than 512 bytes. Allows you to execute
drive identification commands and SMART commands for such drives.
It is recommended to use together with updated SMARTVSD.VXD
for full functionality.

Fixes 2 - 6 and Addition 1 are non-specific to TBP2.1.

Corollary projects updated accordingly:

https://github.com/LordOfMice/Tools/blob/master/atanames.zip - Right names of ATA drives plus version of device firmware in Device Manager for Windows 9x/ME

http://sweetlow.orgfree.com/download/smartvsd.zip Patches for SMARTVSD.VXD - works for any combination of ATA channels and devices on these channels and more

 

  • 7 months later...

Posted

http://sweetlow.orgfree.com/download/esdi_506.zip

Added 2025/03/01:

1. [TBP2.1 - SATA] Data synchronization with BIOS:
- Returned physical geometry extraction from IDENTIFY for drives with LBA.
2. [98SE] Drive parameters setting error in drive reset handler
no longer causes a general read/write error for drives with LBA.
3. [98SE] Uninitialized CMOS drive type definition variable.
For all but the first two drives on Legacy Primary Channel, it could have been
anything, usually what was on Legacy Primary Channel (i.e. type 47),
and if there was no Legacy Primary Channel, it was 0 or really something
random. Now anything other than real CMOS data will give you a 95 disk type.
This reflects the FFFFh value that was already used in the code for the
unset parameter in one place, and now it is also used for the default value.
4. [98SE] Minor change: IDENTIFY read error no longer resets other flags
and sets IDENTIFY error flag, but only sets the IDENTIFY error flag
(OR instead of MOV).
 

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...