*DECK NPININD USETEXT NIPDEF USETEXT NBT USETEXT NHEADER USETEXT PARAMP PRGM NPININD; # PROCESS INID/MDI FROM PIP # STARTIMS; STOPIMS; # EXTERNAL REFERENCES # XREF BEGIN FUNC GETFIL; # GET A DIRECT ACCESS PERMANENT FILE # PROC OMSG; # DAYFILE ERROR MESSAGE # PROC ROUTE; # ROUTE JOB FILE TO INPUT QUEUE # PROC XTRACE; # TRACE CALL # LABEL RJMAIN; END # LOCAL DEFINITIONS # DEF PFN$IND # "ZZININD" #; # PFN OF THE INITMDI JOB FILE # # LOCAL VARIABLES # ITEM FOUND B; # NBT ENTRY FOUND INDICATOR # ITEM I I; # NBT ENTRY INDEX # ITEM INDJOBF C(7); # PFN FOR GETFIL CALL # ITEM RSTATUS U; # RETURN STATUS OF GETFIL CALL # ARRAY DSPERRMSG S(4); BEGIN ITEM DSPERRTEXT C(0,0,30) = [" DSP ERROR NNB, LFN = ZZININD."]; ITEM DSPERRNN U(1,6,12); # ERROR CODE FIELD IN DAY MSG # ITEM DSPERREND U(3,0,60) = [0]; END ARRAY RPARAM P(7); BEGIN # ROUTE JOB PARAMETER BLOCK # ITEM RPAR$JOBF C(00,00,07); # NAME OF INITMDI 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 ARRAY INDMSG1 S(5); BEGIN # ERROR MESSAGE # ITEM MSG1$TEXT C(00,00,48) = ["NIP/NO INITMDI STARTUP - ZZININD NOT FOUND."]; ITEM MSG1$END U(04,48,12) = [0]; END ARRAY INDMSG2 S(5); BEGIN # ERROR MESSAGE # ITEM MSG2$TEXT C(00,00,48) = ["NIP/BAD MDI INITIATION REQUEST RECEIVED."]; ITEM MSG2$END U(04,48,12) = [0]; END CONTROL EJECT; BEGIN # NPININD # CONTROL IFEQ DEBUG,1; XTRACE("NPIND"); # TRACE CALL # CONTROL FI; P = PARAMP1 + BLKHSIZE; # NETWORK HEADER WORD # FOUND = FALSE; FOR I = 0 STEP NBTFETNO WHILE NOT FOUND AND I LQ NBTMAXID DO # SEARCH NBT FOR MATCHING COUPLER NODE # BEGIN # FRONT END MUST BE A ND DEVICE # IF NBTIUF[I] # NBT ENTRY IS IN USE # AND NBTHN[I] EQ DN[0] THEN # FOUND MATCHING COUPLER NODE # BEGIN FOUND = TRUE; IF NBTET[I] EQ "ND" THEN # NBT ENTRY IS A MDI DEVICE # BEGIN # INITIATE INITMDI TO LOAD A DOWN MDI # INDJOBF = PFN$IND; # SET INITMDI JOB FILE PFN # RSTATUS = GETFIL(INDJOBF,INDJOBF); # GET PFN # IF RSTATUS NQ 0 THEN # INITMDI JOB NOT FOUND # OMSG(INDMSG1,0); # DAYFILE ZZININD FILE NOT FOUND # ELSE # ZZININD EXISTS, NOW ROUTE JOB TO SYSTEM # BEGIN RPAR$JOBF[0] = PFN$IND; # 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 # IF RPAR$EC[0] NQ 0 THEN # DSP DETECTED ERROR - FILE NOT ROUTED # BEGIN DSPERRNN[0] = RPAR$EC[0] - (RPAR$EC[0]/8)*8 + (RPAR$EC[0]/8)*64 + O"3333"; OMSG(DSPERRMSG,0); # ISSUE DAYFILE MESSAGE # END END END ELSE # PIP ERROR, INIT/MDI SENT ON A NON-MDI # OMSG(INDMSG2,0); # DAYFILE BAD INIT/MDI RECEIVED # END END # END FOR LOOP # GOTO RJMAIN; END TERM