ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACAD
1
Parameter Legende
2
RRegister
3
DGerät
4
NUM
Nummer (Ganzzahl oder Gleitkomma)
5
VAR
Parameter eines Gerätes z.B. Pressure für Druck
6
batchMode
0 = Durchschnitt | 1= Summe | 2 = Minimum | 3 = Maximum
7
IntGanzzahl
8
Prefabhash
Der Hash eines Gerätetyps
9
reagentMode
0 = Enthalten | 1 = Benötigt | 2 = Für das Rezept
10
reagent
11
slotindex
der Index eines zu lesenden oder schreibenden Slots. Zu fineden in Stationpedia
12
13
Wichtige Hinweise
14
Befehle die mit einem b beginnen sind Sprungbefehle. Es wird nach dem ausführen des Befehl an eine übergebe Adresse gesprungen
15
Befehle die mit einem b beginnen und auf al enden, sind ebenfalls Sprungbefehle aber zusätzlich wird im Register ra die Rücksprungadresse abgelegt
16
Befehle die mit s (außer sub und sin) beginnen sind Set-Befehle anstatt zu springen wird in dem Register (a) ein Wahr (1) bzw. Falsch (0) eingetragen
17
18
Macros und Konstanten
19
BefehlParameter aParameter bParameter cParameter dBeschreibung
20
$...
Mit diesem Zeichen vor einer Zeichenkette lassen sich HEX-Werte in Dezimal umwandeln Also: $D7 wird zu 215
21
%...
Mit diesem Zeichen vor einer Zeichenkette lassen sich Binärwerte-Werte in Dezimal umwandeln Also: %11010111 wird zu 215 (diese Entspricht Hex D7)
22
HASH("...")
Hiermit lassen sich bestimmte Geräte anhand des Namens bzw. des Prefab Namens ansprechen
23
nan
Dies ist eine Konstante welche angibt dass es sich um keine Zahl handelt.
24
pinf
Diese Konstante sagt aus, dass der Wert gegen +unendlich geht
25
ninf
Diese Konstante sagt aus, dass der Wert gegen -unendlich geht
26
pi
PI halt... also 3,14 bla bla bla ^^
27
deg2rad
Konstante zum umrechnen von Winkel auf Bogenmaß
28
rad2deg
Konstante zum umrechnen von Bogenmaß auf Winkel
29
epsilon
Die epsilon konstante
30
31
Gerätebefehle
32
Gerätebefehle werden direkt auf Geräte angewandt.
33
BefehlParameter aParameter bParameter cParameter dParameter eParameter fBeschreibung
34
lRDVAR
Lädt einen Parameter (c) eines Gerätes (b) in das Register (a)
35
sDVARR|NUM
Schreibt einen Wert (c) in den Parameter (b) eines Gerätes (a)
36
lbRPrefabhashVARbatchMode
Lädt einen Parameter (c) eines Gerätestyps (b) in das Register (a). Der Modus bestimmt wie die Werte der einzelnen Geräte behandelt werden sollen (siehe Legende)
37
lbnRPrefabhashnameHashVARbatchMode
Lädt einen Parameter (d) eines Gerätetypes (b) mit dem Hash-Namen (c) in das Register (a). Der Modus bestimmt wie die Werte der einzelnen Geräte behandelt werden sollen (siehe Legende)
38
lbsRPrefabhashVARbatchMode
Lädt einen Parameter (c) aus einer Gerätegruppe (b) und schreibt diesen in (a). Der Modus bestimmt wie die Werte der einzelnen Geräte behandelt werden sollen (siehe Legende)
39
lbnsRPrefabhashnameHashslotindexVARbatchMode
Lädt einen Parameter (e) aus einem Gerät vom Typ (b) mit dem Namen (c) slot (d) und schreibt dies in (a). Der Modus bestimmt wie die Werte der einzelnen Geräte behandelt werden sollen (siehe Legende)
40
sbPrefabhashVARR|NUM
Schreibt in einen Parameter (b) eines Gerätestyps (a) den Wert aus c.
41
ssDslotindexVARR|NUM
Schreibt einen Wert (d) in den Parameter (c) des Slots (b) des Gerätes (a).
42
sbnPrefabhashnameHashVARR
Schreibt (d) in einen Parameter (c) eines Gerätetypes (a) mit dem Namen (b)
43
sbsPrefabhashnameHashslotindexVARR
Schreibt (e) in einen Parameter (d) eines Slots (c) des Gerätetypes (a) mit dem Namen (b)
44
lsRDslotindexVAR
Lädt den Parameter eines Geräteslots. Das Gerät wird in b angegeben wobei der Slot (c) eine Zahl von 0 aufwärts ist. Der Parameter des Slotitems wird in d angegeben. Das Ergebnis wird im Register (a) gespeichert.
45
bdnsDR|NUM
Prüft ob das Gerät (a) an geschlossen ist. Wenn nicht, wird nach b gesprungen
46
bdnsalDR|NUM
Prüft ob das Gerät (a) an geschlossen ist. Wenn nicht, wird nach b gesprungen
47
bdseDR|NUM
Prüft ob das Gerät (a) an geschlossen ist. Wenn ja. wird nach b gesprungen
48
bdsealDR|NUM
Prüft ob das Gerät (a) an geschlossen ist. Wenn ja. wird nach b gesprungen
49
bdseDR|NUM
Prüft ob ein Gerät (a) angeschlossen ist. Wenn Ja wird nach b gesprungen
50
brdnsDR|NUM
Prüft ob das Gerät (a) an geschlossen ist. Wenn nicht, wird an eine relative Position (b) gesprungen
51
brdseDR|NUM
Prüft ob das Gerät (a) an geschlossen ist. Wenn ja. wird an eine relative Position (b) gesprungen
52
sdnsRD
Prüft ob das Gerät (b) an geschlossen ist. Wenn nicht, wird an eine 1 in a geschrieben. Ansonsten eine 0
53
sdseRD
Prüft ob das Gerät (b) an geschlossen ist. Wenn nicht, wird an eine 1 in a geschrieben. Ansonsten eine 0
54
lrRDModereagent
Lädt die Menge eines Reagenz d aus einem Gerät b aus und legt es in a ab. Der Mode bestimmt was genau ausgelesen werden soll ( 0 = Wieviel ist vorhanden, 1 = Wieviel wird für das aktuelle Rezept NOCH benötigt, 2 = Wieviel braucht das Rezept).
55
56
Übersicht und Hilfe
57
Diese Befehle haben keine Auswirkung auf den Code selbst sondern dienen der Übersichtlichkeit und Wartbarkeit des Codes
58
BefehlParameter aParameter bParameter cParameter dBeschreibung
59
#
Nach einem # Kann immer ein Kommentar folgen (Auch nach einem Befehl!)
60
aliasStringR|D
Legt einen String(a) fest der als alternative für ein Gerät oder Register dienst
61
defineStringR|NUM
Legt einen String(a) fest der als alternative für eine nicht variable Zahl dient (Konstante. z.B. PI)
62
63
Sprungbefehle
64
BefehlParameter aParameter bParameter cParameter dBeschreibung
65
jInt
Springt an eine in a angegebene Position
66
jalInt
Springt an eine in a angegebene Position
67
jrInt
Springt an eine relative Position wobei a die Anzahl der Zeilen angibt die nach oben oder unten übersprungen werden.
68
69
Stackoperationen
70
BefehlParameter aParameter bParameter cParameter dBeschreibung
71
peekR
lädt den Wert ganz oben auf dem Stack und schreibt diesen in a. Verringert NICHT den Stackpointer!
72
popR
lädt den Wert ganz oben auf dem Stack und schreibt diesen in a. Verringert ebenfalls den Stackpointer!
73
pushR|NUM
schreibt den wert aus a auf den Stack und erhöht den Stackpointer
74
75
Sonstiges
76
BefehlParameter aParameter bParameter cParameter dBeschreibung
77
moveRR|NUM
Schreibt einen Wert (b) in das Register (a)
78
sleepR|NUM
Lässt das Programm die in a angegebene Anzahl an Sekunden ruhen.
79
yield
Lässt das Programm einen PowerTick warten (~0,5sek.)
80
selectRR|NUMR|NUMR|NUM
Schreibt den Wert aus c in a wenn b = 1 ist. Ansonsten wird d in a geschrieben
81
randR
Zufallszahl (Gleitkommazahl) zwischen 0-1
82
hcf
Selbstzerstörung. Hält den MIPS Code an und lässt den Chip verbrennen. Nein kein scherz!
83
84
Mathematische Befehle
85
Einfache Mathematik
86
BefehlParameter aParameter bParameter cParameter dBeschreibung
87
addRR|NUMR|NUM
Addiert die Werte b und c und schreibt dies in a
88
subRR|NUMR|NUM
Subtrahiert c von b und schreibt das Ergebnis in a
89
mulRR|NUMR|NUM
Multipliziert die Werte b und c und schreibt das Ergebnis in a
90
divRR|NUMR|NUM
Dividiert b durch c und schreibt das Ergebnis in a
91
modRR|NUMR|NUM
Ermittelt den Rest einer Division aus b und c und schreibt das Ergebnis in a
92
maxRR|NUMR|NUM
Speichert den größeren der beiden Werte b und c in a
93
minRR|NUMR|NUM
Speichert den kleineren der beiden Werte b und c in a
94
roundRR|NUM
Rundet den Wert b auf den nächsten Integer und schreibt dies in a
95
Erweiterte Mathematik
96
BefehlParameter aParameter bParameter cParameter dBeschreibung
97
ceilRR|NUM
bildet den nächst kleineren Integer von b und schreibt diesen in a
98
floorRR|NUM
nächst größeren Integer von b in a schreiben
99
absRR|NUM
Der Wert aus b wird immer positiv in a geschrieben
100
truncRR|NUM
Entfernt den Teil vor dem Komma aus der Zahl b und schreibt diesen in a