Source Code

   YAYUL: ASSEMBLE REVISION 6 OF PROGRAM BOREALIS       BY MSTEWART JUN. 28,2017
This is a modern AGC system self-test program, though based on the Apollo-era AURORA 12 program, and was not written by the original AGC developers, but rather by Mike Stewart. All of the original AURORA 12 DAP code added by the DAP Group has been removed, and extensive new system test code has been added in its place. This allows more in-depth testing of CPU behavior, both in AGC software simulations and hardware simulations.

001375,000002:                                                                                                  ## Copyright:   Public domain.
001376,000003:                                                                                                  ## Filename:    INTERPRETER.agc
001377,000004:                                                                                                  ## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
001378,000005:                                                                                                  ##              (specifically the LM instantiation of it). It is built on top of a heavily
001379,000006:                                                                                                  ##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
001380,000007:                                                                                                  ##              removed. Instead Borealis expands upon the tests provided by Aurora,
001381,000008:                                                                                                  ##              including corrected tests from Retread 44 and tests from Ron Burkey's
001382,000009:                                                                                                  ##              Validation.
001383,000010:                                                                                                  ## Assembler:   yaYUL
001384,000011:                                                                                                  ## Contact:     Mike Stewart <mastewar1@gmail.com>.
001385,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
001386,000013:                                                                                                  ## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
001387,000014:                                                                                                  ##              2017-02-05 RSB  Back-ported comment corrections 
001388,000015:                                                                                                  ##                              identified while proofing Artemis 072.
001389,000016:                                                                                                  ##              2017-03-13 RSB  Comment-text fixes noted in proofing Luminary 116.
001390,000017:                                                                                                  ##              2017-03-15 RSB  Comment-text fixes identified in 5-way
001391,000018:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
001392,000019:                                                                                                  ##              2017-06-38 MAS  Converted to the AGC Interpreter, using Sunburst 37
001393,000020:                                                                                                  ##                              as the reference version.
001394,000021: 
001395,000022:                                                                                                  #  SECTION 1  DISPATCHER
001396,000023: 
001397,000024:                                                                                                  #           ENTRY TO THE INTERPRETER. INTPRET SETS LOC TO THE FIRST  INSTRUCTION, BANKSET TO THE BBANK OF THE
001398,000025:                                                                                                  #  OBJECT INTERPRETIVE PROGRAM, AND INTBIT15 TO THE BIT15 CONTENTS OF FBANK. INTERPRETIVE PROGRAMS MAY BE IN
001399,000026:                                                                                                  #  VIRTUALLY ALL BANKS PRESENT UNDER ANY SUPER-BANK SETTING, WITH THE RESTRICTION THAT PROGRAMS IN HIGH BANKS
001400,000027:                                                                                                  #  (BIT15 OF FBANK = 1) DO NOT REFER TO LOWBANKS, AND VICE-VERSA. THE INTERPRETER DOES NOT SWITCH SUPERBANKS.
001401,000028:                                                                                                  #  E-BANK SWITCHING OCCURS WHENEVER GENERAL ERASABLE (100 - 3777) IS ADDRESSED.
001402,000029: 
001403,000030:    6000                                           SETLOC   6000                                  
001404,000031: 
001405,000032:    6000           00006        INTPRET            EXTEND                                         #  SET LOC TO THE WORD FOLLOWING THE TC.
001406,000033:    6001           22150                           QXCH     LOC                                   
001407,000034: 
001408,000035:    6002           30006                 +2        CA       BBANK                                 #  INTERPRETIVE BRANCHES FINISH HERE.
001409,000036:    6003           54151                           TS       BANKSET                               
001410,000037:    6004           77653                           MASK     BIT15                                 #  GET 15TH BIT FOR INDEXABLE ADDRESSES.
001411,000038:    6005           54101                           TS       INTBIT15                              
001412,000039: 
001413,000040: 
001414,000041:    6006           16021                           TCF      NEWOPS                                #  PICK UP OP CODE PAIR AND BEGIN.
001415,000042: 
001416,000043:    6007           22006        INTRSM             LXCH     BBANK                                 #  RESUME SUSPENDED INTERPRETIVE JOB
001417,000044:    6010           16002                           TCF      INTPRET    +2                         
001418,000045: 
001419,000046:                                                                                                  #           AT THE END OF MOST INSTRUCTIONS, CONTROL IS GIVEN TO DANZIG TO DISPATCH THE NEXT OPERATION.
001420,000047: 
001421,000048:    6011           54147        NEWMODE            TS       MODE                                  #  PROLOGUE FOR MODE-CHANGING INSTRUCTIONS.
001422,000049: 
001423,000050:    6012           30151        DANZIG             CA       BANKSET                               #  SET BBANK BEFORE TESTING NEWJOB SO THAT
001424,000051:    6013           54006                           TS       BBANK                                 #  IT MAY BE SAVED DIRECTLY BY CHANJOB.
001425,000052: 
001426,000053:    6014           10023        NOIBNKSW           CCS      EDOP                                  #  SEE IF AN ORDER CODE IS LEFT OVER FROM
001427,000054:    6015           16030                           TCF      OPJUMP                                #  THE LAST PAIR RETRIEVED. IF SO, EXECUTE.
001428,000055:                                                                                                  #  EDOP IS SET TO ZERO ON ITS RE-EDITING.
001429,000056: 
001430,000057:    6016           10067                           CCS      NEWJOB                                #  SEE IF A JOB OF HIGHER PRIORITY IS
001431,000058:    6017           14373                           TCF      CHANG2                                #  PRESENT, AND IF SO, CHANGE JOBS.
001432,000059: 
001433,000060:    6020           24150                           INCR     LOC                                   #  ADVANCE THE LOCATION COUNTER.
001434,000061:                                                                                                  #           ITRACE (1) REFERS TO "NEWOPS".
001435,000062:    6021           50150        NEWOPS             INDEX    LOC                                   #  ENTRY TO BEGIN BY PICKING OP CODE PAIR.
001436,000063:    6022           30000                           CA       0                                     #  MAY BE AN OPCODE PAIR OR A STORE CODE.
001437,000064:    6023           10000                           CCS      A                                     #  TEST SIGN AND GET DABS(A).
001438,000065:    6024           16335                           TCF      DOSTORE                               #  PROCESS STORE CODE.
001439,000066: 
001440,000067:    6025           00177        LOW7               OCT      177                                   
001441,000068: 
001442,000069:    6026           54023                           TS       EDOP                                  #  OP CODE PAIR. LEAVE THE OTHER IN EDOP
001443,000070: 
001444,000071:    6027           76025                           MASK     LOW7                                  #  WHERE  CCS EDOP  WILL HONOR IT NEXT.
001445,000072: 
001446,000073:    6030           54020        OPJUMP             TS       CYR                                   #  LOWWD ENTERS HERE IF A RIGHT-HAND OP
001447,000074:    6031           10020                           CCS      CYR                                   #  CODE IS TO BE PROCESSED. TEST PREFICES.
001448,000075:    6032           16200                           TCF      OPJUMP2                               #  TEST SECOND PREFIX BIT.
001449,000076: 
001450,000077:    6033           16726                           TCF      EXIT                                  #  +0 OP CODE IS EXIT.
001451,000078: 
001452,000079:                                                                                                  #           PROCESS ADDRESSES WHICH MAY BE DIRECT, INDEXED, OR REFERENCE THE PUSHDOWN LIST.
001453,000080: 
001454,000081:    6034           77671        ADDRESS            MASK     BIT1                                  #  SEE IF ADDRESS IS INDEXED. CYR CONTAINED
001455,000082:    6035           10000                           CCS      A                                     #  400XX, SO BIT 1 IS NOW AS IT WAS IN CYR.
001456,000083:    6036           16077                           TCF      INDEX                                 #  FORM INDEXED ADDRESS.
001457,000084: 
001458,000085:    6037           50150        DIRADRES           INDEX    LOC                                   #  LOOK AHEAD TO NEXT WORD TO SEE IF
001459,000086:    6040           40001        OCT40001           CS       1                                     #  ADDRESS IS GIVEN.
001460,000087:    6041           10000                           CCS      A                                     
001461,000088:    6042           16146                           TCF      PUSHUP                                #  IF NOT.
001462,000089: 
001463,000090:    6043           77773        NEG4               DEC      -4         B-14                       
001464,000091: 
001465,000092:    6044           24150                           INCR     LOC                                   #  IF SO, TO SHOW WE PICKED UP A WORD.
001466,000093:    6045           54102                           TS       ADDRWD                                
001467,000094: 
001468,000095:                                                                                                  #           FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE. IN EACH CASE, THE
001469,000096:                                                                                                  #  REQUIRED 12-BIT SUB-ADDRESS IS LEFT IN ADDRWD, WITH ANY REQUIRED E OR F BANK SWITCHING DONE. ADDRESSES LESS
001470,000097: 
001471,000098:                                                                                                  #  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.
001472,000099: 
001473,000100: 
001474,000101:    6046           66202                           AD       -ENDVAC                               #  SEE IF ADDRESS RELATIVE TO WORK AREA.
001475,000102:    6047           10000                           CCS      A                                     
001476,000103:    6050           66227                           AD       -ENDERAS                              #  IF NOT, SEE IF IN GENERAL ERASABLE.
001477,000104:    6051           16056                           TCF      IERASTST                              
001478,000105: 
001479,000106:    6052           30104        NETZERO            CA       FIXLOC                                #  IF SO, LEAVE THE MODIFIED ADDRESS IN
001480,000107:    6053           26102                           ADS      ADDRWD                                #  ADDRWD AND DISPATCH.
001481,000108:    6054           50020        ITR15              INDEX    CYR                                   #  THIS INDEX MAKES THE NEXT INSTRUCTION
001482,000109:    6055           76227                           7        INDJUMP    -1                         #  TCF INDJUMP + OP, EDITING CYR.
001483,000110: 
001484,000111:    6056           00006        IERASTST           EXTEND                                         
001485,000112:    6057           66067                           BZMF     GEADDR                                #  GO PROCESS GENERAL-ERASABLE ADDRESS.
001486,000113: 
001487,000114:    6060           77701                           MASK     LOW10                                 #  FIXED BANK ADDRESS. RESTORE AND ADD B15.
001488,000115:    6061           67701                           AD       LOW10                                 #  SWITCH BANKS AND LEAVE SUBADDRESS IN
001489,000116:    6062           56102                           XCH      ADDRWD                                #  ADDRWD FOR OPERAND RETRIEVAL. (THIS
001490,000117:    6063           60101                           AD       INTBIT15                              #  METHOD PRECLUDES USE OF THE LAST
001491,000118:    6064           54004                           TS       FBANK                                 #  LOCATION IN EACH FBANK.)
001492,000119: 
001493,000120:    6065           50020        ITR12              INDEX    CYR                                   
001494,000121:    6066           76227                           7        INDJUMP    -1                         
001495,000122: 
001496,000123:    6067           75227        GEADDR             MASK     LOW8                                  
001497,000124:    6070           65230                           AD       OCT1400                               
001498,000125:    6071           56102                           XCH      ADDRWD                                
001499,000126:    6072           54003                           TS       EBANK                                 
001500,000127:    6073           50020        ITR10              INDEX    CYR                                   
001501,000128:    6074           76227                           7        INDJUMP    -1                         
001502,000129: 
001503,000130:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES INTERPRETIVE INDEXED ADDRESSES. AN INTERPRETER INDEX REGISTER MAY
001504,000131:                                                                                                  #  CONTAIN THE ADDRESS OF ANY ERASABLE REGISTER (0-42 BEING RELATIVE TO THE VAC AREA) OR ANY INTERPRETIVE PROGRAM
001505,000132:                                                                                                  #  BANK, OR ANY INTEGER IN THAT RANGE.
001506,000133: 
001507,000134:    6075           37707        DODLOAD*           CAF      DLOAD*                                #  STODL* COMES HERE TO PROCESS LOAD ADR.
001508,000135:    6076           54020                           TS       CYR                                   #  (STOVL* ENTERS HERE).
001509,000136: 
001510,000137:    6077           30104        INDEX              CA       FIXLOC                                #  SET UP INDEX LOCATION.
001511,000138:    6100           54114                           TS       INDEXLOC                              
001512,000139:    6101           24150                           INCR     LOC                                   #  (ADDRESS ALWAYS GIVEN).
001513,000140:    6102           50150                           INDEX    LOC                                   
001514,000141:    6103           40000                           CS       0                                     
001515,000142:    6104           10000                           CCS      A                                     #  INDEX 2 IF ADDRESS STORED COMPLEMENTED.
001516,000143:    6105           24114                           INCR     INDEXLOC                              
001517,000144:    6106           16107                           NOOP                                           
001518,000145: 
001519,000146:    6107           54102                           TS       ADDRWD                                #  14 BIT ADDRESS TO ADDRWD.
001520,000147:    6110           77711                           MASK     HIGH4                                 #  IF ADDRESS GREATER THAN 2K, ADD INTBIT15
001521,000148: 
001522,000149:    6111           00006                           EXTEND                                         
001523,000150:    6112           16115                           BZF      INDEX2                                
001524,000151:    6113           30101                           CA       INTBIT15                              
001525,000152:    6114           26102                           ADS      ADDRWD                                
001526,000153: 
001527,000154:    6115           50114        INDEX2             INDEX    INDEXLOC                              
001528,000155:    6116           40046                           CS       X1                                    
001529,000156:    6117           26102                           ADS      ADDRWD                                #  DO AUGMENT, IGNORING AND CORRECTING OVF.
001530,000157: 
001531,000158:    6120           76225                           MASK     HIGH9                                 #  SEE IF ADDRESS IS IN WORK AREA.
001532,000159:    6121           00006                           EXTEND                                         
001533,000160:    6122           16135                           BZF      INDWORK                               
001534,000161: 
001535,000162:    6123           77711                           MASK     HIGH4                                 #  SEE IF IN FIXED BANK.
001536,000163:    6124           00006                           EXTEND                                         
001537,000164:    6125           16137                           BZF      INDERASE                              
001538,000165: 
001539,000166:    6126           30102                           CA       ADDRWD                                #  IN FIXED - SWITCH BANKS AND CREATE
001540,000167:    6127           54004                           TS       FBANK                                 #  SUB-ADDRESS.
001541,000168:    6130           77701                           MASK     LOW10                                 
001542,000169:    6131           67657                           AD       2K                                    
001543,000170:    6132           54102                           TS       ADDRWD                                
001544,000171:    6133           50020        ITR11              INDEX    CYR                                   
001545,000172: 
001546,000173:    6134           36227                           3        INDJUMP    -1                         
001547,000174: 
001548,000175:    6135           30104        INDWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO WORK AREA.
001549,000176:    6136           16143                           TCF      ITR13      -1                         
001550,000177: 
001551,000178:    6137           35230        INDERASE           CA       OCT1400                               
001552,000179:    6140           56102                           XCH      ADDRWD                                
001553,000180:    6141           54003                           TS       EBANK                                 
001554,000181:    6142           75227                           MASK     LOW8                                  
001555,000182:    6143           26102                 -1        ADS      ADDRWD                                
001556,000183:    6144           50020        ITR13              INDEX    CYR                                   
001557,000184: 
001558,000185:    6145           36227                           3        INDJUMP    -1                         
001559,000186: 
001560,000187:                                                                                                  #           PUSH-UP ROUTINES. WHEN NO OPERAND ADDRESS IS GIVEN, THE APPROPRIATE OPERAND IS TAKEN FROM THE PUSH-DOWN
001561,000188:                                                                                                  #  LIST. IN MOST CASES THE MODE OF THE RESULT (VECTOR OR SCALAR) OF THE LAST ARITHMETIC OPERATION PERFORMED
001562,000189:                                                                                                  #  IS THE SAME AS THE TYPE OF OPERAND DESIRED (ALL ADD/SUBTRACT ETC.). EXCEPTIONS TO THIS GENERAL RULE ARE LISTED
001563,000190:                                                                                                  #  BELOW (NOTE THAT IN EVERY CASE THE MODE REGISTER IS LEFT INTACT):
001564,000191: 
001565,000192:                                                                                                  #           1.  VXSC AND V/SC WANT THE OPPOSITE TYPE OF OPERAND, E.G., IF THE LAST OPERATION YIELDED A VECTOR
001566,000193:                                                                                                  #  RESULT, VXSC WANTS A SCALAR.
001567,000194: 
001568,000195:                                                                                                  #           2.  THE LOAD CODES SHOULD LOAD THE ACCUMULATOR INDEPENDENT OF THE RESULT OF THE LAST OPERATION. THIS
001569,000196:                                                                                                  #  INCLUDES VLOAD, DLOAD, TLOAD, PDDL, AND PDVL (NO PUSHUP WITH SLOAD).
001570,000197: 
001571,000198:                                                                                                  #           3.  SOME ARITHMETIC OPERATIONS REQUIRE A STANDARD TYPE OF OPERAND REGARDLESS OF THE PREVIOUS OPERATION.
001572,000199:                                                                                                  #  THIS INCLUDES SIGN WANTING DP AND TAD REQUIRING TP.
001573,000200: 
001574,000201:    6146           35231        PUSHUP             CAF      OCT23                                 #  IF THE LOW 5 BITS OF CYR ARE LESS THAN
001575,000202:    6147           70020                           MASK     CYR                                   #  20, THIS OP REQUIRES SPECIAL ATTENTION.
001576,000203:    6150           66153                           AD       -OCT10                                #  (NO -0).
001577,000204:    6151           10000                           CCS      A                                     
001578,000205:    6152           16164                           TCF      REGUP                                 #  FOR ALL CODES GREATER THAN OCT 7.
001579,000206: 
001580,000207:    6153           77767        -OCT10             OCT      -10                                   
001581,000208: 
001582,000209:    6154           66043                           AD       NEG4                                  #  WE NOW HAVE 7 - OP CODE(MOD4). SEE IF
001583,000210:    6155           10000                           CCS      A                                     #  THE OP CODE (MOD4) IS THREE (REVERSE).
001584,000211:    6156           50000                           INDEX    A                                     #  NO - THE MODE IS DEFINITE. PICK UP THE
001585,000212:    6157           46175                           CS       NO.WDS                                
001586,000213:    6160           16166                           TCF      REGUP      +2                         
001587,000214: 
001588,000215:    6161           50147                           INDEX    MODE                                  #  FOR VXSC AND V/SC WE WANT THE REQUIRED
001589,000216:    6162           46173                           CS       REVCNT                                #  PUSHLOC DECREMENT WITHOUT CHANGING THE
001590,000217:    6163           16166                           TCF      REGUP      +2                         #  MODE AT THIS TIME.
001591,000218: 
001592,000219:    6164           50147        REGUP              INDEX    MODE                                  #  MOST ALL OP CODES PUSHUP HERE.
001593,000220:    6165           46175                           CS       NO.WDS                                
001594,000221:    6166           26152                 +2        ADS      PUSHLOC                               
001595,000222:    6167           54102                           TS       ADDRWD                                
001596,000223:    6170           50020        ITR14              INDEX    CYR                                   
001597,000224:    6171           76227                           7        INDJUMP    -1                         #  (THE INDEX MAKES THIS A TCF.)
001598,000225: 
001599,000226:    6172           00002                           OCT      2                                     #  REVERSE PUSHUP DECREMENT. VECTOR TAKES 2
001600,000227:    6173           00006        REVCNT             OCT      6                                     #  WORDS, SCALAR TAKES 6.
001601,000228:    6174           00006                           OCT      6                                     
001602,000229:    6175           00002        NO.WDS             OCT      2                                     #  CONVENTIONAL DECREMENT IS 6 WORDS VECTOR
001603,000230:    6176           00003        OCTAL3             OCT      3                                     #  2 IN DP, AND 3 IN TP.
001604,000231:    6177           00006                           OCT      6                                     
001605,000232: 
001606,000233:                                                                                                  #            TEST THE SECOND PREFIX BIT TO SEE IF THIS IS A MISCELLANEOUS OR A UNARY/SHORT SHIFT OPERATION.
001607,000234: 
001608,000235:    6200           10020        OPJUMP2            CCS      CYR                                   #  TEST SECOND PREFIX BIT.
001609,000236:    6201           16214                           TCF      OPJUMP3                               #  TEST THIRD BIT TO SEE IF UNARY OR SHIFT.
001610,000237: 
001611,000238:    6202           77722        -ENDVAC            DEC      -45        B-14                       
001612,000239: 
001613,000240:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES ADDRESSES OF SUFFIX CLASS 10. THEY ARE BASICALLY WORK AREA ADDRESSES
001614,000241:                                                                                                  #  IN THE RANGE 0 - 52, ERASABLE ECADR CONSTANTS FROM 100 - 3777, AND FCADRS ABOVE THAT. ALL 15 BITS ARE AVAILABLE
001615,000242:                                                                                                  #  IN CONTRAST TO SUFFIX 1, IN WHICH ONLY THE LOW ORDER 14 ARE AVAILABLE.
001616,000243: 
001617,000244:    6203           24150        15BITADR           INCR     LOC                                   #  (ENTRY HERE FROM STCALL).
001618,000245:    6204           50150                           INDEX    LOC                                   #  PICK UP ADDRESS WORD.
001619,000246:    6205           30000                           CA       0                                     
001620,000247:    6206           54103                           TS       POLISH                                #  WE MAY NEED A SUBADDRESS LATER.
001621,000248: 
001622,000249:    6207           36224                           CAF      LOW7+2K                               #  THESE INSTRUCTIONS ARE IN BANK 1.
001623,000250:    6210           54004                           TS       FBANK                                 
001624,000251:    6211           70020                           MASK     CYR                                   
001625,000252:    6212           50000        ITR7               INDEX    A                                     
001626,000253:    6213           16270                           TCF      MISCJUMP                              
001627,000254: 
001628,000255:                                                                                                  #           COMPLETE THE DISPATCHING OF UNARY AND SHORT SHIFT OPERATIONS.
001629,000256: 
001630,000257:    6214           54004        OPJUMP3            TS       FBANK                                 #  CALL IN BANK 0 (BIT5 11-15 OF A ARE 0.)
001631,000258:                                                                                                  #           ITRACE (6) REFERS TO "OPJUMP3".
001632,000259:    6215           10020                           CCS      CYR                                   #  TEST THIRD PREFIX BIT.
001633,000260:    6216           50000                           INDEX    A                                     #  THE DECREMENTED UNARY CODE IS IN BITS
001634,000261:    6217           16310                           TCF      UNAJUMP                               #  1-4 OF A (ZERO, EXIT, HAS BEEN DETECTED)
001635,000262: 
001636,000263:    6220           10147                           CCS      MODE                                  #  ITS A SHORT SHIFT CODE. SEE IF PRESENT
001637,000264:    6221           12000                           TCF      SHORTT                                #  SCALAR OR VECTOR.
001638,000265:    6222           12000                           TCF      SHORTT                                
001639,000266:    6223           12102                           TCF      SHORTV                                #  CALLS THE APPROPRIATE ROUTINE.
001640,000267: 
001641,000268: 
001642,000269: 
001643,000270:    6224     5231               OCT23              =        VD1                                   
001644,000271:    6224           02177        LOW7+2K            OCT      2177                                  #  OP CODE MASK + BANK 1 FBANK SETTING.
001645,000272:    6225           77700        HIGH9              OCT      77700                                 
001646,000273: 
001647,000274:    6226           76000        BANKMASK           OCT      76000                                 #  FBANK MASK.
001648,000275:    6227     6226               FBANKMSK           EQUALS   BANKMASK                              
001649,000276:    6227     4513               B12T14             =        PRIO34                                #  USED IN PROCESSING STORE CODES.
001650,000277:    6227           74056        -ENDERAS           DEC      -2001      B-14                       #  = -(2047 - 45 - 1)
001651,000278: 
001652,000279:                                                                                                  #           THE FOLLOWING IS THE JUMP TABLE FOR OP CODES WHICH MAY HAVE INDEXABLE ADDRESSES OR MAY PUSH UP.
001653,000280: 
001654,000281:    6230           16470        INDJUMP            TCF      VLOAD                                 #  00 - LOAD MPAC WITH A VECTOR.
001655,000282:    6231           17047                           TCF      TAD                                   #  01 - TRIPLE PRECISION ADD TO MPAC.
001656,000283:    6232           17615                           TCF      SIGN                                  #  02 - COMPLEMENT MPAC (V OR SC) IF X NEG.
001657,000284:    6233           17366                           TCF      VXSC                                  #  03 - VECTOR TIMES SCALAR.
001658,000285:    6234           16666                           TCF      CGOTO                                 #  04 - COMPUTED GO TO.
001659,000286:    6235           16453                           TCF      TLOAD                                 #  05 - LOAD MPAC WITH TRIPLE PRECISION.
001660,000287:    6236           16444                           TCF      DLOAD                                 #  06 - LOAD MPAC WITH A DP SCALAR.
001661,000288:    6237           17564                           TCF      V/SC                                  #  07 - VECTOR DIVIDED BY SCALAR.
001662,000289: 
001663,000290:    6240           16464                           TCF      SLOAD                                 #  10 - LOAD MPAC IN SINGLE PRECISION.
001664,000291:    6241           16603                           TCF      SSP                                   #  11 - SET SINGLE PRECISION INTO X.
001665,000292:    6242           16506                           TCF      PDDL                                  #  12 - PUSH DOWN MPAC AND RE-LOAD IN DP.
001666,000293:    6243           17321                           TCF      MXV                                   #  13 - MATRIX POST-MULTIPLIED BY VECTOR.
001667,000294:    6244           16542                           TCF      PDVL                                  #  14 - PUSH DOWN AND VECTOR LOAD.
001668,000295:    6245           16611                           TCF      CCALL                                 #  15 - COMPUTED CALL.
001669,000296:    6246           17324                           TCF      VXM                                   #  16 - MATRIX PRE-MULTIPLIED BY VECTOR.
001670,000297:    6247           17556                           TCF      TSLC                                  #  17 - NORMALIZE MPAC (SCALAR ONLY).
001671,000298: 
001672,000299:    6250           17534                           TCF      DMPR                                  #  20 - DP MULTIPLY AND ROUND.
001673,000300:    6251           17537                           TCF      DDV                                   #  21 - DP DIVIDE BY.
001674,000301:    6252           17543                           TCF      BDDV                                  #  22 - DP DIVIDE INTO.
001675,000302:    6253           17561                           TCF      GSHIFT                                #  23 - GENERAL SHIFT INSTRUCTION.
001676,000303:    6254           16732                           TCF      VAD                                   #  24 - VECTOR ADD.
001677,000304:    6255           16760                           TCF      VSU                                   #  25 - VECTOR SUBTRACT.
001678,000305:    6256           17010                           TCF      BVSU                                  #  26 - VECTOR SUBTRACT FROM.
001679,000306:    6257           17316                           TCF      DOT                                   #  27 - VECTOR DOT PRODUCT.
001680,000307: 
001681,000308:    6260           17446                           TCF      VXV                                   #  30 - VECTOR CROSS PRODUCT.
001682,000309:    6261           17412                           TCF      VPROJ                                 #  31 - VECTOR PROJECTION.
001683,000310:    6262           16776                           TCF      DSU                                   #  32 - DP SUBTRACT.
001684,000311:    6263           17034                           TCF      BDSU                                  #  33 - DP SUBTRACT FROM.
001685,000312:    6264           16750                           TCF      DAD                                   #  34 - DP ADD.
001686,000313:    6265           16265                           TCF      +0                                    #  35 - AVAILABLE
001687,000314:    6266           17532                           TCF      DMP1                                  #  36 - DP MULTIPLY.
001688,000315:    6267           17553                           TCF      SETPD                                 #  37 - SET PUSH DOWN POINTER (DIRECT ONLY)
001689,000316: 
001690,000317:                                                                                                  #  CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED.
001691,000318: 
001692,000319:                                                                                                  #           THE FOLLOWING JUMP TABLE APPLIES TO INDEX, BRANCH, AND MISCELLANEOUS INSTRUCTIONS.
001693,000320: 
001694,000321:    6270           12000        MISCJUMP           TCF      AXT                                   #  00 - ADDRESS TO INDEX TRUE.
001695,000322:    6271           12005                           TCF      AXC                                   #  01 - ADDRESS TO INDEX COMPLEMENTED.
001696,000323:    6272           12010                           TCF      LXA                                   #  02 - LOAD INDEX FROM ERASABLE.
001697,000324:    6273           12014                           TCF      LXC                                   #  03 - LOAD INDEX FROM COMPLEMENT OF ERAS.
001698,000325:    6274           12020                           TCF      SXA                                   #  04 - STORE INDEX IN ERASABLE.
001699,000326:    6275           12026                           TCF      XCHX                                  #  05 - EXCHANGE INDEX WITH ERASABLE.
001700,000327:    6276           12042                           TCF      INCR                                  #  06 - INCREMENT INDEX REGISTER.
001701,000328:    6277           12051                           TCF      TIX                                   #  07 - TRANSFER ON INDEX.
001702,000329: 
001703,000330:    6300           12034                           TCF      XAD                                   #  10 - INDEX REGISTER ADD FROM ERASABLE.
001704,000331:    6301           12045                           TCF      XSU                                   #  11 - INDEX SUBTRACT FROM ERASABLE.
001705,000332:    6302           12123                           TCF      BZE/GOTO                              #  12 - BRANCH ZERO AND GOTO.
001706,000333:    6303           12130                           TCF      BPL/BMN                               #  13 - BRANCH PLUS AND BRANCH MINUS.
001707,000334:    6304           12103                           TCF      RTB/BHIZ                              #  14 - RETURN TO BASIC AND BRANCH HI ZERO.
001708,000335:    6305           12143                           TCF      CALL/ITA                              #  15 - CALL AND STORE QPRET.
001709,000336:    6306           12152                           TCF      SW/                                   #  16 - SWITCH INSTRUCTIONS AND AVAILABLE.
001710,000337:    6307           12113                           TCF      BOV(B)                                #  17 - BRANCH ON OVERFLOW TO BASIC OR INT.
001711,000338: 
001712,000339:                                                                                                  #           THE FOLLOWING JUMP TABLE APPIES TO UNARY INSTRUCTIONS.
001713,000340: 
001714,000341:                                                                                                  #  00 - EXIT - DETECTED EARLIER.
001715,000342:    6310           13136        UNAJUMP            TCF      SQRT                                  #  01 - SQUARE ROOT.
001716,000343:    6311           13460                           TCF      SINE                                  #  02 - SIN.
001717,000344:    6312           13447                           TCF      COSINE                                #  03 - COS.
001718,000345:    6313           13540                           TCF      ARCSIN                                #  04 - ARC SIN.
001719,000346:    6314           13542                           TCF      ARCCOS                                #  05 - ARC COS.
001720,000347:    6315           13123                           TCF      DSQ                                   #  06 - DP SQUARE.
001721,000348:    6316           12077                           TCF      ROUND                                 #  07 - ROUND TO DP.
001722,000349: 
001723,000350:    6317           17630                           TCF      COMP                                  #  10 - COMPLEMENT VECTOR OR SCALAR.
001724,000351:    6320           13161                           TCF      VDEF                                  #  11 - VECTOR DEFINE.
001725,000352:    6321           12751                           TCF      UNIT                                  #  12 - UNIT VECTOR.
001726,000353:    6322           13125                           TCF      ABVALABS                              #  13 - LENGTH OF VECTOR OR MAG OF SCALAR.
001727,000354:    6323           13175                           TCF      VSQ                                   #  14 - SQUARE OF LENGTH OF VECTOR.
001728,000355:    6324           16327                           TCF      STADR                                 #  15 - PUSH UP ON STORE CODE.
001729,000356:    6325           13225                           TCF      RVQ                                   #  16 - RETURN VIA QPRET.
001730,000357:    6326           13200                           TCF      PUSH                                  #  17 - PUSH MPAC DOWN.
001731,000358: 
001732,000359:                                                                                                  #  SECTION 2  LOAD AND STORE PACKAGE.
001733,000360: 
001734,000361:                                                                                                  #           A SET OF EIGHT STORE CODES IS PROVIDED AS THE PRIMARY METHOD OF STORING THE MULTI-PURPOSE
001735,000362:                                                                                                  #  ACCUMULATOR (MPAC). IF IN THE DANZIG SECTION LOC REFERS TO AN ALGEBRAICALLY POSITIVE WORD, IT IS TAKEN AS A 
001736,000363:                                                                                                  #  STORE CODE WITH A CORRESPONDING ERASABLE ADDRESS. MOST OF THESE CODES ARE TWO ADDRESS, SPECIFYING THAT THE WORD
001737,000364:                                                                                                  #  FOLLOWING THE STORE CODE IS TO BE USED AS AN ADDRESS FROM WHICH TO RE-LOAD MPAC. FOUR OPTIONS ARE AVAILABLE:
001738,000365: 
001739,000366:                                                                                                  #           1. STORE               STORE MPAC. THE E ADDRESS MAY BE INDEXED.
001740,000367: 
001741,000368:                                                                                                  #           2. STODL               STORE MPAC AND RE-LOAD IT IN DP WITH THE NEXT ADDRESS (THE LOAD MAY BE INDEXED).
001742,000369:                                                                                                  #           3. STOVL               STORE MPAC AND RE-LOAD A VECTOR (AS ABOVE).
001743,000370:                                                                                                  #           4. STCALL              STORE AND DO A CALL (BOTH ADDRESSES MUST BE DIRECT HERE).
001744,000371: 
001745,000372:                                                                                                  #           STODL AND STOVL WILL TAKE FROM THE PUSH-DOWN LIST IF NO LOAD ADDRESS IS GIVEN.
001746,000373: 
001747,000374: 
001748,000375: 
001749,000376:    6327           30151        STADR              CA       BANKSET                               #  THE STADR CODE (PUSHUP UP ON STORE
001750,000377:    6330           54004                           TS       FBANK                                 #  ADDRESS) ENTERS HERE.
001751,000378:    6331           24150                           INCR     LOC                                   
001752,000379:    6332           50150        ITR1               INDEX    LOC                                   #  THE STORECODE WAS STORED COMPLEMENTED TO
001753,000380:    6333           40000                           CS       0                                     #  MAKE IT LOOK LIKE AN OPCODE PAIR.
001754,000381:    6334           67677                           AD       NEGONE                                #  (YUL CANT REMOVE 1 BECAUSE OF EARLY CCS)
001755,000382: 
001756,000383:    6335           54102        DOSTORE            TS       ADDRWD                                
001757,000384:    6336           75226                           MASK     LOW11                                 #  ENTRY FROM DISPATCHER. SAVE THE ERASABLE
001758,000385:    6337           56102                           XCH      ADDRWD                                #  ADDRESS AND JUMP ON THE STORE CODE NO.
001759,000386:    6340           74513                           MASK     B12T14                                
001760,000387:    6341           00006                           EXTEND                                         
001761,000388:    6342           77665                           MP       BIT5                                  #  EACH TRANSFER VECTOR ENTRY IS TWO WORDS.
001762,000389: 
001763,000390:    6343           54023                           TS       EDOP                                  #  MAYBE 2ND OP WAS LEFT OVER FROM BRANCH
001764,000391:    6344           50000        ITR0               INDEX    A                                     
001765,000392:    6345           16346                           TCF      STORJUMP                              
001766,000393: 
001767,000394:                                                                                                  #           STORE CODE JUMP TABLE. CALLS THE APPROPRIATE STORING ROUTINE AND EXITS TO DANZIG OR TO ADDRESS WITH
001768,000395:                                                                                                  #  A SUPPLIED OPERATION CODE.
001769,000396: 
001770,000397:    6346           06376        STORJUMP           TC       STORE                                 #  STORE.
001771,000398:    6347           16020                           TCF      NEWOPS     -1                         #  PICK UP NEW OP CODE(S).
001772,000399:    6350           06370                           TC       STORE,1                               
001773,000400:    6351           16020                           TCF      NEWOPS     -1                         
001774,000401:    6352           06373                           TC       STORE,2                               
001775,000402:    6353           16020                           TCF      NEWOPS     -1                         
001776,000403: 
001777,000404:    6354           06376                           TC       STORE                                 #  STODL.
001778,000405:    6355           16434                           TCF      DODLOAD                               
001779,000406: 
001780,000407:    6356           06376                           TC       STORE                                 #  STODL WITH INDEXED LOAD ADDRESS.
001781,000408:    6357           16075                           TCF      DODLOAD*                              
001782,000409: 
001783,000410:    6360           06376                           TC       STORE                                 #  STOVL.
001784,000411:    6361           16437                           TCF      DOVLOAD                               
001785,000412: 
001786,000413:    6362           06376                           TC       STORE                                 #  STOVL WITH INDEXED LOAD ADDRESS.
001787,000414:    6363           16442                           TCF      DOVLOAD*                              
001788,000415:    6364           06376                           TC       STORE                                 #  STOTC.
001789,000416:    6365           37705                           CAF      CALLCODE                              
001790,000417:    6366           54020                           TS       CYR                                   
001791,000418:    6367           16203                           TCF      15BITADR                              #  GET A 15 BIT ADDRESS.
001792,000419: 
001793,000420:                                                                                                  #           STORE CODE ADDRESS PROCESSOR.
001794,000421: 
001795,000422:    6370           50104        STORE,1            INDEX    FIXLOC                                
001796,000423:    6371           40046                           CS       X1                                    
001797,000424:    6372           16375                           TCF      PRESTORE                              
001798,000425: 
001799,000426:    6373           50104        STORE,2            INDEX    FIXLOC                                
001800,000427:    6374           40047                           CS       X2                                    
001801,000428:    6375           26102        PRESTORE           ADS      ADDRWD                                #  RESULTANT ADDRESS IS IN ERASABLE.
001802,000429: 
001803,000430:    6376           40102        STORE              CS       ADDRWD                                
001804,000431:    6377           67712                           AD       DEC45                                 
001805,000432:    6400           10000                           CCS      A                                     #  DOES THE ADDRESS POINT TO THE WORK AREA?
001806,000433:    6401           30104                           CA       FIXLOC                                #  YES.
001807,000434:    6402           16407                           TCF      AHEAD5                                
001808,000435:    6403           35230                           CA       OCT1400                               #  NO.  SET EBANK & MAKE UP SUBADDRESS.
001809,000436:    6404           56102                           XCH      ADDRWD                                
001810,000437:    6405           54003                           TS       EBANK                                 
001811,000438: 
001812,000439:    6406           75227                           MASK     LOW8                                  
001813,000440:    6407           26102        AHEAD5             ADS      ADDRWD                                
001814,000441: 
001815,000442:                                                                                                  #           STORING ROUTINES. STORE DP, TP, OR VECTOR AS INDICATED BY MODE.
001816,000443: 
001817,000444:    6410           00006        STARTSTO           EXTEND                                         #  MPAC,+1 MUST BE STORED IN ANY EVENT.
001818,000445:                                                                                                  #           ITRACE (5) REFERS TO "STARTSTO".
001819,000446:    6411           30141                           DCA      MPAC                                  
001820,000447:    6412           50102                           INDEX    ADDRWD                                
001821,000448:    6413           52001                           DXCH     0                                     
001822,000449: 
001823,000450:    6414           10147                           CCS      MODE                                  
001824,000451:    6415           16430                           TCF      TSTORE                                
001825,000452:    6416           00002                           TC       Q                                     
001826,000453: 
001827,000454:    6417           00006        VSTORE             EXTEND                                         
001828,000455:    6420           30144                           DCA      MPAC       +3                         
001829,000456:    6421           50102                           INDEX    ADDRWD                                
001830,000457:    6422           52003                           DXCH     2                                     
001831,000458: 
001832,000459:    6423           00006                           EXTEND                                         
001833,000460:    6424           30146                           DCA      MPAC       +5                         
001834,000461:    6425           50102                           INDEX    ADDRWD                                
001835,000462:    6426           52005                           DXCH     4                                     
001836,000463:    6427           00002                           TC       Q                                     
001837,000464: 
001838,000465:    6430           30142        TSTORE             CA       MPAC       +2                         
001839,000466:    6431           50102                           INDEX    ADDRWD                                
001840,000467:    6432           54002                           TS       2                                     
001841,000468:    6433           00002                           TC       Q                                     
001842,000469: 
001843,000470:                                                                                                  #           ROUTINES TO BEGIN PROCESSING OF THE SECOND ADDRESS ASSOCIATED WITH ALL STORE-TYPE CODES EXCEPT STORE
001844,000471:                                                                                                  #  ITSELF.
001845,000472: 
001846,000473:    6434           37706        DODLOAD            CAF      DLOADCOD                              
001847,000474:    6435           54020                           TS       CYR                                   
001848,000475:    6436           16037                           TCF      DIRADRES                              #  GO GET A DIRECT ADDRESS.
001849,000476: 
001850,000477:    6437           37653        DOVLOAD            CAF      VLOADCOD                              
001851,000478:    6440           54020                           TS       CYR                                   
001852,000479:    6441           16037                           TCF      DIRADRES                              
001853,000480: 
001854,000481:    6442           36040        DOVLOAD*           CAF      VLOAD*                                
001855,000482:    6443           16076                           TCF      DODLOAD*   +1                         #  PROLOGUE TO INDEX ROUTINE.
001856,000483: 
001857,000484:                                                                                                  #           THE FOLLOWING LOAD INSTRUCTIONS ARE PROVIDED FOR LOADING THE MULTI-PURPOSE ACCUMULATOR MPAC.
001858,000485: 
001859,000486:    6444           00006        DLOAD              EXTEND                                         
001860,000487:    6445           50102                           INDEX    ADDRWD                                
001861,000488:    6446           30001                           DCA      0                                     #  PICK UP DP ARGUMENT AND LEAVE IT IN
001862,000489:    6447           52141        SLOAD2             DXCH     MPAC                                  #  MPAC,+1, SETTING MPAC +2 TO ZERO. THE
001863,000490:    6450           37675                           CAF      ZERO                                  #  CONTENTS OF THE OTHER FOUR REGISTERS OF
001864,000491:    6451           54142                           TS       MPAC       +2                         #  MPAC ARE IRRELEVANT.
001865,000492:    6452           16011                           TCF      NEWMODE                               #  DECLARE DOUBLE PRECISION MODE.
001866,000493: 
001867,000494:    6453           50102        TLOAD              INDEX    ADDRWD                                
001868,000495:    6454           30002                           CA       2                                     #  LOAD A TRIPLE PRECISION ARGUMENT INTO
001869,000496:    6455           54142                           TS       MPAC       +2                         #  THE FIRST THREE MPAC REGISTERS, WITH THE
001870,000497:    6456           00006                           EXTEND                                         #  CONTENTS OF THE OTHER FOUR IRRELEVANT.
001871,000498:    6457           50102                           INDEX    ADDRWD                                
001872,000499:    6460           30001                           DCA      0                                     
001873,000500:    6461           52141                           DXCH     MPAC                                  
001874,000501:    6462           37671                           CAF      ONE                                   
001875,000502:    6463           16011                           TCF      NEWMODE                               #  DECLARE TRIPLE PRECISION MODE.
001876,000503: 
001877,000504:    6464           22007        SLOAD              ZL                                             #  LOAD A SINGLE PRECISION NUMBER INTO
001878,000505:    6465           50102                           INDEX    ADDRWD                                #  MPAC, SETTING MPAC+1,2 TO ZERO. THE
001879,000506:    6466           30000                           CA       0                                     #  CONTENTS OF THE REMAINING MPAC REGISTERS
001880,000507:    6467           16447                           TCF      SLOAD2                                #  ARE IRRELEVANT.
001881,000508: 
001882,000509:    6470           00006        VLOAD              EXTEND                                         #  LOAD A DOUBLE PRECISION VECTOR INTO
001883,000510:    6471           50102                           INDEX    ADDRWD                                #  MPAC,+1, MPAC+3,4, AND MPAC+5,6. THE
001884,000511:    6472           30001                           DCA      0                                     #  CONTENTS OF MPAC +2 ARE IRRELEVANT.
001885,000512:    6473           52141                           DXCH     MPAC                                  
001886,000513: 
001887,000514:    6474           00006        ENDVLOAD           EXTEND                                         #  PDVL COMES HERE TO FINISH UP FOR DP, TP.
001888,000515:    6475           50102                           INDEX    ADDRWD                                
001889,000516:    6476           30003                           DCA      2                                     
001890,000517:    6477           52144                           DXCH     MPAC       +3                         
001891,000518: 
001892,000519:    6500           00006                 +4        EXTEND                                         #  TPDVL FINISHES HERE.
001893,000520:    6501           50102                           INDEX    ADDRWD                                
001894,000521:    6502           30005                           DCA      4                                     
001895,000522:    6503           52146                           DXCH     MPAC       +5                         
001896,000523: 
001897,000524:    6504           47671                           CS       ONE                                   #  DECLARE VECTOR MODE.
001898,000525:    6505           16011                           TCF      NEWMODE                               
001899,000526: 
001900,000527:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE PROVIDED FOR STORING OPERANDS IN THE PUSHDOWN LIST:
001901,000528: 
001902,000529:                                                                                                  #           1.  PUSH               PUSHDOWN AND NO LOAD.
001903,000530:                                                                                                  #           2.  PDDL               PUSHDOWN AND DOUBLE PRECISION LOAD.
001904,000531:                                                                                                  #           3.  PDVL               PUSHDOWN AND VECTOR LOAD.
001905,000532: 
001906,000533:    6506           00006        PDDL               EXTEND                                         
001907,000534:    6507           50102                           INDEX    ADDRWD                                #  LOAD MPAC,+1, PUSHING THE FORMER
001908,000535:    6510           30001                           DCA      0                                     #  CONTENTS DOWN.
001909,000536:    6511           52141                           DXCH     MPAC                                  
001910,000537:    6512           50152                           INDEX    PUSHLOC                               
001911,000538:    6513           52001                           DXCH     0                                     
001912,000539: 
001913,000540:    6514           50147                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER APPRO-
001914,000541:    6515           36175                           CAF      NO.WDS                                #  PRIATELY.
001915,000542:    6516           26152                           ADS      PUSHLOC                               
001916,000543: 
001917,000544:    6517           10147                           CCS      MODE                                  
001918,000545:    6520           16535                           TCF      ENDTPUSH                              
001919,000546:    6521           16533                           TCF      ENDDPUSH                              
001920,000547: 
001921,000548:    6522           54147                           TS       MODE                                  #  NOW DP.
001922,000549:    6523           54142        ENDVPUSH           TS       MPAC       +2                         
001923,000550:    6524           52144                           DXCH     MPAC       +3                         #  PUSH DOWN THE REST OF THE VECTOR HERE.
001924,000551:    6525           50152                           INDEX    PUSHLOC                               
001925,000552:    6526           51775                           DXCH     0          -4                         
001926,000553: 
001927,000554:    6527           52146                           DXCH     MPAC       +5                         
001928,000555:    6530           50152                           INDEX    PUSHLOC                               
001929,000556:    6531           51777                           DXCH     0          -2                         
001930,000557: 
001931,000558:    6532           16012                           TCF      DANZIG                                
001932,000559: 
001933,000560:    6533           54142        ENDDPUSH           TS       MPAC       +2                         #  SET MPAC +2 TO ZERO AND EXIT ON DP.
001934,000561:    6534           16012                           TCF      DANZIG                                
001935,000562: 
001936,000563:    6535           54147        ENDTPUSH           TS       MODE                                  
001937,000564:    6536           56142                           XCH      MPAC       +2                         #  ON TRIPLE, SET MPAC +2 TO ZERO, PUSHING
001938,000565:    6537           50152                 +2        INDEX    PUSHLOC                               #  DOWN THE OLD CONTENTS
001939,000566:    6540           53777                           TS       0          -1                         
001940,000567:    6541           16012                           TCF      DANZIG                                
001941,000568: 
001942,000569:                                                                                                  #           PDVL - PUSHDOWN AND VECTOR LOAD.
001943,000570: 
001944,000571:    6542           00006        PDVL               EXTEND                                         #  RELOAD MPAC AND PUSH DOWN ITS CONTENTS.
001945,000572:    6543           50102                           INDEX    ADDRWD                                
001946,000573:    6544           30001                           DCA      0                                     
001947,000574:    6545           52141                           DXCH     MPAC                                  
001948,000575:    6546           50152                           INDEX    PUSHLOC                               
001949,000576:    6547           52001                           DXCH     0                                     
001950,000577: 
001951,000578:    6550           50147                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER.
001952,000579:    6551           36175                           CAF      NO.WDS                                
001953,000580:    6552           26152                           ADS      PUSHLOC                               
001954,000581: 
001955,000582:    6553           10147                           CCS      MODE                                  #  TEST PAST MODE.
001956,000583:    6554           16573                           TCF      TPDVL                                 
001957,000584:    6555           16474                           TCF      ENDVLOAD                              #  JUST LOAD LAST FOUR REGISTERS ON DP.
001958,000585: 
001959,000586:    6556           00006        VPDVL              EXTEND                                         #  PUSHDOWN AND RE-LOAD LAST TWO COMPONENTS
001960,000587:    6557           50102                           INDEX    ADDRWD                                
001961,000588:    6560           30003                           DCA      2                                     
001962,000589:    6561           52144                           DXCH     MPAC       +3                         
001963,000590:    6562           50152                           INDEX    PUSHLOC                               
001964,000591:    6563           51775                           DXCH     0          -4                         
001965,000592: 
001966,000593:    6564           00006                           EXTEND                                         
001967,000594:    6565           50102                           INDEX    ADDRWD                                
001968,000595:    6566           30005                           DCA      4                                     
001969,000596:    6567           52146                           DXCH     MPAC       +5                         
001970,000597:    6570           50152                           INDEX    PUSHLOC                               
001971,000598:    6571           51777                           DXCH     0          -2                         
001972,000599: 
001973,000600:    6572           16012                           TCF      DANZIG                                
001974,000601: 
001975,000602:    6573           00006        TPDVL              EXTEND                                         #  ON TP, WE MUST LOAD THE Y COMPONENT
001976,000603:    6574           50102                           INDEX    ADDRWD                                #  BEFORE STORING MPAC +2 INCASE THIS IS A
001977,000604: 
001978,000605:    6575           30003                           DCA      2                                     #  PUSHUP.
001979,000606:    6576           52144                           DXCH     MPAC       +3                         
001980,000607: 
001981,000608:    6577           30142                           CA       MPAC       +2                         
001982,000609:    6600           50152                           INDEX    PUSHLOC                               #  IN DP.
001983,000610:    6601           53777                           TS       0          -1                         
001984,000611:    6602           16500                           TCF      ENDVLOAD   +4                         
001985,000612: 
001986,000613:                                                                                                  #           SSP (STORE SINGLE PRECISION) IS EXECUTED HERE.
001987,000614: 
001988,000615:    6603           24150        SSP                INCR     LOC                                   #  PICK UP THE WORD FOLLOWING THE GIVEN
001989,000616:    6604           50150                           INDEX    LOC                                   #  ADDRESS AND STORE IT AT X.
001990,000617:    6605           30000                           CA       0                                     
001991,000618:    6606           50102        STORE1             INDEX    ADDRWD                                #  SOME INDEX AND MISCELLANEOUS OPS END
001992,000619:    6607           54000                           TS       0                                     #  HERE.
001993,000620: 
001994,000621:    6610           16012                           TCF      DANZIG                                
001995,000622: 
001996,000623:                                                                                                  #  SEQUENCE CHANGING AND SUBROUTINE CALLING OPTIONS.
001997,000624: 
001998,000625:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR SEQUENCING CHANGING, BRANCHING, AND CALLING SUBROUTINES:
001999,000626: 
002000,000627:                                                                                                  #           1.  GOTO               GO TO.
002001,000628:                                                                                                  #           2.  CALL               CALL SUBROUTINE SETTING QPRET.
002002,000629:                                                                                                  #           3.  CGOTO              COMPUTED GO TO.
002003,000630:                                                                                                  #           4.  CCALL              COMPUTED CALL.
002004,000631:                                                                                                  #           7.  BPL                BRANCH IF MPAC POSITIVE OR ZERO.
002005,000632:                                                                                                  #           8.  BZE                BRANCH IF MPAC ZERO.
002006,000633:                                                                                                  #           9.  BMN                BRANCH IF MPAC NEGATIVE NON-ZERO.
002007,000634: 
002008,000635:    6611           24150        CCALL              INCR     LOC                                   #  MAINTAIN LOC FOR QPRET COMPUTATION.
002009,000636:    6612           50150                           INDEX    LOC                                   
002010,000637:    6613           30000                           CAF      0                                     #  GET BASE ADDRESS OF CADR LIST.
002011,000638:    6614           50102                           INDEX    ADDRWD                                
002012,000639:    6615           60000                           AD       0                                     #  ADD INCREMENT.
002013,000640:    6616           54004                           TS       FBANK                                 #  SELECT DESIRED CADR.
002014,000641:    6617           77701                           MASK     LOW10                                 
002015,000642:    6620           50000                           INDEX    A                                     
002016,000643:    6621           32000                           CAF      10000                                 
002017,000644:    6622           54103                           TS       POLISH                                
002018,000645: 
002019,000646:    6623           30151        CALL               CA       BANKSET                               #  FOR ANY OF THE CALL OPTIONS, MAKE UP THE
002020,000647: 
002021,000648:    6624           76226                           MASK     BANKMASK                              #  ADDRESS OF THE NEXT OP-CODE PAIR/STORE
002022,000649:    6625           66226                           AD       BANKMASK                              #  CODE AND LEAVE IT IN QPRET.  NOTE THAT
002023,000650:    6626           60150                           AD       LOC                                   #  BANKMASK = -(2000 - 1).
002024,000651:    6627           50104                           INDEX    FIXLOC                                
002025,000652:    6630           54052                           TS       QPRET                                 
002026,000653: 
002027,000654:    6631           30103        GOTO               CA       POLISH                                #  BASIC BRANCHING SEQUENCE.
002028,000655:    6632           77711                 +1        MASK     HIGH4                                 
002029,000656:    6633           00006                           EXTEND                                         
002030,000657:    6634           16645                           BZF      GOTOERS                               #  SEE IF ADDRESS POINTS TO FIXED OR ERAS.
002031,000658:    6635           30151                 +4        CA       BANKSET                               #  SET EBANK PART OF BBANK. NEXT, SET UP
002032,000659:    6636           54006                           TS       BBANK                                 #  FBANK. THE COMBINATION IS PICKED UP &
002033,000660: 
002034,000661:    6637           30103                           CA       POLISH                                #  PUT INTO BANKSET AT INTPRET +2.
002035,000662:    6640           54004                           TS       FBANK                                 
002036,000663:    6641           77701                           MASK     LOW10                                 
002037,000664:    6642           67657                           AD       2K                                    
002038,000665:    6643           54150                           TS       LOC                                   
002039,000666:    6644           16002                           TCF      INTPRET    +2                         
002040,000667: 
002041,000668:    6645  E3,1400                                  EBANK=   1400                                  #  SO YUL DOESN'T CUSS THE "CA 1400" BELOW.
002042,000669: 
002043,000670:    6645           30103        GOTOERS            CA       POLISH                                #  THE GIVEN ADDRESS IS IN ERASABLE - SEE
002044,000671:    6646           66202                           AD       -ENDVAC                               #  IF RELATIVE TO THE WORK AREA.
002045,000672:    6647           10000                           CCS      A                                     
002046,000673:    6650           30103                           CA       POLISH                                #  GENERAL ERASABLE.
002047,000674: 
002048,000675:    6651           16660                           TCF      GOTOGE                                
002049,000676: 
002050,000677:    6652           30104                           CA       FIXLOC                                #  WORK AREA.
002051,000678:    6653           60103                           AD       POLISH                                
002052,000679:    6654           50000                           INDEX    A                                     #  USE THE GIVEN ADDRESS AS THE ADDRESS OF
002053,000680:    6655           30000                           CA       0                                     #  THE BRANCH ADDRESS.
002054,000681:    6656           54103                           TS       POLISH                                
002055,000682:    6657           16632                           TCF      GOTO       +1                         #  ALLOWS ARBITRARY INDIRECTNESS LEVELS.
002056,000683: 
002057,000684:    6660           54003        GOTOGE             TS       EBANK                                 
002058,000685:    6661           75227                           MASK     LOW8                                  
002059,000686:    6662           50000                           INDEX    A                                     #  USE THE GIVEN ADDRESS AS THE ADDRESS OF
002060,000687: 
002061,000688:    6663           31400                           CA       1400                                  #  THE BRANCH ADDRESS.
002062,000689:    6664           54103                           TS       POLISH                                
002063,000690:    6665           16632                           TCF      GOTO       +1                         
002064,000691: 
002065,000692:    6666           50150        CGOTO              INDEX    LOC                                   #  COMPUTED GO TO. PICK UP ADDRESS OF CADR
002066,000693:    6667           30001                           CA       1                                     #  LIST.
002067,000694:    6670           50102                           INDEX    ADDRWD                                #  ADD MODIFIER.
002068,000695:    6671           60000                           AD       0                                     
002069,000696:    6672           54004                           TS       FBANK                                 #  SELECT GOTO ADDRESS.
002070,000697:    6673           77701                           MASK     LOW10                                 
002071,000698:    6674           50000                           INDEX    A                                     
002072,000699:    6675           32000                           CA       10000                                 
002073,000700:    6676           54103                           TS       POLISH                                
002074,000701:    6677           16632                           TCF      GOTO       +1                         #  WITH ADDRESS IN A.
002075,000702: 
002076,000703:    6700           30151        SWBRANCH           CA       BANKSET                               #  SWITCH INSTRUCTIONS WHICH ELECT TO
002077,000704:    6701           54004                           TS       FBANK                                 #  BRANCH COME HERE TO DO SO.
002078,000705:    6702           50150                           INDEX    LOC                                   
002079,000706:    6703           30001                           CA       1                                     
002080,000707:    6704           54103                           TS       POLISH                                
002081,000708:    6705           16632                           TCF      GOTO       +1                         
002082,000709: 
002083,000710: 
002084,000711:                                                                                                  #           TRIPLE PRECISION BRANCHING ROUTINE. IF CALLING TC IS AT L, RETURN IS AS FOLLOWS:
002085,000712:                                                                                                  #           L+1  IF MPAC IS GREATER THAN ZERO.
002086,000713:                                                                                                  #           L+2  IF MPAC IS EQUAL TO +0 OR -0.
002087,000714:                                                                                                  #           L+3  IF MPAC IS LESS THAN ZERO.
002088,000715: 
002089,000716: 
002090,000717: 
002091,000718:    6706           10140        BRANCH             CCS      MPAC                                  
002092,000719:    6707           00002                           TC       Q                                     
002093,000720:    6710           16712                           TCF      +2                                    #  ON ZERO.
002094,000721:    6711           16724                           TCF      NEG                                   
002095,000722: 
002096,000723:    6712           10141                           CCS      MPAC       +1                         
002097,000724:    6713           00002                           TC       Q                                     
002098,000725:    6714           16716                           TCF      +2                                    
002099,000726:    6715           16724                           TCF      NEG                                   
002100,000727: 
002101,000728:    6716           10142                           CCS      MPAC       +2                         
002102,000729:    6717           00002                           TC       Q                                     
002103,000730:    6720           16722                           TCF      +2                                    
002104,000731:    6721           16724                           TCF      NEG                                   
002105,000732: 
002106,000733:    6722           50002        Q+1                INDEX    Q                                     
002107,000734: 
002108,000735:    6723           00001                           TC       1                                     
002109,000736: 
002110,000737:    6724           50002        NEG                INDEX    Q                                     #  IF FIRST NON-ZERO REGISTER WAS NEGATIVE.
002111,000738:    6725           00002                           TC       2                                     
002112,000739: 
002113,000740: 
002114,000741: 
002115,000742:    6726     6724               Q+2                =        NEG                                   
002116,000743: 
002117,000744:                                                                                                  #           ITRACE (3) REFERS TO "EXIT".
002118,000745: 
002119,000746:    6726           30151        EXIT               CA       BANKSET                               #  RESTORE USER'S BANK SETTING, AND LEAVE
002120,000747:    6727           54006                           TS       BBANK                                 #  INTERPRETIVE MODE.
002121,000748:    6730           50150                           INDEX    LOC                                   
002122,000749:    6731           10001                           TCF      1                                     
002123,000750: 
002124,000751:                                                                                                  #  SECTION 3 - ADD/SUBTRACT PACKAGE.
002125,000752: 
002126,000753:                                                                                                  #           THE FOLLOWING OPERATIONS ARE PROVIDED FOR ADDING TO AND SUBTRACTING FROM THE MULTI-PURPOSE ACCUMULATOR
002127,000754:                                                                                                  #  MPAC:
002128,000755: 
002129,000756:                                                                                                  #           1.  DAD                DOUBLE PRECISION ADD.
002130,000757:                                                                                                  #           2.  DSU                DOUBLE PRECISION SUBTRACT.
002131,000758:                                                                                                  #           3.  BDSU               DOUBLE PRECISION SUBTRACT FROM.
002132,000759: 
002133,000760: 
002134,000761:                                                                                                  #           4.  TAD                TRIPLE PRECISION ADD.
002135,000762: 
002136,000763:                                                                                                  #           5.  VAD                VECTOR ADD.
002137,000764:                                                                                                  #           6.  VSU                VECTOR SUBTRACT.
002138,000765:                                                                                                  #           7.  BVSU               VECTOR SUBTRACT FROM.
002139,000766: 
002140,000767:                                                                                                  #  THE INTERPRETIVE OVERFLOW INDICATOR OVFIND IS SET NON-ZERO IF OVERFLOW OCCURS IN ANY OF THE ABOVE.
002141,000768: 
002142,000769: 
002143,000770: 
002144,000771:    6732           00006        VAD                EXTEND                                         
002145,000772:    6733           50102                           INDEX    ADDRWD                                
002146,000773:    6734           30003                           DCA      2                                     
002147,000774:    6735           20144                           DAS      MPAC       +3                         
002148,000775:    6736           00006                           EXTEND                                         #  CHECK OVERFLOW.
002149,000776:    6737           16741                           BZF      +2                                    
002150,000777:    6740           07006                           TC       OVERFLOW                              
002151,000778: 
002152,000779:    6741           00006                           EXTEND                                         
002153,000780:    6742           50102                           INDEX    ADDRWD                                
002154,000781:    6743           30005                           DCA      4                                     
002155,000782:    6744           20146                           DAS      MPAC       +5                         
002156,000783:    6745           00006                           EXTEND                                         
002157,000784:    6746           16750                           BZF      +2                                    
002158,000785:    6747           07006                           TC       OVERFLOW                              
002159,000786: 
002160,000787:    6750           00006        DAD                EXTEND                                         
002161,000788:    6751           50102                           INDEX    ADDRWD                                
002162,000789:    6752           30001                           DCA      0                                     
002163,000790:    6753           20141        ENDVXV             DAS      MPAC                                  #  VXV FINISHES HERE.
002164,000791:    6754           00006                           EXTEND                                         
002165,000792:    6755           16012                           BZF      DANZIG                                
002166,000793:    6756           07006                           TC       OVERFLOW                              
002167,000794:    6757           16012                           TCF      DANZIG                                
002168,000795: 
002169,000796:    6760           00006        VSU                EXTEND                                         
002170,000797: 
002171,000798:    6761           50102                           INDEX    ADDRWD                                
002172,000799:    6762           40003                           DCS      2                                     
002173,000800:    6763           20144                           DAS      MPAC       +3                         
002174,000801:    6764           00006                           EXTEND                                         
002175,000802:    6765           16767                           BZF      +2                                    
002176,000803:    6766           07006                           TC       OVERFLOW                              
002177,000804: 
002178,000805:    6767           00006                           EXTEND                                         
002179,000806:    6770           50102                           INDEX    ADDRWD                                
002180,000807:    6771           40005                           DCS      4                                     
002181,000808:    6772           20146                           DAS      MPAC       +5                         
002182,000809:    6773           00006                           EXTEND                                         
002183,000810: 
002184,000811:    6774           16776                           BZF      +2                                    
002185,000812:    6775           07006                           TC       OVERFLOW                              
002186,000813: 
002187,000814:    6776           00006        DSU                EXTEND                                         
002188,000815:    6777           50102                           INDEX    ADDRWD                                
002189,000816:    7000           40001                           DCS      0                                     
002190,000817:    7001           20141                           DAS      MPAC                                  
002191,000818:    7002           00006                           EXTEND                                         
002192,000819:    7003           16012                           BZF      DANZIG                                
002193,000820:    7004           07006                           TC       OVERFLOW                              
002194,000821: 
002195,000822:    7005           16012                           TCF      DANZIG                                
002196,000823: 
002197,000824:    7006           37671        OVERFLOW           CAF      ONE                                   #  SUBROUTINE TO TURN OVFIND ON.
002198,000825:    7007           17131                           TCF      SETOVF2                               
002199,000826: 
002200,000827:    7010           00006        BVSU               EXTEND                                         
002201,000828:    7011           50102                           INDEX    ADDRWD                                
002202,000829:    7012           30003                           DCA      2                                     
002203,000830:    7013           52144                           DXCH     MPAC       +3                         
002204,000831:    7014           00006                           EXTEND                                         
002205,000832:    7015           40001                           DCOM                                           
002206,000833:    7016           20144                           DAS      MPAC       +3                         
002207,000834:    7017           00006                           EXTEND                                         
002208,000835:    7020           17022                           BZF      +2                                    
002209,000836:    7021           07006                           TC       OVERFLOW                              
002210,000837: 
002211,000838:    7022           00006                           EXTEND                                         
002212,000839:    7023           50102                           INDEX    ADDRWD                                
002213,000840:    7024           30005                           DCA      4                                     
002214,000841:    7025           52146                           DXCH     MPAC       +5                         
002215,000842:    7026           00006                           EXTEND                                         
002216,000843:    7027           40001                           DCOM                                           
002217,000844:    7030           20146                           DAS      MPAC       +5                         
002218,000845:    7031           00006                           EXTEND                                         
002219,000846:    7032           17034                           BZF      +2                                    
002220,000847:    7033           07006                           TC       OVERFLOW                              
002221,000848: 
002222,000849:    7034           00006        BDSU               EXTEND                                         
002223,000850:    7035           50102                           INDEX    ADDRWD                                
002224,000851:    7036           30001                           DCA      0                                     
002225,000852:    7037           52141                           DXCH     MPAC                                  
002226,000853:    7040           00006                           EXTEND                                         
002227,000854:    7041           40001                           DCOM                                           
002228,000855: 
002229,000856:    7042           20141                           DAS      MPAC                                  
002230,000857:    7043           00006                           EXTEND                                         
002231,000858:    7044           16012                           BZF      DANZIG                                
002232,000859:    7045           07006                           TC       OVERFLOW                              
002233,000860:    7046           16012                           TCF      DANZIG                                
002234,000861: 

Page 920

002236,000863:                                                                                                  #           TRIPLE PRECISION ADD ROUTINE.
002237,000864: 
002238,000865:    7047           00006        TAD                EXTEND                                         
002239,000866:    7050           50102                           INDEX    ADDRWD                                
002240,000867:    7051           30002                           DCA      1                                     #  ADD MINOR PARTS FIRST.
002241,000868:    7052           20142                           DAS      MPAC       +1                         
002242,000869:    7053           50102                           INDEX    ADDRWD                                
002243,000870:    7054           60000                           AD       0                                     
002244,000871:    7055           60140                           AD       MPAC                                  
002245,000872:    7056           54140                           TS       MPAC                                  
002246,000873:    7057           16012                           TCF      DANZIG                                
002247,000874: 
002248,000875:    7060           54105        SETOVF             TS       OVFIND                                #  SET OVFIND IF SUCH OCCURS.
002249,000876:    7061           16012                           TCF      DANZIG                                
002250,000877: 
002251,000878:                                                                                                  #  ARITHMETIC SUBROUTINES REQUIRED IN FIXED-FIXED.
002252,000879: 
002253,000880:                                                                                                  #           1.  DMPSUB     DOUBLE PRECISION MULTIPLY. MULTIPLY THE CONTENTS OF MPAC,+1 BY THE DP WORD WHOSE ADDRESS
002254,000881:                                                                                                  #                          IS IN ADDRWD AND LEAVE A TRIPLE PRECISION RESULT IN MPAC.
002255,000882:                                                                                                  #           2.  ROUNDSUB   ROUND THE TRIPLE PRECISON CONTENTS OF MPAC TO DOUBLE PRECISION.
002256,000883:                                                                                                  #           3.  DOTSUB     TAKE THE DOT PRODUCT OF THE VECTOR IN MPAC AND THE VECTOR WHOSE ADDRESS IS IN ADDRWD
002257,000884:                                                                                                  #                          AND LEAVE THE TRIPLE PRECISION RESULT IN MPAC.
002258,000885:                                                                                                  #           4.  POLY       USING THE CONTENTS OF MPAC AS A DP ARGUMENT, EVALUATE THE POLYNOMIAL WHOSE DEGREE AND
002259,000886:                                                                                                  #                          COEFFICIENTS IMMEDIATELY FOLLOW THE TC POLY INSTRUCTION (SEE ROUTINE FOR DETAILS.)
002260,000887: 
002261,000888: 
002262,000889: 
002263,000890:    7062           50002        DMP                INDEX    Q                                     #  BASIC SUBROUTINE FOR USE BY PINBALL, ETC
002264,000891:    7063           30000                           CAF      0                                     #  ADRES OF ARGUMENT FOLLOWS  TC DMP  .
002265,000892:    7064           24002                           INCR     Q                                     
002266,000893:    7065           54102                 -1        TS       ADDRWD                                #  (PROLOGUE FOR SETTING ADDRWD.)
002267,000894: 
002268,000895:    7066           50102        DMPSUB             INDEX    ADDRWD                                #  GET MINOR PART OF OPERAND AT C(ADDRWD).
002269,000896:    7067           30001                           CA       1                                     
002270,000897:    7070           54142                           TS       MPAC       +2                         #  THIS WORKS FOR SQUARING MPAC AS WELL.
002271,000898:    7071           37675                           CAF      ZERO                                  #  SET MPAC +1 TO ZERO SO WE CAN ACCUMULATE
002272,000899:    7072           56141                           XCH      MPAC       +1                         #  THE PARTIAL PRODUCTS WITH DAS
002273,000900:    7073           54121                           TS       MPTEMP                                #  INSTRUCTIONS.
002274,000901:    7074           00006                           EXTEND                                         
002275,000902:    7075           70142                           MP       MPAC       +2                         #  MINOR OF MPAC X MINOR OF C(ADDRWD).
002276,000903: 
002277,000904:    7076           56142                           XCH      MPAC       +2                         #  DISCARD MINOR PART OF ABOVE RESULT AND
002278,000905:    7077           00006                           EXTEND                                         #  FORM MAJOR OF MPAC X MINOR OF C(ADDRWD).
002279,000906:    7100           70140                           MP       MPAC                                  
002280,000907:    7101           20142                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002281,000908: 
002282,000909:    7102           50102                           INDEX    ADDRWD                                #  GET MAJOR PART OF ARGUMENT AT C(ADDRWD).
002283,000910:    7103           30000                           CA       0                                     
002284,000911:    7104           56121                           XCH      MPTEMP                                #  SAVE AND BRING OUT MINOR OF MPAC.
002285,000912:    7105           00006                           EXTEND                                         
002286,000913:    7106           70121                           MP       MPTEMP                                #  MAJOR OF C(ADDRWD) X MINOR OF MPAC.
002287,000914:    7107           20142                           DAS      MPAC       +1                         #  ACCUMULATE, SETTING A TO NET OVERFLOW.
002288,000915: 
002289,000916:    7110           56140                           XCH      MPAC                                  #  SETTING MPAC TO 0 OR +-1.
002290,000917:    7111           00006                           EXTEND                                         
002291,000918:    7112           70121                           MP       MPTEMP                                #  MAJOR OF MPAC X MAJOR OF C(ADDRWD).
002292,000919:    7113           20141                           DAS      MPAC                                  #  GUARANTEED NO OVERFLOW.
002293,000920:    7114           00002                           TC       Q                                     #  49 MCT = .573 MS. INCLUDING RETURN.
002294,000921: 
002295,000922:                                                                                                  #           ROUND MPAC TO DOUBLE PRECISION, SETTING OVFIND ON THE RARE EVENT OF OVERFLOW.
002296,000923: 
002297,000924:    7115           37675        ROUNDSUB           CAF      ZERO                                  #  SET MPAC +2 = 0 FOR SCALARS AND CHANGE
002298,000925:    7116           54147                 +1        TS       MODE                                  #  MODE TO DP.
002299,000926: 
002300,000927:    7117           56142        VROUND             XCH      MPAC       +2                         #  BUT WE NEEDNT TAKE THE TIME FOR VECTORS.
002301,000928:    7120           60000                           DOUBLE                                         
002302,000929:    7121           54001                           TS       L                                     
002303,000930:    7122           00002                           TC       Q                                     
002304,000931: 
002305,000932:    7123           60141                           AD       MPAC       +1                         #  ADD ROUNDING BIT IF MPAC +2 WAS GREATER
002306,000933:    7124           54141                           TS       MPAC       +1                         #  THAN .5 IN MAGNITUDE.
002307,000934:    7125           00002                           TC       Q                                     
002308,000935: 
002309,000936:    7126           60140                           AD       MPAC                                  #  PROPAGATE INTERFLOW.
002310,000937:    7127           54140                           TS       MPAC                                  
002311,000938:    7130           00002                           TC       Q                                     
002312,000939: 
002313,000940:    7131           54105        SETOVF2            TS       OVFIND                                #  (RARE).
002314,000941:    7132           00002                           TC       Q                                     
002315,000942: 
002316,000943:                                                                                                  #           THE DOT PRODUCT SUBROUTINE USUALLY FORMS THE DOT PRODUCT OF THE VECTOR IN MPAC WITH A STANDARD SIX
002317,000944:                                                                                                  #  REGISTER VECTOR WHOSE ADDRESS IS IN ADDRWD. IN THIS CASE C(DOTINC) ARE SET TO 2. VXM, HOWEVER, SETS C(DOTINC) TO
002318,000945:                                                                                                  #  6 SO THAT DOTSUB DOTS MPAC WITH A COLUMN VECTOR OF THE MATRIX IN QUESTION IN THIS CASE.
002319,000946: 
002320,000947: 
002321,000948: 
002322,000949:    7133           37670        PREDOT             CAF      TWO                                   #  PROLOGUE TO SET DOTINC TO 2.
002323,000950:    7134           54122                           TS       DOTINC                                
002324,000951: 
002325,000952:    7135           00006        DOTSUB             EXTEND                                         
002326,000953:    7136           22123                           QXCH     DOTRET                                #  SAVE RETURN.
002327,000954:    7137           07066                           TC       DMPSUB                                #  DOT X COMPONENTS.
002328,000955:    7140           52144                           DXCH     MPAC       +3                         #  POSITION Y COMPONENT OF MPAC FOR
002329,000956:    7141           52141                           DXCH     MPAC                                  #  MULTIPLICATION WHILE SAVING RESULT IN
002330,000957:    7142           52115                           DXCH     BUF                                   #  THREE WORD BUFFER, BUF.
002331,000958:    7143           30142                           CA       MPAC       +2                         
002332,000959:    7144           54116                           TS       BUF        +2                         
002333,000960: 
002334,000961:    7145           30122                           CA       DOTINC                                #  ADVANCE ADDRWD TO Y COMPONENT OF
002335,000962:    7146           26102                           ADS      ADDRWD                                #  OTHER ARGUMENT.
002336,000963:    7147           07066                           TC       DMPSUB                                
002337,000964:    7150           52142                           DXCH     MPAC       +1                         #  ACCUMULATE PARTIAL PRODUCTS.
002338,000965:    7151           20116                           DAS      BUF        +1                         
002339,000966:    7152           60140                           AD       MPAC                                  
002340,000967:    7153           60114                           AD       BUF                                   
002341,000968:    7154           54114                           TS       BUF                                   
002342,000969:    7155           17157                           TCF      +2                                    
002343,000970:    7156           54105                           TS       OVFIND                                #  IF OVERFLOW OCCURS.
002344,000971: 
002345,000972:    7157           52146                           DXCH     MPAC       +5                         #  MULTIPLY Z COMPONENTS.
002346,000973:    7160           52141                           DXCH     MPAC                                  
002347,000974:    7161           30122                           CA       DOTINC                                
002348,000975:    7162           26102                           ADS      ADDRWD                                
002349,000976:    7163           07066                           TC       DMPSUB                                
002350,000977:    7164           52116        ENDDOT             DXCH     BUF        +1                         #  LEAVE FINAL ACCUMULATION IN MPAC.
002351,000978:    7165           20142                           DAS      MPAC       +1                         
002352,000979:    7166           60140                           AD       MPAC                                  
002353,000980:    7167           60114                           AD       BUF                                   
002354,000981:    7170           54140                           TS       MPAC                                  
002355,000982:    7171           00123                           TC       DOTRET                                
002356,000983: 
002357,000984:    7172           54105                           TS       OVFIND                                #  ON OVERFLOW HERE.
002358,000985:    7173           00123                           TC       DOTRET                                
002359,000986: 
002360,000987:                                                                                                  #  DOUBLE PRECISION POLYNOMIAL EVALUATOR
002361,000988: 
002362,000989:                                                                                                  #                                     N        N-1
002363,000990:                                                                                                  #           THIS ROUTINE EVALUATES A X  + A   X    + ... + A X + A  LEAVING THE DP RESULT IN MPAC ON EXIT.
002364,000991:                                                                                                  #                                   N      N-1              1     0
002365,000992: 
002366,000993:                                                                                                  #  THE ROUTINE HAS TWO ENTRIES
002367,000994: 
002368,000995:                                                                                                  #           1. ENTRY THRU POWRSERS. THE COEFFICIENTS MAY BE EITHER IN FIXED OR ERASABLE, THE CALL IS BY
002369,000996:                                                                                                  #              TC POWRSERS, AND THE RETURN IS TO LOC(TC POWRSERS)+1. THE ENTERING DATA MUST BE AS FOLLOWS
002370,000997: 
002371,000998:                                                                                                  #                                          A        SP     LOC-3           ADDRESS FOR REFERENCING COEF TABLE
002372,000999:                                                                                                  #                                          L        SP     N-1             N IS THE DEGREE OF THE POWER SERIES
002373,001000:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
002374,001001: 
002375,001002:                                                                                                  #                                          LOC-2N   DP     A(0)
002376,001003:                                                                                                  #                                                   ...
002377,001004:                                                                                                  #                                          LOC      DP     A(N)
002378,001005: 
002379,001006:                                                                                                  #           2. ENTRY THRU POLY. THE CALL TO POLY AND THE ENTERING DATA MUST BE AS FOLLOWS
002380,001007: 
002381,001008:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
002382,001009: 
002383,001010:                                                                                                  #                                          LOC      TC     POLY
002384,001011:                                                                                                  #                                          LOC+1    SP     N-1
002385,001012:                                                                                                  #                                          LOC+2    DP     A(0)
002386,001013:                                                                                                  #                                                   ...
002387,001014:                                                                                                  #                                          LOC+2N+2 DP     A(N)            RETURN IS TO LOC+2N+4
002388,001015: 
002389,001016:    7174           00006        POWRSERS           EXTEND                                         
002390,001017:    7175           22125                           QXCH     POLYRET                               #  RETURN ADDRESS
002391,001018:    7176           54103                           TS       POLISH                                #  POWER SERIES ADDRESS
002392,001019:    7177           22124                           LXCH     POLYCNT                               #  N-1 TO COUNTER
002393,001020:    7200           17211                           TCF      POLYCOM                               #  SKIP SET UP BY POLY
002394,001021: 
002395,001022:    7201           50002        POLY               INDEX    Q                                     
002396,001023:    7202           30000                           CAF      0                                     
002397,001024:    7203           54124                           TS       POLYCNT                               #  N-1 TO COUNTER
002398,001025:    7204           60000                           DOUBLE                                         
002399,001026:    7205           60002                           AD       Q                                     
002400,001027:    7206           54103                           TS       POLISH                                #  L(A(N))-3 TO POLISH
002401,001028:    7207           67674                           AD       FIVE                                  
002402,001029:    7210           54125                           TS       POLYRET                               #  STORE RETURN ADDRESS
002403,001030: 
002404,001031:    7211           37710        POLYCOM            CAF      LVBUF                                 #  INCOMING X WILL BE MOVED TO VBUF, SO
002405,001032:    7212           54102                           TS       ADDRWD                                #  SET ADDRWD SO DMPSUB WILL MPY BY VBUF.
002406,001033: 
002407,001034:    7213           00006                           EXTEND                                         
002408,001035:    7214           50103                           INDEX    POLISH                                
002409,001036:    7215           30004                           DCA      3                                     
002410,001037: 
002411,001038:    7216           52141                           DXCH     MPAC                                  #  LOAD A(N) INTO MPAC,
002412,001039:    7217           52107                           DXCH     VBUF                                  #  SAVING X IN VBUF
002413,001040:    7220           17224                           TCF      POLY2                                 
002414,001041: 
002415,001042:    7221           54124        POLYLOOP           TS       POLYCNT                               #  SAVE DECREMENTED LOOP COUNTER
002416,001043:    7222           47670                           CS       TWO                                   
002417,001044:    7223           26103                           ADS      POLISH                                #  REGRESS COEFFICIENT POINTER
002418,001045: 
002419,001046:    7224           07066        POLY2              TC       DMPSUB                                #  MULTIPLY BY X
002420,001047:    7225           00006                           EXTEND                                         
002421,001048:    7226           50103                           INDEX    POLISH                                
002422,001049:    7227           30002                           DCA      1                                     #  ADD IN NEXT COEFFICIENT
002423,001050:    7230           20141                           DAS      MPAC                                  #  USERS RESPONSIBILITY TO ASSURE NO OVFLOW
002424,001051: 
002425,001052:    7231           10124                           CCS      POLYCNT                               
002426,001053:    7232           17221                           TCF      POLYLOOP                              
002427,001054:    7233           00125                           TC       POLYRET                               #  RETURN CALLER
002428,001055: 
002429,001056:                                                                                                  #           MISCELLANEOUS MULTI-PRECISION ROUTINES REQUIRED IN FIXED-FIXED BUT NOT USED BY THE INTERPRETER.
002430,001057: 
002431,001058:    7234           00006        TPAGREE            EXTEND                                         #  FORCE SIGN AGREEMENT AMONG THE TRIPLE-
002432,001059:    7235           22114                           QXCH     BUF                                   #  PRECISION CONTENTS OF MPAC, RETURNING
002433,001060:    7236           06706                           TC       BRANCH                                #  WITH THE SIGNUM OF THE INPUT IN A.
002434,001061:    7237           17243                           TCF      ARG+                                  
002435,001062:    7240           17263                           TCF      ARGZERO                               
002436,001063: 
002437,001064:    7241           47651                           CS       POSMAX                                #  IF NEGATIVE.
002438,001065:    7242           17244                           TCF      +2                                    
002439,001066: 
002440,001067:    7243           37651        ARG+               CAF      POSMAX                                
002441,001068:    7244           54115                 +2        TS       BUF        +1                         
002442,001069:    7245           00006                           EXTEND                                         
002443,001070:    7246           24000                           AUG      A                                     #  FORMS +-1.0.
002444,001071:    7247           60142                           AD       MPAC       +2                         
002445,001072:    7250           54142                           TS       MPAC       +2                         
002446,001073:    7251           37675                           CAF      ZERO                                  
002447,001074:    7252           60115                           AD       BUF        +1                         
002448,001075:    7253           60141                           AD       MPAC       +1                         
002449,001076:    7254           54141                           TS       MPAC       +1                         
002450,001077:    7255           37675                           CAF      ZERO                                  
002451,001078:    7256           60115                           AD       BUF        +1                         
002452,001079:    7257           60140                           AD       MPAC                                  
002453,001080:    7260           54140        ARGZERO2           TS       MPAC                                  #  ALWAYS SKIPPING UNLESS ARGZERO.
002454,001081:    7261           54141                           TS       MPAC       +1                         
002455,001082:    7262           00114                           TC       BUF                                   #  RETURN.
002456,001083: 
002457,001084:    7263           54142        ARGZERO            TS       MPAC       +2                         #  SET ALL THREE MPAC REGISTERS TO ZERO.
002458,001085:    7264           17260                           TCF      ARGZERO2                              
002459,001086: 
002460,001087:                                                                                                  #           SHORTMP MULTIPLIES THE TP CONTENTS OF MPAC BY THE SINGLE PRECISION NUMBER ARRIVING IN A.
002461,001088: 
002462,001089:    7265           54121        SHORTMP            TS       MPTEMP                                
002463,001090:    7266           00006                           EXTEND                                         
002464,001091:    7267           70142                           MP       MPAC       +2                         
002465,001092:    7270           54142                           TS       MPAC       +2                         
002466,001093:    7271           37675                           CAF      ZERO                                  #  SO SUBSEQUENT DAS WILL WORK.
002467,001094:    7272           56141                           XCH      MPAC       +1                         
002468,001095:    7273           00006                           EXTEND                                         
002469,001096:    7274           70121                           MP       MPTEMP                                
002470,001097:    7275           20142                           DAS      MPAC       +1                         
002471,001098:    7276           56140                           XCH      MPAC                                  #  SETTING MPAC TO 0.
002472,001099:    7277           00006                           EXTEND                                         
002473,001100:    7300           70121                           MP       MPTEMP                                
002474,001101:    7301           20141                           DAS      MPAC                                  
002475,001102: 
002476,001103:    7302           00002                           TC       Q                                     
002477,001104: 
002478,001105:                                                                                                  #         DMPNSUB MULTIPLIES THE DP FRACTION ARRIVING IN MPAC BY THE SP
002479,001106:                                                                                                  #  INTEGER ARRIVING IN A.  THE DP PRODUCT DEPARTS BOTH IN MPAC AND IN
002480,001107:                                                                                                  #  A AND L.  NOTE THAT DMPNSUB NORMALLY INCREASES THE MAGNITUDE OF THE
002481,001108:                                                                                                  #  CONTENTS OF MPAC.  THE CUSTOMER MUST INSURE THAT B(A) X B(MPAC,MPAC+1)
002482,001109:                                                                                                  #  AND B(A) X B(MPAC) ARE LESS THAN 1 IN MAGNITUDE, WHERE B, AS IS OBVIOUS,
002483,001110:                                                                                                  #  INDICATES THE ARRIVING CONTENTS.
002484,001111: 
002485,001112: 
002486,001113:    7303           54121        DMPNSUB            TS       DMPNTEMP                              
002487,001114:    7304           00006                           EXTEND                                         
002488,001115:    7305           70141                           MP       MPAC       +1                         
002489,001116:    7306           52141                           DXCH     MPAC                                  #  LOW PRODUCT TO MPAC, HIGH FACTOR TO A
002490,001117:    7307           00006                           EXTEND                                         
002491,001118:    7310           70121                           MP       DMPNTEMP                              
002492,001119:    7311           30001                           CA       L                                     
002493,001120:    7312           26140                           ADS      MPAC                                  #  COMPLETING THE PRODUCT IN MPAC
002494,001121:    7313           00006                           EXTEND                                         
002495,001122:    7314           30141                           DCA      MPAC                                  #  BRINGING THE PRODUCT INTO A AND L
002496,001123:    7315           00002                           TC       Q                                     
002497,001124: 
002498,001125:                                                                                                  #  MISCELLANEOUS VECTOR OPERATIONS. INCLUDED HERE ARE THE FOLLOWING:
002499,001126: 
002500,001127:                                                                                                  #           1.  DOT                DP VECTOR DOT PRODUCT.
002501,001128:                                                                                                  #           2.  VXV                DP VECTOR CROSS PRODUCT.
002502,001129:                                                                                                  #           3.  VXSC               DP VECTOR TIMES SCALAR.
002503,001130:                                                                                                  #           4.  V/SC               DP VECTOR DIVIDED BY SCALAR.
002504,001131:                                                                                                  #           5.  VPROJ              DP VECTOR PROJECTION.  ( (MPAC.X)MPAC ).
002505,001132:                                                                                                  #           6.  VXM                DP VECTOR POST-MULTIPLIED BY MATRIX.
002506,001133:                                                                                                  #           7.  MXV                DP VECTOR PRE-MULTIPLIED BY MATRIX.
002507,001134: 
002508,001135:    7316           07133        DOT                TC       PREDOT                                #  DO THE DOT PRODUCT AND EXIT, CHANGING
002509,001136:    7317           37675                           CAF      ZERO                                  #  THE MODE TO DP SCALAR.
002510,001137:    7320           16011                           TCF      NEWMODE                               
002511,001138: 
002512,001139: 
002513,001140: 
002514,001141:    7321           37670        MXV                CAF      TWO                                   #  SET UP MATINC AND DOTINC FOR ROW
002515,001142:    7322           54124                           TS       MATINC                                #  VECTORS.
002516,001143:    7323           17327                           TCF      VXM/MXV                               #  GO TO COMMON PORTION.
002517,001144: 
002518,001145:    7324           45234        VXM                CS       TEN                                   #  SET MATINC AND DOTINC TO REFER TO MATRIX
002519,001146:    7325           54124                           TS       MATINC                                #  AS THREE COLUMN VECTORS.
002520,001147:    7326           36173                           CAF      SIX                                   
002521,001148: 
002522,001149:                                                                                                  #           COMMON PORTION OF MXV AND VXM.
002523,001150: 
002524,001151:    7327           54122        VXM/MXV            TS       DOTINC                                
002525,001152:                                                                                                  #           ITRACE (2) REFERS TO "VXM/MXV".
002526,001153:    7330           07520                           TC       MPACVBUF                              #  SAVE VECTOR IN MPAC FOR FURTHER USE.
002527,001154: 
002528,001155:    7331           07135                           TC       DOTSUB                                #  GO DOT TO GET X COMPONENT OF ANSWER.
002529,001156:    7332           00006                           EXTEND                                         
002530,001157:    7333           30107                           DCA      VBUF                                  #  MOVE MPAC VECTOR BACK INTO MPAC, SAVING
002531,001158:    7334           52141                           DXCH     MPAC                                  #  NEW X COMPONENT IN BUF2.
002532,001159:    7335           52120                           DXCH     BUF2                                  
002533,001160:    7336           00006                           EXTEND                                         
002534,001161:    7337           30111                           DCA      VBUF       +2                         
002535,001162:    7340           52144                           DXCH     MPAC       +3                         
002536,001163:    7341           00006                           EXTEND                                         
002537,001164:    7342           30113                           DCA      VBUF       +4                         
002538,001165:    7343           52146                           DXCH     MPAC       +5                         
002539,001166:    7344           30124                           CA       MATINC                                #  INITIALIZE ADDRWD FOR NEXT DOT PRODUCT.
002540,001167:    7345           26102                           ADS      ADDRWD                                #  FORMS BASE ADDRESS OF NEXT COLUMN(ROW).
002541,001168: 
002542,001169:    7346           07135                           TC       DOTSUB                                
002543,001170:    7347           52107                           DXCH     VBUF                                  #  MOVE GIVEN VECTOR BACK TO MPAC, SAVING Y
002544,001171:    7350           52141                           DXCH     MPAC                                  #  COMPONENT OF ANSWER IN VBUF +2.
002545,001172:    7351           52111                           DXCH     VBUF       +2                         
002546,001173:    7352           52144                           DXCH     MPAC       +3                         
002547,001174:    7353           52113                           DXCH     VBUF       +4                         
002548,001175:    7354           52146                           DXCH     MPAC       +5                         
002549,001176:    7355           30124                           CA       MATINC                                #  FORM ADDRESS OF LAST COLUMN OR ROW.
002550,001177:    7356           26102                           ADS      ADDRWD                                
002551,001178: 
002552,001179:    7357           07135                           TC       DOTSUB                                
002553,001180:    7360           52120                           DXCH     BUF2                                  #  ANSWER NOW COMPLETE. PUT COMPONENTS INTO
002554,001181:    7361           52141                           DXCH     MPAC                                  #  PROPER MPAC REGISTERS.
002555,001182:    7362           52146                           DXCH     MPAC       +5                         
002556,001183:    7363           52111                           DXCH     VBUF       +2                         
002557,001184:    7364           52144                           DXCH     MPAC       +3                         
002558,001185:    7365           16012                           TCF      DANZIG                                #  EXIT.
002559,001186: 
002560,001187:                                                                                                  #           VXSC - VECTOR TIMES SCALAR.
002561,001188: 
002562,001189:    7366           10147        VXSC               CCS      MODE                                  #  TEST PRESENT MODE.
002563,001190:    7367           17415                           TCF      DVXSC                                 #  SEPARATE ROUTINE WHEN SCALAR IS IN MPAC.
002564,001191:    7370           17415                           TCF      DVXSC                                 
002565,001192: 
002566,001193:    7371           07066        VVXSC              TC       DMPSUB                                #  COMPUTE X COMPONENT
002567,001194:    7372           07117                           TC       VROUND                                #  AND ROUND IT.
002568,001195:    7373           52144                           DXCH     MPAC       +3                         #  PUT Y COMPONENT INTO MPAC SAVING MPAC IN
002569,001196:    7374           52141                           DXCH     MPAC                                  #  MPAC +3.
002570,001197:    7375           52144                           DXCH     MPAC       +3                         
002571,001198: 
002572,001199:    7376           07066                           TC       DMPSUB                                #  DO SAME FOR Y AND Z COMPONENTS.
002573,001200:    7377           07117                           TC       VROUND                                
002574,001201:    7400           52146                           DXCH     MPAC       +5                         
002575,001202:    7401           52141                           DXCH     MPAC                                  
002576,001203:    7402           52146                           DXCH     MPAC       +5                         
002577,001204: 
002578,001205:    7403           07066                           TC       DMPSUB                                
002579,001206:    7404           07117                           TC       VROUND                                
002580,001207:    7405           52141        VROTATEX           DXCH     MPAC                                  #  EXIT USED TO RESTORE MPAC AFTER THIS
002581,001208:    7406           52146                           DXCH     MPAC       +5                         #  TYPE OF ROTATION. CALLED BY VECTOR SHIFT
002582,001209:    7407           52144                           DXCH     MPAC       +3                         #  RIGHT, V/SC, ETC.
002583,001210:    7410           52141                           DXCH     MPAC                                  
002584,001211:    7411           16012                           TCF      DANZIG                                
002585,001212: 
002586,001213:                                                                                                  #           DP VECTOR PROJECTION ROUTINE.
002587,001214: 
002588,001215: 
002589,001216: 
002590,001217:    7412           07133        VPROJ              TC       PREDOT                                #  (MPAC.X)MPAC IS COMPUTED AND LEFT IN
002591,001218:    7413           47667                           CS       FOUR                                  #  MPAC. DO DOT AND FALL INTO DVXSC.
002592,001219:    7414           26102                           ADS      ADDRWD                                
002593,001220: 
002594,001221:                                                                                                  #           VXSC WHEN SCALAR ARRIVES IN MPAC AND VECTOR IS AT X.
002595,001222: 
002596,001223:    7415           00006        DVXSC              EXTEND                                         #  SAVE SCALAR IN MPAC +3 AND GET X
002597,001224:    7416           30141                           DCA      MPAC                                  #  COMPONENT OF ANSWER.
002598,001225:    7417           52144                           DXCH     MPAC       +3                         
002599,001226:    7420           07066                           TC       DMPSUB                                
002600,001227:    7421           07117                           TC       VROUND                                
002601,001228: 
002602,001229:    7422           37670                           CAF      TWO                                   #  ADVANCE ADDRWD TO Y COMPONENT OF X.
002603,001230:    7423           26102                           ADS      ADDRWD                                
002604,001231:    7424           00006                           EXTEND                                         
002605,001232:    7425           30144                           DCA      MPAC       +3                         #  PUT SCALAR BACK INTO MPAC AND SAVE
002606,001233:    7426           52141                           DXCH     MPAC                                  #  X RESULT IN MPAC +5.
002607,001234:    7427           52146                           DXCH     MPAC       +5                         
002608,001235:    7430           07066                           TC       DMPSUB                                
002609,001236:    7431           07117                           TC       VROUND                                
002610,001237: 
002611,001238:    7432           37670                           CAF      TWO                                   
002612,001239:    7433           26102                           ADS      ADDRWD                                #  TO Z COMPONENT.
002613,001240:    7434           52144                           DXCH     MPAC       +3                         #  BRING SCALAR BACK, PUTTING Y RESULT IN
002614,001241:    7435           52141                           DXCH     MPAC                                  #  THE PROPER PLACE.
002615,001242:    7436           52144                           DXCH     MPAC       +3                         
002616,001243:    7437           07066                           TC       DMPSUB                                
002617,001244:    7440           07117                           TC       VROUND                                
002618,001245: 
002619,001246:    7441           52141                           DXCH     MPAC                                  #  PUT Z COMPONENT IN PROPER PLACE, ALSO
002620,001247:    7442           52146                           DXCH     MPAC       +5                         #  POSITIONING X.
002621,001248:    7443           52141                           DXCH     MPAC                                  
002622,001249: 
002623,001250:    7444           47671                           CS       ONE                                   #  MODE HAS CHANGED TO VECTOR.
002624,001251:    7445           16011                           TCF      NEWMODE                               
002625,001252: 
002626,001253:                                                                                                  #           THE VECTOR CROSS PRODUCT ROUTINE CALCULATES (X M -X M ,X M -X M ,X M -X M ) WHERE M IS THE VECTOR IN
002627,001254:                                                                                                  #                                                         3 2  2 3  1 3  3 1  2 1  1 2
002628,001255:                                                                                                  #  MPAC AND X THE VECTOR AT THE GIVEN ADDRESS.
002629,001256: 
002630,001257: 
002631,001258: 
002632,001259:    7446           00006        VXV                EXTEND                                         
002633,001260:    7447           30146                           DCA      MPAC       +5                         #  FORM UP M3X1, LEAVING M1 IN VBUF.
002634,001261:    7450           52141                           DXCH     MPAC                                  
002635,001262:    7451           52107                           DXCH     VBUF                                  
002636,001263:    7452           07066                           TC       DMPSUB                                #  BY X1.
002637,001264: 
002638,001265:    7453           00006                           EXTEND                                         
002639,001266:    7454           40144                           DCS      MPAC       +3                         #  CALCULATE -X1M2, SAVING X1M3 IN VBUF +2.
002640,001267:    7455           52141                           DXCH     MPAC                                  
002641,001268:    7456           52111                           DXCH     VBUF       +2                         
002642,001269:    7457           07066                           TC       DMPSUB                                
002643,001270: 
002644,001271:    7460           37670                           CAF      TWO                                   #  ADVANCE ADDRWD TO X2.
002645,001272:    7461           26102                           ADS      ADDRWD                                
002646,001273:    7462           00006                           EXTEND                                         
002647,001274:    7463           40146                           DCS      MPAC       +5                         #  PREPARE TO GET -X2M3, SAVING -X1M2 IN
002648,001275:    7464           52141                           DXCH     MPAC                                  #  MPAC +5.
002649,001276:    7465           52146                           DXCH     MPAC       +5                         
002650,001277:    7466           07066                           TC       DMPSUB                                
002651,001278: 
002652,001279:    7467           00006                           EXTEND                                         
002653,001280:    7470           30107                           DCA      VBUF                                  #  GET X2M1, SAVING -X2M3 IN VBUF +4.
002654,001281:    7471           52141                           DXCH     MPAC                                  
002655,001282:    7472           52113                           DXCH     VBUF       +4                         
002656,001283:    7473           07066                           TC       DMPSUB                                
002657,001284: 
002658,001285:    7474           37670                           CAF      TWO                                   #  ADVANCE ADDRWD TO X3.
002659,001286:    7475           26102                           ADS      ADDRWD                                
002660,001287:    7476           00006                           EXTEND                                         
002661,001288:    7477           40107                           DCS      VBUF                                  #  GET -X3M1, ADDING X2M1 TO MPAC +5 TO
002662,001289:    7500           52141                           DXCH     MPAC                                  #  COMPLETE THE Z COMPONENT OF THE ANSWER.
002663,001290:    7501           20146                           DAS      MPAC       +5                         
002664,001291: 
002665,001292:    7502           00006                           EXTEND                                         
002666,001293:    7503           17505                           BZF      +2                                    
002667,001294:    7504           07006                           TC       OVERFLOW                              
002668,001295: 
002669,001296:    7505           07066                           TC       DMPSUB                                
002670,001297:    7506           52111                           DXCH     VBUF       +2                         #  MOVE X1M3 TO MPAC +3 SETTING UP FOR X3M2
002671,001298:    7507           52144                           DXCH     MPAC       +3                         #  AND ADD -X3M1 TO MPAC +3 TO COMPLETE THE
002672,001299:    7510           52141                           DXCH     MPAC                                  #  Y COMPONENT OF THE RESULT.
002673,001300:    7511           20144                           DAS      MPAC       +3                         
002674,001301: 
002675,001302:    7512           00006                           EXTEND                                         
002676,001303:    7513           17515                           BZF      +2                                    
002677,001304:    7514           07006                           TC       OVERFLOW                              
002678,001305: 
002679,001306:    7515           07066                           TC       DMPSUB                                
002680,001307:    7516           52113                           DXCH     VBUF       +4                         #  GO ADD -X2M3 TO X3M2 TO COMPLETE THE X
002681,001308:    7517           16753                           TCF      ENDVXV                                #  COMPONENT (TAIL END OF DAD).
002682,001309: 
002683,001310:                                                                                                  #           THE MPACVBUF SUBROUTINE SAVES THE VECTOR IN MPAC IN VBUF WITHOUT CLOBBERING MPAC.
002684,001311: 
002685,001312:    7520           00006        MPACVBUF           EXTEND                                         #  CALLED BY MXV, VXM, AND UNIT.
002686,001313:    7521           30141                           DCA      MPAC                                  
002687,001314:    7522           52107                           DXCH     VBUF                                  
002688,001315:    7523           00006                           EXTEND                                         
002689,001316:    7524           30144                           DCA      MPAC       +3                         
002690,001317:    7525           52111                           DXCH     VBUF       +2                         
002691,001318:    7526           00006                           EXTEND                                         
002692,001319:    7527           30146                           DCA      MPAC       +5                         
002693,001320:    7530           52113                           DXCH     VBUF       +4                         
002694,001321:    7531           00002                           TC       Q                                     #  RETURN TO CALLER.
002695,001322: 
002696,001323:                                                                                                  #           INTERPRETIVE INSTRUCTIONS WHOSE EXECUTION CONSISTS OF PRINCIPALLY CALLING SUBROUTINES.
002697,001324: 
002698,001325:    7532           07066        DMP1               TC       DMPSUB                                #  DMP INSTRUCTION.
002699,001326:    7533           16012                           TCF      DANZIG                                
002700,001327: 
002701,001328:    7534           07066        DMPR               TC       DMPSUB                                
002702,001329:    7535           07116                           TC       ROUNDSUB   +1                         #  (C(A) = +0).
002703,001330:    7536           16012                           TCF      DANZIG                                
002704,001331: 
002705,001332:    7537           00006        DDV                EXTEND                                         
002706,001333:    7540           50102                           INDEX    ADDRWD                                #  MOVE DIVIDEND INTO BUF.
002707,001334:    7541           30001                           DCA      0                                     
002708,001335:    7542           17547                           TCF      BDDV       +4                         
002709,001336: 
002710,001337:    7543           00006        BDDV               EXTEND                                         #  MOVE DIVISOR INTO MPAC SAVING MPAC, THE
002711,001338:    7544           50102                           INDEX    ADDRWD                                #  DIVIDEND, IN BUF.
002712,001339:    7545           30001                           DCA      0                                     
002713,001340:    7546           52141                           DXCH     MPAC                                  
002714,001341:    7547           52115                 +4        DXCH     BUF                                   
002715,001342:    7550           37675                           CAF      ZERO                                  #  DIVIDE ROUTINES IN BANK 0.
002716,001343:    7551           54004                           TS       FBANK                                 
002717,001344:    7552           12333                           TCF      DDV/BDDV                              
002718,001345: 
002719,001346:    7553           30102        SETPD              CA       ADDRWD                                #  MUST SET TO WORK AREA, OR EBANK TROUBLE.
002720,001347: 
002721,001348:    7554           54152                           TS       PUSHLOC                               
002722,001349:    7555           16014                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002723,001350: 
002724,001351:    7556           37675        TSLC               CAF      ZERO                                  #  SHIFTING ROUTINES LOCATED IN BANK 00.
002725,001352:    7557           54004                           TS       FBANK                                 
002726,001353:    7560           12153                           TCF      TSLC2                                 
002727,001354: 
002728,001355:    7561           36025        GSHIFT             CAF      LOW7                                  #  USED AS MASK AT GENSHIFT. THIS PROCESSES
002729,001356:    7562           54004                           TS       FBANK                                 #  ANY SHIFT INSTRUCTION (EXCEPT TSLC) WITH
002730,001357:    7563           12175                           TCF      GENSHIFT                              #  AN ADDRESS (ROUTINES IN BANK 0).
002731,001358: 
002732,001359:                                                                                                  #           THE FOLLOWING IS THE PROLOGUE TO V/SC. IF THE PRESENT MODE IS VECTOR, IT SAVES THE SCALAR AT X IN BUF
002733,001360:                                                                                                  #  AND CALLS THE V/SC ROUTINE IN BANK 0. IF THE PRESENT MODE IS SCALAR, IT MOVES THE VECTOR AT X INTO MPAC, SAVING
002734,001361:                                                                                                  #  THE SCALAR IN MPAC IN BUF BEFORE CALLING THE V/SC ROUTINE IN BANK 0.
002735,001362: 
002736,001363:    7564           10147        V/SC               CCS      MODE                                  
002737,001364:    7565           17576                           TCF      DV/SC                                 #  MOVE VECTOR INTO MPAC.
002738,001365:    7566           17576                           TCF      DV/SC                                 
002739,001366: 
002740,001367:    7567           00006        VV/SC              EXTEND                                         
002741,001368:    7570           50102                           INDEX    ADDRWD                                
002742,001369:    7571           30001                           DCA      0                                     
002743,001370:    7572           52115        V/SC1              DXCH     BUF                                   #  IN BOTH CASES, VECTOR IS NOW IN MPAC AND
002744,001371:    7573           37675                           CAF      ZERO                                  #  SCALAR IN BUF.
002745,001372:    7574           54004                           TS       FBANK                                 
002746,001373:    7575           12577                           TCF      V/SC2                                 
002747,001374: 
002748,001375:    7576           00006        DV/SC              EXTEND                                         
002749,001376:    7577           50102                           INDEX    ADDRWD                                
002750,001377:    7600           30003                           DCA      2                                     
002751,001378:    7601           52144                           DXCH     MPAC       +3                         
002752,001379:    7602           00006                           EXTEND                                         
002753,001380:    7603           50102                           INDEX    ADDRWD                                
002754,001381:    7604           30005                           DCA      4                                     
002755,001382:    7605           52146                           DXCH     MPAC       +5                         
002756,001383: 
002757,001384:    7606           47671                           CS       ONE                                   #  CHANGE MODE TO VECTOR.
002758,001385:    7607           54147                           TS       MODE                                  
002759,001386: 
002760,001387:    7610           00006                           EXTEND                                         
002761,001388:    7611           50102                           INDEX    ADDRWD                                
002762,001389:    7612           30001                           DCA      0                                     
002763,001390:    7613           52141                           DXCH     MPAC                                  
002764,001391:    7614           17572                           TCF      V/SC1                                 #  FINISH PROLOGUE AT COMMON SECTION.
002765,001392: 
002766,001393:                                                                                                  #           SIGN AND COMPLEMENT INSTRUCTIONS.
002767,001394: 
002768,001395:    7615           50102        SIGN               INDEX    ADDRWD                                #  CALL COMP INSTRUCTION IF WORD AT X IS
002769,001396:    7616           10000                           CCS      0                                     #  NEGATIVE NON-ZERO.
002770,001397:    7617           16012                           TCF      DANZIG                                
002771,001398:    7620           17622                           TCF      +2                                    
002772,001399:    7621           17630                           TCF      COMP                                  #  DO THE COMPLEMENT.
002773,001400: 
002774,001401:    7622           50102                           INDEX    ADDRWD                                
002775,001402:    7623           10001                           CCS      1                                     
002776,001403:    7624           16012                           TCF      DANZIG                                
002777,001404:    7625           16012                           TCF      DANZIG                                
002778,001405: 
002779,001406:    7626           17630                           TCF      COMP                                  
002780,001407:    7627           16012                           TCF      DANZIG                                
002781,001408:    7630           00006        COMP               EXTEND                                         #  COMPLEMENT DP MPAC IN EVERY CASE.
002782,001409:    7631           40141                           DCS      MPAC                                  
002783,001410:    7632           52141                           DXCH     MPAC                                  
002784,001411: 
002785,001412:    7633           10147                           CCS      MODE                                  #  EITHER COMPLEMENT MPAC +3 OR THE REST OF
002786,001413:    7634           17645                           TCF      DCOMP                                 #  THE VECTOR ACCUMULATOR.
002787,001414:    7635           17645                           TCF      DCOMP                                 
002788,001415: 
002789,001416:    7636           00006                           EXTEND                                         #  VECTOR COMPLEMENT.
002790,001417:    7637           40144                           DCS      MPAC       +3                         
002791,001418:    7640           52144                           DXCH     MPAC       +3                         
002792,001419:    7641           00006                           EXTEND                                         
002793,001420:    7642           40146                           DCS      MPAC       +5                         
002794,001421:    7643           52146                           DXCH     MPAC       +5                         
002795,001422:    7644           16012                           TCF      DANZIG                                
002796,001423: 
002797,001424:    7645           40142        DCOMP              CS       MPAC       +2                         
002798,001425:    7646           54142                           TS       MPAC       +2                         
002799,001426:    7647           16012                           TCF      DANZIG                                
002800,001427: 
002801,001428:                                                                                                  #           CONSTANTS REQUIRED IN FIXED-FIXED.
002802,001429:    7650           37777        DPOSMAX            OCT      37777                                 
002803,001430:    7651           37777        POSMAX             OCT      37777                                 
002804,001431:    7652     7652               LIMITS             EQUALS   POSMAX     +1                         
002805,001432:    7652           57777        NEG1/2             OCT      -20000                                #  MUST BE TWO LOCATIONS AHEAD OF POS1/2.
002806,001433: 
002807,001434:    7653           40000        BIT15              OCT      40000                                 #  BIT TABLE FOLLOWS.
002808,001435:    7654           20000        BIT14              OCT      20000                                 
002809,001436:    7655           10000        BIT13              OCT      10000                                 
002810,001437:    7656           04000        BIT12              OCT      04000                                 
002811,001438:    7657           02000        BIT11              OCT      02000                                 
002812,001439:    7660           01000        BIT10              OCT      01000                                 
002813,001440:    7661           00400        BIT9               OCT      00400                                 
002814,001441:    7662           00200        BIT8               OCT      00200                                 
002815,001442:    7663           00100        BIT7               OCT      00100                                 
002816,001443:    7664           00040        BIT6               OCT      00040                                 
002817,001444:    7665           00020        BIT5               OCT      00020                                 
002818,001445:    7666           00010        BIT4               OCT      00010                                 
002819,001446:    7667           00004        BIT3               OCT      00004                                 
002820,001447:    7670           00002        BIT2               OCT      00002                                 
002821,001448:    7671           00001        BIT1               OCT      00001                                 
002822,001449: 
002823,001450:    7672     7653               NEGMAX             EQUALS   BIT15                                 
002824,001451:    7672     7654               HALF               EQUALS   BIT14                                 
002825,001452:    7672     7654               POS1/2             EQUALS   HALF                                  
002826,001453:    7672     7655               QUARTER            EQUALS   BIT13                                 
002827,001454:    7672     7657               2K                 EQUALS   BIT11                                 
002828,001455:    7672           00013        ELEVEN             DEC      11         B-14                       
002829,001456:    7673     7672               NOUTCON            =        ELEVEN                                
002830,001457: 
002831,001458:    7673     5234               TEN                =        BINCON                                
002832,001459:    7673     5170               NINE               =        R2D1                                  
002833,001460:    7673     7666               EIGHT              EQUALS   BIT4                                  
002834,001461:    7673           00007        SEVEN              OCT      7                                     
002835,001462:    7674     6173               SIX                EQUALS   REVCNT                                
002836,001463:    7674           00005        FIVE               OCT      5                                     
002837,001464:    7675     7667               FOUR               EQUALS   BIT3                                  
002838,001465:    7675     6176               THREE              EQUALS   OCTAL3                                
002839,001466:    7675     7670               TWO                EQUALS   BIT2                                  
002840,001467:    7675     7671               ONE                EQUALS   BIT1                                  
002841,001468:    7675           00000        ZERO               OCT      0                                     
002842,001469:    7676           77777        NEG0               OCT      77777                                 
002843,001470:    7677           77776        NEGONE             DEC      -1         B-14                       
002844,001471: 
002845,001472:    7700     7677               NEG1               =        NEGONE                                
002846,001473:    7700     7677               MINUS1             EQUALS   NEG1                                  
002847,001474:    7700           77775        NEG2               OCT      77775                                 
002848,001475:    7701           01777        LOW10              OCT      1777                                  
002849,001476:    7702           77774        NEG3               DEC      -3         B-14                       
002850,001477:    7703           00777        LOW9               OCT      777                                   
002851,001478:    7704           00017        LOW4               OCT      17                                    
002852,001479: 
002853,001480:    7705     7673               LOW3               EQUALS   SEVEN                                 
002854,001481:    7705     6176               LOW2               EQUALS   THREE                                 
002855,001482: 
002856,001483:    7705           00032        CALLCODE           OCT      00032                                 
002857,001484:    7706           40014        DLOADCOD           OCT      40014                                 
002858,001485:    7707     7653               VLOADCOD           EQUALS   BIT15                                 
002859,001486:    7707           40015        DLOAD*             OCT      40015                                 
002860,001487:    7710     6040               VLOAD*             EQUALS   OCT40001                              
002861,001488:    7710           00106        LVBUF              ADRES    VBUF                                  
002862,001489:    7711                        ENDINTF            EQUALS                                         
002863,001490: 
002864,001491:    7711     4507               BIT13-14           =        PRIO30                                
002865,001492:    7711           74000        HIGH4              OCT      74000                                 
002866,001493:    7712           00055        DEC45              DEC      45         B-14                       
002867,001494: 
002868,001495:                                                                                                  #           THE FOLLOWING SHORT SHIFT CODES REQUIRE NO ADDRESS WORD:
002869,001496: 
002870,001497:                                                                                                  #           1.  SR1 TO SR4         SCALAR SHIFT RIGHT.
002871,001498:                                                                                                  #           2.  SR1R TO SR4R       SCALAR SHIFT RIGHT AND ROUND.
002872,001499:                                                                                                  #           3.  SL1 TO SL4         SCALAR SHIFT LEFT.
002873,001500:                                                                                                  #           4.  SL1R TO SL4R       SCALAR SHIFT LEFT AND ROUND.
002874,001501: 
002875,001502:                                                                                                  #           5.  VSR1 TO VSR8       VECTOR SHIFT RIGHT (ALWAYS ROUNDS).
002876,001503:                                                                                                  #           6.  VSL1 TO VSL8       VECTOR SHIFT LEFT (NEVER ROUNDS).
002877,001504: 
002878,001505:                                                                                                  #           THE FOLLOWING CODES REQUIRE AN ADDRESS WHICH MAY BE INDEXED:*
002879,001506: 
002880,001507:                                                                                                  #           1.  SR                 SCALAR SHIFT RIGHT.
002881,001508:                                                                                                  #           2.  SRR                SCALAR SHIFT RIGHT AND ROUND.
002882,001509:                                                                                                  #           3.  SL                 SCALAR SHIFT LEFT.
002883,001510:                                                                                                  #           4.  SLR                SCALAR SHIFT LEFT AND ROUND.
002884,001511: 
002885,001512:                                                                                                  #           5.  VSR                VECTOR SHIFT RIGHT.
002886,001513:                                                                                                  #           6.  VSL                VECTOR SHIFT LEFT.
002887,001514: 
002888,001515:                                                                                                  #  *  IF THE ADDRESS IS INDEXED, AND THE INDEX MODIFICATION RESULTS IN A NEGATIVE SHIFT COUNT, A SHIFT OF THE
002889,001516:                                                                                                  #  ABSOLUTE VALUE OF THE COUNT IS DONE IN THE OPPOSITE DIRECTION.
002890,001517: 
002891,001518: 
002892,001519: 00,2000                                           SETLOC   10000                                 #  BANK 0 PORTION FOLLOWS.
002893,001520: 
002894,001521: 00,2000           36173        SHORTT             CAF      SIX                                   #  SCALAR SHORT SHIFTS COME HERE. THE SHIFT
002895,001522: 00,2001           70020                           MASK     CYR                                   #  COUNT-1 IS NOW IN BITS 2-3 OF CYR. THE
002896,001523: 00,2002           54021                           TS       SR                                    #  ROUNDING BIT IS IN BIT1 AT THIS POINT.
002897,001524: 
002898,001525: 00,2003           10020                           CCS      CYR                                   #  SEE IF RIGHT OR LEFT SHIFT DESIRED.
002899,001526: 00,2004           12062                           TCF      TSSL                                  #  SHIFT LEFT.
002900,001527: 
002901,001528: 00,2005           00024        SRDDV              DEC      20         B-14                       #  MPTEMP SETTING FOR SR BEFORE DDV.
002902,001529: 
002903,001530: 00,2006           50021        TSSR               INDEX    SR                                    #  GET SHIFTING BIT.
002904,001531: 00,2007           37654                           CAF      BIT14                                 
002905,001532: 00,2010           54121                           TS       MPTEMP                                
002906,001533: 
002907,001534: 00,2011           10020                           CCS      CYR                                   #  SEE IF A ROUND IS DESIRED.
002908,001535: 00,2012           02031        RIGHTR             TC       MPACSRND                              #  YES - SHIFT RIGHT AND ROUND.
002909,001536: 00,2013           16011                           TCF      NEWMODE                               #  SET MODE TO DP (C(A) = 0).
002910,001537: 00,2014           30121        MPACSHR            CA       MPTEMP                                #  DO A TRIPLE PRECISION SHIFT RIGHT.
002911,001538: 00,2015           00006                           EXTEND                                         
002912,001539: 00,2016           70142                           MP       MPAC       +2                         
002913,001540: 00,2017           54142                 +3        TS       MPAC       +2                         #  (EXIT FROM SQRT AND ABVAL).
002914,001541: 00,2020           30121                           CA       MPTEMP                                
002915,001542: 
002916,001543: 00,2021           00006                           EXTEND                                         
002917,001544: 00,2022           70140                           MP       MPAC                                  #  SHIFT MAJOR PART INTO A,L AND PLACE IN
002918,001545: 00,2023           52141                           DXCH     MPAC                                  #  MPAC,+1.
002919,001546: 00,2024           30121                           CA       MPTEMP                                
002920,001547: 00,2025           00006                           EXTEND                                         
002921,001548: 00,2026           70001                           MP       L                                     #  ORIGINAL C(MPAC +1).
002922,001549: 00,2027           20142                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002923,001550: 00,2030           16012                           TCF      DANZIG                                
002924,001551: 
002925,001552:                                                                                                  #           MPAC SHIFT RIGHT AND ROUND SUBROUTINES.
002926,001553: 
002927,001554: 00,2031           30142        MPACSRND           CA       MPAC       +2                         #  WE HAVE TO DO ALL THREE MULTIPLIES SINCE
002928,001555: 00,2032           00006                           EXTEND                                         #  MPAC +1 AND MPAC +2 MIGHT HAVE SIGN
002929,001556: 00,2033           70121                           MP       MPTEMP                                #  DISAGREEMENT WITH A SHIFT RIGHT OF 1.
002930,001557: 00,2034           56141                           XCH      MPAC       +1                         
002931,001558: 00,2035           00006                           EXTEND                                         
002932,001559: 00,2036           70121                           MP       MPTEMP                                
002933,001560: 00,2037           56141                           XCH      MPAC       +1                         #  TRIAL MINOR PART.
002934,001561: 00,2040           60001                           AD       L                                     
002935,001562: 
002936,001563: 00,2041           60000        VSHR2              DOUBLE                                         #  (FINISH VECTOR COMPONENT SHIFT RIGHT
002937,001564: 00,2042           54142                           TS       MPAC       +2                         #  AND ROUND.
002938,001565: 00,2043           12045                           TCF      +2                                    
002939,001566: 00,2044           26141                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002940,001567: 
002941,001568: 00,2045           37675                           CAF      ZERO                                  
002942,001569: 00,2046           54142                           TS       MPAC       +2                         
002943,001570: 00,2047           56140                           XCH      MPAC                                  #  SETTING TO ZERO SO FOLLOWING DAS WORKS.
002944,001571: 00,2050           00006                           EXTEND                                         
002945,001572: 00,2051           70121                           MP       MPTEMP                                
002946,001573: 00,2052           20141                           DAS      MPAC                                  #  AGAIN NO OVERFLOW.
002947,001574: 00,2053           00002                           TC       Q                                     
002948,001575: 
002949,001576: 00,2054           30121        VSHRRND            CA       MPTEMP                                #  ENTRY TO SHIFT RIGHT AND ROUND MPAC WHEN
002950,001577: 00,2055           00006                           EXTEND                                         #  MPAC CONTAINS A VECTOR COMPONENT.
002951,001578: 00,2056           70141                           MP       MPAC       +1                         
002952,001579: 00,2057           54141                           TS       MPAC       +1                         
002953,001580: 00,2060           56001                           XCH      L                                     
002954,001581: 00,2061           12041                           TCF      VSHR2                                 #  GO ADD ONE IF NECESSARY AND FINISH.
002955,001582: 
002956,001583:                                                                                                  #           ROUTINE FOR SHORT SCALAR SHIFT LEFT (AND MAYBE ROUND).
002957,001584: 
002958,001585: 00,2062           30021        TSSL               CA       SR                                    #  GET SHIFT COUNT FOR SR.
002959,001586: 00,2063           54121                 +1        TS       MPTEMP                                
002960,001587: 
002961,001588: 00,2064           00006                 +2        EXTEND                                         #  ENTRY HERE FROM SL FOR SCALARS.
002962,001589: 00,2065           30142                           DCA      MPAC       +1                         #  SHIFTING LEFT ONE PLACE AT A TIME IS
002963,001590: 00,2066           20142                           DAS      MPAC       +1                         #  FASTER THAN DOING THE WHOLE SHIFT WITH
002964,001591: 00,2067           60140                           AD       MPAC                                  #  MULTIPLIES ASSUMING THAT FREQUENCY OF
002965,001592: 00,2070           60140                           AD       MPAC                                  #  SHIFT COUNTS GOES DOWN RAPIDLY AS A
002966,001593: 00,2071           54140                           TS       MPAC                                  #  FUNCTION OF THEIR MAGNITUDE.
002967,001594: 00,2072           12074                           TCF      +2                                    
002968,001595: 00,2073           54105                           TS       OVFIND                                #  OVERFLOW. (LEAVES OVERFLOW-CORRECTED
002969,001596:                                                                                                  #  RESULT ANYWAY).
002970,001597: 00,2074           10121                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNT.
002971,001598: 00,2075           12063                           TCF      TSSL       +1                         
002972,001599: 
002973,001600: 00,2076           10020                           CCS      CYR                                   #  SEE IF ROUND WANTED.
002974,001601: 00,2077           07115        ROUND              TC       ROUNDSUB                              #  YES - ROUND AND EXIT.
002975,001602: 00,2100           16012                           TCF      DANZIG                                #  SL LEAVES A ZERO IN CYR FOR NO ROUND.
002976,001603: 00,2101           16012                           TCF      DANZIG                                #  NO - EXIT IMMEDIATL
002977,001604: 
002978,001605:                                                                                                  #  VECTOR SHIFTING ROUTINES.
002979,001606: 
002980,001607: 00,2102           37673        SHORTV             CAF      LOW3                                  #  SAVE 3 BIT SHIFT COUNT - 1 WITHOUT
002981,001608: 00,2103           70020                           MASK     CYR                                   #  EDITING CYR.
002982,001609: 00,2104           54121                           TS       MPTEMP                                
002983,001610: 00,2105           10020                           CCS      CYR                                   #  SEE IF LEFT OR RIGHT SHIFT.
002984,001611: 00,2106           12126                           TCF      VSSL                                  #  VECTOR SHIFT LEFT.
002985,001612: 00,2107           00176        OCT176             OCT      176                                   #  USED IN PROCESSED SHIFTS WITH - COUNT.
002986,001613: 
002987,001614: 00,2110           50121        VSSR               INDEX    MPTEMP                                #  (ENTRY FROM SR). PICK UP SHIFTING BIT.
002988,001615: 00,2111           37654                           CAF      BIT14                                 #  MPTEMP CONTAINS THE SHIFT COUNT - 1.
002989,001616: 00,2112           54121                           TS       MPTEMP                                
002990,001617: 00,2113           02054                           TC       VSHRRND                               #  SHIFT X COMPONENT.
002991,001618: 
002992,001619: 00,2114           52141                           DXCH     MPAC                                  #  SWAP X AND Y COMPONENTS.
002993,001620: 00,2115           52144                           DXCH     MPAC       +3                         
002994,001621: 00,2116           52141                           DXCH     MPAC                                  
002995,001622: 00,2117           02054                           TC       VSHRRND                               #  SHIFT Y COMPONENT.
002996,001623: 
002997,001624: 00,2120           52141                           DXCH     MPAC                                  #  SWAP Y AND Z COMPONENTS.
002998,001625: 00,2121           52146                           DXCH     MPAC       +5                         
002999,001626: 00,2122           52141                           DXCH     MPAC                                  
003000,001627: 00,2123           02054                           TC       VSHRRND                               #  SHIFT Z COMPONENT.
003001,001628: 
003002,001629: 00,2124           17405                           TCF      VROTATEX                              #  RESTORE COMPONENTS TO PROPER PLACES.
003003,001630: 
003004,001631:                                                                                                  #  VECTOR SHIFT LEFT - DONE ONE PLACE AT A TIME.
003005,001632: 
003006,001633: 00,2125           54121                 -1        TS       MPTEMP                                #  SHIFTING LOOP.
003007,001634: 
003008,001635: 00,2126           00006        VSSL               EXTEND                                         
003009,001636: 00,2127           30141                           DCA      MPAC                                  
003010,001637: 00,2130           20141                           DAS      MPAC                                  
003011,001638: 00,2131           00006                           EXTEND                                         
003012,001639: 00,2132           12134                           BZF      +2                                    
003013,001640: 00,2133           07006                           TC       OVERFLOW                              
003014,001641: 
003015,001642: 00,2134           00006                           EXTEND                                         
003016,001643: 00,2135           30144                           DCA      MPAC       +3                         
003017,001644: 00,2136           20144                           DAS      MPAC       +3                         
003018,001645: 00,2137           00006                           EXTEND                                         
003019,001646: 00,2140           12142                           BZF      +2                                    
003020,001647: 00,2141           07006                           TC       OVERFLOW                              
003021,001648: 
003022,001649: 00,2142           00006                           EXTEND                                         
003023,001650: 00,2143           30146                           DCA      MPAC       +5                         
003024,001651: 00,2144           20146                           DAS      MPAC       +5                         
003025,001652: 00,2145           00006                           EXTEND                                         
003026,001653: 00,2146           12150                           BZF      +2                                    
003027,001654: 00,2147           07006                           TC       OVERFLOW                              
003028,001655: 
003029,001656: 00,2150           10121                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNTER.
003030,001657: 00,2151           12125                           TCF      VSSL       -1                         
003031,001658: 00,2152           16012                           TCF      DANZIG                                #  EXIT.
003032,001659: 
003033,001660:                                                                                                  #           TSLC - TRIPLE SHIFT LEFT AND COUNT. SHIFTS MPAC LEFT UNTIL GREATER THAN .5 IN MAGNITUDE, LEAVING
003034,001661:                                                                                                  #  THE COMPLEMENT OF THE NUMBER OF SHIFTS REQUIRED IN X.
003035,001662: 
003036,001663: 00,2153           54121        TSLC2              TS       MPTEMP                                #  START BY ZEROING SHIFT COUNT (IN A NOW).
003037,001664: 00,2154           06706                           TC       BRANCH                                #  EXIT WITH NO SHIFTING IF ARGUMENT ZERO.
003038,001665: 00,2155           12157                           TCF      +2                                    
003039,001666: 00,2156           12173                           TCF      ENDTSLC                               #  STORES ZERO SHIFT COUNT IN THIS CASE.
003040,001667: 
003041,001668: 00,2157           07234                           TC       TPAGREE                               #  MAY CAUSE UPSHIFT OF ONE EXTRA PLACE.
003042,001669: 
003043,001670: 00,2160           30140                           CA       MPAC                                  #  BEGIN NORMALIZATION LOOP.
003044,001671: 00,2161           12170                           TCF      TSLCTEST                              
003045,001672: 
003046,001673: 00,2162           24121        TSLCLOOP           INCR     MPTEMP                                #  INCREMENT SHIFT COUNTER.
003047,001674: 00,2163           00006                           EXTEND                                         
003048,001675: 00,2164           30142                           DCA      MPAC       +1                         
003049,001676: 00,2165           20142                           DAS      MPAC       +1                         
003050,001677: 00,2166           60140                           AD       MPAC                                  
003051,001678: 00,2167           26140                           ADS      MPAC                                  
003052,001679: 00,2170           60000        TSLCTEST           DOUBLE                                         #  SEE IF (ANOTHER) SHIFT IS REQUIRED.
003053,001680: 00,2171           54000                           OVSK                                           
003054,001681: 00,2172           12162                           TCF      TSLCLOOP                              #  YES - INCREMENT COUNT AND SHIFT AGAIN.
003055,001682: 
003056,001683: 00,2173           40121        ENDTSLC            CS       MPTEMP                                
003057,001684: 00,2174           16606                           TCF      STORE1                                #  STORE SHIFT COUNT AND RETURN TO DANZIG.
003058,001685: 
003059,001686:                                                                                                  #           THE FOLLOWING ROUTINES PROCESSES THE GENERAL SHIFT INSTRUCTIONS SR, SRR, SL, AND SLR.
003060,001687:                                                                                                  #  THE GIVEN ADDRESS IS DECODED AS FOLLOWS:
003061,001688: 
003062,001689:                                                                                                  #           BITS 1-7    SHIFT COUNT (SUBADDRESS) LESS THAN 125 DECIMAL.
003063,001690:                                                                                                  #           BIT 8       PSEUDO SIGN BIT (DETECTS CHANGE IN SIGN IN INDEXED SHIFTS).
003064,001691:                                                                                                  #           BIT 9       0 FOR LEFT SHIFT, AND 1 FOR RIGHT SHIFT.
003065,001692:                                                                                                  #           BIT 10      1 FOR TERMINAL ROUND ON SCALAR SHIFTS, 0 OTHERWISE.
003066,001693:                                                                                                  #           BITS 11-13  0.
003067,001694: 
003068,001695:                                                                                                  #           BIT 14      1.
003069,001696:                                                                                                  #           BIT 15      0.
003070,001697: 
003071,001698:                                                                                                  #  THE ABOVE ENCODING IS DONE BY THE YUL SYSTEM.
003072,001699: 
003073,001700: 
003074,001701: 
003075,001702: 00,2175           70102        GENSHIFT           MASK     ADDRWD                                #  GET SHIFT COUNT, TESTING FOR ZERO.
003076,001703: 00,2176           10000                           CCS      A                                     #  (ARRIVES WITH C(A) = LOW7).
003077,001704: 00,2177           12205                           TCF      GENSHFT2                              #  IF NON-ZERO, PROCEED WITH DECREMENTED CT
003078,001705: 
003079,001706: 00,2200           37660                           CAF      BIT10                                 #  ZERO SHIFT COUNT. NO SHIFTS NEEDED BUT
003080,001707: 00,2201           70102                           MASK     ADDRWD                                #  WE MIGHT HAVE TO ROUND MPAC ON SLR AND
003081,001708: 00,2202           10000                           CCS      A                                     #  SRR (SCALAR ONLY).
003082,001709: 00,2203           07115                           TC       ROUNDSUB                              
003083,001710: 00,2204           16012                           TCF      DANZIG                                
003084,001711: 
003085,001712: 00,2205           54121        GENSHFT2           TS       MPTEMP                                #  DECREMENTED SHIFT COUNT TO MPTEMP.
003086,001713: 00,2206           37662                           CAF      BIT8                                  #  TEST MEANING OF LOW SEVEN BIT COUNT IN
003087,001714: 00,2207           00006                           EXTEND                                         #  MPTEMP NOW.
003088,001715: 00,2210           70102                           MP       ADDRWD                                
003089,001716: 00,2211           76176                           MASK     LOW2                                  #  JUMPS ON SHIFT DIRECTION (BIT8) AND
003090,001717: 00,2212           50000                           INDEX    A                                     
003091,001718: 00,2213           12214                           TCF      +1                                    #  ORIGINAL SHIFT DIRECTION (BIT 9).
003092,001719: 00,2214           12313                           TCF      RIGHT-                                #  NEGATIVE SHIFT COUNT FOR SL OR SLR.
003093,001720: 00,2215           12322                           TCF      LEFT                                  #  SL OR SLR.
003094,001721: 00,2216           12317                           TCF      LEFT-                                 #  NEGATIVE SHIFT COUNT WITH SR OR SRR.
003095,001722: 
003096,001723:                                                                                                  #           GENERAL SHIFT RIGHT.
003097,001724: 
003098,001725: 00,2217           10147        RIGHT              CCS      MODE                                  #  SEE IF VECTOR OR SCALAR.
003099,001726: 00,2220           12260                           TCF      GENSCR                                
003100,001727: 00,2221           12260                           TCF      GENSCR                                
003101,001728: 
003102,001729: 00,2222           30121                           CA       MPTEMP                                #  SEE IF SHIFT COUNT LESS THAN 14D.
003103,001730: 00,2223           63657        VRIGHT2            AD       NEG12                                 
003104,001731: 00,2224           00006                           EXTEND                                         
003105,001732: 00,2225           62110                           BZMF     VSSR                                  #  IF SO, BRANCH AND SHIFT IMMEDIATELY.
003106,001733: 
003107,001734: 00,2226           67677                           AD       NEGONE                                #  IF NOT, REDUCE MPTEMP BY A TOTAL OF 14,
003108,001735: 00,2227           54121                           TS       MPTEMP                                #  AND DO A SHIFT RIGHT AND ROUND BY 14.
003109,001736: 00,2230           37675                           CAF      ZERO                                  #  THE ROUND AT THIS STAGE MAY INTRODUCE A
003110,001737: 00,2231           54001                           TS       L                                     #  ONE BIT ERROR IN A SHIFT RIGHT 15D.
003111,001738: 00,2232           56140                           XCH      MPAC                                  
003112,001739: 00,2233           56141                           XCH      MPAC       +1                         
003113,001740: 00,2234           02253                           TC       SETROUND                              #  X COMPONENT NOW SHIFTED, SO MAKE UP THE
003114,001741: 00,2235           20141                           DAS      MPAC                                  #  ROUNDING QUANTITY (0 IN A AND 0 OR +-1
003115,001742:                                                                                                  #  IN L).
003116,001743: 00,2236           56143                           XCH      MPAC       +3                         #  REPEAT THE ABOVE PROCESS FOR Y AND Z.
003117,001744: 00,2237           56144                           XCH      MPAC       +4                         
003118,001745: 00,2240           02253                           TC       SETROUND                              
003119,001746: 00,2241           20144                           DAS      MPAC       +3                         #  NO OVERFLOW ON THESE ADDS.
003120,001747: 
003121,001748: 00,2242           56145                           XCH      MPAC       +5                         
003122,001749: 00,2243           56146                           XCH      MPAC       +6                         
003123,001750: 00,2244           02253                           TC       SETROUND                              
003124,001751: 00,2245           20146                           DAS      MPAC       +5                         
003125,001752: 
003126,001753: 00,2246           10121                           CCS      MPTEMP                                #  SEE IF DONE, DOING FINAL DECREMENT.
003127,001754: 00,2247           54121                           TS       MPTEMP                                
003128,001755: 00,2250           12223                           TCF      VRIGHT2                               
003129,001756: 00,2251           04604        BIASLO             DEC      .2974      B-1                        #  SQRT CONSTANT
003130,001757: 
003131,001758: 00,2252           16012                           TCF      DANZIG                                
003132,001759: 
003133,001760: 
003134,001761: 
003135,001762: 00,2253           60000        SETROUND           DOUBLE                                         #  MAKES UP ROUNDING QUANTITY FROM ARRIVING
003136,001763: 00,2254           54142                           TS       MPAC       +2                         #  C(A). L IS ZERO INITIALLY.
003137,001764: 00,2255           37675                           CAF      ZERO                                  
003138,001765: 00,2256           56001                           XCH      L                                     
003139,001766: 00,2257           00002                           TC       Q                                     #  RETURN AND DO THE DAS, RESETTING L TO 0.
003140,001767: 
003141,001768:                                                                                                  #           PROCESS SR AND SRR FOR SCALARS.
003142,001769: 
003143,001770: 00,2260           30121        GENSCR             CA       MPTEMP                                #  SEE IF THE ORIGINAL SHIFT COUNT WAS LESS
003144,001771: 00,2261           63657                 +1        AD       NEG12                                 #  THAN 14D.
003145,001772: 00,2262           00006                           EXTEND                                         
003146,001773: 00,2263           62303                           BZMF     DOSSHFT                               #  DO THE SHIFT IMMEDIATELY IF SO.
003147,001774: 
003148,001775: 00,2264           67677                 +4        AD       NEGONE                                #  IF NOT, DECREMENT SHIFT COUNT BY 14D AND
003149,001776: 00,2265           54121                           TS       MPTEMP                                #  SHIFT MPAC RIGHT 14 PLACES.
003150,001777: 00,2266           37675                           CAF      ZERO                                  
003151,001778: 00,2267           56140                           XCH      MPAC                                  
003152,001779: 00,2270           56141                           XCH      MPAC       +1                         
003153,001780: 00,2271           54142                           TS       MPAC       +2                         
003154,001781: 00,2272           10121                           CCS      MPTEMP                                #  SEE IF FINISHED, DO FINAL DECREMENT.
003155,001782: 00,2273           54121                           TS       MPTEMP                                
003156,001783: 00,2274           02261                           TC       GENSCR     +1                         
003157,001784: 00,2275           22650        SLOPEHI            DEC      .5884                                 #  SQRT CONSTANT.
003158,001785: 00,2276           37660                           CAF      BIT10                                 #  FINISHED WITH SHIFT. SEE IF ROUND
003159,001786: 00,2277           70102                           MASK     ADDRWD                                #  WANTED.
003160,001787: 00,2300           10000                           CCS      A                                     
003161,001788: 00,2301           07115                           TC       ROUNDSUB                              
003162,001789: 00,2302           16012                           TCF      DANZIG                                #  DO SO AND/OR EXIT.
003163,001790: 
003164,001791: 00,2303           50121        DOSSHFT            INDEX    MPTEMP                                #  PICK UP SHIFTING BIT.
003165,001792: 00,2304           37654                           CAF      BIT14                                 
003166,001793: 00,2305           54121                           TS       MPTEMP                                
003167,001794: 00,2306           37660                           CAF      BIT10                                 #  SEE IF TERMINAL ROUND DESIRED.
003168,001795: 00,2307           70102                           MASK     ADDRWD                                
003169,001796: 00,2310           10000                           CCS      A                                     
003170,001797: 00,2311           12012                           TCF      RIGHTR                                #  YES.
003171,001798: 00,2312           12014                           TCF      MPACSHR                               #  JUST SHIFT RIGHT.
003172,001799: 
003173,001800:                                                                                                  #           PROCESS THE RIGHT- (SL(R) WITH A NEGATIVE COUNT), LEFT-, AND LEFT OPTIONS.
003174,001801: 
003175,001802: 00,2313           40121        RIGHT-             CS       MPTEMP                                #  GET ABSOLUTE VALUE - 1 OF SHIFT COUNT
003176,001803: 00,2314           62107                           AD       OCT176                                #  UNDERSTANDING THAT BIT8 (PSEUDO-SIGN)
003177,001804: 00,2315           54121                           TS       MPTEMP                                #  WAS 1 INITIALLY.
003178,001805: 00,2316           12217                           TCF      RIGHT                                 #  DO NORMAL SHIFT RIGHT.
003179,001806: 
003180,001807: 00,2317           40121        LEFT-              CS       MPTEMP                                #  SAME PROLOGUE TO LEFT FOR INDEXED RIGHT
003181,001808: 00,2320           62107                           AD       OCT176                                #  SHIFTS WHOSE NET SHIFT COUNT IS NEGATIVE
003182,001809: 00,2321           54121                           TS       MPTEMP                                
003183,001810: 
003184,001811: 00,2322           10147        LEFT               CCS      MODE                                  #  SINCE LEFT SHIFTING IS SONE ONE PLACE AT
003185,001812: 00,2323           12326                           TCF      GENSCL                                #  A TIME, NO COMPARISON WITH 14 NEED BE
003186,001813: 00,2324           12326                           TCF      GENSCL                                #  DONE. FOR SCALARS, SEE IF TERMINAL ROUND
003187,001814: 00,2325           12126                           TCF      VSSL                                  #  DESIRED. FOR VECTORS, SHIFT IMMEDIATELY.
003188,001815: 
003189,001816: 00,2326           37664        GENSCL             CAF      BIT6                                  #  PUT ROUNDING BIT (BIT10 OF ADDRWD) INTO
003190,001817: 00,2327           00006                           EXTEND                                         #  BIT 15 OF CYR WHERE THE ROUNDING BIT OF
003191,001818: 00,2330           70102                           MP       ADDRWD                                #  A SHORT SHIFT LEFT WOULD BE.
003192,001819: 00,2331           54020                           TS       CYR                                   
003193,001820: 00,2332           12064                           TCF      TSSL       +2                         #  DO THE SHIFT.
003194,001821: 
003195,001822:                                                                                                  #           SCALAR DIVISION INSTRUCTIONS, DDV AND BDDV, ARE EXECUTED HERE. AT THIS POINT, THE DIVIDEND IS IN MPAC
003196,001823:                                                                                                  #  AND THE DIVISOR IN BUF.
003197,001824: 
003198,001825: 00,2333           47671        DDV/BDDV           CS       ONE                                   #  INITIALIZATION.
003199,001826: 00,2334           54122                           TS       DVSIGN                                #  +-1 FOR POSITIVE QUOTIENT - -0 FOR NEG.
003200,001827: 00,2335           54123                           TS       DVNORMCT                              #  DIVIDEND NORMALIZATION COUNT.
003201,001828: 00,2336           54124                           TS       MAXDVSW                               #  NEAR-ONE DIVIDE FLAG.
003202,001829: 
003203,001830: 00,2337           10114                           CCS      BUF                                   #  FORCE BUF POSITIVE WITH THE MAJOR PART
003204,001831: 00,2340           12367                           TCF      BUF+                                  #  NON-ZERO.
003205,001832: 00,2341           12343                           TCF      +2                                    
003206,001833: 00,2342           12363                           TCF      BUF-                                  
003207,001834: 
003208,001835: 00,2343           56115                           XCH      BUF        +1                         #  SHIFT DIVIDEND AND DIVISOR LEFT 14.
003209,001836: 00,2344           56114                           XCH      BUF                                   
003210,001837: 00,2345           56141                           XCH      MPAC       +1                         
003211,001838: 00,2346           56140                           XCH      MPAC                                  
003212,001839: 00,2347           00006                           EXTEND                                         #  CHECK FOR OVERFLOW.
003213,001840: 00,2350           12352                           BZF      +2                                    
003214,001841: 00,2351           12356                           TCF      DVOVF                                 
003215,001842: 
003216,001843: 00,2352           10114                           CCS      BUF                                   #  TRY AGAIN ON FORMER MINOR PART.
003217,001844: 00,2353           12367                           TCF      BUF+                                  
003218,001845: 00,2354           12356                           TCF      DVOVF                                 #  OVERFLOW ON ZERO DIVISOR.
003219,001846: 00,2355           12363                           TCF      BUF-                                  
003220,001847: 
003221,001848: 00,2356           37651        DVOVF              CAF      POSMAX                                #  ON DIVISION OVERFLOW OF ANY SORT, SET
003222,001849: 00,2357           54140                           TS       MPAC                                  #  SET DP MPAC TO +-POSMAX.
003223,001850: 00,2360           02553                           TC       FINALDV    +3                         
003224,001851: 00,2361           37671                           CAF      ONE                                   #  SET OVERFLOW INDICATOR AND EXIT.
003225,001852: 00,2362           17060                           TCF      SETOVF                                
003226,001853: 
003227,001854: 00,2363           00006        BUF-               EXTEND                                         #  IF BUF IS NEGATIVE, COMPLEMENT IT AND
003228,001855: 00,2364           40115                           DCS      BUF                                   #  MAINTAIN DVSIGN FOR FINAL QUOTIENT SIGN.
003229,001856: 00,2365           52115                           DXCH     BUF                                   
003230,001857: 00,2366           24122                           INCR     DVSIGN                                #  NOW -0.
003231,001858: 
003232,001859: 00,2367           10140        BUF+               CCS      MPAC                                  #  FORCE MPAC POSITIVE, CHECKING FOR ZERO
003233,001860: 00,2370           12404                           TCF      MPAC+                                 #  DIVIDEND IN THE PROCESS.
003234,001861: 00,2371           12373                           TCF      +2                                    
003235,001862: 00,2372           12400                           TCF      MPAC-                                 
003236,001863: 00,2373           10141                           CCS      MPAC       +1                         
003237,001864: 00,2374           12404                           TCF      MPAC+                                 
003238,001865: 00,2375           16012                           TCF      DANZIG                                #  EXIT IMMEDIATELY ON ZERO DIVIDEND.
003239,001866: 00,2376           12400                           TCF      MPAC-                                 
003240,001867: 00,2377           16012                           TCF      DANZIG                                
003241,001868: 
003242,001869: 00,2400           00006        MPAC-              EXTEND                                         #  FORCE MPAC POSITIVE AS BUF IN BUF-.
003243,001870: 00,2401           40141                           DCS      MPAC                                  
003244,001871: 00,2402           52141                           DXCH     MPAC                                  
003245,001872: 
003246,001873: 00,2403           24122                           INCR     DVSIGN                                #  NOW +1 OR -0.
003247,001874: 
003248,001875: 00,2404           40140        MPAC+              CS       MPAC                                  #  CHECK FOR DIVISION OVERFLOW. IF THE
003249,001876: 00,2405           67677                           AD       NEGONE                                #  MAJOR PART OF THE DIVIDEND IS LESS THAN
003250,001877: 00,2406           60114                           AD       BUF                                   #  THE MAJOR PART OF THE DIVISOR BY AT
003251,001878: 00,2407           10000                           CCS      A                                     #  LEAST TWO, WE CAN PROCEED IMMEDIATELY
003252,001879: 00,2410           12452                           TCF      DVNORM                                #  WITHOUT NORMALIZATION PRODUCING A DVMAX.
003253,001880: 00,2411           60001        -1/2+2             OCT      60001                                 #  USED IN SQRTSUB.
003254,001881: 
003255,001882: 00,2412           12413                           TCF      +1                                    #  IF THE ABOVE DOES NOT HOLD, FORCE SIGN
003256,001883: 00,2413           37654                           CAF      HALF                                  #  AGREEMENT IN NUMERATOR AND DENOMINATOR
003257,001884: 00,2414           60000                           DOUBLE                                         #  TO FACILITATE OVERFLOW AND NEAR-ONE
003258,001885: 00,2415           60141                           AD       MPAC       +1                         #  CHECKING.
003259,001886: 00,2416           54141                           TS       MPAC       +1                         
003260,001887: 00,2417           37675                           CAF      ZERO                                  
003261,001888: 00,2420           67651                           AD       POSMAX                                
003262,001889: 00,2421           26140                           ADS      MPAC                                  
003263,001890: 
003264,001891: 00,2422           37654                           CAF      HALF                                  #  SAME FOR BUF.
003265,001892: 00,2423           60000                           DOUBLE                                         
003266,001893: 00,2424           60115                           AD       BUF        +1                         
003267,001894: 00,2425           54115                           TS       BUF        +1                         
003268,001895: 00,2426           37675                           CAF      ZERO                                  
003269,001896: 00,2427           67651                           AD       POSMAX                                
003270,001897: 00,2430           26114                           ADS      BUF                                   
003271,001898: 
003272,001899: 00,2431           40140                           CS       MPAC                                  #  CHECK MAGNITUDE OF SIGN-CORRECTED
003273,001900: 00,2432           60114                           AD       BUF                                   #  OPERANDS.
003274,001901: 00,2433           10000                           CCS      A                                     
003275,001902: 00,2434           12452                           TCF      DVNORM                                #  DIVIDE OK - WILL NOT BECOME MAXDV CASE.
003276,001903: 00,2435           00117        LBUF2              ADRES    BUF2                                  
003277,001904: 00,2436           12356                           TCF      DVOVF                                 #  DIVISOR NOT LESS THAN DIVIDEND - OVF.
003278,001905: 
003279,001906: 00,2437           54124                           TS       MAXDVSW                               #  IF THE MAJOR PARTS OF THE DIVIDEND AND
003280,001907: 00,2440           40141                           CS       MPAC       +1                         #  DIVISOR ARE EQUAL, A SPECIAL APPROXIMA-
003281,001908: 00,2441           60115                           AD       BUF        +1                         #  TION IS USED (PROVIDED THE DIVISION IS
003282,001909: 00,2442           00006                           EXTEND                                         #  POSSIBLE, OF COURSE).
003283,001910: 00,2443           62356                           BZMF     DVOVF                                 
003284,001911: 00,2444           12452                           TCF      DVNORM                                #  IF NO OVERFLOW.
003285,001912: 
003286,001913: 00,2445           00006        BUFNORM            EXTEND                                         #  ADD -1 TO AUGMENT SHIFT COUNT AND SHIFT
003287,001914: 00,2446           24123                           AUG      DVNORMCT                              #  LEFT ONE PLACE.
003288,001915: 00,2447           00006                           EXTEND                                         
003289,001916: 00,2450           30115                           DCA      BUF                                   
003290,001917: 00,2451           20115                           DAS      BUF                                   
003291,001918: 
003292,001919: 00,2452           30114        DVNORM             CA       BUF                                   #  SEE IF DIVISOR NORMALIZED YET.
003293,001920: 00,2453           60000                           DOUBLE                                         
003294,001921: 00,2454           54000                           OVSK                                           
003295,001922: 00,2455           12445                           TCF      BUFNORM                               #  NO - SHIFT LEFT ONE AND TRY AGAIN.
003296,001923: 
003297,001924: 00,2456           52141                           DXCH     MPAC                                  #  CALL DIVIDEND NORMALIZATION SEQUENCE
003298,001925: 00,2457           50123                           INDEX    DVNORMCT                              #  PRIOR TO DOING THE DIVIDE.
003299,001926: 00,2460           02510                           TC       MAXTEST                               
003300,001927: 
003301,001928: 00,2461           54142                           TS       MPAC       +2                         #  RETURNS WITH DIVISION DONE AND C(A) = 0.
003302,001929: 00,2462           16012                           TCF      DANZIG                                
003303,001930: 
003304,001931:                                                                                                  #           THE FOLLOWING ARE PROLOGUES TO SHIFT THE DIVIDEND ARRIVING IN A AND L BEFORE THE DIVIDE.
003305,001932: 
003306,001933: 00,2463           22021                 -21D      LXCH     SR                                    #  SPECIAL PROLOGUE FOR UNIT WHEN THE
003307,001934: 00,2464           00006                           EXTEND                                         #  LENGTH OF THE ARGUMENT WAS NOT LESS THAN
003308,001935: 00,2465           77654                           MP       HALF                                  #  .5. IN THIS CASE, EACH COMPONENT MUST BE
003309,001936: 00,2466           56001                           XCH      L                                     #  SHIFTED RIGHT ONE TO PRODUCE A HALF-UNIT
003310,001937: 00,2467           60021                           AD       SR                                    #  VECTOR.
003311,001938: 00,2470           56001                           XCH      L                                     
003312,001939: 00,2471           12514                           TCF      GENDDV     +1                         #  WITH DP DIVIDEND IN A,L.
003313,001940: 
003314,001941: 00,2472           20001                           DDOUBL                                         #  PROLOGUE WHICH NORMALIZES THE DIVIDEND
003315,001942: 00,2473           20001                           DDOUBL                                         #  WHEN IT IS KNOWN THAT NO DIVISION
003316,001943: 00,2474           20001                           DDOUBL                                         #  OVERFLOW WILL OCCUR.
003317,001944: 00,2475           20001                           DDOUBL                                         
003318,001945: 00,2476           20001                           DDOUBL                                         
003319,001946: 00,2477           20001                           DDOUBL                                         
003320,001947: 00,2500           20001                           DDOUBL                                         
003321,001948: 00,2501           20001                           DDOUBL                                         
003322,001949: 00,2502           20001                           DDOUBL                                         
003323,001950: 00,2503           20001                           DDOUBL                                         
003324,001951: 00,2504           20001                           DDOUBL                                         
003325,001952: 00,2505           20001                           DDOUBL                                         
003326,001953: 00,2506           20001                           DDOUBL                                         
003327,001954: 00,2507           52141                           DXCH     MPAC                                  
003328,001955: 
003329,001956: 00,2510           10124        MAXTEST            CCS      MAXDVSW                               #  0 IF MAJORS MIGHT BE =, -1 OTHERWISE.
003330,001957: 00,2511           06552        BIASHI             DEC      .4192      B-1                        #  SQRT CONSTANTS
003331,001958: 
003332,001959: 00,2512           12565                           TCF      MAXDV                                 #  CHECK TO SEE IF THEY ARE NOW EQUAL.
003333,001960: 
003334,001961:                                                                                                  #           THE FOLLOWING IS A GENERAL PURPOSE DOUBLE PRECISION DIVISION ROUTINE. IT DIVIDES MPAC BY BUF AND LEAVES
003335,001962:                                                                                                  #  THE RESULT IN MPAC. THE FOLLOWING CONDITIONS MUST BE SATISFIED:
003336,001963: 
003337,001964:                                                                                                  #           1.  THE DIVISOR (BUF) MUST BE POSITIVE AND NOT LESS THAN .5.
003338,001965: 
003339,001966:                                                                                                  #           2.  THE DIVIDEND (MPAC) MUST BE POSITIVE WITH THE MAJOR PART OF MPAC STRICTLY LESS THAN THAT OF BUF
003340,001967:                                                                                                  #  (A SPECIAL APPROXIMATION, MAXDV, IS USED WHEN THE MAJOR PARTS ARE EQUAL).
003341,001968: 
003342,001969:                                                                                                  #           UNDERSTANDING THAT A/B = Q + S(R/B) WHERE S = 2(-14) AND Q AND R ARE QUOTIENT AND REMAINDER, RESPEC-
003343,001970:                                                                                                  #  TIVELY, THE FOLLOWING APPROXIMATION IS OBTAINED BY MULTIPLYING ABOVE AND BELOW BY C - SD AND NEGLECTING TERMS OF
003344,001971:                                                                                                  #  ORDER S-SQUARED (POSSIBLY INTRODUCING ERROR INTO THE LOW TWO BITS OF THE RESULT). SIGN AGREEMENT IS UNNECESSARY.
003345,001972: 
003346,001973:                                                                                                  #           A + SB .      (R - QD)                                             A + SB
003347,001974:                                                                                                  #           ------ = Q + S(------) WHERE Q AND R ARE QUOTIENT AND REMAINDER OF ------ RESPECTIVELY.
003348,001975:                                                                                                  #           C + SD        (  C   )                                                C
003349,001976: 
003350,001977: 
003351,001978: 00,2513           52141        GENDDV             DXCH     MPAC                                  #  WE NEED A AND B ONLY FOR FIRST DV.
003352,001979: 00,2514           00006                 +1        EXTEND                                         #  (SPECIAL UNIT PROLOGUE ENTERS HERE).
003353,001980: 00,2515           10114                           DV       BUF                                   #  A NOW CONTAINS Q AND L, R.
003354,001981: 00,2516           52141                           DXCH     MPAC                                  
003355,001982: 
003356,001983: 00,2517           40140                           CS       MPAC                                  #  FORM DIVIDEND FOR MINOR PART OF RESULT.
003357,001984: 00,2520           00006                           EXTEND                                         
003358,001985: 00,2521           70115                           MP       BUF        +1                         
003359,001986: 00,2522           60141                           AD       MPAC       +1                         #  OVERFLOW AT THIS POINT IS POSITIVE SINCE
003360,001987: 00,2523           54000                           OVSK                                           #  R IS POSITIVE IN EVERY CASE.
003361,001988: 00,2524           12531                           TCF      +5                                    
003362,001989: 
003363,001990: 00,2525           00006                           EXTEND                                         #  OVERFLOW CAN BE REMOVED BY SUBTRACTING C
003364,001991: 00,2526           60114                           SU       BUF                                   #  (BUF) ONCE SINCE R IS ALWAYS LESS THAN C
003365,001992: 00,2527           24140                           INCR     MPAC                                  #  IN THIS CASE. INCR COMPENSATES SUBTRACT.
003366,001993: 00,2530           12533                           TCF      +DOWN                                 #  (SINCE C(A) IS STILL POSITIVE).
003367,001994: 
003368,001995: 00,2531           00006                 +5        EXTEND                                         #  C(A) CAN BE MADE LESS THAN C IN MAGNI-
003369,001996: 00,2532           62543                           BZMF     -UP                                   #  TUDE BY DIMINISHING IT BY C (SINCE C IS
003370,001997:                                                                                                  #  NOT LESS THAN .5) UNLESS C(A) = 0.
003371,001998: 
003372,001999: 00,2533           00006        +DOWN              EXTEND                                         
003373,002000: 00,2534           60114                           SU       BUF                                   #  IF POSITIVE, REDUCE ONLY IF NECESSARY
003374,002001: 00,2535           00006                           EXTEND                                         #  SINCE THE COMPENSATING INCR MIGHT CAUSE
003375,002002: 00,2536           12541                           BZF      +3                                    #  OVERFLOW.
003376,002003: 00,2537           00006                           EXTEND                                         #  DONT SUBTRACT UNLESS RESULT IS POSITIVE
003377,002004: 00,2540           62547                           BZMF     ENDMAXDV                              #  OR ZERO.
003378,002005: 
003379,002006: 00,2541           24140                 +3        INCR     MPAC                                  #  KEEP SUBTRACT HERE AND COMPENSATE.
003380,002007: 00,2542           12550                           TCF      FINALDV                               
003381,002008: 
003382,002009: 00,2543           00006        -UP                EXTEND                                         #  IF ZERO, SET MINOR PART OF RESULT TO
003383,002010: 00,2544           12553                           BZF      FINALDV    +3                         #  ZERO.
003384,002011: 
003385,002012: 00,2545           00006                           EXTEND                                         #  IF NEGATIVE, ADD C TO A, SUBTRACTING ONE
003386,002013: 00,2546           26140                           DIM      MPAC                                  #  TO COMPENSATE. DIM IS OK HERE SINCE THE
003387,002014: 00,2547           60114        ENDMAXDV           AD       BUF                                   #  MAJOR PART NEVER GOES NEGATIVE.
003388,002015: 
003389,002016: 00,2550           22007        FINALDV            ZL                                             #  DO DV TO OBTAIN MINOR PART OF RESULT.
003390,002017: 00,2551           00006                           EXTEND                                         
003391,002018: 00,2552           10114                           DV       BUF                                   
003392,002019: 00,2553           54141                 +3        TS       MPAC       +1                         
003393,002020: 
003394,002021: 00,2554           10122                           CCS      DVSIGN                                #  LEAVE RESULT POSITIVE UNLESS C(DVSIGN)=
003395,002022: 00,2555           00002                           TC       Q                                     #  -0.
003396,002023: 00,2556           00002                           TC       Q                                     
003397,002024: 00,2557           00002                           TC       Q                                     
003398,002025: 
003399,002026: 00,2560           00006                           EXTEND                                         
003400,002027: 00,2561           40141                           DCS      MPAC                                  
003401,002028: 00,2562           52141                           DXCH     MPAC                                  
003402,002029: 00,2563           37675                           CAF      ZERO                                  #  SO WE ALWAYS RETURN WITH C(A) = 0.
003403,002030: 00,2564           00002                           TC       Q                                     
003404,002031: 
003405,002032:                                                                                                  #           IF THE MAJOR PARTS OF THE DIVISOR AND DIVIDEND ARE EQUAL, BUT THE MINOR PARTS ARE SUCH THAT THE
003406,002033:                                                                                                  #  DIVIDEND IS STRICTLY LESS THAN THE DIVISOR IN MAGNITUDE, THE FOLLOWING APPROXIMATION IS USED. THE ASSUMPTIONS
003407,002034:                                                                                                  #  ARE THE SAME AS THE GENERAL ROUTINE WITH THE ADDITION THAT SIGN AGREEMENT IS NECESSARY (B, C, & D POSITIVE).
003408,002035: 
003409,002036:                                                                                                  #                  C + SB .          (C + B - D)
003410,002037:                                                                                                  #                  ------ = 37777 + S(---------)
003411,002038:                                                                                                  #                  C + SD            (    C    )
003412,002039: 
003413,002040:                                                                                                  #           THE DIVISION MAY BE PERFORMED IMMEDIATELY SINCE B IS STRICTLY LESS THAN D AND C IS NOT LESS THAN .5.
003414,002041: 
003415,002042: 
003416,002043: 
003417,002044: 00,2565           40140        MAXDV              CS       MPAC                                  #  SEE IF MAXDV CASE STILL HOLDS AFTER
003418,002045: 00,2566           60114                           AD       BUF                                   #  NORMALIZATION.
003419,002046: 00,2567           00006                           EXTEND                                         
003420,002047: 00,2570           12572                           BZF      +2                                    
003421,002048: 00,2571           12513                           TCF      GENDDV                                #  MPAC NOW LESS THAN BUF - DIVIDE AS USUAL
003422,002049: 
003423,002050: 00,2572           37651                 +2        CAF      POSMAX                                #  SET MAJOR PART OF RESULT.
003424,002051: 00,2573           54140                           TS       MPAC                                  
003425,002052: 
003426,002053: 00,2574           40115                           CS       BUF        +1                         #  FORM DIVIDEND OF MINOR PART OF RESULT.
003427,002054: 00,2575           60141                           AD       MPAC       +1                         
003428,002055: 00,2576           12547                           TCF      ENDMAXDV                              #  GO ADD C AND DO DIVIDE, ATTACHING SIGN
003429,002056:                                                                                                  #  BEFORE EXITING.
003430,002057: 
003431,002058:                                                                                                  #           VECTOR DIVIDED BY SCALAR, V/SC, IS EXECUTED HERE. THE VECTOR IS NOW IN MPAC WITH SCALAR IN BUF.
003432,002059: 
003433,002060: 00,2577           47671        V/SC2              CS       ONE                                   #  INITIALIZE DIVIDEND NORMALIZATION COUNT
003434,002061: 00,2600           54123                           TS       DVNORMCT                              #  AND DIVISION SIGN REGISTER.
003435,002062: 00,2601           54113                           TS       VBUF       +5                         
003436,002063: 
003437,002064: 00,2602           10114                           CCS      BUF                                   #  FORCE DIVISOR POSITIVE WITH MAJOR PART
003438,002065: 00,2603           12640                           TCF      /BUF+                                 #  NON-ZERO (IF POSSIBLE).
003439,002066: 00,2604           12606                           TCF      +2                                    
003440,002067: 00,2605           12634                           TCF      /BUF-                                 
003441,002068: 
003442,002069: 00,2606           56115                           XCH      BUF        +1                         #  SHIFT VECTOR AND SCALAR LEFT 14.
003443,002070: 00,2607           56114                           XCH      BUF                                   
003444,002071: 00,2610           56141                           XCH      MPAC       +1                         
003445,002072: 00,2611           56140                           XCH      MPAC                                  
003446,002073: 00,2612           00006                           EXTEND                                         #  CHECK FOR OVERFLOW IN EACH CASE.
003447,002074: 00,2613           12615                           BZF      +2                                    
003448,002075: 00,2614           12356                           TCF      DVOVF                                 
003449,002076: 
003450,002077: 00,2615           56144                           XCH      MPAC       +4                         
003451,002078: 00,2616           56143                           XCH      MPAC       +3                         
003452,002079: 00,2617           00006                           EXTEND                                         
003453,002080: 00,2620           12622                           BZF      +2                                    
003454,002081: 00,2621           12356                           TCF      DVOVF                                 
003455,002082: 
003456,002083: 00,2622           56146                           XCH      MPAC       +6                         
003457,002084: 00,2623           56145                           XCH      MPAC       +5                         
003458,002085: 00,2624           00006                           EXTEND                                         
003459,002086: 00,2625           12627                           BZF      +2                                    
003460,002087: 00,2626           12356                           TCF      DVOVF                                 
003461,002088: 
003462,002089: 00,2627           10114                           CCS      BUF                                   
003463,002090: 00,2630           12640                           TCF      /BUF+                                 
003464,002091: 00,2631           12356                           TCF      DVOVF                                 #  ZERO DIVISOR - OVERFLOW.
003465,002092: 00,2632           12634                           TCF      /BUF-                                 
003466,002093: 00,2633           12356                           TCF      DVOVF                                 
003467,002094: 
003468,002095: 00,2634           00006        /BUF-              EXTEND                                         #  ON NEGATIVE, COMPLEMENT BUF AND MAINTAIN
003469,002096: 00,2635           40115                           DCS      BUF                                   #  DVSIGN IN VBUF +5.
003470,002097: 00,2636           52115                           DXCH     BUF                                   
003471,002098: 00,2637           24113                           INCR     VBUF       +5                         
003472,002099: 
003473,002100: 00,2640           37654        /BUF+              CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVISOR.
003474,002101: 00,2641           60000                           DOUBLE                                         
003475,002102: 00,2642           60115                           AD       BUF        +1                         
003476,002103: 00,2643           54115                           TS       BUF        +1                         
003477,002104: 00,2644           37675                           CAF      ZERO                                  
003478,002105: 00,2645           67651                           AD       POSMAX                                
003479,002106: 00,2646           26114                           ADS      BUF                                   
003480,002107: 
003481,002108: 00,2647           56117                           XCH      BUF2                                  #  LEAVE ABS(ORIGINAL DIVISOR) IN BUF2 FOR
003482,002109: 00,2650           30115                           CA       BUF        +1                         #  OVERFLOW TESTING.
003483,002110: 00,2651           54120                           TS       BUF2       +1                         
003484,002111: 00,2652           12660                           TCF      /NORM                                 #  NORMALIZE DIVISOR IN BUF.
003485,002112: 
003486,002113: 00,2653           00006        /NORM2             EXTEND                                         #  IF LESS THAN .5, AUGMENT DVNORMCT AND
003487,002114: 00,2654           24123                           AUG      DVNORMCT                              #  DOUBLE DIVISOR.
003488,002115: 00,2655           00006                           EXTEND                                         
003489,002116: 00,2656           30115                           DCA      BUF                                   
003490,002117: 00,2657           20115                           DAS      BUF                                   
003491,002118: 
003492,002119: 00,2660           30114        /NORM              CA       BUF                                   #  SEE IF DIVISOR NORMALIZED.
003493,002120: 00,2661           60000                           DOUBLE                                         
003494,002121: 00,2662           54000                           OVSK                                           
003495,002122: 00,2663           12653                           TCF      /NORM2                                #  DOUBLE AND TRY AGAIN IF NOT.
003496,002123: 
003497,002124: 00,2664           02676                           TC       V/SCDV                                #  DO X COMPONENT DIVIDE.
003498,002125: 00,2665           52144                           DXCH     MPAC       +3                         #  SUPPLY ARGUMENTS IN USUAL SEQUENCE.
003499,002126: 00,2666           52141                           DXCH     MPAC                                  
003500,002127: 00,2667           52144                           DXCH     MPAC       +3                         
003501,002128: 
003502,002129: 00,2670           02676                           TC       V/SCDV                                #  Y COMPONENT.
003503,002130: 00,2671           52146                           DXCH     MPAC       +5                         
003504,002131: 00,2672           52141                           DXCH     MPAC                                  
003505,002132: 00,2673           52146                           DXCH     MPAC       +5                         
003506,002133: 
003507,002134: 00,2674           02676                           TC       V/SCDV                                #  Z COMPONENT.
003508,002135: 00,2675           17405                           TCF      VROTATEX                              #  GO RE-ARRANGE COMPONENTS BEFORE EXIT.
003509,002136: 
003510,002137:                                                                                                  #           SUBROUTINE USED BY V/SC TO DIVIDE VECTOR COMPONENT IN MPAC,+1 BY THE SCALAR GIVEN IN BUF.
003511,002138: 
003512,002139: 00,2676           30113        V/SCDV             CA       VBUF       +5                         #  REFLECTS SIGN OF SCALAR.
003513,002140: 00,2677           54122                           TS       DVSIGN                                
003514,002141: 
003515,002142: 00,2700           10140                           CCS      MPAC                                  #  FORCE MPAC POSITIVE, EXITING ON ZERO.
003516,002143: 00,2701           12715                           TCF      /MPAC+                                
003517,002144: 00,2702           12704                           TCF      +2                                    
003518,002145: 00,2703           12711                           TCF      /MPAC-                                
003519,002146: 
003520,002147: 00,2704           10141                           CCS      MPAC       +1                         
003521,002148: 00,2705           12715                           TCF      /MPAC+                                
003522,002149: 00,2706           00002                           TC       Q                                     
003523,002150: 00,2707           12711                           TCF      /MPAC-                                
003524,002151: 00,2710           00002                           TC       Q                                     
003525,002152: 
003526,002153: 00,2711           00006        /MPAC-             EXTEND                                         #  USUAL COMPLEMENTING AND SETTING OF SIGN.
003527,002154: 00,2712           40141                           DCS      MPAC                                  
003528,002155: 00,2713           52141                           DXCH     MPAC                                  
003529,002156: 00,2714           24122                           INCR     DVSIGN                                
003530,002157: 
003531,002158: 00,2715           47671        /MPAC+             CS       ONE                                   #  INITIALIZE NEAR-ONE SWITCH.
003532,002159: 00,2716           54124                           TS       MAXDVSW                               
003533,002160: 
003534,002161: 00,2717           40140                           CS       MPAC                                  #  CHECK POSSIBLE OVERFLOW.
003535,002162: 00,2720           60117                           AD       BUF2                                  #  UNNORMALIZED INPUT DIVISOR.
003536,002163: 00,2721           00006                           EXTEND                                         
003537,002164: 00,2722           62726                           BZMF     /AGREE                                #  CHECK FOR NEAR-ONE OR OVERFLOW.
003538,002165: 
003539,002166: 00,2723           52141        DDVCALL            DXCH     MPAC                                  #  CALL PRE-DIVIDE NORMALIZATION.
003540,002167: 00,2724           50123                           INDEX    DVNORMCT                              
003541,002168: 00,2725           12510                           TCF      MAXTEST                               
003542,002169: 
003543,002170: 00,2726           37654        /AGREE             CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVIDEND
003544,002171: 00,2727           60000                           DOUBLE                                         #  (ALREADY DONE FOR DIVISOR).
003545,002172: 00,2730           60141                           AD       MPAC       +1                         
003546,002173: 00,2731           54141                           TS       MPAC       +1                         
003547,002174: 00,2732           37675                           CAF      ZERO                                  
003548,002175: 00,2733           67651                           AD       POSMAX                                
003549,002176: 00,2734           26140                           ADS      MPAC                                  
003550,002177: 
003551,002178: 00,2735           40140                           CS       MPAC                                  #  CHECK TO SEE IF OVERFLOW GONE OR IF
003552,002179: 00,2736           60117                           AD       BUF2                                  #  NEAR-ONE CASE IS PRESENT.
003553,002180: 00,2737           10000                           CCS      A                                     
003554,002181: 00,2740           12723                           TCF      DDVCALL                               #  NOT NEAR-ONE.
003555,002182: 00,2741           32506        SLOPELO            DEC      .8324                                 
003556,002183: 00,2742           12356                           TCF      DVOVF                                 #  NO HOPE.
003557,002184: 
003558,002185: 00,2743           54124                           TS       MAXDVSW                               #  SIGNAL POSSIBLE NEAR-ONE CASE.
003559,002186: 00,2744           40141                           CS       MPAC       +1                         #  SEE IF DIVISION CAN BE DONE.
003560,002187: 00,2745           60120                           AD       BUF2       +1                         
003561,002188: 00,2746           00006                           EXTEND                                         
003562,002189: 00,2747           62356                           BZMF     DVOVF                                 
003563,002190: 00,2750           12723                           TCF      DDVCALL                               #  GOING TO MAXDV.
003564,002191: 
003565,002192:                                                                                                  #           THE FOLLOWING ROUTINE EXECUTES THE UNIT INSTRUCTION, WHICH TAKES THE UNIT OF THE VECTOR IN MPAC.
003566,002193: 
003567,002194: 00,2751           07520        UNIT               TC       MPACVBUF                              #  SAVE THE ARGUMENT IN VBUF.
003568,002195: 00,2752           37675                           CAF      ZERO                                  #  MUST SENSE OVERFLOW IN FOLLOWING DOT.
003569,002196: 00,2753           56105                           XCH      OVFIND                                
003570,002197: 00,2754           54125                           TS       TEM1                                  
003571,002198: 00,2755           03250                           TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003572,002199: 00,2756           30125                           CA       TEM1                                  
003573,002200: 00,2757           56105                           XCH      OVFIND                                
003574,002201: 00,2760           00006                           EXTEND                                         
003575,002202: 00,2761           12763                           BZF      +2                                    
003576,002203: 00,2762           12356                           TCF      DVOVF                                 
003577,002204: 00,2763           00006                           EXTEND                                         
003578,002205: 00,2764           30141                           DCA      MPAC                                  #  LEAVE THE SQUARE OF THE LENGTH OF THE
003579,002206: 00,2765           50104                           INDEX    FIXLOC                                #  ARGUMENT IN LVSQUARE.
003580,002207: 00,2766           52043                           DXCH     LVSQUARE                              
003581,002208: 
003582,002209: 00,2767           03274                           TC       SQRTSUB                               #  GO TAKE THE NORMALIZED SQUARE ROOT.
003583,002210: 
003584,002211: 00,2770           10140                           CCS      MPAC                                  #  CHECK FOR UNIT OVERFLOW.
003585,002212: 00,2771           12776                           TCF      +5                                    #  MPAC IS NOT LESS THAN .5 UNLESS
003586,002213: 00,2772           54001                           TS       L                                     
003587,002214: 00,2773           50104                           INDEX    FIXLOC                                
003588,002215: 00,2774           52045                           DXCH     LV                                    
003589,002216: 00,2775           12356                           TCF      DVOVF                                 #  INPUT TO SQRTSUB WAS 0.
003590,002217: 
003591,002218: 00,2776           43077                           CS       FOURTEEN                              #  SEE IF THE INPUT WAS SO SMALL THE THE
003592,002219: 00,2777           60121                           AD       MPTEMP                                #  FIRST TWO REGISTERS OF THE SQUARE WERE 0
003593,002220: 00,3000           10000                           CCS      A                                     
003594,002221: 00,3001           40000                           COM                                            #  IF SO, SAVE THE NEGATIVE OF THE SHIFT
003595,002222: 00,3002           13060                           TCF      SMALL                                 #  COUNT -15D.
003596,002223: 
003597,002224: 00,3003           13012                           TCF      LARGE                                 #  (THIS IS USUALLY THE CASE.)
003598,002225: 
003599,002226: 00,3004           43076                           CS       THIRTEEN                              #  IF THE SHIFT COUNT WAS EXACTLY 14, SET
003600,002227: 00,3005           54121                           TS       MPTEMP                                #  THE PRE-DIVIDE NORM COUNT TO -13D.
003601,002228: 
003602,002229: 00,3006           30140                           CA       MPAC                                  #  SHIFT THE LENGTH RIGHT 14 BEFORE STORING
003603,002230: 00,3007           54001        SMALL2             TS       L                                     #  (SMALL EXITS TO THIS POINT).
003604,002231: 00,3010           37675                           CAF      ZERO                                  
003605,002232: 00,3011           13037                           TCF      LARGE2                                #  GO TO STORE LENGTH AND PROCEED.
003606,002233: 
003607,002234: 00,3012           10121        LARGE              CCS      MPTEMP                                #  MOST ALL CASES COME HERE.
003608,002235: 00,3013           13021                           TCF      LARGE3                                #  SEE IF NO NORMALIZATION WAS REQUIRED BY
003609,002236: 
003610,002237: 00,3014           42005                           CS       SRDDV                                 #  SQRT, AND IF SO, SET UP FOR A SHIFT
003611,002238: 00,3015           54121                           TS       MPTEMP                                #  RIGHT 1 BEFORE DIVIDING TO PRODUCE
003612,002239: 00,3016           00006                           EXTEND                                         #  THE DESIRED HALF UNIT VECTOR.
003613,002240: 00,3017           30141                           DCA      MPAC                                  
003614,002241: 00,3020           13037                           TCF      LARGE2                                
003615,002242: 
003616,002243: 00,3021           40000        LARGE3             COM                                            #  LEAVE NEGATIVE OF SHIFT COUNT-1 FOR
003617,002244: 00,3022           54121                           TS       MPTEMP                                #  PREDIVIDE LEFT SHIFT.
003618,002245: 
003619,002246: 00,3023           40000                           COM                                            #  PICK UP REQUIRED SHIFTING BIT TO UNNORM-
003620,002247: 00,3024           50000                           INDEX    A                                     #  ALIZE THE SQRT RESULT.
003621,002248: 00,3025           37654                           CAF      BIT14                                 
003622,002249: 00,3026           54114                           TS       BUF                                   
003623,002250: 00,3027           00006                           EXTEND                                         
003624,002251: 00,3030           70141                           MP       MPAC       +1                         
003625,002252: 00,3031           56114                           XCH      BUF                                   
003626,002253: 00,3032           00006                           EXTEND                                         #  (UNNORMALIZE THE SQRT FOR LV).
003627,002254: 00,3033           70140                           MP       MPAC                                  
003628,002255: 00,3034           56001                           XCH      L                                     
003629,002256: 00,3035           60114                           AD       BUF                                   
003630,002257: 00,3036           56001                           XCH      L                                     
003631,002258: 
003632,002259: 00,3037           50104        LARGE2             INDEX    FIXLOC                                
003633,002260: 00,3040           52045                           DXCH     LV                                    #  LENGTH NOW STORED IN WORK AREA.
003634,002261: 
003635,002262: 00,3041           47671                           CS       ONE                                   
003636,002263: 00,3042           54124                           TS       MAXDVSW                               #  NO MAXDV CASES IN UNIT.
003637,002264: 
003638,002265: 00,3043           52107                           DXCH     VBUF                                  #  PREPARE X COMPONENT FOR DIVIDE, SETTING
003639,002266: 00,3044           52141                           DXCH     MPAC                                  #  LENGTH OF VECTOR AS DIVISOR IN BUF.
003640,002267: 00,3045           52115                           DXCH     BUF                                   
003641,002268: 00,3046           03100                           TC       UNITDV                                
003642,002269: 
003643,002270: 00,3047           52111                           DXCH     VBUF       +2                         #  DO Y AND Z IN USUAL FASHION SO WE CAN
003644,002271: 00,3050           52141                           DXCH     MPAC                                  #  EXIT THROUGH VROTATEX.
003645,002272: 00,3051           52144                           DXCH     MPAC       +3                         
003646,002273: 00,3052           03100                           TC       UNITDV                                
003647,002274: 
003648,002275: 00,3053           52113                           DXCH     VBUF       +4                         
003649,002276: 00,3054           52141                           DXCH     MPAC                                  
003650,002277: 00,3055           52146                           DXCH     MPAC       +5                         
003651,002278: 00,3056           03100                           TC       UNITDV                                
003652,002279: 00,3057           17405                           TCF      VROTATEX                              #  AND EXIT.
003653,002280: 
003654,002281:                                                                                                  #           IF THE LENGTH OF THE ARGUMENT VECTOR WAS LESS THAN 2(-28), EACH COMPONENT MUST BE SHIFTED LEFT AT LEAST
003655,002282:                                                                                                  #  14 PLACES BEFORE THE DIVIDE. NOTE THAT IN THIS CASE, THE MAJOR PART OF EACH COMPONENT IS ZERO.
003656,002283: 
003657,002284: 00,3060           54121        SMALL              TS       MPTEMP                                #  NEGATIVE OF PRE-DIVIDE SHIFT COUNT.
003658,002285: 
003659,002286: 00,3061           37675                           CAF      ZERO                                  #  SHIFT EACH COMPONENT LEFT 14.
003660,002287: 00,3062           56107                           XCH      VBUF       +1                         
003661,002288: 00,3063           56106                           XCH      VBUF                                  
003662,002289: 00,3064           56111                           XCH      VBUF       +3                         
003663,002290: 00,3065           56110                           XCH      VBUF       +2                         
003664,002291: 00,3066           56113                           XCH      VBUF       +5                         
003665,002292: 00,3067           56112                           XCH      VBUF       +4                         
003666,002293: 
003667,002294: 00,3070           40121                           CS       MPTEMP                                
003668,002295: 00,3071           50000                           INDEX    A                                     
003669,002296: 00,3072           37654                           CAF      BIT14                                 
003670,002297: 00,3073           00006                           EXTEND                                         
003671,002298: 00,3074           70140                           MP       MPAC                                  
003672,002299: 00,3075           13007                           TCF      SMALL2                                
003673,002300: 
003674,002301: 00,3076           00015        THIRTEEN           DEC      13         B-14                       
003675,002302: 00,3077           00016        FOURTEEN           DEC      14         B-14                       
003676,002303: 
003677,002304:                                                                                                  #           THE FOLLOWING ROUTINE SETS UP THE CALL TO THE DIVIDE ROUTINES.
003678,002305: 
003679,002306: 00,3100           10140        UNITDV             CCS      MPAC                                  #  FORCE MPAC POSITIVE IF POSSIBLE, SETTING
003680,002307: 00,3101           13117                           TCF      UMPAC+                                #  DVSIGN ACCORDING TO THE SIGN OF MPAC
003681,002308: 00,3102           13104                           TCF      +2                                    #  SINCE THE DIVISOR IS ALWAYS POSITIVE
003682,002309: 00,3103           13111                           TCF      UMPAC-                                #  HERE.
003683,002310: 
003684,002311: 00,3104           10141                           CCS      MPAC       +1                         
003685,002312: 00,3105           13117                           TCF      UMPAC+                                
003686,002313: 00,3106           00002                           TC       Q                                     #  EXIT IMMEDIATELY ON ZERO.
003687,002314: 00,3107           13111                           TCF      UMPAC-                                
003688,002315: 00,3110           00002                           TC       Q                                     
003689,002316: 
003690,002317: 00,3111           47675        UMPAC-             CS       ZERO                                  #  IF NEGATIVE, SET -0 IN DVSIGN FOR FINAL
003691,002318: 00,3112           54122                           TS       DVSIGN                                #  COMPLEMENT.
003692,002319: 00,3113           00006                           EXTEND                                         
003693,002320: 00,3114           40141                           DCS      MPAC                                  #  PICK UP ABSOLUTE VALUE OF ARG AND JUMP.
003694,002321: 00,3115           50121                           INDEX    MPTEMP                                
003695,002322: 00,3116           12507                           TCF      MAXTEST    -1                         
003696,002323: 
003697,002324: 00,3117           54122        UMPAC+             TS       DVSIGN                                #  SET DVSIGN FOR POSITIVE QUOTIENT.
003698,002325: 00,3120           52141                           DXCH     MPAC                                  
003699,002326: 00,3121           50121                           INDEX    MPTEMP                                
003700,002327: 00,3122           12507                           TCF      MAXTEST    -1                         
003701,002328: 
003702,002329:                                                                                                  #           MISCELLANEOUS UNARY OPERATIONS.
003703,002330: 
003704,002331: 00,3123           03231        DSQ                TC       DSQSUB                                #  SQUARE THE DP CONTENTS OF MPAC.
003705,002332: 00,3124           16012                           TCF      DANZIG                                
003706,002333: 
003707,002334: 00,3125           10147        ABVALABS           CCS      MODE                                  #  ABVAL OR ABS INSTRUCTION.
003708,002335: 00,3126           13155                           TCF      ABS                                   #  DO ABS ON SCALAR.
003709,002336: 00,3127           13155                           TCF      ABS                                   
003710,002337: 
003711,002338: 00,3130           03250        ABVAL              TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003712,002339: 00,3131           22147                           LXCH     MODE                                  #  MODE IS NOW DP (L ZERO AFTER DAS).
003713,002340: 
003714,002341: 00,3132           00006                           EXTEND                                         #  STORE SQUARE OF LENGTH IN WORK AREA.
003715,002342: 00,3133           30141                           DCA      MPAC                                  
003716,002343: 00,3134           50104                           INDEX    FIXLOC                                
003717,002344: 00,3135           52043                           DXCH     LVSQUARE                              
003718,002345: 
003719,002346: 00,3136           03274        SQRT               TC       SQRTSUB                               #  TAKE THE SQUARE ROOT OF MPAC.
003720,002347: 00,3137           10121                           CCS      MPTEMP                                #  RETURNED NORMALIZED SQUARE ROOT. SEE IF
003721,002348: 00,3140           13142                           TCF      +2                                    #  ANY UN-NORMALIZATION REQUIRED AND EXIT
003722,002349: 00,3141           16012                           TCF      DANZIG                                #  IF NOT.
003723,002350: 
003724,002351: 00,3142           63657                           AD       NEG12                                 #  A RIGHT SHIFT OF MORE THAN 13 COULD BE
003725,002352: 00,3143           00006                           EXTEND                                         #  REQUIRED IF INPUT WAS ZERO IN MPAC,+1.
003726,002353: 00,3144           63150                           BZMF     SQRTSHFT                              #  GOES HERE IN MOST CASES.
003727,002354: 00,3145           22007                           ZL                                             #  IF A LONG SHIFT IS REQUIRED, GO TO
003728,002355: 00,3146           22102                           LXCH     ADDRWD                                #  GENERAL RIGHT SHIFT ROUTINES.
003729,002356: 00,3147           12264                           TCF      GENSCR     +4                         #  ADDRWD WAS ZERO TO PREVENT ROUND.
003730,002357: 
003731,002358: 00,3150           50121        SQRTSHFT           INDEX    MPTEMP                                #  SELECT SHIFTING BIT AND EXIT THROUGH
003732,002359: 00,3151           37653                           CAF      BIT15                                 #  SHIFT ROUTINES.
003733,002360: 00,3152           54121                           TS       MPTEMP                                
003734,002361: 00,3153           37675                           CAF      ZERO                                  #  TO ZERO MPAC +2 IN THE PROCESS.
003735,002362: 00,3154           12017                           TCF      MPACSHR    +3                         
003736,002363: 
003737,002364: 00,3155           06706        ABS                TC       BRANCH                                #  TEST SIGN OF MPAC AND COMPLEMENT IF
003738,002365: 00,3156           16012                           TCF      DANZIG                                
003739,002366: 00,3157           16012                           TCF      DANZIG                                
003740,002367: 00,3160           17630                           TCF      COMP                                  
003741,002368: 
003742,002369: 00,3161           47667        VDEF               CS       FOUR                                  #  VECTOR DEFINE - ESSENTIALLY TREATS
003743,002370: 00,3162           26152                           ADS      PUSHLOC                               #  SCALAR IN MPAC AS X COMPONENT, PUSHES UP
003744,002371: 00,3163           00006                           EXTEND                                         #  FOR Y AND THEN AGAIN FOR Z.
003745,002372: 00,3164           50000                           INDEX    A                                     
003746,002373: 00,3165           30003                           DCA      2                                     
003747,002374: 00,3166           52144                           DXCH     MPAC       +3                         
003748,002375: 00,3167           00006                           EXTEND                                         
003749,002376: 00,3170           50152                           INDEX    PUSHLOC                               
003750,002377: 00,3171           30001                           DCA      0                                     
003751,002378: 00,3172           52146                           DXCH     MPAC       +5                         
003752,002379: 00,3173           47671                           CS       ONE                                   #  MODE IS NOW VECTOR.
003753,002380: 00,3174           16011                           TCF      NEWMODE                               
003754,002381: 
003755,002382: 00,3175           03250        VSQ                TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003756,002383: 00,3176           37675                           CAF      ZERO                                  
003757,002384: 00,3177           16011                           TCF      NEWMODE                               #  MODE IS NOW DP.
003758,002385: 
003759,002386: 00,3200           00006        PUSH               EXTEND                                         #  PUSH DOWN MPAC LEAVING IT LOADED.
003760,002387: 00,3201           30141                           DCA      MPAC                                  
003761,002388: 00,3202           50152                           INDEX    PUSHLOC                               #  PUSH DOWN FIRST TWO REGISTERS IN EACH
003762,002389: 00,3203           52001                           DXCH     0                                     
003763,002390: 
003764,002391: 00,3204           50147                           INDEX    MODE                                  #  INCREMENT PUSHDOWN POINTER.
003765,002392: 00,3205           36175                           CAF      NO.WDS                                
003766,002393: 00,3206           26152                           ADS      PUSHLOC                               
003767,002394: 
003768,002395: 00,3207           10147                           CCS      MODE                                  
003769,002396: 00,3210           13223                           TCF      TPUSH                                 #  PUSH DOWN MPAC +2.
003770,002397: 00,3211           16012                           TCF      DANZIG                                #  DONE FOR DP.
003771,002398: 
003772,002399: 00,3212           00006                           EXTEND                                         #  ON VECTOR, PUSH DOWN Y AND Z COMPONENTS.
003773,002400: 00,3213           30144                           DCA      MPAC       +3                         
003774,002401: 00,3214           50152                           INDEX    PUSHLOC                               
003775,002402: 00,3215           51775                           DXCH     0          -4                         
003776,002403: 00,3216           00006                           EXTEND                                         
003777,002404: 00,3217           30146                           DCA      MPAC       +5                         
003778,002405: 00,3220           50152                           INDEX    PUSHLOC                               
003779,002406: 00,3221           51777                           DXCH     0          -2                         
003780,002407: 00,3222           16012                           TCF      DANZIG                                
003781,002408: 
003782,002409: 00,3223           30142        TPUSH              CA       MPAC       +2                         
003783,002410: 00,3224           16537                           TCF      ENDTPUSH   +2                         
003784,002411: 
003785,002412: 00,3225           50104        RVQ                INDEX    FIXLOC                                #  RVQ - RETURN IVA QPRET.
003786,002413: 00,3226           30052                           CA       QPRET                                 
003787,002414: 00,3227           54103                           TS       POLISH                                
003788,002415: 00,3230           16635                           TCF      GOTO       +4                         #  (ASSUME QPRET POINTS TO FIXED ONLY.)
003789,002416: 
003790,002417:                                                                                                  #           THE FOLLOWING SUBROUTINES ARE USED IN SQUARING MPAC, IN BOTH THE SCALAR AND VECTOR SENSE. THEY ARE
003791,002418:                                                                                                  #  SPECIAL CASES OF DMPSUB AND DOTSUB, PUT IN TO SAVE SOME TIME.
003792,002419: 
003793,002420: 00,3231           30141        DSQSUB             CA       MPAC       +1                         #  SQUARES THE SCALAR CONTENTS OF MPAC.
003794,002421: 00,3232           00006                           EXTEND                                         
003795,002422: 00,3233           70000                           SQUARE                                         
003796,002423: 00,3234           54142                           TS       MPAC       +2                         
003797,002424: 00,3235           37675                           CAF      ZERO                                  #  FORM 2(CROSS TERM).
003798,002425: 00,3236           56141                           XCH      MPAC       +1                         
003799,002426: 00,3237           00006                           EXTEND                                         
003800,002427: 00,3240           70140                           MP       MPAC                                  
003801,002428: 00,3241           20001                           DDOUBL                                         #  AND MAYBE OVERFLOW.
003802,002429: 
003803,002430: 00,3242           20142                           DAS      MPAC       +1                         #  AND SET A TO NET OVERFLOW.
003804,002431: 00,3243           56140                           XCH      MPAC                                  
003805,002432: 00,3244           00006                           EXTEND                                         
003806,002433: 00,3245           70000                           SQUARE                                         
003807,002434: 00,3246           20141                           DAS      MPAC                                  
003808,002435: 00,3247           00002                           TC       Q                                     
003809,002436: 
003810,002437: 00,3250           00006        VSQSUB             EXTEND                                         #  DOTS THE VECTOR IN MPAC WITH ITSELF.
003811,002438: 00,3251           22123                           QXCH     DOTRET                                
003812,002439: 00,3252           03231                           TC       DSQSUB                                #  SQUARE THE X COMPONENT.
003813,002440: 00,3253           52144                           DXCH     MPAC       +3                         
003814,002441: 00,3254           52141                           DXCH     MPAC                                  
003815,002442: 00,3255           52115                           DXCH     BUF                                   #  SO WE CAN END IN DOTSUB.
003816,002443: 00,3256           30142                           CA       MPAC       +2                         
003817,002444: 00,3257           54116                           TS       BUF        +2                         
003818,002445: 
003819,002446: 00,3260           03231                           TC       DSQSUB                                #  SQUARE Y COMPONENT.
003820,002447: 00,3261           52142                           DXCH     MPAC       +1                         
003821,002448: 00,3262           20116                           DAS      BUF        +1                         
003822,002449: 00,3263           60140                           AD       MPAC                                  
003823,002450: 00,3264           60114                           AD       BUF                                   
003824,002451: 00,3265           54114                           TS       BUF                                   
003825,002452: 00,3266           13270                           TCF      +2                                    
003826,002453: 00,3267           54105                           TS       OVFIND                                #  IF OVERFLOW.
003827,002454: 
003828,002455: 00,3270           52146                           DXCH     MPAC       +5                         
003829,002456: 00,3271           52141                           DXCH     MPAC                                  
003830,002457: 00,3272           03231                           TC       DSQSUB                                #  SQUARE Z COMPONENT.
003831,002458: 00,3273           17164                           TCF      ENDDOT                                #  END AS IN DOTSUB.
003832,002459: 
003833,002460:                                                                                                  #           DOUBLE PRECISION SQUARE ROOT ROUTINE. TAKE THE SQUARE ROOT OF THE TRIPLE PRECISION (MPAC +2 USED ONLY
003834,002461:                                                                                                  #  IN NORMALIZATION) CONTENTS OF MPAC AND LEAVE THE NORMALIZED RESULT IN MPAC (C(MPAC) GREATER THAN OR EQUAL TO
003835,002462:                                                                                                  #  .5). THE RIGHT SHIFT COUNT (TO UNNORMALIZE) IS LEFT IN MPTEMP.
003836,002463: 
003837,002464: 
003838,002465: 
003839,002466: 00,3274           37675        SQRTSUB            CAF      ZERO                                  #  START BY ZEROING RIGHT SHIFT COUNT.
003840,002467: 00,3275           54121                           TS       MPTEMP                                
003841,002468: 
003842,002469: 00,3276           10140                           CCS      MPAC                                  #  CHECK FOR POSITIVE ARGUMENT, SHIFTING
003843,002470: 00,3277           13335                           TCF      SMPAC+                                #  FIRST SIGNIFICANT MPAC REGISTER INTO
003844,002471: 00,3300           13302                           TCF      +2                                    #  MPAC ITSELF.
003845,002472: 00,3301           13324                           TCF      SQRTNEG                               #  SEE IF MAG OF ARGUMENT LESS THAN 10(-4).
003846,002473: 
003847,002474: 00,3302           56142                           XCH      MPAC       +2                         #  MPAC IS ZERO - SHIFT LEFT 14.
003848,002475: 00,3303           56141                           XCH      MPAC       +1                         
003849,002476: 00,3304           54140                           TS       MPAC                                  
003850,002477: 00,3305           37673                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
003851,002478: 00,3306           54121                           TS       MPTEMP                                
003852,002479: 
003853,002480: 00,3307           10140                           CCS      MPAC                                  #  SEE IF MPAC NOW PNZ.
003854,002481: 00,3310           13335                           TCF      SMPAC+                                
003855,002482: 00,3311           13313                           TCF      +2                                    
003856,002483: 00,3312           13327                           TCF      ZEROANS                               #  NEGATIVE BUT LESS THAN 10(-4) IN MAG.
003857,002484: 
003858,002485: 00,3313           56141                           XCH      MPAC       +1                         #  ZERO - SHIFT LEFT 14 AGAIN.
003859,002486: 00,3314           54140                           TS       MPAC                                  
003860,002487: 00,3315           37673                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
003861,002488: 00,3316           26121                           ADS      MPTEMP                                
003862,002489: 
003863,002490: 00,3317           10140                           CCS      MPAC                                  
003864,002491: 00,3320           13335                           TCF      SMPAC+                                
003865,002492: 00,3321           00002                           TC       Q                                     #  SQRT(0) = 0.
003866,002493: 00,3322           13327                           TCF      ZEROANS                               
003867,002494: 00,3323           00002                           TC       Q                                     
003868,002495: 
003869,002496: 
003870,002497: 
003871,002498: 00,3324           10000        SQRTNEG            CCS      A                                     #  ARGUMENT IS NEGATIVE, BUT SEE IF SIGN-
003872,002499: 00,3325           13333                           TCF      SQRTABRT                              #  CORRECTED ARGUMENT IS LESS THAN 10(-4)
003873,002500: 
003874,002501: 00,3326           10141                           CCS      MPAC       +1                         #  IN MAGNITUDE. IF SO, CALL ANSWER ZERO.
003875,002502: 00,3327           37675        ZEROANS            CAF      ZERO                                  #  FORCE ANSWER TO ZERO HERE.
003876,002503: 00,3330           13403                           TCF      FIXROOT                               
003877,002504: 00,3331           13333                           TCF      SQRTABRT                              
003878,002505: 00,3332           13403                           TCF      FIXROOT                               
003879,002506: 
003880,002507: 00,3333           05440        SQRTABRT           TC       ABORT                                 
003881,002508: 00,3334           01302                           OCT      1302                                  
003882,002509: 
003883,002510: 00,3335           62411        SMPAC+             AD       -1/2+2                                #  SEE IF ARGUMENT GREATER THAN OR EQUAL TO
003884,002511: 00,3336           00006                           EXTEND                                         #  .5.
003885,002512: 00,3337           63406                           BZMF     SRTEST                                #  IF SO, SEE IF LESS THAN .25.
003886,002513: 
003887,002514: 00,3340           52141                           DXCH     MPAC                                  #  WE WILL TAKE THE SQUARE ROOT OF MPAC/2.
003888,002515: 00,3341           22021                           LXCH     SR                                    #  SHIFT RIGHT 1 AND GO TO THE SQRT ROUTINE
003889,002516: 00,3342           00006                           EXTEND                                         
003890,002517: 00,3343           77654                           MP       HALF                                  
003891,002518: 00,3344           52141                           DXCH     MPAC                                  
003892,002519: 00,3345           56021                           XCH      SR                                    
003893,002520: 00,3346           26141                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
003894,002521: 
003895,002522: 00,3347           32275        ARGHI              CAF      SLOPEHI                               #  ARGUMENT BETWEEN .25 AND .5. GET A
003896,002523: 00,3350           00006                           EXTEND                                         #  LINEAR APPROXIMATION FOR THIS RANGE.
003897,002524: 00,3351           70140                           MP       MPAC                                  
003898,002525: 00,3352           62511                           AD       BIASHI                                #  X0/2 = (MPAC/2)(SLOPEHI) + BIASHI/2.
003899,002526: 
003900,002527: 00,3353           54114                 +4        TS       BUF                                   #  X0/2 (ARGLO ENTERS HERE).
003901,002528: 00,3354           30140                           CA       MPAC                                  #  SINGLE-PRECISION THROUGHOUT.
003902,002529: 00,3355           22007                           ZL                                             
003903,002530: 00,3356           00006                           EXTEND                                         
003904,002531: 00,3357           10114                           DV       BUF                                   #  (MPAC/2)/(X0/2)
003905,002532: 00,3360           00006                           EXTEND                                         
003906,002533: 00,3361           77654                           MP       HALF                                  
003907,002534: 00,3362           26114                           ADS      BUF                                   #  X1 = X0/2 + .5(MPAC/2)/(X0/2).
003908,002535: 
003909,002536: 00,3363           00006                           EXTEND                                         
003910,002537: 00,3364           77654                           MP       HALF                                  #  FORM UP X1/2.
003911,002538: 00,3365           52141                           DXCH     MPAC                                  #  SAVE AND BRING OUT ARGUMENT.
003912,002539: 00,3366           00006                           EXTEND                                         #  TAKE DP QUOTIENT WITH X1.
003913,002540: 00,3367           10114                           DV       BUF                                   
003914,002541: 00,3370           54115                           TS       BUF        +1                         #  SAVE MAJOR PART OF QUOTIENT.
003915,002542: 00,3371           37675                           CAF      ZERO                                  #  FORM MINOR PART OF QUOTIENT USING
003916,002543: 00,3372           56001                           XCH      L                                     #  (REMAINDER,0).
003917,002544: 00,3373           00006                           EXTEND                                         
003918,002545: 00,3374           10114                           DV       BUF                                   
003919,002546: 00,3375           54001                           TS       L                                     #  IN PREPARATION FOR DAS.
003920,002547: 00,3376           30115                           CA       BUF        +1                         
003921,002548: 00,3377           20141                           DAS      MPAC                                  #  X2 = X1/2 + (MPAC/2)X1
003922,002549: 
003923,002550: 00,3400           00006                           EXTEND                                         #  OVERFLOWS IF ARG. NEAR POSMAX.
003924,002551: 00,3401           13405                           BZF      TCQBNK00                              
003925,002552: 00,3402           37651                           CAF      POSMAX                                
003926,002553: 00,3403           54140        FIXROOT            TS       MPAC                                  
003927,002554: 00,3404           54141                           TS       MPAC       +1                         
003928,002555: 00,3405           00002        TCQBNK00           TC       Q                                     #  RETURN TO CALLER TO UNNORMALIZE, ETC.
003929,002556: 
003930,002557: 00,3406           67655        SRTEST             AD       QUARTER                               #  ARGUMENT WAS LESS THAN .5, SEE IF LESS
003931,002558: 00,3407           00006                           EXTEND                                         #  THAN .25.
003932,002559: 00,3410           63432                           BZMF     SQRTNORM                              #  IF SO, BEGIN NORMALIZATION.
003933,002560: 
003934,002561: 00,3411           52141                           DXCH     MPAC                                  #  IF BETWEEN .5 AND .25, SHIFT RIGHT 1 AND
003935,002562: 00,3412           22021                           LXCH     SR                                    #  START AT ARGLO.
003936,002563: 00,3413           00006                           EXTEND                                         
003937,002564: 00,3414           77654                           MP       HALF                                  
003938,002565: 00,3415           52141                           DXCH     MPAC                                  
003939,002566: 00,3416           56021                           XCH      SR                                    
003940,002567: 00,3417           26141                           ADS      MPAC       +1                         #  NO OVERFLOW.
003941,002568: 
003942,002569: 00,3420           32741        ARGLO              CAF      SLOPELO                               #  (NORMALIZED) ARGUMENT BETWEEN .125 AND
003943,002570: 00,3421           00006                           EXTEND                                         #  .25
003944,002571: 00,3422           70140                           MP       MPAC                                  
003945,002572: 00,3423           62251                           AD       BIASLO                                
003946,002573: 00,3424           13353                           TCF      ARGHI      +4                         #  BEGIN SQUARE ROOT.
003947,002574: 
003948,002575: 00,3425           00006        SQRTNM2            EXTEND                                         #  SHIFT LEFT 2 AND INCREMENT RIGHT SHIFT
003949,002576: 00,3426           30142                           DCA      MPAC       +1                         #  COUNT (FOR TERMINAL UNNORMALIZATION).
003950,002577: 00,3427           20142                           DAS      MPAC       +1                         
003951,002578: 00,3430           60140                           AD       MPAC                                  
003952,002579: 00,3431           26140                           ADS      MPAC                                  #  (NO OVERFLOW).
003953,002580: 
003954,002581: 00,3432           24121        SQRTNORM           INCR     MPTEMP                                #  FIRST TIME THROUGH, JUST SHIFT LEFT 1
003955,002582: 00,3433           00006                           EXTEND                                         #  (PUTS IN EFFECTIVE RIGHT SHIFT SINCE
003956,002583: 00,3434           30142                           DCA      MPAC       +1                         #  WE WANT MPAC/2).
003957,002584: 00,3435           20142                           DAS      MPAC       +1                         
003958,002585: 00,3436           60140                           AD       MPAC                                  
003959,002586: 00,3437           26140                           ADS      MPAC                                  #  (AGAIN NO OVERFLOW).
003960,002587: 00,3440           60000                           DOUBLE                                         
003961,002588: 00,3441           54022                           TS       CYL                                   
003962,002589: 
003963,002590: 00,3442           10022        NORMTEST           CCS      CYL                                   #  SEE IF ARGUMENT NOW NORMALIZED AT
003964,002591: 00,3443           10022                           CCS      CYL                                   #  GREATER THAN .125.
003965,002592: 00,3444           13425                           TCF      SQRTNM2                               #  NO - SHIFT LEFT 2 MORE AND TRY AGAIN.
003966,002593: 00,3445           13347                           TCF      ARGHI                                 #  YES - NOW BETWEEN .5 AND .25.
003967,002594: 00,3446           13420                           TCF      ARGLO                                 #  ARGUMENT NOW BETWEEN .25 AND .125.
003968,002595: 
003969,002596:                                                                                                  #  TRIGONOMETRIC FUNCTION PACKAGE.
003970,002597: 
003971,002598:                                                                                                  #           THE FOLLOWING TRIGONOMETRIC FUNCTIONS ARE AVAILABLE AS INTERPRETIVE OPERATIONS:
003972,002599: 
003973,002600:                                                                                                  #           1.  SIN                COMPUTES (1/2)SINE(2 PI MPAC).
003974,002601:                                                                                                  #           2.  COS                COMPUTES (1/2)COSINE(2 PI MPAC).
003975,002602: 
003976,002603:                                                                                                  #           3.  ASIN               COMPUTES (1/2PI)ARCSINE(2 MPAC).
003977,002604:                                                                                                  #           4.  ACOS               COMPUTES (1/2PI)ARCCOSINE(2 MPAC).
003978,002605: 
003979,002606:                                                                                                  #  SIN-ASIN AND COS-ACOS ARE MUTUALLY INVERSE, IE SIN(ASIN(X)) = X.
003980,002607: 
003981,002608: 00,3447           06706        COSINE             TC       BRANCH                                #  FINDS COSINE USING THE IDENTITY
003982,002609: 00,3450           13453                           TCF      +3                                    #  COS(X) = SIN(PI/2 - ABS(X)).
003983,002610: 00,3451           13456                           TCF      PRESINE                               
003984,002611: 00,3452           13456                           TCF      PRESINE                               
003985,002612: 
003986,002613: 00,3453           00006                 +3        EXTEND                                         
003987,002614: 00,3454           40141                           DCS      MPAC                                  
003988,002615: 00,3455           52141                           DXCH     MPAC                                  
003989,002616: 
003990,002617: 00,3456           37655        PRESINE            CAF      QUARTER                               #  PI/2 SCALED.
003991,002618: 00,3457           26140                           ADS      MPAC                                  
003992,002619: 
003993,002620: 
003994,002621: 
003995,002622: 00,3460           52141        SINE               DXCH     MPAC                                  #  DOUBLE ARGUMENT.
003996,002623: 00,3461           20001                           DDOUBL                                         
003997,002624: 00,3462           54000                           OVSK                                           #  SEE IF OVERFLOW PRESENT.
003998,002625: 00,3463           13466                           TCF      +3                                    #  IF NOT, ARGUMENT OK AS IS.
003999,002626: 
004000,002627: 00,3464           00006                           EXTEND                                         #  IF SO, WE LOST (OR GAINED) PI, SO
004001,002628: 00,3465           40001                           DCOM                                           #  COMPLEMENT MPAC USING THE IDENTITY
004002,002629:                                                                                                  #  SIN(X-(+)PI) = SIN(-X).
004003,002630: 00,3466           52141                 +3        DXCH     MPAC                                  
004004,002631: 00,3467           30140                           CA       MPAC                                  #  SEE IF ARGUMENT GREATER THAN .5 IN
004005,002632: 00,3470           60000                           DOUBLE                                         #  MAGNITUDE. IF SO, REDUCE IT TO LESS THAN
004006,002633: 00,3471           54001                           TS       L                                     #  .5 (+-PI/2 SCALED) AS FOLLOWS:
004007,002634: 00,3472           13503                           TCF      SN1                                   
004008,002635: 
004009,002636: 00,3473           50000                           INDEX    A                                     #  IF POSITIVE, FORM PI - X, IF NEGATIVE
004010,002637: 00,3474           37653                           CAF      NEG1/2     +1                         #  USE -PI - X.
004011,002638: 00,3475           60000                           DOUBLE                                         
004012,002639: 00,3476           00006                           EXTEND                                         
004013,002640: 00,3477           60140                           SU       MPAC                                  #  GUARANTEED NO OVERFLOW.
004014,002641: 00,3500           54140                           TS       MPAC                                  
004015,002642: 00,3501           40141                           CS       MPAC       +1                         
004016,002643: 00,3502           54141                           TS       MPAC       +1                         
004017,002644: 
004018,002645: 00,3503           00006        SN1                EXTEND                                         #  SET UP TO EVALUATE HASTINGS POLYNOMIAL
004019,002646: 00,3504           30141                           DCA      MPAC                                  
004020,002647: 00,3505           52120                           DXCH     BUF2                                  
004021,002648: 00,3506           03231                           TC       DSQSUB                                #  SQUARE MPAC.
004022,002649: 
004023,002650: 00,3507           07201                           TC       POLY                                  #  EVALUATE FOURTH ORDER POLYNOMIAL.
004024,002651: 00,3510           00003                           DEC      3          B-14                       
004025,002652: 00,3511           14441 37325                     2DEC     +.3926990796                            
004026,002653: 
004027,002654: 00,3513           53250 60764                     2DEC     -.6459637111                            
004028,002655: 
004029,002656: 00,3515           12146 21276                     2DEC     +.318758717                            
004030,002657: 
004031,002658: 00,3517           75466 71471                     2DEC     -.074780249                            
004032,002659: 
004033,002660: 00,3521           00236 32757                     2DEC     +.009694988                            
004034,002661: 
004035,002662: 00,3523           32435                           CAF      LBUF2                                 #  MULTIPLY BY ARGUMENT AND SHIFT LEFT 2.
004036,002663: 00,3524           07065                           TC       DMPSUB     -1                         
004037,002664: 
004038,002665: 00,3525           00006                           EXTEND                                         
004039,002666: 00,3526           30142                           DCA      MPAC       +1                         
004040,002667: 00,3527           20142                           DAS      MPAC       +1                         
004041,002668: 00,3530           60140                           AD       MPAC                                  
004042,002669: 00,3531           26140                           ADS      MPAC                                  #  NEITHER SHIFT OVERFLOWS.
004043,002670: 00,3532           00006                           EXTEND                                         
004044,002671: 00,3533           30142                           DCA      MPAC       +1                         
004045,002672: 00,3534           20142                           DAS      MPAC       +1                         
004046,002673: 00,3535           60140                           AD       MPAC                                  
004047,002674: 00,3536           26140                           ADS      MPAC                                  
004048,002675: 00,3537           16012                           TCF      DANZIG                                
004049,002676: 
004050,002677:                                                                                                  #           ARCSIN/ARCCOS ROUTINE.
004051,002678: 
004052,002679: 00,3540           33561        ARCSIN             CAF      LASINEX                               #  COMPUTE ARCSIN BY USING THE IDENTITY
004053,002680: 00,3541           13543                           TCF      +2                                    #  ARCSIN(X) = PI/2 - ARCCOS(X).
004054,002681: 
004055,002682: 00,3542           33643        ARCCOS             CAF      LDANZIG                               #  (EXITS IMMEDIATELY).
004056,002683: 00,3543           54122                           TS       ESCAPE                                
004057,002684: 00,3544           06706                           TC       BRANCH                                #  TEST SIGN OF INPUT.
004058,002685: 00,3545           13555                           TCF      ACOSST                                #  START IMMEDIATELY IF POSITIVE.
004059,002686: 00,3546           13655                           TCF      ACOSZERO                              #  ARCCOS(0) = PI/2 = .25.
004060,002687: 00,3547           00006                           EXTEND                                         #  IF NEGATIVE, USE THE IDENTITY
004061,002688: 00,3550           40141                           DCS      MPAC                                  #  ARCCOS(X) = PI - ARCCOS(-X), FORCING
004062,002689: 00,3551           52141                           DXCH     MPAC                                  #  ARGUMENT POSITIVE.
004063,002690: 00,3552           33660                           CAF      TCSUBTR                               #  SET EXIT  TO DO ABOVE BEFORE
004064,002691: 
004065,002692: 00,3553           56122                           XCH      ESCAPE                                #  ARCSIN/ARCCOS CONSIDERATIONS.
004066,002693: 00,3554           54123                           TS       ESCAPE2                               
004067,002694: 
004068,002695: 00,3555           47654        ACOSST             CS       HALF                                  #  TEST MAGNITUDE OF INPUT.
004069,002696: 00,3556           60140                           AD       MPAC                                  
004070,002697: 00,3557           10000                           CCS      A                                     
004071,002698: 00,3560           13651                           TCF      ACOSOVF                               #  THIS IS PROBABLY AN OVERFLOW CASE.
004072,002699: 
004073,002700: 00,3561           13637        LASINEX            TCF      ASINEX                                
004074,002701: 
004075,002702: 00,3562           13572                           TCF      ACOSST2                               #  NO OVERFLOW - PROCEED.
004076,002703: 
004077,002704: 00,3563           10141                           CCS      MPAC       +1                         #  IF MAJOR PART IS .5, CALL ANSWER 0
004078,002705: 00,3564           37675                           CAF      ZERO                                  #  UNLESS MINOR PART NEGATIVE.
004079,002706: 00,3565           13567                           TCF      ACOS=0                                
004080,002707: 
004081,002708: 00,3566           13572                           TCF      ACOSST2                               
004082,002709: 
004083,002710: 00,3567           54141        ACOS=0             TS       MPAC       +1                         
004084,002711: 00,3570           54140                           TS       MPAC                                  
004085,002712: 00,3571           00122                           TC       ESCAPE                                
004086,002713: 
004087,002714: 00,3572           00006        ACOSST2            EXTEND                                         #  NOW THAT ARGUMENT IS IN PROPER RANGE,
004088,002715: 00,3573           40141                           DCS      MPAC                                  #  BEGIN COMPUTATION. USE HASTINGS
004089,002716: 00,3574           67654                           AD       HALF                                  #  APPROXIMATION ARCCOS(X) = SQRT(1-X)P(X)
004090,002717: 00,3575           52141                           DXCH     MPAC                                  #  IN A SCALED VERSION WHERE P(X) IS A
004091,002718: 00,3576           52120                           DXCH     BUF2                                  #  SEVENTH ORDER POLYNOMIAL.
004092,002719: 
004093,002720: 00,3577           03274                           TC       SQRTSUB                               #  RETURNS WITH NORMALIZED SQUARE ROOT.
004094,002721: 
004095,002722: 00,3600           10121                           CCS      MPTEMP                                #  SEE IF UN-NORMALIZATION REQUIRED.
004096,002723: 00,3601           13644                           TCF      ACOSSHR                               #  IF SO.
004097,002724: 
004098,002725: 00,3602           52141        ACOS3              DXCH     MPAC                                  #  SET UP FOR POLYNOMIAL EVALUATION.
004099,002726: 00,3603           52120                           DXCH     BUF2                                  
004100,002727: 00,3604           52141                           DXCH     MPAC                                  
004101,002728: 
004102,002729: 00,3605           07201                           TC       POLY                                  
004103,002730: 00,3606           00006                           DEC      6          B-14                       
004104,002731: 00,3607           13240 23630                     2DEC     +.353553385                            #  COEFFICIENTS ARE C 2(+I)/PISQRT(2) WHERE
004105,002732: 
004106,002733: 00,3611           74721 47775                     2DEC*    -.0483017006 B+1*                       #                    I
004107,002734: 
004108,002735: 00,3613           02440 20237                     2DEC*    +.0200273085 B+2*                       #       WHERE C STANDS FOR ORIGINAL COEFFS.
004109,002736: 
004110,002737: 00,3615           75067 70742                     2DEC*    -.0112931863 B+3*                       
004111,002738: 
004112,002739: 00,3617           03436 26756                     2DEC*    +.00695311612 B+4*                       
004113,002740: 
004114,002741: 00,3621           74037 57640                     2DEC*    -.00384617957 B+5*                       
004115,002742: 
004116,002743: 00,3623           03046 07143                     2DEC*    +.001501297736 B+6*                       
004117,002744: 
004118,002745: 00,3625           76654 42244                     2DEC*    -.000284160334 B+7*                       
004119,002746: 
004120,002747: 00,3627           32435                           CAF      LBUF2                                 #  DO FINAL MULTIPLY AND GO TO ANY
004121,002748: 00,3630           07065                           TC       DMPSUB     -1                         #  EPILOGUE SEQUENCES.
004122,002749: 00,3631           00122                           TC       ESCAPE                                
004123,002750: 
004124,002751: 00,3632           00006        SUBTR              EXTEND                                         #  EPILOGUE FOR NEGATIVE INPUTS TO ARCCOS.
004125,002752: 00,3633           40141                           DCS      MPAC                                  
004126,002753: 00,3634           67654                           AD       HALF                                  #  FORMS PI - ARCCOS(-X) = ARCCOS(X).
004127,002754: 00,3635           52141                           DXCH     MPAC                                  
004128,002755: 00,3636           00123                           TC       ESCAPE2                               #  GO TO POSSIBLE ARCSIN EPILOGUE.
004129,002756: 
004130,002757: 00,3637           00006        ASINEX             EXTEND                                         
004131,002758: 00,3640           40141                           DCS      MPAC                                  #  ARCSIN EPILOGUE - GET ARCSIN(X)
004132,002759: 00,3641           67655                           AD       QUARTER                               #  = PI/2 - ARCCOS(X).
004133,002760: 00,3642           52141                           DXCH     MPAC                                  
004134,002761: 00,3643           16012        LDANZIG            TCF      DANZIG                                
004135,002762: 
004136,002763: 00,3644           50000        ACOSSHR            INDEX    A                                     #  THE SHIFT RIGHT IS LESS THAN 14 SINCE
004137,002764: 00,3645           37654                           CAF      BIT14                                 #  THE INPUT WAS NON-ZERO DP.
004138,002765: 00,3646           54121                           TS       MPTEMP                                
004139,002766: 00,3647           02054                           TC       VSHRRND                               #  DP SHIFT RIGHT AND ROUND.
004140,002767: 00,3650           13602                           TCF      ACOS3                                 #  PROCEED.
004141,002768: 
004142,002769: 00,3651           00006        ACOSOVF            EXTEND                                         #  IF MAJOR PART WAS ONLY 1 MORE THAN .5,
004143,002770: 00,3652           13567                           BZF      ACOS=0                                #  CALL ANSWER ZERO.
004144,002771: 
004145,002772: 00,3653           05440        ACOSABRT           TC       ABORT                                 
004146,002773: 00,3654           01301                           OCT      1301                                  
004147,002774: 
004148,002775: 00,3655           37655        ACOSZERO           CAF      QUARTER                               #  ACOS(0) = PI/2.
004149,002776: 00,3656           13570                           TCF      ACOS=0     +1                         #  SET MPAC AND EXIT VIA ESCAPE.
004150,002777: 
004151,002778: 00,3657           77763        NEG12              DEC      -12        B-14                       
004152,002779: 00,3660           13632        TCSUBTR            TCF      SUBTR                                 
004153,002780: 00,3661                        ENDINTS0           EQUALS                                         
004154,002781: 
004155,002782:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE AVAILABLE FOR SETTING, MODIFYING, AND BRANCHING ON INDEX REGISTERS:
004156,002783:                                                                                                  #           1.  AXT                ADDRESS TO INDEX TRUE.
004157,002784:                                                                                                  #           2.  AXC                ADDRESS TO INDEX COMPLEMENTED.
004158,002785:                                                                                                  #           3.  LXA                LOAD INDEX FROM ERASABLE.
004159,002786:                                                                                                  #           4.  LXC                LOAD INDEX COMPLEMENTED FROM ERASABLE.
004160,002787:                                                                                                  #           5.  SXA                STORE INDEX IN ERASABLE.
004161,002788:                                                                                                  #           6.  XCHX               EXCHANGE INDEX REIGSTER WITH ERASABLE.
004162,002789: 
004163,002790:                                                                                                  #           7.  INCR               INCREMENT INDEX REGISTER.
004164,002791:                                                                                                  #           8.  XAD                ERASABLE ADD TO INDEX REGISTER.
004165,002792:                                                                                                  #           9.  XSU                ERASABLE SUBTRACT FROM INDEX REGISTER.
004166,002793: 
004167,002794:                                                                                                  #          10.  TIX                BRANCH ON INDEX REGISTER AND DECREMENT.
004168,002795: 
004169,002796: 
004170,002797: 
004171,002798: 01,2000                                           SETLOC   12000                                 #  SUFFIX CLASS 01 IS IN BANK 1.
004172,002799: 
004173,002800: 01,2000           02075        AXT                TC       TAGSUB                                #  SELECT APPROPRIATE INDEX REGISTER.
004174,002801: 01,2001           30103                           CA       POLISH                                
004175,002802: 01,2002           50114        XSTORE             INDEX    INDEXLOC                              #  CONTAINS C(FIXLOC) OR C(FIXLOC)+1.
004176,002803: 01,2003           54046                           TS       X1                                    
004177,002804: 01,2004           16012                           TCF      DANZIG                                
004178,002805: 
004179,002806: 01,2005           02075        AXC                TC       TAGSUB                                
004180,002807: 01,2006           40103                           CS       POLISH                                
004181,002808: 01,2007           02002                           TC       XSTORE                                
004182,002809: 
004183,002810: 01,2010           02063        LXA                TC       15ADRERS                              #  LOAD INDEX REGISTER FROM ERASABLE.
004184,002811: 01,2011           50103                           INDEX    POLISH                                
004185,002812: 
004186,002813: 01,2012           30000                           CA       0                                     
004187,002814: 01,2013           12002                           TCF      XSTORE                                
004188,002815: 
004189,002816: 01,2014           02063        LXC                TC       15ADRERS                              #  LOAD NDX REG FROM ERASABLE COMPLEMENTED.
004190,002817: 01,2015           50103                           INDEX    POLISH                                
004191,002818: 01,2016           40000                           CS       0                                     
004192,002819: 01,2017           12002                           TCF      XSTORE                                
004193,002820: 
004194,002821: 01,2020           02063        SXA                TC       15ADRERS                              #  STORE INDEX REGISTER IN ERASABLE.
004195,002822: 01,2021           50114                           INDEX    INDEXLOC                              
004196,002823: 01,2022           30046                           CA       X1                                    
004197,002824: 01,2023           50103        MSTORE1            INDEX    POLISH                                
004198,002825: 01,2024           54000                           TS       0                                     
004199,002826: 01,2025           16012                           TCF      DANZIG                                
004200,002827: 
004201,002828: 01,2026           02063        XCHX               TC       15ADRERS                              #  EXCHANGE INDEX REGISTER WITH ERASABLE.
004202,002829: 
004203,002830: 01,2027           50103                           INDEX    POLISH                                
004204,002831: 01,2030           30000                           CA       0                                     
004205,002832: 01,2031           50114                           INDEX    INDEXLOC                              
004206,002833: 01,2032           56046                           XCH      X1                                    
004207,002834: 01,2033           12023                           TCF      MSTORE1                               
004208,002835: 
004209,002836: 01,2034           02063        XAD                TC       15ADRERS                              #  ADD ERASABLE TO INDEX REGISTER.
004210,002837: 01,2035           50103                           INDEX    POLISH                                
004211,002838: 01,2036           30000                           CA       0                                     
004212,002839: 01,2037           50114        XAD2               INDEX    INDEXLOC                              
004213,002840: 01,2040           26046                           ADS      X1                                    #  IGNORING OVERFLOWS.
004214,002841: 01,2041           16012                           TCF      DANZIG                                
004215,002842: 
004216,002843: 01,2042           02075        INCR               TC       TAGSUB                                #  INCREMENT INDEX REGISTER.
004217,002844: 01,2043           30103                           CA       POLISH                                
004218,002845: 01,2044           12037                           TCF      XAD2                                  
004219,002846: 
004220,002847: 01,2045           02063        XSU                TC       15ADRERS                              #  SUBTRACT ERASABLE FROM INDEX REGISTER.
004221,002848: 01,2046           50103                           INDEX    POLISH                                
004222,002849: 01,2047           40000                           CS       0                                     
004223,002850: 01,2050           12037                           TCF      XAD2                                  
004224,002851: 
004225,002852: 
004226,002853: 
004227,002854: 01,2051           02075        TIX                TC       TAGSUB                                #  BRANCH AND DECREMENT ON INDEX.
004228,002855: 01,2052           50114                           INDEX    INDEXLOC                              
004229,002856: 01,2053           40050                           CS       S1                                    
004230,002857: 01,2054           50114                           INDEX    INDEXLOC                              
004231,002858: 01,2055           60046                           AD       X1                                    
004232,002859: 01,2056           00006                           EXTEND                                         #  NO OPERATION IF DECREMENTED INDEX IS
004233,002860: 01,2057           66012                           BZMF     DANZIG                                #  NEGATIVE OR ZERO.
004234,002861: 
004235,002862: 01,2060           50114        DOTIXBR            INDEX    INDEXLOC                              
004236,002863: 01,2061           56046                           XCH      X1                                    #  IGNORING OVERFLOWS.
004237,002864: 
004238,002865: 01,2062           16631                           TCF      GOTO                                  #  DO THE BRANCH USING THE CADR IN POLISH.
004239,002866: 
004240,002867:                                                                                                  #           SUBROUTINE TO CONVERT AN ERASABLE ADDRESS (11 BITS) TO AN EBANK SETTING AND SUBADDRESS.
004241,002868: 
004242,002869: 01,2063           40103        15ADRERS           CS       POLISH                                
004243,002870: 01,2064           67712                           AD       DEC45                                 
004244,002871: 01,2065           10000                           CCS      A                                     #  DOES THE ADDRESS POINT TO THE WORK AREA?
004245,002872: 01,2066           30104                           CA       FIXLOC                                #  YES.  ADD FIXLOC.  EBANK OK AS IS.
004246,002873: 
004247,002874: 01,2067           12074                           TCF      +5                                    
004248,002875: 
004249,002876: 01,2070           35230                           CA       OCT1400                               #  NO.  SET EBANK & MAKE UP SUBADDRESS.
004250,002877: 01,2071           56103                           XCH      POLISH                                
004251,002878: 01,2072           54003                           TS       EBANK                                 
004252,002879: 01,2073           75227                           MASK     LOW8                                  
004253,002880: 01,2074           26103                 +5        ADS      POLISH                                #  FALL INTO TAGSUB, AND RETURN VIA Q.
004254,002881: 
004255,002882:                                                                                                  #           SUBROUTINE WHICH SETS THE ADDRESS OF THE SPECIFIED INDEX IN INDEXLOC. (ACTUALLY, THE ADDRESS -38D.)
004256,002883: 
004257,002884: 01,2075           30104        TAGSUB             CA       FIXLOC                                
004258,002885: 01,2076           54114                           TS       INDEXLOC                              
004259,002886: 
004260,002887: 01,2077           10020                           CCS      CYR                                   #  BIT 15 SPECIFIES INDEX.
004261,002888: 01,2100           24114                           INCR     INDEXLOC                              #  0 MEANS USE X2.
004262,002889: 01,2101           00002                           TC       Q                                     
004263,002890: 01,2102           00002                           TC       Q                                     #  1 FOR X1.
004264,002891: 
004265,002892:                                                                                                  #           MISCELLANEOUS OPERATION CODES WITH DIRECT ADDRESSES. INCLUDED HERE ARE:
004266,002893: 
004267,002894:                                                                                                  #           1.  ITA                STORE QPRET (RETURN ADDRESS) IN ERASABLE.
004268,002895:                                                                                                  #           2.  CALL               CALL A SUBROUTINE, LEAVING RETURN IN QPRET.
004269,002896:                                                                                                  #           3.  RTB                RETURN TO BASIC LANGUAGE AT THE GIVEN ADDRESS.
004270,002897:                                                                                                  #           4.  BHIZ               BRANCH IF THE HIGH ORDER OF MPAC IS ZERO (SINGLE PRECISION).
004271,002898:                                                                                                  #           5.  BOV                BRANCH ON OVERFLOW.
004272,002899:                                                                                                  #           6.  GOTO               SIMPLE SEQUENCE CHANGE.
004273,002900: 
004274,002901: 01,2103           10020        RTB/BHIZ           CCS      CYR                                   
004275,002902: 01,2104           30103        RTB                CA       POLISH                                
004276,002903: 01,2105           14107                           TCF      BANKJUMP                              #  CALL BASIC ROUTINE.
004277,002904: 
004278,002905: 01,2106           10140        BHIZ               CCS      MPAC                                  
004279,002906: 01,2107           16012                           TCF      DANZIG                                
004280,002907: 01,2110           16631                           TCF      GOTO                                  
004281,002908: 01,2111           16012                           TCF      DANZIG                                
004282,002909: 01,2112           16631                           TCF      GOTO                                  
004283,002910: 
004284,002911: 01,2113           10105        BOV(B)             CCS      OVFIND                                #  BRANCH ON OVERFLOW TO BASIC OR INTERP.
004285,002912: 01,2114           12116                           TCF      +2                                    
004286,002913: 01,2115           16012                           TCF      DANZIG                                
004287,002914: 01,2116           54105                           TS       OVFIND                                
004288,002915: 01,2117           10020                           CCS      CYR                                   
004289,002916: 01,2120           12104                           TCF      RTB                                   #  IF BASIC.
004290,002917: 01,2121           00360        B5TOBB             OCT      360                                   
004291,002918: 01,2122           16631                           TCF      GOTO                                  
004292,002919: 
004293,002920: 01,2123           10020        BZE/GOTO           CCS      CYR                                   #  SEE WHICH OP-CODE IS DESIRED.
004294,002921: 01,2124           06706                           TC       BRANCH                                #  DO BZE.
004295,002922: 01,2125           16012                           TCF      DANZIG                                
004296,002923: 01,2126           16631                           TCF      GOTO                                  #  DO GOTO.
004297,002924: 01,2127           16012                           TCF      DANZIG                                
004298,002925: 
004299,002926: 01,2130           10020        BPL/BMN            CCS      CYR                                   
004300,002927: 01,2131           12137                           TCF      BPL                                   
004301,002928: 01,2132           12000        5B10               DEC      5          B+10                       #  SHIFTS OP CODE IN SWITCH INSTRUCTION ADR
004302,002929: 
004303,002930: 01,2133           06706                           TC       BRANCH                                #  DO BMN.
004304,002931: 01,2134           16012                           TCF      DANZIG                                
004305,002932: 01,2135           16012                           TCF      DANZIG                                
004306,002933: 01,2136           16631                           TCF      GOTO                                  #  ONLY IF NNZ.
004307,002934: 
004308,002935: 01,2137           06706        BPL                TC       BRANCH                                
004309,002936: 01,2140           16631                           TCF      GOTO                                  #  IF POSITIVE OR ZERO.
004310,002937: 01,2141           16631                           TCF      GOTO                                  
004311,002938: 01,2142           16012                           TCF      DANZIG                                
004312,002939: 
004313,002940: 01,2143           10020        CALL/ITA           CCS      CYR                                   
004314,002941: 01,2144           16623                           TCF      CALL                                  
004315,002942: 
004316,002943: 01,2145           05456                           TC       CCSHOLE                               
004317,002944: 01,2146           02063                           TC       15ADRERS                              #  STORE QPRET. (TAGSUB AFTER 15ADRERS IS
004318,002945: 01,2147           50104                           INDEX    FIXLOC                                #  SLOW IN THIS CASE, BUT SAVES STORAGE.)
004319,002946: 01,2150           30052                           CA       QPRET                                 
004320,002947: 01,2151           12023                           TCF      MSTORE1                               
004321,002948: 
004322,002949:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR ALTERING AND TESTING INTERPRETIVE SWITCHES:
004323,002950: 
004324,002951:                                                                                                  #  00       BONSET                 SET A SWITCH AND DO A GOTO IF IT WAS ON.
004325,002952:                                                                                                  #  01       SETGO                  SET A SWITCH AND DO A GOTO.
004326,002953:                                                                                                  #  02       BOFSET                 SET A SWITCH AND DO A GOTO IF IT WAS OFF
004327,002954:                                                                                                  #  03       SET                    SET A SWITCH.
004328,002955: 
004329,002956:                                                                                                  #  04       BONINV                 INVERT A SWITCH AND BRANCH IF IT WAS ON.
004330,002957:                                                                                                  #  05       INVGO                  INVERT A SWITCH AND DO A GOTO.
004331,002958:                                                                                                  #  06       BOFINV                 INVERT A SWITCH AND BRANCH IF IT WAS OFF
004332,002959:                                                                                                  #  07       INVERT                 INVERT A SWITCH.
004333,002960: 
004334,002961:                                                                                                  #  10       BONCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS ON.
004335,002962:                                                                                                  #  11       CLRGO                  CLEAR A SWITCH AND DO A GOTO.
004336,002963:                                                                                                  #  12       BOFCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS OFF.
004337,002964:                                                                                                  #  13       CLEAR                  CLEAR A SWITCH.
004338,002965: 
004339,002966:                                                                                                  #  14       BON                    BRANCH IF A SWITCH WAS ON.
004340,002967:                                                                                                  #  16       BOFF                   BRANCH IF A SWITCH WAS OFF.
004341,002968: 
004342,002969: 
004343,002970: 
004344,002971:                                                                                                  #           THE ADDRESS SUPPLIED WITH THE SWITCH INSTRUCTION IS INTERPRETED AS FOLLOWS:
004345,002972: 
004346,002973:                                                                                                  #           BITS 1-4    SWITCH BIT NUMBER (1-15).
004347,002974:                                                                                                  #           BITS 5-8    SWITCH OPERATION NUMBER.
004348,002975:                                                                                                  #           BITS 9-     SWITCH WORD NUMBER (UP TO 64 SWITCH WORDS).
004349,002976: 
004350,002977:                                                                                                  #           THE ADDRESS ITSELF IS MADE UP BY THE YUL SYSTEM ASSEMBLER. THE BRANCH INSTRUCTIONS REQUIRE TWO
004351,002978:                                                                                                  #  ADDRESSES, THE SECOND TAKEN AS THE DIRECT (OR INDIRECT IF IN ERASABLE) ADDRESS OF THE BRANCH.
004352,002979: 
004353,002980: 
004354,002981: 
004355,002982: 01,2152           37704        SWITCHES           CAF      LOW4                                  #  LEAVE THE SWITCH BIT IN SWBIT  .
004356,002983: 01,2153           70103                           MASK     POLISH                                
004357,002984: 01,2154           50000                           INDEX    A                                     
004358,002985: 01,2155           37653                           CAF      BIT15                                 #  (NUMBER FROM LEFT TO RIGHT.)
004359,002986: 01,2156           54115                           TS       SWBIT                                 
004360,002987: 
004361,002988: 01,2157           37663                           CAF      BIT7                                  #  LEAVE THE SWITCH NUMBER IN SWWORD.
004362,002989: 01,2160           00006                           EXTEND                                         
004363,002990: 01,2161           70103                           MP       POLISH                                
004364,002991: 01,2162           54114                           TS       SWWORD                                
004365,002992: 
004366,002993: 01,2163           00004                           INHINT                                         #  DURING SWITCH CHANGE SO RUPT CAN USE TOO
004367,002994: 01,2164           50000                           INDEX    A                                     #  LEAVE THE SWITCH WORD ITSELF IN L.
004368,002995: 01,2165           30061                           CA       STATE                                 
004369,002996: 
004370,002997: 01,2166           54002                           TS       Q                                     #  Q WILL BE USED AS A CHANNEL.
004371,002998: 01,2167           37657                           CAF      BIT11                                 
004372,002999: 01,2170           00006                           EXTEND                                         #  DISPATCH SWITCH BIT OPERATION AS IN BITS
004373,003000: 01,2171           70103                           MP       POLISH                                #  7-8 OF POLISH.
004374,003001: 01,2172           72232                           MASK     B3TOB4                                #  GETS 4X2-BIT CODE.
004375,003002: 01,2173           50000                           INDEX    A                                     
004376,003003: 01,2174           12175                           TCF      +1                                    
004377,003004: 
004378,003005: 01,2175           30115                 +1        CA       SWBIT                                 #  00 - SET SWITCH IN QUESTION.
004379,003006: 01,2176           00006                           EXTEND                                         
004380,003007: 01,2177           04002                           ROR      Q                                     
004381,003008: 01,2200           12207                           TCF      SWSTORE                               
004382,003009: 
004383,003010: 01,2201           30115                 +5        CA       SWBIT                                 #  01 - INVERT SWITCH.
004384,003011: 01,2202           00006                           EXTEND                                         
004385,003012: 01,2203           06002                           RXOR     Q                                     
004386,003013: 01,2204           12207                           TCF      SWSTORE                               
004387,003014: 
004388,003015: 01,2205           40115                 +9D       CS       SWBIT                                 #  10 - CLEAR.
004389,003016: 01,2206           70002                           MASK     Q                                     
004390,003017: 01,2207           50114        SWSTORE            INDEX    SWWORD                                
004391,003018: 01,2210           54061                           TS       STATE                                 #  NEW SWITCH WORD.
004392,003019: 
004393,003020: 01,2211           00003                 +13D      RELINT                                         #  11 - NOOP.
004394,003021: 01,2212           37655                           CAF      BIT13                                 
004395,003022: 01,2213           00006                           EXTEND                                         #  DISPATCH SEQUCE CHANGING OR BRANCHING
004396,003023: 01,2214           70103                           MP       POLISH                                #  CODE.
004397,003024: 01,2215           72232                           MASK     B3TOB4                                
004398,003025: 01,2216           50000                           INDEX    A                                     
004399,003026: 01,2217           12220                           TCF      +1                                    #  ORIGINALLY STORED IN BITS 5-6.
004400,003027: 
004401,003028: 01,2220           40002                 +1        CS       Q                                     #  00 - BRANCH IF ON.
004402,003029: 01,2221           70115        TEST               MASK     SWBIT                                 
004403,003030: 01,2222           10000                           CCS      A                                     
004404,003031: 01,2223           12233                           TCF      SWSKIP                                
004405,003032: 
004406,003033: 01,2224           16700                 +5        TCF      SWBRANCH                              #  01 - GO TO.
004407,003034: 
004408,003035: 01,2225           12233                           TCF      SWSKIP                                #  HERE ONLY ON BIT 15.
004409,003036: 
004410,003037: 01,2226           05456                           TC       CCSHOLE                               
004411,003038: 01,2227           05456                           TC       CCSHOLE                               
004412,003039: 
004413,003040: 01,2230           30002                 +9D       CA       Q                                     #  10 - BRANCH IF OFF.
004414,003041: 01,2231           12221                           TCF      TEST                                  
004415,003042: 
004416,003043: 01,2232           00014        B3TOB4             OCT      14                                    
004417,003044: 01,2233           24150        SWSKIP             INCR     LOC                                   
004418,003045: 
004419,003046: 01,2234  01,2152               SW/                EQUALS   SWITCHES                              
004420,003047: 
004421,003048: 01,2234           16012                 +13D      TCF      DANZIG                                #  11 - NOOP.
004422,003049: 01,2235                        ENDINTS1           EQUALS                                         

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