Dirk Ambras FUNKAMATEUR 6/1992 S. 319 Die Speicherung von Computerdaten auf Magnetbandkassetten genügt bezüglich Speicherumfang und -sicherheit durchaus. Der Zugriff zu Dateien ist aber alles andere als komfortabel und beim heutigen Preis von Diskettenlaufwerken auch nicht mehr zwingend. Der folgende Beitrag beschreibt die wenig aufwendige Anpassung des Z1013 an die Commodore-Floppy 1541-II. Der C64 und seine Floppy sind normalerweise über ein serielles Bussystem (IEC-Bus) miteinander verbunden. Durch eine kleine Außenbeschaltung, ähnlich der des C64 [1], wird der PIO U855 die Arbeit mit dem IEC-Bus ermöglicht. Floppy und Z1013 bleiben unverändert. Die IEC-Operationen sind zeitkritisch; das Programm ist daher für die Z1013-Arbeit mit 2 MHz zeitoptimiert und läuft sehr wahrscheinlich nur mit diesem Takt. Softwareseitig muß das abgedruckte MC-Programm eingetippt werden. Es arbeitet mit dem normalen Userport 0 des Z1013, benutzt RST 20h-Rufe und den erweiterten Sprungverteiler (Adressen FFBBh bis FFFFh) nach [2]. Menüfunktionen Die Startadresse des "Disk Monitor" ist E000h. Es erscheint ein Menü, das folgende Funktionen anbietet: Laden von- und Speichern auf Diskette, Kopieren von Kassette (HSAVE!) auf Diskette oder Kopieren auf eine zweite Diskette, Anzeige der Directory, direktes Senden von Befehlen an die Floppy oder einen Centronics-Drucker, Auswählen einer Floppy unter mehreren. Die Laderoutine liest grundsätzlich erst die Directory (maximal 144 Einträge), aus der man dann mit den Tasten Cursor hoch/tief (0Bh/0Ah) das gewünschte Programm auswählt. Ein Tastendruck beendet dabei vorzeitig das Auflisten. Zeigt der Cursor auf den Namen, drückt man ENTER; soll nichts geladen werden, STOP (03h). Unterschieden wird Kommando "L" für Laden und evtl. Starten von Programmen (Typ "C") sowie "l" {Anm.:kleines L} für Laden auf andere Speicherbereiche und Unterdrücken eines Autostarts. Die Save-Routine verlangt bei "Adressen:" die Eingabe von Anfangs-, End- und gegebenfalls Startadresse (durch Leerzeichen getrennt). Name und Typ werden wie beim Headersave abgefragt. Sind Name und Typ schon vergeben, wird wahlweise abgebrochen oder die alte Datei automatisch gelöscht und ein neuer Schreibversuch gestartet. Die Wahl trifft der Nutzer durch die Belegung einer Steuerzelle. Größere PCs erzeugen dabei aus der alten eine BAK-Datei, um Datenverlust vorzubeugen. Das habe ich jedoch nicht für nötig gehalten, weil es die Bearbeitungszeit der SAVE-Anweisung verlängert und das Programm noch umfangreicher machen würde. Die Directory wird stets ohne Speicherverlust angezeigt; im Menübetrieb ist darüber hinaus die Simultanausgabe auf einen über Centronics angeschlossenen Drucker möglich. Zusätzlich erfolgt die Anzeige der Anzahl der gelisteten Files. Ein direkter Befehl wird unbearbeitet an die Floppy übermittelt und muß deshalb die in [3] vorgeschriebene Syntax beachten. Möglich sind u.a. Formatieren der Diskette sowie Löschen, Umbenennen und Zusammenfassen von Files. Danach werden automatisch der Fehlerkanal gelesen und das Ergebnis der Aktion oder die OK-Meldung angezeigt. In [3] sind die möglichen Meldungen erklärt. Man kann Befehle, insbesondere ESC-Sequenzen, auch an den Drucker abschicken. Der letzte Punkt ist die Auswahl des aktuellen Geräts. Die Floppy besitzt dazu zwei DIP-Schalter, mit denen sich die Geräteadresse zwischen 8 und 11 variieren läßt. Es können also vier Floppies gleichzeitig am Bus angeschlossen sein. Jede Operation richtet sich nur an das vom Nutzer ausgewählte Gerät. Drücken der STOP-Taste beendet die Menüarbeit - das Programm springt RST 38h an. Sprungverteiler Das Programm beginnt mit einer Sprungtabelle, durch die eine Diskettenarbeit aus anderen Programmen heraus möglich ist (CALL adr.). Alle Routinen - mit Ausnahme des Menüs - kehren in das rufende Programm zurück. Beschreibung der Floppy Die Floppy 1541-II ist ein sogenanntes intelligentes Laufwerk und organisiert das physische Lesen und Schreiben der Diskette selbst. Die normale Schreib/Lese-Geschwindigkeit liegt etwas höher als die des 2-MHz-Headersave. Verfügbar sind 170 KByte je Diskettenseite. Die Floppy ist ein selbständig arbeitsfähiger Computer, der RAM und ROM besitzt und mit dem gleichen Prozessortyp (6510) wie der C64 arbeitet. Es ist z.B. möglich, ein Programm in ihren RAM zu schreiben und ausführen zu lassen oder einzelne Diskettenblöcke gezielt zu manipulieren. Es gibt einen "Floppyspeeder" für den C64, der die Übertragungsgeschwindigkeit 6,8fach beschleunigt. Diesen Speeder auf den Z1013 zu übertragen, gelang mir bisher nicht. Ich wäre einem C64-Nutzer für Hilfe (dokumentierter Assemblerquelltext?) sehr dankbar. Es gibt im Handel außerdem Bausätze zur parallelen Datenübertragung. Sie verlangen aber einen Eingriff in die Floppy und benötigen andere Software. [4] enthält interessante Beispielprogramme für direkten Zugriff auf die Diskette sowie ausführliche Tips zu Pflege, Justierung und Reinigung des Laufwerkes. Die Nutzer der Routinen E01Bh bis E030h finden in [1] eine eingehende Beschreibung der IEC-Datenübertragung. Ein neues Gerät kostet inzwischen noch um die 270 DM, gelegentlich auch noch weniger, und mit etwas Geduld bekommt man aber auch ein gutes Gebrauchtgerät für vielleicht 150 DM. Ich empfehle 5,25"-DS-Disketten. Tricks nebenbei Die Z1013-Aufzeichnungen sind mit denen des C 64(128) kompatibel. Das ermöglicht für den Z1013 den Zugriff auf eine sehr große Vielfalt an Daten, z.B. 200 Zeichensätze und jede Menge Grafiken. Allein in Deutschland wurden mindestens 1 Million C64 verkauft. Sicher gibt es auch C64-Nutzer, die Übertragungswünsche haben. Es ist sogar zulässig, C64 und Z1013 gleichzeitig mit dem Bus verbunden zu haben. Keinesfalls dürfen jedoch beide Rechner zur selben Zeit einen Buszugriff durchführen. Sicher ist auch ein Anschluß anderer Commodore-Geräte möglich, z. B. eines Druckers. Bediensoftware läßt sich mit den Routinen E01Bh bis E030h programmieren. Ausprobiert habe ich es nicht, und eine Garantie kann auch nicht übernommen werden.
Erfahrungen Das Interface arbeitet seit einem halben Jahr
fehlerfrei. Ein Nachbau funktioniert seit vier Monaten ebenso gut. Deshalb
wurde auf eine Verify-Routine verzichtet. Die Software ist außerdem
niemals abgestürzt, aber andererseits nicht vor Überschreiben
geschützt. Das kann zu Problemen führen. Aus technischen Gründen ist
jedes geladene Programm auch 2 Byte länger als abgespeichert. CD F1 FF ==> CD 03 E0 (LOAD) und CD F4 FF ==> CD 06 E0 (SAVE) Bezug Interessenten können eine doppelte Headersave-Aufnahme des MC-Programms erhalten (Leerkassette an D. Ambras, Heimstättenweg 63, O-4073 Halle, PF 17/29, Rücksendung per Einschreiben und Nachnahme 16,90 DM). Kleinere Anwenderwünsche wie anderer Speicherplatz, anderer PIO-Port oder Erzeugen von BAK-Dateien lassen sich dabei noch berücksichtigen. Für umfangreichere Änderungen (z.B. Anpassung an KC) steht auch der komplette Assemblerquelltext zur Verfügung (+25 DM), ggf. auch im KC-Format. [1] C64 intern, Data Becker GmbH Düsseldorf
Vielen Dank an Dirk Ambras für die Genehmigung zur Veröffentlichung. Internetbearbeitung für Z1013.de von Holger Krull |