robo_wolf,

na, ich schliesse aus Deinen Fragen, dass der Groschen nicht mehr weit hat !

Ja, bei der Beschreibung des Übergangskriteriums von A.0 nach A.1 habe ich in der pdf-Datei einen Fehler gemacht und eine Erklärung unterschlagen. Beides habe ich in der Version _V09 ausgebessert.

Zuerst ist das Kriterium für A.0->A.1 die Tatsache, dass von Ta0 oder Ta7 mindestens eine Tastenflanke ansteht (nicht, wie in Version _V08 geschrieben "keine der beiden"). Nachdem mir aber die Idee gekommen war, die Zeitmessung bei jeder Tastenflanke neu zu starten, habe ich das Übergangskriterium modifiziert, ohne das in der doku deutlich zu machen (ist jetzt in _V09 ergänzt). Und zwar genügt es ja, wenn die Zeitmessung neu begonnen und T0 erreicht hat, zu überprüfen, ob zu diesem Zeitpunkt Ta0 und Ta7 betätigt sind. Wenn das nämlich so ist, dann wurde eine von beiden zur Zeit t=-T0 neu betätigt. Fehlt zu diesem Zeitpunkt eine von beiden, oder sind ausser den beiden noch andere Tasten betätigt, geht's zurück nach A.0.

Deine Aufstellung muss also so aussehen:
A.0 Abfrage auf Ta0 und Ta7 nach Ablauf von T0 log. 1
Resultat "Nein" -> A.0
Resultat "Ja" -> A.1

A.1 Abfrage auf Ta0 und Ta7 nach Ablauf von T1 log. 1
Resultat "Nein" -> A.0
Resultat "Ja" -> A.2

Die Abfrage in A.2 hast Du so richtig dargestellt. Auch die Kurzbeschreibungen der Prozeduren ist so richtig. Nur bei MNU8CTL_ZYTCOUNT wird nicht nur der Wert von T0 heruntergezählt sondern auch der von (T1-T0) und der von (T2-T1). Bei MNU8CTL_HANDLER wird der Zeiger auf die auszuführende Prozedur aus den ersten beiden Bytes nach zh:zl geladen und dann mit der "icall"-Anweisung angesprungen, genau so, wie Du's beschreibst. Die Prozedur entscheidet mit dem Wert, den sie im T-Flag zurückgibt, welcher Folgezustand eingestellt werden soll. Das hast Du auch richtig.

Ciao,

mare_crisium