*DECK S$PUTWD 
          IDENT  S$PUTWD
          TITLE  S$PUTWD -  PUT A WORD TO THE TERMINAL
          COMMENT  PUT A WORD TO THE TERMINAL 
          SPACE  4
**        S$PUTWD -  PUT A WORD TO THE TERMINAL 
* 
*     CALLING SEQUENCE- 
*         S$PUTWD(WORD);
* 
*     GIVEN-
*         WORD = 10-CHARACTER WORD TO BE PUT TO TERMINAL. 
* 
*     DOES- 
*         COLLECTS *WORD* FROM EACH CALL IN A BUFFER
*          UNTIL *WORD* WITH THE RIGHT 12 BITS ZERO IS FOUND. 
*         WRITES THE BUFFER TO THE TERMINAL  (FILE *OUTPUT*). 
  
  
          ENTRY  S$PUTWD
 S$PUTWD  SUBR
          SA2    X1          X2 = VALUE OF *WORD* 
          BX6    X2 
          SA1    OUTPUT+IN   IN 
          SA6    X1          STORE *WORD* AT (IN) 
          SX6    X1+1 
          SA6    OUTPUT+IN   IN = IN + 1
          SA1    OUTPUT+LIMIT 
          SX1    X1          STRIP UPPER 42 BITS TO ZERO
          IX6    X6-X1       IN - LIMIT 
          ZR     X6,400000B+*  IF IN = LIMIT, ERROR 
          MX6    -12         77777777777777770000B
          BX6    -X6*X2      EXAMINE RIGHT 12 BITS OF *WORD*
          IFTHEN X6=0        IF *WORD* HAS LINE TERMINATOR
          IFNOSBE 
            WRITER OUTPUT,RECALL  FLUSH BUFFER TO TERMINAL
          ELSE
            GETJO    JOINFO       *GET JOB ORIGIN TYPE IN JOINFO
            SA1      JOINFO 
            SB3      X1 
            SB4      TXO
            IFTHEN B3=B4
              WRITE OUTPUT,RECALL   FLUSH BUFFER TO TERMINAL
            ELSE- 
              WRITER OUTPUT,RECALL
              ENDIF.
          ENDIF 
            SX6    BUF         RESET *IN* AND *OUT* 
            SA6    OUTPUT+IN    SO WE DO NOT HAVE TO WORRY
            SA6    OUTPUT+OUT    WRAP-AROUND
            ENDIF.
          EXIT
  
  
 IN       EQU    2           OFFSET FOR *IN* POINTER
 OUT      EQU    3           OFFSET FOR *OUT* POINTER 
 LIMIT    EQU    4           OFFSET FOR *LIMIT* POINTER 
TXO       EQU    3
JOINFO    BSSZ   1
 OUTPUT   VFD    42/0L_OUTPUT,18/1
          VFD    42/,18/BUF  FIRST
          VFD    42/,18/BUF  IN 
          VFD    42/,18/BUF  OUT
          VFD    42/,18/BUF+LBUF  LIMIT 
  
 LBUF     EQU    101B        LENGTH OF BUFFER = PRU + 1 
 BUF      BSS    LBUF        OUTPUT BUFFER
  
  
          END 
