IDENT SYSMSG ENTRY MSG LCC OVERLAY(SYSMSG,0,0) *COMMENT SYSMSG - SYSTEM MESSAGE TASK. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE SYSMSG - SYSTEM MESSAGE TASK. SPACE 4 *** SYSMSG - SYSTEM MESSAGE TASK. * B. T. ZEMLIN 75/07/04. * B. C. ANTIN 78/06/15. SPACE 4 *** THIS SYSTEM TASK IS SCHEDULED BY THE TRANSACTION * EXECUTIVE TO SEND A MESSAGE TO A TERMINAL. THE MESSAGE * MAY HAVE THE FOLLOWING ORIGINS - IT IS A MESSAGE * ISSUED BY A *K.MESSAGE* COMMAND, OR IT IS A DIAGNOSTIC * MESSAGE ISSUED IN THE PROCESSING OF A K-DISPLAY COMMAND * THAT ORIGINATED FROM A TASK (CTI FUNCTION 7). * THIS TASK IS INTENDED AS AN EXAMPLE AND MAY BE MODIFIED * BY THE SPECIFIC INSTALLATION. SPACE 4 *CALL COMCMAC LIST X *CALL COMKKIM LIST -X *CALL COMKMAC *CALL COMSPRD TRXCOM B1 DEFINE COMMUNICATIONS BLOCK SYSBOLS *** COMMUNICATION BLOCK WORDS. * *T TERC 42/ TN,6/,12/ WC *T, MSGC 42/0,18/ DMC *T, MSGC+1 60/ MS * * TN TERMINAL NAME. * WC WORD COUNT OF MESSAGE. * DMC K-DISPLAY COMMAND DIAGNOSTIC MESSAGE CODE. * MS IF DMC = *KDM0*, THEN START OF *K.MESSAGE* MESSAGE. * ELSE, ATTEMPTED K-DISPLAY COMMAND KEYWORD IF * AVAILABLE. BSS COMCL RESERVE SPACE FOR COMMUNICATIONS BLOCK .1 NOREF SPACE 4 ** TMSG DEFINE A K-DISPLAY DIAGNOSTIC MESSAGE. * * TMSG A * * ENTRY *A* = MESSAGE TO BE DEFINED. * * EXIT A K-DISPLAY DIAGNOSTIC MESSAGE IS DEFINED. * A K-DISPLAY DIAGNOSTIC MESSAGE INDEX TABLE ENTRY * IS DEFINED. TMSG MACRO A LOCAL ADR ADDRESS OF K-DISPLAY DIAGNOSTIC MESSAGE ADR SET * LOC .1 .1 SET .1+1 DATA C*"SYSPR"_A* DEFINE K-DISPLAY DIAGNOSTIC MESSAGE LOC *O * DEFINE A K-DISPLAY DIAGNOSTIC MESSAGE INDEX TABLE ENTRY. RMSG RMT VFD 42/0,18/ADR RMSG RMT ENDM TITLE SEND MESSAGE. SYSMSG SPACE 4,10 ** SYSMSG - SEND A SYSTEM ORIGIN MESSAGE TO A TERMINAL. * THE WORD, *MSGC*, IN THE COMMUNICATIONS BLOCK, CONTAINS A * CODE USED TO DETERMINE WHICH MESSAGE TO SEND. IF * THE CODE IS *KDM0*, THEN THE MESSAGE TO BE SENT IS FROM A * *K.MESSAGE* COMMAND AND THE MESSAGE IS CONTAINED IN THE * COMMUNICATIONS BLOCK. IF THE CODE IS GREATER THAN *KDM0*, * THEN THE CODE INDICATES WHICH DIAGNOSTIC MESSAGE TO ISSUE. MSG SB1 1 SA2 TERC CHECK FOR NON-TERMINAL ASSOCIATED TASK MX0 42 BX5 X0*X2 TERMINAL NAME ZR X5,MSG3 IF NO TERMINAL SPECIFIED * DETERMINE WHICH MESSAGE TO SEND. MX6 -12 SA3 MSGC READ DIAGNOSTIC CODE SB2 X3 BX5 -X6*X2 WORD COUNT FOR NON-DIAGNOSTIC MESSAGE SB3 KDM0 *K.MESSAGE* CODE SX5 X5-1 EQ B2,B3,MSG1 IF *K.MESSAGE* ISSUED MESSAGE NG B2,MSG3 IF INCORRECT DIAGNOSTIC CODE SB3 B2-KDMTL GT B3,MSG3 IF INCORRECT DIAGNOSTIC CODE * PLACE THE DIAGNOSTIC MESSAGE INTO THE BUFFER. SA1 A3+B1 ATTEMPTED K-DISPLAY COMMAND SA5 B2+KDMT-1 DIAGNOSTIC MESSAGE INDEX TABLE ENTRY SB3 A1 ASSEMBLY AREA SB5 X5+ FWA OF MESSAGE SB2 1R/ SEARCH CHARACTER BX1 X0*X1 SB5 -B5 RJ SNM SET NAME IN MESSAGE SX5 A7-MSGC MESSAGE WORD COUNT * SEND A MESSAGE TO THE TERMINAL. MSG1 SX7 10 SA3 MSGB SEND PARAMETER WORD 3 MX0 -12 BX5 -X0*X5 IX7 X7*X5 MESSAGE CHARACTER COUNT BX3 X0*X3 SA2 MSGA SEND PARAMETER WORD 1 BX2 X0*X2 BX7 X3+X7 MERGE CHARACTER COUNT SA7 MSGB BX6 X2+X5 MERGE WORD COUNT SA6 A2 SEND MSGA SEND THE MESSAGE * CHECK FOR BINARY TERMINAL. SA1 SEQC FIRST WORD OF COMMUNICATIONS BLOCK. RJ CBT CHECK FOR BINARY TERMINAL ZR X6,MSG2 IF NOT BINARY SA6 MSGE SEND MSGD SEND BINARY INPUT REQUEST MSG2 CEASE EXIT TASK WITH A NORMAL CEASE MSG3 CEASE 1 EXIT TASK WITH AN ABNORMAL CEASE MSGA VFD 5/0,1/1,6/0,18/MSGC+1,12/0,18/0 CON 0 MSGB VFD 6/2,30/0,4/4,8/0,12/0 MSGD VFD 1/0,1/0,10/0,18/MSGE,12/0,18/1 MSGE BSS 1 ** K-DISPLAY DIAGNOSTIC MESSAGE TABLE. .1 SET 0 TMSG (K-DISPLAY COMMAND UNSUCCESSFUL, "KDM1M" -- ///////.) TMSG (K-DISPLAY COMMAND UNSUCCESSFUL, "KDM2M" -- ///////.) TMSG (K-DISPLAY COMMAND UNSUCCESSFUL, "KDM3M" -- ///////.) TMSG (K-DISPLAY COMMAND UNSUCCESSFUL, "KDM4M" -- ///////.) TMSG (K-DISPLAY COMMAND UNSUCCESSFUL, "KDM5M" -- ///////.) TMSG (K-DISPLAY COMMAND UNSUCCESSFUL, "KDM6M" -- ///////.) KDMT BSS 0 K-DISPLAY DIAGNOSTIC MESSAGE INDEX TABLE RMSG HERE KDMTL EQU *-KDMT LENGTH OF TABLE SPACE 4 ** COMMON DECKS. *CALL COMCSNM *CALL COMKCBT END MSG