Source Code

These source-code files derive from a printout of Luminary 210 (Apollo 15-17 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Jim Lawton, and transcribed to source code by a team of volunteers. This colorized, syntax-highlighted form was created by assembling that transcribed source code. Note that the full page images are available on the Virtual AGC project page at archive.org, while reduced-size images are presented at the VirtualAGC project website. Report or fix any transcription errors at the Virtual AGC project code repository.

Notations on the program listing read, in part:

	GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY 
	BY NASA 2021112-161 17:11 MAR. 19,1971
Note that the date is the date of the printout, not the date of the program revision.

043946,000002:                                                                                                  ## Copyright:   Public domain.
043947,000003:                                                                                                  ## Filename:    INTERPRETER.agc
043948,000004:                                                                                                  ## Purpose:     A section of Luminary revision 210.
043949,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
043950,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 15-17.
043951,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
043952,000008:                                                                                                  ##              that the code format has been changed to conform to the
043953,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
043954,000010:                                                                                                  ##              original YUL assembler.
043955,000011:                                                                                                  ## Reference:   pp. 1000-1092
043956,000012:                                                                                                  ## Assembler:   yaYUL
043957,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
043958,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
043959,000015:                                                                                                  ## Mod history: 2016-11-17 JL   Created from Luminary131 version.
043960,000016:                                                                                                  ##              2016-12-03 MAS  Started transcription.
043961,000017:                                                                                                  ##              2016-12-07 MAS  Completed transcription.
043962,000018:                                                                                                  ##              2016-12-07 HG   fix P00 -> POO (only in operand POODOO1)
043963,000019:                                                                                                  ##              2016-12-26 RSB  Comment-text proofed using ProoferComments
043964,000020:                                                                                                  ##                              and corrected errors found.
043965,000021:                                                                                                  ##              2017-01-28 RSB  Back-ported some comment-text fixes made in Luminary 69.
043966,000022:                                                                                                  ##              2017-02-05 RSB  Back-ported comment corrections 
043967,000023:                                                                                                  ##                              identified while proofing Artemis 072.
043968,000024:                                                                                                  ##              2017-03-15 RSB  Comment-text fixes identified in 5-way
043969,000025:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
043970,000026: 

Page 1000

043972,000028:                                                                                                  #  SECTION 1  DISPATCHER
043973,000029: 
043974,000030:                                                                                                  #           ENTRY TO THE INTERPRETER. INTPRET SETS LOC TO THE FIRST  INSTRUCTION, BANKSET TO THE BBANK OF THE
043975,000031:                                                                                                  #  OBJECT INTERPRETIVE PROGRAM, AND INTBIT15 TO THE BIT15 CONTENTS OF FBANK. INTERPRETIVE PROGRAMS MAY BE IN
043976,000032:                                                                                                  #  VIRTUALLY ALL BANKS PRESENT UNDER ANY SUPER-BANK SETTING, WITH THE RESTRICTION THAT PROGRAMS IN HIGH BANKS
043977,000033:                                                                                                  #  (BIT15 OF FBANK = 1) DO NOT REFER TO LOWBANKS, AND VICE-VERSA. THE INTERPRETER DOES NOT SWITCH SUPERBANKS.
043978,000034:                                                                                                  #  E-BANK SWITCHING OCCURS WHENEVER GENERAL ERASABLE (100 - 3777) IS ADDRESSED.
043979,000035: 
043980,000036:    6060                                           BLOCK    03                                    
043981,000037: 
043982,000038:    6060                                           COUNT*   $$/INTER                              
043983,000039:    6060           00003        INTPRET            RELINT                                         
043984,000040:    6061           00006                           EXTEND                                         #  SET LOC TO THE WORD FOLLOWING THE TC.
043985,000041:    6062           22164                           QXCH     LOC                                   
043986,000042: 
043987,000043:    6063           30006                 +2        CA       BBANK                                 #  INTERPRETIVE BRANCHES FINISH HERE.
043988,000044:    6064           54165                           TS       BANKSET                               
043989,000045:    6065           74726                           MASK     BIT15                                 #  GET 15TH BIT FOR INDEXABLE ADDRESSES.
043990,000046:    6066           54115                           TS       INTBIT15                              
043991,000047: 
043992,000048:    6067           54023                           TS       EDOP                                  #  MAKE SURE NO INSTRUCTIONS LEFT OVER
043993,000049: 
043994,000050:    6070           16111                           TCF      NEWOPS                                #  PICK UP OP CODE PAIR AND BEGIN.
043995,000051: 
043996,000052: 
043997,000053:    6071           22006        INTRSM             LXCH     BBANK                                 #  RESUME SUSPENDED INTERPRETIVE JOB
043998,000054:    6072           16063                           TCF      INTPRET    +3                         
043999,000055:                                                                                                  #           DLOAD LOADS MPAC, MPAC +1, LEAVING ZERO IN MPAC +2.
044000,000056: 
044001,000057:    6073           00006        DLOAD              EXTEND                                         
044002,000058:    6074           50116                           INDEX    ADDRWD                                
044003,000059:    6075           30001                           DCA      0                                     #  LOAD DP C(C(ADDRWD)) INTO MPAC,MPAX +1
044004,000060:    6076           52155        SLOAD2             DXCH     MPAC                                  
044005,000061:    6077           34746                           CAF      ZERO                                  #  ZERO MPAC +2
044006,000062: 

Page 1001

044008,000064:                                                                                                  #           AT THE END OF MOST INSTRUCTIONS, CONTROL IS GIVEN TO DANZIG TO DISPATCH THE NEXT OPERATION.
044009,000065: 
044010,000066:    6100           54156                           TS       MPAC       +2                         #  AND DECLARE DP MODE
044011,000067: 
044012,000068:    6101           54163        NEWMODE            TS       MODE                                  #  PROLOGUE FOR MODE-CHANGING INSTRUCTIONS.
044013,000069: 
044014,000070:    6102           30165        DANZIG             CA       BANKSET                               #  SET BBANK BEFORE TESTING NEWJOB SO THAT
044015,000071:    6103           54006                           TS       BBANK                                 #  IT MAY BE SAVED DIRECTLY BY CHANJOB.
044016,000072: 
044017,000073:    6104           10023        NOIBNKSW           CCS      EDOP                                  #  SEE IF AN ORDER CODE IS LEFT OVER FROM
044018,000074:    6105           16120                           TCF      OPJUMP                                #  THE LAST PAIR RETRIEVED. IF SO, EXECUTE.
044019,000075:                                                                                                  #  EDOP IS SET TO ZERO ON ITS RE-EDITING.
044020,000076: 
044021,000077:    6106           10067                           CCS      NEWJOB                                #  SEE IF A JOB OF HIGHER PRIORITY IS
044022,000078:    6107           15117                           TCF      CHANG2                                #  PRESENT, AND IF SO, CHANGE JOBS.
044023,000079: 
044024,000080:    6110           24164                           INCR     LOC                                   #  ADVANCE THE LOCATION COUNTER.
044025,000081:                                                                                                  #           ITRACE (1) REFERS TO "NEWOPS".
044026,000082:    6111           50164        NEWOPS             INDEX    LOC                                   #  ENTRY TO BEGIN BY PICKING OP CODE PAIR.
044027,000083:    6112           30000                           CA       0                                     #  MAY BE AN OPCODE PAIR OR A STORE CODE.
044028,000084:    6113           10000                           CCS      A                                     #  TEST SIGN AND GET DABS(A).
044029,000085:    6114           16403                           TCF      DOSTORE                               #  PROCESS STORE CODE.
044030,000086: 
044031,000087:    6115           00177        LOW7               OCT      177                                   
044032,000088: 
044033,000089:    6116           54023                           TS       EDOP                                  #  OP CODE PAIR. LEAVE THE OTHER IN EDOP
044034,000090:    6117           76115                           MASK     LOW7                                  #  WHERE  CCS EDOP  WILL HONOR IT NEXT.
044035,000091: 
044036,000092:    6120           54020        OPJUMP             TS       CYR                                   #  LOWWD ENTERS HERE IF A RIGHT-HAND OP
044037,000093:    6121           10020                           CCS      CYR                                   #  CODE IS TO BE PROCESSED. TEST PREFICES.
044038,000094:    6122           16270                           TCF      OPJUMP2                               #  TEST SECOND PREFIX BIT.
044039,000095: 
044040,000096:    6123           16764                           TCF      EXIT                                  #  +0 OP CODE IS EXIT.
044041,000097: 

Page 1002

044043,000099:                                                                                                  #           PROCESS ADDRESSES WHICH MAY BE DIRECT, INDEXED, OR REFERENCE THE PUSHDOWN LIST.
044044,000100: 
044045,000101:    6124           74744        ADDRESS            MASK     BIT1                                  #  SEE IF ADDRESS IS INDEXED. CYR CONTAINED
044046,000102:    6125           10000                           CCS      A                                     #  400XX, SO BIT 1 IS NOW AS IT WAS IN CYR.
044047,000103:    6126           16167                           TCF      INDEX                                 #  FORM INDEXED ADDRESS.
044048,000104: 
044049,000105:    6127           50164        DIRADRES           INDEX    LOC                                   #  LOOK AHEAD TO NEXT WORD TO SEE IF
044050,000106:    6130           40001        OCT40001           CS       1                                     #  ADDRESS IS GIVEN.
044051,000107:    6131           10000                           CCS      A                                     
044052,000108:    6132           16236                           TCF      PUSHUP                                #  IF NOT.
044053,000109: 
044054,000110:    6133           77773        NEG4               DEC      -4         B-14                       
044055,000111: 
044056,000112:    6134           24164                           INCR     LOC                                   #  IF SO, TO SHOW WE PICKED UP A WORD.
044057,000113:    6135           54116                           TS       ADDRWD                                
044058,000114: 

Page 1003

044060,000116:                                                                                                  #           FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE. IN EACH CASE, THE
044061,000117:                                                                                                  #  REQUIRED 12-BIT SUB-ADDRESS IS LEFT IN ADDRWD, WITH ANY REQUIRED E OR F BANK SWITCHING DONE. ADDRESSES LESS
044062,000118:                                                                                                  #  THAN 45D ARE TAKEN TO BE RELATIVE TO THE WORK AREA. THE OP CODE IS NOW IN BITS 1-5 OF CYR WITH BIT 14 = 1.
044063,000119: 
044064,000120:    6136           66272                           AD       -ENDVAC                               #  SEE IF ADDRESS RELATIVE TO WORK AREA.
044065,000121:    6137           10000                           CCS      A                                     
044066,000122:    6140           67764                           AD       -ENDERAS                              #  IF NOT, SEE IF IN GENERAL ERASABLE.
044067,000123:    6141           16146                           TCF      IERASTST                              
044068,000124: 
044069,000125:    6142           30120        NETZERO            CA       FIXLOC                                #  IF SO, LEAVE THE MODIFIED ADDRESS IN
044070,000126:    6143           26116                           ADS      ADDRWD                                #  ADDRWD AND DISPATCH.
044071,000127:    6144           50020        ITR15              INDEX    CYR                                   #  THIS INDEX MAKES THE NEXT INSTRUCTION
044072,000128:    6145           76314                           7        INDJUMP    -1                         #  TCF INDJUMP + OP, EDITING CYR.
044073,000129: 
044074,000130:    6146           00006        IERASTST           EXTEND                                         
044075,000131:    6147           66157                           BZMF     GEADDR                                #  GO PROCESS GENERAL-ERASABLE ADDRESS.
044076,000132: 
044077,000133:    6150           75003                           MASK     LOW10                                 #  FIXED BANK ADDRESS. RESTORE AND ADD B15.
044078,000134:    6151           65003                           AD       LOW10                                 #  SWITCH BANKS AND LEAVE SUBADDRESS IN
044079,000135:    6152           56116                           XCH      ADDRWD                                #  ADDRWD FOR OPERAND RETRIEVAL. (THIS
044080,000136:    6153           60115                           AD       INTBIT15                              #  METHOD PRECLUDES USE OF THE LAST
044081,000137:    6154           54004                           TS       FBANK                                 #  LOCATION IN EACH FBANK.)
044082,000138:    6155           50020        ITR12              INDEX    CYR                                   
044083,000139:    6156           76314                           7        INDJUMP    -1                         
044084,000140: 
044085,000141:    6157           74350        GEADDR             MASK     LOW8                                  
044086,000142:    6160           65000                           AD       OCT1400                               
044087,000143:    6161           56116                           XCH      ADDRWD                                
044088,000144:    6162           54003                           TS       EBANK                                 
044089,000145:    6163           50020        ITR10              INDEX    CYR                                   
044090,000146:    6164           76314                           7        INDJUMP    -1                         
044091,000147: 

Page 1004

044093,000149:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES INTERPRETIVE INDEXED ADDRESSES. AN INTERPRETER INDEX REGISTER MAY
044094,000150:                                                                                                  #  CONTAIN THE ADDRESS OF ANY ERASABLE REGISTER (0-42 BEING RELATIVE TO THE VAC AREA) OR ANY INTERPRETIVE PROGRAM
044095,000151:                                                                                                  #  BANK, OR ANY INTEGER IN THAT RANGE.
044096,000152: 
044097,000153:    6165           37754        DODLOAD*           CAF      DLOAD*                                #  STODL* COMES HERE TO PROCESS LOAD ADR.
044098,000154:    6166           54020                           TS       CYR                                   #  (STOVL* ENTERS HERE).
044099,000155: 
044100,000156:    6167           30120        INDEX              CA       FIXLOC                                #  SET UP INDEX LOCATION.
044101,000157:    6170           54130                           TS       INDEXLOC                              
044102,000158:    6171           24164                           INCR     LOC                                   #  (ADDRESS ALWAYS GIVEN).
044103,000159:    6172           50164                           INDEX    LOC                                   
044104,000160:    6173           40000                           CS       0                                     
044105,000161:    6174           10000                           CCS      A                                     #  INDEX 2 IF ADDRESS STORED COMPLEMENTED.
044106,000162:    6175           24130                           INCR     INDEXLOC                              
044107,000163:    6176           16177                           NOOP                                           
044108,000164: 
044109,000165:    6177           54116                           TS       ADDRWD                                #  14 BIT ADDRESS TO ADDRWD.
044110,000166:    6200           77763                           MASK     HIGH4                                 #  IF ADDRESS GREATER THAN 2K, ADD INTBIT15
044111,000167:    6201           00006                           EXTEND                                         
044112,000168:    6202           16205                           BZF      INDEX2                                
044113,000169:    6203           30115                           CA       INTBIT15                              
044114,000170:    6204           26116                           ADS      ADDRWD                                
044115,000171: 
044116,000172:    6205           50130        INDEX2             INDEX    INDEXLOC                              
044117,000173:    6206           40046                           CS       X1                                    
044118,000174:    6207           26116                           ADS      ADDRWD                                #  DO AUGMENT, IGNORING AND CORRECTING OVF.
044119,000175: 
044120,000176:    6210           77765                           MASK     HIGH9                                 #  SEE IF ADDRESS IS IN WORK AREA.
044121,000177:    6211           00006                           EXTEND                                         
044122,000178:    6212           16225                           BZF      INDWORK                               
044123,000179:    6213           77763                           MASK     HIGH4                                 #  SEE IF IN FIXED BANK.
044124,000180:    6214           00006                           EXTEND                                         
044125,000181:    6215           16227                           BZF      INDERASE                              
044126,000182: 
044127,000183:    6216           30116                           CA       ADDRWD                                #  IN FIXED - SWITCH BANKS AND CREATE
044128,000184:    6217           54004                           TS       FBANK                                 #  SUB-ADDRESS.
044129,000185:    6220           75003                           MASK     LOW10                                 
044130,000186:    6221           64732                           AD       2K                                    
044131,000187:    6222           54116                           TS       ADDRWD                                
044132,000188:    6223           50020        ITR11              INDEX    CYR                                   
044133,000189:    6224           36314                           3        INDJUMP    -1                         
044134,000190: 
044135,000191:    6225           30120        INDWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO WORK AREA.
044136,000192:    6226           16233                           TCF      ITR13      -1                         
044137,000193: 
044138,000194:    6227           35000        INDERASE           CA       OCT1400                               
044139,000195:    6230           56116                           XCH      ADDRWD                                
044140,000196:    6231           54003                           TS       EBANK                                 
044141,000197:    6232           74350                           MASK     LOW8                                  
044142,000198:    6233           26116                 -1        ADS      ADDRWD                                

Page 1005

044144,000200:    6234           50020        ITR13              INDEX    CYR                                   
044145,000201:    6235           36314                           3        INDJUMP    -1                         
044146,000202: 

Page 1006

044148,000204:                                                                                                  #           PUSH-UP ROUTINES. WHEN NO OPERAND ADDRESS IS GIVEN, THE APPROPRIATE OPERAND IS TAKEN FROM THE PUSH-DOWN
044149,000205:                                                                                                  #  LIST. IN MOST CASES THE MODE OF THE RESULT (VECTOR OR SCALAR) OF THE LAST ARITHMETIC OPERATION PERFORMED
044150,000206:                                                                                                  #  IS THE SAME AS THE TYPE OF OPERAND DESIRED (ALL ADD/SUBTRACT ETC.). EXCEPTIONS TO THIS GENERAL RULE ARE LISTED
044151,000207:                                                                                                  #  BELOW (NOTE THAT IN EVERY CASE THE MODE REGISTER IS LEFT INTACT):
044152,000208: 
044153,000209:                                                                                                  #           1.  VXSC AND V/SC WANT THE OPPOSITE TYPE OF OPERAND, E.G., IF THE LAST OPERATION YIELDED A VECTOR
044154,000210:                                                                                                  #  RESULT, VXSC WANTS A SCALAR.
044155,000211: 
044156,000212:                                                                                                  #           2.  THE LOAD CODES SHOULD LOAD THE ACCUMULATOR INDEPENDENT OF THE RESULT OF THE LAST OPERATION. THIS
044157,000213:                                                                                                  #  INCLUDES VLOAD, DLOAD, TLOAD, PDDL, AND PDVL (NO PUSHUP WITH SLOAD).
044158,000214: 
044159,000215:                                                                                                  #           3.  SOME ARITHMETIC OPERATIONS REQUIRE A STANDARD TYPE OF OPERAND REGARDLESS OF THE PREVIOUS OPERATION.
044160,000216:                                                                                                  #  THIS INCLUDES SIGN WANTING DP AND TAD REQUIRING TP.
044161,000217: 
044162,000218:    6236           34351        PUSHUP             CAF      OCT23                                 #  IF THE LOW 5 BITS OF CYR ARE LESS THAN
044163,000219:    6237           70020                           MASK     CYR                                   #  20, THIS OP REQUIRES SPECIAL ATTENTION.
044164,000220:    6240           66243                           AD       -OCT10                                #  (NO -0).
044165,000221:    6241           10000                           CCS      A                                     
044166,000222:    6242           16254                           TCF      REGUP                                 #  FOR ALL CODES GREATER THAN OCT 7.
044167,000223: 
044168,000224:    6243           77767        -OCT10             OCT      -10                                   
044169,000225: 
044170,000226:    6244           66133                           AD       NEG4                                  #  WE NOW HAVE 7 - OP CODE(MOD4). SEE IF
044171,000227:    6245           10000                           CCS      A                                     #  THE OP CODE (MOD4) IS THREE (REVERSE).
044172,000228:    6246           50000                           INDEX    A                                     #  NO - THE MODE IS DEFINITE. PICK UP THE
044173,000229:    6247           46265                           CS       NO.WDS                                
044174,000230:    6250           16256                           TCF      REGUP      +2                         
044175,000231: 
044176,000232:    6251           50163                           INDEX    MODE                                  #  FOR VXSC AND V/SC WE WANT THE REQUIRED
044177,000233:    6252           46263                           CS       REVCNT                                #  PUSHLOC DECREMENT WITHOUT CHANGING THE
044178,000234:    6253           16256                           TCF      REGUP      +2                         #  MODE AT THIS TIME.
044179,000235: 
044180,000236:    6254           50163        REGUP              INDEX    MODE                                  #  MOST ALL OP CODES PUSHUP HERE.
044181,000237:    6255           46265                           CS       NO.WDS                                
044182,000238:    6256           26166                 +2        ADS      PUSHLOC                               
044183,000239:    6257           54116                           TS       ADDRWD                                
044184,000240:    6260           50020        ITR14              INDEX    CYR                                   
044185,000241:    6261           76314                           7        INDJUMP    -1                         #  (THE INDEX MAKES THIS A TCF.)
044186,000242: 
044187,000243:    6262           00002                           OCT      2                                     #  REVERSE PUSHUP DECREMENT. VECTOR TAKES 2
044188,000244:    6263           00006        REVCNT             OCT      6                                     #  WORDS, SCALAR TAKES 6.
044189,000245:    6264           00006                           OCT      6                                     
044190,000246:    6265           00002        NO.WDS             OCT      2                                     #  CONVENTIONAL DECREMENT IS 6 WORDS VECTOR
044191,000247:    6266           00003        OCTAL3             OCT      3                                     #  2 IN DP, AND 3 IN TP.
044192,000248:    6267           00006                           OCT      6                                     
044193,000249: 

Page 1007

044195,000251:                                                                                                  #           TEST THE SECOND PREFIX BIT TO SEE IF THIS IS A MISCELLANEOUS OR A UNARY/SHORT SHIFT OPERATION.
044196,000252: 
044197,000253:    6270           10020        OPJUMP2            CCS      CYR                                   #  TEST SECOND PREFIX BIT.
044198,000254:    6271           16304                           TCF      OPJUMP3                               #  TEST THIRD BIT TO SEE IF UNARY OR SHIFT.
044199,000255: 
044200,000256:    6272           77722        -ENDVAC            DEC      -45        B-14                       
044201,000257: 
044202,000258:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES ADDRESSES OF SUFFIX CLASS 10. THEY ARE BASICALLY WORK AREA ADDRESSES
044203,000259:                                                                                                  #  IN THE RANGE 0 - 52, ERASABLE ECADR CONSTANTS FROM 100 - 3777, AND FCADRS ABOVE THAT. ALL 15 BITS ARE AVAILABLE
044204,000260:                                                                                                  #  IN CONTRAST TO SUFFIX 1, IN WHICH ONLY THE LOW ORDER 14 ARE AVAILABLE.
044205,000261: 
044206,000262:    6273           24164        15BITADR           INCR     LOC                                   #  (ENTRY HERE FROM STCALL).
044207,000263:    6274           50164                           INDEX    LOC                                   #  PICK UP ADDRESS WORD.
044208,000264:    6275           30000                           CA       0                                     
044209,000265:    6276           54117                           TS       POLISH                                #  WE MAY NEED A SUBADDRESS LATER.
044210,000266: 
044211,000267:    6277           35004                           CAF      LOW7+2K                               #  THESE INSTRUCTIONS ARE IN BANK 1.
044212,000268:    6300           54004                           TS       FBANK                                 
044213,000269:    6301           70020                           MASK     CYR                                   
044214,000270:    6302           50000        ITR7               INDEX    A                                     
044215,000271:    6303           16355                           TCF      MISCJUMP                              
044216,000272: 

Page 1008

044218,000274:                                                                                                  #           COMPLETE THE DISPATCHING OF UNARY AND SHORT SHIFT OPERATIONS.
044219,000275: 
044220,000276:    6304           54004        OPJUMP3            TS       FBANK                                 #  CALL IN BANK 0 (BITS 11-15 OF A ARE 0.)
044221,000277:                                                                                                  #           ITRACE (6) REFERS TO "OPJUMP3".
044222,000278:    6305           10020                           CCS      CYR                                   #  TEST THIRD PREFIX BIT.
044223,000279:    6306           50000                           INDEX    A                                     #  THE DECREMENTED UNARY CODE IS IN BITS
044224,000280:    6307           12000                           TCF      UNAJUMP                               #  1-4 OF A (ZERO, EXIT, HAS BEEN DETECTED)
044225,000281: 
044226,000282:    6310           10163                           CCS      MODE                                  #  ITS A SHORT SHIFT CODE. SEE IF PRESENT
044227,000283:    6311           12017                           TCF      SHORTT                                #  SCALAR OR VECTOR.
044228,000284:    6312           12017                           TCF      SHORTT                                
044229,000285:    6313           12121                           TCF      SHORTV                                #  CALLS THE APPROPRIATE ROUTINE.
044230,000286: 
044231,000287:    6314     4341               FBANKMSK           EQUALS   BANKMASK                              
044232,000288:    6314           00122        LVBUF              ADRES    VBUF                                  
044233,000289: 

Page 1009

044235,000291:                                                                                                  #           THE FOLLOWING IS THE JUMP TABLE FOR OP CODES WHICH MAY HAVE INDEXABLE ADDRESSES OR MAY PUSH UP.
044236,000292: 
044237,000293:    6315           16526        INDJUMP            TCF      VLOAD                                 #  00 - LOAD MPAC WITH A VECTOR.
044238,000294:    6316           17112                           TCF      TAD                                   #  01 - TRIPLE PRECISION ADD TO MPAC.
044239,000295:    6317           17676                           TCF      SIGN                                  #  02 - COMPLEMENT MPAC (V OR SC) IF X NEG.
044240,000296:    6320           17422                           TCF      VXSC                                  #  03 - VECTOR TIMES SCALAR.
044241,000297:    6321           16724                           TCF      CGOTO                                 #  04 - COMPUTED GO TO.
044242,000298:    6322           16511                           TCF      TLOAD                                 #  05 - LOAD MPAC WITH TRIPLE PRECISION.
044243,000299:    6323           16073                           TCF      DLOAD                                 #  06 - LOAD MPAC WITH A DP SCALAR.
044244,000300:    6324           17645                           TCF      V/SC                                  #  07 - VECTOR DIVIDED BY SCALAR.
044245,000301: 
044246,000302:    6325           16522                           TCF      SLOAD                                 #  10 - LOAD MPAC IN SINGLE PRECISION.
044247,000303:    6326           16641                           TCF      SSP                                   #  11 - SET SINGLE PRECISION INTO X.
044248,000304:    6327           16544                           TCF      PDDL                                  #  12 - PUSH DOWN MPAC AND RE-LOAD IN DP.
044249,000305:    6330           17355                           TCF      MXV                                   #  13 - MATRIX POST-MULTIPLIED BY VECTOR.
044250,000306:    6331           16600                           TCF      PDVL                                  #  14 - PUSH DOWN AND VECTOR LOAD.
044251,000307:    6332           16647                           TCF      CCALL                                 #  15 - COMPUTED CALL.
044252,000308:    6333           17360                           TCF      VXM                                   #  16 - MATRIX PRE-MULTIPLIED BY VECTOR.
044253,000309:    6334           17637                           TCF      TSLC                                  #  17 - NORMALIZE MPAC (SCALAR ONLY).
044254,000310: 
044255,000311:    6335           17615                           TCF      DMPR                                  #  20 - DP MULTIPLY AND ROUND.
044256,000312:    6336           17620                           TCF      DDV                                   #  21 - DP DIVIDE BY.
044257,000313:    6337           17624                           TCF      BDDV                                  #  22 - DP DIVIDE INTO.
044258,000314:    6340           17642                           TCF      GSHIFT                                #  23 - GENERAL SHIFT INSTRUCTION.
044259,000315:    6341           16772                           TCF      VAD                                   #  24 - VECTOR ADD.
044260,000316:    6342           16770                           TCF      VSU                                   #  25 - VECTOR SUBTRACT.
044261,000317:    6343           17057                           TCF      BVSU                                  #  26 - VECTOR SUBTRACT FROM.
044262,000318:    6344           17352                           TCF      DOT                                   #  27 - VECTOR DOT PRODUCT.
044263,000319: 
044264,000320:    6345           17501                           TCF      VXV                                   #  30 - VECTOR CROSS PRODUCT.
044265,000321:    6346           17446                           TCF      VPROJ                                 #  31 - VECTOR PROJECTION.
044266,000322:    6347           17026                           TCF      DSU                                   #  32 - DP SUBTRACT.
044267,000323:    6350           17103                           TCF      BDSU                                  #  33 - DP SUBTRACT FROM.
044268,000324:    6351           17016                           TCF      DAD                                   #  34 - DP ADD.
044269,000325:    6352           16352                           TCF      +0                                    #  35 - AVAILABLE
044270,000326:    6353           17613                           TCF      DMP1                                  #  36 - DP MULTIPLY.
044271,000327:    6354           17634                           TCF      SETPD                                 #  37 - SET PUSH DOWN POINTER (DIRECT ONLY)
044272,000328: 
044273,000329:                                                                                                  #  CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED.
044274,000330: 

Page 1010

044276,000332:                                                                                                  #           THE FOLLOWING JUMP TABLE APPLIES TO INDEX, BRANCH, AND MISCELLANEOUS INSTRUCTIONS.
044277,000333: 
044278,000334:    6355           12350        MISCJUMP           TCF      AXT                                   #  00 - ADDRESS TO INDEX TRUE.
044279,000335:    6356           12355                           TCF      AXC                                   #  01 - ADDRESS TO INDEX COMPLEMENTED.
044280,000336:    6357           12360                           TCF      LXA                                   #  02 - LOAD INDEX FROM ERASABLE.
044281,000337:    6360           12364                           TCF      LXC                                   #  03 - LOAD INDEX FROM COMPLEMENT OF ERAS.
044282,000338:    6361           12370                           TCF      SXA                                   #  04 - STORE INDEX IN ERASABLE.
044283,000339:    6362           12376                           TCF      XCHX                                  #  05 - EXCHANGE INDEX WITH ERASABLE.
044284,000340:    6363           12412                           TCF      INCR                                  #  06 - INCREMENT INDEX REGISTER.
044285,000341:    6364           12421                           TCF      TIX                                   #  07 - TRANSFER ON INDEX.
044286,000342: 
044287,000343:    6365           12404                           TCF      XAD                                   #  10 - INDEX REGISTER ADD FROM ERASABLE.
044288,000344:    6366           12415                           TCF      XSU                                   #  11 - INDEX SUBTRACT FROM ERASABLE.
044289,000345:    6367           12473                           TCF      BZE/GOTO                              #  12 - BRANCH ZERO AND GOTO.
044290,000346:    6370           12500                           TCF      BPL/BMN                               #  13 - BRANCH PLUS AND BRANCH MINUS.
044291,000347:    6371           12453                           TCF      RTB/BHIZ                              #  14 - RETURN TO BASIC AND BRANCH HI ZERO.
044292,000348:    6372           12513                           TCF      CALL/ITA                              #  15 - CALL AND STORE QPRET.
044293,000349:    6373           12522                           TCF      SW/                                   #  16 - SWITCH INSTRUCTIONS AND AVAILABLE.
044294,000350:    6374           12463                           TCF      BOV(B)                                #  17 - BRANCH ON OVERFLOW TO BASIC OR INT.
044295,000351: 

Page 1011

044297,000353:                                                                                                  #           THE FOLLOWING JUMP TABLE APPIES TO UNARY INSTRUCTIONS.
044298,000354: 
044299,000355:    6375                                           COUNT*   $$/INTER                              
044300,000356: 00,2000                                           BANK     0                                     #  00 - EXIT - DETECTED EARLIER.
044301,000357: 00,2000           13207        UNAJUMP            TCF      SQRT                                  #  01 - SQUARE ROOT.
044302,000358: 00,2001           13530                           TCF      SINE                                  #  02 - SIN.
044303,000359: 00,2002           13517                           TCF      COSINE                                #  03 - COS.
044304,000360: 00,2003           13610                           TCF      ARCSIN                                #  04 - ARC SIN.
044305,000361: 00,2004           13612                           TCF      ARCCOS                                #  05 - ARC COS.
044306,000362: 00,2005           13174                           TCF      DSQ                                   #  06 - DP SQUARE.
044307,000363: 00,2006           12116                           TCF      ROUND                                 #  07 - ROUND TO DP.
044308,000364: 
044309,000365: 00,2007           17711                           TCF      COMP                                  #  10 - COMPLEMENT VECTOR OR SCALAR.
044310,000366: 00,2010           13232                           TCF      VDEF                                  #  11 - VECTOR DEFINE.
044311,000367: 00,2011           13023                           TCF      UNIT                                  #  12 - UNIT VECTOR.
044312,000368: 00,2012           13176                           TCF      ABVALABS                              #  13 - LENGTH OF VECTOR OR MAG OF SCALAR.
044313,000369: 00,2013           13245                           TCF      VSQ                                   #  14 - SQUARE OF LENGTH OF VECTOR.
044314,000370: 00,2014           16375                           TCF      STADR                                 #  15 - PUSH UP ON STORE CODE.
044315,000371: 00,2015           13274                           TCF      RVQ                                   #  16 - RETURN VIA QPRET.
044316,000372: 00,2016           13247                           TCF      PUSH                                  #  17 - PUSH MPAC DOWN.
044317,000373: 

Page 1012

044319,000375:                                                                                                  #  SECTION 2  LOAD AND STORE PACKAGE.
044320,000376: 
044321,000377:                                                                                                  #           A SET OF EIGHT STORE CODES IS PROVIDED AS THE PRIMARY METHOD OF STORING THE MULTI-PURPOSE
044322,000378:                                                                                                  #  ACCUMULATOR (MPAC). IF IN THE DANZIG SECTION LOC REFERS TO AN ALGEBRAICALLY POSITIVE WORD, IT IS TAKEN AS A 
044323,000379:                                                                                                  #  STORE CODE WITH A CORRESPONDING ERASABLE ADDRESS. MOST OF THESE CODES ARE TWO ADDRESS, SPECIFYING THAT THE WORD
044324,000380:                                                                                                  #  FOLLOWING THE STORE CODE IS TO BE USED AS AN ADDRESS FROM WHICH TO RE-LOAD MPAC. FOUR OPTIONS ARE AVAILABLE:
044325,000381: 
044326,000382:                                                                                                  #           1. STORE               STORE MPAC. THE E ADDRESS MAY BE INDEXED.
044327,000383:                                                                                                  #           2. STODL               STORE MPAC AND RE-LOAD IT IN DP WITH THE NEXT ADDRESS (THE LOAD MAY BE INDEXED).
044328,000384:                                                                                                  #           3. STOVL               STORE MPAC AND RE-LOAD A VECTOR (AS ABOVE).
044329,000385:                                                                                                  #           4. STCALL              STORE AND DO A CALL (BOTH ADDRESSES MUST BE DIRECT HERE).
044330,000386: 
044331,000387:                                                                                                  #           STODL AND STOVL WILL TAKE FROM THE PUSH-DOWN LIST IF NO LOAD ADDRESS IS GIVEN.
044332,000388: 
044333,000389:    6375                                           BLOCK    3                                     
044334,000390: 
044335,000391:    6375                                           COUNT*   $$/INTER                              
044336,000392:    6375           30165        STADR              CA       BANKSET                               #  THE STADR CODE (PUSHUP UP ON STORE
044337,000393:    6376           54004                           TS       FBANK                                 #  ADDRESS) ENTERS HERE.
044338,000394:    6377           24164                           INCR     LOC                                   
044339,000395:    6400           50164        ITR1               INDEX    LOC                                   #  THE STORECODE WAS STORED COMPLEMENTED TO
044340,000396:    6401           40000                           CS       0                                     #  MAKE IT LOOK LIKE AN OPCODE PAIR.
044341,000397:    6402           67770                           AD       NEGONE                                #  (YUL CANT REMOVE 1 BECAUSE OF EARLY CCS)
044342,000398: 
044343,000399:    6403           54116        DOSTORE            TS       ADDRWD                                
044344,000400:    6404           74347                           MASK     LOW11                                 #  ENTRY FROM DISPATCHER. SAVE THE ERASABLE
044345,000401:    6405           56116                           XCH      ADDRWD                                #  ADDRESS AND JUMP ON THE STORE CODE NO.
044346,000402:    6406           77743                           MASK     B12T14                                
044347,000403:    6407           00006                           EXTEND                                         
044348,000404:    6410           74740                           MP       BIT5                                  #  EACH TRANSFER VECTOR ENTRY IS TWO WORDS.
044349,000405:    6411           50000        ITR0               INDEX    A                                     
044350,000406:    6412           16413                           TCF      STORJUMP                              
044351,000407: 

Page 1013

044353,000409:                                                                                                  #           STORE CODE JUMP TABLE. CALLS THE APPROPRIATE STORING ROUTINE AND EXITS TO DANZIG OR TO ADDRESS WITH
044354,000410:                                                                                                  #  A SUPPLIED OPERATION CODE.
044355,000411: 
044356,000412:                                                                                                  #           STORE STORE,1 AND STORE,2 RETURN TO DANZIG, THUS RESETTING THE EBANK TO ITS STATE AT INTPRET.
044357,000413: 
044358,000414:    6413           06443        STORJUMP           TC       STORE                                 #  STORE.
044359,000415:    6414           16102                           TCF      DANZIG                                #  PICK UP NEW OP CODE(S).
044360,000416:    6415           06435                           TC       STORE,1                               
044361,000417:    6416           16102                           TCF      DANZIG                                
044362,000418:    6417           06440                           TC       STORE,2                               
044363,000419:    6420           16102                           TCF      DANZIG                                
044364,000420: 
044365,000421:    6421           06443                           TC       STORE                                 #  STODL.
044366,000422:    6422           16501                           TCF      DODLOAD                               
044367,000423: 
044368,000424:    6423           06443                           TC       STORE                                 #  STODL WITH INDEXED LOAD ADDRESS.
044369,000425:    6424           16165                           TCF      DODLOAD*                              
044370,000426: 
044371,000427:    6425           06443                           TC       STORE                                 #  STOVL.
044372,000428:    6426           16504                           TCF      DOVLOAD                               
044373,000429: 
044374,000430:    6427           06443                           TC       STORE                                 #  STOVL WITH INDEXED LOAD ADDRESS.
044375,000431:    6430           16507                           TCF      DOVLOAD*                              
044376,000432:    6431           06443                           TC       STORE                                 #  STOTC.
044377,000433:    6432           34757                           CAF      CALLCODE                              
044378,000434:    6433           54020                           TS       CYR                                   
044379,000435:    6434           16273                           TCF      15BITADR                              #  GET A 15 BIT ADDRESS.
044380,000436: 

Page 1014

044382,000438:                                                                                                  #           STORE CODE ADDRESS PROCESSOR.
044383,000439: 
044384,000440:    6435           50120        STORE,1            INDEX    FIXLOC                                
044385,000441:    6436           40046                           CS       X1                                    
044386,000442:    6437           16442                           TCF      PRESTORE                              
044387,000443: 
044388,000444:    6440           50120        STORE,2            INDEX    FIXLOC                                
044389,000445:    6441           40047                           CS       X2                                    
044390,000446:    6442           26116        PRESTORE           ADS      ADDRWD                                #  RESULTANT ADDRESS IS IN ERASABLE.
044391,000447: 
044392,000448:    6443           40116        STORE              CS       ADDRWD                                
044393,000449:    6444           64763                           AD       DEC45                                 
044394,000450:    6445           10000                           CCS      A                                     #  DOES THE ADDRESS POINT TO THE WORK AREA?
044395,000451:    6446           30120                           CA       FIXLOC                                #  YES.
044396,000452:    6447           16454                           TCF      AHEAD5                                
044397,000453:    6450           35000                           CA       OCT1400                               #  NO.  SET EBANK & MAKE UP SUBADDRESS.
044398,000454:    6451           56116                           XCH      ADDRWD                                
044399,000455:    6452           54003                           TS       EBANK                                 
044400,000456:    6453           74350                           MASK     LOW8                                  
044401,000457:    6454           26116        AHEAD5             ADS      ADDRWD                                
044402,000458: 

Page 1015

044404,000460:                                                                                                  #           STORING ROUTINES. STORE DP, TP, OR VECTOR AS INDICATED BY MODE.
044405,000461: 
044406,000462:    6455           00006        STARTSTO           EXTEND                                         #  MPAC,+1 MUST BE STORED IN ANY EVENT.
044407,000463:                                                                                                  #           ITRACE (5) REFERS TO "STARTSTO".
044408,000464:    6456           30155                           DCA      MPAC                                  
044409,000465:    6457           50116                           INDEX    ADDRWD                                
044410,000466:    6460           52001                           DXCH     0                                     
044411,000467: 
044412,000468:    6461           10163                           CCS      MODE                                  
044413,000469:    6462           16475                           TCF      TSTORE                                
044414,000470:    6463           00002                           TC       Q                                     
044415,000471: 
044416,000472:    6464           00006        VSTORE             EXTEND                                         
044417,000473:    6465           30160                           DCA      MPAC       +3                         
044418,000474:    6466           50116                           INDEX    ADDRWD                                
044419,000475:    6467           52003                           DXCH     2                                     
044420,000476: 
044421,000477:    6470           00006                           EXTEND                                         
044422,000478:    6471           30162                           DCA      MPAC       +5                         
044423,000479:    6472           50116                           INDEX    ADDRWD                                
044424,000480:    6473           52005                           DXCH     4                                     
044425,000481:    6474           00002                           TC       Q                                     
044426,000482: 
044427,000483:    6475           30156        TSTORE             CA       MPAC       +2                         
044428,000484:    6476           50116                           INDEX    ADDRWD                                
044429,000485:    6477           54002                           TS       2                                     
044430,000486:    6500           00002                           TC       Q                                     
044431,000487: 

Page 1016

044433,000489:                                                                                                  #           ROUTINES TO BEGIN PROCESSING OF THE SECOND ADDRESS ASSOCIATED WITH ALL STORE-TYPE CODES EXCEPT STORE
044434,000490:                                                                                                  #  ITSELF.
044435,000491: 
044436,000492:    6501           37753        DODLOAD            CAF      DLOADCOD                              
044437,000493:    6502           54020                           TS       CYR                                   
044438,000494:    6503           16127                           TCF      DIRADRES                              #  GO GET A DIRECT ADDRESS.
044439,000495: 
044440,000496:    6504           34726        DOVLOAD            CAF      VLOADCOD                              
044441,000497:    6505           54020                           TS       CYR                                   
044442,000498:    6506           16127                           TCF      DIRADRES                              
044443,000499: 
044444,000500:    6507           36130        DOVLOAD*           CAF      VLOAD*                                
044445,000501:    6510           16166                           TCF      DODLOAD*   +1                         #  PROLOGUE TO INDEX ROUTINE.
044446,000502: 

Page 1017

044448,000504:                                                                                                  #           THE FOLLOWING LOAD INSTRUCTIONS ARE PROVIDED FOR LOADING THE MULTI-PURPOSE ACCUMULATOR MPAC.
044449,000505: 
044450,000506:    6511           50116        TLOAD              INDEX    ADDRWD                                
044451,000507:    6512           30002                           CA       2                                     #  LOAD A TRIPLE PRECISION ARGUMENT INTO
044452,000508:    6513           54156                           TS       MPAC       +2                         #  THE FIRST THREE MPAC REGISTERS, WITH THE
044453,000509:    6514           00006                           EXTEND                                         #  CONTENTS OF THE OTHER FOUR IRRELEVANT.
044454,000510:    6515           50116                           INDEX    ADDRWD                                
044455,000511:    6516           30001                           DCA      0                                     
044456,000512:    6517           52155                           DXCH     MPAC                                  
044457,000513:    6520           34744        TMODE              CAF      ONE                                   
044458,000514:    6521           16101                           TCF      NEWMODE                               #  DECLARE TRIPLE PRECISION MODE.
044459,000515: 
044460,000516:    6522           22007        SLOAD              ZL                                             #  LOAD A SINGLE PRECISION NUMBER INTO
044461,000517:    6523           50116                           INDEX    ADDRWD                                #  MPAC, SETTING MPAC+1,2 TO ZERO. THE
044462,000518:    6524           30000                           CA       0                                     #  CONTENTS OF THE REMAINING MPAC REGISTERS
044463,000519:    6525           16076                           TCF      SLOAD2                                #  ARE IRRELEVANT.
044464,000520: 
044465,000521:    6526           00006        VLOAD              EXTEND                                         #  LOAD A DOUBLE PRECISION VECTOR INTO
044466,000522:    6527           50116                           INDEX    ADDRWD                                #  MPAC,+1, MPAC+3,4, AND MPAC+5,6. THE
044467,000523:    6530           30001                           DCA      0                                     #  CONTENTS OF MPAC +2 ARE IRRELEVANT.
044468,000524:    6531           52155                           DXCH     MPAC                                  
044469,000525: 
044470,000526:    6532           00006        ENDVLOAD           EXTEND                                         #  PDVL COMES HERE TO FINISH UP FOR DP, TP.
044471,000527:    6533           50116                           INDEX    ADDRWD                                
044472,000528:    6534           30003                           DCA      2                                     
044473,000529:    6535           52160                           DXCH     MPAC       +3                         
044474,000530: 
044475,000531:    6536           00006                 +4        EXTEND                                         #  TPDVL FINISHES HERE.
044476,000532:    6537           50116                           INDEX    ADDRWD                                
044477,000533:    6540           30005                           DCA      4                                     
044478,000534:    6541           52162                           DXCH     MPAC       +5                         
044479,000535: 
044480,000536:    6542           44744        VMODE              CS       ONE                                   #  DECLARE VECTOR MODE.
044481,000537:    6543           16101                           TCF      NEWMODE                               
044482,000538: 

Page 1018

044484,000540:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE PROVIDED FOR STORING OPERANDS IN THE PUSHDOWN LIST:
044485,000541:                                                                                                  #           1.  PUSH               PUSHDOWN AND NO LOAD.
044486,000542:                                                                                                  #           2.  PDDL               PUSHDOWN AND DOUBLE PRECISION LOAD.
044487,000543:                                                                                                  #           3.  PDVL               PUSHDOWN AND VECTOR LOAD.
044488,000544: 
044489,000545:    6544           00006        PDDL               EXTEND                                         
044490,000546:    6545           50116                           INDEX    ADDRWD                                #  LOAD MPAC,+1, PUSHING THE FORMER
044491,000547:    6546           30001                           DCA      0                                     #  CONTENTS DOWN.
044492,000548:    6547           52155                           DXCH     MPAC                                  
044493,000549:    6550           50166                           INDEX    PUSHLOC                               
044494,000550:    6551           52001                           DXCH     0                                     
044495,000551: 
044496,000552:    6552           50163                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER APPRO-
044497,000553:    6553           36265                           CAF      NO.WDS                                #  PRIATELY.
044498,000554:    6554           26166                           ADS      PUSHLOC                               
044499,000555: 
044500,000556:    6555           10163                           CCS      MODE                                  
044501,000557:    6556           16573                           TCF      ENDTPUSH                              
044502,000558:    6557           16571                           TCF      ENDDPUSH                              
044503,000559: 
044504,000560:    6560           54163                           TS       MODE                                  #  NOW DP.
044505,000561:    6561           54156        ENDVPUSH           TS       MPAC       +2                         
044506,000562:    6562           52160                           DXCH     MPAC       +3                         #  PUSH DOWN THE REST OF THE VECTOR HERE.
044507,000563:    6563           50166                           INDEX    PUSHLOC                               
044508,000564:    6564           51775                           DXCH     0          -4                         
044509,000565: 
044510,000566:    6565           52162                           DXCH     MPAC       +5                         
044511,000567:    6566           50166                           INDEX    PUSHLOC                               
044512,000568:    6567           51777                           DXCH     0          -2                         
044513,000569: 
044514,000570:    6570           16102                           TCF      DANZIG                                
044515,000571: 
044516,000572:    6571           54156        ENDDPUSH           TS       MPAC       +2                         #  SET MPAC +2 TO ZERO AND EXIT ON DP.
044517,000573:    6572           16102                           TCF      DANZIG                                
044518,000574: 
044519,000575:    6573           54163        ENDTPUSH           TS       MODE                                  
044520,000576:    6574           56156                           XCH      MPAC       +2                         #  ON TRIPLE, SET MPAC +2 TO ZERO, PUSHING
044521,000577:    6575           50166                 +2        INDEX    PUSHLOC                               #  DOWN THE OLD CONTENTS
044522,000578:    6576           53777                           TS       0          -1                         
044523,000579:    6577           16102                           TCF      DANZIG                                
044524,000580: 

Page 1019

044526,000582:                                                                                                  #           PDVL - PUSHDOWN AND VECTOR LOAD.
044527,000583: 
044528,000584:    6600           00006        PDVL               EXTEND                                         #  RELOAD MPAC AND PUSH DOWN ITS CONTENTS.
044529,000585:    6601           50116                           INDEX    ADDRWD                                
044530,000586:    6602           30001                           DCA      0                                     
044531,000587:    6603           52155                           DXCH     MPAC                                  
044532,000588:    6604           50166                           INDEX    PUSHLOC                               
044533,000589:    6605           52001                           DXCH     0                                     
044534,000590: 
044535,000591:    6606           50163                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER.
044536,000592:    6607           36265                           CAF      NO.WDS                                
044537,000593:    6610           26166                           ADS      PUSHLOC                               
044538,000594: 
044539,000595:    6611           10163                           CCS      MODE                                  #  TEST PAST MODE.
044540,000596:    6612           16631                           TCF      TPDVL                                 
044541,000597:    6613           16532                           TCF      ENDVLOAD                              #  JUST LOAD LAST FOUR REGISTERS ON DP.
044542,000598: 
044543,000599:    6614           00006        VPDVL              EXTEND                                         #  PUSHDOWN AND RE-LOAD LAST TWO COMPONENTS
044544,000600:    6615           50116                           INDEX    ADDRWD                                
044545,000601:    6616           30003                           DCA      2                                     
044546,000602:    6617           52160                           DXCH     MPAC       +3                         
044547,000603:    6620           50166                           INDEX    PUSHLOC                               
044548,000604:    6621           51775                           DXCH     0          -4                         
044549,000605: 
044550,000606:    6622           00006                           EXTEND                                         
044551,000607:    6623           50116                           INDEX    ADDRWD                                
044552,000608:    6624           30005                           DCA      4                                     
044553,000609:    6625           52162                           DXCH     MPAC       +5                         
044554,000610:    6626           50166                           INDEX    PUSHLOC                               
044555,000611:    6627           51777                           DXCH     0          -2                         
044556,000612: 
044557,000613:    6630           16102                           TCF      DANZIG                                
044558,000614: 
044559,000615:    6631           00006        TPDVL              EXTEND                                         #  ON TP, WE MUST LOAD THE Y COMPONENT
044560,000616:    6632           50116                           INDEX    ADDRWD                                #  BEFORE STORING MPAC +2 INCASE THIS IS A
044561,000617:    6633           30003                           DCA      2                                     #  PUSHUP.
044562,000618:    6634           52160                           DXCH     MPAC       +3                         
044563,000619: 
044564,000620:    6635           30156                           CA       MPAC       +2                         
044565,000621:    6636           50166                           INDEX    PUSHLOC                               #  IN DP.
044566,000622:    6637           53777                           TS       0          -1                         
044567,000623:    6640           16536                           TCF      ENDVLOAD   +4                         
044568,000624: 
044569,000625:                                                                                                  #           SSP (STORE SINGLE PRECISION) IS EXECUTED HERE.
044570,000626: 
044571,000627:    6641           24164        SSP                INCR     LOC                                   #  PICK UP THE WORD FOLLOWING THE GIVEN
044572,000628:    6642           50164                           INDEX    LOC                                   #  ADDRESS AND STORE IT AT X.
044573,000629:    6643           30000                           CA       0                                     
044574,000630:    6644           50116        STORE1             INDEX    ADDRWD                                #  SOME INDEX AND MISCELLANEOUS OPS END
044575,000631:    6645           54000                           TS       0                                     #  HERE.

Page 1020

044577,000633:    6646           16102                           TCF      DANZIG                                
044578,000634: 

Page 1021

044580,000636:                                                                                                  #  SEQUENCE CHANGING AND SUBROUTINE CALLING OPTIONS.
044581,000637: 
044582,000638:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR SEQUENCING CHANGING, BRANCHING, AND CALLING SUBROUTINES:
044583,000639: 
044584,000640:                                                                                                  #           1.  GOTO               GO TO.
044585,000641:                                                                                                  #           2.  CALL               CALL SUBROUTINE SETTING QPRET.
044586,000642:                                                                                                  #           3.  CGOTO              COMPUTED GO TO.
044587,000643:                                                                                                  #           4.  CCALL              COMPUTED CALL.
044588,000644:                                                                                                  #           7.  BPL                BRANCH IF MPAC POSITIVE OR ZERO.
044589,000645:                                                                                                  #           8.  BZE                BRANCH IF MPAC ZERO.
044590,000646:                                                                                                  #           9.  BMN                BRANCH IF MPAC NEGATIVE NON-ZERO.
044591,000647: 
044592,000648:    6647           24164        CCALL              INCR     LOC                                   #  MAINTAIN LOC FOR QPRET COMPUTATION.
044593,000649:    6650           50164                           INDEX    LOC                                   
044594,000650:    6651           30000                           CAF      0                                     #  GET BASE ADDRESS OF CADR LIST.
044595,000651:    6652           50116                           INDEX    ADDRWD                                
044596,000652:    6653           60000                           AD       0                                     #  ADD INCREMENT.
044597,000653:    6654           54004                           TS       FBANK                                 #  SELECT DESIRED CADR.
044598,000654:    6655           75003                           MASK     LOW10                                 
044599,000655:    6656           50000                           INDEX    A                                     
044600,000656:    6657           32000                           CAF      10000                                 
044601,000657:    6660           54117                           TS       POLISH                                
044602,000658: 
044603,000659:    6661           30165        CALL               CA       BANKSET                               #  FOR ANY OF THE CALL OPTIONS, MAKE UP THE
044604,000660:    6662           74341                           MASK     BANKMASK                              #  ADDRESS OF THE NEXT OP-CODE PAIR/STORE
044605,000661:    6663           64341                           AD       BANKMASK                              #  CODE AND LEAVE IT IN QPRET.  NOTE THAT
044606,000662:    6664           60164                           AD       LOC                                   #  BANKMASK = -(2000 - 1).
044607,000663:    6665           50120                           INDEX    FIXLOC                                
044608,000664:    6666           54052                           TS       QPRET                                 
044609,000665: 
044610,000666:    6667           30117        GOTO               CA       POLISH                                #  BASIC BRANCHING SEQUENCE.
044611,000667:    6670           77763                 +1        MASK     HIGH4                                 
044612,000668:    6671           00006                           EXTEND                                         
044613,000669:    6672           16703                           BZF      GOTOERS                               #  SEE IF ADDRESS POINTS TO FIXED OR ERAS.
044614,000670:    6673           30165                 +4        CA       BANKSET                               #  SET EBANK PART OF BBANK. NEXT, SET UP
044615,000671:    6674           54006                           TS       BBANK                                 #  FBANK. THE COMBINATION IS PICKED UP &
044616,000672:    6675           30117                           CA       POLISH                                #  PUT INTO BANKSET AT INTPRET +2.
044617,000673:    6676           54004                           TS       FBANK                                 
044618,000674:    6677           75003                           MASK     LOW10                                 
044619,000675:    6700           64732                           AD       2K                                    
044620,000676:    6701           54164                           TS       LOC                                   
044621,000677:    6702           16063                           TCF      INTPRET    +3                         
044622,000678: 
044623,000679:    6703  E3,1400                                  EBANK=   1400                                  #  SO YUL DOESN'T CUSS THE "CA 1400" BELOW.
044624,000680: 
044625,000681:    6703           30117        GOTOERS            CA       POLISH                                #  THE GIVEN ADDRESS IS IN ERASABLE - SEE
044626,000682:    6704           66272                           AD       -ENDVAC                               #  IF RELATIVE TO THE WORK AREA.
044627,000683:    6705           10000                           CCS      A                                     
044628,000684:    6706           30117                           CA       POLISH                                #  GENERAL ERASABLE.
044629,000685:    6707           16716                           TCF      GOTOGE                                
044630,000686: 

Page 1022

044632,000688:    6710           30120                           CA       FIXLOC                                #  WORK AREA.
044633,000689:    6711           60117                           AD       POLISH                                
044634,000690:    6712           50000                           INDEX    A                                     #  USE THE GIVEN ADDRESS AS THE ADDRESS OF
044635,000691:    6713           30000                           CA       0                                     #  THE BRANCH ADDRESS.
044636,000692:    6714           54117                           TS       POLISH                                
044637,000693:    6715           16670                           TCF      GOTO       +1                         #  ALLOWS ARBITRARY INDIRECTNESS LEVELS.
044638,000694: 
044639,000695:    6716           54003        GOTOGE             TS       EBANK                                 
044640,000696:    6717           74350                           MASK     LOW8                                  
044641,000697:    6720           50000                           INDEX    A                                     #  USE THE GIVEN ADDRESS AS THE ADDRESS OF
044642,000698:    6721           31400                           CA       1400                                  #  THE BRANCH ADDRESS.
044643,000699:    6722           54117                           TS       POLISH                                
044644,000700:    6723           16670                           TCF      GOTO       +1                         
044645,000701: 
044646,000702:    6724           50164        CGOTO              INDEX    LOC                                   #  COMPUTED GO TO. PICK UP ADDRESS OF CADR
044647,000703:    6725           30001                           CA       1                                     #  LIST.
044648,000704:    6726           50116                           INDEX    ADDRWD                                #  ADD MODIFIER.
044649,000705:    6727           60000                           AD       0                                     
044650,000706:    6730           54004                           TS       FBANK                                 #  SELECT GOTO ADDRESS.
044651,000707:    6731           75003                           MASK     LOW10                                 
044652,000708:    6732           50000                           INDEX    A                                     
044653,000709:    6733           32000                           CA       10000                                 
044654,000710:    6734           54117                           TS       POLISH                                
044655,000711:    6735           16670                           TCF      GOTO       +1                         #  WITH ADDRESS IN A.
044656,000712: 
044657,000713:    6736           30165        SWBRANCH           CA       BANKSET                               #  SWITCH INSTRUCTIONS WHICH ELECT TO
044658,000714:    6737           54004                           TS       FBANK                                 #  BRANCH COME HERE TO DO SO.
044659,000715:    6740           50164                           INDEX    LOC                                   
044660,000716:    6741           30001                           CA       1                                     
044661,000717:    6742           54117                           TS       POLISH                                
044662,000718:    6743           16670                           TCF      GOTO       +1                         
044663,000719: 

Page 1023

044665,000721:                                                                                                  #           TRIPLE PRECISION BRANCHING ROUTINE. IF CALLING TC IS AT L, RETURN IS AS FOLLOWS:
044666,000722: 
044667,000723:                                                                                                  #           L+1  IF MPAC IS GREATER THAN ZERO.
044668,000724:                                                                                                  #           L+2  IF MPAC IS EQUAL TO +0 OR -0.
044669,000725:                                                                                                  #           L+3  IF MPAC IS LESS THAN ZERO.
044670,000726: 
044671,000727:    6744           10154        BRANCH             CCS      MPAC                                  
044672,000728:    6745           00002                           TC       Q                                     
044673,000729:    6746           16750                           TCF      +2                                    #  ON ZERO.
044674,000730:    6747           16762                           TCF      NEG                                   
044675,000731: 
044676,000732:    6750           10155                           CCS      MPAC       +1                         
044677,000733:    6751           00002                           TC       Q                                     
044678,000734:    6752           16754                           TCF      +2                                    
044679,000735:    6753           16762                           TCF      NEG                                   
044680,000736: 
044681,000737:    6754           10156                           CCS      MPAC       +2                         
044682,000738:    6755           00002                           TC       Q                                     
044683,000739:    6756           16760                           TCF      +2                                    
044684,000740:    6757           16762                           TCF      NEG                                   
044685,000741: 
044686,000742:    6760           50002        Q+1                INDEX    Q                                     
044687,000743:    6761           00001                           TC       1                                     
044688,000744: 
044689,000745:    6762           50002        NEG                INDEX    Q                                     #  IF FIRST NON-ZERO REGISTER WAS NEGATIVE.
044690,000746:    6763           00002                           TC       2                                     
044691,000747: 
044692,000748: 
044693,000749:    6764     6762               Q+2                =        NEG                                   
044694,000750: 
044695,000751:                                                                                                  #           ITRACE (3) REFERS TO "EXIT".
044696,000752:    6764           30165        EXIT               CA       BANKSET                               #  RESTORE USER'S BANK SETTING, AND LEAVE
044697,000753:    6765           54006                           TS       BBANK                                 #  INTERPRETIVE MODE.
044698,000754:    6766           50164                           INDEX    LOC                                   
044699,000755:    6767           00001                           TC       1                                     
044700,000756: 

Page 1024

044702,000758:                                                                                                  #  SECTION 3 - ADD/SUBTRACT PACKAGE.
044703,000759: 
044704,000760:                                                                                                  #           THE FOLLOWING OPERATIONS ARE PROVIDED FOR ADDING TO AND SUBTRACTING FROM THE MULTI-PURPOSE ACCUMULATOR
044705,000761:                                                                                                  #  MPAC:
044706,000762: 
044707,000763:                                                                                                  #           1.  DAD                DOUBLE PRECISION ADD.
044708,000764:                                                                                                  #           2.  DSU                DOUBLE PRECISION SUBTRACT.
044709,000765:                                                                                                  #           3.  BDSU               DOUBLE PRECISION SUBTRACT FROM.
044710,000766: 
044711,000767:                                                                                                  #           4.  TAD                TRIPLE PRECISION ADD.
044712,000768: 
044713,000769:                                                                                                  #           5.  VAD                VECTOR ADD.
044714,000770:                                                                                                  #           6.  VSU                VECTOR SUBTRACT.
044715,000771:                                                                                                  #           7.  BVSU               VECTOR SUBTRACT FROM.
044716,000772: 
044717,000773:                                                                                                  #  THE INTERPRETIVE OVERFLOW INDICATOR OVFIND IS SET NON-ZERO IF OVERFLOW OCCURS IN ANY OF THE ABOVE.
044718,000774: 
044719,000775:    6770           34726        VSU                CAF      BIT15                                 #  CHANGES 0 TO DCS.
044720,000776:    6771           16773                           TCF      +2                                    
044721,000777: 
044722,000778:    6772           34346        VAD                CAF      PRIO30                                #  CHANGES 0 TO DCA.
044723,000779:    6773           26116                           ADS      ADDRWD                                
044724,000780:    6774           00006                           EXTEND                                         
044725,000781:    6775           50116                           INDEX    ADDRWD                                
044726,000782:    6776           00003                           READ     HISCALAR                              #  DCA  2   OR   DCS  2
044727,000783:    6777           20160                           DAS      MPAC       +3                         
044728,000784:    7000           00006                           EXTEND                                         #  CHECK OVERFLOW.
044729,000785:    7001           17003                           BZF      +2                                    
044730,000786:    7002           07035                           TC       OVERFLWY                              
044731,000787: 
044732,000788:    7003           00006                           EXTEND                                         
044733,000789:    7004           50116                           INDEX    ADDRWD                                
044734,000790:    7005           00005                           READ     CHAN5                                 #  DCA  4  OR  DCS  4
044735,000791:    7006           20162                           DAS      MPAC       +5                         
044736,000792:    7007           00006                           EXTEND                                         
044737,000793:    7010           17012                           BZF      +2                                    
044738,000794:    7011           07032                           TC       OVERFLWZ                              
044739,000795: 
044740,000796:    7012           00006                           EXTEND                                         
044741,000797:    7013           50116                           INDEX    ADDRWD                                
044742,000798:    7014           00001                           READ     LCHAN                                 #  DCA  0  OR  DCS  0
044743,000799:    7015           17021                           TCF      ENDVXV                                
044744,000800: 
044745,000801:    7016           00006        DAD                EXTEND                                         
044746,000802:    7017           50116                           INDEX    ADDRWD                                
044747,000803:    7020           30001                           DCA      0                                     
044748,000804:    7021           20155        ENDVXV             DAS      MPAC                                  #  VXV FINISHES HERE.
044749,000805:    7022           00006                           EXTEND                                         
044750,000806:    7023           16102                           BZF      DANZIG                                
044751,000807: 

Page 1025

044753,000809:    7024           07040        SETOVF             TC       OVERFLOW                              
044754,000810:    7025           16102                           TCF      DANZIG                                
044755,000811: 

Page 1026

044757,000813:    7026           00006        DSU                EXTEND                                         
044758,000814:    7027           50116                           INDEX    ADDRWD                                
044759,000815:    7030           40001                           DCS      0                                     
044760,000816:    7031           17021                           TCF      ENDVXV                                
044761,000817: 
044762,000818:    7032           54001        OVERFLWZ           TS       L                                     #  ENTRY FOR THIRD COMPONENT.
044763,000819:    7033           34747                           CAF      FIVE                                  
044764,000820:    7034           17037                           TCF      +3                                    
044765,000821: 
044766,000822:    7035           54001        OVERFLWY           TS       L                                     #  ENTRY FOR SECOND COMPONENT.
044767,000823:    7036           36266                           CAF      THREE                                 
044768,000824:    7037           56001                           XCH      L                                     
044769,000825: 
044770,000826:    7040           50000        OVERFLOW           INDEX    A                                     #  ENTRY FOR 1ST COMP OR DP (L=0).
044771,000827:    7041           44725                           CS       LIMITS                                #  PICK UP POSMAX OR NEGMAX.
044772,000828:    7042           54130                           TS       BUF                                   
044773,000829:    7043           00006                           EXTEND                                         
044774,000830:    7044           24000                           AUG      A                                     #  FORCE OVERFLOW.
044775,000831:    7045           50001                           INDEX    L                                     
044776,000832:    7046           26155                           ADS      MPAC       +1                         
044777,000833:    7047           54007                           TS       7                                     
044778,000834:    7050           34746                           CAF      ZERO                                  
044779,000835:    7051           60130                           AD       BUF                                   
044780,000836:    7052           50001                           INDEX    L                                     
044781,000837:    7053           26154                           ADS      MPAC                                  
044782,000838:    7054           54007                           TS       7                                     
044783,000839:    7055           00002                           TC       Q                                     #  NO OVERFLOW EXIT.
044784,000840:    7056           17173                           TCF      SETOVF2                               #  SET OVFIND AND EXIT.
044785,000841: 
044786,000842:    7057           00006        BVSU               EXTEND                                         
044787,000843:    7060           50116                           INDEX    ADDRWD                                
044788,000844:    7061           30003                           DCA      2                                     
044789,000845:    7062           52160                           DXCH     MPAC       +3                         
044790,000846:    7063           00006                           EXTEND                                         
044791,000847:    7064           40001                           DCOM                                           
044792,000848:    7065           20160                           DAS      MPAC       +3                         
044793,000849:    7066           00006                           EXTEND                                         
044794,000850:    7067           17071                           BZF      +2                                    
044795,000851:    7070           07035                           TC       OVERFLWY                              
044796,000852: 
044797,000853:    7071           00006                           EXTEND                                         
044798,000854:    7072           50116                           INDEX    ADDRWD                                
044799,000855:    7073           30005                           DCA      4                                     
044800,000856:    7074           52162                           DXCH     MPAC       +5                         
044801,000857:    7075           00006                           EXTEND                                         
044802,000858:    7076           40001                           DCOM                                           
044803,000859:    7077           20162                           DAS      MPAC       +5                         
044804,000860:    7100           00006                           EXTEND                                         
044805,000861:    7101           17103                           BZF      +2                                    
044806,000862:    7102           07032                           TC       OVERFLWZ                              
044807,000863: 

Page 1027

044809,000865:    7103           00006        BDSU               EXTEND                                         
044810,000866:    7104           50116                           INDEX    ADDRWD                                
044811,000867:    7105           30001                           DCA      0                                     
044812,000868:    7106           52155                           DXCH     MPAC                                  
044813,000869:    7107           00006                           EXTEND                                         
044814,000870:    7110           40001                           DCOM                                           
044815,000871:    7111           17021                           TCF      ENDVXV                                
044816,000872: 

Page 1028

044818,000874:                                                                                                  #           TRIPLE PRECISION ADD ROUTINE.
044819,000875: 
044820,000876:    7112           00006        TAD                EXTEND                                         
044821,000877:    7113           50116                           INDEX    ADDRWD                                
044822,000878:    7114           30002                           DCA      1                                     #  ADD MINOR PARTS FIRST.
044823,000879:    7115           20156                           DAS      MPAC       +1                         
044824,000880:    7116           50116                           INDEX    ADDRWD                                
044825,000881:    7117           60000                           AD       0                                     
044826,000882:    7120           60154                           AD       MPAC                                  
044827,000883:    7121           54154                           TS       MPAC                                  
044828,000884:    7122           16102                           TCF      DANZIG                                
044829,000885: 
044830,000886:    7123           17024                           TCF      SETOVF                                #  SET OVFIND IF SUCH OCCURS.
044831,000887: 

Page 1029

044833,000889:                                                                                                  #  ARITHMETIC SUBROUTINES REQUIRED IN FIXED-FIXED.
044834,000890: 
044835,000891:                                                                                                  #           1.  DMPSUB     DOUBLE PRECISION MULTIPLY. MULTIPLY THE CONTENTS OF MPAC,+1 BY THE DP WORD WHOSE ADDRESS
044836,000892:                                                                                                  #                          IS IN ADDRWD AND LEAVE A TRIPLE PRECISION RESULT IN MPAC.
044837,000893:                                                                                                  #           2.  ROUNDSUB   ROUND THE TRIPLE PRECISON CONTENTS OF MPAC TO DOUBLE PRECISION.
044838,000894:                                                                                                  #           3.  DOTSUB     TAKE THE DOT PRODUCT OF THE VECTOR IN MPAC AND THE VECTOR WHOSE ADDRESS IS IN ADDRWD
044839,000895:                                                                                                  #                          AND LEAVE THE TRIPLE PRECISION RESULT IN MPAC.
044840,000896:                                                                                                  #           4.  POLY       USING THE CONTENTS OF MPAC AS A DP ARGUMENT, EVALUATE THE POLYNOMIAL WHOSE DEGREE AND
044841,000897:                                                                                                  #                          COEFFICIENTS IMMEDIATELY FOLLOW THE TC POLY INSTRUCTION (SEE ROUTINE FOR DETAILS.)
044842,000898: 
044843,000899: 
044844,000900:    7124           50002        DMP                INDEX    Q                                     #  BASIC SUBROUTINE FOR USE BY PINBALL, ETC
044845,000901:    7125           30000                           CAF      0                                     #  ADRES OF ARGUMENT FOLLOWS  TC DMP  .
044846,000902:    7126           24002                           INCR     Q                                     
044847,000903:    7127           54116                 -1        TS       ADDRWD                                #  (PROLOGUE FOR SETTING ADDRWD.)
044848,000904: 
044849,000905:    7130           50116        DMPSUB             INDEX    ADDRWD                                #  GET MINOR PART OF OPERAND AT C(ADDRWD).
044850,000906:    7131           30001                           CA       1                                     
044851,000907:    7132           54156                           TS       MPAC       +2                         #  THIS WORKS FOR SQUARING MPAC AS WELL.
044852,000908:    7133           34746                           CAF      ZERO                                  #  SET MPAC +1 TO ZERO SO WE CAN ACCUMULATE
044853,000909:    7134           56155                           XCH      MPAC       +1                         #  THE PARTIAL PRODUCTS WITH DAS
044854,000910:    7135           54135                           TS       MPTEMP                                #  INSTRUCTIONS.
044855,000911:    7136           00006                           EXTEND                                         
044856,000912:    7137           70156                           MP       MPAC       +2                         #  MINOR OF MPAC X MINOR OF C(ADDRWD).
044857,000913: 
044858,000914:    7140           56156                           XCH      MPAC       +2                         #  DISCARD MINOR PART OF ABOVE RESULT AND
044859,000915:    7141           00006                           EXTEND                                         #  FORM MAJOR OF MPAC X MINOR OF C(ADDRWD).
044860,000916:    7142           70154                           MP       MPAC                                  
044861,000917:    7143           20156                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
044862,000918: 
044863,000919:    7144           50116                           INDEX    ADDRWD                                #  GET MAJOR PART OF ARGUMENT AT C(ADDRWD).
044864,000920:    7145           30000                           CA       0                                     
044865,000921:    7146           56135                           XCH      MPTEMP                                #  SAVE AND BRING OUT MINOR OF MPAC.
044866,000922:    7147           00006        DMPSUB2            EXTEND                                         
044867,000923:    7150           70135                           MP       MPTEMP                                #  MAJOR OF C(ADDRWD) X MINOR OF MPAC.
044868,000924:    7151           20156                           DAS      MPAC       +1                         #  ACCUMULATE, SETTING A TO NET OVERFLOW.
044869,000925: 
044870,000926:    7152           56154                           XCH      MPAC                                  #  SETTING MPAC TO 0 OR +-1.
044871,000927:    7153           00006                           EXTEND                                         
044872,000928:    7154           70135                           MP       MPTEMP                                #  MAJOR OF MPAC X MAJOR OF C(ADDRWD).
044873,000929:    7155           20155                           DAS      MPAC                                  #  GUARANTEED NO OVERFLOW.
044874,000930:    7156           00002                           TC       Q                                     #  49 MCT = .573 MS. INCLUDING RETURN.
044875,000931: 

Page 1030

044877,000933:                                                                                                  #           ROUND MPAC TO DOUBLE PRECISION, SETTING OVFIND ON THE RARE EVENT OF OVERFLOW.
044878,000934: 
044879,000935:    7157           34746        ROUNDSUB           CAF      ZERO                                  #  SET MPAC +2 = 0 FOR SCALARS AND CHANGE
044880,000936:    7160           54163                 +1        TS       MODE                                  #  MODE TO DP.
044881,000937: 
044882,000938:    7161           56156        VROUND             XCH      MPAC       +2                         #  BUT WE NEEDNT TAKE THE TIME FOR VECTORS.
044883,000939:    7162           60000                           DOUBLE                                         
044884,000940:    7163           54001                           TS       L                                     
044885,000941:    7164           00002                           TC       Q                                     
044886,000942: 
044887,000943:    7165           60155                           AD       MPAC       +1                         #  ADD ROUNDING BIT IF MPAC +2 WAS GREATER
044888,000944:    7166           54155                           TS       MPAC       +1                         #  THAN .5 IN MAGNITUDE.
044889,000945:    7167           00002                           TC       Q                                     
044890,000946: 
044891,000947:    7170           60154                           AD       MPAC                                  #  PROPAGATE INTERFLOW.
044892,000948:    7171           54154                           TS       MPAC                                  
044893,000949:    7172           00002                           TC       Q                                     
044894,000950: 
044895,000951:    7173           54121        SETOVF2            TS       OVFIND                                #  (RARE).
044896,000952:    7174           00002                           TC       Q                                     
044897,000953: 

Page 1031

044899,000955:                                                                                                  #           THE DOT PRODUCT SUBROUTINE USUALLY FORMS THE DOT PRODUCT OF THE VECTOR IN MPAC WITH A STANDARD SIX
044900,000956:                                                                                                  #  REGISTER VECTOR WHOSE ADDRESS IS IN ADDRWD. IN THIS CASE C(DOTINC) ARE SET TO 2. VXM, HOWEVER, SETS C(DOTINC) TO
044901,000957:                                                                                                  #  6 SO THAT DOTSUB DOTS MPAC WITH A COLUMN VECTOR OF THE MATRIX IN QUESTION IN THIS CASE.
044902,000958: 
044903,000959:    7175           34743        PREDOT             CAF      TWO                                   #  PROLOGUE TO SET DOTINC TO 2.
044904,000960:    7176           54136                           TS       DOTINC                                
044905,000961: 
044906,000962:    7177           00006        DOTSUB             EXTEND                                         
044907,000963:    7200           22137                           QXCH     DOTRET                                #  SAVE RETURN.
044908,000964:    7201           07130                           TC       DMPSUB                                #  DOT X COMPONENTS.
044909,000965:    7202           52160                           DXCH     MPAC       +3                         #  POSITION Y COMPONENT OF MPAC FOR
044910,000966:    7203           52155                           DXCH     MPAC                                  #  MULTIPLICATION WHILE SAVING RESULT IN
044911,000967:    7204           52131                           DXCH     BUF                                   #  THREE WORD BUFFER, BUF.
044912,000968:    7205           30156                           CA       MPAC       +2                         
044913,000969:    7206           54132                           TS       BUF        +2                         
044914,000970: 
044915,000971:    7207           30136                           CA       DOTINC                                #  ADVANCE ADDRWD TO Y COMPONENT OF
044916,000972:    7210           26116                           ADS      ADDRWD                                #  OTHER ARGUMENT.
044917,000973:    7211           07130                           TC       DMPSUB                                
044918,000974:    7212           52156                           DXCH     MPAC       +1                         #  ACCUMULATE PARTIAL PRODUCTS.
044919,000975:    7213           20132                           DAS      BUF        +1                         
044920,000976:    7214           60154                           AD       MPAC                                  
044921,000977:    7215           60130                           AD       BUF                                   
044922,000978:    7216           54130                           TS       BUF                                   
044923,000979:    7217           17221                           TCF      +2                                    
044924,000980:    7220           54121                           TS       OVFIND                                #  IF OVERFLOW OCCURS.
044925,000981: 
044926,000982:    7221           52162                           DXCH     MPAC       +5                         #  MULTIPLY Z COMPONENTS.
044927,000983:    7222           52155                           DXCH     MPAC                                  
044928,000984:    7223           30136                           CA       DOTINC                                
044929,000985:    7224           26116                           ADS      ADDRWD                                
044930,000986:    7225           07130                           TC       DMPSUB                                
044931,000987:    7226           52132        ENDDOT             DXCH     BUF        +1                         #  LEAVE FINAL ACCUMULATION IN MPAC.
044932,000988:    7227           20156                           DAS      MPAC       +1                         
044933,000989:    7230           60154                           AD       MPAC                                  
044934,000990:    7231           60130                           AD       BUF                                   
044935,000991:    7232           54154                           TS       MPAC                                  
044936,000992:    7233           00137                           TC       DOTRET                                
044937,000993: 
044938,000994:    7234           07040                           TC       OVERFLOW                              #  ON OVERFLOW HERE.
044939,000995:    7235           00137                           TC       DOTRET                                
044940,000996: 

Page 1032

044942,000998:                                                                                                  #  DOUBLE PRECISION POLYNOMIAL EVALUATOR
044943,000999: 
044944,001000:                                                                                                  #                                     N        N-1
044945,001001:                                                                                                  #           THIS ROUTINE EVALUATES A X  + A   X    + ... + A X + A  LEAVING THE DP RESULT IN MPAC ON EXIT.
044946,001002:                                                                                                  #                                   N      N-1              1     0
044947,001003: 
044948,001004:                                                                                                  #  THE ROUTINE HAS TWO ENTRIES
044949,001005: 
044950,001006:                                                                                                  #           1. ENTRY THRU POWRSERS. THE COEFFICIENTS MAY BE EITHER IN FIXED OR ERASABLE, THE CALL IS BY
044951,001007:                                                                                                  #              TC POWRSERS, AND THE RETURN IS TO LOC(TC POWRSERS)+1. THE ENTERING DATA MUST BE AS FOLLOWS
044952,001008: 
044953,001009:                                                                                                  #                                          A        SP     LOC-3           ADDRESS FOR REFERENCING COEF TABLE
044954,001010:                                                                                                  #                                          L        SP     N-1             N IS THE DEGREE OF THE POWER SERIES
044955,001011:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
044956,001012: 
044957,001013:                                                                                                  #                                          LOC-2N   DP     A(0)
044958,001014:                                                                                                  #                                                   ...
044959,001015:                                                                                                  #                                          LOC      DP     A(N)
044960,001016: 
044961,001017:                                                                                                  #           2. ENTRY THRU POLY. THE CALL TO POLY AND THE ENTERING DATA MUST BE AS FOLLOWS
044962,001018: 
044963,001019:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
044964,001020: 
044965,001021:                                                                                                  #                                          LOC      TC     POLY
044966,001022:                                                                                                  #                                          LOC+1    SP     N-1
044967,001023:                                                                                                  #                                          LOC+2    DP     A(0)
044968,001024:                                                                                                  #                                                   ...
044969,001025:                                                                                                  #                                          LOC+2N+2 DP     A(N)            RETURN IS TO LOC+2N+4
044970,001026: 
044971,001027:    7236           00006        POWRSERS           EXTEND                                         
044972,001028:    7237           22141                           QXCH     POLYRET                               #  RETURN ADDRESS
044973,001029:    7240           54117                           TS       POLISH                                #  POWER SERIES ADDRESS
044974,001030:    7241           22140                           LXCH     POLYCNT                               #  N-1 TO COUNTER
044975,001031:    7242           17253                           TCF      POLYCOM                               #  SKIP SET UP BY POLY
044976,001032: 
044977,001033:    7243           50002        POLY               INDEX    Q                                     
044978,001034:    7244           30000                           CAF      0                                     
044979,001035:    7245           54140                           TS       POLYCNT                               #  N-1 TO COUNTER
044980,001036:    7246           60000                           DOUBLE                                         
044981,001037:    7247           60002                           AD       Q                                     
044982,001038:    7250           54117                           TS       POLISH                                #  L(A(N))-3 TO POLISH
044983,001039:    7251           64747                           AD       FIVE                                  
044984,001040:    7252           54141                           TS       POLYRET                               #  STORE RETURN ADDRESS
044985,001041: 
044986,001042:    7253           36314        POLYCOM            CAF      LVBUF                                 #  INCOMING X WILL BE MOVED TO VBUF, SO
044987,001043:    7254           54116                           TS       ADDRWD                                #  SET ADDRWD SO DMPSUB WILL MPY BY VBUF.
044988,001044: 
044989,001045:    7255           00006                           EXTEND                                         
044990,001046:    7256           50117                           INDEX    POLISH                                
044991,001047:    7257           30004                           DCA      3                                     
044992,001048: 

Page 1033

044994,001050:    7260           52155                           DXCH     MPAC                                  #  LOAD A(N) INTO MPAC,
044995,001051:    7261           52123                           DXCH     VBUF                                  #  SAVING X IN VBUF
044996,001052:    7262           17266                           TCF      POLY2                                 
044997,001053: 
044998,001054:    7263           54140        POLYLOOP           TS       POLYCNT                               #  SAVE DECREMENTED LOOP COUNTER
044999,001055:    7264           44743                           CS       TWO                                   
045000,001056:    7265           26117                           ADS      POLISH                                #  REGRESS COEFFICIENT POINTER
045001,001057: 
045002,001058:    7266           07130        POLY2              TC       DMPSUB                                #  MULTIPLY BY X
045003,001059:    7267           00006                           EXTEND                                         
045004,001060:    7270           50117                           INDEX    POLISH                                
045005,001061:    7271           30002                           DCA      1                                     #  ADD IN NEXT COEFFICIENT
045006,001062:    7272           20155                           DAS      MPAC                                  #  USERS RESPONSIBILITY TO ASSURE NO OVFLOW
045007,001063: 
045008,001064:    7273           10140                           CCS      POLYCNT                               
045009,001065:    7274           17263                           TCF      POLYLOOP                              
045010,001066:    7275           00141                           TC       POLYRET                               #  RETURN CALLER
045011,001067: 

Page 1034

045013,001069:                                                                                                  #           MISCELLANEOUS MULTI-PRECISION ROUTINES REQUIRED IN FIXED-FIXED BUT NOT USED BY THE INTERPRETER.
045014,001070: 
045015,001071:    7276           34746        DPAGREE            CAF      ZERO                                  #  DOUBLE PRECISION ENTRY -
045016,001072:    7277           54156                           TS       MPAC       +2                         #  ZERO LOW-ORDER WORD
045017,001073: 
045018,001074:    7300           22002        TPAGREE            LXCH     Q                                     #  FORCE SIGN AGREEMENT AMONG THE TRIPLE
045019,001075:    7301           06744                           TC       BRANCH                                #  PRECISION CONTENTS OF MPAC.  RETURNING
045020,001076:    7302           17306                           TCF      ARG+                                  #  WITH SIGNUM OF THE INPUT IN A.
045021,001077:    7303           17326                           TCF      ARGZERO                               
045022,001078: 
045023,001079:    7304           44724                           CS       POSMAX                                #  IF NEGATIVE.
045024,001080:    7305           17307                           TCF      +2                                    
045025,001081: 
045026,001082:    7306           34724        ARG+               CAF      POSMAX                                
045027,001083:    7307           54002                           TS       Q                                     
045028,001084:    7310           00006                           EXTEND                                         
045029,001085:    7311           24000                           AUG      A                                     #  FORMS +-1.0.
045030,001086:    7312           60156                           AD       MPAC       +2                         
045031,001087:    7313           54156                           TS       MPAC       +2                         
045032,001088:    7314           34746                           CAF      ZERO                                  
045033,001089:    7315           60002                           AD       Q                                     
045034,001090:    7316           60155                           AD       MPAC       +1                         
045035,001091:    7317           54155                           TS       MPAC       +1                         
045036,001092:    7320           34746                           CAF      ZERO                                  
045037,001093:    7321           60002                           AD       Q                                     #  Q STILL HAS POSMAX OR NEGMAX IN IT.
045038,001094:    7322           60154                           AD       MPAC                                  
045039,001095:    7323           54154        ARGZERO2           TS       MPAC                                  #  ALWAYS SKIPPING UNLESS ARGZERO.
045040,001096:    7324           54155                           TS       MPAC       +1                         
045041,001097:    7325           00001                           TC       L                                     #  RETURN VIA L.
045042,001098: 
045043,001099:    7326           54156        ARGZERO            TS       MPAC       +2                         #  SET ALL THREE MPAC REGISTERS TO ZERO.
045044,001100:    7327           17323                           TCF      ARGZERO2                              
045045,001101: 
045046,001102:                                                                                                  #           SHORTMP MULTIPLIES THE TP CONTENTS OF MPAC BY THE SINGLE PRECISION NUMBER ARRIVING IN A.
045047,001103: 
045048,001104:    7330           54135        SHORTMP            TS       MPTEMP                                
045049,001105:    7331           00006                           EXTEND                                         
045050,001106:    7332           70156                           MP       MPAC       +2                         
045051,001107:    7333           54156                           TS       MPAC       +2                         
045052,001108:    7334           34746        SHORTMP2           CAF      ZERO                                  #  SO SUBSEQUENT DAS WILL WORK.
045053,001109:    7335           56155                           XCH      MPAC       +1                         
045054,001110:    7336           17147                           TCF      DMPSUB2                               
045055,001111: 

At the bottom of the page is wrtten some code: CA EX MP DXCH CA HMEAS +1 EX MP .2SP DXCH L _ CA ZERO DXCH HMEAS EX MP .2SP DAS HMEAS _

045071,001127: 

Page 1035

045073,001129:                                                                                                  #         DMPNSUB MULTIPLIES THE DP FRACTION ARRIVING IN MPAC BY THE SP
045074,001130:                                                                                                  #  INTEGER ARRIVING IN A.  THE DP PRODUCT DEPARTS BOTH IN MPAC AND IN
045075,001131:                                                                                                  #  A AND L.  NOTE THAT DMPNSUB NORMALLY INCREASES THE MAGNITUDE OF THE
045076,001132:                                                                                                  #  CONTENTS OF MPAC.  THE CUSTOMER MUST INSURE THAT B(A) X B(MPAC,MPAC+1)
045077,001133:                                                                                                  #  AND B(A) X B(MPAC) ARE LESS THAN 1 IN MAGNITUDE, WHERE B, AS IS OBVIOUS,
045078,001134:                                                                                                  #  INDICATES THE ARRIVING CONTENTS.
045079,001135: 
045080,001136:    7337           54135        DMPNSUB            TS       DMPNTEMP                              
045081,001137:    7340           00006                           EXTEND                                         
045082,001138:    7341           70155                           MP       MPAC       +1                         
045083,001139:    7342           52155                           DXCH     MPAC                                  #  LOW PRODUCT TO MPAC, HIGH FACTOR TO A
045084,001140:    7343           00006                           EXTEND                                         
045085,001141:    7344           70135                           MP       DMPNTEMP                              
045086,001142:    7345           30001                           CA       L                                     
045087,001143:    7346           26154                           ADS      MPAC                                  #  COMPLETING THE PRODUCT IN MPAC
045088,001144:    7347           00006                           EXTEND                                         
045089,001145:    7350           30155                           DCA      MPAC                                  #  BRINGING THE PRODUCT INTO A AND L
045090,001146:    7351           00002                           TC       Q                                     
045091,001147: 

Page 1036

045093,001149:                                                                                                  #  MISCELLANEOUS VECTOR OPERATIONS. INCLUDED HERE ARE THE FOLLOWING:
045094,001150: 
045095,001151:                                                                                                  #           1.  DOT                DP VECTOR DOT PRODUCT.
045096,001152:                                                                                                  #           2.  VXV                DP VECTOR CROSS PRODUCT.
045097,001153:                                                                                                  #           3.  VXSC               DP VECTOR TIMES SCALAR.
045098,001154:                                                                                                  #           4.  V/SC               DP VECTOR DIVIDED BY SCALAR.
045099,001155:                                                                                                  #           5.  VPROJ              DP VECTOR PROJECTION. ( (MPAC.X)MPAC ).
045100,001156:                                                                                                  #           6.  VXM                DP VECTOR POST-MULTIPLIED BY MATRIX.
045101,001157:                                                                                                  #           7.  MXV                DP VECTOR PRE-MULTIPLIED BY MATRIX.
045102,001158: 
045103,001159:    7352           07175        DOT                TC       PREDOT                                #  DO THE DOT PRODUCT AND EXIT, CHANGING
045104,001160:    7353           34746        DMODE              CAF      ZERO                                  #  THE MODE TO DP SCALAR.
045105,001161:    7354           16101                           TCF      NEWMODE                               
045106,001162: 
045107,001163: 
045108,001164:    7355           34743        MXV                CAF      TWO                                   #  SET UP MATINC AND DOTINC FOR ROW
045109,001165:    7356           54140                           TS       MATINC                                #  VECTORS.
045110,001166:    7357           17363                           TCF      VXM/MXV                               #  GO TO COMMON PORTION.
045111,001167: 
045112,001168:    7360           44354        VXM                CS       TEN                                   #  SET MATINC AND DOTINC TO REFER TO MATRIX
045113,001169:    7361           54140                           TS       MATINC                                #  AS THREE COLUMN VECTORS.
045114,001170:    7362           36263                           CAF      SIX                                   
045115,001171: 

Page 1037

045117,001173:                                                                                                  #           COMMON PORTION OF MXV AND VXM.
045118,001174: 
045119,001175:    7363           54136        VXM/MXV            TS       DOTINC                                
045120,001176:                                                                                                  #           ITRACE (2) REFERS TO "VXM/MXV".
045121,001177:    7364           07553                           TC       MPACVBUF                              #  SAVE VECTOR IN MPAC FOR FURTHER USE.
045122,001178: 
045123,001179:    7365           07177                           TC       DOTSUB                                #  GO DOT TO GET X COMPONENT OF ANSWER.
045124,001180:    7366           00006                           EXTEND                                         
045125,001181:    7367           30123                           DCA      VBUF                                  #  MOVE MPAC VECTOR BACK INTO MPAC, SAVING
045126,001182:    7370           52155                           DXCH     MPAC                                  #  NEW X COMPONENT IN BUF2.
045127,001183:    7371           52134                           DXCH     BUF2                                  
045128,001184:    7372           00006                           EXTEND                                         
045129,001185:    7373           30125                           DCA      VBUF       +2                         
045130,001186:    7374           52160                           DXCH     MPAC       +3                         
045131,001187:    7375           00006                           EXTEND                                         
045132,001188:    7376           30127                           DCA      VBUF       +4                         
045133,001189:    7377           52162                           DXCH     MPAC       +5                         
045134,001190:    7400           30140                           CA       MATINC                                #  INITIALIZE ADDRWD FOR NEXT DOT PRODUCT.
045135,001191:    7401           26116                           ADS      ADDRWD                                #  FORMS BASE ADDRESS OF NEXT COLUMN(ROW).
045136,001192: 
045137,001193:    7402           07177                           TC       DOTSUB                                
045138,001194:    7403           52123                           DXCH     VBUF                                  #  MOVE GIVEN VECTOR BACK TO MPAC, SAVING Y
045139,001195:    7404           52155                           DXCH     MPAC                                  #  COMPONENT OF ANSWER IN VBUF +2.
045140,001196:    7405           52125                           DXCH     VBUF       +2                         
045141,001197:    7406           52160                           DXCH     MPAC       +3                         
045142,001198:    7407           52127                           DXCH     VBUF       +4                         
045143,001199:    7410           52162                           DXCH     MPAC       +5                         
045144,001200:    7411           30140                           CA       MATINC                                #  FORM ADDRESS OF LAST COLUMN OR ROW.
045145,001201:    7412           26116                           ADS      ADDRWD                                
045146,001202: 
045147,001203:    7413           07177                           TC       DOTSUB                                
045148,001204:    7414           52134                           DXCH     BUF2                                  #  ANSWER NOW COMPLETE. PUT COMPONENTS INTO
045149,001205:    7415           52155                           DXCH     MPAC                                  #  PROPER MPAC REGISTERS.
045150,001206:    7416           52162                           DXCH     MPAC       +5                         
045151,001207:    7417           52125                           DXCH     VBUF       +2                         
045152,001208:    7420           52160                           DXCH     MPAC       +3                         
045153,001209:    7421           16102                           TCF      DANZIG                                #  EXIT.
045154,001210: 

Page 1038

045156,001212:                                                                                                  #           VXSC - VECTOR TIMES SCALAR.
045157,001213: 
045158,001214:    7422           10163        VXSC               CCS      MODE                                  #  TEST PRESENT MODE.
045159,001215:    7423           17451                           TCF      DVXSC                                 #  SEPARATE ROUTINE WHEN SCALAR IS IN MPAC.
045160,001216:    7424           17451                           TCF      DVXSC                                 
045161,001217: 
045162,001218:    7425           07130        VVXSC              TC       DMPSUB                                #  COMPUTE X COMPONENT
045163,001219:    7426           07161                           TC       VROUND                                #  AND ROUND IT.
045164,001220:    7427           52160                           DXCH     MPAC       +3                         #  PUT Y COMPONENT INTO MPAC SAVING MPAC IN
045165,001221:    7430           52155                           DXCH     MPAC                                  #  MPAC +3.
045166,001222:    7431           52160                           DXCH     MPAC       +3                         
045167,001223: 
045168,001224:    7432           07130                           TC       DMPSUB                                #  DO SAME FOR Y AND Z COMPONENTS.
045169,001225:    7433           07161                           TC       VROUND                                
045170,001226:    7434           52162                           DXCH     MPAC       +5                         
045171,001227:    7435           52155                           DXCH     MPAC                                  
045172,001228:    7436           52162                           DXCH     MPAC       +5                         
045173,001229: 
045174,001230:    7437           07130                           TC       DMPSUB                                
045175,001231:    7440           07161                           TC       VROUND                                
045176,001232:    7441           52155        VROTATEX           DXCH     MPAC                                  #  EXIT USED TO RESTORE MPAC AFTER THIS
045177,001233:    7442           52162                           DXCH     MPAC       +5                         #  TYPE OF ROTATION. CALLED BY VECTOR SHIFT
045178,001234:    7443           52160                           DXCH     MPAC       +3                         #  RIGHT, V/SC, ETC.
045179,001235:    7444           52155                           DXCH     MPAC                                  
045180,001236:    7445           16102                           TCF      DANZIG                                
045181,001237: 

Page 1039

045183,001239:                                                                                                  #           DP VECTOR PROJECTION ROUTINE.
045184,001240: 
045185,001241:    7446           07175        VPROJ              TC       PREDOT                                #  (MPAC.X)MPAC IS COMPUTED AND LEFT IN
045186,001242:    7447           44742                           CS       FOUR                                  #  MPAC. DO DOT AND FALL INTO DVXSC.
045187,001243:    7450           26116                           ADS      ADDRWD                                
045188,001244: 
045189,001245:                                                                                                  #           VXSC WHEN SCALAR ARRIVES IN MPAC AND VECTOR IS AT X.
045190,001246: 
045191,001247:    7451           00006        DVXSC              EXTEND                                         #  SAVE SCALAR IN MPAC +3 AND GET X
045192,001248:    7452           30155                           DCA      MPAC                                  #  COMPONENT OF ANSWER.
045193,001249:    7453           52160                           DXCH     MPAC       +3                         
045194,001250:    7454           07130                           TC       DMPSUB                                
045195,001251:    7455           07161                           TC       VROUND                                
045196,001252: 
045197,001253:    7456           34743                           CAF      TWO                                   #  ADVANCE ADDRWD TO Y COMPONENT OF X.
045198,001254:    7457           26116                           ADS      ADDRWD                                
045199,001255:    7460           00006                           EXTEND                                         
045200,001256:    7461           30160                           DCA      MPAC       +3                         #  PUT SCALAR BACK INTO MPAC AND SAVE
045201,001257:    7462           52155                           DXCH     MPAC                                  #  X RESULT IN MPAC +5.
045202,001258:    7463           52162                           DXCH     MPAC       +5                         
045203,001259:    7464           07130                           TC       DMPSUB                                
045204,001260:    7465           07161                           TC       VROUND                                
045205,001261: 
045206,001262:    7466           34743                           CAF      TWO                                   
045207,001263:    7467           26116                           ADS      ADDRWD                                #  TO Z COMPONENT.
045208,001264:    7470           52160                           DXCH     MPAC       +3                         #  BRING SCALAR BACK, PUTTING Y RESULT IN
045209,001265:    7471           52155                           DXCH     MPAC                                  #  THE PROPER PLACE.
045210,001266:    7472           52160                           DXCH     MPAC       +3                         
045211,001267:    7473           07130                           TC       DMPSUB                                
045212,001268:    7474           07161                           TC       VROUND                                
045213,001269: 
045214,001270:    7475           52155                           DXCH     MPAC                                  #  PUT Z COMPONENT IN PROPER PLACE, ALSO
045215,001271:    7476           52162                           DXCH     MPAC       +5                         #  POSITIONING X.
045216,001272:    7477           52155                           DXCH     MPAC                                  
045217,001273: 
045218,001274:    7500           16542                           TCF      VMODE                                 #  MODE HAS CHANGED TO VECTOR.
045219,001275: 

Page 1040

045221,001277:                                                                                                  #           THE VECTOR CROSS PRODUCT ROUTINE CALCULATES (X M -X M ,X M -X M ,X M -X M ) WHERE M IS THE VECTOR IN
045222,001278:                                                                                                  #                                                         3 2  2 3  1 3  3 1  2 1  1 2
045223,001279:                                                                                                  #  MPAC AND X THE VECTOR AT THE GIVEN ADDRESS.
045224,001280: 
045225,001281:    7501           00006        VXV                EXTEND                                         
045226,001282:    7502           30162                           DCA      MPAC       +5                         #  FORM UP M3X1, LEAVING M1 IN VBUF.
045227,001283:    7503           52155                           DXCH     MPAC                                  
045228,001284:    7504           52123                           DXCH     VBUF                                  
045229,001285:    7505           07130                           TC       DMPSUB                                #  BY X1.
045230,001286: 
045231,001287:    7506           00006                           EXTEND                                         
045232,001288:    7507           40160                           DCS      MPAC       +3                         #  CALCULATE -X1M2, SAVING X1M3 IN VBUF +2.
045233,001289:    7510           52155                           DXCH     MPAC                                  
045234,001290:    7511           52125                           DXCH     VBUF       +2                         
045235,001291:    7512           07130                           TC       DMPSUB                                
045236,001292: 
045237,001293:    7513           34743                           CAF      TWO                                   #  ADVANCE ADDRWD TO X2.
045238,001294:    7514           26116                           ADS      ADDRWD                                
045239,001295:    7515           00006                           EXTEND                                         
045240,001296:    7516           40162                           DCS      MPAC       +5                         #  PREPARE TO GET -X2M3, SAVING -X1M2 IN
045241,001297:    7517           52155                           DXCH     MPAC                                  #  MPAC +5.
045242,001298:    7520           52162                           DXCH     MPAC       +5                         
045243,001299:    7521           07130                           TC       DMPSUB                                
045244,001300: 
045245,001301:    7522           00006                           EXTEND                                         
045246,001302:    7523           30123                           DCA      VBUF                                  #  GET X2M1, SAVING -X2M3 IN VBUF +4.
045247,001303:    7524           52155                           DXCH     MPAC                                  
045248,001304:    7525           52127                           DXCH     VBUF       +4                         
045249,001305:    7526           07130                           TC       DMPSUB                                
045250,001306: 
045251,001307:    7527           34743                           CAF      TWO                                   #  ADVANCE ADDRWD TO X3.
045252,001308:    7530           26116                           ADS      ADDRWD                                
045253,001309:    7531           00006                           EXTEND                                         
045254,001310:    7532           40123                           DCS      VBUF                                  #  GET -X3M1, ADDING X2M1 TO MPAC +5 TO
045255,001311:    7533           52155                           DXCH     MPAC                                  #  COMPLETE THE Z COMPONENT OF THE ANSWER.
045256,001312:    7534           20162                           DAS      MPAC       +5                         
045257,001313: 
045258,001314:    7535           00006                           EXTEND                                         
045259,001315:    7536           17540                           BZF      +2                                    
045260,001316:    7537           07032                           TC       OVERFLWZ                              
045261,001317: 
045262,001318:    7540           07130                           TC       DMPSUB                                
045263,001319:    7541           52125                           DXCH     VBUF       +2                         #  MOVE X1M3 TO MPAC +3 SETTING UP FOR X3M2
045264,001320:    7542           52160                           DXCH     MPAC       +3                         #  AND ADD -X3M1 TO MPAC +3 TO COMPLETE THE
045265,001321:    7543           52155                           DXCH     MPAC                                  #  Y COMPONENT OF THE RESULT.
045266,001322:    7544           20160                           DAS      MPAC       +3                         
045267,001323: 
045268,001324:    7545           00006                           EXTEND                                         
045269,001325:    7546           17550                           BZF      +2                                    

Page 1041

045271,001327:    7547           07035                           TC       OVERFLWY                              
045272,001328: 
045273,001329:    7550           07130                           TC       DMPSUB                                
045274,001330:    7551           52127                           DXCH     VBUF       +4                         #  GO ADD -X2M3 TO X3M2 TO COMPLETE THE X
045275,001331:    7552           17021                           TCF      ENDVXV                                #  COMPONENT (TAIL END OF DAD).
045276,001332: 
045277,001333:                                                                                                  #           THE MPACVBUF SUBROUTINE SAVES THE VECTOR IN MPAC IN VBUF WITHOUT CLOBBERING MPAC.
045278,001334: 
045279,001335:    7553           00006        MPACVBUF           EXTEND                                         #  CALLED BY MXV, VXM, AND UNIT.
045280,001336:    7554           30155                           DCA      MPAC                                  
045281,001337:    7555           52123                           DXCH     VBUF                                  
045282,001338:    7556           00006                           EXTEND                                         
045283,001339:    7557           30160                           DCA      MPAC       +3                         
045284,001340:    7560           52125                           DXCH     VBUF       +2                         
045285,001341:    7561           00006                           EXTEND                                         
045286,001342:    7562           30162                           DCA      MPAC       +5                         
045287,001343:    7563           52127                           DXCH     VBUF       +4                         
045288,001344:    7564           00002                           TC       Q                                     #  RETURN TO CALLER.
045289,001345: 
045290,001346: 
045291,001347:                                                                                                  #           DOUBLE PRECISION SIGN AGREE ROUTINE. ARRIVE WITH INPUT IN A+L. OUTPUT IS IN A + L.
045292,001348: 
045293,001349:    7565           10000        ALSIGNAG           CCS      A                                     #  TEST UPPER PART.
045294,001350:    7566           17572                           TCF      UPPOS                                 #  IT IS POSITIVE
045295,001351:    7567           00002                           TC       Q                                     #  ZERO
045296,001352:    7570           17602                           TCF      UPNEG                                 #  NEGATIVE
045297,001353:    7571           00002                           TC       Q                                     #  ZERO
045298,001354: 
045299,001355:    7572           56001        UPPOS              XCH      L                                     #  SAVE DECREMENTED UPPER PART.
045300,001356:    7573           64727                           AD       HALF                                  
045301,001357:    7574           64727                           AD       HALF                                  
045302,001358:    7575           54000                           TS       A                                     #  SKIPS ON OVERFLOW
045303,001359:    7576           17600                           TCF      +2                                    
045304,001360:    7577           24001                           INCR     L                                     #  RESTORE UPPER TO ROIGINAL VALUE
045305,001361:    7600           56001                           XCH      L                                     #  SWAP A + L BACK.
045306,001362:    7601           00002                           TC       Q                                     
045307,001363: 
045308,001364:    7602           56001        UPNEG              XCH      L                                     #  SAVE COMPLEMENTED + DECREMENTED UPPER PT
045309,001365:    7603           64726                           AD       NEGMAX                                
045310,001366:    7604           67770                           AD       NEGONE                                
045311,001367:    7605           54000                           TS       A                                     
045312,001368:    7606           17610                           TCF      +2                                    #  DONT INCREMENT IF NO OVERFLOW.
045313,001369:    7607           24001                           INCR     L                                     
045314,001370:    7610           56001                           XCH      L                                     
045315,001371:    7611           40000                           COM                                            #  MAKE NEGATIVE AGAIN.
045316,001372:    7612           00002                           TC       Q                                     
045317,001373: 

Page 1042

045319,001375:                                                                                                  #           INTERPRETIVE INSTRUCTIONS WHOSE EXECUTION CONSISTS OF PRINCIPALLY CALLING SUBROUTINES.
045320,001376: 
045321,001377:    7613           07130        DMP1               TC       DMPSUB                                #  DMP INSTRUCTION.
045322,001378:    7614           16102                           TCF      DANZIG                                
045323,001379: 
045324,001380:    7615           07130        DMPR               TC       DMPSUB                                
045325,001381:    7616           07160                           TC       ROUNDSUB   +1                         #  (C(A) = +0).
045326,001382:    7617           16102                           TCF      DANZIG                                
045327,001383: 
045328,001384:    7620           00006        DDV                EXTEND                                         
045329,001385:    7621           50116                           INDEX    ADDRWD                                #  MOVE DIVIDEND INTO BUF.
045330,001386:    7622           30001                           DCA      0                                     
045331,001387:    7623           17630                           TCF      BDDV       +4                         
045332,001388: 
045333,001389:    7624           00006        BDDV               EXTEND                                         #  MOVE DIVISOR INTO MPAC SAVING MPAC, THE
045334,001390:    7625           50116                           INDEX    ADDRWD                                #  DIVIDEND, IN BUF.
045335,001391:    7626           30001                           DCA      0                                     
045336,001392:    7627           52155                           DXCH     MPAC                                  
045337,001393:    7630           52131                 +4        DXCH     BUF                                   
045338,001394:    7631           34746                           CAF      ZERO                                  #  DIVIDE ROUTINES IN BANK 0.
045339,001395:    7632           54004                           TS       FBANK                                 
045340,001396:    7633           12353                           TCF      DDV/BDDV                              
045341,001397: 
045342,001398:    7634           30116        SETPD              CA       ADDRWD                                #  MUST SET TO WORK AREA, OR EBANK TROUBLE.
045343,001399:    7635           54166                           TS       PUSHLOC                               
045344,001400:    7636           16104                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
045345,001401: 
045346,001402:    7637           34746        TSLC               CAF      ZERO                                  #  SHIFTING ROUTINES LOCATED IN BANK 00.
045347,001403:    7640           54004                           TS       FBANK                                 
045348,001404:    7641           12172                           TCF      TSLC2                                 
045349,001405: 
045350,001406:    7642           36115        GSHIFT             CAF      LOW7                                  #  USED AS MASK AT GENSHIFT. THIS PROCESSES
045351,001407:    7643           54004                           TS       FBANK                                 #  ANY SHIFT INSTRUCTION (EXCEPT TSLC) WITH
045352,001408:    7644           12214                           TCF      GENSHIFT                              #  AN ADDRESS (ROUTINES IN BANK 0).
045353,001409: 

Page 1043

045355,001411:                                                                                                  #           THE FOLLOWING IS THE PROLOGUE TO V/SC. IF THE PRESENT MODE IS VECTOR, IT SAVES THE SCALAR AT X IN BUF
045356,001412:                                                                                                  #  AND CALLS THE V/SC ROUTINE IN BANK 0. IF THE PRESENT MODE IS SCALAR, IT MOVES THE VECTOR AT X INTO MPAC, SAVING
045357,001413:                                                                                                  #  THE SCALAR IN MPAC IN BUF BEFORE CALLING THE V/SC ROUTINE IN BANK 0.
045358,001414: 
045359,001415:    7645           10163        V/SC               CCS      MODE                                  
045360,001416:    7646           17657                           TCF      DV/SC                                 #  MOVE VECTOR INTO MPAC.
045361,001417:    7647           17657                           TCF      DV/SC                                 
045362,001418: 
045363,001419:    7650           00006        VV/SC              EXTEND                                         
045364,001420:    7651           50116                           INDEX    ADDRWD                                
045365,001421:    7652           30001                           DCA      0                                     
045366,001422:    7653           52131        V/SC1              DXCH     BUF                                   #  IN BOTH CASES, VECTOR IS NOW IN MPAC AND
045367,001423:    7654           34746                           CAF      ZERO                                  #  SCALAR IN BUF.
045368,001424:    7655           54004                           TS       FBANK                                 
045369,001425:    7656           12654                           TCF      V/SC2                                 
045370,001426: 
045371,001427:    7657           00006        DV/SC              EXTEND                                         
045372,001428:    7660           50116                           INDEX    ADDRWD                                
045373,001429:    7661           30003                           DCA      2                                     
045374,001430:    7662           52160                           DXCH     MPAC       +3                         
045375,001431:    7663           00006                           EXTEND                                         
045376,001432:    7664           50116                           INDEX    ADDRWD                                
045377,001433:    7665           30005                           DCA      4                                     
045378,001434:    7666           52162                           DXCH     MPAC       +5                         
045379,001435: 
045380,001436:    7667           44744                           CS       ONE                                   #  CHANGE MODE TO VECTOR.
045381,001437:    7670           54163                           TS       MODE                                  
045382,001438: 
045383,001439:    7671           00006                           EXTEND                                         
045384,001440:    7672           50116                           INDEX    ADDRWD                                
045385,001441:    7673           30001                           DCA      0                                     
045386,001442:    7674           52155                           DXCH     MPAC                                  
045387,001443:    7675           17653                           TCF      V/SC1                                 #  FINISH PROLOGUE AT COMMON SECTION.
045388,001444: 

Page 1044

045390,001446:                                                                                                  #           SIGN AND COMPLEMENT INSTRUCTIONS.
045391,001447: 
045392,001448:    7676           50116        SIGN               INDEX    ADDRWD                                #  CALL COMP INSTRUCTION IF WORD AT X IS
045393,001449:    7677           10000                           CCS      0                                     #  NEGATIVE NON-ZERO.
045394,001450:    7700           16102                           TCF      DANZIG                                
045395,001451:    7701           17703                           TCF      +2                                    
045396,001452:    7702           17711                           TCF      COMP                                  #  DO THE COMPLEMENT.
045397,001453: 
045398,001454:    7703           50116                           INDEX    ADDRWD                                
045399,001455:    7704           10001        CCSL               CCS      1                                     
045400,001456:    7705           16102                           TCF      DANZIG                                
045401,001457:    7706           16102                           TCF      DANZIG                                
045402,001458:    7707           17711                           TCF      COMP                                  
045403,001459:    7710           16102                           TCF      DANZIG                                
045404,001460:    7711           00006        COMP               EXTEND                                         #  COMPLEMENT DP MPAC IN EVERY CASE.
045405,001461:    7712           40155                           DCS      MPAC                                  
045406,001462:    7713           52155                           DXCH     MPAC                                  
045407,001463: 
045408,001464:    7714           10163                           CCS      MODE                                  #  EITHER COMPLEMENT MPAC +3 OR THE REST OF
045409,001465:    7715           17726                           TCF      DCOMP                                 #  THE VECTOR ACCUMULATOR.
045410,001466:    7716           17726                           TCF      DCOMP                                 
045411,001467: 
045412,001468:    7717           00006                           EXTEND                                         #  VECTOR COMPLEMENT.
045413,001469:    7720           40160                           DCS      MPAC       +3                         
045414,001470:    7721           52160                           DXCH     MPAC       +3                         
045415,001471:    7722           00006                           EXTEND                                         
045416,001472:    7723           40162                           DCS      MPAC       +5                         
045417,001473:    7724           52162                           DXCH     MPAC       +5                         
045418,001474:    7725           16102                           TCF      DANZIG                                
045419,001475: 
045420,001476:    7726           40156        DCOMP              CS       MPAC       +2                         
045421,001477:    7727           54156                           TS       MPAC       +2                         
045422,001478:    7730           16102                           TCF      DANZIG                                
045423,001479: 

Page 1045

045425,001481:                                                                                                  #           THE FOLLOWING SHORT SHIFT CODES REQUIRE NO ADDRESS WORD:
045426,001482: 
045427,001483:                                                                                                  #           1.  SR1 TO SR4         SCALAR SHIFT RIGHT.
045428,001484:                                                                                                  #           2.  SR1R TO SR4R       SCALAR SHIFT RIGHT AND ROUND.
045429,001485:                                                                                                  #           3.  SL1 TO SL4         SCALAR SHIFT LEFT.
045430,001486:                                                                                                  #           4.  SL1R TO SL4R       SCALAR SHIFT LEFT AND ROUND.
045431,001487: 
045432,001488:                                                                                                  #           5.  VSR1 TO VSR8       VECTOR SHIFT RIGHT (ALWAYS ROUNDS).
045433,001489:                                                                                                  #           6.  VSL1 TO VSL8       VECTOR SHIFT LEFT (NEVER ROUNDS).
045434,001490: 
045435,001491:                                                                                                  #           THE FOLLOWING CODES REQUIRE AN ADDRESS WHICH MAY BE INDEXED:*
045436,001492: 
045437,001493:                                                                                                  #           1.  SR                 SCALAR SHIFT RIGHT.
045438,001494:                                                                                                  #           2.  SRR                SCALAR SHIFT RIGHT AND ROUND.
045439,001495:                                                                                                  #           3.  SL                 SCALAR SHIFT LEFT.
045440,001496:                                                                                                  #           4.  SLR                SCALAR SHIFT LEFT AND ROUND.
045441,001497: 
045442,001498:                                                                                                  #           5.  VSR                VECTOR SHIFT RIGHT.
045443,001499:                                                                                                  #           6.  VSL                VECTOR SHIFT LEFT.
045444,001500: 
045445,001501:                                                                                                  #  *  IF THE ADDRESS IS INDEXED, AND THE INDEX MODIFICATION RESULTS IN A NEGATIVE SHIFT COUNT, A SHIFT OF THE
045446,001502:                                                                                                  #  ABSOLUTE VALUE OF THE COUNT IS DONE IN THE OPPOSITE DIRECTION.
045447,001503: 
045448,001504: 
045449,001505: 00,2017                                           BANK     00                                    
045450,001506: 
045451,001507: 00,2017                                           COUNT*   $$/INTER                              
045452,001508: 00,2017           36263        SHORTT             CAF      SIX                                   #  SCALAR SHORT SHIFTS COME HERE. THE SHIFT
045453,001509: 00,2020           70020                           MASK     CYR                                   #  COUNT-1 IS NOW IN BITS 2-3 OF CYR. THE
045454,001510: 00,2021           54021                           TS       SR                                    #  ROUNDING BIT IS IN BIT1 AT THIS POINT.
045455,001511: 
045456,001512: 00,2022           10020                           CCS      CYR                                   #  SEE IF RIGHT OR LEFT SHIFT DESIRED.
045457,001513: 00,2023           12101                           TCF      TSSL                                  #  SHIFT LEFT.
045458,001514: 
045459,001515: 00,2024           00024        SRDDV              DEC      20         B-14                       #  MPTEMP SETTING FOR SR BEFORE DDV.
045460,001516: 
045461,001517: 00,2025           50021        TSSR               INDEX    SR                                    #  GET SHIFTING BIT.
045462,001518: 00,2026           34727                           CAF      BIT14                                 
045463,001519: 00,2027           54135                           TS       MPTEMP                                
045464,001520: 
045465,001521: 00,2030           10020                           CCS      CYR                                   #  SEE IF A ROUND IS DESIRED.
045466,001522: 00,2031           02050        RIGHTR             TC       MPACSRND                              #  YES - SHIFT RIGHT AND ROUND.
045467,001523: 00,2032           16101                           TCF      NEWMODE                               #  SET MODE TO DP (C(A) = 0).
045468,001524: 00,2033           30135        MPACSHR            CA       MPTEMP                                #  DO A TRIPLE PRECISION SHIFT RIGHT.
045469,001525: 00,2034           00006                           EXTEND                                         
045470,001526: 00,2035           70156                           MP       MPAC       +2                         
045471,001527: 00,2036           54156                 +3        TS       MPAC       +2                         #  (EXIT FROM SQRT AND ABVAL).
045472,001528: 00,2037           30135                           CA       MPTEMP                                
045473,001529: 00,2040           00006                           EXTEND                                         
045474,001530: 00,2041           70154                           MP       MPAC                                  #  SHIFT MAJOR PART INTO A,L AND PLACE IN

Page 1046

045476,001532: 00,2042           52155                           DXCH     MPAC                                  #  MPAC,+1.
045477,001533: 00,2043           30135                           CA       MPTEMP                                
045478,001534: 00,2044           00006                           EXTEND                                         
045479,001535: 00,2045           70001                           MP       L                                     #  ORIGINAL C(MPAC +1).
045480,001536: 00,2046           20156                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
045481,001537: 00,2047           16102                           TCF      DANZIG                                
045482,001538: 
045483,001539:                                                                                                  #           MPAC SHIFT RIGHT AND ROUND SUBROUTINES.
045484,001540: 
045485,001541: 00,2050           30156        MPACSRND           CA       MPAC       +2                         #  WE HAVE TO DO ALL THREE MULTIPLIES SINCE
045486,001542: 00,2051           00006                           EXTEND                                         #  MPAC +1 AND MPAC +2 MIGHT HAVE SIGN
045487,001543: 00,2052           70135                           MP       MPTEMP                                #  DISAGREEMENT WITH A SHIFT RIGHT OF 1.
045488,001544: 00,2053           56155                           XCH      MPAC       +1                         
045489,001545: 00,2054           00006                           EXTEND                                         
045490,001546: 00,2055           70135                           MP       MPTEMP                                
045491,001547: 00,2056           56155                           XCH      MPAC       +1                         #  TRIAL MINOR PART.
045492,001548: 00,2057           60001                           AD       L                                     
045493,001549: 
045494,001550: 00,2060           60000        VSHR2              DOUBLE                                         #  (FINISH VECTOR COMPONENT SHIFT RIGHT
045495,001551: 00,2061           54156                           TS       MPAC       +2                         #  AND ROUND.
045496,001552: 00,2062           12064                           TCF      +2                                    
045497,001553: 00,2063           26155                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
045498,001554: 
045499,001555: 00,2064           34746                           CAF      ZERO                                  
045500,001556: 00,2065           54156                           TS       MPAC       +2                         
045501,001557: 00,2066           56154                           XCH      MPAC                                  #  SETTING TO ZERO SO FOLLOWING DAS WORKS.
045502,001558: 00,2067           00006                           EXTEND                                         
045503,001559: 00,2070           70135                           MP       MPTEMP                                
045504,001560: 00,2071           20155                           DAS      MPAC                                  #  AGAIN NO OVERFLOW.
045505,001561: 00,2072           00002                           TC       Q                                     
045506,001562: 
045507,001563: 00,2073           30135        VSHRRND            CA       MPTEMP                                #  ENTRY TO SHIFT RIGHT AND ROUND MPAC WHEN
045508,001564: 00,2074           00006                           EXTEND                                         #  MPAC CONTAINS A VECTOR COMPONENT.
045509,001565: 00,2075           70155                           MP       MPAC       +1                         
045510,001566: 00,2076           54155                           TS       MPAC       +1                         
045511,001567: 00,2077           56001                           XCH      L                                     
045512,001568: 00,2100           12060                           TCF      VSHR2                                 #  GO ADD ONE IF NECESSARY AND FINISH.
045513,001569: 

Page 1047

045515,001571:                                                                                                  #           ROUTINE FOR SHORT SCALAR SHIFT LEFT (AND MAYBE ROUND).
045516,001572: 
045517,001573: 00,2101           30021        TSSL               CA       SR                                    #  GET SHIFT COUNT FOR SR.
045518,001574: 00,2102           54135                 +1        TS       MPTEMP                                
045519,001575: 
045520,001576: 00,2103           00006                 +2        EXTEND                                         #  ENTRY HERE FROM SL FOR SCALARS.
045521,001577: 00,2104           30156                           DCA      MPAC       +1                         #  SHIFTING LEFT ONE PLACE AT A TIME IS
045522,001578: 00,2105           20156                           DAS      MPAC       +1                         #  FASTER THAN DOING THE WHOLE SHIFT WITH
045523,001579: 00,2106           60154                           AD       MPAC                                  #  MULTIPLIES ASSUMING THAT FREQUENCY OF
045524,001580: 00,2107           60154                           AD       MPAC                                  #  SHIFT COUNTS GOES DOWN RAPIDLY AS A
045525,001581: 00,2110           54154                           TS       MPAC                                  #  FUNCTION OF THEIR MAGNITUDE.
045526,001582: 00,2111           12113                           TCF      +2                                    
045527,001583: 00,2112           54121                           TS       OVFIND                                #  OVERFLOW. (LEAVES OVERFLOW-CORRECTED
045528,001584:                                                                                                  #  RESULT ANYWAY).
045529,001585: 00,2113           10135                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNT.
045530,001586: 00,2114           12102                           TCF      TSSL       +1                         
045531,001587: 
045532,001588: 00,2115           10020                           CCS      CYR                                   #  SEE IF ROUND WANTED.
045533,001589: 00,2116           07157        ROUND              TC       ROUNDSUB                              #  YES - ROUND AND EXIT.
045534,001590: 00,2117           16102                           TCF      DANZIG                                #  SL LEAVES A ZERO IN CYR FOR NO ROUND.
045535,001591: 00,2120           16102                           TCF      DANZIG                                #  NO - EXIT IMMEDIATL
045536,001592: 

Page 1048

045538,001594:                                                                                                  #  VECTOR SHIFTING ROUTINES.
045539,001595: 
045540,001596: 00,2121           34750        SHORTV             CAF      LOW3                                  #  SAVE 3 BIT SHIFT COUNT - 1 WITHOUT
045541,001597: 00,2122           70020                           MASK     CYR                                   #  EDITING CYR.
045542,001598: 00,2123           54135                           TS       MPTEMP                                
045543,001599: 00,2124           10020                           CCS      CYR                                   #  SEE IF LEFT OR RIGHT SHIFT.
045544,001600: 00,2125           12145                           TCF      VSSL                                  #  VECTOR SHIFT LEFT.
045545,001601: 00,2126           00176        OCT176             OCT      176                                   #  USED IN PROCESSED SHIFTS WITH - COUNT.
045546,001602: 
045547,001603: 00,2127           50135        VSSR               INDEX    MPTEMP                                #  (ENTRY FROM SR). PICK UP SHIFTING BIT.
045548,001604: 00,2130           34727                           CAF      BIT14                                 #  MPTEMP CONTAINS THE SHIFT COUNT - 1.
045549,001605: 00,2131           54135                           TS       MPTEMP                                
045550,001606: 00,2132           02073                           TC       VSHRRND                               #  SHIFT X COMPONENT.
045551,001607: 
045552,001608: 00,2133           52155                           DXCH     MPAC                                  #  SWAP X AND Y COMPONENTS.
045553,001609: 00,2134           52160                           DXCH     MPAC       +3                         
045554,001610: 00,2135           52155                           DXCH     MPAC                                  
045555,001611: 00,2136           02073                           TC       VSHRRND                               #  SHIFT Y COMPONENT.
045556,001612: 
045557,001613: 00,2137           52155                           DXCH     MPAC                                  #  SWAP Y AND Z COMPONENTS.
045558,001614: 00,2140           52162                           DXCH     MPAC       +5                         
045559,001615: 00,2141           52155                           DXCH     MPAC                                  
045560,001616: 00,2142           02073                           TC       VSHRRND                               #  SHIFT Z COMPONENT.
045561,001617: 
045562,001618: 00,2143           17441                           TCF      VROTATEX                              #  RESTORE COMPONENTS TO PROPER PLACES.
045563,001619: 

Page 1049

045565,001621:                                                                                                  #  VECTOR SHIFT LEFT - DONE ONE PLACE AT A TIME.
045566,001622: 
045567,001623: 00,2144           54135                 -1        TS       MPTEMP                                #  SHIFTING LOOP.
045568,001624: 
045569,001625: 00,2145           00006        VSSL               EXTEND                                         
045570,001626: 00,2146           30155                           DCA      MPAC                                  
045571,001627: 00,2147           20155                           DAS      MPAC                                  
045572,001628: 00,2150           00006                           EXTEND                                         
045573,001629: 00,2151           12153                           BZF      +2                                    
045574,001630: 00,2152           07040                           TC       OVERFLOW                              
045575,001631: 
045576,001632: 00,2153           00006                           EXTEND                                         
045577,001633: 00,2154           30160                           DCA      MPAC       +3                         
045578,001634: 00,2155           20160                           DAS      MPAC       +3                         
045579,001635: 00,2156           00006                           EXTEND                                         
045580,001636: 00,2157           12161                           BZF      +2                                    
045581,001637: 00,2160           07035                           TC       OVERFLWY                              
045582,001638: 
045583,001639: 00,2161           00006                           EXTEND                                         
045584,001640: 00,2162           30162                           DCA      MPAC       +5                         
045585,001641: 00,2163           20162                           DAS      MPAC       +5                         
045586,001642: 00,2164           00006                           EXTEND                                         
045587,001643: 00,2165           12167                           BZF      +2                                    
045588,001644: 00,2166           07032                           TC       OVERFLWZ                              
045589,001645: 
045590,001646: 00,2167           10135                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNTER.
045591,001647: 00,2170           12144                           TCF      VSSL       -1                         
045592,001648: 00,2171           16102                           TCF      DANZIG                                #  EXIT.
045593,001649: 

Page 1050

045595,001651:                                                                                                  #           TSLC - TRIPLE SHIFT LEFT AND COUNT. SHIFTS MPAC LEFT UNTIL GREATER THAN .5 IN MAGNITUDE, LEAVING
045596,001652:                                                                                                  #  THE COMPLEMENT OF THE NUMBER OF SHIFTS REQUIRED IN X.
045597,001653: 
045598,001654: 00,2172           54135        TSLC2              TS       MPTEMP                                #  START BY ZEROING SHIFT COUNT (IN A NOW).
045599,001655: 00,2173           06744                           TC       BRANCH                                #  EXIT WITH NO SHIFTING IF ARGUMENT ZERO.
045600,001656: 00,2174           12176                           TCF      +2                                    
045601,001657: 00,2175           12212                           TCF      ENDTSLC                               #  STORES ZERO SHIFT COUNT IN THIS CASE.
045602,001658: 
045603,001659: 00,2176           07300                           TC       TPAGREE                               #  MAY CAUSE UPSHIFT OF ONE EXTRA PLACE.
045604,001660: 
045605,001661: 00,2177           30154                           CA       MPAC                                  #  BEGIN NORMALIZATION LOOP.
045606,001662: 00,2200           12207                           TCF      TSLCTEST                              
045607,001663: 
045608,001664: 00,2201           24135        TSLCLOOP           INCR     MPTEMP                                #  INCREMENT SHIFT COUNTER.
045609,001665: 00,2202           00006                           EXTEND                                         
045610,001666: 00,2203           30156                           DCA      MPAC       +1                         
045611,001667: 00,2204           20156                           DAS      MPAC       +1                         
045612,001668: 00,2205           60154                           AD       MPAC                                  
045613,001669: 00,2206           26154                           ADS      MPAC                                  
045614,001670: 00,2207           60000        TSLCTEST           DOUBLE                                         #  SEE IF (ANOTHER) SHIFT IS REQUIRED.
045615,001671: 00,2210           54000                           OVSK                                           
045616,001672: 00,2211           12201                           TCF      TSLCLOOP                              #  YES - INCREMENT COUNT AND SHIFT AGAIN.
045617,001673: 
045618,001674: 00,2212           40135        ENDTSLC            CS       MPTEMP                                
045619,001675: 00,2213           16644                           TCF      STORE1                                #  STORE SHIFT COUNT AND RETURN TO DANZIG.
045620,001676: 

Page 1051

045622,001678:                                                                                                  #           THE FOLLOWING ROUTINES PROCESSES THE GENERAL SHIFT INSTRUCTIONS SR, SRR, SL, AND SLR.
045623,001679:                                                                                                  #  THE GIVEN ADDRESS IS DECODED AS FOLLOWS:
045624,001680: 
045625,001681:                                                                                                  #           BITS 1-7    SHIFT COUNT (SUBADDRESS) LESS THAN 125 DECIMAL.
045626,001682:                                                                                                  #           BIT 8       PSEUDO SIGN BIT (DETECTS CHANGE IN SIGN IN INDEXED SHIFTS).
045627,001683:                                                                                                  #           BIT 9       0 FOR LEFT SHIFT, AND 1 FOR RIGHT SHIFT.
045628,001684:                                                                                                  #           BIT 10      1 FOR TERMINAL ROUND ON SCALAR SHIFTS, 0 OTHERWISE.
045629,001685:                                                                                                  #           BITS 11-13  0.
045630,001686:                                                                                                  #           BIT 14      1.
045631,001687:                                                                                                  #           BIT 15      0.
045632,001688: 
045633,001689:                                                                                                  #  THE ABOVE ENCODING IS DONE BY THE YUL SYSTEM.
045634,001690: 
045635,001691: 
045636,001692: 00,2214           70116        GENSHIFT           MASK     ADDRWD                                #  GET SHIFT COUNT, TESTING FOR ZERO.
045637,001693: 00,2215           10000                           CCS      A                                     #  (ARRIVES WITH C(A) = LOW7).
045638,001694: 00,2216           12224                           TCF      GENSHFT2                              #  IF NON-ZERO, PROCEED WITH DECREMENTED CT
045639,001695: 
045640,001696: 00,2217           34733                           CAF      BIT10                                 #  ZERO SHIFT COUNT. NO SHIFTS NEEDED BUT
045641,001697: 00,2220           70116                           MASK     ADDRWD                                #  WE MIGHT HAVE TO ROUND MPAC ON SLR AND
045642,001698: 00,2221           10000                           CCS      A                                     #  SRR (SCALAR ONLY).
045643,001699: 00,2222           07157                           TC       ROUNDSUB                              
045644,001700: 00,2223           16102                           TCF      DANZIG                                
045645,001701: 
045646,001702: 00,2224           54135        GENSHFT2           TS       MPTEMP                                #  DECREMENTED SHIFT COUNT TO MPTEMP.
045647,001703: 00,2225           34735                           CAF      BIT8                                  #  TEST MEANING OF LOW SEVEN BIT COUNT IN
045648,001704: 00,2226           00006                           EXTEND                                         #  MPTEMP NOW.
045649,001705: 00,2227           70116                           MP       ADDRWD                                
045650,001706: 00,2230           76266                           MASK     LOW2                                  #  JUMPS ON SHIFT DIRECTION (BIT8) AND
045651,001707: 00,2231           50000                           INDEX    A                                     
045652,001708: 00,2232           12233                           TCF      +1                                    #  ORIGINAL SHIFT DIRECTION (BIT 9).
045653,001709: 00,2233           12332                           TCF      RIGHT-                                #  NEGATIVE SHIFT COUNT FOR SL OR SLR.
045654,001710: 00,2234           12342                           TCF      LEFT                                  #  SL OR SLR.
045655,001711: 00,2235           12336                           TCF      LEFT-                                 #  NEGATIVE SHIFT COUNT WITH SR OR SRR.
045656,001712: 

Page 1052

045658,001714:                                                                                                  #           GENERAL SHIFT RIGHT.
045659,001715: 
045660,001716: 00,2236           10163        RIGHT              CCS      MODE                                  #  SEE IF VECTOR OR SCALAR.
045661,001717: 00,2237           12277                           TCF      GENSCR                                
045662,001718: 00,2240           12277                           TCF      GENSCR                                
045663,001719: 
045664,001720: 00,2241           30135                           CA       MPTEMP                                #  SEE IF SHIFT COUNT LESS THAN 14D.
045665,001721: 00,2242           63733        VRIGHT2            AD       NEG12                                 
045666,001722: 00,2243           00006                           EXTEND                                         
045667,001723: 00,2244           62127                           BZMF     VSSR                                  #  IF SO, BRANCH AND SHIFT IMMEDIATELY.
045668,001724: 
045669,001725: 00,2245           67770                           AD       NEGONE                                #  IF NOT, REDUCE MPTEMP BY A TOTAL OF 14,
045670,001726: 00,2246           54135                           TS       MPTEMP                                #  AND DO A SHIFT RIGHT AND ROUND BY 14.
045671,001727: 00,2247           34746                           CAF      ZERO                                  #  THE ROUND AT THIS STAGE MAY INTRODUCE A
045672,001728: 00,2250           54001                           TS       L                                     #  ONE BIT ERROR IN A SHIFT RIGHT 15D.
045673,001729: 00,2251           56154                           XCH      MPAC                                  
045674,001730: 00,2252           56155                           XCH      MPAC       +1                         
045675,001731: 00,2253           02272                           TC       SETROUND                              #  X COMPONENT NOW SHIFTED, SO MAKE UP THE
045676,001732: 00,2254           20155                           DAS      MPAC                                  #  ROUNDING QUANTITY (0 IN A AND 0 OR +-1
045677,001733:                                                                                                  #  IN L).
045678,001734: 00,2255           56157                           XCH      MPAC       +3                         #  REPEAT THE ABOVE PROCESS FOR Y AND Z.
045679,001735: 00,2256           56160                           XCH      MPAC       +4                         
045680,001736: 00,2257           02272                           TC       SETROUND                              
045681,001737: 00,2260           20160                           DAS      MPAC       +3                         #  NO OVERFLOW ON THESE ADDS.
045682,001738: 
045683,001739: 00,2261           56161                           XCH      MPAC       +5                         
045684,001740: 00,2262           56162                           XCH      MPAC       +6                         
045685,001741: 00,2263           02272                           TC       SETROUND                              
045686,001742: 00,2264           20162                           DAS      MPAC       +5                         
045687,001743: 
045688,001744: 00,2265           10135                           CCS      MPTEMP                                #  SEE IF DONE, DOING FINAL DECREMENT.
045689,001745: 00,2266           54135                           TS       MPTEMP                                
045690,001746: 00,2267           12242                           TCF      VRIGHT2                               
045691,001747: 00,2270           04604        BIASLO             DEC      .2974      B-1                        #  SQRT CONSTANT
045692,001748: 
045693,001749: 00,2271           16102                           TCF      DANZIG                                
045694,001750: 
045695,001751: 00,2272           60000        SETROUND           DOUBLE                                         #  MAKES UP ROUNDING QUANTITY FROM ARRIVING
045696,001752: 00,2273           54156                           TS       MPAC       +2                         #  C(A). L IS ZERO INITIALLY.
045697,001753: 00,2274           34746                           CAF      ZERO                                  
045698,001754: 00,2275           56001                           XCH      L                                     
045699,001755: 00,2276           00002                           TC       Q                                     #  RETURN AND DO THE DAS, RESETTING L TO 0.
045700,001756: 

Page 1053

045702,001758:                                                                                                  #           PROCESS SR AND SRR FOR SCALARS.
045703,001759: 
045704,001760: 00,2277           30135        GENSCR             CA       MPTEMP                                #  SEE IF THE ORIGINAL SHIFT COUNT WAS LESS
045705,001761: 00,2300           63733                 +1        AD       NEG12                                 #  THAN 14D.
045706,001762: 00,2301           00006                           EXTEND                                         
045707,001763: 00,2302           62322                           BZMF     DOSSHFT                               #  DO THE SHIFT IMMEDIATELY IF SO.
045708,001764: 
045709,001765: 00,2303           67770                 +4        AD       NEGONE                                #  IF NOT, DECREMENT SHIFT COUNT BY 14D AND
045710,001766: 00,2304           54135                           TS       MPTEMP                                #  SHIFT MPAC RIGHT 14 PLACES.
045711,001767: 00,2305           34746                           CAF      ZERO                                  
045712,001768: 00,2306           56154                           XCH      MPAC                                  
045713,001769: 00,2307           56155                           XCH      MPAC       +1                         
045714,001770: 00,2310           54156                           TS       MPAC       +2                         
045715,001771: 00,2311           10135                           CCS      MPTEMP                                #  SEE IF FINISHED, DO FINAL DECREMENT.
045716,001772: 00,2312           54135                           TS       MPTEMP                                
045717,001773: 00,2313           02300                           TC       GENSCR     +1                         
045718,001774: 00,2314           22650        SLOPEHI            DEC      .5884                                 #  SQRT CONSTANT.
045719,001775: 00,2315           34733                           CAF      BIT10                                 #  FINISHED WITH SHIFT. SEE IF ROUND
045720,001776: 00,2316           70116                           MASK     ADDRWD                                #  WANTED.
045721,001777: 00,2317           10000                           CCS      A                                     
045722,001778: 00,2320           07157                           TC       ROUNDSUB                              
045723,001779: 00,2321           16102                           TCF      DANZIG                                #  DO SO AND/OR EXIT.
045724,001780: 
045725,001781: 00,2322           50135        DOSSHFT            INDEX    MPTEMP                                #  PICK UP SHIFTING BIT.
045726,001782: 00,2323           34727                           CAF      BIT14                                 
045727,001783: 00,2324           54135                           TS       MPTEMP                                
045728,001784: 00,2325           34733                           CAF      BIT10                                 #  SEE IF TERMINAL ROUND DESIRED.
045729,001785: 00,2326           70116                           MASK     ADDRWD                                
045730,001786: 00,2327           10000                           CCS      A                                     
045731,001787: 00,2330           12031                           TCF      RIGHTR                                #  YES.
045732,001788: 00,2331           12033                           TCF      MPACSHR                               #  JUST SHIFT RIGHT.
045733,001789: 

Page 1054

045735,001791:                                                                                                  #           PROCESS THE RIGHT- (SL(R) WITH A NEGATIVE COUNT), LEFT-, AND LEFT OPTIONS.
045736,001792: 
045737,001793: 00,2332           40135        RIGHT-             CS       MPTEMP                                #  GET ABSOLUTE VALUE - 1 OF SHIFT COUNT
045738,001794: 00,2333           62126                           AD       OCT176                                #  UNDERSTANDING THAT BIT8 (PSEUDO-SIGN)
045739,001795: 00,2334           54135                           TS       MPTEMP                                #  WAS 1 INITIALLY.
045740,001796: 00,2335           12236                           TCF      RIGHT                                 #  DO NORMAL SHIFT RIGHT.
045741,001797: 
045742,001798: 00,2336           42126        LEFT-              CS       OCT176                                #  SAME PROLOGUE TO LEFT FOR INDEXED RIGHT
045743,001799: 00,2337           60135                           AD       MPTEMP                                #  SHIFTS WHOSE NET SHIFT COUNT IS NEGATIVE
045744,001800: 00,2340           40000                           COM                                            
045745,001801: 00,2341           54135                           TS       MPTEMP                                
045746,001802: 
045747,001803: 00,2342           10163        LEFT               CCS      MODE                                  #  SINCE LEFT SHIFTING IS SONE ONE PLACE AT
045748,001804: 00,2343           12346                           TCF      GENSCL                                #  A TIME, NO COMPARISON WITH 14 NEED BE
045749,001805: 00,2344           12346                           TCF      GENSCL                                #  DONE. FOR SCALARS, SEE IF TERMINAL ROUND
045750,001806: 00,2345           12145                           TCF      VSSL                                  #  DESIRED. FOR VECTORS, SHIFT IMMEDIATELY.
045751,001807: 
045752,001808: 00,2346           40116        GENSCL             CS       ADDRWD                                #  PUT ROUNDING BIT (BIT 10 OF ADDRWD)INTO
045753,001809: 00,2347           00006                           EXTEND                                         #  BIT 15 OF CYR WHERE THE ROUNDING BIT OF
045754,001810: 00,2350           74737                           MP       BIT6                                  #  A SHORT SHIFT LEFT WOULD BE
045755,001811: 00,2351           54020                           TS       CYR                                   
045756,001812: 00,2352           12103                           TCF      TSSL       +2                         #  DO THE SHIFT.
045757,001813: 

Page 1055

045759,001815:                                                                                                  #           SCALAR DIVISION INSTRUCTIONS, DDV AND BDDV, ARE EXECUTED HERE. AT THIS POINT, THE DIVIDEND IS IN MPAC
045760,001816:                                                                                                  #  AND THE DIVISOR IN BUF.
045761,001817: 
045762,001818: 00,2353           44744        DDV/BDDV           CS       ONE                                   #  INITIALIZATION.
045763,001819: 00,2354           54136                           TS       DVSIGN                                #  +-1 FOR POSITIVE QUOTIENT - -0 FOR NEG.
045764,001820: 00,2355           54137                           TS       DVNORMCT                              #  DIVIDEND NORMALIZATION COUNT.
045765,001821: 00,2356           54140                           TS       MAXDVSW                               #  NEAR-ONE DIVIDE FLAG.
045766,001822: 
045767,001823: 00,2357           10130                           CCS      BUF                                   #  FORCE BUF POSITIVE WITH THE MAJOR PART
045768,001824: 00,2360           12516                           TCF      BUFPOS                                #  NON-ZERO.
045769,001825: 00,2361           12363                           TCF      +2                                    
045770,001826: 00,2362           12531                           TCF      BUFNEG                                
045771,001827: 
045772,001828: 00,2363           54156        BUFZERO            TS       MPAC       +2                         #  ZERO THIS.
045773,001829: 00,2364           07300                           TC       TPAGREE                               #  FORCE SIGN AGREEMENT BEFORE OVERFLOW
045774,001830: 
045775,001831: 00,2365           10154                           CCS      MPAC                                  #  TEST TO SEE IF MPAC NON-ZERO.  (TOO BIG)
045776,001832: 00,2366           12414                           TCF      OVF+                                  #  MAJOR PART OF DIVIDEND IS POSITIVE NON-0
045777,001833: 00,2367           12371                           TCF      +2                                    
045778,001834: 00,2370           12413                           TCF      OVF+       -1                         #  MAJOR PART OF DIVIDEND IS NEG. NON-ZERO
045779,001835: 
045780,001836: 00,2371           56131                           XCH      BUF        +1                         #  SHIFT DIVIDEND AND DIVISOR LEFT 14.
045781,001837: 00,2372           56130                           XCH      BUF                                   
045782,001838: 00,2373           56155                           XCH      MPAC       +1                         
045783,001839: 00,2374           56154                           XCH      MPAC                                  
045784,001840: 00,2375           10130                           CCS      BUF                                   #  TRY AGAIN ON FORMER MINOR PART.
045785,001841: 00,2376           12422                           TCF      BUF+                                  
045786,001842: 00,2377           12401                           TCF      +2                                    #  OVERFLOW ON ZERO DIVISOR.
045787,001843: 00,2400           12416                           TCF      BUF-                                  
045788,001844: 
045789,001845: 00,2401           40154                           CS       MPAC                                  #  SIGN OF MPAC DETERMINES SIGN OF RESULT.
045790,001846: 00,2402           00006        SGNDVOVF           EXTEND                                         
045791,001847: 00,2403           62405                           BZMF     +2                                    
045792,001848: 00,2404           24136                           INCR     DVSIGN                                #  NEGMAX IN MPAC PERHAPS.
045793,001849: 00,2405           34724        DVOVF              CAF      POSMAX                                #  ON DIVISION OVERFLOW OF ANY SORT, SET
045794,001850: 00,2406           54154                           TS       MPAC                                  #  SET DP MPAC TO +-POSMAX.
045795,001851: 00,2407           02630                           TC       FINALDV    +3                         
045796,001852: 00,2410           34744                           CAF      ONE                                   #  SET OVERFLOW INDICATOR AND EXIT.
045797,001853: 00,2411           54121                           TS       OVFIND                                
045798,001854: 00,2412           06102                           TC       DANZIG                                
045799,001855: 
045800,001856: 00,2413           24136                 -1        INCR     DVSIGN                                
045801,001857: 00,2414           40131        OVF+               CS       BUF        +1                         #  LOAD LOWER ORDER PART OF DIVISOR.
045802,001858: 00,2415           12402                           TCF      SGNDVOVF                              #  GET SIGN OF RESULT.
045803,001859: 
045804,001860: 00,2416           00006        BUF-               EXTEND                                         #  IF BUF IS NEGATIVE, COMPLEMENT IT AND
045805,001861: 00,2417           40131                           DCS      BUF                                   #  MAINTAIN DVSIGN FOR FINAL QUOTIENT SIGN.
045806,001862: 00,2420           52131                           DXCH     BUF                                   
045807,001863: 00,2421           24136                           INCR     DVSIGN                                #  NOW -0.
045808,001864: 

Page 1056

045810,001866: 00,2422           10154        BUF+               CCS      MPAC                                  #  FORCE MPAC POSITIVE, CHECKING FOR ZERO
045811,001867: 00,2423           12437                           TCF      MPAC+                                 #  DIVIDEND IN THE PROCESS.
045812,001868: 00,2424           12426                           TCF      +2                                    
045813,001869: 00,2425           12433                           TCF      MPAC-                                 
045814,001870: 00,2426           10155                           CCS      MPAC       +1                         
045815,001871: 00,2427           12437                           TCF      MPAC+                                 
045816,001872: 00,2430           16102                           TCF      DANZIG                                #  EXIT IMMEDIATELY ON ZERO DIVIDEND.
045817,001873: 00,2431           12433                           TCF      MPAC-                                 
045818,001874: 00,2432           16102                           TCF      DANZIG                                
045819,001875: 
045820,001876: 00,2433           00006        MPAC-              EXTEND                                         #  FORCE MPAC POSITIVE AS BUF IN BUF-.
045821,001877: 00,2434           40155                           DCS      MPAC                                  
045822,001878: 00,2435           52155                           DXCH     MPAC                                  
045823,001879: 00,2436           24136                           INCR     DVSIGN                                #  NOW +1 OR -0.
045824,001880: 

Page 1057

045826,001882: 00,2437           40154        MPAC+              CS       MPAC                                  #  CHECK FOR DIVISION OVERFLOW. IF THE
045827,001883: 00,2440           67770                           AD       NEGONE                                #  MAJOR PART OF THE DIVIDEND IS LESS THAN
045828,001884: 00,2441           60130                           AD       BUF                                   #  THE MAJOR PART OF THE DIVISOR BY AT
045829,001885: 00,2442           10000                           CCS      A                                     #  LEAST TWO, WE CAN PROCEED IMMEDIATELY
045830,001886: 00,2443           12505                           TCF      DVNORM                                #  WITHOUT NORMALIZATION PRODUCING A DVMAX.
045831,001887: 00,2444           60001        -1/2+2             OCT      60001                                 #  USED IN SQRTSUB.
045832,001888: 
045833,001889: 00,2445           12446                           TCF      +1                                    #  IF THE ABOVE DOES NOT HOLD, FORCE SIGN
045834,001890: 00,2446           34727                           CAF      HALF                                  #  AGREEMENT IN NUMERATOR AND DENOMINATOR
045835,001891: 00,2447           60000                           DOUBLE                                         #  TO FACILITATE OVERFLOW AND NEAR-ONE
045836,001892: 00,2450           60155                           AD       MPAC       +1                         #  CHECKING.
045837,001893: 00,2451           54155                           TS       MPAC       +1                         
045838,001894: 00,2452           34746                           CAF      ZERO                                  
045839,001895: 00,2453           64724                           AD       POSMAX                                
045840,001896: 00,2454           26154                           ADS      MPAC                                  
045841,001897: 
045842,001898: 00,2455           34727                           CAF      HALF                                  #  SAME FOR BUF.
045843,001899: 00,2456           60000                           DOUBLE                                         
045844,001900: 00,2457           60131                           AD       BUF        +1                         
045845,001901: 00,2460           54131                           TS       BUF        +1                         
045846,001902: 00,2461           34746                           CAF      ZERO                                  
045847,001903: 00,2462           64724                           AD       POSMAX                                
045848,001904: 00,2463           26130                           ADS      BUF                                   
045849,001905: 
045850,001906: 00,2464           40154                           CS       MPAC                                  #  CHECK MAGNITUDE OF SIGN-CORRECTED
045851,001907: 00,2465           60130                           AD       BUF                                   #  OPERANDS.
045852,001908: 00,2466           10000                           CCS      A                                     
045853,001909: 00,2467           12505                           TCF      DVNORM                                #  DIVIDE OK - WILL NOT BECOME MAXDV CASE.
045854,001910: 00,2470           00133        LBUF2              ADRES    BUF2                                  
045855,001911: 00,2471           12405                           TCF      DVOVF                                 #  DIVISOR NOT LESS THAN DIVIDEND - OVF.
045856,001912: 
045857,001913: 00,2472           54140                           TS       MAXDVSW                               #  IF THE MAJOR PARTS OF THE DIVIDEND AND
045858,001914: 00,2473           40155                           CS       MPAC       +1                         #  DIVISOR ARE EQUAL, A SPECIAL APPROXIMA-
045859,001915: 00,2474           60131                           AD       BUF        +1                         #  TION IS USED (PROVIDED THE DIVISION IS
045860,001916: 00,2475           00006                           EXTEND                                         #  POSSIBLE, OF COURSE).
045861,001917: 00,2476           62405                           BZMF     DVOVF                                 
045862,001918: 00,2477           12505                           TCF      DVNORM                                #  IF NO OVERFLOW.
045863,001919: 

Page 1058

045865,001921: 00,2500           00006        BUFNORM            EXTEND                                         #  ADD -1 TO AUGMENT SHIFT COUNT AND SHIFT
045866,001922: 00,2501           24137                           AUG      DVNORMCT                              #  LEFT ONE PLACE.
045867,001923: 00,2502           00006                           EXTEND                                         
045868,001924: 00,2503           30131                           DCA      BUF                                   
045869,001925: 00,2504           20131                           DAS      BUF                                   
045870,001926: 
045871,001927: 00,2505           30130        DVNORM             CA       BUF                                   #  SEE IF DIVISOR NORMALIZED YET.
045872,001928: 00,2506           60000                           DOUBLE                                         
045873,001929: 00,2507           54000                           OVSK                                           
045874,001930: 00,2510           12500                           TCF      BUFNORM                               #  NO - SHIFT LEFT ONE AND TRY AGAIN.
045875,001931: 
045876,001932: 00,2511           52155                           DXCH     MPAC                                  #  CALL DIVIDEND NORMALIZATION SEQUENCE
045877,001933: 00,2512           50137                           INDEX    DVNORMCT                              #  PRIOR TO DOING THE DIVIDE.
045878,001934: 00,2513           02565                           TC       MAXTEST                               
045879,001935: 
045880,001936: 00,2514           54156                           TS       MPAC       +2                         #  RETURNS WITH DIVISION DONE AND C(A) = 0.
045881,001937: 00,2515           16102                           TCF      DANZIG                                
045882,001938: 
045883,001939: 00,2516           10000        BUFPOS             CCS      A                                     
045884,001940: 00,2517           12422                           TCF      BUF+                                  #  TO BUF+ IF BUF IS GREATER THAN +1.
045885,001941: 
045886,001942: 00,2520           40131                           CS       BUF        +1                         #  IF BUF IS +1, FORCING SIGN AGREEMENT
045887,001943: 00,2521           00006                           EXTEND                                         #  MAY CAUSE BUF TO BECOME ZERO.
045888,001944: 00,2522           62422                           BZMF     BUF+                                  #  BRANCH IF SIGNS AGREE.
045889,001945: 
045890,001946: 00,2523           34727                           CA       HALF                                  #  SIGNS DISAGREE.  FORCE AGREEMENT.
045891,001947: 00,2524           60000                 +6        DOUBLE                                         
045892,001948: 00,2525           26131                           ADS      BUF        +1                         
045893,001949: 00,2526           34746                           CA       ZERO                                  
045894,001950: 00,2527           54130                           TS       BUF                                   
045895,001951: 00,2530           12363                           TCF      BUFZERO                               
045896,001952: 
045897,001953: 00,2531           10000        BUFNEG             CCS      A                                     
045898,001954: 00,2532           12416                           TCF      BUF-                                  #  TO BUF- IF BUF IS LESS THAN -1.
045899,001955: 
045900,001956: 00,2533           30131                           CA       BUF        +1                         #  IF BUF IS -1, FORCING SIGN AGREEMENT
045901,001957: 00,2534           00006                           EXTEND                                         #  MAY CAUSE BUF TO BECOME ZERO.
045902,001958: 00,2535           62416                           BZMF     BUF-                                  #  BRANCH IF SIGNS AGREE.
045903,001959: 
045904,001960: 00,2536           44727                           CS       HALF                                  #  SIGNS DISAGREE.  FORCE AGREEMENT.
045905,001961: 00,2537           12524                           TCF      BUFPOS     +6                         
045906,001962: 

Page 1059

045908,001964:                                                                                                  #           THE FOLLOWING ARE PROLOGUES TO SHIFT THE DIVIDEND ARRIVING IN A AND L BEFORE THE DIVIDE.
045909,001965: 
045910,001966: 00,2540           22021                 -21D      LXCH     SR                                    #  SPECIAL PROLOGUE FOR UNIT WHEN THE
045911,001967: 00,2541           00006                           EXTEND                                         #  LENGTH OF THE ARGUMENT WAS NOT LESS THAN
045912,001968: 00,2542           74727                           MP       HALF                                  #  .5. IN THIS CASE, EACH COMPONENT MUST BE
045913,001969: 00,2543           56001                           XCH      L                                     #  SHIFTED RIGHT ONE TO PRODUCE A HALF-UNIT
045914,001970: 00,2544           60021                           AD       SR                                    #  VECTOR.
045915,001971: 00,2545           56001                           XCH      L                                     
045916,001972: 00,2546           12571                           TCF      GENDDV     +1                         #  WITH DP DIVIDEND IN A,L.
045917,001973: 
045918,001974: 00,2547           20001                           DDOUBL                                         #  PROLOGUE WHICH NORMALIZES THE DIVIDEND
045919,001975: 00,2550           20001                           DDOUBL                                         #  WHEN IT IS KNOWN THAT NO DIVISION
045920,001976: 00,2551           20001                           DDOUBL                                         #  OVERFLOW WILL OCCUR.
045921,001977: 00,2552           20001                           DDOUBL                                         
045922,001978: 00,2553           20001                           DDOUBL                                         
045923,001979: 00,2554           20001                           DDOUBL                                         
045924,001980: 00,2555           20001                           DDOUBL                                         
045925,001981: 00,2556           20001                           DDOUBL                                         
045926,001982: 00,2557           20001                           DDOUBL                                         
045927,001983: 00,2560           20001                           DDOUBL                                         
045928,001984: 00,2561           20001                           DDOUBL                                         
045929,001985: 00,2562           20001                           DDOUBL                                         
045930,001986: 00,2563           20001                           DDOUBL                                         
045931,001987: 00,2564           52155                           DXCH     MPAC                                  
045932,001988: 
045933,001989: 00,2565           10140        MAXTEST            CCS      MAXDVSW                               #  0 IF MAJORS MIGHT BE =, -1 OTHERWISE.
045934,001990: 00,2566           06552        BIASHI             DEC      .4192      B-1                        #  SQRT CONSTANTS
045935,001991: 
045936,001992: 00,2567           12642                           TCF      MAXDV                                 #  CHECK TO SEE IF THEY ARE NOW EQUAL.
045937,001993: 

Page 1060

045939,001995:                                                                                                  #           THE FOLLOWING IS A GENERAL PURPOSE DOUBLE PRECISION DIVISION ROUTINE. IT DIVIDES MPAC BY BUF AND LEAVES
045940,001996:                                                                                                  #  THE RESULT IN MPAC. THE FOLLOWING CONDITIONS MUST BE SATISFIED:
045941,001997: 
045942,001998:                                                                                                  #           1.  THE DIVISOR (BUF) MUST BE POSITIVE AND NOT LESS THAN .5.
045943,001999: 
045944,002000:                                                                                                  #           2.  THE DIVIDEND (MPAC) MUST BE POSITIVE WITH THE MAJOR PART OF MPAC STRICTLY LESS THAN THAT OF BUF
045945,002001:                                                                                                  #  (A SPECIAL APPROXIMATION, MAXDV, IS USED WHEN THE MAJOR PARTS ARE EQUAL).
045946,002002: 
045947,002003:                                                                                                  #           UNDERSTANDING THAT A/B = Q + S(R/B) WHERE S = 2(-14) AND Q AND R ARE QUOTIENT AND REMAINDER, RESPEC-
045948,002004:                                                                                                  #  TIVELY, THE FOLLOWING APPROXIMATION IS OBTAINED BY MULTIPLYING ABOVE AND BELOW BY C - SD AND NEGLECTING TERMS OF
045949,002005:                                                                                                  #  ORDER S-SQUARED (POSSIBLY INTRODUCING ERROR INTO THE LOW TWO BITS OF THE RESULT). SIGN AGREEMENT IS UNNECESSARY.
045950,002006: 
045951,002007:                                                                                                  #           A + SB .      (R - QD)                                             A + SB
045952,002008:                                                                                                  #           ------ = Q + S(------) WHERE Q AND R ARE QUOTIENT AND REMAINDER OF ------ RESPECTIVELY.
045953,002009:                                                                                                  #           C + SD        (  C   )                                               C
045954,002010: 
045955,002011: 
045956,002012: 00,2570           52155        GENDDV             DXCH     MPAC                                  #  WE NEED A AND B ONLY FOR FIRST DV.
045957,002013: 00,2571           00006                 +1        EXTEND                                         #  (SPECIAL UNIT PROLOGUE ENTERS HERE).
045958,002014: 00,2572           10130                           DV       BUF                                   #  A NOW CONTAINS Q AND L, R.
045959,002015: 00,2573           52155                           DXCH     MPAC                                  
045960,002016: 
045961,002017: 00,2574           40154                           CS       MPAC                                  #  FORM DIVIDEND FOR MINOR PART OF RESULT.
045962,002018: 00,2575           00006                           EXTEND                                         
045963,002019: 00,2576           70131                           MP       BUF        +1                         
045964,002020: 00,2577           60155                           AD       MPAC       +1                         #  OVERFLOW AT THIS POINT IS POSITIVE SINCE
045965,002021: 00,2600           54000                           OVSK                                           #  R IS POSITIVE IN EVERY CASE.
045966,002022: 00,2601           12606                           TCF      +5                                    
045967,002023: 
045968,002024: 00,2602           00006                           EXTEND                                         #  OVERFLOW CAN BE REMOVED BY SUBTRACTING C
045969,002025: 00,2603           60130                           SU       BUF                                   #  (BUF) ONCE SINCE R IS ALWAYS LESS THAN C
045970,002026: 00,2604           24154                           INCR     MPAC                                  #  IN THIS CASE. INCR COMPENSATES SUBTRACT.
045971,002027: 00,2605           12610                           TCF      +DOWN                                 #  (SINCE C(A) IS STILL POSITIVE).
045972,002028: 
045973,002029: 00,2606           00006                 +5        EXTEND                                         #  C(A) CAN BE MADE LESS THAN C IN MAGNI-
045974,002030: 00,2607           62620                           BZMF     -UP                                   #  TUDE BY DIMINISHING IT BY C (SINCE C IS
045975,002031:                                                                                                  #  NOT LESS THAN .5) UNLESS C(A) = 0.
045976,002032: 

Page 1061

045978,002034: 00,2610           00006        +DOWN              EXTEND                                         
045979,002035: 00,2611           60130                           SU       BUF                                   #  IF POSITIVE, REDUCE ONLY IF NECESSARY
045980,002036: 00,2612           00006                           EXTEND                                         #  SINCE THE COMPENSATING INCR MIGHT CAUSE
045981,002037: 00,2613           12616                           BZF      +3                                    #  OVERFLOW.
045982,002038: 00,2614           00006                           EXTEND                                         #  DONT SUBTRACT UNLESS RESULT IS POSITIVE
045983,002039: 00,2615           62624                           BZMF     ENDMAXDV                              #  OR ZERO.
045984,002040: 
045985,002041: 00,2616           24154                 +3        INCR     MPAC                                  #  KEEP SUBTRACT HERE AND COMPENSATE.
045986,002042: 00,2617           12625                           TCF      FINALDV                               
045987,002043: 
045988,002044: 00,2620           00006        -UP                EXTEND                                         #  IF ZERO, SET MINOR PART OF RESULT TO
045989,002045: 00,2621           12630                           BZF      FINALDV    +3                         #  ZERO.
045990,002046: 
045991,002047: 00,2622           00006                           EXTEND                                         #  IF NEGATIVE, ADD C TO A, SUBTRACTING ONE
045992,002048: 00,2623           26154                           DIM      MPAC                                  #  TO COMPENSATE. DIM IS OK HERE SINCE THE
045993,002049: 00,2624           60130        ENDMAXDV           AD       BUF                                   #  MAJOR PART NEVER GOES NEGATIVE.
045994,002050: 

Page 1062

045996,002052: 00,2625           22007        FINALDV            ZL                                             #  DO DV TO OBTAIN MINOR PART OF RESULT.
045997,002053: 00,2626           00006                           EXTEND                                         
045998,002054: 00,2627           10130                           DV       BUF                                   
045999,002055: 00,2630           54155                 +3        TS       MPAC       +1                         
046000,002056: 
046001,002057: 00,2631           10136                           CCS      DVSIGN                                #  LEAVE RESULT POSITIVE UNLESS C(DVSIGN)=
046002,002058: 00,2632           00002                           TC       Q                                     #  -0.
046003,002059: 00,2633           00002                           TC       Q                                     
046004,002060: 00,2634           00002                           TC       Q                                     
046005,002061: 
046006,002062: 00,2635           00006                           EXTEND                                         
046007,002063: 00,2636           40155                           DCS      MPAC                                  
046008,002064: 00,2637           52155                           DXCH     MPAC                                  
046009,002065: 00,2640           34746                           CAF      ZERO                                  #  SO WE ALWAYS RETURN WITH C(A) = 0.
046010,002066: 00,2641           00002                           TC       Q                                     
046011,002067: 

Page 1063

046013,002069:                                                                                                  #           IF THE MAJOR PARTS OF THE DIVISOR AND DIVIDEND ARE EQUAL, BUT THE MINOR PARTS ARE SUCH THAT THE
046014,002070:                                                                                                  #  DIVIDEND IS STRICTLY LESS THAN THE DIVISOR IN MAGNITUDE, THE FOLLOWING APPROXIMATION IS USED. THE ASSUMPTIONS
046015,002071:                                                                                                  #  ARE THE SAME AS THE GENERAL ROUTINE WITH THE ADDITION THAT SIGN AGREEMENT IS NECESSARY (B, C, & D POSITIVE).
046016,002072: 
046017,002073:                                                                                                  #                  C + SB .          (C + B - D)
046018,002074:                                                                                                  #                  ------ = 37777 + S(---------)
046019,002075:                                                                                                  #                  C + SD            (    C    )
046020,002076: 
046021,002077:                                                                                                  #           THE DIVISION MAY BE PERFORMED IMMEDIATELY SINCE B IS STRICTLY LESS THAN D AND C IS NOT LESS THAN .5.
046022,002078: 
046023,002079: 00,2642           40154        MAXDV              CS       MPAC                                  #  SEE IF MAXDV CASE STILL HOLDS AFTER
046024,002080: 00,2643           60130                           AD       BUF                                   #  NORMALIZATION.
046025,002081: 00,2644           00006                           EXTEND                                         
046026,002082: 00,2645           12647                           BZF      +2                                    
046027,002083: 00,2646           12570                           TCF      GENDDV                                #  MPAC NOW LESS THAN BUF - DIVIDE AS USUAL
046028,002084: 
046029,002085: 00,2647           34724                 +2        CAF      POSMAX                                #  SET MAJOR PART OF RESULT.
046030,002086: 00,2650           54154                           TS       MPAC                                  
046031,002087: 
046032,002088: 00,2651           40131                           CS       BUF        +1                         #  FORM DIVIDEND OF MINOR PART OF RESULT.
046033,002089: 00,2652           60155                           AD       MPAC       +1                         
046034,002090: 00,2653           12624                           TCF      ENDMAXDV                              #  GO ADD C AND DO DIVIDE, ATTACHING SIGN
046035,002091:                                                                                                  #  BEFORE EXITING.
046036,002092: 

Page 1064

046038,002094:                                                                                                  #           VECTOR DIVIDED BY SCALAR, V/SC, IS EXECUTED HERE. THE VECTOR IS NOW IN MPAC WITH SCALAR IN BUF.
046039,002095: 
046040,002096: 00,2654           44744        V/SC2              CS       ONE                                   #  INITIALIZE DIVIDEND NORMALIZATION COUNT
046041,002097: 00,2655           54137                           TS       DVNORMCT                              #  AND DIVISION SIGN REGISTER.
046042,002098: 00,2656           54127                           TS       VBUF       +5                         
046043,002099: 
046044,002100: 00,2657           03010                           TC       VECAGREE                              #  FORCE SIGN AGREEMENT IN VECTOR
046045,002101: 
046046,002102: 00,2660           52131                           DXCH     BUF                                   
046047,002103: 00,2661           07565                           TC       ALSIGNAG                              #  SIGN AGREE BUF
046048,002104: 00,2662           52131                           DXCH     BUF                                   
046049,002105: 00,2663           10130                           CCS      BUF                                   #  FORCE DIVISOR POSITIVE WITH MAJOR PART
046050,002106: 00,2664           12721                           TCF      /BUF+                                 #  NON-ZERO (IF POSSIBLE).
046051,002107: 00,2665           12667                           TCF      +2                                    
046052,002108: 00,2666           12715                           TCF      /BUF-                                 
046053,002109: 
046054,002110: 00,2667           56131                           XCH      BUF        +1                         #  SHIFT VECTOR AND SCALAR LEFT 14.
046055,002111: 00,2670           56130                           XCH      BUF                                   
046056,002112: 00,2671           56155                           XCH      MPAC       +1                         
046057,002113: 00,2672           56154                           XCH      MPAC                                  
046058,002114: 00,2673           00006                           EXTEND                                         #  CHECK FOR OVERFLOW IN EACH CASE.
046059,002115: 00,2674           12676                           BZF      +2                                    
046060,002116: 00,2675           12405                           TCF      DVOVF                                 
046061,002117: 
046062,002118: 00,2676           56160                           XCH      MPAC       +4                         
046063,002119: 00,2677           56157                           XCH      MPAC       +3                         
046064,002120: 00,2700           00006                           EXTEND                                         
046065,002121: 00,2701           12703                           BZF      +2                                    
046066,002122: 00,2702           12405                           TCF      DVOVF                                 
046067,002123: 
046068,002124: 00,2703           56162                           XCH      MPAC       +6                         
046069,002125: 00,2704           56161                           XCH      MPAC       +5                         
046070,002126: 00,2705           00006                           EXTEND                                         
046071,002127: 00,2706           12710                           BZF      +2                                    
046072,002128: 00,2707           12405                           TCF      DVOVF                                 
046073,002129: 
046074,002130: 00,2710           10130                           CCS      BUF                                   
046075,002131: 00,2711           12721                           TCF      /BUF+                                 
046076,002132: 00,2712           12405                           TCF      DVOVF                                 #  ZERO DIVISOR - OVERFLOW.
046077,002133: 00,2713           12715                           TCF      /BUF-                                 
046078,002134: 00,2714           12405                           TCF      DVOVF                                 
046079,002135: 
046080,002136: 00,2715           00006        /BUF-              EXTEND                                         #  ON NEGATIVE, COMPLEMENT BUF AND MAINTAIN
046081,002137: 00,2716           40131                           DCS      BUF                                   #  DVSIGN IN VBUF +5.
046082,002138: 00,2717           52131                           DXCH     BUF                                   
046083,002139: 00,2720           24127                           INCR     VBUF       +5                         
046084,002140: 

Page 1065

046086,002142: 00,2721           00006        /BUF+              EXTEND                                         
046087,002143: 00,2722           30131                           DCA      BUF                                   #  LEAVE ABS(ORIG DIVISOR) IN BUF2
046088,002144: 00,2723           52134                           DXCH     BUF2                                  #  FOR OVERFLOW TESTING
046089,002145: 00,2724           12732                           TCF      /NORM                                 #  NORMALIZE DIVISOR IN BUF.
046090,002146: 
046091,002147: 00,2725           00006        /NORM2             EXTEND                                         #  IF LESS THAN .5, AUGMENT DVNORMCT AND
046092,002148: 00,2726           24137                           AUG      DVNORMCT                              #  DOUBLE DIVISOR.
046093,002149: 00,2727           00006                           EXTEND                                         
046094,002150: 00,2730           30131                           DCA      BUF                                   
046095,002151: 00,2731           20131                           DAS      BUF                                   
046096,002152: 
046097,002153: 00,2732           30130        /NORM              CA       BUF                                   #  SEE IF DIVISOR NORMALIZED.
046098,002154: 00,2733           60000                           DOUBLE                                         
046099,002155: 00,2734           54000                           OVSK                                           
046100,002156: 00,2735           12725                           TCF      /NORM2                                #  DOUBLE AND TRY AGAIN IF NOT.
046101,002157: 
046102,002158: 00,2736           02750                           TC       V/SCDV                                #  DO X COMPONENT DIVIDE.
046103,002159: 00,2737           52160                           DXCH     MPAC       +3                         #  SUPPLY ARGUMENTS IN USUAL SEQUENCE.
046104,002160: 00,2740           52155                           DXCH     MPAC                                  
046105,002161: 00,2741           52160                           DXCH     MPAC       +3                         
046106,002162: 
046107,002163: 00,2742           02750                           TC       V/SCDV                                #  Y COMPONENT.
046108,002164: 00,2743           52162                           DXCH     MPAC       +5                         
046109,002165: 00,2744           52155                           DXCH     MPAC                                  
046110,002166: 00,2745           52162                           DXCH     MPAC       +5                         
046111,002167: 
046112,002168: 00,2746           02750                           TC       V/SCDV                                #  Z COMPONENT.
046113,002169: 00,2747           17441                           TCF      VROTATEX                              #  GO RE-ARRANGE COMPONENTS BEFORE EXIT.
046114,002170: 

Page 1066

046116,002172:                                                                                                  #           SUBROUTINE USED BY V/SC TO DIVIDE VECTOR COMPONENT IN MPAC,+1 BY THE SCALAR GIVEN IN BUF.
046117,002173: 
046118,002174: 00,2750           30127        V/SCDV             CA       VBUF       +5                         #  REFLECTS SIGN OF SCALAR.
046119,002175: 00,2751           54136                           TS       DVSIGN                                
046120,002176: 
046121,002177: 00,2752           10154                           CCS      MPAC                                  #  FORCE MPAC POSITIVE, EXITING ON ZERO.
046122,002178: 00,2753           12767                           TCF      /MPAC+                                
046123,002179: 00,2754           12756                           TCF      +2                                    
046124,002180: 00,2755           12763                           TCF      /MPAC-                                
046125,002181: 
046126,002182: 00,2756           10155                           CCS      MPAC       +1                         
046127,002183: 00,2757           12767                           TCF      /MPAC+                                
046128,002184: 00,2760           00002                           TC       Q                                     
046129,002185: 00,2761           12763                           TCF      /MPAC-                                
046130,002186: 00,2762           00002                           TC       Q                                     
046131,002187: 
046132,002188: 00,2763           00006        /MPAC-             EXTEND                                         #  USUAL COMPLEMENTING AND SETTING OF SIGN.
046133,002189: 00,2764           40155                           DCS      MPAC                                  
046134,002190: 00,2765           52155                           DXCH     MPAC                                  
046135,002191: 00,2766           24136                           INCR     DVSIGN                                
046136,002192: 
046137,002193: 00,2767           44744        /MPAC+             CS       ONE                                   #  INITIALIZE NEAR-ONE SWITCH.
046138,002194: 00,2770           54140                           TS       MAXDVSW                               
046139,002195: 
046140,002196: 00,2771           40154                           CS       MPAC                                  #  CHECK POSSIBLE OVERFLOW.
046141,002197: 00,2772           60133                           AD       BUF2                                  #  UNNORMALIZED INPUT DIVISOR.
046142,002198: 00,2773           10000                           CCS      A                                     
046143,002199: 00,2774           13004                           TCF      DDVCALL                               #  NOT NEAR-ONE
046144,002200: 00,2775           12777                           TCF      +2                                    #  +0 IS JUST POSSIBLE
046145,002201: 00,2776           12405                           TCF      DVOVF                                 #  NO HOPE
046146,002202: 00,2777           54140                           TS       MAXDVSW                               #  SIGNAL POSSIBLE NEAR-ONE CASE
046147,002203: 00,3000           40155                           CS       MPAC       +1                         #  SEE IF DIVISION CAN BE DONE
046148,002204: 00,3001           60134                           AD       BUF2       +1                         
046149,002205: 00,3002           00006                           EXTEND                                         
046150,002206: 00,3003           62405                           BZMF     DVOVF                                 
046151,002207: 
046152,002208: 00,3004           52155        DDVCALL            DXCH     MPAC                                  #  CALL PRE-DIVIDE NORMALIZATION.
046153,002209: 00,3005           50137                           INDEX    DVNORMCT                              
046154,002210: 00,3006           12565                           TCF      MAXTEST                               
046155,002211: 

Page 1067

046157,002213: 00,3007           32506        SLOPELO            DEC      .8324                                 
046158,002214: 
046159,002215: 00,3010           56002        VECAGREE           XCH      Q                                     #  SAVE Q IN A
046160,002216: 00,3011           52155                           DXCH     MPAC                                  
046161,002217: 00,3012           07565                           TC       ALSIGNAG                              #  SIGNAGREE MPAC
046162,002218: 00,3013           52155                           DXCH     MPAC                                  
046163,002219: 00,3014           52160                           DXCH     MPAC       +3                         
046164,002220: 00,3015           07565                           TC       ALSIGNAG                              #  SIGN AGREE MPAC +3
046165,002221: 00,3016           52160                           DXCH     MPAC       +3                         
046166,002222: 00,3017           52162                           DXCH     MPAC       +5                         
046167,002223: 00,3020           07565                           TC       ALSIGNAG                              #  SIGNAGREE MPAC +5
046168,002224: 00,3021           52162                           DXCH     MPAC       +5                         
046169,002225: 00,3022           00000                           TC       A                                     
046170,002226: 

Page 1068

046172,002228:                                                                                                  #           THE FOLLOWING ROUTINE EXECUTES THE UNIT INSTRUCTION, WHICH TAKES THE UNIT OF THE VECTOR IN MPAC.
046173,002229: 
046174,002230: 00,3023           03010        UNIT               TC       VECAGREE                              #  FORCE SIGN AGREEMENT IN VECTOR
046175,002231: 00,3024           07553                           TC       MPACVBUF                              #  SAVE ARGUMENT IN VBUF
046176,002232: 00,3025           34746                           CAF      ZERO                                  #  MUST SENSE OVERFLOW IN FOLLOWING DOT.
046177,002233: 00,3026           56121                           XCH      OVFIND                                
046178,002234: 00,3027           54141                           TS       TEM1                                  
046179,002235: 00,3030           03317                           TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
046180,002236: 00,3031           30141                           CA       TEM1                                  
046181,002237: 00,3032           56121                           XCH      OVFIND                                
046182,002238: 00,3033           00006                           EXTEND                                         
046183,002239: 00,3034           13036                           BZF      +2                                    
046184,002240: 00,3035           12405                           TCF      DVOVF                                 
046185,002241: 00,3036           00006                           EXTEND                                         
046186,002242: 00,3037           30155                           DCA      MPAC                                  #  LEAVE THE SQUARE OF THE LENGTH OF THE
046187,002243: 00,3040           50120                           INDEX    FIXLOC                                #  ARGUMENT IN LVSQUARE.
046188,002244: 00,3041           52043                           DXCH     LVSQUARE                              
046189,002245: 
046190,002246: 00,3042           03343                           TC       SQRTSUB                               #  GO TAKE THE NORMALIZED SQUARE ROOT.
046191,002247: 
046192,002248: 00,3043           10154                           CCS      MPAC                                  #  CHECK FOR UNIT OVERFLOW.
046193,002249: 00,3044           13051                           TCF      +5                                    #  MPAC IS NOT LESS THAN .5 UNLESS
046194,002250: 00,3045           54001                           TS       L                                     
046195,002251: 00,3046           50120                           INDEX    FIXLOC                                
046196,002252: 00,3047           52045                           DXCH     LV                                    
046197,002253: 00,3050           12405                           TCF      DVOVF                                 #  INPUT TO SQRTSUB WAS 0.
046198,002254: 
046199,002255: 00,3051           44310                           CS       FOURTEEN                              #  SEE IF THE INPUT WAS SO SMALL THE THE
046200,002256: 00,3052           60135                           AD       MPTEMP                                #  FIRST TWO REGISTERS OF THE SQUARE WERE 0
046201,002257: 00,3053           10000                           CCS      A                                     
046202,002258: 00,3054           40000                           COM                                            #  IF SO, SAVE THE NEGATIVE OF THE SHIFT
046203,002259: 00,3055           13133                           TCF      SMALL                                 #  COUNT -15D.
046204,002260: 
046205,002261: 00,3056           13065                           TCF      LARGE                                 #  (THIS IS USUALLY THE CASE.)
046206,002262: 
046207,002263: 00,3057           44752                           CS       THIRTEEN                              #  IF THE SHIFT COUNT WAS EXACTLY 14, SET
046208,002264: 00,3060           54135                           TS       MPTEMP                                #  THE PRE-DIVIDE NORM COUNT TO -13D.
046209,002265: 
046210,002266: 00,3061           30154                           CA       MPAC                                  #  SHIFT THE LENGTH RIGHT 14 BEFORE STORING
046211,002267: 00,3062           54001        SMALL2             TS       L                                     #  (SMALL EXITS TO THIS POINT).
046212,002268: 00,3063           34746                           CAF      ZERO                                  
046213,002269: 00,3064           13112                           TCF      LARGE2                                #  GO TO STORE LENGTH AND PROCEED.
046214,002270: 
046215,002271: 00,3065           10135        LARGE              CCS      MPTEMP                                #  MOST ALL CASES COME HERE.
046216,002272: 00,3066           13074                           TCF      LARGE3                                #  SEE IF NO NORMALIZATION WAS REQUIRED BY
046217,002273: 
046218,002274: 00,3067           42024                           CS       SRDDV                                 #  SQRT, AND IF SO, SET UP FOR A SHIFT
046219,002275: 00,3070           54135                           TS       MPTEMP                                #  RIGHT 1 BEFORE DIVIDING TO PRODUCE
046220,002276: 00,3071           00006                           EXTEND                                         #  THE DESIRED HALF UNIT VECTOR.
046221,002277: 00,3072           30155                           DCA      MPAC                                  

Page 1069

046223,002279: 00,3073           13112                           TCF      LARGE2                                
046224,002280: 

Page 1070

046226,002282: 00,3074           40000        LARGE3             COM                                            #  LEAVE NEGATIVE OF SHIFT COUNT-1 FOR
046227,002283: 00,3075           54135                           TS       MPTEMP                                #  PREDIVIDE LEFT SHIFT.
046228,002284: 
046229,002285: 00,3076           40000                           COM                                            #  PICK UP REQUIRED SHIFTING BIT TO UNNORM-
046230,002286: 00,3077           50000                           INDEX    A                                     #  ALIZE THE SQRT RESULT.
046231,002287: 00,3100           34727                           CAF      BIT14                                 
046232,002288: 00,3101           54130                           TS       BUF                                   
046233,002289: 00,3102           00006                           EXTEND                                         
046234,002290: 00,3103           70155                           MP       MPAC       +1                         
046235,002291: 00,3104           56130                           XCH      BUF                                   
046236,002292: 00,3105           00006                           EXTEND                                         #  (UNNORMALIZE THE SQRT FOR LV).
046237,002293: 00,3106           70154                           MP       MPAC                                  
046238,002294: 00,3107           56001                           XCH      L                                     
046239,002295: 00,3110           60130                           AD       BUF                                   
046240,002296: 00,3111           56001                           XCH      L                                     
046241,002297: 
046242,002298: 00,3112           50120        LARGE2             INDEX    FIXLOC                                
046243,002299: 00,3113           52045                           DXCH     LV                                    #  LENGTH NOW STORED IN WORK AREA.
046244,002300: 
046245,002301: 00,3114           44744                           CS       ONE                                   
046246,002302: 00,3115           54140                           TS       MAXDVSW                               #  NO MAXDV CASES IN UNIT.
046247,002303: 
046248,002304: 00,3116           52123                           DXCH     VBUF                                  #  PREPARE X COMPONENT FOR DIVIDE, SETTING
046249,002305: 00,3117           52155                           DXCH     MPAC                                  #  LENGTH OF VECTOR AS DIVISOR IN BUF.
046250,002306: 00,3120           52131                           DXCH     BUF                                   
046251,002307: 00,3121           03151                           TC       UNITDV                                
046252,002308: 
046253,002309: 00,3122           52125                           DXCH     VBUF       +2                         #  DO Y AND Z IN USUAL FASHION SO WE CAN
046254,002310: 00,3123           52155                           DXCH     MPAC                                  #  EXIT THROUGH VROTATEX.
046255,002311: 00,3124           52160                           DXCH     MPAC       +3                         
046256,002312: 00,3125           03151                           TC       UNITDV                                
046257,002313: 
046258,002314: 00,3126           52127                           DXCH     VBUF       +4                         
046259,002315: 00,3127           52155                           DXCH     MPAC                                  
046260,002316: 00,3130           52162                           DXCH     MPAC       +5                         
046261,002317: 00,3131           03151                           TC       UNITDV                                
046262,002318: 00,3132           17441                           TCF      VROTATEX                              #  AND EXIT.
046263,002319: 

Page 1071

046265,002321:                                                                                                  #           IF THE LENGTH OF THE ARGUMENT VECTOR WAS LESS THAN 2(-28), EACH COMPONENT MUST BE SHIFTED LEFT AT LEAST
046266,002322:                                                                                                  #  14 PLACES BEFORE THE DIVIDE. NOTE THAT IN THIS CASE, THE MAJOR PART OF EACH COMPONENT IS ZERO.
046267,002323: 
046268,002324: 00,3133           54135        SMALL              TS       MPTEMP                                #  NEGATIVE OF PRE-DIVIDE SHIFT COUNT.
046269,002325: 
046270,002326: 00,3134           34746                           CAF      ZERO                                  #  SHIFT EACH COMPONENT LEFT 14.
046271,002327: 00,3135           56123                           XCH      VBUF       +1                         
046272,002328: 00,3136           56122                           XCH      VBUF                                  
046273,002329: 00,3137           56125                           XCH      VBUF       +3                         
046274,002330: 00,3140           56124                           XCH      VBUF       +2                         
046275,002331: 00,3141           56127                           XCH      VBUF       +5                         
046276,002332: 00,3142           56126                           XCH      VBUF       +4                         
046277,002333: 
046278,002334: 00,3143           40135                           CS       MPTEMP                                
046279,002335: 00,3144           50000                           INDEX    A                                     
046280,002336: 00,3145           34727                           CAF      BIT14                                 
046281,002337: 00,3146           00006                           EXTEND                                         
046282,002338: 00,3147           70154                           MP       MPAC                                  
046283,002339: 00,3150           13062                           TCF      SMALL2                                
046284,002340: 
046285,002341: 00,3151     4752               THIRTEEN           =        OCT15                                 
046286,002342: 00,3151     4310               FOURTEEN           =        OCT16                                 
046287,002343: 00,3151     4310               OCT16              =        R1D1                                  
046288,002344: 

Page 1072

046290,002346:                                                                                                  #           THE FOLLOWING ROUTINE SETS UP THE CALL TO THE DIVIDE ROUTINES.
046291,002347: 
046292,002348: 00,3151           10154        UNITDV             CCS      MPAC                                  #  FORCE MPAC POSITIVE IF POSSIBLE, SETTING
046293,002349: 00,3152           13170                           TCF      UMPAC+                                #  DVSIGN ACCORDING TO THE SIGN OF MPAC
046294,002350: 00,3153           13155                           TCF      +2                                    #  SINCE THE DIVISOR IS ALWAYS POSITIVE
046295,002351: 00,3154           13162                           TCF      UMPAC-                                #  HERE.
046296,002352: 
046297,002353: 00,3155           10155                           CCS      MPAC       +1                         
046298,002354: 00,3156           13170                           TCF      UMPAC+                                
046299,002355: 00,3157           00002                           TC       Q                                     #  EXIT IMMEDIATELY ON ZERO.
046300,002356: 00,3160           13162                           TCF      UMPAC-                                
046301,002357: 00,3161           00002                           TC       Q                                     
046302,002358: 
046303,002359: 00,3162           44746        UMPAC-             CS       ZERO                                  #  IF NEGATIVE, SET -0 IN DVSIGN FOR FINAL
046304,002360: 00,3163           54136                           TS       DVSIGN                                #  COMPLEMENT.
046305,002361: 00,3164           00006                           EXTEND                                         
046306,002362: 00,3165           40155                           DCS      MPAC                                  #  PICK UP ABSOLUTE VALUE OF ARG AND JUMP.
046307,002363: 00,3166           50135                           INDEX    MPTEMP                                
046308,002364: 00,3167           12564                           TCF      MAXTEST    -1                         
046309,002365: 
046310,002366: 00,3170           54136        UMPAC+             TS       DVSIGN                                #  SET DVSIGN FOR POSITIVE QUOTIENT.
046311,002367: 00,3171           52155                           DXCH     MPAC                                  
046312,002368: 00,3172           50135                           INDEX    MPTEMP                                
046313,002369: 00,3173           12564                           TCF      MAXTEST    -1                         
046314,002370: 

Page 1073

046316,002372:                                                                                                  #           MISCELLANEOUS UNARY OPERATIONS.
046317,002373: 
046318,002374: 00,3174           03300        DSQ                TC       DSQSUB                                #  SQUARE THE DP CONTENTS OF MPAC.
046319,002375: 00,3175           16102                           TCF      DANZIG                                
046320,002376: 
046321,002377: 00,3176           10163        ABVALABS           CCS      MODE                                  #  ABVAL OR ABS INSTRUCTION.
046322,002378: 00,3177           13226                           TCF      ABS                                   #  DO ABS ON SCALAR.
046323,002379: 00,3200           13226                           TCF      ABS                                   
046324,002380: 
046325,002381: 00,3201           03317        ABVAL              TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
046326,002382: 00,3202           22163                           LXCH     MODE                                  #  MODE IS NOW DP (L ZERO AFTER DAS).
046327,002383: 
046328,002384: 00,3203           00006                           EXTEND                                         #  STORE SQUARE OF LENGTH IN WORK AREA.
046329,002385: 00,3204           30155                           DCA      MPAC                                  
046330,002386: 00,3205           50120                           INDEX    FIXLOC                                
046331,002387: 00,3206           52043                           DXCH     LVSQUARE                              
046332,002388: 

Page 1074

046334,002390:                                                                                                  #  PROGRAM DESCRIPTION- SUBROUTINE SQRT
046335,002391:                                                                                                  #  FUNCTIONAL DESCRIPTION-DOUBLE PRECISION SQUARE ROOT ROUTINE
046336,002392:                                                                                                  #      THIS PROGRAM TAKES THE SQUARE ROOT OF THE 27 OR 28 MOST SIGNIFICANT BITS IN THE TRIPLE PRECISION SET OF
046337,002393:                                                                                                  #      NUMBERS-MPAC,MPAC+1,AND MPAC+2.  THE ROOT IS RETURNED DOUBLE        PRECISION IN MPAC AND MPAC+1.
046338,002394:                                                                                                  #  WARNING- THIS SUBROUTINE USES A TRIPLE PRECISION INPUT. THE PROGRAMMER  MUST ASSURE THE CONTENTS OF MPAC+2
046339,002395:                                                                                                  #      ESPECIALLY IF THE CONTENTS OF MPAC IS SMALL OR ZERO.  FOR DETAILS SEE STG MEMO NO.949.
046340,002396:                                                                                                  #  CALLING SEQUENCE- IN INTERPRETIVE MODE I.E., FOLLOWING TC  INTPRET,SQRT   NO ADDRESS IS ALLOWED
046341,002397:                                                                                                  #  INPUT SCALING  THE BINARY POINT IS ASSUMED TO THE RIGHT OF BIT 15. THE  ANSWER IS RETURNED WITH THE SAME SCALING
046342,002398:                                                                                                  #  SUBROUTINES- GENSCR,MPACSHR, SQRTSUB,ABORT
046343,002399:                                                                                                  #  ABORT EXIT MODE- ABORTS ON NEGATIVE INPUT -1.2X10E-4 (77775  OCTAL)     OR LESS.
046344,002400:                                                                                                  #      DISPLAYS ERROR CODE 1302
046345,002401:                                                                                                  #                  TC   ABORT
046346,002402:                                                                                                  #                  OCT  1302
046347,002403:                                                                                                  #  DEBRIS -  LOCATIONS BUF,MPTEMP,ADDRWD ARE USED
046348,002404: 00,3207           03343        SQRT               TC       SQRTSUB                               #  TAKE THE SQUARE ROOT OF MPAC.
046349,002405: 00,3210           10135                           CCS      MPTEMP                                #  RETURNED NORMALIZED SQUARE ROOT. SEE IF
046350,002406: 00,3211           13213                           TCF      +2                                    #  ANY UN-NORMALIZATION REQUIRED AND EXIT
046351,002407: 00,3212           16102                           TCF      DANZIG                                #  IF NOT.
046352,002408: 
046353,002409: 00,3213           63733                           AD       NEG12                                 #  A RIGHT SHIFT OF MORE THAN 13 COULD BE
046354,002410: 00,3214           00006                           EXTEND                                         #  REQUIRED IF INPUT WAS ZERO IN MPAC,+1.
046355,002411: 00,3215           63221                           BZMF     SQRTSHFT                              #  GOES HERE IN MOST CASES.
046356,002412: 00,3216           22007                           ZL                                             #  IF A LONG SHIFT IS REQUIRED, GO TO
046357,002413: 00,3217           22116                           LXCH     ADDRWD                                #  GENERAL RIGHT SHIFT ROUTINES.
046358,002414: 00,3220           12303                           TCF      GENSCR     +4                         #  ADDRWD WAS ZERO TO PREVENT ROUND.
046359,002415: 
046360,002416: 00,3221           50135        SQRTSHFT           INDEX    MPTEMP                                #  SELECT SHIFTING BIT AND EXIT THROUGH
046361,002417: 00,3222           34726                           CAF      BIT15                                 #  SHIFT ROUTINES.
046362,002418: 00,3223           54135                           TS       MPTEMP                                
046363,002419: 00,3224           34746                           CAF      ZERO                                  #  TO ZERO MPAC +2 IN THE PROCESS.
046364,002420: 00,3225           12036                           TCF      MPACSHR    +3                         
046365,002421: 
046366,002422: 00,3226           06744        ABS                TC       BRANCH                                #  TEST SIGN OF MPAC AND COMPLEMENT IF
046367,002423: 00,3227           16102                           TCF      DANZIG                                
046368,002424: 00,3230           16102                           TCF      DANZIG                                
046369,002425: 00,3231           17711                           TCF      COMP                                  
046370,002426: 

Page 1075

046372,002428: 00,3232           44742        VDEF               CS       FOUR                                  #  VECTOR DEFINE - ESSENTIALLY TREATS
046373,002429: 00,3233           26166                           ADS      PUSHLOC                               #  SCALAR IN MPAC AS X COMPONENT, PUSHES UP
046374,002430: 00,3234           00006                           EXTEND                                         #  FOR Y AND THEN AGAIN FOR Z.
046375,002431: 00,3235           50000                           INDEX    A                                     
046376,002432: 00,3236           30003                           DCA      2                                     
046377,002433: 00,3237           52160                           DXCH     MPAC       +3                         
046378,002434: 00,3240           00006                           EXTEND                                         
046379,002435: 00,3241           50166                           INDEX    PUSHLOC                               
046380,002436: 00,3242           30001                           DCA      0                                     
046381,002437: 00,3243           52162                           DXCH     MPAC       +5                         
046382,002438: 00,3244           16542                           TCF      VMODE                                 #  MODE IS NON VECTOR.
046383,002439: 
046384,002440: 00,3245           03317        VSQ                TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
046385,002441: 00,3246           17353                           TCF      DMODE                                 #  MODE IS NOW DP.
046386,002442: 
046387,002443: 00,3247           00006        PUSH               EXTEND                                         #  PUSH DOWN MPAC LEAVING IT LOADED.
046388,002444: 00,3250           30155                           DCA      MPAC                                  
046389,002445: 00,3251           50166                           INDEX    PUSHLOC                               #  PUSH DOWN FIRST TWO REGISTERS IN EACH
046390,002446: 00,3252           52001                           DXCH     0                                     
046391,002447: 
046392,002448: 00,3253           50163                           INDEX    MODE                                  #  INCREMENT PUSHDOWN POINTER.
046393,002449: 00,3254           36265                           CAF      NO.WDS                                
046394,002450: 00,3255           26166                           ADS      PUSHLOC                               
046395,002451: 
046396,002452: 00,3256           10163                           CCS      MODE                                  
046397,002453: 00,3257           13272                           TCF      TPUSH                                 #  PUSH DOWN MPAC +2.
046398,002454: 00,3260           16102                           TCF      DANZIG                                #  DONE FOR DP.
046399,002455: 
046400,002456: 00,3261           00006                           EXTEND                                         #  ON VECTOR, PUSH DOWN Y AND Z COMPONENTS.
046401,002457: 00,3262           30160                           DCA      MPAC       +3                         
046402,002458: 00,3263           50166                           INDEX    PUSHLOC                               
046403,002459: 00,3264           51775                           DXCH     0          -4                         
046404,002460: 00,3265           00006                           EXTEND                                         
046405,002461: 00,3266           30162                           DCA      MPAC       +5                         
046406,002462: 00,3267           50166                           INDEX    PUSHLOC                               
046407,002463: 00,3270           51777                           DXCH     0          -2                         
046408,002464: 00,3271           16102                           TCF      DANZIG                                
046409,002465: 
046410,002466: 00,3272           30156        TPUSH              CA       MPAC       +2                         
046411,002467: 00,3273           16575                           TCF      ENDTPUSH   +2                         
046412,002468: 
046413,002469: 00,3274           50120        RVQ                INDEX    FIXLOC                                #  RVQ - RETURN IVA QPRET.
046414,002470: 00,3275           30052                           CA       QPRET                                 
046415,002471: 00,3276           54117                           TS       POLISH                                
046416,002472: 00,3277           16673                           TCF      GOTO       +4                         #  (ASSUME QPRET POINTS TO FIXED ONLY.)
046417,002473: 

Page 1076

046419,002475:                                                                                                  #           THE FOLLOWING SUBROUTINES ARE USED IN SQUARING MPAC, IN BOTH THE SCALAR AND VECTOR SENSE. THEY ARE
046420,002476:                                                                                                  #  SPECIAL CASES OF DMPSUB AND DOTSUB, PUT IN TO SAVE SOME TIME.
046421,002477: 
046422,002478: 00,3300           30155        DSQSUB             CA       MPAC       +1                         #  SQUARES THE SCALAR CONTENTS OF MPAC.
046423,002479: 00,3301           00006                           EXTEND                                         
046424,002480: 00,3302           70000                           SQUARE                                         
046425,002481: 00,3303           54156                           TS       MPAC       +2                         
046426,002482: 00,3304           34746                           CAF      ZERO                                  #  FORM 2(CROSS TERM).
046427,002483: 00,3305           56155                           XCH      MPAC       +1                         
046428,002484: 00,3306           00006                           EXTEND                                         
046429,002485: 00,3307           70154                           MP       MPAC                                  
046430,002486: 00,3310           20001                           DDOUBL                                         #  AND MAYBE OVERFLOW.
046431,002487: 00,3311           20156                           DAS      MPAC       +1                         #  AND SET A TO NET OVERFLOW.
046432,002488: 00,3312           56154                           XCH      MPAC                                  
046433,002489: 00,3313           00006                           EXTEND                                         
046434,002490: 00,3314           70000                           SQUARE                                         
046435,002491: 00,3315           20155                           DAS      MPAC                                  
046436,002492: 00,3316           00002                           TC       Q                                     
046437,002493: 
046438,002494: 00,3317           00006        VSQSUB             EXTEND                                         #  DOTS THE VECTOR IN MPAC WITH ITSELF.
046439,002495: 00,3320           22137                           QXCH     DOTRET                                
046440,002496: 00,3321           03300                           TC       DSQSUB                                #  SQUARE THE X COMPONENT.
046441,002497: 00,3322           52160                           DXCH     MPAC       +3                         
046442,002498: 00,3323           52155                           DXCH     MPAC                                  
046443,002499: 00,3324           52131                           DXCH     BUF                                   #  SO WE CAN END IN DOTSUB.
046444,002500: 00,3325           30156                           CA       MPAC       +2                         
046445,002501: 00,3326           54132                           TS       BUF        +2                         
046446,002502: 
046447,002503: 00,3327           03300                           TC       DSQSUB                                #  SQUARE Y COMPONENT.
046448,002504: 00,3330           52156                           DXCH     MPAC       +1                         
046449,002505: 00,3331           20132                           DAS      BUF        +1                         
046450,002506: 00,3332           60154                           AD       MPAC                                  
046451,002507: 00,3333           60130                           AD       BUF                                   
046452,002508: 00,3334           54130                           TS       BUF                                   
046453,002509: 00,3335           13337                           TCF      +2                                    
046454,002510: 00,3336           54121                           TS       OVFIND                                #  IF OVERFLOW.
046455,002511: 
046456,002512: 00,3337           52162                           DXCH     MPAC       +5                         
046457,002513: 00,3340           52155                           DXCH     MPAC                                  
046458,002514: 00,3341           03300                           TC       DSQSUB                                #  SQUARE Z COMPONENT.
046459,002515: 00,3342           17226                           TCF      ENDDOT                                #  END AS IN DOTSUB.
046460,002516: 

Page 1077

046462,002518:                                                                                                  #           DOUBLE PRECISION SQUARE ROOT ROUTINE. TAKE THE SQUARE ROOT OF THE TRIPLE PRECISION (MPAC +2 USED ONLY
046463,002519:                                                                                                  #  IN NORMALIZATION) CONTENTS OF MPAC AND LEAVE THE NORMALIZED RESULT IN MPAC (C(MPAC) GREATER THAN OR EQUAL TO
046464,002520:                                                                                                  #  .5). THE RIGHT SHIFT COUNT (TO UNNORMALIZE) IS LEFT IN MPTEMP.
046465,002521: 
046466,002522: 00,3343           34746        SQRTSUB            CAF      ZERO                                  #  START BY ZEROING RIGHT SHIFT COUNT.
046467,002523: 00,3344           54135                           TS       MPTEMP                                
046468,002524: 
046469,002525: 00,3345           10154                           CCS      MPAC                                  #  CHECK FOR POSITIVE ARGUMENT, SHIFTING
046470,002526: 00,3346           13405                           TCF      SMPAC+                                #  FIRST SIGNIFICANT MPAC REGISTER INTO
046471,002527: 00,3347           13351                           TCF      +2                                    #  MPAC ITSELF.
046472,002528: 00,3350           13373                           TCF      SQRTNEG                               #  SEE IF MAG OF ARGUMENT LESS THAN 10(-4).
046473,002529: 
046474,002530: 00,3351           56156                           XCH      MPAC       +2                         #  MPAC IS ZERO - SHIFT LEFT 14.
046475,002531: 00,3352           56155                           XCH      MPAC       +1                         
046476,002532: 00,3353           54154                           TS       MPAC                                  
046477,002533: 00,3354           34750                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
046478,002534: 00,3355           54135                           TS       MPTEMP                                
046479,002535: 
046480,002536: 00,3356           10154                           CCS      MPAC                                  #  SEE IF MPAC NOW PNZ.
046481,002537: 00,3357           13405                           TCF      SMPAC+                                
046482,002538: 00,3360           13362                           TCF      +2                                    
046483,002539: 00,3361           13376                           TCF      ZEROANS                               #  NEGATIVE BUT LESS THAN 10(-4) IN MAG.
046484,002540: 
046485,002541: 00,3362           56155                           XCH      MPAC       +1                         #  ZERO - SHIFT LEFT 14 AGAIN.
046486,002542: 00,3363           54154                           TS       MPAC                                  
046487,002543: 00,3364           34750                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
046488,002544: 00,3365           26135                           ADS      MPTEMP                                
046489,002545: 
046490,002546: 00,3366           10154                           CCS      MPAC                                  
046491,002547: 00,3367           13405                           TCF      SMPAC+                                
046492,002548: 00,3370           00002                           TC       Q                                     #  SQRT(0) = 0.
046493,002549: 00,3371           13376                           TCF      ZEROANS                               
046494,002550: 00,3372           13453                           TCF      FIXROOT                               #  DO NOT LEAVE SQRTSUB WITH -0 IN MPAC.
046495,002551: 
046496,002552: 00,3373           10000        SQRTNEG            CCS      A                                     #  ARGUMENT IS NEGATIVE, BUT SEE IF SIGN-
046497,002553: 00,3374           13402                           TCF      SQRTABRT                              #  CORRECTED ARGUMENT IS LESS THAN 10(-4)
046498,002554: 
046499,002555: 00,3375           10155                           CCS      MPAC       +1                         #  IN MAGNITUDE. IF SO, CALL ANSWER ZERO.
046500,002556: 00,3376           34746        ZEROANS            CAF      ZERO                                  #  FORCE ANSWER TO ZERO HERE.
046501,002557: 00,3377           13453                           TCF      FIXROOT                               
046502,002558: 00,3400           13402                           TCF      SQRTABRT                              
046503,002559: 00,3401           13453                           TCF      FIXROOT                               
046504,002560: 
046505,002561: 00,3402           52165        SQRTABRT           DXCH     LOC                                   
046506,002562: 00,3403           05722                           TC       POODOO1                               
046507,002563: 00,3404           21302                           OCT      21302                                 
046508,002564: 
046509,002565: 00,3405           62444        SMPAC+             AD       -1/2+2                                #  SEE IF ARGUMENT GREATER THAN OR EQUAL TO

Page 1078

046511,002567: 00,3406           00006                           EXTEND                                         #  .5.
046512,002568: 00,3407           63456                           BZMF     SRTEST                                #  IF SO, SEE IF LESS THAN .25.
046513,002569: 
046514,002570: 00,3410           52155                           DXCH     MPAC                                  #  WE WILL TAKE THE SQUARE ROOT OF MPAC/2.
046515,002571: 00,3411           22021                           LXCH     SR                                    #  SHIFT RIGHT 1 AND GO TO THE SQRT ROUTINE
046516,002572: 00,3412           00006                           EXTEND                                         
046517,002573: 00,3413           74727                           MP       HALF                                  
046518,002574: 00,3414           52155                           DXCH     MPAC                                  
046519,002575: 00,3415           56021                           XCH      SR                                    
046520,002576: 00,3416           26155                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
046521,002577: 
046522,002578: 00,3417           32314        ARGHI              CAF      SLOPEHI                               #  ARGUMENT BETWEEN .25 AND .5. GET A
046523,002579: 00,3420           00006                           EXTEND                                         #  LINEAR APPROXIMATION FOR THIS RANGE.
046524,002580: 00,3421           70154                           MP       MPAC                                  
046525,002581: 00,3422           62566                           AD       BIASHI                                #  X0/2 = (MPAC/2)(SLOPEHI) + BIASHI/2.
046526,002582: 
046527,002583: 00,3423           54130                 +4        TS       BUF                                   #  X0/2 (ARGLO ENTERS HERE).
046528,002584: 00,3424           30154                           CA       MPAC                                  #  SINGLE-PRECISION THROUGHOUT.
046529,002585: 00,3425           22007                           ZL                                             
046530,002586: 00,3426           00006                           EXTEND                                         
046531,002587: 00,3427           10130                           DV       BUF                                   #  (MPAC/2)/(X0/2)
046532,002588: 00,3430           00006                           EXTEND                                         
046533,002589: 00,3431           74727                           MP       HALF                                  
046534,002590: 00,3432           26130                           ADS      BUF                                   #  X1 = X0/2 + .5(MPAC/2)/(X0/2).
046535,002591: 
046536,002592: 00,3433           00006                           EXTEND                                         
046537,002593: 00,3434           74727                           MP       HALF                                  #  FORM UP X1/2.
046538,002594: 00,3435           52155                           DXCH     MPAC                                  #  SAVE AND BRING OUT ARGUMENT.
046539,002595: 00,3436           00006                           EXTEND                                         #  TAKE DP QUOTIENT WITH X1.
046540,002596: 00,3437           10130                           DV       BUF                                   
046541,002597: 00,3440           54131                           TS       BUF        +1                         #  SAVE MAJOR PART OF QUOTIENT.
046542,002598: 00,3441           34746                           CAF      ZERO                                  #  FORM MINOR PART OF QUOTIENT USING
046543,002599: 00,3442           56001                           XCH      L                                     #  (REMAINDER,0).
046544,002600: 00,3443           00006                           EXTEND                                         
046545,002601: 00,3444           10130                           DV       BUF                                   
046546,002602: 00,3445           54001                           TS       L                                     #  IN PREPARATION FOR DAS.
046547,002603: 00,3446           30131                           CA       BUF        +1                         
046548,002604: 00,3447           20155                           DAS      MPAC                                  #  X2 = X1/2 + (MPAC/2)X1
046549,002605: 
046550,002606: 00,3450           00006                           EXTEND                                         #  OVERFLOWS IF ARG. NEAR POSMAX.
046551,002607: 00,3451           13455                           BZF      TCQBNK00                              
046552,002608: 00,3452           34724                           CAF      POSMAX                                
046553,002609: 00,3453           54154        FIXROOT            TS       MPAC                                  
046554,002610: 00,3454           54155                           TS       MPAC       +1                         
046555,002611: 00,3455           00002        TCQBNK00           TC       Q                                     #  RETURN TO CALLER TO UNNORMALIZE, ETC.
046556,002612: 

Page 1079

046558,002614: 00,3456           64730        SRTEST             AD       QUARTER                               #  ARGUMENT WAS LESS THAN .5, SEE IF LESS
046559,002615: 00,3457           00006                           EXTEND                                         #  THAN .25.
046560,002616: 00,3460           63502                           BZMF     SQRTNORM                              #  IF SO, BEGIN NORMALIZATION.
046561,002617: 
046562,002618: 00,3461           52155                           DXCH     MPAC                                  #  IF BETWEEN .5 AND .25, SHIFT RIGHT 1 AND
046563,002619: 00,3462           22021                           LXCH     SR                                    #  START AT ARGLO.
046564,002620: 00,3463           00006                           EXTEND                                         
046565,002621: 00,3464           74727                           MP       HALF                                  
046566,002622: 00,3465           52155                           DXCH     MPAC                                  
046567,002623: 00,3466           56021                           XCH      SR                                    
046568,002624: 00,3467           26155                           ADS      MPAC       +1                         #  NO OVERFLOW.
046569,002625: 
046570,002626: 00,3470           33007        ARGLO              CAF      SLOPELO                               #  (NORMALIZED) ARGUMENT BETWEEN .125 AND
046571,002627: 00,3471           00006                           EXTEND                                         #  .25
046572,002628: 00,3472           70154                           MP       MPAC                                  
046573,002629: 00,3473           62270                           AD       BIASLO                                
046574,002630: 00,3474           13423                           TCF      ARGHI      +4                         #  BEGIN SQUARE ROOT.
046575,002631: 
046576,002632: 00,3475           00006        SQRTNM2            EXTEND                                         #  SHIFT LEFT 2 AND INCREMENT RIGHT SHIFT
046577,002633: 00,3476           30156                           DCA      MPAC       +1                         #  COUNT (FOR TERMINAL UNNORMALIZATION).
046578,002634: 00,3477           20156                           DAS      MPAC       +1                         
046579,002635: 00,3500           60154                           AD       MPAC                                  
046580,002636: 00,3501           26154                           ADS      MPAC                                  #  (NO OVERFLOW).
046581,002637: 
046582,002638: 00,3502           24135        SQRTNORM           INCR     MPTEMP                                #  FIRST TIME THROUGH, JUST SHIFT LEFT 1
046583,002639: 00,3503           00006                           EXTEND                                         #  (PUTS IN EFFECTIVE RIGHT SHIFT SINCE
046584,002640: 00,3504           30156                           DCA      MPAC       +1                         #  WE WANT MPAC/2).
046585,002641: 00,3505           20156                           DAS      MPAC       +1                         
046586,002642: 00,3506           60154                           AD       MPAC                                  
046587,002643: 00,3507           26154                           ADS      MPAC                                  #  (AGAIN NO OVERFLOW).
046588,002644: 00,3510           60000                           DOUBLE                                         
046589,002645: 00,3511           54022                           TS       CYL                                   
046590,002646: 
046591,002647: 00,3512           10022        NORMTEST           CCS      CYL                                   #  SEE IF ARGUMENT NOW NORMALIZED AT
046592,002648: 00,3513           10022                           CCS      CYL                                   #  GREATER THAN .125.
046593,002649: 00,3514           13475                           TCF      SQRTNM2                               #  NO - SHIFT LEFT 2 MORE AND TRY AGAIN.
046594,002650: 00,3515           13417                           TCF      ARGHI                                 #  YES - NOW BETWEEN .5 AND .25.
046595,002651: 00,3516           13470                           TCF      ARGLO                                 #  ARGUMENT NOW BETWEEN .25 AND .125.
046596,002652: 

Page 1080

046598,002654:                                                                                                  #  TRIGONOMETRIC FUNCTION PACKAGE.
046599,002655: 
046600,002656:                                                                                                  #           THE FOLLOWING TRIGONOMETRIC FUNCTIONS ARE AVAILABLE AS INTERPRETIVE OPERATIONS:
046601,002657: 
046602,002658:                                                                                                  #           1.  SIN                COMPUTES (1/2)SINE(2 PI MPAC).
046603,002659:                                                                                                  #           2.  COS                COMPUTES (1/2)COSINE(2 PI MPAC).
046604,002660: 
046605,002661:                                                                                                  #           3.  ASIN               COMPUTES (1/2PI)ARCSINE(2 MPAC).
046606,002662:                                                                                                  #           4.  ACOS               COMPUTES (1/2PI)ARCCOSINE(2 MPAC).
046607,002663: 
046608,002664:                                                                                                  #  SIN-ASIN AND COS-ACOS ARE MUTUALLY INVERSE, IE SIN(ASIN(X)) = X.
046609,002665: 
046610,002666: 00,3517           06744        COSINE             TC       BRANCH                                #  FINDS COSINE USING THE IDENTITY
046611,002667: 00,3520           13523                           TCF      +3                                    #  COS(X) = SIN(PI/2 - ABS(X)).
046612,002668: 00,3521           13526                           TCF      PRESINE                               
046613,002669: 00,3522           13526                           TCF      PRESINE                               
046614,002670: 
046615,002671: 00,3523           00006                 +3        EXTEND                                         
046616,002672: 00,3524           40155                           DCS      MPAC                                  
046617,002673: 00,3525           52155                           DXCH     MPAC                                  
046618,002674: 
046619,002675: 00,3526           34730        PRESINE            CAF      QUARTER                               #  PI/2 SCALED.
046620,002676: 00,3527           26154                           ADS      MPAC                                  
046621,002677: 
046622,002678: 
046623,002679: 00,3530           52155        SINE               DXCH     MPAC                                  #  DOUBLE ARGUMENT.
046624,002680: 00,3531           20001                           DDOUBL                                         
046625,002681: 00,3532           54000                           OVSK                                           #  SEE IF OVERFLOW PRESENT.
046626,002682: 00,3533           13536                           TCF      +3                                    #  IF NOT, ARGUMENT OK AS IS.
046627,002683: 
046628,002684: 00,3534           00006                           EXTEND                                         #  IF SO, WE LOST (OR GAINED) PI, SO
046629,002685: 00,3535           40001                           DCOM                                           #  COMPLEMENT MPAC USING THE IDENTITY
046630,002686:                                                                                                  #  SIN(X-(+)PI) = SIN(-X).
046631,002687: 00,3536           52155                 +3        DXCH     MPAC                                  
046632,002688: 00,3537           30154                           CA       MPAC                                  #  SEE IF ARGUMENT GREATER THAN .5 IN
046633,002689: 00,3540           60000                           DOUBLE                                         #  MAGNITUDE. IF SO, REDUCE IT TO LESS THAN
046634,002690: 00,3541           54001                           TS       L                                     #  .5 (+-PI/2 SCALED) AS FOLLOWS:
046635,002691: 00,3542           13553                           TCF      SN1                                   
046636,002692: 
046637,002693: 00,3543           50000                           INDEX    A                                     #  IF POSITIVE, FORM PI - X, IF NEGATIVE
046638,002694: 00,3544           34726                           CAF      NEG1/2     +1                         #  USE -PI - X.
046639,002695: 00,3545           60000                           DOUBLE                                         
046640,002696: 00,3546           00006                           EXTEND                                         
046641,002697: 00,3547           60154                           SU       MPAC                                  #  GUARANTEED NO OVERFLOW.
046642,002698: 00,3550           54154                           TS       MPAC                                  
046643,002699: 00,3551           40155                           CS       MPAC       +1                         
046644,002700: 00,3552           54155                           TS       MPAC       +1                         
046645,002701: 

Page 1081

046647,002703: 00,3553           00006        SN1                EXTEND                                         #  SET UP TO EVALUATE HASTINGS POLYNOMIAL
046648,002704: 00,3554           30155                           DCA      MPAC                                  
046649,002705: 00,3555           52134                           DXCH     BUF2                                  
046650,002706: 00,3556           03300                           TC       DSQSUB                                #  SQUARE MPAC.
046651,002707: 
046652,002708: 00,3557           07243                           TC       POLY                                  #  EVALUATE FOURTH ORDER POLYNOMIAL.
046653,002709: 00,3560           00003                           DEC      3          B-14                       
046654,002710: 00,3561           14441 37325                     2DEC     +.3926990796                            
046655,002711: 
046656,002712: 00,3563           53250 60764                     2DEC     -.6459637111                            
046657,002713: 
046658,002714: 00,3565           12146 21276                     2DEC     +.318758717                            
046659,002715: 
046660,002716: 00,3567           75466 71471                     2DEC     -.074780249                            
046661,002717: 
046662,002718: 00,3571           00236 32757                     2DEC     +.009694988                            
046663,002719: 
046664,002720: 
046665,002721: 00,3573           32470                           CAF      LBUF2                                 #  MULTIPLY BY ARGUMENT AND SHIFT LEFT 2.
046666,002722: 00,3574           07127                           TC       DMPSUB     -1                         
046667,002723: 
046668,002724: 00,3575           00006                           EXTEND                                         
046669,002725: 00,3576           30156                           DCA      MPAC       +1                         
046670,002726: 00,3577           20156                           DAS      MPAC       +1                         
046671,002727: 00,3600           60154                           AD       MPAC                                  
046672,002728: 00,3601           26154                           ADS      MPAC                                  #  NEITHER SHIFT OVERFLOWS.
046673,002729: 00,3602           00006                           EXTEND                                         
046674,002730: 00,3603           30156                           DCA      MPAC       +1                         
046675,002731: 00,3604           20156                           DAS      MPAC       +1                         
046676,002732: 00,3605           60154                           AD       MPAC                                  
046677,002733: 00,3606           26154                           ADS      MPAC                                  
046678,002734: 00,3607           16102                           TCF      DANZIG                                
046679,002735: 

Page 1082

046681,002737:                                                                                                  #           ARCSIN/ARCCOS ROUTINE.
046682,002738: 
046683,002739: 00,3610           33631        ARCSIN             CAF      LASINEX                               #  COMPUTE ARCSIN BY USING THE IDENTITY
046684,002740: 00,3611           13613                           TCF      +2                                    #  ARCSIN(X) = PI/2 - ARCCOS(X).
046685,002741: 
046686,002742: 00,3612           33713        ARCCOS             CAF      LDANZIG                               #  (EXITS IMMEDIATELY).
046687,002743: 00,3613           54136                           TS       ESCAPE                                
046688,002744: 00,3614           06744                           TC       BRANCH                                #  TEST SIGN OF INPUT.
046689,002745: 00,3615           13625                           TCF      ACOSST                                #  START IMMEDIATELY IF POSITIVE.
046690,002746: 00,3616           13731                           TCF      ACOSZERO                              #  ARCCOS(0) = PI/2 = .25.
046691,002747: 00,3617           00006                           EXTEND                                         #  IF NEGATIVE, USE THE IDENTITY
046692,002748: 00,3620           40155                           DCS      MPAC                                  #  ARCCOS(X) = PI - ARCCOS(-X), FORCING
046693,002749: 00,3621           52155                           DXCH     MPAC                                  #  ARGUMENT POSITIVE.
046694,002750: 00,3622           33734                           CAF      TCSUBTR                               #  SET EXIT  TO DO ABOVE BEFORE
046695,002751: 00,3623           56136                           XCH      ESCAPE                                #  ARCSIN/ARCCOS CONSIDERATIONS.
046696,002752: 00,3624           54137                           TS       ESCAPE2                               
046697,002753: 
046698,002754: 00,3625           44727        ACOSST             CS       HALF                                  #  TEST MAGNITUDE OF INPUT.
046699,002755: 00,3626           60154                           AD       MPAC                                  
046700,002756: 00,3627           10000                           CCS      A                                     
046701,002757: 00,3630           13721                           TCF      ACOSOVF                               #  THIS IS PROBABLY AN OVERFLOW CASE.
046702,002758: 
046703,002759: 00,3631           13707        LASINEX            TCF      ASINEX                                
046704,002760: 
046705,002761: 00,3632           13642                           TCF      ACOSST2                               #  NO OVERFLOW - PROCEED.
046706,002762: 
046707,002763: 00,3633           10155                           CCS      MPAC       +1                         #  IF MAJOR PART IS .5, CALL ANSWER 0
046708,002764: 00,3634           34746                           CAF      ZERO                                  #  UNLESS MINOR PART NEGATIVE.
046709,002765: 00,3635           13637                           TCF      ACOS=0                                
046710,002766: 
046711,002767: 00,3636           13642                           TCF      ACOSST2                               
046712,002768: 
046713,002769: 00,3637           54155        ACOS=0             TS       MPAC       +1                         
046714,002770: 00,3640           54154                           TS       MPAC                                  
046715,002771: 00,3641           00136                           TC       ESCAPE                                
046716,002772: 
046717,002773: 00,3642           00006        ACOSST2            EXTEND                                         #  NOW THAT ARGUMENT IS IN PROPER RANGE,
046718,002774: 00,3643           40155                           DCS      MPAC                                  #  BEGIN COMPUTATION. USE HASTINGS
046719,002775: 00,3644           64727                           AD       HALF                                  #  APPROXIMATION ARCCOS(X) = SQRT(1-X)P(X)
046720,002776: 00,3645           52155                           DXCH     MPAC                                  #  IN A SCALED VERSION WHERE P(X) IS A
046721,002777: 00,3646           52134                           DXCH     BUF2                                  #  SEVENTH ORDER POLYNOMIAL.
046722,002778: 
046723,002779: 00,3647           03343                           TC       SQRTSUB                               #  RETURNS WITH NORMALIZED SQUARE ROOT.
046724,002780: 
046725,002781: 00,3650           10135                           CCS      MPTEMP                                #  SEE IF UN-NORMALIZATION REQUIRED.
046726,002782: 00,3651           13714                           TCF      ACOSSHR                               #  IF SO.
046727,002783: 

Page 1083

046729,002785: 00,3652           52155        ACOS3              DXCH     MPAC                                  #  SET UP FOR POLYNOMIAL EVALUATION.
046730,002786: 00,3653           52134                           DXCH     BUF2                                  
046731,002787: 00,3654           52155                           DXCH     MPAC                                  
046732,002788: 
046733,002789: 00,3655           07243                           TC       POLY                                  
046734,002790: 00,3656           00006                           DEC      6          B-14                       
046735,002791: 00,3657           13240 23630                     2DEC     +.353553385                            #  COEFFICIENTS ARE C 2(+I)/PISQRT(2) WHERE
046736,002792: 
046737,002793: 00,3661           74721 47775                     2DEC*    -.0483017006 B+1*                       #                    I
046738,002794: 
046739,002795: 00,3663           02440 20237                     2DEC*    +.0200273085 B+2*                       #       WHERE C STANDS FOR ORIGINAL COEFFS.
046740,002796: 
046741,002797: 00,3665           75067 70742                     2DEC*    -.0112931863 B+3*                       
046742,002798: 
046743,002799: 00,3667           03436 26756                     2DEC*    +.00695311612 B+4*                       
046744,002800: 
046745,002801: 00,3671           74037 57640                     2DEC*    -.00384617957 B+5*                       
046746,002802: 
046747,002803: 00,3673           03046 07143                     2DEC*    +.001501297736 B+6*                       
046748,002804: 
046749,002805: 00,3675           76654 42244                     2DEC*    -.000284160334 B+7*                       
046750,002806: 
046751,002807: 
046752,002808: 00,3677           32470                           CAF      LBUF2                                 #  DO FINAL MULTIPLY AND GO TO ANY
046753,002809: 00,3700           07127                           TC       DMPSUB     -1                         #  EPILOGUE SEQUENCES.
046754,002810: 00,3701           00136                           TC       ESCAPE                                
046755,002811: 
046756,002812: 00,3702           00006        SUBTR              EXTEND                                         #  EPILOGUE FOR NEGATIVE INPUTS TO ARCCOS.
046757,002813: 00,3703           40155                           DCS      MPAC                                  
046758,002814: 00,3704           64727                           AD       HALF                                  #  FORMS PI - ARCCOS(-X) = ARCCOS(X).
046759,002815: 00,3705           52155                           DXCH     MPAC                                  
046760,002816: 00,3706           00137                           TC       ESCAPE2                               #  GO TO POSSIBLE ARCSIN EPILOGUE.
046761,002817: 
046762,002818: 00,3707           00006        ASINEX             EXTEND                                         
046763,002819: 00,3710           40155                           DCS      MPAC                                  #  ARCSIN EPILOGUE - GET ARCSIN(X)
046764,002820: 00,3711           64730                           AD       QUARTER                               #  = PI/2 - ARCCOS(X).
046765,002821: 00,3712           52155                           DXCH     MPAC                                  
046766,002822: 00,3713           16102        LDANZIG            TCF      DANZIG                                
046767,002823: 

Page 1084

046769,002825: 00,3714           50000        ACOSSHR            INDEX    A                                     #  THE SHIFT RIGHT IS LESS THAN 14 SINCE
046770,002826: 00,3715           34727                           CAF      BIT14                                 #  THE INPUT WAS NON-ZERO DP.
046771,002827: 00,3716           54135                           TS       MPTEMP                                
046772,002828: 00,3717           02073                           TC       VSHRRND                               #  DP SHIFT RIGHT AND ROUND.
046773,002829: 00,3720           13652                           TCF      ACOS3                                 #  PROCEED.
046774,002830: 
046775,002831: 00,3721           00006        ACOSOVF            EXTEND                                         #  IF MAJOR PART WAS ONLY 1 MORE THAN .5,
046776,002832: 00,3722           13637                           BZF      ACOS=0                                #  CALL ANSWER ZERO.
046777,002833: 
046778,002834: 00,3723           00006        ACOSABRT           EXTEND                                         #  IF OVERFLOW, CALL ANSWER ZERO BUT
046779,002835: 00,3724           30165                           DCA      LOC                                   #  SOUND AN ALARM.
046780,002836: 00,3725           05726                           TC       ALARM1                                
046781,002837: 00,3726           01301                           OCT      1301                                  
046782,002838: 
046783,002839: 00,3727           34746                           CAF      ZERO                                  
046784,002840: 00,3730           13637                           TCF      ACOS=0                                
046785,002841: 
046786,002842: 00,3731           34730        ACOSZERO           CAF      QUARTER                               #  ACOS(0) = PI/2.
046787,002843: 00,3732           13640                           TCF      ACOS=0     +1                         #  SET MPAC AND EXIT VIA ESCAPE.
046788,002844: 
046789,002845: 00,3733           77763        NEG12              DEC      -12        B-14                       
046790,002846: 00,3734           13702        TCSUBTR            TCF      SUBTR                                 
046791,002847: 

Page 1085

046793,002849:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE AVAILABLE FOR SETTING, MODIFYING, AND BRANCHING ON INDEX REGISTERS:
046794,002850: 
046795,002851:                                                                                                  #           1.  AXT                ADDRESS TO INDEX TRUE.
046796,002852:                                                                                                  #           1.  AXC                ADDRESS TO INDEX COMPLEMENTED.
046797,002853:                                                                                                  #           3.  LXA                LOAD INDEX FROM ERASABLE.
046798,002854:                                                                                                  #           4.  LXC                LOAD INDEX COMPLEMENTED FROM ERASABLE.
046799,002855:                                                                                                  #           5.  SXA                STORE INDEX IN ERASABLE.
046800,002856:                                                                                                  #           6.  XCHX               EXCHANGE INDEX REIGSTER WITH ERASABLE.
046801,002857: 
046802,002858:                                                                                                  #           7.  INCR               INCREMENT INDEX REGISTER.
046803,002859:                                                                                                  #           8.  XAD                ERASABLE ADD TO INDEX REGISTER.
046804,002860:                                                                                                  #           9.  XSU                ERASABLE SUBTRACT FROM INDEX REGISTER.
046805,002861: 
046806,002862:                                                                                                  #          10.  TIX                BRANCH ON INDEX REGISTER AND DECREMENT.
046807,002863: 
046808,002864: 01,2350                                           BANK     01                                    
046809,002865: 
046810,002866: 01,2350                                           COUNT*   $$/INTER                              
046811,002867: 01,2350           02445        AXT                TC       TAGSUB                                #  SELECT APPROPRIATE INDEX REGISTER.
046812,002868: 01,2351           30117                           CA       POLISH                                
046813,002869: 01,2352           50130        XSTORE             INDEX    INDEXLOC                              #  CONTAINS C(FIXLOC) OR C(FIXLOC)+1.
046814,002870: 01,2353           54046                           TS       X1                                    
046815,002871: 01,2354           16102                           TCF      DANZIG                                
046816,002872: 
046817,002873: 01,2355           02445        AXC                TC       TAGSUB                                
046818,002874: 01,2356           40117                           CS       POLISH                                
046819,002875: 01,2357           02352                           TC       XSTORE                                
046820,002876: 
046821,002877: 01,2360           02433        LXA                TC       15ADRERS                              #  LOAD INDEX REGISTER FROM ERASABLE.
046822,002878: 01,2361           50117                           INDEX    POLISH                                
046823,002879: 01,2362           30000                           CA       0                                     
046824,002880: 01,2363           12352                           TCF      XSTORE                                
046825,002881: 
046826,002882: 01,2364           02433        LXC                TC       15ADRERS                              #  LOAD NDX REG FROM ERASABLE COMPLEMENTED.
046827,002883: 01,2365           50117                           INDEX    POLISH                                
046828,002884: 01,2366           40000                           CS       0                                     
046829,002885: 01,2367           12352                           TCF      XSTORE                                
046830,002886: 
046831,002887: 01,2370           02433        SXA                TC       15ADRERS                              #  STORE INDEX REGISTER IN ERASABLE.
046832,002888: 01,2371           50130                           INDEX    INDEXLOC                              
046833,002889: 01,2372           30046                           CA       X1                                    
046834,002890: 01,2373           50117        MSTORE1            INDEX    POLISH                                
046835,002891: 01,2374           54000                           TS       0                                     
046836,002892: 01,2375           16102                           TCF      DANZIG                                
046837,002893: 

Page 1086

046839,002895: 01,2376           02433        XCHX               TC       15ADRERS                              #  EXCHANGE INDEX REGISTER WITH ERASABLE.
046840,002896: 01,2377           50117                           INDEX    POLISH                                
046841,002897: 01,2400           30000                           CA       0                                     
046842,002898: 01,2401           50130                           INDEX    INDEXLOC                              
046843,002899: 01,2402           56046                           XCH      X1                                    
046844,002900: 01,2403           12373                           TCF      MSTORE1                               
046845,002901: 
046846,002902: 01,2404           02433        XAD                TC       15ADRERS                              #  ADD ERASABLE TO INDEX REGISTER.
046847,002903: 01,2405           50117                           INDEX    POLISH                                
046848,002904: 01,2406           30000                           CA       0                                     
046849,002905: 01,2407           50130        XAD2               INDEX    INDEXLOC                              
046850,002906: 01,2410           26046                           ADS      X1                                    #  IGNORING OVERFLOWS.
046851,002907: 01,2411           16102                           TCF      DANZIG                                
046852,002908: 
046853,002909: 01,2412           02445        INCR               TC       TAGSUB                                #  INCREMENT INDEX REGISTER.
046854,002910: 01,2413           30117                           CA       POLISH                                
046855,002911: 01,2414           12407                           TCF      XAD2                                  
046856,002912: 
046857,002913: 01,2415           02433        XSU                TC       15ADRERS                              #  SUBTRACT ERASABLE FROM INDEX REGISTER.
046858,002914: 01,2416           50117                           INDEX    POLISH                                
046859,002915: 01,2417           40000                           CS       0                                     
046860,002916: 01,2420           12407                           TCF      XAD2                                  
046861,002917: 
046862,002918: 01,2421           02445        TIX                TC       TAGSUB                                #  BRANCH AND DECREMENT ON INDEX.
046863,002919: 01,2422           50130                           INDEX    INDEXLOC                              
046864,002920: 01,2423           40050                           CS       S1                                    
046865,002921: 01,2424           50130                           INDEX    INDEXLOC                              
046866,002922: 01,2425           60046                           AD       X1                                    
046867,002923: 01,2426           00006                           EXTEND                                         #  NO OPERATION IF DECREMENTED INDEX IS
046868,002924: 01,2427           66102                           BZMF     DANZIG                                #  NEGATIVE OR ZERO.
046869,002925: 
046870,002926: 01,2430           50130        DOTIXBR            INDEX    INDEXLOC                              
046871,002927: 01,2431           56046                           XCH      X1                                    #  IGNORING OVERFLOWS.
046872,002928: 
046873,002929: 01,2432           16667                           TCF      GOTO                                  #  DO THE BRANCH USING THE CADR IN POLISH.
046874,002930: 

Page 1087

046876,002932:                                                                                                  #           SUBROUTINE TO CONVERT AN ERASABLE ADDRESS (11 BITS) TO AN EBANK SETTING AND SUBADDRESS.
046877,002933: 
046878,002934: 01,2433           40117        15ADRERS           CS       POLISH                                
046879,002935: 01,2434           64763                           AD       DEC45                                 
046880,002936: 01,2435           10000                           CCS      A                                     #  DOES THE ADDRESS POINT TO THE WORK AREA?
046881,002937: 01,2436           30120                           CA       FIXLOC                                #  YES.  ADD FIXLOC.  EBANK OK AS IS.
046882,002938: 01,2437           12444                           TCF      +5                                    
046883,002939: 
046884,002940: 01,2440           35000                           CA       OCT1400                               #  NO.  SET EBANK & MAKE UP SUBADDRESS.
046885,002941: 01,2441           56117                           XCH      POLISH                                
046886,002942: 01,2442           54003                           TS       EBANK                                 
046887,002943: 01,2443           74350                           MASK     LOW8                                  
046888,002944: 01,2444           26117                 +5        ADS      POLISH                                #  FALL INTO TAGSUB, AND RETURN VIA Q.
046889,002945: 
046890,002946:                                                                                                  #           SUBROUTINE WHICH SETS THE ADDRESS OF THE SPECIFIED INDEX IN INDEXLOC. (ACTUALLY, THE ADDRESS -38D.)
046891,002947: 
046892,002948: 01,2445           30120        TAGSUB             CA       FIXLOC                                
046893,002949: 01,2446           54130                           TS       INDEXLOC                              
046894,002950: 
046895,002951: 01,2447           10020                           CCS      CYR                                   #  BIT 15 SPECIFIES INDEX.
046896,002952: 01,2450           24130                           INCR     INDEXLOC                              #  0 MEANS USE X2.
046897,002953: 01,2451           00002                           TC       Q                                     
046898,002954: 01,2452           00002                           TC       Q                                     #  1 FOR X1.
046899,002955: 

Page 1088

046901,002957:                                                                                                  #           MISCELLANEOUS OPERATION CODES WITH DIRECT ADDRESSES. INCLUDED HERE ARE:
046902,002958: 
046903,002959:                                                                                                  #           1.  ITA                STORE QPRET (RETURN ADDRESS) IN ERASABLE.
046904,002960:                                                                                                  #           2.  CALL               CALL A SUBROUTINE, LEAVING RETURN IN QPRET.
046905,002961:                                                                                                  #           3.  RTB                RETURN TO BASIC LANGUAGE AT THE GIVEN ADDRESS.
046906,002962:                                                                                                  #           4.  BHIZ               BRANCH IF THE HIGH ORDER OF MPAC IS ZERO (SINGLE PRECISION).
046907,002963:                                                                                                  #           5.  BOV                BRANCH ON OVERFLOW.
046908,002964:                                                                                                  #           6.  GOTO               SIMPLE SEQUENCE CHANGE.
046909,002965: 
046910,002966: 01,2453           10020        RTB/BHIZ           CCS      CYR                                   
046911,002967: 01,2454           30117        RTB                CA       POLISH                                
046912,002968: 01,2455           04612                           TC       SWCALL     -1                         #  SO A "TC Q" FROM ROUTINE LEADS TO DANZIG
046913,002969: 
046914,002970: 01,2456           10154        BHIZ               CCS      MPAC                                  
046915,002971: 01,2457           16102                           TCF      DANZIG                                
046916,002972: 01,2460           16667                           TCF      GOTO                                  
046917,002973: 01,2461           16102                           TCF      DANZIG                                
046918,002974: 01,2462           16667                           TCF      GOTO                                  
046919,002975: 
046920,002976: 01,2463           10121        BOV(B)             CCS      OVFIND                                #  BRANCH ON OVERFLOW TO BASIC OR INTERP.
046921,002977: 01,2464           12466                           TCF      +2                                    
046922,002978: 01,2465           16102                           TCF      DANZIG                                
046923,002979: 01,2466           54121                           TS       OVFIND                                
046924,002980: 01,2467           10020                           CCS      CYR                                   
046925,002981: 01,2470           12454                           TCF      RTB                                   #  IF BASIC.
046926,002982: 01,2471           00360        B5TOBB             OCT      360                                   
046927,002983: 01,2472           16667                           TCF      GOTO                                  
046928,002984: 

Page 1089

046930,002986: 01,2473           10020        BZE/GOTO           CCS      CYR                                   #  SEE WHICH OP-CODE IS DESIRED.
046931,002987: 01,2474           06744                           TC       BRANCH                                #  DO BZE.
046932,002988: 01,2475           16102                           TCF      DANZIG                                
046933,002989: 01,2476           16667                           TCF      GOTO                                  #  DO GOTO.
046934,002990: 01,2477           16102                           TCF      DANZIG                                
046935,002991: 
046936,002992: 01,2500           10020        BPL/BMN            CCS      CYR                                   
046937,002993: 01,2501           12507                           TCF      BPL                                   
046938,002994: 01,2502           12000        5B10               DEC      5          B+10                       #  SHIFTS OP CODE IN SWITCH INSTRUCTION ADR
046939,002995: 
046940,002996: 01,2503           06744                           TC       BRANCH                                #  DO BMN.
046941,002997: 01,2504           16102                           TCF      DANZIG                                
046942,002998: 01,2505           16102                           TCF      DANZIG                                
046943,002999: 01,2506           16667                           TCF      GOTO                                  #  ONLY IF NNZ.
046944,003000: 
046945,003001: 01,2507           06744        BPL                TC       BRANCH                                
046946,003002: 01,2510           16667                           TCF      GOTO                                  #  IF POSITIVE OR ZERO.
046947,003003: 01,2511           16667                           TCF      GOTO                                  
046948,003004: 01,2512           16102                           TCF      DANZIG                                
046949,003005: 
046950,003006: 01,2513           10020        CALL/ITA           CCS      CYR                                   
046951,003007: 01,2514           16661                           TCF      CALL                                  
046952,003008: 
046953,003009: 01,2515           05701                           TC       CCSHOLE                               
046954,003010: 01,2516           02433                           TC       15ADRERS                              #  STORE QPRET. (TAGSUB AFTER 15ADRERS IS
046955,003011: 01,2517           50120                           INDEX    FIXLOC                                #  SLOW IN THIS CASE, BUT SAVES STORAGE.)
046956,003012: 01,2520           30052                           CA       QPRET                                 
046957,003013: 01,2521           12373                           TCF      MSTORE1                               
046958,003014: 

Page 1090

046960,003016:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR ALTERING AND TESTING INTERPRETIVE SWITCHES:
046961,003017: 
046962,003018:                                                                                                  #   00      BONSET                 SET A SWITCH AND DO A GOTO IF IT WAS ON.
046963,003019:                                                                                                  #   01      SETGO                  SET A SWITCH AND DO A GOTO.
046964,003020:                                                                                                  #   02      BOFSET                 SET A SWITCH AND DO A GOTO IF IT WAS OFF
046965,003021:                                                                                                  #   03      SET                    SET A SWITCH.
046966,003022: 
046967,003023:                                                                                                  #   04      BONINV                 INVERT A SWITCH AND BRANCH IF IT WAS ON.
046968,003024:                                                                                                  #   05      INVGO                  INVERT A SWITCH AND DO A GOTO.
046969,003025:                                                                                                  #   06      BOFINV                 INVERT A SWITCH AND BRANCH IF IT WAS OFF
046970,003026:                                                                                                  #   07      INVERT                 INVERT A SWITCH.
046971,003027: 
046972,003028:                                                                                                  #   10      BONCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS ON.
046973,003029:                                                                                                  #   11      CLRGO                  CLEAR A SWITCH AND DO A GOTO.
046974,003030:                                                                                                  #   12      BOFCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS OFF.
046975,003031:                                                                                                  #   13      CLEAR                  CLEAR A SWITCH.
046976,003032: 
046977,003033:                                                                                                  #   14      BON                    BRANCH IF A SWITCH WAS ON.
046978,003034:                                                                                                  #   16      BOFF                   BRANCH IF A SWITCH WAS OFF.
046979,003035: 
046980,003036: 
046981,003037:                                                                                                  #           THE ADDRESS SUPPLIED WITH THE SWITCH INSTRUCTION IS INTERPRETED AS FOLLOWS:
046982,003038: 
046983,003039:                                                                                                  #           BITS 1-4    SWITCH BIT NUMBER (1-15).
046984,003040:                                                                                                  #           BITS 5-8    SWITCH OPERATION NUMBER.
046985,003041:                                                                                                  #           BITS 9-     SWITCH WORD NUMBER (UP TO 64 SWITCH WORDS).
046986,003042: 
046987,003043:                                                                                                  #           THE ADDRESS ITSELF IS MADE UP BY THE YUL SYSTEM ASSEMBLER. THE BRANCH INSTRUCTIONS REQUIRE TWO
046988,003044:                                                                                                  #  ADDRESSES, THE SECOND TAKEN AS THE DIRECT (OR INDIRECT IF IN ERASABLE) ADDRESS OF THE BRANCH.
046989,003045: 
046990,003046: 
046991,003047: 01,2522           34753        SWITCHES           CAF      LOW4                                  #  LEAVE THE SWITCH BIT IN  SWBIT  .
046992,003048: 01,2523           70117                           MASK     POLISH                                
046993,003049: 01,2524           50000                           INDEX    A                                     
046994,003050: 01,2525           34726                           CAF      BIT15                                 #  (NUMBER FROM LEFT TO RIGHT.)
046995,003051: 01,2526           54131                           TS       SWBIT                                 
046996,003052: 
046997,003053: 01,2527           34736                           CAF      BIT7                                  #  LEAVE THE SWITCH NUMBER IN SWWORD.
046998,003054: 01,2530           00006                           EXTEND                                         
046999,003055: 01,2531           70117                           MP       POLISH                                
047000,003056: 01,2532           54130                           TS       SWWORD                                
047001,003057: 
047002,003058: 01,2533           00004                           INHINT                                         #  DURING SWITCH CHANGE SO RUPT CAN USE TOO
047003,003059: 01,2534           50000                           INDEX    A                                     #  LEAVE THE SWITCH WORD ITSELF IN L.
047004,003060: 01,2535           30074                           CA       STATE                                 
047005,003061: 01,2536           54002                           TS       Q                                     #  Q WILL BE USED AS A CHANNEL.

Page 1091

047007,003063: 01,2537           34732                           CAF      BIT11                                 
047008,003064: 01,2540           00006                           EXTEND                                         #  DISPATCH SWITCH BIT OPERATION AS IN BITS
047009,003065: 01,2541           70117                           MP       POLISH                                #  7-8 OF POLISH.
047010,003066: 01,2542           72602                           MASK     B3TOB4                                #  GETS 4X2-BIT CODE.
047011,003067: 01,2543           50000                           INDEX    A                                     
047012,003068: 01,2544           12545                           TCF      +1                                    
047013,003069: 
047014,003070: 01,2545           30131                 +1        CA       SWBIT                                 #  00 - SET SWITCH IN QUESTION.
047015,003071: 01,2546           00006                           EXTEND                                         
047016,003072: 01,2547           04002                           ROR      QCHAN                                 
047017,003073: 01,2550           12557                           TCF      SWSTORE                               
047018,003074: 
047019,003075: 01,2551           30131                 +5        CA       SWBIT                                 #  01 - INVERT SWITCH.
047020,003076: 01,2552           00006                           EXTEND                                         
047021,003077: 01,2553           06002                           RXOR     QCHAN                                 
047022,003078: 01,2554           12557                           TCF      SWSTORE                               
047023,003079: 
047024,003080: 01,2555           40131                 +9D       CS       SWBIT                                 #  10 - CLEAR.
047025,003081: 01,2556           70002                           MASK     Q                                     
047026,003082: 01,2557           50130        SWSTORE            INDEX    SWWORD                                
047027,003083: 01,2560           54074                           TS       STATE                                 #  NEW SWITCH WORD.
047028,003084: 

Page 1092

047030,003086: 01,2561           00003                 +13D      RELINT                                         #  11 - NOOP.
047031,003087: 01,2562           34730                           CAF      BIT13                                 
047032,003088: 01,2563           00006                           EXTEND                                         #  DISPATCH SEQUCE CHANGING OR BRANCHING
047033,003089: 01,2564           70117                           MP       POLISH                                #  CODE.
047034,003090: 01,2565           72602                           MASK     B3TOB4                                
047035,003091: 01,2566           50000                           INDEX    A                                     
047036,003092: 01,2567           12570                           TCF      +1                                    #  ORIGINALLY STORED IN BITS 5-6.
047037,003093: 
047038,003094: 01,2570           40002                 +1        CS       Q                                     #  00 - BRANCH IF ON.
047039,003095: 01,2571           70131        TEST               MASK     SWBIT                                 
047040,003096: 01,2572           10000                           CCS      A                                     
047041,003097: 01,2573           12603                           TCF      SWSKIP                                
047042,003098: 
047043,003099: 01,2574           16736                 +5        TCF      SWBRANCH                              #  01 - GO TO.
047044,003100: 
047045,003101: 01,2575           12603                           TCF      SWSKIP                                #  HERE ONLY ON BIT 15.
047046,003102: 
047047,003103: 01,2576           05701                           TC       CCSHOLE                               
047048,003104: 01,2577           05701                           TC       CCSHOLE                               
047049,003105: 
047050,003106: 01,2600           30002                 +9D       CA       Q                                     #  10 - BRANCH IF OFF.
047051,003107: 01,2601           12571                           TCF      TEST                                  
047052,003108: 
047053,003109: 01,2602           00014        B3TOB4             OCT      0014                                  
047054,003110: 01,2603           24164        SWSKIP             INCR     LOC                                   
047055,003111: 
047056,003112: 01,2604  01,2522               SW/                EQUALS   SWITCHES                              
047057,003113: 
047058,003114: 01,2604           16102                 +13D      TCF      DANZIG                                #  11 - NOOP.

End of include-file INTERPRETER.agc.  Parent file is MAIN.agc