File: PASS2.LS of Disk: V50/Source/Source-Listing-PAL-3
(Source file text) 


/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 1

		/OS/8 FORTRAN PASS2 (PASS TWO)
		/
		/ VERSION 5A 9-OCT-80 WVDM
		/
		/	OS/8 FORTRAN COMPILER - PASS 2
		/
		/		BY: HANK MAURER
		/		UPDATED BY: R. LARY + M. HURLEY + WVDM
		/
		/
	0005		VERSON=5
	0001		PATCH="A&77
	7757		MREAD=7757
	7776		SBLOCK=7776
		/

		/SEE F4.PA FOR LIST OF MAINTENANCE RELEASE CHANGES -S.R.
		/ALSO, ADDED SAFETY CDF 0 TO BUMP ROUTINE TO FIX BUG
		/MASSAGED LINK IN THAT AREA TO GET ROOM
		/ALSO, FIXED BUG RE DN ERROR PRINTING WRONG LINE NUMBER
		/
		/
		/CHANGES FOR OS/8 V3D AND OS/78 BY P.T.
		/1.	PATCH LEVEL FOR PASS2 IS IN LOCATION 327
		/2.	SYMBIONT WVDM
		/3.	ADAPTED TO CCL-DEVICE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 2

	0001		*1
000001  6232		CIF	30
000002  5001		JMP	1		/FOR SYMBIONT
000003  0001	LINENO,	1			/LINE NUMBER
000004  7773	VERS,	-VERSON			/VERSION NUMBER
000005  5001	ERRPTR,	5001			/POINTER TO THE ERROR LIST
000006  0000	FILDEV,	0			/THIS IS THE FILE DESCRIPTOR
000007  0000	FILBLK,	0			/FOR RALF
000010  4577	X10,	COMREG-1		/INTER PASS COM REGION
000011  0000	X11,	0
000012  0000	X12,	0
000013  0000	X13,	0
000014  0000	X14,	0
000015  0000	X15,	0
000016  0000	X16,	0
000017  0000	X17,	0			/AUTO INDEX REGISTERS
000020  0000	ENTRY,	0			/THINGS USED BY SYMBOL
						/TABLE FIDDLER
000021  0000	OENTRY,	0
000022  0000	BUCKET,	0
000023  0000	TYPE,	0
000024  0000	TEMP,	0			/GENERAL TEMPS
000025  0000	TEMP2,	0
000026  0000	ARG1,	0			/ARGS AND TYPES
000027  0000	BASE1,	0
000030  0000	TYPE1,	0
000031  0000	ARG2,	0
000032  0000	BASE2,	0
000033  0000	TYPE2,	0
000034  0001	TMPCNT,	1			/TEMP COUNT
000035  0000	TMPMAX,	0			/MAX TEMP COUNT
000036  0000	LITNUM,	0			/LITERAL DISPLACEMENT
	0002		TMPBLK=2
	4400		OUBUF=4400
	4600		COMREG=4600
	4700		STACK1=4700
	5000		OVRLAY=5000
	0700		NPOVLY=700
	6600		XRBUFR=6600
	7000		STACK=7000		/STACK-5 CAN'T BE 0
	7200		INBUF=7200
	1600		NPPAS3=1600
000037  0000	ARG,	0			/TEMP FOR CODE
000040  0000	AC,	0			/AC FOR MULTIPLY ROUTINE
000041  0000	XR,	0			/XR CHAR FOR OADDR
000042  0000	MQ,	0			/MQ FOR MULTIPLY ROUTINE
000043  0000	XRNUM,	0			/TEMP USED IN XR STUFF
000044  0000	WHATAC,	0			/POINTER TO VAR
000045  0000	WHATBS,	0			/JUST STORED
000046  0000	FREEXR,	0			/NUMBER OF FREE
						/INDEX REG
000047  0000	DIMPTR,	0			/POINTER TO DIM INFO
						/AFTER GETSS
000050  0000	NARGS,	0			/ARG COUNT FOR SS VAR
						/COMPILE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 2-1

000051  0001	GLABEL,	1			/GENERATED LABEL COUNTER
000052  7000	STKLVL,	STACK			/STACK LEVEL (CHANGED
						/BY DO)
000053  0254	COMMA,	254			/,
000054  0253	PLUS,	253			/+
000055  0000	IFLABL,	0			/HOLDS LABEL FOR LOG IF
000056  7000	DOTEMP,	7000			/DO LOOP TEMP COUNTER
000057  0000	BINARY,	0			/BINARY IO=1, FORMATTED=0
000060  0000	INPUT,	0			/INPUT=1 OUTPUT=0 FOR IO STMTS
000061  0000	PROGNM,	0			/POINTER TO PROG/FUNC NAME
000062  0000	FUNCTN,	0			/0=MAIN, 1=FUNC, -2=SUBR
000063  0000	ARGLST,	0			/POINTER TO ARG LIST
000064  0000	DATASW,	0			/=1 IF THIS IS A DATA STMT
000065  0000	GCTEMP,	0			/TEMP USED BY GENCAL
000066  0000	EXTLIT,	0			/EXTERNAL LITERALS LIST
000067  0000	ELCNT,	0			/AND COUNT
000070  0000	IOLOOP,	0			/IO LOOP SWITCH
000071  0000	ARGIO,	0			/ARG IO SWITCH
000072  0617	F1LNAM,	0617;2224;2216;2415	/FILE NAME FORTRN.TM
000073  2224
000074  2216
000075  2415
000076  7607	DEVH,	7607			/DEVICE HANDLER ADDRESS
000077  0000	ACSWIT,	0			/IS NON ZERO IF CALLING AN ARG
000100  0000	IOSTMT,	0			/SET 1 IF IN IO STMT
						/(FOR IMPLIED LOOPS)
000101  0001	FMODE,	1			/1 IF IN F OR D MODE (0 IF E)
000102  0000	ASFSWT,	0			/1 IF ASF PROLOG, -1 IF
						/ASF END, 0 OTHER
000103  0000	JSRLBL,	0			/LABEL NUMBER FOR CALLS TO ARGS
000104  0000	DPUSED,	0			/=1 IF DP HARDWARE USED
000105  7774	QM4,	-4
000106  0260	Q260,	260
000107  0730	QTTYOU,	TTYOUT
000110  4310	QERMSG,	ERMSG
000111  0402	QNEXT,	NEXT
000112  0400	QNEXTM,	NEXT-2
000113  0656	QUCODE,	UCODE
000114  1300	QCODE,	CODE
000115  0600	QINWOR,	INWORD
000116  0275	QONUMB,	ONUMBR
000117  1025	QSAVEA,	SAVEAC
		Q6M3,
000120  0005	Q5,	5
000121  1400	QGENCO,	GENCOD
000122  7772	QM6,	-6
000123  2254	QOPCOD,	OPCOD
000124  3540	QOPCDE,	OPCODE
000125  1600	QOADDR,	OADDR
000126  0017	Q17,	17
000127  0345	QTTYMS,	TTYMSG
000130  6461	QXRTBL,	XRTABL
000131  6420	QCHKXR,	CHEKXR
000132  5437	QGENSF,	GENSTF
000133  3553	QGENSE,	GENSTE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 2-2

000134  0214	QOSNUM,	OSNUM
000135  0200	QCRLF,	CRLF
000136  3140	QOTAB,	OTAB
000137  0225	QOUTSY,	OUTSYM
000140  0704	QGARG,	GARG
000141  0020	Q20,	20
000142  0040	Q40,	40
000143  0234	QOUTNA,	OUTNAM
000144  2364	QLITRL,	LITRL
000145  0200	Q200,	200
000146  0255	Q255,	255
000147  0003	Q3,	3
000150  3527	QOLABE,	OLABEL
000151  0630	QGETSS,	GETSS
000152  0256	Q256,	256
000153  1020	QSAVAC,	SAVACT
000154  2102	QSKPIR,	SKPIRL
000155  3200	QGENCA,	GENCAL
000156  6502	QLOADA,	LOADA
000157  2112	QMUL12,	MUL12
000160  1200	QGARGS,	GARGS
000161  5466	QOINS,	OINS
000162  0472	QOCHAR,	OCHAR
000163  0645	QNUMBR,	NUMBRO
000164  6600	QXRBUF,	XRBUFR
000165  0315	QTTYP2,	TTYP2C
000166  0337	QTTCRL,	TTCRLF
000167  7715	QM63,	-63
000170  7605	Q7605,	7605
000171  0000	RELCD,	0
000172  3363	QLABEL,	NLABEL	
000173  5274	P0F1,	5274		/101-2605
000174  0361	P0F2,	VERROR
000175  0001	TEM,	1

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 3

		/ OUTPUT UTILTIY ROUTINES
	0200		PAGE
		OCNT,
000200  0000	CRLF,	0			/OUTPUT CR LF
000201  1377		TAD	(215
000202  4562		JMS I	QOCHAR
000203  1376		TAD	(212
000204  4562		JMS I	QOCHAR
000205  1375		TAD	(200
000206  6034		KRS
000207  1374		TAD	(-203
000210  7650		SNA CLA
000211  6031		KSF		/CHECK FOR ^C
000212  5600		JMP I	CRLF
000213  5773		JMP I	(7605
		NCHAR,
000214  0000	OSNUM,	0			/PRINT STMT NUMBER
000215  7001		IAC			/SKIP POINTER WORD
000216  3327		DCA	NAMPTR
000217  1372		TAD	(6211		/ALWAYS IN FIELD 1
000220  3247		DCA	NAMCDF
000221  1214		TAD	OSNUM		/SAVE ENTRY POINT
000222  3234		DCA	OUTNAM
000223  1371		TAD	(243		/GET FIRST CHAR (ALWAYS #)
000224  5244		JMP	L6201		/GO PRINT NAME
		TTCHAR,
000225  0000	OUTSYM,	0			/PRINT OPCODE
000226  3327		DCA	NAMPTR		/SAVE POINTER TO STUFF
000227  1244		TAD	L6201		/ALWAYS FIELD 0
000230  3247		DCA	NAMCDF
000231  1225		TAD	OUTSYM		/SAVE ENTRY
000232  3234		DCA	OUTNAM
000233  5247		JMP	NAMCDF		/PRINT REST
		ONUMT,
000234  0000	OUTNAM,	0			/OUTPUT NAME
000235  3327		DCA	NAMPTR		/SAVE ADDRESS OF NAME
000236  6214		RDF			/GET FIELD OF NAME
000237  1244		TAD	L6201
000240  3247		DCA	NAMCDF		/SAVE AS CDF
000241  1727		TAD I	NAMPTR		/GET FIRST CHAR (ALREADY ASCII)
000242  2327		ISZ	NAMPTR		/SKIP OVER TYPE AND DIM PTR
000243  2327		ISZ	NAMPTR
000244  6201	L6201,	CDF
000245  4562		JMS I	QOCHAR		/OUTPUT CHAR
000246  2327		ISZ	NAMPTR
000247  0000	NAMCDF,	0
000250  1727		TAD I	NAMPTR		/GET NEXT TWO CHARS
000251  6201		CDF
000252  7450		SNA			/IS NAME DONE ?
000253  5634		JMP I	OUTNAM		/YES
000254  3214		DCA	NCHAR		/SAVE TWO CHARS
000255  1214		TAD	NCHAR
000256  7012		RTR			/GET UPPER CHAR
000257  7012		RTR
000260  7012		RTR

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 3-1

000261  1370		TAD	(240
000262  0367		AND	(77
000263  1370		TAD	(240
000264  4562		JMS I	QOCHAR		/OUTPUT IT
000265  1214		TAD	NCHAR		/NOW DO LOWER
000266  0367		AND	(77
000267  7450		SNA
000270  5634		JMP I	OUTNAM		/NAME DONE
000271  1370		TAD	(240
000272  0367		AND	(77
000273  1370		TAD	(240
000274  5245		JMP	L6201+1		/GO AND OUTPUT IT
000275  0000	ONUMBR,	0			/OUTPUT OCTAL NUMBER
000276  3234		DCA	ONUMT		/SAVE TEMPORARILY
000277  1105		TAD	QM4		/4 DIGITS
000300  3200		DCA	OCNT
000301  1234	OLOOP,	TAD	ONUMT
000302  7106		CLL RTL
000303  7004		RAL
000304  3234		DCA	ONUMT
000305  1234		TAD	ONUMT
000306  7004		RAL
000307  0366		AND	(7
000310  1106		TAD	Q260
000311  4562		JMS I	QOCHAR
000312  2200		ISZ	OCNT
000313  5301		JMP	OLOOP
000314  5675		JMP I	ONUMBR
000315  0000	TTYP2C,	0			/PRINT 2 CHARS ON THE TTY
000316  3225		DCA	TTCHAR
000317  1225		TAD	TTCHAR
000320  7012		RTR
000321  7012		RTR
000322  7012		RTR
000323  4327		JMS	CONVRT
000324  1225		TAD	TTCHAR
000325  4327		JMS	CONVRT
000326  5715		JMP I	TTYP2C
		NAMPTR,
000327  6501	CONVRT,	VERSON^100+PATCH+6000	/CONVERT TO ASCII
000330  0367		AND	(77
000331  7440		SZA
000332  1370		TAD	(240
000333  0367		AND	(77
000334  1370		TAD	(240
000335  4507		JMS I	QTTYOUT
000336  5727		JMP I	CONVRT
000337  0000	TTCRLF,	0
000340  1377		TAD	(215
000341  4507		JMS I	QTTYOUT
000342  1376		TAD	(212
000343  4507		JMS I	QTTYOUT
000344  5737		JMP I	TTCRLF
000345  0000	TTYMSG,	0			/PRINT 2 CHAR ERROR MESSAGE
000346  6201		CDF

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 3-2

000347  1745		TAD I	TTYMSG
000350  2345		ISZ	TTYMSG		/PRINT ERROR MESSAGE
000351  4510		JMS I	QERMSG
000352  5511	FATAL,	JMP I	QNEXT		/FATAL ERROR MESSAGE
000353  1752		TAD I	FATAL
000354  4510		JMS I	QERMSG
000355  5570		JMP I	Q7605		/RETURN TO PS8
000356  5653	DP2C1,	TEXT	'.+2,1'
000357  6254
000360  6100

000361  1365	VERROR,	TAD	(2605		/PRINT VE (VERSION ERROR)
000362  4565		JMS I	QTTYP2C
000363  4566		JMS I	QTTCRLF
000364  5570		JMP I	Q7605
000365  2605
000366  0007
000367  0077
000370  0240
000371  0243
000372  6211
000373  7605
000374  7575
000375  0200
000376  0212
000377  0215
	0400		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 4

		/ OPCODE JUMP TABLE

000400  1025		TAD	TEMP2
000401  7410		SKP			/CODE ALREADY READ
000402  4515	NEXT,	JMS I	QINWORD		/GET NEXT INPUT WORD
000403  1377		TAD	(XPUSH		/INDEX INTO JUMP TABLE
000404  3025		DCA	TEMP2
000405  6211		CDF 10
000406  1425		TAD I	TEMP2
000407  6201		CDF 0
000410  3025		DCA	TEMP2	/GET JUMP ADDRESS
000411  5425		JMP I	TEMP2	/GO THERE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 5

		/OPTIMIZING RELATIONAL CODE FOR OS/8 F4
		/COMPLIMENTS OF R.L.

000412  7126	LE,	STL RTL		/2
000413  1105	LT,	TAD	QM4	/GENERATE -4 FOR LT, -2 FOR LE
000414  5217		JMP	GE+1	/GO TO COMMON RELATIONAL CODE
000415  7126	GT,	STL RTL
000416  7001	GE,	IAC		/GENERATE 1 FOR GE, 3 FOR GT
000417  3171		DCA	RELCD	/ALL THIS FUNNY STUFF IS BECAUSE SOME
000420  4514		JMS I	QCODE	/OF THE RELATIONAL SKELETONS OPTIMIZE BY
000421  6067		LETABL-6;5	/PERFORMING THE RELATIONAL ON THE NEGATIVE
000422  0005
000423  1171		TAD	RELCD	/OF THE FAC - WHEN THIS HAPPENS SPECIAL
000424  7510		SPA		/CODE IN THE SKELETON DOES AN "ISZ RELCD",
000425  7041		CIA		/CHANGING ABS(RELCD) TO ITS OPPOSITE RELATIONAL
000426  5240		JMP	RELGEN	/E.G. GE(1) TO LE(2), LE(-2) TO GE(-1)

000427  7201	EQ,	CLA IAC		/SINCE EQ AND NE ARE SIGN-INDEPENDENT,
000430  3171	NE,	DCA	RELCD	/WE DON'T NEED THAT KLUDGE BUT FOR COMPATIBILITY
000431  4514		JMS I	QCODE	/WITH RTPS THE OS/8 FORTRAN SYSTEM FUNCTION
000432  5757		EQTABL-6;5	/"#CEQ" WORKS THE WRONG WAY - IT PRODUCES
000433  0005
000434  7201		CLA IAC		/A 1.0 IF THE COMPLEX AC WAS (0.,0.)
000435  0171		AND	RELCD	/AND A 0.0 OTHERWISE - SO WE HAVE TO REVERSE
000436  7640		SZA CLA		/THE SENSE OF COMPLEX .EQ. AND .NE. RELATIONS.
000437  1120	RELGM1,	TAD	Q5
000440  3171	RELGEN,	DCA	RELCD	/STORE "FINAL" RELCD
000441  4515		JMS I	QINWORD	/GENTLY PROBE AHEAD IN THE INPUT
000442  3025		DCA	TEMP2
000443  1025		TAD	TEMP2
000444  1376		TAD	(XPUSH-XLOGIF
000445  7650		SNA CLA		/IF THIS WAS THE TOP RELATION OF A LOGICAL IF,
000446  5257		JMP	LIFOPT	/WE'RE IN A POSITION TO OPTIMIZE
000447  1171		TAD	RELCD	/OTHERWISE OUTPUT A CALL TO THE
000450  7104		CLL RAL		/ROUTINE CORRESPONDING TO THE RELATIONAL
000451  1375		TAD	(LTRNE
000452  3255		DCA	.+3
000453  7201		CLA IAC
000454  4774		JMS I	(OJSR	/GENERATE A JSA #XX
000455  0000		0
000456  5512		JMP I	QNEXTM2	/PROCESS THE WHATCHIMACALLIT

000457  1030	LIFOPT,	TAD	TYPE1	/SEE IF WE SHOULD GENERATE A "STARTF" FIRST
000460  0126		AND	Q17	/ONLY WORRY ABOUT D.P.
000461  1105		TAD	QM4	/SINCE THE ROUTINE #CEQ DOES A STARTF
000462  3101		DCA	FMODE	/FMODE=0 ONLY IF ARGS WERE D.P.
000463  4532		JMS I	QGENSF	/GENERATE STARTF IF NECESSARY
000464  5665		JMP I	.+1
000465  2277		LIFBGN+1	/GO TO LOGICAL IF PROCESSOR

000466  4514	EQV,	JMS I	QCODE	/.EQV. LOGICAL OPERATOR
000467  6223		EQVTBL-6;0
000470  0000
000471  5237		JMP	RELGM1

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 6

		/ PASS TWO OUTPUT ROUTINE
000472  0000	OCHAR,	0			/OUTPUT A CHAR TO THE
						/RALF INPUT FILE
000473  0373		AND	(377
000474  3333		DCA	OUTEMP		/SAVE CHAR
000475  2276		ISZ	OUJUMP		/BUMP THREE WAY SWITCH
000476  5276	OUJUMP,	JMP	.
000477  5330		JMP	CHAR1
000500  5325		JMP	CHAR2
000501  1333		TAD	OUTEMP		/HIGH FOUR BITS GO INTO
000502  7106		CLL RTL			/THE HIGH ORDER BITS OF THE
000503  7006		RTL			/FIRST WORD OF THE TWO WORD PAIR
000504  0372		AND	(7400		/SEE NOTE * BELOW
000505  1757		TAD I	OUPOLD		/COMBINE WITH OTHER BITS
000506  3757		DCA I	OUPOLD
000507  1333		TAD	OUTEMP		/THE OTHER FOUR BITS OF THIS CHAR
000510  7112		CLL RTR			/GO INTO THE HIGH ORDER FOUR
000511  7012		RTR			/BITS OF THE SECOND
						/WORD OF THE PAIR
000512  7010		RAR
000513  0372		AND	(7400
000514  1760		TAD I	OUPTR
000515  3760		DCA I	OUPTR
000516  1361		TAD	OUJMP		/RESET 3 WAY BRANCH
000517  3276		DCA	OUJUMP
000520  2360		ISZ	OUPTR		/BUMP BUFFER POINTER
000521  2362		ISZ	OUWDCT		/AND DOUBLE WORD COUNTER
000522  5672		JMP I	OCHAR		/BUFFER NOT FULL
000523  4333		JMS	OUDUMP		/DUMP IT
000524  5672		JMP I	OCHAR
000525  1360	CHAR2,	TAD	OUPTR		/SAVE FIRST WORD POINTER
000526  3357		DCA	OUPOLD
000527  2360		ISZ	OUPTR		/GO TO SECOND WORD
000530  1333	CHAR1,	TAD	OUTEMP		/STORE CHAR 1 OR 2
000531  3760		DCA I	OUPTR
000532  5672		JMP I	OCHAR
		OUTEMP,
000533  0000	OUDUMP,	0			/BUMP THE DUFFER
000534  1363		TAD	OSIZE		/ANY ROOM LEFT ?
000535  7450		SNA
000536  5355		JMP	OUERR
000537  7001		IAC
000540  3363		DCA	OSIZE		/YES, ITS OK
000541  4476		JMS I	DEVH		/WRITE
000542  4200		4200			/CONTROL WORD
000543  4400		OUBUF			/BUFFER POINTER
000544  0000	OBLOCK,	0			/BLOCK NUMBER
000545  5355		JMP	OUERR		/ERROR
000546  2344		ISZ	OBLOCK		/INCREMENT BLOCK NUMBER
000547  2771' 		ISZ	FILSIZ		/AND FILE SIZE
000550  1343		TAD	OBLOCK-1	/SET BUFFER POINTER
000551  3360		DCA	OUPTR
000552  1370		TAD	(-200		/SET DOUBLE WORD COUNT
000553  3362		DCA	OUWDCT
000554  5733		JMP I	OUDUMP

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 6-1

000555  4767	OUERR,	JMS I	(FATAL		/FATAL OUTPUT ERROR
000556  1706		1706
		/ *  THE PONY EXPRESS STARTED IN 1860 AND ONLY RAN
		/	FOR 19 MONTHS WHILE LOSING $200,000.
000557  0000	OUPOLD,	0
000560  4400	OUPTR,	OUBUF
000561  5276	OUJMP,	JMP	OUJUMP
000562  7600	OUWDCT,	-200
000563  0000	OSIZE,	0
000564  6100	DD1,	TEXT	'1'
000567  0352
000570  7600
000571  4302
000572  7400
000573  0377
000574  5266
000575  0753
000576  7730
000577  6540
	0600		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 7

		/ READ FROM FORTRN.TM

000600  0000	INWORD,	0			/READ A WORD FROM INPUT FILE
000601  2225		ISZ	INBCNT		/ANYTHING LEFT IN BUFFER ?
000602  5220		JMP	NOREAD		/YES
000603  2227		ISZ	INRCNT		/ANYTHING LEFT IN FILE?
000604  7410		SKP
000605  5777		JMP I	(END		/NO, END OF PROG
000606  4476		JMS I	DEVH		/READ NEXT BLOCK
000607  0200	X200,	0200
000610  7200		INBUF
000611  0000	INBLOK,	0
000612  5223		JMP	INERR		/INPUT ERROR
000613  2211		ISZ	INBLOK		/BUMP BLOCK NUMBER
000614  1376		TAD	(-400		/RESET COUNTER
000615  3225		DCA	INBCNT
000616  1210		TAD	INBLOK-1	/RESET POINTER
000617  3226		DCA	INBPTR
000620  1626	NOREAD,	TAD I	INBPTR		/GET WORD FROM BUFFER
000621  2226		ISZ	INBPTR		/BUMP BUFFER POINTER
000622  5600		JMP I	INWORD
000623  4775	INERR,	JMS I	(FATAL		/FATAL INPUT ERROR
000624  1105		1105
000625  7777	INBCNT,	-1			/FORCE READ FIRST TIME
000626  0000	INBPTR,	0
000627  0000	INRCNT,	0

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 8

		/ CODE UTILITIES
000630  0000	GETSS,	0			/GET POINTER TO DIM INFO
000631  6211		CDF	10
000632  7001		IAC
000633  3047		DCA	DIMPTR		/ADDR OF TYPE WORD
000634  1447		TAD I	DIMPTR
000635  2047		ISZ	DIMPTR		/MOVE TO DIM/EQUIV POINTER
000636  0207		AND	X200		/EQUIV INFO ?
000637  7650		SNA CLA
000640  5243		JMP	.+3		/NONE
000641  1447		TAD I	DIMPTR		/SKIP EQUIV INFO
000642  3047		DCA	DIMPTR
000643  1447		TAD I	DIMPTR		/ADDRESS OF DIM INFO
000644  5630		JMP I	GETSS
000645  0000	NUMBRO,	0			/OUTPUT 15 BIT OCTAL NUMBER
000646  1040		TAD	AC		/IS HIGH DIGIT 0 ?
000647  7450		SNA
000650  5253		JMP	.+3		/YES, PRINT 4 DIGITS ONLY
000651  1106		TAD	Q260		/MAKE IT ASCII
000652  4562		JMS I	QOCHAR		/PUT IT
000653  1042		TAD	MQ		/NOW LOW FOUR DIGITS
000654  4516		JMS I	QONUMBR
000655  5645		JMP I	NUMBRO
000656  0000	UCODE,	0			/GEN CODE FOR UNARY OPERATORS
000657  4517		JMS I	QSAVEAC		/SAVE AC IF NEEDED
000660  4304		JMS	GARG
000661  5774' 		JMP	OTERR		/OPERATOR/TYPE ERROR
000662  1026		TAD	ARG1		/IS ARG IN AC ?
000663  7650		SNA CLA
000664  1120		TAD	Q5		/YES, USE SECOND HALF OF TABLE
000665  1030		TAD	TYPE1
000666  1656		TAD I	UCODE		/PLUS TABLE ADDRESS
000667  3276		DCA	USKEL
000670  6211		CDF	10
000671  1676		TAD I	USKEL		/ADDR OF SKELETON
000672  7450		SNA
000673  5774' 		JMP	OTERR		/0 MEANS BAD
						/OPERATOR/TYPE COMBO
000674  3276		DCA	USKEL		/SAVE SKELETON ADDR
000675  4521		JMS I	QGENCOD		/GO DO THE CODE
000676  0000	USKEL,	0
000677  3416		DCA I	X16		/RESULT IN AC
000700  2016		ISZ	X16		/BUMP STACK POINTER
000701  2016		ISZ	X16		/TYPE IS ALREADY THERE
000702  2256		ISZ	UCODE		/FIX RET ADDR
000703  5656		JMP I	UCODE
000704  0000	GARG,	0			/GET ONE ARG
000705  7146		CLL CMA RTL		/BACK UP ONE ENTRY
000706  1016		TAD	X16
000707  3016		DCA	X16
000710  1016		TAD	X16		/USABLE POINTER
000711  3015		DCA	X15
000712  1415		TAD I	X15		/GET OPERAND
000713  3026		DCA	ARG1
000714  1415		TAD I	X15

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 8-1

000715  3030		DCA	TYPE1
000716  1415		TAD I	X15
000717  3027		DCA	BASE1
000720  1030		TAD	TYPE1		/CHECK TYPE
000721  1122		TAD	QM6
000722  7700		SMA CLA
000723  5704		JMP I	GARG		/TAKE ERROR EXIT
000724  2031		ISZ	ARG2		/MAKE SURE ARG2 ISN'T ZERO
000725  4773		JMS I	(MPTRA1		/MOVE THE POINTER IF
						/THERE IS ONE
000726  2304		ISZ	GARG
000727  5704		JMP I	GARG

000730  0000	TTYOUT,	0			/OUTPUT TO THE TTY
000731  6046		TLS
000732  6041		TSF
000733  5332		JMP	.-1
000734  7200		CLA
000735  6031		KSF
000736  5730		JMP I	TTYOUT		/NO KEYBOARD FLAG
000737  6036		KRB
000740  0372		AND	(177		/ACCEPT PARITY ASCII
000741  1371		TAD	(-3		/^C ?
000742  7450		SNA
000743  5570		JMP I	Q7605		/YES, BACK TO PS8
000744  1370		TAD	(3-17		/^O ?
000745  7640		SZA CLA
000746  5730		JMP I	TTYOUT		/NO, RETURN
000747  3331		DCA	TTYOUT+1	/KILL OUTPUT STUFF
000750  3332		DCA	TTYOUT+2
000751  3333		DCA	TTYOUT+3
000752  5730		JMP I	TTYOUT		/RETURN

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 9

000753  4316	LTRNE,	TEXT	'#NE'
000754  0500
000755  4307		TEXT	'#GE'
000756  0500
000757  4314		TEXT	'#LE'
000760  0500
000761  4307		TEXT	'#GT'
000762  2400
000763  4314		TEXT	'#LT'
000764  2400
000765  4305		TEXT	'#EQ'
000766  2100
000770  7764
000771  7775
000772  0177
000773  1255
000774  1360
000775  0352
000776  7400
000777  4200
	1000		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 10

		/ SOME TEXT

001000  5362	P2,	TEXT	'+2'
001001  0000
001002  4326	XVAL,	TEXT	'#VAL'
001003  0114
001004  0000
001005  5653	DP4,	TEXT	'.+4'
001006  6400
001007  0601	FADD,	TEXT	'FADD'
001010  0404
001011  0000
001012  0614	FLDA,	TEXT	'FLDA'
001013  0401
001014  0000
001015  0623	FSUB,	TEXT	'FSUB'
001016  2502
001017  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 11

		/ SAVE AC ROUTINES
001020  0000	SAVACT,	0			/SAVE TOP OF STACK IF
						/NECESSARY
001021  1220		TAD	SAVACT		/SAVE RETURN ADDR
001022  3225		DCA	SAVEAC
001023  7144		CLL CMA RAL
001024  5227		JMP	SAVEAC+2	/BACK UP ONLY ONE ENTRY
001025  0000	SAVEAC,	0			/STORE AC IF NEEDED
001026  1377		TAD	(-5		/LOOK AT STACK TWO DOWN
001027  1016		TAD	X16
001030  3262		DCA	SATEMP
001031  1662		TAD I	SATEMP		/IF 0, RESULT WAS LEFT IN AC
001032  7640		SZA CLA
001033  5625		JMP I	SAVEAC		/NO, NO STORE NEEDED
001034  1034		TAD	TMPCNT		/STORE TEMP NUMBER
001035  3662		DCA I	SATEMP
001036  2262		ISZ	SATEMP		/MOVE TO TYPE WORD
001037  1662		TAD I	SATEMP		/GET TYPE
001040  4242		JMS	SAVE		/GO DO ACTUAL STORE
001041  5625		JMP I	SAVEAC
001042  0000	SAVE,	0			/SAVE AC
001043  3262		DCA	ACSTOR		/THIS IS THE TYPE
001044  1262		TAD	ACSTOR		/IS IT COMPLEX OR DOUBLE?
001045  1105		TAD	QM4
001046  7450		SNA
001047  5255		JMP	NOC		/ITS DOUBLE
001050  7001		IAC
001051  7640		SZA CLA
001052  5260		JMP	NOCORD		/NO
001053  4521		JMS I	QGENCOD		/STARTE; FLDA #CAC
001054  5171		SEGCAC-1
001055  4262	NOC,	JMS	ACSTOR		/%FSTA #TMP+XXXX
001056  4271		JMS	TMPBMP		/THIS USE TWO TEMPS
001057  5642		JMP I	SAVE
001060  4262	NOCORD,	JMS	ACSTOR		/%FSTA #TMP+XXXX
001061  5642		JMP I	SAVE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 12

		SATEMP,
001062  0000	ACSTOR,	0			/GENERATES FSTA TEMP+XXXX
001063  4523		JMS I	QOPCOD		/OUTPUT %FSTA %TEMP+XXXX
001064  1567		FSTA
001065  4525		JMS I	QOADDR
001066  0034		TMPCNT			/TMPCNT CONTAINS THE
						/ARG NUMBER
001067  4271		JMS	TMPBMP		/BUMP TEMPORARY NUMBER
001070  5662		JMP I	ACSTOR

001071  0000	TMPBMP,	0		/ROUTINE TO BUMP TEMPORARIES
001072  1034		TAD	TMPCNT		/BIGGER THAN MAX?
001073  7141		CIA CLL
001074  1035		TAD	TMPMAX
001075  7630		SZL CLA
001076  5301		JMP	.+3		/GO BUMP TEMP CNT
001077  1034		TAD	TMPCNT		/NEW TEMP MAX
001100  3035		DCA	TMPMAX
001101  2034		ISZ	TMPCNT		/INCR TEMP COUNT
001102  5671		JMP I	TMPBMP

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 13

		/ PUSH ARG ONTO STACK
001103  4225	PUSH,	JMS	SAVEAC		/GO SAVE AC IF NEEDED
001104  4515		JMS I	QINWORD		/GET ADDR OF NEW VAR
001105  3024		DCA	TEMP		/SAVE IT
001106  1024		TAD	TEMP		/PUSH IT
001107  3416		DCA I	X16
001110  2024		ISZ	TEMP		/GO TO TYPE
001111  6211		CDF	10
001112  1424		TAD I	TEMP		/GET TYPE
001113  6201		CDF
001114  0126		AND	Q17		/PUSH TYPE
001115  3416		DCA I	X16		/ONTO STACK
001116  3416	CKPDL,	DCA I	X16		/ZERO BASE WORD
001117  1016		TAD	X16		/IS STACK FULL ?
001120  7141		CIA CLL
001121  1376		TAD	(STACK+177
001122  7630		SZL CLA
001123  5511		JMP I	QNEXT		/NO, OK
001124  1052		TAD	STKLVL		/RESET STACK LEVEL
001125  3016		DCA	X16
001126  4527		JMS I	QTTYMSG		/PRINT MESSAGE
001127  2004		2004
001130  4515	DPUSH,	JMS I	QINWORD		/GET THE VAR NAME PTR
001131  3416		DCA I	X16		/PUSH IT
001132  4515		JMS I	QINWORD		/NOW GET THE DISPLACEMENT
001133  5315		JMP	CKPDL-1		/GO CHECK FOR OVERFLOW
001134  2324	STARTF,	TEXT	'STARTF'
001135  0122
001136  2406
001137  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 14

		/ ARITHMETIC IF
001140  4513	ARTHIF,	JMS I	QUCODE		/GET ARG INTO AC
001141  6515		AIFTBL-1
001142  4532		JMS I	QGENSF		/DO ALL TRANSFERS IN FMODE
001143  1375		TAD	(JLT		/FIRST OPCODE
001144  3355		DCA	AJUMP
001145  4515	AIFLUP,	JMS I	QINWORD		/GET NEXT INPUT
001146  3025		DCA	TEMP2		/SAVE IT IN CASE ITS NOT LABEL
001147  1025		TAD	TEMP2
001150  7100		CLL
001151  1374		TAD	(XPUSH-XLAST	/IS IT A LABEL ?
001152  7620		SNL CLA
001153  5512		JMP I	QNEXTM2		/NO, PROCEED
001154  4524		JMS I	QOPCDE
001155  0000	AJUMP,	0			/OUTPUT CORRECT JUMP
001156  1025		TAD	TEMP2
001157  6211		CDF	10
001160  4534		JMS I	QOSNUM		/NOW THE LABEL
001161  4535		JMS I	QCRLF
001162  2355		ISZ	AJUMP		/MOVE TO NEXT OPCODE
001163  2355		ISZ	AJUMP
001164  5345		JMP	AIFLUP
001165  5600	DOT,	TEXT	'.'
001166  5653	DP8,	TEXT	'.+10'
001167  6160
001170  0000
001174  7710
001175  3653
001176  7177
001177  7773
	1200		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 15

		/ PICK UP TOP TWO ARGS

001200  0000	GARGS,	0			/GET TOP 2  ARGS FROM STACK
001201  1016		TAD	X16
001202  1122		TAD	QM6		/BACK TWO OPERANDS
001203  3015		DCA	X15
001204  1015		TAD	X15
001205  3016		DCA	X16		/AND OFFICIALLY POP THE STACK
001206  1415		TAD I	X15		/GET FIRST ARG
001207  3026		DCA	ARG1
001210  1415		TAD I	X15		/AND TYPE
001211  3030		DCA	TYPE1
001212  1415		TAD I	X15
001213  3027		DCA	BASE1		/AND FIRST BASE (IN
						/CASE OF SS)
001214  1415		TAD I	X15		/NOW SECOND ARG
001215  3031		DCA	ARG2
001216  1415		TAD I	X15
001217  3033		DCA	TYPE2
001220  1415		TAD I	X15
001221  3032		DCA	BASE2
001222  1030		TAD	TYPE1		/TYPES MUST BE LT 6
001223  1122		TAD	QM6
001224  7700		SMA CLA
001225  5600		JMP I	GARGS		/RETURN BAD
001226  1033		TAD	TYPE2
001227  1122		TAD	QM6
001230  7710		SPA CLA
001231  2200		ISZ	GARGS		/FIX RETURN
001232  4255		JMS	MPTRA1		/GET ARG1 POINTER IF NEEDED
001233  1031		TAD	ARG2		/IS ARG2 A POINTER
001234  1377		TAD	(-61
001235  7640		SZA CLA
001236  5600		JMP I	GARGS		/NO, RETURN
001237  1026		TAD	ARG1		/IS ARG1 IN THE AC ?
001240  7640		SZA CLA
001241  5246		JMP	.+5		/NO
001242  1034		TAD	TMPCNT		/YES, STORE THE AC
001243  3026		DCA	ARG1
001244  1030		TAD	TYPE1		/GET TYPE
001245  4776		JMS I	(SAVE
001246  1032		TAD	BASE2		/MOVE POINTER FROM TEMP
						/TO BASE+3
001247  3031		DCA	ARG2
001250  4521		JMS I	QGENCOD
001251  5053		MPTR3-1
001252  1375		TAD	(62		/ARG IS NOW POINTED TO
						/BY BASE+3
001253  3031		DCA	ARG2
001254  5600		JMP I	GARGS
001255  0000	MPTRA1,	0			/MOVE ARG1 POINTER TO BASE
001256  1026		TAD	ARG1
001257  1377		TAD	(-61
001260  7640		SZA CLA
001261  5655		JMP I	MPTRA1

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 15-1

001262  1031		TAD	ARG2
001263  7640		SZA CLA
001264  5271		JMP	.+5
001265  1034		TAD	TMPCNT
001266  3031		DCA	ARG2
001267  1033		TAD	TYPE2		/GET THE TYPE
001270  4776		JMS I	(SAVE
001271  1027		TAD	BASE1
001272  3026		DCA	ARG1
001273  4521		JMS I	QGENCOD
001274  5046		MPTR0-1
001275  1374		TAD	(61
001276  3026		DCA	ARG1		/SET ARG1 TO IND0
001277  5655		JMP I	MPTRA1

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 16

		/ BINARY OPERATORS
001300  0000	CODE,	0			/GENERATE CODE FOR
						/BINARY OPERATORS
001301  4200		JMS	GARGS		/GET OPERANDS
001302  5360		JMP	OTERR		/BAD TYPE OPERATOR COMBO
001303  1030		TAD	TYPE1		/INDEX INTO TYPE CHECK TABLE
001304  7106		CLL RTL
001305  1030		TAD	TYPE1
001306  1033		TAD	TYPE2
001307  7104		CLL RAL
001310  1373		TAD	(TYPMIX-14	/POINTER TO CORRECT ENTRY
001311  3342		DCA	SKEL
001312  6211		CDF	10
001313  1742		TAD I	SKEL		/RESULTING TYPE
001314  7450		SNA
001315  5355		JMP	TYPERR		/THIS MIX IS ILLEGAL
001316  3030		DCA	TYPE1		/SAVE RESULT TYPE
001317  2342		ISZ	SKEL		/GET INDEX INTO
						/SKELETON TABLE
001320  1742		TAD I	SKEL
001321  6201		CDF
001322  1700		TAD I	CODE		/PLUS BASE GIVES ADDR
						/OF M,AC CASE
001323  3342		DCA	SKEL
001324  6211		CDF	10
001325  1742		TAD I	SKEL		/IS THIS TYPE OPER
						/COMBO LEGAL ?
001326  7650		SNA CLA
001327  5360		JMP	OTERR		/NO
001330  2300		ISZ	CODE		/POINTS TO RESULTING TYPE
001331  1031		TAD	ARG2
001332  7640		SZA CLA
001333  2342		ISZ	SKEL		/SECOND ARG IS IN MEMORY
001334  1026		TAD	ARG1
001335  7650		SNA CLA			/SKIP ON M,M CASE
001336  2342		ISZ	SKEL		/MOVE TO AC,M CASE
001337  1742		TAD I	SKEL		/PICK UP POINTER TO SKELETON
001340  3342		DCA	SKEL
001341  4521		JMS I	QGENCOD		/GO DO THE CODE
001342  0000	SKEL,	0
001343  3416		DCA I	X16		/RESULT IS IN THE AC
001344  1700		TAD I	CODE
001345  7450		SNA			/IS TYPE SAME AS ARGS ?
001346  1030		TAD	TYPE1		/YES
001347  3416		DCA I	X16		/STORE IT
001350  3416		DCA I	X16		/ZERO BASE WORD
001351  1700		TAD I	CODE		/IS TYPE SAME AS ARGS ?
001352  7440		SZA
001353  3101		DCA	FMODE		/NO, WE'RE NOW IN FMODE
001354  5700		JMP I	CODE
001355  4772' 	TYPERR,	JMS	BUMP		/PUT FALSE VALUE ONTO STACK
001356  4527		JMS I	QTTYMSG		/OUTPUT ERROR
001357  1524		1524
001360  4772' 	OTERR,	JMS	BUMP		/PUT FALSE VALUE ONTO STACK
001361  4527		JMS I	QTTYMSG

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 16-1

001362  1724		1724
001363  4304	XDPP6,	TEXT	'#DPT+6'
001364  2024
001365  5366
001366  0000
001367  4306	XFIX,	TEXT	'#FIX'
001370  1130
001371  0000
001372  2134
001373  6676
001374  0061
001375  0062
001376  1042
001377  7717
	1400		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 17

		/ CODE GENERATOR (FROM SKELETONS)

001400  0000	GENCOD,	0			/CODE GENERATOR ROUTINE
001401  6201		CDF
001402  1014		TAD	X14
001403  3305		DCA	TEMP14		/FIX COMPLEX FUNCTION BUG
001404  1600		TAD I	GENCOD		/GET SKELETON ADDRESS
001405  2200		ISZ	GENCOD
001406  3014	MPOPUP,	DCA	X14		/HERE ON MACRO END
001407  3304		DCA	MRETN
001410  6211	CODLUP,	CDF	10		/STUFF IS IN FIELD 1
001411  1414		TAD I	X14		/GET OPCODE
001412  6201		CDF
001413  7450		SNA
001414  5264		JMP	ENDM		/IS IT END OF A MACRO ?
001415  7510		SPA
001416  5250		JMP	MACRO		/ITS A MACRO REFERENCE
001417  3221		DCA	.+2		/SAVE OPCODE
001420  4523		JMS I	QOPCOD		/OUTPUT IT
001421  0000		0
001422  6211		CDF	10
001423  1414		TAD I	X14		/ADDRESS ?
001424  6201		CDF
001425  7450		SNA
001426  5235		JMP	NOADDR		/NO OPERAND FOR THIS INSTR
001427  7510		SPA
001430  5237		JMP	DOADDR		/ADDRESS IS AN OPERAND
001431  3024		DCA	TEMP
001432  4536		JMS I	QOTAB		/ADDRESS IS A SPECIFIC
001433  1024		TAD	TEMP
001434  4537		JMS I	QOUTSYM
001435  4535	NOADDR,	JMS I	QCRLF
001436  5210		JMP	CODLUP		/DO NEXT LINE
001437  7001	DOADDR,	IAC			/IS IT ARG1 ?
001440  7640		SZA CLA
001441  5245		JMP	ITSA2		/NO, ITS ARG2
001442  4525		JMS I	QOADDR		/OUTPUT ARG1 ADDRESS FIELD
001443  0026		ARG1
001444  5210		JMP	CODLUP
001445  4525	ITSA2,	JMS I	QOADDR		/OUTPUT ARG2 ADDRESS
001446  0031		ARG2			/FIELD
001447  5210		JMP	CODLUP
001450  1120	MACRO,	TAD	Q5	/CODES BETWEEN -1 AND -5 ARE SPECIAL
001451  7510		SPA
001452  5256		JMP	.+4	/NOT ONE OF THEM
001453  1377		TAD	(JMP MJTBL
001454  3255		DCA	.+1
001455  7402		HLT		/GO TO PROPER ROUTINE
001456  3024		DCA	MSTART		/SAVE START OF MACRO
001457  1014		TAD	X14		/SAVE RETURN ADDRESS
001460  3304		DCA	MRETN
001461  1024		TAD	MSTART		/GO DO MACRO
001462  3014		DCA	X14
001463  5210		JMP	CODLUP

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 18

001464  1304	ENDM,	TAD	MRETN		/WAS THIS A MACRO ?
001465  7440		SZA
001466  5206		JMP	MPOPUP		/YES - GET OUT OF IT
001467  1305		TAD	TEMP14
001470  3014		DCA	X14		/RESTORE X14 FOR FUNCAL
001471  5600		JMP I	GENCOD	/AND EXIT

001472  4776	LOADA1,	JMS I	(LOADA		/GENERATE LOAD
001473  0026		ARG1			/IF NECESSARY
001474  5210		JMP	CODLUP
001475  4776	LOADA2,	JMS I	(LOADA		/GENERATE LOAD
001476  0031		ARG2			/IF NECESSARY
001477  5210		JMP	CODLUP
001500  4533	DOSTE,	JMS I	QGENSE		/STARTE IF IN F MODE
001501  5210		JMP	CODLUP
001502  2171	SGNNEG,	ISZ	RELCD	/CHANGE SIGN OF RELATIONAL OPERATOR
001503  5210		JMP	CODLUP
	0024		MSTART=TEMP
001504  0000	MRETN,	0			/MACRO RETURN ADDRESS
001505  0000	TEMP14,	0

001506  5302	MJTBL,	JMP	SGNNEG	/-5 - NEGATE RELATIONAL SIGN
001507  5275		JMP	LOADA2	/-4 - LOAD ARG 2
001510  5272		JMP	LOADA1	/-3 - LOAD ARG 1
001511  5300		JMP	DOSTE	/-2 - START E MODE
001512  4532		JMS I	QGENSF	/-1 - START F MODE
001513  5210		JMP	CODLUP

001514  2305	XSET,	TEXT	'SETX'
001515  2430
001516  0000
001517  6054	ZEROC1,	TEXT	'0,1'
001520  6100

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 19

		/ GOTO'S AND ASSIGN
001521  4346	CGOTO,	JMS	GTSTUF		/LOOK AT INDEX
001522  4521		JMS I	QGENCOD		/OUTPUT COMPUTED GOTO CODE
001523  5000		CGTCOD-1
001524  4515		JMS I	QINWORD		/GET COUNT
001525  7041		CIA
001526  3025		DCA	TEMP2
001527  4336	CGTLUP,	JMS	JAGEN
001530  2025		ISZ	TEMP2
001531  5327		JMP	CGTLUP
001532  5511		JMP I	QNEXT
001533  4532	GOTO,	JMS I	QGENSF		/ALL TRANSFERS IN F MODE
001534  4336		JMS	JAGEN
001535  5511		JMP I	QNEXT

001536  0000	JAGEN,	0
001537  4524		JMS I	QOPCDE		/OUTPUT JA'S
001540  3657		JA
001541  4515		JMS I	QINWORD		/GET THE LABEL
001542  6211		CDF	10
001543  4534		JMS I	QOSNUM		/OUTPUT IT AS THE ADDRESS
001544  4535		JMS I	QCRLF
001545  5736		JMP I	JAGEN

001546  0000	GTSTUF,	0
001547  4540		JMS I	QGARG		/GET THE ARG
001550  5363		JMP	GTTYPE
001551  7146		CLL CMA RTL		/CHECK THE TYPE
001552  1030		TAD	TYPE1
001553  7700		SMA CLA
001554  5363		JMP	GTTYPE		/NOT INTEGER OR REAL
001555  1026		TAD	ARG1		/IS IT IN THE AC ?
001556  7650		SNA CLA
001557  5746		JMP I	GTSTUF		/YES ALREADY
001560  4521		JMS I	QGENCOD
001561  6527		GI-1			/LOAD THE INDEX
001562  5746		JMP I	GTSTUF
001563  4527	GTTYPE,	JMS I	QTTYMSG		/GOTO TYPE ERROR
001564  0726		0726
001565  1201	JAC,	TEXT	'JAC'
001566  0300
001567  0623	FSTA,	TEXT	'FSTA'
001570  2401
001571  0000
001572  0616	FNEG,	TEXT	'FNEG'
001573  0507
001574  0000
001576  6502
001577  5306
	1600		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 20

		/ ADDRESS FIELD OUTPUT
001600  0000	OADDR,	0			/OUTPUT ADDRESS FIELD
001601  1600		TAD I	OADDR		/GET ADDRESS OF PARAMETERS
001602  3037		DCA	ARG
001603  2200		ISZ	OADDR
001604  1437		TAD I	ARG		/GET VALUE OF ARG
001605  7100		CLL
001606  1377		TAD	(-52		/IS IT A TEMP REFNCE
001607  7420		SNL
001610  5776' 		JMP	TMPREF		/YES, 1-51
001611  1375		TAD	(52-61		/IS IT AN ARRAY REFERENCE ?
001612  7430		SZL
001613  5274		JMP	SSREF		/YES, 52-60 IS XR1-XR7
001614  7450		SNA
001615  5325		JMP	IND0		/INDIRECT THROUGH 0
001616  1374		TAD	(61-7000	/CHECK FOR DO TEMP
001617  7430		SZL
001620  5773' 		JMP	DOTMP
001621  1372		TAD	(7000-62
001622  7450		SNA
001623  5324		JMP	IND3		/INDIRECT THROUGH 3
001624  1371		TAD	(63
001625  3024		DCA	TEMP
001626  6211		CDF	10
001627  1424		TAD I	TEMP		/IS THIS AN ARG ?
001630  0141		AND	Q20
001631  6201		CDF
001632  7640		SZA CLA
001633  5337		JMP	INDARG		/YES, REF IT INDIRECTLY
001634  4536		JMS I	QOTAB
001635  6211		CDF	10
001636  1424		TAD I	TEMP		/LOOK AT TYPE WORD
001637  0370		AND	(50		/IS IT LIT OR STMT NO.?
001640  7450		SNA
001641  5246		JMP	OUTA		/NO, JUST OUTPUT ADDRESS
001642  0142		AND	Q40
001643  7650		SNA CLA
001644  5332		JMP	OUTSN		/OUTPUT STMT NUMBER
001645  5260		JMP	OUTLIT		/OUTPUT LITERAL
001646  1061	OUTA,	TAD	PROGNM		/IS THIS THE FUNCTION NAME ?
001647  7041		CIA
001650  1024		TAD	TEMP
001651  7650		SNA CLA
001652  5271		JMP	FUNNAM		/YES, REFERENCE #VAL INSTEAD
001653  7240	OUTA2,	CLA CMA			/SIMPLE LOCAL VARIABLE REFNCE
001654  1024		TAD	TEMP		/ADDRESS OF VAR
001655  4543		JMS I	QOUTNAM		/INTO ADDR FIELD
001656  4535		JMS I	QCRLF
001657  5600		JMP I	OADDR		/END OF ADDRESS
001660  2024	OUTLIT,	ISZ	TEMP		/MOVE TO LITERAL NUMBER
001661  1424		TAD I	TEMP
001662  3024		DCA	TEMP		/DISPLACEMENT FROM %LITRL
001663  6201		CDF
001664  1144		TAD	QLITRL		/OUTPUT #LIT+
001665  4537		JMS I	QOUTSYM

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 20-1

001666  1024		TAD	TEMP		/DISPLACEMENT
001667  4516		JMS I	QONUMBR
001670  5322		JMP	OADRET-1
001671  1367	FUNNAM,	TAD	(XVAL		/#VAL
001672  4537		JMS I	QOUTSYM
001673  5322		JMP	OADRET-1
001674  1366	SSREF,	TAD	(270		/MAKE IT AN ASCII DIGIT
001675  3041		DCA	XR
001676  2037		ISZ	ARG		/POINT TO THE BASE WORD
001677  1437		TAD I	ARG		/GET THE ADDR OF THE BASE
001700  3037		DCA	ARG
001701  6211		CDF	10
001702  1037		TAD	ARG
001703  7001		IAC			/GO TO TYPE OF BASE VAR
001704  3025		DCA	TEMP2
001705  1425		TAD I	TEMP2		/IS IT AN ARG TO THE SUBR ?
001706  0141		AND	Q20
001707  7650		SNA CLA
001710  5765' 		JMP	NOTARG		/NO, NO INDIRECT STUFF
001711  6201		CDF
001712  4342		JMS	SIT
001713  1037		TAD	ARG		/VAR NAME
001714  6211		CDF	10
001715  4543		JMS I	QOUTNAM
001716  1053		TAD	COMMA
001717  4562		JMS I	QOCHAR
001720  1041		TAD	XR		/XR NUMBER
001721  4562		JMS I	QOCHAR
001722  4535		JMS I	QCRLF
001723  5600	OADRET,	JMP I	OADDR
001724  1364	IND3,	TAD	(XBASP3-XBASE	/INDIRECT THRU #BASE+3
001725  1363	IND0,	TAD	(XBASE		/INDIRECT THRU #BASE
001726  3024		DCA	TEMP
001727  4342		JMS	SIT
001730  1024		TAD	TEMP
001731  5272		JMP	FUNNAM+1
001732  7240	OUTSN,	CLA CMA			/OUTPUT STMT NUMBER
001733  1024		TAD	TEMP
001734  4534		JMS I	QOSNUM		/OUTPUT THE NUMBER
001735  1362		TAD	(P2		/+2 (HACK FOR FORMAT)
001736  5272		JMP	FUNNAM+1
001737  4342	INDARG,	JMS	SIT		/INDIRECT INDICATOR
001740  6211		CDF	10
001741  5253		JMP	OUTA2		/OUTPUT ARG NAME
001742  0000	SIT,	0
001743  1361		TAD	(245		/% (INDIRECT)
001744  4562		JMS I	QOCHAR
001745  4536		JMS I	QOTAB
001746  5742		JMP I	SIT
001747  4303	CEQ,	TEXT	'#CEQ'
001750  0521
001751  0000
001752  4302	XBAC1P,	TEXT	'#BASE,1+'
001753  0123
001754  0554

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 20-2

001755  6153
001756  0000
001757  4325	XUE,	TEXT	'#UE'
001760  0500
001761  0245
001762  1000
001763  3600
001764  0003
001765  2000
001766  0270
001767  1002
001770  0050
001771  0063
001772  6716
001773  2030
001774  1061
001775  7771
001776  2035
001777  7726
	2000		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 21

		/ ADDRESS FIELD OUTPUT

002000  1425	NOTARG,	TAD I	TEMP2		/GET TYPE WORD
002001  3024		DCA	TEMP		/SAVE IT
002002  1024		TAD	TEMP
002003  2025		ISZ	TEMP2
002004  0145		AND	Q200		/EQUIVALENCED ?
002005  7650		SNA CLA
002006  5211		JMP	.+3
002007  1425		TAD I	TEMP2		/SKIP EQUIV INFO BLOCK
002010  3025		DCA	TEMP2
002011  7126		CLL CML RTL
002012  1425		TAD I	TEMP2		/ADDRESS OF MAGIC NUMBER
002013  3025		DCA	TEMP2
002014  1425		TAD I	TEMP2		/MAGIC NUMBER ITSELF
002015  3025		DCA	TEMP2
002016  6201		CDF
002017  4536		JMS I	QOTAB		/TAB
002020  1037		TAD	ARG		/OUTPUT VARIABLE MINUS CONST
002021  4264		JMS	VMC
002022  1053		TAD	COMMA
002023  4562		JMS I	QOCHAR
002024  1041		TAD	XR		/N
002025  4562		JMS I	QOCHAR
002026  4535		JMS I	QCRLF		/END OF LINE
002027  5777' 		JMP	OADRET
002030  3024	DOTMP,	DCA	TEMP		/ADDRESS RELATIVE TO %DOTMP
002031  4536		JMS I	QOTAB
002032  1376		TAD	(DOTMPN		/OUTPUT #DOTMP
002033  4537		JMS I	QOUTSYM
002034  5254		JMP	PLUSN		/GO OUTPUT +XXXX
002035  7200	TMPREF,	CLA
002036  1437		TAD I	ARG	/BUMP TEMPS BACK CORRECTLY (?)
002037  3034		DCA	TMPCNT
002040  4536		JMS I	QOTAB		/TAB
002041  7240		CLA CMA
002042  1437		TAD I	ARG		/GET NUMBER
002043  3024		DCA	TEMP		/INTO TEMP
			IFNZRO TMPBLK-2 <XXXXXX>
002044  7344		CLL STA RAL		/V3C -2 (-TMPBLK)
						/V3C LINK SET
002045  1024		TAD	TEMP		/V3C (SAVES A LITERAL)
002046  7420		SNL			/V3C
002047  3024		DCA	TEMP		/YES, SAVE ALTERED DISPLACEMENT
002050  7620		SNL CLA			/V3C
002051  1375		TAD	(TEMPN2-TEMPN	/USE %TEMPX
002052  1374		TAD	(TEMPN		/USE %TEMP
002053  4537		JMS I	QOUTSYM
002054  1054	PLUSN,	TAD	PLUS		/PLUS CONSTANT
002055  4562		JMS I	QOCHAR
002056  1024		TAD	TEMP		/DISPLACEMENT TIMES THREE
002057  7104		CLL RAL
002060  1024		TAD	TEMP
002061  4516		JMS I	QONUMBR		/OUT IT
002062  4535		JMS I	QCRLF

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 21-1

002063  5777' 		JMP	OADRET

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 22

		/ UTILITIES
002064  0000	VMC,	0			/OUTPUT VARIABLE MINUS CONST
002065  6211		CDF	10
002066  4543		JMS I	QOUTNAM		/PUT VAR NAME
002067  1146		TAD	Q255		/-
002070  4562		JMS I	QOCHAR
002071  1024		TAD	TEMP		/THIS CONTAINS THE TYPE
002072  4302		JMS	SKPIRL		/SKIP ON I,R OR L
002073  1147		TAD	Q3		/USE SIX WORDS PER ENTRY
002074  1147		TAD	Q3		/REAL, INTEGER, OR
						/LOGICAL 3 WORDS
002075  3042		DCA	MQ
002076  1025		TAD	TEMP2
002077  4312		JMS	MUL12		/DO MULTIPLY
002100  4563		JMS I	QNUMBRO		/OUTPUT 15 BIT NUMBER
002101  5664		JMP I	VMC
		SC,
002102  0000	SKPIRL,	0			/SKIP ON TYPE I R OR L
002103  0126		AND	Q17		/ISOLATE TYPE CODE
002104  1105		TAD	QM4		/IS IT DOUBLE ?
002105  7440		SZA
002106  7001		IAC			/NO, IS IT COMPLEX ?
002107  7640		SZA CLA
002110  2302		ISZ	SKPIRL		/NEITHER, SKIP
002111  5702		JMP I	SKPIRL		/RETURN
002112  0000	MUL12,	0			/12 BIT MULTIPLY
002113  3334		DCA	OPRND
002114  1373		TAD	(-15
002115  3302		DCA	SC
002116  5325		JMP	STMUL
002117  1040	M12LUP,	TAD	AC
002120  7420		SNL
002121  5324		JMP	.+3
002122  7100		CLL
002123  1334		TAD	OPRND
002124  7010		RAR
002125  3040	STMUL,	DCA	AC
002126  1042		TAD	MQ
002127  7010		RAR
002130  3042		DCA	MQ
002131  2302		ISZ	SC
002132  5317		JMP	M12LUP
002133  5712		JMP I	MUL12
		OPRND,
002134  0000	BUMP,	0			/PUT FALSE ENTRY ONTO STACK
002135  6201		CDF 0			/V3C IMPORTANT PROTECTION
002136  3416		DCA I	X16
002137  2016		ISZ	X16
002140  2016		ISZ	X16		/THIS PREVENTS UNDER
						/FLOWING THE STACK
002141  5734		JMP I	BUMP		/AFTER SOME ERRORS
002142  0530	EXTERN,	TEXT	'EXTERN'
002143  2405
002144  2216
002145  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 22-1

002146  4303	CADD,	TEXT	'#CAD'
002147  0104
002150  0000
002151  4303	CNEG,	TEXT	'#CNG'
002152  1607
002153  0000
002154  4303	CMUL,	TEXT	'#CML'
002155  1514
002156  0000
002157  1214	JLE,	TEXT	'JLE'
002160  0500
002161  1722	ORG,	TEXT	'ORG'
002162  0700
002163  2324	STARTE,	TEXT	'STARTE'
002164  0122
002165  2405
002166  0000
002167  4304	XDPTMP,	TEXT	'#DPT'
002170  2024
002171  0000
002173  7763
002174  2367
002175  0564
002176  3565
002177  1723
	2200		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 23

		/ RANDOM CODE GENERATORS

002200  4515	ERROR,	JMS I	QINWORD		/GET ERROR CODE
002201  4510		JMS I	QERMSG		/PRINT IT
002202  5511		JMP I	QNEXT
002203  1064	EOSTMT,	TAD	DATASW		/WAS THIS A DATA STMT ?
002204  7650		SNA CLA
002205  5215		JMP	OPTMYZ		/NO
002206  3064		DCA	DATASW		/KILL SWITCH
002207  4524		JMS I	QOPCDE
002210  2161		ORG			/ORIGIN BACK TO THE PROGRAM
002211  1051		TAD	GLABEL
002212  4550		JMS I	QOLABEL
002213  4535		JMS I	QCRLF
002214  2051		ISZ	GLABEL		/BUMP LABEL GENERATOR
002215  7200	OPTMYZ,	CLA			/CHANGED TO CLA IAC IF /O
002216  4530		JMS I	QXRTBL		/CLEAR TABLE OR RESET FLAGS
002217  2003		ISZ	LINENO		/BUMP LINE NUM
002220  1003		TAD	LINENO		/DISPLAY IN MQ
002221  7421		7421			/FOR COOLNESS
002222  7200		CLA			/FOR NON-EAE FOLKS
002223  1052		TAD	STKLVL		/RESET STACK LEVEL
002224  3016		DCA	X16
002225  4242		JMS	IFEND		/LOOK FOR END OF LOGICAL IF
002226  4777		JMS I	(ASFEND		/END OF A.S.F. DEFINITION ?
002227  5511	DEBUG,	JMP I	QNEXT		/OVERLAYED IF NO /N SWITCH
002230  4524		JMS I	QOPCDE		/OUTPUT  LDX NNNN,0
002231  3622		LDX
002232  1003		TAD	LINENO		/THIS IS THE CURRENT ISN
002233  4516		JMS I	QONUMBR
002234  1053		TAD	COMMA
002235  4562		JMS I	QOCHAR
002236  1106		TAD	Q260
002237  4562		JMS I	QOCHAR
002240  4535		JMS I	QCRLF
002241  5511		JMP I	QNEXT
002242  0000	IFEND,	0			/OUTPUT IF END LABEL IF
002243  1055		TAD	IFLABL		/WAS THIS END OF LOG IF
002244  7450		SNA
002245  5642		JMP I	IFEND		/OUTPUT DEBUG STUFF
002246  4572		JMS I	QLABEL		/OUPTUT THE LABEL
002247  4532		JMS I	QGENSF		/ALL LOGICAL IFS MUST
						/END IN FMODE
002250  3044		DCA	WHATAC		/CAN'T DEPEND ON
						/AC HERE
002251  4530		JMS I	QXRTBL		/OR XR'S EITHER
002252  3055		DCA	IFLABL		/KILL THE SWITCH
002253  5642		JMP I	IFEND
002254  0000	OPCOD,	0			/TAB OPCODE
002255  3044		DCA	WHATAC		/AC HAS JUST BEEN
						/MODIFIED
002256  4536		JMS I	QOTAB
002257  1654		TAD I	OPCOD
002260  2254		ISZ	OPCOD
002261  4537		JMS I	QOUTSYM

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 23-1

002262  5654		JMP I	OPCOD
002263  4553	DIV,	JMS I	QSAVACT		/IF SECOND OPERAND IN AC, SAVE IT
002264  4514		JMS I	QCODE		/DIVIDE
002265  5650		DIVTBL-6;0
002266  0000
002267  7240		CLA CMA			/WERE BOTH VARS INTEGER?
002270  1030		TAD	TYPE1
002271  7640		SZA CLA
002272  5511		JMP I	QNEXT		/NO
002273  4521		JMS I	QGENCOD
002274  5026		A0FN-1			/ALN 0;FNORM
002275  5511		JMP I	QNEXT
002276  3171	LIFBGN,	DCA	RELCD	/ENTER HERE IF LAST OPCODE NOT A RELATIONAL
002277  4540		JMS I	QGARG	/ENTER HERE FROM RELATIONAL OPTIMIZER
002300  5342		JMP	NOTLOG
002301  1030		TAD	TYPE1		/MUST BE LOGICAL
002302  1376		TAD	(-5
002303  7640		SZA CLA
002304  5342		JMP	NOTLOG
002305  1026		TAD	ARG1		/IS IT IN AC ?
002306  7650		SNA CLA
002307  5312		JMP	.+3
002310  4521		JMS I	QGENCOD
002311  6527		GI-1
002312  4515		JMS I	QINWORD		/IS IT IF(...)GOTO XX ?
002313  3025		DCA	TEMP2
002314  1025		TAD	TEMP2
002315  1375		TAD	(XPUSH-XGOTO
002316  7650		SNA CLA
002317  5333		JMP	IFGOTO		/YES, TREAT AS SPECIAL CASE
002320  1051		TAD	GLABEL		/SET IF LABEL
002321  3055		DCA	IFLABL
002322  1171		TAD	RELCD
002323  7041		CIA
002324  1120		TAD	Q5	/GENERATE THE OPPOSITE JUMP
002325  4344		JMS	RELJMP	/AROUND THE TARGET OF THE IF
002326  1051		TAD	GLABEL
002327  4550		JMS I	QOLABEL
002330  2051		ISZ	GLABEL		/INCREMENT LABEL GENERATOR
002331  4535		JMS I	QCRLF
002332  5512		JMP I	QNEXTM2
002333  1171	IFGOTO,	TAD	RELCD
002334  4344		JMS	RELJMP	/GENERATE TRUE RELATIONAL JUMP IF "IF()GOTO"
002335  4515		JMS I	QINWORD		/GET THE LABEL
002336  6211		CDF	10
002337  4534		JMS I	QOSNUM
002340  4535		JMS I	QCRLF
002341  5511		JMP I	QNEXT
002342  4527	NOTLOG,	JMS I	QTTYMSG
002343  1411		1411

002344  0000	RELJMP,	0
002345  7104		CLL RAL
002346  1374		TAD	(JNE
002347  3351		DCA	.+2

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 23-2

002350  4524		JMS I	QOPCDE
002351  0000		0
002352  5744		JMP I	RELJMP

002353  0615	FMUL,	TEXT	'FMUL'
002354  2514
002355  0000
002356  0604	FDIV,	TEXT	'FDIV'
002357  1126
002360  0000
002361  4303	CAC,	TEXT	'#CAC'
002362  0103
002363  0000
002364  4314	LITRL,	TEXT	'#LIT+'
002365  1124
002366  5300
002367  4324	TEMPN,	TEXT	'#TMP'
002370  1520
002371  0000
002374  3643
002375  7721
002376  7773
002377  5723
	2400		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 24

		/ DO LOOP COMPILER

002400  4553	DOBEGN,	JMS I	QSAVACT		/FOR EXPR IN LOOP PARAMS
002401  1016		TAD	X16		/SET NEW STACK LEVEL
002402  3052		DCA	STKLVL
002403  4560		JMS I	QGARGS		/GET LIMIT AND STEP
002404  5242		JMP	DPERR		/ERROR IN DO PARMS
002405  4324		JMS	DOPARM		/DO PARAMETER STUF FOR LIMIT
002406  0026		ARG1
002407  4324		JMS	DOPARM
002410  0031		ARG2			/AND THEN FOR STEP
002411  1026		TAD	ARG1		/REPLACE ALTERRED STACK
						/ENTRIES
002412  3416		DCA I	X16
002413  2016		ISZ	X16		/REST OF ARG1 OK
002414  1051		TAD	GLABEL		/SAVE LOOP LABEL
002415  3416		DCA I	X16
002416  1031		TAD	ARG2
002417  3416		DCA I	X16
002420  2016		ISZ	X16
002421  2016		ISZ	X16
002422  4535		JMS I	QCRLF		/CRLF BEFORE LABL
002423  1051		TAD	GLABEL
002424  4572		JMS I	QLABEL		/OUPTUT LOOP LABEL
002425  2051		ISZ	GLABEL		/INCR LABEL GENERATOR
002426  3044		DCA	WHATAC		/FORGET AC AND
002427  4530		JMS I	QXRTBL		/XR'S AT DO BEGIN
002430  5511		JMP I	QNEXT
002431  4560	DOSTOR,	JMS I	QGARGS		/LOOK AT INDEX AND
002432  5242		JMP	DPERR		/INITIAL VALUE
002433  7146		CLL CMA RTL		/MUST BE INTEGER OR
002434  1030		TAD	TYPE1		/REAL (L=1  AC=-3)
002435  7630		SZL CLA			/SKIP IF >2
002436  7146		CLL CMA RTL		/L=1 AC=-3
002437  1033		TAD	TYPE2
002440  7630		SZL CLA			/L=0 IS BAD
002441  5777		JMP I	(STORE+2	/DO STORE IF OK
002442  4527	DPERR,	JMS I	QTTYMSG		/ERROR IN LIMITS
002443  0420		0420			/DP
002444  4530	DOFINI,	JMS I	QXRTBL		/DON'T OPTIMIZE XR USAGE
						/IN SUCCESSIVE IMPLIED DO LOOPS
002445  1100		TAD	IOSTMT		/INSIDE IO STMT ?
002446  7650		SNA CLA
002447  4776' 		JMS	IFEND		/IF NOT, END IF FIRST
002450  4515		JMS I	QINWORD		/GET THE INDEX
002451  3026		DCA	ARG1
002452  1026		TAD	ARG1		/GET THE TYPE WORD ADR
002453  7001		IAC
002454  3030		DCA	TYPE1
002455  6211		CDF	10
002456  1430		TAD I	TYPE1
002457  6201		CDF
002460  0126		AND	Q17
002461  3030		DCA	TYPE1		/TYPE OF INDEX VAR
002462  1122		TAD	QM6

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 24-1

002463  1052		TAD	STKLVL		/BACK UP THE STACK
002464  3016		DCA	X16
002465  1016		TAD	X16		/RESET THE STACK LEVEL
002466  3052		DCA	STKLVL
002467  1416		TAD I	X16		/GET THE FINAL VALUE
002470  3324		DCA	DOARG
002471  2016		ISZ	X16
002472  1416		TAD I	X16		/GET THE LOOP LABEL
002473  3360		DCA	DARG
002474  1416		TAD I	X16		/GET THE STEP
002475  3031		DCA	ARG2
002476  1416		TAD I	X16		/WHICH DO FIN CODE ?
002477  7124		CLL CML RAL
002500  1030		TAD	TYPE1
002501  1122		TAD	QM6
002502  7650		SNA CLA
002503  1375		TAD	(DOFIN1-DOFIN0	/INDEX=I, STEP=R
002504  1374		TAD	(DOFIN0-1	/ALL OTHER CASES
002505  3307		DCA	.+2
002506  4521		JMS I	QGENCOD		/DO FINISH CODE
002507  0000		0
002510  4523		JMS I	QOPCOD		/SUBTRACT UPPER LIMIT
002511  1015		FSUB
002512  4525		JMS I	QOADDR
002513  2524		DOARG
002514  4524		JMS I	QOPCDE		/NOW THE JLT %%LOOP
002515  2157		JLE
002516  1360		TAD	DARG		/OUTPUT LABEL
002517  4550		JMS I	QOLABEL
002520  4535		JMS I	QCRLF
002521  1052		TAD	STKLVL		/FIX X16 INCASE MULTIPLE DO ENDER
002522  3016		DCA	X16
002523  5511		JMP I	QNEXT
		DOARG,
002524  0000	DOPARM,	0			/SUBR FOR DO PARAMETERS
002525  1724		TAD I	DOPARM
002526  2324		ISZ	DOPARM		/GET THE PARM POINTER
002527  3360		DCA	DARG
002530  7126		CLL CML RTL		/GET ADDR OF TYPE WORD
002531  1360		TAD	DARG
002532  3023		DCA	TYPE
002533  7146		CLL CMA RTL		/CHECK TYPE
002534  1423		TAD I	TYPE
002535  7700		SMA CLA
002536  5242		JMP	DPERR		/NOT I OR R
002537  1760		TAD I	DARG
002540  7450		SNA
002541  5361		JMP	STRTMP		/ARG ALREADY IN AC
002542  1167		TAD	QM63		/IS IT ARRAY REF?
002543  7710		SPA CLA
002544  5355		JMP	SVLIMT		/YES, SAVE LIMIT
002545  1760		TAD I	DARG		/REGET SYM ADDR
002546  3010		DCA	X10		/ADR OF TYPE WORD
002547  6211		CDF	10
002550  1410		TAD I	X10		/MAYBE ITS A LIT?

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 24-2

002551  6201		CDF
002552  0142		AND	Q40
002553  7640		SZA CLA
002554  5724		JMP I	DOPARM		/YES, ITS LITERAL
						/WE'RE ALWAYS IN F MODE HERE
						/SINCE THE LAST THING
						/WAS A DO STORE
002555  4523	SVLIMT,	JMS I	QOPCOD		/OTHERWISE LOAD IT
002556  1012		FLDA
002557  4525		JMS I	QOADDR
002560  0000	DARG,	0
002561  1056	STRTMP,	TAD	DOTEMP		/SET ARG TO NEXT DO TEMP
002562  3760		DCA I	DARG
002563  4523		JMS I	QOPCOD		/GENERATE STORE
002564  1567		FSTA
002565  2056		ISZ	DOTEMP		/BUMP DO TEMP
002566  1360		TAD	DARG
002567  3371		DCA	.+2
002570  4525		JMS I	QOADDR		/DO TEMP ADDRESS FIELD
002571  0000		0
002572  5724		JMP I	DOPARM
002574  5063
002575  0007
002576  2242
002577  5505
	2600		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 25

		/ SUBSCRIPT REFERENCE COMPILER

002600  4515	ARGS,	JMS I	QINWORD		/COMPILE ARGUMENT LIST
002601  7040		CMA
002602  3050		DCA	NARGS		/NUMBER OF ARGS
002603  1050		TAD	NARGS		/GET ADDRESS OF SUBSCRIPTED VAR
002604  7104		CLL RAL
002605  1050		TAD	NARGS		/ENTRY ON THE STACK
002606  1016		TAD	X16
002607  3015		DCA	X15
002610  1015		TAD	X15		/SAVE POINTER TO START
						/OF THIS ENTRY
002611  3014		DCA	X14		/FOR POSSIBLE FUTURE USE
002612  2050		ISZ	NARGS		/NOW ITS THE 2'S COMPLEMENT
002613  7000		NOP
002614  1415		TAD I	X15		/FETCH SS VARIABLE
002615  3027		DCA	BASE1
002616  1415		TAD I	X15		/ITS TYPE
002617  3030		DCA	TYPE1
002620  1027		TAD	BASE1		/STORE BASE WORD
002621  3415		DCA I	X15
002622  1027		TAD	BASE1		/GET ADDR OF TYPE WORD
002623  7001		IAC
002624  3024		DCA	TEMP
002625  6211		CDF	10		/GET TYPE WORD
002626  7132		CLL CML RTR		/TEST DIM BIT
002627  0424		AND I	TEMP
002630  7650		SNA CLA
002631  5777' 		JMP	TRYCAL		/SOME KIND OF CALL
002632  1027		TAD	BASE1		/NOW GET ADDRESS OF DIM INFO
002633  4551		JMS I	QGETSS
002634  3026		DCA	ARG1		/RETURNS WITH FIELD SET
002635  1426		TAD I	ARG1		/CORRECT NUMBER OF DIMENSIONS?
002636  1050		TAD	NARGS
002637  6201		CDF
002640  7640		SZA CLA
002641  5776' 		JMP	DIMERR		/NO
002642  2026		ISZ	ARG1		/SKIP TOTAL SIZE
002643  2026		ISZ	ARG1		/SKIP MAGIC NUMBER
002644  2026		ISZ	ARG1		/AND ASSOCIATED LITERAL
002645  3043		DCA	XRNUM		/START WITH XR 1
002646  1375		TAD	(-10		/SEVEN XRS
002647  3774' 		DCA	XRCNT		/COUNT FOR SEARCH
002650  3046		DCA	FREEXR		/ZERO FREE XR INDICATOR
002651  6201	XRCHEK,	CDF
002652  2774' 		ISZ	XRCNT		/ANY MORE XR EXPRS TO TEST ?
002653  7410		SKP			/YES, GO CHECK THEM
002654  5773' 		JMP	COMPSS		/NO, MUST COMPILE
						/XR ERPRESSION
002655  2043		ISZ	XRNUM		/BUMP XR NUMBER
002656  1043		TAD	XRNUM
002657  7106		CLL RTL			/TIMES 16
002660  7106		CLL RTL
002661  1372		TAD	(XRBUFR-1	/PLUS BASE (-1)
002662  3013		DCA	X13

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 25-1

002663  1413		TAD I	X13		/LOOK AT THE
002664  7510		SPA			/INDICATOR
002665  5270		JMP	.+3		/-1=USED BY THIS STMT
002666  7640		SZA CLA			/IF ZERO GO TO
						/MTXR (EVENTUALLY)
002667  1046		TAD	FREEXR		/ANY FREE BEFORE THIS ONE ?
002670  7640		SZA CLA
002671  5275		JMP	NOTMT		/YES, ALREADY FOUND ONE
002672  1043		TAD	XRNUM		/THIS WILL BE
002673  3046		DCA	FREEXR		/THE XR WE USE
002674  5251		JMP	XRCHEK		/GO LOOK AT NEXT
002675  1013	NOTMT,	TAD	X13		/SAVE FLAG ADDRESS
002676  3365		DCA	XRFLAG		/IN CASE WE NEED IT LATER
002677  1413		TAD I	X13		/POINTER TO THE DIM INFO
002700  3025		DCA	TEMP2
002701  6211		CDF	10
002702  1425		TAD I	TEMP2		/SAME NUMBER OF DIMS ?
002703  1050		TAD	NARGS
002704  7640		SZA CLA
002705  5251		JMP	XRCHEK		/NO, THIS XR WONT DO
002706  1050		TAD	NARGS		/SET COUNTER
002707  3364		DCA	DCNT
002710  1026		TAD	ARG1		/POINTER TO DIM FACTORS
002711  3012		DCA	X12
002712  2025		ISZ	TEMP2		/SKIP THREE WORDS
002713  2025		ISZ	TEMP2
002714  2025		ISZ	TEMP2
002715  2364	DCHEK,	ISZ	DCNT		/ANY MORE ?
002716  7410		SKP
002717  5327		JMP	SSCHEK		/DIMS OK, CHECK SS
002720  2025		ISZ	TEMP2		/GET TO NEXT DIM
002721  1425		TAD I	TEMP2		/ARE THEY EQUAL ?
002722  7041		CIA
002723  1412		TAD I	X12
002724  7640		SZA CLA
002725  5251		JMP	XRCHEK		/NO, GO TRY NEXT ONE
002726  5315		JMP	DCHEK
002727  1050	SSCHEK,	TAD	NARGS		/COUNT AGAIN
002730  6201		CDF
002731  3364		DCA	DCNT
002732  7144		CLL CMA RAL		/-2
002733  1016		TAD	X16		/ADDR OF START OF TOP
						/SS ON STACK
002734  5337		JMP	.+3
002735  7146	SSC2,	CLL CMA RTL		/-3
002736  1366		TAD	XTMP		/BACK UP TO NEXT LOWER SS
002737  3366		DCA	XTMP		/LINK IS ALWAYS ZERO HERE
002740  1766		TAD I	XTMP		/GET NEXT SS (WORKING
						/RIGHT TO LEFT)
002741  1371		TAD	(-61		/IS IT A VAR OR LITERAL?
002742  7620		SNL CLA
002743  5251		JMP	XRCHEK		/WE'RE JUST
						/LOOKING FOR AN EMPTY
002744  1766		TAD I	XTMP		/RE GET SS POINTER
002745  7041		CIA

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 25-2

002746  1413		TAD I	X13		/ARE THEY THE SAME ?
002747  7640		SZA CLA
002750  5251		JMP	XRCHEK		/NO
002751  2364		ISZ	DCNT
002752  5335		JMP	SSC2		/KEEP CHECKING
002753  1043		TAD	XRNUM		/THEY MATCH, STICK IN
						/THE XR NUMBER
002754  1370		TAD	(51
002755  3414		DCA I	X14
002756  7126		CLL CML RTL
002757  1014		TAD	X14		/PURGE SS FROM STACK
002760  3016		DCA	X16
002761  7240		CLA CMA			/SET FLAG TO
						/'USED BY THIS STMT'
002762  3765		DCA I	XRFLAG
002763  5511		JMP I	QNEXT
002764  0000	DCNT,	0
002765  0000	XRFLAG,	0
002766  0000	XTMP,	0
002770  0051
002771  7717
002772  6577
002773  3000
002774  3074
002775  7770
002776  3072
002777  3075
	3000		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 26

		/ SUBSCRIPT REFERENCE COMPILER

003000  1046	COMPSS,	TAD	FREEXR		/GET XR EXPR AREA
003001  7106		CLL RTL			/BY MULTIPLYING
						/THE NUMBER
003002  7106		CLL RTL			/BY 16
003003  1377		TAD	(XRBUFR		/AND ADDING THE
						/BASE ADDRESS
003004  3337		DCA	XREPTR		/THIS IS IT
003005  7240		CLA CMA			/SET USED BY THIS
						/STMT FLAG
003006  3737		DCA I	XREPTR
003007  2337		ISZ	XREPTR
003010  7146		CLL CMA RTL		/STORE THE DIB POINTER
003011  1026		TAD	ARG1
003012  3737		DCA I	XREPTR
003013  1050		TAD	NARGS		/GET ADDR OF POINTER TO LAST
003014  7040		CMA			/DIMENSION FACTOR
003015  1026		TAD	ARG1
003016  3026		DCA	ARG1		/SINCE WE USE THEM IN
						/REVERSE ORDER
003017  4517		JMS I	QSAVEAC		/STORE AC IF NEEDED
				/FOLLOWING INSTRUCTION REMOVED FOR OPTOMIZATION
		/	JMS I	QGENSF		/ALL SUBSCRIPTS AR I OR R
003020  1376		TAD	(FLDA		/LOAD FIRST SS
003021  7410		SKP
003022  1375	CSSLUP,	TAD	(FADD		/ADD ALL SUBSEQUENT ONES
003023  3250		DCA	OPC
003024  7146		CLL CMA RTL		/BACK UP STACK BY ONE ENTRY
003025  1016		TAD	X16
003026  3016		DCA	X16
003027  1016		TAD	X16		/GET A WORKING POINTER
003030  3015		DCA	X15
003031  1415		TAD I	X15		/GET THE NEXT SUBSCRIPT
003032  3031		DCA	ARG2
003033  7144		CLL CMA RAL		/MUST BE INTEGER
003034  1415		TAD I	X15
003035  7700		SMA CLA
003036  5272		JMP	DIMERR
003037  1415		TAD I	X15
003040  3032		DCA	BASE2
003041  1031		TAD	ARG2		/STORE THE SS INTO THE
						/XR EXPR
003042  2337		ISZ	XREPTR		/INCREMENT FIRST
003043  3737		DCA I	XREPTR
003044  1031		TAD	ARG2		/IS ARG2 THE AC (ONLY
						/POSSIBLE IF
003045  7650		SNA CLA			/ITS THE RIGHTMOST
						/SUBSCRIPT)
003046  5253		JMP	NLODSS		/YES, DON'T LOAD IT
003047  4523		JMS I	QOPCOD		/OUTPUT LOAD OR ADD
003050  0000	OPC,	0			/THIS LOCATION TELLS
						/THE STORY
003051  4525		JMS I	QOADDR		/FOLLOWED BY THE OPERAND
003052  0031		ARG2			/POINTED TO BY ARG2

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 26-1

003053  2050	NLODSS,	ISZ	NARGS		/ANY MORE SUBSCRIPTS ?
003054  5310		JMP	MORESS		/YES, GO COMPILE THEM
003055  1046		TAD	FREEXR		/ANY FREE INDEX REG?
003056  7640		SZA CLA
003057  5325		JMP	ASGNXR		/YES, GO USE IT
003060  1374		TAD	(61		/ITS A SPECIAL POINTER ENTRY
003061  3414		DCA I	X14
003062  2014		ISZ	X14
003063  1034		TAD	TMPCNT		/SAVE TEMP NUMBER
003064  3414		DCA I	X14		/BEFORE WE BLOW X14
003065  4773		JMS I	(GENPTR		/GENERATE POINTER TO THE ARG
003066  4521		JMS I	QGENCOD		/BACK TO FMODE
003067  5043		SF-1
003070  4772		JMS I	(ACSTOR		/GENERATE STORE AC
003071  5511		JMP I	QNEXT
003072  4527	DIMERR,	JMS I	QTTYMSG		/SS NOT OF CORRECT NUMBER
003073  2323		2323
003074  0000	XRCNT,	0
003075  1102	TRYCAL,	TAD	ASFSWT		/ASF DEFINITION
003076  7740		SMA SZA CLA
003077  5771' 		JMP	DEFASF		/YES, GO OUTPUT PROLOG
003100  1424		TAD I	TEMP		/IS IT A FUNCTION OR AN ARG?
003101  6201		CDF
003102  0370		AND	(1420
003103  7450		SNA
003104  5272		JMP	DIMERR		/NO, SOME KIND OF ERROR
003105  0141		AND	Q20
003106  3077		DCA	ACSWIT		/SAVE THE AC SWITCH
003107  5767' 		JMP	FUNCAL		/STANDARD FUNCTION CALL
003110  4532	MORESS,	JMS I	QGENSF	/MUST USE SINGLE PRECISION FOR MULTIPLY
003111  4523		JMS I	QOPCOD		/MULTIPLY BY DIM FACTOR
003112  2353		FMUL
003113  6211		CDF	10
003114  1426		TAD I	ARG1		/PICK UP FACTOR ADDRESS
003115  6201		CDF
003116  3031		DCA	ARG2
003117  7240		CLA CMA
003120  1026		TAD	ARG1		/MOVE BACK ONE
003121  3026		DCA	ARG1
003122  4525		JMS I	QOADDR		/OUTPUT MULTIPLY ADDRESS
003123  0031		ARG2
003124  5222		JMP	CSSLUP		/LOOP ON NEXT SS
003125  4524	ASGNXR,	JMS I	QOPCDE		/OUTPUT ATX N
003126  3616		ATX
003127  1046		TAD	FREEXR		/GET NUMBER OF FREE XR
003130  1106		TAD	Q260
003131  4562		JMS I	QOCHAR
003132  4535		JMS I	QCRLF
003133  1046		TAD	FREEXR
003134  1366		TAD	(51		/COMPUTE PROPER NUMBER
003135  3414		DCA I	X14		/PUT IT INTO TOP OF STACK
003136  5511		JMP I	QNEXT
003137  0000	XREPTR,	0

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 27

		/ RANDOM TEXT
003140  0000	OTAB,	0
003141  1365		TAD	(211
003142  4562		JMS I	QOCHAR
003143  5740		JMP I	OTAB
003144  0603	FCLA,	TEXT	'FCLA'
003145  1401
003146  0000
003147  2324	STARTD,	TEXT	'STARTD'
003150  0122
003151  2404
003152  0000
003153  4324	TEMPN2,	TEXT	'#TMPX'
003154  1520
003155  3000
003156  4303	CSUB,	TEXT	'#CSB'
003157  2302
003160  0000
003161  4303	CDIV,	TEXT	'#CDV'
003162  0426
003163  0000
003165  0211
003166  0051
003167  3400
003170  1420
003171  5600
003172  1062
003173  3670
003174  0061
003175  1007
003176  1012
003177  6600
	3200		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 28

		/ GENERAL CALL GENERATOR

003200  0000	GENCAL,	0		/GENERATE A CALL; ALL ARGS ON STACK
					/X15 POINTS TO START OF STACK INFO
					/NARGS IS NEG NUMBER OF ARGS
					/FUNCTION NAME IS FIRST ON STACK
003201  1600		TAD I	GENCAL		/GET FUN NAME SWITCH
003202  3266		DCA	FNSWIT
003203  1015		TAD	X15		/NEW STACK VALUE
003204  3016		DCA	X16
003205  1015		TAD	X15		/WORKING POINTER
003206  3031		DCA	ARG2
003207  1050		TAD	NARGS		/WORKING COUNTER
003210  7450		SNA
003211  5257		JMP	OUTJSR		/NO ARGS, PUT JSR
003212  3033		DCA	TYPE2
003213  2031	CHKPTR,	ISZ	ARG2		/MOVE TO NUMBER
003214  1031		TAD	ARG2
003215  7001		IAC			/ADDR OF TYPE WORD
003216  3032		DCA	BASE2
003217  1432		TAD I	BASE2		/GET TYPE
003220  3030		DCA	TYPE1		/TYPE OF ARG FOR GENPTR
003221  2032		ISZ	BASE2		/POINT TO BASE WORD
003222  1432		TAD I	BASE2
003223  3027		DCA	BASE1		/FOR GENPTR
003224  1431		TAD I	ARG2		/GET ARG NUMBER
003225  7100		CLL
003226  1377		TAD	(-52		/IS IT INDEXED ?
003227  7420		SNL
003230  5252		JMP	NOTINX		/NO, ITS A TEMP
003231  1376		TAD	(52-61		/IS IT INDIRECT ?
003232  7430		SZL
003233  5775' 		JMP	INXR		/NO, ITS IN AN XR
003234  7450		SNA
003235  5343		JMP	INTMP		/POINTER IN A TEMP
003236  1374		TAD	(62		/GET TO TYPE WORD
003237  3065		DCA	GCTEMP
003240  6211		CDF	10
003241  1465		TAD I	GCTEMP		/IS IT AN ARG
003242  6201		CDF
003243  0373		AND	(1020		/ARG OR EXTERNAL ?
003244  7450		SNA
003245  5253		JMP	NOTINX+1	/NEITHER
003246  0141		AND	Q20
003247  7640		SZA CLA
003250  5772' 		JMP	ARGARG		/ARG SQUARED
003251  5771' 		JMP	EXTARG		/EXTERNAL ARG
003252  7200	NOTINX,	CLA
003253  2031		ISZ	ARG2		/BUMP POINTER
003254  2031		ISZ	ARG2
003255  2033		ISZ	TYPE2		/INCR COUNT
003256  5213		JMP	CHKPTR
003257  1103	OUTJSR,	TAD	JSRLBL		/DOES IT GET A LABEL ?
003260  7450		SNA
003261  5264		JMP	.+3		/NO

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 28-1

003262  4572		JMS I	QLABEL		/OUPTUT THE LABEL+COMMA
003263  3103		DCA	JSRLBL		/KILL SWITCH
003264  1016		TAD	X16		/ADDR OF POINTER TO FUN NAME
003265  3024		DCA	TEMP
003266  0000	FNSWIT,	0			/REAARANGED**
003267  5770		JMP I	(IOFUN		/IO FUNCTION CALL
003270  4524		JMS I	QOPCDE		/OUTPUT THE JSR
003271  3661		JSR
003272  1424		TAD I	TEMP		/NOW THE SUBR NAME
003273  6211		CDF	10
003274  4543		JMS I	QOUTNAM
003275  4535		JMS I	QCRLF
003276  1050		TAD	NARGS		/ANY ARGS ?
003277  7650		SNA CLA
003300  5600		JMP I	GENCAL		/NO, END OF CALL
003301  4524		JMS I	QOPCDE		/JUMP AROUND THE ARGS
003302  3657		JA
003303  1152		TAD	Q256
003304  4562		JMS I	QOCHAR		/.
003305  1054		TAD	PLUS
003306  4562		JMS I	QOCHAR		/+
003307  7344		CLL CLA CMA RAL		/-2
003310  1050		TAD	NARGS		/-N-2
003311  7144		CLL CMA RAL		/2*N+2
003312  4516		JMS I	QONUMBR
003313  4535	IOONLY,	JMS I	QCRLF
003314  1016		TAD	X16		/WORKING POINTER
003315  3015		DCA	X15
003316  1415	PTRLST,	TAD I	X15		/GET NEXT ARG
003317  7440		SZA
003320  5331		JMP	SARG		/SIMPLE ARG
003321  7126		CLL CML RTL
003322  1015		TAD	X15		/ADDR OF GENERATED
						/LABEL NUMBER
003323  3024		DCA	TEMP
003324  1424		TAD I	TEMP		/OUTPUT #GXXXX (THE
						/GENERATED LABEL)
003325  4572		JMS I	QLABEL		/OUPTUT THE LABEL
003326  4521		JMS I	QGENCOD
003327  5060		JADP2-1			/GENERATE A DUMMY JA
003330  5336		JMP	BARGLP
003331  3031	SARG,	DCA	ARG2		/STORE THE ARG NUMBER
003332  4523		JMS I	QOPCOD		/OUTPUT JA ARG
003333  3657		JA
003334  4525		JMS I	QOADDR		/NOW ADDRESS FIELD
003335  0031		ARG2
003336  2015	BARGLP,	ISZ	X15		/BUMP POINTER
003337  2015		ISZ	X15
003340  2050		ISZ	NARGS		/BUMP COUNT
003341  5316		JMP	PTRLST
003342  5600		JMP I	GENCAL
003343  1432	INTMP,	TAD I	BASE2		/GET TEMP NUMBER
003344  3026		DCA	ARG1		/THAT PTR IS STORED IN
003345  4521		JMS I	QGENCOD		/PICK UP POINTER
003346  5102		LDASTD-1

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 28-2

003347  4524	STRPTR,	JMS I	QOPCDE		/NOW STORE THE POINTER
003350  1567		FSTA
003351  1051		TAD	GLABEL		/OUTPUT THE LABEL
003352  4550		JMS I	QOLABEL
003353  4535		JMS I	QCRLF
003354  1051		TAD	GLABEL		/SAVE THE LABEL NUMBER
003355  3432		DCA I	BASE2
003356  3431		DCA I	ARG2		/ZERO ARG NUMBER
003357  2051		ISZ	GLABEL		/INCREMENT LABEL NUMBER
003360  4521		JMS I	QGENCOD		/BACK TO F MODE
003361  5043		SF-1
003362  5252		JMP	NOTINX		/CONTINUE LOOP
003363  0000	NLABEL,	0
003364  4550		JMS I	QOLABEL
003365  1053		TAD	COMMA
003366  4562		JMS I	QOCHAR
003367  5763		JMP I	NLABEL
003370  5757
003371  3514
003372  3441
003373  1020
003374  0062
003375  3476
003376  7771
003377  7726
	3400		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 29

		/ GENERATE SUBROUTINE CALL

003400  4517	FUNCAL,	JMS I	QSAVEAC		/SAVE NEXT TO LAST IF NEEDED
003401  4553		JMS I	QSAVACT		/SAVE LAST IF NEEDED
003402  4532		JMS I	QGENSF		/ALL CALLS DONE IN F MODE
003403  3414		DCA I	X14		/RESULT RETURNED IN AC
003404  1077		TAD	ACSWIT		/IS THE SUBR AN ARG ?
003405  7650		SNA CLA
003406  5227		JMP	MAKCAL		/NO, ITS EASIER
003407  4523		JMS I	QOPCOD		/GET THE JSR TO THE SUBR
003410  1012		FLDA
003411  4525		JMS I	QOADDR
003412  0027		BASE1			/BY GETTING THE VALUE
						/OF THE ARG
003413  4521		JMS I	QGENCOD		/STARTD
003414  5035		SD-1
003415  4524		JMS I	QOPCDE		/STORE IT AHEAD
003416  1567		FSTA
003417  1051		TAD	GLABEL		/INTO THE JSR
003420  2051		ISZ	GLABEL
003421  3103		DCA	JSRLBL		/SET THE SWITCH
003422  1103		TAD	JSRLBL
003423  4550		JMS I	QOLABEL
003424  4535		JMS I	QCRLF
003425  4521		JMS I	QGENCOD		/STARTF
003426  5043		SF-1
003427  2027	MAKCAL,	ISZ	BASE1		/MOVE TO TYPE WORD
003430  6211		CDF	10
003431  1427		TAD I	BASE1		/GET TYPE OF FUNCTION
003432  6201		CDF
003433  4554		JMS I	QSKPIRL		/WHAT MODE WILL WE LEAVE IN?
003434  3101		DCA	FMODE		/PROBABLY E
003435  4555		JMS I	QGENCAL		/GO GENERATE THE CALL
003436  7410		SKP
003437  0000		0			/THIS IS A FREE LOCATION
003440  5511		JMP I	QNEXT
003441  4524	ARGARG,	JMS I	QOPCDE		/%FLDA
003442  1012		FLDA
003443  1431		TAD I	ARG2		/POINTER
003444  6211		CDF	10
003445  4543		JMS I	QOUTNAM
003446  4535		JMS I	QCRLF
003447  4521		JMS I	QGENCOD		/%SD
003450  5035		SD-1
003451  6211		CDF	10
003452  7132		CLL CML RTR		/IS IT AN ARRAY ?
003453  0465		AND I	GCTEMP
003454  6201		CDF
003455  7650		SNA CLA
003456  5777' 		JMP	STRPTR		/GO STORE THE POINTER
003457  1431		TAD I	ARG2		/GET THE LITERAL NUMBER
003460  4551		JMS I	QGETSS
003461  1147		TAD	Q3
003462  3065		DCA	GCTEMP
003463  1465		TAD I	GCTEMP

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 29-1

003464  3327		DCA	OLABEL		/SAVE IT
003465  6201		CDF
003466  4524		JMS I	QOPCDE		/%FADD LITERAL
003467  1007		FADD
003470  1144		TAD	QLITRL
003471  4537		JMS I	QOUTSYM
003472  1327		TAD	OLABEL		/XXXX
003473  4516		JMS I	QONUMBR
003474  4535		JMS I	QCRLF
003475  5777' 		JMP	STRPTR		/GO STORE THE POINTER
003476  1376	INXR,	TAD	(270		/MAKE AN ASCII CHAR
003477  3041		DCA	XR
003500  4524		JMS I	QOPCDE		/XTA
003501  3620		XTA
003502  1041		TAD	XR
003503  4562		JMS I	QOCHAR		/N
003504  4535		JMS I	QCRLF
003505  1027		TAD	BASE1		/FIND ADDR OF MAGIC
						/NUMBER LITERAL
003506  4551		JMS I	QGETSS
003507  6201		CDF
003510  1147		TAD	Q3
003511  3026		DCA	ARG1
003512  4775		JMS I	(GENPTR		/GENERATE THE POINTER
003513  5777' 		JMP	STRPTR		/GO STORE THE POINTER
003514  1431	EXTARG,	TAD I	ARG2		/MAKE AN ENTRY IN THE EXT
003515  6211		CDF	10		/LITERAL LIST
003516  3417		DCA I	X17
003517  1056		TAD	DOTEMP		/USE DO TEMPS FOR THIS
003520  3417		DCA I	X17
003521  6201		CDF
003522  1056		TAD	DOTEMP		/SINCE OADDR CAN HANDLE THEM
003523  3431		DCA I	ARG2
003524  2056		ISZ	DOTEMP		/BUMP COUNT
003525  2067		ISZ	ELCNT		/ALSO EXT LIT COUNT
003526  5774' 		JMP	NOTINX		/BACK TO PROCESSING ARGS

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 30

		/ UTILITY ROUTINES
003527  0000	OLABEL,	0			/OUTPUT #GXXXX FOR GEN'D LABELS
003530  3024		DCA	TEMP
003531  1373		TAD	(243
003532  4562		JMS I	QOCHAR
003533  1372		TAD	(307
003534  4562		JMS I	QOCHAR
003535  1024		TAD	TEMP
003536  4516		JMS I	QONUMBR
003537  5727		JMP I	OLABEL
003540  0000	OPCODE,	0			/TAD OPCODE TAB
003541  3044		DCA	WHATAC		/THIS INSTRUCTION ZAPS AC
003542  4536		JMS I	QOTAB
003543  1740		TAD I	OPCODE
003544  2340		ISZ	OPCODE
003545  4537		JMS I	QOUTSYM
003546  4536		JMS I	QOTAB
003547  5740		JMP I	OPCODE
003550  5561	M1C2,	TEXT	'-1,2'
003551  5462
003552  0000
003553  0000	GENSTE,	0			/GENERATE STARTE IF IN
						/F MODE
003554  1101		TAD	FMODE		/LOOK AT THE SWITCH
003555  7650		SNA CLA
003556  5753		JMP I	GENSTE		/ALREADY IN E MODE
003557  3101		DCA	FMODE		/CLEAR THE SWITCH
003560  4523		JMS I	QOPCOD		/GENERATE THE STARTE
003561  2163		STARTE
003562  4535		JMS I	QCRLF		/CAN'T USE GENCOD FOR THAT
003563  5753		JMP I	GENSTE
003564  6000	D0,	TEXT	'0'
003565  4304	DOTMPN,	TEXT	'#DOTMP'
003566  1724
003567  1520
003570  0000
003572  0307
003573  0243
003574  3252
003575  3670
003576  0270
003577  3347
	3600		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 31

		/ OPCODES AND OTHER TEXT

003600  4302	XBASE,	TEXT	'#BASE'
003601  0123
003602  0500
003603  4302	XBASP3,	TEXT	'#BASE+3'
003604  0123
003605  0553
003606  6300
003607  5653	DP3C0,	TEXT	'.+3,0'
003610  6354
003611  6000
003612  1230	JXN,	TEXT	'JXN'
003613  1600
003614  0114	ALN,	TEXT	'ALN'
003615  1600
003616  0124	ATX,	TEXT	'ATX'
003617  3000
003620  3024	XTA,	TEXT	'XTA'
003621  0100
003622  1404	LDX,	TEXT	'LDX'
003623  3000
003624  4322	XREW,	TEXT	'#REW'
003625  0527
003626  0000
003627  4305	XENDF,	TEXT	'#ENDF'
003630  1604
003631  0600
003632  4302	XBAK,	TEXT	'#BAK'
003633  0113
003634  0000
003635  4305	XEXIT,	TEXT	'#EXIT'
003636  3011
003637  2400
003640  4322	XRTN,	TEXT	'#RTN'
003641  2416
003642  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 32

003643  1216	JNE,	TEXT	'JNE'
003644  0500
003645  1207		TEXT	'JGE'
003646  0500
003647  1214		TEXT	'JLE'
003650  0500
003651  1207		TEXT	'JGT'
003652  2400
003653  1214	JLT,	TEXT	'JLT'	/MUST BE IN THIS ORDER!!
003654  2400
003655  1205		TEXT	'JEQ'
003656  2100
003657  1201	JA,	TEXT	'JA'
003660  0000

003661  1223	JSR,	TEXT	'JSR'
003662  2200
003663  1223	JSA,	TEXT	'JSA'	/MUST BE IN THIS ORDER!
003664  0100
003665  2422	TRAP3,	TEXT	'TRAP3'
003666  0120
003667  6300

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 33

		/ POINTER GENERATOR
003670  0000	GENPTR,	0			/GENERATE A POINTER
003671  4523		JMS I	QOPCOD		/MULTIPLY BY 3. OR 6.
003672  2353		FMUL
003673  1030		TAD	TYPE1		/D OR C ?
003674  4554		JMS I	QSKPIRL		/SKIP ON I, R, OR L
003675  1120		TAD	Q6M3
003676  1377		TAD	(THREE
003677  3024		DCA	TEMP		/POINTER TO CORRECT LITERAL
003700  4525		JMS I	QOADDR
003701  0024		TEMP
003702  4521		JMS I	QGENCOD		/ALN 0; STARTD
003703  5033		A0SD-1
003704  4524		JMS I	QOPCDE		/FADD THE BASE LITERAL
003705  1007		FADD
003706  2027		ISZ	BASE1		/GET ADDR OF TYPE WORD
003707  6211		CDF	10
003710  1427		TAD I	BASE1		/GET TYPE WORD
003711  0141		AND	Q20
003712  7650		SNA CLA
003713  5320		JMP	NIARG		/NOT AN ARG
003714  7040		CMA
003715  1027		TAD	BASE1
003716  4543		JMS I	QOUTNAM		/IF AN ARG, THE LITERAL
						/IS THE ARG
003717  5327		JMP	OSF
003720  6201	NIARG,	CDF
003721  1144		TAD	QLITRL		/OTHERWISE ITS IN THE
						/LITERAL BLOCK
003722  4537		JMS I	QOUTSYM
003723  6211		CDF	10
003724  1426		TAD I	ARG1		/LITERAL NUMBER
003725  6201		CDF
003726  4516		JMS I	QONUMBR
003727  4535	OSF,	JMS I	QCRLF
003730  5670		JMP I	GENPTR

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 34

		/ MORE RANDOM CODE GENERATORS
003731  4521	STOP,	JMS I	QGENCOD		/CALL EXIT
003732  5153		STPCOD-1
003733  5511		JMP I	QNEXT
003734  4515	FORMAT,	JMS I	QINWORD		/NUMBER OF WORDS OF TEXT
003735  7040		CMA
003736  3024		DCA	TEMP
003737  4524		JMS I	QOPCDE		/JA AROUND THE STUFF
003740  3657		JA
003741  1152		TAD	Q256
003742  4562		JMS I	QOCHAR		/.
003743  1054		TAD	PLUS
003744  4562		JMS I	QOCHAR
003745  7144		CLL CMA RAL		/.+2+NWORDS
003746  1024		TAD	TEMP
003747  7040		CMA
003750  5353		JMP	.+3
003751  4536	FMTLUP,	JMS I	QOTAB		/TA
003752  4515		JMS I	QINWORD		/GET NEXT WORD
003753  4516		JMS I	QONUMBR		/OUTPUT IT
003754  4535		JMS I	QCRLF
003755  2024		ISZ	TEMP
003756  5351		JMP	FMTLUP
003757  5511		JMP I	QNEXT

003760  0000	DFRTTM,	0		/ROUTINE TO DELETE "SYS:FORTRN.TM"
003761  7201		CLA IAC
003762  6212		CIF 10
003763  4545		JMS I	Q200
003764  0004		4
003765  5336		FTRNTM
003766  0000		0
003767  7000		NOP
003770  5760		JMP I	DFRTTM

003771  7556	EQUDOT,	TEXT	'=.'
003772  0000
003773  4320	XPAUSE,	TEXT	'#PAUSE'
003774  0125
003775  2305
003776  0000
003777  0070
	4000		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 35

		/REWIND, ENDFILE, BACKSPACE

004000  1377	REWIND,	TAD	(XREW-XENDF
004001  1377	ENDFIL,	TAD	(XENDF-XBAK
004002  1376	BAKSPC,	TAD	(XBAK
004003  3211		DCA	REBSUB
004004  4513		JMS I	QUCODE
004005  6515		AIFTBL-1	/GET UNIT INTO FAC
004006  4532		JMS I	QGENSF	/FORCE F MODE
004007  7326		CLA STL RTL
004010  4775		JMS I	(OJSR
004011  0000	REBSUB,	0
004012  5511		JMP I	QNEXT

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 36

		/ DATA STATEMENT STUFF
004013  1016	DATAST,	TAD	X16		/SAVE STACK
004014  3027		DCA	DSTACK
004015  1064		TAD	DATASW		/MULTIPLE DATA STMT ?
004016  7640		SZA CLA
004017  5227		JMP	FIXDAT-2	/YES, DON'T OUTPUT LABEL
004020  2064		ISZ	DATASW		/SET DATA SWITCH
004021  4536		JMS I	QOTAB		/DEFINE ORIGIN SYMBOL
004022  1051		TAD	GLABEL
004023  4550		JMS I	QOLABEL
004024  1374		TAD	(EQUDOT		/#GXXXX=.
004025  4537		JMS I	QOUTSYM
004026  4535		JMS I	QCRLF
004027  7240		CLA CMA			/SET VAR TO NONE LEFT
004030  3030		DCA	NUMELM
004031  1164	FIXDAT,	TAD	QXRBUFR		/USE XR BUFFER FOR DATA BUFFER
004032  3031		DCA	DATPTR
004033  7040		CMA
004034  3033		DCA	RCOUNT		/SET REPETITION COUNT TO 1
004035  5511		JMP I	QNEXT
004036  4515	DREPTC,	JMS I	QINWORD		/GET REPETITION COUNT
004037  7041		CIA
004040  3033		DCA	RCOUNT
004041  5511		JMP I	QNEXT
004042  4515	DATELM,	JMS I	QINWORD		/GET SIZE OF ELEMENT
004043  7041		CIA
004044  3024		DCA	TEMP
004045  4515		JMS I	QINWORD		/GET ELEMENT
004046  3431		DCA I	DATPTR
004047  2031		ISZ	DATPTR		/INTO DATA BUFFER
004050  2024		ISZ	TEMP
004051  5245		JMP	.-4
004052  5511		JMP I	QNEXT
004053  1164	ENDELM,	TAD	QXRBUFR		/SETUP POINTER
004054  3024		DCA	TEMP
004055  2030	MORELM,	ISZ	NUMELM		/ANY MORE FOR THIS VAR?
004056  5343		JMP	SAMVAR		/YES
004057  1027		TAD	DSTACK		/CHECK FOR MISMATCH
004060  7041		CIA
004061  1016		TAD	X16
004062  7650		SNA CLA
004063  5367		JMP	DLERR		/OOOPS
004064  2027		ISZ	DSTACK		/GET TO NEXT VAR
004065  4524		JMS I	QOPCDE		/%ORG VAR
004066  2161		ORG
004067  1427		TAD I	DSTACK		/GET VAR
004070  3025		DCA	TEMP2
004071  1025		TAD	TEMP2
004072  2027		ISZ	DSTACK		/MOVE TO THE DISPLACEMENT
004073  6211		CDF	10		/OUTPUT VAR
004074  4543		JMS I	QOUTNAM
004075  7040		CMA
004076  3030		DCA	NUMELM		/ASSUME UNDIMENSIONED
004077  6211		CDF	10
004100  2025		ISZ	TEMP2		/MOVE TO TYPE WORD

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 36-1

004101  1425		TAD I	TEMP2		/GET TYPE
004102  4554		JMS I	QSKPIRL		/SKIP ON I R L
004103  7146		CLL CMA RTL		/YES
004104  1377		TAD	(-3
004105  3026		DCA	ELMSIZ		/NUMBER OF WORDS PER ELEMENT
004106  7132		CLL CML RTR
004107  0425		AND I	TEMP2
004110  6201		CDF
004111  7650		SNA CLA
004112  5330		JMP	GOTSIZ		/NOT DIMENSIONED
004113  7201		CLA IAC			/IF DISP = 7777 , WHOLE ARRAY
004114  1427		TAD I	DSTACK		/LOOK AT DISPLACEMENT
004115  7640		SZA CLA
004116  5331		JMP	GOTSIZ+1	/ONLY ONE ELEMENT OF THE ARRAY
004117  7040		CMA
004120  1025		TAD	TEMP2		/GET TOTAL SIZE
004121  4551		JMS I	QGETSS
004122  7001		IAC
004123  3025		DCA	TEMP2
004124  1425		TAD I	TEMP2
004125  7041		CIA			/THIS IS THE NUMBER OF ELEMENTS
004126  3030		DCA	NUMELM
004127  6201		CDF
004130  3427	GOTSIZ,	DCA I	DSTACK		/ZERO DISPLACEMENT
004131  1054		TAD	PLUS		/OUTPUT +XXXX
004132  4562		JMS I	QOCHAR
004133  1026		TAD	ELMSIZ		/MULTIPLY DISP BY 3 OR 6
004134  7041		CIA
004135  3042		DCA	MQ
004136  1427		TAD I	DSTACK		/GET DISP
004137  4557		JMS I	QMUL12
004140  4563		JMS I	QNUMBRO		/OUTPUT THE ORG ALTERATION
004141  4535		JMS I	QCRLF
004142  2027		ISZ	DSTACK		/MOVE TO NEXT ENTRY
004143  1026	SAMVAR,	TAD	ELMSIZ		/GET SET TO PICK UP AN ELEMENT
004144  3050		DCA	NARGS
004145  4536		JMS I	QOTAB
004146  5351		JMP	.+3		/SKIP ; FIRST TIME
004147  1373	ELMLUP,	TAD	(273		/SEMICOLON
004150  4562		JMS I	QOCHAR
004151  1424		TAD I	TEMP		/GET A WORD FROM THE BUFFER
004152  2024		ISZ	TEMP
004153  4516		JMS I	QONUMBR
004154  2050		ISZ	NARGS		/ONE DATA LIST ELEMENT MUST FILL
004155  5347		JMP	ELMLUP		/ONE VARIABLE LIST ELEMENT
004156  4535		JMS I	QCRLF		/I.E. ONE ARRAY ELEMENT
004157  1031		TAD	DATPTR		/IS THIS DATA ELEMENT EXHAUSTED?
004160  7141		CIA CLL
004161  1024		TAD	TEMP
004162  7620		SNL CLA
004163  5255		JMP	MORELM		/MORE LEFT
004164  2033		ISZ	RCOUNT		/REPEAT ?
004165  5253		JMP	ENDELM		/YES
004166  5231		JMP	FIXDAT		/NO, BACK FOR MORE DATA
004167  4527	DLERR,	JMS I	QTTYMSG		/DATA LIST ERROR

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 36-2

004170  0414		0414
	0026		ELMSIZ=ARG1
	0030		NUMELM=TYPE1
	0027		DSTACK=BASE1
	0031		DATPTR=ARG2
	0033		RCOUNT=TYPE2
004173  0273
004174  3771
004175  5266
004176  3632
004177  7775
	4200		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 37

		/ END STATEMENT PROCESSING

004200  1062	END,	TAD	FUNCTN		/WHAT WAS IT ?
004201  7640		SZA CLA
004202  5205		JMP	.+3		/SUBR, RETURN
004203  1377		TAD	(STPCOD-1	/MAIN PROG, CALL EXIT
004204  3206		DCA	.+2
004205  4521		JMS I	QGENCOD
004206  5141		RTNCOD-1
004207  1056		TAD	DOTEMP		/ANY DO TEMPS ?
004210  1343		TAD	M7000
004211  7550		SPA SNA
004212  5215		JMP	.+3		/NO
004213  4343		JMS	OTMPS		/OUTPUT THEM
004214  3565	XDOTMP,	DOTMPN
004215  7200		CLA
004216  1035		TAD	TMPMAX		/ANY EXTRA TEMPS ?
004217  1376		TAD	(-TMPBLK
004220  7550		SPA SNA
004221  5225		JMP	.+4
004222  7001		IAC			/OUTPUT THEM + 1
004223  4343		JMS	OTMPS
004224  3153		TEMPN2
004225  7200		CLA
004226  1067		TAD	ELCNT		/ANY EXTERNAL LITERALS?
004227  7450		SNA
004230  5267		JMP	END2		/NO
004231  7041		CIA
004232  3067		DCA	ELCNT
004233  1066		TAD	EXTLIT		/PICK UP THE POINTER
004234  3017		DCA	X17
004235  6211	ELLOOP,	CDF	10
004236  1417		TAD I	X17		/GET SYMBOL NAME
004237  3024		DCA	TEMP
004240  1417		TAD I	X17		/AND DO TEMP NUMBER
004241  6201		CDF
004242  1375		TAD	(-7000		/MINUS BASE
004243  3025		DCA	TEMP2
004244  4524		JMS I	QOPCDE		/ORIGIN
004245  2161		ORG
004246  1214		TAD	XDOTMP		/OUTPUT #DOTMP
004247  4537		JMS I	QOUTSYM
004250  1054		TAD	PLUS		/+
004251  4562		JMS I	QOCHAR
004252  1025		TAD	TEMP2		/DISP
004253  7124		CLL CML RAL		/*2+1
004254  1025		TAD	TEMP2		/*3+1
004255  4516		JMS I	QONUMBR
004256  4535		JMS I	QCRLF
004257  4524		JMS I	QOPCDE		/NOW OUTPUT JSR NAME
004260  3661		JSR
004261  1024		TAD	TEMP
004262  6211		CDF	10
004263  4543		JMS I	QOUTNAM
004264  4535		JMS I	QCRLF

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 37-1

004265  2067		ISZ	ELCNT
004266  5235		JMP	ELLOOP
004267  1374	END2,	TAD	(232		/^Z
004270  4562		JMS I	QOCHAR
004271  4773		JMS I	(OUDUMP		/DUMP BUFFER
004272  6212		CIF	10
004273  4772		JMS I	(7700		/GET USR
004274  0010		10
004275  6212		CIF	10
004276  7201		CLA IAC
004277  4545		JMS I	Q200		/CLOSE OUTPUT FILE
004300  0004		4
004301  0072		F1LNAM
004302  0000	FILSIZ,	0
004303  5771' 		JMP	OUERR		/BADDDDIE
004304  1302		TAD	FILSIZ		/FIX INPUT LIST
004305  7106		CLL RTL
004306  7006		RTL
004307  5770' 		JMP	FINAL
004310  0000	ERMSG,	0			/PRINT ERROR MESSAGE ON THE TTY
004311  3024		DCA	TEMP		/SAVE THE CODE
004312  1105		TAD	QM4		/BACK UP THE ERROR
004313  1005		TAD	ERRPTR		/POINTER
004314  3010		DCA	X10
004315  6211		CDF	10
004316  3410		DCA I	X10		/ZERO END OF LIST
004317  1024		TAD	TEMP		/NOW STICK IN THE CODE
004320  3410		DCA I	X10
004321  1010		TAD	X10		/SAVE THE NEW POINTER
004322  3005		DCA	ERRPTR
004323  1003		TAD	LINENO		/NOW THE LINE NUMBER
004324  3410		DCA I	X10
004325  6201		CDF
004326  1024		TAD	TEMP		/PRINT ERROR CODE
004327  4565		JMS I	QTTYP2C
004330  4565		JMS I	QTTYP2C		/NOW SOME SPACES
004331  1107		TAD	QTTYOUT		/FUDGE THE OUTPUT
						/ROUTINE POINTER
004332  3162		DCA	QOCHAR		/SO THAT ONUMBR GOES TO
						/THE TTY
004333  1003		TAD	LINENO		/PRINT THE LINE NUMBER
004334  4516		JMS I	QONUMBR
004335  1367		TAD	(OCHAR		/FIXUP OUTPUT POINTER
004336  3162		DCA	QOCHAR
004337  4566		JMS I	QTTCRLF
004340  4521		JMS I	QGENCOD		/TRAP IF ERROR EXECUTED
004341  5021		ERCODE-1
004342  5710		JMP I	ERMSG
		M7000,
004343  1000	OTMPS,	-7000			/OUTPUT TEMP BLOCK
004344  3024		DCA	TEMP		/SAVE SIZE
004345  1743		TAD I	OTMPS
004346  2343		ISZ	OTMPS
004347  4537		JMS I	QOUTSYM		/OUTPUT NAME
004350  1053		TAD	COMMA

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 37-2

004351  4562		JMS I	QOCHAR
004352  4524		JMS I	QOPCDE		/ORG
004353  2161		ORG
004354  1152		TAD	Q256		/.
004355  4562		JMS I	QOCHAR
004356  1054		TAD	PLUS
004357  4562		JMS I	QOCHAR
004360  1024		TAD	TEMP
004361  7104		CLL RAL
004362  1024		TAD	TEMP		/SIZE TIMES THREE
004363  4516		JMS I	QONUMBR
004364  4535		JMS I	QCRLF
004365  5743		JMP I	OTMPS
004367  0472
004370  5131
004371  0555
004372  7700
004373  0533
004374  0232
004375  1000
004376  7776
004377  5153
	4400		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 38


		/ START PASS 2 (INTER PASS COMMUNICATION)

	0000		FIELD	0
			ENPUNCH
	5000		*OVRLAY>

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 51

005000  5570	START2,	JMP I	Q7605		/RETURN BUT DON'T SAVE CORE
005001  1410		TAD I	X10		/PICK UP NEXT FROM PASS 1
005002  3017		DCA	X17
005003  1017		TAD	X17		/SAVE POINTER TO
						/EXTERNAL LITERALS
005004  3066		DCA	EXTLIT
005005  1410		TAD I	X10		/PASS ONE STACK LEVEL
005006  3011		DCA	X11
005007  1410		TAD I	X10		/TEMP FILE START
005010  3777' 		DCA	INBLOK
005011  1410		TAD I	X10		/AND SIZE
005012  7040		CMA
005013  3776' 		DCA	INRCNT
005014  1410		TAD I	X10		/START OF PASS2O.SV
005015  3775' 		DCA	PASS2O
005016  1410		TAD I	X10		/START OF OUTPUT FILE
005017  3007		DCA	FILBLK		/SAVE IT FOR CHAINING TO RALF
005020  1007		TAD	FILBLK
005021  3774' 		DCA	OBLOCK
005022  1410		TAD I	X10
005023  3773' 		DCA	OSIZE		/ALSO MAX SIZE
005024  1410		TAD I	X10		/PICK UP PROG NAME
005025  3061		DCA	PROGNM
005026  1410		TAD I	X10
005027  3063		DCA	ARGLST		/AND ARG LIST ADDR
005030  1410		TAD I	X10		/AND
						/FUNCTION/SUBROUTINE/MAIN SWITCH
005031  3062		DCA	FUNCTN
005032  1410		TAD I	X10		/GET DP HARDWARE SWITCH
005033  3104		DCA	DPUSED
005034  1410		TAD I	X10		/CHECK FOR CROSSED VERSIONS
005035  1004		TAD	VERS
005036  7640		SZA CLA
005037  5772		JMP I	(VERROR		/VERSION ERROR
005040  7360		STA STL			/V3C
005041  1011	DCLOOP,	TAD	X11		/V3C THIS ADD CLEARS THE LINK
005042  3011		DCA	X11		/V3C
005043  1011		TAD	X11
005044  1371		TAD	(-STACK1
005045  7620		SNL CLA
005046  5260		JMP	PSN		/GO DO STMT NUMBERS
005047  1411		TAD I	X11		/GET DO LOOP ENDING STMT NUMBER
005050  7001		IAC
005051  3010		DCA	X10
005052  6211		CDF	10
005053  1370		TAD	(0416		/DN  DO END MISSING
005054  4767' 		JMS	NPRNT		/GO PRINT THE MESSAGE
						/AND THE NUMBER
005055  6201		CDF
005056  7146		CLL CMA RTL
005057  5241		JMP	DCLOOP		/V3C BACK UP 2
005060  1366	PSN,	TAD	(SNLIST		/PROCESS STMT NUMBERS
005061  6211		CDF	10
005062  3020	SNCLUP,	DCA	ENTRY		/SAVE NEW ENTRY ADDR
005063  1420		TAD I	ENTRY		/GET ADDR OF NEXT ENTRY

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 51-1

005064  7450		SNA
005065  5303		JMP	SNDONE		/NO MORE STMT NUMBERS
005066  7001		IAC
005067  3024		DCA	TEMP		/ADDR OF TYPE WORD
005070  1424		TAD I	TEMP		/WAS STMT NUMBER DEFINED?
005071  7710		SPA CLA
005072  5277		JMP	SNDEFN		/YES
005073  1024		TAD	TEMP
005074  3010		DCA	X10
005075  1365		TAD	(2523		/PRINT US MESSAGE
005076  4767' 		JMS	NPRNT
005077  1364	SNDEFN,	TAD	(0110		/SET TYPE WORD
005100  3424		DCA I	TEMP
005101  1420		TAD I	ENTRY		/PROCEED
005102  5262		JMP	SNCLUP
005103  6201	SNDONE,	CDF
005104  4763	FIXELP,	JMS I	(TYPRTN
005105  6447		NEGSLV		/FIX UP NEGATIVE EQUIVALENCE OFFSETS
005106  7126		CLL CML RTL		/CHECK FOR BLOCK DATA
005107  1062		TAD	FUNCTN		/(FUNCTN=-2)
005110  7650		SNA CLA
005111  5321		JMP	BDSTUF		/IT IS
005112  4763		JMS I	(TYPRTN		/DO IMPLICIT TYPING
005113  7000		IMPLCT
005114  4763		JMS I	(TYPRTN		/REMOVE SUB ARGS FROM LIST
005115  5131		SUBARG
005116  4763		JMS I	(TYPRTN		/EXTERNALS
005117  7056		EXTRNL
005120  5762		JMP I	(PROLG1		/MORE PROLOG
005121  1761	BDSTUF,	TAD I	(BDSWIT		/SET UP SWITCH
005122  3760		DCA I	(PROLG2
005123  1357		TAD	(END2		/ALTER END CODE
005124  6211		CDF 10
005125  3756		DCA I	(XEND
005126  6201		CDF 0
005127  3755' 		DCA	NODBUG		/NO ISN'S
005130  5754		JMP I	(HOLDUN		/DO SOME STUFF
005131  0000	SUBARG,	0			/REMOVE ARGS FROM ST
005132  1423		TAD I	TYPE
005133  0141		AND	Q20		/CHECK ARG BIT
005134  7650		SNA CLA
005135  5731		JMP I	SUBARG
005136  4340		JMS	UNHOOK
005137  5753' 		JMP	TFUDGE

005140  0000	UNHOOK,	0
005141  1420		TAD I	ENTRY
005142  3421		DCA I	OENTRY
005143  1022		TAD	BUCKET
005144  3420		DCA I	ENTRY
005145  5740		JMP I	UNHOOK

005153  7414
005154  5501
005155  6133

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 51-2

005156  6604
005157  4267
005160  5600
005161  5615
005162  5200
005163  7400
005164  0110
005165  2523
005166  0062
005167  6434
005170  0416
005171  3100
005172  0361
005173  0563
005174  0544
005175  7557
005176  0627
005177  0611
	5200		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 52

		/ GENERATE ARGUMENT STORAGE

005200  4777	PROLG1,	JMS I	(INS2		/	%JA	#ST
005201  3657		JA;XST
005202  6715
005203  4776		JMS I	(INS		/#XR,	%ORG	.+10
005204  6707		XXR;ORG;DP8
005205  2161
005206  1166
005207  4524		JMS I	QOPCDE		/	%TEXT	#NAMEXX#
005210  6742		TEXTX
005211  1054		TAD	PLUS
005212  4562		JMS I	QOCHAR
005213  6211		CDF	10
005214  1061		TAD	PROGNM
005215  4543		JMS I	QOUTNAM
005216  4775		JMS I	(FILL		/FILL WITH BLANKS
005217  1054		TAD	PLUS
005220  4562		JMS I	QOCHAR
005221  2061		ISZ	PROGNM
005222  4535		JMS I	QCRLF
005223  4776		JMS I	(INS		/#RET,	%SETX	#XR
005224  6704		XRET;SETX;XXR
005225  6734
005226  6707
005227  4777		JMS I	(INS2		/	%SETB	#BASE
005230  6737		SETB;XBASE
005231  3600
005232  4777		JMS I	(INS2		/	%JA	.+3
005233  3657		JA
005234  6751	XDP3,	DP3
005235  4776		JMS I	(INS		/#BASE,	%ORG	.+6
005236  3600		XBASE;ORG;DP6
005237  2161
005240  6753
005241  1063		TAD	ARGLST		/ANY ARGS ?
005242  7450		SNA
005243  5327		JMP	NOARGS		/NO, SKIP THIS STUFF
005244  3010		DCA	X10		/SAVE POINTER TO ARG LIST
005245  6211		CDF	10		/HOW MANY ?
005246  1463		TAD I	ARGLST
005247  7041		CIA
005250  3050		DCA	NARGS		/THIS MANY
005251  3025		DCA	TEMP2		/ARRAY ARG COUNTER
005252  4331	ARGLP1,	JMS	PLSUB1		/OUTPUT DEFS FOR ARRAY
						/ARGS FIRST
005253  7650		SNA CLA			/SINCE THEY MUST BE
						/INDIRECTABLY
005254  5256		JMP	NOARAY		/REFERENCABLE
005255  2025		ISZ	TEMP2
005256  2050	NOARAY,	ISZ	NARGS
005257  5252		JMP	ARGLP1		/PROCESS ENTIRE ARG LIST
005260  6211		CDF	10
005261  1463		TAD I	ARGLST		/GO THRU ARGS AGAIN
005262  7141		CIA CLL

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 52-1

005263  3050		DCA	NARGS
005264  1063		TAD	ARGLST
005265  3010		DCA	X10
005266  1025		TAD	TEMP2		/HOW MANY ARRAY ARGS ?
005267  1122		TAD	QM6
005270  7450		SNA
005271  5311		JMP	NISA		/NO INDIRECT LOCS LEFT
						/FOR SCALARS
005272  3025		DCA	TEMP2
005273  7630		SZL CLA
005274  5367		JMP	TOOMNY		/TOO MANY ARRAY ARGS (>6)
005275  4331	ARGLP2,	JMS	PLSUB1		/NOW OUTPUT AS MANY INDIRECT
005276  7640		SZA CLA			/SCALAR ARGS AS POSSIBLE
005277  5303		JMP	NOSCLR		/TO REDUCE THE PROLOG
005300  2025		ISZ	TEMP2		/ROOM FOR ANY MORE
005301  7410		SKP
005302  5307		JMP	NISA2		/NO, THE REST MUST MOVE VALUES
005303  2050	NOSCLR,	ISZ	NARGS		/LOOP SOME MORE
005304  5275		JMP	ARGLP2
005305  4774		JMS I	(PLSUB2		/OUTPUT SOME TRACEBACK STUFF
005306  5773		JMP I	(MORE		/GENERATE SCALAR,
						/LITERAL AND TEMP STORAGE
005307  4774	NISA2,	JMS I	(PLSUB2
005310  5323		JMP	NDLP3		/OUTPUT TRACEBACK
						/STUFF,THEN REST
005311  4774	NISA,	JMS I	(PLSUB2		/GET PAST THE TRACEBACK STUFF
005312  1371	ARGLP3,	TAD	XM3		/GENERATE ORG .+6 FOR D OR C
005313  3360		DCA	XNOP
005314  4331		JMS	PLSUB1		/OUTPUT REMAINING
						/SCALAR ARG SPACE
005315  7640		SZA CLA
005316  5323		JMP	NDLP3
005317  6211		CDF	10
005320  1424		TAD I	TEMP		/TURN OFF SUBARG BIT
005321  0372		AND	(7757		/(THATS THE
						/SECOND TIME I FIXED THIS)

005322  3424		DCA I	TEMP
005323  2050	NDLP3,	ISZ	NARGS
005324  5312		JMP	ARGLP3
005325  6201		CDF
005326  5773		JMP I	(MORE		/GENERATE SCALAR,
						/LITERAL AND TEMP STORAGE

005327  4774	NOARGS,	JMS I	(PLSUB2		/NO ARGS, OUTPUT TRACEBACK STUFF
005330  5773		JMP I	(MORE		/GENERATE SCALAR,
						/LITERAL AND TEMP STORAGE
005331  0000	PLSUB1,	0	
005332  6201		CDF
005333  1731		TAD I	PLSUB1		/GET THE SKIP
005334  3344		DCA	PLSKIP
005335  2331		ISZ	PLSUB1
005336  6211		CDF	10
005337  1410		TAD I	X10		/GET THE NEXT ARG
005340  7001		IAC

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 52-2

005341  3024		DCA	TEMP		/TYP WORD ADDR
005342  7132		CLL CML RTR		/2000=DIM BIT
005343  0424		AND I	TEMP
005344  0000	PLSKIP,	0			/ARRAYS OR SCALARS ?
005345  5731		JMP I	PLSUB1
005346  2331		ISZ	PLSUB1
005347  7240		CLA CMA
005350  1024		TAD	TEMP		/DEFINE THIS VAR
005351  4543		JMS I	QOUTNAM
005352  1053		TAD	COMMA
005353  4562		JMS I	QOCHAR
005354  6211		CDF	10
005355  1424		TAD I	TEMP		/LOOK AT THE TYPE
005356  6201		CDF
005357  4554		JMS I	QSKPIRL		/SKIP IF NOT C OR D
005360  7000	XNOP,	NOP			/THIS IS CHANGED LATER (MAYBE)
005361  1234		TAD	XDP3		/.+3 OR .+6
005362  3365		DCA	.+3
005363  4777		JMS I	(INS2		/ORG FOR THE VALUE
005364  2161		ORG;0
005365  0000
005366  5731		JMP I	PLSUB1
005367  1173	TOOMNY,	TAD	P0F1		/TOO MANY ARRAY ARGS
005370  5574		JMP I	P0F2
005371  7126	XM3,	CLL CML RTL
005372  7757
005373  5400
005374  6600
005375  6414
005376  6656
005377  6652
	5400		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 53

		/ SCALARS, LITERALS & TEMPS

		HOLLIT,
005400  4777	MORE,	JMS I	(TYPRTN		/OUTPUT SCALARS
005401  7263		SCALAR
005402  1376		TAD	(TEMPS		/OUTPUT FIRST FIVE TEMPS
005403  4775		JMS I	(OUTVAR
005404  1374		TAD	(LITRL2
005405  4537		JMS I	QOUTSYM
005406  1053		TAD	COMMA		/OUTPUT %LITRL,
005407  4562		JMS I	QOCHAR
005410  4773		JMS I	(DOLIST
005411  0060		INTLST
005412  0141	O141,	0141;-3			/OUTPUT INTEGER LITERALS
005413  7775
005414  4773		JMS I	(DOLIST
005415  0056		FPLIST
005416  0142		0142;-3			/OUTPUT FP LITERALS
005417  7775
005420  4773		JMS I	(DOLIST
005421  0057		DPLIST
005422  0144		0144;-6			/DOUBLE LITERALS
005423  7772
005424  4773		JMS I	(DOLIST
005425  0061		CMPLST
005426  0143		0143;-6			/COMPLEX LITERALS
005427  7772
005430  4777		JMS I	(TYPRTN		/OUTPUT DIMENSION FACTORS
005431  7015		DFLIT
005432  4772		JMS I	(ADFLIT		/OUTPUT ARG DIM FACTOR LITERALS
005433  1371		TAD	(HOLIST		/OUTPUT HOLLERITH LITERALS
005434  3020		DCA	ENTRY
005435  6211	HOLLUP,	CDF	10
005436  1420		TAD I	ENTRY
005437  7450		SNA
005440  5301		JMP	HOLDUN
005441  3020		DCA	ENTRY		/SAVE NEW ENTYR
005442  1020		TAD	ENTRY
005443  3010		DCA	X10
005444  1212		TAD	O141		/SET TYPE INFO
005445  3410		DCA I	X10
005446  1036		TAD	LITNUM
005447  3410		DCA I	X10		/SAVE LIT DISP
005450  7146		CLL CMA RTL		/SET UP COUNTER
005451  3200		DCA	HOLLIT		/BY THREES
005452  6211	HOLOOP,	CDF	10		/OUTPUT LITERAL AS OCTALS
005453  1410		TAD I	X10
005454  6201		CDF
005455  7450		SNA
005456  5274		JMP	HOFILL		/FILL OUT REST
005457  3037		DCA	ARG
005460  1037		TAD	ARG
005461  0370		AND	(77		/IS THIS LAST WORD?
005462  7640		SZA CLA
005463  5267		JMP	.+4		/NO

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 53-1

005464  1037		TAD	ARG		/YES, STICK IN
005465  1142		TAD	Q40		/BLANK
005466  5275		JMP	HOFILL+1	/AND OUTPUT IT
005467  1037		TAD	ARG		/OUTPUT CHAR PAIR
005470  4767' 		JMS	ONUM
005471  2200		ISZ	HOLLIT
005472  5252		JMP	HOLOOP
005473  5250		JMP	HOLOOP-2
005474  1366	HOFILL,	TAD	(4040		/FILL WITH BLANKS
005475  4767' 		JMS	ONUM
005476  2200		ISZ	HOLLIT
005477  5274		JMP	HOFILL
005500  5235		JMP	HOLLUP		/DO NEXT HOLLERITH LITERAL
005501  6201	HOLDUN,	CDF
005502  4777		JMS I	(TYPRTN		/DO ARRAYS
005503  6400		ARRAYS
005504  4777		JMS I	(TYPRTN		/REMOVE COMMON VARS FROM S.T.
005505  7355		COMVAR
005506  4536		JMS I	QOTAB
005507  1365		TAD	(XLBLE		/#LBL=.
005510  4537		JMS I	QOUTSYM
005511  4535		JMS I	QCRLF
005512  6211		CDF	10		/LOOK AT THE BLANK COMMON LIST
005513  1764		TAD I	(ONEI+2		/MAKE TRUE=INTEGER ONE
005514  3763		DCA I	(TRUE+2
005515  1762		TAD I	(BLNKCN+1
005516  6201		CDF
005517  7450		SNA
005520  5347		JMP	NOBC		/NO BLANK COMMON
005521  3023		DCA	TYPE		/POINTER TO VARIABLE LIST
005522  4523		JMS I	QOPCOD
005523  7367		COMMON
005524  4535		JMS I	QCRLF
005525  6211		CDF	10
005526  1023	BCLOOP,	TAD	TYPE		/PROCESS THIS HUNK OF
						/BLANK COMMON
005527  3010		DCA	X10
005530  1410		TAD I	X10
005531  7450		SNA
005532  5342		JMP	NXTBC		/EMPTY HUNK
005533  7041		CIA			/SIZE OF HUNK
005534  3024		DCA	TEMP
005535  1410		TAD I	X10		/OUTPUT HUNK
005536  4775		JMS I	(OUTVAR
005537  6211		CDF	10
005540  2024		ISZ	TEMP
005541  5335		JMP	.-4
005542  1423	NXTBC,	TAD I	TYPE		/ADDR OF NEXT HUNK
005543  7450		SNA
005544  5347		JMP	NOBC		/THAT WAS THE LAST HUNK
005545  3023		DCA	TYPE
005546  5326		JMP	BCLOOP		/DO NEXT HUNK
005547  6201	NOBC,	CDF
005550  4777		JMS I	(TYPRTN		/DO NAMED COMMONS
005551  7433		COMNAM

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 53-2

005552  4777		JMS I	(TYPRTN		/NOW EQUIVALENCES
005553  7107		EQUIVS
005554  4761' 		JMS	INS2
005555  2161		ORG;XLBL		/%ORG #LBL
005556  6773
005557  5760		JMP I	(PROLG2		/COMPLETE PROLOG
005560  5600
005561  6652
005562  0022
005563  0104
005564  0065
005565  6765
005566  4040
005567  6156
005570  0077
005571  0055
005572  7477
005573  7274
005574  7364
005575  7203
005576  7346
005577  7400
	5600		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 54

		/ ARGUMENT PICKUP GENERATOR

005600  1062	PROLG2,	TAD	FUNCTN		/SECOND PART OF PROLOG
005601  7640		SZA CLA
005602  5216		JMP	DORETN		/NOT A MAIN PROG
005603  4777		JMS I	(INS		/#ST,	BASE	#BASE
005604  6715		XST;BASE;XBASE
005605  7200
005606  3600
005607  4776		JMS I	(INS2		/	SETB	#BASE
005610  6737		SETB;XBASE
005611  3600
005612  4776		JMS I	(INS2		/	SETX	#XR
005613  6734		SETX;XXR
005614  6707
005615  5775	BDSWIT,	JMP I	(FINIST		/GO GET OVERLAY
005616  4777	DORETN,	JMS I	(INS		/#RTN,	BASE	#BASE
005617  3640		XRTN;BASE;XBASE
005620  7200
005621  3600
005622  1063		TAD	ARGLST		/ANY ARGS ?
005623  7450		SNA
005624  5316		JMP	JAGOBK		/NO
005625  3010		DCA	X10		/POINTER TO THE LIST
005626  6211		CDF	10
005627  1463		TAD I	ARGLST		/NUMBER OF ARGS
005630  7041		CIA
005631  3050		DCA	NARGS
005632  3025		DCA	TEMP2		/ZERO ARG COUNTER
005633  6201		CDF
005634  1050		TAD	NARGS		/WILL WE RESTORE ANY ?
005635  1374		TAD	(6
005636  7700		SMA CLA
005637  5316		JMP	JAGOBK		/NO
005640  4776		JMS I	(INS2		/	FLDA	#ARGS
005641  1012		FLDA;XARGS
005642  5764
005643  4776		JMS I	(INS2		/	FSTA	#BASE
005644  1567		FSTA;XBASE
005645  3600
005646  6211	RSLOOP,	CDF	10
005647  1410		TAD I	X10		/GET NEXT ARG
005650  7001		IAC
005651  3024		DCA	TEMP		/ADDR OF TYPE WORD
005652  2025		ISZ	TEMP2		/INCR COUNT
005653  1424		TAD I	TEMP		/IS IT A VALUE TRANSMISSION ?
005654  0141		AND	Q20
005655  6201		CDF
005656  7640		SZA CLA
005657  5312		JMP	NOREST		/NO, DON'T RESTORE IT
005660  4524		JMS I	QOPCDE		/	%LDX	XXXX,1
005661  3622		LDX
005662  1025		TAD	TEMP2
005663  4516		JMS I	QONUMBR
005664  1373		TAD	(C1

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 54-1

005665  4537		JMS I	QOUTSYM
005666  4535		JMS I	QCRLF
005667  4521		JMS I	QGENCOD		/STARTD
005670  5035		SD-1
005671  4776		JMS I	(INS2		/GET POINTER TO ARG
005672  6757		FLDAI;XBASC1
005673  6745
005674  4776		JMS I	(INS2		/AND SAVE IN #BASE+3
005675  1567		FSTA;XBASP3
005676  3603
005677  4351		JMS	STFORE		/INTO CORRECT MODE
005700  4524		JMS I	QOPCDE		/FLDA VAR
005701  1012		FLDA
005702  7040		CMA
005703  1024		TAD	TEMP
005704  6211		CDF	10
005705  4543		JMS I	QOUTNAM
005706  4535		JMS I	QCRLF
005707  4776		JMS I	(INS2		/	FSTA%	#BASE+3
005710  6762		FSTAI;XBASP3
005711  3603
005712  2050	NOREST,	ISZ	NARGS
005713  5246		JMP	RSLOOP
005714  4521		JMS I	QGENCOD		/MAKE SURE WE'RE IN F MODE
005715  5043	QSFM1,	SF-1
005716  1062	JAGOBK,	TAD	FUNCTN		/WHAT WAS THIS ?
005717  7710		SPA CLA
005720  5332		JMP	NOFVAL		/NOT A FUNCTION
005721  6211		CDF	10		/GET TYPE
005722  1461		TAD I	PROGNM
005723  0126		AND	Q17
005724  1372		TAD	(FVAL-1		/PLUS TABLE ADDRESS
005725  3331		DCA	GVSKEL		/GIVES POINTER TO
						/SKELETON ADDRESS
005726  1731		TAD I	GVSKEL		/GET SKELETON ADDRESS
005727  3331		DCA	GVSKEL
005730  4521		JMS I	QGENCOD		/PICK UP FUNCTION VALUE
005731  0000	GVSKEL,	0
005732  4776	NOFVAL,	JMS I	(INS2		/	JA	#GOBAK
005733  3657		JA;XGOBAK
005734  6711
005735  4777		JMS I	(INS		/#ST,	%STARTD
005736  6715		XST;STARTD;0
005737  3147
005740  0000
005741  4536		JMS I	QOTAB
005742  1371		TAD	(210		/	%FLDA'	10
005743  4516		JMS I	QONUMBR
005744  4535		JMS I	QCRLF
005745  4776		JMS I	(INS2		/	%FSTA	#GOBAK,0
005746  1567		FSTA;XGOBC0
005747  6717
005750  5770		JMP I	(MORPLG

005751  0000	STFORE,	0			/START F OR E

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 54-2

005752  6211		CDF	10
005753  1424		TAD I	TEMP		/GET TYPE
005754  6201		CDF
005755  4554		JMS I	QSKPIRL		/SKIP ON I R OR L
005756  1367		TAD	(SE-SF		/SE
005757  1315		TAD	QSFM1		/SF
005760  3362		DCA	.+2
005761  4521		JMS I	QGENCOD
005762  0000		0
005763  5751		JMP I	STFORE		/DON'T FORGET TO
						/RETURN DUMMY
005764  4301	XARGS,	TEXT	'#ARGS'
005765  2207
005766  2300
005767  7775
005770  6000
005771  0210
005772  5116
005773  6771
005774  0006
005775  6120
005776  6652
005777  6656
	6000		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 55

		/ ENTRY AND EXIT CODE

006000  4536	MORPLG,	JMS I	QOTAB
006001  1145		TAD	Q200		/	FLDA'	0
006002  4516		JMS I	QONUMBR
006003  4535		JMS I	QCRLF
006004  4777		JMS I	(INS2		/	%SETX	#XR
006005  6734		SETX;XXR
006006  6707
006007  4777		JMS I	(INS2		/	%SETB	#BASE
006010  6737		SETB;XBASE
006011  3600
006012  1063		TAD	ARGLST		/ANY ARGS ?
006013  7450		SNA
006014  5776		JMP I	(ENDPLG		/NO, JUST STARTF
006015  3037		DCA	ARG		/SAVE POINTER TO THEM
006016  4777		JMS I	(INS2		/	%LDX	0,1
006017  3622		LDX;ZC1
006020  6755
006021  4777		JMS I	(INS2		/	%FSTA	#BASE
006022  1567		FSTA;XBASE
006023  3600
006024  4777		JMS I	(INS2		/	%FSTA	#ARGS
006025  1567		FSTA;XARGS
006026  5764
006027  6211		CDF	10
006030  1463		TAD I	ARGLST		/NUMBER OF ARGS
006031  7041		CIA
006032  3050		DCA	NARGS
006033  6201	GALOOP,	CDF
006034  4777		JMS I	(INS2		/	%FLDA I	#BASE,1+
006035  6757		FLDAI;XBAC1P
006036  1752
006037  3023		DCA	TYPE		/CLEAR THE SD SWITCH
006040  6211		CDF	10
006041  2037		ISZ	ARG		/GET TO NEXT ARG
006042  1437		TAD I	ARG		/LOOK AT ITS TYPE WORD
006043  7001		IAC
006044  3024		DCA	TEMP
006045  7132		CLL CML RTR
006046  0424		AND I	TEMP		/WAS IT DIMENSIONED ?
006047  7650		SNA CLA
006050  5775		JMP I	(TSTABT		/NO, SEE IF ITS VALUE
006051  7040		CMA
006052  1024		TAD	TEMP		/GET ADDR OF DIM INFO
006053  4551		JMS I	QGETSS
006054  7001		IAC			/ADDR OF SIZE
006055  3025		DCA	TEMP2
006056  1425		TAD I	TEMP2
006057  2025		ISZ	TEMP2
006060  2025		ISZ	TEMP2
006061  7650		SNA CLA
006062  5277		JMP	OUFSTA+1	/IT HAS A VARIABLE DIMENSION
006063  1425		TAD I	TEMP2		/GET MAGIC NUMBER LIT DISP
006064  3025		DCA	TEMP2

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 55-1

006065  6201		CDF
006066  4524		JMS I	QOPCDE		/	%FSUB	#LIT+XXXX
006067  1015		FSUB
006070  1144		TAD	QLITRL
006071  4537		JMS I	QOUTSYM
006072  1025		TAD	TEMP2
006073  4516		JMS I	QONUMBR
006074  4535		JMS I	QCRLF
006075  6211		CDF	10
006076  3437	OUFSTA,	DCA I	ARG		/IT ISN'T VARIABLY DIMENSIONED
006077  6201		CDF
006100  4524		JMS I	QOPCDE		/	%FSTA	ARGN
006101  1567		FSTA
006102  6211		CDF	10
006103  7040		CMA
006104  1024		TAD	TEMP
006105  4543		JMS I	QOUTNAM
006106  4535		JMS I	QCRLF
006107  2050		ISZ	NARGS
006110  7410		SKP
006111  5776		JMP I	(ENDPLG		/END OF PROLOG
006112  1023		TAD	TYPE		/DID WE LEAVE D MODE
006113  7650		SNA CLA
006114  5233		JMP	GALOOP		/NO
006115  4521		JMS I	QGENCOD		/YES, OUTPUT AN %SD
006116  5035		SD-1
006117  5233		JMP	GALOOP
006120  6211	FINIST,	CDF	10
006121  1062		TAD	FUNCTN		/WAS THIS A FUNCTION ?
006122  7750		SPA SNA CLA
006123  5327		JMP	.+4		/NO, SKIP THIS
006124  1461		TAD I	PROGNM		/YES, TURN OFF EXT BIT
006125  0374		AND	(6777		/ALLOWING STORING IN FUN NAME
006126  3461		DCA I	PROGNM
006127  1373		TAD	(2200		/CHECK /N /Q
006130  0772		AND I	(7644
006131  6201		CDF
006132  7650		SNA CLA
006133  3771	NODBUG,	DCA I	(DEBUG		/IF NOT SET, PUT ISN'S
006134  6211		CDF	10		/INTO CODE
006135  1772		TAD I	(7644		/IS /Q SET ?
006136  6201		CDF
006137  0370		AND	(0200
006140  7640		SZA CLA
006141  2767		ISZ I	(OPTMYZ		/MAKE A CLA IAC FROM A CLA
006142  6211	GFNAME,	CDF	10
006143  1753		TAD I	FNAME		/MOVE FILE NAME
006144  6201		CDF
006145  3754		DCA I	NAMEF		/INTO PAGE
006146  2353		ISZ	FNAME
006147  2354		ISZ	NAMEF
006150  2355		ISZ	NFCNT
006151  5342		JMP	GFNAME
006152  5766		JMP I	(RDOVLY		/GO WHERE ?
						/CALIFORNIA OF COURSE!!!!

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 55-2

006153  7601	FNAME,	7601
006154  0072	NAMEF,	F1LNAM
006155  7774	NFCNT,	-4

006156  0000	ONUM,	0
006157  2036		ISZ	LITNUM		/BUMP LITERAL COUNTER
006160  3037		DCA	ARG
006161  4536		JMS I	QOTAB
006162  1037		TAD	ARG
006163  4516		JMS I	QONUMBR
006164  4535		JMS I	QCRLF
006165  5756		JMP I	ONUM
006166  7552
006167  2215
006170  0200
006171  2227
006172  7644
006173  2200
006174  6777
006175  6200
006176  6216
006177  6652
	6200		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 56

		/ ENTRY AND EXIT CODE

006200  1424	TSTABT,	TAD I	TEMP		/VALUE TRANSMISSION ?
006201  0141		AND	Q20
006202  7640		SZA CLA
006203  5777		JMP I	(OUFSTA		/NO
006204  6201		CDF
006205  4776		JMS I	(INS2		/	%FSTA	#BASE+3
006206  1567		FSTA;XBASP3
006207  3603
006210  4775		JMS I	(STFORE		/ENTER CORRECT MODE
006211  4776		JMS I	(INS2		/	%FLDA%	#BASE+3
006212  6757		FLDAI;XBASP3
006213  3603
006214  2023		ISZ	TYPE		/SET SWITCH
006215  5774		JMP I	(OUFSTA-1
006216  4521	ENDPLG,	JMS I	QGENCOD		/%SF
006217  5043		SF-1
006220  1063		TAD	ARGLST		/ANY VARIABLY
						/DIMENSIONED ARRAYS ?
006221  7450		SNA
006222  5773		JMP I	(FINIST		/NO ARGS AT ALL
006223  3010		DCA	X10
006224  6211		CDF	10
006225  1463		TAD I	ARGLST		/NUMBER OF ARGS
006226  7041		CIA
006227  3351		DCA	NSARGS
006230  6211	VDIMLP,	CDF	10
006231  1410		TAD I	X10		/GET NEXT ARG
006232  7450		SNA
006233  5333		JMP	NDVDIM		/NOT A VARIABLY
						/DIMENSIONED ARRAY
006234  3347		DCA	VDTEMP
006235  1347		TAD	VDTEMP		/GET ADDR OF DIMENSION INFO
006236  4551		JMS I	QGETSS
006237  3350		DCA	VDTMP2
006240  1750		TAD I	VDTMP2		/NUMBER OF DIMENSIONS
006241  7041		CIA
006242  3050		DCA	NARGS
006243  2350		ISZ	VDTMP2		/MOVE TO MAGIC NUMBER LITERAL
006244  2350		ISZ	VDTMP2
006245  2350		ISZ	VDTMP2
006246  1750		TAD I	VDTMP2		/GET IT
006247  6201		CDF
006250  3352		DCA	MNL		/SAVE MAGIC NUMBER LITERAL
006251  1372		TAD	(FLDA		/JUST LOAD FIRST DIM
006252  3361		DCA	MNOPC
006253  1050		TAD	NARGS		/GET ADDRESS
006254  7041		CIA			/OF THE LAST
006255  1350		TAD	VDTMP2		/DIMENSION
006256  3350		DCA	VDTMP2		/FOR THE SIZE GETTER
006257  5266		JMP	CMPMN3		/SKIP MULTIPLY FIRST TIME
006260  1371	CMPMN1,	TAD	(FMUL		/NEXT TIME USE A MULTIPLY
006261  3361		DCA	MNOPC
006262  4523		JMS I	QOPCOD		/NEXT SUBSCRIPT (ALWAYS (1.0)

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 56-1

006263  1007		FADD
006264  4525		JMS I	QOADDR		/NOW ADDRESS
006265  6370		(ONEI
006266  2050	CMPMN3,	ISZ	NARGS		/ANY MORE SS ?
006267  5337		JMP	CMPMN2		/YES
006270  2347		ISZ	VDTEMP		/GET TO TYPE
006271  6211		CDF	10
006272  1747		TAD I	VDTEMP
006273  6201		CDF
006274  4554		JMS I	QSKPIRL		/SKIP ON I R L
006275  1120		TAD	Q6M3		/YES
006276  1367		TAD	(THREE
006277  4356		JMS	LDAMUL		/3.02
006300  4776		JMS I	(INS2		/ALN 0
006301  3614		ALN;D0
006302  3564
006303  4524		JMS I	QOPCDE
006304  1567		FSTA
006305  1144		TAD	QLITRL		/SAVE IN THE MAGIC
						/NUMBER LITERAL
006306  4537		JMS I	QOUTSYM
006307  7240		CLA CMA
006310  1352		TAD	MNL
006311  4516		JMS I	QONUMBR
006312  4535		JMS I	QCRLF
006313  4776		JMS I	(INS2		/FNEG
006314  1572		FNEG;0
006315  0000
006316  4776		JMS I	(INS2		/ENTER D MODE
006317  3147		STARTD;0
006320  0000
006321  4524		JMS I	QOPCDE
006322  7166		FADDM			/NOW MODIFY THE POINTER
006323  7040		CMA
006324  1347		TAD	VDTEMP
006325  6211		CDF	10
006326  4543		JMS I	QOUTNAM
006327  4535		JMS I	QCRLF
006330  4776		JMS I	(INS2		/RETURN TO F MODE
006331  1134		STARTF;0
006332  0000
006333  2351	NDVDIM,	ISZ	NSARGS		/ANY MORE ARGS TO CHECK?
006334  5230		JMP	VDIMLP		/YES
006335  6201		CDF
006336  5773		JMP I	(FINIST
006337  7240	CMPMN2,	CLA CMA			/BACK UP THE POINTER
006340  1350		TAD	VDTMP2		/BY ONE
006341  3350		DCA	VDTMP2
006342  6211		CDF	10
006343  1750		TAD I	VDTMP2		/GET IT
006344  6201		CDF
006345  4356		JMS	LDAMUL		/3.02
006346  5260		JMP	CMPMN1		/LOOP
006347  0000	VDTEMP,	0
006350  0000	VDTMP2,	0

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 56-2

006351  0000	NSARGS,	0
006352  0000	MNL,	0
006353  5653	DP12,	TEXT	'.+14'
006354  6164
006355  0000
006356  0000	LDAMUL,	0			/3.02
006357  3365		DCA	MNADR
006360  4523		JMS I	QOPCOD
006361  0000	MNOPC,	0
006362  4525		JMS I	QOADDR
006363  6365		MNADR
006364  5756		JMP I	LDAMUL
006365  0000	MNADR,	0
006367  0070
006370  0063
006371  2353
006372  1012
006373  6120
006374  6075
006375  5751
006376  6652
006377  6076
	6400		PAGE
		/ RANDOM PROLOG STUFF

006400  0000	ARRAYS,	0			/OUTPUT ARRAYS
006401  1423		TAD I	TYPE
006402  0377		AND	(6220		/IS IT AN ARRAY
006403  7450		SNA
006404  5600		JMP I	ARRAYS
006405  0376		AND	(4220		/NOT COMMON, EQUIV OR ARG
006406  7640		SZA CLA
006407  5600		JMP I	ARRAYS
006410  4775		JMS I	(UNHOOK		/REMOVE FROM BUCKET
006411  1020		TAD	ENTRY		/OUTPUT VARIABLE
006412  4774		JMS I	(OUTVAR
006413  5773' 		JMP	TFUDGE-1
006414  0000	FILL,	0			/FILL SUB NAME WITH BLANKS
006415  7126		CLL CML RTL
006416  1061		TAD	PROGNM		/PROGNM+2
006417  7041		CIA			/-PROGNM-2
006420  1633		TAD I	XNAMP		/1,2,3
006421  1105		TAD	QM4		/-3,-2,-1
006422  3024		DCA	TEMP
006423  5230		JMP	.+5
006424  1372		TAD	(240		/TWO BLANKS FOR EACH WORD
006425  4562		JMS I	QOCHAR
006426  1372		TAD	(240
006427  4562		JMS I	QOCHAR
006430  2024		ISZ	TEMP		/MORE ?
006431  5224		JMP	.-5		/YES
006432  5614		JMP I	FILL
006433  0327	XNAMP,	NAMPTR
006434  0000	NPRNT,	0
006435  4565		JMS I	QTTYP2C

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 56-3

006436  4565		JMS I	QTTYP2C
006437  1410		TAD I	X10		/NOW NUMBER
006440  4565		JMS I	QTTYP2C
006441  1410		TAD I	X10
006442  4565		JMS I	QTTYP2C
006443  1410		TAD I	X10
006444  4565		JMS I	QTTYP2C
006445  4566		JMS I	QTTCRLF
006446  5634		JMP I	NPRNT

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 57

		/ROUTINE TO FIX UP NEGATIVE EQUIVALENCE OFFSETS

006447  0000	NEGSLV,	0
006450  1423		TAD I	TYPE
006451  0145		AND	Q200
006452  7650		SNA CLA		/IS VARIABLE A SLAVE?
006453  5647		JMP I	NEGSLV	/NO
006454  1023		TAD	TYPE
006455  3010		DCA	X10
006456  1410		TAD I	X10	/GET POINTER TO EQUIV BLOCK
006457  3010		DCA	X10
006460  7201		CLA IAC
006461  1410		TAD I	X10	/GET POINTER TO MASTER
006462  3354		DCA	OLDM	/TYPE WORD
006463  1410		TAD I	X10	/OFFSET FROM MASTER
006464  7160		CMA STL
006465  1410		TAD I	X10	/SUBTRACT FROM SLAVE OFFSET
006466  3356		DCA	SFUDGE	/SAVE IN CASE WE NEED IT
006467  1754		TAD I	OLDM	/IF MASTER IS IN COMMON FORGET THE NEXT TEST:
006470  7730		SZL SPA CLA	/IF MASTER OFFSET .LT. SLAVE OFFSET THEN
006471  5647		JMP I	NEGSLV	/SLAVE WILL ORIGIN BEFORE MASTER -
006472  1423		TAD I	TYPE	/THEREFORE THE SLAVE MUST BECOME THE MASTER
006473  0371		AND	(7577	/UNSLAVE THE SLAVE
006474  3423		DCA I	TYPE
006475  2023		ISZ	TYPE
006476  1423		TAD I	TYPE
006477  3030		DCA	TYPE1	/TYPE1 POINTS TO EQUIV BLOCK
006500  7201		CLA IAC
006501  1030		TAD	TYPE1
006502  3010		DCA	X10	/USE AUTO-XR TO CLEAR OFFSETS
006503  1020		TAD	ENTRY
006504  3355		DCA	NEWM
006505  1754		TAD I	OLDM	/GET OLD MASTER'S TYPE WD
006506  1145		TAD	Q200
006507  3754		DCA I	OLDM	/MAKE IT A SLAVE
006510  2354		ISZ	OLDM
006511  1430		TAD I	TYPE1	/GET POINTER TO SLAVE DIMENSION BLOCK
006512  3423		DCA I	TYPE	/PUT IT IN SYMTAB AS BEFITTING A NEW MASTER
006513  1754		TAD I	OLDM	/GET OLD MASTERS DIM PTR
006514  3430		DCA I	TYPE1	/PUT IT IN EQUIV BLOCK AS BEFITTING A NEW SLAVE
006515  1030		TAD	TYPE1	/NOW ASSOCIATE THE EQUIV BLOCK
006516  3754		DCA I	OLDM	/WITH THE NEW SLAVE
006517  3410		DCA I	X10	/AND MAKE BOTH OFFSETS 0
006520  3410		DCA I	X10	/("FIXSLV" WILL ADJUST IT - NOTE THE "MASTER"
006521  6201		CDF 0		/WD OF THE BLOCK STILL POINTS TO THE OLD MASTER)
006522  4770		JMS I	(TYPRTN	/** RECURSIVE CALL ** - ACTUALLY WE DON'T CARE
006523  6525		FIXSLV		/SINCE WE AREN'T RETURNING ANYWAY
006524  5767		JMP I	(FIXELP	/TRY AGAIN FROM SCRATCH

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 58

		/ROUTINE TO ADJUST ALL SLAVES OF THE OLD MASTER
		/TO BE SLAVES OF THE NEW MASTER

006525  0000	FIXSLV,	0		/THROUGHOUT
006526  1423		TAD I	TYPE
006527  0145		AND	Q200
006530  7650		SNA CLA		/IS IT A SLAVE?
006531  5725		JMP I	FIXSLV	/NO
006532  2023		ISZ	TYPE
006533  7201		CLA IAC
006534  1423		TAD I	TYPE
006535  3023		DCA	TYPE	/TYPE NOW POINTS TO THE EQUIV BLOCK
006536  7201		CLA IAC
006537  1423		TAD I	TYPE	/GET PTR TO THIS SLAVES MASTER (+1)
006540  7040		CMA
006541  1354		TAD	OLDM	/COMPARE MASTERS
006542  7640		SZA CLA
006543  5725		JMP I	FIXSLV	/NOT UNDER SAME MASTER - LEAVE
006544  1355		TAD	NEWM
006545  3423		DCA I	TYPE	/"MEET THE NEW BOSS.....
006546  2023		ISZ	TYPE	/ SAME AS THE OLD BOSS...."
006547  1423		TAD I	TYPE	/		(THE WHO)

006550  1356		TAD	SFUDGE	/ADD IN THE DIFFERENCE BETWEEN OLD AND NEW
006551  7001		IAC		/MASTERS TO THE MASTER OFFSET
006552  3423		DCA I	TYPE
006553  5725		JMP I	FIXSLV	/THE SLAVE IS NOW --  A SLAVE!

006554  0000	OLDM,	0
006555  0000	NEWM,	0
006556  0000	SFUDGE,	0
006567  5104
006570  7400
006571  7577
006572  0240
006573  7413
006574  7203
006575  5140
006576  4220
006577  6220
	6600		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 59

		/ ENTRY AND EXIT CODE

006600  0000	PLSUB2,	0			/DUMB SUBR FOR PROLOG
006601  6201		CDF
006602  4252		JMS	INS2		/	%ORG	#BASE+30
006603  2161		ORG;XBAP30
006604  6724
006605  4252		JMS	INS2		/	%FNOP
006606  6731		FNOP;0
006607  0000
006610  4252		JMS	INS2		/	%JA	#RET
006611  3657		JA;XRET
006612  6704
006613  4252		JMS	INS2		/	FNOP
006614  6731		FNOP;0
006615  0000
006616  4256		JMS	INS		/#GOBAK,ORG	.+2
006617  6711		XGOBAK;DBLZRO;0		/**TO INSURE IT'S 0
006620  6776
006621  0000
006622  1104		TAD	DPUSED		/WAS DOUBLE PRECISSION USED ?
006623  7650		SNA CLA
006624  5234		JMP	NDPUSD		/NO, NO NEED FOR TEMP
006625  4256		JMS	INS
006626  2167		XDPTMP;ORG;DP12		/#DPT,	ORG	.+12
006627  2161
006630  6353
006631  4252		JMS	INS2
006632  7163		DPCHK;0
006633  0000
006634  1062	NDPUSD,	TAD	FUNCTN		/FUNCTION OR SUBR ?
006635  7450		SNA
006636  5600		JMP I	PLSUB2		/ITS #MAIN, NO #VAL OR #ARGS
006637  7710		SPA CLA
006640  5245		JMP	.+5		/ITS A SUBROUTINE, NO #VAL
006641  4256		JMS	INS		/#VAL,	%ORG	.+6
006642  1002		XVAL;ORG;DP6
006643  2161
006644  6753
006645  4256		JMS	INS		/#ARGS,	%ORG	.+3
006646  5764		XARGS;ORG;DP3
006647  2161
006650  6751
006651  5600		JMP I	PLSUB2
006652  0000	INS2,	0			/	%OPCOD	ADDR
006653  1252		TAD	INS2		/COMMONIZE RETURNS
006654  3256		DCA	INS
006655  5264		JMP	INS3
006656  0000	INS,	0			/TAG,	%OPCOD	ADDR
006657  1656		TAD I	INS		/GET TAG FIELD
006660  2256		ISZ	INS
006661  4537		JMS I	QOUTSYM		/OUTPUT IT
006662  1053		TAD	COMMA
006663  4562		JMS I	QOCHAR
006664  4536	INS3,	JMS I	QOTAB

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 59-1

006665  1656		TAD I	INS		/GET OPCODE
006666  2256		ISZ	INS
006667  4537		JMS I	QOUTSYM
006670  1656		TAD I	INS		/GET ADDR
006671  7650		SNA CLA
006672  5276		JMP	.+4		/NO ADDRESS
006673  4536		JMS I	QOTAB
006674  1656		TAD I	INS
006675  4537		JMS I	QOUTSYM
006676  2256		ISZ	INS
006677  4535		JMS I	QCRLF
006700  5656		JMP I	INS
006701  2305	SECT,	TEXT	'SECT'
006702  0324
006703  0000
006704  4322	XRET,	TEXT	'#RET'
006705  0524
006706  0000
006707  4330	XXR,	TEXT	'#XR'
006710  2200
006711  4307	XGOBAK,	TEXT	'#GOBAK'
006712  1702
006713  0113
006714  0000
006715  4323	XST,	TEXT	'#ST'
006716  2400
006717  4307	XGOBC0,	TEXT	'#GOBAK,0'
006720  1702
006721  0113
006722  5460
006723  0000
006724  4302	XBAP30,	TEXT	'#BASE+30'
006725  0123
006726  0553
006727  6360
006730  0000
006731  0616	FNOP,	TEXT	'FNOP'
006732  1720
006733  0000
006734  2305	SETX,	TEXT	'SETX'
006735  2430
006736  0000
006737  2305	SETB,	TEXT	'SETB'
006740  2402
006741  0000
006742  2405	TEXTX,	TEXT	'TEXT'
006743  3024
006744  0000
006745  4302	XBASC1,	TEXT	'#BASE,1'
006746  0123
006747  0554
006750  6100
006751  5653	DP3,	TEXT	'.+3'
006752  6300
006753  5653	DP6,	TEXT	'.+6'

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 59-2

006754  6600
006755  6054	ZC1,	TEXT	'0,1'
006756  6100
006757  0614	FLDAI,	TEXT	'FLDA%'
006760  0401
006761  4500
006762  0623	FSTAI,	TEXT	'FSTA%'
006763  2401
006764  4500
006765  4314	XLBLE,	TEXT	'#LBL=.'
006766  0214
006767  7556
006770  0000
006771  5461	C1,	TEXT	',1'
006772  0000
006773  4314	XLBL,	TEXT	'#LBL'		/STACK-5 CAN'T BE 0
006774  0214
006775  0000
006776  6073	DBLZRO,	TEXT	'0;0'
006777  6000
	7000		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 60

		/ SYMBOL TABLE PROCESSING ROUTINES

007000  0000	IMPLCT,	0			/DO IMPLICIT TYPING
007001  1423		TAD I	TYPE
007002  0215		AND	O100		/WAS IT EXPLICITLY TYPED
007003  7640		SZA CLA
007004  5600		JMP I	IMPLCT		/YES
007005  1022		TAD	BUCKET		/IS IT INTEGER ?
007006  1301		TAD	M317
007007  7100		CLL
007010  1256		TAD	M006
007011  7620		SNL CLA
007012  2423		ISZ I	TYPE		/TYPE IT REAL
007013  2423		ISZ I	TYPE		/TYP IT INTEGER
007014  5600		JMP I	IMPLCT
		O100,
007015  0100	DFLIT,	100			/GENERATE FACTORS FOR CALLS
007016  7132		CLL CML RTR		/DIMENSIONED ?
007017  0423		AND I	TYPE
007020  7650		SNA CLA
007021  5615		JMP I	DFLIT		/NO
007022  1423		TAD I	TYPE
007023  3024		DCA	TEMP	/SET PROPER WDS/ENTRY FOR VMC
007024  1020		TAD	ENTRY		/GET ADDR OF MAGIC NUMBER
007025  4551		JMS I	QGETSS
007026  1377		TAD	(2
007027  3023		DCA	TYPE
007030  1420		TAD I	ENTRY		/SAVE LINK
007031  3256		DCA	DFTEMP
007032  1022		TAD	BUCKET		/FIX NAME
007033  3420		DCA I	ENTRY
007034  1423		TAD I	TYPE		/GET MAGIC NUMBER
007035  3025		DCA	TEMP2
007036  2023		ISZ	TYPE
007037  6201		CDF
007040  4776		JMS I	(ONUM		/OUTPUT A ZERO WORD
007041  4524		JMS I	QOPCDE
007042  3657		JA
007043  1020		TAD	ENTRY		/OUTPUT VAR MINUS CONST
007044  4775		JMS I	(VMC
007045  4535		JMS I	QCRLF		/END LITERAL
007046  6211		CDF	10
007047  1036		TAD	LITNUM		/SAVE NUMBER IN DIM INFO
007050  3423		DCA I	TYPE
007051  2036		ISZ	LITNUM		/THEN BY 2 MORE
007052  2036		ISZ	LITNUM
007053  1256		TAD	DFTEMP		/RESTORE ENTRY
007054  3420		DCA I	ENTRY
007055  5615		JMP I	DFLIT
		M006,
		DFTEMP,
007056  0006	EXTRNL,	6			/DO EXTERNALS
007057  1423		TAD I	TYPE
007060  0307		AND	O1000		/IS IT EXT ?
007061  7650		SNA CLA

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 60-1

007062  5656		JMP I	EXTRNL
007063  4774		JMS I	(UNHOOK		/REMOVE THIS SYMBOL
007064  1061		TAD	PROGNM		/IS IT THE PROG NAME ?
007065  7041		CIA
007066  1020		TAD	ENTRY
007067  7640		SZA CLA
007070  5275		JMP	.+5		/NO, OUTPUT EXTERN
007071  1062		TAD	FUNCTN		/IS IT A MAIN PROG ?
007072  7650		SNA CLA
007073  5773' 		JMP	TFUDGE-1	/YES, NO SECT
007074  1372		TAD	(SECT-EXTERN	/NOT MAIN, OUTPUT SECT
007075  1351		TAD	XTRN
007076  3301		DCA	M317
007077  6201		CDF
007100  4524		JMS I	QOPCDE
007101  7461	M317,	-317
007102  1020		TAD	ENTRY		/NOW VAR NAME
007103  6211		CDF	10
007104  4543		JMS I	QOUTNAM
007105  4535		JMS I	QCRLF
007106  5773' 		JMP	TFUDGE-1
		O1000,
007107  1000	EQUIVS,	1000			/OUTPUT EQUIVALENCES
007110  1423		TAD I	TYPE
007111  0145		AND	Q200		/IS THIS A SLAVE ?
007112  7650		SNA CLA
007113  5707		JMP I	EQUIVS		/NO
007114  4774		JMS I	(UNHOOK		/UNHOOK THE ENTRY
007115  1423		TAD I	TYPE		/SAVE THE TYPE WORD
007116  3030		DCA	TYPE1
007117  2023		ISZ	TYPE		/POINT TO EQUIVALENCE BLOCK
007120  1423		TAD I	TYPE
007121  3010		DCA	X10
007122  6201		CDF
007123  4524		JMS I	QOPCDE		/OUTPUT ORG
007124  2161		ORG
007125  6211		CDF	10
007126  1410		TAD I	X10		/MASTER NAME
007127  3011		DCA	X11		/SAVE IT
007130  1011		TAD	X11
007131  4543		JMS I	QOUTNAM		/OUTPUT IT
007132  1054		TAD	PLUS		/+
007133  4562		JMS I	QOCHAR
007134  6211		CDF	10
007135  1411		TAD I	X11		/MASTER SS
007136  4351		JMS	SUBRX
007137  1146		TAD	Q255		/MINUS
007140  4562		JMS I	QOCHAR
007141  6211		CDF	10
007142  1030		TAD	TYPE1		/SLAVE SS
007143  4351		JMS	SUBRX
007144  4535		JMS I	QCRLF		/EOL
007145  6211		CDF	10
007146  1020		TAD	ENTRY		/NOW OUTPUT SLAVE
007147  4771		JMS I	(OUTVAR

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 60-2

007150  5773' 		JMP	TFUDGE-1
		XTRN,
007151  2142	SUBRX,	EXTERN
007152  4554		JMS I	QSKPIRL		/SIZE OF THING
007153  1147		TAD	Q3
007154  1147		TAD	Q3		/TIMES 3 OR 6
007155  3042		DCA	MQ
007156  1410		TAD I	X10
007157  6201		CDF
007160  4557		JMS I	QMUL12		/MAKE THE PRODUCT
007161  4563		JMS I	QNUMBRO		/OUT WITH IT
007162  5751		JMP I	SUBRX
007163  0420	DPCHK,	TEXT	'DPCHK'
007164  0310
007165  1300
007166  0601	FADDM,	TEXT	'FADDM'
007167  0404
007170  1500
007171  7203
007172  4537
007173  7413
007174  5140
007175  2064
007176  6156
007177  0002
	7200		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 61

		/ SYMBOL TABLE PROCESSING ROUTINES

007200  0201	BASE,	TEXT	'BASE'
007201  2305
007202  0000
007203  0000	OUTVAR,	0			/ALLOCATE STORAGE FOR A VARIABLE
007204  3274		DCA	VARADR
007205  6214		RDF			/GET FIELD OF VAR
007206  1223		TAD	X6201
007207  3221		DCA	OVFLD1
007210  1221		TAD	OVFLD1
007211  3231		DCA	OVFLD2
007212  1274		TAD	VARADR		/OUTPUT		NAME,
007213  4543		JMS I	QOUTNAM
007214  1053		TAD	COMMA
007215  4562		JMS I	QOCHAR
007216  4524		JMS I	QOPCDE		/OUTPUT ORG
007217  2161		ORG
007220  2274		ISZ	VARADR		/POINT TO TYPE WROD
007221  0000	OVFLD1,	0
007222  1674		TAD I	VARADR		/GET TYPE
007223  6201	X6201,	CDF
007224  4554		JMS I	QSKPIRL
007225  1147		TAD	Q3		/PER ENTRY
007226  1147		TAD	Q3		/INTEGER, REAL, AND
						/LOGICAL  3WORDS
007227  3042		DCA	MQ
007230  3040		DCA	AC
007231  0000	OVFLD2,	0
007232  7132		CLL CML RTR		/CHECK DIM BIT
007233  0674		AND I	VARADR
007234  7650		SNA CLA
007235  5253		JMP	PLSDOT		/NOT DIMENSIONED
007236  1674		TAD I	VARADR		/LOOK AT TYPE
007237  2274		ISZ	VARADR		/MOVE TO EQ DIM POINTER
007240  0145		AND	Q200		/EQUIVALENCED ?
007241  7650		SNA CLA
007242  5245		JMP	.+3		/NO
007243  1674		TAD I	VARADR		/YES, SKIP EQUIV INFO
007244  3274		DCA	VARADR
007245  1674		TAD I	VARADR		/ADDRESS OF DIM INFO
007246  7001		IAC
007247  3274		DCA	VARADR		/ADDRESS OF SIZE
007250  1674		TAD I	VARADR		/GET TOTAL SIZE
007251  6201		CDF
007252  4557		JMS I	QMUL12
007253  6201	PLSDOT,	CDF
007254  1152		TAD	Q256
007255  4562		JMS I	QOCHAR
007256  1054		TAD	PLUS
007257  4562		JMS I	QOCHAR
007260  4563		JMS I	QNUMBRO
007261  4535		JMS I	QCRLF
007262  5603		JMP I	OUTVAR
007263  0000	SCALAR,	0			/OUTPUT SCALARS

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 61-1

007264  1423		TAD I	TYPE		/IS IT A SCALAR ?
007265  0377		AND	(7630		/COM, DIM, EXT, ASF,
						/EQV, ARG, COMMONNAME
007266  7640		SZA CLA
007267  5663		JMP I	SCALAR		/NO
007270  4776		JMS I	(UNHOOK		/DELETE THIS FROM THE LIST
007271  1020		TAD	ENTRY		/OUTPUT THIS VARIABLE
007272  4203		JMS	OUTVAR
007273  5775' 		JMP	TFUDGE-1
		VARADR,
007274  0000	DOLIST,	0			/PROCESS A LITERAL LIST
007275  1674		TAD I	DOLIST		/GET LIST START
007276  3020		DCA	ENTRY
007277  2274		ISZ	DOLIST
007300  1674		TAD I	DOLIST
007301  3023		DCA	TYPE		/GET TYPE BITS
007302  2274		ISZ	DOLIST
007303  1674		TAD I	DOLIST
007304  2274		ISZ	DOLIST
007305  3355		DCA	LSIZE		/GET LITERAL SIZE
007306  6211		CDF	10
007307  1420	DLLOOP,	TAD I	ENTRY		/GET NEXT ENTRY
007310  7450		SNA
007311  5344		JMP	DLRETN		/NO MORE
007312  3020		DCA	ENTRY
007313  1020		TAD	ENTRY
007314  3010		DCA	X10		/ADDRESS OF TYPE WORD
007315  1023		TAD	TYPE		/PUT IN TYPE
007316  3410		DCA I	X10
007317  1010		TAD	X10		/SAVE THIS ADDR
007320  3011		DCA	X11
007321  1355		TAD	LSIZE		/SIZE OF LITERAL
007322  3024		DCA	TEMP
007323  6201	LITLUP,	CDF
007324  4536		JMS I	QOTAB
007325  6211		CDF	10
007326  1410		TAD I	X10
007327  6201		CDF
007330  4516		JMS I	QONUMBR
007331  4535		JMS I	QCRLF
007332  2024		ISZ	TEMP
007333  5323		JMP	LITLUP
007334  6211		CDF	10
007335  1036		TAD	LITNUM		/SAVE LITERAL NUMBER
007336  3411		DCA I	X11
007337  1355		TAD	LSIZE		/INCREMENT LITERAL NUMBER
007340  7041		CIA
007341  1036		TAD	LITNUM
007342  3036		DCA	LITNUM
007343  5307		JMP	DLLOOP
007344  6201	DLRETN,	CDF
007345  5674		JMP I	DOLIST
007346  0243	TEMPS,	243;2000;TMPSIZ;2415;2000
007347  2000
007350  7353

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 61-2

007351  2415
007352  2000
007353  0001	TMPSIZ,	1;TMPBLK+1
007354  0003
		LSIZE,
007355  0000	COMVAR,	0			/REMOVE COMMON VARS FROM ST
007356  1423		TAD I	TYPE
007357  0374		AND	(4400		/ALSO ASF NAMES
007360  7650		SNA CLA
007361  5755		JMP I	COMVAR
007362  4776		JMS I	(UNHOOK
007363  5775' 		JMP	TFUDGE-1
007364  4314	LITRL2,	TEXT	'#LIT'
007365  1124
007366  0000
007367  0317	COMMON,	TEXT	'COMMON'
007370  1515
007371  1716
007372  0000
007374  4400
007375  7413
007376  5140
007377  7630
	7400		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 62

		/ SYMBOL TABLE PROCESSING ROUTINES

007400  0000	TYPRTN,	0			/PROCESS ENTIRE SYMBOL TABLE
007401  1600		TAD I	TYPRTN		/GET ROUTINE ADDRESS
007402  3277		DCA	ROUTNE
007403  2200		ISZ	TYPRTN
007404  1273		TAD	O301		/START WITH 'A'
007405  3022		DCA	BUCKET
007406  1274		TAD	M32		/BUCKET COUNT
007407  3026		DCA	BCNT
007410  1022	TYPLP2,	TAD	BUCKET		/GET START OF NEXT LIST
007411  1275		TAD	ALM301
007412  3021	TYPLUP,	DCA	OENTRY		/SAVE OLD ENTRY ADDRESS
007413  6211		CDF	10
007414  1421	TFUDGE,	TAD I	OENTRY		/GET ADDR OF NEXT ENTRY
007415  7450		SNA
007416  5226		JMP	EOL		/0 MEANS END OF LIST
007417  3020		DCA	ENTRY
007420  7001		IAC
007421  1020		TAD	ENTRY		/ADDR OF TYPE WORD
007422  3023		DCA	TYPE
007423  4677		JMS I	ROUTNE		/CALL ROUTINE
007424  1421		TAD I	OENTRY		/CONTINUE DOWN THE LIST
007425  5212		JMP	TYPLUP
007426  2022	EOL,	ISZ	BUCKET		/DO NEXT LETTER
007427  2026		ISZ	BCNT
007430  5210		JMP	TYPLP2
007431  6201		CDF
007432  5600		JMP I	TYPRTN		/END OF PASS
	0026		BCNT=ARG1
007433  0000	COMNAM,	0			/OUTPUT A COMMON BLOCK
007434  1423		TAD I	TYPE		/IS THIS A COMMON BLOCK NAME
007435  1276		TAD	M111
007436  7640		SZA CLA
007437  5633		JMP I	COMNAM		/NO
007440  6201		CDF
007441  4524		JMS I	QOPCDE
007442  7367		COMMON
007443  6211		CDF	10
007444  4777		JMS I	(UNHOOK		/REMOVE THE COMMON
						/BLOCK FROM S.T.
007445  1020		TAD	ENTRY
007446  4543		JMS I	QOUTNAM		/OUTPUT NAME
007447  4535		JMS I	QCRLF
007450  2023		ISZ	TYPE		/GET TO COMMON STUFF POINTER
007451  6211	CNLOOP,	CDF	10
007452  1423		TAD I	TYPE		/GET ADDR OF NEXT HUNK
						/OF COMMON
007453  7450		SNA
007454  5214		JMP	TFUDGE		/END OF IT
007455  3023		DCA	TYPE
007456  1023		TAD	TYPE		/GET A WORKING POINTER
007457  3010		DCA	X10
007460  1410		TAD I	X10		/GET COUNT
007461  7450		SNA

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 62-1

007462  5251		JMP	CNLOOP		/NONE IN THIS HUNK
007463  7041		CIA
007464  3025		DCA	TEMP2
007465  1410		TAD I	X10		/GET VARIABLE ADDRESS
007466  4776		JMS I	(OUTVAR		/OUTPUT IT
007467  6211		CDF	10
007470  2025		ISZ	TEMP2
007471  5265		JMP	.-4		/DO NEXT ONE FROM THIS HUNK
007472  5251		JMP	CNLOOP		/DO NEXT HUNK
007473  0301	O301,	301
007474  7746	M32,	-32
007475  7522	ALM301,	ALIST-301
007476  7667	M111,	-111
		ROUTNE,
007477  0000	ADFLIT,	0			/OUTPUT ARG DF LITS
007500  1063		TAD	ARGLST		/ANY ARGS
007501  7450		SNA
007502  5677		JMP I	ADFLIT
007503  3010		DCA	X10
007504  6211		CDF	10
007505  1463		TAD I	ARGLST		/NUMBER OF ARGS
007506  7041		CIA
007507  3050		DCA	NARGS
007510  6211	ADFLUP,	CDF	10
007511  1410		TAD I	X10		/GET ARG ADDR
007512  7001		IAC
007513  3024		DCA	TEMP		/TYPE WORD ADDR
007514  1424		TAD I	TEMP		/GET TYPE INFO
007515  3025		DCA	TEMP2
007516  7132		CLL CML RTR
007517  0424		AND I	TEMP		/DIMENSIONED ?
007520  7650		SNA CLA
007521  5347		JMP	NDADFL		/NO
007522  2024		ISZ	TEMP		/ADDR OF DIM INFO
007523  7126		CLL CML RTL
007524  1424		TAD I	TEMP		/ADDR OF MAGIC NUMBER
007525  3024		DCA	TEMP
007526  1424		TAD I	TEMP		/MAGIC NUMBER
007527  3042		DCA	MQ		/PREPARE TO MULTIPLY
007530  2024		ISZ	TEMP		/ADDR OF LITERAL GOES HERE
007531  1036		TAD	LITNUM		/STICK IN THE ADDRESS
007532  7001		IAC
007533  3424		DCA I	TEMP
007534  6201		CDF
007535  4775		JMS I	(ONUM		/OUTPUT A ZERO
007536  1025		TAD	TEMP2		/LOOK AT TYPE
007537  4554		JMS I	QSKPIRL		/SKIP ON I R L
007540  1374		TAD	(3		/DOUBLE OR COMPLEX
007541  1374		TAD	(3
007542  4557		JMS I	QMUL12
007543  1040		TAD	AC		/OUTPUT 2 WORD LITERAL
007544  4775		JMS I	(ONUM
007545  1042		TAD	MQ
007546  4775		JMS I	(ONUM
007547  2050	NDADFL,	ISZ	NARGS

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 62-2

007550  5310		JMP	ADFLUP
007551  5677		JMP I	ADFLIT

007552  1773	RDOVLY,	TAD I	(MREAD-1	/FROM CCL-DEVICE
007553  3277		DCA	ADFLIT		/TEMP
007554  4677		JMS I	ADFLIT		/READ IN OVERLAY
007555  0700		NPOVLY
007556  5000		OVRLAY
007557  0000	PASS2O,	0
007560  5772		JMP I	(INERR
007561  1771		TAD I	(VOVER		/CHECK VERSION OF OVERLAY
007562  1004		TAD	VERS
007563  7640		SZA CLA
007564  5770		JMP I	(VERROR		/ERROR, MIXED VERSIONS
007565  5767		JMP I	(EOSTMT		/START PASS2 PROPER
007567  2203
007570  0361
007571  5122
007572  0623
007573  7756
007574  0003
007575  6156
007576  7203
007577  5140
	7600		PAGE

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 63

	0001		FIELD	1
	5000		*5000
015000  0000		0			/THIS IS THE START OF
						/THE ERROR MESSAGE LIST
						/WHICH WORKS BACKWARDS

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 64

		/OS/8 F4 COMPILER CODE SKELETONS

	7772		MAC=-6
	7773		NEGSGN=-5
	7774		FLDAA2=-4
	7775		FLDAA1=-3
	7776		ENTERE=-2
	7777		ENTERF=-1
015001  3616	CGTCOD,	ATX;DD1;STARTD;0;FLDA;DP2C1;STARTF;0
015002  0564
015003  3147
015004  0000
015005  1012
015006  0356
015007  1134
015010  0000
015011  1565	AGTCOD,	JAC;0;0
015012  0000
015013  0000
015014  7777	ASNCOD,	ENTERF;FLDA;DP3C0;JA;DP4;0
015015  1012
015016  3607
015017  3657
015020  1005
015021  0000
015022  2142	ERCODE,	EXTERN;XUE;TRAP3;XUE;0
015023  1757
015024  3665
015025  1757
015026  0000
015027  2142	A0FN,	EXTERN;XFIX;JSA;XFIX;0
015030  1367
015031  3663
015032  1367
015033  0000
015034  3614	A0SD,	ALN;D0
015035  3564
015036  3147	SD,	STARTD;0;0
015037  0000
015040  0000
015041  2163	SE,	STARTE;0;0
015042  0000
015043  0000
015044  1134	SF,	STARTF;0;0
015045  0000
015046  0000
015047  7777	MPTR0,	ENTERF;FLDAA1;FSTA;XBASE;0
015050  7775
015051  1567
015052  3600
015053  0000
015054  7777	MPTR3,	ENTERF;FLDAA2;FSTA;XBASP3;0
015055  7774
015056  1567
015057  3603

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 64-1

015060  0000
015061  3657	JADP2,	JA;DOT;0
015062  1165
015063  0000
015064  7777	DOFIN0,	ENTERF;FLDAA1;FADD;-2
015065  7775
015066  1007
015067  7776
015070  1567	ASTOR,	FSTA;-1;0
015071  7777
015072  0000
015073  7777	DOFIN1,	ENTERF;FLDAA1;FADD;-2;MAC+A0FN;FSTA;-1;0
015074  7775
015075  1007
015076  7776
015077  5021
015100  1567
015101  7777
015102  0000
015103  7775	LDASTD,	FLDAA1;STARTD;0;0
015104  3147
015105  0000
015106  0000
			/CHALK UP ONE FOR PAL8
015107  3616	ATX1,	ATX;DD1;0
015110  0564
015111  0000
015112  3622	LXM1C2,	LDX;M1C2;STARTD;0;0
015113  3550
015114  3147
015115  0000
015116  0000
015117  5123	FVAL,	FVI-1;FVI-1;FVC-1;FVD-1;FVI-1
015120  5123
015121  5126
015122  5134
015123  5123
015124  1012	FVI,	FLDA;XVAL;0
015125  1002
015126  0000
015127  2163	FVC,	STARTE;0;FLDA;XVAL;MAC+PCAC;0
015130  0000
015131  1012
015132  1002
015133  5172
015134  0000
015135  2163	FVD,	STARTE;0;FLDA;XVAL;0
015136  0000
015137  1012
015140  1002
015141  0000
015142  6766	RTNCOD,	RTNX+MAC;JA;XRTN;0
015143  3657
015144  3640
015145  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 64-2

015146  7777	PAZCOD,	ENTERF;EXTERN;XPAUSE;JSR;XPAUSE;0
015147  2142
015150  3773
015151  3661
015152  3773
015153  0000
015154  6766	STPCOD,	RTNX+MAC;EXTERN;XEXIT;JSR;XEXIT;0
015155  2142
015156  3635
015157  3661
015160  3635
015161  0000
015162  7777	GIRL1,	ENTERF;FLDAA1;ENTERE;0
015163  7775
015164  7776
015165  0000
015166  7777	GIRL2,	ENTERF;FLDAA2;ENTERE;0
015167  7774
015170  7776
015171  0000
		SEGCAC,
015172  7776	GCAC,	ENTERE;EXTERN;CAC;FLDA;CAC;0
015173  2142
015174  2361
015175  1012
015176  2361
015177  0000
015200  2142	PCAC,	EXTERN;CAC;FSTA;CAC;0
015201  2361
015202  1567
015203  2361
015204  0000
015205  7776	GC1C2,	ENTERE;FLDAA1;EXTERN;CAC;FSTA;CAC;FLDAA2;0
015206  7775
015207  2142
015210  2361
015211  1567
015212  2361
015213  7774
015214  0000
015215  7776	GC1,	ENTERE;FLDAA1;0
015216  7775
015217  0000
015220  7776	GC2,	ENTERE;FLDAA2;0
015221  7774
015222  0000
015223  2142	JSACEQ,	EXTERN;CEQ;JSA;CEQ;NEGSGN;0
015224  1747
015225  3663
015226  1747
015227  7773
015230  0000
015231  2142	JSACNG,	EXTERN;CNEG;JSA;CNEG;0
015232  2151
015233  3663

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 64-3

015234  2151
015235  0000
015236  2142	JSACAD,	EXTERN;CADD;JSA;CADD;0
015237  2146
015240  3663
015241  2146
015242  0000
015243  2142	JSACSB,	EXTERN;CSUB;JSA;CSUB;0
015244  3156
015245  3663
015246  3156
015247  0000
015250  2142	JSACML,	EXTERN;CMUL;JSA;CMUL;0
015251  2154
015252  3663
015253  2154
015254  0000
015255  2142	JSACDV,	EXTERN;CDIV;JSA;CDIV;0
015256  3161
015257  3663
015260  3161
015261  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 65

		/ ADD, SUBTRACT, MULTIPLY, AND DIVIDE SKELETONS
015262  5311	ADDTBL,	AS-1;AS+2;AS+4
015263  5314
015264  5316
015265  5322		AX-1;AX+2;AX+5
015266  5325
015267  5330
015270  5311		AS-1;AD-1;AS+4
015271  5333
015272  5316
015273  5341		ASC-1;ASC+2;ASC+3
015274  5344
015275  5345
015276  5354		ASD-1;ASD+7;ASD+10
015277  5364
015300  5365
015301  5372		ACS-1;ACS+4;ACS+6
015302  5377
015303  5401
015304  5406		ADS-1;ADS+3;ADS+7
015305  5412
015306  5416
015307  0000		0
015310  1572		FNEG;0
015311  0000
015312  1007	AS,	FADD;-1;0
015313  7777
015314  0000
015315  7777		ENTERF;FLDAA1
015316  7775
015317  1007		FADD;-2;0
015320  7776
015321  0000
015322  5223		JSACNG+MAC
015323  5207	AX,	GC1+MAC;JSACAD+MAC;0
015324  5230
015325  0000
015326  5177		GC1C2+MAC;JSACAD+MAC;0
015327  5230
015330  0000
015331  5212		GC2+MAC;JSACAD+MAC;0
015332  5230
015333  0000
015334  7776	AD,	ENTERE;FLDAA1;FADD;-2;0
015335  7775
015336  1007
015337  7776
015340  0000
015341  5223		JSACNG+MAC
015342  5154	ASC,	GIRL1+MAC;JSACAD+MAC;0
015343  5230
015344  0000
015345  5154		GIRL1+MAC
015346  7776		ENTERE;PCAC+MAC;GC2+MAC;JSACAD+MAC;0
015347  5172

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 65-1

015350  5212
015351  5230
015352  0000
015353  1572		FNEG;0
015354  0000
015355  1567	ASD,	FSTA;XDPTMP;ENTERF;FLDAA1;ENTERE;FADD;XDPTMP;0
015356  2167
015357  7777
015360  7775
015361  7776
015362  1007
015363  2167
015364  0000
015365  5154		GIRL1+MAC
015366  7776		ENTERE;FADD;-2;0
015367  1007
015370  7776
015371  0000
015372  5223		JSACNG+MAC
015373  7776	ACS,	ENTERE;PCAC+MAC;GC1+MAC;JSACAD+MAC;0
015374  5172
015375  5207
015376  5230
015377  0000
015400  5207		GC1+MAC;PCAC+MAC
015401  5172
015402  5160		GIRL2+MAC;JSACAD+MAC;0
015403  5230
015404  0000
015405  1572		FNEG;0
015406  0000
015407  7776	ADS,	ENTERE;FADD;-1;0
015410  1007
015411  7777
015412  0000
015413  5160		GIRL2+MAC;FADD;-1;0
015414  1007
015415  7777
015416  0000
015417  1567		FSTA;XDPTMP;GIRL2+MAC;FADD;XDPTMP;0
015420  2167
015421  5160
015422  1007
015423  2167
015424  0000
015425  5307	SUBTBL,	AS-3;SS-1;SS+1
015426  5452
015427  5454
015430  5321		AX-2;SX-1;SX+2
015431  5457
015432  5462
015433  5307		AS-3;SDBL-1;SS+1
015434  5465
015435  5454
015436  5340		ASC-2;SSX-1;SSX

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 65-2

015437  5472
015440  5473
015441  5352		ASD-3;SSD-1;SSD
015442  5500
015443  5501
015444  5371		ACS-2;SCS-1;SCS+1
015445  5505
015446  5507
015447  5404		ADS-3;SDS-1;SDS5-1
015450  5512
015451  5520
015452  0000		0
015453  7777	SS,	ENTERF;FLDAA1
015454  7775
015455  1015		FSUB;-2;0
015456  7776
015457  0000
015460  5177	SX,	GC1C2+MAC;JSACSB+MAC;0
015461  5235
015462  0000
015463  5212		GC2+MAC;JSACSB+MAC;0
015464  5235
015465  0000
015466  7776	SDBL,	ENTERE;FLDAA1;FSUB;-2;0
015467  7775
015470  1015
015471  7776
015472  0000
015473  5154	SSX,	GIRL1+MAC
015474  7776		ENTERE;PCAC+MAC;GC2+MAC;JSACSB+MAC;0
015475  5172
015476  5212
015477  5235
015500  0000
015501  5154	SSD,	GIRL1+MAC
015502  7776		ENTERE;FSUB;-2;0
015503  1015
015504  7776
015505  0000
015506  5207	SCS,	GC1+MAC;PCAC+MAC
015507  5172
015510  5160		GIRL2+MAC;JSACSB+MAC;0
015511  5235
015512  0000
015513  5160	SDS,	GIRL2+MAC;FNEG;0;FADD;-1;0
015514  1572
015515  0000
015516  1007
015517  7777
015520  0000
015521  1567	SDS5,	FSTA;XDPTMP;GIRL2+MAC;FNEG;0;FADD;XDPTMP;0
015522  2167
015523  5160
015524  1572
015525  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 65-3

015526  1007
015527  2167
015530  0000
015531  5556	MULTBL,	M1-1;M1+3-1;M1+5-1
015532  5561
015533  5563
015534  5566		M4-1;M4+3-1;M4+6-1
015535  5571
015536  5574
015537  5556		M1-1;M7-1;M7+2-1
015540  5577
015541  5601
015542  5604		M8-1;M8+3-1;M8+4-1
015543  5607
015544  5610
015545  5615		M11-1;M11+6-1;M11+7-1
015546  5623
015547  5624
015550  5630		M14-1;M14+5-1;M14+7-1
015551  5635
015552  5637
015553  5643		M18+1-1;M18-1;M18+5-1
015554  5642
015555  5647
015556  0000		0
015557  2353	M1,	FMUL;-1;0
015560  7777
015561  0000
015562  7777		ENTERF;FLDAA1
015563  7775
015564  2353		FMUL;-2;0
015565  7776
015566  0000
015567  5207	M4,	GC1+MAC;JSACML+MAC;0
015570  5242
015571  0000
015572  5177		GC1C2+MAC;JSACML+MAC;0
015573  5242
015574  0000
015575  5212		GC2+MAC;JSACML+MAC;0
015576  5242
015577  0000
015600  7776	M7,	ENTERE;FLDAA1;FMUL;-2;0
015601  7775
015602  2353
015603  7776
015604  0000
015605  5154	M8,	GIRL1+MAC;JSACML+MAC;0
015606  5242
015607  0000
015610  5154		GIRL1+MAC
015611  7776		ENTERE;PCAC+MAC;GC2+MAC;JSACML+MAC;0
015612  5172
015613  5212
015614  5242

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 65-4

015615  0000
015616  1567	M11,	FSTA;XDPTMP;GIRL1+MAC;FMUL;XDPTMP;0
015617  2167
015620  5154
015621  2353
015622  2167
015623  0000
015624  5154		GIRL1+MAC
015625  7776		ENTERE;FMUL;-2;0
015626  2353
015627  7776
015630  0000
015631  7776	M14,	ENTERE;PCAC+MAC;GC1+MAC;JSACML+MAC;0
015632  5172
015633  5207
015634  5242
015635  0000
015636  5207		GC1+MAC;PCAC+MAC
015637  5172
015640  5160		GIRL2+MAC;JSACML+MAC;0
015641  5242
015642  0000
015643  5160	M18,	GIRL2+MAC
015644  7776		ENTERE;FMUL;-1;0
015645  2353
015646  7777
015647  0000
015650  1567		FSTA;XDPTMP;GIRL2+MAC;FMUL;XDPTMP;0
015651  2167
015652  5160
015653  2353
015654  2167
015655  0000
015656  0001	DIVTBL,	1;D2-1;D2+2-1
015657  5703
015660  5705
015661  0001		1;D5-1;D5+3-1
015662  5710
015663  5713
015664  0001		1;D7-1;D7+2-1
015665  5716
015666  5720
015667  0001		1;D9-1;D10-1
015670  5723
015671  5724
015672  0001		1;D12-1;D13-1
015673  5731
015674  5732
015675  0001		1;D14-1;D15-1
015676  5736
015677  5740
015700  0001		1;D16-1;D17-1
015701  5743
015702  5752
015703  0000		0

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 65-5

015704  7777	D2,	ENTERF;FLDAA1
015705  7775
015706  2356		FDIV;-2;0
015707  7776
015710  0000
015711  5177	D5,	GC1C2+MAC;JSACDV+MAC;0
015712  5247
015713  0000
015714  5212		GC2+MAC;JSACDV+MAC;0
015715  5247
015716  0000
015717  7776	D7,	ENTERE;FLDAA1;FDIV;-2;0
015720  7775
015721  2356
015722  7776
015723  0000
015724  5154	D9,	GIRL1+MAC
015725  7776	D10,	ENTERE;PCAC+MAC;GC2+MAC;JSACDV+MAC;0
015726  5172
015727  5212
015730  5247
015731  0000
015732  5154	D12,	GIRL1+MAC
015733  7776	D13,	ENTERE;FDIV;-2;0
015734  2356
015735  7776
015736  0000
015737  5207	D14,	GC1+MAC;PCAC+MAC
015740  5172
015741  5160	D15,	GIRL2+MAC;JSACDV+MAC;0
015742  5247
015743  0000
015744  5160	D16,	GIRL2+MAC;FSTA;XDPTMP;FLDAA1;FDIV;XDPTMP;0
015745  1567
015746  2167
015747  7775
015750  2356
015751  2167
015752  0000
015753  1567	D17,	FSTA;XDPP6;GIRL2+MAC;FSTA;XDPTMP;FLDA;XDPP6;FDIV;XDPTMP;0
015754  1363
015755  5160
015756  1567
015757  2167
015760  1012
015761  1363
015762  2356
015763  2167
015764  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 66

		/ RELATIONALS AND LOGICALS SKELETON TABLES
015765  6014	EQTABL,	EQ1-1;EQ2-1;EQ3-1
015766  6017
015767  6021
015770  6024		EQ4-1;EQ5-1;EQ6-1
015771  6027
015772  6032
015773  6014		EQ1-1;EQ7-1;EQ3-1
015774  6035
015775  6021
015776  6040		EQ8-1;EQ9-1;EQ10-1
015777  6043
016000  6044
016001  6051		EQ11-1;EQ12-1;EQ13-1
016002  6053
016003  6054
016004  6057		EQ14-1;EQ15-1;EQ16-1
016005  6056
016006  6064
016007  6070		EQ17-1;EQ18-1;EQ19-1
016010  6067
016011  6072
016012  6014		EQ1-1;EQ2-1;EQ3-1
016013  6017
016014  6021
016015  1015	EQ1,	FSUB;-1;0
016016  7777
016017  0000
016020  7777	EQ2,	ENTERF;FLDAA1
016021  7775
016022  1015	EQ3,	FSUB;-2;0
016023  7776
016024  0000
016025  5207	EQ4,	GC1+MAC;JSACEQ+MAC;0
016026  5215
016027  0000
016030  5177	EQ5,	GC1C2+MAC;JSACEQ+MAC;0
016031  5215
016032  0000
016033  5212	EQ6,	GC2+MAC;JSACEQ+MAC;0
016034  5215
016035  0000
016036  7776	EQ7,	ENTERE;MAC+EQ2+1;0
016037  6013
016040  0000
016041  5154	EQ8,	GIRL1+MAC;JSACEQ+MAC;0
016042  5215
016043  0000
016044  5154	EQ9,	GIRL1+MAC
016045  7776	EQ10,	ENTERE;PCAC+MAC;GC2+MAC;JSACEQ+MAC;0
016046  5172
016047  5212
016050  5215
016051  0000
016052  5345	EQ11,	MAC+ASD-2;0

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 66-1

016053  0000
016054  5154	EQ12,	GIRL1+MAC
016055  5474	EQ13,	MAC+SSD+1;0
016056  0000
016057  5160	EQ15,	GIRL2+MAC
016060  7776	EQ14,	ENTERE;PCAC+MAC;GC1+MAC;JSACEQ+MAC;0
016061  5172
016062  5207
016063  5215
016064  0000
016065  5160	EQ16,	GIRL2+MAC;JSACEQ+MAC;0
016066  5215
016067  0000
016070  5160	EQ18,	GIRL2+MAC
016071  5377	EQ17,	MAC+ADS-2;0
016072  0000
016073  5513	EQ19,	MAC+SDS5;0
016074  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 67

016075  6122	LETABL,	LE1-1;LE2-1;LE3-1
016076  6126
016077  6130
016100  0000		0;0;0
016101  0000
016102  0000
016103  6122		LE1-1;LE4-1;LE3-1
016104  6133
016105  6130
016106  0000		0;0;0
016107  0000
016110  0000
016111  6136		LE11-1;LE12-1;LE13-1
016112  6140
016113  6141
016114  0000		0;0;0
016115  0000
016116  0000
016117  6144		LE17-1;LE18-1;LE19-1
016120  6143
016121  6146
016122  0000		0
016123  1015	LE1,	FSUB;-1;NEGSGN;0
016124  7777
016125  7773
016126  0000
016127  7777	LE2,	ENTERF;FLDAA1
016130  7775
016131  1015	LE3,	FSUB;-2;0
016132  7776
016133  0000
016134  7776	LE4,	ENTERE;MAC+LE2+1;0
016135  6122
016136  0000
016137  5345	LE11,	MAC+ASD-2;0
016140  0000
016141  5154	LE12,	GIRL1+MAC
016142  5474	LE13,	MAC+SSD+1;0
016143  0000
016144  5160	LE18,	GIRL2+MAC
016145  5377	LE17,	MAC+ADS-2;0
016146  0000
016147  5513	LE19,	MAC+SDS5;0
016150  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 68

016151  0000	ANDTBL,	0;0;0
016152  0000
016153  0000
016154  0000		0;0;0
016155  0000
016156  0000
016157  0000		0;0;0
016160  0000
016161  0000
016162  0000		0;0;0
016163  0000
016164  0000
016165  0000		0;0;0
016166  0000
016167  0000
016170  0000		0;0;0
016171  0000
016172  0000
016173  0000		0;0;0
016174  0000
016175  0000
016176  5556		M1-1;M1+3-1;M1+5-1
016177  5561
016200  5563
016201  0000	ORTABL,	0;0;0
016202  0000
016203  0000
016204  0000		0;0;0
016205  0000
016206  0000
016207  0000		0;0;0
016210  0000
016211  0000
016212  0000		0;0;0
016213  0000
016214  0000
016215  0000		0;0;0
016216  0000
016217  0000
016220  0000		0;0;0
016221  0000
016222  0000
016223  0000		0;0;0
016224  0000
016225  0000
016226  5311		AS-1;AS+2;AS+4
016227  5314
016230  5316

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 69

016231  0000	EQVTBL,	0;0;0
016232  0000
016233  0000
016234  0000		0;0;0
016235  0000
016236  0000
016237  0000		0;0;0
016240  0000
016241  0000
016242  0000		0;0;0
016243  0000
016244  0000
016245  0000		0;0;0
016246  0000
016247  0000
016250  0000		0;0;0
016251  0000
016252  0000
016253  0000		0;0;0
016254  0000
016255  0000
016256  6014		EQ1-1;EQ2-1;EQ3-1
016257  6017
016260  6021

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 70

		/CONVERSION-FOR-STORE-OPERATOR SKELETONS
016261  6342	STRTBL,	SIIM-1;SIRM-1;SICM-1;SIDM-1;SIIM-1
016262  6345
016263  6351
016264  6405
016265  6342
016266  6344		SIIA-1;SIRA-1;SICA-1;SIDA-1;SIIA-1
016267  6347
016270  6353
016271  6407
016272  6344
016273  6342		SIIM-1;SIIM-1;SRCM-1;SRDM-1;SIIM-1
016274  6342
016275  6357
016276  6412
016277  6342
016300  6344		SIIA-1;SIIA-1;SRCA-1;SRDA-1;SIIA-1
016301  6344
016302  6361
016303  6414
016304  6344
016305  6364		SCIM-1;SCIM-1;SCCM-1;SCDM-1;SCIM-1
016306  6364
016307  5217
016310  6416
016311  6364
016312  6366		SCIA-1;SCIA-1;SCCA-1;SCDA-1;SCIA-1
016313  6366
016314  5171
016315  6420
016316  6366
016317  6427		SDIM-1;SDIM-1;SDCM-1;SDDM-1;SDIM-1
016320  6427
016321  6433
016322  6442
016323  6427
016324  6431		SDIA-1;SDIA-1;SDCA-1;SDDA-1;SDIA-1
016325  6431
016326  6436
016327  6444
016330  6431
016331  6370		SLIM-1;SLIM-1;SLCM-1;SLDM-1;SIIM-1
016332  6370
016333  6375
016334  6445
016335  6342
016336  6372		SLIA-1;SLIA-1;SLCA-1;SLDA-1;SIIA-1
016337  6372
016340  6401
016341  6447
016342  6344
016343  7777	SIIM,	ENTERF;FLDAA2
016344  7774
016345  0000	SIIA,	0
016346  7777	SIRM,	ENTERF;FLDAA2

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 70-1

016347  7774
016350  5021	SIRA,	A0FN+MAC;0
016351  0000
016352  5212	SICM,	GC2+MAC;PCAC+MAC
016353  5172
016354  7777	SICA,	ENTERF;GCAC+1+MAC;A0FN+MAC;0
016355  5165
016356  5021
016357  0000
016360  5212	SRCM,	GC2+MAC;PCAC+MAC
016361  5172
016362  7777	SRCA,	ENTERF;GCAC+1+MAC;0
016363  5165
016364  0000
	5220		SCCM=GC2
016365  7777	SCIM,	ENTERF;FLDAA2
016366  7774
016367  7776	SCIA,	ENTERE;0
016370  0000
	5172		SCCA=GCAC
016371  7777	SLIM,	ENTERF;FLDAA2
016372  7774
016373  3663	SLIA,	JSA;LTRNE;0
016374  0753
016375  0000
016376  5212	SLCM,	GC2+MAC;ENTERF;SLIA+MAC;0
016377  7777
016400  6365
016401  0000
016402  7777	SLCA,	ENTERF;GCAC+1+MAC;SLIA+MAC;0
016403  5165
016404  6365
016405  0000
016406  7776	SIDM,	ENTERE;FLDAA2
016407  7774
016410  7777	SIDA,	ENTERF;SIRA+MAC;0
016411  6342
016412  0000
016413  7776	SRDM,	ENTERE;FLDAA2
016414  7774
016415  7777	SRDA,	ENTERF;0
016416  0000
016417  7776	SCDM,	ENTERE;FLDAA2
016420  7774
016421  1567	SCDA,	FSTA;TEMPN;ENTERF;FLDA;TEMPN;ENTERE;0
016422  2367
016423  7777
016424  1012
016425  2367
016426  7776
016427  0000
016430  7777	SDIM,	ENTERF;FLDAA2
016431  7774
016432  7776	SDIA,	ENTERE;0
016433  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 70-2

016434  7776	SDCM,	ENTERE;FLDAA2;PCAC+MAC
016435  7774
016436  5172
016437  7777	SDCA,	ENTERF;GCAC+1+MAC;ENTERE;0
016440  5165
016441  7776
016442  0000
016443  7776	SDDM,	ENTERE;FLDAA2
016444  7774
016445  0000	SDDA,	0
016446  7776	SLDM,	ENTERE;FLDAA2
016447  7774
016450  3663	SLDA,	JSA;LTRNE;0
016451  0753
016452  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 71

		/ UNARY MINUS AND .NOT. SKELETONS
016453  6464	NEGTBL,	NIM-1;NIM-1;NCM-1;NDM-1;0
016454  6464
016455  6471
016456  6475
016457  0000
016460  6466		NIA-1;NIA-1;NCA-1;NIA-1;0
016461  6466
016462  5230
016463  6466
016464  0000
016465  7777	NIM,	ENTERF;FLDAA1
016466  7775
016467  1572	NIA,	FNEG;0;0
016470  0000
016471  0000
016472  5207	NCM,	GC1+MAC;PCAC+MAC;JSACNG+MAC;0
016473  5172
016474  5223
016475  0000
	5231		NCA=JSACNG
016476  7776	NDM,	ENTERE;NIM+1+MAC;0
016477  6460
016500  0000
016501  0000	NOTTBL,	0;0;0;0;NOTM-1
016502  0000
016503  0000
016504  0000
016505  6512
016506  0000		0;0;0;0;NOTA-1
016507  0000
016510  0000
016511  0000
016512  6514
016513  7777	NOTM,	ENTERF;FLDAA1
016514  7775
016515  0000	NOTA,	0

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 72

		/ ARITHMETIC IF SKELETONS
016516  6527	AIFTBL,	GI-1;GI-1;GC-1;GD-1;GI-1	/V3C
016517  6527
016520  6532
016521  6534
016522  6527
016523  6531		GI+1;GI+1;GC+1;GD+1;GI+1	/V3C
016524  6531
016525  6534
016526  6536
016527  6531
016530  7777	GI,	ENTERF;FLDAA1;0
016531  7775
016532  0000
016533  5207	GC,	GC1+MAC;0
016534  0000
016535  7776	GD,	ENTERE;FLDAA1;0
016536  7775
016537  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 73

		/OPERATOR DISPATCH TABLE

016540  1103	XPUSH,	PUSH
016541  5031		ADD
016542  5453		SUB
016543  5457		MUL
016544  2263		DIV
016545  5036		EXP
016546  5450		NOT
016547  6163		NEG
016550  0416		GE
016551  0415		GT
016552  0412		LE
016553  0413		LT
016554  5352		DNA
016555  6352		OR
016556  0427		EQ
016557  0430		NE
016560  6356		XOR
016561  0466		EQV
016562  5366		PAUZE
016563  1130		DPUSH
016564  5244		BINRD1
016565  5231		FMTRD1
016566  5261		WCLOSE		/**
016567  5400		DARD1
016570  5253		BINWR1
016571  5237		FMTWR1
016572  5261		WCLOSE
016573  5407		DAWR1
016574  5415		DEFFIL
016575  5463		ASFDEF
016576  2600		ARGS
016577  2203		EOSTMT
016600  2200		ERROR
016601  5434		RETURN
016602  4000		REWIND
016603  5503		STORE
016604  4200	XEND,	END
016605  6151		DEFLBL
016606  2444		DOFINI
016607  1140		ARTHIF
016610  2276	XLOGIF,	LIFBGN
016611  2400		DOBEGN
016612  4001		ENDFIL
016613  3731		STOP
016614  6404		ASSIGN
016615  4002		BAKSPC
016616  3734		FORMAT
016617  1533	XGOTO,	GOTO
016620  1521		CGOTO
016621  6400		AGOTO
016622  6000		IOLMNT
016623  4042		DATELM
016624  4036		DREPTC

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 73-1

016625  4013		DATAST
016626  4053		ENDELM
016627  5356		PURGE
016630  2431	XLAST,	DOSTOR

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 74

		/ EXPONENTIATION TABLE (NOT A STANDARD SKELETON TABLE)
016631  0001	EXPTBL,	1;1111;2;1122;3;1103;4;1104;0;0 /I**D=D
016632  1111
016633  0002
016634  1122
016635  0003
016636  1103
016637  0004
016640  1104
016641  0000
016642  0000
016643  0002		2;1111;2;1122;3;1103;4;1104;0;0 /R**D=D
016644  1111
016645  0002
016646  1122
016647  0003
016650  1103
016651  0004
016652  1104
016653  0000
016654  0000
016655  0003		3;0311;3;0322;3;0303;0;0;0;0
016656  0311
016657  0003
016660  0322
016661  0003
016662  0303
016663  0000
016664  0000
016665  0000
016666  0000
016667  0004		4;0411;4;0422;0;0;4;0404;0;0
016670  0411
016671  0004
016672  0422
016673  0000
016674  0000
016675  0004
016676  0404
016677  0000
016700  0000
016701  0000		0;0;0;0;0;0;0;0;0
016702  0000
016703  0000
016704  0000
016705  0000
016706  0000
016707  0000
016710  0000
016711  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 75

		/ TYPE MIXING TABLE
016712  0001	TYPMIX,	1;6;2;6;3;17;4;22;0;0
016713  0006
016714  0002
016715  0006
016716  0003
016717  0017
016720  0004
016721  0022
016722  0000
016723  0000
016724  0002		2;6;2;6;3;17;4;22;0;0
016725  0006
016726  0002
016727  0006
016730  0003
016731  0017
016732  0004
016733  0022
016734  0000
016735  0000
016736  0003		3;25;3;25;3;11;0;0;0;0
016737  0025
016740  0003
016741  0025
016742  0003
016743  0011
016744  0000
016745  0000
016746  0000
016747  0000
016750  0004		4;30;4;30;0;0;4;14;0;0
016751  0030
016752  0004
016753  0030
016754  0000
016755  0000
016756  0004
016757  0014
016760  0000
016761  0000
016762  0000		0;0;0;0;0;0;0;0;5;33
016763  0000
016764  0000
016765  0000
016766  0000
016767  0000
016770  0000
016771  0000
016772  0005
016773  0033
016774  7777	RTNX,	ENTERF;EXTERN;LTRNE;0
016775  2142
016776  0753
016777  0000

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 76

		IFZERO OVERLY <
	0000		FIELD 0
	5000		*START2 >
		IFNZRO OVERLY <
			ENPUNC
			FIELD 0
			*7605 >

			$-$-$

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 77

AC     0040      BASE1  0027      DBLZRO 6776      D12    5732
ACS    5373      BASE2  0032      DCHEK  2715      D13    5733
ACSTOR 1062      BCLOOP 5526      DCLOOP 5041      D14    5737
ACSWIT 0077      BCNT   0026      DCNT   2764      D15    5741
AD     5334      BDSTUF 5121      DD1    0564      D16    5744
ADD    5031      BDSWIT 5615      DEBUG  2227      D17    5753
ADDTBL 5262      BINARY 0057      DEFASF 5600      D2     5704
ADFLIT 7477      BINDIO 6144      DEFFIL 5415      D5     5711
ADFLUP 7510      BINRD1 5244      DEFLBL 6151      D7     5717
ADS    5407      BINWR1 5253      DEVH   0076      D9     5724
AGOTO  6400      BLNKCN 0021      DFLIT  7015      ELCNT  0067
AGTCOD 5011      BUCKET 0022      DFRTTM 3760      ELLOOP 4235
AIFLUP 1145      BUMP   2134      DFTEMP 7056      ELMLUP 4147
AIFTBL 6516      CAC    2361      DIMERR 3072      ELMSIZ 0026
AJUMP  1155      CADD   2146      DIMPTR 0047      END    4200
ALIST  0023      CDIV   3161      DIV    2263      ENDELM 4053
ALM301 7475      CDSFLP 6073      DIVTBL 5656      ENDFIL 4001
ALN    3614      CEQ    1747      DLERR  4167      ENDLUP 6101
ANDTBL 6151      CGOTO  1521      DLLOOP 7307      ENDM   1464
ARG    0037      CGTCOD 5001      DLRETN 7344      ENDPLG 6216
ARGARG 3441      CGTLUP 1527      DNA    5352      END2   4267
ARGIO  0071      CHAR1  0530      DOADDR 1437      ENTERE 7776
ARGIOA 6234      CHAR2  0525      DOARG  2524      ENTERF 7777
ARGLP1 5252      CHEKXR 6420      DOBEGN 2400      ENTRY  0020
ARGLP2 5275      CHKKIL 6443      DOFINI 2444      EOKL   6453
ARGLP3 5312      CHKPTR 3213      DOFIN0 5064      EOL    7426
ARGLST 0063      CHNBLK 5030      DOFIN1 5073      EOSTMT 2203
ARGS   2600      CKPDL  1116      DOLIST 7274      EQ     0427
ARGSV  5702      CMPLST 0061      DOLOAD 6521      EQTABL 5765
ARG1   0026      CMPMN1 6260      DOPARM 2524      EQUDOT 3771
ARG2   0031      CMPMN2 6337      DORETN 5616      EQUIVS 7107
ARRAYS 6400      CMPMN3 6266      DOSTE  1500      EQV    0466
ARTHIF 1140      CMUL   2154      DOSTOR 2431      EQVTBL 6231
AS     5312      CNEG   2151      DOT    1165      EQ1    6015
ASC    5342      CNLOOP 7451      DOTEMP 0056      EQ10   6045
ASD    5355      CODE   1300      DOTMP  2030      EQ11   6052
ASFARG 5661      CODLUP 1410      DOTMPN 3565      EQ12   6054
ASFASE 5720      COMMA  0053      DOTP2  6362      EQ13   6055
ASFDEF 5463      COMMON 7367      DPCHK  7163      EQ14   6060
ASFEND 5723      COMNAM 7433      DPERR  2442      EQ15   6057
ASFMOD 5755      COMPSS 3000      DPLIST 0057      EQ16   6065
ASFSKP 5756      COMREG 4600      DPUSED 0104      EQ17   6071
ASFSWT 0102      COMVAR 7355      DPUSH  1130      EQ18   6070
ASGNXR 3125      CONVRT 0327      DP12   6353      EQ19   6073
ASNCOD 5014      CRLF   0200      DP2C1  0356      EQ2    6020
ASSIGN 6404      CSSLUP 3022      DP3    6751      EQ3    6022
ASTOR  5070      CSUB   3156      DP3C0  3607      EQ4    6025
ATX    3616      C1     6771      DP4    1005      EQ5    6030
ATX1   5107      DARD1  5400      DP6    6753      EQ6    6033
AX     5323      DARG   2560      DP8    1166      EQ7    6036
A0FN   5027      DATAST 4013      DREPTC 4036      EQ8    6041
A0SD   5034      DATASW 0064      DSTACK 0027      EQ9    6044
BAKSPC 4002      DATELM 4042      DUMSUB 6270      ERCODE 5022
BARGLP 3336      DATPTR 0031      D0     3564      ERMSG  4310
BASE   7200      DAWR1  5407      D10    5725      ERROR  2200

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 77-1

ERRPTR 0005      GARG   0704      INWORD 0600      LODARG 6524
ESUBR  5764      GARGS  1200      INXR   3476      LSIZE  7355
ETYPE  5035      GC     6533      IOFUN  5757      LT     0413
EXP    5036      GCAC   5172      IOLMNT 6000      LTRNE  0753
EXPTBL 6631      GCTEMP 0065      IOLOOP 0070      LXM1C2 5112
EXTARG 3514      GC1    5215      IOONLY 3313      L6201  0244
EXTERN 2142      GC1C2  5205      IOSTMT 0100      MAC    7772
EXTLIT 0066      GC2    5220      IOTYPE 6147      MACRO  1450
EXTRNL 7056      GD     6535      ITSA2  1445      MAKCAL 3427
EZVAR  6332      GE     0416      JA     3657      MJTBL  1506
FADD   1007      GENCAL 3200      JAC    1565      MNADR  6365
FADDM  7166      GENCOD 1400      JADP2  5061      MNL    6352
FATAL  0352      GENPTR 3670      JAGEN  1536      MNOPC  6361
FCLA   3144      GENSTE 3553      JAGOBK 5716      MORE   5400
FDIV   2356      GENSTF 5437      JLE    2157      MORELM 4055
FILBLK 0007      GETSS  0630      JLT    3653      MORESS 3110
FILDEV 0006      GFNAME 6142      JNE    3643      MORPLG 6000
FILL   6414      GI     6530      JSA    3663      MPOPUP 1406
FILSIZ 4302      GIRL1  5162      JSACAD 5236      MPTRA1 1255
FINAL  5131      GIRL2  5166      JSACDV 5255      MPTR0  5047
FINIST 6120      GLABEL 0051      JSACEQ 5223      MPTR3  5054
FIXCAL 6131      GORALF 5000      JSACML 5250      MQ     0042
FIXDAT 4031      GOTO   1533      JSACNG 5231      MREAD  7757
FIXELP 5104      GOTSIZ 4130      JSACSB 5243      MRETN  1504
FIXSLV 6525      GSIZLP 6213      JSR    3661      MSTART 0024
FLDA   1012      GT     0415      JSRLBL 0103      MUL    5457
FLDAA1 7775      GTSTUF 1546      JXN    3612      MULTBL 5531
FLDAA2 7774      GTTYPE 1563      KILLUP 6427      MUL12  2112
FLDAI  6757      GVSKEL 5731      KILVAR 6461      M006   7056
FLDAP  5567      HOFILL 5474      LDAMUL 6356      M1     5557
FMODE  0101      HOLDUN 5501      LDASTA 6303      M1C2   3550
FMTLUP 3751      HOLIST 0055      LDASTD 5103      M11    5616
FMTRD1 5231      HOLLIT 5400      LDX    3622      M111   7476
FMTWR1 5237      HOLLUP 5435      LE     0412      M12LUP 2117
FMUL   2353      HOLOOP 5452      LETABL 6075      M14    5631
FNAME  6153      IBASP3 6335      LE1    6123      M18    5643
FNEG   1572      IFEND  2242      LE11   6137      M317   7101
FNOP   6731      IFGOTO 2333      LE12   6141      M32    7474
FNSWIT 3266      IFLABL 0055      LE13   6142      M4     5567
FORMAT 3734      IMPLCT 7000      LE17   6145      M7     5600
FPLIST 0056      INBCNT 0625      LE18   6144      M7000  4343
FREEXR 0046      INBLOK 0611      LE19   6147      M8     5605
FSTA   1567      INBPTR 0626      LE2    6127      NAMCDF 0247
FSTAI  6762      INBUF  7200      LE3    6131      NAMEF  6154
FSUB   1015      INDARG 1737      LE4    6134      NAMPTR 0327
FTRNTM 5336      IND0   1725      LIFBGN 2276      NARGS  0050
FUNCAL 3400      IND3   1724      LIFOPT 0457      NCA    5231
FUNCTN 0062      INERR  0623      LINENO 0003      NCHAR  0214
FUNNAM 1671      INPUT  0060      LITLUP 7323      NCM    6472
FVAL   5117      INRCNT 0627      LITNUM 0036      NDADFL 7547
FVC    5127      INS    6656      LITRL  2364      NDLP3  5323
FVD    5135      INS2   6652      LITRL2 7364      NDM    6476
FVI    5124      INS3   6664      LOADA  6502      NDPUSD 6634
F1LNAM 0072      INTLST 0060      LOADA1 1472      NDVDIM 6333
GALOOP 6033      INTMP  3343      LOADA2 1475      NE     0430

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 77-2

NEG    6163      ONUM   6156      PLSUB2 6600      QUCODE 0113
NEGSGN 7773      ONUMBR 0275      PLUS   0054      QXRBUF 0164
NEGSLV 6447      ONUMT  0234      PLUSN  2054      QXRTBL 0130
NEGTBL 6453      OPC    3050      PROGNM 0061      Q17    0126
NEWM   6555      OPCIO  6222      PROLG1 5200      Q20    0141
NEXT   0402      OPCOD  2254      PROLG2 5600      Q200   0145
NFCNT  6155      OPCODE 3540      PSN    5060      Q255   0146
NIA    6467      OPRND  2134      PTCH   5752      Q256   0152
NIARG  3720      OPTMYZ 2215      PTRLST 3316      Q260   0106
NIM    6465      OR     6352      PURGE  5356      Q3     0147
NISA   5311      ORG    2161      PUSH   1103      Q40    0142
NISA2  5307      ORTABL 6201      P0F1   0173      Q5     0120
NLABEL 3363      OSF    3727      P0F2   0174      Q6M3   0120
NLODSS 3053      OSIZE  0563      P2     1000      Q7605  0170
NOADDR 1435      OSNUM  0214      QCHKXR 0131      RALFNM 5342
NOARAY 5256      OTAB   3140      QCODE  0114      RALFSV 5020
NOARGS 5327      OTERR  1360      QCRLF  0135      RCOUNT 0033
NOBC   5547      OTMPS  4343      QERMSG 0110      RDDRTN 5333
NOC    1055      OUBUF  4400      QGARG  0140      RDOVLY 7552
NOCORD 1060      OUDUMP 0533      QGARGS 0160      RDRTNE 5330
NODBUG 6133      OUERR  0555      QGENCA 0155      REBSUB 4011
NOFVAL 5732      OUFSTA 6076      QGENCO 0121      RELCD  0171
NOLOOP 6063      OUJMP  0561      QGENSE 0133      RELGEN 0440
NOREAD 0620      OUJUMP 0476      QGENSF 0132      RELGM1 0437
NOREST 5712      OUPOLD 0557      QGETSS 0151      RELJMP 2344
NOSCLR 5303      OUPTR  0560      QINWOR 0115      RETURN 5434
NOT    5450      OUTA   1646      QLABEL 0172      REWIND 4000
NOTA   6515      OUTA2  1653      QLITRL 0144      RLFBLK 5017
NOTARG 2000      OUTEMP 0533      QLOADA 0156      ROUTNE 7477
NOTINX 3252      OUTJSR 3257      QMUL12 0157      RSLOOP 5646
NOTLOG 2342      OUTLIT 1660      QM4    0105      RTNCOD 5142
NOTM   6513      OUTNAM 0234      QM6    0122      RTNX   6774
NOTMT  2675      OUTSN  1732      QM63   0167      SAMVAR 4143
NOTTBL 6501      OUTSYM 0225      QNEXT  0111      SARG   3331
NPOVLY 0700      OUTV   6117      QNEXTM 0112      SATEMP 1062
NPPAS3 1600      OUTVAR 7203      QNUMBR 0163      SAVACT 1020
NPRNT  6434      OUWDCT 0562      QOADDR 0125      SAVE   1042
NSARGS 6351      OVERLY 0000      QOCHAR 0162      SAVEAC 1025
NUMBRO 0645      OVFLD1 7221      QOINS  0161      SBLOCK 7776
NUMELM 0030      OVFLD2 7231      QOLABE 0150      SC     2102
NXTBC  5542      OVRLAY 5000      QONUMB 0116      SCALAR 7263
OADDR  1600      O100   7015      QOPCDE 0124      SCCA   5172
OADRET 1723      O1000  7107      QOPCOD 0123      SCCM   5220
OBLOCK 0544      O141   5412      QOSNUM 0134      SCDA   6421
OCHAR  0472      O301   7473      QOTAB  0136      SCDM   6417
OCNT   0200      PASS2O 7557      QOUTNA 0143      SCIA   6367
OENTRY 0021      PASS3N 5346      QOUTSY 0137      SCIM   6365
OINS   5466      PAS3SV 5151      QSAVAC 0153      SCS    5506
OJSR   5266      PATCH  0001      QSAVEA 0117      SD     5036
OJSROP 5300      PAUZE  5366      QSFM1  5715      SDBL   5466
OLABEL 3527      PAZCOD 5146      QSKPIR 0154      SDCA   6437
OLDM   6554      PCAC   5200      QTTCRL 0166      SDCM   6434
OLLABL 6056      PLSDOT 7253      QTTYMS 0127      SDDA   6445
OLOOP  0301      PLSKIP 5344      QTTYOU 0107      SDDM   6443
ONEI   0063      PLSUB1 5331      QTTYP2 0165      SDIA   6432

/OS/8 FORTRAN PASS2 (PASS TWO)		  PAL8-V50X 06-MAR-92 PAGE 77-3

SDIM   6430      STOP   3731      VERROR 0361      XST    6715
SDS    5513      STORE  5503      VERS   0004      XTA    3620
SDS5   5521      STPCOD 5154      VERSON 0005      XTMP   2766
SE     5041      STRPTR 3347      VMC    2064      XTRN   7151
SECT   6701      STRTBL 6261      VOVER  5122      XUE    1757
SEGCAC 5172      STRTIO 5200      WCLOSE 5261      XVAL   1002
SETB   6737      STRTMP 2561      WHATAC 0044      XWDAO  5431
SETMOD 5122      SUB    5453      WHATBS 0045      XWRITO 5316
SETX   6734      SUBARG 5131      XARGS  5764      XWUC   5306
SF     5044      SUBRX  7151      XBAC1P 1752      XWUO   5325
SFUDGE 6556      SUBTBL 5425      XBAK   3632      XXR    6707
SGNNEG 1502      SVLIMT 2555      XBAP30 6724      X10    0010
SICA   6354      SX     5460      XBASC1 6745      X11    0011
SICM   6352      TEM    0175      XBASE  3600      X12    0012
SIDA   6410      TEMP   0024      XBASP3 3603      X13    0013
SIDM   6406      TEMPN  2367      XBPC2P 6344      X14    0014
SIIA   6345      TEMPN2 3153      XDEF   5423      X15    0015
SIIM   6343      TEMPS  7346      XDFARG 5420      X16    0016
SIRA   6350      TEMP14 1505      XDOTMP 4214      X17    0017
SIRM   6346      TEMP2  0025      XDPP6  1363      X200   0607
SIT    1742      TEXTX  6742      XDPTMP 2167      X6201  7223
SIX    0075      TFUDGE 7414      XDP3   5234      X7746  5163
SKEL   1342      THREE  0070      XEND   6604      ZC1    6755
SKPIRL 2102      TMPBLK 0002      XENDF  3627      ZEROC1 1517
SLCA   6402      TMPBMP 1071      XEXIT  3635      ZXR    6364
SLCM   6376      TMPCNT 0034      XFIX   1367      
SLDA   6450      TMPMAX 0035      XGOBAK 6711      
SLDM   6446      TMPREF 2035      XGOBC0 6717      
SLIA   6373      TMPSIZ 7353      XGOTO  6617      
SLIM   6371      TOOMNY 5367      XLAST  6630      
SNCLUP 5062      TRAP3  3665      XLBL   6773      
SNDEFN 5077      TRUE   0102      XLBLE  6765      
SNDONE 5103      TRYCAL 3075      XLOGIF 6610      
SNLIST 0062      TSTABT 6200      XM3    5371      
SPASS3 5162      TTCHAR 0225      XNAMP  6433      
SRCA   6362      TTCRLF 0337      XNOP   5360      
SRCM   6360      TTYMSG 0345      XOR    6356      
SRDA   6415      TTYOUT 0730      XPAUSE 3773      
SRDM   6413      TTYP2C 0315      XPUSH  6540      
SS     5453      TYPE   0023      XR     0041      
SSCHEK 2727      TYPERR 1355      XRBUFR 6600      
SSC2   2735      TYPE1  0030      XRCHEK 2651      
SSD    5501      TYPE2  0033      XRCNT  3074      
SSKEL  5527      TYPLP2 7410      XRDAO  5426      
SSREF  1674      TYPLUP 7412      XREADO 5312      
SSX    5473      TYPMIX 6712      XREPTR 3137      
STACK  7000      TYPRTN 7400      XRET   6704      
STACK1 4700      UCODE  0656      XREW   3624      
STARTD 3147      UNHOOK 5140      XRFLAG 2765      
STARTE 2163      USKEL  0676      XRNUM  0043      
STARTF 1134      VARADR 7274      XRTABL 6461      
START2 5000      VDAIO  6200      XRTLUP 6467      
STFORE 5751      VDIMLP 6230      XRTN   3640      
STKLVL 0052      VDTEMP 6347      XRUO   5322      
STMUL  2125      VDTMP2 6350      XSET   1514      



ERRORS DETECTED: 0
LINKS GENERATED: 48