home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 36 Tips
/
36-Tips.zip
/
OTMEM.FAX
< prev
next >
Wrap
Text File
|
1995-01-13
|
5KB
|
109 lines
OSOTMEM - OS/2 2.X, WARP MEMORY RECOGNITION ON ISA SYSTEMS
11/09/94
================================================================
OS/2 2/X, WARP MEMORY RECOGNITION ON ISA SYSTEMS
================================================================
SYMPTOM:
Installed memory of more than 64M may not be recognized on
systems using Phoenix or AMI BIOS.
RESOLUTION:
1. To resolve this on the Phoenix BIOS, check the setup for a
"Compatibility Mode" setting. If this is present, disable it,
if not, a BIOS upgrade may be necessary.
2. Currently, there is no resolution for this on the AMI BIOS.
The BIOS does not report more than 64M or it reports it in a
way that OS/2 does not support.
Some systems constantly reboot when starting OS/2 or during
installation of OS/2. This occurs when systems run versions of
both the AMI and Phoenix BIOS. This may also apply to other
BIOS. This problem is resolved and described in PJ14893.
DETAILS:
Determining RAM available on ISA systems
-------------------------------------------
During boot, OS2LDR issues the three BIOS calls described later
in this document. If the INT 15 AX=88 returns a value other
than 16M, this is the amount of RAM OS/2 addresses. If the INT
15 AX=88 returns 16M, OS/2 checks the return from the INT 15
AX=E801 to see if extra RAM is available. Once OS2LDR
determines what RAM is available to the system, it passes this
to OS2KRNL. OS2KRNL initializes the Page Manager which does
one final check and verifies the RAM returned by the BIOS
really is addressable.
OS/2 does not try to find and use any free RAM between 640K and
1M which is reserved for hardware.
BIOS considerations with installed RAM over 64M.
------------------------------------------------
Systems with Phoenix BIOS may have a problem using RAM above
64M. The system continuously reboots if more than 64M RAM is
installed because it may only recognize 64M of memory. The
problem is due to multiple interpretations of the INT 15 AH=88
BIOS call, since no BIOS call was implemented to report that
more than 64M was available. Check for a "Compatibility Mode"
setting in the BIOS and disable it if it is present. This
should resolve the problem. If not, you need the fix for
PJ14893.
Phoenix implemented the INT 15 AX=E801 call as of 7/94. If the
BIOS date is previous to this, it probably does not have this
call. It should have it after 7/94 if the vendor that licensed
the BIOS code chose to implement it. Check the System Setup
for a "Compatibility Mode" setting and make sure it is disabled
for OS/2. When this is disabled, the Phoenix BIOS returns
memory the same way as Compaq systems, which is described later
in this document. This setting may have different names in
different licensed versions of Phoenix BIOS.
AMI BIOS may also have the continuous reboot problem and the
same APAR applies. AMI implemented a call as of 9/94 in their
BIOS to report more than 64M. AMIimplemented this call
differently than Compaq. Currently OS/2 does not recognize
memory over 64M returned by the AMI BIOS.
BIOS calls to determine RAM on non-MCA systems
-------------------------------------------------
INT 12
This is the standard industry call to query the BIOS for RAM
available below 640K. The call returns into the AX register
the number of 1K blocks of RAM the system has available in this
memory area.
INT 15 ;AH=88
This is the standard industry call to query the BIOS for RAM
between 1M and 64M. The call returns into the AX register the
number of 1K blocks of RAM the system has available in this
memory area. The call technically can support between 1M and
65M, but the standard limits it to 64M.
INT 15 ;AX=E801
This is a call used by Compaq systems to query the BIOS for
memory between 16M and 4G. The call returns into the BX
register the number of 64K blocks of memory the system has
available in this memory area. If there is more than 64M of
memory in the system, the INT 15 AH=88 call should only return
16M and the programmer should use INT 15 AX=E801 to find the
additional memory available to the system. INT 15 AX=E801 also
returns in the AX register number of 1K pages between 1M and
16M so that the INT 15 AX=E801 call returns all memory above
1M. AMI has also implemented this call, but their
implementation is not currently supported by OS/2.