Ich hab mal eine rein Flag gesteuerte Hauptroutine in Assembler gebastelt.
Die Hauptroutine bestand nur aus Abfragen, ob bestimmte Flags gesetzt waren und CALL Sprüngen für die entsprechende Verarbeitung.

Die Hauptroutine wird somit sehr schnell durchlaufen und die Subroutinen nur bei Bedarf angesprungen. Die Hauptroutine wird dadurch auch sehr übersichtlich.

Der Vorteil ist auch, das man die Subroutinen anpassen kann ohne die Hauptroutine zu verändern.