Source Code

These source-code files were transcribed from a printout in Don Eyles's personal collection, scanned by archive.org, and financially sponsored by Mike Higgins. A team of volunteers performed the transcription and proof-reading. Note that the scanned page images are available at the Virtual AGC Project website, as well as higher-quality (but much larger) images at the Virtual AGC Project's section on archive.org. Report any problems by creating "issues" at the Virtual AGC Project's GitHub Repository.

Notations on the program listing read, in part:

	YUL SYSTEM FOR BLK2: REVISION 0 OF PROGRAM RETRED44 BY NASA 2021100
	JUL 9, 1965
Note that the date is the date of the printout, not the date of the program revision.

000668,000002:                                                                                                  ## Copyright:   Public domain.
000669,000003:                                                                                                  ## Filename:    LIST-PROCESSING_INTERPRETER.agc
000670,000004:                                                                                                  ## Purpose:     Part of the source code for Retread 44 (revision 0). It was
000671,000005:                                                                                                  ##              the very first program for the Block II AGC, created as an
000672,000006:                                                                                                  ##              extensive rewrite of the Block I program Sunrise.
000673,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
000674,000008:                                                                                                  ##              that the code format has been changed to conform to the
000675,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
000676,000010:                                                                                                  ##              original YUL assembler.
000677,000011:                                                                                                  ## Reference:   pp. 17-104
000678,000012:                                                                                                  ## Assembler:   yaYUL
000679,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
000680,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
000681,000015:                                                                                                  ## Mod history: 2016-12-13 MAS  Created from Aurora 12 version.
000682,000016:                                                                                                  ##              2016-12-17 MAS  Transcribed.
000683,000017:                                                                                                  ##              2016-12-18 MAS  Typos.
000684,000018:                                                                                                  ##              2016-12-27 RSB  Proofed comment text using octopus/ProoferComments,
000685,000019:                                                                                                  ##                              and fixed errors found.
000686,000020:                                                                                                  ##              2017-02-05 RSB  Back-ported comment corrections 
000687,000021:                                                                                                  ##                              identified while proofing Artemis 072.
000688,000022:                                                                                                  ##              2017-03-15 RSB  Comment-text fixes identified in 5-way
000689,000023:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
000690,000024:                                                                                                  ##              2021-05-30 ABS  B5TOBB -> B5TOB8
000691,000025: 

Page 17

000693,000027:                                                                                                  #  SECTION 1  DISPATCHER
000694,000028: 
000695,000029:                                                                                                  #           ENTRY TO THE INTERPRETER. INTPRET SETS LOC TO THE FIRST  INSTRUCTION, BANKSET TO THE FBANK OF THE
000696,000030:                                                                                                  #  OBJECT INTERPRETIVE PROGRAM, AND INTBIT15 TO THE BIT15 CONTENTS OF FBANK. INTERPRETIVE PROGRAMS MAY BE IN
000697,000031:                                                                                                  #  VIRTUALLY ALL BANKS PRESENT UNDER ANY SUPER-BANK SETTING, WITH THE RESTRICTION THAT PROGRAMS IN HIGH BANKS
000698,000032:                                                                                                  #  (BIT15 OF FBANK = 1) DO NOT REFER TO LOWBANKS, AND VICE-VERSA. THE INTERPRETER DOES NOT SWITCH SUPER-BANK,
000699,000033:                                                                                                  #  NOR DOES IT SWITCH EBANKS. MOST EBANK SWITCHING IS DONE BY THE EXECUTIVE PROGRAM.
000700,000034: 
000701,000035:    6000                                           SETLOC   6000                                  
000702,000036: 
000703,000037:    6000           00006        INTPRET            EXTEND                                         #  SET LOC TO THE WORD FOLLOWING THE TC.
000704,000038:    6001           22150                           QXCH     LOC                                   
000705,000039: 
000706,000040:    6002           30004                 +2        CA       FBANK                                 #  INTERPRETIVE BRANCHES FINISH HERE.
000707,000041:    6003           54151                           TS       BANKSET                               
000708,000042:    6004           77630                           MASK     BIT15                                 #  GET 15TH BIT FOR INDEXABLE ADDRESSES.
000709,000043:    6005           54101                           TS       INTBIT15                              
000710,000044:    6006           66425                           AD       LOW10                                 #  THIS VERSION IS USED IN PROCESSING
000711,000045:    6007           54100                           TS       INTB15+                               #  INDEXABLE FIXED-BANK ADDRESSES.
000712,000046: 
000713,000047:    6010           16023                           TCF      NEWOPS                                #  PICK UP OP CODE PAIR AND BEGIN.
000714,000048: 
000715,000049: 
000716,000050: 
000717,000051:    6011           22006        INTRSM             LXCH     BBANK                                 #  RESUME SUSPENDED INTERPRETIVE JOB
000718,000052:    6012           16017                           TCF      DANZIG     +3                         #  (ACTUALLY PART OF THE EXECUTIVE).
000719,000053: 

Page 18

000721,000055:                                                                                                  #           AT THE END OF MOST INSTRUCTIONS, CONTROL IS GIVEN TO DANZIG TO DISPATCH THE NEXT OPERATION.
000722,000056:    6013           54147        NEWMODE            TS       MODE                                  #  PROLOGUE FOR MODE-CHANGING INSTRUCTIONS.
000723,000057: 
000724,000058:    6014           30151        DANZIG             CA       BANKSET                               #  SET FBANK BEFORE TESTING NEWJOB SO THAT
000725,000059:    6015           54004                           TS       FBANK                                 #  BBANK MAY BE SAVED DIRECTLY BY CHANJOB.
000726,000060: 
000727,000061:    6016           10023                           CCS      EDOP                                  #  SEE IF AN ORDER CODE IS LEFT OVER FROM
000728,000062:    6017           16032                           TCF      OPJUMP                                #  THE LAST PAIR RETRIEVED. IF SO, EXECUTE.
000729,000063:                                                                                                  #  EDOP IS SET TO ZERO ON ITS RE-EDITING.
000730,000064: 
000731,000065:    6020           10067                           CCS      NEWJOB                                #  SEE IF A JOB OF HIGHER PRIORITY IS
000732,000066:    6021           14160                           TCF      CHANG2                                #  PRESENT, AND IF SO, CHANGE JOBS.
000733,000067: 
000734,000068:    6022           24150                           INCR     LOC                                   #  ADVANCE THE LOCATION COUNTER.
000735,000069:    6023           50150        NEWOPS             INDEX    LOC                                   #  ENTRY TO BEGIN BY PICKING OP CODE PAIR.
000736,000070:    6024           30000                           CA       0                                     #  MAY BE AN OPCODE PAIR OR A STORE CODE.
000737,000071:    6025           10000                           CCS      A                                     #  TEST SIGN AND GET DABS(A).
000738,000072:    6026           16341                           TCF      DOSTORE                               #  PROCESS STORE CODE.
000739,000073: 
000740,000074:    6027           00177        LOW7               OCT      177                                   
000741,000075: 
000742,000076:    6030           54023                           TS       EDOP                                  #  OP CODE PAIR. LEAVE THE OTHER IN EDOP
000743,000077:    6031           76027                           MASK     LOW7                                  #  WHERE  CCS EDOP  WILL HONOR IT NEXT.
000744,000078: 
000745,000079:    6032           54020        OPJUMP             TS       CYR                                   #  LOWWD ENTERS HERE IF A RIGHT-HAND OP
000746,000080:    6033           10020                           CCS      CYR                                   #  CODE IS TO BE PROCESSED. TEST PREFICES.
000747,000081:    6034           16167                           TCF      OPJUMP2                               #  TEST SECOND PREFIX BIT.
000748,000082: 
000749,000083:    6035           16730                           TCF      EXIT                                  #  +0 OP CODE IS EXIT.
000750,000084: 

Page 19

000752,000086:                                                                                                  #           PROCESS ADDRESSES WHICH MAY BE DIRECT, INDEXED, OR REFERENCE THE PUSHDOWN LIST.
000753,000087: 
000754,000088:    6036           77646        ADDRESS            MASK     BIT1                                  #  SEE IF ADDRESS IS INDEXED. CYR CONTAINED
000755,000089:    6037           10000                           CCS      A                                     #  400XX, SO BIT 1 IS NOW AS IT WAS IN CYR.
000756,000090:    6040           16073                           TCF      INDEX                                 #  FORM INDEXED ADDRESS.
000757,000091: 
000758,000092:    6041           50150        DIRADRES           INDEX    LOC                                   #  LOOK AHEAD TO NEXT WORD TO SEE IF
000759,000093:    6042           40001        OCT40001           CS       1                                     #  ADDRESS IS GIVEN.
000760,000094:    6043           10000                           CCS      A                                     
000761,000095:    6044           16135                           TCF      PUSHUP                                #  IF NOT.
000762,000096: 
000763,000097:    6045           77773        NEG4               DEC      -4         B-14                       
000764,000098: 
000765,000099:    6046           24150                           INCR     LOC                                   #  IF SO, TO SHOW WE PICKED UP A WORD.
000766,000100:    6047           54102                           TS       ADDRWD                                
000767,000101: 

Page 20

000769,000103:                                                                                                  #           FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE. IN EACH CASE, THE
000770,000104:                                                                                                  #  REQUIRED 12 BIT SUB-ADDRESS IS LEFT IN ADDRWD, WITH ANY REQUIRED BANK SWITCHING DONE (F ONLY). ADDRESSES LESS
000771,000105:                                                                                                  #  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.
000772,000106: 
000773,000107: 
000774,000108: 
000775,000109:    6050           66171                           AD       -ENDVAC                               #  SEE IF ADDRESS RELATIVE TO WORK AREA.
000776,000110:    6051           10000                           CCS      A                                     
000777,000111:    6052           66234                           AD       -ENDERAS                              #  IF NOT, SEE IF IN GENERAL ERASABLE.
000778,000112:    6053           16060                           TCF      IERASTST                              
000779,000113: 
000780,000114:    6054           30104        NETZERO            CA       FIXLOC                                #  IF SO, LEAVE THE MODIFIED ADDRESS IN
000781,000115:    6055           26102                           ADS      ADDRWD                                #  ADDRWD AND DISPATCH.
000782,000116:    6056           50020                 +2        INDEX    CYR                                   #  THIS INDEX MAKES THE NEXT INSTRUCTION
000783,000117:    6057           76234                           7        INDJUMP    -1                         #  TCF INDJUMP + OP, EDITING CYR.
000784,000118: 
000785,000119:    6060           00006        IERASTST           EXTEND                                         
000786,000120:    6061           66056                           BZMF     NETZERO    +2                         #  GENERAL ERASABLE - DISPATCH IMMEDIATELY.
000787,000121: 
000788,000122:    6062           60100        FIXEDADR           AD       INTB15+                               #  FIXED BANK ADDRESS. RESTORE AND ADD B15.
000789,000123:    6063           54004                 +1        TS       FBANK                                 #  SWITCH BANKS AND LEAVE SUB-ADDRESS IN
000790,000124:    6064           76425                           MASK     LOW10                                 #  ADDRWD FOR OPERAND RETRIEVAL.
000791,000125:    6065           67634                           AD       2K                                    
000792,000126:    6066           54102                           TS       ADDRWD                                
000793,000127:    6067           50020                           INDEX    CYR                                   
000794,000128:    6070           76234                           7        INDJUMP    -1                         
000795,000129: 

Page 21

000797,000131:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES INTERPRETIVE INDEXED ADDRESSES. AN INTERPRETER INDEX REGISTER MAY
000798,000132:                                                                                                  #  CONTAIN THE ADDRESS OF ANY ERASABLE REGISTER (0-42 BEING RELATIVE TO THE VAC AREA) OR ANY INTERPRETIVE PROGRAM
000799,000133:                                                                                                  #  BANK, OR ANY INTEGER IN THAT RANGE.
000800,000134: 
000801,000135:    6071           37661        DODLOAD*           CAF      DLOAD*                                #  STODL* COMES HERE TO PROCESS LOAD ADR.
000802,000136:    6072           54020                           TS       CYR                                   #  (STOVL* ENTERS HERE).
000803,000137: 
000804,000138:    6073           30104        INDEX              CA       FIXLOC                                #  SET UP INDEX LOCATION.
000805,000139:    6074           54114                           TS       INDEXLOC                              
000806,000140:    6075           24150                           INCR     LOC                                   #  (ADDRESS ALWAYS GIVEN).
000807,000141:    6076           50150                           INDEX    LOC                                   
000808,000142:    6077           40000                           CS       0                                     
000809,000143:    6100           10000                           CCS      A                                     #  INDEX 2 IF ADDRESS STORED COMPLEMENTED.
000810,000144:    6101           24114                           INCR     INDEXLOC                              
000811,000145:    6102           16103                           NOOP                                           
000812,000146: 
000813,000147:    6103           54102                           TS       ADDRWD                                #  14 BIT ADDRESS TO ADDRWD.
000814,000148:    6104           76232                           MASK     BANKMASK                              #  IF ADDRESS GREATER THAN 1K, ADD INTBIT15
000815,000149:    6105           00006                           EXTEND                                         
000816,000150:    6106           16111                           BZF      INDEX2                                
000817,000151:    6107           30101                           CA       INTBIT15                              
000818,000152:    6110           26102                           ADS      ADDRWD                                
000819,000153: 
000820,000154:    6111           50114        INDEX2             INDEX    INDEXLOC                              
000821,000155:    6112           40046                           CS       X1                                    
000822,000156:    6113           26102                           ADS      ADDRWD                                #  DO AUGMENT, IGNORING AND CORRECTING OVF.
000823,000157: 
000824,000158:    6114           76231                           MASK     HIGH9                                 #  SEE IF ADDRESS IS IN WORK AREA.
000825,000159:    6115           00006                           EXTEND                                         
000826,000160:    6116           16131                           BZF      INDWORK                               
000827,000161:    6117           76232                           MASK     BANKMASK                              #  SEE IF IN FIXED BANK.
000828,000162:    6120           00006                           EXTEND                                         
000829,000163:    6121           16133                           BZF      INDERASE                              
000830,000164: 
000831,000165:    6122           30102                           CA       ADDRWD                                #  IN FIXED - SWITCH BANKS AND CREATE
000832,000166:    6123           54004                           TS       FBANK                                 #  SUB-ADDRESS.
000833,000167:    6124           76425                           MASK     LOW10                                 
000834,000168:    6125           67634                           AD       2K                                    
000835,000169:    6126           54102                           TS       ADDRWD                                
000836,000170:    6127           50020                           INDEX    CYR                                   
000837,000171:    6130           36234                           3        INDJUMP    -1                         
000838,000172: 
000839,000173:    6131           30104        INDWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO WORK AREA.
000840,000174:    6132           26102                           ADS      ADDRWD                                
000841,000175: 
000842,000176:    6133           50020        INDERASE           INDEX    CYR                                   
000843,000177:    6134           36234                           3        INDJUMP    -1                         
000844,000178: 

Page 22

000846,000180:                                                                                                  #           PUSH-UP ROUTINES. WHEN NO OPERAND ADDRESS IS GIVEN, THE APPROPRIATE OPERAND IS TAKEN FROM THE PUSH-DOWN
000847,000181:                                                                                                  #  LIST. IN MOST CASES THE MODE OF THE RESULT (VECTOR OR SCALAR) OF THE LAST ARITHMETIC OPERATION PERFORMED
000848,000182:                                                                                                  #  IS THE SAME AS THE TYPE OF OPERAND DESIRED (ALL ADD/SUBTRACT ETC.). EXCEPTIONS TO THIS GENERAL RULE ARE LISTED
000849,000183:                                                                                                  #  BELOW (NOTE THAT IN EVERY CASE THE MODE REGISTER IS LEFT INTACT):
000850,000184: 
000851,000185:                                                                                                  #           1.  VXSC AND V/SC WANT THE OPPOSITE TYPE OF OPERAND, E.G., IF THE LAST OPERATION YIELDED A VECTOR
000852,000186:                                                                                                  #  RESULT, VXSC WANTS A SCALAR.
000853,000187: 
000854,000188:                                                                                                  #           2.  THE LOAD CODES SHOULD LOAD THE ACCUMULATOR INDEPENDENT OF THE RESULT OF THE LAST OPERATION. THIS
000855,000189:                                                                                                  #  INCLUDES VLOAD, DLOAD, TLOAD, PDDL, AND PDVL (NO PUSHUP WITH SLOAD).
000856,000190: 
000857,000191:                                                                                                  #           3.  SOME ARITHMETIC OPERATIONS REQUIRE A STANDARD TYPE OF OPERAND REGARDLESS OF THE PREVIOUS OPERATION.
000858,000192:                                                                                                  #  THIS INCLUDES SIGN WANTING DP AND TAD REQUIRING TP.
000859,000193: 
000860,000194:    6135           36227        PUSHUP             CAF      OCT23                                 #  IF THE LOW 5 BITS OF CYR ARE LESS THAN
000861,000195:    6136           70020                           MASK     CYR                                   #  20, THIS OP REQUIRES SPECIAL ATTENTION.
000862,000196:    6137           66142                           AD       -OCT10                                #  (NO -0).
000863,000197:    6140           10000                           CCS      A                                     
000864,000198:    6141           16153                           TCF      REGUP                                 #  FOR ALL CODES GREATER THAN OCT 7.
000865,000199: 
000866,000200:    6142           77767        -OCT10             OCT      -10                                   
000867,000201: 
000868,000202:    6143           66045                           AD       NEG4                                  #  WE NOW HAVE 7 - OP CODE(MOD4). SEE IF
000869,000203:    6144           10000                           CCS      A                                     #  THE OP CODE (MOD4) IS THREE (REVERSE).
000870,000204:    6145           50000                           INDEX    A                                     #  NO - THE MODE IS DEFINITE. PICK UP THE
000871,000205:    6146           46164                           CS       NO.WDS                                
000872,000206:    6147           16155                           TCF      REGUP      +2                         
000873,000207: 
000874,000208:    6150           50147                           INDEX    MODE                                  #  FOR VXSC AND V/SC WE WANT THE REQUIRED
000875,000209:    6151           46162                           CS       REVCNT                                #  PUSHLOC DECREMENT WITHOUT CHANGING THE
000876,000210:    6152           16155                           TCF      REGUP      +2                         #  MODE AT THIS TIME.
000877,000211: 
000878,000212:    6153           50147        REGUP              INDEX    MODE                                  #  MOST ALL OP CODES PUSHUP HERE.
000879,000213:    6154           46164                           CS       NO.WDS                                
000880,000214:    6155           26152                 +2        ADS      PUSHLOC                               
000881,000215:    6156           54102                           TS       ADDRWD                                
000882,000216:    6157           50020                           INDEX    CYR                                   
000883,000217:    6160           76234                           7        INDJUMP    -1                         #  (THE INDEX MAKES THIS A TCF.)
000884,000218: 
000885,000219:    6161           00002                           OCT      2                                     #  REVERSE PUSHUP DECREMENT. VECTOR TAKES 2
000886,000220:    6162           00006        REVCNT             OCT      6                                     #  WORDS, SCALAR TAKES 6.
000887,000221:    6163           00006                           OCT      6                                     
000888,000222:    6164           00002        NO.WDS             OCT      2                                     #  CONVENTIONAL DECREMENT IS 6 WORDS VECTOR
000889,000223:    6165           00003                           OCT      3                                     #  2 IN DP, AND 3 IN TP.
000890,000224:    6166           00006                           OCT      6                                     
000891,000225: 

Page 23

000893,000227:                                                                                                  #           TEST THE SECOND PREFIX BIT TO SEE IF THIS IS A MISCELLANEOUS OR A UNARY/SHORT SHIFT OPERATION.
000894,000228: 
000895,000229:    6167           10020        OPJUMP2            CCS      CYR                                   #  TEST SECOND PREFIX BIT.
000896,000230:    6170           16217                           TCF      OPJUMP3                               #  TEST THIRD BIT TO SEE IF UNARY OR SHIFT.
000897,000231: 
000898,000232:    6171           77722        -ENDVAC            DEC      -45        B-14                       
000899,000233: 
000900,000234:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES ADDRESSES OF SUFFIX CLASS 10. THEY ARE BASICALLY WORK AREA ADDRESSES
000901,000235:                                                                                                  #  IN THE RANGE 0 - 52, ERASABLE ADRES CONSTANTS FROM 100 - 1777, AND FCADRS ABOVE THAT. ALL 15 BITS ARE AVAILABLE
000902,000236:                                                                                                  #  IN CONTRAST TO SUFFIX 1, IN WHICH ONLY THE LOW ORDER 14 ARE AVAILABLE.
000903,000237: 
000904,000238:    6172           24150        15BITADR           INCR     LOC                                   #  (ENTRY HERE FROM STCALL).
000905,000239:    6173           50150                           INDEX    LOC                                   #  PICK UP ADDRESS WORD.
000906,000240:    6174           30000                           CA       0                                     
000907,000241:    6175           54103                           TS       POLISH                                #  THE ABSOLUTE ADDRESS WILL BE LEFT IN
000908,000242:    6176           54102                           TS       ADDRWD                                #  POLISH WITH AN ERASABLE SUBADDRESS IN
000909,000243:                                                                                                  #  ADDRWD.
000910,000244:    6177           76231                           MASK     HIGH9                                 #  SEE IF RELATIVE TO THE WORK AREA.
000911,000245:    6200           10000                           CCS      A                                     
000912,000246:    6201           16203                           TCF      +2                                    
000913,000247:    6202           16210                           TCF      RELWORK                               #  ONLY IF ZERO.
000914,000248: 
000915,000249:    6203           36230                           CAF      LOW7+2K                               #  THESE INSTRUCTIONS ARE IN BANK 1.
000916,000250:    6204           54004                           TS       FBANK                                 
000917,000251:    6205           70020                           MASK     CYR                                   
000918,000252:    6206           50000                           INDEX    A                                     
000919,000253:    6207           16275                           TCF      MISCJUMP                              
000920,000254: 
000921,000255:    6210           30104        RELWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO FIXLOC, LEAVING
000922,000256:    6211           26102                           ADS      ADDRWD                                #  POLISH ABSOLUTE IN CASE THIS WAS AN
000923,000257:    6212           36230                           CAF      LOW7+2K                               #  AXT, ETC.
000924,000258:    6213           54004                           TS       FBANK                                 
000925,000259:    6214           70020                           MASK     CYR                                   
000926,000260:    6215           50000                           INDEX    A                                     
000927,000261:    6216           16275                           TCF      MISCJUMP                              
000928,000262: 

Page 24

000930,000264:                                                                                                  #           COMPLETE THE DISPATCHING OF UNARY AND SHORT SHIFT OPERATIONS.
000931,000265: 
000932,000266:    6217           54004        OPJUMP3            TS       FBANK                                 #  CALL IN BANK 0 (BITS 11-15 OF A ARE 0.)
000933,000267:    6220           10020                           CCS      CYR                                   #  TEST THIRD PREFIX BIT.
000934,000268:    6221           50000                           INDEX    A                                     #  THE DECREMENTED UNARY CODE IS IN BITS
000935,000269:    6222           16315                           TCF      UNAJUMP                               #  1-4 OF A (ZERO, EXIT, HAS BEEN DETECTED)
000936,000270: 
000937,000271:    6223           10147                           CCS      MODE                                  #  ITS A SHORT SHIFT CODE. SEE IF PRESENT
000938,000272:    6224           12000                           TCF      SHORTT                                #  SCALAR OR VECTOR.
000939,000273:    6225           12000                           TCF      SHORTT                                
000940,000274:    6226           12102                           TCF      SHORTV                                #  CALLS THE APPROPRIATE ROUTINE.
000941,000275: 
000942,000276: 
000943,000277: 
000944,000278:    6227           00023        OCT23              OCT      23                                    #  MASK USED BY PUSH-UP ROUTINE.
000945,000279:    6230           02177        LOW7+2K            OCT      2177                                  #  OP CODE MASK + BANK 1 FBANK SETTING.
000946,000280:    6231           77700        HIGH9              OCT      77700                                 
000947,000281:    6232           76000        BANKMASK           OCT      76000                                 #  FBANK MASK.
000948,000282:    6233     6232               FBANKMSK           EQUALS   BANKMASK                              
000949,000283:    6233           36000        B11T14             OCT      36000                                 #  USED IN PROCESSING STORE CODES.
000950,000284:    6234           76056        -ENDERAS           DEC      -977       B-14                       
000951,000285: 

Page 25

000953,000287:                                                                                                  #           THE FOLLOWING IS THE JUMP TABLE FOR OP CODES WHICH MAY HAVE INDEXABLE ADDRESSES OR MAY PUSH UP.
000954,000288: 
000955,000289:    6235           16510        INDJUMP            TCF      VLOAD                                 #  00 - LOAD MPAC WITH A VECTOR.
000956,000290:    6236           17047                           TCF      TAD                                   #  01 - TRIPLE PRECISION ADD TO MPAC.
000957,000291:    6237           17572                           TCF      SIGN                                  #  02 - COMPLEMENT MPAC (V OR SC) IF X NEG.
000958,000292:    6240           17345                           TCF      VXSC                                  #  03 - VECTOR TIMES SCALAR.
000959,000293:    6241           16671                           TCF      CGOTO                                 #  04 - COMPUTED GO TO.
000960,000294:    6242           16473                           TCF      TLOAD                                 #  05 - LOAD MPAC WITH TRIPLE PRECISION.
000961,000295:    6243           16464                           TCF      DLOAD                                 #  06 - LOAD MPAC WITH A DP SCALAR.
000962,000296:    6244           17541                           TCF      V/SC                                  #  07 - VECTOR DIVIDED BY SCALAR.
000963,000297: 
000964,000298:    6245           16504                           TCF      SLOAD                                 #  10 - LOAD MPAC IN SINGLE PRECISION.
000965,000299:    6246           16623                           TCF      SSP                                   #  11 - SET SINGLE PRECISION INTO X.
000966,000300:    6247           16526                           TCF      PDDL                                  #  12 - PUSH DOWN MPAC AND RE-LOAD IN DP.
000967,000301:    6250           17300                           TCF      MXV                                   #  13 - MATRIX POST-MULTIPLIED BY VECTOR.
000968,000302:    6251           16562                           TCF      PDVL                                  #  14 - PUSH DOWN AND VECTOR LOAD.
000969,000303:    6252           16631                           TCF      CCALL                                 #  15 - COMPUTED CALL.
000970,000304:    6253           17303                           TCF      VXM                                   #  16 - MATRIX PRE-MULTIPLIED BY VECTOR.
000971,000305:    6254           17533                           TCF      TSLC                                  #  17 - NORMALIZE MPAC (SCALAR ONLY).
000972,000306: 
000973,000307:    6255           17511                           TCF      DMPR                                  #  20 - DP MULTIPLY AND ROUND.
000974,000308:    6256           17514                           TCF      DDV                                   #  21 - DP DIVIDE BY.
000975,000309:    6257           17520                           TCF      BDDV                                  #  22 - DP DIVIDE INTO.
000976,000310:    6260           17536                           TCF      GSHIFT                                #  23 - GENERAL SHIFT INSTRUCTION.
000977,000311:    6261           16732                           TCF      VAD                                   #  24 - VECTOR ADD.
000978,000312:    6262           16760                           TCF      VSU                                   #  25 - VECTOR SUBTRACT.
000979,000313:    6263           17010                           TCF      BVSU                                  #  26 - VECTOR SUBTRACT FROM.
000980,000314:    6264           17275                           TCF      DOT                                   #  27 - VECTOR DOT PRODUCT.
000981,000315: 
000982,000316:    6265           17423                           TCF      VXV                                   #  30 - VECTOR CROSS PRODUCT.
000983,000317:    6266           17371                           TCF      VPROJ                                 #  31 - VECTOR PROJECTION.
000984,000318:    6267           16776                           TCF      DSU                                   #  32 - DP SUBTRACT.
000985,000319:    6270           17034                           TCF      BDSU                                  #  33 - DP SUBTRACT FROM.
000986,000320:    6271           16750                           TCF      DAD                                   #  34 - DP ADD.
000987,000321:    6272           16272                           TCF      +0                                    #  35 - AVAILABLE
000988,000322:    6273           17507                           TCF      DMP1                                  #  36 - DP MULTIPLY.
000989,000323:    6274           17530                           TCF      SETPD                                 #  37 - SET PUSH DOWN POINTER (DIRECT ONLY)
000990,000324: 
000991,000325:                                                                                                  #  CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED.
000992,000326: 

Page 26

000994,000328:                                                                                                  #           THE FOLLOWING JUMP TABLE APPLIES TO INDEX, BRANCH, AND MISCELLANEOUS INSTRUCTIONS.
000995,000329: 
000996,000330:    6275           12000        MISCJUMP           TCF      AXT                                   #  00 - ADDRESS TO INDEX TRUE.
000997,000331:    6276           12005                           TCF      AXC                                   #  01 - ADDRESS TO INDEX COMPLEMENTED.
000998,000332:    6277           12010                           TCF      LXA                                   #  02 - LOAD INDEX FROM ERASABLE.
000999,000333:    6300           12014                           TCF      LXC                                   #  03 - LOAD INDEX FROM COMPLEMENT OF ERAS.
001000,000334:    6301           12020                           TCF      SXA                                   #  04 - STORE INDEX IN ERASABLE.
001001,000335:    6302           12024                           TCF      XCHX                                  #  05 - EXCHANGE INDEX WITH ERASABLE.
001002,000336:    6303           12040                           TCF      INCR                                  #  06 - INCREMENT INDEX REGISTER.
001003,000337:    6304           12047                           TCF      TIX                                   #  07 - TRANSFER ON INDEX.
001004,000338: 
001005,000339:    6305           12032                           TCF      XAD                                   #  10 - INDEX REGISTER ADD FROM ERASABLE.
001006,000340:    6306           12043                           TCF      XSU                                   #  11 - INDEX SUBTRACT FROM ERASABLE.
001007,000341:    6307           12107                           TCF      BZE/GOTO                              #  12 - BRANCH ZERO AND GOTO.
001008,000342:    6310           12114                           TCF      BPL/BMN                               #  13 - BRANCH PLUS AND BRANCH MINUS.
001009,000343:    6311           12127                           TCF      CALL/ITA                              #  14 - CALL AND STORE QPRET.
001010,000344:    6312           12067                           TCF      RTB/BHIZ                              #  15 - RETURN TO BASIC AND BRANCH HI ZERO.
001011,000345:    6313           12135                           TCF      SW/                                   #  16 - SWITCH INSTRUCTIONS AND AVAILABLE.
001012,000346:    6314           12077                           TCF      BOV(B)                                #  17 - BRANCH ON OVERFLOW TO BASIC OR INT.
001013,000347: 

Page 27

001015,000349:                                                                                                  #           THE FOLLOWING JUMP TABLE APPIES TO UNARY INSTRUCTIONS.
001016,000350: 
001017,000351:                                                                                                  #  00 - EXIT - DETECTED EARLIER.
001018,000352:    6315           13125        UNAJUMP            TCF      SQRT                                  #  01 - SQUARE ROOT.
001019,000353:    6316           13442                           TCF      SINE                                  #  02 - SIN.
001020,000354:    6317           13431                           TCF      COSINE                                #  03 - COS.
001021,000355:    6320           13522                           TCF      ARCSIN                                #  04 - ARC SIN.
001022,000356:    6321           13524                           TCF      ARCCOS                                #  05 - ARC COS.
001023,000357:    6322           13107                           TCF      DSQ                                   #  06 - DP SQUARE.
001024,000358:    6323           13111                           TCF      ROUND                                 #  07 - ROUND TO DP.
001025,000359: 
001026,000360:    6324           17605                           TCF      COMP                                  #  10 - COMPLEMENT VECTOR OR SCALAR.
001027,000361:    6325           13150                           TCF      VDEF                                  #  11 - VECTOR DEFINE.
001028,000362:    6326           12750                           TCF      UNIT                                  #  12 - UNIT VECTOR.
001029,000363:    6327           13114                           TCF      ABVALABS                              #  13 - LENGTH OF VECTOR OR MAG OF SCALAR.
001030,000364:    6330           13164                           TCF      VSQ                                   #  14 - SQUARE OF LENGTH OF VECTOR.
001031,000365:    6331           16334                           TCF      STADR                                 #  15 - PUSH UP ON STORE CODE.
001032,000366:    6332           13214                           TCF      RVQ                                   #  16 - RETURN VIA QPRET.
001033,000367:    6333           13167                           TCF      PUSH                                  #  17 - PUSH MPAC DOWN.
001034,000368: 

Page 28

001036,000370:                                                                                                  #  SECTION 2  LOAD AND STORE PACKAGE.
001037,000371: 
001038,000372:                                                                                                  #           A SET OF SIXTEEN STORE CODES ARE PROVIDED AS THE PRIMARY METHOD OF STORING THE MULTI-PURPOSE
001039,000373:                                                                                                  #  ACCUMULATOR (MPAC). IF IN THE DANZIG SECTION LOC REFERS TO AN ALGEBRAICALLY POSITIVE WORD, IT IS TAKEN AS A
001040,000374:                                                                                                  #  STORE CODE WITH A CORRESPONDING ERASABLE ADDRESS. MOST OF THESE CODES ARE TWO ADDRESS, SPECIFYING THAT THE WORD
001041,000375:                                                                                                  #  FOLLOWING THE STORE CODE IS TO BE USED AS AN ADDRESS FROM WHICH TO RE-LOAD MPAC. FOUR OPTIONS ARE AVAILABLE:
001042,000376: 
001043,000377:                                                                                                  #           1. STORE               STORE MPAC. THE E ADDRESS MAY BE INDEXED.
001044,000378:                                                                                                  #           2. STODL               STORE MPAC AND RE-LOAD IT IN DP WITH THE NEXT ADDRESS (EITHER MAY BE INDEXED).
001045,000379:                                                                                                  #           3. STOVL               STORE MPAC AND RE-LOAD A VECTOR (AS ABOVE).
001046,000380:                                                                                                  #           4. STCALL              STORE AND DO A CALL (BOTH ADDRESSES MUST BE DIRECT HERE).
001047,000381: 
001048,000382:                                                                                                  #           STODL AND STOVL WILL TAKE FROM THE PUSH-DOWN LIST IF NO LOAD ADDRESS IS GIVEN.
001049,000383: 
001050,000384: 
001051,000385: 
001052,000386:    6334           30151        STADR              CA       BANKSET                               #  THE STADR CODE (PUSHUP UP ON STORE
001053,000387:    6335           54004                           TS       FBANK                                 #  ADDRESS) ENTERS HERE.
001054,000388:    6336           24150                           INCR     LOC                                   
001055,000389:    6337           50150                           INDEX    LOC                                   #  THE STORE CODE WAS STORE COMPLEMENTED TO
001056,000390:    6340           40000                           CS       0                                     #  MAKE IT LOOK LIKE AN OPCODE PAIR.
001057,000391: 
001058,000392:    6341           54102        DOSTORE            TS       ADDRWD                                
001059,000393:    6342           76425                           MASK     LOW10                                 #  ENTRY FROM DISPATCHER. SAVE THE ERASABLE
001060,000394:    6343           56102                           XCH      ADDRWD                                #  ADDRESS AND JUMP ON THE STORE CODE NO.
001061,000395:    6344           76233                           MASK     B11T14                                
001062,000396:    6345           00006                           EXTEND                                         
001063,000397:    6346           77641                           MP       BIT6                                  #  EACH TRANSFER VECTOR ENTRY IS TWO WORDS.
001064,000398:    6347           50000                           INDEX    A                                     
001065,000399:    6350           16351                           TCF      STORJUMP                              
001066,000400: 

Page 29

001068,000402:                                                                                                  #           STORE CODE JUMP TABLE. CALLS THE APPROPRIATE STORING ROUTINE AND EXITS TO DANZIG OR TO ADDRESS WITH
001069,000403:                                                                                                  #  A SUPPLIED OPERATION CODE.
001070,000404: 
001071,000405:    6351           06421        STORJUMP           TC       STORE                                 #  STORE.
001072,000406:    6352           16022                           TCF      NEWOPS     -1                         #  PICK UP NEW OP CODE(S).
001073,000407:    6353           06413                           TC       STORE,1                               
001074,000408:    6354           16022                           TCF      NEWOPS     -1                         
001075,000409:    6355           06416                           TC       STORE,2                               
001076,000410:    6356           16022                           TCF      NEWOPS     -1                         
001077,000411: 
001078,000412:    6357           06421                           TC       STORE                                 #  STODL.
001079,000413:    6360           16454                           TCF      DODLOAD                               
001080,000414:    6361           06413                           TC       STORE,1                               
001081,000415:    6362           16454                           TCF      DODLOAD                               
001082,000416:    6363           06416                           TC       STORE,2                               
001083,000417:    6364           16454                           TCF      DODLOAD                               
001084,000418: 
001085,000419:    6365           06421                           TC       STORE                                 #  STODL WITH INDEXED LOAD ADDRESS.
001086,000420:    6366           16071                           TCF      DODLOAD*                              
001087,000421:    6367           06413                           TC       STORE,1                               
001088,000422:    6370           16071                           TCF      DODLOAD*                              
001089,000423:    6371           06416                           TC       STORE,2                               
001090,000424:    6372           16071                           TCF      DODLOAD*                              
001091,000425: 
001092,000426:    6373           06421                           TC       STORE                                 #  STOVL.
001093,000427:    6374           16457                           TCF      DOVLOAD                               
001094,000428:    6375           06413                           TC       STORE,1                               
001095,000429:    6376           16457                           TCF      DOVLOAD                               
001096,000430:    6377           06416                           TC       STORE,2                               
001097,000431:    6400           16457                           TCF      DOVLOAD                               
001098,000432: 
001099,000433:    6401           06421                           TC       STORE                                 #  STOVL WITH INDEXED LOAD ADDRESS.
001100,000434:    6402           16462                           TCF      DOVLOAD*                              
001101,000435:    6403           06413                           TC       STORE,1                               
001102,000436:    6404           16462                           TCF      DOVLOAD*                              
001103,000437:    6405           06416                           TC       STORE,2                               
001104,000438:    6406           16462                           TCF      DOVLOAD*                              
001105,000439: 
001106,000440:    6407           06421                           TC       STORE                                 #  STOTC.
001107,000441:    6410           37657                           CAF      CALLCODE                              
001108,000442:    6411           54020                           TS       CYR                                   
001109,000443:    6412           16172                           TCF      15BITADR                              #  GET A 15 BIT ADDRESS.
001110,000444: 

Page 30

001112,000446:                                                                                                  #           STORE CODE ADDRESS PROCESSOR.
001113,000447: 
001114,000448:    6413           50104        STORE,1            INDEX    FIXLOC                                
001115,000449:    6414           40046                           CS       X1                                    
001116,000450:    6415           16420                           TCF      PRESTORE                              
001117,000451: 
001118,000452:    6416           50104        STORE,2            INDEX    FIXLOC                                
001119,000453:    6417           40047                           CS       X2                                    
001120,000454:    6420           26102        PRESTORE           ADS      ADDRWD                                #  RESULTANT ADDRESS IS IN ERASABLE.
001121,000455: 
001122,000456:    6421           30102        STORE              CA       ADDRWD                                #  SEE IF ADDRESS RELATIVE TO WORK AREA.
001123,000457:    6422           66171                           AD       -ENDVAC                               
001124,000458:    6423           10000                           CCS      A                                     
001125,000459:    6424           16430                           TCF      STARTSTO                              #  ADDRESS OK AS IS.
001126,000460: 
001127,000461:    6425           01777        LOW10              OCT      1777                                  
001128,000462: 
001129,000463:    6426           30104                           CA       FIXLOC                                #  GIVEN ADDRESS IS RELATIVE TO WORK AREA.
001130,000464:    6427           26102                           ADS      ADDRWD                                
001131,000465: 

Page 31

001133,000467:                                                                                                  #           STORING ROUTINES. STORE DP, TP, OR VECTOR AS INDICATED BY MODE.
001134,000468: 
001135,000469:    6430           00006        STARTSTO           EXTEND                                         #  MPAC,+1 MUST BE STORED IN ANY EVENT.
001136,000470:    6431           30141                           DCA      MPAC                                  
001137,000471:    6432           50102                           INDEX    ADDRWD                                
001138,000472:    6433           52001                           DXCH     0                                     
001139,000473: 
001140,000474:    6434           10147                           CCS      MODE                                  
001141,000475:    6435           16450                           TCF      TSTORE                                
001142,000476:    6436           00002                           TC       Q                                     
001143,000477: 
001144,000478:    6437           00006        VSTORE             EXTEND                                         
001145,000479:    6440           30144                           DCA      MPAC       +3                         
001146,000480:    6441           50102                           INDEX    ADDRWD                                
001147,000481:    6442           52003                           DXCH     2                                     
001148,000482: 
001149,000483:    6443           00006                           EXTEND                                         
001150,000484:    6444           30146                           DCA      MPAC       +5                         
001151,000485:    6445           50102                           INDEX    ADDRWD                                
001152,000486:    6446           52005                           DXCH     4                                     
001153,000487:    6447           00002                           TC       Q                                     
001154,000488: 
001155,000489:    6450           30142        TSTORE             CA       MPAC       +2                         
001156,000490:    6451           50102                           INDEX    ADDRWD                                
001157,000491:    6452           54002                           TS       2                                     
001158,000492:    6453           00002                           TC       Q                                     
001159,000493: 

Page 32

001161,000495:                                                                                                  #           ROUTINES TO BEGIN PROCESSING OF THE SECOND ADDRESS ASSOCIATED WITH ALL STORE-TYPE CODES EXCEPT STORE
001162,000496:                                                                                                  #  ITSELF.
001163,000497: 
001164,000498:    6454           37660        DODLOAD            CAF      DLOADCOD                              
001165,000499:    6455           54020                           TS       CYR                                   
001166,000500:    6456           16041                           TCF      DIRADRES                              #  GO GET A DIRECT ADDRESS.
001167,000501: 
001168,000502:    6457           37630        DOVLOAD            CAF      VLOADCOD                              
001169,000503:    6460           54020                           TS       CYR                                   
001170,000504:    6461           16041                           TCF      DIRADRES                              
001171,000505: 
001172,000506:    6462           36042        DOVLOAD*           CAF      VLOAD*                                
001173,000507:    6463           16072                           TCF      DODLOAD*   +1                         #  PROLOGUE TO INDEX ROUTINE.
001174,000508: 

Page 33

001176,000510:                                                                                                  #           THE FOLLOWING LOAD INSTRUCTIONS ARE PROVIDED FOR LOADING THE MULTI-PURPOSE ACCUMULATOR MPAC.
001177,000511: 
001178,000512:    6464           00006        DLOAD              EXTEND                                         
001179,000513:    6465           50102                           INDEX    ADDRWD                                
001180,000514:    6466           30001                           DCA      0                                     #  PICK UP DP ARGUMENT AND LEAVE IT IN
001181,000515:    6467           52141        SLOAD2             DXCH     MPAC                                  #  MPAC,+1, SETTING MPAC +2 TO ZERO. THE
001182,000516:    6470           37653                           CAF      ZERO                                  #  CONTENTS OF THE OTHER FOUR REGISTERS OF
001183,000517:    6471           54142                           TS       MPAC       +2                         #  MPAC ARE IRRELEVANT.
001184,000518:    6472           16013                           TCF      NEWMODE                               #  DECLARE DOUBLE PRECISION MODE.
001185,000519: 
001186,000520:    6473           50102        TLOAD              INDEX    ADDRWD                                
001187,000521:    6474           30002                           CA       2                                     #  LOAD A TRIPLE PRECISION ARGUMENT INTO
001188,000522:    6475           54142                           TS       MPAC       +2                         #  THE FIRST THREE MPAC REGISTERS, WITH THE
001189,000523:    6476           00006                           EXTEND                                         #  CONTENTS OF THE OTHER FOUR IRRELEVANT.
001190,000524:    6477           50102                           INDEX    ADDRWD                                
001191,000525:    6500           30001                           DCA      0                                     
001192,000526:    6501           52141                           DXCH     MPAC                                  
001193,000527:    6502           37646                           CAF      ONE                                   
001194,000528:    6503           16013                           TCF      NEWMODE                               #  DECLARE TRIPLE PRECISION MODE.
001195,000529: 
001196,000530:    6504           22007        SLOAD              ZL                                             #  LOAD A SINGLE PRECISION NUMBER INTO
001197,000531:    6505           50102                           INDEX    ADDRWD                                #  MPAC, SETTING MPAC+1,2 TO ZERO. THE
001198,000532:    6506           30000                           CA       0                                     #  CONTENTS OF THE REMAINING MPAC REGISTERS
001199,000533:    6507           16467                           TCF      SLOAD2                                #  ARE IRRELEVANT.
001200,000534: 
001201,000535:    6510           00006        VLOAD              EXTEND                                         #  LOAD A DOUBLE PRECISION VECTOR INTO
001202,000536:    6511           50102                           INDEX    ADDRWD                                #  MPAC,+1, MPAC+3,4, AND MPAC+5,6. THE
001203,000537:    6512           30001                           DCA      0                                     #  CONTENTS OF MPAC +2 ARE IRRELEVANT.
001204,000538:    6513           52141                           DXCH     MPAC                                  
001205,000539: 
001206,000540:    6514           00006        ENDVLOAD           EXTEND                                         #  PDVL COMES HERE TO FINISH UP FOR DP, TP.
001207,000541:    6515           50102                           INDEX    ADDRWD                                
001208,000542:    6516           30003                           DCA      2                                     
001209,000543:    6517           52144                           DXCH     MPAC       +3                         
001210,000544: 
001211,000545:    6520           00006                 +4        EXTEND                                         #  TPDVL FINISHES HERE.
001212,000546:    6521           50102                           INDEX    ADDRWD                                
001213,000547:    6522           30005                           DCA      4                                     
001214,000548:    6523           52146                           DXCH     MPAC       +5                         
001215,000549: 
001216,000550:    6524           47646                           CS       ONE                                   #  DECLARE VECTOR MODE.
001217,000551:    6525           16013                           TCF      NEWMODE                               
001218,000552: 

Page 34 A red line is drawn in a semicircle around the left of the following comments.

001221,000555:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE PROVIDED FOR STORING OPERANDS IN THE PUSHDOWN LIST:
001222,000556: 
001223,000557:                                                                                                  #           1.  PUSH               PUSHDOWN AND NO LOAD.
001224,000558:                                                                                                  #           2.  PDDL               PUSHDOWN AND DOUBLE PRECISION LOAD.
001225,000559:                                                                                                  #           3.  PDVL               PUSHDOWN AND VECTOR LOAD.
001226,000560: 
001227,000561:    6526           00006        PDDL               EXTEND                                         
001228,000562:    6527           50102                           INDEX    ADDRWD                                #  LOAD MPAC,+1, PUSHING THE FORMER
001229,000563:    6530           30001                           DCA      0                                     #  CONTENTS DOWN.
001230,000564:    6531           52141                           DXCH     MPAC                                  
001231,000565:    6532           50152                           INDEX    PUSHLOC                               
001232,000566:    6533           52001                           DXCH     0                                     
001233,000567: 
001234,000568:    6534           50147                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER APPRO-
001235,000569:    6535           36164                           CAF      NO.WDS                                #  PRIATELY.
001236,000570:    6536           26152                           ADS      PUSHLOC                               
001237,000571: 
001238,000572:    6537           10147                           CCS      MODE                                  
001239,000573:    6540           16555                           TCF      ENDTPUSH                              
001240,000574:    6541           16553                           TCF      ENDDPUSH                              
001241,000575: 
001242,000576:    6542           54147                           TS       MODE                                  #  NOW DP.
001243,000577:    6543           54142        ENDVPUSH           TS       MPAC       +2                         
001244,000578:    6544           52144                           DXCH     MPAC       +3                         #  PUSH DOWN THE REST OF THE VECTOR HERE.
001245,000579:    6545           50152                           INDEX    PUSHLOC                               
001246,000580:    6546           51775                           DXCH     0          -4                         
001247,000581: 
001248,000582:    6547           52146                           DXCH     MPAC       +5                         
001249,000583:    6550           50152                           INDEX    PUSHLOC                               
001250,000584:    6551           51777                           DXCH     0          -2                         
001251,000585: 
001252,000586:    6552           16014                           TCF      DANZIG                                
001253,000587: 
001254,000588:    6553           54142        ENDDPUSH           TS       MPAC       +2                         #  SET MPAC +2 TO ZERO AND EXIT ON DP.
001255,000589:    6554           16014                           TCF      DANZIG                                
001256,000590: 
001257,000591:    6555           54147        ENDTPUSH           TS       MODE                                  
001258,000592:    6556           56142                           XCH      MPAC       +2                         #  ON TRIPLE, SET MPAC +2 TO ZERO, PUSHING
001259,000593:    6557           50152                 +2        INDEX    PUSHLOC                               #  DOWN THE OLD CONTENTS
001260,000594:    6560           53777                           TS       0          -1                         
001261,000595:    6561           16014                           TCF      DANZIG                                
001262,000596: 

Page 35

001264,000598:                                                                                                  #           PDVL - PUSHDOWN AND VECTOR LOAD.
001265,000599: 
001266,000600:    6562           00006        PDVL               EXTEND                                         #  RELOAD MPAC AND PUSH DOWN ITS CONTENTS.
001267,000601:    6563           50102                           INDEX    ADDRWD                                
001268,000602:    6564           30001                           DCA      0                                     
001269,000603:    6565           52141                           DXCH     MPAC                                  
001270,000604:    6566           50152                           INDEX    PUSHLOC                               
001271,000605:    6567           52001                           DXCH     0                                     
001272,000606: 
001273,000607:    6570           50147                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER.
001274,000608:    6571           36164                           CAF      NO.WDS                                
001275,000609:    6572           26152                           ADS      PUSHLOC                               
001276,000610: 
001277,000611:    6573           10147                           CCS      MODE                                  #  TEST PAST MODE.
001278,000612:    6574           16613                           TCF      TPDVL                                 
001279,000613:    6575           16514                           TCF      ENDVLOAD                              #  JUST LOAD LAST FOUR REGISTERS ON DP.
001280,000614: 
001281,000615:    6576           00006        VPDVL              EXTEND                                         #  PUSHDOWN AND RE-LOAD LAST TWO COMPONENTS
001282,000616:    6577           50102                           INDEX    ADDRWD                                
001283,000617:    6600           30003                           DCA      2                                     
001284,000618:    6601           52144                           DXCH     MPAC       +3                         
001285,000619:    6602           50152                           INDEX    PUSHLOC                               
001286,000620:    6603           51775                           DXCH     0          -4                         
001287,000621: 
001288,000622:    6604           00006                           EXTEND                                         
001289,000623:    6605           50102                           INDEX    ADDRWD                                
001290,000624:    6606           30005                           DCA      4                                     
001291,000625:    6607           52146                           DXCH     MPAC       +5                         
001292,000626:    6610           50152                           INDEX    PUSHLOC                               
001293,000627:    6611           51777                           DXCH     0          -2                         
001294,000628: 
001295,000629:    6612           16014                           TCF      DANZIG                                
001296,000630: 
001297,000631:    6613           00006        TPDVL              EXTEND                                         #  ON TP, WE MUST LOAD THE Y COMPONENT
001298,000632:    6614           50102                           INDEX    ADDRWD                                #  BEFORE STORING MPAC +2 INCASE THIS IS A
001299,000633:    6615           30003                           DCA      2                                     #  PUSHUP.
001300,000634:    6616           52144                           DXCH     MPAC       +3                         
001301,000635: 
001302,000636:    6617           30142                           CA       MPAC       +2                         
001303,000637:    6620           50152                           INDEX    PUSHLOC                               #  IN DP.
001304,000638:    6621           53777                           TS       0          -1                         
001305,000639:    6622           16520                           TCF      ENDVLOAD   +4                         
001306,000640: 
001307,000641:                                                                                                  #           SSP (STORE SINGLE PRECISION) IS EXECUTED HERE.
001308,000642: 
001309,000643:    6623           24150        SSP                INCR     LOC                                   #  PICK UP THE WORD FOLLOWING THE GIVEN
001310,000644:    6624           50150                           INDEX    LOC                                   #  ADDRESS AND STORE IT AT X.
001311,000645:    6625           30000                           CA       0                                     
001312,000646:    6626           50102        STORE1             INDEX    ADDRWD                                #  SOME INDEX AND MISCELLANEOUS OPS END
001313,000647:    6627           54000                           TS       0                                     #  HERE.
001314,000648: 

Page 36

001316,000650:    6630           16014                           TCF      DANZIG                                
001317,000651: 

Page 37

001319,000653:                                                                                                  #  SEQUENCE CHANGING AND SUBROUTINE CALLING OPTIONS.
001320,000654: 
001321,000655:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR SEQUENCING CHANGING, BRANCHING, AND CALLING SUBROUTINES:
001322,000656: 
001323,000657:                                                                                                  #           1. GOTO                GO TO.
001324,000658:                                                                                                  #           2. CALL                CALL SUBROUTINE SETTING QPRET.
001325,000659:                                                                                                  #           3. CGOTO               COMPUTED GO TO.
001326,000660:                                                                                                  #           4. CCALL               COMPUTED CALL.
001327,000661:                                                                                                  #           7. BPL                 BRANCH IF MPAC POSITIVE OR ZERO.
001328,000662:                                                                                                  #           8. BZE                 BRANCH IF MPAC ZERO.
001329,000663:                                                                                                  #           9. BMN                 BRANCH IF MPAC NEGATIVE NON-ZERO.
001330,000664: 
001331,000665:    6631           24150        CCALL              INCR     LOC                                   #  MAINTAIN LOC FOR QPRET COMPUTATION.
001332,000666:    6632           50150                           INDEX    LOC                                   
001333,000667:    6633           30000                           CAF      0                                     #  GET BASE ADDRESS OF CADR LIST.
001334,000668:    6634           50102                           INDEX    ADDRWD                                
001335,000669:    6635           60000                           AD       0                                     #  ADD INCREMENT.
001336,000670:    6636           54004                           TS       FBANK                                 #  SELECT DESIRED CADR.
001337,000671:    6637           76425                           MASK     LOW10                                 
001338,000672:    6640           50000                           INDEX    A                                     
001339,000673:    6641           32000                           CAF      10000                                 
001340,000674:    6642           54103                 -1        TS       POLISH                                
001341,000675: 
001342,000676:    6643           46425        CALL               CS       LOW10                                 #  FOR ANY OF THE CALL OPTIONS, MAKE UP THE
001343,000677:    6644           60150                           AD       LOC                                   #  ADDRESS OF THE NEXT OP-CODE PAIR/STORE
001344,000678:    6645           60151                           AD       BANKSET                               #  CODE AND LEAVE IT IN QPRET. NOTE THAT
001345,000679:    6646           50104                           INDEX    FIXLOC                                #  LOW10 = 2000 - 1.
001346,000680:    6647           54052                           TS       QPRET                                 
001347,000681: 
001348,000682:    6650           30103        GOTO               CA       POLISH                                #  BASIC BRANCHING SEQUENCE.
001349,000683:    6651           54004                           TS       FBANK                                 
001350,000684:    6652           76425                           MASK     LOW10                                 #  MAKE UP 12 BIT SUB-ADDRESS AND FALL INTO
001351,000685:    6653           67634                           AD       2K                                    #  FALL INTO THE INTPRET ENTRY UNLESS THE
001352,000686:    6654           54150                           TS       LOC                                   #  GIVEN ADDRESS WAS IN ERASABLE, IN WHICH
001353,000687:    6655           10004                           CCS      FBANK                                 #  CASE IT IS USED AS THE ADDRESS OF THE
001354,000688:    6656           16002                           TCF      INTPRET    +2                         #  BRANCH ADDRESS.
001355,000689:    6657           16661                           TCF      +2                                    
001356,000690:    6660           16002                           TCF      INTPRET    +2                         
001357,000691: 

Page 38

001359,000693:    6661           40150                           CS       LOC                                   #  THE GIVEN ADDRESS IS IN ERASABLE - SEE
001360,000694:    6662           66707                           AD       EVAC+2K                               #  IF RELATIVE TO THE WORK AREA.
001361,000695:    6663           10000                           CCS      A                                     
001362,000696:    6664           30104                           CA       FIXLOC                                #  ADD FIXLOC IF SO.
001363,000697:    6665           26150                           ADS      LOC                                   
001364,000698: 
001365,000699:    6666           50150                           INDEX    LOC                                   
001366,000700:    6667           26000                           CA       0          -2000                      #  (ADDRESS HAD BEEN AUGMENTED BY 2000.)
001367,000701:    6670           16651                           TCF      GOTO       +1                         #  ALLOWS ARBITRARY INDIRECTNESS.
001368,000702: 
001369,000703:    6671           50150        CGOTO              INDEX    LOC                                   #  COMPUTED GO TO. PICK UP ADDRESS OF CADR
001370,000704:    6672           30001                           CA       1                                     #  LIST.
001371,000705:    6673           50102                           INDEX    ADDRWD                                #  ADD MODIFIER.
001372,000706:    6674           60000                           AD       0                                     
001373,000707:    6675           54004                           TS       FBANK                                 #  SELECT GOTO ADDRESS.
001374,000708:    6676           76425                           MASK     LOW10                                 
001375,000709:    6677           50000                           INDEX    A                                     
001376,000710:    6700           32000                           CA       10000                                 
001377,000711:    6701           16651                           TCF      GOTO       +1                         #  WITH ADDRESS IN A.
001378,000712: 
001379,000713:    6702           30151        SWBRANCH           CA       BANKSET                               #  SWITCH INSTRUCTIONS WHICH ELECT TO
001380,000714:    6703           54004                           TS       FBANK                                 #  BRANCH COME HERE TO DO SO.
001381,000715:    6704           50150                           INDEX    LOC                                   
001382,000716:    6705           30001                           CA       1                                     
001383,000717:    6706           16651                           TCF      GOTO       +1                         
001384,000718: 
001385,000719:    6707           02055        EVAC+2K            DEC      1069       B-14                       #  =1024+45
001386,000720: 

Page 39

001388,000722:                                                                                                  #           TRIPLE PRECISION BRANCHING ROUTINE. IF CALLING TC IS AT L, RETURN IS AS FOLLOWS:
001389,000723: 
001390,000724:                                                                                                  #           L+1  IF MPAC IS GREATER THAN ZERO.
001391,000725:                                                                                                  #           L+2  IF MPAC IS EQUAL TO +0 OR -0.
001392,000726:                                                                                                  #           L+3  IF MPAC IS LESS THAN ZERO.
001393,000727: 
001394,000728: 
001395,000729: 
001396,000730:    6710           10140        BRANCH             CCS      MPAC                                  
001397,000731:    6711           00002                           TC       Q                                     
001398,000732:    6712           16714                           TCF      +2                                    #  ON ZERO.
001399,000733:    6713           16726                           TCF      NEG                                   
001400,000734: 
001401,000735:    6714           10141                           CCS      MPAC       +1                         
001402,000736:    6715           00002                           TC       Q                                     
001403,000737:    6716           16720                           TCF      +2                                    
001404,000738:    6717           16726                           TCF      NEG                                   
001405,000739: 
001406,000740:    6720           10142                           CCS      MPAC       +2                         
001407,000741:    6721           00002                           TC       Q                                     
001408,000742:    6722           16724                           TCF      +2                                    
001409,000743:    6723           16726                           TCF      NEG                                   
001410,000744: 
001411,000745:    6724           50002                           INDEX    Q                                     #  IF ALL THREE REGISTERS WERE +-0.
001412,000746:    6725           00001                           TC       1                                     
001413,000747: 
001414,000748:    6726           50002        NEG                INDEX    Q                                     #  IF FIRST NON-ZERO REGISTER WAS NEGATIVE.
001415,000749:    6727           00002                           TC       2                                     
001416,000750: 
001417,000751: 
001418,000752: 
001419,000753:    6730           50150        EXIT               INDEX    LOC                                   #  LEAVE INTERPRETIVE MODE.
001420,000754:    6731           10001                           TCF      1                                     
001421,000755: 

Page 40

001423,000757:                                                                                                  #  SECTION 3 - ADD/SUBTRACT PACKAGE.
001424,000758: 
001425,000759:                                                                                                  #           THE FOLLOWING OPERATIONS ARE PROVIDED FOR ADDING TO AND SUBTRACTING FROM THE MULTI-PURPOSE ACCUMULATOR
001426,000760:                                                                                                  #  MPAC:
001427,000761: 
001428,000762:                                                                                                  #           1. DAD                 DOUBLE PRECISION ADD.
001429,000763:                                                                                                  #           2. DSU                 DOUBLE PRECISION SUBTRACT.
001430,000764:                                                                                                  #           3. BDSU                DOUBLE PRECISION SUBTRACT FROM.
001431,000765: 
001432,000766:                                                                                                  #           4. TAD                 TRIPLE PRECISION ADD.
001433,000767: 
001434,000768:                                                                                                  #           5. VAD                 VECTOR ADD.
001435,000769:                                                                                                  #           6. VSU                 VECTOR SUBTRACT.
001436,000770:                                                                                                  #           7. BVSU                VECTOR SUBTRACT FROM.
001437,000771: 
001438,000772:                                                                                                  #  THE INTERPRETIVE OVERFLOW INDICATOR OVFIND IS SET NON-ZERO IF OVERFLOW OCCURS IN ANY OF THE ABOVE.
001439,000773: 
001440,000774: 
001441,000775: 
001442,000776:    6732           00006        VAD                EXTEND                                         
001443,000777:    6733           50102                           INDEX    ADDRWD                                
001444,000778:    6734           30003                           DCA      2                                     
001445,000779:    6735           20144                           DAS      MPAC       +3                         
001446,000780:    6736           00006                           EXTEND                                         #  CHECK OVERFLOW.
001447,000781:    6737           16741                           BZF      +2                                    
001448,000782:    6740           07006                           TC       OVERFLOW                              
001449,000783: 
001450,000784:    6741           00006                           EXTEND                                         
001451,000785:    6742           50102                           INDEX    ADDRWD                                
001452,000786:    6743           30005                           DCA      4                                     
001453,000787:    6744           20146                           DAS      MPAC       +5                         
001454,000788:    6745           00006                           EXTEND                                         
001455,000789:    6746           16750                           BZF      +2                                    
001456,000790:    6747           07006                           TC       OVERFLOW                              
001457,000791: 
001458,000792:    6750           00006        DAD                EXTEND                                         
001459,000793:    6751           50102                           INDEX    ADDRWD                                
001460,000794:    6752           30001                           DCA      0                                     
001461,000795:    6753           20141        ENDVXV             DAS      MPAC                                  #  VXV FINISHES HERE.
001462,000796:    6754           00006                           EXTEND                                         
001463,000797:    6755           16014                           BZF      DANZIG                                
001464,000798:    6756           07006                           TC       OVERFLOW                              
001465,000799:    6757           16014                           TCF      DANZIG                                
001466,000800: 

Page 41

001468,000802:    6760           00006        VSU                EXTEND                                         
001469,000803:    6761           50102                           INDEX    ADDRWD                                
001470,000804:    6762           40003                           DCS      2                                     
001471,000805:    6763           20144                           DAS      MPAC       +3                         
001472,000806:    6764           00006                           EXTEND                                         
001473,000807:    6765           16767                           BZF      +2                                    
001474,000808:    6766           07006                           TC       OVERFLOW                              
001475,000809: 
001476,000810:    6767           00006                           EXTEND                                         
001477,000811:    6770           50102                           INDEX    ADDRWD                                
001478,000812:    6771           40005                           DCS      4                                     
001479,000813:    6772           20146                           DAS      MPAC       +5                         
001480,000814:    6773           00006                           EXTEND                                         
001481,000815:    6774           16776                           BZF      +2                                    
001482,000816:    6775           07006                           TC       OVERFLOW                              
001483,000817: 
001484,000818:    6776           00006        DSU                EXTEND                                         
001485,000819:    6777           50102                           INDEX    ADDRWD                                
001486,000820:    7000           40001                           DCS      0                                     
001487,000821:    7001           20141                           DAS      MPAC                                  
001488,000822:    7002           00006                           EXTEND                                         
001489,000823:    7003           16014                           BZF      DANZIG                                
001490,000824:    7004           07006                           TC       OVERFLOW                              
001491,000825:    7005           16014                           TCF      DANZIG                                
001492,000826: 
001493,000827:    7006           37646        OVERFLOW           CAF      ONE                                   #  SUBROUTINE TO TURN OVFIND ON.
001494,000828:    7007           17130                           TCF      SETOVF2                               
001495,000829: 

Page 42

001497,000831:    7010           00006        BVSU               EXTEND                                         
001498,000832:    7011           50102                           INDEX    ADDRWD                                
001499,000833:    7012           30003                           DCA      2                                     
001500,000834:    7013           52144                           DXCH     MPAC       +3                         
001501,000835:    7014           00006                           EXTEND                                         
001502,000836:    7015           40001                           DCOM                                           
001503,000837:    7016           20144                           DAS      MPAC       +3                         
001504,000838:    7017           00006                           EXTEND                                         
001505,000839:    7020           17022                           BZF      +2                                    
001506,000840:    7021           07006                           TC       OVERFLOW                              
001507,000841: 
001508,000842:    7022           00006                           EXTEND                                         
001509,000843:    7023           50102                           INDEX    ADDRWD                                
001510,000844:    7024           30005                           DCA      4                                     
001511,000845:    7025           52146                           DXCH     MPAC       +5                         
001512,000846:    7026           00006                           EXTEND                                         
001513,000847:    7027           40001                           DCOM                                           
001514,000848:    7030           20146                           DAS      MPAC       +5                         
001515,000849:    7031           00006                           EXTEND                                         
001516,000850:    7032           17034                           BZF      +2                                    
001517,000851:    7033           07006                           TC       OVERFLOW                              
001518,000852: 
001519,000853:    7034           00006        BDSU               EXTEND                                         
001520,000854:    7035           50102                           INDEX    ADDRWD                                
001521,000855:    7036           30001                           DCA      0                                     
001522,000856:    7037           52141                           DXCH     MPAC                                  
001523,000857:    7040           00006                           EXTEND                                         
001524,000858:    7041           40001                           DCOM                                           
001525,000859:    7042           20141                           DAS      MPAC                                  
001526,000860:    7043           00006                           EXTEND                                         
001527,000861:    7044           16014                           BZF      DANZIG                                
001528,000862:    7045           07006                           TC       OVERFLOW                              
001529,000863:    7046           16014                           TCF      DANZIG                                
001530,000864: 

Page 43

001532,000866:                                                                                                  #           TRIPLE PRECISION ADD ROUTINE.
001533,000867: 
001534,000868:    7047           00006        TAD                EXTEND                                         
001535,000869:    7050           50102                           INDEX    ADDRWD                                
001536,000870:    7051           30002                           DCA      1                                     #  ADD MINOR PARTS FIRST.
001537,000871:    7052           20142                           DAS      MPAC       +1                         
001538,000872:    7053           50102                           INDEX    ADDRWD                                
001539,000873:    7054           60000                           AD       0                                     
001540,000874:    7055           60140                           AD       MPAC                                  
001541,000875:    7056           54140                           TS       MPAC                                  
001542,000876:    7057           16014                           TCF      DANZIG                                
001543,000877: 
001544,000878:    7060           54105        SETOVF             TS       OVFIND                                #  SET OVFIND IF SUCH OCCURS.
001545,000879:    7061           16014                           TCF      DANZIG                                
001546,000880: 

Page 44

001548,000882:                                                                                                  #  ARITHMETIC SUBROUTINES REQUIRED IN FIXED-FIXED.
001549,000883: 
001550,000884:                                                                                                  #           1.  DMPSUB     DOUBLE PRECISION MULTIPLY. MULTIPLY THE CONTENTS OF MPAC,+1 BY THE DP WORD WHOSE ADDRESS
001551,000885:                                                                                                  #                          IS IN ADDRWD AND LEAVE A TRIPLE PRECISION RESULT IN MPAC.
001552,000886:                                                                                                  #           2.  ROUNDSUB   ROUND THE TRIPLE PRECISON CONTENTS OF MPAC TO DOUBLE PRECISION.
001553,000887:                                                                                                  #           3.  DOTSUB     TAKE THE DOT PRODUCT OF THE VECTOR IN MPAC AND THE VECTOR WHOSE ADDRESS IS IN ADDRWD
001554,000888:                                                                                                  #                          AND LEAVE THE TRIPLE PRECISION RESULT IN MPAC.
001555,000889:                                                                                                  #           4.  POLY       USING THE CONTENTS OF MPAC AS A DP ARGUMENT, EVALUATE THE POLYNOMIAL WHOSE DEGREE AND
001556,000890:                                                                                                  #                          COEFFICIENTS IMMEDIATELY FOLLOW THE TC POLY INSTRUCTION (SEE ROUTINE FOR DETAILS.)
001557,000891: 
001558,000892: 
001559,000893: 
001560,000894:    7062           50002        DMP                INDEX    Q                                     #  BASIC SUBROUTINE FOR USE BY PINBALL, ETC
001561,000895:    7063           30000                           CAF      0                                     #  ADRES OF ARGUMENT FOLLOWS  TC DMP  .
001562,000896:    7064           24002                           INCR     Q                                     
001563,000897:    7065           54102                 -1        TS       ADDRWD                                #  (PROLOGUE FOR SETTING ADDRWD.)
001564,000898: 
001565,000899:    7066           50102        DMPSUB             INDEX    ADDRWD                                #  GET MINOR PART OF OPERAND AT C(ADDRWD).
001566,000900:    7067           30001                           CA       1                                     
001567,000901:    7070           54142                           TS       MPAC       +2                         #  THIS WORKS FOR SQUARING MPAC AS WELL.
001568,000902:    7071           37653                           CAF      ZERO                                  #  SET MPAC +1 TO ZERO SO WE CAN ACCUMULATE
001569,000903:    7072           56141                           XCH      MPAC       +1                         #  THE PARTIAL PRODUCTS WITH DAS
001570,000904:    7073           54121                           TS       MPTEMP                                #  INSTRUCTIONS.
001571,000905:    7074           00006                           EXTEND                                         
001572,000906:    7075           70142                           MP       MPAC       +2                         #  MINOR OF MPAC X MINOR OF C(ADDRWD).
001573,000907: 
001574,000908:    7076           56142                           XCH      MPAC       +2                         #  DISCARD MINOR PART OF ABOVE RESULT AND
001575,000909:    7077           00006                           EXTEND                                         #  FORM MAJOR OF MPAC X MINOR OF C(ADDRWD).
001576,000910:    7100           70140                           MP       MPAC                                  
001577,000911:    7101           20142                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
001578,000912: 
001579,000913:    7102           50102                           INDEX    ADDRWD                                #  GET MAJOR PART OF ARGUMENT AT C(ADDRWD).
001580,000914:    7103           30000                           CA       0                                     
001581,000915:    7104           56121                           XCH      MPTEMP                                #  SAVE AND BRING OUT MINOR OF MPAC.
001582,000916:    7105           00006                           EXTEND                                         
001583,000917:    7106           70121                           MP       MPTEMP                                #  MAJOR OF C(ADDRWD) X MINOR OF MPAC.
001584,000918:    7107           20142                           DAS      MPAC       +1                         #  ACCUMULATE, SETTING A TO NET OVERFLOW.
001585,000919: 
001586,000920:    7110           56140                           XCH      MPAC                                  #  SETTING MPAC TO 0 OR +-1.
001587,000921:    7111           00006                           EXTEND                                         
001588,000922:    7112           70121                           MP       MPTEMP                                #  MAJOR OF MPAC X MAJOR OF C(ADDRWD).
001589,000923:    7113           20141                           DAS      MPAC                                  #  GUARANTEED NO OVERFLOW.
001590,000924:    7114           00002                           TC       Q                                     #  49 MCT = .573 MS. INCLUDING RETURN.
001591,000925: 

Page 45

001593,000927:                                                                                                  #           ROUND MPAC TO DOUBLE PRECISION, SETTING OVFIND ON THE RARE EVENT OF OVERFLOW.
001594,000928: 
001595,000929:    7115           37653        ROUNDSUB           CAF      ZERO                                  #  SET MPAC +2 TO ZERO FOR SCALARS.
001596,000930: 
001597,000931:    7116           56142        VROUND             XCH      MPAC       +2                         #  BUT WE NEEDNT TAKE THE TIME FOR VECTORS.
001598,000932:    7117           60000                           DOUBLE                                         
001599,000933:    7120           54001                           TS       L                                     
001600,000934:    7121           00002                           TC       Q                                     
001601,000935: 
001602,000936:    7122           60141                           AD       MPAC       +1                         #  ADD ROUNDING BIT IF MPAC +2 WAS GREATER
001603,000937:    7123           54141                           TS       MPAC       +1                         #  THAN .5 IN MAGNITUDE.
001604,000938:    7124           00002                           TC       Q                                     
001605,000939: 
001606,000940:    7125           60140                           AD       MPAC                                  #  PROPAGATE INTERFLOW.
001607,000941:    7126           54140                           TS       MPAC                                  
001608,000942:    7127           00002                           TC       Q                                     
001609,000943: 
001610,000944:    7130           54105        SETOVF2            TS       OVFIND                                #  (RARE).
001611,000945:    7131           00002                           TC       Q                                     
001612,000946: 

Page 46

001614,000948:                                                                                                  #           THE DOT PRODUCT SUBROUTINE USUALLY FORMS THE DOT PRODUCT OF THE VECTOR IN MPAC WITH A STANDARD SIX
001615,000949:                                                                                                  #  REGISTER VECTOR WHOSE ADDRESS IS IN ADDRWD. IN THIS CASE C(DOTINC) ARE SET TO 2. VXM, HOWEVER, SETS C(DOTINC) TO
001616,000950:                                                                                                  #  6 SO THAT DOTSUB DOTS MPAC WITH A COLUMN VECTOR OF THE MATRIX IN QUESTION IN THIS CASE.
001617,000951: 
001618,000952: 
001619,000953: 
001620,000954:    7132           37645        PREDOT             CAF      TWO                                   #  PROLOGUE TO SET DOTINC TO 2.
001621,000955:    7133           54122                           TS       DOTINC                                
001622,000956: 
001623,000957:    7134           00006        DOTSUB             EXTEND                                         
001624,000958:    7135           22123                           QXCH     DOTRET                                #  SAVE RETURN.
001625,000959:    7136           07066                           TC       DMPSUB                                #  DOT X COMPONENTS.
001626,000960:    7137           52144                           DXCH     MPAC       +3                         #  POSITION Y COMPONENT OF MPAC FOR
001627,000961:    7140           52141                           DXCH     MPAC                                  #  MULTIPLICATION WHILE SAVING RESULT IN
001628,000962:    7141           52115                           DXCH     BUF                                   #  THREE WORD BUFFER, BUF.
001629,000963:    7142           30142                           CA       MPAC       +2                         
001630,000964:    7143           54116                           TS       BUF        +2                         
001631,000965: 
001632,000966:    7144           30122                           CA       DOTINC                                #  ADVANCE ADDRWD TO Y COMPONENT OF
001633,000967:    7145           26102                           ADS      ADDRWD                                #  OTHER ARGUMENT.
001634,000968:    7146           07066                           TC       DMPSUB                                
001635,000969:    7147           52142                           DXCH     MPAC       +1                         #  ACCUMULATE PARTIAL PRODUCTS.
001636,000970:    7150           20116                           DAS      BUF        +1                         
001637,000971:    7151           60140                           AD       MPAC                                  
001638,000972:    7152           60114                           AD       BUF                                   
001639,000973:    7153           54114                           TS       BUF                                   
001640,000974:    7154           17156                           TCF      +2                                    
001641,000975:    7155           54105                           TS       OVFIND                                #  IF OVERFLOW OCCURS.
001642,000976: 
001643,000977:    7156           52146                           DXCH     MPAC       +5                         #  MULTIPLY Z COMPONENTS.
001644,000978:    7157           52141                           DXCH     MPAC                                  
001645,000979:    7160           30122                           CA       DOTINC                                
001646,000980:    7161           26102                           ADS      ADDRWD                                
001647,000981:    7162           07066                           TC       DMPSUB                                
001648,000982:    7163           52116        ENDDOT             DXCH     BUF        +1                         #  LEAVE FINAL ACCUMULATION IN MPAC.
001649,000983:    7164           20142                           DAS      MPAC       +1                         
001650,000984:    7165           60140                           AD       MPAC                                  
001651,000985:    7166           60114                           AD       BUF                                   
001652,000986:    7167           54140                           TS       MPAC                                  
001653,000987:    7170           00123                           TC       DOTRET                                
001654,000988: 
001655,000989:    7171           54105                           TS       OVFIND                                #  ON OVERFLOW HERE.
001656,000990:    7172           00123                           TC       DOTRET                                
001657,000991: 

Page 47

001659,000993:                                                                                                  #  DOUBLE PRECISION POLYNOMIAL EVALUATOR.
001660,000994: 
001661,000995:                                                                                                  #                                     N        N-1
001662,000996:                                                                                                  #           THIS ROUTINE EVALUATES A X  + A   X    + ... + A X + A LEAVING THE DP RESULT IN MPAC ON EXIT.
001663,000997:                                                                                                  #                                   N      N-1              1     0
001664,000998: 
001665,000999:                                                                                                  #  IT IS ASSUMED THAT X ARRIVES IN MPAC AND N AND THE COEFFICIENTS IN THE CALLING SEQUENCE AS FOLLOWS:
001666,001000: 
001667,001001:                                                                                                  #                                          L        TC     POLY
001668,001002:                                                                                                  #                                          L+1      DEC    N-1
001669,001003:                                                                                                  #                                          L+2      2DEC   A(0)
001670,001004:                                                                                                  #                                                   ...
001671,001005:                                                                                                  #                                          L+2N+2   2DEC   A(N)            RETURN IS TO L+2N+4.
001672,001006: 
001673,001007:    7173           37662        POLY               CAF      LVBUF                                 #  INCOMING X WILL BE STORED IN VBUF, SO
001674,001008:    7174           54102                           TS       ADDRWD                                #  SET ADDRWD SO DMPSUB WILL MPY BY VBUF.
001675,001009: 
001676,001010:    7175           50002                           INDEX    Q                                     
001677,001011:    7176           30000                           CAF      0                                     
001678,001012:    7177           54124                           TS       POLYCNT                               #  N-1 TO COUNTER.
001679,001013:    7200           60000                           DOUBLE                                         
001680,001014:    7201           60002                           AD       Q                                     
001681,001015:    7202           54125                           TS       POLYRET                               #  SAVE L+2N-1 FOR RETURN
001682,001016:    7203           54103                           TS       POLISH                                #  AND FOR REFERENCING COEFFICIENTS.
001683,001017: 
001684,001018:    7204           00006                           EXTEND                                         
001685,001019:    7205           50000                           INDEX    A                                     #  LOAD A(N) INTO MPAC, SAVING MPAC IN
001686,001020:    7206           30004                           DCA      3                                     #  VBUF.
001687,001021:    7207           52141                           DXCH     MPAC                                  
001688,001022:    7210           52107                           DXCH     VBUF                                  
001689,001023:    7211           17215                           TCF      POLY2                                 #  NO ZERO-ORDER POLYNOMIALS ALLOWED.
001690,001024: 
001691,001025:    7212           54124        POLYLOOP           TS       POLYCNT                               #  SAVE DECREMENTED LOOP COUNTER.
001692,001026:    7213           47645                           CS       TWO                                   #  REGRESS COEFFICIENT POINTER.
001693,001027:    7214           26103                           ADS      POLISH                                
001694,001028: 
001695,001029:    7215           07066        POLY2              TC       DMPSUB                                #  MULTIPLY BY X.
001696,001030:    7216           00006                           EXTEND                                         
001697,001031:    7217           50103                           INDEX    POLISH                                #  ADD IN NEXT COEFFICIENT.
001698,001032:    7220           30002                           DCA      1                                     
001699,001033:    7221           20141                           DAS      MPAC                                  #  NO CHECK FOR OVERFLOW SINCE SIN, ETC.,
001700,001034:                                                                                                  #  SHOULD NOT OVERFLOW.
001701,001035:    7222           10124                           CCS      POLYCNT                               #  LOOP ON COUNTER.
001702,001036:    7223           17212                           TCF      POLYLOOP                              
001703,001037:    7224           50125                           INDEX    POLYRET                               #  DONE - RETURN TO CALLER AT L+2N+4.
001704,001038:    7225           00005        FIVE               TC       5                                     
001705,001039: 

Page 48

001707,001041:                                                                                                  #           MISCELLANEOUS MULTI-PRECISION ROUTINES REQUIRED IN FIXED-FIXED BUT NOT USED BY THE INTERPRETER.
001708,001042: 
001709,001043:    7226           00006        TPAGREE            EXTEND                                         #  FORCE SIGN AGREEMENT AMONG THE TRIPLE-
001710,001044:    7227           22114                           QXCH     BUF                                   #  PRECISION CONTENTS OF MPAC, RETURNING
001711,001045:    7230           06710                           TC       BRANCH                                #  WITH THE SIGNUM OF THE INPUT IN A.
001712,001046:    7231           17235                           TCF      ARG+                                  
001713,001047:    7232           17255                           TCF      ARGZERO                               
001714,001048: 
001715,001049:    7233           47626                           CS       POSMAX                                #  IF NEGATIVE.
001716,001050:    7234           17236                           TCF      +2                                    
001717,001051: 
001718,001052:    7235           37626        ARG+               CAF      POSMAX                                
001719,001053:    7236           54115                 +2        TS       BUF        +1                         
001720,001054:    7237           00006                           EXTEND                                         
001721,001055:    7240           24000                           AUG      A                                     #  FORMS +-1.0.
001722,001056:    7241           60142                           AD       MPAC       +2                         
001723,001057:    7242           54142                           TS       MPAC       +2                         
001724,001058:    7243           37653                           CAF      ZERO                                  
001725,001059:    7244           60115                           AD       BUF        +1                         
001726,001060:    7245           60141                           AD       MPAC       +1                         
001727,001061:    7246           54141                           TS       MPAC       +1                         
001728,001062:    7247           37653                           CAF      ZERO                                  
001729,001063:    7250           60115                           AD       BUF        +1                         
001730,001064:    7251           60140                           AD       MPAC                                  
001731,001065:    7252           54140        ARGZERO2           TS       MPAC                                  #  ALWAYS SKIPPING UNLESS ARGZERO.
001732,001066:    7253           54141                           TS       MPAC       +1                         
001733,001067:    7254           00114                           TC       BUF                                   #  RETURN.
001734,001068: 
001735,001069:    7255           54142        ARGZERO            TS       MPAC       +2                         #  SET ALL THREE MPAC REGISTERS TO ZERO.
001736,001070:    7256           17252                           TCF      ARGZERO2                              
001737,001071: 
001738,001072:                                                                                                  #           SHORTMP MULTIPLIES THE TP CONTENTS OF MPAC BY THE SINGLE PRECISION NUMBER ARRIVING IN A.
001739,001073: 
001740,001074:    7257           54121        SHORTMP            TS       MPTEMP                                
001741,001075:    7260           00006                           EXTEND                                         
001742,001076:    7261           70142                           MP       MPAC       +2                         
001743,001077:    7262           54142                           TS       MPAC       +2                         
001744,001078:    7263           37653                           CAF      ZERO                                  #  SO SUBSEQUENT DAS WILL WORK.
001745,001079:    7264           56141                           XCH      MPAC       +1                         
001746,001080:    7265           00006                           EXTEND                                         
001747,001081:    7266           70121                           MP       MPTEMP                                
001748,001082:    7267           20142                           DAS      MPAC       +1                         
001749,001083:    7270           56140                           XCH      MPAC                                  #  SETTING MPAC TO 0.
001750,001084:    7271           00006                           EXTEND                                         
001751,001085:    7272           70121                           MP       MPTEMP                                
001752,001086:    7273           20141                           DAS      MPAC                                  
001753,001087:    7274           00002                           TC       Q                                     
001754,001088: 

Page 49

001756,001090:                                                                                                  #  MISCELLANEOUS VECTOR OPERATIONS. INCLUDED HERE ARE THE FOLLOWING:
001757,001091: 
001758,001092:                                                                                                  #           1.  DOT                DP VECTOR DOT PRODUCT.
001759,001093:                                                                                                  #           2.  VXV                DP VECTOR CROSS PRODUCT.
001760,001094:                                                                                                  #           3.  VXSC               DP VECTOR TIMES SCALAR.
001761,001095:                                                                                                  #           4.  V/SC               DP VECTOR DIVIDED BY SCALAR.
001762,001096:                                                                                                  #           5.  VPROJ              DP VECTOR PROJECTION. ( (MPAC.X)MPAC ).
001763,001097:                                                                                                  #           6.  VXM                DP VECTOR POST-MULTIPLIED BY MATRIX.
001764,001098:                                                                                                  #           7.  MXV                DP VECTOR PRE-MULTIPLIED BY MATRIX.
001765,001099: 
001766,001100: 
001767,001101: 
001768,001102:    7275           07132        DOT                TC       PREDOT                                #  DO THE DOT PRODUCT AND EXIT, CHANGING
001769,001103:    7276           37653                           CAF      ZERO                                  #  THE MODE TO DP SCALAR.
001770,001104:    7277           16013                           TCF      NEWMODE                               
001771,001105: 
001772,001106: 
001773,001107: 
001774,001108:    7300           37645        MXV                CAF      TWO                                   #  SET UP MATINC AND DOTINC FOR ROW
001775,001109:    7301           54124                           TS       MATINC                                #  VECTORS.
001776,001110:    7302           17306                           TCF      VXM/MXV                               #  GO TO COMMON PORTION.
001777,001111: 
001778,001112:    7303           47650        VXM                CS       TEN                                   #  SET MATINC AND DOTINC TO REFER TO MATRIX
001779,001113:    7304           54124                           TS       MATINC                                #  AS THREE COLUMN VECTORS.
001780,001114:    7305           36162                           CAF      SIX                                   
001781,001115: 

Page 50

001783,001117:                                                                                                  #           COMMON PORTION OF MXV AND VXM.
001784,001118: 
001785,001119:    7306           54122        VXM/MXV            TS       DOTINC                                
001786,001120:    7307           07475                           TC       MPACVBUF                              #  SAVE VECTOR IN MPAC FOR FURTHER USE.
001787,001121: 
001788,001122:    7310           07134                           TC       DOTSUB                                #  GO DOT TO GET X COMPONENT OF ANSWER.
001789,001123:    7311           00006                           EXTEND                                         
001790,001124:    7312           30107                           DCA      VBUF                                  #  MOVE MPAC VECTOR BACK INTO MPAC, SAVING
001791,001125:    7313           52141                           DXCH     MPAC                                  #  NEW X COMPONENT IN BUF2.
001792,001126:    7314           52120                           DXCH     BUF2                                  
001793,001127:    7315           00006                           EXTEND                                         
001794,001128:    7316           30111                           DCA      VBUF       +2                         
001795,001129:    7317           52144                           DXCH     MPAC       +3                         
001796,001130:    7320           00006                           EXTEND                                         
001797,001131:    7321           30113                           DCA      VBUF       +4                         
001798,001132:    7322           52146                           DXCH     MPAC       +5                         
001799,001133:    7323           30124                           CA       MATINC                                #  INITIALIZE ADDRWD FOR NEXT DOT PRODUCT.
001800,001134:    7324           26102                           ADS      ADDRWD                                #  FORMS BASE ADDRESS OF NEXT COLUMN(ROW).
001801,001135: 
001802,001136:    7325           07134                           TC       DOTSUB                                
001803,001137:    7326           52107                           DXCH     VBUF                                  #  MOVE GIVEN VECTOR BACK TO MPAC, SAVING Y
001804,001138:    7327           52141                           DXCH     MPAC                                  #  COMPONENT OF ANSWER IN VBUF +2.
001805,001139:    7330           52111                           DXCH     VBUF       +2                         
001806,001140:    7331           52144                           DXCH     MPAC       +3                         
001807,001141:    7332           52113                           DXCH     VBUF       +4                         
001808,001142:    7333           52146                           DXCH     MPAC       +5                         
001809,001143:    7334           30124                           CA       MATINC                                #  FORM ADDRESS OF LAST COLUMN OR ROW.
001810,001144:    7335           26102                           ADS      ADDRWD                                
001811,001145: 
001812,001146:    7336           07134                           TC       DOTSUB                                
001813,001147:    7337           52120                           DXCH     BUF2                                  #  ANSWER NOW COMPLETE. PUT COMPONENTS INTO
001814,001148:    7340           52141                           DXCH     MPAC                                  #  PROPER MPAC REGISTERS.
001815,001149:    7341           52146                           DXCH     MPAC       +5                         
001816,001150:    7342           52111                           DXCH     VBUF       +2                         
001817,001151:    7343           52144                           DXCH     MPAC       +3                         
001818,001152:    7344           16014                           TCF      DANZIG                                #  EXIT.
001819,001153: 

Page 51

001821,001155:                                                                                                  #           VXSC - VECTOR TIMES SCALAR.
001822,001156: 
001823,001157:    7345           10147        VXSC               CCS      MODE                                  #  TEST PRESENT MODE.
001824,001158:    7346           17372                           TCF      DVXSC                                 #  SEPARATE ROUTINE WHEN SCALAR IS IN MPAC.
001825,001159:    7347           17372                           TCF      DVXSC                                 
001826,001160: 
001827,001161:    7350           07066        VVXSC              TC       DMPSUB                                #  COMPUTE X COMPONENT
001828,001162:    7351           07116                           TC       VROUND                                #  AND ROUND IT.
001829,001163:    7352           52144                           DXCH     MPAC       +3                         #  PUT Y COMPONENT INTO MPAC SAVING MPAC IN
001830,001164:    7353           52141                           DXCH     MPAC                                  #  MPAC +3.
001831,001165:    7354           52144                           DXCH     MPAC       +3                         
001832,001166: 
001833,001167:    7355           07066                           TC       DMPSUB                                #  DO SAME FOR Y AND Z COMPONENTS.
001834,001168:    7356           07116                           TC       VROUND                                
001835,001169:    7357           52146                           DXCH     MPAC       +5                         
001836,001170:    7360           52141                           DXCH     MPAC                                  
001837,001171:    7361           52146                           DXCH     MPAC       +5                         
001838,001172: 
001839,001173:    7362           07066                           TC       DMPSUB                                
001840,001174:    7363           07116                           TC       VROUND                                
001841,001175:    7364           52141        VROTATEX           DXCH     MPAC                                  #  EXIT USED TO RESTORE MPAC AFTER THIS
001842,001176:    7365           52146                           DXCH     MPAC       +5                         #  TYPE OF ROTATION. CALLED BY VECTOR SHIFT
001843,001177:    7366           52144                           DXCH     MPAC       +3                         #  RIGHT, V/SC, ETC.
001844,001178:    7367           52141                           DXCH     MPAC                                  
001845,001179:    7370           16014                           TCF      DANZIG                                
001846,001180: 

Page 52

001848,001182:                                                                                                  #           DP VECTOR PROJECTION ROUTINE.
001849,001183: 
001850,001184:    7371           07132        VPROJ              TC       PREDOT                                #  (MPAC.X)MPAC IS COMPUTED AND LEFT IN
001851,001185:                                                                                                  #  MPAC. DO DOT AND FALL INTO DVXSC.
001852,001186: 
001853,001187:                                                                                                  #           VXSC WHEN SCALAR ARRIVES IN MPAC AND VECTOR IS AT X.
001854,001188: 
001855,001189:    7372           00006        DVXSC              EXTEND                                         #  SAVE SCALAR IN MPAC +3 AND GET X
001856,001190:    7373           30141                           DCA      MPAC                                  #  COMPONENT OF ANSWER.
001857,001191:    7374           52144                           DXCH     MPAC       +3                         
001858,001192:    7375           07066                           TC       DMPSUB                                
001859,001193:    7376           07116                           TC       VROUND                                
001860,001194: 
001861,001195:    7377           37645                           CAF      TWO                                   #  ADVANCE ADDRWD TO Y COMPONENT OF X.
001862,001196:    7400           26102                           ADS      ADDRWD                                
001863,001197:    7401           00006                           EXTEND                                         
001864,001198:    7402           30144                           DCA      MPAC       +3                         #  PUT SCALAR BACK INTO MPAC AND SAVE
001865,001199:    7403           52141                           DXCH     MPAC                                  #  X RESULT IN MPAC +5.
001866,001200:    7404           52146                           DXCH     MPAC       +5                         
001867,001201:    7405           07066                           TC       DMPSUB                                
001868,001202:    7406           07116                           TC       VROUND                                
001869,001203: 
001870,001204:    7407           37645                           CAF      TWO                                   
001871,001205:    7410           26102                           ADS      ADDRWD                                #  TO Z COMPONENT.
001872,001206:    7411           52144                           DXCH     MPAC       +3                         #  BRING SCALAR BACK, PUTTING Y RESULT IN
001873,001207:    7412           52141                           DXCH     MPAC                                  #  THE PROPER PLACE.
001874,001208:    7413           52144                           DXCH     MPAC       +3                         
001875,001209:    7414           07066                           TC       DMPSUB                                
001876,001210:    7415           07116                           TC       VROUND                                
001877,001211: 
001878,001212:    7416           52141                           DXCH     MPAC                                  #  PUT Z COMPONENT IN PROPER PLACE, ALSO
001879,001213:    7417           52146                           DXCH     MPAC       +5                         #  POSITIONING X.
001880,001214:    7420           52141                           DXCH     MPAC                                  
001881,001215: 
001882,001216:    7421           47646                           CS       ONE                                   #  MODE HAS CHANGED TO VECTOR.
001883,001217:    7422           16013                           TCF      NEWMODE                               
001884,001218: 

Page 53

001886,001220:                                                                                                  #           THE VECTOR CROSS PRODUCT ROUTINE CALCULATES (X M -X M ,X M -X M ,X M -X M ) WHERE M IS THE VECTOR IN
001887,001221:                                                                                                  #                                                         3 2  2 3  1 3  3 1  2 1  1 2
001888,001222:                                                                                                  #  MPAC AND X THE VECTOR AT THE GIVEN ADDRESS.
001889,001223: 
001890,001224: 
001891,001225: 
001892,001226:    7423           00006        VXV                EXTEND                                         
001893,001227:    7424           30146                           DCA      MPAC       +5                         #  FORM UP M3X1, LEAVING M1 IN VBUF.
001894,001228:    7425           52141                           DXCH     MPAC                                  
001895,001229:    7426           52107                           DXCH     VBUF                                  
001896,001230:    7427           07066                           TC       DMPSUB                                #  BY X1.
001897,001231: 
001898,001232:    7430           00006                           EXTEND                                         
001899,001233:    7431           40144                           DCS      MPAC       +3                         #  CALCULATE -X1M2, SAVING X1M3 IN VBUF +2.
001900,001234:    7432           52141                           DXCH     MPAC                                  
001901,001235:    7433           52111                           DXCH     VBUF       +2                         
001902,001236:    7434           07066                           TC       DMPSUB                                
001903,001237: 
001904,001238:    7435           37645                           CAF      TWO                                   #  ADVANCE ADDRWD TO X2.
001905,001239:    7436           26102                           ADS      ADDRWD                                
001906,001240:    7437           00006                           EXTEND                                         
001907,001241:    7440           40146                           DCS      MPAC       +5                         #  PREPARE TO GET -X2M3, SAVING -X1M2 IN
001908,001242:    7441           52141                           DXCH     MPAC                                  #  MPAC +5.
001909,001243:    7442           52146                           DXCH     MPAC       +5                         
001910,001244:    7443           07066                           TC       DMPSUB                                
001911,001245: 
001912,001246:    7444           00006                           EXTEND                                         
001913,001247:    7445           30107                           DCA      VBUF                                  #  GET X2M1, SAVING -X2M3 IN VBUF +4.
001914,001248:    7446           52141                           DXCH     MPAC                                  
001915,001249:    7447           52113                           DXCH     VBUF       +4                         
001916,001250:    7450           07066                           TC       DMPSUB                                
001917,001251: 
001918,001252:    7451           37645                           CAF      TWO                                   #  ADVANCE ADDRWD TO X3.
001919,001253:    7452           26102                           ADS      ADDRWD                                
001920,001254:    7453           00006                           EXTEND                                         
001921,001255:    7454           40107                           DCS      VBUF                                  #  GET -X3M1, ADDING X2M1 TO MPAC +5 TO
001922,001256:    7455           52141                           DXCH     MPAC                                  #  COMPLETE THE Z COMPONENT OF THE ANSWER.
001923,001257:    7456           20146                           DAS      MPAC       +5                         
001924,001258: 
001925,001259:    7457           00006                           EXTEND                                         
001926,001260:    7460           17462                           BZF      +2                                    
001927,001261:    7461           07006                           TC       OVERFLOW                              
001928,001262: 

Page 54

001930,001264:    7462           07066                           TC       DMPSUB                                
001931,001265:    7463           52111                           DXCH     VBUF       +2                         #  MOVE X1M3 TO MPAC +3 SETTING UP FOR X3M2
001932,001266:    7464           52144                           DXCH     MPAC       +3                         #  AND ADD -X3M1 TO MPAC +3 TO COMPLETE THE
001933,001267:    7465           52141                           DXCH     MPAC                                  #  Y COMPONENT OF THE RESULT.
001934,001268:    7466           20144                           DAS      MPAC       +3                         
001935,001269: 
001936,001270:    7467           00006                           EXTEND                                         
001937,001271:    7470           17472                           BZF      +2                                    
001938,001272:    7471           07006                           TC       OVERFLOW                              
001939,001273: 
001940,001274:    7472           07066                           TC       DMPSUB                                
001941,001275:    7473           52113                           DXCH     VBUF       +4                         #  GO ADD -X2M3 TO X3M2 TO COMPLETE THE X
001942,001276:    7474           16753                           TCF      ENDVXV                                #  COMPONENT (TAIL END OF DAD).
001943,001277: 
001944,001278:                                                                                                  #           THE MPACVBUF SUBROUTINE SAVES THE VECTOR IN MPAC IN VBUF WITHOUT CLOBBERING MPAC.
001945,001279: 
001946,001280:    7475           00006        MPACVBUF           EXTEND                                         #  CALLED BY MXV, VXM, AND UNIT.
001947,001281:    7476           30141                           DCA      MPAC                                  
001948,001282:    7477           52107                           DXCH     VBUF                                  
001949,001283:    7500           00006                           EXTEND                                         
001950,001284:    7501           30144                           DCA      MPAC       +3                         
001951,001285:    7502           52111                           DXCH     VBUF       +2                         
001952,001286:    7503           00006                           EXTEND                                         
001953,001287:    7504           30146                           DCA      MPAC       +5                         
001954,001288:    7505           52113                           DXCH     VBUF       +4                         
001955,001289:    7506           00002                           TC       Q                                     #  RETURN TO CALLER.
001956,001290: 

Page 55

001958,001292:                                                                                                  #           INTERPRETIVE INSTRUCTIONS WHOSE EXECUTION CONSISTS OF PRINCIPALLY CALLING SUBROUTINES.
001959,001293: 
001960,001294:    7507           07066        DMP1               TC       DMPSUB                                #  DMP INSTRUCTION.
001961,001295:    7510           16014                           TCF      DANZIG                                
001962,001296: 
001963,001297:    7511           07066        DMPR               TC       DMPSUB                                
001964,001298:    7512           07115                           TC       ROUNDSUB                              
001965,001299:    7513           16014                           TCF      DANZIG                                
001966,001300: 
001967,001301:    7514           00006        DDV                EXTEND                                         
001968,001302:    7515           50102                           INDEX    ADDRWD                                #  MOVE DIVIDEND INTO BUF.
001969,001303:    7516           30001                           DCA      0                                     
001970,001304:    7517           17524                           TCF      BDDV       +4                         
001971,001305: 
001972,001306:    7520           00006        BDDV               EXTEND                                         #  MOVE DIVISOR INTO MPAC SAVING MPAC, THE
001973,001307:    7521           50102                           INDEX    ADDRWD                                #  DIVIDEND, IN BUF.
001974,001308:    7522           30001                           DCA      0                                     
001975,001309:    7523           52141                           DXCH     MPAC                                  
001976,001310:    7524           52115                 +4        DXCH     BUF                                   
001977,001311:    7525           37653                           CAF      ZERO                                  #  DIVIDE ROUTINES IN BANK 0.
001978,001312:    7526           54004                           TS       FBANK                                 
001979,001313:    7527           12332                           TCF      DDV/BDDV                              
001980,001314: 
001981,001315:    7530           30102        SETPD              CA       ADDRWD                                #  ANYWHERE IN ERASABLE IN GENERAL, BUT
001982,001316:    7531           54152                           TS       PUSHLOC                               #  ALMOST ALWAYS IN THE WORK AREA.
001983,001317:    7532           16014                           TCF      DANZIG                                
001984,001318: 
001985,001319:    7533           37653        TSLC               CAF      ZERO                                  #  SHIFTING ROUTINES LOCATED IN BANK 00.
001986,001320:    7534           54004                           TS       FBANK                                 
001987,001321:    7535           12153                           TCF      TSLC2                                 
001988,001322: 
001989,001323:    7536           36027        GSHIFT             CAF      LOW7                                  #  USED AS MASK AT GENSHIFT. THIS PROCESSES
001990,001324:    7537           54004                           TS       FBANK                                 #  ANY SHIFT INSTRUCTION (EXCEPT TSLC) WITH
001991,001325:    7540           12174                           TCF      GENSHIFT                              #  AN ADDRESS (ROUTINES IN BANK 0).
001992,001326: 

Page 56

001994,001328:                                                                                                  #           THE FOLLOWING IS THE PROLOGUE TO V/SC. IF THE PRESENT MODE IS VECTOR, IT SAVES THE SCALAR AT X IN BUF
001995,001329:                                                                                                  #  AND CALLS THE V/SC ROUTINE IN BANK 0. IF THE PRESENT MODE IS SCALAR, IT MOVES THE VECTOR AT X INTO MPAC, SAVING
001996,001330:                                                                                                  #  THE SCALAR IN MPAC IN BUF BEFORE CALLING THE V/SC ROUTINE IN BANK 0.
001997,001331: 
001998,001332: 
001999,001333: 
002000,001334:    7541           10147        V/SC               CCS      MODE                                  
002001,001335:    7542           17553                           TCF      DV/SC                                 #  MOVE VECTOR INTO MPAC.
002002,001336:    7543           17553                           TCF      DV/SC                                 
002003,001337: 
002004,001338:    7544           00006        VV/SC              EXTEND                                         
002005,001339:    7545           50102                           INDEX    ADDRWD                                
002006,001340:    7546           30001                           DCA      0                                     
002007,001341:    7547           52115        V/SC1              DXCH     BUF                                   #  IN BOTH CASES, VECTOR IS NOW IN MPAC AND
002008,001342:    7550           37653                           CAF      ZERO                                  #  SCALAR IN BUF.
002009,001343:    7551           54004                           TS       FBANK                                 
002010,001344:    7552           12576                           TCF      V/SC2                                 
002011,001345: 
002012,001346:    7553           00006        DV/SC              EXTEND                                         
002013,001347:    7554           50102                           INDEX    ADDRWD                                
002014,001348:    7555           30003                           DCA      2                                     
002015,001349:    7556           52144                           DXCH     MPAC       +3                         
002016,001350:    7557           00006                           EXTEND                                         
002017,001351:    7560           50102                           INDEX    ADDRWD                                
002018,001352:    7561           30005                           DCA      4                                     
002019,001353:    7562           52146                           DXCH     MPAC       +5                         
002020,001354: 
002021,001355:    7563           47646                           CS       ONE                                   #  CHANGE MODE TO VECTOR.
002022,001356:    7564           54147                           TS       MODE                                  
002023,001357: 
002024,001358:    7565           00006                           EXTEND                                         
002025,001359:    7566           50102                           INDEX    ADDRWD                                
002026,001360:    7567           30001                           DCA      0                                     
002027,001361:    7570           52141                           DXCH     MPAC                                  
002028,001362:    7571           17547                           TCF      V/SC1                                 #  FINISH PROLOGUE AT COMMON SECTION.
002029,001363: 

Page 57

002031,001365:                                                                                                  #           SIGN AND COMPLEMENT INSTRUCTIONS.
002032,001366: 
002033,001367:    7572           50102        SIGN               INDEX    ADDRWD                                #  CALL COMP INSTRUCTION IF WORD AT X IS
002034,001368:    7573           10000                           CCS      0                                     #  NEGATIVE NON-ZERO.
002035,001369:    7574           16014                           TCF      DANZIG                                
002036,001370:    7575           17577                           TCF      +2                                    
002037,001371:    7576           17605                           TCF      COMP                                  #  DO THE COMPLEMENT.
002038,001372: 
002039,001373:    7577           50102                           INDEX    ADDRWD                                
002040,001374:    7600           10001                           CCS      1                                     
002041,001375:    7601           16014                           TCF      DANZIG                                
002042,001376:    7602           16014                           TCF      DANZIG                                
002043,001377:    7603           17605                           TCF      COMP                                  
002044,001378:    7604           16014                           TCF      DANZIG                                
002045,001379: 
002046,001380: 
002047,001381: 
002048,001382:    7605           00006        COMP               EXTEND                                         #  COMPLEMENT DP MPAC IN EVERY CASE.
002049,001383:    7606           40141                           DCS      MPAC                                  
002050,001384:    7607           52141                           DXCH     MPAC                                  
002051,001385: 
002052,001386:    7610           10147                           CCS      MODE                                  #  EITHER COMPLEMENT MPAC +3 OR THE REST OF
002053,001387:    7611           17622                           TCF      DCOMP                                 #  THE VECTOR ACCUMULATOR.
002054,001388:    7612           17622                           TCF      DCOMP                                 
002055,001389: 
002056,001390:    7613           00006                           EXTEND                                         #  VECTOR COMPLEMENT.
002057,001391:    7614           40144                           DCS      MPAC       +3                         
002058,001392:    7615           52144                           DXCH     MPAC       +3                         
002059,001393:    7616           00006                           EXTEND                                         
002060,001394:    7617           40146                           DCS      MPAC       +5                         
002061,001395:    7620           52146                           DXCH     MPAC       +5                         
002062,001396:    7621           16014                           TCF      DANZIG                                
002063,001397: 
002064,001398:    7622           40142        DCOMP              CS       MPAC       +2                         
002065,001399:    7623           54142                           TS       MPAC       +2                         
002066,001400:    7624           16014                           TCF      DANZIG                                
002067,001401: 

Page 58

002069,001403:                                                                                                  #           CONSTANTS REQUIRED IN FIXED-FIXED.
002070,001404: 
002071,001405:    7625           37777        DPOSMAX            OCT      37777                                 
002072,001406:    7626           37777        POSMAX             OCT      37777                                 
002073,001407:    7627           57777        NEG1/2             OCT      -20000                                #  MUST BE TWO LOCATIONS AHEAD OF POS1/2.
002074,001408: 
002075,001409:    7630           40000        BIT15              OCT      40000                                 #  BIT TABLE FOLLOWS.
002076,001410:    7631           20000        BIT14              OCT      20000                                 
002077,001411:    7632           10000        BIT13              OCT      10000                                 
002078,001412:    7633           04000        BIT12              OCT      04000                                 
002079,001413:    7634           02000        BIT11              OCT      02000                                 
002080,001414:    7635           01000        BIT10              OCT      01000                                 
002081,001415:    7636           00400        BIT9               OCT      00400                                 
002082,001416:    7637           00200        BIT8               OCT      00200                                 
002083,001417:    7640           00100        BIT7               OCT      00100                                 
002084,001418:    7641           00040        BIT6               OCT      00040                                 
002085,001419:    7642           00020        BIT5               OCT      00020                                 
002086,001420:    7643           00010        BIT4               OCT      00010                                 
002087,001421:    7644           00004        BIT3               OCT      00004                                 
002088,001422:    7645           00002        BIT2               OCT      00002                                 
002089,001423:    7646           00001        BIT1               OCT      00001                                 
002090,001424: 
002091,001425:    7647     7630               NEGMAX             EQUALS   BIT15                                 
002092,001426:    7647     7631               HALF               EQUALS   BIT14                                 
002093,001427:    7647     7631               POS1/2             EQUALS   HALF                                  
002094,001428:    7647     7632               QUARTER            EQUALS   BIT13                                 
002095,001429:    7647     7634               2K                 EQUALS   BIT11                                 
002096,001430:    7647           00013        ELEVEN             DEC      11         B-14                       
002097,001431:    7650     7647               NOUTCON            =        ELEVEN                                
002098,001432:    7650           00012        TEN                DEC      10         B-14                       
002099,001433:    7651           00011        NINE               DEC      9          B-14                       
002100,001434:    7652     7643               EIGHT              EQUALS   BIT4                                  
002101,001435:    7652           00007        SEVEN              OCT      7                                     
002102,001436:    7653     6162               SIX                EQUALS   REVCNT                                
002103,001437:    7653     7644               FOUR               EQUALS   BIT3                                  
002104,001438:    7653     6165               THREE              EQUALS   NO.WDS     +1                         
002105,001439:    7653     7645               TWO                EQUALS   BIT2                                  
002106,001440:    7653     7646               ONE                EQUALS   BIT1                                  
002107,001441:    7653           00000        ZERO               OCT      0                                     
002108,001442:    7654           77777        NEG0               OCT      77777                                 
002109,001443:    7655           77776        NEGONE             DEC      -1         B-14                       
002110,001444: 
002111,001445:    7656     7655               NEG1               =        NEGONE                                
002112,001446:    7656           77775        NEG2               OCT      77775                                 
002113,001447:    7657     7652               LOW3               EQUALS   SEVEN                                 
002114,001448:    7657     6165               LOW2               EQUALS   THREE                                 
002115,001449: 
002116,001450:    7657           00031        CALLCODE           OCT      00031                                 
002117,001451:    7660           40014        DLOADCOD           OCT      40014                                 
002118,001452:    7661     7630               VLOADCOD           EQUALS   BIT15                                 

Page 59

002120,001454:    7661           40015        DLOAD*             OCT      40015                                 
002121,001455:    7662     6042               VLOAD*             EQUALS   OCT40001                              
002122,001456:    7662           00106        LVBUF              ADRES    VBUF                                  
002123,001457: 

Page 60

002125,001459:                                                                                                  #  SHIFTING AND ROUNDING PACKAGE.
002126,001460: 
002127,001461:                                                                                                  #           THE FOLLOWING SHORT SHIFT CODES REQUIRE NO ADDRESS WORD:
002128,001462: 
002129,001463:                                                                                                  #           1.  SR1 TO SR4         SCALAR SHIFT RIGHT.
002130,001464:                                                                                                  #           2.  SR1R TO SR4R       SCALAR SHIFT RIGHT AND ROUND.
002131,001465:                                                                                                  #           3.  SL1 TO SL4         SCALAR SHIFT LEFT.
002132,001466:                                                                                                  #           4.  SL1R TO SL4R       SCALAR SHIFT LEFT AND ROUND.
002133,001467: 
002134,001468:                                                                                                  #           5.  VSR1 TO VSR8       VECTOR SHIFT RIGHT (ALWAYS ROUNDS).
002135,001469:                                                                                                  #           6.  VSL1 TO VSL8       VECTOR SHIFT LEFT (NEVER ROUNDS).
002136,001470: 
002137,001471:                                                                                                  #           THE FOLLOWING CODES REQUIRE AN ADDRESS WHICH MAY BE INDEXED:*
002138,001472: 
002139,001473:                                                                                                  #           1.  SR                 SCALAR SHIFT RIGHT.
002140,001474:                                                                                                  #           2.  SRR                SCALAR SHIFT RIGHT AND ROUND.
002141,001475:                                                                                                  #           3.  SL                 SCALAR SHIFT LEFT.
002142,001476:                                                                                                  #           4.  SLR                SCALAR SHIFT LEFT AND ROUND.
002143,001477: 
002144,001478:                                                                                                  #           5.  VSR                VECTOR SHIFT RIGHT.
002145,001479:                                                                                                  #           6.  VSL                VECTOR SHIFT LEFT.
002146,001480: 
002147,001481:                                                                                                  #  *  IF THE ADDRESS IS INDEXED, AND THE INDEX MODIFICATION RESULTS IN A NEGATIVE SHIFT COUNT, A SHIFT OF THE
002148,001482:                                                                                                  #  ABSOLUTE VALUE OF THE COUNT IS DONE IN THE OPPOSITE DIRECTION.
002149,001483: 
002150,001484: 
002151,001485: 
002152,001486: 00,2000                                           SETLOC   10000                                 #  BANK 0 PORTION FOLLOWS.
002153,001487: 
002154,001488: 00,2000           36162        SHORTT             CAF      SIX                                   #  SCALAR SHORT SHIFTS COME HERE. THE SHIFT
002155,001489: 00,2001           70020                           MASK     CYR                                   #  COUNT-1 IS NOW IN BITS 2-3 OF CYR. THE
002156,001490: 00,2002           54021                           TS       SR                                    #  ROUNDING BIT IS IN BIT1 AT THIS POINT.
002157,001491: 
002158,001492: 00,2003           10020                           CCS      CYR                                   #  SEE IF RIGHT OR LEFT SHIFT DESIRED.
002159,001493: 00,2004           12062                           TCF      TSSL                                  #  SHIFT LEFT.
002160,001494: 
002161,001495: 00,2005           00024        SRDDV              DEC      20         B-14                       #  MPTEMP SETTING FOR SR BEFORE DDV.
002162,001496: 
002163,001497: 00,2006           50021        TSSR               INDEX    SR                                    #  GET SHIFTING BIT.
002164,001498: 00,2007           37631                           CAF      BIT14                                 
002165,001499: 00,2010           54121                           TS       MPTEMP                                
002166,001500: 
002167,001501: 00,2011           10020                           CCS      CYR                                   #  SEE IF A ROUND IS DESIRED.
002168,001502: 00,2012           02031        RIGHTR             TC       MPACSRND                              #  YES - SHIFT RIGHT AND ROUND.
002169,001503: 00,2013           16014                           TCF      DANZIG                                
002170,001504: 

Page 61

002172,001506: 00,2014           30121        MPACSHR            CA       MPTEMP                                #  DO A TRIPLE PRECISION SHIFT RIGHT.
002173,001507: 00,2015           00006                           EXTEND                                         
002174,001508: 00,2016           70142                           MP       MPAC       +2                         
002175,001509: 00,2017           54142                 +3        TS       MPAC       +2                         #  (EXIT FROM SQRT AND ABVAL).
002176,001510: 00,2020           30121                           CA       MPTEMP                                
002177,001511: 00,2021           00006                           EXTEND                                         
002178,001512: 00,2022           70140                           MP       MPAC                                  #  SHIFT MAJOR PART INTO A,L AND PLACE IN
002179,001513: 00,2023           52141                           DXCH     MPAC                                  #  MPAC,+1.
002180,001514: 00,2024           30121                           CA       MPTEMP                                
002181,001515: 00,2025           00006                           EXTEND                                         
002182,001516: 00,2026           70001                           MP       L                                     #  ORIGINAL C(MPAC +1).
002183,001517: 00,2027           20142                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002184,001518: 00,2030           16014                           TCF      DANZIG                                
002185,001519: 
002186,001520:                                                                                                  #           MPAC SHIFT RIGHT AND ROUND SUBROUTINES.
002187,001521: 
002188,001522: 00,2031           30142        MPACSRND           CA       MPAC       +2                         #  WE HAVE TO DO ALL THREE MULTIPLIES SINCE
002189,001523: 00,2032           00006                           EXTEND                                         #  MPAC +1 AND MPAC +2 MIGHT HAVE SIGN
002190,001524: 00,2033           70121                           MP       MPTEMP                                #  DISAGREEMENT WITH A SHIFT RIGHT OF 1.
002191,001525: 00,2034           56141                           XCH      MPAC       +1                         
002192,001526: 00,2035           00006                           EXTEND                                         
002193,001527: 00,2036           70121                           MP       MPTEMP                                
002194,001528: 00,2037           56141                           XCH      MPAC       +1                         #  TRIAL MINOR PART.
002195,001529: 00,2040           60001                           AD       L                                     
002196,001530: 
002197,001531: 00,2041           60000        VSHR2              DOUBLE                                         #  (FINISH VECTOR COMPONENT SHIFT RIGHT
002198,001532: 00,2042           54142                           TS       MPAC       +2                         #  AND ROUND.
002199,001533: 00,2043           12045                           TCF      +2                                    
002200,001534: 00,2044           26141                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002201,001535: 
002202,001536: 00,2045           37653                           CAF      ZERO                                  
002203,001537: 00,2046           54142                           TS       MPAC       +2                         
002204,001538: 00,2047           56140                           XCH      MPAC                                  #  SETTING TO ZERO SO FOLLOWING DAS WORKS.
002205,001539: 00,2050           00006                           EXTEND                                         
002206,001540: 00,2051           70121                           MP       MPTEMP                                
002207,001541: 00,2052           20141                           DAS      MPAC                                  #  AGAIN NO OVERFLOW.
002208,001542: 00,2053           00002                           TC       Q                                     
002209,001543: 
002210,001544: 00,2054           30121        VSHRRND            CA       MPTEMP                                #  ENTRY TO SHIFT RIGHT AND ROUND MPAC WHEN
002211,001545: 00,2055           00006                           EXTEND                                         #  MPAC CONTAINS A VECTOR COMPONENT.
002212,001546: 00,2056           70141                           MP       MPAC       +1                         
002213,001547: 00,2057           54141                           TS       MPAC       +1                         
002214,001548: 00,2060           56001                           XCH      L                                     
002215,001549: 00,2061           12041                           TCF      VSHR2                                 #  GO ADD ONE IF NECESSARY AND FINISH.
002216,001550: 

Page 62

002218,001552:                                                                                                  #           ROUTINE FOR SHORT SCALAR SHIFT LEFT (AND MAYBE ROUND).
002219,001553: 
002220,001554: 00,2062           30021        TSSL               CA       SR                                    #  GET SHIFT COUNT FOR SR.
002221,001555: 00,2063           54121                 +1        TS       MPTEMP                                
002222,001556: 
002223,001557: 00,2064           00006                 +2        EXTEND                                         #  ENTRY HERE FROM SL FOR SCALARS.
002224,001558: 00,2065           30142                           DCA      MPAC       +1                         #  SHIFTING LEFT ONE PLACE AT A TIME IS
002225,001559: 00,2066           20142                           DAS      MPAC       +1                         #  FASTER THAN DOING THE WHOLE SHIFT WITH
002226,001560: 00,2067           60140                           AD       MPAC                                  #  MULTIPLIES ASSUMING THAT FREQUENCY OF
002227,001561: 00,2070           60140                           AD       MPAC                                  #  SHIFT COUNTS GOES DOWN RAPIDLY AS A
002228,001562: 00,2071           54140                           TS       MPAC                                  #  FUNCTION OF THEIR MAGNITUDE.
002229,001563: 00,2072           12074                           TCF      +2                                    
002230,001564: 00,2073           54105                           TS       OVFIND                                #  OVERFLOW. (LEAVES OVERFLOW-CORRECTED
002231,001565:                                                                                                  #  RESULT ANYWAY).
002232,001566: 00,2074           10121                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNT.
002233,001567: 00,2075           12063                           TCF      TSSL       +1                         
002234,001568: 
002235,001569: 00,2076           10020                           CCS      CYR                                   #  SEE IF ROUND WANTED.
002236,001570: 00,2077           07115                           TC       ROUNDSUB                              #  YES - ROUND AND EXIT.
002237,001571: 00,2100           16014                           TCF      DANZIG                                #  SL LEAVES A ZERO IN CYR FOR NO ROUND.
002238,001572: 00,2101           16014                           TCF      DANZIG                                #  NO - EXIT IMMEDIATL
002239,001573: 

Page 63

002241,001575:                                                                                                  #  VECTOR SHIFTING ROUTINES.
002242,001576: 
002243,001577: 00,2102           37652        SHORTV             CAF      LOW3                                  #  SAVE 3 BIT SHIFT COUNT - 1 WITHOUT
002244,001578: 00,2103           70020                           MASK     CYR                                   #  EDITING CYR.
002245,001579: 00,2104           54121                           TS       MPTEMP                                
002246,001580: 00,2105           10020                           CCS      CYR                                   #  SEE IF LEFT OR RIGHT SHIFT.
002247,001581: 00,2106           12126                           TCF      VSSL                                  #  VECTOR SHIFT LEFT.
002248,001582: 00,2107           00176        OCT176             OCT      176                                   #  USED IN PROCESSED SHIFTS WITH - COUNT.
002249,001583: 
002250,001584: 00,2110           50121        VSSR               INDEX    MPTEMP                                #  (ENTRY FROM SR). PICK UP SHIFTING BIT.
002251,001585: 00,2111           37631                           CAF      BIT14                                 #  MPTEMP CONTAINS THE SHIFT COUNT - 1.
002252,001586: 00,2112           54121                           TS       MPTEMP                                
002253,001587: 00,2113           02054                           TC       VSHRRND                               #  SHIFT X COMPONENT.
002254,001588: 
002255,001589: 00,2114           52141                           DXCH     MPAC                                  #  SWAP X AND Y COMPONENTS.
002256,001590: 00,2115           52144                           DXCH     MPAC       +3                         
002257,001591: 00,2116           52141                           DXCH     MPAC                                  
002258,001592: 00,2117           02054                           TC       VSHRRND                               #  SHIFT Y COMPONENT.
002259,001593: 
002260,001594: 00,2120           52141                           DXCH     MPAC                                  #  SWAP Y AND Z COMPONENTS.
002261,001595: 00,2121           52146                           DXCH     MPAC       +5                         
002262,001596: 00,2122           52141                           DXCH     MPAC                                  
002263,001597: 00,2123           02054                           TC       VSHRRND                               #  SHIFT Z COMPONENT.
002264,001598: 
002265,001599: 00,2124           17364                           TCF      VROTATEX                              #  RESTORE COMPONENTS TO PROPER PLACES.
002266,001600: 

Page 64

002268,001602:                                                                                                  #  VECTOR SHIFT LEFT - DONE ONE PLACE AT A TIME.
002269,001603: 
002270,001604: 00,2125           54121                 -1        TS       MPTEMP                                #  SHIFTING LOOP.
002271,001605: 
002272,001606: 00,2126           00006        VSSL               EXTEND                                         
002273,001607: 00,2127           30141                           DCA      MPAC                                  
002274,001608: 00,2130           20141                           DAS      MPAC                                  
002275,001609: 00,2131           00006                           EXTEND                                         
002276,001610: 00,2132           12134                           BZF      +2                                    
002277,001611: 00,2133           07006                           TC       OVERFLOW                              
002278,001612: 
002279,001613: 00,2134           00006                           EXTEND                                         
002280,001614: 00,2135           30144                           DCA      MPAC       +3                         
002281,001615: 00,2136           20144                           DAS      MPAC       +3                         
002282,001616: 00,2137           00006                           EXTEND                                         
002283,001617: 00,2140           12142                           BZF      +2                                    
002284,001618: 00,2141           07006                           TC       OVERFLOW                              
002285,001619: 
002286,001620: 00,2142           00006                           EXTEND                                         
002287,001621: 00,2143           30146                           DCA      MPAC       +5                         
002288,001622: 00,2144           20146                           DAS      MPAC       +5                         
002289,001623: 00,2145           00006                           EXTEND                                         
002290,001624: 00,2146           12150                           BZF      +2                                    
002291,001625: 00,2147           07006                           TC       OVERFLOW                              
002292,001626: 
002293,001627: 00,2150           10121                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNTER.
002294,001628: 00,2151           12125                           TCF      VSSL       -1                         
002295,001629: 00,2152           16014                           TCF      DANZIG                                #  EXIT.
002296,001630: 

Page 65

002298,001632:                                                                                                  #           TSLC - TRIPLE SHIFT LEFT AND COUNT. SHIFTS MPAC LEFT UNTIL GREATER THAN .5 IN MAGNITUDE, LEAVING
002299,001633:                                                                                                  #  THE COMPLEMENT OF THE NUMBER OF SHIFTS REQUIRED IN X.
002300,001634: 
002301,001635: 00,2153           54121        TSLC2              TS       MPTEMP                                #  START BY ZEROING SHIFT COUNT (IN A NOW).
002302,001636: 00,2154           06710                           TC       BRANCH                                #  EXIT WITH NO SHIFTING IF ARGUMENT ZERO.
002303,001637: 00,2155           12157                           TCF      +2                                    
002304,001638: 00,2156           12172                           TCF      ENDTSLC                               #  STORES ZERO SHIFT COUNT IN THIS CASE.
002305,001639: 
002306,001640: 00,2157           30140                           CA       MPAC                                  #  BEGIN NORMALIZATION LOOP.
002307,001641: 00,2160           12167                           TCF      TSLCTEST                              
002308,001642: 
002309,001643: 00,2161           24121        TSLCLOOP           INCR     MPTEMP                                #  INCREMENT SHIFT COUNTER.
002310,001644: 00,2162           00006                           EXTEND                                         
002311,001645: 00,2163           30142                           DCA      MPAC       +1                         
002312,001646: 00,2164           20142                           DAS      MPAC       +1                         
002313,001647: 00,2165           60140                           AD       MPAC                                  
002314,001648: 00,2166           26140                           ADS      MPAC                                  
002315,001649: 00,2167           60000        TSLCTEST           DOUBLE                                         #  SEE IF (ANOTHER) SHIFT IS REQUIRED.
002316,001650: 00,2170           54000                           OVSK                                           
002317,001651: 00,2171           12161                           TCF      TSLCLOOP                              #  YES - INCREMENT COUNT AND SHIFT AGAIN.
002318,001652: 
002319,001653: 00,2172           40121        ENDTSLC            CS       MPTEMP                                
002320,001654: 00,2173           16626                           TCF      STORE1                                #  STORE SHIFT COUNT AND RETURN TO DANZIG.
002321,001655: 

Page 66

002323,001657:                                                                                                  #           THE FOLLOWING ROUTINES PROCESSES THE GENERAL SHIFT INSTRUCTIONS SR, SRR, SL, AND SLR.
002324,001658:                                                                                                  #  THE GIVEN ADDRESS IS DECODED AS FOLLOWS:
002325,001659: 
002326,001660:                                                                                                  #           BITS 1-7    SHIFT COUNT (SUBADDRESS) LESS THAN 125 DECIMAL.
002327,001661:                                                                                                  #           BIT 8       PSEUDO SIGN BIT (DETECTS CHANGE IN SIGN IN INDEXED SHIFTS).
002328,001662:                                                                                                  #           BIT 9       0 FOR LEFT SHIFT, AND 1 FOR RIGHT SHIFT.
002329,001663:                                                                                                  #           BIT 10      1 FOR TERMINAL ROUND ON SCALAR SHIFTS, 0 OTHERWISE.
002330,001664:                                                                                                  #           BITS 11-15  0.
002331,001665: 
002332,001666:                                                                                                  #  THE ABOVE ENCODING IS DONE BY THE YUL SYSTEM.
002333,001667: 
002334,001668: 
002335,001669: 
002336,001670: 00,2174           70102        GENSHIFT           MASK     ADDRWD                                #  GET SHIFT COUNT, TESTING FOR ZERO.
002337,001671: 00,2175           10000                           CCS      A                                     #  (ARRIVES WITH C(A) = LOW7).
002338,001672: 00,2176           12204                           TCF      GENSHFT2                              #  IF NON-ZERO, PROCEED WITH DECREMENTED CT
002339,001673: 
002340,001674: 00,2177           37635                           CAF      BIT10                                 #  ZERO SHIFT COUNT. NO SHIFTS NEEDED BUT
002341,001675: 00,2200           70102                           MASK     ADDRWD                                #  WE MIGHT HAVE TO ROUND MPAC ON SLR AND
002342,001676: 00,2201           10000                           CCS      A                                     #  SRR (SCALAR ONLY).
002343,001677: 00,2202           07115                           TC       ROUNDSUB                              
002344,001678: 00,2203           16014                           TCF      DANZIG                                
002345,001679: 
002346,001680: 00,2204           54121        GENSHFT2           TS       MPTEMP                                #  DECREMENTED SHIFT COUNT TO MPTEMP.
002347,001681: 00,2205           37637                           CAF      BIT8                                  #  TEST MEANING OF LOW SEVEN BIT COUNT IN
002348,001682: 00,2206           00006                           EXTEND                                         #  MPTEMP NOW.
002349,001683: 00,2207           70102                           MP       ADDRWD                                
002350,001684: 00,2210           76165                           MASK     LOW2                                  #  JUMPS ON SHIFT DIRECTION (BIT8) AND
002351,001685: 00,2211           50000                           INDEX    A                                     
002352,001686: 00,2212           12213                           TCF      +1                                    #  ORIGINAL SHIFT DIRECTION (BIT 9).
002353,001687: 00,2213           12312                           TCF      RIGHT-                                #  NEGATIVE SHIFT COUNT FOR SL OR SLR.
002354,001688: 00,2214           12321                           TCF      LEFT                                  #  SL OR SLR.
002355,001689: 00,2215           12316                           TCF      LEFT-                                 #  NEGATIVE SHIFT COUNT WITH SR OR SRR.
002356,001690: 

Page 67

002358,001692:                                                                                                  #           GENERAL SHIFT RIGHT.
002359,001693: 
002360,001694: 00,2216           10147        RIGHT              CCS      MODE                                  #  SEE IF VECTOR OR SCALAR.
002361,001695: 00,2217           12257                           TCF      GENSCR                                
002362,001696: 00,2220           12257                           TCF      GENSCR                                
002363,001697: 
002364,001698: 00,2221           30121                           CA       MPTEMP                                #  SEE IF SHIFT COUNT GREATER THAN 13D.
002365,001699: 00,2222           62273        VRIGHT2            AD       NEG12                                 
002366,001700: 00,2223           00006                           EXTEND                                         
002367,001701: 00,2224           62110                           BZMF     VSSR                                  #  IF SO, BRANCH AND SHIFT IMMEDIATELY.
002368,001702: 
002369,001703: 00,2225           67655                           AD       NEGONE                                #  IF NOT, REDUCE MPTEMP BY A TOTAL OF 14,
002370,001704: 00,2226           54121                           TS       MPTEMP                                #  AND DO A SHIFT RIGHT AND ROUND BY 14.
002371,001705: 00,2227           37653                           CAF      ZERO                                  #  THE ROUND AT THIS STAGE MAY INTRODUCE A
002372,001706: 00,2230           54001                           TS       L                                     #  ONE BIT ERROR IN A SHIFT RIGHT 15D.
002373,001707: 00,2231           56140                           XCH      MPAC                                  
002374,001708: 00,2232           56141                           XCH      MPAC       +1                         
002375,001709: 00,2233           02252                           TC       SETROUND                              #  X COMPONENT NOW SHIFTED, SO MAKE UP THE
002376,001710: 00,2234           20141                           DAS      MPAC                                  #  ROUNDING QUANTITY (0 IN A AND 0 OR +-1
002377,001711:                                                                                                  #  IN L).
002378,001712: 00,2235           56143                           XCH      MPAC       +3                         #  REPEAT THE ABOVE PROCESS FOR Y AND Z.
002379,001713: 00,2236           56144                           XCH      MPAC       +4                         
002380,001714: 00,2237           02252                           TC       SETROUND                              
002381,001715: 00,2240           20144                           DAS      MPAC       +3                         #  NO OVERFLOW ON THESE ADDS.
002382,001716: 
002383,001717: 00,2241           56145                           XCH      MPAC       +5                         
002384,001718: 00,2242           56146                           XCH      MPAC       +6                         
002385,001719: 00,2243           02252                           TC       SETROUND                              
002386,001720: 00,2244           20146                           DAS      MPAC       +5                         
002387,001721: 
002388,001722: 00,2245           10121                           CCS      MPTEMP                                #  SEE IF DONE, DOING FINAL DECREMENT.
002389,001723: 00,2246           12222                           TCF      VRIGHT2                               
002390,001724: 00,2247           13614        TCSUBTR            TCF      SUBTR                                 
002391,001725: 00,2250           04604        BIASLO             DEC      .2974      B-1                        #  SQRT CONSTANT
002392,001726: 
002393,001727: 00,2251           16014                           TCF      DANZIG                                
002394,001728: 
002395,001729: 
002396,001730: 
002397,001731: 00,2252           60000        SETROUND           DOUBLE                                         #  MAKES UP ROUNDING QUANTITY FROM ARRIVING
002398,001732: 00,2253           54142                           TS       MPAC       +2                         #  C(A). L IS ZERO INITIALLY.
002399,001733: 00,2254           37653                           CAF      ZERO                                  
002400,001734: 00,2255           56001                           XCH      L                                     
002401,001735: 00,2256           00002                           TC       Q                                     #  RETURN AND DO THE DAS, RESETTING L TO 0.
002402,001736: 

Page 68

002404,001738:                                                                                                  #           PROCESS SR AND SRR FOR SCALARS.
002405,001739: 
002406,001740: 00,2257           30121        GENSCR             CA       MPTEMP                                #  SEE IF THE ORIGINAL SHIFT COUNT WAS LESS
002407,001741: 00,2260           62273                 +1        AD       NEG12                                 #  THAN 14D.
002408,001742: 00,2261           00006                           EXTEND                                         
002409,001743: 00,2262           62302                           BZMF     DOSSHFT                               #  DO THE SHIFT IMMEDIATELY IF SO.
002410,001744: 
002411,001745: 00,2263           67655                 +4        AD       NEGONE                                #  IF NOT, DECREMENT SHIFT COUNT BY 14D AND
002412,001746: 00,2264           54121                           TS       MPTEMP                                #  SHIFT MPAC RIGHT 14 PLACES.
002413,001747: 00,2265           37653                           CAF      ZERO                                  
002414,001748: 00,2266           56140                           XCH      MPAC                                  
002415,001749: 00,2267           56141                           XCH      MPAC       +1                         
002416,001750: 00,2270           54142                           TS       MPAC       +2                         
002417,001751: 00,2271           10121                           CCS      MPTEMP                                #  SEE IF FINISHED, DO FINAL DECREMENT.
002418,001752: 00,2272           02260                           TC       GENSCR     +1                         
002419,001753: 00,2273           77763        NEG12              DEC      -12        B-14                       
002420,001754: 00,2274           22650        SLOPEHI            DEC      .5884                                 #  SQRT CONSTANT.
002421,001755: 00,2275           37635                           CAF      BIT10                                 #  FINISHED WITH SHIFT. SEE IF ROUND
002422,001756: 00,2276           70102                           MASK     ADDRWD                                #  WANTED.
002423,001757: 00,2277           10000                           CCS      A                                     
002424,001758: 00,2300           07115                           TC       ROUNDSUB                              
002425,001759: 00,2301           16014                           TCF      DANZIG                                #  DO SO AND/OR EXIT.
002426,001760: 
002427,001761: 00,2302           50121        DOSSHFT            INDEX    MPTEMP                                #  PICK UP SHIFTING BIT.
002428,001762: 00,2303           37631                           CAF      BIT14                                 
002429,001763: 00,2304           54121                           TS       MPTEMP                                
002430,001764: 00,2305           37635                           CAF      BIT10                                 #  SEE IF TERMINAL ROUND DESIRED.
002431,001765: 00,2306           70102                           MASK     ADDRWD                                
002432,001766: 00,2307           10000                           CCS      A                                     
002433,001767: 00,2310           12012                           TCF      RIGHTR                                #  YES.
002434,001768: 00,2311           12014                           TCF      MPACSHR                               #  JUST SHIFT RIGHT.
002435,001769: 

Page 69

002437,001771:                                                                                                  #           PROCESS THE RIGHT- (SL(R) WITH A NEGATIVE COUNT), LEFT-, AND LEFT OPTIONS.
002438,001772: 
002439,001773: 00,2312           40121        RIGHT-             CS       MPTEMP                                #  GET ABSOLUTE VALUE - 1 OF SHIFT COUNT
002440,001774: 00,2313           62107                           AD       OCT176                                #  UNDERSTANDING THAT BIT8 (PSEUDO-SIGN)
002441,001775: 00,2314           54121                           TS       MPTEMP                                #  WAS 1 INITIALLY.
002442,001776: 00,2315           12216                           TCF      RIGHT                                 #  DO NORMAL SHIFT RIGHT.
002443,001777: 
002444,001778: 00,2316           40121        LEFT-              CS       MPTEMP                                #  SAME PROLOGUE TO LEFT FOR INDEXED RIGHT
002445,001779: 00,2317           62107                           AD       OCT176                                #  SHIFTS WHOSE NET SHIFT COUNT IS NEGATIVE
002446,001780: 00,2320           54121                           TS       MPTEMP                                
002447,001781: 
002448,001782: 00,2321           10147        LEFT               CCS      MODE                                  #  SINCE LEFT SHIFTING IS SONE ONE PLACE AT
002449,001783: 00,2322           12325                           TCF      GENSCL                                #  A TIME, NO COMPARISON WITH 14 NEED BE
002450,001784: 00,2323           12325                           TCF      GENSCL                                #  DONE. FOR SCALARS, SEE IF TERMINAL ROUND
002451,001785: 00,2324           12126                           TCF      VSSL                                  #  DESIRED. FOR VECTORS, SHIFT IMMEDIATELY.
002452,001786: 
002453,001787: 00,2325           37641        GENSCL             CAF      BIT6                                  #  PUT ROUNDING BIT (BIT10 OF ADDRWD) INTO
002454,001788: 00,2326           00006                           EXTEND                                         #  BIT 15 OF CYR WHERE THE ROUNDING BIT OF
002455,001789: 00,2327           70102                           MP       ADDRWD                                #  A SHORT SHIFT LEFT WOULD BE.
002456,001790: 00,2330           54020                           TS       CYR                                   
002457,001791: 00,2331           12064                           TCF      TSSL       +2                         #  DO THE SHIFT.
002458,001792: 

Page 70

002460,001794:                                                                                                  #           SCALAR DIVISION INSTRUCTIONS, DDV AND BDDV, ARE EXECUTED HERE. AT THIS POINT, THE DIVIDEND IS IN MPAC
002461,001795:                                                                                                  #  AND THE DIVISOR IN BUF.
002462,001796: 
002463,001797: 00,2332           47646        DDV/BDDV           CS       ONE                                   #  INITIALIZATION.
002464,001798: 00,2333           54122                           TS       DVSIGN                                #  +-1 FOR POSITIVE QUOTIENT - -0 FOR NEG.
002465,001799: 00,2334           54123                           TS       DVNORMCT                              #  DIVIDEND NORMALIZATION COUNT.
002466,001800: 00,2335           54124                           TS       MAXDVSW                               #  NEAR-ONE DIVIDE FLAG.
002467,001801: 
002468,001802: 00,2336           10114                           CCS      BUF                                   #  FORCE BUF POSITIVE WITH THE MAJOR PART
002469,001803: 00,2337           12366                           TCF      BUF+                                  #  NON-ZERO.
002470,001804: 00,2340           12342                           TCF      +2                                    
002471,001805: 00,2341           12362                           TCF      BUF-                                  
002472,001806: 
002473,001807: 00,2342           56115                           XCH      BUF        +1                         #  SHIFT DIVIDEND AND DIVISOR LEFT 14.
002474,001808: 00,2343           56114                           XCH      BUF                                   
002475,001809: 00,2344           56141                           XCH      MPAC       +1                         
002476,001810: 00,2345           56140                           XCH      MPAC                                  
002477,001811: 00,2346           00006                           EXTEND                                         #  CHECK FOR OVERFLOW.
002478,001812: 00,2347           12351                           BZF      +2                                    
002479,001813: 00,2350           12355                           TCF      DVOVF                                 
002480,001814: 
002481,001815: 00,2351           10114                           CCS      BUF                                   #  TRY AGAIN ON FORMER MINOR PART.
002482,001816: 00,2352           12366                           TCF      BUF+                                  
002483,001817: 00,2353           12355                           TCF      DVOVF                                 #  OVERFLOW ON ZERO DIVISOR.
002484,001818: 00,2354           12362                           TCF      BUF-                                  
002485,001819: 
002486,001820: 00,2355           37626        DVOVF              CAF      POSMAX                                #  ON DIVISION OVERFLOW OF ANY SORT, SET
002487,001821: 00,2356           54140                           TS       MPAC                                  #  SET DP MPAC TO +-POSMAX.
002488,001822: 00,2357           02552                           TC       FINALDV    +3                         
002489,001823: 00,2360           37646                           CAF      ONE                                   #  SET OVERFLOW INDICATOR AND EXIT.
002490,001824: 00,2361           17060                           TCF      SETOVF                                
002491,001825: 
002492,001826: 00,2362           00006        BUF-               EXTEND                                         #  IF BUF IS NEGATIVE, COMPLEMENT IT AND
002493,001827: 00,2363           40115                           DCS      BUF                                   #  MAINTAIN DVSIGN FOR FINAL QUOTIENT SIGN.
002494,001828: 00,2364           52115                           DXCH     BUF                                   
002495,001829: 00,2365           24122                           INCR     DVSIGN                                #  NOW -0.
002496,001830: 
002497,001831: 00,2366           10140        BUF+               CCS      MPAC                                  #  FORCE MPAC POSITIVE, CHECKING FOR ZERO
002498,001832: 00,2367           12403                           TCF      MPAC+                                 #  DIVIDEND IN THE PROCESS.
002499,001833: 00,2370           12372                           TCF      +2                                    
002500,001834: 00,2371           12377                           TCF      MPAC-                                 
002501,001835: 00,2372           10141                           CCS      MPAC       +1                         
002502,001836: 00,2373           12403                           TCF      MPAC+                                 
002503,001837: 00,2374           16014                           TCF      DANZIG                                #  EXIT IMMEDIATELY ON ZERO DIVIDEND.
002504,001838: 00,2375           12377                           TCF      MPAC-                                 
002505,001839: 00,2376           16014                           TCF      DANZIG                                
002506,001840: 
002507,001841: 00,2377           00006        MPAC-              EXTEND                                         #  FORCE MPAC POSITIVE AS BUF IN BUF-.
002508,001842: 00,2400           40141                           DCS      MPAC                                  
002509,001843: 00,2401           52141                           DXCH     MPAC                                  
002510,001844: 

Page 71

002512,001846: 00,2402           24122                           INCR     DVSIGN                                #  NOW +1 OR -0.
002513,001847: 

Page 72

002515,001849: 00,2403           40140        MPAC+              CS       MPAC                                  #  CHECK FOR DIVISION OVERFLOW. IF THE
002516,001850: 00,2404           67655                           AD       NEGONE                                #  MAJOR PART OF THE DIVIDEND IS LESS THAN
002517,001851: 00,2405           60114                           AD       BUF                                   #  THE MAJOR PART OF THE DIVISOR BY AT
002518,001852: 00,2406           10000                           CCS      A                                     #  LEAST TWO, WE CAN PROCEED IMMEDIATELY
002519,001853: 00,2407           12451                           TCF      DVNORM                                #  WITHOUT NORMALIZATION PRODUCING A DVMAX.
002520,001854: 00,2410           60001        -1/2+2             OCT      60001                                 #  USED IN SQRTSUB.
002521,001855: 
002522,001856: 00,2411           12412                           TCF      +1                                    #  IF THE ABOVE DOES NOT HOLD, FORCE SIGN
002523,001857: 00,2412           37631                           CAF      HALF                                  #  AGREEMENT IN NUMERATOR AND DENOMINATOR
002524,001858: 00,2413           60000                           DOUBLE                                         #  TO FACILITATE OVERFLOW AND NEAR-ONE
002525,001859: 00,2414           60141                           AD       MPAC       +1                         #  CHECKING.
002526,001860: 00,2415           54141                           TS       MPAC       +1                         
002527,001861: 00,2416           37653                           CAF      ZERO                                  
002528,001862: 00,2417           67626                           AD       POSMAX                                
002529,001863: 00,2420           26140                           ADS      MPAC                                  
002530,001864: 
002531,001865: 00,2421           37631                           CAF      HALF                                  #  SAME FOR BUF.
002532,001866: 00,2422           60000                           DOUBLE                                         
002533,001867: 00,2423           60115                           AD       BUF        +1                         
002534,001868: 00,2424           54115                           TS       BUF        +1                         
002535,001869: 00,2425           37653                           CAF      ZERO                                  
002536,001870: 00,2426           67626                           AD       POSMAX                                
002537,001871: 00,2427           26114                           ADS      BUF                                   
002538,001872: 
002539,001873: 00,2430           40140                           CS       MPAC                                  #  CHECK MAGNITUDE OF SIGN-CORRECTED
002540,001874: 00,2431           60114                           AD       BUF                                   #  OPERANDS.
002541,001875: 00,2432           10000                           CCS      A                                     
002542,001876: 00,2433           12451                           TCF      DVNORM                                #  DIVIDE OK - WILL NOT BECOME MAXDV CASE.
002543,001877: 00,2434           00117        LBUF2              ADRES    BUF2                                  
002544,001878: 00,2435           12355                           TCF      DVOVF                                 #  DIVISOR NOT LESS THAN DIVIDEND - OVF.
002545,001879: 
002546,001880: 00,2436           54124                           TS       MAXDVSW                               #  IF THE MAJOR PARTS OF THE DIVIDEND AND
002547,001881: 00,2437           40141                           CS       MPAC       +1                         #  DIVISOR ARE EQUAL, A SPECIAL APPROXIMA-
002548,001882: 00,2440           60115                           AD       BUF        +1                         #  TION IS USED (PROVIDED THE DIVISION IS
002549,001883: 00,2441           00006                           EXTEND                                         #  POSSIBLE, OF COURSE).
002550,001884: 00,2442           62355                           BZMF     DVOVF                                 
002551,001885: 00,2443           12451                           TCF      DVNORM                                #  IF NO OVERFLOW.
002552,001886: 

Page 73

002554,001888: 00,2444           00006        BUFNORM            EXTEND                                         #  ADD -1 TO AUGMENT SHIFT COUNT AND SHIFT
002555,001889: 00,2445           24123                           AUG      DVNORMCT                              #  LEFT ONE PLACE.
002556,001890: 00,2446           00006                           EXTEND                                         
002557,001891: 00,2447           30115                           DCA      BUF                                   
002558,001892: 00,2450           20115                           DAS      BUF                                   
002559,001893: 
002560,001894: 00,2451           30114        DVNORM             CA       BUF                                   #  SEE IF DIVISOR NORMALIZED YET.
002561,001895: 00,2452           60000                           DOUBLE                                         
002562,001896: 00,2453           54000                           OVSK                                           
002563,001897: 00,2454           12444                           TCF      BUFNORM                               #  NO - SHIFT LEFT ONE AND TRY AGAIN.
002564,001898: 
002565,001899: 00,2455           52141                           DXCH     MPAC                                  #  CALL DIVIDEND NORMALIZATION SEQUENCE
002566,001900: 00,2456           50123                           INDEX    DVNORMCT                              #  PRIOR TO DOING THE DIVIDE.
002567,001901: 00,2457           02507                           TC       MAXTEST                               
002568,001902: 
002569,001903: 00,2460           54142                           TS       MPAC       +2                         #  RETURNS WITH DIVISION DONE AND C(A) = 0.
002570,001904: 00,2461           16014                           TCF      DANZIG                                
002571,001905: 

Page 74

002573,001907:                                                                                                  #           THE FOLLOWING ARE PROLOGUES TO SHIFT THE DIVIDEND ARRIVING IN A AND L BEFORE THE DIVIDE.
002574,001908: 
002575,001909: 00,2462           22021                 -21D      LXCH     SR                                    #  SPECIAL PROLOGUE FOR UNIT WHEN THE
002576,001910: 00,2463           00006                           EXTEND                                         #  LENGTH OF THE ARGUMENT WAS NOT LESS THAN
002577,001911: 00,2464           77631                           MP       HALF                                  #  .5. IN THIS CASE, EACH COMPONENT MUST BE
002578,001912: 00,2465           56001                           XCH      L                                     #  SHIFTED RIGHT ONE TO PRODUCE A HALF-UNIT
002579,001913: 00,2466           60021                           AD       SR                                    #  VECTOR.
002580,001914: 00,2467           56001                           XCH      L                                     
002581,001915: 00,2470           12513                           TCF      GENDDV     +1                         #  WITH DP DIVIDEND IN A,L.
002582,001916: 
002583,001917: 00,2471           20001                           DDOUBL                                         #  PROLOGUE WHICH NORMALIZES THE DIVIDEND
002584,001918: 00,2472           20001                           DDOUBL                                         #  WHEN IT IS KNOWN THAT NO DIVISION
002585,001919: 00,2473           20001                           DDOUBL                                         #  OVERFLOW WILL OCCUR.
002586,001920: 00,2474           20001                           DDOUBL                                         
002587,001921: 00,2475           20001                           DDOUBL                                         
002588,001922: 00,2476           20001                           DDOUBL                                         
002589,001923: 00,2477           20001                           DDOUBL                                         
002590,001924: 00,2500           20001                           DDOUBL                                         
002591,001925: 00,2501           20001                           DDOUBL                                         
002592,001926: 00,2502           20001                           DDOUBL                                         
002593,001927: 00,2503           20001                           DDOUBL                                         
002594,001928: 00,2504           20001                           DDOUBL                                         
002595,001929: 00,2505           20001                           DDOUBL                                         
002596,001930: 00,2506           52141                           DXCH     MPAC                                  
002597,001931: 
002598,001932: 00,2507           10124        MAXTEST            CCS      MAXDVSW                               #  0 IF MAJORS MIGHT BE =, -1 OTHERWISE.
002599,001933: 00,2510           06552        BIASHI             DEC      .4192      B-1                        #  SQRT CONSTANTS
002600,001934: 
002601,001935: 00,2511           12564                           TCF      MAXDV                                 #  CHECK TO SEE IF THEY ARE NOW EQUAL.
002602,001936: 

Page 75

002604,001938:                                                                                                  #           THE FOLLOWING IS A GENERAL PURPOSE DOUBLE PRECISION DIVISION ROUTINE. IT DIVIDES MPAC BY BUF AND LEAVES
002605,001939:                                                                                                  #  THE RESULT IN MPAC. THE FOLLOWING CONDITIONS MUST BE SATISFIED:
002606,001940: 
002607,001941:                                                                                                  #           1.  THE DIVISOR (BUF) MUST BE POSITIVE AND NOT LESS THAN .5.
002608,001942: 
002609,001943:                                                                                                  #           2.  THE DIVIDEND (MPAC) MUST BE POSITIVE WITH THE MAJOR PART OF MPAC STRICTLY LESS THAN THAT OF BUF
002610,001944:                                                                                                  #  (A SPECIAL APPROXIMATION, MAXDV, IS USED WHEN THE MAJOR PARTS ARE EQUAL).
002611,001945: 
002612,001946:                                                                                                  #           UNDERSTANDING THAT A/B = Q + S(R/B) WHERE S = 2(-14) AND Q AND R ARE QUOTIENT AND REMAINDER, RESPEC-
002613,001947:                                                                                                  #  TIVELY, THE FOLLOWING APPROXIMATION IS OBTAINED BY MULTIPLYING ABOVE AND BELOW BY C - SD AND NEGLECTING TERMS OF
002614,001948:                                                                                                  #  ORDER S-SQUARED (POSSIBLY INTRODUCING ERROR INTO THE LOW TWO BITS OF THE RESULT). SIGN AGREEMENT IS UNNECESSARY.
002615,001949: 
002616,001950:                                                                                                  #           A + SB .      (R - QD)                                             A + SB
002617,001951:                                                                                                  #           ------ = Q + S(------) WHERE Q AND R ARE QUOTIENT AND REMAINDER OF ------ RESPECTIVELY.
002618,001952:                                                                                                  #           C + SD        (  C   )                                               C
002619,001953: 
002620,001954: 
002621,001955: 
002622,001956: 00,2512           52141        GENDDV             DXCH     MPAC                                  #  WE NEED A AND B ONLY FOR FIRST DV.
002623,001957: 00,2513           00006                 +1        EXTEND                                         #  (SPECIAL UNIT PROLOGUE ENTERS HERE).
002624,001958: 00,2514           10114                           DV       BUF                                   #  A NOW CONTAINS Q AND L, R.
002625,001959: 00,2515           52141                           DXCH     MPAC                                  
002626,001960: 
002627,001961: 00,2516           40140                           CS       MPAC                                  #  FORM DIVIDEND FOR MINOR PART OF RESULT.
002628,001962: 00,2517           00006                           EXTEND                                         
002629,001963: 00,2520           70115                           MP       BUF        +1                         
002630,001964: 00,2521           60141                           AD       MPAC       +1                         #  OVERFLOW AT THIS POINT IS POSITIVE SINCE
002631,001965: 00,2522           54000                           OVSK                                           #  R IS POSITIVE IN EVERY CASE.
002632,001966: 00,2523           12530                           TCF      +5                                    
002633,001967: 
002634,001968: 00,2524           00006                           EXTEND                                         #  OVERFLOW CAN BE REMOVED BY SUBTRACTING C
002635,001969: 00,2525           60114                           SU       BUF                                   #  (BUF) ONCE SINCE R IS ALWAYS LESS THAN C
002636,001970: 00,2526           24140                           INCR     MPAC                                  #  IN THIS CASE. INCR COMPENSATES SUBTRACT.
002637,001971: 00,2527           12532                           TCF      +DOWN                                 #  (SINCE C(A) IS STILL POSITIVE).
002638,001972: 
002639,001973: 00,2530           00006                 +5        EXTEND                                         #  C(A) CAN BE MADE LESS THAN C IN MAGNI-
002640,001974: 00,2531           62542                           BZMF     -UP                                   #  TUDE BY DIMINISHING IT BY C (SINCE C IS
002641,001975:                                                                                                  #  NOT LESS THAN .5) UNLESS C(A) = 0.
002642,001976: 

Page 76

002644,001978: 00,2532           00006        +DOWN              EXTEND                                         
002645,001979: 00,2533           60114                           SU       BUF                                   #  IF POSITIVE, REDUCE ONLY IF NECESSARY
002646,001980: 00,2534           00006                           EXTEND                                         #  SINCE THE COMPENSATING INCR MIGHT CAUSE
002647,001981: 00,2535           12540                           BZF      +3                                    #  OVERFLOW.
002648,001982: 00,2536           00006                           EXTEND                                         #  DONT SUBTRACT UNLESS RESULT IS POSITIVE
002649,001983: 00,2537           62546                           BZMF     ENDMAXDV                              #  OR ZERO.
002650,001984: 
002651,001985: 00,2540           24140                 +3        INCR     MPAC                                  #  KEEP SUBTRACT HERE AND COMPENSATE.
002652,001986: 00,2541           12547                           TCF      FINALDV                               
002653,001987: 
002654,001988: 00,2542           00006        -UP                EXTEND                                         #  IF ZERO, SET MINOR PART OF RESULT TO
002655,001989: 00,2543           12552                           BZF      FINALDV    +3                         #  ZERO.
002656,001990: 
002657,001991: 00,2544           00006                           EXTEND                                         #  IF NEGATIVE, ADD C TO A, SUBTRACTING ONE
002658,001992: 00,2545           26140                           DIM      MPAC                                  #  TO COMPENSATE. DIM IS OK HERE SINCE THE
002659,001993: 00,2546           60114        ENDMAXDV           AD       BUF                                   #  MAJOR PART NEVER GOES NEGATIVE.
002660,001994: 

Page 77

002662,001996: 00,2547           22007        FINALDV            ZL                                             #  DO DV TO OBTAIN MINOR PART OF RESULT.
002663,001997: 00,2550           00006                           EXTEND                                         
002664,001998: 00,2551           10114                           DV       BUF                                   
002665,001999: 00,2552           54141                 +3        TS       MPAC       +1                         
002666,002000: 
002667,002001: 00,2553           10122                           CCS      DVSIGN                                #  LEAVE RESULT POSITIVE UNLESS C(DVSIGN)=
002668,002002: 00,2554           00002                           TC       Q                                     #  -0.
002669,002003: 00,2555           00002                           TC       Q                                     
002670,002004: 00,2556           00002                           TC       Q                                     
002671,002005: 
002672,002006: 00,2557           00006                           EXTEND                                         
002673,002007: 00,2560           40141                           DCS      MPAC                                  
002674,002008: 00,2561           52141                           DXCH     MPAC                                  
002675,002009: 00,2562           37653                           CAF      ZERO                                  #  SO WE ALWAYS RETURN WITH C(A) = 0.
002676,002010: 00,2563           00002                           TC       Q                                     
002677,002011: 

Page 78

002679,002013:                                                                                                  #           IF THE MAJOR PARTS OF THE DIVISOR AND DIVIDEND ARE EQUAL, BUT THE MINOR PARTS ARE SUCH THAT THE
002680,002014:                                                                                                  #  DIVIDEND IS STRICTLY LESS THAN THE DIVISOR IN MAGNITUDE, THE FOLLOWING APPROXIMATION IS USED. THE ASSUMPTIONS
002681,002015:                                                                                                  #  ARE THE SAME AS THE GENERAL ROUTINE WITH THE ADDITION THAT SIGN AGREEMENT IS NECESSARY (B, C, & D POSITIVE).
002682,002016: 
002683,002017:                                                                                                  #                  C + SB .          (C + B - D)
002684,002018:                                                                                                  #                  ------ = 37777 + S(---------)
002685,002019:                                                                                                  #                  C + SD            (    C    )
002686,002020: 
002687,002021:                                                                                                  #           THE DIVISION MAY BE PERFORMED IMMEDIATELY SINCE B IS STRICTLY LESS THAN D AND C IS NOT LESS THAN .5.
002688,002022: 
002689,002023: 
002690,002024: 
002691,002025: 00,2564           40140        MAXDV              CS       MPAC                                  #  SEE IF MAXDV CASE STILL HOLDS AFTER
002692,002026: 00,2565           60114                           AD       BUF                                   #  NORMALIZATION.
002693,002027: 00,2566           00006                           EXTEND                                         
002694,002028: 00,2567           12571                           BZF      +2                                    
002695,002029: 00,2570           12512                           TCF      GENDDV                                #  MPAC NOW LESS THAN BUF - DIVIDE AS USUAL
002696,002030: 
002697,002031: 00,2571           37626                 +2        CAF      POSMAX                                #  SET MAJOR PART OF RESULT.
002698,002032: 00,2572           54140                           TS       MPAC                                  
002699,002033: 
002700,002034: 00,2573           40115                           CS       BUF        +1                         #  FORM DIVIDEND OF MINOR PART OF RESULT.
002701,002035: 00,2574           60141                           AD       MPAC       +1                         
002702,002036: 00,2575           12546                           TCF      ENDMAXDV                              #  GO ADD C AND DO DIVIDE, ATTACHING SIGN
002703,002037:                                                                                                  #  BEFORE EXITING.
002704,002038: 

Page 79

002706,002040:                                                                                                  #           VECTOR DIVIDED BY SCALAR, V/SC, IS EXECUTED HERE. THE VECTOR IS NOW IN MPAC WITH SCALAR IN BUF.
002707,002041: 
002708,002042: 00,2576           47646        V/SC2              CS       ONE                                   #  INITIALIZE DIVIDEND NORMALIZATION COUNT
002709,002043: 00,2577           54123                           TS       DVNORMCT                              #  AND DIVISION SIGN REGISTER.
002710,002044: 00,2600           54113                           TS       VBUF       +5                         
002711,002045: 
002712,002046: 00,2601           10114                           CCS      BUF                                   #  FORCE DIVISOR POSITIVE WITH MAJOR PART
002713,002047: 00,2602           12637                           TCF      /BUF+                                 #  NON-ZERO (IF POSSIBLE).
002714,002048: 00,2603           12605                           TCF      +2                                    
002715,002049: 00,2604           12633                           TCF      /BUF-                                 
002716,002050: 
002717,002051: 00,2605           56115                           XCH      BUF        +1                         #  SHIFT VECTOR AND SCALAR LEFT 14.
002718,002052: 00,2606           56114                           XCH      BUF                                   
002719,002053: 00,2607           56141                           XCH      MPAC       +1                         
002720,002054: 00,2610           56140                           XCH      MPAC                                  
002721,002055: 00,2611           00006                           EXTEND                                         #  CHECK FOR OVERFLOW IN EACH CASE.
002722,002056: 00,2612           12614                           BZF      +2                                    
002723,002057: 00,2613           12355                           TCF      DVOVF                                 
002724,002058: 
002725,002059: 00,2614           56144                           XCH      MPAC       +4                         
002726,002060: 00,2615           56143                           XCH      MPAC       +3                         
002727,002061: 00,2616           00006                           EXTEND                                         
002728,002062: 00,2617           12621                           BZF      +2                                    
002729,002063: 00,2620           12355                           TCF      DVOVF                                 
002730,002064: 
002731,002065: 00,2621           56146                           XCH      MPAC       +6                         
002732,002066: 00,2622           56145                           XCH      MPAC       +5                         
002733,002067: 00,2623           00006                           EXTEND                                         
002734,002068: 00,2624           12626                           BZF      +2                                    
002735,002069: 00,2625           12355                           TCF      DVOVF                                 
002736,002070: 
002737,002071: 00,2626           10114                           CCS      BUF                                   
002738,002072: 00,2627           12637                           TCF      /BUF+                                 
002739,002073: 00,2630           12355                           TCF      DVOVF                                 #  ZERO DIVISOR - OVERFLOW.
002740,002074: 00,2631           12633                           TCF      /BUF-                                 
002741,002075: 00,2632           12355                           TCF      DVOVF                                 
002742,002076: 
002743,002077: 00,2633           00006        /BUF-              EXTEND                                         #  ON NEGATIVE, COMPLEMENT BUF AND MAINTAIN
002744,002078: 00,2634           40115                           DCS      BUF                                   #  DVSIGN IN VBUF +5.
002745,002079: 00,2635           52115                           DXCH     BUF                                   
002746,002080: 00,2636           24113                           INCR     VBUF       +5                         
002747,002081: 

Page 80

002749,002083: 00,2637           37631        /BUF+              CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVISOR.
002750,002084: 00,2640           60000                           DOUBLE                                         
002751,002085: 00,2641           60115                           AD       BUF        +1                         
002752,002086: 00,2642           54115                           TS       BUF        +1                         
002753,002087: 00,2643           37653                           CAF      ZERO                                  
002754,002088: 00,2644           67626                           AD       POSMAX                                
002755,002089: 00,2645           26114                           ADS      BUF                                   
002756,002090: 
002757,002091: 00,2646           56117                           XCH      BUF2                                  #  LEAVE ABS(ORIGINAL DIVISOR) IN BUF2 FOR
002758,002092: 00,2647           30115                           CA       BUF        +1                         #  OVERFLOW TESTING.
002759,002093: 00,2650           54120                           TS       BUF2       +1                         
002760,002094: 00,2651           12657                           TCF      /NORM                                 #  NORMALIZE DIVISOR IN BUF.
002761,002095: 
002762,002096: 00,2652           00006        /NORM2             EXTEND                                         #  IF LESS THAN .5, AUGMENT DVNORMCT AND
002763,002097: 00,2653           24123                           AUG      DVNORMCT                              #  DOUBLE DIVISOR.
002764,002098: 00,2654           00006                           EXTEND                                         
002765,002099: 00,2655           30115                           DCA      BUF                                   
002766,002100: 00,2656           20115                           DAS      BUF                                   
002767,002101: 
002768,002102: 00,2657           30114        /NORM              CA       BUF                                   #  SEE IF DIVISOR NORMALIZED.
002769,002103: 00,2660           60000                           DOUBLE                                         
002770,002104: 00,2661           54000                           OVSK                                           
002771,002105: 00,2662           12652                           TCF      /NORM2                                #  DOUBLE AND TRY AGAIN IF NOT.
002772,002106: 
002773,002107: 00,2663           02675                           TC       V/SCDV                                #  DO X COMPONENT DIVIDE.
002774,002108: 00,2664           52144                           DXCH     MPAC       +3                         #  SUPPLY ARGUMENTS IN USUAL SEQUENCE.
002775,002109: 00,2665           52141                           DXCH     MPAC                                  
002776,002110: 00,2666           52144                           DXCH     MPAC       +3                         
002777,002111: 
002778,002112: 00,2667           02675                           TC       V/SCDV                                #  Y COMPONENT.
002779,002113: 00,2670           52146                           DXCH     MPAC       +5                         
002780,002114: 00,2671           52141                           DXCH     MPAC                                  
002781,002115: 00,2672           52146                           DXCH     MPAC       +5                         
002782,002116: 
002783,002117: 00,2673           02675                           TC       V/SCDV                                #  Z COMPONENT.
002784,002118: 00,2674           17364                           TCF      VROTATEX                              #  GO RE-ARRANGE COMPONENTS BEFORE EXIT.
002785,002119: 

Page 81

002787,002121:                                                                                                  #           SUBROUTINE USED BY V/SC TO DIVIDE VECTOR COMPONENT IN MPAC,+1 BY THE SCALAR GIVEN IN BUF.
002788,002122: 
002789,002123: 00,2675           30113        V/SCDV             CA       VBUF       +5                         #  REFLECTS SIGN OF SCALAR.
002790,002124: 00,2676           54122                           TS       DVSIGN                                
002791,002125: 
002792,002126: 00,2677           10140                           CCS      MPAC                                  #  FORCE MPAC POSITIVE, EXITING ON ZERO.
002793,002127: 00,2700           12714                           TCF      /MPAC+                                
002794,002128: 00,2701           12703                           TCF      +2                                    
002795,002129: 00,2702           12710                           TCF      /MPAC-                                
002796,002130: 
002797,002131: 00,2703           10141                           CCS      MPAC       +1                         
002798,002132: 00,2704           12714                           TCF      /MPAC+                                
002799,002133: 00,2705           00002                           TC       Q                                     
002800,002134: 00,2706           12710                           TCF      /MPAC-                                
002801,002135: 00,2707           00002                           TC       Q                                     
002802,002136: 
002803,002137: 00,2710           00006        /MPAC-             EXTEND                                         #  USUAL COMPLEMENTING AND SETTING OF SIGN.
002804,002138: 00,2711           40141                           DCS      MPAC                                  
002805,002139: 00,2712           52141                           DXCH     MPAC                                  
002806,002140: 00,2713           24122                           INCR     DVSIGN                                
002807,002141: 
002808,002142: 00,2714           47646        /MPAC+             CS       ONE                                   #  INITIALIZE NEAR-ONE SWITCH.
002809,002143: 00,2715           54124                           TS       MAXDVSW                               
002810,002144: 
002811,002145: 00,2716           40140                           CS       MPAC                                  #  CHECK POSSIBLE OVERFLOW.
002812,002146: 00,2717           60117                           AD       BUF2                                  #  UNNORMALIZED INPUT DIVISOR.
002813,002147: 00,2720           00006                           EXTEND                                         
002814,002148: 00,2721           62725                           BZMF     /AGREE                                #  CHECK FOR NEAR-ONE OR OVERFLOW.
002815,002149: 
002816,002150: 00,2722           52141        DDVCALL            DXCH     MPAC                                  #  CALL PRE-DIVIDE NORMALIZATION.
002817,002151: 00,2723           50123                           INDEX    DVNORMCT                              
002818,002152: 00,2724           12507                           TCF      MAXTEST                               
002819,002153: 

Page 82

002821,002155: 00,2725           37631        /AGREE             CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVIDEND
002822,002156: 00,2726           60000                           DOUBLE                                         #  (ALREADY DONE FOR DIVISOR).
002823,002157: 00,2727           60141                           AD       MPAC       +1                         
002824,002158: 00,2730           54141                           TS       MPAC       +1                         
002825,002159: 00,2731           37653                           CAF      ZERO                                  
002826,002160: 00,2732           67626                           AD       POSMAX                                
002827,002161: 00,2733           26140                           ADS      MPAC                                  
002828,002162: 
002829,002163: 00,2734           40140                           CS       MPAC                                  #  CHECK TO SEE IF OVERFLOW GONE OR IF
002830,002164: 00,2735           60117                           AD       BUF2                                  #  NEAR-ONE CASE IS PRESENT.
002831,002165: 00,2736           10000                           CCS      A                                     
002832,002166: 00,2737           12722                           TCF      DDVCALL                               #  NOT NEAR-ONE.
002833,002167: 00,2740           32506        SLOPELO            DEC      .8324                                 
002834,002168: 00,2741           12355                           TCF      DVOVF                                 #  NO HOPE.
002835,002169: 
002836,002170: 00,2742           54124                           TS       MAXDVSW                               #  SIGNAL POSSIBLE NEAR-ONE CASE.
002837,002171: 00,2743           40141                           CS       MPAC       +1                         #  SEE IF DIVISION CAN BE DONE.
002838,002172: 00,2744           60120                           AD       BUF2       +1                         
002839,002173: 00,2745           00006                           EXTEND                                         
002840,002174: 00,2746           62355                           BZMF     DVOVF                                 
002841,002175: 00,2747           12722                           TCF      DDVCALL                               #  GOING TO MAXDV.
002842,002176: 

Page 83

002844,002178:                                                                                                  #           THE FOLLOWING ROUTINE EXECUTES THE UNIT INSTRUCTION, WHICH TAKES THE UNIT OF THE VECTOR IN MPAC.
002845,002179: 
002846,002180: 00,2750           07475        UNIT               TC       MPACVBUF                              #  SAVE THE ARGUMENT IN VBUF.
002847,002181: 00,2751           03236                           TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
002848,002182: 00,2752           00006                           EXTEND                                         
002849,002183: 00,2753           30141                           DCA      MPAC                                  #  LEAVE THE SQUARE OF THE LENGTH OF THE
002850,002184: 00,2754           50104                           INDEX    FIXLOC                                #  ARGUMENT IN LVSQUARE.
002851,002185: 00,2755           52043                           DXCH     LVSQUARE                              
002852,002186: 
002853,002187: 00,2756           03262                           TC       SQRTSUB                               #  GO TAKE THE NORMALIZED SQUARE ROOT.
002854,002188: 
002855,002189: 00,2757           10140                           CCS      MPAC                                  #  CHECK FOR UNIT OVERFLOW.
002856,002190: 00,2760           12762                           TCF      +2                                    #  MPAC IS NOT LESS THAN .5 UNLESS THE
002857,002191: 00,2761           12355                           TCF      DVOVF                                 #  INPUT TO SQRTSUB WAS 0.
002858,002192: 
002859,002193: 00,2762           43063                           CS       FOURTEEN                              #  SEE IF THE INPUT WAS SO SMALL THE THE
002860,002194: 00,2763           60121                           AD       MPTEMP                                #  FIRST TWO REGISTERS OF THE SQUARE WERE 0
002861,002195: 00,2764           10000                           CCS      A                                     
002862,002196: 00,2765           40000                           COM                                            #  IF SO, SAVE THE NEGATIVE OF THE SHIFT
002863,002197: 00,2766           13044                           TCF      SMALL                                 #  COUNT -15D.
002864,002198: 
002865,002199: 00,2767           12776                           TCF      LARGE                                 #  (THIS IS USUALLY THE CASE.)
002866,002200: 
002867,002201: 00,2770           43062                           CS       THIRTEEN                              #  IF THE SHIFT COUNT WAS EXACTLY 14, SET
002868,002202: 00,2771           54121                           TS       MPTEMP                                #  THE PRE-DIVIDE NORM COUNT TO -13D.
002869,002203: 
002870,002204: 00,2772           30140                           CA       MPAC                                  #  SHIFT THE LENGTH RIGHT 14 BEFORE STORING
002871,002205: 00,2773           54001        SMALL2             TS       L                                     #  (SMALL EXITS TO THIS POINT).
002872,002206: 00,2774           37653                           CAF      ZERO                                  
002873,002207: 00,2775           13023                           TCF      LARGE2                                #  GO TO STORE LENGTH AND PROCEED.
002874,002208: 
002875,002209: 00,2776           10121        LARGE              CCS      MPTEMP                                #  MOST ALL CASES COME HERE.
002876,002210: 00,2777           13005                           TCF      LARGE3                                #  SEE IF NO NORMALIZATION WAS REQUIRED BY
002877,002211: 
002878,002212: 00,3000           42005                           CS       SRDDV                                 #  SQRT, AND IF SO, SET UP FOR A SHIFT
002879,002213: 00,3001           54121                           TS       MPTEMP                                #  RIGHT 1 BEFORE DIVIDING TO PRODUCE
002880,002214: 00,3002           00006                           EXTEND                                         #  THE DESIRED HALF UNIT VECTOR.
002881,002215: 00,3003           30141                           DCA      MPAC                                  
002882,002216: 00,3004           13023                           TCF      LARGE2                                
002883,002217: 

Page 84

002885,002219: 00,3005           40000        LARGE3             COM                                            #  LEAVE NEGATIVE OF SHIFT COUNT-1 FOR
002886,002220: 00,3006           54121                           TS       MPTEMP                                #  PREDIVIDE LEFT SHIFT.
002887,002221: 
002888,002222: 00,3007           40000                           COM                                            #  PICK UP REQUIRED SHIFTING BIT TO UNNORM-
002889,002223: 00,3010           50000                           INDEX    A                                     #  ALIZE THE SQRT RESULT.
002890,002224: 00,3011           37631                           CAF      BIT14                                 
002891,002225: 00,3012           54114                           TS       BUF                                   
002892,002226: 00,3013           00006                           EXTEND                                         
002893,002227: 00,3014           70141                           MP       MPAC       +1                         
002894,002228: 00,3015           56114                           XCH      BUF                                   
002895,002229: 00,3016           00006                           EXTEND                                         #  (UNNORMALIZE THE SQRT FOR LV).
002896,002230: 00,3017           70140                           MP       MPAC                                  
002897,002231: 00,3020           56001                           XCH      L                                     
002898,002232: 00,3021           60114                           AD       BUF                                   
002899,002233: 00,3022           56001                           XCH      L                                     
002900,002234: 
002901,002235: 00,3023           50104        LARGE2             INDEX    FIXLOC                                
002902,002236: 00,3024           52045                           DXCH     LV                                    #  LENGTH NOW STORED IN WORK AREA.
002903,002237: 
002904,002238: 00,3025           47646                           CS       ONE                                   
002905,002239: 00,3026           54124                           TS       MAXDVSW                               #  NO MAXDV CASES IN UNIT.
002906,002240: 
002907,002241: 00,3027           52107                           DXCH     VBUF                                  #  PREPARE X COMPONENT FOR DIVIDE, SETTING
002908,002242: 00,3030           52141                           DXCH     MPAC                                  #  LENGTH OF VECTOR AS DIVISOR IN BUF.
002909,002243: 00,3031           52115                           DXCH     BUF                                   
002910,002244: 00,3032           03064                           TC       UNITDV                                
002911,002245: 
002912,002246: 00,3033           52111                           DXCH     VBUF       +2                         #  DO Y AND Z IN USUAL FASHION SO WE CAN
002913,002247: 00,3034           52141                           DXCH     MPAC                                  #  EXIT THROUGH VROTATEX.
002914,002248: 00,3035           52144                           DXCH     MPAC       +3                         
002915,002249: 00,3036           03064                           TC       UNITDV                                
002916,002250: 
002917,002251: 00,3037           52113                           DXCH     VBUF       +4                         
002918,002252: 00,3040           52141                           DXCH     MPAC                                  
002919,002253: 00,3041           52146                           DXCH     MPAC       +5                         
002920,002254: 00,3042           03064                           TC       UNITDV                                
002921,002255: 00,3043           17364                           TCF      VROTATEX                              #  AND EXIT.
002922,002256: 

Page 85

002924,002258:                                                                                                  #           IF THE LENGTH OF THE ARGUMENT VECTOR WAS LESS THAN 2(-28), EACH COMPONENT MUST BE SHIFTED LEFT AT LEAST
002925,002259:                                                                                                  #  14 PLACES BEFORE THE DIVIDE. NOTE THAT IN THIS CASE, THE MAJOR PART OF EACH COMPONENT IS ZERO.
002926,002260: 
002927,002261: 00,3044           54121        SMALL              TS       MPTEMP                                #  NEGATIVE OF PRE-DIVIDE SHIFT COUNT.
002928,002262: 
002929,002263: 00,3045           37653                           CAF      ZERO                                  #  SHIFT EACH COMPONENT LEFT 14.
002930,002264: 00,3046           56107                           XCH      VBUF       +1                         
002931,002265: 00,3047           56106                           XCH      VBUF                                  
002932,002266: 00,3050           56111                           XCH      VBUF       +3                         
002933,002267: 00,3051           56110                           XCH      VBUF       +2                         
002934,002268: 00,3052           56113                           XCH      VBUF       +5                         
002935,002269: 00,3053           56112                           XCH      VBUF       +4                         
002936,002270: 
002937,002271: 00,3054           40121                           CS       MPTEMP                                
002938,002272: 00,3055           50000                           INDEX    A                                     
002939,002273: 00,3056           37631                           CAF      BIT14                                 
002940,002274: 00,3057           00006                           EXTEND                                         
002941,002275: 00,3060           70140                           MP       MPAC                                  
002942,002276: 00,3061           12773                           TCF      SMALL2                                
002943,002277: 
002944,002278: 00,3062           00015        THIRTEEN           DEC      13         B-14                       
002945,002279: 00,3063           00016        FOURTEEN           DEC      14         B-14                       
002946,002280: 

Page 86

002948,002282:                                                                                                  #           THE FOLLOWING ROUTINE SETS UP THE CALL TO THE DIVIDE ROUTINES.
002949,002283: 
002950,002284: 00,3064           10140        UNITDV             CCS      MPAC                                  #  FORCE MPAC POSITIVE IF POSSIBLE, SETTING
002951,002285: 00,3065           13103                           TCF      UMPAC+                                #  DVSIGN ACCORDING TO THE SIGN OF MPAC
002952,002286: 00,3066           13070                           TCF      +2                                    #  SINCE THE DIVISOR IS ALWAYS POSITIVE
002953,002287: 00,3067           13075                           TCF      UMPAC-                                #  HERE.
002954,002288: 
002955,002289: 00,3070           10141                           CCS      MPAC       +1                         
002956,002290: 00,3071           13103                           TCF      UMPAC+                                
002957,002291: 00,3072           00002                           TC       Q                                     #  EXIT IMMEDIATELY ON ZERO.
002958,002292: 00,3073           13075                           TCF      UMPAC-                                
002959,002293: 00,3074           00002                           TC       Q                                     
002960,002294: 
002961,002295: 00,3075           47653        UMPAC-             CS       ZERO                                  #  IF NEGATIVE, SET -0 IN DVSIGN FOR FINAL
002962,002296: 00,3076           54122                           TS       DVSIGN                                #  COMPLEMENT.
002963,002297: 00,3077           00006                           EXTEND                                         
002964,002298: 00,3100           40141                           DCS      MPAC                                  #  PICK UP ABSOLUTE VALUE OF ARG AND JUMP.
002965,002299: 00,3101           50121                           INDEX    MPTEMP                                
002966,002300: 00,3102           12507                           TCF      MAXTEST                               
002967,002301: 
002968,002302: 00,3103           54122        UMPAC+             TS       DVSIGN                                #  SET DVSIGN FOR POSITIVE QUOTIENT.
002969,002303: 00,3104           52141                           DXCH     MPAC                                  
002970,002304: 00,3105           50121                           INDEX    MPTEMP                                
002971,002305: 00,3106           12507                           TCF      MAXTEST                               
002972,002306: 

Page 87

002974,002308:                                                                                                  #           MISCELLANEOUS UNARY OPERATIONS.
002975,002309: 
002976,002310: 00,3107           03217        DSQ                TC       DSQSUB                                #  SQUARE THE DP CONTENTS OF MPAC.
002977,002311: 00,3110           16014                           TCF      DANZIG                                
002978,002312: 
002979,002313: 00,3111           07115        ROUND              TC       ROUNDSUB                              #  ROUNDS MPAC TO DOUBLE PRECISION.
002980,002314: 00,3112           37653                           CAF      ZERO                                  #  FORCE DP MODE.
002981,002315: 00,3113           16013                           TCF      NEWMODE                               
002982,002316: 
002983,002317: 00,3114           10147        ABVALABS           CCS      MODE                                  #  ABVAL OR ABS INSTRUCTION.
002984,002318: 00,3115           13144                           TCF      ABS                                   #  DO ABS ON SCALAR.
002985,002319: 00,3116           13144                           TCF      ABS                                   
002986,002320: 
002987,002321: 00,3117           03236        ABVAL              TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
002988,002322: 00,3120           22147                           LXCH     MODE                                  #  MODE IS NOW DP (L ZERO AFTER DAS).
002989,002323: 
002990,002324: 00,3121           00006                           EXTEND                                         #  STORE SQUARE OF LENGTH IN WORK AREA.
002991,002325: 00,3122           30141                           DCA      MPAC                                  
002992,002326: 00,3123           50104                           INDEX    FIXLOC                                
002993,002327: 00,3124           52043                           DXCH     LVSQUARE                              
002994,002328: 
002995,002329: 00,3125           03262        SQRT               TC       SQRTSUB                               #  TAKE THE SQUARE ROOT OF MPAC.
002996,002330: 00,3126           10121                           CCS      MPTEMP                                #  RETURNED NORMALIZED SQUARE ROOT. SEE IF
002997,002331: 00,3127           13131                           TCF      +2                                    #  ANY UN-NORMALIZATION REQUIRED AND EXIT
002998,002332: 00,3130           16014                           TCF      DANZIG                                #  IF NOT.
002999,002333: 
003000,002334: 00,3131           62273                           AD       NEG12                                 #  A RIGHT SHIFT OF MORE THAN 13 COULD BE
003001,002335: 00,3132           00006                           EXTEND                                         #  REQUIRED IF INPUT WAS ZERO IN MPAC,+1.
003002,002336: 00,3133           63137                           BZMF     SQRTSHFT                              #  GOES HERE IN MOST CASES.
003003,002337: 00,3134           22007                           ZL                                             #  IF A LONG SHIFT IS REQUIRED, GO TO
003004,002338: 00,3135           22102                           LXCH     ADDRWD                                #  GENERAL RIGHT SHIFT ROUTINES.
003005,002339: 00,3136           12263                           TCF      GENSCR     +4                         #  ADDRWD WAS ZERO TO PREVENT ROUND.
003006,002340: 
003007,002341: 00,3137           50121        SQRTSHFT           INDEX    MPTEMP                                #  SELECT SHIFTING BIT AND EXIT THROUGH
003008,002342: 00,3140           37630                           CAF      BIT15                                 #  SHIFT ROUTINES.
003009,002343: 00,3141           54121                           TS       MPTEMP                                
003010,002344: 00,3142           37653                           CAF      ZERO                                  #  TO ZERO MPAC +2 IN THE PROCESS.
003011,002345: 00,3143           12017                           TCF      MPACSHR    +3                         
003012,002346: 
003013,002347: 00,3144           06710        ABS                TC       BRANCH                                #  TEST SIGN OF MPAC AND COMPLEMENT IF
003014,002348: 00,3145           16014                           TCF      DANZIG                                
003015,002349: 00,3146           16014                           TCF      DANZIG                                
003016,002350: 00,3147           17605                           TCF      COMP                                  
003017,002351: 

Page 88

003019,002353: 00,3150           47644        VDEF               CS       FOUR                                  #  VECTOR DEFINE - ESSENTIALLY TREATS
003020,002354: 00,3151           26152                           ADS      PUSHLOC                               #  SCALAR IN MPAC AS X COMPONENT, PUSHES UP
003021,002355: 00,3152           00006                           EXTEND                                         #  FOR Y AND THEN AGAIN FOR Z.
003022,002356: 00,3153           50000                           INDEX    A                                     
003023,002357: 00,3154           30003                           DCA      2                                     
003024,002358: 00,3155           52144                           DXCH     MPAC       +3                         
003025,002359: 00,3156           00006                           EXTEND                                         
003026,002360: 00,3157           50152                           INDEX    PUSHLOC                               
003027,002361: 00,3160           30001                           DCA      0                                     
003028,002362: 00,3161           52146                           DXCH     MPAC       +5                         
003029,002363: 00,3162           47646                           CS       ONE                                   #  MODE IS NOW VECTOR.
003030,002364: 00,3163           16013                           TCF      NEWMODE                               
003031,002365: 
003032,002366: 00,3164           03236        VSQ                TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003033,002367: 00,3165           37653                           CAF      ZERO                                  
003034,002368: 00,3166           16013                           TCF      NEWMODE                               #  MODE IS NOW DP.
003035,002369: 
003036,002370: 00,3167           00006        PUSH               EXTEND                                         #  PUSH DOWN MPAC LEAVING IT LOADED.
003037,002371: 00,3170           30141                           DCA      MPAC                                  
003038,002372: 00,3171           50152                           INDEX    PUSHLOC                               #  PUSH DOWN FIRST TWO REGISTERS IN EACH
003039,002373: 00,3172           52001                           DXCH     0                                     
003040,002374: 
003041,002375: 00,3173           50147                           INDEX    MODE                                  #  INCREMENT PUSHDOWN POINTER.
003042,002376: 00,3174           36164                           CAF      NO.WDS                                
003043,002377: 00,3175           26152                           ADS      PUSHLOC                               
003044,002378: 
003045,002379: 00,3176           10147                           CCS      MODE                                  
003046,002380: 00,3177           13212                           TCF      TPUSH                                 #  PUSH DOWN MPAC +2.
003047,002381: 00,3200           16014                           TCF      DANZIG                                #  DONE FOR DP.
003048,002382: 
003049,002383: 00,3201           00006                           EXTEND                                         #  ON VECTOR, PUSH DOWN Y AND Z COMPONENTS.
003050,002384: 00,3202           30144                           DCA      MPAC       +3                         
003051,002385: 00,3203           50152                           INDEX    PUSHLOC                               
003052,002386: 00,3204           51775                           DXCH     0          -4                         
003053,002387: 00,3205           00006                           EXTEND                                         
003054,002388: 00,3206           30146                           DCA      MPAC       +5                         
003055,002389: 00,3207           50152                           INDEX    PUSHLOC                               
003056,002390: 00,3210           51777                           DXCH     0          -2                         
003057,002391: 00,3211           16014                           TCF      DANZIG                                
003058,002392: 
003059,002393: 00,3212           30142        TPUSH              CA       MPAC       +2                         
003060,002394: 00,3213           16557                           TCF      ENDTPUSH   +2                         
003061,002395: 
003062,002396: 00,3214           50104        RVQ                INDEX    FIXLOC                                #  RVQ - RETURN IVA QPRET.
003063,002397: 00,3215           30052                           CA       QPRET                                 
003064,002398: 00,3216           16651                           TCF      GOTO       +1                         
003065,002399: 

Page 89

003067,002401:                                                                                                  #           THE FOLLOWING SUBROUTINES ARE USED IN SQUARING MPAC, IN BOTH THE SCALAR AND VECTOR SENSE. THEY ARE
003068,002402:                                                                                                  #  SPECIAL CASES OF DMPSUB AND DOTSUB, PUT IN TO SAVE SOME TIME.
003069,002403: 
003070,002404: 00,3217           30141        DSQSUB             CA       MPAC       +1                         #  SQUARES THE SCALAR CONTENTS OF MPAC.
003071,002405: 00,3220           00006                           EXTEND                                         
003072,002406: 00,3221           70000                           SQUARE                                         
003073,002407: 00,3222           54142                           TS       MPAC       +2                         
003074,002408: 00,3223           37653                           CAF      ZERO                                  #  FORM 2(CROSS TERM).
003075,002409: 00,3224           56141                           XCH      MPAC       +1                         
003076,002410: 00,3225           00006                           EXTEND                                         
003077,002411: 00,3226           70140                           MP       MPAC                                  
003078,002412: 00,3227           20001                           DDOUBL                                         #  AND MAYBE OVERFLOW.
003079,002413: 00,3230           20142                           DAS      MPAC       +1                         #  AND SET A TO NET OVERFLOW.
003080,002414: 00,3231           56140                           XCH      MPAC                                  
003081,002415: 00,3232           00006                           EXTEND                                         
003082,002416: 00,3233           70000                           SQUARE                                         
003083,002417: 00,3234           20141                           DAS      MPAC                                  
003084,002418: 00,3235           00002                           TC       Q                                     
003085,002419: 
003086,002420: 00,3236           00006        VSQSUB             EXTEND                                         #  DOTS THE VECTOR IN MPAC WITH ITSELF.
003087,002421: 00,3237           22123                           QXCH     DOTRET                                
003088,002422: 00,3240           03217                           TC       DSQSUB                                #  SQUARE THE X COMPONENT.
003089,002423: 00,3241           52144                           DXCH     MPAC       +3                         
003090,002424: 00,3242           52141                           DXCH     MPAC                                  
003091,002425: 00,3243           52115                           DXCH     BUF                                   #  SO WE CAN END IN DOTSUB.
003092,002426: 00,3244           30142                           CA       MPAC       +2                         
003093,002427: 00,3245           54116                           TS       BUF        +2                         
003094,002428: 
003095,002429: 00,3246           03217                           TC       DSQSUB                                #  SQUARE Y COMPONENT.
003096,002430: 00,3247           52142                           DXCH     MPAC       +1                         
003097,002431: 00,3250           20116                           DAS      BUF        +1                         
003098,002432: 00,3251           60140                           AD       MPAC                                  
003099,002433: 00,3252           60114                           AD       BUF                                   
003100,002434: 00,3253           54114                           TS       BUF                                   
003101,002435: 00,3254           13256                           TCF      +2                                    
003102,002436: 00,3255           54105                           TS       OVFIND                                #  IF OVERFLOW.
003103,002437: 
003104,002438: 00,3256           52146                           DXCH     MPAC       +5                         
003105,002439: 00,3257           52141                           DXCH     MPAC                                  
003106,002440: 00,3260           03217                           TC       DSQSUB                                #  SQUARE Z COMPONENT.
003107,002441: 00,3261           17163                           TCF      ENDDOT                                #  END AS IN DOTSUB.
003108,002442: 

Page 90

003110,002444:                                                                                                  #           DOUBLE PRECISION SQUARE ROOT ROUTINE. TAKE THE SQUARE ROOT OF THE TRIPLE PRECISION (MPAC +2 USED ONLY
003111,002445:                                                                                                  #  IN NORMALIZATION) CONTENTS OF MPAC AND LEAVE THE NORMALIZED RESULT IN MPAC (C(MPAC) GREATER THAN OR EQUAL TO
003112,002446:                                                                                                  #  .5). THE RIGHT SHIFT COUNT (TO UNNORMALIZE) IS LEFT IN MPTEMP.
003113,002447: 
003114,002448: 
003115,002449: 
003116,002450: 00,3262           37653        SQRTSUB            CAF      ZERO                                  #  START BY ZEROING RIGHT SHIFT COUNT.
003117,002451: 00,3263           54121                           TS       MPTEMP                                
003118,002452: 
003119,002453: 00,3264           10140                           CCS      MPAC                                  #  CHECK FOR POSITIVE ARGUMENT, SHIFTING
003120,002454: 00,3265           13322                           TCF      SMPAC+                                #  FIRST SIGNIFICANT MPAC REGISTER INTO
003121,002455: 00,3266           13270                           TCF      +2                                    #  MPAC ITSELF.
003122,002456: 00,3267           13312                           TCF      SQRTNEG                               #  SEE IF MAG OF ARGUMENT LESS THAN 10(-4).
003123,002457: 
003124,002458: 00,3270           56142                           XCH      MPAC       +2                         #  MPAC IS ZERO - SHIFT LEFT 14.
003125,002459: 00,3271           56141                           XCH      MPAC       +1                         
003126,002460: 00,3272           54140                           TS       MPAC                                  
003127,002461: 00,3273           37652                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
003128,002462: 00,3274           54121                           TS       MPTEMP                                
003129,002463: 
003130,002464: 00,3275           10140                           CCS      MPAC                                  #  SEE IF MPAC NOW PNZ.
003131,002465: 00,3276           13322                           TCF      SMPAC+                                
003132,002466: 00,3277           13301                           TCF      +2                                    
003133,002467: 00,3300           13315                           TCF      ZEROANS                               #  NEGATIVE BUT LESS THAN 10(-4) IN MAG.
003134,002468: 
003135,002469: 00,3301           56141                           XCH      MPAC       +1                         #  ZERO - SHIFT LEFT 14 AGAIN.
003136,002470: 00,3302           54140                           TS       MPAC                                  
003137,002471: 00,3303           37652                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
003138,002472: 00,3304           26121                           ADS      MPTEMP                                
003139,002473: 
003140,002474: 00,3305           10140                           CCS      MPAC                                  
003141,002475: 00,3306           13322                           TCF      SMPAC+                                
003142,002476: 00,3307           00002                           TC       Q                                     #  SQRT(0) = 0.
003143,002477: 00,3310           13315                           TCF      ZEROANS                               
003144,002478: 00,3311           00002                           TC       Q                                     
003145,002479: 
003146,002480: 
003147,002481: 
003148,002482: 00,3312           10000        SQRTNEG            CCS      A                                     #  ARGUMENT IS NEGATIVE, BUT SEE IF SIGN-
003149,002483: 00,3313           13321                           TCF      SQRTABRT                              #  CORRECTED ARGUMENT IS LESS THAN 10(-4)
003150,002484: 
003151,002485: 00,3314           10141                           CCS      MPAC       +1                         #  IN MAGNITUDE. IF SO, CALL ANSWER ZERO.
003152,002486: 00,3315           37653        ZEROANS            CAF      ZERO                                  #  FORCE ANSWER TO ZERO HERE.
003153,002487: 00,3316           13365                           TCF      FIXROOT                               
003154,002488: 00,3317           13321                           TCF      SQRTABRT                              
003155,002489: 00,3320           13365                           TCF      FIXROOT                               
003156,002490: 
003157,002491: 00,3321           03321        SQRTABRT           TC       -0                                    
003158,002492: 

Page 91

003160,002494: 00,3322           62410        SMPAC+             AD       -1/2+2                                #  SEE IF ARGUMENT GREATER THAN OR EQUAL TO
003161,002495: 00,3323           00006                           EXTEND                                         #  .5.
003162,002496: 00,3324           63370                           BZMF     SRTEST                                #  IF SO, SEE IF LESS THAN .25.
003163,002497: 
003164,002498: 00,3325           52141                           DXCH     MPAC                                  #  WE WILL TAKE THE SQUARE ROOT OF MPAC/2.
003165,002499: 00,3326           22021                           LXCH     SR                                    #  SHIFT RIGHT 1 AND GO TO THE SQRT ROUTINE
003166,002500: 00,3327           00006                           EXTEND                                         
003167,002501: 00,3330           77631                           MP       HALF                                  
003168,002502: 00,3331           52141                           DXCH     MPAC                                  
003169,002503: 00,3332           56021                           XCH      SR                                    
003170,002504: 00,3333           26141                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
003171,002505: 
003172,002506: 00,3334           32274        ARGHI              CAF      SLOPEHI                               #  ARGUMENT BETWEEN .25 AND .5. GET A
003173,002507: 00,3335           00006                           EXTEND                                         #  LINEAR APPROXIMATION FOR THIS RANGE.
003174,002508: 00,3336           70140                           MP       MPAC                                  
003175,002509: 00,3337           62510                           AD       BIASHI                                #  X0/2 = (MPAC/2)(SLOPEHI) + BIASHI/2.
003176,002510: 
003177,002511: 00,3340           54114                 +4        TS       BUF                                   #  X0/2 (ARGLO ENTERS HERE).
003178,002512: 00,3341           00006                           EXTEND                                         
003179,002513: 00,3342           10114                           DV       BUF                                   #  (MPAC/2)/(X0/2)
003180,002514: 00,3343           00006                           EXTEND                                         
003181,002515: 00,3344           77631                           MP       HALF                                  
003182,002516: 00,3345           26114                           ADS      BUF                                   #  X1 = X0/2 + .5(MPAC/2)/(X0/2).
003183,002517: 
003184,002518: 00,3346           00006                           EXTEND                                         
003185,002519: 00,3347           77631                           MP       HALF                                  #  FORM UP X1/2.
003186,002520: 00,3350           52141                           DXCH     MPAC                                  #  SAVE AND BRING OUT ARGUMENT.
003187,002521: 00,3351           00006                           EXTEND                                         #  TAKE DP QUOTIENT WITH X1.
003188,002522: 00,3352           10114                           DV       BUF                                   
003189,002523: 00,3353           54115                           TS       BUF        +1                         #  SAVE MAJOR PART OF QUOTIENT.
003190,002524: 00,3354           37653                           CAF      ZERO                                  #  FORM MINOR PART OF QUOTIENT USING
003191,002525: 00,3355           56001                           XCH      L                                     #  (REMAINDER,0).
003192,002526: 00,3356           00006                           EXTEND                                         
003193,002527: 00,3357           10114                           DV       BUF                                   
003194,002528: 00,3360           54001                           TS       L                                     #  IN PREPARATION FOR DAS.
003195,002529: 00,3361           30115                           CA       BUF        +1                         
003196,002530: 00,3362           20141                           DAS      MPAC                                  #  X2 = X1/2 + (MPAC/2)X1
003197,002531: 
003198,002532: 00,3363           10000                           CCS      A                                     #  OVERFLOWS IF ARGUMENT WAS NEAR POSMAX.
003199,002533: 00,3364           37626                           CAF      POSMAX                                
003200,002534: 00,3365           54140        FIXROOT            TS       MPAC                                  
003201,002535: 00,3366           54141                           TS       MPAC       +1                         
003202,002536: 00,3367           00002                           TC       Q                                     #  RETURN TO CALLER TO UNNORMALIZE, ETC.
003203,002537: 

Page 92

003205,002539: 00,3370           67632        SRTEST             AD       QUARTER                               #  ARGUMENT WAS LESS THAN .5, SEE IF LESS
003206,002540: 00,3371           00006                           EXTEND                                         #  THAN .25.
003207,002541: 00,3372           63414                           BZMF     SQRTNORM                              #  IF SO, BEGIN NORMALIZATION.
003208,002542: 
003209,002543: 00,3373           52141                           DXCH     MPAC                                  #  IF BETWEEN .5 AND .25, SHIFT RIGHT 1 AND
003210,002544: 00,3374           22021                           LXCH     SR                                    #  START AT ARGLO.
003211,002545: 00,3375           00006                           EXTEND                                         
003212,002546: 00,3376           77631                           MP       HALF                                  
003213,002547: 00,3377           52141                           DXCH     MPAC                                  
003214,002548: 00,3400           56021                           XCH      SR                                    
003215,002549: 00,3401           26141                           ADS      MPAC       +1                         #  NO OVERFLOW.
003216,002550: 
003217,002551: 00,3402           32740        ARGLO              CAF      SLOPELO                               #  (NORMALIZED) ARGUMENT BETWEEN .125 AND
003218,002552: 00,3403           00006                           EXTEND                                         #  .25
003219,002553: 00,3404           70140                           MP       MPAC                                  
003220,002554: 00,3405           62250                           AD       BIASLO                                
003221,002555: 00,3406           13340                           TCF      ARGHI      +4                         #  BEGIN SQUARE ROOT.
003222,002556: 
003223,002557: 00,3407           00006        SQRTNM2            EXTEND                                         #  SHIFT LEFT 2 AND INCREMENT RIGHT SHIFT
003224,002558: 00,3410           30142                           DCA      MPAC       +1                         #  COUNT (FOR TERMINAL UNNORMALIZATION).
003225,002559: 00,3411           20142                           DAS      MPAC       +1                         
003226,002560: 00,3412           60140                           AD       MPAC                                  
003227,002561: 00,3413           26140                           ADS      MPAC                                  #  (NO OVERFLOW).
003228,002562: 
003229,002563: 00,3414           24121        SQRTNORM           INCR     MPTEMP                                #  FIRST TIME THROUGH, JUST SHIFT LEFT 1
003230,002564: 00,3415           00006                           EXTEND                                         #  (PUTS IN EFFECTIVE RIGHT SHIFT SINCE
003231,002565: 00,3416           30142                           DCA      MPAC       +1                         #  WE WANT MPAC/2).
003232,002566: 00,3417           20142                           DAS      MPAC       +1                         
003233,002567: 00,3420           60140                           AD       MPAC                                  
003234,002568: 00,3421           26140                           ADS      MPAC                                  #  (AGAIN NO OVERFLOW).
003235,002569: 00,3422           60000                           DOUBLE                                         
003236,002570: 00,3423           54022                           TS       CYL                                   
003237,002571: 
003238,002572: 00,3424           10022        NORMTEST           CCS      CYL                                   #  SEE IF ARGUMENT NOW NORMALIZED AT
003239,002573: 00,3425           10022                           CCS      CYL                                   #  GREATER THAN .125.
003240,002574: 00,3426           13407                           TCF      SQRTNM2                               #  NO - SHIFT LEFT 2 MORE AND TRY AGAIN.
003241,002575: 00,3427           13334                           TCF      ARGHI                                 #  YES - NOW BETWEEN .5 AND .25.
003242,002576: 00,3430           13402                           TCF      ARGLO                                 #  ARGUMENT NOW BETWEEN .25 AND .125.
003243,002577: 

Page 93

003245,002579:                                                                                                  #  TRIGONOMETRIC FUNCTION PACKAGE.
003246,002580: 
003247,002581:                                                                                                  #           THE FOLLOWING TRIGONOMETRIC FUNCTIONS ARE AVAILABLE AS INTERPRETIVE OPERATIONS:
003248,002582: 
003249,002583:                                                                                                  #           1.  SIN                COMPUTES (1/2)SINE(2 PI MPAC).
003250,002584:                                                                                                  #           2.  COS                COMPUTES (1/2)COSINE(2 PI MPAC).
003251,002585: 
003252,002586:                                                                                                  #           3.  ASIN               COMPUTES (1/2PI)ARCSINE(2 MPAC).
003253,002587:                                                                                                  #           4.  ACOS               COMPUTES (1/2PI)ARCCOSINE(2 MPAC).
003254,002588: 
003255,002589:                                                                                                  #  SIN-ASIN AND COS-ACOS ARE MUTUALLY INVERSE, IE SIN(ASIN(X)) = X.
003256,002590: 
003257,002591: 
003258,002592: 
003259,002593: 00,3431           06710        COSINE             TC       BRANCH                                #  FINDS COSINE USING THE IDENTITY
003260,002594: 00,3432           13435                           TCF      +3                                    #  COS(X) = SIN(PI/2 - ABS(X)).
003261,002595: 00,3433           13440                           TCF      PRESINE                               
003262,002596: 00,3434           13440                           TCF      PRESINE                               
003263,002597: 
003264,002598: 00,3435           00006                 +3        EXTEND                                         
003265,002599: 00,3436           40141                           DCS      MPAC                                  
003266,002600: 00,3437           52141                           DXCH     MPAC                                  
003267,002601: 
003268,002602: 00,3440           37632        PRESINE            CAF      QUARTER                               #  PI/2 SCALED.
003269,002603: 00,3441           26140                           ADS      MPAC                                  
003270,002604: 
003271,002605: 
003272,002606: 
003273,002607: 00,3442           52141        SINE               DXCH     MPAC                                  #  DOUBLE ARGUMENT.
003274,002608: 00,3443           20001                           DDOUBL                                         
003275,002609: 00,3444           54000                           OVSK                                           #  SEE IF OVERFLOW PRESENT.
003276,002610: 00,3445           13450                           TCF      +3                                    #  IF NOT, ARGUMENT OK AS IS.
003277,002611: 
003278,002612: 00,3446           00006                           EXTEND                                         #  IF SO, WE LOST (OR GAINED) PI, SO
003279,002613: 00,3447           40001                           DCOM                                           #  COMPLEMENT MPAC USING THE IDENTITY
003280,002614:                                                                                                  #  SIN(X-(+)PI) = SIN(-X).
003281,002615: 00,3450           52141                 +3        DXCH     MPAC                                  
003282,002616: 00,3451           30140                           CA       MPAC                                  #  SEE IF ARGUMENT GREATER THAN .5 IN
003283,002617: 00,3452           60000                           DOUBLE                                         #  MAGNITUDE. IF SO, REDUCE IT TO LESS THAN
003284,002618: 00,3453           54001                           TS       L                                     #  .5 (+-PI/2 SCALED) AS FOLLOWS:
003285,002619: 00,3454           13465                           TCF      SN1                                   
003286,002620: 
003287,002621: 00,3455           50000                           INDEX    A                                     #  IF POSITIVE, FORM PI - X, IF NEGATIVE
003288,002622: 00,3456           37630                           CAF      NEG1/2     +1                         #  USE -PI - X.
003289,002623: 00,3457           60000                           DOUBLE                                         
003290,002624: 00,3460           00006                           EXTEND                                         
003291,002625: 00,3461           60140                           SU       MPAC                                  #  GUARANTEED NO OVERFLOW.
003292,002626: 00,3462           54140                           TS       MPAC                                  
003293,002627: 00,3463           40141                           CS       MPAC       +1                         
003294,002628: 00,3464           54141                           TS       MPAC       +1                         
003295,002629: 

Page 94

003297,002631: 00,3465           00006        SN1                EXTEND                                         #  SET UP TO EVALUATE HASTINGS POLYNOMIAL
003298,002632: 00,3466           30141                           DCA      MPAC                                  
003299,002633: 00,3467           52120                           DXCH     BUF2                                  
003300,002634: 00,3470           03217                           TC       DSQSUB                                #  SQUARE MPAC.
003301,002635: 
003302,002636: 00,3471           07173                           TC       POLY                                  #  EVALUATE FOURTH ORDER POLYNOMIAL.
003303,002637: 00,3472           00003                           DEC      3          B-14                       
003304,002638: 00,3473           14441 37325                     2DEC     +.3926990796                            
003305,002639: 
003306,002640: 00,3475           53250 60764                     2DEC     -.6459637111                            
003307,002641: 
003308,002642: 00,3477           12146 21276                     2DEC     +.318758717                            
003309,002643: 
003310,002644: 00,3501           75466 71471                     2DEC     -.074780249                            
003311,002645: 
003312,002646: 00,3503           00236 32757                     2DEC     +.009694988                            
003313,002647: 
003314,002648: 00,3505           32434                           CAF      LBUF2                                 #  MULTIPLY BY ARGUMENT AND SHIFT LEFT 2.
003315,002649: 00,3506           07065                           TC       DMPSUB     -1                         
003316,002650: 
003317,002651: 00,3507           00006                           EXTEND                                         
003318,002652: 00,3510           30142                           DCA      MPAC       +1                         
003319,002653: 00,3511           20142                           DAS      MPAC       +1                         
003320,002654: 00,3512           60140                           AD       MPAC                                  
003321,002655: 00,3513           26140                           ADS      MPAC                                  #  NEITHER SHIFT OVERFLOWS.
003322,002656: 00,3514           00006                           EXTEND                                         
003323,002657: 00,3515           30142                           DCA      MPAC       +1                         
003324,002658: 00,3516           20142                           DAS      MPAC       +1                         
003325,002659: 00,3517           60140                           AD       MPAC                                  
003326,002660: 00,3520           26140                           ADS      MPAC                                  
003327,002661: 00,3521           16014                           TCF      DANZIG                                
003328,002662: 

Page 95

003330,002664:                                                                                                  #           ARCSIN/ARCCOS ROUTINE.
003331,002665: 
003332,002666: 00,3522           33543        ARCSIN             CAF      LASINEX                               #  COMPUTE ARCSIN BY USING THE IDENTITY
003333,002667: 00,3523           13525                           TCF      +2                                    #  ARCSIN(X) = PI/2 - ARCCOS(X).
003334,002668: 
003335,002669: 00,3524           33625        ARCCOS             CAF      LDANZIG                               #  (EXITS IMMEDIATELY).
003336,002670: 00,3525           54122                           TS       ESCAPE                                
003337,002671: 00,3526           06710                           TC       BRANCH                                #  TEST SIGN OF INPUT.
003338,002672: 00,3527           13537                           TCF      ACOSST                                #  START IMMEDIATELY IF POSITIVE.
003339,002673: 00,3530           13640                           TCF      ACOSZERO                              #  ARCCOS(0) = PI/2 = .25.
003340,002674: 00,3531           00006                           EXTEND                                         #  IF NEGATIVE, USE THE IDENTITY
003341,002675: 00,3532           40141                           DCS      MPAC                                  #  ARCCOS(X) = PI - ARCCOS(-X), FORCING
003342,002676: 00,3533           52141                           DXCH     MPAC                                  #  ARGUMENT POSITIVE.
003343,002677: 00,3534           32247                           CAF      TCSUBTR                               #  SET EXIT  TO DO ABOVE BEFORE
003344,002678: 00,3535           56122                           XCH      ESCAPE                                #  ARCSIN/ARCCOS CONSIDERATIONS.
003345,002679: 00,3536           54123                           TS       ESCAPE2                               
003346,002680: 
003347,002681: 00,3537           47631        ACOSST             CS       HALF                                  #  TEST MAGNITUDE OF INPUT.
003348,002682: 00,3540           60140                           AD       MPAC                                  
003349,002683: 00,3541           10000                           CCS      A                                     
003350,002684: 00,3542           13633                           TCF      ACOSOVF                               #  THIS IS PROBABLY AN OVERFLOW CASE.
003351,002685: 
003352,002686: 00,3543           13621        LASINEX            TCF      ASINEX                                
003353,002687: 
003354,002688: 00,3544           13554                           TCF      ACOSST2                               #  NO OVERFLOW - PROCEED.
003355,002689: 
003356,002690: 00,3545           10141                           CCS      MPAC       +1                         #  IF MAJOR PART IS .5, CALL ANSWER 0
003357,002691: 00,3546           37653                           CAF      ZERO                                  #  UNLESS MINOR PART NEGATIVE.
003358,002692: 00,3547           13551                           TCF      ACOS=0                                
003359,002693: 
003360,002694: 00,3550           13554                           TCF      ACOSST2                               
003361,002695: 
003362,002696: 00,3551           54141        ACOS=0             TS       MPAC       +1                         
003363,002697: 00,3552           54140                           TS       MPAC                                  
003364,002698: 00,3553           00122                           TC       ESCAPE                                
003365,002699: 
003366,002700: 00,3554           00006        ACOSST2            EXTEND                                         #  NOW THAT ARGUMENT IS IN PROPER RANGE,
003367,002701: 00,3555           40141                           DCS      MPAC                                  #  BEGIN COMPUTATION. USE HASTINGS
003368,002702: 00,3556           67631                           AD       HALF                                  #  APPROXIMATION ARCCOS(X) = SQRT(1-X)P(X)
003369,002703: 00,3557           52141                           DXCH     MPAC                                  #  IN A SCALED VERSION WHERE P(X) IS A
003370,002704: 00,3560           52120                           DXCH     BUF2                                  #  SEVENTH ORDER POLYNOMIAL.
003371,002705: 
003372,002706: 00,3561           03262                           TC       SQRTSUB                               #  RETURNS WITH NORMALIZED SQUARE ROOT.
003373,002707: 
003374,002708: 00,3562           10121                           CCS      MPTEMP                                #  SEE IF UN-NORMALIZATION REQUIRED.
003375,002709: 00,3563           13626                           TCF      ACOSSHR                               #  IF SO.
003376,002710: 

Page 96

003378,002712: 00,3564           52141        ACOS3              DXCH     MPAC                                  #  SET UP FOR POLYNOMIAL EVALUATION.
003379,002713: 00,3565           52120                           DXCH     BUF2                                  
003380,002714: 00,3566           52141                           DXCH     MPAC                                  
003381,002715: 
003382,002716: 00,3567           07173                           TC       POLY                                  
003383,002717: 00,3570           00006                           DEC      6          B-14                       
003384,002718: 00,3571           13240 23630                     2DEC     +.353553385                            #  COEFFICIENTS ARE C 2(+I)/PISQRT(2) WHERE
003385,002719: 
003386,002720: 00,3573           74721 47775                     2DEC*    -.0483017006 B+1*                       #                    I
003387,002721: 
003388,002722: 00,3575           02440 20237                     2DEC*    +.0200273085 B+2*                       #       WHERE C STANDS FOR ORIGINAL COEFFS.
003389,002723: 
003390,002724: 00,3577           75067 70742                     2DEC*    -.0112931863 B+3*                       
003391,002725: 
003392,002726: 00,3601           03436 26756                     2DEC*    +.00695311612 B+4*                       
003393,002727: 
003394,002728: 00,3603           74037 57640                     2DEC*    -.00384617957 B+5*                       
003395,002729: 
003396,002730: 00,3605           03046 07143                     2DEC*    +.001501297736 B+6*                       
003397,002731: 
003398,002732: 00,3607           76654 42244                     2DEC*    -.000284160334 B+7*                       
003399,002733: 
003400,002734: 00,3611           32434                           CAF      LBUF2                                 #  DO FINAL MULTIPLY AND GO TO ANY
003401,002735: 00,3612           07065                           TC       DMPSUB     -1                         #  EPILOGUE SEQUENCES.
003402,002736: 00,3613           00122                           TC       ESCAPE                                
003403,002737: 
003404,002738: 00,3614           00006        SUBTR              EXTEND                                         #  EPILOGUE FOR NEGATIVE INPUTS TO ARCCOS.
003405,002739: 00,3615           40141                           DCS      MPAC                                  
003406,002740: 00,3616           67631                           AD       HALF                                  #  FORMS PI - ARCCOS(-X) = ARCCOS(X).
003407,002741: 00,3617           52141                           DXCH     MPAC                                  
003408,002742: 00,3620           00123                           TC       ESCAPE2                               #  GO TO POSSIBLE ARCSIN EPILOGUE.
003409,002743: 
003410,002744: 00,3621           00006        ASINEX             EXTEND                                         
003411,002745: 00,3622           40141                           DCS      MPAC                                  #  ARCSIN EPILOGUE - GET ARCSIN(X)
003412,002746: 00,3623           67632                           AD       QUARTER                               #  = PI/2 - ARCCOS(X).
003413,002747: 00,3624           52141                           DXCH     MPAC                                  
003414,002748: 00,3625           16014        LDANZIG            TCF      DANZIG                                
003415,002749: 

Page 97

003417,002751: 00,3626           50000        ACOSSHR            INDEX    A                                     #  THE SHIFT RIGHT IS LESS THAN 14 SINCE
003418,002752: 00,3627           37631                           CAF      BIT14                                 #  THE INPUT WAS NON-ZERO DP.
003419,002753: 00,3630           54121                           TS       MPTEMP                                
003420,002754: 00,3631           02054                           TC       VSHRRND                               #  DP SHIFT RIGHT AND ROUND.
003421,002755: 00,3632           13564                           TCF      ACOS3                                 #  PROCEED.
003422,002756: 
003423,002757: 00,3633           10000        ACOSOVF            CCS      A                                     #  IF MAJOR PART WAS ONLY 1 MORE THAN .5,
003424,002758: 00,3634           13636                           TCF      +2                                    #  CALL ANSWER 0.
003425,002759: 00,3635           13551                           TCF      ACOS=0                                
003426,002760: 00,3636           13551                           TCF      ACOS=0                                
003427,002761: 
003428,002762: 00,3637           03637        ACOSABRT           TC       -0                                    
003429,002763: 
003430,002764: 00,3640           37632        ACOSZERO           CAF      QUARTER                               #  ACOS(0) = PI/2.
003431,002765: 00,3641           13552                           TCF      ACOS=0     +1                         #  SET MPAC AND EXIT VIA ESCAPE.
003432,002766: 

Page 98

003434,002768:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE AVAILABLE FOR SETTING, MODIFYING, AND BRANCHING ON INDEX REGISTERS:
003435,002769: 
003436,002770:                                                                                                  #           1.  AXT                ADDRESS TO INDEX TRUE.
003437,002771:                                                                                                  #           1.  AXC                ADDRESS TO INDEX COMPLEMENTED.
003438,002772:                                                                                                  #           3.  LXA                LOAD INDEX FROM ERASABLE.
003439,002773:                                                                                                  #           4.  LXC                LOAD INDEX COMPLEMENTED FROM ERASABLE.
003440,002774:                                                                                                  #           5.  SXA                STORE INDEX IN ERASABLE.
003441,002775:                                                                                                  #           6.  XCHX               EXCHANGE INDEX REIGSTER WITH ERASABLE.
003442,002776: 
003443,002777:                                                                                                  #           7.  INCR               INCREMENT INDEX REGISTER.
003444,002778:                                                                                                  #           8.  XAD                ERASABLE ADD TO INDEX REGISTER.
003445,002779:                                                                                                  #           9.  XSU                ERASABLE SUBTRACT FROM INDEX REGISTER.
003446,002780: 
003447,002781:                                                                                                  #          10.  TIX                BRANCH ON INDEX REGISTER AND DECREMENT.
003448,002782: 
003449,002783: 
003450,002784: 
003451,002785: 01,2000                                           SETLOC   12000                                 #  SUFFIX CLASS 01 IS IN BANK 1.
003452,002786: 
003453,002787: 01,2000           02061        AXT                TC       TAGSUB                                #  SELECT APPROPRIATE INDEX REGISTER.
003454,002788: 01,2001           30103                           CA       POLISH                                
003455,002789: 01,2002           50114        XSTORE             INDEX    INDEXLOC                              #  CONTAINS C(FIXLOC) OR C(FIXLOC)+1.
003456,002790: 01,2003           54046                           TS       X1                                    
003457,002791: 01,2004           16014                           TCF      DANZIG                                
003458,002792: 
003459,002793: 01,2005           02061        AXC                TC       TAGSUB                                
003460,002794: 01,2006           40103                           CS       POLISH                                
003461,002795: 01,2007           02002                           TC       XSTORE                                
003462,002796: 
003463,002797: 01,2010           02061        LXA                TC       TAGSUB                                #  LOAD INDEX FROM ERASABLE.
003464,002798: 01,2011           50102                           INDEX    ADDRWD                                
003465,002799: 01,2012           30000                           CA       0                                     
003466,002800: 01,2013           12002                           TCF      XSTORE                                
003467,002801: 
003468,002802: 01,2014           02061        LXC                TC       TAGSUB                                #  LOAD INDEX FROM ERASABLE COMPLEMENTED.
003469,002803: 01,2015           50102                           INDEX    ADDRWD                                
003470,002804: 01,2016           40000                           CS       0                                     
003471,002805: 01,2017           12002                           TCF      XSTORE                                
003472,002806: 
003473,002807: 01,2020           02061        SXA                TC       TAGSUB                                #  STORE INDEX IN ERASABLE.
003474,002808: 01,2021           50114                           INDEX    INDEXLOC                              
003475,002809: 01,2022           30046                           CA       X1                                    
003476,002810: 01,2023           16626                           TCF      STORE1                                #  (STORE SINGLE PRECISION BEFORE EXIT).
003477,002811: 
003478,002812: 01,2024           02061        XCHX               TC       TAGSUB                                #  EXCHANGE INDEX REGISTER WITH ERASABLE.
003479,002813: 01,2025           50102                           INDEX    ADDRWD                                
003480,002814: 01,2026           30000                           CA       0                                     
003481,002815: 01,2027           50114                           INDEX    INDEXLOC                              
003482,002816: 01,2030           56046                           XCH      X1                                    
003483,002817: 01,2031           16626                           TCF      STORE1                                
003484,002818: 

Page 99

003486,002820: 01,2032           02061        XAD                TC       TAGSUB                                #  ERASABLE ADD TO INDEX.
003487,002821: 01,2033           50102                           INDEX    ADDRWD                                
003488,002822: 01,2034           30000                           CA       0                                     
003489,002823: 01,2035           50114        XAD2               INDEX    INDEXLOC                              
003490,002824: 01,2036           26046                           ADS      X1                                    #  IGNORING OVERFLOWS.
003491,002825: 01,2037           16014                           TCF      DANZIG                                
003492,002826: 
003493,002827: 01,2040           02061        INCR               TC       TAGSUB                                #  INCREMENT INDEX REGISTER.
003494,002828: 01,2041           30103                           CA       POLISH                                
003495,002829: 01,2042           12035                           TCF      XAD2                                  
003496,002830: 
003497,002831: 01,2043           02061        XSU                TC       TAGSUB                                #  ERASABLE SUBTRACT FROM INDEX.
003498,002832: 01,2044           50102                           INDEX    ADDRWD                                
003499,002833: 01,2045           40000                           CS       0                                     
003500,002834: 01,2046           12035                           TCF      XAD2                                  
003501,002835: 
003502,002836: 
003503,002837: 
003504,002838: 01,2047           02061        TIX                TC       TAGSUB                                #  BRANCH AND DECREMENT ON INDEX.
003505,002839: 01,2050           50114                           INDEX    INDEXLOC                              
003506,002840: 01,2051           40046                           CS       X1                                    
003507,002841: 01,2052           50114                           INDEX    INDEXLOC                              
003508,002842: 01,2053           60046                           AD       X1                                    
003509,002843: 01,2054           00006                           EXTEND                                         #  NO OPERATION IF DECREMENTED INDEX IS
003510,002844: 01,2055           66014                           BZMF     DANZIG                                #  NEGATIVE OR ZERO.
003511,002845: 
003512,002846: 01,2056           50114        DOTIXBR            INDEX    INDEXLOC                              
003513,002847: 01,2057           56046                           XCH      X1                                    #  IGNORING OVERFLOWS.
003514,002848: 
003515,002849: 01,2060           16650                           TCF      GOTO                                  #  DO THE BRANCH USING THE CADR IN POLISH.
003516,002850: 
003517,002851: 
003518,002852: 
003519,002853:                                                                                                  #           SUBROUTINE WHICH SETS THE ADDRESS OF THE SPECIFIED INDEX IN INDEXLOC. (ACTUALLY, THE ADDRESS -38D.)
003520,002854: 
003521,002855: 01,2061           30104        TAGSUB             CA       FIXLOC                                
003522,002856: 01,2062           54114                           TS       INDEXLOC                              
003523,002857: 
003524,002858: 01,2063           10020                           CCS      CYR                                   #  BIT 15 SPECIFIES INDEX.
003525,002859: 01,2064           24114                           INCR     INDEXLOC                              #  0 MEANS USE X2.
003526,002860: 01,2065           00002                           TC       Q                                     
003527,002861: 01,2066           00002                           TC       Q                                     #  1 FOR X1.
003528,002862: 

Page 100

003530,002864:                                                                                                  #           MISCELLANEOUS OPERATION CODES WITH DIRECT ADDRESSES. INCLUDED HERE ARE:
003531,002865: 
003532,002866:                                                                                                  #           1.  ITA                STORE QPRET (RETURN ADDRESS) IN ERASABLE.
003533,002867:                                                                                                  #           2.  CALL               CALL A SUBROUTINE, LEAVING RETURN IN QPRET.
003534,002868:                                                                                                  #           3.  RTB                RETURN TO BASIC LANGUAGE AT THE GIVEN ADDRESS.
003535,002869:                                                                                                  #           4.  BHIZ               BRANCH IF THE HIGH ORDER OF MPAC IS ZERO (SINGLE PRECISION).
003536,002870:                                                                                                  #           5.  BOV                BRANCH ON OVERFLOW.
003537,002871:                                                                                                  #           6.  GOTO               SIMPLE SEQUENCE CHANGE.
003538,002872: 
003539,002873: 01,2067           10020        RTB/BHIZ           CCS      CYR                                   
003540,002874: 01,2070           30103        RTB                CA       POLISH                                
003541,002875: 01,2071           14105                           TCF      BANKJUMP                              #  CALL BASIC ROUTINE.
003542,002876: 
003543,002877: 01,2072           10140        BHIZ               CCS      MPAC                                  
003544,002878: 01,2073           16014                           TCF      DANZIG                                
003545,002879: 01,2074           16650                           TCF      GOTO                                  
003546,002880: 01,2075           16014                           TCF      DANZIG                                
003547,002881: 01,2076           16650                           TCF      GOTO                                  
003548,002882: 
003549,002883: 01,2077           10105        BOV(B)             CCS      OVFIND                                #  BRANCH ON OVERFLOW TO BASIC OR INTERP.
003550,002884: 01,2100           12102                           TCF      +2                                    
003551,002885: 01,2101           16014                           TCF      DANZIG                                
003552,002886: 01,2102           54105                           TS       OVFIND                                
003553,002887: 01,2103           10020                           CCS      CYR                                   
003554,002888: 01,2104           12070                           TCF      RTB                                   #  IF BASIC.
003555,002889: 01,2105           00360        B5TOB8             OCT      360                                   
003556,002890: 01,2106           16650                           TCF      GOTO                                  
003557,002891: 

Page 101

003559,002893: 01,2107           10020        BZE/GOTO           CCS      CYR                                   #  SEE WHICH OP-CODE IS DESIRED.
003560,002894: 01,2110           06710                           TC       BRANCH                                #  DO BZE.
003561,002895: 01,2111           16014                           TCF      DANZIG                                
003562,002896: 01,2112           16650                           TCF      GOTO                                  #  DO GOTO.
003563,002897: 01,2113           16014                           TCF      DANZIG                                
003564,002898: 
003565,002899: 01,2114           10020        BPL/BMN            CCS      CYR                                   
003566,002900: 01,2115           12123                           TCF      BPL                                   
003567,002901: 01,2116           12000        5B10               DEC      5          B+10                       #  SHIFTS OP CODE IN SWITCH INSTRUCTION ADR
003568,002902: 
003569,002903: 01,2117           06710                           TC       BRANCH                                #  DO BMN.
003570,002904: 01,2120           16014                           TCF      DANZIG                                
003571,002905: 01,2121           16014                           TCF      DANZIG                                
003572,002906: 01,2122           16650                           TCF      GOTO                                  #  ONLY IF NNZ.
003573,002907: 
003574,002908: 01,2123           06710        BPL                TC       BRANCH                                
003575,002909: 01,2124           16650                           TCF      GOTO                                  #  IF POSITIVE OR ZERO.
003576,002910: 01,2125           16650                           TCF      GOTO                                  
003577,002911: 01,2126           16014                           TCF      DANZIG                                
003578,002912: 
003579,002913: 01,2127           10020        CALL/ITA           CCS      CYR                                   
003580,002914: 01,2130           16643                           TCF      CALL                                  
003581,002915: 
003582,002916: 01,2131           00017        LOW4               OCT      17                                    #  MASK USED BY SWITCH INSTRUCTIONS.
003583,002917: 
003584,002918: 01,2132           50104                           INDEX    FIXLOC                                #  STORE QPRET.
003585,002919: 01,2133           30052                           CA       QPRET                                 
003586,002920: 01,2134           16626                           TCF      STORE1                                
003587,002921: 

Page 102

003589,002923:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR ALTERING AND TESTING INTERPRETIVE SWITCHES:
003590,002924: 
003591,002925:                                                                                                  #  00       BONSET                 SET A SWITCH AND DO A GOTO IF IT WAS ON.
003592,002926:                                                                                                  #  01       SETGO                  SET A SWITCH AND DO A GOTO.
003593,002927:                                                                                                  #  02       BOFSET                 SET A SWITCH AND DO A GOTO IF IT WAS OFF
003594,002928:                                                                                                  #  03       SET                    SET A SWITCH.
003595,002929: 
003596,002930:                                                                                                  #  04       BONINV                 INVERT A SWITCH AND BRANCH IF IT WAS ON.
003597,002931:                                                                                                  #  05       INVGO                  INVERT A SWITCH AND DO A GOTO.
003598,002932:                                                                                                  #  06       BOFINV                 INVERT A SWITCH AND BRANCH IF IT WAS OFF
003599,002933:                                                                                                  #  07       INVERT                 INVERT A SWITCH.
003600,002934: 
003601,002935:                                                                                                  #  10       BONCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS ON.
003602,002936:                                                                                                  #  11       CLRGO                  CLEAR A SWITCH AND DO A GOTO.
003603,002937:                                                                                                  #  12       BOFCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS OFF.
003604,002938:                                                                                                  #  13       CLEAR                  CLEAR A SWITCH.
003605,002939: 
003606,002940:                                                                                                  #  14       BON                    BRANCH IF A SWITCH WAS ON.
003607,002941:                                                                                                  #  16       BOFF                   BRANCH IF A SWITCH WAS OFF.
003608,002942: 
003609,002943: 
003610,002944: 
003611,002945:                                                                                                  #           THE ADDRESS SUPPLIED WITH THE SWITCH INSTRUCTION IS INTERPRETED AS FOLLOWS:
003612,002946: 
003613,002947:                                                                                                  #           BITS 1-4    SWITCH BIT NUMBER (1-15).
003614,002948:                                                                                                  #           BITS 5-8    SWITCH OPERATION NUMBER.
003615,002949:                                                                                                  #           BITS 9-     SWITCH WORD NUMBER (UP TO 64 SWITCH WORDS).
003616,002950: 
003617,002951:                                                                                                  #           THE ADDRESS ITSELF IS MADE UP BY THE YUL SYSTEM ASSEMBLER. THE BRANCH INSTRUCTIONS REQUIRE TWO
003618,002952:                                                                                                  #  ADDRESSES, THE SECOND TAKEN AS THE DIRECT (OR INDIRECT IF IN ERASABLE) ADDRESS OF THE BRANCH.
003619,002953: 
003620,002954: 
003621,002955: 
003622,002956: 01,2135           32131        SWITCHES           CAF      LOW4                                  #  LEAVE THE SWITCH BIT IN SWBIT  .
003623,002957: 01,2136           70103                           MASK     POLISH                                
003624,002958: 01,2137           50000                           INDEX    A                                     
003625,002959: 01,2140           37630                           CAF      BIT15                                 #  (NUMBER FROM LEFT TO RIGHT.)
003626,002960: 01,2141           54115                           TS       SWBIT                                 
003627,002961: 
003628,002962: 01,2142           37637                           CAF      BIT8                                  #  LEAVE THE SWITCH WORD NUMBER IN  SWWORD
003629,002963: 01,2143           00006                           EXTEND                                         
003630,002964: 01,2144           70103                           MP       POLISH                                
003631,002965: 01,2145           54114                           TS       SWWORD                                
003632,002966: 
003633,002967: 01,2146           00004                           INHINT                                         #  DURING SWITCH CHANGE SO RUPT CAN USE TOO
003634,002968: 01,2147           50000                           INDEX    A                                     #  LEAVE THE SWITCH WORD ITSELF IN L.
003635,002969: 01,2150           30620                           CA       STATE                                 
003636,002970: 01,2151           54002                           TS       Q                                     #  Q WILL BE USED AS A CHANNEL.
003637,002971: 

Page 103

003639,002973: 01,2152           37634                           CAF      BIT11                                 
003640,002974: 01,2153           00006                           EXTEND                                         #  DISPATCH SWITCH BIT OPERATION AS IN BITS
003641,002975: 01,2154           70103                           MP       POLISH                                #  7-8 OF POLISH.
003642,002976: 01,2155           72215                           MASK     B3TOB4                                #  GETS 4X2-BIT CODE.
003643,002977: 01,2156           50000                           INDEX    A                                     
003644,002978: 01,2157           12160                           TCF      +1                                    
003645,002979: 
003646,002980: 01,2160           30115                 +1        CA       SWBIT                                 #  00 - SET SWITCH IN QUESTION.
003647,002981: 01,2161           00006                           EXTEND                                         
003648,002982: 01,2162           04002                           ROR      Q                                     
003649,002983: 01,2163           12172                           TCF      SWSTORE                               
003650,002984: 
003651,002985: 01,2164           30115                 +5        CA       SWBIT                                 #  01 - INVERT SWITCH.
003652,002986: 01,2165           00006                           EXTEND                                         
003653,002987: 01,2166           06002                           RXOR     Q                                     
003654,002988: 01,2167           12172                           TCF      SWSTORE                               
003655,002989: 
003656,002990: 01,2170           40115                 +9D       CS       SWBIT                                 #  10 - CLEAR.
003657,002991: 01,2171           70002                           MASK     Q                                     
003658,002992: 01,2172           50114        SWSTORE            INDEX    SWWORD                                
003659,002993: 01,2173           54620                           TS       STATE                                 #  NEW SWITCH WORD.
003660,002994: 

Page 104

003662,002996: 01,2174           00003                 +13D      RELINT                                         #  11 - NOOP.
003663,002997: 01,2175           37632                           CAF      BIT13                                 
003664,002998: 01,2176           00006                           EXTEND                                         #  DISPATCH SEQUCE CHANGING OR BRANCHING
003665,002999: 01,2177           70103                           MP       POLISH                                #  CODE.
003666,003000: 01,2200           72215                           MASK     B3TOB4                                
003667,003001: 01,2201           50000                           INDEX    A                                     
003668,003002: 01,2202           12203                           TCF      +1                                    #  ORIGINALLY STORED IN BITS 5-6.
003669,003003: 
003670,003004: 01,2203           40002                 +1        CS       Q                                     #  00 - BRANCH IF ON.
003671,003005: 01,2204           70115        TEST               MASK     SWBIT                                 
003672,003006: 01,2205           10000                           CCS      A                                     
003673,003007: 01,2206           12216                           TCF      SWSKIP                                
003674,003008: 
003675,003009: 01,2207           16702                 +5        TCF      SWBRANCH                              #  01 - GO TO.
003676,003010: 
003677,003011: 01,2210           12216                           TCF      SWSKIP                                #  HERE ONLY ON BIT 15.
003678,003012: 
003679,003013: 01,2213                                           SETLOC   +2                                    
003680,003014: 
003681,003015: 01,2213           30002                 +9D       CA       Q                                     #  10 - BRANCH IF OFF.
003682,003016: 01,2214           12204                           TCF      TEST                                  
003683,003017: 
003684,003018: 01,2215           00014        B3TOB4             OCT      14                                    
003685,003019: 
003686,003020: 01,2216           24150        SWSKIP             INCR     LOC                                   
003687,003021: 
003688,003022: 01,2217  01,2135               SW/                EQUALS   SWITCHES                              
003689,003023: 
003690,003024: 01,2217           16014                 +13D      TCF      DANZIG                                #  11 - NOOP.
003691,003025: 
003692,003026: 01,2220                        ENDINTS1           EQUALS                                         

End of include-file LIST-PROCESSING_INTERPRETER.agc.  Parent file is MAIN.agc