    This section addresses some of the most commonly asked questions about
 POV-Ray and the way it works.  It applies only to compiles of POV-Ray done
 with Intels 'Code Builder Kit' (ICB) 32bit extended DOS compiler.  It also
 includes some hints on maximizing rendering speed toward the end of the
 file.

    This section also gives a real quick overview of the POV-Ray operating
 environment.  It does not fully describe the options & capabilities of the
 80386+ processors as that would take volumes.  It is instead meant to be a
 simple FYI type overview for those that may be interested.

    Intel's 'Code Builder Kit' creates 32-bit protected mode programs that
 take advantage of the enhanced memory management of the 80386+ processors.
 These processors have 3 main modes of operation generally known as the
 'real', 'virtual 86' and '386 protected' modes.

    The 'real' mode of operation is what most people are familiar with.  In
 this mode the CPU 'emulates' an 8086/8088 based machine.  The 8086 is capa-
 ble of addressing 1 meg of memory, to maintain compatibility this limit is
 also imposed on the '386/'486 processors when running in this mode.  This is
 the mode that MS-DOS, and the overwhelming majority of IBM PC based applica-
 tions, operate in.  The area generally known as 'conventional memory' is the
 first 640K of this memory block with the second 384K being used for the
 built in BIOS ROMS, I/O buffers (such as video) and things like EMS page
 frame addresses.  That is all the memory the 8086/8088 processors are capa-
 ble of directly manipulating.  Basically a 386/486 running in real mode is
 nothing more than a fast 8086 based machine.  In actual operation the 386/
 486 CPU's *are* capable of using an additional 64K of memory beyond what the
 8086 is capable of.  This is what 386/486 memory managers are referring to
 at boot time with messages such as '64K high memory area available'.  All
 the memory in the machine must be dealt with in 'chunks' (called segments)
 no larger than 64K in this mode.

    The 'virtual 86' mode is what programs such as Windows run MS-DOS pro-
 grams in.  Basically the CPU sets up 'virtual' machines that all run inde-
 pendently but retain the limits imposed by running in real mode.  In this
 mode several programs can be run 'at the same time' with all of them think-
 ing they are running, by them selves, on an 8086 based machine.  The advan-
 tage of this mode is that each of the virtual machines may be separated, to
 some extent, in hardware (thru the 386+ processors memory management) and is
 thus less subject to problems between applications.

    The '386 protected mode' is quite different from both of these modes,
 bearing more similarity to CPU's like the Motorola 680x0 series used in the
 Macintosh.  This is the mode that POV-Ray spends most of it's time running
 in.  The mode offers the ability to load applications in separate areas of
 memory and logically remap that memory to any address in the machine.  Mem-
 ory available in this mode can be configured as a linear address space of 4
 GigaBytes.  (From 0 to 2^32-1 addresses, also called the 'flat memory mo-
 del'.)  This memory may be allocated and dealt with at any size, the DOS 64K
 segment is gone as is the DOS '640K limit'.  4,294,967,294 bytes of RAM are
 theoretically available to POV-Ray in this mode, of course machine and com-
 piler limitations dictate what is 'really' available.  Given a machine with
 sufficient resources POV-Ray can directly use 64 megabytes of physical RAM
 and (thru the Virtual Memory Manager) additional disk space to total 3.75
 Gigabytes of virtual memory.  POV-Ray has the ability to use 3.75 GIGABYTES
 of memory.  Intels Code Builder (ICB) reserves the first megabyte of 'real
 mode' memory in the machine for a 'scratch pad' area and for communication
 with the machines built in BIOS and DOS since THEY are 16-bit 'programs'.
 'Freeing up conventional RAM' has no meaning in this context, POV-Ray does
 not use the area for much.  The POVRAY.EXE file actually contains 5 'pro-
 grams'.  A Loader/DOS extender (used to add 32-bit functions to MS-DOS since
 MS-DOS is a 16-bit operating system), a Virtual Memory Manager, a protected
 mode 80387 emulator to provide floating point math operations in a machine
 with no coprocessor installed, and the POV-Ray program itself.  When POVRAY
 .EXE is invoked the 'loader' is loaded by DOS & executed, it in turn loads
 the DOS extender which checks for the presence of a DPMI *HOST* memory mana-
 ger.  (Common DPMI hosts are Windows, OS/2 2.x  in a DOS VDM, and Quarter-
 decks QEMM with their QDPMI add on installed.  386MAX is also supposed to
 provide it but I have not verified it's operation.)

    This is where it gets complicated.  IF an existing DPMI host/memory mana-
 ger (say Windows) is found to be already running the DOS extender USES IT
 for ALL memory requests AND virtual memory management.  Windows IT'S SELF
 provides POV-Ray with all it's memory management and the configuration of
 WINDOWS imposes the limits on what the program can use.  (How much extended
 memory is allocated to the application, the size that the Windows swap file
 is, and can go to, etc...) If a DPMI host is found to be in operation POV-
 Ray (ICB) will 'gut' it's own virtual memory manager (since it's not used in
 this case) to conserve RAM.

    If NO DPMI host is found then the DOS Extender in POV-Ray will provide
 the memory management for the program.  (It is NOT, however, a DPMI host).
 The parameters the program will expect to be able to use are set with the
 POVMOD program.  (Windows, OS/2 and QEMM/QDPMI must be configured to provide
 at least these parameters for POV-Ray to run.  It's very important that the
 program providing the DPMI host services be configured to provide what POV-
 Ray ASKS for (which is in turn what is set with POVMOD) or the program will
 error with an insufficient memory message.)

    The loader/extender then checks to see if a coprocessor is installed in
 the machine.  IF NONE IS FOUND the 80387 emulator is loaded.  If a coproces-
 sor is detected the emulator is NOT loaded to conserve RAM.

    NOTE: The emulator will not work correctly in a DOS VDM under OS/2 2.x,
 the machine MUST have a coprocessor installed for the program to function
 well.  Under Windows 3.x the VEMD.386 driver MUST be installed to run the
 program on a machine with no coprocessor.

    At this point the actual execution of POV-Ray begins.
