system/spooler/1.8.7-net/src/spool cmd

Raw file
Back to index

PACKET spool cmd                                    (* Autor: R. Ruland  *)
                                                    (* Stand: 01.04.86   *)
       DEFINES killer,
               first,
               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) 
 
  . 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;