Hallo Besucher, der Thread wurde 6k mal aufgerufen und enthält 30 Antworten

letzter Beitrag von Stephan am

1551 Defekt Blink nur beim Einschalten

  • Hast Du schon jemals mit einen Plus/4 mit einer 1551 gearbeitet? Es gibt auch Speeder für die 1551, die rennen jegliche 1541-Speeder am C-64 locker in Grund und Boden.

    Ist ja auch kein Wunder, der 6510T in der 1551 läuft mit 2 MHz und die CPU im Rechner selbst mit 1,7 MHz wenn man den Bildschirm abschaltet und 1,1 MHz im Schnitt wenn man ihn anlässt.



    Der Baustein 8255 mag andere Belegung haben; aber mit etwas TTL-"Leim" dürfte man das umstricken können

    Der 6525 hat allerdings für jeden Port ein vollständiges Datenrichtuntsregister, man kann also jedes Portbit einzeln auf Ein- oder Ausgang schalten. Der 8255 kann das nicht. Da könnte ich mir eher vorstellen, daß man zwei 6522A mit etwas extra Logik passend machen kann. Das kommt drauf an welche weiteren Features des 6525 die 1551 benutzt. Wird er immer als reiner 24Bit I/O benutzt könnte das klappen.

  • Der 6525 hat allerdings für jeden Port ein vollständiges Datenrichtuntsregister, man kann also jedes Portbit einzeln auf Ein- oder Ausgang schalten. Der 8255 kann das nicht. Da könnte ich mir eher vorstellen, daß man zwei 6522A mit etwas extra Logik passend machen kann. Das kommt drauf an welche weiteren Features des 6525 die 1551 benutzt. Wird er immer als reiner 24Bit I/O benutzt könnte das klappen.

    Das ist eine interessante Anregung mit den 2 VIA 6522 als Ersatz; schließlich wurde die 1551 ja wohl aus der 1541-Basis heraus entwickelt.


    Soweit ich sehen kann, konzentriert sich die Inkompatibilität des 8255 auf Port C.
    In der Floppy 1551 werden sowohl die Datenrichtungsregister zum TCBM-Bus als auch zum Schieberegister der Schreib-Lese-Logik / Schreiblesekopf-Ansteuerung "en bloc" (byte-weise) umgeschaltet, das macht also keinerlei Problem.


    Der 8255 kann laut Datenblättern in 2 Modi betrieben werden was die Datenrichtung angeht.


    Im Bit Set/ reset-Modus kann man bestimmte Bits einzeln gezielt setzen oder löschen; das könnte durchaus eine platzsparende Ansteuerung der Handshake-Leitungen des TCBM-Bus ermöglichen, soll hier aber nicht weiter beleuchtet werden.


    Im I/O Modus: Port C kann in 2 Hälften (upper/lower half) jeweils zwischen Input und Output umgeschaltet werden, die Ports A und B jeweils 8bit-weise als Block. Ich bin gottseidank noch nicht in die Lage gekommen meine aktuelle 1551 reparieren zu müssen. Aber ich könnte mir vorstellen, im Bedarfsfall einen 8255 einzusetzen, bei dem die Datenleitungen D0-D7 so verwürfelt sind dass z.b. alle zusätzlichen Inputs in Port C untere Hälfte "gesammelt" bzw. gebündelt sind und alle zusätzlichen Outputs in Port C obere Hälfte gesammelt sind. Diese Verwürfelung müsste man dann noch nachvollziehen:
    - bei der Aussenbeschaltung von Port A und B, wenn diese Leiterbahnen ebenfalls entsprechend verwürfelt sind, sind alle Bits der Datenbytes (TCBM als auch Schreibleselogik) für die Software wieder "am richtigen Fleck";
    - in der (ohnehin zu patchenden) Firmware. Die man aber optimalerweise so gestaltet, dass sie automatisch erkennt, ob ein TPI 6525 6252 (Edit: :drunk: ) oder ein PPI 8255 auf einer Tochterplatine mit "umgelegten bzw. verwürfelten Leiterbahnen" im Floppysystem sitzt.


    Einziger unklarer Problempunkt aus gegenwärtiger Sicht:
    - die SYNC-Leitung wird evtl. vom / zum Gate Array bidirektional betrieben
    - eventuell geht es sich nicht genau aus, dass je genau 4 Leitungen von Port C Input und die anderen 4 Output sind. Dieses Problem lässt sich aber durch einen faulen Zauber zumindest entschärfen:


    Indem man für die gepatchte Firmware ein Eprom doppelter Größe verwendet, dessen obere Hälfte z.b. "fest" auf Gerätenummer 8
    und dessen untere Hälfte "fest" auf Gerätenummer 9 programmiert ist. Der Jumper, der bislang auf das Portbit des TPI 6525 führt, würde dann stattdessen auf das oberste Adreßbit des Eproms geführt und so die Umschaltung bewirkt. Trickreich, aber dürfte sogar ohne sofortigen Absturz live umschaltbar sein.


    Durch diese Änderung (zusammen mit Firmware-Patch) gewinnt man 1 freie Portleitung als "Verfügungsmasse" um so die Porthälften zwischen Nur-Inputs und Nur-Outputs auszubalancieren.


    by the way, auch der 6525 kennt einen zweiten Modus für Port C (Interrupt-Controller; de fakto bleiben dann 2 potenzielle nur-Output und 5 Nur - Input Leitungen auf Port C).


    Die Vorstellung wirklich nur 1 Chip als Ersatz zu brauchen, empfinde ich als elegant und als Ansporn in diese Richtung zu denken; ob es sich genau so realisieren lässt wäre näher zu untersuchen.

  • Nach näherer Betrachtung der Schaltpläne (und ausnahmsweise nicht als Edit):
    Abwägung der Optionen, den Portbaustein MOS 6525 der 1551-Floppy durch den weiter verbreiteten und leichter erhältlichen PPI 8255 zu ersetzen.


    1.) Auf Seiten der Schreibleselogik:
    Die Leitung PC4 des 6525 geht als OE an das Gate Array 61J215 und schaltet wahrscheinlich die Schreibleselogik um zwischen Read und Write. Ist also Output.



    Die Leitung PC6 des 6525 ist als SYNC mit dem Gate Array verbunden und ist ziemlich sicher ein reiner Input, vom Prozessor aus gesehen.


    2.) Laufwerksintern:
    Die Leitung PC5 geht bislang zum Jumper 1 für die Geräteadressen-Umschaltung am TCBM-Bus. Ist bislang reiner Input, würde künftig - nur im Bedarfsfall - als "Manövriermasse" genutzt.


    3.) nach aussen zum Computer hin / TCBM-Bus-Schnittstelle:
    Die übrigen 5 Leitungen des Port C gehen allesamt an den TCBM-Bus. Unter der Annahme, dass dieser halbwegs "symmetrisch" betrieben wird, gehe ich - ohne nähere Kenntnis des TCBM-Protokolls - von einem Subset der IEEE-Bus-Funktionen aus:


    Als Inputs genutzt:
    - etwas DAV und EOI-ähnliches sowie eine Art ATN-Leitung;
    Als Outputs genutzt:
    - etwas NRFD-ähnliches sowie etwas NDAC-ähnliches.


    Auf TCBM-Seite braucht man somit höchstwahrscheinlich 3 Input- und 2 Output-Bits.


    4.) Zusammenfassung:
    unter den obigen Annahmen braucht man 3+1= 4 Input-Leitungen ( TCBM: 3 , Schreibleselogik: 1) und 3 Output-Leitungen (TCBM: 2 und Schreibleselogik 1).


    => der 8255 müsste von der Aufteilung seines Port C zwischen Input und Output (je 4 bit !) genau passend sein, in diesem Szenario.


    Bei den Output-Leitungen wäre noch Luft für 1 weitere. Wenn der TCBM-Bus entgegen obigen Annahmen noch 1 weiteren Ausgang braucht, wäre das kein Problem. Braucht der TCBM-Bus dagegen einen weiteren Input, wäre noch etwas mehr Brainstorming nötig. Aber auch das ließe sich ohne zusätzliche TTL-Logik erledigen, wenn der Prozessorport des 6510T in eine "Pin/Bit-Rochade" einbezogen wird.


    Desweiteren bietet der 8255 ja den BSR-Modus. auch das bietet Potenzial für eine bessere Adaptierung an die MOS 6525-Umgebung.

  • Obige Aussagen waren wohl in Teilen spekulativ, weswegen ich sie korrigiere und hoffe dass es auch für andere C16 / 116 / Plus-4 Inhaber und solche einer Floppy 1551 interessant ist!


    Dank eines ROM-Listings der 1551 konnte erhellt werden, wie weit die Floppy 1551 von den Features des 6525 Triport-Bausteins Gebrauch macht.
    http://www.cbmhardware.de/show.php?r=7&id=21



    Nämlich: sehr wenig! Zum Glück.
    Interrupts werden keine genutzt.
    Einziger Unterschied zu meinen obigen Annahmen betreffend Port C:
    Dieser Port wird von der Firmware "asymmetrisch" aufgeteilt zwischen Inputs und Outputs, wobei entgegen meiner obigen Vermutungen 5 Pins als Output figurieren und (nur) 3 als Inputs.


    Das Datenrichtungs-Register für Port C wird von der Firmware per SChreibzugriff #$1F auf Adresse $4005 initialisiert. Das bedeutet die 3 obersten Bits sind Eingänge, die 5 unteren sind Ausgänge. Das kommt "fast" an die natürliche Aufteilung beim 8255 ran. (4 Eingänge , 4 Ausgänge möglich).


    Die Geräteadressenumschaltung erfolgt bei diesem Laufwerk entweder per Software-Kommando oder per Hardware-Jumper. Dessen Signal (von J1) wird sowohl durch den einen Portpin PC5 in Port C eingelesen, als auch - als eine Art Chip-Select-Signal "DEV" - über Port PC2 ausgegeben und über das Parallelkabel ans Paddle weitergeleitet.


    Letzteren Port-Pin könnte man umwidmen für das ACK - SIgnal des TCBM-Bus. (meine obigen Ausführungen zum TCBM Bus schrieb ich , als ich das ROM-Listing nocht nicht kannte: es scheint nur 1 Handshake-Signal vom Rechner zur Floppy zu geben, DAV = data valid. Die Floppy antwortet mit ACK = Acknowledge sowie zwei Statusleitungen).


    Dann ist die Floppy nur noch per Jumper - oder eingelötetes Mäuseklavier - in der Geräteadresse umstellbar.
    Aber man gewinnt einen freien Portpin.


    Diesen könnte man wohl als ACK-Signal nutzen, indem man die Datenleitungen D2 mit D4 tauscht, PB2 mit PB4, PA2 mit PA4. (Verwürfelung. Ziel: Port C, bit 0-3 als Output, bit 4-7 als Input konfigurieren, es für die Software aber nach Bit 0..1, 3-5 = Out u. Rest =Input aussehen lassen) Den Jumper J1 führt man am Portbaustein "aussen herum" direkt an die DEV-Leitung.
    Ferner muss die Firmware geändert werden, wie schon oben geschrieben.
    Den Baustein 8255 verbindet man mit seiner /WR - Leitung mit R/W des 6510T.
    Das RD-Signal für den 8255 erzeugt man mit einem freien Gatter 7506 , das sich bereits auf der Platine der Floppy befindet, aus dem WR-Signal.


    Somit kann unter Verzicht auf eine geringfügige Funktionalität (Gerätenummern-Auswahl per Software) der 6525 direkt durch einen 8255 ersetzt werden, ohne weitere TTL-Bausteine. Es braucht anscheinend nur einen Zwischensockel.... Wenn ich was übersehen habe, korrigiert mich bitte.


    Meinungen von eurer Seite :) ?

  • Nicht vergessen, du musst in das Schreibsignal PHI2 reinbringen, am Baustein darf /WR nur LOW werden solange PHI2 HIGH ist.


    Achja, die Umstellung der GeräteAdresse im Paddle erfolgt über die PLA und ist dort SOFORT wirksam da sie den Adressbereich unter dem der dort verbaute 6523T zu finden ist verändert.


    Interessant wäre es, wenn man 6523T im Paddle durch einen 8255 ersetze könnte... Der ist nämlich nicht mehr zu bekommen. Aber auch das wird Änderungen an der Software brauchen.

  • Danke für Dein Feedback!


    Da war was ... Unterschied 6800 zur 8080-Welt bei der Ansteuerung ...

    hat was mit Gültigkeit der Signale bei steigender Flanke des Systemtaktes zu tun (?) (oder in einem System mit 2 Busmastern und DMA-Vermaschung der Zugriffe ... ist die 8050-Floppy und die SFD1001 , aber die 1541/1551?) :zwerg:


    Wie man der Floppy über Gerateadresse 8 ein Umstellkommando auf 9 schicken kann und das letzte Byte das sonst unter EOI gesendet werden müsste dann überhaupt noch ankommt war mir ein ewiges Rätsel :drunk:

  • Interessant wäre es, wenn man 6523T im Paddle durch einen 8255 ersetze könnte... Der ist nämlich nicht mehr zu bekommen. Aber auch das wird Änderungen an der Software brauchen.

    Muss es ein 8255 sein, oder geht auch eine "TTL-Kombo" ?
    Mir schwebt da folgendes vor:


    74 LS 373 od. 374 für das Output-Register 8bit,
    74 LS 244 für den Input 8 bit,
    74 LS 174 für 4-bit-Register /analog zum C116-Bankswitching-Register)
    74 LS 126 für 4 Einzel-Tristate-Treiber
    74 LS 74 für 2 einzelne D-Flipflops wovon mind. 1 für die Datenrichtung des Hauptports dient;
    74 LS 139 als Adressdecoder.
    Vorteil: wenn maßgeschneidert, muss keine Firmware geändert werden.
    So mal ins Unreine gesprochen :)


    Edit. Grundsätzlich ist Dein Vorschlag allerdings nachvollziehbar und leuchtet ein; weniger Lötarbeit, und der 6523T dürfte noch einfacher mit dem 8255 nachzubilden sein, da m.W. nur 12 Bit insgesamt bereitgestellt werden müssen; der Port C wird daher in keiner Weise "gesprengt." Somit dürfte man hier mit Leiterbahn-Verwürfelung noch leichter zurechtkommen. Nur zwei "Issues" sehe ich noch: Die Initialisierung bzw. dynamische Datenrichtungsumschaltung, sowie die Baugröße (40 statt 28 pin) - evtl. SMD bzw. PLCC für den 8255?