home *** CD-ROM | disk | FTP | other *** search
- --------------
- ** EXTENDER **
- --------------
-
- Version 1.30
-
- by
-
- KEY SOFTWARE PRODUCTS
- 440 Ninth Avenue
- Menlo Park, California 94025
- (415) 364-9847
-
- Revised: May 20, 1990
-
-
- -----------------------------------------------------------------------
- *** NOTE: See LICENSE.DOC to find out how to access ALL 384k of memory!
- -----------------------------------------------------------------------
-
-
- 1. INTRODUCTION
- ----------------
-
- EXTENDER is a collection of software that can add up to 384k of
- memory to your 286, 386, or 386SX machine by taking advantage of
- those motherboards that use one of the following memory controller
- chips manufactured by Chips and Technologies:
-
- 82C302 - Used with 386 Systems without a Cache
- 82C307 - Used with 386 Systems with a Cache
- 82C212 - Part of the NEAT Chipset for 286 and 386
- 82C812 - Part of the NEAT Chipset for 386SX
-
- EXTENDER does this by using the 384k of high memory (in the 640k-1MB
- range) that is on your motherboard but which is normally only used
- for Shadow RAM. With EXTENDER, this memory can also be used for
- TSR's, TSR marks, device drivers, and RAM disks rather than loading
- them into conventional memory (0-640k) where they use precious DOS
- memory space needed by your application programs. If you don't have
- an EGA or VGA, or if you don't use graphics, then conventional memory
- (available to application programs) can be extended from 640k to as
- much as 736k.
-
- Other system requirements: DOS 3.0 or higher, 1M or more of
- (physical) memory.
-
- ----------------------
- IMPORTANT DIFFERENCES!
- ----------------------
-
- EXTENDER has four significant advantages over other DOS Extenders:
-
- 1. EXTENDER doesn't require a 386. Other DOS extenders
- won't work on 286 systems. The only hardware required by
- EXTENDER is the Chips and Technology chipset and 1MB of
- hardware.
-
- 2. EXTENDER doesn't use any 386 protected mode software.
- This means that unlike some other DOS extenders, EXTENDER
- works well with Microsoft Windows/386.
-
- 3. EXTENDER doesn't require any extended memory (above 1MB).
- Other DOS extenders depend on the 386 processor's
- ability to remap physical memory from above 1MB into high
- memory, but of course that memory is no longer available
- as extended memory.
-
- 4. EXTENDER, unlike all other DOS extenders, can use the
- high memory addresses that coincide with the Bios ROM or
- any adapter that you have installed. A device driver is
- supplied with EXTENDER that uses bank-switching
- techniques to gain access to this memory. This gives
- EXTENDER the unique ability to use *ALL* 384k of high
- memory!
-
-
- 2. INSTALLATION
- ---------------
-
- You should first install EXTENDER on a floppy to verify that you can
- boot and operate your PC reliably with EXTENDER installed. To
- install EXTENDER on a floppy, do the following:
-
- Step 1: Use the FORMAT command with the /S option to prepare a
- bootable floppy disk.
-
- Step 2: Copy the files EXTENDER.SYS, HIGHDRVR.SYS, HIGHTSR.EXE,
- HIGHMEM.EXE, COLS.40, and COLS.80 to the floppy disk.
-
- Step 3: Copy the DOS files PRINT.COM and ANSI.SYS onto the diskette.
-
- Step 4: Create a CONFIG.SYS file on the floppy that contains the lines:
-
- DEVICE=EXTENDER.SYS ?
- DEVICE=HIGHDRVR.SYS ANSI.SYS
-
- The "?" in the first line is intentional - it directs EXTENDER
- to display what it finds in the high memory address space.
- (For other device drivers that require command line arguments,
- simply place those at the end of the "DEVICE=" line.)
-
- Step 5: Create an AUTOEXEC.BAT file on the floppy that contains the
- single line:
-
- HIGHTSR PRINT /D:PRN
-
- Step 6: Boot from the floppy.
-
- If everything goes ok, you'll see a sign-on box that looks something
- like the following:
-
- +-------------------------------------------------------------------+
- | EXTENDER v1.30 - For Chips & Technology (tm) Memory Controllers |
- | Copyright (C) 1990, Key Software Products, All Rights Reserved |
- | Access Key # 00000000 licensed for EVALUATION ONLY |
- +-------------------------------------------------------------------+
- | Memory locations A0000-BFFFF (128k) are EGA Display RAM. |
- | Memory locations C0000-C3FFF ( 16k) are ROM Bios Code. |
- | Memory locations F0000-FFFFF ( 64k) are ROM Bios Code. |
- | ROM at C0000 copied to Shadow RAM. |
- | ROM at F0000 copied to Shadow RAM. |
- +-------------------------------------------------------------------+
- | Memory Available: 640k DOS, 32k High Memory, 32k Bank-Switch. |
- +-------------------------------------------------------------------+
-
- If your PC stops before displaying the entire box shown above, or if
- it fails to operate properly after booting, this is because EXTENDER
- failed to identify one of your installed adapters that uses some
- portion of the high-memory address space. If this happens, you'll
- need to use the command line options (discussed below) to manually
- disable the corresponding region(s) where conflict occurs.
-
- When AUTOEXEC.BAT is invoked, you'll see the following on your screen
- which verifies that PRINT has been installed:
-
- A>HIGHTSR PRINT /D:PRN
- Resident part of PRINT installed
- PRINT queue is empty
-
- A>
-
- If you like, you can try using the PRINT program to print a file.
-
- Now run HIGHMEM to get a map of high memory. It should look
- something like this:
-
- MCB Address Range Bytes Description Mark Switch
- ---- ------------- ------- --------------- ---- -------
- None A0000-C3FFF [147,456]
- A0000-BFFFF 131,072 EGA Display Ram 131,072
- C0000-C3FFF 16,384 Shadow Ram 16,384
- C400 C4010-C436F 864 EXTENDER.SYS
- C437 C4380-C551F 4,512 ANSI.SYS
- C552 C5530-C6BCF 5,792 PRINT.COM
- C6BD C6BE0-EFFDF 168,960 -- Free --
- EFFE EFFF0-FFFFF [ 65,552]
- F0000-FFFFF 65,536 Shadow Ram 65,536
- ------- -------
- Free DOS High Memory: 168,960 Bank-Switch Free: 212,992
- Largest Free Block: 168,960 Max Contiguous: 147,456
-
- Numbers enclosed in brackets (e.g., "[147,456]") are not included in
- the totals. The column labelled "Mark" is used in conjunction with
- HIGHMARK and HIGHUNDO. The column labelled "Switch" shows which
- entries can be used as Bank-Switch memory for a ramdisk or for TSR
- marks.
-
- If you wish, you can verify that ANSI.SYS is installed and operating
- by using the commands:
-
- TYPE COLS.40
-
- {switches display to 25 rows by 40 columns}, or
-
- TYPE COLS.80
-
- {switches display to 25 rows by 80 columns}.
-
- (These commands will display garbage on the screen if ANSI.SYS has
- not been installed.)
-
-
- 3. COMMAND LINE OPTIONS FOR EXTENDER.SYS
- ----------------------------------------
-
- There are only three command line options for EXTENDER.SYS: "?", "-",
- and "+".
-
- The first of these ("?") directs EXTENDER to report what it finds
- installed in the high-memory space. It will automatically detect the
- memory space used by most display adapters, such as monochrome (MDA
- and Hercules), CGA, EGA, and VGA. It will also detect any Bios
- ROM's, or any RAM which reads back exactly what has been written.
- Some adapters, however, may implement write-only RAM or RAM which
- doesn't read back the same. In these cases, the "-" option is
- required to prevent EXTENDER from trying to use that memory space.
-
- The format of the "-" option is:
-
- -<base>:<size>
-
- where "<base>" is a base paragraph (segment) address expressed as
- four hexadecimal digits, and "<size>" is kilobytes expressed in
- decimal. For example, to prevent EXTENDER from using the 10k address
- range starting at segment E400, the proper option syntax would be:
-
- -E400:10
-
- The format of the "+" option is identical, except for the leading
- plus (instead of minus) sign. For example, to force EXTENDER to use
- the 2k region starting at segment A780, the proper option syntax
- would be:
-
- +A780:2
-
- There are some restrictions on these options:
-
- (1) The base must be exactly 4 hexadecimal digits,
- must lie at or above A000, and must be a
- multiple of 0080 (2k).
-
- (2) The size must be in the range 2-384 kb, and must be a
- multiple of 2.
-
- The reason for the "multiple of 2 (kb)" requirement is that EXTENDER
- tries to allocate memory in 2k increments, corresponding to the IBM
- spec that Bios ROM's are sized in multiples of 2kb. However, this is
- somewhat complicated by the larger 16k resolution of the Chips and
- Technology memory controllers. Without going into a lengthy
- technical explanation, let's just say that you'll probably notice
- that HIGHMEM may not report exactly what you asked for with the
- options; rather, EXTENDER will structure high memory in a manner that
- satisfies your intent but which is consistent with physical
- constraints. Sometimes you'll get less memory than you asked for,
- and sometimes you may even get a little more.
-
- Once you are convinced that EXTENDER is working satisfactorily, you
- may copy it to your hard disk and modify the CONFIG.SYS and
- AUTOEXEC.BAT files there accordingly.
-
-
- 4. Using the +F000:32 option with AMI Bios chips
- ------------------------------------------------
-
- The 64k region starting at paragraph address F000 is the Bios ROM.
- The default operation of EXTENDER is to copy this ROM to Shadow RAM
- (RAM at the same location) for faster execution of the ROM Bios
- routines. As a consequence, this RAM is not available to DOS as high
- memory.
-
- Many of the popular 386 clones use a Bios ROM developed by AMI. The
- more recent versions of these ROMs devote the first 32k to
- initialization code that is only used during the boot sequence, and
- use the second 32k for that portion that must remain available at all
- times.
-
- By the time your PC gets to the point in its boot sequence where it
- is setting up the device drivers (e.g., when it is installing
- EXTENDER.SYS), the Bios initialization code is no longer needed. If
- you have one of these AMI Bios chips, you can capture another 32k of
- high memory by using a +F000:32 option (see section 4, "Command Line
- Options for EXTENDER.SYS").
-
- Of course, whenever you press Ctrl-Alt-Del to do a warm boot, the ROM
- Bios initialization code needs to be executed again! And that could
- be a problem since you've effectively disabled it with the +F000:32
- option! Fortunately, EXTENDER.SYS intercepts all keyboard input and
- keeps an eye out for Ctrl-Alt-Del. When it sees this warm boot
- request, it first re-enables the entire 64k Bios ROM so that the
- initialization code is reactivated before the processor tries to
- execute it.
-
-
- 5. Using HIGHDISK.SYS
- ---------------------
-
- HIGHDISK.SYS is a device driver that uses bank-switching to gain
- access to the high memory that lies in the same address space as the
- Bios ROM and any I/O adapters you have installed. This otherwise
- unusable space can then be used to hold data. The device driver
- itself may also be loaded into high memory by using HIGHDRVR.SYS to
- load HIGHDISK.SYS. I.e., a typical command in CONFIG.SYS to do this
- would be:
-
- DEVICE=HIGHDRVR.SYS HIGHDISK.SYS
-
- This creates a default 64k RAM disk with 64 directory entries and
- sectors of 128 bytes each. (This requires at least 64k of unused and
- contiguous Bank-Switch memory.)
-
- A command line option may be used to change the size of the RAM disk
- as in:
-
- DEVICE=HIGHDRVR.SYS HIGHDISK.SYS 127
-
- This creates a 127k byte RAM disk. Such a RAM disk will be allocated
- to the EGA/VGA display buffer space between A0000 and BFFFF. (You
- can't get all 128k of that space because there are two memory control
- blocks of 16 bytes each in the same area. You may ask for more, but
- if you do, the RAM disk will use some or all of the C0000-C7FFF space
- occupied by the EGA/VGA ROM, which will necessarily disable its
- corresponding Shadow RAM.)
-
- Other command line options may be used to change the number of bytes
- per sector and directory entries, as in:
-
- DEVICE=HIGHDRVR.SYS HIGHDISK.SYS 127 256 32
-
- This creates a 127k RAM disk with 256 bytes per sector and 32 root
- directory entries.
-
-
- 6. Video Display RAM above 640k
- -------------------------------
-
- In general, the region A0000-BFFFF is the video display buffer area.
- Various display adapters (MDA, Hercules, CGA, EGA, and VGA) typically
- use only a subset of this space. EXTENDER automatically senses what
- kind of video display adapter is installed and reserves that portion
- of this address space that might POTENTIALLY be used by the adapter.
- You can determine where these areas are with the HIGHMEM command or
- with the "?" option on the command line of EXTENDER.SYS. However,
- you may choose to override EXTENDER's rather conservative defaults
- with the "+" (or "-") command line option.
-
- When EXTENDER detects an EGA or VGA adapter, it automatically
- reserves the entire 128k display buffer between A0000-BFFFF.
- Theoretically, neither the EGA or VGA should use the 32k monochrome
- region (B0000-B7FFF), thus you should be able to recover this memory
- with a +B000:32 option. And if you don't intend to use graphics, you
- should be able to recover the 64k graphics region (A0000-AFFFF) with
- the +A000:64 option. Note, however, that the ROM Bios of a few EGA
- or VGA adapters will write into one or more of these areas even if
- they aren't in monochrome or graphics mode. So use these options
- with caution!
-
- If a Hercules adapter is found, EXTENDER reserves the entire 64k
- range B0000-BFFFF in case Hercules graphics modes are used.
- Otherwise, you may be able to recover quite a bit of memory with an
- optoin like +B100:60.
-
- Normally, an MDA adapter should use only the 4k range B0000-B0FFF,
- and clearing the screen with a DOS "CLS" command should erase the
- screen by writing (only) in this region. However, the standard ROM
- Bios on some clones assume that the MDA display buffer fills a larger
- region between B0000-B2FFF or B0000-B3FFF. Similarly, a CGA adapter
- should use only the 16k range B8000-BBFFF; however some software will
- write to the second 16k between BC000-BFFFF.
-
- Therefore, for MDA and CGA adapters, if any Display Buffer RAM is
- found at B0000, EXTENDER assumes that the entire 32k range
- B0000-B7FFF is used. Similarly, if any Display Buffer RAM is found
- at B8000, EXTENDER assumes that the entire 32k range B8000-BFFFF is
- used. You may be able to recover some additional memory in one of
- these two ranges with an appropriate "+" command line option.
-
-
- 7. Video Adapter Bios ROMs
- --------------------------
-
- MDA and CGA use the standard ROM Bios; they have no ROM of their own.
- Hercules, EGA, and VGA adapters, however, incorporate their own ROM
- Bios chip right on the adapter card. EXTENDER successfully
- recognizes these ROMs, but has to treat VGA in a special manner:
-
- The IBM VGA adapter has a 24k ROM installed at C0000-C5FFF, which
- means that the 8k at C6000-C7FFF should be usable. Although almost
- all VGA clones have a ROM signature that indicates 24k, many of them
- use the C6000-C7FFF space for ROM Bios or RAM extensions that provide
- their "Super VGA" features. In particular, the Video7 and Paradise
- VGA's incorporate their own RAM from C6000-C7FFF. For this reason,
- when EXTENDER finds anybody's VGA adapter, it automatically assumes
- that there is a 32k ROM at C0000-C7FFF.
-
-
- 8. Installing FASTOPEN and MODE into High Memory
- ------------------------------------------------
-
- The FASTOPEN and MODE programs that comes with DOS are TSR's and as
- such may be loaded into high memory. Once installed, each requires
- very little memory, something on the order of 9k or less. However,
- neither will install unless a LOT of memory is available, like around
- 50-90k (depending on command line options)! The worst part is that
- if FASTOPEN fails to install itself successfully, it doesn't issue
- any error message - it simply doesn't display the normal "FASTOPEN
- installed" sign-on message. Moral: Let FASTOPEN and MODE be the
- first TSR's that are installed into High Memory in your AUTOEXEC.BAT
- file so that they get access to the maximum amount of memory.
-
- The second hassle with these two TSR's is that they cannot be removed
- by using HIGHMARK and HIGHUNDO. Evidently they modify memory other
- than that tracked by these EXTENDER utilities: the interrupt vector
- table and that memory allocated to them.
-
-
- 9. Using EXTENDER with Expanded Memory
- --------------------------------------
-
- Expanded memory always has an associated device driver. If that
- driver is loaded before EXTENDER.SYS in the CONFIG.SYS file, EXTENDER
- will recognize the 64k EMM Page Frame of the expanded memory and do
- the right thing: It will disable the motherboard RAM that falls in
- the same address space so that it doesn't interfere with the Page
- Frame.
-
- This works fine, of course, but loading the EMM driver first
- precludes the possibility of loading it into High Memory. To get the
- EMM driver in to High Memory means that it must be loaded after
- EXTENDER.SYS, but you must be careful!
-
- If a REAL expanded memory board is installed then you won't have any
- problems. For example, if the EMM driver is loaded first (as
- described above), EXTENDER will report the 64k EMM Page Frame as "EMM
- Page Frame". Otherwise, EXTENDER will report it simply as "Adapter
- RAM". But in either case, the memory space will be not be used by
- EXTENDER.
-
- On the other hand, if you don't have an expanded memory board, but
- have used a device driver (like EMM386.SYS) that emulates expanded
- memory using extended memory, then EXTENDER.SYS will not know about
- the page frame unless the emulator is loaded first. If you would
- rather load the emulator into High Memory (which requires loading
- EXTENDER.SYS first), then you must use a "-" command line option of
- EXTENDER.SYS to reserve a 64k region where the Page Frame will be
- located.
-
-
- 10. Using HIGHMARK and HIGHUNDO
- -------------------------------
-
- 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 another set of TSR's.
-
- In order to be able to remove a group of TSR's from high 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 and the
- mark and all of its assoicated TSR's will be removed.
-
- HIGHMARK may be executed more than once to establish levels of TSR's
- to be removed. Each execution of HIGHMARK places another mark in
- memory with a unique mark number. 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.
-
- --------------------- End of file EXTENDER.DOC ---------------------
-