home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / MEMORIA / EXT_V130.ZIP / EXTENDER.DOC < prev    next >
Encoding:
Text File  |  1990-05-22  |  19.0 KB  |  450 lines

  1.                 --------------
  2.                 ** EXTENDER **
  3.                 --------------
  4.  
  5.                  Version 1.30
  6.  
  7.                   by
  8.  
  9.             KEY SOFTWARE PRODUCTS
  10.                440 Ninth Avenue
  11.              Menlo Park, California 94025
  12.                 (415) 364-9847
  13.  
  14.             Revised: May 20, 1990
  15.  
  16.  
  17. -----------------------------------------------------------------------
  18. *** NOTE: See LICENSE.DOC to find out how to access ALL 384k of memory!
  19. -----------------------------------------------------------------------
  20.  
  21.  
  22. 1.  INTRODUCTION
  23. ----------------
  24.  
  25. EXTENDER is a collection of software that can add up to 384k of
  26. memory to your 286, 386, or 386SX machine by taking advantage of
  27. those motherboards that use one of the following memory controller
  28. chips manufactured by Chips and Technologies:
  29.  
  30.     82C302 - Used with 386 Systems without a Cache
  31.     82C307 - Used with 386 Systems with a Cache
  32.     82C212 - Part of the NEAT Chipset for 286 and 386
  33.     82C812 - Part of the NEAT Chipset for 386SX
  34.  
  35. EXTENDER does this by using the 384k of high memory (in the 640k-1MB
  36. range) that is on your motherboard but which is normally only used
  37. for Shadow RAM.  With EXTENDER, this memory can also be used for
  38. TSR's, TSR marks, device drivers, and RAM disks rather than loading
  39. them into conventional memory (0-640k) where they use precious DOS
  40. memory space needed by your application programs.  If you don't have
  41. an EGA or VGA, or if you don't use graphics, then conventional memory
  42. (available to application programs) can be extended from 640k to as
  43. much as 736k.
  44.  
  45. Other system requirements: DOS 3.0 or higher, 1M or more of
  46. (physical) memory.
  47.  
  48.             ----------------------
  49.             IMPORTANT DIFFERENCES!
  50.             ----------------------
  51.  
  52. EXTENDER has four significant advantages over other DOS Extenders:
  53.  
  54.     1.  EXTENDER doesn't require a 386.  Other DOS extenders
  55.         won't work on 286 systems.  The only hardware required by
  56.         EXTENDER is the Chips and Technology chipset and 1MB of
  57.         hardware.
  58.  
  59.     2.  EXTENDER doesn't use any 386 protected mode software.
  60.         This means that unlike some other DOS extenders, EXTENDER
  61.         works well with Microsoft Windows/386.
  62.  
  63.     3.  EXTENDER doesn't require any extended memory (above 1MB).
  64.         Other DOS extenders depend on the 386 processor's
  65.         ability to remap physical memory from above 1MB into high
  66.         memory, but of course that memory is no longer available
  67.         as extended memory.
  68.  
  69.     4.  EXTENDER, unlike all other DOS extenders, can use the
  70.         high memory addresses that coincide with the Bios ROM or
  71.         any adapter that you have installed.  A device driver is
  72.         supplied with EXTENDER that uses bank-switching
  73.         techniques to gain access to this memory.  This gives
  74.         EXTENDER the unique ability to use *ALL* 384k of high
  75.         memory!
  76.  
  77.  
  78. 2. INSTALLATION
  79. ---------------
  80.  
  81. You should first install EXTENDER on a floppy to verify that you can
  82. boot and operate your PC reliably with EXTENDER installed.  To
  83. install EXTENDER on a floppy, do the following:
  84.  
  85. Step 1:    Use the FORMAT command with the /S option to prepare a
  86.     bootable floppy disk.
  87.  
  88. Step 2: Copy the files EXTENDER.SYS, HIGHDRVR.SYS, HIGHTSR.EXE,
  89.     HIGHMEM.EXE, COLS.40, and COLS.80 to the floppy disk.
  90.     
  91. Step 3: Copy the DOS files PRINT.COM and ANSI.SYS onto the diskette.
  92.  
  93. Step 4:    Create a CONFIG.SYS file on the floppy that contains the lines:
  94.  
  95.         DEVICE=EXTENDER.SYS ?
  96.         DEVICE=HIGHDRVR.SYS ANSI.SYS
  97.  
  98.     The "?" in the first line is intentional - it directs EXTENDER
  99.     to display what it finds in the high memory address space.
  100.     (For other device drivers that require command line arguments,
  101.     simply place those at the end of the "DEVICE=" line.)
  102.  
  103. Step 5:    Create an AUTOEXEC.BAT file on the floppy that contains the
  104.     single line:
  105.  
  106.         HIGHTSR PRINT /D:PRN
  107.  
  108. Step 6:    Boot from the floppy.
  109.  
  110. If everything goes ok, you'll see a sign-on box that looks something
  111. like the following:
  112.  
  113.   +-------------------------------------------------------------------+
  114.   |  EXTENDER v1.30 - For Chips & Technology (tm) Memory Controllers  |
  115.   |   Copyright (C) 1990, Key Software Products, All Rights Reserved  |
  116.   |       Access Key # 00000000 licensed for EVALUATION ONLY          |
  117.   +-------------------------------------------------------------------+
  118.   |      Memory locations A0000-BFFFF (128k) are EGA Display RAM.     |
  119.   |      Memory locations C0000-C3FFF ( 16k) are ROM Bios Code.       |
  120.   |      Memory locations F0000-FFFFF ( 64k) are ROM Bios Code.       |
  121.   |                 ROM at C0000 copied to Shadow RAM.                |
  122.   |                 ROM at F0000 copied to Shadow RAM.                |
  123.   +-------------------------------------------------------------------+
  124.   |   Memory Available: 640k DOS, 32k High Memory, 32k Bank-Switch.   |
  125.   +-------------------------------------------------------------------+
  126.  
  127. If your PC stops before displaying the entire box shown above, or if
  128. it fails to operate properly after booting, this is because EXTENDER
  129. failed to identify one of your installed adapters that uses some
  130. portion of the high-memory address space.  If this happens, you'll
  131. need to use the command line options (discussed below) to manually
  132. disable the corresponding region(s) where conflict occurs.
  133.  
  134. When AUTOEXEC.BAT is invoked, you'll see the following on your screen
  135. which verifies that PRINT has been installed:
  136.  
  137.     A>HIGHTSR PRINT /D:PRN
  138.     Resident part of PRINT installed
  139.     PRINT queue is empty
  140.  
  141.     A>
  142.  
  143. If you like, you can try using the PRINT program to print a file.
  144.  
  145. Now run HIGHMEM to get a map of high memory.  It should look
  146. something like this:
  147.  
  148.    MCB    Address Range    Bytes    Description      Mark   Switch
  149.    ----   -------------   -------   ---------------  ----   -------
  150.    None    A0000-C3FFF   [147,456]                      
  151.            A0000-BFFFF    131,072   EGA Display Ram         131,072 
  152.            C0000-C3FFF     16,384   Shadow Ram               16,384
  153.    C400    C4010-C436F        864   EXTENDER.SYS        
  154.    C437    C4380-C551F      4,512   ANSI.SYS
  155.    C552    C5530-C6BCF      5,792   PRINT.COM
  156.    C6BD    C6BE0-EFFDF    168,960   -- Free --
  157.    EFFE    EFFF0-FFFFF   [ 65,552]                  
  158.            F0000-FFFFF     65,536   Shadow Ram               65,536
  159.                           -------                           -------
  160.     Free DOS High Memory: 168,960         Bank-Switch Free: 212,992
  161.       Largest Free Block: 168,960           Max Contiguous: 147,456
  162.  
  163. Numbers enclosed in brackets (e.g., "[147,456]") are not included in
  164. the totals.  The column labelled "Mark" is used in conjunction with
  165. HIGHMARK and HIGHUNDO.  The column labelled "Switch" shows which
  166. entries can be used as Bank-Switch memory for a ramdisk or for TSR
  167. marks.
  168.  
  169. If you wish, you can verify that ANSI.SYS is installed and operating
  170. by using the commands:
  171.  
  172.     TYPE COLS.40
  173.  
  174.         {switches display to 25 rows by 40 columns}, or
  175.  
  176.     TYPE COLS.80
  177.  
  178.         {switches display to 25 rows by 80 columns}.
  179.  
  180. (These commands will display garbage on the screen if ANSI.SYS has
  181. not been installed.)
  182.  
  183.  
  184. 3. COMMAND LINE OPTIONS FOR EXTENDER.SYS
  185. ----------------------------------------
  186.  
  187. There are only three command line options for EXTENDER.SYS: "?", "-",
  188. and "+".
  189.  
  190. The first of these ("?") directs EXTENDER to report what it finds
  191. installed in the high-memory space.  It will automatically detect the
  192. memory space used by most display adapters, such as monochrome (MDA
  193. and Hercules), CGA, EGA, and VGA.  It will also detect any Bios
  194. ROM's, or any RAM which reads back exactly what has been written.
  195. Some adapters, however, may implement write-only RAM or RAM which
  196. doesn't read back the same.  In these cases, the "-" option is
  197. required to prevent EXTENDER from trying to use that memory space.
  198.  
  199. The format of the "-" option is:
  200.  
  201.         -<base>:<size>
  202.  
  203. where "<base>" is a base paragraph (segment) address expressed as
  204. four hexadecimal digits, and "<size>" is kilobytes expressed in
  205. decimal.  For example, to prevent EXTENDER from using the 10k address
  206. range starting at segment E400, the proper option syntax would be:
  207.  
  208.         -E400:10
  209.  
  210. The format of the "+" option is identical, except for the leading
  211. plus (instead of minus) sign.  For example, to force EXTENDER to use
  212. the 2k region starting at segment A780, the proper option syntax
  213. would be:
  214.  
  215.         +A780:2
  216.  
  217. There are some restrictions on these options:
  218.  
  219.     (1) The base must be exactly 4 hexadecimal digits,
  220.         must lie at or above A000, and must be a
  221.         multiple of 0080 (2k).
  222.  
  223.     (2) The size must be in the range 2-384 kb, and must be a
  224.         multiple of 2.
  225.  
  226. The reason for the "multiple of 2 (kb)" requirement is that EXTENDER
  227. tries to allocate memory in 2k increments, corresponding to the IBM
  228. spec that Bios ROM's are sized in multiples of 2kb.  However, this is
  229. somewhat complicated by the larger 16k resolution of the Chips and
  230. Technology memory controllers.  Without going into a lengthy
  231. technical explanation, let's just say that you'll probably notice
  232. that HIGHMEM may not report exactly what you asked for with the
  233. options; rather, EXTENDER will structure high memory in a manner that
  234. satisfies your intent but which is consistent with physical
  235. constraints.  Sometimes you'll get less memory than you asked for,
  236. and sometimes you may even get a little more.
  237.  
  238. Once you are convinced that EXTENDER is working satisfactorily, you
  239. may copy it to your hard disk and modify the CONFIG.SYS and
  240. AUTOEXEC.BAT files there accordingly.
  241.  
  242.  
  243. 4. Using the +F000:32 option with AMI Bios chips
  244. ------------------------------------------------
  245.  
  246. The 64k region starting at paragraph address F000 is the Bios ROM.
  247. The default operation of EXTENDER is to copy this ROM to Shadow RAM
  248. (RAM at the same location) for faster execution of the ROM Bios
  249. routines.  As a consequence, this RAM is not available to DOS as high
  250. memory.
  251.  
  252. Many of the popular 386 clones use a Bios ROM developed by AMI.  The
  253. more recent versions of these ROMs devote the first 32k to
  254. initialization code that is only used during the boot sequence, and
  255. use the second 32k for that portion that must remain available at all
  256. times.
  257.  
  258. By the time your PC gets to the point in its boot sequence where it
  259. is setting up the device drivers (e.g., when it is installing
  260. EXTENDER.SYS), the Bios initialization code is no longer needed.  If
  261. you have one of these AMI Bios chips, you can capture another 32k of
  262. high memory by using a +F000:32 option (see section 4, "Command Line
  263. Options for EXTENDER.SYS").
  264.  
  265. Of course, whenever you press Ctrl-Alt-Del to do a warm boot, the ROM
  266. Bios initialization code needs to be executed again!  And that could
  267. be a problem since you've effectively disabled it with the +F000:32
  268. option!  Fortunately, EXTENDER.SYS intercepts all keyboard input and
  269. keeps an eye out for Ctrl-Alt-Del.  When it sees this warm boot
  270. request, it first re-enables the entire 64k Bios ROM so that the
  271. initialization code is reactivated before the processor tries to
  272. execute it.
  273.  
  274.  
  275. 5. Using HIGHDISK.SYS
  276. ---------------------
  277.  
  278. HIGHDISK.SYS is a device driver that uses bank-switching to gain
  279. access to the high memory that lies in the same address space as the
  280. Bios ROM and any I/O adapters you have installed.  This otherwise
  281. unusable space can then be used to hold data.  The device driver
  282. itself may also be loaded into high memory by using HIGHDRVR.SYS to
  283. load HIGHDISK.SYS.  I.e., a typical command in CONFIG.SYS to do this
  284. would be:
  285.  
  286.     DEVICE=HIGHDRVR.SYS HIGHDISK.SYS
  287.  
  288. This creates a default 64k RAM disk with 64 directory entries and
  289. sectors of 128 bytes each.  (This requires at least 64k of unused and
  290. contiguous Bank-Switch memory.)
  291.  
  292. A command line option may be used to change the size of the RAM disk
  293. as in:
  294.  
  295.     DEVICE=HIGHDRVR.SYS HIGHDISK.SYS 127
  296.  
  297. This creates a 127k byte RAM disk.  Such a RAM disk will be allocated
  298. to the EGA/VGA display buffer space between A0000 and BFFFF.  (You
  299. can't get all 128k of that space because there are two memory control
  300. blocks of 16 bytes each in the same area.  You may ask for more, but
  301. if you do, the RAM disk will use some or all of the C0000-C7FFF space
  302. occupied by the EGA/VGA ROM, which will necessarily disable its
  303. corresponding Shadow RAM.)
  304.  
  305. Other command line options may be used to change the number of bytes
  306. per sector and directory entries, as in:
  307.  
  308.     DEVICE=HIGHDRVR.SYS HIGHDISK.SYS 127 256 32
  309.  
  310. This creates a 127k RAM disk with 256 bytes per sector and 32 root
  311. directory entries.
  312.  
  313.  
  314. 6. Video Display RAM above 640k
  315. -------------------------------
  316.  
  317. In general, the region A0000-BFFFF is the video display buffer area.
  318. Various display adapters (MDA, Hercules, CGA, EGA, and VGA) typically
  319. use only a subset of this space.  EXTENDER automatically senses what
  320. kind of video display adapter is installed and reserves that portion
  321. of this address space that might POTENTIALLY be used by the adapter.
  322. You can determine where these areas are with the HIGHMEM command or
  323. with the "?" option on the command line of EXTENDER.SYS.  However,
  324. you may choose to override EXTENDER's rather conservative defaults
  325. with the "+" (or "-") command line option.
  326.  
  327. When EXTENDER detects an EGA or VGA adapter, it automatically
  328. reserves the entire 128k display buffer between A0000-BFFFF.
  329. Theoretically, neither the EGA or VGA should use the 32k monochrome
  330. region (B0000-B7FFF), thus you should be able to recover this memory
  331. with a +B000:32 option.  And if you don't intend to use graphics, you
  332. should be able to recover the 64k graphics region (A0000-AFFFF) with
  333. the +A000:64 option.  Note, however, that the ROM Bios of a few EGA
  334. or VGA adapters will write into one or more of these areas even if
  335. they aren't in monochrome or graphics mode.  So use these options
  336. with caution!
  337.  
  338. If a Hercules adapter is found, EXTENDER reserves the entire 64k
  339. range B0000-BFFFF in case Hercules graphics modes are used.
  340. Otherwise, you may be able to recover quite a bit of memory with an
  341. optoin like +B100:60.
  342.  
  343. Normally, an MDA adapter should use only the 4k range B0000-B0FFF,
  344. and clearing the screen with a DOS "CLS" command should erase the
  345. screen by writing (only) in this region.  However, the standard ROM
  346. Bios on some clones assume that the MDA display buffer fills a larger
  347. region between B0000-B2FFF or B0000-B3FFF.  Similarly, a CGA adapter
  348. should use only the 16k range B8000-BBFFF; however some software will
  349. write to the second 16k between BC000-BFFFF.
  350.  
  351. Therefore, for MDA and CGA adapters, if any Display Buffer RAM is
  352. found at B0000, EXTENDER assumes that the entire 32k range
  353. B0000-B7FFF is used.  Similarly, if any Display Buffer RAM is found
  354. at B8000, EXTENDER assumes that the entire 32k range B8000-BFFFF is
  355. used.  You may be able to recover some additional memory in one of
  356. these two ranges with an appropriate "+" command line option.
  357.  
  358.  
  359. 7. Video Adapter Bios ROMs
  360. --------------------------
  361.  
  362. MDA and CGA use the standard ROM Bios; they have no ROM of their own.
  363. Hercules, EGA, and VGA adapters, however, incorporate their own ROM
  364. Bios chip right on the adapter card.  EXTENDER successfully
  365. recognizes these ROMs, but has to treat VGA in a special manner:
  366.  
  367. The IBM VGA adapter has a 24k ROM installed at C0000-C5FFF, which
  368. means that the 8k at C6000-C7FFF should be usable.  Although almost
  369. all VGA clones have a ROM signature that indicates 24k, many of them
  370. use the C6000-C7FFF space for ROM Bios or RAM extensions that provide
  371. their "Super VGA" features.  In particular, the Video7 and Paradise
  372. VGA's incorporate their own RAM from C6000-C7FFF.  For this reason,
  373. when EXTENDER finds anybody's VGA adapter, it automatically assumes
  374. that there is a 32k ROM at C0000-C7FFF.
  375.  
  376.  
  377. 8. Installing FASTOPEN and MODE into High Memory
  378. ------------------------------------------------
  379.  
  380. The FASTOPEN and MODE programs that comes with DOS are TSR's and as
  381. such may be loaded into high memory.  Once installed, each requires
  382. very little memory, something on the order of 9k or less.  However,
  383. neither will install unless a LOT of memory is available, like around
  384. 50-90k (depending on command line options)!  The worst part is that
  385. if FASTOPEN fails to install itself successfully, it doesn't issue
  386. any error message - it simply doesn't display the normal "FASTOPEN
  387. installed" sign-on message.  Moral: Let FASTOPEN and MODE be the
  388. first TSR's that are installed into High Memory in your AUTOEXEC.BAT
  389. file so that they get access to the maximum amount of memory.
  390.  
  391. The second hassle with these two TSR's is that they cannot be removed
  392. by using HIGHMARK and HIGHUNDO.  Evidently they modify memory other
  393. than that tracked by these EXTENDER utilities: the interrupt vector
  394. table and that memory allocated to them.
  395.  
  396.  
  397. 9. Using EXTENDER with Expanded Memory
  398. --------------------------------------
  399.  
  400. Expanded memory always has an associated device driver.  If that
  401. driver is loaded before EXTENDER.SYS in the CONFIG.SYS file, EXTENDER
  402. will recognize the 64k EMM Page Frame of the expanded memory and do
  403. the right thing: It will disable the motherboard RAM that falls in
  404. the same address space so that it doesn't interfere with the Page
  405. Frame.
  406.  
  407. This works fine, of course, but loading the EMM driver first
  408. precludes the possibility of loading it into High Memory.  To get the
  409. EMM driver in to High Memory means that it must be loaded after
  410. EXTENDER.SYS, but you must be careful!
  411.  
  412. If a REAL expanded memory board is installed then you won't have any
  413. problems.  For example, if the EMM driver is loaded first (as
  414. described above), EXTENDER will report the 64k EMM Page Frame as "EMM
  415. Page Frame".  Otherwise, EXTENDER will report it simply as "Adapter
  416. RAM".  But in either case, the memory space will be not be used by
  417. EXTENDER.
  418.  
  419. On the other hand, if you don't have an expanded memory board, but
  420. have used a device driver (like EMM386.SYS) that emulates expanded
  421. memory using extended memory, then EXTENDER.SYS will not know about
  422. the page frame unless the emulator is loaded first.  If you would
  423. rather load the emulator into High Memory (which requires loading
  424. EXTENDER.SYS first), then you must use a "-" command line option of
  425. EXTENDER.SYS to reserve a 64k region where the Page Frame will be
  426. located.
  427.  
  428.  
  429. 10. Using HIGHMARK and HIGHUNDO
  430. -------------------------------
  431.  
  432. Sometimes it can be useful to remove one or more TSR's from memory,
  433. either because you no longer want to use the features that they
  434. provide or perhaps in order to make room for another set of TSR's.
  435.  
  436. In order to be able to remove a group of TSR's from high memory, they
  437. must be be marked.  To mark them, run HIGHMARK once before you use
  438. HIGHTSR to load the TSR's.  Then later, simply run HIGHUNDO and the
  439. mark and all of its assoicated TSR's will be removed.
  440.  
  441. HIGHMARK may be executed more than once to establish levels of TSR's
  442. to be removed.  Each execution of HIGHMARK places another mark in
  443. memory with a unique mark number.  Every TSR loaded by HIGHTSR is
  444. automatically associated with the most recent execution of HIGHMARK.
  445. You can use HIGHMEM to see the marks, their mark number, and the set
  446. of TSR's associated with the mark.  Every execution of HIGHUNDO will
  447. then remove the set of TSR's associated with the most recent HIGHMARK.
  448.  
  449. --------------------- End of file EXTENDER.DOC ---------------------
  450.