*DIE EDITIERKOMMANDOS UND IHRE WIRKUNGEN* -Eingabe in Gross- oder Kleinbuchstaben -Optionen,getrennt durch ein Komma,unmittelbar nach dem Editierkommando eingeben -Vor jedem Argument muss mindestens ein Leerzeichen bzw. ein -Syntaxzeichen (befehlsspezifisch) stehen -Eingabefehler werden erkannt und durch Fehlermeldungen angezeigt. Innerhalb der weiteren Beschreibung gelten folgende Verein- barungen: o=Option n1,n2=Zeilennummern(0-9999),fehlt n1,so gilt die aktuelle Zeilennummer.Ist diese=0 so wird n1=1.fehlt n2,so wird n2=n1. Ist n2<n1,so wird n2=n1.ist n2>als die hoechste Zeilennummer, so erhaelt n2 diesen Maximalwert. t=beliebiges ASCII-Trennzeichen s1,s2=beliebiger ASCII-String,Gesamtlaenge begrenzt p1,p2=Positionsnummern(0-99) zur Angabe von Zeichenpositionen innerhalb von Textzeilen. z=einzelnes ASCII-Zeichen hh=zweistellige Hexzahl(00-ff) d=maximal zweistellige Dezimalzahl(0-99) KOMMANDOS: __________ ENTRY -dient zur Ueberpruefung der Fileparameter.nach Aufruf meldet sich der Editor mit "Change Options(o) man kann nun folgende Option setzen: t-prueft ob zwischen sof und eof Adresse im Speicher ein Textfile liegt.Wenn ja wird im Controlmode mit C0..fortge- fahren,sonst wird eine neue Option verlangt. n-ab der sof-Adresse wird ein neuer (leerer) Textfile erzeugt. Tabulator ist":",Tab.stop ist Pos.6 f-liegt zwischen sof und eof kein File, wird ein neuer erzeugt. Sonst bleibt das alte File erhalten. x-Ruecksprung ins Betriebssystem EXIT -Rueckkehr ins Betriebssystem,optionen: x-einfacher Ruecksprung p-wie x,mit Ausdruck des File und der File-Informationen l-wie p,mit Zeilennummern HELP -Druckt Liste aller Editierkommandos. TAB z -Definiert z als Tabulatorzeichen. SET p1 p2 p3 p4...pn Definiert Tabulatorstops p1 bis pn.Wenn der Editor auf den Tabulator trifft rueckt er den Kursor durch Ausgabe von Leerzeichen(20hex)bis zur naechsten Tabulatorposition, die durch den SET-Befehl gesetzt wurde weiter.Beispiel: c256 TAB : c256 SET 10 20 30 c256 I257 eins:zwei:drei:vier I258 c257 PRT eins zwei drei vier c257 SET 10 20 25 c257 PRT eins zwei drei vier c257 TAB + c257 PRT eins:zwei:drei:vier c257 INFO -Druckt alle Informationen ueber den Textfile.Beispiel: c45 INFO sof:2300 (Anf.Adresse Textfile) eof:hhhh (Endadresse Textfile) eor:4000 (Ram Ende) soi:31f5 (Eingabeadresse) maxline:0026 (letzte Zeile) TAB * 6 17 44 77 n1 -Sprung zur Zeilennummer n1. Beisp.: c187 38 c38 TOP(KUERZEL:0) -Sprung zum c-Modus-Zeile 0 (Fileanfang-1). LAST(KUERZEL:A) -Sprung zur letzten c-Moduszeile HEAD(KUERZEL:H) -wie TOP, zur 1. i-Modus zeile BOTM(KUERZEL:B) -wie LAST, zur hoechsten i-Zeile (max.Zeilennr.+1) PRT n1 n2(KUERZEL:P) -Druckt Textzeilen n1-n2.Tab-Zeichen werden nicht mit ausgegeben, sondern enspr. SET-Befehl als Leerz.strings interpretiert. LNP n1 n2(KUERZEL:L) -Wie PRT, aber mit Zeilennummern. GO n1 n2 -Wie LNP, Zeiger auf c-Modus Zeile n1.Beisp.: c144 GO 257 257. eins zwei drei vier c257 COPY n1 n2 -Zeilenblock n1-n2 wird hinter aktuelle Zeilennummer eingefuegt, alle folgenden Nummern sind verschoben. DEL n1 n2(KUERZEL:D) -Loescht Zeilen n1-n2, nachfolgende Zeilen ruecken nach. MOVE n1 n2 -Wie COPY, Zeilen n1-n2 am alten Ort werden geloescht. FIND,o n1 n2 :ts1t (KUERZEL:F) -Sucht in den Zeilen n1-n2 nach dem String s1. Zeilen, in denen s1 vorkommt, werden mit Zeilennummer ausgedruckt.Ausserdem wird angegeben wie oft s1 enthalten ist. c130 FIND 10 20 :/ware/ 0016(01)microcomputer hard- und software 0018(03)hardware,software,firmware c130 CHANGE,o n1 n2 :ts1ts2t(z=hh)(KUERZEL:C) -Ersetzt innerhalb der Zeilen n1-n2 den String s1 durch s2. Es muss eine der folgenden Optionen o gesetzt werden: p-Erstelle eine Liste, in der veraenderte Zeilen sowie die Anzahl der Veraenderungen aufgefuert sind. n-Erstelle keine Liste. der Zusatz(z=hh) bewirkt, dass dort,wo in s1 und s2 das Zeichen z vorkommt, dieses durch das ASCII-Zeichen hh ersetzt wird. (Fuer Zeichen,die mit der Tastatur nicht ausgebbar sind z.B. Steuerzeichen.) Beispiele: c45 CHANGE,p 20 28 :/hard/soft/ Ersetzt in Zeilen 20-28 den String hard durch soft. c98 CHANGE,n :/ende/x/(x=0d) Ersetzt in der Z.98 das Wort "ende"durch ein CR-Zeichen. c15 c,n :/beispiel// Loescht in Zeile 15 das Wort "beispiel". ASC n1 n2 :h1th2 -Ersetzt in den Zeilen n1-n2 den ASCII-Code h1 durch den Code h2. (h1 und h2 hexidezimal),Beispiel: c100 ASC 32 33 :0d/20 (Fuegt die Zeilen 32,33 zu einer zusammen.) DFN n1 n2 :z1tz2 -Wie ASC, z1,z2 sind ASCII-Zeichen.Beispiel: c43 DFN 1 99 :+/&> Definiert Zeichen"&>" als das Zeichen fuer"+". CASE,o n1 n2 -Gross-/Kleinschreibung,Optionen: u-Inhalt von n1-n2 wird in Grossbuchstaben umgewandelt. l-Wie u,jedoch in Kleinschrift. EDIT,t n1(KUERZEL:E) -Dies ist ein ausserordentlich leistungsfaehiger Befehl zum Editieren des Inhaltes einer bestimmten Textzeile. Der Editor druckt die Zeile n1 ohne Beruecksichtigung der Tabulatoren auf dem Bildschirm aus.Unter der Zeile kann man einen Korrektursatz eingeben,der nach (Enter) mit derem Inhalt verrechnet wird. Beispiel: c67 EDIT 95 EDIT:in der text ist ein fehlerhaft. I0095 Iies* Izeile* D * c95 e EDIT:in dieser textzeile ist ein fehler. I0095 CIn! Ik! I mehr! c95 p In dieser zeile ist kein fehler mehr. c95 Fehlt die Option t, so wird als Trennzeichen "!" angenommen. Alle zwischen dem "I" und dem Trennzeichen t stehenden Zeichen werden an der Stelle in die Zeile eingefuegt, unter der das erste einzufuegende Zeichen steht. Zeichenpositionen zwischen "D" und t werden aus der Zeile entfernt. Ebenso werden alle Zeichen zwischen"C" und t ersetzt. Es koennen auch mehrere Korrekturen in einer Zeile sein. RTP n1(KUERZEL:R) -Dient zum Editieren mit dem Betriebssystem. dabei wird n1 auf dem Bildschirm ausgedruckt und im Speicher geloescht und an die Input Routine des Systems uebergeben. Beispiel: c12 R 53 I0053 diese zeile soll verbessert werden Der Cursor steht unterhalb der Textzeile, es wird Eingabe im I-Modus simuliert.Mit den Editiermoeglichkeiten des Betriebs- systems kann man die Zeile verbessern und mit Enter (Cursor am Zeilenende) in das File zurueckschreiben. NPR n1(KUERZEL:N) -Druckt Zeile n1 und darunter die Positionsnummern der Zeichen. Beispiel: c198 NPR 66 1000 rem basicprogramm 123...9 123456789 1234567 Die Punkte deuten an, dass an dieser Stelle keine Blanks im Speicher stehen, sondern die Leerzeichen mit dem Tabulator erzeugt wurden. I$ n1 n2 :ts1tp1t(z=hh) -Fuegt in n1-n2 den String s1 ab Pos.p1 ein.Zusatz (z=hh) wie bei CHANGE.Beispiel: c75 I$ 60 100:/ /15/ D$ n1 n2:tdtp1t -Loescht in n1-n2 jeweils d Zeichen ab Pos.p1.Beispiel: c44 d$/5/16/ FILL -Ersetzt die Tabulatoren im Text durch die Anzahl von Leerzeichen die sie jeweils repraesentieren.Die Form des Files bleibt erhalten, der Speicherbedarf waechst.Notwendig wenn das File z.B.von einem Assembler weiterverarbeitet werden soll. PACK -Umkehrung zu FILL.Leerzeichenstrings werden an den Stellen die durch den SET Befehl definiert wurden, durch ein Tabulator- zeichen ersetzt. USER hhhh -Maschinenprogrammaufruf hhhh=Startadresse,Programm muss mit RET Befehl enden. FORMAT n1 n2:tp1tp2t -Erzeugt Textzeilen mit linkem und rechtem Rand. Dazu wird ausgehend vom Inhalt der Zeilen n1-n2 ein neuer Zeilenblock beginnend mit nr.n1 erzeugt. Der Text beginnt ab Pos.p1 und endet mit Pos.p2 in jeder Zeile des Textblocks. Jeder Block kann beliebig oft mit beliebigen Zeilenraendern formatiert werden.Beispiel: c3 LNP 5 9 5.beim FORMAT-kommando 6.wird ein wort, 7.das nicht 8.mehr in eine zeile passt,in die naechste 9.geschrieben. c3 FORMAT 5 9:/10/39/ last line:0008 c3 LNP 5 8 5.beim FORMAT-kommando wird ein 6.wort, das nicht mehr in eine 7.zeile passt, in die naechste 8.geschrieben. c3 -Tabulatoren werden besonders behandelt. Wird beim Formatieren ein Tabulatorzeichen erkannt, so wird an dieser Stelle ein Absatz gelassen (cr-Zeichen eingefuegt). Tabulatoren sollten direkt nach dem letzten Wort des entsprechenden Absatzes stehen (Auf Tab.Zeichen sollte ein Leerzeichen oder Zeilenende (CR=0Dhex) folgen.). SPACE n1 n2:tp1tp2t -Randausgleich Dazu werden solange Leerzeichen ab Pos.p1 zwischen die Woerter eingefuegt, bis deren letztes Zeichen an Pos.p2 steht. beispiel: c3 SPACE 5 8:/10/38/ c3 LNP 5 8 5.beim FORMAT-kommando wird ein 6.wort, das nicht mehr in eine 7.zeile passt, in die naechste 8.geschrieben. c3 -Zuruekschreiben mit FORMAT Befehl C3 FORMAT 5 8:/0/0/ last line:0020 C3 FORMAT 5 20:/10/39/ last line:0008 C3 Beim 1. Formatieren wird fuer jedes Wort eine neue Zeile eroeffnet; Leerz. entfallen,da bei p1=0 der FORMAT-Befehl alle Leerzeichen am Zeilenende loescht. Beim 2.Formatieren wird ein neuer Textabschnitt gebildet. SAVE -Textfile wird auf Band abgespeichert. Zum Abspeichern ist der Typ des Files und der Filenamen anzu- geben.Es wird das Header Save Load Verfahren verwendet. LOAD -Lesen vom Band Es ist der Filetyp und der Filenamen anzugeben. Bedienung entsprechend des Header Save Load. Nach Enter wird gelesen. HINWEISE ZUM TEXTEDITOR: Workspace-Speicherbereich,zur Anpassung an den Rechner Beginn ab 300h bei vorliegender Version, einige Adressen: 300,1 :SOF(Start of File) 302,3 :EOF(End of File) 304,5 :EOR(End of RAM) 306,7 :SOI(Start of Input) 308,9 :LP(Linepointer) 30a,b,c :Sprung zur Input Routine C3 xx xx 30d,e,f :Sprung zur Output Routine C3 xx xx 310,1,2 Sprung ins System 313,4,5 Sprung-Headerroutine 316,7 Anf.Adresse 2. Kommandoblock ... ERWEITERUNGEN: Im Workspace(w+16,17=916,917) Anfangsadresse fuer 2.Kommando- block eintragen. 3E-Kommandowort-0D-Befehlsfolge...JP BACK(C3 D1 15) Beispiel DEL Befehl: 3E 44 45 4C 0D X1 X2....C3 D1 15 LITERATUR: -Z80-Texteditor mc Heft 2/1981,S25-34 -Nachtrag zum Z80-Texted. mc H.2/1982,S52 -Erweiterung des Texted.(Sort-Programm) mc H.6/1982 S57 Die vorliegende Version gestatett die Anpassung an verschiedene Druckerschnittstellen. Realisiert sind eine Druckerschnittstelle für S 6005 und S 3004 (V.24 1 Start- 8 Daten- 1 Stoppbit). Für die Anpassung an andere Druckerschnittstellen besteht die Möglichkeit folgende Routinen zu ändern: 0200 Init des PIO Ausgabekanals 0220 Ausgabe eines Bytes in A an den Drucker. Für Rückfragen und Fehlerhinweise bitte an A. Köhler Tiroler Str.9 Dessau 4500 wenden.