Difference between revisions of "AGI Command Reference - Arithmetic Commands"
Line 30: | Line 30: | ||
| | ||
− | === | + | === <br />increment(n); === |
− | The value of the variable Var(n) is incremented by one | + | <blockquote>The value of the variable Var(n) is incremented by one. |
− | Var(n) = Var(n)+1. If the value is already 255, it is left unchanged. | + | |
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(n)+1. If the value is already 255, it is left unchanged.</blockquote> | ||
=== decrement(n); === | === decrement(n); === | ||
− | The value of the variable Var(n) is decremented by one | + | <blockquote>The value of the variable Var(n) is decremented by one. |
− | Var(n) = Var(n)-1. If the value is 0, it is left unchanged. | + | |
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(n)-1. If the value is 0, it is left unchanged.</blockquote> | ||
=== assign(n, m); === | === assign(n, m); === | ||
− | Variable Var(n) is assigned the value m | + | <blockquote>Variable Var(n) is assigned the value m. |
+ | |||
+ | '''Examples:'''<br />Var(n) = m</blockquote> | ||
=== assignv(n, m); === | === assignv(n, m); === | ||
− | Variable Var(n) is assigned the value of Var(m) | + | <blockquote>Variable Var(n) is assigned the value of Var(m). |
− | Var(n) = Var(m). | + | |
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(m).</blockquote> | ||
=== addn(n, m); === | === addn(n, m); === | ||
− | The value of variable Var(n) is incremented by m | + | <blockquote>The value of variable Var(n) is incremented by m. |
− | Var(n) = Var(n) + m. | + | |
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(n) + m.</blockquote> | ||
=== addv(n, m); === | === addv(n, m); === | ||
− | The value of variable Var(n) is incremented by the value of Var(m) | + | <blockquote>The value of variable Var(n) is incremented by the value of Var(m). |
− | + | ||
− | + | '''Examples:'''<br /> | |
+ | Var(n) = Var(n) + m. | ||
+ | |||
+ | '''Notes:'''<br /> | ||
+ | Now what happens in the above two commands on 8-bit overflow: does the result wrap over 0 or stays 255? i.e. is 250 + 10 == 4 or 250 + 10 == 255?]</blockquote> | ||
=== subn(n, m); === | === subn(n, m); === | ||
− | The value of Var(n) is decremented by m | + | <blockquote>The value of Var(n) is decremented by m. |
+ | |||
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(n) - m</blockquote> | ||
=== subv(n, m); === | === subv(n, m); === | ||
− | The value of Var(n) is decremented by Var(m) | + | <blockquote>The value of Var(n) is decremented by Var(m). |
− | + | ||
− | 1 - 2 == 255 or 1 - 2 == 0? | + | '''Examples:'''<br /> |
+ | Var(n) = Var(n) - Var(m). | ||
+ | |||
+ | '''Notes:'''<br /> | ||
+ | Again, what happens when the result must be negative: is 1 - 2 == 255 or 1 - 2 == 0?</blockquote> | ||
=== lindirectn(n, m); === | === lindirectn(n, m); === | ||
− | Variable Var(i) where i is the value of Var(n) is assigned a value m | + | <blockquote>Variable Var(i) where i is the value of Var(n) is assigned a value m. |
+ | |||
+ | '''Examples:'''<br /> | ||
+ | Var(Var(n)) = m.</blockquote> | ||
=== lindirectv(n, m); === | === lindirectv(n, m); === | ||
− | Variable Var(i) where i is the value of Var(n) is assigned the value of Var(m) | + | <blockquote>Variable Var(i) where i is the value of Var(n) is assigned the value of Var(m). |
+ | |||
+ | '''Examples:'''<br /> | ||
+ | Var(Var(n)) = Var(m).</blockquote> | ||
=== rindirect(n, m); === | === rindirect(n, m); === | ||
− | Variable Var(n) is assigned the value of Var(i) where i is the value of Var(m) | + | <blockquote>Variable Var(n) is assigned the value of Var(i) where i is the value of Var(m). |
+ | |||
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(Var(m)).</blockquote> | ||
=== muln(n, m); === | === muln(n, m); === | ||
− | Variable Var(n) is multiplied by m | + | <blockquote>Variable Var(n) is multiplied by m. |
+ | |||
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(n) * m.</blockquote> | ||
=== mulv(n, m); === | === mulv(n, m); === | ||
− | Variable Var(n) is multiplied by the value of Var(m) | + | <blockquote>Variable Var(n) is multiplied by the value of Var(m). |
+ | |||
+ | '''Examples:'''<br /> | ||
Var(n) = Var(n) * Var(m).<br /> | Var(n) = Var(n) * Var(m).<br /> | ||
− | + | ||
+ | '''Notes:'''<br /> | ||
+ | What happens on overflow?</blockquote> | ||
=== divn(n, m) === | === divn(n, m) === | ||
− | Variable Var(n) is divided by m | + | <blockquote>Variable Var(n) is divided by m. |
+ | |||
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(n) / m.</blockquote> | ||
=== divv(n, m) === | === divv(n, m) === | ||
− | Variable Var(n) is divided by the value of Var(m) | + | <blockquote>Variable Var(n) is divided by the value of Var(m). |
− | + | ||
+ | '''Examples:'''<br /> | ||
+ | Var(n) = Var(n) / Var(m). | ||
+ | |||
+ | '''Notes:'''<br /> | ||
+ | What happens on division by 0?</blockquote> | ||
=== random(n, m, k) === | === random(n, m, k) === | ||
− | Variable Var(k) is assigned a random value in the range between n and m. Now let us consider the commands changing flag values. Remember that a flag can only have a value 0 or 1. | + | <blockquote>Variable Var(k) is assigned a random value in the range between n and m. Now let us consider the commands changing flag values. |
+ | |||
+ | '''Notes:'''<br /> | ||
+ | Remember that a flag can only have a value 0 or 1.</blockquote> | ||
=== set(n) === | === set(n) === | ||
− | flag(n) is set to 1. | + | <blockquote>flag(n) is set to 1.</blockquote> |
+ | |||
=== set.v(n) === | === set.v(n) === | ||
− | flag(i), where i is the value of var (n), is set to 1. | + | <blockquote>flag(i), where i is the value of var (n), is set to 1. |
− | flag(var(n)) = 1. | + | |
+ | '''Examples:'''<br /> | ||
+ | flag(var(n)) = 1.</blockquote> | ||
=== reset(n) === | === reset(n) === | ||
− | flag(n) is set to 0. | + | <blockquote>flag(n) is set to 0. |
=== reset.v(n) === | === reset.v(n) === | ||
− | flag(i), where i is the value of var (n), is set to 0, | + | <blockquote>flag(i), where i is the value of var (n), is set to 0, |
− | flag(var(n)) = 0. | + | |
+ | '''Examples:'''<br /> | ||
+ | flag(var(n)) = 0.</blockquote> | ||
=== toggle(n) === | === toggle(n) === | ||
− | flag(n) toggles its value. | + | <blockquote>flag(n) toggles its value.</blockquote> |
=== toggle.v(n) === | === toggle.v(n) === | ||
− | flag(i), where i is the value of var (n) | + | <blockquote>flag(i), where i is the value of var (n) |
+ | |||
+ | '''Examples:'''<br /> | ||
+ | flag(var(n)), toggles is value.</blockquote> | ||
| |
Revision as of 20:02, 21 December 2013
Tutorials Table of Contents
AGI Command Reference Index
Commands that operate on variables.
increment(n);
The value of the variable Var(n) is incremented by one.
Examples:
Var(n) = Var(n)+1. If the value is already 255, it is left unchanged.
decrement(n);
The value of the variable Var(n) is decremented by one.
Examples:
Var(n) = Var(n)-1. If the value is 0, it is left unchanged.
assign(n, m);
Variable Var(n) is assigned the value m. Examples:
Var(n) = m
assignv(n, m);
Variable Var(n) is assigned the value of Var(m).
Examples:
Var(n) = Var(m).
addn(n, m);
The value of variable Var(n) is incremented by m.
Examples:
Var(n) = Var(n) + m.
addv(n, m);
The value of variable Var(n) is incremented by the value of Var(m).
Examples:
Var(n) = Var(n) + m.Notes:
Now what happens in the above two commands on 8-bit overflow: does the result wrap over 0 or stays 255? i.e. is 250 + 10 == 4 or 250 + 10 == 255?]
subn(n, m);
The value of Var(n) is decremented by m.
Examples:
Var(n) = Var(n) - m
subv(n, m);
The value of Var(n) is decremented by Var(m).
Examples:
Var(n) = Var(n) - Var(m).Notes:
Again, what happens when the result must be negative: is 1 - 2 == 255 or 1 - 2 == 0?
lindirectn(n, m);
Variable Var(i) where i is the value of Var(n) is assigned a value m.
Examples:
Var(Var(n)) = m.
lindirectv(n, m);
Variable Var(i) where i is the value of Var(n) is assigned the value of Var(m).
Examples:
Var(Var(n)) = Var(m).
rindirect(n, m);
Variable Var(n) is assigned the value of Var(i) where i is the value of Var(m).
Examples:
Var(n) = Var(Var(m)).
muln(n, m);
Variable Var(n) is multiplied by m.
Examples:
Var(n) = Var(n) * m.
mulv(n, m);
Variable Var(n) is multiplied by the value of Var(m).
Examples:
Var(n) = Var(n) * Var(m).
Notes:
What happens on overflow?
divn(n, m)
Variable Var(n) is divided by m.
Examples:
Var(n) = Var(n) / m.
divv(n, m)
Variable Var(n) is divided by the value of Var(m).
Examples:
Var(n) = Var(n) / Var(m).Notes:
What happens on division by 0?
random(n, m, k)
Variable Var(k) is assigned a random value in the range between n and m. Now let us consider the commands changing flag values.
Notes:
Remember that a flag can only have a value 0 or 1.
set(n)
flag(n) is set to 1.
set.v(n)
flag(i), where i is the value of var (n), is set to 1.
Examples:
flag(var(n)) = 1.
reset(n)
flag(n) is set to 0.
reset.v(n)
flag(i), where i is the value of var (n), is set to 0,
Examples:
flag(var(n)) = 0.
toggle(n)
flag(n) toggles its value.
toggle.v(n)
flag(i), where i is the value of var (n)
Examples:
flag(var(n)), toggles is value.
Tutorials Table of Contents
AGI Command Reference Index< Previous: IndexNext: Commands to Load and unLoad Resources >