# Business Basic

Business BASIC ist eine zur BASIC-Familie gehörende Programmiersprache. Dabei handelt es sich um eine reine Interpreter-Sprache. Dies bedeutet, dass nach einer Kodierung der Programme kein Kompilationslauf erfolgen musste. Die eingegebenen Anweisungen wurden von einem Interpreter zeilenweise ausgeführt. Dies bedeutete für den Programmierer, dass eingegebene Zeilen vom Interpreter sofort geprüft wurden. War die Anweisung fehlerhaft, so wies der Interpreter die Eingabe mit einem entsprechenden Kommentar ab.

## Geschichte

Im Jahre 1975 entwickelte die Paderborner Firma Nixdorf das Magnetplattensystem 8870/1, das in den Bereich der sogenannten „Mittleren Datentechnik“ gehörte. Dieses System konnte mit mehreren Terminals verbunden werden. Anwendungen wurden im Business Basic programmiert.
Eine der bekanntesten Applikationen war die kaufmännische Anwendung COMET, die noch heute im Einsatz ist. COMET war in den 70er und 80er Jahren überaus erfolgreich und wurde bei ca. 200 Branchen eingesetzt.

## Funktionsweise

Beim Business Basic waren Variablennamen nur als einfache Buchstaben mit einer Zahl erlaubt, z. B. K1$ für ein Stringfeld (Textfeld) oder bspw. P1 als numerisches Feld. Die Größe eines alphanumerischen Feldes hing von der Größe der Plattenpartition ab. Am Ende des Strings befand sich immer noch ein sogenanntes Grenzzeichen (ASCII Hexadezimal 00), das das Ende des Strings markierte.
Numerische Felder gab es als einfache Variablen oder als sogenannte Vektoren (Arrays). Dies waren mehrdimensionale Felder mit mehreren Elementen. So war bspw. A(9) ein Vektor mit 10 Elementen (A(0) bis A(9)). Ein Vektor B(3,9) war ein Vektor mit 4×10 Elementen: B(0,0)…B(0,9), B(1,0)…B(1,9), B(2,0)…B(2,9) und B(3,0)…B(3,9).
Dimensioniert werden konnten folgende Typen:
* 1 %, 2 Bytes groß, maximale Darstellung von 4 Zeichen, maximale Wertigkeit von ±7.999.
* 2 %, 4 Bytes groß, maximale Darstellung von 6 Zeichen, maximale Wertigkeit von ±0,999999E+63.
* 3 %, 6 Bytes groß, maximale Darstellung von 10 Zeichen, maximale Wertigkeit von ±0,9999999999E+63.
* 4 %, 8 Bytes groß, maximale Darstellung von 14 Zeichen, maximale Wertigkeit von ±0,99999999999999E+63.
Nach damaligen Maßstäben war Business Basic eine einfach zu erlernende und mächtige Programmiersprache. Unterstützt wurde dieses Basic von Maschinenprogrammen, die durch den CALL-Befehl aufgerufen wurden und unzählige komfortable Funktionen zur Verfügung stellten. Später wurde dieses Basic bspw. auf das Cross-Basic umgestellt, um dann u. a. auf Siemens MX- und RM-Rechnern zu laufen. Für die Windows-Welt gibt es noch heute das NetBasic als 16- und als 32-Bit-Version.
Für den Betrieb unter SCO Unix, Linux und Solaris wird noch heute eine aus Business Basic abgeleitete Version namens „UniBasic“ vertrieben. Die Oberfläche ist noch immer ASCII-orientiert – einige „moderne“ Features wie Fenster, Datenbanken usw. werden mittlerweile unterstützt. Unter dem Namen „DL-4“ existiert eine auf UniBasic/Business Basic basierende Version, die auch unter Windows lauffähig ist.
Für Siemens-Nixdorf-Systeme (SNI) MX- und RM-Systeme, auf denen das Unix-Derivat SINIX lief, gab es Crossbasic, das heute nicht mehr gepflegt wird.

## Kurzliste der Anweisungen

| Anweisung | Beschreibung |
| BUILD # | Anlegen von Magnetplattendateien (relative Textdateien, keine Indexdateien, siehe BUILDXF) |
| BUILDXF | BASIC-Programm, keine Anweisung. Erstellt nach Eingabe der entsprechenden Parameter mit Hilfe von BUILD #- und SEARCH #-Anweisungen eine Indexdatei |
| CALL | Aufruf von Maschinencode-Unterprogrammen (in Unibasic auch von eigenen (in Unibasic geschriebenen) Makros) |
| CHAIN | Aufruf eines weiteren Basic-Programms (ohne Werteübergabe, siehe auch LINK) |
| CLEAR | Löscht Variablenwerte |
| CLOSE # | Schließen von Datenkanälen (siehe OPEN #) |
| DIM | Dimensionierung von Variablen (Bereitstellen von Speicherplatz) |
| GOSUB | Aufruf eines Unterprogrammes (Zeilennummer oder Label (nur in Unibasic oder DL4)) |
| GOTO | unbedingter Sprung zu einer Programmzeile (Zeilennummer oder Label (nur in Unibasic oder DL4)) |
| LINK | Aufruf eines weiteren Basic-Programms (mit Werteübergabe, siehe auch CHAIN) |
| OPEN # | Öffnen eines Datenkanals (Magnetplattendatei oder Gerätetreiber) |
| READ # | Lesen aus Magnetplattendateien oder Gerätetreibern |
| PRINT # | Schreiben in Dateien / Ausgabe auf Druckern |
| SEARCH # | Bearbeiten von Schlüsselverzeichnissen oder suchen in Schlüsselverzeichnissen in einer Indexdatei |
| SYSTEM | Aufruf eines Systembefehls |
| WRITE # | Schreiben in Dateien |

## Quellen

* Nixdorf 8870 Business-BASIC Handbuch (Stand: 1. Juni 1985)