PX1790_unicod Cmp Tec V3_Apr61 PX1790 Unicod V3 Apr61
PX1790_unicodCmpTecV3_Apr61 PX1790_unicodCmpTecV3_Apr61
User Manual: PX1790_unicodCmpTecV3_Apr61
Open the PDF directly: View PDF .
Page Count: 664
Download | |
Open PDF In Browser | View PDF |
I~ UN I VA C TECHNICAL DOCU MENTATION for UNICODE Automatic Univac Programming System for Scientific 1103A and 1105 Volume III April, 1961 PX 1790 DIVISION OF SPURY UND CORPOUTION UNIVAC PAil, ST. PAUL 16, MINNESOTA VOLUME I Page Table of Contents . I. II. INTRODUCTION. 3 GENERAL 1. 2. 3. 4. 5. 6. III. I-v UNICODE Service Routines . . Library Routines . . • . • • . UNICODE System Tape Package . UNICODE Sample Coding . • . UNICODE Card Input • . • Statistical Miscellany •. 7 49 . · 123 · 153 • 163 · 185 TRANSLATION AND CORRECTION 1. 2. 3. UNICODE Sentinel Blocks . • • Tape Merge . . . • . . • • Translation Phase a. Translation Subroutines . . • • . . b. Translators. • • • . • . . • . 203 217 291 434 VOLUME II Table of Contents • • • • • . • • • • • • . II-v III. TRANSLATION AND CORRECTION 3. IV. Translation Phase b. Translators (cont.) • • • • • • • • 569 GENERATION PHASE 1. 2. 3. Generation Set-up and Drum Loader . • • 949 Generation Subroutines. . • 959 Generators • • • . • . • • • • • • . • • 1013 VOLUME III Table of Contents • • . . . • . • • . • . III-v IV. GENERAT ION PHASE 3. Generators (cont.) . • . . • . . . . . . 1193 V• ALLOCAT ION PHASE 1. Segmentor • . 1461 2. 3. All1)Cat1}r-~ 1551 • Initialization Generator . . . 1607 VI. PROCESSING PHASE • . • . 1671 VII. PROGRAM LISTING PHASE . 1747 VOLUME III TABLE OF CONTENTS IV. GENERATION PHASE 3. GENERATORS (cont.) EQUATION Generation EQUATION Generati.on No. 1 Write-Up • • • • • • • • • • Flow Charts • • • • • • Coding • • • • • • • • • • • • EQUATION Generation No. 2 Write-Up (Also for EQUATION Generation No.3) •• Flow Charts • • • • • • • • • • •••••• Coding • • • • • • • • • EQUATION Generation No. 3 Flow Charts • • • • Coding • • • • • • • • • ·· .. .. .. .. .. .. .. .. .. .. .. .. ... ...·....... v. · .... 1193 1203 1211 1230 1234 1297 1352 1403 ALLOCATION PHASE 1. SEGMENTOR a. b. 2. Segmentation Setup • Segmentation Write-Up •• Flow Charts Phase I Phase II Coding Phase I Pha se II • 1461 • • 1464 1467 1477 ·............ 1481 1502 ALLOCATOR a. b. Allocation Setup Wri te-Up Flow Charts Coding Allocation Phase Write-Up Flow Charts Coding ·· ·····• · " · · · · · · .········ · · · ·· · ·• . • . · · · • · · .. ·· . . · · · · . · . . · · · · · · · • ·· . · · · · · III-v 1551 1552 1554 1561 1566 1582 TABLE OF CONTENTS (cont.) 3. VOLUME III INITIALIZATION GENERATOR ........... Initialization Notes ...... .. Generation Flow Charts .. Coding • • • • • • • • • • • ..... Section I Flow Charts .... . ... Coding • • • • • • • . . . . Section II Flow Charts • • • • • . . . .. . . . . . . Coding • • • • • • • • Initialization Generation Setup Control Section for Object Program Write-Up • • • • • • • • • • • Flow Charts • • • • Coding • • • • • • • VI. 1612 1619 1622 1629 1639 1655 1656 1659 1662 1664 PROCESSING PHASE Notes • • • • • • • • • • Processor Setup Coding Flow Charts Coding VII. .. .. ... .. .. 1607 ......... ... 1671 1677 1678 1705 PROGRAM LISTING PHASE Notes • • • • . Program Listing Setup Coding Flow Charts • Coding • . • • 1747 1759 1761 1796 .... .... III-vi EQUATION GENERATION Equation Generation N0 5 1 The coding for an equation is generated in three stages numbered 1, 2 and 3. Number 1 produces a sorted list of symbols, No.2 eliminates some redundant calculations, and No.3 produces the coding. The idea of No.1 is to add parentheses to the equation (which has been "strung out" one call word per computer word by the equation translator) and number call words by use of the parentheses in the expression. The numbered call words are then sorted and generator No.2 takes over. Thus there are three passes made by No.1: processing (adding parentheses). numbering symbols, and sorting. An explanation of each of these follows a description of the lists. The six lists made up or used by this routine are as follows: 1) Translation List (WL) This is the input to the routine and is tor. It contains one call word per computer v addresses. except that an open parenthesis closed parenthesis is a 2 in the u address. scription for a more detailed explanation. produced by the equation translaword, the call words being in the is a 1 in the u address and a See the equation translation de- 2} Processed List (PR) The WL list is examined one call word at a time and parentheses are added where needed to produce this list. 3} Numbered List (WL (same region as Translation List) The Processed List entries are picked up one at a time. starting with the last symbol in the list, numbered, and then transferred to the Numbered List, with the exception of open and closed parentheses which are used to alter the Numbers of Symbols (NS) List and are not sent to the Numbered List. (See descriptions of numbering and Numbers of Symbols List.i 4) Sorted List (PR (same region as Processed List) This--is- the listprodueedbyso-rtinq tire -NumberedLi st numbers are at the beginning of the list. 1193 SO" that larg~r It is the output of the routine. 5) Parentheses List (PL) This is a two-word-per-item list which contains a code for the type of open parenthesis in the operation portion of the first word and the level bit i~ one of the remaining 30 bits. The second word contains the Processed List address of the parenthesis in the u address of the word. This list contains only items for open parentheses. u Op oX o0 ( ( l v level bit P )I ) X = type of parenthesis x =0 X X =I =2 - "not special" - level - term X = 3 - Library X= 4 - POW P = address of parenthesis in PR list. 6) Numbers of Symbols List (NS) This list is used when producing the Numbered List. In the Processed List every parenthesis will have a count in the v address to indicate how many parentheses are at this point. For example the following words might appear in the Processed List (not consecutively): I~p I . 0 _ 0 0 u0 0 I [ 0 0 v0 0 6 1 Six open parentheses 10 010 0 0 0 2 10 0 0 0 4 I Four closed parentheses For every closed parenthesis encountered in the Processed List. numbers are added to the NS List. The number of numbers added is equal to the count in the v address of the closed-parenthesis word. Open parentheses are handled similarly except that numbers are deleted from the NS List. The numbers in the NS List are in the u addresses of the words. For example. at one time the NS List may look as follows: 1194 Op 10 NS NS 1 0 NS 2 NS NS NS NS NS 0 3 0 0 5 0 6 0 7 0 4 I u v 1 o 0 2 <) A V oJ I 0 0 0 0 0 4 10 11 16 24 The last number in the list (24 in this one) is always the number added to a symbol call word to make up the numbered symbol for the Numbered List. length of list NS varies, of course.) (The The last number in the list is always the largest still in the list but there may have been larger numbers previously. Parentheses are never put in the Numbered List; they are merely used to Suppose we now encoun t er an open parenthesis with a count Five is subtracted from the last address (NS7) and the last address now alter the NS List. of 5. becomes NS2 and the number to assign symbols is 3. parenthesis with a count of 7. Later we encounter a closed Numbers are added to the list starting with 25 since we have already used 1 to 24. Since we must add 7 numbers the list becomes: Op u v NS 1 1 2 3 4 5 2 3 25 26 27 30 31 32 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 7 0 10 0 NSll 0 and the next symbol (if not a parenthesis) will be numbered 33. The explanation of the three passes follows: Processing: A level bit is kept up to date at all times. It starts at the rightmost bit position and is shifted left by one every time an open parenthesis or open absolute-value sign is encountered, and right by one for every closed paren- 1195 thesis or absolute-value sign. One may write up to 29 open parentheses and/or absOlute-value signs before he must close some. That is, he may write symbols on the 29th level but not on higher levels. There are five types of open parentheses added to the Processed List. These are the level, term. library, POW. and anticipation (for want of a better name). A level and a term parenthesis are added to the Processed List every time an open parenthesis. open absolute-value sign or comma is encountered in the Translation List. A level parenthesis is put in the Processed List before the first symbol is picked up from the Translation List and, when the equals sign is encountered. level and term parentheses are also added. A term parenthesis is added at the beginning of each term, i.e., after a binary + or - sign. A library (LIB) parenthesis is added before each Library Routine symbol unless there is already an unclosed library parenthesis (on the same level) in the list. When POW is encountered, the last open parenthesis is changed to a POW parenthesis in the Parenthesis List (PL). The anticipation parenthesis is added in the following places: 1) After every multiplication, division or unary minus sign in anticipation of the next operation being POW. (If is isn't POW, the anticipation parenthesis will not alter the interpretation.) 2) Before and after a library call word when there is already a library parenthesis on this level. This is to handle the case: ( LIB ( LIB ( X » ) t A A Library where all of the parentheses have been added, i.e., none were originally written in the expression. This puts the rightmost Library Routine on the highest level. 3) After a library call word so the operands will be assigned larger numbers than the library call word. 4) Before every unary minus to associate the unary minus with the operand which follows. 1196 The preceding discussion deals with open parentheses. When closing paren- theses, a closed parenthesis with a count of zero is added to the Processed List and open parentheses in the Parentheses List are examined one at a time starting with the last parenthesis item in the list. Parentheses are closed by adding one to the count of both the closed and open parentheses in the Processed List. If the parenthesis just closed is not of the type sought, it is deleted from the Parentheses List by subtracting 2 from its address in the Parentheses List. This puts the next parenthesis "on deck" continues until the type of parenthesis sought is closed. After this the pa- renthesis is left "on deck" or deleted from the Parenthesis List depending on circumstances. Following is a summary of what is done upon encountering each of the symbols of an equation in the Translation List ("level" means the level due to parentheses or absolute value signs wri tten in the UNICODE Program.) Subscripted Variable Libra ry Routine Anticipation parenthesis to Processed and Parentheses lists. Variable call word to Processed List. - 1) Previous library parenthesis on same level, still in Parenthesis List! lists. Anticipation parenthesis to Library call word to Processed List. Antic- ipation parenthesis to lists. 2) No previous library parenthesis on same level, still in Parentheses List: Library parenthesis to lists. Library call word to Processed List. Anticipation parenthesis to list. POW - 1) Previous POW parenthesis on same level. still in Parenthesis List: Close parentheses to POW paren- thesis (leave POW parenthesis "on deck"). POW to Processed Li st. 2) Previous library parenthesis on same level, still in Parenthesis List: Close to library parenthesis and change it to a POW parenthesis in the Parenthesis- IA-st--{-leave- POWpa-rent-hesis POW to Processed List. 1191 "&fldec~n}. 3) No previous library or POW parenthesis. Close to last open parenthesis and change it to a POW parenthesis. Specia I powers (Square, Square etc.) Ro~t, POW to Processed List. Same as POW then: "on deck"). Close to POW parenthesis (leave Open parenthesis and Open absolute value sign Increase level. Level and term parentheses to lists. (Note that no open absolute value sign is put in Processed List.) Closed Parenthesis Close to level parenthesis and delete it from Parenthesis List. Decrease level. Closed Absolute Value Sign Close to level. Absolute value sign to Processed List. Close to level and delete from Parenthesis List. + or - sign Decrease level. Close to level. + or - to Processed List. Term parenthesis to lists. Unary plus Ignore. Unary minus Anticipation parenthesis to lists. Processed List. Comma Anticipation parenthesis to lists. Close to level parenthesis. renthesisto lists. essed List.) Equals sign Unary minus to Add level and term pa- (Note no comma is sent to Proc- Close to level parenthesis. parentheses to lists. Add level and term (Note no equals sign is sent to Processed List.) * or I sign Close to term parenthesis. List. Space period * or / to Processed Anticipation parenthesis to lists. Close to level parenthesis. essed List. Space period to Proc- Jump to numbering routine. In addition, indicator bits are kept for each term of the expression so ambiguous sequences can be recognized and a warning printed on the typewriter. 1198 Then. if the programmer is not sure of the interpretation of UNICODE he can rewrite the sentence and put parentheses in the expression so he will be sure to get the correct interpretation. The following ambiguous terms are recog- nized (the interpretation of UNICODE is on the right): A POW B POW AlBIC = (A/B) I LIB A POW r I\*Q LJ TQ - ...... .LLJ n LIB AlB -= B { r TO = C (A POW B) POW C C -= (LIB A) POW B \LI.LU it\ l'1.1 (LIB Al * I 0 U B Compilation continues after the warning is printed. Numbering! Gall words are numbered by use of the last number in the Numbers of Symbols List (NS). word. The numbers in this list are in the u addresses. one number per Two things must be known to use this list: 1. The address of the last number in the list. 2. The largest number put in the list so far. (The last number in the list is the largest in the list but not necessarily the largest number which has been in the list for this equation.) Once a number has been in the list and has been taken out. it will not appear in the list again. The first number put in the list is 1. Call words and parentheses are picked up from the Processed List starting with the last call word (space period). Call words other than parentheses are numbered with the last number in the NS List; then the numbered call word is sent to the Numbered List. When a closed parenthesis is encountered. numbers are added to the NS List. the number of numbers added being equal to the count associated with the closed parenthesis. Numbers which are added are equal to the largest number which is or has been in the list plus 1. The address of the last number in the list is increased by one for each number added to the list, of course. When an open parenthesis is encountered. the count is subtracted from the address of thej-ast number in the Ii-st.· hence essentially deleting numbers from the list. 1199 The space period is numbered zero. Sorting: The Numbered List is sorted, largest first. to produce the Sorted List which is the output of equation generator No.1. example, consider the following equation as input to the routine. F~r F (I t J) -= - X POW Y + ( SIN I u - v , ) * Wb. • The Processed List would be as follows (numbers above parentheses are counts and letters below are types. where L= level, T = term, A= anticipation, S = library, P -= POW.): 11 «F LA 11 2 11 22 211 2 1 «I) «J)) «(-(X) POW LT LTA A LT P 4 y) 2 III 1 31 2 1 2 141 «u)-(v) »)) + ( «(SIN ( T LTS 1200 A LT T * 1 3 (w)b.. A Numbering the symbols: ~. is numbered zero and sent to Numbered List. Symbol Numbered List Number Symbol NS List fl. ) ( fl. 3 W 2 * 9 I 11 V 10 - 13 U 1,2,3 W I 0 1,2 ." r •• I ) 1,2.4 4 ) 1,2,4,5,6,7,8 I ) 1,2,4.5,6,7,8,9 I 2 ) 1,2,4,5,6,7,8,9,10,11 V 1 ( 1,2,4,5,6,7,8,9,10 2 ) 1,2,4,5,6,7,8,9,10,12,13 U 1 ( 3 ( 1 ( 1,2,4,5,6,7,8,9,10,12 1,2,4,5,6,7.8 1,2,4,5,6,7 SIN 7 SIN 1 + Y 17 Y POW 17 POW c' (' (' (2 1,2,4,5,6 1,2,4,5 1,2,4 1 + 4 ) I 1 ) 1,14,15,16,17 1,14,15,16,17,18 1201 Symbol Numbered List Number Symbol NS List X 18 X 16 - 22 J 24 I 20 F 2 ( 1,14,15,16 - , ( 1.14,15 I ( 1,14 (2 list empty 2 ) 19,20 )2 19,20,21,22 J (' 19,20,21 (' 19.20 )2 19,20,23,24 I (' 19,20,23 (' 19,20 F (' 19 (' list empty Note: Numbers over parentheses denote count of parentheses occurring at this point. Sorted Li st: I J F X Y POW } both numbered 17 but operands always have larger call words than operations. Unary U V Binary SIN W + 6. 1202 Equation Generation No. I e Level ( to lists Set up Sing]~\ CW~A oper~ NO ~\ -~, Special POW's? (op~~ YES (closed) n--~ - ? YES 0-{ ~ ?~ YES ~N_O___ (a_s_s_u_m_e_~ __._)_____________~ =1 A = Anticipation ~ SSe Sym variable Processed List A Trans. List + 1 ( ~lists LIB Prev. LIB? NO LIB ( to lists Set LIB ind. YES ..... (\j 0 .t::.. A( to lists YES Special POW's Prev. LIB? NO Close to LIB Change LIB to POW Set POW Ind. Change last (to POW NO Prev. POW? Close to POW A( to lists Lower level ~ Unary A ( to lists XB vz A ( to lists Close to level Level ( to lists Level ( to lists Term ( to lists = Close to level * LIB ind. set? Set ambig. ind. Clear LIB, POW, / indicators Term ( to lists VB ;:J Prev. I this level? NO YES Set I indicator LIB ind. set? NO YES Set ambig. ind. Clear LIB & POW indicators POW VI VI26 Ambig. terms? YES Print warning NO Setup num·bering rout. Open Parenthesis to Lists (VY) ~--.:IM ( to Proc. List I---~ Code & level of ( to ( list t---~ Proc. List address to ( list ' - -_ _ _ _----1 Symbol to Processed List (VZ) Close Parentheses (VW) ..... N o co " -a ) ( sought? Proc. List NO Next ( from ~ list ( + I and ) +I Delete ( from ( Ii st YES ( ) + + I I and Delete from ( list? YES Delete it NO Proc. List + I Clear Indicators (VB) Clear LIB, POW. I ind. this level this term ~------~~ Check for Ambiguity (XB) Ambig. this term? YES Set indicator for print at end of sent. (see l:::.. coding) NO NUMBERING ROUTINE ( no. = 1 ( ? No )? Number sym. list ~ YES Take nos. out of list Sort Routine Sort nos. largest first Yes Add nos. to list Equation Generator No. 1 Regions and Coding Region Address VD 2512 2523 2532 2616 VB VC VE VI VJ VI( VL VM VN VO VP VQ VR VS VT VU VW VX VY V~ XA XB XC SR VA PR NS PL WL NT Setup Clear Indicators Constants Switch ~ lTI7 V," VB Name or Symbol Handled •• I.-~~_~~ ... ~,J ~UU~~L~p~CU 2660 2674 2752 2760 2770 3003 3013 3020 3033 3044 3062 3075 3077 3114 3147 3172 3202 3220 3226 3230 3236 3244 3324 3351 4351 5351 2242 2774 IT _ _ ~_I.-l~ VdL~dU~C Library Routine Special POWS Open Parenthesis and Open absolute Closed Parenthesis Closed Absolute Value + or Unary Comma -= * ! POW l:::.. Numbering Routine Close Parentheses (+1 and) +1 Add Parenthesis to List Symbol to Processed List Tra n s . Lis t +1 Check for Ambiguity Constants Sort Routine Variable Pro ces sed Li st Numbers of Symbols List Parentheses List Translation List Close to level and Sym- Processed List 1211 Setup Equation Generation IA 0 1 2 3 4 5 6 7 10 MJ RP TP TP RP TP TP RJ MJ CA VY 0 VOll (30000) VD3 } VA VA VD6 } VA6 VY2 } VYI VE IA XA VA6 VCl MJ 0 VE CA XA2 o RA 1 VO 0 13025 VC VC4 30004 VC60 VC44 Exit Clear variables Level bit Set Ii st addresses Add level - ( to lists @ Sym/wd list +1 -@ 1212 Translation Switch 0 IA 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 W TP QT EJ EJ EJ EJ QT EJ EJ TP EJ EJ EJ EJ EJ EJ EJ EJ EJ EJ EJ EJ EJ EJ EJ EJ EJ MJ GA VE VA6 (30000) VC13 VC13 VC14 VC15 VC17 VG7 VC42 VG43 Q VG21 VC22 VC40 VC23 VC24 VC25 VG26 VG27 VG30 VG31 VC32 VC33 VC34 VC35 VC36 VC37 VC56 0 VE35 VEl Q A VF VF2 VH VI ~J Symbol- Q } VK A VJ VL } VL SSe var. 77.76. 75. ~VF Single operand - VF2 LIB - VH POW'S - VI (- VJ ) - VK CW-A I (openl- VJ (closed) - VL :} :} + -VM VN VN VO VP VQ VQ VR VR VS VS VT } Unary - - VN , - VO =-VP } * -VQ } / - VR } POW - VS Assume /:).. - -VM 1213 Subscripted Variable 0 I 2 3 IA TP RJ RJ MJ CA VF VC VY VZ 0 VF4 VY2 VYI VZI XA } o (- lists Subscripted variable to Processed Li st - a Libra ry Routine ® 0 I 2 3 4 5 6 7 10 II 12 13 IA VH TP VA QT VA3 ZJ VH12 QS VC55 TP VC46 RJ VY RJ VZ TP VC RJ VY MJ 0 TP VC MJ 0 CA VH14 ~HJ VA3 VY2 } VYI VZl VY2 } VYI XA VY2 VH5 LIB? - VHl2 No , Set LIB LIB (- lists Lffi- Pro. List o (- lists -0 -@ o (- Ii sts 1214 Special IA Vi TP VA QT VA4 ZJ VI51 QS VC55 QT VA3 ZJ VI34 TP VAll ST VCI TU A TO (30000) RA (30000) TV VA7 TP VC5 RA VA7 TV VAll TP VC47 AT VA RA VAll TV VAll TU VIl2 RA VAll RJ vz RJ VI26 TP VC SP VC47 AT VA RJ VW paws tTT a I 2 3 4 5 6 @ @ 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 53 54 55 MJ a TP TP AT RJ TP TP AT VC20 VC46 VA VW VAll VC47 VA VAll VA VA3 VA VC55 0 VC VC47 VA RJ MJ v:w a CA VI56 TV TP AT RA TN QT TP QS MJ ~I3} pow this level? No I Set pow LIB? - VI34 No I VA4 tI6 } ~Il~ VI51 Add I to count of last open VI12 VC4 VI14 } } (count of one) - Pro. List (300001 Increase add. of Pro. List VCl VI20 } POW (- ( list t30000) ( list +1 VCl VI23 } Add. of POW (- ( list (30000) ( list + I VCl Sq. sqrt. etc.- Pro. List VZI Exit VI27 W2} ~W3 Close to POW (no clear) rW2} LIB Close to LIB (clear) VWl XA (0 VW3 VWI VI42 } Change LIB 130000) VC2 SA3 } SA2 } VI25 VW2} A VW3 VW-l VI46 to POW ( List +2 Clear LIB Set print term -@ Close to POW -@ 1215 Open Parenthesis .( and Open Absolute I 0 I 2 3 4 5 IA LQ TP RJ TP RJ MJ CA VJ I VA VC44 VYI VY VC45 VY2 VYI VY 0 XA VJ6 W2} Rai se level Add level and term ( 's ® Closed ) 0 I 2 3 4 5 6 7 IA VK RJ XB RJ VB TP VC20 TP VC44 AT VA RJ VW LQ VA MJ 0 CA VI\10 XBI VBI Print term checker Clear ind. rW2} Clo se to level (clear) plus lower level VW3 VWI 43 XA Lower level - 1216 ® Closed Absolute Value 0 1 2 3 0 1 2 3 4 5 6 IA VL RJ XB RJ VB RJ NT MJ 0 CA VL4 IA MJ TP TP AT RJ RJ MJ CA I VK2 -- Amb. term check ind. Sym- Pro. List Close to level (clear) 0 30000 Exit VC VC44 VA XW2} Close XBl VBl NTI Clear NT VW Vl 0 NT7 VW3 VWl VZl NT to level (no clear) Sym -- Processed List Exit + or - IA 0 1 2 3 4 5 VM XB XBl RJ VB VBl RJ NT NTI TP VC45 VY2} RJ VY VYI MJ 0 XA CA VM6 RJ - Ambiguous term checker Clear Close to level (no clear) sym - Pro. Term (-- list - 0 1217 Unary Minus 0 I 2 3 4 IA TP RJ RJ RJ MJ CA VN VC VY VZ VY 0 VN5 VY2 VYI VZI VYI XA } o (- lists - - Pro. List o (- lists - 0 Comma 0 I 2 3 4 5 6 7 10 II 12 IA RJ TP TP AT VO XB VC20 VC44 VA XBI VW2 A VW3 VWI RJ VW TP VC44 VY2 VYI RJ VY TP VC45 VY2 VYI RJ VY VBI RJ VB MJ 0 XA CA V013 Amb. term checker Close to level (clear) Add level & term ('s Clear -0 1218 Equals 0 I 2 3 4 5 6 7 10 IA TP TP AT RJ TP RJ TP RJ MJ CA (=) VP VC20 VW2 VC44 A VA VW3 VW VWI VC44 VY2 VY VYI VC45 VY2 VY VYI 0 XA VPII Close to level (clear) J ~nn ~~~ - @ @ @ 7 10 II 12 13 14 IS IA VQ TP VA QT VA3 ZJ VQ3 QS VC55 VA2 TN VA RJ VB TP VC TP VC45 VW3 AT VA RJ VW VWI RJ Vl VZI TP VC VY2} VYI RJ VY XA MJ 0 CA VQl6 ~QJ ~3} XW2} ~ +~~Llli O~WI ( t '" \ ~ 0) Floating and Fixed 0 I 2 3 4 5 6 ~ 1 aua 1 ~~v~~ * LIB' no - @ Set print term Clear LIB, POW, I Close to term (no clear) * - Pro. List o (- lists - 0) 1219 Floating and Fixed / 0 1 2 3 4 5 6 7 10 11 12 @ 33 IA VR TP VA QT VA5 ZJ VR6 QS VC55 QT VA3 ZJ VR6 QS VC55 TN VA QT VA3 QT VA4 MJ a CA VR13 ~3} VA5 ~R7 } VA2 SA3 } VA4 VQ6 /- VR6 no' Set / LIB' no - @ Set print term Clear LIB & POW -@ POW o 1 IA VS RJ VI26 VI MJ 0 XA CA VS2 - POW sect. -0 1220 Space Period 1:1 • IA TP 0 1 2 3 4 5 VT VA16 Q QJ VT2 VT5 RJ WA WA2 UP3 TP XC UP RJ UP2 TP VC20 VW2 /... TO .L1o lTrAA V V '":1:'":1: 7 10 11 12 13 14 AT RJ RJ RJ TP MJ CA VA v VW Print term ~ no - VT5 Print WARNING,LlLl AMBIGUOUS TERMS. ,\ ~W3J VWl VBl VZ1 VC60 VA6 0 VU VT15 Close to level (clear) VB Clear VZ 1:1.- Pro. Li st Set address 0 f no. list numbering routine - Print 0 1 2 3 4 5 IA 40 71 32 25 65 17 CA XC 5 XCI 24545 03450 21010 12447 34326 75167 01663 05447 65432 27777 XC6 W G B S ( 1221 A R N I , Ll. 1:1 A I G U 0 Ll T E R . 77 S ) N M U M 77 Numbering Routine 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 IA TP RS TJ TO TP QT EJ EJ ru TP TV AT RA MJ QT SP AT RS MJ QT ST RA TV TP RA IJ MJ CA VU VC6 VA7 VC61 A (30000} VC7 VC42 VC43 VAI0 (30000) VA6 Q VA6 0 VC12 Q Q VAI0 0 VC12 VC4 VAI0 VAI0 VA14 VA14 VA15 0 VU33 VA14 Set ( no. =1 ~1 } Fini shed numberi ng - SR ~U4 } Sym - A VU16 VU23 (- VU16 )- VU23 ~11} No.- A Q VU13 . (30000) } No. sym - 11st VCl Address +1 VUl Count - Q ?7 } VA15 Take nos. off list VA15 VUl A Count - A ~~~5 } Set index VU27 (30000) VC6 VU25 VUl Add nos. to list Increase highest no. 1222 No l Sort Routine 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 r=, J.1 52 53 54 55 IA SP ST TP QS RP TN TP SP SA ST TV TP RA TO TO ST TP QS TO TP RP TJ TO LQ SP SS ST AT MJ TP QS QS SP SA ST RP TP LQ SP SA TV SR VA6 VC60 VC7 VA21 30000 WL24 VG60 VC61 VA21 VGl A WL24 VA6 A A VG60 VG7 VA22 VA7 (30000) 20000 (30000) SR24 Q VA24 Q VC3 VC52 0 VC7 SR24 SR24 VC54 VA7 VC4 30000 (30000) VA12 SR44 Q A ~A21 } ~R4 } No. to be sorted-- VA21 Set n of repeat SR6 } WL24 List negative IT.dA Address t~ } f no. list = WL24 Address of Sorted List- VA7 SR13 } 1st sym - Sorted List (30000) VCl No. List +1 SR23} SR51 # of nos. in Sorted List-- VA22 VA22 ~R24} S-et n of repeat Set address of Sorted List #- A SR25 A SR35 } SR26 VA24 ~A12 17 la rgest # yet - SR35 No j n - VA24 } ~ r - 1- VA12 SR43 SR40 S·et repeat to move back nos. ~R43} Set to move back all nos. VA12 r -1 = all nos. 0 0 TP 0 0 TP SL+ SL+ SR44 TP SL+ (SL+) -1 SR45 } Move nos. back (30000) 25 r - 1 - V address 0o SR51 } mn .1.[" (30000) (30000) RS TJ MJ VA7 VC50 0 SR4 VGl SR55 SR14 S-R56 W 0 TP no. L+ (SL+) + r - 1 Sorted Ii st address -1 no , Done -- SR55 SR14 Set n of repeat 1223 56 57 RP 0 TN PR CA Exit Change to positive SR60 1224 Add Parenthesis to Lists LA 0 1 2 3 4 5 MJ MJ 0 TV TP TV VY 0 0 0 VA7 VC42 VAll 6 If VY2 7 10 11 12 13 14 15 AT RA TV VA VAll VAll VA7 VA7 VAll 0 VY16 1U RA RA MJ CA (30000) VY3 0 VY4 (30000) VY7 IA RA MJ CA Vl6 TU TV TP (no level) (- Processed Li st Code word- { list (count zero) Vel VY12 (30000) Vel Vel VY VZ 0 VA6 VA7 (30000) VA7 0 MJ t t30000)} Sym - 0 1 2 3 4 5 Exit Start Type of ( to add Address - ( list Pro. Li st +1 ( list + 1 Exi t Processed Li st (30000) VZ3 VZ3 (30000) vel VZ Exit Sym- Pro. List Pro. List +1 Exit 1225 Close Parentheses 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 IA VW MJ 0 MJ 0 0 0 0 0 TV VA7 TP VC43 1U VAll RS VWIO TP (30000) EJ VW3 RJ VX RS VAll MJ 0 RJ VX TP VW2 QJ VW20 RS VAll RA VA7 MJ 0 CA VW23 (30000) VW4 0 0 VW5 } (30000) Exit Start - Take off list. + leave on Code of ( and level )- VWIO} VC57 Code of (- A A VW15 VXl VC2 VW6 VXl = - VW15 no I ( +1 and) + 1 Take ( off list Return ( +1 and ) + 1 SW21} VC2 VCl VW Delete from list I no Clear ( from list Add. of Pro. List +1 Exit ( +1 and 0 1 2 3 4 5 6 7 IA MJ TV RA TV RA TV RA MJ CA VX 0 VWIO VX3 (30000) (30000) VA7 (30000) 0 VXIO Pro. List (count zero) (30000) VX3 VC3 VX4 VC4 VX6 VC4 VX ) +1 Exit Increase count on open Increase count on closed Exit 1226 VW21 Clear Indicators 0 1 2 3 4 5 6 IA MJ TN QT QT QT QT MJ CA VB 0 VA VA2 VA3 VA4 VA5 0 (30000) Q VA2 VA3 VA4 VA5 VB Exit P.T. LIB POW DIVIDE Exit } clear VB7 Check for Ambiguity 0 1 2 3 4 5 IA MJ TP QT ZJ TP MJ CA XB 0 VA VA2 XB4 VC20 0 XB6 (30000) ~B} VA16 XB Exit Ambigui ty , no - exi t Set indicator Exit 1227 Constants 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 53 54 55 IA VC 0 0 1 0 0 2 0 1 0 0 0 2 0 1 0 07777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 I 0 0 2 3 0 0 4 PRI 0 o PRIOOO RP 30000 0 0 TP 0 77 77777 0 1 2 0 1 1 0 0 0 07777 77777 70000 60000 50000 40000 10000 0 10 12 20 21 30 31 32 33 40 50 60 61 70 71 100 13 120 0 0 0 0 0 0 PRI PRIOOO SR45 2 0 77777 Zero One Two One in u One in v ) count of 1 ( numbering bit Sort NP routine SUb. var. Single operand LIB Pseudo Ope POW'S Close off bi t indicator I (open) I (closed) floating FI. + Fx. + VI. Fx. Fl. Unary Vx. Unary = Fl. * Fx. * Fl. / Fx. / POW I (c10 sed) fixed ~. ( ) Level Term LIB POW Sort Limit of Processed List Sort routine NP3 and NP32 Sort 1228 56 57 0 0 60 1'\ 61 62 63 0 0 0 CA 0 2 WL24 PR NS PL VC64 v 101 0 WL24 PR NS PL POW (int.) 2 in u Sym/wd and No. Lists Processed and Sorted Lists Number of Symbol List Parenthesis List Variables (VA) - Explanation of Temporaries VA 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 0 0 ( ) ( ( ( ( ( ) ( ) ( ) ( ) ( ) ) ( ( ( ( ( 0 ( ) ) ) ) 1 ) ) ) 1 ( ) ( ) 0 ( 0 ) ) Level bit Combination List size Print Term this level LIB this level POW this level Divide this level Address in Sym/Wd List and Numbered List Address in Processed List and Sorted List Address of Symbol Number Available address in ( list r - 1 in sort n in print j Highest number of ( , s Index Temp 1- ambiguous term bit Temp 2 Temp 3- add. to start pre of Pro. List n of repeat to set Pro. List It of nos. in Sorted List Unused n in sort. j 1229 EQUATION GENERATION NO. 2 EQUATION REDUNDANCY CHECK AND EQUATION GENERATION PHASE The purpose of the Equation Redundancy check and Equation Generation Phase is two-fold: 1) The elimination of redundant calculations within the same equation; 2) The generation of a relatively coded routine for each equation. The inputs to this phase are the Sorted List. the Dimension List. and the Pseudo Operation List. The symbols for a given equation are obtained in order from the Sorted List and each operator. together with its operand (s). is put in the form of a pseudo instruction to facilitate the check for redundant calculations. These pseudo instructions are entered in what is called the Expand- ed List. unless an identical pseudo instruction has been previously entered. In the case of an identical previous entry. the current pseudo instruction represents a redundant calculation and provision is made to utilize the result of the prior calculation. Through the special formats for the pseudo instruc- tions, many redundant calculations will be eliminated. 1) For example: Identical Symbol Strings. eg., X = sin (A+B+C-D/E) + (A+B+C-D/E) Pow 2 The quantity (A+B+C-D/E) will be calculated only once. 2) Simple Transpositions. eg., X = A*B-sin(B*A) The quantity A*B will be recognized as equivalent to the quantity B*A and would not be recomputed. 3) Transpositions within Expressions where some reordering is caused by the hierarchy of operators. eg. J X = (A+B*C)/E - tan«C*B+A)/E) The quantities (A+B*C)/E and (C*B+A)/E will be recognized as equivalent and only one computation will be made. A unique partial result symbol for each calculation is entered in the Expanded List following each pseudo instruction. This partial result symbol identifies the result of a given calculation as an operand for a succeeding calculation. When a partial result from a calculation is used as an operand for 1230 the next calculation. register storage (A or Q) may be utilized; hence, each pseudo instruction is checked to determine if the last assigned partial result appears as one of its operands. In this way. effective utilization of regis- ter storage is realized; thereby minimizing the need for temporary storage. The Expanded List. together with lists of supplemental information. serves as input for the generation of the relatively coded equation routine. Each pseudo instruction is obtained in order from the Expanded List and decoded. The series of relatively coded machine instructions necessary to perform the required computation and store the partial result is then generated. After all pseudo instructions have been processed, the fixed constants and relative constants are transferred to the generated routine package. At this time also. the Op File describing this generated routine is prepared. The equation routine and Op File are then transcribed on magnetic tape for use as input to succeeding phases of the compiler. As an example. consider the equation: x= A+B*C - sin(C*B) In the Sorted List this equation would appear as: x B C * A + C B * sin ~. Following the elimination of redundant calculations. the equation appears in pseudo instruction form in the Expanded List as: 1231 * B + PR 1 C PR 1 sin PR PR PR PR PR 0 PR 2 ~. Note 1: (PR__ > represents unique partial result symbols. Note 2: The computation of the quantity (C*B) is recognized as a redundant calculation and the result of the prior calculation (PR 1) is used as the argument for the "sin" operator. A PR 4 2 1 3 3 4 X The Expanded List is processed to form the following generated equation routine: EXIT ENTRY MJ o [ FM B C TP Q Q Q TEMP 1 FA TP TP ] .1\ TEMP 2 1EMP 1 SIN o 3 SIN SIN 10 RJ 10 2 TN Q Q Q FA TP o Q TEMP 2 X B*C- Q B*C - TEMP 1 B*C+A- Q B*C+A - TEMP 2 B*C- SIN + 3 SIN(B*C> - Q -SIN(B*C) - Q [-SIN(B*C> ] + [B*C+AJ- Q A + B*C-SIN(B*Cl- X Consider another equation which appears in the Sorted List as: 8 6 5 X 4 D 4 POW 3 2 B C * A 2 + 1 ~. Following the elimination of redundancies (none in the example), the equation appears in the Expanded List as: 1232 I POW I * D C PR 1 PR 1 B PR 2 + PR 2 A 1::::.. PR 3 PR 3 X Finally, the generated equation routine would be: EXIT ENTRY MJ TP 0 10 0 TP D C [ ] POW 3 POW 10 0 4 RJ POW 2 POW 10 FM FA TP MJ Q Q Q 0 0 B A X EXIT 1233 Equation Redundancy Check (Symbol Search) Setup Redundancy Check )---311 Is th is ~~ Mask four least significant octal digits of operator symbol to Au Zeroize condi tion indicator Advance address in Sorted List by one Next symbol from Sorted st to working temporary 3 & Av t---~Li Is thi s 1ibrary operator symbol? Floating point absolute value operator? NO Fixed point absolute value operator? Assumed to be subscripted able symbol Floating point addition NO Floating point subtract operator? Fixed point multiplication operator? General exponentiation ("POW") o erator? Operator for I integral power I > 63 or Inon-integral powe~ r 63 ? YES YES 28 Operator for Integral power rom -4 thru ffi? S -~ 7 Operator for Integral power equal to -3'(' Operator for integral power equal to 3? YES YES Assumed to ~e operator for power = -l'~_ GH] 7· perator for Integral power equal to 2? YES Operator for power equal to 1/2? Operator for power equal to -1/2? NO ~ t-----.jl--------~ END EQUATION REDUNDANCY CHECK Return from storage operator jn for "Q" list search to first word of running address list ALARM: SENTENCE TOO LONG t ed out jn for "A" list search to second word of running address list jn for "redundant partial result" list search to .---~ third word of Running Address List (BQ) rewind tapes 7B Exit from equation redundancy check phase 78 Initial address in Expanded List + 2 to ninth word in Running Address List ~--I Initial relative running address to fourth word of Running Address List Equation Redundancy Check (Subscripted Variable Operator Symbol (7---callwor~ to working temporary _1: To Conn. (188) Advance (D) to next address in Dummy List Dummy "sub" instruction to Dummy List 1 To Conn. (189) ~;earch Dimension ~~ist for callword ~ Symbol \ 77-=-.cal~ Yes To Con (178) Store call~ in Ope File~ Address of corresponding modulus in Au Constant ca llword for modulus in Au modulu pool ~------.....:;;.t Callword of modulus to "u" portion of dummy "sub" instruction Number of subscripts for variable (77---callword) from Dimension List to Index Counter S. Number of subscripts one? = Number of subscripts to "v" of dummy "sub" instruction Decrease address in Operand List (~) by number of subscri ts Decrease index Cl by one To Conn. (179A) Check for (3 heYOD) lower limit Preset Operand List address of first subscript in box 1. ----~ To Conn. (188) ~ ~vance (D) to next ~dress in Dummy List Box 1 Subscript from Operand List to Dummy List in "v". Advance Box 1 to address next subscript in Operand List store multiin constant All subscripts transferred to Dummy List? Multiplier for subscript from Dimension List to Av. 001 Constant callword for multiplier to Dummy List in "u" of word with corresponding subscript To Conn. (186) Search Expanded List for redundancy' Assumed to be four subNumber of subscripts equal two? Number of subscripts equal three?'~~--~ Advance number of lines in running rogram by 5. Set condition indicator to 4. Advance number of lines in running proram b 3. Advance number of lines in running program by 5. Set condition indicator to 2. ~ To Conn. (179) Decrease address Operand Li st ({3) by one Advance numbes=J-t0f S~condition lines in running indicator program by 2 to zero --r--_...J Single subscript to "v" of dummy instruc-~---::.I. tion Delete Dummy List from Expanded List i. e. t set 0 =y To Conn. (186) Search Expanded List for redundancy To Conn. (175) Redundant partial result to Operand List & Partial Result List. To Conn. (184) Redundant partial result to "A" list 0) To Conn. (198) New partial result to Operand List (P) & Expanded List (y). Dummy List (D) to Expanded List. Condition indicator Ex anded List Set COJr1di'~ indicator .~ con~180) Set Increment (I) to one Subscripted variable callword (77----, 76---- or 75----) To Operand List (p) To Advance address in Operand List (p) by one Callword of modulus in pseudo operation input region (63----) to nun of dummy "sub" instruction Symbol = subscripted dummy variable for sub-program? (i.e., 76---- callword) Number of subscripts to "v" of dummy "sub" instruction Number of subequal Number of subscripts from 3rd octal digit of callword to index counter (Cl). Decrease address in Operand List ({3) by number of subscripts To Conn. (179A) Check for {3 beyond lower limi t >--~ In box 2, preset operand Li st address ({3) of 1st subscript for variable Decrease index (C l ) by one subscripts but one transferred to Dummy List? NO Callword of multiplier in pseudo operation input region (63----) to Dummy List in "u" of word with corresponding subscript Box-2 Subscript from Operand List to Dummy List in "v" Advance box 2 to address in Operand List of next subscript for variable To Conn. (188) to in Last subscript from Operand List to Dummy List in "v 7t with no multi lier Symbol assumed dumEquation Redundancy Check (Library Routine Operator) my subscripted variable for function i.e. 75---- callword Permanent library ~ Callword of modulus in "Glen Pow" ca llword 26~__~__.____________________~function input region 27J--~ (510012) to working 29 (62----) to "u" of temporary three dummy "sub" instruction Permanent library "Var Exp" callword (50022) to working temporary three Dummy library instruction with callword from temporary five to Dummy List To Conn. (188) dvance (D) to next address in Dummy List ~ 30 . Library routine callword (4----, 50012, or 50022) from tempor ary 3 to "v" of dummy instruction Set TRP & TRPT to one Set TRC & TRCT to zero Dummy "Library" instruction to tern orar five Number of arguments for library routine from callword to index counters Cl & C2 To Conn. (179) Decrease address Operand Li st (/3) b All arguments transferred to Dummy List? Argument from] Operand List to "u" of temporary 5. Advance INDICATOR in OPe code of argument word in temporary 5 by 338 Advance TRP by one Advance TRP by one Advance OPe code of argument word by one to indicate argument in "Q" register. Set switch S~@ Advance TRP by one & TRPT by one To Conn. (179) Decrease address Operand List (/3) by one Subscript to "v" address of argument word Advance TRP by four Advance T t by one rp Advance OPe code of argument word (temporary 5) by two to indicate 76---- or 75---- type subscripted argument Advance T RPT by one Equation Redundancy Check (Library Routine Operator) Advance TRP by 3. Advance TRC by one. Advance TRCT by one. Advance Ope code of argument word (temporary 5) by four to indicate 77--- type subscripted argument. To conn. (188) Advance (D) to in -~ Argument word to next address in Dummy List 31 To Conn. (186) Add Dummy List to Expanded List (set r = D) YES Delete Dummy List from Expanded List (set D = Y ) Advance Advance Advance Advance NRP by TRP CRC by TRC CRPT by TRPT CRCT by TRCT To conn. (182) Enter partial resul in "Q" 1is t . Advance NRP by Increment (I) To conn. (196) To conn. (185) Enter partial result in "A" list. Set Increment to one To conn. (178) To conn. (203) Enter library routine call word in Ope File I ubscript symbol = partia result counter? i.e.~ Subscript in ''',4'' Register nter current partial result in Operand List and. Expanded List. Enter library routine call word in Li st 1. Set Switch Advance Ope code of argument word (temporary 5) by one to indicate subscript for argument in "A" register. Equation Redundancy Check (Power Operators) Dummy "Pow+ .3" instruction to temporary 5. Dummy "'Pow+2 u instruction to temporary 5. ®- Dummy ttPOW+l/2}®' instruction to 49 temporary 5. To conn. (57) Dummy ''''Pow-3'' instruction to temporary 5. Check for redundancy (IRIR15) Is operand subsripted? NO To conn. (57) Dummy "Pow-2'" instruction to temporary 5. Check for redundancy (IR IRI5) Is operand subscripted? YES NO To conn. (57) Dummy ''''P oW-l/2" instruction to temporary 5. Check for redundancy (IR IR15) Store square root call word in Ope File I To conn. (203) Store square root call word in List 1. ~ Advance NRP by 2. ~ Advance NRP hy 4 Advance NRP hy 1 Advance NRP by 4 NO To conn. (178) Advance NRP by 5. To conn. (178) Store square root call word in Ope File I. Advance NRP by 2 To conn. (203) Store squaJl"e ~ root call word 65 in List 1 Equation Redundancy Check (Integral Power Operator) To conn. (57 ) Dummy "Pow-I" instruction to temporary 5. Is operand subscripted? Advance NRP by 3. Set Ope code of conditio indicator to 108 to indicate 75-- or 76-type operand. Is subscript symbol partial result counter? (i.e. subscrip in itA" register?) YES Advance NRP by increment (I) 62 Dummy'·Pow(4 to 63)" instruction to temporary 5. Dummy "Pow(-4 to _63)" instruction to temporary 5. Dummy instruction is not redundant To conn. (58) Set Switch Check for redundancy ( IR 1-IR 15 ) J---&-.-.;':W' To conn. (188) (D) to next in Dummy Operator symbol (13---type) to Expanded Li st ®-1. ._~_~_v;_n_c_e __N_RP---.J NO ~vance ~6. Dummy instruction is identical to previous entry in Expanded List Are exponents for operands YE also identical? (i.e. 13-type symbols equal?) NRP Equation Redundancy Check (Integral Power Operator) Subroutine To Check for Redundancy of Integral Power Operator Dummy instruction with operands to "A" and tern orar To Conn (141A Check variables set switch ® Is there a subscript? YES Subscript to "v" of dummy instruction in tern orar 5. To Conn. (186) Search Expanded List for redundancy NO Zero to "v" of dummy instruction in temporary 5. To Conn. (188) Subscript Advance (0) to next Dummy "POW" instruction address in Dummy List~--~in temporary 5 to ~--~ indicator to "Q" register Expanded List Is dummy "POW" instruction in Dummy List identical to previous entry in Exanded List? -~ '\0 YES Tl ~ 60', ! Is operand in "u" of dummy instruction 77----type? ~ ~ ® rance by one ~ NO Set condition indicator to 108 in op. code to indicate 75---- or 76----type operand Is subscript symbol in "v" of dummy :instruction = partial result counter? (i. e.. ,subscript register?) YES Advance Nrp by Increment (I) Set condition indicator 4 in OPe code to indicate 77---type operand Advance erc by one Is subscript symbol in "v" of dummy instruction partial result counter? (i. e. subscript in nA'" re ister'?) Advance op_ code of condition indicator by one to indicate subscript in "A" register To Conn. (196) Advance NRP by one To Conn. (185) Set Increment(I) to one Enter partial in "A" list Condition indicator to op. code of partial result word in Expanded List (CW) store floating one in constant 001 Is operator negative power? Callword of constant to "u" of partial result word in Expanded List Is operand symbol in "un of dummy instruction = partial result counter? (i.e. operand in "Q" register?) ~-----,. Set op. code of condition indicator to zero to indicate non-subscripted operand not in "Q" register Set op. code of condition indicator- to one J---.,. to indicate non-subscripted operand in "'Q" register Advance Nrp by Increment (I) t---~ Advance op. code of condition indicator by 338 to indicate 61----type operand To Conn. (192) Check for 61----type operand in "u" To Con n • ( 182 ) Enter partial result in "Q" list Set op. code of condition indicator to zero to indicate non-subscripted operand not in "Q" register. t----.,.,N Advance by two rp Advance ~ Nrp by -Q Increment (I) Is operator power 1/2 ? (i.e. 160001) Advance Crct bone s operator power -1/2? (i.e. 16100?) ondition indicator = 4 in OPe code f;;\--~J V AdvancE' ~ICrpt by two Advance Crpt I----:.r by one Equation Redundancy Check (Floating Point Divide and Subtract Operators) 0r{ 72. Jummy "floating point divide" instruction to temporary 5. NO Operand symbol in "v" of dummy instruction = partial result counter? (i.e., operand in "Q" register?) To Conn. ( 141) Check variables and set swi tch < ® Set swi tch To Conn. (170) Check for redundancy of dummy instruction To Conn. (167) Check for redundancy of dummy instruction Operand symbol in "v" of dummy instruction = partial result counter? (i.e. operand in "Q" register?) YES ~ Advance Nrp by 173 Increment (I) A YES a.@ Dummy "floating point subtract" instruction to temporary 5 Operand symbol in "v" of dummy instruction = partial result counter? (i.e •• operand in "Q" 'register?) To Conn. (141) Check variables and set switch H YES Set swi tch @~@ To Conn (170) Check for redundanc of dummy instruction To Conn. (167) Check for redundancy of dummy instruction Operand symbol in ttv" of dummy instruction = partial result counter? (i.e •• operand in "Q" register?) YES Advance Nrp by one @ Set Ope code of condition indicator to 4 to indicate operand for ttv" in "Q" register NO Advance N rp Increment (I) ~~~by Advance OPe code of condition indicator to 168 to indicate non-subscripted operands with operand for ttv" in "Q" register. To Conn. (141) Sort variab~ Dummy "floating multiply" instruction to temporary 3 Dummy "floating plus" instruction to temporary 3 ~---~a set switch ~ r----l instru~Cion Is there subscript word? Dummy with operands to temporary 5 ,-... 'TJ ~ To Conn. (167) heck for redundancy of d~mmy instructlon ~ 78 . . o artial result counter "u" of subcript word? (i.e. subscript for "u" in "A" register?) III rl' ..... :::s c.o "v" in "A '"t:I o til ..... :::s rl' ~ d-v-ance N rp by Increment Set OPe code of condi173~-...... tion indic:ator to zero A to indicate neither subscript in "A" register (I) ._..,....-______.....J ;J> Co Co ..... rl' ..... o :::s III :::s Co r= == ~ rl' ..... "0 ..... ~ ~. ®~® 79 Set swi tch I Set swi tch 0~@ (") III rl' ..... o ::::s Set OPe code of condition indicator to two to indicate subscript for "v" in "A" register To Conn. (185) Enter partial result in "Aft List o "0 ., .,o ('I) III rl' til ....... To Conn. (185) Enter partial result in "A" List Set OPe code of condition indicator to one to indicate subscript for "u" in nAn register To Conn. (170) Check for redundancy of dummy instruction TO Conn. (188) Advance (D) to next address in Dummy List To Conn. Sort fixed point operands To Conn (175) Redundant partial result to Operand List & Red. partial Result List Advance N by rp 1ncrement(1) Equation Redundancy Check (Fixed Point Addition and Multiplication Operators Dummy "Fixed Point plus" instruction with operands to Dummy List To Conn. (186) Search Expanded List for redundancy Delete Dummy List from Expanded List (set 0= y) Advance rp by 2 N To Conn. (198A) Partial result to Expanded List and Operand Condition indicator to Expanded List. Set increment (I) to zero ~ 4. Advance by one rp,::..--..---....... N To Conn (188) ~vance (D) to next ~~dress in Dummy List To Conn. (199) Partial result to 'A" 1 i st t Expanded Li s and Operand List. Condition indicator to Expanded List Set increment (I) to zero To Conn. (177) Sort fixed point operands Dummy "fixed point multiply" instruction with operands to Dummy List To Conn. (175) Redundant partial esult to Operand List & Red. Partial Result List To Conn. (186) ~earch Expanded ~ist for redundancy I s dummy "fixed point multiply" instruction identical to previous entry in Expanded List? G ~--~ Delete Dummy List from Expanded List. (set D = Y ) Was partial re- ~ suIt already in r e d rYES Udant Partial Result 1 List? Advance Nrp by I ~ if partial result I in "A" List To Conn. (198A) Partial result to Expanded List and Operand List. Condition indicator to Expanded List \---.:111( To Conn. (199) Partial result to "A" Ii st, Expanded List. and Operand List. Condition indicator to Expanded List. Advance Nrp by one ~-.;M88 Advance N rp by one Set Increment (I) to Equation Redundancy Check (Fixed Point Subtraction and Division Operators) To Conn. (ISS) ~dvance (D) to next ~ ~ddress in Dummy List )-----;0;.( To Conn (179 Decrease address Operand List (/3) one >---~ b Get operand for "v" from Operand List L I' To Conn. (179) Decrease address in Operand List (/3) by one "I Get operand .. for "u" from Operand List Dummy "Fixed point minus" instruction ... with operands to Dummy List. Dummy "Fixed point minus" instruction identical to previous entry in Expanded List? e{ .• 91 YES To Conn. (IS 6) 'Search Expand ed ... for redundanc y - \ Advance Nr by 2 YES Operand in ltv" of dummy instruction = partial result counter? (i.e., "v" operand in "A" register?) (3s 93 To Conn. (198A) Partial result value to Expanded List and Operand List. Condition indicator to Expanded List ~~ Set OPe code of condition indicator to 2 to indicate operand for "v" in "A" register. Set }-----;'flncrement (1) to zero r-~~ To Conn. (188) To Conn. (179) Decrease address in Operand List (8) by one To Conn. (186) Search Expanded List for redundancy To Conn. (199A) Partial result value to "A" list, Expanded List and Operand Lis~Condi tion indicator to Expanded List. To Conn. (179) Decrease address in Operand List (~) by )----iIIt r----iIIt Set Increment (I )I-----:iII( to zero Get operand for "v" from Operand Lis Dummy "Fixed point divide" instruction Get operand for with operands to "u tt from 0 pe ran dl---,.. Dummy List. List Dummy "Fixed point divide" instruction identical to previous entry in Expanded List? L--=YE==-S_ _ _~ Advance Nrp by 2 J.-..-~!w To Conn. (198A) Partial result value to Expanded List and Operand List. Condition indicator to Expanded List 0-E set 1 ~,A',dvance ~ l5r by 1 To Conn. (199 Partial result alue to "A" list, Expanded List and Operand List. Condition indicator to Expanded List Increment (I) to zero EquatiQn Redundancy Check (Floating Point Unary Minus and Absolute Value Operators Dummy "Floating point unary minus instruction to temporary 5. Dummy "Floating point absolute value" instruction to temporary 5 To Conn. (141A) Check variables and set swi tch ® Subscript to !tv" of dummy instruction To Conn. (186) Search Expanded List for redundancy NO YES Is subscript symbol = partial result counter? (i.e., subscript in "A" register?) YES Set condition indicator to zero to indicate subscript not in "A" register Set condition indicator to one to indicate subscript in "A" register Advance Nrp by increment (1) To Conn. (185) Enter partial result in "A" List Dummy instruction to Expanded List To Conn. (188) Advance ( to ~ext address in Dummy List \-------- To Conn. (175) Redundant partial result to Operand Lis and Redundant Partial Result List Was redundant partial result already in Redundant Partial Result List? Is redundant partial result in "Q" List? Is instruction following redundant partial result in Expanded List a floating point subtract with redundant partial result in "v"? Is operand in "u" of floating point subtract instruction 77--- type? Is operand in "u" of floating point subtract instruction 75-or 76--- type? Delete redundant partial result from "Q" List Reduce Nrp by one lYes <§ tE--~ Reduce condition indicator for floating point subtract instruc tion by four to indicate operan for "v" not in "Q" register. Is dummy instruction with operand identical to previous entry Expanded List? To Conn. (186) Advance (D) to next address in Dummy List Dummy instruction to Expanded List Advance N r ~)y one Set OPe code of condition indicator to 128 to indicate operand non-subscripted &-t 10 . Advance N by rp increment (I) I-----:;;N" Advance OPe code of condition indicator to ~---;i1IIf 15 8 to indicate operand for "u" in "Q" register To Con n • ( 1 92 ) Check for operand in "u" To Conn. (182) Enter partial result in "Q" List To Conn. (200) Partial result to Operand List & Exanded List. Condition indicator to Ex anded List. Set increment (I) to zero Equation Redundancy Check (Fixed Point Unary Minus and Absolute Value Operators) Dummy "Fixed point absolute value" instruction to temporary 5. Dummy "Fixed point unary minus" instruction to temporary 5 Dummy instruction with operand from Operand List in "u" to Dummy List To Conn. (186) Search Expanded List for redundancy To Conn. (179) Decrease address in Operand List ($) by Is dummy instruction identical to previous entry in Expanded List? YES Advance Nrp by one To Conn. (188) Advance (D) to next address in Dummy List Delete Dummy List from Expanded Li st (set D = y ) To Conn. (175) Redundant partial result to Operand List and Redundant Partial Result List Was partial result already in Redundant Partial Result List? redundant parresult in "Au list? ME---4 NO ~------------- Is redundant partial result = current partial result value'i~ YES L----------4 Advance Nrp by one . e-{ EquaJtion Redundancy Check (Storage Operator) To Conn. (179) Dummy "STORE" Decrease address in 117 instruction to ~~ Operand Li st (f3) by temporary 5. >------:.... to! minus one Operand from Operand List to "u II 0 f dummy instruction. YES Next operand from Operand List to IE--~ "v" of dummy instruction To. Conn. (179) Decrease address in Operand List(tD by one Is operand in ltv" of dummy instruction 76--- type? Is operand in "v" of-dummy instruction 77--- type? YES NO Set condition indicator to 128 to indicate both~________~ operands non-subscripted YES Advance Nrp by 2 Operand in "u" of dummy instruction = partial result counter? operand in "0" register?} To Conn. (191) Check for 61---- ~---'~ Dummy "STORE" instruction with operands to Expanded List To Conn. (188) Subscript word with Advance (D) to next )--__~ condi tion indicator from-----hA\ address in Expanded temporary 6 to Expanded -~ ~___~L=i~s~t________~ List To Conn. (185) To. Conn.(194) Check for 61--type operand in ltv" Condition indicator to OPe code of subscript word in temporary 6. To Conn. (188) Advance to next address in Expanded List To Conn. (182) Enter partial result in "Q" List Advance condition by-3 in OPe code to indicate operand for "u" in "Q" I--------~ or "A" register Equation Red un d ancy Ch ec k (St orage opera t or ) To Conn. (179) ecrease address in erand List ({3 ) by one .. Subscript for "v" operand from Operand List to ~ "v" of subscript word in temporary 6. Set condition indicator to 118 in OPe code to indicate "u" operand non-subscripted and r--"v" operand 76 ---type. Is subscript for "v" operand = partial result counter? (i.e., subscri{>t in "A" RegIster?) Is operand for "u" = partial result counter? (i.e.,"u" operand in "Q" register?) YES To Con n • ( 192 ) Check for 61---type operand in "u" Advance NRP by 4. To Conn (192) Check for 61--- type operand in "u" To CONN. (179) Decrease address in ({3) by J---~ \------''!101 Advance condition indi cator by 2 in op. code to indicate subscript for "v" operand in "A" reg i s t e r >---~ Subscript for "v" operand from Operand List to "v" of subscript word in temporary 6 IE-----I Advance NRP by 4 NO To Conn. (185) I----=!K' Enter partial result in "A" List Set condition indicator to 5 in OPe code to indicate "u" operand non-subscripted and "v" operand 77--- type Is subscript for "v" operand = partial result counter? (i.e., - subscript in "A" register?} YES Advance NRP by 3 Advance count of relative constants (CRC) by one To Conn. (179) ~_~ecrease address in ~perand List (~) by To Conn. (179) Decrease address in) Operand Li st (/51) by ~--, one Subscript for "u" operand from Operand List to "u" ~--~of subscript word in temporary 6. Is operand in "v" of dummy instruction 77--- type? I--~~ Is operand in "u" of dummy instruction 77--- type? NO iE------t Operand for "v" from Operand List to "v" of dummy instruction in temporary .5. Set condition indicator to zero in OPe code to indicate "v" operand hon-subscripted and "u" operand 7'5--- or 76--- type. ~ - Advance (131 Advance condition indicator by one in OPe ~~ code to indicate subscript for "u" operand is in "A" reg i ster To Con n • ( 185 ) Enter partial result in "A" List N by 5 RP l-----:~ Set condition indicator to two in OPe code to indicate "v" operand non-subscripted and "u" operand 77--- type. To Conn. (179) Decrease address in Operand List (~) by one Is operand in "u" of dummy instruction 77--- type? Advance N by 2 RP Advance count of relative constants (CRC) by one Subscript for "v" operand from Operand List to "v" of subscript word in temporary 6 Set condition indicator to 228 in OPe code to indicate "u" operand 75--- or 76--- type and "v" operand 76--type Advance NRP by 7 To Conn. (194) Check for 61--- type operand in "v" Set condition indicator to 308 in OPe code to indicate "u" operand 77 -_.- type and ttv" operand 76--- type Advance count of relative constants (C rc ) by one Advance Nrp by 6 S subscript for "v" operand = partial result counter? (i.e.-subscript in "A" Register? To Conn. (179) Decrease address in operand list (/3) by one Is operand in "u" of dummy instruction 77--- type? Set condition indicator to 258 in OPe code to indicate "uti operand 75-- ·or 76--- type and " v" operan d 77 --- type YES Set condition indicator to 178 in OPe code to indicate "u" operand 77--- type and nv" operand 77--- type. Advance N by 5 rp Advance count of relative constants (C ) by one rc -8 36 Advance Equation Redundancy Check (Subroutine to Check Variables) To Conn. (179) Decrease address in Operand List (~) by one "v" operand from Operand List to ltv" of temporary 1. ltv" operand subscripted? To. Conn. (179) Decrease address in Operand List (/3) by one To Conn. (179) Decrease address in Operand List (~) by one Subscript for "v" operand from Operand List to "v" of temporary 6 nu tt operand subscripted? NO Zero to "Q" register to indicate no subscript word in temporary 6 "u" operand from operand List to "u" of temporary 5. To Conn. (179) Decrease address Operand List (/3) by one' Subscript for "u" operand from Operand ~---::.. Li st to "u" of temporary 6 "u" operand from Operand List to "u" of temporary 5. To Conn. (179) Decrease address Operand List (~) by one Set switch @-+@ to indicate "u" operand subscripted and !tv" operand non-subscri ted operand subscripted? flU" NO Set swi tch ®~ @ to indicate "u" operand non-subscripted and "v" ~ operand subscripted -G To Conn. (179) Decrease address Operand List ({3) by one Subscript for "u" operand from Operand List to "u" of temporary 6. Negative number to t------~. "QIt reg i ster to indicate "subscript word" in temporary 6. Set swi tch ®~ @ to indicate both "u" and "v" operands subscripted "v" operand f r o g temporary 1 to "v" of temporary 5. Dummy instruction with operands from temporary 5 to "Au register (VS) Subroutine To Sort Operands for Floating Point Addition or Multiplication To Conn. (179) Decrease address in Operand List ({3) by one Second operand from Operand List to "v" of "A" re ister First operand from Operand List to "v" of nQ" regi ster Is first opersubscripted? J----=__< To Conn. (179) Decrease address Oper and Li st, ({3) by one I--~ ymbo1 for first~o ~ operand ;>' symbol for 148 second operand? YES First operand to "un and second operand to "v" of temporary 5. second opersubscripted? To Conn. (179) Decrease address in Operand List (~) by one Subscript for ltv" operand from Operand List to "v" of temporary 6. Set switch to indicate "u" operand non-subscripted and "v" operand subscripted Second operand to "u" and first operand to ttv" of tern orar 5. To Conn. (179) Decrease address in Operand List (~) by one To Conn. (179) Decrease address in Operand List (~) by one Zero to "Q" register to indicate "no subscript word" in temporary 6 Subscript for first operand from Operand ~--~ List to "v" of temporary 6. First operand to "u" and second operand to "v" of tern orar 5. To Conn. (179) Decrease address Operand List (S) by one NO Second operand from Operand List to "v" of "A" register Symbol for first operand > symbol for second 0 erand? Subscript for "u" operand from "v" of temporary 6 to "u" of temporary 6. . f or Subscrlpt It v It operand from Operand List to "v" of temporary 6 Set switch ®~@} to indicate both "u" and "v" operands subscri ted Second operan d to "u" and first operand to "v" of temporary 5. To Conn. (179) Decrease address Operand List ($) by Dne Is second opersubscripted? Negative number to "Q" register to indi~-----~ cate subscript word in t·emporary 6. . for it" Subscrlpt u oper- and from Operand List to "u" of temporary 6. to indicate "u" and "v" operands subscripted (OS) To Conn. (179) Decrease address in Operand by one Subroutine to Sort Operands for fixed Point Addition and Multiplication Second operand from Operand List to "Q" register (PN) YES To Conn Decrease address in Operand by one First operand from Operand List to "A" register First operand to "u" and second operand ~----------~ to "v" of itA" re ister Set Condition Indicator for Floating Point Operations Is operand in "u" of dummy instruction temporary 5 77--- type? Is operand in "v" of dummy instruction temporary 5 77--- type? YES YES 5, Set condition indicator to 228 in op. code to indicate "u" and "v" operands 75--- or 76---- t 5 6:114---4 Set condition indicator to 258 in op. code to indicate "u" operand 75--- or 76--- type and "v" operand 77---· type Advance N-r by five Second operand to "u" and first operand to "v" of "A" register Symbol for second operand> symbol for first operand? Advance count of relative constants (Crc> byr-~· one Advance Nrp by six Advance Nrp by six Set condition indicator to 308 in OPe code to indicate "u" operand 77--- type an d " v tt operand 75--- or 76--- type. · "v" Is operan d In of dummy instruction temporary 5 77--- type? Set condition indicator to 178 in OPe code to Advance count of re1aindicate both nu" and t--~ tive cons,tants (C rc ) ttv" operands 77--- type by one__________ L-__ ~~~ ~ Advance Nrp by four ~ 1 · t tv" Is operan d In of dummy instruction in temporary 5 77--- type? .--.....,. Set condition indicator to 5 in OPe code to indicate "u" operand non-subscripted and ttv" operand 77--- type 6 Advance N by 3 rp K} Advance count of re1ative constants (C rc ) L-~b~y~o_n_e________________ J ~ 166 Set condition indicator to 118 in OPe code to indicate "u" operand . d an d"" non-subscrlpte v operand 75--- or Advance Nrp by five Advance count of relative constants (ere) bone Advance Nrp by 3. "- dvanee by 2 rp_ N Is operand in "u" of dummy instruction temporary 5 77--- type? ..... I\:) CD Set condition indicator to 2 in OPe code to indicate "u" operand 77--- type and "v" operand non-subscripted NO Set condition indicator to zero in OPe code to indicate "u" operand 75--- or 76--- type and "v" operand non-subscri ted To Conn. (192) Check for 61--- ·type operand in tlu" ~ Nrp by 4 Advance by 3 rp N Advance count of relative constants (C rc ) bone /~ '0-1 3 o Advance N rp by 4 ~I Advance To Conn. (194) Check for 61---type operand in "v" Advance N by 3 rp ~ 165 Advance indicator following dummy instruction in Expanded List by condition indicator (RR) Subroutine To Check for Redundant Floating Point Binary Operation To Conn. Advance to next address in Expanded List Search Expanded for redundancy Subscript word from temporary 6 to Expanded List Is dummy instructio identical to previous entry in Expanded List? YES Set switch Set swi tch 0~@ Advance to next address in Expanded List Dummy instruction from temporary 5 to Expanded Li st. Set condition indicator to 3 in OPe code to indicate operand for "u" in "Q" register 1281 Set switch Search Expanded List for redundancy ®~CD Is dummy instruction identical to previous entry in Expanded Li st? NO To Conn. (188) Advance to next address in Expanded List YES Advance condition indicator by 3 in OPe code to 158 indicate operand for "u" in "Q" re ister Dummy instruction from temporary 5 to Expanded List Check for 61--- type operand in "v" Advance Nrp by one Set condition indicator to 128 in OPe code to indicate both n u'; and "v" operands non-subscripted To Conn. Check for 61--- type operand in "u" or"v" 1282 To Conn. (182) Enter partial in "Q" List Set Increment (I) to one To Conn. (175) Redundant partial ~----::..... resul t to Operand Li st and Redundant Partial Result List (RS) Was redundant partial result already in Redundant Partial Result List? To Conn. (200) Partial result to Operand List and Expanded Lis~ Condition indicator to Expanded List To Conn. (181) Check for redundant partial result in "Qu . List Subroutine to Store Redundant Partial Result in Operand List and Redundant Partial Result List. Get address of redundant partial resul t in Expanded List from "Att register t--~ Get next available adStore redundant dress in Operand Li st I--~ partial resul t in from first word in RunOperand List. ning Address List To Conn. (180) Is redundant partial result in Redundant Partial Result List? NO Advance address in Operand List ($) by one Get next available address in Redundant 176....-.-~ Partial Resul t Li st from ninth word in Running Address List Store redundant partial result in Redundant Partial Result List Set "A" register negative to indicate redundant partial result was not in list. Advance available address in Redundant partial Result List by one Is Redundant Partial Result List too long? YES ALARM: SENTENCE TOO LONG. Typed out. 41---311 Set "A" register positive to indicate redun- ....-.-....... dant partial result was in list. (BQ) Rewind tapes (FS) Subroutine To Store Callword in Ope File I Item Input-Callword in " .. of "A" Register YES Get available address in Ope File I from second word of Running Address List callword in in OPe Advance available address in Ope File I by one Is Ope File I too long? YES ALARM: LONG. SENTENCE TOO Typed out ~~ (BQ) Rewind tapes Store 77--- callwo~l in OP. File I. I == Advance number of line in Ope File I item by one J (BR) Subroutine to Advance or Decrease Available Address in Operand List ( Beta Routine) l79J---~ Decrease current address in Operand Li st ({3) by one. Is initial address in Operand Li st > Current address? YES ALARM #4: COMPILATION INCONSISTENCY NO l80"---~ Advance current address in Operand List ({3) by one Is maximum address in Operand Li st > current running address? NO ALARM: SENTENCE TOO LONG Typed out. (BQ) rewind tapes (LQ) Subroutine To Search for or Store Partial Result Symbol in I'tQ" List Input-Redundant Partial Resul t in "A" Register for Search Search entrance if floating point plus, minus multiply or divide Is redundant partia "A" reg i ster in "Q" List? yes ~ vl Advance N rp by one Is redundant partial result = current partial result (partial result counter)? NO YES Advance~~ ~ Set Increment (I) to zero Store entrance Obtain available ad182J----~ dress in "Q" Li st from third word in Running Address List ~Q) rewind tapes ALARM: SENTENCE TOO ) -~LO_N_G___T_y_pe_d__o_u_t______~ Search entrance if floating point unary minus or absolute value t----'-'-.t Is redundant partial result in "A" register in "Q" List? NO Enter partial result value from partial result counter into "Q" List Advance available address in "Q" List by one. s "Q" Li st too long? (LA) Subroutine To Search for or Store Partial Result Symbol in "Au List Input;-Redundant Partial Result in "A" Register for Searc:h r-------------------~ Entrance to Search Is redundant partial resul t in "Au regi ster in "A" List? t-~-3Il v- Is redundant partial result = current partial result(partial result counter)? YES .-____...J' Set L--A_D_V_AN_C_E_N_r_p_b_y_o_n_e_---J IncremE~-V tozero~ Entrance to store Obtain available address in "A" List from fourth word in Running Address List e- ALARM: (BQ) rewind tapes Advance available address in "A" List by one Enter partial result value from partial result counter into "A" List SENTENCE TOO LONG Typed out YES Is "A" List too long? (ES) Subroutine To Search for Dummy Instruction or Advance Dummy Tally in Expanded List Inpu~Dummy Instruction in "A" Register Entrance to search Is dummy instruction in "A" register identical to previous entry in Expanded List? Address of word following identical entry in Expanded List to tlu" of "Att register Set "A" register negative indicate dummy instruction not identical to previous entry in Expanded List. 187~--~to Entrance to advance tally (D) (BQ) rewind tapes NO 188 Advance Expanded List dummy tally (D) in sixth word of Running Address List by one Is Expanded List too long? YES ALARM: SENTENCE TOO LONG Typed out (OS) Subroutine to Search Dimension List (Input-Callword in "An Register) Is 77--- callword in "A" register in Dimension List? YES Address in Dimension Li st of word following callword to "u" of "A" reg i ster I--_~ NO ALARM #1: COMPILATION INCONSISTENCY (PR) (BQ) Rewind tapes Subroutine to Decrease and Check Partial Result Counter Decrease partial result counter in seventh word of Running Address List by one to get new partial result symbol Has partial result YES ALARM:: SENTENCE counter decreased below I---~ TOO LONG minimum value? NO (BQ) Rewind tapes ) (EK) Subroutine to Check for 61--- Type Operands in Dummy Instruction Entrance to check "u" and "v" Are operands in "u" and "v" of dummy instruction in temporary five 61--- ty e? Is operand in "v" of dummy instruction 61--- type? YES ~-~ Advance condition indicator by 358 in op. code to indicate "v" operand 61--- type. NO YES Advance Nrp by 1 Entrance to check only "u" s operand in "u" of dummy instruction temporary five 61--- t e? YES J--------:~ Advance condition indicator by 338 in op. code to indicate operand 61--- type Advance N by 1 rp Entrance to chec~ I on ly "v" ... ____ Advance N p ~ r _ operand in "v" of dummy instruction temporary five 61--- type? YES Advance condition indi cator by 318 in op. code to indIcate both "u" and "v" operands 61--- t e ~ ....0 w (Pp) Subroutine to enter Current Partial Result Symbol in Expanded List and Operand List To Conn. (188) Advance dummy tally (D) to next address to count partial result symbol 8-< 196 Set address of d last O OExpan en t ry In e d LIS t \ - - + 1 (y) = dummy tally (D) to add Dummy List and new partial result symbol to Expanded List e197 Obtain address in Expanded List (y) for new partial result from fifth word in Running Address List Enter new partial result symbol in Operand List K. To Conn (190) ObtaIn new ~ partIal result symbol Obtain available address in Operand List from first word in Running Address List To Conn. (180) Enter partial result symbol in Expanded List Advance address in Operand List (~ by one }---v Subroutine to Store Partial Result Symbol for "Sub" Operation in Expanded List and Operand List Advance N rp by one Advance N by rp Increment (I) To Conn. (185) Enter partial result in "A" List Set condition indicator to one in OPe code to indicate subscript in "A" register Set address of last entry in Expanded List (Y) = dummy tally (D) to add Dummy List and new partial result symbol to Expanded List. Obtain new partial result symbol To Conn. (188) Advance dummy tally (D) to next address to count partial symbol ~ ____________, ~ Obtain available address in Operand List from first word in Running Address List ~ Enter new partial resuIt symbol in Operand List Obtain address in Expanded List (Y) for new partial result f rom fifth word in Runnin g Addre,s s Li st ... l ~----I Enter new partial res u1t s ymb 0 1 in Expanded List ] " - - - - - Condition indicator to op. code of word following last dummy instruction entered in Expanded List To Conn. (180) Advance address in Operand List (~) by one (LS) Subroutine to Store in List 1, Callword of Library Routine and, if Fixed Library Routine, Callwords of its Cross-References Advance index C 3 by two Preset address in box-3 to initial address in list of fixed library callwords (see below) Set index C to zero 3 Is callword in "u" of "A" = 50012? Advance index C 3 by three NO Is callword in "u" = 50022? NO NO Is callword in "un of "A" equal to 50031, 50041, or 50051? Callword from·address in list of fixed library callwords to "An [-----J YES (LR) callword from "An to list 1 List of Fixed Library Callwords (Only those pertinent to this phase) I 50002 00000 50022 00000 50031 00000 50041 00000 00 I 50051 00000 00 I I 00 I Advance address in Box-3 by one I 00 00 00 I I I I I I (LR) callword from "A" to list 1 50012 Is index C 3 negative? 00000 1296 Decrease index C 3 by one Equation No.2 {Redundancy Check} Coding Regional Assignments for Equation Redundancy Check Phase General Subroutines (not part of this pha se) 1 RE RE RE fiE RE RE Region and Address Name or DescriPtion UP421 Uniprint Routine EP537 Alarm Routine Rewind Tapes Routine BQ632 WROO') Type Alarm Heading CW1211 Constant Callword Routine LR1465 Build List 1 Routine laT .. / ,.. ..... Input from Translation RE SL2242 Program RE RE RE RE RE RE RE BB2512 SS2544 ER2614 S02633 SP2715 SQ2757 ST3010 RE RE RE RE RE W3064 LK3111 LL3133 Uv13161 LN3210 IP3236 IQ3300 IR3335 IS3375 FD3454 RE FP3513 RE RE RE RE RE P03544 M03570 N03617 003651 FN3700 HE NF4014 RE NE4041 RE RE RE RE RE - -- RE EE4051 Sorted Li st Setup Redundancy Check Phase (Start) Check Symbol from Sorted List End Redundancy Check Phase Subscript Operator (77___ type callword) Subscript Operator (continued) Subscript Operator (continued) Subscript Operator (76___or 75 ___type callword) Library Operator Library Operator (continued) Library Operator (continued) Library Operator (continued) Library Operator (continued} Power Operators (3), (-3). (2), (-2), (~~ E-~) Power Operators (-1),(4t063),(-4 to -63) Power Operators (continued) Power Operators (continued) Floating Point Divide and Subtract Operators Floating Point Plus and Multiply Operators Fixed Point Plus Operator Fixed Point Multiply Operator Fixed Point Subtract Operator Fixed Point Divide Operator Floating Point Unary Minus and Absolute Value Operators Fixed Point Unary Minus and Absolute Value Operators I Fixed Point Unary Minus and Abs. Val. (.C9Jn_ il1J.l_~_d) _ Storage Operator (space-period) I 1297 EF4ll0 EG4l52 EH4206 Storage Operator (continued) Storage Operator (continued) Storage Operator (continued) RE VC4246 VS4317 RE PN4404 HE RR4502 RE RS4562 RE 054610 RE FS4624 Subroutine to Check Variables Subroutine to Sort Operands for Floating Plus or Multiply Set Condition Indicator for Floating Point Operations Subroutine to Check for Redundant Floating Point Binary Operation Subroutine to Store Redundant Partial Result Symbol in Operand List and Redundant Partial Result List Subroutine to Sort Operands for Fixed Plus or Multiply Subroutine to Store Callword in Ope File HE BR4642 RE LQ4654 RE LA4703 RE ES4726 RE RE DS4746 PR4755 RE EK4764 RE PP5012 RE SR5023 Constants RE RE RE RE RE FC5051 RC5l74 T05227 IA5233 LV5245 Fixed Constants Relative Constants Alarm Text Initial Addresses of Lists Limiting Addresses for Lists etc. Subroutine RE LS5257 Subroutine to Store in List I, Callword of Library Routine and If Fixed Library Routine. Callwords of Cross-References RE RE RE Subroutines RE 1 Subroutine to Advance or Decrease Address {3 in Operand Li st (Beta Routine) Subroutine to Search for or Store Partial Result Symbol in "Q" List Subroutine to Search for or Store Partial Result Symbol in "A" List Subroutine to Search for Dummy Instruction or Advance Dummy Tally in Expanded List Subroutine to Search Dimension List Subroutine to Decrease and Check Partial Result Counter Subroutine to Check for 6l ___ Type Operands in Dummy Instruction Subroutine to Enter Current Partial Result Symbol in Expanded List and Operand List Subroutine to Store Partial Result Symbol for Subscript Operation in Expanded List and Operand List 1298 Temporaries Lists Permanent List I RE RE WT5306 CT5315 RE RE RE RE RE RE RE RA5550 XQ5561 XA5761 RL6l6l EL6261 FL7l6l BL7361 RE DL4OlO2 Working Temporaries Counters I Running (current) Addresses in Lists "Q" List "A" List Redundant Partial Result List Expanded Li st Ope File 1 Item Operand List Dimen sion Li st 1299 I Equation Redundancy Check Phase IA Start BB 0 1 2 3 4 5 6 7 10 MJ 0 TP TP TP TP TP TP TP TP IA IAI IA2 IA3 IA4 IA21 lA5 lA6 [30000J RA HAl RA2 RA3 RA4 RA5 RA6 RA7 11 12 TP lA7 IAIO RAIO SS3 13 14 15 16 17 20 TP SP TP AT TP SLI SL3 A FC23 Fe 111 6 ELI 17 EL FL FLl DSI 21 22 23 24 25 26 27 30 31 TP TP TP TP TP TP TP TP CT7 CT CTl CT2 111 MJ CA Fe Fe Fe FC FC FC FC FC 0 BB32 WI' Wfl CTll CTl2 SS Setup Redundancy Check Phase Exit-Redundancy Phase Preset Running Add. in Operand List Preset Running Add. in Ope File 1 item Preset Running Add. in "Q" List Preset Running Add. in "Au List Preset Running Add. in Expanded List Preset Dummy Tally for Expanded List Preset Partial Result counter Preset Running Tally #lines in Running prog. +1000 Preset Running Add. in Red. P.R. List Preset Running Add. in Sorted List-Initial Add. Line Number to 2nd Word of Expanded List Callword to "u" of A Callword to "u" of 1st word in Exp. List Callword to 1st line Ope File 1 item Zeroize 2nd line Ope File 1 Item j n from f6 to "u" 0 f RP to sea rch Dim. List Preset increment (I) to Zero Preset Crc to Zero Preset Crpt to Zero Preset Crct to Zero Zeroize Temp 0 Zeroize Temp I Zeroize index Counter (Cl) Zeroize index Counter (C2) 1300 IA SS 1 2 TP TP RA FC FG32 SS3 3 4 5 QT [30000J A TP A WT3 TJ FCl12 SSll t... u TT .h.l l ' \.I~v 1.N V 7 TJ FC61 SQ14 10 MJ 0 SO 11 12 LQ A QT FCl14 17 A 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 AT FCl13 RP 30031 TJ SS16 MJ 12 MJ 13 MJ 20 MJ 21 MJ 30 MJ 31 MJ 32 MJ 33 MJ 50 MJ 52 MJ 60 MJ 61 MJ 70 MJ 71 MJ 100 MJ 101 A SS47 SS16 FN2 NF2 FP PO o ~rA~ GTIO Q FC2 rT~ Check Symbol from Sorted List Zeroize condition Indicator Mask for "v" to "Q" Adv. add. in Sorted Li st - Add. next symbol Symbol from Sorted List- "v" of "A" Symbol- "v" of WI'3 50000> Symbol? (Is this operation Symbol?) 61000> Symbol? (Is this Library Symbol?) 75000> Symbol? (Is this Non-sub Var. or Const. Sym?) Subscripted Variable Symbol (77___ 176 ___ , or 75 ___ ) Symbo 1- "u" of Q Mask rightmost 4 octal digits to "u" of A 33 34 35 36 37 40 41 42 43 44 45 46 47 MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ CA 120 3077 3177 4000 4100 5000 5100 6000 6100 7100 S550 FD7 NO FN NF SS 5S FP2 MO FD DO W W2 EE IQ14 IQ16 IP IP2 IPll IP13 IP22 IP24 IQ I Form I MJ O[symbolJ I 00000 I Search List for Operation Symbol Jump according to symbol Floating Point Absolute Value Fixed Point Absolute Value Floating Point Plus Fixed Point Plus Floating Point Subtract Fixed Point Subtract Floating Point Unary Minus Fixed Point Unary Minus = By Floating Point Multiply Fixed Point Multiply Floating Point Divide Fixed Point Divide Gen era 1 "POWER" I POW I > 63 or I Non-integral POWI < 63 (superscript cases only) Storage Operater (space-period) Integral Power ( 4 to 63 ) Integral Power (-4 to -63) Integral Power (3) Integral Power (-3) Integral Power (2) Integral Power (-2) Power O~) Power (-%) Integral Power (-1) 1301 ® G) 0 IA ER TP RA7 A 1 TJ LV7 ER6 2 3 4 5 6 7 RJ TP RJ MJ RS AT WA TO UP2 0 RA2 FCIIO WAI UP3 UP BQ6 IA2 RA 10 11 RS RA3 AT FCIIO lA3 RAI 12 13 RS RAIO AT FelIO IA7 RA2 14 TP FCI07 RA3 15 TP 16 IAII RAIO MJ 0 BB CA ER17 End Redundancy Phase Initial Relative constant Running Address to "A" Number Lines in obj ect program body ~ 1001a? No; Type sentence Number Codeword to Alarm Print Alarm; SENTENCE ____ TOO LONG. Rewind Tapes and Stop #Entries "Q" List to "u" and ltv" of "A" jn for "Q" List Search to Generation Input #Entries "A" List to "u" and "v" of "A" jn for "A" List Search to Generation Input #Redundancy Temps to "u" and "v" of "A" jn for Redundant Partial Result Search to Gen. Inp. Initial Relative Running Address to Gen. Input Initial Address in Expanded List +2 to Generation Input 1302 1 IA SO TP A RJ ES 2 3 4 TV A TV A TP RCI o 5 TP WT3 6 7 TJ RJ FC53 FS 10 TP RJ DS TO TO A [30000 11 SP WI RJ CW 16 TV S04 17 TO A TO S013 [30000 FCI CTll S04 Advance "D" to available dummy inst. address Address of dummy inst. to "v" of Temp 4 WT4 Address for dummy inst. to "v" of NI S04 [30000 ] Dummy "sub" instruction to Dummy List (D) 7____ type symbol to ;;A;; A Symbol 77___ ? (i.e. 77000> A) 5T Yes. store symbol in Ope File 1. FSI 77___ type symbol to "A" A D51 Search Dimension List for symbol (Address of next word in "u" of A) Address of modulus to "u" of next inst. 5013 WT Modulus to "u" of Temp 0 Modul u s to "v" 0 f AR 71 Store modulus in constant pool (callword CWI in "un of A) Address of Dummy inst. in Dummy List (D) SOl7 to "v" of NI [30000] Gallword of Modulus to "u" of Dummy instruction S021 Address of # S.S. to "u" of NI CTIl # of subscripts to index counter ~ 1 in "v" to "A" A # Subscripts = one? SQ Address of dummy instruction to "v" of S025 ES12 WT3 12 13 14 15 20 21 Subscript Operator (77___ callword) 7____ symbol to "v" of working Temp #1 \\1Tl J J 23 24 TV TP EJ TV 25 26 27 30 TV GTll SP GTll AT GTll RS RA [30000J 17 Q Q 31 32 RJ BR TO A 33 TV 34 35 36 37 TO RG31 SOl3 GTII ES BR2 S040 S042 S046 FCI E512 5040 40 TP 22 NI RS RJ TV A # Subscripts to "v" of dummy instruction #Subscripts to "u" of "A" #Subscripts to "u" and "v" of Q Decrease add. in Operand List (~) by #S .S. in "u" and "v" Ha s f3 decrea sed beyond lower 1 imi t. Address of first s.s. to "u" of TP Preset switch for multiplier in "v" Preset address of multiplier Decrease index counter by 1 in "v" Advance D to next address in Dummy List Address for subscript in Dummy List to "v" 41 42 43 0 f NI [30000] [30000 ] Subscript from Operand List to Dummy List in "v" Advance address to next s.s. in Operand RA S040 FC2 List (30000] All .suhscript.st.ransf~erred t.o Dummy Li s t? IJC'l'll MJ 0 Yes SP 1303 44 45 46 47 50 @ 51 52 53 54 55 56 57 60 61 TV RC32 5046 TV [30000 ] TP WTl RJ CW Preset switch for multiplier in "u" Advance "u" of NI by one (Add. of Mul t.) Multiplier to "v" of working Temp. Multiplier to "v" of A CWI Store multiplier in constant pool (callword in "u" of A) TV 5040 S052 Address of subscript in Dummy List to "v" of NI TIl A [30000J Multiplier to Dummy List with Corres. Subscript MJ 0 S036 S055 Address of Multiplier in Dim. List to 1U S046 "u" of NI Multiplier to "un of Working Temp. TO [30000J WI' SP WI' Multiplier to "v" of Al 25 LT 0 A Multiplier to "v" of Ar TV RC31 5042 Preset switch for multiplier in "v" MJ 0 5050 CA 5062 RA 5042 FC2 WI'1 A 1304 IA A V 1 SP TO SP SAil V~ A 17 SP2 10 TP [30000 ] TV A TV A RJ ES SJ SP22 TP FC35 S5 FC2 CTll CT12 ESI 5P7 Q 11 TO A SP20 12 13 14 15 16 TO RA SP2 CTll SP20 MJ 0 SP21 SP16 FC2 SQ20 FC2 2 3 4 5 6 7 IJ RA SP20 A o FC2 17 RA SP21 20 21 QT EJ [30000] A [30000] SP13 22 23 24 25 26 27 TP CTl2 EJ FC23 EJ FC57 MJ 0 RA RA7 TP FC6 SP26 SP31 SP34 FC24 CTIO 30 31 32 MJ 0 RA RA7 TP FCIO SP36 FC25 CTIO A Subscript Operator (continued) Address of Dummy Inst. to "u" of A Address of Dummy Inst. to "u" of NI Dummy inst to A #Subscripts to index counter Cl #Subscripts to index counter C2 Search Expanded List for Redundancy Is dummy inst. redundant? yes to SP7 Mask for HUH and "Vii to "Qn Add. of prev. entry in Exp. List to "u" of A Add. of prev. entry in Expanded List to "u" 0 f QT Add. of Dummy inst. to "u" of EJ All subscripts compared for redundancy? Yes Adv. "u" of QT- Add. of next s.s. in Exp. Li st Adv. "u" of EJ- Add. of next s.s. in Dummy List Subscript from Expanded List-- A S.S. in Dummy List = S.S. in Expanded List? #Subscripts - A #Subscripts = 2? #Subscripts = 3? Assume four subscripts Adv. Nrp by 3 Set Cond. Ind.- 2(2 subs w/s.s. not in A) Adv. Nrp by 4 Set Cond. Ind.-- 4(3subs. w/s.s. not in A) 33 34 35 MJ 0 RA RA7 TP FC70 SP36 FC26 CTIO Adv. Nrp by 5 Set cond. Ind.- 6(4 subs. w/s.s. not in A) 36 SP RA5 17 37 40 TU A MJ CA 0 SP41 SR SQ12 Add. of last entry in Exp. List -- "u" of A Address of Last Subscript - "u" of TV 1305 @ 0 1 2 3 4 5 6 7 10 0 11 12 @ 13 14 15 16 17 @ 20 21 22 23 24 25 26 27 30 Subscript Operator (continued) Decrease address in Operand List ({3) by 1 in "u" and "v" SQ3' Address of last operand in Opere List-1U RA "u" of TV TV S04 Address of Dummy instruction -- "v" of NI SQ3 TV [30000] [30000 ] Subscri pt -- "v" of dummy instruction SP S04 Address of Dummy inst. -- "u" of A 17 SQ6 Address of Dummy inst. -- "u" of NI TO A TP [30000 ] A Dummy instruction - A RJ ES ESI Search Expanded List for redundancy Is dummy inst. = prev. entry in Expanded SJ SQ26 5Q20 List? W SQ6 SR Address of dummy inst. -- "u" of TV RJ SR25 SR P.R. Value - Opere List and Exp. List; Cond. Ind. -- Exp. Li st TP Fe3 CT7 Set increment (I) - one in "u" and "v" TV RA 5Q15 Available address in Operand List (S)"v" of NI [30000 ] Operand Symbol -- Operand Li st TP WT3 RJ BR BR4 AdVance address in Operand List (13) by 1 in "u" and "v" Return to pick up next symbol in Sorted MJ 0 SS List TP RA4 HA5 Set D '= y (delete Dummy List from Expanded Li st) RJ RS RSI Redundant P.R.- Operand List and Red. P.R. List Was P.R. previously entered in Redundant SJ SQ23 SQ24 P.R. List? TP WTl No, Redundant Partial Result to A A LAI Redundant P:.R. in "A" List? (If yes, AdRJ LA vance Nrp by one) MJ 0 5Q14 FC4 Advance Nrp by 2 RA RA7 TP FC CTIO Set Cond. Ind -- zero (1 subs. w/s.s. not in A) MJ 0 SQll CA SQ3l IA RJ SQ BR BRI 1306 o IA ST 1 2 TJ TP QT FG60 FG73 WT3 3 4 LQ TP CTll FC74 5 QT nT3 6 AT 7 10 SA TV 11 TO 12 13 14 15 16 17 20 TP EJ TV TV SP AT RS 21 22 23 RJ TO RS 24 SP 25 26 TO IJ 27 30 31 MJ RJ TV 32 33 TP RA 34 35 TV TO 36 RA 37 40 MJ RJ 5T45 Q CTll 36 Q :suDscript Operator (76 ___ or 75--_ CW) Symbol 76___ ? (i.e. 76000> A) Mask for 3rd octal digit of "v"- Q #s. s. - 3rd octal digi t of "v" of Counter Cl #s. s. - "v" of index counter Cl Mask for rightmost 2 octal digits of "v" - Q Mask .; '" .L J1 0 '" ..;:). On V P• Tn n11+ ..... 11 P LA. t, i'~r\"" ..... .L V 111 76 ___ callword LVII Add callword of pseudo OPe input region WT2 (63000) CTll 17 Gallword of Modulus Location - "u" of A 504 STll Preset address of Dummy Instruction in Dummy Li st (D) A [30000 ] Callword of Modulus Location - "u" of Dummy Inst. FCI A 1 in "v" - A CTll SQ #s.s. I? yes to SQ S04 ST15 Add of Dummy Inst. - "v" of NI [30000 ] #s.s.- ltv" of Dummy Inst. GTll CTll #s.s.- "u" of A 17 CTll #s. s. - "u" and "v" of Q Q RA Decrease address in Operand List ($) by Q #s.s. in "u" and "v" BR BR2 Ha s {3 dec rea sed beyond Lower Limi t A ST32 Address of first s.s. CTll Reduce "v" 0 f index counter (#s. s.) by FCI one WT2 17 Callword of Location of SUbs. Variable to "u" of A A WI' Callword to working temp. CTll ST30 All sUbscripts but one transferred to Dummy List 0 ST40 Yes ES ES12 Advance D- next address in Dummy List A ST32 Address for subscript in Dummy List"v" of NI [30000] [30000] Subscript to Dummy List in "v" WI' FC2 Adv. "u" of working temp by one - Add. of next mult. 51'32 5T35 WI' [30000] Callword of Mul tiplier Location to Dummy Li st 51'32 FC2 Adv. "u" address of TP- next s.s. in Operand List = I 0 ST~6 ES ES12 Advance D- next address in Dummy List 1307 TV A ST43 43 44 45 Address for s.s. in Dummy List - "v" of TP TO ST32 ST43 Address of s.s. in Opere List- "u" of TP TP [30000 ] [30000 ] Last s.s.- Dummy List (no mul tiplier) MJ 0 SP TP FC74 Mask for rightmost 2 octal digi ts of "v" 0 46 QT A A 47 AT LVIO 50 51 SA FCl TV S04 41 42 @ 52 53 TU MJ CA A 0 ST54 -0 Location index in Dummy region from 75100 Cw- Av Add callword for function input region WT2 (62000) Ca11word of Modulus' Location - "un of A 17 5T52 Preset Address of dummy" sub" inst. in Dummy List (D) I: 30000 J Callword of Modulus - "un of dummy inst. SQ 1308 o IA TP W FC64 WT3 @ 1 2 MJ TP 0 FC67 W3 WT3 G 3 TP FC3 CT3 4 S TP TP FC FC3 CT4 CTS 6 7 10 11 12 13 14 IS 16 TP TP TO TV TV TV TP TP FC RC4 FC Wl'3 ES A A WTS FC30 CT6 WT5 WTS WT5 ES12 WT4 W15 [30000J 17 20 21 22 23 24 QT TP TV TV IJ MJ CA WT3 CTII RC15 RC13 CT12 0 W25 CTII CT12 LL6 L\124 LK LM RJ Q Library Operator "Gen. Pow." callword (S0012) symbol Temp. "v" of "Var. Exp." CW (S0022) - "v" of symbol temp. Set Trp - one (count transfer of control) Set Trc - Zero Set Trpt - one (count 10 line for transfer of cont.) Set Trct - Zero Dummy inst - working temp. Zero - "u" of dummy inst. Lib CW - "v" of dummy inst. Adv. "0" to available dummy inst address Add of dummy inst. - "v" working temp. Add. of dummy inst. - "v" of TP Dummy inst. w/callword- Dummy List Mask for rightmost octal digit of "v"- Q #Arguments- index counter Cl #Arguments- index counter C2 Set switch N to N2 Set switch S to S1 All arguments transferred- Dummy List 1309 0 @ 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 LA LK RJ BR TIl SP TP TP TJ SP W EJ TP QT EJ RA RA MJ RA RA MJ CA BRI LK2 RA [30000 ] 17 WT5 A FC54 A LL3 Wf5 17 RA6 WI'5 WT LL WT FCI03 Q A WT5 Fel0l LK17 FC3 CT3 FC3 CT5 0 LL22 FCl15 wr5 CT3 FC4 0 LK15 LK22 Library Operator (continued) Decrease Add. in Opere List by 1 in "u" and "v" Arg. - "u" of A Arg. - "un of temp. 5 74777 - "u" of A Is argo subscripted? No to LK6 P.R. counter - "u" of A Operand - "u" of working temp. Operand = P.R. counter? (oper in Q) No Operand 61 ___ Type? No-adv. Trp by one in "u" and "v" Adv. Trpt by one in "u" and "v" Adv. indicator by 338 in OPe code Adv. Trp by two in "u" and "v" 1310 o IA RA LL WTS Library Operator FC5 Set indicator to 1 in op. code (oper in Q) Set swi tch 1 TV RC12 I.M24 2 MJ 0 LK14 3 RJ BR BRI 4 TO RA LL5 5 TV RJ TP ® to @ Dec. add. in Opere List by 1 in "u" and " v" 24 TP Subscript - !!v!! of Arg. word [30000 J w'T5 [30000 ] Switch LL6 FCS6 A 76777 - "u" of A WTS Opere - "un of working temp. WT Operand 77___ type? WT LL16 CT3 Adv. Trp by 4 in "un and "v" FC2S CTS FC3 Adv. Trpt by 1 in "u" and "v" Adv. ind. by 2 in OPe code C75___ or 76 __ _ FC6 WTS type arg.) 0 LL22 CT3 FC24 Adv. Trp by 3 FC3 CT4 Adv. Trc by 1 CT6 FC3 Adv. Trct by 1 Adv. indicator by 4 in Ope code (77__ _ FCI0 WTS type arg.) ES ES12 Adv. "D" to avail. Dummy inst. Add. RAS LL24 Add. for Arg. word in Dummy List- "v" of NI WTS [30000 ] Arg. wo rd - Dummy Li st 2S MJ CA LL26 6 7 10 11 12 TO TJ RA 13 RA 14 RA IS MJ 16 17 RA 20 21 RA RA RA 22 RJ 23 TV ® 0 LJ23 1311 G ® 0 1 2 3 4 5 IA SP I1d SJ 1U WT4 A [30000 ] ES LM17 A 17 LM2 A ESI LM5 LM12 6 W U12 LM15 7 10 11 12 13 14 15 16 TP IJ MJ QT FC35 Q CTll LM12 0 LM25 [30000 ] WT2 FC2 Ut12 FC2 LM15 [30000 ] A IJnO WT2 17 TP RA5 20 21 22 23 24 25 RA7 CT RA CTI RA CT2 MJ 0 TP 11112 26 MJ 0 CA LM27 1U TP RJ RA RA QT EJ RA RA Libra ry Operator Add. of Dummy inst. to "u" of A Add. of Dummy Inst. to "un of NI Dummy inst. to A Search Exp. List for Redundancy Is dummy inst. redundant? yes to Il15 Preset address in Expanded List of first argument Preset address of dummy library instruction Ma sk for "u" and "v" to Q All arguments compared for redundancy? Argument from Expanded List to temp. 2 Advance to next argument in Expanded List Advance to next argument in Dummy List Argument from Dummy List to A Arg. in Dummy List Arg. in Expanded List D (add Dummy Li st to Expanded RA4 Sety List) CT3 Adv. Nrp by Trp Adv. Crc by Trc CT4 CT5 Adv. Crpt by Trpt Adv. Crct by Trct CT6 [30000 J Swi tch ® A Address of redundant partial result to "u" of A LN21 = = 1312 (s?) 0 @ ~<:( rJl ....... ~ o,...j $.4 o~ ~ a.. o,...j ~ $.4 (J) rJl 0 I 2 3 4 5 6 IA LN RA7 CT7 MJ 0 LN5 RJ LQ LQ7 MJ 0 LN5 RJ LA LA. 6 TP FC3 CT7 RJ PPIO PP RA 7 10 II 12 13 14 15 16 17 WT3 FS MJ 0 TV WT5 TP RA6 EJ WII MJ 0 TV RCI4 RA WT5 A FSI LN23 WII A LNI6 LL7 IM24 FC5 20 21 MJ TP 0 RA4 LL7 RA5 22 23 24 25 MJ SP RJ MJ CA 0 WT3 LS 0 LN26 RR50 17 LSI SS TP RJ c.> c.> ..s::...o t.,)::5 rJl Library Operator Adv. Nrp by Increment (T) ' .... 1 Enter P.R. in "Q" List Enter P.R. in "A" List Set increment (1) - one in "u" and "v" Enter current P.R. in Oper. List and Exp. List Lib. caIIword - A Enter Lib. caIIword in Op. File I Subscript- "v" of working temp. P.R. counter- A P.R. counter = subscript? ® Set to@ Set indicator - I in op. code (s.s. in A) Set D =y (inst. Red. do not add Dummy List to Exp. List) Library Routine Callword to List 1 1313 ,~ 42 43 0 1 2 3 4 S 6 7 10 11 12 13 14 IS 16 17 20 21 22 23 24 25 26 27 30 IA IP TP RC11 MJ 0 TP RC12 RJ IRIS QJ IPS RA RA7 MJ 0 RA RA7 MJ 0 TP RC7 MJ 0 TP RC10 RJ IRIS QJ IP16 RA RA7 MJ 0 RA RA7 MJ 0 TP RC13 MJ 0 TP RC14 RJ IRIS QJ IP27 RA RA7 RJ IP41 WI'S IP3 WTS IR IP7 FC26 IR16 FC4 IS33 WTS IP14 WTS IR IP20 FC2S IR16 FC3 1533 WTS IP2S WTS IR IP32 FC2S IP3S 31 32 33 MJ RA RJ IR16 FC4 IP3S 34 35 36 37 40 41 IS21 MJ 0 TP FC66 A RJ FS FSI TP LS2S A RJ LS LSI [30000 ] MJ 0 CA IP42 @ 48 4 ® @ 0 RA7 IP41 Power Operators (3) . (-3) • (2). (-2). Entrance-POW (3) (~) . (- ~) Entrance-POW (-3) Check for redundancy Is operand subscripted? Advance Nrp by S in "u" and "v" Advance Nrp by 2 in "u" and "v" Entrance-POW (2) Entrance-POW (-2) Check for redundancy Is operand subscripted? Advance Nrp by 4 in "u" and "v" Advance Nrp by one in "u" and "v" Entrance-POW (~) Entrance-POW G~) Check for redundancy Is operand subscripted? Advance Nrp by 4 in "u" and "v" Square root ca11word to Ope File 1 and List 1 Advance Nrp by 2 Square root ca11word to Ope File 1 and List 1 Square root ca11word to "A" Store square root cal1word in Ope File 1 Square root callword to "A" Store square root callword in Li st 1 1314 o 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 IA IQ TF RCli RJ IR15 QJ IQ3 RA TO RA7 WT5 WT5 IR IS21 FC4 WT TP TJ TP TV TP F"C56 A WT WI'5 RA6 IR27 CTI0 WTl A EJ WIl IS 0 IR33 WT5 IQ17 MJ TP MJ TP TV RJ RJ TV TP QJ RA MJ RA MJ 1lJ TP EJ MJ CA FC12 RC15 0 Power Operators (-1),(4t063),(-4- to -63) Entrance-POW (-1) inst. to temp. 5 Check for redundancy Is operand subscripted? Advance Nrp by 3 in "u" and "v" Operand to working temp. 76777 - "u" of A Is operand 77___ type? 10- Ope code of condo ind. P.R. ocunter - A Operand = P.R. counter? (subscript in "A"?) No Entrance-POW (4 to 63) Entrance-POW (-4 to -63) Set swi tch CD to @ Check for redundancy Advance dummy tally D by one Available address in Exp. List - "v" of HA5 TP [30000] 13 ___ symbol in "v" - Exp. List WT3 Is operand subscripted? IQ27 IQ25 Advance Nrp by 6 in "un and "v" RA7 FC27 0 IR16 Advance Nrp by 3 in "un and "v" FC24 RA7 0 IS33 Address of 13 ___ symbol (POW word) in A IQ32 Exp. List- "u" of TP 13 ___ symbol (POW word) from Exp. List-A [30000J A Is 13 ___ symbol (POWword) also redundant? wr3 RR50 0 IRII IQ35 RC16 Re17 IR15 ES WT5 IRIO IRI ES12 IQ23 1315 @ >1 s::.!:I::: 4 S8 0 co 0 "OQ) s::..c: :::s 0 "0 Q) 0::: @ @ "0 Q) ~ .,...a. s... "00 s:: CI.I co.Q s... :::s Q) CI.I a. 0 @ IR RC16 RJ VCSO TP Q QJ IR4 Power Operators (continued) IRIO Set swi tch to @ VCS Check variables and set switch Q[) s.s. "yes or no" indicator- working temp. WT2 IR36 Is there a subscript? IRS Address of s.s.- "v" of NI TIl RA TV [30000 ] WTS s.s. - "v" of dummy inst. TP WI'S Dummy instruction to "A" A RJ ES ESI Search Exp. List for instruction [30000 ] Is instruction redundant? (switch T) SJ IRll Advance dummy tally by one ES12 RJ ES IR13 TV HAS Available address in Expanded List - "v" of TP [30000 ] Instruction to Expanded List TP WTS TP WT2 s.s. "yes or no" indicator- Q Q [30000 ] Exit MJ 0 TU WTS WI' "u" of dummy in st. - work ing temp. TP FC56 A 76777 - "u" of A Is operand 77___ type TJ WT IR27 75 ___ TP FC12 CTIO Set condo ind.- 10 (operand 74 ___ type) WTl Subscript to working temp. TV WI'S A TP RA6 P.R. counter- A EJ WTl IS P.R. counter = subscript? (is subscript in A) FC3 Advance Nrp by one in "u" and "v" RA RA7 MJ 0 IR34 TP FCIO CTIO Set condo indo - 4 (operand 77___ type) FC3 RA CT Advance Crc (count of reI. const.) by one in "u" and "v" TV WfS WTl Subscript to "v" of working temp. TP RA6 A P.R. counter- A EJ WTl Subscri pt -= P. R. counter (is subscript IS in A) RA RA7 CT7 Advance Nrp by increment (I) MJ 0 IS2 WT5 Zero- "v" of dummy inst. TV FC MJ 0 IR6 CA IR40 IA 0 1 2 3 S 6 7 10 11 12 13 14 IS 16 17 20 21 22 23 24 2S 26 27 30 31 32 33 34 3S 36 37 CD TV 1316 o lA IS RA CTIO FC5 1 RJ TP RJ TV LA LA6 FC3 PPIO RA4 CT7 PP 156 2 3 4 r:: 1'\ J 6 7 10 TP RJ TV 17 TO A 20 21 22 23 24 25 26 27 30 31 32 33 34 35 MJ 0 WT5 RA6 WT FC EK25 RA7 36 37 40 41 QT 12 13 14 15 16 ~a... lG I~ t$..!.-I@ ~ $..! 66 .~ ..0 0 ;:j en I I I 0-..0 S::.-Ia ® .-I tn QS CTIO FC73 WT3 1S13 0 RA7 FC65 CW lS6 11 42 43 44 45 46 47 50 51 Power Operatars (continued) Adv. OPe code of condo indo by one (s.s. in A) Enter P.R. value in "A" List Set increment (1)-- one New P. R. value -- Exp. List and Oper. Li st Address of P.R. value in Exp. List - "v" of QT TP QT ZJ MJ RA TO SP EJ TP RJ RA MJ TP RJ 0 FC5 LQ " [30000 ] Q A lS12 IS44 FC3 A CWI lS17 [30000 ] lS44 WT 17 lS30 CTIO EK6 CT7 lS2 CTIO 1ndicator- OPe code of P.R. word Ma sk for 3rd octal digi t of "v" -- Q 3rd 0 c tal dig i t -- A 3rd octal digit::: 1 (is this neg. power) Advance Nrp by one in "un and "v" Floating point one- A Store floating pt. "one" in constant pool Address of P. R. word -- "v" of NI Callword of fixed const.-- "un of P.R. word Operand-- working temp. P.R. counter -- "u" of A Operand::: P.R. counter? (operand in "Q") No, set Ope code of cond. ind.- Zero To 61 ___ routine (nu" ent.) Advance Nrp by increment (1) Set OPe code of cond. ind.-- one Enter P.R. value in Q list MJ 0 LQ7 152 RA RA7 FC FCI03 CT7 CTIO Q Advance Nrp by increment (1) Set OPe code of cond. ind.-- zero Mask for first two octal digits of "un WT5 FCIOI 0 CTIO A 1541 Fir s t two 0 c tal dig its Operand::: 61 ___type? RA7 0 WT3 FCl17 FC120 FC4 lS2 A TP TP EJ MJ RA RA MJ TP EJ EJ MJ TP 0 CTIO EJ FcTo- - Q 0 f "u It 0 f D- 152 FCl15 1550 lS50 SS A 1554 Adv. condo indo by 338 in OPe code. (oper in "u" 61 ___ ) Adv. Nrp by 2 in "un and "v" Operation symbol to "A" Symbol ::: 16000 (POW ~)? Symbol::: 16100 (POW -~)? Condition indicator to A Co~n(r:- -Tri-d=4'(--- 1317 A @ 52 53 54 55 56 RA CTI FC4 MJ 0 S5 RA RA CTI CT2 FC3 FC3 S5 MJ 0 CA 1557 No - advance Crpt by 2 in "u" and "v" Advance Crpt by 1 in "u" and "v" Advance Crct by 1 in "u" and "v" 1318 t:;\ Q) "0 V 'r-i :;;.. 'r-i "0 t::P ;:: -r-i +J co 0 I"""'f C;-j @ +J u co ~ +J ..Q ~ fI) @ t::P ;:: co 0 I"""'f C;-j "0 ~ 0 a: +J 0.. -r-i ~ u en ..Q ~ fI) +J 0.. -r-i $...l u fI) ..Q ~ fI)"O ~ o 0 TP 1 2 3 4 5 6 RJ QJ RJ MJ 7 10 11 12 13 14 15 16 17 20 -r-i +J s::: ( 1A FD 0 a: RC3 \fi'S VC50 FD3 FD26 0 RJ FD34 MJ 0 TP' RC2 RJ VC50 QJ FD12 RJ FD26 TV RCll TP FCIO VC FD5 FD22 FD14 FD31 FD20 MJ 0 RR43 FD31 FC3 FCIO RJ RA RA l 21 MJ 22 23 24 25 26 27 30 31 32 33 34 35 36 TV RJ TV TP EJ SP MJ RJ TV TP EJ RA MJ CA FD34 RA7 CTIO WTS VC FD16 FD22 PN6l CTIO 0 RR43 RelO PN61 RR22 RR WT5 WTl A RA6 [30000 ] WIl RA6 17 0 FP7 RR42 RR25 WT5 WTl RA6 A [30000 ] WIl RA7 CT7 0 RR44 FD37 Floating Divide and Floating Subtract Operators DU~TtY fl. divide inst.~ working temp. Check variables and set switch ~ Is there a subscript word? Subscript word No subscript word Dummy fl. subtract inst.-- working temp. Check variables and set switch C!D Is there a subscript word? Subscript word Set swi tch @- @ Set cond. ind.- 4 in Ope code (oper. for "v" in Q) No subscript word Advance Nrp by one in "u" and ttv" Set cond. ind.-16 in OPe code (oper. for "v" in Q) Set switch @- @ Jump to redundancy routine "v" of dummy inst.- "v" of working temp. P. R. counter - A P.R. counter -- "u" of A Jump to Redundancy Routine "v" of dummy inst - ltv" of working temp. P.R. counter- A P.R. counter = "v" of dummy inst. Advance Nrp by increment (I) 1319 o G) ~ IA FP TP RC21 1 2 MJ 3 4 WT3 0 RC22 FP3 RJ VS64 RA Wf5 VS WT3 QJ FP6 RR22 WT6 FP26 RR 7 RJ TU 10 EJ WI FP23 11 12 13 TP RA6 TV WT6 5 6 14 15 16 17 TP EJ RA WT3 WI' A WIl WTl FP17 RA7 CT7 CTIO RR44 PN14 TP Fe MJ 1V 20 21 TV 0 Re3 Re5 TP FC6 CTIO 0 FP24 CTIO PN44 22 MJ 23 TP FC5 24 25 26 27 RJ LA LA6 MJ RJ RR44 RA 0 RR42 RA7 30 MJ 0 CA FP31 RR25 CT7 RR44 Floating Plus and Floating Multiply Operators Dummy fl. plus w/zero in "u" and "v"working temp. Dummy fl. mUlt. w/zero in "u" and "v"working temp. Sort operands andlset switch @, Dummy floating [Mu~fiplYJ wi th operands - "An and temp. Is there a subscript word? yes to FP6 Is operation redundant? no to FP7 "u tt 0 f s. s. wo rd - wo rk i n,g temp. Is P.R. counter = "u" of s.s. word (s.s. for "u" in A) P. R. cour.t er - "v" of A "v" of s.s. word- working temp. P.R. counter = "v" of s.s. word (s.s. for "v" in A) Advance Nrp by increment (I) Set cond. ind.-- Zero (neither s.s. in A) Set Set Set "v" swi tch (G) - © switch 0- @ cond. ind.-- 2 in OPe code (s.s. for in A) Set cond. ind. - 1 in OPe code (s.s. for "u" in A) Enter P.R. in "A" list Is operation redundant? no to FP27 Advance Nrp by increment (I) 1320 lA PO o RJ ES ES12 1 2 TV TV A A WI4 3 4 RJ AT 0513 RC23 5 TV A WI 6 7 RJ ES POlO ESI SJ 10 SP RA6 11 EJ WT 17 P016 12 RA RA7 FC4 13 RJ SR25 SR4 14 15 16 TP FC MJ 0 RA RA7 CT7 55 FC3 17 RJ SR25 SR7 20 21 MJ 0 P014 TP RA4 HA5 22 RJ RS Rsl 23 MJ 0 S5 CA P024 P04 OS [30000] P021 Fixed Point Plus Operator Advance "Dt~ to ava i lab1 e dummy in st. address Av ail a b 1 e dummy ins t. add res s - .. v" 0 fAT Address of dummy in st. - ttv" of temp. Sorted operands - "u" and "v" of A Dummy "fixed plus" inst. w/operandsDummy List Operand in "u" of dummy inst.- working temp. Search Expanded List for redundancy " u" i fin st. not red u ndan t - " v" i fin st. is redundant Partial resul t counter - "u" of A Is P.R. counter = "u" of dummy inst. (operand in A?) No. advance #lines in running prog (Nrp) by 2 in "v" P.R. value-- Exp. List and Opere List; cond. ind.- Expanded List Set increment (l) - zero Advance #lines in running prog (Nrp) by 1 in "u" and "v" P.R. value-nAn List,Exp. List and Opere List; cond. ind.-- Exp. List Set D =y (delete Dummy Li st from Expanded Li st) Redundant P.R. value - Expanded Li st and Red. P.R. List 1321 @ 0 IA MO RJ ES ES12 @ 1 2 3 4 TV A TV A RJ OS13 AT RC25 M04 Wf4 OS [30000 J 5 'IU A Wf 6 RJ 7 10 11 SJ ES MOIO SP EJ RA6 WT ESI M021 17 M016 12 RJ SR25 SR4 13 RA RA7 FC3 14 15 16 TP FC3 MJ 0 RA RA7 CT7 SS FC3 17 RJ SR25 SR7 20 21 MJ TP 0 RA4 M014 RA5 22 RJ RS RSI 23 SJ M024 M026 24 25 TP WIl RJ LA A 26 MJ 55 @ @ ® 8 CA 0 M027 LAI Fixed Point Multiply Operator Advance "0" to available dummy inst. address Available dummy inst. address -- "v" of AT Address of dummy inst - "v" of temp. So rt ed 0 perand s - "u" and "v" 0 f A Dummy "fixed mUlt" inst w/operandsDummy List Operand in "u" of dummy inst -- working temp. Search Expanded List for redundancy "u" if not redundant; "v" if redundant Partial resul t counter- "u" of A Is P.R. counter = "u" of dummy inst.? (operand in A) No, P.R. symbol- Exp. List and Opere List; cond. ind.-- Exp. List Advance #lines in running prog. (Nrp) by 1 in "v·· Set increment (1) -- one in "u" and "v" Advance #lines in running prog (Nrp) by 1 in "u" and "v" P.R. value -- "A" list, Exp. List and Opere List; cond. ind-- Exp. List Set 0 = y (delete Dummy List from Expanded Li st) Redundant P.R.- Expanded List and Red. P.R. List Was P.R. previously entered in lledundant P.R. List? Redundant P.R. in "An List (if yes, advance Nrp by 1) 1322 o 1 IA RJ 2 TV TV 3 RJ 4 S TU TP RJ 6 12 TO SP SA AT 13 TU 14 TV IS 16 RJ SJ 17 20 SP EJ 21 RA 22 23 24 EJ 2S 26 MJ TP 27 RJ 30 31 TP MJ CA 7 10 11 TP RJ NO ES Fixed Point Subtract Operator Advance ltD" to available dummy inst. address A N012 Dummy inst. address - ltv" of AT A WT4 Dummy inst. address - "v" of working temp BR BRI Decrease address in Opere List Q3) by 1 in "un and ltv" R..A\ N05 Address of first operand - "u" of NI [300001 WTS First operand ~ "v" of working temp. BR BRI Decrease add. in Opere List (p) by 1 in "u tt and "v" RA NOlO Address of second operand - "u" of NI [30000J 17 Second operand - '·u" of A Operand - "uft and "v" of A WTS 0 RC24 [30000 ] Dummy "fixed minus" inst. w/operandsDummy List A WT Operand in "u" of dummy inst. - working temp. A WTl Operand in ltv" of dummy inst. - working temp. ES ESI Search Expanded List for redundancy N017 P02l "u" if inst. not redundant - "v" if inst. redundant RA6 17 Partial result counter - ·'u" of A WI' P017 Is P.R. counter = "u" of dummy inst. (operand in A) Advance #lines in running prog (Nrp) by FC4 RA7 2 in "u" and "v" RA6 A Partial result counter- "v" of A WTl N026 Operand for "v lt in A SR25 SR4 P.R. value - Exp. List and Opere List; cond. ind- Exp. List 0 N030 FC6 CTIO Set condition indicator- two (operand for "v" in A) SR25 SRIO P.R. value - "A" list. Exp. List and Opere List; cond. ind.- Exp. List Set increment (I)~ Zero FC CT7 0 SS N032 ES12 1323 @ 03 ES RJ I 2 TV TV 3 RJ A A BR 4 S TO TP [30000J 6 RJ BR 7 10 RA [30000] 12 TIJ SP SA AT 13 TO A 14 IS RJ SJ ES 0016 16 17 SP EJ RA6 WT 20 RA RA7 21 RJ SR25 22 23 24 TP MJ RA Fe 0RA7 2S RJ SR2S 26 MJ 0 0027 II ® IA o CA RA WTS RC26 Divide Operator Advance "0" to available dummy inst. address Dummy inst. address- ttv tt of AT 0012 Dummy inst. address- ttv" of working temp. WT4 BRI Decrease add. in Opere List (8) by I in 'tu" and ttv" DOS Address of first operand - "u" of NI WTS First operand - "v" of dummy inst. (divisor) BRI Decrease add. in Opere List ($) by I in "u" and ttv" 0010 Address of second operand -- "u" of NI 17 Second operand -- "u" of A (di viden-d) Operand - "ut' and ttv" of A o [30000 ] Dummy "fixed divide" inst. w/operands-Dummy List WI' Operand in "un of dummy inst - working temp. ESI Search Expanded List for redundancy M021 "u" if inst. not redundant - "v" if inst. redundant 17 Partial result counter- "u" of A 0024 Is P.R. counter = "u" of dummy inst. (operand in A?) FC4 Advance #lines in running prog (Nrp) by 2 in "u" and ttv" SR4 P.R. value -- Exp. List and Opere List; condo ind- Exp. List Set increment (1)-- Zero CT7 5S FC3 Advance #lines in running prog (Nrp) by I in "un and "v" SR7 P.R. value- "A" list. Exp. List and Oper List; condo ind.- Exp. List 0022 ESl2 1324 o 1 2 3 4 5 6 IA FN WTS FN3 TP RC6 WT5 RJ VC50 VC5 QJ FN5 FN60 FN6 1U RA TV [30000 I WT5 TP Re5 MJ 10 RJ 11 SJ 12 13 RJ TV 14 15 16 17 TP TV TP EJ 20 TP 21 22 23 24 25 26 RA MJ 27 SJ 30 31 TP RJ 32 SN TP RJ MJ RJ 33 SA 34 35 SS SA 36 37 LT TV 40 41 TP TO 42 RA 43 44 TP QT Floating Point Unary Minus and Absolute Value Dummy floating Unary minus-- temp 5 0 Dummy floating absolute value-- temp 5 Check variable and set switch ~ Is there a subscript? no, take 'v" Yes Subscri pt - "v" of dummy instruction Dummy instruction to "A" ESI Search Exp. List for instruction ES Is instruction redundant? yes to FN26 FN12 FN26 Advance dummy tally by one. ESl2 ES Available address in Exp. List- "v" of FN14 HA5 TP (30000 ] Inst. at D-- Expanded List WT5 s • s. -- "v" 0 f wo rk in g temp. WI5 WTl RA6 A P.R. counter-- A WTl FN23 Is P.R. counter = subscript? (s.s. for "u" in "A"?) Fe Set cond. ind.-- Zero (neither s.s. in CTlO "A") Advance Nrp by increment (I) RA7 CT7 FNl02 0 Set condo ind.- one (s.s. for "u" in A) FC5 CTIO LA Enter P.R. value in "A" List LA6 0 FNl02 RS RSI Redundant P.R. value-- Opere List and Red. P.R. List Was redundant P.R. in Red. P.R. List? FN30 SS WIl A Redundant P.R. -- A I s redundant P. R. in "Qt. Li st (yes -- NI; LQ LQl7 no -- SS) 17 Q -j n+r -- "u" of A +r- "u" of A RA2 o (r-l)- "u" of A o FC2 LQ2l 25 IQ+r-l-- "v" of AL (address of P.R. in "Q" List) 0 A IQ+r-l- "v" of AR Address of redundant P.R. in "Q" List-A FN40 "v" of NI [30000 ] Delete redundant P.R. from "Q" List FC FN43 Add. of redundant P.R. in Exp. List-RS2 "u" of TP FN43 Adv. to address after redundant P.R. in FC2 Exp. List [30000 J Q Mask for OPe code and "v"- Q Ope code and "v" of word following Red. FC37 WT2 P.R.- working temp. 1325 45 TP WT2 A 46 47 TP RC2 TV WI1 WT2 WT2 50 EJ WT2 FN52 51 52 MJ 0 1U Q 55 WI 53 54 55 56 57 60 61 62 63 64 65 TP TJ TP TJ FC56 A WI MJ 0 FC FN107 A FNl10 FNl07 66 67 70 71 72 73 74 75 76 77 100 101 102 Q ~ TV TP RJ SJ RJ TV TP RA TP sp' 1U EJ RA RJ MJ RA RJ TV TV 103 104 105 TP 106 107 110 111 112 MJ 113 MJ TV RJ RS 1U RA RS CA FC54 wr Ope code and "v" of word following red. P.R.- A Dummy FS- working temp. Redundant P. R. - "v" of dummy FS in working temp. Is inst. following red. P.R. in Exp. List = FS with red. PsR. in "v"? "u" 0 f i nst. fo llowing red. P. R. - "u" of working temp. 76777- "u" of A "u" of FS inst. 77___ type? no to FN55 73777- "u" of A "u" of FS inst. 75 ___ or 76 ___ type? Zero to "v" of dummy instruction Dummy instruction - A ES Search Exp. List for instruction FN64 Is instruction redundant? yes. take "v" E5 Advance dummy tally by one Available address in Expanded List- "v" RA5 of TP 30000] Instruction - Expanded Li st WI'5 Advance Nrp by one FC3 RA7 CTlO FC13 Set condo ind.-- 12 in OPe code (neither "u" nor "v" subs) RA6 17 P.R. counter- "u" of A "u" of dummy inst.- "u" of working temp. WT5 WI WI' P.R. counter'= "u" of dummy inst.? FN77 Advance Nrp by increment (I) RA7 CT7 To 61 ___ routine "u" ent. EK25 EK6 FNlOl 0 CTIO FC7 Set cond. ind.- 15 in OPe code LQ7 Enter partial result symbol in "Q" List LQ PN RC7 Set swi tch to RA5 WT4 Address of dummy inst. - ttv" of working temp. FC Set increment (1) - Zero CT7 RC20 PN6l Set swi tch to @ P.R. value- Opere List (~) and Exp. List SRII 5R25 (r); cond. ind - Exp. Li st PN 0 FC3 RA7 Reduce Nrp by one FNl12 FN43 FNl12 FC2 [30000] FCIO Change ind for "FS"- operand for "v" not in Q 0 SS FNl14 WI5 WT5 A E5l FN26 ES12 FN66 r ®. ® 1326 CD ~ G o 13 1 2 1 4 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 0 1 2 3 4 5 6 7 IA IP MJ TP NF RC27 0 RC30 RJ ES TV A TV A RJ BR TO RA w~5 NF3 WT5 ES12 NF12 Wf4 BRI NFIO Fixed Point Unary Minus and Absolute Value Operators Dummy fixed pt. unary minus inst. to temp Dummy fixed pt. abs. value inst. to temp Adv. "0" to available dummy inst. address Preset address in Exp. List for dummy inst. Store address for dummy inst. in temp Decrease address in Operand List (~) by 1 Preset address of next operand Obtain next operand from Operand List TP [30000 J Q SP Q 17 [30000 ] Dummy instruction with operands to DumAT WI'5 my List TP Q WIl RJ ES ESI Search Expanded List for redundancy "un if not redundant t "v" if redundant SJ NF16 NF22 FC3 Advance Nrp by 1 RA RA7 TP WTl A Operand to "A" EJ RA6 P.R. counter = operand? (operand in "Aft?) P017 MJ 0 P013 No TP RA4 RA5 Delete Dummy List from Expanded List (set D =y ) RJ RS RSI Was redundant P.R. in redundant P.R. List SJ NE "u" if no. "v" if yes SS CA NF25 IA NE TP WTl EJ RA6 A NE5 RA3 NE3 RP [30000 J 5S EJ XA NE6 TP FC122 CT7 FC3 RA RA7 MJ 0 SS CA NEIO Fixed Point Unary Minus and Absolute Value Operators Redundant partial result to A Redundant P.R. = P.R. counter (current P.R.)? W Search "A" List Is redundant P.R. in etA" List? Set increment (ll to minus one Advance Nrp by one 1327 o 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 IA EE TP RC20 RJ W SP W W TP TJ RJ 1U TV TV TP TJ TP TJ TP 21 RA 22 W 23 24 SPEJ 25 26 27 RJ 30 RJ 31 TV 32 33 TP 34 TV 35 36 TP TP QS RJ MJ CA Storage Operator (space-period) Dummy store inst. to working temp 5 Decrease {3 by 1 in "u tt and ttv" BR BRI EE3 Preset address of operand RA [30000 J 17 Operand to "u" of A A WT5 Operand to "u" of working temp 5 Operand to "u" of working temp A WI FG54 A 74777 to "u" 0 f A EG Operand> 74777? (operand subscripted?) WI BRI Decrea se /3 by 1 in "u" a nd "v" BR EE12 RA Address of 2nd operand - "u" of NI [30000] WT5 Operand - "un of working temp 5 WT5 WTl Operand - "v" of working temp 1 FC52 A 76777 - ttv" of A Operand in "v"> 76777? (i. e. 77___ type) EF26 WTl FC76 A 74777- "v" of A Operand in "v"> 74777? (i.e. 75 ___ type) EF5 WTl FC13 GTlO Set condo ind.- @ in OPe code - ('·u n and ttv" non-subs) FG4 Advance Nrp by 2 in "u" and ttv" RA7 Operand fo r "u" to temp WT5 WI' RA6 17 P.R. counter- "u" of A EF WT P.R. counter = operand? (i.e. opere for "u" in nQ"?) No, to 61 ___ routine ("u" and ttv" ent.) EK EK25 FC36 Mask for OPe code-- Q Q WT6 Condition indicator to OPe code temp 6 eTIO ES ES12 Advance D by 1-- next available add. in Exp. List EE32 A Next available add. in Exp. List- "v" of NI WT5 [30000 J Dummy storage instruction -- Expanded List ES ES12 Advance D by 1- next available add. in Exp. List EE35 A Next available address in Exp. List-ttv" of NI [30000 ] Indicator and s.s. word-- Expanded List WT6 Exit-to end redundancy phase ER 0 EE37 WT5 1328 § @) o 1 2 3 4 5 6 7 IA EF RJ RJ RA RJ LA LA6 EK25 EK14 FC7 LQ7 EE26 MJ RJ W TV CTI0 LQ o BR BRI EF7 RA [30000 J wr6 10 TP FC62 CTIO 11 RA TV FC25 WTl 13 TP RA7 WT6 RA6 14 EJ WTl EF22 15 TU SP EJ WT5 RA6 WI' 17 WT EF2 EK6 EE26 EK6 FC6 12 16 17 20 21 22 23 24 25 26 27 30 RJ EK25 MJ 0 RJ EK25 RA CTIO LA RJ MJ RJ nJ TV 0 BR RA A LA6 BRI 31 32 RA CT TV wr6 35 TP RA6 EJ WTl RA7 36 RA 37 40 41 MJ 0 RA RA7 MJ 0 CA EF42 Decrea se {3 by 1 in "u" and "v" Address of s.s. for "v"- "u" of NI s. s. at {3 - "v" ofjemp 6 Set cond. ind. - Q.JJ in OPe code {"u" non-subs and "v" 75 ___ } Advance Nrp by 4 in "u" and "v" Subscript for "v" operand to temp 1 P.R. value - "v" of A P.R. counter = subscript? (s.s. for "v" in "A"?) "u" operand to temp 0 P.R. value- "u" of A "u" operand = P.R. counter? (oper. for "u" in "Q"?) To 61 ___ routine ("u" ent.) To 61 ___ routine {"u" ent.} Adv. condo indo by 2 in OPe code Store P.R. value in "A" list EE26 EF30 [30000 ] WT6 TP FCII CTI0 33 34 Storage Operator (continued) Store P.R. value in ItA" list To 61 ___ routine ("v" ent.) Adv. cond. indo by 3 (oper. for "u" in Q) Store P.R. value in "Q" List FC3 WIl A EF40 FC25 EF15 FC24 EF22 Decrea se {3 by 1 in "u" and "v" Address of s. s. for "v tl _ "u" of NI s • s • at {3 - "v" 0 f temp 6 Set cond. indo ("uti non-subs and tt v" 77___ ) Advance #rel. const. (Crc) by 1 in "u" and "v" Subscript for "v" operand to temp 1 P.R. value - "v" of A Subscript = P.R. counter? (s.s. for "v" in "A"?) Advance Nrp by 4 in "u" and "v" ® Advance Nrp by 3 in "u" and ltv" 1329 o IA RJ 1 W RA 2 SP TP 3 4 5 6 7 10 11 12 13 14 15 16 17 EG BR RJ (30000 ] A BR 111 TV TV TP TJ TP TJ WTl BRI EG2 17 WT6 BRI EG6 RA [30000 ] WT5 WI'5 WI'l FC52 A WTl EH23 FC76 A TO TP TJ TP WT5 FC56 WT FC EH WT A EG22 CTIO 20 21 RA RA7 MJ 0 22 TP FC6 FC26 EG25 CTIO 23 24 25 26 27 30 RA RA RJ RA7 CT EK25 WT6 RA6 WT FC25 FC3 EK14 WI 17 EG32 ru SP EJ 31 32 MJ 0 EE26 RA CTIO Fe5 33 MJ CA 0 EG34 EF24 Storage Operator (continued) Decrea se /3 by 1 in "u" and "v't Address of s.s. - "u" of NI s.s. - "u" of A s. s. - "u It 0 f temp 6 Decrease /3 by 1 in "un and "v" Add. of opere for "v"- "u" of NI Operand - "v" of temp 5 "v" operand to "v" of working temp 1 76777 - "v" of A Operand for ltv" > 76777? (i. e. 77___type) 74777 - "v" of A "v't operand> 74777? (i. e. 76 ___ type) "u" operand to temp 0 76777 ~ "u lt of A "u" operand > 76777? (i. e. 77___ ty pel Zero to cond. ind. ("u" 75 ___ or 76 ___ and "v lt non -subs.) Adv. Nrp by 5 in "u" and "v" Set cond. Ind. - @ in OPe code (ttu" 77__ _ and ltv" non-subs.) Adv. Nrp by 4 in "u" and "v" Adv. Crc by 1 To 61 ___ routine (ltv" ent.) Subscript for "u" operand to temp 0 P.R. counter - A Subscript = P.R. counter? (s.s. for "u in "A"?) ft Adv. cond. ind by 1 in OPe code (s.s. for flU" in A) 1330 2 3 IA RJ TO TV EH BR RA [30000] TO wr5 FC56 o 1 BRI EfJ2 WT6 4 TP 5 TJ WI 6 TP FCI6 WI' A EHII CTIO i 10 II itA RAi FG121 MJ 0 TP FC20 EHI4 GIIO RA RA RA7 CT 12 13 FC27 FC3 WI 14 TO wr6 15 SP RA6 17 16 EJ WT EG32 17 20 TV TP WT6 RA6 A 21 EJ WTI EF23 22 MJ 0 23 24 25 26 27 30 31 RJ BR EE26 BRI EH25 WT6 WI A W RA TV TO TP TJ TP 33 RA MJ 34 35 36 37 32 [30000] WI'5 FC56 WI' FCI7 WIl EH34 CTIO TP RA7 0 FCI4 FC27 EH36 CTI0 RA RA MJ CA RA7 CT 0 EH40 FC26 FCI Storage Operator (continued) Decrea se (3 by I in "u" and"v" Address of s.s.- "u" of NI s.s. - "v" of temp 6 "un operand to ttu" of temp 0 76777 - "u" of A "un operand> 76777? (i.e. 77___ type) Set cond. indo to 22 ("u" 75 ___ or 76 __ _ and ttv" 75 ___ ) Adv. Nrp by 7 in ;;u;; and ;;v;; ® Set cond. ind.in OPe code~'u" 77__ _ and "v" 75 ___ ) Adv. Nrp by 6 in "u" and "v" Adv. Crc by 1 in nu" and ttv" Subscript for "u" to working temp P.R. counter - "u" of A Subscript .= P.R. counter? (s.s. for ttu" in "A"?) Subscript for ttv" to working temp P.R. counter -- ttv" of A Subscript P.R. counter? (s.s. for "v" in "A"?) = Decrease {3 by 1 in "u ft and "v" Add. of s.s.- nu" of NI Subscript to ttv" of temp 6 "u" operand to working temp 76777 - "u" of A "u" operand> 76777? (i. e. 77___ type) Set cond. indo to 25 ("u" 75 ___ or 76 __ _ and "v" 77___ ) Adv. Nrp by 6 in "u" and "v" Set cond. ind. @ in 0 p. code ("u" and "v" 77___ ) Adv. Nrp by 5 in "u" and "v" Adv. Crc by 1 in "u" and "v" EH14 1331 0 @ 8 8 8 ~ 1 b IA RJ W TP TV TJ RJ 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 TU W TP TJ TP MJ RJ W VC BR BRI RA VC3 FC76 A [30000 ] WIl WIl VC24 BR BRI VC7 RA [30000 ] 17 A WI A WT5 FC54 A VC16 WI FC Q 0 VC46 BR BRI VC20 RA 20 21 22 SP TP TV [30000 ] 17 A WI6 RC6 PN 23 24 25 MJ RJ W 0 BR RA VC45 BRI VC26 26 27 30 31 32 33 34 35 36 TP RJ W SP W W TP TJ TV [30000 ] BR RA [30000 J A A FC54 WT Re WT6 BRI VC31 17 WI WT5 A VC40 PN 37 40 41 MJ 0 BR RA VC45 BRI VC42 42 43 44 SP W TV 45 46 47 50 TP TV TP TU SP RJ W MJ CA Subroutine to Check Variables Decrea se {3 by 1 in "u" and "v" Address of 1st operand - "un of TV 74777 - "v" of A Operand- "v" of working temp 1 st 0 perand > 74777? (i.e. subscripted?) Decrea se {3 by 1 in "uti and "v tt Address of second operand- "u" of NI 2nd operand - "u" of A 2nd 0 perand - "u" of working temp 2nd operand _ "u" of temp 5 74777 - "u" of A 2nd operand> 74777? (i.e. subscripted?) {Q35 0) no subscript word = Decrea se {3 by 1 in "u" and "v" Address of s.s. fo roper. in "u"- "u" of NI s.s. for opere in "u"- "u" of A s. s. - "u It 0 f temp. 6 Set swi tch to @, "u" subs and ttv" non-subs ® Decrea se {3 by 1 in "u" and ttv" Address of s.s. for opere in "v"- "un of NI s. s. _ "v" of temp 6 Decrea se {3 by 1 in "u" and "v" Address of 2nd operand - "u" of NI 2nd operand - "u" of A 2nd operand - "u" of working temp 2nd operand - "u" of temp 5 74777 - "u" of A 2nd operand> 74777? Set swi tch to @' "u" non-subs and "v" subs ® Decrea se {3 by 1 in "u" and "v" Address of s.s. for opere in "u"- "u" of NI [30000 J 17 s.s. for opere in "u tt _ "un of A A WT6 s. s. - "u" of temp 6 ReI PN Set swi tch to "u" non-subs and "v" subs FC36 (Q35 1) subscript word Q WII WT5 Operand - "v" of dummy inst. WT5 A Dummy inst. w/operands - A [30000 ] Exit 0 VeSI ® = 1332 ®, IA VS () RJ SR 1 TU TP TP TO VS2 RA [30000 J Q FC76 A VS31 Q BR BRI RA VS7 [30000 I A VS25 Q 17 Q Q WT5 WT5 WIl FC76 A WIl VS20 FC Q 0 VS64 BR BRI VS22 RA 22 23 TP TV Re 24 25 26 27 30 31 32 MJ 0 TV A LA A AT Q MJ 0 33 34 35 36 37 40 41 42 43 v 2 3 4 5 6 "7 10 TJ RJ W TP TJ 11 LQ 12 13 14 15 16 17 20 21 AT TV TP 44 45 46 47 50 51 52 53 TJ TP MJ RJ [30000] BRI WT6 PN 17 WT5 VS16 BR BRI TO RA VS33 TP TU TP [3Ooo0J BR RA [3Ooo0J TJ Q LQ Q AT Q RJ BR WT6 BRI VS36 A VS50 17 WI5 BRI MJ ReI 0 VS45 17 WT6 PN VS63 TV A WTl LA A 17 wr5 TO LA TV TV AT TP RA WT6 [30000] Q FC76 Decrea se /3 by 1 in "u" and "vet Address of s.s. for opere in "v"- "u" of NI s.s. for opere in "v"- "vet of temp 6 Set to @ "uti non-subs and "v" subscripted ® VS63 WIl RJ RJ Subroutine to Sort Operands for Floating Plus or Multiply Decrea se f3 by 1 in "u" and .t v" Address of 1st operand - "uti of NI First operand- Q 74777 - "v" of A First operand> 74777? (i.e. subscripted) Decrease /3 by 1 in "u" and "v" Address of 2nd operand - "u" of NI Second 0 perand - A First operand> second operand? Fir st 0 perand - "u" of Q Operands - "uti and "v" of temp 5 Second operand - "v" of working temp 74777 - A Second operand> 74777? (i.e. subscripted) (035 = 0> no subscript word A Second operand - "v" of working temp Second 0 perand - "u" 0 f A Operands - "u" and "v" of temp 5 Decrease /3 by 1 in "u" and "v" Address of s.s. for first oper.-+ "u" of NI s. s. - "v" of temp 6 Decrease {3 by 1 in "uti and "v" Address of second operand - "u" of NI Second operand - A First operand> second -operand? First operand - "u" of 0 Operands - "u" and "v" of temp 5 Decrea se /3 by 1 in "u" and "v" Address of second s.s. - "uti of TV First s.s.- "un of temp 6 Second s. s. - "v" of temp 6 Set to "u" and "v" subscri pt ed ® ® Second oper. Second operand Operands- "u" 74777 - "v" of 1333 ltv" of working temp - "u" of A and .t v"oi temp 5 A @ ~ I 7 54 TJ WTI VS56 55 56 57 MJ RJ 0 BR 1U RA VS23 BRI VS60 60 61 62 63 64 SP [30000 ] A RCI TP FC36 MJ 0 CA VS65 1U TV 17 WT6 PN Q [Exi t ] Opere in "un (2nd oper.) > 74777? (i.e. subscripted) Decrea se /3 by 1 in "uti and "v" Address of s.s. for opere in "u" - "u" of NI s.s. for 2nd oper.- nu" of A 5.5. for 2nd ®er. - "u" of temp 6 Set to HI "u" and ltv" subscripted (Q35 = 1) subscript word ® 1334 I I o IA PN MJ 1 1U 0 WT5 2 3 TP FC56 TJ WI 4 TV 5 TP FC52 TJ WTl 6 WT5 Set Condition Indicator for Floating Point Operations [30000 A PN21 WIl A PN12 I I Uj Uj r- r- c: .:;:- ·. .~ ::@ G1 ·~~~2 . I I ~ :;:- Ujt- 159 I I I I t-' Ujl r- r.~ -> ·. Q II~ I I ~t-' r-r- • ~ :0 c~ FC27 PN66 CT10 FC3 RA RA7 0 13 RA CT 14 15 16 17 20 21 MJ RA MJ 0 RA7 0 RA7 0 WT5 22 TP FC52 TJ WIl TP FC20 TP FC17 RA MJ TV 23 24 25 RA CT { 26 27 RA MJ RA7 30 31 { 32 35 I I CTIO MJ 33 34 UJ .Q ~ UJ TP FC16 11 12 0 TP FC14 RA CT RA MJ TV RA7 0 WI5 36 TP FC52 TJ WT1 37 TP FC62 { 40 41 RA MJ r~ TP FC11 RA RA7 0 CT J Swi tch WT ® 76777 - "u" of A Is .t u" of dummy inst. 77___ ? yes; take ttv" No 76777 - "v" of A Is ttv" of dummy inst. 77___ ? yes; take "v" No; set condition indicator to 22 in OPe code Advance Nrp by six in "u" and "v" Set cond. ind.- 25 in OPe code Advance #re1. const (Crc) by 1 in "u" and ttv" [30000 ] Switch ® FC27 advance Nrp by six in "u" and "v" PN66 FC26 @ - advance Nrp by five in "u" and ttv" PN66 WT1 Opere in ttv" of dummy inst.- working temp A 76777 - ttv" of A Is ttv" of dummy inst 77___ ? yes; take ttv" PN30 CTIO Set cond. ind.- 30 in OPe code Advance #re1. const. (Crc) by 1 in "u" FC3 and "v" FC26 Advance Nrp by six in "u" and "v" PN66 CTIO Set cond. ind.- 17 in OPe code FC3 Advance #re1. const. (Crc) by 1 in "un and ttv" Advance Nrp by four in "u" and ttv" FC25 PN66 WT1 @ - opere in "v" of dummy inst. to temp 1 76777 - ttv" of A A Is "v" of dummy inst. 77 ___ ? yes; take PN42 "v" CTIO No; set condition indicator to 11 in OPe code Advance Nrp by three in "un and ttv" FC24 PN72 CT10 Set cond. ind.- 5 in OPe code Adva-ooe #rel. oonst. (ere) by 1 in ttu" FC3 and "v" ® - 1335 ~l .c ::5 en 44 45 46 { 47 50 51 52 t t I =r-' gt- .... .. ui ..Q ::5 ItIJ J:~ ~I :g 162 ? t 163 ui ..Q ,::5 ItIJ I I I'-S:: 1'-0 s:: @) @ {i~ 56 57 60 [30000 ) Swi tch Q) Advance Nrp by 3 in "u" and "v" FC24 PN72 0 Advance Nrp by 2 in "un and "v" FC4 RA7 PN72 0 @ - "u" operand to working temp wr5 WT FC56 A 76777 -- "u" of A Is "u" of dummy inst. 77___ ? PN57 WT CT10 Set cond. ind.--zero in OPe code FC Advance Nrp by four in "u" and "v" RA7 FC25 PN65 0 CT10 Set cond. ind.-- 2 in OPe code FC6 Advance #re1. const. (Crc) by 1 in "u" FC3 CT and "v" [30000 ] Switch 0 FC24 ~ -advance Nrp by three in "u" and "v" RA7 PN65 0 @ -advance Nrp by four in "u" and "v" FC25 RA7 To 61 ___ routine ("v" ent.) EK25 EK14 17 Address of word following dummy inst. SR23 "u" of A Add. of word following dummy inst.- "u" PN70 A of NI [30000] CT10 Advance indicator following dummy inst. by cond. ind. 0 SS To 61 ___ routine ("u" ent.) EK25 EK6 PN66 0 FC24 ~ -advance Nrp by 3 in "un and "v" RA7 0 PN66 PN76 MJ 0 RA RA7 MJ RA MJ 'ill TP TJ TP RA MJ TP RA 61 62 63 64 65 66 MJ 67 111 70 RA 71 72 73 74 75 MJ RA MJ RA RJ SP RJ MJ RA MJ CA ® 1336 o RJ ES SJ RR6 2 W A 3 TP FC35 4 QT [30000] A EJ WT6 RR47 6 7 o ES TV A RJ ES TV A 13 14 TP WT6 1V RRIO 1V RC3 TP WT5 15 16 17 20 21 SP RA6 22 MJ 0 23 TP FC7 24 25 26 27 30 MJ 0 31 32. 33 34 TV RA5 TP WT5 35 36 37 40 41 & 7 o 7 4.. 2 43 "g.=. $.4= ..1 72 . RJ 10 11 12 C+.!.~~ ctl~ RR 1 5 $.40' IA [ 44 TV RC4 111 EJ RJ WT5 WI' ES SJ RR27 RJ ES TV RA5 RA RA7 TP FC13 SP RA6 111 WT5 TV RC7 EJ WI RJ EK25 MJ 0 RJ LQ TP FC3 E51 RR2 RR4 Subroutine to Check for Redundant Floating Point Operation Search Expanded List for Duwmy inst. Is instruction redundant? No; to RR6 Address of s.s. word in Expanded List -!'u" of QT Q Subscript word from Expanded List-- A Is subscript word in temp 6 redundant? Yes; to RR47 ES12 NOt advance dummy tally by one RRIO Available address in Exp. List -- "v" of NI [30000 J Dummy instruction to Expanded List ES12 Advance dummy tally by one RR13 Available address in Exp. List -- "v" of NI [30000 ] Subscript word to Expanded List Address of dummy instruction to ttv" of WT4 temp PN14 Set swi tch ® to (f2) PN44 Set switch G!) to QOD P.R. counter-- "u" of A 17 "uti of dummy inst. - working temp. WT RR23 Is P.R. counter = "u" operand? (oper. for "u" in Q) [30000 1 Exit - subscript word CTIO Set cond. ind.- 3 in OPe code (oper. for "u" in Q) RR43 ESI Search Expanded List for dummy instruction RR50 Is instruction redundant? yes; to RR50 ES12 No, advance dummy tally by one RR32 Available address in Exp. List- "v" of TP Address of dummy inst. - "v" of temp. WT4 [30000 ] Dummy instruction to Expanded List FC3 Advance Nrp by one in "u" and "v" CTIO Set cond. ind.- 12 in OPe code (neither "u" nor "v" subs) P.R. counter -- "u" of A 17 "u" of dummy ins~ to working temp WI PN Set switch @-0 P.R. counter = "u" operand? (oper. for RR55 "un in "Q") To 6L __ routine ("u" and ttv" ent.) EK [30000 ] Exit - no subscript word Enter P.R. yalue in QList I..Q7 Set increment (I) - one in "u" and ttv" CT7 1337 l45 s::: 0 -.-I +J C) :::s @) RJ SR25 SR11 46 47 MJ 0 RA RR4 PN FC2 50 RJ RS RS1 51 52 53 54 55 SJ RR52 WI1 LQ 0 CT10 A $..c +J U) s::: -.-I +J s::: co "0 s::: :::s "0 Q) $..c P.R. va1ue-- Opere List (~) and Exp. List y ; cond. ind.- Exp. Li st Go to ® (prediction routine) Address 0 f redundant P. R. va 1ue -- "u" of 56 57 TP RJ MJ RA EK25 0 CA RR60 RJ MJ S5 A LQ1 Redundant P.R. value -- Opere List and Red. P. R. Li st Was redundant P.R. in List? Redundant P.R.-- A Was redundant P.R. in Q List? 55 FC7 EK14 RR43 Adv. condo indo by 3 in ~. code (oper. for "u" in Q-set ind -- 5) To 61 ___ routine ("v" ent. 1338 Subroutine to Store Redundant Partial Result IA RS o MJ 1 Address of redundant P.R. value - "un of NI TV [30000] WIl Redundant P.R. - "v" of working temp Available address in Operand Li:st _ "v" TV RA R54 of NI [30000 ] Redundant P.R. value - Operand List ({3) TP WIl RJ BR BR4 Advance address in Operand List (~1 by 1 in "u" and ttv" Redundant P.R.- A TP WTl A Length of redundant P.R. List- jn of RSlO TO RAlO repeat Search Redundant P.R. List RP [30000 J R5l2 Is P.R. in "A" in Redundant P.R.List? EJ RL RS24 No; available address in Redundant P.R. TV RAlO RS13 List- ttv" of NI [30000 ] Redundant P.R.- redundant P.R. List TP A RA. RAlO FC3 Advance available add. and jn for Red. P.R. List by one Redundant P.R. List too long? TJ LVI RS22 RJ WA WAI Sent. # - print out UP3 TP TO Codeword - alarm print UP Ala rm-Red. P. R. Li st too long [ type: SENRJ UP2 TENCE TOO LONG II] MJ 0 Rewind tapes BQ6 Set (A)- Red. P.R. was not in list (A-) TP FC36 A MJ 0 RS TP Fe Set (A)- Red. P.R. was in list (A+) A MJ 0 RS CA RS26 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 o TU IA OS RJ BR 1 TU 2 RJ 3 TO 4 5 6 7 10 11 12 13 0 A RA BR [30000 ] Exi t RS2 Subroutine to Sort Operands for Fixed Plus or Multiply Decrease address in Operand List (~) by 1 in "u·· and "v" Address of first operand - TP Decrease address in Operand List ($) by 1 in "u" and "v" Address 0 f second 0 perand - TP First operand- A Second 0 perand - Q Operand at Q > operand at A Shi ft operand in Q - "u" of Q BRI 054 BRI RA OS5 TP [30000] A TP [30000] Q Q LQ Q 0511 17 MJ 0 0512 LA A 17 TJ Spi ft~peralld in A_"utI of A Operands - "u" and "v" 0 f A SA Q o MJ (30000 ] 0 CA 0514 1339 Subroutine to Store Callword in Ope File 1 [ 30000 ] Exi t MJ Callword - "un of A SP A 17 Length Ope File 1- jn of repeat FS3 W RAI Search Op. File 1 for callword RP [30000 ] FS5 EJ FL2 Callword in Ope File I? no to FS5 FS Available address in Ope File 1- "v" of FS6 TV RAI NI [30000 ] Store callword in Ope File 1 TP A Fel Adv. #lines this Ope File 1 item by one RA FL Adv. available add. and jn for Ope File RA RAI FC3 1 by one Ope File 1 too long? TJ LV2 FS RJ WA WAI Sent. # - print out TP TO UP3 Codeword - alarm print Alarm-Op. File 1 too long [ type: SENUP RJ UP2 TENCE TOO LONG. ] MJ 0 Rewind tapes BQ6 CA FS16 IA 0 1 2 3 4 5 @) 6 7 10 11 12 13 14 15 IA @~{~ B MJ RS FS 0 BR 0 RA ~ 2 @~ 180 3 MJ 0 4 RA RA 5 TJ LV RJ WA CQ. Q) (;) c: co :::- 6 7 10 TJ IA TP TO RJ UP2 "C « 11 MJ CA 0 BR12 Subroutine to Advance or Decrease Available Address in Operand List (Beta Routine) [30000 ] Exit FC3 Decrease address in Operand List (S) by I in "u" and "v" EP4 In it. add. 0 pe r • List> current add.? Yes - alarm #4 SR No; to exi t FC3 Adv. address in Opere Listby I in "un and "v" SR Max. address in Opere List> current address? WAI Yes; type sentence number UP3 Code word - alarm print UP Alarm-too many operands [type: SENTENCE TOO LONG. ] Rewind tapes and stop BQ6 1340 Subroutine to Search for or Store · til 3'~@) ... : LQ MJ 0 1 TO RP RA2 LQ2 [30000] LQ4 XQ LQ5 0 LQ22 FC3 RA7 Advance Nrp by one in "u" and "v" 0 LQ LQIO RA2 Ent. - for store in "0" List RA6 t 30000 ] Enter P.R. in ItQIt List FC3 Adv. j n and add. in "Q" Li st by on e in RA2 "u" and "v" LQ LV3 "Q" List too long WAI Sent .. # - print out WA UP3 TO Codeword - alarm print UP Alarm - "Qt' Li st too long [ type: SENTENCE UP2 TOO LONG.] 0 BQ6 Ent. - for search "QIt List (fl. neg and RA2 LQ20 abs. val.) (30000 J SS Search "Q" List (exit to sym. search if Red. P.R. not in "Q" List) XQ LQ Is red. P.R. in "Q" List (return exit red. P.R. in "Q" List) RA6 LQ24 Redundant P.R. = P.R. counter? 0 SS Adv. Nrp by one in "un and ttv" RA7 FC3 FC CT7 Set increment (ll to zero 2 0' 1'40 3 EJ 0..- 4 MJ 5 6 MJ ::s ...... : .s:: o ~ ~ J..4 CO ..... ::s Q)Cp..jS ~ CIl----- ~ RA 10 11 TV TP RA 0' 12 TJ s:: 13 14 7 c. • .-1 15 RJ TP RJ 16 17 MJ 20 RP 21 EJ 22 23 24 MJ TO "'..... """ CO ~ til • .-1 ....l .. :> - til ..Q CO O'~ : - Ol .s::Q) o s:: J..4 CO .....Q) -- CIlCp..j Partial Result Symbol in "Q" List f1 1 d· Ent. - for search "Q" List (mlJiu~.M~lt!~) Sea rch "Q" Li st Is redundant P.R. in "QIt List o IA EJ 25 RA TP 26 MJ 0 CA LQ27 [ 30000 j Exi t SS 1341 ~ .....ell ..... ~ .c 0 J,.c co Q) 8 ell @ ~ 0 1 2 3 4 5 6 7 10 ..... ell ..... ~ s:::: ·Pot IA MJ LA [ 30000J 0 ru HA3 LA2 RP (30000 ] LA16 EJ XA LA4 FC3 RA RA7 MJ 0 LA LA7 TV RA3 [30000 ] TP RA6 FC3 RA HA3 J,.c 0 CJl lt Ent.-for store in ItAIt List Enter P.R. in nA" List Adv. jn and add. in nA List by one in "un and "v ItAIt List too long? Sent. # - print out Codeword - alarm print Alarm-ttA" List too long [type: SEN'mNCE TOO LONG.] Rewind tapes and stop Redundant P.R. = P.R. counter? No Adv. Nrp by 1 in nu" and "v" Set increment (I) to Zero ti lt 11 12 13 14 TJ LV4 RJ WA LA WAI TP TO RJ UP2 UP3 UP MJ BQ6 LA20 Q) ~ Subroutine to Search for or Store Partial Result Symbol In "A" List Exit Ent.-for search "A" List Search "A" List Is redundant P.R. in "Alt List? Advance Nrp by one in "un and tlv 15 16 17 20 21 22 0 RA6 MJ 0 HA RA7 TP Fe MJ 0 CA LA23 EJ LA FC3 CT7 LA 1342 *Note: S ~ til .~ ....J • c... x ~ -= C) J,.f ct'I Q> @ til ~ 1"""1 1"""1 ct'I ® Sent. callword from sorted list - first word in Exp. Li st Sent. number from sorted list-- second word in Exp. List r MJ TO 4 SN 5 SA ES2 SA ES3 ~ = Q [30000 ] ES2 ESI0 ES4 17 0 0 ES A 6 7 10 MJ 11 12 MJ RA 0 RA5 ES FC3 TJ LV5 &J TP WA TO &J UP2 ES WAI UP3 UP 13 14 15 16 ~ IA ES 0 RA4 RP [ 30000] EJ EI2 0 1 2 3 0 TP FC36 "'0 Q> (.) c ..... 17 ct'IQ >- 0 CA ES20 MJ BQ6 Input-dummy inst. in A Subroutine to Search for Du~~y Instruction or Advance Dummy Tally in Exp. List Exit j n for repeat - NI Search Expanded List Dummy inst = prev. entry in Exp. List? yes; to ES4 -jn+r- nu!! of A +r - "u" of A EL+r - "u" 0 f A Equality not met indicator - A (i. e. All = 1) Adv. dummy tally for Exp. List by 1 in "u" and "v" Expanded List too long? no; to exit Yes; type sentence number Codeword - alarm print Alarm-Exp. List too long [type: SENTENCE TOO LONG.] Rewind tapes and stop "'029 61000 0 61000 0 77000 0 0 01000 20000 4 50000 0 77777 0 777 16000 16100 7 77776 1347 0 I 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 1A RC 0 0 PN34 0 PNI 37 52 0 PNl5 0 PNl7 54 61 0 PN45 62 0 PN47 64 0 PN5l 0 SS 66 67 0 PN62 70 0 PN64 71 0 LN2 72 0 LN 0 LN4 73 0 LN12 74 75 0 RR50 0 1Q31 76 77 0 PN74 41 0 0 53 0 0 55 0 0 56 0 0 0 57 0 60 0 0 0 63 0 0 65 0 0 0 5044 0 S054 0 CA RC33 0 1 2 3 1A TO 40 T01 65 30506 26 30016 01 46515 CA T04 Ope Codes Contain Operation Symbols for Expanded List; Subscript operator Floating subtract Floating divide Library operator Floating unary minus Floating absolute value POW +2 POW -2 POW +3 POW -3 POW ~ POW .. ~ POW (4 to 63) POW (-4 to -63) POW -1 Storage operator Floating plus Floating multiply Fixed plus Fixed subtract Fixed multiply Fixed divide Fixed unary minus Fixed absolute. value in " v" to to to to to to to to to to to to to to to to set set set set set set set set set set set set set set set set set Alarm Text 3 63050 65151 03222 SENTEN CEhTOO ~LONG. 1348 IA To To preset RA To preset HAl 0 1 o o To preset RA2 2 To preset RA3 IA BL 20000 BL FL2 o 20000 XQ 3 o 20000 XA presetR~4&RA5 4 o 20000 ELI To preset HA6 To preset RA7 5 6 o o 0 01001 31000 01001 To preset RA8 7 o 20000 RL To preset SS3 10 11 o SL3 EL2 IA12 o o o CA 0 IA LV 0 BL177 BL177 1 0 20077 RL77 2 0 20175 FL177 3 0 20177 XQ177 4 0 20177 XA177 5 0 20675 6 7 0 0 30000 0 02002 02002 10 11 0 0 CA EL677 0 62000 0 63000 Initial Addresses $ initial (initial add. Operand List) Ope File 1 item (jn to search in t· u" init. cross ref. item in "v") "Q" list (jn to search in "u" - init. add. "Q" List in "v") "A" list (jn to search in "un init. add. "A" List in "v") Exp~ list (jn to search in "un - init. avail. add. -1 in "v") Initial P.R. value in "v" +1 Init. #lines in running prog +1000 in "u" and "v" (counts MJ exit) Red. P.R. List (jn to search in "u" init. add. in Red. P.R. List in "v") a initial (initial address in Sorted List) Init. add. in Exp. List +2 Limiting Addresses for Lists, etc. Max. address in Opere List in "u" and "v" (max. {3) Max .. j n in "u tt and max. -address in ttv" for redundant P.Ro List Max. j n in "u" and max. address in "v" for Ope File 1 item Max j n in "u'" and max. address in ttv" fo r "Q" Li st Max. jn in "u" and max. address in "v" for "A" List Max. jn in "u" and max. address in ttv" for Expanded List Minimum P.R. value in "~" Max. #lines object prog. body (incl. jump to exi t) +1001 Dummy cal1word for function input region Dummy callword for pseudo operation input region LV12 1349 Subroutine to Store in List I, Callword of Library Routine and if Fixed Library Routine. Callwords of its Cross-references IA LS § II RJ LR RA LS13 [30000 ] LS13 CT13 LSII LS12 LS14 LS7 LRI LS13 FC23 FC57 A LRI FC2 16 IJ CT13 LS13 17 20 21 22 23 24 25 26 MJ 0 50002 50022 50031 50041 50051 50012 LS20 LS27 LS 0 0 0 0 0 0 0 WIO 1 2 3 4 5 6 0 0 [[[-[-[--- 0 1 2 3 4 5 6 7 10 11 12 13 14 15 0 LS26 TP FC EJ LS25 EJ LS21 RP 20003 EJ LS22 RJ LR 0 MJ RA CT13 RA CT13 TP [30000 ] MJ TU 0 0 0 0 0 0 0 CA Zero - index C3 Callword = 50012? yes; to LSII Callword = 50022? yes; to LS12 Callword = 50031. 50041, or 50051? Yes i to LS7 50031, 50041, or 50051 callword to List 1 50002 callword to list 1 Advance index by 2 in "v" Advance index by 3 in "v" Callword - A Callword to list 1 Advance by 1 in "u" to address of next callword More callwords to store in list I? yes; to LS13 No; to exi t Explanation of working Temporaries (WI) [30000 ] 0 Temp 0 - OPe code and ltv" always ~ero 0 [30000 ] Temp 1 - OPe code and "u" always ~ero -J Temp 2 ---J Symbol tempi Floating point inst. ---~ Dummy inst. addressj Register indicator --J Dummy instruction --J Subscript word following dummy instruction 1350 CTO 0 [ 1 ~ 0 2 0 [ [ 3 4 5 0 0 0 [ 6 0 [ 0 [ 7 10 11 12 13 [- 0 0 0 [ [ Explanation of Counters (CT) ] ] Crc-no. relative constants ,.J [rL.. -, Crpt=no. ten lines in running prog. body ] ] [ Crct-no. ten lines in relative constant region ] [ ] Trp-subtally of no. lines in running prog. ] [ ] Trc-subtally of no. relative constants ] [ ] Trpt-subtally of no. ten lines in running prog. body [ ] of no. ten lines in reI. Trct-subtally J const. region ] [ ] Increment (I) -J Condition indicator [ ] 0 Index counter (Cll 0 ] [ Index counter (C21 [ ] 0 Index counter (C 3J ~ List of RAO [ - -J 1 [-- -J 2 [- -J 3 [- -J 4 [- -J 5 [- -J 6 [- -J 7 [- --J 10 [ - -] running (current) Addresses in Lists (RA) (ava i labl e 0 pen address in Operand Li st in "u" and ttv It) Ope File 1 tally (jn in "u"-available address in ltv It) "Qtt List tally (jn in "u"-available address in "v") "A" List tally (jn in "utt-available address in "v")· y -Expanded List tally (jn in "u"-last used address in "v tt) Dummy tally (D) for Expanded List (same format as y ) Partial result (P.R~) counter (current P~R~ in tt v") Tally of number of lines in running program +1000 Redundant P.R" List tally (jn in "u"available address in .ttv") {3 1351 Equation Generation No. 3 Flow Charts Equation Generation Phase Preset address of next word in Expanded List in Box-I. Preset equation generation phase Box-l Next dummy instruction from Expanded List to temp 5 and "A" ..--~ Mask dummy operator symbol from op. code of dummy instruction Advance address in Expanded List by one point operator? Subscript manipulation operator? NO Floating point division operator? Floating point multiplication operator? ~~~ Floating pOint subtraction operator? Fixed point addition operator? point unary minus operator? "- NO / NO Fixed point subtraction operator? NO NO Fixed point absolute value operator? Fixed point multiplication operator? . NO NO Integral Power (+2) operator? Fixed point division operator? NO NO Integral Power (-2) operator? operator? NO NO Floating point unary minus operator? Integral power (+3) operator? ):0 U 1353 End Equation Generation Phase Integral power (-3) operator? Number lines in body of object program < l0028? NO NO YES Number relative constants in object program < l0018? Power (1/2) operator? NO NO YES redundancy temporaries in object program < lOO18? Power (-1/2) operator? NO NO YES Number of reusable temporaries in object program < 7778? Operator for integral power from 4 thru 63? NO NO YES Operator for integral power from -4 thru -63? NO ALARM: "Sentence too Power (-1) operator? long" Operator for storing result 1354 typed out. BQ Rewind tapes Number of lines in object program including constants and temporaries to "v" of second word in Ope File 1 Codeword for third line of prelude to temporary Instruction ~-3N [MJ - 00000 - OlOOOJ to temp 2. Xl instruction to routine buffer ...... w CJl CJl All generated instructions in routine buffer Number of instructionsin generated routine including "10" lines ~ 1708? NO Advance current address in routine buffer by number of relative constants (including "10" lines) in relative constant image. Number 0 Ilnes In ~ generated routine in_NO 9 cluding relative stantsS170? YES Generated routine not exceed routine buffer (core) Transfer partial block of generated instruc~--~ tions from routine buffer to routine image on drum Transfer relative constants for routine to routine image on drum following generated instructions Number of lines of prelude and routine to ~----'~ fir st 1 ine of prelude in routine image on drum Number of lines subject to address modification IE---I to second line of prelude in routine image on drum Codeword from temp to third word of prelude in routine image on drum Is routine for pseud operation statement? (22--- callword) Is routine for separate equation? (24--- or 25---) callword Highest 70--- type callword used in routine +2 to exit line of routine to setup exit to second word beyond last temporary for routine Send parameter to write generated routine from drum YES Transfer relative constants for routine to routine buffer in core following generated instructions ~ Number of lines of prel~ ude and routine to first line of prelude I~ in routine buffer in core jec~ Number of lines sub to address modifica tion to second line of p.rel·· ude in routine buf fer in core ! .u;-] COdeword from temp third word of prelude in routine buffer in core Is routine for pseudo operation statement? (22 ---c a 11 word) Is routine for separate equation? (24---or 25--callword) NO YES Exit from equation generation phase OP write generated routine and Op. File 1 \-_-'-_~ item on tape Highest 70--- type callword used in routine +2 to exit line of routine to setup exit to second word beyond last tern orary for routine. ~--------~j --Send parameter to writE]. generated routine from core Equation Generation Phase (Subscript Manipulation Operator) 51 next word from Expanded List to temp Advance current relative address by three 6 Check indicator from OPe code of temp 6 Advance current relative address by two R7 Indicator = O? NO Advance current relative address by four Indicator = l? NO Advance address counter for Expanded List by one to address of partial result following last subscript word for current operator Indicator = 2? Indicator = 3? Preset this address in Box-l of subroutine Rl NO R4 R2 ........-----1 Indicator must equal 7. 1358 Advance current relative address by three Preset Box-l of Subroutine Rl to Expanded List address of last subscript word for current operator Advance address counter for Expanded List by one to address of partial result following last subscript word for current 0 erator. Advance current relative address by five Advance address counter for Expanded List by two to address of partial result following last subscript word for current operator Preset this address in Box-l of subroutine Rl Advance current relative address by four Advance address counter for Expanded List by two to address of partial re~ult following last subscript word for current operator Preset Box-1 of subroutine Rl to Expanded List address of last subscript word for current operator Rl R4 Rl R2 Rl 1359 Advance current relative address by six Advance address counter for Expanded List by three to address of partial result symbol following last subscript word for current operator Preset this address in Box-3 of subroutine Rl Advance current relative address by five Advance address counter for Expanded List by three to address of partial result symbol following last subscript word for current operator Preset Box-l of subroutine Rl to Expanded List address of last subscript word for current operator Rl R4 R2 Instruction from temp 3 to temp 2 Xl Instruction from temp 2 buffer Partial result symbol for current operator from Expanded List to "v" of temp 6. Advance address counter for Expanded List by one to address of next operator Rl Rl Rl R5 Rl R6 Z4 1360 11 32000 30000 instruction to temp 2 Equation Generation Phase (Fixed Point Operators) (35 30000 32000) Instruction to temp 3 (36 30000 32000) Instruction to temp 3 (73 30000 32000) Instruction to temp 3 (71 32000 30000) Instruction to temp 3 51 ext word from Expande List to temp 6 Advance current relative address by one Indicator from Ope code of temp 6 = zero? Xl Instruction from temp 2 to routine buffer -r-l "'0 s:::: -H Is partial result symbol in ~v" of temp 1 in "A" List? 5 (11 31000 32000) Instruction to temp 2 Advance current relative address by one ctv Xl Instruction from temp 2to rOutine buffet 1361 Sl (13 32000 32000) Instruction to temp 2 (12 .32000 32000) Instruction to temp 2 Next word from Expanded List to temp ~ artia 1 result symbol from "v" of temp 6 ~-------""",y to "v ",1 of temp 1 and" • - Is partial result symbol in "v" of temp 1 in "A" List? Indicator from Ope code of word in temp 6 = zero? ~ (Indicator =one) Xl Advance current relative address by one Instruction from temp 2 to routine buffer (11 32000 30000) Instruction to temp 2 (32000) to "u" and "v" of register indicator (temp 4) NO Equation Generation Phase (Fixed Point Operators and Floating Point Binary Operators) Advance callword of current reusable temporary storage by one Advance current relative address by one (64 30000 30000) instruction to temp 3 Xl Instruction from temp 2 to routine buffer Is highest reusable temp callword used greater than callword? NO Retain current callword as highest used (65 30000 30000) instruction to temp 3 YES Current reusable temp call wor d to" v" of tern 2 (32000) to "u" and "v' of register indicator (temp 4) Advance current relative address by one (66 30000 30000) instruction to temp 3 Xl Instruction from temp 2 to routine buffer 1363 Indicator (67 30000 30000) instruction to temp 3 =2 ? Indicator = 138 ? NO Indicator = 148 ? NO Sl Indicator = 158 ? Next word from Expanded List 6 NO Ca llwords of subscripts (if any) in "u" and "v" of temp 6 Indicator =6 Check indicator from op. code of temp ? 6 Indicator = 208 ? Indicator = 0 ? NO Indicator = 1°8 ? Indicator = 1 ? Indicator = 2 18 ? NO Indicator = 228 ? NO NO Indicator = 238 ? 1364 ( Indicator = 240o ? Indicator = 258 ? Indicator = 368 ? o Indicator = 4°8 ? Indicator = 438 ? Indicator = 448 ? Indicator = 32 8 ? Indicator = 458 ? Indicator = 338 ? Indicator = 46 8 ? o Indicator must 518 = Indicator = 5°8 ? Indicator = 34 8 ? 1365 Indicator = 478 ? ~--~ Advance current relative address by four Advance current relative address by three Advance current relative address by four Is instruction in temp 3 (65 30000 30000)? (21 30000 30000) instruction to temp 2 (16 32000 30000) Instruction to tern 2 Callword in "u" of Current relative 55 ~--I address to "u" of temp ~~ temp 6 to "v" of temp 6 2 (64 31000 30000) instruction to temp 2 Advance current relative address by three Advance current relative address by two Advance current relative address by three Xl from temp 2 ~~~ Instruction to routine buffer >--® 96 Is instruction in temp 3 (65 30000 30000)? NO Advance current relative address by three YES Advance current relative address by four (64 31000 30000) instruction to temp 3 Callword from "u" of temp 5 to "v" of temp 3 62 dvance current relative address by three ~ ~ 64 . current relative address by three dvance ~ 66 . dvance current relati ve addres s by one ~ ~ ~ 68 69 70 Advance current relative address by one dvance current relative address by two Advance current relative address by three Is instruction in temp 3 (65 30000 30000)? (64 31000 30000) instruction to temporary 2 Callword from "u'· of temp 5 to nv" of temp 5 dvance current relative address by four dvance current relative address by four Advance current . -___ relative address by four Advance current relative address by one. Advance current relative address by six Advance current relative address by six Advance current relative address by six Advance current relative address by five Advance current relative address by five 77 Advance current relative address by four Advance current address by four 78l------;~relative ~ 79 dvance current relative address by four Advance current relative address by three ~ ~ 81 dvance current relative address by three 83 dvance current relative address by four &{ 84 dvance current relative address by two ~ &{ 85 dvance current relative address by four 86 dvance current relative address by two Advance current relative address by two Is instruction in temp 3 (65 30000 30000)? Advance current relative address by three. Advance current relative address by five Advance current relative address by five. Advance current relative address by five. Advance current relative address by five Advance current relative address by five Advance current relative address by two (64 31000 30000) instruction to temp 2 Advance current relative address by five Preset address of next word in Expanded List in Box-·4 Advance address in Expanded List by one (31000) to "'u" and u v" of register indicator (temp 4) (11 31000 32000) instruction to temp 3 Partial result symbol from Expanded List to "v" of temp 6 Is instruction in temp 3 (11 31000 32000)? )-r o -----, Advance current relative address by one Equation Generation Phase (Library Routine Operator) Obtain number of arguments for library routine from library routine callword in ,''v'' of temp 5 Reduce argument index in temp 7 by one Store number of arguments in index counter (temp 7) Add number of arguments to (10 00000 00003) to form ulOu line for last argument Have instructions been generated to transfer all arguments to library routine input? YES Store uIO" line for last argument in "10" line counter (temp 10) Sl Next word from Expanded List to temp 6 Check indicator from Ope code of temp 6. Indicator of = Indicator =l? Indicator Must = 33. Indicator = 2? Indicator = 3? Indicator = 4? Indicator = 5? ~N~0~____________~113 (37 - ....- ---) instruction to temp :2 Library routine callword from "un of temp 5 to uU:' of temp 2. Library routine ca llword from "'v'" of temp 5 to 4'V" of temp 2. Xl Instruction from temp 2 to routine buffer Xl ulO" line from temp 2 to routine buffer Advance current relative address by one. (11 30000 32000) instruction to temporary 2 Library routine callword from '''v'' of temp 5 to "v" of temp 2 Callword from "u" of temp 6 to 'tlu" of temp 0 "lOtt line (10 00002 00000) to temporary 2 i-instruction from temp 2 to routine buffer Advance current relative address by one "10" line for argument from "10" line counter (temp 10) to temp 2. 11 30000 32000 instruction to temp 2 X11...J'10" 1ine from temp 2 to routine buffer "u" of register indicator (temp 4) to nu" of temp 2 Decrease ttl0" line counter (temp 10) by one in "v". Library routine cal1word from "v" of temp 5 to "v" of temp 2 106~---' 11 30000 32000 instruction to temp 2 Advance current relative address by four Advance current relative address by four Advance current relative address by three Advance current relative address by two 11 30000 32000 instruction to temp 2 Library routine ca11word from "v" of temp 5 to "v" of temp 3 Ca11word from "u" of temp 6 to "u" of temp 3 Advance current relative address by three 11l~- 102~--, "10" line for argument from "10" line counter (temp 10) to temp 2 X3-" 10" 1 i ne from temp 3 to relative constant image Decrease "10" line counter (temp 10) by one in "v tt • Equation GeneratiDn Phase (Floating Point Unary Minus and Absolute Value Operators) 13 30000 31000 instruction to temp 3 12 30000 31000 instruction to temp 3 51-next word from Expanded List to temp 6 Check indicator from Op. code of temp 6 ~(indicator .~ = O? Indicat~or ~ must equal 5, NO ~~~r Advance current relative address by four r . .------.-. Advance current relative address by three Callword from "un of Temp 5 to tlu" of temp 3 Callword from "u" of temp 2 to "u" of temp 3 Advance current ~elative address by two t--~ "uti of register indicator (temp 4) to "u" of temp 3 ~~ Advance current relative address by one YE5 Equation Generation Phase (Integral Power Operators) Power 2 Power Power -2 126 3 134 \--I~---~ 127 Power -3 51-Next word from Expanded List to Temp 6 135 67 30000 30000 Instruction to temp 2 Advance current relative address by one Advance current relative address by three Ca1lword from "u" of temp 5 to "v" of temp Advance current relative address by one 5 67 30000 30000 instruction to temp 2 Check indicator from op. code of temp 6 "v" of register indicator (temp 4) to "v" of temp 2 67 30000 30000 instruction to temp 3 Cal1word from "u" of temp 6 to "u" of temp 3 Callword from "u" of temp 5 to ltv" of temp 3 Advance current relative address by: three 67 30000 30000 instruc tion to temp 2 Advance current relative address by. three 32 30000 00000 instruction to temp 2 Fixed constant cal1word from "u" of temp 6 to "u" of tern 2 21 30000 30000 instruction to temp 2 Advance current relative address by three Power "\ 4 to 63.J @r-------+----~ Power 1/2 ""\ ~ 161~~------~ Relative constant callword to nu" of temp 2 X1--In struc t i on from temp 2 to rOllltine buffer Xl-Instruction from temp 2 to routine buffer Current relative address to "u" of temp 2 Advance current relative address by two Power -4 to -63 8------~ Power -1/2 Preset address of next word in Expanded List in Box: 4 Advance address in Expanded List by one Box-·4 Word from Expanded Lis to temp 6 Equation Generation Phase (Operator to Store Result) 11 30000 30000 instruction to temp 3 Set switch to ® o Set switch ® to @ Sl next word from Expanded List to temp Check indicator from op. code of temp 6 Advance current '------""-' relative address by four >---s~:.t Callword from ltv" of temp 5 to "v" of temp 3 r---.. . Instruction from) temp 3 to temp 2 Xl-Instruction from temp 2 to routine buffer Advance current relative address bone "u" of register indicator (temp 4) to "u" of temp 3 Advance current relative address b three Advance current relative address by two dvancecurrent-relative address t - - - _ _ . by one @----1j 185 Ca llword from "v" of-·temp 5 to "v" of temp :3 Equation Generation Subroutine for Floating Point Operators Partial result symbol from "v" of temp 6 to ttv" of temp I and "A" Is partial result symbol in Redundant Partial Result List? YES Callword of corresponding redundancy temporary storage~~~~ to "v" of temp 3 ~N_O_ _~® Is partial result symbol in tlQ" List? NO I--_.L-~ Advance callword of current reusable temporary storage by one Is highest reusable temp callword used greater than current callword? YES YES Retain current callword as highest callword used Current reusable temporary callword to "v" of temp 3 Equation Generation Subroutine for Floating Point Unary Minus and Absolute Value Operators Temporary storage callword or 31000 from "v" of temp 3 to ltv" of register indicator (temp 4) Temporary storage call word or 31000 from "v" of temp 3 to u u" of register indicator (temp 4) Equation Generation Subroutine for Power (1/2) and (-1/2) Preset "Ion line counte (temp 10) to 10 00000 00003 Check indicator from OPe code of temp 6 51-next word from Expanded List to temp 6 NO IndieatoA NO = I?) ~r----L-_ f,;:;\'-.:.7N~ 0 d i cat or 1 ~= 4? ~~YES Indicator must equal 33 ~__~__~ Advance current relative address by one 11 30000 50051 instruction to temp 2 Advance current relative address by two 11 30000 50051 instruction to temp 2 11 30000 50051 Advance current relative addressl---7f instruetion by one to temp 2 nu" of register indicator (temp 4) to "u" of temp 2 Advance eurrent relative address by three 11 30000 50051 instruction to temp 3 Callword from "u" of temp 5 to nu" of temp 3 X3-!'10" line from temp 3 to relative constant image Advance "10" line counter (temp 10) by one in "v". Resultant "10" line from "A" to temp 3. Advance current relative address by one Xl-instruction from temp 2 to routine buffer Advance "10" line counter (temp 10) by one in "V". Resultant "Ion line from "A" to temp 2 1-"10" line from temp 2 to routine buffer Xl-ttlO" line from temp 2 to routine buffer "lOll line 10 00002 00000 to temp 2 Advance current relative address by three Advance current relative address~----~ by one Xl-instructio' from temp 2 to routine buffer 37 50051 50051 instruction to temp 2 Equation Generation Subroutine for PONer (2) and (-2) 51-next word from Expanded List to temp Check indicator from op. code of temp 6 NO Indicator mu st equa I :3:3 Advance current relative address by one @~ Advance current relative address by four 66 30000 30000 instruction to temp 3 Advance current relative address by three Advance current relative address by one Advance current relative address by four ___--!.!.NO:::!.--4 Callword from nu" of temp 5 to "un of temp 3 Callword from "u" of temp 5 to ItV tll of temp 3 6? 32000 ~2000 ] InstructIon to temp 2 Advance current relative address by one Xl instruction from temp 2 to routine buffer 66 32000 32000 instruction to temp 2 Advance current relative address 1--_ _ by three -.1 Advance current relative address by three J---_f Equation Generation Subroutine for Power (3) and (-3) Sl- Next word from Expanded List to temp 6 Advance current relative address by two Advance current relative address by three Advance current relative address by three Advance current relative address by four Advance current relative address by three Advance current relative address by two Check indicator from OPe code of temp 6 31000 to "un of temp 2 Xl-instruction from temp 2 to routine buffer Advance current relative address by two Equation Generation Subroutines for Power (4 to 63) and (-4 to -6~n Box-5 reset address of next ord in Expanded List r---;. n Box-5 V fromEX~ Advance address in Expanded List by one Box-6 Op. Code from next word in Expanded List to "A" regi ster Word List to temp 6 1 - Preset address of next word in Expanded List in Box-6 -------------------------...... w co -I ~5 Check indicator in OPe code of "A" register Indicator = O? YES Indicator must equal 338 Indicator = 4? YES Indicator = 118? YES Indicator = 5? YES .----'Indicator = I08? YES NO Advance current relative address by three Advance current relative address by three I--' W co co Advance current relative address by three Advance current relative address by four Advance current relative address by three [66 31000 30000J Instruction to temp 2 Callword from "u" of temp 5 to "v" of temp Advance current relative address by three ~ ________~ Advance current relative address by three dvance current relative address by two Instrucfrom temp to routine buffer Equation Generation Subroutines for Subscript Operator Subscripts obtained in reverse order Box-3 Decrease (address) by Callword from Callword of multi(72 :30000 one to address of next plier from "'u" of I---r--"'''v'' of temp 6 30000) in1---l-~.§l!!>scr.!.pL W-2rQ. ____ _ to nv" of temp temp 6 to "u'· of struction to This subscript word from temp 2 1 temp 2 Expanded List to temp 6 (71 32000 30000) instruction to temp 6 (42 30000 30000) instruction to temp 2 Current relative address to "v" of temp 2 (73 30000 31000) instruction to temp 2 (11 30000 32000) instruction to temp 2 Callword from ltv" of temp 5 to "u" of temp 0 Advance "v" of temp 2 by one t-----=~ Ca llword of modulus from "u" of temp 5 to "u" of temp 2 (32 30000 00000 instruction to temp 2 Decrease address in Box3 of HI by one to address Q.f_next_ s...!!b~c.!.iJ>t_ w~r~._ This subscript word from Expanded List to temp 6 CaIIword from "V" of temp 6 to "u" of temp 0 Instruction from temp 2 to temp 3 Equation Generation Subroutines Preset address of next word in Expanded List in Box-2. Box-2 Indicator word from Expanded List to temp 6. Advance address in Expanded List by one. Indicator from OPe code of word in temp 6 to "An register. (15 32000 30000) instruction to temp 2 lei Ca 11word from uu'" Current relati ve temp 5 to uu'~ I---~ address to "v"" of temp 2 of temp 2. ~-~of ~------------~ (16 32000 30000) instruction to temp 2 Callword from "·v of temp 5 to "U U of temp 2 (16 32000 30000) instruction to temp 2 (15 32000 30000) instruction to temp 2 (35 31000 31000) instruction to temp 2 (35 31000 31000) instruction to temp 2 (15 32000 30000) instruction to temp 2 (35 31000 31000) instruction to temp 2 ~-~ Current relative address to "un of temp 2. ~-~ Relative constan ca 1lword to 'iU" of temp 2. Callword from "un temp 5 to "un of temp 2 ~-~of Relative constant to nv" of temp 2. ~-~callword Relative constant ca llword to "U of temp 2. 4f Xl Instruction from temp 2 to routine buffer 1391 (35 31000 31000) instruction to temp 2. (31 32000 00017) instruction to temp 2. Current relative address to "v" of temp 2. Callword from "u" of temp 6 to "u'" of temp 0 (31 32000 00017) instruction to temp 2. (32 30000 00000) instruction to temp 2. Callword from "v" of temp 6 to"'u" of temp (32 30000 00000) instruction to temp 2 Callword from "v" of temp 5 to "u" of temp 2 (31 32000 00017) instruction to temp 2 Ca llword from "v" of temp 6 to "u" of temp 0 (13 31000 31000) instruction to temp 2 (11 30000 32000) instruction to temp 2 Ca llword from "v" of temp 6 to '·u" of temp 0 (11 30000 32000) instruction to temp 2 1392 Xl Instruction from temp 2 to routine buffer Xl Instruction temp 2 to buffer (11 30000 32000) instruction to temp 2 (11 30000 32000) instruction to temp 2 & 520 ~ Callword from "u'" of temp 6 to "u" f - of temp 0 (16 32000 Callword from "v"" Relative constant 30000) instr-~ of temp 5 to"u" 1--3- callword to ;NV'· ~ ~ uction to of temp 2 of temp 2 temp 2 G - ~ (32 300(000017) Callword from "u" instruction f---;. of temp 5 to'lItu.tl to temp 2 of temp 2 522 ~ Callword from "u" Current relative (16 32000 30000) instr- ~ of temp 5 to "u" ---+ address to ttv" ~ ~ uction to of temp 2 of temp 2. temp 2 G - (15 32000 Current relative Callword from "v'''' 30000) instr-r--;. address to nv'" ~ of temp 6 to "u" ~ ~ uction to of temp 2 of temp 2. temp 2 ~ (15 32000 30000) Callword from "u" Current relative instruction ~ of temp 6 to "u" ~ address to "v'''' ---;1 ~ to temp 2 of temp 2 of temp 2. ~ (32 30000 00000.) Callword from "uH ~ ~ instruction ~ of temp 5 to ""u" ~ to temp 2 of temp 2 & 527 K16 32000 30000) instruction to temp 2 Callword from "u ~ of temp 5 to ''''UM of temp 2 1393 M ~ .. Relative con~vt~nt callword to of temp 2. I-- Equation Generation Subroutines Instruction from temp 3 to temp 2 Callword from "v" of temp 5 to "v" of temp I Xl Instruction from temp 2 to routine buffer Ca llword in "v" of temp 1 partial result symbol? (i.e. 31000> Callword? ) Y2 pertinent temporary storage callword Temporary storage callword to ltv" of temp 2 and "A". NO Callword from "v" of . temp 1 to "v" of temp 2 and "Alt. Instruction from temp 3 to temp 2 Instruction from temp 3 to temp 2 Xl Instruction from temp 2 to routine buffer _ V Exit Call word from "u'" of temp 5 to "un of temp o Call word in "u" of temp 0 partial re- ~E suIt symbol? (i.e., 31000 > ca 11 word?) NO ~------------~ Y1 pertinent temporary storage call word Temporary storage call word to "u" of temp 2 and "A" Ca 11 word from "uft of temp 0 to "ut. of temp 2 and "A" --X.._V t-_ _ Xi t Equation Generation Subroutines Xl Instruction from 1-----.:>JoI Temp 3 to Temp 2 Instruction temp 2 to routine buffer Instruction from temp 3 to temp 2 "v" of register indicator (temp 4) to ttv" of temp 2 Instruction from temp 3 to temp 2 r--------------------~ 1-----.::.1 Callword from "u" of temp 5 to "u" of temp 31---.~ Callword from "v" of temp 5 to "v" of temp 3 Instruction rom temp 3 to relative constant image [00 30000 30000] Instruction to temp 2 Callword from "u" of temp 5 to "u" of temp 3 ttv" of register indi- (temp 4) to ttv" of temp 3 t-----~cator U of register indicator (temp 4) to "un of tern 3 "U Callword from "v" of I--~ temp 5 to "v" of temp 3 ~~~ ~~nstruction from ~emp 3 to temp 2 Xl }------,-------:O-< Callword from "u" of temp 5 to "u" of temp 3 7}--~ ~~3llword from "v" of V -L emp 5 to n nv of Temp 3 :nstruction from ,emp 3 to temp 2 6-{ B-{ S47 548 I---~ r--~ 2l 30000 30000J Instruction to temp 2 [31 32000 00017] Instruction to temp 2 ... Callword from "v" of "A" regi ster to "v" of temp 3 Callword from "u" of "Aft regi ster to "u" of tern 3 I----I~ ::VXit 1 X2 Instruction from temp 3 to relativ constant image J ' [00 :30000 30000] Instruction to temp 2 "v" of register indicator (temp 4) to "v" of temp 2 Current relative address to "u" of temp 2 allword from "v" of temp 6 to "v" of temp 1 Callword from "v u of t-----''!lIoI temp 5 to Hun of temp 0 Advance current relative address by one [67 30000 31000] Instruction to tem 2 --~-, [66 31000 30000J Instruction to temp 2 Instruction from temp 2 to routine buffer ------;. Callword from "u" of temp 6 to "u" of temp 2 -~---. Callword of current reusable temporary storage to "v" of temp 2 Decrease callword of current reusable temporary st ora'ge by one [66 30000 30000] Instruction to temp 2 allword of current reusable temporary storage to "u" of temp 2 [11 30000 32000] Callword from "u" of temp 5 to "u" of temp 3 Instruction to temp 3 Instruction from temp 3 to temp 2 [11 30000 32000] Instruction to temp 3 [32 30000 00017] Callword from "u" of temp 5 to "v" of temp 3 Instruction to temp 2 [75 30000 30000] Instruction to temp 2 [00 30000 30000] Instruction to temp 2 constant callword to "un of temp 2 Instruction to temp 2 [66 30000 3000~ Callword of current reusable temporary storage to "v" of temp 2 X2 Instruction temp 3 to relaconstant image r--~ Callword in nu" of temp 2 also to "v" of temp 2 Exponent from rightmost two octal digits of "v" of temp 6 less two to "u" of temp 2 as u for repeat instruction with j of zero Advance "v" of temp 2 by one Current relative address to "v" of temp 2 [66 30000 30000] Instruction to temp 2 X2-Instruction temp 2 to routine buffer I__________------~rrom [32] to op. code and [00000] to "v" of temp 2 Equation Generation Subroutine to Store Instruction in Routine Buffer Instruction from temp 2 to current address in routine buffer Advance current address in routine buffer by one NO Transfer instrucReset current adtions from routine dress in routine buffer to current buffer to initial address in routine buffer address image on drum J Advance c urren address in routine image by 1708 Equation Generation Subroutine to Store Relative Constant in Relative Constant Image Advance current relative constant callword by one BQ Rewind tapes Relative constant or "10" line from temp 3 to current address in relative constant image Advance current address in relative constant image by one Alarm: SENTENCE TOO LONG Typed out Is maximum address in relative constant image >current address? f-..I ~ o o Equation Generation Subroutine to Obtain Pertinent Temporary Storage Callword (TR) Partial result symbol from "u" of "A" register to "v" of "A" reg i ster Callword of current reusable Is partial result temporary storage from seventh symbol in Redundant NO Partial Result List? ~--~ word in Running Address List to "u" and "v" of "A" register YES Decrease callword in seventh word of Running Address List by one etermine relative location of symbol in Redundant Partial List ~ Add base (577778) from sixth word of Running Address List to form callword of redundancy temporary storage for partial result Redundancy temp callword to HU" and "v" of "Alt register Equation Generation Subroutines for Fixed Point Operators ~ 21.. Indicator word from Expanded List to temp 6 YES Advance current address by one ~--~relative Callword from "v" of temp 5 to "u" of temp 0 Callwordl from "u" of "A" to HU" of temp 3 e--L 38 [11 30000 32000] Instruction to temp 2 YES 1---.;;,.1 Callword from ltv" of temp 5 to "u" of temp Instrucfrom temp to routine buffer Instruction to temp 2 Callword from "U" of temp 5 to "u" of temp 0 Is partial result YES Callword of corresymbol in itA" in Redunsponding redundancy dant Partial Result List? temporary storage to "v" of temp 2 0-~ 22 Instruction from temp 3 to temp 2 NO dvance current relative address by one dvance current relative address by one ~-----~------~ [35 30000 32000 1 Instruction to temp 2 Partial result symbol from ttv n of temp 6 to "v" of temp 1 and "A" Set switch CD @ to Is partial result symbol in "A" in Redundant Partial Result List? YES Callword of correspondredundancy temporary storage to "v" of temp 2 Set switch CD I--_~ ~____~ing ® to Is partial result symbol in "v" of temp in "A It 1 i st ? Advance callword of current reusable temporary storage bone YES ICurrent reusable temp callword to "v" of / / / e / temp 2 \ \ \ \ \ @ .---------' Retain current callword as highest used REGIONS FOR EQUATION GENERATION NO. 3 HE HE HE RE HE HE UP421 EP537} BQ632 WA653 OPI047 CW1211 HE HE HE HE HE HE HE HE HE HE HE HE HE HE HE HE HE HE HE HE RE HE HE HE HE HE RE HE HE RE RE HE RE BG2512 GE2542 EG2603 GY2730 GZ3030 NZ3120 ZZ3150 GF3176 GG3262 GH3357 GI3457 GJ3564 GK3624 GL3661 GM3713 GN3764 GP4043 GQ4131 GR4210 GW4277 GX4376 GA4472 GB4545 GS4600 GT4716 GU5014 GV5073 SI5133 TR5154 GC5171 TI5245 T05316 LG5322 HE HE RE RE RE HE HE TT5324 RB5360 RA5550 XQ5561 XA5761 RL6l61 EL6261 REF-b'7-l RA5 RI2 72 TP EL A 73 TJ GC46 EG75 74 TJ GC15 EG77 75 RA RA7 GC2 76 TV A RI6 77 TP GC16 OPl CA EGlOO TO TV TV RA RP TP TV RA J [30000 EG64 ii} [30000 EG53 EG53 0 RI Generated Instructions from routine buffer to current address in routine image on drum Relative constants from relative constant image to routine image on drum following generated instructions Number lines in prelude & routine to 1st line of prelude Number lines subject to address modification to 2nd line of prelude Codeword to third line of prelude for routine Sentence callword from first word in Expanded List to A Is callword for equation in pseudo operation? (22---) No, is callword for separate equation? (24--- or 25-...-) No, advance highest reusable temp callword by two Call word to ltv" of exit line for Generated Routine Send parameter to write Generated Routine from drum 1408 @ 100 101 102 103 104 105 @ @ TP SA EG100 0 TT3 GC31 EG123 A RP EGl05 EG106 EGI07 } 106 TP CI [300ooJ • r ...."7 Tv 110 111 112 RA SS TO TV I':'rt ... ~/ Number of relative constants in reI. con st. image to A 17 A S11 [30oo0J .lUI @ 1A MJ co Relative constants from relative constant image to routine buffer in core following generated instructions T • ~\:1.lUO '::>~.l TV TT3 GC24 A SI1 0 RB 113 ST GC40 RBI 114 115 TP TP RA5 EL RB2 A 116 TJ GC46 EG120 117 TJ GC15 EG122 120 RA RA7 GC2 121 TV A RB6 122 TP GC43 OPI 123 RJ OP OP2 124 MJ CA 0 EG125 BG Number lines in prelude and routine to 1st line of prelude Number lines subject to address modification to 2nd line of prelude Codeword to third line of prelude Sentence callword from first word in Expanded List to A Is ca1lword for equation in Pseudo operation? (22---) No, is callword for separate equation? (24 ..-- or 25--) No, advance highest reusable temp callword by two Callword to ttv" of exit line for Generated Routine Send parameter to write Generated Routine from core Write generated routine and Ope File 1 item on tape Jump to exit from phase 1409 IA GY GS5 A ~ "Sub" 0 perator 1 RJ 2 3 4 5 6 7 10 11 12 13 14 @Ind 15 =0 16 17 @Ind 20 AT RP TJ MJ MJ MJ MJ MJ MJ MJ MJ RA 1116 30007 GY5 0 1 3 4 5 6 7 RA3 A GY14 GY5 GY15 GY20 GY22 GY30 GY34 GY42 GY47 GY61 GC1 RJ MJ RA GS12 0 RA3 GV31 GY73 GC2 21 22 MJ RA 0 RA3 GY73 GC 23 RA RA10 GC6 24 TO A GV2 25 26 27 30 @)Ind =3 31 RJ RJ MJ RA GV2l GS12 0 RA3 GV11 GV7 GY56 GC1 TO RAID GV2 32 RA RAID GC6 33 @ Ind 34 =4 35 MJ RA 0 RA3 GY67 GC4 RA RAID GC36 36 TO A GV2 37 RJ CA GV2l GY40 GV1l =1 @Ind =2 LQ 2 GS 25 Generate Subscript Instructions Next word from Expanded List to temp 6 Indicator from Ope code of word to "u" of A IMJ I INDICATOR I 00000 ~ A Search list for indicator Jrunp according to indicator 1nd = 0 1nd = 1 1nd = 2 1nd = 3 1nd = 4 1nd = 5 Ind = 6 1nd = 7 Adv. current reI. address by 3 in "un and "v" To R7 Adv. current reI. address by 2 in "un and "v" Adv. current reI. address by 4 in "un and "v" Adv. add. in Exp. List by 1~ Add. of P.R. value Add. of word following last subs. in Exp. List --+ "u" of TP To R4 To R2 Adv. current reI. address by 3 in "u" and ttv" Add. of last S.S. in Exp. List ~ "u" of TP Adv. Add. in Exp. List by 1--. add. of P.R. value Adv. current reI. address by 5 in "un and "v" Adv. Add. in Exp. List by 2 ~ Add. of P.R. value Add. of word following last S.S. in Exp. List ~ "un of TP To R4 1410 @Ind = !:l @Ind =6 @ @Ind =7 @ @ @ IA RJ GY40 GS12 40 41 42 MJ 0 RA RA3 GV7 GY55 GC 43 RA RAIO GC36 44 SS GC6 0 45 TU A GV2 46 47 MJ RA 0 RA3 GY66 GC5 50 RA RAIO GC37 51 TU A GV2 52 53 54 55 56 57 60 61 62 RJ RJ RJ RJ RJ MJ RA RA GV21 GS12 GS12 GS12 TT3 S1 0 RA3 RAIO GVll GV7 GV GV TT2 S1l GY70 GC4 GC37 63 SS GC6 0 64 TU A GV2 65 66 67 70 RJ RJ RJ GS12 GS12 GS12 RAIO GV 71 72 73 74 75 76 77 TP TU TP RA RJ RJ TP RJ MJ CA GV GV GY71 [30000J TT6 RAIO GC6 GS12 GV22 GS12 GV27 1142 TT2 ZZ2 ZZ13 ZZ22 0 GYIOO Generate Subscript Ins. (cont.) To R2 Adv. current reI. address by 4 in "un and !'v'! Adv. add. in Exp. List by 2 ~ Add. of P.R. value Dec. "un of A by one ~ Add. last subs. in Exp. List. Add. of last S.S. in Exp. List ~ "u" of TP Adv. current reI. address by 6 in "u" and "v" Adv. add. in Exp. List by 3 - + Add. of P.R. value Add. of word following last S.S. in Exp. List - + "u" of TP To R4 To R2 To Rl To Rl Generated [SA - OJ inst - + temp 2 Store inst. in temp 2 in routine image Adv. current reI. add. by 5 in "u" and "v" Adv. add. in Exp. List by 3~ add. of P.R. value Dec. "u" of A by one ---+ add. of last S.S. in Exp. list Add. of last S.S. in Exp. List ~ "u" of TP To Rl To Rl To Rl Add of P.R. value in Exp. List--+ "u" of N1 P.R. value =+ "v" of temp 6 Adv. add. in Exp. List by 1 in "u" To R5 To R6 [TP A 30000J ~ Temp 2 1411 @Fixed 0 aad. 1 2 @Fixed 3 ~bt. 4 Fixed 5 ® multo 6 7 10 11 12 (32) 'ttl"xed div. 13 14 15 16 17 20 IA TP RJ MJ TP MJ RJ TP ZJ GZ RJ MJ RJ RA RJ GT27 GZ53 0 1113 0 GS5 1124 GZ12 0 GTI3 RA3 SI TP 0 II37 RJ RA GZ53 RA3 MJ RJ TP TP RP EJ @ 26 TP Fixed 27 MJ Unary r-3""-0--TP minus J 31 RJ Fixeo- 32 ZJ 21 22 23 24 25 abs. va 1. 1112 SI 1141 TTl [30000J XA II3l 0 1144 GS5 GZ34 33 RJ GT27 34 35 36 TV IT6 TT3 GZ40 ZZ22 TT3 GZI GS TT2 GZlO GT21 GZ12 GT5 GC3 SII GY75 TT3 GZ40 GC3 SII TI2 A GE ZZ22 TT2 GZ3l TT2 GS GZ33 GT2l TIl TP TTl A MJ 0 NZ CA GZ37 Generate Fixed Point Inst. [At 30000 A] --+ Temp 3 To Zl EST 30000 A] -+ Temp 3 Next word from Expanded List to temp 6 [MP A 30000J ~ temp 2 Check indicator from OPe code of word in temp 6 Indicator = 0 (to S33) Indicator = 1 (to S29) Adv. current relative address by one Store inst. in temp 2 in routine image [DV 30000 A] -+ temp 3 To ZI Adv. current reI. address by 1 in "u" and .tv" Store inst. in temp 2 in routine image [TP Q A] --+ temp 2 Partial result symbol -+ "A" register Is partial result symbol in "A" List? tes ~ ZZ~; No -+ GE LTN A AJ -+ temp 2 LrM A A] -+ temp 2 Next word from Expanded List to temp 6 Check Indicator from OPe code of word in temp 6 Indicator = O. (to S33) Ind. = 1; P.R. symbol -+ ttv" of temp 1 P.R. - + ttv" of A 1412 IA RJ ZJ GZ40 G55 GZ54 G5 GZ42 43 44 RA 5P TD RA3 IT5 A GC3 17 TT 45 46 RJ GT27 GT22 TO A TI3 47 50 51 52 53 54 55 56 TP RJ TP RJ MJ TJ TP RJ III G512 ZZ13 51 511 57 TD TI5 TT 60 61 62 63 64 65 RA RA3 1112 GT27 GC3 TT2 GT22 MJ 0 GZ52 5P TI5 TO A 17 TT 40 41 Ind - o (39) Ynd = 2 Ind 1 = 42 66 67 TP RJ TT3 0 GC14 II31 TP TI3 MJ 0 CA GZ70 TT2 GT17 TT2 ZZ [30000] GZ64 TT2 TT2 GZ62 Next word from Expanded List to temp 6 Check indicator in op~ code of word (to GZ42 if ind = 0) Adv. current relative address by one Operand symbol from "v" of temp 5 to tlu" of temp 0 To 534 Operand or temp cal1word to "uti of temp 3 [TP - 30000 A] ~ to temp 2 To 532A Instruction from temp 3 to temp 2 To GZ64 if indicator = 1 Ind = 2; [TN A A] to temp 2 Store instruction in temp 2 in routine image Operand symbol from "uti of temp 5 to "u" of temp a Advance current relative address by one [AT 30000 A] -+ temp 2 To S34 Ind = 1 Operand symbol from "v" of temp 5 to "u" of temp a Instruction from temp 3 to temp 2 1413 3 IA RP EJ RA RJ 4 5 o RA3 SI NZll NZ2 GC3 SII TP 1131 TT4 TP TP TT2 RJ 1142 TTl NZ21 NZ21 10 MJ o GE 11 RJ NZ21 NZ21 12 RA RA6 GC3 13 TJ RA7 NZ15 14 TP A RA7 TV A Tr2 17 RA RJ RA3 SI GC3 SII 20 21 MJ RP 22 23 24 25 EJ TP SS SA RL NZ23 RA2 A Q RA5 0 26 27 TV A MJ TT2 NZ16 1 2 6 7 15 16 ® NZ [30000J GA XA A o GE [30000] [30000] o 0 Is partial result symbol in "A" List? Yes -+ NZ2; no ~ NZII Advance current relative address by one Store instruction in temp 2 in routine image Set register indicator to "A" in "u" and "v" [TP A 30000] ---+ temp 2 Partial result symbol ~ "v" of A To Z2 (search Redundant P.R. List for P.R.) Exi t - P.R. in "An Li st and not in Redundant P.R. List To Z2 (search Red. P.R. List when P.R. not in "A" List) Advance current reusable temp callword by one Is highest temp callword used> current callword? No; retain current temp callword as highest used Reusable temp callword -+ "v" of temp 2 Advance current relative address by one Store instruction in temp 2 in routine image Is partial result symbol in Redundant P.R. List? Yes ---+ NZ23; No ---+ repeat exit j n --+ "u" & "Vlt of A jn - (jn - r) ~"v" of A Base redundancy temp callword + r --.. trv" of A Redundancy temp callword to trv" of temp 2 NZ30 1414 @ @ IA 0 1 2 3 @ @ ® 1V MJ TV TV TP ZZ GZ25 0 GC22 TT6 ITl [30000J RL RA2 Q RA5 ZZ15 ZZ3 ZZ15 TTl 4 5 6 7 10 11 RP EJ TP SS SA 12 TV 13 14 15 16 MJ 17 20 TJ TP RA7 A ZZ2l RA7 21 22 23 24 TV RA RJ TP A RA3 SI 1131 TT2 GC3 SII TT4 25 MJ CA 0 ZZ26 GE A Partial result symbol to "v" of temp 1 P.R. symbol -+ nv u of A Is P.R. in Redundant P.R. List? Yes to ZZ7 ; no to ZZ14 j n ~ "u" and "v" of A jn - (jn - r)~ "v" of A Base redundancy temp. callword + r --+ ttv" of A Redundancy temp. callword ~ ?Iv" of temp 2 Exit Is partial result symbol in "A" List? No to ZZ16 Adv. current reusable temp callword by one Is highest temp used > current temp? No, retain current temp callword as highest used Current temp. callword --+ "v" of temp 2 Advance current relative address by one Store inst. in temp. 2 in routine image Set register indicator to "A" in "utI and "v" A ZZ14 ZZ7 A 0 0 TT2 0 [30000J RP [30000J ZZ16 EJ XA [30000J RA RA6 GC3 1415 ~Fl. @us 41 Flo subt. @Fl. mult. ~Fl. Ivide @ @) @ 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 lA TP MJ TP MJ TP MJ TP RJ LQ AT RP TJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ CA GF lI20 0 lI21 0 1122 0 lI23 GS5 A 1116 30047 GF14 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 GF40 TT3 GF7 TT3 GF7 TT3 GF7 TT3 GS 25 A GF63 GF14 GG GG6 GGI0 GG15 GG17 GG41 GG55 GG46 GG50 GH GH5 GHI0 GH14 GH21 GH24 GH40 GH45 GH50 GH56 GH66 Generate Floating Point Inst. [F A 30000 30000J ~ temp 3 30000 30000J ~ temp 3 [FM 30000 30000J -+ temp 3 [FS [FD 30000 30000J - + temp 3 Next word from Expanded List to temp 6 Indicator from OPe code of word to "u" of A I MJ I INDICATOR I 00000 I~ A Search list for indicator Jump according to indicator Ind. = 0 Ind. = 1 Ind. = 2 Ind. = 3 Ind. = 4 Ind. = 5 Ind. = 6 Ind. = 7 Ind. = 10 Ind. = 11 Ind. = 12 Ind. = 13 Ind. = 14 Ind. == 15 Ind. = 16 Ind. = 17 Ind. = 20 Ind. = 21 Ind. = 22 Ind. = 23 1416 ® @) 40 41 42 IA MJ MJ MJ q.:> .to") iv1J 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ CA GF40 24 25 26 n.., ~l 30 31 32 33 34 35 36 40 42 43 44 45 46 47 50 51 GF64 GH72 GJ GJ6 GJil GJ20 GJ27 GJ32 GI GI7 GI13 GI21 GI25 GI33 GI36 GI43 GI50 GI54 GI61 GI65 GI71 Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= Ind.= 1417 24 25 26 27 30 31 32 33 34 35 36 40 42 43 44 45 46 47 50 51 @)Ind =0 @Ind =1 @)Ind =2 @)Ind =3 @)Ind =4 @ @ 0 1 IA RJ RA G512 RA3 GC 2 3 4 5 6 7 10 11 RJ RJ RJ MJ RJ MJ RJ RA G512 G512 G512 0 GS12 0 G512 RA3 G56 G527 GT2 GK G545 GGI G542 GCl 12 13 14 15 16 17 RJ RJ MJ RJ MJ RA GS12 G512 G512 0 RA3 G532 GT60 GK G545 GGll GC 20 21 22 23 24 25 26 27 30 31 32 33 34 TP EJ RJ RJ RJ RJ MJ RJ TP RJ TP LQ 1121 TT3 G512 G512 G512 G512 0 GS12 115 G512 II6 TT6 RA3 A GG27 GS42 G56 GS27 GT70 GK GS60 TT2 G57 TT2 25 TI2 35 36 37 RJ G512 1140 51 GG40 GV4 Tr2 511 TO TP RJ CA Generate Floating Point (cont.) To 511 Adv. current reI. add. by 4 in "un and "v" To 52 To 56 To 528 GG 0 G542 To 512 To 511 Adv. current reI. add. by 3 in "u" and "v" To 57 To 544 To 512 Adv. current reI. add. by 4 in "u" and "v" [!s 30000 30000] -+ A Is floating subtract inst. in temp 31 No; to 511 To 52 To 56 To 546 To S16 A 30000J ~ temp 2 To 52A 30000 30000J ~ temp 2 lIlA [TV Current relative address to "u" of temp 2 To R3 [fA Q 30oo0J ~ temp 2 5tore inst. in temp 2 in routine image 1418 @Ind =5 58 Ind ~ = IA MJ RA GG40 0 RA3 42 43 44 45 46 RJ RJ RJ MJ RA GS12 GS62 G512 G532 G512 GT64 0 [30oo0J RA3 GC2 47 50 MJ RA 0 RA3 GG43 GC1 51 52 53 54 55 56 57 RJ RJ RJ MJ TP EJ RA G512 G512 G512 0 II21 IT3 RA3 G562 G532 GT52 GG45 A GG64 GC1 60 61 62 63 64 RJ RJ RJ MJ RA G512 G512 G512 0 RA3 G542 G532 GT50 GK 65 66 67 70 71 72 RJ RJ RJ LQ GS12 G512 G512 II40 TI5 TV Q G560 G570 G532 TI3 25 TI3 73 74 RJ MJ CA G512 0 GG75 40 41 GK Gel 7 @)Ind = 10 @Ind =6 @ TP GC GT43 GK Adv. current reI. address by 3 in "u" and "v" To S17 To 57 To 545 5witch0 Adv. current reI. address by 2 in flU" and "v" Adv. current reI. address by 3 in "u" and "v" To 517 To 57 To 542 To switch@ lIs 30000 30000J -+ A Is floating subt. inst. in temp 31 No, advance current relative address by three To 511 To 57 To 541 Adv. current reI. address by 4 in "un and "v" To 516 To S20 To 57 {fA Q 30000 ] ~ temp 3 Operand symbol from "u" of temp 5 to "v" of temp 3 To 539A 1419 IA RA GH RA3 Gel 2 3 4 5 RJ RJ RJ MJ RA G512 G512 G5l2 0 RA3 G513 GT73 GT16 GG45 GC3 6 7 10 RJ MJ RA G512 0 RA3 GT54 GK3 GC1 @Ind 11 12 13 14 RJ RJ MJ RA G512 G512 0 RA3 G513 G527 GH3 Gel RJ RJ RJ MJ @Ind 15 16 17 20 21 GS12 G512 G512 0 RA3 G513 GT73 GT30 GG45 GC3 22 23 24 25 26 RJ MJ EJ RA G512 0 1121 TI3 RA3 GT33 GK3 A GH31 GC3 27 30 31 RJ MJ RA G512 0 RA3 GT36 GK3 GC2 32 33 34 RJ TP LQ G512 1140 G560 TT2 25 35 36 37 RJ RJ MJ CA GTl3 51 0 GH40 @)Ind 0 @)Ind = 11 1 = 12 (§ Ind = 13 = 14 = 15 @Ind = 16 @ RA TP ITS GT5 511 GK3 Generate Floating Point (cont.) Adv. current reI. address by 3 in "u" and "v" To 53 To 547 To 532 To switch@ Adv. current reI. address by 1 in "uti and ttv" To 543 Adv. current reI. address by 3 in "u" and ttv" To 53 To 56 Adv. current reI. address by 3 in "u" and "v" To 53 To 547 To 535 To switCh0 Adv. current reI. address by 1 in "u" and "v" To 536 [f5 30000 30000J ~ A Is floating subt. inst. in temp 3? No, advance current relative address by one To 537 Adv. current reI. address by 2 in "u" and "v" To 516 [fA Q 30000J ~ temp 2 Operand symbol from "uti of temp 5 to "v" of temp 5 To 529 Store inst in temp 2 in routine image 1420 @Ind -- IA RA GH40 RA3 41 42 43 44 45 RJ RJ RJ GS12 GS12 GS12 0 )lA3 46 47 50 RJ MJ RA GS12 51 52 53 54 55 56 57 60 61 62 63 64 65 66 40 Generate Floating Point (cont.) Adv. current reI. address by 4 in "un GC and "v" 17 L' @Ind = 20 @Ind = 21 @Ind = 22 @Ind = 23 @Ind = 24 MJ RA GS42 GS47 GS32 GH54 To Sll To S13 To S7 GC Adv. current reI. address by 4 in "un and ttv" To S12 0 GS45 GH42 RA3 GC RJ RJ RJ RJ MJ RA GS12 GS12 GS12 GS12 0 RA3 GS35 GS42 GS40 GT41 GG45 GC5 RJ RJ RJ RJ RJ RJ GS12 GS12 GS12 GS12 GS12 GS12 0 RA3 GS42 GS47 G56 GS13 G527 GT14 GG45 GC5 GS12 GS12 0 RA3 G545 GS47 GH61 GC5 GS12 GS12 GS12 GS12 0 GH100 GS6 GS53 GS17 GS42 GH63 MJ RA 67 70 71 72 RJ RJ MJ 73 74 75 76 77 RJ RJ RJ RJ MJ RA CA Adv. current reI. address by 4 in "u" and "v" To S9 To S11 To SID To S38 To switch@ Adv. current reI. address by 6 in "uti and "v" To S11 To 513 To S2 To S3 To S6 To 531 To switCh@ Adv. current reI. address by 6 in "un and IlV" To S12 To S13 Adv. current reI. address by 6 in "u" and ttv" To S2 To S14 To S4 To S11 1421 0 RA GI RA3 GC4 1 2 3 4 5 6 7 RJ RJ RJ RJ RJ MJ RA G512 G512 G512 G512 GS12 0 RA3 GS6 G542 G513 G527 GT14 GG45 GC4 10 11 12 13 RJ RJ MJ RA G512 G512 0 RA3 G56 G545 GI3 GC 14 15 16 17 20 21 RJ RJ RJ RJ G512 G512 GS12 G512 0 RA3 G572 G542 G532 GT46 GG45 GC GS12 G512 0 RA3 G512 G512 G512 G512 0 RA3 G572 G545 GI16 GC G523 G562 GS32 GT42 GG45 GC1 G512 0 RA3 G523 Gl30 GC1 IA @Ind = 33 @Ind = 34 @Ind = 35 @Ind = 36 @Ind = 40 @Ind = 42 @)Ind = 43 MJ RA 22 23 24 25 26 27 30 31 32 33 RJ RJ 34 35 36 RJ 37 CA RJ G512 Gl40 MJ RA RJ RJ RJ RJ MJ RA MJ RA G56 Generate Floating Pt. (Function 61--- type) Adv. current reI. add. by 5 in "un and "v" To 52 To 511 To 53 To 56 To 531 To switch@ Adv. current reI. add. by 5 in "u" and "v" To 52 To 512 Adv.current reI. add. by 4 in "u" and ttv" To 521 To 511 To 57 To 540 To switch@ Adv. current reI. add. by 4 in "u" and "v" To 521 To 512 Adv. current reI. add. 4 in "u" and "v" To 58 To 517 To 57 To 539 To switch@ Adv. current reI. add. by 3 in "uti and "v" To 58 Adv. current reI. add. by 3 in "utI and "v" To 52 1422 40 ~ 1nd = 44 tAA\ -T....... nri '\::..Y = 45 @1nd = 46 @Ind = 47 @)1nd 41 IA RJ RJ CA GI40 Gen. Fl. Pt. (Function 61--- Type) (cont.) G512 G513 To 53 G512 GT14 To 531 0 5witch{B) [30000J '-" RA3 GC Adv. current reI. add. by 4 in "un and "v" G512 G56 To 52 G512 G513 To 53 G512 GT73 To 547 G864 0 A;I... ..... _""........_, .... in "Uff & "v" GC2 nu.v. \iULLClll, L-CL • aUU.U'y G512 G56 To 52 G512 GT2 To 528 GK3 0 RA3 GC Adv. current reI. add. by 4 in "u" and "v" G512 G56 To 52 G512 G513 To 53 G512 G527 To 56 G864 0 RA3 GC2 Adv. current reI. add. by 2 in "u" and ttv" G512 G513 To 53 G512 GT16 To 535 0 GI42 To switch@ RA3 GC2 Adv. current reI. add. by 2 in "un and "v" G512 G513 To 52 G512 GT30 To 519 0 GI42 To switch@) I121 A [F5 30000 30000J -+ A TT3 GI77 Is floating subtract inst. in temp 3? RA3 GC2 No, advance current relative address by two G512 G56 To 52 G512 GT70 To 546 GK3 0 RA3 Gel Adv. current reI. add. by 3 in "u" and "v" GI100 1A RJ RJ TP RJ GII00 G512 G512 1140 51 MJ CA GK3 0 GII05 42 43 MJ 44 45 46 47 RJ RJ RJ MJ ~(\ 0/\ .... 51 52 53 54 RJ RJ MJ 55 56 57 60 61 RJ RJ RJ MJ RA 62 63 64 65 RJ RJ MJ RA 66 67 70 71 72 73 RJ RJ MJ EJ RA 74 75 76 77 RJ RJ MJ RA vv RA ~ RA =50 @1nd = 51 @) 100 101 102 103 104 TP O/\~ ~ ~v _...1...1 t... •• 1"1 ~ To 523 To 516 [FA Q 30oo0J ~temp 2 Store instruction in temp 2 in routine image G5101 G560 TI2 STl J.l. 1423 0 IA RA GJ RA3 RJ RJ RJ RJ MJ RA GS12 GS12 GS12 GS12 ®Ind 1 2 3 4 5 6 RJ MJ RA G512 @Ind 7 10 11 0 RA3 G545 GJ2 GC4 @Ind 12 13 14 15 16 17 20 RJ RJ RJ RJ RJ MJ RA G512 G512 GS12 G512 G512 0 RA3 G532 GS6 G542 G527 GT42 GG45 GC4 RJ RJ RJ RJ RJ GS12 G512 G512 G512 G512 (§ Ind 21 22 23 24 25 26 27 @Ind ® Ind = 25 = 26 = 27 = 30 = 31 = 32 0 RA3 GC4 GS42 G547 G523 GS32 GJ16 GC4 MJ 0 RA RA3 G542 GS47 GS72 G532 GT46 GG45 GC4 30 31 32 RJ MJ G512 0 RA3 G545 GJ22 GC4 33 34 35 36 37 RJ G512 G512 G512 GS12 0 GJ40 G572 GS35 G542 G540 GJ25 RA RJ RJ RJ MJ CA Generate Floating Point (cont.) Adv. current reI. address by 5 in "u" and ttv" To S11 To 513 To 58 To 57 Adv. current reI. address by 5 in "u't and "v" To 512 Adv. current reI. address by 5 in "un and "v tl To 57 To 52 To 511 To 56 To 539 To switch@ Adv. current reI. address by 5 in tlu" and tlv" To S11 To 513 To 521 To 57 To 540 . To 5witCh@ Adv. current reI. address by 5 in "uti and "v" To 512 Adv. current reI. address by 5 in "uti and "v" To 521 To 59 To 511 To 510 1424 ® @ o IA TU GK RA10 GK2 1 RA RA10 GC6 2 TV 3 TP 1133 TT4 4 TP 5 RJ 6 7 TP EJ 10 RA II41 GK34 TT3 II41 RA3 TT3 GK13 A GK12 GC3 11 RJ GS12 GT14 12 13 MJ TV o 'IT6 GE TTl 14 TU RA2 GK16 15 16 TP RP 17 20 21 EJ 22 23 24 25 26 27 30 TP SS SA TV MJ TU . RP ,EJ RA [3Ooo0J TT6 TTl A [3Ooo0J GK25 RL RA2 Q RA5 GK20 A o Partial result symbol from "v" of temp 6 to "v" of temp 1 Preset repeat to search Redundant P.R. List Partial result symbol to "v" of A Is partial result symbol in Redundant P.R. List? Yes. to GK20; no, to GK25 jn to "un and "v" of A jn - (jn- r) to "v tf of A o IT3 GK34 RA GK26 [30oo0J GK30 XQ GK34 RA6 GC3 Base redundancy temp cal1word + r to "v" of A Redundancy temp callword to "v" of A o 31 TJ RA7 GK33 32 TP A RA7 33 TV A 34 MJ A Generate Floating Point (cont.) Address of next word in Expanded List ~ "un of TV Advance address in Expanded List by 1 in "u ff Partial result symbol from Expanded List to "v" of temp 6 Set register indicator to "Q" in "un and "v" [TP Q AJ ~ temp 3 To K1 Inst. in temp 3 -+ A Is inst. in temp 3 = [TP Q AJ? No; advance current relative address by one To S31 (store instruction in temp 3 in routine image) o TT3 [30000 temp 3 Preset repeat to search "Q" List Is partial result symbol in "Q" List? Yes, to GK34; no, to GK30 Advance current reusable temp ca1lword by one Is highest temp ca11word used > current ca11word? No, retain current temp cal1word as highest used Reusable temp ca11word to "v" of temp 3 Exit GK35 1425 ~Lib. 0 IA TP GL GC7 Q 1 QT IT5 TI7 2 3 TP GC32 TT7 A TT10 p. ~ ~Q AT 4 5 RA TT7 RA3 GL16 GC3 6 7 TP SP m4 TT5 IT2 TO A IT5 SI 1143 SI 10 11 12 13 14 15 16 17 @ Generate Library Routine Reference Mask for rightmost octal digit of ttv" 20 21 22 23 24 25 26 27 30 31 IJ TV RJ TP RJ MJ RJ LQ AT RP TJ MJ MJ MJ MJ MJ MJ MJ CA 17 TT2 TI2 SI1 TI2 SI1 0 GS5 A GK GS 25 1116 30006 GL23 0 1 2 3 4 5 33 GL32 A GL31 GL23 GM GM12 GM17 GM25 GM30 GM43 GM46 Nwmber of argwments for library routine to temp 7 [10 0 3J ~A Set 10 line counter -'10 line for last argument Have all argwments been generated? Yes, advance current relative address by one [RJ _ _ ] -+ temp 2 Library routine call word from "v" of temp 5 to "u" of A Library ca11word to "un of RJ in temp 2 Library callword to "v" of RJ in temp 2 Store inst. in temp 2 in routine image [10 00002 OooooJ to temp 2 Store "10" line in temp 2 in routine image Next word from Expanded List to temp 6 Indicator from OPe code of word to "un of A IMJ I indicat_C?r I 000001 to "A" register Search list for indicator Jump according to indicator 1nd.= 0 1nd.= 1 1nd.= 2 Ind.= 3 1nd.= 4 1nd.= 5 Ind.= 33 1426 ~Ind 0 IA RA GM RA3 GC3 1 TP III 2 TV TT5 TT2 TT2 3 TU TT6 TT 4 RJ RJ TP RJ GT27 GT22 5 6 7 10 RS 11 12 MJ RA 13 14 SI SI1 TT10 TT2 SI SI1 TI10 RA3 GC11 GL4 GC3 TU TIl TT4 TT2 TT2 15 TV TI5 TT2 16 Ind 17 MJ RA o RA3 GM5 GC 20 21 22 23 C)., 24 ~ Ind 25 =3 26 27 Ind 30 RJ RJ RJ TP 31 32 33 34 RJ RJ TP TU III TT6 GS56 GS32 TT3 TT3 35 TV TIS TT3 36 RJ GS12 GT43 37 TP TrIO GM40 TT3 @ Ind o = 1 @ TP = 2 @ = Ll @ MJ o GS56 GS106 GS27 TT2 GM15 RA RA3 GC RJ MJ RA GS12 GS45 GM21 GC1 CA GS12 GS12 GS12 III o RA3 GS12 GS12 Generate Library Routine Ref. (cont.) Adv. current reI. add. by 1 in "un and ltv" ITP 30000 A] --+ temp 2 Library routine ca11word to "v" of TP inst. in temp 2 Argument ca11word from "u" of temp 6 to "u" of temp 1 To S34 Store inst. in temp 2 in routine image "10" line for araument to temn 2 Store "10 line" in te~p-2 fn- ~outine image Decrease "10" line counter by one Adv. current reI. add. by 1 in "u" and "v" [P 30000 A] ~ temp 2 "u" of register indicator to "u" of TP inst. in temp 2 Library routine ca11word to ttv" of TP inst. in temp 2 Adv. current reI. add. by 4 in "un and "v" To SIS To S2 To 56 ITP 30000 A] -+ temp 2 Adv. current reI. address by 4 in "u" and ttv" To S12 Adv. current reI. address by 3 in "u" and "v" To 515 To 57 ITP 30000 A] -+ temp 3 Argument ca11word to "u" of TP inst. in temp 3 Library routine ca11word to "v" of TP inst. in temp 3 To S39A (inst. in temp 3 to relative constant image) "10" line for argument to temp 3 1427 40 1A RJ GM40 51 5112 ~Ind 41 42 43 R5 MJ RA lilO 0 RA3 GCll GL4 Gel RJ ~3Ind 44 45 46 RA G512 0 RA3 G545 GM32 GC2 47 50 RJ MJ CA G512 0 GM51 G5106 GM23 MJ "10" line in temp 3 to relative constant image Decrease "10" line counter by one Adv. current reI. add. by 3 in "un and ttv" To 512 Adv. current reI. add. by 2 in "uti and "v" To 525 1428 o IA TP GN o GN3 TP II2 TI3 RJ GS5 A GS 25 --- MJ 1 LQ AT IT3 TT3 TJ II16 A 30006 GN16 GNIO GNI0 'A ILfT 1'1" V 11 12 13 14 15 16 MJ 1 MJ 2 3 ~ Ind ~~ MJ MJ MJ MJ RJ RA 12 15 45 GS12 RA3 GN26 GN30 GN37 GN41 GN45 GN47 GV36 GC 21 22 23 24 RJ RJ RJ RJ GS12 GS12 GN56 GS12 GS6 GS27 GN52 GT14 ~~ MJ o RJ GS12 30 31 R.l RA GS12 RA3 GE GS45 GN20 GS36 Gel 32 RJ GS12 GS32 33 TO TI5 IT3 34 35 RJ RJ GN56 GS12 GN52 GT43 36 MJ RJ o GE GS45 RP ~v ~ 25 Ind @ Ind - 2 ~ Ind 37 MJ CA A o GS12 GN40 I"'1\T, '7 U1"l~1 Generate Floating Neg. and Abs. Value ITN 30000 Q] ~ temp 3 rTM 30000 Ql-+ temp 3 Next word from Expanded List to temp 6 Indicator from OPe code of word to "uti of A Form IMJ I indicator I 000001 in A Search list for indicator Jump according to indicator T ... A '&'11"'. - {\ V Ind. = 1 Ind. = 2 Ind. = 3 Ind.= 12 Ind. = 15 Ind. = 45 To S48 Adv. current reI. address by 4 in "u" and ttv" To S7 To S6 To NI To S31 (store instruction in temp 3 in routine image) To S12 To S48 Adv. current reI. address by 3 in "u" and ttv" To S7 Operand cal1word from "u" of temp 5 to "uti of temp 3 To@) To S39A (inst. from temp 3 to relative constant image) To S12 1429 40 @Ind 41 42 = 12 Ind 15 = Ind 45 = @ 43 44 45 46 47 50 51 52 53 54 55 56 IA MJ RJ TO RA MJ TO MJ RA RJ MJ RJ TV SP ill MJ CA GN40 0 GT27 TT2 GN31 GT21 'IT 3 Gen. Fl. Neg. and Abs. Val. (cont.) RA3 0 TT4 GC3 GN23 TT3 0 RA3 GS12 0 GK34 'IT 3 TT3 A 0 GN57 GN43 GC2 GS6 GN23 GK13 TT4 17 TT4 [30000 To S33 Operand or temp callword to "u" of temp 3 Advance current relative address by one "un of register indicator to "u" of temp 3 Advance current relative address by two To S2 To Kl Set "v" of register indicator Set "un of register indicator 1430 @POW 0 §POW -2 ,;;. @ IA RJ 1 MJ I) RJ RJ 3 4 5 6 MJ RJ LQ GP GP65 0 GP65 G512 0 G55 A GU GK3 G5 25 II16 30005 GP12 0 4 5 10 11 33 RA3 A GP17 GP12 GP20 GP23 GP35 GP46 GP57 GP61 GC3 G512 0 RA3 G034 GP65 GC G512 G512 G512 1122 GV36 GU54 G532 IT3 TI3 ~Ind ~Ind 21 22 23 RA 24 25 26 27 30 RJ RJ RJ TP To ITS 31 32 LQ TIS TV Q 25 TI3 33 RJ G512 GT43 34 35 MJ RA 0 HA3 GP65 GC1 36 37 RJ RJ G512 G512 GP40 GU24 G521 ~Ind AT RJ MJ CA V P2 To 549 ("'DE! '1' .... \:11.~ 7 10 11 12 13 14 15 16 17 20 RP TJ MJ MJ MJ MJ MJ MJ RA Generate Int. Power Inst. To P2 GP5 GK3 .1. Next word from Expanded List to temp 6 Indicator from OPe code of word to "uti of A Form IMJ I indicator I 000001 in itA" Search list for indicator Jump according to indicator Ind. = 0 Ind. = 4 Ind. = 5 Ind. = 10 Ind. = 11 Ind. = 33 Adv. current reI. address by 1 in "u" and ttv" To 556 Adv. current reI. address by 4 in "u" and ttv" To 548 To 559 To 57 [fM 30000 30000J -+ temp 3 Operand ca11word to "u ll of FM inst. in temp 3 5ame ca11word to ttv" of FM inst. in temp 3 To 539A (inst. from temp 3 to relative constant image) Advance current reI. address by 3 in "u" and "v" To 554 To 55 1431 40 41 ~oInd ~/nd ~3Ind IA RJ RA GP40 GS12 RA3 GS64 GC3 TP RJ RJ TI2 SII GU27 GP65 GS66 GC 42 43 44 45 46 47 RJ RA I134 SI GU33 0 GS12 RA3 50 51 52 53 RJ RJ RJ RA GS12 GS12 GS12 RA3 GS76 GS21 GS64 GC3 54 55 TP RJ I134 Sf TI2 Sfl 56 57 MJ RA 0 RA3 GP65 GCl 60 61 RA 0 RA3 GP50 GCl GS12 GS12 GS12 0 GP66 GS6 GSIOI GU52 [30000J 62 63 64 65 MJ MJ RJ RJ RJ MJ CA Generate Int. Power Inst. (cont.) To S18 Adv. current reI. address by 1 in "un and ttv" lfM A A] to temp 2 Store inst. in temp 2 in routine image To S55 To S19 Adv. current reI. address by 4 in "u" and "v" To 522 To 55 To S18 Adv. current reI. address by 1 in "u" and ttv" [fM A A] to temp 2 Store instruction in temp 2 in routine image Adv. current reI. address by 3 in ttu" and ttv" Adv. current reI. address by 3 in "u" and "v" To S2 To S23 To S58 Exit 1432 ~ 3 POW ~ 13 POW 2 ® 3 4 5 6 o GK3 RJ RJ MJ RJ GQ54 GS12 o GQ5 GU GK3 LQ A GS 25 A GS5 III 6 RP TJ MJ MJ 30005 GQ17 GQ12 GQ12 o GQ20 4 GQ25 GQ34 5 10 GQ42 GQ46 11 33 GQ51 Ge2 RA3 14 15 16 17 20 MJ MJ MJ MJ RA 21 22 RJ 'ill GS12 1133 TT2 23 RJ S1 SII 24 25 MJ RA o RA3 GQ54 Gel 26 27 30 RJ RJ RJ RA GS12 GS12 GS12 RA3 GV36 RJ MJ RA GS12 GUI0 GQ55 Gel = it 31 32 ~ Ind M-3 AT 13 @ Ind GQ5 7 11 ~Ind GQ GQ54 10 12 @ 1A RJ 33 34 35 36 37 RJ RJ RJ CA o RA3 GS12 GU33 GS12 GQ40 GU34 GS32 GU14 GC2 GU24 GU27 GS21 Generate Int. Power Inst. (cont.) To P3 To P3 To S49 Next word from Expanded List to temp 6 Indicator from OPe code of word to .t u" of A ~~________~__~ Form IMJ I indicator 1000001 in flA" Search list for indicator Jwmp according to indicator Ind.= 0 Ind.= 4 Ind.= 5 Ind.= 10 Ind.= 11 Ind.= 33 Adv. current reI. address by 2 in "u" and "v" To 556 "Q" address to "u" of instruction in temp 2 Store instruction in temp 2 in routine image Adv. current reI. address by 3 in "u" and "v" To S48 To S7 To S52 Advance current reI. address by 2 in "uti and "v" To S51 Adv. current reI. address by 3 in "u" and flv" To S54 To S55 To 55 1433 Ind IA RJ GU20 GQ31 RA GQ40 G512 0 RA3 = 43 44 45 46 RJ RJ MJ RA G512 G512 0 RA3 G566 G576 GQ37 GCl RJ = 47 50 51 RA G512 0 RA3 GS76 GQ37 GC2 52 53 54 55 56 RJ MJ MJ RJ MJ CA GS12 0 0 G512 0 GQ57 G56 GQ40 [30oo0J GU4 GQ54 = 40 41 42 MJ GC 10 Ind 11 Ind 33 MJ Generate Int. Power Inst. (cont.) To 553 Adv. current reI. address by 4 in "un and "v" To 519 To 522 Adv. current reI. address by 3 in "u" and ttv" To S22 Adv. current reI. address by 2 in "u" and "v" To 52 Exit To 550 1434 @POW 0 -1 1 IA RJ LQ GR GS5 A 2 AT 3 4 5 RP TJ IT16 30006 6 MJ 7 10 MJ 11 !¥W 12 13 14 15 MJ 16 17 20 RJ RA 21 RA TP TV @ ~Ind ~ Ind = 22 23 24 SInd 25 = tt 26 27 30 31 ~ MJ MJ •• T MJ TP LQ GR5 0 1 4 5 10 11 33 II23 TT5 GT13 RA3 0 RA3 II23 GS 25 A GR13 GR5 GR14 GR21 GR25 GR36 GR50 GR53 GR57 TT2 25 TT4 GT5 GC3 GR45 GC3 TT2 TT2 RA 0 HA3 GR45 Gel RJ RJ TP GS12 GS12 II23 TT6 GS66 GS32 TT3 TT3 MJ MJ TO 32 33 TV TT5 Q 25 TT3 34 RJ GS12 GT43 35 MJ Ind 36 RA 0 RA3 GK3 GC1 II32 GR40 TT2 37 LQ TP CA Generate Int. Power Inst. (cont.) Next word from Expanded List to temp 6 Indicator from OPe code of word to "u" of A From IMJ I indicator !000001 to "A" Search list for indicator Jump according to indicator Ind.= 0 Ind.= 1 Ind.= 4 Ind.= 5 Ind.~ 10 Ind.= 11 Ind.= 33 [fD 30000 30000J -+ temp 2 Operand ca1lword from "u" of temp 5 to "v" of temp 5 To S29 Advance current relative address by one Advance current relative address by one 30000 30000J --+ temp 2 v" of register indicator -. "v" of temp 2 ~D Advance current relative address by three To S19 To S7 [FD 30000 30000J -+ temp 3 Constant cal1word for floating point one to "un of temp 3 Operand ca11word to "v" of FD inst. in temp 3 To S39A (inst. from temp 3 to relative constant image) Advance current relative address by three [?A 30000 OJ -+ temp 2 1435 40 m GR40 RA4 41 42 43 RJ RJ RJ SI GS12 GU33 44 TP IA TT2 sn 45 m TT6 GS17 GU27 Tr2 Tr2 46 47 RJ 50 RA SI 0 RA3 SI1 GK3 Gel 51 52 @Ind 53 MJ GS12 0 RA3 GS101 GR62 Gel GS12 GS12 0 RA3 GS1l4 GS17 GR44 GC2 m GS12 0 116 GT13 RA3 GS101 GR44 TT2 GT5 TT2 RJ S1 sn MJ 0 GR67 GR44 ill ~Ind - 0 MJ RJ RA 1123 - 11 54 55 RJ RJ 56 MJ @Ind 57 - 33 60 61 62 63 64 RA 65 66 RJ MJ TP RJ CA Gen. Int. Power Inst. (cont.) Relative constant callword to "un of temp 2 Store inst. in temp 2 in routine image To S4 To S55 [FD 30000 30000] --+ temp 2 Constant ca1lword for floating point one to "un of temp 2 Store inst. in temp 2 in routine image Adv. current reI. add. by 3 in "u" and "v" To S23 Adv. current reI. add. by 3 in and "v" To S26 To S4 flU" Adv. current reI. address by 2 in "un and "v" To S23 [RA 30000 3OO00J to temp 2 To S29 Current relative address to "un of temp 2 Store instruction in temp 2 in routine image 1436 @POW 0 ~~to 63)1 y.54) POW 2 (~4 to MJ o GWI0 RJ GWI0 GW5 GC6 GK 3 1U 4 RA RA10 5 6 RJ 7 10 RJ GW73 GW65 11 LQ A 25 AT TV n16 A 30005 GW22 GW15 GW15 o GW23 4 GW34 5 GW46 10 GW53 11 GW57 33 GW61 RA3 Gel G512 GU34 G512 GU42 1135 'IT2 'IT5 25 Q 'IT 1 RJ RJ GT13 51 34 RA o GT6 511 GW64 RA3 Gel 35 36 37 RJ RJ MJ G512 G512 GV36 G532 GW74 CA GW40 12 13 14 15 16 17 20 21 22 ~Ind ~~ 25 26 27 30 31 32 33 TP MJ RP TJ MJ MJ MJ MJ MJ MJ RA RJ RJ TP LQ MJ Generate Int. Power lnst. (cont.) To P4 GW GW64 GW64 HAlO -63) ~Ind IA RJ [30000J TT6 G512 GU o GK3 o To P4 Address of next word in Expanded List -+ "un of TP Advance address in Expanded List by 1 in "un Next word in Expanded List to temp 6 To 549 Next word from Expanded List to temp 6 Indicator from OPe code of next word to "un of A Form I MJ I indicator I 00000 I in "A" 5earch list for indicator Jump according to indicator Ind. 0 Ind. = 4 Ind. = 5 Ind. = 10 Ind. 11 Ind. = 33 Adv. current reI. address by 3 To 556 To 557 [FlI Q 30000J -+ temp 2 = = Operand cal1word from "un of temp 5 to ttv" of temp 1 To S30 Store inst. in temp 2 in routine image Advance current relative address by three To 548 To 57 1437 40 IA RA GW40 RA3 GCl 41 42 43 44 45 RJ RJ RJ RJ 46 RA RJ RJ RJ RA GS12 GS12 GS12 GS12 0 RA3 GS12 GU33 GS12 0 RA3 GU20 GU10 GU42 GU4 GW64 GC1 GU24 GU21 GS21 GW40 GC 54 55 56 Ind 51 RJ RJ MJ RA G512 G512 0 RA3 GV31 G516 GW51 Gel ~Ind 60 61 MJ RA 0 RA3 GW55 GC2 @ 62 63 64 65 RJ MJ MJ GS12 GS6 GW40 0 0 [30000J RAIO GW61 ~Ind 41 50 ~OInd 51 52 53 MJ MJ §1l1 - 3 66 61 10 11 12 1U RA TP 1U TP QT RAIO GC6 [30000J 'IT6 RAIO GW12 GCIO Q [30000J A Generate Int. Power Inst. (cont.) Adv. current reI. address by 3 in nut' and "v" To S53 To S51 To S51 To S50 Adv. current address by 3 in "un and "v" To S54 To S55 To 55 Adv. current reI. add. by 4 in "un and "v" To R1 To 522 Adv. current reI. address by 3 in "un and "v" Adv. current reI. address by 2 in "un and "v" To 52 Exit Preset address of next word in Expanded List Advance address in Expanded List by one Next word in Expanded List to temp 6 Prese~ address of next word in Expanded List Indicator from code of A OPe code of this word to OPe 13 14 15 MJ RJ RA 0 G512 RA3 [30000J GU14 GC1 16 MJ CA 0 GW11 GW42 To 552 Advance current relative address by three 1438 ~POW 1/2 ~6~ -- /2 POW ® IA 0 1 2 '1 v 4 5 6 7 @ ~Ind ~Ind ~Ind 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 RJ MJ RJ RJ MJ TP RJ LQ AT RP TJ MJ MJ MJ MJ MJ MJ MJ RA GX GX67 0 GX67 GS12 0 GC32 GS5 A GXS GK3 GXS GU GK3 TT10 GS 25 rn6 A 30006 GX21 GX13 0 1 4 5 10 11 33 RA3 GX13 GX22 GX26 GX32 GX44 GX46 GX47 GXS3 GC3 1130 GT27 0 RA3 1U TT4 TI'2 GT21 GXS6 GC3 TI'2 TI'2 31 32 MJ 0 RA3 GX56 Gel 33 RJ RJ GV36 GS32 TT3 TT3 GT43 TP RJ MJ RA TP RA roo 36 TP TO GS12 GS12 1I30 TT5 37 RJ GS12 CA GX40 34 35 Generate Int. Power Inst. (cont.) To PI To PI To S49 Preset "10" line counter to 00000 00003J Next word from Expanded List to temp 6 Indicator from OPe code of this word to "un of A Form i MJ I indicator I oooooj in A Search list for indicator Jwnp according to indicator Ind.= 0 Ind.= 1 Ind.= 4 Ind.= 5 Ind.= 10 Ind.= 11 Ind.= 33 Adv. current reI. address by 1 in "u" and "v" fn> 30000 50051J ~ temp 2 To S33 ~O Advance current relative address by one 30000 50051J ~ temp 2 nun of register indicator to "un of temp 2 ITP Adv. current reI. add. by 3 in "un and "v" To S48 To S7 30000 5OO51J -+ temp 3 ITP Operand ca11word from "un of temp 5 to "un of temp 3 To S39A (Inst. from temp 3 to relative constant image) 1439 40 41 42 1A RA TP A RJ SI 43 MJ 44 RJ 45 MJ ~9) Ind _4,. .;. .6_ _R_J - 1~....::..47~---.,,;R;;;;;..;;.J ~o) Ind 50 RA Ind = 33 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 o GS12 GS12 RA3 RA GS12 0 RA3 GS21 GX55 GC2 RJ TP RJ RA GS12 II30 SI TrIO GS6 TT2 SII Gell 1T2 SII Ge3 1T2 SII 1T2 MJ GS12 o TP A RJ RA TP RJ SI RA3 II14 SI II43 SI TP RJ sn MJ o RA RA3 GC3 GU33 GV31 GU27 GX50 MJ RJ MJ CA o o Gen. Int. Power (cont.) Advance "10" line counter by one tllOtl line in "A" to temp 3 "10" line in temps 3 to relative constant image Ge11 TT3 SI12 GX62 G024 GX72 GX70 GS76 Gel ® Ind =5 52 53 GX4Q TT10 [3OOO0J To S54 To S22 Advance current relative address by three To S5 Advance current relative address by two To S2 Ij'P 30000 50051] to temp 2 Store inst. in temp 2 in routine image Advance "10" line counter by one in MV" "10" line in A to temp 2 Store inst. in temp 2 in routine image Advance current relative address by one ffiJ 50051 5005(1 to temp 2 Store inst. in temp 2 in routine image ITo 00002 OOOOOJto temp 2 Store "10" line in temp 2 in routine image Exit Advance current relative address by one To R7 To S55 GX74 1440 0 0 @ 0 0 IA TP 1 TV 2 TV 3 4 RJ LQ 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 AT RP TJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ CA @ 40 41 42 43 44 45 46 47 50 51 52 IA MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ CA (V GA II46 TT3 GC33 GC33 GS5 A GG45 GI42 GS 25 II16 30042 GAI0 0 1 2 3 5 7 10 11 12 13 14 15 17 20 21 A GA52 GAIO GB GBI0 GB12 GB17 GG41 GG46 GG50 GH GB27 GHI0 GH14 GB21 GH40 GH45 GH50 GH56 GH66 GH72 GJ GJ6 GJ20 GJ27 GJ32 GI Generate Store or =) Instruction [TP 30000 30000 instruction to temp 3 Set SWitc~ Set switCA B' Next word rom Expanded List to temp 6 Indicator from OPe code of this word to "u" of A Form IMJ I indicator I 00000 I in A Search list for indicator Jump according to indicator Ind. = 0 Ind. = 1 Ind. = 2 Ind. = 3 Ind. = 5 Ind. = 7 Ind. = 10 Ind. = 11 Ind. = 12 Ind. = 13 Ind. = 14 Ind = 15 Ind = 17 Ind = 20 Ind = 21 Ind = 22 Ind = 23 Ind = 24 Ind = 25 Ind. = 26 Ind. = 30 Ind. = 31 Ind. = 32 Ind. = 33 GI7 GI13 GI21 GI25 GI33 GI36 GI43 GB24 GI54 GI61 GI65 Gen. Store Inst. (cont.) Ind. = 34 Ind. = 35 Ind. = 36 Ind. = 40 Ind. = 42 Ind. = 43 Ind. = 44 Ind. = 45 Ind. = 46 Ind. = 47 Ind. =50 22 23 24 25 26 30 31 32 33 GA40 GA4Q 34 35 36 40 42 43 44 45 46 47 50 GA53 1441 GB GS12 RA3 GS42 GC TV GS12 G512 IT5 G56 GS27 IT3 5 TP TT3 TT2 6 7 @Ind 10 11 =1 ~ Ind 12 13 RJ MJ RJ RA 51 0 GS12 0 GS12 RA3 SII KG G545 GBI G542 GCl 14 15 16 @Ind 17 =3 20 Ind 21 - 15 22 RJ RJ MJ RJ MJ RA G512 G512 0 GS12 0 RA3 TO TT4 G532 GT41 EG G545 GB13 GC3 TT3 23 @Ind 24 25 = itS 26 §Ind 27 30 = 12 31 32 MJ 0 RA3 GS12 0 RA3 TT5 GS12 0 GB33 ~Ind IA 0 1 RJ RA 2 3 4 RJ RJ § MJ RJ RA RJ MJ RA TV RJ MJ CA GB4 GC2 G56 GB4 GC3 TT3 GT16 EG Gen. Store Inst. (cont.) To Sll Advance current relative address by four To S2 To 56 Callword of variable defined by equation to "v" of temp 3 Generated inst. to store result to temp 2 Store inst. in temp 2 in routine image To S12 To 511 Advance current relative address by three To 57 To 538 To S12 Advance current relative address by one "A" or "Q" address from register indicator to "utI of temp 3 Advance current relative address by two To S2 Advance current relative address by one To S32 1442 ® ® @ @ ® @ ® ® ® 0 TU IA GS RAIO GS2 1 RA RAIO GC6 2 3 4 TP TP QT [3ooooJ TT6 GCIO Q A TT6 5 6 7 MJ TP TU 0 II4 TT5 10 TV RA3 TT2 11 RJ SI SII 12 13 14 15 MJ 0 1I5 TT5 A [30000J TT2 17 TT2 16 17 20 21 22 23 24 MJ TP MJ TU 0 IT5 0 IT4 0 IT4 TT5 GSlO TT2 GSlO TT2 GSlO TT2 TT2 25 TV RA4 TT2 26 27 MJ TP 30 TU 0 II33 RA3 GSII TT2 TT2 31 32 33 MJ TP 0 1133 RA4 GSIO TT2 TT2 TP 36 ro 0 II33 RA4 GSlO TT2 TT2 37 MJ CA 0 GS40 GSII 34 35 TP SP TU TP MJ TP TU MJ [30000J TT2 TT2 Equation Generation Subroutines Address of next word in Expanded List to "u" of TP Advance address in Expanded List by 1 in "un Next word in Expanded List to temp 6 Mask for op. cQde to Q Indicator from op. code of temp 6 to op. code of A Exit [TU A 3Ooo0J ~ temp 2 Callword from "un of temp 5 to "u" of temp 2 Current relative address to "v" of temp 2 Store instruction in temp 2 in routine image Common exit [TV A 30000J ~ temp 2 Callword from "v" of temp 5 to "u" of temp 2 [TV A 3Ooo0J ~ temp 2 [TU A 30000J -+ temp 2 [TU A 30000J -+ temp 2 Callword from "u" of temp 5 to "uH. of temp 2 Relative constant callword to ttv" of temp 2 [AT Q QJ ~ temp 2 Current relative address to "u" of temp 2 [AT Q QJ -+ temp 2 Relative constant callword to temp 2 flU" [AT Q QJ -. temp 2 Relative constant callword to "u" of temp 2 1443 of @ 0 @ 0 @ @ @ @ @ @ @ 0 § 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 7'7 IA TP MJ TP m MJ TP GS40 II33 0 117 TT6 TP MJ 0 II7 0 II32 TI6 A 0 1132 TI5 0 117 0 II45 0 III 0 TP III MJ TU 0 III 0 III 0 115 TI5 A 0 II10 'IT 5 CA GS100 MJ TP SP 1U MJ TP SP MJ TP MJ TP MJ TP MJ TP MJ TP SP 1U MJ TP [AT Q Q] IT2 GS10 TT2 TT GV34 TT2 GS11 TT2 17 TT GV34 TT2 17 GSl12 TT2 GS50 TI2 GS11 TT2 GS50 TT2 GSII TT2 GV32 TI2 GS43 TT2 17 TT2 G525 TT2 TI2 -+ temp 2 [SP A 17J ~ temp 2 Ca11word from "un of temp 6 to "u" of temp 0 [SP A 17J ~ temp 2 [SA 30000 OJ -+ temp 2 Ca11word from "v" of temp 6 to "u" of A "u" of A to "u" of temp 2 [SA 30000 OJ --+ temp 2 Ca11word from ttv" of temp 5 to "u" of A [Sp A III ~ temp 2 [TN Q QJ -+ temp 2 [TP 30000 AJ -+ temp 2 UP 30000 AJ -+ temp 2 A]~ temp 2 [TP 30000 [TP 30000 AJ -+ temp 2 [TV A 30000J --+ temp 2 Ca11word from "v" of temp 5 to "u" of A "u" of A to "u" of temp 2 [SA 30000 17J -+ temp 2 Ca11word from "u" of temp 5 to "u" of temp 2 1444 IA § @ @ @ 100 101 102 MJ TP MJ G5100 G511 0 115 TT2 G57 0 103 TP 1"'''' A ~~q TT2 rrnrT 104 TV RA3 TT2 Current relative address to "v" of temp 2 105 106 107 MJ TP 0 114 TT6 G5111 TT2 TT2 0 TT6 A 0 II32 0 G5116 G510 17 TT2 G511 TT2 G577 110 111 112 113 114 115 TO MJ 5P TU MJ TP MJ CA [1v A 3Ooo0J L~U A J\ -+ temp 2 30000J ~ temp 2 [TU A 30000J -+ temp 2 Ca11word from "u" of temp 6 to "uti of temp 2 Ca11word from ttv" of temp 6 to "un of A "un of A to "u" of temp 2 [?A 30000 OJ 1445 ~ temp 2 o 1 2 IA GT TP MJ TP 115 o TT3 TT2 GS24 TT2 Generator Subroutines (cont.) [TV A 30000J -+ temp ::! [f - 30000 30000J from temp 3 temp 2 To S29 ---+ RJ 3 4 5 MJ TV o TIS GT5 GS11 TTl 6 TP TTl A 7 TJ GC34 GT11 10 MJ RJ o GT12 No 11 TR TR2 12 TV A TT2 13 14 15 16 17 MJ o TP TT3 Yes; pertinent temporary storage ca11word to "v" of A Operand or temp ca11word to "v" of temp 2 Exit [f- 30000 30000J from temp 3 ~ temp 2 r~ GT13 [30000J MJ o TT2 GS11 TP TT3 GT27 GT21 TU TIS GSl~ TP RJ MJ o TT2 ~25 I 23 ~~ TJ TT GC35 24 25 MJ RJ o TR GT26 TR1 26 1U A IT2 27 MJ o 30 TP 1U TT3 31 TT4 [30000J TT2 TT2 32 MJ o 33 TP TT3 34 RJ GT13 35 36 MJ o TP IT3 GT5 GT31 TT2 37 TV 1T4 TT2 CA GT40 GS11 IT2 Ca11word from "v" of temp 5 to "v" of temp 1 Ca11word from "v" of temp 1 to "v" of A Is ca11word partial result symbol? ( i . e. ,30---) If_ 30000 30000J from temp 3..... temp 2 Ca11word from "uti of temp 5 to "u" of temp 0 Ca11word from "u" of temp 0 to "u" of A Is cal1word partial result symbol? (i.e. ,30---) No Yes, pertinent temporary storage ca11word to "un of A Operand or temp ca11word to "un of temp 2 Exit [F- 30000 30000J from temp 3 -+ temp 2 "un of register indicator to "u" of temp 2 [f- 30000 30000J from temp 3 --+ temp 2 [f- 30000 30000J from temp 3 ---+ temp 2 "v" of register indicator to "v" of temp 2 1446 @ GT40 0 IT5 GT17 41 IA MJ TIJ ~ 42 TV TT5 TT3 43 RJ 51 5111 44 45 TP MJ II 0 TT2 G5ll -..'" At.. Tn TT~ TT'l 47 50 MJ @ 51 52 MJ @ 53 54 MJ @ 55 56 57 60 RJ RJ MJ S39A tG?l "-..:;J 8 @ 8 @ 40 .J..J.oJ TI3 .J..J.v Callword from !!u" of temp 5 to !tu n of temo 3 Caliword from "v" of temp 5 to ttv" of temp 3 Inst. in temp 3 to relative constant image [90 30000 30oo0J -+ temp 2 rVa.L.Lnu ... l l ....... _A ... y ~_,._ .L..LU111 tt .. " Lt ,..~ V.L ... "'_~ &''VWP c::. ... _ oJ &,v ".. " IA of temp 3 TV TU 0 TT4 GT43 TT3 0 TT4 GT46 TI'3 0 TT3 GT42 1T2 ttv" of register indicator to "v" of temp 3 "u" of register indicator to "un of temp 3 TP [F 30000 30000J from temp 3 temp 2 To 529 To 533 ~ 1U GT13 GT27 0 TT5 GT5 GT2l G5ll 1T3 61 62 RJ GT13 TV A GT5 1T3 63 64 MJ 0 TT5 GT43 1T3 65 66 RJ GT27 1U A GT2l IT3 MJ 0 TT3 GT43 TT2 67 70 TV TP Callword from "u" of temp 5 to "u tl of temp 3 To 529 Callword of variable, constant or temp to "v" of temp 3 Callword from tt v" of temp 5 to "v" of temp 3 To 533 Call word of variable, constant or temp to t'u" of temp 3 W- 30000 30oo0J from temp 3 temp 2 "v" of register indicator to "v" of temp 2 ---+ 71 TV TT4 TT2 72 73 74 MJ 0 II6 RA3 GSII TT2 IT2 0 GT76 GV4 75 TP TIT MJ CA [ilA 30000 30oo0J -+ temp 2 Current relative address to "u" of temp 2 1447 o IA RA GU RA3 GC3 1 2 TP 1U II36 TT6 TT2 TT2 3 MJ o 4 5 TP TV 1135 RA6 GSII TT2 TT2 6 RS RA6 GC3 7 MJ o 10 11 TP TO 1122 RA6 GSII TT2 TT2 12 TV RA6 TT2 13 14 15 MJ o GSII TP TU III TT5 TT3 TT3 16 RJ GK34 GK30 17 20 21 MJ o GT43 TP RJ III GK34 TT3 TP MJ TP TI3 ro 1110 RA4 TT2 GSII TT2 TT2 22 23 24 25 o GK30 26 27 MJ o GSll TO TT5 TT 30 31 SP LT TT o TT3 32 RJ SI SIll MJ o TP RJ SP LT CA 1122 GT27 [30000J TT2 GT21 25 33 34 35 36 37 TI2 o Generator Subroutine (Int. Power) Advance current reI. address by 1 in "u" and "v" [fD 30000 Q] -+ temp 2 Callword from "u" of temp 6 to "u" of temp 2 [FM Q 30oo0J -+ temp 2 Current reusable temp callword to "v" of temp 2 Decrease current reusable temp callword by one [FM 30000 30000J -+ temp 2 Current of temp Current of temp reusable temp callword to "un 2 reusable temp callword to "v" 2 [TP 30000 A] ~ temp 3 Callword from "u" of temp 5 to "uti of temp 3 Callword of available reusable temp to "v" of temp 3 [TP 30000 'Cal1word of "v" of temp Instruction ~ temp 3 available reusable temp to 3 from temp 3 to temp 2 A] [liA 30000 17J -+ temp 2 Relative constant callword to "u" of temp 2 Callword from "u" of temp 5 to "uti of temp 0 25 Call word from "u" of temp 0 to ttv" of temp 3 Inst. in temp 3 to relative constant image Exit IT M 30000 30000J -+ temp 2 To S33 A GU40 1448 @ 40 IA TV GU40 A IT2 41 42 43 MJ 0 GSll TP TP 1I27 GC12 IT2 Q 44 45 46 QT S5 TO TT6 GC13 A A 17 IT2 Callword from "u" of temp 2 to "v" of temp 2 IIJp 30000 3OO00J -+ temp 2 Mask for rightmost "two" octal digits of "v" --+ Q Exponent from temp 6 to "v" of A Exponent less two to "uti of A jn to "u" of repeat instruction in L ___ ~t::Inp @ @ 47 TV RA3 TT2 50 RA 1T2 Gell 51 52 53 54 55 MJ 0 1I22 0 GC47 1132 GSII TT2 GSII Q TT2 0 GU57 GSll 56 TP MJ TP QS MJ CA '"' ~ Current relative address to "v" of RP inst. in temp 2 Advance 'I V" of RP inst. in temp 2 by one (fM 30000 30000J TO~ -+ temp 2 Mas for OPe code and 'IV" to Q [32 _ OOOOOJ to op. code and "v" of temp 2 1449 o @ @ IA GV I125 TT2 GV2 GC6 [30000J TT6 1 2 TP RS TP 3 TO TT6 TT2 4 TV TT6 TTl GT13 5 RJ 6 MJ 7 TP 10 MJ o 11 TP 12 13 RS TO II32 GV2 A 14 TP 15 16 SP TO TT6 A TT 17 20 21 22 23 RJ TP GT27 TT2 GT22 TT3 24 25 RA m TO TT5 m 26 27 30 31 32 33 MJ o TP 1126 34 35 36 37 RJ MJ TP TV GT6 o G511 II24 TT2 TT2 GC6 GV14 o 1115 RA3 17 GC11 TT5 TO A TT TP CA o 117 o temp 2 [TJ 30000 30000J ~ temp 2 Current relative address to "v" of temp 2 Advance "v" of temp 2 Ca11word from "un of temp 5 to "u" of temp 2 TT2 TT2 SP GT27 -+ Ca11word of subscript from ttv tt of temp 6 to "un of temp 0 To S34 Generated Instruction to temp 3 @ooooJ o III 30000J [SA 30000 OJ -+ temp 2 Decrease by one in "un Preset address of next subscript word in Expanded List Next subscript word from Expanded List to temp 6 [30000J TT6 MJ TP MJ ~P 30000 GV1 GS11 TT2 GV25 TT2 17 MJ Generator Subroutines (Subscript Operator) [MA 30000 30000J ~ temp 2 Decrease "un of next instruction by one Next subscript word from Expanded List to temp 6 Ca11word of multiplier from "v" of temp 6 to ttv" of temp 2 Ca11word of subscript from "v" of temp 6 to "v" of temp 1 To S30 [PV 30000 QJ --+ temp 2 [Tp 30000 A] -+ temp 2 Ca11word from "v tt of temp 5 to "u" of A Callword from "un of A to "u" of temp 0 To S34 GT22 GS11 TT2 GV32 [SP A 17J GV40 1450 -+ temp 2 IA MJ o TP TT2 [30oo0J [30oo0J RA 511 Gell TJ GC25 51 4 TV GC24 511 5 RP 30170 SI7 6 TP RB [30oo0J 7 RA 516 GC26 51 Ge3 o - ~l2 00::: +.J ..., C 01""4 o l""4 Cl) MJ o RA RA4 TP TI3 RA 5112 Gell TJ LG 51 15 16 RJ WA WAI TP TO UP3 17 20 RJ UP2 UP BQ6 ~ ~ C 51 co S Cl) 01""41-1 J .... 0::: Cl)+.J+.J ~ o +.J CJ) en en C C 0 [30000JJ 0 uu MJ o CA 5121 5tore inst. in Routine ]mage or Relative Constant ]mage Exit 1nst.in temp 2 to current address in Routine Buffer Advance current address in routine buffer by one Are there 1708 words in routine buffer? Exit if no. Yes; reset current address in routine buffer to initial address Transfer 1708 generated Inst. from routine buffer to current address in routine image on drum Advance current address in routine image by 1708 To Exit Advance current relative constant callword by one Relative constant (or "10" line) in temp 3 to relative constant image Advance current address in relative constant image by one Are there more than 778 relative constants? Exit if no. Yes t type SENTENCE_ (equation) Parameter for alarm text to type routine Type: SENTENCE TOO LONG. Rewind tapes and stop 1451 IA @ Y2 0 1 2 MJ 3 4 5 6 7 10 EJ 11 12 MJ LT RP m 0 [30000J A 25 [30000] TR12 RL Q Q RA2 Q RA5 TR4 17 Q A 0 0 0 RA6 TR RS 13 SA GC3 0 14 MJ 0 m15 TR SP AT TP S5 SA CA GC3 Obtain Redundancy or Reusable Temp Callword for Partial Result Exit Partial result symbol to "v" of A Is partial result symbol in Redundant Partial Result List? Yes; to TR4. No; to TR12 jn - r~"u" of A j n - r-t"u" & "v" of Q jn ~ "un & "v" of A +r --. "u" & "v" of A Callword of redundancy temp for partial result to "un and MV" of A To exit Decrease current reusable temp callword by one Callword of reusable temp for partial resul t to "u" and '·v" of A To exit 1452 Generator Constants (Fixed) IA 0 0 GC 4 3 4 3 2 0 2 3 4 5 6 7 10 0 0 0 0 0 77 1 5 6 2 1 5 6 1 0 0 11 0 0 0 7 0 12 13 14 15 16 0 0 02 0 0 0 0 0 26000 RI 77 2 17 20 21 22 23 24 25 26 27 0 0 0 0 0 TP 0 TP 0 0 0 0 00777 TT2 TT2 0 RB 0 RB7 GK ZZ24 00777 RB RB170 170 RI 30 TP TT3 CI 31 32 33 34 35 0 10 0 0 0 0 0 CA 0 0 0 0 31000 2 3 GC40 30000 3 EG 31000 0 0 0 1 36 37 TP 1 0 0 FL Parameter to write generated routine from drum to tape To set switCh~ Initial address in routine buffer in "v" Initial address in routine image on drum in "v" Initial address in relative constant image in ltv" To set switch~an~ 0 1453 IA 40 41 42 43 0 0 TP 0 44 45 46 47 50 51 52 53 10 0 0 77 0 0 0 0 CA GC40 0 0 TI2 RB 1000 20000 23000 0 10000 57777 67777 776 GC54 6 GK3 RB17l FL 1000 I 20000 0 77777 10000 57777 67777 776 To switCh® Parameter to write generated routine from core to tape Initial relative constant callword Initial redundancy temp callword less 1 Initial reusable temp callword less 1 1454 0 IA 00 3 4 5 6 7 10 12 13 15 16 21 31 32 11 34 30000 12 13 14 35 36 37 30000 A 30000 A 50051 50051 15 16 17 20 21 22 23 24 25 26 27 42 45 64 65 66 67 71 72 73 75 11 30000 0 0 30000 30000 30000 30000 A 30000 30000 30000 30000 31 32 33 34 35 36 37 13 32 35 66 66 67 73 CA A 30000 Q A Q 30000 30000 I 140 IA 40 41 42 43 44 45 46 47 50 64 11 11 10 12 13 11 45 45 1140 Q Q r-I ~ 30 11 56 CA II 30000 30000 30000 30000 A A 30000 A 30000 Dummy Instructions 30000 A Q Q 30000 30000 30000 17 17 30000 30000 0 30000 30000 30000 30000 30000 30000 30000 Q 30000 S0051 Ca11word of "Square Root" Library Routine (SQRT) in "v" A 0 Q A 30000 Q A 30000 A 2 30000 0 A A A Ca11word of "Square Root" Library Routine (SQRT) in flU'1 and 'tv" Q Q 30000 30000 01000 0 30000 0 1151 1455 0 1 2 3 IA 40 65 26 01 TO CA T01 3 30506 63050 30016 65151 46515 03222 T04 IA LG 0 TP TI3 CIIOO 1 0 1002 1002 CA LG2 Alarm Text Parameter for alarm text S E N T E N C E l!l T 0 0 l!l L 0 N G Limiting Values Maximum address in relative constant image + 1 ~MaXimUm number of lines in object program body (including jump to exit) +1 Explanation of Relative (Running) Address List RAO 1 2 3 4 5 6 7 10 jn for "Q" List search in "u" j n for "A" List search in "u" jn for Redundant Partial Result List Current relative object program address in "u" and "v" Current relative constant callword in "u" and "v" Initial redundancy temp callword less 1 in "u" and "v" Current reusable temporary storage callword in "u" and "v" Highest reusable temporary storage calI wor din "u" and "v" Initial address in Expanded List + 2 in "u" 1456 Explanation of Working Temporaries (TT) TTO o 1 o o 2 o o 0 3 o o 0 4 o o o [30000J 0 [30000J 5 o o o 6 o o o 7 10 o o o o o o Temp 0 - OPe code and "v" always zero Temp 1 - OPe code and "un always zero Temp 2 - usually generated instruction to be stored Temp 3 - usually relative constant to be stored Tpmn L1 _ ~Al1;~tp.,. ;nif;l'.~tn.,. -""" .......1:'... "'-:.:1--"'-" ...... _-.,..... ........ ""' .. Temp List Temp List Temp Temp 1457 5 - operator word from Expanded 6 - indicator word from Expanded 7 - index counter 10 - "lOtt line counter V. ALLOCATION PHASE IT V • ALLOCATION PHASE 1. Segmentor a. This Setup Routine for Segmentation prints out the information that the Allocation Phase (including the Segmentor, the Allocator, and the Initialization Generator) is about to begin. The routine reads the nine blocks of Segmentation from the UNICODE Master Tape and then jumps into the phase. 1461 J----~ Parameter to Uniprint Routine to type Pass III. Allocation of storage. Send codeword to tape handler to read Segmentation Phase to H.S.S. Flow Chart for Set-Up Segmentation Segmentation Set-Up Regions RE RE RE ZS7230 ZZ7230 SA674 RE SLI100 RE RE TH21 UP421 Loading address for segmentation setup Operating address of segmentation setup Loading and operating address of segmentation phase 11 = number of blocks for segmentation phase Set-Up for Segmentor ZZO 1 2 3 4 5 6 7 10 11 12 13 14 15 IA TP ZS Zl6 RJ TP RJ MJ 50 0 01 52 34 01 24 51 54 CA UP2 ZZ5 TH2 0 SLI Zl7 01010 24656 34220 24464 66345 31016 24323 ZS16 UP3 UP TH3 TH SA SA } Print: Pass III. STORAGE. } Read Segmentation Phase to H.S.S. ALLOCATION OF Enter Segmentation Phase. Tape handler code word (Read). Code word for UP 7 ~~~~I:l~ 10101 50134 10101 65126 15001 56651 02201 P A I I 6 A A T 0 F R A 1463 S S . ~ I ~ ~ ~ L L 0 C I 0 N ~ ~ S T 0 G E .8 b. Segmentation Phase .L.. Phase I prepares two directories using Op File I of the generated routines on Uniservo 5 and Op File I of the library routines on Uniservo 2. First, all items of Op File I on the generated routine tape are read into H.S.S. and then transferred to the MD. an entry for each item placed on the MD. Directory I is constructed by making The first word of this entry con- tains the call word for this item in the A position; the second contains the locating MD address for this item in the ~ position. When Op File I of the generated routine tape has been completely read into U.S.S., List I (a listing of all library routines required for the problem prepared during translation) is read into U.S.S. lowing Op File I of the generated routine tape.) (List I is stored fol- Next Op File I of the library tape is read from tape and checked for the occurrence of the items of List 1. When an item of List I is found in the library Op File It the Op File for this item is placed on the MD and an entry is made in Directory 1. Directory 2 consists of only two words. The first word holds the MD address of the first statement Op File; the second contains information relating to the MD address of the last statement Op File. tory is prepared concurrently with Directory 1. 1464 This two word direc- Phase II. Phase II uses Directories 1 and 2 to divide the problem into efficient running segments producing Op File IIa and IIb on tape for each segment. USing the first word of Directory 2 (location of Op File I for the first statement) as the initial point, Op File I for each statement is processed in sequence. A sub-tally of the total nwnber of lines of coding required for each current statement and its necessary cross references is maintained. This in turn updates a master tally for the segment which contains the accum~ ulated total number of lines needed for all statements and their required cross reference routines. After processing each eompleie statement, the master tally is checked to determine if it is within the prescribed limits (4096m-N; where N is the length of the Control Section and m the number of core banks available). If it has exceeded the set limits, the sub-tally is subtracted from the master tally and this becomes the length of the segment. If a single statement and its necessary cross references exceeds (4096m-N) the routine gives an alarm. The last statement processed which exceeds the set limit becomes the first entry in the following segment. Vary loops are treated differently in order to avoid unnecessary jumping between segments. All statements within the range of a Vary are counted together in the sub-tally as one large statement, including other Vary statements that might be nested within the first loop. If the master tally then exceeds (4096m-N), the routines check whether the sub-tally exceeds (4096m-N). If not, the routine ends a segment right before the Vary statement, starting the next segment with a Vary loop. If the Vary loop in itself ex- ceeds (4096m-N), the segmentation goes backward within the sentences of the Vary loop until the limit (4096m-N) is reached again. 1465 If there is no Vary within the Vary, it forms a segment right there. s~ntences If there are other Vary nested within the large Vary loop, it goes further back beyond the next Vary statement and forms the segment so that the new segment would start with a Vary Statement. Processing continues entering each item in turn into Op File IIa using the length (4096m-N) as a limit for each segment. Whenever cross references to other statements (open jumps) are recognized, these call words are entered into Op File lIb. Thus, Op File lIb is a listing of jump cross words for each segment. refetenc~ call When sufficient statements for one segment have been processed and their call words entered into Op File IIa and lIb (as needed). these files are written on tape ready for use by the allocator. The process is repeated, building Op File IIa and lIb for each segment using the second word of Directory 2 to indicate when the last statement in Op File I has been processed. 1466 Segmentation, Phase I HGO-2;HHO-23 Do clearings and presettings HBO-l Read 1 block tape 5 into buffer HB2-3 Is label tape"? HB5 Read 1 block tape 5 into YES buffer HB6-7 Is label "Op File I"? NO HB4 Go to alarm 12 UBII Read 1 bloc tape 5 into w ; . . . - - - - & buff er NO HBIO ~to ~arm 12 HB12 HB14 HB12-13 Is label "end of entry"? Resp. later "Library Subroutine"? IE-----I First Libr List 1 YES YES 8815-1 Fill constants 5-17 H8~O NO Set TN to 000 Set TN to 030 MI2 MLO-l any libr. the problem? YES NO VC23 Only fixed library? Phase II (DA-DAIO in RJ) Adv. tape lone block and jump to exit YES Change exit in DC17 to TT TT Jump to HG2 exit phase I MID Change exit in DAll to MB2 ~ _________ _______________________ ~ Segmentation, Phase I 1468 ~ A MMI MM5 Read 1 block tape 5, into buffer MM2-3 I s label Itt? NO MM4 Go to alarm 10 Read 1 block tape 5 into buffer MM6-7 Is label entry"? MMIO-12 Write 1 block ] of LIST 1 to drum YES I MM13 s region set aside for List I exceeded? 8 YES MM14 o to ~ larm tttO] many lIbrary rout." @ Segmentation. Phase I NO DAO-l Read 1 block tape 1 into buffer DA2-l0 Do prelim. settings for fixed libr. DAll Jump to DC (normally) jump to MB2 (only var. libr.) DCO-2 ~ NO NO DC3-7 DC14-l5 DC16 done CW's in List I? Reset fixed libr Ope File 1 back to 1st CW and adv. List 1 CW YES Normally Segmentation. Phase I DClO-12 Set for next CW in Op File 1 fixed libr. YES ____________ ~~ B OG2·-5 vtlU-ll 00 pre settings and bring one B t---~Op Fi Ie 1 item fixed libr. to drum OH12-14 Are there cross ref.? YES DGO-l Do presetting for handling cross ref. Adv,. addr. of cross ref. by 1 ~----~and go to handle cross ref. in RJ NO r-----------------------------------~ OBlO r-------I Go back to RJ addr. DB6 NO OB2-5 Have we exceeded region? YES OB7 Go to alarm "too many libr. rout." Place CW in List 1 and adv. ms OBO-l Is libr. CW alr'eady in List l? J )..- MB2,4 MBIO-12 MBO-l C J---~ Constants used by InI Read I block tape 2 into buffer MB3 Set BBl3 to ED YES Set HBl3 to TT t----~ Set EB7 to FF M8S-6 Set BBl2 to MBll NO MB7 Go to alarm 7 Segmentation, Phase I MB13-15 Change label check in HBl2 for libr. and clear some temps DG6 fn\. ..../]:;e all cross ~f. handled? YES DG7 Go to handle next CW DFO Go to hdle I--...-----t ca se for Dir. I EBO-6 Place CW and drU addr. in Dir 1 and adv. f NO DFI Reset and go EB7 back to handle Go back to R'J r-----f next Li st I wordfE---f address NO EB7 s: region set aside for Dir I exceeded? YES EBIO ~I to alarm ~oblem too Segmentation, Phase I lon~ EC NO between START and STOP 880-2 Is Op File 1 longer or equal 1 block? YES La st statement CW to Dir II and change EE4 back to EB NO 883-11 Do settings for this Op. File 1 en en S en to ::s c-+ al f--I .t::.. -.J .t::.. c-+ ...... EEO-4 8812-13 NO before START and after STOP Is there op file 1 following? 0 ..::s "'C ::s' al NO Progr Tape en en H YES Libr. Tape 0 Second and later yes First YES EAO- 4 First statement CW to Dir II and change v of EE4 ~ EC v of EE5 EB -=- EDO-4 NO EBO-6 Place CW and drum address in Dir I and adv. FF21 FFG-20 FFO-4 EB7 YES Is region set aside for Dir exceeded? EBIO Bring I whole block Op File I item to drum and adv. Read I block tape 2 into buffer YES Go to alarm "probe too big" FBl6 FB6-15 FBO-4 Is Op File 1 item '2:. I block? YES Bring 1 whole block Op File I item to drum and adv. Read I block tape 5 into buffer NO FCO-IO H Bring one or part Op File I item ~------------- to drum FCII Adv. settings F ~ .t:. -.l 0- 000-2 BCO-l Prepare to bring one whole block op file 1 to drum Set RP command for bringing Op File 1 to drum BC2-3 t----,r--~ Advance drum addr. and gO to reg. exceed check en C» cQ S ('1) ::s BC4-5 c-+ i» c-+ ..... .::s 0 '"C :::r' m en JE-------t Bring Op file 1 to dr urn B04 Go back to address .tlJ NO ~--~ BOO-3 Is region set aside for Op 1 exceeded? YES C» H Go to alarm "Problem too big" BB Do presettings BB35 Bring next station CW to drum image DI DI ~ TEIO CW 011 ~ TE 1 # of 1in e s ( t ) DIl~TE4 # of lines(t2) BB23 Settings for next segment DD Handle 26 - - _ cross references YES BB56 Is statement CW a VARY 26 ___ ? ----------------~ Set switch EE to MJ0EF for VARY case NO BB61 Set ind. for # of cross ref., set addr. of first cross ref ~TEll BB64 Are all cross refer. handled? H H BB66 YES Adv. f3 NO CCtCD Only done with first VARY 26 ___ in 1\est Save CW of last statement in VARY in TE31 and Op File II a first in TE23 Save CW given at addr. in TEll ~TE20. Cases 26, 27~ Op File lIb. Case 4 ~ special. ase 77 and others ~Op File II~ Adv. TEll to next. 1 (addr. in TE6) BB70 Handle CW ] at addr. f3 EF t4 + t Only in Vary t5 + 52 EF5 Are we at end of VARY loop? ~t4 ~ t5 NO Clear t4 I---~ and t5 r.n (t) to S (t) ::s c-+ g,) c-+ ~. 0 ..::s all other cases ~ ::s" g,) en en H H EEl form T + t~T EE35 EE2 in TE40 clears indicator for VARY in VARY (TE30) EE17 Restore settings for VARY EE21 Save a~TE13 y--;.TE14 TE12 ~FAI T2 + t2~T2 NO EE4 Undo from before T - t-+T EE25 Prepare next statement CW to be brought to TI- EE31 Have all st~te ment CW's been done? YES T > M YES YES NO Ul CD c.Q finish up segment by setting word ~ addr. given in TE13 into first word of Op File II b (;H25 NO (Was this the ~ last segment? o :3 CD ::s c-+ ~ c-+ ~. 0 ..::s ~ '"C A ::r' -...0 CIl -.J FF'+GG+GH Form segment Op File II a Op File II b { Segment table El Set BB42 and restore VARY settings EEIO Case t < M T < M but next EE6 EES YES EJ Set counters back to segm. start and clear TE22 EE14 Are we in VARY loop? YES EK+EJS+EG7 Set a back to val. in TE13 EHI ~ CD H H NO Clear tl EHIO EE16 and t3 YES t + Go to alarm ~--~ Go sinc t still too big EH Replace add J--~ t +1 ~ t3 3 EGS to alarm I tl~t J-~r(::store EV Hand Ie 26 ___ + 27__ _ t3 = 0 cases for reduced a that wi I go via EQ to exit EH26 Reduce a by 2 ES Handle 27 ___ case (TE3) going backward EM3+EL+LL Handle 77___ case TE12, TE22 going backward EGl5 NO EHl2 EH15 T-(a+I)~T ~---I~~we finally have made T too big EH22 Is at a a 27 ___ CW? YES Handle 77,TE12, TE22 t TE3, 26,27 going forward Repl. subtr. t3-l~ t3 YES EQI Possible RJ exit for EY (after Op File II b exceeded) Adv. a by 2 for next statem.CW Is next CW again 26 __ _ VARY? --------~ NO Handle Op File II from set-back on EH3 Prepare finishing up segment by setting word at addr. given in TE5 into first word of Op File II b EI2 with RJ to ET Do settings for FF, set by BB42 and restore I---~ VARY settings Segmentation, Phase II 1480 Segmentation Regions Phase I RE ZA77000 RE 8Q632 RE 00537 RE RE RE RE RE ST653 GKlOOO TN20 UP421 TH2l nt:' ITIT'>~~ 1U:o .L.Lv,.'!A RE D13464 RE 5D4l56 RE F040l0l RE FA4260 RE FP7660 RE OP45215 RE LI4160 HE VV2764 RE TE1300 RE RE RE RE RE RE RE RE RE RE RE RE RE Segment Table Tape Handler Tape Image Drum Image Directory II Directory I Op File IIa Op File lIb Op File I List I Temporaries Phase I Temporaries Phase II PP1373 HG674 lllI677 HB723 ML747 88756 BC772 DDlOOO 801003 DAl012 081024 OCI035 DFl055 RE DGlO6O RE HE RE RE RE RE RE RE RE HE RE RE RE DHl070 EEIl05 EAll13 E81120 Eel131 EDl135 FFl145 FBl170 FC1210 MM1223 IT1241 MB1242 CC1260 ~~ W~13~47 RE FT1352 REHTl360 RE VC2472 RE 8E76777 RE EF45213 RE DE5161 RE LF3274 1481 Entrance Phase I IA HG 0 MJOHH 1 MJ 0 BQ6 Alarm exit 2 MJ 0 PP Jump to Phase II Jump to start CA HG3 IAHH Come from HG o RP 15014 HH2 1 TP CC23 VV 2 RP 17777 HH4 3 TP CC23 40101 4 RA HH3 MB1 5 IJ MB 6 RP 11702 HH10 7 1'P CC23 70076 } Clear core from 2764-7777 Clear drum from 40101-76277 HH2 10 TP CC25 VV Set K = Op 11 TP CC25 VV1 Set b 12 TV CC31 EB 13 TV CC32 EB1 14 TV CC33 MM11 15 TV 16 TV CC37 BB13 17 TV CC40 EE5 20 TV CC41 EE4 21 TV CC42 EB7 } = Op Set addresses of first directory Set address of List 1 CC36 HB23 1482 22 TV CC5l BB12 23 MJ 0 HE Enable boxes 3 and 4 CA HH24 IAHB 0 CD G) 0 Come from HH23 } 0 TP CC TH3 1 RJ TH2 TH 2 TP TI24 A 3 EJ CCll HB5 4 MJ 5 RJ TH2 TH 6 TP TIl A 7 EJ CC4 HBll Identification of 10 MJ 0 BRl2 Alarm 11 RJ TH2 TH Read next block 12 TP TIl A 13 EJ CC6 HB15 14 MJ Identification of (END A OF ) II ENlRY resp. after change iden~ of SUBRTN v changed by MBll to TT, u changed by MB13 Not finished yet, go t~ 15 RP 30013 HB17 } 16 TP TI2 5 17 MJ 20 TP CC23 TN 21 MJ 0 HB23 22 TP CC57 TN 23 MJ 0 30000 Read 1 block Uniservo 5 Identification of ~ FILE 0 BR12 (~ TAPE~) Alarm Come from HB3 or MB14, read next block 0 BB (~~~OPll) FILEllI Fill constants 5-17 inclusive 10000 HB22 Do setting for 5 or 7 tapes depending MJl test TN=OOO (5 tapes) TN=030 (7 tapes) Set by HIIl5 to~ after all Op Files 1 read in-+ A witch CA HB24 1483 Come from HB14 TA BB CD 0 0 TP CC24 A 1 TJ W2 DD 2 EJ W2 DD equal? 3 TP W2 VV3 Smaller? 4 SP VV3 17 5 TP A VV5 6 AI' CC47 VV4 TIO + j~VV4 in u 7 1U VV4 BBlO Set NI 10 TP 30000 A Place first nCW + # of addresses" of next Op File item ....... VV6 11 TP A VV6 Is there another Op File I following? 12 EJ CC12 30000 13 MJ 0 30000 Set by HH22 to BCO, later by MB3 to HBll. No. Set by HH16 to EEO later by MBlO to EOO. Yes. Is 0 p File I longer than 1 block? Store j (length of Op File 1 item within block) in v of W3 and u of VV5 CA BB14 1484 Come from 8812 IABC (0 Q 1 0 TP CC15 i QS vv5 BC4 2 TV VVl BC5 3 RJ BD4 BD 4 RP 30000 lIBll l 5 TP TI30000 J Mask 0 07777 0 l f Set RP command for bringing Op File to drum. Advance and check whether it exceeds region. Set by BCI or DDI Set by BC2 CA BC6 IA BD Come from BC3 o RA VVI VV3 Advance 1 QT BC4 Q CC15 mask is already in Q 2 SP BC5 17 Does Op File I exceed region? 3 SA Q 71 4 TJ CC55 30000 5 TO FT WM 6 MJ 0 WM Set by RJ in BC3 to BC4 } Go to alarm (region exceeded) CA 007 1485 Come from MM7. fixed 1ibr. prelim. settings IA DA } o TP CC61 TH3 1 RJ 2 TP CC15 Q 3 QS 5 OB 4 QT 5 A 5 LA A 71 6 TP A VV14 7 RA DB2 VV14 Set addr. for next i tem ~ List 1 10 RS VV14 CC62 Set index for List 1 11 MJ 0 DC TH2 TH Read 1 block of Tape 1 into buffer } Set RP for comparison with List 1 Set right addr. for first addition to List 1 and index List 1 # of addresses in CA DA12 Come from DG5 with RJ. Fixed libr. IA DB } Set by OA3 Already in List I? 0 RP 20000 OB2 1 EJ Ll1 OB10 2 TP A LI Set by OA7 No •. place CW in List 1. 3 RA DB CC53 Adv. u in RP command. 4 RA VV14 CC62 Adv. index for List 1 elements. 5 RA OB2 CC62 Adv. addr. in List 1 for next CW. 6 TJ CC60 OB10 7 MJ 0 MM14 10 MJ 0 30000 Yes, do nothing. } Have we exceeded region? Alarm (too many 1ibr. rout. referenced) CA OBll 1486 !AOC Come from DAII. o TN CC14 Q Mask 77 777770 to Q. 1 QT TI A 2 EJ LI DH 3 TP CCl4 CW of Q:> File 1 fixed libr. ~ u of A. Equal CW in List I? Yes t go to further handle No 5 QT 30000 A 6 LA A 17 7 AT OCI DCI 10 TO DCI DCII 11 TP 30000 A 12 EJ CCl2 DCI4 13 MJODC No. go back in loop. 14 RA DC2 CC53 15 TO CC33 DCI Yes, do settings for next CW in List 1. Reset DCI to first CW in Op File 1. 16 IJ VVl4 DC 17 MJ 0 MB2 Q 1 Set next addr. for comparison. Is next word "74 74747 47474"? Are we thru with List I? No, go back in loop. Yes, go to rout. for handle normal 1i br. Tape, or changed by ML5 to TT. skip normal libr. Tape. CA OC20 1487 IA DD Come from BB1 or BB2 o RS W2 CC24 Form words in Op File 1 minus 170 1 TO CC36 BC4 Set RP command BC4 2 MJ 0 BC2 CA DD3 IADF Come from DH14 or DG7. fixed libr. 0 RJ EB7 EB 1 TP CC14 Q Place CW and drum addr. ____ Direct 1 and adv. counters. Restore mask in Q. 2 MJ 0 OC14 Back to handle next List 1 word. CA DF3 IADG Come from DH13 , fixed libr. 0 Tn 1 RA DG4 CC53 Set addr. of Op File CW in DG4 (after equality). Adv. by 1. 2 RA DG4 CC53 Adv. by 1. 3 TP CC13 Q 4 QT 30000 A 5 RJ DBlO DB Go to handle cross reference. 6 IJ VV15 DG2 7 MJ 0 DF Are all cross ref. handled? No, back in loop. Yes, go to handl. CWo DC1 DG4 } Put cross reference -+ A. CA 0010 1488 IA DH o TO OCl DHII Set RP command. 1 ill OCl DB3 Set addr. DH3. 2 TP 3 TP 30000 VV6 4 QT VV6 VV15 5 TV VVI DHII 6 SP VV15 17 7 AT CC63 DHlO CC14 Q Mask Save CW + # of lines in Op File item in VV6. Save # of lines in Op File item in VV15. Place next drum addr. for Op File item in v of DHll } Set addr. DH7 10 000 11 TP 30000 30000 12 RA WI VVI5 Adv. drum addr. 13 RS VV15 CC64 14 SJDFDG Subtr. 3 from # of lines to get index for cross ref. Ind. neg; skip hdl. cross ref., pos.go to bdl. cross ref. } Place Op File item ~drwm. CA DH15 lAEA @ Come from EE5 } K --+ 1st word Direct. II drum addr. of first statem. CW in Op File I ---+ u of SO 0 SP VV 17 1 TU A SO 2 TV CC4l EE5 @~@ 3 TV CC45 &&4 ®~@ 4 MJOEB -+@ CA &A5 1489 IA EB Come from EA4 or EE4 or EE5 o TU VV6 30000 Set by HH12 to [FDl] CW -... FDI 1 TV VV 30000 Set by HH13 to [FD2] 2 RA FD CC22 Adv. counter in FD by 2 in u 3 TV VV6 VV2 v of j'th word 4 RA VV VV2 K 5 RP 20002 EB7 } 6 RA EB CC21 7 TJ CC56 30000} K ~ FD2 ~temp 1 + temp 1--+ K. Updates drum addr. next item. 10 Adv. addr. in Dir. I for next CW. Set by HH21 to FB, later by MB12 to FF, in between used by DF5 in RJ. Is Direct.ory 1 too long on drum? Jump to alarm: THE PROBLEM IS TOO MJ 0 BD5 CA EBII LONG. IA EC @ 0 SP VV 17 1 TO 2 TV CC41 EE4 3 A SDI Come from EE4 1 J K~ 2nd word ® . . . @set in order to skip this later ~regiOn MJ 0 EB ~ CA EC4 1490 C2 Directory II Come from BB13 IA ED @ A v TP GGIS A 1 QS 5 ED4 2 1U 3 TP VV7 A VV6 VV7 4 -- 5 EJ LI EE 6 TV VV6 VV2 7 MJ RP 9()()()() FflI,. -~--~ --~ ""~ Fill J } f CW 1 0 FCII TP CC16 Q 1 QT VV6 A 2 EJ CC17 EE5 3 EJ CC20 EE5 G) 4 MJ 0 30000 (~) 5 MJ 0 30000 ,~ .l ~ -+ temp 1 --+@ IA EE 0 .: .. r.: 1'1" u~;:)., ~J1 v of j'th word CA EDlO @ RP ~A T ... rw vn .&.~ of u Come from BB13 Is first CW in Op File item 26--- Or 27---? Set by HH20 to EB, later by EA3 to EC and by EC2 to EB Set by HH20 to EA, later by EA4 to EB CA EE6 1491 Come from EB7 IA FB @ } 0 TP VV2 A 1 AT VV3 VVI0 2 TP CC24 A 3 TJ VVI0 FB6 4 EJ VVI0 FB6 5 MJ 0 FCll No 6 TV VVI FBI0 Case when file exceeds block 7 RP 30170 FBII Temp 1 + j ~ VVI0 Temp 1 + j > 120 --;.. FB6 ---;.@ TI~drum 10 TP TI 30000 11 RA VVI CC24 12 TP VV2 A 13 AT VV3 A 14 ST CC24 VV2 15 TP CC23 VV3 j 16 RJ TH2 TH Bring next block to core 17 MJ 0 FB ~® G + 120 ~G Temp 1 - (120-j) CA FB20 1492 --+ temp 1 =0 Come from FF5 IA FC G) @ 0 SP VV2 17 1 TP A VV13 2 TP CC15 Q 3 QS VV13 FC6 "'± II rJ'I1T .LV 5 TO VV4 FC7 6 RP 30000 FCIO 7 TP 30000 30000 lnr, VVJ. I I RP 3 (temp 1) TP TI + j [drum addr.] T:'r'''''7 1''-'' 10 RA VVI VV2 11 RA VV2 VV3 12 MJ Bring Op File I item to drum Come from FCI0 or FB5 or ED7 -+0 0 HB12 CA FC13 1493 IA FF o TP VV2 A 1 AT VV3 VVI0 2 TP CC24 A 3 TJ VV10 FF6 4 EJ VV10 FF6 5 MJ 0 6 TP CC50 A 7 ST VV5 VVl1 Come from EB7 } Temp 1 +j ~VV10 Temp 1 + j ~ 120--4 FF6 No~G) FC Case file exceeds block 10 TP CC15 Q 11 QS Wll FF14 12 TO 13 TV VVI FF15 14 RP 30000 FF16 15 TP 30000 30000 16 RA VV1 VV11 G 17 RS VV2 VV11 Temp 1 - (120-j) 20 TP CC23 VV3 j 21 RJ TH2 TH 22 MJ 0 FF Library Op File --+ drum VV4 FF15 J CA FF23 1494 + (120-j) =0 ~G ~temp 1 IA MB 0 1 0 002 1 o0 2 TP CC26 TH3 3 TV BC4 BB12 A n T 7777 rnT'I'n Come from DC16 after List 1 is read to drum mTT } Gets changed constants used by HH for presetting used by HH4 1 Read 1 block of Tape II and disable boxes 3 and 4 q neJ 5 TP TIl A Put second word 6 EJ CC4 MBIO lsi t "F ILE ~ 1" ? 7 MJ 0 BR7 No; alarm. .in.:::; .in J 10 TV CC44 BB13 0~@ 11 TV CC43 HB13 0+@ 12 TV CC46 EB7 13 RA HB13 CC22 14 RP 10002 HBll} 15 TP CC23 VV2 ~ A Gr@ Change test for "end of entry" " to" subrout" ~ 1 Clear VV2 words in block and VV3 words in Op File 1 item j ' lCf)' CA MB16 Come from HB23 IAML } 0 TP 5 A 1 EJ VCIO VC23 2 SJ ML3 MM Only variable library 3 TJ CC26 MLS Only fixed library 4 MJ 0 MMl Both libraries 5 TV CC43 DC17 6 MJ 0 MMl Case no library rout at all skip handling libraries but jump to adv. tape 1 by 1 block VC23 is patch in constant pool FC23 of Phase I I } Only fixed library CA ML7 1495 lAMM Come from HB23 o TV CC66 DAII 1 RJ TH2 TH Entry for only variable library, change exit Read next block on Tape 5 2 TP TI A 3 EJ CC7 U5 4 MJ 0 BR12 5 RJ TH2 TH 6 TP TIl A 7 EJ CC6 DA 10 RP 30170 MM12 11 TP TI 30000 12 RA MMll CC24 13 TJ CC65 MM5 14 TU HT WM 15 MJ 0 WM } Is first word List I? Jump to alarm: LIST 1 LABEL INCORRECT. Read next block of Tape 5 } Is it END OF ENTRY? Exit to DA handle of fixed libr. Set by HH14 to LI. Read whole List 1 to LIon drum Does it exceed region? } Go to alarm: REFERENCED. TOO MANY LmR. ROUT. CA MM16 IA TT Come from MLl (with no List 1) rsp HB13 with List 1 MJ 0 HG2 Exit out of Phase It go to Phase I I CA TTl 1496 Alarm Routine IA WM 0 TP 30000 UP3 1 RJ UP2 UP 2 MJ 0 HGl CA WM3 IA FT 0 o FTl 0 1 o FT2 4 2 66 33300 15254 3 51 25463 04701 4 34 65016 65151 5 01 46515 03222 Alarm, the problem is too long. CA FT6 lAHT 0 o HTI 0 1 o HT2 11 2 66 51510 14724 3 50 73014 63425 4 54 24547 30154 5 51 67663 45030 6 65 01543 03130 7 54 30502 63027 10 01 34500 16633 11 30 01525 45125 12 46 30472 27117 Alarm, too many library routines referenced in the problem. CA HT13 1497 Constants IA CC 0 50 00105 TI 1 01 01323 05001 2 01 66245 23001 3 01 01015 15201 4 31 34463 00104 5 30 50210 15131 6 01 30506 65413 1 46 34656 60104 10 65 67255 46650 11 01 31344 63001 12 14 14141 41414 13 o 11111 14 o0 15 o 1111 16 o 11000 0 11 o 21000 0 20 o 26000 0 21 002 22 020 23 000 24 o0 170 25 o0 OP 26 50 00102 TI 21 10 5 0 0 11111 0 1498 30 10 2 0 31 33 o 0 FDI o 0 FD2 o TI LI 34 006 35 007 36 53 o 30170 o 0 EE o 0 EA o 0 EB o 0 FB o 0 TT o 0 ED o 0 EC o 0 FF o TI 0 o 170 0 o 0 BC o 0 77 o1 0 54 005 55 TP TI BE 56 TV VV EF 57 030 60 TPADE 61 50 101 TI 32 37 40 41 42 43 44 45 46 47 50 51 52 ML 1499 62 0 0 1 63 RP 30000 DH12 64 0 0 3 65 TP TI DE 66 0 0 MB2 CA CC67 1500 Temporaries Segment. Phase I VV 2764 VVO ( ) K drum address of beginning of item 1 ( ) 2 ( ) 3 ( ) G drum address next TI item on drum Temp 1 ~ of word handled already within this block j (in v) length of Op File to be handled next TI 0 + j (in u) addr. in tape image where next Op File starts j (in u) ( ) Current word \ A { ":t \ J 5 ( ) 6 ( ) 7 ( ) Call word (in u) 10 Temp 1 + j 11 120 - j 12 Temp 2 13 Temp period 14 Ind. List 1 and working space 15 Ind. for cross ref. in Op File 1 item of fixed libr. and working space 1501 =0 (temp 1) 0 Segmentation Phase II RE VV2764 Temporaries Phase I RE MB1242 RE CF2627 RE LM2641 RE FA4260 Op File IIa RE ZA77000 RE BQ632 RE BR537 RE ST653 Segment table RE GK1000 RE TN20 RE UP421 RE TH2l Tape Handler RE TI3274 Tape Image RE DI3464 Drum Image RE S04l56 Directory II RE FD 40101 Directory I RE FP 7660 Op File Ill> RE OP45215 Op File I RE LI4l60 List I RE TE1300 Temporaries Phase II 1502 RE BB1373 RE EZ2163 RE CC1520 RE Il..2165 RE C01536 RE FF2173 RE CE1567 RE FG2266 PT1600 RE GG2273 RE 001602 RE G82325 RE EE1617 RE G12360 RE EF1657 RE GJ2404 RE EG1672 RE GL2407 RE EH1724 RE HH2414 RE EI1754 RE RC2464 RE EJ1766 RE RE EK2001 RE WN2567 RE EL2004 RE BU2572 EM2017 RE EU2606 RE EN2031 RE FU2614 E02064 RE FB7660 RE EP2067 RE OA1012 EQ2106 RE TT1241 RE RE RE RE FC2472 RE ER2117 RE ES2124 RK WSO RE ET2131 RE 5010000 RE EV2135 RE 5M7660 RE EW2150 RE SN10000 R&. EX2-153 RE EY2156 1503 IA BB Come from HG2 Phase I o MJ 0 BB3 Jump to start 1 MJ 0 BQ6 A1ann exit 2 MJ 0 ZA10 Normal exit 3 TP FC12 Q 4 QT 10 TE26 5 TP 6 ST TE26 A 7 TV A 10 10000 20000 - (00010) ~ 00010 30000 v v FC63 A 10 MJ 0 BB14 11 QT 7 TE26 12 EJ FC7 BB123 13 MJ 0 BB20 14 QT 10 A 15 SS 7 17 16 TO A 7 17 MJ 0 GI 20 TO FD BB73 21 RA BB73 FC10 22 TO SD BB42 23 RP 10005 BB25 24 TP FC7 TE22 25 RP 10021 BB27 26 TP FC7 TE 27 TP FC17 TE5 Is (7)v zero? Yes, clear 7 File 7u Go to form segm. length for this prob1. } Set RP command Set MD address of first statement Clear temporaries Set a and A to Same fixed Op File IIa addr. ,., 30 TP FC17 TE6 1504 31 TP FC20 TE7 Set y to fixed Op File IIb addr. 32 TP FC7 FP Clear first word of Op File rIb area 33 RP 13400 8835 } 34 TP 35 TU BB42 BB37 36 TP FC45 A 37 SA 30000 17 40 TO A BB4l 41 RP 30000 8B43 } 42 TP 30000 01 43 TP 01 TElO 44 TV 011 TEl 45 TV 011 TE4 46 TV TE5 BB47 47 TO 50 TV TE5 BB52 a address to BB52 51 RA BB52 FC5 a+1 52 TV 011 30000 # 53 RJ CEI CE 54 RA TE2 FC13 55 MJ 0 BB56 56 TP FC3 Q 57 QT TElO A 60 EJ FC46 DD Clear Op File ITa area FC7 FA Come from BB34 or EE34 Set u of repeat command BB41 Transfer next statement Op File item to drum Record 1st word of statement Op File in Temp 1 } # of lines in ~t and t2 this statement rout. a address to NT TElO 30000 Statement call word --. Op File IIa } of lines in routine ~ a + 1 Advance a and K by 2 and check exceeded region Free but needed Is CW 26---? 1505 } Come from BB60 or BB120 61 TV 01 TE15 62 RS TE15 FC6 63 TV FC47 TEll Set index for # of cross ref. (one higher since ind. jump in beginning Set addr. of first cross ref ~ TEll 64 1J TE15 CC Are all cross references handled? 65 MJ 0 BB66 Free but needed 66 RA TE6 FC6 Adv 67 EJ TE5 EE f3 70 SP A 17 Do hand1. of /3's 71 TU A BB72 Next CW to be processed for f3 ~ A 72 SP 30000 0 Set by BB71 73 RP 30000 BB75 74 EJ FD1 BB77 75 MJ 0 BR5 76 02 0 0 77 SN Q 17 } f3 by = a? 2 yes, go to switch Set by BB20 t 21 Search Directory I for call word at addr. f3 Go to alarm 5 (Directory incorrect) -j-n+r in u (-j-n+r )+(j +n) == r 100 SA BB73 0 101 SA BB74 0 102 TU A BB103 103 SP 30000 17 104 TU A BBl12 105 TU BBl12 BB107 106 TP FC45 A 107 SA 30000 17 110 TO A BB111 III RP 30000 BB113 } 112 TP 30000 DI Set u of BB103 r } + FDI Set by BB102 Set this Directory I addr. into of BBl12 u 30000 in v of A Set u address of BB112 Set by BB105 Set by BB110 transfer cross ref. Op File I item Set by BB104 from MD to drwm image 1506 113 RA TEl 011 114 TV TE6 BB116 115 RA BBl16 Fe5 116 TP 011 30000 117 SP DI 0 1 ')1"\ ~"v TJ FC3 BB61 121 RF CF11 CF 122 MJ 0 BB66 123 TP FC7 7 124 MJ 0 BB20 Add 1 # of lines in this routine to t Enter # of lines in this routine in the address following the CW in Op File ITa J 1 Is 77000 > CW? If no t then 77_ -:. (I)Jo to set index for handl. cross ref. Go to handle 71___ case j - - ~(haS no cross ref., therefore no in ex needed) } Come from BB13 Setting of 00007 in case no single valued variables CA BB125 1507 TA CC Come from BB64 0 SP TEll 17 1 TU A CC2 Put CW at addr. given by TEll in NT 2 TP 30000 TE20 Save found CW in TE20 3 TP FC3 Q 4 QT TE20 A 5 EJ FC53 CC14 27--? 6 EJ FC46 CC14 26--? 7 TP FC54 Q 10 QT TE20 A 11 EJ FC55 lllI 12 RJ CD13 CD 13 MJ 0 BB64 14 RJ CD30 CD14 15 MJ 0 BB64 } Mask 4...--~? None of the three cases for Op File IIa t 26--- or 27--- J Case for Op File lIb CA CC16 1508 IA CD Come from CC12 or . " 0 TO TE2 CD3 1 RA CD3 FClO 2 SP TE20 0 3 RP 30000 CD5 4 EJ FA2 CDII 5 TV TE5 CD6 Set v of NI 6 TP A 30000 Place CW in Op File IIa 7 RJ CEI CE Adv. by 2 in v and check over- Set n in u of RP command CD3 1I Check whether CW already in Op File IIa J Op File IIa flow and take care of 77 case 10 RA TE2 FC13 Adv. by 2 in u 11 RJ CDII CD12 Exit possible for Vary (DD region) 12 RA TEll FC5 Adv. to next cross ref. address 13 MJ 0 30000 Exit for RJ 14 SP TE7 0 15 SSI FC20 17 Come from EOI or EP5 or . Next addr. in Op File lIb Subtract first addr. and shift to u 16 TU A CD21 Set n in u of RP command CD2l 17 RA CD2l FClO Check whether CW already in Op File lIb 20 SP TE20 0 21 RP 30000 CD23 22 EJ FPl CD26 23 TV TE7 CD24 Set v of NI 24 TP A 30000 Place CW in Op File lIb and adv. 25 RJ CE5 CE4 Op File lIb 1509 26 RJ CD26 CD27 Exit possible for Vary 27 RA TEll FC5 Adv. to next cross ref. address 30 MJ 0 30000 Exit of RJ CA CD31 1510 Op File IIb IA CE 1 Come from CF or CF2 0 RA TE5 FC6 1 TJ FC64 30000 2 MJ 0 EW 3 000 Free 4 RA TE7 FC5 Come from CD25 5 TJ FC65 30000 Adv. next addr. for Op File lIb by 1 and check whether region exceeded 6 MJ 0 EW 7 000 } Op F ITa Adv. next addr. for Op File IIa by 2 and check whether region exceeded Op F IIb Free CA CE10 (patch) IA PT o TJ TEl £H10 1 MJ o EQ2 CA PT2 1511 FA = 4260 FC64 = SM = 7660 space for 3400 Come from EH3 FP = 7660 FC65 = SN = 10000 space for 120 IA CF Come from BB121 0 RA TE12 DIl Adv. TE12 1 SP MBl 1 2 TJ 011 CF6 3 SP MBl 0 4 TJ 011 CF7 5 MJ 0 CFI0 6 RA TE22 FC5 7 RA TE22 FC5 10 RA TE22 FC5 11 MJ 0 30000 } Is # of elements > l7776? } Is # of elements > 7777? Adv. TE22 Exi t used only in RJ. by BB121 CA CF12 1512 Come from BB57 after detected 26---CW IA DD 1 o TP FC12 Q 1 QT TE10 A 2 EJ FC57 DD5 3 TP DI4 TE20 4 RJ CD11 CD J 5 TP DI3 TE20 } 6 RJ CD26 CD14 Store (after check) last (jump out) CW in Op File lIb 7 TV FC61 EE Set switch 10 RJ DD10 DD12 Chance for jumping once in Vary start (orig. set to jump, reset by EF14) 11 MJ 0 BB66 12 TP DI2 TE31 Save CW of last statem in Vary loop Save addr. in Op F 11a of first statem CW in Vary loop 13 TV BB47 TE23 Done once in Vary loop 14 MJ 0 DD11 J Mask out # of lines Is it 4? Or 5 ? Go NI L in Op File ITa Exit to~ CA DD15 1513 IA EE Come from BB67 o MJ 0 EEl Switch for Vary set by DD7 to EF (Vary), restored by EE30 1 RA TE TEl Come from EE or EVIl form T + t 2 SPTEO 3 TJ TE21 EE35 4 RS TE TEl T - t 5 ZJ·EE6 EG2 Is T = 0 ? (i.e. are we at beginning of segment?) 6 TP TE2l A 7 TJ TEl EE14 10 SP TE13 17 Case t < M and ne'XtT would be > M TE13 was filled when bef. at EE3 we had gone to EE17 11 TU A EE12 Record latest statem. CW into first word Op File IIb (for IP command) 12 TP 30000 FB 13 MJ 0 14 TP FC61 A Come from EE7 are we in Vary loop? 15 EJ EE EK Yes; go to handle Vary case 16 MJ 17 TV FC62 EE 20 TV FC50 DDlO 21 TP TE5 TE13 22 TP TE7 TE14 23 TP TE12 FAI 24 RA TE3 TE4 } ~T is M > T? } ~T Is t > M ? EI Go and make segment with settings before 0 EG5 No; go to alarm (statem. too big) Come from EE3. case M > T Restore switch to Non-Vary case Reset RJ to beginning position for Vary loop } = Save values of this a -+Temp 4 TE13 case, for the case y-'Temp 5 = TE14 we overshoot with TE12 = Temp 3-+ next statem. second word in Op File IIa T2 + t2 -+ T2 1514 25 TP FC12 Q 26 QT TEIO A 27 SP A 17 30 AT 31 TP FCll Q 32 QT A A 33 EJ SDI FF 34 MJ 0 BB35 No, go back to handle next CW 35 TP FC7 TE30 Patch, clear TE30 and save TE22 in TE40 36 TP TE22 37 MJ 0 EE17 CA BB42 BB42 Come from EF6 Case we are not yet at end of Vary loop ~ segm. length, Mask 0 0 77777 -+ Q Adv. u portion of transfer command by # words in Op File item Set u in BB42 1 J l Have all statem. CW's been processed? i.e., entered in Op File ITa? Detects end of needed information J TE40 EE40 1515 IA EF Case we are inside Vary loop Come from EEO after having been in DD o RA TE24 TEl t4 + t = t4 1 RA TE25 TE4 t5 + ~ = t5 2 TP FCII Q Mask 0 71777 0 3 QT TE31 TE26 4 QT TEIO A Are we at end of Vary loop? 5 EJ TE26 EF7 Yes 6 MJ 0 EE25 No (skip saving a and r since in Vary only first import.) 7 TP TE24 TEl 10 TP TE25 TE4 11 RP 10002 EEl 12 TP FC7 TE24 1 r'ea+ V.L "'4 J J. CA EFI3 1516 .... "'d au + "5 ~ Q IA EG Case T > M, yet we are at the beginning of segment (implies t > M) 1 o RJ EG EGl 1 MJ 0 EN3l 2 TP FC3 Q 3 QT FA2 A 4 EJ FC46 EJ 5 TU 80 WN 6 MJOWN 7 TP FC7 TE27 } Come from EO!. RJ exit for EP15 Patch to EO. Exit after region check when region not exceeded J Come from EE5 or EW2 1 Is CW at beginning of 26---? ~ File ITa a J } Go to alarm (segm. too big) 10 TP FC7 TE30 11 RJ EG11 EG12 Inserted for j wnp out of EK 12 TV TE5 EG14 Come from EGll or EH11 or EG27 13 RA EG14 FC5 14 RA TE27 30000 15 TV EG14 EG16 } T 16 RA TE 30000 17 TP TE2l A 20 TJ TE EH12 21 MJ 0 EX 22 LA A 23 TO A EG25 24 TP FC3 Q 25 QT 30000 A 26 EJ 27 MJ 0 EG12 } +(a + 1) ~T IS~M? ~® Adv. a by 2 taken out here, see EG30 now 17 FC46 EH Is CW at a a 26---? J 1517 30 RA TES FC6 } 31 MJ 0 Patch t come from EM7 adv. a by 2 EG22 (Patch for replaced instruct. EG2l) CA EG32 1518 IA EH Come from EElS or EG26. Case t > M and we are not at beg. of segm. 0 RA TE30 FC5 Set to) = 1. Vary v 1 RS TEl TE27 Come from EK2 or EH 2 TP TE2l A 0) rt'IT 1'1'It:', .U::.l ~Ull"\ 1 Is t Index for Vary within t - tl =t > M? V .ttJ 4 SP TE5 17 Case t < M 5 TU A EH6 Record statem. CW into first CW of Op File lIb (for IP command.) 6 TP 30000 FP 7 MJ 0 EI2 Go to D, exit to write on tape 10 RA TEi TE27 t + tl 11 MJ 0 EG12 Go to@ 12 TV TE5 EH14 13 RA EH14 FC5 14 RS TE 30000 Come from EG20 or EH27 We finally made T - ( a + 1) ~T. first part too big and have to go back to last statement and form segm. resp. back to last Vary within Vary 15 SP TE5 17 16 TU A EH20 17 TP FC3 Q 20 QT 30000 A 21 EJ 22 EJ FC53 EH24 J.:"UJ.V J CW FC46 EQ =t restore t since it is still too big and we have to make beginning segment bigger at a = 26--1 Vary beginning, go and form segment OK, CW at a = 27---1 Statem. CW. go to cneck whether Vary insIde Vary 1519 23 MJ 0 EM3 24 TP TE30 A 25 ZJ ES EQI 26 RS TE5 FC6 Reduce a by 2 27 MJ 0 EV Jump to try with reduced length after hdl. 26, 27 case that go out Other CW (for inst. libr. rout.) go farther back and try again } Is t.3 = O? =f 0 Vary in Vary = 0 not so CA EH30 1A E1 Come from EE13 or EW1 o RJ ET3 G113 Set addr. BB42 1 MJ 0 E16 Jump to restoring Vary settings 2 TP TE5 TE13 Come from EH7; save a 3 RJ ET3 ET Set addr BB42 4 TP TE12 FA1 Save 77 count 5 TP TE7 TE14 Save y 6 TP 7 TV FC62 EE FC7 TE30 10 TV FCSO DDI0 11 MJ 0 FF Restore Vary settings Jump to write segment on tape CA E112 1520 IA EJ Come from EG4 resetting to Vary in beginning of segm. 1 o TP Fe17 TE5 1 TP TE7 TE32 2 TP FC20 TE7 3 TP Fe7 4 MJ 0 EJll Jump to clearing TE22, t 1 , t3 and exit 5 TP TE13 'lE5 Come from EK 6 TP TE7 TE32 Save TE7 = Y in TE32 and set counters back to Vary start 7 TP TE14 TE7 10 TP FAI TE12 11 TP FC7 TE22 Clear TE22 12 MJ 0 EG7 Jump to clearing tl and t3 and to exit from RJ r~12 Save TE7= Y in TE32 and set counters back to segment start J CA EJ13 Come from EE15 resetting to Vary not in beginning of segment. IA EK o RJ 1 TP TE40 TE22 2 MJ 0 EGII EJ5 Do resetting of counters Reset TE22 EHI CA EK3 1521 IA EL Come from LL1 or LL3 0 TP FC3 Q 1 SP TES 17 2 TU A EL3 3 QT 30000 A 4 EJ FC3 EL6 S MJ 0 30000 Not 77---, skip changing TE12 and TE22 (set to ER or to EL12) by EM by EM3 6 000 Adv. resp. reduce TE22 7 TV TES EL11 Adv. resp. reduce TE12 by instructions 10 RA EL11 FCS 11 000 12 000 Is CW at hand a 77---? } Used !:! Jump back to rout. CA EL13 1522 # of Come from EXI IA EM Set tiER" in v of EL5 EL5 0 TV FC74 1 RP 30002 LL 2 TP EM6 ELII 3 TV ER2 ELS 4 RP 30002 LL2 1 5 TP EMIO ELII J 6 RA TE12 30000 } 7 MJ 0 EG30 10 11 Entrance for going forward Come from EH23 Set ttEL12tt in v of ELS Entrance for going backward Const. for ELII, ELl2 in forward case RS TE12 30000 } Const. for ELIl, ELl2 in backward case MJ 0 EH26 CA EMl2 IA LL 0 TP LL4 EL6 Come from EMI 1 MJ 0 EL Forward 2 TP LL5 EL6 Come from EM4 3 MJ 4 RJ LM14 LM Const. for forward 5 RJ LM20 LM15 Const. for backward 0 EL Backward CA LL6 1523 IA I..M Come from EL6 o TP FC5 A Entrance for forward 1 SA TE5 17 2 TO A 3 IP 30000 TE34 4 SP 5 TJ TE34 LM11 6 SP 7 TJ TE34 1..M12 1..M3 Is # of inst. > 17776? Is # of inst. > 7777? MB1 1 MB1 0 } 10 MJ 0 1..M13 11 RA TE22 FC5 12 RA TE22 FC5 13 RA TE22 FC5 14 MJ 0 30000 Exit, used in RJ from EL6 for forward case 15 RP 20003 LM17 } Entrance for backward 16 RA LM11 8876 Change RA to RS in LM11-13 17 RJ LM14 LM Handle TE22 for 77 backward 20 RP 20003 30000} 21 RS LM11 8876 Adv. resp. reduce TE22 000 when going Exit, used in RJ from EL6 for backward case CA LM22 1524 Come from EQ10 IA EN o TP TE16 A 1 EJ TE5 EH4 2 SP TE16 17 3 TO A EN5 4 TP BB73 EN6 5 SP 30000 0 6 000 7 EJ F01 EN10 1 Are we finished with all CW's in Op File ITa? J Exit 1 Search Dir. I for CW given at new a Set by EN3 Set by EN4. alarm RP ... BB75 exit to 10 SN Q 17 11 SA EN6 0 12 SA EN7 0 13 TO A EN14 14 SP 30000 17 Set by EN13 15 RJ EN15 EN16 Set u of EN24. addr. ET1 16 TO A EN24 17 TU EN24 EN21 20 TP FC45 A Set u of EN23 21 SA 30000 17 Set by EN17 22 TO A EN23 23 RP 30000 EN25 } 24 TP 30000 01 Set u addr. in EN14 RJ for use in Set by EN22 Transfer Op File I item to drwm image Set by EN16 1525 25 TP FC3 Q 26 QT 01 A Is CW 26---? 27 EJ FC46 EO Go to handle lIb 26-.- 30 EJ FC53 EP Is CW 27---? 31 RA TE16 FC6 Come from EN30 or EG1 or EP2. Adv. new a addr. by 2 32 MJ 0 EN Go back in loop Go to handle IIb 27--- CA EN33 IA EO Come from EN27 0 RA TE7 FC5 Adv. Op File lIb address 1 TJ FC65 EG Did we exceed region? patch EG-EGl to EN3l 2 MJ 0 EY Yes; jump to make segment CA E03 1526 CW 26-- No, go via IA EP Come from EN30 1 J CW27--- o TP FC12 Q 1 QT D1 A 2 ST FC6 TE17 Set index for # of cross ref. (I too high, pre-done) 3 TO 0012 EP6 Preset EP6 to 012 4 IJ TEl7 EP6 Are all done? 5 MJ 0 EN31 Yes 6 TP 30000 TE20 (Starts with 012) 7 TP FC3 Q 10 QT TE20 A 11 EJ FC46 EPl5 CW 12 EJ FC53 EPl5 CW = 27---? 13 RA EP6 FC51 Adv. addr of cross ref. 14 MJ 0 EP4 Go to handle next cross ref. 15 RJ EG EO 16 MJ 0 EPl3 Mask out } # of lines Mask out CW code } = 26--? Put CW in Op File lIb resp. adv., Op File lIb addr. (since the CW is already in from the first try) CA EPl7 1527 IA EQ Come from EH21 o RS TE30 FC5 Subtract indicator for Vary in Vary by I 1 RJ EQI EQ2 Inserted for RJ use by EY 2 TP FC20 A 3 EJ TE32 EH4 4 TJ TE7 EQ7 Is Y > FC20? (0 0 5 TP FC17 TE16 Case Twas 6 MJ 0 EQIO 7 TP TE13 TEl6 Case Twas :f 0 MJ 0 EN Go to handle case Op File IIb 10 } Has anything been in Op File lIb before we went back? No, skip the part EQ (TE32 set by EJI or EJ6) FPI) =0 Set new a in either case to starting addr. CA EQII IA ER o EJ FC46 ER3 1 EJ FC53 ER3 2 MJ 0 EL12 3 TU 4 MJ 0 EL7 Come from EL5. forward } Handle TE3 for going Is CW 26---? Is CW 27---? Skip changing TE3 = T2 constant also; by EM3) FC74 ELII Change in ELII the TE12 (v used as ~ TE3 Jump to change TE3 (but not TE22!) CA ER5 IA ES o TV TE5 ES2 1 RA ES2 FC5 2 RS TE3 30000 3 RJ ES3 ES4 4 MJ 0 EH26 Come from EH25 Handle TE3 for going backward Inserted for use in RJ by EV CA ES5 1528 Come from E13 or GI14 IA ET o SP TE13 17 1 RJ EN15 EN3 2 TU A BB42 3 MJ 0 30000 1 Set addr. BB42 CA ET4 Come from EH27 IA EV o SP TE5 17 1 TU A EV3 2 TP FC3 Q 3 QT 30000 A 4 EJ FC46 EVIl 5 = 26--? CW at a EJ FC53 EV7 CW at a = 27---? 6 MJ 0 EH12 Exit after handling either case 7 TP TE30 A } Is TE30 = O? } Reduce TE3 for going backward EV6 EVIl 10 ZJ 11 RJ ES3 ES 12 MJ 0 EV6 CA EV13 IA EW o TP FC7 A 1 TJ TE EElO 2 MJ 0 EG2 Come from CE2 or CE6 (Op File IIa or b exceeded) } Is T = O? No; make segment (with restor. BB42 from TE13) Yes; start normal Vary way for T = 0 CA EW3 1529 Come from EG21 IA EX o TP TES A I TJ FC64 EM No 2 MJ 0 EHl2 Yes; go backward where segm. can be made Is Op File ITa exceeded? } CA EX3 IA EY Come from E02 (after Op File lIb region exceeded) o RS TE5 FC6 Reduce a by 2 1 RJ EQl EH12 Go back to next possible break off point 2 TP TE5 A 3 TJ TE16 EZ Yes; break off 4 MJ 0 EYl No; go back in loop Is a farther back than TE16? } CA EY5 IA EZ Come from EY3 o TP FC20 TE7 Do setting for final Op File lIb (after it was exceeded) and jump to handling Op File lIb 1 MJ 0 EQ5 CA EZ2 1530 Come from EE33 or IA FF o r Jump first RJ GJ2 GJ to set TE4l, later set by FFI to MJ 0 FF12 Set swi tch in FF to MJ 0 1 TP RCI FF 2 RP 10024 FF4 } 3 TP FC35 TI 4 IP FC27 5 TP FC30 TI25 6 RP 10142 FF10} 7 TP FC35 TI26 Tl~4 } FF12 Set Zr s in beginning of first block Set FILE II A lWO A A /j, done once Done once Fill up with zt s 10 RJ FG2 FG Set tape hd1. code for right tape (3 or 6) 11 RJ TH2 Write first block 12 TP FC3l TI TH } 13 TP FC32 TIl 14 SP TE13 0 15 ST FC17 TI2 16 TP FAI TI3 17 SP TE 0 20 SS FAI 0 21 AT FC6 TI4 22 SP TE41 0 23 AI TE3 TI5 24 RP 10162 FF7l} 25 TP FC35 TI6 26 RJ Set "'NO of tape /j, A4SEGMT tt in first 2 words Set length of Op File IIa for this segm. in 3rd word of tape Set # of 77---lines in 4th word of tape # of lines in statements + Routines + 2 to 5th word of tape } Address for IP command (N + T2 + 1) Fill first block up with Z's Write first block on tape 3 TH2 TH 1531 } 27 SP TI2 0 30 DV FC2l TE16 31 TP A TE17 32 TP RC2 FF70 33 TU FC26 FF37 34 IJ TE16 FF36 35 MJ 0 FF43 36 RP 30170 FF40 Yes; go to handle last fractional block Come from FF34 37 TP 30000 TI [FA2] in beginning set by FF33 40 RJ TH2 TH Write next block 41 RA FF37 FC22 Adv. addr. 42 MJ 43 SP TE17 0 44 ZJ 45 SP A 17 46 AT RC4 FF50 47 TU FF37 FF5l 50 RP 30000 FF52 51 TP 30000 TI 52 SP TE17 17 53 SS FC22 0 54 SN A 0 55 AT RC5 FF57 56 RA FF60 TE17 57 RP 30000 FF6l 60 TP FC35 TI Set index how many more Remainder saved for left over of words Set beginning addr. FA2 (Op File ITa) in FF37 Are all complete blocks written? 0 FF34 FF45 FF63 # Op File II Go back in loop for next block } Come from FF35 after all whole blocks written. Are there words for partial block? Set last words in partial block Fill rest of block with Z's 1532 61 RS FF60 TE17 Restore last instr. 62 RJ TH2 TH Write last data block 63 TP FC36 TI 64 TP FC37 TIl } 65 RP 10166 FF67 I t...t... VV TO 67 RJ TH2 TH Write last block 70 000 Set by FF32 to MJ 0 GG or by GG14 to MJ 0 GG16 71 TP TI4 TE37 72 MJ 0 FF26 ....... ~r'lt::. .I:vVo.J 'TIT"') ~~" j Place end of entry Fill up with Zls r } Patch Save first T14 for forming segment table CA FF73 Set code word for tape 3 resp. 6 wi th TN ;/ 0 IA FG o SP FC40 0 1 AT TN TH3 2 MJ 0 30000 3 SP FC4l 0 4 MJ 0 FGl } Set code for: WRITE 1 BLOCK OF TAPE Set code for: REWIND TAPE CA FG5 1533 (only used in RJ) IA GG Come from switch FF70 } o TP FC33 TI 1 TP FC34 TIl 2 SP TEl4 0 3 SS FC20 0 4 AT FC5 TI2 5 RP 10165 GG7 6 TP FC35 TI3 7 RJ TH2 TH 10 SP TI2 0 11 OV FC2l TE16 12 TP A TE17 13 TO FC4 FF37 14 TP RC3 FF70 15 MJ 0 FF34 Jump to write rest of blocks 16 TP FCII Q Come Put TWO [),. B 11 SEGMT 11 in TI and TIl Put 1 } # of entries in TI2 Fill rest of first block with Z's ..J Write one block Set counter for # of blocks Save remainder for addr. to fill with zt s Restore first addr. ofOp File IIb in transfer command Set switch E to E2 (MJ 0 GG16) from swi tch FF70. Mask 0 77777 O~Q 17 QT BB42 A Have all 20 EJ SOl GI22 Yes; go to handle segm. table for last segm. and finish up ~t GG22 21 MJ 0 GH Go back to beginning for next segm. after having handled segm. table 22 TP FC35 TI 23 TP FC35 TIl 24 RJ TH2 TH ~tatem. CW's been processed? Write sentinel block 1534 25 RJ TH2 TH Write second sentinel block '1 I 26 RJ FG2 FG3 27 RJ TH2 TH 30 TP FC42 TH3 Transfer parameter to read in Phase III 31 MJ 0 BB2 Go to: J Rewind tape for Op File III CA GG32 1535 EXIT OUT OF SEGMENTATION IA GH Come from GG21. o RJ GH GI15 Jump (only once) to set ST and do pre settings 1 SP TE22 2 AT TE37 A A + 2x 3 DV FC21 TE34 or 4 ZJ GH5 GH6 Is there remainder? 5 RA TE34 FC5 6 RA TE34 FC5 Add 1 for remainder of A + B 170 Add 1 for sentinel block 7 SP TE22 1 A # 0f +B Form segment table 77 CW t sin Op Fi 1e I I a 170 170 Must be done separate because of ZJ before! of 77 CW's in 0D File 11a 170 10 DV FC21 TE26 2 x 11 ZJ GH12 GH13 12 RA TE26 FC5 or B 170 B Add 1 for remainder of 170 13 RA TE34 TE26 Add both terms 14 TP TE33 Q Mask (event. shifted) 15 SP TE34 33 16 QS A ST2 17 RA GH16 FC5 Adv. last instr. by 1 in v 20 1J TE35 GH32 Go to Exit (handl. next segm) 1nd 178 down? 21 TP FC73 TE35 Res. ind. 22 TV G121 GH16 Set GH16 to STI in v 23 LQ 24 RS GH15 FC72 Reduce shift count by 11 25 1J TE36 GH32 Go to Exit 26 TP GH32 A 27 EJ FC71 GH32 } # Mask the TE33 33 # =# of blocks of blocks into segm. table 1nd 38 down? Was this last segm.? Yes 1536 -+ GH32 TE34 ~Q Shift mask } ~ 30 TO ED WN 31 MJ 0 WN 32 MJ 0 BB23 No 1 r alarm MORE THAN 63 SEGMENTS .J Gets changed with last segm. in RJ to MJ 0 GI23 CA GH33 1537 IA GI Come from BB17 (only once) o TP 12 A Indicator for READ, LIST, BOTH in 1 EJ FC7 GI5 Zero? 2 EJ FC51 GIIO One? only LIST 3 EJ FC13 Gnl Two? only READ 4 SP FC 0 Three assumed 5 AT FC67 ST 6 TV A 12 Add space for Tape Hdl + Contr + 1 + Term buffer ~ ST Set v part of 12 7 MJ 0 GL After ST set, do preliminary settings 10 RS GIll FC51 Case only LIST 11 SP 12 MJ 0 GI5 13 TP TE40 TE22 14 MJ 0 ET 15 TP FC70 TE33 Come from GH (only once) put mask in 'lE33 16 TP FC73 TE35 Set ind. for first time 17 (20 rows) 17 TP FC25 TE36 Set ind. 3 (4 words per row) 20 RP 10020 GHI 21 TP FC7 STI 22 RJ GH32 GH 23 MJ 0 GG22 u~A FC2 0 } Case only READ Come from EI set # of 77 CW's for forming segm. Go to setting BB42 (RJ p.xit of ET3 is already set to Ell) } } Clear rest of segm. table and jump to GHI Come from GG20 Case we have last segment CA GI24 1538 IA GJ 0 TP ST A 1 AT Fes TE41 2 MJ 0 30000 Come from FF 1 r J Set once for whole program N in TE4l to FN + 1 for FN + 1 + T2 (later formed) Used only once in RJ from FF CA GJ3 Gome from GI7 IA GL 0 SP 7 25 1 LT 0 A 2 ST ST TE21 3 RS TE21 FG6 4 MJ 0 8811 Set TE21 segment length GA GL5 1539 IA HH Come from CCII Case CW 4-- o TO TE2 HH3 1 RA HH3 FClO 2 SP TE20 0 3 RP 30000 HH7 Is this 4....... CW already in Op File IIa? No 4 EJ FA2 HH5 Yes 5 RA TEll FC5 6 MJ 0 BB64 7 TU 8873 HHlO 10 RP 30000 HH12 Search 11 EJ FDI HH14 Found 12 TUFUWN 13 MJ 0 WN 14 SN Q 17 15 SA HHlO 0 16 SA HHll 0 17 TU A HH20 20 TP 30000 TE26 21 TV 22 TP 1E20 30000 Place CW in Op File IIa 23 RJ CEI CE Adv. by 2 in v and check exceeded region 24 RA 1E2 FC13 Adv. by 2 in u } Adv. to next cross ref. See whether all handled? } Not found Go to alarm Found, put drum address (where CW placed in O·p File IIa) j search 4-- in Directory I and store drum address (Op FileI) in TE26(v) ~TE26 TE5 HH22 1540 25 TP F 0 .... 30 50270 15131 37 01 30506 65473 40 71 00103 TI 41 10 3 0 42 50 1 1100 43 o0 22 44 o0 24 45 o0 30000 46 o 26000 47 o0 DI2 50 o0 DD12 51 010 52 o0 53 o 27000 0 54 o 70000 0 55 o 40000 0 56 o 23000 0 57 004 60 o0 61 MJOEF 62 o0 / 0 8846 TE31 EEl 1545 63 o 0 SO 64 o 0 SM 65 o 0 SN 66 005 67 o 0 GK 70 77 70000 00000 71 MJ 72 o 0 11 73 o0 74 o TE3 ER 0 GI23 17 CA FC75 1546 Temporaries TE Segment Phase IT TEO T # 1 t # of addresses per sentence; set with TV in BB3l 2 of addresses (generated rout.) in segm. for 22, 24, 25, 26, 27, 40, 50, 77 K # of entries in 0 p File ITa # of addr. for 26, 27 only; adv. in EE24 T2 + t 2 -.T2 # of addr. per sentence; set with TV together with TEl 3 4 5 a Present statem. CW addr. of Op File IIa 6 f3 Next statem. CW addr. of Op File ITa 7 y Next statem. CW addr. of Op File lIb TEMP 1 Statem. CW (u) + # of words in item set with TP 11 TEMP 2 Addr. of cross ref. CW; set by ... 12 TEMP 3 # 13 TEMP 4 Op File IIa addr. for this statem. CW 14 TEMP 5 Op File lIb addr. for last cross ref. of previous statem. CW 15 INDEX 1 Index for 16 INDEX 2 # 10 [ J 17 20 21 r L ] [ (v) of 77--- data words in this segm.; adv. by 1 with RA # of cross ref; set with TV of full blocks to be written and used by EN, EQ for storage words in partial block R # WS Holds CW to be placed, whose addr. is in TEll ] ~. lenqUlwr prool-em; fixed for whole problem 1547 22 [ 23 24 t4 25 t5 26 [ ] Counter for # of 77 CWts (CW's, not addresses) ] Op File IIa address of first statem. CW in Vary loop ] Storage space used by EF3, BBIO, HR, GH of instructions for 1 sentence at a time 27 tl # 30 t3 Index that we are in Vary within Vary 31 [ J CW of last statem. in Vary loop for comparison [ 32 33 [ [ 34 ] Storage for y in EG and EH part ] 77 70000 00000 mask shifted for segm. table ] Quotient for GI and GH for segm. table 35 [ ] Index for 178 for segm. table 36 [ ] Index for 3 for segm. table 37 [ J Storage for TI4 of first block for segm. table 40 [ ] Storage for reset TE22 41 [ J Storage for N + 1 1548 2. ALLOCATOR 2. Allocator ALLOCATION Setup The setup routine for the Allocator reads the Dimension List from magnetic tape and modifies it so that each array is represented by two words instead of the variable (up to six) word items of the original list. modified Dimension List is then stored on the dr~m The for use by the Allocator. The Dimension List is modified at this time because the Allocator and later the Processor make extensive use of drwm storage. Between these phases, the Initialization Generator must have more Dimension information than is available in the modified Dimension List so the original Dimension List is read again from tape and stored on drum preceding the operation of that phase. After modifying the Dimension List, the setup routine adjusts the Dimension List counter (at location 00006) to reflect the length of the modified list. The counter for the original list is saved at location 00015. The tape on Uniservo 5 is then moved forward past the Constant Pool and Symbol List so that it is positioned properly for the Allocator to write Op File III, Preface, and Termination. The seven blocks of the Allocator are then read from the UNICODE Master Tape and control is transferred into the Phase. 1551 YES Reduce block t--_~count by number of blocks in buffer Determine number of blocks in Constant Pool & Symbol List and set Tape handler code word to· move past them Save large Dimension List counter (00006) in Set index 1 number of I---......;w items in Dimension List Store word (drum YES address) in next~~~ available working area Has end of I---~ buffer been reached? Advance working area address Set tape handler code word to read Allocation Phase to H.S.S. 'c--~to 00015. Advance buffer address Set to read full buffer of Dimension List Set index 2 to 5 for character count ~--=:w Fill 5 words of working storage (WS) with spaces Has end of buffer been reached? Allocation Set-Up Flow Chart Determine location of symbol word in buffer Have all Dimension List items been modified? Assemble word and store in temporary area Save large Di.mension List counter (00006) in 00015 Dimension to buffer Move all characters up one location in WS Store next character from left in last word of WS I----~ ~--~. Adjust (00006) for modified Dimension List YES Store address of word following lastl---~ array at end of modified Dimension List Store modified Dimension List on drum for use by Allocator t---~ Set beginning address for processing Allocation Set-Up (cont.) Enter BR routine alarm 10 compiler I--_~inconsi stency .. Tap 5 positioned incorrectly. Region for Allocation Setup RE DC22 Buffer load (in blocks) RE TH21 Tape handler RE 0040101 Modified Dimension List RE 8R537 Compiler Inconsistency Routine RE ZI7230 RE ZZ7270 RE ZR7354 RE ZX7362 RE ZT7403 (1) Temporary (holds number of blocks of Dimension List) RE WS674 Working area RE ZY2705 Buffer area RE 1.£674 Storage and execution address of Allocator RE MA700 7 RE LA7064 (= WS 2011) = # blocks Allocation phase? LA = last word of buffer area. 1554 Allocation Setup IA ZI o TP ZX Q 1 QT 14 A 2 ZJ ZI3 ZI24 3 LT 11 A 4 ST ZXl ZT 5 TP ZX2 TH3 6 RJ TH2 TH 7 TP Zy A 10 EJ ZX3 Z1l2 11 MJ o BR12 12 SP ZT 13 TJ ZX4 :Il6 } 14 RS ZT ZX4 Reduce block count by buffer length. 15 TO Z113 ZR Set to read full buffer of Dimension List. 16 RJ ZZ63 ZZ To build modified Dimension List. 17 TP ZX2 TH3 20 RJ TH2 TH 21 TP Zy A 22 EJ ZX17 Z125 23 MJ o 8R12 Tape #5 positioned incorrectly 24 TP 6 15 Large Dimension List counter 25 SP 14 o 26 LT 3 A Is there a Dimension List? } # blocks Dimension List ~temp. Read one block and check label for DIMENS. Tape #5 positioned incorrectly. Will Dimension List exceed buffer area? Read one block and check label for Ll 0 F END } 1555 # blocks in Constant Pool ~15. 27 LQ 14 Q17 30 QA ZX13 A 31 SP A 25 32 AT ZX15 TH3 33 RJ TH2 TH 34 TP ZX16 35 RJ TH2 36 MJ 0 CA ZI37 } Add # blocks in Symbol List Move Uniservo #5 forward past Constant Pool and Symbol List. :} Read Allocation Phase to H.S.S. LC Jump to Allocation Phase. 1556 1A ZZ 0 TV 6 ZZ3 Set index to # items in Dimension List 1 1J ZZ3 ZZ6 Reduce index by one 2 MJ 0 ZZ63 To exit 3 0 0 0 Index 4 RA ZZ10 ZX11 Advance address within buffer. 5 TJ ZX12 ZZ7 Still in buffer? 6 RJ ZR5 ZR No; so go to read in next block 7 TP ZX6 Q Bit 29 mask 10 QT 30000 A Bi t 29 of word 11 ZJ ZZ12 ZZ4 If 12 TU ZZ10 ZZ13 13 TP (30000) (WS10) 14 RA ZZ13 ZX7 15 TV ZZ13 ZZ40 16 RA ZZ13 ZX7 17 TP ZX10 WS 20 RP 10005 ZZ22 21 TP ZX7 WS2 22 RA ZZ10 ZX11 23 TJ ZX12 ZZ25 24 RJ ZR5 ZR Read in 2nd buffer load G) 25 TU ZZIO ZZ26 Set to address of symbol word CD 26 LQ 30000 6 27 QT ZXI3 WST C9 0 0 = Ot ~Q --+ A recycle } If not = Ot store first word (drum address) } Advance to next word Set address of 1st word for next variable Set index for character count. } } Fill with XS3 spaces Text for end of buffer area One digIt 1557 ~WS7 0 = 77, 30 EJ ZX13 ZZ34 If 31 RP 30006 ZZ33 If =I 77, move digi ts up one word in the image. 32 TP WS2 WSI 33 IJ WS ZZ26 34 SP WSI 6 35 RP 20004 ZZ37 36 SA WS2 6 37 SA WS6 0 40 TP A 30000 Store assembled word. 41 IJ ZZ3 ZZ4 Recycle to get all arrays 42 TV ZZ13 ZZ53 43 RS ZZ40 ZX7 44 TV A ZZ52 45 TP ZZ2 ZZ25 46 RJ ZZ25 ZZ22 47 RJ ZZ25 ZZ22 50 TO ZZlO ZZ5l 51 TO 30000 ZZ3 52 RA ZZ3 30000 53 TP A 30000 54 RP 32001 ZZ56 55 TP WSlO DD 56 TP 6 15 57 TP ZX14 Q 60 SP 6 20 61 SA ZXll 0 go to assemble digits 6 digits? Assemble digits in ~ Set addresses to calculate and store final word Form and store final word. } Store modified Dimension List. Save counter for large dimension list. Adjust (00006) for modified Dimension Li st. 1558 @> 62 QS A 6 63 MJ 0 30000 CA ZZ64 IA ZR 0 SP [ZTJ 25 1 AT ZX5 TH3 2 RJ TH2 TH 3 TU ZX20 ZZ10 4 TU Z112 ZR 5 MJ 0 30000 CA ZR6 l J Read Dimension List to buffer Set beginning address for processing 1559 IA ZX 0 07 70000 0 1 0 0 2 2 50 105 Zy 3 27 34473 05065 4 0 0 DC 5 50 5 Zy 6 0 40000 0 7 0 0 1 10 0 0 5 11 0 1 0 12 QT LA1 A 13 0 0 77 14 0 7777 0 15 30 5 0 16 50 MAl LC 17 30 50270 15131 20 0 Zy 0 CA ZX21 D I M E N S Read Parameter (except 1560 LA = last E N D # blocks.) word of buffer area fJ. 0 F b. ALLOCATION PHASE The Allocation Phase serves two purposes: 1) Builds Op File III for each segment and writes on tape. op File III (2 Call word # lines in routine 1. 2. word items) H.S.S. running location or 1.~____~____~~__C_a=1~1~w~0~r_d____~____-r~~~____~__~~~~~_______ Segment # Segment # H.S.S. running 10-rIf the end poin~ of ?ne~ way Jump IS In or another segment 1.~____r -__________C~a=1=1~w=o=r~d~________~__~~____________ , _____________ 2. # of data H.S.S. running 10- r1f call word cation is of the form 77xxx which < refers to a group of data, e.g., xl, x2' xIO· 2. 14 from jumped to cation in another segment < I 2) Generates the necessary instructions to manipulate data between segments during the running program. a) These instructions are called: The Preface, which transfers 77xxx type data to their storage locations in H.S.S. b) The Termination, which transfers updated 77xxx type data to their designated locations on MD. The Preface and Termination instructions operate in H.S.S. during the interlude between 2 segments. After generation of these instructions for each seg- ment, the Preface and Termination are written on magnetic tape. 1561 Input: The Allocator receives as input (from Segmentation): 1) Op File ITa - call words of routines and data in segment. 2) Op File lIb - call words of end points of ~ one way jumps within the segment. These files are on Uniservo tape by segment. 3) Output: Dimension List with MD storage addresses for 77xxx data. The output of Allocation consists of: 1) Op File III by segments on tape. 2) Preface and Termination for each segment on drum. Procedure: Read Op Files IIa and lIb into H.S.S. one segment at a time. Then compare each call word in Op File lIb against the entire Op File IIa for this segment to determine if the end of the jumps (which are actually the words in lIb) appear in the same segment. If equality is not met, the call word from lIb is entered in IIa. thus increasing the length of Op File IIa. Each new entry into IIa at this time is accompanied with the flag 14 in the operation position of the next word. words. Thus, each new entry in IIa is an entry of 2 Each time an entry is made in Op File IIa the call word from lIb is also placed in another list, called Directory 4, which will be used only during this phase. Each entry in Directory 4 is also a 2 word entry. consisting of call word in the first word and the segment number in the second word. item in Directory 4 at this time looks like this: Op 1st word 00 2nd word 00 I u o I Call word Segment number 1562 v 00000 I 00 00000 I An The above procedure is followed until all the call words in Op File IIb have been checked against Op File ITa for one segment. Each call word in Op File IIa is then checked to determine the type of routine or data to which it refers. The determination of the type of routines used in the segment, along with the number of lines in the running routine (available in Op File IIa), enahles us at this time to assign actual operating addresses according to the High Speed Storage layout: CONTROL SECTION (fixed length all problems; includes Tape Handler) BUFFER AREAS for Input-output Instructions (as required) S STATEMENTS R SUBROUTINES 1) Library Routines 2) Pseudo Operations 3) Defining Equations D DATA AREA 1 Multiple valued (77---type) DATA AREA 2 Single-valued variables (fixed length for all segments) CONSTANT POOL (fixed length for all segments) Control being of fixed length and buffer area requirements for this problem being known, we can locate S exactly. During Segmentation, a separate tally of statement lengths permits determination of R exactly. D is deter- mined by the accwmulated tally of total statement and subroutine lengths pluS two. (The plus two accounts for the locations required by the Processor to provide continuity between sequential segments.) With these starting points 1563 ~, !, and D, assignment of memory locations in a forward direction can be made according to the category determined by the call word. The nwmber of lines of data, or the number of lines in the routine, is also used to fill in the u portion of the items in Op File IIa. At this time, Op File IIa is beginning to resemble the new Op File III which is actually an expanded and modified Op File IIa. After completion of the foregoing process for each segment. that segment's Op File III (Formerly Op File IIa) is written on the drum, and Directory 3 is constructed, containing one word for each segment, in the following format: Op u 00 MD location of 1st word of Op File III v of words in Op File III for this segment # Thus, the first word in Directory 3 refers to the first segment, the second word, the second segment, etc. When Op File III for the last segment has been written on the drum, Op File III is in its final form for all items except those referring to jumps to other segments. But Directory 4 is actually a combined listing of these call words for all segments. So, we use the items of Directory 4 to search against Op File III (by segment) and fill in Directory 4 with number of the segment in which the call word is found, and the operating address of the routine during execution. have been processed. 1st word 2nd word This continues until all the entries in Directory 4 A complete Directory 4 item is of the form: Op u 00 Call word Segment Segment from to 14 0 v 1564 00000 H.S.S. running address in segment to The second word of the above item in Directory 4 is filled into Op File III (one segment at a time) in its appropriate place to complete Op File III. While each segment is in H.S.S. at this time, the instructions for data manipulation are generated and stored on the drum. The instructions for data manipulation are prepared from Op File III. Each multiple word data group has been assigned an area on ~~ and the starting address of the area for each variable is available in the Dimension List. Using Op File III and Dimension List information for each 77xxx type call word, the Repeated TPts are generated. When this listing is complete. the Repeat orders are determined and recorded. forward for Termination.) ~ of (Reverse direction for Preface; The wts for the Preface are fixed H.S.S. operating locations (not relative) since they are generated at a point during compilation when the exact starting address of Data Area I (77 - - - type) is known. Since the length of the Preface is known when Termination wts are written, they too are assigned fixed addresses in the l20-word buffer area within the Control Section. The completed Op File III and the Preface and Termination for each segment are stored on magnetic tape and will be used during the Processing Phase. This phase is complete when Op File III, Preface, and Termination for all segments of the problem have been written on tape. 1565 Allocation Phase Flow Chart Transfer parameters to GTH. Read one block Uni~~ servo 3 (or 6) to tape image storage YES tape label correct? GTH ,--N_O_~Alarm 8 1 1 I---~ Send code word to GTH to read one block to tape image Read one block Alarm 8 Set @ to @ Set 04 to fixed address (H.S.S.) and Set K =1 (retain 04 initial in Temp. 2) Set M = 0 Set G to fixed drum address Set 03 to H.S.S. address and (retain 03 initial in temp 3) Set C = 0 Is first word of tape imageCLtwo A A A"? Are words and 21 of tape image zt s NO 1------------ Is first word of . "two fj B L.l A" ? Image Allocation Phase Flow Chart (cont.) Transfer word 3 of TI to L ~~~ Transfer word 5 of TI to D Read one block Transfer words 5 and 6 to 1st two locations in Op File IIa area Transfer word 6 of tape image to R ~~~ Transfer code word to read one block of info Ope File IIa to H.S.S. at fixed address of IIa Preset address in code word and test word ad....,----,dress for Box I to Op File IIa fixed address Box 1 Is first word of block END A OF? ------.--~-------- ......------'~ Advance address in code Set fixed address of word by 120. Transfer ~_~ Op Fi Ie lIb word 3 of TI to 1 NO Advance address in code word and the address of test word for box 2 by 120 Box 2 Is 1st word of block ENDAOF? Set up address for test word for use in Box 2 Read one block Transfer code word to GTH to read one block to lIb area Allocation Phase Flow Chart (cont.) Q J,,-__se_t_c_o_n_n_e_c_t_o_r_A _ _...... \Jj__ to A2 I--~ Initialize: Set i = 1 j = 1 A·J = fixed address of Op. File II a b.1 = fixed address of Op. File II b M =0 11A=0 YES 8.S.S. address word and the of test word 1 by 120 Advance C by 1 ? YES-.J Set index Is call word in 1st word of lIb = 00000 Advance of code address for box Record call word from 1st word of Op File II b into 5th word of Op File II a in Directory 4 Enter zero in 5th and}-<0 6th words of Op File 3 II a Jt--~V ~~ Insert flag in 6th word of Op File II a Insert Kx2 in D4 + 1 21 Advance D4 by 2 and M by 1 Allocation Phase Flow Chart (Cont.) B-1 Pick up u portion of In Op. File II a? RP b i. Set n of RP comRP2 n w EJ l--~ mand in B-1 equa 1 to L EJ Fixed address Op File II a NO Insert flag in a, + L (Flag is 14 ). Insert K x 221 in 04 + 1 + 1. Advance 04, L, and M by 2 ~ _rAclvance ~LbYl ~-~ Have we examined all b i's? i.e., Does i = 1 + I? Store u of bi in a 1 + L and in 04 Set: S = Address where first statement of each segment will start R = S + total # lines of statements + 2 (2 for IP command) o = S + total # lines of statement + routines + 2 NO Is this call word a statement cal1word? Yes Is this call word flagged? Obtain u portion of a . :>btain v portion of a j + 1 and store in [ temp 1 ( # lines)_ _ -I Store # lines+--_ _ in u-portion of a.' + 1 ----J 1-------1 NO Allocation Flow Chart (cant.) Is t is callword of an drray? NO NOTE Call words changed from: 70 __ _ to 27 __ _ 71 __ _ 24 __ _ { 25 __ _ Set R in v of a j +1 4 ___ _ 72_ ... _ 73 __ _ 5 ___ _ 74 __ _ 22 __ _ 75 __ _ 26 __ _ 66 __ _ 65 __ _ 76 __ _ Advance A . by 2 J Does A. J Form: (R + Temp in R 1) 77 __ _ { 64 ... __ 77 __ _ = L + I? B-2 Transfer Op File III (L words) for segment K onto MD starting at G. Insert segment number K to replace # of lines of data in first word of Op File (Read in next segment) Record G in u portion of D3 Record L in v portion of D3 (Builds Directory 3 for segment K) Advance G by L Advance D3 and K by 1 t E - -...... Allocation Flow Chart (Cont.) Pl:ace S into v of a j + 1 portJ-1 Place D into v portion of a j + 1 ~G Form: S + Temp 1--7 S Form D + Temp l~D Initialize: Set P = 1 (segment #) .--;. 0- Set index 2=M - 1 Set D3 to D3 initial (1st address of Directory 3) B-3 Transfer Op File III for segment P from drum to H.S.S. RP n w IE-Op File TP u image ., 11 Set D4 to the 1st ad- . dress of Directory 4. --"'" Set index 1 = M - 1 M = +t items in Directory 4 Transfer u portion of Pth word to u portion of TP command in B-3 and transfer v of Pth word to n of RP commands of B-3 and B-4 t- Obtain Pth word Directory 3 Allocation Flow Chart (Cont.) t--~ Pick up Op portion of 0 4+1 code 14 ? NO Pick up u portion of 04 B-4 Is this call word flagged in segment P in Op File III? YES~ Is this callword in Op File III for segment P? RP n w EJ Op File III image Index 1 = O? (Initially set to # items in Directory 4 Advance D4 by 2 YES Record v portion of word just tested in v portion of 04+1 Insert 14 in OP portion of D4+1 (148-234) ~ D4+1 Store P x 2 15 in D4+1 Set D4 = fixed address of Directory 4. Set index lA = M YES NO Transfer u portion of Pth word in directory 3 to u portion of TP command in 8-5, and transfer v portion of Pth word of directory 3 to n of RP commands in 8-5 and 8-6 Set P = 1 Initialize (for data manipulation) Set Temp 3,4,5,6 to dummy instructions Temp 3 (75:l.-_ Temp 4 11 ____ Temp 5 75 L - _ Temp 6 11 _ _ __ Set 8-5 Transfer OP File III for segment P from MD to H.S.S. RP [n] W TP LJ Op File ima e K = 0 Index lA = O? (Set initially to # items in Directory 4) NO Obtain bits 21-26 of 04+1 in K Is K =P ? YES YES Add one to Index 1 Add one to HS address in 1st 1E----1 IP command NO Obtain u portion of D4 Locate this call word in Op File III for segment P. Found? RP [m] EJ Op File Is this call word flagged Yes in this segment?r------~~ NO NO '----~ Alarm 6 ____ Ad_v_a_n_e_e__ D_4_b_Y__2____ ~~~----, 1 Alarm 6J Replace word just tested by the contents of D4 + I YES Allocation Flow Chart (cont.) Initialize for Segment P Set Preface area in 8.S.S. to ex Set Termination area in 8.S.S. Set Box 17 n = length of Op File 3 (from B-5) u = 1st 8.S.S. of Ope File 3 for seg j B-7 Enter 76777 in Search Op File 77XXX. Found? 75 2 n w 42 u YES v NO Use Q to reset B-7 to continue search. i.e., reduce n by ~ increase i'E----t u by r Allocation Flow Chart (Cont.) ~ Is the number of lines of data for thi s array> 77778? YES J---~ Determine from call word the location in Dimension List of the drum address for this array. Set number of words for this array to 77778 ~-----;~ to bui Id Preface and Termination. Reduce original number by 7777. NO Increase drum and H.S. addresses used in Preface and Termination by 7777. YES Is the number of words for this >17776? NO Set number of words for this array to 77778 for Preface and Termination. Reduce number of words by Increase drum and H.S. addresses used in Preface and Termination by 7777. 7777. Reset exi t in CM routine -.---~ Determine from Dimension List the drum address for th i s array, ~--~~ Set n of RP commands for Preface and Termination to number of words in this array. Set j = 3, Determine drum and H.S. addresses for this array and insert in u and v portions of TP commands of Preface and Termination. NO YES ,, Transfer completed Preface and Termi~------~nation commands to buffer area. Set w of RP commands for Preface and Termi na t ion. Increase Temp 10 by 170. Allocation Flow Charts (Cont.) Insert in w of last RP of termination control address to read in next segment ~--~ If more than one block of termination, insert in w of last RP command of each block (except last) the control address to read in another block of termination YES Sum the number of blocks already written on tape 5 by other phases Allocation Flow Chart (Cont.) Add number of blocks of Op File III this segment to previous count Will information on tape 5 exceed 2500 blocks? NO I-' c..ra co o Does total exceed 2500? NO Add number of blocks of Preface to previous Write Op File III total for tape 5 ~---I on tape 5 Allocation Flow Charts (Cont) Write Preface for Add number of this segment on blocks of Termi~.-~ nation to pretape 5 vious total Does total exceed 2500? NO YES P = C + I? Advance ..... P by one ~---.;.. ...... CJl co ...... NO Write two full blocks of Z's on tape 5 ~ zy. irst time through. th is routIne? Move tape 5 back to beginning of Op File L---~III for first segment Printout: WARNING UNISERVO 5 DATA WILL I---YE~S--~EXCEED 2500 BLOCKS. ATTEMPT BEING MADE TO CONTINUE COMPILATION Exit Allocation Phase Write Termination for this segment on tape 5 Allocation Regions RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE GT21 } UP421 BR537 BQ632 CA674 CB763 CCI020 CDI056 CEl120 CFl175 CG1237 CH1266 CI1321 CJ1355 CK1407 CL1435 RE CM1450 } CNl505 CP1522 RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE BK1545 CQ1557 CR1645 CS1707 CT1742 Zl1760 ZY2144 ZW2174 C02213 FA3142 } ZI-\3142 ZB2545 ZC42102 ZD2644 LD2242 TL2243 TI2355 CU6 ZF7000 ZG7400 ZX76000 B576017 RE RE RE ZE7230 CX2255 } CZ2323 RE Subroutines Begin Data manipulation Stores information for Preface and Term. Build Preface and Term. in buffer areas Sets up "W" of RP-TP for exi t of Term. Preparation for writing onto tape Write Op File III onto tape Write Preface, this segment onto tape Write Termination this seg. onto tape Exit region Storage and constants Error Printout Warning Printout Patch correction regions (27)8 loco H.S.S. Address Ope F. 2A-6 Fixed address of Directory 3 Fixed drum address of Op File III Fixed address of Directory 4 Limit of drum (77000)8 Limit of tape (4704)8 Tape Image For assigning loco for CT13 & CT16 Fixed address for building Preface Fixed address for building Term. H.S.S. dump of TI for checkout Region for generating M.S.'s in checkout Fixed address of LOC 2B Patch correction allowing data arrays > 7777 1582 Allocation 0 1 2 3 4 5 6 7 CD @ ® @ ® IA MJ RJ TP EJ MJ TP EJ MJ CA GT2 TI24 ZZ43 0 TI25 ZZ44 0 CO GT A CA5 BRIO A CAIO BRIO 0 Test for proper label of Tape #3 (1st Bk) 10 ....n .1r L..L ~n £'I\LL 11 12 13 TP TP TP ZZ25 ZZ31 ZZ31 ZZl03 ZZl07 ZZ62 14 TP Zl16 ZZl06 TP ZZ17 ZZ20 ZZ31 ZZ52 GT2 TI ZZ45 ZZ46 ZZ51 TP TP RJ TP EJ EJ EJ MJ TP EJ MJ TP TP TP TP TP TI2 TI4 TI4 TI5 TI5 ZZ72 } Zl71 ZZ105 GT3 GT A CA32 CA51 CA27 BRlO A CA65 BRIO ZZ110 ZZl13 ZA2 ZA3 ZZl12 37 TV ZZ21 ZZl02 40 41 42 43 44 45 46 47 SP Tll TP RJ TP EJ RA RA ZZ21 A ZZ102 GT2 [30000] ZZ47 ZZ102 CA44 17 CA44 GT3 GT A CA20 ZZ30 50 51 0 CA42 RA ZZlO2 ZZ~30_ TP TI2 ZZ22 ZZlll ZZ102 52 53 MJ TV 0 TI24 ZZ51 0 Set connector A to Al Segment #l~K O~M (word count Directory 4) O~Temp 1 (# lines rtne. for current C/W) MDAF3~G (fixed drum address Op File III) Set Dir. 4 & Dir. 3 to fixed address O~C (C u = count of segments) Read in next block into TI First word~A Test for 'TWO~A~'~CONN 38 Test for 'TWO~ B~ '~CONN 40 Test for 'ZZZZZZ' v./-\oo 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 TP Read in Tape label (1st Bk) i. eo i' FILEll61W0~~ll t } } 21st word to A Test for 'ZZZZZZ'~CONN 42 } } } } ZZ27 1583 Length this segment IIa~L Start to build D for this segment 5th & 6th words saved for Op Fi Ie III ~R = next address to assign to rtnes. Set up LOC2A address in code word for GTH Set up "test word" address Read in next block into IIa area Test first word for END~OF (CA20 =(!)) GENCOD + 120~GENCOD Test word address + i20~Test word address Jump to read next block (CONN 39) GE_NCQIL+ 140~GENCOD Length lIb this segment~l TV LOC2B ffiNCOD 54 55 56 57 60 61 62 63 @ ® 64 65 66 o 1 2 3 4 5 6 7 10 SP Z222 TU A TP RJ TP EJ RA RA ZZl02 GT2 30000 ZZ47 Z2102 CA60 MJ TP [30 CA IA TP TP SP AT MJ RA SP TU TU 11 TU 12 13 14 SP ZJ TP 15 16 17 MJ TP 20 21 22 23 24 25 MJ TP SP TP RA RA 26 27 30 31 32 33 34 MJ SP TP o o ZZl CA67 CB ZZ21 ZZ22 ZZ77 ZZlll o ~A66 } CA56 CA66 o J Either MJ CONN Al or CONN A2 1276 } ZZ77 Set up AJ & BI this segment LOC2A~AJ; LOC2B ~ BI ~101} ZZ22 A A A CB12 [30000] CB17 A A o [30000J o ZZ41 ZZl03 A LOC2B~A u Set commands with first address of Op File lIb Is first word of Op File lIb = 0 ? Zeroize 5th and 6th words of Op File IIa ZA4 } ZA5 CC33 ZA4 } Jump to@ Record flrst call word of Op File lIb into 5th word of Op File IIa and first word of Directory 4 Flag~next word of Op File IIa Insert segment # in second word of Directory 4 Dir. 4 + 2~Dir. 4 (next loc.) M + l~M (count of items in CB27 ZA5 ~OOOO} ZZ32 ZZ26 o CC33 Directo~, 4) Jump to@ Dir. 4~V o CB33 TV A SA ZZ26 o TV A CB23 TP MJ CA 30000 o Form test address to indicate end of Op File lIb list C + l~C (seg. counter) gB14 } 1272 ZZl07 1272 Read 1 block into lIb area Test word for ENDil OF ----;.. CONN A ffiNCOD + 120 ~ffiNCOD Test word address + 120~Test word address Jump to read next block ZZ30 ZZ27 CB5 ZZ25 17 CB17 } CB33 ZZl05 Set up address for test of ENDil OF for Op Fi Ie lIb 17 } CA60 GT3 l GT r 30000 CB21 CB35 1584 Ill.. ® o 1 2 TU 3 4 SP 5 [ 30000J [30000J ZA4 10 SP RP EJ TP 11 SP ZZ2i 12 13 14 15 SA 12110 TV TV A ZZ72 TP ZZl15 16 17 20 21 22 23 24 25 26 27 30 TP SP SA ZZl15 CC15 ZZ26 TV A TP SP SA 6 7 ® CC ZZ110 ZZ135 SP SA TU A 1277 A A 17 I gC6 J Set n of RP to L; j = 2. 17 } gC5 Pick up "u" portion of BI in A CCI0l CC33f ZZl15 Test Op File IIa for CW from Op Fi Ie II b Hold AR in WSI o A + L~A I ) o T I"\."n... _ ft. LUv~}\~}\ CC15 CC16 [30000J "'- ~ Setup CC15 WSl~i.e. store CW in BI at Op F. 2A + L and in Directory 4 [3000Q] gC22 } Setup CC22 ZZ41 CC16 ZZ26 gOOOOJ} Insert flag at Op.F.2A + L + 1 TV A CC27 SP TP RA ZZ103 6 A ZZ72 [30000J 31 32 RA RA 2Z110 ZZ107 1232 ZZ26 33 RA 1277 ZZ26 34 35 EJ MJ CA ZZ101 CD CC Ill.. CD ZZ112 ZZ26 ZZ2 12 ZZl13 ZZ114 12114 o RA 1 TP 2 QT 3 4 5 6 RA SP AT SP o Set up CC27 Directory 4 loco in Op test CC36 Set R to address following IP command Set up mask V Mask • ® t from location (12)8 Q D ZZ76 ~100} -7 \ 7 TU A 6016 10 SA ZZ25 o 11 TU TU A A .ZZ115 CD15 LT 25 A 12 13 Insert K x 221 (seg. #) in Dir. 4 + 2~Dir. 4 (next avai lable) L + 2 ~ L (length + 2) M + l~M (count of items Directory 4) BI + l~BI (address next Fi leI I bit em ) Test for completion of BI Jump to CONN 2 ZZ32 1276 ZZl10 + S~D Form test address to indicate end of expanded IIa list J CW address~A u in u (CW address) + 1 l~(WSl) 11 Shift (CW address) + 1 to A v 1585 ® 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 ® ® G) 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 TV TV SP LQ TU LT EJ EJ MJ SP TO SP TP QT EJ SP LT TV TV A [300~ [300~ ZZ62 ZZ62 14 ZZ124 ZZ125 0 ZZl15 A [3OO00J ZZ5 A ZZ41 ZZl15 25 A ZZl14 RA MJ CA ZZ62 ZZl14 0 CD42 IA EJ MJ CE ZZ126 0 LQ 0 0 0 0 0 0 0 0 0 0 CD20 ZZ62 0 17 A CD25 CD25 CE 0 CD27 0 Q A CE16 0 A CD36 } [30000J 25 1262 CE16 Test for flag "14" Jump--+6 (CW address) + l~A (CW address) + l~Au v Send S to v portion of 2nd word of item Test 77 type CW~ Assume 25, 24, 22, 5, or 4 0 0 0 0 20 21 22 23 24 MJ TP RA SA SA ZZl03 ZZllO ZZ35 ZZl06 25 26 TJ MJ LD 0 CE27 ZWl 27 SP ZZllO 17 0 Test "26" CW Test "27" CW Jump to@ Jump to@) CF CEIO 170 LQ RA RA EJ TV TV lines in rtne in Temp 1 Shift ~ lines to u position # lines~u of second word of item [3000~ 0 0 ZZl15 25 A ZZl12 ZZ62 ZZl12 ZZ76 ZZlOO SP LT # CW~A 0 0 A CE13 } [30000J 25 ZZ62 ZZ32 CE21 CD6 FA ZZ32 0 0 (CW address) + 1 ~ A (CW address) + 1 ~Au v R~v portion # lines shifted in Temp 1 R + # lines~R Address of CW address + 2 Jump to (Vwhen end of Op Fi Ie IIa reached. Jump@) Seg. # ~Op Fi Ie III L + 2~L A = L; A + 4~A Add G (next open M.D. address for Op File III Test limit of drum ~ Error print & jump to BQ6 (rewind tape, etc.) L~Au 1586 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 53 54 @ @ ~ ~ TP SA SA A ZAl 2Z34 0 0 CE35 1237 Au~~ words Op File III Add 4 in u Add 3 in j TU A TV RP TP TV SP ZZ106 CE36 [30000J CE37 } FA [3000Q1 CE42 ZZ71 CE44 ZZ71 17 12106 TU A [30000J MJ RA RA RA AT MJ SP LT MJ CA 0 A ZZ71 ZZ103 ZZ106 ZZ35 0 FAI 25 0 CE55 CE52 [30000J ZZ26 ZZ25 ZZ110 ZZ106 CA20 IA SP LT CF ZZ115 25 0 TV TV A CF3 TV TV Transfer L + 4 words of Op File III to MD at G G~A Au~Directory 3 lines in Op File Av ~Directory 3 ~ III~Av Jump to CD; read in next seg. 0 A CE44 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 LQ RA MJ SP ZJ TP MJ TP ST TP SP 5T SP SA S5 TU TU TU SP MJ ZZl13 [3000~ j 25 ZZ62 12113 ZZ62 0 CE16 ZZ107 0 CFll CF13 ZZ120 ZZ31 CH24 0 ZZ104 2225 22121 1226 ZZ72 1217 12107 0 ZZ120 Zl26 17 ZZ20 12104 0 0 ZZ25 CF25 A CF26 A [30000J CF34 [30000J 17 CF35 0 30 SA ZZ34- 31 32 SA TU 12.37 A A .., } } _0_0 CF33 1587 (CW address) + I~Au (CW address) + 1 ~Av D~(CW address) + 1 ~ lines + D~D Jump to@ M~A o ~Index 1 Jump to @ lu~Pu 1 ~Index 2 Set Dir. 4 to fixed address M- M - 1 ~Index 1 Item address of Directory 3~Au Add P Subtract 1u Transfer u-portion of pth word in Directory 3 to transfer command and h Transfer v-portion of pt word in Directory 3 to n of RP command + _4_tnu + 3 in j 33 34 35 36 37 40 41 o 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 RP TP TU RA TU SP MJ CA IA TP SP TU SA TU SP QT EJ MJ SP RP EJ SP LQ S5 SA TU TU TP SP QT EJ MJ CA Transfer Op File III for this seg. from M.D. to H.S.S. Set up j n at CG12 o CG } FA CG12} 2236 CF40} 17 CF30 ZZ5 Q Zl72 17 CGll Mask Dir. [30000] G300oo] A CG12 CF26 30000 CF42 CG A ZZ25 A [30000J A eH ZA4 CG12 Q Q ZZ7 A A ZZ5 [30oo0J A ZZ41 o RA MJ RA MJ SP SA ZZ104 TV TV A [30oo0J 11 TV 12 13 14 15 16 TP Q5 CH10 ZZ3 Zl104 CH13 3 4 5 6 7 10 TV TP QS CG14 } o l~A jn~Au jn - r~Qv 17 j n - (j n - r) = + r ~ Au Add fixed address of Op File III o o CG23 CHIO t} Test for flagged CW in segment P Jump to Jump to CH5 @ @ CG27 CH Zl120 1 2 ° 4~Au Pick up Op portion of word given by address at Dir. 4+1 Test Op portion for '14' flag Set j of RP to 2 Obtain CW given by address in Dir. 4 Test this segment Op File III for this CW o 30000 30000 Op~Q Dir. 4 + A CH CGll IA IJ o o CG5 o ZZ41 Set up j n at CF33 o ZZ72 o ZZ72 ZZ26 Test that all Directory 4 checked against this segment P + 1u---':'> P Jump to~ Dir. 4 + 2~Dir. 4 Jump to~@ CH3 Zl25 CF15 ZZ32 CG Set v-portion CHID to address given by Dir. 4 + 1 Record running address for this CW at Dir. 4 + 1 gHlO \ [300~ CH13 Mask~ Q 15 Record P x 2 in Dir. 4 (segment to) Insert "14" in Op of Mask Op address given by ad} dress at Dir. 4 + 1 Q [30000J ZZ5 CH16 Q ZZ41 [30000J 1588 17 IJ 20 21 22 23 24 25 26 27 MJ TP TP MJ TP TP TP TP CH o CH21 ZZ72 ZZ1611 CH24 J 12104 ZZ63 1264 ZZ17 Z'Z107 o ZZ25 ZZ10 ZZ133 ZZ134 TP TP MJ CA ZZ133 ZZ134 CI ZZ20 ZZl04 1225 5 6 7 IA SP SA SS TV TV TV SP TV 10 TV 11 TV SA SA TV RP TP TP IJ MJ SP TV SA 30 31 32 o 1 2 3 4 12 13 14 15 16 17 20 21 22 23 24 25 Test index 2 that all items Directory 4 processed ZZ121 o Set Dir. 4 to fixed address Set Index lA to M 1 ZZ65l 1266 Z267 CI Set Temps 1, 3, 4, 5 & 6 to nnmmv J --"~"J i_ •• n -~ trlli'.t i ..... n c;;: W~ Jump t07 -~ w_ ~ •• - @ CH33 A A [30000J [30000J A A A CI5 CI6 CI16 17 CK7 12117 CJ5 ZZ34 1237 o o A CI15 CI32 } FA ZZl03 CI22 CJ 17 CJ4 [30000J [30000J ZZ31 ZZ161 o ZZ72 A 1225 o TV A CI30 } 26 27 TV TP A CJ24 ZZ4 30 31 32 33 QT [30000J MJ RA :l03} CJ5 o MJ o CA CI34 LOCD3 ---? Au A + P~A ; Transfer u-portion of pth word of Directory 3 to the u-portion of the transfer command in CII6 and set n of the RP commands at CIIS Au = ~ words in Op File III this seg. Set ~ words for 77--- data search Save ~ words in working Tem~ 17 o o +4 +j =3 Build Op File III image O~K Index lA set initially to M Jump to CONN 19 Dir. 4-.-?Au Set address of Directory 4 item plus one Set address of word 2 of Directory 4 item Mask 'segment from' number into K (26-21) Jump to CJ 2Z36 CI17 .l- , 1589 J; :::::: - ') .. @ o 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 IA SP EJ MJ TP SP RP EJ MJ SP LQ SS SA TU CJ ZZl04 ZZl03 o C022 [30000] [30000] ZA4 o CJ5 Q Q ZZ7 A ZZ5 [3000Q] 22 TP SP QT EJ MJ LQ 23 TV 24 25 26 27 30 31 TP RA MJ RA RA MJ CA [30000J Zl72 IA TP TP RA SP AT CK ZZll ZZ12 CK7 FA2 12 o 1 2 3 4 5 6 7 10 TP SP RP TJ 6 P~A CJ3 CJ27 ZZ162 If P = K, go to@ (OOPOO = OOKOO) Reset value to 171 for region CM Jump call word to A Locate this call word in Op File III for segment P Alarm 6 o CJ7 } CJIO BR6 o jn~(AR)u jn - r~Qu r ~(~)u 17 o o Finds address of 2nd word Op File III item r16} Test if CW flagged in this segment. A ZZ41 o CJ16 Q o FA5 ZZ161 o CJ22 BR6 Alarm 6 g~~4 } Replace Op File III word by second word of Directory 4 item. 30000 ZZ32 CI17 ZZ26 ZZ26 CK Dir. 4 + 2~Dir. 4 Jump to @ Add 1 to H.S.S. of first "IP" Add 1 to index lA Jump to @ CJ32 A ZZ153 [30oo0J [FA4J 1275 ZZ36 ~113} ZZ141 Set uD" for Preface area and Temp D = # words = (S+R+2)+L ( )R ~7~Au ) ------;, search for data CW - jn + r~Au } + jn calculate # r~WSl repeats Set to continue search o CK24 CKII 17 11 SN Q 12 SA CK7 o 13 14 15 16 17 20 21 22 23 TU A RS RA CK7 CKIO TU TU A A ZZl15 ZZl15 } ZZl15 CL RS SP TJ MJ CK22 ZZ41 30000 o Initialize Alpha and Beta (next address in Preface or Term.) ZZ74 } CK22} ZZ25 Test if above TJ command reacted on a "14" in the Op code o CK6 CL 1590 24 25 TO MJ CA ZZ7 o CKIO CP Reset (TJ FA4 CKll) on exit CK26 1591 Stores Information Necessary In Building Termination and Preface @ ® @ 0 1 2 3 4 5 6 7 10 11 12 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 IA SP MJ TV RS TU SP TP QT LA AT MJ CA IA TU RA TU TV SP TU TU TU SP LT TV SP TU SP SS TJ RA MJ TP RJ TV RA RA TV MJ SP LT TV MJ CA CL [30000J 0 A CL CL [30000J ZZ6 A A Zl143 0 CL13 CM ZZ136 ZZ64 ZZ64 ZZ137 ZZ140 A [3OO00J A [3ooooJ 25 A 12137 A ZZ74 ZZll ZZ162 12162 0 C021 CM23 12113 ZZ113 ZZ147 ZZ147 0 ZZ37 25 A 0 CM35 0 CX2 ZZ137 ZZ25 CL5 0 Q A 1 Z'l140 CM ZZ64 ZZ37 ZZ66 1265 0 CM6 ZZ65 CMI0 0 A ZZ67 17 1267 0 0 CM23 ZZ146 CM22 ZZ147 CM31 ZZ64 ZZ32 2nd word of 77--- data item~A H.S.S. address Bv CW~Au L(00777)u~ Q Mask and multiply by 2 } MD address of array-;. Temp Cu Set up RP command for Preface } Set up RP command for Term. Set data H.S.S. address for Preface } Set up address of array on MD } Set up address of array on MD for Term. } } Set data H.S.S. address for Term. Calculate # words in Preface Test # words < 170 Increment by 170 1 shot switch D + 240 D ZZ32 TE+2~TE ZZ66 CN ~64 ~Temp } W of RP Send (30000)v to first Preface RP w command } CM26 1592 IA eN 0 TV ZZ74 1 RA ZZ74 2 TV Zl74 3 TV RA TV ZZ75 7275 1275 ZZ64 ZZ65 ZZ66 ZZ67 ZZ74 ZZ75 0 CN15 4 5 6 7 10 11 12 13 14 TP TP TP TP RA RA MJ CA CN6 ZZ26 CN7 I I Set up transfer commands (i.e.,fill in v-addresses) CNIO ZZ26 CNII [30000J '\ [30000J] [30000J [30000J ZZ26 ZZ26 CK6 } 1593 Transfer RP - TP setup to proper location in buffer area Update available locations in buffer area Jump to continue searching list Setup IA 0 TV 1 2 3 4 RS TV TV SP "w" of RP - Commands for Exit of Termination CP 'ZZ152 ZZ75 ZZ75 ZZ151 ZZ74 CM23 Reset 1 shot switch J ZZ32 CP3 [3OO00J 0 Insert "CT16" in W of last RP command in Termination ALPHA ---+A } #" of entries in Pref- ace 5 6 7 10 11 12 13 14 15 16 17 20 21 22 ST TJ DV MJ ZJ RS SP SA TV IJ MJ TV RA MJ CA ZZII CE2 ZZ146 0 CP13 'ZZ120 ZZ12 ZZ163 A ZZ120 0 ZZlSO CP20 0 CP23 A BK 'ZZ120 CPll CP12 ZZ26 0 0 CP20 CP20 BK area~A Test A ~ 170. i.e.A > 170 indicates more than one block needed. Dividing # of entries by (170)8 gives # of blocks needed. A =0 indicates an integral number of blocks needed. A = # of blocks needed -1 if Q ~O or # blocks if Q = O. Set index 1 to A and let the index control the number of times (CT13) is inserted ~OOOOJ ZZ146 CP16 Preparation for Writing Onto Tape 0 1 2 3 4 5 6 7 10 11 IA RJ MJ TP QT LQ QT AT TP MJ 0 CA BK BK 0 14 .'ZZ2 Q BKII ZZ157 ZZ157 0 0 BK12 BK2 CQ ~157 } 17 Sum number of blocks already written A ZZ157 ZZ160 CQ 77 Save 1594 # blocks already written Write Op File III Onto Tape u5 IA @ ® CQ 0 RP 10170 1 2 3 4 5 6..., TP RA TJ RJ TP TP ZZ5l ZZ157 IL Zy ZZl54 ZZ155 } FILELl3 nn ,nI" CQ5 ZYl TI TIl .:JVVV 7777 Save information A 1 ZZ140 ZZ137 ZZ136 CM CZ3 CX27 CX22 CX22 ZZ136 CZ4 CX36 CM Core address of beginning of array # words set to 7777 Build Preface and Term. Reduce number of words by 7777 1 core < # lines S 2 cores 2 core < # lines S 3 cores Update MD address Process Preface and Term. CZ3 } ZZ136 25 CZ4 CX36 CN14 CM 30000 CX37 CX44 CZ3 ZZ140 Update H.S.S. address Update MD address Reset Exit in main program Routine for updating MD address CX35 0 0 CK6 1600 IA CZ 0 0 'I 0 10000 17777 2 0 0 0 0 0 27776 7777 0 0 0 0 0 7777 17776 0 0 CA CZ7 1- 3 4 5 6 0 Temp 1601 LOC77 LOCPRE LOCTER LOCD5 LOCFCA LOCBA DLOCF3 LOCD4 LOCD3 LOC2A LOC2B LOCCSA LOCCTA IA ZZ 0 MJ 1 MJ 0 00 0 77 0 0 2 3 4 5 6 7 10 N 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 MINUS 60 ZERO CONST FLAG DATA 0 0 0 00077 7700 0 00777 ZA4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 170 0 0 0 0 0 0 0 0 0 0 0 0 14 0 31 66 66 66 30 01 74 50 71 0 0 0 0 0 CB CF7 77777 0 0 0 0 0 0 MJ 2 0 0 4 0 0 0 0 0 0 0 0 0 34463 71510 71510 71510 50270 30506 74747 00103 00105 0 0 0 0 0 0 0 [30000J 0 0 0 CONN Al CONN A2 Jump "to" mask Jump "from" mask ZF ZG 0 0 0 ZC ZD ZB ZA6 ZE 0 0 0 1 0 170 0 2 4 0 20000 30000 0 0 MJ 0 00101 10101 12401 12501 15131 65473 47474 TI Fixed Fixed data Fixed Fixed address of start of Op File III drum address for starting 77 Fixed Fixed Fixed Fixed Fixed drum address for Op File III address of Directory 4 address of Directory 3 address Op File IIa (8.S.S.) address (by segment) Op File IIb address for Preface address for Termination F I L E llll T W o llllll T W o II All T W o 6 E N D 6 86 0 F Z Z Z Z Z Z GT code word to read Op File IIa TI Length of control (also initial address of S) 1602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 0 0 0 73 74 75 76 77 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 121 122 123 124 125 126 127 130 131 132 133 134 135 0 0 0 0 0 0 0 0 0 0 0 0 [30000] 0 0 0 0 0 0 0 0 0 ENDBUF 61 0 TEMPI 62 0 2 63 3 4 5 64 65 66 67 70 71 6 7 ALPHA BETA AJ BI AJTEST BITEST GENCOD K P C G M L 1 R D S WSI WS2 WS3 INDEXI INDEX2 TEMPT 0 0 0 50 0 0 0 0 0 0 00103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 11 0 0 0 0 0 20002 0 Dir. 3 - next open address of Directory 3 Dir. 4 - next open address of Directory 4 Not used Next open address in Preface Next open address in Termination Address next Op File ITa item. Address next Op File lIb item. Count of Directory 4 items Next address to assign to routines Next address to assign data 0 0 0 0 0 0 0 3 26 27 77 25 24 22 5 0 0 0 lEMPA 1~36 -0 0 () TEMPB 137 0 0 0 1603 140 141 142 143 144 145 146 147 IE CTl3 150 151 CTl6 152 153 154 155 156 IEMPBKCTRl. 157 TEMPBKCTR 160 INDEXlA 161 162 163 TEMPC TEMPD TEMPE 0 0 0 0 0 0 0 0 0 0 0 0 31 01 0 0 0 0 0 0 0 40101 0 0 0 0 0 0 0 0 76777 34463 01653 0 0 0 0 0 0 CA 0 12164 0 0 0 0 165 167 170 610 CU13 CU16 CM31 0 00106 03201 For resetting 1 shot switch F I 6 6 TL 0 0 0 170 166 # 1604 L E s E b. 3 G ~ blocks already written 3. INITIALIZATION GENERATOR 3. Initialization Generator Initialization Generation Setup The Setup Routine for Initialization Generation reads the original Dimension List and the Constant Pool from magnetic tape and stores them on the drwm. These lists do not overlay the modified Dimension List that was built by the Allocator Setup Routine since it will be used by the Processing Phase later. The counters at locations 00006 and 00015 are interchanged so that 00006 becomes the Dimension List counter for this phase. After reading the Dimension List and Constant Pool the tape is repositioned to the beginning of Op File III. The 14 blocks of the Initial- ization Generation Phase are then read from the UNICODE master tape and control is transferred to it. 1607 Save number of blocks of: Constant Pool 1-----:"'1 Dimension List Symbol List Calculate number of blocks to move back,ward to beginning of Dimension List.Tape positioned at beginning of Op. File III t------,~ G Interchange contents of locations 00006 ~--~ and 00015 ZZ16 ~--'''------ Is there a DiList? Set up tape handler code word to read Dimension List to buffer Enter BR routine Alarm 10 compiler .~~Inconsi stency NO Tape 5 positioned incorrectly NO )--~ Change all references in ZZ16 routine so t--~that Constant Pool replaces Dimension Li st change @ connectors to @ Transfer Dimension Li st to drum storage area k----~ Set tape handler parameter to reposition tape at beginning of Ope File III Initialization Generation Set-Up Flow Chart Read Initialization Generation Pha se from master tape Regions for Initialization Generation Setup RE RE RE RE RE RE RE RE HE RE RE ZZ7230 ZW7267 (37) (15) (14) ( 3) Tape handler Compiler Inconsistency Routine (6000) Dimension List (1000) Constant Pool ZX7304 Z17320 TH21 BR537 DL42102 CLSOI02 n .. ~~o...,. 7V7f\f\ ... .L.vv LI".L.Lv"&' IG2000 ILl 600 Loading and entry address for IG 168 = # blocks of Initialization Generation phase 1609 Initialization Generation Setup Routine CD 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 IA Zl SP 14 3 A 6 A 6 ZT ZTl ZT2 ZX7 TH2 15 6 LT SP LT SP LT SP SA SA AT RJ TP TP TP SP ZJ TP RJ SP S5 AT TP EJ MJ RJ TP RJ TO RA RP TP CA Q [ZTlJ ZZ20 ZX2 TH2 [ZTl J ZX ZX3 Zy [ZXlO] 0 TH2 0 ZT 0 ZTl 0 ZT2 ~5 } !5 } Save # blocks of Constant Pool Save # blocks of Dimension List Save # blocks of Symbol List Calculate and move # blocks backward to beginning of Dimension List (if any) TH3 TH Interchange contents of 6 and 15 Is there a Dimension list (Constant Pool)? Read label block to H.S.S. [~q } TH3 } TH o 25 } Set up code word to read Dimension (Constant Pool) List Check label TH3 ~Z30} BR12 TH Read Dimension List (Constant Pool) to H.S.S. Move past end label ZX4 TH3 } TH2 TH [6 J ZZ35} ZZ35 ZXl 30000 [ZWJ } Zy [DL] ZZ37 Set up transfer Transfer Dimension List (Constant Pool) to storage area 1610 CD ® 0 1 2 3 4 5 6 7 IA zw TO TU TV TO TU ZZ6 ZZ6 ZX12 ZX12 ZX13 ZX13 ZZ35 ZT2 ZZ26 ZZ33 ZZ36 ZZ16 25 TV RJ SP ZZ16 ZZ22 ~17 ~v l"I.~ UA..J '7vr:::. 'l'U'l 11 12 13 14 RJ TP RJ MJ CA TH2 ZX6 TH2 0 ZW15 TH TH3 IA 0 0 50 50 ZX 0 10000 105 5 105 5 ILl 1A 0 1 2 3 A'l' 4 30 5 6 30 7 10 11 12 13 40 27 26 50 0 0 CA 5 34473 51506 ZXll 10 ZX14 ,LUo.} 1 J Go to read Constant Pool and transfer Move forward past Symbol List l TH IG Set for reading Constant Pool J Read Initialization Generation to H.S.S. Jump into Phase } 2 0 ZY ZY 0 0 IG Read one block of Uniservo 5 General Read for Uniservo 5 Move one block forward General move forward IL = (# of blocks of Initialization Generati on»( .100 General move backward - tape 5 D I M E N S C 0 N S T A 0 05065 56624 ZW7 CL 1611 Initialization It is convenient to divide this write-up into two sections. The first describes the initialization phase proper, and the second explains the actual generation. The distinction between the two should be kept in mind at all times. Running Initialization There are two classes of operation that may be considered; (1) functions always performed, and (2) functions whose operation depends upon the circumstances of the particular object program compiled. We may tabulate these two classes as follows: Functions always performed Functions sometimes performed 1) Rewind program tape 2) Clear 1 core bank to zero DEX" from either paper or mag- 3) Load GTH coding netic tape. 4) Load Control coding 5) Load Constant Pool 1) 2) Read in and translate "DATA IN- Determine which data tapes are required by the program, and J check that these are mounted in and finally, transfer Uniservos. control to Control coding, 3) to pull in Segment 1 Load values for a certain class of subscripted variables to their appropriate drum area. All coding, constants, etc., necessary for all parts of Initialization are written on the Object program tape preceding Segment 1 of the generated coding. See Page 1617, Layout of Object Program Tape. 1612 The coding is entered to H.S.S., and control transferred there at appropriate points, by means of the Object Program Loader Routine, which is part of the UNICODE Service Library (Sect. II, 1, c, (2).) The loader performs items 1 and 2 in the list above of "functions always performed". From this point onward, the loader merely loads data, and transfers control to such data as indicated. In other words, computer operations are entirely guided by what is present on Object Program Magnetic Tape #1. In ~ problems, the first operation at this point is to load the Generalized Tape Handler into the operating locations it will occupy throughout running of the Object Program. After this, the procedure will vary, de- pending on the program under consideration. ~ We may discuss the case where possibilities are included, for the sake of ~ompleteness, and reference to the diagram on page 1617 should make clear which portions are variable. From this point initialization may be divided into three sections. The first two are optional; the third invariant. Section 1. This coding is required in one form or another, if. in the compiled program, there are any input subscripted variables. These are defined as sub- scripted variables either referenced by Read sentences, or appearing only on the right-hand side of equations. This coding causes a "DATA INDEX" to be read in, either from paper tape, or from magnetic tape on Uniservo 2, translates it to the form required by the running program, and then performs certain checking operations. Because Read sentences specify only variables to be read in. and A[l the {JniseJ.!~ ~OA~ -wllieh--they~-4re to be -found. as-in-theoriginal UNICODE_ pro- gram, the DATA INDEX is necessary to supply this information. 1613 It informs the computer of the tape on which a given variable is written, its position relative to other data, and its identifying tape label. be referenced in the program by one s~bol, This permits data to and labelled on tape by a dif- ferent name. After the index has been set up, the next operation scans the index, checking that all variables required by input operations at various stages of running are present. While this is being done, a list is built of the Uniser- vo numbers containing the data required, and the next operation in sequence rewinds all these servos, and checks that they do, in fact, hold data tapes. Note that checking does tapes. ~ go so far as to check the contents of these data This would be excessively time-consuming, and if a tape is found at a later stage which does ~ contain data that the index says it should, the machine will stop, and a correct tape may then be substituted. A further operation of this section is to build a list of all input variables (see previous definition) A2l specifically referenced by Read sentences. This list, called List B, is for use by Section 2 of Initialization. Its format is shown on page 1618. When all these operations are satisfactorily completed, control is returned to the loader, which pulls in more tape from Uniservo 1. and acts according to the data thereon. This will probably be Section 2 of initial- ization, described below. Section 2. This section is needed whenever the "automatic data read-in" facility is utilized. It accepts as input LIST B, produced by the preceding section of Initialization, which contains the XS3 representations of the variables required,the number of values of each required (the modulus), and the drum addresses pertaining. The conditions under which subscripted variables are "automatically" read in are: 1614 1) The variable should appear only on the right-hand side of equations. 2) The variable is ~ referenced by any Read sentence. The number of values specified by the relevant Dimension statement are read in. this and stop. If there are less than this on tape, the computer will indicate On continuing, the remaining values are filled in with zeros. The basic reading is performed by a subroutine essentially identical to the Read library subroutine. s~broutine The annotated coding and flow charts for this begin on page 106 of this manual, and should be consulted for further information. At the conclusion of operations, control is returned to the UNICODE Loader to pull in more tape and perform the remaining functions of Initial- ization • .§.?ction 3. This includes all the remaining operations of Initialization, which are always performed, whatever the nature of the program compiled. They are a series of loading operations, followed by a transfer to an IP command which causes UNICODE Control to take over and initiate the running of Segment 1. The material loaded is listed below in the order of loading. 1) UNICODE Control 2) Segment table 3) IP order 4) Constant Pool 1615 Initialization Generation. The generation of Initialization takes place after the Allocation phase. The generation itself is relatively simple. the GTH are written on tape. First, the leading sentinels and Then some tests are made on the contents of the Dimension List to determine which, if any .. variables are input variables. Depending on the results, values for the I/O fixed locations and such variable coding as may be necessary are written on tape, together with LIST A. Finally, Control is written, followed by the table of Segment lengths and the Constant Pool. The Constant Pool is preceded by an IP order, designed. when operative. to pull in Segment 1 and start running. 1616 ~ -Sentinel - - - - - - -~ I I Tape Handler IP-01- _ TIn ..L('-' * I ~-i'Vorl .L..L~v\A Locations Constant Pool Initialization Section I Transfer to IP Command t Sentinel List A Transfer to Section I * Segment I In i t i a liz at i o'n Section 2 * I I * Transfer to Sec-tion 2 * Indicates those sections which may be absent ~ Layout of Object Program Tape 1617 LAO 1 2 3 0 0 oE ( 0 0 4 ( n~ 00000:( ~ XS-3 representation > XS-3 represent~tion I Modulus I drum address :> XS-3 representation ~ XS-3 represent~tion modal us drum address XS-3 representation :> I modulus , drum address XS-3 representation ~ } I 5 ( 0 0 6 7 ( 10 11 12 0 0 0( I } } Program read Program read Variable for read in Program read Variable for read in Variable for read in variable variable automatic variable automatic automatic I 1 , I etc. n = number of items in list. (e.g., above case through LAll, n =6) List A format (built by Initialization Generation) This list is derived from the Dimension List and includes all subscripted variables that are to be read in for a program. LBO 0 0 0 0 1 2 3 ( 4 ( 5 6 cI! 0 0 0 0 o 0 0 0 0: n Modulus I Drum address XS-3 represent,ation ) Modulus I Drum address XS-3 representation > I Modulus I Drum address XS-3 represent,ation > 1 7 1st variable } } } 2nd variable 3rd variable I I I etc. n = number of items in list (e.g., above case through LB6, n = 3) List B format (built by Initialization, Section 1) This list is derived fr~m List A and includes all variablesto be automat- ically read. 1618 Set basic loading Set subroutine add., and word count to write GTH from START Rewil1~ apin 1st word of bufstorage onto tape, _ _~ proprlate ~---~fer, fill remainder via buffer servo of 1st 3 bkts. with (3 Or 6) Z's etc. Set index l(Box 1) Box 1 to 1+ of 77 type Set indic. CW's. Initialize t--'""'----7I'i n¢=.n -1 for: "Sect.2 list A buildingj NOT wanted" r ~ 0, Box 2 YES Set indicator for "Section 1 NOT wanted" Box 2 Prepare to lOOk~ for CW 77000+r ~ I. From next line in Dim. List, extract indicator digit 2 "XU wanted Print: ARRAY @ame"] EXCEEDS 2500 VALUES t-----:~c lear ~-~ Extract modulus from "u" field STOP A ReWind~ll Extract drum Prepare to ex;trac t only t---'~ address from D.L. 2,50010 values J----~ J Extract XS3 name from DL r + l~r Store in list A Store in List A (-;;\ J----~--'IL-._(_bO_x_2_)---It----~~\V Increment List A item count. tapes and stop Set indicator~or SECTION CD F REQUIRED Initialization Generation Flow Chart Fill all buffer but 1st word wi th ZZZZZZ Therefore set B (5th fixed loc) to initial add. of List buffer Set nV" of 1st word (loading address) to (1160 ) So set FX to locate index after Li st buffer Yes So set FX to index after FX+l ,----~locate Set subroutine ex. to write Init. t Section from core onto tape CD Set subroutine to write I--_~ Ini to Section ® on tape Write TRANSFER BLOCK on tape Set subroutine a to wri te Control on tape Set transfer to IP and fill buffer with final sentinels NO 0-a setcx to wri te Segment Table on tape Set subroutine ex to fOllow Section CD wi th Li s t A __ ....------_.-. .. Write TRANSFER. )--~ BLOCK on tape Form requisite IP command, place before Con st. Pool set ex to write thi s STOP Initialization Generation Flow Chart (Cont.) L Write loading Reduce main address in 1stl--~~index (# words word, (but no Ito be written) word count) by_1_ _ _ _ _...J L-.:.. Set Box 1 to commence at 2nd word of buffer Set sub index~1668 IndeX RP TP TP IGlll 0 IG302 IG72 IG42 GIIOO 0 FL IG264 IG321 UP2 0 IGl12 WB2 IGI07 0 30000 10167 IG251 IG333 TP 12 QT IG274 ZJ IG121 TP IG334 TU IG307 IJ IG353 TP IG335 MJ 0 IJ IG353 TP IG336 Print-out. Clear A Alarm stop o IG57 IG60 Q IG46 IG64 } IG276 Q25 WB2 IGI06 IG72 Place 2,500 in Q "un and back. 10 Go back 3 lines for drum address Complete line for List A Store it (not incrementing item count) "X" ;f 0, so inspect "read-bit" If no prog. "read-out"? Prog. read. relates, so note the XS3 name (Go back 2 lines for XS3 name) A IG77 IG275 Store in List A (Incrementing item count) Note index wanted (zeroize indicator register) Prepare for next CW IG31 IG263 IGI06 UP3 UP RB IG263 [3000Q1 IG263 [30000J 3000Q] IGl15} WBI WB And then back. Increment item count Test with 51 10 To rewind tapes and stop. Increment line counter. List A building Inc. storing order Exit Line counter Fill block with 2------Z Set loading address (FX), but word count ~ Q ~G126} Is there a List order? WB5 WB IG131 WBI IG131 IG155 WBI Yes, set BI And set word count Index wanted? Yes, set FX ~ 5 No List order, but index wanted? Yes, set FX 1624 130 131 132 133 134 135 136 137 IG274 IG250 IG353 IG337 TP IG340 WB IG245 IG155 IG230 IG232 TO RJ TP CA IG341 IG220 IGl12 GI140 IG221 IG214 IG230 T "T, TO RJ IJ TP Jl And set word count ---+ 1 Now write block Index wanted? Yes, set in length of Init. CD Set "Loading Add. Temp" store. (no word count) Initialize to where Init. dJ stored. Go write tape Now, add List A. Set index A'"' J..H. UJ.ll:lU IG 140 141 142 143 144 145 TO RJ RJ TP RJ IGIOI IG220 IG242 IG340 IG250 146 147 150 TP IG342 TP IG343 TU IG344 IG230 IG232 IG221 151 152 153 154 155 RJ RJ TP RJ TP IG220 IG242 IG343 IG250 IG345 IG214 IG233 WB IG243 IG230 156 157 160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177 TP TO RJ TP TO RJ RJ TP QT ST TP TP TU LQ QT TU TP IG346 IG347 IG220 IG350 IG351 IG220 IG242 10 IG272 IG263 IG232 IG221 IG214 IG230 IG221 IG217 IG233 200 RA WBI TP IG266 TV IG65 MJ 0 A A IG274 10 IG271 IG352 IG306 TV 12 CA GI200 IG221 IG217 IG233 WB IG243 [30000J 2 } WB IG232 IG353 WB Q25 } IG230 IG221 WBl WBI Pick it up from FL Go write tape Conclude any unfinished block Set "transfer" word And fill in rest of block Automatic read wanted? (if not IG155) Yes. Set index to length of Init. ~ Set "Loading Add. Temp" store Initialize to where Init.(IDis stored. Go write Conclude any unfinished block Set "transfer" word And fill in rest of block Set index to length of Control (Excluding Seg. Tab) Set "Loading Add. Temp" store Initialize to where Control is stored. Go write Set index for length of segment table Initialize to where ST is stored. Go write ST Conclude any unfinished block. Using v mask, note initial address ofCP Subtract 1 to leave room for IP Set "Loading Address Temp" store Save it for "transfer" word Set W.C. ~l (as at least IP) With partial v mask, set index to length of CP Initialize to where CP stored. Basic IP fA Gr200 IG 201 202 IG263 IG231 IG221 Increment by 1 to complete IP Set block index to 165 Initialize to WB2 1625 203 204 205 206 207 210 211 212 213 Write 214 CD 215 216 217 220 221 222 223 224 225 226 227 230 231 Write\ 232 @ -233 234 235 236 237 IG Write ® 240 241 242 243 244 245 246 247 250 251 252 253 254 255 256 257 260 261 262 263 264 RJ RJ TP RP TP RP TP RJ MJ TP IG220 IG242 IG353 30004 IG256 10163 IG251 IG250 0 IG267 TV IG4 TP IG232 IJ IG230 MJ 0 TP [30000] RA WB RA IG221 IJ IG231 RJ IG250 RA IG232 MJ 0 [0 [0 [0 0 0 0 SP EJ TV TP RA CA IG231 IG267 IG221 IG251 IG236 GI240 IA IJ RJ MJ RP TP TP AT RJ MJ 74 67 30 26 32 30 01 24 34 GI240 IG231 IG250 o o o 0 10167 IG251 IG305 TN GH2 0 74747 50342 01512 66015 54244 50270 34503 46346 51500 0 0 0 IG217 IG233 WB IG210} WBI IG212 } WB5 IG245 ZAIO IG231 IG221 WB IG221 [30000] [30000] IG274 IG277 IG217 IG245 IG270 IG214 o o o Go write Conclude any unfinished block Set '·transfer" END II OF 6. INIT Fi 11 wi th Z---Z Go write End. Back to Service Routine. Set index---7 166 Initialize to WBI Write 1st word ( [W.C.] La.) Jump on main index Exit Count 1 word. Jump back on block index. Block full-go write it. Increment "Ld. Add. Temp." by 167 (V) ] ] ] Main index Block index "Loading address temp" store. If block index = 1666 , no partial block to finIsh ~G242 } IG236 [30OOOl} IG263 Fill with Z----Z IG236 IG245 [30000] IG245} WBI Go write Exi t Fill with Z---Z ~H3 Go write on tape } GH [30000] 47474 65127 54430 25451 72201 15131 46634 52466 10101 Exit Z Z Z Z Z Z (XS3) U N I E IJ. 0 C T 6 G R A END IJ. I N A L I ION o 1 63 1626 !! I} i i if (XS3) (XS3) 265 266 267 IG IG 0 0 0 0 0 0 73 165 166 270 0 0 167 271 272 273 274 275 276 277 0 0 0 0 0 0 0 0 0 0 1 2 3 1 07777 77777 77000 0 0 0 1 r/\ VM. ~T"l{\{\ U.LUVV 300 301 302 303 304 305 306 307 310 311 312 313 314 315 316 317 320 321 322 323 324 325 326 327 IA 0 0 01 07 10 71 IP 0 0 0 0 24 [77 01 27 03 30 0 66 50 67 24 30 0 GI300 4705 77777 0 0 3 00103 00001 5 4704 IG313 54542 77777 30722 65010 01702 65227 IG322 51510 73013 66012 73652 71543 73 0 0 0 0 0 WB 0 WB74 FLI IG146 6 47301 77777] 63030 51003 44667 77777 5 14724 45052 45454 20154 46630 HD 330 331 332 333 334 335 0 0 0 0 0 0 0 0 TG 0 0 FX175 LG HD 0 FX FX5 FX175 336 0 FX2 FX2 LI BI setting FX Setting for index if List buffer present FX Setting for index if no list J buffer present length of Secti on Flow Chart (cont.) Section 1 of initialization, Part 1 UNICODE Basic Loader 5 ~ shift index L ___ _ _ _ _ _ _ _~ N G y ~ Set Box 1 to scan List Ai e~ eli n~nl; initialize List B t-----::"'bui lding. \--~ Fr:;=rtl Increment List index by 1 Examine Ope field of word r-~~B rc:=rtl NO XS3 Variable name-7 A Is it included Continue index in index? i-=-==.::wscanning and extract tape # NO Print: FOLLOWING VARIABLES NOT INCLUIE D IN INDEX. Section 1 of Initialization. Part 2 Convert and print vble. name ~~w g Box 1 Examine r'th. line, List A rth line (XS3 name) Temp 1 Already included in "ref" tape list" (Section It Part 3) NO Print: Insert. it in lIst. [ ~----'::::..I ~--~ AGAIN. A=~ Store C( temp 1) in List B~-~ (Out) HIT START TO TRY START M~Ml P ~Pl --1 Prepare to scan "referenced tape" list. r = r max ? NO r<:=r+l Extract 1 tape #, rewind Normal 0- Set n~ 3rd word = t::.DATAt::. ? Abnormal 62 10 NO NO Stop UN ICOIE Count down on Yl index n= A = 0 yet? YES O? LOADER Print CHANGE TAPE, HIT START. ~~ Clear A Section 1 of Initialization, Part 3 '--~ Point: DATA TAPE NOT MOUNTED O~ SERVO(S)' Read in 1 block forwards from tape. ormal Exi t ~~ Convert & print Uniservo # Rewind this Uniservo bnormal Exit Section 1 of Initialization IN o 1 2 3 4 5 6 7 RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE IA2354 IN2000 MR2027 TX2220 GN2257 BP2313 TP2320 ST2323 BM2337 MT2363 DP2366 YW2402 XW2414 YH2527 XH2534 CN2605 CL2707 LP2i47 ZR3101 LA3104 LB7475 TL660 RE RE RE RE TM700 TBI GT210 FXIOOO RE RE RE IA TV TV TP TP TP TV PR77250 DA77300 LD1500 IA CN2 FX CN4 CL CNIO CN40 CN41 CN4 CN10 LP4 10000 0 0 0 0 TV 10 11 12 13 14 15 16 TP TP TP MJ EF ER MJ EF 17 TP- GN77 20 21 RJ GT2 TP CN61 Loading Address 1 (27) (171) (37) (34) (5) (3) (14) (24) Operating address of (3) program ( 14) (Total length = 1104 words) 8 (12 ) (113) (5) (51) (102 ) (40) (132) (3) List A List B (12)} Temporaries in.Termination Buffer (5) Buffer Tape Handler during Object Program Fixed I/O locations. Flex print Routine Object Program Loader Running address of Loader. MR132 STI } ST12 ST13 FXl MR152 MRI07 TM3 , TL MR150 IN16 ~P4 } MRl CNIOO ~~3 A } N ~ Nl (Enable 2nd pass) Initialize ST Zeroize vb1e. counter Start FXl with [0 20000 0] Q--+ Q 1 M~M2 1 Group counter Initialize Tape List Index Set EP CD P or M? P - Throwaway 1 frame ~Main Routine Mag. tape. Rewind #2 Read 1 block forward Z----Z~A 1639 EJ EJ MJ RJ EJ CA TB TBI 0 BM CN4 IA27 IN25 } IN25 MRI04 BMII MRl 12 13 14 15 16 17 IA MJ TP RJ EJ EJ EJ MJ TP RJ EJ EJ MJ TV TP RJ TJ IA27 0 CN54 TX CN63 CN65 CN67 0 LPII TX CN71 CN67 0 CN43 CN70 GN CL4 BMI TX2 TX3 MR7 MR7 MRI04 TX3 MRlSO TX3 MR14 MRI04 TX3 MRl07 TX2 GNI MR2l 20 TJ CN60 rtR24 21 22 23 24 25 26 27 30 31 32 TP LP53 RJ MR170 MJ 0 TP A TU TL RP[O] EJ TLI TP LP60 RJ MR170 MJ 0 TV TL RA MR35 TP TM RA TL RJ TX CA IA67 MR15l} MR152 MR37 TM MR26 MR33 } Ml30 NIl 151 } MR152 MR37 MR35 CNlOl [30000] CN47 TX3 40 41 42 43 IA EJ EJ EJ TP MR73 MRI0l MRl04 TMI 44 TP A TM2 45 TP CN53 Q 22 23 24 25 26 o 1 2 3 4 5 6 7 10 11 33 34 35 36 37 MR IA67 CN73 CN71 CN67 A Check for Sentinel NO - go to End Routine Initialize BM If space, carryon (= MR) TX index Get 1 word INPUI'? (VARIABLES? ) END? ClIO --+ Set EP @ Get next word. TAPE? END? No. TAPE seen. M~ Ml 6--+ TX index Should not be < 2 (i.e. - don't jump if good) Should not be ~ 11 (i.e. - do jump if good) Alarm (illegal tape #) Preserve in Temp. 1 Set up RP Search tape list to see if already referenced (if so - error) Alarm (Duplicate tape #) (by L(TLl) v) by lu, Iv Find 1 word = CHECK? = TAPE? = END? No - preserve in case needed as synomyn Now count to 77 format. Send to working store. Op field mask ---+ Q 1640 TM2 CN54 TM2 0 CN53 A 51 52 53 54 55 QT EJ TP MJ QS LQ MJ RJ TM2 6 MR45 ST 56 57 60 61 62 SP EJ RJ EJ TP TXl CL21 TX CN55 TMI o 63 64 65 66 67 70 71 72 73 74 75 76 77 TP RJ TP MJ RJ TP RJ MJ RJ EJ TP RJ TP CA A TMI STI 46 47 50 MR TAPE END 100 101 102 103 104 105 106 ~ ~~l 1 III 112 (good) 113 114 IA MJ RJ RA MJ MJ MJ 0 STII STII TMI 0 TX A STII 0 GN ST13 LP64 MR170 CL IA127 No, result to Q, all finished Q MR55 Yes, replace by ii and shift left Tlfi2 Now Q holds 77 format. Store (counting 1 vble) Separating symbol ~ A =? No, get more information I s out put~ lJ. ? No, so = was not seen. Prepare to store previous,meanwhile preserving new information MR67 TX3 MR67 Q Store old name ~40 } ~Tl } Now go investigate new information = seen. Obtain synomyn and store it TX3 Then back to look for more. Obtain check n: Correct? MR37 GNI MR77 MR151 MR152 ST13 No. }Alarm Zeroize check counter IA127 0 MR147 TM3 0 10000 0 EF 0 MJ RJ TP RJ TP TV Inspect 1st two digits = Ol? MR52 0 MR147 LP40 PR2 CL TL 115 TV MR27 116 117 120 t2-t 122 123 124 IJ TM2 MJ 0 TP (30000) MR37 MR141 CN4 MR16 MRI06 MRI07 CNI00 [30000] MR141 PR3 } PR TM2 TM2 MR120 MR120 MR124 Act appropriately Up group count by I and back for tape n: P. or M.? P - jump. M - rewind n: 2 Act appropriately INDEX OK. TAPES LISTED ARE Zeroize index Set it up. Initialize Jump on index All through-out 1 tape n: to A A R-J-fiPrJ-- ~-~ Pritt't- -it .- RA MR 120 MJ 0 PR 0 CN50 MRl16 CL7 Increment by 1 "u" Back for more Period 1641 ~ ~d) Error ~ne. TX 125 126 127 130 131 132 133 134 135 136 137 140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157 160 161 162 163 164 165 166 167 170 o 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 PR PR MJ TP RJ RJ MJ TP RJ SP MS CA IA 0 0 0 MR150 PR2 MR 132 CLII CLII YW PR3 } PR [30000] 0 lR LP32 PR2 CL PR3 PR o 0 MR140 (Initially MR 134) Exit (Get off machine) HIT START TO TRY AGAIN Clear A Stop f ETC. IA167 IA167 ZJ 2B INI TP RJ TP RJ TP RJ MJ Q [0 } Carriage return Carriage return Exi t (Normal) EP Box CN75 STll TM STll CL35 STII 0 30000 [0 30000 MJ 0 TV CN41 TP LP16 TP LP46 RJ MR152 TP LP47 RJ PR2 SP TM3 PR 0 RJ DP13 PR 0 PR 0 TP MR 151 RJ PR2 MJ 0 CA IA220 IA IA220 MJ 0 [0 30000 [0 30000 TP CN55 TP TX2 MJ 10000 RJ TPl MJ 0 RJ MTl MJ 0 MJ 10000 RJ BP2 SA CN TU A TP [30000J MJ 0 STI Q STI ~l } [3OO00J 3OO00J 30000] [30000] MRI07 MRlSO PR3 MR160 PR3 PR EP parameter. REP parameter. Entry. Initially MR 153 M--+ M2 Set EP Prepare for Print-out ® Q-+ Q2 o CL3 DP CLIO CL2 PR } PR [30000J [30000] 30000] 30000] TX36 TM2 TXIO TP MT r Go print Group count -+ A Shift down Print group count. Space Shift up Specific diagnosis Exit Exit. Output line (for cut-off symbol) Input line (value for index setting) Entry. Fill word with Il ---- 8 Set index P or M? P. Find start Go translate M. Find start TX14 TX21 TX20 BP 17X16 (Non zero - get off machine exit) Il TAPE Il ---+ Q --+ index Tape #~ Q ~ index leave room (cleared) for indicator or M? P - Find next frame. P } Translate TX21 1642 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 GN 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 RJ RP EJ LQ TP QS IJ TP RJ TP BM 20006 CL14 TX36 CLI A TM2 LP70 MRl70 CN54 MJ 0 TP TP MJ [0 CA A TX36 0 30000 IA257 IA MJ TP MJ RJ EJ RP EJ RJ EJ TJ MJ ST SP SA QA MJ RJ RP EJ RJ RP EJ SP MJ TP RJ MJ IA257 0 CL 10000 TPI CN32 20012 CL22 MTl CL21 CN56 0 CN37 GN33 GN33 CL33 10000 BP2 20005 CL6 BM 20006 CL14 GN33 0 LP74 MR170 0 [0 30000 BMI TX23 TX33 6 1J Q Mask~Q TX36 TX12 MR151 MR152 TM2 TXl2 TXl A TX 30000] Insert new character } Word assembly space [30000] GN33 GN7 TP TP GN30 GN14 MT Exit Zeroize working store P or M? P. Get 1st character Throwaway = Check down digit list Mag. Tape - Find 1st character. Throwaway = Should be < 158 MT GN13 GN30 Q 2 1 GN33 GN23 BP GN5 GN26 BMI GNII GN26 0 GN MR151 W152 GN17 0 1 I}\ IA313 EF 0 ER 0 } } } Subtract 3-+Q Multiply previous by 10 Add in new figure P or M? P - get next ch. Exit if A cr tab M. Get next ch. Exi t if 11 = i t Result~ } and out. Alarm Erasable 30000] BP4 A Alarm Reset index to large value Output to A CA IA313 BP M - Find next character = Exi t ~ ~~X ~ cr tab. l X:);:S 1 6 = ,. 1 1643 A , FlEX XS3 2 3 4 RP EJ 10 CA 20006 CL 3 IA320 TP 0 1 2 IA RJ RP EJ CA IA320 BP2 20006 CL6 IA323 ST 0 1 2 3 4 5 6 7 10 11 12 13 IA RA TP RA RA TJ TP RJ TP TP MJ IA323 ST13 BM MT 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 0 Q STI FXl CN76 LP77 MR170 CL CNI0 0 o [30000 o [30000 CA IA337 [30000] BP 0 J Basic paper tape read. BP [30000] BP Throwaway routine. (After this, we have a significant code) CN4 [30000] ST12 CN47 STII MR151 l'tlR 152 ST12 FXl [300001 30000] Count 1 vble. Build index Inc. st. order } Alarm. Increment Vble. count. 30000~ IA IA337 MJ 0 [3OOO0J IJ BM22 BM14 RA BM14 CN50 IJ BM23 BM13 TP CN77 GT3 RJ GT2 GT TP CN61 A EJTB BM17 EJTBI BM17 TP CN57 BM23 TU BM7 BM14 TP CN74 BM22 LQ [30000J. 6 QT CLI A MJ 0 BM TP LP24 MR151 } RJMR170 MR152 MJ 0 MRI04 [0 30000 30000] } [0 30000 30000J CA IA363 Exit Entry. Jump on word index Read 1 block forward } } Z-------Z ~ A If Sentinel seen., alarm. Word index -+ 167 Shift index -+ 5 Extract 1 character And out } IA IA363 RJ BM BMI Jump on shift index Alarm Shift index Word index 1 Mag. Tape throwaway. 1644 1 2 DP 0 1 2 3 4 5 6 7 10 11 12 13 RP 20005 EJ CL14 CA IA366 IA DV TP TN ZJ AT [0 TP ST [0 PR PR MJ CA IA366 CN72 A Q DP4 CL34 30000 CL34 TM4 30000 0 0 0 IA402 [30000] BMI Q TM4 A DP6 DP5 30000] A DPIO 30000] CLIO CLIO [ 30000J J (Discard ill, } Quantity given in A. Save remainder Tens figure zero? ;) Divide by 10 No, form print order Dummy print again form print order for units } Then 2 spaces Exit Initialization for XW YW 0 1 2 3 4 5 6 7 10 11 IA TV TU TU TV TP TV TU TP TV TP CA IA402 XWI06 FX FXl XWI07 CNIO XWIIO XWI06 LA XWIll CL IA414 XW74 XWl6 XW15 XW53 TL XWI XW2 TMI XW50 LB Enable restart after 1st error pass } Set up index-scanning Initialize error print-out section Set Tape List index to 0 20000 0 Set normal exit (YH) Scan.List A from LAl } LA Set Index Build List B from LBI and set index 1645 First Run-Through Data List, and Preliminary Checking. XW o 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 XW 40 41 42 43 44 45 46 47 50 51 52 IA IA414 IJ TMI MJ 0 TP[30000] TP A TP CN53 qIA ZJ XW14 RJ XW52 RA XW2 TU A TP[30000J RJ XW52 TP Tl'tl RP[O ] EJ[30000J SN Q SA XW15 SA XW16 TU A LQ Q TU Q TP CN75 RP[O ] EJ[30000] SN Q SA XW26 SA XW27 TU A SP[30000] TP A TU TL RP[O J CA IA4S4 IA EJ TV RA TP RA RA MJ RA TP RA MJ IA454 TLI TL XW43 TM TL XW2 0 LB TM XW50 0 XW2 [ 30000J Jump on List A index Exit when all completed Examine one item. Save it in temp Op field mask ---+ Q and examine Ope field A TM Q A XW7 XW47 Zero, . a "mod. Ed.a" line build List B So extract next line (XS3 name) and store it as well, in List B Now, name to A Scan index. (Alarm, if not present) CN50 XW12 TM XW50 A XW53 XW17 17 } o o XW27 17 XW26 Set up EJ for continued search Set up RP [f1 TAPE f1 to A Continue to scan index, searching for tape # A XWI03 } XW30 17 o o XW34 o Tape "# ~ A and save it TM XW37 XW41 XW45 XW43 CNIOI [30000J CN47 CN50 XW CN4 [30000] CN4 [ 30000] Scan referenced tape list Not yet present - so insert it Increment index Prepare to scan further down list 1646 56 57 60 RJ XW53 TP CN74 XW60 TM2 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 LQ QT RP EJ SN SA PR 6 A 55 XW 100 101 102 103 104 105 106 107 110 III 112 0 LPIIO PR2 XWl12 [30000 J PR3 MJ TP RJ TV 53 54 TM CLI 20074 CNI Q XW63 0 1J TM2 PR 0 MJ 0 PR 0 RJ XW74 MJ 0 TP LP32 RJ PR2 CA IA514 IA IA514 SP CL MS 0 ZJ ZR TP LP131 RJ PR32 MJ 0 o LAI o 0 o 0 o 0 o 0 PR Initially XW54. Error Routine. Print: FOLLOWING VARIABLES NOT 1 ~ INCLUIED IN INDEX. Amend exit from main routine (to XW 73) XWI XW71 XW65 17 71 A XW61 CLII XW45 CLll [30000 ] 2nd and subsequent errors here. 5 ~index Shift one character over Extract it Compute and print Flex-code 1 Carriage return, when fully printed Extra CR Error END. Initially XW76 2nd time - get off machine 1st time: HIT START TO TRY AGAIN ZR PR3 PR } o Clear A Stop If A ~ 0, get off machine; otherwise, try again XWl02 YWI PR3 PR } ZR 1 XW76 XW54 YH LBI XW73 Print: G-O-M MACHINE ERROR Constants. CA IA527 Initialization for XH YH o 1 2 3 4 IA IA527 TP CL TV TL TV XH46 TU XW40 TV XH47 CA IA534 TM3 TM3 XHI XH2 XH17 } Set index Set normal exit: BACK TO LOADER Start list at TLI Initialize error procedures 1647 XH o 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 XH 40 41 42 43 44 45 46 47 50 IA IA534 IJ TM3 MJ 0 TP [30000] SP TM AT CL36 EF 0 XH2 [30000 ] TM 14 } iMl Rewind this tape. XH31 XH17 Go read in 1 block forward Alarm return - no lead Sentinels 11 DATA --+A Tape so labelled? No, prepare to read more. Set scan index RJ MJ TP EJ TP XH40 CL35 TB2 CL21 A RJ IJ TP EJ MJ TP RJ TV RJ SP RJ XH40 TM2 CL35 TB2 XH31 XH31 0 0 LPl17 PR2 XH50 XH17 RA MJ SP A.T RJ TP RP EJ RA CA IA MJ TP RJ SP MS XH27 [30000] PR3 } PR XHl XH24 o DP TMI CN50 XH 17 GT3 GT XH2 0 TM CL37 GT2 CN61 20092 TB XH40 IA574 No Sentinel seen 11 DATA 6-+ A Tape so labelled? No, alarm. (initially XH20) Print: DATA TAPE NOT MOUNTED ON SERVOS l:J. Amend exit from main routine. (to XH4D Disconnect this path Tape #---;.A Convert and print it Rewind tape Pick next one A DP13 } Read 1 block forward z-------z to A If ZZ_ _Z seen, go to exi t +1. If not, normal exit. A XH40 XH37 CN4 IA574 0 LP125 PR2 CL 0 ZJ ZR o 0 o o XH27 TM2 TM EF 0 Count down on index Exi t Extract 1 tape # 0 0 [30000] PR3 PR Error exit. Print: CHANGE TAPE, HIT START. Clear A Stop Hit Start to continue o XH45 YH LDl XH20 XH41 CA IA605 1648 XS3 - Stored by Flex. CN 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 CN IA IA605 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IA645 66 0 II H N M 0 46 54 32 34 52 26 70 30 74 27 25 65 73 31 72 24 71 44 14 67 53 45 03 51 52 76 01 21 1 0 01 04 53 770 0 54 01 0 0 50 T MR134 51 01 33 50 47 IA645 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 40 41 42 43 44 45 46 47 IA 0 0 0 CN L R G I P C V E Z D B S y F X A W J 9 U Q K 0 r.R153 r.R 130 22 mIlO = cr =>~ tab => II 1 1649 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 100 101 01 0 0 0 74 0 01 0 34 0 01 0 01 0 01 0 01 0 50 02 0 CA 01010 0 0 0 74747 0 34505 0 24254 0 01013 0 01662 0 26333 0 66245 20150 102 00200 0 IA707 10101 15 167 13 47474 10 26766 07 63065 11 05027 06 45230 12 02645 05 23001 150 TB 20000 TL1 8 z-----z 5 11 INPUf 4 IABLES 6 ill1 ~END ill1 TAPE 7 11 CHECK 2 ~TAPE~ Limit for index GTH code for read 1 blk. forward(#2) Rewind Uniservo 2 Constant 1650 CL LP 0 1 2 IA IA707 0 0 0 0 0 0 Leader Delete 0 77 47 ~ 57 02 43 J 46 42 04 45 51 61 01 21 22 23 0 76 33 60 72 66 62 64 70 74 52 37 CL33 62401 0 TB 1 3 0 0 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PR 01 02 50 CA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27246 00200 00100 IA747 0 1 2 3 4 5 6 7 10 11 12 13 14 IA 45 27 07 06 0 45 30 15 16 0 45 26 06 IA747 47140 04140 15122 24142 LP 47060 01300 20042 14261 LP5 01052 03122 30161 15 .Q-l~2-31 -12000 16 17 0 LP12 45 47200 4 62204 t~ basic throwaways 1 Co1or Stop Flex 1J . !:l Cut off's Cr Tab J Backspace !:l XS3 codes. , i = 9 8 7 6 5 Flex-codes 4 3 2 1 0 Dummy print !:l DATA !:l General rewind code General read code Cr t X !:l M P N S 62220 61603 00520 31120 4 30422 40130 41520 42022 D E C 0 R E H E I B L E I I N N Cr t N o A T A !:l P E ~ S C I F I !:l D T A P E E D ) ) EP 0) EP @ 4 Cr T H E R E F 0 R E ~ U N A C C E P T A B L E - 01220 00434 62015 Cr 1651 t I E N D ~ 1 EP ® 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 06 14 03 20 0 04 01 01 12 14 0 45 27 01 11 04 03010 01012 06040 45450 LP17 04040 04240 04010 25043 06454 LP25 47140 04033 30152 14240 30122 CA IA1007 43112 00604 13015 00000 5 40514 13012 30401 01330 50000 5 62220 60404 02404 12022 00457 N I 0 0 T ~ W R T T E N ~ N ~ T E Cr Cr A P ~~~~H I T ~ S T A R T ~ T ~ T R Y ~ A G A I N Cr C r - o I N D E 0 K ~~ T A P E S ~ L I S T E D 6. A R E ~ Cr • X ~ + 1652 I BM Special alarm IA LP 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 !AI 007 IP33 47223 14062 20121 45454 12033 LP41 LP45 11112 04013 06034 IP50 34151 01200 20040 0 LP54 05201 06160 16014 LP61 03122 03041 45450 LP65 11112 04221 45450 LP71 17201 31454 LP75 CA IA1047 0 45 04 04 24 13 0 0 14 11 04 0 22 30 15 45 0 16 14 20 0 31 03 13 0 14 11 01 0 03 03 0 5 00130 22027 20312 50000 41504 5 1 01330 01520 54500 3 11416 40130 60345 0 4 63604 31212 54500 3 20401 10306 0 3 01330 41314 0 Cr ti t D A T N D E A 0 X R S Cr Cr Cr G R 0 U P ~ I ~E R I L L L ~ T ~N 0 R - E G A A P E Cr Cr - D u P L I A T E ~ T P E ~ N 0 Cr C A Cr C H E C K ~ I N C 0 R R E C T Cr Cr W 0 R D ~ T 0 0 ~ L 0 N Cr Cr Cr I L L E L ~ D I T Cr Cr G A G I 3 22611 50000 2 0 V E R F L 0 W Cr Cr- 1653 1 Error J print-out headings CD ® ® CD LP ZR 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 121 122 123 124 125 126 127 130 131 o IA IA1047 45 03 17 11 01 34 06 27 0 45 04 06 34 03 17 0 45 06 15 14 12 0 45 14 12 0 CA 47260 31140 30121 20240 04140 22202 04140 45450 LP100 47223 01301 03010 06012 06042 03240 LP111 45471 13200 20040 01042 01454 LP120 47073 06200 03124 IP126 Cr t F 0 L L 0 W I N G i::l V A R I A B L E S i::l N 0 T i::l I N C L U D E D i::l I 31111 61304 43023 40603 61611 20414 62220 0 10 00130 52004 40703 02204 42012 40457 6 60530 40130 40405 40130 50000 5 01605 42012 54500 3 1:1 I N X Cr Cr N Cr i::l N D E t D A T A A P E i::l 0 T i::l M 0 T T E D i::l i::l s E R V 0 s i::li::l ~ U N 0 N Cr Cr t N G E P i::l T A Ei::li::li::l H I T ~ S R T Cr I t N R 0 C H A T A Cr Cr M A C H i::l E R R Cr Cr- E L4.1101 IA IA1101 EF 0 Rewind tape # 1 Back to basic loader ZR2 1 MS 0 DA 2 02 00200 CA IA1104 10000 1654 Box 2 errors Section 2 of Initialization Prep$re to Scan List the total number of segments in the problem. The following conditions are assumed for FF and TT o S FF ~ 63 10 1 ~ TT ~ 63 FF :f. TT 10 To move the tape from Segment FF to Segment TT, two cases must be considered. Case 1: Case 2: ~ TT FF"/ TT FF At the time the tape is to be moved from Segment FF to Segment TT, it is positioned exactly at the end of Segment FF. Hence the number of blocks the tape is to be moved to position it at the beginning of Segment TT is: Case 1: Case 2: B( FF + 1) + B(FF + 2) + . . . + B(TT - 1) B(TT) + B(TT + 1) + . . . . + B(FF) The tape is moved forward for Case 1660 ~ backward for Case 2. Segment Layout on Object Program Tape Label Block 1 i 21 3 1 4 S T ~ E G ~ M ~ ~ 00 00 00 00 00 00 5 O~N~O 00 00 00 00 00 00 6 I Nil Sentinel ~ IJ p M I OOI~L~ I~y~ I I 371Preface IExit 8 9 00 Z 00 Z 00 Z Z Z Z Z Z Z Z Z Z . I ,Preface jEntry R q~R~ --------- (XS3) = Segment number M = number of blocks of Termination N = number of full blocks in Segment + Preface L = no. words of partial block; Y = Insert address of partial block Return Jump to execute Preface 00 7 120 P r I Segment and Preface Blocks E } = number of words in Preface XS3 Z fill . Full blocks of Segment and Preface Partial Block z z z z z z I Partial block of Segment and Preface Remainder of partial block filled wi th Z' s z z z z z z Termination Blocks Blocks of Termination as required 1661 Pick up IP command Set up Exit from control to address in Next Segment (Segment Number T) Save number s of Segment from (F) and Segment to (T) NOTE: )---.::.!ioI Is there a termi nat i on fCi.·I-------:~ Segment F? Set tape handler parameter to read one block of termination to buffer Set Tape handler parameter J-----31111 toR ea d La be 1 Block of Segment T Is this the correct Segment? Last block of termination returns at @. All others return at ® Print Alarm: COMPILER OR MACHINE ERROR. YOU MAY RESTART PROBLEM. Extract from label block the number of full blocks in Segmen and Preface and Set Tape Handler Parameter Save number of blocks in Termination Set Entry for Preface Set up transfer of partial block Control Section for Obj ect Program Is there a partial block? Rewind Object Program Tape (Servo 1) ~--=!II!I Set tape handler parameter to read partial block to buffer >------=~ Transfer parti a I block to operating area Set Repeat summation to ,-----::::..a compute B(T) B(T+I)+ •.• + B(F) Set repeat summation to comput ....--_::::.IB(F+I )+B(F+2)+ ••• +B(T-I) Pick up move forward tape handler parameter NOTE: Pick up move backward tape handler paramete Stringout Segment table of block counts in buffer Control Section for Object Program (Cont.) Sum block coun~s and set up appropriate move parameter B(K)=number of blocks in segment K. Regions for UNICODE Control RE Loading address during Initialization Generation Operating address during Object Program Move tape routine ON4274 RE CT5 RE MT77 RE KK142 RE KTl61 RE TB166 RE GT210 RE BU610 RE RE Segment table Tape handler Termination buffer DA77300 PR77250 Object Program Loader Flex print routine 1664 Object Program Control IA 2 3 4 MJ 0 0 30000 0 30000 0 30000 TP 0 ;:);:, KKO TU A TP 30000 TV Q CT 30000 30000 30000 A 17 CT3 Q CT52 5 6 7 10 11 12 KK13 17 KK14 25 MS 20000 TP KTO A KTI A KT2 CT12 A 13 14 15 16 17 20 21 22 23 24 25 26 27 30 ZJ TP RJ MJ RJ TP RJ EJ MJ TP AT TV TP MfO KK15 GT2 BU2 KT2 0 BU4 KK3 TBO BU3 CT17 GT3 GTO BUO MTl GT3 GTO A CT25 CT53 A GT3 GT3 KTO 31 32 33 34 35 36 37 TP BU6 TP KK12 TU BUS TP KK16 AT KT3 TV BU5 RJ GT2 CT50 KT3 KT3 A CT44 CT45 GTO 40 41 42 43 44 45 TP ZJ TP RJ RP TP A CT46 GT3 GTO CT46 30000 CTO 1 CD (2) @ @ ® ~~ QT LT QT LT TP Segment from = F Segment to = T F2 : Jump to control Ol~ CT14 KK15 GT2 0 KT3 CT42 KK15 GT2 30000 BUO 1 J Set up address of IP command IP command ~ Q Set up exit from Control to segment T F·22l ~ A F~KTI T.2l5~A T~KT2 Selective stop at end of segment Is there a Termination for segment F? } } } } } } } } 1665 Yes, so read block of Termination to buffer and execute. Returns at CT14 or CT17 Move tape to segment T Read label block of segment T Is this segment T? No, so go to print alarm Extract information from label Set up parameter to read full blocKs of segment and Preface Set KTO to number of blocks in Termination Set entry for Preface Set up partial block word count Set up transfer of partial block Read full blocks of segment and Preface Is there a partial block? Yes, so read it to buffer Transfer partial block to operating location (j) ® ® ® @ @ 46 47 50 51 TP KTO ZJ CT50 RJ 30000 MS 10000 A CT51 30000 CT52 52 53 54 55 MJ 0 TP CT60 RJ PR2 EF 0 30000 PR3 PRO CT57 56 57 60 61 62 63 64 65 66 67 70 71 MS 02 0 45 14 12 14 12 34 12 01 11 0 200 CT61 47160 11201 04073 06200 03124 04073 20240 04151 20074 } } Execute Preface Selective stop before operation of segment Execute segment T Print alarm Rewind Object Program tape (Oniservo 1) Stop DAO 10000 11 30715 20403 01605 42012 52503 02504 13012 20323 55700 Parameter Cr t C 0 I L E R R !J. M A I N E !J. R 0 R Cr U !J. M A R E S T T !J. P R L E M Cr MIO 1 2 3 4 5 6 7 MJ 0 TP KT2 ST KTI ZJ MT4 SJ MT5 TN A SA KKO AT KK4 CT53 MI13 A 17 MT35 10 11 12 13 SP KT2 TP KK2 MJ 0 SS KKO 17 KT4 MT20 17 14 15 16 17 20 21 22 23 24 25 26 27 AT TP SA TP AT RP TP TP TP RP MI35 A 17 KT4 MT36 MT23 BUIOO KT3 MT31 MT27 11 } Q 1 KK4 KT1 KKO KK1 KK5 30020 TB1 KK7 KKIO 20020 LQ BUIOO TP KK6 Is there a Preface for segment T M P !J. 0 C E Y Y A 0 ~ H R 0 !J. R B Exit Entry T- F ~ A If T = F, go to print alarm Is T > F? No, so F - T ~ A (F - T + 1) . 2 15 --7 A Set up repeat summation on Segment table T . 2 15 ~ A Pick up move back dummy 30000 A A } T > F, so form (T - F - 1) . 215 in A Set up repeat summation F~A (F + 1) . 2 15 ~A Pick up move forward dummy Set to pick up first term Segment table ~ buffer Set index 1666 Position columns String out the block counts of the Seg- 32 RP QT RA 33 IJ 34 35 36 40 41 TP RP SA LA A AT KT4 RJ GT2 42 MJ 0 KKO 30 31 37 30020 BUIOO MI'31 KT3 KK12 20000 BUO MT32 J BUO KKII MT25 Add block counts to determine the number of blocks to move tape 25 GT3 } GTO MTO Add sum of blocks to parameter and move tape to segment T To exit. 0 1 30 1 2 3 4 5 6 7 10 40 1 1 o o BUO QT 14 o o o o 0 0 BUl00 o o o 15 50 0 0 7700 77 101 16 RP 30000 CT46 KTO o 0 o 1 o o o o o o 0 0 0 0 CA ON165 12 13 2 3 4 Move forward dummy Move backward dummy Read forward dummy Repeat summation dummies 30000 ~T37 } 50 RP SA 11 J ~37 } o o o 4 columns strung out? ment Table to simplify the summation A 1 20000 Mask out columns 777 Segment table column mask 3 BUO 20 Segment "from" mask Segment "to" mask Parameter to read one block to buffer Partial block repeat dummy. BUO Number of blocks of termination (= 0 for F = 0) F = segment number "from" T = segment number "to" o o 1667 Object Program Tape Handlers Since the 1103A and 1105 Tape Handlers which are put on the Object Program Tape by Initialization Generation are the same as those used in the Translation Phase, only their regional assignments are shown here. Flow charting, coding, and an explanation of them may be found in Section III, 3, Translation Subroutines. Obj ect Program Tape Handler Regions I 1103A I RE TG4461 Length = 370 8 words RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE TH210 WB244 WW256 RF270 IA300 RR301 RE321 RA330 RB367 RW377 MF404 MB415 PC417 WE440 CF451 CC464 CE524 CD547 VV557 CR565 1105 { Loading address} during Initia1ization Generation Operating addresses during Obj ect Program 1668 RE TG4461 RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE TH210 RW257 RF264 RB272 IA300 EX301 WB304 WW316 RR330 RE346 MF4l1 MB422 PC424 WE445 CC456 CE516 CF534 CD547 VV557 CR564 Length = 365 8 words a-- VI. PROCESSING PHASE VI PROCESS ING PHASE The Processor uses as input the Op File III for each segment together with the library and generated subroutines with their preludes. From this input the Processor assembles the required subroutines for each segment. As each subroutine is processed, the relatively coded addresses are changed to the proper machine coded operating addresses. Cross reference call words are replaced by the necessary machine coding to accomplish the cross reference, depending on whether the reference is "within a segment" or "from one segment to another". When all the routines for one segment have been processed, the segment together with its Preface and Termination is transferred to Uniservo tape. This tape, containing all the segments in sequence, is the Object Pro- gram tape. A more explicit description of the methods used in modifying the relative coding follows. In the initial stage of the Processor the Op File III for the segment to be processed is read from tape into High Speed Storage. When this transfer has been completed, the first subroutine is read from the Generated Routines Tape into the Tape Image in High Speed Storage. At this point the tape hand- ling is temporarily suspended and the actual processing begun. The call word for the subroutine is checked against those listed in Op File III to determine if the subroutine is referenced in this particular segment. The word following the call word is then checked to see if it has a flag indicating a cross reference to another segment. If the call word is listed in the Op File III and is not flagged, the subroutine will be processed at this time. If the subroutine is not to be processed at this time, the next subroutine will be read into the Tape Image and the foregoing procedure repeated. When all the generated routines in the segment have been processed, the Fixed Library 1671 and Standard Library routines are processed in like manner. The first line to be processed in all cases is the entrance line of the subroutine. Following the modification of this line, each line subject to address modification is processed in order, beginning with the line indicated by the line count of the Tape Image. Each relative address is processed de- pending on the nature of the coding, to obtain the proper machine coded address. All addresses within the range 01000 addresses coded relative to OIOOOi through 07777 are modified as hence, the corresponding absolute address is obtained by subtracting 01000 from the relative address and adding the High Speed Storage operating address for the subroutine in which the address appears. The High Speed Storage operating address for the routine is obtained from the word following the call word for the routine in Op File III for the segment. All other addresses to be modified are in the form of call words (see call word section). Call words of the form 10xxx, 20xxx, 60xxx, and 70xxx are unique only within the routine in which they appear. The absolute addresses corresponding to such call words are obtained by adding the last three digits of the call word to the initial High Speed Storage operating address of the constant or temporary region associated with the call word. These initial addresses are calculated from information in the Prelude of the routine and provided as inputs to the Address Modification Subroutine. Call words of the form 61xxx , 63xxx, and 76xxx are modified to obtain the corresponding absolute address, by adding the last two digits of the call word to the initial High Speed Storage operating address of the Pseudo Operation Input Region. The initial address for the Pseudo Operation Input 1672 Region is that of the thirteenth word of the Termination Buffer, and is stored as a constant in this phase. Absolute addresses corresponding to call words of the form 62xxx and 75xxx are obtained by adding the last two digits of the call word to the ini~ial High Speed Storage operating address of the Function Input Region. The initial address of this Function Input Region is that of the first word of the Termination Buffer and is also stored as a constant in this phase. Call words of the form 64xxx, 65xxx, or 66xxx are modified to obtain the corresponding absolute address, by adding the last three digits of the call word to the initial High Speed Storage operating address for the subscripted variables of the Object Program. non~ This initial non-subscripted variable address is obtained from fixed location 00007. Similarly, call words of the form 67xxx are modified to obtain the corresponding absolute address by adding the last three digits of the call word to the initial High Speed Storage operating address of the Constant Pool for the Object Program. This initial Constant Pool address is obtained from fix~ ed location 00010. Call words of the form 7lxxx are used to reference absolute addresses in the range 01000 to 01777 and are modified to obtain the absolute address by subtracting 70000 from the call word. Those call words which reference another routine are of the form 22xxx, 23xxx, 24xxx, 25xxx, 26xxx, 27xxx, 4xxxx, 5xxxx and those which reference a subscripted variable data array are of the form 77xxx. All such call words are considered to be cross-references of the routine, if they appear as add~esses to be modified, and must be in Op File III for the segment. are not, AUh1M 11. COMPILATION INCONSISTENCY (etc.), is typed on the 1673 If they Flexowriter. With one exception, instructions containing call wordS of this type are modified by replacing the call word by the High Speed Storage running address of the referenced subroutine or data array. This running address is obtained from the word following the call word in Op File III. The one ex- ception in which this method of modifying a cross reference does noc apply is that in which the cross reference is to another segment. Due to restrictions imposed in this system of coding, a reference to another segment occurs only as a one way unconditional jump and is modified by replacing the entire line of coding by an interpret instruction designed to furnish the ContrOl Section with the information necessary to accomplish the desired cross references. This interpret instruction is obtained from the word following the call word in Op File III. It contains the segment number from which the jump is made, the segment number to which the jump is made, and the High Speed Storage running address in the latter segment. When a reference is made to a line of another subroutine other than the entrance line, the line to be modified contains the call word of the referenced subroutine. When a reference is made to a line in another subroutine other than the first line, the instruction in which the reference is made contains the call word of the referenced routine. This instruction is followed by a special line of coding of the form IO-xxxxx-xxxxx, called a "tent. line. This "ten" line contains the number of the referenced line relative to the first line of the referenced routine. This number will be in the same portion of the "ten" line, i.e., "uti or ttv" address, as the call word in the referencing instruction. In processing a reference of this type, the call word is modified as previously mentioned, to obtain in the referencing instruction, the High Speed operating address of the first line of the referenced routine. 1674 After both addresses of this instruction have been modified, the contents of the "ten" 1~lne, • less the op_ code, are added to the instruction to change the High Speed Storage addressees) from that of the first line of the referenced routine to that of the referenced line within the routine. As the lines of a routine are modified, they are accumulated in the Tape Image and transferred in groups to locations in the Segment Image on drum, corresponding to their High Speed Storage locations during the running of the segment in the Object Program. When all the lines subject to address modification in the routine, i.e., instructions and relative constants, have been processed, the fixed (unmodifiable) constants for the routine are transferred to consecutive locations in the Segment Image, following the last modified line of the routine. Words of zeros, equal in number to the temporary storage locations required by the routine, follow these constants in the Segment Image. Each generated subroutine and library routine required for the particular segment is processed in this manner. When all the required routines for a segment have been assembled and processed, the entire Segment Image load, ineluding the proper Preface, Termination, and segment label block, is transferred to the oatput tape to form a segment of the final running program. The Generated Routines Tape is then rewound and the UNICODE System Tape and Standard Library Tapes are moved back to the beginning of the Fixed Library and Standard Library, respectively. The processing of the next segment is then begun. Each succeeding segment is processed in exactly the same way until all the segments have been processed and written on the output tape. This tape, containing all the segments of the final running program, is then the Object 1675 Program Tape. In addition, during the execution of this phase, the Sentence Number List is built and stored on drum for use by the Program Listing Phase. (See Program Listing for format of this list.) 1676 PROCESSOR SETUP BLOCK Regional Assignments HE TtI21 RE RE RE UP421 CK653 PS7230 Tape Handler Uniprint Routine Processor Processor Setup Block Processor Setup Routine o 1 2 IA TP PS 15 TP RJ TH2 PS26 6 TH3 TH TP 5 QJ QJ 11 TP RJ TP RJ PS5 PS6 PS27 lli2 PS13 UP2 12 13 14 15 16 17 20 21 22 23 24 25 26 MJ 00 01 52 70 01 65 24 27 47 26 22 50 PS14 01010 24656 22010 52545 65345 50270 54306 51273 24663 77777 00601 CKI 12 10101 50134 10101 12630 03201 12427 56501 43134 45150 77777 CK 27 40 00102 o CA PS30 3 4 5 6 7 10 o Q PS5 PSI0 TH3 TH UP3 UP Modified Dimension List length to fixed location 00006. Parameter to Tape Handler Read Processor from Unicode System Tape to core. Library indicators ~ Q. Ignore Fixed Library indicator. Is Standard Library required? Yes; parameter to Tape Handler. Move Library Tape backward one block. Parameter to Uniprint routine Type: PASS IV. PROCESSING AND ADDRESS MOD IF ICATION . Jump to Processor. Parameter for typeout. £::. £::. £::. £::. £::. £::. PAS S £::. I V • £::. £::. £::. £::. PRO C E S S I N G £::. AND t:. A D D RES S t:. MOD I F I CAT ION 77 77 77 77 77 Parameter to read forward 6 blocks from Uniservo 1 Parameter to move backward 1 block on Uniservo 2 t:. 1677 => Beginning of subroutine; where XX is regional (RECO) label for routine ~ Exi t from subroutine ==>Connectors; where X is connector number => Switch; where "Alt is symbol Explanation => Explanatory note; no action implied. /-rl!. «,o1!It..U\ \ ==> Return jump reference (subroutine); where parenthesis enclose the connector number / Function Performed 0uestio~ to which the reference is made. ==> Reference to general subroutine which is not part of this phase; where parenthesis enclose regional (RECO) label for routine ==> Operation Box ==> Decision Box Key to Processor Flow Charts Processor Flow Chart Get library indicator word Number of library routines in from absolute address 00005 problem less one to Temp 228 Set switch to @ Check Ope code of library indicator word NO ® YES YES Is standard library required? t ___ Setup tape handler codewords Setup temporaries, tape handler codewords and limiting values Set servo number for object Check servo] indicator YES Seven servo~ p_r_o_g_r_a_m_t_O_6_1_.n_p_r_i_n_t_o_u_t_t_e_x_t_"'_-_-_-_~ r_:_:_U~ired f_o_r_s_e_v_e_n_s_e__r_v_o_s_________ __ .J YES Codeword to tape handler to read I block of Ope File III from servo 5 to File Image (TH) Tape Handler Type: ALARM 10 COMPILATION INCONSISTENCY (etc Zeroize 27775 words on drum 8 for segment image to allow for 3 core bank segments in object program ~--4IIl NO Is first word in File Image = "FlLEA3"? [Entry label block?] Is first word in File Image = "ZlZlZZ"? [End of tape block?] Set switch Setup current tape handler codewords (TS16-TS21) to apply to generated routines tape Set switch to @ NO Set switch CV to Preset library routine index (temp 158) to number of routines in problem less one Codeword to tape handler to rewind generated routines tape Set switch © ...... 0' Codeword to tape handler to move servo I backward to beginning of fixed library to Set switch ® @ (TH) Tape handler co ...... to @ (TH) Tape handler Set switch 0to Reset number of blocks to zero in code word to move servo 1 backward To Conn. (32 routines Codeword to tape handler to move servo 2 backward to beginning of standard library (TH) Tape handler Reset number of blocks to zero in codeword to move servo 2 backward ® Set switch! ®to @~ Setup routine (LC) to count blocks of fixed library processed • r--_~I .- Setup current tape handler codewords (TS16-T521) to apply to fixed library tape (servo 1) Setup routine (LC) to count blocks of standard library processed I_ .----- r______ Setup current tape handler codewords (TS16TS21) to apply to standard library tape (servo 2) Codeword to tape handler to read 2 blocks from library tape (servo 2) to Tape Image To Conn. (70) Readanct count2 block of servo 2 One shot Transfer first block of library routines from second block of Tape Image to first block of Image Set switch ® @ to 6 Obtain object program running address of "IP" jump to next segment from Temp 118 Type: ALARM 7 COMPILATION INCONSISTENCY (etc.) _To~onn. j£9)_ _ _ Process standard library routines YES Check OPe code of library indicator word from absolute address 00005 Is standard required? NO Is fixed library required? ~--~library Add appropriate drum address to form corresponding address for "IP" jump in Segment Image on drum. Preset in Box 1 "T6~66~1I in XS3 to second word in segment label block NO Box-l Obtain "IP" jump to next segment from second word of Op.File III. Add one to "v" address and transfer "Ip to Segment Image on drum lt ItSegmen" in XS3 to first word in segment label block Octal segment number from Temp 108 to "v" of third word in segment label block Divide number of lines in Termination by number of lines in one block (17° )., 8 Number of lines in Preface (Termination) from Temp 7 to "v" of eighth word in segment label block Number of full blocks in Termination to fourth word in segment label block I ! 1 I & In segment label block, advance number of blocks in Termination by one to count partial block Number of full blocks in segment + Preface to fifth ~ word in segw~nt label block ( Bit s 21 10 t h r u 32 1O) Add [number of lines of statements and routines + 2 from Temp 1281 + [number of lines in Preface] to form in Temp 1 the number of lines of segment + preface Number of lines in partial block of segment + Preface to "v" of sixth word in segment label block ~ Divide number of lines in segment + preface by number of lines in one block (1708) cl) Add [initial address in run ning segmen t from Temp 258] + [ Number of lines in segment + preface ] to form address of word following preface in running segment (Temp 5), Form [address of word following Preface from Temp 5] - [Number of lines in Preface] to obtain address of exit from running Preface in "u" of "A" Form [addres~ of word following Preface from Temp ~ - [two] to obtain address of entrance for running Preface in "v" of "A" Add return jump Ope code to addresses in "A" to form return jump to execute Preface. Store this return jump in seventh word of segment label block Is number of lines in partial block of segment + Preface = zero? YES Form [address of word following Preface] - [Number of lines in partial block of segment + preface] to obtain initial address of partial block in runnin Fill words 9 thru 12010 in segment label block with Z's in XS3 Store number of lines in partial block of segment + preface in "u" of sixth word in segment label block and initial address of partial block in "v" of same word Codeword to tape handler to read Ope File III "End of Entry" block and Preface (if any) from servo 5 to File Image NO Type: ALARM 10 COMPILATION INCONSISTENCY (etc.) Add {number of lines of statements and routines +2] + [drum address of first statement in Segment Imag~ to form drum address for first word of Preface in Segment Image Transfer Preface (if any) from File Image to Segment Image on drum following last routine for segment Preset this address in Box 2 Box-2 ~egment label block from tape image to initial address of Segment Image on drum preceding first statement of segment Advance number of lines in segment + Preface (Temp 1 ) by 1708 to form total number of words in Segment Image to be written on tape (i.e. segment label block + segment + Preface ...... Is number of words in Segment Image yet to be written on tape (Temp 1) > number of words in buffer? (Buffer = Tape Image + File Image YES Advance address in Segment Image by number of words transferred 0"- co CJl o Conn. (71) Check count Of blocks·on object program tape ~ Codeword to tape handler to write full buffer load on object program tape. (servo 3 or 6) (TIl) Tape handler Transfer full bUffer~ load of words from Segment Image to buffer Decrease number of words in ~eg ment image yet to be written (Temp 1) by number of words in buffer Decrease count of full blocks of segment + Preface to be written (Temp 2) by number of blocks in buffer Fill remainder of partial block in buffer with Z's in XS3. Transfer all words yet to be written on tape from Segment Image to Buffer. Is number of lines in partial block of segment Preface = zero? Advance count of blocks yet to be written (Temp 2) by one to count partial block. NO Advance count of blocks to be written (Temp 2) by one to count segment label block ~__~yet YES Return to process next segment Codeword to Tape Handler to write remainder (or all) of segment from buffer to object program tape. (Servo 3 or 6) (TH) Tape Handler Codeword to tape handler to write Termination from File Image to object program tape. (Servo 3 or 6) NO Codeword to Tape Handler to read Termination, if any for segment, from servo 5 to File Image Is there a Termination for segment? To Conn. (71) Check count of - - blocks on object program tape (TH) Tape Handler Codeword to Tape Handler to rewind library tape (Servo 2) Codeword to Tape Handler to rewind servo 2 Transfer 3608 words (2 blocks) of Z's in XS3 to buffer Codeword to Tape Handler to write 2 blocks of Z's from buffer to object program tape. (Servo 3 or 6) Codeword to tape handler to rewind object program tape (Servo 3 or 6) Form [pumber of blocks servo I is advanced beyond start of fixed librarjl - [number of blocks in fixed libY~Y~J to obtain number of blocks to move to position servo I at beginning of Listin ~Phase setu block Is number of blocks to move servo I = zero? Servo 1 positioned at start of Listing Phase setup block YES Exit from Processor . ~ 25 Is number of blocks to move servo I negative? Codeword to Tape Handler to move Servo YES I forward the calculated number of blocks to position it at beginning of Listing Phase setup block NO Codeword to Tape Handler to move servo I backward the calculated number of blocks to position it at beginning of Listing Phase setup block Number of lines in Preface from seventh word in entry label block to "un of Temp 7 Obtain number of words in Op. File III from fourth word in entry label block and preset in Box 9 and Box 10 Segment number from third word in entry label block to TemplC8 Number of lines of statements and routines + 2 from fifth word in entry label block to Temp 128 Calculate number of blocks in Op. File III for this segment,ineluding partial block (if any). Object program running address for nIP" jump to next segment from sixth word in entry label block to Temp 118_ Codeword to Tape Handler to read 2 label blocks and first block of generated routines from generated routines tape (servo 4 or 7) to Tape Image \------l!JII Codeword to Tape Handler to read all of Op. File III for this segment from servo 5 to File Image Type: ALARM 9 COMPILATION INCONSISTENCY (etc.) NO Is first word in second block in tape image =Ll SUBRO ? [Generated routines entry label block?] YES Transfer first block of generated routines (includes prelude) from third block in tape image to first block in tape image Prelude block of next routine is in first block of tape ima e Is op. code of first word in tape image equal to zero? Number of lines of Prelude routine from "v" of first word in Prelude block to "v" of Tern 6 ~....I..-~and Routine callword from "u" of first word in Prelude Block to "u" of Temp 4 and "A" Preset on tape To Conn. (75) Routinesentence num~----------~-~ ber to Sentence Number Li st ~ No im lies end of articular kind of routines being processed i.e. end of fixed library, standard library, or generated routines) Number of lines of Prelude and routine from Temp 6 to "A" register _T~onn.~8U _ Calculate block Number of blocks of Prelude and routine -1 from "A" register to Temp 3 in codeword position Flagged cross-reference indicating routine referenced is in another segmen~ hence not to be processed YES at this time Box-9 Is routine callword in Op. File III for this segment? (search File Image) Codeword to Tape Handler to read one block from current tape (i.e. generated routine, standard library, or fixed library tape) to Tape Image Number of blocks of Prel ude and routine minus one from Temp 2 to "A" in codeword position Codeword to Tape Handler to move current tape (i.e. generated routine, standard library, or fixed library tape) forward past routine not in this segment Transfer object program running address of routine to be modified from word following routine callword in OPe File III to Temp 3 and Input I for Address Modification Routine Number of fixed temporaries for routine from third word of Prelude to Input 4 for Address Modification Routine current Number of relative constants for routine from third word of Prelude to Input 2 for Address Modification Routine Number of working temp~ies for routine from third word of Prelude to Input 5 for Address Modification Routine Number of fixed constants for routine from third word of prelude to Input 3 for Address Modification Routine Last address in running routine (including constants and temps)+ one to "u" of "A" register Subtract number of working temps from "A" to form object program running address of first working temp.; send address to "A" and Input 5 of Address Modification Routine Subtract number of fixed temps from "Att to form object program running address of first fixed temp.; send adand Input 4 of Address Routine Subtract number of fi~ed constants from "Att to form obj ect program runnin~J address of first fixed constant. Send address to "A" and Input 3 of Address Modification Routine Subtract number of relative constants from "A" to form object program running address of first relative constant. Send address to "A" and Input 2 of Address Modification Routine & Address in on drum for of modified "v" of Temp segment image Number of lines subject Setup address of sever first word to address modification line in tape image as f? to Temp I (counter) ~ address of first line routine to 3 to be modified t Setup address of first line in tape image as address of first modified line Preset current drum image "'- address in box 5 to address ~ for first word of modified routine from "v" of Temp 3 ~ Set limit for current tape image load to one block Switch Entrance line of library routine from seventh line of tape image to "Q" register as input to Address Modification Routine ~O~onn (52)_ Modify line in nO"" register Restore modified entrance line to seventh line of .tape image Advance address for next modified line (Box 4) by number of inputs + number of outputs + number of lines in heading (3) of Library Routine Preset on tape Advance address of next line to be modified (Box 3) by number of inputs + number of outputs + number of lines in Library Routine heading (3) to skip over these without modifying Box-3 Line to be modified from tape image to "Q" register as input to Address Modification Routine I------i~~ Is line to be modified a "10" line? (i.e. op. code = lOa?) To Conn. LibraryRoU'tine name Sentence Number List td Transfer Library Routine heading to beginning of tape image Box-4 Store modified line in tape image Advance tape image ad- ~ dress for next modified ~ line (Box 4) by one mplles last line modified is on drum Implies increment last line modified by "u" and "v" of "10" line Form segment image address (drum) of ~--~~last line modified YES Add contents of "un and "v" of "10" line to "u" and "v" of last line modified Advance tape image address for next modified line (Box 3) by one ~ Form tape image (H.S.S.) of last line modified ~N_O__________~~address Box-5 Transfer modified lines from tape image to segment image on drum Preset address for ~_ next modified line ~(Box 4) to address of first line in tape image I -9 Advance segment fO Conn. (72) Re;admore block~; of image address by routine to tape image number of lines -{ transferred (Box 5) I _ Preset address for next line to be modified (Box 3) to address of first line in tape image ave all lines subj ec t to addre ss modification been processed? NO YES Number of modified lines in tape image not yet transferred to drum to Temp 4 Is the number of fixed (unmodifiable) constants for the routine (Temp 0) e ual to zero? Is the number of modified lines not yet transferred to segment image equal to zero? Advance segment image address (Box 5) by the total number of words just transferred NO Obtain segment image address from Box 5 and preset in Box 6 Pack fixed constants in tape image with modified lines in tape image Transfer fixed constants and/or modified lines from tape image to segment image on drum Box-6 Is the number of Library Routines processed in this segment equal to the total number for the problem? Decrease number of fixed constants to be transferred to segment image (Temp 0) by number just transferred NO To Conn. (72) Read more-blocks of constants to tape image NO Is number of fixed constants not yet transferred to segment image greater than full tape image load? Transfer full tape image load of fixed constants to segment image on drum Box-7 Decrease number of fixed constants to be transferred (Temp 0) by number of words in full tape image load YES Obtain segment image address from Box 5 and preset in Box 7 Advance segment address (Box 5) number of words full tape image image by in load Box-8 Obtain segment image address from Box 5 and preset in Box 8 Advance segment image address (box 5) by number of words in tape image to be transferred to segment image Transfer remaining modified lines or fixed constants from tape image to segment image on drum . ----" I (MR) Address Modification Control Subroutine Input = Word to be modified in "Q" Register Word to be modified from "Q" register to output line Is op. code of wor to be modified equal to 17,22,45,56,61,63, 75,76,or 77 octal? Is op. code of word to be modified equal 05,14, or 57 octal? "u" of word to be modified to "u" of "Q" register Yes imp-lies only "v" address to be modified Yes implies neither address to be modified @: Modified "~:Jd dress to "u" of output line "v" of word to be modified to "u" of "Q" register Yes implies only "u" address to be modified Modified "v" address to "v" of output line ~ & -V (MS) Modify Address Subroutine Input = Address to be modified in "u" of "Q" register Output = Modified (absolute) address in "u" of "A" register Yes implies no modification Is address to be modified an address relative to 1000 ? i. e. 1000S ~ address ~ 7777a? Is 11000S ~ address to be modified ~ 17777S? YES NO Yes implies no modification Is 21000 ~ address to Sbe modified ~ 21777S? Yes implies t----------'iil'l. NO Is address to be modified 22 ___ .23 ___ ,24 ___ , 25 ___ .26 ___ • or 27--_ . callword? YES Is address to be modified 20 __ _ callword? Is address to be modified 60 - -callword? NO Is 30000S ~ address to be modified ~ 37777 ? S y ....... Is address to Ibe modified 61- - -callword? Is address to be mOdifiec 64---, 65 ___ , or 66---, callword? Is address to be modified 63- - -callword? Is address to be modified 62 - - -callword? NO address to be modified 70--- callword? YES Must 77 __ _be callword Is address to be modified 71---ca 11 word? NO Is address to be modified 76--- callword? NO Is address Is 720008 < address to De modified ....----301 to be modified 75_-- callword? ~ 74777? Yes implies no modification o Is address to be modified 7 ___ ca llword? ~ ~ Modify relative constant callword Modify relative address Subtract 10008 from address relative to 10008 to get location within routine Add base object program running address of routine in this segment (Input 1) to form absolute address in "u" of "A" register Subtract 100008 from 10 ___callword 61~..L.-.~ to get location within relative constant re ion Add base object program running address of relative constant region for routine in this segment (Input 2) to form absolute address in "u" of "A" Modify fixed temporary callword Modify fixed constant callword 62 t - - - - i M Subtract 200008 from 20___ callworo to get location wi thin fixed constant region Add base object program running address of fixed constant region for routine in this segment (Input 3) to form absolute address in "u" of nA" Subtract 600008 from 60--- callword to get 63~~~location within fixed temporary region Add base object program running address of fixed temporary ~_-I region for routine in thi s segment (Input 4) to form absolute address in "u" of "A" Add base obj ect program run,y . ning address of function \\!Xlt input region (constant) to . form absolute address in "u" of "A" Modify callword for .dummy v.ariable or function in subprogram Mask two least significant octal digits 64 I-""--~ from 61---. 63-__ or 76--_callword to get location within pseud operation input region Add base object program running address of pseudo operation input region (constant) to form absolute address in "u" of "A" :Modify function or non-subscripted variable callword Mask two least SignificanJ octal digits from 62 __ _ callword to get location within function input region Modify constant callword Mask three least significant octal digits from 64 ___ • 66t--,+--~65--,-. or 66 ___ callword to get location within nonsubscripted variable region Add base object program running address of non-subscripted variable region (fixed location 00007) to form absolute address in "u" of "A" Subtract 670008 from 67---callword to get 67 ~'--~ location wi thin object program constant _pool Add base object program running address of constant ~---I pool (fixed locat:ion 00010) to form absolute address in "u" of "A" Modify working temporary callword Subtract 70000 from 70 ___ callword 8 t9 68..--~~ get location within working temporary re ion, - - - - - - - - - ' Add base object program running address of working temporary region for routine in this segment (Input 5) to form absolute address in "u" of "A" Modify callword for routine or subscriptoo variable Modify callword used to reference fixed locations 010008 thru 017778 Subtract 70000 from 71 __ _ 8 69~~~callword to form an abso- ~~~ lute address within the range 010008 thru 017778 in "u" of "A" Box-lO Is callword in 1\..----L.~Op. Fi Ie III for this segment? Flagged cross-reference indicating routine associated with referenced callword is in another segment NO TYPE: ALARM 11 I-----~ COMPlLAT~f)N INCONSISTENCY (etc) YES Transfer interpret instruction to reference another segment, from word YES Is word following callfollowing callword in Ope File III, ~~~ word in Ope File III an to output line, i.e. replace line interpret (14 xxxxx xxxxx) to be modified by interpret instrucinstruction? tion NO Transfer absolute object program running address in this segment, for routine or data associated with referenced callword. fr.om word following callword in Ope File III to "u" of "A" EJ (LC) Subroutine to count blocks of Library (Fixed or Standard) Processed Switch " ...... ", Obtain number of blocks of current library tape to be read or moved forward, from codeword in input to Tape Handler ~ Add number of blocks to stored "move backward" codeword for current library tape. Codeword used to reposition tape at beginning of library Count by-passed when processing generated routines ~------~~------------------.--~ --~--- -l (PC) Subroutine to Count Blocks on Object Program Tape o ...... 'preset on tape Type: WARNING, OBJECT PROGRAM ON SERVOWILL EXCEED 2500 BLOCKS. ATTEMPT Obtain number of blocks BEING MADE TO CONto be written on object TINUE COMPILATION. program tape from codeword in input to Tape Handler C ~; 71 ~'!.Y "", YES 12 Advance count of blollis on object program tape by number of blocks to be written NO Routine b - assed after warning Set switch (]to @ +---..--v ~-----~ (IR) Input Routine NO tape Codeword to tape handler to read remaining blocks of routine from current tape to tape image To Conn. (70) Read and count blocks from - YES Decrease number of blocks of routine remaining to be read (Temp 2) by number of blocks in tape image Codeword to Tape Handler to read full image load of routine from current tape to tape image (NR) Subroutine to Build Sentence Number List ----I Set current tape image limit to number of lines in full image load I Mask three least significant octal digits from library routine callword in Temp 26 NO Add initial address of Library List to get address in list for XS3 name of Library Routine associated with callword Is XS3 name Library Routine already in Library List in core? I---~ I-----...::~ Transfer XS3 name of Library Routine from sixth 'line of tape image to :Library List in core YES Set switch to by-pass this routine Transfer Library List from core to sentence number List on drum NO Must be callword for pseudo op., i. e. 4---CW Callword for routine -----pES @ ~ Mask two least significant octal digits from pseudo OPe callword Add base address of psuedo OPe region in Sentence Num- ~ ~ ber Li st to get address in list for sentence number associated with callword Obtajn base address of region in Sentence Number List for sentence numbers associated with 22 ___ ,26 __ _ or 27 ___ callwords Transfer XS3 sentence number for pseudo OPe from sixth line of tape image to Sentence Number List on drum Obtain base address of region in ~ Sentence Number List for sentence numbers associated with 24___ 80 callwords Obtain base address of region in Sentence Number List for sentence numbers associated with 25 ___ callwords Add three least significant octal digits of callword to get address in Sentence Number List for sente~ number associated with callword - - Transfer XS3 sentence number associated with callword from sixth line of tape image to Sentence Number List on drum - - - - - - - - - - - - - - - - - ------ - - - - - - - - - - - - - ---- ---- ----(BC) Subroutine to calculate block count from line count Input = Number of lines in "v" of "A" Output = Number of blocks in "v" of "A" Is 551 octal greater than the number of YES NO Divide number of lines by 170 octal to obtain number of full blocks Is there a remainder? NO YES Zetoize Advance block count by one to count partial block block count Advance block count by one Decrease line count by 1708 All blocks counted? NO Transfer number of I--~~blocks to ttv" of "A" YES PROCESSOR REGIONS RE TN20 RE TH21 RE UP421 Servo Indicator Tape handler Uniprint RE BR537 RE CK653 RE CL701 RE CM715 HE CN740 RE CP753 RE CQ1004 RE CR1033 RE CS1065 RE CTll17 RE CUl134 RE CVl174 RE CW1226 RE CX1251 RE CY1310 RE CZ1350 RE DA1401 RE ££1424 RE PC1433 RE IR1444 RE NR1460 RE BC1521 RE FC1536 RE RC1570 RE TC1627 RE TL1660 RE T01667 RE LV1712 RE MR1724 RE MS1751 RE MT2001 RE MU2040 RE MC2056 RE MD2105 RE MI2131 RE TS2140 1705 RE LL2240 T13240 FA4200 List of library routine names Tape image File image RE DD40l0l Modified dimension list Sentence number list Segment image on drum * RE * RE RE ND42 102 RE nI46202 RE RE RE IL740 FL3600 BL4540 RE RE IB4 BB24 Number of lines in tape image Number of lines in file image Number of lines in buffer, i.e., BL = IL + FL Number of blocks in tape image Number of blocks in buffer, i.e., tape image + file image Limit number of blocks on object program tape Limit address for full image load, i . e ., II = TI + IL RE PB4705 RE 114200 RE RE RE F16l0 PI624 ZA77000 Entrance to Unicode service routines END * NOTE: The tape image and file image form the buffer for writing the segment on tape; hence, they must be adjacent in memory with the tape image appearing first. 1706 Processor IA CK o MJ 1 TP 5 QT FC5 ST FC3 2 3 0 Q A TS22 CK5 no CM22 £oK"" v I no CN12 10 QJ CK6 yes TV RC27 yes \!o.J vI\.l.V TV RC3l LA LV6 11 AT TC26 TC26 12 LQ LV7 6 13 LQ LVII 6 14 TP TS22 TS14 15 TP FC30 1513 16 17 TP 12 QT FC5 Q 1525 20 RS TS25 21 22 SP TN ZJ CK23 CL 23 RA T06 FC3l 24 RP 20012 RA TC17 CL 4 5 / o 7 25 AT £OTT,A RC17 Begin Processor Exi t ~ Unicode Service Routine Library Indicator Word ~ Q 11= Library routines in problem~Av 11= Library routines in problem~''V'' of temp. Fixed library re~ired? Set switch®-?~ Standard library required? Set swi tch @-+ @ # blks in buffer~ tape codeword position Form codeword to write full buffer load on object program tape # blks in tape image ~ codeword position Limit 11= blks object program tape ~codeword position 11= Library routines - I ~ library list index Preset count blks. binary tape ~Max. 11= blks. initialization Segment image address ~ Qv Segment image address ~ "v" of temp Drum add. for seg. - Run. add. seg. = Drum add. corres. to loc. zero Servo layout indicator (A) = zero =::=> 5 servo s ; (A) -:f zero =::=> 7 servos Set Object program servo 11= = 6 ~ printout ZAIO 6 o Setup tape codewords for 7 servo layout TN CA CK26 1707 IA CL @ ® 0 1 TP TC14 RJ TH2 TH3 TH 2 3 TP FA EJ TLl A CL6 yes 4 EJ TL DA 5 6 7 10 MJ 0 RP 17777 TP FC RP 17777 BR12 CLIO DI CL12 11 TP FC DI7777 12 13 RP 17777 TP Fe CA CL14 CM DIl7776 Read 1 blk.Op. File III (servo 5) ~ File image 1st word Ope File III image ~ A 1st word = File l:::. 3? Yes~entry label blk. for new segment 1st word = zzzzzz? Yes~End tape blk; End processing Alarm 10 Zeroize 277758 word segment image on drum to allow for possible 3 core hank running segment. 1708 IA CM ® Fixed Library 0 1 2 3 4 TV RCI TV RC32 TV RC32 TV RC20 TP TS22 CS31 CV31 CW2 LCI TS15 5 TP TC22 1516 6 TP TC20 T517 7 10 SP LV7 AT TC22 0 TS20 11 TP TC17 TS21 12 RJ CR CQ 13 14 15 16 17 20 21 TP TC23 RJ TH2 TV RC24 TV RC33 TV RC33 TV RC21 TV RC25 MJ 0 CA CM23 r2 TH3 TH CS31 CV31 CW2 LeI CR6 [CN2] Set swi tch ~~~ Set switch E ~ E Set switch J ~~ Set swi tch (£)~® # Library routines in problem - 1 ~ Segment Index Set current tape codeword to read [nJ blks. Gen. tape Set current tape codeword to read 1 blk. Gen. tape Set current tape codeword to read full image load Gen. tape Set current tape codeword to read move forward [n] blks. Gen. tape Read Ope File III ~ image and process generated routines } Rewind generated routine tape Set swi tch Set swi tch $ =~ E2 ~ Set switch ~~@ Set switch ~~ Set switch C ~@ Switch ® 1709 IA CN TH3 TH TC2 1 2 TP TC2 RJ TH2 TP TC3 3 TP RC22 LC4 4 TP TC5 TS16 5 TP TC4 1'517 6 7 SP LV7 AT TC5 0 TS20 10 TP TCI TS2l 11 RJ CR CR27 MJ 0 CA CN13 [CP2] 0 SWitCh} @ 12 Move servo 1 backward to beginning of fixed library Reset move backward codeword ~ zero blks. Set to count blks fixed library processed Set current tape codeword to read en] blks fixed library Set current tape codeword to read 1 blk fixed library } Set current tape codeword to read full image load fixed library Set current tape codeword to move FW en] blks Process fixed library routines 1710 IA CP ® 0 1 TP RJ TS23 TH2 TH3 TH 2 TP TC7 TS23 3 TP RC23 LC4 4 TP TC12 TS16 Move backword library tape (servo 2) to library routines entry label. Reset move backward codeword ~ zero blks Setup to count blks of library tape processed Set current codeword to read [N] hlk~ ~ 5 TP TClO TS17 6 7 SP AT LV7 TC12 0 TS20 10 TP TC6 TS2l 11 12 13 TP RJ TP Tell LC TI TH3 LCl A 14 EJ TL4 CP16 15 16 ® 17 20 Swi tChJ2l ® 22 23 24 MJ 0 RP 30170 TP TI170 RJ CR MJ 0 TP 5 QJ CP24 yes TV RC26 - .- - lih~~~v - - - - - - J tHnp - - r - Set current codeword to read blk. library tape 1 Set current codeword to read full image load library tape Set current codeword to move [N] blks. library tape Read 2 b1ks library tape 1st word library routines entry label ~A Label =~~L I B~~ (i.e. library tape positioned properly) Alann 7 Transfer 1st block library routines from 2nd blk~ 1st block tape image Process STANDARD LffiRARY ROUTINES BR7 CP20 TI CRI [CP22] Q CP25 no CM22 } 25 26 QJ CP26 yes CP27 no TV RC30 CN12 27 TV CP30 CP21 30 MJ 0 CA CP31 CX Fixed library required? Set switch ®~® after 1st segment Standard library required? Set switch@~® after 1st segment By-Pass preceding setups after 1st segment 1711 IA CQ @ @ 0 1 SP FA3 SA FCI 2 TU A MU2 3 TU A CR14 4 5 6 TP FA6 TP FA2 TP FA4 1'57 TSIO TS12 7 TP FAS TStl 10 11 12 SP FA3 LT 0 DV FC2 25 A Q 13 14 ZJ CQ14 yes CQ15 no RA Q FC3 15 SP Q 25 16 AT TC15 TH3 17 RJ TH2 TH 20 TP 'IC2l TH3 21 RJ TH2 TH 22 23 TP TI170 EJ TL2 A CQ25 yes 24 25 26 MJ 0 RP 30170 TP TI360 BRII CRI TI 0 0 } CA CQ27 1712 # words Ope File III~ Au Add j=2 to # words Ope File III to fom jn j n to search Ope File III ~ "RP" in Add. mod. rtn. jn to search Ope File III ~ "RP" in processor # lines in preface ~"u" of Temp. Segment No.~Temp. # lines statements and routines + 2 --.+Temp. Address for tIP" jump to n$,xt segment ~Temp. # words Ope File ITT ~ "v" of Al # words Ope File ITT ~ Ar # words Ope File 3/1708 = # full blks. Ope File III Is there partial blk? Adv. # blks. by 1 to count partial block # blks. Ope File III ~ A in tape codeword position Codeword to read [N] blks servo 5 ~ tape handler Read Ope File III from servo 5 ~Op. File III image Codeword to read 3 blks Gen. rtn. tape (4 or 7) ~ tape handler Read 2 label blks and 1st blk. gen. rtns ~ tape image 1st word of 2nd label blk ~ A Label =~SUBRO? (i.e. gen. rtn. tape positioned correctly?) Alarm 9 Trans. 1st blk. gen. rtns. (incl. prelude,) from 3rd blk. --+ 1st blk. tape image IA CR [30000J 2 3 MJ 0 TF TI QT MC13 ZJ CR no 4 5 6 QT FC5 QT Me RJ NR TS6 TS26 [NR17] 7 10 11 TP 'lS6 RJ Be SS FC3 A OCl 25 12 TP A TS2 13 14 SP TS26 RP [30000] 0 CR24 15 16 17 20 EJ SN SA SA FA Q CR14 CR15 CR16 17 0 0 21 TD A CR22 22 23 TP [30000] TJ MC23 A CS 24 SP TS2 0 25 AT 'IS 21 TH3 26 RJ LCI 27 TP TS17 TH3 30 RJ LCl 31 MJ 0 CA CR32 0 @ §.wi tch ~ ® @ 1 r 1st word tape image ~ Q Ope code ~ A Ope code = O? No =>end of fixed library, gen. rtns, or lib. rtns. # lines prelude and routine ~Temp. Routine callword ~ Au and Temp. 4 Sentence number for routine ~ sentence number List # lines pre lude and routine ~ Av # blks. prelude and routine ~ Av # blks. prelude and routine-l~ Au in codeword position # blks. prelude and routine-l ~ Temp. 3 in codeword pOSition Routine callword --+ Au No => move past routine ~ 1st blk. next routine Callword in Ope File III? -jn + r ~Au +r ~Au Address of word following callword in ·Op.File III ~ Au Address of word following call word in Ope File III ~ NI Word following call word ~ A Word following ca1lword flIP" inst? (i.e. 14-00000-00000 > (A)?) # blks prel. and rtn-I ~Au in codeword pOSition Codeword ~ move forward [NJblks. routine (gen. or lib.) tape Move past routine and count blks moved Codeword to read 1 blk routine (prelude blk.) --+ G.T.H. Read 1st block of next routine ~ tape image Q A CR4 yes J LC LC no CRI 1713 General Setup for Routine Modification IA @ CS 0 TP A Q 1 QT FC5 TS3 2 LT 10017 MIl 3 QA K; MI6 4 5 6 7 TP QT LQ QT TI2 FC4 Q MC2 Q TS 6 MI2 10 11 12 13 LQ Q QT MC2 LQ Q QT N£2 11 MI3 11 MI4 14 IS LQ Q QT MC2 11 MIS 16 SP MI6 0 Word following callword in Ope File III~Q H.S.S. running add. rtn. to be modified ~ temp 3 U.S.S. running add. rtn. to be modified~input mod. rtn. H.S.S. running add. + # lines in rtn. ~ "u" of temp. 3rd word or prelude~ Q # fixed constants ~ temp. 0 in flv" # relative constants ~ Qu # relative constants ~ mod. rtn. input # fixed constants ~ Qu # fixed constants ~ mod. rtn. input # fixed temporaries ~Qu # fixed temporaries ~mod. rtn. input # working temporaries ~ Qu # working temporaries ~ mod. rtn. input Last address in running rtn. + 1 ~Au @ @ ® 17 ST MIS MIS 20 ST MI4 MI4 21 ST MI3 MI3 22 ST MI2 MI2 23 RA 24 TP TIl TSI 25 TP RC34 CU 26 TP RC3 CU4 27 TV TS3 CU26 TP LV MJ 0 CA CS32 LV2 [30000J 30 Setup J31 Switch @ TS3 Initial running add. working temps ~ input mod. rtn. Initial running add. fixed temps ~ input mod. rtn. Initial running add. fixed constants ~ input mod. rtn. Initial running add. relative constants ~ input mod. rtn. Form drum image address of modified routine ~ "v" of temp 3 No. lines subject to add. mod. ~ temp 1 (counter 1) Preset add. 1st line to be modified ~ 7th line tape image Preset add. for 1st modified line ~ 1st line tape image Preset drum image add. for rtn. to be modified Set current image limit --+ 1 blk. RC17 1714 Special Setup For Library Routine Modification @ IA CT TP TI6 v. 1 2 RJ MR MI MRl T16 3 4 RA T14 AT FCII Switch ~ T13 T14 v n..L rnA VU"':I: rnA 6 RS TSl T14 c:. ® TP AT LA T14 AT RCI 17 CT13 11 RA CO T14 J12 RJ NR [NRl] 13 [0 30000 TP T16 Llnu • VU"':I: 7 10 14 Entrance line of library rtno ~ Add. mod. rtn input Modify entrance line Modified entrance line ~ routine heading # inputs + # outputs # lines in lib. rtn hdg. (3) + # inputs + # outputs ~ Av r\ 0 30000] Tl ~yv 1 CA CT15 1715 ~rlrl u""'...... ~n~ ..LV~ n~v+ ...... " .... ~" mnrl~~~~rl au.u ................ ,&,"'....... l~n~ .....A..& ... ....,. hu AI,J # inputs + # outputs + 3 Decrease # lines subj. to add.mod. to exclude hdg.and inputs and outputs # inputs + # outputs + 3 ~ Au Setup jn of repeat to move hdg. ~ Beginning tape image Adv. add of next line to be modified to skip hdg. + inputs + outputs Library routine name ---;. sent. no. List Move routine heading to beginning of tape image Process Lines Of Routine To Be Modified 0 1 IA CU TP [30000J QT MC13 Q A Line to be modified ~Q Ope code of line to be modified 2 EJ FC12 CU7 3 4 5 RJ RA CU4 MRl [30000] FC3 Ope code = 10? => increment last modified line by (u and v) Modify line Modified line ~ tape image 1 in "v" adv. ~ add. for next modified line 6 7 MJ 0 5P CU4 CU20 0 10 EJ RC3 CU13 11 55 FC3 17 12 13 MJ 0 5P CU26 eU15 0 14 55 FC3 17 15 16 A R5 Q CU17 FC12 17 RA [30000J Q @ 20 RA CO FC13 @ 21 TJ CU33 no 22 23 R5 CU4 SA FC14 24 25 26 TO 27 RA CU26 CU4 30 RJ ffil 31 TP RC2 CD 32 TP RC3 CU4 33 IJ TSI CU 34 SP CU4 0 © ~A @ rp MR MI Address for next modified line ~Av Add. next mod. line = 1st line tape image? Yes=>last mod. line on drum H.5.5. address last line modified ~ Au Address of line following last modified line on drum ~ Av Drum address of last line modified ~Au @ TU LV2 A RP [30000] TP TI ffi "u" and "v" of "10" line ~ Q with zero Ope code Add contents of "un and ttv" of "10" line ~ last modified line 1 in Mutt adv. ~ address of next line to be modified Was this last line in current image load? Determine # modified lines ~Av Form jn of repeat to transfer modified lines ~ drum image Preset jn of repeat RC3 17 CD25 CU27 [30000] } 1716 Transfer modified lines --+ drum image Adv. add. in drum image by # lines transferred Read more lines of gen. routine ~ tape image Preset address next line to be modified~ 1st line tape image Preset address for next modified line -+- 1st line tape image Have all lines subject to address modification been processed? Address for next modified line in tape image ~ Av 35 ST RC3 TS4 # modified lines not yet trans- f erred to drum -;> temp 36 SP TS 0 37 ZJ cv no CA C040 CW yes Number of fixed (unmodifiable) constants ~Av Number fixed constants = zero? 1717 IA GV o 1 SP LV2 SS GU 0 25 2 LT A 3 TJ TS GV5 yes 4 SP TS 0 5 TP A TS5 6 SP TS4 0 7 ZJ GVIO no GV20 yes 0 Limit for current image load-?A Form # lines in image not processed - 7 ttv" of Al Form # lines in image not processed ~Av GV17 10 TO 11 TV CU4 CV17 12 13 SP TS5 AT RG4 17 CV16 14 RA 1'54 TSS 15 TO 16 17 @) GD RC2 [RP [30000] TP [30000] 20 TP 'lS5 21 TO 22 23 SP TS4 AT RCS 24 TV CU GD26 Pack fixed constants with modified lines in tape image Set # lines to be trans. to drum = # fixed const. in tape image Preset add. of 1st line to be trans. to drum ~ add. 1st fixed const. TS4 CV26 17 CV25 } Preset jn to transfer fixed const. and/or modified lines to drum Preset next available address in drum image CV26 27 RA GU26 TS4 30 RS TS TS5 ZJ CW3 no Preset jn to pack fixed constants with modified lines # modified lines + # fixed const. = # lines to be trans. to drum - 7 temp. Preset Add of 1st line to be trans. to drum~lst line tape image CV22] } [30oo0J . [RP [30000] TP [30000] J } . CV26 25 26 ~i tch 31 fixed constants > # lines in image not processed? # fixed constants (all const. for rtn) ~Au # fixed constants in image to be transferred to drum ~ temp. 5 # modified lines yet to be transferred to drum ~Au # modified lines yet to be transferred to drum = Zero? Preset address for 1st fixed constant Preset transfer add. for fixed const. ~ Add. for next mod. line # CV27] .} [30oo0J [30000] yes CA GV32 1718 Transfer fixed constants and/or modified lines ~ drum image Advance drum image address by # lines transferred Decrease # fixed const. to be trans. by # just transferred All fixed constants for routine transferred ~ drum image 1A CW iitCh] TS4 # modiiied lines yet to be transferred ~ TS 1'5 0 TP 1 2 SP TS4 ZJ CW7 no 17 [30000J yes 3 RJ ml m 4 SP LV3 0 c::. • > full image load? # fixed constants yet to be trans. yes ~Au ® ® 7 10 11 [30000] TI CU26 CU26 CR27J [30000J CW20 LV3 IS LV3 Preset jn of repeat Preset available drum image address Adv. drum image address by # lines to be transferred Transfer remaining modified lines or fixed constants ~ drum image Preset avail. drum image address Adv. drum image add. by # lines full image load Reduce # fixed constants by # lines full image load } 12 13 14 15 [RP TP TV RA 16 RS 17 20 RP 1L30000 TP T1 CW3 [30000] 21 1J TS15 CR27 no 22 MJ 0 CA CW23 CX } Transfer full image load fixed constants ~ drum image All library rtns for problem processed this segment? ~ End segment 1719 IA CX @ @ @ @ 0 RA TSII RCl7 1 TV A CX3 2 TP FAI A 3 AT 4 TP TL5 TI 5 TP TL6 TIl 6 7 SP TSlO LT 0 25 TI2 10 SP 1'57 71 11 TP A TI7 12 DV 13 14 ZJ 15 16 SP TI7 AT TS12 17 DV 20 LQ TI4 25 21 TP A TIS FC3 FC2 Initial add. drum image + add. of "IP"jump to next seg. ~ temp. 7 Preset drum image address for "IP" instruction "IP" Jump to next segment from 2nd word Ope File III ~ "A" Add one to "v" address and transfer "IP" to drum image 5EGMEN ~ 1st word in segment label block T~~~~~~2nd word in segment label block Octal segment no. ~ "v" of "A" left Octal seg. no. ~ "v" of 3rd word in seg. label block # lines in Preface ~ "v" of "A" right # lines in Preface ~ tlv" of 8th line seg. lab. blk. # lines in Pref. (term.)/1708 = full blks term. --+ 4th line seg. lab. blk. Is there partial block? Adv. # blks. Termination by one to count partial blk. # 1ines in preface ~ Av # lines in Preface + # lines stmts and routines + 2 ~temp 2 # full blocks segment+Preface ~ 2nd thru 5th o~tal digit positions of 5th line seg. lab. blk. [30000J TI3 CX14 yes CX15 no FC3 RA TI3 FC2 0 TSI TI4 } lines partial blk. seg. + Pref. "v" of 6th line seg. lab. blk. Seg. image address ~ A Seg. image add. + # lines seg. + Pref. = add. line after Preface (A) - # lines Pref. = Pref. Exit add. ~ Au Add. line following Pref. --:;. Av (A) - 2 = Pref. Ent. add. ~Av "RJ" inst. to execute Preface ~ 7th line seg. lab. hlk. # lines partial blk. seg. + Preface # --+ ~ @ 22 23 AT TP TS25 TSI A 155 24 S5 TI7 17 25 26 27 SA TS5 55 FC20 AT FC17 0 0 TI6 30 5P TI5 17 31 ZJ CX32 no ~Au CX34 yes lines partial hlk. seg. + Preface =zero? # 1720 @ 32 SA 33 ST TI5 TI5 34 TP TI4 TS2 35 36 RP TP 10160 TL CY rp~c::. ....... 0..1 Address of line following preface ~ Av # lines partial blk. seg. + pref. in "u" and H.S.S. part. blk. in "v" ~6th line seg. lab. # full blks. seg. + pref. ~ temp. in codeword position £\ v z ts --;a. lines 9-120 of segment label TrIO blk. CA CX37 1721 IA CY 0 SP 1 AT TC15 2 AT 3 RJ TH2 TH 4 5 TP FA EJ TL3 A CY7 6 7 MJ 0 RA TS7 BR12 FC15 10 11 TU A RA TS12 CY13 RC35 @ 12 13 14 15 16 17 TV RP TP RP TP RA A [300001 FA170 30170 TI TSl CY14 CY15 } [30000] CY17 } 01 FC2 @ 20 21 TU SP RCII LV5 CY26 0 22 TJ 151 CZ17 yes 23 24 25 26 27 30 SP AT [RP TP TP QT 17 CY25 CY27] TI Q Q 31 ZJ CY32 no CZl yes 32 33 TP RClO ST Q A CY36 34 TV 35 RA CY37 TSl 36 37 RP [30000] TP TL CA CY40 CZ [30000] @ @ T13 FC7 1Sl RC7 30000 [300001 MC DIS RC3 # b1ks. in pref. (term.)~ A in codeword position Codeword to read Termination from tape ~ Temp~. Adv. by 1 to include Ope File III end entry blk. Read Preface and/or Ope File III end entry b1k.~ File image 1st word Fi Ie image ~ A 1st word = END~OF? (i.e. tape positioned properly) Alarm # 10 Add 30000 to # lines in Preface ~ Au Preset "un of repeat # lines stmts. and rtns + 2 + drum add. init. stmt. = drum add. Preface Preset drum add. for Preface 25 TS TH3 Preface ~ Drum image Segment label block ~ drum image Adv. # lines segment by 1708 to count label blk. # lines in buffer (tape image + fi Ie image) ---+ Av # lines segment remaining > full buffer load? Form jn of repeat ~ NI } Segment + seg. label blk.~ buffer "un mask~Q # lines partial blk. seg. + Pref. ~ Qu and Au # lines partial blk. seg. + Pref. = zero? } Form "RP" to fill rest of partial blk. wi th Z's Preset ttv" of "TP" to initial add. tape image Adv. by # lines segment + label ~ Add. for Z's in partial blk. CY37 Z IS 1722 ~ fill remainder partial block IA CZ o RA IS2 FC7 1 RA TS2 FC7 2 3 AT TC24 RJ PC TH3 PCl 4 RJ TH2 TH Adv. # full blks. seg. + Pref. by 1 to count partial block Adv. # full blks. seg. + Pref. by 1 to count seg. label block Codeword ~ tape handler Adv. and check count of blks. on Binary program tape Write remainder (or all) of segment on •• ~ TP TS TP Q QT FC2l TH3 TS 11 ZJ CZll no RJ PC CZ16 yes PCl 12 RJ TH2 TH 5 6 7 10 13 14 SP 'IS 15 16 17 MJ TO CL CZ2l 20 RP BL30000 CZ22 } 21 22 TP [30000] RA CY26 TI LVlO 23 TP TC26 TH3 24 RJ PC PCl 25 RJ TH2 TH 26 RS TSI LV5 27 RS TS2 LV6 MJ CY2l 30 0 ~~np - .... I"'~ Codeword ~ tape # blks. Termination ~ A and temp. in codeword position # blks. Termination = zero? Adv. and check count of blks. on Binary program tape Read Termination from servo 5 ~ File image # blks. Termination ~ A Codeword ~ Tape Handler Write Termination on Binary Program Tape ~ Process next segment Preset drum image add. of next buffer load Full buffer load of segment from drum image ---;. buffer o TH3 TH 0 n~on~~m ....... I"'-~~- Q AT TC25 RJ TH2 CY26 Rin~~v _ ...... -.1 Adv. drum image add. by # lines full buffer load Codeword to write full buffer load ~ Tape Handler Adv. and check count of blks. on Binary program tape Write full buffer load on Binary program tape Decrease # lines segment remaining by # lines full buffer Decrease # full blocks seg. + Pref. by # blocks in buffer CA CZ3l 1723 IA DA @ 0 1 2 3 TP RJ TP RJ 4 6 7 RP 10360 TP TL TP TC27 RJ TH2 DA6 } TI TH3 TH 10 11 TP TC30 RJ TH2 TH3 TH 12 13 RS TC2 SS TC TC3 0 14 ZJ DAIS no CK yes 15 16 17 SJ DA16 TN A TP Tel DA20 TC3 20 AT TC3 TH3 21 RJ TH2 TH 22 MJ 0 CA DA23 CK 5 ~ TC13 TH2 TC16 TH2 TH3 TH TH3 TH Rewind library tape (servo #2) Rewind corrected problem tape (servo #5) 2 b1ks. of Z's ~ buffer Write 2 blks. of Z's on Binary program tape Rewind Binary program tape (servo # 3 or 6) # blks. fixed library advanced # b1ks. adv. - total # blks. fixed library (A) = Zero? Yes ~ servo 1 positioned at listing phase setup b1k. + # blks. to move forward --+ A Replace move backward codeword by move fWd. CW Move forward or backward codeword ~ G.T.H. Position servo 1 at beginning listing phase setup block A 1724 Subroutine to Count Blocks of Library (Fixed or Standard) Processed IA LC ~tChJ ® () UT () v 111.., 1 MJ 0 2 3 TP 4 5 6 V TH3 QT FC2l [0 30000 RJ TH2 MJ 0 CA 30000 [30000J Tape handler codeword ~ Q # blks. current routine to be read or moved Add # blks. to move backward codeword for current tape ~ tape handler Q A 30000J TH LC I£7 1725 Subroutine to Count Blocks on Object (Binary) Program Tape ~itChJ 0 1 IA PC MJ 0 TP TH3 2 QT FCI6 3 AT 4 TJ LVII PC 5 TP TO RJ UP2 TP PClO MJ 0 CA PCII UP3 UP PCl PC [30000J Q Tape handler codeword ~ Q @ 6 7 10 ISI3 A # blks. to be written on Binary prog. tape ~ A Adv. count of blks. Binary prog. tape by # blks. to be written Limit # blks. > current # blks. Binary program tape Parameter~ Uniprint Print warning 1513 1726 Input Routine IA @ m 0 1 2 MJ 0 SP LV7 TJ 152 3 SP 152 II I\m [30000] 0 IR7yes .L;:)lO 0 TH3 LC LCl rnt"". ~ ":l t\.L 5 RJ 6 MJ 0 TP TS20 IR12 TH3 10 RJ LCI 11 RS TS2 TP LVI LV7 12 13 MJ 0 CA m14 m 7 LC blks. prelude and routine remaining to be read > # blks. tape image? # Codeword to read [n J blks. current routine tape~ tape handler Read remaining blks. current routine ~ image Codeword to read full image load current routine ~ tape image Read full image load current routine ~ tape image LV2 Set current image limit full image load 1727 ~ # lines Subroutine to Build Sentence Number List MJ 0 [30000] 1 2 TS26 22 FC4 RC12 Q 3 4 SP LT QT AT 5 SP A 17 6 7 TO NRlO 10 11 12 @ @ ~ @ IA NR o A TP TIS EJ [30000J TV Q TP A o Library routine callword Add. list Add. list Q NR no 14 TV RC36 CT12 15 16 RP TP 31000 LL NR } ND3l00 17 TJ FC24 NR30 yes 20 TJ FC25 NR32 yes 21 TJ FC26 NR34 yes 22 TJ FC27 NR30 yes 23 24 25 26 LT 17 QT FC22 AT RC16 [00 30000 Q 27 30 MJ 0 TP RC13 NR 31 32 MJ 0 TP RC14 MJ 0 NR35 TP LQ QA [0 MJ CA RC15 Q FC4 30000 0 NR4l A ~ A XS3 library name ~ library list in core Names of all library routines for problem in list? Set switch ©----+ @ to by-pass sent. no. routine 1'514 NR26 30000] for lib. rtn. nwne in lib. in core ~ Qv for lib. rtn. name in lib. in core ~Au XS3 library rtn name Name in list? A NR yes NR12 [30000] IJ 34 35 36 37 40 A A 13 33 ~ } Library list in core --:> sentence no. list on drum 23000 > CW? Yes => pseudo Ope sentence 25000 > CW? Yes =>subs. var. equation (NB ~ no routines with 23- CW) 26000 > CW? Yes==> nOD-subs. var. equation 30000 > CW? Yes ===> statement of main program No ===> Pseudo Op. Form add. for pseudo OPe sent. no. XS3 sent. no. for pseudo Op ~ sent. no. list on drwm Base add. for 22---, 27- CW A 26~--. Base add. for 24--- CW A Base add. for 25-- CW 25 NR37 30000] NR CW~ A NR35 Qv Form add. for sent. no. XS3 sent. no. ~ list 1728 or Routine to Calculate Block Count from Line Count IA (@ Input = number of lines in ttv'~ of "A"; Output: # blks~ in Av Be 0 1 MJ 0 TJ FC6 [30000J BC6 yes 2 3 4 DV FC2 ZJ BC4 yes RA Q Q BC13 no FC3 5 6 MJ 0 TP FC TN A Q TS24 10 11 RA Q RA TS24 FC3 FC2 12 13 14 SJ TP MJ CA BC13 yes A BC 7 BClO Q 0 BC15 5518 > # lines to be converted? (i.e. # blks. <" 4?) # lines /1708 = # full blks.~ Q Is there partial block? Adv. count of # blks. by 1 to count partial blk. BC Zero ~ Q Complement of # lines to be converted ~temp. Adv. count of blks. by 1 in "v" Adv. complement of # of lines by 1708 All blks. counted? # full blks •.~ Av 1729 Fixed Constants IA FC 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 0 0 0 0 20000 0 0 0 0 0 0 0 0 0 0 100 0 0 0 0 10 0 0 1 0 0 0 30000 0 7700 37 0 0 0 07 77700 0 0 50000 0 0 23000 0 25000 0 26000 0 30000 0 3000 0 0 CA FC32 0 0 170 1 777 77777 551 0 7 3 0 0 30000 0 0 0 2 0 77 0 0 0 0 0 0 300 1730 Relative Constants IA RC 0 1 2 3 4 5 0 RP / RP RP 0 7 10 11 12 0 30000 TP TI TP MI RP 30000 RP 30000 RP 0 0 30000 30000 10170 DI 0 DI CU33 TI CV22 CV27 CR27 CY27 CZ 0 TP TIS TIS TP TIS TP TIS 0 0 ND ND1000 ND2000 ND3000 [DI170] 20 21 22 23 24 25 26 27 30 31 32 33 34 35 0 0 AT TC2 AT TS23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TP TI6 0 0 LC5 LC2 TC2 TS23 CT CR7 CN CN12 CP CP2l CR27 CW2l 36 0 0 CA RC37 CT13 0 0 Initial address lib. name list in core IL 13 14 15 16 17 TP D1 in "v" Q Chged. by program to drwm add. for segment - H.S.S. add. for run. seg. D2 in "v" Al A2 Bl B2 El E2 Q DI170 Segment image address for first statement of segment 1731 Tape Handler Codewords IA TC 0 1 2 0[0 3[0 [4[0 017]00 000]01 000]01 0 0 0] 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 4[0 5[0 5[0 3[0 4[0 5[0 5[0 5[0 1'>1() 5[0 5[0 1\'0 3[0 5[0 5[0 5[0 10 7 1 7 1 7 1 7 1 1,0 CA OOOJOI 001]01 0 TI TI 0 0 TI TI TI 0 FA FA 0 0 TI TI TI 0 000~01 000 02 000]02 001]02 002]02 000]02 000,02 001]05 000]05 000,05 000]04 001]04 003]04 000]04 000 04 ~0]03 OPO]03 OOOv03 «>2]03 000 03 TC31 # blocks of fixed library Move forward [n] blocks servo 1 Move backward codeword with count of fixed library adYanced Move backward [n] b1ks servo 1 Read forward 1 b1k servo 1 Read forward n b1ks servo 1 Move forward n b1ks servo 2 Move backward n b1ks servo 2 Read forward 1 b1k servo 2 Read forward 2 b1ks servo 2 Read forward n b1ks servo 2 Rewind servo 2 Read forward 1 b1k servo 5 Read forward n b1ks servo 5 Rewind servo 5 Move forward [n] b1ks servo 4 or 7 Read forward 1 b1k servo 4 or 7 Read forward 3 b1ks servo 4 or 7 Read forward n b1ks servo 4 or 7 Rewind servo 4 or 7 Write [n] b1ks servo 3 or 6 Write en] b1ks servo 3 or 6 Write full buffer servo 3 or 6 Wri te 2 b1ks servo 3 or 6 Rewind servo 3 or 6 TI FA TI TI 0 1732 ., Tape Labels TA .J.H. TL 0 1 2 3 4 5 74 31 01 30 01 65 74747 34463 65672 50270 01463 30324 I-. v 1-.1-. vv A1A1A CA TL7 V.LV.LV 47474 00106 55451 15131 42501 73050 Z Z Z Z Z Z F I L E t::. 3 ~ S U B R 0 E N D ~ 0 F ~~ L I B ~ S E G M E N rr .L lA1Al .LV.LV.L 1733 1\ L...l 1\ L...l 1\ L...l 1\ L...l 1\ L...l Typeout IA 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 0 71 32 44 54 01 54 71 72 05 46 01 47 34 27 26 67 52 51 CA TO TOl 24545 21010 30266 51325 51500 70510 34464 26303 10030 51264 01246 52660 50320 30016 51506 30012 34462 50227 -T023 22 03450 15125 60152 42447 16530 10601 60130 02701 30125 56522 66630 12530 14724 65101 63450 65147 46634 77777 W A R N I N G t ~~ 0 B J E C T ~ P R 0 G R A M ~ 0 N ~ S E R V 0 ~ 3 ~ W I L L 6 E X C E E D 6 2 5 0 0 6 B L 0 C K S 66 A T T E M p T ~ B E I N G 6 M A D E 6 T 0 ~ C 0 N T I N . E p I L N 0 1734 l:l c 0 M U . A T I 77 77 77 Limiting Values IA LV 0 1 TP TI170 II Q Q 2 3 TP 0 0 30000 0 0 Q IL ;) 0 0 6 0 BB FL BL 0 7 0 m 0 10 11 0 0 BL 0 0 CA LV12 4,.. TP PB Limit for 1 blk image load Limit for full image load II TI + IL Limit for current image load = Shift to codeword position - # blks in buffer Shift to codeword position - # blks tape image # lines in buffer Limit # blks. Binary prog. tape (250110) in codeword position 1735 Address Modification Control Subroutine ~ 0 1 2 IA MJ TP QT 0 Q COC13 30000 MI MI6 3 TP MI6 A 4 RP 20011 MR6 5 6 7 10 11 EJ EJ EJ EJ TP ~3 M::22 K;23 1\£24 MI MR17 MR MR 12 RJ MS MSl 13 14 TU A MI6 A Input MR = word to be modified in Q Word to be modified -+ Output line Opere code of word to be modified ----+ temp. Opere code of word to be modified ~A TP Ope code = 17, 22, 45, 56, 61, 63, 75, 76, or 77 ~ only "v" address to be modified } Opere code = 05? Opere code = 14? Neither address Opere code = 57? to be modified Mutt of word to be modified ~ "uti of Q Modify 'IU" address (result in "u" of A) Modified "u" address ~ output line Opere code of word to be modified } MR Q MI ~A 15 16 RP EJ 20006 M::14 MR17 MR 17 SP MI 17 20 TP A Q 21 RJ MS MSl 22 23 24 LT TV 25 Q 0 MR25 Q MI MJ CA Ope code = 31, 32, 33, 34, 54, or 55 ~ only "uti address to be modtiied. "v" of word to be modified ~"u" of A "v" of word to be modified ---+ "u" of Q Modify "v" address (result in "u" of A) Modified "v" add.~ "v" of Q Modified "VII add.~ "v" of output } MR 1736 Modify Address Subroutine IA MS u 1 MJ QT 1\£ 2 3 RP TJ MD M02 MS4 4 MJ 0 MS (\ (@ v A 30024 30000 A Address to be modified ~ Au with " op.'I, and "v" = zero No => 77--- cw. Search list to determine modification required No modification; address < 1000 n ~EXIT ® ® @ 5 MJ 0 MT 6 7 MJ MJ 0 0 MT3 10 11 MJ MJ 0 0 i\5 12 MJ 0 M02 13 MJ 0 MS 14 15 16 17 20 21 22 23 24 25 MJ MJ 0 MJ MJ MJ MJ 0 0 0 0 0 0 0 0 MU2 MT11 l\fr14 MT20 MT14 MT24 Mr30 MT34 26 27 MJ MJ CA 0 0 MS30 MJ MJ MJ MJ 0 0 MO MS Address relative to 10008 (i.e. 10008 ~ address ~ 77778) 10--- CW ; relative constant No modification; 110008 ~ address ~ 177778 ~EXIT 20--- CW; fixed constant No modification; 210008 ~ address S 217778 ----+ EXIT 22---, 23---, 24---, 25---, 26---, or 27--- CW No modification; 300008 ~ address ~ 37777 8 ~ EXIT 4---, or 5--- CW. 60--- CW; fixed temporary 61- CW 62--- CW 63- CW 64--. 65--, or 66--- GW 67--- CW 70-- CW 71--- CW No modification; 720008 ~ address MT20 MT14 75--- CW 76-- CW MS MT6 ~ 747778~EXIT 1737 @ (@ @ @ S IA MT 0 SS MD 0 1 SA MIl 0 2 3 MJ SS 0 MD1 MS 0 4 SA MI2 0 5 6 MJ SS 0 MD3 MS 7 SA MI3 0 10 11 MJ SS 0 MOI0 0 12 SA MI4 0 13 14 15 MJ 0 Mel A MS TP QT A 16 SA MC26 0 17 20 21 MJ 0 K:l A MS TP QT Q A 22 SA MC25 0 23 24 25 MJ TP QT 0 MC2 A Q A Mask (3 digits of "UH) --+ Q ReI. 10c. in non-subs. yare region 26 SA 7 0 27 30 MJ ST ReI. 10c. + base running add. nonsubs. yare region = abs. add. --+ Au 0 MD15 MS 31 SP 10 17 32 SA Q 0 33 MJ 0 MS Address relative 1000a-1000a = reI. 10c. in rtn. -+ Au ReI. 10c. in rtp. + base running add. of rtn. = abs. add. ~ Au 10--- CW--100002 = reI. 10c. in reI. const. reg. -+ u ReI. 10c. + base running add. reI. const. reg. = abs. add.~Au 0 20--- CW--20OOOa = reI. 10c. in fixed const. reg. ~ Au ReI. loc. + base running add. fixed const. reg. = abs. add.-+ Au MS 60-- CW - 60000a = reI. 10c. in fixed temp. reg. ~ Au ReI. 10c. + base running add. fixed temp. reg. = abs. add. ~ Au Mask (2 digits of "UH) ~Q ReI. 10c. in pseudo Ope input reg. Q ~Au ~ @ ReI. loc. + base running add. pseudo Ope input reg. = abs. add. --+ Au Mask (2 digits of "UH) ~ Q ReI. 10c. in function input region -+ Au ReI. 10C. + base running add. function input reg. = abs. add. ~ Au MS ~Au ® 67--- cw- 670008 = reI. 10c. in constant poo 1 ~ Qu Base running add. constant pool --+ Au ReI. loc. + base running add. constant pool = abs. add. ~Au Q 1738 @ 34 S5 MDl6 0 35 SA MI5 0 36 MJ CA 0 MT37 MS = reI. loc. in working temporary region~ Au ReI. loc. + base running add. working temp. reg. = abs. add. 70--- CW -700008 ~Au 1739 IA @ @ 0 1 2 3 4 5 6 MJ RP EJ SN SA SA 7 10 MU MD16 0 [30000] FA Q MU2 MU3 BR13 MU4 17 0 0 TP A [30000] M010 A 11 TJ MC23 MU14 12 TP A MI 13 14 MJ SP 0 A MR 17 15 MJ CA 0 MU16 MS 55 TO 0 71- CW -700008 = abs. add. ~ Au MS No ~ alarm 11 Call word in Ope File III - jn + r ~Au + r~Au Address of word following call word in Ope File III ~ Au Word following ca11word in Ope File ITT-+A (A) = IP (14) command (i.e. flagged cross reference)? IP (14) instruction to reference other segment -+ output Exit from add. modification routine H.S.S. running add. for referenced routine ~ Au Exit 1740 Modification Constants 0 1 2 3 4 5 6 IA lOC 0 0 0 17 22 45 56 77777 77 777 0 0 0 0 7 61 0 10 11 12 13 14 15 16 17 20 21 22 23 24 25 63 75 76 77 31 32 33 34 54 55 05 14 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FI 0 PI CA l\C27 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Base add. function input region init. add. term. buffer Base add pseudo Ope input region 13 lot add. term. buffer 0 = 0 = 1741 n 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 IA MD 0 0 0 0 1000 10000 11000 20000 21000 22000 30000 40000 60000 61000 62000 63000 64000 67000 70000 71000 72000 75000 76000 77000 MD24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1742 Explanation of Modification Routine Inputs (MI) MID [0 1 2 0 D A = modified word running address for routine Initial running address relative constant region Initial running address fixed constant region Initial running address fixed temporary region w_.! _. __ 0 temporary region Temp. 0 0 0 3 0 [30000] 0 4 0 [30000] 0 r:::. A oJ 6 V 0 r~AArv'\ 1 l..JVVVVJ 0 OLltpU. t 0] [30000] [30000] H~S .. S,. T_.!..L~ v _1 ~n~~~~~ 1743 -----.! --runn~ny _ ...]I ...]1__ _ _ ~uur~~~ _ ____ worK~ny Explanation of Temporary Storage Region (IS) ISO o 0 30000 1 o 0 30000 2 o[x xxx] 00 o 3 o 30000 30000 4 o 0 30000 5 o 0 30000 6 o 0 30000 7 10 o o o o 11 o 30000 30000 0 12 o 0 30000 13 o [x xxx100 o 14 o 0 [30000] 15 o 0 [30000] 16 50 000 04 TI 17 50 001 04 TI 20 50 004 04 TI 21 30 000 04 o 22 o o o 30000 23 o o o 24 o o o o o o 25 26 o # fixed constants wi th rtn. in "v": Codeword to read Termination then # blks. Term. in codeword position # lines subj. add. modification in "v·t ; # 1 ines in segment in "v" # blks. prelude and rtn. - 1 in codeword position;# full blks. seg. + pref. in position Routine callword in "u" W/zero fill; H.S.S. running add. rtn. in "v" W/zero fill . # lines to be trans. to drum image in ttv" # fixed const~ in image to be trans. to drum in t· v"; Add. following running Preface in ·v" # lines prelude and routine in "v"; initial add. running segment in "v" # lines in Preface in "un Segment # in "u tt Address for "IP" jump to next segment in ttv" # lines statements and routines (running program) + 2 in "v" Count of blks. binary prog. tape in codeword position Index for count of # library routine names in library list Index for # library routines processed in segment Codeword to read [n] blks. current tape Codeword to read 1 blk. current tape Codeword to read full image load current tape Codeword to move forward en] blks. current tape # library rtns. for problem - 1 in "v·t Count of blks. advanced on library tape Working temp. Add. running segment in "v" Routine callword (temp 4) o o 1744 VII. PROGRAM LISTING PHASE VII. PROGRAM LISTING PHASE The filnction of this phase is to provide a record of the Object Program (absolute computer instructions), produced in response to the sentences of the Source Program (pseudo code sentences). The listing gives the absolute in- structions which make up each segment of the Object Program, together with the sentence number or library routine name associated with each group of instructions. The instructions are listed four to a line and read from left to right, and down, in order of increasing High Speed Storage address. The first instruction of a routine, i.e., the group of instructions representing one sentence or one library routine, is positioned in the first line, such that, each instruction whose octal address ends in zero, will appear in the leftmost column of instructions in the listing. Each address ending in zero is listed to the left of the associated instruction. The first address of a routine is also listed in this column of addresses on the line with the first instruction. It is enclosed in parenthesis if it does not end in zero. The listing also includes, in the same format as above, the pool of constants for the program, and the preface and termination instructions for each segment. The variablffifor the problem are listed in a different format. The symbol for each non-subscripted variable is listed together with its assigned High Speed Stonage address. Initially, the symbol for each subscript- ed variable (array) is listed together with the range of drum addresses assigned to the array. In addition, each subscripted variable is listed in ~ segment in which it is referenced, together with the range of High Speed Storage addresses assigned to the array for the particular segment. The title of the program, the subscripted variables on the drum, the nonsubsctiptedvarTables ,and tlie-- constant pool, 1747 are~ lIsted first, in that order. Then in turn, each segment of the Object Program is listed. Each segment consists of the Preface (if any), the sentences and Library routines, the subscripted variables in High Speed Storage (if any), and the Termination (if any). The listing is produced on magnetic tape edited for listing on the High Speed Printer. It is produced on Uniservo 7 if 7 Uniservos are being used and on Uniservo 5 if 5 Uniservos are being used. If the listing exceeds an arbitrary 1200 blocks, the current listing tape 1s terminated at the end of a page, with the statements, CURRENT LISTING TAPE FULL. FOOT TAPE ON SERVO --. Flexowriter. POT NEW 1500 START TO CONTINUE LISTING. t typed on the on-line This allows the computer operator to change tapes and restart to continue the listing on a new tape. NEXT LISTING TAPE ON PRINTER. In addition, the statements, MOUNT 00 NOT CHANGE POSrrION OF PAPER 0, is included on the tape being terminated, together with a Printer Stop symbol. This informs the High Speed Printer operator that the listing is continued on another tape and allows him to mount the tape and continue. END OF LISTING. f The statement, and a Printer Stop is included on the final tape of the listing to inform the printer operator of the end of the listing. The order in which the tapes are to be listed, in order to get a continuous listing, is the responsibility of the computer operator. When the listing is completed the statements, PROGRAM LISTING ON TAPE -'--. and END OF COMPILATION., are typed out. The computer then comes to a "56" stop. The pages of the listing are numbered thru 999, after which the word CONTINUED is used in lieu of a page number. The instructions of the Program Listing Phase are divided into four 1748 groups. All four groups are read from the UNICODE System Tape into High SpeedStorage; Groups IT and III are then transferred to the drum. The in- structions in Group I remain in High Speed Storage throughout the execution of this phase and consist of constants, temporaries and certain subroutines referenced by the instructions in the other groups. The Group IV instructions produce the initial part of the listing, consisting of the program title, the subscripted variables on the drum, the nonsubscripted variables, and the constant pool. When this part of the listing has been completed, these instructions are overlayed. In listing the sub- scripted variables on the drum, the information is obtained from the modified Dimension List, which contains the initial drum address and XS3 symbol for each subscripted variable, in order of increasing drum address. The modified Dimension List is assumed to be on the drum when the phase is referenced. In listing the non-subscripted variables, the XS3 symbols for the variables are obtained from the Symbol List, which contains these symbols in order of the increasing High Speed Storage addresses assigned to the variables. The High Speed Storage address associated with the first symbol in the list is obtained from fixed location 00007; the address for each succeeding variable is obtained by adding one to the address of the preceding variable. is read from Uniservo 5 to the List Buffer in this phase. The Symbol List Similarly, the Constant Pool, containing the constants in order of their increasing High Speed Storage address, is read from Uniservo 5 to the Dimension List region in the core. The High Speed Storage address of the first constant is obtained from fixed location 00010 and that of each succeeding constant is obtained by adding one to the address of the preceding constant. The program title is listed just as it appears on the UNICODE lsource) Program Tape; hence, only 1749 printable High Speed Printer characters should be used in the title. The Group II instructions, lists, etc., initially overlay the Group IV instructions and, thereafter, overlay the Group III instructions and lists. The Group II instructions are read from the drum to core whenever a new segment is to be listed and, finally. when the listing phase is to be terminated. The instructions in this group build Ope File IV for the segment to be listed and store it on drum; then they are overlayed by the Group III instructions, lists, etc. The information to build Ope File IV is obtained from Ope File III for each segment and from the Sentence Number List, which is produced by the Processor Phase and stored on the drum as input to this phase. III for each segment is read from Uniservo S to the File Buffer. Ope File The Group II instructions also terminate the final listing tape, rewind all tapes not yet rewound, and produce the Flexowriter typeouts at the completion of the phase. The Group III instructions produce the listing of the segments. The Preface and Termination instructions for the segment to be listed are obtained, for listing, from Uniservo S following the Ope File III for the segment. Preface is read from Uniservo S to the Input Buffer. The The initial High Speed Storage address for the Preface is obtained from the seventh word of the Segment Label Block on the Object Program Tape, and the number of lines in the Preface is obtained from the eighth word. With these as inputs, the Preface is edited and written on the listing tape in the prescribed format, by an editing routine which is common for the Preface, Termination, Constant Pool, Sentences, and Library Routines. In listing the sentences and the library routines,the number of routines in the segment being listed is obtained from Temporary (CTS) which is set up by the routine which builds Ope IV for the segment. The XS3 File sentence number or library routine name for 1750 a routine to be listed, the number of lines in the routine, and the initial High Speed Storage address of the routine are obtained from Op . File IV and provided as i~lputS to the common editing routine which edits and writes each routine on the listing tape. The sentences and library routines appear in Ope File IV in order of increasing High Speed Storage address. The Termination is read from Uniservo 5 to the Input Buffer prior to the listing of the subscripted variables in the core. In listing these variables the High Speed Storage address, in the segment being listed, is obtained in order, from the instructions of the Termination. The modified Dimension List is then search- ed for the drum address in order to find the XS3 symbol for the variable. The variables are then edited and listed in the prescribed format by an editing routine used in common to list the subscripted variables on the drum and in the core. The Termination is listed by sections, each representing one block of the Termination. The total number of lines in the Termination is obtained from the eighth word of the Segment Label Block. The initial High Speed Storage address of each section is merely the initial address of the Termination Buffer which is a constant. The number of lines in each section is 170 octal except for the last section which is the number of lines in the partial block remaining. Again, the common editing routine is used. Because of the overlaying involved in the execution of the Program Listing Phase, considerable care should be exercised in making changes in the addresses or lengths of routines, lists, etc. 1751 OP. FILE IV u Op [XS3 00 Sentence I I I [XS3 00 [Number of lines] I I I [Number of lines] Sentence I I [Number of Lines] I I I I In order of the increasing magnitude of the H.S.S. Address Entries ] Number Sentence [ XS3 00 v [H.S.S. Address] Number ] II [H.S.S. Address] Number ] iI [H.S.S. Address] } 1 Format of entry for statements, equations, and Pseudo Ops. etc. ] Library Routine Name I [ 74 J ! [Number of lines] i [H.S.S. Address] [XS3 I I Format of entry for Library Routines Where: Number of lines = The number of instructions, including constants and temporaries, in the routine in the Object Program associated with the preceding XS3 sentence number or name. H.S.S. Address = The High Speed Storage running address of the routine in this segment of the Object Program. 1752 The Ope File IV for each segment is built by the Program Listing Phase just prior to the listing of the segment. The information ior the iist is obtained from O~File 111 for the segment and from the Sentence Number List~ Entries are made in Op.File IV for only those routines which are included in the segment to be listed. Sentence numbers, for which a callword appears in Ope File III followed by an ttlnterpret" inC!+ ... I I ... +,;....... ~ ... .I."" ... .LVU, .... .... .0 O.l.\,; ........ .;++aA Vl11.l. .... "'''' ~_,... ... .I..I.UlI1 {\'" vp. 1:'':1.n."TlT .I. V • ~. .I.~'" 'T'1...n. .I.uv t'T... +.n._ .... _,,+" .I.l1 ... v~p~v... .: ..... +_ ..... ... .LU\i- ~J1., tion indicates the routine is in another segment but is referenced from the segment being listed. The library Routine entries have a 748 in the Op. code of the second word to indicate that they are Library Routine entries. All other entries have a 00. 1753 Modified Dimension List [ Drum Addre ss ] 00 1 I [ XS3 Symbol for array o0 0 0 0 In order of the increasing magnitude of the drum address entries ] I [ Drum Address1 00000 [XS3 Symbol for array ] 00: I I etc. I Symbol for array Drum Address] ] 00000 ~ Last entry in list might =1000008 • Where: Drum Address = Initial address of array on drum during running of Object Program. XS3 symbol = XS3 symbol for subscripted variable (array) to which preceding drum address applies. 1754 The modified Dimension List is built by a routine which operates during the Allocation Setup Phase. Information to build the list is obtained from the original Dimension List in the Combination List, which is still available at this time. Fixed location 00010 is changed at the time the modified Dimension List is built to describe this new list. The last entry in the list must always be the address following the last address of the last array on drum. If, therefore, the last address of the last array were 77777 , the next address would be 8 1000008 • Although this is not a legItimate address, in this case it would have to be included as the last entry in the list. 1755 Sentence Number List (ND = Regional Address of List on Drum) Op. u v XS3 Sentence Number XS3 Sentence Number ND - Section for sentence numbers associated with 26---, 27---, and 22----- type cal1words. (Maximum of 512 10 such ca11words) etc. XS3 Sentence Number XS3 Sentence Number ND1000a - Section for sentence numbers associated with 24--- type ca11words. (Maximum of 512 10 such ca11words) etc. XS3 Sentence Number XS3 Sentence Number XS3 Sentence Number XS3 Sentence Number ND2000a - Section for sentence numbers associated with 25--- type ca11words. (Maximum of 512 10 such ca11words) ND3000a - Section for sentence numbers associated with 4---- type ca11words. (Maximum of 6410 such call words) etc. XS3 Library Routine Name XS3 Library Routine Name ND3100a - Section for names associated with 5---- type ca11words. (Maximum of 512 10 such ca11words) 1756 The Sentence Number List is built by a routine which operates during the Processor Phase, where the Prelude of each routine is still available. The c~llword of each routine, and the associated XS3 sentence number or Library Routine name are obtained from the Prelude of the routine. f The entries in each section of the list are stored within the section relative to the last three octal digits of the callword, except for 4---- and 5---- type callwords. For the 4xxx - and 5xx-- type callword$, the digits marked "X" are used. The sections of the list always remain at the same relative distances from the beginning of the list, as shown on the preceding diagram; henc~ the list is always 41008 locations long. 1757 SYMBOL LIST FORMAT Ope v u XS3 SYMBOL FOR VARIABLE XS3 SYMBOL FOR VARIABLE XS3 SYMBOL FOR VARIABLE In order of the Increasing H.S.S. Addresses Where: XS3 SYMBOL = XS3 Symbol for each of the non-subscripted variables of the problem This list is built and written on Uniservo 5 by routines which operate during the "End of Tape" generation phase. The list contains the XS3 symbols for all the functions (66--- callwords), floating point non-subscripted variables (65--- callwords), and fixed point variables (64--- callwords) of the problem. The symbols axe in the list in order of the increasing High Speed Storage addresses assigned to the variables. 1758 Program Listing Phase Setup Block Regional Assignments: HE RE RE HE RE RE RE TN20 TH21 UP421 FP653 PK2547 LS7230 LT7260 Setup Block LS o IA SP TN o 1 ZJ LS2 LS3 = zero? ~ 5 servos; (A) 0 ==> 7 servos Adv. servo # in printout by 3 to set obj. prog. tape # = 6 (A) ::f. 2 RA LTII LS24 3 4 TP RJ LT UP2 UP3 UP 5 6 TP RJ LT12 UP2 '7 SP MS o 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 ZJ TP RJ TP RJ MJ TP RJ TP RJ Typeout: COMPUTER CODING PRODUCED ON TAPE 3 or 6 UP3 UP Typeout: LS25 o IF PROGRAM LISTING IS NOT DESIRED, SET A NOT = O. START. Set A = O. LS17 LS26 TH2 LSll LS12 TH3 TH Program Listing desired? LS27 TH2 o LS27 TH2 LT25 UP2 TH3 TH PK TH3 TH UP3 Rewind servo 1 Jump to program listing phase Rewi nd servo 1 Typeout: UP o o o o o LS23 300 50 01201 FP 10 CA 1 o LS30 MS Read program listing phase from servo 1 to core COMPILATION COMPLETED. o Tape codeword to read listing phase to core Tape codeword to rewind servo 1759 1 Listing Setup Typeout IA 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 0 01 01 01 01 66 27 54 27 24 0 34 32 34 01 66 54 30 51 01 66 0 01 01 01 01 46 01 30 CA LT LT1 01010 01010 01010 26514 30540 34503 51276 01515 52300 LT13 31015 54244 65663 34650 01273 30272 66012 66017 01656 22777 LT26 01010 01010 01010 26514 24663 26514 66302 LT35 11 10101 10101 10101 75267 12651 20152 72630 00166 10622 12 25451 70146 45032 15051 06534 10165 40150 60322 62454 77777 7 10101 10101 10101 75234 45150 75246 72277 ~~~~~~ ~~~~~~ ~~~~~~ ~ C 0 M P U T D R D E R I C 0 N G ~ P 0 D U C E 0 N ~ T E ~ 3 ~ A P G ~ I . F ~ P R 0 R A M ~ L S T I N G - I S ~ N 0 T ~ D E S I R E D , ~ S E T ~ A ~ N I ~ ~ ~ ~ S 0 T T . = 0 T A R 77 77 77 77 ~~~~6~ ~f:j.~f:j.~~ ~~~f:j.~~ ~ C 0 M P I L A T I 0 N C 0 M P L E T E D . 77 f:j. 1760 ==:> Beginning of subroutine; where XX is regional CRECO) label for routine => Exi t from subroutine ==>Connectors; where X is connector number I"XPlana~io4 ~~n~~ ~ _ :: Function or name :::=::> Swi tch; where "Aft is symbol for switch and X and Yare conneotor numbers of different paths which may be taken at this point =:> Explanatory Note; No action implied. l;turn jump reference (subrou tine); where parenthesi s enc lose the connector number to which the reference is made => Reference to general subroutine which is not part of this phas1e; where parenthesis enclose regional CRECO) label for routine => Operation Box (QUestio~ =:> DeciSion Box Key to Pr~gram Listing Phase Flow Chart Program Listing Phase Type: PASS V. LISTING OF PROGRAM Fill output buffer with XS3 space characters ZEROIZE TEMPORARIES Setup page number and segment number words Fast feed I symbol and "program listing" to sheet heading (first) blockette in output buffer Setup one shot jumps in page number routine Instruction groups II and III to Codeword to Tape Handler to read one block of corrected problem tape to list buffer ~~~ To Conn. (53) -Check corrected problem tape label Program title from list buffer to third thru seventh blockettes of output buffer Preset output buffer address and line count for first entry following title ~ _ _- - J Codeword to Tape Handler to move corrected problem tape to beginning of Constant Pool, 1------=;;.( or XS3 symbol list if no Constant Pool Check indicator for 5 or 7 servo~ and set servo numbers in tape codewords~------~ and Flexowriter printouts accordingly Are there subscripted variables in program? (Location 00006; Transfer Dimension List from drum to core Setup editing routine (EV) to enter heading routine (HV) and Dimension List Routine (OS) at entrances associated with tSditing of subscripted variables (drum) L NO To Conn. (107) Editentriesfor ttsubscripted variables (drum)" section and write on listing tape Is there a constant Pool program? .-~ To Conn. (99) Ini tiaf ''Sub- scripted variables (drum)" section heading to output buffer Codeword to Tape Handler to read Constant Pool from corrected problem tape to Dimension List region (over lay) Is first word of Con""'--"""'1 stant Pool label block CONSTA in XS3? NO -3 Type: ALARM 10 COMPILATION INCONSISTENCY ETC Are there non-subscripted variables in program? Location 00007 Codeword to tape handler YES to read XS3 symbol list and/or XS3 symbol list label block to list buffer NO Type: ALARM 10. COMPILATION INCONSISTENCY ETC. Preset object program running address for first non-subscripted variable minus one in temporary (CT) To Conn. (75A) New-page heading blockette to output buffer if required Preset Box 1 to address of first non-subscripted variable symbol in XS3 symbol list "Non-subscripted variables" section heading blockette to output buffer Jo.sonn._(2lL Two blockettes of XS3 space characters to output buffer Blockette of "symbol" and "address" column headings, for non-subscripted variable section, to output buffer. Blockette of underscores for column headings to output buffer Preset Box 2 to output buffer address for assembly blockette Set index (CTl) to number of variables per blockette - I, i.e., to three 0-- Advance object program running address for variable (CT) to address for ~ next variable Advance assembly blockette address in Box 2 ~ to address for next variable symbol 7 Box-l Next variable symbo from XS3 symbol lis to input for editin routine (ES) To(132 Conn. ) -Edi t XS3-symbol Edited varia-b--l~ symbol to assembly blockette in output buffer Box-2 L...-_ _ _ __ Box-3 Advance address in Box 1 to address for next variable symbol in XS3 symbol list Advance address in Box 2 to assembly blockette address fOr object program running address for variable Octal object program running address for variable to input of conversion routine (CA) I---~ Running address for] variable in XS3 to ~ assembly blockette ~ in output buffer Preset this address in Box 3 Same blockette-same sheet To Conn. (71) New section blockette-new shee New blockette-same sheet ~ Setup section heading to show continuation on new sheet "Non-subscripted variables - - continued" to section heading blockette in output buffer Initial object program running address of Constant Pool (location 00010) to input for editing routine (EC) Set index (CT2) to number of constants in Constant Pool Preset Box 9 in editing routine (ED) to input buffer address of first constant Is there a Constant Pool in program? To Conn. New pageheadingblockette to output buffer if required Setup editing routine (EC) to provide continued Constant Pool headings on new pages of listin To Conn. (113) Edit and write-Constant Pool sectio on listing tape running ment Type: ALARM 8. COMPILATION INCONSISTENCY ETC. @SEGME in XS3 to first segment number word for listing Save th ird thru eighth lines of label block in temporaries Transfer instruction group III from drum ~--~ to core Obtain segment number from third line of label block and convert it to XS3 To Conn. (75) ageheading blockette with segment number and page number to output buffer Codeword to Tape Handler to read Preface from corrected problem tape to inut buffer Setup editing routine (EC) to edit Preface for To Conn. (113) Edi tanctwri te-Preface for segment on listing tape Send number of blocks in this segment and Preface to input buffer routine Are there more sentences or library routines in this segment to be listed? Advance address in Box 4 by one to address of next entry in file list Box-4 Obtain next XS3 sentence number or library routin name from XS3 symbol list and store in tem~ Box-5 Obtain number of lines in sentence or library routine, and its running address, from word following XS3 symbol in file list Advance file list address in Box 4 by one and preset this address in Box 5 Setup editing routine (EC) to edit sentence or library routine Check sign of word following XS3 symbol in file list. (+) implies sentence (-) implies library routine YES Number of lines-l to index (CT2) and running address to editing routine (EC) Sentence number to stored headin Library routine name to stored heading To Conn. (97) Headings forlibrary routine to output buffer Codeword to Tape Handler to read Termination from corrected problem tape (servo 5) to input buffer To Conn. (114) Edi taiidwri tesen=tence or library routine on listing tape Transfer Dimension List from core to drum NO Divide number of lines in termination by two to get number of subscripted variables in this segment Set index (CT2) to n umber of sub scripta:l variables in this segment minus one Setup editing routine (EC) to edit subscripted variables for segment Set section number to zero in stored termination headings Setup editing routine (EC) to edit termination for segment Transfer instruction group II from drum to core Advance section number by one in stored Termination headings To Conn. (95) Headingsforsection of Termination to output buffer Termination on listing tape Set index (CT2) to number of lines in next section of Termination - I "End of listing" Blockette with fast feed one symbol to output buffer To Conn.(69) Terminate listing tape and rewind Codeword to Tape Handler to rewind object program tape End of compilation Codeword to Tape Handler to rewind corrected problem tape Type: PROGRAM LISTING ON TAPE [4 or 7J. Type: COMPILATION COMPLETED. (BF) Subroutine to Build Op. File IV for Segment Codeword to Tape Handler to read one block of op. file III from servo 5 to file buffer Type: J-N_O_~ ALARM 10. COMPILATION INCONSISTENCY ETC. Implies e:Jd op. file III for this se ment Transfer sentence number list from drum to core Preset initial address of: op. file IV (drum~ statement buffer (core), routine buffer (core~ routine file (drum) Is first word block equal to END~OF in XS3? Codeword to Tape Handler to read one block of op. file III from servo 5 to file buffer Preset Box 6 to initial address of file buffer Box-6 btain next callword from op. file III in file buffer and advance buffer address by one Is 23000 YES Is callword for non-subscripted variable equation, i. e. 25---CW? Must be Z's in XS3 indicating end of data Setup base address for subscripted variable 39 ~~ equation numbers in sentence number list Setup base address for non-subscripted variable equation numbers in sentence number list Obtain second and third octal digits from left in pseudo OPe callword Add base address of pseudo OPe region in ~--~47 sentence number list to get address of sentence no. Add negative sign bit to data word following callword in Ope File III to indicate library routine Shift callword to align second thru fourth octal digits of library routine callword with last three digits of other callwords Setup base address of library routine section 46 in sentence number list~~~ Obtain last three octal digits of callword Yes implies omit from op. file IV Data word from word following callword in op. fil III to word following sentence number in statement buffer Add base address of statements section in sentence number list to get address of sentence number S3 sentence number associated with callword fro sentence number list to statement buffer ----;a Advance ad- ~ dress in state 44 ment buffer by one Reset stater~ buffer addr(~ Advance address in statement buffer by one Statement buffer load (1708 words) to op. J---==-~ fi Ie IV on drum YES ~_L'--:-----1 Advance address in Op. file IV by 170 octal ADD last three octal digits of callword to base address to get address of sentence number Advance address in file buffer by one XS3 sentence number associated with callw~rd from sentence number list to routine buffer Advance address in routine buffer by one Data word from word following callword in op. file III to word following sen tence number in routine buffer YES Transfer routine buffer load (1708 words) to routine file on drum Advance address in routine buffer bone Must be callwor for pseudo op. sentence i.e. t 22___ Advance address in routine file by 170 octal Reset routine buffer address CW Setup base address of Is callword all zeros? J--N_O-",-_~ statements section in sentence number list Yes implies omit from 0 • file IV 45 Codeword to Tape Handler to read one block OPe file III from servo 5 to file buffer ~ &- implies end of ransfer remaining entries in statement buffer to OPe file IV on drum Transfer remaining entries in routine buffer to routine file on drum OPe -.r-------.... Type : ALARM 10. COMPILATION INCONSISTENCY ETC. file III for this segment to number tences in segment Transfer routine file on drum to OPe file IV on drum following entries from statement buffer (CL) Check label on corrected problem tape (i.e., check for UNICODE PROGRAM anywhere in first blocikette) Set index .to chec:k 248 words Obtain next word from first blockette of ~--~corrected problem tape Have all words in first blockette been checked? NO sword UNICOD, ~UNICO, CODE&. ICODE~ OR NICODE in XS3? ~LlUNIC t YES (LS) Locate segment label block for first segment on object program tape Set index to check 378 blocks I s fir st word of block SEGMEN IN XS3? NO Codeword to Tape Handler to read one block of object program tape to list buffer Have all blocks been checked? Type: YES ALARM 8 0 COMPILATION INCONSISTENCY ETC 0 (NP) Last digit is rightmost di modulus" 61~ 3 repeat tp s in Termination for this array Is 177778 >modulus? Advance address in Box 8 by 6 to address of next ~--~~array transferred by Termination Decrease index by two NO 2 repeat tp s in Termination for this array Advance address in Box 8 by 4 to address of next 61B~...l--~ array transferred by Termination Decrease index by one -v '---------' ~ 6 C 1 dvance address in Box 8 by 2 to address of next array transferred by Termination Entrance to read blocks from tape to input buffer (IR) Input buffer routine Input line = Number of blocks in this segment + preface YES Decrease block count in input line by number of blocks in full input buffer ...... -..:a co Codeword to Tape Handler to read remaining blocks of segment from obj ec t program.----~ tape to input buffer Codeword to Tape Handler to read full buffer load of segment from object program tape to input buffer Set input line negative to indicate all of segment + Preface read to buffer o NO Entrance to locate label block for next segment Codeword to Tape Handler to read label block of next segment from object program tape to input buffer Codeword to Tape Handler to move object program tape forward, past remaining blocks of Preface and Termination, to beginning of next segment YES Codeword to Tape Handler to move object program tape forward, past Termination, to beginning of next segment Setup address of first word in label block (BA) ~c~Advance ~ount line by one Subroutine to advance output buffer address Advance output address by 24 octal ~--~buffer Is output buffer full? ...... -.J co ...... t switch ~ to 70 to terminate t is listing tape at end of next page ~ Advance count of blocks on listing tape by number of blocks in output buffer (4) Codeword to Tape Handler to write output buffer on listing tape Reset output buffer address to initial value Fill output buffer with XS3 space characters Set listing tape block count to zero to render preceding test ineffective for rest of this tape (BB) Subroutine to terminate current listing tape Fast feed one and printer stop symbols to blockette in output buffer Codeword to Tape Handler to write partial output buffer load on listing tape Codeword to Tape Handler to rewind listing tape (BD) Subroutine to end current listing tape at end of page --IV _ I Fast feed one symbol and "mount next listing tape on printer" to next blockette in output buffer Reset count of blocks on listing tape to zero characters Type: CURRENT LISTING TAPE FULL. PUT NEW 1500 FT TAPE ON SERVO_* START TO CONTINUE LISTING. I---~ Restart .--_ _ _ _~78 _ __ (OC) Output control subroutine Advance exit by one to setup exit for new section Was this 55th line NO _Q 'on sheet or beyond -~ when new section next? YES New section Was this 63rd line on heet or beyond when section next? Set switch ~) to ® Advance exit one to setup exit for new sheet I--===~by NO NO To Conn (75) ewpaigehead- New Sheet_ ing blockette to output buffer Same blockette-same sheet Advance exit by three to exit for ~ blockette same sheet ~ v ------New blockette~same sheet count V count New sect_io_n_ _---' (00) Page Heading Control Subroutine ,-------- Set swi tch o to @ Segment number to sheet heading blockette in output buffer Page number to sheet heading blockette in output buffer (CA) Convert octal address to XS3 Input = Octal address Output = XS3 address XS3 address, packed left with octal zeros on right to fill, to first output line XS3 hyphen to "A" left To Conn. (85 Convert octal address to XS3 \\0-____--' ,.,.--_ _ _....1 S3 address with hyphen on left to first output line Add close parenthesis following XS3 address Set itA tt register to zero to XS3 address, packed right with octal zeros on left, to first out ut line XS3 address with close parenthesis on right to first output line Open XS3 paren-s:J't ' to rIg 'h t 0 f Xl t h eSls second output line with zero octal filIon left Setup to convert five digits Next octal digit from address in input to op. code of "Att right XS3 address in "A" left packed right Add three to octal digit to convert to XS3 and shift XS3 digit to right of "Att left (CW) Convert Octal word to XS3 Input = octal computer word XS3 to left of first output line with octal zero fill on right ~~~~in Add three to octal digit to convert to XS3 and shift XS3 digit to position for out ut line Obtain next octal digit ~----~ from input line, working from left to right First output line = op. code in XS3 Second output line = "u" address in XS3 Third output line = "v" address in XS3 in XS3 to left of second and third out put line with octal zero filIon right ~ Setup for first output line Setup shift counts Add XS3 digi t to pertinent output line Is current output line full? NO Have all octal digits of input lin been converted to XS3? Advance to next output line and reset shift count (HC) Heading Routine for Constant Pool. Preface. Sentence, Library Routine, and Terminat:ion Sections Setup for initial section heading for Constant Pool CONSTANT l:::. POOL in XS3 to section heading blockette in output buffer Setup for sectionl heading for Constant Pool continued on new pag of listin ONSTANT l:::. POOL--CONTINUED in XS3 to section heading blockette in output buffer ®{ 90 ADDRESS in XS3 to column heading blockette in output buffer fiJnderscores for ] I:'address" to next blockette in output buffer (74)) J - t ~ ITo Conn. ~dvan.ce output buffer address by 50 octal and line \count by 1 Setup for initial section heading for preface PREFACE in XS3 to section heading blockette in output buffer Setup for sectIon heading for Preface continued on new page of listing PREFACE--CONTINUED in XS3 to section heading blockette in output buffer Setup for initial section heading for preface SENTENCE NUMBER_ in XS3 to section heading blockette in o.utput buffer Set up for section heading for sentence continued on new page of listing SENTENCE NUMBER -CONTINUED in XS3 to section heading blockette in output buffer Setup for initial section heading for termination TERMINATION in XS3 to section heading blockette in output buffer Setup for sectio heading for Termination continued on new page of listin TERMINATION -- CONTINUED in XS3 to section head- ~ ing blockette in output ~ buffer Setup for initial section heading for library routine LIBRARY ROUTINE in XS3 to section heading blockette in output buffer Setup for section heading for library routine continued on new a e of listin LIBRARY ROUTINE CONTINUED in XS3 to section heading blockette in output buffer -------- ----------------------------(HV) Heading routine for subscripted variables ~drU~~ in XS3 to section headi~~re 105 Setup for initial section heading for subscripted variables (drum) Setup for InItial section heading for sub scripted variables(core) Setup for section heading for subscripted variables (drum) continued on new page of listing Setup for section heading for subscripted variables (core) continued on new page of listing I SUBSCRIPTED VARIABLES blockette in output buffer SUBSCRIPTED VARIABLES [druml coreJ --CONTINUED in XS3 to section heading blockette in output buffer "Symbol" and "addresses" column headings for subscripted variables to next blockette in output buffer --- - - To Conn. (66 Advance out-=put buffer address and line count nderscores for SUbscriPtets ariable column headings to next blockette in output 106 uffer (EV)&iftSubscript-;ct V;riabI;s ---------.-----.,..addre ss in utput buffer ~ 6 11 Transfer ini tial running address of section to be edited from input line to input of conversion routine To Conn. (80 YES Convertoctaladress to XS3 without parenthesis Is last octal digit of initial address less than four? Set index (CT4) to zero to indicate next line in listing requires address Subtract four from last octal digi t of ini tial address NO to one to indicate next ~----------~line in listing does not require address YES ~----------------~ Advance assembly blockett address in Box 10 to preset for last entry in blockette Preset index (CTl) for one entry in blockette NO Advance assembly blockette address in Box 10 to preset for second entry in blockette Advance assembly blockette address in Box 10 to preset for last entry in blockette Preset index (CTl) for three entries in blockette Decrease assembly blockette address in Box 10 to preset for first entry in blockette Advance input buffer address in Box 9 to address of next octal word to be converted Preset index (CTl) for four entries in blockette First four (leftmost) octal digits of initi address to address counter (CT15) Preset index (CTl) for two entries in blockette Advance assembly blockette address in Box 10 by 5 to address for next entry in blockette By-pass if Editing Constant Pool, Preface, or Termination eset Input bu fer address in Box 9 to initial address End of input buffer? Box-9 Next octal word in input buffer to input of conversion routine To conn:-~ Convert'octal word to three ords in XS3 ~- NO Box-lO Transfer three word XS3 entry from output of conversion routine to assembly blockette in output buffer Same blockette - s.ame New section New blockette - new sheet same sheet Is address required for next line of Ii sting? (check index CT4) YES Advance address t--~I counter (CT15) by 10 octal Are last two octal di gi ts of addre ss equa 1 to zero? r-----::~ -u -1 To Conn.(66J XS3spaceblockette to output buffer To Conn. (66 XS3space'- blockette to output buffer _ To Conn.. (75) Newpage headingblockette to output buffer and reset line count Setup assembly blockette address for XS3 address entry Transfer octal address from address counter (CTlS) to input of conversion routine To Conn .. (89),(92),(94), (96) or (98) __ _ Section heading. for continuation of section on new page of 1 i sting t to output bu.ffer XS3 address to assembly blockette in output buffer Set index (CT4) to one to indicate next line in listing does not require address Preset assembly blockette address in Box 10to address for first entry in blockette To Conn~ Preset index (CTl) for four entries in blockette (89), (92),(94). _(2.611.. ~_(98l_lsectTon head ing, for continuation of section on new page of listing to output buffer Is address required YES Advance address _~ for next line of listing·L--->o...counter (CTlS) ~ (Check index CT4) by 10 octal (ES) Edit XS3 Variable Symbol for Octal 77's Input = XS3 symbol packed left with octal 77 fill Output = XS3 symbol packed right with octal zero fill Set index CT3 to check 6 characters Shift leftmost XS3 Fill output line symbol in input line with octal zeros~--~to rightmost positio in input line Shift output line 6 places left NO NO ~----------I XS3 symbol to rightmost position of output line Program Listing Phase Regions RE RE RE RE RE RE RE HE RE RE HE Group I HE R.g RE RE HE HE HE HE HE HE HE RE Group I I RE BR537 TH21 UP421 EP540 WP551 WQ551 WV547 YP551 YQ55 1 YV551 ZP547 = FP653 TL732 TC746 XS772 XTI072 FClI46 RC1252 CT1316 OD1342 NP1363 BAI4l5 BB1432 RE PPI452 PT1467 BFI5l0 BG161l Group III RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE PQ1672 PR1725 PS1770 EV2030 EC2064 E02125 EF2177 FR2203 IR2211 OS2241 OC2311 802335 HV2352 HC2407 CA2470 CW2521 Group IV RE RE RE PK2547 PL2565 PM2625 HE RE Alarm. routine Tape handler Uniprint routine :: BRl Alarm. :: BR12 Alarm Alarm == BR12 Alarm == BRIO Alarm == BR12 Alarm == BR12 Alarm BR12 :: BRIO Alarm 1796 1 10 10 8 10 10 10 8 RE RE RE RE RE PN2660 P02741 CL2756 LS2767 ES3000 RE RE RE RE RE RE RE RE LB3327 DL5037 OB7040 FB2170 SB2360 RB2550 NL2740 FL2557 List Buffer Modified Dimension list in core Output buffer File buffer Statement buffer Routine buffer Sentence number list in core Op. File IV list in core RE RE RE RE RE IB2747 DD40101 ND42 102 FD46202 RF47202 Input buffer Modified Dimension list on drum Sentence number Op. File IV on drum Routine file for Op. File IV RE RE DQ52472 Z2655 Group III instructions on drum Length of Group III RE RE DP53400 YY220 Group II instructions on drum Length of Group II RE TB610 RE BL2260 Initial address of termination buffer Listing tape block limi t 1797 Memory Layout TH 21 400 UP 421 216 EP 537 GP. I GP. II GP. III FP 653 TL 732 TG 746 XS 772 XTI072 FC1146 RC1252 CT1316 OD1342 NP1363 BA1415 B81432 PP1452 PT1467 BF1510 BG1611 PQ1672 PR1725 PS1770 EV2030 EC2064 E02125 EF2177 FR2203 IR2211 OS2241 OC2311 BD2335 HV2352 HC2407 CA2470 CW2521 GP. IV EP WP WQ WV YP YQ YV ZP PK2547 PL2565 PM2625 PN2660 P02741 CI2756 LS2767 ES3000 537 551 551 547 551 551 551 547 == BR :: BR12 == BR12 == BRIO := BR12 == BR12 == BR12 == BRIO l;NO; included on region tape since referenced only by GP. IV LB3327 (Lists & 1510 buffers) DL5037 2001 OB7040 740 10000 GP. II FB2170 (Lists & 170 buffers) SB2360 170 RB2550 170 NL2740 4100 OB7040 740 10000 GP. III FL2557 (Lists & 170 buffers) ID2747 2070 DL5037 2001 OB7040 740 10000 1798 uniprint. FC 40 001 100 DD 40 101 2 001 ND 42 102 4 FO 46 1 RF 47 100 202 000 202 Dimension List Sentence number list Ope File IV on drum Routine File on drum 3 270 DQ 52 472 655 Group III on drum Length Group III DP 53 400 220 Group II on drum Length Group II TB 610 BL 2260 Termination buffer address Listing tape block limit ZZ YY. Program Listing Phase 0 1 2 3 4 5 6 7 10 11 12 13 14 15 IA TP RJ RP TP TP PK FP UP2 10024 FC XS11 TP XS12 TP TP TV TV RP TP RP TP CA UP3 UP PK4 CT CT10 CT11 CT12 CT13 XSll RC24 NP4 RC25 NP7 YY30000 PK14 } PP DP ZZ30000 PL } DQ PQ PK16 XS 1199 Program listing setup Parameter ~ uniprint Print: LISTING OF PROGRAM Zeroize temporaries Preset 1st page no. word (assume no number 1st page) Preset 2nd page no. word Preset 1st segment no. word Preset 2nd segment no. word Preset one shot jump in Page no. rtn. Preset one shot jump in Page no. rtn. Program Load II ~drum Program Load III ~ drum Program Listing (Title Section) IA CD @ PL 10740 XSll 0 1 2 3 4 RP TP TP RP TP XS 30004 XT40 PI2 } OB OB PL5 OBIO 5 6 TP RJ TC TH2 TH3 TH 7 RJ CL CLI 10 11 RP TP 30144 LB24 PL12 OB50 12 13 TP TP RC3 FC7 CT6 CT7 14 SP 14 0 15 ST FCI Q 16 LT 3 CT16 17 QT FC32 A 20 SS CT16 25 21 22 AT RJ TC3 TH2 TH3 23 MJ 10000 PL30 24 TP TC21 Q 25 TP FP55 FP20 26 TP FP55 FP47 27 30 MJ TP 0 FP56 PL33 FP20 31 TP FP56 FP47 32 TP TC22 Q 33 RP 30010 PL35 Fill output buffer with space char. Fast feed 1 sym ~ sheet hdg. blkt. PROGRAM fl LISTING ~ Sheet Hdg. blkt. Codeword ~ G.T.H. Read 1 blk. corrected problem tape ~ list buffer Check corr. probe tape label (i.e. UNICOIEL\PROGRAM) Prog. ti tIe ~ 3rd ... 7th blk ts in output buffer Preset output buffer address Preset line count (158 ) for 1st entry following title # blks preceding XS3 sym. list lab ~Av Decrease by 1 to exclude tape label blk. ~ Qv # blks. Const. Pool (incl. lab. blk. & End blk.) ~ ltv" of temp. # blks. to move tape to pOSition at begin XS3 sym list lab. Dec. by # blks. Const. Pool to get # blks. to move to begin const. pool Codeword ~G.T.H. Move corr. probe tape forward to begin Const. pool (or XS3 sym. list if no C.P.) MJl off ==>5 servos; WI on ==> 7 servos Obj. prog. servo # = 3 ~Q (5 servos) Set listing tape # = 4 in flex. prints Set listing tape # = 4 in flex. prints TH Set listing tape #=7 in flex. prints Set listing tape # = 7 in flex. prints Obj. prog. servo # = 6 ---;;. Q (7 servos) 1800 34 QT TC6 TC6 35 RA Q FC2 36 37 RP QT 30003 TC16 PM TC16 CA PTA 0 Servo. no.~ Obj. prog. tape codeword Program listing servo no.~Q (1 in HUH adv.) Servo no. codewords 1801 ~program listing tape Listing Phase (Subscripted Var. (Drum) Section) ® IA PM o TV 6 1 2 IJ CT2 MJ o CT2 PM3 yes PM15 3 TP 6 A 4 AT FC77 5 5 6 7 A RP PMb } PM10 DL DS4 EV7 TU TP [30000J DD RC33 RC42 # 77--- GWts ~ Index C 2 Are there subscripted variables? No jn for Dim.List of form 2---~Au jn for Dim. List of form 3---~"u" of loc. 5 Dimension list from drum~core 11 1U TV 12 TV RC5 EV32 13 RJ HV HVI 14 RJ EV EVI 15 SP CT16 25 16 17 20 ZJ PM17 yes PN no AT RJ TC5 TH2 TH3 TIl 21 TP DL A Preset init. add. dim. list Preset Dim. List rtn. ref. ~ subs. var. (drum) entry Preset hdg. rtn. ref. ~ subs. var. (drum W/cont.) entry Init. subs. yare (drum) hdgs. ~ sect. hdg. blkt. Edit subs. yare (drum) & write on listing tape # blks const. pool (inc!,.. lab. & end blks.) ~ A in codeword position Is there const. pool? Codeword ~ G. T.H. Read const. pool (incl. lab. & end) from corr .prob. tape ~ Dim. List region 1st word const. pool lab. blk. 22 EJ TL13 PN 1st wprd const. pool lab. bike = 23 24 MJ TP o WP 14 Q 25 QT FC50 A 26 AT TC23 TH3 27 RJ TH2 TH 30 TP LB A 31 EJ TL4 PN3 32 MJ CA o WQ PM33 10 --+A } CON S T A? Alarm 10 # blks XS3 sym. list incl. lab. & end blks. (If no sym, list, only Lab. blk. appears & count = 1) ~A in position for codeword Codeword to read sym. list to list buffer ~ G. T.H. Read XS3 sym. list (or lab. blk. if no list) ~ List buffer 1st word XS3 sym. list lab. blk~A 1st word XS3 sym. list lab. blk = S Y M B 0 L ? Alarm 10 1802 Non-5ubscripted Variable Section @ o IA SP 7 o 1 ST FC3 CT 2 SJ PO 3 4 TV .... CT FC CT2 CT 5 RJ OD OD2 6 TU RC12 PN37 XS53 CT6 XS50 PN12 TV 7 TP 10 TV PN no PM24 yes 11 RP 12 TP 30005 XS44 PN13 [30000] 13 Tn RCI0 PN2l 14 15 16 RJ TP Q TV OC FC20 CT6 17 RA PN21 FCIO 20 21 RP TP 30003 [30000] PN22 [30000] 22 RA PN21 FC2l 23 QJ PN24 yes PN20 no 24 25 QJ RJ BA BAI 26 TU RCII PN2l 27 30 31 32 TP FC22 Q RJ OC TV CT6 PN16 OC2l PN4l 33 RS PN4l FCI 34 TP MJ " No n-subscriptedl1variables" Hdg. ~Section hdg. blkt. Preset "u" of TP~ Add. of stored col. hdgs. Two space blkts.~ output buffer Swi tch 106 I 00000 I 000001 ~ Q Preset add. col. hdg. blkt. = output buffer add. 2 in "v" adv.~ add. for 1st col. hdg. (or underscore) OC21 PN2l PN25 no PN3l yes o FCll Init. running add. non-subs. yare ~ Au, # non-subs. yare ~ Av Decrease running add. & # non-subs. var. each by 1 ~ temp Are there non-subs. var.? No ~ const. pool section # non-subs. var. - 1 ~ index C 2 Zero ~"vtt of temp. containing non-subs. yare add. - 1 New page hdg. if required ~ output buffer Preset initial add. in XS3 sym. list Setup section hdg. Preset add. sect. hdg. blkt = output buffer add. Column hdg. (or underscores) --+ output buffer 5 in "v" adv.~Add. for next column hdg. All column hdg. (or underscores) --+ output buffer? Underscores transferred yet? Adv. output buff. add. by 2010 (24 ) 8 Preset "u" of TP ~ Add. stored underscores Swi tchl~0~4"";;'I-oo-oo-o---r-10-0-000--'1 ~ Q Two space blkts ~ output buffer Set assem. blkt. add. = output buffer add. Dec. assem. blkt. add. by 1 ~ preset f()1'- 15t var. sym. Preset index Cl~ # variables/ blkt. - 1 CTI 1803 ® @ @ @ 35 RA CT FC2 36 RA PN4l FCII 37 [30000J PN40 PN40 ES ESI ES2 40 41 TP CA IA RJ TP 42 RA PN37 43 RA 44 TV A PN47 45 TP CT CA2 46 RJ CA 47 TP CAl [30000] 50 51 52 53 54 55 RJ OCI PN35 TP OC 0 0 0 0 XS54 56 TV CT6 PN60 57 60 RP TP 30007 XS44 MJ MJ MJ MJ PN4l 1 in "u" adv.~ running add. next yare Adv. assem. blkt. add. by 3 ~ add. next sym. XS3 yare sym. packed left W/77a fi 11 ~ input edi t rtn. Pack symbol to right with zeroS fill XS3 var. symbol packed right ~ output buffer 1 in "u" advance to address next yare symbol Adv. add. assem. blkt. by 2 in "v" ---+ add. for next add. entry Preset address for variable address entry Running add. for next yare ---+ conversion routine Convert octal add.~ XS3 W/zeroa on right Running address for variable ~ output buffer ES3 [30000] FC2 FClO CA3 ==> same blockette - same sheet ==> new section ==> new blockette - new sheet PO PN55 PN32 XS50 new blockette - same sheet Set up section hdg. to continue on new sheet Preset address section hdg. blkt. = output buffer add. ~ PN13 [30000] Non-subscripted~variables tinued CA PN6l 1S04 ~ sect. hdg. blkt. -- con- Constant Pool Section @ @ @ IA PO 0 SF 10 17 1 TU A ECI 2 3 LT QT 6 FC13 Q CT2 4 S 6 MJ RJ CT2 0 00 P06 yes P013 002 7 TU RC22 E014 10 RJ HC HCl 11 TV RC33 EF 12 RJ EC EC2 13 14 RJ LS MJ 0 POlS LSI PP IJ CA 1805 .1nlt. running add • const. pooi ----+ "un of A Init. running add. const. pool ----+ input edit routine jn for constant poo1~ Qv # const. in const. poo1---;. index C2 Is there const. pool? New page hdg. if required ~ output buffer Preset input buff. add. for 1st const. - 1 Constant pool hdgs.~ output buffer Preset ent. add. for const. pool hdgs. (W/cont. ) Edit const. pool & write on listing tape Locate 1st segment label blk. Segment Section TA @ @ PP CT [30000] TL PPI A PT yes EJ MJ TP RA TLl 0 XS7 PPI PP5 WV CT12 FC24 7 TU A PPII 10 11 12 RP TP RJ 30006 [30000] BF PP12 } CT16 BFl 13 14 RP TP CA ZZ30000 PQ DQ PQ PP15 0 1 2 TP EJ 3 4 5 6 TU Address seg. lab. blk. ~ttu" of NT 1st word label blk. ~ A 1st word label blk. = Z·s? i.e. is this end obj. prog.? 1st word label blk. = SEGMEN? Alarm 8 " @SEGME tt ~ 1st seg. no. word Adv. add. label blk.~ Add. seg. no. (3rd line) Preset add. seg. no. (3rd line lab. blk.) 3rd - 8th line lab. blk.~ temps. Build Ope File IV this seg. and # sentences ~"v" of index C5 } 1806 Program load III ~ core Preface Section IA PQ 1 TP TJ 2 DV CT16 FClOO FClOO Q 3 4 SA Q Q o Octal segment no. ~ Av 128 (1010) ~ seg. no.? Divide seg. no. by 128 (NB-.max. seg. no. = 6310) Tens digit seg. no. left 6 Two digit seg. no.~Av 5 SA FeiOI 6 Convert two digit:;oseg. o @ LQ o A PQ7 yes 6 6 7 SA FCII PQlO 14 10 AT XSIO CT13 11 RJ 00 001 12 SP CT17 25 13 14 ZJ PQ14 yes PQ26 no Tel TH3 TH2 TH MJ no.~ XS3 and position in A 15 AT RJ 16 17 RJ HC 1U CT22 HC23 ECI 20 TV ReM EF 21 22 TU RS RC ED14 ED14 } FC2 23 24 25 SP ST RJ CT23 FCI EC CT2 EC2 26 TP CT2l Q 27 QT FC23 A 30 1U RC24 FR2 31 TU RC40 PR14 32 ZJ PR yes PRI no CA PQ33 o Convert one digitlO seg. no. ~ XS3 and position in A NT~ [s~ • ..!!2.] 0 ~ 2nd seg. no. word Sheet hdgs. (seg. no. & pg.no.) ~ output buffer # blks Pref. (Term.) ---+ A in codeword position Is there Preface? Codeword ~G. T.H. Read Preface from corr. probe tape ~ input buffer Preface hdgs ~ output buffer Ini t. running add. Preface ~ input edit routine Preset ent. add. for Pref. hdgs. (W/continued) in edit rtn. Preset input buff. add. ~ init. add. - 1 in edit rtn. lines Preface ~ Av lines Preface - 1 ~ index C2 Edit Pref. and write on listing tape # lines partial bike this segment # # ---+ Q # lines partial blk. segment + Preface ~ Qu Preset initial add. Ope File IV (drum) in Ope File IV control routine Preset add. File list ~ limiting add. initially Is there partial blk? 1807 Sentence Section IA PR 0 SP FC2 6 1 AT CT20 ffil 2 3 4 RJ RS IR RC ED14 IR2 ED14 FC2 @ 5 1J CT5 PRlO yes ® 6 7 10 SP ZJ RJ CT17 25 PR37 yes PS35 no OD OD2 11 RA PR14 FC2 12 TJ RC40 PR14 13 RJ FR FRI 14 TP [30000] CT 15 RA PR14 FC2 lQ 17 TU TP A [30000] PR17 A 20 21 22 ST FC2 Q LQ TU Q Q 17 ECI 23 24 LQ TV Q Q 6 CT2 25 SJ PR32 PR26 26 27 TP TV CT RC4 EF 30 31 32 33 RJ TP TV HC 0 CT RC22 HC33 PR35 XT47 EF 34 RJ He HC5l @ @ @ TU MJ Set blk. count = 1 in A in codeword position to count part. blk. # blks. (incl. part. blk.) seg. + Pref.~ input fill buffer rtn. Fill input buffer } Preset input buff. add.~ init. add - 1 in edit rtn. Are there more sentences this segment? } Is there Termination? New page hdg. if required ---+ output buffer Adv. add. File list by 1 ~ add. next sent. no. Limi t add. fi Ie list ~ current address? Fill file list (core) from Ope fi Ie IV (drum) XS3 sent. no. from file list ~ temp. Adv. add. file list ~ add. of word with # lines & running add. of sent. # lines this sent.~ Au; running add. this sent.~Av } Decrease # lines sent. by 1 ~Au Running add. this sent. (or lib. rtn. ) ~ input edi t rtn. # lines this ~index C2 sent. (or lib. rtn.) (+) ==>sentence , (-) =>library routine (Ck.left most bitof INFO word) Sent. no. ~ hdg. Preset add. sent. hdg. W/cont. in edit routine Sent. hdgs. ~ output buffer XT3 Library routine name ~ hdg. Preset add. lib. rtn. hdg. W/cont. in edit. rtn. Lib. rtn. hdgs. ~ output buffer 1808 @ 35 RJ EC EC4 Edit sent. (or lib. rtn.) & wri te on listing tape 36 'l7 MJ AT CA 0 Trl PR40 PR5 TH3 Codeword to tape handler IA 40 TU PR40 5 PR41 Preset jn of repeat to trans. Dim. List -+ core 41 RP 42 'It' VI CA V,L [30000] DD PR43 PS DL 1 J 1809 Dimension list from drum -+ core Subscripted Variables (core) and Termination Section IA PS 1 RJ RJ OD TH OD2 2 SP CT23 43 3 4 LT ST 5 o TH2 o A CT2 TO FC1 RC13 6 TV PS5 EV7 7 TU 6 DS21 10 TV RC11 EV32 11 RJ HV HV3 12 RJ EV EVI 13 14 TO RS RC ED14 ED14 } FC2 15 TP XT14 XTll 16 TV RC10 EF 17 20 TP CT17 RC34 CT5 ECI o TO DS15 21 MJ 22 23 RA RJ XT11 OD PS34 FCI OD2 24 25 SP TJ CT23 FC31 o FC56 FC42 CT23 CT2 o Set section no. = zero in stored Term. hdgs. Preset add. for Term hdgs (W/cont) in edit rtn. # blks. Term.. ~ index C5 Init. running add. Term. buffer ~ input edi t rtn. PS31 yes 26 ST 27 TP 30 31 ST FCI PS32 CT2 32 33 RJ RJ HC EC HC41 EC2 34 IJ CT5 PS22 no 35 RJ IR m14 MJ Read Termination~ input buffer New page hdg. if required ~ output buffer # lines Term. /2 = # subs. yare this seg. --+- AL # subs. var. this seg. ~ Ar # subs. yare this seg.-l~ index Preset add. initial array of this seg. in Term. Preset Dim. List rtn. ref. ~ subs. yare (core) entry Preset jn to search Dim. List. in Dim. List rtn. Preset hdg. rtn. ref.~ subs. yare (core) W/cont. entry Init. subs. yare (core) hdgs. --+ Sect. hdg. blkt. Edit subs. yare (core) and write on listing tape Preset input buff. add. ~ini t. add.- 1 in edit rtn. Adv. section no. by 1 New page hdg. if required ~ output buffer # littes Termination ~Av 1718 > # lines Termination? (i.e. part. blk. Term. left?) Decrease # lines Term. by 1708 # lines full blk. Term ... 1---+ index C2 lines partial blk. Term.- 1 -+index C2 Termination hdgs. ---+ output buffer Edit block of Termination and write on listing tape All blks. Termination processed? Locate next segment label blk. # 1810 36 37 RP TP CA YY30000 DP PS40 PP PP "'I J Program load II ~ core 1811 End Listing Phase ® @ IA PT 0 1 2 3 TV TP TV RA CT6 CT6 PT5 PTI [30000] PT5 FC4 4 5 RP TP 30004 XT17 PT6 [30000] 6 RJ BA BAI 7 10 11 12 13 14 15 16 17 20 RJ TP RJ TP RJ TP RJ TP RJ BB TC7 TH2 TC2 TH2 FPI0 UP2 FP21 UP2 0 PT21 BB1 TH3 TH TH3 TH UP3 UP UP3 UP PT20 MS CA XS Preset avail. add. output buffer Fast feed 1 symbol ~ output buffer Preset avail. add. output buff. 108 in "v" adv. ~ output buff. add. for "end of listing" blkt. END~ OF~LISTING blkt. ~ output buffer Adv. Output Buff. add. by 24 8 (2010) in "un and "v" Terminate listing tape and rewind Rewind binary program tape Rewind corrected problem tape Parameter ~ uniprint Print: PROGRAM LISTING ON TAPE[-]. Parameter--+ uniprint Print: COMPILATION COMPLETED 1812 Build Ope File IV for Segment @> @) @ fi @ @ @ 0 1 2 IA MJ TP RJ BF 0 TC4 TH2 [30000] TH3 TH 3 4 TP EJ FB TL2 A BF6 5 MJ RP TP TV 0 34100 ND RC27 YP BFIO NL BF73 11 TV RC26 BF61 12 TV RC30 BG2 13 TP RC35 BG14 14 15 TP RJ TC4 TH2 TH3 TH 16 17 TP EJ FB TL3 ~G25 J 20 21 TU TP BF16 30000 BF21 Q 22 RA BF21 FC2 23 24 25 SP TJ TJ Q FC60 FC61 0 BG20 BF35 26 TJ FC62 BF37 27 TJ FC63 BF52 30 31 32 TJ TJ QJ FC64 FC65 BG21- BF41 BF45 BF76 + 33 34 35 36 TP RC15 0 RC16 0 A MJ TP MJ 37 TP R'e17 A~ CA BF40 6 7 10 Codeword ~ G. T.H. Read 1 blk. Ope Fi Ie III -+ fi Ie buffer 1st word fi Ie buffer ~A 1st word file buffer = FILE~3? (Op. File III entry label) Alarm 10 BG A BG 1813 Sentence No. (XS3) List ~ core Preset init. add. Ope File IV (drum) Preset init. add. statement buff. ( core) Preset init. add. routine buff. (core) Preset ini t. add. routine file (drum) Codeword --+G.T .H. Read 1 blk. Ope File III --+ Fi Ie buffer 1st word File buffer END~OF ? Yes~ end Ope File III this segment Preset init. add. File Buff. Ca llword (or Z's) from File buff. --+Q 1 in "u" adv. ~ ADD. of INFO. word assoc. W!callword Callword (or Z's) ~Ar 23000 > CW? (pseudo Ope sentence?) 25000 > CW? (equat. for subs.var.?) NB ~ end of tape callword not in Ope File III 26000 > CW? (equat. for non-subs. var.?) 30000 > CW? (statement of main prog.?) 50000 > CW? (pseudo operation Hd~?) 60000 > CW? (library routine?) ( +) ~ 77--CW; (- ) => word of Z's (end of information) = Build Ope File IV (cont.) @ @ 40 41 IA BF40 MJ 0 FC50 QT BG A Designating bits of pseudo Ope CW~A 42 43 LT SA 36 RC20 44 45 46 MJ TO RA 0 BF2l [30000J 47 LQ 50 51 52 53 54 55 56 57 TP QT SA 60 TU 61 62 RA Q Designating bi ts ~ Mutt of Ar Add. base add. pseudo Ope sect. in sent. no. list A 0 BGI BF46 FC34 Add. info. word ~ ·utl of NT Lib. rtn. ind. (768)~ Ope code of info. word Designating bits lib. rtn. G.W. 41 ~Qu @ @ MJ TO TP TJ MJ TP RG21 0 BF2l [30000] FC25 0 FC54 RC15 A A BG BF53 A BF56 no BF76 A 0 BF6l [30000] BF6l [30000] FCI BF61 BF21 [30000] Fel BF65 BF65 [30000] BF6l Q A BF76 no BF74 [300001 FC56 63 64 65 66 TV 67 70 71 72 73 74 TP QT TJ RP TP RA A FC32 RG36 30170 SB BF73 75 TV RC26 BF6l 76 RA BF21 FC2 77 TJ RC23 BF2l yes MJ 0 BFlOl BF14 100 TO TP AT CA Add. info. word ~"u" of NT Info. word ~A Does info. word have "IP" flag? Yes ~ omit from file Last 3 digits of G.W. ~ Au Add. base address statements in sent.. no. Ii st Add. of XS3 sent. no. corresponding to CW ~ "u" of NI XS3 sent. no. ~ statement buffer Adv. add. in stmt. buff. by 1 in "v" Preset next add. stmt. buff. Info. word ~ stmt. buff. Information word ~ stmt. buff. Adv. add. in stmt. buff. by 1 in "v" 1814 Next add. in stmt. buff.~ Av Statement buffer full? Stmt. buff.~ Ope File IV (drum) Adv. add. Ope File IV (drum) by 1708 Preset add. stmt. buff.~ init. add. Adv. Address file buff. by 1 in 'tu" More entries in file buff. to be processed? Build Ope File IV (cont.) @ ® @ ® ~ IA BG 0 QA FC54 1 TO 2 3 TP RA A [30000] BG2 BG2 [30000] FCI BG6 BG6 [30000] BG2 Q A BF76 no BG15 [30000]] 4 TO 5 6 7 10 11 12 13 14 TV TP TP QT TJ RP [TP BF21 BG2 [30000] FCI A FC32 RC37 30170 RB 15 RA BG14 FC56 16 17 20 21 TV MJ ZJ RJ RC30 0 BF33 TH2 BG2 BF76 BF76 TH 22 23 TP EJ FB TL3 A BG25 24 25 26 27 30 31 32 33 34 35 36 37 AT MJ RS SA TO TV RP TP RS SA TO TV RP CA Base add. + last 3 digits CW XS3 sent. no. ~ Au A XS3 sent. no.~ routine buffer Adv. add. in routine buff. by 1 in ttv" Preset add. info. word Preset add. routine buff. Info. word -+ routine buff. Adv. add. routine buff. by 1 in "v" Next add. in routine blArr • -+ Av Routine buff. full? Routine buff.~ routine file (drum) Adv. add. routine file (drum) by l70~ Reset YQ RC26 17 BG31 BG32 BG33 [30000] BG2 FC57 A BG14 [30000] BG40 RC30 17 BG37 BG40 BG41 nit. add. routine buffer Read 1 blk. Ope File III ~ file buffer 1st word file buffer = END~OF ? Yes ~ end Ope file III this segment Alarm 10 } 0 BF61 FC57 A BF73 [300001 S8 = add. Part. stmt. buff. ~ Ope File IV (drum) 1815 Build Ope File IV (cont.) IA BG40 40 TP RB 41 42 SP SA BG32 BF61 0 0 43 44 TV SS A FCI BG54 17 45 TU A BG46 46 RA [30000] FC24 47 50 RS AT BG14 BG2 RC35 Q 51 SA FC57 17 52 53 54 TO RP TP A [30000] RF 55 RS BG54 RC27 56 QA FC32 A 57 LT 43 CT5 60 MJ CA 0 BG61 BF [30000] Part. routine buff.~ routine file (drum) Add. Ope File IV~ Av Adv. add. Ope file IV by # lines part. stmt. buff.---+ Av Preset add. Ope file IV Add. of info. word for last stmt. of seg. ~Au Preset drum address of last stmt. info. word Adv. # lines last stmt. Rtn. by 2 in "uti to count "Ip" and blank # lines routine file ~ Av # lines routine file + # lines part. buff. = total # lines routine file jn to trans. routine file to Ope file IV~ Au BG53 BG55 } [30000J 1816 Routine file (drum) ~ Ope file IV (drum) # lines Ope file IV (drum) before addi tion of routine fi Ie ~ Av # lines Ope file IV + # lines routine file = tota 1 ~ lines of Op. file IV ~Q (# lines Ope file IV)j2 = # sentences this segment ~ "v" of C5 Locate 1st Segment Label Blk. on Obj. Prog. Tape (@ @ 0 1 2 3 4 5 6 7 10 IA LS MJ TP 0 [30000] FC36 RC42 CT2 CT TCI5 TH2 TH3 TH LB ~ III TP r J EJ lTP TLI IJ CT2 MJ CA LSil 0 368 --+ index C2 Preset initial add. seg. lab. blk ~ 1st word list buffer 1 yes] LS4 no BRIO 1817 Read 1 bike Object Prog. tape ~ list buffer 1st word list buffer --+ A (A) = SEGMEN ? (i.e. is blk. 1st seg. label blk.?) 378 blocks checked? Alarm 8 Check Label Corrected Prob. Tape (@ IA CL 0 1 MJ TP 0 FC24 2 TU RC42 CL3 3 TP [30000J A 4 5 RP EJ RA 20006 TL5 CL3 CL6 CL FC2 [30oo0J Q (S.t. go back to begin loop 238 times) Preset "uH of NI ~ Ini t. add. input buff. Next wcrd from corr. prob. ti tIe Switch~Q blkt.~A 6 7 10 J MJ CA Is this partial corr. probe title? Adv. add. in title blkt. by 1 in tlu" Was this last word in title blkt.? Alarm. 10 CLIO yes CL3 no 0 YV CLII 1818 Page Number Routine TJ\ @ 0 1 2 3 4 ND .Ll't. 1 ,1.. MJ 0 GTII FG12 XS2 NP4 [30000] Q A NP20 yes [30000] NP25 yes [30000] TP QT TJ RJ 5 6 7 TJ RJ FC13 XS4 NP7 10 11 QT TJ FG14 XS6 A NP27 yes 12 13 14 15 16 17 20 21 22 23 24 25 26 TP TP MJ TP TP MJ XS17 XS20 0 XS13 XS14 0 GTII 0 XS15 XS16 0 GIll 0 CTlO CTII NP30 CTlO CTII NP30 FCI NP30 CTlO GTII NP30 FC15 NP3Q 27 RA CTll FCl6 30 TP FC5 CT7 31 MJ CA 0 NP32 NP 01' -,;- MJ RA MJ TP TP MJ RA A 2nd page no. word ~ Q Last digit page no. ~ A 9 in XS3 > last digit page no.? One shot j wnp (1st time ~ Pn15 t succeeding times~NT) last two digits page·no~~ A 99 in XS3 > last two digits page OO? One shot jump (1st time ~ Pn22 ; succeeding times ~ NT) Last two digits page no.~A 999 in XS3 > last three digits page no.? ~~~GON ~lst page no. word TINUED ~ 2nd page no. word ~~~~~P ~ AGEAlO~2nd 1st page no. word page no. word Adv. page no. by 18 ~~~~P A~lst page no. word GE~1 0 0 ~2nd page no. word. Advance next to last digit of page number by one octal and change last digit to zero in XS3 Advance third digit from right by one octal and change last two digits to zero in XS3 Reset line count to four for page number line 1819 Ope File IV Control Routine 0 1 2 MJ RP TP FR 0 30170 [30oo0J 3 RA FR2 4 TU IA @ 5 MJ CA RC25 0 FR6 [30oo0J FR3 FL } FC55 Fill file list in core from Ope Fi Ie IV on drum Adv. Ope File IV drum add. by 1708 in "u H Preset XS3 sent. no. add. ~ ini t. add. file list PR14 FR 1820 Dimension List Search Routine @ @ @ IA DS 0 1 MJ 0 0 30000 [30000J 0 2 3 4 0 0 TP 5 RA 30000 30000 [30000] DS4 30000 0 DSl FC2 6 TU 7 10 TP AT A [30000J FC2 DS1 052 US4 11 12 13 SP ST A [30000J IlSl DS12 0 DS3 0 [30000] DS Q FC23 Q FC23 [30000] DL USl 11 CT15 EP DS23 Q DS2l DS22 A [30000] FC2 11 0 0 DS21 DS2 0 TO 14 15 W 16 11 20 21 22 (]I LQ 23 24 25 26 27 30 TP QT RP EJ SN SA SA TO TP SA 31 32 33 SP ST A [30000] CT15 DS32 0 DS3 34 TJ FC11 IS44 35 TJ FCI02 DS4l 36 RA DS15 FCI03 RS CT2 US40 FCIO 37 TU CA Subs. Tar. (core/drum») Add. in "u" Output Subs. yare XS3 symbol Modulus in "u" Drum address ~ output Adv. add. in Dim. List by 1 --...::.. XS3 symbol .L -- ~I'II'I Q'\A\A. XS3 symbol --+ output Adv. add. in Dim List by 1 ~ add. for next drum add. Drum add. for next array --;. Au Drum add. next array-drum add. curr. array=modulus ~ output ~Exit Core add. of array ~ Qu, drum add. of array~Qv Core add. of array -+ output Drum address of array to "u" of A Alarm 1 Is drum address in modified Dimension List? - jn+r --+ tlu" of A +r ~"u" of A DL+r (add. of XS3 symbol) ~ Au Preset NI XS3 symbol-+ output Adv. add. in dim. list~add. for next drum add. Preset NI Next drum add. in dim. list ~ Au Next drum add.-drum add. current array modulus ~ output 100008 > Modulus? Yes ====> 1 repeat "TP" in Termination 117118 > Modulus? Yes -==> 2 repeat "TP"'s in Termination 6 in "un advance ~ address of next array transferred by Termination Decrease index by 2 in "v" = 1821 @ 40 41 @ 42 43 44 45 IA DS40 MJ RA 0 DS15 RS CT2 MJ 0 RA DS15 FCI DS FC24 MJ 0 OS CA DS46 DS Advance by 4 ~ address of next array trans. by Termination Decrease index by 1 in "v" FC37 Advance by 2 ~ address of next array trans. by Termination 1822 Input Buffer Routine IA @ @ m 000100 [30000] 30000] SP TJ ml FC7l 0 ml0 yes 4 ST FC66 IRl 5 TP TC12 TH3 6 RJ TH2 TH 7 10 MJ AT 0 TCII TH3 11 RJ TH2 TH 12 13 14 15 TP TP SJ FC34 0 IRI m26 yes IRI IR A IR16 no 16 SP CT17 25 17 SA IRI 0 20 AT TC6 TH3 21 RJ TH2 TH 22 TP TClO TH3 23 RJ TH2 TH 24 TP RC CT 25 26 MJ SP 0 CT17 IR 25 MJ 0 m20 CA IR30 0 MJ 1 [0 [0 2 3 0 # blks. seg. + pref. in codeword position # blks. sego + pref. ~ A Max. # blks. input buff. + 1 > # blks. seg.+pref. still on tape? Decrease Blk. count in input line by # blks. full buffer Codeword to read Obj. Prog. tape ---+ G.T.H. Fill input buffer with blks. seg. + pref. ~ exit Codeword to read Obj. Prog. tape Input: m ~G.T.H. ~ @ 27 MJ Remaining blks. of seg. +pref. ~ input buff. Neg. no. ---;. input line ~ exit Input line --+ A All blks. seg. + pref. read to buffs (i.e. tape positioned for next seg.) # blks. term. ~ A in position for codeword # blks. term. + # blks. pref. not read to buff.~A Codeword to move forward obj. prog. tape ~ G.T.H. Move forward obj. prog. tape ~ begin next seg. lab. blk. Codeword to read obj. prog. tape ~ G.T.H. Read next segment label blk. ~ 1st blk. input buff. Preset add. 1st word label blk. ~ Init. add. 1st blk. input buff. # blks. term.~A in position for codeword 1823 Advance Output Buffer Address Routine @ <@ (@ IA BA 0 1 MJ RA 0 CT7 [30000] FCI 2 RA CT6 FC6 3 TJ RC4l BA yes 4 RA CT14 FC5 5 TJ FC73 BAlD yes 6 TV RC7 OD4 7 TP Fe CTl4 10 11 12 TP RJ TH3 TP TC16 TH2 RCI CT6 13 14 RP TP 10740 XSli BA DB CA BA15 TH } 1824 Exit Adv. line count by 1 in "v" ~ next avail. line no. Adv. output buff. add. by 248 (2010) in "u" & "v" Limiting output buff. add. > Current buff. add? Adv. listing tape block count by # blks. (4) output buff. 25308 (1368l0>'>curr. # blks. on listing tape? Set switeh®~@ (end current listing tape at end next page) Listing Tp. blk. count = zero to render test on blk. count ineffective Parameter ~ G.T.H. Output Buffer ~ listing tape Preset output buff. add. ~ ini tial value Fill output buff. W/XS3 space characters and exi t Terminate Listing Tape Routine IA @) BB 0 MJ 0 [30000J 1 2 TV TP CT6 XT37 BB2 [30000] 3 RA CT6 FC6 4 ST RC1 Q 5 QT FC32 CT6 6 TP TC20 Q Exit Preset output buffer address Fast feed 1 & printer stop ~ output buffer Adv. output buff. add. by 248 (2010) in "un & "v" # words in partial output buff. ~ !!:u" & !tv!! of Q # words in partial output buff. ----+ "v" of A & temp. 6 Codeword to write 1 blk. output 7 TJ FC31 BB13 buff.~Q 1718 > # words 10 RA Q FC72 11 RS CT6 FC56 12 13 14 MJ TP 0 Q RJ TB2 BB7 TH3 TH TP RJ MJ CA TC17 TH2 0 BB20 15 16 17 partial output buffer? Adv. count b1ks. in part. output buffer? Decrease # words part. output buffer by 1 Parameter ~ G.T.H. Partial output buffer tape TH3 TH Rewind listing tape BB 1825 ~listing End Current Listing Tape at End of Page @@ @ IA BD 0 1 2 3 TV CT6 TP TV RA XS CT6 BD5 BDI [30000J BD5 FC5 4 5 RP TP 30014 XT23 BD6 [30000J 6 RJ BA BAI 7 RJ BB BB1 10 TP FC CT14 11 RJ BA BA12 12 TP FP3l UP3 13 RJ UP2 UP 14 MS 0 CA BD15 Preset avail. output buff. add. Fast feed 1 ~ output buffer Preset avail. output buff. add. Adv .. output buff. add. ~ add. for MOUNT!::::. NEXT !::::. LISTING Ii TAPE, etc. } } OD5 1826 MOUNT !::::.NEXT !::::. LISTING ~ TAPE ~ ON ~ PRINTER. ,etc. ,~ output buffer Adv. output buff. add. by 248 (2010) in HUH & "v" Terminate current listing tape and rewind Reset count of blks. on listing tape = zero Fill output buffer with XS3 space characters Type: CURRENT LISTING TAl'E FULL Pur NEW 1500 FT. TAPE ON SERVO_ START TO CONTINUE LISTING. < . Output Control Subroutine IA OC [30000] 0 MJ 0 1 2 IJ RJ CT2 BA OClO BAl 3 RA OC FCI 4 5 TP TJ CT7 FC67 A OC2l no 6 7 10 TV 002 OC IJ RC6 0 CTI 11 RJ BA BAI 12 13 TP TJ CT7 FC70 A OC17 no 14 RA OC FClD RJ @ 15 16 17 RA 00 0 OC ODI OC FCII @ 20 21 RJ 0 BA OC BAl 22 RJ BA BAI 23 MJ CA 0 OC24 OC @ Are there quan. left this section? No;adv. output buff. add. by 2010 and line count by 1 Adv. exit add. by 1 in "v" ~ new section Line count ~A Was this 55th line on sheet or beyond when new @ction next MJ MJ MJ Set OC no switch®~ WaS this last entry in blkt? No =::::> same blkt. - same sheet exit Yes; adv. Output buff. add. by 2010 and line count by 1 Line count ~ A ~as this 63rd line on sheet or beyond when same section next Yes; adv. exit add. by 2 in "v" ===> new sheet exit New page heading ~ output buffer ~Exit Adv. exit add. by 3 in "v" ~ new blkt.-same sheet exit Adv. line Adv. line 1827 output buffer by 2010 and count by 1 (space blkt.) output buffer by 2010 and count by 1 (space bIkt.) Page Heading Control Subroutine t~ ®® @ IA 00 MJ TV [30000] 002 [003] 00 [ODS1 4 RJ 0 RC6 002 0 004 0 1 2 3 RJ MJ Set switch ® ~@ SWitch@ Switeh@ B1 = 005 B2 = BD Adv. page no. Preset add. 1st seg. no. word = avail. output buff. add. 5 RJ NP 6 TV CT6 NPI 0010 1 10 RP IP 30002 CT12 OD11 } [30000J 11 RA ODIO FC11 12 13 14 15 TV RP RJ A 30002 CTIO BA OD14 OD15 [30000] BAI 16 RJ BA BAI 17 RJ BA BAI MJ 0 OD21 OD 20 TP CA } 1828 Segment no. words ~ sheet hdg. blkt. 22a in "v" adv.~ add. for 1st page no. word Preset add. for 1st page no. word Page Adv. line Adv. line Adv. line no. words --+ sheet hdg. blkt. output buff. add. by 2010 and count by 1 (Sheet hdg.blkt.) output buff. add. by 2010 and count by 1 (Space blkt.) output buff. add. by 20 O and count by 1 (Space blkt. J Convert Octal Address to XS3 0 1 2 @ 3 4 (@ @ @ ~ !A CA MJ 0 [0 0 30000 30000 [30000] 30000 30000] RJ LT CA30 6 CA22 CAl MJ 0 CA30 0 CA CA22 CAl 0 FC26 CA30 0 CA 6 CA23 CAl == Output XS3 address Input Octal address in "UN W/zero (octal) fill Convert address XS3 add. W/octal zeros on right ~ output 5 6 7 RJ 10 11 12 13 SP RJ LT 14 15 RJ 0 CA30 CA CA22 16 SA XS5 6 17 LT 0 CAl TP LQ XS3 0 FC FC34 CA2 CA2 CA A CT3 3 25 QA RC43 A 26 27 SA LQ FC74 CT3 6 1 30 QJ CA24 no [30000]yes CA CA31 20 21 22 23 24 LT MJ MJ MJ TP TP XS3 address W/octal zeros on left ~ output XS3 hyphen ~ rightmost digits AL Converted address W/hyphen left ~ output Converted address ~ AL packed right Add. close parent. following XS3 address XS3 address W/close parent.~ 1st output Open parent. ~ 2nd output Zeroize A Set index = 4 Next digit octal input add. ~ Qop Add. next digit to be con- Convert verted ~ Aop Ad{ Convert digit to XS3 and ress shift~AL { All 5 digits converted? Yes j 1829 sub-exit. XS3 address in "A" left packed right Convert Octal Word to XS3 ® (@ TA CW MJ 0 1 2 3 4 5 0 0 0 0 TP 0 30000 30000 30000 30000 FC47 [30000) 30000 30000 30000 30000 CWl 6 7 10 11 12 13 14 TP TP TP TV TP RS SP FC25 FC25 RC14 FC35 FC46 CW17 CW4 CW2 CW3 CW20 CW17 Q FC27 3 15 LT 10000 CW4 16 LT 0 A 11 SA FCll [30000] 20 [AT QJ QJ RA CW1] CW22 yes CW13 no CW23 no cw yes FC3 CW20 21 22 23 24 25 TV MJ CA CWI FC36 0 CW26 CW17 CW13 1830 Output - XS3 Ope code Output - XS3 "U" add. Output - XS3 "v" add. Input - octal computer word ~~~~ W/zero fill ~ 1st word output ~ W/zero fill ~ 2nd word output ~W/zero fill ~ 3rd word output Preset add. 1st output word Preset shift count --+ 148 swi teh ~ Q 130 I 30200 I 00000 I Decrease shift count by 6 Next octal digit input word ~ 1st digit AL Shifted input word (Ar ) ~ input line Digit to be converted--+rightmost digit At Cony. octal digit --+ XS3 and shift to position in A Converted digit ---+ output word Output word full? Entire octal input word converted? 1 in HUM & "v" adv. ~ add. next output word Reset shift count ~368 Heading Rtn. for Const. Pool,Preface,Sentence and Termination (@ ~ @ @ @ @ (§ IA He 0 MJ I TP 0 XS70 2 TV CT6 3 4 5 RP TP TP 30003 XS63 XS71 6 TV CT6 7 10 RP TP 30005 XS63 [30000] XS65 Setup const. pool sect. hdg. wlo continued Preset add. sect. hdg. blkt output buffer = HC4 HCll [30000] XS65 CONSTANTA POOL ~ sect .. hdg .. blkt .. Setup Const. Pool sect. hdg. wi continued Preset add. sect. hdg. blkt. output buffer = HelO HCll [30000] CONSTANT~ POOL - CONTINUED sect. hdg. blkt. Adv. output buff. add. by 4010 (508) ~ 11 RJ OC 12 13 14 15 TV RP TP RJ CT6 30002 XS56 16 17 20 21 22 23 OC21 BA HC14 HC15 [30000] BAl TV RP TP RJ CT6 30002 XS6l OC HC20 HC21 [30000] OC21 MJ TP 0 XS76 HC XS73 24 TV CT6 HC26 25 26 27 30 RP TP TP TV 30002 XS72 XS77 CT6 HCll [30000] XS73 HC32 31 32 RP TP 30004 XS72 lICll [30000] 33 TV CT6 HC35 34 35 RP TP 30004 36 TV CT6 HC40 37 RP CA 30006 IICil XT ADDRESS ~ col. hdg. blkt. Adv. output buff. add. by 2010 (248) Underscores ~ output buffer Adv. output buff. add. by 4010 (508) Setup Preface sect. hdg. W/O continued Preset add. sect. hdg. blkt put buff. add. =out- PREFACE ~ sect. hdg. bikt. Setup pref. sect. hdg. W/continued Preset add. sect. hdg. blkt. output buff. add. = PREFACE ~ CONTINUED ~sect. hdg. blkt. Preset add. sect. hdg. blkt. output buff. add. = HCll [30000] SENTENCE NUMBFB [----~sect. hdg. bikt. Preset add. sect. hdg. blkt. = outp-ut buff .8dd~ HC40 1831 Heading Routine (Cont.) IA HC40 40 TP XT @ 41 TV CT6 TP (§ 42 43 44 45 RP TP XTl5 30005 XT6 TV CT6 XT12 HCII [30000] HC50 46 47 50 TP RP TP XTl6 30006 XT6 XT12 HCll [30000 ] 51 TP XT52 XT50 52 TV CT6 HC54 53 54 RP TP 30005 XT44 HCll [30000] 55 56 TP XT53 CT6 XT50 HC60 57 60 RP TP 30006 HCII [30000] ® @ TV CA IT" SENTENCE NUMBER~---~ CONTINUED ~ sect. hdg. blkt. Preset add. sect. hdg. blkt. Output buffer add. [30000 ] = HC44 TERMINATION ~ sect. hdg. blkt. Preset add. sect. hdg. blkt Output buffer add. Setup stored hdg. I/continued TERMINATION (SECTION--l-CONTINUED ~ section hdg. blkt. Set up library routine hdg. W/O continued Preset add. sect. hdg. blkt. Output buffer add. = = LIBRARY ROUTINE - - ~ sect. hdg. blkt. Set up lib. rtn. hda I/continued Set add. sect. hdg. blkt. = output buffer add. LIBRARY ROUTINE [----J -- CONTINUED ~ sect. hdg. blkt. HC6l 1832 Heading Routine for Subscripted Variables IA HV MJ 0 XS30 [30000] XS25 @) 0 1 @ 2 3 TP 0 XS32 HV4 XS25 @ 4 ' TV CT6 HV6 5 6 RP TP 30005 XS2l HV15 [30000] 7 TP XS3l XS25 10 11 MJ TP 0 XS33 HV12 XS25 12 TV CT6 HV14 13 14 RP TP 30007 XS2l HV15 [30000] 15 TO RC4 HV23 16 17 20 RJ TP TV OC FC20 CT6 OC21 Q HV23 21 22 23 RA RP TP HV23 30004 [30000] FCI HV24 [300001 24 RA HV23 FC2l 25 QJ HV26 ye s HV22 no 26 27 QJ RJ HV27 no BA HV33 yes BAI 30 TO RC5 HV23 31 32 33 34 TP MJ RJ Q HV20 OC2l Two space MJ FC22 0 OC 0 Column hdg. (or underscores)~ out--.· put buffer 5 in MV" adv.~add. for next col. hdg. (or underscores) All col. hdgs. (or underscores) ~ output buffer? Underscores transferred yet? Adv. output buff. add. by 2010 (248) Preset "uti of TP ~ add. of stored underscores Swi tch 104 I 00000 I 00000 I ~Q HV ~Exit CA HV35 '-.J @ @ @ @ @ TP MJ Set up section hdg. for drum initial Set up section hdg. for core initial Set add. sect. hdg. blkt. = Output buffer add. SUBSCRIPTED VARIABLES [lllUM] CORE ~ section hdg. blkt. Set up section hdg. for drum W/ continued Set up section hdg. for Core W/continued Set add. sect. hdg. blkt = Output buffer add. [~:] SUBSCR IPTED VARIABLES - CONTINUED ~out. buffer Preset "u" of TP ~ add. of stored col. hdg. Two space blkts ~ Output Buffer Swi tch 106 I 00000 I 000001 ~ Q Preset add. col. hdg. blkt. = Output buffer add. 1 in MV" adv. ~ add. 1st col. hdg. 1833 blkts.~ output buffer Edit Subs. Var. and Write on Listing Tape @ @ @ § @ IA EV 0 MJ 1 TV 0 CT6 2 RS EV12 FC5 3 TP Fell CT1 4 RA EV12 FC2l 5 SA FCI 0 6 7 TV RJ A 10 11 SP SA XS11 DS2 12 LT 0 [30oooJ 13 TP A [30000] 14 RA EV13 Fe1 15 TV A EV20 16 TP ISI CA2 17 RJ CA CA6 20 21 22 TP RS AT CAl DS1 DS3 [30000] FC2 CA2 23 RJ CA CAll 24 25 26 RA TV EV20 A CAl FCI EV26 [ 30000] 27 30 31 32 RJ OC 0 0 HV OCI EV4 EV [30000] 0 EV34 EVI 33 TP MJ MJ RJ MJ CA DS [30000J EV12 Set assem. b1kt. add. = Output buff. add. Dec. assem. b1kt. add.~Preset for 1st sym. Preset index Cl ~ # variables/ blkt. - 1 Adv. assem. b1kt. add. ~ add. 1st part next sym. 1 in ltv" adv. ~ add. last part next symbol Preset add. for last part symbol Dimension list rtn. DSl := Add. of array in "u·· DS2 ~ XS3 sym. DS3 = modulus -1 in nu" XS3 space char. ~ AL 1st part XS3 sy.m.~ AI; last part sym. --+Ar 1st part XS3 s~.~ output buff. (assem. blkt.) Last part ]53 sym.~ output buff. (assem. blkt.) 1 in "V" adv.~ add. for initial add. entry Preset "un of TP ~ add. for init,... ia1 add. entry Ini tial add. for array --;. cony. routine Cony. add. (CA) W/O hyphen. (CAl= XS3 add; packed to right) Add. entry~ assem. blkt. Init. add. of array - 1~ Au Final add. of array ~ conv. routine Conv. address (CA) tl/hy,ken (CAl: XS3 add. packed to riGht) ADv. assem. blkt. add. by 1 in "V" Next assem. blkt. add. ~ "v" of TP Last address for array ~ assem. blkt. ~Output control Same hlkt.;same sheet New section New blkt.; new sht . ~ heading W/continued ~ output buff. New blkt.;same sht . EV13 [30000] 44 22 1834 Edit Coding or Constants Routine IA @ @ 11 @ @ EC 0 0 MJ 1 2 3 4 5 0 TP MJ 0 TP TV RC31 CT6 0 ED11 RC5 EDll EC16 6 RA EC16 Fe! 7 10 TP ECI FC33 Q QT 11 12 13 14 15 16 17 20 TP ZJ RJ TV TP TP TP TV [30000] RC32 Exit next section Initial running add. this section Set MJ to by-pass TJ [30000J = CT15 CA2 Eel ECl3 no EC37 yes CA CAl5 EC15 CT6 CA2 [30000] CAl CTl5 CT6 [30000] A EDl7 Set TJ for input buff. check Preset add. assem. b1kt. output buff. add. Adv. assem. blkt. add. -+ add. for add. entry Running add. 1st word this section Last digit initial add. ~ Itu" temp. 2 and A Ini t. add. ~ input conv. routine Last digit init. add. zero? Convert octal address W/parents. = Open parent. (if 5 digit add. W/ parents) or zeros ~ output buffer XS3 address ~ output buffer Last octal digit initial add.~ A Preset aSsem. blkt. add. output buffer 4 > last digit ini t. add.? Zero ~ b1kt. index C4 (i.e. odd line ~ next line has add.) Dec. last digit of add. by 4 in "UK = 21 22 TJ TP FC37 FC EC25 yes CT4 23 SS FC37 0 24 25 MJ 0 TP Fel EC26 CT4 26 27 30 TP TJ RA Eel FC40 EDl7 Ee33 yes FC35 TP ~A @ @ 31 32 33 34 35 36 37 40 Q FC eTI MJ 0 ED6 TJ RA FC24 ED17 ED yes FC76 TP Fel MJ 0 RJ CA CTI ED6 CA3 MJ 0 EC41 CA Set blkt. index C4 ~ I (i.e. even line ~ next line has no add.) Init. add. from input ~ Qu 3 > last digit add.? Adv. assem. blkt. add. ~ Preset for last entry in blkt. Preset index for 1 entry in blkt. 2 > last digit add.? Adv. assem. blkt. add.~ preset for 3rd entry in blkt. Set index for 2 entries in b1kt. Convert octal address W/octal zeros on right EC16 1835 Edit Coding or Const. (Cont. ) IA TJ RA ED FC2 ED17 ED4 FClO TP @ 2 3 4 RS FClO 0 ED17 CTI ED6 FCII @} 12 5 6 TP QT FCII FC41 CTI CT15 @ 7 RA ED17 FC21 10 11 12 13 RA [TJ RJ ED14 RC2 TO RC FC2 ED14] m2 ED14 14 TP [30000] CW4 15 16 17 RJ RP CW TP 30003 CWI CW5 ED20 [30000J 20 21 22 23 24 RJ OC MJ MJ MJ 0 0 IJ CT4 OCI ED7 EC EF ED46 25 RA CT15 FC43 26 27 31 TP QT ZJ RJ FC75 Q A A ED40 no ED31 yes BA BAl 32 33 34 RJ TP TJ SA CT7 FC70 BAl A ED40 no 35 RJ OD ODl 36 37 TV EF ED37 [30000] @ @ @ 0 0 1 30 @ MJ m 0 RJ He CA ED40 1 > last digi t add.? Adv. assem. blkt. add.~ Preset for 2nd entry in blkt. Set index for 3 entries in blkt. Dec. assem. blkt. add.~ Preset for add. 1st entry in blkt. Set index for 4 entrys in blkt. 1st four digi ts ini t. add. -+ Temp. 2 (add. ctl:..) Adv. assem. blkt. add. by 5 in "v" ~ add. for next entry Adv. input buff. add. by one Limiting value> input buff. add. Fill input buff. from tape Preset input buff. add.~ initial add. Next word from input buff .~ConY'. routine. Convert octal word ~ XS3 XS3 entry ( 3 words) ~ assem. blkt. ==+ Output control ~ same blkt.-same sheet New section New blockette-new sheet New blockette-same sheet ~ add. entry required next blkt? Yes; adv. ctr. (temp. 2) by 10e in "u" Mask~ Q Last 2 digits add.~ A Last two digits add. = zero? Adv. output buff. add. by 2010 (24{3) (space blkt. ~ buff.) Space blkt.--+ output buffer Line count ~ A Was 2nd space blkt. 63rd line on sheet or beyond New pg. hdg. blkt. ~ output buff. and reset line count 4~ = Sect. hdgs. W/continued buffer 1836 ~ output Edit Coding or Const. (Cont. ) @ @ IA ED40 40 TV CT6 ED44 41 RA ED44 FCI 42 TP CT15 CA2 43 RJ CA CA3 44 45 TP TP CAl FCI [30000] CT4 46 TV CT6 ED17 47 RS 50 51 TP MJ CA ED17 FCII 0 ED52 Preset add. assem. blkt.= output buff. add. Adv. assem. blkt. add. --+ add. for XS3 add. entry Octal address ---+ input conv. routine Convert octal address W/octal zero on right XS3 address entry --+ output buffer Set blkt. index C4 ~ 1 (No add. entry next blkt.) Preset assem. blkt. add. = output buffer add. Dec. assem. b1kt. add. ~ preset for add. 1st entry in blkt. Preset index Cl --+ # entries/blkt. FCII CTI ED7 Edit Coding or Const. (new blkt.-New Sheet Sect.) @ 0 1 2 3 IA RJ EF He [30000] IJ RA CT4 CT15 ED46 no FC43 MJ CA 0 EF4 ED40 Section heading W/continued ---+ Output buffer Add. entry required next blkt? Adv. address counter (temp. 2) by 10 in "u" 8 1837 Edit XS3 Variable Symbol for 77's @ IA ES 0 1 MJ 0 0 30000 [30000] 30000 2 0 30000 30000 CT3 ESI 6 Output-XS3 symbol packed right W/OS fill Input-XS3 symbol packed left W/778 fill Set index C3 = 5 Zero ~ output line Next XS3 symbol~rightmost digi ts of 3 TP 4 TP 5 LQ FC21 FC ES2 6 QT FC12 A 7 10 11 12 13 14 TJ FC12 0 ESI ESI CT3 0 ES15 ESII yes ES 6 ESI ES5 no ES Q MJ LQ AT IJ MJ CA 1838 Next XS3 symbol ~ rightmost digi ts of ~ 778 > symbol? Exit on first 778 encountered Symbol ~ rightmost digits output All XS3 char. of symbol checked? Tape Handler Codewords 0 IA TC 5 0 001 05 LB Read 1 blk. corrected probe tape list buffer Read [0000] blks. corrected probe tape ~ input buffer Rewind corrected probe tape Move forward [0000] blks. corrected probe tape Read 1 blk. corrected probe tape --+ fi Ie buffer Read [0000] blks. corrected probe tape--+ dim. list region Move forward [0000] blks. obj. prog. tape Rewind obj. prog. tape Read 1 blk. obj. prog. tape ~ Input buffer Read [0000] blks. obj. prog. tape ~ input buffer Read 9 blks. obj. prog. tape ~ input buffer Read 7 blks. obj. prog. tape ~ list buffer Read 5 blks. obj. prog. tape ~ list buffer Read 1 blk. obj. prog. tape ~ list buffer Write 4 blks. output buff. on listing tape Rewind listing tape Write 1 blk. output buff. on listing tape Object prog. Uniservo 3 for 5 Servo layout Object prog. Uniservo 6 for 7 Servo layout Read [0000] blks. corrected probe tape --+ list buffer ~ 1 5[0 000] 05 m 2 3 1 0 3[0 000 000] 05 05 0 0 4 50 001 05 FB 5 5 [0 000] 05 DL 6 3[0 000] [77] 0 7 10 10 5 0 000 001 [77J [77] 0 11 5[0 000] [77] 12 5 0 011 [77] m m m 13 5 0 007 [77J LB 14 5 0 005 [77] LB 15 5 0 001 [77] ill 16 7 4 204 [77] OB 17 20 1 0 7 4 000 201 [77] [77] 0 OB 21 7 7 777 03 77777 22 7 7 777 06 77777 23 5 [0 000] 05 LB CA TC24 1839 Tape Labels 0 1 2 3 4 5 6 1 10 11 12 13 IA TL 14 65 31 30 65 61 01 01 26 34 50 26 74147 30324 34463 50210 73412 50342 67503 01675 51213 26512 34265 51506 TL14 CA (XS3) 47474 73050 00106 15131 55146 65121 42651 03426 00152 73001 12730 56624 Z Z Z Z Z Z Word of Z's S E G M E N F I L E ~ 3 E N D ~ 0 F S y M B 0 L U N I C 0 D ~U N I C 0 1840 ~~ C 0 I C N I U N D E 0 D C 0 C 0 N S I C ~ P E ~ D E T A Source program labels XS3 Codes IA XS o 37 01010 10101 @ 1 00 00 00 00000 00000 00000 00004 00014 00017 08 08 08 08 08 Ix 08 08 08 08 08 9 08 08 08 08 08 (x 01414 00000 OA OA OA OA 9 2 3 4 5 00 00000 43 00000 6 00 7 10 37 50 11 O(L 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 52 01 24 01 32 01 66 01 54 01 25 00001 65303 66010 01010 24323 01010 32300 01010 30010 01012 34506 65672 34526 70245 46306 o 02 50 27 27 26 26 01 25 01 30 CA )~ 41414 24130 o 06634 70101 74301 74302 04301 04302 57347 10101 72754 06501 XS3 open parent 9 08 08 08 XS3 close parent 08 08 08 9 9 9 N T L}. - - - L}.~L}.~~~ i0101 00104 10152 10403 15224 40303 65150 73027 56526 63027 43424 50117 26515 67302 54674 54674 51543 51543 01016 51460 01242 65653 XS40 Os 08 Fast feed 1 symbol @SEGME} Segment o o !J. !J. !J. !J.!J. PAGE~l L}.L}.L}.L}.L}.P A G EL}.l 0 ~L}.~~PA G EL}.l 00 ~L}.~C 0 N number setup Page number setups TIN U E D ~ SUB S C RIP TED ~ V A R I A B L E S L}. ( [- - - - - C 0 N U E D R U -] N T I DL}.~ : ~ ~) D R U COR E ) COR E ) L}.L}.~ B 0 E S ~ L}. 1841 L A S L}. - ~D X~) D R E S L}. Subscripted Variables Section Heading Setups for Preceeding Heading Subscripted Variable Column Headings XS3 Codes IA XS40 01 02 01 02 01 67 52 24 01010 02020 02020 02020 50515 25652 66302 54342 o o 50 27 30 30 66345 01010 65010 65020 06730 10101 10101 22651 55 56 57 60 61 62 63 64 65 66 67 65 01 27 02 01 02 01 24 73472 01010 27543 02020 01010 02020 26515 50660 55146 10124 06565 20202 10102 20202 06566 15251 50 27 66345 01010 06730 10101 70 71 51 51 46010 46020 10101 22651 OLfl8~8} Setups for o L - - C 0 Const. Pool 72 73 74 75 76 77 01 52543 03124 50 66345 01010 30010 30020 XSlOO ~ ~ ~ ~ ~ ~l} 40 41 42 43 44 45 46 47 50 51 52 53 54 o o o 27 26 26 CA o o ~~~b.b.6) ~~ - - -- -~ ~ NON - S 20202 10101 20202 20201 00265 65434 70170 42546 U B S C R Subscripted Variable Underscores I PTED~V Non-Subscripted Variables [- -] Section HeadN TIN U E ing D8~~~~ ES~~~~} Setups for Preceeding ESC 0 Heading A R I A B L - S Y M B 0 ~ ~ A ~ - - - - - - - - L} l:l A D D RES S ~ ~ ~ ~ 8 CON Non-Subscripted Variable } column heading 8 Non-Subscript- ed Variable S T } Underscores [~ ~ : ~ ~ ~1 o N TIN o 8 ~ 8 U E /:). /:). Constant Pool section heading Sect. Hdg. o 06730 10101 10101 22651 N TIN U E D8~888 Preface Section Heading CE8~8~} Setups for Preface Section C E - - C 0 Heading 1842 XS3 Codes (Cont.) IA o XT 01 65305 1 50 26300 2 47 25305 300 4 02 02265 5 34 50673 6 01 66305 7 50 24663 10 01 17653 11 0 0 12 0 0 13 66 34506 14 34 51500 15 43 01010 16 43 02022 17 01 01010 20 50 27015 21 46 34656 22 32 01010 23 01 01475 24 66 01503 25 01 46346 26 50 32016 27 30 01515 30 54 34506 31 22 01275 32 51 66012 33 50 32300 34 65 34663 35 01 51310 36 52 30542 37 37 60606 CA XT40 Ll 06630 15067 40101 SEN T E NCE~NU , M B E R b. b. [Sent. no. in std. fo~ Sentence CON T Section I N U E D ~ Heading o 15066 02701 44734 45150 02666 ~TERMIl N AT 10 [Section No. Nl ~(SECT o o [- 73027 10003 10101 65150 10130 13101 63450 10101 16750 07266 56634 62452 00152 63054 10150 63324 15251 45150 15224 20101 06060 TIN J -] U E Termination Section Headings D ~~r~~~} ) - - CON b.b.b.~~E N D b. 0 F b. LIS TIN Setups for Preceding heading G~b.b.b.b. ~b.MOUN T b. N EXT b. L I S T I N G b. TAP E ~ 0 N ~ P R I N T E R • ~D Ob.N o T ~ C H A N G Eb.P 0 SIT ION b.OF~PA PER ~ b. 2222!2 1843 printer Stop Symbol 1 40 41 42 43 44 45 46 47 50 51 52 53 IA XT40 01 54 01 50 01 54 66 0 0 66 01 01 CA 01010 51325 46346 32010 46342 73015 34503 0 0 34506 01010 02022 XT54 68/.)./.).6. 10152 42447 56634 10101 55424 45167 00101 0 0 73027 10101 65150 R 0 6. G R A L I S T il N G6.6.6. 6. L I B R A R Y T I 6. N R 0 E [T ~ U 6. 6. [Routine name. -r -N -U -E Heading for Listing ] -] Li brary Routine Heading D 6. 6.6. b. 6.} Setups for Lib. Routine 6. - - CON Heading 1844 F1exowriter Printout 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 IA FP 00 01 52 22 01 50 52 47 00 01 01 01 01 24 66 50 0 FPl 01010 24656 01010 46346 32015 54513 22010 00 01 01 01 01 46 01 30 00 01 01 01 01 50 66 CA FPll 01010 01010 01010 52545 47014 34503 01662 0 FP22 01010 01010 01010 26514 24663 26514 66302 FP32 01010 01010 01010 26675 66014 34503 FP40 7 10101 50170 10101 56634 13101 25424 10101 10 10101 10101 10101 13254 63465 20151 45230 0 7 10101 10101 10101 75234 45150 75246 72201 23 10101 10101 10101 45430 63465 20166 ~b:.b:.b:.b:.b:. P A S S ~ V Codeword • b:.b:.b:.b:.b:. 8- L I S T I N G b:. 0 F b:. P R 0 M .b:.b:.b:.b:. G R A Codeword b:.b:.b:.b:.b:.b:. b:.l:lb:.b:.b:.b:. b:.b:.b:.b:.b:.b:. b:. P R 0 G R A M b:. L I S T I N G b:. 0 N b:. TAP E J [ ~b:.~b:.b:.b:. Servo # Codeword b:.b:.b:.8b:.b:. l:lb:.fll:lb:.b:. b:. C 0 M P I L A T I 0 N ~ E M P L E T D .b:. C 0 Codeword 8888b:.b:. b:.8b:.b:.b:.b:. !:::tb:.Ab:.b:.8 b:. C R R E N T 8 L I S T I N G b:. T 1845 U F1exowriter Printouts (cont.) 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 IA FP40 24 46 66 04 51 52 65 0 65 66 66 46 32 01 01 52300 46220 01503 10030 51660 30015 30547 0 66245 51012 34506 34656 22010 07220 12220 FP57 CA A P E /J. F 13167 15267 07101 30131 16624 15001 05177 0 46601 65150 73001 63450 10101 10101 10101 L L . ~ T /J. N E 1 5 0 o 0 0 T 11 P E /J. 0 S E R V U p U W /J. 11 F T A N 11 0 77 [ S T A R T T 0 ~ C 0 N T I I N U E /J. S T I N 4 • 11 /J. /J. } Optional 11st.6./J.11 ing tape num- L d G • /J.l1/J./J. ~ 1846 7 bers for 5 or 7 servo layout IA Fe 0 0 0 0 1 0 0 0 .L .L 2 3 4 5 6 7 0 0 0 0 0 1 1 0 0 24 0 10 0 0 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 0 0 0 0 0 0 0 0 0 0 7 06 0 0 0 77777 2 0 0 0 0 0 53 54 55 0 04 0 0 01 02 0 0 0 0 0 76 0 0 0 0 0 0 0 0 0 30 01 0 0 0 0 0 0 0 0 0 0 7 0 0 0 Zero 1 in ltv" 1 in "u" 1 in "un & "v" 1 0 1 10 4 24 15 2 3 77 7777 77777 67 6667 22 0 5 0 20 10 Mask 1st XS3 digit Mask 1st & 2nd XS3 digits Mask 1st, 2nd & 3rd XS3 digits "u M mask 0 0 0 0 6 30 171 77777 0 0 14 36 4 0 3 77770 0 10 0 0 30200 01010 7700 07777 0 0 167 0 16 11 XS3 space 0 166 10000 0 0 10 167 777 170 0 0 # const. allowed in 1st blk. Const. Pool on obj. prog. tape (u). Minimwn # b1ks. preceding lIt seg. lab. blk. on obj. prog. tape (y). 1 1847 56 57 60 61 62 63 0 65 66 0 0 0 0 0 0 0 0 0 23000 25000 26000 30000 50000 60000 1100 170 30000 0 0 0 0 0 0 0 67 0 0 70 70 0 0 100 71 0 1200 0 72 73 0 0 100 0 0 BL 74 75 76 77 100 101 03 0 0 77 0 10000 0 0 FC102 0 0 7 0 12 303 64 0 0 0 0 CA 0 Max. # b1ks. input buffer (9 10 or 11a) Limit for line count when new section next (5610) L~it for line count when ,same section next (6410) Max. # b1ks. + 1 (1010 or 12a) in input buffer Listing tape block l~it (120010 per Univac sys. convention) 1848 Relative Constants IA o o RC IB o o 08 OB 3 4 o o IB2070 OB264 XS34 OB264 HC36 5 o XS40 HV7 o 004 1 2 6 TP o CW4 7 10 o o o XS55 BD HC45 11 o XS60 HV11 12 o o 13 14 15 AT 16 IB170 IB1 CWl o CWl o o NLIOOO o 17 o NL2000 o 20 o NL3000 o 21 40 NL3100 o 22 23 24 o o DL167 FB170 FD HC55 TP NP15 25 o FL NP22 26 27 TP o SB FD 30 o o 31 TJ 32 33 34 o o 35 TP 36 o 37 o MJ RF o RC2 o DL TB RB o o Add. stored subs. yare col. hdg.; ent. add. sent. hdgs W/cont. Add. stored subs. yare underscores; ent. add. subs. v~. drum W/cont. To preset @ ~ To preset ® ~ Add. stored non-subs. yare col. hdg.;ent. add. term. hdgs W/cont. Add. stored non-subs. yare underscores;ent. add. subs. yare (core) hdgs.• W/cont. Tnt-t. add. XS3 Sym. list o NL o Init. add. input buff. Init. add. output buff. Last add. input buffer + 1 Base add. statements in sent. no. list Base add. subs. yare EQ.in sent. no. list Base add.non-subs. yare EQ.in sent. no. list Base add. pseudo Op~ in sent. no. list Base add. lib. rtns. in sent. no. list (Ind. bit in Ope code) Add. 1st const. - 1 in input buffer Q Init. add. Ope file IV on drum~ Preset one shot jwnp page no. rtn. Init. add. Ope file IV in core; Preset one shot jwnp page no. rtn. Init. add. statement buffer Init. add. Ope file IV (drum) buffer in "v" Init add routine buffer RB ED14 ED14 HC5 HC27 RF Init. add. routine file (drum) in "v" SB170 Limit value for statement buff. {-l3St~ RB170 ·add. + ·1) Limit value for routine buff. (last add. + 1 1849 40 TP FLI70 CT 41 0 08740 08740 42 43 0 07 CA LB DS4 0 0 RC44 Limit value file list (last add. + 1 in "u") Limit value output buff. (last add. + 1) Init. add. list buffer Explanation of Counters, Indexes,Temps.,Etc. (CT) CTO [0 0 0] 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 0 0 0 0 0 0 0 0 0 0 0 0 0 [0] 0 0 [0] [oj [0] [0] [0] [0] [0] 0 0 0 0 [0 0 0[0 0 0 0 0 0 0 0 0 000] 00 [0] RJ lO] [0] 0 0 [0] 23 0 Temp. 1 curro subs. var. CWo running add. etc. Index Cl Index C2 Index C3 Index C4 Index C5 Output buff. add. (next avai 1. blktJ Line count (next avail. line) 1st page no. word 2nd page no. word 1st segment no. word 2nd segment no. word Count of blocks on listing tape Temp. 2 Seg. no. (octal) # blks. in Term. # full blks. seg. + Pref. # lines part. blk. and H.S.S. 3rdPref. exit and entry in "u" & 8th "v" Lines # lines preface seg. lab. blk. 0 0 0 0 0 0] [0] [0] 0 Pl 1850
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2004:08:07 15:01:04-07:00 Modify Date : 2009:10:01 07:54:25-07:00 Metadata Date : 2009:10:01 07:54:25-07:00 Producer : Adobe Acrobat 9.13 Paper Capture Plug-in Format : application/pdf Document ID : uuid:dff43485-55dc-479c-a1d4-f5049bf95811 Instance ID : uuid:5d3229c6-7141-4340-8b55-17e64693274d Page Layout : SinglePage Page Mode : UseOutlines Page Count : 664EXIF Metadata provided by EXIF.tools