Floppycontroller mit WD1770?

ZX-Team Forum
Antworten
klf
User
Beiträge: 36
Registriert: 08.09.2011, 09:53

Floppycontroller mit WD1770?

Beitrag von klf » 30.12.2018, 15:46

Kennt jemand einen Floppycontroller für den Zeddy auf Basis des WD1770?

Ich habe so ein System geerbt, allerdings ohne Dokumentation und ohne Zubehör. Die im Anhang gezeigte (gefädelte) Leiterplatte enthält neben dem FDC noch 32k RAM und eine 8250A UART. Die unteren 8k des ROMs entsprechen 1:1 dem Original, ab 2000h folgt dann der Code für die Floppy. Den habe ich ebenfalls angehängt. Das Floppylaufwerk ist ein Shugart SA-400, also 5,25" 35 Spuren einseitig.

Bevor ich nun die Schaltung rauszeichne und die Software weiter analysiere: kommt das Ganze jemandem bekannt vor?

Der ZX-DOS-Code von Schulz/Merkl ist es schonmal nicht, deren Design basierte auch auf einem anderen FDC (WD179x). Ich will auch nicht ausschließen, dass es sich um eine Eigenentwicklung handelt.


Danke, Gruß
Patrick
Dateianhänge
WernerZxDos.txt
(69.86 KiB) 27-mal heruntergeladen
IMG_5928kl.JPG
IMG_5928kl.JPG (124.99 KiB) 1040 mal betrachtet
Zuletzt geändert von klf am 03.01.2019, 16:04, insgesamt 4-mal geändert.

Kai
User
Beiträge: 460
Registriert: 19.04.2005, 20:46

Re: Floppycontroller mit WD1770?

Beitrag von Kai » 31.12.2018, 17:20

Interessantes Teil!
Sind nicht die Floppy-IF vom Spectrum oft mit dem 1770 bestückt gewesen?

Benutzeravatar
Joachim
User
Beiträge: 1089
Registriert: 06.11.2004, 20:21

Re: Floppycontroller mit WD1770?

Beitrag von Joachim » 31.12.2018, 17:30

Wir haben damals den SAB1793 von Siemens genommen, weil die Schaltung schon vorhanden war. Später kamen wir dann drauf, dass der WD1770 vielleicht doch besser gewesen wäre, weil er - wenn ich mich recht erinnere - double density konnte. Im Endeffekt ist es egal, weil wir ja ohnehin nur 16 KB für ein Programm hin- und herschaufeln können. Und da sind 360 KB auf einer Disk-Seite auch schon viel.
Solltest du zum Treffen kommen, dann wäre es nicht schlecht, das Teil mitzubringen.
Den Quelltext habe ich mal überflogen. Ist relativ kurz für ein DOS. Kommt mir so vor, als fehlten die in/out-Befehle. Evtl. ist es memory mapped. Da ich auf der Platine kein EPROM sehe, gehe ich davon aus, dass das im ZX81 ist.
Jedenfalls eine spannende Sache. Ein Schaltplan wäre sicher interessant.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

klf
User
Beiträge: 36
Registriert: 08.09.2011, 09:53

Re: Floppycontroller mit WD1770?

Beitrag von klf » 01.01.2019, 22:32

Ja, der FDC ist memory-mapped im Bereich 3F0xh. Die UART liegt bei 3F2xh.

Das interne RAM ist nicht bestückt, stattdessen wird in klassischer Weise mittels /CS = /MREQ + /(A14 + A15) das externe 32k-RAM eingebunden. Das (interne) ROM ist auf 16k aufgebohrt (eigentlich 2x 16k in Form eines 27256, über den zweckentfremdeten Kanal 2/3-Umschalter wählbar). Im Bereich 3Fxxh wird /ROMCS weggedrückt, dort adressiert der 74LS138 die oben genannte Hardware,

Ich habe das Assemblerlisting im Eröffnungsbeitrag aktualisiert.


Gruß
Patrick


BTW: auf der Hauptplatine wurden die Dioden der Tastaturabfrage durch PNP-Transistoren ersetzt. Basis an die Adressleitung, Kollektor an Masse, Emitter an den Tastaturstecker. Die Stromverstärkung hilft bei längeren Tastaturkabeln. Clevere Idee!

Benutzeravatar
dhucke
User
Beiträge: 893
Registriert: 21.03.2009, 14:50
Wohnort: in der Nähe von Göttingen

Re: Floppycontroller mit WD1770?

Beitrag von dhucke » 02.01.2019, 14:31

hier gehts zwar um ZX81 Hardware, trotzdem folgender Hinweis;

Die OPUS verwendet meines wissens unter den ZX Spectrum Interfaces als einziges den WD1770.
PlusD und Disciple verwenden den (abwärtskompatiblen) WD1772.

Der WD1772 hat laut Datenblatt die Möglichkeit weiterer Stepraten von 2, 3, 5, 6 ms.:
https://datasheetspdf.com/pdf-file/1311 ... l/WD1772/1
"Hardware nennt man die Teile eines Computers die man treten kann."
Jeff Pesis

klf
User
Beiträge: 36
Registriert: 08.09.2011, 09:53

Re: Floppycontroller mit WD1770?

Beitrag von klf » 02.01.2019, 15:00

ersetze "weitere" durch "andere". Der WD1770 hat 6, 12, 20 und 30 ms, WD1772 hat 2, 3, 5 und 6 ms.

Der alte Zylonentanker SA-400 ist aber mehr oder weniger das einzige Laufwerk, welches mit 20-30 ms betaktet werden will. Schon die Teac FD-55 - Serie kam mit 3 ms klar, und die späteren 3,5"-Laufwerke hatten buffered seek, d.h. ein Mikrocontroller zählt die Pulse und steuert den Schrittmotor mit seiner individuellen Rampe an.

klf
User
Beiträge: 36
Registriert: 08.09.2011, 09:53

Re: Floppycontroller mit WD1770?

Beitrag von klf » 11.01.2019, 11:17

Der Vollständigkeit halber anbei noch der Schaltplan. Da Graphiken hier maximal 1024 x 768 Pixel groß sein dürfen gibt es zusätzlich ein Zip-File mit der vollen Größe.


Gruß
Patrick
Dateianhänge
Werner_FDC.zip
Schaltplan, Quellcode, Fotos in voller Auflösung
(1.92 MiB) 24-mal heruntergeladen
Werner_FDC_kl.png
Werner_FDC_kl.png (249.72 KiB) 764 mal betrachtet
Zuletzt geändert von klf am 11.01.2019, 22:48, insgesamt 1-mal geändert.

Benutzeravatar
Joachim
User
Beiträge: 1089
Registriert: 06.11.2004, 20:21

Re: Floppycontroller mit WD1770?

Beitrag von Joachim » 11.01.2019, 14:05

Super Arbeit. Da hast du dir ganz schön Mühe gemacht. Vielen Dank!
Die Schaltung hätten wir schon ein paar Jährchen früher haben müssen. Dazu noch die günstigen Platinenpreise und leistungsfähigen Router .....
Vielleicht war die RS232 auch ein Druckerport - obwohl die Software dazu nicht so aussieht - und offensichtlich war die Baudrate fest eingestellt.
Hast du die Schaltung schon mal ausprobieren können?
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

klf
User
Beiträge: 36
Registriert: 08.09.2011, 09:53

Re: Floppycontroller mit WD1770?

Beitrag von klf » 16.01.2019, 22:56

Joachim hat geschrieben:
11.01.2019, 14:05
Vielleicht war die RS232 auch ein Druckerport - obwohl die Software dazu nicht so aussieht - und offensichtlich war die Baudrate fest eingestellt.
Die Baudrate lässt sich über das Divisor Latch Register des 8250A zwischen 50 und 56k7 bit/s einstellen.

Die Software im ROM verwendet die UART überhaupt nicht. Entweder gab es dafür Tools auf Diskette, oder der die entsprechenden Routinen sind nicht mehr fertig geworden.
Hast du die Schaltung schon mal ausprobieren können?
Habe ich vor. Ich weiss aber noch nicht wann ich dazu komme, zuerst müssen noch ein paar andere Baustellen erledigt werden. Ich muss mir auch noch eine Formatierroutine ausdenken, im ROM gibt es keine. Auf die Diskette muss eine WD-kompatible Formatierung mit 16 Sektoren zu 256 bytes, und VTOC und Katalog müssen als Template angelegt werden. Danach sollte man speichern und zurücklesen können -- wenn die Hardware denn noch funktioniert. Notfalls habe ich auch noch einen WD1772 in Reserve :-)

Die Kommandos unterstützen die Parameter "S$" und "D$", diese werden aber nicht verwendet. Mit einem zusätzlichen Latch hätte man darüber doppelseitigen Betrieb oder mehrere Laufwerke vorsehen können. Die Verwaltungsstruktur der Diskette verträgt maximal 120 Dateien, die jeweils aus bis zu 124 Sektoren (=31 kB) bestehen dürfen und sich über maximal 127 Spuren mit 16 Sektoren verteilen. Die SA-400 Floppy hat 35 Tracks einseitig. Da war also noch ordentlich Luft nach oben.
Dateianhänge
IMG_5944lk.JPG
Protokollanalyse an einer 10 MB-Festplatte Baujahr 1983. Es müssen noch ein paar Details für den LisaEM-Emulator geklärt werden :-)
IMG_5944lk.JPG (177.23 KiB) 553 mal betrachtet

Benutzeravatar
dhucke
User
Beiträge: 893
Registriert: 21.03.2009, 14:50
Wohnort: in der Nähe von Göttingen

Re: Floppycontroller mit WD1770?

Beitrag von dhucke » 17.01.2019, 09:03

boah Patrick, du hast da eine echte Männerhöhle für Computerfreaks :-) NEID :shock:
"Hardware nennt man die Teile eines Computers die man treten kann."
Jeff Pesis

Antworten