Hallo ekki,
da möchte ich spontan widersprechen. Die von dir vorgeschlagene Änderung bewirkt, dass nach Setzen von init überhaupt kein Reset mehr durchgeführt werden kann. Denn init wird auf TRUE gesetzt und somit ist der Ausdruck innerhalb der Klammer fortan immer wahr.
Im ursprünglichen Zustand wird bei positivem RST-Eingang auch bei init=TRUE last auf tx gesetzt und ms zurückgesetzt.
Störend ist dagegen diese Zeile:
ELSIF RST THEN
Dieser Zweig wird nie abgearbeitet, da bei RST=TRUE bereits der erste Zweig zuschlägt. Daher gehört nach meinem Dafürhalten diese Zeile ersatzlos gestrichen, wodurch die Variablen seconds und cycles ebenfalls bei init=FALSE und RST=TRUE zurückgesetzt würden.
Gruß,
mattsches