Posts by JMP$FCE2

    Hallo x1541


    In einigen Punkten gebe ich Dir recht.
    Wenn der Rechner nach dem einschalten schon rumzickt oder weniger BASIC-Ram meldet,
    dann brauche ich das Programm nicht weil dann ist mir schon klar das da was nicht stimmt.


    ART ist primär für die kleinen fiesen Speicherfehler gedacht die sich sonst nicht zeigen weil
    z. B. der C64 beim Selbsttest nicht das gesammte RAM überprüft oder es gibt Bitfehler
    ab Adressen die sonst unter dem Basic/Kernal liegen (hatte ich schon).
    Sowas merkt man normalerweise nicht und wundert sich nur warum z.B. GEOS oder
    einige Demos die Grätsche machen.


    ART findet diese Fehler wenn sie bestehen.
    Und man kann recht beruhigt sein wenn ART keine Fehler meldet und das eventuelle Problem woanders suchen.


    ZEROPAGE und STACK sind natürlich TABU gewesen, sonst könnte ich diese Bereiche nicht testen...
    Daher selbstmodifizierender Code.


    Über eine Eprom-Version werde ich mal nachdenken... Da würde sich das BASIC-ROM
    anbieten und ich hätte noch Platz für andere Testroutinen.


    Grüße
    Björn

    wenn man einen Memtest auf dem PC laufen lässt läuft der normalerweise in einer Endlosschleife oder zumindest über einen ganzen Huafen Passes, deshalb wohl die Aussage, das dauere Stunden/ Tage. Wobei ich mir schon denke, dass eine inziger Pass, also einmal write/ read noch nicht zu 100% aussagt ob der Speicher wieklich ok ist, also ich meine: wird bei einem Durchlauf wirklich ein defekters RAM sicher entdeckt?
    Wäre evtl. sinnvoll, das wirklich auch über ein paar hundert Passes laufen zu lassen - kann man ja auch einfach dementsprechend oft laufen lassen.
    An einer c128 Version wäre ich dann auch interessiert ;)

    Sicherlich! ich wollte jetzt auch nicht den MEMTESTx86 kopieren,
    der Pass wird 4-mal geprüft mit den Werten $00 $55 $aa und $ff
    Der Speicher wir keineswegs nur einmal getestet sondern 4 mal.
    Erst wenn alle Testpattern fehlerfrei durchgelaufen sind wird der Speicher als OK gemeldet.


    die C128 Version nehme ich jetzt mal in in Angriff...


    Grüße
    Björn

    Sind ja nur 64K ;) ein Durchlauf braucht ca 5 Sekunden.
    Und ja, das ist sehr Aussagekräftig. Wenn du den C64 vorher 20 Minuten warmlaufen lässt
    und dann ART startest und ART keine Fehler meldet ist dein Speicher zu 99,99% OK


    Der eingebaute Speichertest im C64 testet leider nicht den kompletten Speicher sondern nur
    von $0800 bis $9FFF und das auch nicht mit verschiedenen Pattern.


    Probiers doch einfach aus.


    Grüße
    Björn

    ART (Advanced Ram Test)


    RAMTEST.D64


    Ein Programm zur gründlichen Überprüfung des Speichers im C64.
    Dieses Programm testet den kompletten Speicher von $0002 - $FFFF
    mit verschiedenen Pattern: $00 (%00000000) $55 (%01010101)
    $AA (%10101010) und $FF (%11111111)


    Der Speicher wird nacheinander mit den Pattern beschrieben und danach
    wieder ausgelesen. ein Speicherfehler wird angezeigt mit $Adresse
    sowie den Werten WRITE=(Pattern das geschrieben wurde) und
    READ=(Wert der nach dem schreiben ausgelesen wurde).
    So ist es recht einfach anhand des READ Wertes den defekten
    RAM-Baustein zu finden.


    Beispiel:


    RAM ERROR AT $A3FC WRITE $FF READ $F7


    das Bedeutet der Wert $FF (%11111111) wurde in den Speicher in
    Adresse $A3FC geschrieben und danach wurde $F7 (%11110111) gelesen.
    In diesem Fall ist das Bit 3 nicht gesetzt und würde bedeuten das in
    einem C64 mit 8 RAM-Bausteinen das IC U10 defekt ist.


    Tabelle:


    U21 Bit 0
    U9 Bit 1
    U22 Bit 2
    U10 Bit 3
    U23 Bit 4
    U11 Bit 5
    U24 Bit 6
    U12 Bit 7


    Bei einem C64 mit 2 RAM-Bausteinen ist es dann das IC U10 defekt


    U10 Bit 0-3
    U9 Bit 4-7


    ART ist sehr hilfreich wenn es darum geht reparierte C64 zu testen
    oder um den Grund für unerklärliche Abstürze zu finden.


    Das Programm ist komplett in Assembler geschrieben und testet
    in 2 Durchläufen.
    Programm startet ab $0900
    1. Speichertest von $8000 - $FFFF
    danach kopiert sich das Programm nach $8900
    2. Speichertest von $0002 - $7FFF


    bei Erfolg gibt es diese Meldung: RAM $0002-$FFFF OK


    Die Speicherstellen $0000 und $0001 werden nicht getestet, da diese
    die CPU direkt ansprechen, und falls diese defekt sein sollten der C64 eh
    nicht startet.


    ART ist Freeware und darf nach belieben kopiert und verändert werden.
    Ein dokumentiertes Assemblerlisting kann ich auf Anfrage per Mail
    verschicken.


    Grüße,
    Björn
    (JMP$FCE2)