User Tools

Site Tools


cdc:nos2.source:nam5871:dlmsg

Table of Contents

DLMSG

Table Of Contents

  • [00007] PROC DLMSG
  • [00063] PROC DLABEND
  • [00064] PROC DLDFM

Source Code

DLMSG.txt
  1. *DECK DLMSG
  2. USETEXT DLFPDEF
  3. USETEXT DIRTBLM
  4. USETEXT ERRMSG
  5. USETEXT OUTCDA
  6. USETEXT ZHRCD
  7. PROC DLMSG; # SEARCH MESSAGE DIRECTIVE TABLE #
  8. BEGIN
  9. *IF DEF,IMS
  10. #
  11. *1DC DLMSG
  12. *
  13. * 1. PROC NAME AUTHOR DATE.
  14. * DLMSG S.KRULEVITCH 79/01/10
  15. *
  16. * 2. FUNCTIONAL DESCRIPTION.
  17. * SEARCH FOR MESSAGES ACCORDING TO MESSAGE DIRECTIVES.
  18. *
  19. * 3. METHOD USED.
  20. * LOOP THROUGH MESSAGE PROCESSING TABLE PROCESSING EACH
  21. * ENTRY AS FOLLOWS UNTIL EITHER THE CHOSEN FLAG IS
  22. * CLEARED OR EVERY ENTRY HAS BEEN PROCESSED.
  23. *
  24. * NM CHECK IF NUMBER OF ENTRIES WRITTEN TO OUTPUT MATCHES
  25. * THIS VALUE. IF SO, CLEAR CHOSEN FLAG AND SET COMPLETE
  26. * FLAG.
  27. * BT CHECK IF TIME OF CURRENT MESSAGE IS GREATER THAN OR
  28. * EQUAL TO THIS TIME. IF NOT, CLEAR CHOSEN FLAG. IF
  29. * SO, ZERO TABLE ENTRY SO IT WILL NOT BE PROCESSED
  30. * ANYMORE.
  31. * ET CHECK IF CURRENT MESSAGE IS GREATER THAN OR EQUAL
  32. * TO THIS TIME. IF SO, CLEAR CHOSEN FLAG AND SET
  33. * COMPLETE FLAG.
  34. * N CHECK IF NETLOG MESSAGES ARE DE-SELECTED OR NOT.
  35. *
  36. * 4. ENTRY PARAMETERS.
  37. * DIRNUMM - NUMBER OF ENTRIES IN MESSAGE PROCESSING TABLE.
  38. * DIRTBLM - MESSAGE PROCESSING DIRECTIVE TABLE.
  39. * TEMPB1 - ADDRESS OF LOG FILE ENTRY
  40. *
  41. * 5. EXIT PARAMETERS.
  42. * CHOSEN - FALSE IF CONDITIONS NOT SATISFIED.
  43. * COMPLETE - TRUE IF SEARCH COMPLETE.
  44. *
  45. * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
  46. * DIRTBLM DLFPDEF ERRMSG OUTCDA
  47. * ZHRCD
  48. *
  49. * 7. PROCEDURES CALLED.
  50. * DLABEND ABORT PROGRAM
  51. * DLDFM ISSUE DAYFILE MESSAGE
  52. *
  53. * 8. DAYFILE MESSAGES.
  54. * BAD DIRECTIVE TABLE ENTRY.
  55. *
  56.  #
  57. *ENDIF
  58. #
  59.   EXTERNAL PROCEDURES
  60. #
  61. XREF
  62. BEGIN
  63. PROC DLABEND; # ABORT PROGRAM #
  64. PROC DLDFM; # ISSUE DAYFILE MESSAGE #
  65. END
  66.  
  67. #
  68.   LOCAL VARIABLES
  69. #
  70. ITEM
  71. I; # TEMPORARY LOOP VARIABLE #
  72.  
  73. BASED ARRAY DATLINE P(4);
  74. *CALL NP$DLA
  75.  
  76.  
  77. SWITCH PROCESS ERR,NM,ET,BT,ERR,ERR,N,ERR,ERR,ERR,ERR,ERR,ERR,
  78. ERR,ERR,ERR,ERR,ERR,ERR,ERR,ERR;
  79.  
  80. #**********************************************************************#
  81. #
  82.   DLMSG EXECUTION BEGINS HERE
  83. #
  84. P<DATLINE> = LOC(TEMPB1);
  85. FOR I = 1 STEP 1 WHILE CHOSEN AND I LQ DIRNUMM DO
  86. BEGIN
  87. GOTO PROCESS[DIRMID[I]];
  88.  
  89. NM:
  90. IF DIRMVAL[I] LQ MSG$COUNT
  91. THEN
  92. BEGIN
  93. CHOSEN = FALSE;
  94. COMPLETE = TRUE;
  95. END
  96.  
  97. GOTO CONTN;
  98.  
  99. N:
  100. IF DL$OPC[0] EQ OP$LOG
  101. THEN
  102. CHOSEN = FALSE; # IGNORE APP LOG MESSAGES #
  103. GOTO CONTN;
  104.  
  105.  
  106. BT:
  107. IF ZNMILS[0] LS DIRMVAL[I]
  108. THEN
  109. CHOSEN = FALSE;
  110. ELSE
  111. BEGIN # REMOVE BT ENTRY #
  112. DIRMWD[I] = 0;
  113. DIRNUMM = DIRNUMM - 1;
  114. END
  115.  
  116. GOTO CONTN;
  117.  
  118. ET:
  119. IF ZNMILS[0] GQ DIRMVAL[I]
  120. THEN # ENDING TIME FOUND #
  121. BEGIN
  122. CHOSEN = FALSE;
  123. COMPLETE = TRUE;
  124. END
  125.  
  126. GOTO CONTN;
  127.  
  128. ERR:
  129. DLDFM(BAD$DNTRY); # BAD DIRECTIVE TABLE ENTRY #
  130. DLABEND; # ABORT PROGRAM #
  131. CONTN:
  132. END # LOOPING THROUGH MESSAGE DIRECTIVE TABLE #
  133.  
  134. END # DLMSG #
  135.  
  136. TERM
cdc/nos2.source/nam5871/dlmsg.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator