1
                     Notes on MASM 6.11 Error Messages
                     (c) Copyright Microsoft Corp. 1993

     
     This text file contains information on the following:
     
     - 32-bit Linker Errors
     - ML Errors Update
     - Microsoft MS-DOS Extender Run-Time Errors

=============================================================================
     
     32-Bit Linker Errors
     --------------------
     If you attempt to assemble a 16-bit executable file, but call the 
     32-bit version of LINK, you will receive a LNKnnnn error message. 
     The following output example illustrates specifically which error 
     messages you may receive:
          
          **********************************************************
          Microsoft (R) 32-Bit Executable Linker Version 1.0
          Copyright (C) Microsoft Corp 1992-93. All rights reserved.

          /z2
          "afile.obj"
          "afile.exe"
          NUL
          LINK : warning LNK4044: unrecognized option "z2"; ignored
          LINK : warning LNK4044: unrecognized option "r"; ignored
          LINK : error LNK1104: cannot open file "afile.exe"
          **********************************************************
     
     You may also receive the warning

          cvtomf() : warning : 16-bit segment

     If you are building a 16-bit executable file, use the LINK.EXE 
     included with MASM 6.11. If you have the directories for both the 
     16-bit and 32-bit linkers included in your PATH, the directory 
     containing the 16-bit LINK.EXE must be listed before the directory 
     containing the 32-bit linker.


     ML Errors Update
     ----------------
     The following is updated information on ML error messages. The
     complete list of assembler error messages is located in Appendix A
     of the MASM Environment and Tools book.

          A1004: out of memory

                 The assembler could not load the file because all memory 
                 is exhausted. For ML.EXE to run with the Microsoft Windows 
                 operating system, a Windows swap file must exist.


          A1018: COFF error writing file
                 
                 The assembler was unable to write to an output file. One
                 of the following may be the cause:

                 - The current disk is full.
                 - The current disk is read-only.
                 - The disk you are writing to is not ready.

          
          A1019: invalid debug and browser data; file exceeds line limit 
                          
                 The assembler cannot generate debug or browse information 
                 on an OMF file longer than 32,767 lines, or on a coff file
                 longer than 65,553 lines.
            
                 To eliminate this error:

                 - Break the file up into smaller pieces (each having less 
                   than 32,767 lines for OMF files, 65,553 for coff files) 
                   and reassemble, or

                 - Assemble without options /Zi, /Fr, or /FR.

          
          A1020: cannot find LINK.EXE

                 This error occurs when LINK.EXE cannot be found on the 
                 path. Placing LINK.EXE on the path will resolve this error.

 
          A1021: cannot find cvpack.exe

                 This error occurs when CVPACK.EXE cannot be found on the 
                 path. Placing CVPACK.EXE on the path will resolve this 
                 error.


          A2210: 16-bit segments not allowed with /coff option

                 You have attempted to compile a 16-bit segment module with
                 the /coff option. Remove the /coff switch from your command
                 line and recompile.
                 

          A2211: FAR not allowed in flat-model comm variables

                 The assembler has detected a FAR directive in a flat-model
                 program. The FAR directive is irrelevant for flat-model 
                 programs and should be removed.


          A2212: invalid .model parameter for flat model
          
                 The assembler has detected nearstack or farstack 
                 directives in a flat-model program. These directives are 
                 irrelevant for flat-model programs and should be removed.
          

          A4014: directive ignored with /coff switch

                 Directives .SEQ, .ALPHA, and .DOSSEG are ignored when 
                 assembling with the /coff switch. These directives have no 
                 effect and should be removed from flat-model code.


          A4015: /Gc switch incompatible with flat model

                 The /Gc switch is incompatible when assembling a flat-
                 model program. The switch was ignored.


          A4016: /AT switch incompatible with flat model

                 The /AT switch is incompatible when assembling a flat-
                 model program. The switch was ignored. 
                 
          
          A4017: invalid command-line option: /<option>

                 ML has detected a command-line option that is invalid.
                 The option was removed and ML compiled as it normally
                 would.


          A5006: calling convention not supported in flat model

                 ML has detected a calling convention not supported in 
                 flat-model programs. The convention was ignored.


     Microsoft MS-DOS Extender Run-Time Errors
     -----------------------------------------
     The MASM assembler, ML.EXE, is a 32-bit MS-DOS-extended program. An
     MS-DOS Extender error can occur when you run ML. MS-DOS Extender 
     errors have the following format:

     DOSXNT : error DXnnnn: message


          DX1020: unhandled exception: exception; contact Microsoft 
                  Support Services

                  A problem exists in ML.EXE. Additional information 
                  appears after this error message. Note the circumstances 
                  of the error and notify Microsoft Corporation by 
                  following the instructions in the "Microsoft Support 
                  Services" section in the Microsoft MASM Environment and 
                  Tools book.


          DX1070: GODOSXNT.EXE stub out of date

                  ML is not compatible with the version of DOSXNT.EXE 
                  available. A compatible version of the Microsoft DOSXNT 
                  MS-DOS Extender (DOSXNT.EXE) must exist in the same 
                  directory or in a directory specified in the PATH 
                  environment variable.

                  This error can result when Microsoft MASM 6.11 is 
                  installed in the same directory as another language 
                  product. Try reinstalling MASM 6.11 in a different 
                  directory.


          DX1140: DOSXNT.386 driver required to run with Windows

                  For ML.EXE to run with the Microsoft Windows operating 
                  system, the driver called DOSXNT.386 must be specified 
                  in the [386Enh] section of the SYSTEM.INI file as 
                  follows:

                  DEVICE=<path>\DOSXNT.386

                  where <path> is the directory that contains the 
                  DOSXNT.386 file.


          DX1180: cannot load program : <reason>

                  The MS-DOS Extender could not load ML.EXE for the given 
                  reason. The message describing the reason can be one of 
                  the following:

                  - access denied to file
                       Change the access rights for the file.

                  - invalid or corrupted .EXE file
                       Contact Microsoft Support Services.

                  - out of memory
                       Remove some TSRs or add more memory.

                  - too many open files
                       Either close some files or increase the number of 
                       file handles specified in the FILES= statement in 
                       CONFIG.SYS.


          DX1230: DOSXNT initialization failed

                  This error usually follows error DX5420.


          DX1270: command-line error : unknown command switch

                  This error occurs if one of the following environment 
                  variables is set: G, GO, GOT, GOTN, GOTNT, T, TN, TNT. 
     
                  To see the current settings of environment variables, run 
                  the SET command at the operating system prompt. To clear 
                  an environment variable, run the command SET variable=, 
                  where variable is the name of the variable to be cleared; 
                  no other characters can appear before you press ENTER. 
                  Changes in environment variables must be made outside of 
                  Windows. Check the AUTOEXEC.BAT file for environment 
                  variable settings.


          DX1350: cannot load program: file not found

                  This error occurs if one of the following environment 
                  variables is set: G, GO, GOT, GOTN, GOTNT, T, TN, TNT.

                  To see the current settings of environment variables, 
                  run the SET command at the operating system prompt. To 
                  clear an environment variable, run the command SET 
                  variable=, where variable is the name of the variable to 
                  be cleared; no other characters can appear before pressing 
                  ENTER. Changes in environment variables must be made 
                  outside of Windows. Check the AUTOEXEC.BAT file for 
                  environment variable settings.

     
          DX1390: cannot load program

                  DOSXNT cannot load the executable file because all memory 
                  is exhausted. For ML.EXE to run with the Microsoft Windows 
                  operating system, a Windows swap file must exist.


          DX5420: CheckDPMI: error when checking for coprocessor support

                  For ML.EXE to run with the Microsoft Windows operating 
                  system, the following must be specified in the [386Enh] 
                  section of SYSTEM.INI:
     
                  DEVICE=*vmcpd

          
          Phar Lap err 58: Can't create VM swap file of size 0 in 
                  directory T:\

                  where T:\ is a read-only network drive. This error
                  may occur in the MS-DOS environment (outside of Windows)
                  when ML.EXE is located on a read-only network share.
                  To avoid this error, you can do one of the following:

                  - Set the DOSX environment variable to "-novm" as
                    follows:
                  
                    set dosx=-novm

                    This instructs the dos extender not to use VM.

                  - Set the DOSX environment variable to "-swapdir 
                    c:\<dir>" as follows:
                  
                    set dosx=-swapdir c:\<dir>
                    
                    where <dir> is a directory on drive C:. This instructs 
                    the MS-DOS Extender to put the swap file in the 
                    specified directory.
 1:1