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