| SX/B Error Codes |
The SX/B compiler can trap several programming errors before generating the assembly output that is passed to the SASM assembler. The list below gives a description of the errors and guidance for correction.
| Error 1 | INVALID VARIABLE NAME |
| You have used a variable name that is an SX/B or SASM reserved word. |
| Error 2 | DUPLICATE VARIABLE NAME |
| You have tried to allocate the same variable name more than once. |
| Error 3 | VARIABLE EXCEEDS AVAILABLE RAM |
| You have declared too many variables or the array is too large. |
| Error 4 | CONSTANT EXPECTED |
| The bit field value must be a constant. |
| Error 5 | BYTE PARAMETER EXPECTED |
| Many commands work only with BYTE parameters. |
| Error 6 | INVALID UNARY OPERATOR |
| You used a unary operator other than – (negate) or ~ (bitwise NOT). |
| Error 7 | INVALID REGISTER OPERATION |
| Some SX registers are write-only, hence assignment is the only valid operation. |
| Error 8 | INVALID PARAMETER |
| You have used a parameter that is not valid. |
| Error 9 | SYNTAX ERROR |
| Command syntax not followed. |
| Error 10 | INVALID NUMBER OF PARAMETERS |
| You have given too few or too many parameters for the command. |
| Error 11 | BYTE VARIABLE EXPECTED |
| You have used a non-byte variable where a byte was expected. |
| Error 12 | NOT A FOR CONTROL VARIABLE |
| You have used NEXT with a variable what was not used in a previous FOR instruction. |
| Error 13 | BIT VARIABLE EXPECTED |
| You have used a non-bit variable where a bit variable is required. |
| Error 14 | BAUDRATE IS TOO LOW |
| Baudrates are limited by the FREQ setting. Use a higher baudrate or lower clock frequency. |
| Error 15 | BAUDRATE IS TOO HIGH |
| Baudrates are limited by the FREQ setting. Use a lower baudrate or higher clock frequency. |
| Error 16 | UNKNOWN COMMAND |
| Instruction used is not supported or is misspelled, or you have misspelled a variable name. |
| Error 17 | COMMA EXPECTED |
| In most cases you must separate parameters with a comma. |
| Error 18 | EXPECTED A VALUE BETWEEN 0 AND 7 |
| Bit operations require a value from 0 to 7. |
| Error 19 | BIT IS NOT A HARDWARE PIN |
| Some commands operate only on hardware pins. |
| Error 20 | BIT CONSTANT EXPECTED |
| Expected 0 or 1. |
| Error 21 | INTERRUPT MUST BE USED BEFORE PROGRAM |
| Interrupt routine must be placed before the PROGRAM directive. |
| Error 22 | FOR WITHOUT NEXT |
| You have created a FOR loop without a corresponding NEXT, or you have misspelled the FOR control variable name. |
| Error 23 | NEXT WITHOUT FOR |
| You have used NEXT without a corresponding FOR, or you have misspelled the NEXT variable name. |
| Error 24 | UNKNOWN VARIABLE NAME |
| You have attempted to use an undeclared variable, or misspelled a variable name. |
| Error 25 | TOO MANY SUBS DEFINED |
| A maximum of 127 subroutines may be defined in any one program. |
| Error 26 | ELSE OR ENDIF WITHOUT IF |
| You have used ELSE or ENDIF without a corresponding IF. |
| Error 27 | VARIABLE NOT IN CURRENT BANK |
| The variable used is not accessible from the current bank. |
| Error 28 | MUST BE A GLOBAL VARIABLE |
| Some commands (BANK) require a variable that is located in the global RAM area. Place global variables at the beginning of the declaration section. |
| Error 29 | LOOP WITHOUT DO |
| You have used LOOP without a corresponding DO. |
| Error 30 | EXIT NOT IN FOR...NEXT OR DO...LOOP |
| The EXIT command must be used within a FOR...NEXT or a DO...LOOP construct. |
| Error 31 | FREQUENCY DIFFERENT FROM DEVICE SETTING |
| The clock speed you have specified with FREQ does not match the clock speed specified on the DEVICE> line. This only occurs when the device line specifies one of the internal clock speeds (OSC4MHZ, OSC1MHZ, OSC128KHZ, or OSC32KHZ) |
| Error 32 | NOT ALLOWED ON THIS DEVICE |
| Some commands (like TIMER1) only apply to the SX48/52 devices. If you attempt to use these commands on the SX28 you will receive this error. |
| Error 33 | NO PROGRAM DIRECTIVE USED |
| All SX/B programs must use the PROGRAM Label directive so that the SX knows where to start program execution. |