diff options
Diffstat (limited to 'devel/debugger')
| -rw-r--r-- | devel/debugger/1.8.2/doc/DEBUGGER.PRT | 518 | ||||
| -rw-r--r-- | devel/debugger/1.8.2/src/DEBUGGER.ELA | 42 | 
2 files changed, 280 insertions, 280 deletions
diff --git a/devel/debugger/1.8.2/doc/DEBUGGER.PRT b/devel/debugger/1.8.2/doc/DEBUGGER.PRT index 4379f4a..f5ec838 100644 --- a/devel/debugger/1.8.2/doc/DEBUGGER.PRT +++ b/devel/debugger/1.8.2/doc/DEBUGGER.PRT @@ -11,14 +11,14 @@  1.     Anwendung des Debuggers 
  1.1    Code Disassembler (Decoder) 
 -1.1.1  Datenreprsentation 
 +1.1.1  DatenreprÀsentation 
  1.1.2  Datenadressen 
  1.1.3  Codeadressen 
  1.2    Ablaufverfolgung (Tracer) 
  2.     Die EUMEL0-Instruktionen 
 -2.1    Erluterung der Instruktionen (Thematisch sortiert) 
 +2.1    ErlÀuterung der Instruktionen (Thematisch sortiert) 
  2.2    Alphabetische Liste der Instruktionen 
  3.     Beschreibung der Pakete 
 @@ -30,18 +30,18 @@  #page# 
  #ub#1.  Anwendung des Debuggers#ue# 
 -Der EUMEL-Debugger ist fr die Software-Entwickler und nicht fr die
 +Der EUMEL-Debugger ist fĂŒr die Software-Entwickler und nicht fĂŒr die
  Anwender dieser Software gedacht. Insbesondere bei der Entwicklung
  systemnaher Software, wie z.B. Compiler, ist der Debugger hilfreich. 
 -(ELAN-)Programme werden wie bisher compiliert (z.B. insertiert), ohne daá
 -der Quelltext des Programmes vorher modifiziert werden máte. Um den
 -Sourcetext whrend der Ablaufverfolgung (Trace) beobachten zu knnen,
 -máen die Programme mit 'check on' bersetzt werden. 
 +(ELAN-)Programme werden wie bisher compiliert (z.B. insertiert), ohne daĂ
 +der Quelltext des Programmes vorher modifiziert werden mĂŒĂte. Um den
 +Sourcetext wÀhrend der Ablaufverfolgung (Trace) beobachten zu können,
 +mĂŒĂen die Programme mit 'check on' ĂŒbersetzt werden. 
  Die sinnvolle Anwendung des Debuggers setzt allerdings Kenntnis der
 -EUMEL0-Instruktionen voraus, die im Kapitel 2 erlutert werden (Der Debugger
 -setzt die Codierung BIT-A fr diese Instruktionen voraus, d.h. er luft
 +EUMEL0-Instruktionen voraus, die im Kapitel 2 erlÀutert werden (Der Debugger
 +setzt die Codierung BIT-A fĂŒr diese Instruktionen voraus, d.h. er lĂ€uft
  zumindest in der interpretativen EUMEL0-Version.).
 @@ -49,10 +49,10 @@ zumindest in der interpretativen EUMEL0-Version.).  Der Decoder konvertiert die vom Compiler erzeugte Bitcodierung (16 Bit) in
  Mnemonics (Textdarstellung der Instruktionen), die in eine FILE geschrieben,
 -bzw. optional auf dem Bildschirm ausgegeben werden knnen. Die Bitcodierung
 -kann zustzlich ausgegeben werden. 
 -Der Decoder wird mit 'decode' aufgerufen. Whrend der Dekodierung stehen
 -folgende Tastenfunktionen zur Verfgung: 
 +bzw. optional auf dem Bildschirm ausgegeben werden können. Die Bitcodierung
 +kann zusÀtzlich ausgegeben werden. 
 +Der Decoder wird mit 'decode' aufgerufen. WĂ€hrend der Dekodierung stehen
 +folgende Tastenfunktionen zur VerfĂŒgung: 
  Taste Funktion 
  ----------------------------------------------------------------------- 
 @@ -65,44 +65,44 @@ Taste Funktion    s   storage info 
    m   Zeigt die aktuelle Modulnummer an (sinnvoll falls kein Echo) 
    Q,W Zeilennummern/Hexadressen mitprotokollieren (falls kein Echo) 
 -  S   Keine Zeilennummern/Hexadressen ausgeben (luft auch im Hintergrund) 
 +  S   Keine Zeilennummern/Hexadressen ausgeben (lÀuft auch im Hintergrund) 
 -#ub#1.1.1  Datenreprsentation#ue# 
 +#ub#1.1.1  DatenreprÀsentation#ue# 
  INT-Zahlen werden hexadezimal (xxxxH, xxH) oder dezimal dargestellt, 
 -TEXTe in Anfhrungszeichen ("..."), 
 +TEXTe in AnfĂŒhrungszeichen ("..."), 
  REALs im 20-Stellen scientific-Format, 
  TASK-Objekte durch XX-YYYY/"name" mit XX als Taskindex und YYYY als Version,
     wenn die Stationsnummer nicht 0 ist, wird sie vor XX als SS- dargestellt. 
 -DATASPACE-Objekte werden durch XX-YY reprsentiert (XX ist der eigene
 +DATASPACE-Objekte werden durch XX-YY reprÀsentiert (XX ist der eigene
     Taskindex, YY ist die Datenraumnummer), 
  BOOL-Objekte durch TRUE oder FALSE. 
  Module werden durch ihre Modulnummer, optional auch durch ihre
 -   Startadresse, und falls mglich durch ihren Namen reprsentiert. Die
 -   Parameterliste wird in den Fllen, wo das Modul in der Permanenttabelle
 +   Startadresse, und falls möglich durch ihren Namen reprÀsentiert. Die
 +   Parameterliste wird in den FĂ€llen, wo das Modul in der Permanenttabelle
     vermerkt ist auch angegeben. 
  Nicht weiter dereferenzierbare Adressen werden durch ein vorgestelltes '@'
  gekennzeichnet (z.B. BOUND-Objekte). 
 -In den Fllen, wo es mehrere sinnvolle Darstellungen gibt, werden diese
 +In den FĂ€llen, wo es mehrere sinnvolle Darstellungen gibt, werden diese
  durch ein '|' getrennt. 
  #ub#1.1.2  Datenadressen#ue# 
 -Zustzlich zu den globalen Daten (statische Variablen und Denoter) kann auch
 +ZusÀtzlich zu den globalen Daten (statische Variablen und Denoter) kann auch
  deren Adresse ausgegeben werden. Die Daten werden in einer, ihrem Typ
  entsprechenden, Darstellung ausgegeben. Komplexe oder zusammengesetzte
 -Datentypen werden auf Reprsentationen elementarer Datentypen (INT, REAL,
 +Datentypen werden auf ReprÀsentationen elementarer Datentypen (INT, REAL,
  BOOL, TEXT, DATASPACE, TASK) abgebildet. 
  Prozeduren, Operatoren und Paketinitialisierungen von Main-Packets werden
 -zusammenfassend als Module bezeichnet. Einem Modul gehrt ein eigener
 -Stackbereich fr lokale Daten, Parameter und Rcksprungadresse etc. In
 +zusammenfassend als Module bezeichnet. Einem Modul gehört ein eigener
 +Stackbereich fĂŒr lokale Daten, Parameter und RĂŒcksprungadresse etc. In
  diesem Bereich stehen entweder die Datenobjekte selbst (z.B. lokale
  Variablen) oder lokale Referenzadressen auf beliebige Objekte (lokale,
 -globale Daten, Fremddatenrume und sogar Module). 
 -Da die effektiven lokalen Adressen erst whrend der Runtime bekannt sind,
 +globale Daten, FremddatenrÀume und sogar Module). 
 +Da die effektiven lokalen Adressen erst wÀhrend der Runtime bekannt sind,
  findet man im Decoder-Output nur die Adressoffsets relativ zum Stackanfang
  des Moduls. 
 @@ -112,20 +112,20 @@ Buchstaben nach '<' angezeigt:  'G' kennzeichnet eine globale Adresse (Denoter oder statische Variable). Die
  Representation der Daten kann immer angegeben werden (also nicht nur zur
  Runtime). 
 -'L' kennzeichnet einen Adressoffset fr ein lokales Datenobjekt auf dem
 +'L' kennzeichnet einen Adressoffset fĂŒr ein lokales Datenobjekt auf dem
  Stack. Da die lokale Basis, d.h. die Anfangsadresse der Daten des aktuellen
  Moduls, erst bei Runtime feststehen, kann hier weder die effektive
  Datenadresse, noch der Inhalt des Datenobjekts angegeben werden. 
  'LR' kennzeichnet eine lokale Referenzadresse, d.h. auf dem Stack steht
 -eine Adresse (32 Bit), die ein Datenobjekt adressiert. hnlich wie bei 'L'
 +eine Adresse (32 Bit), die ein Datenobjekt adressiert. Ăhnlich wie bei 'L'
  kann auch bei 'LR' erst zur Runtime eine Representation des adressierten
  Datenobjekts angegeben werden. Der Wert nach 'LR' bezeichnet den Offset, der
 -zur lokalen Basis addiert werden muá, um die Adresse der Referenzadresse zu
 -erhalten. Die niederwertigsten 16 Bit (das erste der beiden Wrter) knnen
 -128KB adressieren. Im hherwertigsten Byte des zweiten Wortes steht die
 +zur lokalen Basis addiert werden muĂ, um die Adresse der Referenzadresse zu
 +erhalten. Die niederwertigsten 16 Bit (das erste der beiden Wörter) können
 +128KB adressieren. Im höherwertigsten Byte des zweiten Wortes steht die
  Nummer des Datenraumes der eigenen Task, der das adressierte Datenobjekt
 -enthlt (0 entspricht dem Standarddatenraum). Das niederwertigste Byte des
 -zweiten Wortes enthlt die Segmentnummer (128KB-Segmente) mit dem
 +enthÀlt (0 entspricht dem Standarddatenraum). Das niederwertigste Byte des
 +zweiten Wortes enthÀlt die Segmentnummer (128KB-Segmente) mit dem
  Wertebereich 0 bis 7 (maximal also 1MB/Datenraum). Im Standarddatenraum
  (Datenraumnummer 4) enthalten die Segmente folgene Tabellen:
 @@ -134,90 +134,90 @@ Segment Tabelle     0    Paketdaten (high 120KB) und Moduladresstabelle
     1    Stack (low 64K), Heap (high 64K) 
     2    Codesegment
 -   3    Codesegment (120KB) u.a. fr eigene Module 
 -   4    Compilertabellen temporr 
 +   3    Codesegment (120KB) u.a. fĂŒr eigene Module 
 +   4    Compilertabellen temporÀr 
     5    Compilertabellen permanent 
 -   6    nilsegment fr Compiler (FF's) 
 +   6    nilsegment fĂŒr Compiler (FF's) 
     7    Compiler: Intermediate String 
 -Reprsentationen von Datenobjekten, die in Fremddatenrumen residieren
 -(BOUND-Objekte) knnen zur Zeit noch nicht ausgegeben werden, statt dessen
 +ReprÀsentationen von Datenobjekten, die in FremddatenrÀumen residieren
 +(BOUND-Objekte) können zur Zeit noch nicht ausgegeben werden, statt dessen
  wird die Datenraumnummer und die Wortadresse innerhalb dieses Datenraums
  ausgegeben. 
  #ub#1.1.3  Codeadressen#ue# 
 -Module werden in der Regel (Ausnahme: Parameterprozeduren) ber ihre
 +Module werden in der Regel (Ausnahme: Parameterprozeduren) ĂŒber ihre
  Modulnummer angesprochen, aus der dann die Adresse des Moduls berechnet
  werden kann (mithilfe der Moduladresstabelle). Die Adressen der
  Parameterprozeduren sind vom Typ 'LR' (Local-Reference), kommen nur als
  Parameter auf dem Stack vor und beeinhalten Codesegment und Codeadresse. 
  Sprungadressen (von Branch-Befehlen) adressieren immer nur das eigene
 -Segment und davon auch nur eine Adresse innerhalb eines 8 KB groáen
 +Segment und davon auch nur eine Adresse innerhalb eines 8 KB groĂen
  Bereichs. 
  #ub#1.2  Ablaufverfolgung (Tracer)#ue# 
  Um den eigenen (!) Code im Einzelschrittbetrieb abzuarbeiten, wird der
 -Tracer benutzt. Auáer den Inhalten der globalen Daten kann man sich die
 +Tracer benutzt. AuĂer den Inhalten der globalen Daten kann man sich die
  Inhalte der Stackobjekte (lokale Variablen) und der aktuellen Parameter
 -eines Prozeduraufrufs (auch von Parameterprozeduren) ansehen. Es knnen
 -keine Daten verndert werden! 
 -Man hat die Mglichkeit 
 -- die Resultate der letzten ausgefhrten Instruktion oder 
 -- die aktuellen Parameter fr den nchsten Instruktionsaufruf 
 +eines Prozeduraufrufs (auch von Parameterprozeduren) ansehen. Es können
 +keine Daten verÀndert werden! 
 +Man hat die Möglichkeit 
 +- die Resultate der letzten ausgefĂŒhrten Instruktion oder 
 +- die aktuellen Parameter fĂŒr den nĂ€chsten Instruktionsaufruf 
  zu beobachten. 
  Der Inhalt des Stacks kann sequentiell durchgesehen werden, Error- und
 -Disablestop-Zustand knnen gelscht werden. 
 +Disablestop-Zustand können gelöscht werden. 
  Der Einzelschrittablauf kann protokolliert und die entsprechende
 -Sourceline parallel zum ausgefhrten Code beobachtet werden. 
 -Der Einzelschrittbetrieb kann, ber Teile des Codes hinweg, ausgeschaltet
 -werden, z.B. fr hufig durchlaufene Schleifen.
 -Fr die Reprsentation der Daten und deren Adressen gilt das unter 1.1
 +Sourceline parallel zum ausgefĂŒhrten Code beobachtet werden. 
 +Der Einzelschrittbetrieb kann, ĂŒber Teile des Codes hinweg, ausgeschaltet
 +werden, z.B. fĂŒr hĂ€ufig durchlaufene Schleifen.
 +FĂŒr die ReprĂ€sentation der Daten und deren Adressen gilt das unter 1.1
  gesagte. 
 -Der Tracer wird mit 'trace' aufgerufen. Whrend der Aktivitt des Tracers
 -stehen folgende Funktionen zur Verfgung (Nur der erste Buchstabe wird
 +Der Tracer wird mit 'trace' aufgerufen. WÀhrend der AktivitÀt des Tracers
 +stehen folgende Funktionen zur VerfĂŒgung (Nur der erste Buchstabe wird
  getippt): 
 -Abkrzung Funktion 
 +AbkĂŒrzung Funktion 
  -------------------------------------------------------------------------- 
 -  Auto    Die Befehle werden im Einzelschrittbetrieb ausgefhrt, ohne daá
 -          eine Taste gedrckt werden muá. 
 -  Bpnt    Der nchste Breakpoint wird an eine vom Benutzer festgelegte
 -          Codeadrese gesetzt. Damit knnen Teile des Codes abgearbeitet
 -          werden, ohne daá der Einzelschrittmodus aktiv ist. Nach der
 +  Auto    Die Befehle werden im Einzelschrittbetrieb ausgefĂŒhrt, ohne daĂ
 +          eine Taste gedrĂŒckt werden muĂ. 
 +  Bpnt    Der nÀchste Breakpoint wird an eine vom Benutzer festgelegte
 +          Codeadrese gesetzt. Damit können Teile des Codes abgearbeitet
 +          werden, ohne daĂ der Einzelschrittmodus aktiv ist. Nach der
            Eingabe der Adresse wird der Befehl an dieser Adresse angezeigt.
 -          Besttigt wird die Richtigkeit mit <RETURN> oder 's'. 
 -  Clrr    Ein eventuell vorliegender Fehlerzustand wird gelscht. 
 -  Dstp    'disable stop' wird fr das untersuchte Modul gesetzt. 
 -  Estp    'enable stop' wird fr das untersuchte Modul gesetzt. 
 +          BestÀtigt wird die Richtigkeit mit <RETURN> oder 's'. 
 +  Clrr    Ein eventuell vorliegender Fehlerzustand wird gelöscht. 
 +  Dstp    'disable stop' wird fĂŒr das untersuchte Modul gesetzt. 
 +  Estp    'enable stop' wird fĂŒr das untersuchte Modul gesetzt. 
    File    Der Name der kompilierten Quelldatei wird eingestellt. 
 -  Go      Der Code wird bis zum Ende abgearbeitet, ohne daá der Tracer
 +  Go      Der Code wird bis zum Ende abgearbeitet, ohne daĂ der Tracer
            aktiviert wird. 
    Prot    Der Name der Protokollfile wird eingestellt. Die abgearbeiteten
            Instruktionen werden in dieser File protokolliert. 
    Rslt    Es wird umgeschaltet, ob die angezeigte Instruktion nach <RETURN>
            oder 's' abgearbeitet werden soll (Forward-Trace, 'F') oder ob das
 -          Ergebnis der letzten ausgefhrten Instruktion angezeigt werden soll
 +          Ergebnis der letzten ausgefĂŒhrten Instruktion angezeigt werden soll
            (Result-Trace, 'R'). Der aktuelle Zustand dieses Switches wird in
            der ersten Bildschirmzeile durch 'R' oder 'F' gekennzeichnet. 
            Kurzzeitige Umschaltung, um das Ergebnis der letzten Operation
 -          anzusehen, ist auch mglich (zweimal 'r' tippen). 
 -  Step/CR Mit <RETURN> oder 's' wird die nchste Instruktion ausgefhrt.
 +          anzusehen, ist auch möglich (zweimal 'r' tippen). 
 +  Step/CR Mit <RETURN> oder 's' wird die nĂ€chste Instruktion ausgefĂŒhrt.
            Dies ist bei Forward-Trace die angezeigte Instruktion. 
 -  Term    Bis zur nchst 'hheren' Prozedur der CALL-Sequence, die im
 +  Term    Bis zur nÀchst 'höheren' Prozedur der CALL-Sequence, die im
            'disable stop'-Zustand arbeitet, werden die Module verlassen. In
            der Regel bedeutet dies ein Programmabbruch. Alle Breakpoints sind
 -          anschlieáend zurckgesetzt. 
 +          anschlieĂend zurĂŒckgesetzt. 
    -       Der Stackpointer auf den sichtbaren Stack (in der ersten
 -          Bildschirmzeile) wird um zwei verringert. Er zeigt auf die nchst
 +          Bildschirmzeile) wird um zwei verringert. Er zeigt auf die nÀchst
            tiefere Referenzadresse. Der EUMEL-0-Stackpointer wird nicht
 -          verndert.
 -  +       Der Stackpointer auf den sichtbaren Stack wird um zwei erhht. 
 -  <       Bei der Befehlsausgabe werden die Parameteradressen zustzlich
 +          verÀndert.
 +  +       Der Stackpointer auf den sichtbaren Stack wird um zwei erhöht. 
 +  <       Bei der Befehlsausgabe werden die Parameteradressen zusÀtzlich
            ausgegeben (in spitzen Klammern).
    >       Bei der Befehlsausgabe werden keine Parameteradressen ausgegeben,
            sondern nur die Darstellungen der Parameter (z.B.
 @@ -227,26 +227,26 @@ Abkrzung Funktion  #ub#2.  EUMEL0-Instruktionen#ue# 
 -#ub#2.1  Erluterung der Instruktionen (Thematisch sortiert)#ue# 
 +#ub#2.1  ErlÀuterung der Instruktionen (Thematisch sortiert)#ue# 
 -Nach der Hufigkeit ihres Vorkommens im Code unterscheidet man 3 Klassen von
 -Instruktionen: 30 Primrbefehle, 6 Spezialbefehle und z.Zt. 127
 -Sekundrbefehle. 
 -Die Primrbefehle enthalten im ersten Wort den Opcode (5 Bit) und 11 Bit fr
 +Nach der HĂ€ufigkeit ihres Vorkommens im Code unterscheidet man 3 Klassen von
 +Instruktionen: 30 PrimÀrbefehle, 6 Spezialbefehle und z.Zt. 127
 +SekundÀrbefehle. 
 +Die PrimĂ€rbefehle enthalten im ersten Wort den Opcode (5 Bit) und 11 Bit fĂŒr
  die erste Parameteradresse d.h. den Wertebereich 0..2047. Liegt die
 -Parameteradresse auáerhalb dieses Bereichs, dann ersetzt ein
 +Parameteradresse auĂerhalb dieses Bereichs, dann ersetzt ein
  Umschaltprefix (LONGAddress) die Opcodebits und im lowbyte des
  ersten Wortes wird der Opcode codiert. Die erste Parameteradresse befindet
  sich dann als 16 Bit-Wert im zweiten Wort. 
 -Spezialbefehle enthalten im ersten Wort auáer dem Opcode (8 Bit) noch einen
 +Spezialbefehle enthalten im ersten Wort auĂer dem Opcode (8 Bit) noch einen
  8 Bit-Immediatewert (Bytekonstante). 
 -Sekundrebefehle enthalten im ersten Wort nur den Opcode (16 Bit), der aus
 +SekundÀrebefehle enthalten im ersten Wort nur den Opcode (16 Bit), der aus
  einem Umschaltprefix (ESCape, wird im folgenden weggelassen) und im lowbyte
 -dem 8 Bit Sekndaropcode besteht. 
 +dem 8 Bit SekĂŒndaropcode besteht. 
  Im folgenden werden Datenadressen mit 'd', Immediatewerte mit 'v' (Value),
  Codeadressen mit 'a' und Modulnummern mit 'm' bezeichnet. Die Anzahl dieser
 -Buchstaben gibt die Lnge der bentigten Opcodebits (DIV 4) an. Ausnahmsweise
 +Buchstaben gibt die LÀnge der benötigten Opcodebits (DIV 4) an. Ausnahmsweise
  bezeichnet .nn:dd einen 5 Bit Opcode ('nn') und eine 11 Bit Adresse ('dd'). 
  Der Adresstyp ist in den Bits 14 und 15 codiert: 
 @@ -256,7 +256,7 @@ Der Adresstyp ist in den Bits 14 und 15 codiert:   1  1  local ref  adr := ((dddd AND 7FFF) DIV 2 + lbase) ; (adr+1, adr)
  Der Wert eines Wortes an der ersten Parameteradresse wird mit <d1>
 -bezeichnet. Ein Datentyp vor der spitzen Klammer gibt seinen Typ an. Fr die 
 +bezeichnet. Ein Datentyp vor der spitzen Klammer gibt seinen Typ an. FĂŒr die 
  anderen Parameter gilt entsprechendes (<d2>, <d3>, ...). 
 @@ -266,7 +266,7 @@ MOV    .08:dd dddd           1 Wort (z.B. INT/BOOL) wird von der linken                               Adresse zur rechten Adresse transportiert. 
                               <d2> := <d1> 
 -FMOV   .34:dd dddd           4 Wrter (z.B. REAL) von linker Adresse zur
 +FMOV   .34:dd dddd           4 Wörter (z.B. REAL) von linker Adresse zur
                               rechten Adresse tranportieren (kopiert). 
                               <d2> := <d1> 
 @@ -284,12 +284,12 @@ MOVii  7F 23 vvvv dddd       Dem Wort an der Adresse dddd wird die 16-Bit                               <d1> := vvvv 
  MOVx   7D vv dddd dddd       Von der linken Adresse zur rechten Adresse
 -                             werden vv (max. 255) Wrter transportiert. 
 -                             <d2> := <d1> (vv Wrter) 
 +                             werden vv (max. 255) Wörter transportiert. 
 +                             <d2> := <d1> (vv Wörter) 
  MOVxx  7F 21 vvvv dddd dddd  Von der linken Adresse zur rechten Adresse
 -                             werden vvvv (max. 65535) Wrter transportiert. 
 -                             <d2> := <d1> (vvvv Wrter) 
 +                             werden vvvv (max. 65535) Wörter transportiert. 
 +                             <d2> := <d1> (vvvv Wörter) 
  #ub#2.1.2  INT-Operationen#ue# 
 @@ -306,7 +306,7 @@ CLEAR  .24:dd                Dem Wort an der Adresse dd wird 0 zugewiesen.                               <d1> := 0 
  INC1   .0C:dd                Der Inhalt des Wortes an der Adresse dddd wird
 -                             um eins erhht. 
 +                             um eins erhöht. 
                               <d1> := <d1> + 1 
  DEC1   .10:dd                Der Inhalt des Wortes an der Adresse dddd wird
 @@ -334,50 +334,50 @@ SUB    .20:dd dddd dddd      Der Inhalt des Wortes an der zweiten Adresse                               dritten Adresse abgelegt. 
                               <d3> := <d1> - <d2> 
 -MUL    7F 29 dddd dddd dddd  Der Wert der Wrter an den beiden ersten
 +MUL    7F 29 dddd dddd dddd  Der Wert der Wörter an den beiden ersten
                               Adressen wird vorzeichenbehaftet multipliziert
                               und im Wort an der dritten Adresse abgelegt.
 -                             Ein berlauf wird im Falle der vorzeichenlosen
 +                             Ein Ăberlauf wird im Falle der vorzeichenlosen
                               Arithmetik ignoriert (<d3> MOD 65536). 
                               <d3> := <d1> * <d2> 
 -IMULT  7F 28 dddd dddd dddd  Der Wert der Wrter an den beiden ersten
 +IMULT  7F 28 dddd dddd dddd  Der Wert der Wörter an den beiden ersten
                               Adressen wird vorzeichenlos multipliziert und
                               im Wort an der dritten Adresse abgelegt. 
 -                             Falls das Resultat ein Wert gráer 65535 wre,
 +                             Falls das Resultat ein Wert gröĂer 65535 wĂ€re,
                               wird <d3> := FFFFH, sonst 
                               <d3> := <d1> * <d2> 
  DIV    7F 2A dddd dddd dddd  Der Wert des Wortes an der ersten Adresse wird
                               durch den Wert des Wortes an der zweiten
                               Adresse dividiert und im Wort an der dritten
 -                             Adresse abgelegt. Eine Division durch 0 fhrt
 +                             Adresse abgelegt. Eine Division durch 0 fĂŒhrt
                               zum Fehler. 
                               <d3> := <d1> DIV <d2> 
  MOD    7F 2B dddd dddd dddd  Der Rest der Division (wie bei DIV) wird im
                               Wort an der dritten Adresse abgelegt. Falls
 -                             <d2> = 0 ist, wird ein Fehler ausgelst. 
 +                             <d2> = 0 ist, wird ein Fehler ausgelöst. 
                               <d3> := <d1> MOD <d2>
  NEG    7F 27 dddd            Der Wert des Wortes an der Adresse dddd wird
                               arithmetisch negiert (Vorzeichenwechsel). 
                               <d1> := -<d1> 
 -AND    7F 7C dddd dddd dddd  Der Wert der beiden Wrter an den beiden ersten
 -                             Adressen wird bitweise UND-verknpft und das
 +AND    7F 7C dddd dddd dddd  Der Wert der beiden Wörter an den beiden ersten
 +                             Adressen wird bitweise UND-verknĂŒpft und das
                               Resultat im Wort an der dritten Adresse
                               abgelegt. 
                               <d3> := <d1> AND <d2> 
 -OR     7F 7D dddd dddd dddd  Der Wert der beiden Wrter an den beiden ersten
 -                             Adressen wird bitweise ODER-verknpft und das
 +OR     7F 7D dddd dddd dddd  Der Wert der beiden Wörter an den beiden ersten
 +                             Adressen wird bitweise ODER-verknĂŒpft und das
                               Resultat im Wort an der dritten Adresse
                               abgelegt. 
                               <d3> := <d1> OR <d2> 
 -XOR    7F 79 dddd dddd dddd  Der Wert der beiden Wrter an den beiden ersten
 -                             Adressen wird bitweise Exklusiv-ODER-verknpft
 +XOR    7F 79 dddd dddd dddd  Der Wert der beiden Wörter an den beiden ersten
 +                             Adressen wird bitweise Exklusiv-ODER-verknĂŒpft
                               und das Resultat im Wort an der dritten Adresse
                               abgelegt. 
                               <d3> := <d1> XOR <d2> 
 @@ -420,13 +420,13 @@ FNEG   7F 26 dddd            Das Vorzeichen des REAL-Wertes an der Adresse  FSLD   7F 60 dddd dddd dddd  Die Mantisse des REAL-Wertes an der zweiten
                               Adresse wird um ein Digit (4 Bit BCD) nach
                               links verschoben, Vorzeichen und Exponent
 -                             bleiben unverndert. Das vorher hherwertigste
 +                             bleiben unverÀndert. Das vorher höherwertigste
                               Digit steht danach im Wort an der dritten
                               Adresse. Das neue niederwertigste Digit wurde
                               aus dem Wort der ersten Adresse entnommen. 
                               INT<d3> := digit1<d2> ; 
                               REAL<d2> := REAL<d2> SLD 1 ; 
 -                             digit13<d2> := INT<ÿ1> 
 +                             digit13<d2> := INT< 1> 
  GEXP   7F 61 dddd dddd       Der Exponent des REAL-Wertes an der ersten
                               Adresse wird in das Wort an der zweiten Adresse
 @@ -451,7 +451,7 @@ ITSUB  7F 2D dddd dddd dddd  Aus dem TEXT an der ersten Adresse wird das                               der dritten Adresse abgelegt. 
                               INT<d3> := TEXT<d1>[INT<d2>,2] (Notation:
                               t[n,s] bezeichnet das n. Element mit einer
 -                             Gráe von s Bytes, der Bytekette t an der
 +                             GröĂe von s Bytes, der Bytekette t an der
                               Byteposition n*s+1) 
  ITRPL  7F 2E dddd dddd dddd  In dem TEXT an der ersten Adresse wird das
 @@ -498,10 +498,10 @@ REPLAC 7F 34 dddd dddd dddd  Der TEXT an der ersten Adresse wird ab der                               replace (TEXT<d1>, INT<d2>, TEXT<d3>) 
  CAT    7F 35 dddd dddd       Der TEXT an der zweiten Adresse wird an das
 -                             Ende des TEXTes an der ersten Adresse angefgt. 
 +                             Ende des TEXTes an der ersten Adresse angefĂŒgt. 
                               TEXT<d1> := TEXT<d1> + TEXT<d2> 
 -TLEN   7F 36 dddd dddd       Die Lnge des TEXTes an der ersten Adresse wird
 +TLEN   7F 36 dddd dddd       Die LĂ€nge des TEXTes an der ersten Adresse wird
                               im Wort an der zweiten Adresse abgelegt. 
                               INT<d2> := length (TEXT<d1>) 
 @@ -529,7 +529,7 @@ POSFT  7F 39 dddd dddd dddd dddd dddd                               den Inhalt des Wortes an der dritten Adresse
                               bestimmt ist, bis zur Position die durch den
                               Inhalt des Wortes an der vierten Adresse
 -                             bestimmt ist, wird im Wort an der fnften
 +                             bestimmt ist, wird im Wort an der fĂŒnften
                               Adresse abgelegt. 
                               INT<d5> := pos (TEXT<d1>, TEXT<d2>, INT<d3>,
                               INT<d4>) 
 @@ -561,14 +561,14 @@ POSIF  7F 3B dddd dddd dddd dddd dddd                               TEXTes an der ersten Adresse, wird ab der
                               Position, die durch das Wort an der vierten
                               Adresse beschrieben wird, im Wort an der
 -                             fnften Adresse abgelegt. 
 +                             fĂŒnften Adresse abgelegt. 
                               INT<d5> := pos (TEXT<d1>, TEXT<d2>, TEXT<d3>,
                               INT<d4>). 
 -GARB   7F 5F                 Es wird eine Garbagecollection fr den
 -                             taskeigenen TEXT-Heap durchgefhrt. 
 +GARB   7F 5F                 Es wird eine Garbagecollection fĂŒr den
 +                             taskeigenen TEXT-Heap durchgefĂŒhrt. 
 -HPSIZE 7F 5E dddd            Die aktuelle Gráe des TEXT-Heaps wird in dem
 +HPSIZE 7F 5E dddd            Die aktuelle GröĂe des TEXT-Heaps wird in dem
                               Wort an der Adresse dddd abgelegt. 
                               <d1> := heapsize 
 @@ -588,7 +588,7 @@ RTRPL  7F 65 dddd dddd dddd  In dem TEXT an der ersten Adresse wird der  #ub#2.1.5  DATASPACE-Operationen#ue# 
  DSACC  .58:dd dddd           Die dsid an der ersten Adresse wird auf
 -                             Gltigkeit geprft und an der zweiten Adresse
 +                             GĂŒltigkeit geprĂŒft und an der zweiten Adresse
                               eine Referenzaddresse abgelegt, die auf das
                               4. Wort des Datenraumes (den Anfang des
                               Datenbereichs) zeigt. 
 @@ -599,10 +599,10 @@ DSACC  .58:dd dddd           Die dsid an der ersten Adresse wird auf  ALIAS  7F 22 vvvv dddd dddd  Dem BOUND-Objekt an der dritten Adresse wird
                               der Datenraum an der zweiten Adresse zugewiesen
 -                             (INT-Move). Zuvor wird geprft, ob dies der
 +                             (INT-Move). Zuvor wird geprĂŒft, ob dies der
                               erste Zugriff auf den Datenraum ist. Falls ja,
                               wird der Datenraumtyp auf 0 gesetzt. Falls ein
 -                             Heap aufgebaut werden muá und noch keiner
 +                             Heap aufgebaut werden muĂ und noch keiner
                               angelegt wurde, wird die Anfangsadresse des
                               Heaps auf den Wert vvvv+4 innerhalb des
                               Datenraumes gesetzt. 
 @@ -626,7 +626,7 @@ DSCOPY 7F 46 dddd dddd       Dem Datenraum an der ersten Adresse wird eine  DSFORG 7F 47 dddd            Der Datenraum, dessen dsid an der Adresse dddd
                               steht, wird aus der Datenraumverwaltung
 -                             gelscht. 
 +                             gelöscht. 
                               forget (DATASPACE<d1>) 
  DSWTYP 7F 48 dddd dddd       Der Typ des Datenraums, dessen dsid an der
 @@ -650,17 +650,17 @@ DSHEAP 7F 4A dddd dddd       Die Endaddresse Textheaps des Datenraums, dessen                               Einehiten, wird in dem Wort an der zweiten
                               Adresse abgelegt. Falls dieser Wert = 1023 oder 
                               < 96 ist, ist kein Heap vorhanden, anderenfalls
 -                             ist seine Gráe (in KB): <d2>-96. 
 +                             ist seine GröĂe (in KB): <d2>-96. 
                               INT<d2> := DATASPACE<d1>.heapende DIV 1024 
 -NXTDSP 7F 4B dddd dddd dddd  Fr den Datenraum an der ersten Adresse wird
 +NXTDSP 7F 4B dddd dddd dddd  FĂŒr den Datenraum an der ersten Adresse wird
                               die Nummer der Seite, die auf die Nummer der
                               Seite folgt, die in dem Wort an der zweiten Adresse
                               steht an der zweiten Adresse abgelegt. Falls
                               keine Seite mehr folt, wird -1 geliefert. 
                               INT<d2> := nextdspage (DATASPACE<d1>, INT<d2>) 
 -DSPAGS 7F 4C dddd dddd dddd  Fr den Datenraum mit der Nummer, die im Wort
 +DSPAGS 7F 4C dddd dddd dddd  FĂŒr den Datenraum mit der Nummer, die im Wort
                               an der ersten Adresse steht, und der Task deren
                               Nummer im Wort an der zweiten Adresse steht,
                               wird die Anzahl der belegten Seiten im Wort an
 @@ -677,7 +677,7 @@ SEND   7F 71 dddd dddd dddd dddd                               send (TASK<d1>, INT<d2>, DATASPACE<d3>, INT<d4>) 
  WAIT   7F 72 dddd dddd dddd  Die eigene Task geht in einen offenen
 -                             Wartezustand, bei dem sie empfangsbereit ist fr
 +                             Wartezustand, bei dem sie empfangsbereit ist fĂŒr
                               einen Datenraum einer anderen Task. Die id der
                               sendenden Task wird an der ersten Adresse
                               abgelegt, der Messagecode an der zweiten
 @@ -690,9 +690,9 @@ SWCALL 7F 73 dddd dddd dddd dddd                               Task, deren id an der ersten Adresse steht, mit
                               dem Messagecode der an der zweiten Adresse
                               steht, gesendet bis die Task empfangsbereit ist.
 -                             Dann wird auf einen zurckgesandten Datenraum
 +                             Dann wird auf einen zurĂŒckgesandten Datenraum
                               dieser Task gewartet, der an der dritten
 -                             Adresse abgelegt wird. Der zurckgesendete
 +                             Adresse abgelegt wird. Der zurĂŒckgesendete
                               Messagecode wird an der vierten Adresse
                               abgelegt. Vereinfachte Semantik: 
                               REP
 @@ -703,7 +703,7 @@ SWCALL 7F 73 dddd dddd dddd dddd  PPCALL 7F 7A dddd dddd dddd dddd 
                               Wirkt wie SWCALL, wartet aber nicht bis die
                               Zieltask empfangsbereit ist, sondern liefert -2
 -                             an der vierten Adresse zurck, wenn die Task
 +                             an der vierten Adresse zurĂŒck, wenn die Task
                               nicht empfangsbereit ist. Vereinfachte
                               Semantik: 
                               send (TASK<d1>, INT<d2>, DATASPACE<d3>,INT<d4>); 
 @@ -715,13 +715,13 @@ SENDFT 7F 7F dddd dddd dddd dddd dddd                               Der Datenraum an der vierten Adresse wird der
                               Task, deren id an der zweiten Adresse steht,
                               mit dem Messagecode der an der dritten Adresse
 -                             steht, gesendet als ob er von der Task kme,
 +                             steht, gesendet als ob er von der Task kÀme,
                               deren id an der ersten Adresse steht. Der
                               Antwortcode wird im Wort an der vierten
                               Adresse abgelegt. Dieser Befehl setzt eine
                               Priviligierung >= 1 voraus und ist nur wirksam,
                               wenn die from-Task einer anderen Station
 -                             angehrt. Vereinfachte Semantik: 
 +                             angehört. Vereinfachte Semantik: 
                               IF station (TASK<d1>) = station (myself)
                                  THEN send (TASK<d2>, INT<d3>, DATASPACE<d4>,
                                             INT<d5>) 
 @@ -746,11 +746,11 @@ TPBEGIN 7F 5F dddd dddd dddd aaaaaa                               Als Sohn der Task, deren Nummer an der ersten
                               Adresse steht, wird eine Task eingerichtet,
                               deren Nummer an der zweiten Adresse steht. Die
 -                             neue Task erhlt die Privilegierung, deren
 +                             neue Task erhÀlt die Privilegierung, deren
                               Nummer in dem Wort an der dritten Adresse
                               steht und wird mit der Prozedur gestartet,
                               deren Code bei der durch den vierten Parameter
 -                             bergebenen Refereznadresse beginnt. Dieser
 +                             ĂŒbergebenen Refereznadresse beginnt. Dieser
                               Befehl  setzt eine Privilegierung > 1 voraus
                               (Supervisor). 
 @@ -763,13 +763,13 @@ TRPCB  7F 68 dddd dddd dddd  Der Wert des Leitblockfeldes der Task  TWPCB  7F 69 dddd dddd dddd  Der Wert an der dritten Adresse wird in das
                               Leitblockfeld mit der Nummer an der zweiten
 -                             Adresse der Task bertragen, deren Nummer an der
 +                             Adresse der Task ĂŒbertragen, deren Nummer an der
                               ersten Adresse steht. Privilegierung: 
                               0: Nur linenumber-Feld (0), der eigenen Task 
                               1: linenumber-Feld der eigenen Task und
                                  prio-Feld (5) jeder Task 
                               2: Alle Felder 
 -                             Fr den Fall, daá die Privilegierung ok ist
 +                             FĂŒr den Fall, daĂ die Privilegierung ok ist
                               gilt: 
                               pcb (INT<d1>, INT<d2>) := INT<d3> 
 @@ -802,27 +802,27 @@ THALT  7F 6E dddd            In der Task, deren Nummer an der Adresse dddd  TBEGIN 7F 6F dddd aaaaaa     Eine neue Task wird eingerichtet, deren Nummer
                               an der ersten Adresse steht. Die Adresse der
                               Startprozedur wird als Referenzadresse im
 -                             zweiten Parameter bergeben. Der Datenraum 4
 +                             zweiten Parameter ĂŒbergeben. Der Datenraum 4
                               wird von der aufrufenden Task geerbt. Als
                               Privilegierung wird 0 eingetragen. 
                               Dieser Befehl setzt eine Privilegierung > 1
                               voraus (Supervisor). 
  TEND   7F 70 dddd            Die Task, deren Nummer an der Adresse dddd
 -                             steht, wird gelscht (alle Datenrume) und aus
 +                             steht, wird gelöscht (alle DatenrÀume) und aus
                               der Prozessverwaltung entfernt. Dieser Befehl 
                               setzt eine Privilegierung > 1 voraus
                               (Supervisor). 
 -PNACT  7F 76 dddd            Die Nummer der nchsten aktivierten Task
 +PNACT  7F 76 dddd            Die Nummer der nÀchsten aktivierten Task
                               wird aus der Aktivierungstabelle gelesen. Die
                               Suche beginnt mit dem Wert+1 an der Adresse. Die
 -                             Nummer nchsten aktivierten Task wird an dieser
 +                             Nummer nÀchsten aktivierten Task wird an dieser
                               Adresse abgelegt.  
                               INT<d1> := next active (INT<d1>) 
  DEFCOL 7F 80 dddd            Die Task an der Adresse wird als Collectortask
 -                             (fr Datenaustausch zwischen Stationen)
 +                             (fĂŒr Datenaustausch zwischen Stationen)
                               definiert. Dieser Befehl setzt eine
                               Privilegierung >= 1 voraus. 
                               TASK collector := TASK<d1> 
 @@ -834,11 +834,11 @@ Alle Tests und Vergleiche liefern ein BOOL-Resultat, welches den Opcode des  nachfolgenden Branch-Befehls bestimmt (Aus LN wird BT aus BR wird BF). 
  TEST   .28:dd                Liefert TRUE, wenn das Wort an der Adresse 0
 -                             ist (Auch fr BOOL-Variablen gebraucht: TRUE=0,
 +                             ist (Auch fĂŒr BOOL-Variablen gebraucht: TRUE=0,
                               FALSE=1). 
                               FLAG := <d1> = 0 
 -EQU    .2C:dd dddd           Liefert TRUE, wenn die Wrter der beiden
 +EQU    .2C:dd dddd           Liefert TRUE, wenn die Wörter der beiden
                               Adressen gleich sind. 
                               FLAG := <d1> = <d2> 
 @@ -895,14 +895,14 @@ ISLCAS 7F 14 dddd            Liefert TRUE, wenn der ASCII-Code im Wort an                               FLAG := INT<d1> >= 97 AND INT<d1> <= 122 
  ISUCAS 7F 15 dddd            Liefert TRUE, wenn der ASCII-Code im Wort an
 -                             der Adresse dddd einem Groábuchstaben
 +                             der Adresse dddd einem GroĂbuchstaben
                               entspricht. 
                               FLAG := INT<d1> >= 65 AND INT<d1> <= 90 
  ISSHA  7F 18 dddd            Liefert TRUE, wenn der Wert des Wortes an der
                               Adresse dddd im Bereich 0..2047 liegt, d.h.
                               eine Kurzadresse ist, die noch zusammen mit dem
 -                             Opcode im ersten Wort eines Primrbefehls
 +                             Opcode im ersten Wort eines PrimÀrbefehls
                               untergebracht werden kann. 
                               FLAG := INT<d1> < 2048 
 @@ -976,7 +976,7 @@ GCPOS  7F 43 dddd dddd       Die Cursorposition wird erfragt. Die x-Position  CATINP 7F 44 dddd dddd       Aus dem Eingabepuffer werden alle Zeichen
                               gelesen und an den TEXT an der ersten Adresse
 -                             gehngt, bis entweder der Eingabepuffer leer
 +                             gehÀngt, bis entweder der Eingabepuffer leer
                               ist oder ein Zeichen mit einem Code < 32
                               gefunden wurde. Im ersten Fall wird niltext an
                               der zweiten Adresse abgelegt, im zweiten Fall
 @@ -996,8 +996,8 @@ CATINP 7F 44 dddd dddd       Aus dem Eingabepuffer werden alle Zeichen  CONTRL 7F 54 dddd dddd dddd dddd 
                               Der IO-Controlfunktion mit der Nummer, die
                               an der ersten Adresse steht, werden die beiden
 -                             Parameter bergeben, die an der zweiten und
 -                             dritten Adresse stehen. Die Rckmeldung wird
 +                             Parameter ĂŒbergeben, die an der zweiten und
 +                             dritten Adresse stehen. Die RĂŒckmeldung wird
                               an der vierten Adresse abgelegt. 
                               IF channel > 0 
                                  THEN iocontrol (INT<d1>, INT<d2>, INT<d3>,
 @@ -1010,8 +1010,8 @@ BLKOUT 7F 55 dddd dddd dddd dddd dddd                               an der zweiten Adresse steht, wird auf dem
                               aktuellen Kanal ausgegeben. Als Parameter
                               werden die Werte an der dritten und vierten
 -                             Adresse bergeben. Der Returncode wird an der
 -                             fnften Adresse abgelegt. 
 +                             Adresse ĂŒbergeben. Der Returncode wird an der
 +                             fĂŒnften Adresse abgelegt. 
                               IF channel > 0 
                                  THEN blockout (DATASPACE<d1>[INT<d2>, 512],
                                       INT<d3>, INT<d4>, INT<d5>) 
 @@ -1023,8 +1023,8 @@ BLKIN  7F 56 dddd dddd dddd dddd dddd                               an der zweiten Adresse steht, wird an dem
                               aktuellen Kanal eingelesen. Als Parameter
                               werden die Werte an der dritten und vierten
 -                             Adresse bergeben. Der Returncode wird an der
 -                             fnften Adresse abgelegt. 
 +                             Adresse ĂŒbergeben. Der Returncode wird an der
 +                             fĂŒnften Adresse abgelegt. 
                               IF channel > 0 
                                  THEN blockout (DATASPACE<d1>[INT<d2>, 512],
                                                 INT<d3>, INT<d4>, INT<d5>) 
 @@ -1034,7 +1034,7 @@ BLKIN  7F 56 dddd dddd dddd dddd dddd  #ub#2.1.9  Ablaufsteuerung (Branch und Gosub)#ue# 
  B      .70:aa bzw. .74:aa    Unbedingter Sprung an die Adresse. 
 -                             ICOUNT := aaaa (aaaa gilt nur fr den
 +                             ICOUNT := aaaa (aaaa gilt nur fĂŒr den
                               Debugger/Tracer, da die Adressrechung intern
                               komplizierter ist) 
 @@ -1051,10 +1051,10 @@ BT     .00:aa bzw. .04:aa    Wenn der letzte Befehl TRUE lieferte, Sprung an                               FI 
  BRCOMP 7F 20 dddd vvvv       Wenn das Wort an der Adresse dddd kleiner als 0
 -                             oder gráer als die Konstante vvvv ist, wird mit
 +                             oder gröĂer als die Konstante vvvv ist, wird mit
                               dem auf den BRCOMP-Befehl folgenden Befehl
                               (i.d.R. ein B-Befehl) fortgefahren. Sonst wird
 -                             die Ausfhrung an der Adresse des
 +                             die AusfĂŒhrung an der Adresse des
                               BRCOMP-Befehls + 2 + (dddd) (auch ein B-Befehl)
                               fortgesetzt. 
                               IF <d1> >= 0 AND <d1> <= vvvv 
 @@ -1095,7 +1095,7 @@ PPROC  7F 1E mmmm            Die Adresse der Prozedur mit der Modulnummer                               <SP> := mod addr (mmmm) ; 
                               SP INCR 2 
 -HEAD   vvvv (kein Opcode)    Der Speicherplatz fr lokale Variablen und
 +HEAD   vvvv (kein Opcode)    Der Speicherplatz fĂŒr lokale Variablen und
                               Parameter in diesem Modul wird vermerkt, indem
                               der Stacktop um vvvv erhoht wird. 
                               TOP INCR vvvv ; 
 @@ -1128,15 +1128,15 @@ EXEC   7F 1D dddd            Das Modul dessen Nummer in dem Wort an der                               CMOD := high (ICOUNT) + 16 . 
  RTN    7F 00                 Das Modul wird verlassen, die
 -                             Programmausfhrung setzt an der, auf dem Stack
 +                             ProgrammausfĂŒhrung setzt an der, auf dem Stack
                               gesicherten, Adresse fort. 
                               TOP := LBASE ; 
                               SP := TOP + 4 ; 
                               (LBASE, PBASE, ICOUNT, ENSTOP, ARITH) := <TOP> 
  RTNT   7F 01                 Das Modul wird verlassen und der BOOL-Wert TRUE
 -                             geliefert (fr den dem CALL/PCALL folgenden
 -                             BT/BF-Befehl). Die Programmausfhrung setzt an
 +                             geliefert (fĂŒr den dem CALL/PCALL folgenden
 +                             BT/BF-Befehl). Die ProgrammausfĂŒhrung setzt an
                               der, auf dem Stack gesicherten, Adresse fort. 
                               TOP := LBASE ; 
                               SP := TOP + 4 ; 
 @@ -1144,8 +1144,8 @@ RTNT   7F 01                 Das Modul wird verlassen und der BOOL-Wert TRUE                               FLAG := TRUE 
  RTNF   7F 02                 Das Modul wird verlassen und der BOOL-Wert
 -                             FALSE geliefert (fr den dem CALL/PCALL
 -                             folgenden BT/BF-Befehl). Die Programmausfhrung setzt an
 +                             FALSE geliefert (fĂŒr den dem CALL/PCALL
 +                             folgenden BT/BF-Befehl). Die ProgrammausfĂŒhrung setzt an
                               der, auf dem Stack gesicherten, Adresse fort. 
                               TOP := LBASE ; 
                               SP := TOP + 4 ; 
 @@ -1156,20 +1156,20 @@ RTNF   7F 02                 Das Modul wird verlassen und der BOOL-Wert  #ub#2.1.10 Datenadressrechnung#ue# 
  REF    .5C:dd dddd           An der zweiten Adresse wird die Referenzadresse 
 -                             der ersten Adresse abgelegt (2 Wrt-MOV). 
 +                             der ersten Adresse abgelegt (2 Wört-MOV). 
                               REF<d2> := d1 
  SUBS   .60:vv vvvv dddd dddd dddd 
                               Wenn der Inhalt des Wortes an der dritten
 -                             Adresse (ROW-Index) gráer oder gleich der
 +                             Adresse (ROW-Index) gröĂer oder gleich der
                               Konstanten vvvv (limit-1) ist, wird "Subscript
 -                             berlauf" gemeldet, falls der ROW-Index kleiner
 -                             als eins ist wird "Subscript nterlauf"
 +                             Ăberlauf" gemeldet, falls der ROW-Index kleiner
 +                             als eins ist wird "Subscript Ănterlauf"
                               gemeldet. Andernfalls wird der um eins
                               verringerte ROW-Index mit der Konstanten vv
                               (Size eines ROW-Elements) multipliziert,
                               zur Basisaddresse (vierter Parameter) addiert
 -                             und als Referenzadresse an der fnften Adresse
 +                             und als Referenzadresse an der fĂŒnften Adresse
                               abgelegt. 
                               IF INT<d1> <= vvvv AND INT<d1> > 0
                                  THEN REF<d3> := d2 + vv * (INT<d1>-1) 
 @@ -1185,7 +1185,7 @@ SEL    .64:dd vvvv dddd      Die Konstante vvvv (Selektor-Offset einer  CTT    7F 0C dddd dddd       Die Adresse des Strings(!) an der ersten
                               Adresse wird an der zweiten Adresse als
                               Referenzadresse (Segment 0, DS 4) abgelegt.
 -                             CTT steht fr Compiler-Table-Text. 
 +                             CTT steht fĂŒr Compiler-Table-Text. 
                               REF<d2> := REF (0004, INT<d1>) 
 @@ -1222,11 +1222,11 @@ GW     7F 70 dddd dddd dddd  Das Wort im Datenraum 4, das durch das Segment  BCRD   7F 08 dddd dddd       Bereitet das Lesen einzelner Zeichen aus dem
                               Segment 4 des Datenraumes 4 vor (Nametable).
 -                             Das Wort an der ersten Adresse enthlt die
 +                             Das Wort an der ersten Adresse enthÀlt die
                               Startadresse des Strings und zeigt auf das
 -                             Lngenbyte. Nach dem Ausfhren des Befehls
 -                             enthlt das Wort an der zweiten Adresse das
 -                             Lngenbyte und der Pointer an der ersten
 +                             LĂ€ngenbyte. Nach dem AusfĂŒhren des Befehls
 +                             enthÀlt das Wort an der zweiten Adresse das
 +                             LĂ€ngenbyte und der Pointer an der ersten
                               Adresse zeigt auf das erste Zeichen des Textes.
                               Das Bit 15 des Pointers ist gesetzt, wenn das
                               highbyte adressiert wird. 
 @@ -1235,8 +1235,8 @@ BCRD   7F 08 dddd dddd       Bereitet das Lesen einzelner Zeichen aus dem  CRD    7F 09 dddd dddd       Liest ein Zeichen aus dem String, dessen Lesen
                               mit BCRD vorbereitet wurde. Die erste Adresse
 -                             enthlt einen Stringpointer, der nach jedem
 -                             Lesen erhht wird, die zweite Adresse enthlt
 +                             enthÀlt einen Stringpointer, der nach jedem
 +                             Lesen erhöht wird, die zweite Adresse enthÀlt
                               nach dem Aufruf des Befehls den Code des 
                               gelesenen Zeichens. 
                               INT<d2> := code (STRING<d1>) ; 
 @@ -1244,14 +1244,14 @@ CRD    7F 09 dddd dddd       Liest ein Zeichen aus dem String, dessen Lesen  CWR    7F 0B dddd dddd dddd  Der Hashcode an der ersten Adresse wird mit dem
                               zu schreibenden Zeichencode (dritte Adresse)
 -                             verknpft und in den Bereich 0..1023 gemapt.
 +                             verknĂŒpft und in den Bereich 0..1023 gemapt.
                               Das Zeichen wird an die Position des Pointers
                               geschrieben (Bit 15 des Pointers unterscheidet
 -                             lowbyte und highbyte). Anschlieáend wird der
 -                             Pointer auf die Adresse des nchsten Zeichens
 +                             lowbyte und highbyte). AnschlieĂend wird der
 +                             Pointer auf die Adresse des nÀchsten Zeichens
                               gesetzt. Der Pointer steht an der zweiten
                               Adresse. Vor dem Schreiben des ersten Zeichens 
 -                             muá der Hashcode auf 0 gesetzt werden. 
 +                             muĂ der Hashcode auf 0 gesetzt werden. 
                               INT<d1> INCR INT<d1> ; 
                               IF INT<d1> > 1023 THEN INT<d1> DECR 1023 FI ; 
                               INT<d1> := (INT<d1> + INT<d3>) MOD 1024 ; 
 @@ -1260,15 +1260,15 @@ CWR    7F 0B dddd dddd dddd  Der Hashcode an der ersten Adresse wird mit dem  ECWR   7F 0A dddd dddd dddd  Das Schreiben eines Strings wird beendet. Dazu
                               wird an der ersten Adresse der Stringpointer
 -                             bergegeben, an der zweiten Adresse wird die
 -                             endgltige Stringlnge geliefert. An der
 -                             dritten Adresse wird die Adresse des nchsten
 +                             ĂŒbergegeben, an der zweiten Adresse wird die
 +                             endgĂŒltige StringlĂ€nge geliefert. An der
 +                             dritten Adresse wird die Adresse des nÀchsten
                               freien Platzes nach diesem Stringende
                               geliefert. 
  GETC   7F 0D dddd dddd dddd  Dieser Befehl liefert ein BOOL-Result und zwar
                               TRUE, wenn das Wort an der zweiten Adresse
 -                             gráer als 0 und kleiner als die Lnge des
 +                             gröĂer als 0 und kleiner als die LĂ€nge des
                               TEXTes an der ersten Adresse ist. In diesem Fall
                               wird im Wort an der dritten Adresse der Code
                               des n. Zeichens des TEXTes geliefert. Die
 @@ -1317,7 +1317,7 @@ GCADDR  7F 17 dddd dddd dddd Diese Instruktion liefert ein BOOL-Result.                               es mit zwei Opcodes (00/04 bzw. 70/74). 
                               byte := high(INT<d1>)-high(INT<d2>) ; 
                               IF byte < 0 
 -                                THEN byte INCR 16 ; (* Bit fr LN1 bzw. B1
 +                                THEN byte INCR 16 ; (* Bit fĂŒr LN1 bzw. B1
                                                      Opcode *) 
                                       rotate (byte, right) ; 
                               FI ; 
 @@ -1326,19 +1326,19 @@ GCADDR  7F 17 dddd dddd dddd Diese Instruktion liefert ein BOOL-Result.  GETTAB  7F 1A                Kopiert den Inhalt der unteren 64KB des
                               Segments 5 im DS 4 in das Segment 4.
 -                             (permanentes Segment --> temporres Segment) 
 +                             (permanentes Segment --> temporÀres Segment) 
                               DS4: 50000..57FFF --> 40000..47FFF (Wortaddr) 
  PUTTAB  7F 1B                Kopiert den Inhalt der unteren 64KB des Segments
 -                             4 im DS 4 in das Segment 5. (Temporre Daten
 +                             4 im DS 4 in das Segment 5. (TemporÀre Daten
                               werden permanent) 
                               DS4: 40000..47FFF --> 50000..57FFF (Wortaddr) 
  ERTAB   7F 1C                Kopiert den Inhalt des Segments 6 im DS 4
                               (besteht nur aus FF's) in die Segmente 4 und 7,
 -                             d.h. das temporre Segment (u.a. Symboltabelle)
 +                             d.h. das temporÀre Segment (u.a. Symboltabelle)
                               und das Segment mit Compiler-Intermediatestring
 -                             werden gelscht. 
 +                             werden gelöscht. 
                               DS4: 60000..6FDFF --> 40000..4FDFF ; 
                               DS4: 60000..6FDFF --> 70000..7FDFF 
 @@ -1355,7 +1355,7 @@ CDBTXT  7F 74 dddd dddd      Der String(!) an der Adresse <d1> im Segment 5  STOP   7F 04                 Alle (aufrufenden) Module werden verlassen, bis
                               das erste im 'disablestop'-Zustand angetroffen
 -                             wird (hnlich errorstop ("")) ; 
 +                             wird (Ăhnlich errorstop ("")) ; 
                               WHILE ENSTOP REP return PER .
                               return: 
 @@ -1382,7 +1382,7 @@ SETERR 7F 4D dddd            Es wird der Fehlerzustand eingeschaltet, das                               FI  
  CLRERR 7F 4F                 Falls der Fehlerzustand vorliegt, wird der
 -                             Fehler gelscht. 
 +                             Fehler gelöscht. 
                               ERROR := FALSE 
  LN     .00:vv und .04:vv     Die Konstante vv wird in das pcb-Feld
 @@ -1420,14 +1420,14 @@ CLOCK  7F 66 dddd dddd       Die Systemuhr mit der Nummer, die durch den  #ub#2.1.14 Systemglobale Instruktionen#ue# 
  KE     7F 06                 Der EUMEL0-Debugger 'Info' wird aufgerufen,
 -                             falls dies ein infofhiges System ist. 
 +                             falls dies ein infofÀhiges System ist. 
  SYSG   7F 19                 Sysgen (Nur beim Sysgen-Urlader). 
  INFOPW 7F 51 dddd dddd dddd  Das bis zu 10 Zeichen lange Infopassword an der
                               zweiten Adresse (TEXT) wird eingestellt, falls
                               das alte Infopassword mit dem TEXT an der
 -                             ersten Adresse bereinstimmt. In diesem Fall
 +                             ersten Adresse ĂŒbereinstimmt. In diesem Fall
                               wird im Wort an der dritten Adresse eine 0
                               abgelegt, andernfalls eine 1. Dies ist kein
                               privilegierter Befehl, er funktioniert
 @@ -1439,9 +1439,9 @@ INFOPW 7F 51 dddd dddd dddd  Das bis zu 10 Zeichen lange Infopassword an der                                  ELSE INT<d3> := 1 
                               FI 
 -STORAGE 7F 5A dddd dddd      Die Gráe des vorhandene Hintergrundspeichers
 +STORAGE 7F 5A dddd dddd      Die GröĂe des vorhandene Hintergrundspeichers
                               in KB wird im Wort an der ersten Adresse
 -                             abgelegt, die Gráe des benutzten
 +                             abgelegt, die GröĂe des benutzten
                               Hintergrundspeichers an der zweiten Adresse. 
                               INT<d1> := size ; 
                               INT<d2> := used 
 @@ -1458,23 +1458,23 @@ SETNOW 7F 67 dddd            Die Realtime-Clock (clock(1)) des Systems wird                               voraus. 
                               clock (1) := REAL<d1> 
 -SESSION 7F 7E dddd           Der aktuelle Wert des Systemlaufzhlers wird
 +SESSION 7F 7E dddd           Der aktuelle Wert des SystemlaufzÀhlers wird
                               an der Adresse dddd abgelegt. 
                               INT<d1> := systemlaufzaehler 
  ID     7F 81 dddd dddd       Der Wert des id-Feldes mit der Nummer, die an
                               der ersten Adresse steht, wird in das Wort an
 -                             der zweiten Adresse geschrieben. Fr dei
 +                             der zweiten Adresse geschrieben. FĂŒr dei
                               Nummern der id-Felder gilt: 
                               Feld    Inhalt 
 -                              0      Kleinste HG-Version fr EUMEL0 
 +                              0      Kleinste HG-Version fĂŒr EUMEL0 
                                1      CPU-Type (1=Z80,3=8086,4=68000,5=80286) 
                                2      Urlader-Version 
                                3      Reserviert 
                                4      Lizenznummer des Shards
                                5      Installationsnummer 
 -                              6      Frei fr Shard 
 -                              7      Frei fr Shard 
 +                              6      Frei fĂŒr Shard 
 +                              7      Frei fĂŒr Shard 
                               IF INT<d1> < 4 
                                  THEN INT<d2> := eumel0 id (INT<d1>) 
                                  ELSE INT<d2> := shard id (INT<d1>) 
 @@ -1654,8 +1654,8 @@ XOR     7F 79 dddd dddd dddd  #ub#3.1  PACKET address#ue# 
 -Mit diesem Paket werden die Operationen fr 16 Bit Adressrechnung zur
 -Verfgung gestellt. 
 +Mit diesem Paket werden die Operationen fĂŒr 16 Bit Adressrechnung zur
 +VerfĂŒgung gestellt. 
  TEXT PROC hex8 (INT CONST dez) : 
    Der INT-Parameter (0..255) wird in eine 2-Zeichen Hexdarstellung
 @@ -1693,7 +1693,7 @@ TEXT PROC cdbtext (INT CONST address) :  PROC splitword (INT VAR word, lowbyte) : 
 -  Das Wort 'word' wird in den hherwertigen und niederwertigen Teil zerlegt.
 +  Das Wort 'word' wird in den höherwertigen und niederwertigen Teil zerlegt.
    Das highbyte steht nach dieser Operation in 'word', das lowbyte in
    'lowbyte'. 
 @@ -1703,44 +1703,44 @@ PROC makeword (INT VAR word, INT CONST lowbyte) :  BOOL PROC ulseq (INT CONST left, right) : 
 -  '<=' fr positive INT-Zahlen (0..65535). 
 +  '<=' fĂŒr positive INT-Zahlen (0..65535). 
  OP INC (INT VAR word) : 
 -  'word INCR 1' fr positive INT-Zahlen (0..65535), ohne daá ein berlauf
 +  'word INCR 1' fĂŒr positive INT-Zahlen (0..65535), ohne daĂ ein Ăberlauf
    auftritt. 
  OP DEC (INT VAR word) : 
 -  'word DECR 1' fr poistive INT-Zahlen (0..65535), ohne daá ein Unterlauf
 +  'word DECR 1' fĂŒr poistive INT-Zahlen (0..65535), ohne daĂ ein Unterlauf
    auftritt. 
  INT OP ADD (INT CONST left, right) : 
 -  'left + right' fr positive INT-Zahlen (0..65535), ohne daá ein berlauf
 +  'left + right' fĂŒr positive INT-Zahlen (0..65535), ohne daĂ ein Ăberlauf
    auftritt. 
  INT OP SUB (INT CONST left, right) : 
 -  'left - right' fr positive INT-Zahlen (0..65535), ohne daá ein berlauf
 +  'left - right' fĂŒr positive INT-Zahlen (0..65535), ohne daĂ ein Ăberlauf
    auftritt. 
  INT OP MUL (INT CONST left, right) : 
 -  'left * right' fr positive INT-Zahlen (0..65535), ohne daá ein berlauf
 +  'left * right' fĂŒr positive INT-Zahlen (0..65535), ohne daĂ ein Ăberlauf
    auftritt. 
  #ub#3.2  PACKET table routines#ue# 
  PROC init module table (TEXT CONST name) : 
 -  Ein benannter Datenraum ('name') wird eingerichtet. Dieser enthlt die
 -  aufbereitete Permanenttabelle fr schnelle Zugriffe. Die Datenstruktur
 -  beschreibt drei Tabellen (PACKETTABLE, MODULETABLE, TYPETABLE), ber die
 -  zu einer Modulnummer deren Name und deren Parameter, sowie der zugehrige
 +  Ein benannter Datenraum ('name') wird eingerichtet. Dieser enthÀlt die
 +  aufbereitete Permanenttabelle fĂŒr schnelle Zugriffe. Die Datenstruktur
 +  beschreibt drei Tabellen (PACKETTABLE, MODULETABLE, TYPETABLE), ĂŒber die
 +  zu einer Modulnummer deren Name und deren Parameter, sowie der zugehörige
    Paketname gefunden werden kann, wenn sie in der Permanenttabelle steht. 
 -  Die TYPETABLE enthlt zu jedem TYPE, der in der Permanenttabelle steht,
 -  seine Gráe in Words. 
 +  Die TYPETABLE enthÀlt zu jedem TYPE, der in der Permanenttabelle steht,
 +  seine GröĂe in Words. 
  PROC add modules : 
 @@ -1762,11 +1762,11 @@ TEXT PROC packetname (INT CONST module number) :    Der Name des Pakets, das das Modul mit der Nummer 'module number'
    definiert, wird als TEXT geliefert. Falls das Modul nicht in der
    Permanenttabelle steht, wird der Name des letzten vorher insertierten
 -  Pakets geliefert (In manchen Fllen also nicht der wahre Paketname). 
 +  Pakets geliefert (In manchen FĂ€llen also nicht der wahre Paketname). 
  INT PROC storage (TEXT CONST typename) : 
 -  Aus der Modultabelle wird Gráe des TYPEs mit dem Namen 'typname' gelesen.
 +  Aus der Modultabelle wird GröĂe des TYPEs mit dem Namen 'typname' gelesen.
    Wenn der Typ nicht in der Permanenttabelle steht, wird 0 geliefert. 
 @@ -1774,7 +1774,7 @@ PROC getmodulenumber (INT VAR module number) :    Erfragt eine Modulnummer am Bildschirm. Der Benutzer kann entweder eine
    Zahl eingeben oder den Namen einer PROC/OP. Wenn mehrere Module mit diesem
    Namen existieren, wird eine Auswahlliste angeboten. In 'module number'
 -  wird die ausgewhlte Modulnummer bergeben. 
 +  wird die ausgewĂ€hlte Modulnummer ĂŒbergeben. 
  INT PROC codeaddress (INT CONST module number) : 
 @@ -1787,7 +1787,7 @@ INT PROC codesegment (INT CONST module number) :  INT PROC hash (TEXT CONST object name) : 
 -  Berechnet den Hashcode des Objekts 'object name', um ber die Hashtable,
 +  Berechnet den Hashcode des Objekts 'object name', um ĂŒber die Hashtable,
    Nametable, Permanenttable die Parameter eines Objekts zu suchen. 
 @@ -1796,8 +1796,8 @@ INT PROC hash (TEXT CONST object name) :  #ub#3.3.1  Zugriff auf globale Parameter#ue# 
  PROC default no runtime : 
 -  Bereitet den Decoder darauf vor, daá keine runtime vorliegt, d.h.
 -  Stackzugriffe nicht sinnvoll sind. Fr Parameter mit lokalen Adressen
 +  Bereitet den Decoder darauf vor, daĂ keine runtime vorliegt, d.h.
 +  Stackzugriffe nicht sinnvoll sind. FĂŒr Parameter mit lokalen Adressen
    werden deshalb keine Variableninhalte dargestellt. Bei fast allen
    Decoderaufrufen mit 'decode'/'decode module' bis auf die 'decode' mit
    mehr als zwei Parametern, wird 'default no runtime' automatisch aufgerufen. 
 @@ -1805,23 +1805,23 @@ PROC default no runtime :  PROC set parameters (INT CONST lbase, pbase, line number, c8k) : 
  PROC get parameters (INT VAR lbase, pbase, line number, c8k) : 
 -  Einstell- und Informationsprozeduren (fr den Tracer). 'lbase' ist die
 -  lokale Basis (Stackoffset fr dies Modul), 'pbase' ist das highbyte der
 +  Einstell- und Informationsprozeduren (fĂŒr den Tracer). 'lbase' ist die
 +  lokale Basis (Stackoffset fĂŒr dies Modul), 'pbase' ist das highbyte der
    Paketbasis, 'line number' ist die letzte 'LN'-Zeilennummer, 'c8k' (cmod)
    wird von EUMEL0 beim Eintritt in ein Modul auf
 -  high (Modulstartaddresse + 16KB) gesetzt (fr Branch-Befehle). 
 +  high (Modulstartaddresse + 16KB) gesetzt (fĂŒr Branch-Befehle). 
  PROC pbase (INT CONST pbase highbyte) : 
  INT PROC pbase : 
 -  Einstell- und Informationsprozeduren, nicht nur fr den Tracer. Die
 +  Einstell- und Informationsprozeduren, nicht nur fĂŒr den Tracer. Die
    Paketbasis (Globale Daten) wird gesetzt. Dazu wird nur das Highbyte (z.B.
 -  nach 'PENTER') bergeben. 
 +  nach 'PENTER') ĂŒbergeben. 
  PROC lbase (INT CONST local base) : 
 -  Einstellprozedur fr den Tracer. Stellt whrend der runtime die aktuelle
 -  Basis ein. Wird der Decoder nicht whrend runtime betrieben, sollte
 +  Einstellprozedur fĂŒr den Tracer. Stellt wĂ€hrend der runtime die aktuelle
 +  Basis ein. Wird der Decoder nicht wÀhrend runtime betrieben, sollte
    lbase(-1) eingestellt werden. 
 @@ -1830,44 +1830,44 @@ INT PROC line number :  PROC list filename (TEXT CONST name) : 
    Stellt den Namens-Prefix der Outputfiles ein. Voreingestellt ist "". An
 -  den Filename wird ".n" angehngt, wobei n mit '0' beginnt. 
 +  den Filename wird ".n" angehÀngt, wobei n mit '0' beginnt. 
  PROC bool result (BOOL CONST status) : 
  BOOL PROC bool result : 
 -  Einstell- und Informationsprozeduren, die fr den Tracer bentigt werden.
 +  Einstell- und Informationsprozeduren, die fĂŒr den Tracer benötigt werden.
    Lieferte der letzte disassemblierte Befehl ein BOOL-Result ? 
  PROC with object address (BOOL CONST status) : 
  BOOL with object address :
 -  Einstell- und Informationsprozeduren, nicht nur fr den Tracer. Sollen
 -  auáer den Darstellungen der Speicherinhalte auch die Parameteradressen (in
 +  Einstell- und Informationsprozeduren, nicht nur fĂŒr den Tracer. Sollen
 +  auĂer den Darstellungen der Speicherinhalte auch die Parameteradressen (in
    spitzen Klammern) ausgegeben werden ? 
  PROC with code words (BOOL CONST status) : 
  BOOL PROC with code words : 
 -  Einstell- und Informationsprozeduren, nicht fr den Tracer. Sollen ab der
 +  Einstell- und Informationsprozeduren, nicht fĂŒr den Tracer. Sollen ab der
    80. Spalte in der Outputfile die Hexdarstellungen der dekodierten
 -  Codewrter ausgegeben werden ? 
 +  Codewörter ausgegeben werden ? 
  #ub#3.3.2  Aufruf des Disassemblers#ue# 
  PROC decode : 
    Aufruf des Decoders. Die Modulnummer der ersten zu dekodierenden Prozedur
 -  wird erfragt. Die Modultabelle wird ggf. ergnzt, es wird 'default no
 +  wird erfragt. Die Modultabelle wird ggf. ergÀnzt, es wird 'default no
    runtime' eingestellt. 
  PROC decode (INT CONST first module number) : 
    Aufruf des Decoders. Die Modulnummer der ersten zu dekodierenden Prozedur
 -  wird bergeben. Die Modultabelle wird ggf. ergnzt, es wird 'default no
 +  wird ĂŒbergeben. Die Modultabelle wird ggf. ergĂ€nzt, es wird 'default no
    runtime' eingestellt. 
  PROC decode (INT CONST segment, address) : 
    Aufruf des Decoders. Die Disassemblierung beginnt in dem
 -  Codesegment/Adresse, das/die als Parameter bergeben wird. Die Modultabelle
 -  wird ggf. ergnzt, es wird 'default no runtime' eingestellt. 
 +  Codesegment/Adresse, das/die als Parameter ĂŒbergeben wird. Die Modultabelle
 +  wird ggf. ergÀnzt, es wird 'default no runtime' eingestellt. 
  PROC decode (INT CONST segment, INT VAR address, INT CONST to addr,
 @@ -1876,7 +1876,7 @@ PROC decode (INT CONST segment, INT VAR address, INT CONST to addr,    die Modultabelle. Der bei 'address' beginnende und bei 'to addr' endende
    Adressbereich im Codesegment 'segment' wird dekodiert. Ist 'only one
    module' TRUE, wird nur bis zum Ende des aktuellen Moduls dekodiert.
 -  'address' zeigt nach dem Prozeduraufruf auf die nchste Instruktion nach
 +  'address' zeigt nach dem Prozeduraufruf auf die nÀchste Instruktion nach
    'to addr'.
 @@ -1884,21 +1884,21 @@ PROC decode (INT CONST segment, INT VAR address, TEXT VAR words,               instruction, INT PROC (INT CONST, INT VAR, TEXT VAR) next word)):
    Diese Prozedur ist das Herz des Decoders. Sie disassembliert eine
    Instruktion, die im Codesegment 'segment', Adresse 'address' beginnt und
 -  legt die mit 'nextword' gelesenen Wrter als Hexdarstellung in 'words' ab.
 +  legt die mit 'nextword' gelesenen Wörter als Hexdarstellung in 'words' ab.
    Die dekodierte Instruktion steht dann in 'instruction'. Vor dem Aufruf
    dieser Prozedur sollte 'words' und 'instruction' niltext zugewiesen werden.
    Die passende Prozedur 'nextword' wird auch vom 'eumel decoder'
 -  herausgereicht. 'address' zeigt nach der Ausfhrung des Befehls auf die
 -  nchste Instruktion. 
 +  herausgereicht. 'address' zeigt nach der AusfĂŒhrung des Befehls auf die
 +  nÀchste Instruktion. 
  PROC decodemodule : 
 -  Wie 'decode', nur wird bis nur zum Ende des gewnschten Moduls
 +  Wie 'decode', nur wird bis nur zum Ende des gewĂŒnschten Moduls
    disassembliert. 
  PROC decodemodule (INT CONST module number) : 
 -  Wie 'decode', nur wird bis nur zum Ende des gewnschten Moduls
 +  Wie 'decode', nur wird bis nur zum Ende des gewĂŒnschten Moduls
    disassembliert. 
 @@ -1907,23 +1907,23 @@ PROC decodemodule (INT CONST module number) :  PROC nextmoduleheader (INT CONST segment, INT CONST address,
                         INT VAR header address, module number) : 
    Diese Prozedur findet ab der angegeben Adresse ('segment'/'address') den
 -  Anfang des nchsten Moduls. In 'header address' wird die Startadresse des
 +  Anfang des nÀchsten Moduls. In 'header address' wird die Startadresse des
    gefundenen Moduls geliefert (bleibt im Segment 'segment'), in 'module
    number' die Nummer des gefundenen Moduls. 
  INT PROC next word (INT CONST segment, INT VAR address, TEXT VAR words) : 
 - Diese Prozedur liefert das durch 'segment'/'address' angegeben Wort, hngt
 - die Hexdarstellung dieses Wortes an 'words' an und erhht 'address' um
 + Diese Prozedur liefert das durch 'segment'/'address' angegeben Wort, hÀngt
 + die Hexdarstellung dieses Wortes an 'words' an und erhöht 'address' um
   eins. 
  TEXT PROC data representation (INT CONST data addr, segment, address, type):
    Diese Prozedur liefert die Darstellung des Parameters 'data addr' ggf. mit
    Adresse (--> with object address).  'segment'/'address' bezeichnet die
 -  Position, an der die Instruktion fr diesen Parameter steht. 'type' ist
 +  Position, an der die Instruktion fĂŒr diesen Parameter steht. 'type' ist
    ein (durch die Instruktion festgelegter) Typ des Parameters, mit dem die
 -  Art der Darstellung gewhlt wird (TEXT, REAL, INT, ...). Im Gegensatz zu
 +  Art der Darstellung gewÀhlt wird (TEXT, REAL, INT, ...). Im Gegensatz zu
    'object representation' braucht bei dieser Prozedur keine Darstellung
    vorhanden sein. In diesem Falle wird nur z.B. der Stackoffset '<L n>'
    ausgegeben. 
 @@ -1933,13 +1933,13 @@ TEXT PROC object representation (INT CONST data segment, data address,                                             segment, address, type) : 
    Diese Prozedur wird von 'data representation' aufgerufen und liefert die
    Darstellung des Parameters. In 'data segment'/'data address' wird die
 -  Anfangsadresse der darzustellenden Daten bergeben. Die anderen drei
 +  Anfangsadresse der darzustellenden Daten ĂŒbergeben. Die anderen drei
    Parameter verhalten sich wie bei 'data representation'. 
  TEXT PROC last actual parameter : 
    Liefert den Wert (nach TEXT konvertiert) des letzten dekodierten aktuellen
 -  Parameters (am sinnvollsten whrend runtime). Diese prozedur wird vom
 +  Parameters (am sinnvollsten wÀhrend runtime). Diese prozedur wird vom
    Tracer benutzt. 
 @@ -1950,25 +1950,25 @@ TEXT PROC last actual parameter :  PROC prot file (TEXT CONST filename) :
  TEXT PROC prot file : 
 -  Einstell- und Informationsprozeduren fr den Namen der Protokollfile.
 +  Einstell- und Informationsprozeduren fĂŒr den Namen der Protokollfile.
    Wird ein 'filename' ungleich niltext eingestellt, dann werden die
 -  dekodierten Instruktionen whrend der Ablaufverfolgung zustzlich in diese
 +  dekodierten Instruktionen wÀhrend der Ablaufverfolgung zusÀtzlich in diese
    File geschrieben. 
  PROC source file (TEXT CONST filename) : 
  TEXT PROC source file : 
 -  Einstell- und Informationsprozeduren fr den Namen der Quelltextdatei.
 +  Einstell- und Informationsprozeduren fĂŒr den Namen der Quelltextdatei.
    Wird ein 'filename' ungleich niltext eingestellt, dann wird nach dem
 -  Ausfhren eines 'LN'-Befehls (LineNumber) die Zeile mit dieser Nummer aus
 +  AusfĂŒhren eines 'LN'-Befehls (LineNumber) die Zeile mit dieser Nummer aus
    der Quelldatei gelesen und parallel zur dekodierten EUMEL0-Instruktion
    angezeigt. 
  PROC tracer channel (INT CONST) :
  INT PROC tracerchannel : 
 -  Einstell- und Informationsprozeduren fr den Kanal, an dem das Programm
 -  ausgefhrt werden soll. Die Ablaufverfolgung bleibt an dem Kanal, an dem
 +  Einstell- und Informationsprozeduren fĂŒr den Kanal, an dem das Programm
 +  ausgefĂŒhrt werden soll. Die Ablaufverfolgung bleibt an dem Kanal, an dem
    die PROC/OP aufgerufen wurde. 
 @@ -1982,40 +1982,40 @@ INT PROC tracerchannel :  PROC trace : 
    Diese Prozedur erfragt vom Benutzer die PROC/OP, bei der der die
 -  Ablaufverfogung beginnen soll. Anschlieáend muá der Aufruf der PROC/OP
 -  eingegeben werden. Der Benutzer wird auáerdem nach dem Namen der
 +  Ablaufverfogung beginnen soll. AnschlieĂend muĂ der Aufruf der PROC/OP
 +  eingegeben werden. Der Benutzer wird auĂerdem nach dem Namen der
    compilierten Quelldatei, dem Namen der Protokollfile und dem
    Abarbeitungskanal gefragt. Nachdem alle Angaben gemacht worden sind, wird
 -  der PROC/OP-Aufruf mit 'do' ausgefhrt. 
 +  der PROC/OP-Aufruf mit 'do' ausgefĂŒhrt. 
  PROC set breakpoint : 
    Die Modultabelle wird ggf. erweitert, der Benutzer wird nach dem Namen
    einer PROC/OP gefragt, deren Codeabarbeitung verfolgt werden soll. Der Code
 -  dieser PROC/OP muá im Codesegment 3 stehen (sonst erfolgt ein 'errorstop').
 +  dieser PROC/OP muĂ im Codesegment 3 stehen (sonst erfolgt ein 'errorstop').
    Der Protokoll- und Sourcefilename werden auf niltext gesetzt. 
  PROC set breakpoint (INT CONST breakpointnr, address) : 
 -  Setzt an der bergebenen Codeadresse im Segment 3 einen Breakpoint der
 +  Setzt an der ĂŒbergebenen Codeadresse im Segment 3 einen Breakpoint der
    beiden Breakpoints (1 oder 2 als 'breakpointnr'). Der Benuzter ist selbst
 -  dafr verantwortlich daá 
 +  dafĂŒr verantwortlich daĂ 
    - dies nicht die Einsprungsadresse eines Moduls ist (HEAD-Instruktion), 
 -  - die bergebene Adresse das erste (Opcode-) Wort einer Instruktion ist, 
 +  - die ĂŒbergebene Adresse das erste (Opcode-) Wort einer Instruktion ist, 
    - vor dem Aufruf des Moduls die Paketbasis korrekt gesetzt ist, falls
 -    vor der ersten Instruktion mit Parametern kein 'PENTER' ausgefhrt wird. 
 +    vor der ersten Instruktion mit Parametern kein 'PENTER' ausgefĂŒhrt wird. 
  PROC reset breakpoints : 
 -  Die Breakpoints werden zurckgesetzt und der (wegen des Breakpointhandler-
 -  CALLs) gesicherte Code wieder an seinen Originalplatz zurckgeschrieben. 
 +  Die Breakpoints werden zurĂŒckgesetzt und der (wegen des Breakpointhandler-
 +  CALLs) gesicherte Code wieder an seinen Originalplatz zurĂŒckgeschrieben. 
  PROC reset breakpoint (INT CONST breakpointnr) : 
    Es wird nur gezielt der eine Breakpoint mit der Nummer 'breakpointnr'
 -  zurckgesetzt. 
 +  zurĂŒckgesetzt. 
  PROC list breakpoints : 
    Der Status, die Adresse und der gesicherte Code (an dieser Adresse) werden 
 -  fr beide Breakpoints gelistet. 
 +  fĂŒr beide Breakpoints gelistet. 
 diff --git a/devel/debugger/1.8.2/src/DEBUGGER.ELA b/devel/debugger/1.8.2/src/DEBUGGER.ELA index fddde7d..6b4a429 100644 --- a/devel/debugger/1.8.2/src/DEBUGGER.ELA +++ b/devel/debugger/1.8.2/src/DEBUGGER.ELA @@ -128,7 +128,7 @@ INT OP MUL (INT CONST left, right) :  ENDOP MUL ; 
  BOOL PROC ulseq (INT CONST left, right) : 
 - left <= right   (* Muá leider(!!) auf ULSEQ Code gepatcht werden *)
 + left <= right   (* MuĂ leider(!!) auf ULSEQ Code gepatcht werden *)
  ENDPROC ulseq ; 
  (*************************** Wortoperationen ******************************) 
 @@ -190,7 +190,7 @@ ENDPACKET address ;  (**************************************************************************) 
 -PACKET table routines DEFINES                (* Fr eumel decoder 861017 *)
 +PACKET table routines DEFINES                (* FĂŒr eumel decoder 861017 *)
                                               (* 1.8.0 by M.Staubermann   *)
                                code segment , 
                                code address ,
 @@ -473,7 +473,7 @@ PROC get module number (INT VAR module number) :   anz objects := 0 ; 
   FILE VAR f := notefile ; 
   maxlinelength (f, 1000) ; 
 - note ("Modulnummer des gewnschten Objekts merken und ESC q tippen.") ; 
 + note ("Modulnummer des gewĂŒnschten Objekts merken und ESC q tippen.") ; 
   noteline ;
   noteline ;
   module number := -1 ;
 @@ -779,7 +779,7 @@ ENDPACKET table routines ;  (*************************************************************************)
 -PACKET eumel decoder DEFINES        (* M. Staubermann, Mrz/April 86 *)
 +PACKET eumel decoder DEFINES        (* M. Staubermann, MĂ€rz/April 86 *)
                                      (* 1.8.0 861201 *) 
                                      (* 1.8.2 880726 *)
         lbase , 
 @@ -1212,8 +1212,8 @@ analyze key :  {e}  CASE 101 : echo := NOT echo  (* Bildschirmausgabe zus. *)
  {s}  CASE 115 : storage (size,used) ; out(""13""5"System-Storage: " + text (used) + "  ") 
  {m}  CASE 109 : out (""13""5"Modulnr: " + text (mod nr-1) + "  ") 
 -{Q,W}CASE 87,81:output permitted := TRUE (* Luft nur im Vordergrund *) 
 -{S}  CASE 83  : output permitted := FALSE (* Luft auch im Hintergrund *) 
 +{Q,W}CASE 87,81:output permitted := TRUE (* LĂ€uft nur im Vordergrund *) 
 +{S}  CASE 83  : output permitted := FALSE (* LĂ€uft auch im Hintergrund *) 
  {ESC}CASE 27  : IF incharety <> "" 
                     THEN taste := "" 
                     ELSE list line ("Abbruch mit ESC") 
 @@ -1406,7 +1406,7 @@ process call :      THEN instruction CAT "       " 
      ELSE instruction CAT " "
   FI ;
 - was bool result := FALSE ; (* Wird von params0 ggf berschrieben *) 
 + was bool result := FALSE ; (* Wird von params0 ggf ĂŒberschrieben *) 
   instruction CAT params0 (prim op (opcode).params, word, segment, address, words,
               INT PROC (INT CONST, INT VAR, TEXT VAR) next word) . 
 @@ -1774,7 +1774,7 @@ module address representation :   (* Hier: lowbyte = mod nr, highbyte = mod addr *)
   next module header (data segment, data address, highbyte, lowbyte) ; 
   IF highbyte <> data address 
 -    THEN linear search (* Adresse muá doch zu finden sein *)
 +    THEN linear search (* Adresse muĂ doch zu finden sein *)
   FI ;
   text val := text (lowbyte) ;
   process module nr (lowbyte) .
 @@ -1978,10 +1978,10 @@ copy text from heap :   heap segment := address AND 7 ; 
   address := address AND hex fff8 ; (* In Vielfachen von 8 *)
   laenge := getword (segment, addr ADD 2) AND 255 ; 
 - makeword (laenge, first char) ; (* 16 Bit Laenge ber Wortgrenze *)
 + makeword (laenge, first char) ; (* 16 Bit Laenge ĂŒber Wortgrenze *)
   laenge := min (laenge, 256) ; (* Mehr ist im Listing nicht sinnvoll *) 
   IF getword (heap segment, address) = minus one (* Standard DS *) 
 -    THEN address INCR 3 ; (* Kann nicht ber 8000H Grenze gehen *)
 +    THEN address INCR 3 ; (* Kann nicht ĂŒber 8000H Grenze gehen *)
      ELSE INC address (* Im Frei-Datenraum nur Wort Laenge *)
   FI ;
   result := "" ;
 @@ -2118,7 +2118,7 @@ ENDPROC tracer channel ;  PROC tracer channel (INT CONST c) : 
   IF c < 17 AND c > minus one 
      THEN trace channel := c 
 -    ELSE errorstop ("PROC tracer channel: Kanalnummer unzulssig") 
 +    ELSE errorstop ("PROC tracer channel: Kanalnummer unzulÀssig") 
   FI
  ENDPROC tracer channel ; 
 @@ -2135,7 +2135,7 @@ PROC trace :   put ("      Protokollfilename (falls kein Protokoll RETURN):") ; 
   getline (name) ; 
   prot file (name) ;
 - put ("      Tracekanal (Ausfhrung an diesem Kanal: RETURN):") ; 
 + put ("      Tracekanal (AusfĂŒhrung an diesem Kanal: RETURN):") ; 
   name := "0" ; 
   editget (name) ; 
   line ; 
 @@ -2458,7 +2458,7 @@ valid source :   exists (source file name) . 
  get breakpoint address from user : 
 - put ("Nchste Breakpointaddresse (hex) in Segment 3:") ;
 + put ("NĂ€chste Breakpointaddresse (hex) in Segment 3:") ;
   statement line := hex16 (next instruction address) ;
   editget (statement line) ; 
   user address := integer (statement line) ;
 @@ -2592,7 +2592,7 @@ set first breakpoint behind branch instruction at return address :           next instruction := getword (code segment 3, next instruction address) ;
           c8k := getword (local data segment, lbas + c8k offset) AND 255 ; 
           set first breakpoint behind branch instruction 
 -    ELSE putline ("Trace bei Vorwrtssprung beendet."5"") 
 +    ELSE putline ("Trace bei VorwÀrtssprung beendet."5"") 
   FI . 
  set second breakpoint at branch address of branch instruction at return address : 
 @@ -2651,7 +2651,7 @@ determine return address :   packet base     := HIGH return segment ; (* Wort besteht aus zwei Teilen!*)
   set parameters (lbas, packet base, minus one, c8k) ; 
   stptr := lbas ADD 4 ;
 - DEC return address ; (* auf CALL breakpointhandler (ein Wort zurck) *)
 + DEC return address ; (* auf CALL breakpointhandler (ein Wort zurĂŒck) *)
   IF bit (return segment, 7) (* ISERR *)
     THEN old error line    := error line ; 
          old error code    := error code ; 
 @@ -2738,7 +2738,7 @@ set breakpoint behind previous call :                     lbas + return address offset) ; 
   IF return segment = code segment 3 
      THEN set breakpoint (breakpoint nr, return address) 
 -    ELSE putline ("Trace bei Rcksprung beendet."5"") 
 +    ELSE putline ("Trace bei RĂŒcksprung beendet."5"") 
   FI . 
  next free breakpoint : 
 @@ -2860,7 +2860,7 @@ determine module name and module nr :               ELSE result := subtext (result, 1, pos (result, "-->")-2)
            FI ;
   FI ;
 - address := start address . (* Rcksetzen auf ersten param push *)
 + address := start address . (* RĂŒcksetzen auf ersten param push *)
  collect actual parameters :
   IF symbol <> "(" 
 @@ -2898,7 +2898,7 @@ collect actual parameters :                    result CAT " " ; 
                    result CAT symbol ; (* CONST oder VAR *)
                    result CAT ":" ;
 -                  typetext := ":" + typetext ; (* Fr Pos-Suche *) 
 +                  typetext := ":" + typetext ; (* FĂŒr Pos-Suche *) 
                    nextsymbol (symbol) ; (* Jetzt auf ',' oder ')' *)
            FI ;
            IF (getword (code segment 3, address) AND hex 7f00) = hex 7f00 (* ESC OR LONGA *)
 @@ -3001,8 +3001,8 @@ ENDOP HIGH ;  PROC fix local base : 
   (* Kein direkter EXTERNAL-Aufruf, da bei 'CALL' lbas auf Stack gelegt wird*)
 - REP UNTIL incharety = "" PER ; (* Damit pause ausgefhrt wird *)
 - internal pause (0)             (* ^ War Grund fr 'falsche Returnaddresse'*)
 + REP UNTIL incharety = "" PER ; (* Damit pause ausgefĂŒhrt wird *)
 + internal pause (0)             (* ^ War Grund fĂŒr 'falsche Returnaddresse'*)
  ENDPROC fix local base ; 
 @@ -3087,7 +3087,7 @@ PROC set breakpoint :   INT VAR i ;
   handlers module nr (module number (PROC breakpointhandler)) ; 
   auto trace := FALSE ;
 - source lines neu := TRUE ; (* Zum Lschen *) 
 + source lines neu := TRUE ; (* Zum Löschen *) 
   source file ("") ; 
   prot file ("") ;
   actual line number := minus one ;
  | 
