*DECK S$GTWRD 
          IDENT  S$GTWRD
          TITLE  S$GTWRD -  GET WORD FROM TERMINAL
          COMMENT  GET WORD FROM TERMINAL 
          SPACE  4
**        S$GTWRD -  GET WORD FROM TERMINAL 
* 
*     CALLING SEQUENCE- 
*         S$GTWRD(WORD);
* 
*     GIVEN-
*         ITEM  WORD         C(10); 
* 
*     DOES- 
*         SETS WORD = NEXT WORD FROM TERMINAL.
*         THE RIGHT 12 BITS (AT LEAST) WILL BE ZERO IF THIS IS
*          A LINE TERMINATOR. 
  
  
          ENTRY  S$GTWRD
 S$GTWRD  SUBR
          SA0    X1          SAVE ADDRESS OF *WORD* 
  
*     FI THE BUFFER IS EMPTY, FILL IT 
  
          SA1    INPUT+IN 
          SA2    INPUT+OUT
          IX6    X1-X2       IN - OUT 
          IFTHEN X6=0        IF BUFFER IS EMPTY 
            SX6    BUF         RESET IN AND OUT 
            SA6    INPUT+IN     SO WE DO NOT WORRY ABOUT WRAP-AROUND
            SA6    INPUT+OUT
            READ   INPUT,RECALL FILL BUFFER 
            SA1    INPUT+IN 
            SA2    INPUT+OUT
            IX6    X1-X2       IN - OUT 
            IFTHEN X6=0         IF ONLY CARRIAGE RETURN 
              MX6    0           *WORD* = 0 
              SA6    A0 
______        EXIT
              ENDIF.
            ENDIF.
  
*     GET THE NEXT WORD FROM THE BUFFER 
  
          SA3    X2          (OUT)
          BX6    X3 
          SA6    A0          STORE INTO PARAMETER 
  
          SX6    X2+1        OUT = OUT + 1
          SA6    INPUT+OUT
  
          EXIT
  
  
 IN       EQU    2           OFFSET FOR *IN* POINTER
 OUT      EQU    3           OFFSET FOR *OUT* POINTER 
 INPUT    VFD    42/0L_INPUT,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        INPUT BUFFER 
  
  
          END 
