
    Windows 98SE IO.SYS and LBA partitions

Windows 98SE incorrectly registers LBA partitions in some cases. This
causes phantom drives to appear in Explorer. The problem is caused by a
bug in IO.SYS and occurs when an LBA partition occurs in a non-LBA
extended partition or is the first drive encountered after processing a
non-LBA extended partition. This bug is also present in the Windows ME
IO.SYS.

The patched version of IO.SYS in the link below :-

    * Correctly registers all partitions. Any valid combination of LBA
      and CHS partitions is acceptable. Original IO.SYS miscalculates
      I/O keys for some LBA partitions (the offset for the logical drive
      is doubled).
    * Processes all extended partitions using LBA I/O ensuring that
      drive letters are allocated in the correct order. This
      non-standard feature means that disks must contain valid LBA keys
      in all extended partition records.
    * Sets the access mode (CHS or LBA) flag for each partition based on
      the partition type code. Original IO.SYS sometimes marks CHS
      partitions for LBA access.

The patched IO.SYS is based on the Microsoft W98SE file dated 2001-12-01.

The code changes are :-

    * Offset 206C was 3E now 85 (causes 0x05 ext par access to be LBA
      not CHS).
    * Offset 2072 was 04 now 00 (erroneous set of LBA flag for next par).
    * Offset 3A01 was JNZ (75) now JMPS (EB) (stops erroneous adjust of
      LBA key).

The patch is also available for Windows ME. The ME IO.SYS is compressed
so rather than changing the bytes in the file a stub has been added
which modifies the code in memory once the file has been expanded.

The files were examined and changed using HIEW611 (excellent freeware).

To install this fix :-

    * Copy IO.SYS in root directory of drive C as IO.OLD . Renaming is
      not recommended as it will be hard to restart if you have a crash
      between the rename and the extract of the new file.
    * Download w98.zip file from link below and extract IO.SYS to root
      directory of drive C overwriting original IO.SYS .
    * Restart Windows 98.

Download patched W98SE IO.SYS zip file (164kB) <w98.zip>

Download patched WinME IO.SYS zip file (107kB) <wme.zip>

------------------------------------------------------------------------
Steven Saunderson at phelum net <mailto:steven1@phelum.net>
Last Modified : 2007-03-04
