Hab mir das Programm kurz angesehen. Dabei entsteht folgender Eindruck:
$0819: Ziemlich direkt nach Start des Programms wird eine Unterroutine bei $1291 zur Initialisierung aufgerufen.
$081f: Im Anschluß wird eine weitere Initialisierungsroutine aufgerufen, die den Variablenspeicher löscht. Wohl aus Speicherplatzgründen wird hierbei die nun nicht mehr gebrauchte Routine von $1291 dem Variablenspeicher zugerechnet und ebenfalls mit dem Wert 0 überschrieben.Wenn man nun das Programm ein zweites Mal startet, fehlt die Routine bei $1291, und der Prozessor trifft nur auf ein BRK.
Das wäre dann eindeutig ein Fehler im Compiler, wenn korrekt compiliert wurde...