Go to Triangle Digital Support Home Page TDS9092 TECHNICAL MANUAL
Programming
Error messages
Live website search
Enter key words
 

ERROR MESSAGES

ERROR TYPES

The TDS9092 gives the following error messages. If the message is followed by the usual 'ok' then it is a warning only. In the absence of 'ok' then this was a true error and the procedure has aborted.

These are messages you may see during compilation or at run time. If this is a syntax error compilation stops and the line number at which the problem was identified is given. The actual error may be a few lines earlier.

ERRORS LIST

 

COMP. ONLY

Referenced word was found during execution. It should only be used when compiling. Perhaps a colon is missing?

CRASHED MACHINE

is not part of the Forth error system. It indicates that the microprocessor on the TDS9092 lost control through execution from an invalid address or an undefined machine op-code. If this happens the hardware facilities are used to safely re-enter the Forth system. The message indicates what has happened. Although this is a warm restart there can be no guarantee that the memory data remained intact while the microprocessor was running out of control. When the application program is in EPROM the cold-start word whose cfa is at address 08+ORIGIN will be re-entered after the error message has been transmitted. This means that applications can be designed to tolerate most crashes from spikes etc. The action to be taken on a crash can be altered to something you define by changing the action of the TRAP interrupt. See the section INTERRUPTS for details. E.g.  TRAP ASSIGN WORK will cause WORK to be entered on a crash; this can do whatever you want.

DICT FULL

There is not enough room left in the dictionary for the proposed operation. This message is given on executing WORD or PAD or words containing these. The value of the variable FENCE marking the end of available dictionary may be too low. See DICTIONARY ALLOCATION for details of dictionary allocation.

EMPTY STK

Too many items have been pulled off the data stack.

EXEC. ONLY

The referenced word was found during compilation. It should only be used when executing. Perhaps a semicolon is missing from the previous definition.

FULL STACK

The stack is close to overflowing. Check whether an extra unwanted parameter is being left on the stack each loop.

INCOMPLETE

An IF without a THEN or something similar.

MEM RANGE

Attempted access to a block not allocated, see PORTABLE USE OF MEMORY.

NOT PAIRED

The word shown has no pair, e.g. a LOOP without a DO will give this error.

NOT UNIQUE

Word is already present, warning only. The new word will supersede the old unless the new one is erased with FORGET.

PICK/ROLL

The number on the stack was illegal for word PICK or ROLL or a word containing one of these. Should be 1 or greater.

PROTECTED

System tried to FORGET a word behind the protective fence. The fence is in address 1C +ORIGIN and can be changed.

UNDEFINED

The word specified is not in the context or Forth vocabularies. If VLIST shows it in the dictionary, then the word was never properly defined, e.g. the compiler found a syntax error while trying to compile this word. Eliminate it by SMUDGE FORGET cccc , where cccc is the word.

 

When the error comes from normal processing, not a CRASHED MACHINE, your own error messages or actions can be defined by putting the Code Field Address (cfa) of the word you want to execute into the user variable WARNING . (Normally this contains zero, which activates the above messages). E.g.

 

: ERRORS

   CASE 1 OF ." Error type 1" ENDOF

      2 OF ." Error type 2" ENDOF

      3 OF ." Error type 3" ENDOF

 ENDCASE ;

: INITIALISE   ' ERRORS CFA WARNING ! ;

 

If INITIALISE has been executed in the application program then the word ?ERROR will enter ERRORS as defined above if the flag is set:

 

1 1 ?ERROR    gives 'Error type 1'

1 2 ?ERROR    gives 'Error type 2'

1 3 ?ERROR    gives 'Error type 3'

0 2 ?ERROR    gives no error, flag not set.

 

See CRASHED MACHINE above for details on defining the action to be taken when the microprocessor loses control because of electrical spikes, etc.

Go to Triangle Digital Support Home Page Go to top   Next page