I think, that describe errors like the first one is quite useless, so
such errors won't be described.
Here comes fatal errors, these will always stop the compilation
(excluding FTL(007)):
FTL(002): Not enough memory
FTL(003): Required arguments missing
You probably used bad arguments with dc,
try dc ?, or see cli.
FTL(004): Unable to open source file
FTL(005): Unable to read file
Given MODULE or another file can't be read correctly.
FTL(006): Unable to open file
Given MODULE or another file not found in given directories.
FTL(007): Unknown error, contact author
FTL(008): Assembler error occured, please contact the author
These two errors appears only where does compiler wrong things, it is
usualy caused by incompletion of PowerD. Only advice I can give You is
to locate the cause and rewrite it in another way, or contact
me.
FTL(009): Linker error occured, please contact the author
This error appear when You use external functions which aren't defined
in a MODULE, or You forgot to include this MODULE.
ERR(010): Syntax error
This error usualy appears, when You forgot a comma ',' or You added one
where it shouldn't be used. This error is signed as fatal, because it
usualy made wrong things.
ERR(024): UNTIL expected
You probably used ENDIF/ELSEIF/ELSE/ELSEWHILE/ALWAYS/etc. where something
else was expected.
ERR(025): Unexpected character
ERR(026): Unexpected end of file
ERR(027): Unexpected end of string
ERR(028): Unexpected end of OBJECT
ERR(029): Unexpected end of CONSTant list
ERR(030): Unexpected end of variable DEFinition list
ERR(031): Unknown identifier
ERR(032): Unknown function
ERR(033): Unknown OO function
ERR(034): Unknown constant
ERR(035): Unknown label
This appears if the compiler miss the destination label, or if it's neither inside the procedure, from what it is called
nor in global (outside a procedure)
ERR(036): Unknown OPT
ERR(037): Unknown processor, generating for MC68020+MC68881
ERR(038): Unknown OBJECT
ERR(039): Unknown OBJECT/UNION member
ERR(040): Unknown instruction size
ERR(041): Missing apostrophe
ERR(042): Unmatched brackets
ERR(043): SUB/SUBDEF must be followed by a name
ERR(044): UNION can be defined only after NEWUNION
ERR(045): Divide by zero
ERR(046): Modulo by zero
ERR(047): CONST mode required for
ERR(048): Too many arguments
ERR(049): Not enough arguments
ERR(050): Too many return values
ERR(051): Not enough return values
ERR(052): Too many names of one item
ERR(053): At least one argument in TPROC required
ERR(054): Octal numbers consists only from "0" to "7" numbers
ERR(055): OBJECTs must be global
ERR(056): This MODULE requires newer compiler
ERR(057): Letter expected
ERR(058): '=' expected
ERR(059): ']' expected
ERR(060): '(' expected after
ERR(061): ')' expected
ERR(062): '\' expected
ERR(063): ' expected
ERR(064): ' or ')' expected in the list
ERR(065): ' or ']' expected after an index
ERR(066): 'd', 'h' or 's' expected after '\'
ERR(067): one of >, <, <>, >=, <=, = expected
One of these conditions must be used after function name followed with
() in RAISE
definition.
ERR(068): Incoherent program structure
You probably forgot or added some ENDIF/ENDWHILE etc.
ERR(082): CASE, DEFAULT or ENDSELECT expected
This appear if You forgot to add string containing assembler source
after '=' in RPROC definition.
ERR(083): Useless SELECT structure
ERR(084): STRING/PTR can be copyed only with ':='
ERR(085): Assembler source code string expected after '='
ERR(086): IF expected after RAISE value
ERR(087): Illegal type conversion
ERR(088): This operator can't be used with floats
ERR(089): This operator can't be used with constants
ERR(090): This operator can't be used in this case
ERR(091): Swapping different types
You use the swap operator (:=:) with different types like DOUBLE vs. LONG.
ERR(092): Only CONSTant possible
ERR(093): CONSTant required as argument
ERR(094): Variable declared 2 or more times
ERR(095): Procedure with that name is already defined
ERR(096): Macro is too large (max. is 16384)
Macros uses in PowerD predefined buffer, which limits macro size to
16kB, try to short down given macro, or use more shorter macros.
ERR(097): STRING type must have a size
You defined a STRING variable without setting the size, which is required.
ERR(098): Unknown \x extension
ERR(099): Too deep pointer
ERR(100): Type expected
ERR(101): String address can be stored only in 32bit field
ERR(102): Raise() function not found
This error appear only if You call a function, which can raise an
exception via RAISE keyword and Raise() function not found. Raise()
function is located in powerd.lib. You probably used OPT NOSTD and
then RAISE.
ERR(103): Too deep macro
This may occur when You use macro in macro in eighth or higher macro level.
Macros can contain other macros maximally into 8 levels.
ERR(104): Bad EXITIF/NEXTIF location
ERR(105): Non FPU converter
ERR(106): Illegal instruction format
ERR(107): Illegal instruction extension
ERR(108): Too many errors
ERR(109): Bad STEP value
ERR(110): Missing ''IN'' keyword, register as argument in function is required
When You compile a library, then all the library functions must have all it's arguments in
registers, and You probably forgot to define them.
ERR(111): Bad register used, try another
WRN(900): Unused variables in
WRN(901): Unused procedures
WRN(902): Unknown OBJECT
WRN(903): BYTE can hold value from interval of -128 and +127
WRN(904): UBYTE can hold value from interval of 0 and 255
WRN(905): WORD can hold value from interval of -32768 and +32767
WRN(906): UWORD can hold value from interval of 0 and 65535
WRN(907): More return values than in procedure definition
This warn appears when You return more return values then in procedure
definition like here:
PROC test()(LONG,LONG)
ENDPROC 10,20,30
This is only a warning, because if the undefined value is a long or
a pointer, no problems will appear, because those values will be taken
as longs!!! If You return this way floats or doubles, they will be
converted to long!!!
WRN(908): DTO keyword expected
WRN(909): TO keyword expected
WRN(910): Store to array
Storing a value to read only place. To explain:
OBJECT xyz
x/y/z
DEF list:xyz
list:=1
The variable 'list' itself is just for reading, to store value to it, You must use it's items, because
the 'list' it the address of the first item of the 'xyz' object, it doesn't contain the address!!! And
as 'list' isn't just a pointer, it is simply read only. Contents of the 'list' variable itself can't be
changed in any way. To change it, use a pointer instead of array like:
DEF list=[0,0,0]:xyz
list:=1
This allocates a true variable, that can contain whatever You wish.
WRN(911): Label out of local procedure
This appears just to warn You, that You JUMP outside a procedure, what can be dangerous.