Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:cpm:gide [2015/10/19 14:31] – volkerp | z9001:cpm:gide [2018/01/17 07:02] (aktuell) – [Treiber v. H. Poppe] volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | FIXME | ||
- | |||
====== GIDE ====== | ====== GIDE ====== | ||
- | [[z9001: | + | Benötigt wird ein [[z9001: |
- | + | ||
- | Von Kingstener < | + | |
- | http://www.kingsteners.homepage.t-online.de/ | + | |
- | + | ||
- | http:// | + | |
- | + | ||
- | Heiko Poppe entwickelt auch fleißig Treiberpakete für die GIDE. | + | |
- | + | ||
- | http:// | + | |
- | + | ||
- | https:// | + | |
- | + | ||
- | + | ||
- | + | ||
- | Wolfgang Harwardt hat Herbst 2013 eine kompakte Leiterplatte mit GIDE-Interface und USB (VDIP1) für den [[homecomputer: | + | |
- | + | ||
- | http:// | + | |
- | + | ||
- | + | ||
- | + | ||
- | Forum: http:// | + | |
- | + | ||
- | | Adressbereich | - | | + | |
- | | I/ | + | |
- | | | DCh..DFh USB (empfohlener Port für Z9001) | | + | |
- | ===== GIDE ===== | + | {{: |
Die GIDE ist eine generische IDE-Schnittstelle für Z80-basierten Computer (" | Die GIDE ist eine generische IDE-Schnittstelle für Z80-basierten Computer (" | ||
Zeile 39: | Zeile 11: | ||
Erdacht und realisiert wurde die GIDE von Tilmann Reh, 1995 und Herb Johnson (RTC und Software). | Erdacht und realisiert wurde die GIDE von Tilmann Reh, 1995 und Herb Johnson (RTC und Software). | ||
+ | Am GIDE-Bus ist ein DOM-Modul vom Pollin angeschlossen. Der Flash-Speicher hat eine Kapazität von 128 MByte. Das reicht für satte 8 Laufwerke á 8 MByte. | ||
- | {{: | + | | I/ |
- | Das Modul von Bübchen lief auf Anhieb, nachdem der GAL ST 20AS25HB1 gegen einen PALCE20V8H ausgetauscht wurde. Entweder macht mein Brenner Probleme beim ST-GAL oder dieser GAL-Typ funktioniert generell nicht besonders gut? | + | Heiko Poppe entwickelt fleißig Treiberpakete für die GIDE. |
- | Zum Bild: Folgende Module sind gesteckt (von vorn nach hinten): | + | http:// |
- | * GIDE+USB von Bübchen mit 128MB DOM und VDIP1 | + | https://dl.dropboxusercontent.com/ |
- | * Mega-Flash-ROM von Bübchen (mit Mega-Flash-Software, | + | |
- | * 64K dyn. RAM (Nachbau U. Zander, mit LEDs an der Seite) | + | |
- | * BIC-FDC-Platine (Nachbau U. Zander, mit Ports für Z9001) | + | |
- | Am GIDE-Bus ist ein DOM-Modul vom Pollin angeschlosssen. Der Flash-Speicher hat eine Kapazität von 128 MByte und kostet nur 1,50€ (2013). | + | Von Kingstener gibt es auch einen nachladbaren Treiber (11/2014 Version 0.5): |
+ | http:// | ||
- | Als Basis-Adresse ist bevorzugt **050H** zu nutzen (A5 und A7 jumpern). LLC2, AC1 und Z1013 nutzen den Adressbereich 84h..8Fh. Dieser ist leider am Z9001 nicht mehr frei. | + | http://www.robotrontechnik.de/ |
- | ==== Hardware ==== | + | Achtung! Die Treiber sind nicht miteinander kompatibel! Wird der falsche Treiber genutzt, zerstört man alle Daten auf der Festplatte!!!! |
- | (nach http:// | + | **Hardware** |
- | **Einführung** | + | s. [[z9001: |
- | Die GIDE ist eine generische IDE-Schnittstelle für Z80-basierten Computer. Sie ermöglicht | ||
- | den Anschluss von bis zu zwei IDE-Geräten wie Festplatten oder CD-ROMs. Zusätzlich | ||
- | wird auch eine batteriegepufferte Echtzeituhr (RTC, Seiko-Epson-72421) unterstützt.\\ | ||
- | Die Schnittstelle wird über I/O-Befehle angesprochen.\\ | ||
- | Erdacht und realisiert wurde die GIDE von Tilmann Reh, 1995. | ||
- | **Schaltungsoptionen** | + | ===== Downloads ===== |
- | Der RTC-Teil kann entfallen. Dies betrifft den RTC-Chip und die zugehörigen Bauteile zur | + | * {{: |
- | Batteriegepufferung. | + | * {{: |
+ | * {{: | ||
- | **Schaltungsbeschreibung** | + | Benötigt werden die Treiber für Basisadresse 50h, also gidehp50.com bzw. gidn@50h.com |
- | Die Schaltung kann in mehrere Funktionsblöcke unterteilt werden. Der erste | + | Achtung! |
- | Block ist der Adressendecodierer, ein GAL 20V8 (IC2). | + | |
- | Er vergleicht die Adressleitungen A4 bis A7 mit den Werten | + | |
- | durch die Basisadresse via Jumper (J1), und dekodiert | + | |
- | innerhalb des ausgewählten Adressbereich. Er puffert auch die Adressleitungen A0 bis A2 für den IDE-Port. | + | |
- | Der zweite Funktionsblock ist die IDE-Zugriffs-Zustandsmaschine. | + | **Der Treiber von H.Poppe musste gepatcht werden, da der Z9001 ein anderes Laufwerksbyte als üblich nutzt**, s. [[z9001: |
- | Er besteht aus einem GAL 16V8 (IC1) und zwei bidirektionalen 8-Bit-Registern | + | |
- | (IC3, IC4), dieser Block wickelt den Datentransfer zwischen der Z80-CPU und dem | + | |
- | IDE-Gerät ab. Hauptzweck dieses Funktionsblocks ist es, eine Schnittstelle zwischen den | + | |
- | 16-Bit-Datenübertragungen vom IDE-Gerät und dem 8-Bit-Zugriff des | + | |
- | Z80-Prozessors herzustellen. | + | |
- | Für Datenzugriffe, | + | ===== CP/M ===== |
- | in einem der Register gespeichert, | + | |
- | hergestellt. Da dies nur eine I / O-Adresse des Z80-, Daten belegt | + | |
- | Übertragung kann mit Block I / O-Anweisungen (Inir / OTIR) durchgeführt werden. Die | + | |
- | Zustandsmaschine GAL bietet auch Zugang Strobe-Signale für die IDE | + | |
- | Vorrichtungen und ein maskiertes / RD-Signal für den Zielcomputer. | + | |
- | Der dritte und letzte Funktionsblock | + | Ein guter Startpunkt zum Thema GIDE ist |
- | Die Adreßleitungen A8 bis A11 werden verwendet, um die Register der RTC anzusprechen. | + | |
- | Daher wird nur ein I/O-Port benötigt, der Zugriff muss aber mit OUT (C),r oder IN r,(C) | + | |
- | erfolgen, und die RTC-Registeradresse muss dabei im B-Register stehen. | + | |
- | **Programmdetails** | + | http:// |
+ | http:// | ||
- | Belegte I/O-Adressen | + | Empfehlenswert ist es, zuerst mit einem der Testprogramme GIDE*.COM zu beginnen, die direkt und ohne zusätzliche Treiber im normalen CP/M laufen. Hier ist GIDEC.COM oder das ältere Pascal-Programm GIDEtest09.zip zu empfehlen. Man sollte ein bisschen mit den Möglichkeiten herumzuspielen |
- | | x0..x3 | werden | + | Zur Arbeit mit Festplatten unter CP/M muss i.W. ein passendes CP/M-BIOS erstellt |
- | | x4 | reserviert für IDE expansion board | | + | |
- | | x5 | RTC access | | + | |
- | | x6 | IDE alternate status / digital output register | | + | |
- | | x7 | IDE drive address register | + | |
- | | x8 | IDE data register | + | |
- | | x9 | IDE error/ | + | |
- | | xA | IDE sector count register | + | |
- | | xB | IDE sector number register | + | |
- | | xC | IDE cylinder low register | + | |
- | | xD | IDE cylinder high register | + | |
- | | xE | IDE drive/head register | + | |
- | | xF | IDE command/ | + | |
- | " | ||
- | Auf die sechzehn RTC Register wird mit 16-Bit-I/ | + | === Test === |
- | | y0x5 | seconds, units | | + | Unter CP/M: |
- | | y1x5 | seconds, tens | | + | |
- | | y2x5 | minutes, units | | + | |
- | | y3x5 | minutes, tens | | + | |
- | | y4x5 | hours, units | | + | |
- | | y5x5 | hours, tens & AM/PM flag | | + | |
- | | y6x5 | day, units | | + | |
- | | y7x5 | day, tens | | + | |
- | | y8x5 | month, units | | + | |
- | | y9x5 | month, tens | | + | |
- | | yAx5 | year, units | | + | |
- | | yBx5 | year, tens | | + | |
- | | yCx5 | day of week | | + | |
- | | yDx5 | control register D (status/ | + | |
- | | yEx5 | control register E (pulse output control) | | + | |
- | | yFx5 | control register F (master control) | + | |
- | " | + | < |
- | Jedes RTC-Register besteht aus nur 4 Bits, die oberen vier Daten-Bits werden einfach ignoriert. | + | GIDEC oder GIDE starten |
+ | p auswählen | ||
+ | Port angeben (hier 50), ECB-Bus-IDE Interface N | ||
+ | 1 (read drives | ||
+ | weitere Punkte nach Belieben | ||
+ | </ | ||
- | **Programmierbeispiele** | + | funktioniert dies, kann der GIDE-Treiber geladen werden: |
- | Für eine einfache Implementierung werden Routinen sind sowohl für IDE-und RTC-Zugang benötigt: die | + | ===== Treiber v. H. Poppe ===== |
- | Initialisierungsroutine, | + | |
- | Die Datei GIDEIDE.MAC enthält einen Beispiel-IDE-Treiber, | + | auf einer [[z9001: |
- | Für erste Tests mit einer frisch angeschlossenen IDE-Festplatte gibt es das Testprogramm | + | GIDEHP50.COM |
- | GIDETEST, das einige grundlegende Test der Schnittstelle und der Festplatte ermöglicht. | + | |
- | Das Programm ist in Turbo-Pascal 3.0 geschrieben und steht in Quell-und Objektcode zur Verfügung. | + | |
+ | enthalten sein. | ||
+ | Dann kann es losgehen. Nach dem Booten von der Diskette wird zuerst der GIDE-Treiber geladen: | ||
- | **Hinweise** | + | < |
+ | A> | ||
- | Kommt es beim Schreiben auf die Disk zu Problemen, hilft vielleicht der Tipp aus http://p112.sourceforge.net/ | + | GIDE-Treiber fuer Z9001-CP/A V 0.2 |
- | Ein Widerstand von 100 Ω .. 1 kΩ ist in die /IOWR-Leitung zwischen PAL und IDE-Anschluss einzubauen. | + | |
+ | GIDE-Modul auf Adresse 50H | ||
+ | Info IDE-Laufwerk: | ||
+ | PQI DJ0128M22RF0 | ||
+ | 500 Cyl; 16 Head; 32 Sec; | ||
- | ==== DOM-Modul ==== | + | Im BIOS installierte Laufwerke: |
+ | A: | ||
- | Bei [[http:// | + | Neu installierte GIDE-Laufwerke: |
+ | C: D: E: F: G: H: I: J: | ||
- | {{: | + | GIDE-Treiber installiert |
- | Bestellnr. 94-701 790 DOM, IDE, 128MB, PQI | + | A> |
+ | </ | ||
- | Auf der Leiterplatte ist Pin 1 ebenfalls links oben (!) (auf Bestückungsseite gesehen!) | + | Es wurde nur der Treiber geladen! Die Festplatte bzw. das DOM-Modul wurden noch nicht verändert/ |
- | Das Modul kann aufgrund | + | **Vor der erstmaligen Benutzung** eines Laufwerks muss dieses formatiert |
+ | Andere Programme, die dieselbe Ausgabe erfüllen, | ||
- | {{:z9001: | + | < |
+ | A>eradir c: | ||
- | Variante 1: Kabel für ein DOM-Modul nach W. Harwardt. Es werden zwei Steckverbinder (Leiterplattenverbinder) benötigt, die gegenseitig auf das Flachbandkabel aufgecrimpt werden. Allerdings sitzt das DOM-Modul recht wacklig auf dem Steckverbinder. Ich habe daher Variante | + | Disk information for drive C: |
+ | | ||
+ | sys tracks: | ||
+ | | ||
+ | | ||
+ | tot grps: 995 | ||
+ | dir entries: | ||
+ | dir groups: | ||
- | {{:z9001: | + | OK to erase directory on drive C: (y/n, |
+ | CR=n) ? Y | ||
- | Variante 2: Hier wird ein Wannenstecker und ein Steckverbinder genutzt. Zum Vertauschen der Reihen A und B habe ich am Steckverbinder jeweils 2 nebeneinander liegende Leitungen verdreht. | + | Erasing directory |
+ | Track 3 Sector | ||
- | {{: | + | Successful Directory erase |
- | Zum Anschluss der DOM-Module am PC nutze ich einen externen USB-Adapter. Um hier das DOM-Modul zu verbinden, reicht ein Flachbandkabel mit 2 Wannensteckern auf derselben Seite. Die Reihen | + | A> |
+ | </ | ||
- | ==== CP/M ==== | + | fertig! |
- | Ein guter Startpunkt zum Thema GIDE ist | + | Nun sind die Festplattenlaufwerke eingerichtet und man kann Programme dorthin kopieren, z.B. mit PIP, DIP, oder POWER. |
- | http:// | + | ===== Befüllen der Festplatten ===== |
- | http:// | + | |
- | Empfehlenswert ist es, zuerst mit einem der Testprogramme GIDE*.COM | + | Um die Festplatten so richtig mit Software aufzufüllen, |
- | Zur Arbeit mit Festplatten unter CP/M muss i.W. ein passendes CP/M-BIOS erstellt werden. Quellcodebasis dafür ist GIDEprog.zip. Der GIDE-Treiber umfasst nur eine einfach zu übernehmende Schreib- und eine Leseroutine für das BIOS. | + | TODO |
- | + | ||
- | + | ||
- | Von Kingstener kommt ein universell nachladbarer Treiber: | + | |
- | http:// | + | |
- | + | ||
- | + | ||
- | === Test === | + | |
- | + | ||
- | Unter CP/M: | + | |
- | + | ||
- | < | + | |
- | GIDEC oder GIDE starten | + | |
- | p auswählen | + | |
- | Port angeben (hier 50), ECB-Bus-IDE Interface N | + | |
- | 1 (read drives | + | |
- | weitere Punkte nach Belieben | + | |
- | </ | + | |