Hallo.
Also ich habe in den letzten 15 Jahren viele Rechner repariert und restauriert, aber ich habe mich bis dato nie mit der Entwicklung von eigener Hardware beschäftigt. Momentan ist es so, dass ich mir in den Kopf gesetzt habe, eine Floppycontrollerkarte für meinen RC2014 CP/M Rechner zu bauen. Wichtig ist, dass sie das IBM 3740 Format unterstützt, um zum einen die ganzen tollen DSK-Images aus dem Netz via Gotek daran lesen zu können und auch an einem 8" Floppylaufwerk dementsprechend Disketten erstellen kann.
Als Controllerchip habe ich einen TMS2797 gewählt. Dieser hat einen internen Dataseparator und unterstützt 8" und 5.25" Floppylaufwerke, je nachdem wie man ihn jumpert und einen 1MHZ oder 2MHZ Quartz einsetzt.
Der RC2014 läuft mit einem Z80 Prozessor mit 7.4 MHZ. Es gibt verschiedene Floppy-Controller-Projekte dazu, allerdings nicht im 3740 Format.
Also habe ich mich heute Abend das erste Mal an die Entwicklung einer Adressierlogik gemacht. Die Steuerung erfolgt über die Registerleitungen A0 und A1 an dem Controller. CS, also Chipselect aktiviert die Kommunikation zwischen Controller und Prozessor.
Hier der Link zu dem Controllerchip:
https://pdf1.alldatasheet.com/…iew/29028/TI/TMS279X.html
Die Chipselect-Leitung wird unter folgenden Umständen auf low gezogen und somit der Chip aktiviert, Signale vom Mainboard kommend:
- IORQ auf low
- Adressleitung 7 auf high
- M1 auf low
- entweder RD oder WR auf low
- Adressleitungen 2-6 auf low
Stimmt auch nur eine dieser Bedingungen nicht, geht CS auf high und der Chip wird deaktiviert. Der Z80 hat 256 Ports (0-255). Bei einer Portabfrage wird die IORQ-Leitung auf low gezogen und der dementsprechende Port am least significant byte vom Adressbus abgefragt. Ich habe das Bit 7 als Bedingung gewählt, in Verbindung mit A0 und A1, sollte die Controllerkarte an Port 80h-83h liegen. Also wie folgt:
Read Write
80h Status Register Command Register
81h Track Register Track Register
82h Sector Register Sector Register
83h Data Register Data Register
Wie gesagt, es ist das erste Mal, das ich so etwas gemacht habe. Ich habe die Schaltung in einem Simulatorprogramm ausprobiert. Hier ein Schaltbild:
Was haltet ihr von der Schaltung ? Wird das funktionieren ? Muß ich RD und WR wirklich als Bedingung holen ? Was haltet ihr von der Ausmaskierung der Adressleitungen
2-6 ? Wenn ich mir das Bild so anschaue, sieht das für mich ziemlich umständlich aus. Das geht bestimmt irgendwie einfacher ?!
Der Platz auf der Karte für den RC2014 ist begrenzt, Evtl. wäre es sinnig, mich gerade mal mit der Programmierung von einem GAL zu beschäftigen... Einen Elnec-Programmer hätte ich
da..
Vielen Dank !
Gruß Jan