Screenshot 1
0200 28ff 022d C ... MICRO-BASIC 85
wie [41057cc41a1b1ad2e5e6d899f7b2c5a4], lediglich ein PATCH für die Verwendung von RST20 Monitoraufrufen. 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