home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / MEM_MAN / QOPTIMIZ.ZIP / OPTIMIZE.TEC
Text File  |  1992-03-26  |  24KB  |  431 lines

  1. ID:OP Quarterdeck's OPTIMIZE Program
  2. Quarterdeck Technical Bulletin #191
  3. by Russell Bell
  4. last revision:  13 February 1992
  5.  
  6.      The purpose of this document is to give a brief statement of what the 
  7. OPTIMIZE program does and explain in detail how to handle common problems that 
  8. can occur when it is run.
  9.  
  10. 1)  What is OPTIMIZE?
  11.      
  12.      OPTIMIZE.COM is a program Quarterdeck supplies with its memory managers 
  13. (QEMM-386 and QEMM-50/60) and its memory enhancer, QRAM.  The same program is 
  14. used on all three products.  Beginning with version 6, QEMM-386 has a new 
  15. phase of OPTIMIZE for using the Stealth feature.  This will be covered in a 
  16. separate section of this technote.
  17.  
  18.      In this bulletin references to QEMM-386 should be construed to apply to 
  19. all three products.  The technote is not directly related to the functioning 
  20. of DESQview but DESQview may have more memory available for its windows if the 
  21. system has been OPTIMIZEd.
  22.  
  23. 2)  What does OPTIMIZE do?
  24.  
  25.      The purpose of the OPTIMIZE program is to configure the CONFIG.SYS and 
  26. AUTOEXEC.BAT and any batch files CALLed in the AUTOEXEC.BAT to leave the 
  27. computer with the most conventional memory (the memory below 640 kilobytes) 
  28. possible and the largest possible remaining areas of High RAM.  OPTIMIZE does 
  29. nothing permanent to the computer other than edit the CONFIG.SYS and 
  30. AUTOEXEC.BAT and CALLed batch files.  All the work that OPTIMIZE does can be 
  31. done by the user by hand or reversed by hand in whole or in part.  The 
  32. OPTIMIZE program does it more quickly and almost always better.
  33.  
  34. 3)  How does OPTIMIZE work?
  35.  
  36.      The first step of OPTIMIZE copies the CONFIG.SYS to CONFIG.QDK and the 
  37. AUTOEXEC.BAT to AUTOEXEC.QDK so that, if OPTIMIZE fails for some reason, or if 
  38. the user wishes to return to the configuration before OPTIMIZation, the 
  39. original system files are available.
  40.  
  41.      The second step of OPTIMIZE puts the "RAM" parameter on the QEMM-386 
  42. command line and runs "LOADHI/GS" on all the device drivers in the CONFIG.SYS 
  43. and all the TSRs in the AUTOEXEC.BAT and CALLed batch files and then reboots 
  44. the computer.  For QRAM users the RAM parameter is redundant:  QRAM creates 
  45. high RAM automatically.  On systems with DOS versions 2.x and 3.x all the 
  46. buffers (except one) will be moved from the CONFIG.SYS to the AUTOEXEC.BAT to 
  47. load them high.  On systems with DOS version 4 it is a more efficient use of 
  48. memory to load the buffers into expanded memory using the DOS feature, the 
  49. "/x" parameter.  Quarterdeck's BUFFERS.COM cannot be used with DOS 4.  On 
  50. systems with DOS version 5, buffers load into the HMA when you use DOS=HIGH, 
  51. so OPTIMIZE leaves buffers in the CONFIG.SYS unless you request more buffers 
  52. than can fit in the HMA, in which case BUFFERS.COM may be used to load buffers 
  53. high.  See below for a further discussion of this issue.  For more detail on 
  54. this issue, read Quarterdeck Technical Bulletin #226, "Buffers".  OPTIMIZE 
  55. uses the "/GS" parameter to determine how much memory a driver or TSR requires 
  56. to be loaded into memory.
  57.  
  58.      If the AUTOEXEC.BAT ends with a program that remains in control of the 
  59. computer (such as a menu program like DOS Shell or PC Shell) rather than 
  60. exiting to DOS then you must exit this program to continue OPTIMIZation.
  61.  
  62.      The third step of OPTIMIZE actually loads the device drivers and TSRs 
  63. high.  If it fails, the old CONFIG.SYS and AUTOEXEC.BAT are restored.
  64.  
  65.      If all the device drivers and TSRs can be loaded high then OPTIMIZE will 
  66. load them all high and leave a new CONFIG.SYS and AUTOEXEC.BAT on the system.  
  67. If they cannot all be loaded high, OPTIMIZE runs through all possible 
  68. configurations and chooses the ones that leave the most conventional memory 
  69. available.  If the OPTIMIZE process has completed then the screen will read:
  70.  
  71.      The OPTIMIZE process is complete.
  72.  
  73. If it does not then something has gone wrong.
  74.  
  75. THE LOADHI UTILITIES
  76.      
  77. 1)  What does LOADHI do?
  78.  
  79.      LOADHI.COM loads resident programs (TSRs) into the high RAM created by 
  80. QEMM-386 (or QEMM-50/60 or QRAM).  LOADHI.SYS performs the same function for 
  81. device drivers.
  82.  
  83. 2)  What can LOADHI not do?
  84.  
  85.      LOADHI.SYS cannot load high any program or driver that loads more than 
  86. thirty-two programs or drivers in turn.  If you are calling a batch file from 
  87. the AUTOEXEC.BAT then you must put its contents explicitly in the AUTOEXEC.BAT 
  88. in order for OPTIMIZE to load them high.  Alternatively you may load them high 
  89. by editing the batch file yourself as described in the LOADHI chapter of the 
  90. manual.
  91.  
  92. 3) How much memory is needed to load a program high?
  93.  
  94.      LOADHI must have enough memory available to load a program.  A program 
  95. may use more memory to load than to remain resident.  LOADHI/GS reports both 
  96. the amount of memory needed to load and the amount needed to stay resident.  
  97. The amount of memory needed to load, not just the amount needed to stay 
  98. resident, must be available in one contiguous block for a program to be loaded 
  99. high.  OPTIMIZE creates a file named "LOADHI.OPT" in the QEMM (or QRAM) 
  100. directory that contains two numbers for each TSR or device driver:  the memory 
  101. size needed to load the TSR (or device driver) and the memory size needed for 
  102. it to stay resident.
  103.  
  104. 4)  Why does my program not load high?
  105.  
  106.      Some programs refuse to be loaded high.  They may be unwilling to be 
  107. loaded above conventional memory or they may refuse to be crammed into the 
  108. region in which OPTIMIZE puts them or they may have some other complaint. 
  109. These programs are rare, but there is no fix for their objection.
  110.      If a program (or device driver) does not remain resident there is no 
  111. point in loading it high.  This can be discovered by looking at the second 
  112. number LOADHI/GS reports (or the second number in LOADHI.OPT):  if this number 
  113. is 0 then the program does not stay in memory and does not need to be loaded 
  114. high.
  115.  
  116. 5)  How can I tell what is being loaded high?
  117.  
  118.      Running "LOADHI" with no parameters or programs to load will give a 
  119. status report indicating what the high RAM regions are, what is loaded into 
  120. them, and what areas are available.  The First Meg/Programs page of Manifest 
  121. also shows what programs are loaded high as well as those loaded low.
  122.      
  123.      TROUBLESHOOTING
  124.  
  125. 1)  What should I do if OPTIMIZE fails?
  126.  
  127.      If OPTIMIZE does not end by reporting "The OPTIMIZE process is complete," 
  128. you should look at your CONFIG.SYS and AUTOEXEC.BAT to see if they are 
  129. unchanged.  If they are as they were in the beginning then OPTIMIZE has not 
  130. completed.  If the CONFIG.SYS contains "DEVICE=C:\QEMM\RSTRCFG.SYS **** 
  131. OPTIMIZE S%tep 2 [or 3]  ****" and the AUTOEXEC.BAT is "@OPT2" or "@OPT3" then 
  132. OPTIMIZE has failed and you should restore CONFIG.QDK to CONFIG.SYS and 
  133. AUTOEXEC.QDK to AUTOEXEC.BAT.  Beginning with QEMM-386 version 6, QEMM-50/60 
  134. version 6, and QRAM version 2, there is a program called "UNOPT" which 
  135. reverses the changes OPTIMIZE has made; you may run it to return your 
  136. CONFIG.SYS, AUTOEXEC.BAT, and CALLed batch files to the state they were in 
  137. before running OPTIMIZE by running UNOPT instead.  If the CONFIG.SYS and 
  138. AUTOEXEC.BAT do not have these lines in them, and they are not as they were 
  139. before running OPTIMIZE, and LOADHI reports that there are programs loaded 
  140. high, then OPTIMIZE was successful and you just missed the message "The 
  141. OPTIMIZE process is complete".
  142.  
  143.    2)  What can go wrong?
  144.  
  145.      A)  In general:
  146.  
  147.      If you have a third-party disk partitioner then drives other than C: 
  148. sometimes do not exist until it is loaded.  In these cases if you put QEMM-386 
  149. on any drive other than the C: drive, the disk partitioner must be loaded 
  150. first.
  151.  
  152.      OPTIMIZE cannot OPTIMIZE a CONFIG.SYS or AUTOEXEC.BAT longer than 512 
  153. lines. 
  154.  
  155.      DOS does not allow lines longer than 128 characters in the AUTOEXEC.BAT.
  156.  
  157.           During the OPTIMIZE process lines are temporarily lengthened.  If 
  158.      you have a very long line, OPTIMIZE may increase it to more than 128 
  159.      characters long.  Shorten such a line if possible. If this is not 
  160.      possible then using the "/PATH" switch on OPTIMIZE may help.  See the 
  161.      section on "switches" below.  OPTIMIZE may also fail in certain rare 
  162.      circumstances if QEMM-386 is the first line in the CONFIG.SYS.  Try 
  163.      putting something harmless that does not get loaded high in the 
  164.      CONFIG.SYS before the QEMM-386 line, such as the "FILES=??" command 
  165.      (where "??" is the amount of FILES you want to load in the CONFIG.SYS).
  166.  
  167.      Some error messages may be reported during the OPTIMIZation process that 
  168. can be ignored, since OPTIMIZE proceeds normally after reporting the error. 
  169. For example:
  170.  
  171. --If you are using a command processor other than Microsoft's COMMAND.COM 
  172. (such as 4DOS) that has internal commands that Microsoft's DOS does not have, 
  173. LOADHI will not recognize them.  LOADHI will treat such a command as an 
  174. external command, reporting a "file not found" error when it is encountered.
  175.      You can solve this problem by creating a file called OPTIMIZE.EXC in the 
  176. QEMM directory which contains the names of all the commands you want OPTIMIZE 
  177. to ignore. 
  178.  
  179.      B)  In the first step:
  180.  
  181.      All that happens in the first step of OPTIMIZE is that backup copies of 
  182. the CONFIG.SYS and AUTOEXEC.BAT are made to CONFIG.QDK and AUTOEXEC.QDK.  
  183. Nothing should go wrong here.
  184.  
  185.      C)  In the second step:
  186.  
  187.      If OPTIMIZE fails at the second step then the two likely causes are some 
  188. conflict with memory management or a conflict in the address space.  The most 
  189. common cures for conflicts in memory management are the QEMM-386 parameters 
  190. "NOSH and "NT".
  191.      QEMM-386 tries to manage the unused portions of five different varieties 
  192. of Chips & Technologies ShadowRAM but sometimes incorrectly identifies a 
  193. different implementation as one that it knows how to use.  "NOSH" tells QEMM-
  194. 386 not to try to use the ShadowRAM, clearing this kind of error.
  195.      "NT" tells QEMM-386 not to try to manage Top Memory.  This is another 
  196. kind of memory, located at the top of the 16 meg address space, that QEMM-386 
  197. may misdetect or mismanage.  If your machine has no ShadowRAM or Top Memory 
  198. then these parameters will not affect the performance of the computer.
  199.  
  200.      The other likely cause of OPTIMIZE failing at the second step is that 
  201. QEMM-386 is placing High RAM in a portion of the address space used by another 
  202. device (hardware device) on the system.  If you have a network card, disk 
  203. controller with ROM, scanner with a RAM buffer, video capture card, or any of 
  204. a number of devices, you may have such a conflict.   QEMM-386 does not always 
  205. recognize the address space used by these devices; an explicit exclude 
  206. parameter ("x=mmmm-nnnn") on the QEMM-386 command line may be needed.  You 
  207. should consult the manuals of your hardware to find out what pieces of the 
  208. address space they use.  If this is not possible then you can follow the 
  209. analysis procedure as explained in the QEMM or Manifest manual before running 
  210. OPTIMIZE or adding the RAM parameter.  If you wish to do none of these you can 
  211. exclude all of the high RAM area ("x=a000-ffff") and then cut down on this 
  212. exclude ("x=c800-efff", then "x=c800-dfff", then "x=c800-d7ff", and so on; or 
  213. "x=e000-ffff", then "x=e000-efff", then "x=e000-e7ff", and so on) until you 
  214. find the smallest portion(s) of the address space that QEMM386 must be 
  215. instructed not to use to prevent the conflict.  The Quarterdeck Technical 
  216. Bulletin #219, "Using QEMM-386's Analysis", explains the use of the Analysis 
  217. feature of QEMM-386 to find excludes.
  218.  
  219.      The OPTIMIZE process can also fail at the second step if the file 
  220. "RSTRCFG.SYS" is corrupted.  You can copy this file over anew from the QEMM-
  221. 386 source disk to the QEMM directory.
  222.  
  223.      Finally, some programs will fail on the second step of OPTIMIZE because 
  224. they are incompatible with the /GS function of the LOADHI program, even though 
  225. the /GS parameter used in the second step of OPTIMIZE prevents any actual 
  226. loading into HIGH RAM.  In this case you should remark the program out (by 
  227. inserting the command "rem" at the beginning of the line on which the program 
  228. is loaded) for the duration of the OPTIMIZE process.  If this program is 
  229. needed in order to load other programs, you may create a file called 
  230. OPTIMIZE.EXC in the QEMM directory and put the names of any commands you do 
  231. not want OPTIMIZE to load high in it.
  232.  
  233.      C)  In the third step:
  234.  
  235.      If OPTIMIZE fails at the third step then the cause is:
  236.  
  237.       i) an attempt to load some driver or program high that objects;
  238.  
  239.       ii) loading high into a piece of the address space that is being used
  240.           by a hardware device (conflicts are often found only when
  241.           something is loaded high into an area);      
  242.       
  243.       iii) the existence of a bus-mastering hard disk controller
  244.            (usually a SCSI disk controller, but others are possible
  245.            culprits).
  246.  
  247.      i)  If some driver or TSR misbehaves when loaded high then the cure is to 
  248. create a file called OPTIMIZE.EXC in the QEMM directory and enter the name of 
  249. this program in it.  You may need to find out which program is causing the 
  250. problem by OPTIMIZing with the AUTOEXEC.BAT out of the way (by renaming it to 
  251. something else) to isolate the problem to the CONFIG.SYS or AUTOEXEC.BAT and 
  252. then narrowing down which program(s) object to being loaded high by loading 
  253. partial AUTOEXEC.BATs.
  254.  
  255.      ii)  If an address conflict is the problem then the area in conflict must 
  256. be excluded as mentioned above in the troubleshooting section for step 2.
  257.  
  258.      iii)  If your system has a bus-mastering hard disk controller then you 
  259. must use the "db=xx" parameter on the QEMM command line.  "xx" should be a 
  260. number between 2 and 10.  This parameter sets aside a buffer of "xx" kilobytes 
  261. in unmapped conventional memory for diversion of disk i/o from mapped memory. 
  262. If you do not know whether you have such a device give this a try to see if it 
  263. works.  If your system has a bus-mastering device then a better solution is to 
  264. use the VDS (Virtualized DMA Services) driver that the manufacturer may have 
  265. written.  If your bus-mastering device is not a hard disk controller the VDS 
  266. driver is necessary if you wish to LOADHI.  See the Quarterdeck technical note 
  267. #121, "Bus-Mastering Devices and QEMM-386," for more information on this 
  268. subject.
  269.  
  270. STEALTH
  271.      Beginning with version 6, QEMM-386 offers a new feature called Stealth, 
  272. in which QEMM-386 maps High RAM (and/or the page frame) over ROMs, monitors 
  273. the interrupts pointing into those ROMS, and when those interrupts come in, 
  274. maps the appropriate ROM into the page frame and redirects the interrupt 
  275. vector to its new location in the page frame.  When OPTIMIZE finished its 
  276. normal process, as described above, if it has not loaded every device driver 
  277. and TSR high, it asks you if you wish use Stealth.  If you choose to use 
  278. Stealth, OPTIMIZE will test your system to see if either Stealth mode is 
  279. compatible with your machine and CONFIG.SYS and AUTOEXEC.BAT.  If it is, it 
  280. will add a Stealth parameter (ST:M or ST:F) to the QEMM386.SYS line of the 
  281. CONFIG.SYS and re-OPTIMIZE with the additional High RAM.
  282.  
  283.      Quarterdeck has never seen a machine on which ST:F will not work.  If 
  284. OPTIMIZE reports that ST:F will not work, it is likely to be a device driver 
  285. or TSR in the CONFIG.SYS or AUTOEXEC.BAT.  You should try running 
  286. OPTIMIZE/STEALTH without anything else in the CONFIG.SYS and no AUTOEXEC.BAT 
  287. to see if it really is your computer, rather than a device driver or TSR that 
  288. is incompatible with Stealth.
  289.      For more information about Stealth, see Quarterdeck Technical Bulletin 
  290. #205, "Troubleshooting Stealth."
  291.  
  292. DOS 5
  293.      Although versions 6 of QEMM-386 and QEMM-50/60 and version 2 of QRAM 
  294. allow DOS 5's LOADHIGH and DEVICEHIGH to work, it is better to use 
  295. Quarterdeck's LOADHI.COM and LOADHI.SYS instead because LOADHI can load 
  296. programs into specific regions (the whole point of OPTIMIZE) and LOADHI/GS 
  297. can determine how much memory a program needs to load.  Using LOADHIGH and 
  298. DEVICEHIGH OPTIMIZE cannot do either of these two things, limiting its 
  299. usefulness greatly.
  300.  
  301. PROGRAMS THAT LOAD THEMSELVES HIGH
  302.      Some programs load themselves high.  OPTIMIZE cannot determine how 
  303. much High RAM these programs use and the amount of High RAM they use throws 
  304. off OPTIMIZE's calculations.  It is usually preferable to use switches on such 
  305. programs to tell them to load low and let LOADHI load them.  If you do not do 
  306. this, place such programs at the end of the AUTOEXEC.BAT so that the High RAM 
  307. they use does not throw off OPTIMIZE's calculations.  A more sophisticated 
  308. approach is to EXCLUDE an amount of High RAM equal to the amount such a 
  309. program uses, remark it out during the OPTIMIZE process, then remove the 
  310. EXCLUDE and unremark the program afterwards.
  311.  
  312.      DOS RESOURCES
  313.  
  314. BUFFERS:  OPTIMIZE tries to load buffers high for all DOS versions 2.x and 
  315. 3.x.  It does this by decreasing the buffers loaded in the CONFIG.SYS to one 
  316. and loading the rest in the AUTOEXEC.BAT with a statement like:
  317.  
  318.      C:\QEMM\LOADHI /R:1 C:\QEMM\BUFFERS=20  
  319.  
  320. One buffer must be left loaded in the CONFIG.SYS (DOS defaults to providing a 
  321. higher number if none are specified).  For more information on buffers, read 
  322. Quarterdeck Technical Bulletin #226, "Buffers."
  323.  
  324. 1)  What if I have DOS 4?
  325.  
  326.      Microsoft changed the structure of buffers with version 4 of DOS, making 
  327. it possible to load buffers into expanded memory.  This is preferable to 
  328. loading them high because no address space at all is used.  If you are using 
  329. DOS 4 or later then you may use the "/x" switch (e.g.:  "buffers=20/x").  Note 
  330. that expanded memory can be used only in 16K increments, so that buffers 
  331. loaded into expanded memory are allocated 30 at a time; no matter how few you 
  332. specify, with the "/x" parameter you get at least 30.  Before using the "/X" 
  333. parameter for DOS buffers, run Manifest and check the "Hints" section to 
  334. verify that it suggests loading buffers high with /X.  Some early DOS 4 
  335. versions have a bug which make it unwise to use this feature.  Manifest can 
  336. detect this and will not recommend loading buffers high if it detects the bug. 
  337. In addition, the /X parameter should not be used on BUFFERS until the RAM 
  338. parameter has been placed on QEMM-386.  
  339.  
  340. 2)  What if I have DOS 5?
  341.  
  342.      Beginning with versions 6 of QEMM-386 and QEMM-50/60, and version 2 of 
  343. QRAM, the BUFFERS.COM program allows buffers to be loaded high in DOS version 
  344. 5.  If you are loading DOS high with the DOS=HIGH command, then DOS is putting 
  345. buffers into the HMA.  OPTIMIZE will leave these alone, since that portion of 
  346. the HMA would go unused if the buffers were not loaded into it.  If you try to 
  347. load more buffers into the HMA than will fit, DOS loads them low.  OPTIMIZE 
  348. will try to load buffers high if DOS loads them low.
  349.  
  350. 3)  What if I am using a third-party disk partitioner?
  351.  
  352.      You may find that your buffers are using some huge amount of memory.  If 
  353. you are creating disk partitions larger than 32 MB with a version of DOS 
  354. earlier than DOS 4, the size of each buffer increases with the size of the 
  355. sector.  If you are missing a lot of memory then you may want to check the 
  356. DOS/Overview page of Manifest to see how much space your buffers are taking.  
  357. A buffer is 528 bytes for a normal 512-byte sector.  For partitions larger 
  358. than 32 MB the sector size grows by factors of two and the buffer size 
  359. follows.  This has nothing to do with OPTIMIZE or QEMM386:  your buffers use 
  360. this much space even if you do not run OPTIMIZE or load QEMM-386.  You can see 
  361. this by comparing the amount of memory the buffers are using in the 
  362. DOS/Overview page of Manifest with and without QEMM-386. 
  363.  
  364. FILES, FCBS, LASTDRIVE:  OPTIMIZE does not load any of these DOS resources 
  365. high.  Since they use a comparatively small amount of memory, this does not 
  366. affect most users. If you want to load them high, you must do so by hand in 
  367. imitation of the way buffers are loaded high: decrease the number in the 
  368. CONFIG.SYS to a minimum and use LOADHI (for example: C:\QEMM\LOADHI 
  369. C:\QEMM\FILES=40) in the AUTOEXEC.BAT.  Note that because the drive specifiers 
  370. must be contiguous LASTDRIV creates a duplicate set of drive specifiers high 
  371. for all that were loaded low.  This means that the number loaded low should be 
  372. minimized in the CONFIG.SYS (for example:  "lastdrive=c" since DOS defaults to 
  373. "lastdrive=e") if "LASTDRIV.COM" is used to load drive specifiers high.  
  374. Although OPTIMIZE does not load any of these DOS resources high, once you have 
  375. them loaded high OPTIMIZE will fit them into high RAM in the location in which 
  376. they will most efficiently fit.
  377.  
  378.      SHARE
  379.  
  380.      If you have disk partitions larger than 32 MB with DOS 4 or greater and 
  381. are partitioning the disk with FDISK then SHARE.EXE is loaded implicitly by 
  382. DOS.  Optimize will not load it high unless it is explicitly invoked in the 
  383. CONFIG.SYS, for example:
  384.  
  385.      install c:\dos\share.exe
  386.  
  387.  
  388.      NETWORK OPTIMIZATION
  389.  
  390.      If you are OPTIMIZing on a system where the COMSPEC is being changed to a 
  391. network drive then the AUTOEXEC.BAT and CONFIG.SYS in the directory where the 
  392. comspec points will be changed by OPTIMIZE.  If you want the AUTOEXEC.BAT and 
  393. CONFIG.SYS on a local drive to be OPTIMIZEd instead then OPTIMIZE can be 
  394. invoked with the "/B:a" switch (for example:  OPTIMIZE /B:a) where "a" is the 
  395. drive containing the AUTOEXEC.BAT and CONFIG.SYS to be OPTIMIZEd. 
  396.  
  397.  
  398.      SWITCHES
  399.  
  400.      /B:x
  401.      This switch causes OPTIMIZE to modify the CONFIG.SYS and AUTOEXEC.BAT 
  402. files on the "x" drive.
  403.      /L
  404.      This switch causes OPTIMIZE to modify only those lines of the CONFIG.SYS 
  405. and AUTOEXEC.BAT that already have the LOADHI instruction on them (for 
  406. example:  "device=c:\qemm\loadhi.sys /r:2 driver.sys" or "c:\qemm\loadhi /r:1 
  407. c:\mouse\mouse"). This can be used to run OPTIMIZE and leave programs that you 
  408. do not want loaded high untouched.  You can do this by running OPTIMIZE, then 
  409. removing the LOADHI portion ("C:\QEMM\LOADHI /r:?") from the line of the 
  410. program that you do not want loaded high, then running OPTIMIZE /L.
  411.      /PATH
  412.      This switch adds the OPTIMIZE path to each command line so that 
  413. "C:\QEMM\" is not added every time LOADHI is invoked.  This makes these lines 
  414. shorter and may be useful for those with very long lines. 
  415.  
  416.  
  417. SUMMARY
  418.  
  419.      OPTIMIZE is an important feature of QEMM-386, QEMM 50/60, and QRAM.  It 
  420. is unparalleled in loading programs into memory in the most efficient manner.  
  421. Problems running OPTIMIZE are rare and it is worth the user's time to resolve 
  422. them.  Once the problem is solved the user should be able to run OPTIMIZE in 
  423. the future, when he/she changes his/her system's configuration, without 
  424. additional difficulty.
  425.  
  426.   ************************************************************************
  427.   *This technical note may be copied and distributed freely as long as it*
  428.   *is distributed in its entirety and it is not distributed for profit.  *
  429.   *         Copyright (C) 1991-2 by Quarterdeck Office Systems           *
  430.   ************************ E N D   O F   F I L E *************************
  431.