| A4000 | cannot modify READONLY segment | 
|  | An attempt was made to modify an operand in a segment marked with the READONLY attribute. | 
| A4002 | non-unique STRUCT/UNION field used without qualification | 
|  | A STRUCT or UNION field can be referenced without qualification only if it has a unique identifier. | 
|  | This conflict can be resolved either by renaming one of the structure fields to make it unique or by fully specifying both field references. | 
|  | The NONUNIQUE keyword requires that all references to the elements of a STRUCT or UNION be fully specified. | 
| A4003 | start address on END directive ignored with .STARTUP | 
|  | Both .STARTUP and a program load address (optional with the END directive) were specified. The address specification with the END directive was ignored. | 
| A4004 | cannot ASSUME CS | 
|  | An attempt was made to assume a value for the CS register. CS is always set to the current segment or group. | 
| A4006 | too many arguments in macro call | 
|  | There were more arguments given in the macro call than there were parameters in the macro definition. | 
| A4007 | option untranslated, directive required : option | 
|  | There is no ML command-line equivalent for the given MASM option. The desired behavior can be obtained by using a directive in the source file. | 
| Option | Directive | 
| A4008 | invalid command-line option value, default is used : option | 
|  | The value specified with the given option was not valid. The option was ignored, and the default was assumed. | 
| A4009 | virtual memory not available : /VM ignored | 
|  | The assembler was unable to initialize virtual memory. | 
|  | You may be able to fix this error by freeing memory being used by RAM disks, caches, or TSR programs. | 
| A4010 | insufficent memory for /EP : /EP ignored | 
|  | There is not enough memory to generate a first-pass listing. | 
| A4011 | expected '>' on text literal | 
|  | A macro was called with a text literal argument that was missing a closing angle bracket. | 
| A4012 | multiple .MODEL directives found : .MODEL ignored | 
|  | More than one .MODEL directive was found in the current module. Only the first .MODEL statement is used. | 
| A4910 | cannot open file: filename | 
|  | The given filename could not be in the current path. | 
|  | Make sure that filename was copied from the distribution disks and is in the current path. | 
| A5000 | @: label defined but not referenced | 
|  | A jump target was defined with the @: label, but the target was not used by a jump instruction. | 
|  | One common cause of this error is insertion of an extra @: label between the jump and the @: label that the jump originally referred to. | 
| A5001 | expression expected, assume value 0 | 
|  | There was an IF, ELSEIF, IFE, IFNE, ELSEIFE, or ELSEIFNE directive without an expression to evaluate. The assembler assumes a 0 for the comparison expression. | 
| A5002 | externdef previously assumed to be external | 
|  | The OPATTR or .TYPE operator was applied to a symbol after the symbol was used in an EXTERNDEF statement but before it was declared. These operators were used on a line where the assembler assumed that the symbol was external. | 
| A5003 | length of symbol previously assumed to be different | 
|  | The LENGTHOF, LENGTH, SIZEOF, or SIZE operator was applied to a symbol after the symbol was used in an EXTERNDEF statement but before it was declared. These operators were used on a line where the assembler assumed that the symbol had a different length and size. | 
| A5004 | symbol previously assumed to not be in a group | 
|  | A symbol was used in an EXTERNDEF statement outside of a segment and then was declared inside a segment. | 
| A5005 | types are different | 
|  | The type given by an INVOKE statement differed from that given in the procedure prototype. The assembler performed the appropriate type conversion. | 
| A6001 | no return from procedure | 
|  | A PROC statement generated a prologue, but there was no RET or IRET instruction found inside the procedure block. | 
| A6003 | conditional jump lengthened | 
|  | A conditional jump was encoded as a reverse conditional jump around a near unconditional jump. | 
|  | You may be able to rearrange code to avoid the longer form. |