1800 6bb2 0000 I ... MicroWORD 1.518U
===============================
=                             =
= Beschreibung zum Texteditor =
=                             =
=    M i c r o W O R D  1.5   =
=                             =
===============================

    (c) by R. Brosig  13.09.88

           IG-HC Dresden


"MicroWORD 1.5" ist ein gegenue-
ber V.1.3 stark erweitertes Text-
system, welches sich durch Ein-
fachheit, Kompaktheit und hohe
Arbeitsgeschwindigkeit auszeich-
net. Mit 22 Kommandos sowie 21
Editierfunktionen werden alle
fuer ein Textsystem wichtigen
Funktionen ermoeglicht. Durch 
die automatische Steuerzeichen-
konvertierung koennen Texte ver-
schiedener Herkunft bearbeitet
werden.


1. Speicheraufteilung: 
----------------------

    100H-13ADH  Programm
   13AEH-13F8H  Arbeitszellen
   13F9H-1418H  Stringpuffer
   1419H-1455H  Phys. V.24
		Druckertreiber
   1456H-17FEH	SAVE-Bereich
      ab 17FFH  Textpuffer


2. Der Textspeicher:
--------------------

Als Textspeicher dient der
Speicherbereich ab 17FFH. Bei
64K-RAM stehen somit max. 54220
Textzeichen zur Verfuegung.
Wird der SAVE-Bereich (Merkzet-
tel zur Textmischung) mit als
Textpuffer genutzt (Text ab
1456H), sind sogar 55116 Zeichen
nutzbar.
Die genaue Lage des Textpuffers
kann durch das A-Kommando bei
Bedarf entsprechend einge-
schraenkt werden. Dabei kann
die Definition nur im Bereich
von 1456H bis Speicherobergrenze
erfolgen (max. EBFFH). Wird die
Obergrenze des Textspeicherbe-
reiches ueberschritten, wird
durch eine Einfuegung eines Zei-
chens 03H der ueberstehende Text
abgeschnitten.
Waehrend der Bearbeitung wird
der Text an Cursorposition in
zwei Teile geteilt, wobei der
hintere Teil an die Textpuffer-
obergrenze geschoben wird.
Ein Austritt aus dem Editor mit
Reset oder dgl. bewirkt, dass
der Text nicht wieder zusammen-
gefuegt wird. Durch einen sofor-
tigen Neustart wird der Text 
automatisch wieder reorganisiert.

Achtung: 

Der Editor benoetigt den gesam-
ten definierten Textpufferbe-
reich, auch wenn der zu bearbei-
tende Text kleiner ist.


3. Allgemeine Funktionen:
-------------------------

Nach Start des Texteditors wird
ein Speichertest durchgefuehrt,
der einen evtl. groesser def.
Textpuffer auf das Speicher-
ende begrenzt (Anzeige 'M').
Danach wird das Ende eines evtl.
im Textpuffer liegenden Textes
gesucht (Anzeige 'I'). Befinden
sich darin CRLF-Steuerzeichen,
so werden diese in NL gewandelt.
CR-Steuerzeichen allein werden
nur dann in NL gewandelt, wenn
sich keine NL's im Text befin-
den. Nach dem Ende der Initiali-
sierungsphase wird ein Kommando-
modus erreicht. Dieser zeigt

- das Menue der moeglichen
  Kommandos,
- die Zeile, in der sich der 
  Cursor befindet (nach Start
  immer in der letzten)<LINE>,
- die Cursorposition innerhalb
  der aktuellen Zeile <POS>,
- den freien Platz im Textpuffer
  dezimal <FREE>,
- die aktuelle Cursor-Textposi-
  tion in hex <TXP>,
- das Textpufferende in hex <ETB>
- das definierte Zeilenende
  (max. 255) dezimal <LE> ,
- den eingeschalteten Editiermo-
  de (Insert'I'/Overwrite'O')<M>
- sowie den Hexcode des durch
  den Cursor im Bildmode vedeck-
  ten Zeichens <CD> an.


Fuer den Fall, dass noch kein
Text im Textpuffer liegt, emp-
fiehlt es sich, den Textpuffer
als erstes komplett zu loeschen
<&>>. Der SAVE (Merkzettel) wird
beim Start automatisch geloescht.


4. Der Kommandomodus
--------------------

Der Kommandomodus ist durch
das Kommandomenue gekennzeich-
net. Durch Eingabe des entspr.
grossen oder kleinen Buchstabens
wird das Kommando ausgefuehrt.
nach Ausfuehrung des Kommandos
wird immer der Bildschirmmodus
erreicht. Alle Zeicheneingaben, 
die kein Kommando aufrufen, 
fuehren zum Abschluss des Kom-
mandomodus und damit in den
Bildschirmmodus.
Folgende Kommandos koennen ver-
wendet werden:


<A> - assign

Damit kann der Textpufferbereich
neu definiert werden. Dadurch
ist es auch moeglich, mehrere
Texte im Speicher zu halten.
Es ist zu beachten, dass der 
Text auf der Adresse Textpuffer-
anfang+1 beginnt, da auf der
1. Pufferzelle das STX-Zeichen
(02) eingetragen wird. 
Die Eingabe der Adressen kann
dezimal oder hexadez. (nachstel-
len eines H, ohne fuehrende 0)
erfolgen.


<B> - bye

Rueckkehr zum Monitor und Reor-
ganisation des Textes.


<S> - start

Cursor wird auf Textanfang ge-
setzt.


<E> - end

Cursor wird auf Textende gesetzt.


<N> - number

Cursor wird nach Eingabe der
Zeilennummer mit maximal fuenf
Ziffern auf die entsprechende
Zeile gesetzt.


<M> - set mark

Der Cursor wird im Bildschirm-
modus vor Anwendung des Komman-
dos auf eine bestimmte Textstel-
le positioniert, anschliessend
wird mit diesem Kommando diese
Stelle markiert und wieder in
den Bildschirmmodus zurueckge-
schaltet. Die Markierung wird
durch andere Kommandos ausgewer-
tet. Diese Funktion kann alter-
nativ auch durch eine entspre-
chende Steuertaste (^V) im Bild-
schirmmode ausgefuehrt werden.


<%> - delete part

Mit diesem Kommando kann ein 
Textteil, dessen Anfang mit dem
<M>-Komm. gekennzeichnet wurde,
bis zur aktuellen Cursorposi-
tion geloescht werden.
Moegliche Fehler sind das Feh-
len der ersten Markierung bzw.
die Markierung liegt hinter
der Cursorposition.


<&>> - all clear

Loeschen des gesamten Textpuf-
fers.


<F> - find/change (ab Cursorp.)

Soll eine Textfolge im Textpuf-
fer gesucht werden und ggf.
durch eine andere Textfolge er-
setzt werden, so muss nach
Aufruf dieses Kommandos der 
Text, der gesucht werden soll,
eingegeben werden, durch '/'
getrennt kann anschliessend der
einzusetzende Text angegeben 
werden. Die gesamte Textfolge
ist auf 32 Zeichen begrenzt. 
Dabei kann das Verhaeltnis der
beiden Textteile beliebig sein.
Die Suche erfolgt dabei grund-
saetzlich ab aktueller Cursorpos.
Bei der ersten Uebereinstim-
mung wird der Curuor auf das
erste Zeichen dieser Zeichen-
kette gesetzt und in den Bild-
schirmmodus umgeschaltet.
Im Bildschirmmodus existiert 
eine Funktionstaste, die diesen
Kommandokomplex ohne erneute
Eingabe der Zeichenkette wie-
derholt startet (CTRL-Q / S4-A
=Ersetzen/Wiederholen).
Die Find-Routine startet immer
auf der aktuellen Zeilenposition
(ggf. vorher Kommando S ausfueh-
ren. 
Ist die gefundene Zeichenfolge
nicht die gewuenschte, so kann
mit Hilfe der Cursorfunktionen
die Zeichenkette uebergangen
werden.


<H> - print part

Ueber die Druckerschnittstelle
kann mit diesem Kommando der
Text zwischen einer im <M>-
Kommando markierten Stelle
und der aktuellen Cursorposi-
tion formatiert ausgedruckt
werden.
Es besteht die Moeglichkeit der
Einstellung des Seitenformates
und der Auswahl der zu drucken-
den Seiten. Eine Arbeit mit
Seitenstop kann eingestellt
werden. Nach Aufruf des Komman-
dos erfolgt die Aufforderung
zur Eingabe der Zeilenzahl/Sei-
te (lines/page),die man mit
einer Dezimalzahl (>9) beant-
wortet. Dabei ist die Laenge der
Seite in Zeilen gemeint und
nicht die Anzahl der Textzeilen
auf der Seite (normale Seite=72). 
Bei Zeilenzahl=0 bzw. keine Ein-
gabe erfolgt keine Seitenforma-
tierung.
Bei geforderter Seitenforma-
tierung wird abgefragt, mit 
welcher Numerierung die ge-
druckten Seiten beginnen sollen.
Bei leerer Eingabe wird ohne
Fusszeile, in der die Seitennum-
mer untergebracht ist, gedruckt.
Anschliessend wird abgefragt, 
ob ein Druckstop nach jeder
Seite erfolgen soll. Wird diese
Frage bejaht, stoppt der Druck
definiert nach jeder Seite. Im
anderen Fall wird der Text bis
zum Ende ohne Pause gedruckt.


<P> - print file

wie <I>, nur dass der komplette
Text gedruckt wird.


<L> - line-end

Mit diesem Kommando wird die
rechte Zeilenbegrenzung einge-
stellt (10-255). 6 Pos. vor
dieser Begr. erfolgt eine Rand-
warnung, bei Ueberschr. der
Pos. erfolgt ein Wortumbruch bis
zum vorhergehenden Leerzeichen
oder TAB. 
Wird innerhalb der letzten 6 Zei-
chen ein '-' eingegeben, so er-
folgt automatisch ein Zeilen-
abschluss. Die Eingabe einer 0
als max. Zeilenlaenge schaltet
die Funktion aus.


<R> - read file

Es wird ein Text ueber die Hea-
dersaveschnittstelle in den 
Textpuffer geladen. Ein evtl.
vorhandener Text wird ueber-
schrieben.


<W> - write file

Der gesamte Text, der sich im
Textpuffer befindet, wird ueber
die Headersaveschnittstelle aus-
gegeben.


<V> - write part

Ein vorher im <M>-Kommando mar-
kierter Textteil wird bis zur
aktuellen Cursorposition ueber 
die Headersaveschnittstelle 
ausgegeben.
 
 
<D> - read part

Der ueber die Headersaveschnitt-
stelle eingelesene Text wird an
der Cursorposition eingefuegt.
Dabei ist darauf zu achten, dass
der eingefuegte Text kleiner als
der freie Textbereich ist.
Es ist wichtig, dass der Einle-
sevorgang nicht vorzeitig abge-
brochen wird, da es sonst zu
einem Textverlust kommen kann.



<X> - expand

Hiermit wird der zweizeilige
Bildmode eingeschaltet. Damit
koennen Texte, die fuer ein brei-
teres Format geschrieben sind,
ohne Bildrollen gelesen und be-
arbeitet werden.


<C> - compact

Der zweizeilige Bildmode wird
wieder ausgeschaltet.


<T> - write repeat

Die vorangegangene Write-Funktion
wird wiederholt (Sicherheitsko-
pie erzeugen). Zwischen der ers-
ten Schreiboperation und diesem
Kommando darf die aktuelle Cur-
sorposition nicht veraendert
werden.


<=> - NL->CRLF

Wandelt ueber den gesamten Text 
das Zeilenendezeichen NL (1EH)
in die Steuerzeichenfolge CRLF
(0DH,0AH). Anschliessend wird
das Kommando <W> aufgerufen,
sodass der gewandelte Text auf
Kassette ausgelagert werden 
kann. Nach Beendigung oder Ab-
bruch der Save-Funktion wird der
Text wieder zurueckgewandelt.
Es ist zu beachten, dass der
Text durch die Wandlung in CRLF
um die Zeilenzahl laenger wird
und deshalb der freie Speicher-
platz diesem Fakt entsprechen
muss. Andernfalls erfolgt eine
Fehlermeldung.


<I> - in save

Dieses sehr leistungsfaehige
Kommando dient im Zusammenhang
mit dem <O> Kommando dem Mischen
von Textteilen aus dem gleichen
Textpuffer, oder aus einem an-
deren. Ein Textbereich von einer
definierten Marke bis zur Cur-
sorposition wird in den SAVE
geladen. Der SAVE stellt einen
Sondertextpuffer von 1K Laenge
dar, der direkt hinter dem Edi-
tor plaziert ist. Ist der mar-
kierte Bereich groesser als der
SAVE, erfolgt eine Fehlermeldung,
der Text wird nicht in den SAVE
uebernommen. Sollte der SAVE-
Puffer vom normalen Textpuffer
mitbenutzt werden muessen, so
erfolgt eine entsprechende Feh-
lermeldung, wenn trotzdem eine
SAVE-Funktion ausgefuehrt werden
soll.
 

<O> - out save

Der Inhalt des im <I> Kommando
gefuellten SAVE's wird an der 
aktuellen Cursorposition einge-
fuegt. Dabei erfolgt eine Kon-
trolle ueber den noch verfueg-
baren Speicherplatz.



5. Der Bildschirmmodus
----------------------

Im Bildschirmmodus wird der 
Bildschirm entsprechend des
eingegebenen Textes aktualisiert.
Das Textfenster wird dabei
so dargestellt, dass der Cursor
im Bildfenster erscheint. Dabei
kann an den Raendern Text abge-
schnitten sein, der nicht mehr 
auf den Bildschirm passt.
Alle Editierfunktionen werden
durch entsprechende Tastatur-
eingaben ausgeloest.
Das Programmsystem enthaelt dazu
eine Tastaturkonvertierungsrou-
tine, die es ermoeglicht, jeden
beliebigen Tastaturcode als
Funktionscode festzulegen.
Im Folgenden werden die ent-
sprechenden Speicherzellen, in
denen der gewuenschte Tastatur-
code eingetragen werden kann,
aufgelistet:

Adr|Code|S4|^|   Bedeutung 
HEX|(z.B)  
______________________________
129H 09H Q  I  Cursor rechts
12AH 08H P  H  Cursor links
12BH 0AH R  J  Cursor runter
12CH 0BH S  K  Cursor hoch
12DH 01H I  A  Cursor eine Seite vor
12EH 05H M  E  Cursor Seite zurueck
12FH 10H @  P  Zeichen links loeschen
130H 7FHS2GDEL Zeichen loeschen
131H 03H K  C  Bild-/Komm.-Mode
132H 1BH   ESC Ank. Steuerzeichen
133H 12H B  R  Wandlung Buchstabe
134H 15H E  U  CAPS (Tausch gr/kl))           
135H 0FH W  O  Loeschen einer Zeile
136H 11H A  Q  Ersetze/Wiederhole
137H 0CH T  L  FORM FEED
138H 0DH U  M  ENTER
139H 14H D  T  Tabulator
13AH 06H N  F  Tabulator
13BH 0EH V  N  NUL
13CH 13H C  S  Einfuegen/Ueberschreiben
13DH 16H F  V  Marke setzen
13EH 18H    X  Cursor Wort rechts
13FH 19H    Y  Cursor Wort links
140H 1CH    <  Reclaim,Zeichen zurueckholen
141H 0         Reserve


Neben den von der Version 1.3 
her bekannten Funktionen wurden
5 neue Funktionen eingefuert:

1. Marke setzen, damit kann im 
Bildmode eine Marke gesetzt
werden ohne diesen zu verlassen.

2./3. Cursor Wort links/rechts,
dadurch kann man schnell Posi-
tionen in einer Zeile anfahren.
Weiterhin hilft diese Funktion,
wenn z.B. das letzte Wort ge-
loescht werden soll, um den Cur-
sor ein Wort zurueckzusetzen.

4. Reclaim, diese Sonderfunktion
haengt eng mit der gesamten Ar-
beitsweise des Editors zusam-
men. Mit dieser Taste ist es 
moeglich, ein versehentlich 
ueberschriebenes oder geloesch-
tes Zeichen/Wort zurueckzuholen,
wenn dazwischen keine Cursor-
funktionen oder andere Manipula-
tionen des Textes erfolgten. 

5. Insert/Overwrite, in Abhaen-
gigkeit dieser Einstellung, die
in der Statuszeile auch ange-
zeigt wird, erfolgt die Eingabe
neuen Textes entweder indem der
alte Text ueberschrieben (O)
oder eingefuegt (I) wird.

Steuerzeichen, die von der Tast-
tatur ohne Ankuendigung angespro-
chen werden, aber durch das
Programmsystem nicht bearbeitet
werden, erzeugen eine Fehler-
ausschrift. Sollen Steuerzei-
chen in den Text eingefuegt 
werden, so sind diese jeweils
mit der Ankuendigungstaste
anzumelden (entspr. Kodierungs-
tabelle z.B. ESC). Will man z.B.
die Folge 1BH 2DH 01H (Unter-
streichung ein fuer einen EPSON-
kompatiblen Drucker) eingeben,
so ist folgende Tastenfolge
notwendig: 


ESC,ESC -> 1BH

-       -> 2DH

ESC,^A  -> 01H


(die Ausschaltung der Unterstrei-
chungsfunktion beim Drucker er-
folgt uebrigens durch die Folge
1BH 2DH 00H --> ESC,ESC,-,^N).
Man erkennt, dass vor j e d e m
Steuerzeichen die Ankuendigungs-
taste gedrueckt werden muss.
Vorsicht ist bei der Einfuegung
des ETX-Zeichens (03H) geboten.
Bei einem neuen Start des Edi-
tors wird dieses Zeichen als
Textende erkannt, und der da-
hinterliegende Text abgeschnit-
ten. Muss aus irgendwelchen
Gruenden mit der Kodierung 03H
im Text gearbeitet werden, so
empfiehlt es sich, das ETX-Zei-
chen umzudefinieren (Zelle 127H).
Folgende Steuerzeichen koennen 
bzw. muessen ohne Ankuendigungs
taste in den Text eingefuegt
werden:

TAB  Kodierung 09H; Tabulator-
     stop jede 8. Spalte
NL   Kodierung 1EH; Neue Zeile
     als Wagenruecklauf/Zeilen-
     schaltung
FF   Kodierung 0CH; Neue Seite
     (wird nur beim Druck aus-
     gefuehrt, Anz. im Text als
     Grafikzeichen)
NUL  Kodierung 0; schreibt ei-
     ne physische 0 in den Text,
     da 0 von Tastatur aus nicht
     erzeugbar ist, aber fuer
     bestimmte Effekte (Druk-
     ker-St.-Zeichen) benoetigt
     werden.
  
Die Steuerzeichen werden im Text
als Grafikzeichen mit einem in
Zelle 16BH zugeordneten Offset
dargestellt.
Sollen die Steuerzeichen dem
Zeichensatz entsprechend darge-
stellt werden, so ist der Off-
set auf 0 zu setzen: 16BH->0
Ist man sich nicht sicher, wel-
ches Steuerzeichen tatsaechlich
im Speicher steht, so kann der
Cursor auf die entsprechende
Stelle gefahren werden. In der
Statuszeile erscheint dann der
entsprechende Hexcode.

Weiterhin sind im Text Grafik-
zeichen zugelassen und eingeb-
bar (ausser FFH). Es ist aber
zu bedenken, dass der Text da-
durch nicht mehr dem ASCII-For-
mat entspricht, und meist seine
Druckfaehigkeit verliert. Man 
sollte auch immer daran denken,
dass zum Editieren die Grafik-
funktion der Tastatur wieder
ausgeschaltet werden muss.
 
Fuer die Cursordarstellung sind
zwei Codes (je nach dem, ob sich
unter dem Cursor ein Zeichen
befindet) vorgesehen, die in Zel-
le 124H bzw 125H eingetragen
werden koennen. Wird in Zelle
126H eine 80H eingetragen, so
erfolgt die Cursordarstellung
mit gesetztem 7.Bit (z.B. wenn
im Zeichensatz statt den Gra-
fikzeichen der inverse ASCII-
Zeichensatz abgelegt ist->
Cursordarstellung als inverses
Zeichen).


6. Die Druckerschnittstelle
---------------------------

Der Anschluss eines Druckers
mit V.24-Schnittstelle ist re-
alisiert. Der Anschluss des 
Druckers erfolgt ueber das 
Z1013 E/A-Modul von Robotron-
Riesa.
Um andere phys. Druckertreiber
nutzen zu koennen, kann auf der
Adresse 112H der entsprechende
Sprung eingetragen werden. Dort
kann z.B. ein Sprung auf DRAKK
des Sprungverteilers gelegt wer-
den (falls kein externer log.
Druckertreiber verwendet werden
soll, kann auch ein Sprung auf
ZEIDR erfolgen).
Der angehaengte phys. V.24-Trei-
ber kann dann natuerlich ge-
loescht bzw. anderweitig genutzt
werden.
Sollte der verwendete Drucker
kein NL (1EH) als Steuerzeichen
verstehen, so ist dieses im phys.
Treiber in CR-LF (0DH-0AH)
aufzuloesen (im angehaengten
V.24-Treiber realisiert). 
Durch Aenderung folgender Zellen
ist es moeglich, auch den USER-
Port der Grundplatine als Druk-
kerschnittstelle zu nutzen:

Datenausgang: bit 0
DTR-Signal:   bit 7

1428H 35H->01H
142CH 35H->01H
1437H 34H->0
1439H 08H->80H
1448H 34H->0

Zeitkonstanten fuer 9600 bit/s:

        | 2-MHz | 4-MHz
-----------------------
144EH ->|  0AH  |  17H

Hier noch einmal ein kleines
Beispielprogramm fuer die Ein-
bindung einer einfachen Centro-
nics-Schnittstelle ueber den
freien PIO-Port:

      ORG   1419H

ST:   PUSH  AF
      LD    A,I
      LD    (MINTR),A  ;retten I-Reg.
      LD    A,0FH      ;PIO Initialisierung
      OUT   1
      LD    A,L(INTAB) ;INT-VEKTOR
      OUT   1
      LD    A,87H
      OUT   1
      LD    A,H(INTAB) ;I-REGISTER
      LD    I,A
      POP   AF
      CALL  AUSG
RUECK:LD    A,(MINTR)
      LD    I,A        ;Rueckschreiben I-Reg.
      RET
;  
AUSG: CMP   1EH
      JRZ   KONV-#     ;Aufloesen
AUSG1:OUT   0
DYST: DI
      CALL  INKEY      ;BREAK?
      CMP   3
      SCF              ;Fehler
      RZ
      CCF              ;CY=0
      EI
      JRNC  DYST-#     ;Warten auf INT
      RET
;
;Konvertierung des Zeilenendezeichens
;"1EH" in die Folge "0DH,0AH"
;
KONV: LD    A,0DH
      CALL  AUSG1
      XOR   A            ;C-Flag ruecksetzn
      LD    A,0AH
      CALL  AUSG1
      JR    RUECK-#
;
;Interruptroutine
;
INTS: DI
      SCF
      RETI
;
MINTR:BER   2
;
      ORG #*0FFFEH+2      ;gerade Adresse
;
INTAB:DA    INTS
;
      ORG 112H
;
DRZEI:JMP   ST
;
      END 

Anmerkung:

Der erzeugte Quelltext ist kompa-
tibel zu den meisten anderen
Textsystemen und Assemblern wie
z.B. Texteditor Scf, MTX oder
Assembler Scf und ist rein ASCII-
codiert. Durch die Steuerzei-
chenwandelmoeglichkeit NL->CRLF
ist der Text auch fuer CPM-Sys-
teme verwendbar, bzw. es lassen
sich auch CPM-kompatible Texte
bearbeiten (Es muss beachtet 
werden, dass das ETX-Zeichen im
CPM nicht 03, sondern 1AH ist->
umdefinieren oder als Steuerzei-
chen in den Text schreiben).
 
 

7.Implementierunsabhaengige
  Anpassungsarea:
---------------------------

100H   JMP ANF     ;PROGRAMMANF.
103H   JMP WSTRT   ;WARMSTART
106H   JMP OUTCH   ;AUSG ZEICHEN AKKU
109H   JMP INCHR   ;EING ZEICHEN AKKU
10CH   JMP INKEY   ;TASTATURABFRAGE
112H   JMP DRAKK   ;DRUCKEN EIN ZEICHEN
      (JMP ZEIDR)   IM AKKU, ZEILENDE=1EH
115H   JMP DRDEL   ;RUECKSETZEN DES
                   ;EXT.LOG.DR.TR.
118H   JMP SARUF   ;HEADERSAVE
11BH   JMP LORUF   ;  -"-
11EH   JMP BEEP    ;BEEPERZEUGUNG
121H   JMP SYS     ;SYSTEMRUECKKEHR 

Alle Spruenge ausser DRAKK
(ZEIDR) und DRDEL(kurzg.) zeigen
original auf den Sprungverteiler.
Bei Nichtimplementierung einzel-
ner Sprungverteilerroutinen sind
diese unbedingt mit RET (C9H)
kurzzuschliessen! Das gilt be-
sonders fuer die BEEP-Funktion.
Bei Verwendung des .A2-Monitors
von Riesa gibt es Schwierigkei-
ten mit der INKEY-Funktion, da
dieser Monitor auch ueber den
RST 20H, DB 4 nicht kompatibel
zur alten INKEY-Routine ist.
Mit einem kleinen Zusatzprogramm
kann die neue Routine zur alten
kompatibel gemacht und an Stelle
dieser eingebunden werden:

INKEY:	PUSH	IX	 ;ANDERE REG. IN ALTER R. AUCH N.
	LD	BC,1000H ;REPEAT-ANSPRECHZEIT
WIC:	PUSH	BC
	RST	20H
	DB	4	 ;INKEY AUS NEUEM MON.
	POP	BC	 ;HL=37H
	LD	IX,4
	CMP	(IX+0)
	JRNZ	USMLZ-#	 ;UNGLEICH ALTEM ZEICHEN
	OR	A
	JRZ	RSMB-#	 ;KEINE TASTE GEDR.
TIME:	DEC	C
	JRNZ	TIME1-#
	BIT	4,M	 ;MERKBIT ZELLE 37H
	JRNZ	KURZ-#
	LD	DE,800H	 ;REPETIERFREQU.
TIME2:	DEC	DE
	LD	A,E
	OR	D
	JRNZ	TIME2-#
KURZ:	DJNZ	WIC-#
	SET	4,M
	XOR	A
	JR	USMLZ-#
RSMB:	RES	4,M
USMLZ:	LD	(IX+0),A
	POP	IX
	RET

Wichtige Adressen und Zellen zur
Anpassung:

-Cursordarstellung: 

 Code1    :   124H  ->C7H
 Code2    :   125H  ->FFH
 mit 7.bit:   126H  ->0/80H

-Ende-/Anfangtextzeichen:

 ETX:  127H  ->03H
 STX:  128H  ->02H

-Textpuffer-Daten:

 TPANF: 15BH ->17FFH
 TPEND: 15DH ->DFFFH

-Bildschirm:

 BWS-Anfang : 15FH ->EC00H
 Spaltenzahl: 161H ->32
 Zeilenzahl : 163H ->32

-Tastatur:

 Adr. Tast.-puf.-zelle: 165H->04H
 (wird zur blinden Abfr.
  auf 0 gesetzt)

-absolute Textbereichsgrenzen:

 untere Grenze: 167H ->1456H
 obere  Grenze: 169H ->EBFFH

-Zeichenoffset bei Steuerzeichen:

 16BH -> 0A0H 


Diese Zellen sind im allg. kon-
stant, koennen aber bei Hardware-
aenderungen (z.B.groesserer Bild-
schirm) entspr. geaendert werden.



Viel Spass mit "MicroWORD 1.5"


                     R. Brosig
 
                       IG-HC
                      Dresden


PS: MicroWord 1.5 wird mit einem
Ladebild ausgeliefert, welches
nach dem Laden automatisch das
Laden des Editors einleitet, so-
fern das Headersave ueber den
Sprungverteiler erreichbar ist.
Dieses Ladebild nimmt keinerlei
Speicher in Anspruch, da dieses
durch den Editor ueberladen wird.
Fehlerhinweise oder Verbes-
serungsvorschlaege werden gern
entgegengenommen.