Jeden Tag ein gutes Wort: Der Screenbrowser

Aktuell entstehen die ersten nützlichen kleinen Tools direkt in m, also direkt autark auf dem Hive programmiert. Wenn ich in m teste und experimentiere, finden sich schnell Ecken und Kanten, welche umständlich und unpraktisch sind. So die Navigation in den vielen Screens auf dem Massenspeicher. Im Prinzip habe ich ja den gesamten Massenspeicher schon aus dem Bauch heraus in Bereiche geteilt:

  • BOOT – Dieser Bereich beginnt ab Block 0 und ist für die Startprozedur reserviert. Ganz praktisch wird Block 0 beim Systemstart mit 0 load gestartet, was man dann in dem Bereich macht ist Sache des Benutzers.  Man kann diesen Bereich von Screens ganz einfach als Startskript verwenden, was ich auch genau so mache.
  • WORK – Dieser Bereich wird als Arbeitsbereich automatisch compiliert. So kann man dort einfach seine Testworte schreiben, welche dann nach einem reboot im System zur Verfügungstehen.
  • LIB/MODULES – Hier sollen dann später Systemtools hin, aber da fehlt mir noch ein sinnvolles Handling.

Wie arbeitet man aber mit diesen Screenbereichen. Mit der Sequenz boot index kann man sich zum Beispiel eine Übersicht über die Indexzeilen der nächsten 16 Screens im Workbereich verschaffen.

m8

Es erscheint eine Liste der Indexzeilen inklusive der Screennummern. Nun kann zum Beispiel mit 0 edrd Screen 0 in den Editor geladen und bearbeitet werden. Nach der Änderung sollte man nicht vergessen, diese Änderung mit edwr zu schreiben! Das funktioniert, aber schnell hat man bei öfterem Gebrauch das Gefühl, dass dort noch ein Baustein fehlt: ein Screenbrowser, um in einem Bereich in den Quelltextscreens zu navigieren. Da das Wort wahrscheinlich sehr oft gebraucht wird, habe ich mich für die Abkürzung br entschieden. Und so funktioniert der Screenbrowser in Aktion:

m10

Wie man sieht,h abe ich hier einfach das Wort br aufgerufen, um den Browser zu starten. Woher weiß der Browser aber nun, in welchem Bereich ich browsen möchte? Diese Information wird in der Variable use gespeichert und von br und index automatisch verwendet. Worte wie boot, work und lib setzen diese Variable auf den entsprechenden Startscreen des entsprechenden Bereiches.  In diesem Beispiel arbeite ich gerade im Work-Bereich. Mit der Sequenz boot br könnte ich aber den Bereich einfach umschalten. Auf dem Screenshot sind nun einige Indexzeilen angezeigt. Im Gebrauch kann man nun mit den Bild-hoch/Bild-runter-Tasten in den Indexzeilen navigieren und mit anderen Tasten schnell Funktionen aufrufen. Hier nun die Liste der Verfügbaren Tastenfunktionen im Browser:

  • [PAGE-UP] – Screennummer erhöhen, Indexzeile wird angezeigt
  • [PAGE-DOWN] – Screennummer verringern, Indexzeile wird angezeigt
  • [L] – Ausgabe des Screens auf dem Bildschirm
  • [E] – Screen editieren
  • [W] – Screen speichern
  • [H] – Screennummer wieder auf Anfang setzen
  • [ESC] – Browser beenden

Im Prinzip handelt es sich um einen winzigen Baustein, welcher aber im täglichen Gebrauch viel Zeit spart. Wenn etwas fehlt, wird es einfach schnell dazugeschrieben und steht nach einem reboot nach einer Sekunde zur Verfügung im Sytem. So erst gestern mit der List-Funktion geschehen: es ist halt praktisch mal ebend in den aktuellen Screen zu schauen. Und so ist auch der Quelltext des Browsers sehr übersichtlich:

m9