*DECK NETRR USETEXT AIPDEF USETEXT NP$MODE USETEXT NP$DB USETEXT NP$NWL USETEXT NP$ONAM USETEXT NP$STAT USETEXT NP$ZHDR PROC NETRR; *IF DEF,IMS # *1DC NETRR * * 1. PROC NAME AUTHOR DATE * NETRR NGUYEN, L.T. 88/04/12 * * 2. FUNCTIONAL DESCRIPTION * PROCESSES THE NETRR CALL FROM AN APPLICATION. * * 3. METHOD USED * IF DEBUG DEFINED, LOG NETRR ENTRY IN ZZZZZDN FILE. * SEND NETRR WORKLIST TO NIP. * * 4. ENTRY CONDITIONS * NONE. * * 5. EXIT CONDITIONS * NONE. * * 6. COMDECKS CALLED AND SYMPL TEXTS USED. * AIPDEF NP$CRT * NP$DB NP$DBA NP$MODE NP$NWL * * 7. PROCEDURES/FUNCTIONS CALLED * NP$PIOE - PROCESS I/O ERROR ON DEBUG LOG FILE * NP$RTIM - RETURNS CURRENT TIME FROM DEADSTART IN SECONDS * AND MILLISECONDS * NP$SEND - SEND WORKLIST TO NIP. * NP$WRTO - WRITE ONE WORD TO FILE. * NP$WRTW - WRITES WORDS TO FILE - NOS DATA TRANSFER MACRO * NP$ERR - DAYFILE ERROR MESSAGE AND ABORT. * * 8. DAYFILE/DIAGNOSTIC MESSAGES * NONE. # *ENDIF # AIP RESET # XREF BEGIN PROC NP$CLK ; PROC NP$DATE ; PROC NP$ERR ; PROC NP$PIOE ; PROC NP$RTIM ; PROC NP$SEND ; PROC NP$WRTO ; PROC NP$WRTR ; PROC NP$WRTW ; END ITEM TIMEWD U ; *IF DEF,DEBUG # DEBUG OPTION ARRAY DEFINITIONS # ARRAY RSTLINE P(2); # LOGS NETRR ENTRY # BEGIN ITEM RST$TIM U(0,0,60); # TIME OF CALL TO NETRR # ITEM RST$CAL U(1,24,AL); # NETRR CALLING ADDRESS # ITEM RST$OPC I(1,54,6); # NETRR OPCODE (=12) # END *ENDIF BEGIN # NETRR # IF NOT ACCEPTED THEN NP$ERR("34") ; *IF DEF,DEBUG # FORMAT LOG ENTRY FOR NETRR CALL # P = LOC(NETRR) ; # GET CALL ADDRESS # NP$RTIM(TIMEWD); # GET REAL TIME SINCE DEADSTART # RST$TIM[0] = TIMEWD; RST$CAL[0] = CALLADDR[0]; RST$OPC[0] = OP$RR ; NP$WRTW(DB$FET,RSTLINE,2); # WRITE NETRR TO DEBUG LOG # # UPDATE MSGCNT IN NSUP COMMUNICATION WORD. # MSGCNT[0] = MSGCNT[0] + 1; # 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 *ENDIF # RESET VARIABLES IN AIP # NEXT = NHDR + 1; # SET NWL COUNTER # SPACE$LEFT=LWL; # SET NWL POINTER # N$AWL[0] = 0; # CLEAR AWL RESPONSE INDICATORS# # RESET POINTERS FOR SUPERVISORY MESSAGE BUFFER - SMB # HEAD = FIRST; # FIRST IS START OF SMB # FOOT = HEAD; # SMB IS EMPTY: NO MESSAGES # NEXTSMLEN = 0; # NO SUPERVISORY MSGS IN NIP # # RESET POINTERS FOR AIP UPLINE DATA MESSAGE BUFFER - GMB # GMBHEAD = 1; # INITIAL INDX FOR FWA TO WRITE# GMBFOOT = 1; # INITIAL INDX FOR LWA TO WRITE# GMBUSE = FALSE; # INIT GMB NOT IN USE FLAG # GMBTRUNC = FALSE; # INIT NO TRUNCATION OF DATA # GMBLAST = 1; # INITIAL INDEX FOR END OF BUF # GMBCN = 0; # INIT CON NUMBER FOR GMB # GMBLN = 0; # INIT LIST NUMBER FOR GMB # GMMESIZE = 0; # INIT FOR NO GMM ENTRY NEEDED # # SET UP NWL HEADER # HDR[NHDR] = LOC(HDR[NHDR]) + 1;#RETURN AWL AFTER CONTROL WDS# HDR$P[NHDR] = PN ; # APPLICATION NUMBER # HDR$N[NHDR] = 1; #ONLY 1 ENTRY, I.E. THE NETRR # HDR$W[NHDR] = 1 + NONBSIZE; # FORMAT NETRR NWL ENTRY # NWL[NEXT] = 0 ; #CLEAR AND BUILD OP WORD # NWL$OP[NEXT] = OP$RR; NWL$ID[NEXT] = AWLID; #UNPROCESSED WORKLIST ID = AWLID (=11) # NWL$BS[NEXT] = NRRBSIZE; # SEND NETRR NWL TO NIP # SENDGETMM = FALSE; SENDGETSM = FALSE; NP$SEND; SENDGETMM = TRUE; SENDGETSM = TRUE; RETURN; END #NETRR # TERM