*DECK C$STOP
          IDENT  C$STOP 
          TITLE  CBSTOP - PROCESS STOP STATEMENTS.
  
          MACHINE  ANY,I
          COMMENT  PROCESS STOP STATEMENTS
          SST 
          SPACE  4
**
*         PROCESS STOP STATEMENTS 
* 
*         CALLING SEQUENCE: 
*                SB3    0              IF STOP RUN
*                       FWA LITERAL    IF STOP LITERAL
*                SB4    LENGTH         IF STOP LITERAL
*                RJ     C.STOP
* 
*         DOES: 
* 
*                PROCESSES CALLS FROM OLD BINARIES PRE-LEVEL I8A. 
*                FOR STOP RUN:     RJ    C.STOPR
*                FOR STOP LITERAL: DONE HERE AS BEFORE IN CBINIT
* 
*         USES:  NO REGISTERS 
**
  
          ENTRY  C.STOP 
          EXT    C.STOPR
          EXT    C.BUFF 
          EXT    C.BLANK
  
 C.STOP   DATA   0           ENTRY/EXIT 
          SX6    B3 
          SX7    B4 
          SA6    SAVEB34
          SA7    A6+B1
          RJ     =XC.CLOSF   CLOSE ANY OPEN FILES 
          SA1    SAVEB34
          SA2    A1+B1
          SB3    X1 
          SB4    X2 
          NZ     B3,STOPL    JUMP IF STOP LITERAL 
          RJ     C.STOPR     STOP RUN 
          EQ     C.STOP 
 STOPL    BSS    0           STOP LITERAL 
          SA2    STLMSG      GET MESSAGE HEADER 
          BX6    X2 
          SA6    C.BUFF      PUT IN BUFFER
          SB6    A6+B1       SET FOR MOVE 
          SA2    C.BLANK     INITIALIZE STORE WORD TO 3 BLANKS
          MX6    18 
          BX6    X6*X2
          MX1    6           CHAR MASK
          SB7    7           (B7) = REMAINING CHARS TO FILL WORD
          SB2    68          MAX NBR ALLOWED IN MESSAGE + 1 
          LT     B4,B2,STL2  JUMP IF MESSAGE NOT TOO LONG 
          SB4    B2-B1       USE MAX
 STL2     PL     X1,STL3     IF NOT 1ST CHAR IN FETCH WORD
          SA3    B3          FETCH NEXT WORD
          SB3    B3+B1
 STL3     BX7    X1*X3       MOVE NEXT CHAR TO POSITION 
          LX7    -18
          BX6    X6+X7
          SB7    B7-B1
          NZ     B7,STL4     IF CURRENT WORD NOT FILLED 
          SA6    B6          STORE CURRENT WORD 
          SB6    B6+B1
          MX6    0           INITIALIZE FOR NEXT WORD 
          SB7    10 
 STL4     SB4    B4-B1       DOWN TOTAL CHAR COUNT
          LX1    -6          POSITION MASK FOR NEXT CHAR
          NZ     B4,STL2     IF MORE CHARS
          SA6    B6          STORE PARTIALLY FILLED WORD
          MX7    0           INSURE TERMINATOR IN CASE NO FULL ZERO 
          SA7    A6+B1        BYTE AT END OF LAST WORD
          MESSAGE  C.BUFF,LOCAL,RCL  OUTPUT MESSAGE 
          SX7    B1          SET PAUSE BIT
          LX7    12 
          SA1    B0 
          BX7    X1+X7
          SA7    A1 
 STL5     RECALL             WAIT ON PAUSE BIT
          SA1    B0 
          LX1    59-12
          MI     X1,STL5
          EQ     C.STOP      RETURN 
  
 STLMSG   DATA   10HPAUSE 
          EQ     C.STOP 
 SAVEB34  BSS    2
          END 
