BLister
TSB-Format-Lister
TSB-Format-Lister

Hauptmenü
Bild 1: Hauptmenü
BLister dient dazu, Basic-V2-, Simons'-Basic- und vor allem TSB-Programme so auszugeben, dass die Struktur des Programms augenscheinlich wird, sowohl auf dem Bildschirm als auch auf Papier.

Dazu druckt es zunächst einmal jedes einzelne Basic-Statement des Programms auf eine eigene Ausgabezeile.

Dann: alle Programmabschnitte, die zusammengehören - also Schleifenkörper jeder Art und alle Prozedurkörper -, werden eingerückt dargestellt. Alle Befehle, die einen solchen Abschnitt beenden, werden von einer Leerzeile vom Rest abgetrennt (bei END PROC, RETURN, END, STOP, GOTO, CALL, ON ERROR, ON KEY, CGOTO, COLD und RESUME, sofern sie nicht zu einer Bedingungsklausel gehören). Schleifen werden definiert durch FOR..NEXT, LOOP..END LOOP und REPEAT..UNTIL. Bei Verschachtelungen erhöht sich jedes Mal die Einrücktiefe.

Einrückungen
Bild 2: Ausgabebeispiel mit Standard-Farbschema

Drittens werden auch alle Bedingungsklauseln eingerückt angezeigt, bestehend aus der eigentlichen Klauselzeile und dem immer vorhandenen Wahr- und dem optionalen Nichtwahr-Zweig. Die Einrückung erfolgt im Anschluss an die Klauselzeile (nach THEN) und wird so lange aufrecht erhalten, wie die Klausel zuständig ist (Bild 2). Die DO-ELSE-DONE-Einrückung reicht dabei üblicherweise über eine ganze Reihe von Programmzeilen hinweg.

Schließlich zieht BLister Statements wieder so auseinander, dass Schlüsselwort und Parameter klar erkennbar werden, wenn im Original keine Abstände zwischen Befehl und Parameter gelassen wurden.

Alle Schlüsselwörter erscheinen in Großbuchstaben, alles andere so, wie man es eingegeben hat (man kann dadurch Schlüsselwörter in Prozedurnamen sofort erkennen, s. Bild 2, erste Zeile). Neu in neoBLister ist die Vorgabe eines konfigurierbaren Farbschemas (Beispiel in Bild 2).

<nach oben>

Bedienung

Directory
Bild 3: Directory
Wenn man im Hauptmenü <a> drückt, öffnet sich ein Directory-Fenster, in dem der Anfang des Inhalts des ausgewählten Laufwerks ausgegeben wird (Bild 3). Innerhalb des Fensters bewegt man sich mit den Cursor-Richtungstasten (<> und <>). <Return> wählt eine Datei aus. Findet man nicht, was man gesucht hat, kann man mit "" das Fenster ohne Auswahl verlassen und ggf. mit <l> (für "Laufwerk") ein anderes Laufwerk anwählen. <q> (für "Quit") beendet BLister.

Hat man jedoch eine Wahl getroffen, erhält man ein zweites Menü (Bild 4), das Aktionsmenü. Es zeigt oben den Namen der zur Anzeige ausgewählten Datei und signalisiert durch eine hellere Färbung, was nun durch Drücken der <Return>-Taste damit geschehen würde, nämlich die Bildschirmausgabe (auch mit Taste <b>). Möchte man nur einen Teil des Programms angezeigt bekommen, drückt man <t> und kann weiter unten auf dem Bildschirm den Wert der gewünschten Anfangs- und Endzeile eintippen. Drückt man hier nur <Return>, ist der Wert für die jeweilige Zeile egal (entweder: "von Anfang an" beim ersten leeren <Return> oder "bis zum Programmende" beim zweiten).

Aktionsmenü
Bild 4: Das Aktionsmenü
Man kann sich auch noch einmal bei der Wahl der Datei umentscheiden (Taste <a>). Oder man hat keine Lust mehr und will BLister beenden: hier dann Taste <x>. Wichtig jedoch: Wenn man die Ausgabe auf Drucker (oder auf einem Emulator in eine Datei) umleiten will, muss man in diesem Menü vor dem Aufruf der Ausgabe (mit <b> oder <t>) die Taste <d> betätigen (die im Menü danach ebenfalls durch hellere Färbung ihre Aktivierung erkennen lässt).

Während der Ausgabe kann man den Vorgang jederzeit mit der Taste <Return> anhalten oder mit <x> ganz abbrechen. Der jeweilige Tastendruck tritt am Ende der gerade aktuellen Basic-Ausgabezeile in Kraft.

Um das Farbschema seinen Vorstellungen anzupassen, muss man einen Eingriff in das Programm vornehmen. In Programmzeile 5005 steht die aktuell gültige Einstellung (in Z. 5006 hinter REM eine Alternative dazu im TSB-Standardmodus, ohne Farben). Dabei gilt Folgendes:

Die Vorgabeeinstellung (s. Bild 2) sieht so aus:

5005 bg=0:ra=0:pe=12:ts=10:v2=8:tx=5:km=11:zn=4:mt=15:gr=11:gb=12:gp=0

Editor für Farben
Bild 5: Editor für Farben
Um auch andere Farb-Einstellungen ausprobieren zu können, gibt es zusätzlich das Programm "ed-nbl-cols.tsb" (s. Bild 5). Es ist bietet eine zweigeteilte Benutzeroberfläche: die linke Seite behandelt die Farben der Bedienung in neoBLister (erreichbar mit Taste "1"), auf der rechten Seite kann man die Farben der neoBLister-Bildschirmausgabe verändern (erreichbar mit Taste "2"). Die Werte für die Farben sind die üblichen C64-Farbwerte.

Beide Einstellungen kann man mit den Tasten 3 und 4 dann ausprobieren. Die Eingabe der Farbwerte kann man entweder mit "x" oder mit "t" beenden, wobei x alle Eingaben zurücksetzt (Exit), t jedoch nicht (Test). In der Probeanzeige werden die Werte der Variablen aus Basic-Zeile 5005 auf dem Bildschirm ausgewiesen und können von dort notiert werden. Abspeichern geht nicht.

Will man alles schnell auf die Vorgabewerte zurücksetzen, drückt man die Tasten "8" oder "9" (und bestätigt die Nachfrage). Man verlässt das Programm mit der Taste "x". Download siehe unten auf dieser Seite.

<nach oben>

Was man wissen sollte

Hinweise:
· In meinem VICE-System hängt sich BLister hin und wieder auf (Timing-Probleme?) Dann hilft ein Aufruf des Monitors mit folgenden Eingaben: dev 8: und g f969.
· Das Helper-Programm "ext.linput" (von Forum64-User goloMAK) verwendet als Puffer den Bereich zwischen $cb00 und $cb5f. Bitte bedenken, wenn man das PRG anderweitig einsetzen möchte.
· Sollte neoBLister beim Aufruf des Directorys einmal mit der Fehlermeldung "out of memory error" aussteigen, dann könnte helfen: in Zeile 5615: D!POKE 780, $8000.
· Die Anzeigegeschwindigkeit von neoBLister ist nicht besonders groß und lässt sich nur auf Emulatoren oder schneller Hardware, auf der TSB läuft (Ultimate64, Turbo Chameleon, SuperCPU, Mega65), zum Schnelleren hin beeinflussen. Anders als neoBListers Vorgänger (BLister) ist es ein reines TSB-Programm und daher nicht kompilierbar, um auf diesem Wege höhere Geschwindigkeiten zu erzielen.
· Das Trennen von Schlüsselwort und Parametern bei der Anzeige ist nicht algorithmisch gelöst (um Abarbeitungszeit zu sparen) und bringt deshalb nicht immer die gewünschten Ergebnisse. Vor allem Prozedurnamen können (wenn sie Schlüsselwörter enthalten) von Leerzeichen "verunstaltet" erscheinen.
· Es werden nur führende Leerzeichen entfernt, nicht jedoch Leerzeichen in der laufenden Basic-Zeile. Daher kann es hin und wieder zu doppelten Leerzeichen oder scheinbar falschen Einrückungen kommen.
· Bereits vorformatierte Basic-Listings (unter Verwendung von Doppelpunkten und Leerzeichen) bringen neoBListers Formatierungsbemühungen durcheinander. Vor allem Schleifenabschlussbefehle werden dabei falsch eingerückt (weiter rechts statt weiter links). Bitte Vorformatierungen vermeiden, sie kosten ohnehin nur Abarbeitungszeit beim Einsatz des jeweiligen Programms.
· Programme anderer Basic-Versionen können zu Fehlern führen ("Unbekanntes Token."). neoBLister bricht die Ausgabe dann ab.
· Ein Print-Ausdruck mit neoBLister ist für den Endlosdruck gedacht (MPS801-kompatibel).

Ein Ausdruck in eine Datei (per Emulator) eröffnet die Möglichkeit, mit einem Textverarbeitungsprogramm die oben genannten Einschränkungen ohne großen Aufwand abzumildern.

 

Download: neoBLister befindet sich auf der TSB-Diskette, das Editor-Programm lädt von hier: ed-nbl-cols.tsb.prg (PRG-Datei).

<nach oben>