Au, weh, Stephan, daß deine Statistik über alle möglichen Einsprungpunkte zum Scheitern verurteilt ist - nun, dazu muß man nicht unbedingt den ganzen Korpus an existierenden C64-Programmen durchsuchen. Ein spezielles, gut funktionierendes und sinnvoll einsetzbares Gegenbeispiel reicht: Paradoxon-BASIC.
Der Loader von PB "schiebt" den BASIC-Interpreter unter I/O und der ersten Hälfte des KERNAL-ROMs. Dabei wird in etwa *jeder* Sprung-Befehl und alle anderen absoluten Adreßangaben (z.B. die Zieladressen beim Token-Dispatch, etc.) anhand einer *großen* Tabelle so umgepatcht, daß das BASIC dann ab $D000 im RAM laufen kann. Zusätzliche Routinen sorgen für das jetzt notwendige Bank-Switching, zum Schluß wird das ganze sogar noch durch eine BASIC-Erweiterung abgerundet und man bekommt 51199 BYTES FREE.
Mein Multiplikations-Patch arbeitet nur deswegen erfolgreich mit PB zusammen, weil erstens der betroffene Sprung-Befehl immer noch an der gleichen Stelle steht, dort anhand der Patchtabelle lediglich das High-Byte der Zieladresse angepaßt wird (mit konstantem Offset!) und die "Aufrufkonvention" der Zielroutine die gleiche ist - sie springt mit einem RTS zurück, genau wie das Original, und nicht etwa mit einem ("neuen") JMP, der bliebe dann nämlich ungepatcht!