*DECK BATCJOB 
USETEXT COMCBEG 
USETEXT COMRRTN 
PROC BATCJOB(SYOT); 
# TITLE  BATCJOB - BATCH JOB TO INPUT QUEUE # 
  
      BEGIN # BATCHOB # 
  
# 
**    BATCJOB - BATCH JOB TO INPUT QUEUE. 
* 
*     WRITES JOB TO AND QUEUE FILE AND BATCHES THE FILE 
*     TO THE INPUT QUEUE. 
* 
*     PROC BATCJOB(SYOT). 
* 
*     ENTRY   - JOB HAS BEEN SET UP AT LOCATION JOBNAME.
* 
*     EXIT    - JOB HAS BEEN BATCHED TO THE INPUT QUEUE.
* 
*     PROCESS - REQUEST FILE ON QUEUE DEVICE. 
*               REWIND FILE.
*               WRITE JOB TO FILE.
*               BATCH FILE TO INPUT QUEUE.
# 
  
      ITEM SYOT  B;                  # SYSTEM ORIGIN REQUIRED FLAG #
  
# 
****  PROC BATCJOB - XREF LIST BEGIN
# 
  
      XREF
        BEGIN 
        PROC CALLSYS;                # MAKE RA + 1 REQUEST #
        PROC WAITR;                  # WAIT FOR COMPLETE BIT SET #
        ITEM JOBNAME;                # FWA OF INPUT JOB # 
        ITEM JOBLGTH;                # LENGHT OF INPUT JOB #
        ITEM OVL2FLG;                # SECONDARY OVERLAY FLAG # 
        END 
  
# 
****  PROC BATCJOB - XREF LIST END
# 
  
      ARRAY JREQ [0:0] S(2);         # REQUEST PARAMETER BLOCK #
        BEGIN 
        ITEM JREQZZZZRJ C(00,00,07) = ["ZZZZZRJ"];
        ITEM JREQCOMPST I(00,42,18);
        ITEM JREQERRCOD U(00,46,05);
        ITEM JREQWORD1  I(01,00,60);
      CONTROL IFEQ OS$NOSBE;
        ITEM JREQ$Q     B(01,04,01);
        ITEM JREQ$AUTO  B(01,31,01);
        ITEM JREQ$NODF  B(01,39,01); # SUPPRESS DAYFILE MESSAGE # 
      CONTROL ENDIF;
      CONTROL IFEQ OS$NOS;
        ITEM JREQDT     C(01,00,02) = ["IN"]; 
      CONTROL ENDIF;
        END 
  
      ARRAY REQCALL [0:0] S(1); 
        BEGIN 
        ITEM REQCALLWD  I(00,00,60) = [0];
      CONTROL IFEQ OS$NOSBE;
        ITEM REQCALLNAM C(00,00,03) = ["REQ"];
        ITEM REQCALLRCL B(00,19,01) = [TRUE]; 
      CONTROL ENDIF;
      CONTROL IFEQ OS$NOS;
        ITEM REQCALLNAM C(00,00,03) = ["LFM"];
        ITEM REQCALLRCL B(00,19,01) = [TRUE]; 
        ITEM REQCALLCD  U(00,24,12) = [O"15"];
      CONTROL ENDIF;
        ITEM REQCALLPRM I(00,42,18);
        END 
  
      ARRAY JFET [0:0] S(5);         # FET FOR WRITING CONTROL STMTS #
        BEGIN 
        ITEM JFETZZZZRJ C(00,00,07) = ["ZZZZZRJ"];
        ITEM JFETCODES  U(00,42,18) = [1];
        ITEM JFETLEVEL  U(00,42,04);
        ITEM JFETERRCOD U(00,46,05);
        ITEM JFETCDSTAT U(00,51,09);
        ITEM JFETWORD1  I(01,00,60) = [0];
        ITEM JFETEPBIT  B(01,00,60) = [TRUE]; 
        ITEM JFETFIRST  I(01,42,18);
        ITEM JFETIN     I(02,00,60);
        ITEM JFETOUT    I(03,00,60);
        ITEM JFETWORD4  I(04,00,60) = [0];
        ITEM JFETLIMIT  I(04,42,18);
        END 
  
      ARRAY CIOCALL [0:0] S(1); 
        BEGIN 
        ITEM CIOCALLWD  I(00,00,60) = [0];
        ITEM CIOCALLNAM C(00,00,03) = ["CIO"];
        ITEM CIOCALLRCL B(00,19,01) = [TRUE]; 
        ITEM CIOCALLFET I(00,42,18);
        END 
  
      ARRAY ROUTEBLOCK [0:0] S(10);  # PARM BLOCK FOR ROUTING TO IN Q#
        BEGIN 
        ITEM ROUTWD0    I(00,00,60) = [0];
        ITEM ROUTNAME   C(00,00,07) = ["ZZZZZRJ"];
        ITEM ROUTCOMCOD U(00,42,18);
        ITEM ROUTERRCOD U(00,42,06);
        ITEM ROUTOTF   B(00,48,01); # NOS - ORIGIN TYPE SPECIFIED FLAG# 
        ITEM ROUTSYOT  U(00,53,06) = [0]; # NOS - ORIGIN TYPE = SYOT #
        ITEM ROUTCOMPLT B(00,59,01);
        ITEM ROUTWD1    I(01,00,60) = [0];
      CONTROL IFEQ OS$NOS;
        ITEM ROUTSC     B(01,39,01) = [TRUE];  # SERVICE CLASS FLAG # 
      CONTROL ENDIF;
        ITEM ROUTNOCAT  B(01,14,01) = [TRUE];  # DONT CATALOG FILE #
        ITEM ROUTDISPCD C(01,24,02) = ["IN"];  # SEND TO INPUT Q #
        ITEM ROUTPRBIT1 B(01,50,01) = [TRUE];  # PRIORITY FLAG #
      CONTROL IFEQ OS$NOS;
        ITEM ROUTEXTBLK B(01,53,01) = [TRUE];  # ROUTE EXTENDED BLK # 
      CONTROL ENDIF;
        ITEM ROUTDC     B(01,55,01) = [TRUE];  # DISP. CODE FLAG #
      CONTROL IFEQ OS$NOSBE;
        ITEM ROUTSTA    B(01,56,01) = [TRUE];  # USE SID IN WORD 2 FLG #
      CONTROL ENDIF;
        ITEM ROUTCENTRL B(01,58,01) = [TRUE];  # ROUTE TO CENTRAL # 
        ITEM ROUTWD2    I(02,00,60) = [0];
      CONTROL IFEQ OS$NOSBE;
        ITEM ROUTSID    C(02,00,03) = ["$RH"];  # $RH SOURCE ID # 
      CONTROL ENDIF;
        ITEM ROUTWD3    I(03,00,60) = [0];
        ITEM ROUTPRBIT2 B(03,47,01) = [TRUE];  # 2ND PRIORITY FLAG #
        ITEM ROUTPRIOR  U(03,48,12) = [O"7777"];
        ITEM ROUTWD4    I(04,00,60) = [0];
      CONTROL IFEQ OS$NOS;
        ITEM ROUTCTSC   C(04,12,02) = ["CT"];  # "CT" SERVICE CLASS # 
      CONTROL ENDIF;
        ITEM ROUTWD5    I(05,00,60) = [0];
        ITEM ROUTWD6    I(06,00,60) = [0];
        ITEM ROUTWD7    I(07,00,60) = [0];
        ITEM ROUTEFOSPC B(07,58,01) = [TRUE];  # FAM USER ORD SPEC #
        ITEM ROUTWD8    I(08,00,60) = [0];
        ITEM ROUTEFMUOR C(08,00,07) = ["SYSTEMX"];
        ITEM ROUTWD9    I(09,00,60) = [0];
        END 
  
      ARRAY DSPCALL [0:0] S(1);      # ROUTE CALL (PP ROUTINE DSP) #
        BEGIN 
        ITEM DSPCALLWD  I(00,00,60) = [0];
        ITEM DSPCALLNAM C(00,00,03) = ["DSP"];
        ITEM DSPCALLRCL B(00,19,01) = [TRUE]; 
        ITEM DSPCALLPRM I(00,42,18);
        END 
  
CONTROL EJECT;
  
      IF OVL2FLG NE 0 
      THEN
        BEGIN 
        CIOCALLRCL = FALSE; 
        DSPCALLRCL = FALSE; 
        END 
      ELSE
        BEGIN 
        CIOCALLRCL = TRUE;
        DSPCALLRCL = TRUE;
        END 
  
      JREQCOMPST = 0; 
      JREQWORD1  = 0; 
    CONTROL IFEQ OS$NOSBE;
      JREQ$Q     = TRUE;
      JREQ$AUTO  = TRUE;
      JREQ$NODF = TRUE; 
    CONTROL ENDIF;
    CONTROL IFEQ OS$NOS;
      JREQDT = "IN";
    CONTROL ENDIF;
      REQCALLPRM = LOC(JREQ); 
      CALLSYS(REQCALL);          # REQUEST ZZZZZRJ ON Q DEVICE #
  
      JFETFIRST = JOBNAME;
      JFETOUT = JOBNAME;
      JFETIN = JOBNAME; 
      JFETLIMIT = JOBNAME + JOBLGTH + 1;
  
      JFETCODES = CIORQ$REW;         # FIRST REWIND ZZZZZRJ # 
      CIOCALLFET = LOC(JFET); 
      CALLSYS(CIOCALL); 
      WAITR(LOC(JFET)); 
  
      JFETCODES  = CIORQ$WRTR;       # WRITE CTRL STMTS TO ZZZZZRJ #
      JFETOUT = JOBNAME;
      JFETIN = JOBNAME + JOBLGTH; 
      CALLSYS(CIOCALL); 
      WAITR(LOC(JFET)); 
  
      ROUTERRCOD = 0;                # CLEAR ERR CODE # 
      ROUTCOMPLT = FALSE;            # CLEAR COMPLETE BIT # 
      ROUTOTF = TRUE;                # FORCE SYSTEM ORIGIN #
      DSPCALLPRM = LOC(ROUTEBLOCK); 
      CALLSYS(DSPCALL);              # DISPOSE TO INPUT Q # 
      WAITR(LOC(ROUTEBLOCK)); 
  
      END  # BATCJOB #
  
      TERM
