Das MW300 := 1 würde ich aus der CASE-Selektion heraus nehmen und stattdessen die Anweisungen, die Du in der IF-Abfrage stehen hast, in den ELSE-CASE-Zweig schreiben. Die IF-Abfrage entfällt dann.
Die CASE-Selektion ist dann nur noch dafür zuständig, die Merker auf die Ausgänge zu übertragen und beeinflusst nicht mehr das SchiebeRegister.
Bis wohin das SchiebeRegister laufen soll, bevor es neu gestartet wird, muss dann allerdings noch im FUP realisiert werden.
Und zwar, ganz zu Anfang, über dem jetzt vorhandenen, MW300 vergleichen, ob es grösser als z.B. 9192 ist und wenn ja, mit MOVE 0 nach MW300 kopieren.