*****************************************************************
*                                                               *
*                            L A R A                            *
*                                                               *
*                        A N L E I T U N G                      *
*                                                               *
*                                                               *
*  Programm:           LARA                                     *
*  Funktion:           Disassembler und Debugger                *
*  Autor:              Jèrgen Weber                             *
*                      Wiesentalstr. 1                          *
*                      7170 Schwébisch Hall                     *
*  benùtigte                                                    *
*  Hardware:           Schneider (Amstrad) CPC 6128             *
*                      oder CPC 464/664 mit dk'tronics          *
*                      Speicherweiterung                        *
*                                                               *
*                      freigegeben als                          *
*                      Public Domain Programm                   *
*                      durch den Autor                          *
*                      nur fèr nichtkommerziellen Einsatz       *
*                                                               *
*****************************************************************


Letzte [nderung der Dokumentation: 1. Juli 1989

LARA ist ein Werkzeug, mit dem Sie Maschinenprogramme untersuchen 
und testen kùnnen. Zusétzlich lé~t es sich als kleiner Disketten
monitor verwenden. 
Dabei stehen viele Sonderfunktionen zur Verfègung, die durch 
Einbuchstabenkommandos bedient werden. Dadurch lé~t sich mit 
etwas ]bung sehr schnell arbeiten.
Wenn Sie unter CP/M schon einmal mit DDT gearbeitet haben, wird 
Ihnen die Bedienung von LARA keine Probleme stellen. Die Befehle 
sind entsprechend zu denen von DDT aufgebaut, jedoch stellt LARA 
viel mehr Befehle zur Verfègung.
Das Besondere an LARA ist jedoch, da~ es selbst in der 2. Spei
cherbank des CPC 6128 liegt. Selbstversténdlich léuft LARA auch 
auf einem CPC 464 oder 664 mit einer Speichererweiterung von 
Dk'tronics. Tatséchlich habe ich dieses Programm auf einem CPC 464 
entwickelt.


Dadurch da~ LARA in der 2. Speicherbank liegt, haben Sie zwei 
gro~e Vorteile:

Sie kùnnen einmal die normale erste Speicherbank ganz mit Maschi
nenprogrammen belegen, um sie zu untersuchen. Dadurch ist es 
mùglich, mit LARA so zu arbeiten, als ob Sie einen Debugger in 
einem Rom hétten. Sie kùnnen das gesamte Ram benètzen; eine 
Ausnahme bilden nur die 23 Bytes von &BAE9-&BAFF, die von einem 
kleinen Bankmanager belegt werden. 
Dieser Speicherbereich ist ein normalerweise unbenutzter Bereich 
im Betriebssystemram. Es dèrfte hier also bei den allerwenigsten 
untersuchten Programmen Probleme geben.


Au~er diesen wenigen Bytes benùtigt LARA nichts mehr von der 
Rambank 0. Wenn fèr Betriebssystemzugriffe Buffer im Ram benùtigt 
wird, z.B. fèr Kassettenroutinen, wird dazu der Bereich ab A000 
benutzt. Dessen Inhalt wird aber zuvor in den 2. 64K 
abgespeichert und nach Ausfèhrung der Betriebssystemroutinen 
restauriert.

Und noch ein zweiter wichtiger Vorteil: bei der Untersuchung und 
dem Austesten von Maschinenprogrammen kommt es héufiger vor, da~ 
der Computer abstèrzt, also da~ die Einschaltmeldung auftaucht. 
Dabei wird die 2. Speicherbank NICHT gelùscht. Sie kùnnen nach 
einem Reset LARA mit OUT&7F00,&C1:CALL&C000 sofort wieder starten.
Fèr alle spéteren Starts ist die Voraussetzung, da~ im obersten 
16K Block der 2. 64K nichts veréndert wurde!
Es ist sogar mùglich, den kompletten Inhalt der ersten 
Speicherbank mit Ausnahme des Bildschirms in der zweiten Bank 
abzuspeichern und ihn nach einem eventuellen Absturz und Neustart 
von Lara wiederzuholen.

LARA stellt einen eingebauten Editor zur Verfègung. So kùnnen Sie 
mit LARA vùllig unabhéngig von Basic arbeiten. 
Sie kùnnen von LARA aus Programme lesen und schreiben, von Diskette 
Sektoren lesen und schreiben, RSX-Befehle aufrufen und vieles 
mehr.


WICHTIG: 

Wenn Sie einen falschen Befehl eingegeben haben, Sie einen an
deren Bedienungsfehler gemacht haben oder wenn ein Ausfèhrungs
fehler Ihres Befehles auftrat (z.B. Abbruch eines Disketten
kommandos mit <C>ancel), gibt LARA eine Fehlermeldung aus, bricht 
die Befehlsausfèhrung ab und erwartet eine neue Eingabe.
Bei der Ausgabe von Zeichen an den Drucker versucht LARA solange 
sein Glèck, bis der Drucker die Zeichen erfolgreich empfangen 
hat. Da LARA vor jedem Einschalten des Druckers durch CTRL-P oder 
den N Befehl testet, ob er auch wirklich ON LINE ist, sollte der 
Drucker die Zeichen nach einer gewissen Zeit auch annehmen.
Falls Sie den Drucker aber wéhrend des Druckens ausschalten kann 
dies aber zu einer Endlosschleife fèhren. Wenn LARA also eine 
léngere Pause macht, ist es nicht etwa abgestèrzt, sondern wartet 
auf den Drucker. Dieses kùnnen sie aber durch Drècken von ESC 
beenden. LARA gibt dann aus, da~ der Drucker OFF LINE ist, 
schaltet den Drucker ab und geht in den Editiermodus.

Start von LARA:

LARA besteht aus zwei Programmteilen: LARA.BAS und LARA.BIN.
LARA.BAS ist der Lader fèr LARA.BIN; mit ihm wird LARA gestartet. 
Dabei mu~ aber der Computer im Einschaltzustand sein. Wenn Sie 
schon ein Programm im Speicher haben, kùnnen Sie LARA.BIN auch 
direkt starten. Dabei bleiben das vorherige Programm und 
Basicvariablen und -systemvariablen erhalten. Allerdings wird der 
Speicherbereich von &8000 bis &A000 èberschrieben.


*****************************************************************
*                                                               *
*                            EDITOR                             *
*                                                               *
*****************************************************************


Der Editor ist darauf angelegt, da~ Sie Ihre Befehle schnell 
eingeben kùnnen. 
Nach dem Start schaltet LARA auf Bildschirmmode 2 um, wobei der 
Bildschirm gelùscht wird. Dies geschieht nicht, falls vorher 
schon Mode 2 eingeschaltet war. Der alte Bildschirminhalt bleibt 
dann erhalten.
Der Editor meldet sich dann mit einem Bindestrich. Dahinter zeigt 
der Cursor an, da~ Sie Ihre Befehle eingeben kùnnen.
LARA akzeptiert grundsétzlich nur Zahleneingaben in Hexadezimal
darstellung ohne Typkennzeichen (z.B. DA000,A500).
Eine Eingabezeile kann bis zu 70 Zeichen lang sein.
Zu Beginn jeder Eingabe wird automatisch der CAPS LOCK Zustand 
eingeschaltet, Sie kùnnen also gleich Gro~buchstaben eingeben. 
Wenn Sie aber Kleinbuchstaben eingeben wollen, die LARA natèrlich 
bei allen Befehlen auch akzeptiert, drècken Sie einfach die CAPS 
LOCK Taste.
Zur Eingabe kùnnen Sie wie in Basic den COPY-Cursor benutzen.
Neben den geschifteten Cursortasten und der COPY-Taste haben noch 
folgende Tasten(kombinationen) eine besondere Bedeutung:


ENTER              beendet die Eingabe und beginnt deren 
                   Interpretierung.

ESC                bricht die Eingabe ab, ohne da~ das bisher 
                   eingegebene interpretiert wird, und erwartet 
                   eine neue Eingabe.

DEL                lùscht das letzte eingegebene Zeichen. Wenn 
                   der Drucker angeschaltet ist, wird der Druck
                   kopf ein Zeichen zurèckgefèhrt. Das néchste 
                   Zeichen wird dann èber dem vorigen gedruckt.

CTRL-X             lùscht die ganze bisher eingegebene Zeile.

CTRL-R             wiederholt die vorherige Editierzeile. Die 
                   letzte Zeile wird wieder angezeigt und der 
                   Cursor steht hinter dem letzten Zeichen. Nun 
                   kann die Zeile durch ENTER abgeschlossen oder 
                   erweitert werden. Diese Funktion arbeitet nur, 
                   wenn vor CTRL-R noch nichts anderes eingegeben 
                   wurde.

CTRL-P             Durch Drècken von <CTRL-P> wird der Drucker 
                   angeschaltet. Ist der Drucker ausgeschaltet 
                   oder nicht empfangsbereit, gibt LARA ein Feh
                   lerzeichen aus und ignoriert den Befehl. 
                   Sobald der Drucker angeschaltet ist, wird 
                   alles, das auf dem Schirm ausgegeben wird, 
                   auch auf dem Drucker ausgedruckt. Ein zweites 
                   <CTRL-P> schaltet den Drucker wieder ab. 
                   Auf diese Methode kann der Drucker èbrigens 
                   immer ein- und ausgeschaltet werden, wenn der 
                   Cursor da ist und Sie zur Eingabe auffordert, 
                   so z.B. auch, wenn Sie eine Ausgabe angehalten 
                   haben und mit einem Tastendruck fortsetzen 
                   sollen.
SHIFT-CTRL-COPY    gibt eine Bildschirmhardcopy auf den Drucker 
                   aus im Textmodus aus, es werden also nur 
                   gèltige Asciizeichen im Bereich 32-126 
                   ausgegeben. Der Ausdruck arbeitet in allen 
                   Schirmmodi. Abbrechen der Hardcopy ist mit
                   ESC mùglich.
                   Mit SHIFT-CTRL-COPY kann immer eine Hardcopy 
                   ausgegeben werden, wenn der Cursor da ist und 
                   Sie zur Eingabe auffordert, so z.B. auch, wenn 
                   Sie eine Ausgabe angehalten haben und mit 
                   einem Tastendruck fortsetzen sollen.

Wenn Sie schon eine relativ lange Zeile eingegeben haben und dann 
bemerken, da~ Sie am Anfang einen Fehler gemacht haben, ist es 
unpraktisch, nochmal alles mit CTRL-X zu lùschen. Es ist dann 
vorteilhafter, mit ESC die Bearbeitung abzubrechen, eine neue 
Eingabe zu beginnen und mit dem Copycursor die verwertbaren Teile 
der alten Zeile zu èbernehmen.


*****************************************************************
*                                                               *
*                         ARBEITSBEFEHLE                        *
*                                                               *
*****************************************************************



KURZFORM:

Die Klammern <> bedeuten, der eingeschlossene Teil ist optional.

?                            Gibt kurze Beschreibung der Befehle

B<base>           (Base)     Bildschirmanfang setzen

C<drive>          (Cat)      Catalog

CR<filespec><,ladeadresse>
                  (Read)     COM-File in Speicher laden

CW<filespec>,anfang,laenge
                  (Write)    COM-File abspeichern

D<anfang><,ende>  (Dump)     Speicherbereich ausdumpen
        
E                 (End)      LARA beenden

Fanfang,ende,byte (Fill)     Speicherbereich fèllen
        
G<start><,brk1><,brk2>                   
                  (Go)      Maschinencode ausfèhren

Hsum1,sum2        (HexComp)  Hexadezimalzahlen berechnen.
H.byte                       Hexadezimalzahlen in Ascii-, Dezimal- 
                             und Binérformat darstellen
H:dezimalzahl                Dezimalzahlen im Hexadezimalformat 
                             darstellen
        
I                 (Init screen)  
                             Bildschirmausgabe initialisieren.

K<confbyte>       (Configuraton) 
                             Ram-/Romkonfiguration 
                             setzen/zeigen

L<anfang><,ende>  (List)     disassemblieren

Manfang,ende,ziel (Move)     Speicherbereich verschieben

N                 (No Screen)
                             leitet Bildschirmausgabe auf Drucker 
                             um

O<offset>         (Offset)   Offset setzen/zeigen

Padresse,text     (Put text) Zeichenkette eingeben

Q<anfang>,<ende>,byte1<,byte2><,byten>
                  (Quest)    Bytefolge im Speicher suchen
QT<s>,<f>,text               String im Speicher suchen

R<filespec><,ladeadresse>
                  (Read)     File in Speicher laden
        

Sadresse          (Store)    Speicherinhalt anzeigen/veréndern

T<schrittzahl>    (Trace)    Einzelschrittabarbeitung mit 
                             Registeranzeige

U<schrittzahl>    (Untrace)  Einzelschrittabarbeitung ohne
                             Registeranzeige

W<filespec>,anfang,laenge<,autostart><,typ>  
                  (Write)    File abspeichern

X<register>                  Prozessorzustand zeigen

YP                (YPut)     1. Speicherbank in 2. kopieren
YG                (YGet)     2. Speicherbank in 1. kopieren

YR,buffer,track,sector
                  (YRead)    Sektor von Diskette lesen
YW,buffer,track,sector
                  (YWrite)   Sektor auf Diskette schreiben

Z<A><adresse>                Unterprogramm ab adresse aufrufen

Irsxcommand<,string1><,string2>
                             RSX-Befehl ausfèhren 


****************************************************************
*                                                              *
*           ARBEITSBEFEHLE ausfèhrlich                         *
*                                                              *
****************************************************************



Die einzelnen Buchstaben bei den Befehlen stehen fèr Hexadezimal
zahlen. Die Klammern <> bedeuten, der eingeschlossene Teil ist 
optional.

?                            Gibt kurze Beschreibung der Befehle
Beispiel: ?

Dieser Befehl gibt eine kurze Beschreibung der Befehle von LARA 
und ihrer Syntax aus.
Die in eckige Klammern <> eingeschlossene Teile (meistens 
Adressen) sind optional, werden sie weggelassen, setzt LARA 
Defaultwerte ein.

B<base>           (Base)     Bildschirmanfang setzen
Beispiel: BL

Mit diesem Befehl kùnnen Sie schnell den Bildschirmspeicher ver
lagern. Im CPC ist ein Bildschirmspeicher von &4000-&7FFF oder 
von &C000-&FFFF mùglich. Normalerweise liegt er ab &C000. Mit 
Eingabe von BL (base low) setzen sie den Bildschirmspeicher an 
die erste Adresse, mit BH (base high) and die zweite. Geben Sie 
nur B ein, wird nur der momentane Bildschirmanfang ausgegeben. 
Beim Wechsel des Bildschirmspeichers bleibt der Schirminhalt 
erhalten.
Ein anderer Bildschirmspeicher ist recht praktisch, wenn Sie z.B. 
ein Maschinenprogramm untersuchen mùchten, das normalerweise den 
Bildschirmspeicher belegt. Sie verlegen dann den Bildschirm
speicher nach &4000 und laden das Programm an seine Adresse. Sie 
kùnnen es nun auch tracen, ohne da~ die Ausgabe der Registerin
halte den Code èberschreibt.



C<drive>          (Cat)      Catalog
Beispiel: CB

Dieser Befehl entspricht dem Basicbefehl CAT. Es wird ein In
haltsverzeichnis der aktuellen Diskette oder Kassette ausgegeben. 
Bei Kassettenbetrieb mèssen sie den Catalog durch ESC abbrechen. 
Bei Diskettenbetrieb kùnnen sie auch CA oder CB eingeben. Dann 
wird der Katalog von Laufwerk A oder B ausgegeben. 
Beim CPC 464 ohne Diskettenlaufwerk bewirkt CA oder CB eine 
Fehlermeldung.


CR<filespec><,ladeadresse>
                  (Read)     COM-File in Speicher laden
Beispiel: CRED.COM,C000

Mit diesem Befehl kùnnen Sie ein COM-File filespec 
an die Adresse s laden. Falls Sie filespec nicht angeben, macht 
das bei Kassettenbetrieb nichts aus und es wird das néchste 
gefundene File geladen, bei Diskettenbetrieb erhalten Sie jedoch 
von Amsdos ein Bad command und zusétzlich noch von LARA eine 
Fehlermeldung. Falls Sie die Ladeadresse s nicht angeben, wird 
das File an die CP/M Standartadresse 100H geladen. 
Nach dem Laden gibt LARA Anfangsadresse und Lénge des Files aus.
BUG: Beim Laden dèrfen keine Floppyfehlermeldungen auftauchen, da 
durch diese LARA èberschrieben wird. Also: nach .. disc missing 
etc. stèrzt LARA hùchstwahrscheinlich ab. Es lohnt sich also, auf 
eine korrekt eingelegte Diskette zu achten.



CW<filespec>,s,l
                  (Write)    COM-File abspeichern
Beispiel: WTEST.COM,100,3FFF

Mit diesem Befehl kùnnen Sie ein COM-File filespec ab der Adresse 
s mit Lénge l abspeichern. Falls Sie filespec nicht angeben, 
macht das bei Kassettenbetrieb nichts aus, bei Diskettenbetrieb 
erhalten Sie jedoch von Amsdos ein Bad command und von LARA eine 
Fehlermeldung. BUG: Beim Speichern dèrfen keine 
Floppyfehlermeldungen auftauchen, da durch diese LARA 
èberschrieben wird. Also: nach .. disc missing etc. stèrzt LARA 
hùchstwahrscheinlich ab. Es lohnt sich also, auf eine korrekt 
eingelegte Diskette mit genègend Speicherplatz zu achten.


D<s><,f>          (Dump)     Speicherbereich ausdumpen
Beispiel: D,A6FF

Dieser Befehl gibt den Speicherinhalt von s bis f aus. Dabei 
steht links die Speicheradresse in 16er-Schritten, in der Mitte 
der Speicherinhalt als Hexbytes und rechts der Speicherinhalt als 
Asciizeichen. Zur Ausgabe im Asciiteil wird zuerst bei allen 
Zeichen das hùchte Bit gelùscht und dann, falls sich ein Ascii
codes <32 ergibt, nur ein Punkt (.) dargestellt. Ist s eine 
"ungerade" Adresse, beginnt die Darstellung entsprechend weiter 
rechts.
Geben Sie keine Startadresse s an, beginnt das Dumpen an der 
Adresse, auf die ein interner Merker zeigt. Normalerweise ist 
dies die Adresse, vor der das letzte Dumpen stoppte. Wenn aber 
der Prozessorzustand ausgegeben wurde (durch das T,G oder X 
Kommando), enthélt dieser Merker den PC. So kùnnen sie gleich 
nachschauen, was die néchsten Traces machen werden.
Geben Sie keine Endadresse an, werden 11 Zeilen ausgegeben.
Sie kùnnen das Dumpen jederzeit durch Drècken der Leertaste 
anhalten und durch einen beliebigen zweiten Tastendruck fort
setzen. Beim Warten auf den zweiten Tastendruck wird der Cursor 
angezeigt. Das bedeutet, Sie kùnnen jetzt auch mit CTRL-P den 
Drucker an- oder ausschalten. CTRL-P gilt nicht als zweiter 
Tastendruck, beendet also nicht die Unterbrechung.
Auch kùnnen Sie jetzt mit SHIFT-CTRL-COPY eine Hardcopy               
ausgegeben. Abbruch der Hardcopy ist mit ESC mùglich.


E                            LARA beenden
Beispiel: E                  

Dieser Befehl beendet den Ablauf von LARA und gibt die Steuerung 
an Basic zurèck. LARA belegt am Schlu~ noch die Taste SHIFT-f9 
mit OUT&7F00,&C1:CALL&C000. Sie mèssen dann nur noch SHIFT-f9 
drècken, um LARA wieder zu starten. Falls Sie auf die brutale Art 
von LARA ausgestiegen sind, sei es durch SHIFT/CTRL/ESC oder 
Absturz eines MC-Programms, mèssen sie die beiden Befehl von Hand 
eingeben. Dabei ist wichtig, da~ Sie sie in einer Zeile eingeben, 
da sonst nach Abarbeitung des ersten Befehls Basic mit seiner 
Readymeldung LARA èberschreiben wèrde, da es durch den OUT-Befehl 
ja in den normalen Speicher eingeblendet wurde.
Ein éhnliches Problem tritt auf, wenn der Computer resetiert 
wird, wenn der Prozessor einen Befehl von LARA innerhalb der 
zweiten Speicherbank abarbeit. Beim CPC 464/664 ist dann beim 
Reset noch das oberste Viertel der dk'tronic-Ramerweiterung in 
den Adressraum eingeblendet und ihr Inhalt wird anstelle des 
Schirmrams gelùscht. Dabei wird dann LARA gelùscht und kann nicht 
wieder gestartet werden. Sie mèssen zudem noch den Computer aus- 
und wieder anschalten oder blind OUT&7F00,&C0 eingeben, um wieder 
die richige Speicherkonfiguration einzuschalten.
Dies tritt jedoch nur selten auf, da der Lùwenanteil der Abar
beitungszeit von LARA fèr Betriebssystemaufrufe benùtigt wird, 
bei denen die normale Speicherbank eingeschaltet wird.


Fs,f,b            (Fill)     Speicherbereich fèllen
Beispiel: FA000,A6FF,E5
Test:     D9FFF,A700
                             
Dieser Befehl fèllt den (Ram) Speicherbereich von Anfang s bis 
Ende f mit Fèllbyte b. b mu~ dabei ein Einbytewert sein.
        

G<s><,b1><,b2>      (Go)     Maschinencode ausfèhren
Beispiel: GA000,A020,0       
                             
Dieser Befehl fèhrt eine Maschinenroutine ab Startadresse s mit 
Unterbrechungspunkten(Breakpoints)  b1 und b2 aus. Dabei erfolgt 
der Aufruf der Routine durch einen FAR CALL. Somit kùnnen Sie 
auch Routinen im Rom aufrufen. Die Rom/Ramkonfiguration ist dabei 
diejenige, die durch den letzten K-Befehl (siehe dort) gesetzt 
wurde. Diese Maschinenroutine wird abgebrochen, sobald der Pro
zessor auf einen Unterbrechungspunkt trifft. LARA hinterlé~t bei 
Aufruf der Adresse auch eine Rècksprungdresse auf dem Stack, so 
da~ ein RETbefehl ebenfalls zu LARA zurèckfèhrt. Die Methode mit 
den Unterbrechungspunkten funktioniert nur bei Code im Ram.
LARA gibt danach den Prozessorzustand (siehe Befehl X) aus.
Ein Unterbrechungspunkt mu~ auf dem ersten Byte eines Z80-Befehls 
sein. LARA setzt dort dann einen RST 10H ein und veréndert das 
Ziel des RST so, da~ es zu LARA zurèckfèhrt. Nach Abarbeitung des 
Befehls G wird das ursprèngliche Ziel des RST 10H wieder herge
stellt.
Seien Sie aber vorsichtig, da~ Sie Ihre Unterbrechungspunkte 
richtig setzen. Der Programmablauf eines Maschinenprogramms ver
zweigt sich normalerweise recht oft, und gemé~ den Murphy'schen 
Gesetzen immer dorthin, wo kein Breakpoint steht. Wenn Sie ein 
Programm in gro~en Schritten abarbeiten lassen und immer auf den 
jeweils néchsten Sprungbefehl einen Unterbrechungspunkt setzen, 
kùnnen Sie relativ gefahrlos ein Programm untersuchen. Wenn Sie 
ganz sicher gehen wollen, mèssen Sie dann aber tracen (siehe T 
Befehl).


        
Ha,b              (HexComp)  Hexadezimalzahlen berechnen.
Beispiel: HFFFF,1

H.a      Hexadezimalzahlen in Ascii-, Dezimal- 
                             und Binérformat darstellen
Beispiel: H.3F

H:d                          Dezimalzahlen im Hexadezimalformat 
                             darstellen
Beispiel: H.65535
        
Sicher geht es Ihnen wie mir, da~ Sie Summe und Differenz zweier 
Hexadezimalzahlen nicht im Kopf ausrechnen kùnnen. Aber dafèr 
gibt es den H Befehl. Er gibt Ihnen die Summe und die Differenz 
der beiden Hexadezimalzahlen aus, jeweils wieder in Hexadezimal
darstellung.
Zu dem H Befehl gibt es noch zwei Abwandlungen. Wenn Sie direkt 
hinter dem H einen Punkt eingeben, wird die eingegebene Hexzahl 
in Ascii-, Dezimal- und Binérdarstellung ausgegeben. Dabei ist zu 
beachten, da~ bei der Asciidarstellung immer das untere Byte der 
eingegebenen Zahl benutzt wird. Wenn dieses Lowbyte kleiner als 
32 ist, wird vor dem Zeichen der Pfeil hoch (^) ausgegeben und 
danach erste das eigentliche Asciizeichen, zu dem noch 64 addiert 
wird. Wenn Sie z.B. H.F03 eingeben, wird als Asciizeichen ^C 
ausgegeben. Die Dezimalzahl wird als unsigned Integer ausgegeben, 
d.h. bei H.FFFF ist das Ergebnis 65535 und NICHT -1 .
Die zweite Abwandlung ist, da~ sie hinter dem H einen Doppelpunkt 
eingeben. Dahinter kùnnen sie dann eine Dezimalzahl eingeben, die 
ins Hexadezimalformat umgewandelt wird. Dabei kùnnen Sie entweder 
eine Dezimalzahl eingeben zwischen 0 und 65535, die eine Hexade
zimalzahl zwischen 0000 und FFFF ergibt, oder eine Dezimalzahl 
zwischen minus 32768 und minus 1, die eine Hexadezimalzahl 
zwischen 8000 und FFFF ergibt. Ein ]berlauf ergibt eine 
Fehlermeldung.



I                 (Init screen)  
                             Bildschirmausgabe initialisieren.

Wenn Sie aus irgendwelchen Grènden èberhaupt nichts mehr auf dem 
Bildschirm erkennen kùnnen, vielleicht weil ein gerade ausgefèhr
tes Programm die Stiftfarbe auf die Hintergrundfarbe setzte, 
geben Sie einfach blind I und danach ENTER ein. Der Schirm wird 
gelùscht, auf Mode 2 gesetzt und die Farben wie nach dem Ein
schalten gesetzt. 
Dieser Befehl empfielt sich auch, wenn Sie nur den Bildschirm 
lùschen wollen.



K<c>           (Configuraton) 
                             Ram-/Romkonfiguration                              
                             setzen/zeigen
Beispiel: K7

Dieser Befehl setzt ein neues Konfigurationsbyte und gibt sowohl 
altes als auch neues aus. Falls Sie nur K eingeben, wird nur das 
alte ausgeben und nicht veréndert.
Das Konfigurationsbyte wirkt sich auf die Befehle D,L,Q,M und G 
aus.
Der Schneider CPC hat bekanntlich mindestens 64K Ram und 32K Rom. 
Da der Z80 nur 64K adressieren kann, wird immer nur ein Teil des 
Gesamtspeichers in den Adressraum eingeblendet. LARA benutzt 
daher ein Konfigurationsbyte, um zu entscheiden, aus welchem 
Speicherbereich gelesen wird. Dieses Konfigurationsbyte ent
spricht dabei dem, das das Betriebssystem nach einem FAR CALL 
verlangt. Schlie~lich tétigt LARA seine Lesezugriffe und Codeauf
rufe durch FAR CALLs.
Das Konfigurationsbyte wird folgenderma~en interpretiert:

00-FB     das jeweilige Rom dieser Nummer im Bereich von C000 bis           
          FFFF selektieren und einschalten. Das untere Rom bleibt           
          ausgeschaltet. Die 7 wéhlt das Floppyrom.
FC        Oberes und unteres Rom sind angeschaltet.
FD        Oberes Rom an, unteres aus
FE        Oberes Rom aus, unteres an
FF        Im ganzen Adressraum ist das Ram (1. 64K) eingeschaltet.

Bei den Codes FC-FE wird von C000 bis FFFF das Zusatzrom einge
blendet, das beim letzten Aufruf von KL ROM SELECT als oberes Rom 
ausgewéhlt wurde. Dies ist normalerweise das Basicrom(0).
Nach Start von LARA ist das Konfigurationsbyte FF.



L<s><,f>          (List)     disassemblieren
Beispiel: L,BAFF

Dieser Befehl gibt einen Speicherbereich in Z80 Mnemoniks aus. 
Dabei steht ganz links die Speicheradresse, danach kommen der 
Maschinencode in Hexadezimaldarstellung und die Mnemoniks.
Geben Sie keine Startadresse s an, beginnt das Disassemblieren an 
der Adresse, auf die ein interner Merker zeigt. Normalerweise ist 
dies die Adresse, vor der das letzte Disassemblieren stoppte. 
Wenn aber der Prozessorzustand ausgegeben wurde (durch das T,G 
oder X Kommando), enthélt dieser Merker den PC. So kùnnen sie 
gleich nachschauen, was die néchsten Traces machen werden. Geben 
Sie keine Endadresse f an, werden nur 11 Zeilen ausgegeben.
Sie kùnnen das Disassemblieren jederzeit durch Drècken der Leer
taste anhalten und durch einen beliebigen zweiten Tastendruck 
fortsetzen. Beim Warten auf den zweiten Tastendruck wird der 
Cursor angezeigt. Das bedeutet, Sie kùnnen jetzt auch mit CTRL-P 
den Drucker an- oder ausschalten. CTRL-P gilt nicht als zweiter 
Tastendruck, beendet also nicht die Unterbrechung.
Auch kùnnen Sie jetzt mit SHIFT-CTRL-COPY eine Hardcopy               
ausgegeben. Abbruch der Hardcopy ist mit ESC mùglich.
Wird ein unzuléssiger OP-Code gefunden, gibt LARA '??=' aus und 
und versucht es ein Byte weiter nochmal. LARA erkennt keine 
undokumentierte Z80 Codes. Es gibt aber deutliche Anzeichen dafèr.
Ein undokumentierte Code tritt auf, wenn vor dem '??=' ein DD 
oder FD steht und in dem nachfolgenden Befehl EINMAL H oder L 
(aber nur eines von beiden) auftaucht.
Wenn also z.B. folgende Zeilen

DD        ??=
7D        LD A,L 
FD        ??=
AC        XOR H

ausgegeben werden, bedeutet das, da~ A mit dem Lowbyte von IX 
geladen wird und dann mit dem Highbyte von IY XOR verknèpft wird.



Ms,f,d            (Move)     Speicherbereich verschieben
Beispiel: MA000,A020,9FFF

Dieser Befehl kopiert den Speicherinhalt von s bis f ans Ziel d. 
Dabei wird intelligentes Kopieren angewandt. Intelligent hei~t, 
da~ das ganze auch funktioniert, wenn sich Quellbereich und 
Zielbereich èberlappen (wie im Beispiel). Der Quellbereich ist 
dabei in der durch den K Befehl gewéhlten Speicherkonfiguration. 
Wenn das obere Rom dadurch angeschaltet ist, kùnnen Sie mit 
MC000,FFFF,C000 das Rom ins Ram kopieren.



N                 (No Screen)
                             Bildschirmausgabe auf Drucker 
                             umleiten

Durch diesen Befehl werden alle Bildschirmausgaben auf den Druc
ker umgelenkt, so da~ Sie ein Maschinenprogramm vùllig ungestùrt 
von den Bildschirmmeldungen LARAs untersuchen kùnnen.
Ist der Drucker nicht ON LINE, kommt eine Fehlermeldung und der 
Befehl wird ignoriert.
Ein zweites N schaltet den Bildschirm wieder an.

O<a>              (Offset)   Offset setzen/zeigen
Beispiel: 04000

Durch diesen Befehl kùnnen Sie einen Offset setzen. Geben Sie nur 
O ein, wird nur der alte Offset ausgegeben.
Der Offset ist eine Distanz, die zu allen Adressenausgaben bei 
den Befehlen D,L,Q und S addiert wird. Dies wird nùtig, wenn Sie 
ein Programm nicht an seine wirkliche Adresse laden kùnnen.
Beispiel: Sie haben ein Programm, das fèr den Speicherbereich ab 
8000 vorgesehen ist, nach 4000 geladen. Geben Sie dann O4000 ein 
und Sie kùnnen dann mit L8000 das Programm so disassemblieren, 
wie wenn es tatséchlich ab 8000 im Speicher wére.
Der Offset berechnet sich als LADEADRESSE minus WIRKLICHE ADRESSE. 
Benutzen Sie fèr diese Berechnung am besten den H Befehl, der 
Offset ist der zweite ausgegebene Wert.
Da Sie mit LARA auch den Bildschirmspeicher verlegen kùnnen, 
empfiehlt sich der Offsetbefehl eigentlich nur, wenn ein Programm 
den RST-Bereich oder die Betriebssystemvektoren èberschreiben 
wèrde.



Pa,s              (Put text) Zeichenkette eingeben
Beispiel: PA000,Dies ist ein Text

Mit diesem Befehl wird der String s ab Adresse a im Ram abgelegt.


Q<s>,<f>,b<,b2><,bn>
                  (Quest)    Bytefolge im Speicher suchen
Beispiel: Q3E8,2700,21,00,C0
QT<s>,<f>,text               String im Speicher suchen
Beispiel: Q,,Wo ist dieser Text?

Mit diesem Befehl kùnnen Sie im Speicherbereich von s bis f nach 
der Bytefolge b2...bn suchen. Wenn sie s oder f nicht angeben, 
wird dafèr standartmé~ig 0 bzw. FFFF genommen, also der ganze 
Speicher. Die Anzahl der Bytes ist nur durch die maximale Be
fehlszeichenlénge des Editors begrenzt. 
LARA gibt dann alle Adressen aus, ab denen die Bytefolge gefunden 
wurde.
Ein Fragezeichen im Textmodus oder ein 3F Byte im Hexmodus ist 
stellvertretend fèr ein beliebiges Zeichen (Wildcard), z.B. 
QT,,LA?A. Steht das Fragezeichen (bzw 3F) aber am Anfang des zu 
suchenden Strings (bzw. Bytefolge), wird es nicht als Wildcard 
verwendet.
Sie kùnnen das Suchen jederzeit durch Drècken der Leertaste 
anhalten und durch einen beliebigen zweiten Tastendruck fort
setzen. Beim Warten auf den zweiten Tastendruck wird der Cursor 
angezeigt. Das bedeutet, Sie kùnnen jetzt auch mit CTRL-P den 
Drucker an- oder ausschalten. CTRL-P gilt nicht als zweiter 
Tastendruck, beendet also nicht die Unterbrechung.
Auch kùnnen Sie jetzt mit SHIFT-CTRL-COPY eine Hardcopy               
ausgegeben. Abbruch der Hardcopy ist mit ESC mùglich.
Das obige Beispiel sucht von 3E8 bis 2700 nach dem Befehl
LD HL,C000.
Wenn Sie bei einem Spiel nach den Befehlen DEC (HL) oder DEC A 
mit Code 35 bzw 3D suchen, kùnnen Sie vielleicht einen 
Unsterblichkeitspoke finden!



R<filespec><,s>   (Read)     File in Speicher laden
Beispiel: RBEISPIEL.BAS,170

Mit diesem Befehl kùnnen Sie ein File filespec (kein Asciifile!) 
an die Adresse s laden. Falls Sie filespec nicht angeben, macht 
das bei Kassettenbetrieb nichts aus und es wird das néchste 
gefundene File geladen, bei Diskettenbetrieb erhalten Sie jedoch 
von Amsdos ein Bad command und zusétzlich noch von LARA eine 
Fehlermeldung. Falls Sie die Ladeadresse s nicht angeben, wird 
das File an die Adresse geladen, von der aus es geschrieben 
wurde. Bei Basicprogrammen ist dies normalerweise 0170.
Nach dem Laden gibt LARA Typ, Anfangsadresse, Lénge und Auto
startadresse des Programmes aus.
Als Eingabepuffer verwendet LARA den Bildschirmspeicher,egal wo 
er gerade ist, um andere Informationen im Ram nicht zu èber
schreiben (LARA ist ja schlie~lich nicht zur Bearbeitung von 
Bildern gedacht). Der Buffer wird jedoch sowieso nur bei Kasset
tenbetrieb benùtigt; dann aber dèrfen Sie merkwèrdige Streifen 
auf dem Schirm nicht stùren.


        
Sa                (Store)    Speicherinhalt anzeigen/veréndern
Beispiel: SA000

Dieser Befehl entspricht PEEK/POKE in Basic.
Links wird die Speicheradresse, rechts daneben ihr Inhalt in 
Ascii- und Hexadezimaldarstellung. Sie kùnnen jetzt durch Drècken 
von ENTER den alten Inhalt beibehalten oder ein neues Byte einge
ben. Dabei kùnnen sie entweder ein Hexbyte oder einen Apostroph 
(') und dahinter ein Asciizeichen, dessen Wert dann im Speicher 
abgelegt wird (jedoch keine Kleinbuchstaben), eingeben.
Die Ausgabe des Speicherinhalts erfolgt je nach Konfigurations
byte aus Ram oder Rom, ein neues Byte wird aber natèrlich ins Ram 
geschrieben. Hier ist also Vorsicht geboten!
Das ganze wird so lange wiederholt, bis Sie ESC drècken oder 
einen Punkt eingeben. 



T<s>              (Trace)    Einzelschrittabarbeitung mit 
Beispiel: T5                 Registeranzeige

Dieser Befehl dient dazu, ein Maschinenprogramm schrittweise 
abzuarbeiten. Dabei wird nach jeder Befehlsausfèhrung der Pro
zessorzustand ausgeben. Das Tracen beginnt bei dem Wert, der in 
PC enthalten ist (Sie kùnnen ihn mit dem X-Kommando veréndern). 
Geben Sie keinen Parameter s an, wird nur ein Befehl ausgefèhrt, 
sonst s Befehle. Ist s=0, wird ewig getraced.
Sie kùnnen das Tracen jederzeit durch Drècken der Leertaste 
anhalten und durch einen beliebigen zweiten Tastendruck fort
setzen. Beim Warten auf den zweiten Tastendruck wird der Cursor 
angezeigt. Das bedeutet, Sie kùnnen jetzt auch mit CTRL-P den 
Drucker an- oder ausschalten. CTRL-P gilt nicht als zweiter 
Tastendruck, beendet also nicht die Unterbrechung.
Auch kùnnen Sie jetzt mit SHIFT-CTRL-COPY eine Hardcopy               
ausgegeben. Abbruch der Hardcopy ist mit ESC mùglich.
Das Tracen funktioniert NUR bei Code, der im Ram ist. Achten Sie 
also darauf, da~ Konfiguration FF gesetzt ist (siehe K Befehl)!
Die einzelnen Befehle werden vom Prozessor in Echtzeit abgearbei
tet und nicht simuliert, bei Zugriffen auf die Zweitregister kann 
es also zum Absturz kommen. Die RSTbefehlserweiterungen des CPC 
werden von LARA korrekt verarbeitet. Ein Betriebssystemauf wird 
wie ein einzelner Z80-Befehl behandelt und in Echtzeit 
abgearbeitet.
Meiner Erfahrung nach ist es aber effizienter und schneller als 
das Tracen, ein Programm zuerst zu disassemblieren und dann 
abschnittweise mit Unterbrechungspunkten auf Verzweigungen 
(Sprungbefehlen) abarbeiten zu lassen (siehe G Befehl).



U<s>              (Untrace)  Einzelschrittabarbeitung ohne
Beispiel: U0                 Registeranzeige

Dieser Befehl bewirkt genau das gleiche wie der T Befehl, mit dem 
Unterschied, da~ LARA den Prozessorzustand nicht ausgibt und 
somit keine Bildschirmausgaben macht. Dadurch kùnnen Sie auch die 
Bildschirmausgabe eines Programms untersuchen. Sie mèssen aber 
beachten, da~ ein Programm in Echtzeitausfèhrung ein paar tausend 
Mal schneller abléuft, als wenn es durch den U Befehl ausgefèhrt 
wird. Es ist aber auch sehr interessant aus, wenn man sehen kann, 
wie ein Spiel seine Sprites pixelweise aufbaut.



W<filespec>,s,l<,e><,t>  
                  (Write)    File abspeichern
Beispiel: WTEST.BAS,170,200,,0

Mit diesem Befehl kùnnen Sie ein File filespec (kein Asciifile!) 
ab der Adresse s mit Lénge l, Autostartadresse e und Filetyp t 
abspeichern. Falls Sie filespec nicht angeben, macht das bei 
Kassettenbetrieb nichts aus, bei Diskettenbetrieb erhalten Sie 
jedoch von Amsdos ein Bad command und von LARA eine 
Fehlermeldung.
Die Autostartadresse e mu~ nicht angegeben werden. Falls Sie 
keinen Filetyp t angeben, wird das File mit Filetyp 2 (binér) 
abgespeichert. Bei Basicprogrammen mèssen Sie Adresse 170 und 
Filetyp 0 (bzw. 1 fèr Basic protected) angeben. Mit dem R und W 
Befehl ist es auch mùglich, ein Basicprogramm zu entschètzen. Sie 
laden es einfach mit R in den Speicher und speichern es mit W, 
wobei Sie die durch R ausgegebenen Adressen benètzen mèssen, 
wieder ab. Sie mèssen dabei aber den Filetyp 0 (ungeschètzt) 
angeben.
Als Ausgabepuffer verwendet LARA den Bildschirmspeicher,egal wo 
er gerade ist, um andere Informationen im Ram nicht zu èber
schreiben (LARA ist ja schlie~lich nicht zur Bearbeitung von 
Bildern gedacht). Der Buffer wird jedoch sowieso nur bei Kasset
tenbetrieb benùtigt; dann aber dèrfen Sie merkwèrdige Streifen 
auf dem Schirm nicht stùren.
Dadurch, da~ Sie beim Speichern auch noch einen Filetyp angeben 
kùnnen, bieten sich noch einige interessante Mùglichkeiten. So 
kùnnen Sie durch Anwendung eines ausgefallenen Filetyps einen 
gewissen Kopierschutz realisieren. 
Eine andere Mùglichkeit besteht darin, da~ Sie Basic und 
Maschinencode in EINEM File abspeichern kùnnen. Sie laden dazu 
(natèrlich von LARA aus) den Maschinencode ans Ende des Basicpro
grammes. Dieses mèssen Sie durch den D Befehl selbst herausfin
den, das Ende ist erreicht, wenn nur noch Nullbytes auftauchen. 
Dann speichern Sie das ganze einfach mit dem W Befehl ab: Anfang 
ist 0170, Lénge ist Lénge Basicprogramm plus Lénge Mc, die Auto
startadresse braucht nicht angegeben werden und der Filetyp ist 
0, oder 1, wenn Sie es als geschètztes Basicprogramm abspeichern 
wollen. Bei jedem Laden des Basicprogrammes ist der Maschinenteil 
sofort vorhanden, und zwar ohne Nachladen oder EinPOKEN.


X<r>                         Prozessorzustand zeigen
Beispiel: XX

Dieser Befehl dient dazu, den Prozessorzustand, der bei den G, T
und U Befehlen verwendet wird, anzuzeigen oder zu veréndern.
Nach dem Start von LARA haben die Register die Werte, die sie 
auch nach Ausfèhrung von MC START PROGRAM enthalten. Einige 
Maschinenprogramme verlangen vor ihrem Start eine definierte 
Registerbelegung.
Der Stackpointer zeigt auf einen Bereich, wo Platz fèr einen 
Stack zur Verfègung steht. Der néchste RET fèhrt dabei wieder zu 
LARA zurèck; sie kùnnen also eine Routine, die mit einem Return 
beendet wird, direkt aufrufen. Dies gilt fèr fast alle Betriebs
systemroutinen.Der Befehlszéhler PC zeigt zuerst auf 000F. Dort 
steht ein RET, soda~ eine Eingabe des G Befehls ohne Argumente 
ohne schédliche Auswirkungen bleibt.
Geben Sie nur X ein, wird der Inhalt der Z80 Register, die Flags, 
der Inhalt der Bytes, auf die der Stackpointer zeigt, und der 
Befehl, auf den der Befehlszéhler (PC) zeigt und der beim 
néchsten G,T oder U Befehl ausgefèhrt wird, gezeigt.
Beim Ausgeben der Flags wird entweder dessen Name oder ein Strich 
ausgegeben. Der Name bedeutet, da~ das Flag gesetzt ist, der 
Strich, da~ das Flag 0 its.
Sie kùnnen aber auch hinter dem X noch einen zweiten Buchstaben 
eingeben, der ein Z80 Doppelregister bezeichnet. Es besteht 
allerdings keine Mùglichkeit, auf den zweiten Registersatz des 
Z80 zuzugreifen, da dieser vom Betriebssystem reserviert ist.
Folgende Buchstaben stehen fèr die entsprechenden Doppelregister:

A    fèr AF, ein 16 Bit Wort aus Akku und Flaggen, A ist Highbyte
B    fèr das Registerpaar BC
D    fèr das Registerpaar DE
H    fèr das Registerpaar HL
X    fèr das Registerpaar IX
Y    fèr das Registerpaar IX
S    fèr den Stackpointer SP
P    fèr den Befehlszéhler PC
I    fèr IR, ein 16 Bit Wort aus Interuptregister und 
     Memoryrefreshregister, dabei ist I Highbyte 

Nach Eingabe von z.B. XH wird der alte Inhalt des HL Doppelre
gisters ausgegeben. Sie kùnnen nun entweder einen neuen Inhalt 
eingeben oder nur durch Drècken von ENTER den alten beibehalten.
Die Verénderung der Flags ist nur èber die komplette Verénderung 
des Flagregisters mùglich. 

Die Flags haben folgende Stellung innerhalb des Register:


Bit     7    6    5    4    3    2    1    0
-----------------------------------------------
Flag    S    Z    -    H    -    P/V  N    C
-----------------------------------------------
true    M    Z                   PO        C
-----------------------------------------------
false   P    NZ                  PE        NC


Die Abkèrzungen in der Zeile Flag haben folgende Bedeutung:

S    Sign (Vorzeichenflag)
Z    Zero (Nullflag)
H    Halbèbertrag (nur fèr den DAA Befehl von Bedeutung)
P/V  Paritéts/]berlaufflag
N    Additions/Subtraktionsflag, N=1 wenn letzte Operation eine 
     Subtraktion war
C    Carryflag (]bertragsflag)

Wenn ein Flag gesetzt ist (=1), wird der bedingter Sprungbefehl, 
dessen Bedingung in der 'true' Spalte steht, z.B. CALL PO, ausge
fèhrt; wenn das Flag 0 ist, wird der Sprungbefehl mit der Be
dingung in der 'false' Spalte ausgefèhrt, z.B. JP NC.


YG                (YGet)     Speicher holen
YP                (YPut)     Speicher sichern
Beispiel: YP

YP kopiert den kompletten Speicher mit Ausnahme der 16K 
Bildschirmspeicher in die zweite Speicherbank. Lassen Sie diesen 
Befehl ab und zu ausfèhren, denn nach einem etwaigen Absturz 
kùnnen Sie sich dann mit YG das  in der zweiten Speicherbank 
hoffentlich (falls Sie den Computer inzwischen noch ausgeschaltet 
haben) noch vorhandene Backup wiederholen. Sie kùnnen ja Lara 
jederzeit wieder neu starten! Da das komplette Betriebssystemram 
gesichert wird, kùnnen werden dabei auch Voreinstellungen wie 
Farben, Blinkzeiten oder Laufwerkzustand des Floppymotors 
restauriert. Da der Bildschirm beibehalten wird, sort Lara dafèr, 
da~ auch Modus und Cursorposition beibehalten wird. Falls jedoch 
zum Zeitpunkt des letzten YP ein anderer Modus war, wird der 
Schirm gelùscht, damit das Betriebssystem mit der 
Schirmdarstellung nicht durcheinanderkommt. Der Grund dafèr, da~ 
der Schirm nicht gesichert wird, liegt èbrigens darin, da~ in der 
zweiten Speicherbank ja 16K fèr Lara reserviert sind, fèr den 
Schirm bleibt also kein Platz mehr.
YP funktioniert nur, wenn der Bildschirmspeicher bei &C000 liegt. 
Verwenden Sie YG wenn er ab &4000 liegt, liegt er nach Ausfèhrung 
des Befehls wieder bei &C000.
Bei der Verwendung von YP/YG erscheinen fèr kurze Zeit 
merkwèrdige Punktmuster auf dem Schirm. Dies ist die 
Kopierroutine, die vom einzigen "ruhenden Pol" aus arbeitet.


YR,b,t,s          (YRead)    Sektor von Diskette lesen
YW,b,t,s          (YWrite)   Sektor auf Diskette schreiben
Beispiel: YR,100,0,41

Diese beiden Befehl lesen (YR) bzw. schreiben (YW) einen Sektor 
von/auf Diskette. b ist der Buffer, von wo aus der Sektor ge
schrieben oder wohin er beim Lesen von Diskette abgelegt wird. t 
ist die Tracknummer und s die Sektornummer. 
ACHTUNG: Sie mèssen fèr s die tatséchliche (physikalische) 
         Sektornummer angeben, die in der ID stehen. 
Systemdisketten haben IDs von 41 bis 49, Datendisketten von C1 
bis C9 und IBMdisketten von 1 bis 8. Falls ein Lese- oder 
Schreibfehler auftritt, èberprèfen Sie lieber erst nocheinmal 
welches Format die Diskette hat. Lassen Sie dazu einen Catalog 
mit dem C Befehl machen. Die erste physiklische Sektornummer 
steht dann in Adresse A89F (A8DF fèr Laufwerk B). Geben Sie dazu 
ein SA89F ein.
Mit obigem Beispiel kùnnen Sie den Bootsektor Ihrer CP/M System
diskette lesen. Passen Sie aber auf, da~ Sie YR und YW nicht 
verwechseln...  
Ein geschlossenes Schreibschutzloch oder ein rechtzeitig gemach
tes Backup haben schon viel [rger erspart.
Falls ein Lese- oder Schreibfehler auftritt, bringt Amsdos die 
èblichen Fehlermeldungen. Sie kùnnen dann mit R einen neuen 
Versuchstarten, mit I den Fehler ignorieren lassen (bei manchen 
Lesefehler wird dann der Sektor fast komplett gelesen) oder mit C 
abbrechen.



Z<A><a>                      Unterprogramm ab a aufrufen
Beispiel: ZA3E8

Dieser Befehl ist sehr praktisch, wenn Sie ein MC-Programm ùfters 
aufrufen mèssen. Sie mèssen dazu nur Z eingeben. ZA zeigt die 
Zieladresse. Wenn Sie hinter ZA noch eine Adresse angeben, wird 
dies die neue Zieladresse. LARA gibt dann die alte und die neue 
Zieladresse aus. Der Standartwert ist 3E8 (an dieser Adresse 
liegt mein Assembler).
Der Z Befehl èbernimmt keine Vorbelegung von Registern. Dazu 
mèssen Sie dann schon den G Befehl benètzen.



Irsxcomand,s                 RSX Befehl aufrufen

Beispiele: IREN,OLDNAME.BAS,NEWNAME.BAS
           IERA,B:*.BAK
           ITAPE.IN

Sie kùnnen unter LARA RSX Befehle wie unter Basic ausfèhren 
lassen. 
Anstatt des gro~en Is in den Beispielen mèssen Sie das mit 
SHIFT/Klammeraffe (rechts neben P) erreichbare Pipeline Zeichen 
eingeben.
Es sind bis zu zwei STRINGparameter mùglich. Zahlen kùnnen als 
Parameter nicht eingegeben werden, da LARA nicht die Variablen
verwaltung des Basicinterpreters hat. Diese Einschrénkung wirkt 
sich aber nur beim USER Befehl aus, und der aktelle User ist der 
Inhalt von A701, den Sie mit dem S Befehl veréndern kùnnen. Wenn 
Sie dort èbrigens ein E5 hineinschreiben, kùnnen Sie gelùschte 
Files wieder laden...
Vergessen Sie aber nicht, die Usernummer wieder auf 0 zu setzen, 
bevor Sie das gerettete File abspeichern.