MFA-FDC-Extension

  • Neue Platine, neues Glueck!


    Es gibt 2 nette Erweiterungen fuer den MFA-FDC:

    - 4 Laufwerke

    - Taktumschaltung fuer 500kbit/s Datenuebertragung (8" und/oder HD-Laufwerke)


    Die erste Erweiterung ist noch ziemlich einfach machbar. 1 IC huckepack und 6 Faedeldraehte reichen.

    Bei der 2. wird's deutlich komplizierter. 1 neues IC (koennte man auch huckepack bauen) und viele Faedeldraehte, die anderen Bauteile sind bisher Spare-Gatter auf der FDC Platine.

    Aber das sieht dann nicht mehr so gut aus.


    Deshalb habe ich mir eine Platine gemacht, die die zusaetzliche Verdrahtung und die neuen ICs enthaelt.



    Das ist v1.0


    Dann ist mir noch das Problem mit den fehlenden Index-Impulsen beim Seek des Laufwerks eingefallen. Ab hier wurde das Problem klarer.

    Fuer diesen Fall kann man auch das READY-Signal des Floppy-Laufwerks verwenden. Ja, ich weiss, das hat nicht jedes Laufwerk, aber wenn, ist es deutlich besser als das LWREADY-Monoflop zu verlaengern. (S.u.)


    Das habe ich jetzt in der v1.1 genacht, die ich gerade aufgebaut habe.




    Auf der FDC-Platine muessen allerdings auch ein paar Faedeldraehte gezogen werden, aber die halten sich in Grenzen.

    Und der Quarz muss von 4 MHz auf 8 MHz geaendert werden.



    Wenn Interesse besteht, kann ich den Schalplan (den muss ich ueberarbeiten, ist etwas unuebersichtlich) etc. noch nachreichen.


    Wer HD- oder 8" Laufwerke verwenden moechte, erst pruefen ob der Dataseperator (IC9) ein 9216B ist. Der ohne B kann nur 4 MHz und ist fuer den 8MHz Takt nicht geeignet.


    Fehlender Indexpuls


    Ich hab das mit der MFA-FDC-Extension v1.1 nochmal gemessen.



    Die oberen 3 Signale Index, Step, Ready gehen/kommen zum/vom Floppy-Laufwerk.

    Das Monoflop ist IC11.2 im MFA-FDC Schaltplan.

    Das LWREADY ist das logisch verODERte Monoflop.Q und Ready.


    Durch den fehlenden Index-Puls ist die Zeit des Monoflops abgelaufen.

    Das Seek ist abgeschlossen (keine weiteren Step-Pulse) und die Software versucht jetzt die Daten zu lesen oder zu schreiben. Leider ist das LWREADY (in der Original-Schaltung) aber leider nicht bereit und die Software bricht mit einem Fehler ab.

    Durch die VerODERung (v1.1) bleibt das LWREADY aktiv.


    Bei vielen 5 1/4" Laufwerken kann oft per Jumper Ready auf Pin 34 gelegt werden, beim PC normalerweise DiskChange. Hier ist die VerODERung meist sinnvoll.

    Bei 3 1/2" gibt's deutlich seltener Jumper und das wird zum Problem.


    In einer Mess-, Probier- und Bastelorgie haben Toast_r und ich das Problem untersucht.

    Seither gibt es auch einen Beta-Workaround im CP/M-BIOS.


    Monoflop verlaengern


    Ich hatte das mal genauer gemessen/untersucht. Im Wort-Case muss man das Monoflop auf fast eine Sekunde verlaengern.

    Das koennte Probleme geben, wenn Software mit 2 Laufwerken arbeitet. Dann ist das LWREADY des 1. Laufwerks noch aktiv, bevor das 2. ueberhaupt angelaufen ist. Das fuehrt bestimmt zu neuen Problemen.

    Deshalb halte ich die Verwendung des Ready Signals vom Laufwerk fuer deutlich sinnvoller.

    (Und ich HASSE Monoflops!)


    Der o.g. Software Workaround kann bis zu 200ms (eine Floppy-Umdrehung) dauern. Aber besser als staendig Fehler.

    Ist eben nur ein Workaround.





    Bei Fragen fragen.


    Bis die Tage

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Ein Bugfix ist es nicht, die Software macht an der Stelle keinen Fehler.

    Der Workaround umgeht ein Problem (ich nenne es nicht Fehler) der Hardware.


    Mit Workaround bleibt im Code, ist also kein temporaerer Test.


    Aber ich denke das ist nicht so wichtig. Hauptsache es funxt.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)