[go: up one dir, main page]

Menu

[r209]: / mplcode.pp  Maximize  Restore  History

Download this file

20 lines (12 with data), 1.1 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
(* MPL - MICRO PROGRAMMING LANGUAGE / COPYRIGHT (C) 2017-2018 DEREK JOHN EVANS *)
PROCEDURE WI(I: I16); VAR PI: PI16; BEGIN {$IFDEF HPC}MOVE(I, GV.C[GP], 2);
{$ELSE}PI := PTR(ADDR(GV.C[GP])); PI^ := I;{$ENDIF}GP := GP + 2 END;
PROCEDURE WS; VAR S: REF; BEGIN S.S := PTR(ADDR(GV.C[GP])); S.S^ := GS; GP := SUCC(GP + ORD(GS[0])) END;
PROCEDURE X0(X: TXOP); BEGIN GV.C[GP] := CHR(ORD(X)); GP := SUCC(GP) END;
PROCEDURE X1(X: TXOP; I: I16); BEGIN GV.C[GP] := CHR(ORD(X)); GV.C[SUCC(GP)] := CHR(I); GP := GP + 2 END;
PROCEDURE X2(X: TXOP; I: I16); BEGIN GV.C[GP] := CHR(ORD(X)); GP := SUCC(GP); WI(I) END;
PROCEDURE X3(P: I16; X: TXOP; I: I16); VAR LP: I16; BEGIN LP := GP; GP := P; X2(X, I); GP := LP END;
PROCEDURE XT(X: TXOP; T: BOOL); BEGIN IF T THEN X := PRED(X); GV.C[GP] := CHR(ORD(X)); GP := SUCC(GP) END;
PROCEDURE XI(X: TXOP; I: I16); BEGIN IF (I >= -128) AND (I <= 127) THEN X1(PRED(X), I) ELSE X2(X, I) END;
PROCEDURE XL(I: I16); BEGIN IF (I < (ORD(XZEND) - 128)) OR (I >= 128) THEN XI(XLIM2, I)
ELSE BEGIN GV.C[GP] := CHR(I + 128); GP := SUCC(GP) END END;