LIST
5 LET I=5
10 PRINT I
15 FOR X=1 STEP 2 TO 10
16 PRINT X
17 NEXT
20 END
Start erfolgt mit:
RUN⏎
NO ERROR
SOURCE: 02900H-02947H
CODE : 02948H-029C0H
DATA : 029C1H-029C7H
IDTAB : 03F60H-03FFFH
START(_/N): ␣
Dann Leertaste!
.500000E+01 .100000E+01 .300000
E+01 .500000E+01 .700000E+01 .90
0000E+01
READY
****************************************************************
* *
* Kurzbeschreibung zum Micro-BASIC '85 (BASIC-Compiler) *
* *
****************************************************************
BASIC-Compiler auf den Adressen 200H bis 27FFH, Entry-Point=22DH
Variablen : mindestens 1 Buchs. + 4 Buchst. oder Ziffern
Zahlenformat : duale Gleitpunktzahlen
Darstellung :
x+2 x+1 Adr.x
+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! !
+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
!! b16 !Dp. b8 b7 b0
!!_____________! !!______________________________!
! ! ! !
! Exponent, dual ! duale Mantisse, Zweierkomple-
! Zweierkompl., ! mentdarstellung b14 = 2E-1
! !
+-b29 Vorzeichen +-b15 - Vorzeichen der Mantisse
des Exponenten
9999 <= x <= -9999 rundungsfreies ;ultiplizieren, Addieren,
Subtrahieren, Dezimal-Dual-Wandlung
(Indizes),
eindimensionale Felder und Dateien sind
moeglich
DAI-Eingabedateien, DAO-Ausgabedateien
Syntax der Hexakonstanten: 0FFFFH (analog IDAS-88)
physische Geraetebezeichnungen:
Ausgabegeraete : SCR (screen)
PTP (paper tape punch)
LPR (line printer)
Eingabegeraete : KEY
PTR (paper tape reader)
Aufbau einer Programmzeile:
10_DIM_7300H:A(3),B,7400H:X ---> A(1) bis A(3) auf 7300H,7303H,
7306H
B auf 7309H; X auf 7400H
INPUT vom der Datei DAI
PRINT Ausgabe von Zeichenketten in ' eingeschlossen ueber DAO
Trennzeichen , und /; bei / erhaelt DAO CR NL
ASGN Dateizuweisung
30 ASGN DAO=LPR (nach Programmstart DAO=SCR und DAI=KEY)
FORMAT Fn.m und Em -vor PRINT im Programm
Festpunktformat Exp.-Darstellung
mit n-Stellen m-Stellen nach DP
vor und
m-Stellen nach DP
OPEN, CLOSE bei Dateieroeffnung
DAI=PTR; DAO=LPR; DAO=PTP
LET muss sein, mehrere Zuweisungen mit ; als Trennzeichen
xEy nicht moeglich: LET Z=LN(Y*EXP(X))
STEP muss sein: 40 FOR X=1 STEP1 TO10
erstes NEXT bezieht sich auf letztes FOR
Schluesselwoerter:
SQR SIN COS LN EXP ATN ABS SGN INT GOTO GOSUB RETURN
CLS IF THEN ELSE STOP ON OFF LIST LLIST RUN EDIT END
IF-Anweisung: Vergleichsoperatoren: <, >, =
50 IF {arith. Ausdruck}{Vergleichsoperator}0 THEN {bedingte An-
weisung}{GOTO zn}
60 IF X<0 THEN DO oder IF X<0 THEN DO
: :
DOEND ELSE
:
DOEND
DO-Bloecke koennen verschachtelt werden.
CALL (Hexa-Adr.){(Parameterliste}) --->
70 CALL 28C4H(X,Y) entspr. PSET(X,Y)
Parameteruebergabe:
10 DIM 3000H:X,Y,A(3)
20 CALL 7430H(X,A)
ergibt als MC:
CD 30 74 CALL 7430H
00 30 DB 3000H
06 30 DB 3006H
:
:
:
MC-UP: ORG 7430H
EX (SP),HL ;_Adressuebergabe
LD E,M ; !
INC HL ; !-Adr. von X ---> DE
LD D,M ;_!
INC HL ; !
LD C,M ; !-Adr. von A ---> BC
INC HL ; !
LD B,M ;_!
INC HL
EX (SP),HL ;neue RET-Adr. ---> STACK
!
! eigene MC-Routine
!
RET
STOP Programm wartet auf Eingabe eines Leerschrittes
ON, OFF Kommandos fuer Hardwaresteuerung
{Kommando}::={Buchstabe}{Ziffer}
END logisches Programmende, muss Programm abschliessen
Arbeit mit dem EDITOR:
----------------------
RAM-Arbeitszellen 0E00H-0EFFH (Standartfunktionen hinter dem
Arithmetikpaket); Start auf Adresse 22DH; Neustart N; Restart
beliebiges Zeichen
LIST gesamtes Programm
LIST n Ziele n wird gelistet
LIST n,m von n bis m
LLIST Ausdrucken des Programms
SAVE Ausstanzen (muss im Sprungverteiler installiert werden)
LOAD Einlesen (muss im Aprungverteiler installiert werden)
EDIT zn editieren der Zeile zn, {= DEL, }= INS
RUN Uebersetzen + Fehleranzeige mit #-Zeichen ---> NO ERROR
Anzeige der Speicherbereiche, START(_/N):(Leertaste
oder RESET und sichern der Quelle mittels S-Kommando)
IDT Anzeige der Identifikatortabelle
Funktionstabelle von 3F80H bis 3FF7H, Abschluss mit 0FFH
Aufbau:
+---+---+---+---+---+---+---+---+---
! ! ! ! ! !'F'! L ! H ! naechste Funktion
+---+---+---+---+---+---+---+---+---
!___________________!46H!_______!
! !
Funktionsname als Startadresse
ASCII-Zeichen mit 0H
aufgefuellt
Wird der Editor genutzt, so beginnt der BASIC-Quellcode ab 2900H
und endet mit 0H. Nach dem Start mit RUN wird der MC buendig
hinter dem Quellcode abgelegt, gefolgt vom Variablen- und Hilfs-
variablenbereich. Die Adresse des ersten freien Speicherplatzes
wird nach erfolgter Uebersetzung angezeigt. Im Verlauf der
Uebersetzung baut der Compiler eine Adresstabelle auf, die
ruecklaeufig beginnend von 3FFFH 8-byte-weise waechst.
Autonome Nutzung des Compilers:
-------------------------------
Mit CALL COMPN (CALL 1000H) kann der Compiler auch unabhaengig
vom EDITOR genutzt werden.
IX Anf.Adr. des BASIC-Quellcodes
IY Anf.Adr. des zu generierenden MC's
BC Adr. des ersten freien Bytes hinter der Adresstabelle,
die vom Compiler generiert wird
DE Anf.Adr. des Variablenbereiches
HL Anf.Adr. des Hilfsvariablenbereiches
nach Rueckkehr folgende Info's:
A Fehler, wenn A # 0
IX Ende des Textbereiches
IY erstes freies byte hinter dem MC
DE erstes freies byte hinter dem Variablenbereich
HL erstes freies byte hinter dem Hilfsvariablenbereich
A.Kretschmer 07.09.1988