home *** CD-ROM | disk | FTP | other *** search
-
- ================================================================================
- FREELOAD.SYS : Ver. 2.0, Copyright (1992,93) by Philip B. Gardner
- ================================================================================
-
- FREELOAD.SYS is a device driver which will help maximize the use of low
- memory by releasing memory usually reserved in low memory by LOADHI.SYS
- from Quarterdeck Office Systems.
-
- FREELOAD.SYS tracks the high memory device loader operations and if it
- is safe to release the low memory after each device initiates, the low
- memory is released and the driver in upper memory is linked into the DOS
- device chain.
-
- FREELOAD.SYS can be used to save 1-2k in a typical configuration. The
- actual amount of memory saved depends upon on the number and type of
- device drivers loaded high.
-
- Support is provided for:
-
- * fully automatic support of QEMM's LOADHI.SYS and 386MAX's 386LOAD.SYS
- * specifying the name and path of the device loader
- * both character and block devices
- * character drivers which contain an unlimited number of devices
- * DOS Versions 3.1 - 3.31, DOS 4.x, and DOS 5.x (or better?)
-
- ================================================================================
-
- (Requirements)::
-
- * Requires MS-DOS Version 3.10 or better
-
- ================================================================================
-
- (Installation)::
-
- (CONFIG.SYS)::
-
- Installation of FREELOAD.SYS requires modifying the contents of
- your CONFIG.SYS file.
-
- (Generic Configuration)::
-
- This configuration should work and be the most efficient in 95%
- of all configurations. For a few real world examples see
- EXAMPLES.DOC
-
- DOS=HIGH[,UMB] (DOS 5.0 only)
- REM DEVICE=STOPMAX.SYS [options] (Stops kernel from loading in HMA)
- DEVICE=(xms/umb memory manager)
- DEVICE=DOSMAX.EXE [options] (DOSMAX loads high automatically)
- DEVICE=FREELOAD.SYS [-S][other options]
- REM DEVICE=LOADHI.SYS DOSMAX.EXE (or DOSMAX loaded high with loader)
- SHELL=SHELLMAX.COM COMMAND.COM /P
- BUFFERS=20
- FILES=40
- LASTDRIVE=Z
-
- Add a DEVICE= line for FREELOAD.SYS in your config.sys. FREELOAD
- should be loaded immediately after the XMS and UMB memory manager
-
- DEVICE=(Memory Manager)
- DEVICE=FREELOAD.SYS [options]
-
- The default loader pathname is "C:\QEMM\LOADHI.SYS". If FREELOAD
- cannot open this pathname, a message will displayed alerting you
- to "Use /Fpathname to override." An example which uses this switch
- is shown below:
-
- DEVICE=FREELOAD.SYS /F D:\QEMM\LOADHI.SYS
-
- Version 1.8 adds full 386MAX support, so if 386MAX is detected, or
- the /A2 switch is used, then the default loader pathname is changed
- to "C:\386MAX\386LOAD.SYS."
-
- (Tip)::
-
- If you prefer that a particular device driver is not affected by
- the operation of FREELOAD, place the DEVICE= for that device above
- the DEVICE=FREELOAD.SYS entry. This may be necessary in the case
- that a particular driver is not compatible with FREELOAD.
-
- ================================================================================
-
- (Syntax)::
-
- The only thing to remember about syntax for the command line is
- that just about anything works. What this means is that you
- should be able to type in the options on the command line the
- way they make sense to you.
-
- To illustrate this point, the following command line example
- is mutated several different ways.
-
- DEVICE=FREELOAD.SYS /R+ /P+ /FC:\QEMM\LOADHI.SYS
- DEVICE=FREELOAD.SYS -R+ -P+ -F C:\QEMM\LOADHI.SYS
- DEVICE=FREELOAD.SYS R+ P+ F C:\QEMM\LOADHI.SYS
- DEVICE=FREELOAD.SYS R+P+FC:\QEMM\LOADHI.SYS
- DEVICE=FREELOAD.SYS -R+P+FC:\QEMM\LOADHI.SYS
-
- ... and so on. There must be an EOL or space following the
- filename paramter the /Fpathname switch
-
- FREELOAD 1.9 and above adds optional full word syntax. The new
- syntax looks like this:
-
- DEVICE=FREELOAD.SYS /REPORT:- /PAUSE:- /LOADER=C:\QEMM\LOADHI.SYS
- DEVICE=FREELOAD.SYS -REPORT:- -PAUSE:- -LOADER=C:\QEMM\LOADHI.SYS
- DEVICE=FREELOAD.SYS REPORT:- PAUSE:- LOADER=C:\QEMM\LOADHI.SYS
- DEVICE=FREELOAD.SYS REPORT-PAUSE-LOADER=C:\QEMM\LOADHI.SYS
- DEVICE=FREELOAD.SYS -REPORT-PAUSE--LOADER=C:\QEMM\LOADHI.SYS
-
- Obviously when using full words, it is easier to keep the words
- separated so that is clear to read. An optional [:] or [=] may be
- used for switches (i.e. REPORT:+ or LOADER=C:\LOADHI.SYS). These
- optional delimiters are used interchangeably and can also be used
- with the single letter switches. Remember to check your spelling
- because the single letter interface is still intact.
-
- (Switch Options)::
-
- The following list of switch options is organized by:
-
- - Control of FREELOAD Reports (/R:/P:/N:)
- - Override the Default Name and Path of the Loader (/F=)
- - Setting the Memory Strategy (/M=)
- - Overriding Directory Structure Size (/D=)
- - Control the Alternate Memory Manager Method (/A=)
- - Controlling the Shrink Feature (/S:)
- - Response file for FREELOAD (@)
-
- (Control of FREELOAD Reports)::
-
- (REPORT):: R[+ or -] (toggle: default +)
-
- Use /R- or /REPORT:- to disable the report after you are
- satisfied with the configuration of DOSMAX.EXE
-
- (PAUSE):: P[+ or -] (toggle: default +)
-
- Use /P- or /PAUSE:- to disable the pause after the report as
- long as there are no errors or warnings.
-
- (NOPAUSE):: N[+ or -] (toggle: default -)
-
- Use /N+ or /NOPAUSE:+ to never pause after the report, even if
- there are errors. This switch can be used if your configuration
- generates a warning or error message which you choose to ignore.
-
- (Override the Default Name and Path of the Loader)::
-
- (LOADER):: F[pathname] (string= default=C:\QEMM\LOADHI.SYS)
-
- Use /Fpathname or /LOADER=pathname to specify the filename and path
- of the device loader provided with your upper memory manager. For
- example, if this device driver is on drive D:
-
- DEVICE=FREELOAD.SYS /FD:\QEMM\LOADHI.SYS
-
- If FREELOAD cannot find this file, it will not load.
-
- (Setting the Memory Strategy)::
-
- (STRATEGY):: Mn (value: n = 0)
-
- Use /Mn or /STRATEGY=n to control the memory allocation strategy
- which FREELOAD uses to allocate its upper memory block. The default
- strategy is is First Fit (/M0). This means that FREELOAD will use
- the first upper memory block returned by the XMS manager. The other
- options are Best Fit (/M1) and Last Fit (/M2). Best Fit uses the
- block which most closely matches the size needed, and Last Fit uses
- the highest block big enough to handle the request. Values other
- than 0, 1, or 2 are ignored and the previous setting of this option
- is used.
-
- (Overriding Directory Structure Size)::
-
- (CDSSIZE):: Dnn (value: nn = 88)
-
- Use /Dnn or /CDSSIZE=nn to set the Drive Table Size. Values other
- than the MS-DOS 4.0 - 6.0 Drive Table Size of 88 are only allowed if
- the true MS-DOS version is greater than 5.0. The Drive Table Size
- for DOS 3.x is 81. The /Dnn switch is only necessary if FREELOAD
- can't determine the Drive Table Size automatically.
-
- (Control the Alternate Memory Manager Method)::
-
- (ALTMETHOD):: An (value: n = 0)
-
- Use /An to select the method FREELOAD uses to detect and track
- high device loaders. There are 3 possible values. (0), the
- default, means that FREELOAD will automatically select the proper
- method. (1), method 1 is for device loaders compatible with
- LOADHI.SYS from Quarterdeck. (2), method 2 is for device loaders
- compatible with 386LOAD.SYS from Qualitas. This switch is included
- only for debugging purposes.
-
- (Controlling the Shrink Feature)
-
- (SHRINK):: S[+ or -] (toggle: default -)
-
- FREELOAD normally takes approximately 1.4K of high memory. Use /S+
- or /SHRINK:+ to reduce this requirement to 16 bytes just before
- the shell is loaded from CONFIG.SYS. Shrinking may cause problems
- with high memory optimizers, but the switch can be safely used
- after the system is optimized, to free another 1.4K of high memory.
-
- (Response file for FREELOAD)::
-
- Parameters for FREELOAD may be read from a response file by using the
- @pathname syntax:
-
- FREELOAD.SYS @RESPONSE.FIL
-
- Response files may be commented by using a ";","#",or "*" character
- before the comment.
-
- * everything in square brackets "[]" is optional
-
- (CONFIG.SYS Line)::
-
- DEVICE=FREELOAD.SYS [/ or -][R[+]P[+]N[+]S[+]Fpathname]
-
- device mode default: /R-/P-/N-/S-/Mn/FC:\QEMM\LOADHI.SYS
-
- * No Report status messages
- * No Pause after report
- * Pause on errors or warnings
- * Use the First Fit memory allocation strategy
- * Default Loader Pathname = "C:\QEMM\LOADHI.SYS"
-
- ================================================================================
-
- (Report Format)::
-
- FREELOAD.SYS : Ver. 2.0, Copyright (1992) by Philip B. Gardner
- ERROR : (Error Messages)
- WARNING : (Warning Messages)
- ADVICE : (Advisory Messages)
- : (Report Messages)
- : (Allocation Status)
- PAUSE : Press any key to continue...
-
- (Report Note)::
-
- FREELOAD.SYS may be replaced by FREELOAD.OVL. The exact name of the
- module is dependent upon the circumstances under which FREELOAD.SYS
- reports. This detail is important only as diagnostic information.
-
- ================================================================================
-
- (Error Messages)::
-
- MS-DOS version 3.10 or above is required
- XMS manager not installed
- DOS version is not compatible
- Can't load in High Memory
- An 80186 processor or better is required
- Device Loader not found
-
- ================================================================================
-
- (Warning Messages)::
-
- Unknown option in command line
- Unknown option on line #0000
- Extra characters on command line
- Missing or invalid option file XXXXXXXX.XXX
- Line length overflow at line #0000
- Drive Table Size not determined or out of range
-
- ================================================================================
-
- (Advisory Messages)::
-
- Use /Fpathname to override
- Use /Dnn switch to set Drive Table size
-
- ================================================================================
-
- (Report Messages)::
-
- Processing option file XXXXXXXX.XXX
- Effection section is [XXXXXXXX]
- Drive Table Size set to 00h
- [pathname] (/Fpathname parameter if error)
-
- ================================================================================
-
- (Allocation Status)::
-
- FREELOAD moved to 0000
- Not enough Hi Memory for FREELOAD
-
- ================================================================================
-
- (Changes)::
-
- (Version 1.1)::
-
- (1) Fixed problem where character devices were skipped if a
- block device was loaded first
-
- (2) Added support for block devices. This grew the size of
- FREELOAD to 880 bytes so FREELOAD now shrinks to 16 bytes
- when finished. This frees a .8k block of upper memory
- which is not needed after all devices are loaded.
-
- (Version 1.2)::
-
- (1) Added support for character drivers which contain multiple
- devices. There is a requirement for 16 bytes of low
- memory for a multiple device driver, but this 16 bytes
- supports an unlimited number of devices within the driver.
- Without the 16 bytes, DOS believes the initialization of the
- driver has failed and only the first device is linked.
-
- (Version 1.3)::
-
- (1) Fixed problem with failing to build a Drive Parameter Block
- when a multiple device driver ended with a block device.
-
- (2) Changed automatic reduce to a command line option. FREELOAD
- now takes 1K bytes high. If the /S+ (shrink option is used)
- this size is reduced to 16 bytes just before the shell is loaded.
-
- (Version 1.4)::
-
- (1) Improved multiple device failure mode. If a multiple device
- driver has begun the initiate phase and fails, the high device
- is left unlinked, and the loader is left in place with memory
- and the device chain set to the length of the last successful
- initialization. This method more closely emultates DOS.
-
- (2) Added check that resets FREELOAD if the loader doesn't load the
- device in high memory successfully.
-
- (3) Optimized code to reduce memory requirement back to 1K
-
- (Version 1.5)::
-
- (1) Added base 10 display of Drive Table Size message
-
- (Version 1.6)::
-
- (1) Added support for DOS 5 UMB's when moving FREELOAD upto upper
- memory. Some device loaders will work with DOS 5 UMB's, and
- now you can use the loader instead of DEVICEHIGH= if you want.
-
- (2) Added /Mn option, to allow general control of memory allocation
- strategy. First Fit = 0, Best Fit = 1, and Last Fit = 2 were
- implemented for both DOS 5 UMB's, and XMS UMB's.
-
- (3) Added check for a 186 processor or better (allows V20/V30).
-
- (4) Now supporting separate program FREELO86.SYS. This program is
- functionally identical to FREELO86.SYS, but is compiled to work
- on 8086/8088 processors also. The stub left in high memory
- is 16 bytes greater using with this variation.
-
- (Version 1.7)::
-
- (1) Changed common parsing algorithum to add support for Hex-Notation
- input. This input method is not used in FREELOAD at this time.
-
- (2) Fixed case where device fails but the loader tells DOS the device
- was ok. The high memory block is released, but the loader still
- reserves low memory. FREELOAD linked the released driver, but now
- detects the condition, does not complete the link, and releases
- the stub.
-
- (Version 1.8)::
-
- (1) Added automatic support for 386LOAD.SYS from Qualitas. The proper
- method FREELOAD uses is determined automatically, but may be
- overridden with the /An switch. The option adds as much as
- 246 bytes to the pre-shrink size of FREELOAD.
-
- (2) DOS 3.x and 4.x with FREELOAD and 386LOAD was crashing because
- the 386LOAD stub hooked INT 21h, apparently to return a different
- DOS version to the device being loaded. This "feature" is now
- disabled by FREELOAD so that the stub may be freed. DOS 5 (and
- above?) used func 4B05h (set execution state), so the hook checking
- is bypassed. The hook checking is implemented for /A2 only (or
- auto /A0).
-
- (3) If method 2 (/A2 or 386MAX detected with /A0), the default loader
- name is "C:\386MAX\386LOAD.SYS." This makes compatability with
- 386MAX completely transparent to the user in most cases.
-
- (Version 1.9)::
-
- (1) Reorganized code to enable an overlay method of module selection
- to automate processor selection and split up .SYS and .EXE modules
- to reduce the initialization memory to minimum.
-
- (2) FREELOAD now automatically detects the processor type and chooses
- separate code modules if appropriate. The 186 processor require-
- ment of previous versions is no longer applicable.
-
- (3) Added optional full word syntax to argument parser. The old style
- single letter switch interface is still intact. The switch lists
- now show the optional word with the switch.
-
- (Version 2.0)::
-
- (1) Added support for DOS 6.0's changes in the way devices are
- initialized. FREELOAD 1.7 was not compatible with DOS 6.0 or
- DBLSPACE. FREELOAD 2.0 now supports the new version seamlessly.
-
- (2) Added support for loaders which build sub-segments for devices
- in high memory. This caused problems while preparing block
- devices.
-
- (3) Added option response file input with @filename.opt syntax
-
- ================================================================================
-