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.

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

Page 34

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

Page 35

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

Page 36

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

Page 37

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

Page 38

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

Page 39

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

Page 40

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

Page 41

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

Page 42

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

Page 43

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

Page 44

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

Page 45

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

Page 46

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

Page 47

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

Page 48

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

Page 49

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

Page 50

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

Page 51

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

Page 52

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

Page 53

002171,000665:    6631           16014                           TCF      DANZIG                                
002172,000666: 

Page 54

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

Page 55

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

Page 56

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

Page 57

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

Page 58

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

Page 59

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

Page 60

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

Page 61

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

Page 62

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

Page 63

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

Page 64

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

Page 65

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

Page 66

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

Page 67

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

Page 68

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

Page 69

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

Page 70

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

Page 71

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

Page 72

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

Page 73

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

Page 74

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

Page 75

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

Page 76

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

Page 77

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

Page 78

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

Page 79

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

Page 80

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

Page 81

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

Page 82

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

Page 83

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

Page 84

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

Page 85

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

Page 86

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

Page 87

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

Page 88

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

Page 89

003397,001891: 00,2402           24122                           INCR     DVSIGN                                #  NOW +1 OR -0.
003398,001892: 

Page 90

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

Page 91

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

Page 92

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

Page 93

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

Page 94

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

Page 95

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

Page 96

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

Page 97

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

Page 98

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

Page 99

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

Page 100

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

Page 101

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

Page 102

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

Page 103

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

Page 104

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

Page 105

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

Page 106

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

Page 107

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

Page 108

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

Page 109

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

Page 110

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

Page 111

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

Page 112

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

Page 113

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

Page 114

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

Page 115

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

Page 116

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

Page 117

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

Page 118

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

004439,002933: 
004440,002934: 01,2072           10140        BHIZ               CCS      MPAC                                  

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

004442,002936: 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 <--

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

Page 119

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

Page 120

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

Page 121

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

Page 122

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

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