ASMB,R,L,C
      HED RWNDF 
*     NAME:   RWNDF 
*     SOURCE: 92067-18132 
*     RELOC:  92067-16125 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (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 92067-16125 REV.1903 780724 
      ENT RWNDF 
      EXT .ENTR,RWND$,EXEC
      EXT R/W$
*     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 AND 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 
* 
* 
      SPC 2 
*     PRE CONSTANT AREA 
      SPC 1 
.3    DEC 3 
TYPE  NOP 
.2    OCT 2 
.7    DEC 7 
.4    DEC 4 
      SPC 3 
DCB   DEF DCB 
IER   DEF DCB 
      SPC 1 
RWNDF 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 
      LDA B,I           FETCH 
      CPA XEQT      OPEN? 
      CLA,RSS        YES; SET AWRWND RECORD COUNT/SKIP
      JMP NOOPN      NO; TAKE ERROR  EXIT 
      ADB .4        INDEX TO RECORD COUNT AND 
      STA B,I       SET RECORD
      INB            COUNT
      INA             TO ONE. 
      STA B,I 
      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 EXRTN      REWIND 
      DEF .3          TYPE
      DEF TYPE         ZERO  FILE 
EXRTN CLA,RSS       SET ERROR CODE AND SKIP TO EXIT 
NOOPN LDA N11       NOT OPEN- EXIT -11
EXIT  STA IER,I     SET ERROR CODE
      LDB DFDM       RESET ENTRY ADDRESSES
      STB DCB         AND 
      STB IER          THEN 
      JMP RWNDF,I       RETURN
      SPC 2 
*     MID CONSTANT AREA 
      SPC 1 
B77   OCT 77
B400  OCT 400 
N11   DEC -11 
      SPC 3 
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 
      SPC 2 
*     POST  CONSTANT AREA 
      SPC 1 
A     EQU 0 
B     EQU 1 
XEQT  EQU 1717B 
      SPC 1 
END   EQU * 
      SPC 1 
      END 
    