Erschienen in 64'er Magazin, Ausgabe Sonderheft 32 · Originaldatei: DISKMAIL.TXT
Hinweis: Dies ist das an die Redaktion eingereichte Manuskript, nicht der gedruckte Endtext. Layout, Bildunterschriften, Korrekturen und Kürzungen der Redaktion können in der veröffentlichten Fassung abweichen.
Geheime Diskettenbeschriftung: Die Disk-Mailbox
Botschaften auf Diskette sind eine feine Sache. Wenn kein einziger Block dafür geopfert werden muß, ist das um so besser. Das komfortable Utility Disk-Mailbox quetscht auch auf scheinbar randvolle Floppies noch kurze Texte.
von Nikolaus M. Heusler
Das Diskettenoperationssystem der VC 1541 (DOS) legt auf einer Diskette gewöhnlich 35 Spuren (Tracks) an, von denen dem Anwender letztendlich aber nur 34 für die Datenspeicherung zur Verfügung stehen. Der Track 18 wird vom DOS für Organisationszwecke genutzt, hier befinden sich das Directory, die Übersicht über die Blockbelegung (BAM), der Diskettenname und deren Identifikationsnummer (ID). 85 Bytes dieses Tracks im Sektor 0 sind nicht benutzt, beim Formatieren werden sie mit Nullen gefüllt (auf Grund eines Fehlers findet man hier manchmal auch den Text »BLOCKS FREE.«). Es handelt sich dabei um die Bytes 171 mit 255 dieses Sektors.
Warum sollte man nicht auch diese 85 Bytes irgendwie nutzen? Stellen Sie sich vor, Sie haben ein gutes Programm geschrieben, das eine ganze Diskettenseite belegt. Dann könnten Sie einen kleinen Text in den Freiraum schreiben, der vom Hauptprogramm abgefragt wird, um festzustellen, ob die richtige Diskette im Laufwerk ist. Beispielsweise wäre ein Copyright Hinweis oder die Adresse des Programmierers denkbar. Viele professionelle Programme (z.B. GEOS) machen davon Gebrauch. Eine andere Möglichkeit: Sie wollen die Highscoretabelle eines Spieles zwar abspeichern, aber haben dafür keinen Platz mehr, oder wollen kein neues File dafür anlegen (professioneller). Kein Problem: Schreiben Sie die Highscores einfach in diese 85 freien Bytes! Ein letztes Beispiel: Das Uraltkopierprogramm »DUBBER« vermerkt hier, wie oft eine Diskette schon kopiert wurde.
Das Programm »Disk Mailbox« regelt den Datenverkehr mit dem kleinen »Briefkasten«. Obwohl das 15 Blocks kurze Tool aus Gründen der Geschwindigkeit und des Komforts vollständig in Assembler geschrieben wurde, brauchen Sie keine Maschinensprache-Kenntnisse, um damit arbeiten zu können. Das Programm kann wie normales Basic geladen, gespeichert und ggf. kopiert werden. Laden Sie das Programm mit
LOAD "DISKMAILBOX 2.0",8
Der Start erfolgt mit RUN. Vor sich sehen Sie jetzt ein Mini-Textverarbeitungsprogramm für 85 Zeichen lange Texte. Ganz links oben wird sogar angezeigt, wieviel Prozent des Textspeichers noch frei sind, anfangs natürlich 100%. Darunter sehen Sie die Cursorspalte (S) und -zeile (Z). Rechts oben steht ein graues Diskettensymbol. Das bedeutet, daß das Programm momentan das Laufwerk nicht anspricht. Verfärbt sich die kleine Diskette weiß, so steht ein Diskettenzugriff bevor. Doch dazu später mehr.
Oben sehen Sie das Eingabefeld, es umfasst fünf Zeilen zu je 17 Zeichen. Die Punkte besagen, daß es momentan leer ist. Schreiben Sie nun einmal einen kleinen Text. Sie sehen, wie der blinkende Cursor »mitläuft«. Am Ende einer Zeile springt er an den Anfang der nächsten Zeile. Dies ereichen Sie auch durch Druck auf RETURN. Wie bei einigen Textverarbeitungsprogrammen üblich, hinterläßt SHIFT RETURN ein Zeilenende-Kennzeichen, ein kleiner gebogener Pfeil. Mit den Cursor-Tasten können Sie beliebig im Textfeld herumfahren, mit der DEL-Taste wie gewohnt löschen, allerdings wird dabei der Rest der Zeile nicht nachgezogen. Die Tasten HOME und CLR springen an den Anfang bzw. das Ende des Feldes. Da das Programm mit verändertem Zeichensatz arbeitet, können Sie über einige CBM (Commodoretaste links unten) Kombinationen sogar Sonderzeichen ereichen:
CBM A Ä
CBM O Ö
CBM U Ü
CBM C Copyright-Symbol
CBM R Zeilenende
CBM D Diskettensymbol, links oben
CBM B Diskettensymbol, links unten
CBM F Diskettensymbol, rechts oben
CBM V Diskettensymbol, rechts unten
CBM (at) Punkt (at = Klammeraffe)
Das Wichtigste an diesem Programm ist aber das Pulldown-Menü. Drücken Sie <f1>. Es erscheint nun das Hauptmenü, bestehend aus den Punkten OPTIONS, DISK (8), IN/OUT, WEITER. Mit den Cursor-Tasten stellen Sie den Cursor auf einen Menüpunkt. Unter »OPTIONS« finden Sie einige Hilfen, unter »DISK« (in Klammern die Geräteadresse) wird das Laufwerk behandelt, mit einem Menüpunkt aus »IN/OUT« wird der Text ein- und ausgegeben, und durch Wahl von »WEITER« verlassen Sie das Menü wieder, um zu editieren. Wenn Sie die RETURN-Taste (oder CRSR DOWN) drücken, wird einer der vier Punkte gewählt, und wie eine Jalousie rollt ein weiteres Menü herunter, in dem Sie wieder mit CRSR und RETURN wählen:
OPTIONS:
ENDE: Mit dieser Funktion wird das Programm verlassen. Durch Eingabe von SYS 2061 können Sie es ggf. wieder starten.
NEUSTART: Falls Sie die Parameter des Programmes (siehe unten) zu stark verändert haben, können Sie durch Wahl dieser Funktion einen Reset des Programmes ausführen, es wird dann neu gestartet (Achtung: Textverlust!).
LÖSCHEN: Soll der in der Anzeige befindliche Text gelöscht werden, hilft diese Funktion. Beantworten Sie die Sicherheitsabfrage mit J, dann wird der Text gelöscht.
ERSETZEN: Diese Funktion mag in einem 85 Zeichen langen Text überflüssig erscheinen. Doch man kann damit nette Effekte, etwa einen anderen Hintergrund, erzielen. Geben Sie erst den Text ein, den Sie ersetzen wollen, und dann die Buchstabenkombination, durch die ersetzt werden soll. Hat diese nicht die gleiche Länge wie der zu ersetzende Text, so wird die Funktion nicht ausgeführt. Wenn Sie ein völlig gelöschtes Eingabefeld haben, können Sie durch Suchen nach CBM Klammeraffe und Ersetzen beispielsweise durch »*« den Hintergrund umgestalten.
DEVICE: Sind zwei Laufwerke im Einsatz, oder Ihre hat Floppy nicht die Gerätenummer 8 hat, können Sie mit dieser Funktion die Gerätenummer, unter der das Programm die Floppy anspricht, ändern. Einstellbar mit der Plus und Minus Taste sind Nummern zwischen 8 und 15. Das Programm prüft nicht, ob ein Laufwerk unter dieser Nummer angeschlossen ist! Diese Einstellung bleibt auch bei einem Neustart des Programms erhalten.
SCHRIFTSATZ: Komfort muß sein. Wenn schon nicht mit CBM SHIFT, so können Sie doch mit diesem Menüpunkt den Zeichensatz mit den Tasten <1> und <2> umstellen. Standardeinstellung ist GROSS/GRAFIK. Wenn Sie den anderen Schriftsatz wählen, weil Sie auch Kleinbuchstaben verwenden wollen, so wird dabei allerdings die Bildschirmmaske zerstört.
CRSR: Wenn Sie im Editor einen Text eingeben, so rückt der Cursor bei jeder Texteingabe automatisch um einen Schritt nach rechts. Mit dieser Funktion kann diese Eigenart abgeschaltet werden, was auch zum Erstellen von sekrechten Linien praktisch ist.
<-: zum Hauptmemü
DISK:
DIRECTORY: Es wird das Directory auf dem Bildschirm angezeigt. Nach jeder Seite stoppt die Auflistung, durch Druck auf die Leertaste oder RETURN können Sie weiterlisten, bei STOP kommen Sie ins Menü zurück.
DISKBEFEHL: Geben Sie den Befehl in der normalen Syntax ein, anschließend RETURN. Daraufhin wird automatisch der Fehlerkanal ausgelesen.
STATUS: Diese Funktion liest den Fehlerkanal aus.
<-: zum Hauptmenü
IN/OUT:
LESEN: Dieser Programmteil liest eine auf der Disk bereits enthaltene Mail in den Anzeigespeicher ein.
SCHREIBEN: Wenn Sie einen Text verfaßt haben, speichern Sie ihn mit dieser Funktion auf Spur 18, Sektor 0, Byte 171-255. Danach wird automatisch die nächste Funktion ausgeführt:
VERGLEICHEN: Verleicht den Text, der sich im Speicher befindet mit dem auf Floppy gespeicherten. Auf dem Bildschirm wird die Anzahl der gleichen und die der unterschiedlichen Bytes ausgegeben, im Anzeigespeicher verfärben sich die Unterschiede weiß.
DRUCKEN: Zu Dokumentationszwecken kann der Text sogar gedruckt werden, und zwar auf einem MPS 803 oder 801. Dabei wird nicht der Grafikmodus verwendet, deswegen können die Sonderzeichen nicht gedruckt werden! Die Diskmailbox spricht den Drucker unter der Geräteadresse 4, Sekundäradresse 0 an, am Zeilenende wird nur der Code CR geschickt. Wenn Sie auch wollen, daß auf dem Papier erscheint, wie die Diskette heißt, welche ID und welches OS sie hat, so antworten Sie auf die Frage »DISK DATEN DRUCKEN?« mit J.
LEERTEST: Nehmen wir an, Sie haben gerade einen Text im Speicher und wollen ihn jetzt auf Diskette speichern. Sie sind sich aber nicht sicher, ob sich da schon Daten befinden. Lesen können Sie sie nicht, da dann der Text im Speicher verlorengeht. Machen Sie einen »Leertest«, dabei wird getestet, ob in den 85 Bytes auf der Diskette schon Daten stehen. Es werden im Display auf dem Bildschirm die Stellen, an denen auf der Floppy schon etwas steht, weiß gefärbt.
<-: zum Hauptmenü
WEITER
Rücksprung in den Editor. Hier können Sie nach Herzenslust Ihre Mitteilungen ablegen und bearbeiten.
Durch die Pulldownmenüs ist das Programm recht einfach zu bedienen. Soll ein Text auf Track 12, Sektor 0, Byte 171-255 von Basic aus gelesen werden (z.B. zu Kopierschutzzwecken), verwenden Sie folgende Routine:
OPEN 15,8,15,"I0" :REM Fehlerkanal öffnen
OPEN 3,8,3,"#" :REM Datenkanal
MG$ = "" :REM String löschen
PRINT#15,"UA:3 0 18 0":REM Track 12 Sektor 0 einlesen
PRINT#15,"B-P 3 171" :REM Zeiger auf Byte 171
FOR PT=171 TO 255
GET#3,A$ :REM ein Zeichen holen
MG$ = MG$+A$
NEXT
CLOSE 3 :REM Kanäle schließen
CLOSE 15
Danach befindet sich der Text in MG$.