Source Code

These source code files have been transcribed or otherwise adapted from digitized images of a hardcopy from the private collection of Don Eyles. The digitization was performed by archive.org, and transcription was performed by a team of volunteers. Note that the page images presented online are of reduced quality, and that the original high-quality images are available at archive.org. Report any conversion errors or legibility problems in page images to info@sandroid.org. Notations on the program listing read, in part:

    473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP   NOV 10, 1966
Note that the date is the date of the printout, not the date of the program revision.

001507,000002:                                                                                                  ## Copyright:   Public domain.
001508,000003:                                                                                                  ## Filename:    LIST_PROCESSING_INTERPRETER.agc
001509,000004:                                                                                                  ## Purpose:     Part of the source code for Aurora (revision 12).
001510,000005:                                                                                                  ## Assembler:   yaYUL
001511,000006:                                                                                                  ## Contact:     Hartmuth Gutsche <hgutsche@xplornet.com>.
001512,000007:                                                                                                  ## Website:     https://www.ibiblio.org/apollo.
001513,000008:                                                                                                  ## Pages:       34-122
001514,000009:                                                                                                  ## Mod history: 2016-09-20 JL   Created.
001515,000010:                                                                                                  ##              2016-09-22 HG   Start trancription from scans using Luminary099\INTERPRETER.agc as base
001516,000011:                                                                                                  ##              2016-10-04 HG   Fix FBBANK -> FBANK
001517,000012:                                                                                                  ##              2016-10-12 HG   Fix operand MAPC +1  -> MPAC +1
001518,000013:                                                                                                  ##              2016-10-15 HG   fix label EIHGT -> EIGHT 
001519,000014:                                                                                                  ##                              fix operand BIT14 -> BIT4   
001520,000015:                                                                                                  ##              2016-10-16      fix label NEGO -> NEG0  
001521,000016:                                                                                                  ##              2016-12-07 RSB  Proofed comments with octopus/ProoferComments
001522,000017:                                                                                                  ##                              and made changes.
001523,000018:                                                                                                  ##              2017-02-05 RSB  Back-ported comment corrections 
001524,000019:                                                                                                  ##                              identified while proofing Artemis 072.
001525,000020:                                                                                                  ##              2017-03-13 RSB  Comment-text fixes noted in proofing Luminary 116.
001526,000021:                                                                                                  ##              2017-03-15 RSB  Comment-text fixes identified in 5-way
001527,000022:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
001528,000023: 
001529,000024:                                                                                                  ## This source code has been transcribed or otherwise adapted from
001530,000025:                                                                                                  ## digitized images of a hardcopy from the private collection of
001531,000026:                                                                                                  ## Don Eyles.  The digitization was performed by archive.org.
001532,000027: 
001533,000028:                                                                                                  ## Notations on the hardcopy document read, in part:
001534,000029: 
001535,000030:                                                                                                  ##       473423A YUL SYSTEM FOR BLK2: REVISION 12 of PROGRAM AURORA BY DAP GROUP
001536,000031:                                                                                                  ##       NOV 10, 1966
001537,000032: 
001538,000033:                                                                                                  ##       [Note that this is the date the hardcopy was made, not the
001539,000034:                                                                                                  ##       date of the program revision or the assembly.]
001540,000035: 
001541,000036:                                                                                                  ## The scan images (with suitable reduction in storage size and consequent
001542,000037:                                                                                                  ## reduction in image quality) are available online at
001543,000038:                                                                                                  ##       https://www.ibiblio.org/apollo.
001544,000039:                                                                                                  ## The original high-quality digital images are available at archive.org:
001545,000040:                                                                                                  ##       https://archive.org/details/aurora00dapg
001546,000041: 
001547,000042: 

Page 34

001549,000044:                                                                                                  #  SECTION 1  DISPATCHER
001550,000045: 
001551,000046:                                                                                                  #           ENTRY TO THE INTERPRETER. INTPRET SETS LOC TO THE FIRST INSTRUCTION, BANKSET TO THE FBANK OF THE
001552,000047:                                                                                                  #  OBJECT INTERPRETIVE PROGRAM, AND INTBIT15 TO THE BIT15 CONTENTS OF FBANK. INTERPRETIVE PROGRAMS MAY BE IN
001553,000048:                                                                                                  #  VIRTUALLY ALL BANKS PRESENT UNDER ANY SUPER-BANK SETTING, WITH THE RESTRICTION THAT PROGRAMS IN HIGH BANKS
001554,000049:                                                                                                  #  (BIT15 OF FBANK = 1) DO NOT REFER TO LOWBANKS, AND VICE-VERSA. THE INTERPRETER DOES NOT SWITCH SUPER-BANK,
001555,000050:                                                                                                  #  NOR DOES IT SWITCH EBANKS. MOST EBANK SWITCHING IS DONE BY THE EXECUTIVE PROGRAM.
001556,000051: 
001557,000052:    6000                                           SETLOC   6000                                  
001558,000053: 
001559,000054:    6000           00006        INTPRET            EXTEND                                         #  SET LOC TO THE WORD FOLLOWING THE TC.
001560,000055:    6001           22150                           QXCH     LOC                                   
001561,000056: 
001562,000057:    6002           30004                 +2        CA       FBANK                                 #  INTERPRETIVE BRANCHES FINISH HERE.
001563,000058:    6003           54151                           TS       BANKSET                               
001564,000059:    6004           77641                           MASK     BIT15                                 #  GET 15TH BIT FOR INDEXABLE ADDRESSES.
001565,000060:    6005           54101                           TS       INTBIT15                              
001566,000061:    6006           66426                           AD       LOW10                                 #  THIS VERSION IS USED IN PROCESSING
001567,000062:    6007           54100                           TS       INTB15+                               #  INDEXABLE FIXED-BANK ADDRESSES.
001568,000063: 
001569,000064:    6010           16023                           TCF      NEWOPS                                #  PICK UP OP CODE PAIR AND BEGIN.
001570,000065: 
001571,000066:    6011           22006        INTRSM             LXCH     BBANK                                 #  RESUME SUSPENDED INTERPRETIVE JOB
001572,000067:    6012           16003                           TCF      INTPRET    +3                         #  (ACTUALLY PART OF THE EXECUTIVE).
001573,000068: 

Page 35

001575,000070:                                                                                                  #        AT THE END OF MOST INSTRUCTIONS, CONTROL IS GIVEN TO DANZIG TO DISPATCH THE NEXT OPERATION.
001576,000071:    6013           54147        NEWMODE            TS       MODE                                  #  PROLOGUE FOR MODE-CHANGING INSTRUCTIONS.
001577,000072: 
001578,000073:    6014           30151        DANZIG             CA       BANKSET                               #  SET BBANK BEFORE TESTING NEWJOB SO THAT
001579,000074:    6015           54004                           TS       FBANK                                 #  BBANK MAY BE SAVED DIRECTLY BY CHANJOB.
001580,000075: 
001581,000076:    6016           10023        NOIBNKSW           CCS      EDOP                                  #  SEE IF AN ORDER CODE IS LEFT OVER FROM
001582,000077:    6017           16032                           TCF      OPJUMP                                #  THE LAST PAIR RETRIEVED. IF SO, EXECUTE.
001583,000078:                                                                                                  #  EDOP IS SET TO ZERO ON ITS RE-EDITING.
001584,000079: 
001585,000080:    6020           10067                           CCS      NEWJOB                                #  SEE IF A JOB OF HIGHER PRIORITY IS
001586,000081:    6021           14412                           TCF      CHANG2                                #  PRESENT, AND IF SO, CHANGE JOBS.
001587,000082: 
001588,000083:    6022           24150                           INCR     LOC                                   #  ADVANCE THE LOCATION COUNTER.
001589,000084:    6023           50150        NEWOPS             INDEX    LOC                                   #  ENTRY TO BEGIN BY PICKING OP CODE PAIR.
001590,000085:    6024           30000                           CA       0                                     #  MAY BE AN OPCODE PAIR OR A STORE CODE.
001591,000086:    6025           10000                           CCS      A                                     #  TEST SIGN AND GET DABS(A).
001592,000087:    6026           16342                           TCF      DOSTORE                               #  PROCESS STORE CODE.
001593,000088: 
001594,000089:    6027           00177        LOW7               OCT      177                                   
001595,000090: 
001596,000091:    6030           54023                           TS       EDOP                                  #  OP CODE PAIR.  LEAVE THE OTHER IN EDOP
001597,000092:    6031           76027                           MASK     LOW7                                  #  WHERE CCS EDOP WILL HONOR IT NEXT.
001598,000093: 
001599,000094:    6032           54020        OPJUMP             TS       CYR                                   #  LOWWD ENTERS HERE IF A RIGHT-HAND OP
001600,000095:    6033           10020                           CCS      CYR                                   #  CODE IS TO BE PROCESSED. TEST PREFICES.
001601,000096:    6034           16167                           TCF      OPJUMP2                               #  TEST SECOND PREFIX BIT.
001602,000097: 
001603,000098:    6035           16731                           TCF      EXIT                                  #  +0 OP CODE IS EXIT.
001604,000099: 

Page 36

001606,000101:                                                                                                  #        PROCESS ADDRESSES WHICH MAY BE DIRECT, INDEXED, OR REFERENCE THE PUSHDOWN LIST.
001607,000102: 
001608,000103:    6036           77657        ADDRESS            MASK     BIT1                                  #  SEE IF ADDRESS IS INDEXED.  CYR CONTAINED
001609,000104:    6037           10000                           CCS      A                                     #  400XX, SO BIT 1 IS NOW AS IT WAS IN CYR.
001610,000105:    6040           16073                           TCF      INDEX                                 #  FORM INDEXED ADDRESS.
001611,000106: 
001612,000107:    6041           50150        DIRADRES           INDEX    LOC                                   #  LOOK AHEAD TO NEXT WORD TO SEE IF
001613,000108:    6042           40001        OCT40001           CS       1                                     #  ADDRESS IS GIVEN.
001614,000109:    6043           10000                           CCS      A                                     
001615,000110:    6044           16135                           TCF      PUSHUP                                #  IF NOT.
001616,000111: 
001617,000112:    6045           77773        NEG4               DEC      -4         B-14                       
001618,000113: 
001619,000114:    6046           24150                           INCR     LOC                                   #  IF SO, TO SHOW WE PICKED UP A WORD.
001620,000115:    6047           54102                           TS       ADDRWD                                
001621,000116: 

Page 37

001623,000118:                                                                                                  #           FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE. IN EACH CASE, THE
001624,000119:                                                                                                  #  REQUIRED 12 BIT SUB-ADDRESS IS LEFT IN ADDRWD, WITH ANY REQUIRED BANK SWITCHING DONE (F ONLY). ADDRESSES LESS
001625,000120:                                                                                                  #  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.
001626,000121: 
001627,000122: 
001628,000123: 
001629,000124:    6050           66171                           AD       -ENDVAC                               #  SEE IF ADDRESS RELATIVE TO WORK AREA.
001630,000125:    6051           10000                           CCS      A                                     
001631,000126:    6052           66234                           AD       -ENDERAS                              #  IF NOT, SEE IF IN GENERAL ERASABLE.
001632,000127:    6053           16060                           TCF      IERASTST                              
001633,000128: 
001634,000129:    6054           30104        NETZERO            CA       FIXLOC                                #  IF SO, LEAVE THE MODIFIED ADDRESS IN
001635,000130:    6055           26102                           ADS      ADDRWD                                #  ADDRWD AND DISPATCH.
001636,000131:    6056           50020                 +2        INDEX    CYR                                   #  THIS INDEX MAKES THE NEXT INSTRUCTION
001637,000132:    6057           76234                           7        INDJUMP    -1                         #  TCF INDJUMP + OP, EDITING CYR.
001638,000133: 
001639,000134:    6060           00006        IERASTST           EXTEND                                         
001640,000135:    6061           66056                           BZMF     NETZERO    +2                         #  GENERAL ERASABLE - DISPATCH IMMEDIATELY.
001641,000136: 
001642,000137:    6062           60100        FIXEDADR           AD       INTB15+                               #  FIXED BANK ADDRESS. RESTORE AND ADD B15.
001643,000138:    6063           54004                 +1        TS       FBANK                                 #  SWITCH BANKS AND LEAVE SUB-ADDRESS IN
001644,000139:    6064           76426                           MASK     LOW10                                 #  ADDRWD FOR OPERAND RETRIEVAL.
001645,000140:    6065           67645                           AD       2K                                    
001646,000141:    6066           54102                           TS       ADDRWD                                
001647,000142:    6067           50020                           INDEX    CYR                                   
001648,000143:    6070           76234                           7        INDJUMP    -1                         
001649,000144: 

Page 38

001651,000146:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES INTERPRETIVE INDEXED ADDRESSES. AN INTERPRETER INDEX REGISTER MAY
001652,000147:                                                                                                  #  CONTAIN THE ADDRESS OF ANY ERASABLE REGISTER (0-42 BEING RELATIVE TO THE VAC AREA) OR ANY INTERPRETIVE PROGRAM
001653,000148:                                                                                                  #  BANK, OR ANY INTEGER IN THAT RANGE.
001654,000149: 
001655,000150:    6071           37676        DODLOAD*           CAF      DLOAD*                                #  STODL* COMES HERE TO PROCESS LOAD ADR.
001656,000151:    6072           54020                           TS       CYR                                   #  (STOVL* ENTERS HERE).
001657,000152: 
001658,000153:    6073           30104        INDEX              CA       FIXLOC                                #  SET UP INDEX LOCATION.
001659,000154:    6074           54114                           TS       INDEXLOC                              
001660,000155:    6075           24150                           INCR     LOC                                   #  (ADDRESS ALWAYS GIVEN).
001661,000156:    6076           50150                           INDEX    LOC                                   
001662,000157:    6077           40000                           CS       0                                     
001663,000158:    6100           10000                           CCS      A                                     #  INDEX 2 IF ADDRESS STORED COMPLEMENTED.
001664,000159:    6101           24114                           INCR     INDEXLOC                              
001665,000160:    6102           16103                           NOOP                                           
001666,000161: 
001667,000162:    6103           54102                           TS       ADDRWD                                #  14 BIT ADDRESS TO ADDRWD.
001668,000163:    6104           76232                           MASK     BANKMASK                              #  IF ADDRESS GREATER THAN 1K, ADD INTBIT15
001669,000164:    6105           00006                           EXTEND                                         
001670,000165:    6106           16111                           BZF      INDEX2                                
001671,000166:    6107           30101                           CA       INTBIT15                              
001672,000167:    6110           26102                           ADS      ADDRWD                                
001673,000168: 
001674,000169:    6111           50114        INDEX2             INDEX    INDEXLOC                              
001675,000170:    6112           40046                           CS       X1                                    
001676,000171:    6113           26102                           ADS      ADDRWD                                #  DO AUGMENT, IGNORING AND CORRECTING OVF.
001677,000172: 
001678,000173:    6114           76231                           MASK     HIGH9                                 #  SEE IF ADDRESS IS IN WORK AREA.
001679,000174:    6115           00006                           EXTEND                                         
001680,000175:    6116           16131                           BZF      INDWORK                               
001681,000176:    6117           76232                           MASK     BANKMASK                              #  SEE IF IN FIXED BANK.
001682,000177:    6120           00006                           EXTEND                                         
001683,000178:    6121           16133                           BZF      INDERASE                              
001684,000179: 
001685,000180:    6122           30102                           CA       ADDRWD                                #  IN FIXED - SWITCH BANKS AND CREATE
001686,000181:    6123           54004                           TS       FBANK                                 #  SUB-ADDRESS.
001687,000182:    6124           76426                           MASK     LOW10                                 
001688,000183:    6125           67645                           AD       2K                                    
001689,000184:    6126           54102                           TS       ADDRWD                                
001690,000185:    6127           50020                           INDEX    CYR                                   
001691,000186:    6130           36234                           3        INDJUMP    -1                         
001692,000187: 
001693,000188:    6131           30104        INDWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO WORK AREA.
001694,000189:    6132           26102                           ADS      ADDRWD                                
001695,000190: 
001696,000191:    6133           50020        INDERASE           INDEX    CYR                                   
001697,000192:    6134           36234                           3        INDJUMP    -1                         
001698,000193: 

Page 39

001700,000195:                                                                                                  #           PUSH-UP ROUTINES. WHEN NO OPERAND ADDRESS IS GIVEN, THE APPROPRIATE OPERAND IS TAKEN FROM THE PUSH-DOWN
001701,000196:                                                                                                  #  LIST. IN MOST CASES THE MODE OF THE RESULT (VECTOR OR SCALAR) OF THE LAST ARITHMETIC OPERATION PERFORMED
001702,000197:                                                                                                  #  IS THE SAME AS THE TYPE OF OPERAND DESIRED (ALL ADD/SUBTRACT ETC.). EXCEPTIONS TO THIS GENERAL RULE ARE LISTED
001703,000198:                                                                                                  #  BELOW (NOTE THAT IN EVERY CASE THE MODE REGISTER IS LEFT INTACT):
001704,000199: 
001705,000200:                                                                                                  #           1.  VXSC AND V/SC WANT THE OPPOSITE TYPE OF OPERAND, E.G., IF THE LAST OPERATION YIELDED A VECTOR
001706,000201:                                                                                                  #  RESULT, VXSC WANTS A SCALAR.
001707,000202: 
001708,000203:                                                                                                  #           2.  THE LOAD CODES SHOULD LOAD THE ACCUMULATOR INDEPENDENT OF THE RESULT OF THE LAST OPERATION. THIS
001709,000204:                                                                                                  #  INCLUDES VLOAD, DLOAD, TLOAD, PDDL, AND PDVL (NO PUSHUP WITH SLOAD).
001710,000205: 
001711,000206:                                                                                                  #           3.  SOME ARITHMETIC OPERATIONS REQUIRE A STANDARD TYPE OF OPERAND REGARDLESS OF THE PREVIOUS OPERATION.
001712,000207:                                                                                                  #  THIS INCLUDES SIGN WANTING DP AND TAD REQUIRING TP.
001713,000208: 
001714,000209:    6135           36227        PUSHUP             CAF      OCT23                                 #  IF THE LOW 5 BITS OF CYR ARE LESS THAN
001715,000210:    6136           70020                           MASK     CYR                                   #  20, THIS OP REQUIRES SPECIAL ATTENTION.
001716,000211:    6137           66142                           AD       -OCT10                                #  (NO -0).
001717,000212:    6140           10000                           CCS      A                                     
001718,000213:    6141           16153                           TCF      REGUP                                 #  FOR ALL CODES GREATER THAN OCT 7.
001719,000214: 
001720,000215:    6142           77767        -OCT10             OCT      -10                                   
001721,000216: 
001722,000217:    6143           66045                           AD       NEG4                                  #  WE NOW HAVE 7 - OP CODE (MOD4). SEE IF
001723,000218:    6144           10000                           CCS      A                                     #  THE OP CODE (MOD4) IS THREE (REVERSE).
001724,000219:    6145           50000                           INDEX    A                                     #  NO - THE MODE IS DEFINITE.  PICK UP THE
001725,000220:    6146           46164                           CS       NO.WDS                                
001726,000221:    6147           16155                           TCF      REGUP      +2                         
001727,000222: 
001728,000223:    6150           50147                           INDEX    MODE                                  #  FOR VXSC AND V/SC WE WANT THE REQUIRED
001729,000224:    6151           46162                           CS       REVCNT                                #  PUSHLOC DECREMENT WITHOUT CHANGING THE
001730,000225:    6152           16155                           TCF      REGUP      +2                         #  MODE AT THIS TIME.
001731,000226: 
001732,000227:    6153           50147        REGUP              INDEX    MODE                                  #  MOST ALL OP CODES PUSHUP HERE.
001733,000228:    6154           46164                           CS       NO.WDS                                
001734,000229:    6155           26152                 +2        ADS      PUSHLOC                               
001735,000230:    6156           54102                           TS       ADDRWD                                
001736,000231:    6157           50020                           INDEX    CYR                                   
001737,000232:    6160           76234                           7        INDJUMP    -1                         #  (THE INDEX MAKES THIS A TCF.)
001738,000233: 
001739,000234:    6161           00002                           OCT      2                                     #  REVERSE PUSHUP DECREMENT. VECTOR TAKES 2
001740,000235:    6162           00006        REVCNT             OCT      6                                     #  WORDS, SCALAR TAKES 6.
001741,000236:    6163           00006                           OCT      6                                     
001742,000237:    6164           00002        NO.WDS             OCT      2                                     #  CONVENTIONAL DECREMENT IS 6 WORDS VECTOR
001743,000238:    6165           00003                           OCT      3                                     #  2 IN DP, AND 3 IN TP.
001744,000239:    6166           00006                           OCT      6                                     
001745,000240: 

Page 40

001747,000242:                                                                                                  #           TEST THE SECOND PREFIX BIT TO SEE IF THIS IS A MISCELLANEOUS OR A UNARY/SHORT SHIFT OPERATION.
001748,000243: 
001749,000244:    6167           10020        OPJUMP2            CCS      CYR                                   #  TEST SECOND PREFIX BIT.
001750,000245:    6170           16217                           TCF      OPJUMP3                               #  TEST THIRD BIT TO SEE IF UNARY OR SHIFT.
001751,000246: 
001752,000247:    6171           77722        -ENDVAC            DEC      -45        B-14                       
001753,000248: 
001754,000249:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES ADDRESSES OF SUFFIX CLASS 10. THEY ARE BASICALLY WORK AREA ADDRESSES
001755,000250:                                                                                                  #  IN THE RANGE 0 - 52, ERASABLE ADRES CONSTANTS FROM 100 - 1777, AND FCADRS ABOVE THAT. ALL 15 BITS ARE AVAILABLE
001756,000251:                                                                                                  #  IN CONTRAST TO SUFFIX 1, IN WHICH ONLY THE LOW ORDER 14 ARE AVAILABLE.
001757,000252: 
001758,000253:    6172           24150        15BITADR           INCR     LOC                                   #  (ENTRY HERE FROM STCALL).
001759,000254:    6173           50150                           INDEX    LOC                                   #  PICK UP ADDRESS WORD.
001760,000255:    6174           30000                           CA       0                                     
001761,000256:    6175           54103                           TS       POLISH                                #  THE ABSOLUTE ADDRESS WILL BE LEFT IN
001762,000257:    6176           54102                           TS       ADDRWD                                #  POLISH WITH AN ERASABLE SUBADDRESS IN
001763,000258:                                                                                                  #  ADDRWD.
001764,000259:    6177           76231                           MASK     HIGH9                                 #  SEE IF RELATIVE TO THE WORK AREA.
001765,000260:    6200           10000                           CCS      A                                     
001766,000261:    6201           16203                           TCF      +2                                    
001767,000262:    6202           16210                           TCF      RELWORK                               #  ONLY IF ZERO.
001768,000263: 
001769,000264:    6203           36230                           CAF      LOW7+2K                               #  THESE INSTRUCTIONS ARE IN BANK 1.
001770,000265:    6204           54004                           TS       FBANK                                 
001771,000266:    6205           70020                           MASK     CYR                                   
001772,000267:    6206           50000                           INDEX    A                                     
001773,000268:    6207           16275                           TCF      MISCJUMP                              
001774,000269: 
001775,000270:    6210           30104        RELWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO FIXLOC, LEAVING
001776,000271:    6211           26102                           ADS      ADDRWD                                #  POLISH ABSOLUTE IN CASE THIS WAS AN
001777,000272:    6212           36230                           CAF      LOW7+2K                               #  AXT, ETC.
001778,000273:    6213           54004                           TS       FBANK                                 
001779,000274:    6214           70020                           MASK     CYR                                   
001780,000275:    6215           50000                           INDEX    A                                     
001781,000276:    6216           16275                           TCF      MISCJUMP                              
001782,000277: 

Page 41

001784,000279:                                                                                                  #           COMPLETE THE DISPATCHING OF UNARY AND SHORT SHIFT OPERATIONS.
001785,000280: 
001786,000281:    6217           54004        OPJUMP3            TS       FBANK                                 #  CALL IN BANK 0 (BITS 11-15 OF A ARE 0.)
001787,000282:    6220           10020                           CCS      CYR                                   #  TEST THIRD PREFIX BIT.
001788,000283:    6221           50000                           INDEX    A                                     #  THE DECREMENTED UNARY CODE IS IN BITS
001789,000284:    6222           16315                           TCF      UNAJUMP                               #  1-4 OF A (ZERO, EXIT, HAS BEEN DETECTED)
001790,000285: 
001791,000286:    6223           10147                           CCS      MODE                                  #  ITS A SHORT SHIFT CODE. SEE IF PRESENT
001792,000287:    6224           12000                           TCF      SHORTT                                #  SCALAR OR VECTOR.
001793,000288:    6225           12000                           TCF      SHORTT                                
001794,000289:    6226           12102                           TCF      SHORTV                                #  CALLS THE APPROPRIATE ROUTINE.
001795,000290: 
001796,000291: 
001797,000292:    6227           00023        OCT23              OCT      23                                    #  MASK USED BY PUSH-UP ROUTINE.
001798,000293:    6230           02177        LOW7+2K            OCT      2177                                  #  OP CODE MASK + BANK 1 FBANK SETTING.
001799,000294:    6231           77700        HIGH9              OCT      77700                                 
001800,000295:    6232           76000        BANKMASK           OCT      76000                                 #  FBANK MASK.
001801,000296:    6233     6232               FBANKMSK           EQUALS   BANKMASK                              
001802,000297:    6233           36000        B11T14             OCT      36000                                 #  USED IN PROCESSING STORE CODES.
001803,000298:    6234           76056        -ENDERAS           DEC      -977       B-14                       
001804,000299: 

Page 42

001806,000301:                                                                                                  #           THE FOLLOWING IS THE JUMP TABLE FOR OP CODES WHICH MAY HAVE INDEXABLE ADDRESSES OR MAY PUSH UP.
001807,000302: 
001808,000303:    6235           16511        INDJUMP            TCF      VLOAD                                 #  00 - LOAD MPAC WITH A VECTOR.
001809,000304:    6236           17050                           TCF      TAD                                   #  01 - TRIPLE PRECISION ADD TO MPAC.
001810,000305:    6237           17603                           TCF      SIGN                                  #  02 - COMPLEMENT MPAC (V OR SC) IF X NEG.
001811,000306:    6240           17354                           TCF      VXSC                                  #  03 - VECTOR TIMES SCALAR.
001812,000307:    6241           16672                           TCF      CGOTO                                 #  04 - COMPUTED GO TO.
001813,000308:    6242           16474                           TCF      TLOAD                                 #  05 - LOAD MPAC WITH TRIPLE PRECISION.
001814,000309:    6243           16465                           TCF      DLOAD                                 #  06 - LOAD MPAC WITH A DP SCALAR.
001815,000310:    6244           17552                           TCF      V/SC                                  #  07 - VECTOR DIVIDED BY SCALAR.
001816,000311: 
001817,000312:    6245           16505                           TCF      SLOAD                                 #  10 - LOAD MPAC IN SINGLE PRECISION.
001818,000313:    6246           16624                           TCF      SSP                                   #  11 - SET SINGLE PRECISION INTO X.
001819,000314:    6247           16527                           TCF      PDDL                                  #  12 - PUSH DOWN MPAC AND RE-LOAD IN DP.
001820,000315:    6250           17307                           TCF      MXV                                   #  13 - MATRIX POST-MULTIPLIED BY VECTOR.
001821,000316:    6251           16563                           TCF      PDVL                                  #  14 - PUSH DOWN AND VECTOR LOAD.
001822,000317:    6252           16632                           TCF      CCALL                                 #  15 - COMPUTED CALL.
001823,000318:    6253           17312                           TCF      VXM                                   #  16 - MATRIX PRE-MULTIPLIED BY VECTOR.
001824,000319:    6254           17544                           TCF      TSLC                                  #  17 - NORMALIZE MPAC (SCALAR ONLY).
001825,000320: 
001826,000321:    6255           17522                           TCF      DMPR                                  #  20 - DP MULTIPLY AND ROUND.
001827,000322:    6256           17525                           TCF      DDV                                   #  21 - DP DIVIDE BY.
001828,000323:    6257           17531                           TCF      BDDV                                  #  22 - DP DIVIDE INTO.
001829,000324:    6260           17547                           TCF      GSHIFT                                #  23 - GENERAL SHIFT INSTRUCTION.
001830,000325:    6261           16733                           TCF      VAD                                   #  24 - VECTOR ADD.
001831,000326:    6262           16761                           TCF      VSU                                   #  25 - VECTOR SUBTRACT.
001832,000327:    6263           17011                           TCF      BVSU                                  #  26 - VECTOR SUBTRACT FROM.
001833,000328:    6264           17304                           TCF      DOT                                   #  27 - VECTOR DOT PRODUCT.
001834,000329: 
001835,000330:    6265           17434                           TCF      VXV                                   #  30 - VECTOR CROSS PRODUCT.
001836,000331:    6266           17400                           TCF      VPROJ                                 #  31 - VECTOR PROJECTION.
001837,000332:    6267           16777                           TCF      DSU                                   #  32 - DP SUBTRACT.
001838,000333:    6270           17035                           TCF      BDSU                                  #  33 - DP SUBTRACT FROM.
001839,000334:    6271           16751                           TCF      DAD                                   #  34 - DP ADD.
001840,000335:    6272           16272                           TCF      +0                                    #  35 - AVAILABLE
001841,000336:    6273           17520                           TCF      DMP1                                  #  36 - DP MULTIPLY.
001842,000337:    6274           17541                           TCF      SETPD                                 #  37 - SET PUSH DOWN POINTER (DIRECT ONLY)
001843,000338: 
001844,000339:                                                                                                  #  CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED.
001845,000340: 

Page 43

001847,000342:                                                                                                  #           THE FOLLOWING JUMP TABLE APPLIES TO INDEX, BRANCH, AND MISCELLANEOUS INSTRUCTIONS.
001848,000343: 
001849,000344:    6275           12000        MISCJUMP           TCF      AXT                                   #  00 - ADDRESS TO INDEX TRUE.
001850,000345:    6276           12005                           TCF      AXC                                   #  01 - ADDRESS TO INDEX COMPLEMENTED.
001851,000346:    6277           12010                           TCF      LXA                                   #  02 - LOAD INDEX FROM ERASABLE.
001852,000347:    6300           12014                           TCF      LXC                                   #  03 - LOAD INDEX FROM COMPLEMENT OF ERAS.
001853,000348:    6301           12020                           TCF      SXA                                   #  04 - STORE INDEX IN ERASABLE.
001854,000349:    6302           12024                           TCF      XCHX                                  #  05 - EXCHANGE INDEX WITH ERASABLE.
001855,000350:    6303           12040                           TCF      INCR                                  #  06 - INCREMENT INDEX REGISTER.
001856,000351:    6304           12047                           TCF      TIX                                   #  07 - TRANSFER ON INDEX.
001857,000352: 
001858,000353:    6305           12032                           TCF      XAD                                   #  10 - INDEX REGISTER ADD FROM ERASABLE.
001859,000354:    6306           12043                           TCF      XSU                                   #  11 - INDEX SUBTRACT FROM ERASABLE.
001860,000355:    6307           12107                           TCF      BZE/GOTO                              #  12 - BRANCH ZERO AND GOTO.
001861,000356:    6310           12114                           TCF      BPL/BMN                               #  13 - BRANCH PLUS AND BRANCH MINUS.
001862,000357:    6311           12127                           TCF      CALL/ITA                              #  14 - CALL AND STORE QPRET.
001863,000358:    6312           12067                           TCF      RTB/BHIZ                              #  15 - RETURN TO BASIC AND BRANCH HI ZERO.
001864,000359:    6313           12135                           TCF      SW/                                   #  16 - SWITCH INSTRUCTIONS AND AVAILABLE.
001865,000360:    6314           12077                           TCF      BOV(B)                                #  17 - BRANCH ON OVERFLOW TO BASIC OR INT.
001866,000361: 

Page 44

001868,000363:                                                                                                  #           THE FOLLOWING JUMP TABLE APPIES TO UNARY INSTRUCTIONS.
001869,000364: 
001870,000365:                                                                                                  #  00 - EXIT - DETECTED EARLIER.
001871,000366:    6315           13135        UNAJUMP            TCF      SQRT                                  #  01 - SQUARE ROOT.
001872,000367:    6316           13456                           TCF      SINE                                  #  02 - SIN.
001873,000368:    6317           13445                           TCF      COSINE                                #  03 - COS.
001874,000369:    6320           13536                           TCF      ARCSIN                                #  04 - ARC SIN.
001875,000370:    6321           13540                           TCF      ARCCOS                                #  05 - ARC COS.
001876,000371:    6322           13122                           TCF      DSQ                                   #  06 - DP SQUARE.
001877,000372:    6323           12077                           TCF      ROUND                                 #  07 - ROUND TO DP.
001878,000373: 
001879,000374:    6324           17616                           TCF      COMP                                  #  10 - COMPLEMENT VECTOR OR SCALAR.
001880,000375:    6325           13160                           TCF      VDEF                                  #  11 - VECTOR DEFINE.
001881,000376:    6326           12750                           TCF      UNIT                                  #  12 - UNIT VECTOR.
001882,000377:    6327           13124                           TCF      ABVALABS                              #  13 - LENGTH OF VECTOR OR MAG OF SCALAR.
001883,000378:    6330           13174                           TCF      VSQ                                   #  14 - SQUARE OF LENGTH OF VECTOR.
001884,000379:    6331           16334                           TCF      STADR                                 #  15 - PUSH UP ON STORE CODE.
001885,000380:    6332           13224                           TCF      RVQ                                   #  16 - RETURN VIA QPRET.
001886,000381:    6333           13177                           TCF      PUSH                                  #  17 - PUSH MPAC DOWN.
001887,000382: 

Page 45

001889,000384:                                                                                                  #  SECTION 2  LOAD AND STORE PACKAGE.
001890,000385: 
001891,000386:                                                                                                  #           A SET OF SIXTEEN STORE CODES ARE PROVIDED AS THE PRIMARY METHOD OF STORING THE MULTI-PURPOSE
001892,000387:                                                                                                  #  ACCUMULATOR (MPAC). IF IN THE DANZIG SECTION LOC REFERS TO AN ALGEBRAICALLY POSITIVE WORD, IT IS TAKEN AS A
001893,000388:                                                                                                  #  STORE CODE WITH A CORRESPONDING ERASABLE ADDRESS. MOST OF THESE CODES ARE TWO ADDRESS, SPECIFYING THAT THE WORD
001894,000389:                                                                                                  #  FOLLOWING THE STORE CODE IS TO BE USED AS AN ADDRESS FROM WHICH TO RE-LOAD MPAC. FOUR OPTIONS ARE AVAILABLE:
001895,000390: 
001896,000391:                                                                                                  #           1. STORE               STORE MPAC. THE E ADDRESS MAY BE INDEXED.
001897,000392:                                                                                                  #           2. STODL               STORE MPAC AND RE-LOAD IT IN DP WITH THE NEXT ADDRESS (EITHER MAY BE INDEXED).
001898,000393:                                                                                                  #           3. STOVL               STORE MPAC AND RE-LOAD A VECTOR (AS ABOVE).
001899,000394:                                                                                                  #           4. STCALL              STORE AND DO A CALL (BOTH ADDRESSES MUST BE DIRECT HERE).
001900,000395: 
001901,000396:                                                                                                  #           STODL AND STOVL WILL TAKE FROM THE PUSH-DOWN LIST IF NO LOAD ADDRESS IS GIVEN.
001902,000397: 
001903,000398: 
001904,000399: 
001905,000400:    6334           30151        STADR              CA       BANKSET                               #  THE STADR CODE (PUSHUP UP ON STORE
001906,000401:    6335           54004                           TS       FBANK                                 #  ADDRESS) ENTERS HERE.
001907,000402:    6336           24150                           INCR     LOC                                   
001908,000403:    6337           50150                           INDEX    LOC                                   #  THE STORE CODE WAS STORE COMPLEMENTED TO
001909,000404:    6340           40000                           CS       0                                     #  MAKE IT LOOK LIKE AN OPCODE PAIR.
001910,000405:    6341           67667                           AD       NEGONE                                #  (YUL CANT REMOVE 1 BECAUSE OF EARLY CCS)
001911,000406: 
001912,000407:    6342           54102        DOSTORE            TS       ADDRWD                                
001913,000408:    6343           76426                           MASK     LOW10                                 #  ENTRY FROM DISPATCHER. SAVE THE ERASABLE
001914,000409:    6344           56102                           XCH      ADDRWD                                #  ADDRESS AND JUMP ON THE STORE CODE NO.
001915,000410:    6345           76233                           MASK     B11T14                                
001916,000411:    6346           00006                           EXTEND                                         
001917,000412:    6347           77652                           MP       BIT6                                  #  EACH TRANSFER VECTOR ENTRY IS TWO WORDS.
001918,000413:    6350           50000                           INDEX    A                                     
001919,000414:    6351           16352                           TCF      STORJUMP                              
001920,000415: 

Page 46

001922,000417:                                                                                                  #           STORE CODE JUMP TABLE. CALLS THE APPROPRIATE STORING ROUTINE AND EXITS TO DANZIG OR TO ADDRESS WITH
001923,000418:                                                                                                  #  A SUPPLIED OPERATION CODE.
001924,000419: 
001925,000420:    6352           06422        STORJUMP           TC       STORE                                 #  STORE.
001926,000421:    6353           16022                           TCF      NEWOPS     -1                         #  PICK UP NEW OP CODE(S).
001927,000422:    6354           06414                           TC       STORE,1                               
001928,000423:    6355           16022                           TCF      NEWOPS     -1                         
001929,000424:    6356           06417                           TC       STORE,2                               
001930,000425:    6357           16022                           TCF      NEWOPS     -1                         
001931,000426: 
001932,000427:    6360           06422                           TC       STORE                                 #  STODL.
001933,000428:    6361           16455                           TCF      DODLOAD                               
001934,000429:    6362           06414                           TC       STORE,1                               
001935,000430:    6363           16455                           TCF      DODLOAD                               
001936,000431:    6364           06417                           TC       STORE,2                               
001937,000432:    6365           16455                           TCF      DODLOAD                               
001938,000433: 
001939,000434:    6366           06422                           TC       STORE                                 #  STODL WITH INDEXED LOAD ADDRESS.
001940,000435:    6367           16071                           TCF      DODLOAD*                              
001941,000436:    6370           06414                           TC       STORE,1                               
001942,000437:    6371           16071                           TCF      DODLOAD*                              
001943,000438:    6372           06417                           TC       STORE,2                               
001944,000439:    6373           16071                           TCF      DODLOAD*                              
001945,000440: 
001946,000441:    6374           06422                           TC       STORE                                 #  STOVL.
001947,000442:    6375           16460                           TCF      DOVLOAD                               
001948,000443:    6376           06414                           TC       STORE,1                               
001949,000444:    6377           16460                           TCF      DOVLOAD                               
001950,000445:    6400           06417                           TC       STORE,2                               
001951,000446:    6401           16460                           TCF      DOVLOAD                               
001952,000447: 
001953,000448:    6402           06422                           TC       STORE                                 #  STOVL WITH INDEXED LOAD ADDRESS.
001954,000449:    6403           16463                           TCF      DOVLOAD*                              
001955,000450:    6404           06414                           TC       STORE,1                               
001956,000451:    6405           16463                           TCF      DOVLOAD*                              
001957,000452:    6406           06417                           TC       STORE,2                               
001958,000453:    6407           16463                           TCF      DOVLOAD*                              
001959,000454: 
001960,000455:    6410           06422                           TC       STORE                                 #  STOTC.
001961,000456:    6411           37674                           CAF      CALLCODE                              
001962,000457:    6412           54020                           TS       CYR                                   
001963,000458:    6413           16172                           TCF      15BITADR                              #  GET A 15 BIT ADDRESS.
001964,000459: 

Page 47

001966,000461:                                                                                                  #           STORE CODE ADDRESS PROCESSOR.
001967,000462: 
001968,000463:    6414           50104        STORE,1            INDEX    FIXLOC                                
001969,000464:    6415           40046                           CS       X1                                    
001970,000465:    6416           16421                           TCF      PRESTORE                              
001971,000466: 
001972,000467:    6417           50104        STORE,2            INDEX    FIXLOC                                
001973,000468:    6420           40047                           CS       X2                                    
001974,000469:    6421           26102        PRESTORE           ADS      ADDRWD                                #  RESULTANT ADDRESS IS IN ERASABLE.
001975,000470: 
001976,000471:    6422           30102        STORE              CA       ADDRWD                                #  SEE IF ADDRESS RELATIVE TO WORK AREA.
001977,000472:    6423           66171                           AD       -ENDVAC                               
001978,000473:    6424           10000                           CCS      A                                     
001979,000474:    6425           16431                           TCF      STARTSTO                              #  ADDRESS OK AS IS.
001980,000475: 
001981,000476:    6426           01777        LOW10              OCT      1777                                  
001982,000477: 
001983,000478:    6427           30104                           CA       FIXLOC                                #  GIVEN ADDRESS IS RELATIVE TO WORK AREA.
001984,000479:    6430           26102                           ADS      ADDRWD                                
001985,000480: 

Page 48

001987,000482:                                                                                                  #           STORING ROUTINES. STORE DP, TP, OR VECTOR AS INDICATED BY MODE.
001988,000483: 
001989,000484:    6431           00006        STARTSTO           EXTEND                                         #  MPAC,+1 MUST BE STORED IN ANY EVENT.
001990,000485:    6432           30141                           DCA      MPAC                                  
001991,000486:    6433           50102                           INDEX    ADDRWD                                
001992,000487:    6434           52001                           DXCH     0                                     
001993,000488: 
001994,000489:    6435           10147                           CCS      MODE                                  
001995,000490:    6436           16451                           TCF      TSTORE                                
001996,000491:    6437           00002                           TC       Q                                     
001997,000492: 
001998,000493:    6440           00006        VSTORE             EXTEND                                         
001999,000494:    6441           30144                           DCA      MPAC       +3                         
002000,000495:    6442           50102                           INDEX    ADDRWD                                
002001,000496:    6443           52003                           DXCH     2                                     
002002,000497: 
002003,000498:    6444           00006                           EXTEND                                         
002004,000499:    6445           30146                           DCA      MPAC       +5                         
002005,000500:    6446           50102                           INDEX    ADDRWD                                
002006,000501:    6447           52005                           DXCH     4                                     
002007,000502:    6450           00002                           TC       Q                                     
002008,000503: 
002009,000504:    6451           30142        TSTORE             CA       MPAC       +2                         
002010,000505:    6452           50102                           INDEX    ADDRWD                                
002011,000506:    6453           54002                           TS       2                                     
002012,000507:    6454           00002                           TC       Q                                     
002013,000508: 

Page 49

002015,000510:                                                                                                  #           ROUTINES TO BEGIN PROCESSING OF THE SECOND ADDRESS ASSOCIATED WITH ALL STORE-TYPE CODES EXCEPT STORE
002016,000511:                                                                                                  #  ITSELF.
002017,000512: 
002018,000513:    6455           37675        DODLOAD            CAF      DLOADCOD                              
002019,000514:    6456           54020                           TS       CYR                                   
002020,000515:    6457           16041                           TCF      DIRADRES                              #  GO GET A DIRECT ADDRESS.
002021,000516: 
002022,000517:    6460           37641        DOVLOAD            CAF      VLOADCOD                              
002023,000518:    6461           54020                           TS       CYR                                   
002024,000519:    6462           16041                           TCF      DIRADRES                              
002025,000520: 
002026,000521:    6463           36042        DOVLOAD*           CAF      VLOAD*                                
002027,000522:    6464           16072                           TCF      DODLOAD*   +1                         #  PROLOGUE TO INDEX ROUTINE.
002028,000523: 

Page 50

002030,000525:                                                                                                  #           THE FOLLOWING LOAD INSTRUCTIONS ARE PROVIDED FOR LOADING THE MULTI-PURPOSE ACCUMULATOR MPAC.
002031,000526: 
002032,000527:    6465           00006        DLOAD              EXTEND                                         
002033,000528:    6466           50102                           INDEX    ADDRWD                                
002034,000529:    6467           30001                           DCA      0                                     #  PICK UP DP ARGUMENT AND LEAVE IT IN
002035,000530:    6470           52141        SLOAD2             DXCH     MPAC                                  #  MPAC,+1, SETTING MPAC +2 TO ZERO. THE
002036,000531:    6471           37665                           CAF      ZERO                                  #  CONTENTS OF THE OTHER FOUR REGISTERS OF
002037,000532:    6472           54142                           TS       MPAC       +2                         #  MPAC ARE IRRELEVANT.
002038,000533:    6473           16013                           TCF      NEWMODE                               #  DECLARE DOUBLE PRECISION MODE.
002039,000534: 
002040,000535:    6474           50102        TLOAD              INDEX    ADDRWD                                
002041,000536:    6475           30002                           CA       2                                     #  LOAD A TRIPLE PRECISION ARGUMENT INTO
002042,000537:    6476           54142                           TS       MPAC       +2                         #  THE FIRST THREE MPAC REGISTERS, WITH THE
002043,000538:    6477           00006                           EXTEND                                         #  CONTENTS OF THE OTHER FOUR IRRELEVANT.
002044,000539:    6500           50102                           INDEX    ADDRWD                                
002045,000540:    6501           30001                           DCA      0                                     
002046,000541:    6502           52141                           DXCH     MPAC                                  
002047,000542:    6503           37657                           CAF      ONE                                   
002048,000543:    6504           16013                           TCF      NEWMODE                               #  DECLARE TRIPLE PRECISION MODE.
002049,000544: 
002050,000545:    6505           22007        SLOAD              ZL                                             #  LOAD A SINGLE PRECISION NUMBER INTO
002051,000546:    6506           50102                           INDEX    ADDRWD                                #  MPAC, SETTING MPAC+1,2 TO ZERO. THE
002052,000547:    6507           30000                           CA       0                                     #  CONTENTS OF THE REMAINING MPAC REGISTERS
002053,000548:    6510           16470                           TCF      SLOAD2                                #  ARE IRRELEVANT.
002054,000549: 
002055,000550:    6511           00006        VLOAD              EXTEND                                         #  LOAD A DOUBLE PRECISION VECTOR INTO
002056,000551:    6512           50102                           INDEX    ADDRWD                                #  MPAC,+1, MPAC+3,4, AND MPAC+5,6. THE
002057,000552:    6513           30001                           DCA      0                                     #  CONTENTS OF MPAC +2 ARE IRRELEVANT.
002058,000553:    6514           52141                           DXCH     MPAC                                  
002059,000554: 
002060,000555:    6515           00006        ENDVLOAD           EXTEND                                         #  PDVL COMES HERE TO FINISH UP FOR DP, TP.
002061,000556:    6516           50102                           INDEX    ADDRWD                                
002062,000557:    6517           30003                           DCA      2                                     
002063,000558:    6520           52144                           DXCH     MPAC       +3                         
002064,000559: 
002065,000560:    6521           00006                 +4        EXTEND                                         #  TPDVL FINISHES HERE.
002066,000561:    6522           50102                           INDEX    ADDRWD                                
002067,000562:    6523           30005                           DCA      4                                     
002068,000563:    6524           52146                           DXCH     MPAC       +5                         
002069,000564: 
002070,000565:    6525           47657                           CS       ONE                                   #  DECLARE VECTOR MODE.
002071,000566:    6526           16013                           TCF      NEWMODE                               
002072,000567: 

Page 51

002074,000569:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE PROVIDED FOR STORING OPERANDS IN THE PUSHDOWN LIST:
002075,000570: 
002076,000571:                                                                                                  #           1.  PUSH               PUSHDOWN AND NO LOAD.
002077,000572:                                                                                                  #           2.  PDDL               PUSHDOWN AND DOUBLE PRECISION LOAD.
002078,000573:                                                                                                  #           3.  PDVL               PUSHDOWN AND VECTOR LOAD.
002079,000574: 
002080,000575:    6527           00006        PDDL               EXTEND                                         
002081,000576:    6530           50102                           INDEX    ADDRWD                                #  LOAD MPAC,+1, PUSHING THE FORMER
002082,000577:    6531           30001                           DCA      0                                     #  CONTENTS DOWN.
002083,000578:    6532           52141                           DXCH     MPAC                                  
002084,000579:    6533           50152                           INDEX    PUSHLOC                               
002085,000580:    6534           52001                           DXCH     0                                     
002086,000581: 
002087,000582:    6535           50147                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER APPRO-
002088,000583:    6536           36164                           CAF      NO.WDS                                #  PRIATELY.
002089,000584:    6537           26152                           ADS      PUSHLOC                               
002090,000585: 
002091,000586:    6540           10147                           CCS      MODE                                  
002092,000587:    6541           16556                           TCF      ENDTPUSH                              
002093,000588:    6542           16554                           TCF      ENDDPUSH                              
002094,000589: 
002095,000590:    6543           54147                           TS       MODE                                  #  NOW DP.
002096,000591:    6544           54142        ENDVPUSH           TS       MPAC       +2                         
002097,000592:    6545           52144                           DXCH     MPAC       +3                         #  PUSH DOWN THE REST OF THE VECTOR HERE.
002098,000593:    6546           50152                           INDEX    PUSHLOC                               
002099,000594:    6547           51775                           DXCH     0          -4                         
002100,000595: 
002101,000596:    6550           52146                           DXCH     MPAC       +5                         
002102,000597:    6551           50152                           INDEX    PUSHLOC                               
002103,000598:    6552           51777                           DXCH     0          -2                         
002104,000599: 
002105,000600:    6553           16014                           TCF      DANZIG                                
002106,000601: 
002107,000602:    6554           54142        ENDDPUSH           TS       MPAC       +2                         #  SET MPAC +2 TO ZERO AND EXIT ON DP.
002108,000603:    6555           16014                           TCF      DANZIG                                
002109,000604: 
002110,000605:    6556           54147        ENDTPUSH           TS       MODE                                  
002111,000606:    6557           56142                           XCH      MPAC       +2                         #  ON TRIPLE, SET MPAC +2 TO ZERO, PUSHING
002112,000607:    6560           50152                 +2        INDEX    PUSHLOC                               #  DOWN THE OLD CONTENTS
002113,000608:    6561           53777                           TS       0          -1                         
002114,000609:    6562           16014                           TCF      DANZIG                                
002115,000610: 

Page 52

002117,000612:                                                                                                  #           PDVL - PUSHDOWN AND VECTOR LOAD.
002118,000613: 
002119,000614:    6563           00006        PDVL               EXTEND                                         #  RELOAD MPAC AND PUSH DOWN ITS CONTENTS.
002120,000615:    6564           50102                           INDEX    ADDRWD                                
002121,000616:    6565           30001                           DCA      0                                     
002122,000617:    6566           52141                           DXCH     MPAC                                  
002123,000618:    6567           50152                           INDEX    PUSHLOC                               
002124,000619:    6570           52001                           DXCH     0                                     
002125,000620: 
002126,000621:    6571           50147                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER.
002127,000622:    6572           36164                           CAF      NO.WDS                                
002128,000623:    6573           26152                           ADS      PUSHLOC                               
002129,000624: 
002130,000625:    6574           10147                           CCS      MODE                                  #  TEST PAST MODE.
002131,000626:    6575           16614                           TCF      TPDVL                                 
002132,000627:    6576           16515                           TCF      ENDVLOAD                              #  JUST LOAD LAST FOUR REGISTERS ON DP.
002133,000628: 
002134,000629:    6577           00006        VPDVL              EXTEND                                         #  PUSHDOWN AND RE-LOAD LAST TWO COMPONENTS
002135,000630:    6600           50102                           INDEX    ADDRWD                                
002136,000631:    6601           30003                           DCA      2                                     
002137,000632:    6602           52144                           DXCH     MPAC       +3                         
002138,000633:    6603           50152                           INDEX    PUSHLOC                               
002139,000634:    6604           51775                           DXCH     0          -4                         
002140,000635: 
002141,000636:    6605           00006                           EXTEND                                         
002142,000637:    6606           50102                           INDEX    ADDRWD                                
002143,000638:    6607           30005                           DCA      4                                     
002144,000639:    6610           52146                           DXCH     MPAC       +5                         
002145,000640:    6611           50152                           INDEX    PUSHLOC                               
002146,000641:    6612           51777                           DXCH     0          -2                         
002147,000642: 
002148,000643:    6613           16014                           TCF      DANZIG                                
002149,000644: 
002150,000645:    6614           00006        TPDVL              EXTEND                                         #  ON TP, WE MUST LOAD THE Y COMPONENT
002151,000646:    6615           50102                           INDEX    ADDRWD                                #  BEFORE STORING MPAC +2 IN CASE THIS IS A
002152,000647:    6616           30003                           DCA      2                                     #  PUSHUP.
002153,000648:    6617           52144                           DXCH     MPAC       +3                         
002154,000649: 
002155,000650:    6620           30142                           CA       MPAC       +2                         
002156,000651:    6621           50152                           INDEX    PUSHLOC                               #  IN DP.
002157,000652:    6622           53777                           TS       0          -1                         
002158,000653:    6623           16521                           TCF      ENDVLOAD   +4                         
002159,000654: 
002160,000655:                                                                                                  #           SSP (STORE SINGLE PRECISION) IS EXECUTED HERE.
002161,000656: 
002162,000657:    6624           24150        SSP                INCR     LOC                                   #  PICK UP THE WORD FOLLOWING THE GIVEN
002163,000658:    6625           50150                           INDEX    LOC                                   #  ADDRESS AND STORE IT AT X.
002164,000659:    6626           30000                           CA       0                                     
002165,000660:    6627           50102        STORE1             INDEX    ADDRWD                                #  SOME INDEX AND MISCELLANEOUS OPS END
002166,000661:    6630           54000                           TS       0                                     #  HERE.
002167,000662: 

Page 53

002169,000664:    6631           16014                           TCF      DANZIG                                
002170,000665: 

Page 54

002172,000667:                                                                                                  #  SEQUENCE CHANGING AND SUBROUTINE CALLING OPTIONS.
002173,000668: 
002174,000669:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR SEQUENCING CHANGING, BRANCHING, AND CALLING SUBROUTINES:
002175,000670: 
002176,000671:                                                                                                  #           1. GOTO                GO TO.
002177,000672:                                                                                                  #           2. CALL                CALL SUBROUTINE SETTING QPRET.
002178,000673:                                                                                                  #           3. CGOTO               COMPUTED GO TO.
002179,000674:                                                                                                  #           4. CCALL               COMPUTED CALL.
002180,000675:                                                                                                  #           7. BPL                 BRANCH IF MPAC POSITIVE OR ZERO.
002181,000676:                                                                                                  #           8. BZE                 BRANCH IF MPAC ZERO.
002182,000677:                                                                                                  #           9. BMN                 BRANCH IF MPAC NEGATIVE NON-ZERO.
002183,000678: 
002184,000679:    6632           24150        CCALL              INCR     LOC                                   #  MAINTAIN LOC FOR QPRET COMPUTATION.
002185,000680:    6633           50150                           INDEX    LOC                                   
002186,000681:    6634           30000                           CAF      0                                     #  GET BASE ADDRESS OF CADR LIST.
002187,000682:    6635           50102                           INDEX    ADDRWD                                
002188,000683:    6636           60000                           AD       0                                     #  ADD INCREMENT.
002189,000684:    6637           54004                           TS       FBANK                                 #  SELECT DESIRED CADR.
002190,000685:    6640           76426                           MASK     LOW10                                 
002191,000686:    6641           50000                           INDEX    A                                     
002192,000687:    6642           32000                           CAF      10000                                 
002193,000688:    6643           54103                 -1        TS       POLISH                                
002194,000689: 
002195,000690:    6644           46426        CALL               CS       LOW10                                 #  FOR ANY OF THE CALL OPTIONS, MAKE UP THE
002196,000691:    6645           60150                           AD       LOC                                   #  ADDRESS OF THE NEXT OP-CODE PAIR/STORE
002197,000692:    6646           60151                           AD       BANKSET                               #  CODE AND LEAVE IT IN QPRET. NOTE THAT
002198,000693:    6647           50104                           INDEX    FIXLOC                                #  LOW10 = 2000 - 1.
002199,000694:    6650           54052                           TS       QPRET                                 
002200,000695: 
002201,000696:    6651           30103        GOTO               CA       POLISH                                #  BASIC BRANCHING SEQUENCE.
002202,000697:    6652           54004                           TS       FBANK                                 
002203,000698:    6653           76426                           MASK     LOW10                                 #  MAKE UP 12 BIT SUB-ADDRESS AND FALL INTO
002204,000699:    6654           67645                           AD       2K                                    #  FALL INTO THE INTPRET ENTRY UNLESS THE
002205,000700:    6655           54150                           TS       LOC                                   #  GIVEN ADDRESS WAS IN ERASABLE, IN WHICH
002206,000701:    6656           10004                           CCS      FBANK                                 #  CASE IT IS USED AS THE ADDRESS OF THE
002207,000702:    6657           16002                           TCF      INTPRET    +2                         #  BRANCH ADDRESS.
002208,000703:    6660           16662                           TCF      +2                                    
002209,000704:    6661           16002                           TCF      INTPRET    +2                         
002210,000705: 

Page 55

002212,000707:    6662           40150                           CS       LOC                                   #  THE GIVEN ADDRESS IS IN ERASABLE - SEE
002213,000708:    6663           66710                           AD       EVAC+2K                               #  IF RELATIVE TO THE WORK AREA.
002214,000709:    6664           10000                           CCS      A                                     
002215,000710:    6665           30104                           CA       FIXLOC                                #  ADD FIXLOC IF SO.
002216,000711:    6666           26150                           ADS      LOC                                   
002217,000712: 
002218,000713:    6667           50150                           INDEX    LOC                                   
002219,000714:    6670           26000                           CA       0          -2000                      #  (ADDRESS HAD BEEN AUGMENTED BY 2000.)
002220,000715:    6671           16652                           TCF      GOTO       +1                         #  ALLOWS ARBITRARY INDIRECTNESS.
002221,000716: 
002222,000717:    6672           50150        CGOTO              INDEX    LOC                                   #  COMPUTED GO TO. PICK UP ADDRESS OF CADR
002223,000718:    6673           30001                           CA       1                                     #  LIST.
002224,000719:    6674           50102                           INDEX    ADDRWD                                #  ADD MODIFIER.
002225,000720:    6675           60000                           AD       0                                     
002226,000721:    6676           54004                           TS       FBANK                                 #  SELECT GOTO ADDRESS.
002227,000722:    6677           76426                           MASK     LOW10                                 
002228,000723:    6700           50000                           INDEX    A                                     
002229,000724:    6701           32000                           CA       10000                                 
002230,000725:    6702           16652                           TCF      GOTO       +1                         #  WITH ADDRESS IN A.
002231,000726: 
002232,000727:    6703           30151        SWBRANCH           CA       BANKSET                               #  SWITCH INSTRUCTIONS WHICH ELECT TO
002233,000728:    6704           54004                           TS       FBANK                                 #  BRANCH COME HERE TO DO SO.
002234,000729:    6705           50150                           INDEX    LOC                                   
002235,000730:    6706           30001                           CA       1                                     
002236,000731:    6707           16652                           TCF      GOTO       +1                         
002237,000732: 
002238,000733:    6710           02055        EVAC+2K            DEC      1069       B-14                       #  =1024+45
002239,000734: 

Page 56

002241,000736:                                                                                                  #           TRIPLE PRECISION BRANCHING ROUTINE. IF CALLING TC IS AT L, RETURN IS AS FOLLOWS:
002242,000737:                                                                                                  #           L+1  IF MPAC IS GREATER THAN ZERO.
002243,000738:                                                                                                  #           L+2  IF MPAC IS EQUAL TO +0 OR -0.
002244,000739:                                                                                                  #           L+3  IF MPAC IS LESS THAN ZERO.
002245,000740: 
002246,000741: 
002247,000742: 
002248,000743:    6711           10140        BRANCH             CCS      MPAC                                  
002249,000744:    6712           00002                           TC       Q                                     
002250,000745:    6713           16715                           TCF      +2                                    #  ON ZERO.
002251,000746:    6714           16727                           TCF      NEG                                   
002252,000747: 
002253,000748:    6715           10141                           CCS      MPAC       +1                         
002254,000749:    6716           00002                           TC       Q                                     
002255,000750:    6717           16721                           TCF      +2                                    
002256,000751:    6720           16727                           TCF      NEG                                   
002257,000752: 
002258,000753:    6721           10142                           CCS      MPAC       +2                         
002259,000754:    6722           00002                           TC       Q                                     
002260,000755:    6723           16725                           TCF      +2                                    
002261,000756:    6724           16727                           TCF      NEG                                   
002262,000757: 
002263,000758:    6725           50002                           INDEX    Q                                     #  IF ALL THREE REGISTERS WERE +-0.
002264,000759:    6726           00001                           TC       1                                     
002265,000760: 
002266,000761:    6727           50002        NEG                INDEX    Q                                     #  IF FIRST NON-ZERO REGISTER WAS NEGATIVE.
002267,000762:    6730           00002                           TC       2                                     
002268,000763: 
002269,000764: 
002270,000765: 
002271,000766:    6731           50150        EXIT               INDEX    LOC                                   #  LEAVE INTERPRETIVE MODE.
002272,000767:    6732           10001                           TCF      1                                     
002273,000768: 

Page 57

002275,000770:                                                                                                  #  SECTION 3 - ADD/SUBTRACT PACKAGE.
002276,000771: 
002277,000772:                                                                                                  #           THE FOLLOWING OPERATIONS ARE PROVIDED FOR ADDING TO AND SUBTRACTING FROM THE MULTI-PURPOSE ACCUMULATOR
002278,000773:                                                                                                  #  MPAC:
002279,000774: 
002280,000775:                                                                                                  #           1. DAD                 DOUBLE PRECISION ADD.
002281,000776:                                                                                                  #           2. DSU                 DOUBLE PRECISION SUBTRACT.
002282,000777:                                                                                                  #           3. BDSU                DOUBLE PRECISION SUBTRACT FROM.
002283,000778: 
002284,000779:                                                                                                  #           4. TAD                 TRIPLE PRECISION ADD.
002285,000780: 
002286,000781:                                                                                                  #           5. VAD                 VECTOR ADD.
002287,000782:                                                                                                  #           6. VSU                 VECTOR SUBTRACT.
002288,000783:                                                                                                  #           7. BVSU                VECTOR SUBTRACT FROM.
002289,000784: 
002290,000785:                                                                                                  #  THE INTERPRETIVE OVERFLOW INDICATOR OVFIND IS SET NON-ZERO IF OVERFLOW OCCURS IN ANY OF THE ABOVE.
002291,000786: 
002292,000787: 
002293,000788: 
002294,000789:    6733           00006        VAD                EXTEND                                         
002295,000790:    6734           50102                           INDEX    ADDRWD                                
002296,000791:    6735           30003                           DCA      2                                     
002297,000792:    6736           20144                           DAS      MPAC       +3                         
002298,000793:    6737           00006                           EXTEND                                         #  CHECK OVERFLOW.
002299,000794:    6740           16742                           BZF      +2                                    
002300,000795:    6741           07007                           TC       OVERFLOW                              
002301,000796: 
002302,000797:    6742           00006                           EXTEND                                         
002303,000798:    6743           50102                           INDEX    ADDRWD                                
002304,000799:    6744           30005                           DCA      4                                     
002305,000800:    6745           20146                           DAS      MPAC       +5                         
002306,000801:    6746           00006                           EXTEND                                         
002307,000802:    6747           16751                           BZF      +2                                    
002308,000803:    6750           07007                           TC       OVERFLOW                              
002309,000804: 
002310,000805:    6751           00006        DAD                EXTEND                                         
002311,000806:    6752           50102                           INDEX    ADDRWD                                
002312,000807:    6753           30001                           DCA      0                                     
002313,000808:    6754           20141        ENDVXV             DAS      MPAC                                  #  VXV FINISHES HERE.
002314,000809:    6755           00006                           EXTEND                                         
002315,000810:    6756           16014                           BZF      DANZIG                                
002316,000811:    6757           07007                           TC       OVERFLOW                              
002317,000812:    6760           16014                           TCF      DANZIG                                
002318,000813: 

Page 58

002320,000815:    6761           00006        VSU                EXTEND                                         
002321,000816:    6762           50102                           INDEX    ADDRWD                                
002322,000817:    6763           40003                           DCS      2                                     
002323,000818:    6764           20144                           DAS      MPAC       +3                         
002324,000819:    6765           00006                           EXTEND                                         
002325,000820:    6766           16770                           BZF      +2                                    
002326,000821:    6767           07007                           TC       OVERFLOW                              
002327,000822: 
002328,000823:    6770           00006                           EXTEND                                         
002329,000824:    6771           50102                           INDEX    ADDRWD                                
002330,000825:    6772           40005                           DCS      4                                     
002331,000826:    6773           20146                           DAS      MPAC       +5                         
002332,000827:    6774           00006                           EXTEND                                         
002333,000828:    6775           16777                           BZF      +2                                    
002334,000829:    6776           07007                           TC       OVERFLOW                              
002335,000830: 
002336,000831:    6777           00006        DSU                EXTEND                                         
002337,000832:    7000           50102                           INDEX    ADDRWD                                
002338,000833:    7001           40001                           DCS      0                                     
002339,000834:    7002           20141                           DAS      MPAC                                  
002340,000835:    7003           00006                           EXTEND                                         
002341,000836:    7004           16014                           BZF      DANZIG                                
002342,000837:    7005           07007                           TC       OVERFLOW                              
002343,000838:    7006           16014                           TCF      DANZIG                                
002344,000839: 
002345,000840:    7007           37657        OVERFLOW           CAF      ONE                                   #  SUBROUTINE TO TURN OVFIND ON.
002346,000841:    7010           17132                           TCF      SETOVF2                               
002347,000842: 

Page 59

002349,000844:    7011           00006        BVSU               EXTEND                                         
002350,000845:    7012           50102                           INDEX    ADDRWD                                
002351,000846:    7013           30003                           DCA      2                                     
002352,000847:    7014           52144                           DXCH     MPAC       +3                         
002353,000848:    7015           00006                           EXTEND                                         
002354,000849:    7016           40001                           DCOM                                           
002355,000850:    7017           20144                           DAS      MPAC       +3                         
002356,000851:    7020           00006                           EXTEND                                         
002357,000852:    7021           17023                           BZF      +2                                    
002358,000853:    7022           07007                           TC       OVERFLOW                              
002359,000854: 
002360,000855:    7023           00006                           EXTEND                                         
002361,000856:    7024           50102                           INDEX    ADDRWD                                
002362,000857:    7025           30005                           DCA      4                                     
002363,000858:    7026           52146                           DXCH     MPAC       +5                         
002364,000859:    7027           00006                           EXTEND                                         
002365,000860:    7030           40001                           DCOM                                           
002366,000861:    7031           20146                           DAS      MPAC       +5                         
002367,000862:    7032           00006                           EXTEND                                         
002368,000863:    7033           17035                           BZF      +2                                    
002369,000864:    7034           07007                           TC       OVERFLOW                              
002370,000865: 
002371,000866:    7035           00006        BDSU               EXTEND                                         
002372,000867:    7036           50102                           INDEX    ADDRWD                                
002373,000868:    7037           30001                           DCA      0                                     
002374,000869:    7040           52141                           DXCH     MPAC                                  
002375,000870:    7041           00006                           EXTEND                                         
002376,000871:    7042           40001                           DCOM                                           
002377,000872:    7043           20141                           DAS      MPAC                                  
002378,000873:    7044           00006                           EXTEND                                         
002379,000874:    7045           16014                           BZF      DANZIG                                
002380,000875:    7046           07007                           TC       OVERFLOW                              
002381,000876:    7047           16014                           TCF      DANZIG                                
002382,000877: 

Page 60

002384,000879:                                                                                                  #           TRIPLE PRECISION ADD ROUTINE.
002385,000880: 
002386,000881:    7050           00006        TAD                EXTEND                                         
002387,000882:    7051           50102                           INDEX    ADDRWD                                
002388,000883:    7052           30002                           DCA      1                                     #  ADD MINOR PARTS FIRST.
002389,000884:    7053           20142                           DAS      MPAC       +1                         
002390,000885:    7054           50102                           INDEX    ADDRWD                                
002391,000886:    7055           60000                           AD       0                                     
002392,000887:    7056           60140                           AD       MPAC                                  
002393,000888:    7057           54140                           TS       MPAC                                  
002394,000889:    7060           16014                           TCF      DANZIG                                
002395,000890: 
002396,000891:    7061           54105        SETOVF             TS       OVFIND                                #  SET OVFIND IF SUCH OCCURS.
002397,000892:    7062           16014                           TCF      DANZIG                                
002398,000893: 

Page 61

002400,000895:                                                                                                  #  ARITHMETIC SUBROUTINES REQUIRED IN FIXED-FIXED.
002401,000896: 
002402,000897:                                                                                                  #           1.  DMPSUB     DOUBLE PRECISION MULTIPLY. MULTIPLY THE CONTENTS OF MPAC,+1 BY THE DP WORD WHOSE ADDRESS
002403,000898:                                                                                                  #                          IS IN ADDRWD AND LEAVE A TRIPLE PRECISION RESULT IN MPAC.
002404,000899:                                                                                                  #           2.  ROUNDSUB   ROUND THE TRIPLE PRECISON CONTENTS OF MPAC TO DOUBLE PRECISION.
002405,000900:                                                                                                  #           3.  DOTSUB     TAKE THE DOT PRODUCT OF THE VECTOR IN MPAC AND THE VECTOR WHOSE ADDRESS IS IN ADDRWD
002406,000901:                                                                                                  #                          AND LEAVE THE TRIPLE PRECISION RESULT IN MPAC.
002407,000902:                                                                                                  #           4.  POLY       USING THE CONTENTS OF MPAC AS A DP ARGUMENT, EVALUATE THE POLYNOMIAL WHOSE DEGREE AND
002408,000903:                                                                                                  #                          COEFFICIENTS IMMEDIATELY FOLLOW THE TC POLY INSTRUCTION (SEE ROUTINE FOR DETAILS).
002409,000904: 
002410,000905: 
002411,000906: 
002412,000907:    7063           50002        DMP                INDEX    Q                                     #  BASIC SUBROUTINE FOR USE BY PINBALL, ETC
002413,000908:    7064           30000                           CAF      0                                     #  ADRES OF ARGUMENT FOLLOWS  TC DMP  .
002414,000909:    7065           24002                           INCR     Q                                     
002415,000910:    7066           54102                 -1        TS       ADDRWD                                #  (PROLOGUE FOR SETTING ADDRWD.)
002416,000911: 
002417,000912:    7067           50102        DMPSUB             INDEX    ADDRWD                                #  GET MINOR PART OF OPERAND AT C(ADDRWD).
002418,000913:    7070           30001                           CA       1                                     
002419,000914:    7071           54142                           TS       MPAC       +2                         #  THIS WORKS FOR SQUARING MPAC AS WELL.
002420,000915:    7072           37665                           CAF      ZERO                                  #  SET MPAC +1 TO ZERO SO WE CAN ACCUMULATE
002421,000916:    7073           56141                           XCH      MPAC       +1                         #  THE PARTIAL PRODUCTS WITH DAS
002422,000917:    7074           54121                           TS       MPTEMP                                #  INSTRUCTIONS.
002423,000918:    7075           00006                           EXTEND                                         
002424,000919:    7076           70142                           MP       MPAC       +2                         #  MINOR OF MPAC X MINOR OF C(ADDRWD).
002425,000920: 
002426,000921:    7077           56142                           XCH      MPAC       +2                         #  DISCARD MINOR PART OF ABOVE RESULT AND
002427,000922:    7100           00006                           EXTEND                                         #  FORM MAJOR OF MPAC X MINOR OF C(ADDRWD).
002428,000923:    7101           70140                           MP       MPAC                                  
002429,000924:    7102           20142                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002430,000925: 
002431,000926:    7103           50102                           INDEX    ADDRWD                                #  GET MAJOR PART OF ARGUMENT AT C(ADDRWD).
002432,000927:    7104           30000                           CA       0                                     
002433,000928:    7105           56121                           XCH      MPTEMP                                #  SAVE AND BRING OUT MINOR OF MPAC.
002434,000929:    7106           00006                           EXTEND                                         
002435,000930:    7107           70121                           MP       MPTEMP                                #  MAJOR OF C(ADDRWD) X MINOR OF MPAC.
002436,000931:    7110           20142                           DAS      MPAC       +1                         #  ACCUMULATE, SETTING A TO NET OVERFLOW.
002437,000932: 
002438,000933:    7111           56140                           XCH      MPAC                                  #  SETTING MPAC TO 0 OR +-1.
002439,000934:    7112           00006                           EXTEND                                         
002440,000935:    7113           70121                           MP       MPTEMP                                #  MAJOR OF MPAC X MAJOR OF C(ADDRWD).
002441,000936:    7114           20141                           DAS      MPAC                                  #  GUARANTEED NO OVERFLOW.
002442,000937:    7115           00002                           TC       Q                                     #  49 MCT = .573 MS. INCLUDING RETURN.
002443,000938: 

Page 62

002445,000940:                                                                                                  #           ROUND MPAC TO DOUBLE PRECISION, SETTING OVFIND ON THE RARE EVENT OF OVERFLOW.
002446,000941: 
002447,000942:    7116           37665        ROUNDSUB           CAF      ZERO                                  #  SET MPAC +2 = 0 FOR SCALARS AND CHANGE
002448,000943:    7117           54147                 +1        TS       MODE                                  #  MODE TO DP.
002449,000944: 
002450,000945:    7120           56142        VROUND             XCH      MPAC       +2                         #  BUT WE NEEDNT TAKE THE TIME FOR VECTORS.
002451,000946:    7121           60000                           DOUBLE                                         
002452,000947:    7122           54001                           TS       L                                     
002453,000948:    7123           00002                           TC       Q                                     
002454,000949: 
002455,000950:    7124           60141                           AD       MPAC       +1                         #  ADD ROUNDING BIT IF MPAC +2 WAS GREATER
002456,000951:    7125           54141                           TS       MPAC       +1                         #  THAN .5 IN MAGNITUDE.
002457,000952:    7126           00002                           TC       Q                                     
002458,000953: 
002459,000954:    7127           60140                           AD       MPAC                                  #  PROPAGATE INTERFLOW.
002460,000955:    7130           54140                           TS       MPAC                                  
002461,000956:    7131           00002                           TC       Q                                     
002462,000957: 
002463,000958:    7132           54105        SETOVF2            TS       OVFIND                                #  (RARE).
002464,000959:    7133           00002                           TC       Q                                     
002465,000960: 

Page 63

002467,000962:                                                                                                  #           THE DOT PRODUCT SUBROUTINE USUALLY FORMS THE DOT PRODUCT OF THE VECTOR IN MPAC WITH A STANDARD SIX
002468,000963:                                                                                                  #  REGISTER VECTOR WHOSE ADDRESS IS IN ADDRWD. IN THIS CASE C(DOTINC) ARE SET TO 2. VXM, HOWEVER, SETS C(DOTINC) TO
002469,000964:                                                                                                  #  6 SO THAT DOTSUB DOTS MPAC WITH A COLUMN VECTOR OF THE MATRIX IN QUESTION IN THIS CASE.
002470,000965: 
002471,000966: 
002472,000967: 
002473,000968:    7134           37656        PREDOT             CAF      TWO                                   #  PROLOGUE TO SET DOTINC TO 2.
002474,000969:    7135           54122                           TS       DOTINC                                
002475,000970: 
002476,000971:    7136           00006        DOTSUB             EXTEND                                         
002477,000972:    7137           22123                           QXCH     DOTRET                                #  SAVE RETURN.
002478,000973:    7140           07067                           TC       DMPSUB                                #  DOT X COMPONENTS.
002479,000974:    7141           52144                           DXCH     MPAC       +3                         #  POSITION Y COMPONENT OF MPAC FOR
002480,000975:    7142           52141                           DXCH     MPAC                                  #  MULTIPLICATION WHILE SAVING RESULT IN
002481,000976:    7143           52115                           DXCH     BUF                                   #  THREE WORD BUFFER, BUF.
002482,000977:    7144           30142                           CA       MPAC       +2                         
002483,000978:    7145           54116                           TS       BUF        +2                         
002484,000979: 
002485,000980:    7146           30122                           CA       DOTINC                                #  ADVANCE ADDRWD TO Y COMPONENT OF
002486,000981:    7147           26102                           ADS      ADDRWD                                #  OTHER ARGUMENT.
002487,000982:    7150           07067                           TC       DMPSUB                                
002488,000983:    7151           52142                           DXCH     MPAC       +1                         #  ACCUMULATE PARTIAL PRODUCTS.
002489,000984:    7152           20116                           DAS      BUF        +1                         
002490,000985:    7153           60140                           AD       MPAC                                  
002491,000986:    7154           60114                           AD       BUF                                   
002492,000987:    7155           54114                           TS       BUF                                   
002493,000988:    7156           17160                           TCF      +2                                    
002494,000989:    7157           54105                           TS       OVFIND                                #  IF OVERFLOW OCCURS.
002495,000990: 
002496,000991:    7160           52146                           DXCH     MPAC       +5                         #  MULTIPLY Z COMPONENTS.
002497,000992:    7161           52141                           DXCH     MPAC                                  
002498,000993:    7162           30122                           CA       DOTINC                                
002499,000994:    7163           26102                           ADS      ADDRWD                                
002500,000995:    7164           07067                           TC       DMPSUB                                
002501,000996:    7165           52116        ENDDOT             DXCH     BUF        +1                         #  LEAVE FINAL ACCUMULATION IN MPAC.
002502,000997:    7166           20142                           DAS      MPAC       +1                         
002503,000998:    7167           60140                           AD       MPAC                                  
002504,000999:    7170           60114                           AD       BUF                                   
002505,001000:    7171           54140                           TS       MPAC                                  
002506,001001:    7172           00123                           TC       DOTRET                                
002507,001002: 
002508,001003:    7173           54105                           TS       OVFIND                                #  ON OVERFLOW HERE.
002509,001004:    7174           00123                           TC       DOTRET                                
002510,001005: 

Page 64

002512,001007:                                                                                                  #  DOUBLE PRECISION POLYNOMIAL EVALUATOR
002513,001008: 
002514,001009:                                                                                                  #                                     N        N-1
002515,001010:                                                                                                  #           THIS ROUTINE EVALUATES A X  + A   X    + ... + A  X + A  LEAVING THE DP RESULT IN MPAC ON EXIT.
002516,001011:                                                                                                  #                                   N      N-1              1      0
002517,001012: 
002518,001013:                                                                                                  #  THE ROUTINE HAS TWO ENTRIES
002519,001014: 
002520,001015:                                                                                                  #           1. ENTRY THRU POWRSERS. THE COEFFICIENTS MAY BE EITHER IN FIXED OR ERASABLE, THE CALL IS BY
002521,001016:                                                                                                  #              TC POWRSERS, AND THE RETURN IS TO LOC(TC POWRSERS)+1. THE ENTERING DATA MUST BE AS FOLLOWS
002522,001017: 
002523,001018:                                                                                                  #                                          A        SP     LOC-3           ADDRESS FOR REFERENCING COEF TABLE
002524,001019:                                                                                                  #                                          L        SP     N-1             N IS THE DEGREE OF THE POWER SERIES
002525,001020:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
002526,001021: 
002527,001022:                                                                                                  #                                          LOC-2N   DP     A(0)
002528,001023:                                                                                                  #                                                   ...
002529,001024:                                                                                                  #                                          LOC      DP     A(N)
002530,001025: 
002531,001026:                                                                                                  #           2. ENTRY THRU POLY. THE CALL TO POLY AND THE ENTERING DATA MUST BE AS FOLLOWS
002532,001027: 
002533,001028:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
002534,001029: 
002535,001030:                                                                                                  #                                          LOC      TC     POLY
002536,001031:                                                                                                  #                                          LOC+1    SP     N-1
002537,001032:                                                                                                  #                                          LOC+2    DP     A(0)
002538,001033:                                                                                                  #                                                   ...
002539,001034:                                                                                                  #                                          LOC+2N+2 DP     A(N)            RETURN IS TO LOC+2N+4
002540,001035: 
002541,001036:    7175           00006        POWRSERS           EXTEND                                         
002542,001037:    7176           22125                           QXCH     POLYRET                               #  RETURN ADDRESS
002543,001038:    7177           54103                           TS       POLISH                                #  POWER SERIES ADDRESS
002544,001039:    7200           22124                           LXCH     POLYCNT                               #  N-1 TO COUNTER
002545,001040:    7201           17212                           TCF      POLYCOM                               #  SKIP SET UP BY POLY
002546,001041: 
002547,001042:    7202           50002        POLY               INDEX    Q                                     
002548,001043:    7203           30000                           CAF      0                                     
002549,001044:    7204           54124                           TS       POLYCNT                               #  N-1 TO COUNTER
002550,001045:    7205           60000                           DOUBLE                                         
002551,001046:    7206           60002                           AD       Q                                     
002552,001047:    7207           54103                           TS       POLISH                                #  L(A(N))-3 TO POLISH
002553,001048:    7210           67664                           AD       FIVE                                  
002554,001049:    7211           54125                           TS       POLYRET                               #  STORE RETURN ADDRESS
002555,001050: 
002556,001051:    7212           37677        POLYCOM            CAF      LVBUF                                 #  INCOMING X WILL BE MOVED TO VBUF, SO
002557,001052:    7213           54102                           TS       ADDRWD                                #  SET ADDRWD SO DMPSUB WILL MPY BY VBUF.
002558,001053: 
002559,001054:    7214           00006                           EXTEND                                         
002560,001055:    7215           50103                           INDEX    POLISH                                
002561,001056:    7216           30004                           DCA      3                                     
002562,001057: 

Page 65

002564,001059:    7217           52141                           DXCH     MPAC                                  #  LOAD A(N) INTO MPAC.
002565,001060:    7220           52107                           DXCH     VBUF                                  #  SAVING X IN VBUF
002566,001061:    7221           17225                           TCF      POLY2                                 
002567,001062: 
002568,001063:    7222           54124        POLYLOOP           TS       POLYCNT                               #  SAVE DECREMENTED LOOP COUNTER
002569,001064:    7223           47656                           CS       TWO                                   
002570,001065:    7224           26103                           ADS      POLISH                                #  REGRESS COEFFICIENT POINTER
002571,001066: 
002572,001067:    7225           07067        POLY2              TC       DMPSUB                                #  MULTIPLY BY X
002573,001068:    7226           00006                           EXTEND                                         
002574,001069:    7227           50103                           INDEX    POLISH                                
002575,001070:    7230           30002                           DCA      1                                     #  ADD IN NEXT COEFFICIENT
002576,001071:    7231           20141                           DAS      MPAC                                  #  USERS RESPONSIBILITY TO ASSURE NO OVFLOW
002577,001072: 
002578,001073:    7232           10124                           CCS      POLYCNT                               
002579,001074:    7233           17222                           TCF      POLYLOOP                              
002580,001075:    7234           00125                           TC       POLYRET                               #  RETURN CALLER
002581,001076: 

Page 66

002583,001078:                                                                                                  #           MISCELLANEOUS MULTI-PRECISION ROUTINES REQUIRED IN FIXED-FIXED BUT NOT USED BY THE INTERPRETER.
002584,001079: 
002585,001080:    7235           00006        TPAGREE            EXTEND                                         #  FORCE SIGN AGREEMENT AMONG THE TRIPLE-
002586,001081:    7236           22114                           QXCH     BUF                                   #  PRECISION CONTENTS OF MPAC, RETURNING
002587,001082:    7237           06711                           TC       BRANCH                                #  WITH THE SIGNUM OF THE INPUT IN A.
002588,001083:    7240           17244                           TCF      ARG+                                  
002589,001084:    7241           17264                           TCF      ARGZERO                               
002590,001085: 
002591,001086:    7242           47637                           CS       POSMAX                                #  IF NEGATIVE.
002592,001087:    7243           17245                           TCF      +2                                    
002593,001088: 
002594,001089:    7244           37637        ARG+               CAF      POSMAX                                
002595,001090:    7245           54115                 +2        TS       BUF        +1                         
002596,001091:    7246           00006                           EXTEND                                         
002597,001092:    7247           24000                           AUG      A                                     #  FORMS +-1.0.
002598,001093:    7250           60142                           AD       MPAC       +2                         
002599,001094:    7251           54142                           TS       MPAC       +2                         
002600,001095:    7252           37665                           CAF      ZERO                                  
002601,001096:    7253           60115                           AD       BUF        +1                         
002602,001097:    7254           60141                           AD       MPAC       +1                         
002603,001098:    7255           54141                           TS       MPAC       +1                         
002604,001099:    7256           37665                           CAF      ZERO                                  
002605,001100:    7257           60115                           AD       BUF        +1                         
002606,001101:    7260           60140                           AD       MPAC                                  
002607,001102:    7261           54140        ARGZERO2           TS       MPAC                                  #  ALWAYS SKIPPING UNLESS ARGZERO.
002608,001103:    7262           54141                           TS       MPAC       +1                         
002609,001104:    7263           00114                           TC       BUF                                   #  RETURN.
002610,001105: 
002611,001106:    7264           54142        ARGZERO            TS       MPAC       +2                         #  SET ALL THREE MPAC REGISTERS TO ZERO.
002612,001107:    7265           17261                           TCF      ARGZERO2                              
002613,001108: 
002614,001109:                                                                                                  #           SHORTMP MULTIPLIES THE TP CONTENTS OF MPAC BY THE SINGLE PRECISION NUMBER ARRIVING IN A.
002615,001110: 
002616,001111:    7266           54121        SHORTMP            TS       MPTEMP                                
002617,001112:    7267           00006                           EXTEND                                         
002618,001113:    7270           70142                           MP       MPAC       +2                         
002619,001114:    7271           54142                           TS       MPAC       +2                         
002620,001115:    7272           37665                           CAF      ZERO                                  #  SO SUBSEQUENT DAS WILL WORK.
002621,001116:    7273           56141                           XCH      MPAC       +1                         
002622,001117:    7274           00006                           EXTEND                                         
002623,001118:    7275           70121                           MP       MPTEMP                                
002624,001119:    7276           20142                           DAS      MPAC       +1                         
002625,001120:    7277           56140                           XCH      MPAC                                  #  SETTING MPAC TO 0.
002626,001121:    7300           00006                           EXTEND                                         
002627,001122:    7301           70121                           MP       MPTEMP                                
002628,001123:    7302           20141                           DAS      MPAC                                  
002629,001124:    7303           00002                           TC       Q                                     
002630,001125: 

Page 67

002632,001127:                                                                                                  #  MISCELLANEOUS VECTOR OPERATIONS. INCLUDED HERE ARE THE FOLLOWING:
002633,001128: 
002634,001129:                                                                                                  #           1.  DOT                DP VECTOR DOT PRODUCT.
002635,001130:                                                                                                  #           2.  VXV                DP VECTOR CROSS PRODUCT.
002636,001131:                                                                                                  #           3.  VXSC               DP VECTOR TIMES SCALAR.
002637,001132:                                                                                                  #           4.  V/SC               DP VECTOR DIVIDED BY SCALAR.
002638,001133:                                                                                                  #           5.  VPROJ              DP VECTOR PROJECTION. ( (MPAC.X)MPAC ).
002639,001134:                                                                                                  #           6.  VXM                DP VECTOR POST-MULTIPLIED BY MATRIX.
002640,001135:                                                                                                  #           7.  MXV                DP VECTOR PRE-MULTIPLIED BY MATRIX.
002641,001136: 
002642,001137:    7304           07134        DOT                TC       PREDOT                                #  DO THE DOT PRODUCT AND EXIT, CHANGING
002643,001138:    7305           37665                           CAF      ZERO                                  #  THE MODE TO DP SCALAR.
002644,001139:    7306           16013                           TCF      NEWMODE                               
002645,001140: 
002646,001141: 
002647,001142: 
002648,001143:    7307           37656        MXV                CAF      TWO                                   #  SET UP MATINC AND DOTINC FOR ROW
002649,001144:    7310           54124                           TS       MATINC                                #  VECTORS.
002650,001145:    7311           17315                           TCF      VXM/MXV                               #  GO TO COMMON PORTION.
002651,001146: 
002652,001147:    7312           47661        VXM                CS       TEN                                   #  SET MATINC AND DOTINC TO REFER TO MATRIX
002653,001148:    7313           54124                           TS       MATINC                                #  AS THREE COLUMN VECTORS.
002654,001149:    7314           36162                           CAF      SIX                                   
002655,001150: 

Page 68

002657,001152:                                                                                                  #           COMMON PORTION OF MXV AND VXM.
002658,001153: 
002659,001154:    7315           54122        VXM/MXV            TS       DOTINC                                
002660,001155:    7316           07506                           TC       MPACVBUF                              #  SAVE VECTOR IN MPAC FOR FURTHER USE.
002661,001156: 
002662,001157:    7317           07136                           TC       DOTSUB                                #  GO DOT TO GET X COMPONENT OF ANSWER.
002663,001158:    7320           00006                           EXTEND                                         
002664,001159:    7321           30107                           DCA      VBUF                                  #  MOVE MPAC VECTOR BACK INTO MPAC, SAVING
002665,001160:    7322           52141                           DXCH     MPAC                                  #  NEW X COMPONENT IN BUF2.
002666,001161:    7323           52120                           DXCH     BUF2                                  
002667,001162:    7324           00006                           EXTEND                                         
002668,001163:    7325           30111                           DCA      VBUF       +2                         
002669,001164:    7326           52144                           DXCH     MPAC       +3                         
002670,001165:    7327           00006                           EXTEND                                         
002671,001166:    7330           30113                           DCA      VBUF       +4                         
002672,001167:    7331           52146                           DXCH     MPAC       +5                         
002673,001168:    7332           30124                           CA       MATINC                                #  INITIALIZE ADDRWD FOR NEXT DOT PRODUCT.
002674,001169:    7333           26102                           ADS      ADDRWD                                #  FORMS BASE ADDRESS OF NEXT COLUMN(ROW).
002675,001170: 
002676,001171:    7334           07136                           TC       DOTSUB                                
002677,001172:    7335           52107                           DXCH     VBUF                                  #  MOVE GIVEN VECTOR BACK TO MPAC, SAVING Y
002678,001173:    7336           52141                           DXCH     MPAC                                  #  COMPONENT OF ANSWER IN VBUF +2.
002679,001174:    7337           52111                           DXCH     VBUF       +2                         
002680,001175:    7340           52144                           DXCH     MPAC       +3                         
002681,001176:    7341           52113                           DXCH     VBUF       +4                         
002682,001177:    7342           52146                           DXCH     MPAC       +5                         
002683,001178:    7343           30124                           CA       MATINC                                #  FORM ADDRESS OF LAST COLUMN OR ROW.
002684,001179:    7344           26102                           ADS      ADDRWD                                
002685,001180: 
002686,001181:    7345           07136                           TC       DOTSUB                                
002687,001182:    7346           52120                           DXCH     BUF2                                  #  ANSWER NOW COMPLETE. PUT COMPONENTS INTO
002688,001183:    7347           52141                           DXCH     MPAC                                  #  PROPER MPAC REGISTERS.
002689,001184:    7350           52146                           DXCH     MPAC       +5                         
002690,001185:    7351           52111                           DXCH     VBUF       +2                         
002691,001186:    7352           52144                           DXCH     MPAC       +3                         
002692,001187:    7353           16014                           TCF      DANZIG                                #  EXIT.
002693,001188: 

Page 69

002695,001190:                                                                                                  #           VXSC - VECTOR TIMES SCALAR.
002696,001191: 
002697,001192:    7354           10147        VXSC               CCS      MODE                                  #  TEST PRESENT MODE.
002698,001193:    7355           17403                           TCF      DVXSC                                 #  SEPARATE ROUTINE WHEN SCALAR IS IN MPAC.
002699,001194:    7356           17403                           TCF      DVXSC                                 
002700,001195: 
002701,001196:    7357           07067        VVXSC              TC       DMPSUB                                #  COMPUTE X COMPONENT
002702,001197:    7360           07120                           TC       VROUND                                #  AND ROUND IT.
002703,001198:    7361           52144                           DXCH     MPAC       +3                         #  PUT Y COMPONENT INTO MPAC SAVING MPAC IN
002704,001199:    7362           52141                           DXCH     MPAC                                  #  MPAC +3.
002705,001200:    7363           52144                           DXCH     MPAC       +3                         
002706,001201: 
002707,001202:    7364           07067                           TC       DMPSUB                                #  DO SAME FOR Y AND Z COMPONENTS.
002708,001203:    7365           07120                           TC       VROUND                                
002709,001204:    7366           52146                           DXCH     MPAC       +5                         
002710,001205:    7367           52141                           DXCH     MPAC                                  
002711,001206:    7370           52146                           DXCH     MPAC       +5                         
002712,001207: 
002713,001208:    7371           07067                           TC       DMPSUB                                
002714,001209:    7372           07120                           TC       VROUND                                
002715,001210:    7373           52141        VROTATEX           DXCH     MPAC                                  #  EXIT USED TO RESTORE MPAC AFTER THIS
002716,001211:    7374           52146                           DXCH     MPAC       +5                         #  TYPE OF ROTATION. CALLED BY VECTOR SHIFT
002717,001212:    7375           52144                           DXCH     MPAC       +3                         #  RIGHT, V/SC, ETC.
002718,001213:    7376           52141                           DXCH     MPAC                                  
002719,001214:    7377           16014                           TCF      DANZIG                                
002720,001215: 

Page 70

002722,001217:                                                                                                  #           DP VECTOR PROJECTION ROUTINE.
002723,001218: 
002724,001219: 
002725,001220: 
002726,001221:    7400           07134        VPROJ              TC       PREDOT                                #  (MPAC.X)MPAC IS COMPUTED AND LEFT IN
002727,001222:    7401           47655                           CS       FOUR                                  #  MPAC. DO DOT AND FALL INTO DVXSC.
002728,001223:    7402           26102                           ADS      ADDRWD                                
002729,001224: 
002730,001225:                                                                                                  #           VXSC WHEN SCALAR ARRIVES IN MPAC AND VECTOR IS AT X.
002731,001226: 
002732,001227:    7403           00006        DVXSC              EXTEND                                         #  SAVE SCALAR IN MPAC +3 AND GET X
002733,001228:    7404           30141                           DCA      MPAC                                  #  COMPONENT OF ANSWER.
002734,001229:    7405           52144                           DXCH     MPAC       +3                         
002735,001230:    7406           07067                           TC       DMPSUB                                
002736,001231:    7407           07120                           TC       VROUND                                
002737,001232: 
002738,001233:    7410           37656                           CAF      TWO                                   #  ADVANCE ADDRWD TO Y COMPONENT OF X.
002739,001234:    7411           26102                           ADS      ADDRWD                                
002740,001235:    7412           00006                           EXTEND                                         
002741,001236:    7413           30144                           DCA      MPAC       +3                         #  PUT SCALAR BACK INTO MPAC AND SAVE
002742,001237:    7414           52141                           DXCH     MPAC                                  #  X RESULT IN MPAC +5.
002743,001238:    7415           52146                           DXCH     MPAC       +5                         
002744,001239:    7416           07067                           TC       DMPSUB                                
002745,001240:    7417           07120                           TC       VROUND                                
002746,001241: 
002747,001242:    7420           37656                           CAF      TWO                                   
002748,001243:    7421           26102                           ADS      ADDRWD                                #  TO Z COMPONENT.
002749,001244:    7422           52144                           DXCH     MPAC       +3                         #  BRING SCALAR BACK, PUTTING Y RESULT IN
002750,001245:    7423           52141                           DXCH     MPAC                                  #  THE PROPER PLACE.
002751,001246:    7424           52144                           DXCH     MPAC       +3                         
002752,001247:    7425           07067                           TC       DMPSUB                                
002753,001248:    7426           07120                           TC       VROUND                                
002754,001249: 
002755,001250:    7427           52141                           DXCH     MPAC                                  #  PUT Z COMPONENT IN PROPER PLACE, ALSO
002756,001251:    7430           52146                           DXCH     MPAC       +5                         #  POSITIONING X.
002757,001252:    7431           52141                           DXCH     MPAC                                  
002758,001253: 
002759,001254:    7432           47657                           CS       ONE                                   #  MODE HAS CHANGED TO VECTOR.
002760,001255:    7433           16013                           TCF      NEWMODE                               
002761,001256: 

Page 71

002763,001258:                                                                                                  #           THE VECTOR CROSS PRODUCT ROUTINE CALCULATES (X M -X M ,X M -X M ,X M -X M ) WHERE M IS THE VECTOR IN
002764,001259:                                                                                                  #                                                         3 2  2 3  1 3  3 1  2 1  1 2
002765,001260:                                                                                                  #  MPAC AND X THE VECTOR AT THE GIVEN ADDRESS.
002766,001261: 
002767,001262: 
002768,001263: 
002769,001264:    7434           00006        VXV                EXTEND                                         
002770,001265:    7435           30146                           DCA      MPAC       +5                         #  FORM UP M3X1, LEAVING M1 IN VBUF.
002771,001266:    7436           52141                           DXCH     MPAC                                  
002772,001267:    7437           52107                           DXCH     VBUF                                  
002773,001268:    7440           07067                           TC       DMPSUB                                #  BY X1.
002774,001269: 
002775,001270:    7441           00006                           EXTEND                                         
002776,001271:    7442           40144                           DCS      MPAC       +3                         #  CALCULATE -X1M2, SAVING X1M3 IN VBUF +2.
002777,001272:    7443           52141                           DXCH     MPAC                                  
002778,001273:    7444           52111                           DXCH     VBUF       +2                         
002779,001274:    7445           07067                           TC       DMPSUB                                
002780,001275: 
002781,001276:    7446           37656                           CAF      TWO                                   #  ADVANCE ADDRWD TO X2.
002782,001277:    7447           26102                           ADS      ADDRWD                                
002783,001278:    7450           00006                           EXTEND                                         
002784,001279:    7451           40146                           DCS      MPAC       +5                         #  PREPARE TO GET -X2M3, SAVING -X1M2 IN
002785,001280:    7452           52141                           DXCH     MPAC                                  #  MPAC +5.
002786,001281:    7453           52146                           DXCH     MPAC       +5                         
002787,001282:    7454           07067                           TC       DMPSUB                                
002788,001283: 
002789,001284:    7455           00006                           EXTEND                                         
002790,001285:    7456           30107                           DCA      VBUF                                  #  GET X2M1, SAVING -X2M3 IN VBUF +4.
002791,001286:    7457           52141                           DXCH     MPAC                                  
002792,001287:    7460           52113                           DXCH     VBUF       +4                         
002793,001288:    7461           07067                           TC       DMPSUB                                
002794,001289: 
002795,001290:    7462           37656                           CAF      TWO                                   #  ADVANCE ADDRWD TO X3.
002796,001291:    7463           26102                           ADS      ADDRWD                                
002797,001292:    7464           00006                           EXTEND                                         
002798,001293:    7465           40107                           DCS      VBUF                                  #  GET -X3M1, ADDING X2M1 TO MPAC +5 TO
002799,001294:    7466           52141                           DXCH     MPAC                                  #  COMPLETE THE Z COMPONENT OF THE ANSWER.
002800,001295:    7467           20146                           DAS      MPAC       +5                         
002801,001296: 
002802,001297:    7470           00006                           EXTEND                                         
002803,001298:    7471           17473                           BZF      +2                                    
002804,001299:    7472           07007                           TC       OVERFLOW                              
002805,001300: 

Page 72

002807,001302:    7473           07067                           TC       DMPSUB                                
002808,001303:    7474           52111                           DXCH     VBUF       +2                         #  MOVE X1M3 TO MPAC +3 SETTING UP FOR X3M2
002809,001304:    7475           52144                           DXCH     MPAC       +3                         #  AND ADD -X3M1 TO MPAC +3 TO COMPLETE THE
002810,001305:    7476           52141                           DXCH     MPAC                                  #  Y COMPONENT OF THE RESULT.
002811,001306:    7477           20144                           DAS      MPAC       +3                         
002812,001307: 
002813,001308:    7500           00006                           EXTEND                                         
002814,001309:    7501           17503                           BZF      +2                                    
002815,001310:    7502           07007                           TC       OVERFLOW                              
002816,001311: 
002817,001312:    7503           07067                           TC       DMPSUB                                
002818,001313:    7504           52113                           DXCH     VBUF       +4                         #  GO ADD -X2M3 TO X3M2 TO COMPLETE THE X
002819,001314:    7505           16754                           TCF      ENDVXV                                #  COMPONENT (TAIL END OF DAD).
002820,001315: 
002821,001316:                                                                                                  #           THE MPACVBUF SUBROUTINE SAVES THE VECTOR IN MPAC IN VBUF WITHOUT CLOBBERING MPAC.
002822,001317: 
002823,001318:    7506           00006        MPACVBUF           EXTEND                                         #  CALLED BY MXV, VXM, AND UNIT.
002824,001319:    7507           30141                           DCA      MPAC                                  
002825,001320:    7510           52107                           DXCH     VBUF                                  
002826,001321:    7511           00006                           EXTEND                                         
002827,001322:    7512           30144                           DCA      MPAC       +3                         
002828,001323:    7513           52111                           DXCH     VBUF       +2                         
002829,001324:    7514           00006                           EXTEND                                         
002830,001325:    7515           30146                           DCA      MPAC       +5                         
002831,001326:    7516           52113                           DXCH     VBUF       +4                         
002832,001327:    7517           00002                           TC       Q                                     #  RETURN TO CALLER.
002833,001328: 

Page 73

002835,001330:                                                                                                  #           INTERPRETIVE INSTRUCTIONS WHOSE EXECUTION CONSISTS OF PRINCIPALLY CALLING SUBROUTINES.
002836,001331: 
002837,001332:    7520           07067        DMP1               TC       DMPSUB                                #  DMP INSTRUCTION.
002838,001333:    7521           16014                           TCF      DANZIG                                
002839,001334: 
002840,001335:    7522           07067        DMPR               TC       DMPSUB                                
002841,001336:    7523           07117                           TC       ROUNDSUB   +1                         #  (C(A) = +0).
002842,001337:    7524           16014                           TCF      DANZIG                                
002843,001338: 
002844,001339:    7525           00006        DDV                EXTEND                                         
002845,001340:    7526           50102                           INDEX    ADDRWD                                #  MOVE DIVIDEND INTO BUF.
002846,001341:    7527           30001                           DCA      0                                     
002847,001342:    7530           17535                           TCF      BDDV       +4                         
002848,001343: 
002849,001344:    7531           00006        BDDV               EXTEND                                         #  MOVE DIVISOR INTO MPAC SAVING MPAC, THE
002850,001345:    7532           50102                           INDEX    ADDRWD                                #  DIVIDEND, IN BUF.
002851,001346:    7533           30001                           DCA      0                                     
002852,001347:    7534           52141                           DXCH     MPAC                                  
002853,001348:    7535           52115                 +4        DXCH     BUF                                   
002854,001349:    7536           37665                           CAF      ZERO                                  #  DIVIDE ROUTINES IN BANK 0.
002855,001350:    7537           54004                           TS       FBANK                                 
002856,001351:    7540           12332                           TCF      DDV/BDDV                              
002857,001352: 
002858,001353:    7541           30102        SETPD              CA       ADDRWD                                #  ANYWHERE IN ERASABLE IN GENERAL, BUT
002859,001354:    7542           54152                           TS       PUSHLOC                               #  ALMOST ALWAYS IN THE WORK AREA.
002860,001355:    7543           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002861,001356: 
002862,001357:    7544           37665        TSLC               CAF      ZERO                                  #  SHIFTING ROUTINES LOCATED IN BANK 00.
002863,001358:    7545           54004                           TS       FBANK                                 
002864,001359:    7546           12153                           TCF      TSLC2                                 
002865,001360: 
002866,001361:    7547           36027        GSHIFT             CAF      LOW7                                  #  USED AS MASK AT GENSHIFT. THIS PROCESSES
002867,001362:    7550           54004                           TS       FBANK                                 #  ANY SHIFT INSTRUCTION (EXCEPT TSLC) WITH
002868,001363:    7551           12174                           TCF      GENSHIFT                              #  AN ADDRESS (ROUTINES IN BANK 0).
002869,001364: 

Page 74

002871,001366:                                                                                                  #           THE FOLLOWING IS THE PROLOGUE TO V/SC. IF THE PRESENT MODE IS VECTOR, IT SAVES THE SCALAR AT X IN BUF
002872,001367:                                                                                                  #  AND CALLS THE V/SC ROUTINE IN BANK 0. IF THE PRESENT MODE IS SCALAR, IT MOVES THE VECTOR AT X INTO MPAC, SAVING
002873,001368:                                                                                                  #  THE SCALAR IN MPAC IN BUF BEFORE CALLING THE V/SC ROUTINE IN BANK 0.
002874,001369: 
002875,001370:    7552           10147        V/SC               CCS      MODE                                  
002876,001371:    7553           17564                           TCF      DV/SC                                 #  MOVE VECTOR INTO MPAC.
002877,001372:    7554           17564                           TCF      DV/SC                                 
002878,001373: 
002879,001374:    7555           00006        VV/SC              EXTEND                                         
002880,001375:    7556           50102                           INDEX    ADDRWD                                
002881,001376:    7557           30001                           DCA      0                                     
002882,001377:    7560           52115        V/SC1              DXCH     BUF                                   #  IN BOTH CASES, VECTOR IS NOW IN MPAC AND
002883,001378:    7561           37665                           CAF      ZERO                                  #  SCALAR IN BUF.
002884,001379:    7562           54004                           TS       FBANK                                 
002885,001380:    7563           12576                           TCF      V/SC2                                 
002886,001381: 
002887,001382:    7564           00006        DV/SC              EXTEND                                         
002888,001383:    7565           50102                           INDEX    ADDRWD                                
002889,001384:    7566           30003                           DCA      2                                     
002890,001385:    7567           52144                           DXCH     MPAC       +3                         
002891,001386:    7570           00006                           EXTEND                                         
002892,001387:    7571           50102                           INDEX    ADDRWD                                
002893,001388:    7572           30005                           DCA      4                                     
002894,001389:    7573           52146                           DXCH     MPAC       +5                         
002895,001390: 
002896,001391:    7574           47657                           CS       ONE                                   #  CHANGE MODE TO VECTOR.
002897,001392:    7575           54147                           TS       MODE                                  
002898,001393: 
002899,001394:    7576           00006                           EXTEND                                         
002900,001395:    7577           50102                           INDEX    ADDRWD                                
002901,001396:    7600           30001                           DCA      0                                     
002902,001397:    7601           52141                           DXCH     MPAC                                  
002903,001398:    7602           17560                           TCF      V/SC1                                 #  FINISH PROLOGUE AT COMMON SECTION.
002904,001399: 

Page 75

002906,001401:                                                                                                  #           SIGN AND COMPLEMENT INSTRUCTIONS.
002907,001402: 
002908,001403:    7603           50102        SIGN               INDEX    ADDRWD                                #  CALL COMP INSTRUCTION IF WORD AT X IS
002909,001404:    7604           10000                           CCS      0                                     #  NEGATIVE NON-ZERO.
002910,001405:    7605           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002911,001406:    7606           17610                           TCF      +2                                    
002912,001407:    7607           17616                           TCF      COMP                                  #  DO THE COMPLEMENT.
002913,001408: 
002914,001409:    7610           50102                           INDEX    ADDRWD                                
002915,001410:    7611           10001                           CCS      1                                     
002916,001411:    7612           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002917,001412:    7613           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002918,001413:    7614           17616                           TCF      COMP                                  
002919,001414:    7615           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002920,001415: 
002921,001416: 
002922,001417: 
002923,001418:    7616           00006        COMP               EXTEND                                         #  COMPLEMENT DP MPAC IN EVERY CASE.
002924,001419:    7617           40141                           DCS      MPAC                                  
002925,001420:    7620           52141                           DXCH     MPAC                                  
002926,001421: 
002927,001422:    7621           10147                           CCS      MODE                                  #  EITHER COMPLEMENT MPAC +3 OR THE REST OF
002928,001423:    7622           17633                           TCF      DCOMP                                 #  THE VECTOR ACCUMULATOR.
002929,001424:    7623           17633                           TCF      DCOMP                                 
002930,001425: 
002931,001426:    7624           00006                           EXTEND                                         #  VECTOR COMPLEMENT.
002932,001427:    7625           40144                           DCS      MPAC       +3                         
002933,001428:    7626           52144                           DXCH     MPAC       +3                         
002934,001429:    7627           00006                           EXTEND                                         
002935,001430:    7630           40146                           DCS      MPAC       +5                         
002936,001431:    7631           52146                           DXCH     MPAC       +5                         
002937,001432:    7632           16014                           TCF      DANZIG                                
002938,001433: 
002939,001434:    7633           40142        DCOMP              CS       MPAC       +2                         
002940,001435:    7634           54142                           TS       MPAC       +2                         
002941,001436:    7635           16014                           TCF      DANZIG                                
002942,001437: 

Page 76

002944,001439:                                                                                                  #           CONSTANTS REQUIRED IN FIXED-FIXED.
002945,001440: 
002946,001441:    7636           37777        DPOSMAX            OCT      37777                                 
002947,001442:    7637           37777        POSMAX             OCT      37777                                 
002948,001443:    7640     7640               LIMITS             EQUALS   POSMAX     +1                         
002949,001444:    7640           57777        NEG1/2             OCT      -20000                                #  MUST BE TWO LOCATIONS AHEAD OF POS1/2.
002950,001445: 
002951,001446:    7641           40000        BIT15              OCT      40000                                 #  BIT TABLE FOLLOWS.
002952,001447:    7642           20000        BIT14              OCT      20000                                 
002953,001448:    7643           10000        BIT13              OCT      10000                                 
002954,001449:    7644           04000        BIT12              OCT      04000                                 
002955,001450:    7645           02000        BIT11              OCT      02000                                 
002956,001451:    7646           01000        BIT10              OCT      01000                                 
002957,001452:    7647           00400        BIT9               OCT      00400                                 
002958,001453:    7650           00200        BIT8               OCT      00200                                 
002959,001454:    7651           00100        BIT7               OCT      00100                                 
002960,001455:    7652           00040        BIT6               OCT      00040                                 
002961,001456:    7653           00020        BIT5               OCT      00020                                 
002962,001457:    7654           00010        BIT4               OCT      00010                                 
002963,001458:    7655           00004        BIT3               OCT      00004                                 
002964,001459:    7656           00002        BIT2               OCT      00002                                 
002965,001460:    7657           00001        BIT1               OCT      00001                                 
002966,001461: 
002967,001462:    7660     7641               NEGMAX             EQUALS   BIT15                                 
002968,001463:    7660     7642               HALF               EQUALS   BIT14                                 
002969,001464:    7660     7642               POS1/2             EQUALS   HALF                                  
002970,001465:    7660     7643               QUARTER            EQUALS   BIT13                                 
002971,001466:    7660     7645               2K                 EQUALS   BIT11                                 
002972,001467:    7660           00013        ELEVEN             DEC      11         B-14                       
002973,001468:    7661     7660               NOUTCON            =        ELEVEN                                
002974,001469:    7661           00012        TEN                DEC      10         B-14                       
002975,001470:    7662           00011        NINE               DEC      9          B-14                       
002976,001471:    7663     7654               EIGHT              EQUALS   BIT4                                  
002977,001472:    7663           00007        SEVEN              OCT      7                                     
002978,001473:    7664     6162               SIX                EQUALS   REVCNT                                
002979,001474:    7664           00005        FIVE               OCT      5                                     
002980,001475:    7665     7655               FOUR               EQUALS   BIT3                                  
002981,001476:    7665     6165               THREE              EQUALS   NO.WDS     +1                         
002982,001477:    7665     7656               TWO                EQUALS   BIT2                                  
002983,001478:    7665     7657               ONE                EQUALS   BIT1                                  
002984,001479:    7665           00000        ZERO               OCT      0                                     
002985,001480:    7666           77777        NEG0               OCT      77777                                 
002986,001481:    7667           77776        NEGONE             DEC      -1         B-14                       
002987,001482: 
002988,001483:    7670     7667               NEG1               =        NEGONE                                
002989,001484:    7670     7667               MINUS1             EQUALS   NEG1                                  
002990,001485:    7670           77775        NEG2               OCT      77775                                 
002991,001486:    7671           77774        NEG3               DEC      -3         B-14                       
002992,001487:    7672           00777        LOW9               OCT      777                                   
002993,001488:    7673           00017        LOW4               OCT      17                                    
002994,001489: 

Page 77

002996,001491:    7674     7663               LOW3               EQUALS   SEVEN                                 
002997,001492:    7674     6165               LOW2               EQUALS   THREE                                 
002998,001493: 
002999,001494:    7674           00030        CALLCODE           OCT      00030                                 
003000,001495:    7675           40014        DLOADCOD           OCT      40014                                 
003001,001496:    7676     7641               VLOADCOD           EQUALS   BIT15                                 
003002,001497:    7676           40015        DLOAD*             OCT      40015                                 
003003,001498:    7677     6042               VLOAD*             EQUALS   OCT40001                              
003004,001499:    7677           00106        LVBUF              ADRES    VBUF                                  
003005,001500:    7700           30000        BIT13-14           OCTAL    30000                                 
003006,001501:    7701                        ENDINTF            EQUALS                                         
003007,001502: 

Page 78

003009,001504:                                                                                                  #  SHIFTING AND ROUNDING PACKAGE.
003010,001505: 
003011,001506:                                                                                                  #           THE FOLLOWING SHORT SHIFT CODES REQUIRE NO ADDRESS WORD:
003012,001507: 
003013,001508:                                                                                                  #           1.  SR1 TO SR4         SCALAR SHIFT RIGHT.
003014,001509:                                                                                                  #           2.  SR1R TO SR4R       SCALAR SHIFT RIGHT AND ROUND.
003015,001510:                                                                                                  #           3.  SL1 TO SL4         SCALAR SHIFT LEFT.
003016,001511:                                                                                                  #           4.  SL1R TO SL4R       SCALAR SHIFT LEFT AND ROUND.
003017,001512: 
003018,001513:                                                                                                  #           5.  VSR1 TO VSR8       VECTOR SHIFT RIGHT (ALWAYS ROUNDS).
003019,001514:                                                                                                  #           6.  VSL1 TO VSL8       VECTOR SHIFT LEFT (NEVER ROUNDS).
003020,001515: 
003021,001516:                                                                                                  #           THE FOLLOWING CODES REQUIRE AN ADDRESS WHICH MAY BE INDEXED:*
003022,001517: 
003023,001518:                                                                                                  #           1.  SR                 SCALAR SHIFT RIGHT.
003024,001519:                                                                                                  #           2.  SRR                SCALAR SHIFT RIGHT AND ROUND.
003025,001520:                                                                                                  #           3.  SL                 SCALAR SHIFT LEFT.
003026,001521:                                                                                                  #           4.  SLR                SCALAR SHIFT LEFT AND ROUND.
003027,001522: 
003028,001523:                                                                                                  #           5.  VSR                VECTOR SHIFT RIGHT.
003029,001524:                                                                                                  #           6.  VSL                VECTOR SHIFT LEFT.
003030,001525: 
003031,001526:                                                                                                  #  *  IF THE ADDRESS IS INDEXED, AND THE INDEX MODIFICATION RESULTS IN A NEGATIVE SHIFT COUNT, A SHIFT OF THE
003032,001527:                                                                                                  #  ABSOLUTE VALUE OF THE COUNT IS DONE IN THE OPPOSITE DIRECTION.
003033,001528: 
003034,001529: 
003035,001530: 00,2000                                           SETLOC   10000                                 #  BANK 0 PORTION FOLLOWS.
003036,001531: 
003037,001532: 00,2000           36162        SHORTT             CAF      SIX                                   #  SCALAR SHORT SHIFTS COME HERE. THE SHIFT
003038,001533: 00,2001           70020                           MASK     CYR                                   #  COUNT-1 IS NOW IN BITS 2-3 OF CYR. THE
003039,001534: 00,2002           54021                           TS       SR                                    #  ROUNDING BIT IS IN BIT1 AT THIS POINT.
003040,001535: 
003041,001536: 00,2003           10020                           CCS      CYR                                   #  SEE IF RIGHT OR LEFT SHIFT DESIRED.
003042,001537: 00,2004           12062                           TCF      TSSL                                  #  SHIFT LEFT.
003043,001538: 
003044,001539: 00,2005           00024        SRDDV              DEC      20         B-14                       #  MPTEMP SETTING FOR SR BEFORE DDV.
003045,001540: 
003046,001541: 00,2006           50021        TSSR               INDEX    SR                                    #  GET SHIFTING BIT.
003047,001542: 00,2007           37642                           CAF      BIT14                                 
003048,001543: 00,2010           54121                           TS       MPTEMP                                
003049,001544: 
003050,001545: 00,2011           10020                           CCS      CYR                                   #  SEE IF A ROUND IS DESIRED.
003051,001546: 00,2012           02031        RIGHTR             TC       MPACSRND                              #  YES - SHIFT RIGHT AND ROUND.
003052,001547: 00,2013           16013                           TCF      NEWMODE                               #  SET MODE TO DP (C(A) = 0).
003053,001548: 00,2014           30121        MPACSHR            CA       MPTEMP                                #  DO A TRIPLE PRECISION SHIFT RIGHT.
003054,001549: 00,2015           00006                           EXTEND                                         
003055,001550: 00,2016           70142                           MP       MPAC       +2                         
003056,001551: 00,2017           54142                 +3        TS       MPAC       +2                         #  (EXIT FROM SQRT AND ABVAL).
003057,001552: 00,2020           30121                           CA       MPTEMP                                
003058,001553: 

Page 79

003060,001555: 00,2021           00006                           EXTEND                                         
003061,001556: 00,2022           70140                           MP       MPAC                                  #  SHIFT MAJOR PART INTO A,L AND PLACE IN
003062,001557: 00,2023           52141                           DXCH     MPAC                                  #  MPAC,+1.
003063,001558: 00,2024           30121                           CA       MPTEMP                                
003064,001559: 00,2025           00006                           EXTEND                                         
003065,001560: 00,2026           70001                           MP       L                                     #  ORIGINAL C(MPAC +1).
003066,001561: 00,2027           20142                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
003067,001562: 00,2030           16014                           TCF      DANZIG                                
003068,001563: 
003069,001564:                                                                                                  #           MPAC SHIFT RIGHT AND ROUND SUBROUTINES.
003070,001565: 
003071,001566: 00,2031           30142        MPACSRND           CA       MPAC       +2                         #  WE HAVE TO DO ALL THREE MULTIPLIES SINCE
003072,001567: 00,2032           00006                           EXTEND                                         #  MPAC +1 AND MPAC +2 MIGHT HAVE SIGN
003073,001568: 00,2033           70121                           MP       MPTEMP                                #  DISAGREEMENT WITH A SHIFT RIGHT OF 1.
003074,001569: 00,2034           56141                           XCH      MPAC       +1                         
003075,001570: 00,2035           00006                           EXTEND                                         
003076,001571: 00,2036           70121                           MP       MPTEMP                                
003077,001572: 00,2037           56141                           XCH      MPAC       +1                         #  TRIAL MINOR PART.
003078,001573: 00,2040           60001                           AD       L                                     
003079,001574: 
003080,001575: 00,2041           60000        VSHR2              DOUBLE                                         #  (FINISH VECTOR COMPONENT SHIFT RIGHT
003081,001576: 00,2042           54142                           TS       MPAC       +2                         #  AND ROUND.
003082,001577: 00,2043           12045                           TCF      +2                                    
003083,001578: 00,2044           26141                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
003084,001579: 
003085,001580: 00,2045           37665                           CAF      ZERO                                  
003086,001581: 00,2046           54142                           TS       MPAC       +2                         
003087,001582: 00,2047           56140                           XCH      MPAC                                  #  SETTING TO ZERO SO FOLLOWING DAS WORKS.
003088,001583: 00,2050           00006                           EXTEND                                         
003089,001584: 00,2051           70121                           MP       MPTEMP                                
003090,001585: 00,2052           20141                           DAS      MPAC                                  #  AGAIN NO OVERFLOW.
003091,001586: 00,2053           00002                           TC       Q                                     
003092,001587: 
003093,001588: 00,2054           30121        VSHRRND            CA       MPTEMP                                #  ENTRY TO SHIFT RIGHT AND ROUND MPAC WHEN
003094,001589: 00,2055           00006                           EXTEND                                         #  MPAC CONTAINS A VECTOR COMPONENT.
003095,001590: 00,2056           70141                           MP       MPAC       +1                         
003096,001591: 00,2057           54141                           TS       MPAC       +1                         
003097,001592: 00,2060           56001                           XCH      L                                     
003098,001593: 00,2061           12041                           TCF      VSHR2                                 #  GO ADD ONE IF NECESSARY AND FINISH.
003099,001594: 

Page 80

003101,001596:                                                                                                  #           ROUTINE FOR SHORT SCALAR SHIFT LEFT (AND MAYBE ROUND).
003102,001597: 
003103,001598: 00,2062           30021        TSSL               CA       SR                                    #  GET SHIFT COUNT FOR SR.
003104,001599: 00,2063           54121                 +1        TS       MPTEMP                                
003105,001600: 
003106,001601: 00,2064           00006                 +2        EXTEND                                         #  ENTRY HERE FROM SL FOR SCALARS.
003107,001602: 00,2065           30142                           DCA      MPAC       +1                         #  SHIFTING LEFT ONE PLACE AT A TIME IS
003108,001603: 00,2066           20142                           DAS      MPAC       +1                         #  FASTER THAN DOING THE WHOLE SHIFT WITH
003109,001604: 00,2067           60140                           AD       MPAC                                  #  MULTIPLIES ASSUMING THAT FREQUENCY OF
003110,001605: 00,2070           60140                           AD       MPAC                                  #  SHIFT COUNTS GOES DOWN RAPIDLY AS A
003111,001606: 00,2071           54140                           TS       MPAC                                  #  FUNCTION OF THEIR MAGNITUDE.
003112,001607: 00,2072           12074                           TCF      +2                                    
003113,001608: 00,2073           54105                           TS       OVFIND                                #  OVERFLOW. (LEAVES OVERFLOW-CORRECTED
003114,001609:                                                                                                  #  RESULT ANYWAY).
003115,001610: 00,2074           10121                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNT.
003116,001611: 00,2075           12063                           TCF      TSSL       +1                         
003117,001612: 
003118,001613: 00,2076           10020                           CCS      CYR                                   #  SEE IF ROUND WANTED.
003119,001614: 00,2077           07116        ROUND              TC       ROUNDSUB                              #  YES - ROUND AND EXIT.
003120,001615: 00,2100           16014                           TCF      DANZIG                                #  SL LEAVES A ZERO IN CYR FOR NO ROUND.
003121,001616: 00,2101           16014                           TCF      DANZIG                                #  NO - EXIT IMMEDIATL
003122,001617: 

Page 81

003124,001619:                                                                                                  #  VECTOR SHIFTING ROUTINES.
003125,001620: 
003126,001621: 00,2102           37663        SHORTV             CAF      LOW3                                  #  SAVE 3 BIT SHIFT COUNT - 1 WITHOUT
003127,001622: 00,2103           70020                           MASK     CYR                                   #  EDITING CYR.
003128,001623: 00,2104           54121                           TS       MPTEMP                                
003129,001624: 00,2105           10020                           CCS      CYR                                   #  SEE IF LEFT OR RIGHT SHIFT.
003130,001625: 00,2106           12126                           TCF      VSSL                                  #  VECTOR SHIFT LEFT.
003131,001626: 00,2107           00176        OCT176             OCT      176                                   #  USED IN PROCESSED SHIFTS WITH - COUNT.
003132,001627: 
003133,001628: 00,2110           50121        VSSR               INDEX    MPTEMP                                #  (ENTRY FROM SR). PICK UP SHIFTING BIT.
003134,001629: 00,2111           37642                           CAF      BIT14                                 #  MPTEMP CONTAINS THE SHIFT COUNT - 1.
003135,001630: 00,2112           54121                           TS       MPTEMP                                
003136,001631: 00,2113           02054                           TC       VSHRRND                               #  SHIFT X COMPONENT.
003137,001632: 
003138,001633: 00,2114           52141                           DXCH     MPAC                                  #  SWAP X AND Y COMPONENTS.
003139,001634: 00,2115           52144                           DXCH     MPAC       +3                         
003140,001635: 00,2116           52141                           DXCH     MPAC                                  
003141,001636: 00,2117           02054                           TC       VSHRRND                               #  SHIFT Y COMPONENT.
003142,001637: 
003143,001638: 00,2120           52141                           DXCH     MPAC                                  #  SWAP Y AND Z COMPONENTS.
003144,001639: 00,2121           52146                           DXCH     MPAC       +5                         
003145,001640: 00,2122           52141                           DXCH     MPAC                                  
003146,001641: 00,2123           02054                           TC       VSHRRND                               #  SHIFT Z COMPONENT.
003147,001642: 
003148,001643: 00,2124           17373                           TCF      VROTATEX                              #  RESTORE COMPONENTS TO PROPER PLACES.
003149,001644: 

Page 82

003151,001646:                                                                                                  #  VECTOR SHIFT LEFT - DONE ONE PLACE AT A TIME.
003152,001647: 
003153,001648: 00,2125           54121                 -1        TS       MPTEMP                                #  SHIFTING LOOP.
003154,001649: 
003155,001650: 00,2126           00006        VSSL               EXTEND                                         
003156,001651: 00,2127           30141                           DCA      MPAC                                  
003157,001652: 00,2130           20141                           DAS      MPAC                                  
003158,001653: 00,2131           00006                           EXTEND                                         
003159,001654: 00,2132           12134                           BZF      +2                                    
003160,001655: 00,2133           07007                           TC       OVERFLOW                              
003161,001656: 
003162,001657: 00,2134           00006                           EXTEND                                         
003163,001658: 00,2135           30144                           DCA      MPAC       +3                         
003164,001659: 00,2136           20144                           DAS      MPAC       +3                         
003165,001660: 00,2137           00006                           EXTEND                                         
003166,001661: 00,2140           12142                           BZF      +2                                    
003167,001662: 00,2141           07007                           TC       OVERFLOW                              
003168,001663: 
003169,001664: 00,2142           00006                           EXTEND                                         
003170,001665: 00,2143           30146                           DCA      MPAC       +5                         
003171,001666: 00,2144           20146                           DAS      MPAC       +5                         
003172,001667: 00,2145           00006                           EXTEND                                         
003173,001668: 00,2146           12150                           BZF      +2                                    
003174,001669: 00,2147           07007                           TC       OVERFLOW                              
003175,001670: 
003176,001671: 00,2150           10121                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNTER.
003177,001672: 00,2151           12125                           TCF      VSSL       -1                         
003178,001673: 00,2152           16014                           TCF      DANZIG                                #  EXIT.
003179,001674: 

Page 83

003181,001676:                                                                                                  #           TSLC - TRIPLE SHIFT LEFT AND COUNT. SHIFTS MPAC LEFT UNTIL GREATER THAN .5 IN MAGNITUDE, LEAVING
003182,001677:                                                                                                  #  THE COMPLEMENT OF THE NUMBER OF SHIFTS REQUIRED IN X.
003183,001678: 
003184,001679: 00,2153           54121        TSLC2              TS       MPTEMP                                #  START BY ZEROING SHIFT COUNT (IN A NOW).
003185,001680: 00,2154           06711                           TC       BRANCH                                #  EXIT WITH NO SHIFTING IF ARGUMENT ZERO.
003186,001681: 00,2155           12157                           TCF      +2                                    
003187,001682: 00,2156           12172                           TCF      ENDTSLC                               #  STORES ZERO SHIFT COUNT IN THIS CASE.
003188,001683: 
003189,001684: 00,2157           30140                           CA       MPAC                                  #  BEGIN NORMALIZATION LOOP.
003190,001685: 00,2160           12167                           TCF      TSLCTEST                              
003191,001686: 
003192,001687: 00,2161           24121        TSLCLOOP           INCR     MPTEMP                                #  INCREMENT SHIFT COUNTER.
003193,001688: 00,2162           00006                           EXTEND                                         
003194,001689: 00,2163           30142                           DCA      MPAC       +1                         
003195,001690: 00,2164           20142                           DAS      MPAC       +1                         
003196,001691: 00,2165           60140                           AD       MPAC                                  
003197,001692: 00,2166           26140                           ADS      MPAC                                  
003198,001693: 00,2167           60000        TSLCTEST           DOUBLE                                         #  SEE IF (ANOTHER) SHIFT IS REQUIRED.
003199,001694: 00,2170           54000                           OVSK                                           
003200,001695: 00,2171           12161                           TCF      TSLCLOOP                              #  YES - INCREMENT COUNT AND SHIFT AGAIN.
003201,001696: 
003202,001697: 00,2172           40121        ENDTSLC            CS       MPTEMP                                
003203,001698: 00,2173           16627                           TCF      STORE1                                #  STORE SHIFT COUNT AND RETURN TO DANZIG.
003204,001699: 

Page 84

003206,001701:                                                                                                  #           THE FOLLOWING ROUTINES PROCESSES THE GENERAL SHIFT INSTRUCTIONS SR, SRR, SL, AND SLR.
003207,001702:                                                                                                  #  THE GIVEN ADDRESS IS DECODED AS FOLLOWS:
003208,001703: 
003209,001704:                                                                                                  #           BITS 1-7        SHIFT COUNT (SUBADDRESS) LESS THAN 125 DECIMAL.
003210,001705:                                                                                                  #           BIT 8           PSEUDO SIGN BIT (DETECTS CHANGE IN SIGN IN INDEXED SHIFTS).
003211,001706:                                                                                                  #           BIT 9           0 FOR LEFT SHIFT, AND 1 FOR RIGHT SHIFT.
003212,001707:                                                                                                  #           BIT 10          1 FOR TERMINAL ROUND ON SCALAR SHIFTS, 0 OTHERWISE.
003213,001708:                                                                                                  #           BITS 11-15      0.
003214,001709: 
003215,001710:                                                                                                  #  THE ABOVE ENCODING IS DONE BY THE YUL SYSTEM.
003216,001711: 
003217,001712: 
003218,001713: 
003219,001714: 00,2174           70102        GENSHIFT           MASK     ADDRWD                                #  GET SHIFT COUNT, TESTING FOR ZERO.
003220,001715: 00,2175           10000                           CCS      A                                     #  (ARRIVES WITH C(A) = LOW7).
003221,001716: 00,2176           12204                           TCF      GENSHFT2                              #  IF NON-ZERO, PROCEED WITH DECREMENTED CT
003222,001717: 
003223,001718: 00,2177           37646                           CAF      BIT10                                 #  ZERO SHIFT COUNT. NO SHIFTS NEEDED BUT
003224,001719: 00,2200           70102                           MASK     ADDRWD                                #  WE MIGHT HAVE TO ROUND MPAC ON SLR AND
003225,001720: 00,2201           10000                           CCS      A                                     #  SRR (SCALAR ONLY).
003226,001721: 00,2202           07116                           TC       ROUNDSUB                              
003227,001722: 00,2203           16014                           TCF      DANZIG                                
003228,001723: 
003229,001724: 00,2204           54121        GENSHFT2           TS       MPTEMP                                #  DECREMENTED SHIFT COUNT TO MPTEMP.
003230,001725: 00,2205           37650                           CAF      BIT8                                  #  TEST MEANING OF LOW SEVEN BIT COUNT IN
003231,001726: 00,2206           00006                           EXTEND                                         #  MPTEMP NOW.
003232,001727: 00,2207           70102                           MP       ADDRWD                                
003233,001728: 00,2210           76165                           MASK     LOW2                                  #  JUMPS ON SHIFT DIRECTION (BIT8) AND
003234,001729: 00,2211           50000                           INDEX    A                                     
003235,001730: 00,2212           12213                           TCF      +1                                    #  ORIGINAL SHIFT DIRECTION (BIT 9).
003236,001731: 00,2213           12312                           TCF      RIGHT-                                #  NEGATIVE SHIFT COUNT FOR SL OR SLR.
003237,001732: 00,2214           12321                           TCF      LEFT                                  #  SL OR SLR.
003238,001733: 00,2215           12316                           TCF      LEFT-                                 #  NEGATIVE SHIFT COUNT WITH SR OR SRR.
003239,001734: 

Page 85

003241,001736:                                                                                                  #           GENERAL SHIFT RIGHT.
003242,001737: 
003243,001738: 00,2216           10147        RIGHT              CCS      MODE                                  #  SEE IF VECTOR OR SCALAR.
003244,001739: 00,2217           12257                           TCF      GENSCR                                
003245,001740: 00,2220           12257                           TCF      GENSCR                                
003246,001741: 
003247,001742: 00,2221           30121                           CA       MPTEMP                                #  SEE IF SHIFT COUNT GREATER THAN 13D.
003248,001743: 00,2222           62273        VRIGHT2            AD       NEG12                                 
003249,001744: 00,2223           00006                           EXTEND                                         
003250,001745: 00,2224           62110                           BZMF     VSSR                                  #  IF SO, BRANCH AND SHIFT IMMEDIATELY.
003251,001746: 
003252,001747: 00,2225           67667                           AD       NEGONE                                #  IF NOT, REDUCE MPTEMP BY A TOTAL OF 14,
003253,001748: 00,2226           54121                           TS       MPTEMP                                #  AND DO A SHIFT RIGHT AND ROUND BY 14.
003254,001749: 00,2227           37665                           CAF      ZERO                                  #  THE ROUND AT THIS STAGE MAY INTRODUCE A
003255,001750: 00,2230           54001                           TS       L                                     #  ONE BIT ERROR IN A SHIFT RIGHT 15D.
003256,001751: 00,2231           56140                           XCH      MPAC                                  
003257,001752: 00,2232           56141                           XCH      MPAC       +1                         
003258,001753: 00,2233           02252                           TC       SETROUND                              #  X COMPONENT NOW SHIFTED, SO MAKE UP THE
003259,001754: 00,2234           20141                           DAS      MPAC                                  #  ROUNDING QUANTITY (0 IN A AND 0 OR +-1
003260,001755:                                                                                                  #  IN L).
003261,001756: 00,2235           56143                           XCH      MPAC       +3                         #  REPEAT THE ABOVE PROCESS FOR Y AND Z.
003262,001757: 00,2236           56144                           XCH      MPAC       +4                         
003263,001758: 00,2237           02252                           TC       SETROUND                              
003264,001759: 00,2240           20144                           DAS      MPAC       +3                         #  NO OVERFLOW ON THESE ADDS.
003265,001760: 
003266,001761: 00,2241           56145                           XCH      MPAC       +5                         
003267,001762: 00,2242           56146                           XCH      MPAC       +6                         
003268,001763: 00,2243           02252                           TC       SETROUND                              
003269,001764: 00,2244           20146                           DAS      MPAC       +5                         
003270,001765: 
003271,001766: 00,2245           10121                           CCS      MPTEMP                                #  SEE IF DONE, DOING FINAL DECREMENT.
003272,001767: 00,2246           12222                           TCF      VRIGHT2                               
003273,001768: 00,2247           13630        TCSUBTR            TCF      SUBTR                                 
003274,001769: 00,2250           04604        BIASLO             DEC      .2974      B-1                        #  SQRT CONSTANT
003275,001770: 
003276,001771: 00,2251           16014                           TCF      DANZIG                                
003277,001772: 
003278,001773: 
003279,001774: 
003280,001775: 00,2252           60000        SETROUND           DOUBLE                                         #  MAKES UP ROUNDING QUANTITY FROM ARRIVING
003281,001776: 00,2253           54142                           TS       MPAC       +2                         #  C(A). L IS ZERO INITIALLY.
003282,001777: 00,2254           37665                           CAF      ZERO                                  
003283,001778: 00,2255           56001                           XCH      L                                     
003284,001779: 00,2256           00002                           TC       Q                                     #  RETURN AND DO THE DAS, RESETTING L TO 0.
003285,001780: 

Page 86

003287,001782:                                                                                                  #           PROCESS SR AND SRR FOR SCALARS.
003288,001783: 
003289,001784: 00,2257           30121        GENSCR             CA       MPTEMP                                #  SEE IF THE ORIGINAL SHIFT COUNT WAS LESS
003290,001785: 00,2260           62273                 +1        AD       NEG12                                 #  THAN 14D.
003291,001786: 00,2261           00006                           EXTEND                                         
003292,001787: 00,2262           62302                           BZMF     DOSSHFT                               #  DO THE SHIFT IMMEDIATELY IF SO.
003293,001788: 
003294,001789: 00,2263           67667                 +4        AD       NEGONE                                #  IF NOT, DECREMENT SHIFT COUNT BY 14D AND
003295,001790: 00,2264           54121                           TS       MPTEMP                                #  SHIFT MPAC RIGHT 14 PLACES.
003296,001791: 00,2265           37665                           CAF      ZERO                                  
003297,001792: 00,2266           56140                           XCH      MPAC                                  
003298,001793: 00,2267           56141                           XCH      MPAC       +1                         
003299,001794: 00,2270           54142                           TS       MPAC       +2                         
003300,001795: 00,2271           10121                           CCS      MPTEMP                                #  SEE IF FINISHED, DO FINAL DECREMENT.
003301,001796: 00,2272           02260                           TC       GENSCR     +1                         
003302,001797: 00,2273           77763        NEG12              DEC      -12        B-14                       
003303,001798: 00,2274           22650        SLOPEHI            DEC      .5884                                 #  SQRT CONSTANT.
003304,001799: 00,2275           37646                           CAF      BIT10                                 #  FINISHED WITH SHIFT. SEE IF ROUND
003305,001800: 00,2276           70102                           MASK     ADDRWD                                #  WANTED.
003306,001801: 00,2277           10000                           CCS      A                                     
003307,001802: 00,2300           07116                           TC       ROUNDSUB                              
003308,001803: 00,2301           16014                           TCF      DANZIG                                #  DO SO AND/OR EXIT.
003309,001804: 
003310,001805: 00,2302           50121        DOSSHFT            INDEX    MPTEMP                                #  PICK UP SHIFTING BIT.
003311,001806: 00,2303           37642                           CAF      BIT14                                 
003312,001807: 00,2304           54121                           TS       MPTEMP                                
003313,001808: 00,2305           37646                           CAF      BIT10                                 #  SEE IF TERMINAL ROUND DESIRED.
003314,001809: 00,2306           70102                           MASK     ADDRWD                                
003315,001810: 00,2307           10000                           CCS      A                                     
003316,001811: 00,2310           12012                           TCF      RIGHTR                                #  YES.
003317,001812: 00,2311           12014                           TCF      MPACSHR                               #  JUST SHIFT RIGHT.
003318,001813: 

Page 87

003320,001815:                                                                                                  #           PROCESS THE RIGHT- (SL(R) WITH A NEGATIVE COUNT), LEFT-, AND LEFT OPTIONS.
003321,001816: 
003322,001817: 00,2312           40121        RIGHT-             CS       MPTEMP                                #  GET ABSOLUTE VALUE - 1 OF SHIFT COUNT
003323,001818: 00,2313           62107                           AD       OCT176                                #  UNDERSTANDING THAT BIT8 (PSEUDO-SIGN)
003324,001819: 00,2314           54121                           TS       MPTEMP                                #  WAS 1 INITIALLY.
003325,001820: 00,2315           12216                           TCF      RIGHT                                 #  DO NORMAL SHIFT RIGHT.
003326,001821: 
003327,001822: 00,2316           40121        LEFT-              CS       MPTEMP                                #  SAME PROLOGUE TO LEFT FOR INDEXED RIGHT
003328,001823: 00,2317           62107                           AD       OCT176                                #  SHIFTS WHOSE NET SHIFT COUNT IS NEGATIVE
003329,001824: 00,2320           54121                           TS       MPTEMP                                
003330,001825: 
003331,001826: 00,2321           10147        LEFT               CCS      MODE                                  #  SINCE LEFT SHIFTING IS SONE ONE PLACE AT
003332,001827: 00,2322           12325                           TCF      GENSCL                                #  A TIME, NO COMPARISON WITH 14 NEED BE
003333,001828: 00,2323           12325                           TCF      GENSCL                                #  DONE. FOR SCALARS, SEE IF TERMINAL ROUND
003334,001829: 00,2324           12126                           TCF      VSSL                                  #  DESIRED. FOR VECTORS, SHIFT IMMEDIATELY.
003335,001830: 
003336,001831: 00,2325           37652        GENSCL             CAF      BIT6                                  #  PUT ROUNDING BIT (BIT10 OF ADDRWD) INTO
003337,001832: 00,2326           00006                           EXTEND                                         #  BIT 15 OF CYR WHERE THE ROUNDING BIT OF
003338,001833: 00,2327           70102                           MP       ADDRWD                                #  A SHORT SHIFT LEFT WOULD BE.
003339,001834: 00,2330           54020                           TS       CYR                                   
003340,001835: 00,2331           12064                           TCF      TSSL       +2                         #  DO THE SHIFT.
003341,001836: 

Page 88

003343,001838:                                                                                                  #           SCALAR DIVISION INSTRUCTIONS, DDV AND BDDV, ARE EXECUTED HERE. AT THIS POINT, THE DIVIDEND IS IN MPAC
003344,001839:                                                                                                  #  AND THE DIVISOR IN BUF.
003345,001840: 
003346,001841: 00,2332           47657        DDV/BDDV           CS       ONE                                   #  INITIALIZATION.
003347,001842: 00,2333           54122                           TS       DVSIGN                                #  +-1 FOR POSITIVE QUOTIENT - -0 FOR NEG.
003348,001843: 00,2334           54123                           TS       DVNORMCT                              #  DIVIDEND NORMALIZATION COUNT.
003349,001844: 00,2335           54124                           TS       MAXDVSW                               #  NEAR-ONE DIVIDE FLAG.
003350,001845: 
003351,001846: 00,2336           10114                           CCS      BUF                                   #  FORCE BUF POSITIVE WITH THE MAJOR PART
003352,001847: 00,2337           12366                           TCF      BUF+                                  #  NON-ZERO.
003353,001848: 00,2340           12342                           TCF      +2                                    
003354,001849: 00,2341           12362                           TCF      BUF-                                  
003355,001850: 
003356,001851: 00,2342           56115                           XCH      BUF        +1                         #  SHIFT DIVIDEND AND DIVISOR LEFT 14.
003357,001852: 00,2343           56114                           XCH      BUF                                   
003358,001853: 00,2344           56141                           XCH      MPAC       +1                         
003359,001854: 00,2345           56140                           XCH      MPAC                                  
003360,001855: 00,2346           00006                           EXTEND                                         #  CHECK FOR OVERFLOW.
003361,001856: 00,2347           12351                           BZF      +2                                    
003362,001857: 00,2350           12355                           TCF      DVOVF                                 
003363,001858: 
003364,001859: 00,2351           10114                           CCS      BUF                                   #  TRY AGAIN ON FORMER MINOR PART.
003365,001860: 00,2352           12366                           TCF      BUF+                                  
003366,001861: 00,2353           12355                           TCF      DVOVF                                 #  OVERFLOW ON ZERO DIVISOR.
003367,001862: 00,2354           12362                           TCF      BUF-                                  
003368,001863: 
003369,001864: 00,2355           37637        DVOVF              CAF      POSMAX                                #  ON DIVISION OVERFLOW OF ANY SORT, SET
003370,001865: 00,2356           54140                           TS       MPAC                                  #  SET DP MPAC TO +-POSMAX.
003371,001866: 00,2357           02552                           TC       FINALDV    +3                         
003372,001867: 00,2360           37657                           CAF      ONE                                   #  SET OVERFLOW INDICATOR AND EXIT.
003373,001868: 00,2361           17061                           TCF      SETOVF                                
003374,001869: 
003375,001870: 00,2362           00006        BUF-               EXTEND                                         #  IF BUF IS NEGATIVE, COMPLEMENT IT AND
003376,001871: 00,2363           40115                           DCS      BUF                                   #  MAINTAIN DVSIGN FOR FINAL QUOTIENT SIGN.
003377,001872: 00,2364           52115                           DXCH     BUF                                   
003378,001873: 00,2365           24122                           INCR     DVSIGN                                #  NOW -0.
003379,001874: 
003380,001875: 00,2366           10140        BUF+               CCS      MPAC                                  #  FORCE MPAC POSITIVE, CHECKING FOR ZERO
003381,001876: 00,2367           12403                           TCF      MPAC+                                 #  DIVIDEND IN THE PROCESS.
003382,001877: 00,2370           12372                           TCF      +2                                    
003383,001878: 00,2371           12377                           TCF      MPAC-                                 
003384,001879: 00,2372           10141                           CCS      MPAC       +1                         
003385,001880: 00,2373           12403                           TCF      MPAC+                                 
003386,001881: 00,2374           16014                           TCF      DANZIG                                #  EXIT IMMEDIATELY ON ZERO DIVIDEND.
003387,001882: 00,2375           12377                           TCF      MPAC-                                 
003388,001883: 00,2376           16014                           TCF      DANZIG                                
003389,001884: 
003390,001885: 00,2377           00006        MPAC-              EXTEND                                         #  FORCE MPAC POSITIVE AS BUF IN BUF-.
003391,001886: 00,2400           40141                           DCS      MPAC                                  
003392,001887: 00,2401           52141                           DXCH     MPAC                                  
003393,001888: 

Page 89

003395,001890: 00,2402           24122                           INCR     DVSIGN                                #  NOW +1 OR -0.
003396,001891: 

Page 90

003398,001893: 00,2403           40140        MPAC+              CS       MPAC                                  #  CHECK FOR DIVISION OVERFLOW. IF THE
003399,001894: 00,2404           67667                           AD       NEGONE                                #  MAJOR PART OF THE DIVIDEND IS LESS THAN
003400,001895: 00,2405           60114                           AD       BUF                                   #  THE MAJOR PART OF THE DIVISOR BY AT
003401,001896: 00,2406           10000                           CCS      A                                     #  LEAST TWO, WE CAN PROCEED IMMEDIATELY
003402,001897: 00,2407           12451                           TCF      DVNORM                                #  WITHOUT NORMALIZATION PRODUCING A DVMAX.
003403,001898: 00,2410           60001        -1/2+2             OCT      60001                                 #  USED IN SQRTSUB.
003404,001899: 
003405,001900: 00,2411           12412                           TCF      +1                                    #  IF THE ABOVE DOES NOT HOLD, FORCE SIGN
003406,001901: 00,2412           37642                           CAF      HALF                                  #  AGREEMENT IN NUMERATOR AND DENOMINATOR
003407,001902: 00,2413           60000                           DOUBLE                                         #  TO FACILITATE OVERFLOW AND NEAR-ONE
003408,001903: 00,2414           60141                           AD       MPAC       +1                         #  CHECKING.
003409,001904: 00,2415           54141                           TS       MPAC       +1                         
003410,001905: 00,2416           37665                           CAF      ZERO                                  
003411,001906: 00,2417           67637                           AD       POSMAX                                
003412,001907: 00,2420           26140                           ADS      MPAC                                  
003413,001908: 
003414,001909: 00,2421           37642                           CAF      HALF                                  #  SAME FOR BUF.
003415,001910: 00,2422           60000                           DOUBLE                                         
003416,001911: 00,2423           60115                           AD       BUF        +1                         
003417,001912: 00,2424           54115                           TS       BUF        +1                         
003418,001913: 00,2425           37665                           CAF      ZERO                                  
003419,001914: 00,2426           67637                           AD       POSMAX                                
003420,001915: 00,2427           26114                           ADS      BUF                                   
003421,001916: 
003422,001917: 00,2430           40140                           CS       MPAC                                  #  CHECK MAGNITUDE OF SIGN-CORRECTED
003423,001918: 00,2431           60114                           AD       BUF                                   #  OPERANDS.
003424,001919: 00,2432           10000                           CCS      A                                     
003425,001920: 00,2433           12451                           TCF      DVNORM                                #  DIVIDE OK - WILL NOT BECOME MAXDV CASE.
003426,001921: 00,2434           00117        LBUF2              ADRES    BUF2                                  
003427,001922: 00,2435           12355                           TCF      DVOVF                                 #  DIVISOR NOT LESS THAN DIVIDEND - OVF.
003428,001923: 
003429,001924: 00,2436           54124                           TS       MAXDVSW                               #  IF THE MAJOR PARTS OF THE DIVIDEND AND
003430,001925: 00,2437           40141                           CS       MPAC       +1                         #  DIVISOR ARE EQUAL, A SPECIAL APPROXIMA-
003431,001926: 00,2440           60115                           AD       BUF        +1                         #  TION IS USED (PROVIDED THE DIVISION IS
003432,001927: 00,2441           00006                           EXTEND                                         #  POSSIBLE, OF COURSE).
003433,001928: 00,2442           62355                           BZMF     DVOVF                                 
003434,001929: 00,2443           12451                           TCF      DVNORM                                #  IF NO OVERFLOW.
003435,001930: 

Page 91

003437,001932: 00,2444           00006        BUFNORM            EXTEND                                         #  ADD -1 TO AUGMENT SHIFT COUNT AND SHIFT
003438,001933: 00,2445           24123                           AUG      DVNORMCT                              #  LEFT ONE PLACE.
003439,001934: 00,2446           00006                           EXTEND                                         
003440,001935: 00,2447           30115                           DCA      BUF                                   
003441,001936: 00,2450           20115                           DAS      BUF                                   
003442,001937: 
003443,001938: 00,2451           30114        DVNORM             CA       BUF                                   #  SEE IF DIVISOR NORMALIZED YET.
003444,001939: 00,2452           60000                           DOUBLE                                         
003445,001940: 00,2453           54000                           OVSK                                           
003446,001941: 00,2454           12444                           TCF      BUFNORM                               #  NO - SHIFT LEFT ONE AND TRY AGAIN.
003447,001942: 
003448,001943: 00,2455           52141                           DXCH     MPAC                                  #  CALL DIVIDEND NORMALIZATION SEQUENCE
003449,001944: 00,2456           50123                           INDEX    DVNORMCT                              #  PRIOR TO DOING THE DIVIDE.
003450,001945: 00,2457           02507                           TC       MAXTEST                               
003451,001946: 
003452,001947: 00,2460           54142                           TS       MPAC       +2                         #  RETURNS WITH DIVISION DONE AND C(A) = 0.
003453,001948: 00,2461           16014                           TCF      DANZIG                                
003454,001949: 

Page 92

003456,001951:                                                                                                  #           THE FOLLOWING ARE PROLOGUES TO SHIFT THE DIVIDEND ARRIVING IN A AND L BEFORE THE DIVIDE.
003457,001952: 
003458,001953: 00,2462           22021                 -21D      LXCH     SR                                    #  SPECIAL PROLOGUE FOR UNIT WHEN THE
003459,001954: 00,2463           00006                           EXTEND                                         #  LENGTH OF THE ARGUMENT WAS NOT LESS THAN
003460,001955: 00,2464           77642                           MP       HALF                                  #  .5.  IN THIS CASE, EACH COMPONENT MUST BE
003461,001956: 00,2465           56001                           XCH      L                                     #  SHIFTED RIGHT ONE TO PRODUCE A HALF-UNIT
003462,001957: 00,2466           60021                           AD       SR                                    #  VECTOR.
003463,001958: 00,2467           56001                           XCH      L                                     
003464,001959: 00,2470           12513                           TCF      GENDDV     +1                         #  WITH DP DIVIDEND IN A,L.
003465,001960: 
003466,001961: 00,2471           20001                           DDOUBL                                         #  PROLOGUE WHICH NORMALIZES THE DIVIDEND
003467,001962: 00,2472           20001                           DDOUBL                                         #  WHEN IT IS KNOWN THAT NO DIVISION
003468,001963: 00,2473           20001                           DDOUBL                                         #  OVERFLOW WILL OCCUR.
003469,001964: 00,2474           20001                           DDOUBL                                         
003470,001965: 00,2475           20001                           DDOUBL                                         
003471,001966: 00,2476           20001                           DDOUBL                                         
003472,001967: 00,2477           20001                           DDOUBL                                         
003473,001968: 00,2500           20001                           DDOUBL                                         
003474,001969: 00,2501           20001                           DDOUBL                                         
003475,001970: 00,2502           20001                           DDOUBL                                         
003476,001971: 00,2503           20001                           DDOUBL                                         
003477,001972: 00,2504           20001                           DDOUBL                                         
003478,001973: 00,2505           20001                           DDOUBL                                         
003479,001974: 00,2506           52141                           DXCH     MPAC                                  
003480,001975: 
003481,001976: 00,2507           10124        MAXTEST            CCS      MAXDVSW                               #  0 IF MAJORS MIGHT BE =, -1 OTHERWISE.
003482,001977: 00,2510           06552        BIASHI             DEC      .4192      B-1                        #  SQRT CONSTANTS
003483,001978: 
003484,001979: 00,2511           12564                           TCF      MAXDV                                 #  CHECK TO SEE IF THEY ARE NOW EQUAL.
003485,001980: 

Page 93

003487,001982:                                                                                                  #           THE FOLLOWING IS A GENERAL PURPOSE DOUBLE PRECISION DIVISION ROUTINE. IT DIVIDES MPAC BY BUF AND LEAVES
003488,001983:                                                                                                  #  THE RESULT IN MPAC. THE FOLLOWING CONDITIONS MUST BE SATISFIED:
003489,001984: 
003490,001985:                                                                                                  #           1.  THE DIVISOR (BUF) MUST BE POSITIVE AND NOT LESS THAN .5.
003491,001986: 
003492,001987:                                                                                                  #           2.  THE DIVIDEND (MPAC) MUST BE POSITIVE WITH THE MAJOR PART OF MPAC STRICTLY LESS THAN THAT OF BUF
003493,001988:                                                                                                  #  (A SPECIAL APPROXIMATION, MAXDV, IS USED WHEN THE MAJOR PARTS ARE EQUAL).
003494,001989: 
003495,001990:                                                                                                  #           UNDERSTANDING THAT A/B = Q + S(R/B) WHERE S = 2(-14) AND Q AND R ARE QUOTIENT AND REMAINDER, RESPEC-
003496,001991:                                                                                                  #  TIVELY, THE FOLLOWING APPROXIMATION IS OBTAINED BY MULTIPLYING ABOVE AND BELOW BY C - SD AND NEGLECTING TERMS OF
003497,001992:                                                                                                  #  ORDER S-SQUARED (POSSIBLY INTRODUCING ERROR INTO THE LOW TWO BITS OF THE RESULT). SIGN AGREEMENT IS UNNECESSARY.
003498,001993: 
003499,001994:                                                                                                  #           A + SB .      (R - QD)                                             A + SB
003500,001995:                                                                                                  #           ------ = Q + S(------) WHERE Q AND R ARE QUOTIENT AND REMAINDER OF ------ RESPECTIVELY.
003501,001996:                                                                                                  #           C + SD        (  C   )                                               C
003502,001997: 
003503,001998: 00,2512           52141        GENDDV             DXCH     MPAC                                  #  WE NEED A AND B ONLY FOR FIRST DV.
003504,001999: 00,2513           00006                 +1        EXTEND                                         #  (SPECIAL UNIT PROLOGUE ENTERS HERE).
003505,002000: 00,2514           10114                           DV       BUF                                   #  A NOW CONTAINS Q AND L, R.
003506,002001: 00,2515           52141                           DXCH     MPAC                                  
003507,002002: 
003508,002003: 00,2516           40140                           CS       MPAC                                  #  FORM DIVIDEND FOR MINOR PART OF RESULT.
003509,002004: 00,2517           00006                           EXTEND                                         
003510,002005: 00,2520           70115                           MP       BUF        +1                         
003511,002006: 00,2521           60141                           AD       MPAC       +1                         #  OVERFLOW AT THIS POINT IS POSITIVE SINCE
003512,002007: 00,2522           54000                           OVSK                                           #  R IS POSITIVE IN EVERY CASE.
003513,002008: 00,2523           12530                           TCF      +5                                    
003514,002009: 
003515,002010: 00,2524           00006                           EXTEND                                         #  OVERFLOW CAN BE REMOVED BY SUBTRACTING C
003516,002011: 00,2525           60114                           SU       BUF                                   #  (BUF) ONCE SINCE R IS ALWAYS LESS THAN C
003517,002012: 00,2526           24140                           INCR     MPAC                                  #  IN THIS CASE. INCR COMPENSATES SUBTRACT.
003518,002013: 00,2527           12532                           TCF      +DOWN                                 #  (SINCE C(A) IS STILL POSITIVE).
003519,002014: 
003520,002015: 00,2530           00006                 +5        EXTEND                                         #  C(A) CAN BE MADE LESS THAN C IN MAGNI-
003521,002016: 00,2531           62542                           BZMF     -UP                                   #  TUDE BY DIMINISHING IT BY C (SINCE C IS
003522,002017:                                                                                                  #  NOT LESS THAN .5) UNLESS C(A) = 0.
003523,002018: 

Page 94

003525,002020: 00,2532           00006        +DOWN              EXTEND                                         
003526,002021: 00,2533           60114                           SU       BUF                                   #  IF POSITIVE, REDUCE ONLY IF NECESSARY
003527,002022: 00,2534           00006                           EXTEND                                         #  SINCE THE COMPENSATING INCR MIGHT CAUSE
003528,002023: 00,2535           12540                           BZF      +3                                    #  OVERFLOW.
003529,002024: 00,2536           00006                           EXTEND                                         #  DONT SUBTRACT UNLESS RESULT IS POSITIVE
003530,002025: 00,2537           62546                           BZMF     ENDMAXDV                              #  OR ZERO.
003531,002026: 
003532,002027: 00,2540           24140                 +3        INCR     MPAC                                  #  KEEP SUBTRACT HERE AND COMPENSATE.
003533,002028: 00,2541           12547                           TCF      FINALDV                               
003534,002029: 
003535,002030: 00,2542           00006        -UP                EXTEND                                         #  IF ZERO, SET MINOR PART OF RESULT TO
003536,002031: 00,2543           12552                           BZF      FINALDV    +3                         #  ZERO.
003537,002032: 
003538,002033: 00,2544           00006                           EXTEND                                         #  IF NEGATIVE, ADD C TO A, SUBTRACTING ONE
003539,002034: 00,2545           26140                           DIM      MPAC                                  #  TO COMPENSATE. DIM IS OK HERE SINCE THE
003540,002035: 00,2546           60114        ENDMAXDV           AD       BUF                                   #  MAJOR PART NEVER GOES NEGATIVE.
003541,002036: 

Page 95

003543,002038: 00,2547           22007        FINALDV            ZL                                             #  DO DV TO OBTAIN MINOR PART OF RESULT.
003544,002039: 00,2550           00006                           EXTEND                                         
003545,002040: 00,2551           10114                           DV       BUF                                   
003546,002041: 00,2552           54141                 +3        TS       MPAC       +1                         
003547,002042: 
003548,002043: 00,2553           10122                           CCS      DVSIGN                                #  LEAVE RESULT POSITIVE UNLESS C(DVSIGN)=
003549,002044: 00,2554           00002                           TC       Q                                     #  -0.
003550,002045: 00,2555           00002                           TC       Q                                     
003551,002046: 00,2556           00002                           TC       Q                                     
003552,002047: 
003553,002048: 00,2557           00006                           EXTEND                                         
003554,002049: 00,2560           40141                           DCS      MPAC                                  
003555,002050: 00,2561           52141                           DXCH     MPAC                                  
003556,002051: 00,2562           37665                           CAF      ZERO                                  #  SO WE ALWAYS RETURN WITH C(A) = 0.
003557,002052: 00,2563           00002                           TC       Q                                     
003558,002053: 

Page 96

003560,002055:                                                                                                  #           IF THE MAJOR PARTS OF THE DIVISOR AND DIVIDEND ARE EQUAL, BUT THE MINOR PARTS ARE SUCH THAT THE
003561,002056:                                                                                                  #  DIVIDEND IS STRICTLY LESS THAN THE DIVISOR IN MAGNITUDE, THE FOLLOWING APPROXIMATION IS USED. THE ASSUMPTIONS
003562,002057:                                                                                                  #  ARE THE SAME AS THE GENERAL ROUTINE WITH THE ADDITION THAT SIGN AGREEMENT IS NECESSARY (B, C, & D POSITIVE).
003563,002058: 
003564,002059:                                                                                                  #                  C + SB .          (C + B - D)
003565,002060:                                                                                                  #                  ------ = 37777 + S(---------)
003566,002061:                                                                                                  #                  C + SD            (    C    )
003567,002062: 
003568,002063:                                                                                                  #           THE DIVISION MAY BE PERFORMED IMMEDIATELY SINCE B IS STRICTLY LESS THAN D AND C IS NOT LESS THAN .5.
003569,002064: 
003570,002065: 
003571,002066: 
003572,002067: 00,2564           40140        MAXDV              CS       MPAC                                  #  SEE IF MAXDV CASE STILL HOLDS AFTER
003573,002068: 00,2565           60114                           AD       BUF                                   #  NORMALIZATION.
003574,002069: 00,2566           00006                           EXTEND                                         
003575,002070: 00,2567           12571                           BZF      +2                                    
003576,002071: 00,2570           12512                           TCF      GENDDV                                #  MPAC NOW LESS THAN BUF - DIVIDE AS USUAL
003577,002072: 
003578,002073: 00,2571           37637                 +2        CAF      POSMAX                                #  SET MAJOR PART OF RESULT.
003579,002074: 00,2572           54140                           TS       MPAC                                  
003580,002075: 
003581,002076: 00,2573           40115                           CS       BUF        +1                         #  FORM DIVIDEND OF MINOR PART OF RESULT.
003582,002077: 00,2574           60141                           AD       MPAC       +1                         
003583,002078: 00,2575           12546                           TCF      ENDMAXDV                              #  GO ADD C AND DO DIVIDE, ATTACHING SIGN
003584,002079:                                                                                                  #  BEFORE EXITING.
003585,002080: 

Page 97

003587,002082:                                                                                                  #        VECTOR DIVIDED BY SCALAR, V/SC, IS EXECUTED HERE. THE VECTOR IS NOW IN MPAC WITH SCALAR IN BUF.
003588,002083: 
003589,002084: 00,2576           47657        V/SC2              CS       ONE                                   #  INITIALIZE DIVIDEND NORMALIZATION COUNT
003590,002085: 00,2577           54123                           TS       DVNORMCT                              #  AND DIVISION SIGN REGISTER.
003591,002086: 00,2600           54113                           TS       VBUF       +5                         
003592,002087: 
003593,002088: 00,2601           10114                           CCS      BUF                                   #  FORCE DIVISOR POSITIVE WITH MAJOR PART
003594,002089: 00,2602           12637                           TCF      /BUF+                                 #  NON-ZERO (IF POSSIBLE).
003595,002090: 00,2603           12605                           TCF      +2                                    
003596,002091: 00,2604           12633                           TCF      /BUF-                                 
003597,002092: 
003598,002093: 00,2605           56115                           XCH      BUF        +1                         #  SHIFT VECTOR AND SCALAR LEFT 14.
003599,002094: 00,2606           56114                           XCH      BUF                                   
003600,002095: 00,2607           56141                           XCH      MPAC       +1                         
003601,002096: 00,2610           56140                           XCH      MPAC                                  
003602,002097: 00,2611           00006                           EXTEND                                         #  CHECK FOR OVERFLOW IN EACH CASE.
003603,002098: 00,2612           12614                           BZF      +2                                    
003604,002099: 00,2613           12355                           TCF      DVOVF                                 
003605,002100: 
003606,002101: 00,2614           56144                           XCH      MPAC       +4                         
003607,002102: 00,2615           56143                           XCH      MPAC       +3                         
003608,002103: 00,2616           00006                           EXTEND                                         
003609,002104: 00,2617           12621                           BZF      +2                                    
003610,002105: 00,2620           12355                           TCF      DVOVF                                 
003611,002106: 
003612,002107: 00,2621           56146                           XCH      MPAC       +6                         
003613,002108: 00,2622           56145                           XCH      MPAC       +5                         
003614,002109: 00,2623           00006                           EXTEND                                         
003615,002110: 00,2624           12626                           BZF      +2                                    
003616,002111: 00,2625           12355                           TCF      DVOVF                                 
003617,002112: 
003618,002113: 00,2626           10114                           CCS      BUF                                   
003619,002114: 00,2627           12637                           TCF      /BUF+                                 
003620,002115: 00,2630           12355                           TCF      DVOVF                                 #  ZERO DIVISOR - OVERFLOW.
003621,002116: 00,2631           12633                           TCF      /BUF-                                 
003622,002117: 00,2632           12355                           TCF      DVOVF                                 
003623,002118: 
003624,002119: 00,2633           00006        /BUF-              EXTEND                                         #  ON NEGATIVE, COMPLEMENT BUF AND MAINTAIN
003625,002120: 00,2634           40115                           DCS      BUF                                   #  DVSIGN IN VBUF +5.
003626,002121: 00,2635           52115                           DXCH     BUF                                   
003627,002122: 00,2636           24113                           INCR     VBUF       +5                         
003628,002123: 

Page 98

003630,002125: 00,2637           37642        /BUF+              CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVISOR.
003631,002126: 00,2640           60000                           DOUBLE                                         
003632,002127: 00,2641           60115                           AD       BUF        +1                         
003633,002128: 00,2642           54115                           TS       BUF        +1                         
003634,002129: 00,2643           37665                           CAF      ZERO                                  
003635,002130: 00,2644           67637                           AD       POSMAX                                
003636,002131: 00,2645           26114                           ADS      BUF                                   
003637,002132: 
003638,002133: 00,2646           56117                           XCH      BUF2                                  #  LEAVE ABS(ORIGINAL DIVISOR) IN BUF2 FOR
003639,002134: 00,2647           30115                           CA       BUF        +1                         #  OVERFLOW TESTING.
003640,002135: 00,2650           54120                           TS       BUF2       +1                         
003641,002136: 00,2651           12657                           TCF      /NORM                                 #  NORMALIZE DIVISOR IN BUF.
003642,002137: 
003643,002138: 00,2652           00006        /NORM2             EXTEND                                         #  IF LESS THAN .5, AUGMENT DVNORMCT AND
003644,002139: 00,2653           24123                           AUG      DVNORMCT                              #  DOUBLE DIVISOR.
003645,002140: 00,2654           00006                           EXTEND                                         
003646,002141: 00,2655           30115                           DCA      BUF                                   
003647,002142: 00,2656           20115                           DAS      BUF                                   
003648,002143: 
003649,002144: 00,2657           30114        /NORM              CA       BUF                                   #  SEE IF DIVISOR NORMALIZED.
003650,002145: 00,2660           60000                           DOUBLE                                         
003651,002146: 00,2661           54000                           OVSK                                           
003652,002147: 00,2662           12652                           TCF      /NORM2                                #  DOUBLE AND TRY AGAIN IF NOT.
003653,002148: 
003654,002149: 00,2663           02675                           TC       V/SCDV                                #  DO X COMPONENT DIVIDE.
003655,002150: 00,2664           52144                           DXCH     MPAC       +3                         #  SUPPLY ARGUMENTS IN USUAL SEQUENCE.
003656,002151: 00,2665           52141                           DXCH     MPAC                                  
003657,002152: 00,2666           52144                           DXCH     MPAC       +3                         
003658,002153: 
003659,002154: 00,2667           02675                           TC       V/SCDV                                #  Y COMPONENT.
003660,002155: 00,2670           52146                           DXCH     MPAC       +5                         
003661,002156: 00,2671           52141                           DXCH     MPAC                                  
003662,002157: 00,2672           52146                           DXCH     MPAC       +5                         
003663,002158: 
003664,002159: 00,2673           02675                           TC       V/SCDV                                #  Z COMPONENT.
003665,002160: 00,2674           17373                           TCF      VROTATEX                              #  GO RE-ARRANGE COMPONENTS BEFORE EXIT.
003666,002161: 

Page 99

003668,002163:                                                                                                  #           SUBROUTINE USED BY V/SC TO DIVIDE VECTOR COMPONENT IN MPAC,+1 BY THE SCALAR GIVEN IN BUF.
003669,002164: 
003670,002165: 00,2675           30113        V/SCDV             CA       VBUF       +5                         #  REFLECTS SIGN OF SCALAR.
003671,002166: 00,2676           54122                           TS       DVSIGN                                
003672,002167: 
003673,002168: 00,2677           10140                           CCS      MPAC                                  #  FORCE MPAC POSITIVE, EXITING ON ZERO.
003674,002169: 00,2700           12714                           TCF      /MPAC+                                
003675,002170: 00,2701           12703                           TCF      +2                                    
003676,002171: 00,2702           12710                           TCF      /MPAC-                                
003677,002172: 
003678,002173: 00,2703           10141                           CCS      MPAC       +1                         
003679,002174: 00,2704           12714                           TCF      /MPAC+                                
003680,002175: 00,2705           00002                           TC       Q                                     
003681,002176: 00,2706           12710                           TCF      /MPAC-                                
003682,002177: 00,2707           00002                           TC       Q                                     
003683,002178: 
003684,002179: 00,2710           00006        /MPAC-             EXTEND                                         #  USUAL COMPLEMENTING AND SETTING OF SIGN.
003685,002180: 00,2711           40141                           DCS      MPAC                                  
003686,002181: 00,2712           52141                           DXCH     MPAC                                  
003687,002182: 00,2713           24122                           INCR     DVSIGN                                
003688,002183: 
003689,002184: 00,2714           47657        /MPAC+             CS       ONE                                   #  INITIALIZE NEAR-ONE SWITCH.
003690,002185: 00,2715           54124                           TS       MAXDVSW                               
003691,002186: 
003692,002187: 00,2716           40140                           CS       MPAC                                  #  CHECK POSSIBLE OVERFLOW.
003693,002188: 00,2717           60117                           AD       BUF2                                  #  UNNORMALIZED INPUT DIVISOR.
003694,002189: 00,2720           00006                           EXTEND                                         
003695,002190: 00,2721           62725                           BZMF     /AGREE                                #  CHECK FOR NEAR-ONE OR OVERFLOW.
003696,002191: 
003697,002192: 00,2722           52141        DDVCALL            DXCH     MPAC                                  #  CALL PRE-DIVIDE NORMALIZATION.
003698,002193: 00,2723           50123                           INDEX    DVNORMCT                              
003699,002194: 00,2724           12507                           TCF      MAXTEST                               
003700,002195: 

Page 100

003702,002197: 00,2725           37642        /AGREE             CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVIDEND
003703,002198: 00,2726           60000                           DOUBLE                                         #  (ALREADY DONE FOR DIVISOR).
003704,002199: 00,2727           60141                           AD       MPAC       +1                         
003705,002200: 00,2730           54141                           TS       MPAC       +1                         
003706,002201: 00,2731           37665                           CAF      ZERO                                  
003707,002202: 00,2732           67637                           AD       POSMAX                                
003708,002203: 00,2733           26140                           ADS      MPAC                                  
003709,002204: 
003710,002205: 00,2734           40140                           CS       MPAC                                  #  CHECK TO SEE IF OVERFLOW GONE OR IF
003711,002206: 00,2735           60117                           AD       BUF2                                  #  NEAR-ONE CASE IS PRESENT.
003712,002207: 00,2736           10000                           CCS      A                                     
003713,002208: 00,2737           12722                           TCF      DDVCALL                               #  NOT NEAR-ONE.
003714,002209: 00,2740           32506        SLOPELO            DEC      .8324                                 
003715,002210: 00,2741           12355                           TCF      DVOVF                                 #  NO HOPE.
003716,002211: 
003717,002212: 00,2742           54124                           TS       MAXDVSW                               #  SIGNAL POSSIBLE NEAR-ONE CASE.
003718,002213: 00,2743           40141                           CS       MPAC       +1                         #  SEE IF DIVISION CAN BE DONE.
003719,002214: 00,2744           60120                           AD       BUF2       +1                         
003720,002215: 00,2745           00006                           EXTEND                                         
003721,002216: 00,2746           62355                           BZMF     DVOVF                                 
003722,002217: 00,2747           12722                           TCF      DDVCALL                               #  GOING TO MAXDV.
003723,002218: 

Page 101

003725,002220:                                                                                                  #           THE FOLLOWING ROUTINE EXECUTES THE UNIT INSTRUCTION, WHICH TAKES THE UNIT OF THE VECTOR IN MPAC.
003726,002221: 
003727,002222: 00,2750           07506        UNIT               TC       MPACVBUF                              #  SAVE THE ARGUMENT IN VBUF.
003728,002223: 00,2751           37665                           CAF      ZERO                                  #  MUST SENSE OVERFLOW IN FOLLOWING DOT.
003729,002224: 00,2752           56105                           XCH      OVFIND                                
003730,002225: 00,2753           54125                           TS       TEM1                                  
003731,002226: 00,2754           03246                           TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003732,002227: 00,2755           30125                           CA       TEM1                                  
003733,002228: 00,2756           56105                           XCH      OVFIND                                
003734,002229: 00,2757           00006                           EXTEND                                         
003735,002230: 00,2760           12762                           BZF      +2                                    
003736,002231: 00,2761           12355                           TCF      DVOVF                                 
003737,002232: 00,2762           00006                           EXTEND                                         
003738,002233: 00,2763           30141                           DCA      MPAC                                  #  LEAVE THE SQUARE OF THE LENGTH OF THE
003739,002234: 00,2764           50104                           INDEX    FIXLOC                                #  ARGUMENT IN LVSQUARE.
003740,002235: 00,2765           52043                           DXCH     LVSQUARE                              
003741,002236: 
003742,002237: 00,2766           03272                           TC       SQRTSUB                               #  GO TAKE THE NORMALIZED SQUARE ROOT.
003743,002238: 
003744,002239: 00,2767           10140                           CCS      MPAC                                  #  CHECK FOR UNIT OVERFLOW.
003745,002240: 00,2770           12775                           TCF      +5                                    #  MPAC IS NOT LESS THAN .5 UNLESS
003746,002241: 00,2771           54001                           TS       L                                     
003747,002242: 00,2772           50104                           INDEX    FIXLOC                                
003748,002243: 00,2773           52045                           DXCH     LV                                    
003749,002244: 00,2774           12355                           TCF      DVOVF                                 #  INPUT TO SQRTSUB WAS 0.
003750,002245: 
003751,002246: 00,2775           43076                           CS       FOURTEEN                              #  SEE IF THE INPUT WAS SO SMALL THE THE
003752,002247: 00,2776           60121                           AD       MPTEMP                                #  FIRST TWO REGISTERS OF THE SQUARE WERE 0
003753,002248: 00,2777           10000                           CCS      A                                     
003754,002249: 00,3000           40000                           COM                                            #  IF SO, SAVE THE NEGATIVE OF THE SHIFT
003755,002250: 00,3001           13057                           TCF      SMALL                                 #  COUNT -15D.
003756,002251: 
003757,002252: 00,3002           13011                           TCF      LARGE                                 #  (THIS IS USUALLY THE CASE.)
003758,002253: 
003759,002254: 00,3003           43075                           CS       THIRTEEN                              #  IF THE SHIFT COUNT WAS EXACTLY 14, SET
003760,002255: 00,3004           54121                           TS       MPTEMP                                #  THE PRE-DIVIDE NORM COUNT TO -13D.
003761,002256: 
003762,002257: 00,3005           30140                           CA       MPAC                                  #  SHIFT THE LENGTH RIGHT 14 BEFORE STORING
003763,002258: 00,3006           54001        SMALL2             TS       L                                     #  (SMALL EXITS TO THIS POINT).
003764,002259: 00,3007           37665                           CAF      ZERO                                  
003765,002260: 00,3010           13036                           TCF      LARGE2                                #  GO TO STORE LENGTH AND PROCEED.
003766,002261: 
003767,002262: 00,3011           10121        LARGE              CCS      MPTEMP                                #  MOST ALL CASES COME HERE.
003768,002263: 00,3012           13020                           TCF      LARGE3                                #  SEE IF NO NORMALIZATION WAS REQUIRED BY
003769,002264: 
003770,002265: 00,3013           42005                           CS       SRDDV                                 #  SQRT, AND IF SO, SET UP FOR A SHIFT
003771,002266: 00,3014           54121                           TS       MPTEMP                                #  RIGHT 1 BEFORE DIVIDING TO PRODUCE
003772,002267: 00,3015           00006                           EXTEND                                         #  THE DESIRED HALF UNIT VECTOR.
003773,002268: 00,3016           30141                           DCA      MPAC                                  
003774,002269: 00,3017           13036                           TCF      LARGE2                                
003775,002270: 

Page 102

003777,002272: 00,3020           40000        LARGE3             COM                                            #  LEAVE NEGATIVE OF SHIFT COUNT-1 FOR
003778,002273: 00,3021           54121                           TS       MPTEMP                                #  PREDIVIDE LEFT SHIFT.
003779,002274: 
003780,002275: 00,3022           40000                           COM                                            #  PICK UP REQUIRED SHIFTING BIT TO UNNORM-
003781,002276: 00,3023           50000                           INDEX    A                                     #  ALIZE THE SQRT RESULT.
003782,002277: 00,3024           37642                           CAF      BIT14                                 
003783,002278: 00,3025           54114                           TS       BUF                                   
003784,002279: 00,3026           00006                           EXTEND                                         
003785,002280: 00,3027           70141                           MP       MPAC       +1                         
003786,002281: 00,3030           56114                           XCH      BUF                                   
003787,002282: 00,3031           00006                           EXTEND                                         #  (UNNORMALIZE THE SQRT FOR LV).
003788,002283: 00,3032           70140                           MP       MPAC                                  
003789,002284: 00,3033           56001                           XCH      L                                     
003790,002285: 00,3034           60114                           AD       BUF                                   
003791,002286: 00,3035           56001                           XCH      L                                     
003792,002287: 
003793,002288: 00,3036           50104        LARGE2             INDEX    FIXLOC                                
003794,002289: 00,3037           52045                           DXCH     LV                                    #  LENGTH NOW STORED IN WORK AREA.
003795,002290: 
003796,002291: 00,3040           47657                           CS       ONE                                   
003797,002292: 00,3041           54124                           TS       MAXDVSW                               #  NO MAXDV CASES IN UNIT.
003798,002293: 
003799,002294: 00,3042           52107                           DXCH     VBUF                                  #  PREPARE X COMPONENT FOR DIVIDE, SETTING
003800,002295: 00,3043           52141                           DXCH     MPAC                                  #  LENGTH OF VECTOR AS DIVISOR IN BUF.
003801,002296: 00,3044           52115                           DXCH     BUF                                   
003802,002297: 00,3045           03077                           TC       UNITDV                                
003803,002298: 
003804,002299: 00,3046           52111                           DXCH     VBUF       +2                         #  DO Y AND Z IN USUAL FASHION SO WE CAN
003805,002300: 00,3047           52141                           DXCH     MPAC                                  #  EXIT THROUGH VROTATEX.
003806,002301: 00,3050           52144                           DXCH     MPAC       +3                         
003807,002302: 00,3051           03077                           TC       UNITDV                                
003808,002303: 
003809,002304: 00,3052           52113                           DXCH     VBUF       +4                         
003810,002305: 00,3053           52141                           DXCH     MPAC                                  
003811,002306: 00,3054           52146                           DXCH     MPAC       +5                         
003812,002307: 00,3055           03077                           TC       UNITDV                                
003813,002308: 00,3056           17373                           TCF      VROTATEX                              #  AND EXIT.
003814,002309: 

Page 103

003816,002311:                                                                                                  #           IF THE LENGTH OF THE ARGUMENT VECTOR WAS LESS THAN 2(-28), EACH COMPONENT MUST BE SHIFTED LEFT AT LEAST
003817,002312:                                                                                                  #  14 PLACES BEFORE THE DIVIDE. NOTE THAT IN THIS CASE, THE MAJOR PART OF EACH COMPONENT IS ZERO.
003818,002313: 
003819,002314: 00,3057           54121        SMALL              TS       MPTEMP                                #  NEGATIVE OF PRE-DIVIDE SHIFT COUNT.
003820,002315: 
003821,002316: 00,3060           37665                           CAF      ZERO                                  #  SHIFT EACH COMPONENT LEFT 14.
003822,002317: 00,3061           56107                           XCH      VBUF       +1                         
003823,002318: 00,3062           56106                           XCH      VBUF                                  
003824,002319: 00,3063           56111                           XCH      VBUF       +3                         
003825,002320: 00,3064           56110                           XCH      VBUF       +2                         
003826,002321: 00,3065           56113                           XCH      VBUF       +5                         
003827,002322: 00,3066           56112                           XCH      VBUF       +4                         
003828,002323: 
003829,002324: 00,3067           40121                           CS       MPTEMP                                
003830,002325: 00,3070           50000                           INDEX    A                                     
003831,002326: 00,3071           37642                           CAF      BIT14                                 
003832,002327: 00,3072           00006                           EXTEND                                         
003833,002328: 00,3073           70140                           MP       MPAC                                  
003834,002329: 00,3074           13006                           TCF      SMALL2                                
003835,002330: 
003836,002331: 00,3075           00015        THIRTEEN           DEC      13         B-14                       
003837,002332: 00,3076           00016        FOURTEEN           DEC      14         B-14                       
003838,002333: 

Page 104

003840,002335:                                                                                                  #           THE FOLLOWING ROUTINE SETS UP THE CALL TO THE DIVIDE ROUTINES.
003841,002336: 
003842,002337: 00,3077           10140        UNITDV             CCS      MPAC                                  #  FORCE MPAC POSITIVE IF POSSIBLE, SETTING
003843,002338: 00,3100           13116                           TCF      UMPAC+                                #  DVSIGN ACCORDING TO THE SIGN OF MPAC
003844,002339: 00,3101           13103                           TCF      +2                                    #  SINCE THE DIVISOR IS ALWAYS POSITIVE
003845,002340: 00,3102           13110                           TCF      UMPAC-                                #  HERE.
003846,002341: 
003847,002342: 00,3103           10141                           CCS      MPAC       +1                         
003848,002343: 00,3104           13116                           TCF      UMPAC+                                
003849,002344: 00,3105           00002                           TC       Q                                     #  EXIT IMMEDIATELY ON ZERO.
003850,002345: 00,3106           13110                           TCF      UMPAC-                                
003851,002346: 00,3107           00002                           TC       Q                                     
003852,002347: 
003853,002348: 00,3110           47665        UMPAC-             CS       ZERO                                  #  IF NEGATIVE, SET -0 IN DVSIGN FOR FINAL
003854,002349: 00,3111           54122                           TS       DVSIGN                                #  COMPLEMENT.
003855,002350: 00,3112           00006                           EXTEND                                         
003856,002351: 00,3113           40141                           DCS      MPAC                                  #  PICK UP ABSOLUTE VALUE OF ARG AND JUMP.
003857,002352: 00,3114           50121                           INDEX    MPTEMP                                
003858,002353: 00,3115           12506                           TCF      MAXTEST    -1                         
003859,002354: 
003860,002355: 00,3116           54122        UMPAC+             TS       DVSIGN                                #  SET DVSIGN FOR POSITIVE QUOTIENT.
003861,002356: 00,3117           52141                           DXCH     MPAC                                  
003862,002357: 00,3120           50121                           INDEX    MPTEMP                                
003863,002358: 00,3121           12506                           TCF      MAXTEST    -1                         
003864,002359: 

Page 105

003866,002361:                                                                                                  #           MISCELLANEOUS UNARY OPERATIONS.
003867,002362: 
003868,002363: 00,3122           03227        DSQ                TC       DSQSUB                                #  SQUARE THE DP CONTENTS OF MPAC.
003869,002364: 00,3123           16014                           TCF      DANZIG                                
003870,002365: 
003871,002366: 00,3124           10147        ABVALABS           CCS      MODE                                  #  ABVAL OR ABS INSTRUCTION.
003872,002367: 00,3125           13154                           TCF      ABS                                   #  DO ABS ON SCALAR.
003873,002368: 00,3126           13154                           TCF      ABS                                   
003874,002369: 
003875,002370: 00,3127           03246        ABVAL              TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003876,002371: 00,3130           22147                           LXCH     MODE                                  #  MODE IS NOW DP (L ZERO AFTER DAS).
003877,002372: 
003878,002373: 00,3131           00006                           EXTEND                                         #  STORE SQUARE OF LENGTH IN WORK AREA.
003879,002374: 00,3132           30141                           DCA      MPAC                                  
003880,002375: 00,3133           50104                           INDEX    FIXLOC                                
003881,002376: 00,3134           52043                           DXCH     LVSQUARE                              
003882,002377: 
003883,002378: 00,3135           03272        SQRT               TC       SQRTSUB                               #  TAKE THE SQUARE ROOT OF MPAC.
003884,002379: 00,3136           10121                           CCS      MPTEMP                                #  RETURNED NORMALIZED SQUARE ROOT. SEE IF
003885,002380: 00,3137           13141                           TCF      +2                                    #  ANY UN-NORMALIZATION REQUIRED AND EXIT
003886,002381: 00,3140           16014                           TCF      DANZIG                                #  IF NOT.
003887,002382: 
003888,002383: 00,3141           62273                           AD       NEG12                                 #  A RIGHT SHIFT OF MORE THAN 13 COULD BE
003889,002384: 00,3142           00006                           EXTEND                                         #  REQUIRED IF INPUT WAS ZERO IN MPAC,+1.
003890,002385: 00,3143           63147                           BZMF     SQRTSHFT                              #  GOES HERE IN MOST CASES.
003891,002386: 00,3144           22007                           ZL                                             #  IF A LONG SHIFT IS REQUIRED, GO TO
003892,002387: 00,3145           22102                           LXCH     ADDRWD                                #  GENERAL RIGHT SHIFT ROUTINES.
003893,002388: 00,3146           12263                           TCF      GENSCR     +4                         #  ADDRWD WAS ZERO TO PREVENT ROUND.
003894,002389: 
003895,002390: 00,3147           50121        SQRTSHFT           INDEX    MPTEMP                                #  SELECT SHIFTING BIT AND EXIT THROUGH
003896,002391: 00,3150           37641                           CAF      BIT15                                 #  SHIFT ROUTINES.
003897,002392: 00,3151           54121                           TS       MPTEMP                                
003898,002393: 00,3152           37665                           CAF      ZERO                                  #  TO ZERO MPAC +2 IN THE PROCESS.
003899,002394: 00,3153           12017                           TCF      MPACSHR    +3                         
003900,002395: 
003901,002396: 00,3154           06711        ABS                TC       BRANCH                                #  TEST SIGN OF MPAC AND COMPLEMENT IF
003902,002397: 00,3155           16014                           TCF      DANZIG                                
003903,002398: 00,3156           16014                           TCF      DANZIG                                
003904,002399: 00,3157           17616                           TCF      COMP                                  
003905,002400: 

Page 106

003907,002402: 00,3160           47655        VDEF               CS       FOUR                                  #  VECTOR DEFINE - ESSENTIALLY TREATS
003908,002403: 00,3161           26152                           ADS      PUSHLOC                               #  SCALAR IN MPAC AS X COMPONENT, PUSHES UP
003909,002404: 00,3162           00006                           EXTEND                                         #  FOR Y AND THEN AGAIN FOR Z.
003910,002405: 00,3163           50000                           INDEX    A                                     
003911,002406: 00,3164           30003                           DCA      2                                     
003912,002407: 00,3165           52144                           DXCH     MPAC       +3                         
003913,002408: 00,3166           00006                           EXTEND                                         
003914,002409: 00,3167           50152                           INDEX    PUSHLOC                               
003915,002410: 00,3170           30001                           DCA      0                                     
003916,002411: 00,3171           52146                           DXCH     MPAC       +5                         
003917,002412: 00,3172           47657                           CS       ONE                                   #  MODE IS NOW VECTOR.
003918,002413: 00,3173           16013                           TCF      NEWMODE                               
003919,002414: 
003920,002415: 00,3174           03246        VSQ                TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003921,002416: 00,3175           37665                           CAF      ZERO                                  
003922,002417: 00,3176           16013                           TCF      NEWMODE                               #  MODE IS NOW DP.
003923,002418: 
003924,002419: 00,3177           00006        PUSH               EXTEND                                         #  PUSH DOWN MPAC LEAVING IT LOADED.
003925,002420: 00,3200           30141                           DCA      MPAC                                  
003926,002421: 00,3201           50152                           INDEX    PUSHLOC                               #  PUSH DOWN FIRST TWO REGISTERS IN EACH
003927,002422: 00,3202           52001                           DXCH     0                                     
003928,002423: 
003929,002424: 00,3203           50147                           INDEX    MODE                                  #  INCREMENT PUSHDOWN POINTER.
003930,002425: 00,3204           36164                           CAF      NO.WDS                                
003931,002426: 00,3205           26152                           ADS      PUSHLOC                               
003932,002427: 
003933,002428: 00,3206           10147                           CCS      MODE                                  
003934,002429: 00,3207           13222                           TCF      TPUSH                                 #  PUSH DOWN MPAC +2.
003935,002430: 00,3210           16014                           TCF      DANZIG                                #  DONE FOR DP.
003936,002431: 
003937,002432: 00,3211           00006                           EXTEND                                         #  ON VECTOR, PUSH DOWN Y AND Z COMPONENTS.
003938,002433: 00,3212           30144                           DCA      MPAC       +3                         
003939,002434: 00,3213           50152                           INDEX    PUSHLOC                               
003940,002435: 00,3214           51775                           DXCH     0          -4                         
003941,002436: 00,3215           00006                           EXTEND                                         
003942,002437: 00,3216           30146                           DCA      MPAC       +5                         
003943,002438: 00,3217           50152                           INDEX    PUSHLOC                               
003944,002439: 00,3220           51777                           DXCH     0          -2                         
003945,002440: 00,3221           16014                           TCF      DANZIG                                
003946,002441: 
003947,002442: 00,3222           30142        TPUSH              CA       MPAC       +2                         
003948,002443: 00,3223           16560                           TCF      ENDTPUSH   +2                         
003949,002444: 
003950,002445: 00,3224           50104        RVQ                INDEX    FIXLOC                                #  RVQ - RETURN IVA QPRET.
003951,002446: 00,3225           30052                           CA       QPRET                                 
003952,002447: 00,3226           16652                           TCF      GOTO       +1                         
003953,002448: 

Page 107

003955,002450:                                                                                                  #           THE FOLLOWING SUBROUTINES ARE USED IN SQUARING MPAC, IN BOTH THE SCALAR AND VECTOR SENSE. THEY ARE
003956,002451:                                                                                                  #  SPECIAL CASES OF DMPSUB AND DOTSUB, PUT IN TO SAVE SOME TIME.
003957,002452: 
003958,002453: 00,3227           30141        DSQSUB             CA       MPAC       +1                         #  SQUARES THE SCALAR CONTENTS OF MPAC.
003959,002454: 00,3230           00006                           EXTEND                                         
003960,002455: 00,3231           70000                           SQUARE                                         
003961,002456: 00,3232           54142                           TS       MPAC       +2                         
003962,002457: 00,3233           37665                           CAF      ZERO                                  #  FORM 2(CROSS TERM).
003963,002458: 00,3234           56141                           XCH      MPAC       +1                         
003964,002459: 00,3235           00006                           EXTEND                                         
003965,002460: 00,3236           70140                           MP       MPAC                                  
003966,002461: 00,3237           20001                           DDOUBL                                         #  AND MAYBE OVERFLOW.
003967,002462: 00,3240           20142                           DAS      MPAC       +1                         #  AND SET A TO NET OVERFLOW.
003968,002463: 00,3241           56140                           XCH      MPAC                                  
003969,002464: 00,3242           00006                           EXTEND                                         
003970,002465: 00,3243           70000                           SQUARE                                         
003971,002466: 00,3244           20141                           DAS      MPAC                                  
003972,002467: 00,3245           00002                           TC       Q                                     
003973,002468: 
003974,002469: 00,3246           00006        VSQSUB             EXTEND                                         #  DOTS THE VECTOR IN MPAC WITH ITSELF.
003975,002470: 00,3247           22123                           QXCH     DOTRET                                
003976,002471: 00,3250           03227                           TC       DSQSUB                                #  SQUARE THE X COMPONENT.
003977,002472: 00,3251           52144                           DXCH     MPAC       +3                         
003978,002473: 00,3252           52141                           DXCH     MPAC                                  
003979,002474: 00,3253           52115                           DXCH     BUF                                   #  SO WE CAN END IN DOTSUB.
003980,002475: 00,3254           30142                           CA       MPAC       +2                         
003981,002476: 00,3255           54116                           TS       BUF        +2                         
003982,002477: 
003983,002478: 00,3256           03227                           TC       DSQSUB                                #  SQUARE Y COMPONENT.
003984,002479: 00,3257           52142                           DXCH     MPAC       +1                         
003985,002480: 00,3260           20116                           DAS      BUF        +1                         
003986,002481: 00,3261           60140                           AD       MPAC                                  
003987,002482: 00,3262           60114                           AD       BUF                                   
003988,002483: 00,3263           54114                           TS       BUF                                   
003989,002484: 00,3264           13266                           TCF      +2                                    
003990,002485: 00,3265           54105                           TS       OVFIND                                #  IF OVERFLOW.
003991,002486: 
003992,002487: 00,3266           52146                           DXCH     MPAC       +5                         
003993,002488: 00,3267           52141                           DXCH     MPAC                                  
003994,002489: 00,3270           03227                           TC       DSQSUB                                #  SQUARE Z COMPONENT.
003995,002490: 00,3271           17165                           TCF      ENDDOT                                #  END AS IN DOTSUB.
003996,002491: 

Page 108

003998,002493:                                                                                                  #           DOUBLE PRECISION SQUARE ROOT ROUTINE. TAKE THE SQUARE ROOT OF THE TRIPLE PRECISION (MPAC +2 USED ONLY
003999,002494:                                                                                                  #  IN NORMALIZATION) CONTENTS OF MPAC AND LEAVE THE NORMALIZED RESULT IN MPAC (C(MPAC) GREATER THAN OR EQUAL TO
004000,002495:                                                                                                  #  .5).  THE RIGHT SHIFT COUNT (TO UNNORMALIZE) IS LEFT IN MPTEMP.
004001,002496: 
004002,002497: 
004003,002498: 
004004,002499: 00,3272           37665        SQRTSUB            CAF      ZERO                                  #  START BY ZEROING RIGHT SHIFT COUNT.
004005,002500: 00,3273           54121                           TS       MPTEMP                                
004006,002501: 
004007,002502: 00,3274           10140                           CCS      MPAC                                  #  CHECK FOR POSITIVE ARGUMENT, SHIFTING
004008,002503: 00,3275           13333                           TCF      SMPAC+                                #  FIRST SIGNIFICANT MPAC REGISTER INTO
004009,002504: 00,3276           13300                           TCF      +2                                    #  MPAC ITSELF.
004010,002505: 00,3277           13322                           TCF      SQRTNEG                               #  SEE IF MAG OF ARGUMENT LESS THAN 10(-4).
004011,002506: 
004012,002507: 00,3300           56142                           XCH      MPAC       +2                         #  MPAC IS ZERO - SHIFT LEFT 14.
004013,002508: 00,3301           56141                           XCH      MPAC       +1                         
004014,002509: 00,3302           54140                           TS       MPAC                                  
004015,002510: 00,3303           37663                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
004016,002511: 00,3304           54121                           TS       MPTEMP                                
004017,002512: 
004018,002513: 00,3305           10140                           CCS      MPAC                                  #  SEE IF MPAC NOW PNZ.
004019,002514: 00,3306           13333                           TCF      SMPAC+                                
004020,002515: 00,3307           13311                           TCF      +2                                    
004021,002516: 00,3310           13325                           TCF      ZEROANS                               #  NEGATIVE BUT LESS THAN 10(-4) IN MAG.
004022,002517: 
004023,002518: 00,3311           56141                           XCH      MPAC       +1                         #  ZERO - SHIFT LEFT 14 AGAIN.
004024,002519: 00,3312           54140                           TS       MPAC                                  
004025,002520: 00,3313           37663                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
004026,002521: 00,3314           26121                           ADS      MPTEMP                                
004027,002522: 
004028,002523: 00,3315           10140                           CCS      MPAC                                  
004029,002524: 00,3316           13333                           TCF      SMPAC+                                
004030,002525: 00,3317           00002                           TC       Q                                     #  SQRT(0) = 0.
004031,002526: 00,3320           13325                           TCF      ZEROANS                               
004032,002527: 00,3321           00002                           TC       Q                                     
004033,002528: 
004034,002529: 
004035,002530: 
004036,002531: 00,3322           10000        SQRTNEG            CCS      A                                     #  ARGUMENT IS NEGATIVE, BUT SEE IF SIGN-
004037,002532: 00,3323           13331                           TCF      SQRTABRT                              #  CORRECTED ARGUMENT IS LESS THAN 10(-4)
004038,002533: 
004039,002534: 00,3324           10141                           CCS      MPAC       +1                         #  IN MAGNITUDE. IF SO, CALL ANSWER ZERO.
004040,002535: 00,3325           37665        ZEROANS            CAF      ZERO                                  #  FORCE ANSWER TO ZERO HERE.
004041,002536: 00,3326           13401                           TCF      FIXROOT                               
004042,002537: 00,3327           13331                           TCF      SQRTABRT                              
004043,002538: 00,3330           13401                           TCF      FIXROOT                               
004044,002539: 
004045,002540: 00,3331           05446        SQRTABRT           TC       ABORT                                 
004046,002541: 00,3332           01302                           OCT      1302                                  
004047,002542: 

Page 109

004049,002544: 00,3333           62410        SMPAC+             AD       -1/2+2                                #  SEE IF ARGUMENT GREATER THAN OR EQUAL TO
004050,002545: 00,3334           00006                           EXTEND                                         #  .5.
004051,002546: 00,3335           63404                           BZMF     SRTEST                                #  IF SO, SEE IF LESS THAN .25.
004052,002547: 
004053,002548: 00,3336           52141                           DXCH     MPAC                                  #  WE WILL TAKE THE SQUARE ROOT OF MPAC/2.
004054,002549: 00,3337           22021                           LXCH     SR                                    #  SHIFT RIGHT 1 AND GO TO THE SQRT ROUTINE
004055,002550: 00,3340           00006                           EXTEND                                         
004056,002551: 00,3341           77642                           MP       HALF                                  
004057,002552: 00,3342           52141                           DXCH     MPAC                                  
004058,002553: 00,3343           56021                           XCH      SR                                    
004059,002554: 00,3344           26141                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
004060,002555: 
004061,002556: 00,3345           32274        ARGHI              CAF      SLOPEHI                               #  ARGUMENT BETWEEN .25 AND .5. GET A
004062,002557: 00,3346           00006                           EXTEND                                         #  LINEAR APPROXIMATION FOR THIS RANGE.
004063,002558: 00,3347           70140                           MP       MPAC                                  
004064,002559: 00,3350           62510                           AD       BIASHI                                #  X0/2 = (MPAC/2)(SLOPEHI) + BIASHI/2.
004065,002560: 
004066,002561: 00,3351           54114                 +4        TS       BUF                                   #  X0/2 (ARGLO ENTERS HERE).
004067,002562: 00,3352           30140                           CA       MPAC                                  #  SINGLE-PRECISION THROUGHOUT.
004068,002563: 00,3353           22007                           ZL                                             
004069,002564: 00,3354           00006                           EXTEND                                         
004070,002565: 00,3355           10114                           DV       BUF                                   #  (MPAC/2)/(X0/2)
004071,002566: 00,3356           00006                           EXTEND                                         
004072,002567: 00,3357           77642                           MP       HALF                                  
004073,002568: 00,3360           26114                           ADS      BUF                                   #  X1 = X0/2 + .5(MPAC/2)/(X0/2).
004074,002569: 
004075,002570: 00,3361           00006                           EXTEND                                         
004076,002571: 00,3362           77642                           MP       HALF                                  #  FORM UP X1/2.
004077,002572: 00,3363           52141                           DXCH     MPAC                                  #  SAVE AND BRING OUT ARGUMENT.
004078,002573: 00,3364           00006                           EXTEND                                         #  TAKE DP QUOTIENT WITH X1.
004079,002574: 00,3365           10114                           DV       BUF                                   
004080,002575: 00,3366           54115                           TS       BUF        +1                         #  SAVE MAJOR PART OF QUOTIENT.
004081,002576: 00,3367           37665                           CAF      ZERO                                  #  FORM MINOR PART OF QUOTIENT USING
004082,002577: 00,3370           56001                           XCH      L                                     #  (REMAINDER,0).
004083,002578: 00,3371           00006                           EXTEND                                         
004084,002579: 00,3372           10114                           DV       BUF                                   
004085,002580: 00,3373           54001                           TS       L                                     #  IN PREPARATION FOR DAS.
004086,002581: 00,3374           30115                           CA       BUF        +1                         
004087,002582: 00,3375           20141                           DAS      MPAC                                  #  X2 = X1/2 + (MPAC/2)X1
004088,002583: 
004089,002584: 00,3376           00006                           EXTEND                                         #  OVERFLOWS IF ARG. NEAR POSMAX.
004090,002585: 00,3377           13403                           BZF      TCQBNK00                              
004091,002586: 00,3400           37637                           CAF      POSMAX                                
004092,002587: 00,3401           54140        FIXROOT            TS       MPAC                                  
004093,002588: 00,3402           54141                           TS       MPAC       +1                         
004094,002589: 00,3403           00002        TCQBNK00           TC       Q                                     #  RETURN TO CALLER TO UNNORMALIZE, ETC.
004095,002590: 

Page 110

004097,002592: 00,3404           67643        SRTEST             AD       QUARTER                               #  ARGUMENT WAS LESS THAN .5, SEE IF LESS
004098,002593: 00,3405           00006                           EXTEND                                         #  THAN .25.
004099,002594: 00,3406           63430                           BZMF     SQRTNORM                              #  IF SO, BEGIN NORMALIZATION.
004100,002595: 
004101,002596: 00,3407           52141                           DXCH     MPAC                                  #  IF BETWEEN .5 AND .25, SHIFT RIGHT 1 AND
004102,002597: 00,3410           22021                           LXCH     SR                                    #  START AT ARGLO.
004103,002598: 00,3411           00006                           EXTEND                                         
004104,002599: 00,3412           77642                           MP       HALF                                  
004105,002600: 00,3413           52141                           DXCH     MPAC                                  
004106,002601: 00,3414           56021                           XCH      SR                                    
004107,002602: 00,3415           26141                           ADS      MPAC       +1                         #  NO OVERFLOW.
004108,002603: 
004109,002604: 00,3416           32740        ARGLO              CAF      SLOPELO                               #  (NORMALIZED) ARGUMENT BETWEEN .125 AND
004110,002605: 00,3417           00006                           EXTEND                                         #  .25
004111,002606: 00,3420           70140                           MP       MPAC                                  
004112,002607: 00,3421           62250                           AD       BIASLO                                
004113,002608: 00,3422           13351                           TCF      ARGHI      +4                         #  BEGIN SQUARE ROOT.
004114,002609: 
004115,002610: 00,3423           00006        SQRTNM2            EXTEND                                         #  SHIFT LEFT 2 AND INCREMENT RIGHT SHIFT
004116,002611: 00,3424           30142                           DCA      MPAC       +1                         #  COUNT (FOR TERMINAL UNNORMALIZATION).
004117,002612: 00,3425           20142                           DAS      MPAC       +1                         
004118,002613: 00,3426           60140                           AD       MPAC                                  
004119,002614: 00,3427           26140                           ADS      MPAC                                  #  (NO OVERFLOW).
004120,002615: 
004121,002616: 00,3430           24121        SQRTNORM           INCR     MPTEMP                                #  FIRST TIME THROUGH, JUST SHIFT LEFT 1
004122,002617: 00,3431           00006                           EXTEND                                         #  (PUTS IN EFFECTIVE RIGHT SHIFT SINCE
004123,002618: 00,3432           30142                           DCA      MPAC       +1                         #  WE WANT MPAC/2).
004124,002619: 00,3433           20142                           DAS      MPAC       +1                         
004125,002620: 00,3434           60140                           AD       MPAC                                  
004126,002621: 00,3435           26140                           ADS      MPAC                                  #  (AGAIN NO OVERFLOW).
004127,002622: 00,3436           60000                           DOUBLE                                         
004128,002623: 00,3437           54022                           TS       CYL                                   
004129,002624: 
004130,002625: 00,3440           10022        NORMTEST           CCS      CYL                                   #  SEE IF ARGUMENT NOW NORMALIZED AT
004131,002626: 00,3441           10022                           CCS      CYL                                   #  GREATER THAN .125.
004132,002627: 00,3442           13423                           TCF      SQRTNM2                               #  NO - SHIFT LEFT 2 MORE AND TRY AGAIN.
004133,002628: 00,3443           13345                           TCF      ARGHI                                 #  YES - NOW BETWEEN .5 AND .25.
004134,002629: 00,3444           13416                           TCF      ARGLO                                 #  ARGUMENT NOW BETWEEN .25 AND .125.
004135,002630: 

Page 111

004137,002632:                                                                                                  #  TRIGONOMETRIC FUNCTION PACKAGE.
004138,002633: 
004139,002634:                                                                                                  #           THE FOLLOWING TRIGONOMETRIC FUNCTIONS ARE AVAILABLE AS INTERPRETIVE OPERATIONS:
004140,002635: 
004141,002636:                                                                                                  #           1.      SIN            COMPUTES (1/2)SINE(2 PI MPAC).
004142,002637:                                                                                                  #           2.      COS            COMPUTES (1/2)COSINE(2 PI MPAC).
004143,002638: 
004144,002639:                                                                                                  #           3.      ASIN           COMPUTES (1/2PI)ARCSINE(2 MPAC).
004145,002640:                                                                                                  #           4.      ACOS           COMPUTES (1/2PI)ARCCOSINE(2 MPAC).
004146,002641: 
004147,002642:                                                                                                  #  SIN-ASIN AND COS-ACOS ARE MUTUALLY INVERSE, IE SIN(ASIN(X)) = X.
004148,002643: 
004149,002644: 00,3445           06711        COSINE             TC       BRANCH                                #  FINDS COSINE USING THE IDENTITY
004150,002645: 00,3446           13451                           TCF      +3                                    #  COS(X) = SIN(PI/2 - ABS(X)).
004151,002646: 00,3447           13454                           TCF      PRESINE                               
004152,002647: 00,3450           13454                           TCF      PRESINE                               
004153,002648: 
004154,002649: 00,3451           00006                 +3        EXTEND                                         
004155,002650: 00,3452           40141                           DCS      MPAC                                  
004156,002651: 00,3453           52141                           DXCH     MPAC                                  
004157,002652: 
004158,002653: 00,3454           37643        PRESINE            CAF      QUARTER                               #  PI/2 SCALED.
004159,002654: 00,3455           26140                           ADS      MPAC                                  
004160,002655: 
004161,002656: 
004162,002657: 
004163,002658: 00,3456           52141        SINE               DXCH     MPAC                                  #  DOUBLE ARGUMENT.
004164,002659: 00,3457           20001                           DDOUBL                                         
004165,002660: 00,3460           54000                           OVSK                                           #  SEE IF OVERFLOW PRESENT.
004166,002661: 00,3461           13464                           TCF      +3                                    #  IF NOT, ARGUMENT OK AS IS.
004167,002662: 
004168,002663: 00,3462           00006                           EXTEND                                         #  IF SO, WE LOST (OR GAINED) PI, SO
004169,002664: 00,3463           40001                           DCOM                                           #  COMPLEMENT MPAC USING THE IDENTITY
004170,002665:                                                                                                  #  SIN(X-(+)PI) = SIN(-X).
004171,002666: 00,3464           52141                 +3        DXCH     MPAC                                  
004172,002667: 00,3465           30140                           CA       MPAC                                  #  SEE IF ARGUMENT GREATER THAN .5 IN
004173,002668: 00,3466           60000                           DOUBLE                                         #  MAGNITUDE. IF SO, REDUCE IT TO LESS THAN
004174,002669: 00,3467           54001                           TS       L                                     #  .5 (+-PI/2 SCALED) AS FOLLOWS:
004175,002670: 00,3470           13501                           TCF      SN1                                   
004176,002671: 
004177,002672: 00,3471           50000                           INDEX    A                                     #  IF POSITIVE, FORM PI - X, IF NEGATIVE
004178,002673: 00,3472           37641                           CAF      NEG1/2     +1                         #  USE -PI - X.
004179,002674: 00,3473           60000                           DOUBLE                                         
004180,002675: 00,3474           00006                           EXTEND                                         
004181,002676: 00,3475           60140                           SU       MPAC                                  #  GUARANTEED NO OVERFLOW.
004182,002677: 00,3476           54140                           TS       MPAC                                  
004183,002678: 00,3477           40141                           CS       MPAC       +1                         
004184,002679: 00,3500           54141                           TS       MPAC       +1                         
004185,002680: 

Page 112

004187,002682: 00,3501           00006        SN1                EXTEND                                         #  SET UP TO EVALUATE HASTINGS POLYNOMIAL
004188,002683: 00,3502           30141                           DCA      MPAC                                  
004189,002684: 00,3503           52120                           DXCH     BUF2                                  
004190,002685: 00,3504           03227                           TC       DSQSUB                                #  SQUARE MPAC.
004191,002686: 
004192,002687: 00,3505           07202                           TC       POLY                                  #  EVALUATE FOURTH ORDER POLYNOMIAL.
004193,002688: 00,3506           00003                           DEC      3          B-14                       
004194,002689: 00,3507           14441 37325                     2DEC     +.3926990796                            
004195,002690: 
004196,002691: 00,3511           53250 60764                     2DEC     -.6459637111                            
004197,002692: 
004198,002693: 00,3513           12146 21276                     2DEC     +.318758717                            
004199,002694: 
004200,002695: 00,3515           75466 71471                     2DEC     -.074780249                            
004201,002696: 
004202,002697: 00,3517           00236 32757                     2DEC     +.009694988                            
004203,002698: 
004204,002699: 00,3521           32434                           CAF      LBUF2                                 #  MULTIPLY BY ARGUMENT AND SHIFT LEFT 2.
004205,002700: 00,3522           07066                           TC       DMPSUB     -1                         
004206,002701: 
004207,002702: 00,3523           00006                           EXTEND                                         
004208,002703: 00,3524           30142                           DCA      MPAC       +1                         
004209,002704: 00,3525           20142                           DAS      MPAC       +1                         
004210,002705: 00,3526           60140                           AD       MPAC                                  
004211,002706: 00,3527           26140                           ADS      MPAC                                  #  NEITHER SHIFT OVERFLOWS.
004212,002707: 00,3530           00006                           EXTEND                                         
004213,002708: 00,3531           30142                           DCA      MPAC       +1                         
004214,002709: 00,3532           20142                           DAS      MPAC       +1                         
004215,002710: 00,3533           60140                           AD       MPAC                                  
004216,002711: 00,3534           26140                           ADS      MPAC                                  
004217,002712: 00,3535           16014                           TCF      DANZIG                                
004218,002713: 

Page 113

004220,002715:                                                                                                  #           ARCSIN/ARCCOS ROUTINE.
004221,002716: 
004222,002717: 00,3536           33557        ARCSIN             CAF      LASINEX                               #  COMPUTE ARCSIN BY USING THE IDENTITY
004223,002718: 00,3537           13541                           TCF      +2                                    #  ARCSIN(X) = PI/2 - ARCCOS(X).
004224,002719: 
004225,002720: 00,3540           33641        ARCCOS             CAF      LDANZIG                               #  (EXITS IMMEDIATELY).
004226,002721: 00,3541           54122                           TS       ESCAPE                                
004227,002722: 00,3542           06711                           TC       BRANCH                                #  TEST SIGN OF INPUT.
004228,002723: 00,3543           13553                           TCF      ACOSST                                #  START IMMEDIATELY IF POSITIVE.
004229,002724: 00,3544           13655                           TCF      ACOSZERO                              #  ARCCOS(0) = PI/2 = .25.
004230,002725: 00,3545           00006                           EXTEND                                         #  IF NEGATIVE, USE THE IDENTITY
004231,002726: 00,3546           40141                           DCS      MPAC                                  #  ARCCOS(X) = PI - ARCCOS(-X), FORCING
004232,002727: 00,3547           52141                           DXCH     MPAC                                  #  ARGUMENT POSITIVE.
004233,002728: 00,3550           32247                           CAF      TCSUBTR                               #  SET EXIT TO DO ABOVE BEFORE
004234,002729: 00,3551           56122                           XCH      ESCAPE                                #  ARCSIN/ARCCOS CONSIDERATIONS.
004235,002730: 00,3552           54123                           TS       ESCAPE2                               
004236,002731: 
004237,002732: 00,3553           47642        ACOSST             CS       HALF                                  #  TEST MAGNITUDE OF INPUT.
004238,002733: 00,3554           60140                           AD       MPAC                                  
004239,002734: 00,3555           10000                           CCS      A                                     
004240,002735: 00,3556           13647                           TCF      ACOSOVF                               #  THIS IS PROBABLY AN OVERFLOW CASE.
004241,002736: 
004242,002737: 00,3557           13635        LASINEX            TCF      ASINEX                                
004243,002738: 
004244,002739: 00,3560           13570                           TCF      ACOSST2                               #  NO OVERFLOW - PROCEED.
004245,002740: 
004246,002741: 00,3561           10141                           CCS      MPAC       +1                         #  IF MAJOR PART IS .5, CALL ANSWER 0
004247,002742: 00,3562           37665                           CAF      ZERO                                  #  UNLESS MINOR PART NEGATIVE.
004248,002743: 00,3563           13565                           TCF      ACOS=0                                
004249,002744: 
004250,002745: 00,3564           13570                           TCF      ACOSST2                               
004251,002746: 
004252,002747: 00,3565           54141        ACOS=0             TS       MPAC       +1                         
004253,002748: 00,3566           54140                           TS       MPAC                                  
004254,002749: 00,3567           00122                           TC       ESCAPE                                
004255,002750: 
004256,002751: 00,3570           00006        ACOSST2            EXTEND                                         #  NOW THAT ARGUMENT IS IN PROPER RANGE,
004257,002752: 00,3571           40141                           DCS      MPAC                                  #  BEGIN COMPUTATION. USE HASTINGS
004258,002753: 00,3572           67642                           AD       HALF                                  #  APPROXIMATION ARCCOS(X) = SQRT(1-X)P(X)
004259,002754: 00,3573           52141                           DXCH     MPAC                                  #  IN A SCALED VERSION WHERE P(X) IS A
004260,002755: 00,3574           52120                           DXCH     BUF2                                  #  SEVENTH ORDER POLYNOMIAL.
004261,002756: 
004262,002757: 00,3575           03272                           TC       SQRTSUB                               #  RETURNS WITH NORMALIZED SQUARE ROOT.
004263,002758: 
004264,002759: 00,3576           10121                           CCS      MPTEMP                                #  SEE IF UN-NORMALIZATION REQUIRED.
004265,002760: 00,3577           13642                           TCF      ACOSSHR                               #  IF SO.
004266,002761: 

Page 114

004268,002763: 00,3600           52141        ACOS3              DXCH     MPAC                                  #  SET UP FOR POLYNOMIAL EVALUATION.
004269,002764: 00,3601           52120                           DXCH     BUF2                                  
004270,002765: 00,3602           52141                           DXCH     MPAC                                  
004271,002766: 
004272,002767: 00,3603           07202                           TC       POLY                                  
004273,002768: 00,3604           00006                           DEC      6          B-14                       
004274,002769: 00,3605           13240 23630                     2DEC     +.353553385                            #  COEFFICIENTS ARE C 2(+I)/PISQRT(2) WHERE
004275,002770: 
004276,002771: 00,3607           74721 47775                     2DEC*    -.0483017006 B+1*                       #                  I
004277,002772: 
004278,002773: 00,3611           02440 20237                     2DEC*    +.0200273085 B+2*                       #       WHERE C STANDS FOR ORIGINAL COEFFS.
004279,002774: 
004280,002775: 00,3613           75067 70742                     2DEC*    -.0112931863 B+3*                       
004281,002776: 
004282,002777: 00,3615           03436 26756                     2DEC*    +.00695311612 B+4*                       
004283,002778: 
004284,002779: 00,3617           74037 57640                     2DEC*    -.00384617957 B+5*                       
004285,002780: 
004286,002781: 00,3621           03046 07143                     2DEC*    +.001501297736 B+6*                       
004287,002782: 
004288,002783: 00,3623           76654 42244                     2DEC*    -.000284160334 B+7*                       
004289,002784: 
004290,002785: 00,3625           32434                           CAF      LBUF2                                 #  DO FINAL MULTIPLY AND GO TO ANY
004291,002786: 00,3626           07066                           TC       DMPSUB     -1                         #  EPILOGUE SEQUENCES.
004292,002787: 00,3627           00122                           TC       ESCAPE                                
004293,002788: 
004294,002789: 00,3630           00006        SUBTR              EXTEND                                         #  EPILOGUE FOR NEGATIVE INPUTS TO ARCCOS.
004295,002790: 00,3631           40141                           DCS      MPAC                                  
004296,002791: 00,3632           67642                           AD       HALF                                  #  FORMS PI - ARCCOS(-X) = ARCCOS(X).
004297,002792: 00,3633           52141                           DXCH     MPAC                                  
004298,002793: 00,3634           00123                           TC       ESCAPE2                               #  GO TO POSSIBLE ARCSIN EPILOGUE.
004299,002794: 
004300,002795: 00,3635           00006        ASINEX             EXTEND                                         
004301,002796: 00,3636           40141                           DCS      MPAC                                  #  ARCSIN EPILOGUE - GET ARCSIN(X)
004302,002797: 00,3637           67643                           AD       QUARTER                               #  = PI/2 - ARCCOS(X).
004303,002798: 00,3640           52141                           DXCH     MPAC                                  
004304,002799: 00,3641           16014        LDANZIG            TCF      DANZIG                                
004305,002800: 

Page 115

004307,002802: 00,3642           50000        ACOSSHR            INDEX    A                                     #  THE SHIFT RIGHT IS LESS THAN 14 SINCE
004308,002803: 00,3643           37642                           CAF      BIT14                                 #  THE INPUT WAS NON-ZERO DP.
004309,002804: 00,3644           54121                           TS       MPTEMP                                
004310,002805: 00,3645           02054                           TC       VSHRRND                               #  DP SHIFT RIGHT AND ROUND.
004311,002806: 00,3646           13600                           TCF      ACOS3                                 #  PROCEED.
004312,002807: 
004313,002808: 00,3647           10000        ACOSOVF            CCS      A                                     #  IF MAJOR PART WAS ONLY 1 MORE THAN .5,
004314,002809: 00,3650           13652                           TCF      +2                                    #  CALL ANSWER 0.
004315,002810: 00,3651           13565                           TCF      ACOS=0                                
004316,002811: 00,3652           13565                           TCF      ACOS=0                                
004317,002812: 
004318,002813: 00,3653           05446        ACOSABRT           TC       ABORT                                 
004319,002814: 00,3654           01301                           OCT      1301                                  
004320,002815: 
004321,002816: 00,3655           37643        ACOSZERO           CAF      QUARTER                               #  ACOS(0) = PI/2.
004322,002817: 00,3656           13566                           TCF      ACOS=0     +1                         #  SET MPAC AND EXIT VIA ESCAPE.
004323,002818: 
004324,002819: 00,3657                        ENDINTS0           EQUALS                                         
004325,002820: 

Page 116

004327,002822:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE AVAILABLE FOR SETTING, MODIFYING, AND BRANCHING ON INDEX REGISTERS:
004328,002823:                                                                                                  #           1.  AXT                ADDRESS TO INDEX TRUE.
004329,002824:                                                                                                  #           1.  AXC                ADDRESS TO INDEX COMPLEMENTED.
004330,002825:                                                                                                  #           3.  LXA                LOAD INDEX FROM ERASABLE.
004331,002826:                                                                                                  #           4.  LXC                LOAD INDEX COMPLEMENTED FROM ERASABLE.
004332,002827:                                                                                                  #           5.  SXA                STORE INDEX IN ERASABLE.
004333,002828:                                                                                                  #           6.  XCHX               EXCHANGE INDEX REIGSTER WITH ERASABLE.
004334,002829: 
004335,002830:                                                                                                  #           7.  INCR               INCREMENT INDEX REGISTER.
004336,002831:                                                                                                  #           8.  XAD                ERASABLE ADD TO INDEX REGISTER.
004337,002832:                                                                                                  #           9.  XSU                ERASABLE SUBTRACT FROM INDEX REGISTER.
004338,002833: 
004339,002834:                                                                                                  #          10.  TIX                BRANCH ON INDEX REGISTER AND DECREMENT.
004340,002835: 
004341,002836: 
004342,002837: 
004343,002838: 01,2000                                           SETLOC   12000                                 #  SUFFIX CLASS 01 IS IN BANK 1.
004344,002839: 
004345,002840: 01,2000           02061        AXT                TC       TAGSUB                                #  SELECT APPROPRIATE INDEX REGISTER.
004346,002841: 01,2001           30103                           CA       POLISH                                
004347,002842: 01,2002           50114        XSTORE             INDEX    INDEXLOC                              #  CONTAINS C(FIXLOC) OR C(FIXLOC)+1.
004348,002843: 01,2003           54046                           TS       X1                                    
004349,002844: 01,2004           16014                           TCF      DANZIG                                
004350,002845: 
004351,002846: 01,2005           02061        AXC                TC       TAGSUB                                
004352,002847: 01,2006           40103                           CS       POLISH                                
004353,002848: 01,2007           02002                           TC       XSTORE                                
004354,002849: 
004355,002850: 01,2010           02061        LXA                TC       TAGSUB                                #  LOAD INDEX FROM ERASABLE.
004356,002851: 01,2011           50102                           INDEX    ADDRWD                                
004357,002852: 01,2012           30000                           CA       0                                     
004358,002853: 01,2013           12002                           TCF      XSTORE                                
004359,002854: 
004360,002855: 01,2014           02061        LXC                TC       TAGSUB                                #  LOAD INDEX FROM ERASABLE COMPLEMENTED.
004361,002856: 01,2015           50102                           INDEX    ADDRWD                                
004362,002857: 01,2016           40000                           CS       0                                     
004363,002858: 01,2017           12002                           TCF      XSTORE                                
004364,002859: 
004365,002860: 01,2020           02061        SXA                TC       TAGSUB                                #  STORE INDEX IN ERASABLE.
004366,002861: 01,2021           50114                           INDEX    INDEXLOC                              
004367,002862: 01,2022           30046                           CA       X1                                    
004368,002863: 01,2023           16627                           TCF      STORE1                                # (STORE SINGLE PRECISION BEFORE EXIT).
004369,002864: 
004370,002865: 01,2024           02061        XCHX               TC       TAGSUB                                #  EXCHANGE INDEX REGISTER WITH ERASABLE.
004371,002866: 01,2025           50102                           INDEX    ADDRWD                                
004372,002867: 01,2026           30000                           CA       0                                     
004373,002868: 01,2027           50114                           INDEX    INDEXLOC                              
004374,002869: 01,2030           56046                           XCH      X1                                    
004375,002870: 01,2031           16627                           TCF      STORE1                                
004376,002871: 

Page 117

004378,002873: 01,2032           02061        XAD                TC       TAGSUB                                #  ERASABLE ADD TO INDEX.
004379,002874: 01,2033           50102                           INDEX    ADDRWD                                
004380,002875: 01,2034           30000                           CA       0                                     
004381,002876: 01,2035           50114        XAD2               INDEX    INDEXLOC                              
004382,002877: 01,2036           26046                           ADS      X1                                    #  IGNORING OVERFLOWS.
004383,002878: 01,2037           16014                           TCF      DANZIG                                
004384,002879: 
004385,002880: 01,2040           02061        INCR               TC       TAGSUB                                #  INCREMENT INDEX REGISTER.
004386,002881: 01,2041           30103                           CA       POLISH                                
004387,002882: 01,2042           12035                           TCF      XAD2                                  
004388,002883: 
004389,002884: 01,2043           02061        XSU                TC       TAGSUB                                #  ERASABLE SUBTRACT FROM INDEX.
004390,002885: 01,2044           50102                           INDEX    ADDRWD                                
004391,002886: 01,2045           40000                           CS       0                                     
004392,002887: 01,2046           12035                           TCF      XAD2                                  
004393,002888: 
004394,002889: 
004395,002890: 
004396,002891: 01,2047           02061        TIX                TC       TAGSUB                                #  BRANCH AND DECREMENT ON INDEX.
004397,002892: 01,2050           50114                           INDEX    INDEXLOC                              
004398,002893: 01,2051           40050                           CS       S1                                    
004399,002894: 01,2052           50114                           INDEX    INDEXLOC                              
004400,002895: 01,2053           60046                           AD       X1                                    
004401,002896: 01,2054           00006                           EXTEND                                         #  NO OPERATION IF DECREMENTED INDEX IS
004402,002897: 01,2055           66014                           BZMF     DANZIG                                #  NEGATIVE OR ZERO.
004403,002898: 
004404,002899: 01,2056           50114        DOTIXBR            INDEX    INDEXLOC                              
004405,002900: 01,2057           56046                           XCH      X1                                    #  IGNORING OVERFLOWS.
004406,002901: 
004407,002902: 01,2060           16651                           TCF      GOTO                                  #  DO THE BRANCH USING THE CADR IN POLISH.
004408,002903: 
004409,002904: 
004410,002905: 
004411,002906:                                                                                                  #           SUBROUTINE WHICH SETS THE ADDRESS OF THE SPECIFIED INDEX IN INDEXLOC. (ACTUALLY, THE ADDRESS -38D.)
004412,002907: 
004413,002908: 01,2061           30104        TAGSUB             CA       FIXLOC                                
004414,002909: 01,2062           54114                           TS       INDEXLOC                              
004415,002910: 
004416,002911: 01,2063           10020                           CCS      CYR                                   #  BIT 15 SPECIFIES INDEX.
004417,002912: 01,2064           24114                           INCR     INDEXLOC                              #  0 MEANS USE X2.
004418,002913: 01,2065           00002                           TC       Q                                     
004419,002914: 01,2066           00002                           TC       Q                                     #  1 FOR X1.
004420,002915: 

Page 118

004422,002917:                                                                                                  #           MISCELLANEOUS OPERATION CODES WITH DIRECT ADDRESSES. INCLUDED HERE ARE:
004423,002918: 
004424,002919:                                                                                                  #           1.  ITA                STORE QPRET (RETURN ADDRESS) IN ERASABLE.
004425,002920:                                                                                                  #           2.  CALL               CALL A SUBROUTINE, LEAVING RETURN IN QPRET.
004426,002921:                                                                                                  #           3.  RTB                RETURN TO BASIC LANGUAGE AT THE GIVEN ADDRESS.
004427,002922:                                                                                                  #           4.  BHIZ               BRANCH IF THE HIGH ORDER OF MPAC IS ZERO (SINGLE PRECISION).
004428,002923:                                                                                                  #           5.  BOV                BRANCH ON OVERFLOW.
004429,002924:                                                                                                  #           6.  GOTO               SIMPLE SEQUENCE CHANGE.
004430,002925: 
004431,002926: 01,2067           10020        RTB/BHIZ           CCS      CYR                                   
004432,002927: 01,2070           30103        RTB                CA       POLISH                                
004433,002928: 01,2071           14105                           TCF      BANKJUMP                              #  CALL BASIC ROUTINE.

Note: In the scan the above line is crossed out and marked as TC SWCALL -1 The corresponding line in Luminary099 reads as follows: TC SWCALL -1 # SO A "TC Q" FROM ROUTINE LEADS TO DANZIG

004437,002932: 
004438,002933: 01,2072           10140        BHIZ               CCS      MPAC                                  

Note: In the scan the above line has a box marked around the BHIZ label.

004440,002935: 01,2073           16014                           TCF      DANZIG                                

Note: in the scan the above line has an arrow mark appended to the instruction pointing to the operator DANZIG i.e. looks like TCF DANZIG <--

004443,002938: 01,2074           16651                           TCF      GOTO                                  
004444,002939: 01,2075           16014                           TCF      DANZIG                                
004445,002940: 01,2076           16651                           TCF      GOTO                                  
004446,002941: 
004447,002942: 01,2077           10105        BOV(B)             CCS      OVFIND                                #  BRANCH ON OVERFLOW TO BASIC OR INTERP.
004448,002943: 01,2100           12102                           TCF      +2                                    
004449,002944: 01,2101           16014                           TCF      DANZIG                                
004450,002945: 01,2102           54105                           TS       OVFIND                                
004451,002946: 01,2103           10020                           CCS      CYR                                   
004452,002947: 01,2104           12070                           TCF      RTB                                   #  IF BASIC.
004453,002948: 01,2105           00360        B5TOBB             OCT      360                                   
004454,002949: 01,2106           16651                           TCF      GOTO                                  
004455,002950: 

Page 119

004457,002952: 01,2107           10020        BZE/GOTO           CCS      CYR                                   #  SEE WHICH OP-CODE IS DESIRED.
004458,002953: 01,2110           06711                           TC       BRANCH                                #  DO BZE.
004459,002954: 01,2111           16014                           TCF      DANZIG                                
004460,002955: 01,2112           16651                           TCF      GOTO                                  #  DO GOTO.
004461,002956: 01,2113           16014                           TCF      DANZIG                                
004462,002957: 
004463,002958: 01,2114           10020        BPL/BMN            CCS      CYR                                   
004464,002959: 01,2115           12123                           TCF      BPL                                   
004465,002960: 01,2116           12000        5B10               DEC      5          B+10                       #  SHIFTS OP CODE IN SWITCH INSTRUCTION ADR
004466,002961: 
004467,002962: 01,2117           06711                           TC       BRANCH                                #  DO BMN.
004468,002963: 01,2120           16014                           TCF      DANZIG                                
004469,002964: 01,2121           16014                           TCF      DANZIG                                
004470,002965: 01,2122           16651                           TCF      GOTO                                  #  ONLY IF NNZ.
004471,002966: 
004472,002967: 01,2123           06711        BPL                TC       BRANCH                                
004473,002968: 01,2124           16651                           TCF      GOTO                                  #  IF POSITIVE OR ZERO.
004474,002969: 01,2125           16651                           TCF      GOTO                                  
004475,002970: 01,2126           16014                           TCF      DANZIG                                
004476,002971: 
004477,002972: 01,2127           10020        CALL/ITA           CCS      CYR                                   
004478,002973: 01,2130           16644                           TCF      CALL                                  
004479,002974: 
004480,002975: 01,2131           05464                           TC       CCSHOLE                               
004481,002976: 01,2132           50104                           INDEX    FIXLOC                                #  STORE QPRET.
004482,002977: 01,2133           30052                           CA       QPRET                                 
004483,002978: 01,2134           16627                           TCF      STORE1                                
004484,002979: 

Page 120

004486,002981:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR ALTERING AND TESTING INTERPRETIVE SWITCHES:
004487,002982: 
004488,002983:                                                                                                  #  00       BONSET                 SET A SWITCH AND DO A GOTO IF IT WAS ON.
004489,002984:                                                                                                  #  01       SETGO                  SET A SWITCH AND DO A GOTO.
004490,002985:                                                                                                  #  02       BOFSET                 SET A SWITCH AND DO A GOTO IF IT WAS OFF
004491,002986:                                                                                                  #  03       SET                    SET A SWITCH.
004492,002987: 
004493,002988:                                                                                                  #  04       BONINV                 INVERT A SWITCH AND BRANCH IF IT WAS ON.
004494,002989:                                                                                                  #  05       INVGO                  INVERT A SWITCH AND DO A GOTO.
004495,002990:                                                                                                  #  06       BOFINV                 INVERT A SWITCH AND BRANCH IF IT WAS OFF
004496,002991:                                                                                                  #  07       INVERT                 INVERT A SWITCH.
004497,002992: 
004498,002993:                                                                                                  #  10       BONCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS ON.
004499,002994:                                                                                                  #  11       CLRGO                  CLEAR A SWITCH AND DO A GOTO.
004500,002995:                                                                                                  #  12       BOFCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS OFF.
004501,002996:                                                                                                  #  13       CLEAR                  CLEAR A SWITCH.
004502,002997: 
004503,002998:                                                                                                  #  14       BON                    BRANCH IF A SWITCH WAS ON.
004504,002999:                                                                                                  #  16       BOFF                   BRANCH IF A SWITCH WAS OFF.
004505,003000: 
004506,003001: 
004507,003002: 
004508,003003:                                                                                                  #           THE ADDRESS SUPPLIED WITH THE SWITCH INSTRUCTION IS INTERPRETED AS FOLLOWS:
004509,003004: 
004510,003005:                                                                                                  #           BITS 1-4    SWITCH BIT NUMBER (1-15).
004511,003006:                                                                                                  #           BITS 5-8    SWITCH OPERATION NUMBER.
004512,003007:                                                                                                  #           BITS 9-     SWITCH WORD NUMBER (UP TO 64 SWITCH WORDS).
004513,003008: 
004514,003009:                                                                                                  #           THE ADDRESS ITSELF IS MADE UP BY THE YUL SYSTEM ASSEMBLER. THE BRANCH INSTRUCTIONS REQUIRE TWO
004515,003010:                                                                                                  #  ADDRESSES, THE SECOND TAKEN AS THE DIRECT (OR INDIRECT IF IN ERASABLE) ADDRESS OF THE BRANCH.
004516,003011: 
004517,003012: 
004518,003013: 
004519,003014: 01,2135           37673        SWITCHES           CAF      LOW4                                  #  LEAVE THE SWITCH BIT IN SWBIT  .
004520,003015: 01,2136           70103                           MASK     POLISH                                
004521,003016: 01,2137           50000                           INDEX    A                                     
004522,003017: 01,2140           37641                           CAF      BIT15                                 #  (NUMBER FROM LEFT TO RIGHT.)
004523,003018: 01,2141           54115                           TS       SWBIT                                 
004524,003019: 
004525,003020: 01,2142           37651                           CAF      BIT7                                  #  LEAVE THE SWITCH NUMBER IN SWWORD.
004526,003021: 01,2143           00006                           EXTEND                                         
004527,003022: 01,2144           70103                           MP       POLISH                                
004528,003023: 01,2145           54114                           TS       SWWORD                                
004529,003024: 
004530,003025: 01,2146           00004                           INHINT                                         #  DURING SWITCH CHANGE SO RUPT CAN USE TOO
004531,003026: 01,2147           50000                           INDEX    A                                     #  LEAVE THE SWITCH WORD ITSELF IN L.
004532,003027: 01,2150           30061                           CA       STATE                                 
004533,003028: 01,2151           54002                           TS       Q                                     #  Q WILL BE USED AS A CHANNEL.
004534,003029: 
004535,003030: 

Page 121

004537,003032: 01,2152           37645                           CAF      BIT11                                 
004538,003033: 01,2153           00006                           EXTEND                                         #  DISPATCH SWITCH BIT OPERATION AS IN BITS
004539,003034: 01,2154           70103                           MP       POLISH                                #  7-8 OF POLISH.
004540,003035: 01,2155           72215                           MASK     B3TOB4                                #  GETS 4X2-BIT CODE.
004541,003036: 01,2156           50000                           INDEX    A                                     
004542,003037: 01,2157           12160                           TCF      +1                                    
004543,003038: 
004544,003039: 01,2160           30115                 +1        CA       SWBIT                                 #  00 - SET SWITCH IN QUESTION.
004545,003040: 01,2161           00006                           EXTEND                                         
004546,003041: 01,2162           04002                           ROR      Q                                     
004547,003042: 01,2163           12172                           TCF      SWSTORE                               
004548,003043: 
004549,003044: 01,2164           30115                 +5        CA       SWBIT                                 #  01 - INVERT SWITCH.
004550,003045: 01,2165           00006                           EXTEND                                         
004551,003046: 01,2166           06002                           RXOR     Q                                     
004552,003047: 01,2167           12172                           TCF      SWSTORE                               
004553,003048: 
004554,003049: 01,2170           40115                 +9D       CS       SWBIT                                 #  10 - CLEAR.
004555,003050: 01,2171           70002                           MASK     Q                                     
004556,003051: 01,2172           50114        SWSTORE            INDEX    SWWORD                                
004557,003052: 01,2173           54061                           TS       STATE                                 #  NEW SWITCH WORD.
004558,003053: 

Page 122

004560,003055: 01,2174           00003                 +13D      RELINT                                         #  11 - NOOP.
004561,003056: 01,2175           37643                           CAF      BIT13                                 
004562,003057: 01,2176           00006                           EXTEND                                         #  DISPATCH SEQUCE CHANGING OR BRANCHING
004563,003058: 01,2177           70103                           MP       POLISH                                #  CODE.
004564,003059: 01,2200           72215                           MASK     B3TOB4                                
004565,003060: 01,2201           50000                           INDEX    A                                     
004566,003061: 01,2202           12203                           TCF      +1                                    #  ORIGINALLY STORED IN BITS 5-6.
004567,003062: 
004568,003063: 01,2203           40002                 +1        CS       Q                                     #  00 - BRANCH IF ON.
004569,003064: 01,2204           70115        TEST               MASK     SWBIT                                 
004570,003065: 01,2205           10000                           CCS      A                                     
004571,003066: 01,2206           12216                           TCF      SWSKIP                                
004572,003067: 
004573,003068: 01,2207           16703                 +5        TCF      SWBRANCH                              #  01 - GO TO.
004574,003069: 
004575,003070: 01,2210           12216                           TCF      SWSKIP                                #  HERE ONLY ON BIT 15.
004576,003071: 
004577,003072: 01,2211           05464                           TC       CCSHOLE                               
004578,003073: 01,2212           05464                           TC       CCSHOLE                               
004579,003074: 
004580,003075: 01,2213           30002                 +9D       CA       Q                                     #  10 - BRANCH IF OFF.
004581,003076: 01,2214           12204                           TCF      TEST                                  
004582,003077: 
004583,003078: 01,2215           00014        B3TOB4             OCT      14                                    
004584,003079: 01,2216           24150        SWSKIP             INCR     LOC                                   
004585,003080: 
004586,003081: 01,2217  01,2135               SW/                EQUALS   SWITCHES                              
004587,003082: 
004588,003083: 01,2217           16014                 +13D      TCF      DANZIG                                #  11 - NOOP.
004589,003084: 01,2220                        ENDINTS1           EQUALS                                         

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