Spooler Programmer's Guide
Sample Perusal Process
Spooler Programmer’s Guide—522287-002
B-15
 ELSE
 BEGIN
 WHILE error^code = 0 DO
 BEGIN
 IF userid = job.owner^id THEN
 BEGIN
 I :=0;
 WHILE job.time^opened[i] = timestamp[i] DO I:=i+1;
 IF job.time^opened[i] > timestamp[i] THEN
 BEGIN
 current^job := job.number;
 timestamp ':=' job.time^opened FOR 3;
 END;
 END;
 job.number.<0> := 1;
 job.owner^id := userid;
 error^code := SPOOLERSTATUS(supernum, 2, 1, job);
 END;
 END;
 CALL jobstat;
 END;
?page
PROC ROOT MAIN;
 BEGIN
 INT count := 0,
 command := 0,
 jobn := 0,
 page := 0,
 number := 0,
 lines := 0,
 holdp := 0,
 location [0:7] := 8 * [" "],
 device [0:15] := 16 * [" "];
 STRING formn [0:15] := 16 * [" "],
 reportn [0:15] := 16 * [" "];
 CALL INIT;
 WHILE 1 DO
 BEGIN
 CALL comint( command,
 jobn,
 location,
 page,
 number,
 lines,
 holdp,
 device);
 CASE command OF
 BEGIN
!0 no command! ;
!1 LOC ! CALL loc (location);
!2 HOLD! CALL hold(holdp);
!3 JOB ! IF jobn = 0 THEN CALL jobstat ELSE CALL jobchange(jobn);
!4 DEV ! IF device = [ 16 * [" "] ] THEN CALL devall
 ELSE CALL dev(device);
!5 LIST! CALL list(page, number, lines);
!6 EXIT! CALL STOP;
OTHERWISE BEGIN
 CALL err(27);
 CALL STOP;
 END;
 END;
 END;
 END; 










