Wenn es über
COM/LPT angesteuert wird, dann denke ich, dass du 6 Bits pro Impuls bekommst, für jede Bahn/jedes Auto ein Bit.
Auf die schnelle: Brauchst ein Array of Record (CarNum: Byte; Rounds: Integer; ImpulseTicks: Array of Cardinal), initialisierst das und setzt bzw. erweiterst entsprechend das ImpulseTicks-Array nach der Auswertung des Impulses, der reinkommt.
Könnte man natürlich auch noch ordentlicher mit Klassen machen. Aber nur zum Anregen.