User manual
29
C5: if Din.1 = 1 then Adr = Adr + 1
C6: if Din.2 = 1 then Adr = Adr + 1
C7: if Din.3 = 1 then Adr = Adr + 1
C8: if Din.0 = 0 then Adr = Adr + 1
C9: if Din.1 = 0 then Adr = Adr + 1
CA: if Din.2 = 0 then Adr = Adr + 1
CB: if Din.3 = 0 then Adr = Adr + 1
CC: if S1 = 0 then Adr = Adr + 1
CD: if S2 = 0 then Adr = Adr + 1
CE: if S1 = 1 then Adr = Adr + 1
CF: if S2 = 1 then Adr = Adr + 1
D0–DF: Unterprogrammaufruf (Call) Adr-high, Adr-low (0-15)
E0–EF: Rücksprung vom Unterprogramm (Return)
Ein Beispiel für die Verwendung bedingter Sprungbefehle findet man im Beispielprogramm in Kapitel 6. Es
wurde hier leicht modifiziert an die Adresse 0 gesetzt. Weil der obere Teil der Adresse (Adr-hi) im Ruhe-
zustand 0 ist, der Controller also auf der Seite 0 beginnt, muss der Befehl 80 hier nicht verwendet werden.
Wieder wird die Länge eines Tastendrucks gemessen und angezeigt. Alle Wartebefehle wurden aus dem
Programm entfernt, sodass es jetzt mit einer höheren Zeitauflösung arbeitet.
Adresse Befehl Daten Kommentar
00 C C S1 = 0?
01 3 1 Springe –1
02 4 0 A = 0
03 7 1 A = A + 1
04 5 4 Port = A
05 C E S1 = 1?
06 3 3 Springe –3
07 3 7 Springe –7
CC 31 40 71 54 CE 33 37
Listing 15: Reaktion auf die Taste S1
Der Sprungbefehl CC in Adresse 00 wertet den Zustand am Taster S1 aus. Im Ruhezustand ist S1 = 1. Die
Bedingung ist also nicht wahr und der Befehl in Adresse 01 wird nicht übersprungen. Dort steht ein relativer
Sprungbefehl auf den Anfang. Das Programm wiederholt die Befehle in Adresse 00 und 01 so lange, bis die
Taste gedrückt wird. Dann wird die Bedingung wahr und die Adresse 01 wird übersprungen. Damit beginnt
der eigentliche Messvorgang. Der Akku wird gelöscht, dann immer wieder um 1 erhöht und an die LEDs
ausgegeben. An der Adresse 05 steht ein weiterer bedingter Sprungbefehl CE. Hier ist die Bedingung für das
Überspringen eines Befehls S1 = 1. Da die Taste zunächst noch gedrückt ist, ist die Bedingung nicht wahr. Der
Befehl in 06 wird also ausgeführt und führt zu einem Rücksprung nach 03. Erst wenn die Taste losgelassen
wird, gelangt das Programm an die Adresse 07 und damit zu einem Rücksprung auf den Anfang.