Dies ist eine alte Version des Dokuments!
Erweiterung
MPBASIC kann um neue Prozeduren/Funktionen erweitert werden. s. MPBASIC, Prozedurtabelle.
Hat die Funktion nur einen Eingabeparameter, wird dieser in RR4 übergeben.
Hat die Funktion nur einen Ausgabeparameter, wird dieser in RR2 zurückgegeben.
Prozeduren mit mehr Parametern s. Beispiel2.
Beispiel1:
simple Prozedur CLS, simple Funktion LET (nicht mit dem Kommando LET verwechseln!)
17/ 8000 : 03 43 4C 53 tab_prc: db 3,"CLS"
18/ 8004 : 80 0D dw p_cls
19/ 8006 : 03 4C 45 54 db 3,"LET"
20/ 800A : 80 13 dw f_let
21/ 800C : FF db 0FFh ; Listenende
28/ 800D :
29/ 800D : 5C 0C p_cls: ld r5, #12 ; cls
30/ 800F : D6 08 18 call putch
31/ 8012 : AF ret
32/ 8013 :
40/ 8013 : 28 E4 f_let: ld R2, R4 ; Y := X
41/ 8015 : 38 E5 ld R3, R5
42/ 8017 : AF ret
Der Hex-Code ist im Speicher an %8000 abzulegen.
Nutzung in BASIC
1 PROC SETRR[8,%8000];REM Erweiterung einbinden 10 PROC CLS 20 LET A=41,B=42 30 PRINT A,B 40 PROC [A]=LET[B];PRINT LET[A] 50 PRINT A,B ES4.0: 1OSETRR[8,%8000] 10OCLS 20LA=41,B=42 30PA,B 40O[A]=LET[B] 50PLET[A] 60PA,B 9999E
in Zeile 1 wird die Erweiterung aktiviert (Reg8+9 mit Adresse der externen Prozedurtabelle laden). Zeile 10 ruft die Prozedur „CLS“ auf. Zeile 40 demonstriert den Aufruf der Funktion „LET“ via PROC. Es passiert dasselbe wie bei LET A=B. Zeile 50 kopiert den Wert aus A in eine temporäre Variable, und diese wird ausgegeben. Es passiert also dasselbe wie bei PRINT A.
Beispiel2: mehr Parameter
Parameterübergabe s. MPBASIC, Übergabe der Parameter.