[Mir wäre] mehr an systematischen Lösungen gelegen, die keine lebenslange Erfahrung mit den C64-Interna voraussetzen, sondern auch für gelegentliche Programmierer (und User) deutliche Verbesserungen bringen.
So wild ist das nun auch wieder nicht. Zu KERNAL und BASIC gibt es gute Referenzwerke und man muß sich die ROM-Listings ja auch nicht zur Gänze reinziehen.
Die virtuelle Maschine, die dir da vorschwebt müßte ja auch gar nicht notwendigerweise im ROM beheimatet sein. Schließlich kann man am C64 die ROMs ja auch teilweise oder komplett wegblenden. Dann hast Du entweder 60K RAM + 4K I/O oder sogar volle 64K RAM - nur muß dein neues OS dann den I/O bei Interrupts zwischenzeitlich einblenden.
GEOS übernimmt auf diese Weise die volle Kontrolle über den Rechner, gibt aber auch noch andere Beispiele. Gerade bei GEOS ging es aber auch um ein Mehr an Funktionalität, das wurde aber schon mit eher zäher Geschwindigkeit erkauft - ohne REU geht da eigentlich nichts gescheit. Und das, obwohl der schnarchlangsame IEC-Bus mit schnellen Übertragungsverfahren in GEOS auf ein gescheites Tempo gebracht wurde.
Alternativ kann sich dein Entwurf an der KERNAL-Sprungtabelle orientieren und "einfach" nur das BASIC ersetzen. Zwischen BASIC und KERNAL ist die ZP ganz einfach aufgeteilt: alles von $02..$8F gehört zu BASIC und $90..$FA nutzt der KERNAL. Der KERNAL orientiert sich nur an den ersten 4 Bytes im BASIC ROM um es zu starten, andere Sprünge vom KERNAL ins BASIC gibt es nicht, man kann also das BASIC unabhängig vom KERNAL tauschen. In 9K lassen sich sicherlich noch andere Sprachen als das V2 BASIC unterbringen, wenn es bei einer ROM-Lösung bleiben soll. ![]()
Interessant fände ich den Ansatz, V2 vielleicht in SWEET16 zu re-implementieren. Eventuell auch nur Teile davon, so daß der unvermeidliche Geschwindigkeitseinbruch gering bleibt. Dazu müßten dann Teile der unteren ZP so umgeschaufelt werden, daß SWEET16 seine Register dort mit unterbringen kann.
Dann hätten Coder neben BASIC eben auch noch SWEET16 im ROM zur Verfügung und könnten das in eigenen Programmen nutzen. Und dann schauen wir mal, ob nicht doch noch eine ganze Menge Spiele trotzdem noch laufen (weil die das geänderte BASIC-ROM dann doch nicht interessiert). ![]()