ndr-nkc.de ndr-nbc.de
  
Startseite
News
 
NDR-NKC
Geräte Z80
Geräte 68000
Geräte 8088
 
Z80 Section
Baugruppen
ROM's
Software
68000 Section
Baugruppen
ROM's
PASCAL/S
Software
8088 Section
Baugruppen
Downloads
 
Bussysteme
Stromversorgung
Input / Output
Grafikkarten
Speicherkarten
Massenspeicher
Weitere Baugruppen
 
Projekte
 
Dokumentation
Datenblätter
Glossar
Portraits
Links

Impressum

 

BASIC für Z80 Vollausbau

BASIC ist eine leicht zu erlernende Sprache zur Umsetzung einfacher aber auch komplexer Programme. Der Quelltext wird im RAM-Speicher abgelegt und beim Start immer wieder neu interpretiert. Im Gegensatz zu einem Compiler, der in einem Durchlauf Programme in Maschinensprache erzeugt die anschließend gestartet werden können, ist ein BASIC Interpreter deutlich langsamer in der Ausführung von Programmen. BASIC ist keine strukturierte Programmiersprache, Sprünge und Aufrufe von Unterprogrammen werden immer über die Zeilennummer angegeben, nicht über einen Prozedurnamen.

Systemaufbau

Zum Aufbau eines minimalen Systems, welches BASIC ausführen kann benötigt man folgende Komponenten:

  • Basisplatine BUS2 und eine Stromversorgung
  • Prozessor-Baugruppe Z80CPU
  • Speicher-Baugruppe ROA64
  • Baugruppe KEY und Tastatur
  • optional Baugruppe CAS und Kassettenrekorder
  • optional Baugruppe CENT und Drucker
  • Auf der Speicher-Baugruppe ROA64 werden mindestens das Grundprogramm ab Adresse $0000 und das BASIC ab Adresse $4000 benötigt. Zusätzlich müssen ab Adresse $8000 mindestens 8 kByte RAM verfügbar sein. Der Quelltext eines BASIC Programmes wird ab der Adresse $8800 abgelegt, der Bereich von $8000 bis $87FF ist für BASIC reserviert.

    Bedienungshinweise

    Anders als in den beiden PDF angegeben, erscheint nachdem das ROM aus dem Grundprogramm an Adresse $4000 gestartet wurde, zunächst nur ein Fragezeichen. Beim Start des BASIC Interpreters kann man zwischen 2 verschiedenen Modi (Kaltstart und Warmstart) wählen.

    Kaltstart

    Wenn nach dem Start des Interpreters ein großes C (SHIFT+C) eingetippt wird erfolgt ein Kaltstart des Interpreters. Der Programm und Variablenspeicher ist dann frisch initialisiert, die Einschaltmeldung erscheint wie folgt:

    8K BASIC 1.3
    RDK 83
    o.k.
    >
    

    Warmstart

    Bei einem RESET der Prozessors wird wieder das Grundprogramm gestartet. Da der Speicher nicht gelöscht wurde sind ein eventuell zuvor eingegebenes Programm oder definierte Variablen noch im Speicher vorhanden. Nach dem Neustart des Interpreters erreicht man durch die Eingabe des Buchstabens W (SHIFT+W) einen sogenannten Warmstart, bei dem das noch bestehende Programm erhalten bleibt. Die Einschaltmeldung ist verkürzt.

    o.k.
    >
    

    Den Warmstart kann man nur benutzen, wenn der BASIC Interpreter tatsächlich vorher schon einmal benutzt wurde. Ohne Initialisierung führt der Versuch eines Warmstarts zum Absturz des Systems. Der Warmstart ist hilfreich wenn man über eine batteriegepufferte Speicherkarte verfügt. Damit bleibt der Inhalt des RAM auch erhalten, wenn das System von der Stromversorgung getrennt wird.

    Variablenbezeichner

    Variablen können durch das Schlüsselwort LET oder einfach durch die erste Verwendung initialisiert werden. Namen von Variablen dürfen aus maximal 5 Zeichen beginnend mit einem Buchstaben bestehen. Außerdem bürgen Namen von Variablen keines der BASIC Schlüsselwörter (siehe unten) enthalten. Falls ein ungültiger Variablenname verwendet wird erzeugt dies einen Syntax-Fehler (SN). Bei Variablen wird nicht zwischen Groß- und Kleinbuchstaben unterschieden.

    ANZ     - gültiger Variablenname
    X15     - gültiger Variablenname, Ziffern sind erlaubt
    ROHR    - gültiger Variablenname
    ATOM    - ungültig, enthält das Schlüsselwort TO
    ENDE    - ungültig, enthält das Schlüsselwort END
    FREI    - ungültig, enthält den Namen der Funktion FRE
    ORDER   - ungültig, enthält das Schlüsselwort OR
    ABCDEF  - ungültig, Name zu lang
    

    Während der Programmausführung

    • Ein Druck auf die Taste ESC bricht das laufende Programm an der aktuellen Stelle ab.
      Das Programm kann danach durch den Befehl CONT fortgeführt werden.

    • Ein Druck auf die Taste HOME pausiert das laufende Programm an der aktuellen Position.
      Bildschirmausgaben werden gestoppt. Ein weiterer Druck auf HOME setzt die Ausführung fort.
      Die Tastenkombination CTRL + O hat den gleichen Effekt.

    • STRL + S pausiert das Programm, im Gegensatz zu CTRL + O erscheint ein blinkender Cursor.
      Ein so pausierte Programm kann mit CTRL + Q fortgesetzt werden.

    Unterstützte Befehle & Funktionen

    Um den internen Aufbau des Interpreters einfach zu halten haben viele Funktionen einen Parameter, obwohl dieser nicht benötigt wird. Ein Beispiel ist die Funktion FRE() bei der als Parameter eine Ziffer angegeben werden muss FRE(0). Eine andere Besonderheit ist, dass beim Befehl CSAVE kein Dateiname angegeben werden kann.

    Direkte Kommandos

  • CONT - Fortführen eines mit STOP unterbrochenen Programms
  • LIST - Ausgabe des Programms auf dem Bildschirm
  • LLIST - Ausgabe des Programms auf dem Drucker
  • NEW - Löschen des Programms und der Variablen
  • RUN - Ausführen des Programms
  • Basic-Befehle

  • CALL x - Aufruf eines Maschinensprache-Pragramms an Adresse x
  • CLEAR - Löschen aller Variablen
  • CLEAR x - Löschen aller Variablen und Reservierung von Speicher für Variablen
  • CSAVE - Speichern des Programms auf Kassette
  • CLOAD - Laden eines Programms von Kassette
  • DATA x, ... - Festlegung von Daten für READ
  • DEF FN - Definieren von Funktionen
  • DIM - Reservieren von Speicher für Arrays
  • END - Encekennung für das Programm
  • FOR x = y TO z STEP n - Bildung einer Zählschleife
  • GOSUB x - Aufruf eines Unterprogramms ab Zeile x
  • GOTO x - Sprung nach Zeile x
  • IF x = y THEN (GOTO) z - Sprung nach Vergleichen zweier Werte
  • INPUT - Abfrage eines einzugebenden Wertes
  • LET - Wertzuweisung an eine Variable
  • LPRINT x - Ausgabe auf dem Drucker
  • NEXT x - Ende einer FOR Schleife
  • NULL x - Setzen der Ausgabeposition links
  • ON x GOTO a, ... - Variable Programmausführung
  • OUT x,y - Ausgabe von Daten an IO Ports
  • POKE x,y - Beschreiben des Speichers an Adresse x mit dem Wert y
  • PRINT - Textausgabe auf dem Bildschirm
  • READ - Einlesen des nächsten mit DATA definierten Wertes
  • REM - Festlegen eines Kommentars
  • RESTORE - Rücksitzen des DATA Zählers
  • RETURN - Rücksprung aus einem Unterprogramm
  • STOP - Anhalten des Programms
  • USR(x) - Aufruf einer Maschinensprache-Funktion mit Rückgabe
  • WAIT x,y,z - Einlesen des IO Ports x mit nachfolgenden Verknüpfungen
  • Grafik-Befehle

  • CLRS - Löschen des Bildschirms
  • DRAWTO x,y - Zeichnen einer Linie zu den angegebenen Koordinaten
  • MOVETO x,y - Bewegend der Zeichenposition an die angegebenen Koordinaten
  • PAGE n,m - Festlegen der Schreib- und Leseseite der GDP64
  • SPC(x) - Vorrücken des Cursors um x Stellen
  • TAB(x) - Setzen des Cursors auf Position x vom linken Rand gemessen
  • Funktionen

  • FRE(x) - Rückgabe des verfügbaren Speicherplatzes ab 8800h
  • INP(x) - Einlesen von Daten von einem IO Port x
  • PEEK(x) - Einlesen eines Wertes aus dem Speicher von Adresse x
  • POS(x) - Rückgabe der Cursorposition auf der aktuellen Zeile
  • USR(x) - Aufruf eines Maschinenprogramms ab Adresse x
  • Arithmetische Funktionen

  • ABS(x) - Bildung des Absolut-Wertes von x
  • ATN(x) - Bildung des Arcustangens-Wertes von x
  • COS(x) - Bildung des Cosinus-Wertes von x
  • EXP(x) - Bildung der Potenz zur Basis e
  • INT(x) - Bildung des Ganzzahlwertes (Integer) von x
  • LOG(x) - Bildung des natürlichen Logarithmus von x
  • RND(x) - Bildung einer Zufallszahl zwischen 0 und 1
  • SGN(x) - Bildung des Vorzeichens (Signum) von x
  • SIN(x) - Bildung des Sinus-Wertes von x
  • SQRx() - Bildung der Quadratwurzel von x
  • TAN(x) - Bildung des Tangens-Wertes von x
  • String-Funktionen

  • ASC() - Rückgabe des Binärwertes eines ASCII Zeichens
  • CHR$(x) - Wandlung des ASCII Wertes in das zugehörige Zeichen
  • HEX(x$) - Wandlung eines sedezimalen Strings in einen dezimalen Wert
  • LEFT$(x$,n) - Rückgabe der ersten n Zeichen eines Strings
  • LEN(x$) - Rückgabe der Länge eines Strings
  • MID$(x$,n,m) - Rückgabe eines Teils eines Strings
  • RIGHT$(x$) - Rückgabe der letzten n Zeichen eines Strings
  • STR$(x) - Wandlung des Wertes x in einen Strung
  • VAL(x$) - Wandlung des Strings x$ in einen Wert
  • Operatoren

  • 4 Grundrechenarten + - * / und Zuweisung =
  • x AND y - Bitweise UND-Verknüpfung zweier Werte
  • x OR y - Bitweise ODER-Verknüpfung zweier Werte
  • NOT x - Bitweise Negierung des folgenden Wertes
  • PI - Konstante PI = 3.14.15
  • E - Leitet den Exponenten ein, z.B. 1.2E-3
  • Vergleichs - Operatoren

  • IF a < b THEN ... - a ist kleiner als b
  • IF a <= b THEN ... - a ist kleiner oder gleich b
  • IF a > b THEN ... - a ist größer als b
  • IF a >= b THEN ... - a ist kleiner oder gleich b
  • IF a = b THEN ... - a ist gleich b
  • IF a <> b THEN ... - a ist nicht gleich b
  • Beispielprogramme im Handbuch

    Im Handbuch finden sich einige kleine Beispeilprogramme anhand derer man die Syntax des Interpreters lernen kann.

    • Zeichnen eines Gitternetzes
    • Zeichnen zufälliger Quadrate
    • Zeichnen von Sinusschwingungen
    • Sinusgrafik
    • Text in verschiedenen Größen
    • Ein kleiner HEX-Monitor

    Besonderheiten

    Dimensionierung von Arrays

    Kleine Arrays müssen nicht dimensioniert werden. Die erste Verwendung eine Array-Elementes initialisiert das Array in jeder Dimension mit 10 Elementen. Zugriffe auf höhere Element-Nummern geben einen Bad Subscript Error (BS) aus. Ohne Dimensionierung zulässig sind zum Beispiel:

    • PRINT a(5)
    • PRINT m(10,10)
    • m(1,1) = 100

    Downloads

    Software Verwendung
    EBASIC 1.3
    EPROM 8 kByte
    EPROM zum Programmieren in der Sprache BASIC

    Enthält die oben beschriebenen Funktionen, 8 KByte Binärfile zum Einsatz auf ROA64
    Download ROM
    EPROM BASIC
    25 Seiten
    1,8 MByte
    Handbuch von Graf Elektronik Systeme

    Enthält die Beschreibung von BASIC für den Einsatz auf der SBC2 Baugruppe in Form von zwei EPROMs des Typs 2732. Enthält die Beschreibung aller BASIC-Befehle, Fehlermeldungen und einige Beispiel-Programme.
    Download PDF
    EPROM BASIC
    28 Seiten
    1,8 MByte
    Handbuch aus dem Francis' Verlag

    Enthält die Beschreibung von BASIC für den Einsatz auf der SBC2 Baugruppe in Form von zwei EPROMs des Typs 2732. Enthält die Beschreibung aller BASIC-Befehle, Fehlermeldungen und einige Beispiel-Programme.
    Download PDF

    Weitergehende Informationen

  • Geschwindigkeit des BASIC Interpreters
  • Tipps zur Programmierung in BASIC