stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 142

Tag 142 von 365 · Fortgeschritten · Monat 5: Speicher und Struktur

Absichtlich anhalten: hcf

hcf hält den Chip mit Fehler 16 an, setzt ihn in Brand und erzeugt einen Funken. Die Geräte laufen dabei weiter. Ein Sperrzustand ist fast immer die bessere Wahl.

Lektion 14 Min. Woche 21

Das lernst du heute

  • hcf verstehen
  • Chip bewusst stilllegen
  • Besser: Sperrzustand

Eine Pumpe füllt den Methantank im Lager. Steigt der Druck über die Grenze, soll Schluss sein – sofort und endgültig. Die naheliegende Idee: Der Chip hält einfach an. Dafür gibt es sogar einen eigenen Befehl.

hcf: Halt and catch fire

hcf hat keine Operanden. Der Name ist ein alter Informatikerwitz, übersetzt etwa „anhalten und Feuer fangen“. In Stationeers ist das wörtlich gemeint:

  • Der Chip meldet Fehler 16 (ChipCatchingFire) und führt keinen Befehl mehr aus.
  • Der Chip selbst brennt.
  • Das Gehäuse erzeugt einen Funken in seiner Umgebungsluft und eine kleine Explosion an Ort und Stelle.
bgt druck MAXDRUCK notaus   # Grenze ueberschritten?
j start
notaus:
hcf                         # Fehler 16, Chip brennt

Was nach dem Anhalten passiert

Das Entscheidende steht nirgends im Code: Ein angehaltener Chip schaltet nichts ab. Jedes Gerät behält den Wert, den es zuletzt bekommen hat. Lief die Pumpe beim hcf, läuft sie weiter – in den Tank, der schon zu voll ist.

Dasselbe gilt für die leiseren Wege, einen Chip anzuhalten:

WegChip danachGeräteNebenwirkung
hcfsteht, Fehler 16behalten den letzten WertFunke, kleine Explosion
Programmendesteht dauerhaft, ohne Meldungbehalten den letzten Wertfällt niemandem auf
Halteschleifeläuft, tut nichtsbehalten den letzten Wert–
Sperrzustandläuft weiterwerden jeden Takt sicher gestellt–

Eine Halteschleife sieht so aus:

stopp:
yield
j stopp      # Chip lebt, tut aber nichts mehr
Achtung

Der Funke von hcf landet in der Luft rund um das Gehäuse. Steht der Chip in einem Raum, in dem sich Methan oder Wasserstoff mit Sauerstoff gemischt hat, kann genau dieser Funke die Mischung zünden. Ausgerechnet bei einem Gasproblem ist hcf also die gefährlichste Reaktion.

Besser: der Sperrzustand

Ein Sperrzustand hält den Chip am Leben. Er merkt sich die Störung in einem Register, stellt jeden Takt alle Geräte sicher und gibt erst wieder frei, wenn jemand quittiert und die Ursache weg ist:

sgt tmp druck MAXDRUCK
select sperre tmp UEBERDRUCK sperre   # Stoerung merken
sle tmp druck MAXDRUCK                # Ursache weg?
and tmp tmp taste                     # ... und quittiert?
select sperre tmp 0 sperre            # dann frei
seqz tmp sperre
and pumpe pumpe tmp                   # gesperrt: Pumpe aus

So bleibt die Pumpe aus, die Anzeige nennt den Grund, und der Chip passt weiter auf – auch, wenn der Sensor zwischendurch verschwindet.

Hinweis

Wofür ist hcf dann gut? Auf dem Prüfstand als Marke „hier darf der Code nie ankommen“: Der Chip bleibt mit Fehler und Zeile stehen. In einer bewohnten Basis hat der Befehl nichts verloren. Das Spiel vergibt für hcf übrigens eine eigene Errungenschaft.

Übung

Aufgabe

Eine Volumenpumpe „Fuellung“ füllt einen Tank, ein Rohr-Analysator „Tank“ misst den Druck. Der Startcode hält bei Überdruck mit hcf an – probier ihn im Simulator aus. Die Pumpe bliebe dabei an.

Baue stattdessen einen Sperrzustand:

  • Normalbetrieb: Pumpe an, solange der Druck unter ZIEL (4000 kPa) liegt
  • Über MAXDRUCK (5000 kPa): Sperre mit Grund 1; Analysator weg (NaN): Sperre mit Grund 2
  • Gesperrt: Pumpe aus, Blinklicht „Alarm“ an, LED „Status“ zeigt den Grund (sonst 0)
  • Die Sperre bleibt, bis die Taste „Quittieren“ gedrückt wird und der Druck wieder gültig und höchstens MAXDRUCK ist

hcf ist in dieser Übung verboten.

Hinweise

Hinweis 1

Störung merken: sgt tmp druck MAXDRUCK und select sperre tmp UEBERDRUCK sperre, für NaN dasselbe mit snan und SENSORWEG.

Hinweis 2

Quittieren: sle tmp druck MAXDRUCK ist bei NaN 0. Mit and an die Taste koppeln, dann select sperre tmp 0 sperre.

Hinweis 3

Pumpe: erst slt pumpe druck ZIEL, dann mit seqz tmp sperre verunden. Lampe: snez tmp sperre.

Quiz

5 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Übung im Simulator bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall