Microsoft Windows 3.1 32-Bit Disk Access Feature and the IBM PS/1 Computers In response to the inquiries into Windows 32-Bit Disk Access, the IBM PS/1 Product Support Team has researched this feature with respect to the questions posted on Prodigy in the IBM PS/1 Club and has determined the following results: The IBM PS/1 computers released in the fall of 1993, designated by a model type beginning with two numbers and a letter (i.e. 2155-86C), are capable of supporting Microsoft's 32-Bit Disk Access feature which claims significant improvement in file access time. These models of PS/1 computers are generally marked by a Basic Input/Output System (BIOS) dated September 1, 1993, although some of the models have a BIOS dated in July 1993. Regardless of which BIOS is present, all PS/1 computers released in Fall, 1993 are capable of supporting the 32-Bit Disk Access feature. There have been several notes on this subject pertaining to the PS/1 models released prior to Fall, 1993. Here are the facts regarding hard drive controllers, the BIOS, 32-Bit Disk Access requirements , and PS/1 architecture. Later, we will also clarify a few points regarding what functions 32-Bit Disk Access actually performs. Western Digital Hard Drive Controller Microsoft's 32-Bit Disk Access feature will only work on Western Digital 1003 or ST506 hard disk controllers or compatibles. These controllers are found in approximately 90% of IBM PC compatible computers. Likewise they are found in the PS/1 computers introduced since Fall, 1992. However, IDE hard drives are, by definition, controlled by 16-bit controllers, meaning they cannot access 32 bits simultaneously. Some have mentioned that 32-Bit Disk Access means their machine will operate at twice the speed. That statement simply is not true because of the 16-bit limitation on the IDE hard drive and controller. A majority of the time spent in pulling a file from the hard drive is in seek time (explained in detail later), not in processing time. Once the information is found, it takes a certain amount of time to run the information through a 16-bit controller. Until controllers and hard drives become 32-bit local bus and seek times drop, time will still be spent waiting to find the information (seek time) and subsequently sending it (via the controller) to the 32-Bit Disk Access feature or the BIOS. BIOS The 32-Bit Disk Access feature bypasses the BIOS altogether when making calls to the hard drive. This is why when the 32-Bit Disk Access in enabled, the BIOS plays no role in performing disk tasks. The BIOS date serves as a general marker to which computers can support this function. Remember that some of the PS/1 computers released in Fall, 1993 contain a BIOS date before September, 1993. To reiterate what was stated in the opening paragraph, ALL models of PS/1 computers released in Fall, 1993 are capable of performing 32-Bit Disk Access. Of those Fall, 1993 PS/1 models which have a BIOS date of July, 1993, the Smart Energy System functions must be disabled if 32-Bit Disk Access is desired; a step which is not required by those machines with a BIOS dating 9/1/93 or later. But for those PS/1 computers released prior to Fall, 1993, the problem lies in the hardware interrupts stored in the BIOS, as compared to the required interrupt values for Windows' 32-Bit Disk Access feature. 32-Bit Disk Access Requirements Microsoft's 32-Bit Disk Access feature assumes that the interrupt settings for disk drives (both fixed and removable) conform to IBM PC-AT architecture, which is Interrupt 41 (disk 0) and Interrupt 46 (disk 1). The PS/1 line developed prior to Fall, 1993 did not use Interrupts 41 and 46 for disk drive designation; rather, these PS/1 computers borrowed the interrupt set from PS/2 models. The interrupt settings for PS/1 computers introduced after Fall, 1993 do use the interrupt settings required for the 32-Bit Disk Access feature. For this reason, the problem in setting up 32- Bit Disk Access for PS/1 computers developed prior to Fall, 1993 lies not in having an incompatible controller but rather in the 32-Bit Disk Access feature identifying the interrupt of that controller. If the drive parameters are not located at Interrupt 41 or Interrupt 46, the 32-Bit Disk Access feature cannot be employed. How 32-Bit Disk Access Works Microsoft's 32-Bit Disk Access feature was designed as a component to help speed up file access time. It bypasses the BIOS in order for Windows 3.1 to function in 32-bit protected mode, the standard for running in 386 Enhanced mode. When Windows does not operate in 386 Enhanced mode, it performs tasks in real 16-bit operations. But in 386 Enhanced mode, without 32-Bit Disk Access enabled, Windows must pull itself out of 32-bit protected mode and into 16-bit mode whenever it requests hard drive operations in order for it to communicate with the BIOS. In this situation, Windows must first access the BIOS in order for any information to be retrieved or stored to the hard drive. However, with 32-Bit Disk Access enabled, Windows can bypass the BIOS and stay in 32-bit protected mode instead of going to the BIOS in 16-bit mode. There are two possibilities for 32-Bit Disk Access operation. One of these, accessing from the SmartDrive cache, produces some performance increases while the other, accessing from the hard drive, produces negligible increases. Retrieving Data from the SmartDrive Cache SmartDrive cache is really a portion of memory (with a recommended maximum of 2 MB) which stores information from previous reads and writes of the hard drive. Because it is memory, there is no seek time associated with caching as with hard drives. If the information requested by Windows is stored in SmartDrive's cache, it simply pulls the information out of cache and ignores the hard drive. This is where some functions may show improvement. Because of the speed at which computers process information, these improvements may be almost unnoticeable to human perception. Because memory is local bus 32-bit (but rarely spoken of in such terms), the information can be retrieved without having to experience the wait that hard drives exhibit. Implementing the 32-Bit Disk Access feature can show some improvement in speed in absolute terms, but users may have trouble noticing a difference since computers tend to function in billionths of seconds. Retrieving Data from the Hard Drive When accessing the hard drive, any improvements in time gained by the 32- Bit Disk Access feature will be nearly negated in the (relatively speaking) endless search for information on the hard drive. Regardless of whether 32-Bit Disk Access is enabled or not, the average seek time for the hard drive will remain constant. An improvement of 30 microseconds (0.00003 seconds) due to 32-Bit Disk Access will likely go unnoticed if it still takes 15 milliseconds (0.015 seconds) to retrieve the information in the meantime. However, a substantial improvement will be shown when accessing DOS applications while running under Windows. The 32-Bit Disk Access feature improves the way in which Windows accesses DOS applications to near the retrieval time of accessing such DOS applications in a native DOS environment. The term "32-Bit Disk Access" may be confusing as well. The type of hard drives used in PS/1 computers since Fall, 1992 are Integrated Drive Electronics (IDE). Remember that 32-Bit Disk Access must not be confused with 32-bit control over the data stream (as described above in the "Western Digital Hard Drive Controller" section). PS/1 systems released before Fall, 1993 require the PS1WIN32.COM file (embedded into the WIN32BIT.EXE file) in order to use 32-Bit Disk Access. However, one concern follows: The PS1WIN32.COM file (part of the WIN32BIT.EXE program) reroutes the BIOS pointers for the hard drive to a position that Microsoft Windows looks for in order for 32-Bit Disk Access to be enabled. A potential side effect could be problems when examining the BIOS interrupts for the hard drive through programs such as Microsoft Diagnostics (MSD). FIX.EXE helps to solve any problems which may occur to the Configuration Utility, and should have no effect on MSD. Currently the only solution will be to disable 32- Bit Disk Access in Windows and REM out the PS1WIN32.COM line from your AUTOEXEC.BAT in order for you to use the MSD report. How to Enable 32-Bit Disk Access on a Computer with a BIOS Dated July, '93 If your computer contains a BIOS dated July, '93, then you must perform the following steps to have 32-Bit Disk Access: 1. Enter into the PS/1 Fitness icon inside the PS/1 Tools window. 2. Double-click on the Rapid Resume Manager icon and set it to Disabled. 3. Double-click on the Standby icon and set it to Disabled. 4. Exit out of the PS/1 Fitness window and enter into the Main window. 5. Double-click on the Control Panel icon. 6. Double-click on the Power icon and set it to Off. 7. Exit out of Control Panel and enter into the Accessories window. 8. Double-click on the System Configuration Editor icon. 9. Click on the window titled CONFIG.SYS. 10. Look for a line which states DEVICE=C:\DOS\POWER.EXE. If it is present, add the word REM followed by a space in front of it. 11. Click on the window titled SYSTEM.INI. 12. Use the scroll bar (the arrows located toward the right side of the window) to scroll down to the section titled [386Enh]. 13. Find the line titled device=vpowerd.386 and place a semi-colon (;) in front of it. 14. Scroll down further and insert the following three lines, still under the [386Enh] section: device=*wdctrl device=*int13 <=== this line not needed in WFW 3.11 32BitDiskAccess=off Each of these commands are case-sensitive. 15. Click on File and select Exit. Say yes to saving your files. 16. Exit Windows and reboot the computer. Be sure to note that you will not be able to use the Smart Energy System features if you would like to use 32-Bit Disk Access. How to Enable 32-Bit Disk Access on a Computer with a BIOS Dated September, '93 If your computer has a BIOS date of September, '93, you may begin from line 14 above. You can indeed use all the Smart Energy System functions with 32-Bit Disk Access. For using 32-Bit File Access on both machines, bear in mind that you cannot use MS-DOS 6 DoubleSpace. If you would like to use 32-Bit File Access and have DoubleSpace enabled on a MS-DOS 6 machine, you will either need to upgrade your DOS version to MS-DOS 6.2 and keep DoubleSpace or remove DoubleSpace altogether. Summary Microsoft Windows 3.1/3.11 in its fastest disk access mode does not support disks that are bigger than 527 MB capacity. If you have an IDE interface disk that is larger than 527 MB, you can use the fixed disk drivers and instructions that follow to overcome this limitation. You do not need to do anything, unless you meet BOTH of the following conditions: #1 Have a fixed disk larger than 528 MB The simplest way to check you disk capacities is during system power-on to simple PRESS F1 to use the Configuration Utility. #2 Invoke Microsoft Windows 3.1/3.11 32-bit access mode The best way to determine if you have "32-bit access" mode invoked is as follows: - Select "Control Panel" ICON in Main group - Select "386 Enhanced" ICON in Control Panel - Select "Virtual Memory..." button in 386 Enhanced dialog box - See if "Use 32-Bit Disk Access" button is "Xed" (invoked) How to Install New Windows Fixed Disk Drivers #1 Shut down Windows, to get to the DOS prompt, such as "C:>" #2 Type the following to copy the new Windows fixed disk drivers into Windows. Note: change the paths if necessary. XCOPY A:*.* C:\WINDOWS\ The following files will be copied: - INT13DT.386 - WDCTRLDT.386 #3 Choose a DOS Editor (do NOT use a word processor application) C:\DOS\E (the IBM PC-DOS version 6 editor) or C:\DOS\EDIT (the IBM PC-DOS version 5 editor) or C:\DOS\..... (any other editor you have) CAUTION: Making a mistake editing the following file can cause very severe problems for Windows! Assuming that you have and wish to use the PC-DOS version 6 editor "E", type the following DOS command line to edit a Windows file. C:\DOS\E C:\WINDOWS\SYSTEM.INI Find the line "[386Enh]" Locate the line "32BitDiskAccess=..." Edit the following lines from: 32BitDiskAccess=... device=*int13 device=*wdctrl to: 32BitDiskAccess=ON device=INT13DT device=WDCTRLDT WDCTRLDrive0=ON #4 FILE or SAVE the file, then exit the editor. Additional Notes Definition: Big Disks are hard disks greater than 528 MB capacity. The following operating systems should not have any problem using the IDE Hard Disk(s) larger than 528 MB. - IBM PC-DOS or MS-DOS (with or without disk data compression) - MS-Windows without 32-bit disk access invoked - IBM OS/2 - SCO UNIX The following other operating systems may have limitations or problems working with large disks. You should contact the software manufacturer or place of purchase, if you experience any limitations or problems. - MS-Windows/NT - Novell NetWare Technical Background When the INT 13H Disk BIOS interface was defined several years ago, the disk parameters passed in the CX and DX registers were limited to 10 bits of Cylinder information (1024 Cylinders), 6 bits of Sector information (63 sectors/Track), and 8 bits of Head information (256 Heads). The maximum Hard Disk size from these BIOS parameters is: 1024 Cylinders * 256 Heads * 63 Sectors/Track * 512 Bytes/Sector = 8.5 GB, where 1 GB = 10 9 bytes (1 MB = 1,000,000 bytes). When the IDE command interface was defined, the information passed in the registers was limited to 16 bits of Cylinder information (64K Cylinders), 4 bits of Head information (16 Heads), and 8 bits of Sector information (255 Sectors). The maximum Hard Disk size from these IDE command register parameters is: 64K Cylinders * 16 Heads * 255 Sect./Track * 512 Bytes/Sector = 137 GB. The current PC limitation takes the lower of each parameter value from the BIOS and IDE interfaces, which limits the Hard Disk size to: 1024 Cylinders * 16 Heads * 63 Sectors/Track * 512 Bytes/Sector = 528 MB. For example, if a 540 MB Hard Disk is installed in an earlier system, the disk parameters will be cut off at these boundaries so that the size appears to be 528 MB. The disk should work fine, but 12 MB of data on the disk are not accessible. The only fairly simple method of breaking the Big Disk barrier is to use Cylinder/Head (CHS) "translation" between the INT 13H BIOS parameters and the IDE command registers. For example, this is how IBM handles the new Big Disks. The parameters reported by the disk through the Drive ID Command are 1412 Cylinders, 16 Heads, and 63 Sectors/Track. When the drive parameters are requested through BIOS, the parameters are reported as 706 (1412/2) Cylinders, 32 Heads (16*2), and 63 Sectors/Track. No matter which parameters are used, the total size adds up to 729 MB. BIOS keeps track of the "shift factor" of 2 that must be used to adjust the Cylinders and Heads between the BIOS interface and the IDE command registers. This method of translation assures that all applications requiring Hard Disk access use compatible parameters, whether they go through BIOS or not. If an application goes around BIOS, it will see the "pure" disk parameters (1412/16/63) in the parameter table pointed to by INT 41H. Problems have occurred because some applications use a mixture of BIOS interface information (from INT 13H) and disk parameter table information (from INT 41H) when attempting to address the disk. Some operating systems even use DOS partition table information, which is derived from the BIOS disk parameters. Since there has not been a standard established for disk translation, the BIOS uses a unique implementation to break the 528 MB barrier. Even though the implementation is unique, it is a simple method of doing this that is transparent to most applications and OSs. It is likely that either (1) most BIOS vendors will adopt a similar scheme or (2) a standard will be established within the next year, so that the problems associated with the Big Disk barrier will be resolved soon. Operating System Implications DOS DOS is totally dependent on BIOS to access IDE Hard Disks, so DOS is only limited to the 8.5 GB size available through the INT 13H interface. DOS has shown no problems handling Big Disks in partitioning, formatting, or in file operations. Because IBM was concerned about impact to DOS disk utilities, we had National Software Testing Labs (NSTL) test both Norton and PCTools disk utilities with several Big Disks. NSTL reported no problems using these utilities. Windows Since Windows is a DOS extension, it also has no problem with Big Disks as long as all disk accesses are handled through BIOS INT 13H. The problems occur when attempting to use the Windows 32-bit disk driver with a Big Disk. With 32-bit disk access enabled using off-the-shelf Windows 3.1 or 3.11, an error message appears when Windows is attempting to load and 32-bit disk access is active. This can be fixed by changing the Windows Virtual Int13 Device. We have made a new version of the Int13 Driver, named INT13DT.386. In order to use this driver, the INT13DT.386 driver must be copied into the WINDOWS\SYSTEM directory and following lines must appear in SYSTEM.INI under the [386Enh] section: 32BitDiskAccess=ON (enables 32-bit disk access) device=INT13DT (loads the Int13 driver) device=WDCTRLDT (loads the IDE command driver) WDCTRLDrive0=ON (forces Windows to ignore errors during WDCTRL initialization) Why won't 32-Bit Disk Access work on the 2168-57C? Windows 3.1 and Windows for WorkGroups 3.11 are designed on the basis of standard IDE, a definition for hard drives which limits the maximum size of a hard drive to be 528 MB. Any drive larger than 528 MB is, by definition, not standard IDE. Most drives above 528 MB run on the enhanced IDE definition, developed quite recently, which overcomes the same DOS limitation of 528 MB on the hard drive. However, the WDCTRL virtual device driver used by Windows to activate 32-Bit Disk Access does not work with these larger drives because of its restriction to standard IDE definitions. Why is this Restriction Present? The answer to this question derives from the same place many limitations initiate: DOS. Certainly, fifteen years ago when DOS was born it was inconceivable that today's computers would even be possible. In those days when 64 KB of memory and a 10 MB hard drive were massive, 528 MB hard drives (along with 640 KB of memory) seemed impossible to attain. Now that the day has come where these impossibilities are realities, the operating environments and programs must adhere to these limitations for compatibility reasons. What am I Losing by not Having 32-Bit Disk Access Running? 32-Bit Disk Access is designed to help Windows load any DOS applications which are accessed while Windows is running. If only Windows applications are used, there is no noticeable benefit to running with 32-Bit Disk Access activated. However, if DOS applications are used under Windows, 32-Bit Disk Access will perform the initial loading process of these DOS applications faster than with 32-Bit Disk Access not activated. The reason is simple: Windows was not designed to efficiently access DOS applications under its environment. 32-Bit Disk Access is a way in which Windows can load these DOS programs in approximately the same amount of time it takes for these same programs to be loaded under native DOS. Without 32-Bit Disk Access active, Windows may take 1.5 to 2.5 times longer to load these same programs. Again, if only Windows programs are used, there is no noticeable speed increase. How Will This Effect Future 32-bit Operating Systems? There should be no adverse affects in using 32-bit operating systems on the 57C computer because of the failure to activate the 32-Bit Disk Access feature. OS/2 can readily access larger hard drives using its High Performance File System (HPFS) without any special configuration. Likewise, since enhanced IDE (EIDE) drives are quickly becoming the standard, we expect no compatibility problems with using Windows95 on these systems. Since the 528 MB problem derives from the operating system (DOS), Windows95 should be able to address more physical space than 528 MB per drive. Is There Any Way to Get 32-Bit Disk Access to Work on the 57C? Microsoft has placed the responsibility for developing substitute virtual device drivers to replace the WDCTRL driver on the computer and hard drive manufacturers themselves. Because of the negligible benefits of using 32- Bit Disk Access and the current evidence supporting no future incompatibility problems, IBM has not released a driver to support the 730 MB hard drive found in the 57C.