HEADLAND TECHNOLOGY

HT12 - Enhanced Memory Manager Version 4.00


Copyright 1989, 1990 Quadtel Corporation. All rights reserved.


HEADLAND HT12 EMS Version 4.00 Description

The HEADLAND HT12 EMS Memory Manager conforms to version 4.00 of the Expanded
Memory Specification (EMS). Version 4.00 of the Lotus/Intel/Microsoft 
specification is upward compatible with version 3.20 and will run programs 
written for that version of the memory manager.


Specification

The memory manager should be installed in the CONFIG.SYS file as the first 
driver. This allows other device drivers, such as the ramdisk, to make use of 
the memory manager's services. After being loaded, the memory manager will 
determine the amount of expanded memory in the system and perform any required
initialization. The syntax for installation of the memory manager is shown below.

Defining the EMS MEMORY-SIZE

The amount of memory which will be available for EMS memory can be defined 
using one of two methods. The first method assumes that the system BIOS SETUP 
program allows you to set the amount of memory to be used as EMS (for example 
the Quadtel HT12 BIOS). To allow the BIOS to determine the amount of EMS memory,
simply omit the "Extended=nnnn" parameter (see below). The memory manager will
use any memory not configured as extended, system, or shadow as EMS memory.

The second method for determining the EMS memory size allows you to override 
the BIOS setting. This should be used for systems which do not have a BIOS 
which allows them to set the EMS size. Use the "Extended=nnnn" parameter to 
select the amount of extended memory you want to leave available. Any extended
memory beyond this amount will be converted to EMS memory.

device = mm.sys [/Contexts=nnn] [/Depth=nn] [/Exclude=xxxx-xxxx] [/Frame=xxxx]
[/Handles=nnn] [/Include=xxxx-xxxx] [/Test] [/Fulldisplay] [/Showoptions]
[/Noshadow]     [/Extended]      

The numeric parameters for the memory manager should be specified in decimal 
except where specifically noted otherwise. Memory sizes should be specified in
kilobytes (1024 bytes) without the K on the end of the number. 32,767 bytes 
would be specified as 32.

All of the parameters noted above are optional. Default values for each will 
be selected if the parameter is not specified. Below is a description of each 
of the memory manager's parameters.

Contexts = nn is the parameter which specifies the number of contexts for 
windows 0-3 which can be saved by processes using EMS memory. The maximum 
number of contexts is 255. The minimum number is 3. The default number of 
contexts is equal to the number of handles which are allocated.

Depth = nn is the parameter which specifies the number of consecutive contexts
that can be saved for a given handle before a restore must be initiated. The 
maximum depth is 32. The default depth is 1 which is also the minimum.

Exclude = xxxx-xxxx is the parameter which specifies a range of addresses which 
should not be used for EMS mapping. By default, the memory manager will 
automatically exclude areas known to contain ROMs or video RAM. This parameter 
allows you to exclude a range of addresses which might be included by the 
automatic selection process of the memory manager. The address range selected 
should be hexi-decimal segment addresses. You may specify as many exclude 
ranges as necessary and these may overlap.

Frame = xxxx is the parameter which specifies the starting address for the 
standard 64k EMS window frame. By default, the start for the EMS window frame 
is selected automatically by the memory manager software. This parameter allows
you to choose the address explicitly. The number specified should be a 
hexa-decimal segment address on a 16k boundary where no ROM or RAM resides. 

Handles = nnnn is the parameter which specifies the number of handles that will 
be available for programs which use EMS memory. The minimum number of handles 
which can be allocated is 3. The default number of handles is 255 which is also
the maximum.


Include = xxxx-xxxx is the parameter which specifies a range of addresses which
should always be used for EMS mapping. By default, the memory manager will 
automatically exclude areas known to contain ROMs or video RAM. This parameter 
allows you to include a range of addresses which might be excluded by the 
automatic selection process of the memory manager. The address range selected 
should be hexa-decimal segment addresses. You may specify as many include 
ranges as necessary and these may overlap.

Test is the parameter which specifies that memory should be tested on power-up.
Normally this is unnecessary since memory is tested by the BIOS.

Fulldisplay specifies that the memory manager display information about the EMS
configuration after its sign-on.

Showoptions specifies that the memory manager show its command line options 
after its sign-on.

Noshadow is the parameter that specifies that unused shadow memory (from 640K 
to 1024K) should not be converted to EMS memory.

Extended = nnnn is the parameter which specifies the amount of extended memory
requested. All other memory in the system will be used for EMS if this 
parameter is specified. The default value which will be used if this parameter 
is omitted is the amount of extended memory initialized by the system BIOS.

-Memory Manager Error Messages-

The error messages which might be displayed by the memory manager are divided 
into two groups. The first group, described below, are general memory manager 
error codes.

Invalid parameter specified - One of the parameters specified on the command 
line in your CONFIG.SYS file is invalid.


Expected equal after parameter - One of the parameters on the command line 
expected an equal (=) sign after the parameter, but none was found.

Invalid number specified - A number was expected, but a non-number or a number 
containing invalid characters was found.

Context depth must be between 1 and 32 - An invalid number of contexts was 
specified. The number specified cannot be zero and must not be greater than 32.
See CONTEXT parameter above.

Invalid page frame address specified - The page frame address specified is not 
available for banking. The memory manager requires a 64k area above A000 which 
is free of expansion ROM and RAM. See START parameter above.

Number of handles must at least 3 - The number of handles specified is below 
three. The number of handles specified must be between 3 and 255 to be valid. 
See HANDLES parameter above.

Number of handles cannot exceed 255 - The number of handles specified is above 
255. The number of handles specified must be between 3 and 255 to be valid. 
See HANDLES parameter above.

Number of contexts must be at least 3 - The number of contexts specified is 
below three. The number of contexts specified must be between 3 and 255 to be 
valid. See CONTEXTS parameter above.

Number of contexts cannot exceed 255 - The number of contexts specified is 
above 255. The number of contexts specified must be between 3 and 255 to be 
valid. See CONTEXTS parameter above.

Invalid exclusion specified - An exclusion parameter was specified incorrectly.
See EXCLUDE parameter above.

No expanded memory available - No expanded memory is available for use.

Invalid inclusion specified - An inclusion parameter was specified incorrectly.
See INCLUDE parameter above.

RAM parity error detected - A parity error was detected during the expanded 
memory tests.

RAM data error detected - A data error was detected during the expanded memory 
tests.

RAM address error detected - An address error was detected during the expanded 
memory tests.

No 64k page frame available - The memory manager was unable to find a 64k 
window for the page frame. For the memory manager to operate, a 64k window free 
of expansion ROM or RAM must exist above A000.

Internal error in hardware interface - A general hardware error was detected.

The error codes described below are in the second group and are specific to the
HT12 memory manager.

No EMS memory available  - No memory was available for EMS use.

Not an HT12 system board - Indicates that the memory manager was run on a 
system board which did not contain the HT12 chip set.

Amount of extended memory (EXT) specified too large - The amount of memory 
specified using the "Extended=nnnn" parameter is too large for the amount of 
memory present in the system.


