★ APPLICATIONS ★ DISQUE ★ Von Disk zu Disk — per Kassette ★ |
SuperTape: Von Disk zu Disk (Computer Technik) | Applications Disque |
CP/M-SuperTape am Beispiel Schneider CPC Auch im Zeitalter der Diskette ist die Kassette noch nicht 'out'. So kann sie als preiswertes Medium für Sicherungskopien (Backups) dienen. SuperTape rettet bei 3600 Baud immerhin etwa 2,3 MByte auf eine C90-Kassette. Außerdem ist das einheitliche SuperTape-Format für den Software-Austausch — ohne Schwierigkeiten wegen unterschiedlicher Diskettengrößen und -formate. Die hier vorgestellten CP/M-Programme für SAVE und LOAD bestehen aus zwei Teilen: einem allgemeinen Teil, der für jeden CP/M-Rechner gilt, und einem SuperTape-'BIOS', das das Timing und die I/O-Ports des jeweiligen Rechners berücksichtigt. Treue c't-Leser werden sich erinnern, daß schon vor einem Jahr eine CP/M-Version von SuperTape erschienen ist (c't 11/84: Formatprobleme ade!), allerdings in dem etwas ungeliebten 8080-Code. Die neue Version ist erheblich erweitert, wesentlich komfortabler und auf den Z80-Prozessor zugeschnitten. Das SuperTape-‘BIOS' bedient sich der Parameter, die das Hauptprogramm in einem gemeinsamen Puffer ablegt, und sorgt dann für das Laden, Retten oder Vergleichen der gewünschten Datei. Dafür sind die drei Routinen ‘LDBLO', ‘SVBLO' und ‘LDVER' verantwortlich. Schneiderfamilie Ein Beispiel für ein SuperTape-‘BIOS' sind die in c't 11/84 abgedruckten Routinen für CP/M-Rechner allgemein, ein anderes die für den Schneider CPC (c't 9/85). Dieser neue Star am CP/M-Himmel arbeitet zwar mit der Z80-üblichen Taktfrequenz von 4 MHz, das Timing wird aber durch Wait-Zyklen gebremst (siehe c't 9/85: Vertrackte Warte-Takte). Außerdem benutzt er eine unübliche 16-Bit-Portadressierung. Die genannten Routinen für den CPC 464 lassen sich ohne Änderung übernehmen, da das CP/M-Programm die gleichen Parameter- und Routinennamen verwendet. Die Unterprogramme MOTON und MOTOFF, die den Motor einbeziehungsweise abschalten, wurden allerdings geändert, damit sie auch auf den neueren CPC-Modellen 664 und 6128 lauffähig sind. Mit dem eingebauten Kassetten-Interface (lahme Elektronik) kann jedoch der CPC 664 selbst bei einem guten Recorder nur die 3600 Baud bewältigen. Um mit 7200 Baud die Aufnahmekapazität der oben erwähnten C90-Kassette auf über viereinhalb Megabyte zu verdoppeln, sollte man das in c't 9/85, Seite 81, für den CPC 464 vorgestellte Interface einbauen. Hierfür benötigt man dann aber auch einen Recorder mit HiFi-Qualität. Das vorliegende — etwas längliche — Listing ist der Quellcode für den M80-Makro-Assembler. (Wer sich nicht der Mühe des Eintippens unterziehen will, kann auch den Software-Service nutzen.) Es enthält den sogenannten Include-Befehl, der den Assembler an weist, die in der bezeichneten Datei stehenden Programmzeilen mit in die Übersetzung einzubeziehen. Mit Hilfe des Include-Befehls kann man zum Beispiel auf ein bestehendes Unterprogrammpaket zurückgreifen. Im vorliegenden Fall betrifft das die für SAVE und LOAD gemeinsam benötigten Unterprogramme (Dateien STUPZ.MAC und STMOT.MAC), die Wertzuweisungen (Equates, Datei STEQU.MAC) und die Super-Tape-‘BIOS'-Routinen aus Heft 9. Ab gehl's Hat man die beiden Files STLZ.COM und STSZ.COM erst einmal auf Diskette, muß man nur noch wissen, wie man damit umgeht. Heutzutage kommt man ja meist leichter an die Software — auf oftmals verschlungenen Wegen — als an eine brauchbare Bedienungsanweisung. Die Bedienung ist beim CP/M-SuperTape ganz einfach: STSZ name.typschreibt eine Datei mit 3600 Baud aufs Band, undSTLZ name.typliest sie wieder ein. Name und Typ dürfen die ‘wildcard'- oder Joker-Zeichen und '?' enthalten (bei STSZ nicht unbedingt sinnvoll). Wird bei STLZ weder Name noch Typ angegeben, entspricht das der Eingabe ‘STLZ *.*'Damit ist bereits alles gesagt, was man wissen muß, um die beiden Programme anzuwenden. Aber auch hier gibt es die berühmten Feinheiten, ohne die sich die wahren Fähigkeiten gar nicht erst offenbaren. Zunächst einmal kann man dem Dateinamen — wie bei CP/M üblich — die Laufwerksbezeichnung voranstellen. Der glückliche Besitzer zweier Laufwerke kann also die SuperTape-Programme auf einer Diskette haben und von einer anderen beziehungsweise auf eine andere kopieren. Des weiteren steht eine Reihe von Steuerparametern zur Verfügung, die, durch mindestens ein Leerzeichen abgesetzt, hinter dem Dateityp einzugeben sind:
Das ist aber noch nicht alles. STSZ und STLZ sind nämlich als Schleifen programmiert, was bedeutet, daß man bei umfangreicheren Kopieraktionen nicht jedesmal alles neu eingeben muß. Bei STSZ erstreckt Und dann? sich diese Möglichkeit allerdings nur auf Mehrfachkopien ein und derselben Datei. STLZ dagegen ist in der Lage, auch Dateien mit unterschiedlichen Namen in einem Rutsch zu laden: Wenn STLZ im Namen oder Typ Joker-Zeichen entdeckt, meldet es sich nach dem Abspeichern auf Diskette mit ‘Noch einmal?' wieder. Bei Verify ist jedoch bereits nach dem ersten erfolgreichen Durchlauf Schluß. Wie bei jedem ‘ordentlichen' Programm gibt cs natürlich auch Fehlermeldungen. ‘Eingabefehler' weist entweder auf einen ungültigen Parameter hin oder auf ein falsches Ziffernzeichen nach dem (erlaubt sind ‘0'...‘9' und ‘A'...‘F'). STSZ und STLZ nehmen die Arbeit dann gar nicht erst auf, desgleichen, wenn die CP/M-Datei zu lang ist (sie muß vollständig in den Speicher passen) oder nicht gefunden werden konnte. Die Fehlermeldungen beim Laden der SuperTape-Datei erklären sich selbst; sofern wenigstens der Parameterblock erfolgreich geladen werden konnte, gibt STLZ Namen und Länge (in KByte) der Datei aus. Sollte jedoch einmal die Meldung ‘Panne bei PC = xxxx' auftreten, ist mit dem Programm irgend etwas nicht in Ordnung. Abschließend sei noch bemerkt, daß man jedesmal, wenn die Programme eine Reaktion vom Benutzer erwarten, auch Control-C oder Control-P für Abbruch beziehungsweise Einschalten des Druckers — so man hat — eingeben kann.
|