0#Unknown statement#You have started a line with an unrecognised word. Check the statement is not misspelt, or consult the documentation for a list of available statements.

1#Missing <code>until</code> statement after <code>repeat</code> statement.#After the closing brace of a section of repeated code, there should be <code>until &lt;expression&gt;</code> on the next line

2#Port not supported by target PIC#The port referred to is not recognised for the target PIC. Most port names will be of the form <code>PORTX</code>. Check which ports are supported by your PIC.<example>PORTA</example>

3#Pin identifier was not followed by '='#The pin can accept values of high or low.<example><code>porta.3 = high</code><br><code>portb.6 = low</code></example>

4#Pin state can only be set to 'high' or 'low#A pin cannot be set to a number. Use <code>high</code> or <code>low</code> instead of 1 or 0 respectively.<example><code>porta.3 = high</code><br><code>portb.6 = low</code></example>

5#Port identifier can only be followed by ' = '#A port can be assigned a value between 0 and 255. <example><code>"PORTA = 6"</code>  would output the number 6 on <code>PORTA</code> of the PIC.</example>

6#Unexpected statement before '{'#There is a mistake in the syntax.

7#Mismatched brackets#Make sure that every opening bracket <code>(</code> has a corresponding closing bracket <code>)</code>.

8#'=' in expression, did you mean '=='?#Use the operator <code>==</code> to test for the equality of two variables. Use the operator <code>=</code> for assignment. <example><i>Incorrect: </i><code>if x = 2 then ...</code><br><i>Correct: </i><code>if x == 2 then ...</code></example>

9#Reserved keywords must not be used as a variable name#The word used is a Microbe statement and therefore cannot be used for variable names.

10#Nothing between operators, did you miss an operand out?#There are two operators in a row, without anything inbetween them. Remember that negative numbers can not be used in this version. <example><i>Incorrect: </i><code>3 + + 5</code></example>

11#Missing operator or space in operand#You may have accidentally placed a space in a variable name, or missed an operator such as plus from between two expressions.

12#Unknown variable#Make sure that the variable is initialized before first use. <example><i>Initialising a: </i> <code>a = 0</code></example>

13#Missing 'then' in 'if' statement#The correct syntax for an 'if' statement is:<code><br>if <expression> then<br>{<br>...<br>}<br></code>

14#Missing argument(s) from 'alias' statement#The alias statement takes 2 arguments: the targetted expression, and the alias name, respectively. <example><code><p>alias PORTA led</p></code>creates the alias <code>led</code> for <code>PORTA</code></example>

15#Too many argument(s) in 'alias' statement#The alias statement takes 2 arguments: the targetted expression, and the alias name, respectively. <example><code><p>alias PORTA led</p></code>creates the alias <code>led</code> for <code>PORTA</code></example>

16#Could not open included file#Check that the file exists at the path name given in the <code>include</code> statement.

17#Number too big#Numbers must be integers in the range 0 to 255, this is because Microbe only supports 8-bit numbers.

18#Unexpected statement after '}'#There is a mistake in the syntax.

19#A constant expression must follow step#In a <code>for</code> statement, if a step is specified, it must be a constant expression. <example><code>for i = 0 to 10 step 3</code><br><code>for i = 30 to 0 step -(10 * 7)</code></example>

20#Delay argument must be a constant expression#<code>delay</code> takes a single argument, the length of delay required in milliseconds. The length of delay must be a constant expression.<example><code>delay 7 * 3000</code><br><code>delay 1</code></example>

21#High or low expected after pin expression#An expression involving a pic pin should be of the form PORTX.n is high|low.<example>PORTA.3 is high</example>

22#Comparison operator was not recognised, perhaps you meant <=, >=, or != ?#Be careful to write comparison operators correctly, they should be <code><=</code>, <code>>=</code> and <code>!=</code>, <i>not</i> <code>=<</code>, <code>=></code> or <code>=!</code>.<example>if a >= 3 then call mysub</example> 

23#Subrountine definition before end of program#Subroutines must be defined after the <code>end</code> statement, and called from the program with <code>call subname</code>.

255#Internal compiler error#The Microbe compiler has encountered an internal problem. Microbe is still very much in development, and it is likely that this is a genuine bug. Please report this to the authors, as detailed in the Help->About Dialog, so that it can be fixed.
