TotalCommander Plugin ListTAP
Download
- listtap.zip enthält Plugin, Anleitung, Sourcen (Delphi 5)
Historie
- 18.02.2010: Es werden nun auch mit CSAVE* gespeicherte Text- und Zahlenfelder dekodiert
- 4.1.2012: wieder mit Delphi 5 kompiliert. Unter Windows7 gab es Probleme mit der mit TurboDelphi kompilierten Version (der TC „hängt“)
- 7.12.2017: Bei Mühlhausen-BASIC-Programmen werden nun von Anfang an die richtigen Token angezeigt.
- 30.10.2018: bei robotron BASIC-Dateien als .ZBS (mit 11 Byte Kopf) statt .SSS (ohne 11 Byte Kopf) speichern
- 17.04.2020: Speicherfehler korrigiert (bei BASIC-Programme beginnen mit Block 1. Hier wurde über das Ende hinaus korrigiert)
- 17.04.2020: Erkennung von ftMIT_BLOCKNR nun rigoroser, 128*129*x=16512, 33024, 49536 wird nun ftOHNE_BLOCKNR)
Beschreibung
Für den wundervollen TotalCommander habe ich noch ein kleines Plugin geschrieben, was .TAP, .KCC, .SSS, .ZBS (CPM-BASIC)-Dateien erkennt und Informationen zu diesen anzeigt. Erkannte Dateiinhalte werden dekodiert und im Klartext angezeigt. Das betrifft BASIC, Basicode, FORTH, ASSEMBLER, TEXT1, SCRIPT. Im Beispiel oben wird ein BASIC-Programm angezeigt. Der dekodierte Basic-Text kann beispielsweise in die Zwischenablage kopiert werden. Außerdem kann man die verschiedenen Formate untereinander konvertieren (z.B. TAP→SSS). Es gibt auch eine kleine Hilfe…
Das LISTTAP-Plugin listtap.zip installieren: Ab Version 6.x erkennt der TotalCommander beim Klicken auf die Zip-Datei automatisch, daß es sich um ein Plugin handelt und bietet eine Installation an. Andernfalls muß man das ZIP-Archiv entpacken (z.B. nach C:\totalcmd\Plugins\WLX\ListTAP.wlx) und dann manuell im TotalCommander unter Einstellungen/Plugins/Lister Plugins diese Datei registrieren. Ab sofort werden im Quickview oder im Lister (mit F3) *.TAP, *.KCC; *.SSS; *.ZBS dekodiert angezeigt.
Anleitung
Unterstützt werden die Format TAP, KCC, SSS, ZBS.
Diese Dateien enthalten die Daten, die von den originalen Kleincomputern auf Kassette gespeichert werden. Das Speichern erfolgt dabei in Blöcken zu je 128 Byte sowie der Blocknummer. (Auf das Prüfsummenbyte wird in den unterstützten Formaten verzichtet). Der erste Block, der so genannte Kopfblock, enthält i.A. Informationen über dem vom Kleincomputer vergebenen Filenamen und über die Speicheradressen.
Ab Total Commander Version 6.5 werden Plugins automatisch installiert. Dazu ist lediglich auf das Archiv zu klicken. Andernfalls sind die Dateien des Archivs in einen Ordner zu kopieren (z.B. nach c:\Programme\totalcmd\Plugins\WLX\ListTAP). Danach das Plugin zu Total Commander hinzufügen: Menü: Konfigurieren - Einstellungen - Plugins öffnen, und dort auf den Knopf für das gewünschte Plugin klicken.
Öffnet man nun bei einer *:TAP-Datei den Lister (mit F3), erscheint nicht mehr die bekannte Textanzeige, sondern ListTAP:
In der Statuszeile werden folgende Informationen angezeigt: Dateityp (BASIC Robotron, BASIC Mühlhausen, EDAS-Assembler, FORTH, usw.). Rechts daneben wird der Kopfblock des Files ausgewertet:
Es gibt zwei prinzipiell verschiedene Kopfblöcke: vom Betriebssystem und von BASIC.
Bei Betriebssystem-Files werden angezeigt:
- (MC) als Kennung für Betriebssystem-Files
- Filename und Filetyp
- Anfangsadresse und Endadresse, Startadresse
- Die Nummer des Kopfblocks (üblicherweise Z9001: 0, KC85/3: 1)
Bei Basic-Files werden angezeigt:
- (BASIC) als Kennung für Basic-Files
- Filename und Filetyp (SSS – Normales Basic-Programm, TTT – Basic-Datenfeld, UUU-Basic-ASCII-Programm, erzeugt mit LIST#0)
- Anfangsadresse und Endadresse, Startadresse
- Die Nummer des Kopfblocks (üblicherweise 1)
Das Plugin unterstützt die meisten Tasten des normales Listers (1-7, ESC, usw.). Zusätzlich kann mit F1 eine kleine Hilfe angezeigt werden:
Das funktioniert auch im Quickview (Anzeige des Listers im Fenster mittels CTRL-Q):
Die meisten Daten werden im Hex-Modus angezeigt (s. erstes Bild). Es werden aber auch eine Reihe von Fileformaten erkannt und dekodiert angezeigt. Im einzelnen sind das:
- BASIC-Programme
- BASIC-Ascii-Programme
- BASIC-Arrays (gespeichert mit CSAVE*)
- ASM im EDAS-Format
- ASM im Z9001-Format
- BASICODE
- FORTH
- TEXT1
- SCRIPT (TEXT2)
Diese Dateien werden im Hintergrund entschlüsselt und als Klartext angezeigt. Hier ein Beispiel eines BASIC-Programms:
Es wird ein Z9001-kompatibler Zeichensatz genutzt, so dass auch Grafikzeichen zu erkennen sind. Programme, die nur auf den Rechnern von Mühlhausen (KC85/2-4) laufen, werden anhand ihrer speziellen Basicbefehle erkannt und entsprechend dekodiert. Sollte diese Erkennung fehlschlagen, kann man mit B die Darstellung umschalten (Robotron-Basic-Token vs. Mühlhausen-Basic-Token).
Manche Basic-Programme manipulieren die internen BASIC-Zeige für Programmanfang und -Ende, um Maschinencodeteile im Programm unterzubringen. Beispiel:
Oftmals verbergen sich dann im Code weitere BASIC-Zeilen. Durch Drücken von I kann das standardmäßige BASIC-Ende ignoriert werden: Im Beispiel kommen nach einem Maschinencode-Teil wieder BASIC-Zeilen:
Ein anderes unterstütztes Format ist das der Textverarbeitung SCRIPT:
Die speziellen Formatierungszeichen u.a. werden umgesetzt und so der Text in eine lesbare Form gebracht.
Generell kann der angezeigte Text mit CTRL-A markiert und in die Zwischenablage kopiert werden (also auch bei BASIC oder im HEX-Modus!)
Es ist auch jederzeit eine Darstellung im Hex-Modus möglich. Das erfolgt mit der Taste H.
Die Anzeige funktioniert auch im Quickviewmodus des Total Commanders (CTRL-Q):
Als letzte Funktion gibt es F8: Hiermit können KCC und SSS-Dateien als TAP gespeichert werden, und umgekehrt TAP-Dateien zu KCC bzw. SSS konvertiert werden. Die neuen Dateien sind aber erst nach einem Refresh des Total-Commander-Fensters sichtbar.
Geplante Erweiterungen:
- Unterstützung vom Multitape-AF-Dateien
- Ausgabe als Sound über die Soundkarte, damit die Programme am Kleincomputer eingelesen werden können
Volker Pohlers
14.06.07