ASMB,L,C
      NAM EOF.C,7 92060-16102 770523 REV. 1901 $CLIB
* 
*     NAME:   EOF.C 
*     SOURCE: 92060-18060 
*     PGMR:   EARL STUTES 
* 
*************************************************************** 
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  ALL RIGHTS     * 
* RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE-  * 
* REPRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * 
* OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.   * 
*************************************************************** 
      SPC 2 
*  THIS PROCEDURE PROVIDES THE END OF FILE FUNCTION FOR THE COMPILER
*  LIBRARY
* 
* PROC ENDOFFILE(FCB);
* RECORD FCB; 
* BEGIN 
* INTEGER FUNCTION, 
*         .M2 := -2,
*         .3 := 3;
*   ADDRESSETUP;
*   IF FCB.UNITRECORD THEN
*   [ FUNCTION := FCB.LU AND @77 OR @100; 
*     EXEC(.3,FUNCTION);
*     FUNCTION := FCB.LU AND @77 OR @1000;
*     EXEC(.3,FUNCTION);
*     FUNCTION := FCB.LU AND @77 OR @1100;
*     EXEC(.3,FUNCTION,.M2);] 
*  ELSE 
*  [ IF WRITEBUFFER THEN
*    [ GETNEXTSECTOR(FALSE);
*      IF ERROR THEN GO ERROR EXIT;]
* END OF ENDOFFILE; 
      SKP 
      ENT EOF.C 
      EXT EXEC      GUESS WHO 
      EXT ADS.C     FIX UR POINTERS CHEAP 
      EXT C.BFF     THE DISC BUFFER POINTER 
      EXT GES.C     DISC SECTOR READ/WRITE PROC 
      EXT C.FID     FCB ID WORD 
      EXT C.FLU     FCB LU WORD 
B     EQU 1 
* PROC ENDOFFILE(FCB);
* RECORD FCB; 
* BEGIN 
* INTEGER FUNCTION, 
FUNC. BSS 1 
*         .M2 := -2,
.M2   DEC -2
*         .3 := 3;
.3    DEC 3 
      SPC 2 
EOF.C BSS 1 
*   ADDRESSETUP;
      JSB ADS.C 
      DEC 0 
*   IF FCB.UNITRECORD THEN
      LDA C.FID,I 
      SSA,RSS 
      JMP L1
*   [ FUNCTION := FCB.LU AND @77 OR @100; 
      LDB =B100 
      JSB ANDOR 
*     EXEC(.3,FUNCTION);
      JSB EXEC
      DEF *+2+1 
      DEF .3
      DEF FUNC. 
*     FUNCTION := FCB.LU AND @77 OR @1000;
      LDB =B1000
      JSB ANDOR 
*     EXEC(.3,FUNCTION);
      JSB EXEC
      DEF *+2+1 
      DEF .3
      DEF FUNC. 
*     FUNCTION := FCB.LU AND @77 OR @1100;
      LDB =B1100
      JSB ANDOR 
*     EXEC(.3,FUNCTION,.M2);
      JSB EXEC
      DEF *+3+1 
      DEF .3
      DEF FUNC. 
      DEF .M2 
      JMP EXIT
*  ELSE 
L1    EQU * 
*  IF WRITEBUFFER THEN
      LDA C.BFF,I 
      SSA,RSS 
      JMP EXIT
*    [ GETNEXTSECTOR(FALSE);
      CLA 
      JSB GES.C 
*      IF ERROR THEN GO ERROR EXIT;]
      JMP EOF.C,I 
* END OF ENDOFFILE; 
EXIT  ISZ EOF.C 
      JMP EOF.C,I 
      SPC 3 
ANDOR BSS 1 
      LDA C.FLU,I 
      AND =B77
      IOR B 
      STA FUNC. 
      JMP ANDOR,I 
      END 
                                                                                                                  