16 meg memory with OS/2

>16 meg memory with OS/2
The >16 meg memory problem has been fixed with a couple of files that can be found on CompuServe.


 * GT16MB.ZIP can be found in the IBMOS2 support forum, in the IBM Files library (library 17). This is a replacement OS2LDR file for pre-Service Pak machines.
 * SP16MB.ZIP can be found in the same library, and is to be used for post-Service Pak machines. It is not to be installed on OS/2 GA version or OS/2 2.1.

The XR06055 SVCPK resolves the problem for ISA machines, there is a special SP16MB fix available after the shipment of XR06055 that contains the same fix for EISA bus machines.

All related >16 meg memory problems should have been fixed for OS/2 2.1.

I have come across a file that will help answer your questions about using >16 megs of memory with OS/2 2.0. I will include it below:

Greater than 16 MegaBytes of RAM with OS/2 2.0
Keywords : greater 16Mb Mb RAM meg

The purpose of this infoapar is to shed some light on the problem of supporting / using greater than 16Mb of RAM under OS2 2.0. First, only certain processors support more than 16Mb of RAM. The following processors support >16mb: 386DX 486SX & 486DX These do *not* support >16Mb : 386SX 386SLC & 486SLC2. Note: The AOX processor upgrade cards *do* support more than 16 Mb in 24-bit address bus machines, as long as there is less than 16Mb in the host machine and the extra memory is local to the AOX processor, and subject to there being sufficient AOX memory below the 16Mb line to load the kernel. AOX processors must run in unmapped mode for 2.0 (they ran mapped in 1.3).

If the processor supports more than 16 meg of RAM, the first issue for OS/2 is finding that RAM. OS/2 uses BIOS INT calls in real mode to identify available RAM, and is therefore subject to any BIOS bugs or restrictions.

Some machines have required a BIOS upgrade to resolve problems - the first test is to verify the POST memory count, second is to use debug under DOS or the debug OS2LDR output to verify the return from the INT 15H func 88H call. If the BIOS is giving an invalid memory report, this might be a configuration problem (system setup or reference diskette to fix) or a BIOS bug (contact supplier for fix to BIOS). BIOS restrictions:
 * ISA machines will only support a maximum of 64 meg of RAM due to INT 15H func 88H limits.
 * The same limit applies to IBM MicroChannel machines, includin those that support INT 15H func C7H.
 * For ISA and MicroChannel machines, RAM must be contiguous to be found, with the exception of machines supporting INT 15H func C7H (mod 90/95). ie: discontiguous memory is only supported for EISA machines, or for machines supporting INT 15H func C7H.
 * For EISA machines, support for 512 meg of RAM is enabled.

above 16 meg. If adding memory means applications run in non-cached memory instead of cached memory, the system may run slower.
 * WARNING* Bus memory is slower than planar memory due to additional wait states. Dependent on machine loading, adding bus memory may result in apps being loaded into bus memory instead of planar memory, and thus making the system run slower. If a machine already has adequate RAM, adding RAM can therefore slow the system.
 * WARNING* Processor caches may be restricted to the low 16meg, or may need to be reconfigured (system setup) to cache memory

Assuming OS/2 can find the memory, there are 2 options on how memory may be used: 1) As in memory swap file cache, or 2) As regular paged memory for application use. In either case, when adding memory, the swap file should shrink by approximately the amount of memory added if all is well. Option 1 may require applying a fix which was included in the Service Pak XR06055. Option 2 applies if the disk device driver can access memory above the 16Mb line. This is disk device driver implementation dependent. As a guideline, IBM's drivers:
 * 1) can only access above the 16 meg line if the disk controller has access to 32bit DMA - note that putting a 32bit SCSI controller in a 32bit slot in a Model 80 (a 24bit DMA machine) gives the disk device driver this capability.
 * 2) PIO (Port I/O) drivers do not use DMA, therefore are not restricted.


 * WARNING* A 32bit disk controller card *must* reside in a 32bit slot. There will be no hardware errors or config errors if this is not the case. The system will simply fail in strange ways.

Service Pak comments:
 * WARNING* The Service Pak will regress all >16Mb RAM * EISA *  machines to be limited to 16 meg. This will be fixed in a future service pak.


 * WARNING* IBM Expanded Memory Option cards will not work above the 16 meg line *unless* a microcode enhancement is applied to  the card. This microcode enhancement is in Beta test and is not currently generally available.

VDISK information regarding >16Mb :
 * VDISK code has been changed in the Service Pak to allow the following:
 * 1) loads VDISKs above the 16 meg line if possible,
 * 2) allows VDISK bigger than 4 meg. This should help performance, as well as lifting some restrictions some people had.