Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:cpm:gide [2015/10/19 12:23] – angelegt volkerp | z9001:cpm:gide [2025/08/01 07:27] (aktuell) – volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | FIXME | ||
- | |||
====== GIDE ====== | ====== GIDE ====== | ||
- | |||
- | [[z9001: | ||
- | |||
- | Von Kingstener < | ||
- | http:// | ||
- | |||
- | |||
- | Heiko Poppe entwickelt auch fleißig Treiberpakete für die GIDE. | ||
- | |||
- | |||
- | Wolfgang Harwardt hat Herbst 2013 eine kompakte Leiterplatte mit GIDE-Interface und USB (VDIP1) für den [[homecomputer: | ||
- | |||
- | 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 (" | ||
den Anschluss von bis zu zwei IDE-Geräten wie Festplatten oder CD-ROMs. Zusätzlich | 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.\\ | wird auch eine batteriegepufferte Echtzeituhr (RTC, Seiko-Epson-72421) unterstützt.\\ | ||
- | Die Schnittstelle wird über I/O-Befehle angesprochen.\\ | + | Die Schnittstelle wird über I/O-Befehle angesprochen. |
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). | ||
+ | Originale Unterlagen zum Thema GIDE gibt es hier http:// | ||
- | {{:z9001: | + | Benötigt wird am Z9001 ein [[z9001: |
- | 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? | + | {{: |
- | Zum Bild: Folgende Module sind gesteckt (von vorn nach hinten): | ||
- | * GIDE+USB von Bübchen mit 128MB DOM und VDIP1 | + | Am GIDE-Bus ist ein DOM-Modul vom Pollin angeschlossen. Der Flash-Speicher hat eine Kapazität |
- | * 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, | + | | I/ |
- | 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. | + | Heiko Poppe entwickelt fleißig Treiberpakete für die GIDE. |
- | ==== Hardware ==== | + | http:// |
- | (nach http://www.gaby.de/gide/GIDE.txt) | + | https://dl.dropboxusercontent.com/u/53892897/GIDE-ALL_02.zip |
- | **Einführung** | + | Von Kingstener gibt es auch einen nachladbaren Treiber (11/2014 Version 0.5): |
+ | http:// | ||
- | Die GIDE ist eine generische IDE-Schnittstelle für Z80-basierten Computer. Sie ermöglicht | + | http://www.robotrontechnik.de/html/ |
- | 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** | + | Achtung! Die Treiber sind nicht miteinander kompatibel! Wird der falsche Treiber genutzt, zerstört man alle Daten auf der Festplatte!!!! |
- | Der RTC-Teil kann entfallen. Dies betrifft den RTC-Chip und die zugehörigen Bauteile zur | + | **Hardware** |
- | Batteriegepufferung. | + | |
- | **Schaltungsbeschreibung** | + | s. [[z9001: |
- | Die Schaltung kann in mehrere Funktionsblöcke unterteilt werden. Der erste | ||
- | Block ist der Adressendecodierer, | ||
- | Er vergleicht die Adressleitungen A4 bis A7 mit den Werten | ||
- | durch die Basisadresse via Jumper (J1), und dekodiert alle benötigten Auswahlsignale | ||
- | 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. | + | ===== Downloads ===== |
- | 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, | + | * {{: |
- | in einem der Register gespeichert, | + | * Version 0.6 incl. Quellcode |
- | 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 ist der RTC-Block. | + | Benötigt |
- | Die Adreßleitungen A8 bis A11 werden | + | |
- | 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** | + | Achtung! Die Treiber sind nicht miteinander kompatibel! Wird der falsche Treiber genutzt, zerstört man alle Daten auf der Festplatte!!!! |
- | Belegte I/O-Adressen (Alle Adressen sind hexadezimal): | + | **Der Treiber von H.Poppe musste gepatcht werden, da das originale Z9001-CP/M ein anderes Laufwerksbyte als üblich nutzt**, s. [[z9001:cpm: |
+ | ===== CP/M ===== | ||
- | | x0..x3 | werden nicht genutzt und sind frei für andere Erweiterungen | | + | Ein guter Startpunkt zum Thema GIDE ist |
- | | 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/ | + | |
- | " | + | http://www.gaby.de/ |
+ | http:// | ||
- | Auf die sechzehn RTC Register wird mit 16-Bit-I/O-Anweisungen zugegriffen: | + | Empfehlenswert ist es, zuerst |
- | | y0x5 | seconds, units | | + | 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. |
- | | 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/control) | + | |
- | | 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. | ||
- | **Programmierbeispiele** | + | === Test === |
- | Für eine einfache Implementierung werden Routinen sind sowohl für IDE-und RTC-Zugang benötigt: die | + | Unter CP/M: |
- | Initialisierungsroutine, | + | |
- | Die Datei GIDEIDE.MAC enthält einen Beispiel-IDE-Treiber, GIDERTC.MAC einen Beispiel-Treiber für die RTC. | + | < |
+ | GIDEC oder GIDE starten | ||
+ | p auswählen | ||
+ | Port angeben (hier 50), ECB-Bus-IDE Interface N | ||
+ | 1 (read drives | ||
+ | weitere Punkte nach Belieben | ||
+ | </ | ||
- | Für erste Tests mit einer frisch angeschlossenen IDE-Festplatte gibt es das Testprogramm | + | funktioniert dies, kann der GIDE-Treiber geladen werden: |
- | 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. | + | |
+ | ===== Treiber v. H. Poppe ===== | ||
- | **Hinweise** | + | auf einer [[z9001: |
- | Kommt es beim Schreiben auf die Disk zu Problemen, hilft vielleicht der Tipp aus http:// | + | GIDEHP50.COM |
- | Ein Widerstand von 100 Ω .. 1 kΩ ist in die / | + | |
- | ==== DOM-Modul ==== | + | enthalten sein. |
+ | Dann kann es losgehen. Nach dem Booten von der Diskette wird zuerst der GIDE-Treiber geladen: | ||
- | Bei [[http:// | + | < |
+ | A> | ||
- | {{: | + | GIDE-Treiber fuer Z9001-CP/ |
+ | |||
+ | GIDE-Modul auf Adresse 50H | ||
+ | Info IDE-Laufwerk: | ||
+ | PQI DJ0128M22RF0 | ||
+ | 500 Cyl; 16 Head; 32 Sec; | ||
- | Bestellnr. 94-701 790 DOM, IDE, 128MB, PQI | + | Im BIOS installierte Laufwerke: |
+ | A: | ||
- | Auf der Leiterplatte ist Pin 1 ebenfalls links oben (!) (auf Bestückungsseite gesehen!) Die Leiterplatte ist eigentlich dafür gedacht, dass Modul rückseitig aufzustecken, | + | Neu installierte GIDE-Laufwerke: |
+ | C: D: E: F: G: H: I: J: | ||
- | Das Modul kann aufgrund der " | + | GIDE-Treiber installiert |
- | {{: | + | A> |
+ | </ | ||
- | Variante 1: Kabel für ein DOM-Modul nach W. Harwardt. | + | Es wurde nur der Treiber geladen! Die Festplatte bzw. das DOM-Modul |
- | {{: | + | **Vor der erstmaligen Benutzung** eines Laufwerks muss dieses formatiert werden. Dafür reicht das Programm **eradir**. Dieses Programm löscht und initialisiert den Directory-Bereich einer Diskette bzw. Festplatte. Beim DOM-Modul müssen wir nicht physisch formatieren, |
+ | Andere Programme, die dieselbe Ausgabe erfüllen, sind z.B. DUF05 (Punkt4) oder HDFORMAT. | ||
- | Variante 2: Hier wird ein Wannenstecker und ein Steckverbinder genutzt. Zum Vertauschen der Reihen | + | < |
+ | A>eradir c: | ||
- | {{:z9001:module_sonstige:dom-adapter.jpg? | + | Disk information for drive C: |
+ | | ||
+ | sys tracks: 2 | ||
+ | | ||
+ | | ||
+ | tot grps: 995 | ||
+ | dir entries: | ||
+ | dir groups: | ||
- | 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 und B des IDE-Anschlusses müssen nicht vertauscht werden. | + | OK to erase directory on drive C: (y/n, |
+ | CR=n) ? Y | ||
- | ==== CP/M ==== | + | Erasing directory |
+ | Track 3 Sector | ||
- | Ein guter Startpunkt zum Thema GIDE ist | + | Successful Directory erase |
- | http:// | + | A> |
- | http:// | + | </code> |
- | 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 (Bilder s. http:// | + | fertig! |
- | 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. | + | Nun sind die Festplattenlaufwerke eingerichtet und man kann Programme dorthin kopieren, z.B. mit PIP, DIP, oder POWER. |
+ | ===== Befüllen der Festplatten ===== | ||
- | Von Kingstener kommt ein universell nachladbarer Treiber: | + | Um die Festplatten so richtig mit Software aufzufüllen, |
- | http:// | + | |
- | + | TODO | |
- | === 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 | + | |
- | </ | + | |