cbm2 pet500 burn-in diagnostic test disassembled und verbessert!

  • Hallo,

    da es mit dem cbm2-burnin test mit CMOS 6502 im NU6509-Adapter immer einen TOD-Fehler gibt, habe ich den mal komplett disassembliert und kommentiert ;)

    GitHub - vossi1/cbm2-burnin: cbm2 burnin-test
    cbm2 burnin-test. Contribute to vossi1/cbm2-burnin development by creating an account on GitHub.
    github.com


    Dabei sind mir auch drei Fehler aufgefallen, die ich beseitigt habe. Dazu einfach im Sourcefile die Semikolons vor den gewünschten Fixes entfernen und 22000.b einfach mit ACME assemblieren.

    Der Loader und Load2.prg haben sich nicht verändert.


    Wo der CMOS-TOD-Fehler entsteht habe ich lokalisiert, aber trotz highspeed analyse der Signale mit dem LA kann ich keinen Grund dafür erkennen. Der CIA gibt einfach die falsche Sekunde heraus - warum auch immer?

    Ich habe insgesamt 5x 6xx und 3x 7xx boards sowie verschiedene CIAs getestet - NMOS immer OK, CMOS immer falsch.


    PS: Wenn die Bank2 defekt ist, kann man im Loader mit z. Bsp. x=1 eine andere Bank für den Start wählen. Bei mir war natürlich gerade in Bank2 im 620 ein RAM kaputt.


    Außerdem habe ich in den P500 Diagnostic Test nun noch den Timer-Test, TOD-Test sowie die ROM-Checksummen eingebaut. Der P500 Test wurde von Commodore ja nie richtig fertiggestellt ;)

    GitHub - vossi1/p500-test: commodore p500 diagnostic test disassembling
    commodore p500 diagnostic test disassembling. Contribute to vossi1/p500-test development by creating an account on GitHub.
    github.com


    Interessant ist, das hier ebenfalls CMOS-6502 im NU6509 Adapter diesen TOD Fehler haben!

    Der TOD-Test prüft nicht die Zeit selbst, sondern den Wechsel aller 10tel, Sekunden, Minuten, Stunden sowie AM/PM. Außerdem wird der Alarm geprüft.


    Falls es Jemanden interessiert:

    Links der Code, wo der TOD-Fehler auftritt. Nachdem die 10tel von 9 auf 0 gewechselt sind wir geprüft ob sie 0 sind and dann werden die Sekunden geladen und verglichen ob es nun 2 sind. Sie sind aber mit NMOS-CPU dann immer noch 1!

    Rechts sind die exakten Signale mit 50MHz aufgezeichnet wo der CS vom CIA zum lesen aktiviert wird. Der CIA liefert 1 und am 6502 hinter dem NU6509 kommen auch die falschen 1 an.

    PS: Mein Gould LA hat hier mit CPU-Takt 2MHz 40 Kanäle aufgezeichnet - getriggert genau dort wo der Fehler eintritt (write to tod_state=ff). Gleichzeitg hat er dann 8 Highspeed Kanäle getriggert um einige Signale genau anzuschauen. Schon genial was die Anfang der 80er mit 8086 CPU so gebaut haben - war allerdings damals unbezahlbar!!!