Es gibt 43 Antworten in diesem Thema, welches 5.295 mal aufgerufen wurde. Der letzte Beitrag (5. April 2024 um 08:58) ist von vossi.

  • Ah ok, ich habe alte CIAs. Der Test läuft jetzt erst mal ohne V6510.

    Wie lange dauert das etwa?

    Stören Eproms für Kernal+Char?

    1-2 Stunden sicher

    Das hab ich jetzt nach ner Stunde mit echtem 6510 bekommen:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Was bedeutet das?

    Kann man die ganzen Opcodes nicht überspringen? Die kann ja jeder klassische 6502 eh - da ändert der Adapter ja nichts dran. Der v6510 Adapter bildet ja nur den Port nach und übernimmt das AEC.

    Mit der REU und vielen anderen Erweiterungen habe ich je erfolgreich getestet...

  • Was bedeutet das?

    Das bedeutet, dass der Test "ane" nicht das erwartete Ergebnis erhalten hat - aber das ist bei diesem speziellen Test nicht so schlimm, der Opcode ist instabil und liefert nicht auf allen Chips und Systemen das gleiche Ergebnis. Der Test wartet dann auf einen Tastendruck bevor es weitergeht.

    Kann man die ganzen Opcodes nicht überspringen?

    Wenn ich mich recht erinnere muss man nicht zwangsweise mit dem "start"-Test anfangen sondern kann einen beliebigen aus dem Satz laden+starten.

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Also ich weiß nicht so recht was ich von dem Lorenz Test halten soll?

    Bei einigen instabilen Opcodes und bei vielen der Trap Tests kommen bei mir auf verschiedenen C64 mit echten 6510 CPUs diverse Fehler raus...

    Das kann ich mir denn mit dem V6510 natürlich schenken, wenn nicht mal echte 6502 die Test bestehen!

    Beim CPU-Port Test kommen bei meinen C64s mit echten 6510 auch andere Ergebnisse raus als der Test möchte?

    Mein V6510 verhält sich so wie ein echter 6510 in meinem Haupt-Test-C64.

    Ich habe den Port vorher im echten C64 genau untersucht und dabei festgestellt das alle 8 Bit-Register vorhanden sind und sich schreiben und lesen lassen. Genau dieses Verhalten habe ich in der CPLD des V6510 nachgebildet. Und da die Datasette läuft und auch diverse Spiele, Module und Erweiterungen die die drei Signale Loram, Hiram, Chargen verwenden, laufen - funktioniert er also offensichtlich.

    Alle anderen Tests nach den Opcode und TrapTests sind mit V6510 OK.

    Die einzige Hardware die bei mir bisher Zicken macht mit dem V6510 ist die Roos 80-Zeichenkarte - warum auch immer?

    Das CPM Modul läuft eh auf den meisten C64 nicht vernünftig - und genau so verhält sich auch der V6510.

    Christian

  • Also ich weiß nicht so recht was ich von dem Lorenz Test halten soll?


    Der Test ist die Referenz... nicht umsonst ist es beim VICE Emulator abgelegt.

  • Mein V6510 verhält sich so wie ein echter 6510 in meinem Haupt-Test-C64.

    Offensichtlich nicht. :nixwiss:

    Es gibt einen Grund, warum die Test-Suite entwickelt wurde. Dass manche der illegalen Opcodes instabil sein können, wurde ja erwähnt, das ist kein Manko der Test-Suite, sondern - wenn überhaupt! - des CPU-Designs. Diese Opcodes waren ja genau nicht dafür gedacht, verwendet zu werden, sondern sind ein "Abfallprodukt".

    Der CPU-Port hingegen ist ganz genau definiert, und obwohl ich die Test-Suite nicht kenne und selbst nicht "untersucht" habe, bin ich mir sicher, dass die das korrekt testet.

  • Ich habe den Port vorher im echten C64 genau untersucht und dabei festgestellt das alle 8 Bit-Register vorhanden sind und sich schreiben und lesen lassen.

    Der Port im 6510 ist gerade nicht 8 bit breit, sondern nur 6 bittig. IIRC ist er auch wirklich (also physikalisch) nur 6 bit breit, sprich, es gibt gar keine internen Register, die das DDR oder das Datenregister für bit 7 und bit 6 halten.

    EDIT:

    Es ist komplizierter. Es scheinen alle 8 Bits vorhanden zu sein, aber ohne Anschluß nach draußen. Wenn man aber ein Bit als Ausgang setzt, dann auf Input, kann man das Bit "floaten" sehen. D.h., zuerst gibt es den ausgegebenen Wert, nach kurzer Zeit wird es aber auf 0 gehen.

    Siehe z.B. hier: Bitte melde dich an, um diesen Link zu sehen.

    Soweit ich mich erinnere war die Zeit sogar temperaturabhängig, so dass das von irgendeinem Programm mal benutzt wurde, um die CPU-Temperatur zu bestimmen - wenn auch sehr ungenau.

  • Es ist komplizierter. Es scheinen alle 8 Bits vorhanden zu sein, aber ohne Anschluß nach draußen. Wenn man aber ein Bit als Ausgang setzt, dann auf Input, kann man das Bit "floaten" sehen. D.h., zuerst gibt es den ausgegebenen Wert, nach kurzer Zeit wird es aber auf 0 gehen.

    Bitte melde dich an, um diesen Link zu sehen.

    Es sind auch tatsächlich alle 8 Bits da... siehe Bild

  • Mein V6510 verhält sich so wie ein echter 6510 in meinem Haupt-Test-C64.

    Offensichtlich nicht. :nixwiss:

    Es gibt einen Grund, warum die Test-Suite entwickelt wurde. Dass manche der illegalen Opcodes instabil sein können, wurde ja erwähnt, das ist kein Manko der Test-Suite, sondern - wenn überhaupt! - des CPU-Designs. Diese Opcodes waren ja genau nicht dafür gedacht, verwendet zu werden, sondern sind ein "Abfallprodukt".

    Der CPU-Port hingegen ist ganz genau definiert, und obwohl ich die Test-Suite nicht kenne und selbst nicht "untersucht" habe, bin ich mir sicher, dass die das korrekt testet.

    Bezüglich der Opcodes verhält sich mein V6510 natürlich genau wie der 6502 der in ihm steckt - und alle alten NMOS 6502 Derivate haben ja wohl den gleichen Befehlsvorrat.

    Wenn also in meinem V6510 ein alter mos6502, um6502, r6502 oder sy6502 steckt sind die opcodes immer gleich. Natürlich können sich die instabilen codes von cpu zu cpu anders verhalten - genau wie ja offensichtlich auch unter den 6510s.

    Den CPU Port habe ich vorher am 6510 untersucht. Bei meinem Test-C64 konnte ich alle 8 bit setzen, löschen und auslesen. Wenn sie als Eingang geschaltet sind, liest man natürlich den Eingang, bzw. bei den bits 6 und 7 ohne pads liest man eine 0. Schaltet man sie wieder als Ausgang, liest man wieder den vorher geschriebenen Ausgabewert. Offensichtlich funktionieren also auch alle Richtungsregister, sonst könnte man die bits 6,7 ja nicht umschalten.

    Theoretisch könnte es natürlich auch andere 6510 Revisionen geben, aber bei meinem hier war das so.

    Abgesehen davon, kann ich im hdl code natürlich auch das Verhalten der Port bits 6 und 7 beliebig ändern.

    Ich habe die CPU-Port Prüfung vorhin mit drei C64 mit echten 6510 gemacht und bei allen war der Port Test fehlerhaft. Der MMU-Test, der den Port ja echt verwendet war aber OK!

    Nun habe ich noch mal etwa 10x 6510 und 8500 CPU getestet und bei 2 davon war der CPU Port Test auch fehlerhaft.

    Bei den "angeblich" defekten 6510 konnte ich aber beliebig alle Port bits setzen, löschen und umschalten - ohne Probleme - und auch der echte MMU Test war erfolgreich.

    Ich habe mir den source code mal kurz angeschaut - bin aber noch nicht so richtig schlau geworden, wie er da prüft. Es sieht für mich so aus, als ob er nacheinander Reg. 0 und 1 in verschiedenen Sequenzen auf 255 und 0 setzt und dann schaut was die Eingänge unmittelbar danach anzeigen. Mein v6510 ist natürlich so programmiert das er die Eingänge 6 und 7 als 0 anzeigt. Aber nach seinen Sequenzen erwartet er teilweise beide als 1 - das ist dann natürlich falsch. Und auch in einigen meiner echten 6510 sind dort teilweise ja Fehler - die übrigens bei erneutem Testdurchlauf auch anders ausfallen. Also klappt der Test wohl auch nicht mit allen echten 6510... - oder sind die alle defekt?

    ..also ich weiß nicht so recht was ich von diesem Test nun halten soll --- echte Datasette und MMU Test funktionieren ja mit den "fehlerhaften" CPU's und meinem V6510 ;)

    Es betrifft ja wohl auch lediglich das Verhalten der bits 6 und 7 als Eingänge ohne Pads - verwendet die wirklich ein Programm???

    Christian

  • Bei meinem Test-C64 konnte ich alle 8 bit setzen, löschen und auslesen. Wenn sie als Eingang geschaltet sind, liest man natürlich den Eingang, bzw. bei den bits 6 und 7 ohne pads liest man eine 0

    Laut der Aussage des Links, den ich vorhin geschickt habe, stimmt das nicht. Das Verhalten der bits 6 und 7 wäre demnach so, dass direkt nach dem Schreiben eine 1 gelesen wird. Nach einiger Zeit (im Bereich bis zum ein paar hundert Millisekunden) fallen sie erst auf die 0 zurück.

    Mein v6510 ist natürlich so programmiert das er die Eingänge 6 und 7 als 0 anzeigt. Aber nach seinen Sequenzen erwartet er teilweise beide als 1 - das ist dann natürlich falsch.

    Das Verhalten wäre laut des Links oben falsch.

    Wobei ich auch schon anderweitig gelesen habe, dass das Verhalten nicht stabil ist und schon die 6510 sich recht unterschiedlich verhalten. Wie gesagt, das wurde irgendwann mal auch genutzt, um die Temperatur (ungenau) zu bestimmen, weil das Timing wohl temperaturabhängig sein soll.

    Das ganze schreibe ich hier allerdings rein theoretisch, weil ich da nie irgendwelche eigene Experimente gemacht habe.

  • Laut der Aussage des Links, den ich vorhin geschickt habe, stimmt das nicht. Das Verhalten der bits 6 und 7 wäre demnach so, dass direkt nach dem Schreiben eine 1 gelesen wird. Nach einiger Zeit (im Bereich bis zum ein paar hundert Millisekunden) fallen sie erst auf die 0 zurück.

    Wobei ich auch schon anderweitig gelesen habe, dass das Verhalten nicht stabil ist und schon die 6510 sich recht unterschiedlich verhalten. Wie gesagt, das wurde irgendwann mal auch genutzt, um die Temperatur (ungenau) zu bestimmen, weil das Timing wohl temperaturabhängig sein soll.

    Ich habe das selbst gerade noch mal mit mehreren 6510 geprüft. Bit 6+7 sind definitiv vorhanden und sind auch über Minuten absolut stabil.

    Androsid hat doch auch schon bestätigt, das die 8 Register im 6510 vorhanden sind.

    Interessant war, das eine CPU, die gestern beim Porttest ok war nun beim ersten mal auch einen Fehler hatte.

    Also scheinbar ist der Test unbrauchbar!

    Ich könnte mir höchstens vorstellen, das wenn man einen Ausgang auf 1 programmiert und dann schnell auf Eingang umschaltet man evtl. noch ganz kurz die 1 am Eingang lesen kann durch die Kapazität. So ein Verhalten hat das CPLD natürlich nicht.

    EDIT: Exakt das obige ist in deinem Link beschrieben - du hast das nur falsch verstanden. Alle 8 Port und Richtungsregister sind vorhanden und können geschrieben und gelesen werden. Lediglich durch schreiben einer 1 in den Ausgang und nach Umschaltung auf Eingang kann man ganz kurz die 1 noch lesen wegen der Kapazität.

    Dies Verhalten ist scheinbar bei den CPUs etwas unterschiedlich.

    Der Test ist also genau so sinnlos wie das Testen von instabilen opcodes - kann man machen - hat aber keine Aussagekraft!

    Christian

  • Also scheinbar ist der Test unbrauchbar!

    Der Test ist brauchbar, der liefert das zurück, was passiert bzw. beobachtet wird:

    Das Verhalten der bits 6 und 7 wäre demnach so, dass direkt nach dem Schreiben eine 1 gelesen wird. Nach einiger Zeit (im Bereich bis zum ein paar hundert Millisekunden) fallen sie erst auf die 0 zurück.

    Diese Zeit hängt offenbar von nicht konkret beeinflussbaren Faktoren ab, u. a. wohl auch Exemplarstreuung, etc.

    Meine Erinnerung mag mich täuschen, aber ich meine, es gab außerdem auch einen Unterschied 6510/8500 (beim 8501/8502 klarerweise).

    Die andere Frage ist natürlich, inwieweit dieses ... "sonderbare" Verhalten der 6510-CPU überhaupt nachgebildet werden muss. :nixwiss:

    Aber deswegen die Test Suite als "unbrauchbar" zu bezeichnen, ist ein wenig übers Ziel hinausgeschossen, denke ich.

  • Also scheinbar ist der Test unbrauchbar!

    Der Test ist brauchbar, der liefert das zurück, was passiert bzw. beobachtet wird:

    Aber deswegen die Test Suite als "unbrauchbar" zu bezeichnen, ist ein wenig übers Ziel hinausgeschossen, denke ich.

    Ich habe nicht geschrieben, das die Test Suite unbrauchbar ist.

    Lediglich das Testen von Eigenschaften die instabil sind macht wenig sinn. Wenn das Verhalten von ANE auf CPU1, CPU2 und CPU3 anders ist, welche CPU soll denn der Emulator nun nachbilden???

    Beim CPU Port schreibt er beim "Fehler" der Kapazitäten der nicht herausgeführten Pins: After: und Right: - aber Right ist ja nicht korrekt, denn das ist doch bei den verschiedenen CPUs unterschiedlich.

    PS: ich habe einige 8500 getestet - auch von denen haben einige den Test bestanden, andere nicht.

    Zitat Kinzi: Die andere Frage ist natürlich, inwieweit dieses ... "sonderbare" Verhalten der 6510-CPU überhaupt nachgebildet werden muss. :nixwiss:

    -> Durch die Prüfung so eines Verhaltens kann eine Software natürlich feststellen, ob sie auf einem echten 6510 oder einem Ersatz läuft ;) (Ich denke der Monotech TTL Ersatz wird dieses Verhalten ebenfalls nicht haben)

    androSID Bildet der MockA65xx dieses Kapazitive Verhalten der Pads von bit 6+7 nach?

    In einer FPGA wäre das ja ggf. möglich - fragt sich nur welche Haltezeit korrekt ist, da das ja auch echte 6510 unterschiedlich machen... - Hauptsache die Testsuite läuft durch :D

  • Ich habe nicht geschrieben, das die Test Suite unbrauchbar ist.

    Stimmt. Ich habe das wohl falsch interpretiert und dann "mitgeschleift":

    Also ich weiß nicht so recht was ich von dem Lorenz Test halten soll?

  • Die Test Suite mach Sinn um einen Emulator oder eine FPGA zu prüfen, ob alle Befehle mit allen Adressierungsarten und alle IO Chips korrekt nachgebildet werden.

    Aber der V6510 ergänzt ja nur den Port und AEC. Und da ist der Test mit Hardwareerweiterungen, die z.Bsp. auch DMA nutzen viel wichtiger. An den Befehlen wird ja nichts beeinflusst.

    Bei der Datenbus Umschaltung habe ich eine kleine Ausgabe-Holdzeit mit eingebaut (Das CPLD ist ja sehr schnell) - ob das notwendig ist weiß ich nicht, aber ein echter 6502/6510 hat ja eine Holdtime von 10-30ns, die man dann auch weitergeben sollte.

    Der Monotech TTL-Adapter hat das nicht (aber die TTLs sind ja auch träger) und scheint auch zu funktionieren?

    PS: Mein V6510 ist übrigens extrem preiswert:

    Eine CPLD bekommt man in China für 2 Euro, Platine bei 30 Stück keine 50 Cent, Pinleiste, Sockel, Kondensatoren und Regler in China etwa 1,50 Euro -> Also etwa 4 Euro und etwas Lötarbeit ;)

    Ich habe einen Xilinx Programmieradapter aus China und verwende xs3prog auf Win7 oder openfpgaloader unter Macos.

    So einen Programmer findet man unter: JTAG-SMT2

    6502 bekommt man ja problemlos noch günstig in China - selbst die relabelten funktionieren ja meist - nur CMOS darf es natürlich nicht sein! (Ich habe gerade 10x mos6502A bekommen, welches aber cmos chips sind ;) )

    Christian

  • Kannst du feststellen, welche CMOS 6502 das sind? Ich hatte ja das umgekehrte Erkebnis: Wollte bewusst R65C02 kaufen und bekam gewöhnliche.

  • Kannst du feststellen, welche CMOS 6502 das sind? Ich hatte ja das umgekehrte Erkebnis: Wollte bewusst R65C02 kaufen und bekam gewöhnliche.

    Nein, ich musste sie zurückschicken um das Geld zurück zu bekommen.

    Stromaufnahme war 0,8mA statt der nmos-üblichen 78mA

  • androSID Bildet der MockA65xx dieses Kapazitive Verhalten der Pads von bit 6+7 nach?

    Ja. Die Suite läuft bei mir komplett durch.

    PS: IIRC stürzt die Suite bei irgendwelchen Tests ab, wenn kein Original-Kernal drin ist.


  • 6502 bekommt man ja problemlos noch günstig in China - selbst die relabelten funktionieren ja meist - nur CMOS darf es natürlich nicht sein! (Ich habe gerade 10x mos6502A bekommen, welches aber cmos chips sind ;) )

    6502A als NOS wird langsam schwer(er). Viele Lagerbestände sind wohl die letzten 2-3 Jahre aufgekauft worden - zumindest von den

    mir bekannten Händlern. Bei den Chinesen habe ich meistens nur refurbished Ware gefunden.


  • 6502 bekommt man ja problemlos noch günstig in China - selbst die relabelten funktionieren ja meist - nur CMOS darf es natürlich nicht sein! (Ich habe gerade 10x mos6502A bekommen, welches aber cmos chips sind ;) )

    6502A als NOS wird langsam schwer(er). Viele Lagerbestände sind wohl die letzten 2-3 Jahre aufgekauft worden - zumindest von den

    mir bekannten Händlern. Bei den Chinesen habe ich meistens nur refurbished Ware gefunden.

    ja, natürlich - von Ali sind es meist ausgelötete. Aber ich hab da eine ganze Menge gute bekommen. Für mich reicht das auf jeden Fall locker ;)

    ...und die bekommt man immer noch günstig. Vor allem UMC Chips gibt es häufig sogar nicht neu gelabelte, echte alte Chips.

    (Ich werde auch nie SID, 6509, 6510 oder 6525 Ersatz benötigen :D )

  • Die Suite läuft bei mir komplett durch.

    Dann ist dein fpga-Ersatz je besser als die meisten echten C64, da er die Suite fehlerfrei ausführt ;)

    Ich hab nun diverse C64 getestet und bei den Trap Tests hat keiner alle geschafft. Etwa 1/3 versagt beim CPUPort Test, da das kapazitive Verhalten der Bits 6+7 nicht so ist wie Wolfgang es für "right" hält.