Das ganze ist kein PC!

Wenn du schreibst waitms 300, dann wartet er auch wirklich 300ms und schaut nicht nebenbei was andere Schalter noch so machen. Der läuft sein Programm Schritt für Schritt von oben bis unten ab und verzeigt auf Anweisung ab und zu mal.

Und selbst der PC (außer Intel's HT im Ansatz) macht das so! Da haben die Steckkarten auch alle einen Interrupt der dann weiteres anfordert.

Bei 8 Tastern könnte man alle Taster zusätzlich mit Dioden von einander entkoppelt auf einen INT legen. Und in der SUB des INT wird dann abgefragt, welcher Taster tatsächlich gedrückt wurde.

Sonst geht es nur, wenn die Taster dauerhaft abgefragt werden. Aber dann ist keine Zeit mehr da um das restliche Programm auszuführen.
Es geht nunmal nur mit Interrupts das Programm zu verlassen.

Aber wenn du sagst, "es muss", musst du ja auch wissen wie :P