Das lernst du heute
- Stack eines anderen Chips lesen und schreiben
- Speicher löschen
- clrd mit ID
Ein Chip hat 512 Plätze im Stack. Braucht er mehr, oder sollen zwei Chips eine große Tabelle teilen, liest und schreibt er den Stack eines anderen Chips.
get und put mit einem anderen Gerät
Statt db setzt du das andere Gerät ein: einen Pin, ein Register mit ReferenceId oder ein define mit der Nummer.
get wert d0 5 # Adresse 5 im Chip an d0 lesen
put d0 5 wert # Adresse 5 im Chip an d0 schreiben
get wert id 5 # dasselbe ueber eine ReferenceId
Bei einem IC-Gehäuse landest du im Stack des Chips, der darin steckt. Die Reihenfolge bei put ist immer Gerät, Adresse, Wert.
Welche Geräte Speicher haben
Laut Spieldaten haben nur bestimmte Geräte einen Speicher:
| Gerät | Plätze | lesen | schreiben |
|---|---|---|---|
| IC-Gehäuse (Chip darin) | 512 | ja | ja |
| Logic Sorter | 32 | ja | ja |
| Autolathe und andere Fertiger | 64 | ja | ja |
| Satellitenschüssel (mittel) | 32 | ja | ja |
| Anzugschrank | 24 | ja | nein |
| Anwesenheitssensor | 18 | ja | nein |
Die Logic Memory hat keinen Stack, nur ihr Setting. Schreibst du in einen Speicher, der nur lesbar ist, meldet der Chip MemoryNotWriteable.
Speicher löschen: clr und clrd
clr d0 # ganzen Stack des Geraets an d0 auf 0
clrd id # dasselbe ueber eine ReferenceId
clr nimmt einen Pin, clrd eine ReferenceId. Beide setzen alle Plätze auf 0. sp des anderen Chips ändern sie nicht.
Ein fremder Speicher gehört dem fremden Chip. Schreibst du in Adressen, die er selbst benutzt, zerstörst du seine Daten. Sprecht ab, welche Adressen wem gehören, wie bei den Briefkästen aus Tag 115. Und clr löscht ohne Rückfrage alles.
Prüf das Gerät vorher mit bdns. Fehlt es, hält get mit einem Fehler an.
Schaubild
Übung
Aufgabe
An d0 steckt ein zweites IC-Gehäuse. Dein Chip führt in dessen Stack einen Zähler.
- Jeden Takt: Adresse 0 des Nachbarchips lesen, um 1 erhöhen, zurückschreiben. Der Stand steht in
r0. - Ein Druck auf den Knopf „Loeschen“ (Flanke) löscht den ganzen Speicher des Nachbarchips mit
clrdüber seine ReferenceId und setztr0auf 0. - Fehlt der Nachbarchip, passiert nichts – ohne Fehler.
Hinweise
Hinweis 1
Zuerst bdns speicher start – ohne Nachbarchip zurück zum yield.
Hinweis 2
Zähler: get, add, put speicher ADRESSE stand.
Hinweis 3
Löschen: Flanke prüfen, dann l id speicher ReferenceId und clrd id.
Quiz
4 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