Beiträge von androSID im Thema „Unterschiedliche PLA Versionen bei CBM-II 600er und 700er Serie!?“

    Ich hatte gerade eine andere Idee:

    Nehmen wir an, das die erste Version der PLA falsch war.

    Für die Korrektur wurden die Zeilen

    L00320 0111111111010110011110101111111111111111*
    L01160 1011111111111111111111111111111111111111*

    deaktiviert.

    Nun die Annahme: Die Korrektur wurde nun einfach hinten dran gehängt im JEDEC
    in den - bis zu dieser Korrektur - noch freien Zeilen:

    L01200 und L01240!

    Der Grund für die Annahme ist einfach zu sehen, wenn man die "alten" und "neuen" Zeilen übereinanderschreibt:
    (Wegen der Übersichtlichkeit habe ich ein paar Blanks eingeführt.)

    L00320 01 111111110101100111101011111111 11111111*
    L01240 10 111111110101100111101011111111 11110111*

    L01160 10 111111111111111111111111111111 11111111*
    L01200 01 111111111111111111111111111111 01111111*

    Any ideas? (Wie man sieht sind die Zeilen nur durch eine geänderte Polarität in der ersten Zelle == !CAS anders!)

    Vielleicht haben wir alle noch gar keine REV.2 zu Gesicht bekommen? Evtl. kann das auch diese merkwürdige Prüfsumme 7E17 (welche kleiner als 7F5D ist) erklären.

    Es gibt im C64-PLA zwei Produktterme, welche eine falsche Eingangspolarität des /CAS-Leitung hatten und deaktiviert wurden. Diese kann man bedenkenlos entferden. Damit kommt man dann auf eine Prüfsumme von 769F. Gesetzt der Fall, bei der Bereinigung wurde etwas falsch gemacht (das könnte die REV.2 sein), dann wurde das korrigiert und zu 7E17 geändert, welches wieder die gleiche Funktion hat.

    Ist es nicht umgekehrt: Die Deaktivierung fand ja statt, in dem alle Fuses im Oder-Zweig der beiden Terme gebrannt wurden; d.h. die Prüfsumme hat
    sich um max. 0x1FC erhöht (Es war ja mind. das niedrigeste Bit gesetzt; daher 0xFE * 2!)
    Und: Die Differenz zw. der Rev.2 Prüfsumme und Rev.3 (ausgelesene Prüfsumme) ist: 0x146.

    Wir müssten die beiden Oder-Zweige also so verändern (aus 1 wieder 0 machen), so das eine um 0x146 niedrigere Prüfsumme rauskommt.

    Aber: Wozu? Dann wüssten wir was C= falsch gemacht hat - und hätten wahrscheinlich ein PLA das mit nix mehr funktioniert.


    Ein Revisionswechsel muß sich nicht am binären Inhalt wiederspiegeln. Es gibt noch ein weiters Mytherium bei Commodore. Die beiden RRIOTs für die ersten 2040 mit dem DOS 1.x sind auch identisch. D.h. der ROM-Inhalt von 901466-01 und 901466-02 sind gleich!

    Es wäre also mögich, daß hier nur der Herstellungsprozeß geändert wurde. Evtl. wurden bei der Rev. 3 andere PLAs als Grundlage verwendet als bei Rev. 2?

    Ich kann mir nicht vorstellen, das C= sich für den Herstellungsprozess der zugelieferten 82S100 interessiert hat! Die Aufkleber "Rev. X" waren allesamt
    immer auf einem 82S100 - nicht auf Teilen, die C= selbst produziert hat.

    ps: Ich würde hier Jogi recht geben... nur ist - wie bereits erwähnt - in meiner Rev.2 der exakt gleiche Inhalt wie in den Rev.3 - die ich bisher zum auslesen in die
    Finger bekommen habe!

    So schlimm ist das Adapterbauen aber auch nicht.
    Ich hatte mir die fix aus ein paar P- Sockeln gebaut.
    Einen für Eprom als PLA und einen für PLA als Eprom (die sind nicht gleich) um RealPLAs zu testen.

    Ist es auch nicht... aber ich habe einen (zugegeben übertriebenen) Hang zum Perfektionismus bei manchen Sachen.

    Ich würde - wenn ich das selber machen würde - wohl nicht davor zurückschrecken ein Layout zu machen und Platinen
    machen lassen - auch wenn dies wirtschaftlich gesehen völliger Käse ist!

    Aber bei manchen Sachen gehe ich keine Kompromisse ein! ;)

    Einen Eprom-PLA-Adapter habe ich für dich über. Dank deiner Hilfe, benötige ich ja keine PLA-Eproms mehr. ;)

    Wenn Du Ihn wirklich nicht mehr brauchst, nehme ich den gerne an... damit könnte ich sicherstellen, das die JEDEC Files die ich auslese
    (und sofern nichts dagegen spricht auch öffentlich mache) auch wirklich 100% OK sind.

    Und ich spare mir natürlich das löten eines Adapters... :bgdev

    Auch wenn ich auf die Schnelle noch nicht so ganz mitkomme - da müsste ich erstmal den JEDEC-Standard studieren - sieht das schonmal sehr interessant aus.

    Ich bin nicht so gut im erklären... aber frag' ruhig; ich versuche dann besser zu erklären
    was ich da wie gemacht habe! :dafuer:

    So auf die schnelle: Jede '1' bedeutet: Fuse zerstört. '0' bedeutet: Fuse bleibt intakt.

    Die Aufteilung in Zeilen und Spalten habe ich so gewählt, das jede Zeile einem Min-Term (AND Verknüpfung aller relevanten Eingänge) entspricht.
    D.h. die ersten 2x 16 Bytes besagen welche Eingänge für diesen Term verwendet werden.

    Die letzten 8 Byte (Fx-Spalten) einer Zeile besagen, auf welchen Ausgang dieser Min-Term Einfluß hat.
    ('1' heisst: Der Minterm wirkt sich nicht aus -> die Verbindung (Fuse) wird zerstört.)

    Alle für einen Ausgang relevanten Min-Terme (also die mit '0' in der jeweiligen F-Spalte werden mit OR verknüpft).

    Die 8 einzelnen Byte in am Schluß (L1920) geben nur an, ob nach allen Verknüpfungen der Ausgang noch invertiert werden soll.
    Die von mir betrachteten F2 und F7 haben dort eine '0' -> Keine Invertierung.

    Auch wenn ich auf die Schnelle noch nicht so ganz mitkomme - da müsste ich erstmal den JEDEC-Standard studieren - sieht das schonmal sehr interessant aus.
    Sehr gut, daß Du Dich da so reinhängst, vielen Dank dafür!
    Ich habe bisher nirgends sonst gesehen, daß sich jemand in diese Materie so reinkniet - und damit für deutlichen Erkenntnisgewinn sorgt.

    Einerseits erfreulich, daß mein ALL-03 offenbar normgerechte Dateien erzeugt.
    Andererseits ärgerlich, daß andere Programmiergeräte das zum Teil nicht tun.

    Es gibt aber noch einen Punkt, der mich stutzig macht:
    Die Prüfsumme der -04 PLA aus dem CBM 610 aus dem ALL-03-File stimmt nicht mit der auf dem Aufkleber überein.

    Das ist in der Tat etwas "unschön"... aber das wir grundsätzlich nutzbare JEDECs auslesen ist zumindest mal beruhigend.
    Ich wäre auch nicht verwundert, wenn C= dort nicht die Prüfsumme der Fuses, sondern z.B. deren Sourcefile o.ä.
    draufgedruckt hat. Aber ich werde es mit dem mir vorliegenden Rev.2 PLA (aus dem 326er Board) nochmal
    testen bzw. einfach beide Prüfsummen erzeugen und vergleichen.

    Auf jeden Fall muß ich meinen 82S100 Simulator anpassen, damit er auch mit richtigen (also nicht meinen eigenen JEDECs!)
    umgehen kann... ich werde auch mal bei eetools (Hersteller meines Programmers)
    einen Fehlerbericht einreichen. Aber - so aus meiner Erfahrung - wird das wenig bringen:

    Die werden die Software wegen einer Randgruppe (sprich: uns) nicht ändern wollen weil:

    1. Es ist ein Breaking change (Massives Risiko bei bisherigen Kunden).
    2. Kosten/Nutzen eher gering
    3. Fehlende Einsicht in die Problematik

    GuMo! ^^

    Ich habe nun mal die Gleichungen für die Ausgänge F2 und F7 aus dem
    Schaltplan des P500 genommen:

    Die beiden Ausgangs-Signale werden aus diesen am PLA anliegenden Signalen gebildet:
    (! bedeutet Low-Aktiv)

    I0 = SR/!W
    I1 = !AEC
    I2 = !BA
    I5 = PROCVID
    I7 = !CLRNIBCS
    I8 = S02

    Das sind die Gleichungen laut Schaltplan:

    F2 = !CLRNIBCS * S02 * BA
    F7 = AEC * PROCVID * SR/!W

    umgeschrieben - und unter Berücksichtigung der Eingangssignal-Polarität:

    F2 = !I7 * I8 * !I2 und
    F7 = !I1 * I5 * I0

    Nun die wesentlichen Teile des JEDEC Files - ausgelesen mit einem ALL-03 von Hilosystems:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Die für die Ausgänge F2 und F7 relevanten Gleichungen (erkennbar an intakter Fuse) stecken in Zeile L00320 (F7) und L00360 (F2).

    Hier kann man auch sehen, das in Zeile L00320 (F7) alle Fuses bis auf die für I0, I1 und I5 zerstört sind.
    Für L00320 (F2) sind es: I2, I7 und I8.

    Eine intakte Fuse ('01') im Ersten Byte besagt (laut Datenblatt): Positive Logik; d.h. das Eingangsignal geht 1:1 auf den Min-Term.
    Eine intakte Fuse im 2ten Byte ('10') besagt: Negative Logik; Eingangsignal wird negiert für den Min-Term.

    Daraus kann man also folgendes aus dem JEDEC auslesen:

    F2 = !I2 * !I7 * I8
    F7 = I0 * !I1 * I5

    Das stimmt also mit den aus dem Schaltplan entnommenen Gleichungen überein!

    Fazit: der Hilo ALL-03 erzeugt korrekte JEDEC Files bzw. Der TopMax2 und der Data-I/O erzeugen falsche JEDEC Files! :thumbdown:

    Glück im Unglück: Solange man nur ausliest und mit dem gleichen System brennt, heben sich die Fehler auf... aber ein Austausch der
    JEDEC Files ist erstmal nicht möglich!

    Als nächstes steht nun (mit Hilfe eines anderen Forenmitglieds) die Überprüfung mit einem per PALASM erzeugten JEDEC File an.

    Hmmm... Die Prüfsumme, die mein Brenner bei der -05 errechnet hat, entspricht aber der, die Commodore aufgedruckt hat.
    Das wird doch eher kein zufall sein, oder ?

    Zumindest die selbst erzeugten Dateien kann das Ding ja offenbar fehlerfrei brennen,
    die -04, die ich damit gebrannt habe funktioniert ja im CBM 610.

    Das gaze macht die Sache irgendwie auch nicht schlüssiger.

    Ich habe eine mögliche Erklärung: Der Hilo-Brenner bzw. die Software hat wohl einen Fehler: Dort werden angeblich die
    Polaritäten im JEDEC File vertauscht. Wenn das nun beim lesen und schreiben passiert, hebt sich der Fehler auf!

    Daher wäre der EPROM-PLA Adapter wertvoll: Dann könnte man den Fehler ganz genau eingrenzen bevor PLA verbrannt
    werden! (Und so günstig komme ich an keine PLAs mehr dran...)

    Wenn Commodore auch einen Hilo-verwendet hat, würde es das erklären.

    Meine Checksum stimmt übrigens mit der eines Data-I/O Brenners überein; daher steht es es 2:1!
    Aber d.h. wohl auch: Wenn Du mir ein JEDEC File sendest, kann ich es nicht verwenden - ohne "Hand anzulegen".

    Aber: Sobald Du mir genügend Material schickst, erweitere ich den Simulator so, das er auch das Jedec entsprechend
    korrigieren kann. :smile:

    So... ich habe nun mal ein -05 JEDEC File in ein -04 "von Hand" umgewandelt! Ergebnis:

    Die -04 ist für den CBM 610, die -05 für den CBM 710/720.
    Theoretisch sollten die programmierten Gleichnungen übereinstimmen, allerdings sind die Ein- und Ausgänge anders angeschlossen.
    Außerdem soll die -04 vom CBM 610 angeblich Fehler enthalten, die dafür sorgen, daß die 8086-Coprozessorplatine nicht richtig funktioniert.
    Da aber nur sehr wenige von diesen Platinen existieren, ist die Behauptung erstmal ungeprüft.

    Ich kann zumindest bestätigen, das die Gleichungen der -04 und der -05 PLA 100% identisch sind.
    Es sind lediglich die Ein-/Ausgänge vertauscht worden!