Es gibt eine - meines Erachtens relative umständliche - Methode, wie man rausfindet, welcher VIC-Chip (II, III oder IV) vorhanden ist. Die ist im "großen Handbuch" mit einem Beispiel beschrieben. Hiermit kann man nicht nur C64 und MEGA65 trennen, sondern auch erkennen, ob das Programm auf einem C65 läuft (okay, ist wahrscheinlicher vom Blitz getroffen zu werden, aber theoretisch könnte es ja sein
).
Bitte melde dich an, um diesen Anhang zu sehen.
Bitte melde dich an, um diesen Anhang zu sehen.
Für den praktischen Normalfall halte ich ein Auslesen von einer oder zwei,drei Adressen für absolut ausreichend, um zu trennen, ob das Programm auf einem C64 läuft oder im C64-Modus des MEGA65.
Um die Möglichkeit eines alternativen ROMs beim C64 miteinzubeziehen, ist es dann in der Tat sicherer, die fixen Werte vom C64-ROM-Teil des MEGA65 als Vergleichswert zu nehmen:
Also, ich halte ein
10 IF PEEK(58555) = 208 THEN PRINT "MEGA65":GOTO 30
20 PRINT "C64"
30 REM HIER GEHT ES WEITER ...
für hinreichend sicher. Wer will kann auch noch die drei anderen Werte vergleichen, das sollte dann auch "höchste Sicherheit" ausreichend sein. Die Wahrscheinlichkeit, dass irgendein C64-ROM exakt diese Werte an dieser Stelle hat, halte ich für extremst gering, es sei denn es springt auf einem C64 zurück zum C65-Modus. ![]()