cdc:nos2.source:nam5871:hpkdisp
Table of Contents
HPKDISP
Table Of Contents
- [00013] PRGM HPKDISP
- [00073] PROC CONSOL
- [00074] PROC XTRACE
- [00075] PROC OMSG
- [00076] PROC MGETS
- [00077] PROC BLINK
- [00078] PROC OSCHAPP
- [00079] PROC OVLCALL
Source Code
- HPKDISP.txt
- *DECK HPKDISP
- USETEXT ACB
- USETEXT NIPDEF
- USETEXT AT
- USETEXT PT
- USETEXT KDIS
- USETEXT DISTAIL
- USETEXT SUPMSG
- USETEXT AHEADER
- USETEXT OVERLAY
- USETEXT PARAMS
- USETEXT APPSTAT
- PRGM HPKDISP;
- STARTIMS;
- #
- *1DC HPKDISP
- *
- * 1. PROC NAME AUTHOR DATE
- * HPKDISP A. BEN-ARTZI 81/12/08
- *
- * 2. FUNCTIONAL DESCRIPTION
- * PROCESS THE HOP SUPERVISORY MESSAGES COMING FROM APPLICATIONS.
- *
- * 3. METHOD USED
- * DECODE THE SFC FROM THE NWLENTRY.
- * SET UP CORRECT COMMON FIELDS IF ALERT.
- * CALL OMSG IF "LG"
- * CALL OVERLAY KHOPDIS FOR HOP/DIS.
- *
- * 4. ENTRY PARAMETERS
- * WLADDR - NWL ENTRY ADDRESS
- * ACBADDR - ADDRESS OF APPLICATION ACB
- *
- * 5. EXIT PARAMETERS
- * OVLNAME - KHOPDIS OVL NAME IF APPROPRIATE
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED
- * NIPDEF KDIS DISTAIL SUPMSG
- * AHEADER ACB OVERLAY APPSTAT
- * AT PT PARAMS
- *
- * 7. ROUTINES AND OVERLAYS CALLED
- * CONSOL - EXECUTE NOS CONSOLE MACRO
- * MGETS - ALLOCATE BUFFER
- * XTRACE - TRACE PROCEDURE CALL
- * OMSG - ISSUE DAYFILE MESSAGE
- * KHOPDIS OVL PROCESS HOP/DIS
- * BLINK - LINK MESSAGE ON DATA RING
- * OSCHAPP - SCHEDULE APPLICATION
- * HLGLERR OVL ISSUE ERR/LGL
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- * MESSAGES SENT BY APPLICATION WITH HOP/LG
- *
- * THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL.
- * WHEN EXECUTION HAS COMPLETED A JUMP IS MADE TO LOCATION RJMAIN
- * TO RETURN TO THE CALLING PROGRAM.
- *
- * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY
- *CALL OPSIZE
- *
- * THIS OVERLAY IS CALLED BY HPPUT.
- *
- *
- #
- STOPIMS;
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN
- LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
- PROC CONSOL; # EXECUTE CONSOLE MACRO #
- PROC XTRACE;
- PROC OMSG; # PUT A MESSAGE IN NIP-S DAYFILE #
- PROC MGETS;
- PROC BLINK;
- PROC OSCHAPP;
- PROC OVLCALL;
- END
- ARRAY KREQU S(3);
- BEGIN
- ITEM KREQ C(0,0,20) = ["$REQUEST *K* DISPLAY"] ;
- ITEM KREQEND U(2,0,60) = [0] ;
- END
- BASED ARRAY LGMSG S(1) ;
- BEGIN
- ITEM LGMSGWD U(0,0,60) ;
- END
- ITEM BUFADDR U ; # ADDR OF MGET BUFFER #
- SWITCH KLAB K1,K2,K3,K4,K5 ;
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("HPKDS");
- CONTROL FI;
- #**********************************************************************#
- #
- LET-S PUT OURSELVES ON RELEVANT DATA
- #
- P<SUPMSG> = WLADDR + AIPHSIZE + ABHSIZE ;
- P<ACB> = ACBADDR;
- # #
- IF SFC[0] EQ ALT
- THEN
- BEGIN # WE HAVE A HOP/ALERT SM IN HAND #
- # #
- IF KDNAL EQ 5 # NO ROOM FOR MORE ALERTS #
- OR
- ACBAN[0] EQ KDAN[0] # THIS APP IS PROCESSED RIGHT NOW #
- OR
- ACBAN[0] EQ KDALAN1[0] OR#APPLICATION IS ALREADY IN ALERT Q #
- ACBAN[0] EQ KDALAN2[0] OR
- ACBAN[0] EQ KDALAN3[0] OR
- ACBAN[0] EQ KDALAN4[0] OR
- ACBAN[0] EQ KDALAN5[0]
- # #
- THEN # JUST IGNORE IT #
- GOTO EXIT ;
- ELSE
- BEGIN
- P<AT> = PTAT[0]; # ADDRESS OF AT #
- IF ATI[ACBAN[0]]
- THEN
- BEGIN # THIS APP IS NOT ALLOWED FOR ALERTS NOW #
- #
- WE SEND THE APPLICATION ONE MORE HOP/IGNORE
- #
- MGETS(LHOPIG+BLKHSIZE+ABHSIZE); # GET A BLOCK #
- #
- FILL IMPORTANT FIELDS
- #
- P<AHEADER> = BUFADDR+BLKHSIZE;
- ABHABT[0]=APPCMD;
- ABHACT[0]=CT60TRANS;
- ABHABN[0]=0;
- ABHADR[0]=0;
- ABHTLC[0]=LHOPIG;
- P<SUPMSG> = BUFADDR+BLKHSIZE+ABHSIZE;
- PFCSFC[0] = HOPIG;
- #
- AND SEND IT TO APPLICATION
- #
- BLINK(BUFADDR,ACBADDR) ;
- OSCHAPP(ACBADDR) ;
- GOTO EXIT;
- END
- ELSE
- #
- OK. NOW WE ARE READY TO ACCEPT THE ALERT
- #
- BEGIN
- KDNAL[0] = KDNAL[0]+1;
- IF NOT KDVW[0]
- THEN
- OMSG(KREQU,2); # PUT A MESSAGE ON THE B-DISPLAY #
- # #
- GOTO KLAB[KDNAL[0]-1] ; # TO PUT INFO ABOUT THE ALERT #
- END
- # #
- K1: KDALAN1[0]=ACBAN[0]; # APP. NUMBER IN ALERT LIST #
- KAPALT1[0]=ACBANAME[0];# APPL NAME IN DISTAIL BUFFER #
- GOTO EXIT ;
- # #
- K2: KDALAN2[0]=ACBAN[0];
- KAPALT2[0]=ACBANAME[0];
- GOTO EXIT ;
- # #
- K3: KDALAN3[0]=ACBAN[0];
- KAPALT3[0]=ACBANAME[0];
- GOTO EXIT ;
- # #
- K4: KDALAN4[0]=ACBAN[0];
- KAPALT4[0]=ACBANAME[0];
- GOTO EXIT ;
- # #
- K5: KDALAN5[0]=ACBAN[0];
- KAPALT5[0]=ACBANAME[0];
- GOTO EXIT ;
- # #
- END
- END # END HOP/ALERT PROCESSING #
- ELSE
- BEGIN
- IF SFC[0] EQ LG
- THEN
- BEGIN # THIS IS A HOP/LG FOR NAM DAYFILE #
- P<LGMSG> = WLADDR+AIPHSIZE+ABHSIZE + 1 ;
- OMSG(LGMSG,0) ;
- GOTO EXIT ;
- END
- # #
- ELSE # NOT HOP/LOG EITHER #
- BEGIN
- IF KDAN[0] NQ ACBAN[0]
- THEN # K-DISPLAY IS NOT ASSIGNED TO THIS APP #
- BEGIN
- GOTO EXIT; # IGNORE SUPERVISORY MESSAGE #
- END
- ELSE # K-DISPLAY IS ASSIGNED TO THIS APP #
- BEGIN
- IF SFC[0] EQ DIS
- THEN # THIS IS A HOP/DIS SUPERVISORY MESSAGE #
- BEGIN
- #
- PROCESS HOP/DIS SUPERVISORY MESSAGE
- #
- OVLNAME = KHOPDISP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- IF PARAMS1 NQ 0
- THEN # BAD HOP/DIS SUPERVISORY MESSAGE #
- BEGIN
- OVLNAME = HLGLERRP; # NAME OF OVERLAY TO LOAD #
- OVLCALL; # LOAD AND EXECUTE OVERLAY #
- END
- END # END HOP/DIS PROCESSING #
- ELSE # NOT HOP/DIS SUPERVISORY MESSAGE #
- BEGIN
- #
- PROCESS HOP/DAY SUPERVISORY MESSAGE
- #
- KDDAYF[0] = NOT HOPDAYF[0]; # UPDATE DAYFILING TYPIN FLG#
- CONSOL(KDWDCON); # EXECUTE CONSOLE MACRO #
- END
- END
- END
- END
- EXIT: GOTO RJMAIN ;
- END # HPKDISP OVERLAY #
- TERM
cdc/nos2.source/nam5871/hpkdisp.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator