-
Notifications
You must be signed in to change notification settings - Fork 0
/
EMITTER.PAS
49 lines (40 loc) · 1.33 KB
/
EMITTER.PAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
(**************************************************)
(* Programmname : EMITTER.PAS *)
(* Programmautor : Michael Rippl *)
(* Compiler : Turbo Pascal V5.0 *)
(* Letzte Änderung : 12-Apr-1990 *)
(* Inhalt : Codeerzeugung von PASCAL.PAS *)
(* Bemerkung : Include Datei von PASCAL.PAS *)
(**************************************************)
(* Funktion ohne Parameter *)
PROCEDURE Emit(Func : Orders);
BEGIN
IF ProgCount = CodeMax THEN Fatal(4); (* Programm zu groß *)
Code^[ProgCount].f := Func;
ProgCount := ProgCount + 1;
END; (* Emit *)
(* Funktion mit einem Parameter *)
PROCEDURE Emit1(Func : Orders; Offset : INTEGER);
BEGIN
IF ProgCount = CodeMax THEN Fatal(4); (* Programm zu groß *)
WITH Code^[ProgCount] DO
BEGIN
f := Func;
y := Offset;
END;
ProgCount := ProgCount + 1;
END; (* Emit1 *)
(* Funktion mit zwei Parametern *)
PROCEDURE Emit2(Func : Orders; Level, Offset : INTEGER);
BEGIN
IF ProgCount = CodeMax THEN Fatal(4); (* Programm zu groß *)
WITH Code^[ProgCount] DO
BEGIN
f := Func;
x := Level;
y := Offset;
END;
ProgCount := ProgCount + 1;
END; (* Emit2 *)
(* END EMITTER.PAS *)