cdc:nos2.source:nam5871:hpshisd
Table of Contents
HPSHISD
Table Of Contents
- [00011] PRGM HPSHISD
- [00058] PROC ABORT
- [00059] PROC BLINK
- [00060] PROC MGETS
- [00061] PROC OSCHAPP
Source Code
- HPSHISD.txt
- *DECK HPSHISD
- USETEXT NIPDEF
- USETEXT ACB
- USETEXT AT
- USETEXT AHEADER
- USETEXT APPSTAT
- USETEXT MSGIDX
- USETEXT PARAMS
- USETEXT PT
- USETEXT SUPMSG
- PRGM HPSHISD ;
- STARTIMS ;
- #
- *1DC HPSHISD
- * 1. PROC NAME AUTHOR DATE
- * HPSHISD L.T.NGUYEN 82/03/02
- *
- * 2. FUNCTIONAL DESCRIPTION :
- * SEND THE SHUT/INS SM TO ALL APPLICATIONS OR TO A SPECIFIED
- * APPLICATION.
- *
- * 3. METHOD:
- * - TO ALL APPLICATIONS ( SHISAN IS ZERO )
- * LOOP THROUGH THE AT AND FORM SHUT/INS SM FOR APPL.
- * EXCEPT NVF APPLICATION.
- * - TO A SPECIFIED APPLICATION ( SHISAN IS THE APPL. NUMBER)
- * USING SHISAN AS INDEX INTO AT. FORM AND SEND SHUT/INS SM.
- *
- * 4. INPUT PARAMS :
- * PARAMS1 - ADDRESS OF SHUTDOWN MESSAGE FROM NVF
- *
- * 5. OUTPUT PARAMS :
- * NONE.
- *
- * 6. COMDECKS CALLED
- * NIPDEF ACB AT
- * AHEADER APPSTAT MSGIDX
- * PARAMS PT SUPMSG
- * OSSIZE
- *
- * 7. ROUTINES CALLED
- * ABORT - ABORT NIP
- * MGETS - TO GET BUFFER FOR SM.
- * BLINK - LINK SM TO ACB
- * OSCHAPP - SCHEDULE THE APPLICATION
- *
- * 8.DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- * "SH/ISD ON NON-EXISTENT AN "
- * THIS IS A SECONDARY OVERLAY CALLED BY HPPUT.
- * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
- *CALL OSSIZE
- *
- *
- #
- STOPIMS ;
- XREF
- BEGIN
- PROC ABORT ;
- PROC BLINK ; # LINK SM TO ACB #
- PROC MGETS ; # GET BUFFER FOR SM #
- PROC OSCHAPP ; # SCHEDULE THE APPLICATION #
- LABEL RJMAIN ;
- END
- ITEM I ;
- ITEM IMSHUTD B ; # IMMEDIATE SHUT DOWN FLAG #
- ITEM SMADDR ; # ADDRESS OF SM #
- BEGIN # HPSHISD #
- P<SUPMSG> = PARAMS1 + BLKHSIZE + ABHSIZE ; # SH/ISD SM #
- P<SMNVF> = P<SUPMSG> ;
- IF SHISF[0]
- THEN
- IMSHUTD = TRUE ; # IMMEDIATE SHUT DOWN #
- ELSE
- IMSHUTD = FALSE ; # GRADUATE SHUT DOWN #
- IF SHISAN[0] EQ 0
- THEN
- BEGIN # SEND SHUT/INSD SM TO ALL #
- FOR I = ATHSIZE + 1 STEP 1 UNTIL ATHAN[0]
- DO
- BEGIN # LOOP THROUGH AT TO ALL ACB #
- P<ACB> = ATACBA[I] ; # ACB ADDRESS #
- IF P<ACB> NQ 0 AND NOT ATNVFN[I] AND NOT ATNVFF[I]
- THEN
- BEGIN # NONE ZERO ACB ADDRESS #
- MGETS(LSHUT + BLKHSIZE + ABHSIZE, SMADDR,TRUE) ;
- #
- SET UP APPLICATION BLOCK HEADER
- #
- P<AHEADER> = SMADDR + BLKHSIZE ;
- ABHABT[0] = APPCMD ;
- ABHACT[0] = CT60TRANS ;
- ABHTLC[0] = LSHUT ;
- #
- SET UP THE SUPERVISORY MESSAGE
- #
- P<SUPMSG> = SMADDR + BLKHSIZE + ABHSIZE ;
- PFCSFC[0] = SHUINS ;
- SHUTF[0] = IMSHUTD ;
- BLINK(SMADDR,P<ACB>) ;
- OSCHAPP(P<ACB>) ;
- END # NONE ZERO ACB ADDRESS #
- END # LOOP THROUGH AT TO ALL ACB #
- SHUTDOWN = TRUE ; # SHUTTING DOWN NETWORK #
- END # SEND SHUT/INSD TO ALL APPLS #
- ELSE
- BEGIN # SEND TO SPECIFIED APPLICATION #
- P<ACB> = ATACBA[SHISAN[0]] ; # APPL. CONTROL BLOCK #
- IF P<ACB> NQ 0
- THEN
- BEGIN
- IF NOT ATNVFN[SHISAN[0]] AND NOT ATNVFF[SHISAN[0]]
- THEN
- BEGIN
- IF (ACBORD0[0]) # THIS APPLICATION ALREADY SENT #
- # SAC/NCL TO SET ERROR CONDITION#
- THEN # FOR SHI/SD/SM #
- BEGIN
- ACBABTSH[0] = TRUE ; # READY TO ABORT THIS APPL #
- # AND DONT QUEUE ANY SM #
- GOTO RJMAIN ;
- END
- MGETS(LSHUT + BLKHSIZE + ABHSIZE,SMADDR,TRUE) ;
- P<AHEADER> = SMADDR + BLKHSIZE ;
- ABHABT[0] = APPCMD ;
- ABHACT[0] = CT60TRANS ;
- ABHTLC[0] = LSHUT ;
- P<SUPMSG> = SMADDR + BLKHSIZE + ABHSIZE ;
- PFCSFC[0] = SHUINS ;
- SHUTF[0] = IMSHUTD ;
- BLINK(SMADDR,P<ACB>) ;
- OSCHAPP(P<ACB>) ;
- END
- END
- ELSE
- BEGIN # SHUT DOWN RECEIVED ON NON-EX #
- D16AN = SHISAN ; # NON-EXISTENCE AN #
- ABORT(DFMSG16,0) ; # ABORT WITH DAYFILE MESSGAE #
- END # SHUT DOWN ON NON-EXISTENCE AN #
- END # SEND TO SPECIFIED APPLICATION #
- GOTO RJMAIN ;
- END
- TERM
cdc/nos2.source/nam5871/hpshisd.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator