*DECK STRTJOB 
USETEXT COMCBEG 
USETEXT COMRAPL 
PROC STRTJOB; 
# TITLE STRTJOB - INITIATE APPLICATION PROGRAM. # 
  
      BEGIN  # STRTJOB #
  
# 
**    STRTJOB - INITIATE APPLICATION PROGRAM. 
* 
*     STRTJOB INITIATES AN APPLICATION PROGRAM. A FILE IS GENERATED 
*     CONTAINING A CONTROL STATEMENT THAT CALLS THE REQUESTED 
*     APPLICATION PROGRAM.  THIS FILE IS THEN ROUTED TO THE INPUT 
*     QUEUE FOR EXECUTION BY THE OPERATING SYSTEM.
* 
*     PROC STRTJOB. 
* 
*     ENTRY  -   APL$HEADER IS BASED ARRAY INDICATING WHICH APPLICATION 
*                  PROGRAM TO START.
* 
*     EXIT   -   JOB TO START APPLICATION PROGRAM HAS BEEN ROUTED TO
*                  THE INPUT QUEUE. 
* 
*     PROCESS - SET UP CONTROL STATEMENT RECORD.
*               BATCH JOB TO INPUT QUEUE. 
*                SET UP APPLICATION HEADER TO INDICATE ROUTING
*                COMPLETION:  
*                  SET "STARTING" BIT 
*                  SET JOB ORDINAL NON-ZERO 
*                  SET APPLICATION TABLE NETON TIMER. 
*                RETURN 
* 
* 
****  PROC STRTJOB - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        ITEM JOBNAME    I;           # ADDRESS OF JOBNAME # 
        ITEM APLNAME    I;           # ADDRESS OF APLNAME # 
        PROC BATCJOB;                # BATCH JOB TO INPUT QUEUE # 
        END 
  
# 
****  PROC STRTJOB - XREF LIST END. 
# 
  
  
      BASED ARRAY J$NAME [0:0] S(1);
        BEGIN 
        ITEM JOB$NAME   C(00,00,05);
        END 
  
      BASED ARRAY A$NAME [0:0] S(2);
        BEGIN 
        ITEM APPLNAME   C(00,00,07);
        ITEM APL$END    C(00,42,13);
        END 
  
CONTROL EJECT;
  
# 
*     BUILD REMAINDER OF CONTROL STATEMENTS TO BE WRITTEN TO ZZZZZRJ. 
# 
  
      P<J$NAME> = JOBNAME;
      P<A$NAME> = APLNAME;
      JOB$NAME = APL$NAME;           # JOB NAME OF JOB BEING STARTED #
      APPLNAME = APL$NAME;           # APPLICATION NAME BEING STARTED # 
      APL$END = ".";
  
      BATCJOB(APL$ASTART);
  
      APL$START   = TRUE; 
      APL$JOBORD  = O"7777";
      APL$TIMER   = 300;
  
      RETURN; 
      END  # STRTJOB #
  
      TERM
