ASMB,R,L,C
*     NAME:   RWNDF 
*     SOURCE: 92070-18053 
*     RELOC:  92070-16053 
*     PGMR:   G.A.A.
*     MOD:    M.L.K.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS     *
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
*  ***************************************************************
* 
* 
      NAM RWNDF,7  92070-1X053  REV.1941  790709
* 
      HED RWNDF 
      ENT RWNDF 
      EXT .ENTR,RWND$,EXEC
      EXT R/W$,GTOPN
*     THE MODULE OF THE RTE FILE MANAGER PERFORMS 
*     THE REWIND OR RESET FUNCTION
* 
*     A FILE IS RESET TO EXTENT 0 RECORD 1 VIA RWND$
*     A TYPE ZERO UNIT IS REWOUND VIA AN EXEC CALL
* 
* 
*     CALLING   SEQUENCE
* 
*     CALL RWNDF(IDCB,IER)
* 
*         WHERE:
* 
*         IDCB  IS THE FILES DATA CONTROL BLOCK ARRAY 
* 
*         IER   IS THE ERROR RETURN LOCATION. 
*               ERRORS ARE RETURNED IN THE A REG
*               ALSO. 
*               ERRORS  CODES ARE:
*             0   NO ERROR
*            -11 DCB NOT OPEN 
* 
* 
      SKP 
RWNDF NOP 
      LDB DFDM      PRESET
      STB DCB         ENTRY 
      STB IER           ADDRESSES 
      LDA RWNDF     MOVE RETURN ADDRESS 
      STA DWNDF           TO DUMMY ENTRY POINT
      JMP DWNDF+1   GO DO IT
* 
DCB   DEF DCB 
IER   DEF DCB 
      SPC 1 
DWNDF NOP           ENTRY  POINT
      JSB .ENTR      FETCH
DFDM  DEF DCB         PRAM ADDRESSES
      SPC 1 
      LDB DCB       GET DCB ADDRESS 
      ADB .2         INDEX TO TYPE AND
      STB TYPE        SET ADDRESS 
      ADB .7           INDEX TO OPEN FLAG AND 
      JSB GTOPN     GET CURRENT OPEN FLAG 
      DEF *+1 
      CPA B,I       SAME AS IN DCB? 
      CLA,INA,RSS    YES; SET AWRWND RECORD COUNT/SKIP
      JMP NOOPN      NO; TAKE ERROR  EXIT 
      ADB .5        INDEX TO RECORD COUNT AND 
      STA B,I       SET RECORD COUNT
      LDA TYPE,I    GET TYPE
      CLE,SZA        IF NOT ZERO
      JMP DISC        GO DO DISC THING
      SPC 1 
      ISZ TYPE      TYPE =0 -STEP TO LU 
      LDA TYPE,I     FETCH LU AND 
      AND B77         ISOLATE IT THEN 
      ADA B400         ADD THE REWIND BIT 
      STA TYPE          AND  SAVE  FOR EXEC 
      SPC 1 
      JSB EXEC      CALL EXEC TO
      DEF RTN        REWIND 
      DEF .3I         TYPE
      DEF TYPE         ZERO  FILE 
RTN   JMP ER17      EXEC ERROR
EXRTN CLA,RSS       SET ERROR CODE AND SKIP TO EXIT 
NOOPN LDA N11       NOT OPEN- EXIT -11
EXIT  STA IER,I     SET ERROR CODE
      JMP DWNDF,I       RETURN
* 
ER17  LDA N17       ILLEGAL CONTROL REQUEST 
      JMP EXIT
      SPC 2 
DISC  LDB DCB       SET UP AND
      JSB R/W$      WRITE THE BLOCK IF NECESSARY
      JMP EXIT      IF ERROR EXIT 
      SPC 1 
      LDB DCB       DISC  FILE-CALL 
      CLA            RWND$
      JSB RWND$       TO SET UP  DCB
      JMP EXIT         ERROR RETURN 
      JMP EXRTN         NORMAL RETURN 
      SKP 
*      CONSTANT AREA
      SPC 1 
.3I   OCT 100003
TYPE  NOP 
.2    DEC 2 
.5    DEC 5 
.7    DEC 7 
N17   DEC -17 
B77   OCT 77
B400  OCT 400 
N11   DEC -11 
      SPC 2 
A     EQU 0 
B     EQU 1 
      SPC 1 
END   EQU * 
      SPC 1 
      END 
                                                                                                                                    