COMCSKW 
COMMON
          CTEXT  COMCSKW - SKIP WORDS IN CIRCULAR BUFFER. 
 COMCSKW  SPACE  4,10 
          IF     -DEF,QUAL$,1 
          QUAL   COMCSKW
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 COMCSKW  SPACE  4,10 
***       COMCSKW - SKIP WORDS IN CIRCULAR BUFFER.
* 
*         P. C. SMITH.       92/01/15.
 SKW      SPACE  4,25 
***       SKW SKIPS A SPECIFIED NUMBER OF WORDS IN A CIRCULAR BUFFER. 
* 
*         ENTRY  (X2) = ADDRESS OF FET FOR FILE.
*                (B7) = NUMBER OF WORDS TO BE SKIPPED.
*                IF (B7) = 0, NO WORDS WILL BE SKIPPED. 
* 
*         EXIT   (X1) = 0 FOR SKIP COMPLETE.
*                (X1) = -1 IF EOF DETECTED ON FILE. 
*                (X1) = -2 IF EOI DETECTED ON FILE. 
*                (X1) = -3 IF *CIO=* WAS CALLED TO READ MORE DATA AND 
*                         RETURNED AN ERROR STATUS (ONLY IF *COMCCIO* 
*                         WAS ASSEMBLED WITH *ERP1$* DEFINED).
*                (X1) = +1 IF EOR DETECTED ON FILE BEFORE SKIP
*                         WAS COMPLETED.
*                (X2) = ADDRESS OF FET FOR FILE.
*                (X7) = ERROR STATUS IF (X1) = -3.
*                (B7) = WORDS REMAINING TO BE SKIPPED, IF (X1) .NE. 0.
* 
*         USES   X - 1, 2, 3, 4.
*                A - 1, 2, 3, 4.
*                B - 1, 3, 4, 5, 6, 7.
* 
*         CALLS  LCB=, RDX=.
  
  
+         EQ     SKW1        CONTINUE (REENTRY FROM *LCB=*) 
  
 SKW=     PS                 ENTRY/EXIT 
          SX1    B0+         PRESET NORMAL RETURN STATUS
          ZR     B7,SKW=     IF SKIP COUNT = ZERO, RETURN 
          SA4    SKW=        SET RETURN ADDRESS 
  
          IF     -DEF,B1=1,1
          SB1    1
  
          SA1    X2+4        (B5) = LIMIT 
          SA3    X2+B1       (X3) = FIRST 
          SB5    X1 
          SB6    B1          PRESET EOR STATUS
  
*         INITIALIZE REGISTERS FOR TRANSFER.
  
 SKW1     SA1    A3+B1       (B3) = IN
          SA2    A1+B1       (B4) = OUT 
          SB3    X1 
          SB4    X2 
  
*         SKIP WORDS IN CIRCULAR BUFFER.
  
 SKW2     GT     B4,B3,SKW3  IF OUT .GT. IN 
          SB4    B7+B4       ADVANCE OUT
          LE     B4,B3,=XRDX=  IF NEW OUT .LE. IN, EXIT 
          SB7    B4-B3       WORDS REMAINING TO SKIP
          SB4    B3          SET OUT = IN 
          EQ     =XLCB=      LOAD CIRCULAR BUFFER 
  
 SKW3     SB4    B7+B4       ADVANCE OUT
          LT     B4,B5,=XRDX=  IF NEW OUT .LT. LIMIT, EXIT
          SB7    B4-B5       WORDS REMAINING TO SKIP
          SB4    X3          SET OUT = FIRST
          EQ     SKW2        SKIP REMAINING WORDS 
 COMCSKW  SPACE  4,10 
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 SKW=     EQU    /COMCSKW/SKW=
 QUAL$    ENDIF 
          ENDX
