Der MZ-700 hat kein fest eingebautes Basic. Neben dem serienmäßigen S-Basic kann man verschiedene andere Interpreter kaufen. Zwei Versionen auf Kassette bieten sich an.
Basic-Dialekte gibt es wie Sand am Meer. Als die Sprache vor zwanzig Jahren entwickelt wurde, stand die Computertechnik am Anfang ihrer Entwicklung. Routinen, mit denen heute jeder Heimcomputer arbeitet, waren unbekannt oder konnten nur auf sehr großen Anlagen realisiert werden. Unter diesen Bedingungen wurde Basic als Sprache für Einsteiger geschrieben und das Grundgerüst beschränkte sich auf damals notwendige Befehle.
Da Basic direktes Programmieren ohne Variablendefinition oder gar Flußplan erlaubt, bot es sich für die Heimcomputer geradezu an. Damit konnten erstmals Laien ohne Ausbildung in Datenverarbeitung programmieren. Aber die neuen Geräte leisteten viel mehr als ursprünglich in der Sprache vorgesehen war. Jeder Hersteller baute deshalb in sein Basic spezielle Befehle ein. An eine Norm dachte dabei niemand und schnell war das bekannte Sprachdurcheinander da.
Der Sharp MZ-700 ist einer der wenigen Heimcomputer, die im ROM keinen Basic-Dialekt fest eingebaut haben. Zwar wird mit dem Computer das S-Basic — eine spezielle Basic-Version von Sharp für den MZ-700 — geliefert, aber der Interpreter muß jedesmal von Kassette neu geladen werden. Der MZ-700 bietet sich deshalb für andere Sprachen, auch für andere Basic-Dialekte, direkt an.
So kann man das S-Basic mit BAS MOD 700 um viele Befehle zur strukturierten Programmierung erweitern. Die Erweiterung für den Interpreter wird für 100 Mark auf Kassette geliefert. Das Laden dieser Erweiterung ist etwas umständlich, da man zuerst das S-Basic im Computer speichern und anschließend in den Monitor zurückkehren muß. Dann erst darf man BAS MOD 700 laden. Allerdings wird im mitgelieferten Handbuch beschrieben, wie man sich die so erweiterte Basic-Version auf Band speichern kann.
Besonders Freunde strukturierter Sprachen, wie beispielsweise Pascal, werden über die neuen Befehle, die das erweiterte Basic zur Verfügung stellt, begeistert sein. »REPE-AT...UNTIL...« und »WHILE...WEND« bearbeiten eine Schleife solange bis eine Bedingung erfüllt ist. Bei »REPEAT..UNTIL...« steht diese Bedingung am Ende der Schleife, bei »WHILE...WEND« am Anfang. Hieraus folgt, daß jede »REPEAT...UNTIL...«-Schleife mindestens einmal, die »WHILE.. .WEND«-Schleife manchmal aber gar nicht abgearbeitet wird. GOTO- und GOSUB-Sprünge müssen nicht auf eine bestimmte Zeilennummer erfolgen, es dürfen Labels gesetzt werden.
Auch Bedingungen können übersichtlicher gestaltet werden. Die »IF...THEN...«-Anweisung ist um ELSE erweitert. Nicht erfüllte Bedingungen können damit auch eine bestimmte Befehlsfolge aufrufen. Weitere Befehle helfen bei Druckersteuerung, Tonerzeugung oder der Arbeit mit Maschinensprache. Einzelne Zeichen werden auf Bildschirm, Band oder Drucker ausgegeben und eine Hardcopy wird ganz einfach mit COPY geplottet.
Boolsche Algebra ist für den MZ-700 mit BAS MOD 700 kein Fremdwort mehr. AND, OR und NOT erlauben eine Verknüpfung verschiedener Bedingungen und die entsprechende Bearbeitung.
Alle Befehle können abgekürzt werden. Maximal drei Buchstaben sind notwendig, um einen Befehl eindeutig zu charakterisieren.
Trotz vieler neuer Befehle belegt der erweiterte Interpreter nicht mehr Speicherplatz als das Original-S-Basic. Eine Lücke im Interpreter haben die Entwickler für ihre Erweiterung genutzt. Das S-Basic ist auch schon für viele zusätzliche Befehle vorbereitet, wie ELSE, Labels und boolsche Algebra. Der neue Interpreter ist ein Beispiel dafür, wie man ungenutzte Fähigkeiten optimal ins Spiel bringt.
Der zweite Basic-Interpreter (Preis: 160 Mark) wird auch auf Kassette geliefert. Er benötigt aber nicht das S-Basic als Grundlage, sondern ist vollständig unabhängig. Ein Handbuch mit mehr als 200 Seiten erklärt alle Befehle, auch schon bekannte Standardanweisungen.
Ein wichtiges Merkmal ist die doppelte Rechengenauigkeit, mit der das HuBasic arbeitet. Ähnlich wie bei Pascal werden Variablen mit bestimmten Eigenschaften am Anfang des Programms vereinbart. Die Zahlen werden bis zu einem Absolutwert von 1038 korrekt behandelt. Klein eingegebene Buchstaben werden in große umgewandelt, sofern sie nicht Teil eines Strings sind.
Der Basic-Interpreter belegt die Tastatur automatisch mit verschiedenen Funktionen für Cursor-, Bildschirm- und Textsteuerung. Fehler werden in Deutsch und nicht in Englisch angezeigt. Damit erklären sie sich meist selbst, aber sicherheitshalber werden sie im Handbuch noch einmal beschrieben.
Wie BAS MOD 700 kennt auch HuBasic Befehle für strukturierte Programme und boolsche Algebra. Überhaupt sind fast alle Befehle des erweiterten S-Basic vorhanden. Eingaben des Benutzers können direkt vom Bildschirm gelesen werden.
Der Befehlssatz des HuBasic ist sehr umfangreich. Neben den üblichen Befehlen erhält man mit SE-ARCH einen speziellen Suchbefehl für Zeichenketten. Daten können direkt von Kassette auf den Bildschirm oder den Plotter ausgegeben werden. Den Plotter — oder auch einen Drucker — spricht man übrigens mit den gängigen Befehlen LLIST und LPRINT an und nicht wie im S-Basic üblich mit dem Zusatz /P.
Spezielle Befehle für Bildschirmsteuerung, Datei- und Fehlerbearbeitung machen, neben Anweisungen für den Plotter beziehungsweise Drucker, den Interpreter zu einer runden Sache. Viele Funktionen, wie Befehle zur Konvertierung verschiedener Zahlentypen oder zur Spiegelung einer Binärzahl (aus 00111001 wird dann 10011100), sind sonst in Basic-Dialekten unbekannt.
Mit Sicherheit gewinnt der MZ-700, wenn man ihn mit einem verbesserten Basic-Interpreter betreibt. HuBasic ist für den MZ-700-Besitzer geeignet, der sich die Arbeit mit anspruchsvollen Programmen erleichtern will. Allerdings geht ein großes Maß an Kompatibilität verloren. Da das BAS MOD 700 auf das S-Basic zurückgreift, sind seine Programme leichter auf fremde Sharp-Computer zu übertragen. Dafür ist aber der Befehlssatz nicht so umfangreich. Eine Empfehlung wäre hier fehl am Platze, da jeder andere Ansprüche an seinen Interpreter stellt. (hg)
Befehlssatz der Erweiterung BAS MOD 700
AND
OR
NOT
DEEK
PUT
ELSE
TONE
QUIET
BEEP
LABEL
DOKE
WHILE
WEND
REPEAT
UNTIL
COPY
CALL
Befehlssatz des HuBasic
ABS
AND
ASC
ATN
AUTO
AXIS
BEEP
BIN$
BOOT
CALL
CINT/CSNG/CDBL
CHAIN
CHARACTER$
CHR$
CIRCLE
CLEAR
CLICK ON/OFF
CLOSE
CLS
COLOR
CONSOLE
CONT
COS
CSRLIN
CURSOR/LOCATE
CVI/CVS/CVD
DATA
DEF FN
DEF TYP
DEF KEY
DEF USR
DELETE
DEVICE
DEVI$
DEVO$
DIM
DTL
EDIT
END
EOF
ERL
ERR
ERROR
EXP
FAC
FILES
FIX
FN
FOR...TO...STEP
FPOS
FRAC
FRE
GOSUB
GOTO
GPRINT
HEX$
HSET
IF...THEN...ELSE
INIT
INKEY$
INP
INPUT
INPUT#
INPUT$
INSTR
INT
KEY
KEYLIST
KEYO
LABEL
LEFT$
LEN
LET
LFILES
LIMIT
LINE
LINPUT/LINE INPUT
LINPUT#/LINE INPUT
LIST LLIST
LOAD/LOADM
LOAD?/VARIFY
LOC
LOCATE
LOF
LOG
LPOS
LPRINT
MAXFILES
MEM$
MERGE
MID$
MIRRORS
MKI$/MKS$/MKD$
MON
MODE
MOVE
MUSIC
NEW
NEWON
NEXT
NOT
OCT$
ON..GOTO/GOSUB/RETURN/ RESTORE/RESUME
ON ERROR GOTO OPEN
OPTION BASE
OR
OUT
PAGE
PAI
PAUSE
PCOLOR
PEEK
PEEK$
PHOME
PLAY
POKE
POKE$
POS
PRESET
PRINT
PRINT#
PRINT USING
PSET
RAD
RANDOMIZE
READ
REM
RENUM
REPEAT
REPEAT ON/OFF
RESTORE
RESUME
RETURN
RLINE
RMOVE
RIGHT$
RND
RUN
SAVE/SAVEM
SCRN$
SEARCH
SGN
SIN
SIZE
SKIP
SPACE$/SPC
SQR
STOP
STRING$
STRPTR
STRS
SUM
SWAP
TAN
TEMPO
TEST
TIME$
TRON/TROF
UNTIL
USR
VAL
VARPTR
WAIT
WHILE/WEND
WRITE
WRITE#