$JOB ASSEMBLY OF MONITOR, COMPILER SECTIONS 1 THROUGH 6 OF $00000010 $* FORTRAN II PROCESSOR, 7090-FO-928 00000020 $* VERSION 3, MODIFICATION LEVEL 35 (35)00000030 $EXECUTE IBSFAP $00000050 * 32K 709/7090 FORTRAN SECTIONS FOUR AND FIVE F4A00010 * FAP F4A00030 * 32K 709/7090 FORTRAN SECTIONS FOUR AND FIVE F4A00040 COUNT 8000 F4A00050 ABS F4A00060 SST FORTRAN $F4A00061 TTL SECTION 4, PART ONE F4A00070 LBL 9F23,S F4A00080 HEAD 0 F4A00090 REM F4A00100 REM DEFINITIONS REQUIRED THROUGHOUT SECTION 4 F4A00110 ...... SYN 0 THE APPEARANCE OF THIS SYMBOL IN F4A00130 REM THE LISTING INDICATES THAT ITS F4A00140 REM VALUE IS SET BY THE PROGRAM. F4A00150 IR1 SYN 1 INDEX REGISTER 1 F4A00160 IR2 SYN 2 INDEX REGISTER 2 F4A00170 IR4 SYN 4 INDEX REGISTER 4 F4A00180 FTAPE1 SYN SYSTAP F4A00190 FTAPE2 SYN FINTAP F4A00200 FTAPE3 SYN SINTAP F4A00210 FTAPE4 SYN TINTAP F4A00220 CTAPE SYN FTAPE4 F4A00230 REM F4A00240 REM F4A00250 REM SECTION 4 - PART 1 OF 3 F4A00260 REM F4A00270 ORG SYSCUR $F4A00280 BCI 1,9F2300 $F4A00290 ORG (LODR) $F4A00300 TXI PASS1,,230 F4A00320 REM F4A00340 REM DEFINITIONS REQUIRED BY PART 1 F4A00350 REM F4A00360 REM CONSTANTS AND VARIABLES FIRST APPEARING IN PART 1. F4A00370 ORG BOTTOM F4A00380 ZERO DEC 0 F4A00390 ONE DEC 1 F4A00400 DOTOP PZE DOTAG F4A00410 D1 PZE ,,1 F4A00420 CTSPC1 PZE CTSP1 F4A00430 RLNGTH PZE ...... F4A00440 ASPRS FVE 0 ASSIGN FLAG. F4A00450 1STLET OCT 770000000000 FIRST LETTER MASK F4A00460 T OCT 630000000000 T F4A00470 ASTRSK OCT 170000000000 ASTERISK F4A00480 TPL OCT 34743000000 TPL F4A00490 PMASK OCT 700000000000 PREFACE MASK F4A00500 DMASK OCT 77777000000 DECREMENT MASK F4A00510 TMASK OCT 700000 TAG MASK F4A00520 TAMASK OCT 777777 TAG AND ADDRESS MASK F4A00530 POSMAX OCT 377777777777 LARGEST POSITIVE INTEGER MACHINE CAN F4A00540 REM HOLD F4A00550 ANTEBB PZE BBLIST+1 ADDRESS OF LOWEST ENTRY IN BBLIST + 1 F4A00560 1ST PZE BBLIST ADDRESS OF LOWEST ENTRY IN BBLIST F4A00570 NTH PZE BBLIST-1 ADDRESS OF HIGHEST ENTRY IN BBLIST F4A00580 ARG ...... ARGUMENT CELL FOR MIH, FINDBB, SERCHN, F4A00590 REM AND ENTER SUBROUTINES F4A00600 FLOOR ...... LOWER LIMIT OF SEARCH IN MIH AND F4A00610 REM FINDBB SUBROUTINES F4A00620 ROOF ...... UPPER LIMIT OF SEARCH IN MIH AND F4A00630 REM FINDBB SUBROUTINES F4A00640 TRYME ...... ADDRESS OF TABLE MEMBER TO BE COMPARED F4A00650 REM WITH ARGUMENT IN MIH AND FINDBB F4A00660 ILNGTH ...... NUMBER OF WORDS IN CIT IS STORED HERE. F4A00670 PAS2RD ...... F4A00680 LBSIZE ...... F4A00690 OPCODE ...... F4A00700 DOBOX ...... DO COUNTER F4A00710 FRTBOX ...... FRET COUNTER F4A00720 ERASE1 ...... ERASABLE STORAGE F4A00730 ERRM4 TXI (DIAG),,0 MACHINE ERROR F4A00740 CTLBL BCI 1,CITS03 F4A00750 BBLBL BCI 1,BLIST F4A00760 TGLBL BCI 1,TAG F4A00770 TFGLBL BCI 1,TIFGO F4A00780 TRDLBL BCI 1,TRAD F4A00790 FRTLBL BCI 1,FRET F4A00800 DTGLBL BCI 1,DOTAGB F4A00810 EOFLB1 BCI 1,EOF F4A00820 AC3LBL BCI 1,ASCON3 F4A00830 CTRD1 IORT CTBOT,,200 IO COMMAND FOR 1 CIT RECORD. F4A00840 SKNR PZE F4A00850 SK2R PZE 2 F4A00860 SK4R PZE 4 F4A00870 SKFL PZE ,,1 F4A00880 RWND PZE ,,-1 F4A00890 BSP2F MZE ,,2 F4A00900 ERASE2 SYN FLOOR ERASABLE STORAGE F4A00910 ERASE3 SYN ROOF ERASABLE STORAGE F4A00920 DOSUB SYN OPCODE F4A00930 TRA OCT 35121000000 TRA F4A00940 REM F4A00950 REM CONSTANTS USED IN PART 1 ONLY. F4A00960 OCT 1146000000 TSX-TRA F4A00970 OCT 454000000 TXL-TSX F4A00980 TRACON OCT 162000000 TZE-TXL F4A00990 OCT 42363000000 DCT F4A01000 OCT 3642000000 MSE-DCT F4A01010 TSTCON OCT 30000000000 PSE-MSE F4A01020 FIVE DEC 5 F4A01030 EXIT1 PZE ASSIGN EXIT ADDRESS FROM PASS1 F4A01040 DOBASE PZE DOTAG THIS CONSTANT=THE BASE ADDRESS OF F4A01050 REM DOTAG TABLE. F4A01060 PSEMSK OCT 70000000 F4A01070 PSEMRK OCT 60000000 F4A01080 NEGMAX OCT 777777777777 LARGEST NEGATIVE INTEGER MACHINE CAN F4A01090 REM HOLD F4A01100 LIMIT PZE BBLIST-1484*M/N+1 F4A01110 REM MAY BE STORED. F4A01120 REM F4A01130 REM F4A01140 TFGRD IORT TIFGO,,2400*M/N+2 IO COMMAND FOR TIFGO. F4A01150 TRDRD IORT TRAD-1000*M/N-2,,1000*M/N+2 IO COMMAND FOR TRAD. F4A01160 FRTRD IORT FRET-2,,3000*M/N+2 IO COMMAND FOR FRET. F4A01170 DORD IORT DOTAG,,200*M/N*9 IO COMMAND FOR DOTAG. F4A01180 ERR42 TXI (DIAG),,-1 BBLIST OVERFLOW. F4A01190 REM PASS1 / CALLS ON RDCIT1 AND MIH F4A01200 REM THIS ROUTINE SCANS THE COMPILED INSTRUCTIONS AND F4A01210 REM DIVIDES THE OBJECT PROGRAM INTO BASIC BLOCKS. A BASIC BLOCKF4A01220 REM IS A STRETCH OF PROGRAM WITH ONLY ONE ENTRY POINT AND ONE F4A01230 REM EXIT POINT. THE OUTPUT OF THIS ROUTINE IS BBLIST, A TABLE F4A01240 REM LISTING THE BEGINNING OF EACH BASIC BLOCK (THE LOCATION F4A01250 REM SYMBOL OF THE 1ST INSTRUCTION OF EACH BASIC BLOCK). A TABLEF4A01260 REM CALLED DOLIST IS ALSO COMPILED OF THE BEGINNING AND END OF F4A01270 REM EVERY LOOP IN THE OBJECT PROGRAM. F4A01280 REM PASS1 ALSO STARTS READING TIFGO, TRAD AND FRET FROM F4A01290 REM TAPE FOR LATER PROCESSING. F4A01300 PASS1 ZAC F4A01310 DCT BE SURE DIV-CHECK IND IS OFF. F4A01320 NOP F4A01330 SXD CITCNT,0 CLEAR DECREMENT OF CIT COUNT. F4A01340 LDQ CITCNT DIVIDE NO. OF WORDS IN CIT BY F4A01350 STQ ILNGTH LENGTH OF RESERVED AREA TO F4A01360 DVP CTSPC1 FIND TOP OF LAST RECORD READ. F4A01370 DCT F4A01380 TSX ERRM4,IR4 DIVIDE ERROR GO TO DIAGNOSTIC. F4A01390 REM LENGTH OF CITS PLACED IN CITCNT F4A01400 REM BY SEC 3 , LENGTH OF CIT AREA DEFINED F4A01410 REM BY ASSEMBLY. F4A01420 ADD CTRD1 ADD BOTTOM OF AREA TO GET LAST LOADED F4A01430 STA LAST1 ADDRESS+1 AND SET FOR EXIT ROUTINE. F4A01440 TSX RDTBLS,IR2 START READING TIFGO. F4A01450 TSX (TAPE),IR4 READ FIRST RECORD OF CIT. F4A01460 CTRD1,,(RBEC) F4A01470 CTLBL,,CTAPE F4A01480 LXA (SCHU)+CTAPE,IR1 F4A01490 LXA CTRD1,IR2 F4A01500 SXA CTRD1,IR1 SET LOAD ADDRESS FOR NEXT RECORD. F4A01510 SXD *+1,IR2 F4A01520 TIX *+1,IR1,...... COMPUTE RECORD LENGTH. F4A01530 SXA RLNGTH,IR1 F4A01540 SXD IOAJ1,IR1 SET FOR ADJUSTING IO COMMAND F4A01550 SXD PRAJ1,IR1 AND PROCESSING DECREMENTS. F4A01560 TSX RDTBLS,IR2 START READING TRAD. F4A01570 TSX (TAPE),IR4 START READING SECOND RECORD OF CIT. F4A01580 CTRD1,,(RBEP) F4A01590 CTLBL,,CTAPE F4A01600 AXC CTBOT,IR1 INITIALIZE IR1 FOR PROCESSING 1RST CIT F4A01610 TSX RDCIT1,IR4 GO TO START READING 3RD CIT. F4A01620 CLA CITLOC,IR1 PUT LOCATION OF 1ST INSTRUCTION IN F4A01630 STO BBLIST BBLIST. F4A01640 CLA POSMAX INSERT ENDMARK IN BBLIST. F4A01650 STO BBLIST-1 F4A01660 TEST1 TXH *+2,IR1,-CTTP1 F4A01670 TXI 1TSX,IR1,CTSP1 YES, SET TO START PROCESSING AT BOTTOM F4A01680 BEGN1 TXL 1TSX,IR1,...... HAS THIS RECORD BEEN PROCESSED. F4A01690 NZT CITLOC,IR1 DOES THIS INST. HAVE A FORMULA NO. F4A01700 TXI TEST1,IR1,-4 NO - IGNORE IT, LOOK AT NEXT INST. F4A01710 CAL CITOP,IR1 YES - IS THIS INST. A TRANSFER (IS 1ST F4A01720 STD OPCODE LETTER OF OP CODE A T) F4A01730 ANA 1STLET F4A01740 ERA T F4A01750 TZE TRANS YES, THIS IS A TRANSFER F4A01760 AXT 3,IR4 NO - IS IT A TEST (SKIP-TYPE) INST. F4A01770 CLA OPCODE F4A01780 TSTSUB SUB TSTCON+1,IR4 F4A01790 TZE* TSTVEC+1,IR4 YES, THIS IS A TEST INST. F4A01800 TIX TSTSUB,IR4,1 F4A01810 OTHER TXI TEST1,IR1,-4 THIS IS NEITHER A TRANSFER, NOR A TEST F4A01820 REM INSTRUCTION, SO IGNORE IT AND LOOK F4A01830 REM AT NEXT INSTRUCTION. F4A01840 TRA TSTCAS DCT F4A01850 TRA TSTCAS MSE F4A01860 TSTVEC TRA PSECAS PSE F4A01870 TRA TRACAS TRA F4A01880 TRA OTHER TSX F4A01890 TRA DOCASE TXL F4A01900 TRAVEC TRA TZECAS TZE F4A01910 TRANS AXT 4,IR4 WHAT KIND OF TRANSFER IS IT F4A01920 CLA OPCODE F4A01930 TRASUB SUB TRACON+1,IR4 F4A01940 TZE* TRAVEC+1,IR4 F4A01950 TIX TRASUB,IR4,1 F4A01960 CLA CITAD,IR1 IS IT A TXI OR A TIX TO THE NEXT INST. F4A01970 SUB ASTRSK F4A01980 TZE OTHER YES, IGNORE IT. F4A01990 CLA CITLOC,IR1 F4A02000 SUB CITAD,IR1 F4A02010 TZE OTHER YES, IGNORE IT. F4A02020 2WAYTR CLA CITAD,IR1 THIS MUST BE A CONDITIONAL TRANSFER. F4A02030 TSX MIH,IR4 PUT ITS ADDRESS IN BBLIST. F4A02040 CAL CITOP+4,IR1 IS IT FOLLOWED BY TRA F4A02050 ANA DMASK F4A02060 SUB TRA F4A02070 TZE *+2 F4A02080 TSX ERRM4,IR4 COND.TRANS. NOT FOLLOWED BY A TRANS. F4A02090 CLA CITAD+4,IR1 PUT ADDRESS OF TRA IN BBLIST. F4A02100 TSX MIH,IR4 F4A02110 TXI TEST1,IR1,-8 GET SET TO LOOK AT INST. AFTER THE TRA F4A02120 TRACAS CLA CITTAG,IR1 IS THIS TRA TAGGED F4A02130 ANA TAMASK F4A02140 TNZ GOTOV YES, THIS IS A GO TO VECTOR CASE F4A02150 CAL CITAD,IR1 IS THIS TRA A GO TO N F4A02160 ANA PMASK F4A02170 TNZ OTHER YES, IGNORE FOR NOW F4A02180 CLA CITAD,IR1 THIS MUST BE A STRAIGHT TRA. PUT F4A02190 TSX MIH,IR4 ITS ADDRESS IN BBLIST. F4A02200 TXI TEST1,IR1,-4 GET SET TO LOOK AT NEXT INSTRUCTION F4A02210 GOTOV CLA CITAAA,IR1 PUT NO. OF BRANCHES INTO IR2. F4A02220 PDX 0,IR2 F4A02230 TIX NXTTRA,IR2,1 F4A02240 NXTTRA TXI TEST2,IR1,-4 GET SET TO PICK UP NEXT TRA F4A02250 TEST2 TXH *+2,IR1,-CTTP1 F4A02260 TXI 2TSX,IR1,CTSP1 YES, SET TO START PROCESSING AT BOTTOM F4A02270 CNTU1 TXL 2TSX,IR1,...... HAS THIS RECORD BEEN PROCESSED. F4A02280 CLA CITAD,IR1 PUT TRA ADDRESS IN BBLIST F4A02290 SXA *+2,IR2 F4A02300 TSX MIH,IR4 F4A02310 AXT ......,IR2 F4A02320 TIX NXTTRA,IR2,1 F4A02330 TXI TEST1,IR1,-4 GET SET TO LOOK AT NEXT INSTRUCTION F4A02340 DOCASE LXD DOBOX,IR4 SET DOLIST INDEX REGISTER FOR NEXT F4A02350 TXI *+1,IR4,2 ENTRY. F4A02360 CLA CITLOC,IR1 PUT LOCATION AND ADDRESS OF TXL IN F4A02370 STO DOLIST+1,IR4 DOLIST (BEGINNING AND END OF DO). F4A02380 CLA CITAD,IR1 F4A02390 STO DOLIST,IR4 F4A02400 SXD DOBOX,IR4 SAVE CURRENT DOLIST INDEX F4A02410 TSX MIH,IR4 PUT ADDRESS OF TXL AND LOCATION OF F4A02420 CLA CITLOC+4,IR1 NEXT INSTRUCTION IN BBLIST. F4A02430 TSX MIH,IR4 F4A02440 TXI TEST1,IR1,-4 GET SET TO LOOK AT NEXT INSTRUCTION F4A02450 TZECAS CAL CITOP+4,IR1 THIS IS A TZE. IS IT FOLLOWED BY A F4A02460 ANA DMASK TPL. F4A02470 SUB TPL F4A02480 TNZ 2WAYTR F4A02490 CLA CITAD,IR1 PUT ADDRESS OF TZE IN BBLIST. F4A02500 TSX MIH,IR4 F4A02510 TXI 2WAYTR,IR1,-4 F4A02520 PSECAS CAL CITAAA,IR1 IS THIS IS A SENSE SWITCH TEST F4A02530 ANA PSEMSK F4A02540 SUB PSEMRK F4A02550 TNZ OTHER NO, IGNORE F4A02560 TSTCAS CAL CITOP+4,IR1 IS THIS TEST FOLLOWED BY A TRANSFER F4A02570 ANA DMASK F4A02580 SUB TRA F4A02590 TNZ OTHER NO, IGNORE F4A02600 CLA CITAD+4,IR1 YES, PUT ADDRESS OF TRA IN BBLIST F4A02610 TSX MIH,IR4 F4A02620 CAL CITOP+8,IR1 IS THAT TRA FOLLOWED BY A TRA F4A02630 ANA DMASK F4A02640 SUB TRA F4A02650 TNZ NOTRA NO F4A02660 CLA CITAD+8,IR1 YES, PUT ADDRESS OF 2ND TRA IN BBLIST F4A02670 TSX MIH,IR4 F4A02680 TXI TEST1,IR1,-12 GET SET TO LOOK AT INST. AFTER THE F4A02690 REM 2ND TRA F4A02700 NOTRA CLA CITLOC+8,IR1 PUT LOCATION OF INSTRUCTION IN BBLIST. F4A02710 TSX MIH,IR4 F4A02720 TXI TEST1,IR1,-8 GET SET TO LOOK AT INST. AFTER THE TRA F4A02730 REM F4A02740 REM ASSIGN / CALLS ON MIH F4A02750 REM FIRST THIS ROUTINE INSURES THAT TIFGO, TRAD AND FRET F4A02760 REM HAVE BEEN READ CORRECTLY FROM TAPE. THEN IT STARTS READING F4A02770 REM DOTAG FOR LATER PROCESSING. F4A02780 REM THEN IT SCANS TIFGO, MOVING THOSE TIFGO ENTRIES WHICH F4A02790 REM DEAL WITH ASSIGN STATEMENTS AND ASSIGNED GO TO STATEMENTS F4A02800 REM TO A TABLE CALLED TIFRD. THE TRAD ENTRIES THAT ARE ASSOCI- F4A02810 REM ATED WITH EACH ASSIGNED GO TO ARE MOVED TO TIFRD FOLLOWING F4A02820 REM THE APPROPRIATE TIFGO ENTRY AND THESE TRAD ENTRIES ARE F4A02830 REM FLAGGED NEGATIVE FOR EASY SEARCHING LATER. AT THE SAME TIMEF4A02840 REM THESE TRAD ENTRIES ARE PUT IN BBLIST USING SUBROUTINE MIH. F4A02850 REM WHEN THIS IS DONE TIFGO AND TRAD ARE NO LONGER OF F4A02860 REM INTEREST TO SECTION 4, THE ASSIGN INFORMATION NOW HAVING F4A02870 REM BEEN ISOLATED AND PLACED IN TIFRD. F4A02880 GOTON CLA TIFGO+2,IR1 MOVE THIS TIFGO ENTRY TO TIFRD. F4A02890 STO TIFRD,IR2 F4A02900 CLA TIFGO+3,IR1 F4A02910 STO TIFRD+1,IR2 F4A02920 TXI *+1,IR2,-2 SET INDEX FOR NEXT STORE IN TIFRD. F4A02930 PDX 0,IR4 INITIALIZE TRAD INDEX REGISTER. F4A02940 ALS 18 SET TEST DEC WITH TRAD START MINUS NO. F4A02950 STD TRATST OF TRAD ENTRIES FOR THIS GO TO N. F4A02960 DOTRAD CLS TRAD,IR4 MOVE TRAD ENTRIES INTO TIFRD. F4A02970 ALS 18 F4A02980 STO TIFRD,IR2 F4A02990 SXA *+4,IR2 SAVE INDEX REGISTERS USED BY MIH. F4A03000 SXA *+2,IR4 F4A03010 TSX MIH,IR4 PUT ALL TRAD ENTRIES IN BBLIST. F4A03020 AXT ......,IR4 RESTORE INDEX REGISTERS. F4A03030 AXT ......,IR2 F4A03040 TXI *+1,IR2,-1 SET INDEX FOR NEXT STORE IN TIFRD. F4A03050 TXI *+1,IR4,-1 SET IR FOR PICKING UP NEXT TRAD ENTRY. F4A03060 TRATST TXH DOTRAD,IR4,...... HAVE ALL TRAD ENTRIES FOR THIS GO TO N F4A03070 REM BEEN TREATED. F4A03080 TXI TIFTST,IR1,-2 YES, SET INDEX FOR NEXT LOOK AT TIFGO F4A03090 REM AND RETURN TO PRUNING TIFGO. F4A03100 ASSIGN TSX (TAPE),IR4 F4A03110 RWND,,(SKBP) F4A03120 CTLBL,,CTAPE F4A03130 ZET RDTBLS HAVE TIFGO,TRAD AND FRET BEEN READ F4A03140 TSX RDTBLS,IR2 IN AND THE TAPE POSITIONED F4A03150 ZET RDTBLS F4A03160 TRA *-2 NO AGAIN F4A03170 REEDDO TSX (TAPE),IR4 YES READ DOTAG F4A03180 DORD,,(RBEC) F4A03190 DTGLBL,,FTAPE2 F4A03200 ZET (SCHU)+FTAPE2 F4A03210 TRA CONDO F4A03220 AXT 0,IR1+IR2 INITIALIZE TIFGO AND TIFRD IRS. F4A03230 NZT TIFGO+1 IS TIFGO EMPTY F4A03240 TRA FREQ YES, SKIP THIS ROUTINE. F4A03250 LDC TIFGO+1,IR4 SET TEST DECREMENT WITH COMPLEMENT F4A03260 SXD TIFTST,IR4 OF LENGTH OF TIFGO. F4A03270 PRUNE CLA TIFGO+2,IR1 IS THIS TIFGO ENTRY A GO TO N. F4A03280 TMI STEP F4A03290 ANA TAMASK F4A03300 SUB ONE F4A03310 TZE GOTON YES. F4A03320 SUB FIVE NO, IS IT AN ASSIGN. F4A03330 TNZ STEP NO. F4A03340 CLA ONE YES F4A03350 STA ASPRS SET ASSIGN FLAG FOR ASSIGN PRESENT. F4A03360 CLA TIFGO+2,IR1 MOVE THIS TIFGO ENTRY TO TIFRD. F4A03370 STO TIFRD,IR2 F4A03380 CLA TIFGO+3,IR1 F4A03390 STO TIFRD+1,IR2 F4A03400 TXI STEP,IR2,-2 SET INDEX FOR NEXT STORE IN TIFRD. F4A03410 STEP TXI TIFTST,IR1,-2 SET INDEX FOR NEXT LOOK AT TIFGO. F4A03420 TIFTST TXH PRUNE,IR1,...... HAS ALL TIFGO BEEN TREATED. F4A03430 STZ TIFRD,IR2 STORE ENDMARK FOR TIFRD. F4A03440 REM F4A03450 REM FREQ / NO SUBROUTINES CALLED F4A03460 REM THIS ROUTINE SCANS THE FREQUENCY TABLE (FRET). IT F4A03470 REM MOVES ALL ENTRIES THAT DEAL WITH DOS TO A TABLE CALLED F4A03480 REM DOFRET AND MARKS THE FIRST WORD IN FRET OF EACH SUCH VACATEDF4A03490 REM ENTRY WITH A SIGNAL USED BY THE NEXT ROUTINE. F4A03500 REM ALL REGULAR FRET ENTRIES, THAT IS, THOSE THAT DEAL WITHF4A03510 REM DATA-CONTROLLED TRANSFER OPTIONS, ARE MODIFIED AS FOLLOWS. F4A03520 REM THE 1ST FREQUENCY OF EACH ENTRY IS UNMODIFIED, THE 2ND BE- F4A03530 REM COMES THE 1ST + THE 2ND, THE 3RD BECOMES THIS TOTAL + THE F4A03540 REM 3RD, ETC. THUS (2,7,4) BECOMES (2,9,13). THEN EACH OF F4A03550 REM THESE MODIFIED FREQUENCIES IS DIVIDED BY THE LAST FREQUENCY.F4A03560 REM THUS (2,9,13) BECOMES (2/13,9/13,1). THE PURPOSE OF THIS F4A03570 REM PROCEDURE BECOMES MORE APPARENT WHEN EXAMINING THE METHOD F4A03580 REM USED IN SECT. 4, PART 3, FOR SIMULATING THE OBJECT PROGRAM. F4A03590 FREQ NZT FRET-1 IS FRET EMPTY. F4A03600 TRA SORTDO YES, SKIP THIS ROUTINE. F4A03610 AXC 2,IR1 NO, INITIALIZE FRET INDEX REGISTER. F4A03620 AXT 0,IR2 INITIALIZE DOFRET INDEX REGISTER. F4A03630 LDC FRET-1,IR4 SET TEST DECREMENTS IN THIS ROUTINE F4A03640 SXD DNDTST,IR4 WITH THE COMPLEMENT OF THE LENGTH F4A03650 SXD DOTEST,IR4 OF FRET. F4A03660 SXD PNDTST,IR4 F4A03670 SXD PRBTST,IR4 F4A03680 LDI NEGMAX LOAD SI WITH SIGNAL. F4A03690 DNDTST TXL DOMOVE,IR1,...... DOES TABLE END WITH A DOFRET ENTRY. F4A03700 CLA FRET,IR1 IS THIS A FORMULA NUMBER. F4A03710 TPL ACCUM NO. IT IS A FREQUENCY. F4A03720 DOMOVE CLA FRET-2,IR1 THE PREVIOUS ENTRY WAS A DOFRET ENTRY. F4A03730 STO DOFRET,IR2 MOVE IT TO DOFRET TABLE. F4A03740 CLA FRET-1,IR1 F4A03750 STO DOFRET-1,IR2 F4A03760 STI FRET-2,IR1 STORE SIGNAL TO INDICATE VACATED F4A03770 REM DOFRET ENTRY. F4A03780 TXI DOTEST,IR2,2 SET DOFRET INDEX REG FOR NEXT ENTRY. F4A03790 DOTEST TXL SAVDOF,IR1,...... HAS ALL OF FRET BEEN TREATED. F4A03800 TXI DNDTST,IR1,-2 SET FRET IR TO LOOK TWO WORDS AHEAD. F4A03810 ACCUM ADD FRET-1,IR1 ADD LAST FREQUENCY TO THIS ONE TO GET F4A03820 STO FRET,IR1 CUMULATIVE FREQUENCY. F4A03830 TXI PNDTST,IR1,-1 SET FRET IR TO LOOK AT NEXT WORD. F4A03840 PNDTST TXL DIVFRQ,IR1,...... DOES TABLE END WITH REGULAR FRET ENTRY F4A03850 CLA FRET,IR1 IS THIS A FORMULA NUMBER. F4A03860 TPL ACCUM NO. IT IS ANOTHER FREQUENCY. F4A03870 DIVFRQ CLA FRET-1,IR1 SET TOTAL FREQUENCY OF ENTRY AS F4A03880 STO ERASE1 DIVISOR. F4A03890 CLA POSMAX SET THE HIGHEST POSITIVE NUMBER AS THE F4A03900 STO FRET-1,IR1 TOTAL PROBABILITY OF THE ENTRY. F4A03910 SXA CONTIN,IR1 SAVE CURRENT FRET INDEX. F4A03920 TXI DIVDND,IR1,2 SET IR TO LOOK AT THE NEXT TO LAST F4A03930 REM FREQUENCY IN THIS ENTRY. F4A03940 DIVDND CLA FRET,IR1 LOOK AT PREVIOUS FREQUENCY. F4A03950 TMI CONTIN IS IT THE FORMULA NO. FOR THE ENTRY. F4A03960 LDQ ZERO NO, DIVIDE THIS CUMULATIVE FREQUENCY F4A03970 DVP ERASE1 BY TOTAL FREQUENCY TO GET F4A03980 DCT CUMULATIVE PROBABILITY. F4A03990 LDQ POSMAX F4A04000 STQ FRET,IR1 F4A04010 TXI DIVDND,IR1,1 SET IR TO LOOK AT THE FREQ BEFORE THIS F4A04020 CONTIN AXT ......,IR1 RESTORE CURRENT FRET INDEX. F4A04030 PRBTST TXL SAVDOF,IR1,...... HAS ALL OF FRET BEEN TREATED. F4A04040 TXI DNDTST,IR1,-2 SET FRET IR TO LOOK TWO WORDS AHEAD. F4A04050 REM F4A04060 REM SQUEEZ / NO SUBROUTINES CALLED F4A04070 REM THIS ROUTINE, SCANNING FRET FOR THE SIGNALS LEFT BY THEF4A04080 REM PREVIOUS ROUTINE WHICH MARK THE VACATED DOFRET ENTRIES, F4A04090 REM CLOSES UP THE FRET TABLE SO THAT ONLY REGULAR FRET ENTRIES F4A04100 REM REMAIN. F4A04110 REM ALSO THIS ROUTINE STORES THE LENGTH OF FRET IN A CELL F4A04120 REM CALLED FRTBOX. F4A04130 SQUEEZ TXI *+1,IR4,2 SET TEST DECREMENT FOR END OF F4A04140 SXD SQTEST,IR4 SQUEEZE LOOP. F4A04150 SXA *+1,IR1 INITIALIZE INDEX REGISTER FOR F4A04160 AXT ......,IR2 SQUEEZE LOOP. F4A04170 SQLOOP LDQ FRET+2,IR2 MOVE UP NEXT WORD. F4A04180 STQ FRET,IR2 F4A04190 TXI SQTEST,IR2,-1 SET INDEX REG FOR MOVING NEXT WORD. F4A04200 SQTEST TXH SQLOOP,IR2,...... HAVE ALL WORDS BEEN MOVED UP. F4A04210 TRA FRETLP YES, LOOK AT NEXT FRET ENTRY. F4A04220 SAVDOF SXD DOSUB,IR2 F4A04230 SXD DOFTST,IR2 SET TEST DECREMENT IN LOADDO ROUTINE. F4A04240 CLA FRET-1 SAVE LENGTH OF FRET. F4A04250 SUB DOSUB F4A04260 STO FRTBOX F4A04270 TZE SORTDO IF FRET WAS ALL DOFRET ENTRIES OR ALL F4A04280 TXL SORTDO,IR2,0 REGULAR FRET ENTRIES, SKIP SQUEEZE F4A04290 REM ROUTINE. F4A04300 AXT 0,IR1 INITIALIZE INDEX REG FOR FRET LOOP. F4A04310 LDC FRTBOX,IR4 SET TEST DECREMENT FOR END OF FRET F4A04320 SXD FRTEND,IR4 LOOP. F4A04330 LDC FRET-1,IR4 PREPARE FOR SETTING OF SQUEEZE LOOP F4A04340 REM TEST DECREMENT. F4A04350 CAL NEGMAX LOAD AC WITH SIGNAL. F4A04360 FRETLP LDI FRET,IR1 PICK UP NEXT FRET WORD. F4A04370 TIO SQUEEZ IS THIS AND THE NEXT WORD A VACATED F4A04380 REM DOFRET ENTRY. F4A04390 TXI FRTEND,IR1,-1 SET IR TO PICK UP NEXT FRET WORD. F4A04400 FRTEND TXH FRETLP,IR1,...... HAS ALL OF FRET BEEN TREATED. F4A04410 REM F4A04420 REM SORTDO / NO SUBROUTINES CALLED F4A04430 REM DOLIST IS BUILT UP IN PASS1 ORDERED ON THE ENDS OF DOS F4A04440 REM (LOCATIONS OF TXLS IN THE OBJECT PROGRAM). THIS ROUTINE F4A04450 REM SORTS DOLIST SO THAT IT IS ORDERED ON THE BEGINNINGS OF DOS F4A04460 REM (ADDRESSES OF TXLS). F4A04470 SORTDO LXD DOBOX,IR1 LOAD IR WITH LENGTH OF DOLIST. F4A04480 TXL FREAD2,IR1,0 IF DOLIST IS EMPTY, SKIP DO ROUTINES. F4A04490 NXTPAS SXA STORHI,IR1 SAVE CURRENT SORTING INDEX. F4A04500 CAL DOLIST,IR1 PICK UP NEXT ENTRY NOT YET SORTED. F4A04510 LDQ DOLIST+1,IR1 F4A04520 SORTLP TXL STORHI,IR1,2 IS THERE ANOTHER ENTRY TO COMPARE. F4A04530 LAS DOLIST+2,IR1 COMPARE ADDRESSES OF DOS. F4A04540 TXI SORTLP,IR1,-2 STORED ADDRESS SMALLER, COMPARE NEXT. F4A04550 TRA 2NDCMP ADDRESSES ARE EQUAL, COMPARE LOCATIONS F4A04560 LDI DOLIST+2,IR1 STORED ADDRESS LARGER, SWITCH ENTRIES. F4A04570 SLW DOLIST+2,IR1 F4A04580 XCL F4A04590 LDQ DOLIST+3,IR1 F4A04600 SLW DOLIST+3,IR1 F4A04610 PIA F4A04620 TXI SORTLP,IR1,-2 SET IR TO COMPARE NEXT ENTRY. F4A04630 2NDCMP PAI F4A04640 CLA DOLIST+3,IR1 F4A04650 TLQ FIXAC AC LOC. LARGER, DONT SWITCH ENTRIES. F4A04660 CAL DOLIST+3,IR1 AC LOCATION SMALLER, SWITCH ENTRIES. F4A04670 STQ DOLIST+3,IR1 F4A04680 LDQ DOLIST+2,IR1 F4A04690 STI DOLIST+2,IR1 F4A04700 XCL F4A04710 TXI SORTLP,IR1,-2 SET IR TO COMPARE NEXT ENTRY. F4A04720 FIXAC PIA RESTORE AC. F4A04730 TXI SORTLP,IR1,-2 SET IR TO COMPARE NEXT ENTRY. F4A04740 STORHI AXT ......,IR1 RESTORE CURRENT SORTING INDEX. F4A04750 SLW DOLIST,IR1 STORE AS NEXT HIGHEST SORTED ENTRY. F4A04760 STQ DOLIST+1,IR1 F4A04770 TXI *+1,IR1,-2 SET IR TO PICK UP NEXT UNSORTED ENTRY. F4A04780 TXH NXTPAS,IR1,2 IS TABLE ALL SORTED. F4A04790 REM F4A04800 REM REPLACE DO / NO SUBROUTINES CALLED F4A04810 REM THIS ROUTINE REPLACES THE INSTRUCTION NUMBERS (TXL LO- F4A04820 REM CATIONS AND ADDRESSES) IN DOLIST BY BASIC BLOCK NUMBERS. F4A04830 REM (BASIC BLOCKS ARE NUMBERED IN THE ORDER OF THEIR APPEARANCE F4A04840 REM IN THE OBJECT PROGRAM FROM 0 THRU N-1 WHERE N IS THE NUMBER F4A04850 REM OF BASIC BLOCKS IN THE PROGRAM.) F4A04860 AXT 1,IR1 INITIALIZE DOLIST INDEX REGISTER. F4A04870 AXT 0,IR2 INITIALIZE BBLIST INDEX REGISTER. F4A04880 CLA DOBOX SET TEST DECREMENT WITH LENGTH OF F4A04890 STD DOTIX DOLIST. F4A04900 DOTIX TIX LOADDO,IR1,...... HAVE ALL DOLIST ENTRIES BEEN CHANGED. F4A04910 CLA DOLIST-1,IR1 PICK UP NEXT DOLIST ADDRESS. F4A04920 ADCOMP CAS BBLIST,IR2 COMPARE WITH BBLIST ENTRIES. F4A04930 TXI ADCOMP,IR2,1 THIS BB BEGINS BEFORE THE DO BEGINS. F4A04940 REM TRY NEXT BB. F4A04950 PXD 0,IR2 THIS BB AND DO BEGIN TOGETHER, SO RE- F4A04960 STO DOLIST-1,IR1 PLACE TXL ADD. IN DOLIST WITH BB NO F4A04970 CLA DOLIST,IR1 PICK UP NEXT DOLIST LOCATION. F4A04980 LOCCOM CAS BBLIST,IR2 COMPARE WITH BBLIST ENTRIES. F4A04990 TXI LOCCOM,IR2,1 THIS BB BEGINS BEFORE THE DO ENDS. F4A05000 REM TRY NEXT BB. F4A05010 TSX ERRM4,IR4 ILLEGAL TRANSFER TO A TXL. F4A05020 TXI *+1,IR2,-1 THIS BB BEGINS AFTER THE DO ENDS, SO F4A05030 PXD 0,IR2 REPLACE TXL LOCATION IN DOLIST WITH F4A05040 STO DOLIST,IR1 BB NO. OF PREVIOUS BB. F4A05050 CLA DOLIST-1,IR1 CONTINUE COMPARING ENTRIES STARTING F4A05060 PDX 0,IR2 WITH THE SAME BB THAT BEGAN WITH F4A05070 TXI DOTIX,IR1,2 THIS DO AND THE NEXT DOLIST ADDRESS F4A05080 REM TO BE CHANGED. F4A05090 REM F4A05100 REM LOADDO / NO SUBROUTINES CALLED F4A05110 REM FIRST THIS ROUTINE INSURES THAT DOTAG HAS BEEN READ F4A05120 REM CORRECTLY FROM TAPE. THEN IT SCANS DOTAG. EVERY TIME A DO F4A05130 REM IS ENCOUNTERED WHICH HAS A TRANSFER IN ITS EXTENDED RANGE (AF4A05140 REM DO WITH AN IF) THIS IS INDICATED BY A TAG OF 7 IN THE 2ND F4A05150 REM WORD OF THE APPROPRIATE DOLIST ENTRY. F4A05160 REM THEN THE LOOP COUNT IS COMPUTED AND PLACED IN THE F4A05170 REM ADDRESS OF THE 1ST WORD OF THE APPROPRIATE DOLIST ENTRY. F4A05180 REM DOTAG TELLS IF THE PARAMETERS FOR THE DO ARE CONSTANTS OR F4A05190 REM VARIABLES. IF CONSTANTS, THE LOOP COUNT IS COMPUTED BY THE F4A05200 REM FORMULA (N2-N1+N3)/N3 WHERE N1, N2 AND N3 ARE THE PARAMETERSF4A05210 REM OF THE DO. IF ANY OF THE PARAMETERS ARE VARIABLES THE LOOP F4A05220 REM COUNT IS TAKEN FROM DOFRET (IF THE PROGRAMMER HAS GIVEN A F4A05230 REM FREQUENCY ESTIMATE FOR THE DO) OR A COUNT OF 5 IS USED (IF F4A05240 REM HE HAS NOT SO DONE). F4A05250 REM IN A CARRY CASE (WHERE 2 OR 3 DOS ARE BUILT INTO ONE F4A05260 REM LOOP) THE CARRY LOOP COUNT IS MULTIPLIED BY THE LOOP COUNT F4A05270 REM OF THE PREVIOUS DO TO GIVE THE TOTAL COUNT FOR THE LOOP. F4A05280 LOADDO TSX (TAPE),IR4 F4A05290 FTAPE2,,(CHKU) F4A05300 CLA DOTOP F4A05310 SUB DOBASE LENGTH OF DOTAG. F4A05320 PAC 0,IR4 SET TEST DECREMENTS WITH COMPLEMENT F4A05330 SXD DTGBOX,IR4 OF LENGTH OF DOTAG. F4A05340 AXT 0,IR1 INITIALIZE DOTAG INDEX REGISTER. F4A05350 AXT 1,IR2 INITIALIZE DOLIST INDEX REGISTER. F4A05360 SLF MAKE SURE SENSE LIGHTS ARE OFF. F4A05370 NEXTDO CLA DOTAG+6,IR1 IS THIS A DO WITH AN IF. F4A05380 TPL NOIF NO. F4A05390 CLA TMASK YES. INDICATE THIS IN DOLIST. F4A05400 STT DOLIST-1,IR2 F4A05410 NOIF CLA DOTAG,IR1 ARE ANY OF THE PARAMETERS OF THIS DO F4A05420 ANA TMASK VARIABLE. F4A05430 TNZ VARPAR YES. F4A05440 CLA DOTAG+5,IR1 NO. THEY ARE ALL CONSTANTS. COMPUTE F4A05450 STA ERASE2 LOOP COUNT BY DIVIDING N2-N1+N3 BY F4A05460 ZAC N3 WHERE N2, AND N3 ARE THE F4A05470 LDQ ERASE2 PARAMETERS OF THE DO. F4A05480 DVP DOTAG+4,IR1 F4A05490 DCT F4A05500 TSX ERRM4,IR4 DIVIDE ERROR, GO TO DIAGNOSTIC. F4A05510 REM ERASE2 LOADED WITH ADDRESS OF F4A05520 REM DOTAG+5,IR1, IR1 LOADED WITH F4A05530 REM ZERO (AT NEXTDO-3) AND MODIFIED F4A05540 REM WITH TXI (AT DTGBOX-1). DOTAG F4A05550 REM READ FROM TAPE 2, FILE 6. F4A05560 LITEST SLT 1 IS THIS A CARRY CASE. F4A05570 TRA *+2 NO. F4A05580 MPY ERASE3 YES. MULTIPLY LOOP COUNT BY PREVIOUS F4A05590 XCA LOOP COUNT. F4A05600 STA DOLIST,IR2 ENTER LOOP COUNT IN DOLIST. F4A05610 STA ERASE3 F4A05620 TXI DTGBOX,IR1,-9 SET IR FOR NEXT DOTAG ENTRY. F4A05630 DTGBOX TXL FREAD2,IR1,...... HAVE ALL DOTAG ENTRIES BEEN TREATED. F4A05640 NZT DOCARE-1 IS DOCARE EMPTY. F4A05650 TXI NEXTDO,IR2,2 YES, NO CARRY. SET IR FOR NEXT F4A05660 REM DOLIST ENTRY. F4A05670 LXD DOCARE-1,IR4 NO, SET TEST DECREMENT WITH COMPLEMENT F4A05680 SXD DCRTST,IR4 OF LENGTH OF DOCARE. F4A05690 AXT 0,IR4 INITIALIZE DOCARE INDEX REGISTER. F4A05700 CLA DOTAG,IR1 COMPARE 1ST WORD OF NEXT DOTAG WITH F4A05710 DODO CAS DOCARE,IR4 ALL OF DOCARE TO DISCOVER IF THIS F4A05720 TXI DCRTST,IR4,-1 DO IS A CARRY CASE. F4A05730 TRA LITEON THIS IS A CARRY CASE. F4A05740 TXI DCRTST,IR4,-1 F4A05750 DCRTST TXH DODO,IR4,...... HAS ALL DOCARE BEEN SEARCHED. F4A05760 TXI NEXTDO,IR2,2 NO CARRY. SET IR FOR NEXT DOLIST ENTRY F4A05770 LITEON SLN 1 TURN ON SENSE LITE 1 TO INDICATE CARRY F4A05780 TRA NOIF F4A05790 VARPAR AXT 1,IR4 LOAD IR WITH CURRENT DOFRET INDEX. F4A05800 REM (INITIALIZED AT 1) F4A05810 CLA DOTAG,IR1 COMPARE INTERNAL FORMULA NO. OF THIS F4A05820 ARS 18 DOTAG WITH DOFRET INTERNAL FORMULA F4A05830 SSM NOS. TO DISCOVER IF THERE IS A F4A05840 REM FREQUENCY STATEMENT FOR THIS DO. F4A05850 DOFTST TXH USE5,IR4,...... HAS ALL DOFRET BEEN SEARCHED. F4A05860 CAS DOFRET+1,IR4 F4A05870 TXI DOFTST,IR4,2 F4A05880 TXI USEDOF,IR4,2 YES, THERE IS A FREQUENCY FOR THIS DO. F4A05890 USE5 LDQ FIVE NO DOFRET ENTRY. USE 5 AS LOOP COUNT. F4A05900 SXA VARPAR,IR4 SAVE CURRENT DOFRET INDEX. F4A05910 TRA LITEST F4A05920 USEDOF LDQ DOFRET+2,IR4 USE DOFRET ENTRY AS LOOP COUNT. F4A05930 SXA VARPAR,IR4 SAVE CURRENT DOFRET INDEX. F4A05940 TRA LITEST F4A05950 FREAD2 TSX (LOAD),IR4 GO TO RECORD 27 F4A05960 PZE F4A05970 REM F4A05980 1TSX TSX RDCIT1,IR4 F4A05990 TRA TEST1 F4A06000 2TSX TSX RDCIT1,IR4 F4A06010 TRA TEST2 F4A06020 REM F4A06030 REM RDCIT1 / A SUBROUTINE CALLED BY PASS1 F4A06040 REM THIS ROUTINE READS A BUFFERLOAD OF COMPILED INSTRUC- F4A06050 REM TIONS (CIT) FROM TAPE INTO CORES AS NEEDED. WHILE PASS1 F4A06060 REM IS PROCESSING THE CITS IN ONE BUFFER THE NEXT TO NEXT F4A06070 REM BUFFER AHEAD IS BEING LOADED. ALOOK AHED ZONE FOR TWO F4A06080 REM CITS IS LOADED FROM THE FIRST BUFFER IN CASE OF OVERFLOW.F4A06090 REM AFTER ALL THE CITS HAVE BEEN PROCESSED THE EXIT IS TO F4A06100 REM ASSIGN. F4A06110 RDCIT1 SXA S1IR2,IR2 SAVE INDEX REGISTERS F4A06120 SXA S1IR4,IR4 F4A06130 ZET RDTBLS HAS FRET BEEN READ AND TAPE POSITIONED F4A06140 TSX RDTBLS,IR2 NO. F4A06150 LXA CTRD1,IR2 GET PREVIOUS LOAD ADDRESS. F4A06160 IOAJ1 TXI *+1,IR2,...... ADJUST FOR NEXT RECORD. F4A06170 TXH *+3,IR2,CTTP1-1 WOULD THIS BE ABOVE CIT AREA. F4A06180 SXA CTRD1,IR2 NO, SET IO COMMAND ADRESS. F4A06190 TRA *+3 F4A06200 RINT1 AXT CTBOT,IR2 YES, SET LOAD ADDRESS TO BOTTOM F4A06210 SXA CTRD1,IR2 OF AREA. F4A06220 TSX (TAPE),IR4 DELAY, CHECK AND START READ. F4A06230 CTRD1,,(RBEP) F4A06240 CTLBL,,CTAPE F4A06250 LXA (SCHU)+CTAPE,IR2 F4A06260 TXL LAST1,IR2,0 WAS LAST READ EOF. F4A06270 MTST1 TXL MOVE1,IR2,CTBOT NO, HAS FIRST BUFFER JUST BEEN FILLED. F4A06280 SXD *-1,IR2 NO F4A06290 AJBF1 AXT CTBOT,IR2 ADJUST PROCESSING TEST DECREMENT F4A06300 PRAJ1 TXI *+1,IR2,...... FOR NEXT RECORD. F4A06310 SXA *-2,IR2 F4A06320 PXA ,IR2 F4A06330 PAC ,IR2 F4A06340 TXH *+3,IR2,-CTTP1-1 SHOULD PROCESSING RESTART AT BOTTOM. F4A06350 AXT CTBOT,IR2 YES F4A06360 TRA PRAJ1 F4A06370 SXD BEGN1,IR2 F4A06380 SXD CNTU1,IR2 F4A06390 S1IR2 AXT ......,IR2 RELOAD INDEX REGISTERS F4A06400 S1IR4 AXT ......,IR4 F4A06410 TRA 1,IR4 F4A06420 MOVE1 SXD MTST1,IR2 MOVE FIRST TWO CITS FROM FIRST OF F4A06430 AXT ZONSZ,IR2 BOTTOM BUFFER TO LOOK AHEAD ZONE. . F4A06440 CLA CTBOT+ZONSZ,IR2 F4A06450 STO CTTP1+ZONSZ,IR2 F4A06460 TIX *-2,IR2,1 F4A06470 TRA AJBF1 F4A06480 LAST1 AXC ......,IR2 SET TEST DECREMENTS AND EXIT ADRESS F4A06490 SXD BEGN1,IR2 FOR PROCESSING LAST RECORD. F4A06500 SXD CNTU1,IR2 F4A06510 CLA EXIT1 F4A06520 STA BEGN1 F4A06530 STA CNTU1 F4A06540 STA BEGN1-1 F4A06550 STA CNTU1-1 F4A06560 TRA S1IR2 F4A06570 REM F4A06580 RDTBLS SXA RLD2,IR2 READ TIFGO, TRAD, SKIP FOUR RECORDS, F4A06590 AXT 5,IR2 READ FRET AND THEN SKIP TO EOF. F4A06600 TSX (TAPE),IR4 F4A06610 TBLRD,IR2,-1 F4A06620 MIH,IR2,-1 F4A06630 TIX *+2,IR2,1 F4A06640 STZ RDTBLS F4A06650 SXA RDTBLS+1,IR2 F4A06660 RLD2 AXT ......,IR2 F4A06670 TRA 1,IR2 F4A06680 TFGRD,,(RBNP) IO PARAMETERS FOR RDTBLS F4A06690 TRDRD,,(RBNP) F4A06700 SK4R,,(SKBP) F4A06710 FRTRD,,(RBNP) F4A06720 SKFL,,(SKBP) F4A06730 TBLRD TFGLBL,,FTAPE2 F4A06740 TRDLBL,,FTAPE2 F4A06750 FRTLBL,,FTAPE2 F4A06760 FRTLBL,,FTAPE2 F4A06770 DTGLBL,,FTAPE2 F4A06780 REM F4A06790 REM MIH / A SUBROUTINE CALLED BY PASS1 AND ASSIGN F4A06800 REM THIS ROUTINE MAKES ENTRIES IN THE BBLIST. IT IS CALLEDF4A06810 REM BY TSX MIH,IR4 WITH THE ARGUMENT IN THE AC. MIH FIRST MAKESF4A06820 REM A BINARY SEARCH OF THE CURRENT BBLIST TO SEE IF THE ARGUMENTF4A06830 REM IS ALREADY IN THE TABLE. IF SO, IT RETURNS TO THE CALLER. F4A06840 REM IF NOT, IT INSERTS THE ARGUMENT IN BBLIST, PRESERVING ALGE- F4A06850 REM BRAIC ORDER. RETURN IS ALWAYS TO 1,IR4. F4A06860 REM A TEST FOR OVERFLOW OF TABLE IS ALSO MADE IN MIH. IF F4A06870 REM BBLIST EXCEEDS ITS PRESCRIBED LIMIT, THE FORTRAN DIAGNOSTIC F4A06880 REM IS CALLED IN TO ADVISE THE PROGRAMMER TO SIMPLIFY HIS F4A06890 REM PROGRAM. F4A06900 REM THE VERY FIRST ENTRY AND AN ENDMARK ARE PLACED IN F4A06910 REM BBLIST BY PASS1 WITHOUT CALLING ON MIH. THEREAFTER MIH F4A06920 REM INSERTS THE ENTRIES. BBLIST IS BUILT UP BACKWARDS IN CORES.F4A06930 REM F4A06940 MIH SLW ARG F4A06950 CLA ANTEBB INITIALIZE FLOOR AND ROOF. F4A06960 STO FLOOR F4A06970 CLA NTH F4A06980 STO ROOF F4A06990 LOOKUP CLA ROOF COMPUTE ADDRESS OF NEXT TABLE MEMBER F4A07000 ADD FLOOR TO BE COMPARED WITH ARGUMENT. F4A07010 ARS 1 (FIND MIDPOINT OF UNSEARCHED AREA F4A07020 STO TRYME OF TABLE). F4A07030 CLA* TRYME COMPARE ARGUMENT WITH TABLE MEMBER. F4A07040 CAS ARG F4A07050 TRA LOWER SEARCH LOWER F4A07060 TRA 1,IR4 THIS ARG ALREADY IN BBLIST. IGNORE IT. F4A07070 CLA TRYME RAISE FLOOR AND KEEP SEARCHING. F4A07080 STO FLOOR F4A07090 TRA LOOKUP F4A07100 LOWER CLA TRYME F4A07110 SUB ROOF F4A07120 TZE INSERT THIS ARG NOWHERE IN BBLIST. INSERT IT. F4A07130 CLA TRYME LOWER ROOF AND KEEP SEARCHING. F4A07140 STO ROOF F4A07150 TRA LOOKUP+1 F4A07160 INSERT CLA NTH COMPUTE WHAT ENTRIES MUST BE MOVED. F4A07170 STA MOVE F4A07180 SUB ONE F4A07190 CAS LIMIT IS BBLIST FULL F4A07200 TRA *+3 F4A07210 TRA *+2 F4A07220 TSX ERR42,IR4 BBLIST IS FULL WITHOUT THIS ENTRY. F4A07230 STA MOVE+1 F4A07240 STO NTH LOWER ADDRESS OF HIGHEST ENTRY F4A07250 SUB TRYME F4A07260 PAC 0,IR2 F4A07270 SXD MOVTST,IR2 F4A07280 AXT 0,IR2 F4A07290 MOVE CLA ......,IR2 MOVE UP ALL ENTRIES HIGHER THAN ARG F4A07300 STO ......,IR2 TO MAKE ROOM FOR ARGUMENT. F4A07310 TXI MOVTST,IR2,-1 F4A07320 MOVTST TXH MOVE,IR2,...... F4A07330 CLA ARG INSERT ARGUMENT IN CORRECT PLACE. F4A07340 STO* TRYME F4A07350 TRA 1,IR4 RETURN TO MAIN ROUTINE. F4A07360 CONDO CLA (SCHU)+FTAPE2 F4A07370 STA DORD F4A07380 STA DOTOP F4A07390 TRA REEDDO F4A07400 END26 SYN *+30 F4A07410 TCD -1 $F4A07415 TTL SECTION 4, PART TWO F4A07420 LBL 9F24,S F4B00000 REM SECTION 4 - PART 2 OF 3 F4B00010 REM F4B00020 ORG SYSCUR $F4B00030 BCI 1,9F2400 $F4B00040 ORG (LODR) $F4B00050 TXI PASS2,,240 F4B00070 REM F4B00090 REM CONSTANTS AND VARIABLES FIRST APPEARING IN PART 2. F4B00100 ORG TRA+1 F4B00110 SIX DEC 6 F4B00120 CTSPC2 PZE CTSP2 F4B00130 CTINFL PZE -1 F4B00140 ADMASK OCT 77777 F4B00150 TSBOX ...... TRATBL AND SET COUNTER F4B00160 BBBOX ...... BASIC BLOCK COUNTER F4B00170 REM F4B00180 REM CONSTANTS USED IN PART 2 ONLY. F4B00190 D3 PZE 0,0,3 F4B00200 EXIT2 PZE OUT EXIT ADDRESS FROM PASS2 F4B00210 CSLITE PZE 0,0,-NLIST-4 F4B00220 LNLST PZE 0,0,-NLIST F4B00230 CTRA PZE 0,0,-TRATBL+2 F4B00240 FIXLIM PZE NLIST-200*M/N-2 F4B00250 REM ENTRY MAY BE STORED. F4B00260 NODO TRA SAVE4 F4B00270 OCT 35121000000 TRA F4B00280 OCT 41104000000 PSE-TRA F4B00290 OCT -33642000000 DCT-PSE F4B00300 OCT 3642000000 MSE-DCT F4B00310 OCT -7100000000 TZE-MSE F4B00320 OCT -32154000000 HPR-TZE F4B00330 NNDCON OCT 31316000000 TSX-HPR F4B00340 OCT 35121000000 TRA F4B00350 OCT 1622000000 TXL-TRA F4B00360 ENDCON OCT -372000000 TTR-TXL F4B00370 PSE OCT 76225000000 F4B00380 PBYCOD OCT 200000000000 F4B00390 CERTCD OCT 300000000000 F4B00400 GTNCD OCT 500000000000 F4B00410 STOPCD OCT 600000000000 F4B00420 D34MSK OCT 770000000 F4B00430 D5MASK OCT 7000000 F4B00440 AD14X OCT 140000000 F4B00450 AD16X OCT 160000000 F4B00460 ERR43 TXI (DIAG),,-2 GO TO VECTOR WITH NO BRANCHES. F4B00470 ERR44 TXI (DIAG),,-2 FLOW ERROR. F4B00480 ERR45 TXI (DIAG),,-3 NLIST OVERFLOW. F4B00490 ERR46 TXI (DIAG),,-4 TRATBL OVERFLOW. F4B00500 ERR47 TXI (DIAG),,-5 SET OVERFLOW. F4B00510 ERR48 TXI (DIAG),,-6 FIXDO OVERFLOW. F4B00520 ERR41 TXI (DIAG),,-7 NO ASSIGN FOR GOTON(S). F4B00530 ERR40 TXI (DIAG),,-10 FLOW ERROR OR MACHINE ERROR. F4B00540 LOAD TSX (LOAD),IR4 GO TO RECORD 28. F4B00550 PZE F4B00560 REM F4B00570 REM PASS2 / CALLS ON RDCIT2, FINDBB, SERCHN AND ENTER F4B00580 REM A SECOND PASS IS MADE OVER THE COMPILED INSTRUCTIONS, F4B00590 REM PRODUCING THE THREE PRINCIPLE TABLES WITH WHICH SIMULATION F4B00600 REM IS ACCOMPLISHED, NAMELY TRATBL (2 WORDS PER ENTRY), SET (1 F4B00610 REM WORD PER ENTRY), AND BBTABL (1 WORD PER ENTRY). F4B00620 REM TRATBL CONTAINS FOR EACH BASIC BLOCK IN THE OBJECT F4B00630 REM PROGRAM THE BASIC BLOCK NUMBERS OF ITS SUCCESSOR BASIC F4B00640 REM BLOCKS (THOSE TO WHICH TRANSFER IS MADE). ASSOCIATED WITH F4B00650 REM EACH OF THESE SUCCESSOR BASIC BLOCK NUMBERS IS A COUNTER F4B00660 REM (PRESET TO ONE) WHICH DURING SIMULATION WILL KEEP COUNT OF F4B00670 REM THE NUMBER OF TIMES THE PATH BETWEEN THE PREDECESSOR AND F4B00680 REM SUCCESSOR IN QUESTION HAS BEEN TRAVERSED. F4B00690 REM SET CONTAINS INFORMATION PERTINENT TO THE THREE TYPES F4B00700 REM OF SETTING THAT MUST BE DONE DURING SIMULATION - 1.) THE F4B00710 REM SETTING OF ASSIGNED GO TO ADDRESSES, 2.) THE SETTING OF F4B00720 REM SENSE LIGHTS AND 3.) THE RESETTING OF DO INDEXES FOR DOS F4B00730 REM WHICH HAVE TRANSFERS OUT OF THEIR RANGE. F4B00740 REM BBTABL TELLS FOR EACH BASIC BLOCK 1.) WHICH OF THE 7 F4B00750 REM KINDS OF BASIC BLOCK ENDINGS IT HAS, 2.) THE RELATIVE AD- F4B00760 REM DRESS OF THE 1ST WORD OF THE ASSOCIATED TRATBL ENTRIES, AND F4B00770 REM 3.) THE RELATIVE ADDRESS OF THE 1ST WORD OF THE ASSOCIATED F4B00780 REM SET ENTRIES. F4B00790 PASS2 ZAC F4B00800 AXT CTBOT,IR2 F4B00810 SXA CTRD1,IR2 SET IO COMMAND ADDRESS FOR BOTTOM CIT. F4B00820 LDQ ILNGTH F4B00830 DVP CTSPC2 DIVIDE NO. OF WORDS IN CIT BY AREA F4B00840 DCT LENGTH TO FIND TOP OF LAST RECORD. F4B00850 TSX ERRM4,IR4 DIVIDE ERROR, GO TO DIAGNOSTIC. F4B00860 REM ILNGTH LOADED FROM CTCNT IN F4B00870 REM FIRST OF PASS1 AND CTSPC2 DEFINED F4B00880 REM AT ASSEMBLY. F4B00890 ADD CTRD1 LAST CIT ADRESS F4B00900 STA LAST2 F4B00910 XCA F4B00920 TZE ALLIN IS ALL OF CIT IN CORE. F4B00930 SUB ONE MAYBE NOT F4B00940 TNZ NALIN NO. F4B00950 CLA LAST2 STILL MAYBE. F4B00960 ADD CTRD1 F4B00970 ANA ADMASK F4B00980 TNZ NALIN NO. F4B00990 AXT CTTP2,IR2 YES. F4B01000 SXA LAST2,IR2 F4B01010 ALLIN AXT 11,IR4 SET EXIT CONDITIONS BY EXECUTING F4B01020 XEC LAST2+11,IR4 ROUTINE IN RDCIT2. F4B01030 TIX *-1,IR4,1 F4B01040 STZ CTINFL SET FLAG FOR PART 3. F4B01050 TRA START F4B01060 NALIN LXA RLNGTH,IR2 F4B01070 SXD IOAJ2,IR2 F4B01080 SXD PRAJ2,IR2 F4B01090 CLA CTSPC1 F4B01100 SUB ILNGTH F4B01110 TMI STRTRD IS FIRST LOAD IN CORE. F4B01120 AXT CTTP2,IR2 YES F4B01130 SXA (SCHU)+CTAPE,IR2 SET TEST DECREMENTS AND LOAD F4B01140 PXA ,IR2 ADDRESSES TO START READING F4B01150 SUB RLNGTH AFTER FIRST LOAD IS PROCESSED. F4B01160 SUB RLNGTH F4B01170 STA AJBF2 F4B01180 PAC ,IR2 F4B01190 SXD BEGN2,IR2 F4B01200 SXD CNTU2,IR2 F4B01210 CLA CTRD1 F4B01220 SUB RLNGTH F4B01230 STA CTRD1 F4B01240 ZAC F4B01250 LDQ CTSPC2 COMPUTE NO. OF RECORDS IN ONE LOAD. F4B01260 DVP RLNGTH FOR POSITIONING TAPE. F4B01270 DCT F4B01280 TSX ERRM4,IR4 DIVIDE ERROR, GO TO DIAGNOSTIC F4B01290 REM RLNGTH WAS COMPUTED AND LOADED F4B01300 REM IN PASS1 F4B01310 STQ SKNR F4B01320 TSX (TAPE),IR4 POSITION TAPE FOR READING SECOND F4B01330 SKNR,,(SKBP) LOAD. F4B01340 CTLBL,,CTAPE F4B01350 TRA START F4B01360 STRTRD TSX (TAPE),IR4 READ FIRST RECORD, DELAY AND F4B01370 CTRD1,,(RBNC) CHECK. F4B01380 CTLBL,,FTAPE4 F4B01390 CLA (SCHU)+FTAPE4 F4B01400 STA CTRD1 LOAD ADDRESS FOR NEXT RECORD. F4B01410 TSX (TAPE),IR4 READ NEXT RECORD. F4B01420 CTRD1,,(RBEP) F4B01430 CTLBL,,CTAPE F4B01440 TSX RDCIT2,IR4 F4B01450 START AXT TRAMAX,IR1 CLEAR THE TRANSFER TABLE AND SET ALL (32)F4B01460 CLA ONE COUNTERS TO ONE. F4B01470 CLRTRA STO TRATBL+1,IR1 F4B01480 STZ TRATBL+2,IR1 F4B01490 D2 TIX CLRTRA,IR1,2 F4B01500 STZ NLIST-1 STORE ENDMARK FOR NLIST. F4B01510 LXD DOBOX,IR1 STORE ENDMARK FOR DOLIST. F4B01520 CLA DMASK F4B01530 STO DOLIST-1,IR1 F4B01540 AXC CTBOT,IR1 F4B01550 AXC 1,IR2 INITIALIZE BBTABL INDEX REGISTER. F4B01560 CLA DOBOX F4B01570 TNZ BEGBB F4B01580 CLA NODO F4B01590 STO SETDO F4B01600 BEGBB TXI *+1,IR2,1 SET IR FOR NEXT BBTABL ENTRY. F4B01610 CLA TSBOX PUT TRATBL AND SET ADDRESSES F4B01620 STO BBTABL,IR2 IN BBTABL. F4B01630 TEST3 TXH *+2,IR1,-CTTP2 F4B01640 TXI 3TSX,IR1,CTSP2 F4B01650 BEGN2 TXL 3TSX,IR1,...... F4B01660 CLA INSTLC,IR1 DOES THIS INSTR. HAVE A FORMULA NO. F4B01670 TZE TR3S+1 NO. F4B01680 TIFBOX AXT ......,IR4 YES, LOAD IR WITH TIFRD COUNT. (INIT- F4B01690 REM IALIZED AT ZERO) F4B01700 ADD SIX F4B01710 SUB TIFRD,IR4 IS THIS INSTRUCTION AN ASSIGN. F4B01720 TZE ASNCAS YES, THIS IS AN ASSIGN CASE. F4B01730 CLA INSTOP,IR1 NO, IS THIS INSTRUCTION A PSE. F4B01740 ANA DMASK F4B01750 SUB PSE F4B01760 TNZ TSTTR NO. F4B01770 CLA INSTAA,IR1 YES, IS ITS ADDRESS 140-144. F4B01780 ANA D34MSK F4B01790 SUB AD14X F4B01800 TZE SETSLT THIS IS A SET SENSE LIGHT INST. F4B01810 CLA INSTLC+4,IR1 DOES NEXT INSTRUCTION BEGIN A F4B01820 SUB BBLIST-1,IR2 BASIC BLOCK. F4B01830 TZE CERTCS YES. F4B01840 TRA IF2PSE F4B01850 ASNCAS CLA INSTAD+4,IR1 ENTER N FOR THIS ASSIGN INTO NLIST, F4B01860 TSX SERCHN,IR4 IF NOT ALREADY ENTERED. F4B01870 ADD LNLST CREATE COMPLEMENT OF ADDRESS OF NLIST F4B01880 LXA TSBOX,IR4 ENTRY. F4B01890 TXH SETTSX,IR4,SETMAX HAS THE SET TABLE OVERFLOWED. F4B01900 STO SET,IR4 STORE THIS COMPLEMENT IN DECREMENT OF F4B01910 LXA TIFBOX,IR4 SET TABLE. F4B01920 CLA TIFRD+1,IR4 GET TIFRD BETA (TRANSFER ADDRESS). F4B01930 ALS 18 F4B01940 TXI *+1,IR4,-2 SET IR FOR NEXT LOOK AT TIFRD. F4B01950 SXA TIFBOX,IR4 SAVE TIFRD INDEX. F4B01960 TSX FINDBB,IR4 FIND BB NO. OF TIFRD BETA. F4B01970 ARS 18 F4B01980 LXA TSBOX,IR4 F4B01990 STA SET,IR4 STORE SUCCESSOR BB NO. IN ADDR. OF SET F4B02000 TXI *+1,IR4,1 SET INDEX REGISTER FOR NEXT SET ENTRY. F4B02010 TXI TR3S,IR1,-4 F4B02020 SETSLT LXA TSBOX,IR4 F4B02030 CLA INSTAA,IR1 DOES THIS INSTR. SET LIGHTS ON OR OFF. F4B02040 ANA D5MASK F4B02050 TZE LITOFF OFF. F4B02060 ADD CSLITE ON, CREATE COMPLEMENT OF ADDRESS OF F4B02070 ADD ONE DUMMY SENSE LIGHT. F4B02080 TXH SETTSX,IR4,SETMAX HAS THE SET TABLE OVERFLOWED. F4B02090 STO SET,IR4 STORE THIS COMPLEMENT IN DECREMENT OF F4B02100 REM SET TABLE AND A ONE IN THE ADDRESS F4B02110 REM TO INDICATE LIGHT ON. F4B02120 TXI TR3S,IR4,1 SET INDEX REGISTER FOR NEXT SET ENTRY. F4B02130 LITOFF SXA HOLD2,IR2 F4B02140 AXT 4,IR2 F4B02150 CLA CSLITE CREATE COMPLEMENTS OF ADDRESSES OF ALL F4B02160 3ADD ADD D1 FOUR DUMMY SENSE LIGHTS. F4B02170 TXH SETTSX,IR4,SETMAX HAS THE SET TABLE OVERFLOWED. F4B02180 STO SET,IR4 STORE THESE COMPLEMENTS IN DECR. OF F4B02190 REM SUCCESSIVE SET ENTRIES WITH ZERO F4B02200 REM IN THE ADDRESS FIELDS TO INDICATE F4B02210 REM LIGHT OFF. F4B02220 TXI *+1,IR4,1 SET INDEX REGISTER FOR NEXT SET ENTRY. F4B02230 TIX 3ADD,IR2,1 F4B02240 HOLD2 AXT ......,IR2 F4B02250 TR3S SXA TSBOX,IR4 SAVE SET TABLE INDEX. F4B02260 CLA INSTLC+4,IR1 DOES NEXT INSTR. BEGIN A BASIC BLOCK. F4B02270 SUB BBLIST-1,IR2 F4B02280 TZE CERTCS YES. F4B02290 TXI TEST3,IR1,-4 NO, SET IR FOR NEXT LOOK AT CIT. F4B02300 TSTTR CLA INSTLC+4,IR1 DOES NEXT INSTR. BEGIN A BASIC BLOCK. F4B02310 SUB BBLIST-1,IR2 F4B02320 TZE ENDBB YES. F4B02330 AXT 7,IR4 NO, IS THIS INSTR. A TRA, PSE, DCT, F4B02340 CAL INSTOP,IR1 MSE, TZE, HPR OR TSX. F4B02350 ANA DMASK F4B02360 NNDSUB SUB NNDCON+1,IR4 F4B02370 TZE* NNDVEC+1,IR4 F4B02380 TIX NNDSUB,IR4,1 F4B02390 CAL INSTOP,IR1 IT IS NONE OF THE ABOVE. IS IT SOME F4B02400 ANA 1STLET OTHER KIND OF TRANSFER. (IS 1ST F4B02410 ERA T LETTER OF OP CODE A T.) F4B02420 TZE CONDTR YES, IT MUST BE A 2-WAY TRANSFER CASE. F4B02430 IGNORE TXI TEST3,IR1,-4 NO, IGNORE IT AND LOOK AT NEXT CIT. F4B02440 TRA GOTOV2 TRA F4B02450 TRA IF2PSE PSE F4B02460 TRA IF2CAS DCT F4B02470 TRA MSECAS MSE F4B02480 TRA IF3CAS TZE F4B02490 TRA HPRCAS HPR F4B02500 NNDVEC TRA IGNORE TSX F4B02510 ENDBB AXT 3,IR4 IS THIS INSTR. A TRA, TXL OR TTR. F4B02520 CLA INSTOP,IR1 F4B02530 ANA DMASK F4B02540 ENDSUB SUB ENDCON+1,IR4 F4B02550 TZE* ENDVEC+1,IR4 F4B02560 TIX ENDSUB,IR4,1 F4B02570 CERTCS TSX ENTER,IR4 IT IS NONE OF THE ABOVE. IT MUST BE F4B02580 REM A CERTAINTY ENDING. F4B02590 CAL CERTCD PUT CERTAINTY CODE IN BBTABL. F4B02600 STP BBTABL,IR2 F4B02610 TXI BEGBB,IR1,-4 GO BACK TO DO NEXT BASIC BLOCK. F4B02620 TRA TRACS TRA F4B02630 TRA DOCAS TXL F4B02640 ENDVEC TRA TRACS+3 TTR F4B02650 TRACS CAL INSTAD,IR1 IS THIS TRA A GO TO N. F4B02660 ANA PMASK F4B02670 TNZ GOTON2 YES. F4B02680 CLA INSTAD,IR1 NO, IT IS A STRAIGHT GO TO. F4B02690 TSX FINDBB,IR4 GET THE SUCCESSOR BB NO. F4B02700 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B02710 CAL CERTCD PUT CERTAINTY CODE IN BBTABL. F4B02720 STP BBTABL,IR2 F4B02730 TXI BEGBB,IR1,-4 GO BACK TO DO NEXT BASIC BLOCK. F4B02740 GOTON2 CAL GTNCD PUT GO TO N CODE IN BBTABL. F4B02750 STP BBTABL,IR2 F4B02760 CLA ONE SET FLAG FOR GOTON IN SOURCE PROGRAM. F4B02770 STA GTNCD F4B02780 CLA INSTAD,IR1 GET RELATIVE ADDRESS OF PROPER F4B02790 TSX SERCHN,IR4 NLIST ENTRY. F4B02800 LXD TSBOX,IR4 F4B02810 STD TRATBL,IR4 PUT IT IN DECR. OF 1ST WORD OF TRATBL. F4B02820 LXA TIFBOX,IR4 MAKE SURE THERE IS A TIFRD ENTRY F4B02830 CLA INSTLC,IR1 FOR THIS GO TO N. F4B02840 ANA DMASK F4B02850 ADD ONE F4B02860 SUB TIFRD,IR4 F4B02870 TZE *+2 F4B02880 TSX ERRM4,IR4 NO ENTRY FOUND IN TIFRD FOR A GO TO N. F4B02890 TXI *+1,IR4,-2 SET IR FOR NEXT LOOK AT TIFRD. F4B02900 8CLA CLA TIFRD,IR4 PICK UP NEXT TRA ADDRESS FROM TIFRD. F4B02910 SXA TIFBOX,IR4 F4B02920 TPL GOTON2-1 THIS GO TO N IS FINISHED. F4B02930 SSP F4B02940 TSX FINDBB,IR4 GET THE SUCCESSOR BB NO. F4B02950 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B02960 LXA TIFBOX,IR4 F4B02970 TXI 8CLA,IR4,-1 SET IR FOR NEXT LOOK AT TIFRD. F4B02980 DOCAS CLA INSTAD,IR1 GET BB NO. OF BEGINNING OF DO. F4B02990 TSX FINDBB,IR4 F4B03000 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B03010 TSX ENTER,IR4 ALSO ENTER BB NO. OF NEXT BB AFTER DO. F4B03020 SXD DOSUB,IR2 FIND APPROPRIATE DOLIST ENTRY. F4B03030 AXT 1,IR2 F4B03040 LXD TSBOX,IR4 F4B03050 DOCOMP CLA DOLIST,IR2 F4B03060 ANA DMASK F4B03070 SUB DOSUB F4B03080 TZE *+2 F4B03090 TXI DOCOMP,IR2,2 F4B03100 CLA DOLIST-1,IR2 IS THIS A DO WITH OR WITHOUT AN IF. F4B03110 ANA TMASK F4B03120 TZE DONOIF F4B03130 CLA DOLIST,IR2 ENTER LOOP COUNT IN DECR. OF 1ST WORD F4B03140 ALS 18 OF TRATBL. F4B03150 DWIFCD STD TRATBL+4,IR4 F4B03160 CAL DWIFCD PUT DO WITH IF CODE IN BBTABL. F4B03170 DOLXD LXD DOSUB,IR2 F4B03180 STP BBTABL,IR2 F4B03190 TXI BEGBB,IR1,-4 GO BACK TO DO NEXT BASIC BLOCK. F4B03200 DONOIF CAL DONOIF PUT DO NO IF CODE IN BBTABL. F4B03210 TRA DOLXD F4B03220 CONDTR CLA INSTAD,IR1 IS THIS A TXI OR A TIX TO THE NEXT F4B03230 SUB ASTRSK INSTRUCTION. F4B03240 TZE IGNORE YES, IGNORE IT. F4B03250 CLA INSTLC,IR1 F4B03260 SUB INSTAD,IR1 F4B03270 TZE IGNORE YES, IGNORE IT. F4B03280 CLA INSTAD,IR1 GET SUCCESSOR BB NO. OF 1ST BRANCH. F4B03290 TSX FINDBB,IR4 F4B03300 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B03310 CLA INSTAD+4,IR1 GET SUCCESSOR BB NO. OF 2ND BRANCH. F4B03320 TSX FINDBB,IR4 F4B03330 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B03340 CLA INSTLC,IR1 PUT FORMULA NO. OF CONDITIONAL F4B03350 LXD TSBOX,IR4 TRANSFER IN TRATBL. F4B03360 STD TRATBL+4,IR4 F4B03370 CAL PBYCOD PUT PROBABILITY CODE IN BBTABL. F4B03380 STP BBTABL,IR2 F4B03390 CLA D2 PUT NO. OF BRANCHES (2) IN TRATBL. F4B03400 STD TRATBL+2,IR4 F4B03410 TXI BEGBB,IR1,-8 GO BACK TO DO NEXT BASIC BLOCK. F4B03420 GOTOV2 CLA INSTAA,IR1 PICK UP ADDEND OF ADDRESS OF THIS F4B03430 PDX 0,IR4 TAGGED TRA AND SUBTRACT ONE TO GET F4B03440 TIX OK,IR4,1 NO. OF BRANCHES IN VECTOR. F4B03450 TSX ERR43,IR4 THIS GO TO VECTOR HAS NO BRANCHES. F4B03460 REM (IN ACTUAL PRACTICE THIS STOP, F4B03470 REM WHICH IS THE MOST FREQUENT F4B03480 REM STOP IN SECTION 4, USUALLY INDI- F4B03490 REM CATES A FLOW ERROR CAUSED EITHER BYF4B03500 REM THE SOURCE PROGRAM OR BY A BUG IN F4B03510 REM FORTRAN, SECTIONS 1-3. THIS STOP F4B03520 REM OCCURS WHEN FOR ONE OF THE ABOVE F4B03530 REM REASONS A STRAIGHT GO TO DOES NOT F4B03540 REM END A BASIC BLOCK.) F4B03550 OK TXH *+2,IR4,1 DOES THIS GO TO VECTOR HAVE ONLY ONE F4B03560 REM BRANCH. F4B03570 TXI TRACS+3,IR1,-4 YES, TREAT IT AS A STRAIGHT GO TO. F4B03580 PXD 0,IR4 PUT NO. OF BRANCHES IN TRATBL. F4B03590 LXD TSBOX,IR4 F4B03600 STD TRATBL-2,IR4 F4B03610 STD ERASE1 F4B03620 CAL PBYCOD PUT PROBABILITY CODE IN BBTABL. F4B03630 STP BBTABL,IR2 F4B03640 CLA INSTLC,IR1 PUT FORMULA NO. OF TAGGED TRA F4B03650 STD TRATBL,IR4 IN TRATBL. F4B03660 TEST4 TXH *+2,IR1,-CTTP2 F4B03670 TXI 4TSX,IR1,CTSP2 F4B03680 CNTU2 TXL 4TSX,IR1,...... F4B03690 CLA INSTAD+4,IR1 GET SUCCESSOR BB NO. OF NEXT BRANCH. F4B03700 TSX FINDBB,IR4 F4B03710 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B03720 LXD ERASE1,IR4 F4B03730 TIX *+2,IR4,1 F4B03740 TXI BEGBB,IR1,-8 ALL BRANCHES ENTERED. GO BACK AND DO F4B03750 REM NEXT BASIC BLOCK. F4B03760 SXD ERASE1,IR4 F4B03770 TXI TEST4,IR1,-4 SET IR TO LOOK AT NEXT TRA IN VECTOR. F4B03780 IF2PSE CLA INSTAA,IR1 IS THIS PSE A SENSE SWITCH TEST. F4B03790 ANA D34MSK F4B03800 SUB AD16X F4B03810 TNZ IGNORE NO, IGNORE IT. F4B03820 CAL PBYCOD YES, PUT PROBABILITY CODE IN BBTABL. F4B03830 STP BBTABL,IR2 F4B03840 LXD TSBOX,IR4 F4B03850 CLA INSTLC,IR1 PUT FORMULA NO. OF THE PSE IN TRATBL. F4B03860 STD TRATBL,IR4 F4B03870 CLA D2 PUT NO. OF BRANCHES (2) IN TRATBL. F4B03880 STD TRATBL-2,IR4 F4B03890 SNSCS CLA INSTAD+8,IR1 GET BB NO. OF 2ND BRANCH. F4B03900 TSX FINDBB,IR4 F4B03910 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B03920 CLA INSTAD+4,IR1 GET BB NO. OF 1ST BRANCH. F4B03930 TSX FINDBB,IR4 F4B03940 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B03950 MSECOD TXI BEGBB,IR1,-12 GO BACK TO DO NEXT BASIC BLOCK. F4B03960 MSECAS CAL MSECOD PUT THE SENSE LIGHT CODE IN BBTABL. F4B03970 STP BBTABL,IR2 F4B03980 CLA INSTAA,IR1 PUT THE MSE ADDRESS IN TRATBL. F4B03990 LXD TSBOX,IR4 F4B04000 STD TRATBL,IR4 F4B04010 TRA SNSCS F4B04020 IF2CAS CAL PBYCOD PUT THE PROBABILITY CODE IN BBTABL. F4B04030 STP BBTABL,IR2 F4B04040 LXD TSBOX,IR4 F4B04050 CLA INSTLC,IR1 PUT FORMULA NUMBER IN TRATBL. F4B04060 STD TRATBL,IR4 F4B04070 CLA D2 PUT NO. OF BRANCHES (2) IN TRATBL. F4B04080 STD TRATBL-2,IR4 F4B04090 CLA INSTAD+4,IR1 GET BB NO. OF 1ST BRANCH. F4B04100 TSX FINDBB,IR4 F4B04110 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B04120 CLA INSTAD+8,IR1 GET BB NO. OF 2ND BRANCH. F4B04130 TSX FINDBB,IR4 F4B04140 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B04150 TXI BEGBB,IR1,-12 GO BACK TO DO NEXT BASIC BLOCK. F4B04160 IF3CAS CLA INSTOP+4,IR1 IS THIS TZE FOLLOWED BY A TPL. F4B04170 ANA DMASK F4B04180 SUB TPL F4B04190 TZE *+2 F4B04200 IFTSX TSX ERRM4,IR4 NO, GO TO DIAGNOSTIC. F4B04210 CLA INSTOP+8,IR1 YES, IS THIS TPL FOLLOWED BY A TRA. F4B04220 ANA DMASK F4B04230 SUB TRA F4B04240 TNZ IFTSX NO, GO TO DIAGNOSTIC. F4B04250 CAL PBYCOD PUT THE PROBABILITY CODE IN BBTABL. F4B04260 STP BBTABL,IR2 F4B04270 LXD TSBOX,IR4 F4B04280 CLA INSTLC,IR1 PUT FORMULA NUMBER IN TRATBL. F4B04290 STD TRATBL,IR4 F4B04300 CLA D3 PUT NO. OF BRANCHES (3) IN TRATBL. F4B04310 STD TRATBL-2,IR4 F4B04320 CLA INSTAD+4,IR1 GET BB NO. OF POSITIVE BRANCH. F4B04330 TSX FINDBB,IR4 F4B04340 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B04350 CLA INSTAD,IR1 GET BB NO. OF ZERO BRANCH. F4B04360 TSX FINDBB,IR4 F4B04370 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B04380 CLA INSTAD+8,IR1 GET BB NO. OF NEGATIVE BRANCH. F4B04390 TSX FINDBB,IR4 F4B04400 TSX ENTER2,IR4 ENTER IT IN TRATBL. F4B04410 TXI BEGBB,IR1,-12 GO BACK TO DO NEXT BASIC BLOCK. F4B04420 HPRCAS CAL INSTOP+4,IR1 IS THIS HPR FOLLOWED BY A TRA. F4B04430 ANA DMASK F4B04440 SUB TRA F4B04450 TNZ IGNORE NO, IGNORE IT. F4B04460 CLA INSTAD+4,IR1 YES, DOES THE TRA TRANSFER BACK TO F4B04470 SUB INSTLC,IR1 THE HPR. F4B04480 TNZ IGNORE NO, IGNORE IT. F4B04490 CAL STOPCD YES, ITS A STOP. PUT THE STOP CODE F4B04500 STP BBTABL,IR2 IN BBTABL. F4B04510 TXI BEGBB,IR1,-8 GO BACK TO DO NEXT BASIC BLOCK. F4B04520 OUT CLS FIXSTO PUT ENDMARK ON FIXDOS TABLE. F4B04530 SUB ONE F4B04540 STA *+1 F4B04550 STO ...... F4B04560 STZ BBTABL-1,IR2 PUT ENDMARK ON BBTABL. F4B04570 SXD BBBOX,IR2 STORE NO. OF BBS IN BBBOX. F4B04580 TXI *+1,IR2,-1 SET TEST DECREMENT FOR FIXTRA ROUTINE. F4B04590 SXD FXTTST,IR2 F4B04600 REM F4B04610 REM FIXSET / NO SUBROUTINES CALLED F4B04620 REM IN THE CASE OF SET ENTRIES FOR RESETTING THE INDEXES F4B04630 REM FOR DOS WITH IFS, THE INDEX TO BE RESET IS FOUND IN TRATBL. F4B04640 REM BUT AS THE KNOWLEDGE THAT SETTING IS NECESSARY MAY OCCUR F4B04650 REM IN PASS2 BEFORE THE ENTRY IN TRATBL TO BE RESET HAS BEEN F4B04660 REM MADE, THE DESIRED COMPLEMENT OF THE ADDRESS OF THE DO F4B04670 REM INDEX IS NOT AVAILABLE FOR INSERTION IN SET. INSTEAD PASS2 F4B04680 REM PUTS THE BASIC BLOCK NUMBER OF THE END OF THE DO TO BE RESETF4B04690 REM INTO SET TABLE AND SAVES THE RELATIVE ADDRESSES OF SUCH F4B04700 REM SET ENTRIES IN A MINOR TABLE CALLED FIXDOS. NOW THAT PASS2 F4B04710 REM IS OVER AND TRATBL IS FULLY BUILT UP, THIS ROUTINE SCANS F4B04720 REM FIXDOS TO GET AT THE SET ENTRIES PERTAINING TO THE DO RESET F4B04730 REM CASE AND REPLACES THE DECREMENT PART OF SUCH SET ENTRIES F4B04740 REM WITH THE DESIRED COMPLEMENT OF THE ADDRESS OF THE DO F4B04750 REM INDEX WORD IN TRATBL. F4B04760 AXT 0,IR1 F4B04770 FIXSET CLA FIXDOS,IR1 GET NEXT FIXDOS ENTRY. F4B04780 TMI CLEARN ARE ALL FIXDOS FINISHED. YES. F4B04790 PDX 0,IR4 NO, GET APPROPRIATE SET ENTRY. F4B04800 CLA SET,IR4 F4B04810 PDX 0,IR2 CREATE COMPLEMENT OF ADDRESS OF 3RD F4B04820 CLA BBTABL,IR2 WORD OF TRATBL FOR THE DO WHICH IS F4B04830 ADD CTRA TO BE RESET. F4B04840 STD SET,IR4 STORE THIS IN DECR. OF SET TABLE. F4B04850 TXI FIXSET,IR1,-1 SET IR TO PICK UP NEXT FIXDOS ENTRY. F4B04860 REM F4B04870 REM CLEARN / NO SUBROUTINES CALLED F4B04880 REM THIS ROUTINE CLEARS NLIST AND THE DUMMY SENSE LIGHTS F4B04890 REM TO ZEROS IN PREPARATION FOR SIMULATION. F4B04900 CLEARN AXT 1,IR1 CLEAR THE NLIST TO ZEROS. F4B04910 NZT NLIST,IR1 F4B04920 TRA CLEARS F4B04930 STZ NLIST,IR1 F4B04940 TXI CLEARN+1,IR1,1 F4B04950 CLEARS STZ NLIST CLEAR THE DUMMY SENSE LIGHTS. F4B04960 STZ NLIST+1 F4B04970 STZ NLIST+2 F4B04980 STZ NLIST+3 F4B04990 CLS ASPRS ARE THERE GOTONS BUT NO ASSIGNS F4B05000 ADD GTNCD IN SOURCE PROGRAM. F4B05010 TPL *+2 NO F4B05020 TSX ERR41,IR4 YES, GO TO DIAGNOSTIC. F4B05030 REM F4B05040 REM FIXTRA / NO SUBROUTINES CALLED F4B05050 REM THIS ROUTINE SCANS BBTABL SEARCHING FOR BASIC BLOCKS F4B05060 REM THAT END WITH THE PROBABILITY ENDING. WHEN IT FINDS ONE IT F4B05070 REM TRIES TO FIND AN ASSOCIATED SET OF PROBABILITY STATEMENTS INF4B05080 REM FRET. IF THERE IS A FRET ENTRY FOR THIS BASIC BLOCK ENDING,F4B05090 REM EACH PROBABILITY STATEMENT IN THE ENTRY IS INSERTED IN F4B05100 REM TRATBL NEXT TO THE BRANCH IT REFERS TO. IF THERE IS NO F4B05110 REM FREQUENCY STATEMENT FOR THIS ENDING, FORTRAN ASSUMES THAT F4B05120 REM THE BRANCHES ARE EQUIPROBABLE AND CREATES PROBABILITY F4B05130 REM STATEMENTS WHICH REFLECT THIS IDEA AND INSERTS THEM NEXT F4B05140 REM TO THE PROPER ENTRIES IN TRATBL. F4B05150 ZET FRTBOX IS FRET EMPTY. F4B05160 TRA *+3 NO. F4B05170 CLA NOFREQ YES, PREVENT LOOKING AT FRET. F4B05180 STA BUMPBB-1 F4B05190 LDC FRTBOX,IR4 SET TEST DECREMENTS WITH COMPLEMENT F4B05200 SXD FRTST1,IR4 OF LENGTH OF FRET. F4B05210 SXD FRTST2,IR4 F4B05220 AXT 0,IR2+IR4 F4B05230 FXTTST TXH LOAD,IR2,...... F4B05240 CAL BBTABL,IR2 F4B05250 PDX 0,IR1 PUT TRATBL INDEX IN IR. F4B05260 ANA PMASK DOES THIS BB HAVE PROBABILITY ENDING. F4B05270 SUB PBYCOD F4B05280 TZE *+2 YES. F4B05290 BUMPBB TXI FXTTST,IR2,1 SET IR TO PICK UP NEXT BBTABL ENTRY. F4B05300 CLA FRET,IR4 IS THERE A FREQUENCY STATEMENT FOR F4B05310 FINDFQ ALS 18 THIS ENDING. F4B05320 ADD TRATBL,IR1 F4B05330 TNZ NOFREQ NO. F4B05340 BUMPFR TXI FRTST1,IR4,-1 YES, SET IR TO PICK UP NEXT FRET WORD. F4B05350 FRTST1 TXL FRTHRU,IR4,...... HAS ALL OF FRET BEEN EXAMINED. F4B05360 CLA FRET,IR4 F4B05370 TMI BUMPBB IS THIS THE START OF NEXT FRET ENTRY. F4B05380 STO TRATBL,IR1 NO, PLACE PROBABILITY IN TRATBL. F4B05390 TXI BUMPFR,IR1,2 SET IR TO PICK UP NEXT TRATBL ENTRY. F4B05400 FRTHRU CLA NOFREQ PREVENT FURTHER LOOKING AT FRET. F4B05410 STA BUMPBB-1 F4B05420 TXI FXTTST,IR2,1 SET IR TO PICK UP NEXT BBTABL ENTRY. F4B05430 NOFREQ TMI EQPROB IS FREQ. STATEMENT HIGHER THAN TRATBL F4B05440 REM ENTRY. YES. F4B05450 TXI FRTST2,IR4,-1 NO. F4B05460 NXTFRT CLA FRET,IR4 F4B05470 TMI FINDFQ F4B05480 TXI FRTST2,IR4,-1 F4B05490 FRTST2 TXH NXTFRT,IR4,...... HAS ALL OF FRET BEEN EXAMINED. F4B05500 CLA NOFREQ PREVENT FURTHER LOOKING AT FRET. F4B05510 STA BUMPBB-1 F4B05520 REM THERE IS NO FREQUENCY STATEMENT FOR F4B05530 REM THIS PROBABILITY ENDING, THEREFORE F4B05540 REM FORTRAN ASSUMES THE BRANCHES TO BE F4B05550 REM EQUIPROBABLE. F4B05560 EQPROB CLA TRATBL-2,IR1 PUT NO. OF BRANCHES IN IR TO COUNT F4B05570 SXA REST4,IR4 LOOP AHEAD. F4B05580 PDX 0,IR4 F4B05590 CLA D1 DIVIDE ONE BY NO. OF BRANCHES TO F4B05600 LDQ ZERO OBTAIN FRACTION OF EQUIPROBABILITY. F4B05610 DVP TRATBL-2,IR1 F4B05620 DCT F4B05630 TSX ERR40,IR4 FLOW OR MACHINE ERROR, GO TO DIAG. F4B05640 REM IR1 IS SET IN CLEARN AND MODIFIED F4B05650 REM BY FRTHRU-1. F4B05660 STQ ERASE1 F4B05670 ZAC F4B05680 ADDPR ADD ERASE1 ADD PROBABILITIES TO GET CUMULATIVE F4B05690 REM PROBABILITY. F4B05700 STO TRATBL,IR1 STORE CUMULATIVE PROBABILITY IN TRATBL F4B05710 TNX REST4,IR4,1 HAVE ALL BRANCHES BEEN DONE. YES. F4B05720 TXI ADDPR,IR1,2 NO, SET IR FOR NEXT STORE IN TRATBL. F4B05730 REST4 AXT ......,IR4 F4B05740 CLA POSMAX STORE HIGHEST NUMBER AS LAST F4B05750 STO TRATBL,IR1 CUMULATIVE PROBABILITY. F4B05760 TXI FXTTST,IR2,1 LOOK FOR NEXT PROBABILITY ENDING. F4B05770 REM F4B05780 3TSX TSX RDCIT2,IR4 CALLERS FOR CIT INPUT SUBROUTINE. F4B05790 TRA TEST3 F4B05800 4TSX TSX RDCIT2,IR4 F4B05810 TRA TEST4 F4B05820 REM F4B05830 REM RDCIT2 / A SUBROUTINE CALLED BY PASS2 F4B05840 REM WITH THE EXCEPTION OF A FEW INSTRUCTIONS THIS ROUTINE F4B05850 REM IS EXACTLY LIKE RDCIT1. FOR COMMENTS, SEE RDCIT1 ROUTINE. F4B05860 RDCIT2 SXA S2IR2,IR2 F4B05870 SXA S2IR4,IR4 F4B05880 LXA CTRD1,IR2 F4B05890 IOAJ2 TXI *+1,IR2,...... F4B05900 TXH *+3,IR2,CTTP2-1 F4B05910 SXA CTRD1,IR2 F4B05920 TRA *+3 F4B05930 RINT2 AXT CTBOT,IR2 F4B05940 SXA CTRD1,IR2 F4B05950 TSX (TAPE),IR4 F4B05960 CTRD1,,(RBEP) F4B05970 CTLBL,,CTAPE F4B05980 LXA (SCHU)+CTAPE,IR2 F4B05990 TXL LAST2,IR2,0 F4B06000 MTST2 TXL MOVE2,IR2,CTBOT F4B06010 SXD *-1,IR2 F4B06020 AJBF2 AXT CTBOT,IR2 F4B06030 PRAJ2 TXI *+1,IR2,...... F4B06040 SXA *-2,IR2 F4B06050 PXA ,IR2 F4B06060 PAC ,IR2 F4B06070 TXH *+3,IR2,-CTTP2-1 F4B06080 XEC RINT2 F4B06090 TRA PRAJ2 F4B06100 SXD BEGN2,IR2 F4B06110 SXD CNTU2,IR2 F4B06120 S2IR2 AXT ......,IR2 F4B06130 S2IR4 AXT ......,IR4 F4B06140 TRA 1,IR4 F4B06150 MOVE2 SXD MTST2,IR2 F4B06160 AXT ZONSZ,IR2 F4B06170 CLA CTBOT+ZONSZ,IR2 F4B06180 STO CTTP2+ZONSZ,IR2 F4B06190 TIX *-2,IR2,1 F4B06200 TRA AJBF2 F4B06210 LAST2 AXC ......,IR2 F4B06220 SXD BEGN2,IR2 F4B06230 SXD CNTU2,IR2 F4B06240 AXT 0,IR2 F4B06250 CLA POSMAX F4B06260 STO* LAST2 F4B06270 CLA EXIT2 F4B06280 STA BEGN2 F4B06290 STA CNTU2 F4B06300 STA BEGN2-1 F4B06310 STA CNTU2-1 F4B06320 TSX (TAPE),IR4 F4B06330 RWND,,(SKBP) F4B06340 CTLBL,,FTAPE4 F4B06350 TRA S2IR2 F4B06360 REM F4B06370 REM FINDBB / A SUBROUTINE CALLED BY PASS2 F4B06380 REM THIS ROUTINE SEARCHES BBLIST BY BINARY SEARCH FOR THE F4B06390 REM ARGUMENT IN THE AC AND RETURNS TO 1,IR4 WITH ITS BASIC BLOCKF4B06400 REM NUMBER IN THE DECREMENT OF THE AC. F4B06410 FINDBB STO ARG F4B06420 CLA ANTEBB INITIALIZE FLOOR AND ROOF. F4B06430 STO FLOOR F4B06440 CLA NTH F4B06450 STO ROOF F4B06460 LUKUP CLA ROOF COMPUTE ADDRESS OF NEXT TABLE MEMBER F4B06470 ADD FLOOR TO BE COMPARED WITH ARGUMENT. F4B06480 ARS 1 (FIND MIDPOINT OF UNSEARCHED AREA F4B06490 STO TRYME OF TABLE.) F4B06500 CLA* TRYME COMPARE ARGUMENT WITH TABLE MEMBER. F4B06510 CAS ARG F4B06520 TRA LOW SEARCH LOWER. F4B06530 TRA FOUND ARGUMENT FOUND. F4B06540 CLA TRYME SEARCH HIGHER. F4B06550 STO FLOOR F4B06560 TRA LUKUP F4B06570 LOW CLA TRYME F4B06580 SUB ROOF F4B06590 TZE FLOERR THIS BB IS NOT IN BBLIST. F4B06600 CLA TRYME F4B06610 STO ROOF F4B06620 TRA LUKUP+1 F4B06630 FLOERR TSX ERR44,IR4 FLOW ERROR, GOTO DIAGNOSTIC. F4B06640 FOUND CLA 1ST COMPUTE BB NO. OF THIS BASIC BLOCK F4B06650 SUB TRYME AND RETURN WITH IT IN THE DECREMENT F4B06660 ALS 18 OF THE AC. F4B06670 TRA 1,IR4 F4B06680 REM F4B06690 REM SERCHN / A SUBROUTINE CALLED BY PASS2 F4B06700 REM THIS ROUTINE MAKES ENTRIES IN THE NLIST. IT IS CALLED F4B06710 REM BY TSX SERCHN, IR4 WITH THE ARGUMENT IN THE AC. IT SEARCHESF4B06720 REM THE CURRENT NLIST TO SEE IF THE ARGUMENT IS ALREADY IN THE F4B06730 REM TABLE. IF NOT, IT IS ENTERED. IN EITHER CASE, SERCHN RE- F4B06740 REM TURNS TO 1,IR4 WITH THE ORDINAL NUMBER OF THE ARGUMENT N IN F4B06750 REM THE DECREMENT OF THE AC. F4B06760 REM A TEST FOR OVERFLOW OF TABLE IS ALSO MADE IN SERCHN. F4B06770 REM IF NLIST EXCEEDS ITS PRESCRIBED LIMIT, THE FORTRAN DIAGNOS- F4B06780 REM TIC IS CALLED IN TO ADVISE THE PROGRAMMER TO REWRITE HIS F4B06790 REM PROGRAM USING FEWER NS IN ASSIGN AND ASSIGN GO TO F4B06800 REM STATEMENTS. F4B06810 SERCHN SXA HOLD4,IR4 SAVE INDEX REGISTER. F4B06820 AXT 1,IR4 INITIALIZE SEARCHING INDEX REGISTER. F4B06830 STO ARG F4B06840 NLOOP CLA NLIST,IR4 GET NEXT N. F4B06850 TZE ENTERN HAS ALL OF NLIST BEEN SEARCHED. F4B06860 SUB ARG COMPARE THIS N WITH ARGUMENT. F4B06870 TZE NFOUND ARGUMENT IS ALREADY IN NLIST. F4B06880 TXI NLOOP,IR4,1 SET IR FOR LOOK AT NEXT N. F4B06890 ENTERN TXL *+2,IR4,NMAX HAS NLIST OVERFLOWED. F4B06900 TSX ERR45,IR4 YES, GO TO DIAGNOSTIC F4B06910 CLA ARG NO, ENTER NEW N. F4B06920 STO NLIST,IR4 F4B06930 STZ NLIST-1,IR4 STORE NEW ENDMARK. F4B06940 NFOUND PXD 0,IR4 PUT INDEX FOR N INTO AC. F4B06950 HOLD4 AXT ......,IR4 RESTORE INDEX REGISTER. F4B06960 TRA 1,IR4 RETURN TO MAIN ROUTINE. F4B06970 REM F4B06980 REM ENTER / A SUBROUTINE CALLED BY PASS2 F4B06990 REM THIS SUBROUTINE HAS TWO JOBS. FIRST IT MAKES THE PRIN-F4B07000 REM CIPLE ENTRIES FOR PASS2 IN TRATBL, THAT IS, IT ENTERS SUC- F4B07010 REM CESSOR BASIC BLOCK NUMBERS. SECOND, IT ASKS WHETHER THE F4B07020 REM SUCCESSOR BASIC BLOCK JUST ENTERED IS THE NORMAL ENTRANCE F4B07030 REM TO ANY DOS WITH IFS AND WHETHER THOSE DOS ARE BEING ENTERED F4B07040 REM FROM OUTSIDE THEIR RANGE. IF NOT, THE ROUTINE RETURNS TO F4B07050 REM 1,IR4. IF SO, IT ENTERS THE BASIC BLOCK NUMBERS OF THE ENDSF4B07060 REM OF THE DOS TO BE RESET IN SET AND THE RELATIVE ADDRESSES OF F4B07070 REM THOSE SET ENTRIES IN FIXDOS. F4B07080 ENTER PXD 0,IR2 ADD ONE TO CURRENT BB NO. TO GET NEXT F4B07090 ADD D1 BB NO. F4B07100 ENTER2 SXA SAVE4,IR4 F4B07110 LXD TSBOX,IR4 F4B07120 TXL *+2,IR4,TRAMAX HAS TRATBL OVERFLOWED. F4B07130 TSX ERR46,IR4 YES, GO TO DIAGNOSTIC F4B07140 STD TRATBL-1,IR4 ENTER SUCCESSOR BB NO. IN DECREMENT F4B07150 REM OF 2ND WORD OF TRATBL. F4B07160 TXI *+1,IR4,2 SET IR FOR NEXT TRATBL ENTRY. F4B07170 SXD TSBOX,IR4 F4B07180 SETDO SXA SAVE1,IR1 F4B07190 LXA TSBOX,IR1 F4B07200 AXT 1,IR4 F4B07210 STO ARG F4B07220 FDLOOP CLA ARG IS THE SUCCESSOR BB JUST ENTERED ABOVE F4B07230 ORA TMASK THE NORMAL ENTRANCE TO A DO WITH F4B07240 CAS DOLIST-1,IR4 AN IF. F4B07250 TXI *-1,IR4,2 F4B07260 TRA FIXDO YES. F4B07270 SXA TSBOX,IR1 NO, RETURN TO MAIN ROUTINE. F4B07280 SAVE1 AXT ......,IR1 F4B07290 SAVE4 AXT ......,IR4 F4B07300 TRA 1,IR4 F4B07310 FIXDO PXD 0,IR2 IS DO ENTERED FROM OUTSIDE THE RANGE. F4B07320 ORA TMASK F4B07330 SUB DOLIST-1,IR4 F4B07340 TMI ENTSET YES. (FROM BEFORE DO RANGE) F4B07350 PXD 0,IR2 F4B07360 CAS DOLIST,IR4 F4B07370 TRA ENTSET YES. (FROM AFTER DO RANGE) F4B07380 TXI FDLOOP,IR4,2 NO, IT IS ENTERED FROM INSIDE THE DO F4B07390 TXI FDLOOP,IR4,2 RANGE AND IS THEREFORE NOT RESET. F4B07400 REM SEE IF ANY MORE DOS WITH IFS BEGIN F4B07410 REM AT THIS POINT. F4B07420 ENTSET TXL *+2,IR1,SETMAX HAS THE SET TABLE OVERFLOWED. F4B07430 SETTSX TSX ERR47,IR4 YES, GO TO DIAGNOSTIC. F4B07440 CLA DOLIST,IR4 ENTER BB NO. OF END OF DO TO BE RESET F4B07450 STO SET,IR1 IN DECREMENT OF SET TABLE. F4B07460 CLA ONE ENTER A ONE IN ADDRESS PORTION OF F4B07470 STA SET,IR1 SET TABLE. F4B07480 CLA FIXSTO SET FIXSTO INSTRUCTION TO STORE F4B07490 ADD ONE NEXT FIXDOS ENTRY. F4B07500 STO FIXSTO F4B07510 ANA ADMASK HAS FIXDOS TABLE OVERFLOWED. F4B07520 SUB FIXLIM F4B07530 TMI *+2 F4B07540 TSX ERR48,IR4 YES, GO TO DIAGNOSTIC F4B07550 PXD 0,IR1 NO, ENTER RELATIVE ADDRESS OF CORRES- F4B07560 FIXSTO STO FIXDOS-1 PONDING SET ENTRY IN DECR. OF F4B07570 REM FIXDOS TABLE. F4B07580 TXI *+1,IR1,1 SET INDEX REGISTER FOR NEXT SET ENTRY. F4B07590 FENCE TXI FDLOOP,IR4,2 SEE IF ANY MORE DOS WITH IFS BEGIN AT F4B07600 REM THIS POINT. F4B07610 END27 SYN *+30 F4B07620 TCD -1 $F4B07625 TTL SECTION 4, PART THREE F4B07630 LBL 9F25,S F4C00000 REM SECTION 4 - PART 3 OF 3 F4C00010 REM F4C00020 ORG SYSCUR $F4C00030 BCI 1,9F2500 $F4C00040 ORG (LODR) $F4C00050 TXI SIMUL,,250 F4C00070 REM F4C00090 REM CONSTANTS AND VARIABLES USED IN PART 3 ONLY. F4C00100 ORG D3 F4C00110 CODEMK OCT 100000000000 F4C00120 RAND1 OCT 321702174347 F4C00130 RAND2 OCT 1 F4C00140 SIMBOX SYN ARG F4C00150 NINE DEC 9 F4C00160 WRDEC1 PZE 0,0,-TGBFSZ F4C00170 WRDEC2 PZE 0,0,-2*TGBFSZ F4C00180 TGBFSZ SYN 256 F4C00190 TAGSIZ PZE 2*TGBFSZ F4C00200 TAGMAX PZE CMTL+1 F4C00210 EXIT3 PZE FINAL EXIT ADDRESS FROM TAGPAS F4C00220 WREXIT TRA LSTCHK F4C00230 TAGBOX OCT 33000000 F4C00240 TAPMSK OCT 777770 F4C00250 14ONES OCT 377770000000 F4C00260 BBMASK OCT 37777037777 F4C00270 OCT 36721000000 LXA F4C00280 OCT 36731000000 TXI F4C00290 OCT 33167000000 TIX F4C00300 OCT 36747000000 LXP F4C00310 OCT 42524000000 DED F4C00320 OCT 36724000000 LXD F4C00330 OCT 72167000000 PAX F4C00340 OPCON OCT 72467000000 PDX F4C00350 CELL ...... F4C00360 REM F4C00370 REM DSC CONTROL WORDS FOR READING AND WRITING TAPES IN PART 3. F4C00380 WRITE1 IORT TAG,,TGBFSZ IO COMMANDS FOR WRITING F4C00390 WRITE2 IORT TAG+TGBFSZ,,TGBFSZ TAG. F4C00400 WRITBB IOCT MIRROR,0,...... $F4C00410 ERR49 TXI (DIAG),,-8 TAG IS TOO LONG. F4C00420 REM F4C00430 REM SIMUL / NO SUBROUTINES CALLED F4C00440 REM IT IS IN THIS ROUTINE THAT THE FLOW OF THE OBJECT F4C00450 REM PROGRAM IS SIMULATED. SIMULATION BEGINS WITH BASIC BLOCK 0.F4C00460 REM FIRST ANY SETTINGS THAT ARE MADE IN THIS BASIC BLOCK (I.E., F4C00470 REM SETTING ASSIGNED GO TO ADDRESSES, SENSE LIGHTS OR DO WITH IFF4C00480 REM INDEXES) ARE SET. THEN DEPENDING ON HOW THE BASIC BLOCK F4C00490 REM ENDS THE PROPER SUCCESSOR BASIC BLOCK IS CHOSEN AND THE F4C00500 REM FREQUENCY COUNTER FOR THAT PATH IS INCREMENTED BY ONE. THENF4C00510 REM ANY SETTINGS MADE IN THAT SUCCESSOR BASIC BLOCK ARE SET AND F4C00520 REM ITS SUCCESSOR IS CHOSEN, AND SO ON UNTIL SIMULATION IS OVER.F4C00530 SIMUL CLA TSBOX MULTIPLY NO. OF BRANCHES IN OBJECT F4C00540 ARS 12 PROGRAM (NO. OF TRATBL ENTRIES) BY F4C00550 STO SIMBOX 128 TO GET NO. OF BRANCHES TO BE F4C00560 REM SIMULATED. F4C00570 TRA STSNS (32)F4C00580 COUNT CLA SIMBOX LOWER SIMULATION COUNT. F4C00590 SUB ONE F4C00600 TMI DODOS IS SIMULATION FINISHED. YES. F4C00610 STO SIMBOX NO, CONTINUE. F4C00620 CLA BBTABL,IR1 PICK UP SUCCESSOR BASIC BLOCK. F4C00630 ALS 18 SET TEST DECREMENT WITH RELATIVE AD- F4C00640 STD SETTST DRESS OF 1ST SET ENTRY FOR THIS BB. F4C00650 CLA BBTABL-1,IR1 LOAD IR WITH RELATIVE ADDRESS OF 1ST F4C00660 PAX 0,IR2 SET ENTRY FOR NEXT BB. F4C00670 SETTST TXL DECODE,IR2,...... HAVE ALL SETS BEEN SET IN THIS BB. YES F4C00680 CLA SET+1,IR2 NO, PICK UP NEXT SET ENTRY AND MAKE F4C00690 PDX 0,IR4 APPROPRIATE SETTING. F4C00700 ALS 18 F4C00710 STD 0,IR4 F4C00720 TXI SETTST,IR2,-1 SET IR TO PICK UP NEXT SET ENTRY. F4C00730 DECODE CAL BBTABL,IR1 LOAD IR WITH RELATIVE ADDRESS OF 1ST F4C00740 PDX 0,IR2 TRATBL WORD FOR THIS BB. F4C00750 SUB CODEMK HOW DOES THIS BASIC BLOCK END. F4C00760 TMI DOWIF DO WITH IF. F4C00770 SUB CODEMK F4C00780 TMI MSECSE SENSE LIGHT. F4C00790 SUB CODEMK F4C00800 TMI PRBYCS PROBABILITY. F4C00810 SUB CODEMK F4C00820 TMI FLOCNT CERTAINTY. F4C00830 SUB CODEMK F4C00840 TMI TROUT DO WITHOUT IF. TAKE EXIT FROM LOOP. F4C00850 SUB CODEMK (LOOP COUNT WILL BE INCLUDED LATER) F4C00860 TMI GOTON3 GO TO N. F4C00870 TRA COUNT-1 STOP. GO BACK TO BASIC BLOCK NO. 0. F4C00880 GOTON3 CLA TRATBL,IR2 LOAD IR WITH RELATIVE ADDRESS OF NLIST F4C00890 PDX 0,IR4 ENTRY FOR THIS BB. F4C00900 CLA BBTABL-1,IR1 SET TEST DECREMENT WITH RELATIVE ADDR. F4C00910 STD NTEST OF 1ST TRATBL WORD FOR NEXT BB. F4C00920 NLOOP2 CLA TRATBL-1,IR2 IS THIS THE TRATBL ENTRY WHICH COR- F4C00930 ANA DMASK RESPONDS TO THE SUCCESSOR BB F4C00940 SUB NLIST,IR4 THAT HAS BEEN SET. F4C00950 TZE FLOCNT YES. F4C00960 TXI NTEST,IR2,2 NO, SET IR TO LOOK AT NEXT TRATBL. F4C00970 NTEST TXL NLOOP2,IR2,...... HAVE ALL TRATBL ENTRIES FOR THIS BB F4C00980 REM BEEN LOOKED AT. NO. F4C00990 CAL BBTABL,IR1 YES. F4C01000 PDX 0,IR2 F4C01010 TRA FLOCNT F4C01020 MSECSE CLA TRATBL,IR2 F4C01030 PDX 0,IR4 F4C01040 CLA SENSLT,IR4 IS DUMMY SENSE LIGHT ON OR OFF. F4C01050 TZE LITOUT OFF. TAKE LIGHT OFF BRANCH. F4C01060 STZ SENSLT,IR4 ON. TURN OFF LIGHT AND TAKE LIGHT ON F4C01070 TRA FLOCNT BRANCH. F4C01080 LITOUT TXI FLOCNT,IR2