home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 17
/
CD_ASCQ_17_101194.iso
/
dos
/
util
/
tlb251
/
advanced.doc
next >
Wrap
Text File
|
1994-09-14
|
59KB
|
1,803 lines
ADVANCED UTILITIES
for
THE LAST BYTE MEMORY MANAGER (tm)
An Upper Memory Manager for MS-DOS
Version 2.51
Copyright (C) 1990-94
All Rights Reserved
by
KEY SOFTWARE PRODUCTS
440 Ninth Avenue
Menlo Park, California 94025-1802
415-364-9847
The Last Byte Memory Manager is a trademark of Key Software Products.
MS-DOS and Windows 3.0 are trademarks of Microsoft Corporation.
DR-DOS is a trademark of Digital Research Incorporated.
4DOS is a trademark of J.P. Software.
Hyperdisk is a trademark of HyperWare.
Other company trademarks are used with the company name.
TABLE OF CONTENTS
CHAPTER 1 - HIGHAPND.EXE and HIGHAPND.SYS ............ 1
1.1 The APPEND=<kbytes> Option of LASTBYTE.SYS ..... 1
1.2 Using HIGHAPND.SYS .......................... 1
1.3 Using HIGHAPND.EXE .......................... 2
1.3.1 The HIGHAPND Report ..................... 2
1.3.2 Using HIGHAPND in .BAT Files .............. 2
1.4 Effect on EGA/VGA graphics .................... 2
1.5 The /HIRESGFX Option ......................... 3
1.5.1 /HIRESGFX=TRAPPED ..................... 3
1.5.2 /HIRESGFX=SENSED ...................... 3
1.5.3 /HIRESGFX=ALLOWED ..................... 3
CHAPTER 2 - HIGHBFRS.EXE (DOS 3 only) ................. 4
2.1 The BUFFERS=<number> Option .................. 4
2.2 The /NORESTRICT Option ....................... 5
2.3 The /FLOPPY Option ........................... 5
2.4 The HIGHBFRS Report .......................... 5
CHAPTER 3 - HIGHDISK.SYS ........................... 7
3.1 Size and Directory Options .................... 7
3.2 The /NOSPLIT Option .......................... 7
3.3 The /STUB=0 and /STUB=1 Options ................ 8
3.4 Preloading Files into the Ram Disk .............. 8
CHAPTER 4 - HIGHEMS3.SYS and HIGHEMS4.SYS ............ 9
4.1 Controlling Memory Usage ..................... 9
4.2 The /NOSPLIT Option .......................... 9
4.3 The /RESTRICT Option ......................... 10
CHAPTER 5 - HIGHENV.EXE ............................ 11
5.1 The HIGHENV Report ........................... 11
5.2 The /PATCH Option ............................ 11
5.3 Setting the Environment Size .................. 12
CHAPTER 6 - HIGHFILE.EXE ........................... 14
CHAPTER 7 - HIGHHOLE.EXE ........................... 15
7.1 The TRACE=<bios> Option of LASTBYTE.SYS ........ 15
7.2 The TRACE=<interrupt vector list> Option ....... 16
7.3 The HOLE=<segment>:<bytes> Option of LASTBYTE.SYS 17
7.4 Specifying Holes in Read-Only Shadow Ram ........ 17
CHAPTER 8 - HIGHKEY.EXE ............................ 19
8.1 The /BUFSIZE=n Option ........................ 19
8.1.1 The HMA subparameter .................... 19
8.2 The /INSERT and /OVERSTRIKE Options ............ 19
8.3 The /HISTORY Option .......................... 19
8.4 Preloading the History Buffer ................. 19
8.5 The /NOSPLIT Option .......................... 20
8.6 Editing Commands ............................ 20
TABLE OF CONTENTS
CHAPTER 9 - HIGHMARK.EXE and HIGHUNDO.EXE ............ 23
CHAPTER 10 - HIGHRSVD.EXE and HIGHRSVD.SYS ........... 24
10.1 Reserving High-DOS Memory ................... 24
10.2 The HIGH Suboption .......................... 24
CHAPTER 11 - HIGHSPLR.EXE .......................... 25
11.1 The /NOSPLIT Option ......................... 25
11.2 Specifying the Buffer Size ................... 25
11.2.1 The HMA subparameter ................... 25
11.3 Specifying the Logical Device ................ 26
11.4 Specifying the Hardware Interrupt ............ 26
11.5 Specifying Flow Control ..................... 26
11.6 The MONITOR Option .......................... 27
11.7 The RESET Option ............................ 27
11.8 The NOTEST Option ........................... 27
Sep 14, 1994 ADVANCED UTILITIES 1
CHAPTER 1 - HIGHAPND.EXE and HIGHAPND.SYS
HIGHAPND enables or disables an appendage of up to 96k onto the
end of conventional memory. When enabled, this can increase
conventional memory from 640k to as much as 736k.
HIGHAPND requires either a memory controller chip or an EGA or
VGA display adapter. If the memory controller chip can enable
shadow ram memory at A000, then shadow ram memory will be used
to extend conventional memory; otherwise, HIGHAPND will convert
the graphics display buffer of the EGA or VGA display adapter
into an extension of conventional memory.
1.1 The APPEND=<kbytes> Option of LASTBYTE.SYS
To use HIGHAPND, you must first allocate the memory to be
appended using the APPEND option of LASTBYTE.SYS. For example,
to allow HIGHAPND to append 64k to the end of the 640k of
Conventional memory, you must add the following option to
LASTBYTE.SYS:
DEVICE=C:\TLBMM\LASTBYTE.SYS ... APPEND=64 ...
Monochrome (MDA), Hercules, and CGA display adapters don't use
the 64k region starting at A000, and so this address space can
be used to extend conventional memory from 640k to 704k,
provided there is shadow ram available in this area. CGA
display adapters don't use the next 32k either, and so CGA users
may be able to extend conventional memory all the way to 736k.
EGA and VGA display adapters have a 64k hi-resolution graphics
display buffer that is located at A000. This buffer is only
needed when you are using only hi-resolution graphics. When the
display is in either text or low-resolution CGA graphics modes,
this memory is not used, and may be replaced (switched) with
shadow ram memory if available, or the display buffer itself may
be used as additional conventional memory. Since most EGA and
VGA adapters usually don't use the 32k region at B000, you
should even be able to extend conventional memory up to 736k.
1.2 Using HIGHAPND.SYS
To enable the appendage during CONFIG.SYS processing, place the
following command in your CONFIG.SYS file:
DEVICE=C:\TLBMM\HIGHAPND.SYS ON
To subsequently disable the appendage during CONFIG.SYS
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 2
processing, use:
DEVICE=C:\TLBMM\HIGHAPND.SYS OFF
1.3 Using HIGHAPND.EXE
To enable the appendage during AUTOEXEC.BAT processing (or at
any time after the computer is booted), use the command:
C:\TLBMM\HIGHAPND ON
and to subsequently disable the appendage, use:
C:\TLBMM\HIGHAPND OFF
1.3.1 The HIGHAPND Report
HIGHAPND can be used without any command line options to
determine the current size of conventional memory and the state
of EGA/VGA hi-resolution graphics:
C:\TLBMM\HIGHAPND
1.3.2 Using HIGHAPND in .BAT Files
You can put these commands into a batch file to simplify
switching back and forth. For example, if you want the extra
memory all the time except when you need hi-res graphics for
Microsoft Windows, create a batch file like the following:
@ECHO OFF
C:\TLBMM\HIGHAPND OFF >NUL
WIN %1 %2
C:\TLBMM\HIGHAPND ON >NUL
1.4 Effect on EGA/VGA graphics
HIGHAPND will automatically disable any EGA or VGA hi-resolution
graphics capability whenever conventional memory has been
extended beyond 640k. This makes software that attempts to
sense what type of display adapter is installed think that you
have only a CGA adapter. Later, when you need the graphics
capability, you can disable the memory extension and
hi-resolution graphics will be automatically re-enabled.
If you have hi-res graphics disabled and run a program that
tries to use hi-res graphics without first sensing for an EGA or
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 3
VGA adapter, LASTBYTE.SYS will notice the conflict, issue an
error message, and terminate the program. Some programs
redirect a few interrupts during their initialization and then
restore them before termination. LASTBYTE.SYS's termination of
graphics programs doesn't know how to restore these interrupts,
so in some cases you may have to reboot the computer. In other
words, if you experience this kind of program termination with
an application program, it's best to reboot and prepare a batch
file (as shown above) to run the program.
1.5 The /HIRESGFX Option
HIGHAPND provides more detailed control over this protection
through the /HIRESGFX option as described below. This may be
helpful, for example, with software that uses the 43 (50) line
text mode of the EGA (VGA) adapter. (The setting of this option
is only meaningful when HIGHAPND ON is in effect.)
1.5.1 /HIRESGFX=TRAPPED
Disables all EGA/VGA high-resolution graphics functions provided
by video BIOS interrupt 10h and makes programs think a CGA
adapter is installed. (This is the default.)
1.5.2 /HIRESGFX=SENSED
Disables all EGA/VGA high-resolution graphics functions provided
by video BIOS interrupt 10h, but does let programs sense the
presence of an EGA or VGA adapter.
1.5.3 /HIRESGFX=ALLOWED
Allows all video BIOS interrupt 10h function calls, even if they
might use the 64k EGA/VGA graphics display buffer at A000-AFFF.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 4
CHAPTER 2 - HIGHBFRS.EXE (DOS 3 only)
HIGHBFRS can be used to place DOS 3.x buffers in upper memory.
Do NOT attempt to use HIGHBFRS with any other version of DOS -
it will NOT work.
Microsoft recommends setting the BUFFERS option in CONFIG.SYS
according to the type of application most frequently used.
Implicit within this recommendation is the assumption that you
won't change the value very often since it requires editing
CONFIG.SYS and rebooting.
In general, more buffers help when running programs that perform
random access on a relatively small number of disk records (such
as the index for a database program), or if your disk has many
subdirectories organized on several levels.
Since HIGHBFRS allows you to increase or decrease the number of
buffers dynamically, you could create some batch files to tune
the number of buffers to fit the application you're running at
the moment.
╔═════════════════════════════════════════════════╗
║ WARNING: Placing DOS buffers in high memory ║
║ can result in the loss of data. I.e., it can ║
║ damage the directory and file allocation tables ║
║ of your disk. Read everything in this section ║
║ before considering the use of this utility. ║
╚═════════════════════════════════════════════════╝
You MUST be careful that moving the DOS buffers into upper
memory does not cause DMA transfers into a 128k region of upper
memory that contains a 16-bit adapter, or else you may damage
the data on your disk. See the discussion of the RESTRICT
option of LASTBYTE.SYS, and the /NORESTRICT and /FLOPPY options
discussed below.
2.1 The BUFFERS=<number> Option
HIGHBFRS defaults to the maximum number of buffers that will fit
in the free High-DOS memory up to the DOS limit of 99 buffers.
However, you will probably want to reserve some of this memory
for other uses. This option changes the number of DOS buffers
to the value specified; <number> is a number from 1-99. For
example, the command:
C:\TLBMM\HIGHBFRS BUFFERS=20
will establish twenty buffers (about 10k) in High-DOS memory.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 5
You may run the HIGHBFRS command more than once to dynamically
change the number of buffers whenever you like. You may use
BUFFERS=MAXIMUM to establish as many buffers (up to 99) as will
fit in upper memory.
2.2 The /NORESTRICT Option
Each time you boot, LASTBYTE.SYS checks each of the three 128k
regions of upper memory for the presence of 16-bit adapters and
records this information for later use by HIGHBFRS. By default,
HIGHBFRS will only place buffers in those 128k regions where
there are no 16-bit adapters. You may override this default by
using the /NORESTRICT option on the HIGHBFRS command line, as
in:
C:\TLBMM\HIGHBFRS /NORESTRICT
╔═════════════════════════════════════════════════╗
║ Use of the /NORESTRICT option is not recommended║
╚═════════════════════════════════════════════════╝
If none of the three 128k segments is considered "safe",
HIGHBFRS will default to the interception of floppy transfers as
described in the next section.
2.3 The /FLOPPY Option
If all three 128k upper memory regions contain 16-bit adapters,
then a second (different) solution may be both necessary and
sufficient. This option causes transfers between floppy disk
drives and upper memory to be redirected through an intermediate
sector buffer in conventional (low) memory. The corresponding
command line option would be:
C:\TLBMM\HIGHBFRS /FLOPPY
Almost all hard disk controllers use CPU instructions (rather
than DMA) to transfer data and thus do not incur this problem.
2.4 The HIGHBFRS Report
When HIGHBFRS is invoked with no command line arguments, it
simply reports the number of DOS buffers presently located in
upper memory and whether or not transfers between floppy disk
drives and upper memory are redirected. You may use the HIGHMEM
program to determine where the buffers have been placed in upper
memory.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 6
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 7
CHAPTER 3 - HIGHDISK.SYS
HIGHDISK.SYS is a device driver that implements a ram disk in
upper memory. Bank-Switch Memory is allocated first, and if
that isn't enough, then High-DOS Memory is allocated to satisfy
the total request. HIGHDISK automatically loads itself into
upper memory; do not use either HIGHDRVR or the DEVICEHIGH
command; simply use a DEVICE command, as in:
DEVICE=C:\TLBMM\HIGHDISK.SYS
This example creates a ram disk that uses all available upper
memory, with 32 directory entries and sectors of 128 bytes
each.
3.1 Size and Directory Options
One to three numeric command line options may be used to control
the total size, sector size, and the number of root directory
entries using the following syntax:
DEVICE=C:\TLBMM\HIGHDISK.SYS [KBytes] [BytesPerSector] [RootDirEntries]
For example, the command:
DEVICE=C:\TLBMM\HIGHDISK.SYS 100 256 64
creates a 100k RAM disk with 256 bytes per sector and 64 root
directory entries. Other options (described below) can be
placed before, after, or in between these numeric parameters on
the command line.
╔═════════════════════════════════════════════════╗
║ NOTE: If you have used the command DOS=UMB or ║
║ DOS=HIGH,UMB with HIGHUMM.SYS to let DOS 5.0 ║
║ manage the Upper Memory Blocks, you must limit ║
║ how much upper memory HIGHUMM can use so that ║
║ some will be available for HIGHDISK. ║
╚═════════════════════════════════════════════════╝
3.2 The /NOSPLIT Option
HIGHDISK requires that LASTBYTE.SYS be installed first. It
automatically loads itself into upper memory, putting much of
itself into read-only shadow ram, unused HMA memory, or
bank-switch memory if available. As shown below, however, the
/NOSPLIT option can be used to keep it in a single memory
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 8
block.
DEVICE=C:\TLBMM\HIGHDISK /NOSPLIT
3.3 The /STUB=0 and /STUB=1 Options
By default, HIGHDISK will make its own determination of whether
or not it is necessary to leave a small "stub" in conventional
memory. However, you may override its choice by using either
/STUB=0 (leave no stub) or /STUB=1 (force a stub).
3.4 Preloading Files into the Ram Disk
HIGHDISK can preload a set of files into the ram disk during
CONFIG.SYS processing, provided HIGHDISK does not leave a stub
in conventional memory (see previous section). Simply add one
or more filespecs on the command line, each preceeded by a
dollar sign, as in:
DEVICE=C:\TLBMM\HIGHDISK.SYS $PRELOAD.DAT $C:\TLBMM\HIGHTSR.EXE
An "indirect" file (e.g., DEVICE=C:\TLBMM\HIGHDISK.SYS
@HIGHDISK.OPT) containing one or more options per line can be
used instead if the list is too long.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 9
CHAPTER 4 - HIGHEMS3.SYS and HIGHEMS4.SYS
Two expanded memory emulators are provided with The Last Byte
Memory Manager. Both use upper memory as expanded memory.
HIGHEMS3.SYS is compliant with the older LIM 3.2 spec, and
HIGHEMS4.SYS with the newer LIM 4.0 spec. Use only one of these
device drivers, and load it after LASTBYTE.SYS. Both are
included since the HIGHEMS3.SYS requires much less memory for
the device driver itself than HIGHEMS4.SYS. In many
applications, you may find that 3.2 is all you need.
These device drivers EMULATE expanded memory! That means that
they use software to copy data back and forth between the
logical EMS memory (pages) and the page frame. Obviously, this
is much slower than the performance you would realize with
hardware support, or even with EMM386. Therefore, these device
drivers are provided as a last resort for those who have no
other way of providing EMS memory to their applications, such as
users with only 1 meg of memory.
Do not install HIGHEMS3 or HIGHEMS4 using either HIGHDRVR or the
DEVICEHIGH command - simply use a DEVICE command as in:
DEVICE=C:\TLBMM\HIGHEMS3.SYS
4.1 Controlling Memory Usage
By default, both HIGHEMS3.SYS and HIGHEMS4.SYS will allocate as
many 16k logical pages as possible, first from Bank-Switch
memory and then from High-DOS memory. You can specify the
number of logical pages to allocate as a numeric parameter on
the command line, as in:
DEVICE=C:\TLBMM\HIGHEMS3.SYS 4
╔═════════════════════════════════════════════════╗
║ NOTE: If you have used the command DOS=UMB or ║
║ DOS=HIGH,UMB with HIGHUMM.SYS to let DOS 5.0 ║
║ manage the Upper Memory Blocks, you must limit ║
║ how much upper memory HIGHUMM can use so that ║
║ some will be available for HIGHEMS3/HIGHEMS4. ║
╚═════════════════════════════════════════════════╝
4.2 The /NOSPLIT Option
HIGHEMS3.SYS and HIGHEMS4.SYS automatically load themselves into
upper memory, putting as much of their executable code as
possible into the HMA or bank-switch memory if available. You
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 10
can prevent it from putting part of their code in bankswitch
memory by using the /NOSPLIT option, as in:
DEVICE=C:\TLBMM\HIGHEMS3.SYS /NOSPLIT
4.3 The /RESTRICT Option
This option restricts the placement of the EMS page frame to a
128k region of upper memory that does not contain a 16-bit
adapter. For a detailed discussion of why these regions may
need to be restricted and how to control the restrictions, see
the discussion on the RESTRICT option of LASTBYTE.SYS in the
file LASTBYTE.DOC.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 11
CHAPTER 5 - HIGHENV.EXE
HIGHENV is a utility that moves the master environment of the
command processor (typically COMMAND.COM) out of conventional
memory and into High-DOS memory. It can also be used to change
the size of the environment at any time.
╔═════════════════════════════════════════════════╗
║ WARNING: HIGHENV is incompatible with Novell. ║
╚═════════════════════════════════════════════════╝
╔═════════════════════════════════════════════════╗
║ NOTE: The /U option of 4DOS is an alternative ║
║ method for placing the master environment in ║
║ upper memory. You don't need to use HIGHENV if ║
║ you are already using the /U option of 4DOS. ║
╚═════════════════════════════════════════════════╝
5.1 The HIGHENV Report
If used without a command line option, HIGHENV simply reports
the location, capacity, and length of the master environment.
If the environment has not been moved from low memory, it also
examines and reports potential references to the environment
that exist within the command processor. If one or more are
located, the first line(s) of output from HIGHENV will be:
"Potential command processor patch at location XXXX."
where "XXXX" will vary from one command processor to another.
HIGHENV should be used this way at least once to determine what
/PATCH options (described below) may be required.
5.2 The /PATCH Option
To move the master environment into upper memory, you must use
one or more /PATCH options to specify locations in the command
processor that must be modified. (If there are no locations in
the command processor that need to be modified, use
/PATCH=NONE.) The /PATCH option may only be specified once,
when the environment is moved from low to upper memory. The
patch locations are recorded in upper memory and are
automatically adjusted if the environment is repositioned within
upper memory as the result of a subsequent use of HIGHENV to
resize the environment.
A maximum of four command processor locations to be patched may
be specified in either of two ways:
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 12
C:\TLBMM\HIGHENV 256 /PATCH=1057 /PATCH=1536
-or-
C:\TLBMM\HIGHENV 256 /PATCH=1057,1536
Each of the patch numbers specify a location in the memory image
of the command processor; these locations contain the segment
address of the master environment, and must be modified to point
to the new master environment in upper memory. Possible values
to be used are restricted to those locations reported when
HIGHENV is run with no command line options and before the
environment has been moved into upper memory.
COMMAND.COM usually contains only one such location that needs
to be patched; 4DOS contains none (use /PATCH=NONE). (Note:
HIGHENV always patches the environment address stored in the
program segment prefix of the command processor - this patch
does not need to be specified.)
5.3 Setting the Environment Size
The size option is simply a number that specifies the extra
space in bytes to be allocated to accomodate additional
environment strings besides those already established. If the
size option is omitted, the size of the environment block (and
thus its capacity for growth) will not be changed.
╔═════════════════════════════════════════════════╗
║ WARNING: The SET command of COMMAND.COM norm- ║
║ ally warns you if you run out of space in the ║
║ master environment. However, if you have used ║
║ HIGHENV to move it into upper memory, this ║
║ safeguard no longer exists - you'll just write ║
║ over the next thing in upper memory! Be sure ║
║ to check the HIGHENV report to be sure that you ║
║ have enough extra space in the environment so ║
║ that this won't occur. ║
╚═════════════════════════════════════════════════╝
Once moved into upper memory, the size of the environment may be
changed by using HIGHENV with simply a size option. For
example, to shrink the environment to only enough room for the
current environment strings, use:
C:\TLBMM\HIGHENV 0
Or to change the growth capacity to allow for the current
environment strings plus 100 bytes more, use:
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 13
C:\TLBMM\HIGHENV 100
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 14
CHAPTER 6 - HIGHFILE.EXE
This program is used to implement most of the CONFIG.SYS
"FILES=n" directive in High-DOS memory rather than in
Conventional memory. The amount of memory required by the
"FILES=n" directive is approximately 'n' times 59 bytes. Set
the minimum of FILES=8 in the CONFIG.SYS file, and then place
the rest in High-DOS memory. For example, the command:
C:\TLBMM\HIGHFILE 42
will add an additional FILES=42 (2500 bytes) in High-DOS memory,
for a total of FILES=50.
┌─────────────────────────────────────────────────┐
│ NOTE: Windows 3.0 may not run in 386 Enhanced │
│ mode with FILES in upper memory. │
└─────────────────────────────────────────────────┘
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 15
CHAPTER 7 - HIGHHOLE.EXE
HIGHHOLE is a utility program that finds unused space ("holes")
in ROMs. A "hole" is defined as a sequence of at least 128
bytes, all having the same value, and usually corresponds to
unused, left-over space in the ROM. If the ROM is shadowed,
this space can usually be converted into free High-DOS memory by
using the HOLE option of LASTBYTE.SYS.
Another part of the contents of a ROM that may be used are the
character generator font tables for unused display modes. For
example, the EGA and VGA adapter ROM bios contains a font table
for smaller than usual characters consisting of an 8x8 matrix of
dots.
Holes are often less than 1k in size, but occassionally much
larger. Since The Last Byte Memory Manager uses a "best fit"
strategy when allocating Hi-DOS memory, even the smaller holes
can become useful to hold the master environment created by
HIGHENV, the markers of HIGHMARK, or with utilities like
HIGHDISK and HIGHSPLR that can distribute their memory among
several small pieces. In addition, The Last Byte Memory Manager
will use the smallest holes for memory control blocks (MCB's)
that must be allocated for Bank-Switch memory needs.
7.1 The TRACE=<bios> Option of LASTBYTE.SYS
The field "<bios>" should be replaced by either the word
"MAINBIOS" or "VIDEOBIOS", as in TRACE=MAINBIOS or
TRACE=VIDEOBIOS. These options are intended to help identify
unused space in a bios ROM or space that is used only during
cold-boot initialization. Most such regions may be converted
into usuable upper memory with use of the HOLE option.
┌─────────────────────────────────────────────────┐
│ Tracing may not be possible on all machines │
│ because it inherently interferes with the │
│ timing of software that is controlling physical │
│ devices. At best, your computer will slow down │
│ considerably; at worst, it may not function. │
└─────────────────────────────────────────────────┘
The TRACE options should NOT be combined with any other command
line options other than the NAME, KEY, and PHYSICAL options.
Once used for its intended purpose, the TRACE option(s) should
be removed from your configuration.
Either option installs a 1 kb stub in upper memory that traces
the execution of code in the corresponding bios. The first
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 16
execution of HIGHHOLE terminates tracing, then removes and
examines the stub to identify unused portions of the bios.
The objective is to boot with tracing enabled, run as much
application software as you can, then run HIGHHOLE to see what
portion of the bios can be converted to "holes". Holes
identified in this manner will be described in the HIGHHOLE
output as "Untraced video bios" or "Untraced main bios". One or
more of these HOLE options may then added to the LASTBYTE.SYS
command line options. Don't forget to remove the TRACE options
from the command line of LASTBYTE.SYS.
┌─────────────────────────────────────────────────┐
│ If you don't use some device or feature during │
│ tracing, HIGHHOLE may report more usable hole │
│ space than actually exists! For example, │
│ if you never do a print screen while tracing, │
│ the corresponding portion of the bios won't be │
│ traced, and thus it will be reported as a hole. │
│ Don't forget that this can happen with video │
│ graphics modes, serial communications, etc. │
└─────────────────────────────────────────────────┘
It's always best when tracing to boot from a floppy; that way,
if it hangs you can always go back to booting from your hard
disk without tracing. However, sometimes everything except the
floppy disk drives will function normally during tracing. If
you have DOS 6 or later, you can safely add the TRACE option
directly to the CONFIG.SYS file on your hard disk; if tracing
hangs, just press function key F5 at the beginning of the boot
process to bypass your CONFIG.SYS and AUTOEXEC.BAT files, thus
avoiding installation of LASTBYTE.SYS (and thus tracing). Then
you can remove the TRACE option using an editor and go back to
normal operation.
7.2 The TRACE=<interrupt vector list> Option
The TRACE=MAINBIOS option enables tracing of the following main
bios interrupt vectors:
02h NMI (Power Fail) 05h Print Screen
08h Timer Tick Request 09h Keyboard Request
0Eh Diskette Request 11h Equipment List
12h Memory Size 13h Fixed Disk
14h Serial Port 15h System Services
16h Keyboard Service 17h Printer Service
1Ah Time of Day 40h Diskette Revector
If the TRACE=MAINBIOS option causes your computer to hang during
the boot process, it may be that tracing one or two specific
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 17
interrupt vectors may be the problem. You may trace a specific
subset of these interrupt vectors by using a different form of
the TRACE option, as in:
TRACE=08,09,0E,11,1A
7.3 The HOLE=<segment>:<bytes> Option of LASTBYTE.SYS
HIGHHOLE merely locates probable holes, and suggests the
corresponding HOLE options to be used with LASTBYTE.SYS, as in:
DEVICE=C:\TLBMM\LASTBYTE.SYS HOLE=C7F3:176 .....
┌──────────────────────────────────────────────────┐
│ NOTES: The <segment> and <bytes> parameters are │
│ different from other options: <bytes> is in bytes│
│ and must be a multiple of 16; <segment> may be │
│ any hexadecimal value from A000 to FFFF. │
└──────────────────────────────────────────────────┘
You must modify your LASTBYTE.SYS configuration to include the
HOLE options that you want to use from the HIGHHOLE report.
There's no gaurantee that all of the HOLE options suggested by
HIGHHOLE will work on you computer, so it's a good idea to try
them one at a time.
HIGHHOLE will not suggest a HOLE option if the corresponding ROM
area is not shadowed, or if the corresponding shadow ram is not
controlled by The Last Byte Memory Manager.
HIGHHOLE also reports all the character generator font tables as
possible hole options. If you use any software that causes the
video mode to be reset (such as the "MODE CO80" or "MODE MONO"
commands, or such as exiting from Windows), then the video bios
will attempt to access one of the font tables. Those marked as
"(ACTIVE)" in the HIGHHOLE report are needed to reset standard
display modes and therefore are not good choices for HOLE
options; others font tables may usually be used as holes if you
never use their corresponding display modes.
┌─────────────────────────────────────────────────┐
│ NOTE: Use of LASTBYTE.SYS's HOLE option will │
│ cause warm boots to be converted to cold boots. │
└─────────────────────────────────────────────────┘
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 18
7.4 Specifying Holes in Read-Only Shadow Ram
Many memory controller chips require that the main bios shadow
ram (F000-FFFF) be read-only. In general, such memory cannot be
used to load device drivers or TSR's. However, some of the
utility programs of The Last Byte Memory Manager, and some of
the data these programs use can be placed into read-only
memory.
If the main bios shadow ram is read-only, the corresponding HOLE
options will be indicated as read-only in the HIGHHOLE report.
These regions are specified with HOLE options in the same manner
as other holes; LASTBYTE.SYS will automatically determine from
the type of memory controller (PHYSICAL option) and the hole's
memory address whether it is read-only or read-write. HIGHMEM
marks free Hi-DOS memory created by read-only HOLE options with
"[R/O]" in the Type column.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 19
CHAPTER 8 - HIGHKEY.EXE
HIGHKEY is a advanced command line editor that can recall and
edit previous commands. HIGHKEY is similar to the DOSKEY
program in DOS 5, but with filename completion and the unique
ability to store the command line history and much of its own
executable code in Bank-Switch memory. It does not support
DOSKEY macros, or the editing keys F7, F9, Alt+F7, or Alt+F10.
To install HIGHKEY, simply enter it as a command at the prompt:
C:\TLBMM\HIGHKEY
This will allocate a recall buffer with a default size of 512
bytes, but which can be changed at any time with the use of a
command line option.
8.1 The /BUFSIZE=n Option
This option empties the recall buffer, and resizes it to 'n'
bytes. If 'n' is replaced by the word MAXIMUM, the recall
buffer size will use all available memory up to 65535 bytes.
8.1.1 The HMA subparameter
Appending ",HMA" to the end of the /BUFSIZE=n option as in:
/BUFSIZE=1000,HMA
tells HIGHKEY to try to put its command line recall buffer into
the HMA. Doing so, however, prevents future resizing of the
buffer.
8.2 The /INSERT and /OVERSTRIKE Options
These options set the default typing mode to insert or
overstike, respectively.
8.3 The /HISTORY Option
This option displays the contents of the command line recall
buffer on the screen.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 20
8.4 Preloading the History Buffer
This option consists of simply a filename given on the command
line, optionally preceeded by a drive and directory
specification. It may be used together with the /HISTORY option
to write the recall buffer to a file, as in:
C:\TLBMM\HIGHKEY /HISTORY <filename>
Or used without the /HISTORY option to load the recall buffer
from a file, as in:
C:\TLBMM\HIGHKEY <filename>
8.5 The /NOSPLIT Option
HIGHKEY requires that LASTBYTE.SYS be installed first. It
automatically loads itself into upper memory, putting much of
itself into read-only shadow ram, unused HMA space, or
bank-switch memory if available. The /NOSPLIT option can be
used to prevent it from doing this.
C:\TLBMM\HIGHKEY /NOSPLIT
8.6 Editing Commands
Some of the HIGHKEY editing commands use what is known as the
"template". The template is initialized to a copy of the
previous command line, but may be modified by one or more of the
editing commands.
Left Arrow Moves the cursor back one character.
Right Arrow Moves the cursor forward one character.
Up Arrow Recalls the previous command and stores
it in the template.
Down Arrow Recalls the next command and stores it
in the template.
PgUp Recalls the oldest command and stores it
in the template.
PgDn Recalls the most recent command and stores
it in the template.
Ctrl+Left Arrow Moves the cursor back one word.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 21
Ctrl+Right Arrow Moves the cursor forward one word.
Home Moves the cursor to the beginning of
the command line.
End Moves the cursor to the end of the
command line.
Esc Erases the command line; does not affect
the template.
Ins Toggles insert versus overwrite mode.
Backspace Deletes the character to the left of the
cursor; does not affect the template.
Del Deletes the character at the cursor; does
not affect the template.
Ctrl+End Deletes from the cursor to the end of
the line; does not affect the template.
Ctrl+Home Deletes from the beginning of the line
up to but not including the cursor; does
not affect the template.
F1 Copies one character from the template.
F2 Waits for a keypress, then inserts charac-
ters from the template up to but not in-
cluding the first occurrence of that key.
F3 Copies the remainder of the template to
the command line.
F4 Waits for a keypress, then deletes charac-
ters from the template up to but not in-
cluding that key. The template is then
displayed on the command line.
F5 Copies the command line to the template
and then erases the command line.
F6 Inserts an end-of-file character (Ctrl+Z).
F8 Searches for the next command that matches
the characters in the command line up to
the position of the cursor, then copies
that command to the template.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 22
Tab Searches for a file on the disk whose name
matches the partial filespec given by the
text indicated by the cursor. If found,
the filespec is completed on the command
line.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 23
CHAPTER 9 - HIGHMARK.EXE and HIGHUNDO.EXE
Sometimes it can be useful to remove one or more TSR's from
memory, either because you no longer want to use the features
that they provide or perhaps in order to make room for other
software.
In order to be able to remove a group of TSR's from upper
memory, they must be be marked. To mark them, run HIGHMARK once
before you use HIGHTSR to load the TSR's. Then later, simply
run HIGHUNDO - the mark and all of its associated TSR's will be
removed.
HIGHMARK may be executed more than once to establish multiple
levels of TSR's to be removed. Each execution of HIGHMARK
places another mark in memory with a unique mark number.
HIGHMARK attempts to store the mark in read-only shadow ram,
then bank-switch memory, then Hi-DOS memory.
Every TSR loaded by HIGHTSR is automatically associated with the
most recent execution of HIGHMARK. You can use HIGHMEM to see
the marks, their mark number, and the set of TSR's associated
with the mark. Every execution of HIGHUNDO will then remove the
set of TSR's associated with the most recent HIGHMARK.
You may specify a mark level on the command line of HIGHUNDO.
This will cause it to remove all the TSR's and marks whose mark
number is greater than or equal to the number on the command
line.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 24
CHAPTER 10 - HIGHRSVD.EXE and HIGHRSVD.SYS
HIGHRSVD helps control the allocation of upper memory in The
Last Byte Memory Manager. Basically, it is used to reserve and
later release selected blocks of memory. There are two versions
of HIGHRSVD, a device driver (HIGHRSVD.SYS) for use in
CONFIG.SYS, and an application program (HIGHRSVD.EXE) for use
outside of CONFIG.SYS.
Each time HIGHRSVD is invoked, it begins by releasing any memory
that had been reserved by a previous invocation of HIGHRSVD.
Then if any command line options are specified, each is used to
reserve a block of memory.
10.1 Reserving High-DOS Memory
Blocks of High-DOS memory can be reserved by specifying their
size as parameters on the command line as in:
DEVICE=C:\TLBMM\HIGHRSVD.SYS 10000 5000 2000
-or-
C:\TLBMM\HIGHRSVD 10000 5000 2000
Both of the above examples will reserve three blocks of memory:
one of 10,000 bytes, a second block of 5,000 bytes, and a third
block of 2,000 bytes. HIGHRSVD will attempt to satisfy each
request by using a "best fit" strategy; that is, it will reserve
a block a memory using the smallest free block that is large
enough to satisfy the request. For example, if you have three
free blocks of 1000, 5000, and 10000 bytes respectively, an
option of 4000 will reserve 4000 bytes from the free block of
5000.
10.2 The HIGH Suboption
By default, the reserved block will be positioned at the low end
of the selected free block's address space; you may position the
reserved block at the top of the address space by adding ",HIGH"
to the size specification, as in:
C:\TLBMM\HIGHRSVD 4000,HIGH
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 25
CHAPTER 11 - HIGHSPLR.EXE
HIGHSPLR is a interrupt-driven print spooler that creates a
print buffer in upper memory. Once installed, programs that
send output to the printer are no longer held up waiting for the
printer, but rather simply send their output to the buffer.
Characters in the buffer are then sent to the printer by the
resident portion of HIGHSPLR while your computer is free to do
other work.
Unlike the DOS printer spooler (PRINT), HIGHSPLR is driven by
the printer hardware interrupt line that signals printer
"ready", rather than the timer tick (that only interrupts 18
times per second). Unlike PRINT, this allows full-speed
transfers (e.g., up to about 8,000 cps) to the printer even
while executing other programs.
HIGHSPLR tries to place its buffer in Bank-Switch memory, but
will use High-DOS memory if a sufficient amount of Bank-Switch
memory is not available.
The command line syntax for HIGHSPLR is given below.
C:\TLBMM\HIGHSPLR [opt] [opt] ... [opt]
All parameters are optional and may be specified in any order.
All of the options except LPT, COM, and IRQ may be abbreviated
by their first letter.
11.1 The /NOSPLIT Option
Depending on the characteristics of your chipset, you may also
have read-only memory available; if so, HIGHSPLR will try to put
most of its code there. However, you may use the /NOSPLIT
command line option to prevent this.
11.2 Specifying the Buffer Size
The size of the print buffer will default to all available
Bank-Switch and High-DOS memory. This option may be used to use
a smaller buffer, or to resize the buffer later, as in:
KBYTES=20
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 26
11.2.1 The HMA subparameter
Appending ",HMA" to the end of the KBYTES=n option as in
KBYTES=20,HMA
tells HIGHSPLR to use the HMA first when allocating its command
line recall buffer. Doing so, however, limits future resizing
of the buffer to a size no smaller than the amount first
allocated within the HMA .
11.3 Specifying the Logical Device
HIGHSPLR supports both parallel and serial printers, but
defaults to LPT1. Multiple copies of HIGHSPLR can be installed
to support more than one printer. You can specify the logical
device by placing one of the following options on the command
line:
LPT1 LPT2 LPT3 COM1 COM2 COM3 COM4
HIGHSPLR automatically determines the physical i/o port address
from the device name (e.g., LPT2), but you can override this
with the PORT option, as in:
PORT=#
11.4 Specifying the Hardware Interrupt
HIGHSPLR determines a default physical interrupt vector from the
device name (e.g., LPT2), but you can override this by using one
of the following options on the command line:
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
If you would rather use polling instead of interrupt-driven I/O,
place the word "POLL" on the command line and do not use one of
the IRQ# options. This may be necessary if another parallel
port is in use for some other purpose (e.g., with
Lantastic/Z).
11.5 Specifying Flow Control
Serial ports usually require some form of flow control.
HIGHSPLR does not implement flow control by default. To have it
use flow control, place one of the following options on the
command line:
Copyright (C) 1990-94, Key Software Products. All Rights Reserved
Sep 14, 1994 ADVANCED UTILITIES 27
FLOW=<type>, where <type> is selected from:
XON DTR RTS NONE (default)
11.6 The MONITOR Option
HIGHSPLR has a unique "monitor" option. While output is being
sent to the printer, you can monitor the actual transfer rate by
entering the command,
C:\TLBMM\HIGHSPLR MONITOR
The monitor operation may be terminated at any time by pressing
a key, or will automatically terminate when the print buffer has
been emptied. Once terminated, HIGHSPLR will display the
maximum and average transfer rates measured during the monitor
operation.
11.7 The RESET Option
The RESET option provides a way to cancel printing from the
buffer (and do a form-feed) at any time.
11.8 The NOTEST Option
The NOTEST option disables the default test for functionality of
the physical port that occurs when HIGHSPLR is first installed.
Copyright (C) 1990-94, Key Software Products. All Rights Reserved