

                22-Aug-1978 02:32:38	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 1   

					EOMANL.FTN.3        



        C

        C

        C	EOMANL  --  END OF MODULE ANALYSER

        C

        C

        C

        C	COPYRIGHT (C) 1976,1977,1978

        C	DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

        C

        C	THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

        C	SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

        C	SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

        C	OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

        C	AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

        C	AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

        C	OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

        C

        C	THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

        C	NOTICE AND SHOULD NOT BE CONSTRUED  AS  A COMMITMENT BY DIGITAL

        C	EQUIPMENT CORPORATION.

        C

        C	DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

        C	SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

        C

        C

        C	T.J. PORTER   01-AUG-76

        C

        C

        C	THIS SUBROUTINE ANALYSES THE VALIDITY AND CONTENT OF

        C	END OF MODULE RECORDS.

        C

        C

        C

        C  MODIFICATIONS:

        C

        C  NO		DATE		PROGRAMMER		PURPOSE

        C  --		----		----------		-------

        C

        C  01		09-MAY-78	K.D. MORSE		ADD TIRCNT TO COMMON.

0001    		SUBROUTINE	EOMANL

        C

        C

0002    	LOGICAL*1	DUMPIT

        C

0003    	INTEGER*4	ADDRES

0004    	INTEGER		EOMLNG,RECNUM,PSECT,PSCNT,PSRGSD,PSRTIR,PRMODE

0005    	INTEGER		ERRCNT,WRTERR,SUBCNT

0006    	INTEGER		PROCRC,TITLRC,COPYRC,TIRCNT

        C

0007    	BYTE	RECORD(512),SEVRTY,PSECIX,EOM,LSTREC

0008    	BYTE	MINEOM,MAXEOM,TFRADR(4),DUMMY(4),HEXARA(8)

        C

0009    	COMMON	RECORD,EOMLNG,RECNUM,LSTREC,DUMPIT,PSCNT,PSRGSD,PSRTIR

0010    	COMMON	MXRLNG,PRMODE,ERRCNT,WRTERR,SUBCNT,ISTACK

0011    	COMMON	PROCRC,TITLRC,COPYRC,TIRCNT

        C



EOMANL          22-Aug-1978 02:32:38	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 2   

					EOMANL.FTN.3        



0012    	EQUIVALENCE (SEVRTY,RECORD(2)),(PSECIX,RECORD(3))

0013    	EQUIVALENCE (TFRADR(1),RECORD(4)),(DUMMY(1),ADDRES)

        C

0014    	DATA	EOM,MINEOM,MAXEOM/3,2,7/,MAXADR/28/

        C

0015    10	FORMAT(/' >>>>>>>>>> RECORD ',I4,' IS END OF MODULE '

        	1,I4,' BYTES LONG <<<<<<<<<<<<<<<')

0016    20	FORMAT(T5,'*****INVALID SEQUENCE - SHOULD NOT FOLLOW EOM'

        	1/,T15'OR BEGIN A MODULE')

0017    30	FORMAT(T5,'*****ILLEGAL SEVERITY CODE ',I4)

0018    40	FORMAT(T10,'NO COMPILER ERRORS ')

0019    50	FORMAT(T10,'COMPILER WARNINGS ')

0020    60	FORMAT(T10,'SEVERE COMPILER ERRORS ')

0021    70	FORMAT(T10,'LINKER ABORT SPECIFIED ')

0022    80	FORMAT(T5,'*****ILLEGAL RECORD LENGTH ',I5,

        	1' - NOT BETWEEN',I2,' AND',I2)

0023    90	FORMAT(T5,'*****P-SECTION NUMBER EXCEEDS COUNT OF',

        	1' THOSE DEFINED IN MODULE(',I4,')')

0024    100	FORMAT(T10,'TRANSFER ADDRESS IS IN PSECT',I4)

0025    110	FORMAT(T5,'*****ILLEGAL TRANSFER ADDRESS (NOT',

        	1' BETWEEN 0 AND 2**28 ')

0026    120	FORMAT(T10,'TRANSFER ADDRESS = ',I10,' (DEC)',O12,' (OCTAL)',/

        	1,T40,8A1,' (HEXADECIMAL)')

0027    130	FORMAT(T10,'NO PROGRAM TRANSFER ADDRESS ')

        C

        C---->		ANNOUNCE END OF MODULE AND CHECK

        C			IT DOES NOT FOLLOW EOM

        C

        C

0028    400	WRITE(2,10,ERR=1000) RECNUM,EOMLNG

0029    	IF(LSTREC .NE. EOM) GO TO 440

0030    	ERRCNT = ERRCNT + 1

0031    	WRITE(2,20,ERR=1000)

        C

        C---->		NOW ANALYSE THE SPECIFIED

        C			ERROR SEVERITY.

        C

0032    440	GO TO(450,460,470,480) SEVRTY+1

        C

0033    	ERRCNT = ERRCNT + 1

0034    	WRITE(2,30,ERR=1000) SEVRTY

0035    	GO TO 600

        C

0036    450		WRITE(2,40,ERR=1000)

0037    		GO TO 600

        C

0038    460		WRITE(2,50,ERR=1000)

0039    		GO TO 600

        C

0040    470		WRITE(2,60,ERR=1000)

0041    		GO TO 600

        C

0042    480		WRITE(2,70,ERR=1000)

        C

        C

        C---->		SPECIFIED ERROR SEVERITY DETERMINED



EOMANL          22-Aug-1978 02:32:38	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 3   

					EOMANL.FTN.3        



        C			VALIDATE LENGTH AND IF 7

        C			BYTES ANALYSE TRANSFER

        C			ADDRESS FIELD

        C

0043    600	IF(EOMLNG .EQ. MINEOM)GO TO 880

0044    	IF(EOMLNG .EQ. MAXEOM)GO TO 650

0045    	WRITE(2,80,ERR=1000) EOMLNG,MINEOM,MAXEOM

0046    	ERRCNT = ERRCNT + 1

0047    	DUMPIT = .TRUE.

0048    	IF(EOMLNG .LT. MAXEOM)GO TO 880

        C

        C---->		ANALYSE A TRANSFER ADDRESS

        C

        C

0049    650	PSECT = PSECIX .AND. 255

0050    	IF(PSECT .LE. PSCNT)GO TO 670

0051    	ERRCNT = ERRCNT + 1

0052    	WRITE(2,90,ERR=1000) PSCNT

        C

0053    670	WRITE(2,100,ERR=1000) PSECT

        C

0054    	DO 700 I = 1,4

        C

0055    		DUMMY(I) = TFRADR(I)

        C

0056    700	CONTINUE

        C

0057    	IF(ADDRES .GE. 0 .AND. (ADDRES .LT. 2**28))GO TO 800

0058    	ERRCNT = ERRCNT + 1

0059    	DUMPIT = .TRUE.

        C

0060    750	WRITE(2,110,ERR=1000)

        C

0061    800	CALL CVTOHX(ADDRES,HEXARA)

        C

0062    	WRITE(2,120,ERR=1000) ADDRES,ADDRES,HEXARA

0063    	GO TO 900

        C

        C---->		NO TRANSFER ADDRESS

        C

0064    880	WRITE(2,130,ERR=1000)

0065    900	RETURN

        C

        C---->		WRITE ERROR TO OUTPUT FILE

        C

0066    1000	WRTERR = 1

0067    	RETURN

        C

0068    	END



EOMANL          22-Aug-1978 02:32:38	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 4   

					EOMANL.FTN.3        



PROGRAM SECTIONS



    Name                 Bytes   Attributes



  0 $CODE                  648   PIC CON REL LCL   SHR   EXE   RD NOWRT LONG

  1 $PDATA                 619   PIC CON REL LCL   SHR NOEXE   RD NOWRT LONG

  2 $LOCAL                  52   PIC CON REL LCL NOSHR NOEXE   RD   WRT LONG

  3 $BLANK                 544   PIC OVR REL GBL   SHR NOEXE   RD   WRT LONG





ENTRY POINTS



    Address  Type Name           



  0-00000000      EOMANL         





VARIABLES



    Address  Type Name               Address  Type Name               Address  Type Name               Address  Type Name           



  2-00000000  I*4 ADDRES           3-0000021C  I*2 COPYRC           3-00000205  L*1 DUMPIT           2-0000000C  L*1 EOM            

  3-00000200  I*2 EOMLNG           3-00000210  I*2 ERRCNT           2-00000014  I*2 I                3-00000216  I*2 ISTACK         

  3-00000204  L*1 LSTREC           2-00000012  I*2 MAXADR           2-0000000E  L*1 MAXEOM           2-0000000D  L*1 MINEOM         

  3-0000020C  I*2 MXRLNG           3-0000020E  I*2 PRMODE           3-00000218  I*2 PROCRC           3-00000206  I*2 PSCNT          

  3-00000002  L*1 PSECIX           2-00000010  I*2 PSECT            3-00000208  I*2 PSRGSD           3-0000020A  I*2 PSRTIR         

  3-00000202  I*2 RECNUM           3-00000001  L*1 SEVRTY           3-00000214  I*2 SUBCNT           3-0000021E  I*2 TIRCNT         

  3-0000021A  I*2 TITLRC           3-00000212  I*2 WRTERR         





ARRAYS



    Address  Type Name		       Bytes  Dimensions



  2-00000000  L*1 DUMMY                    4  (4)

  2-00000004  L*1 HEXARA                   8  (8)

  3-00000000  L*1 RECORD                 512  (512)

  3-00000003  L*1 TFRADR                   4  (4)





LABELS



    Address   Label       Address   Label       Address   Label       Address   Label       Address   Label       Address   Label   



  1-00000000  10'       1-0000004C  20'       1-00000094  30'       1-000000B6  40'       1-000000CE  50'       1-000000E5  60'     

  1-00000101  70'       1-0000011D  80'       1-00000159  90'       1-000001A4  100'      1-000001C7  110'      1-00000205  120'    

  1-0000024A  130'          **      400       0-00000066  440       0-000000A1  450       0-000000BD  460       0-000000D9  470     

  0-000000F5  480       0-0000010F  600       0-0000017B  650       0-000001B7  670           **      700           **      750     

  0-00000224  800       0-00000265  880       0-0000027F  900       0-00000280  1000    





FUNCTIONS AND SUBROUTINES REFERENCED



CVTOHX         







EOMANL          22-Aug-1978 02:32:38	VAX-11 FORTRAN IV-PLUS V1.0-2      Page 5   

					EOMANL.FTN.3        



Total Space Allocated = 1863 Bytes





COMPILER OPTIONS



/CHECK=(NOBOUNDS,OVERFLOW)

/DEBUG=(NOSYMBOLS,TRACEBACK)

/OPTIMIZE  /WARNINGS  /NOI4  /NOD_LINES  

