
BBC BASIC
---------

Die  erste  Version  von  BBC BASIC  wurde  fr  die   frhen  British
Broadcasting  Mikrocomputer  der  Firma Acorn entwickelt und existiert
bis heute in fnf Versionen. Die  auf  dem  Notepad verfgbare Version 
entspricht  so  weit  als  mglich  der  Acorn  BBC BASIC  Version IV. 
Einschrnkungen betreffen vor allem die  Sound-Mglichkeiten  und  die 
Bildschirmausgabe, da  lediglich  480 x 64  Pixel zur Verfgung stehen 
und nur zwei "Farben" dargestellt werden knnen.

Reset des Notepad
-----------------

Man unterscheidet zwischen weichem und hartem Reset die  Folgen  eines 
harten Reset sind weitreichend, da in diesem Fall alle im internen RAM
gespeicherten Daten und Dokumente verlorengehen.

1.)  Weicher Reset: Notepad Ausschalten und wieder Einschalten.
2.)  Weicher Reset: Funktions- und Stoptaste gedrckt halten und 
     Rechner einschalten. 
3.)  Harter Reset: Funktions-, Stop- und Lschtaste gleichzeitig 
     gedrckt halten, und Rechner wieder einschalten. 
4.)  Harter Reset: Alle Batterien (auch die Lithiumzelle) aus dem 
     Gert entfernen und einschalten.

Selbsttest des Notepad
----------------------

     Funktions- und Symboltaste gleichzeitig gedrckt
     halten und Notepad einschalten.

Benutzung der Textverarbeitung zur BASIC-Programmierung
-------------------------------------------------------

Das  Notepad  stellt  zum  editieren  von  BASIC-Programmen  nur einen
Zeileneditor  zur  Verfgung, welcher mit EDIT Zeilennummer aufgerufen
wird.  Der im Notepad vorhandene Ganzseiteneditor lst sich jedoch zur
Programmierung  nutzen.  Dazu sollte jedoch die Funktion automatischer
Zeilenumbruch   abgeschaltet   werden.  Ein  im  Speicher  vorhandenes
Programm  lst  sich mit folgenden Befehlen als ASCII-Text abspeichern
und anschlieend in die Textverarbeitung laden:
    
     >*SPOOL"FILENAME.EXT"
     >LIST
     >*SPOOL

Nach  dem  Editieren  lst sich der Text in BASIC mit folgendem Befehl
wieder einladen:
     
     >*EXEC"FILENAME.EXT"
        
Die Autostart-Funktion von BASIC
--------------------------------

Wenn  Sie  ein  Programm  "AUTO" nennen wird es beim Starten von BASIC
automatisch geladen und gestartet.






                                - 1 -
Die BASIC Variablen
-------------------

BBC BASIC unterscheidet folgende Variablentypen:

     Variable      Fliekomma Variablen
     Variable%     Ganzzahlige Variablen (Integer)
     Variable$     Zeichenketten Variable

Die Variablennahmen unterliegen den folgenden Regeln:

     - Der Name mu mit einem alphabetischen Zeichen beginnen
     - Gro- und Kleinbuchstaben sowie Zahlen sind zulssig
     - Die erste Komponente darf kein BASIC Schlsselwort sein
     - Leerzeichen sind nicht zulssig der Unterstrich (_) kann 
       jedoch verwendet werden.

Die  27  integer  Variablen  A% bis Z% und @% werden von BBC BASIC als 
residente Variablen  benutzt. Das  heit sie werden nur beim Start von
BBC BASIC  auf "0"  gesetzt  und durch die Befehle CLEAR und NEW nicht 
gelscht, sie  knnen  daher  Werte  an  ein  anderes  Programm  (auch 
Maschienenprogramm, siehe unter  "Der  Z80  Assembler"  weiter  unten) 
bergeben.

Arithmetische Operationen
-------------------------

Operationen mit zwei Argumenten. Die Syntax ist Zahl OP Zahl, wobei OP
einer der folgenden Operationen sein kann:

     +             Addition
     -             Subtraktion
     *             Multiplikation
     /             Division
     ^             Potenzierung Zahl hoch Zahl
     DIV           Ganzzahlergebnis einer Division
     MOD           Rest einer Division

Operationen mit einem Argument:

     ABS(Zahl)     Absolutwert von Zahl (immer positiv)
     ACS(Zahl)     Arcuscosinus von Zahl
     ASN(Zahl)     Arcussinus von Zahl
     ATN(Zahl)     Arcustangens von Zahl
     COS(Zahl)     Cosinus von Zahl
     DEG(Zahl)     Bogenma in Winkelgrade
     EXP(Zahl)     Basis e hoch Zahl (e=2,71828183)
     INT(Zahl)     Ganzzahliger Wert von Zahl  
     LN(Zahl)      Natrlicher Logarithmus (Basis e) von Zahl
     LOG(Zahl)     Dekadischer Logarithmus (Basis 10) von Zahl
     NOT(Zahl)     Einerkomplement von Zahl (bitweises invertieren)
     RAD(Zahl)     Winkelgrade nach Bogenma
     RND(Zahl)     Pseudozufallszahl zwischen 1 und Zahl
     SGN(Zahl)     TRUE wenn Zahl < 0 und FALSE wenn Zahl => 0
     SIN(Zahl)     Sinus von Zahl 
     SQR(Zahl)     Quadratwurzel von Zahl
     TAN(Zahl)     Tangens von Zahl







                                - 2 -
Vergleichs Operationen
----------------------

Diese Operationen  dienen  dem  Vergleich  von  zwei  Ausdrcken,  sie
liefern  den  Wert  TRUE (-1), wenn  die Bedingung erfllt ist und den 
Wert FALSE (0), wenn nicht:

     =     gleich
     <>    ungleich
     >     grer
     =>    gleich oder grer
     <     kleiner
     <=    kleiner oder gleich

Logische Operatoren
-------------------

Die logischen Operatoren erzeugen ein Resultat, das von den  einzelnen 
Bits der beiden ganzzahligen Operanden abhngt. Die Syntax ist Zahl OP
Zahl:

    AND    UND-Verknpfung
    EOR    Exklusiv-ODER-Verknpfung
    OR     ODER-Verknpfung

Bugs (Fehler) in BASIC
----------------------

- Wenn Sie den Befehl INKEY in einer Schleife benutzen unterbricht 
  BASIC manchmal die Programmausfhrung und wartet auf Bettigung 
  einer Taste.
- Manchmal wird beim Zeileneditieren eine Zeile mit jedem Tastendruck
  wieder und wieder ausgegeben. beenden Sie dieses durch drcken der
  Return-Taste.
- Manchmal bleiben beim Scrollen des Textfensters Zeichen in der 
  untersten Zeile. Ein CLS-Befehl lscht diese. 

In der Version 3.11 des Autors sind  diese Fehler jedoch  noch  nie in 
Erscheinung getreten.

























                                - 3 -
Der Speicherbereich in BASIC
---------------------------- 

Vier   Pseudo-Variablen  beinhalten  Speicheradressen  und  geben  dem
Programmierer  eine  Mglichkeit  abzufragen  wie  der Speicherbereich
durch den BASIC-Interpreter eingeteilt wurde:

    - PAGE und TOP beinhalten Anfang und Ende des BASIC-Programms. 
    - HIMEM beinhaltet das Ende des fr BASIC zur Verfgung stehenden
      Speichers.
    - LOMEM beinhaltet den Anfang des Variablenspeicherbereichs.

Das folgende Bild zeigt beispielhaft die BASIC-Speicheraufteilung  mit
einem Programm von 4096 KByte (genau 4 KByte) Gre:

       +----------------------+----------------------+ &FFFF
       |    16 KByte ROM      |  4 KByte Bildschirm  |   
       |  BASIC-Interpreter   +----------------------+ &F000
       |                      |
       |                      |
       |                      |
       +----------------------+ &C000    
       | Betriebssystem-Stack |
       |     und Speicher     |
       +----------------------+ &A000 = HIMEM 
       |     8 KByte RAM      |
       | frei fr User Progr. |
       +----------------------+ &8000     
       |    16 KByte RAM      |
       | frei fr User Progr. |
       |                      |
       |                      |
       +----------------------+ &4000
       | frei fr User Progr. |
       +----------------------+ Ende des Variablen Speicher 
       |  Variablen Speicher  |         
       +----------------------+ &2300 = TOP und LOMEM
       | 4 KByte User Progr.  |
       +----------------------+ &1300 = PAGE    
       | BASIC-Stack/Speicher |
       +----------------------+ &0000 

     >PRINT TOP-PAGE     (ergibt die Lnge des Anwenderprogramms)
      4096
     >PRINT HIMEM-LOMEM  (zeigt wieviel Speicher noch frei ist)
      32000
           
Wenn  Sie BBC BASIC aufrufen, werden bis zu 40 KByte RAM Speicherplatz 
fr ein Anwenderprogramm, Variablen und den  Stack  zugewiesen.  Falls
weniger  Speicherplatz  zur  Verfgung  steht,  wird  der Wert fr den
PAGE-Bereich  entsprechend  erhht. Mindestens  zwei  KByte  werden in 
jedem Fall fr neu  zu  erstellende Dateien freigehalten. Die Variable 
TOP wird  ausschlielich durch den Computer  berechnet, die  Variablen 
PAGE,  HIMEM  und  LOMEM  knnen  auch  durch  den  Anwender  bestimmt 
werden:

    >HIMEM=HIMEM-100

Beachten   Sie   bitte,   da  der  HIMEM-Bereich  nicht  ber  seinen
Ausgangswert  hinaus  erweitert  bzw.  der  Wert fr den unteren PAGE-
Bereich nicht unterhalb des Ausgangswerts angesetzt werden darf. Sonst
wird der Rechner hchstwahrscheinlich "abstrzen".


                                - 4 -
Der Z80-Assembler
-----------------

Das Notepad basiert auf einem Z80-Prozessor, infolgedessen erkennt der
im  Notepad eingebaute Assembler den Z80-Assemblercode! Ein Assembler-
programm  wird mit Zeilennummern und den blichen Z80-Memonics einfach 
zwischen  eckigen  Klammern in das BASIC-Programm eingefgt. Bevor das 
Maschienenprogramm  aufgerufen  werden  kann  mu  es zunchst in zwei 
Schritten assembliert werden. Der OPT Befehl folgt  als  erster Befehl 
innerhalb der eckigen Klammern und steuert die Ausgabe von Fehlern und 
des Listings whrend  des  assemblierens.  Die  Startadresse  fr  das 
Maschienenprogramm  wird  in der Systemvariablen P% (Programm-Counter) 
bergeben. Die  Output-Addresse fr das Maschienenprogramm kann in der 
Systemvariablen O% bergeben werden. Dadurch kann erreicht werden, da 
ein Maschienenprogramm  fr  den  Speicherbereich ab der Adresse in P% 
berechnet wird jedoch ab der Adresse  in  O% abgespeichert wird. Diese 
Mglichkeit wird lediglich zur Programmentwicklung  fr Speicherkarten 
bentigt und  sollte  von  einem  "normalen"  Anwender  kaum  bentigt 
werden.  Der Parameter fr den OPT-Befehl liegt im Bereich von 0 bis 7 
und hat folgende Bedeutungen:

     0   Fehler unterdrcken, kein Listing, Output=Startadresse=P% 
     1   Fehler unterdrcken, Listing ausgeben, Output=Startadresse=P%
     2   Fehler ausgeben, kein Listing, Output=Startadresse=P% 
     3   Fehler und Listing ausgeben, Output=Startadresse=P%
     4   Fehler unterdrcken, kein Listing, Output=O%, Startadresse=P%
     5   Fehler unterd., Listing ausg., Output=O%, Startadresse=P%
     6   Fehler ausgeben, kein Listing, Output=O%, Startadresse=P%
     7   Fehler und Listing ausgeben, Output=O%, Startadresse=P% 

Im  ersten   Assemblerdurchlauf   berechnet   der   Interpreter   alle 
Sprungmarken  und trgt die Sprungadressen im zweiten Durchlauf in das 
Maschienenprogramm ein.

Ein  Maschienenprogramm  lst  sich nach fehlerfreiem assemblieren mit 
folgenden BASIC-Befehlen aufrufen:

Variable=USR(Adresse)
Dieser  Befehl  ruft  ein Maschienenprogamm an der Speicheradresse auf 
und  die  Variable  liefert  einen  32-Bit-Wert  der Register HL = MSB 
(16 Bit) und HL'= LSB (16 Bit)zurck.

CALL Adresse
Dieser Befehl  ruft  ein Maschienenprogamm an der Speicheradresse auf.
Die reservierten Integervariablen  A%, B% usw. bergeben  einen 8-Bit-
Wert an die Prozessorregister A, B usw.

     A% = Accumulator
     B% = B-Register
     C% = C-Register
     D% = D-Register 
     E% = E-Register
     F% = Flag-Register
     H% = H-Register
     L% = L-Register        
     P% = Programm-Counter
                              
			      






                                - 5 -
Innerhalb  des Assemblerprogramms knnen drei Befehle verwendet werden
um Speicherplatz zu reservieren:

DEFB Byte
Der Befehl DEFB reserviert Speicher fr ein Byte.

DEFW Wort
Der Befehl DEFW reserviert Speicher fr ein Zwei-Byte-Wort.

DEFM Zeichnkette
Der  Befehl  DEFM  reserviert  Speicher  fr   eine   beliebig   lange 
Zeichenkette.

Beispiele:

     110 DEFB byte
     120 DEFB ASC("A")
     100 DEFB &5A
     130 DEFW Z%
     140 DEFW &5A4B
     150 DEFM name$
     160 DEFM "Dies ist ein Test"
  
Im  folgenden  als  Beispiel  ein kleines Maschienenprogamm welches in 
einer  dimensionierten Integervariablen (Memory%) gespeichert wird und 
den  ACK-  und  Busy-Status  des  Drucker-Port  (Port &A0)  liest. Das 
Programm  soll hier nur als Beispiel dienen denn mit dem  BASIC-Befehl 
PRINT ~GET(&A0) erreicht man das gleiche:

     10  DIM Memory%100       :REM 100 Byte fr das Assemblerprogamm.
     20  FOR C=1 TO 3 STEP 2  :REM Abarbeitung in zwei Schritten.  
     30    P%=Memory%         :REM Programm Counter auf den Start.
     40    [                  ;Hier startet Assemblercode.
     50    OPT C              ;Fehler beim assemblieren unterdrcken.
     60    .START             ;Eine Sprungmarke beginnt mit "."
     70    JP ENTRY1          ;Eine Sprungmarke aufrufen ohne "."
     80    .PRTIN:DEFB 00     ;Speicherplatz reservieren.
     90    .ENTRY1:IN A,(&A0) ;Durch ":" zwei Befehle in einer Zeile!
     100   LD (PRTIN),A       ;Wert speichern.
     110   RET                ;Assemblerprogramm mu mit RET enden!
     120   ]                  :REM Hier endet das Assemblerprogramm.
     130 NEXT C               :REM Programm assembliert?
     140 CALL START           :REM Erst dann aufrufen.
     150 M=PRTIN:PRINT ~?M    :REM Ergebnis anzeigen.

Soll kein Listing ausgegeben werden so verndern Sie Zeile 20 in:

     20  FOR C=0 TO 2 STEP 2  
















                                - 6 -
BASIC-Schlsselwrter
---------------------

Im   folgenden   finden   Sie   eine   Liste  aller  von Ihrem Notepad 
untersttzten BBC BASIC-Befehle in alphabetischer Reihenfolge:

ABS
Variable=ABS(Zahl)
Mit  diesem  Befehl  bergeben  Sie den absoluten Wert der angegebenen
Zahl an eine Variable. Negative Zahlen werden in positive konvertiert.
Positive Zahlen werden von diesem Befehl nicht tangiert.

ACS
Variable=ACS(Zahl)
Mit  diesem Befehl bergeben Sie den Arcuscosinus der angegebenen Zahl
an  eine  Variable. Das Ergebnis, das im Bogenma angegeben wird, kann
mit dem Befehl DEG konvertiert werden.

AND
Variable Zahl AND Zahl
Mit diesem Befehl bergeben Sie die logische  bitweise UND-Verknpfung
an eine Variable.

ASC
Variable=ASC(Zeichenfolge)
Mit diesem Befehl bergeben Sie den ASCII-Wert des ersten Zeichens der
angegebenen Zeichenfolge an eine Variable.

ASN
Variable=ASN(Zahl)
Mit diesem Befehl bergeben Sie den Arcussinus der angegebenen Zahl an
eine Variable. Das Ergebnis wird im Bogenma angegeben.

ATN
Variable=ATN(Zahl)
Mit  diesem Befehl bergeben Sie den Arcustangens der angegebenen Zahl
an  eine  Variable. Das Ergebnis. das im Bogenma angegeben wird, kann
mit dem Befehl DEG konvertiert werden.

AUTO
AUTO Start, Schritt
Mit   diesem  Befehl  knnen  Sie  die  automatische  Numerierung  der
Programmzeilen  bestimmen.  Wenn  Sie  diesen  Befehl  ohne  Parameter
angeben,   beginnt   die  automatische  Programmzeilennumerierung  mit
Programmzeile  10;  die  Numerierung  erfolgt dann in Zehnerschritten.
Ansonsten  knnen  Sie mit dem Parameter Start die erste Programmzeile
bestimmen  und  mit  dem  Parameter  Schritt  den Abstand zwischen den
einzelnen Programmzeilen.

BGET
Variable=BGET# Zahl
Mit  diesem  Befehl  lesen  Sie  ein einzelnes Zeichen aus einer zuvor
geffneten Datei  und  bergeben  es  an eine Variable. Die Datei wird 
durch die Angabe des Parameters Zahl bezeichnet. Bei der Datei kann es 
sich auch um die serielle Schnittstelle "COM:" handeln.

     10  K=OPENIN"FILENAME.DAT"
     20  REPEAT
     30  Wert%=BGET#K
     40  ZEICHEN=CHR$(Wert%)
     50  PRINT ZEICHEN;
     60  UNTIL EOF#K
     70  CLOSE#K

                                - 7 -
BPUT
BPUT# Zahl, Wert
Mit  diesem  Befehl  schreiben Sie ein einzelnes Zeichen in eine zuvor
geffneten Datei, die durch den Parameter Zahl definiert wird. Bei der 
Datei kann es sich  auch  um  die  serielle  Schnittstelle "COM:" oder 
die parallele Schnittstelle "LPT:" handeln.

     10  K=OPENOUT"FILENAME.DAT"
     20  FOR Wert%=1 TO 255
     30  BPUT#K,Wert%
     40  NEXT Wert%
     50  CLOSE#K

CALL
CALL Adresse
Mit   diesem   Befehl   rufen   Sie  eine  Unterroutine  auf,  die  in
Maschinencode  programmiert ist und an der angegebenen Speicheradresse 
beginnt.

CHAIN
CHAIN Zeichenfolge
Mit   diesem  Befehl  laden  Sie  ein  Programm  und  dessen  gesamten
Datenbestand  in  ein  anderes  Programm.  Der  Parameter Zeichenfolge
beinhaltet den Namen des aufgerufenen Programms.

CHR$
Variable=CHR$(Zahl)
Mit  diesem  Befehl  bergeben  Sie  den  ASCII-Zeichencodewert  eines
Zeichens,  der  durch  den  Parameter  Zahl  angegeben  wird,  an eine
Variable.

CLEAR
Mit  diesem  Befehl  setzen  Sie alle dynamischen Variablen wieder auf
Null.  Die  einzigen  Variablen, die von diesem Befehl nicht betroffen
sind, sind die statischen Variablen A% bis einschlielich Z% und @%.

CLG
Dieser   Befehl   lscht   den  Inhalt  des  aktuellen  Gratikfensters
(standardmig  den  ganzen  Bildschirm).  Der Grafikcursor wird dabei
nicht bewegt.

CLOSE
CLOSE# Zahl
Mit  diesem  Befehl  schlieen Sie eine Datei, die durch den Parameter
Zahl  definiert  wird.  Der  Befehl  "CLOSE#0"  schliet  alle offenen 
Kanle.

CLS
Dieser   Befehl   lscht   den   Inhalt  des  aktuellen  Textfensters.
(standardmig  den  ganzen  Bildschirm).  Der  Textcursor  steht nach
Ausfhrung dieses Befehls am oberen linken Bildschirmrand.

COLOR oder COLOUR
Der  LCD-Bildschirm  des  NC100 kann keine Farben darstellen. Wenn Sie
diese   Funktion  dennoch  aufrufen,  wird  mit  einer  entsprechenden
Fehlermeldung   darauf   hingewiesen   (Fehler  255).  Eine  begrenzte
Steuerung   der   Textattribute   kann  mit  Hilfe  des  VDU-Emulators
realisiert werden, der im folgenden noch genauer erklrt wird.






                                - 8 -
COS
Variable=COS(Zahl)
Mit  diesem  Befehl  bergeben  Sie  den Cosinus eines Winkels an eine
Variable.  Der  Parameter  Zahl  wird  in  Bogenma angegeben. Mit dem
Befehl RAD knnen Sie Winkelgrade in das Bogenma konvertieren.

COUNT
Variable=COUNT
Mit  diesem  Befehl  bergeben  Sie  die  Anzahl Zeichen. die seit der
letzten  neuen  Zeile  auf  den  Bildschirm bertragen wurden, an eine
Variable.

DATA
DATA Konstante, Konstante, Konstante...
Dieser Befehl wird zum Speichern von Konstanten verwendet, die mit dem
Befehl READ in einem Programm abgefragt werden knnen.

DEF
DEF PROGname
DEF FNname
Dieser  Befehl  wird  verwendet,  um  eine  Funktion  oder Prozedur zu
definieren  und zu benennen. Das folgende Beispiel soll verdeutlichen,
was damit gemeint ist:

     10   PROC_Test  ("Hallo")
     20   PRINT FN_Durchschnitt (3,9,14)
     30   END
     40   REM ---- Unterprogramm --------
     100  DEF PROC_Test (Zeichenfolge$)
     110  PRINT Zeichenfolge$
     120  ENDPROC
     130  REM ---- Funktionsdefinition --
     200  DEF FN_Durchschnitt (n1,n2,n3)
     210  =(n1+n2+n3)/3

DEG
Variable=DEG(Zahl)
Mit  diesem  Befehl  bergeben  Sie  das  Ergebnis  der Konversion des
Parameters  Zahl  vom  Bogenma  in  Winkelgrade an eine Variable. Ein
vollstndiger  Kreis  hat  360 Winkelgrade und ein Bogenma von 2*Phi.
Mit  dem  Befehl  DEG teilen Sie also die Winkelgrade durch den Faktor
2*Phi und multiplizieren das Ergebnis mit 360.

DELETE
DELETE Anfang, Ende
Mit diesem Befehl lschen Sie Programmzeilen aus dem Programm. Mit dem
Befehl  DELETE 10, 100 wrden Sie die Zeilen 10 bis einschlielich 100
aus  dem  Programm  lschen.  Wenn  Sie nur eine Programmzeile lschen
mchten,  ist es einfacher, nur die Zeilennummer einzugeben, und diese
Eingabe zu besttigen.

DIM
DIM Variable, Gre
Mit  diesem  Befehl  definieren  Sie  die  Hchstzahl  der Indizes von
Matrixvariablen und den dafr bentigten Speicherplatz. Der Befehl DIM
A(5)   bedeutet   beispielsweise,   da   fr  die  Variable  A  sechs
Matrixvariablen  definiert  wurden: A(0), A(1), A(2), A(3),  A(4)  und
A(5).






                                - 9 -
DIV
Variable=Zahl DIV Zahl
Mit  diesem Befehl bergeben Sie das Ganzzahlergebnis der Division der
ersten  Zahl  durch die zweite Zahl an eine Variable. Nachkommastellen
werden  vernachlssigt.  Mit  dem  Befehl  MOD  knnen  Sie  auch  die
Nachkommastellen erfassen.

DRAW
DRAW x,y
Mit  diesem  Befehl  knnen  Sie  eine gerade "hell unterlegte" Linien
zeichnen.  Der Ausgangspunkt der zu zeichnenden Linie ist die aktuelle
Position  des Grafikcursors; der Endpunkt wird durch die Parameter x,y
definiert.  Die  Koordinatenangaben  auf der x-Achse reichen von 0 bis
479,  die  Koordinatenangaben  auf  der  y-Achse  von 0 bis 63. Dieser
Befehl ist identisch mit dem Befehl PLOT 5,x,y.

EDIT
EDIT Zahl
Mit   diesem  Befehl  knnen  Sie  sich  eine  Programmzeile  auf  dem
Bildschirm  anzeigen lassen und diese dann editieren, d.h. bearbeiten.
Die  entsprechende  Zeilennummer  mu  nach dem Befehl EDIT eingegeben
werden.  Es  besteht darber hinaus auch die Mglichkeit. sich mehrere
Programmzeilen  anzeigen  zu  lassen,  indem Sie die Befehlssyntax wie
folgt erweitern: EDIT Zahl, Zahl.

ELSE
IF Bedingung THEN... ELSE...
Mit  diesem  Befehl legen Sie einen alternativen Programmverlauf fest,
falls die von Ihnen definierte Bedingung nicht erfllt ist.

END
Mit  diesem  Befehl  beenden  Sie  die  Ausfhrung eines Programms und
kehren  zum  BASIC-Prompt  (>)  zurck. Die Ausfhrung eines Programms
wird  auch  dann  beendet,  wenn die letzte Programmzeile abgearbeitet
ist,  doch  mit  dem  Befehl  END  programmieren  Sie  ein  "sauberes"
Programmende.  Mit  dem  Befehl  END  knnen  Sie  ein  Programm  auch
vorzeitig  beenden,  z.B. in Verbindung mit einer Bedingung (siehe den
Befehl  ELSE).  Der  Befehl  wird  auch  bei  umfangreichen Programmen
verwendet,  um  das  Hauptprogramm von den einzelnen Programmschritten
und  Funktionen  zu  trennen,  die ber die Unterroutinen abgearbeitet
werden.

ENDPROC
Mit diesem Befehl kennzeichnen Sie das Ende eines Unterprogramms.

     10   PROC_Test ("Hallo")
     30   END
     100  REM ---- Unterprogramm --------
     110  DEF PROC_Test (Zeichenfolge$)
     120  PRINT Zeichenfolge$
     130  ENDPROC













                                - 10 -
EOF
Variable=EOF#Zahl
Dieser  Befehl  gibt  einen  TRUE-Wert ("-1") an eine Variable zurck,
wenn  eine Datei, die ber den Parameter Zahl definiert ist, leer ist,
und einen FALSE-Wert ("0"), wenn die Datei noch Daten enthlt. Bei der
seriellen   Schnittstellen   bedeutet   TRUE,   da   keine   weiteren
Eingabezeichen erwartet werden, und FALSE. da noch eines oder mehrere
Eingabezeichen erwartet werden.

EOR
Variable=Zahl EOR Zahl
Mit  diesem  Befehl bergeben Sie die logische bitweise exklusiv ODER-
Verknpfung der beiden Parameter an eine Variable.

ERL
Variabie=ERL
Mit  diesem  Befehl bergeben Sie die Nummer der Programmzeile, in der
ein Fehler bei der Ausfhrung eines Programms aufgetreten ist, an eine
Variable.

ERR
Variable=ERR
Mit   diesem   Befehl   bergeben   Sie  den  Fehlercode  des  zuletzt
aufgetretenen  Fehlers  an  eine  Variable.  Folgende Fehlercodes sind
mglich:

     1    Branch Out of range - Sprung auerhalb des Bereichs
          Unknown Label       - Unbekannte Sprungmarke
     4    Mistake             - Fehler
          Wahrscheinlich ein Tipfehler z.B. ein Kommando in Klein-
          buchstaben.   
     5    Missing ,           - Fehlendes Komma
     6    Type Mismatch       - Type simmt nicht
          Sie haben versucht eine Sting-Variable als Numerische-
          Variable zu benutzen.
     7    NO FN               - Kein FN
          Der Interpreter ist auf eine DEF FN Anweisung gestoen ohne 
          eine FN aufzurufen.
     9    Missing "           - Fehlende Anfhrungsstriche
    10    Bad DIM             - Falsche DIM
          Sie haben versucht ein Feld zu dimensionieren welches 
          bereits dimensioniert ist.
    11    DIM Space           - DIM Speicher
          Der Speicher reicht nicht aus um das Feld zu 
          dimensionieren.
    12    Not LOCAL           - Nicht LOCAL
          Eine POOC- oder FN-Variable wurde im Programm benutzt. 
    13    No PPOC             - Kein PROC
          Der Interpreter ist auf eine DEF PROC Anweisung gestoen 
          ohne eine PROC aufzurufen.
    14    Array               - Feld
          Das Feld wurde nicht mit DIM definiert.
    15    Subscript           - Adresse
          Sie haben eine Adresse einer Feldvariablen aufgerufen, die 
          nicht existiert.
    16    Syntax error        - Syntax Fehler
          Sie benutzen ein Kommando falsch.
    17    Escape              - Stoptaste
          Die Stoptaste wurde gedrckt. 





                                - 11 -
    18    Division by zero    - Division durch Null
          Sie haben versucht eine Variable durch Null zu teilen.
    19    String too long     - Zeichenvariable zu lang
          Die Lnge eines String hat 255 Zeichen berschritten. 
    20    Too big             - Zu gro
          Die Gre einer Zahl hat den zuligen Bereich 
          berschritten.
    21    -ve root            - Wurzel
          Sie haben versucht die Wurzel aus einer negativen Zahl zu 
          ziehen. 
    22    Log range           - Logarithmus Bereich
          Der Logarithmus einer Zahl kann nicht berechnet werden.  
    23    Accuracy lost       - Genauigkeit verloren
          Das Ergebnis einer mathematischen Funktion hat seine 
          Genauigkeit verloren.
    24    Exp range           - Exponent Bereich
          Ein Exponent ist zu gro.
    26    No such variable    - Keine Variable
          Es wurde versucht eine Variable abzufragen ohne sie vorher
          zuzuweisen. 
    27    Missing )           - Fehlende Klammer "zu"
    28    Bad HEX             - Falsche Hexzahl
          Eine Hexadezimalzahl ist nicht zu berechnen.
    29    No such FN/PROC     - Keine FN/PROC
          Sie haben eine Funktion oder Prozedur aufzurufen die nicht 
          definiert wurde.
    30    Bad Call            - Falscher Aufruf
          Es wurde ein Maschienenprogramm aufgerufen welches nicht 
          existiert.    
    31    Arguments           - Argumente
          Die Anzahl der an eine FN oder PROC bergebenen Argumente 
          stimmt nicht berein.
    32    No FOR              - Kein FOR
          Der Interpreter ist auf einen NEXT-Befehl gestoen ohne
          einen FOR-Befehl.  
    33    Can't match FOR     - Kann FOR nicht zuordnen
          Programmschleifen wurden falsch verschachtelt.
    34    FOR variable        - FOR Variable
          Eine FOR - NEXT Variable hat den definierten Bereich 
          verlassen.
    36    No TO               - Kein TO
          Nach einer FOR Anweisung wurde das TO vergessen.
    38    No GOSUB            - Kein GOSUB
          Der Interpreter ist auf einen RETURN-Befehl gestoen ohne
          einen GOSUB-Befehl. 
    39    ON Syntax           - ON Syntax
          In Verbindung mit einem ON-Befehl wurde ein falsche Syntax
          verwendet.
    40    ON range            - ON Bereich
          Die Sprungmarke in Verbindung mit einem ON-Befehl existiert 
          nicht.  
    41    No such line        - Zeile nicht gefunden
          Die Zeilennummer in Verbindung mit einem GOTO, GOSUB oder
          ON-Befehl existiert nicht.
    42    Out of DATA         - Kein Daten mehr
          Mit einem READ-Befehl wurde versucht mehr Daten einzulesen
          als vorhanden.







                                - 12 -
    43    No REPEAT           - Kein REPEAT
          Der Interpreter ist auf einen UNTIL-Befehl gestoen ohne
          einen REPEAT-Befehl.
    45    Missing #           - Fehlendes #-Zeichen

    Die folgenden Fehlermeldungen beziehen sich auf Funktionen des 
    Betriebssystems:

   189    Access denied       - Zugriff verweigert
          Sie haben versucht, ein Gert mit einem nicht zulssigen 
          Befehl anzusprechen.
   190    File creation error - Fehler beim Erstellen einer Datei
          Die Befehle OPENOUT, SAVE, *SAVE oder *SPOOL konnten nicht 
          ausgefhrt werden, weil die angegebene Datei nicht erstellt 
          werden konnte.
   192    Too many open files - Zu viele Dateien geffnet
          Sie haben versucht, mehr als sieben Dateien gleichzeitig zu 
          ffnen.
   196    File exists         - Datei bereits vorhanden
          Sie haben versucht, eine Datei mit dem Befehl RENAME 
          umzubenennen. Da der Dateiname, den Sie angegeben haben, 
          bereits fr eine andere Datei vergeben ist, kann der Befehl 
          nicht ausgefhrt werden.
   198    File write error    - Schreibfehler
          Die Befehle SAVE, *SAVE, BPUT#, PRlNT# oder *SPOOL konnten 
          nicht ausgefhrt werden, weil mglicherweise der 
          Speicherplatz nicht ausreicht.
   200    Close error         - Fehler beim Schlieen einer Datei
          Sie haben versucht, eine geffnete Datei zu schlieen,
          dabei ist ein Fehler aufgetreten.
   202    Device Fault - Gertefehler
          Bei einem Lese- oder Schreibvorgang ist ein Gertefehler 
          aufgetreten.
   214    File not found      - Datei nicht gefunden
          Die Befehle LOAD, *LOAD, *EXEC, *DELETE oder ,*RENAME 
          konnten nicht ausgefhrt werden, weil die angegebene Datei 
          nicht gefunden werden konnte.
   222    Channel             - Kanal
          Die Kanalnummer. die Sie im Zusammenhang mit einer Datei-
          funktion vergeben haben, ist ungltig.
   251    Bad key             - Falsche Taste
          Die Definition einer Zeichenfolge fr eine Funktionstaste 
          konnte nicht durchgefhrt werden.
   253    Bad string - Ungltige Zeichenfolge
          Eine definierte Zeichenfolge war zu lang oder fehlerhaft.
   254    Bad command         - Falscher Befehl
          Sie haben einen falschen oder ungltigen Befehl eingegeben.
   255    Sorry (BBC BASIC Befehl wird vom Notepad nicht untersttzt)

ERROR
ON ERROR GOTO Zeile
ON ERROR OFF
Dieser Befehl dient zur Fehlerbehandlung. Wenn Sie den Befehl ON ERROR
GOTO verwenden, weisen Sie das Programm an,  bei einem  Programmfehler
in die bezeichnete Programmzeile zu springen.  Mit  den  Befehlen  ERR 
bzw. ERL knnen Sie die Ursache des Programmfehlers anhand der Fehler-
nummer ermitteln. Die Befehlsfolge  ON ERROR OFF  bergibt die Fehler-
behandlung wieder an das Betriebssystem.






                                - 13 -
EVAL
Variable=EVAL "BASIC-Ausdruck in einer Zeichenfolge"
Mit diesem Befehl berechnen  Sie  das  Ergebnis einer Zeichenfolge und 
bergeben das Ergebnis  an  eine  Variable. Ein vierzeiliges  Programm
verwandelt  BASIC  in  einen  Taschenrechner   fr   wissenschaftliche 
Berechnungen:

     10  REPEAT
     20    INPUT "Befehl eingeben: "e$
     30    PRINT EVAL e$
     40  UNTIL FALSE

Wenn  Sie  das  Programm  mit  dem  Befehl  RUN  starten,  knnten Sie
beispielsweise folgende Ergebnisse erhalten:

     Befehl  eingeben: SIN(RAD(45))
     0,707106781
     Befehl  eingeben: DEG(ATN(SQR(2)))
     54,7356103
     Befehl  eingeben: TIME$
     Don.19 Mrz  1992,00:25:42

EXP
Variable=FXP(Zahl)
Mit diesem Befehl bertragen Sie die x-te Potenz der Basis natrlicher
Logarithmen (e=2,71828183) an eine Variable. Die Potenz wird durch den
Parameter Zahl definiert.

EXT
Variable=EXT#Zahl
Mit  diesem  Befehl  bertragen  Sie  die  Lnge  einer  Datei an eine
Variable,  Mit dem Parameter Zahl definieren Sie die Datei. Mit diesem
Befehl  knnen  Sie  sich  die  Gre  einer  geffneten Datei in Byte
anzeigen  lassen.  Bei  den  seriellen  bzw. parallelen Schnittstellen
bedeutet jeder Wert > (grer) "0". da die Ausgabeeinheit belegt ist;
wenn  Sie  in diesem Fall dennoch Daten an die Ausgabeeinheit  senden,
erhalten  Sie  eine  Fehlermeldung.  Wenn  der  Wert  gleich  "0" ist,
bedeutet  das,  da  die  Ausgabeeinheit  bereit  ist weitere Daten zu
empfangen.

FALSE
Variable=FALSE
Der Konstante  FALSE  wird bei Abfragen in Verbindung mit den Befehlen 
IF und  UNTIL  verwendet. Wenn  eine  Bedingung  nicht  erfllt  wird, 
bergibt FALSE den Wert "0" an eine Variable bzw. das Programm.

     10  Guess=FALSE
     20  REPEAT
     30    INPUT$"Wie ist mein Name "; NAME$
     40    IF NAME$="Rumpelstielschen" THEN Guess=TRUE 
     50  UNTIL Guess
     60  PRINT"Erraten !"












                                - 14 -
FN
DEF FNname
Variable=FNname
Mit diesem Befehl knnen Sie die bezeichnete Funktion sowohl verwenden
als  auch definieren. Vergleichen Sie dazu die  Befehlsbeschreibung zu
DEF.

     10   PRINT FN_Durchschnitt (3,9,14)
     20   END
     100  REM ---- Funktionsdefinition --
     110  DEF FN_Durchschnitt (n1,n2,n3)
     120  =(n1+n2+n3)/3

FOR
FOR Variable=Startwert TO Endwert STEP Schrittweite
Mit  diesem Befehl definieren Sie den Beginn einer Schleife: d.h. eine
Folge  von  Befehlen, die mehrmals hintereinander abgearbeitet werden.
Die  Variable, der Sie einen Startwert zuteilen, wird dabei als Zhler
verwendet,  Die  auf  den  Befehl  FOR folgenden Programmzeilen werden
solange  ausgefhrt,  bis das Programm auf den Befehl NEXT trifft. Die
Variable  wird  dann um den im Parameter Schrittweite angegebenen Wert
erhht.  bersteigt  der  Variableninhalt schlielich den Endwert, ist
die Abarbeitung der Schleife beendet.

     10  FOR I = 10 TO 1 STEP -1
     30    PRINT I
     20  NEXT I 

GET
Variable=GET
Variable$=GET$
Variable=GET(Adresse)
Mit dem Befehl GET bergeben Sie den ASCII-Wert der nchsten Tastatur-
eingabe an eine Variable. Das Programm wird solange  unterbrochen, bis
eine Taste gedrckt wird.  Mit  dem  Befehl  GET$  bergeben  Sie  das
nchste eingegebene Zeichen an  die  Variable$  (alphanumerisch).  Das 
Programm  wird auch hier solange unterbrochen, bis eine Taste gedrckt
wird. Mit dem Befehl GET(Adresse) lesen Sie einen  Wert ber eine I/O-
Schnittstelle des Z80-Prozessors ein. 

GOSUB
GOSUB Zeile
Mit diesem Befehl springen Sie in eine Unterroutine des Programms. Der
Parameter  Zeile gibt die Nummer der anzuspringenden Programmzeile an.
Sobald  das Programm auf den nchsten RETURN-Befehl tritt, erfolgt ein
Rcksprung auf die Programmzeile nach dem GOSUB.


















                                - 15 -
GOTO
GOTO Zeile
Mit  diesem  Befehl  springen  Sie  in  eine  bestimmte Programmzeile.
Bedenken  Sie  dabei,  da die allzu hufige Verwendung dieses Befehls
Ihre  Programme  unbersichtlich  macht. Sie knnen die Struktur Ihrer
Programme  weitaus  besser mit Hilfe der Befehle FOR...NEXT, REPEAT...
UNTIL, DEF PROC oder GOSUB festlegen.

HEX$
Diesen in anderen BASIC-Dialekten blichen Befehl gibt es in BBC BASIC
nicht. Der  Befehl  Variable$=STR$~(Zahl)  bewirkt in BBC BASIC jedoch 
das gleiche.

HIMEM
HIMEM=Zahl
Variable=HIMEM
Mit   diesem  Befehl  knnen  Sie  den  Ausgangswert  fr  den  HIMEM-
Speicherbereich  definieren  oder  sich  den  aktuellen  Wert anzeigen
lassen.  Beachten Sie bitte, da der HIMEM-Bereich in keinem Fall ber
seinen  Ausgangswert  hinaus  erweitert werden darf; Sie knnen diesen
Wert hchstens verringern.

IF
IF Bedingung THEN
Mit  diesem  Befehl definieren Sie Abfragen in einem Programm. Die von
Ihnen  gesetzte  Bedingung  wird  abgeprft  und  in  Abhngigkeit vom
Ergebnis der Abfrage wird der weitere Programmflu gesteuert.

INKEY
Variable=INKEY(Zeit)
Variable$=INKEY$(Zeit)
Mit  diesen Befehl bergeben Sie den Wert der nchsten Tastatureingabe
an  eine Variable. Im Gegensatz zum Befehl GET wartet das Programm nur
innerhalb   der   mit   dem   Parameter  Zeit  definierten  Zeitspanne
(Hundertstelsekunden)  auf  eine  Tastatureingabe.  Wenn innerhalb der
angegebenen  Zeitspanne  keine Eingabe ber die Tastatur erfolgt. wird
bei  numerischen Variablen der Wert "-1" und bei alphanumerischen eine
Zeichenfolge  mit  der  Lnge  "0"  an das Programm zurckgegeben. Die
Verwendung  des  Befehls  INKEY mit einem negativen Wert (zum Abprfen
des Zustands der einzelnen Tasten) wird nicht untersttzt.

INPUT
INPUT "Prompt-Text 1", Variable1, "Prompt-Text 2",  Variable2...
Mit  diesem Befehl unterbrechen Sie die Programmausfhrung; der Promt-
Text  erscheint,  gefolgt  von  einem  Fragezeichen  und  das Programm
erwartet eine Eingabe. Die eingegebenen Daten werden der oder auch den
definierten  Variable zugewiesen. Bei der definierten Variable kann es
sich  sowohl  um  eine  numerische  als  auch  um eine alphanumerische
Variable handeln. Der Prompt-Text ist optional.

INPUT LINE
INPUT LINE "Prompt-Text", Variable$
Dieser Befehl entspricht im wesentlichen dem Befehl INPUT,  Allerdings
sind einige Unterschiede vorhanden:

     - Als Variable ist nur der Typ Variable$ (alphanumerisch)
       zulssig.
     - Es kann nur jeweils ein Variablenwert abgefragt werden.
     - Als Zeichen knnen auch Kommas, Leerzeichen und Anfhrungs-
       striche eingegeben werden.




                                - 16 -
INPUT#
INPUT# Zahl, Variable
Mit diesem Befehl erfolgt eine Eingabe aus einer Datei. Die Datei wird
mit dem Parameter Zahl definiert.

     10  K=OPENIN("DATEI.DAT")
     20  INPUT# K, IN$ 

INSTR
Variable=INSTR(Zeichenfolge, gesuchte Zeichenfolge, Startposition)
Mit  diesem  Befehl  durchsuchen Sie die erste angegebene Zeichenfolge
nach  der  gesuchten  Zeichenfolge. Wenn diese gefunden wird, wird die
Position,  an  der  die  bereinstimmung  auftrat,  an  eine  Variable
bergeben. Die Suche mu nicht am Anfang der vorgegebenen Zeichenfolge
beginnen  sondern  kann  optional auch erst ab Startposition erfolgen.
Wird  die  Startposition  angegeben,  mu ihr Wert  "=>1"  und "<=255"
sein.  Wird die Zeichenfolge nicht gefunden, so liefert INSTR den Wert
"0".

INT
Variable=INT(Zahl)
Mit   diesem  Befehl  konvertieren  Sie  eine  reelle  Zahl  in  einen
Ganzzahlwert und bergeben diesen an eine Variable.

LEFT$
Variable$ = LEFT$(Zeichenfolge$, Zahl)
Mit   diesem  Befehl  bergeben  Sie  den  Inhalt  einer  Zeichenfolge
(beginnend  mit  dem ersten, linksbndigen Zeichen derselben und einer
durch   den   Parameter   Zahl   fest   definierten   Lnge)  an  eine
alphanumerische Variable.

LEN
Variable=LEN(Zeichenfolge$)
Mit  diesem  Befehl  bergeben Sie die Anzahl Zeichen einer bestimmten
Zeichenfolge an eine Variable.

LET
LET Variable Wert
Mit  dem  Befehl  LET teilen Sie einer Variablen einen Wert (numerisch
oder  alphanumerisch)  zu.  Der  Befehl  LET  ist  optional,  d.h. die
Programmzeilen

     10  LET X = X + 3

     und 

     10  X = X + 3

sind in ihrer Wirkung absolut identisch.

LIST
LIST Zahl, Zahl
Mit  diesem  Befehl knnen Sie sich ein Programm anzeigen lassen. Wenn
Sie  nur  eine  Zeilennummer angeben, wird auch nur eine Programmzeile
angezeigt.  Wenn  Sie  beide  Parameter angeben, werden alle Programm-
zeilen  zwischen  diesen  beiden  Zeilennummern angezeigt. Solange ein
Programm  aufgelistet wird, knnen Sie die Anzeige unterbrechen, indem
Sie die Stopptaste drcken. Mit einer beliebigen  Taste knnen Sie die
Unterbrechung wieder aufheben.





                                - 17 -
LISTO
LISTO Zahl
Mit  dem  Parameter  Zahl  kann festgelegt werden, wie die Anzeige des
LIST-Befehls  formatiert wird. Gltig sind alle Parameter zwischen "0"
und "3".

     LISTO 0     Kein Leerzeichen zwischen Zeilennummer und Zeile,
                 Schleifen nicht eingerckt.
     LISTO 1     Leerzeichen zwischen Zeilennummer und Zeile,
                 Schleifen nicht eingerckt.
     LISTO 2     Kein Leerzeichen zwischen Zeilennummer und Zeile,
                 Schleifen eingerckt.
     LIST0 3     Leerzeichen zwischen Zeilennummer und Zeile,
                 Schleifen eingerckt. 

LN
Variable=LN(Zahl)
Mit diesem Befehl bergeben Sie den natrlichen Logarithmus einer Zahl
an   eine  Variable.  Die  Basis  natrlicher  Logarithmen  entspricht
e=2,71828183. Die Umkehrfunktion zu diesem Befehl ist der Befehl EXP.

LOAD
LOAD Programmname
Mit  diesem  Befehl  laden  Sie  das  mit  dem  Parameter Programmname
bezeichnete Programm.

LOCAL
LOCAL Variable, Variable$, ...
Mit  diesem  Befehl  definieren  Sie  eine Variable, die nur innerhalb
einer  bestimmten  Funktion  oder  Prozedur  bentigt  wird. Der darin
enthaltene Wert geht auerhalb dieser Funktion bzw. Prozedur verloren.
Die  auf  die  LOCAL  Anweisung  folgende  Variablen  knnen von einem 
beliebigen Typ sein. Die Anweisung speichert  den  aktuellen  Wert der 
genannten Variablen auf dem  BASIC-Stapel, wo sie am Ende der Prozedur
oder  Funktion  wieder  abgeholt  werden.  Das  bedeutet, da der Wert 
innerhalb  der  Prozedur  gendert  werden  kann,  ohne  dadurch  eine 
Variable  gleichen Namens, die sich auerhalb der Prozedur befindet zu 
verndern.  Am  Ende  der  Prozedur  wird  der alte Wert der Variablen 
wieder hergestellt.

     10   FOR I=1 TO 10
     20     PROC_Test 
     30   NEXT I
     40   END
     100  REM ---- Unterprogramm ----
     110  DEF PROC_Test: LOCAL I 
     120  FOR I=1 TO 10
     130    PRINT I
     140  NEXT I
     150  PRINT "----"
     160  ENDPROC

LOG
Variable=LOG(Zahl)
Mit diesem Befehl bergeben Sie den dekadischen Logarithmus (Basis 10) 
einer vorgegebenen  Zahl  an eine Variable, Fr diesen Befehl gibt  es 
keine Umkehrfunktion.







                                - 18 -
LOMEM
LOMEM=Variable
Variable=LOMEM
Mit  diesem Befehl knnen Sie sich den Speicherbereich anzeigen lassen
bzw.  definieren,  in  dem dynamische Datenstrukturen gespeichert sind
bzw. gespeichert werden sollen.

LPRINT
Diesen in anderen BASIC-Dialekten blichen Befehl gibt es in BBC BASIC
nicht, hier erfolgen Ausgaben auf den Drucker ber PRINT#

MID$
Variable$=MID$(Zeichenfolge$, Start, Lnge)
Mit  diesem  Befehl  bergeben  Sie  eine  Zeichenfolge mit einer fest
vorgegebenen  Lnge  (durch  die  Parameter  Start  und Lnge) an eine
alphanumerische Variable$.

MOD
Variable=Zahl MOD Zahl
Mit  diesem  Befehl  teilen  Sie  die  erste Zahl durch die zweite und
bergeben  den  Rest der Division an eine Variable. Vergleichen Sie in
diesem Zusammenhang auch den Befehl DIV.

MOVE
MOVE x,y
Mit  diesem  Befehl  bewegen  Sie  den  Grafikcursor  zu den von Ihnen
angegebenen  Koordinaten.  Auf  die  Anzeige  hat dieser Befehl keinen
Einflu. Die Koordinatenangaben auf der x-Achse reichen von 0 bis 479,
die  Koordinatenangaben  auf  der y-Achse reichen von 0 bis 63. Dieser
Befehl ist identisch mit dem Befehl PLOT 4,x,y.

NEW
Mit  diesem  Befehl  lschen Sie das aktuell geladene Programm aus dem
BASIC-Arbeitsspeicher  Wenn Sie diesen Befehl versehentlich eingegeben
haben,  knnen  Sie  seine Wirkung rckgngig machen, indem Sie in der
nchsten  Programmzeile den Befehl OLD eingeben. Sobald Sie allerdings
neue  Programmzeilen  eingegeben  oder neue Variablen definiert haben,
funktioniert dies nicht mehr.

NEXT          
NEXT Variable
Mit  diesem  Befehl  markieren sie das Ende einer FOR...NEXT-Schleife.
Nach  dem  Befehl  NEXT  erfolgt  ein Rcksprung auf die Programmzeile
hinter  dem  Befehl FOR. Die Schleife wird solange wiederholt, bis die
mit   dem   Befehl   NEXT  stets  schrittweise  erhhte  Variable  den
definierten Hchstwert berschreitet.

NOT
Variable=NOT Zahl
Mit  diesem  Befehl  bergeben Sie den Wert des Parameters Zahl (binr
invers) an eine Variable.

OFF
ON ERROR OFF
TRACE OFF
Die  Befehlsfolge  "ON ERROR OFF" bergibt die Fehlerbehandlung wieder
an  das Betriebssystem. Mit dem Befehl TRACE 0FF knnen Sie die TRACE-
Funktion wieder ausschalten.

OLD
Mit diesem Befehl knnen Sie ein Programm, das Sie mit dem  Befehl NEW
oder durch versehentliches Verlassen von BASIC aus dem Arbeitsspeicher 
gelscht haben, wieder in den Arbeitsspeicher zurckholen.

                                - 19 -
ON
ON Variable GOTO Zeile, Zeile...
ON Variable GOSUB Zeile, Zeile...
ON ERROR GOTO Zeile
Mit  diesem  Befehl  bestimmen  Sie  in Abhngigkeit von der gesetzten
Variablen  eine  Verzweigung  im  Programm zu einer bestimmten Zeilen-
nummer.

OPENIN
Variable=OPENIN(Dateiname$)
Mit  diesem  Befehl  erffnen Sie eine Datei (Dateiname$) speziell fr
Lesevorgnge  (Read  only).  Die  Dateikennziffer wird anschlieend an
eine  Variable  bergeben.  Dieser  Befehl  kann in Verbindung mit den
Befehlen  BGET#  und  INPUT#  verwendet  werden.  Wenn  der angegebene
Dateiname  "COM:"  lautet,  wird  ein Kanal fr eine serielle Schnitt-
stelle geffnet.

     10  K=OPENIN("DATEI.DAT")
     20  INPUT# K, IN$ 

OPENOUT
Variable=OPENOUT(Dateiname$)
Mit  diesem  Befehl  erstellen und ffnen Sie eine neue Datei. (Datei-
name$)  speziell fr Schreibvorgnge (Write only). Die Dateikennziffer
wird  anschlieend  an  eine Variable bergeben. Dieser Befehl kann in
Verbindung  mit  den Befehlen BPUT#  und PRINT# verwendet werden. Wenn
der  angegebene  Dateiname  "COM:"  lautet,  wird  ein  Kanal fr eine
serielle  Schnittstelle geffnet. Wenn der angegebene Dateiname "LPT:"
lautet, wird ein Kanal fr eine parallele Schnittstelle geffnet.

     10  K=OPENOUT("LPT:")
     20  PRINT# K, OUT$

OPENUP
Variable=OPENUP(Dateiname$)
Mit  diesem Befehl ffnen Sie eine Datei fr Schreib- und Lesevorgnge
(Random).  Die  Dateikennziffer  wird  anschlieend  an  eine Variable
bergeben.  Dieser  Befehl  kann in Verbindung mit den Befehlen BPUT#,
BGET#,  PRINT# und INPUT# verwendet werden. Wenn der angegebene Datei-
name  "COM:"  lautet,  wird  ein Kanal fr eine serielle Schnittstelle
geffnet.

     10  K=OPENUP("COM:")
     20  PRINT# K, OUT$
     30  INPUT# K, IN$ 

OR
Variable=Zahl OR Zahl
Mit  diesem  Befehl  bergeben Sie das logische bitweise OR der beiden
Parameter Zahl an eine Variable.














                                - 20 -
OSCLI
OSCLI Zeichenfolge
Mit  diesem  Befehl  bergeben  Sie den Inhalt der Zeichenfolge (einen
Befehl)  an  das  Betriebssystem. Der Befehl wird dann ausgefhrt:

     10  OSCLI "CAT"

Die Betriebssystembefehle knnen auch direkt aufgerufen  werden  indem
ihnen ein "*"-Zeichen vorangestellt wird:

     >*CAT
      
Die  folgenden  Betriebssystembefehle  sind implementiert:
 
     BYE oder QUIT
     Mit einem dieser Befehle knnen Sie den BASIC-Interpreter 
     verlassen; danach kehren Sie auf die Betriebssystemebene zurck.

     CAT oder DIR
     Mit einem dieser beiden Befehle knnen Sie sich eine Liste der 
     gespeicherten Dateien anzeigen lassen.

     DELETE Dateiname oder ERASE Dateiname
     Mit einem dieser beiden Befehle lschen Sie eine namentlich 
     bezeichnete Datei.

     ESC ON und ESC OFF
     Wenn Sie den Befehl ESC ON oder ESC* eingeben. kann die 
     Ausfhrung eines Programms mit der Stoptaste beendet werden; die 
     Stoptaste wird in BASIC als ESCape-Taste bezeichnet. Wenn Sie 
     den Befehl ESC 0FF eingegeben haben, wird lediglich der ASCII-
     Code der ESCape-Taste (27) an das Programm zurckgegeben. falls 
     Sie die Stoptaste drcken.

     EXEC Dateiname
     Mit diesem Befehl legen Sie fest, da die Konsoleneingaben von 
     einer Datei aus erfolgen sollen und nicht ber die Tastatur. 
     Beachten Sie, da die Befehle GET und INKEY nur Eingaben ber 
     die Tastatur entgegennehmen.

     KEY n Zeichenfolge
     Mit diesem Befehl definieren Sie eine neue Zeichenfolge fr eine 
     bestimmte Taste. Die Tastenschlssel reichen von "41" bis "92", 
     wobei die Schlssel "41" bis "66" (ASCII - 24) sich auf die 
     Kombinationen Symboltaste + A-Taste bis Z-Taste und die Schlssel 
     "67" bis "92" (ASCII + 2) sich auf Symboltaste + Shift-Taste + 
     A- bis Z-Taste beziehen. Die Zeichenfolge kann das "|" Symbol 
     enthalten, damit auch Zeichen eingefgt werden, deren Eingabe am 
     Bildschirm nicht sichtbar wird. So bedeutet zum Beispiel:
 
          |M     die Return-Taste,
          |?     die Taste zum Lschen,
          ||     steht fr das "|" Zeichen und 
          |!     bedeutet, da Bit 7 des Folgezeichens gesetzt wird. 

     Wenn die Zeichenfolge in Anfhrungszeichen gesetzt ist (das ist
     optional). bestimmen Sie mit dem Zeichen "|", da das Zeichen
     "Anfhrungsstriche" bercksichtigt werden kann.
     Die folgenden Eingaben belegt die Tastenkombination Symbol-M mit 
     einem kleinem Memory-Dump-Programm:

          >M=&2000
          >KEY 53 FOR X=0 TO 6:P.~M+X,~M?X:N. |M

                                - 21 -
     Das folgende Programm belegt einige Tasten mit sinnvollen 
     Funktionen fr die BBC BASIC Programmierung:

          10  Edit$="EDIT.LIS"
          20  OSCLI"KEY 45 EDIT ":REM Symbol+E
          30  OSCLI"KEY 49 LIST ":REM Symbol+I  
          40  OSCLI"KEY 52 LOAD |"+CHR$(34):REM Symbol+L
          50  OSCLI"KEY 54 RENUMBER |M":REM Symbol+N
          60  OSCLI"KEY 55 *SPOOL ":REM Symbol+O
          70  OSCLI"KEY 58 RUN |M":REM Symbol+R
          80  OSCLI"KEY 59 SAVE |"+CHR$(34)+Edit$+"|"+CHR$(34)
          90  OSCLI"KEY 64 *EXEC "+Edit$:REM Symbol+X

     LOAD Dateiname aaaa
     Mit diesem Befehl laden Sie die gewnschte Datei in den Arbeits-
     speicher. Die Anfangsadresse im Speicher mu zwingend angegeben
     werden.

     PRINTER n
     Mit diesem Befehl definieren Sie den Drucker entweder als 
     Paralleldrucker (n=0) oder als seriellen Drucker (n=1).

     RENAME alter Dateiname neuer Dateiname
     Mit diesem Befehl geben Sie einer Datei einen neuen Namen.

     SAVE Dateiname aaaa bbbb
     SAVE Dateiname aaaa +lll
     Mit diesem Befehl speichern Sie einen definierten Bereich des 
     Speichers in einer Datei ab. Die Speicheradresse wird entweder 
     ber die Anfangsadresse aaaa und die Endadresse +1 bbbb oder 
     ber die Anfangsadresse aaaa und die Lnge lll definiert.

     SPOOL Dateiname
     Mit diesem Befehl kopieren Sie alle nachfolgenden Ausgaben der
     Konsole in die angegebene Datei. Wenn Sie keinen Dateinamen 
     eingeben, wird jede erffnete SPOOL-Datei geschlossen und der 
     SPOOL Vorgang beendet.

     I Kommentar
     Nach diesem Befehl knnen Sie einen Kommentar eingeben.

PAGE
PAGE=Variable
Variable=PAGE
Mit  dem  Befehl  PAGE  knnen  Sie  die  Startadresse  des  aktuellen
BASIC-Programmbereichs bestimmen oder sich anzeigen lassen.

PI
Variable=PI
Mit  diesem  Befehl  bergeben  Sie  den  Wert  Phi  (3.14159) an eine
Variable.













                                - 22 -
PLOT
PLOT n,x,y
Mit  diesem vielseitig verwendbaren Befehl knnen Sie Linien zeichnen,
wobei  der  erste  Parameter (n) zur Spezifikation des Zeichenvorgangs
dient.  Die  Koordinatenangaben auf der x-Achse reichen von 0 bis 479.
die  Koordinatenangaben  auf der y-Achse reichen von 0 bis 63. Wenn im
folgenden von "relativer" Position die Rede ist, bedeutet das, da der
Ausgangspunkt  der  zu  zeichnenden  Linie  die  aktuelle Position des
Grafikcursors  ist.  Wird  von  der  "absoluten"  Position gesprochen,
bedeutet  das,  da  der  Ausgangspunkt  der  zu zeichnenden Linie die
Position (0,0) des Grafikbildschirms ist.

     n      Aktion

     0      Bewegen des Grafikcursors relativ zum letzten Punkt.
     1      Zeichnen einer Linie in "schwarz" relativ zum letzten 
            Punkt.
     2      Zeichnen einer Linie in "invers" relativ zum letzten 
            Punkt.
     3      Zeichnen einer Linie in "wei" relativ zum letzten Punkt.
     4      Bewegen des Grafikcursors zur absoluten Position x,y.
     5      Zeichnen einer Linie in "schwarz" bezogen auf die 
            absolute Position.
     6      Zeichnen einer Linie in "invers" bezogen auf die 
            absolute Position.
     7      Zeichnen einer Linie in "wei" bezogen auf die absolute
            Position.
     8-15   Mit diesen Parametern erzielen Sie das gleiche Ergebnis
            wie mit den Parametern 0-7. doch im Gegensatz dazu
            wird der Endpunkt der Linie doppelt gezeichnet (d.h. im
            Modus "invers" fllt dieser weg).
    16-31   Mit diesen Parametern erzielen Sie das gleiche Ergebnis
            wie mit den Parametern 8-15, doch die Linie wird 
            gepunktet gezeichnet.
    32-63   Mit diesen Parametern erzielen Sie das gleiche Ergebnis
            wie mit den Parametern 0-31, doch im Gegensatz dazu
            wird der Anfangspunkt der Linie doppelt gezeichnet (d.h.
            im Modus "invers" fllt dieser weg).
    64-71   Mit diesen Parametern erzielen Sie das gleiche Ergebnis
            wie mit den Parametern 0-7, doch wird an der Stelle (x,y)
            ein einzelner Punkt gezeichnet.
    72-79   Mit diesen Parametern zeichnen Sie eine horizontale Linie
            links und rechts vom Punkt x,y. Diese Linie wird solange
            gezeichnet, bis der erste "hell unterlegte" Bildpunkt 
            (Pixel) gekreuzt wird oder der Rand des Fensters erreicht 
            ist. Sie knnen damit geometrische Formen fllen.
    80-87   Mit diesen Parametern zeichnen und fllen Sie ein 
            Dreieck, das durch die beiden letzten angesteuerten 
            Punkte und die Position x,y definiert wird.
    88-95   Mit diesen Parametern zeichnen Sie eine horizontale Linie
            links und rechts vom Punkt x,y. Diese Linie wird solange
            gezeichnet. bis der erste nicht "hell unterlegte" 
            Bildpunkt (Pixel) gekreuzt wird oder der Rand des Fensters
            erreicht ist.
    96-103  Mit diesen Parametern zeichnen und fllen Sie ein 
            Rechteck, dessen gegenberliegende Ecken durch den 
            letzten angesteuerten Punkt und die Position x,y bestimmt 
            wenden.






                                - 23 -
POINT
Variable=POINT(x,y)
Mit  diesem Befehl geben Sie den Zustand des Bildpunkts (Pixel) an der
bezeichneten  Position  x,y  an  das  Programm zurck ("0"= nicht hell
unterlegt.  "1"  =  hell  unterlegt). Wenn die Position des Bildpunkts
auerhalb des Grafikfensters liegt, wird der Wert "-1" an das Programm
zurckgegeben.

PEEK und POKE 
Statt  der  blichen  Befehle  PEEK und POKE werden  vom  Notepad  die 
sogenannten "Indirektionsoperatoren" verwendet:

     - Byte-Wert schreiben (entspricht POKE):  ?Adresse=Wert
     - Byte schreiben mit Offset-Adresse    :  Adresse?Offset=Wert 
     - Byte-Wert lesen (entspricht PEEK)    :  Wert=?Adresse
     - Byte lesen mit Offset-Adresse        :  Wert=Adresse?Offset
     - 4 Byte-Wert schreiben                :  !Adresse=Wert
     - 4 Byte-Wert lesen                    :  Wert=!Adresse 
     - String schreiben                     :  $Adresse="Zeichenfolge"
     - String lesen                         :  Variable$=$Adresse

Der  $ Indirektionsoperator  schreibt  einen  Wagenrcklauf  (CR = 13) 
hinter das letzte Zeichen des Strings!

Beispiele:

     >M=&2000
     >?M=&28        :REM &2000=&28   
     >PRINT ?M
             40     :REM Hex. &28 = Dez. 40
     >PRINT ~?M     :REM Durch "~"-Zeichen Ausgabe in Hex.
             28 
     >!M=&12345678  :REM &2000=&78,&2001=&56,&2002=&34,&2003=&12 
     >PRINT ~!M
             12345678
     >$M="Dies ist ein Test!"
     >PRINT $M
     Dies ist ein Test!
     
Aber das ist noch nicht alles, der Byte  Operator (?)  kann  auch  wie 
hier in Zeile 50 mit einem Offset in einer weiteren Variablen (hier X) 
verknpft werden:

     10 CLS
     20 M=&2000
     30 !M=&12345678
     40 FOR X=0 TO 4
     50   PRINT ~M+X,~M?X
     60 NEXT
     >RUN
             2000    78
             2001    56
             2002    34
             2003    12
             2004    FF
     > 








                                - 24 -
POS
Variable=POS
Mit  diesem  Befehl  geben  Sie  die  horizontale Position (Zeile) des
Textcursors  im Bereich zwischen "0" und "79" an  das Programm zurck.
Dabei wird vom linken Rand des Textfensters ausgegangen.

PRINT
PRINT Variable,Variable$,...
PRINT "Text"
PRINT# Variable
PRINT#"Text"
Dieser Befehl ermglicht die Ausgabe auf den Bildschirm  oder in einen 
geffneten Kanal. Wenn  Sie  die  gewnschte  Bildschirmausgabe hinter 
einen  Strichpunkt  setzen,  bedeutet  das, da  die Bildschirmausgabe 
unmittelbar  dahinter  erfolgen soll. Hinter einem Kommata erfolgt die 
Bildschirmausgabe  beim  nchsten  gesetzten  Tabulator.  Wenn Sie das 
Zeichen  "~"  vor  numerischen  Ausdrcken   eingeben,  werden   diese 
hexadezimal angezeigt.

     10  PRINT "Dezimalzahl :";DEZ," entspricht Hexzahl :";~DEZ 

Standardmig  werden  numerische  Ausdrcke  in  Dezimalnotierung und
rechtsbndig  in der Druckzone ausgegeben. Zeichenketten werden in der 
Druckzone linksbndig angeordnet. Das Format, in dem Zahlen ausgegeben
werden, und  die  Lnge  der Druckzonen werden vom Wert der residenten
Variablen  @%  bestimmt.  Jedem  Byte  in  der  Variablen  kommt  eine
spezielle Bedeutung zu:

     Byte 4
     Bestimmt, ob die STR$-Funktion beim Verwandeln des Arguments in 
     einen String das durch @% festgelegte Druckformat oder ein
     allgemeines Standardformat verwendet.  Wenn das Byte "0" ist
     (Standard), benutzt STR$ ein allgemeines Format (gleichbedeutend
     mit @%=&90A), wenn es grer "0" ist, benutzt STR$ das durch den 
     Rest von @% definierte Format.

     Byte 3
     Whlt das zu verwendende Format. Die legitimen Werte sind:

          0 
          Allgemeines Format: Zahlen haben die Form nnn.nnn, wobei die 
          maximale Anzahl der ausgegebenen Stellen in Byte 2 
          vorgegeben ist. Dies ist das Standardformat.

          1
          Exponentialformat. Zahlen haben die Form n.nnEnn, wobei die
          Anzahl der Stellen vor dem E in Byte 2 festgelegt wird.

          2
          Festes Format: Zahlen haben die Form nnn.nnn, wobei die Zahl
          der Nachkommastellen in Byte 2 definiert wird.

     Byte 2
     Bestimmt die Anzahl der ausgegebenen Stellen. Im allgemeinen 
     Format ist dies die Anzahl der Stellen, die ausgedruckt werden 
     kann, bevor ins Exponentialformat geschaltet wird (1 bis 10); im
     Exponentialformat gibt es die Anzahl der signifikanten Zahlen an,
     die nach dem Dezimalpunkt ausgegeben werden (1 bis 10). Im festen
     Format gibt es die Anzahl Nachkommastellen an.





                                - 25 -
     Byte 1
     Bestimmt die Druckzonenbreite im Bereich von "0" bis "255" zur
     Tabulierung unter Verwendung von TAB(Zahl) und Kommas.

Beispiele:
 
     >@%=&0000090A
     >PRINT 0.0982
      9.82E-2
     >PRINT 123456789
      123456789
     >PRINT 1234567890
      1.23456789E9

Verwendet  allgemeines Format mit bis zu neun signifikanten Stellen in 
einer Druckzone  mit 10 Zeichenpositionen. Bitte beachten Sie, da das 
allgemeine  Format  auf  das   Exponentialformat  schaltet,  wenn  die
Zahl kleiner als 0.1 ist. Dies ist die Standardeinstellung.

     >@%=&0102020A 
     >PRINT 0.0982
      0.10

Verwendet  festes  Format mit zwei Nachkommastellen in einer Druckzone 
mit 10 Zeichen. Die  Werte  werden  gerundet.  Auerdem verwendet STR$ 
dieses Format anstelle des Standardformats.

     >@%=&00010408
     >PRINT 1
      1.000E0

Benutzt das Exponentialformat. Dabei werden vier signifikante Stellen 
in einer Druckzone mit 8 Zeichenpositionen ausgegeben.

PRINT#
PRINT# Kanal, Variable
Mit  diesem  Befehl schreiben Sie einen bestimmten Wert in eine Datei,
die  durch  den Parameter Kanal definiert wurde. Bei der Datei kann es
sich  auch  um  die  serielle  Schnittstelle "COM:" oder die parallele
Schnittstelle "LPT:" handeln.

     10  K=OPENOUT("DATEI.DAT")
     20  FOR I=1 TO 60
     30    PRINT# K, STR$(RND)+CHR$(13)+CHR$(10)
     40  NEXT

Bei Ausgabe zum Drucker ndert sich Zeile 10 in:
 
     10  K=OPENOUT("LPT:")















                                - 26 -
PROC
PROCname
Mit  diesem Befehl rufen Sie eine Prozedur auf, die mit dem Befehl DEF
PROC erstellt wurde.

     10   PROC_Test ("Hallo")
     20   PRINT FN_Durchschnitt (3,9,14)
     30   END
     40   REM ---- Unterprogramm --------
     100  DEF PROC_Test (Zeichenfolge$)
     110  PRINT Zeichenfolge$
     120  ENDPROC
     130  REM ---- Funktionsdefinition --
     200  DEF FN_Durchschnitt (n1,n2,n3)
     210  =(nl+n2+n3)

PTR
PTR# Zahl=Variable
Variable=PTR# Zahl
Mit  diesem  Befehl  knnen  Sie den Zugriffszeiger einer Datei sowohl
setzen als auch anzeigen lassen. Die Datei ist ber den Parameter Zahl
definiert.

PUT
PUT Adresse, Variable
Mit  diesem  Befehl  bewirken  Sie  die Ausgabe eines Wertes ber eine
I/O-Schnittstelle  des  Z80-Prozessors.  Dazu  mu  Ihnen  jedoch  die 
Hardware-Adresse  bekannt  sein. Das folgende Programm erzeugt fr  10 
Sekunden  einen  Ton  ber den Notepad-Lautsprecher mit einer Frequenz 
von 697 Hz:

    10  PUT &50,&B9
    20  PUT &51,&01
    30  TIME=0: REPEAT: UNTIL TIME > 1000
    40  SOUND 1, 0, 0, 0

RAD
Variable=RAD(Zahl)
Mit  diesem  Befehl  bergeben  Sie  den  Wert  einer  Zahl,  die  von
Winkelgraden in das Bogenma konveniert wurde, an eine Variable.

READ
READ Variable1, Variable2, ...
Mit diesem Befehl lesen Sie Daten aus dem Befehl DATA und weisen diese
einer Variablen zu.

REM
REM Kommentar
Mit   diesem  Befehl  lassen  sich  Kommentarzeilen  in  ein  Programm
einfgen.  Dadurch  haben  Sie die Mglichkeit. die Wirkung einzelner,
mglicherweise   komplexer   Programmzeilen   durch  Erluterungen  zu
ergnzen.  Diese  Kommentarzeilen  sind  oft  sehr hilfreich, wenn ein
Programm  zu  einem  spteren  Zeitpunkt  erweitert oder umgeschrieben
werden soll.

RENUMBER
RENUMBER Start, Schritt
Mit diesem Befehl knnen Sie die Zeilennumerierung eines Programms neu
definieren.  Wenn Sie nur den Befehl RENUMBER ohne Parameter eingeben.
beginnt   die   Numerierung   bei  Programmzeile  10  und  erfolgt  in
Zehnerschritten,   Doch   knnen  Sie  Anfang  und  Schrittweite  auch
individuell festlegen.


                                - 27 -
REPEAT
Mit  diesem  Befehl  beginnen Sie eine Programmschleife, die durch den
Befehl  UNTIL  beendet  wird.  Solange  die  gesetzte  Bedingung nicht
erfllt  (FALSE) ist, erfolgt der Rcksprung in die Programmzeile, die
dem Befehl REPEAT folgt.

     10  Guess=FALSE
     20  REPEAT
     30    INPUT$"Wie ist mein Name "; NAME$
     40    IF NAME$="Rumpelstielschen" THEN Guess=TRUE 
     50  UNTIL Guess
     60  PRINT"Erraten !"

REPORT
Mit  diesem  Befehl  kann  eine  Fehlermeldung  im Klartext ausgegeben 
werden, die sich auf den letzten Programmfehler bezieht. Dieser Befehl 
wird hufig in Verbindung mit  dem  Befehl  ON ERROR GOTO  eingesetzt.
Mgliche Fehlermeldungen siehe unter ERR.

RESTORE
RESTORE Zeile
Wenn  Sie  mit  Hilfe  des  Befehls  READ Daten aus einer Datei lesen,
knnen  Sie den Befehl RESTORE einsetzen, um den Lesezeiger wieder auf
eine  bestimmte  Stelle in der Datei zu setzen, von der mglicherweise
die nchsten Daten gelesen werden sollen.

RETURN
Dieser Befehl beendet eine Unterroutine. Danach erfolgt der Rcksprung
aus  der  Unterroutine  in  die Programmzeile. die unmittelbar auf die
Programmteile mit dem Befehl GOSUB folgt.

RIGHT$
Variable$=RIGHT$(Zeichenfolge$, Zahl)
Mit   diesem  Befehl  bergeben  Sie  den  Inhalt  einer  Zeichenfolge
(beginnend  mit  dem uerst rechten Zeichen derselben und einer durch
den  Parameter  Zahl  fest  definierten Lange) an eine alphanumerische
Variable.

RND
Variable=RND(Zahl)
Dieser Befehl bergibt eine Zufallszahl zwischen "1" und dem Parameter
Zahl  an  eine  Variable.  Wenn Sie den Parameter Zahl nicht vorgeben,
wird  ein  Wert  zwischen "&80000000" und "&7FFFFFFF" an eine Variable 
bergeben.  Wenn  der  Parameter  Zahl  negativ  ist,  wird  ein neuer 
Zufallszahlengenerator festgelegt und der  daraus  resultierende  Wert
an eine Variable bergeben.

RUN
Mit  diesem  Befehl  starten  Sie  das  aktuell  in den BASIC-Speicher
geladene Programm.














                                - 28 -
SAVE
SAVE Programmname
Mit  diesem  Befehl  speichern  Sie  das aktuell in den BASIC-Speicher
geladene Programm unter dem mit dem Parameter Programmname angegebenen
Namen.  Der  Programmname  kann  entweder in Anfhrungszeichen gesetzt
werden  oder  in einer alphanumerischen Variable gespeichert sein, die
den  Namen  enthlt.  Es ist wichtig, das aktuell bearbeitete Programm
stets  zu  speichern,  ehe Sie den BASIC-Interpreter verlassen, da das
Programm beim Verlassen von BASIC nicht automatisch gesichert wird.

     >SAVE "FILENAME.EXT"

SGN
Variable=SGN(Zahl)
Mit  diesem  Befehl bergeben Sie den Wert "-1" an eine Variable, wenn
der  Parameter  Zahl negativ ist. Wenn der Parameter Zahl positiv ist,
wird der Wert "0" an die Variable bergeben.

SIN
Variable=SIN(Zahl)
Mit  diesem  Befehl  bergeben  Sie  den  Sinuswert eines vorgegebenen
Winkels  an  eine  Variable.  Der  entsprechende  Wert mu im Bogenma
angegeben  werden.  Mit  dem  Befehl RAD knnen Sie Winkelgrade in das
Bogenma konvertieren.

SOUND
SOUND Kanal, Lautstrke. Tonhhe, Dauer
Ein  einfacher Tongenerator (Zweiton) ist im Notepad  integriert.  Die
einzelnen Parameter des Befehls haben folgende Bedeutung:

     Kanal        Damit legen Sie den Kanal fest (1 oder 2).
     Lautstrke   Dieser Wert ist beim Notepad ohne Wirkung.
     Tonhhe      Mit dieser Angabe bestimmen Sie die Tonhhe in 
                  Halbtonschritten. Mgliche Werte liegen zwischen "0"
                  und "255". Sobald Sie als Wert fr die Tonhhe "0" 
                  angeben, wird der Ton abgeschaltet.
     Dauer        Mgliche Werte bei der Dauer eines Tones liegen 
                  zwischen "0" und "254". Die dabei verwendete Einheit
                  entspricht einer Zwanzigstelsekunde. Die Eingabe der 
                  Werte "-1" oder "255" erzeugt einen Dauerton. Diesen 
                  Dauerton knnen Sie nur unterbrechen, indem Sie 
                  einen neuen SOUND-Befehl eingeben oder die 
                  Stoptaste drcken.

In der folgenden Tabelle sind alle mglichen Werte fr die Tonhhe 
aufgelistet:

          Note |  Oktaven-Nummer
          -----+----------------------------------------
               |   1      2      3      4      5      6
          A    |          41     89    137    185    233
          A#   |          45     93    141    189    237
          B    |   1      49     97    145    193    241
          C    |   5      53    101    149    197    245
          C#   |   9      57    105    153    201    249
          D    |  13      61    109    157    205    253
          D#   |  17      65    113    161    209
          E    |  21      69    117    165    213
          F    |  25      73    121    169    217
          F#   |  29      77    125    173    221
          G    |  33      81    129    177    225
          G#   |  37      85    133    181    229


                                - 29 -
Der folgende Befehl beispielsweise erzeugt  eine  Sekunde  lang  das A 
ber dem mittleren C auf Kanal 1:

     10  SOUND 1, 0, 137, 20

Wenn  Sie  einen  Akkord,  bestehend  aus zwei Noten, spielen mchten,
mssen  Sie zuerst den Befehl SOUND mit einer Dauer von "-1" eingeben,
um  den ersten Ton auf Kanal "1" erzeugen zu knnen; danach mssen Sie
noch  einen  zweiten Befehl eingeben, um die andere Note auf Kanal "2"
erzeugen  zu  knnen.  Wenn  Sie  fr den Parameter Dauer den Wert "0"
eingeben, beenden Sie das Abspielen von Tnen.

Wenn Sie einen Ton mit einer beliebigen Frequenz  erzeugen  wollen, so
mssen Sie die Hardware-Register fr die Frequenzkontrolle mit dem PUT
Befehl direkt laden. Die Registeradressen sind:

     &50 Reload-Wert LSB fr Kanal 1
     &51 Reload-Wert MSB fr Kanal 1
     &52 Reload-Wert LSB fr Kanal 2
     &53 Reload-Wert MSB fr Kanal 2
    
Der Reload-Wert (R) berechnet sich aus der Frequenz (f) nach folgender 
Formel:

           1.000.000
      R = ------------
           f * 3,2552

Das folgende Programm erzeugt fr  10 Sekunden  einen   Ton  mit einer 
Frequenz von 697 Hz auf Kanal 1:

     10  PUT &50,&B9
     20  PUT &51,&01
     30  TIME=0: REPEAT: UNTIL TIME > 1000
     40  SOUND 1, 0, 0, 0





























                                - 30 -
SPC
SPC(Zahl) 
Wenn  Sie  den  Befehl  SPC(Zahl) in Verbindung mit den Befehlen INPUT
oder  PRINT  verwenden,  wird  die  mit dem Parameter Zahl festgelegte
Anzahl   Leerzeichen   vor   der   Tastatureingabe  bzw.  Druckausgabe
eingefgt.

     10  PRINT SPC(10)"Bitte eine Taste";
     20  INPUT SPC(10)": ", KEY  

SQR
Variable=SQR(Zahl)
Mit diesem Befehl bergeben Sie die Wurzel des Parameters Zahl an eine
Variable.

STEP
FOR Variable=Start TO Ende STEP Schritt
Mit  diesem  Befehl  legen  Sie  fest, um welchen Wert die Variable in
einer FOR ... NEXT-Schleife erhht bzw. verringert wird.

STOP
Mit  diesem  Befehl  beenden Sie die Ausfhrung eines Programms. Dabei
wird  die  Programmzeile  angezeigt.  an der das Programm unterbrochen
wurde.  Der  Befehl STOP wird hufig bei der Erstellung von Programmen
zum  Testen  verwendet.  Im  Anschlu an den Befehl STOP kann z.B. der
Inhalt von Programmvariablen berprft werden.

STR$
Variable$=STR$(Zahl)
Mit  diesem  Befehl bergeben Sie den Wert eines numerischen Ausdrucks
in  Form  einer  Zeichenfolge  an  eine alphanumerische Variable. Wenn
zwischen  dem  $-Zeichen  und  der  Klammer das Zeichen "~" eingegeben
wird, wird der Parameter Zahl in einen hexadezimalen Wert konvertiert.

     10  INPUT"Bitte eine Dezimalzahl :",Dez
     20  Hex$ = STR$~(Dez)
     30  PRINT"Entspricht Hexzahl     :";Hex$

STRING$
Variable$=STRING$(Zahl, Zeichenfolge)
Mit  diesem Befehl bergeben Sie die mit dem Parameter Zahl definierte
Anzahl einer Zeichenfolge an eine alphanumerische Variable.

TAB
TAB(x,y)
TAB(x)
Der  Befehl  TAB(x,y)  wird  bentigt,  um  die  genaue  Position  des
Textcursors   im  aktuellen  Textfenster  an  (x=Spalte,  y=Zeile)  zu
bestimmen. Die Koordinatenangaben fr x reichen von 0 bis 79 und fr y
von  0  bis  7.  Mit  den  folgenden Befehlen legen Sie z. B. fest, an
welcher Stelle eine Bildschirmausgabe  bzw. Eingabe erfolgen soll:

     10  PRINT TAB(10,2) "Bitte ein Wort eingeben : "
     20  INPUT TAB(60) A$










                                - 31 -
TAN
Variable=TAN(Zahl)
Mit  diesem  Befehl  bergeben  Sie den Tangenswert eines vorgegebenen
Winkels  an  eine  Variable.  Der  entsprechende  Wert mu im Bogenma
angegeben  werden.  Mit  dem  Befehl RAD knnen Sie Winkelgrade in das
Bogenma konvertieren.

THEN
IF Bedingung THEN
Mit  dem Befehl THEN steuern Sie den weiteren Programmablauf, wenn die
Bedingung  einer  IF-Abfrage  erfllt  ist. Die Verwendung des Befehls
THEN  bei  einer  IF-Abfrage  ist optional. doch wird das Programm mit
Sicherheit bersichtlicher, wenn Sie diesen Befehl verwenden.

TIME
TIME=Variable
Variable=TIME
Mit  dieser  Pseudovariablen lesen und setzen Sie die Stopuhr fr  die
verstrichene  Zeit.  Die dabei verwendete Einheit ist die Hundertstel-
sekunde.  Im  folgenden Beispiel wurde eine Zeitspanne von 10 Sekunden
angesetzt:

     10  TIME = 0: REPEAT: UNTIL TIME > 1000

TIME$
TIME$=Variable$
Variable$=TIME$
Mit dieser Pseudovariablen lesen und setzen Sie die Echtzeit. 

     >PRINT TIME$

Das Format der zurckgegebenen Zeichenfolge lautet:

     >Day.dd Mon yyyy,hh:mm:ss

Die einzelnen Elemente haben folgende Bedeutung: 

      Day   meint den Wochentag, 
      dd    den Tag im Monat, 
      Mon   den Monat,
      yyyy  das Jahr,
      hh    die Stunden, 
      mm    die Minuten, 
      ss    die Sekunden.

Zeit  und  Datum  (oder  auch  beides zugleich) knnen gesetzt werden,
indem  Sie  die  entsprechenden  Informationen in die einzelnen Felder
eintragen.  Wenn  Sie  nur  die  Zeit  einstellen,  wird der Wochentag
ignoriert und braucht deshalb nicht eingegeben zu werden.

TO
FOR Variable=Start TO Ende
Dieser  Befehl  wird  in  einer  FOR...NEXT-Schleife als Zwischenglied
zwischen  dem  Anfangswert  und  dem  Endwert  der jeweiligen Variable
verwendet.









                                - 32 -
TRACE
TRACE ON
TRACE 0FF
TRACE Zahl
Mit  dem  Befehl  TRACE  ON  knnen  Sie  sich  parallel zur Programm-
ausfhrung  die  gerade  ausgefhrte  Programmzeilennummer (in eckigen
Klammern) anzeigen lassen. Dieser Befehl wird als Testhilfe verwendet.
Mit dem Befehl TRACE 0FF knnen Sie diese Funktion wieder ausschalten.
Beim  Befehl TRACE  Zahl werden nur die Programmzeilen angezeigt.  die 
kleiner   sind   als   der   angegebene   Parameter   Zahl.  Wenn  Sie 
beispielsweise  fr   die   Unterroutinen  hohe  Programmzeilennummern
vergeben und beim Hauptprogramm niedrige Zeilennummern, knnen Sie mit
diesem  Befehl  ganz  leicht  den Ablauf des Hauptprogramms verfolgen.
indem Sie den Parameter Zahl entsprechend setzen.

TRUE
Variable=TRUE
Wenn  dieser Befehl verwendet wird, wird der Wert "-1" an das Programm
zurckgegeben.  wenn die Bedingung. die in Verbindung mit den Befehlen
IF und UNTIL gesetzt wurde, wahr (TRUE) ist.

     10  Guess=FALSE
     20  REPEAT
     30    INPUT$"Wie ist mein Name "; NAME$
     40    IF NAME$="Rumpelstielschen" THEN Guess=TRUE 
     50  UNTIL Guess
     60  PRINT"Erraten !"

UNTIL
UNTIL Bedingung
Mit diesem Befehl beenden Sie eine Schleife, die mit dem Befehl REPEAT
gestartet  wurde. Solange die gesetzte Bedingung nicht erfllt (FALSE)
ist,  erfolgt  der  Rcksprung  in  die  Programmzeile, die dem Befehl
REPEAT folgt.

USR
Variable=USR(Adresse)
Mit  diesem  Befehl  rufen  Sie  eine  in  Maschinencode  geschriebene
Unterroutine  an  der  angegebenen  Speicheradresse auf. Die  Variable 
liefert  einen 32-Bit-Wert der Prozessorregister HL = MSB (16 Bit) und 
HL'= LSB (16 Bit) zurck.

VAL
Variable=VAL(Zeichenfolge)
Mit  diesem  Befehl  bergeben Sie den numerischen Wert eines Zeichen-
folgenausdrucks (soweit mglich) an eine Variable.


















                                - 33 -
VDU
VDU Parameter, ...
Mit  diesem  Befehl  bergeben  Sie  die Elemente der Parameter an den
VDU-Emulator.  Die  gesamten  Ausgaben  der  Konsole  werden  an einen
Software-Emulator  den  VDU-Treiber von BBC Micro bertragen. Die hier
beschriebenen  VDU-Befehle  fhren  hnliche  Operationen  aus wie BBC
Micro,  wobei  sie mit den jeweiligen Unterschieden bezglich Hardware
und  Betriebssystem konsistent sind. Die Parameter werden durch Kommas
getrennt solange der Parameter kleiner als "255" ist. Eintrge die mit 
einem  Semikolon  abgeschlossen  werden,   werden   als   16-Bit-Werte 
bergeben (LSB zuerst). Die einzelnen Werte haben folgende Bedeutung:

     VDU 0         Dieser Befehl wird ignoriert.
     VDU 1,n       Das folgende Byte wird an den Drucker gesendet, 
                   sofern es vorher mit VDU 2 aktiviert wurde. Wenn 
                   der Drucker nicht aktiv ist, wird das Byte 
                   bersprungen. Jeder 8-Bit-Wert (0-255) kann 
                   bertragen werden. Dies funktioniert auch dann, 
                   wenn der VDU-Emulator mit VDU 21 auf inaktiv 
                   gesetzt wurde.
     VDU 2         Mit diesem Befehl aktivieren Sie den Drucker. 
                   Alle nachfolgenden Zeichen werden sowohl an den 
                   Drucker als auch an den Bildschirm bertragen. 
                   Die einzigen Steuerzeichen, die bertragen werden, 
                   sind BEL(7). BS(8). HT(9), LF(10) VT(11), FF(12) 
                   und CR(13). Bytes, die als Parameter fr VDU-
                   Befehle fungieren. werden nicht an den Drucker 
                   bertragen. So bertrgt VDU 27,13 kein CR an den 
                   Drucker. 
     VDU 3         Dieser Befehl setzt den Drucker inaktiv und hebt 
                   zugleich die Wirkung von Befehl VDU 2 auf.
     VDU 4         Mit diesem Befehl kann der Textcursor angezeigt 
                   werden.
     VDU 5         Mit diesem Befehl wird die Anzeige des Textcursors
                   ausgeblendet.
     VDU 6         Dieser Befehl aktiviert die Bildschirmanzeige und 
                   hebt gleichzeitig die Wirkung von VDU 21 auf.
     VDU 7         Dieser Befehl erzeugt einen Piepton.
     VDU 8         Dieser Befehl bewegt den Textcursor um eine 
                   Position nach links. Wenn der Textcursor am linken 
                   ueren Rand steht, wird er in die vorherige Zeile 
                   an den ueren rechten Rand positioniert. Wenn der
                   Textcursor zudem in der obersten Zeile stand, wird 
                   er in die letzte Zeile positioniert.
     VDU 9         Dieser Befehl bewegt den Textcursor um eine 
                   Position nach rechts. Wenn der Textcursor am 
                   rechten ueren Rand steht, wird er an den Anfang 
                   der nchsten Zeile positioniert. Wenn der 
                   Textcursor zudem in der letzten Zeile stand, wird 
                   er in die oberste Zeile positioniert.
     VDU 10        Dieser Befehl bewegt den Textcursor um eine Zeile
                   nach unten. Wenn er bereits in der untersten Zeile
                   stand, wird der Bildschirm nach oben gerollt.
     VDU 11        Dieser Befehl bewegt den Textcursor um eine Zeile
                   nach oben. Wenn er bereits in der obersten Zeile
                   stand, wird er in die letzte Zeile positioniert.
     VDU 12        Dieser Befehl ist identisch mit dem Befehl CLS in 
                   BASIC. Das gesamte Bildschirmfenster wird gelscht. 
                   und der Cursor steht anschlieend in der oberen 
                   linken Ecke.




                                - 34 -
     VDU 13        Dieser Befehl bewegt den Cursor an den linken Rand.
     VDU 14        Dieser Befehl aktiviert die inverse Darstellung des 
                   Bildschirminhalts.
     VDU 15        Dieser Befehl hebt VDU 14 wieder auf.
     VDU 16        Dieser Befehl ist identisch mit dem Befehl CLG in
                   BASIC. Der gesamte Grafikbildschirm wird gelscht.
                   Der Grafikcursor wird dabei nicht bewegt.
     VDU 17        Dieser Befehl aktiviert die Fettschrift.
     VDU 18        Dieser Befehl hebt VDU 17 wieder auf.
     VDU 19        Dieser Befehl aktiviert den Modus Unterstreichen.
     VDU 20        Dieser Befehl hebt VDU 19 wieder auf.
     VDU 21        Dieser Befehl deaktiviert alle VDU-Ausgaben. Alle
                   nachfolgenden VDU-Befehle (auer den Befehlen 1,2,
                   3, 4, 5 und 6). Wenn der Drucker aktiv ist, werden 
                   die VDU-Befehle 7, 8, 9, 10, 11,12 und 13 dennoch 
                   an den Drucker bertragen.
     VDU 22        Dieser Befehl wird ignoriert.
     VDU 23        Dieser Befehl wird ignoriert.
     VDU 24, links x, unten y, rechts x, oben y
                   Mit diesem Befehl definieren Sie den Grafik-
                   bildschirm. Die Koordinatenangaben auf der x-Achse
                   (horizontal) reichen von 0 bis 479, die 
                   Koordinatenangaben auf der y-Achse (vertikal) 
                   reichen von 0 bis 63.
     VDU 25,n,x,y  Dieser Befehl ist identisch mit dem Befehl 
                   PLOT n,x,y in BASIC. Vergleichen Sie dazu die 
                   Beschreibung des Befehls PLOT.
     VDU 26        Dieser Befehl aktviert die Standardeinstellungen 
                   fr den Text- bzw. Grafikbildschirm. Auerdem 
                   steht sowohl der Text- als auch der Grafikcursor 
                   wieder auf Position 0,0.
     VDU 27,n      Dieser Befehl bertrgt das nchste Byte an den 
                   Bildschirm, ohne es als Steuerzeichen zu 
                   interpretieren. Alle Grafikzeichen, die sich auf 
                   VDU 0-31 und VDU 127 beziehen, knnen angezeigt 
                   werden. Der Befehl VDU 27 hat im Prinzip dieselbe 
                   Wirkung wie der Befehl 1 auf den angeschlossenen 
                   Drucker. 
     VDU 28, links x,unten y, rechts x, oben y
                   Mit diesem Befehl definieren Sie den Text-
                   bildschirm. Die Koordinatenangaben auf der x-Achse
                   (horizontal) reichen von 0 bis 79, die 
                   Koordinatenangaben auf der y-Achse (vertikal) 0 
                   bis 7.
     VDU 29,n,x,y  Dieser Befehl richtet die Anfangsposition einer
                   Grafik auf die angegebenen Koordinaten aus. Alle
                   nachfolgenden Grafikkoordinaten beziehen sich auf
                   diese Angaben.
     VDU 30        Dieser Befehl positioniert den Textcursor in die 
                   linke obere Ecke.
     VDU 31,x,y    Dieser Befehl ist identisch mit dem Befehl PRINT
                   TAB(x,y) in BASIC. Der Textcursor wird entsprechend 
                   Ihren Angaben positioniert, wobei sich die 
                   Koordinaten auf den jeweils definierten Text-
                   bildschirm beziehen.
     VDU 127       Dieser Befehl positioniert den Cursor um eine 
                   Stelle nach links und lscht das betreffende 
                   Zeichen.






                                - 35 -
VPOS
Variable=VPOS
Mit  diesem  Befehl  geben  Sie  die  vertikale  Position  (Zeile) des
Textcursors  im  Bereich  zwischen "0" und "7" an das Programm zurck.
Dabei wird vom oberen Rand des aktuellen Textfensters ausgegangen.

WIDTH
WIDTH Zahl
Mit   diesem   Befehl   definieren   Sie  die  Breite  der  Bildschirm
Ausgabezeile in Anzahl Zeichen, Sobald Sie den Wert "0" eingeben, wird
die Definition unwirksam.





















































                                - 36 -
Liste aller auf dem Notepad untersttzten Schlsselwrter und ihre 
Krzel:

Schlsselw. Krzel   Token-Byte(s)   Beschreibung
----------------------------------------------------------------------
ABS         -        &94             Absolutwert berechnen
ACS         -        &95             Arcuscosinus berechnen
AND         A.       &80             Bitweise UND-Verknpfung 
ASC         -        &97             ASCII-Code bestimmen
ASN         -        &98             Arcussinus berechnen
ATN         -        &99             Arcustangens berechnen
AUTO        AU.      &C6             Zeilennummern vorgeben
BGET        B.       &9A             Einzelnes Zeichen lesen
BPUT        BP.      &D5             Einzelnes Zeichen schreiben
CALL        CA.      &D6             Maschienenprogramm aufrufen
CHAIN       CH.      &D7             BASIC-Programm aufrufen
CHR$        -        &BD             ASCII-Code in Zeichen wandeln
CLEAR       CL.      &D8             Alle Variablen resetten
CLG         -        &DA             Grafikfenster lschen
CLOSE#      CLO.     &D9,&23         Kanal schlieen
CLS         -        &DB             Textfenster lschen
COS         -        &9B             Cosinus berechnen
COUNT       COU.     &9C             Zeichen zhlen
DATA        D.       &DC             Daten speichern
DEF         -        &DD             Prozedur oder Funktion definieren
DEG         -        &9D             Bogenma in Winkelgrade
DELETE      DEL.     &C7             Zeile(n) lschen
DIM         -        &DE             Feld dimensionieren
DIV         -        &81             Ganzzahlergebnis einer Division
DRAW        DR.      &DF             Linie zeichnen
EDIT        ED.      -               Zeile editieren 
ELSE        EL.      &CC             Alternative Bearbeitung
END         -        &E0             Programm Ende
ENDPROC     E.       &E1             Prozedur Ende
EOF#        -        &C5,&23         Auf Dateiende testen
EOR         -        &82             EXKLUSIV-ODER Verknpfung
ERL         -        &9E             Zeilennummer des letzten Fehlers
ERR         -        &9F             Fehlernummer des letzten Fehlers
ERROR       ERR.     &85             Behandlung von Fehlern
EVAL        EV.      &A0             Zeichenfolge mit BASIC-Ausdruck
EXP         -        &A1             Potenz berechnen
EXT         -        &A2             Lnge einer Datei feststellen
FALSE       FA.      &A3             Entspricht "0"
FN          -        &A4             Funktion aufrufen
FOR         F.       &E3             Beginn einer Schleife
GET         -        &A5             Tastatur oder I/O-Port lesen
GET$        GE.      &BE             Zeichnen von Tastatur lesen
GOSUB       GOS.     &E4             Zur Unterroutine springen
GOTO        G.       &E5             Nach Zeile springen
HIMEM       H.       &D3/&93         Speicherbereich definieren
IF          -        &E7             Abfrage auf Bedingung
INKEY       -        &A6             Auf Tastatureingabe warten  
INKEY$      INK.     &BF             Auf Tastatureingabe warten 
INPUT       I.       &E8             Wert eingeben
INPUT#      -        &E8,&23         Wert einlesen
INPUT LINE  -        &E8,&86         Zeichenkette einlesen
INSTR       INS.     &A7             Zeichenfolge durchsuchen
INT         -        &A8             Ganzzahlwert berechnen






                                - 37 -
Schlsselw. Krzel   Token-Byte(s)   Beschreibung
---------------------------------------------------------------------
LEFT$       LE.      &C0             Linker Teil einer Zeichenkette
LEN         -        &A9             Lnge einer Zeichenkette
LET         -        &E9             Zuweisung
LIST        L.       &C9             Programm listen
LISTO       L.O      &C9,&4F         Format fr LIST definieren
LN          -        &AA             Natrlichen Logarithmus berechnen
LOAD        LO.      &C8             Programm laden
LOCAL       LOC.     &EA             Lokale Variable definieren
LOG         -        &AB             Dekadischen Logarithmus berechnen
LOMEM       LOM.     &D2/&92         Speicherbereich definieren
MID$        M.       &C1             Mittleren Teil einer Zeichenkette
MOD         -        &83             Rest einer Division berechnen
MOVE        -        &EC             Grafikcursor bewegen
NEW         -        &CA             Programm lschen
NEXT        N.       &ED             Nchster Schritt einer Schleife
NOT         -        &AB             NICHT-Verknpfung
OFF         -        &87             Ausschalten
OLD         O.       &CB             Altes Programm retten
ON          -        &EE             Abhngigkeit definieren
OPENIN      OP.      &8E             Kanal zur Eingabe ffnen
OPENOUT     OPENO.   &AE             Kanal zur Ausgabe ffnen
OPENUP      -        &AD             Kanal zur Ein- u. Ausgabe ffnen
OR          -        &84             ODER-Verknpfung
OSCLI       OS.      &FF             Betriebssystem aufrufen
PAGE        PA.      &D0/&90         Speicherbereich definieren
PI          -        &AF             Entspricht Phi=3,14159
PLOT        PL.      &F0             Linie zeichnen
POINT       -        &B0             Bildpunkt abfragen
POS         -        &B1             Horizontale Cursorposition
PRINT       P.       &F1             Bildschirmausgabe
PROC        -        &F2             Prozedur aufrufen
PTR         -        &CF/&8F         Dateizugriffszeiger lesen/setzen
PUT         -        &CE             Wert auf I/O-Port ausgeben 
RAD         -        &B2             Winkelgrad nach Bogenma
READ        -        &F3             Daten lesen
REM         -        &F4             Bemerkung
RENUMBER    REN.     &CC             Programm umnummerieren
REPEAT      REP.     &F5             Schleife definieren
REPORT      REPO.    &F6             Fehlermeldung ausgeben
RESTORE     RES.     &F7             Daten Zeiger zurcksetzten
RETURN      R.       &F8             Unterprogramm beenden
RIGHT$      RI.      &C2             Rechter Teil einer Zeichenkette
RND         -        &B3             Zufallszahl erzeugen
RUN         -        &F9             Programm starten
SAVE        SA.      &CD             Programm speichern
SGN         -        &B4             Vorzeichen bestimmen
SIN         -        &B5             Sinus berechnen
SOUND       SO.      &D4             Ton ausgeben
SPC         -        &89             Leerzeichen ausgeben
SQR         -        &B6             Wurzel berechnen
STEP        S.       &88             Schrittweite in Schleifen
STOP        -        &FA             Programm unterbrechen
STR$        -        &C3             Zahl in Zeichenkette wandeln
STRING$     STRI.    &C4             Zeichenkette bilden
            







                                - 38 -
Schlsselw. Krzel   Token-Byte(s)   Beschreibung
---------------------------------------------------------------------
TAB         -        &8A             Textcursor setzen
TAN         T.       &B7             Tangens berechnen
THEN        TH.      &8C             Bearbeitung definieren
TIME        TI.      &D1/&91         Stoppuhr lesen oder setzen
TIME$       TI.$     &D1,&24/&91,&24 Echtzeituhr lesen oder setzen
TO          -        &B8             Schleife definieren
TRACE       TR.      &FC             Programm Testhilfe 
TRUE        -        &B9             Entspricht "-1"
UNTIL       U.       &FD             Ende einer Schleife definieren
USR         -        &BA             Maschienenprogramm aufrufen
VAL         -        &BB             Zeichenfolge in Zahl wandeln
VDU         V.       &EF             VDU-Emulator Befehl
VPOS        VP.      &BC             Vertikale Position des Textcursor 
WIDTH       WI.      &FE             Ausgabezeile definieren














Verwendete Literatur und Quellen:

- "Handbuch zum Amstrad Notepad NC100" zweite Ausgabe Fa. Amstrad 1992 
   Mit freundlicher Genehmigung durch Cliff Lawson

- "The Low Level Operation Of Amstrad Notepad Computers"
   Von der Amstrad Homepage

- "BASIC Machine Language Tutorial" 
   Von Don McKenzie 27.08.1992

- "FAQ Of Amstrad 8 Bit Computers"
   Von der gleichnamigen Newsgroup

- "ACORN BBC BASIC Handbuch" 
   Erste Ausgabe Acorn Computer Limited 1990

- "The Amstrad Notepad Advanced User Guide"
   Von Robin und Chris Nixon, Sigma Press 1993

Autor:

Hans-Jrgen Bhling
Blowstr. 2
40476 Dsseldorf
Germany

e-mail  : 101.107378@germanynet.de
homepage: http://www.germany.net/teilnehmer/101.107378/index.htm





                                - 39 -


