Beiträge von Snoopy im Thema „MEGA65 - Fragen zur Software“

    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 :whistling: ).

    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:

    Code
    Adresse  C64  C64-Modus beim MEGA65 
    
    58552    170    32
    58553    170     2
    58554    170   253
    58555    170   208

    Also, ich halte ein

    Code
    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. :)

    Geht es dir um die Unterscheidung "C64 / MEGA65"

    Wenn es darum geht, kannst du z.B. den Wert aus Adresse 58555 auslesen. Wenn der 170 ist, hast du einen C64 (oder C64-Emulator) vor dir. Ansonsten ist es der MEGA65 (C64- oder C65-Modus):

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.