Armstrong

Armstrong is a higher level language created to make programming for the Astro-8 a better experience. Here are the syntax and rules of the language.


Hex

Use hexadecimal values for Addresses.

0xff



Decimal

Use decimal values for Constant Integers.

213



Comments

Use two forward slashes (//) to comment


Syntax

// <Comment>


Example

// This is a comment



Registers

How to address a register.


Syntax

@<Register Name>


Available

Name Example
Register A - C @A  @B  @C



Labels

A label is a place in the program you can jump to.
You can also see it as an address in the program.


Syntax

#<Label Name>


Example

#start



Variables

Variable can contain integers only.
You can think of them as addresses in memory.


Syntax

$<Variable Name>


Example

$ballVelocity



Pointers

Pointers can be placed in front of any variable or int. They use the value stored in the variable or int as an address to get or set the actual value.


Syntax

* symbol prefix followed by brackets containing the bank to access from [x]

*[<bank>]<Variable_or_Address>


Example

*[0]$var
*[1]0xf



Comparator

Some functions compare two values and
determine if their relationship is valid.


Types

Symbol Meaning
< Is A less than B
> Is A greater than B
== Are A and B equal
!= Are A and B not equal