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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
PACKET spool cmd (* Autor: R. Ruland *)
(* Stand: 01.04.86 *)
DEFINES killer, (* Be 14.01.88 *)
first, (* Umstellung Menue *)
start,
stop,
halt,
wait for halt :
LET error nak = 2 ,
entry line code = 23 ,
killer code = 24 ,
first code = 25 ,
start code = 26 ,
stop code = 27 ,
halt code = 28 ,
wait for halt code = 29 ;
DATASPACE VAR ds;
BOUND STRUCT (TEXT entry line, INT index) VAR control msg;
BOUND TEXT VAR error msg ;
INT VAR reply;
INITFLAG VAR in this task := FALSE;
PROC control spool (TASK CONST spool, INT CONST control code,
TEXT CONST question, BOOL CONST leave) :
enable stop;
initialize control msg;
WHILE valid spool entry
REP IF control question THEN control spool entry FI PER;
. initialize control msg :
IF NOT initialized (in this task) THEN ds := nilspace FI;
forget (ds); ds := nilspace; control msg := ds;
control msg. entry line := "";
control msg. index := 0;
(* say (""13""10"");*)
. valid spool entry :
call (spool, entry line code, ds, reply);
IF reply = error nak
THEN error msg := ds;
errorstop (error msg);
FI;
control msg. index <> 0
. control question :
(* say (control msg. entry line);
yes (question) *)
ja (control msg. entry line + question, "JA/spool control", leave)
. control spool entry :
call (spool, control code, ds, reply);
IF reply = error nak
THEN error msg := ds;
errorstop (error msg);
FI;
IF leave THEN LEAVE control spool FI;
END PROC control spool;
PROC killer (TASK CONST spool) :
control spool (spool, killer code, " loeschen", FALSE)
END PROC killer;
PROC first (TASK CONST spool) :
control spool (spool, first code, " als erstes", TRUE)
END PROC first;
PROC start (TASK CONST spool) :
call (stop code, "", spool);
call (start code, "", spool);
END PROC start;
PROC stop (TASK CONST spool) :
call (stop code, "", spool);
END PROC stop;
PROC halt (TASK CONST spool) :
call (halt code, "", spool);
END PROC halt;
PROC wait for halt (TASK CONST spool) :
call (wait for halt code, "", spool);
END PROC wait for halt;
END PACKET spool cmd;
|