3 <title>Error and Warning Messages - The XORcyst Manual
</title>
4 <meta http-equiv=
"Content-Type" content=
"text/html">
5 <meta name=
"description" content=
"The XORcyst Manual">
6 <meta name=
"generator" content=
"makeinfo 4.7">
7 <link title=
"Top" rel=
"start" href=
"index.html#Top">
8 <link rel=
"prev" href=
"Custom-Character-Maps.html#Custom-Character-Maps" title=
"Custom Character Maps">
9 <link href=
"http://www.gnu.org/software/texinfo/" rel=
"generator-home" title=
"Texinfo Homepage">
11 This is the manual for The XORcyst version 1.5.2.
13 Copyright (C) 2004, 2005, 2007, 2008, 2009 Kent Hansen.-->
14 <meta http-equiv=
"Content-Style-Type" content=
"text/css">
15 <style type=
"text/css"><!--
16 pre
.display
{ font-family:inherit
}
17 pre
.format
{ font-family:inherit
}
18 pre
.smalldisplay
{ font-family:inherit
; font-size:smaller
}
19 pre
.smallformat
{ font-family:inherit
; font-size:smaller
}
20 pre
.smallexample
{ font-size:smaller
}
21 pre
.smalllisp
{ font-size:smaller
}
22 span
.sc
{ font-variant:small-caps
}
23 span
.roman
{ font-family: serif
; font-weight: normal
; }
29 <a name=
"Error-and-Warning-Messages"></a>Previous:
<a rel=
"previous" accesskey=
"p" href=
"Custom-Character-Maps.html#Custom-Character-Maps">Custom Character Maps
</a>,
30 Up:
<a rel=
"up" accesskey=
"u" href=
"index.html#Top">Top
</a>
34 <h2 class=
"appendix">Appendix F Error and Warning Messages
</h2>
36 <h3 class=
"section">F
.1 Assembler Error Messages
</h3>
39 <dt><span class=
"samp">cannot expand `
</span><var>identifier
</var><span class=
"samp">'; not a macro
</span><dd>Make sure
<var>identifier
</var> is a macro and not a label, constant or other type of symbol.
41 <br><dt><span class=
"samp">conditional expression does not evaluate to literal
</span><dd>Conditional assembly with the
<code>.if
</code>-directive requires that the expression tested can be evaluated immediately, so it can't contain references to labels and such (since these aren't computed by the assembler, that's the linker's job).
43 <br><dt><span class=
"samp">could not open `
</span><var>filename
</var><span class=
"samp">' for reading
</span><dd>Check that the file exists and that you have read privileges.
45 <br><dt><span class=
"samp">duplicate symbol `
</span><var>identifier
</var><span class=
"samp">'
</span><dd>You tried to define the same symbol more than once. Global labels must be unique across the entire program. Local labels must be unique within the relevant local scope.
47 <br><dt><span class=
"samp">field declaration expected
</span><dd>A structure or union field must be of the form
<var>identifier
</var> <var>datatype
</var> <var>[count]
</var>; for example,
<code>my_field .db
</code>,
<code>my_2nd_field .dsw
10</code>,
<code>my_3rd_field .type other_struc
</code>.
49 <br><dt><span class=
"samp">data initialization not allowed here
</span><dd>A structure or union declaration cannot contain initialization of its fields.
51 <br><dt><span class=
"samp">initializer does not evaluate to integer literal
</span><dd>A member of an enumerated datatype must be assigned a constant value.
53 <br><dt><span class=
"samp">initializer for field `
</span><var>identifier
</var><span class=
"samp">' exceeds field size
</span><dd>When defining the value of a structure or union field, the value must not exceed the number of bytes of storage allocated for that field. For example, if the field definition is
<code>a_string .dsb
4</code>, then the value
<code>"too long"</code> won't fit since it is
8 bytes long.
55 <br><dt><span class=
"samp">instructions not allowed in data segment
</span><dd>Instructions can only be contained in a code segment (after a
<code>codeseg
</code> directive).
57 <br><dt><span class=
"samp">invalid addressing mode
</span><dd>The combination of mnemonic and addressing mode for the
6502 instruction is invalid. For example,
<code>LDX $
00,X
</code> is invalid since the
<code>LDX
</code> instruction does not have a ZeroPage,X-mode version. Consult a
6502 manual to see what modes are valid for each instruction.
59 <br><dt><span class=
"samp">invalid dataseg statement
</span><dd>A data segment only supports a subset of the statements allowed in code segments. You can't put instructions or initialized data in a data segment.
61 <br><dt><span class=
"samp">invalid operand
</span><dd>You supplied an invalid operand to a statement, for example a string as operand to the
<code>LDA
</code> instruction.
63 <br><dt><span class=
"samp">macro `
</span><var>identifier
</var><span class=
"samp">' does not take
</span><var>count
</var><span class=
"samp"> argument(s)
</span><dd>You supplied the wrong amount of arguments to the macro. Check the macro definition if you're unsure how many arguments it takes, and try again.
65 <br><dt><span class=
"samp">member `
</span><var>sub-struct-identifier
</var><span class=
"samp">' of `
</span><var>struct-identifier
</var><span class=
"samp">' is not a structure
</span><dd>The expression
<var>struct-identifier
</var><code>.
</code><var>sub-struct-identifier
</var><code>.
</code><var>some-member
</var> did not resolve because
<var>sub-struct-identifier
</var> is not a structure.
67 <br><dt><span class=
"samp">member '
</span><var>field-identifier
</var><span class=
"samp">' of '
</span><var>struct-identifier
</var><span class=
"samp">' is of unknown type (`
</span><var>type-identifier
</var><span class=
"samp">')
</span><dd><var>type-identifier
</var> is an undefined type.
69 <br><dt><span class=
"samp">only one field of union can be initialized
</span><dd>When defining an instance of a union, only one of the possible fields can be given a value between the pair of enclosing braces { }.
71 <br><dt><span class=
"samp">operand out of range
</span><dd>A
6502 instruction has either an
8-bit or
16-bit operand, so its value has to fit in that many bits. However, the value you supplied was too large to fit.
73 <br><dt><span class=
"samp">procedures not allowed in data segment
</span><dd>A procedure contains code. Code cannot be contained in a data segment.
75 <br><dt><span class=
"samp">repeat count does not evaluate to literal
</span><dd>Anonymous macros are expanded as soon as they are encountered. Thus, the argument of a
<code>rept
</code> directive must be an immediate expression.
77 <br><dt><span class=
"samp">size of `
</span><var>identifier
</var><span class=
"samp">' is unknown
</span><dd>The operand to the
<code>sizeof
</code> operator must be one of
<code>BYTE
</code>,
<code>WORD
</code>,
<code>DWORD
</code>, or the name of a structure definition.
79 <br><dt><span class=
"samp">string or integer argument expected
</span><dd>The
<code>message
</code> directive takes a string or integer as its argument.
81 <br><dt><span class=
"samp">structure initializer expected
</span><dd>When defining data that is an instance of a structure or union, the field value(s) must be enclosed in a pair of braces { }.
83 <br><dt><span class=
"samp">too many field initializers
</span><dd>There are too many values given compared to the actual number of fields in the structure or union.
85 <br><dt><span class=
"samp">union member must be of constant size
</span><dd>The size of a union member must be known at assembly time. This restriction does not apply to structs.
87 <br><dt><span class=
"samp">unknown macro or directive `
</span><var>identifier
</var><span class=
"samp">'
</span><dd>You attempted to invoke a macro or directive that the assembler doesn't recognize. Check your spelling (remember that identifiers are case sensitive) and/or your macro definitions.
89 <br><dt><span class=
"samp">unknown namespace `
</span><var>identifier
</var><span class=
"samp">'
</span><dd>The expression
<var>identifier
</var><code>::
</code><var>symbol
</var> did not resolve because
<var>identifier
</var> is not a namespace.
91 <br><dt><span class=
"samp">unknown symbol `
</span><var>identifier
</var><span class=
"samp">'
</span><dd>Your code refers to a symbol which hasn't been defined locally nor has it been declared to be external.
93 <br><dt><span class=
"samp">value not allowed in data segment
</span><dd>Data cannot be initialized in a data segment; the data segment can only specify how many bytes of storage will be needed at runtime.
95 <br><dt><span class=
"samp">`
</span><var>identifier
</var><span class=
"samp">' declared as extrn but is defined locally
</span><dd>Defining a label in your own code and then declaring it as an external symbol doesn't make much sense.
97 <br><dt><span class=
"samp">`
</span><var>identifier
</var><span class=
"samp">' already declared extrn
</span><dd>An identifier already specified in a
<code>public
</code> directive cannot at the same time be external.
99 <br><dt><span class=
"samp">`
</span><var>identifier
</var><span class=
"samp">' is of non-exportable type
</span><dd>Macros and other volatile symbols cannot be exported.
101 <br><dt><span class=
"samp">`
</span><var>field-identifier
</var><span class=
"samp">' is not a member of `
</span><var>struct-identifier
</var><span class=
"samp">'
</span><dd>The expression
<var>struct-identifier
</var><code>.
</code><var>field-identifier
</var> did not resolve.
105 <h3 class=
"section">F
.2 Assembler Warning Messages
</h3>
108 <dt><span class=
"samp">`
</span><var>identifier
</var><span class=
"samp">' declared as public but is not defined
</span><dd>You cannot export a symbol that isn't defined in your code.
110 <br><dt><span class=
"samp">`
</span><var>identifier
</var><span class=
"samp">' defined but not used
</span><dd>Usually there is a reason for defining a symbol, so the assembler will warn you if there are no references to it in the code.
112 <br><dt><span class=
"samp">operand out of range; truncated
</span><dd>Operand exceeds
8 or
16 bits, so the upper bits are chopped off.
114 <br><dt><span class=
"samp">redefinition of `
</span><var>identifier
</var><span class=
"samp">' is not identical; ignored
</span><dd>When using the
<var>.equ
</var>-directive you can only define each identifier once. (Use the = operator instead if appropriate.)
118 <h3 class=
"section">F
.3 Linker Error Messages
</h3>
121 <dt><span class=
"samp">branch out of range
</span><dd>A relative branch instruction went too far. Trim your code or do an inverse-branch-followed-by-jump combo instead.
123 <br><dt><span class=
"samp">duplicate symbol `
</span><var>identifier
</var><span class=
"samp">'
</span><dd>A symbol with the same name is exported from two or more of the units being linked. When linking, exported names must be unique across all units.
125 <br><dt><span class=
"samp">incompatible operand(s) to `
</span><var>operator
</var><span class=
"samp">' in expression
</span>
126 <br><dt><span class=
"samp">instruction operand doesn't fit in
1 byte
</span><dd>A rather fatal error. A zeropage instruction's operand address won't fit.
128 <br><dt><span class=
"samp">instruction operand doesn't fit in
2 bytes
</span><dd>A rather fatal error which shouldn't even occur.
130 <br><dt><span class=
"samp">invalid instruction operand (string)
</span><dd>6502 instructions only take integer operands.
132 <br><dt><span class=
"samp">negative count
</span><dd>A storage directive must have a positive integer operand.
134 <br><dt><span class=
"samp">out of
6502 RAM while allocating unit `
</span><var>unit
</var><span class=
"samp">'
</span><dd>The linker couldn't map the data segments to
6502 RAM because there was too little of it available. Check your
<code>ram
</code>-commands in the script or reduce your program's memory requirements.
136 <br><dt><span class=
"samp">PC went beyond
64K when linking `
</span><var>unit
</var><span class=
"samp">'
</span>
137 <br><dt><span class=
"samp">unexpected string operand (`
</span><var>string
</var><span class=
"samp">') to storage directive
</span><dd>Storage directives only take integer operands.
139 <br><dt><span class=
"samp">unknown symbol `
</span><var>identifier
</var><span class=
"samp">' referenced from
</span><var>unit
</var><dd>The external symbol couldn't be resolved. You need to link the unit containing the symbol.
143 <h4 class=
"subsection">F
.3.1 Linker Script Error Messages
</h4>
146 <dt><span class=
"samp">bank size (
</span><var>size
</var><span class=
"samp">) exceeded by
</span><var>count
</var><span class=
"samp"> bytes
</span><dd>The bank output exceeded the size of the current bank. The bank size is wrong, your code is too large or the files you are copying to the bank are.
148 <br><dt><span class=
"samp">cannot pad backwards
</span><dd>If you start a bank and copy a, say,
2K file to it, then attempt to pad to offset
1K you will get this error. Padding can only be done from a smaller offset to a larger or equal offset. Your pad offset is wrong or the data preceding it is too large.
150 <br><dt><span class=
"samp">could not open `
</span><var>filename
</var><span class=
"samp">' for reading
</span><dd>I'm sure you know what this means by now.
152 <br><dt><span class=
"samp">could not open `
</span><var>filename
</var><span class=
"samp">' for writing
</span><dd>The specified output file could not be created.
154 <br><dt><span class=
"samp">`end' is smaller than `start'
</span><dd>The end address should be larger or equal to the start address, not the other way around.
156 <br><dt><span class=
"samp">failed to load `
</span><var>unit
</var><span class=
"samp">'
</span><dd>The object file could not be loaded from storage. The file is missing, you don't have access to it or it is corrupted.
158 <br><dt><span class=
"samp">invalid size
</span><dd>The size must be a positive (larger than zero) quantity.
160 <br><dt><span class=
"samp">missing argument `
</span><var>name
</var><span class=
"samp">'
</span><dd>The script command requires an argument which you did not supply.
162 <br><dt><span class=
"samp">no bank size set
</span><dd>At a minimum, the first
<code>bank
</code>-command in the script must supply a bank size.
164 <br><dt><span class=
"samp">no output open
</span><dd>When executing a script command which writes to the linker's output, an output file must have been specified first. Make sure that all
<code>link
</code>-,
<code>copy
</code>-,
<code>pad
</code>-commands etc. are preceded by the proper
<code>output
</code>-command.
166 <br><dt><span class=
"samp">value of argument `
</span><var>name
</var><span class=
"samp">' is out of range
</span><dd>The script command argument's value is outside the expected range. For example, an argument which specifies a
6502 address should be between
0 and
64K.
170 <h3 class=
"section">F
.4 Linker Warning Messages
</h3>
173 <dt><span class=
"samp">`.D(B|W)' operand
</span><var>integer
</var><span class=
"samp"> out of range; truncated
</span><dd>Operand exceeds
8 or
16 bits, so the upper bits are chopped off.