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
|
(* ------------------- VERSION 3 22.04.86 ------------------- *)
PACKET dataspace DEFINES
:= ,
nilspace ,
forget ,
type ,
heap size ,
storage ,
ds pages ,
next ds page ,
blockout ,
blockin ,
ALIGN :
LET myself id field = 9 ,
lowest ds number = 4 ,
highest ds number = 255 ;
TYPE ALIGN = ROW 252 INT ;
OP := (DATASPACE VAR dest, DATASPACE CONST source ) :
EXTERNAL 70
ENDOP := ;
DATASPACE PROC nilspace :
EXTERNAL 69
ENDPROC nilspace ;
PROC forget (DATASPACE CONST dataspace ) :
EXTERNAL 71
ENDPROC forget ;
PROC type (DATASPACE CONST ds, INT CONST type) :
EXTERNAL 72
ENDPROC type ;
INT PROC type (DATASPACE CONST ds) :
EXTERNAL 73
ENDPROC type ;
INT PROC heap size (DATASPACE CONST ds) :
EXTERNAL 74
ENDPROC heap size ;
INT PROC storage (DATASPACE CONST ds) :
(ds pages (ds) + 1) DIV 2
ENDPROC storage ;
INT PROC ds pages (DATASPACE CONST ds) :
pages (ds, pcb (myself id field))
ENDPROC ds pages ;
INT PROC pages (DATASPACE CONST ds, INT CONST task nr) :
EXTERNAL 88
ENDPROC pages ;
INT PROC next ds page (DATASPACE CONST ds, INT CONST page nr) :
EXTERNAL 87
ENDPROC next ds page ;
PROC blockout (DATASPACE CONST ds, INT CONST page nr, code1, code2,
INT VAR return code) :
EXTERNAL 85
ENDPROC blockout ;
PROC blockin (DATASPACE VAR ds, INT CONST page nr, code1, code2,
INT VAR return code) :
EXTERNAL 86
ENDPROC blockin ;
ENDPACKET dataspace ;
|