(* ------------------- 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 ;