Spooler Programmer's Guide

Sample Perusal Process
Spooler Programmer’s Guide522287-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;