cdc:nos2.source:nam5871:hfspawn
Table of Contents
HFSPAWN
Table Of Contents
- [00011] PRGM HFSPAWN
- [00041] FUNC GETFIL
- [00042] PROC BLINK
- [00043] PROC MGETS
- [00044] PROC OMSG
- [00045] PROC ROUTE
- [00046] PROC XTRACE
Source Code
- HFSPAWN.txt
- *DECK HFSPAWN
- USETEXT NIPDEF
- USETEXT ACB
- USETEXT AHEADER
- USETEXT APPSTAT
- USETEXT DRHDR
- USETEXT NWLHEAD
- USETEXT NWLNTRY
- USETEXT PARAMP
- USETEXT SUPMSG
- PRGM HFSPAWN ; # SPAWN FACILITY TO BRING UP FTPI APPL. #
- STARTIMS;
- #
- *1DC HFSPAWN
- *
- * 1. PROC NAME AUTHOR DATE
- * HFSPAWN LIEM T. NGUYEN 88/01/15
- *
- * 2. FUNCTIONAL DESCRIPTION
- * THIS ROUTINE PROCESSES THE SAF/SAR SUPERVISORY MESSAGE.
- *
- * 3. METHOD USED
- * CONSTRUCT THE PFN FOR THE JOB BY CONCATINATING THE 5 CHARS
- * APPLICATION NAME TO "ZZ", THEN CALL GETFIL.
- * IF ERROR IN GETTING FILE, DAYFILE ERROR MESSAGE THEN RETURN.
- * ELSE ROUTE JOB TO THE INPUT QUEUE.
- *
- * 4. ENTRY PARAMETERS
- * PARAMP1 = ADDRESS OF THE INI/APP S.M.
- *
- *
- #
- STOPIMS;
- #
- EXTERNAL REFERENCES
- #
- XREF
- BEGIN
- FUNC GETFIL; # GET A DIRECT ACCESS PERMANENT FILE #
- PROC BLINK ; # LINK SM TO ACB #
- PROC MGETS ; # GET BUFFER FOR RESPONSE #
- PROC OMSG; # DAYFILE ERROR MESSAGE #
- PROC ROUTE; # ROUTE JOB FILE TO INPUT QUEUE #
- PROC XTRACE; # TRACE CALL #
- LABEL RJMAIN;
- END
- #
- LOCAL VARIABLES
- #
- ITEM BUFADDR ; # ADDRESS OF RESPONDING BUFFER #
- ITEM I ; # FOR INDEX #
- ITEM RSTATUS U; # RETURN STATUS OF GETFIL CALL #
- ARRAY R$NAME S(1) ;
- BEGIN
- ITEM RNAME$U U(0,0,42) ;
- ITEM RNAME C(0,0,7) ; # ROOT APPLICATION NAME FROM ACB #
- END
- ARRAY S$NAME S(1) ;
- BEGIN
- ITEM SNAME$U U(0,0,42) ;
- ITEM SNAME C(0,0,07) ; # EXTRACTED SPAWN APPLICATION NAME #
- END
- ARRAY DSPERRMSG S(4);
- BEGIN
- ITEM DSPERRTEXT C(0,0,30) = [" DSP ERROR NNB, LFN = XXXXXXX."];
- ITEM DSPERRAPPL C(2,12,07) ;
- ITEM DSPERRNN U(1,6,12); # ERROR CODE FIELD IN DAY MSG #
- ITEM DSPERREND U(3,0,60) = [0];
- END
- ARRAY SPNNAME S(1) ;
- BEGIN
- ITEM PFNAME C(00,00,07) ; # PERMENENT FILE NAME #
- ITEM SPNZZ C(00,00,02) = ["ZZ"] ;
- ITEM SPNJOBF C(00,12,05) ;
- ITEM SPNZERO U(00,42,18) = [0] ;
- END
- ARRAY SPN$MSG S(5);
- BEGIN # ERROR MESSAGE #
- ITEM MSG1$TEXT C(00,00,48) =
- ["NIP/NO HSPAWN STARTUP-ZZXXXXX NOT FOUND. "];
- ITEM MSG$APPL C(02,24,05) ; # SPAWN APPLICATION NAME #
- ITEM MSG1$END U(04,48,12) = [0];
- END
- ARRAY RPARAM P(7);
- BEGIN # ROUTE JOB PARAMETER BLOCK #
- ITEM RPAR$JOBF C(00,00,07); # NAME OF INIAPPL JOB FILE #
- ITEM RPAR$EC U(00,42,06); # ERROR CODE RESPONSE #
- ITEM RPAR$F B(00,48,01); # FORCED ORIGIN FLAG #
- ITEM RPAR$OT U(00,53,06); # FORCED JOB ORIGIN TYPE #
- ITEM RPAR$CB B(00,59,01); # COMPLETION BIT #
- ITEM RPAR$DISP C(01,24,02); # FILE DISPOSITION #
- ITEM RPAR$EP B(01,47,01); # ERROR PROCESSING FLAG #
- ITEM RPAR$FSC B(01,39,01); # FORCE SERVICE CLASS #
- ITEM RPAR$ID B(01,58,01); # ROUTE TO CENTRAL SITE #
- ITEM RPAR$DCF B(01,55,01); # DISPOSITION CODSET FLAG #
- ITEM RPAR$SC C(04,12,02); # SERVICE CLASS #
- ITEM RPAR$WD0 U(00,00,60) = [0];
- ITEM RPAR$WD1 U(01,00,60) = [0];
- ITEM RPAR$WD2 U(02,00,60) = [0];
- ITEM RPAR$WD3 U(03,00,60) = [0];
- ITEM RPAR$WD4 U(04,00,60) = [0];
- ITEM RPAR$WD5 U(05,00,60) = [0];
- ITEM RPAR$WD6 U(06,00,60) = [0];
- END
- CONTROL EJECT;
- BEGIN # HSPAWN #
- CONTROL IFEQ DEBUG,1;
- XTRACE("HSPAW"); # TRACE CALL #
- CONTROL FI;
- P<ACB> = PARAMP1 ;
- P<AHEADER> = WLADDR + AIPHSIZE ;
- P<SUPMSG> = P<AHEADER> + ABHSIZE ;
- RNAME[0] = C<0,7> ACBANAME[0] ;
- SNAME[0] = C<0,7> SAFNAME[0] ;
- MGETS(LSAFRSP+BLKHSIZE+ABHSIZE,BUFADDR,TRUE) ; # GET BUFFER FOR#
- # RESPONSE S.M. #
- P<AHEADER> = BUFADDR + BLKHSIZE ;
- ABHABT[0] = APPCMD ;
- ABHACT[0] = CT60TRANS ;
- ABHTLC[0] = LSAFRSP ;
- P<SUPMSG> = P<AHEADER> + ABHSIZE ;
- FOR I = 0 STEP 1 UNTIL 6
- DO
- BEGIN
- IF C<I,1> SNAME[0] EQ " "
- THEN
- BEGIN
- B<I*6,6> SNAME[0] = 0 ; # FORCE SPAWN NAME TO TRAILING 0#
- B<I*6,6> RNAME[0] = 0 ; # FORCE ROOT NAME TO TRAILING 0 #
- END
- END
- IF RNAME$U[0] NQ SNAME$U[0]
- THEN
- PFCSFC[0] = SAFSARA ; # APPL TRIES TO SPAWN DIFF APPL #
- ELSE
- BEGIN # APPL TRIES TO SPAWN IFSELF #
- SPNJOBF[0] = C<0,5>SNAME ; # FETCH 5 CHARS OF APPL. NAME #
- RSTATUS = GETFIL(SPNNAME,SPNNAME); # GET PFN #
- IF RSTATUS NQ 0
- THEN
- BEGIN
- MSG$APPL[0] = C<00,05>SAFNAME[0] ;
- OMSG(SPN$MSG,0); # DAYFILE ZZININD FILE NOT FOUND #
- PFCSFC[0] = SAFSARA ; # SENDING ABNORMAL BACK #
- END
- ELSE # ZZXXXXX EXISTS, NOW ROUTE JOB TO SYSTEM #
- BEGIN
- RPAR$JOBF[0] = PFNAME[0] ; # SET JOB FILE FILENAME #
- RPAR$F[0] = TRUE; # SET TO SYSTEM ORIGIN #
- RPAR$OT[0] = SYOT; # SET SYSTEM ORIGIN JOB TYPE #
- RPAR$CB[0] = FALSE; # CLEAR COMPLETION BIT #
- RPAR$DISP[0] = "IN"; # SET FILE DISPOSITION #
- RPAR$FSC[0] = TRUE; # SET FORCED SERVICE CLASS FLAG #
- RPAR$DCF[0] = TRUE; # SET DISPOSITION CODE SET #
- RPAR$EP[0] = TRUE; # SET ERROR PROCESSING FLAG #
- RPAR$ID[0] = TRUE; # SET ROUTE TO CENTRAL SITE #
- RPAR$SC[0] = "NS"; # SET NETWORK SERVICE CLASS #
- ROUTE(RPARAM,1); # ROUTE ZZININD TO INPUT QUEUE #
- PFCSFC[0] = SAFSARN ; # READY TO SEND NORMAL RESPONS#
- IF RPAR$EC[0] NQ 0
- THEN # DSP DETECTED ERROR - FILE NOT ROUTED #
- BEGIN
- DSPERRAPPL[0] = PFNAME[0] ;
- DSPERRNN[0] = RPAR$EC[0] - (RPAR$EC[0]/8)*8 +
- (RPAR$EC[0]/8)*64 + O"3333";
- OMSG(DSPERRMSG,0); # ISSUE DAYFILE MESSAGE #
- PFCSFC[0] = SAFSARA ; # NO, NO, IT IS ABNORMAL #
- END
- END
- END # APPL TRIES TO SPAWN ITSELF #
- BLINK(BUFADDR,P<ACB>) ; # LINK THE RESPONSE TO ACB #
- GOTO RJMAIN;
- END
- TERM
cdc/nos2.source/nam5871/hfspawn.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator