IDENT TMSG ENTRY TMSG SYSCOM B1 TITLE TMSG - TAF MESSAGE TO DAYFILE. *COMMENT TMSG - TAF MESSAGE TO DAYFILE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TMSG SPACE 4,10 **** TMSG - TAF MESSAGE TO DAYFILE * * A. E. SCHIPPERS. 80/06/27. * * TMSG IS AN INTERFACE ROUTINE WHICH WILL ISSUE A * MESSAGE TO THE *TAF* DAYFILE FROM A SYSTEM TASK. *IF DEF,TRANC5 * NOTE THIS IS THE COBOL5 VERSION OF TMSG. *ENDIF *IF DEF,TRANF4 * NOTE THIS IS THE FORTRAN4 VERSION OF TMSG. *ENDIF *IF DEF,TRANF5 * NOTE THIS IS THE FORTRAN5 VERSION OF TMSG. *ENDIF TMSG SPACE 4,20 *** TMSG - TAF MESSAGE TO DAYFILE. * * ENTRY COMPASS - SCALL TMSG,(MESSAGE,LENGTH) * COBOL - ENTER TMSG USING MESSAGE[, LENGTH]. * FORTRAN - CALL TMSG(MESSAGE,LENGTH) * * WHERE - MESSAGE DATA ITEM CONTAINING THE DAYFILE MESSAGE. * COBOL - 01 LEVEL ITEM. * FORTRAN - HOLLERITH. * * LENGTH LENGTH OF MESSAGE IN CHARACTERS. * COBOL - 01 LEVEL COMPUTATIONAL-1 DATA * NAME. * FORTRAN - INTEGER. * * EXIT MESSAGE ISSUED TO DAYFILE. * * USES A - 1, 2, 6. * X - 1, 2, 3, 4, 6. * B - 1, 2, 3. * * MACROS SYSTEM. * * NOTE SYSTEM TASKS ARE THE ONLY TASKS ALLOWED TO ISSUE * MESSAGES TO THE *TAF* DAYFILE. TMSG SPACE 4,10 * COMMON DECKS. *CALL COMKMAC TMSG SPACE 4,10 * THE FOLOWING CODE IS CONDITIONALLY PUT ON THE * COMPILE FILE AT MODIFICATION TIME. THIS CODE * ALSO SETS VALUES FOR CONDITIONAL ASSEMBLY OF SOME * CODE LATER IN THIS DECK. .1 SET 0 *IF DEF,TRANC5 .1 SET .1+1 .2 SET 0 COBOL5 VERSION *ENDIF *IF DEF,TRANF4 .1 SET .1+1 .2 SET 1 FORTRAN4 VERSION *ENDIF *IF DEF,TRANF5 .1 SET .1+1 .2 SET 2 FORTRAN5 VERSION *ENDIF .A IFNE .1,1 * ONE AND ONLY ONE OF THE TLIBXX LIBRARIES MUST BE * DEFINED AT MODIFICATION TIME. ERR MODIFICATION ERRORS .A ENDIF TMSG SPACE 4,10 VFD 42/0LTMSG,18/TMSG TMSG SUBR ENTRY/EXIT SB1 1 SA1 A1 BX3 X3-X3 .B IFEQ .2,0 IF COBOL5 VERSION * PROCESS PARAMETER LIST FOR COBOL5. MX3 -18 GET LENGTH OF MESSAGE BX4 X1 LX4 17-53 BX3 -X3*X4 .B ENDIF .C IFEQ .2,1 IF FORTRAN4 VERSION * PROCESS PARAMETER LIST FOR FORTRAN4. * NO SPECIAL PROCESSING NEEDED. .C ENDIF .D IFEQ .2,2 IF FORTRAN5 VERSION * PROCESS PARAMETER LIST FOR FORTRAN5. * NO SPECIAL PROCESSING NEEDED. .D ENDIF SA2 A1+1 GET NEXT PARAMETER ZR X2,TMS1 IF LENGTH PARAMETER NOT SPECIFIED SA2 X2+ FWA OF LENGTH SX3 X2+ LENGTH TMS1 SX2 10 CHARACTERS PER WORD IX6 X3/X2 GET NUMBER OF FULL WORDS. SB2 X6+ SX4 B0+ SX2 10 CHARACTERS PER WORD UX3 X3,B7 IX2 X6*X2 CHARACTERS IN FULL WORDS LX3 X3,B7 IX2 X3-X2 NUMBER OF CHARACTERS IN LAST WORD SX3 6 BITS PER CHARACTER IX3 X2*X3 MASK FOR CHARACTERS IN LAST WORD ZR X2,TMS2 IF LAST WORD FULL MX4 1 SB3 -1 SB3 X3+B3 SHIFT COUNT AX4 B3 TMS2 SA2 X1+B2 GET LAST WORD OF MESSAGE SX6 A2 SAVE ADDRESS OF LAST WORD SA6 TMSA BX6 X2 SAVE LAST WORD OF MESSAGE SA3 A2+B1 GET WORD FOLLOWING MESSAGE SA6 A6+B1 BX6 X3 SAVE WORD FOLLOING MESSAGE SA6 A6+B1 BX6 X4*X2 ZERO OUT TRAILING BITS SA6 A2 BX6 X6-X6 ZERO OUT WORD FOLLOWING MESSAGE SX3 X1 SA6 A6+1 SYSTEM TMS,R,X3,B0 ISSUE *TMS* REQUEST SA2 TMSA ADDRESS OF LAST WORD OF MESSAGE SA3 A2+B1 RESTORE LAST WORD OF MESSAGE BX6 X3 SA6 X2+ SA3 A3+B1 RESTORE WORD FOLLOWING MESSAGE BX6 X3 SA6 X2+1 EQ TMSGX EXIT. * STORAGE FOR WORDS DESTROYED BY TMSG REQUEST. TMSA BSS 3 END