*DECK ZBYTE 
USETEXT COMCBEG 
    PROC ZBYTE(MESSAGE,LENGTH); 
      BEGIN  # ZBYTE #
# 
**    ZBYTE - ADD ZERO BYTE TO END OF MESSAGE.
* 
*     ZBYTE ADDS A ZERO BYTE TO THE END (FOLLOWING THE LAST CHARACTER 
*     SPECIFIED BY LENGTH) OF A STRING OF CHARACTERS. THIS ROUTINE IS 
*     USEFUL SINCE SYMPL BLANK FILLS ALL CHARACTER ITEMS AND OPERATING
*     SYSTEM COMMUNICATION REQUIRES THAT LINES AND MESSAGES BE
*     TERMINATED WITH 12 TO 66 BITS OF BINARY ZERO ENDING ON A 60-BIT 
*     WORD BOUNDARY.
* 
*     ENTRY   -  MESSAGE IS THE LOCATION OF THE MESSAGE TO WHICH THE
*                ZERO BYTE IS TO BE ADDED.
*                LENGTH IS THE LENGTH IN CHARACTERS OF THE ACTUAL 
*                CHARACTER DATA ( 0 < LENGTH < 79 ) 
* 
*     EXIT    -  12 TO 66 BITS OF BINARY ZERO HAS BEEN ADDED TO MESSAGE.
* 
*     PROCESS -  CALCULATE WORD AND CHAR POSITION OF LAST CHAR IN MSG 
*                IF CHAR POSITION NOT 10
*                THEN:  
*                  ZERO FILL ALL BITS IN WORD FROM CHAR POS TO 10 
*                IF CHAR POSITION 9 OR 10 
*                THEN:  
*                  ZERO ENTIRE NEXT WORD
*                RETURN.
* 
*     NOTES  -   *** CAUTION ***
*                *** CAUTION ***
* 
* 
*                ALL ROUTINES CALLING ZBYTE MUST USE CAUTION: 
*                IF THE MESSAGE LENGTH INDICATES THAT THE MESSAGE 
*                TERMINATES IN EITHER CHARACTER POSITION 9 OR 10 OF 
*                A WORD THEN ZBYTE WILL ADD A WORD TO THE MESSAGE.
*                IT IS IMPERATIVE THAT ALL CALLING ROUTINES DEFINE
*                MESSAGE TO BE SUFFICIENTLY LONG TO ALLOW THE ADDED 
*                WORD TO STILL BE PART OF MESSAGE.  IF NOT, A RANDOM
*                WORD(THE ONE FOLLOWING MESSAGE) WILL BE ZEROED BY
*                ZBYTE. 
* 
* 
*                *** CAUTION ***
*                *** CAUTION ***
* 
* 
# 
  
      BASED ARRAY MESSAGE [0:7] S(1); 
        BEGIN 
        ITEM MESSAGE$ I(00,00,60);   # MESSAGE TO WHICH ZERO BYTE ADDED#
        END 
  
      ITEM LENGTH I;                 # LENGTH OF MESSAGE IN CHARACTERS #
  
  
      ITEM CHARPOS    I;             # END OF MESSAGE CHAR POSITION # 
      ITEM WORDNUM    I;             # END OF MESSAGE WORD NUMBER # 
  
  
      WORDNUM = (LENGTH - 1) / 10;
      CHARPOS = LENGTH - WORDNUM * 10;
  
      IF CHARPOS NE 10
      THEN
        BEGIN  # ZERO REMAINDER OF WORD # 
        B< CHARPOS*6, (10 - CHARPOS)*6 >  MESSAGE$[WORDNUM] = 0;
        END 
  
      IF CHARPOS GE 9 
      THEN
        BEGIN  # ZERO ENTIRE NEXT WORD #
        MESSAGE$[WORDNUM + 1]  =  0;
        END 
  
      END  # ZBYTE #
    TERM
