*DECK SKFLDSQ 
          IDENT     SKFL$SQ 
          COMMENT   CRM SKIP FORWARD ROUTINE
          ENTRY     SKFL$SQ 
          TITLE     SKFL$SQ 
          LIST      C,F,X 
          SST 
          B1=1
          BASE      D 
 RMCODE   CODE      D 
*#
*1CD  SKFL$SQ 
*0D   PURPOSE 
*0        REPOSITION A FILE FORWARD A SPECIFIED NUMBER OF LOGICAL 
*         RECORDS 
*0D   CALL
*0                  SX2       SKIP-COUNT
*                   SB6       RETURN ADDRESS
*                   EQ        =XSKFL$RM 
*0D   PARAMETERS
*0        A0        FIT ADDRESS 
*         B1        1 
*         X2        NUMBER OF  LOGICAL RECORDS TO SKIP
*         B6        RETURN ADDRESS
*0D   ACTION
*0        IF RT=U, JUMP TO ERR$RM TO OUTPUT ERROR MESSAGE 404B
*         (SKIPFL DISALLOWED FOR RT=U). 
*         ZERO THE PARTIAL READ FLAG FOR *GET$SQ* AND SET THE DELETE
*         FLAG *DEL* TO 1 SO *GET$SQ* DOESNT MOVE ANY DATA TO THE 
*         WORKING STORAGE AREA.  IF THE CURRENT FILE POSITION IS
*         MID-RECORD, BRANCH TO *SKGT$SQ* (IN *GET$SQ*) TO SKIP TO
*         THE END OF THE CURRENT RECORD.  NOW CALL *SKGT$SQ*  SKP 
*         (SKIP-COUNT) TIMES OR UNTIL AN END-OF-DATA CONDITION OCCURS 
*         (EOS,EOP,EOI), STORE ANY RESIDUAL SKIP COUNT IN THE FIT 
*         AND IN X0, TURN OFF THE DELETE FLAG, AND RETURN TO THE CALLER 
*         THROUGH B6. 
*0D   REGISTERS USED
*0        A137,X012367,B236 
*0D   OTHER CODE
*0        PROGRAMS- GET$SQ (SKGT$SQ),ERR$RM 
*         MACROS-   F.RM,SET.RM,SAVE,RESTORE
*#
 SKFL$SQ  TITLE     SKFL$SQ 
 SKFL$SQ  CAP.RM    INTERMEDIATE
          BX7       0 
          SA7       =XRM$TMP
 36B      PUT.IN    0 
          F.RM      RT,X2,-#UT# 
          S"ERRREG" 404B           SKIPFL DISALLOWED FOR RT=U 
          ZR        X2,=YERR$RM 
          SAVE
          SET.RM    STM,0          SO GET/PUT WILL RECALCULATE SPACE
          SET.RM    DEL,1 
          SET.RM    PRD,0 
          SET.RM    GSF,0 
          F.RM      FP,B3 
          NZ        B3,NMIDREC
          SB3       #SF#
          SB6       SDEL           RETURN ADDRESS 
          EQ        =XSKGT$SQ      GO TO GET$SQ TO SKIP OVER THE RECORD 
 SDEL     BSS       0 
 NMIDREC  BSS       0 
          F.RM      SKP,B2
          ZR        B2,EOF
          SB6       SKPCONT        RETURN ADDRESS 
 SKPGET   BSS       0 
          SB3       #SF#
          JP        =XSKGT$SQ      GO TO GET$SQ TO SKIP OVER THE RECORD 
 SKPCONT  BSS       0 
          F.RM      FP
          SX2       #EOI#+#EOS#+#EOP# 
          BX1       X1*X2 
          F.RM      SKP,3,B2
          NZ        X1,EOF
          SB2       B2-B1 
          SET.RM    SKP,B2
*         GET.SQ INCREEMNTS RC
          GT        B2,B0,SKPGET   JUMP IF NOT FINISHED 
 EOF      BSS       0              DONE 
*         LEAVE THE RESIDUAL SKIP COUNT FOR OPEN EXTEND 
          SET.RM    DEL,0 
          STO.REG 
          SA1       CAPSTAT 
          BX7       X1
          SA7       RM$TMP
          RESTORE 
          JP        B6
          END 
