home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / for-dos / tlb_v240.arj / ADVANCED.DOC next >
Text File  |  1994-04-09  |  57KB  |  1,743 lines

  1.  
  2.  
  3.         
  4.  
  5.  
  6.                                ADVANCED UTILITIES
  7.  
  8.                                        for
  9.  
  10.                         THE LAST BYTE MEMORY MANAGER (tm)
  11.  
  12.                        An Upper Memory Manager for MS-DOS
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                                   Version 2.40
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                               Copyright (C) 1990-94
  31.                                All Rights Reserved
  32.  
  33.  
  34.                                        by
  35.  
  36.  
  37.                               KEY SOFTWARE PRODUCTS
  38.  
  39.                                 440 Ninth Avenue
  40.                         Menlo Park, California 94025-1802
  41.                                   415-364-9847
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.         The Last Byte Memory Manager is a trademark of Key Software Products.
  52.          MS-DOS and Windows 3.0 are trademarks of Microsoft Corporation.
  53.              DR-DOS is a trademark of Digital Research Incorporated.
  54.                       4DOS is a trademark of J.P. Software.
  55.                      Hyperdisk is a trademark of HyperWare.
  56.             Other company trademarks are used with the company name.
  57.  
  58.  
  59.  
  60.         
  61.  
  62.  
  63.                                 TABLE OF CONTENTS
  64.  
  65.  
  66.  
  67.         CHAPTER 1 - HIGHAPND.EXE and HIGHAPND.SYS      ............    1
  68.            1.1  The APPEND=<size> Option of LASTBYTE.SYS    .......    1
  69.            1.2  Using HIGHAPND.SYS       ..........................    1
  70.            1.3  Using HIGHAPND.EXE       ..........................    2
  71.               1.3.1  The HIGHAPND Report      .....................    2
  72.               1.3.2  Using HIGHAPND in .BAT Files    ..............    2
  73.            1.4  Effect on EGA/VGA graphics     ....................    2
  74.            1.5  The /HIRESGFX Option      .........................    3
  75.               1.5.1  /HIRESGFX=TRAPPED        .....................    3
  76.               1.5.2  /HIRESGFX=SENSED        ......................    3
  77.               1.5.3  /HIRESGFX=ALLOWED        .....................    3
  78.  
  79.         CHAPTER 2 - HIGHBFRS.EXE (DOS 3 only)     .................    4
  80.            2.1  The BUFFERS=<number> Option      ..................    4
  81.            2.2  The /NORESTRICT Option      .......................    5
  82.            2.3  The /FLOPPY Option      ...........................    5
  83.            2.4  The HIGHBFRS Report      ..........................    5
  84.  
  85.         CHAPTER 3 - HIGHDISK.SYS        ...........................    7
  86.            3.1  Size and Directory Options     ....................    7
  87.            3.2  The /NOSPLIT Option      ..........................    7
  88.            3.3  Preloading Files into the Ram Disk   ..............    8
  89.  
  90.         CHAPTER 4 - HIGHEMS3.SYS and HIGHEMS4.SYS      ............    9
  91.            4.1  Controlling Memory Usage      .....................    9
  92.            4.2  The /NOSPLIT Option      ..........................    9
  93.            4.3  The /RESTRICT Option      .........................   10
  94.  
  95.         CHAPTER 5 - HIGHENV.EXE        ............................   11
  96.            5.1  The HIGHENV Report      ...........................   11
  97.            5.2  The /PATCH Option      ............................   11
  98.            5.3  Setting the Environment Size     ..................   12
  99.  
  100.         CHAPTER 6 - HIGHFILE.EXE        ...........................   14
  101.  
  102.         CHAPTER 7 - HIGHHOLE.EXE        ...........................   15
  103.            7.1  The TRACE=<bios> Option of LASTBYTE.SYS    ........   15
  104.            7.2  The HOLE=<base>:<size> Option of LASTBYTE.SYS    ..   16
  105.            7.3  Specifying Holes in Read-Only Shadow Ram   ........   17
  106.  
  107.         CHAPTER 8 - HIGHKEY.EXE        ............................   18
  108.            8.1  The /BUFSIZE=n Option      ........................   18
  109.               8.1.1  The HMA subparameter      ....................   18
  110.            8.2  The /INSERT and /OVERSTRIKE Options    ............   18
  111.            8.3  The /HISTORY Option      ..........................   18
  112.            8.4  Preloading the History Buffer     .................   18
  113.            8.5  The /NOSPLIT Option      ..........................   19
  114.            8.6  Editing Commands       ............................   19
  115.  
  116.         CHAPTER 9 - HIGHMARK.EXE and HIGHUNDO.EXE      ............   22
  117.  
  118.  
  119.  
  120.         
  121.  
  122.  
  123.                                 TABLE OF CONTENTS
  124.  
  125.  
  126.  
  127.         CHAPTER 10 - HIGHRSVD.EXE and HIGHRSVD.SYS      ...........   23
  128.            10.1  Reserving High-DOS Memory      ...................   23
  129.            10.2  The HIGH Suboption      ..........................   23
  130.  
  131.         CHAPTER 11 - HIGHSPLR.EXE        ..........................   24
  132.            11.1  Specifying the Buffer Size     ...................   24
  133.               11.1.1  The HMA subparameter      ...................   24
  134.            11.2  Specifying the Logical Device     ................   25
  135.            11.3  Specifying the Hardware Interrupt     ............   25
  136.            11.4  Specifying Flow Control      .....................   25
  137.            11.5  The MONITOR Option      ..........................   25
  138.            11.6  The RESET Option      ............................   26
  139.            11.7  The NOTEST Option      ...........................   26
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.         
  181.  
  182.  
  183.  
  184.         Apr 09, 1994           ADVANCED UTILITIES                       1
  185.  
  186.  
  187.                  CHAPTER 1 - HIGHAPND.EXE and HIGHAPND.SYS      
  188.  
  189.  
  190.         HIGHAPND  enables  or disables an appendage of up to 96k onto the
  191.         end  of  conventional  memory.   When  enabled, this can increase
  192.         conventional memory from 640k to as much as 736k.  
  193.  
  194.         HIGHAPND  requires  either  a memory controller chip or an EGA or
  195.         VGA  display  adapter.   If the memory controller chip can enable
  196.         shadow  ram  memory  at A000, then shadow ram memory will be used
  197.         to  extend  conventional memory; otherwise, HIGHAPND will convert
  198.         the  graphics  display  buffer  of the EGA or VGA display adapter
  199.         into an extension of conventional memory.  
  200.  
  201.  
  202.         1.1 The APPEND=<size> Option of LASTBYTE.SYS     
  203.  
  204.         To  use  HIGHAPND,  you  must  first  allocate  the  memory to be
  205.         appended  using  the APPEND option of LASTBYTE.SYS.  For example,
  206.         to  allow  HIGHAPND  to  append  64k  to  the  end of the 640k of
  207.         Conventional  memory,  you  must  add  the  following  option  to
  208.         LASTBYTE.SYS: 
  209.  
  210.                 DEVICE=C:\TLBMM\LASTBYTE.SYS ... APPEND=64 ...  
  211.  
  212.         Monochrome  (MDA),  Hercules,  and CGA display adapters don't use
  213.         the  64k  region  starting at A000, and so this address space can
  214.         be  used  to  extend  conventional  memory  from  640k  to  704k,
  215.         provided  there  is  shadow  ram  available  in  this  area.  CGA
  216.         display  adapters don't use the next 32k either, and so CGA users
  217.         may be able to extend conventional memory all the way to 736k.  
  218.  
  219.         EGA  and  VGA  display adapters have a 64k hi-resolution graphics
  220.         display  buffer  that  is  located  at A000.  This buffer is only
  221.         needed  when you are using only hi-resolution graphics.  When the
  222.         display  is  in either text or low-resolution CGA graphics modes,
  223.         this  memory  is  not  used,  and may be replaced (switched) with
  224.         shadow  ram memory if available, or the display buffer itself may
  225.         be  used  as  additional conventional memory.  Since most EGA and
  226.         VGA  adapters  usually  don't  use  the  32k  region at B000, you
  227.         should even be able to extend conventional memory up to 736k.  
  228.  
  229.  
  230.         1.2 Using HIGHAPND.SYS        
  231.  
  232.         To  enable  the appendage during CONFIG.SYS processing, place the
  233.         following command in your CONFIG.SYS file: 
  234.  
  235.                 DEVICE=C:\TLBMM\HIGHAPND.SYS ON 
  236.  
  237.         To   subsequently   disable   the   appendage  during  CONFIG.SYS
  238.  
  239.  
  240.  
  241.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  242.  
  243.  
  244.         Apr 09, 1994           ADVANCED UTILITIES                       2
  245.  
  246.  
  247.         processing, use: 
  248.  
  249.                 DEVICE=C:\TLBMM\HIGHAPND.SYS OFF 
  250.  
  251.  
  252.         1.3 Using HIGHAPND.EXE        
  253.  
  254.         To  enable  the  appendage  during AUTOEXEC.BAT processing (or at
  255.         any time after the computer is booted), use the command: 
  256.  
  257.                 C:\TLBMM\HIGHAPND ON 
  258.  
  259.         and to subsequently disable the appendage, use: 
  260.  
  261.                 C:\TLBMM\HIGHAPND OFF 
  262.  
  263.  
  264.         1.3.1 The HIGHAPND Report       
  265.  
  266.         HIGHAPND  can  be  used  without  any  command  line  options  to
  267.         determine  the  current size of conventional memory and the state
  268.         of EGA/VGA hi-resolution graphics: 
  269.  
  270.                 C:\TLBMM\HIGHAPND 
  271.  
  272.  
  273.         1.3.2 Using HIGHAPND in .BAT Files     
  274.  
  275.         You  can  put  these  commands  into  a  batch  file  to simplify
  276.         switching  back  and  forth.   For example, if you want the extra
  277.         memory  all  the  time  except  when you need hi-res graphics for
  278.         Microsoft Windows, create a batch file like the following: 
  279.  
  280.                 @ECHO OFF 
  281.                 C:\TLBMM\HIGHAPND OFF >NUL 
  282.                 WIN %1 %2 
  283.                 C:\TLBMM\HIGHAPND ON >NUL 
  284.  
  285.  
  286.         1.4 Effect on EGA/VGA graphics      
  287.  
  288.         HIGHAPND  will automatically disable any EGA or VGA hi-resolution
  289.         graphics   capability   whenever  conventional  memory  has  been
  290.         extended  beyond  640k.   This  makes  software  that attempts to
  291.         sense  what  type  of display adapter is installed think that you
  292.         have  only  a  CGA  adapter.   Later,  when you need the graphics
  293.         capability,   you   can   disable   the   memory   extension  and
  294.         hi-resolution graphics will be automatically re-enabled.  
  295.  
  296.         If  you  have  hi-res  graphics  disabled  and run a program that
  297.         tries  to use hi-res graphics without first sensing for an EGA or
  298.  
  299.  
  300.  
  301.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  302.  
  303.  
  304.         Apr 09, 1994           ADVANCED UTILITIES                       3
  305.  
  306.  
  307.         VGA  adapter,  LASTBYTE.SYS  will  notice  the conflict, issue an
  308.         error   message,   and  terminate  the  program.   Some  programs
  309.         redirect  a  few  interrupts during their initialization and then
  310.         restore  them  before termination.  LASTBYTE.SYS's termination of
  311.         graphics  programs  doesn't know how to restore these interrupts,
  312.         so  in  some cases you may have to reboot the computer.  In other
  313.         words,  if  you  experience this kind of program termination with
  314.         an  application  program, it's best to reboot and prepare a batch
  315.         file (as shown above) to run the program.  
  316.  
  317.  
  318.         1.5 The /HIRESGFX Option       
  319.  
  320.         HIGHAPND  provides  more  detailed  control  over this protection
  321.         through  the  /HIRESGFX  option  as described below.  This may be
  322.         helpful,  for  example,  with software that uses the 43 (50) line
  323.         text  mode of the EGA (VGA) adapter.  (The setting of this option
  324.         is only meaningful when HIGHAPND ON is in effect.) 
  325.  
  326.  
  327.         1.5.1 /HIRESGFX=TRAPPED         
  328.  
  329.         Disables  all EGA/VGA high-resolution graphics functions provided
  330.         by  video  BIOS  interrupt  10h  and  makes  programs think a CGA
  331.         adapter is installed.  (This is the default.) 
  332.  
  333.  
  334.         1.5.2 /HIRESGFX=SENSED         
  335.  
  336.         Disables  all EGA/VGA high-resolution graphics functions provided
  337.         by  video  BIOS  interrupt  10h,  but does let programs sense the
  338.         presence of an EGA or VGA adapter.  
  339.  
  340.  
  341.         1.5.3 /HIRESGFX=ALLOWED         
  342.  
  343.         Allows  all video BIOS interrupt 10h function calls, even if they
  344.         might use the 64k EGA/VGA graphics display buffer at A000-AFFF.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  362.  
  363.  
  364.         Apr 09, 1994           ADVANCED UTILITIES                       4
  365.  
  366.  
  367.                    CHAPTER 2 - HIGHBFRS.EXE (DOS 3 only)     
  368.  
  369.  
  370.         HIGHBFRS  can  be  used to place DOS 3.x buffers in upper memory.
  371.         Do  NOT  attempt  to use HIGHBFRS with any other version of DOS -
  372.         it will NOT work.  
  373.  
  374.         Microsoft  recommends  setting  the  BUFFERS option in CONFIG.SYS
  375.         according  to  the  type  of  application  most  frequently used.
  376.         Implicit  within  this  recommendation is the assumption that you
  377.         won't  change  the  value  very  often  since it requires editing
  378.         CONFIG.SYS and rebooting.  
  379.  
  380.         In  general, more buffers help when running programs that perform
  381.         random  access on a relatively small number of disk records (such
  382.         as  the  index  for a database program), or if your disk has many
  383.         subdirectories organized on several levels.  
  384.  
  385.         Since  HIGHBFRS  allows you to increase or decrease the number of
  386.         buffers  dynamically,  you  could create some batch files to tune
  387.         the  number  of  buffers to fit the application you're running at
  388.         the moment.  
  389.  
  390.                 ╔═════════════════════════════════════════════════╗
  391.                 ║ WARNING:  Placing DOS buffers in high memory    ║
  392.                 ║ can result in the loss of data.  I.e., it can   ║
  393.                 ║ damage the directory and file allocation tables ║
  394.                 ║ of your disk.  Read everything in this section  ║
  395.                 ║ before considering the use of this utility.     ║
  396.                 ╚═════════════════════════════════════════════════╝
  397.  
  398.         You  MUST  be  careful  that  moving  the  DOS buffers into upper
  399.         memory  does  not cause DMA transfers into a 128k region of upper
  400.         memory  that  contains  a  16-bit adapter, or else you may damage
  401.         the  data  on  your  disk.   See  the  discussion of the RESTRICT
  402.         option  of  LASTBYTE.SYS, and the /NORESTRICT and /FLOPPY options
  403.         discussed below.  
  404.  
  405.  
  406.         2.1 The BUFFERS=<number> Option       
  407.  
  408.         HIGHBFRS  defaults to the maximum number of buffers that will fit
  409.         in  the  free  High-DOS memory up to the DOS limit of 99 buffers.
  410.         However,  you  will  probably want to reserve some of this memory
  411.         for  other  uses.   This option changes the number of DOS buffers
  412.         to  the  value  specified;  <number>  is a number from 1-99.  For
  413.         example, the command: 
  414.  
  415.                 C:\TLBMM\HIGHBFRS BUFFERS=20 
  416.  
  417.         will  establish  twenty  buffers  (about 10k) in High-DOS memory.
  418.  
  419.  
  420.  
  421.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  422.  
  423.  
  424.         Apr 09, 1994           ADVANCED UTILITIES                       5
  425.  
  426.  
  427.         You  may  run  the HIGHBFRS command more than once to dynamically
  428.         change  the  number  of  buffers  whenever you like.  You may use
  429.         BUFFERS=MAXIMUM  to  establish as many buffers (up to 99) as will
  430.         fit in upper memory.  
  431.  
  432.  
  433.         2.2 The /NORESTRICT Option       
  434.  
  435.         Each  time  you  boot, LASTBYTE.SYS checks each of the three 128k
  436.         regions  of  upper memory for the presence of 16-bit adapters and
  437.         records  this information for later use by HIGHBFRS.  By default,
  438.         HIGHBFRS  will  only  place  buffers  in those 128k regions where
  439.         there  are  no 16-bit adapters.  You may override this default by
  440.         using  the  /NORESTRICT  option  on the HIGHBFRS command line, as
  441.         in: 
  442.  
  443.                 C:\TLBMM\HIGHBFRS /NORESTRICT 
  444.  
  445.                 ╔═════════════════════════════════════════════════╗
  446.                 ║ Use of the /NORESTRICT option is not recommended║ 
  447.                 ╚═════════════════════════════════════════════════╝
  448.  
  449.         If  none  of  the  three  128k  segments  is  considered  "safe",
  450.         HIGHBFRS  will default to the interception of floppy transfers as
  451.         described in the next section.  
  452.  
  453.  
  454.         2.3 The /FLOPPY Option       
  455.  
  456.         If  all  three 128k upper memory regions contain 16-bit adapters,
  457.         then  a  second  (different)  solution  may be both necessary and
  458.         sufficient.   This  option  causes  transfers between floppy disk
  459.         drives  and upper memory to be redirected through an intermediate
  460.         sector  buffer  in  conventional (low) memory.  The corresponding
  461.         command line option would be: 
  462.  
  463.                 C:\TLBMM\HIGHBFRS /FLOPPY 
  464.  
  465.         Almost  all  hard  disk  controllers use CPU instructions (rather
  466.         than DMA) to transfer data and thus do not incur this problem.  
  467.  
  468.  
  469.         2.4 The HIGHBFRS Report       
  470.  
  471.         When  HIGHBFRS  is  invoked  with  no  command line arguments, it
  472.         simply  reports  the  number  of DOS buffers presently located in
  473.         upper  memory  and  whether  or not transfers between floppy disk
  474.         drives  and upper memory are redirected.  You may use the HIGHMEM
  475.         program  to determine where the buffers have been placed in upper
  476.         memory.  
  477.  
  478.  
  479.  
  480.  
  481.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  482.  
  483.  
  484.         Apr 09, 1994           ADVANCED UTILITIES                       6
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  542.  
  543.  
  544.         Apr 09, 1994           ADVANCED UTILITIES                       7
  545.  
  546.  
  547.                         CHAPTER 3 - HIGHDISK.SYS        
  548.  
  549.  
  550.         HIGHDISK.SYS  is  a  device  driver that implements a ram disk in
  551.         upper  memory.   Bank-Switch  Memory  is  allocated first, and if
  552.         that  isn't  enough, then High-DOS Memory is allocated to satisfy
  553.         the  total  request.   HIGHDISK  automatically  loads itself into
  554.         upper  memory;  do  not  use  either  HIGHDRVR  or the DEVICEHIGH
  555.         command; simply use a DEVICE command, as in: 
  556.  
  557.                 DEVICE=C:\TLBMM\HIGHDISK.SYS 
  558.  
  559.         This  example  creates  a  ram disk that uses all available upper
  560.         memory,  with  32  directory  entries  and  sectors  of 128 bytes
  561.         each.  
  562.  
  563.  
  564.         3.1 Size and Directory Options      
  565.  
  566.         One  to three numeric command line options may be used to control
  567.         the  total  size,  sector  size, and the number of root directory
  568.         entries using the following syntax: 
  569.  
  570.         DEVICE=C:\TLBMM\HIGHDISK.SYS [KBytes] [BytesPerSector] [RootDirEntries]
  571.  
  572.         For example, the command: 
  573.  
  574.                 DEVICE=C:\TLBMM\HIGHDISK.SYS 100 256 64 
  575.  
  576.         creates  a  100k  RAM  disk with 256 bytes per sector and 64 root
  577.         directory  entries.   Other  options  (described  below)  can  be
  578.         placed  before,  after, or in between these numeric parameters on
  579.         the command line.  
  580.  
  581.  
  582.                 ╔═════════════════════════════════════════════════╗
  583.                 ║ NOTE: If you have used the command DOS=UMB or   ║ 
  584.                 ║ DOS=HIGH,UMB with HIGHUMM.SYS to let DOS 5.0    ║
  585.                 ║ manage the Upper Memory Blocks, you must limit  ║
  586.                 ║ how much upper memory HIGHUMM can use so that   ║
  587.                 ║ some will be available for HIGHDISK.            ║
  588.                 ╚═════════════════════════════════════════════════╝
  589.  
  590.  
  591.         3.2 The /NOSPLIT Option       
  592.  
  593.         HIGHDISK  requires  that  LASTBYTE.SYS  be  installed  first.  It
  594.         automatically  loads  itself  into  upper memory, putting much of
  595.         itself   into   read-only  shadow  ram,  unused  HMA  memory,  or
  596.         bank-switch  memory  if  available.  As shown below, however, the
  597.         /NOSPLIT  option  can  be  used  to  keep  it  in a single memory
  598.  
  599.  
  600.  
  601.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  602.  
  603.  
  604.         Apr 09, 1994           ADVANCED UTILITIES                       8
  605.  
  606.  
  607.         block.  
  608.  
  609.                 DEVICE=C:\TLBMM\HIGHDISK /NOSPLIT 
  610.  
  611.  
  612.         3.3 Preloading Files into the Ram Disk    
  613.  
  614.         HIGHDISK  can  preload  a  set  of files into the ram disk during
  615.         CONFIG.SYS  processing.   Simply add one or more filespecs on the
  616.         command line, each preceeded by a dollar sign, as in: 
  617.  
  618.          DEVICE=C:\TLBMM\HIGHDISK.SYS $PRELOAD.DAT $C:\TLBMM\HIGHTSR.EXE
  619.  
  620.         An    "indirect"    file    (e.g.,   DEVICE=C:\TLBMM\HIGHDISK.SYS
  621.         @HIGHDISK.OPT)  containing  one  or  more options per line can be
  622.         used instead if the list is too long.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  662.  
  663.  
  664.         Apr 09, 1994           ADVANCED UTILITIES                       9
  665.  
  666.  
  667.                  CHAPTER 4 - HIGHEMS3.SYS and HIGHEMS4.SYS      
  668.  
  669.  
  670.         Two  expanded  memory  emulators  are provided with The Last Byte
  671.         Memory  Manager.   Both  use  upper  memory  as  expanded memory.
  672.         HIGHEMS3.SYS  is  compliant  with  the  older  LIM  3.2 spec, and
  673.         HIGHEMS4.SYS  with the newer LIM 4.0 spec.  Use only one of these
  674.         device  drivers,  and  load  it  after  LASTBYTE.SYS.   Both  are
  675.         included  since  the  HIGHEMS3.SYS  requires much less memory for
  676.         the   device   driver   itself   than   HIGHEMS4.SYS.    In  many
  677.         applications, you may find that 3.2 is all you need.  
  678.  
  679.         These  device  drivers  EMULATE expanded memory!  That means that
  680.         they  use  software  to  copy  data  back  and  forth between the
  681.         logical  EMS  memory (pages) and the page frame.  Obviously, this
  682.         is  much  slower  than  the  performance  you  would realize with
  683.         hardware  support,  or even with EMM386.  Therefore, these device
  684.         drivers  are  provided  as  a  last  resort for those who have no
  685.         other  way of providing EMS memory to their applications, such as
  686.         users with only 1 meg of memory.  
  687.  
  688.         Do  not install HIGHEMS3 or HIGHEMS4 using either HIGHDRVR or the
  689.         DEVICEHIGH command - simply use a DEVICE command as in: 
  690.  
  691.                 DEVICE=C:\TLBMM\HIGHEMS3.SYS 
  692.  
  693.  
  694.         4.1 Controlling Memory Usage       
  695.  
  696.         By  default,  both HIGHEMS3.SYS and HIGHEMS4.SYS will allocate as
  697.         many  16k  logical  pages  as  possible,  first  from Bank-Switch
  698.         memory  and  then  from  High-DOS  memory.   You  can specify the
  699.         number  of  logical  pages  to allocate as a numeric parameter on
  700.         the command line, as in: 
  701.  
  702.                 DEVICE=C:\TLBMM\HIGHEMS3.SYS 4 
  703.  
  704.                 ╔═════════════════════════════════════════════════╗
  705.                 ║ NOTE: If you have used the command DOS=UMB or   ║
  706.                 ║ DOS=HIGH,UMB with HIGHUMM.SYS to let DOS 5.0    ║
  707.                 ║ manage the Upper Memory Blocks, you must limit  ║
  708.                 ║ how much upper memory HIGHUMM can use so that   ║
  709.                 ║ some will be available for HIGHEMS3/HIGHEMS4.   ║
  710.                 ╚═════════════════════════════════════════════════╝
  711.  
  712.  
  713.         4.2 The /NOSPLIT Option       
  714.  
  715.         HIGHEMS3.SYS  and HIGHEMS4.SYS automatically load themselves into
  716.         upper  memory,  putting  as  much  of  their  executable  code as
  717.         possible  into  the  HMA or bank-switch memory if available.  You
  718.  
  719.  
  720.  
  721.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  722.  
  723.  
  724.         Apr 09, 1994           ADVANCED UTILITIES                      10
  725.  
  726.  
  727.         can  prevent  it  from  putting  part of their code in bankswitch
  728.         memory by using the /NOSPLIT option, as in: 
  729.  
  730.                 DEVICE=C:\TLBMM\HIGHEMS3.SYS /NOSPLIT 
  731.  
  732.  
  733.         4.3 The /RESTRICT Option       
  734.  
  735.         This  option  restricts  the placement of the EMS page frame to a
  736.         128k  region  of  upper  memory  that  does  not contain a 16-bit
  737.         adapter.   For  a  detailed  discussion  of why these regions may
  738.         need  to  be  restricted and how to control the restrictions, see
  739.         the  discussion  on  the  RESTRICT  option of LASTBYTE.SYS in the
  740.         file LASTBYTE.DOC.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  782.  
  783.  
  784.         Apr 09, 1994           ADVANCED UTILITIES                      11
  785.  
  786.  
  787.                          CHAPTER 5 - HIGHENV.EXE        
  788.  
  789.  
  790.         HIGHENV  is  a  utility  that moves the master environment of the
  791.         command  processor  (typically  COMMAND.COM)  out of conventional
  792.         memory  and  into High-DOS memory.  It can also be used to change
  793.         the size of the environment at any time.  
  794.  
  795.                 ╔═════════════════════════════════════════════════╗
  796.                 ║ WARNING: HIGHENV is incompatible with Novell.   ║ 
  797.                 ╚═════════════════════════════════════════════════╝
  798.  
  799.                 ╔═════════════════════════════════════════════════╗
  800.                 ║ NOTE: The /U option of 4DOS is an alternative   ║ 
  801.                 ║ method for placing the master environment in    ║ 
  802.                 ║ upper memory.  You don't need to use HIGHENV if ║ 
  803.                 ║ you are already using the /U option of 4DOS.    ║ 
  804.                 ╚═════════════════════════════════════════════════╝
  805.  
  806.  
  807.         5.1 The HIGHENV Report       
  808.  
  809.         If  used  without  a  command line option, HIGHENV simply reports
  810.         the  location,  capacity,  and  length of the master environment.
  811.         If  the  environment  has not been moved from low memory, it also
  812.         examines  and  reports  potential  references  to the environment
  813.         that  exist  within  the  command  processor.  If one or more are
  814.         located, the first line(s) of output from HIGHENV will be: 
  815.  
  816.               "Potential command processor patch at location XXXX."
  817.  
  818.         where  "XXXX"  will  vary  from one command processor to another.
  819.         HIGHENV  should  be used this way at least once to determine what
  820.         /PATCH options (described below) may be required.  
  821.  
  822.  
  823.         5.2 The /PATCH Option       
  824.  
  825.         To  move  the  master environment into upper memory, you must use
  826.         one  or  more  /PATCH options to specify locations in the command
  827.         processor  that  must be modified.  (If there are no locations in
  828.         the   command   processor   that   need   to   be  modified,  use
  829.         /PATCH=NONE.)   The  /PATCH  option  may  only be specified once,
  830.         when  the  environment  is  moved  from low to upper memory.  The
  831.         patch   locations   are   recorded   in   upper  memory  and  are
  832.         automatically  adjusted if the environment is repositioned within
  833.         upper  memory  as  the  result  of a subsequent use of HIGHENV to
  834.         resize the environment.  
  835.  
  836.         A  maximum  of four command processor locations to be patched may
  837.         be specified in either of two ways: 
  838.  
  839.  
  840.  
  841.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  842.  
  843.  
  844.         Apr 09, 1994           ADVANCED UTILITIES                      12
  845.  
  846.  
  847.  
  848.                 C:\TLBMM\HIGHENV 256 /PATCH=1057 /PATCH=1536 
  849.  
  850.                 -or- 
  851.  
  852.                 C:\TLBMM\HIGHENV 256 /PATCH=1057,1536 
  853.  
  854.         Each  of the patch numbers specify a location in the memory image
  855.         of  the  command  processor;  these locations contain the segment
  856.         address  of the master environment, and must be modified to point
  857.         to  the  new master environment in upper memory.  Possible values
  858.         to  be  used  are  restricted  to  those  locations reported when
  859.         HIGHENV  is  run  with  no  command  line  options and before the
  860.         environment has been moved into upper memory.  
  861.  
  862.         COMMAND.COM  usually  contains  only one such location that needs
  863.         to  be  patched;  4DOS  contains  none (use /PATCH=NONE).  (Note:
  864.         HIGHENV  always  patches  the  environment  address stored in the
  865.         program  segment  prefix  of  the  command processor - this patch
  866.         does not need to be specified.) 
  867.  
  868.  
  869.         5.3 Setting the Environment Size      
  870.  
  871.         The  size  option  is  simply  a  number that specifies the extra
  872.         space   in   bytes  to  be  allocated  to  accomodate  additional
  873.         environment  strings  besides  those already established.  If the
  874.         size  option  is  omitted, the size of the environment block (and
  875.         thus its capacity for growth) will not be changed.  
  876.  
  877.                 ╔═════════════════════════════════════════════════╗
  878.                 ║ WARNING: The SET command of COMMAND.COM norm-   ║ 
  879.                 ║ ally warns you if you run out of space in the   ║ 
  880.                 ║ master environment.  However, if you have used  ║ 
  881.                 ║ HIGHENV to move it into upper memory, this      ║ 
  882.                 ║ safeguard no longer exists - you'll just write  ║ 
  883.                 ║ over the next thing in upper memory!  Be sure   ║ 
  884.                 ║ to check the HIGHENV report to be sure that you ║ 
  885.                 ║ have enough extra space in the environment so   ║ 
  886.                 ║ that this won't occur.                          ║ 
  887.                 ╚═════════════════════════════════════════════════╝
  888.  
  889.         Once  moved into upper memory, the size of the environment may be
  890.         changed  by  using  HIGHENV  with  simply  a  size  option.   For
  891.         example,  to  shrink  the environment to only enough room for the
  892.         current environment strings, use: 
  893.  
  894.                 C:\TLBMM\HIGHENV 0 
  895.  
  896.         Or  to  change  the  growth  capacity  to  allow  for the current
  897.         environment strings plus 100 bytes more, use: 
  898.  
  899.  
  900.  
  901.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  902.  
  903.  
  904.         Apr 09, 1994           ADVANCED UTILITIES                      13
  905.  
  906.  
  907.  
  908.                 C:\TLBMM\HIGHENV 100 
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  962.  
  963.  
  964.         Apr 09, 1994           ADVANCED UTILITIES                      14
  965.  
  966.  
  967.                         CHAPTER 6 - HIGHFILE.EXE        
  968.  
  969.  
  970.         This  program  is  used  to  implement  most  of  the  CONFIG.SYS
  971.         "FILES=n"   directive   in   High-DOS   memory   rather  than  in
  972.         Conventional  memory.   The  amount  of  memory  required  by the
  973.         "FILES=n"  directive  is  approximately  'n' times 59 bytes.  Set
  974.         the  minimum  of  FILES=8  in the CONFIG.SYS file, and then place
  975.         the rest in High-DOS memory.  For example, the command: 
  976.  
  977.                 C:\TLBMM\HIGHFILE 42 
  978.  
  979.         will  add an additional FILES=42 (2500 bytes) in High-DOS memory,
  980.         for a total of FILES=50.  
  981.  
  982.                 ┌─────────────────────────────────────────────────┐
  983.                 │ NOTE: Windows 3.0 may not run in 386 Enhanced   │
  984.                 │ mode with FILES in upper memory.                │
  985.                 └─────────────────────────────────────────────────┘ 
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1022.  
  1023.  
  1024.         Apr 09, 1994           ADVANCED UTILITIES                      15
  1025.  
  1026.  
  1027.                         CHAPTER 7 - HIGHHOLE.EXE        
  1028.  
  1029.  
  1030.         HIGHHOLE  is  a utility program that finds unused space ("holes")
  1031.         in  ROMs.   A  "hole"  is  defined  as a sequence of at least 128
  1032.         bytes,  all  having  the  same  value, and usually corresponds to
  1033.         unused,  left-over  space  in  the  ROM.  If the ROM is shadowed,
  1034.         this  space can usually be converted into free High-DOS memory by
  1035.         using the HOLE option of LASTBYTE.SYS.  
  1036.  
  1037.         Another  part  of  the contents of a ROM that may be used are the
  1038.         character  generator  font  tables for unused display modes.  For
  1039.         example,  the  EGA and VGA adapter ROM bios contains a font table
  1040.         for  smaller than usual characters consisting of an 8x8 matrix of
  1041.         dots.  
  1042.  
  1043.         Holes  are  often  less  than  1k in size, but occassionally much
  1044.         larger.   Since  The  Last  Byte Memory Manager uses a "best fit"
  1045.         strategy  when  allocating  Hi-DOS memory, even the smaller holes
  1046.         can  become  useful  to  hold  the  master environment created by
  1047.         HIGHENV,   the  markers  of  HIGHMARK,  or  with  utilities  like
  1048.         HIGHDISK  and  HIGHSPLR  that  can  distribute their memory among
  1049.         several  small pieces.  In addition, The Last Byte Memory Manager
  1050.         will  use  the  smallest  holes for memory control blocks (MCB's)
  1051.         that must be allocated for Bank-Switch memory needs.  
  1052.  
  1053.  
  1054.         7.1 The TRACE=<bios> Option of LASTBYTE.SYS     
  1055.  
  1056.         Either  or  both  of  these options are intended to help identify
  1057.         unused  space  in  a  bios  ROM or space that is used only during
  1058.         cold-boot  initialization.   Most  such  regions may be converted
  1059.         into usuable upper memory with use of the HOLE option.   
  1060.  
  1061.                 ┌─────────────────────────────────────────────────┐
  1062.                 │ Tracing may not be possible on all machines     │
  1063.                 │ because it inherently interferes with the       │
  1064.                 │ timing of software that is controlling physical │
  1065.                 │ devices.  At best, your computer will slow down │
  1066.                 │ considerably; at worst, it may not function.    │
  1067.                 └─────────────────────────────────────────────────┘ 
  1068.  
  1069.         These  options should NOT be combined with any other command line
  1070.         options  other  than  the  NAME  and KEY options.  Once they have
  1071.         been  used  for  their  intended  purpose, they should be removed
  1072.         from your configuration.  
  1073.  
  1074.         Either  option  installs  a 1 kb stub in upper memory that traces
  1075.         the  execution  of  code  in  the  corresponding bios.  The first
  1076.         execution  of  HIGHHOLE  terminates  tracing,  then  removes  and
  1077.         examines the stub to identify unused portions of the bios.   
  1078.  
  1079.  
  1080.  
  1081.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1082.  
  1083.  
  1084.         Apr 09, 1994           ADVANCED UTILITIES                      16
  1085.  
  1086.  
  1087.  
  1088.         The  objective  is  to  boot  with  tracing  enabled, run as much
  1089.         application  software  as  you can, then run HIGHHOLE to see what
  1090.         portion   of  the  bios  can  be  converted  to  "holes".   Holes
  1091.         identified  in  this  manner  will  be  described in the HIGHHOLE
  1092.         output  as "Untraced video bios" or "Untraced main bios".  One or
  1093.         more  of  these  HOLE  options may then added to the LASTBYTE.SYS
  1094.         command  line  options.  Don't forget to remove the TRACE options
  1095.         from the command line of LASTBYTE.SYS.  
  1096.  
  1097.                 ┌─────────────────────────────────────────────────┐
  1098.                 │ If you don't use some device or feature during  │
  1099.                 │ tracing, HIGHHOLE may report more usable hole   │
  1100.                 │ space than actually exists!  For example,       │
  1101.                 │ if you never do a print screen while tracing,   │
  1102.                 │ the corresponding portion of the bios won't be  │
  1103.                 │ traced, and thus it will be reported as a hole. │
  1104.                 │ Don't forget that this can happen with video    │
  1105.                 │ graphics modes, serial communications, etc.     │
  1106.                 └─────────────────────────────────────────────────┘ 
  1107.  
  1108.         It's  always  best  when tracing to boot from a floppy; that way,
  1109.         if  it  hangs  you  can  always go back to booting from your hard
  1110.         disk  without  tracing.  However, sometimes everything except the
  1111.         floppy  disk  drives  will  function normally during tracing.  If
  1112.         you  have  DOS  6  or  later, you can safely add the TRACE option
  1113.         directly  to  the  CONFIG.SYS  file on your hard disk; if tracing
  1114.         hangs,  just  press  function key F5 at the beginning of the boot
  1115.         process  to  bypass  your CONFIG.SYS and AUTOEXEC.BAT files, thus
  1116.         avoiding  installation  of LASTBYTE.SYS (and thus tracing).  Then
  1117.         you  can  remove  the TRACE option using an editor and go back to
  1118.         normal operation.  
  1119.  
  1120.  
  1121.         7.2 The HOLE=<base>:<size> Option of LASTBYTE.SYS     
  1122.  
  1123.         HIGHHOLE   merely   locates  probable  holes,  and  suggests  the
  1124.         corresponding HOLE options to be used with LASTBYTE.SYS, as in: 
  1125.  
  1126.                 DEVICE=C:\TLBMM\LASTBYTE.SYS HOLE=C7F3:176   .....  
  1127.  
  1128.                 ┌─────────────────────────────────────────────────┐
  1129.                 │ NOTES: The <base> and <size> parameters are     │
  1130.                 │ different from other options: <size> is in bytes│
  1131.                 │ and must be a multiple of 16; <base> may be any │
  1132.                 │ hexadecimal value from A000 to FFFF.            │
  1133.                 └─────────────────────────────────────────────────┘
  1134.  
  1135.         You  must  modify  your LASTBYTE.SYS configuration to include the
  1136.         HOLE  options  that  you  want  to  use from the HIGHHOLE report.
  1137.         There's  no  gaurantee  that all of the HOLE options suggested by
  1138.  
  1139.  
  1140.  
  1141.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1142.  
  1143.  
  1144.         Apr 09, 1994           ADVANCED UTILITIES                      17
  1145.  
  1146.  
  1147.         HIGHHOLE  will  work  on you computer, so it's a good idea to try
  1148.         them one at a time.  
  1149.  
  1150.         HIGHHOLE  will not suggest a HOLE option if the corresponding ROM
  1151.         area  is  not shadowed, or if the corresponding shadow ram is not
  1152.         controlled by The Last Byte Memory Manager.  
  1153.  
  1154.         HIGHHOLE  also reports all the character generator font tables as
  1155.         possible  hole  options.  If you use any software that causes the
  1156.         video  mode  to  be reset (such as the "MODE CO80" or "MODE MONO"
  1157.         commands,  or  such as exiting from Windows), then the video bios
  1158.         will  attempt  to access one of the font tables.  Those marked as
  1159.         "(ACTIVE)"  in  the  HIGHHOLE report are needed to reset standard
  1160.         display  modes  and  therefore  are  not  good  choices  for HOLE
  1161.         options;  others  font tables may usually be used as holes if you
  1162.         never use their corresponding display modes.  
  1163.  
  1164.                 ┌─────────────────────────────────────────────────┐
  1165.                 │ NOTE: Use of LASTBYTE.SYS's HOLE option will    │
  1166.                 │ cause warm boots to be converted to cold boots. │
  1167.                 └─────────────────────────────────────────────────┘
  1168.  
  1169.  
  1170.         7.3 Specifying Holes in Read-Only Shadow Ram    
  1171.  
  1172.         Many  memory  controller  chips require that the main bios shadow
  1173.         ram  (F000-FFFF) be read-only.  In general, such memory cannot be
  1174.         used  to  load  device  drivers  or  TSR's.  However, some of the
  1175.         utility  programs  of  The  Last Byte Memory Manager, and some of
  1176.         the  data  these  programs  use  can  be  placed  into  read-only
  1177.         memory.  
  1178.  
  1179.         If  the main bios shadow ram is read-only, the corresponding HOLE
  1180.         options  will  be  indicated as read-only in the HIGHHOLE report.
  1181.         These  regions are specified with HOLE options in the same manner
  1182.         as  other  holes;  LASTBYTE.SYS will automatically determine from
  1183.         the  type  of  memory controller (PHYSICAL option) and the hole's
  1184.         memory  address  whether  it is read-only or read-write.  HIGHMEM
  1185.         marks  free  Hi-DOS memory created by read-only HOLE options with
  1186.         "[R/O]" in the Type column.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1202.  
  1203.  
  1204.         Apr 09, 1994           ADVANCED UTILITIES                      18
  1205.  
  1206.  
  1207.                          CHAPTER 8 - HIGHKEY.EXE        
  1208.  
  1209.  
  1210.         HIGHKEY  is  a  advanced  command line editor that can recall and
  1211.         edit  previous  commands.   HIGHKEY  is  similar  to  the  DOSKEY
  1212.         program  in  DOS  5,  but with filename completion and the unique
  1213.         ability  to  store  the  command line history and much of its own
  1214.         executable  code  in  Bank-Switch  memory.   It  does not support
  1215.         DOSKEY macros, or the editing keys F7, F9, Alt+F7, or Alt+F10.  
  1216.  
  1217.         To install HIGHKEY, simply enter it as a command at the prompt: 
  1218.  
  1219.                 C:\TLBMM\HIGHKEY 
  1220.  
  1221.         This  will  allocate  a  recall buffer with a default size of 512
  1222.         bytes,  but  which  can  be changed at any time with the use of a
  1223.         command line option.  
  1224.  
  1225.  
  1226.         8.1 The /BUFSIZE=n Option       
  1227.  
  1228.         This  option  empties  the  recall  buffer, and resizes it to 'n'
  1229.         bytes.   If  'n'  is  replaced  by  the  word MAXIMUM, the recall
  1230.         buffer size will use all available memory up to 65535 bytes.  
  1231.  
  1232.  
  1233.         8.1.1 The HMA subparameter       
  1234.  
  1235.         Appending ",HMA" to the end of the /BUFSIZE=n option as in: 
  1236.  
  1237.                 /BUFSIZE=1000,HMA 
  1238.  
  1239.         tells  HIGHKEY  to try to put its command line recall buffer into
  1240.         the  HMA.   Doing  so,  however,  prevents future resizing of the
  1241.         buffer.  
  1242.  
  1243.  
  1244.         8.2 The /INSERT and /OVERSTRIKE Options     
  1245.  
  1246.         These   options   set  the  default  typing  mode  to  insert  or
  1247.         overstike, respectively.  
  1248.  
  1249.  
  1250.         8.3 The /HISTORY Option       
  1251.  
  1252.         This  option  displays  the  contents  of the command line recall
  1253.         buffer on the screen.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1262.  
  1263.  
  1264.         Apr 09, 1994           ADVANCED UTILITIES                      19
  1265.  
  1266.  
  1267.         8.4 Preloading the History Buffer      
  1268.  
  1269.         This  option  consists  of simply a filename given on the command
  1270.         line,   optionally   preceeded   by   a   drive   and   directory
  1271.         specification.   It may be used together with the /HISTORY option
  1272.         to write the recall buffer to a file, as in: 
  1273.  
  1274.                 C:\TLBMM\HIGHKEY /HISTORY <filename> 
  1275.  
  1276.         Or  used  without  the  /HISTORY option to load the recall buffer
  1277.         from a file, as in: 
  1278.  
  1279.                 C:\TLBMM\HIGHKEY <filename> 
  1280.  
  1281.  
  1282.         8.5 The /NOSPLIT Option       
  1283.  
  1284.         HIGHKEY  requires  that  LASTBYTE.SYS  be  installed  first.   It
  1285.         automatically  loads  itself  into  upper memory, putting much of
  1286.         itself   into   read-only   shadow  ram,  unused  HMA  space,  or
  1287.         bank-switch  memory  if  available.   The  /NOSPLIT option can be
  1288.         used to prevent it from doing this.  
  1289.  
  1290.                 C:\TLBMM\HIGHKEY /NOSPLIT 
  1291.  
  1292.  
  1293.         8.6 Editing Commands        
  1294.  
  1295.         Some  of  the  HIGHKEY  editing commands use what is known as the
  1296.         "template".   The  template  is  initialized  to  a  copy  of the
  1297.         previous  command line, but may be modified by one or more of the
  1298.         editing commands.  
  1299.  
  1300.         Left Arrow              Moves the cursor back one character.
  1301.  
  1302.         Right Arrow             Moves the cursor forward one character.
  1303.  
  1304.         Up Arrow                Recalls the previous command and stores
  1305.                                 it in the template.
  1306.  
  1307.         Down Arrow              Recalls the next command and stores it
  1308.                                 in the template.
  1309.  
  1310.         PgUp                    Recalls the oldest command and stores it
  1311.                                 in the template.
  1312.  
  1313.         PgDn                    Recalls the most recent command and stores
  1314.                                 it in the template.
  1315.  
  1316.         Ctrl+Left Arrow         Moves the cursor back one word.
  1317.  
  1318.  
  1319.  
  1320.  
  1321.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1322.  
  1323.  
  1324.         Apr 09, 1994           ADVANCED UTILITIES                      20
  1325.  
  1326.  
  1327.         Ctrl+Right Arrow        Moves the cursor forward one word.
  1328.  
  1329.         Home                    Moves the cursor to the beginning of
  1330.                                 the command line.
  1331.  
  1332.         End                     Moves the cursor to the end of the
  1333.                                 command line.
  1334.  
  1335.         Esc                     Erases the command line; does not affect
  1336.                                 the template.
  1337.  
  1338.         Ins                     Toggles insert versus overwrite mode.
  1339.  
  1340.         Backspace               Deletes the character to the left of the
  1341.                                 cursor; does not affect the template.
  1342.  
  1343.         Del                     Deletes the character at the cursor; does
  1344.                                 not affect the template.
  1345.  
  1346.         Ctrl+End                Deletes from the cursor to the end of
  1347.                                 the line; does not affect the template.
  1348.  
  1349.         Ctrl+Home               Deletes from the beginning of the line
  1350.                                 up to but not including the cursor; does
  1351.                                 not affect the template.
  1352.  
  1353.         F1                      Copies one character from the template.
  1354.  
  1355.         F2                      Waits for a keypress, then inserts charac-
  1356.                                 ters from the template up to but not in-
  1357.                                 cluding the first occurrence of that key.
  1358.  
  1359.         F3                      Copies the remainder of the template to
  1360.                                 the command line.
  1361.  
  1362.         F4                      Waits for a keypress, then deletes charac-
  1363.                                 ters from the template up to but not in-
  1364.                                 cluding that key.  The template is then
  1365.                                 displayed on the command line.
  1366.  
  1367.         F5                      Copies the command line to the template
  1368.                                 and then erases the command line.
  1369.  
  1370.         F6                      Inserts an end-of-file character (Ctrl+Z).
  1371.  
  1372.         F8                      Searches for the next command that matches
  1373.                                 the characters in the command line up to
  1374.                                 the position of the cursor, then copies
  1375.                                 that command to the template.
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1382.  
  1383.  
  1384.         Apr 09, 1994           ADVANCED UTILITIES                      21
  1385.  
  1386.  
  1387.         Tab                     Searches for a file on the disk whose name
  1388.                                 matches the partial filespec given by the
  1389.                                 text indicated by the cursor.  If found,
  1390.                                 the filespec is completed on the command
  1391.                                 line.
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1442.  
  1443.  
  1444.         Apr 09, 1994           ADVANCED UTILITIES                      22
  1445.  
  1446.  
  1447.                  CHAPTER 9 - HIGHMARK.EXE and HIGHUNDO.EXE      
  1448.  
  1449.  
  1450.         Sometimes  it  can  be  useful  to  remove one or more TSR's from
  1451.         memory,  either  because  you  no longer want to use the features
  1452.         that  they  provide  or  perhaps  in order to make room for other
  1453.         software.  
  1454.  
  1455.         In  order  to  be  able  to  remove  a  group of TSR's from upper
  1456.         memory,  they must be be marked.  To mark them, run HIGHMARK once
  1457.         before  you  use  HIGHTSR  to load the TSR's.  Then later, simply
  1458.         run  HIGHUNDO  - the mark and all of its associated TSR's will be
  1459.         removed.  
  1460.  
  1461.         HIGHMARK  may  be  executed  more than once to establish multiple
  1462.         levels  of  TSR's  to  be  removed.   Each  execution of HIGHMARK
  1463.         places  another  mark  in  memory  with  a  unique  mark  number.
  1464.         HIGHMARK  attempts  to  store  the  mark in read-only shadow ram,
  1465.         then bank-switch memory, then Hi-DOS memory.  
  1466.  
  1467.         Every  TSR loaded by HIGHTSR is automatically associated with the
  1468.         most  recent  execution  of HIGHMARK.  You can use HIGHMEM to see
  1469.         the  marks,  their  mark  number, and the set of TSR's associated
  1470.         with  the mark.  Every execution of HIGHUNDO will then remove the
  1471.         set of TSR's associated with the most recent HIGHMARK.  
  1472.  
  1473.         You  may  specify  a  mark level on the command line of HIGHUNDO.
  1474.         This  will  cause it to remove all the TSR's and marks whose mark
  1475.         number  is  greater  than  or  equal to the number on the command
  1476.         line.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1502.  
  1503.  
  1504.         Apr 09, 1994           ADVANCED UTILITIES                      23
  1505.  
  1506.  
  1507.                 CHAPTER 10 - HIGHRSVD.EXE and HIGHRSVD.SYS      
  1508.  
  1509.  
  1510.         HIGHRSVD  helps  control  the  allocation  of upper memory in The
  1511.         Last  Byte  Memory Manager.  Basically, it is used to reserve and
  1512.         later  release selected blocks of memory.  There are two versions
  1513.         of   HIGHRSVD,   a   device  driver  (HIGHRSVD.SYS)  for  use  in
  1514.         CONFIG.SYS,  and  an  application  program (HIGHRSVD.EXE) for use
  1515.         outside of CONFIG.SYS.  
  1516.  
  1517.         Each  time HIGHRSVD is invoked, it begins by releasing any memory
  1518.         that  had  been  reserved  by  a previous invocation of HIGHRSVD.
  1519.         Then  if  any command line options are specified, each is used to
  1520.         reserve a block of memory.  
  1521.  
  1522.  
  1523.         10.1 Reserving High-DOS Memory       
  1524.  
  1525.         Blocks  of  High-DOS  memory  can be reserved by specifying their
  1526.         size as parameters on the command line as in: 
  1527.  
  1528.                 DEVICE=C:\TLBMM\HIGHRSVD.SYS 10000 5000 2000 
  1529.  
  1530.                 -or- 
  1531.  
  1532.                 C:\TLBMM\HIGHRSVD 10000 5000 2000 
  1533.  
  1534.         Both  of  the above examples will reserve three blocks of memory:
  1535.         one  of  10,000 bytes, a second block of 5,000 bytes, and a third
  1536.         block  of  2,000  bytes.   HIGHRSVD  will attempt to satisfy each
  1537.         request  by using a "best fit" strategy; that is, it will reserve
  1538.         a  block  a  memory  using  the smallest free block that is large
  1539.         enough  to  satisfy  the request.  For example, if you have three
  1540.         free  blocks  of  1000,  5000,  and  10000 bytes respectively, an
  1541.         option  of  4000  will  reserve 4000 bytes from the free block of
  1542.         5000.  
  1543.  
  1544.  
  1545.         10.2 The HIGH Suboption       
  1546.  
  1547.         By  default, the reserved block will be positioned at the low end
  1548.         of  the selected free block's address space; you may position the
  1549.         reserved  block at the top of the address space by adding ",HIGH"
  1550.         to the size specification, as in: 
  1551.  
  1552.                 C:\TLBMM\HIGHRSVD 4000,HIGH 
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1562.  
  1563.  
  1564.         Apr 09, 1994           ADVANCED UTILITIES                      24
  1565.  
  1566.  
  1567.                         CHAPTER 11 - HIGHSPLR.EXE        
  1568.  
  1569.  
  1570.         HIGHSPLR  is  a  interrupt-driven  print  spooler  that creates a
  1571.         print  buffer  in  upper  memory.   Once installed, programs that
  1572.         send  output to the printer are no longer held up waiting for the
  1573.         printer,  but  rather  simply  send  their  output to the buffer.
  1574.         Characters  in  the  buffer  are  then sent to the printer by the
  1575.         resident  portion  of  HIGHSPLR while your computer is free to do
  1576.         other work.  
  1577.  
  1578.         Unlike  the  DOS  printer  spooler (PRINT), HIGHSPLR is driven by
  1579.         the   printer   hardware  interrupt  line  that  signals  printer
  1580.         "ready",  rather  than  the  timer  tick (that only interrupts 18
  1581.         times   per   second).   Unlike  PRINT,  this  allows  full-speed
  1582.         transfers  (e.g.,  up  to  about  8,000  cps) to the printer even
  1583.         while executing other programs.  
  1584.  
  1585.         HIGHSPLR  tries  to  place  its buffer in Bank-Switch memory, but
  1586.         will  use  High-DOS  memory if a sufficient amount of Bank-Switch
  1587.         memory is not available.  
  1588.  
  1589.         The command line syntax for HIGHSPLR is given below.  
  1590.  
  1591.                 C:\TLBMM\HIGHSPLR [opt] [opt] ... [opt] 
  1592.  
  1593.         All  parameters  are  optional and may be specified in any order.
  1594.         All  of  the  options except LPT, COM, and IRQ may be abbreviated
  1595.         by their first letter.  
  1596.  
  1597.  
  1598.         11.1 Specifying the Buffer Size      
  1599.  
  1600.         The  size  of  the  print  buffer  will  default to all available
  1601.         Bank-Switch  and High-DOS memory.  This option may be used to use
  1602.         a smaller buffer, or to resize the buffer later, as in: 
  1603.  
  1604.                 KBYTES=20 
  1605.  
  1606.  
  1607.         11.1.1 The HMA subparameter       
  1608.  
  1609.         Appending ",HMA" to the end of the KBYTES=n option as in 
  1610.  
  1611.                 KBYTES=20,HMA 
  1612.  
  1613.         tells  HIGHSPLR  to use the HMA first when allocating its command
  1614.         line  recall  buffer.   Doing so, however, limits future resizing
  1615.         of  the  buffer  to  a  size  no  smaller  than  the amount first
  1616.         allocated within the HMA .  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1622.  
  1623.  
  1624.         Apr 09, 1994           ADVANCED UTILITIES                      25
  1625.  
  1626.  
  1627.  
  1628.         11.2 Specifying the Logical Device      
  1629.  
  1630.         HIGHSPLR   supports   both  parallel  and  serial  printers,  but
  1631.         defaults  to  LPT1.  Multiple copies of HIGHSPLR can be installed
  1632.         to  support  more  than one printer.  You can specify the logical
  1633.         device  by  placing  one  of the following options on the command
  1634.         line: 
  1635.  
  1636.                 LPT1    LPT2    LPT3    COM1    COM2    COM3    COM4
  1637.  
  1638.         HIGHSPLR  automatically  determines the physical i/o port address
  1639.         from  the  device  name  (e.g.,  LPT2), but you can override this
  1640.         with the PORT option, as in: 
  1641.  
  1642.                 PORT=# 
  1643.  
  1644.  
  1645.         11.3 Specifying the Hardware Interrupt      
  1646.  
  1647.         HIGHSPLR  determines a default physical interrupt vector from the
  1648.         device  name (e.g., LPT2), but you can override this by using one
  1649.         of the following options on the command line: 
  1650.  
  1651.                 IRQ0    IRQ1    IRQ2    IRQ3    IRQ4    IRQ5    IRQ6    IRQ7
  1652.  
  1653.         If  you would rather use polling instead of interrupt-driven I/O,
  1654.         place  the  word "POLL" on the command line and do not use one of
  1655.         the  IRQ#  options.   This  may  be necessary if another parallel
  1656.         port   is   in   use   for   some   other   purpose  (e.g.,  with
  1657.         Lantastic/Z).   
  1658.  
  1659.  
  1660.         11.4 Specifying Flow Control       
  1661.  
  1662.         Serial   ports   usually  require  some  form  of  flow  control.
  1663.         HIGHSPLR  does not implement flow control by default.  To have it
  1664.         use  flow  control,  place  one  of  the following options on the
  1665.         command line: 
  1666.  
  1667.                 FLOW=<type>, where <type> is selected from:
  1668.  
  1669.                 XON     DTR     RTS     NONE (default)
  1670.  
  1671.  
  1672.         11.5 The MONITOR Option       
  1673.  
  1674.         HIGHSPLR  has  a  unique "monitor" option.  While output is being
  1675.         sent  to the printer, you can monitor the actual transfer rate by
  1676.         entering the command, 
  1677.  
  1678.  
  1679.  
  1680.  
  1681.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1682.  
  1683.  
  1684.         Apr 09, 1994           ADVANCED UTILITIES                      26
  1685.  
  1686.  
  1687.                 C:\TLBMM\HIGHSPLR MONITOR 
  1688.  
  1689.         The  monitor  operation may be terminated at any time by pressing
  1690.         a  key, or will automatically terminate when the print buffer has
  1691.         been   emptied.   Once  terminated,  HIGHSPLR  will  display  the
  1692.         maximum  and  average  transfer rates measured during the monitor
  1693.         operation.  
  1694.  
  1695.  
  1696.         11.6 The RESET Option       
  1697.  
  1698.         The  RESET  option  provides  a  way  to cancel printing from the
  1699.         buffer (and do a form-feed) at any time.  
  1700.  
  1701.  
  1702.         11.7 The NOTEST Option       
  1703.  
  1704.         The  NOTEST option disables the default test for functionality of
  1705.         the physical port that occurs when HIGHSPLR is first installed.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.         Copyright (C) 1990-94, Key Software Products. All Rights Reserved
  1742.  
  1743.