ASMB,R,L,C
      HED FCONT 
*     NAME:   FCONT 
*     SOURCE: 92064-18072 
*     RELOC:  92064-16061 
*     PGMR:   G.A.A.
*     MOD:    G.L.M 
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  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 FCONT,7  92064-16061  REV.1650  760806
* 
      ENT FCONT 
      EXT .ENTR,EXEC
* 
*     THIS IS THE TYPE ZERO CONTROL ROUTINE OF
*     THE RTE FILE MANAGEMENT PACKAGE.
* 
*     A STANDAD  RTE  CONTROL  REQUEST IS ISSUED
*     TO THE  DEVICE  VIA  THE EXEC  IF THE 
*     PCB  IS  OPEN  TO A TYPE  ZERO FILE.
*     CALLING  SEQUENCE 
*     CALL FCONT(IDCB,IERR,ICON1,ICON2) 
*       WHERE:
*         IDCB   IS THE DATA CONTROL BLOCK FOR
*                 THE FILE. 
*         IERR   IS THE LOCATION FOR RETURNED 
*                 ERRORS. 
*                 POSSIBLE ERRORS ARE:
*              0 NO  ERRORS 
*              -11 DCB NOT OPEN 
*              -12       EOF SENSED 
*              >0  NOT A TYPE ZERO FILE (IERR=TYPE) 
*     ICON1   IS CONTROL WORD #1 - THE DEVICE 
*              LU IS MURGED INTO THE LOW
*              6 BITS  OF  THIS WORD
*     ICON2   IS CONTROL WORD TWO - OPTIONAL
*               ZERO  IS USED IF NOT SPECIFIED
*     ON   RETURN     A =  IERR 
      SPC 3 
*     PRE  CONSTANT  AREA 
.3    OCT 3 
      SPC 3 
FCONT NOP 
      LDB DZERO     RESET ONLY OPTIONAL 
      STB ICON2     PARAMETER ??????????
      STB ICON1 
      STB IERR
      STB IDCB
      CLB 
      STB ZERO      MUST CLEAR AS ICON2 IS DEFAULTED TO HERE
      LDA FCONT 
      STA DCONT 
      JMP DCONT+1 
* 
IDCB  DEF ZERO      PARAMETER 
IERR  DEF ZERO       ADDRESS
ICON1 DEF ZERO        AREA
ICON2 DEF ZERO
* 
*  CODES OF 12,13 OR 14 WILL ZAP RECORD COUNTER 
* 
      SPC 1 
DCONT NOP           ENTRY POINT 
      JSB .ENTR      FETCH PARAMETERS 
      DEF IDCB
      LDB IDCB      GET DCB 
      ADB .3         ADDRESS
      STB LU        OF LU WORD
      INB            AND
      STB EOFCD     OF EOF CODE 
      ADB .4          AND 
      STB FILE#        FILE#
      INB              AND
      LDA B,I           OPEN FLAG 
      CPA XEQT      OPEN? 
      JMP OK        YES, CONTINUE 
      LDA N11       NO; SEND NOT OPEN ERROR 
EXIT  STA IERR,I    TO CALLER 
      JMP DCONT,I   RETURN
      SPC 2 
*     MID  CONSTANT  AREA 
      SPC 1 
N11   DEC -11 
DZERO DEF ZERO
ZERO  NOP 
B77   OCT 77
      SPC 1 
* 
*    THIS PREVENTS REQUESTS (10 AND 11) DIRECTED
*    AT CTU'S FROM WRITING EOF'S
* 
*     10 AND 11 ARE SPACING REQUESTS FOR LINE PRINTER 
* 
OK    ADB .5
      STB RC        ADDRESS OF RECORD COUNT 
* 
      LDA ICON1,I   FETCH FUNCTION CODE 
      AND B7700     ISOLATE FUNCTION CODE 
      ADA EOFMT     CHECK FOR 10
      SZA 
      ADA N1        NOPE--HOW ABOUT 11? 
      SZA 
      JMP OK2        NOPE--GO CHECK IF REWIND AND FILE. 
* 
*  MUST NOT BE MAG TAPE TYPE DEVICE 
* 
      LDA EOFCD     FETCH EOF CODE
      AND B3700     ISOLATE CODE
      ADA N100K     IF MAG TAPE(CTU)
      SZA,RSS 
      JMP EXIT      GET OUT 
* 
OK2   LDA IDCB,I    IF NOT DEVICE 
      SSA,RSS 
      JMP FILE       GO TRAP REWIND REQUESTS
* 
* 
*     GOT A MT TYPE DEVICE
      SPC 3 
OK3   LDA LU,I      GET LU
      AND B77        AND ISOLATE  THEN
      STA B         SAVE
      LDA ICON1,I   GET THE FUNCTION
      AND B1777     MAKE SURE THE LOW END IS ZERO 
      IOR B         PUT THEM TOGETHER 
      STA ICON1     SET FOR CALL
      JSB EXEC      CALL EXEC TO
      DEF EXRTN      DO 
      DEF .3          THE 
      DEF ICON1        CONTROL
      DEF ICON2,I       FUNCTION
EXRTN CLA 
      JMP EXIT      GO; EXIT
      SPC 3 
FILE  LDA ICON1,I   FETCH FUNCTION CODE 
      AND B7700     ISOLATE FUNCTION CODE 
      ADA N400K     CHECK FOR REWIND
      SZA 
      ADA N1        BOTH 4 AND 5
      SZA 
      JMP OK3       NOPE --GO DO IT 
* 
      CLA,INA 
      STA RC,I      SET RECORD COUNT TO 1 
      LDA FILE#      ADDRESS OF FILE# 
      STA ICON2         FOR LOCATE CALL 
      LDA ALOCA     ADDRESS OF LOCATE FUNCTION
      STA ICON1        SET FOR LOCATE CALL
      JMP OK3       GO DO IT
* 
*     POST   CONSTANT AREA
      SPC 1 
FILE# NOP 
B2700 OCT 2700
ALOCA DEF B2700 
N400K OCT -400
N1    OCT -1
B7700 OCT 7700
EOFMT OCT -1000 
.4    OCT 4 
.5    OCT 5 
N100K OCT -100
LU    NOP 
RC    NOP 
EOFCD NOP 
B1777 OCT 177700
B3700 OCT 3700
B200  OCT 200 
BS1R  EQU B200      BACK SPACE 1 RECORD 
FS1R  OCT 300 
N12   DEC -12 
FS1RA DEF FS1R
      SPC 2 
A     EQU 0 
B     EQU 1 
XEQT  EQU 1717B 
      SPC 1 
END   EQU * 
      SPC 1 
      END 
                                                                                