cdc:nos2.source:nam5871:netoff
Table of Contents
NETOFF
Table Of Contents
- [00011] PROC NETOFF
- [00089] PROC NP$RTIM
- [00091] PROC NP$ERR
- [00092] PROC NP$WRTR
- [00093] PROC NP$WRTW
- [00094] PROC NP$PIOE
- [00097] PROC NP$CLK
- [00098] PROC NP$DATE
- [00099] PROC NP$SPRT
- [00101] PROC NP$WRTW
- [00102] PROC NP$PIOE
- [00104] PROC NP$XFER
Source Code
- NETOFF.txt
- *DECK NETOFF
- USETEXT AIPDEF
- USETEXT NP$MODE
- USETEXT NP$NWL
- USETEXT NP$STAT
- *IF,DEF,DEBUG
- USETEXT NP$DB
- *IF DEF,XFR,1
- USETEXT NX$ACBF
- *ENDIF
- PROC NETOFF;
- *IF DEF,IMS
- #
- *1DC NETOFF
- *
- * 1. PROC NAME AUTHOR DATE
- * NETOFF S.KRULEVITCH 77/06/28
- *
- * 2. FUNCTIONAL DESCRIPTION
- * THIS ROUTINE INFORMS NIP THAT THE APPLICATION IS NETTING OFF.
- * IT RESTORES AIP TO THE STATE IT WAS IN PRIOR TO NETON.
- *
- * 3. METHOD USED
- * FORMATS A NETOFF WORKLIST ENTRY AND SENDS IT TO NIP BY NP$XFER.
- * WHEN DEBUG OPTION IS DEFINED A TWO WORD ENTRY IS WRITTEN TO
- * THE DEBUG LOG FILE.
- * WORD 0
- * 2
- * 0 4
- * I-------------------------I----------------I
- * I I I
- * I SECONDS SINCE DEADSTART I MILLISECONDS I
- * I I I
- * I-------------------------I----------------I
- *
- * WORD 1
- * 2 4 5
- * 4 2 3
- * I-------I---------I--------I---------I
- * I I I I I
- * I I OFF$CAL I I OFF$OPC I
- * I I I I I
- * I-------I---------I--------I---------I
- *
- * OFF$CAL - CALLING ADDRESS
- * OFF$OPC - NETOFF OP$CODE (=7)
- *
- * NAMA614
- * 4. ENTRY CONDITIONS NAMA614
- * NEXT - WORKLIST NEXT AVAILABLE WORD PTR NAMA614
- * NAMA614
- * 5. EXIT CONDITIONS NAMA614
- * DEFER$PRO = FALSE
- * DEFER$GSM = FALSE
- * LTAA = 0
- * PARALLEL = FALSE
- * PN - PROCESS NUMBER IS SET TO 0. NAMA614
- * ACCEPTED - AIP ON/OFF SWITCH SET OFF NAMA614
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * AIPDEF NP$CRT
- * NP$DB NP$MODE NP$NWL NP$STAT
- *
- * 7. ROUTINES CALLED
- * NP$CLK - DELIVERS TIME IN DISPLAY CODE (STAT DEFINED)
- * NP$DATE - DELIVERS DATE IN DISPLAY CODE (STAT DEFINED)
- * NP$PIOE - PROCESS I/O ERROR AFTER WRITE OPERATION ON FILE
- * NP$RTIM - DELIVERS TIME FROM DEADSTART IN SECONDS AND
- * MILLISECONDS (STAT/DEBUG DEFINED)
- * NP$SPRT - OUTPUTS STATISTICS TO,THEN CLOSES,ZZZZZSN.(STAT)
- * NP$WRTW - WRITES TEXT TO SPECIFIED FILE.(STAT/DEBUG DEFINED)
- * NP$WRTR - CLOSES FILE BY WRITING EOR.(DEBUG DEFINED)
- * NP$XFER - TRANSFERS WORKLIST TO NIP
- *
- * 8. DAYFILE MESSAGES
- * NONE
- *
- #
- *ENDIF
- BEGIN
- *CALL NP$CRT
- # #
- # EXTERNAL ROUTINES: #
- # #
- XREF BEGIN
- *IF DEF,DEBUG
- PROC NP$RTIM; #RETURNS TIME SINCE DEADSTART #
- *IF DEF,XFR,1
- PROC NP$ERR ; # ERROR MESSAGE TO DAYFILE #
- PROC NP$WRTR; #WRITES EOR TO ZZZZZDN #
- PROC NP$WRTW; #WRITES WORDS TO ZZZZZDN #
- PROC NP$PIOE; # PROCESS I/O ERROR ON FILE #
- *ENDIF
- *IF DEF,STAT
- PROC NP$CLK; #DELIVERS TIME IN DISPLAY CODE #
- PROC NP$DATE; #DELIVERS DATE IN DISPLAY CODE #
- PROC NP$SPRT; #PUTS STATISTICS ON ZZZZZSN #
- *IF -DEF,DEBUG
- PROC NP$WRTW; #WRITES WORDS ON FILE #
- PROC NP$PIOE; # PROCESS I/O ERROR ON FILE #
- *ENDIF
- PROC NP$XFER; #TRANSFERS WORKLIST TO NIP #
- END #XREFS#
- # #
- # LOCAL DECLARATIONS #
- # #
- ITEM
- I I; #INDEX VARIABLE #
- ARRAY OFFWL[0:3] P(1);
- ITEM
- OFFHDR I (0),
- OFFHDR$P U (0,9,12), #PROCESS NUMBER #
- OFFHDR$N U (0,22,8), #NO. OF ENTRIES IN WORKLIST #
- OFFHDR$W U (0,30,12), #NO. OF WORDS IN WORKLIST #
- OFFHDR$AWL U (0,42,18), #ADDR WHERE WORKLIST RETURNED #
- OFFNWL I (0),
- *IF DEF,DEBUG
- OFFNWL$ID U (0,0,6), #UNPROCESSED WORKLIST ID = 35 #
- *ENDIF
- OFFNWL$BS U (0,6,18), #BLOCK SIZE #
- OFFNWL$OP U (0,54,5); #OP CODE #
- *IF DEF,DEBUG
- # DEBUG OPTION ARRAY DEFINITIONS #
- ARRAY OFFLINE P(2); # LOGS NETOFF ENTRY #
- BEGIN
- ITEM OFF$TIM U(0,0,60); # TIME OF CALL TO NETOFF #
- ITEM OFF$CAL U(1,24,AL); # NETOFF CALLING ADDRESS #
- ITEM OFF$OPC I(1,54,6); # NETOFF OPCODE (=7) #
- END
- # DEBUG OPTION ITEM DEFINITIONS #
- ITEM TIMEWD U; # REAL TIME SINCE DEADSTART #
- *ENDIF
- *IF DEF,STAT
- ITEM CHARWD C(10);
- *ENDIF
- *IF DEF,STAT
- ARRAY STMSG P(5);
- ITEM
- ST$CC C(0,0,10)=["0 "], #DOUBLE SPACE #
- ST$MSG12 C(1,0,35)=["NAM STATISTICS GATHERING TERMINATED"];
- ARRAY STMSGA P(6);
- ITEM
- ST$CCA C(0,0,10)=[" "], #SINGLE SPACE #
- ST$MSG3 C(1,0,13)=["NETOFF DATE "],
- ST$DATE C(2,18,10),
- ST$MSG4 C(3,18,7)=[" TIME"],
- ST$TIME C(4,0,10),
- ST$EOLA I(5,0,60)=[0];
- *ENDIF
- #**********************************************************************#
- # #
- # NETOFF EXECUTION BEGINS HERE: #
- IF NOT ACCEPTED
- THEN
- RETURN; #NO NETON #
- *IF DEF,DEBUG
- # FORMAT LOG ENTRY FOR NETOFF CALL #
- P<CALLADR> = LOC(NETOFF); # GET CALL ADDRESS #
- NP$RTIM(TIMEWD); # GET REAL TIME SINCE DEADSTART #
- OFF$TIM[0] = TIMEWD;
- OFF$CAL[0] = CALLADDR[0];
- OFF$OPC[0] = OP$OFF;
- NP$WRTW(DB$FET,OFFLINE,2); # WRITE NETOFF TO DEBUG LOG #
- NP$WRTR(DB$FET,1); # WRITE EOR TO DEBUG LOG #
- #
- CHECK FOR I/O ERROR IN DEBUG LOG FILE
- #
- IF FET$AT[0] NQ 0
- THEN # I/O ERROR HAS OCCURRED ON FILE#
- BEGIN
- NP$PIOE(DB$FET); # PROCESS I/O ERROR #
- END
- #
- NSUPWRD BASED ARRAY POINTER TO THE USER COMMUNICATION WORD
- WAS SET BY NETON. THE ARRAY IS LOCATED IN NP$NWL COMDECK.
- UPDATE MSGCNT IN NSUP COMMUNICATION WORD.
- #
- MSGCNT[0] = MSGCNT[0] +1;
- # #
- *ENDIF
- *IF DEF,STAT
- NP$DATE(CHARWD); #PUT CURRENT DATE IN OUTPUT LINE #
- ST$DATE = CHARWD;
- NP$CLK(CHARWD); #GET TIME IN DISPLAY CODE #
- ST$TIME = CHARWD; #PUT DISPLAY CODE TIME IN CHARACTER ARRAY #
- NP$WRTW(SN$FET,STMSG,5);
- NP$WRTW(SN$FET,STMSGA,6);
- #
- CHECK FOR I/O ERROR IN STATISTICS FILE
- #
- IF SN$AT[0] NQ 0
- THEN # I/O ERROR HAS OCCURRED ON FILE#
- BEGIN
- NP$PIOE(SN$FET); # PROCESS I/O ERROR #
- END
- NP$SPRT; #DUMP STATISTICS TO ZZZZZSN #
- *ENDIF
- # #
- *IF DEF,XFR
- *IF DEF,DEBUG,3
- IF NUMFILEXFR NQ 0
- THEN
- NP$ERR("45"); # STILL FILE BEING TRANSFERRED #
- # OUTSTANDING, ABORT C.P. #
- *ENDIF
- # BUILD NETOFF REQUEST IN OFFNWL #
- # #
- OFFHDR[NHDR] = LOC(OFFHDR[NHDR]) + 1;
- OFFHDR$P[NHDR] = PN;
- OFFHDR$N[NHDR] = 1;
- OFFHDR$W[NHDR] = OPABHSIZ + NHDR;
- I = NHDR + 1;
- OFFNWL[I] = 0;
- *IF DEF,DEBUG
- OFFNWL$ID[I] = AWLID;
- *ENDIF
- OFFNWL$BS[I] = OPABHSIZ;
- OFFNWL$OP[I] = OP$OFF;
- # #
- # SEND NWL TO NIP VIA SSCALL: #
- # #
- PARALLEL = FALSE;
- NP$XFER(LOC(OFFWL[NCTL])); #SENDS WORKLIST TO NIP #
- # #
- # REINITIALIZE AIP STATES #
- # #
- DEFER$PRO = FALSE ;
- DEFER$GSM = FALSE ;
- LTAA = 0 ;
- ACCEPTED = FALSE;
- RETURN;
- END #NETOFF#
- TERM
cdc/nos2.source/nam5871/netoff.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator