home *** CD-ROM | disk | FTP | other *** search
- USER DOCUMENTATION FOR POV-Ray FOR MS-DOS USING WATCOM VERSION
-
- 1.0 Introduction
-
- The Watcom compiled version of POV-Ray is designated by either
- ".msdos.wat-cwa" or ".msdos.wat-d4g" after the POV-Ray version number on
- the opening banner. Everything in this document ONLY applies to that
- version. Other versions will operate under different rules. This file is
- NOT the only documentation for POV-Ray. There is a file called
- POVMSDOS.DOC which covers the MSDOS-specific features but that still isn't
- everything. There is a hypertext utility POVHELP.EXE that reads a file
- POVHELP.PHE which contains the main documentation for POV-Ray itself that
- is common to all versions.
-
- This version has been compiled as a 32-bit DOS protected mode application.
- It must be run on a 386 or higher system with at least 4 meg of memory.
- More memory is preferred.
-
- The program uses one of two different DOS extenders to manage memory and
- to create and use virtual memory swap files. The "wat-cwa" version
- uses the CauseWay DOS extender written by Michael Devore & John Wildsmith.
- It is linked directly into the official POV-Ray executible. If you
- are using an official version, this is the extender you will use.
-
- Although the CauseWay authors have graciously donated a copy to the
- POV-Team, CauseWay is still very much a commercial product. We cannot
- include it with the free source code for POV-Ray for you compile-it-yourself
- people. You will have to purchase it directly from the authors.
-
- Alternatly, another DOS extender called DOS4GW is supplied with the
- Watcom compiler. However it is limited to a total of 32meg of memory.
- If your version is designated "wat-d4g" it uses the DOS4GW extender.
- The instructions below explain how CauseWay and DOS4GW use memory. Do
- not try to use CauseWay variables with DOS4GW or vice-versa.
-
- Be sure to read POVMSDOS.DOC and run POVHELP to make sure you have all the
- remaining documentation. This file only applies to the Watcom compiled
- version. Also read POVWHERE.GET for more information on POV-Ray archives
- and support information.
-
- ---------------------------------------------------------------------------
- CAUSEWAY DOS EXTENDER CONFIGURATION
-
- Excerpted from Chapter 1 of the CauseWay DOS Extender User's Manual.
- It is (c) Copyright 1992-1996 by Michael Devore.
- Used by permission.
-
- Postal: Devore Software & Consulting
- PO Box 4283
- Naperville, IL 60567-4283
- USA
- CompuServe: 71540,62
- Internet: 71540.62@compuserve.com
- Telephone: 1-708-717-6369
- Fax: 1-708-717-6373
- BBS: 1-708-717-9679
-
- Note: The 708 area code changes to 630 in August of 1996.
-
-
- INTRODUCTION
-
- What is CauseWay for Watcom C++ and Assembly Language?
- CauseWay is a 386 DOS extender package for use with Watcom C++ and
- assembly language programs. It consists of a DOS extender, provided as
- a stub EXE for Watcom C++ applications.
-
- Within the standard DOS, and Windows and OS/2 DOS box
- environments, CauseWay supports very large memory models for
- applications on PC compatibles with an 80386SX processor or above
- without the need to use overlays or crude stopgap measures such as
- EMS/XMS swapping. To do this, the DOS extender runs applications in
- protected mode, rather than the real mode normally used in the DOS
- environments. CauseWay supports both 16-bit and 32-bit protected mode
- applications operating under a DOS environment. It makes full use of
- 386-level chip capabilities including demand paging of code and data,
- variable-sized segments up to 4G in length, mixing 16- and 32-bit
- segments as well as support for flat (non-segmented) memory addressing
- models. The CauseWay implementation of these powerful capabilities
- provides all their benefits while being transparent to the application user.
-
- Applications created using CauseWay are compatible with the VCPI and
- DPMI standards and run equally well on systems with no protected mode
- drivers or programs. CauseWay applications work with such diverse
- environments as normal DOS, DesqView, Windows 3.0 and above in
- both standard and enhanced modes, as well as DOS windows within OS/2
- 2.0 and above. CauseWay allocates memory from DPMI, VCPI, XMS,
- and INT 15H services, in addition to conventional DOS memory. This
- allows CauseWay applications to allocate memory through the CauseWay
- DOS extender without the need to detect or manipulate the various
- memory handling schemes.
-
- MINIMUM SYSTEM REQUIREMENTS
-
- CauseWay for Watcom C++ and Assembly Language requires a 386SX
- based computer or better. The required operating environment is MS-
- DOS or PC-DOS 3.1 or higher, Windows 3.0 or higher, OS/2 2.0 and
- above, or compatible operating system that provides a DPMI or VCPI
- DOS environment.
-
- DOS 3.3+ and a 386 machine or better are necessary to run CauseWay
- applications.
-
- CAUSEWAY MEMORY REQUIREMENTS
-
- The recommended minimum amount of total free physical memory for
- CauseWay applications is 500K total. 100-150K of this memory must be
- conventional DOS memory, the remainder may be extended memory.
- CauseWay applications can run in less memory, down to the 300K range,
- provided sufficient virtual (disk-based) memory is available, but
- application performance will decline significantly. More physical
- memory improves a program's performance, reducing virtual memory
- disk access overhead.
-
- When running the DOS-extended application, DOS first loads the
- CauseWay DOS extender in conventional memory. CauseWay
- establishes the protected mode environment, retrieves the application from
- the executable file - loading it first into extended memory, then
- conventional memory if extended is exhausted, then virtual (disk-based)
- memory if conventional is exhausted - sets up the application for
- execution, and finally passes control to the application to begin operation.
-
- No additional files are required to make your application run in 386
- protected mode using the CauseWay DOS extender.
-
- OPERATIONAL CONSIDERATIONS WHEN USING CAUSEWAY
-
- The TEMP, TMP, and CAUSEWAY=SWAP environment variables are
- used by CauseWay to determine where to build its virtual memory swap
- file when an application is not operating under Windows or OS/2
- (Windows and OS/2 use their own virtual memory files). Since
- CauseWay has integrated virtual memory, disk space is considered part of
- total memory. If you use the TEMP, TMP, or SWAP environment
- variable to point to a small RAM disk or almost full disk, free memory
- will be affected accordingly. If virtual (disk-based) memory is less than
- physical (installed on machine) memory, Cause Way turns off virtual
- memory. On the other hand, if you have a disk 300M free, CauseWay
- will have no problem reporting 300M free memory to your program,
- provided that virtual memory is not inhibited or limited by the
- CAUSEWAY environment variable memory settings.
-
- Memory operates differently under Windows and OS/2. With OS/2, the
- DPMI setting for the session determines available memory. With
- Windows, available memory is the total of physical memory plus the
- swap file size less any memory already in use by Windows or another
- Windows application.
-
- When creating a VMM swap file at application startup under DOS,
- CauseWay builds a list of possible paths in order of priority. CauseWay
- then works through the list until one of the entries provides both a valid
- drive and path specification and sufficient free space to begin operation.
- The first entry to succeed becomes the swap file drive with no further
- processing of the list. If CauseWay reaches the end of the list without
- finding a valid drive, it disables the virtual memory manager. The order
- of priority is: CAUSEWAY=SWAP, TEMP, TMP, and application
- execution path.
-
- If endusers reboot the system or turn off power while executing a
- CauseWay application under DOS, a temporary file will be left on the
- system by CauseWay. This will usually be a zero length file unless the
- application was large enough to exceed physical memory and CauseWay
- had started using its virtual memory manager. The temporary file name
- is requested using standard DOS functions, meaning the name will vary
- with different versions of DOS. It typically is a mixture of letters and
- numbers with no extension, although a .$$$ extension may be presented
- when operating under a network. Make sure you do not delete this
- temporary file while the CauseWay application is still active, as improper
- or erratic program operation, including lockups, may occur.
-
- Application startup times may increase significantly if free physical
- memory is less than the executable size. In such cases, not only must the
- executable be loaded into physical memory, but a virtual memory file of
- the executable file size must also be built. This file holds the portions of
- the executable that do not fit into physical memory and which have not
- been recently accessed. After startup is complete, the program will
- operate normally, paging to and from virtual memory as necessary.
-
- CauseWay automatically sets aside 32K of low DOS memory for
- allocation and use by developer routines via the GetMemDOS API
- function. The 32K memory block is available even if CauseWay needs to
- use virtual memory just to load an application. The set-aside amount can
- be increased by using the CAUSEWAY environment variable LOWMEM
- option although the additional set-aside goal is not guaranteed to be
- reached if too little conventional memory is left for CauseWay's
- operating requirements.
-
- ENVIRONMENT VARIABLES
-
- CauseWay can make use of three environment variables at runtime:
- TEMP, TMP, and CAUSEWAY.
-
- TEMP and TMP Environment Variables
-
- The TEMP and TMP environment variables specify the directory and
- drive where a swap file is built by CauseWay's virtual memory manager
- (VMM) when operating under DOS. Windows and OS/2 provide their
- own memory management functions which override CauseWay's use of
- the TEMP and TMP environment variables. The path indicated by
- TEMP will be used under DOS if both TEMP and TMP environment
- variables exist. Both settings are superseded by the
- CAUSEWAY=SWAP environment variable setting.
-
- SET TMP=C:\SWAP
-
- The example above directs the CauseWay DOS extender to create its
- swap file, if any, in the C:\SWAP directory.
-
- If no TEMP, TMP and CAUSEWAY=SWAP settings are present or are
- invalid, the current drive is used when creating a swap file. If free drive
- space is less than physical memory (extended and conventional) available
- at startup, then the DOS extender VMM is disabled, no swap file is
- created, and virtual memory is not available to the application.
-
- CAUSEWAY Environment Variable
-
- The CAUSEWAY environment variable controls operation of the DOS
- extender at application runtime. Seven options are supported, although
- they are ignored in a Window or OS/2 DPMI environment. Use any
- combination of the seven options in the following format:
-
- SET CAUSEWAY=[setting_1;] [setting 2;] [setting_n;]
-
- Items in brackets ([ ]) are optional. Do not actually type the brackets if
- you use the optional items. Items in italics should be replaced with actual
- values, separated by semicolons. Following is a description of the seven
- valid settings:
-
- DPMI Force DPMI rather than default VCPI usage whenever
- possible (recommended for 386^Max and BlueMax
- users). The memory manager must support DPMI or
- else this setting is ignored.
-
- EXTALL Force CauseWay to use all extended memory and sub-
- allocate memory from the bottom up instead of the
- default top-down approach. This setting is most useful
- for processor intensive enviromnents which have a
- small hardware CPU cache. Use of this setting means
- that no extended memory will be available for other
- programs while the application is loaded (including
- shelling to DOS).
-
- HIMEM:nnn Set maximum physical (conventional plus extended)
- memory that can be consumed by CauseWay. "nnn" is
- the decimal number of kilobytes that can be consumed.
- If memory allocation requests exceed this figure,
- CauseWay will use virtual memory, even if additional
- physical memory is present. If the HIMEM memory
- value exceeds available physical memory, then memory
- allocations operate normally. For example,
- HIMEM:2048 on a 4M machine would force virtual
- memory use after 2M of memory allocations (including
- loading the executable file). The remaining 2M of
- memory could be used by other applications while the
- CauseWay application is active.
-
- LOWMEM:nnn Set DOS (conventional) memory to restrict it from use
- by CauseWay. This memory is in addition to the
- default 32K low DOS memory block reserved by
- CauseWay for use by any applications which need to
- allocate DOS memory. nnn is the decimal number of
- kilobytes to reserve. If there is not enough
- conventional memory to satisfy the nnn request value
- then CauseWay will leave all conventional memory
- free that is not required by the extender to operate.
- Note that tnis option does not guarantee the amount of
- free DOS memory, just how much needs to be free
- before CauseWay will consume DOS memory after
- exhausting all extended memory. For example,
- LOWMEM:200 will attempt to reserve 200K of DOS
- memory, even if CauseWay has exhausted all extended
- memory and is using conventional memory to fill
- memory allocation requests.
-
- MAXMEM:nnn Set maximum linear address space provided by
- CauseWay. nnn is the decimal number of megabytes of
- linear address space. This setting is similar to HIMEM
- except that it includes any virtual memory. For
- example, MAXMEM:32 on a 16M memory system
- restricts VMM disk space usage to 32M, even if more
- disk space is present. MAXMEM:8 on the same
- system would restrict the application to 8M of memory
- (all physical). Note that the setting is in megabytes,
- rather than kilobytes used in the LOWMEM and
- HIMEM options.
-
- NOVM Disable all virtual memory use by CauseWay. If
- physical memory is exhausted, CauseWay will fail
- further memory allocation requests.
-
- SWAP:path Set CauseWay's virtual memory manager swap file
- path. This path takes precedence for choosing the
- location of a swap file over the TEMP and TMP
- environment variables.
-
- ---------------------------------------------------------------------------
- This concludes the information on the CauseWay DOS Extender which is
- linked into the official POV-Ray executible. The information below
- applies ONLY if you have compiled the program yourself using the Watcom
- compiler and the DOS4GW extender.
-
- ---------------------------------------------------------------------------
- ---------------------------------------------------------------------------
- DOS/4GW Configuration Guide
-
- WATCOM International Corporation
-
- Waterloo, Ontario, Canada
-
- This chapter explains how to use the DOS4G environment variable to
- suppress the banner that is displayed by DOS/4GW at startup. It also
- explains how to use the DOS16M environment variable to select the switch
- mode setting, if necessary, and to specify the range of extended memory in
- which DOS/4GW will operate. DOS/4GW is based on Rational Systems' DOS/16M
- 16-bit Protected-Mode support; hence the DOS16M environment variable name
- remains unchanged.
-
- 1.1 Suppressing the DOS/4GW Banner
-
- The banner that is displayed by DOS/4GW at startup can be suppressed by
- issuing the following command:
-
- set DOS4G=quiet
-
- Do not insert a space between DOS4G and the equal sign. A space to the
- right of the equal sign is optional.
-
- 1.2 Changing the Switch Mode Setting
-
- In almost all cases, DOS/4GW programs can detect the type of machine that
- is running and automatically choose an appropriate real- to protected-mode
- switch technique. For the few cases in which this default setting does
- not work we provide the DOS16M DOS environment variable, which overrides
- the default setting.
-
- Change the switch mode settings by issuing the following command:
-
- set DOS16M=value
-
- Do not insert a space between DOS16M and the equal sign. A space to the
- right of the equal sign is optional.
-
- The table below lists the machines and the settings you would use with
- them. Many settings have mnemonics, listed in the column "Alternate
- Name", that you can use instead of the number. Settings that you must set
- with the DOS16M variable have the notation req'd in the first column.
- Settings you may use are marked option, and settings that will
- automatically be set are marked auto.
-
- +------+---------------+-------+---------+-----------------------------------+
- | | | |Alternate| |
- |Status|Machine |Setting|Name |Comment |
- +------+---------------+-------+---------+-----------------------------------+
- |auto |386/486 w/ DPMI|0 |None |Set automatically if DPMI is active|
- |req'd |NEC 98-series |1 |9801 |Must be set for NEC 98-series |
- |auto |PS/2 |2 |None |Set automatically for PS/2 |
- |auto |386/486 |3 |386,80386|Set automatically for 386 or 486 |
- |auto |386 |INBOARD|None |386 with Intel Inboard |
- |req'd |Fujitsu FMR-70 |5 |None |Must be set for Fujitsu FMR-70 |
- |auto |386/486 w/ VCPI|11 |None |Set automatically if VCPI detected |
- |req'd |Hitachi B32 |14 |None |Must be set for Hitachi B32 |
- |req'd |OKI if800 |15 |None |Must be set for OKI if800 |
- |option|IBM PS/55 |16 |None |May be needed for some PS/55s |
- +------+---------------+-------+---------+-----------------------------------+
-
- The following procedure shows you how to test the switch mode setting.
-
- 1. If you have one of the machines listed below, set the DOS16M
- environment variable to the value shown for that machine and specify a
- range of extended memory. For example, if your machine is an NEC
- 98-series, set DOS16M=1 @2M-4M. See the section, "Fine Control of
- Memory Usage" later in this chapter for more information about setting
- the memory range.
-
- +--------------------+---------+
- | Machine | Setting |
- +--------------------+---------+
- | NEC 98-series | 1 |
- | Fujitsu FMR-60,-70 | 5 |
- | Hitachi B32 | 14 |
- | OKI if800 | 15 |
- +--------------------+---------+
-
- Before running DOS/4GW applications, check the switch mode setting by
- following this procedure:
-
- 2. Run PMINFO and note the switch setting reported on the last line of
- the display. (PMINFO, which reports on the protected-mode resources
- available to your programs, is described in more detail in the
- chapter, "Utilities".)
-
- If PMINFO runs, the setting is usable on your machine.
-
- 3. If you changed the switch setting, add the new setting to your
- AUTOEXEC.BAT file.
-
- Note: PMINFO will run successfully on 286 machines. If your DOS/4GW
- application does not run, and PMINFO does, check the CPU type reported on
- the first line of the display.
-
- You are authorized (and encouraged) to distribute PMINFO to your
- customers. You may also include a copy of this section in your
- documentation.
-
- 1.3 Fine Control of Memory Usage
-
- In addition to setting the switch mode as described above, the DOS16M
- environment variable enables you to specify which portion of extended
- memory DOS/4GW will use. The variable also allows you to instruct DOS/4GW
- to search for extra memory and use it if it is present.
-
- 1.3.1 Specifying a Range of Extended Memory
-
- Normally, you don't need to specify a range of memory with the DOS16M
- variable. You must use the variable, however, in the following cases:
-
- * You are running on a Fujitsu FMR-series, NEC 98-series, OKI
- if800-series or Hitachi B-series machine.
-
- * You have older programs that use extended memory but don't follow one
- of the standard disciplines.
-
- * You want to shell out of DOS/4GW to use another program that requires
- extended memory.
-
- If none of these conditions applies to you, you can skip this section.
-
- The general syntax is:
-
- set DOS16M= [switch_mode] [@start_address [- end_address]] [:size]
-
- In the syntax shown above, start_address, end_address and size represent
- numbers, expressed in decimal or in hexadecimal (hex requires a 0x
- prefix). The number may end with a K to indicate an address or size in
- kilobytes, or an M to indicate megabytes. If no suffix is given, the
- address or size is assumed to be in kilobytes. If both a size and a range
- are specified, the more restrictive interpretation is used.
-
- The most flexible strategy is to specify only a size. However, if you are
- running with other software that does not follow a convention for
- indicating its use of extended memory, and these other programs start
- before DOS/4GW, you will need to calculate the range of memory used by the
- other programs and specify a range for DOS/4GW programs to use.
-
- DOS/4GW ignores specifications (or parts of specifications) that conflict
- with other information about extended memory use. Below are some examples
- of memory usage control:
-
- set DOS16M= 1 @2m-4m Mode 1, for NEC 98-series machines, and use
- extended memory between 2.0 and 4.0MB.
-
- set DOS16M= :1M Use the last full megabyte of extended memory, or
- as much as available limited to 1MB.
-
- set DOS16M= @2m Use any extended memory available above 2MB.
-
- set DOS16M= @ 0 - 5m Use any available extended memory from 0.0 (really
- 1.0) to 5.0MB.
-
- set DOS16M= :0 Use no extended memory.
-
- As a default condition DOS/4GW applications take all extended memory that
- is not otherwise in use. Multiple DOS/4GW programs that execute
- simultaneously will share the reserved range of extended memory. Any
- non-DOS/4GW programs started while DOS/4GW programs are executing will
- find that extended memory above the start of the DOS/4GW range is
- unavailable, so they may not be able to run. This is very safe. There
- will be a conflict only if the other program does not check the BIOS
- configuration call (Interrupt 15H function 88H, get extended memory size).
-
- To create a private pool of extended memory for your DOS/4GW application,
- use the PRIVATXM program, described in the chapter, "Utilities".
-
- The default memory allocation strategy is to use extended memory if
- available, and overflow into DOS (low) memory.
-
- In a VCPI or DPMI environment, the start_address and end_address arguments
- are not meaningful. DOS/4GW memory under these protocols is not allocated
- according to specific addresses because VCPI and DPMI automatically
- prevent address conflicts between extended memory programs. You can
- specify a size for memory managed by VCPI or DPMI, but DOS/4GW will not
- necessarily allocate this memory from the highest available extended
- memory address, as it does for memory managed under other protocols.
-
- 1.3.2 Using Extra Memory
-
- Some machines contain extra non-extended, non-conventional memory just
- below 16MB. When DOS/4GW runs on a Compaq 386, it automatically uses this
- memory because the memory is allocated according to a certain protocol,
- which DOS/4GW follows. Other machines have no protocol for allocating
- this memory. To use the extra memory that may exist on these machines,
- set DOS16M with the + option.
-
- set DOS16M=+
-
- Setting the + option causes DOS/4GW to search for memory in the range from
- FA0000 to FFFFFF and determine whether the memory is usable. DOS/4GW does
- this by writing into the extra memory and reading what it has written. In
- some cases, this memory is mapped for DOS or BIOS usage, or for other
- system uses. If DOS/4GW finds extra memory that is mapped this way, and
- is not marked read-only, it will write into that memory. This will cause
- a crash, but won't have any other effect on your system.
-
- 1.4 Setting Runtime Options
-
- The DOS16M environment variable sets certain runtime options for all
- DOS/4GW programs running on the same system.
-
- To set the environment variable, the syntax is:
-
- set DOS16M=[switch_mode_setting]^options.
-
- Note: Some command line editing TSRs, such as CED, use the caret (^) as a
- delimiter. If you want to set DOS16M using the syntax above while one of
- these TSRs is resident, modify the TSR to use a different delimiter.
-
- These are the options:
-
- 0x01 check A20 line -- This option forces DOS/4GW to wait until the
- A20 line is enabled before switching to protected mode. When
- DOS/4GW switches to real mode, this option suspends your
- program's execution until the A20 line is disabled, unless an
- XMS manager (such as HIMEM.SYS) is active. If an XMS manager
- is running, your program's execution is suspended until the A20
- line is restored to the state it had when the CPU was last in
- real mode. Specify this option if you have a machine that runs
- DOS/4GW but is not truly AT-compatible. For more information
- on the A20 line, see the section, "Controlling Address Line
- A20" in this chapter.
-
- 0x02 prevent initialization of VCPI -- By default, DOS/4GW searches
- for a VCPI server and, if one is present, forces it on. This
- option is useful if your application does not use EMS
- explicitly, is not a resident program, and may be used with
- 386-based EMS simulator software.
-
- 0x04 directly pass down keyboard status calls -- When this option is
- set, status requests are passed down immediately and
- unconditionally. When disabled, pass-downs are limited so the
- 8042 auxiliary processor does not become overloaded by keyboard
- polling loops.
-
- 0x10 restore only changed interrupts -- Normally, when a DOS/4GW
- program terminates, all interrupts are restored to the values
- they had at the time of program startup. When you use this
- option, only the interrupts changed by the DOS/4GW program are
- restored.
-
- 0x20 set new memory to 00 -- When DOS/4GW allocates a new segment or
- increases the size of a segment, the memory is zeroed. This
- can help you find bugs having to do with uninitialized memory.
- You can also use it to provide a consistent working environment
- regardless of what programs were run earlier. This option only
- affects segment allocations or expansions that are made through
- the DOS/4GW kernel (with DOS function 48H or 4AH). This option
- does not affect memory allocated with a compiler's malloc
- function.
-
- 0x40 set new memory to FF -- When DOS/4GW allocates a new segment or
- increases the size of a segment, the memory is set to 0xFF
- bytes. This is helpful in making reproducible cases of bugs
- caused by using uninitialized memory. This option only affects
- segment allocations or expansions that are made through the
- DOS/4GW kernel (with DOS function 48H or 4AH). This option
- does not affect memory allocated with a compiler's malloc
- function.
-
- 0x80 new selector rotation -- When DOS/4GW allocates a new selector,
- it usually looks for the first available (unused) selector in
- numerical order starting with the highest selector used when
- the program was loaded. When this option is set, the new
- selector search begins after the last selector that was
- allocated. This causes new selectors to rotate through the
- range. Use this option to find references to stale selectors,
- i.e., segments that have been cancelled or freed.
-
- 1.5 Controlling Address Line 20
-
- This section explains how DOS/4GW uses address line 20 (A20) and describes
- the related DOS16M environment variable settings. It is unlikely that you
- will need to use these settings.
-
- Because the 8086 and 8088 chips have a 20-bit address spaces, their
- highest addressable memory location is one byte below 1MB. If you specify
- an address at 1MB or over, which would require a twenty-first bit to set,
- the address wraps back to zero. Some parts of DOS depend on this wrap, so
- on the 286 and 386, the twenty-first address bit is disabled. To address
- extended memory, DOS/4GW enables the twenty-first address bit (the A20
- line). The A20 line must be enabled for the CPU to run in protected mode,
- but it may be either enabled or disabled in real mode.
-
- By default, when DOS/4GW returns to real mode, it disables the A20 line.
- Some software depends on the line being enabled. DOS/4GW recognizes the
- most common software in this class, the XMS managers (such as HIMEM.SYS),
- and enables the A20 line when it returns to real mode if an XMS manager is
- present. For other software that requires the A20 line to be enabled, use
- the A20 option. The A20 option makes DOS/4GW restore the A20 line to the
- setting it had when DOS/4GW switched to protected mode. Set the
- environment variable as follows:
-
- set DOS16M= A20
-
- To specify more than one option on the command line, separate the options
- with spaces.
-
- The DOS16M variable also lets you to specify the length of the delay
- between a DOS/4GW instruction to change the status of the A20 line and the
- next DOS/4GW operation. By default, this delay is 1 loop instruction when
- DOS/4GW is running on a 386 machine. In some cases, you may need to
- specify a longer delay for a machine that will run DOS/4GW but is not
- truly AT-compatible. To change the delay, set DOS16M to the desired
- number of loop instructions, preceded by a comma:
-
- set DOS16M=,loops
-
- 2.0 VMM
-
- The Virtual Memory Manager (VMM) uses a swap file on disk to augment RAM.
- With VMM you can use more memory than your machine actually has. When RAM
- is not sufficient, part of your program is swapped out to the disk file
- until it is needed again. The combination of the swap file and available
- RAM is the virtual memory.
-
- Your program can use VMM if you set the DOS environment variable, DOS4GVM,
- as follows. To set the DOS4GVM environment variable, use the format shown
- below.
-
- set DOS4GVM= [option[#value]] [option[#value]]
-
- A "#" is used with options that take values since the DOS command shell
- will not accept "=".
-
- If you set DOS4GVM equal to 1, the default parameters are used for all
- options.
-
- Example:
- C>set DOS4GVM=1
-
- 2.1 VMM Default Parameters
-
- VMM parameters control the options listed below.
-
- MINMEM The minimum amount of RAM managed by VMM. The default is
- 512KB.
-
- MAXMEM The maximum amount of RAM managed by VMM. The default is 4MB.
-
- SWAPMIN The minimum or initial size of the swap file. If this option
- is not used, the size of the swap file is based on VIRTUALSIZE
- (see below).
-
- SWAPINC The size by which the swap file grows.
-
- SWAPNAME The swap file name. The default name is "DOS4GVM.SWP". By
- default the file is in the root directory of the current
- drive. Specify the complete path name if you want to keep the
- swap file somewhere else.
-
- DELETESWAP Whether the swap file is deleted when your program exits. By
- default the file is not deleted. Program startup is quicker
- if the file is not deleted.
-
- VIRTUALSIZE The size of the virtual memory space. The default is 16MB.
-
- 2.2 Changing the Defaults
-
- You can change the defaults in two ways.
-
- 1. Specify different parameter values as arguments to the DOS4GVM
- environment variable, as shown in the example below.
-
- set DOS4GVM=deleteswap maxmem#8192
-
- 2. Create a configuration file with the filetype extension ".VMC", and
- call that as an argument to the DOS4GVM environment variable, as shown
- below.
-
- set DOS4GVM=@NEW4G.VMC
-
- 2.2.1 The .VMC File
-
- A ".VMC" file contains VMM parameters and settings as shown in the example
- below. Comments are permitted. Comments on lines by themselves are
- preceded by an exclamation point (!). Comments that follow option
- settings are preceded by white space. Do not insert blank lines:
- processing stops at the first blank line.
-
- !Sample .VMC file
- !This file shows the default parameter values.
- minmem = 512 At least 512K bytes of RAM is required.
- maxmem = 4096 Uses no more than 4MB of RAM
- virtualsize = 16384 Swap file plus allocated memory is 16MB
- !To delete the swap file automatically when the program exits, add
- !deleteswap
- !To store the swap file in a directory called SWAPFILE, add
- !swapname = c:\swapfile\dos4gvm.swp
-
-