Da die virtuelle Tastatur auf sich warten lässt habe ich die Texteingabe zu einem kleinen Texteditor erweitert um kleine Änderungen an Skripten ohne PC durchführen zu können.
Die Darstellungsmöglichkeiten auf der Konsole sind leider sehr beschränkt.
So gliedert sich die Anzeige in
eine Statuszeile
eine Menüzeile
und drei Textzeilen
Als Makierung werden Keile verwendet.
Zum Einen für das Menü zum Andern für den Text.
Der Textcursor kann vollständig über Menübefehle gesteuert werden um eine
Grundfunktionalität auf möglichst vielen Modellen zu gewährleisten.
Er ist immer in der gleichen Zeile, die durch den Parameter #editline eingestellt werden kann.
Da man eigentlich 16 Tasten braucht um sich in Menu und Text in Einzelschritten und in Sprüngen zu bewegen
sind 2 Umschalttasten definiert.
1. [DISP] schaltet zwischen Menü und Text um.
ist Text aktiv wird in der Menüzeile eine zusätzliche Textzeile angezeigt.
2. [MENU] schaltet zwischen Einzelschritt und Sprung.
Sobald eine ZOOM-Taste benutzt wurde erfolgen die
Horizontalen Sprünge über ZOOM die die
Vertikalen im Textbereich über [SET] und [MENU]
Bei Modellen mit einer [FLASH] Taste kann durch halten der FLASH-Taste in den
Textbereich umgeschaltet werden. Dabei wird keine zusätzliche Textzeile angezeigt.
Ist eine Taste [ERASE] vorhanden kann damit das aktuelle Zeichen gelöscht werden.
Im Menü kann über auf ab zwischen verschieden Auswahlzeilen umgeschaltet werden.
Befehle
Großbuchstaben
Kleinbuchstaben
Zahlen und Sonderzeichen.
Das Menü kann weitgehend frei definiert werden um Anpassungen an andere Zeichensätze zu ermöglichen.
Ich habe Win1252 eingestellt und die Umlaute stammen aus dieser Seite.
Als Beispiel sind im 3. über Parameter einstellbaren Menü 2 Zeilen mit einem Kyrillischen-Alphabet das
nur mit Codepage Win1251 als solches angezeigt wird. Dort kann man auch sehen wie man häufig verwendete Worte in das Menü integrieren kann.
Welche Zeichen dargestellt werden können kann mit show chars bzw. Zeichentabelle unter Datei nachgeschaut werden.
Die Kommandos sind möglichst kurz gehalten.
Nur Großbuchstaben sind allgemein
Cursorbewegung im Text
U up
D down
L left
R right
für Sprünge Verdoppelt zu UU DD LL RR
hier sind aber Pfeile und > für diese Kommandos eingesetzt
TM (T)oggle (M)ode schaltet zwischen Einfüge- und Überschreibmodus
TA schreibt einen Tabulator (Tabulatoren werden nicht expandiert sondern als Tab-Zeichen angezeigt)
BS (B)ack(S)pace löscht das Zeichen vor dem Cursor
LF (L)ine(F)eed macht an der aktuellen Schreibposition einen Zeilenumbruch
Src Suche: ein einmal eingstelltes Suchwort bleibt für Wiederhohlungen erhalten.
das Wort unter der Schreibmake wird aber im Ziffernmenü angeboten.
Ln entspricht einem LF an Position 1, ist also entbehrlich.
Die übrigen Kommandos beziehen sich auf Zeichen(gruppen) und sind aus einem Großbuchstaben
(C)haracter (W)ord (L)ine
(B)uchstabe (W)ort (Z)eile
und einem Kleinbuchstaben für die Aktion zusammengesetzt
(d)elete (c)ut (i)nsert (p)aste (n)ew
(l)öschen (a)usschneiden (e)einfügen (h)inzufügen (n)eu
d und c löschen das Objekt bei c wird es aber in einen Speicher übernommen aus dem es mit
i und p wieder entnommen werden kann bei i wird es aus dem Speicher gelöscht bei p nicht.
Die Speicher funktionieren nach den Last in First out Prinzip und werden beim Laden eines
anderen Textes nicht gelöscht.
Statusanzeigen:
- Code: Alles auswählen
Textlänge in Zeilen
| aktuelle Zeile
| | aktuelle Spalte (kann bei kürzeren Zeilen
| | | beim scrollen abweichen)
| | | aktive Menüzeile
| | | | aktuelle Position in der Menüzeile
| | | | | (O)verwrite oder (I)nsert Modus
| | | | | |Sprünge (Z)oom (J)ump (S)ingle
| | | | | || Dateiname mit * wenn Text geändert
| | | | | || | aktuelle Menüauswahl
| | | | | || | |
+--------------------------------+
|tt:zz:xx ml-mp OZ (*)name Z|
| |
[ offtopic ] warum krieg ich kein html hin? Ein pre wäre hier sehr hilfreich [ /offtopic ]
Die Tastaturwiederholung kann über Param keydelay angepasst werden.
Beschränkungen:
Es können nur gängige Textformate mit den Dateiendungen
.TXT .BAS .LUA .LOG .GRD .LST
und einer Größe < 30KB
bearbeit werden.
Es können keine neuen Dateien angelegt werden.
Wird mit speichern unter ein neuer Dateiname vergeben erfolgt die
Speicherung im selben Verzeichniss wie die Ursprungsdatei.
Bei diesem Skript handelt es sich um eine höchstens beta Version.
!! Die Dateifunktionen sind leider nicht sehr sicher.
!! Vorsicht beim ausprobieren und keine Wichtigen Dateien dazu benutzen.
!! Die Benutzung erfolgt auf eigenes Risiko
Bei Fehlern und Vorschlägen bitte Rückmeldung
Bei der DE-Version ab Changeset 175 kann die Konsolengröße über die Parameter
conheight und conwidth eingestellt werden. Hier kommen die neunen Konsolenbefehle von
CHDKLover zum Einsatz und können getestet werden. Danke! Ältere Versionen ergeben Fehler.
Wenn man die Parameter bei der Normalversion verwenden will muß zuvor mit entsprechenden Anpassungen in script.c kompiliert werden.
Gruß naddel