


                                PHARLAP.TXT

                   Phar Lap(R) 386|DOS-Extender(TM) Issues
                        for AutoCAD(R) 386 Release 12

                               June 19, 1992



    TABLE OF CONTENTS
    =================

    1.0 ABOUT THE Phar Lap 386|DOS-Extender
    2.0 386|Dos-Extender SWITCHES
    3.0 386|Dos-Extender COMPATIBILITY
        3.1 Direct Extended Memory Allocation
        3.2 Address Line 20 Enabling
        3.3 RAM Disks and Disk Cache Programs
    4.0 PERFORMANCE: USING A DISK CACHE
    5.0 386/387 PAGING ERRATA WORKAROUND
    6.0 COMPILER SUPPORT
        6.1 The Real-Mode ADS Interface
    7.0 ASSEMBLING MODULES WITH Phar Lap 386|ASM
    8.0 REBOOTING AND THE VIRTUAL MEMORY MANAGER SWAP FILE
    9.0 DEBUGGING WITH Phar Lap 386|DEBUG



    1.0 ABOUT THE Phar Lap 386|DOS-Extender
    =======================================

    The 4.1 version of 386|DOS-Extender(TM) is bound into
    AutoCAD(R) 386. This version differs from the 4.0 version primarily
    in its support of AutoCAD 386 under Windows(TM). The Windows device
    driver pharlap.386, provided with 4.1, extends the DOS Protected-
    Mode Interface (DPMI) server in Windows so that AutoCAD can run as a
    full-screen DOS application in a Windows "DOS box."

    IMPORTANT: AutoCAD 386 uses a special version of the DOS-Extender,
    called 4.1-ACAD. If you are using the Phar Lap 4.1 tools you should
    apply a patch to them so they work correctly with AutoCAD. At
    present, you can obtain this patch from Phar Lap. In the future, the
    patch might become available through the ADESK forum on the
    CompuServe(R) network: check this forum for more current
    information.

    If you have version 4.0 of the 386|DOS-Extender, you can get a free
    upgrade to 4.1. The upgrade includes diskettes, a new DPMI guide,
    and some release notes. If you have version 3.0 or an earlier
    version, you must pay a nominal fee to get version 4.1.

    An AutoCAD developer who has the Phar Lap(R) 2.2d development tools
    (used for R11 development) can upgrade to version 4.1 for $150 for
    the Software Developer's Kit (SDK) only, and an additional $25 for
    the Virtual Memory Manager (VMM). This upgrade includes a complete
    set of new documentation for the 4.0 version, plus the changes for
    version 4.1.

    If you want an upgrade to version 4.1, contact the Phar Lap sales
    department directly.


    2.0 386|DOS-Extender SWITCHES
    =============================

    The default DOS-Extender switches in AutoCAD 386 Release 12 are:

        -MINSWFSIZE 400000       Minimum swap file size of 400,000

        -SWAPDEFDISK             Use current default disk drive for swap
                                 file

        -SWAPCHK off             Disable swap space checking (uses
                                 out-of-swap-space handler)

        -DEMANDLOAD              Page in as needed

        -VSCAN 20000             Selects the page table scan frequency
                                 (millisecs)

    If you want to change or add switches, use the utility cfig386. For
    example:

        cfig386 acad -newswitch -anotherswitch -etc

    To start fresh, use the -CLEAR switch. For instance, if you want to
    restore AutoCAD 386 back to its original state, use the following
    command:

        cfig386 acad -clear -minswfsize 400000 -swapdefdisk -swapchk off
            -demandload -vscan 20000

    NOTE: You must enter the cfig386 instructions on a single command
    line.

    Note that the -UNPRIV switch is linked into AutoCAD so that AutoCAD
    386 runs in unprivileged mode. This allow it to run under Windows.
    Using the -CLEAR switch will not disable the -UNPRIV switch, but
    you can use cfig386 to change -UNPRIV to -PRIV.

    Following is a list of switches for 386|DOS-Extender 4.1 that may be
    of interest to you. Some switches take a number as an argument. By
    default, the number is considered to be decimal (base 10). To
    specify hexadecimal (base 16) numbers, append the character "h" or
    "H" to the number.

        -MAXBLKXMS nbytes   Defines the maximum size, in bytes, of an
                            individual XMS block (default = 4 GB).

        -MAXXMSMEM nbytes   Defines the maximum number of bytes of XMS
                            memory to allocate (default = 4 GB).

        -MAXEXTMEM nbytes   Defines the maximum number of bytes of
                            direct extended memory to allocate
                            (default = 4 GB).

        -MAXVCPIMEM nbytes  Defines the maximum number of bytes of
                            memory to allocate from an EMS emulator that
                            supports the VCPI interface (default = 4 GB).

        -XMS setting        The default setting for this switch is AUTO,
                            which means that the XMS lock block call
                            returns linear addresses under
                            386-to-the-Max and physical addresses under
                            all other XMS drivers. Other settings are
                            OFF, PHYSICAL, and LINEAR.

        -NOPCD[WEITEK]      Don't assert the PCD (Page Cache Disable)
                            bits for the Weitek or Cyrix memory-mapped
                            coprocessors on 486 or later PCs. By default
                            the PCD bits on 486s or higher are asserted.
                            On Compaq(R) machines, the PCD bits are
                            *not* asserted to work around a bug on
                            Compaq 486/33L machines. This switch can be
                            used to turn off PCD bits on any 486 or
                            later PC.

       -EXTLOW address      Establishes lowest address in direct extended
                            memory that the application can use.
       -EXTHIGH address     Establishes highest address in direct
                            extended memory that the application can use.

       -MINREAL nparagraphs Specifies the minimum amount of conventional
                            memory to leave free.
       -MAXREAL nparagraphs Specifies the maximum amount of conventional
                            memory to leave free.
                            We recommend that you do not set these
                            switches unless you need memory beyond what
                            is needed to load your Terminate-and-Stay-
                            Resident (TSR) programs and real-mode ADI
                            drivers prior to executing AutoCAD, and that
                            you add an additional 256 paragraphs to
                            account for conventional memory that must be
                            left free for AutoCAD.

       -ERRATA17            Installs a software workaround for erratum 17
                            of the 386 chip. Use this switch when running
                            under 386|VMM on a machine with a B1 step 386
                            chip and a hardware workaround for
                            erratum 21. There is no point in using
                            -ERRATA17 on a machine with a B1 386 chip and
                            no hardware fix for erratum 21.

       -VDISK               A workaround for compatibility problems with
                            other programs that do not correctly follow
                            the VDISK standard for allocating extended
                            memory. If 386|DOS-Extender refuses to run an
                            application because of inconsistent VDISK
                            allocation signatures, this switch can be
                            used to force 386|DOS-Extender to run the
                            program. The larger of the two allocation
                            marks present will be used. Before using this
                            switch you should check the allocation sizes
                            printed out with the error message when
                            386|DOS-Extender refuses to run the program.
                            If the larger of the two numbers printed out
                            does not seem reasonable, you must calculate
                            how much extended memory is in use by other
                            programs and then use the -EXTLOW switch to
                            inform 386|DOS-Extender of the correct
                            value.

        -PRIV               Privileged operation is not supported under
        -UNPRIV             DPMI, so AutoCAD 386 is linked with the
                            -UNPRIV switch so that it will operate under
                            Windows. (See the section titled "Running
                            under Windows".)

        -NOSPCLMEM          Tells 386|DOS-Extender not to look for
                            special Compaq built-in memory.

        -A20                Forces 386|DOS-Extender to disable A20 each
                            time the 80386 switches to real mode, and to
                            re-enable A20 each time the 80386 switches
                            to protected mode.

        -XT                 If the IBM(R)-standard ID byte is missing
                            from the BIOS, this switch informs
                            386|DOS-Extender that it is executing on an
                            IBM-compatible PC or PC/XT with a 386 board.

        -SAVEREGS           Forces 386|DOS-Extender to preserve the high
                            16 bits of general registers across switches
                            to real mode initiated by software interrupts.

        -SWAPNAME filename  The swap file name (default is a DOS temp file).

        -SWAPDEFDISK        The current default disk drive for the swap
                            file (default is the disk on which the
                            application is located).

        -SWAPDIR dirname    The device and directory in which to place
                            the page swap file (default is the root
                            directory of the device from which the
                            application was loaded).

        -SWAPCHK            These switches are used to set the swap file
        -SWFGROW1ST         growing policy. AutoCAD sets the policy to
        -NOSWFGROW1ST       SWAPCHK OFF, installs an out-of-swap-space
                            handler, and uses the default value of
                            SWFGROW1ST. It is very unlikely that you
                            would ever need to modify these switches.
                            You must not change -SWAPCHK.

        -LFU                Least Frequently Used page replacement
                            policy (default).
        -NUR                Not Used Recently page replacement policy.

        -VSCAN nmillisecs   Page table scanning frequency in
                            milliseconds (default is 4000 ms).
        -VSLEN nbytes       Maximum amount of linear address space to
                            process on each page table scan (default is
                            FFFFFFFFh).

        -DEMANDLOAD         Pages in program as needed.

        -NOPGEXP            Forces 386|VMM not to page out of the .exp
                            file. When used, 386|DOS-Extender reads the
                            entire program into memory at load time and
                            places all swapped-out pages (including code
                            pages) in the swap file. This can be useful
                            if the application is loaded from the
                            network server and paging over the network
                            causes performance degradation.

        -MINSWFSIZE nbytes  The minimum size of the swap file at program
                            load time.
        -MAXSWFSIZE nbytes  Limits the maximum disk space that is
                            allocated to the swap file. If not used, the
                            only upper bound on swap file size is the
                            amount of free space available on the disk.

        -PRIVEC vector      The IBM BIOS uses INT 5 as the print screen
                            call but 386|DOS-Extender uses it for a
                            BOUND exception in protected mode, so the
                            print screen function is made available
                            instead at INT 80h.  This switch allows it
                            to be moved between 30h and FFh.  -PRIVEC 5
                            makes the print function unavailable in
                            protected mode.

        -INTMAP vector      If there is a compatibility problem due to
                            another program relocating hardware
                            interrupts IRQ0-7 from their default DOS
                            interrupt vectors of 08h-0Fh, this switch
                            can be used to tell 386|DOS-Extender where
                            hardware interrupts IRQ0-7 are mapped.

        -NISTACK            (Used only with the Real-Mode ADS Interface
                            -- see the file, realmode.txt) Allocates
                            interrupt stack buffers.

        -SAVER              (Used only with the Real-Mode ADS Interface
                            -- see the file, realmode.txt) Saves
                            registers when switching between real mode
                            and protected mode.

    The information above comes from the "386|DOS-Extender Reference
    Manual" and "386|VMM Reference Manual." Please see these manuals for
    more details about these switches.


    3.0 386|DOS-Extender COMPATIBILITY
    ==================================

    386|DOS-Extender is fully compatible with XMS and with VCPI-
    compliant EMS emulators. DOS-Extender applications can operate
    normally under DESQview. AutoCAD 386, when used in conjunction with
    the pharlap.386 Windows device driver as described in "Running under
    Windows," can run in a DOS compatibility box of Windows 3.1
    enhanced mode.


    3.1 Direct Extended Memory Allocation
    =====================================

    386|DOS-Extender allows AutoCAD 386 to allocate any direct
    extended memory that is not in use by other programs. At
    initialization time, 386|DOS-Extender obtains the minimum available
    extended memory address by checking for memory that was allocated
    starting at one MB, with the VDISK extended memory allocation
    standard or with the technique used by the Microsoft(R) RAMDRIVE
    program. 386|DOS-Extender also obtains the top of extended memory by
    calling the BIOS system function INT 15h, function 88h.

    If you have programs installed on your system that use extended
    memory but do not use any of the standard methods for allocating
    extended memory, then it is necessary to limit the amount of
    extended memory that 386|DOS-Extender will use to avoid conflict.
    This is done by determining which addresses in extended memory are
    used by the other program and then limiting the 386|DOS-Extender use
    of extended memory with the -EXTLOW and -EXTHIGH command-line
    switches.

    There is a secondary problem with the VDISK memory allocation
    standard. The amount of memory allocated with this method is marked
    in two places: in a signature block pointed to by the INT 19h
    interrupt vector and in a boot block maintained at one MB. Some
    programs that use this standard only update the allocation mark in
    one location, usually the signature block of the INT 19h vector.
    Also, under MS-DOS version 3.3, the resident portion of the print
    command takes over the INT 19h vector, which masks the VDISK
    signature block.

    Because of these problems, 386|DOS-Extender checks both VDISK
    allocation marks. If the two values are not the same,
    386|DOS-Extender displays an error message showing what the two
    values are, and refuses to run the application program.  To
    determine whether the larger of the two numbers that
    386|DOS-Extender is finding is correct, check all the drivers in
    your config.sys file to see which of them attempt to allocate
    extended memory. If the larger number is correct, you can use the
    -VDISK command-line switch to tell 386|DOS-Extender to proceed using
    the larger of the two available numbers. If neither number is
    correct (this would be the case, for example, if you have a program
    that updates the VDISK signature block but not the boot block, and
    you the run the MS-DOS PRINT command under MS-DOS version 3.3), then
    you must use the -EXTLOW command line switch to give
    386|DOS-Extender the correct value.


    3.2 Address Line 20 Enabling
    ============================

    All PC-compatible architectures have the capability of enabling or
    disabling address line 20 in hardware. When address line 20 is
    disabled, the physical addresses placed on the bus by the 80386 are
    truncated to 20 bits by external hardware. This is for compatibility
    with MS-DOS programs that rely on address wraparound at 1 MB;
    address line 20 is, therefore, typically disabled when MS-DOS is
    executing in real mode.

    In order for protected-mode programs to run correctly, address line
    20 must be enabled so that it is possible to access memory above
    1 MB. By default, 386|DOS-Extender enables address line 20 during
    initialization and leaves it enabled for the entire time the
    application program is executing. When the application program
    terminates, 386|DOS-Extender returns address line 20 to the original
    setting (enabled or disabled).

    The command-line switch -A20 can be used to force 386|DOS-Extender
    to enable address line 20 each time it switches to protected mode,
    and to disable it each time it switches to real mode. The only time
    this switch is needed is when a real-mode program that relies on
    address wraparound at 1 MB will be executing while the protected-
    mode program is executing. Examples include a TSR program or a real-
    mode program to which the protected-mode program EXECs.

    A performance penalty is associated with the use of the -A20 switch.
    On the original PC-AT hardware design, it took several microseconds
    to enable or disable A20. Thus, on systems with this design, using
    the -A20 switch adds some overhead to each mode switch. However, all
    Compaq 386 machines manufactured after January 1987, the IBM PS/2
    architecture, and the EISA architecture can switch the A20 state in
    a few milliseconds.


    3.3 RAM Disks and Disk Cache Programs
    =====================================

    RAM disks are programs that simulate a disk drive in memory. They
    are often used to hold files that are accessed frequently to improve
    access times. Disk cache programs cache data read from or written to
    the physical disk drives on a system in order to improve the
    performance of the system.

    The only potential compatibility problem between 386|DOS-Extender
    and either RAM disk or disk cache programs is their use of extended
    memory. 386|DOS-Extender is compatible with all programs that
    follow either the VDISK standard, the BIOS extended memory size
    determination standard, or the technique used by the Microsoft
    RAMDRIVE program for allocating extended memory. If memory-resident
    programs that allocate extended memory do not follow one of these
    two standards, the -EXTLOW and/or -EXTHIGH command line switches
    must be used to inform 386|DOS-Extender how much extended memory is
    allocated to these programs.


    4.0 PERFORMANCE: USING A DISK CACHE
    ===================================

    Most computer manufacturers distribute a disk cache program with
    their machines. A disk cache program keeps recently referenced disk
    sectors in memory, so that the system does not need to get them from
    the disk the next time they are referenced. Since 386|VMM keeps a
    page swap file on disk, there is a considerable amount of disk I/O
    for paging when running programs much larger than the available
    physical memory. With heavy disk activity, the DOS file system needs
    to access the disk File Allocation Table (FAT) frequently. Since the
    FAT tends to stay in the disk cache, the overall program performance
    can often benefit from installing a small disk cache. It is not
    advisable to allocate a lot of memory to the disk cache, since this
    reduces the amount of physical memory available to 386|VMM.


    5.0 386/387 PAGING ERRATA WORKAROUND
    ====================================

    80386 chip steps B1 and earlier have two chip errata (known as
    "erratum 17" and "erratum 21") that occur only with protected-mode
    programs, such as AutoCAD 386, that use the 80387 floating point
    coprocessor. Both errata cause the 386 to stop processing
    instructions when an 80387 instruction is executed under certain
    conditions, causing the program to hang. Neither erratum exists in
    any 386SX chip or in 386 chip step D0 (released in the second
    quarter of 1988) and later.

    The -ERRATA17 switch installs a software workaround for erratum 17,
    but leaves paging enabled (there is no viable software workaround
    for erratum 21 with paging enabled). The -ERRATA17 switch is needed
    only if 386|VMM is used, and is effective only if a hardware
    workaround for erratum 21 is in place. (Preventing erratum 17 does
    no good if erratum 21 can still occur.) Either use chip step D0 or a
    later version of the 386 chip, or get a hardware piggyback board
    with a workaround for erratum 21 from Intel or other hardware
    vendors. Some PC motherboards have a hardware workaround for
    erratum 21 designed in. For example, all Compaq 386/20 PCs have a
    hardware workaround.


    6.0 COMPILER SUPPORT
    ====================

    The AutoCAD Development System(TM) supports three 32-bit compilers
    for programming in the DOS-Extender (AutoCAD 386) environment:

        MetaWare(TM) High C 386
            Version 1.5
            Version 1.62
            Version 1.71
            Version 1.73 (latest product)

        WATCOM(TM) C/386
            Version 9.0 (latest product)

        Zortech C++
            Version 3.0, Developer's Edition (latest product)
            Version 3.0, Science and Engineering Edition
                (latest product)

    Both the MetaWare and Zortech compilers require the Phar Lap 4.1
    linker (386|LINK) to produce an ADS executable. For the WATCOM
    compiler, using 386|LINK is optional.

    For more information about how to compile and link using a
    particular compiler, see the compiler-specific document files in
    this directory: highc.txt, watcom.txt, and ztc.txt.


    6.1 The Real-Mode ADS Interface
    ===============================

    The Real-Mode ADS Interface supports two 16-bit compilers for
    programming in real mode, without using the DOS-Extender:

        Microsoft(R) C
            Version 5.1
            Version 6.0 (latest product)

        Borland Turbo C(R)
            Version 2.0 or later

    For more information about how to compile, link, and use a real-mode
    ADS program, see the document file realmode.txt, in this directory.


    7.0 ASSEMBLING MODULES WITH Phar Lap 386|ASM
    ============================================

    To assemble code modules, invoke the 386|ASM assembler via the
    386asm command. For example (you don't need to enter the .asm
    filename extension):

        386asm doe -twoc

    Various command-line options control the assembler. For details, see
    the "386|ASM Reference Manual."

    CAUTION: If you use assembly-language modules, be sure that code
    segments have a class specifier of CODE, and that data segments have
    a class specifier of DATA. Any other class names can cause segments
    to be loaded in the middle of the heap, with unpleasant results when
    you attempt to run AutoCAD.


    8.0 REBOOTING AND THE VIRTUAL MEMORY MANAGER SWAP FILE
    ======================================================

    The swap file is never closed during normal 386|VMM operation. It is
    created when the program starts and deleted after the program
    terminates. This causes no problems during normal operation, but if
    your program has a bug that causes a reboot, or if you reboot your
    computer by hand while the application is running, the directory
    entry for the swap file never gets updated on the disk. As a result,
    you have to run the DOS CHKDSK program after a reboot, in order to
    reclaim lost disk clusters that were allocated to the swap file.


    9.0 DEBUGGING WITH Phar Lap 386|DEBUG
    =====================================

    While you're using the debugger, the environment variable EXPDEBUG
    should be set to ADS. For example:

        SET EXPDEBUG=ADS

    When you invoke 386|DEBUG, specify the AutoCAD executable (acad.exe),
    and use the -SYMFILE switch (which can be abbreviated to -SF) to
    specify your application. The -SYMFILE switch tells 386|DEBUG to use
    the symbol table from a .exp file. Like all other switches to
    386|DEBUG, this switch must precede the name of the executable file
    (you don't have to enter the .exp extension). For example, to debug
    an application called adsapp.exp, enter:

        386debug -sf adsapp acad.exe

    Use one of the following methods to debug with the same
    386|DOS-Extender switches used by AutoCAD:

        * Place the switches in the environment variable DOSX, which is
          always read by 386|DOS-Extender. Be sure to remove the
          switches from the environment variable after the debug session.
          The following line shows the switches used by AutoCAD:

              set dosx=-vm vmmdrv -minswfsize 400000 -swapdefdisk
                  -swapchk off -demandload -vscan 20000

          NOTE: You must enter the SET instruction on a single command
          line.

        * Configure the switches into 386|DEBUG itself with the cfig386
          utility. After the debug session is complete, remove the
          configured switches or they will apply to all programs being
          debugged:

          cfig386 386debug -vm vmmdrv -minswfsize 400000 -swapdefdisk
              -swapchk off -demandload -vscan 20000
          386debug -sf adsapp acad.exe
          cfig386 -clear 386debug

          NOTE: You must enter the cfig386 instruction on a single
          command line.

        * Configure the switches directly into the 386|DOS-Extender file,
          run386.exe, with the cfig386 utility. Again, clear them after
          debugging.

    If EXPDEBUG has been set to ADS, then a breakpoint (INT 3) will
    occur in AutoLISP before your ADS application is initialized. To get
    past the INT 3 breakpoint and enter the application, use the
    following command:

        - r eip eip+1

    AutoCAD loads the ADS applications placed in the file acad.ads at
    startup time, so if EXPDEBUG is set to ADS you will hit the INT 3
    breakpoint for each of these applications. Just use "r eip eip+1" to
    get around these breaks. Your application will reach the INT 3
    breakpoint after you type "(xload "yourapp")" at the AutoCAD Command:
    prompt.

    At this point, the code and data selector values for your ADS
    application will be displayed (typically in the upper-left corner of
    the screen, though this can vary depending on your screen settings).
    Use the debugger's xr command to relocate the segment selector
    values so they are relative to the application (rather than to the
    AutoCAD executable). This command has the form

        xr <oldsel> <newsel>  

    where <oldsel> is the original selector value and <newsel> is its
    new value. For <newsel>, use the values displayed for the
    application. For example, by entering the following two commands,
    you would relocate the code selector from f to 97, and the data
    selector from 17 to 9f:

        - xr f 97
        - xr 17 9f

    You can use the xs command to view the segment selector values that
    are current.

    To set a breakpoint in the application, use the bp command in the
    following form:

        bp <codesel>:<symbol>

    Where <codesel> is the current value of the code segment selector
    and <symbol> is a symbol in your program. For example:

        -bp 97:main

    The g command, which runs up to the specified symbol, takes the same
    form. For example:

        - g 97:sin

    Once you are executing within the ADS application, you no longer
    need to preface symbol names with the code selector value.


    _________________________________________
    * This document includes text derived directly from the "386|VMM
      Reference Manual" and "386|DOS-Extender Reference Manual" (used
      with the permission of Phar Lap). See these manuals for more
      details on 386|VMM and 386|DOS-Extender.


    Copyright 1992 Autodesk, Inc.

    All Rights Reserved

    AUTODESK, INC. MAKES NO WARRANTY, EITHER EXPRESSED OR IMPLIED,
    INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY
    OR FITNESS FOR A PARTICULAR PURPOSE, REGARDING THESE MATERIALS AND MAKES
    SUCH MATERIALS AVAILABLE SOLELY ON AN "AS-IS" BASIS.

    IN NO EVENT SHALL AUTODESK, INC. BE LIABLE TO ANYONE FOR SPECIAL,
    COLLATERAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR
    ARISING OUT OF PURCHASE OR USE OF THESE MATERIALS. THE SOLE AND
    EXCLUSIVE LIABILITY TO AUTODESK, INC., REGARDLESS OF THE FORM OF ACTION,
    SHALL NOT EXCEED THE PURCHASE PRICE OF THE MATERIALS DESCRIBED HEREIN.

    For conditions of use and permission to use these materials for
    publication in other than the English language, contact Autodesk, Inc.

    Autodesk, Inc. reserves the right to revise and improve its products as
    it sees fit. This publication describes the state of this product at
    the time of its publication, and may not reflect the product at all
    times in the future.

    Autodesk Trademarks

    The following are registered trademarks of Autodesk, Inc.: ADI, ATC,
    Autodesk, Autodesk Animator, the Autodesk logo, AutoCAD, AutoCAD
    Training Center, AutoLISP, AutoShade, AutoSketch, and AutoSolid.

    The following are trademarks of Autodesk, Inc.: ACAD, Advanced Modeling
    Extension, Advanced User Interface, AME, AME Link, Animator Pro,
    Animator Pro Player, Animation Player, ATLAST, AUI, AutoCAD Development
    System, AutoCAD Simulator, AutoCAD SQL Extension, AutoCAD SQL
    Interface, Autodesk Animator Clips, Autodesk Animator Theatre,
    Autodesk Device Interface, Autodesk Multimedia Training Center,
    Autodesk Software Developer's Kit, Autodesk Training Center,
    AutoFlix, CA Lab, Cyberized, cyberParts, DXF, FLI, HyperChem, James
    Gleick's CHAOS: The Software, MTC, Multimedia Explorer, SketchTools,
    SmartCursor, 3D Studio, and World-Creating Toolkit.

    The following are service marks of Autodesk, Inc.: Autodesk
    Strategic Developer, Autodesk Strategic Developer logo, Autodesk
    Registered Developer, Autodesk Registered Developer logo,
    TinkerTech.

    Third Party Trademarks

    All other brand and product names are trademarks or registered
    trademarks of their respective holders.

    GOVERNMENT USE

    Use, duplication, or disclosure by the U.S. Government is subject to
    restrictions as set forth in FAR 52.227-19 (Commercial Computer
    Software-Restricted Rights) and DFAR 252.227-7013(c) (1) (ii) (Rights
    in Technical Data and Computer Software), as applicable.

    Program Credits

    AutoCAD 386 incorporates licensed, run-time versions of 386|DOS-
    Extender and 386|VMM from Phar Lap Software, Inc., Cambridge,
    Massachusetts.

