Source Code

   YAYUL: ASSEMBLE REVISION 5 OF PROGRAM BOREALIS       BY MSTEWART MAR. 27,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.

001374,000002:                                                                                                  ## Copyright:   Public domain.
001375,000003:                                                                                                  ## Filename:    LIST_PROCESSING_INTERPRETER.agc
001376,000004:                                                                                                  ## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
001377,000005:                                                                                                  ##              (specifically the LM instantiation of it). It is built on top of a heavily
001378,000006:                                                                                                  ##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
001379,000007:                                                                                                  ##              removed. Instead Borealis expands upon the tests provided by Aurora,
001380,000008:                                                                                                  ##              including corrected tests from Retread 44 and tests from Ron Burkey's
001381,000009:                                                                                                  ##              Validation.
001382,000010:                                                                                                  ## Assembler:   yaYUL
001383,000011:                                                                                                  ## Contact:     Mike Stewart <mastewar1@gmail.com>.
001384,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
001385,000013:                                                                                                  ## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
001386,000014:                                                                                                  ##              2017-02-05 RSB  Back-ported comment corrections 
001387,000015:                                                                                                  ##                              identified while proofing Artemis 072.
001388,000016:                                                                                                  ##              2017-03-13 RSB  Comment-text fixes noted in proofing Luminary 116.
001389,000017:                                                                                                  ##              2017-03-15 RSB  Comment-text fixes identified in 5-way
001390,000018:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
001391,000019: 
001392,000020:                                                                                                  #  SECTION 1  DISPATCHER
001393,000021: 
001394,000022:                                                                                                  #           ENTRY TO THE INTERPRETER. INTPRET SETS LOC TO THE FIRST INSTRUCTION, BANKSET TO THE FBANK OF THE
001395,000023:                                                                                                  #  OBJECT INTERPRETIVE PROGRAM, AND INTBIT15 TO THE BIT15 CONTENTS OF FBANK. INTERPRETIVE PROGRAMS MAY BE IN
001396,000024:                                                                                                  #  VIRTUALLY ALL BANKS PRESENT UNDER ANY SUPER-BANK SETTING, WITH THE RESTRICTION THAT PROGRAMS IN HIGH BANKS
001397,000025:                                                                                                  #  (BIT15 OF FBANK = 1) DO NOT REFER TO LOWBANKS, AND VICE-VERSA. THE INTERPRETER DOES NOT SWITCH SUPER-BANK,
001398,000026:                                                                                                  #  NOR DOES IT SWITCH EBANKS. MOST EBANK SWITCHING IS DONE BY THE EXECUTIVE PROGRAM.
001399,000027: 
001400,000028:    6000                                           SETLOC   6000                                  
001401,000029: 
001402,000030:    6000           00006        INTPRET            EXTEND                                         #  SET LOC TO THE WORD FOLLOWING THE TC.
001403,000031:    6001           22150                           QXCH     LOC                                   
001404,000032: 
001405,000033:    6002           30004                 +2        CA       FBANK                                 #  INTERPRETIVE BRANCHES FINISH HERE.
001406,000034:    6003           54151                           TS       BANKSET                               
001407,000035:    6004           77641                           MASK     BIT15                                 #  GET 15TH BIT FOR INDEXABLE ADDRESSES.
001408,000036:    6005           54101                           TS       INTBIT15                              
001409,000037:    6006           66426                           AD       LOW10                                 #  THIS VERSION IS USED IN PROCESSING
001410,000038:    6007           54100                           TS       INTB15+                               #  INDEXABLE FIXED-BANK ADDRESSES.
001411,000039: 
001412,000040:    6010           16023                           TCF      NEWOPS                                #  PICK UP OP CODE PAIR AND BEGIN.
001413,000041: 
001414,000042:    6011           22006        INTRSM             LXCH     BBANK                                 #  RESUME SUSPENDED INTERPRETIVE JOB
001415,000043:    6012           16003                           TCF      INTPRET    +3                         #  (ACTUALLY PART OF THE EXECUTIVE).
001416,000044: 
001417,000045:                                                                                                  #        AT THE END OF MOST INSTRUCTIONS, CONTROL IS GIVEN TO DANZIG TO DISPATCH THE NEXT OPERATION.
001418,000046:    6013           54147        NEWMODE            TS       MODE                                  #  PROLOGUE FOR MODE-CHANGING INSTRUCTIONS.
001419,000047: 
001420,000048:    6014           30151        DANZIG             CA       BANKSET                               #  SET BBANK BEFORE TESTING NEWJOB SO THAT
001421,000049:    6015           54004                           TS       FBANK                                 #  BBANK MAY BE SAVED DIRECTLY BY CHANJOB.
001422,000050: 
001423,000051:    6016           10023        NOIBNKSW           CCS      EDOP                                  #  SEE IF AN ORDER CODE IS LEFT OVER FROM
001424,000052:    6017           16032                           TCF      OPJUMP                                #  THE LAST PAIR RETRIEVED. IF SO, EXECUTE.
001425,000053:                                                                                                  #  EDOP IS SET TO ZERO ON ITS RE-EDITING.
001426,000054: 
001427,000055:    6020           10067                           CCS      NEWJOB                                #  SEE IF A JOB OF HIGHER PRIORITY IS
001428,000056:    6021           14373                           TCF      CHANG2                                #  PRESENT, AND IF SO, CHANGE JOBS.
001429,000057: 
001430,000058:    6022           24150                           INCR     LOC                                   #  ADVANCE THE LOCATION COUNTER.
001431,000059:    6023           50150        NEWOPS             INDEX    LOC                                   #  ENTRY TO BEGIN BY PICKING OP CODE PAIR.
001432,000060:    6024           30000                           CA       0                                     #  MAY BE AN OPCODE PAIR OR A STORE CODE.
001433,000061:    6025           10000                           CCS      A                                     #  TEST SIGN AND GET DABS(A).
001434,000062:    6026           16342                           TCF      DOSTORE                               #  PROCESS STORE CODE.
001435,000063: 
001436,000064:    6027           00177        LOW7               OCT      177                                   
001437,000065: 
001438,000066:    6030           54023                           TS       EDOP                                  #  OP CODE PAIR.  LEAVE THE OTHER IN EDOP
001439,000067:    6031           76027                           MASK     LOW7                                  #  WHERE CCS EDOP WILL HONOR IT NEXT.
001440,000068: 
001441,000069:    6032           54020        OPJUMP             TS       CYR                                   #  LOWWD ENTERS HERE IF A RIGHT-HAND OP
001442,000070:    6033           10020                           CCS      CYR                                   #  CODE IS TO BE PROCESSED. TEST PREFICES.
001443,000071:    6034           16167                           TCF      OPJUMP2                               #  TEST SECOND PREFIX BIT.
001444,000072: 
001445,000073:    6035           16731                           TCF      EXIT                                  #  +0 OP CODE IS EXIT
001446,000074: 
001447,000075:                                                                                                  #        PROCESS ADDRESSES WHICH MAY BE DIRECT, INDEXED, OR REFERENCE THE PUSHDOWN LIST.
001448,000076: 
001449,000077:    6036           77657        ADDRESS            MASK     BIT1                                  #  SEE IF ADDRESS IS INDEXED.  CYR CONTAINED
001450,000078:    6037           10000                           CCS      A                                     #  400XX, SO BIT 1 IS NOW AS IT WAS IN CYR.
001451,000079:    6040           16073                           TCF      INDEX                                 #  FORM INDEXED ADDRESS.
001452,000080: 
001453,000081:    6041           50150        DIRADRES           INDEX    LOC                                   #  LOOK AHEAD TO NEXT WORD TO SEE IF
001454,000082:    6042           40001        OCT40001           CS       1                                     #  ADDRESS IS GIVEN.
001455,000083:    6043           10000                           CCS      A                                     
001456,000084:    6044           16135                           TCF      PUSHUP                                #  IF NOT.
001457,000085: 
001458,000086:    6045           77773        NEG4               DEC      -4         B-14                       
001459,000087: 
001460,000088:    6046           24150                           INCR     LOC                                   #  IF SO, TO SHOW WE PICKED UP A WORD.
001461,000089:    6047           54102                           TS       ADDRWD                                
001462,000090: 
001463,000091:                                                                                                  #           FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE. IN EACH CASE, THE
001464,000092:                                                                                                  #  REQUIRED 12 BIT SUB-ADDRESS IS LEFT IN ADDRWD, WITH ANY REQUIRED BANK SWITCHING DONE (F ONLY). ADDRESSES LESS
001465,000093:                                                                                                  #  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.
001466,000094: 
001467,000095: 
001468,000096: 
001469,000097:    6050           66171                           AD       -ENDVAC                               #  SEE IF ADDRESS RELATIVE TO WORK AREA.
001470,000098:    6051           10000                           CCS      A                                     
001471,000099:    6052           66234                           AD       -ENDERAS                              #  IF NOT, SEE IF IN GENERAL ERASABLE.
001472,000100:    6053           16060                           TCF      IERASTST                              
001473,000101: 
001474,000102:    6054           30104        NETZERO            CA       FIXLOC                                #  IF SO, LEAVE THE MODIFIED ADDRESS IN
001475,000103:    6055           26102                           ADS      ADDRWD                                #  ADDRWD AND DISPATCH.
001476,000104:    6056           50020                 +2        INDEX    CYR                                   #  THIS INDEX MAKES THE NEXT INSTRUCTION
001477,000105:    6057           76234                           7        INDJUMP    -1                         #  TCF INDJUMP + OP, EDITING CYR.
001478,000106: 
001479,000107:    6060           00006        IERASTST           EXTEND                                         
001480,000108:    6061           66056                           BZMF     NETZERO    +2                         #  GENERAL ERASABLE - DISPATCH IMMEDIATELY.
001481,000109: 
001482,000110:    6062           60100        FIXEDADR           AD       INTB15+                               #  FIXED BANK ADDRESS. RESTORE AND ADD B15.
001483,000111:    6063           54004                 +1        TS       FBANK                                 #  SWITCH BANKS AND LEAVE SUB-ADDRESS IN
001484,000112:    6064           76426                           MASK     LOW10                                 #  ADDRWD FOR OPERAND RETRIEVAL.
001485,000113:    6065           67645                           AD       2K                                    
001486,000114:    6066           54102                           TS       ADDRWD                                
001487,000115:    6067           50020                           INDEX    CYR                                   
001488,000116:    6070           76234                           7        INDJUMP    -1                         
001489,000117: 
001490,000118:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES INTERPRETIVE INDEXED ADDRESSES. AN INTERPRETER INDEX REGISTER MAY
001491,000119:                                                                                                  #  CONTAIN THE ADDRESS OF ANY ERASABLE REGISTER (0-42 BEING RELATIVE TO THE VAC AREA) OR ANY INTERPRETIVE PROGRAM
001492,000120:                                                                                                  #  BANK, OR ANY INTEGER IN THAT RANGE.
001493,000121: 
001494,000122:    6071           37676        DODLOAD*           CAF      DLOAD*                                #  STODL* COMES HERE TO PROCESS LOAD ADR.
001495,000123:    6072           54020                           TS       CYR                                   #  (STOVL* ENTERS HERE).
001496,000124: 
001497,000125:    6073           30104        INDEX              CA       FIXLOC                                #  SET UP INDEX LOCATION.
001498,000126:    6074           54114                           TS       INDEXLOC                              
001499,000127:    6075           24150                           INCR     LOC                                   #  (ADDRESS ALWAYS GIVEN).
001500,000128:    6076           50150                           INDEX    LOC                                   
001501,000129:    6077           40000                           CS       0                                     
001502,000130:    6100           10000                           CCS      A                                     #  INDEX 2 IF ADDRESS STORED COMPLEMENTED.
001503,000131:    6101           24114                           INCR     INDEXLOC                              
001504,000132:    6102           16103                           NOOP                                           
001505,000133: 
001506,000134:    6103           54102                           TS       ADDRWD                                #  14 BIT ADDRESS TO ADDRWD.
001507,000135:    6104           76232                           MASK     BANKMASK                              #  IF ADDRESS GREATER THAN 1K, ADD INTBIT15
001508,000136:    6105           00006                           EXTEND                                         
001509,000137:    6106           16111                           BZF      INDEX2                                
001510,000138:    6107           30101                           CA       INTBIT15                              
001511,000139:    6110           26102                           ADS      ADDRWD                                
001512,000140: 
001513,000141:    6111           50114        INDEX2             INDEX    INDEXLOC                              
001514,000142:    6112           40046                           CS       X1                                    
001515,000143:    6113           26102                           ADS      ADDRWD                                #  DO AUGMENT, IGNORING AND CORRECTING OVF.
001516,000144: 
001517,000145:    6114           76231                           MASK     HIGH9                                 #  SEE IF ADDRESS IS IN WORK AREA.
001518,000146:    6115           00006                           EXTEND                                         
001519,000147:    6116           16131                           BZF      INDWORK                               
001520,000148:    6117           76232                           MASK     BANKMASK                              #  SEE IF IN FIXED BANK.
001521,000149:    6120           00006                           EXTEND                                         
001522,000150:    6121           16133                           BZF      INDERASE                              
001523,000151: 
001524,000152:    6122           30102                           CA       ADDRWD                                #  IN FIXED - SWITCH BANKS AND CREATE
001525,000153:    6123           54004                           TS       FBANK                                 #  SUB-ADDRESS.
001526,000154:    6124           76426                           MASK     LOW10                                 
001527,000155:    6125           67645                           AD       2K                                    
001528,000156:    6126           54102                           TS       ADDRWD                                
001529,000157:    6127           50020                           INDEX    CYR                                   
001530,000158:    6130           36234                           3        INDJUMP    -1                         
001531,000159: 
001532,000160:    6131           30104        INDWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO WORK AREA.
001533,000161:    6132           26102                           ADS      ADDRWD                                
001534,000162: 
001535,000163:    6133           50020        INDERASE           INDEX    CYR                                   
001536,000164:    6134           36234                           3        INDJUMP    -1                         
001537,000165: 
001538,000166:                                                                                                  #           PUSH-UP ROUTINES. WHEN NO OPERAND ADDRESS IS GIVEN, THE APPROPRIATE OPERAND IS TAKEN FROM THE PUSH-DOWN
001539,000167:                                                                                                  #  LIST. IN MOST CASES THE MODE OF THE RESULT (VECTOR OR SCALAR) OF THE LAST ARITHMETIC OPERATION PERFORMED
001540,000168:                                                                                                  #  IS THE SAME AS THE TYPE OF OPERAND DESIRED (ALL ADD/SUBTRACT ETC.). EXCEPTIONS TO THIS GENERAL RULE ARE LISTED
001541,000169:                                                                                                  #  BELOW (NOTE THAT IN EVERY CASE THE MODE REGISTER IS LEFT INTACT):
001542,000170: 
001543,000171:                                                                                                  #           1.  VXSC AND V/SC WANT THE OPPOSITE TYPE OF OPERAND, E.G., IF THE LAST OPERATION YIELDED A VECTOR
001544,000172:                                                                                                  #  RESULT, VXSC WANTS A SCALAR.
001545,000173: 
001546,000174:                                                                                                  #           2.  THE LOAD CODES SHOULD LOAD THE ACCUMULATOR INDEPENDENT OF THE RESULT OF THE LAST OPERATION. THIS
001547,000175:                                                                                                  #  INCLUDES VLOAD, DLOAD, TLOAD, PDDL, AND PDVL (NO PUSHUP WITH SLOAD).
001548,000176: 
001549,000177:                                                                                                  #           3.  SOME ARITHMETIC OPERATIONS REQUIRE A STANDARD TYPE OF OPERAND REGARDLESS OF THE PREVIOUS OPERATION.
001550,000178:                                                                                                  #  THIS INCLUDES SIGN WANTING DP AND TAD REQUIRING TP.
001551,000179: 
001552,000180:    6135           36227        PUSHUP             CAF      OCT23                                 #  IF THE LOW 5 BITS OF CYR ARE LESS THAN
001553,000181:    6136           70020                           MASK     CYR                                   #  20, THIS OP REQUIRES SPECIAL ATTENTION.
001554,000182:    6137           66142                           AD       -OCT10                                #  (NO -0).
001555,000183:    6140           10000                           CCS      A                                     
001556,000184:    6141           16153                           TCF      REGUP                                 #  FOR ALL CODES GREATER THAN OCT 7.
001557,000185: 
001558,000186:    6142           77767        -OCT10             OCT      -10                                   
001559,000187: 
001560,000188:    6143           66045                           AD       NEG4                                  #  WE NOW HAVE 7 - OP CODE (MOD4). SEE IF
001561,000189:    6144           10000                           CCS      A                                     #  THE OP CODE (MOD4) IS THREE (REVERSE).
001562,000190:    6145           50000                           INDEX    A                                     #  NO - THE MODE IS DEFINITE.  PICK UP THE
001563,000191:    6146           46164                           CS       NO.WDS                                
001564,000192:    6147           16155                           TCF      REGUP      +2                         
001565,000193: 
001566,000194:    6150           50147                           INDEX    MODE                                  #  FOR VXSC AND V/SC WE WANT THE REQUIRED
001567,000195:    6151           46162                           CS       REVCNT                                #  PUSHLOC DECREMENT WITHOUT CHANGING THE
001568,000196:    6152           16155                           TCF      REGUP      +2                         #  MODE AT THIS TIME.
001569,000197: 
001570,000198:    6153           50147        REGUP              INDEX    MODE                                  #  MOST ALL OP CODES PUSHUP HERE.
001571,000199:    6154           46164                           CS       NO.WDS                                
001572,000200:    6155           26152                 +2        ADS      PUSHLOC                               
001573,000201:    6156           54102                           TS       ADDRWD                                
001574,000202:    6157           50020                           INDEX    CYR                                   
001575,000203:    6160           76234                           7        INDJUMP    -1                         #  (THE INDEX MAKES THIS A TCF.)
001576,000204: 
001577,000205:    6161           00002                           OCT      2                                     #  REVERSE PUSHUP DECREMENT. VECTOR TAKES 2
001578,000206:    6162           00006        REVCNT             OCT      6                                     #  WORDS, SCALAR TAKES 6.
001579,000207:    6163           00006                           OCT      6                                     
001580,000208:    6164           00002        NO.WDS             OCT      2                                     #  CONVENTIONAL DECREMENT IS 6 WORDS VECTOR
001581,000209:    6165           00003                           OCT      3                                     #  2 IN DP, AND 3 IN TP.
001582,000210:    6166           00006                           OCT      6                                     
001583,000211: 
001584,000212:                                                                                                  #           TEST THE SECOND PREFIX BIT TO SEE IF THIS IS A MISCELLANEOUS OR A UNARY/SHORT SHIFT OPERATION.
001585,000213: 
001586,000214:    6167           10020        OPJUMP2            CCS      CYR                                   #  TEST SECOND PREFIX BIT.
001587,000215:    6170           16217                           TCF      OPJUMP3                               #  TEST THIRD BIT TO SEE IF UNARY OR SHIFT.
001588,000216: 
001589,000217:    6171           77722        -ENDVAC            DEC      -45        B-14                       
001590,000218: 
001591,000219:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES ADDRESSES OF SUFFIX CLASS 10. THEY ARE BASICALLY WORK AREA ADDRESSES
001592,000220:                                                                                                  #  IN THE RANGE 0 - 52, ERASABLE ADRES CONSTANTS FROM 100 - 1777, AND FCADRS ABOVE THAT. ALL 15 BITS ARE AVAILABLE
001593,000221:                                                                                                  #  IN CONTRAST TO SUFFIX 1, IN WHICH ONLY THE LOW ORDER 14 ARE AVAILABLE.
001594,000222: 
001595,000223:    6172           24150        15BITADR           INCR     LOC                                   #  (ENTRY HERE FROM STCALL).
001596,000224:    6173           50150                           INDEX    LOC                                   #  PICK UP ADDRESS WORD.
001597,000225:    6174           30000                           CA       0                                     
001598,000226:    6175           54103                           TS       POLISH                                #  THE ABSOLUTE ADDRESS WILL BE LEFT IN
001599,000227:    6176           54102                           TS       ADDRWD                                #  POLISH WITH AN ERASABLE SUBADDRESS IN
001600,000228:                                                                                                  #  ADDRWD.
001601,000229:    6177           76231                           MASK     HIGH9                                 #  SEE IF RELATIVE TO THE WORK AREA.
001602,000230:    6200           10000                           CCS      A                                     
001603,000231:    6201           16203                           TCF      +2                                    
001604,000232:    6202           16210                           TCF      RELWORK                               #  ONLY IF ZERO.
001605,000233: 
001606,000234:    6203           36230                           CAF      LOW7+2K                               #  THESE INSTRUCTIONS ARE IN BANK 1.
001607,000235:    6204           54004                           TS       FBANK                                 
001608,000236:    6205           70020                           MASK     CYR                                   
001609,000237:    6206           50000                           INDEX    A                                     
001610,000238:    6207           16275                           TCF      MISCJUMP                              
001611,000239: 
001612,000240:    6210           30104        RELWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO FIXLOC, LEAVING
001613,000241:    6211           26102                           ADS      ADDRWD                                #  POLISH ABSOLUTE IN CASE THIS WAS AN
001614,000242:    6212           36230                           CAF      LOW7+2K                               #  AXT, ETC.
001615,000243:    6213           54004                           TS       FBANK                                 
001616,000244:    6214           70020                           MASK     CYR                                   
001617,000245:    6215           50000                           INDEX    A                                     
001618,000246:    6216           16275                           TCF      MISCJUMP                              
001619,000247: 
001620,000248:                                                                                                  #           COMPLETE THE DISPATCHING OF UNARY AND SHORT SHIFT OPERATIONS.
001621,000249: 
001622,000250:    6217           54004        OPJUMP3            TS       FBANK                                 #  CALL IN BANK 0 (BITS 11-15 OF A ARE 0.)
001623,000251:    6220           10020                           CCS      CYR                                   #  TEST THIRD PREFIX BIT.
001624,000252:    6221           50000                           INDEX    A                                     #  THE DECREMENTED UNARY CODE IS IN BITS
001625,000253:    6222           16315                           TCF      UNAJUMP                               #  1-4 OF A (ZERO, EXIT, HAS BEEN DETECTED)
001626,000254: 
001627,000255:    6223           10147                           CCS      MODE                                  #  ITS A SHORT SHIFT CODE. SEE IF PRESENT
001628,000256:    6224           12000                           TCF      SHORTT                                #  SCALAR OR VECTOR.
001629,000257:    6225           12000                           TCF      SHORTT                                
001630,000258:    6226           12102                           TCF      SHORTV                                #  CALLS THE APPROPRIATE ROUTINE.
001631,000259: 
001632,000260: 
001633,000261:    6227           00023        OCT23              OCT      23                                    #  MASK USED BY PUSH-UP ROUTINE.
001634,000262:    6230           02177        LOW7+2K            OCT      2177                                  #  OP CODE MASK + BANK 1 FBANK SETTING.
001635,000263:    6231           77700        HIGH9              OCT      77700                                 
001636,000264:    6232           76000        BANKMASK           OCT      76000                                 #  FBANK MASK.
001637,000265:    6233     6232               FBANKMSK           EQUALS   BANKMASK                              
001638,000266:    6233           36000        B11T14             OCT      36000                                 #  USED IN PROCESSING STORE CODES.
001639,000267:    6234           76056        -ENDERAS           DEC      -977       B-14                       
001640,000268: 
001641,000269:                                                                                                  #           THE FOLLOWING IS THE JUMP TABLE FOR OP CODES WHICH MAY HAVE INDEXABLE ADDRESSES OR MAY PUSH UP.
001642,000270: 
001643,000271:    6235           16511        INDJUMP            TCF      VLOAD                                 #  00 - LOAD MPAC WITH A VECTOR.
001644,000272:    6236           17050                           TCF      TAD                                   #  01 - TRIPLE PRECISION ADD TO MPAC.
001645,000273:    6237           17603                           TCF      SIGN                                  #  02 - COMPLEMENT MPAC (V OR SC) IF X NEG.
001646,000274:    6240           17354                           TCF      VXSC                                  #  03 - VECTOR TIMES SCALAR.
001647,000275:    6241           16672                           TCF      CGOTO                                 #  04 - COMPUTED GO TO.
001648,000276:    6242           16474                           TCF      TLOAD                                 #  05 - LOAD MPAC WITH TRIPLE PRECISION.
001649,000277:    6243           16465                           TCF      DLOAD                                 #  06 - LOAD MPAC WITH A DP SCALAR.
001650,000278:    6244           17552                           TCF      V/SC                                  #  07 - VECTOR DIVIDED BY SCALAR.
001651,000279: 
001652,000280:    6245           16505                           TCF      SLOAD                                 #  10 - LOAD MPAC IN SINGLE PRECISION.
001653,000281:    6246           16624                           TCF      SSP                                   #  11 - SET SINGLE PRECISION INTO X.
001654,000282:    6247           16527                           TCF      PDDL                                  #  12 - PUSH DOWN MPAC AND RE-LOAD IN DP.
001655,000283:    6250           17307                           TCF      MXV                                   #  13 - MATRIX POST-MULTIPLIED BY VECTOR.
001656,000284:    6251           16563                           TCF      PDVL                                  #  14 - PUSH DOWN AND VECTOR LOAD.
001657,000285:    6252           16632                           TCF      CCALL                                 #  15 - COMPUTED CALL.
001658,000286:    6253           17312                           TCF      VXM                                   #  16 - MATRIX PRE-MULTIPLIED BY VECTOR.
001659,000287:    6254           17544                           TCF      TSLC                                  #  17 - NORMALIZE MPAC (SCALAR ONLY).
001660,000288: 
001661,000289:    6255           17522                           TCF      DMPR                                  #  20 - DP MULTIPLY AND ROUND.
001662,000290:    6256           17525                           TCF      DDV                                   #  21 - DP DIVIDE BY.
001663,000291:    6257           17531                           TCF      BDDV                                  #  22 - DP DIVIDE INTO.
001664,000292:    6260           17547                           TCF      GSHIFT                                #  23 - GENERAL SHIFT INSTRUCTION.
001665,000293:    6261           16733                           TCF      VAD                                   #  24 - VECTOR ADD.
001666,000294:    6262           16761                           TCF      VSU                                   #  25 - VECTOR SUBTRACT.
001667,000295:    6263           17011                           TCF      BVSU                                  #  26 - VECTOR SUBTRACT FROM.
001668,000296:    6264           17304                           TCF      DOT                                   #  27 - VECTOR DOT PRODUCT.
001669,000297: 
001670,000298:    6265           17434                           TCF      VXV                                   #  30 - VECTOR CROSS PRODUCT.
001671,000299:    6266           17400                           TCF      VPROJ                                 #  31 - VECTOR PROJECTION.
001672,000300:    6267           16777                           TCF      DSU                                   #  32 - DP SUBTRACT.
001673,000301:    6270           17035                           TCF      BDSU                                  #  33 - DP SUBTRACT FROM.
001674,000302:    6271           16751                           TCF      DAD                                   #  34 - DP ADD.
001675,000303:    6272           16272                           TCF      +0                                    #  35 - AVAILABLE
001676,000304:    6273           17520                           TCF      DMP1                                  #  36 - DP MULTIPLY.
001677,000305:    6274           17541                           TCF      SETPD                                 #  37 - SET PUSH DOWN POINTER (DIRECT ONLY)
001678,000306: 
001679,000307:                                                                                                  #  CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED.
001680,000308: 
001681,000309:                                                                                                  #           THE FOLLOWING JUMP TABLE APPLIES TO INDEX, BRANCH, AND MISCELLANEOUS INSTRUCTIONS.
001682,000310: 
001683,000311:    6275           12000        MISCJUMP           TCF      AXT                                   #  00 - ADDRESS TO INDEX TRUE.
001684,000312:    6276           12005                           TCF      AXC                                   #  01 - ADDRESS TO INDEX COMPLEMENTED.
001685,000313:    6277           12010                           TCF      LXA                                   #  02 - LOAD INDEX FROM ERASABLE.
001686,000314:    6300           12014                           TCF      LXC                                   #  03 - LOAD INDEX FROM COMPLEMENT OF ERAS.
001687,000315:    6301           12020                           TCF      SXA                                   #  04 - STORE INDEX IN ERASABLE.
001688,000316:    6302           12024                           TCF      XCHX                                  #  05 - EXCHANGE INDEX WITH ERASABLE.
001689,000317:    6303           12040                           TCF      INCR                                  #  06 - INCREMENT INDEX REGISTER.
001690,000318:    6304           12047                           TCF      TIX                                   #  07 - TRANSFER ON INDEX.
001691,000319: 
001692,000320:    6305           12032                           TCF      XAD                                   #  10 - INDEX REGISTER ADD FROM ERASABLE.
001693,000321:    6306           12043                           TCF      XSU                                   #  11 - INDEX SUBTRACT FROM ERASABLE.
001694,000322:    6307           12107                           TCF      BZE/GOTO                              #  12 - BRANCH ZERO AND GOTO.
001695,000323:    6310           12114                           TCF      BPL/BMN                               #  13 - BRANCH PLUS AND BRANCH MINUS.
001696,000324:    6311           12127                           TCF      CALL/ITA                              #  14 - CALL AND STORE QPRET.
001697,000325:    6312           12067                           TCF      RTB/BHIZ                              #  15 - RETURN TO BASIC AND BRANCH HI ZERO.
001698,000326:    6313           12135                           TCF      SW/                                   #  16 - SWITCH INSTRUCTIONS AND AVAILABLE.
001699,000327:    6314           12077                           TCF      BOV(B)                                #  17 - BRANCH ON OVERFLOW TO BASIC OR INT.
001700,000328: 
001701,000329:                                                                                                  #           THE FOLLOWING JUMP TABLE APPIES TO UNARY INSTRUCTIONS.
001702,000330: 
001703,000331:                                                                                                  #  00 - EXIT - DETECTED EARLIER.
001704,000332:    6315           13135        UNAJUMP            TCF      SQRT                                  #  01 - SQUARE ROOT.
001705,000333:    6316           13456                           TCF      SINE                                  #  02 - SIN.
001706,000334:    6317           13445                           TCF      COSINE                                #  03 - COS.
001707,000335:    6320           13536                           TCF      ARCSIN                                #  04 - ARC SIN.
001708,000336:    6321           13540                           TCF      ARCCOS                                #  05 - ARC COS.
001709,000337:    6322           13122                           TCF      DSQ                                   #  06 - DP SQUARE.
001710,000338:    6323           12077                           TCF      ROUND                                 #  07 - ROUND TO DP.
001711,000339: 
001712,000340:    6324           17616                           TCF      COMP                                  #  10 - COMPLEMENT VECTOR OR SCALAR.
001713,000341:    6325           13160                           TCF      VDEF                                  #  11 - VECTOR DEFINE.
001714,000342:    6326           12750                           TCF      UNIT                                  #  12 - UNIT VECTOR.
001715,000343:    6327           13124                           TCF      ABVALABS                              #  13 - LENGTH OF VECTOR OR MAG OF SCALAR.
001716,000344:    6330           13174                           TCF      VSQ                                   #  14 - SQUARE OF LENGTH OF VECTOR.
001717,000345:    6331           16334                           TCF      STADR                                 #  15 - PUSH UP ON STORE CODE.
001718,000346:    6332           13224                           TCF      RVQ                                   #  16 - RETURN VIA QPRET.
001719,000347:    6333           13177                           TCF      PUSH                                  #  17 - PUSH MPAC DOWN.
001720,000348: 
001721,000349:                                                                                                  #  SECTION 2  LOAD AND STORE PACKAGE.
001722,000350: 
001723,000351:                                                                                                  #           A SET OF SIXTEEN STORE CODES ARE PROVIDED AS THE PRIMARY METHOD OF STORING THE MULTI-PURPOSE
001724,000352:                                                                                                  #  ACCUMULATOR (MPAC). IF IN THE DANZIG SECTION LOC REFERS TO AN ALGEBRAICALLY POSITIVE WORD, IT IS TAKEN AS A
001725,000353:                                                                                                  #  STORE CODE WITH A CORRESPONDING ERASABLE ADDRESS. MOST OF THESE CODES ARE TWO ADDRESS, SPECIFYING THAT THE WORD
001726,000354:                                                                                                  #  FOLLOWING THE STORE CODE IS TO BE USED AS AN ADDRESS FROM WHICH TO RE-LOAD MPAC. FOUR OPTIONS ARE AVAILABLE:
001727,000355: 
001728,000356:                                                                                                  #           1. STORE               STORE MPAC. THE E ADDRESS MAY BE INDEXED.
001729,000357:                                                                                                  #           2. STODL               STORE MPAC AND RE-LOAD IT IN DP WITH THE NEXT ADDRESS (EITHER MAY BE INDEXED).
001730,000358:                                                                                                  #           3. STOVL               STORE MPAC AND RE-LOAD A VECTOR (AS ABOVE).
001731,000359:                                                                                                  #           4. STCALL              STORE AND DO A CALL (BOTH ADDRESSES MUST BE DIRECT HERE).
001732,000360: 
001733,000361:                                                                                                  #           STODL AND STOVL WILL TAKE FROM THE PUSH-DOWN LIST IF NO LOAD ADDRESS IS GIVEN.
001734,000362: 
001735,000363: 
001736,000364: 
001737,000365:    6334           30151        STADR              CA       BANKSET                               #  THE STADR CODE (PUSHUP UP ON STORE
001738,000366:    6335           54004                           TS       FBANK                                 #  ADDRESS) ENTERS HERE.
001739,000367:    6336           24150                           INCR     LOC                                   
001740,000368:    6337           50150                           INDEX    LOC                                   #  THE STORE CODE WAS STORE COMPLEMENTED TO
001741,000369:    6340           40000                           CS       0                                     #  MAKE IT LOOK LIKE AN OPCODE PAIR.
001742,000370:    6341           67667                           AD       NEGONE                                #  (YUL CANT REMOVE 1 BECAUSE OF EARLY CCS)
001743,000371: 
001744,000372:    6342           54102        DOSTORE            TS       ADDRWD                                
001745,000373:    6343           76426                           MASK     LOW10                                 #  ENTRY FROM DISPATCHER. SAVE THE ERASABLE
001746,000374:    6344           56102                           XCH      ADDRWD                                #  ADDRESS AND JUMP ON THE STORE CODE NO.
001747,000375:    6345           76233                           MASK     B11T14                                
001748,000376:    6346           00006                           EXTEND                                         
001749,000377:    6347           77652                           MP       BIT6                                  #  EACH TRANSFER VECTOR ENTRY IS TWO WORDS.
001750,000378:    6350           50000                           INDEX    A                                     
001751,000379:    6351           16352                           TCF      STORJUMP                              
001752,000380: 
001753,000381:                                                                                                  #           STORE CODE JUMP TABLE. CALLS THE APPROPRIATE STORING ROUTINE AND EXITS TO DANZIG OR TO ADDRESS WITH
001754,000382:                                                                                                  #  A SUPPLIED OPERATION CODE.
001755,000383: 
001756,000384:    6352           06422        STORJUMP           TC       STORE                                 #  STORE.
001757,000385:    6353           16022                           TCF      NEWOPS     -1                         #  PICK UP NEW OP CODE(S).
001758,000386:    6354           06414                           TC       STORE,1                               
001759,000387:    6355           16022                           TCF      NEWOPS     -1                         
001760,000388:    6356           06417                           TC       STORE,2                               
001761,000389:    6357           16022                           TCF      NEWOPS     -1                         
001762,000390: 
001763,000391:    6360           06422                           TC       STORE                                 #  STODL.
001764,000392:    6361           16455                           TCF      DODLOAD                               
001765,000393:    6362           06414                           TC       STORE,1                               
001766,000394:    6363           16455                           TCF      DODLOAD                               
001767,000395:    6364           06417                           TC       STORE,2                               
001768,000396:    6365           16455                           TCF      DODLOAD                               
001769,000397: 
001770,000398:    6366           06422                           TC       STORE                                 #  STODL WITH INDEXED LOAD ADDRESS.
001771,000399:    6367           16071                           TCF      DODLOAD*                              
001772,000400:    6370           06414                           TC       STORE,1                               
001773,000401:    6371           16071                           TCF      DODLOAD*                              
001774,000402:    6372           06417                           TC       STORE,2                               
001775,000403:    6373           16071                           TCF      DODLOAD*                              
001776,000404: 
001777,000405:    6374           06422                           TC       STORE                                 #  STOVL.
001778,000406:    6375           16460                           TCF      DOVLOAD                               
001779,000407:    6376           06414                           TC       STORE,1                               
001780,000408:    6377           16460                           TCF      DOVLOAD                               
001781,000409:    6400           06417                           TC       STORE,2                               
001782,000410:    6401           16460                           TCF      DOVLOAD                               
001783,000411: 
001784,000412:    6402           06422                           TC       STORE                                 #  STOVL WITH INDEXED LOAD ADDRESS.
001785,000413:    6403           16463                           TCF      DOVLOAD*                              
001786,000414:    6404           06414                           TC       STORE,1                               
001787,000415:    6405           16463                           TCF      DOVLOAD*                              
001788,000416:    6406           06417                           TC       STORE,2                               
001789,000417:    6407           16463                           TCF      DOVLOAD*                              
001790,000418: 
001791,000419:    6410           06422                           TC       STORE                                 #  STOTC.
001792,000420:    6411           37674                           CAF      CALLCODE                              
001793,000421:    6412           54020                           TS       CYR                                   
001794,000422:    6413           16172                           TCF      15BITADR                              #  GET A 15 BIT ADDRESS.
001795,000423: 
001796,000424:                                                                                                  #           STORE CODE ADDRESS PROCESSOR.
001797,000425: 
001798,000426:    6414           50104        STORE,1            INDEX    FIXLOC                                
001799,000427:    6415           40046                           CS       X1                                    
001800,000428:    6416           16421                           TCF      PRESTORE                              
001801,000429: 
001802,000430:    6417           50104        STORE,2            INDEX    FIXLOC                                
001803,000431:    6420           40047                           CS       X2                                    
001804,000432:    6421           26102        PRESTORE           ADS      ADDRWD                                #  RESULTANT ADDRESS IS IN ERASABLE.
001805,000433: 
001806,000434:    6422           30102        STORE              CA       ADDRWD                                #  SEE IF ADDRESS RELATIVE TO WORK AREA.
001807,000435:    6423           66171                           AD       -ENDVAC                               
001808,000436:    6424           10000                           CCS      A                                     
001809,000437:    6425           16431                           TCF      STARTSTO                              #  ADDRESS OK AS IS.
001810,000438: 
001811,000439:    6426           01777        LOW10              OCT      1777                                  
001812,000440: 
001813,000441:    6427           30104                           CA       FIXLOC                                #  GIVEN ADDRESS IS RELATIVE TO WORK AREA.
001814,000442:    6430           26102                           ADS      ADDRWD                                
001815,000443: 
001816,000444:                                                                                                  #           STORING ROUTINES. STORE DP, TP, OR VECTOR AS INDICATED BY MODE.
001817,000445: 
001818,000446:    6431           00006        STARTSTO           EXTEND                                         #  MPAC,+1 MUST BE STORED IN ANY EVENT.
001819,000447:    6432           30141                           DCA      MPAC                                  
001820,000448:    6433           50102                           INDEX    ADDRWD                                
001821,000449:    6434           52001                           DXCH     0                                     
001822,000450: 
001823,000451:    6435           10147                           CCS      MODE                                  
001824,000452:    6436           16451                           TCF      TSTORE                                
001825,000453:    6437           00002                           TC       Q                                     
001826,000454: 
001827,000455:    6440           00006        VSTORE             EXTEND                                         
001828,000456:    6441           30144                           DCA      MPAC       +3                         
001829,000457:    6442           50102                           INDEX    ADDRWD                                
001830,000458:    6443           52003                           DXCH     2                                     
001831,000459: 
001832,000460:    6444           00006                           EXTEND                                         
001833,000461:    6445           30146                           DCA      MPAC       +5                         
001834,000462:    6446           50102                           INDEX    ADDRWD                                
001835,000463:    6447           52005                           DXCH     4                                     
001836,000464:    6450           00002                           TC       Q                                     
001837,000465: 
001838,000466:    6451           30142        TSTORE             CA       MPAC       +2                         
001839,000467:    6452           50102                           INDEX    ADDRWD                                
001840,000468:    6453           54002                           TS       2                                     
001841,000469:    6454           00002                           TC       Q                                     
001842,000470: 
001843,000471:                                                                                                  #           ROUTINES TO BEGIN PROCESSING OF THE SECOND ADDRESS ASSOCIATED WITH ALL STORE-TYPE CODES EXCEPT STORE
001844,000472:                                                                                                  #  ITSELF.
001845,000473: 
001846,000474:    6455           37675        DODLOAD            CAF      DLOADCOD                              
001847,000475:    6456           54020                           TS       CYR                                   
001848,000476:    6457           16041                           TCF      DIRADRES                              #  GO GET A DIRECT ADDRESS.
001849,000477: 
001850,000478:    6460           37641        DOVLOAD            CAF      VLOADCOD                              
001851,000479:    6461           54020                           TS       CYR                                   
001852,000480:    6462           16041                           TCF      DIRADRES                              
001853,000481: 
001854,000482:    6463           36042        DOVLOAD*           CAF      VLOAD*                                
001855,000483:    6464           16072                           TCF      DODLOAD*   +1                         #  PROLOGUE TO INDEX ROUTINE.
001856,000484: 
001857,000485:                                                                                                  #           THE FOLLOWING LOAD INSTRUCTIONS ARE PROVIDED FOR LOADING THE MULTI-PURPOSE ACCUMULATOR MPAC.
001858,000486: 
001859,000487:    6465           00006        DLOAD              EXTEND                                         
001860,000488:    6466           50102                           INDEX    ADDRWD                                
001861,000489:    6467           30001                           DCA      0                                     #  PICK UP DP ARGUMENT AND LEAVE IT IN
001862,000490:    6470           52141        SLOAD2             DXCH     MPAC                                  #  MPAC,+1, SETTING MPAC +2 TO ZERO. THE
001863,000491:    6471           37665                           CAF      ZERO                                  #  CONTENTS OF THE OTHER FOUR REGISTERS OF
001864,000492:    6472           54142                           TS       MPAC       +2                         #  MPAC ARE IRRELEVANT.
001865,000493:    6473           16013                           TCF      NEWMODE                               #  DECLARE DOUBLE PRECISION MODE.
001866,000494: 
001867,000495:    6474           50102        TLOAD              INDEX    ADDRWD                                
001868,000496:    6475           30002                           CA       2                                     #  LOAD A TRIPLE PRECISION ARGUMENT INTO
001869,000497:    6476           54142                           TS       MPAC       +2                         #  THE FIRST THREE MPAC REGISTERS, WITH THE
001870,000498:    6477           00006                           EXTEND                                         #  CONTENTS OF THE OTHER FOUR IRRELEVANT.
001871,000499:    6500           50102                           INDEX    ADDRWD                                
001872,000500:    6501           30001                           DCA      0                                     
001873,000501:    6502           52141                           DXCH     MPAC                                  
001874,000502:    6503           37657                           CAF      ONE                                   
001875,000503:    6504           16013                           TCF      NEWMODE                               #  DECLARE TRIPLE PRECISION MODE.
001876,000504: 
001877,000505:    6505           22007        SLOAD              ZL                                             #  LOAD A SINGLE PRECISION NUMBER INTO
001878,000506:    6506           50102                           INDEX    ADDRWD                                #  MPAC, SETTING MPAC+1,2 TO ZERO. THE
001879,000507:    6507           30000                           CA       0                                     #  CONTENTS OF THE REMAINING MPAC REGISTERS
001880,000508:    6510           16470                           TCF      SLOAD2                                #  ARE IRRELEVANT.
001881,000509: 
001882,000510:    6511           00006        VLOAD              EXTEND                                         #  LOAD A DOUBLE PRECISION VECTOR INTO
001883,000511:    6512           50102                           INDEX    ADDRWD                                #  MPAC,+1, MPAC+3,4, AND MPAC+5,6. THE
001884,000512:    6513           30001                           DCA      0                                     #  CONTENTS OF MPAC +2 ARE IRRELEVANT.
001885,000513:    6514           52141                           DXCH     MPAC                                  
001886,000514: 
001887,000515:    6515           00006        ENDVLOAD           EXTEND                                         #  PDVL COMES HERE TO FINISH UP FOR DP, TP.
001888,000516:    6516           50102                           INDEX    ADDRWD                                
001889,000517:    6517           30003                           DCA      2                                     
001890,000518:    6520           52144                           DXCH     MPAC       +3                         
001891,000519: 
001892,000520:    6521           00006                 +4        EXTEND                                         #  TPDVL FINISHES HERE.
001893,000521:    6522           50102                           INDEX    ADDRWD                                
001894,000522:    6523           30005                           DCA      4                                     
001895,000523:    6524           52146                           DXCH     MPAC       +5                         
001896,000524: 
001897,000525:    6525           47657                           CS       ONE                                   #  DECLARE VECTOR MODE.
001898,000526:    6526           16013                           TCF      NEWMODE                               
001899,000527: 
001900,000528:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE PROVIDED FOR STORING OPERANDS IN THE PUSHDOWN LIST:
001901,000529: 
001902,000530:                                                                                                  #           1.  PUSH               PUSHDOWN AND NO LOAD.
001903,000531:                                                                                                  #           2.  PDDL               PUSHDOWN AND DOUBLE PRECISION LOAD.
001904,000532:                                                                                                  #           3.  PDVL               PUSHDOWN AND VECTOR LOAD.
001905,000533: 
001906,000534:    6527           00006        PDDL               EXTEND                                         
001907,000535:    6530           50102                           INDEX    ADDRWD                                #  LOAD MPAC,+1, PUSHING THE FORMER
001908,000536:    6531           30001                           DCA      0                                     #  CONTENTS DOWN.
001909,000537:    6532           52141                           DXCH     MPAC                                  
001910,000538:    6533           50152                           INDEX    PUSHLOC                               
001911,000539:    6534           52001                           DXCH     0                                     
001912,000540: 
001913,000541:    6535           50147                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER APPRO-
001914,000542:    6536           36164                           CAF      NO.WDS                                #  PRIATELY.
001915,000543:    6537           26152                           ADS      PUSHLOC                               
001916,000544: 
001917,000545:    6540           10147                           CCS      MODE                                  
001918,000546:    6541           16556                           TCF      ENDTPUSH                              
001919,000547:    6542           16554                           TCF      ENDDPUSH                              
001920,000548: 
001921,000549:    6543           54147                           TS       MODE                                  #  NOW DP.
001922,000550:    6544           54142        ENDVPUSH           TS       MPAC       +2                         
001923,000551:    6545           52144                           DXCH     MPAC       +3                         #  PUSH DOWN THE REST OF THE VECTOR HERE.
001924,000552:    6546           50152                           INDEX    PUSHLOC                               
001925,000553:    6547           51775                           DXCH     0          -4                         
001926,000554: 
001927,000555:    6550           52146                           DXCH     MPAC       +5                         
001928,000556:    6551           50152                           INDEX    PUSHLOC                               
001929,000557:    6552           51777                           DXCH     0          -2                         
001930,000558: 
001931,000559:    6553           16014                           TCF      DANZIG                                
001932,000560: 
001933,000561:    6554           54142        ENDDPUSH           TS       MPAC       +2                         #  SET MPAC +2 TO ZERO AND EXIT ON DP.
001934,000562:    6555           16014                           TCF      DANZIG                                
001935,000563: 
001936,000564:    6556           54147        ENDTPUSH           TS       MODE                                  
001937,000565:    6557           56142                           XCH      MPAC       +2                         #  ON TRIPLE, SET MPAC +2 TO ZERO, PUSHING
001938,000566:    6560           50152                 +2        INDEX    PUSHLOC                               #  DOWN THE OLD CONTENTS
001939,000567:    6561           53777                           TS       0          -1                         
001940,000568:    6562           16014                           TCF      DANZIG                                
001941,000569: 
001942,000570:                                                                                                  #           PDVL - PUSHDOWN AND VECTOR LOAD.
001943,000571: 
001944,000572:    6563           00006        PDVL               EXTEND                                         #  RELOAD MPAC AND PUSH DOWN ITS CONTENTS.
001945,000573:    6564           50102                           INDEX    ADDRWD                                
001946,000574:    6565           30001                           DCA      0                                     
001947,000575:    6566           52141                           DXCH     MPAC                                  
001948,000576:    6567           50152                           INDEX    PUSHLOC                               
001949,000577:    6570           52001                           DXCH     0                                     
001950,000578: 
001951,000579:    6571           50147                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER.
001952,000580:    6572           36164                           CAF      NO.WDS                                
001953,000581:    6573           26152                           ADS      PUSHLOC                               
001954,000582: 
001955,000583:    6574           10147                           CCS      MODE                                  #  TEST PAST MODE.
001956,000584:    6575           16614                           TCF      TPDVL                                 
001957,000585:    6576           16515                           TCF      ENDVLOAD                              #  JUST LOAD LAST FOUR REGISTERS ON DP.
001958,000586: 
001959,000587:    6577           00006        VPDVL              EXTEND                                         #  PUSHDOWN AND RE-LOAD LAST TWO COMPONENTS
001960,000588:    6600           50102                           INDEX    ADDRWD                                
001961,000589:    6601           30003                           DCA      2                                     
001962,000590:    6602           52144                           DXCH     MPAC       +3                         
001963,000591:    6603           50152                           INDEX    PUSHLOC                               
001964,000592:    6604           51775                           DXCH     0          -4                         
001965,000593: 
001966,000594:    6605           00006                           EXTEND                                         
001967,000595:    6606           50102                           INDEX    ADDRWD                                
001968,000596:    6607           30005                           DCA      4                                     
001969,000597:    6610           52146                           DXCH     MPAC       +5                         
001970,000598:    6611           50152                           INDEX    PUSHLOC                               
001971,000599:    6612           51777                           DXCH     0          -2                         
001972,000600: 
001973,000601:    6613           16014                           TCF      DANZIG                                
001974,000602: 
001975,000603:    6614           00006        TPDVL              EXTEND                                         #  ON TP, WE MUST LOAD THE Y COMPONENT
001976,000604:    6615           50102                           INDEX    ADDRWD                                #  BEFORE STORING MPAC +2 IN CASE THIS IS A
001977,000605:    6616           30003                           DCA      2                                     #  PUSHUP.
001978,000606:    6617           52144                           DXCH     MPAC       +3                         
001979,000607: 
001980,000608:    6620           30142                           CA       MPAC       +2                         
001981,000609:    6621           50152                           INDEX    PUSHLOC                               #  IN DP.
001982,000610:    6622           53777                           TS       0          -1                         
001983,000611:    6623           16521                           TCF      ENDVLOAD   +4                         
001984,000612: 
001985,000613:                                                                                                  #           SSP (STORE SINGLE PRECISION) IS EXECUTED HERE.
001986,000614: 
001987,000615:    6624           24150        SSP                INCR     LOC                                   #  PICK UP THE WORD FOLLOWING THE GIVEN
001988,000616:    6625           50150                           INDEX    LOC                                   #  ADDRESS AND STORE IT AT X.
001989,000617:    6626           30000                           CA       0                                     
001990,000618:    6627           50102        STORE1             INDEX    ADDRWD                                #  SOME INDEX AND MISCELLANEOUS OPS END
001991,000619:    6630           54000                           TS       0                                     #  HERE.
001992,000620: 
001993,000621:    6631           16014                           TCF      DANZIG                                
001994,000622: 
001995,000623:                                                                                                  #  SEQUENCE CHANGING AND SUBROUTINE CALLING OPTIONS.
001996,000624: 
001997,000625:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR SEQUENCING CHANGING, BRANCHING, AND CALLING SUBROUTINES:
001998,000626: 
001999,000627:                                                                                                  #           1. GOTO                GO TO.
002000,000628:                                                                                                  #           2. CALL                CALL SUBROUTINE SETTING QPRET.
002001,000629:                                                                                                  #           3. CGOTO               COMPUTED GO TO.
002002,000630:                                                                                                  #           4. CCALL               COMPUTED CALL.
002003,000631:                                                                                                  #           7. BPL                 BRANCH IF MPAC POSITIVE OR ZERO.
002004,000632:                                                                                                  #           8. BZE                 BRANCH IF MPAC ZERO.
002005,000633:                                                                                                  #           9. BMN                 BRANCH IF MPAC NEGATIVE NON-ZERO.
002006,000634: 
002007,000635:    6632           24150        CCALL              INCR     LOC                                   #  MAINTAIN LOC FOR QPRET COMPUTATION.
002008,000636:    6633           50150                           INDEX    LOC                                   
002009,000637:    6634           30000                           CAF      0                                     #  GET BASE ADDRESS OF CADR LIST.
002010,000638:    6635           50102                           INDEX    ADDRWD                                
002011,000639:    6636           60000                           AD       0                                     #  ADD INCREMENT.
002012,000640:    6637           54004                           TS       FBANK                                 #  SELECT DESIRED CADR.
002013,000641:    6640           76426                           MASK     LOW10                                 
002014,000642:    6641           50000                           INDEX    A                                     
002015,000643:    6642           32000                           CAF      10000                                 
002016,000644:    6643           54103                 -1        TS       POLISH                                
002017,000645: 
002018,000646:    6644           46426        CALL               CS       LOW10                                 #  FOR ANY OF THE CALL OPTIONS, MAKE UP THE
002019,000647:    6645           60150                           AD       LOC                                   #  ADDRESS OF THE NEXT OP-CODE PAIR/STORE
002020,000648:    6646           60151                           AD       BANKSET                               #  CODE AND LEAVE IT IN QPRET. NOTE THAT
002021,000649:    6647           50104                           INDEX    FIXLOC                                #  LOW10 = 2000 - 1.
002022,000650:    6650           54052                           TS       QPRET                                 
002023,000651: 
002024,000652:    6651           30103        GOTO               CA       POLISH                                #  BASIC BRANCHING SEQUENCE.
002025,000653:    6652           54004                           TS       FBANK                                 
002026,000654:    6653           76426                           MASK     LOW10                                 #  MAKE UP 12 BIT SUB-ADDRESS AND FALL INTO
002027,000655:    6654           67645                           AD       2K                                    #  FALL INTO THE INTPRET ENTRY UNLESS THE
002028,000656:    6655           54150                           TS       LOC                                   #  GIVEN ADDRESS WAS IN ERASABLE, IN WHICH
002029,000657:    6656           10004                           CCS      FBANK                                 #  CASE IT IS USED AS THE ADDRESS OF THE
002030,000658:    6657           16002                           TCF      INTPRET    +2                         #  BRANCH ADDRESS.
002031,000659:    6660           16662                           TCF      +2                                    
002032,000660:    6661           16002                           TCF      INTPRET    +2                         
002033,000661: 
002034,000662:    6662           40150                           CS       LOC                                   #  THE GIVEN ADDRESS IS IN ERASABLE - SEE
002035,000663:    6663           66710                           AD       EVAC+2K                               #  IF RELATIVE TO THE WORK AREA.
002036,000664:    6664           10000                           CCS      A                                     
002037,000665:    6665           30104                           CA       FIXLOC                                #  ADD FIXLOC IF SO.
002038,000666:    6666           26150                           ADS      LOC                                   
002039,000667: 
002040,000668:    6667           50150                           INDEX    LOC                                   
002041,000669:    6670           26000                           CA       0          -2000                      #  (ADDRESS HAD BEEN AUGMENTED BY 2000.)
002042,000670:    6671           16652                           TCF      GOTO       +1                         #  ALLOWS ARBITRARY INDIRECTNESS.
002043,000671: 
002044,000672:    6672           50150        CGOTO              INDEX    LOC                                   #  COMPUTED GO TO. PICK UP ADDRESS OF CADR
002045,000673:    6673           30001                           CA       1                                     #  LIST.
002046,000674:    6674           50102                           INDEX    ADDRWD                                #  ADD MODIFIER.
002047,000675:    6675           60000                           AD       0                                     
002048,000676:    6676           54004                           TS       FBANK                                 #  SELECT GOTO ADDRESS.
002049,000677:    6677           76426                           MASK     LOW10                                 
002050,000678:    6700           50000                           INDEX    A                                     
002051,000679:    6701           32000                           CA       10000                                 
002052,000680:    6702           16652                           TCF      GOTO       +1                         #  WITH ADDRESS IN A.
002053,000681: 
002054,000682:    6703           30151        SWBRANCH           CA       BANKSET                               #  SWITCH INSTRUCTIONS WHICH ELECT TO
002055,000683:    6704           54004                           TS       FBANK                                 #  BRANCH COME HERE TO DO SO.
002056,000684:    6705           50150                           INDEX    LOC                                   
002057,000685:    6706           30001                           CA       1                                     
002058,000686:    6707           16652                           TCF      GOTO       +1                         
002059,000687: 
002060,000688:    6710           02055        EVAC+2K            DEC      1069       B-14                       #  =1024+45
002061,000689: 
002062,000690:                                                                                                  #           TRIPLE PRECISION BRANCHING ROUTINE. IF CALLING TC IS AT L, RETURN IS AS FOLLOWS:
002063,000691:                                                                                                  #           L+1  IF MPAC IS GREATER THAN ZERO.
002064,000692:                                                                                                  #           L+2  IF MPAC IS EQUAL TO +0 OR -0.
002065,000693:                                                                                                  #           L+3  IF MPAC IS LESS THAN ZERO.
002066,000694: 
002067,000695: 
002068,000696: 
002069,000697:    6711           10140        BRANCH             CCS      MPAC                                  
002070,000698:    6712           00002                           TC       Q                                     
002071,000699:    6713           16715                           TCF      +2                                    #  ON ZERO.
002072,000700:    6714           16727                           TCF      NEG                                   
002073,000701: 
002074,000702:    6715           10141                           CCS      MPAC       +1                         
002075,000703:    6716           00002                           TC       Q                                     
002076,000704:    6717           16721                           TCF      +2                                    
002077,000705:    6720           16727                           TCF      NEG                                   
002078,000706: 
002079,000707:    6721           10142                           CCS      MPAC       +2                         
002080,000708:    6722           00002                           TC       Q                                     
002081,000709:    6723           16725                           TCF      +2                                    
002082,000710:    6724           16727                           TCF      NEG                                   
002083,000711: 
002084,000712:    6725           50002                           INDEX    Q                                     #  IF ALL THREE REGISTERS WERE +-0.
002085,000713:    6726           00001                           TC       1                                     
002086,000714: 
002087,000715:    6727           50002        NEG                INDEX    Q                                     #  IF FIRST NON-ZERO REGISTER WAS NEGATIVE.
002088,000716:    6730           00002                           TC       2                                     
002089,000717: 
002090,000718: 
002091,000719: 
002092,000720:    6731           50150        EXIT               INDEX    LOC                                   #  LEAVE INTERPRETIVE MODE.
002093,000721:    6732           10001                           TCF      1                                     
002094,000722: 
002095,000723:                                                                                                  #  SECTION 3 - ADD/SUBTRACT PACKAGE.
002096,000724: 
002097,000725:                                                                                                  #           THE FOLLOWING OPERATIONS ARE PROVIDED FOR ADDING TO AND SUBTRACTING FROM THE MULTI-PURPOSE ACCUMULATOR
002098,000726:                                                                                                  #  MPAC:
002099,000727: 
002100,000728:                                                                                                  #           1. DAD                 DOUBLE PRECISION ADD.
002101,000729:                                                                                                  #           2. DSU                 DOUBLE PRECISION SUBTRACT.
002102,000730:                                                                                                  #           3. BDSU                DOUBLE PRECISION SUBTRACT FROM.
002103,000731: 
002104,000732:                                                                                                  #           4. TAD                 TRIPLE PRECISION ADD.
002105,000733: 
002106,000734:                                                                                                  #           5. VAD                 VECTOR ADD.
002107,000735:                                                                                                  #           6. VSU                 VECTOR SUBTRACT.
002108,000736:                                                                                                  #           7. BVSU                VECTOR SUBTRACT FROM.
002109,000737: 
002110,000738:                                                                                                  #  THE INTERPRETIVE OVERFLOW INDICATOR OVFIND IS SET NON-ZERO IF OVERFLOW OCCURS IN ANY OF THE ABOVE.
002111,000739: 
002112,000740: 
002113,000741: 
002114,000742:    6733           00006        VAD                EXTEND                                         
002115,000743:    6734           50102                           INDEX    ADDRWD                                
002116,000744:    6735           30003                           DCA      2                                     
002117,000745:    6736           20144                           DAS      MPAC       +3                         
002118,000746:    6737           00006                           EXTEND                                         #  CHECK OVERFLOW.
002119,000747:    6740           16742                           BZF      +2                                    
002120,000748:    6741           07007                           TC       OVERFLOW                              
002121,000749: 
002122,000750:    6742           00006                           EXTEND                                         
002123,000751:    6743           50102                           INDEX    ADDRWD                                
002124,000752:    6744           30005                           DCA      4                                     
002125,000753:    6745           20146                           DAS      MPAC       +5                         
002126,000754:    6746           00006                           EXTEND                                         
002127,000755:    6747           16751                           BZF      +2                                    
002128,000756:    6750           07007                           TC       OVERFLOW                              
002129,000757: 
002130,000758:    6751           00006        DAD                EXTEND                                         
002131,000759:    6752           50102                           INDEX    ADDRWD                                
002132,000760:    6753           30001                           DCA      0                                     
002133,000761:    6754           20141        ENDVXV             DAS      MPAC                                  #  VXV FINISHES HERE.
002134,000762:    6755           00006                           EXTEND                                         
002135,000763:    6756           16014                           BZF      DANZIG                                
002136,000764:    6757           07007                           TC       OVERFLOW                              
002137,000765:    6760           16014                           TCF      DANZIG                                
002138,000766: 
002139,000767:    6761           00006        VSU                EXTEND                                         
002140,000768:    6762           50102                           INDEX    ADDRWD                                
002141,000769:    6763           40003                           DCS      2                                     
002142,000770:    6764           20144                           DAS      MPAC       +3                         
002143,000771:    6765           00006                           EXTEND                                         
002144,000772:    6766           16770                           BZF      +2                                    
002145,000773:    6767           07007                           TC       OVERFLOW                              
002146,000774: 
002147,000775:    6770           00006                           EXTEND                                         
002148,000776:    6771           50102                           INDEX    ADDRWD                                
002149,000777:    6772           40005                           DCS      4                                     
002150,000778:    6773           20146                           DAS      MPAC       +5                         
002151,000779:    6774           00006                           EXTEND                                         
002152,000780:    6775           16777                           BZF      +2                                    
002153,000781:    6776           07007                           TC       OVERFLOW                              
002154,000782: 
002155,000783:    6777           00006        DSU                EXTEND                                         
002156,000784:    7000           50102                           INDEX    ADDRWD                                
002157,000785:    7001           40001                           DCS      0                                     
002158,000786:    7002           20141                           DAS      MPAC                                  
002159,000787:    7003           00006                           EXTEND                                         
002160,000788:    7004           16014                           BZF      DANZIG                                
002161,000789:    7005           07007                           TC       OVERFLOW                              
002162,000790:    7006           16014                           TCF      DANZIG                                
002163,000791: 
002164,000792:    7007           37657        OVERFLOW           CAF      ONE                                   #  SUBROUTINE TO TURN OVFIND ON.
002165,000793:    7010           17132                           TCF      SETOVF2                               
002166,000794: 
002167,000795:    7011           00006        BVSU               EXTEND                                         
002168,000796:    7012           50102                           INDEX    ADDRWD                                
002169,000797:    7013           30003                           DCA      2                                     
002170,000798:    7014           52144                           DXCH     MPAC       +3                         
002171,000799:    7015           00006                           EXTEND                                         
002172,000800:    7016           40001                           DCOM                                           
002173,000801:    7017           20144                           DAS      MPAC       +3                         
002174,000802:    7020           00006                           EXTEND                                         
002175,000803:    7021           17023                           BZF      +2                                    
002176,000804:    7022           07007                           TC       OVERFLOW                              
002177,000805: 
002178,000806:    7023           00006                           EXTEND                                         
002179,000807:    7024           50102                           INDEX    ADDRWD                                
002180,000808:    7025           30005                           DCA      4                                     
002181,000809:    7026           52146                           DXCH     MPAC       +5                         
002182,000810:    7027           00006                           EXTEND                                         
002183,000811:    7030           40001                           DCOM                                           
002184,000812:    7031           20146                           DAS      MPAC       +5                         
002185,000813:    7032           00006                           EXTEND                                         
002186,000814:    7033           17035                           BZF      +2                                    
002187,000815:    7034           07007                           TC       OVERFLOW                              
002188,000816: 
002189,000817:    7035           00006        BDSU               EXTEND                                         
002190,000818:    7036           50102                           INDEX    ADDRWD                                
002191,000819:    7037           30001                           DCA      0                                     
002192,000820:    7040           52141                           DXCH     MPAC                                  
002193,000821:    7041           00006                           EXTEND                                         
002194,000822:    7042           40001                           DCOM                                           
002195,000823:    7043           20141                           DAS      MPAC                                  
002196,000824:    7044           00006                           EXTEND                                         
002197,000825:    7045           16014                           BZF      DANZIG                                
002198,000826:    7046           07007                           TC       OVERFLOW                              
002199,000827:    7047           16014                           TCF      DANZIG                                
002200,000828: 
002201,000829:                                                                                                  #           TRIPLE PRECISION ADD ROUTINE.
002202,000830: 
002203,000831:    7050           00006        TAD                EXTEND                                         
002204,000832:    7051           50102                           INDEX    ADDRWD                                
002205,000833:    7052           30002                           DCA      1                                     #  ADD MINOR PARTS FIRST.
002206,000834:    7053           20142                           DAS      MPAC       +1                         
002207,000835:    7054           50102                           INDEX    ADDRWD                                
002208,000836:    7055           60000                           AD       0                                     
002209,000837:    7056           60140                           AD       MPAC                                  
002210,000838:    7057           54140                           TS       MPAC                                  
002211,000839:    7060           16014                           TCF      DANZIG                                
002212,000840: 
002213,000841:    7061           54105        SETOVF             TS       OVFIND                                #  SET OVFIND IF SUCH OCCURS.
002214,000842:    7062           16014                           TCF      DANZIG                                
002215,000843: 
002216,000844:                                                                                                  #  ARITHMETIC SUBROUTINES REQUIRED IN FIXED-FIXED.
002217,000845: 
002218,000846:                                                                                                  #           1.  DMPSUB     DOUBLE PRECISION MULTIPLY. MULTIPLY THE CONTENTS OF MPAC,+1 BY THE DP WORD WHOSE ADDRESS
002219,000847:                                                                                                  #                          IS IN ADDRWD AND LEAVE A TRIPLE PRECISION RESULT IN MPAC.
002220,000848:                                                                                                  #           2.  ROUNDSUB   ROUND THE TRIPLE PRECISON CONTENTS OF MPAC TO DOUBLE PRECISION.
002221,000849:                                                                                                  #           3.  DOTSUB     TAKE THE DOT PRODUCT OF THE VECTOR IN MPAC AND THE VECTOR WHOSE ADDRESS IS IN ADDRWD
002222,000850:                                                                                                  #                          AND LEAVE THE TRIPLE PRECISION RESULT IN MPAC.
002223,000851:                                                                                                  #           4.  POLY       USING THE CONTENTS OF MPAC AS A DP ARGUMENT, EVALUATE THE POLYNOMIAL WHOSE DEGREE AND
002224,000852:                                                                                                  #                          COEFFICIENTS IMMEDIATELY FOLLOW THE TC POLY INSTRUCTION (SEE ROUTINE FOR DETAILS).
002225,000853: 
002226,000854: 
002227,000855: 
002228,000856:    7063           50002        DMP                INDEX    Q                                     #  BASIC SUBROUTINE FOR USE BY PINBALL, ETC
002229,000857:    7064           30000                           CAF      0                                     #  ADRES OF ARGUMENT FOLLOWS  TC DMP  .
002230,000858:    7065           24002                           INCR     Q                                     
002231,000859:    7066           54102                 -1        TS       ADDRWD                                #  (PROLOGUE FOR SETTING ADDRWD.)
002232,000860: 
002233,000861:    7067           50102        DMPSUB             INDEX    ADDRWD                                #  GET MINOR PART OF OPERAND AT C(ADDRWD).
002234,000862:    7070           30001                           CA       1                                     
002235,000863:    7071           54142                           TS       MPAC       +2                         #  THIS WORKS FOR SQUARING MPAC AS WELL.
002236,000864:    7072           37665                           CAF      ZERO                                  #  SET MPAC +1 TO ZERO SO WE CAN ACCUMULATE
002237,000865:    7073           56141                           XCH      MPAC       +1                         #  THE PARTIAL PRODUCTS WITH DAS
002238,000866:    7074           54121                           TS       MPTEMP                                #  INSTRUCTIONS.
002239,000867:    7075           00006                           EXTEND                                         
002240,000868:    7076           70142                           MP       MPAC       +2                         #  MINOR OF MPAC X MINOR OF C(ADDRWD).
002241,000869: 
002242,000870:    7077           56142                           XCH      MPAC       +2                         #  DISCARD MINOR PART OF ABOVE RESULT AND
002243,000871:    7100           00006                           EXTEND                                         #  FORM MAJOR OF MPAC X MINOR OF C(ADDRWD).
002244,000872:    7101           70140                           MP       MPAC                                  
002245,000873:    7102           20142                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002246,000874: 
002247,000875:    7103           50102                           INDEX    ADDRWD                                #  GET MAJOR PART OF ARGUMENT AT C(ADDRWD).
002248,000876:    7104           30000                           CA       0                                     
002249,000877:    7105           56121                           XCH      MPTEMP                                #  SAVE AND BRING OUT MINOR OF MPAC.
002250,000878:    7106           00006                           EXTEND                                         
002251,000879:    7107           70121                           MP       MPTEMP                                #  MAJOR OF C(ADDRWD) X MINOR OF MPAC.
002252,000880:    7110           20142                           DAS      MPAC       +1                         #  ACCUMULATE, SETTING A TO NET OVERFLOW.
002253,000881: 
002254,000882:    7111           56140                           XCH      MPAC                                  #  SETTING MPAC TO 0 OR +-1.
002255,000883:    7112           00006                           EXTEND                                         
002256,000884:    7113           70121                           MP       MPTEMP                                #  MAJOR OF MPAC X MAJOR OF C(ADDRWD).
002257,000885:    7114           20141                           DAS      MPAC                                  #  GUARANTEED NO OVERFLOW.
002258,000886:    7115           00002                           TC       Q                                     #  49 MCT = .573 MS. INCLUDING RETURN.
002259,000887: 
002260,000888:                                                                                                  #           ROUND MPAC TO DOUBLE PRECISION, SETTING OVFIND ON THE RARE EVENT OF OVERFLOW.
002261,000889: 
002262,000890:    7116           37665        ROUNDSUB           CAF      ZERO                                  #  SET MPAC +2 = 0 FOR SCALARS AND CHANGE
002263,000891:    7117           54147                 +1        TS       MODE                                  #  MODE TO DP.
002264,000892: 
002265,000893:    7120           56142        VROUND             XCH      MPAC       +2                         #  BUT WE NEEDNT TAKE THE TIME FOR VECTORS.
002266,000894:    7121           60000                           DOUBLE                                         
002267,000895:    7122           54001                           TS       L                                     
002268,000896:    7123           00002                           TC       Q                                     
002269,000897: 
002270,000898:    7124           60141                           AD       MPAC       +1                         #  ADD ROUNDING BIT IF MPAC +2 WAS GREATER
002271,000899:    7125           54141                           TS       MPAC       +1                         #  THAN .5 IN MAGNITUDE.
002272,000900:    7126           00002                           TC       Q                                     
002273,000901: 
002274,000902:    7127           60140                           AD       MPAC                                  #  PROPAGATE INTERFLOW.
002275,000903:    7130           54140                           TS       MPAC                                  
002276,000904:    7131           00002                           TC       Q                                     
002277,000905: 
002278,000906:    7132           54105        SETOVF2            TS       OVFIND                                #  (RARE).
002279,000907:    7133           00002                           TC       Q                                     
002280,000908: 
002281,000909:                                                                                                  #           THE DOT PRODUCT SUBROUTINE USUALLY FORMS THE DOT PRODUCT OF THE VECTOR IN MPAC WITH A STANDARD SIX
002282,000910:                                                                                                  #  REGISTER VECTOR WHOSE ADDRESS IS IN ADDRWD. IN THIS CASE C(DOTINC) ARE SET TO 2. VXM, HOWEVER, SETS C(DOTINC) TO
002283,000911:                                                                                                  #  6 SO THAT DOTSUB DOTS MPAC WITH A COLUMN VECTOR OF THE MATRIX IN QUESTION IN THIS CASE.
002284,000912: 
002285,000913: 
002286,000914: 
002287,000915:    7134           37656        PREDOT             CAF      TWO                                   #  PROLOGUE TO SET DOTINC TO 2.
002288,000916:    7135           54122                           TS       DOTINC                                
002289,000917: 
002290,000918:    7136           00006        DOTSUB             EXTEND                                         
002291,000919:    7137           22123                           QXCH     DOTRET                                #  SAVE RETURN.
002292,000920:    7140           07067                           TC       DMPSUB                                #  DOT X COMPONENTS.
002293,000921:    7141           52144                           DXCH     MPAC       +3                         #  POSITION Y COMPONENT OF MPAC FOR
002294,000922:    7142           52141                           DXCH     MPAC                                  #  MULTIPLICATION WHILE SAVING RESULT IN
002295,000923:    7143           52115                           DXCH     BUF                                   #  THREE WORD BUFFER, BUF.
002296,000924:    7144           30142                           CA       MPAC       +2                         
002297,000925:    7145           54116                           TS       BUF        +2                         
002298,000926: 
002299,000927:    7146           30122                           CA       DOTINC                                #  ADVANCE ADDRWD TO Y COMPONENT OF
002300,000928:    7147           26102                           ADS      ADDRWD                                #  OTHER ARGUMENT.
002301,000929:    7150           07067                           TC       DMPSUB                                
002302,000930:    7151           52142                           DXCH     MPAC       +1                         #  ACCUMULATE PARTIAL PRODUCTS.
002303,000931:    7152           20116                           DAS      BUF        +1                         
002304,000932:    7153           60140                           AD       MPAC                                  
002305,000933:    7154           60114                           AD       BUF                                   
002306,000934:    7155           54114                           TS       BUF                                   
002307,000935:    7156           17160                           TCF      +2                                    
002308,000936:    7157           54105                           TS       OVFIND                                #  IF OVERFLOW OCCURS.
002309,000937: 
002310,000938:    7160           52146                           DXCH     MPAC       +5                         #  MULTIPLY Z COMPONENTS.
002311,000939:    7161           52141                           DXCH     MPAC                                  
002312,000940:    7162           30122                           CA       DOTINC                                
002313,000941:    7163           26102                           ADS      ADDRWD                                
002314,000942:    7164           07067                           TC       DMPSUB                                
002315,000943:    7165           52116        ENDDOT             DXCH     BUF        +1                         #  LEAVE FINAL ACCUMULATION IN MPAC.
002316,000944:    7166           20142                           DAS      MPAC       +1                         
002317,000945:    7167           60140                           AD       MPAC                                  
002318,000946:    7170           60114                           AD       BUF                                   
002319,000947:    7171           54140                           TS       MPAC                                  
002320,000948:    7172           00123                           TC       DOTRET                                
002321,000949: 
002322,000950:    7173           54105                           TS       OVFIND                                #  ON OVERFLOW HERE.
002323,000951:    7174           00123                           TC       DOTRET                                
002324,000952: 
002325,000953:                                                                                                  #  DOUBLE PRECISION POLYNOMIAL EVALUATOR
002326,000954: 
002327,000955:                                                                                                  #                                     N        N-1
002328,000956:                                                                                                  #           THIS ROUTINE EVALUATES A X  + A   X    + ... + A  X + A  LEAVING THE DP RESULT IN MPAC ON EXIT.
002329,000957:                                                                                                  #                                   N      N-1              1      0
002330,000958: 
002331,000959:                                                                                                  #  THE ROUTINE HAS TWO ENTRIES
002332,000960: 
002333,000961:                                                                                                  #           1. ENTRY THRU POWRSERS. THE COEFFICIENTS MAY BE EITHER IN FIXED OR ERASABLE, THE CALL IS BY
002334,000962:                                                                                                  #              TC POWRSERS, AND THE RETURN IS TO LOC(TC POWRSERS)+1. THE ENTERING DATA MUST BE AS FOLLOWS
002335,000963: 
002336,000964:                                                                                                  #                                          A        SP     LOC-3           ADDRESS FOR REFERENCING COEF TABLE
002337,000965:                                                                                                  #                                          L        SP     N-1             N IS THE DEGREE OF THE POWER SERIES
002338,000966:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
002339,000967: 
002340,000968:                                                                                                  #                                          LOC-2N   DP     A(0)
002341,000969:                                                                                                  #                                                   ...
002342,000970:                                                                                                  #                                          LOC      DP     A(N)
002343,000971: 
002344,000972:                                                                                                  #           2. ENTRY THRU POLY. THE CALL TO POLY AND THE ENTERING DATA MUST BE AS FOLLOWS
002345,000973: 
002346,000974:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
002347,000975: 
002348,000976:                                                                                                  #                                          LOC      TC     POLY
002349,000977:                                                                                                  #                                          LOC+1    SP     N-1
002350,000978:                                                                                                  #                                          LOC+2    DP     A(0)
002351,000979:                                                                                                  #                                                   ...
002352,000980:                                                                                                  #                                          LOC+2N+2 DP     A(N)            RETURN IS TO LOC+2N+4
002353,000981: 
002354,000982:    7175           00006        POWRSERS           EXTEND                                         
002355,000983:    7176           22125                           QXCH     POLYRET                               #  RETURN ADDRESS
002356,000984:    7177           54103                           TS       POLISH                                #  POWER SERIES ADDRESS
002357,000985:    7200           22124                           LXCH     POLYCNT                               #  N-1 TO COUNTER
002358,000986:    7201           17212                           TCF      POLYCOM                               #  SKIP SET UP BY POLY
002359,000987: 
002360,000988:    7202           50002        POLY               INDEX    Q                                     
002361,000989:    7203           30000                           CAF      0                                     
002362,000990:    7204           54124                           TS       POLYCNT                               #  N-1 TO COUNTER
002363,000991:    7205           60000                           DOUBLE                                         
002364,000992:    7206           60002                           AD       Q                                     
002365,000993:    7207           54103                           TS       POLISH                                #  L(A(N))-3 TO POLISH
002366,000994:    7210           67664                           AD       FIVE                                  
002367,000995:    7211           54125                           TS       POLYRET                               #  STORE RETURN ADDRESS
002368,000996: 
002369,000997:    7212           37677        POLYCOM            CAF      LVBUF                                 #  INCOMING X WILL BE MOVED TO VBUF, SO
002370,000998:    7213           54102                           TS       ADDRWD                                #  SET ADDRWD SO DMPSUB WILL MPY BY VBUF.
002371,000999: 
002372,001000:    7214           00006                           EXTEND                                         
002373,001001:    7215           50103                           INDEX    POLISH                                
002374,001002:    7216           30004                           DCA      3                                     
002375,001003: 
002376,001004:    7217           52141                           DXCH     MPAC                                  #  LOAD A(N) INTO MPAC.
002377,001005:    7220           52107                           DXCH     VBUF                                  #  SAVING X IN VBUF
002378,001006:    7221           17225                           TCF      POLY2                                 
002379,001007: 
002380,001008:    7222           54124        POLYLOOP           TS       POLYCNT                               #  SAVE DECREMENTED LOOP COUNTER
002381,001009:    7223           47656                           CS       TWO                                   
002382,001010:    7224           26103                           ADS      POLISH                                #  REGRESS COEFFICIENT POINTER
002383,001011: 
002384,001012:    7225           07067        POLY2              TC       DMPSUB                                #  MULTIPLY BY X
002385,001013:    7226           00006                           EXTEND                                         
002386,001014:    7227           50103                           INDEX    POLISH                                
002387,001015:    7230           30002                           DCA      1                                     #  ADD IN NEXT COEFFICIENT
002388,001016:    7231           20141                           DAS      MPAC                                  #  USERS RESPONSIBILITY TO ASSURE NO OVFLOW
002389,001017: 
002390,001018:    7232           10124                           CCS      POLYCNT                               
002391,001019:    7233           17222                           TCF      POLYLOOP                              
002392,001020:    7234           00125                           TC       POLYRET                               #  RETURN CALLER
002393,001021: 
002394,001022:                                                                                                  #           MISCELLANEOUS MULTI-PRECISION ROUTINES REQUIRED IN FIXED-FIXED BUT NOT USED BY THE INTERPRETER.
002395,001023: 
002396,001024:    7235           00006        TPAGREE            EXTEND                                         #  FORCE SIGN AGREEMENT AMONG THE TRIPLE-
002397,001025:    7236           22114                           QXCH     BUF                                   #  PRECISION CONTENTS OF MPAC, RETURNING
002398,001026:    7237           06711                           TC       BRANCH                                #  WITH THE SIGNUM OF THE INPUT IN A.
002399,001027:    7240           17244                           TCF      ARG+                                  
002400,001028:    7241           17264                           TCF      ARGZERO                               
002401,001029: 
002402,001030:    7242           47637                           CS       POSMAX                                #  IF NEGATIVE.
002403,001031:    7243           17245                           TCF      +2                                    
002404,001032: 
002405,001033:    7244           37637        ARG+               CAF      POSMAX                                
002406,001034:    7245           54115                 +2        TS       BUF        +1                         
002407,001035:    7246           00006                           EXTEND                                         
002408,001036:    7247           24000                           AUG      A                                     #  FORMS +-1.0.
002409,001037:    7250           60142                           AD       MPAC       +2                         
002410,001038:    7251           54142                           TS       MPAC       +2                         
002411,001039:    7252           37665                           CAF      ZERO                                  
002412,001040:    7253           60115                           AD       BUF        +1                         
002413,001041:    7254           60141                           AD       MPAC       +1                         
002414,001042:    7255           54141                           TS       MPAC       +1                         
002415,001043:    7256           37665                           CAF      ZERO                                  
002416,001044:    7257           60115                           AD       BUF        +1                         
002417,001045:    7260           60140                           AD       MPAC                                  
002418,001046:    7261           54140        ARGZERO2           TS       MPAC                                  #  ALWAYS SKIPPING UNLESS ARGZERO.
002419,001047:    7262           54141                           TS       MPAC       +1                         
002420,001048:    7263           00114                           TC       BUF                                   #  RETURN.
002421,001049: 
002422,001050:    7264           54142        ARGZERO            TS       MPAC       +2                         #  SET ALL THREE MPAC REGISTERS TO ZERO.
002423,001051:    7265           17261                           TCF      ARGZERO2                              
002424,001052: 
002425,001053:                                                                                                  #           SHORTMP MULTIPLIES THE TP CONTENTS OF MPAC BY THE SINGLE PRECISION NUMBER ARRIVING IN A.
002426,001054: 
002427,001055:    7266           54121        SHORTMP            TS       MPTEMP                                
002428,001056:    7267           00006                           EXTEND                                         
002429,001057:    7270           70142                           MP       MPAC       +2                         
002430,001058:    7271           54142                           TS       MPAC       +2                         
002431,001059:    7272           37665                           CAF      ZERO                                  #  SO SUBSEQUENT DAS WILL WORK.
002432,001060:    7273           56141                           XCH      MPAC       +1                         
002433,001061:    7274           00006                           EXTEND                                         
002434,001062:    7275           70121                           MP       MPTEMP                                
002435,001063:    7276           20142                           DAS      MPAC       +1                         
002436,001064:    7277           56140                           XCH      MPAC                                  #  SETTING MPAC TO 0.
002437,001065:    7300           00006                           EXTEND                                         
002438,001066:    7301           70121                           MP       MPTEMP                                
002439,001067:    7302           20141                           DAS      MPAC                                  
002440,001068:    7303           00002                           TC       Q                                     
002441,001069: 
002442,001070:                                                                                                  #  MISCELLANEOUS VECTOR OPERATIONS. INCLUDED HERE ARE THE FOLLOWING:
002443,001071: 
002444,001072:                                                                                                  #           1.  DOT                DP VECTOR DOT PRODUCT.
002445,001073:                                                                                                  #           2.  VXV                DP VECTOR CROSS PRODUCT.
002446,001074:                                                                                                  #           3.  VXSC               DP VECTOR TIMES SCALAR.
002447,001075:                                                                                                  #           4.  V/SC               DP VECTOR DIVIDED BY SCALAR.
002448,001076:                                                                                                  #           5.  VPROJ              DP VECTOR PROJECTION. ( (MPAC.X)MPAC ).
002449,001077:                                                                                                  #           6.  VXM                DP VECTOR POST-MULTIPLIED BY MATRIX.
002450,001078:                                                                                                  #           7.  MXV                DP VECTOR PRE-MULTIPLIED BY MATRIX.
002451,001079: 
002452,001080:    7304           07134        DOT                TC       PREDOT                                #  DO THE DOT PRODUCT AND EXIT, CHANGING
002453,001081:    7305           37665                           CAF      ZERO                                  #  THE MODE TO DP SCALAR.
002454,001082:    7306           16013                           TCF      NEWMODE                               
002455,001083: 
002456,001084: 
002457,001085: 
002458,001086:    7307           37656        MXV                CAF      TWO                                   #  SET UP MATINC AND DOTINC FOR ROW
002459,001087:    7310           54124                           TS       MATINC                                #  VECTORS.
002460,001088:    7311           17315                           TCF      VXM/MXV                               #  GO TO COMMON PORTION.
002461,001089: 
002462,001090:    7312           47661        VXM                CS       TEN                                   #  SET MATINC AND DOTINC TO REFER TO MATRIX
002463,001091:    7313           54124                           TS       MATINC                                #  AS THREE COLUMN VECTORS.
002464,001092:    7314           36162                           CAF      SIX                                   
002465,001093: 
002466,001094:                                                                                                  #           COMMON PORTION OF MXV AND VXM.
002467,001095: 
002468,001096:    7315           54122        VXM/MXV            TS       DOTINC                                
002469,001097:    7316           07506                           TC       MPACVBUF                              #  SAVE VECTOR IN MPAC FOR FURTHER USE.
002470,001098: 
002471,001099:    7317           07136                           TC       DOTSUB                                #  GO DOT TO GET X COMPONENT OF ANSWER.
002472,001100:    7320           00006                           EXTEND                                         
002473,001101:    7321           30107                           DCA      VBUF                                  #  MOVE MPAC VECTOR BACK INTO MPAC, SAVING
002474,001102:    7322           52141                           DXCH     MPAC                                  #  NEW X COMPONENT IN BUF2.
002475,001103:    7323           52120                           DXCH     BUF2                                  
002476,001104:    7324           00006                           EXTEND                                         
002477,001105:    7325           30111                           DCA      VBUF       +2                         
002478,001106:    7326           52144                           DXCH     MPAC       +3                         
002479,001107:    7327           00006                           EXTEND                                         
002480,001108:    7330           30113                           DCA      VBUF       +4                         
002481,001109:    7331           52146                           DXCH     MPAC       +5                         
002482,001110:    7332           30124                           CA       MATINC                                #  INITIALIZE ADDRWD FOR NEXT DOT PRODUCT.
002483,001111:    7333           26102                           ADS      ADDRWD                                #  FORMS BASE ADDRESS OF NEXT COLUMN(ROW).
002484,001112: 
002485,001113:    7334           07136                           TC       DOTSUB                                
002486,001114:    7335           52107                           DXCH     VBUF                                  #  MOVE GIVEN VECTOR BACK TO MPAC, SAVING Y
002487,001115:    7336           52141                           DXCH     MPAC                                  #  COMPONENT OF ANSWER IN VBUF +2.
002488,001116:    7337           52111                           DXCH     VBUF       +2                         
002489,001117:    7340           52144                           DXCH     MPAC       +3                         
002490,001118:    7341           52113                           DXCH     VBUF       +4                         
002491,001119:    7342           52146                           DXCH     MPAC       +5                         
002492,001120:    7343           30124                           CA       MATINC                                #  FORM ADDRESS OF LAST COLUMN OR ROW.
002493,001121:    7344           26102                           ADS      ADDRWD                                
002494,001122: 
002495,001123:    7345           07136                           TC       DOTSUB                                
002496,001124:    7346           52120                           DXCH     BUF2                                  #  ANSWER NOW COMPLETE. PUT COMPONENTS INTO
002497,001125:    7347           52141                           DXCH     MPAC                                  #  PROPER MPAC REGISTERS.
002498,001126:    7350           52146                           DXCH     MPAC       +5                         
002499,001127:    7351           52111                           DXCH     VBUF       +2                         
002500,001128:    7352           52144                           DXCH     MPAC       +3                         
002501,001129:    7353           16014                           TCF      DANZIG                                #  EXIT.
002502,001130: 
002503,001131:                                                                                                  #           VXSC - VECTOR TIMES SCALAR.
002504,001132: 
002505,001133:    7354           10147        VXSC               CCS      MODE                                  #  TEST PRESENT MODE.
002506,001134:    7355           17403                           TCF      DVXSC                                 #  SEPARATE ROUTINE WHEN SCALAR IS IN MPAC.
002507,001135:    7356           17403                           TCF      DVXSC                                 
002508,001136: 
002509,001137:    7357           07067        VVXSC              TC       DMPSUB                                #  COMPUTE X COMPONENT
002510,001138:    7360           07120                           TC       VROUND                                #  AND ROUND IT.
002511,001139:    7361           52144                           DXCH     MPAC       +3                         #  PUT Y COMPONENT INTO MPAC SAVING MPAC IN
002512,001140:    7362           52141                           DXCH     MPAC                                  #  MPAC +3.
002513,001141:    7363           52144                           DXCH     MPAC       +3                         
002514,001142: 
002515,001143:    7364           07067                           TC       DMPSUB                                #  DO SAME FOR Y AND Z COMPONENTS.
002516,001144:    7365           07120                           TC       VROUND                                
002517,001145:    7366           52146                           DXCH     MPAC       +5                         
002518,001146:    7367           52141                           DXCH     MPAC                                  
002519,001147:    7370           52146                           DXCH     MPAC       +5                         
002520,001148: 
002521,001149:    7371           07067                           TC       DMPSUB                                
002522,001150:    7372           07120                           TC       VROUND                                
002523,001151:    7373           52141        VROTATEX           DXCH     MPAC                                  #  EXIT USED TO RESTORE MPAC AFTER THIS
002524,001152:    7374           52146                           DXCH     MPAC       +5                         #  TYPE OF ROTATION. CALLED BY VECTOR SHIFT
002525,001153:    7375           52144                           DXCH     MPAC       +3                         #  RIGHT, V/SC, ETC.
002526,001154:    7376           52141                           DXCH     MPAC                                  
002527,001155:    7377           16014                           TCF      DANZIG                                
002528,001156: 
002529,001157:                                                                                                  #           DP VECTOR PROJECTION ROUTINE.
002530,001158: 
002531,001159: 
002532,001160: 
002533,001161:    7400           07134        VPROJ              TC       PREDOT                                #  (MPAC.X)MPAC IS COMPUTED AND LEFT IN
002534,001162:    7401           47655                           CS       FOUR                                  #  MPAC. DO DOT AND FALL INTO DVXSC.
002535,001163:    7402           26102                           ADS      ADDRWD                                
002536,001164: 
002537,001165:                                                                                                  #           VXSC WHEN SCALAR ARRIVES IN MPAC AND VECTOR IS AT X.
002538,001166: 
002539,001167:    7403           00006        DVXSC              EXTEND                                         #  SAVE SCALAR IN MPAC +3 AND GET X
002540,001168:    7404           30141                           DCA      MPAC                                  #  COMPONENT OF ANSWER.
002541,001169:    7405           52144                           DXCH     MPAC       +3                         
002542,001170:    7406           07067                           TC       DMPSUB                                
002543,001171:    7407           07120                           TC       VROUND                                
002544,001172: 
002545,001173:    7410           37656                           CAF      TWO                                   #  ADVANCE ADDRWD TO Y COMPONENT OF X.
002546,001174:    7411           26102                           ADS      ADDRWD                                
002547,001175:    7412           00006                           EXTEND                                         
002548,001176:    7413           30144                           DCA      MPAC       +3                         #  PUT SCALAR BACK INTO MPAC AND SAVE
002549,001177:    7414           52141                           DXCH     MPAC                                  #  X RESULT IN MPAC +5.
002550,001178:    7415           52146                           DXCH     MPAC       +5                         
002551,001179:    7416           07067                           TC       DMPSUB                                
002552,001180:    7417           07120                           TC       VROUND                                
002553,001181: 
002554,001182:    7420           37656                           CAF      TWO                                   
002555,001183:    7421           26102                           ADS      ADDRWD                                #  TO Z COMPONENT.
002556,001184:    7422           52144                           DXCH     MPAC       +3                         #  BRING SCALAR BACK, PUTTING Y RESULT IN
002557,001185:    7423           52141                           DXCH     MPAC                                  #  THE PROPER PLACE.
002558,001186:    7424           52144                           DXCH     MPAC       +3                         
002559,001187:    7425           07067                           TC       DMPSUB                                
002560,001188:    7426           07120                           TC       VROUND                                
002561,001189: 
002562,001190:    7427           52141                           DXCH     MPAC                                  #  PUT Z COMPONENT IN PROPER PLACE, ALSO
002563,001191:    7430           52146                           DXCH     MPAC       +5                         #  POSITIONING X.
002564,001192:    7431           52141                           DXCH     MPAC                                  
002565,001193: 
002566,001194:    7432           47657                           CS       ONE                                   #  MODE HAS CHANGED TO VECTOR.
002567,001195:    7433           16013                           TCF      NEWMODE                               
002568,001196: 
002569,001197:                                                                                                  #           THE VECTOR CROSS PRODUCT ROUTINE CALCULATES (X M -X M ,X M -X M ,X M -X M ) WHERE M IS THE VECTOR IN
002570,001198:                                                                                                  #                                                         3 2  2 3  1 3  3 1  2 1  1 2
002571,001199:                                                                                                  #  MPAC AND X THE VECTOR AT THE GIVEN ADDRESS.
002572,001200: 
002573,001201: 
002574,001202: 
002575,001203:    7434           00006        VXV                EXTEND                                         
002576,001204:    7435           30146                           DCA      MPAC       +5                         #  FORM UP M3X1, LEAVING M1 IN VBUF.
002577,001205:    7436           52141                           DXCH     MPAC                                  
002578,001206:    7437           52107                           DXCH     VBUF                                  
002579,001207:    7440           07067                           TC       DMPSUB                                #  BY X1.
002580,001208: 
002581,001209:    7441           00006                           EXTEND                                         
002582,001210:    7442           40144                           DCS      MPAC       +3                         #  CALCULATE -X1M2, SAVING X1M3 IN VBUF +2.
002583,001211:    7443           52141                           DXCH     MPAC                                  
002584,001212:    7444           52111                           DXCH     VBUF       +2                         
002585,001213:    7445           07067                           TC       DMPSUB                                
002586,001214: 
002587,001215:    7446           37656                           CAF      TWO                                   #  ADVANCE ADDRWD TO X2.
002588,001216:    7447           26102                           ADS      ADDRWD                                
002589,001217:    7450           00006                           EXTEND                                         
002590,001218:    7451           40146                           DCS      MPAC       +5                         #  PREPARE TO GET -X2M3, SAVING -X1M2 IN
002591,001219:    7452           52141                           DXCH     MPAC                                  #  MPAC +5.
002592,001220:    7453           52146                           DXCH     MPAC       +5                         
002593,001221:    7454           07067                           TC       DMPSUB                                
002594,001222: 
002595,001223:    7455           00006                           EXTEND                                         
002596,001224:    7456           30107                           DCA      VBUF                                  #  GET X2M1, SAVING -X2M3 IN VBUF +4.
002597,001225:    7457           52141                           DXCH     MPAC                                  
002598,001226:    7460           52113                           DXCH     VBUF       +4                         
002599,001227:    7461           07067                           TC       DMPSUB                                
002600,001228: 
002601,001229:    7462           37656                           CAF      TWO                                   #  ADVANCE ADDRWD TO X3.
002602,001230:    7463           26102                           ADS      ADDRWD                                
002603,001231:    7464           00006                           EXTEND                                         
002604,001232:    7465           40107                           DCS      VBUF                                  #  GET -X3M1, ADDING X2M1 TO MPAC +5 TO
002605,001233:    7466           52141                           DXCH     MPAC                                  #  COMPLETE THE Z COMPONENT OF THE ANSWER.
002606,001234:    7467           20146                           DAS      MPAC       +5                         
002607,001235: 
002608,001236:    7470           00006                           EXTEND                                         
002609,001237:    7471           17473                           BZF      +2                                    
002610,001238:    7472           07007                           TC       OVERFLOW                              
002611,001239: 
002612,001240:    7473           07067                           TC       DMPSUB                                
002613,001241:    7474           52111                           DXCH     VBUF       +2                         #  MOVE X1M3 TO MPAC +3 SETTING UP FOR X3M2
002614,001242:    7475           52144                           DXCH     MPAC       +3                         #  AND ADD -X3M1 TO MPAC +3 TO COMPLETE THE
002615,001243:    7476           52141                           DXCH     MPAC                                  #  Y COMPONENT OF THE RESULT.
002616,001244:    7477           20144                           DAS      MPAC       +3                         
002617,001245: 
002618,001246:    7500           00006                           EXTEND                                         
002619,001247:    7501           17503                           BZF      +2                                    
002620,001248:    7502           07007                           TC       OVERFLOW                              
002621,001249: 
002622,001250:    7503           07067                           TC       DMPSUB                                
002623,001251:    7504           52113                           DXCH     VBUF       +4                         #  GO ADD -X2M3 TO X3M2 TO COMPLETE THE X
002624,001252:    7505           16754                           TCF      ENDVXV                                #  COMPONENT (TAIL END OF DAD).
002625,001253: 
002626,001254:                                                                                                  #           THE MPACVBUF SUBROUTINE SAVES THE VECTOR IN MPAC IN VBUF WITHOUT CLOBBERING MPAC.
002627,001255: 
002628,001256:    7506           00006        MPACVBUF           EXTEND                                         #  CALLED BY MXV, VXM, AND UNIT.
002629,001257:    7507           30141                           DCA      MPAC                                  
002630,001258:    7510           52107                           DXCH     VBUF                                  
002631,001259:    7511           00006                           EXTEND                                         
002632,001260:    7512           30144                           DCA      MPAC       +3                         
002633,001261:    7513           52111                           DXCH     VBUF       +2                         
002634,001262:    7514           00006                           EXTEND                                         
002635,001263:    7515           30146                           DCA      MPAC       +5                         
002636,001264:    7516           52113                           DXCH     VBUF       +4                         
002637,001265:    7517           00002                           TC       Q                                     #  RETURN TO CALLER.
002638,001266: 
002639,001267:                                                                                                  #           INTERPRETIVE INSTRUCTIONS WHOSE EXECUTION CONSISTS OF PRINCIPALLY CALLING SUBROUTINES.
002640,001268: 
002641,001269:    7520           07067        DMP1               TC       DMPSUB                                #  DMP INSTRUCTION.
002642,001270:    7521           16014                           TCF      DANZIG                                
002643,001271: 
002644,001272:    7522           07067        DMPR               TC       DMPSUB                                
002645,001273:    7523           07117                           TC       ROUNDSUB   +1                         #  (C(A) = +0).
002646,001274:    7524           16014                           TCF      DANZIG                                
002647,001275: 
002648,001276:    7525           00006        DDV                EXTEND                                         
002649,001277:    7526           50102                           INDEX    ADDRWD                                #  MOVE DIVIDEND INTO BUF.
002650,001278:    7527           30001                           DCA      0                                     
002651,001279:    7530           17535                           TCF      BDDV       +4                         
002652,001280: 
002653,001281:    7531           00006        BDDV               EXTEND                                         #  MOVE DIVISOR INTO MPAC SAVING MPAC, THE
002654,001282:    7532           50102                           INDEX    ADDRWD                                #  DIVIDEND, IN BUF.
002655,001283:    7533           30001                           DCA      0                                     
002656,001284:    7534           52141                           DXCH     MPAC                                  
002657,001285:    7535           52115                 +4        DXCH     BUF                                   
002658,001286:    7536           37665                           CAF      ZERO                                  #  DIVIDE ROUTINES IN BANK 0.
002659,001287:    7537           54004                           TS       FBANK                                 
002660,001288:    7540           12332                           TCF      DDV/BDDV                              
002661,001289: 
002662,001290:    7541           30102        SETPD              CA       ADDRWD                                #  ANYWHERE IN ERASABLE IN GENERAL, BUT
002663,001291:    7542           54152                           TS       PUSHLOC                               #  ALMOST ALWAYS IN THE WORK AREA.
002664,001292:    7543           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002665,001293: 
002666,001294:    7544           37665        TSLC               CAF      ZERO                                  #  SHIFTING ROUTINES LOCATED IN BANK 00.
002667,001295:    7545           54004                           TS       FBANK                                 
002668,001296:    7546           12153                           TCF      TSLC2                                 
002669,001297: 
002670,001298:    7547           36027        GSHIFT             CAF      LOW7                                  #  USED AS MASK AT GENSHIFT. THIS PROCESSES
002671,001299:    7550           54004                           TS       FBANK                                 #  ANY SHIFT INSTRUCTION (EXCEPT TSLC) WITH
002672,001300:    7551           12174                           TCF      GENSHIFT                              #  AN ADDRESS (ROUTINES IN BANK 0).
002673,001301: 
002674,001302:                                                                                                  #           THE FOLLOWING IS THE PROLOGUE TO V/SC. IF THE PRESENT MODE IS VECTOR, IT SAVES THE SCALAR AT X IN BUF
002675,001303:                                                                                                  #  AND CALLS THE V/SC ROUTINE IN BANK 0. IF THE PRESENT MODE IS SCALAR, IT MOVES THE VECTOR AT X INTO MPAC, SAVING
002676,001304:                                                                                                  #  THE SCALAR IN MPAC IN BUF BEFORE CALLING THE V/SC ROUTINE IN BANK 0.
002677,001305: 
002678,001306:    7552           10147        V/SC               CCS      MODE                                  
002679,001307:    7553           17564                           TCF      DV/SC                                 #  MOVE VECTOR INTO MPAC.
002680,001308:    7554           17564                           TCF      DV/SC                                 
002681,001309: 
002682,001310:    7555           00006        VV/SC              EXTEND                                         
002683,001311:    7556           50102                           INDEX    ADDRWD                                
002684,001312:    7557           30001                           DCA      0                                     
002685,001313:    7560           52115        V/SC1              DXCH     BUF                                   #  IN BOTH CASES, VECTOR IS NOW IN MPAC AND
002686,001314:    7561           37665                           CAF      ZERO                                  #  SCALAR IN BUF.
002687,001315:    7562           54004                           TS       FBANK                                 
002688,001316:    7563           12576                           TCF      V/SC2                                 
002689,001317: 
002690,001318:    7564           00006        DV/SC              EXTEND                                         
002691,001319:    7565           50102                           INDEX    ADDRWD                                
002692,001320:    7566           30003                           DCA      2                                     
002693,001321:    7567           52144                           DXCH     MPAC       +3                         
002694,001322:    7570           00006                           EXTEND                                         
002695,001323:    7571           50102                           INDEX    ADDRWD                                
002696,001324:    7572           30005                           DCA      4                                     
002697,001325:    7573           52146                           DXCH     MPAC       +5                         
002698,001326: 
002699,001327:    7574           47657                           CS       ONE                                   #  CHANGE MODE TO VECTOR.
002700,001328:    7575           54147                           TS       MODE                                  
002701,001329: 
002702,001330:    7576           00006                           EXTEND                                         
002703,001331:    7577           50102                           INDEX    ADDRWD                                
002704,001332:    7600           30001                           DCA      0                                     
002705,001333:    7601           52141                           DXCH     MPAC                                  
002706,001334:    7602           17560                           TCF      V/SC1                                 #  FINISH PROLOGUE AT COMMON SECTION.
002707,001335: 
002708,001336:                                                                                                  #           SIGN AND COMPLEMENT INSTRUCTIONS.
002709,001337: 
002710,001338:    7603           50102        SIGN               INDEX    ADDRWD                                #  CALL COMP INSTRUCTION IF WORD AT X IS
002711,001339:    7604           10000                           CCS      0                                     #  NEGATIVE NON-ZERO.
002712,001340:    7605           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002713,001341:    7606           17610                           TCF      +2                                    
002714,001342:    7607           17616                           TCF      COMP                                  #  DO THE COMPLEMENT.
002715,001343: 
002716,001344:    7610           50102                           INDEX    ADDRWD                                
002717,001345:    7611           10001                           CCS      1                                     
002718,001346:    7612           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002719,001347:    7613           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002720,001348:    7614           17616                           TCF      COMP                                  
002721,001349:    7615           16016                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
002722,001350: 
002723,001351: 
002724,001352: 
002725,001353:    7616           00006        COMP               EXTEND                                         #  COMPLEMENT DP MPAC IN EVERY CASE.
002726,001354:    7617           40141                           DCS      MPAC                                  
002727,001355:    7620           52141                           DXCH     MPAC                                  
002728,001356: 
002729,001357:    7621           10147                           CCS      MODE                                  #  EITHER COMPLEMENT MPAC +3 OR THE REST OF
002730,001358:    7622           17633                           TCF      DCOMP                                 #  THE VECTOR ACCUMULATOR.
002731,001359:    7623           17633                           TCF      DCOMP                                 
002732,001360: 
002733,001361:    7624           00006                           EXTEND                                         #  VECTOR COMPLEMENT.
002734,001362:    7625           40144                           DCS      MPAC       +3                         
002735,001363:    7626           52144                           DXCH     MPAC       +3                         
002736,001364:    7627           00006                           EXTEND                                         
002737,001365:    7630           40146                           DCS      MPAC       +5                         
002738,001366:    7631           52146                           DXCH     MPAC       +5                         
002739,001367:    7632           16014                           TCF      DANZIG                                
002740,001368: 
002741,001369:    7633           40142        DCOMP              CS       MPAC       +2                         
002742,001370:    7634           54142                           TS       MPAC       +2                         
002743,001371:    7635           16014                           TCF      DANZIG                                
002744,001372: 
002745,001373:                                                                                                  #           CONSTANTS REQUIRED IN FIXED-FIXED.
002746,001374: 
002747,001375:    7636           37777        DPOSMAX            OCT      37777                                 
002748,001376:    7637           37777        POSMAX             OCT      37777                                 
002749,001377:    7640     7640               LIMITS             EQUALS   POSMAX     +1                         
002750,001378:    7640           57777        NEG1/2             OCT      -20000                                #  MUST BE TWO LOCATIONS AHEAD OF POS1/2.
002751,001379: 
002752,001380:    7641           40000        BIT15              OCT      40000                                 #  BIT TABLE FOLLOWS.
002753,001381:    7642           20000        BIT14              OCT      20000                                 
002754,001382:    7643           10000        BIT13              OCT      10000                                 
002755,001383:    7644           04000        BIT12              OCT      04000                                 
002756,001384:    7645           02000        BIT11              OCT      02000                                 
002757,001385:    7646           01000        BIT10              OCT      01000                                 
002758,001386:    7647           00400        BIT9               OCT      00400                                 
002759,001387:    7650           00200        BIT8               OCT      00200                                 
002760,001388:    7651           00100        BIT7               OCT      00100                                 
002761,001389:    7652           00040        BIT6               OCT      00040                                 
002762,001390:    7653           00020        BIT5               OCT      00020                                 
002763,001391:    7654           00010        BIT4               OCT      00010                                 
002764,001392:    7655           00004        BIT3               OCT      00004                                 
002765,001393:    7656           00002        BIT2               OCT      00002                                 
002766,001394:    7657           00001        BIT1               OCT      00001                                 
002767,001395: 
002768,001396:    7660     7641               NEGMAX             EQUALS   BIT15                                 
002769,001397:    7660     7642               HALF               EQUALS   BIT14                                 
002770,001398:    7660     7642               POS1/2             EQUALS   HALF                                  
002771,001399:    7660     7643               QUARTER            EQUALS   BIT13                                 
002772,001400:    7660     7645               2K                 EQUALS   BIT11                                 
002773,001401:    7660           00013        ELEVEN             DEC      11         B-14                       
002774,001402:    7661     7660               NOUTCON            =        ELEVEN                                
002775,001403:    7661           00012        TEN                DEC      10         B-14                       
002776,001404:    7662           00011        NINE               DEC      9          B-14                       
002777,001405:    7663     7654               EIGHT              EQUALS   BIT4                                  
002778,001406:    7663           00007        SEVEN              OCT      7                                     
002779,001407:    7664     6162               SIX                EQUALS   REVCNT                                
002780,001408:    7664           00005        FIVE               OCT      5                                     
002781,001409:    7665     7655               FOUR               EQUALS   BIT3                                  
002782,001410:    7665     6165               THREE              EQUALS   NO.WDS     +1                         
002783,001411:    7665     7656               TWO                EQUALS   BIT2                                  
002784,001412:    7665     7657               ONE                EQUALS   BIT1                                  
002785,001413:    7665           00000        ZERO               OCT      0                                     
002786,001414:    7666           77777        NEG0               OCT      77777                                 
002787,001415:    7667           77776        NEGONE             DEC      -1         B-14                       
002788,001416: 
002789,001417:    7670     7667               NEG1               =        NEGONE                                
002790,001418:    7670     7667               MINUS1             EQUALS   NEG1                                  
002791,001419:    7670           77775        NEG2               OCT      77775                                 
002792,001420:    7671           77774        NEG3               DEC      -3         B-14                       
002793,001421:    7672           00777        LOW9               OCT      777                                   
002794,001422:    7673           00017        LOW4               OCT      17                                    
002795,001423: 
002796,001424:    7674     7663               LOW3               EQUALS   SEVEN                                 
002797,001425:    7674     6165               LOW2               EQUALS   THREE                                 
002798,001426: 
002799,001427:    7674           00030        CALLCODE           OCT      00030                                 
002800,001428:    7675           40014        DLOADCOD           OCT      40014                                 
002801,001429:    7676     7641               VLOADCOD           EQUALS   BIT15                                 
002802,001430:    7676           40015        DLOAD*             OCT      40015                                 
002803,001431:    7677     6042               VLOAD*             EQUALS   OCT40001                              
002804,001432:    7677           00106        LVBUF              ADRES    VBUF                                  
002805,001433:    7700           30000        BIT13-14           OCTAL    30000                                 
002806,001434:    7701                        ENDINTF            EQUALS                                         
002807,001435: 
002808,001436:                                                                                                  #  SHIFTING AND ROUNDING PACKAGE.
002809,001437: 
002810,001438:                                                                                                  #           THE FOLLOWING SHORT SHIFT CODES REQUIRE NO ADDRESS WORD:
002811,001439: 
002812,001440:                                                                                                  #           1.  SR1 TO SR4         SCALAR SHIFT RIGHT.
002813,001441:                                                                                                  #           2.  SR1R TO SR4R       SCALAR SHIFT RIGHT AND ROUND.
002814,001442:                                                                                                  #           3.  SL1 TO SL4         SCALAR SHIFT LEFT.
002815,001443:                                                                                                  #           4.  SL1R TO SL4R       SCALAR SHIFT LEFT AND ROUND.
002816,001444: 
002817,001445:                                                                                                  #           5.  VSR1 TO VSR8       VECTOR SHIFT RIGHT (ALWAYS ROUNDS).
002818,001446:                                                                                                  #           6.  VSL1 TO VSL8       VECTOR SHIFT LEFT (NEVER ROUNDS).
002819,001447: 
002820,001448:                                                                                                  #           THE FOLLOWING CODES REQUIRE AN ADDRESS WHICH MAY BE INDEXED:*
002821,001449: 
002822,001450:                                                                                                  #           1.  SR                 SCALAR SHIFT RIGHT.
002823,001451:                                                                                                  #           2.  SRR                SCALAR SHIFT RIGHT AND ROUND.
002824,001452:                                                                                                  #           3.  SL                 SCALAR SHIFT LEFT.
002825,001453:                                                                                                  #           4.  SLR                SCALAR SHIFT LEFT AND ROUND.
002826,001454: 
002827,001455:                                                                                                  #           5.  VSR                VECTOR SHIFT RIGHT.
002828,001456:                                                                                                  #           6.  VSL                VECTOR SHIFT LEFT.
002829,001457: 
002830,001458:                                                                                                  #  *  IF THE ADDRESS IS INDEXED, AND THE INDEX MODIFICATION RESULTS IN A NEGATIVE SHIFT COUNT, A SHIFT OF THE
002831,001459:                                                                                                  #  ABSOLUTE VALUE OF THE COUNT IS DONE IN THE OPPOSITE DIRECTION.
002832,001460: 
002833,001461: 
002834,001462: 00,2000                                           SETLOC   10000                                 #  BANK 0 PORTION FOLLOWS.
002835,001463: 
002836,001464: 00,2000           36162        SHORTT             CAF      SIX                                   #  SCALAR SHORT SHIFTS COME HERE. THE SHIFT
002837,001465: 00,2001           70020                           MASK     CYR                                   #  COUNT-1 IS NOW IN BITS 2-3 OF CYR. THE
002838,001466: 00,2002           54021                           TS       SR                                    #  ROUNDING BIT IS IN BIT1 AT THIS POINT.
002839,001467: 
002840,001468: 00,2003           10020                           CCS      CYR                                   #  SEE IF RIGHT OR LEFT SHIFT DESIRED.
002841,001469: 00,2004           12062                           TCF      TSSL                                  #  SHIFT LEFT.
002842,001470: 
002843,001471: 00,2005           00024        SRDDV              DEC      20         B-14                       #  MPTEMP SETTING FOR SR BEFORE DDV.
002844,001472: 
002845,001473: 00,2006           50021        TSSR               INDEX    SR                                    #  GET SHIFTING BIT.
002846,001474: 00,2007           37642                           CAF      BIT14                                 
002847,001475: 00,2010           54121                           TS       MPTEMP                                
002848,001476: 
002849,001477: 00,2011           10020                           CCS      CYR                                   #  SEE IF A ROUND IS DESIRED.
002850,001478: 00,2012           02031        RIGHTR             TC       MPACSRND                              #  YES - SHIFT RIGHT AND ROUND.
002851,001479: 00,2013           16013                           TCF      NEWMODE                               #  SET MODE TO DP (C(A) = 0).
002852,001480: 00,2014           30121        MPACSHR            CA       MPTEMP                                #  DO A TRIPLE PRECISION SHIFT RIGHT.
002853,001481: 00,2015           00006                           EXTEND                                         
002854,001482: 00,2016           70142                           MP       MPAC       +2                         
002855,001483: 00,2017           54142                 +3        TS       MPAC       +2                         #  (EXIT FROM SQRT AND ABVAL).
002856,001484: 00,2020           30121                           CA       MPTEMP                                
002857,001485: 
002858,001486: 00,2021           00006                           EXTEND                                         
002859,001487: 00,2022           70140                           MP       MPAC                                  #  SHIFT MAJOR PART INTO A,L AND PLACE IN
002860,001488: 00,2023           52141                           DXCH     MPAC                                  #  MPAC,+1.
002861,001489: 00,2024           30121                           CA       MPTEMP                                
002862,001490: 00,2025           00006                           EXTEND                                         
002863,001491: 00,2026           70001                           MP       L                                     #  ORIGINAL C(MPAC +1).
002864,001492: 00,2027           20142                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002865,001493: 00,2030           16014                           TCF      DANZIG                                
002866,001494: 
002867,001495:                                                                                                  #           MPAC SHIFT RIGHT AND ROUND SUBROUTINES.
002868,001496: 
002869,001497: 00,2031           30142        MPACSRND           CA       MPAC       +2                         #  WE HAVE TO DO ALL THREE MULTIPLIES SINCE
002870,001498: 00,2032           00006                           EXTEND                                         #  MPAC +1 AND MPAC +2 MIGHT HAVE SIGN
002871,001499: 00,2033           70121                           MP       MPTEMP                                #  DISAGREEMENT WITH A SHIFT RIGHT OF 1.
002872,001500: 00,2034           56141                           XCH      MPAC       +1                         
002873,001501: 00,2035           00006                           EXTEND                                         
002874,001502: 00,2036           70121                           MP       MPTEMP                                
002875,001503: 00,2037           56141                           XCH      MPAC       +1                         #  TRIAL MINOR PART.
002876,001504: 00,2040           60001                           AD       L                                     
002877,001505: 
002878,001506: 00,2041           60000        VSHR2              DOUBLE                                         #  (FINISH VECTOR COMPONENT SHIFT RIGHT
002879,001507: 00,2042           54142                           TS       MPAC       +2                         #  AND ROUND.
002880,001508: 00,2043           12045                           TCF      +2                                    
002881,001509: 00,2044           26141                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
002882,001510: 
002883,001511: 00,2045           37665                           CAF      ZERO                                  
002884,001512: 00,2046           54142                           TS       MPAC       +2                         
002885,001513: 00,2047           56140                           XCH      MPAC                                  #  SETTING TO ZERO SO FOLLOWING DAS WORKS.
002886,001514: 00,2050           00006                           EXTEND                                         
002887,001515: 00,2051           70121                           MP       MPTEMP                                
002888,001516: 00,2052           20141                           DAS      MPAC                                  #  AGAIN NO OVERFLOW.
002889,001517: 00,2053           00002                           TC       Q                                     
002890,001518: 
002891,001519: 00,2054           30121        VSHRRND            CA       MPTEMP                                #  ENTRY TO SHIFT RIGHT AND ROUND MPAC WHEN
002892,001520: 00,2055           00006                           EXTEND                                         #  MPAC CONTAINS A VECTOR COMPONENT.
002893,001521: 00,2056           70141                           MP       MPAC       +1                         
002894,001522: 00,2057           54141                           TS       MPAC       +1                         
002895,001523: 00,2060           56001                           XCH      L                                     
002896,001524: 00,2061           12041                           TCF      VSHR2                                 #  GO ADD ONE IF NECESSARY AND FINISH.
002897,001525: 
002898,001526:                                                                                                  #           ROUTINE FOR SHORT SCALAR SHIFT LEFT (AND MAYBE ROUND).
002899,001527: 
002900,001528: 00,2062           30021        TSSL               CA       SR                                    #  GET SHIFT COUNT FOR SR.
002901,001529: 00,2063           54121                 +1        TS       MPTEMP                                
002902,001530: 
002903,001531: 00,2064           00006                 +2        EXTEND                                         #  ENTRY HERE FROM SL FOR SCALARS.
002904,001532: 00,2065           30142                           DCA      MPAC       +1                         #  SHIFTING LEFT ONE PLACE AT A TIME IS
002905,001533: 00,2066           20142                           DAS      MPAC       +1                         #  FASTER THAN DOING THE WHOLE SHIFT WITH
002906,001534: 00,2067           60140                           AD       MPAC                                  #  MULTIPLIES ASSUMING THAT FREQUENCY OF
002907,001535: 00,2070           60140                           AD       MPAC                                  #  SHIFT COUNTS GOES DOWN RAPIDLY AS A
002908,001536: 00,2071           54140                           TS       MPAC                                  #  FUNCTION OF THEIR MAGNITUDE.
002909,001537: 00,2072           12074                           TCF      +2                                    
002910,001538: 00,2073           54105                           TS       OVFIND                                #  OVERFLOW. (LEAVES OVERFLOW-CORRECTED
002911,001539:                                                                                                  #  RESULT ANYWAY).
002912,001540: 00,2074           10121                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNT.
002913,001541: 00,2075           12063                           TCF      TSSL       +1                         
002914,001542: 
002915,001543: 00,2076           10020                           CCS      CYR                                   #  SEE IF ROUND WANTED.
002916,001544: 00,2077           07116        ROUND              TC       ROUNDSUB                              #  YES - ROUND AND EXIT.
002917,001545: 00,2100           16014                           TCF      DANZIG                                #  SL LEAVES A ZERO IN CYR FOR NO ROUND.
002918,001546: 00,2101           16014                           TCF      DANZIG                                #  NO - EXIT IMMEDIATL
002919,001547: 
002920,001548:                                                                                                  #  VECTOR SHIFTING ROUTINES.
002921,001549: 
002922,001550: 00,2102           37663        SHORTV             CAF      LOW3                                  #  SAVE 3 BIT SHIFT COUNT - 1 WITHOUT
002923,001551: 00,2103           70020                           MASK     CYR                                   #  EDITING CYR.
002924,001552: 00,2104           54121                           TS       MPTEMP                                
002925,001553: 00,2105           10020                           CCS      CYR                                   #  SEE IF LEFT OR RIGHT SHIFT.
002926,001554: 00,2106           12126                           TCF      VSSL                                  #  VECTOR SHIFT LEFT.
002927,001555: 00,2107           00176        OCT176             OCT      176                                   #  USED IN PROCESSED SHIFTS WITH - COUNT.
002928,001556: 
002929,001557: 00,2110           50121        VSSR               INDEX    MPTEMP                                #  (ENTRY FROM SR). PICK UP SHIFTING BIT.
002930,001558: 00,2111           37642                           CAF      BIT14                                 #  MPTEMP CONTAINS THE SHIFT COUNT - 1.
002931,001559: 00,2112           54121                           TS       MPTEMP                                
002932,001560: 00,2113           02054                           TC       VSHRRND                               #  SHIFT X COMPONENT.
002933,001561: 
002934,001562: 00,2114           52141                           DXCH     MPAC                                  #  SWAP X AND Y COMPONENTS.
002935,001563: 00,2115           52144                           DXCH     MPAC       +3                         
002936,001564: 00,2116           52141                           DXCH     MPAC                                  
002937,001565: 00,2117           02054                           TC       VSHRRND                               #  SHIFT Y COMPONENT.
002938,001566: 
002939,001567: 00,2120           52141                           DXCH     MPAC                                  #  SWAP Y AND Z COMPONENTS.
002940,001568: 00,2121           52146                           DXCH     MPAC       +5                         
002941,001569: 00,2122           52141                           DXCH     MPAC                                  
002942,001570: 00,2123           02054                           TC       VSHRRND                               #  SHIFT Z COMPONENT.
002943,001571: 
002944,001572: 00,2124           17373                           TCF      VROTATEX                              #  RESTORE COMPONENTS TO PROPER PLACES.
002945,001573: 
002946,001574:                                                                                                  #  VECTOR SHIFT LEFT - DONE ONE PLACE AT A TIME.
002947,001575: 
002948,001576: 00,2125           54121                 -1        TS       MPTEMP                                #  SHIFTING LOOP.
002949,001577: 
002950,001578: 00,2126           00006        VSSL               EXTEND                                         
002951,001579: 00,2127           30141                           DCA      MPAC                                  
002952,001580: 00,2130           20141                           DAS      MPAC                                  
002953,001581: 00,2131           00006                           EXTEND                                         
002954,001582: 00,2132           12134                           BZF      +2                                    
002955,001583: 00,2133           07007                           TC       OVERFLOW                              
002956,001584: 
002957,001585: 00,2134           00006                           EXTEND                                         
002958,001586: 00,2135           30144                           DCA      MPAC       +3                         
002959,001587: 00,2136           20144                           DAS      MPAC       +3                         
002960,001588: 00,2137           00006                           EXTEND                                         
002961,001589: 00,2140           12142                           BZF      +2                                    
002962,001590: 00,2141           07007                           TC       OVERFLOW                              
002963,001591: 
002964,001592: 00,2142           00006                           EXTEND                                         
002965,001593: 00,2143           30146                           DCA      MPAC       +5                         
002966,001594: 00,2144           20146                           DAS      MPAC       +5                         
002967,001595: 00,2145           00006                           EXTEND                                         
002968,001596: 00,2146           12150                           BZF      +2                                    
002969,001597: 00,2147           07007                           TC       OVERFLOW                              
002970,001598: 
002971,001599: 00,2150           10121                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNTER.
002972,001600: 00,2151           12125                           TCF      VSSL       -1                         
002973,001601: 00,2152           16014                           TCF      DANZIG                                #  EXIT.
002974,001602: 
002975,001603:                                                                                                  #           TSLC - TRIPLE SHIFT LEFT AND COUNT. SHIFTS MPAC LEFT UNTIL GREATER THAN .5 IN MAGNITUDE, LEAVING
002976,001604:                                                                                                  #  THE COMPLEMENT OF THE NUMBER OF SHIFTS REQUIRED IN X.
002977,001605: 
002978,001606: 00,2153           54121        TSLC2              TS       MPTEMP                                #  START BY ZEROING SHIFT COUNT (IN A NOW).
002979,001607: 00,2154           06711                           TC       BRANCH                                #  EXIT WITH NO SHIFTING IF ARGUMENT ZERO.
002980,001608: 00,2155           12157                           TCF      +2                                    
002981,001609: 00,2156           12172                           TCF      ENDTSLC                               #  STORES ZERO SHIFT COUNT IN THIS CASE.
002982,001610: 
002983,001611: 00,2157           30140                           CA       MPAC                                  #  BEGIN NORMALIZATION LOOP.
002984,001612: 00,2160           12167                           TCF      TSLCTEST                              
002985,001613: 
002986,001614: 00,2161           24121        TSLCLOOP           INCR     MPTEMP                                #  INCREMENT SHIFT COUNTER.
002987,001615: 00,2162           00006                           EXTEND                                         
002988,001616: 00,2163           30142                           DCA      MPAC       +1                         
002989,001617: 00,2164           20142                           DAS      MPAC       +1                         
002990,001618: 00,2165           60140                           AD       MPAC                                  
002991,001619: 00,2166           26140                           ADS      MPAC                                  
002992,001620: 00,2167           60000        TSLCTEST           DOUBLE                                         #  SEE IF (ANOTHER) SHIFT IS REQUIRED.
002993,001621: 00,2170           54000                           OVSK                                           
002994,001622: 00,2171           12161                           TCF      TSLCLOOP                              #  YES - INCREMENT COUNT AND SHIFT AGAIN.
002995,001623: 
002996,001624: 00,2172           40121        ENDTSLC            CS       MPTEMP                                
002997,001625: 00,2173           16627                           TCF      STORE1                                #  STORE SHIFT COUNT AND RETURN TO DANZIG.
002998,001626: 
002999,001627:                                                                                                  #           THE FOLLOWING ROUTINES PROCESSES THE GENERAL SHIFT INSTRUCTIONS SR, SRR, SL, AND SLR.
003000,001628:                                                                                                  #  THE GIVEN ADDRESS IS DECODED AS FOLLOWS:
003001,001629: 
003002,001630:                                                                                                  #           BITS 1-7        SHIFT COUNT (SUBADDRESS) LESS THAN 125 DECIMAL.
003003,001631:                                                                                                  #           BIT 8           PSEUDO SIGN BIT (DETECTS CHANGE IN SIGN IN INDEXED SHIFTS).
003004,001632:                                                                                                  #           BIT 9           0 FOR LEFT SHIFT, AND 1 FOR RIGHT SHIFT.
003005,001633:                                                                                                  #           BIT 10          1 FOR TERMINAL ROUND ON SCALAR SHIFTS, 0 OTHERWISE.
003006,001634:                                                                                                  #           BITS 11-15      0.
003007,001635: 
003008,001636:                                                                                                  #  THE ABOVE ENCODING IS DONE BY THE YUL SYSTEM.
003009,001637: 
003010,001638: 
003011,001639: 
003012,001640: 00,2174           70102        GENSHIFT           MASK     ADDRWD                                #  GET SHIFT COUNT, TESTING FOR ZERO.
003013,001641: 00,2175           10000                           CCS      A                                     #  (ARRIVES WITH C(A) = LOW7).
003014,001642: 00,2176           12204                           TCF      GENSHFT2                              #  IF NON-ZERO, PROCEED WITH DECREMENTED CT
003015,001643: 
003016,001644: 00,2177           37646                           CAF      BIT10                                 #  ZERO SHIFT COUNT. NO SHIFTS NEEDED BUT
003017,001645: 00,2200           70102                           MASK     ADDRWD                                #  WE MIGHT HAVE TO ROUND MPAC ON SLR AND
003018,001646: 00,2201           10000                           CCS      A                                     #  SRR (SCALAR ONLY).
003019,001647: 00,2202           07116                           TC       ROUNDSUB                              
003020,001648: 00,2203           16014                           TCF      DANZIG                                
003021,001649: 
003022,001650: 00,2204           54121        GENSHFT2           TS       MPTEMP                                #  DECREMENTED SHIFT COUNT TO MPTEMP.
003023,001651: 00,2205           37650                           CAF      BIT8                                  #  TEST MEANING OF LOW SEVEN BIT COUNT IN
003024,001652: 00,2206           00006                           EXTEND                                         #  MPTEMP NOW.
003025,001653: 00,2207           70102                           MP       ADDRWD                                
003026,001654: 00,2210           76165                           MASK     LOW2                                  #  JUMPS ON SHIFT DIRECTION (BIT8) AND
003027,001655: 00,2211           50000                           INDEX    A                                     
003028,001656: 00,2212           12213                           TCF      +1                                    #  ORIGINAL SHIFT DIRECTION (BIT 9).
003029,001657: 00,2213           12312                           TCF      RIGHT-                                #  NEGATIVE SHIFT COUNT FOR SL OR SLR.
003030,001658: 00,2214           12321                           TCF      LEFT                                  #  SL OR SLR.
003031,001659: 00,2215           12316                           TCF      LEFT-                                 #  NEGATIVE SHIFT COUNT WITH SR OR SRR.
003032,001660: 
003033,001661:                                                                                                  #           GENERAL SHIFT RIGHT.
003034,001662: 
003035,001663: 00,2216           10147        RIGHT              CCS      MODE                                  #  SEE IF VECTOR OR SCALAR.
003036,001664: 00,2217           12257                           TCF      GENSCR                                
003037,001665: 00,2220           12257                           TCF      GENSCR                                
003038,001666: 
003039,001667: 00,2221           30121                           CA       MPTEMP                                #  SEE IF SHIFT COUNT GREATER THAN 13D.
003040,001668: 00,2222           62273        VRIGHT2            AD       NEG12                                 
003041,001669: 00,2223           00006                           EXTEND                                         
003042,001670: 00,2224           62110                           BZMF     VSSR                                  #  IF SO, BRANCH AND SHIFT IMMEDIATELY.
003043,001671: 
003044,001672: 00,2225           67667                           AD       NEGONE                                #  IF NOT, REDUCE MPTEMP BY A TOTAL OF 14,
003045,001673: 00,2226           54121                           TS       MPTEMP                                #  AND DO A SHIFT RIGHT AND ROUND BY 14.
003046,001674: 00,2227           37665                           CAF      ZERO                                  #  THE ROUND AT THIS STAGE MAY INTRODUCE A
003047,001675: 00,2230           54001                           TS       L                                     #  ONE BIT ERROR IN A SHIFT RIGHT 15D.
003048,001676: 00,2231           56140                           XCH      MPAC                                  
003049,001677: 00,2232           56141                           XCH      MPAC       +1                         
003050,001678: 00,2233           02252                           TC       SETROUND                              #  X COMPONENT NOW SHIFTED, SO MAKE UP THE
003051,001679: 00,2234           20141                           DAS      MPAC                                  #  ROUNDING QUANTITY (0 IN A AND 0 OR +-1
003052,001680:                                                                                                  #  IN L).
003053,001681: 00,2235           56143                           XCH      MPAC       +3                         #  REPEAT THE ABOVE PROCESS FOR Y AND Z.
003054,001682: 00,2236           56144                           XCH      MPAC       +4                         
003055,001683: 00,2237           02252                           TC       SETROUND                              
003056,001684: 00,2240           20144                           DAS      MPAC       +3                         #  NO OVERFLOW ON THESE ADDS.
003057,001685: 
003058,001686: 00,2241           56145                           XCH      MPAC       +5                         
003059,001687: 00,2242           56146                           XCH      MPAC       +6                         
003060,001688: 00,2243           02252                           TC       SETROUND                              
003061,001689: 00,2244           20146                           DAS      MPAC       +5                         
003062,001690: 
003063,001691: 00,2245           10121                           CCS      MPTEMP                                #  SEE IF DONE, DOING FINAL DECREMENT.
003064,001692: 00,2246           12222                           TCF      VRIGHT2                               
003065,001693: 00,2247           13630        TCSUBTR            TCF      SUBTR                                 
003066,001694: 00,2250           04604        BIASLO             DEC      .2974      B-1                        #  SQRT CONSTANT
003067,001695: 
003068,001696: 00,2251           16014                           TCF      DANZIG                                
003069,001697: 
003070,001698: 
003071,001699: 
003072,001700: 00,2252           60000        SETROUND           DOUBLE                                         #  MAKES UP ROUNDING QUANTITY FROM ARRIVING
003073,001701: 00,2253           54142                           TS       MPAC       +2                         #  C(A). L IS ZERO INITIALLY.
003074,001702: 00,2254           37665                           CAF      ZERO                                  
003075,001703: 00,2255           56001                           XCH      L                                     
003076,001704: 00,2256           00002                           TC       Q                                     #  RETURN AND DO THE DAS, RESETTING L TO 0.
003077,001705: 
003078,001706:                                                                                                  #           PROCESS SR AND SRR FOR SCALARS.
003079,001707: 
003080,001708: 00,2257           30121        GENSCR             CA       MPTEMP                                #  SEE IF THE ORIGINAL SHIFT COUNT WAS LESS
003081,001709: 00,2260           62273                 +1        AD       NEG12                                 #  THAN 14D.
003082,001710: 00,2261           00006                           EXTEND                                         
003083,001711: 00,2262           62302                           BZMF     DOSSHFT                               #  DO THE SHIFT IMMEDIATELY IF SO.
003084,001712: 
003085,001713: 00,2263           67667                 +4        AD       NEGONE                                #  IF NOT, DECREMENT SHIFT COUNT BY 14D AND
003086,001714: 00,2264           54121                           TS       MPTEMP                                #  SHIFT MPAC RIGHT 14 PLACES.
003087,001715: 00,2265           37665                           CAF      ZERO                                  
003088,001716: 00,2266           56140                           XCH      MPAC                                  
003089,001717: 00,2267           56141                           XCH      MPAC       +1                         
003090,001718: 00,2270           54142                           TS       MPAC       +2                         
003091,001719: 00,2271           10121                           CCS      MPTEMP                                #  SEE IF FINISHED, DO FINAL DECREMENT.
003092,001720: 00,2272           02260                           TC       GENSCR     +1                         
003093,001721: 00,2273           77763        NEG12              DEC      -12        B-14                       
003094,001722: 00,2274           22650        SLOPEHI            DEC      .5884                                 #  SQRT CONSTANT.
003095,001723: 00,2275           37646                           CAF      BIT10                                 #  FINISHED WITH SHIFT. SEE IF ROUND
003096,001724: 00,2276           70102                           MASK     ADDRWD                                #  WANTED.
003097,001725: 00,2277           10000                           CCS      A                                     
003098,001726: 00,2300           07116                           TC       ROUNDSUB                              
003099,001727: 00,2301           16014                           TCF      DANZIG                                #  DO SO AND/OR EXIT.
003100,001728: 
003101,001729: 00,2302           50121        DOSSHFT            INDEX    MPTEMP                                #  PICK UP SHIFTING BIT.
003102,001730: 00,2303           37642                           CAF      BIT14                                 
003103,001731: 00,2304           54121                           TS       MPTEMP                                
003104,001732: 00,2305           37646                           CAF      BIT10                                 #  SEE IF TERMINAL ROUND DESIRED.
003105,001733: 00,2306           70102                           MASK     ADDRWD                                
003106,001734: 00,2307           10000                           CCS      A                                     
003107,001735: 00,2310           12012                           TCF      RIGHTR                                #  YES.
003108,001736: 00,2311           12014                           TCF      MPACSHR                               #  JUST SHIFT RIGHT.
003109,001737: 
003110,001738:                                                                                                  #           PROCESS THE RIGHT- (SL(R) WITH A NEGATIVE COUNT), LEFT-, AND LEFT OPTIONS.
003111,001739: 
003112,001740: 00,2312           40121        RIGHT-             CS       MPTEMP                                #  GET ABSOLUTE VALUE - 1 OF SHIFT COUNT
003113,001741: 00,2313           62107                           AD       OCT176                                #  UNDERSTANDING THAT BIT8 (PSEUDO-SIGN)
003114,001742: 00,2314           54121                           TS       MPTEMP                                #  WAS 1 INITIALLY.
003115,001743: 00,2315           12216                           TCF      RIGHT                                 #  DO NORMAL SHIFT RIGHT.
003116,001744: 
003117,001745: 00,2316           40121        LEFT-              CS       MPTEMP                                #  SAME PROLOGUE TO LEFT FOR INDEXED RIGHT
003118,001746: 00,2317           62107                           AD       OCT176                                #  SHIFTS WHOSE NET SHIFT COUNT IS NEGATIVE
003119,001747: 00,2320           54121                           TS       MPTEMP                                
003120,001748: 
003121,001749: 00,2321           10147        LEFT               CCS      MODE                                  #  SINCE LEFT SHIFTING IS SONE ONE PLACE AT
003122,001750: 00,2322           12325                           TCF      GENSCL                                #  A TIME, NO COMPARISON WITH 14 NEED BE
003123,001751: 00,2323           12325                           TCF      GENSCL                                #  DONE. FOR SCALARS, SEE IF TERMINAL ROUND
003124,001752: 00,2324           12126                           TCF      VSSL                                  #  DESIRED. FOR VECTORS, SHIFT IMMEDIATELY.
003125,001753: 
003126,001754: 00,2325           37652        GENSCL             CAF      BIT6                                  #  PUT ROUNDING BIT (BIT10 OF ADDRWD) INTO
003127,001755: 00,2326           00006                           EXTEND                                         #  BIT 15 OF CYR WHERE THE ROUNDING BIT OF
003128,001756: 00,2327           70102                           MP       ADDRWD                                #  A SHORT SHIFT LEFT WOULD BE.
003129,001757: 00,2330           54020                           TS       CYR                                   
003130,001758: 00,2331           12064                           TCF      TSSL       +2                         #  DO THE SHIFT.
003131,001759: 
003132,001760:                                                                                                  #           SCALAR DIVISION INSTRUCTIONS, DDV AND BDDV, ARE EXECUTED HERE. AT THIS POINT, THE DIVIDEND IS IN MPAC
003133,001761:                                                                                                  #  AND THE DIVISOR IN BUF.
003134,001762: 
003135,001763: 00,2332           47657        DDV/BDDV           CS       ONE                                   #  INITIALIZATION.
003136,001764: 00,2333           54122                           TS       DVSIGN                                #  +-1 FOR POSITIVE QUOTIENT - -0 FOR NEG.
003137,001765: 00,2334           54123                           TS       DVNORMCT                              #  DIVIDEND NORMALIZATION COUNT.
003138,001766: 00,2335           54124                           TS       MAXDVSW                               #  NEAR-ONE DIVIDE FLAG.
003139,001767: 
003140,001768: 00,2336           10114                           CCS      BUF                                   #  FORCE BUF POSITIVE WITH THE MAJOR PART
003141,001769: 00,2337           12366                           TCF      BUF+                                  #  NON-ZERO.
003142,001770: 00,2340           12342                           TCF      +2                                    
003143,001771: 00,2341           12362                           TCF      BUF-                                  
003144,001772: 
003145,001773: 00,2342           56115                           XCH      BUF        +1                         #  SHIFT DIVIDEND AND DIVISOR LEFT 14.
003146,001774: 00,2343           56114                           XCH      BUF                                   
003147,001775: 00,2344           56141                           XCH      MPAC       +1                         
003148,001776: 00,2345           56140                           XCH      MPAC                                  
003149,001777: 00,2346           00006                           EXTEND                                         #  CHECK FOR OVERFLOW.
003150,001778: 00,2347           12351                           BZF      +2                                    
003151,001779: 00,2350           12355                           TCF      DVOVF                                 
003152,001780: 
003153,001781: 00,2351           10114                           CCS      BUF                                   #  TRY AGAIN ON FORMER MINOR PART.
003154,001782: 00,2352           12366                           TCF      BUF+                                  
003155,001783: 00,2353           12355                           TCF      DVOVF                                 #  OVERFLOW ON ZERO DIVISOR.
003156,001784: 00,2354           12362                           TCF      BUF-                                  
003157,001785: 
003158,001786: 00,2355           37637        DVOVF              CAF      POSMAX                                #  ON DIVISION OVERFLOW OF ANY SORT, SET
003159,001787: 00,2356           54140                           TS       MPAC                                  #  SET DP MPAC TO +-POSMAX.
003160,001788: 00,2357           02552                           TC       FINALDV    +3                         
003161,001789: 00,2360           37657                           CAF      ONE                                   #  SET OVERFLOW INDICATOR AND EXIT.
003162,001790: 00,2361           17061                           TCF      SETOVF                                
003163,001791: 
003164,001792: 00,2362           00006        BUF-               EXTEND                                         #  IF BUF IS NEGATIVE, COMPLEMENT IT AND
003165,001793: 00,2363           40115                           DCS      BUF                                   #  MAINTAIN DVSIGN FOR FINAL QUOTIENT SIGN.
003166,001794: 00,2364           52115                           DXCH     BUF                                   
003167,001795: 00,2365           24122                           INCR     DVSIGN                                #  NOW -0.
003168,001796: 
003169,001797: 00,2366           10140        BUF+               CCS      MPAC                                  #  FORCE MPAC POSITIVE, CHECKING FOR ZERO
003170,001798: 00,2367           12403                           TCF      MPAC+                                 #  DIVIDEND IN THE PROCESS.
003171,001799: 00,2370           12372                           TCF      +2                                    
003172,001800: 00,2371           12377                           TCF      MPAC-                                 
003173,001801: 00,2372           10141                           CCS      MPAC       +1                         
003174,001802: 00,2373           12403                           TCF      MPAC+                                 
003175,001803: 00,2374           16014                           TCF      DANZIG                                #  EXIT IMMEDIATELY ON ZERO DIVIDEND.
003176,001804: 00,2375           12377                           TCF      MPAC-                                 
003177,001805: 00,2376           16014                           TCF      DANZIG                                
003178,001806: 
003179,001807: 00,2377           00006        MPAC-              EXTEND                                         #  FORCE MPAC POSITIVE AS BUF IN BUF-.
003180,001808: 00,2400           40141                           DCS      MPAC                                  
003181,001809: 00,2401           52141                           DXCH     MPAC                                  
003182,001810: 
003183,001811: 00,2402           24122                           INCR     DVSIGN                                #  NOW +1 OR -0.
003184,001812: 
003185,001813: 00,2403           40140        MPAC+              CS       MPAC                                  #  CHECK FOR DIVISION OVERFLOW. IF THE
003186,001814: 00,2404           67667                           AD       NEGONE                                #  MAJOR PART OF THE DIVIDEND IS LESS THAN
003187,001815: 00,2405           60114                           AD       BUF                                   #  THE MAJOR PART OF THE DIVISOR BY AT
003188,001816: 00,2406           10000                           CCS      A                                     #  LEAST TWO, WE CAN PROCEED IMMEDIATELY
003189,001817: 00,2407           12451                           TCF      DVNORM                                #  WITHOUT NORMALIZATION PRODUCING A DVMAX.
003190,001818: 00,2410           60001        -1/2+2             OCT      60001                                 #  USED IN SQRTSUB.
003191,001819: 
003192,001820: 00,2411           12412                           TCF      +1                                    #  IF THE ABOVE DOES NOT HOLD, FORCE SIGN
003193,001821: 00,2412           37642                           CAF      HALF                                  #  AGREEMENT IN NUMERATOR AND DENOMINATOR
003194,001822: 00,2413           60000                           DOUBLE                                         #  TO FACILITATE OVERFLOW AND NEAR-ONE
003195,001823: 00,2414           60141                           AD       MPAC       +1                         #  CHECKING.
003196,001824: 00,2415           54141                           TS       MPAC       +1                         
003197,001825: 00,2416           37665                           CAF      ZERO                                  
003198,001826: 00,2417           67637                           AD       POSMAX                                
003199,001827: 00,2420           26140                           ADS      MPAC                                  
003200,001828: 
003201,001829: 00,2421           37642                           CAF      HALF                                  #  SAME FOR BUF.
003202,001830: 00,2422           60000                           DOUBLE                                         
003203,001831: 00,2423           60115                           AD       BUF        +1                         
003204,001832: 00,2424           54115                           TS       BUF        +1                         
003205,001833: 00,2425           37665                           CAF      ZERO                                  
003206,001834: 00,2426           67637                           AD       POSMAX                                
003207,001835: 00,2427           26114                           ADS      BUF                                   
003208,001836: 
003209,001837: 00,2430           40140                           CS       MPAC                                  #  CHECK MAGNITUDE OF SIGN-CORRECTED
003210,001838: 00,2431           60114                           AD       BUF                                   #  OPERANDS.
003211,001839: 00,2432           10000                           CCS      A                                     
003212,001840: 00,2433           12451                           TCF      DVNORM                                #  DIVIDE OK - WILL NOT BECOME MAXDV CASE.
003213,001841: 00,2434           00117        LBUF2              ADRES    BUF2                                  
003214,001842: 00,2435           12355                           TCF      DVOVF                                 #  DIVISOR NOT LESS THAN DIVIDEND - OVF.
003215,001843: 
003216,001844: 00,2436           54124                           TS       MAXDVSW                               #  IF THE MAJOR PARTS OF THE DIVIDEND AND
003217,001845: 00,2437           40141                           CS       MPAC       +1                         #  DIVISOR ARE EQUAL, A SPECIAL APPROXIMA-
003218,001846: 00,2440           60115                           AD       BUF        +1                         #  TION IS USED (PROVIDED THE DIVISION IS
003219,001847: 00,2441           00006                           EXTEND                                         #  POSSIBLE, OF COURSE).
003220,001848: 00,2442           62355                           BZMF     DVOVF                                 
003221,001849: 00,2443           12451                           TCF      DVNORM                                #  IF NO OVERFLOW.
003222,001850: 
003223,001851: 00,2444           00006        BUFNORM            EXTEND                                         #  ADD -1 TO AUGMENT SHIFT COUNT AND SHIFT
003224,001852: 00,2445           24123                           AUG      DVNORMCT                              #  LEFT ONE PLACE.
003225,001853: 00,2446           00006                           EXTEND                                         
003226,001854: 00,2447           30115                           DCA      BUF                                   
003227,001855: 00,2450           20115                           DAS      BUF                                   
003228,001856: 
003229,001857: 00,2451           30114        DVNORM             CA       BUF                                   #  SEE IF DIVISOR NORMALIZED YET.
003230,001858: 00,2452           60000                           DOUBLE                                         
003231,001859: 00,2453           54000                           OVSK                                           
003232,001860: 00,2454           12444                           TCF      BUFNORM                               #  NO - SHIFT LEFT ONE AND TRY AGAIN.
003233,001861: 
003234,001862: 00,2455           52141                           DXCH     MPAC                                  #  CALL DIVIDEND NORMALIZATION SEQUENCE
003235,001863: 00,2456           50123                           INDEX    DVNORMCT                              #  PRIOR TO DOING THE DIVIDE.
003236,001864: 00,2457           02507                           TC       MAXTEST                               
003237,001865: 
003238,001866: 00,2460           54142                           TS       MPAC       +2                         #  RETURNS WITH DIVISION DONE AND C(A) = 0.
003239,001867: 00,2461           16014                           TCF      DANZIG                                
003240,001868: 
003241,001869:                                                                                                  #           THE FOLLOWING ARE PROLOGUES TO SHIFT THE DIVIDEND ARRIVING IN A AND L BEFORE THE DIVIDE.
003242,001870: 
003243,001871: 00,2462           22021                 -21D      LXCH     SR                                    #  SPECIAL PROLOGUE FOR UNIT WHEN THE
003244,001872: 00,2463           00006                           EXTEND                                         #  LENGTH OF THE ARGUMENT WAS NOT LESS THAN
003245,001873: 00,2464           77642                           MP       HALF                                  #  .5.  IN THIS CASE, EACH COMPONENT MUST BE
003246,001874: 00,2465           56001                           XCH      L                                     #  SHIFTED RIGHT ONE TO PRODUCE A HALF-UNIT
003247,001875: 00,2466           60021                           AD       SR                                    #  VECTOR.
003248,001876: 00,2467           56001                           XCH      L                                     
003249,001877: 00,2470           12513                           TCF      GENDDV     +1                         #  WITH DP DIVIDEND IN A,L.
003250,001878: 
003251,001879: 00,2471           20001                           DDOUBL                                         #  PROLOGUE WHICH NORMALIZES THE DIVIDEND
003252,001880: 00,2472           20001                           DDOUBL                                         #  WHEN IT IS KNOWN THAT NO DIVISION
003253,001881: 00,2473           20001                           DDOUBL                                         #  OVERFLOW WILL OCCUR.
003254,001882: 00,2474           20001                           DDOUBL                                         
003255,001883: 00,2475           20001                           DDOUBL                                         
003256,001884: 00,2476           20001                           DDOUBL                                         
003257,001885: 00,2477           20001                           DDOUBL                                         
003258,001886: 00,2500           20001                           DDOUBL                                         
003259,001887: 00,2501           20001                           DDOUBL                                         
003260,001888: 00,2502           20001                           DDOUBL                                         
003261,001889: 00,2503           20001                           DDOUBL                                         
003262,001890: 00,2504           20001                           DDOUBL                                         
003263,001891: 00,2505           20001                           DDOUBL                                         
003264,001892: 00,2506           52141                           DXCH     MPAC                                  
003265,001893: 
003266,001894: 00,2507           10124        MAXTEST            CCS      MAXDVSW                               #  0 IF MAJORS MIGHT BE =, -1 OTHERWISE.
003267,001895: 00,2510           06552        BIASHI             DEC      .4192      B-1                        #  SQRT CONSTANTS
003268,001896: 
003269,001897: 00,2511           12564                           TCF      MAXDV                                 #  CHECK TO SEE IF THEY ARE NOW EQUAL.
003270,001898: 
003271,001899:                                                                                                  #           THE FOLLOWING IS A GENERAL PURPOSE DOUBLE PRECISION DIVISION ROUTINE. IT DIVIDES MPAC BY BUF AND LEAVES
003272,001900:                                                                                                  #  THE RESULT IN MPAC. THE FOLLOWING CONDITIONS MUST BE SATISFIED:
003273,001901: 
003274,001902:                                                                                                  #           1.  THE DIVISOR (BUF) MUST BE POSITIVE AND NOT LESS THAN .5.
003275,001903: 
003276,001904:                                                                                                  #           2.  THE DIVIDEND (MPAC) MUST BE POSITIVE WITH THE MAJOR PART OF MPAC STRICTLY LESS THAN THAT OF BUF
003277,001905:                                                                                                  #  (A SPECIAL APPROXIMATION, MAXDV, IS USED WHEN THE MAJOR PARTS ARE EQUAL).
003278,001906: 
003279,001907:                                                                                                  #           UNDERSTANDING THAT A/B = Q + S(R/B) WHERE S = 2(-14) AND Q AND R ARE QUOTIENT AND REMAINDER, RESPEC-
003280,001908:                                                                                                  #  TIVELY, THE FOLLOWING APPROXIMATION IS OBTAINED BY MULTIPLYING ABOVE AND BELOW BY C - SD AND NEGLECTING TERMS OF
003281,001909:                                                                                                  #  ORDER S-SQUARED (POSSIBLY INTRODUCING ERROR INTO THE LOW TWO BITS OF THE RESULT). SIGN AGREEMENT IS UNNECESSARY.
003282,001910: 
003283,001911:                                                                                                  #           A + SB .      (R - QD)                                             A + SB
003284,001912:                                                                                                  #           ------ = Q + S(------) WHERE Q AND R ARE QUOTIENT AND REMAINDER OF ------ RESPECTIVELY.
003285,001913:                                                                                                  #           C + SD        (  C   }                                               C
003286,001914: 
003287,001915: 00,2512           52141        GENDDV             DXCH     MPAC                                  #  WE NEED A AND B ONLY FOR FIRST DV.
003288,001916: 00,2513           00006                 +1        EXTEND                                         #  (SPECIAL UNIT PROLOGUE ENTERS HERE).
003289,001917: 00,2514           10114                           DV       BUF                                   #  A NOW CONTAINS Q AND L, R.
003290,001918: 00,2515           52141                           DXCH     MPAC                                  
003291,001919: 
003292,001920: 00,2516           40140                           CS       MPAC                                  #  FORM DIVIDEND FOR MINOR PART OF RESULT.
003293,001921: 00,2517           00006                           EXTEND                                         
003294,001922: 00,2520           70115                           MP       BUF        +1                         
003295,001923: 00,2521           60141                           AD       MPAC       +1                         #  OVERFLOW AT THIS POINT IS POSITIVE SINCE
003296,001924: 00,2522           54000                           OVSK                                           #  R IS POSITIVE IN EVERY CASE.
003297,001925: 00,2523           12530                           TCF      +5                                    
003298,001926: 
003299,001927: 00,2524           00006                           EXTEND                                         #  OVERFLOW CAN BE REMOVED BY SUBTRACTING C
003300,001928: 00,2525           60114                           SU       BUF                                   #  (BUF) ONCE SINCE R IS ALWAYS LESS THAN C
003301,001929: 00,2526           24140                           INCR     MPAC                                  #  IN THIS CASE. INCR COMPENSATES SUBTRACT.
003302,001930: 00,2527           12532                           TCF      +DOWN                                 #  (SINCE C(A) IS STILL POSITIVE).
003303,001931: 
003304,001932: 00,2530           00006                 +5        EXTEND                                         #  C(A) CAN BE MADE LESS THAN C IN MAGNI-
003305,001933: 00,2531           62542                           BZMF     -UP                                   #  TUDE BY DIMINISHING IT BY C (SINCE C IS
003306,001934:                                                                                                  #  NOT LESS THAN .5) UNLESS C(A) = 0.
003307,001935: 
003308,001936: 00,2532           00006        +DOWN              EXTEND                                         
003309,001937: 00,2533           60114                           SU       BUF                                   #  IF POSITIVE, REDUCE ONLY IF NECESSARY
003310,001938: 00,2534           00006                           EXTEND                                         #  SINCE THE COMPENSATING INCR MIGHT CAUSE
003311,001939: 00,2535           12540                           BZF      +3                                    #  OVERFLOW.
003312,001940: 00,2536           00006                           EXTEND                                         #  DONT SUBTRACT UNLESS RESULT IS POSITIVE
003313,001941: 00,2537           62546                           BZMF     ENDMAXDV                              #  OR ZERO.
003314,001942: 
003315,001943: 00,2540           24140                 +3        INCR     MPAC                                  #  KEEP SUBTRACT HERE AND COMPENSATE.
003316,001944: 00,2541           12547                           TCF      FINALDV                               
003317,001945: 
003318,001946: 00,2542           00006        -UP                EXTEND                                         #  IF ZERO, SET MINOR PART OF RESULT TO
003319,001947: 00,2543           12552                           BZF      FINALDV    +3                         #  ZERO.
003320,001948: 
003321,001949: 00,2544           00006                           EXTEND                                         #  IF NEGATIVE, ADD C TO A, SUBTRACTING ONE
003322,001950: 00,2545           26140                           DIM      MPAC                                  #  TO COMPENSATE. DIM IS OK HERE SINCE THE
003323,001951: 00,2546           60114        ENDMAXDV           AD       BUF                                   #  MAJOR PART NEVER GOES NEGATIVE.
003324,001952: 
003325,001953: 00,2547           22007        FINALDV            ZL                                             #  DO DV TO OBTAIN MINOR PART OF RESULT.
003326,001954: 00,2550           00006                           EXTEND                                         
003327,001955: 00,2551           10114                           DV       BUF                                   
003328,001956: 00,2552           54141                 +3        TS       MPAC       +1                         
003329,001957: 
003330,001958: 00,2553           10122                           CCS      DVSIGN                                #  LEAVE RESULT POSITIVE UNLESS C(DVSIGN)=
003331,001959: 00,2554           00002                           TC       Q                                     #  -0.
003332,001960: 00,2555           00002                           TC       Q                                     
003333,001961: 00,2556           00002                           TC       Q                                     
003334,001962: 
003335,001963: 00,2557           00006                           EXTEND                                         
003336,001964: 00,2560           40141                           DCS      MPAC                                  
003337,001965: 00,2561           52141                           DXCH     MPAC                                  
003338,001966: 00,2562           37665                           CAF      ZERO                                  #  SO WE ALWAYS RETURN WITH C(A) = 0.
003339,001967: 00,2563           00002                           TC       Q                                     
003340,001968: 
003341,001969:                                                                                                  #           IF THE MAJOR PARTS OF THE DIVISOR AND DIVIDEND ARE EQUAL, BUT THE MINOR PARTS ARE SUCH THAT THE
003342,001970:                                                                                                  #  DIVIDEND IS STRICTLY LESS THAN THE DIVISOR IN MAGNITUDE, THE FOLLOWING APPROXIMATION IS USED. THE ASSUMPTIONS
003343,001971:                                                                                                  #  ARE THE SAME AS THE GENERAL ROUTINE WITH THE ADDITION THAT SIGN AGREEMENT IS NECESSARY (B, C, & D POSITIVE).
003344,001972: 
003345,001973:                                                                                                  #                  C + SB .          (C + B - D)
003346,001974:                                                                                                  #                  ------ = 37777 + S(---------)
003347,001975:                                                                                                  #                  C + SD            (    C    )
003348,001976: 
003349,001977:                                                                                                  #           THE DIVISION MAY BE PERFORMED IMMEDIATELY SINCE B IS STRICTLY LESS THAN D AND C IS NOT LESS THAN .5.
003350,001978: 
003351,001979: 
003352,001980: 
003353,001981: 00,2564           40140        MAXDV              CS       MPAC                                  #  SEE IF MAXDV CASE STILL HOLDS AFTER
003354,001982: 00,2565           60114                           AD       BUF                                   #  NORMALIZATION.
003355,001983: 00,2566           00006                           EXTEND                                         
003356,001984: 00,2567           12571                           BZF      +2                                    
003357,001985: 00,2570           12512                           TCF      GENDDV                                #  MPAC NOW LESS THAN BUF - DIVIDE AS USUAL
003358,001986: 
003359,001987: 00,2571           37637                 +2        CAF      POSMAX                                #  SET MAJOR PART OF RESULT.
003360,001988: 00,2572           54140                           TS       MPAC                                  
003361,001989: 
003362,001990: 00,2573           40115                           CS       BUF        +1                         #  FORM DIVIDEND OF MINOR PART OF RESULT.
003363,001991: 00,2574           60141                           AD       MPAC       +1                         
003364,001992: 00,2575           12546                           TCF      ENDMAXDV                              #  GO ADD C AND DO DIVIDE, ATTACHING SIGN
003365,001993:                                                                                                  #  BEFORE EXITING.
003366,001994: 
003367,001995:                                                                                                  #        VECTOR DIVIDED BY SCALAR, V/SC, IS EXECUTED HERE. THE VECTOR IS NOW IN MPAC WITH SCALAR IN BUF.
003368,001996: 
003369,001997: 00,2576           47657        V/SC2              CS       ONE                                   #  INITIALIZE DIVIDEND NORMALIZATION COUNT
003370,001998: 00,2577           54123                           TS       DVNORMCT                              #  AND DIVISION SIGN REGISTER.
003371,001999: 00,2600           54113                           TS       VBUF       +5                         
003372,002000: 
003373,002001: 00,2601           10114                           CCS      BUF                                   #  FORCE DIVISOR POSITIVE WITH MAJOR PART
003374,002002: 00,2602           12637                           TCF      /BUF+                                 #  NON-ZERO (IF POSSIBLE).
003375,002003: 00,2603           12605                           TCF      +2                                    
003376,002004: 00,2604           12633                           TCF      /BUF-                                 
003377,002005: 
003378,002006: 00,2605           56115                           XCH      BUF        +1                         #  SHIFT VECTOR AND SCALAR LEFT 14.
003379,002007: 00,2606           56114                           XCH      BUF                                   
003380,002008: 00,2607           56141                           XCH      MPAC       +1                         
003381,002009: 00,2610           56140                           XCH      MPAC                                  
003382,002010: 00,2611           00006                           EXTEND                                         #  CHECK FOR OVERFLOW IN EACH CASE.
003383,002011: 00,2612           12614                           BZF      +2                                    
003384,002012: 00,2613           12355                           TCF      DVOVF                                 
003385,002013: 
003386,002014: 00,2614           56144                           XCH      MPAC       +4                         
003387,002015: 00,2615           56143                           XCH      MPAC       +3                         
003388,002016: 00,2616           00006                           EXTEND                                         
003389,002017: 00,2617           12621                           BZF      +2                                    
003390,002018: 00,2620           12355                           TCF      DVOVF                                 
003391,002019: 
003392,002020: 00,2621           56146                           XCH      MPAC       +6                         
003393,002021: 00,2622           56145                           XCH      MPAC       +5                         
003394,002022: 00,2623           00006                           EXTEND                                         
003395,002023: 00,2624           12626                           BZF      +2                                    
003396,002024: 00,2625           12355                           TCF      DVOVF                                 
003397,002025: 
003398,002026: 00,2626           10114                           CCS      BUF                                   
003399,002027: 00,2627           12637                           TCF      /BUF+                                 
003400,002028: 00,2630           12355                           TCF      DVOVF                                 #  ZERO DIVISOR - OVERFLOW.
003401,002029: 00,2631           12633                           TCF      /BUF-                                 
003402,002030: 00,2632           12355                           TCF      DVOVF                                 
003403,002031: 
003404,002032: 00,2633           00006        /BUF-              EXTEND                                         #  ON NEGATIVE, COMPLEMENT BUF AND MAINTAIN
003405,002033: 00,2634           40115                           DCS      BUF                                   #  DVSIGN IN VBUF +5.
003406,002034: 00,2635           52115                           DXCH     BUF                                   
003407,002035: 00,2636           24113                           INCR     VBUF       +5                         
003408,002036: 
003409,002037: 00,2637           37642        /BUF+              CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVISOR.
003410,002038: 00,2640           60000                           DOUBLE                                         
003411,002039: 00,2641           60115                           AD       BUF        +1                         
003412,002040: 00,2642           54115                           TS       BUF        +1                         
003413,002041: 00,2643           37665                           CAF      ZERO                                  
003414,002042: 00,2644           67637                           AD       POSMAX                                
003415,002043: 00,2645           26114                           ADS      BUF                                   
003416,002044: 
003417,002045: 00,2646           56117                           XCH      BUF2                                  #  LEAVE ABS(ORIGINAL DIVISOR) IN BUF2 FOR
003418,002046: 00,2647           30115                           CA       BUF        +1                         #  OVERFLOW TESTING.
003419,002047: 00,2650           54120                           TS       BUF2       +1                         
003420,002048: 00,2651           12657                           TCF      /NORM                                 #  NORMALIZE DIVISOR IN BUF.
003421,002049: 
003422,002050: 00,2652           00006        /NORM2             EXTEND                                         #  IF LESS THAN .5, AUGMENT DVNORMCT AND
003423,002051: 00,2653           24123                           AUG      DVNORMCT                              #  DOUBLE DIVISOR.
003424,002052: 00,2654           00006                           EXTEND                                         
003425,002053: 00,2655           30115                           DCA      BUF                                   
003426,002054: 00,2656           20115                           DAS      BUF                                   
003427,002055: 
003428,002056: 00,2657           30114        /NORM              CA       BUF                                   #  SEE IF DIVISOR NORMALIZED.
003429,002057: 00,2660           60000                           DOUBLE                                         
003430,002058: 00,2661           54000                           OVSK                                           
003431,002059: 00,2662           12652                           TCF      /NORM2                                #  DOUBLE AND TRY AGAIN IF NOT.
003432,002060: 
003433,002061: 00,2663           02675                           TC       V/SCDV                                #  DO X COMPONENT DIVIDE.
003434,002062: 00,2664           52144                           DXCH     MPAC       +3                         #  SUPPLY ARGUMENTS IN USUAL SEQUENCE.
003435,002063: 00,2665           52141                           DXCH     MPAC                                  
003436,002064: 00,2666           52144                           DXCH     MPAC       +3                         
003437,002065: 
003438,002066: 00,2667           02675                           TC       V/SCDV                                #  Y COMPONENT.
003439,002067: 00,2670           52146                           DXCH     MPAC       +5                         
003440,002068: 00,2671           52141                           DXCH     MPAC                                  
003441,002069: 00,2672           52146                           DXCH     MPAC       +5                         
003442,002070: 
003443,002071: 00,2673           02675                           TC       V/SCDV                                #  Z COMPONENT.
003444,002072: 00,2674           17373                           TCF      VROTATEX                              #  GO RE-ARRANGE COMPONENTS BEFORE EXIT.
003445,002073: 
003446,002074:                                                                                                  #           SUBROUTINE USED BY V/SC TO DIVIDE VECTOR COMPONENT IN MPAC,+1 BY THE SCALAR GIVEN IN BUF.
003447,002075: 
003448,002076: 00,2675           30113        V/SCDV             CA       VBUF       +5                         #  REFLECTS SIGN OF SCALAR.
003449,002077: 00,2676           54122                           TS       DVSIGN                                
003450,002078: 
003451,002079: 00,2677           10140                           CCS      MPAC                                  #  FORCE MPAC POSITIVE, EXITING ON ZERO.
003452,002080: 00,2700           12714                           TCF      /MPAC+                                
003453,002081: 00,2701           12703                           TCF      +2                                    
003454,002082: 00,2702           12710                           TCF      /MPAC-                                
003455,002083: 
003456,002084: 00,2703           10141                           CCS      MPAC       +1                         
003457,002085: 00,2704           12714                           TCF      /MPAC+                                
003458,002086: 00,2705           00002                           TC       Q                                     
003459,002087: 00,2706           12710                           TCF      /MPAC-                                
003460,002088: 00,2707           00002                           TC       Q                                     
003461,002089: 
003462,002090: 00,2710           00006        /MPAC-             EXTEND                                         #  USUAL COMPLEMENTING AND SETTING OF SIGN.
003463,002091: 00,2711           40141                           DCS      MPAC                                  
003464,002092: 00,2712           52141                           DXCH     MPAC                                  
003465,002093: 00,2713           24122                           INCR     DVSIGN                                
003466,002094: 
003467,002095: 00,2714           47657        /MPAC+             CS       ONE                                   #  INITIALIZE NEAR-ONE SWITCH.
003468,002096: 00,2715           54124                           TS       MAXDVSW                               
003469,002097: 
003470,002098: 00,2716           40140                           CS       MPAC                                  #  CHECK POSSIBLE OVERFLOW.
003471,002099: 00,2717           60117                           AD       BUF2                                  #  UNNORMALIZED INPUT DIVISOR.
003472,002100: 00,2720           00006                           EXTEND                                         
003473,002101: 00,2721           62725                           BZMF     /AGREE                                #  CHECK FOR NEAR-ONE OR OVERFLOW.
003474,002102: 
003475,002103: 00,2722           52141        DDVCALL            DXCH     MPAC                                  #  CALL PRE-DIVIDE NORMALIZATION.
003476,002104: 00,2723           50123                           INDEX    DVNORMCT                              
003477,002105: 00,2724           12507                           TCF      MAXTEST                               
003478,002106: 
003479,002107: 00,2725           37642        /AGREE             CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVIDEND
003480,002108: 00,2726           60000                           DOUBLE                                         #  (ALREADY DONE FOR DIVISOR).
003481,002109: 00,2727           60141                           AD       MPAC       +1                         
003482,002110: 00,2730           54141                           TS       MPAC       +1                         
003483,002111: 00,2731           37665                           CAF      ZERO                                  
003484,002112: 00,2732           67637                           AD       POSMAX                                
003485,002113: 00,2733           26140                           ADS      MPAC                                  
003486,002114: 
003487,002115: 00,2734           40140                           CS       MPAC                                  #  CHECK TO SEE IF OVERFLOW GONE OR IF
003488,002116: 00,2735           60117                           AD       BUF2                                  #  NEAR-ONE CASE IS PRESENT.
003489,002117: 00,2736           10000                           CCS      A                                     
003490,002118: 00,2737           12722                           TCF      DDVCALL                               #  NOT NEAR-ONE.
003491,002119: 00,2740           32506        SLOPELO            DEC      .8324                                 
003492,002120: 00,2741           12355                           TCF      DVOVF                                 #  NO HOPE.
003493,002121: 
003494,002122: 00,2742           54124                           TS       MAXDVSW                               #  SIGNAL POSSIBLE NEAR-ONE CASE.
003495,002123: 00,2743           40141                           CS       MPAC       +1                         #  SEE IF DIVISION CAN BE DONE.
003496,002124: 00,2744           60120                           AD       BUF2       +1                         
003497,002125: 00,2745           00006                           EXTEND                                         
003498,002126: 00,2746           62355                           BZMF     DVOVF                                 
003499,002127: 00,2747           12722                           TCF      DDVCALL                               #  GOING TO MAXDV.
003500,002128: 
003501,002129:                                                                                                  #           THE FOLLOWING ROUTINE EXECUTES THE UNIT INSTRUCTION, WHICH TAKES THE UNIT OF THE VECTOR IN MPAC.
003502,002130: 
003503,002131: 00,2750           07506        UNIT               TC       MPACVBUF                              #  SAVE THE ARGUMENT IN VBUF.
003504,002132: 00,2751           37665                           CAF      ZERO                                  #  MUST SENSE OVERFLOW IN FOLLOWING DOT.
003505,002133: 00,2752           56105                           XCH      OVFIND                                
003506,002134: 00,2753           54125                           TS       TEM1                                  
003507,002135: 00,2754           03246                           TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003508,002136: 00,2755           30125                           CA       TEM1                                  
003509,002137: 00,2756           56105                           XCH      OVFIND                                
003510,002138: 00,2757           00006                           EXTEND                                         
003511,002139: 00,2760           12762                           BZF      +2                                    
003512,002140: 00,2761           12355                           TCF      DVOVF                                 
003513,002141: 00,2762           00006                           EXTEND                                         
003514,002142: 00,2763           30141                           DCA      MPAC                                  #  LEAVE THE SQUARE OF THE LENGTH OF THE
003515,002143: 00,2764           50104                           INDEX    FIXLOC                                #  ARGUMENT IN LVSQUARE.
003516,002144: 00,2765           52043                           DXCH     LVSQUARE                              
003517,002145: 
003518,002146: 00,2766           03272                           TC       SQRTSUB                               #  GO TAKE THE NORMALIZED SQUARE ROOT.
003519,002147: 
003520,002148: 00,2767           10140                           CCS      MPAC                                  #  CHECK FOR UNIT OVERFLOW.
003521,002149: 00,2770           12775                           TCF      +5                                    #  MPAC IS NOT LESS THAN .5 UNLESS
003522,002150: 00,2771           54001                           TS       L                                     
003523,002151: 00,2772           50104                           INDEX    FIXLOC                                
003524,002152: 00,2773           52045                           DXCH     LV                                    
003525,002153: 00,2774           12355                           TCF      DVOVF                                 #  INPUT TO SQRTSUB WAS 0.
003526,002154: 
003527,002155: 00,2775           43076                           CS       FOURTEEN                              #  SEE IF THE INPUT WAS SO SMALL THE THE
003528,002156: 00,2776           60121                           AD       MPTEMP                                #  FIRST TWO REGISTERS OF THE SQUARE WERE 0
003529,002157: 00,2777           10000                           CCS      A                                     
003530,002158: 00,3000           40000                           COM                                            #  IF SO, SAVE THE NEGATIVE OF THE SHIFT
003531,002159: 00,3001           13057                           TCF      SMALL                                 #  COUNT -15D.
003532,002160: 
003533,002161: 00,3002           13011                           TCF      LARGE                                 #  (THIS IS USUALLY THE CASE.)
003534,002162: 
003535,002163: 00,3003           43075                           CS       THIRTEEN                              #  IF THE SHIFT COUNT WAS EXACTLY 14, SET
003536,002164: 00,3004           54121                           TS       MPTEMP                                #  THE PRE-DIVIDE NORM COUNT TO -13D.
003537,002165: 
003538,002166: 00,3005           30140                           CA       MPAC                                  #  SHIFT THE LENGTH RIGHT 14 BEFORE STORING
003539,002167: 00,3006           54001        SMALL2             TS       L                                     #  (SMALL EXITS TO THIS POINT).
003540,002168: 00,3007           37665                           CAF      ZERO                                  
003541,002169: 00,3010           13036                           TCF      LARGE2                                #  GO TO STORE LENGTH AND PROCEED.
003542,002170: 
003543,002171: 00,3011           10121        LARGE              CCS      MPTEMP                                #  MOST ALL CASES COME HERE.
003544,002172: 00,3012           13020                           TCF      LARGE3                                #  SEE IF NO NORMALIZATION WAS REQUIRED BY
003545,002173: 
003546,002174: 00,3013           42005                           CS       SRDDV                                 #  SQRT, AND IF SO, SET UP FOR A SHIFT
003547,002175: 00,3014           54121                           TS       MPTEMP                                #  RIGHT 1 BEFORE DIVIDING TO PRODUCE
003548,002176: 00,3015           00006                           EXTEND                                         #  THE DESIRED HALF UNIT VECTOR.
003549,002177: 00,3016           30141                           DCA      MPAC                                  
003550,002178: 00,3017           13036                           TCF      LARGE2                                
003551,002179: 
003552,002180: 00,3020           40000        LARGE3             COM                                            #  LEAVE NEGATIVE OF SHIFT COUNT-1 FOR
003553,002181: 00,3021           54121                           TS       MPTEMP                                #  PREDIVIDE LEFT SHIFT.
003554,002182: 
003555,002183: 00,3022           40000                           COM                                            #  PICK UP REQUIRED SHIFTING BIT TO UNNORM-
003556,002184: 00,3023           50000                           INDEX    A                                     #  ALIZE THE SQRT RESULT.
003557,002185: 00,3024           37642                           CAF      BIT14                                 
003558,002186: 00,3025           54114                           TS       BUF                                   
003559,002187: 00,3026           00006                           EXTEND                                         
003560,002188: 00,3027           70141                           MP       MPAC       +1                         
003561,002189: 00,3030           56114                           XCH      BUF                                   
003562,002190: 00,3031           00006                           EXTEND                                         #  (UNNORMALIZE THE SQRT FOR LV).
003563,002191: 00,3032           70140                           MP       MPAC                                  
003564,002192: 00,3033           56001                           XCH      L                                     
003565,002193: 00,3034           60114                           AD       BUF                                   
003566,002194: 00,3035           56001                           XCH      L                                     
003567,002195: 
003568,002196: 00,3036           50104        LARGE2             INDEX    FIXLOC                                
003569,002197: 00,3037           52045                           DXCH     LV                                    #  LENGTH NOW STORED IN WORK AREA.
003570,002198: 
003571,002199: 00,3040           47657                           CS       ONE                                   
003572,002200: 00,3041           54124                           TS       MAXDVSW                               #  NO MAXDV CASES IN UNIT.
003573,002201: 
003574,002202: 00,3042           52107                           DXCH     VBUF                                  #  PREPARE X COMPONENT FOR DIVIDE, SETTING
003575,002203: 00,3043           52141                           DXCH     MPAC                                  #  LENGTH OF VECTOR AS DIVISOR IN BUF.
003576,002204: 00,3044           52115                           DXCH     BUF                                   
003577,002205: 00,3045           03077                           TC       UNITDV                                
003578,002206: 
003579,002207: 00,3046           52111                           DXCH     VBUF       +2                         #  DO Y AND Z IN USUAL FASHION SO WE CAN
003580,002208: 00,3047           52141                           DXCH     MPAC                                  #  EXIT THROUGH VROTATEX.
003581,002209: 00,3050           52144                           DXCH     MPAC       +3                         
003582,002210: 00,3051           03077                           TC       UNITDV                                
003583,002211: 
003584,002212: 00,3052           52113                           DXCH     VBUF       +4                         
003585,002213: 00,3053           52141                           DXCH     MPAC                                  
003586,002214: 00,3054           52146                           DXCH     MPAC       +5                         
003587,002215: 00,3055           03077                           TC       UNITDV                                
003588,002216: 00,3056           17373                           TCF      VROTATEX                              #  AND EXIT.
003589,002217: 
003590,002218:                                                                                                  #           IF THE LENGTH OF THE ARGUMENT VECTOR WAS LESS THAN 2(-28), EACH COMPONENT MUST BE SHIFTED LEFT AT LEAST
003591,002219:                                                                                                  #  14 PLACES BEFORE THE DIVIDE. NOTE THAT IN THIS CASE, THE MAJOR PART OF EACH COMPONENT IS ZERO.
003592,002220: 
003593,002221: 00,3057           54121        SMALL              TS       MPTEMP                                #  NEGATIVE OF PRE-DIVIDE SHIFT COUNT.
003594,002222: 
003595,002223: 00,3060           37665                           CAF      ZERO                                  #  SHIFT EACH COMPONENT LEFT 14.
003596,002224: 00,3061           56107                           XCH      VBUF       +1                         
003597,002225: 00,3062           56106                           XCH      VBUF                                  
003598,002226: 00,3063           56111                           XCH      VBUF       +3                         
003599,002227: 00,3064           56110                           XCH      VBUF       +2                         
003600,002228: 00,3065           56113                           XCH      VBUF       +5                         
003601,002229: 00,3066           56112                           XCH      VBUF       +4                         
003602,002230: 
003603,002231: 00,3067           40121                           CS       MPTEMP                                
003604,002232: 00,3070           50000                           INDEX    A                                     
003605,002233: 00,3071           37642                           CAF      BIT14                                 
003606,002234: 00,3072           00006                           EXTEND                                         
003607,002235: 00,3073           70140                           MP       MPAC                                  
003608,002236: 00,3074           13006                           TCF      SMALL2                                
003609,002237: 
003610,002238: 00,3075           00015        THIRTEEN           DEC      13         B-14                       
003611,002239: 00,3076           00016        FOURTEEN           DEC      14         B-14                       
003612,002240: 
003613,002241:                                                                                                  #           THE FOLLOWING ROUTINE SETS UP THE CALL TO THE DIVIDE ROUTINES.
003614,002242: 
003615,002243: 00,3077           10140        UNITDV             CCS      MPAC                                  #  FORCE MPAC POSITIVE IF POSSIBLE, SETTING
003616,002244: 00,3100           13116                           TCF      UMPAC+                                #  DVSIGN ACCORDING TO THE SIGN OF MPAC
003617,002245: 00,3101           13103                           TCF      +2                                    #  SINCE THE DIVISOR IS ALWAYS POSITIVE
003618,002246: 00,3102           13110                           TCF      UMPAC-                                #  HERE.
003619,002247: 
003620,002248: 00,3103           10141                           CCS      MPAC       +1                         
003621,002249: 00,3104           13116                           TCF      UMPAC+                                
003622,002250: 00,3105           00002                           TC       Q                                     #  EXIT IMMEDIATELY ON ZERO.
003623,002251: 00,3106           13110                           TCF      UMPAC-                                
003624,002252: 00,3107           00002                           TC       Q                                     
003625,002253: 
003626,002254: 00,3110           47665        UMPAC-             CS       ZERO                                  #  IF NEGATIVE, SET -0 IN DVSIGN FOR FINAL
003627,002255: 00,3111           54122                           TS       DVSIGN                                #  COMPLEMENT.
003628,002256: 00,3112           00006                           EXTEND                                         
003629,002257: 00,3113           40141                           DCS      MPAC                                  #  PICK UP ABSOLUTE VALUE OF ARG AND JUMP.
003630,002258: 00,3114           50121                           INDEX    MPTEMP                                
003631,002259: 00,3115           12506                           TCF      MAXTEST    -1                         
003632,002260: 
003633,002261: 00,3116           54122        UMPAC+             TS       DVSIGN                                #  SET DVSIGN FOR POSITIVE QUOTIENT.
003634,002262: 00,3117           52141                           DXCH     MPAC                                  
003635,002263: 00,3120           50121                           INDEX    MPTEMP                                
003636,002264: 00,3121           12506                           TCF      MAXTEST    -1                         
003637,002265: 
003638,002266:                                                                                                  #           MISCELLANEOUS UNARY OPERATIONS.
003639,002267: 
003640,002268: 00,3122           03227        DSQ                TC       DSQSUB                                #  SQUARE THE DP CONTENTS OF MPAC.
003641,002269: 00,3123           16014                           TCF      DANZIG                                
003642,002270: 
003643,002271: 00,3124           10147        ABVALABS           CCS      MODE                                  #  ABVAL OR ABS INSTRUCTION.
003644,002272: 00,3125           13154                           TCF      ABS                                   #  DO ABS ON SCALAR.
003645,002273: 00,3126           13154                           TCF      ABS                                   
003646,002274: 
003647,002275: 00,3127           03246        ABVAL              TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003648,002276: 00,3130           22147                           LXCH     MODE                                  #  MODE IS NOW DP (L ZERO AFTER DAS).
003649,002277: 
003650,002278: 00,3131           00006                           EXTEND                                         #  STORE SQUARE OF LENGTH IN WORK AREA.
003651,002279: 00,3132           30141                           DCA      MPAC                                  
003652,002280: 00,3133           50104                           INDEX    FIXLOC                                
003653,002281: 00,3134           52043                           DXCH     LVSQUARE                              
003654,002282: 
003655,002283: 00,3135           03272        SQRT               TC       SQRTSUB                               #  TAKE THE SQUARE ROOT OF MPAC.
003656,002284: 00,3136           10121                           CCS      MPTEMP                                #  RETURNED NORMALIZED SQUARE ROOT. SEE IF
003657,002285: 00,3137           13141                           TCF      +2                                    #  ANY UN-NORMALIZATION REQUIRED AND EXIT
003658,002286: 00,3140           16014                           TCF      DANZIG                                #  IF NOT.
003659,002287: 
003660,002288: 00,3141           62273                           AD       NEG12                                 #  A RIGHT SHIFT OF MORE THAN 13 COULD BE
003661,002289: 00,3142           00006                           EXTEND                                         #  REQUIRED IF INPUT WAS ZERO IN MPAC,+1.
003662,002290: 00,3143           63147                           BZMF     SQRTSHFT                              #  GOES HERE IN MOST CASES.
003663,002291: 00,3144           22007                           ZL                                             #  IF A LONG SHIFT IS REQUIRED, GO TO
003664,002292: 00,3145           22102                           LXCH     ADDRWD                                #  GENERAL RIGHT SHIFT ROUTINES.
003665,002293: 00,3146           12263                           TCF      GENSCR     +4                         #  ADDRWD WAS ZERO TO PREVENT ROUND.
003666,002294: 
003667,002295: 00,3147           50121        SQRTSHFT           INDEX    MPTEMP                                #  SELECT SHIFTING BIT AND EXIT THROUGH
003668,002296: 00,3150           37641                           CAF      BIT15                                 #  SHIFT ROUTINES.
003669,002297: 00,3151           54121                           TS       MPTEMP                                
003670,002298: 00,3152           37665                           CAF      ZERO                                  #  TO ZERO MPAC +2 IN THE PROCESS.
003671,002299: 00,3153           12017                           TCF      MPACSHR    +3                         
003672,002300: 
003673,002301: 00,3154           06711        ABS                TC       BRANCH                                #  TEST SIGN OF MPAC AND COMPLEMENT IF
003674,002302: 00,3155           16014                           TCF      DANZIG                                
003675,002303: 00,3156           16014                           TCF      DANZIG                                
003676,002304: 00,3157           17616                           TCF      COMP                                  
003677,002305: 
003678,002306: 00,3160           47655        VDEF               CS       FOUR                                  #  VECTOR DEFINE - ESSENTIALLY TREATS
003679,002307: 00,3161           26152                           ADS      PUSHLOC                               #  SCALAR IN MPAC AS X COMPONENT, PUSHES UP
003680,002308: 00,3162           00006                           EXTEND                                         #  FOR Y AND THEN AGAIN FOR Z.
003681,002309: 00,3163           50000                           INDEX    A                                     
003682,002310: 00,3164           30003                           DCA      2                                     
003683,002311: 00,3165           52144                           DXCH     MPAC       +3                         
003684,002312: 00,3166           00006                           EXTEND                                         
003685,002313: 00,3167           50152                           INDEX    PUSHLOC                               
003686,002314: 00,3170           30001                           DCA      0                                     
003687,002315: 00,3171           52146                           DXCH     MPAC       +5                         
003688,002316: 00,3172           47657                           CS       ONE                                   #  MODE IS NOW VECTOR.
003689,002317: 00,3173           16013                           TCF      NEWMODE                               
003690,002318: 
003691,002319: 00,3174           03246        VSQ                TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
003692,002320: 00,3175           37665                           CAF      ZERO                                  
003693,002321: 00,3176           16013                           TCF      NEWMODE                               #  MODE IS NOW DP.
003694,002322: 
003695,002323: 00,3177           00006        PUSH               EXTEND                                         #  PUSH DOWN MPAC LEAVING IT LOADED.
003696,002324: 00,3200           30141                           DCA      MPAC                                  
003697,002325: 00,3201           50152                           INDEX    PUSHLOC                               #  PUSH DOWN FIRST TWO REGISTERS IN EACH
003698,002326: 00,3202           52001                           DXCH     0                                     
003699,002327: 
003700,002328: 00,3203           50147                           INDEX    MODE                                  #  INCREMENT PUSHDOWN POINTER.
003701,002329: 00,3204           36164                           CAF      NO.WDS                                
003702,002330: 00,3205           26152                           ADS      PUSHLOC                               
003703,002331: 
003704,002332: 00,3206           10147                           CCS      MODE                                  
003705,002333: 00,3207           13222                           TCF      TPUSH                                 #  PUSH DOWN MPAC +2.
003706,002334: 00,3210           16014                           TCF      DANZIG                                #  DONE FOR DP.
003707,002335: 
003708,002336: 00,3211           00006                           EXTEND                                         #  ON VECTOR, PUSH DOWN Y AND Z COMPONENTS.
003709,002337: 00,3212           30144                           DCA      MPAC       +3                         
003710,002338: 00,3213           50152                           INDEX    PUSHLOC                               
003711,002339: 00,3214           51775                           DXCH     0          -4                         
003712,002340: 00,3215           00006                           EXTEND                                         
003713,002341: 00,3216           30146                           DCA      MPAC       +5                         
003714,002342: 00,3217           50152                           INDEX    PUSHLOC                               
003715,002343: 00,3220           51777                           DXCH     0          -2                         
003716,002344: 00,3221           16014                           TCF      DANZIG                                
003717,002345: 
003718,002346: 00,3222           30142        TPUSH              CA       MPAC       +2                         
003719,002347: 00,3223           16560                           TCF      ENDTPUSH   +2                         
003720,002348: 
003721,002349: 00,3224           50104        RVQ                INDEX    FIXLOC                                #  RVQ - RETURN IVA QPRET.
003722,002350: 00,3225           30052                           CA       QPRET                                 
003723,002351: 00,3226           16652                           TCF      GOTO       +1                         
003724,002352: 
003725,002353:                                                                                                  #           THE FOLLOWING SUBROUTINES ARE USED IN SQUARING MPAC, IN BOTH THE SCALAR AND VECTOR SENSE. THEY ARE
003726,002354:                                                                                                  #  SPECIAL CASES OF DMPSUB AND DOTSUB, PUT IN TO SAVE SOME TIME.
003727,002355: 
003728,002356: 00,3227           30141        DSQSUB             CA       MPAC       +1                         #  SQUARES THE SCALAR CONTENTS OF MPAC.
003729,002357: 00,3230           00006                           EXTEND                                         
003730,002358: 00,3231           70000                           SQUARE                                         
003731,002359: 00,3232           54142                           TS       MPAC       +2                         
003732,002360: 00,3233           37665                           CAF      ZERO                                  #  FORM 2(CROSS TERM).
003733,002361: 00,3234           56141                           XCH      MPAC       +1                         
003734,002362: 00,3235           00006                           EXTEND                                         
003735,002363: 00,3236           70140                           MP       MPAC                                  
003736,002364: 00,3237           20001                           DDOUBL                                         #  AND MAYBE OVEFLOW.
003737,002365: 00,3240           20142                           DAS      MPAC       +1                         #  AND SET A TO NET OVERFLOW.
003738,002366: 00,3241           56140                           XCH      MPAC                                  
003739,002367: 00,3242           00006                           EXTEND                                         
003740,002368: 00,3243           70000                           SQUARE                                         
003741,002369: 00,3244           20141                           DAS      MPAC                                  
003742,002370: 00,3245           00002                           TC       Q                                     
003743,002371: 
003744,002372: 00,3246           00006        VSQSUB             EXTEND                                         #  DOTS THE VECTOR IN MPAC WITH ITSELF.
003745,002373: 00,3247           22123                           QXCH     DOTRET                                
003746,002374: 00,3250           03227                           TC       DSQSUB                                #  SQUARE THE X COMPONENT.
003747,002375: 00,3251           52144                           DXCH     MPAC       +3                         
003748,002376: 00,3252           52141                           DXCH     MPAC                                  
003749,002377: 00,3253           52115                           DXCH     BUF                                   #  SO WE CAN END IN DOTSUB.
003750,002378: 00,3254           30142                           CA       MPAC       +2                         
003751,002379: 00,3255           54116                           TS       BUF        +2                         
003752,002380: 
003753,002381: 00,3256           03227                           TC       DSQSUB                                #  SQUARE Y COMPONENT.
003754,002382: 00,3257           52142                           DXCH     MPAC       +1                         
003755,002383: 00,3260           20116                           DAS      BUF        +1                         
003756,002384: 00,3261           60140                           AD       MPAC                                  
003757,002385: 00,3262           60114                           AD       BUF                                   
003758,002386: 00,3263           54114                           TS       BUF                                   
003759,002387: 00,3264           13266                           TCF      +2                                    
003760,002388: 00,3265           54105                           TS       OVFIND                                #  IF OVERFLOW.
003761,002389: 
003762,002390: 00,3266           52146                           DXCH     MPAC       +5                         
003763,002391: 00,3267           52141                           DXCH     MPAC                                  
003764,002392: 00,3270           03227                           TC       DSQSUB                                #  SQUARE Z COMPONENT.
003765,002393: 00,3271           17165                           TCF      ENDDOT                                #  END AS IN DOTSUB.
003766,002394: 
003767,002395:                                                                                                  #           DOUBLE PRECISION SQUARE ROOT ROUTINE. TAKE THE SQUARE ROOT OF THE TRIPLE PRECISION (MPAC +2 USED ONLY
003768,002396:                                                                                                  #  IN NORMALIZATION) CONTENTS OF MPAC AND LEAVE THE NORMALIZED RESULT IN MPAC (C(MPAC) GREATER THAN OR EQUAL TO
003769,002397:                                                                                                  #  .5).  THE RIGHT SHIFT COUNT (TO UNNORMALIZE) IS LEFT IN MPTEMP.
003770,002398: 
003771,002399: 
003772,002400: 
003773,002401: 00,3272           37665        SQRTSUB            CAF      ZERO                                  #  START BY ZEROING RIGHT SHIFT COUNT.
003774,002402: 00,3273           54121                           TS       MPTEMP                                
003775,002403: 
003776,002404: 00,3274           10140                           CCS      MPAC                                  #  CHECK FOR POSITIVE ARGUMENT, SHIFTING
003777,002405: 00,3275           13333                           TCF      SMPAC+                                #  FIRST SIGNIFICANT MPAC REGISTER INTO
003778,002406: 00,3276           13300                           TCF      +2                                    #  MPAC ITSELF.
003779,002407: 00,3277           13322                           TCF      SQRTNEG                               #  SEE IF MAG OF ARGUMENT LESS THAN 10(-4).
003780,002408: 
003781,002409: 00,3300           56142                           XCH      MPAC       +2                         #  MPAC IS ZERO - SHIFT LEFT 14.
003782,002410: 00,3301           56141                           XCH      MPAC       +1                         
003783,002411: 00,3302           54140                           TS       MPAC                                  
003784,002412: 00,3303           37663                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
003785,002413: 00,3304           54121                           TS       MPTEMP                                
003786,002414: 
003787,002415: 00,3305           10140                           CCS      MPAC                                  #  SEE IF MPAC NOW PNZ.
003788,002416: 00,3306           13333                           TCF      SMPAC+                                
003789,002417: 00,3307           13311                           TCF      +2                                    
003790,002418: 00,3310           13325                           TCF      ZEROANS                               #  NEGATIVE BUT LESS THAN 10(-4) IN MAG.
003791,002419: 
003792,002420: 00,3311           56141                           XCH      MPAC       +1                         #  ZERO - SHIFT LEFT 14 AGAIN.
003793,002421: 00,3312           54140                           TS       MPAC                                  
003794,002422: 00,3313           37663                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
003795,002423: 00,3314           26121                           ADS      MPTEMP                                
003796,002424: 
003797,002425: 00,3315           10140                           CCS      MPAC                                  
003798,002426: 00,3316           13333                           TCF      SMPAC+                                
003799,002427: 00,3317           00002                           TC       Q                                     #  SQRT(0) = 0.
003800,002428: 00,3320           13325                           TCF      ZEROANS                               
003801,002429: 00,3321           00002                           TC       Q                                     
003802,002430: 
003803,002431: 
003804,002432: 
003805,002433: 00,3322           10000        SQRTNEG            CCS      A                                     #  ARGUMENT IS NEGATIVE, BUT SEE IF SIGN-
003806,002434: 00,3323           13331                           TCF      SQRTABRT                              #  CORRECTED ARGUMENT IS LESS THAN 10(-4)
003807,002435: 
003808,002436: 00,3324           10141                           CCS      MPAC       +1                         #  IN MAGNITUDE. IF SO, CALL ANSWER ZERO.
003809,002437: 00,3325           37665        ZEROANS            CAF      ZERO                                  #  FORCE ANSWER TO ZERO HERE.
003810,002438: 00,3326           13401                           TCF      FIXROOT                               
003811,002439: 00,3327           13331                           TCF      SQRTABRT                              
003812,002440: 00,3330           13401                           TCF      FIXROOT                               
003813,002441: 
003814,002442: 00,3331           05440        SQRTABRT           TC       ABORT                                 
003815,002443: 00,3332           01302                           OCT      1302                                  
003816,002444: 
003817,002445: 00,3333           62410        SMPAC+             AD       -1/2+2                                #  SEE IF ARGUMENT GREATER THAN OR EQUAL TO
003818,002446: 00,3334           00006                           EXTEND                                         #  .5.
003819,002447: 00,3335           63404                           BZMF     SRTEST                                #  IF SO, SEE IF LESS THAN .25.
003820,002448: 
003821,002449: 00,3336           52141                           DXCH     MPAC                                  #  WE WILL TAKE THE SQUARE ROOT OF MPAC/2.
003822,002450: 00,3337           22021                           LXCH     SR                                    #  SHIFT RIGHT 1 AND GO TO THE SQRT ROUTINE
003823,002451: 00,3340           00006                           EXTEND                                         
003824,002452: 00,3341           77642                           MP       HALF                                  
003825,002453: 00,3342           52141                           DXCH     MPAC                                  
003826,002454: 00,3343           56021                           XCH      SR                                    
003827,002455: 00,3344           26141                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
003828,002456: 
003829,002457: 00,3345           32274        ARGHI              CAF      SLOPEHI                               #  ARGUMENT BETWEEN .25 AND .5. GET A
003830,002458: 00,3346           00006                           EXTEND                                         #  LINEAR APPROXIMATION FOR THIS RANGE.
003831,002459: 00,3347           70140                           MP       MPAC                                  
003832,002460: 00,3350           62510                           AD       BIASHI                                #  X0/2 = (MPAC/2)(SLOPEHI) + BIASHI/2.
003833,002461: 
003834,002462: 00,3351           54114                 +4        TS       BUF                                   #  X0/2 (ARGLO ENTERS HERE).
003835,002463: 00,3352           30140                           CA       MPAC                                  #  SINGLE-PRECISION THROUGHOUT.
003836,002464: 00,3353           22007                           ZL                                             
003837,002465: 00,3354           00006                           EXTEND                                         
003838,002466: 00,3355           10114                           DV       BUF                                   #  (MPAC/2)/(X0/2)
003839,002467: 00,3356           00006                           EXTEND                                         
003840,002468: 00,3357           77642                           MP       HALF                                  
003841,002469: 00,3360           26114                           ADS      BUF                                   #  X1 = X0/2 + .5(MPAC/2)/(X0/2).
003842,002470: 
003843,002471: 00,3361           00006                           EXTEND                                         
003844,002472: 00,3362           77642                           MP       HALF                                  #  FORM UP X1/2.
003845,002473: 00,3363           52141                           DXCH     MPAC                                  #  SAVE AND BRING OUT ARGUMENT.
003846,002474: 00,3364           00006                           EXTEND                                         #  TAKE DP QUOTIENT WITH X1.
003847,002475: 00,3365           10114                           DV       BUF                                   
003848,002476: 00,3366           54115                           TS       BUF        +1                         #  SAVE MAJOR PART OF QUOTIENT.
003849,002477: 00,3367           37665                           CAF      ZERO                                  #  FORM MINOR PART OF QUOTIENT USING
003850,002478: 00,3370           56001                           XCH      L                                     #  (REMAINDER,0).
003851,002479: 00,3371           00006                           EXTEND                                         
003852,002480: 00,3372           10114                           DV       BUF                                   
003853,002481: 00,3373           54001                           TS       L                                     #  IN PREPARATION FOR DAS.
003854,002482: 00,3374           30115                           CA       BUF        +1                         
003855,002483: 00,3375           20141                           DAS      MPAC                                  #  X2 = X1/2 + (MPAC/2)X1
003856,002484: 
003857,002485: 00,3376           00006                           EXTEND                                         #  OVERFLOWS IF ARG. NEAR POSMAX.
003858,002486: 00,3377           13403                           BZF      TCQBNK00                              
003859,002487: 00,3400           37637                           CAF      POSMAX                                
003860,002488: 00,3401           54140        FIXROOT            TS       MPAC                                  
003861,002489: 00,3402           54141                           TS       MPAC       +1                         
003862,002490: 00,3403           00002        TCQBNK00           TC       Q                                     #  RETURN TO CALLER TO UNNORMALIZE, ETC.
003863,002491: 
003864,002492: 00,3404           67643        SRTEST             AD       QUARTER                               #  ARGUMENT WAS LESS THAN .5, SEE IF LESS
003865,002493: 00,3405           00006                           EXTEND                                         #  THAN .25.
003866,002494: 00,3406           63430                           BZMF     SQRTNORM                              #  IF SO, BEGIN NORMALIZATION.
003867,002495: 
003868,002496: 00,3407           52141                           DXCH     MPAC                                  #  IF BETWEEN .5 AND .25, SHIFT RIGHT 1 AND
003869,002497: 00,3410           22021                           LXCH     SR                                    #  START AT ARGLO.
003870,002498: 00,3411           00006                           EXTEND                                         
003871,002499: 00,3412           77642                           MP       HALF                                  
003872,002500: 00,3413           52141                           DXCH     MPAC                                  
003873,002501: 00,3414           56021                           XCH      SR                                    
003874,002502: 00,3415           26141                           ADS      MPAC       +1                         #  NO OVERFLOW.
003875,002503: 
003876,002504: 00,3416           32740        ARGLO              CAF      SLOPELO                               #  (NORMALIZED) ARGUMENT BETWEEN .125 AND
003877,002505: 00,3417           00006                           EXTEND                                         #  .25
003878,002506: 00,3420           70140                           MP       MPAC                                  
003879,002507: 00,3421           62250                           AD       BIASLO                                
003880,002508: 00,3422           13351                           TCF      ARGHI      +4                         #  BEGIN SQUARE ROOT.
003881,002509: 
003882,002510: 00,3423           00006        SQRTNM2            EXTEND                                         #  SHIFT LEFT 2 AND INCREMENT RIGHT SHIFT
003883,002511: 00,3424           30142                           DCA      MPAC       +1                         #  COUNT (FOR TERMINAL UNNORMALIZATION).
003884,002512: 00,3425           20142                           DAS      MPAC       +1                         
003885,002513: 00,3426           60140                           AD       MPAC                                  
003886,002514: 00,3427           26140                           ADS      MPAC                                  #  (NO OVERFLOW).
003887,002515: 
003888,002516: 00,3430           24121        SQRTNORM           INCR     MPTEMP                                #  FIRST TIME THROUGH, JUST SHIFT LEFT 1
003889,002517: 00,3431           00006                           EXTEND                                         #  (PUTS IN EFFECTIVE RIGHT SHIFT SINCE
003890,002518: 00,3432           30142                           DCA      MPAC       +1                         #  WE WANT MPAC/2).
003891,002519: 00,3433           20142                           DAS      MPAC       +1                         
003892,002520: 00,3434           60140                           AD       MPAC                                  
003893,002521: 00,3435           26140                           ADS      MPAC                                  #  (AGAIN NO OVERFLOW).
003894,002522: 00,3436           60000                           DOUBLE                                         
003895,002523: 00,3437           54022                           TS       CYL                                   
003896,002524: 
003897,002525: 00,3440           10022        NORMTEST           CCS      CYL                                   #  SEE IF ARGUMENT NOW NORMALIZED AT
003898,002526: 00,3441           10022                           CCS      CYL                                   #  GREATER THAN .125.
003899,002527: 00,3442           13423                           TCF      SQRTNM2                               #  NO - SHIFT LEFT 2 MORE AND TRY AGAIN.
003900,002528: 00,3443           13345                           TCF      ARGHI                                 #  YES - NOW BETWEEN .5 AND .25.
003901,002529: 00,3444           13416                           TCF      ARGLO                                 #  ARGUMENT NOW BETWEEN .25 AND .125.
003902,002530: 
003903,002531:                                                                                                  #  TRIGONOMETRIC FUNCTION PACKAGE.
003904,002532: 
003905,002533:                                                                                                  #           THE FOLLOWING TRIGONOMETRIC FUNCTIONS ARE AVAILABLE AS INTERPRETIVE OPERATIONS:
003906,002534: 
003907,002535:                                                                                                  #           1.      SIN            COMPUTES (1/2)SINE(2 PI MPAC).
003908,002536:                                                                                                  #           2.      COS            COMPUTES (1/2)COSINE(2 PI MPAC).
003909,002537: 
003910,002538:                                                                                                  #           3.      ASIN           COMPUTES (1/2PI)ARCSINE(2 MPAC).
003911,002539:                                                                                                  #           4.      ACOS           COMPUTES (1/2PI)ARCCOSINE(2 MPAC).
003912,002540: 
003913,002541:                                                                                                  #  SIN-ASIN AND COS-ACOS ARE MUTUALLY INVERSE, IE SIN(ASIN(X)) = X.
003914,002542: 
003915,002543: 00,3445           06711        COSINE             TC       BRANCH                                #  FINDS COSINE USING THE IDENTITY
003916,002544: 00,3446           13451                           TCF      +3                                    #  COS(X) = SIN(PI/2 - ABS(X)).
003917,002545: 00,3447           13454                           TCF      PRESINE                               
003918,002546: 00,3450           13454                           TCF      PRESINE                               
003919,002547: 
003920,002548: 00,3451           00006                 +3        EXTEND                                         
003921,002549: 00,3452           40141                           DCS      MPAC                                  
003922,002550: 00,3453           52141                           DXCH     MPAC                                  
003923,002551: 
003924,002552: 00,3454           37643        PRESINE            CAF      QUARTER                               #  PI/2 SCALED.
003925,002553: 00,3455           26140                           ADS      MPAC                                  
003926,002554: 
003927,002555: 
003928,002556: 
003929,002557: 00,3456           52141        SINE               DXCH     MPAC                                  #  DOUBLE ARGUMENT.
003930,002558: 00,3457           20001                           DDOUBL                                         
003931,002559: 00,3460           54000                           OVSK                                           #  SEE IF OVERFLOW PRESENT.
003932,002560: 00,3461           13464                           TCF      +3                                    #  IF NOT, ARGUMENT OK AS IS.
003933,002561: 
003934,002562: 00,3462           00006                           EXTEND                                         #  IF SO, WE LOST (OR GAINED) PI, SO
003935,002563: 00,3463           40001                           DCOM                                           #  COMPLEMENT MPAC USING THE IDENTITY
003936,002564:                                                                                                  #  SIN(X-(+)PI) = SIN(-X).
003937,002565: 00,3464           52141                 +3        DXCH     MPAC                                  
003938,002566: 00,3465           30140                           CA       MPAC                                  #  SEE IF ARGUMENT GREATER THAN .5 IN
003939,002567: 00,3466           60000                           DOUBLE                                         #  MAGNITUDE. IF SO, REDUCE IT TO LESS THAN
003940,002568: 00,3467           54001                           TS       L                                     #  .5 (+-PI/2 SCALED) AS FOLLOWS:
003941,002569: 00,3470           13501                           TCF      SN1                                   
003942,002570: 
003943,002571: 00,3471           50000                           INDEX    A                                     #  IF POSITIVE, FORM PI - X, IF NEGATIVE
003944,002572: 00,3472           37641                           CAF      NEG1/2     +1                         #  USE -PI - X.
003945,002573: 00,3473           60000                           DOUBLE                                         
003946,002574: 00,3474           00006                           EXTEND                                         
003947,002575: 00,3475           60140                           SU       MPAC                                  #  GUARANTEED NO OVERFLOW.
003948,002576: 00,3476           54140                           TS       MPAC                                  
003949,002577: 00,3477           40141                           CS       MPAC       +1                         
003950,002578: 00,3500           54141                           TS       MPAC       +1                         
003951,002579: 
003952,002580: 00,3501           00006        SN1                EXTEND                                         #  SET UP TO EVALUATE HASTINGS POLYNOMIAL
003953,002581: 00,3502           30141                           DCA      MPAC                                  
003954,002582: 00,3503           52120                           DXCH     BUF2                                  
003955,002583: 00,3504           03227                           TC       DSQSUB                                #  SQUARE MPAC.
003956,002584: 
003957,002585: 00,3505           07202                           TC       POLY                                  #  EVALUATE FOURTH ORDER POLYNOMIAL.
003958,002586: 00,3506           00003                           DEC      3          B-14                       
003959,002587: 00,3507           14441 37325                     2DEC     +.3926990796                            
003960,002588: 
003961,002589: 00,3511           53250 60764                     2DEC     -.6459637111                            
003962,002590: 
003963,002591: 00,3513           12146 21276                     2DEC     +.318758717                            
003964,002592: 
003965,002593: 00,3515           75466 71471                     2DEC     -.074780249                            
003966,002594: 
003967,002595: 00,3517           00236 32757                     2DEC     +.009694988                            
003968,002596: 
003969,002597: 00,3521           32434                           CAF      LBUF2                                 #  MULTIPLY BY ARGUMENT AND SHIFT LEFT 2.
003970,002598: 00,3522           07066                           TC       DMPSUB     -1                         
003971,002599: 
003972,002600: 00,3523           00006                           EXTEND                                         
003973,002601: 00,3524           30142                           DCA      MPAC       +1                         
003974,002602: 00,3525           20142                           DAS      MPAC       +1                         
003975,002603: 00,3526           60140                           AD       MPAC                                  
003976,002604: 00,3527           26140                           ADS      MPAC                                  #  NEITHER SHIFT OVERFLOWS.
003977,002605: 00,3530           00006                           EXTEND                                         
003978,002606: 00,3531           30142                           DCA      MPAC       +1                         
003979,002607: 00,3532           20142                           DAS      MPAC       +1                         
003980,002608: 00,3533           60140                           AD       MPAC                                  
003981,002609: 00,3534           26140                           ADS      MPAC                                  
003982,002610: 00,3535           16014                           TCF      DANZIG                                
003983,002611: 
003984,002612:                                                                                                  #           ARCSIN/ARCCOS ROUTINE.
003985,002613: 
003986,002614: 00,3536           33557        ARCSIN             CAF      LASINEX                               #  COMPUTE ARCSIN BY USING THE IDENTITY
003987,002615: 00,3537           13541                           TCF      +2                                    #  ARCSIN(X) = PI/2 - ARCCOS(X).
003988,002616: 
003989,002617: 00,3540           33641        ARCCOS             CAF      LDANZIG                               #  (EXITS IMMEDIATELY).
003990,002618: 00,3541           54122                           TS       ESCAPE                                
003991,002619: 00,3542           06711                           TC       BRANCH                                #  TEST SIGN OF INPUT.
003992,002620: 00,3543           13553                           TCF      ACOSST                                #  START IMMEDIATELY IF POSITIVE.
003993,002621: 00,3544           13655                           TCF      ACOSZERO                              #  ARCCOS(0) = PI/2 = .25.
003994,002622: 00,3545           00006                           EXTEND                                         #  IF NEGATIVE, USE THE IDENTITY
003995,002623: 00,3546           40141                           DCS      MPAC                                  #  ARCCOS(X) = PI - ARCCOS(-X), FORCING
003996,002624: 00,3547           52141                           DXCH     MPAC                                  #  ARGUMENT POSITIVE.
003997,002625: 00,3550           32247                           CAF      TCSUBTR                               #  SET EXIT TO DO ABOVE BEFORE
003998,002626: 00,3551           56122                           XCH      ESCAPE                                #  ARCSIN/ARCCOS CONSIDERATIONS.
003999,002627: 00,3552           54123                           TS       ESCAPE2                               
004000,002628: 
004001,002629: 00,3553           47642        ACOSST             CS       HALF                                  #  TEST MAGNITUDE OF INPUT.
004002,002630: 00,3554           60140                           AD       MPAC                                  
004003,002631: 00,3555           10000                           CCS      A                                     
004004,002632: 00,3556           13647                           TCF      ACOSOVF                               #  THIS IS PROBABLY AN OVERFLOW CASE.
004005,002633: 
004006,002634: 00,3557           13635        LASINEX            TCF      ASINEX                                
004007,002635: 
004008,002636: 00,3560           13570                           TCF      ACOSST2                               #  NO OVERFLOW - PROCEED.
004009,002637: 
004010,002638: 00,3561           10141                           CCS      MPAC       +1                         #  IF MAJOR PART IS .5, CALL ANSWER 0
004011,002639: 00,3562           37665                           CAF      ZERO                                  #  UNLESS MINOR PART NEGATIVE.
004012,002640: 00,3563           13565                           TCF      ACOS=0                                
004013,002641: 
004014,002642: 00,3564           13570                           TCF      ACOSST2                               
004015,002643: 
004016,002644: 00,3565           54141        ACOS=0             TS       MPAC       +1                         
004017,002645: 00,3566           54140                           TS       MPAC                                  
004018,002646: 00,3567           00122                           TC       ESCAPE                                
004019,002647: 
004020,002648: 00,3570           00006        ACOSST2            EXTEND                                         #  NOW THAT ARGUMENT IS IN PROPER RANGE,
004021,002649: 00,3571           40141                           DCS      MPAC                                  #  BEGIN COMPUTATION. USE HASTINGS
004022,002650: 00,3572           67642                           AD       HALF                                  #  APPROXIMATION ARCCOS(X) = SQRT(1-X)P(X)
004023,002651: 00,3573           52141                           DXCH     MPAC                                  #  IN A SCALED VERSION WHERE P(X) IS A
004024,002652: 00,3574           52120                           DXCH     BUF2                                  #  SEVENTH ORDER POLYNOMIAL.
004025,002653: 
004026,002654: 00,3575           03272                           TC       SQRTSUB                               #  RETURNS WITH NORMALIZED SQUARE ROOT.
004027,002655: 
004028,002656: 00,3576           10121                           CCS      MPTEMP                                #  SEE IF UN-NORMALIZATION REQUIRED.
004029,002657: 00,3577           13642                           TCF      ACOSSHR                               #  IF SO.
004030,002658: 
004031,002659: 00,3600           52141        ACOS3              DXCH     MPAC                                  #  SET UP FOR POLYNOMIAL EVALUATION.
004032,002660: 00,3601           52120                           DXCH     BUF2                                  
004033,002661: 00,3602           52141                           DXCH     MPAC                                  
004034,002662: 
004035,002663: 00,3603           07202                           TC       POLY                                  
004036,002664: 00,3604           00006                           DEC      6          B-14                       
004037,002665: 00,3605           13240 23630                     2DEC     +.353553385                            #  COEFFICIENTS ARE C 2(+I)/PISQRT(2) WHERE
004038,002666: 
004039,002667: 00,3607           74721 47775                     2DEC*    -.0483017006 B+1*                       #                  I
004040,002668: 
004041,002669: 00,3611           02440 20237                     2DEC*    +.0200273085 B+2*                       #       WHERE C STANDS FOR ORIGINAL COEFFS.
004042,002670: 
004043,002671: 00,3613           75067 70742                     2DEC*    -.0112931863 B+3*                       
004044,002672: 
004045,002673: 00,3615           03436 26756                     2DEC*    +.00695311612 B+4*                       
004046,002674: 
004047,002675: 00,3617           74037 57640                     2DEC*    -.00384617957 B+5*                       
004048,002676: 
004049,002677: 00,3621           03046 07143                     2DEC*    +.001501297736 B+6*                       
004050,002678: 
004051,002679: 00,3623           76654 42244                     2DEC*    -.000284160334 B+7*                       
004052,002680: 
004053,002681: 00,3625           32434                           CAF      LBUF2                                 #  DO FINAL MULTIPLY AND GO TO ANY
004054,002682: 00,3626           07066                           TC       DMPSUB     -1                         #  EPILOGUE SEQUENCES.
004055,002683: 00,3627           00122                           TC       ESCAPE                                
004056,002684: 
004057,002685: 00,3630           00006        SUBTR              EXTEND                                         #  EPILOGUE FOR NEGATIVE INPUTS TO ARCCOS.
004058,002686: 00,3631           40141                           DCS      MPAC                                  
004059,002687: 00,3632           67642                           AD       HALF                                  #  FORMS PI - ARCCOS(-X) = ARCCOS(X).
004060,002688: 00,3633           52141                           DXCH     MPAC                                  
004061,002689: 00,3634           00123                           TC       ESCAPE2                               #  GO TO POSSIBLE ARCSIN EPILOGUE.
004062,002690: 
004063,002691: 00,3635           00006        ASINEX             EXTEND                                         
004064,002692: 00,3636           40141                           DCS      MPAC                                  #  ARCSIN EPILOGUE - GET ARCSIN(X)
004065,002693: 00,3637           67643                           AD       QUARTER                               #  = PI/2 - ARCCOS(X).
004066,002694: 00,3640           52141                           DXCH     MPAC                                  
004067,002695: 00,3641           16014        LDANZIG            TCF      DANZIG                                
004068,002696: 
004069,002697: 00,3642           50000        ACOSSHR            INDEX    A                                     #  THE SHIFT RIGHT IS LESS THAN 14 SINCE
004070,002698: 00,3643           37642                           CAF      BIT14                                 #  THE INPUT WAS NON-ZERO DP.
004071,002699: 00,3644           54121                           TS       MPTEMP                                
004072,002700: 00,3645           02054                           TC       VSHRRND                               #  DP SHIFT RIGHT AND ROUND.
004073,002701: 00,3646           13600                           TCF      ACOS3                                 #  PROCEED.
004074,002702: 
004075,002703: 00,3647           10000        ACOSOVF            CCS      A                                     #  IF MAJOR PART WAS ONLY 1 MORE THAN .5,
004076,002704: 00,3650           13652                           TCF      +2                                    #  CALL ANSWER 0.
004077,002705: 00,3651           13565                           TCF      ACOS=0                                
004078,002706: 00,3652           13565                           TCF      ACOS=0                                
004079,002707: 
004080,002708: 00,3653           05440        ACOSABRT           TC       ABORT                                 
004081,002709: 00,3654           01301                           OCT      1301                                  
004082,002710: 
004083,002711: 00,3655           37643        ACOSZERO           CAF      QUARTER                               #  ACOS(0) = PI/2.
004084,002712: 00,3656           13566                           TCF      ACOS=0     +1                         #  SET MPAC AND EXIT VIA ESCAPE.
004085,002713: 
004086,002714: 00,3657                        ENDINTS0           EQUALS                                         
004087,002715: 
004088,002716:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE AVAILABLE FOR SETTING, MODIFYING, AND BRANCHING ON INDEX REGISTERS:
004089,002717:                                                                                                  #           1.  AXT                ADDRESS TO INDEX TRUE.
004090,002718:                                                                                                  #           1.  AXC                ADDRESS TO INDEX COMPLEMENTED.
004091,002719:                                                                                                  #           3.  LXA                LOAD INDEX FROM ERASABLE.
004092,002720:                                                                                                  #           4.  LXC                LOAD INDEX COMPLEMENTED FROM ERASABLE.
004093,002721:                                                                                                  #           5.  SXA                STORE INDEX IN ERASABLE.
004094,002722:                                                                                                  #           6.  XCHX               EXCHANGE INDEX REIGSTER WITH ERASABLE.
004095,002723: 
004096,002724:                                                                                                  #           7.  INCR               INCREMENT INDEX REGISTER.
004097,002725:                                                                                                  #           8.  XAD                ERASABLE ADD TO INDEX REGISTER.
004098,002726:                                                                                                  #           9.  XSU                ERASABLE SUBTRACT FROM INDEX REGISTER.
004099,002727: 
004100,002728:                                                                                                  #          10.  TIX                BRANCH ON INDEX REGISTER AND DECREMENT.
004101,002729: 
004102,002730: 
004103,002731: 
004104,002732: 01,2000                                           SETLOC   12000                                 #  SUFFIX CLASS 01 IS IN BANK 1.
004105,002733: 
004106,002734: 01,2000           02061        AXT                TC       TAGSUB                                #  SELECT APPROPRIATE INDEX REGISTER.
004107,002735: 01,2001           30103                           CA       POLISH                                
004108,002736: 01,2002           50114        XSTORE             INDEX    INDEXLOC                              #  CONTAINS C(FIXLOC) OR C(FIXLOC)+1.
004109,002737: 01,2003           54046                           TS       X1                                    
004110,002738: 01,2004           16014                           TCF      DANZIG                                
004111,002739: 
004112,002740: 01,2005           02061        AXC                TC       TAGSUB                                
004113,002741: 01,2006           40103                           CS       POLISH                                
004114,002742: 01,2007           02002                           TC       XSTORE                                
004115,002743: 
004116,002744: 01,2010           02061        LXA                TC       TAGSUB                                #  LOAD INDEX FROM ERASABLE.
004117,002745: 01,2011           50102                           INDEX    ADDRWD                                
004118,002746: 01,2012           30000                           CA       0                                     
004119,002747: 01,2013           12002                           TCF      XSTORE                                
004120,002748: 
004121,002749: 01,2014           02061        LXC                TC       TAGSUB                                #  LOAD INDEX FROM ERASABLE COMPLEMENTED.
004122,002750: 01,2015           50102                           INDEX    ADDRWD                                
004123,002751: 01,2016           40000                           CS       0                                     
004124,002752: 01,2017           12002                           TCF      XSTORE                                
004125,002753: 
004126,002754: 01,2020           02061        SXA                TC       TAGSUB                                #  STORE INDEX IN ERASABLE.
004127,002755: 01,2021           50114                           INDEX    INDEXLOC                              
004128,002756: 01,2022           30046                           CA       X1                                    
004129,002757: 01,2023           16627                           TCF      STORE1                                # (STORE SINGLE PRECISION BEFORE EXIT).
004130,002758: 
004131,002759: 01,2024           02061        XCHX               TC       TAGSUB                                #  EXCHANGE INDEX REGISTER WITH ERASABLE.
004132,002760: 01,2025           50102                           INDEX    ADDRWD                                
004133,002761: 01,2026           30000                           CA       0                                     
004134,002762: 01,2027           50114                           INDEX    INDEXLOC                              
004135,002763: 01,2030           56046                           XCH      X1                                    
004136,002764: 01,2031           16627                           TCF      STORE1                                
004137,002765: 
004138,002766: 01,2032           02061        XAD                TC       TAGSUB                                #  ERASABLE ADD TO INDEX.
004139,002767: 01,2033           50102                           INDEX    ADDRWD                                
004140,002768: 01,2034           30000                           CA       0                                     
004141,002769: 01,2035           50114        XAD2               INDEX    INDEXLOC                              
004142,002770: 01,2036           26046                           ADS      X1                                    #  IGNORING OVERFLOWS.
004143,002771: 01,2037           16014                           TCF      DANZIG                                
004144,002772: 
004145,002773: 01,2040           02061        INCR               TC       TAGSUB                                #  INCREMENT INDEX REGISTER.
004146,002774: 01,2041           30103                           CA       POLISH                                
004147,002775: 01,2042           12035                           TCF      XAD2                                  
004148,002776: 
004149,002777: 01,2043           02061        XSU                TC       TAGSUB                                #  ERASABLE SUBTRACT FROM INDEX.
004150,002778: 01,2044           50102                           INDEX    ADDRWD                                
004151,002779: 01,2045           40000                           CS       0                                     
004152,002780: 01,2046           12035                           TCF      XAD2                                  
004153,002781: 
004154,002782: 
004155,002783: 
004156,002784: 01,2047           02061        TIX                TC       TAGSUB                                #  BRANCH AND DECREMENT ON INDEX.
004157,002785: 01,2050           50114                           INDEX    INDEXLOC                              
004158,002786: 01,2051           40050                           CS       S1                                    
004159,002787: 01,2052           50114                           INDEX    INDEXLOC                              
004160,002788: 01,2053           60046                           AD       X1                                    
004161,002789: 01,2054           00006                           EXTEND                                         #  NO OPERATION IF DECREMENTED INDEX IS
004162,002790: 01,2055           66014                           BZMF     DANZIG                                #  NEGATIVE OR ZERO.
004163,002791: 
004164,002792: 01,2056           50114        DOTIXBR            INDEX    INDEXLOC                              
004165,002793: 01,2057           56046                           XCH      X1                                    #  IGNORING OVERFLOWS.
004166,002794: 
004167,002795: 01,2060           16651                           TCF      GOTO                                  #  DO THE BRANCH USING THE CADR IN POLISH.
004168,002796: 
004169,002797: 
004170,002798: 
004171,002799:                                                                                                  #           SUBROUTINE WHICH SETS THE ADDRESS OF THE SPECIFIED INDEX IN INDEXLOC. (ACTUALLY, THE ADDRESS -38D.)
004172,002800: 
004173,002801: 01,2061           30104        TAGSUB             CA       FIXLOC                                
004174,002802: 01,2062           54114                           TS       INDEXLOC                              
004175,002803: 
004176,002804: 01,2063           10020                           CCS      CYR                                   #  BIT 15 SPECIFIES INDEX.
004177,002805: 01,2064           24114                           INCR     INDEXLOC                              #  0 MEANS USE X2.
004178,002806: 01,2065           00002                           TC       Q                                     
004179,002807: 01,2066           00002                           TC       Q                                     #  1 FOR X1.
004180,002808: 
004181,002809:                                                                                                  #           MISCELLANEOUS OPERATION CODES WITH DIRECT ADDRESSES. INCLUDED HERE ARE:
004182,002810: 
004183,002811:                                                                                                  #           1.  ITA                STORE QPRET (RETURN ADDRESS) IN ERASABLE.
004184,002812:                                                                                                  #           2.  CALL               CALL A SUBROUTINE, LEAVING RETURN IN QPRET.
004185,002813:                                                                                                  #           3.  RTB                RETURN TO BASIC LANGUAGE AT THE GIVEN ADDRESS.
004186,002814:                                                                                                  #           4.  BHIZ               BRANCH IF THE HIGH ORDER OF MPAC IS ZERO (SINGLE PRECISION).
004187,002815:                                                                                                  #           5.  BOV                BRANCH ON OVERFLOW.
004188,002816:                                                                                                  #           6.  GOTO               SIMPLE SEQUENCE CHANGE.
004189,002817: 
004190,002818: 01,2067           10020        RTB/BHIZ           CCS      CYR                                   
004191,002819: 01,2070           30103        RTB                CA       POLISH                                
004192,002820: 01,2071           14107                           TCF      BANKJUMP                              #  CALL BASIC ROUTINE.
004193,002821: 
004194,002822: 01,2072           10140        BHIZ               CCS      MPAC                                  
004195,002823: 01,2073           16014                           TCF      DANZIG                                
004196,002824: 01,2074           16651                           TCF      GOTO                                  
004197,002825: 01,2075           16014                           TCF      DANZIG                                
004198,002826: 01,2076           16651                           TCF      GOTO                                  
004199,002827: 
004200,002828: 01,2077           10105        BOV(B)             CCS      OVFIND                                #  BRANCH ON OVERFLOW TO BASIC OR INTERP.
004201,002829: 01,2100           12102                           TCF      +2                                    
004202,002830: 01,2101           16014                           TCF      DANZIG                                
004203,002831: 01,2102           54105                           TS       OVFIND                                
004204,002832: 01,2103           10020                           CCS      CYR                                   
004205,002833: 01,2104           12070                           TCF      RTB                                   #  IF BASIC.
004206,002834: 01,2105           00360        B5TOBB             OCT      360                                   
004207,002835: 01,2106           16651                           TCF      GOTO                                  
004208,002836: 
004209,002837: 01,2107           10020        BZE/GOTO           CCS      CYR                                   #  SEE WHICH OP-CODE IS DESIRED.
004210,002838: 01,2110           06711                           TC       BRANCH                                #  DO BZE.
004211,002839: 01,2111           16014                           TCF      DANZIG                                
004212,002840: 01,2112           16651                           TCF      GOTO                                  #  DO GOTO.
004213,002841: 01,2113           16014                           TCF      DANZIG                                
004214,002842: 
004215,002843: 01,2114           10020        BPL/BMN            CCS      CYR                                   
004216,002844: 01,2115           12123                           TCF      BPL                                   
004217,002845: 01,2116           12000        5B10               DEC      5          B+10                       #  SHIFTS OP CODE IN SWITCH INSTRUCTION ADR
004218,002846: 
004219,002847: 01,2117           06711                           TC       BRANCH                                #  DO BMN.
004220,002848: 01,2120           16014                           TCF      DANZIG                                
004221,002849: 01,2121           16014                           TCF      DANZIG                                
004222,002850: 01,2122           16651                           TCF      GOTO                                  #  ONLY IF NNZ.
004223,002851: 
004224,002852: 01,2123           06711        BPL                TC       BRANCH                                
004225,002853: 01,2124           16651                           TCF      GOTO                                  #  IF POSITIVE OR ZERO.
004226,002854: 01,2125           16651                           TCF      GOTO                                  
004227,002855: 01,2126           16014                           TCF      DANZIG                                
004228,002856: 
004229,002857: 01,2127           10020        CALL/ITA           CCS      CYR                                   
004230,002858: 01,2130           16644                           TCF      CALL                                  
004231,002859: 
004232,002860: 01,2131           05456                           TC       CCSHOLE                               
004233,002861: 01,2132           50104                           INDEX    FIXLOC                                #  STORE QPRET.
004234,002862: 01,2133           30052                           CA       QPRET                                 
004235,002863: 01,2134           16627                           TCF      STORE1                                
004236,002864: 
004237,002865:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR ALTERING AND TESTING INTERPRETIVE SWITCHES:
004238,002866: 
004239,002867:                                                                                                  #  00       BONSET                 SET A SWITCH AND DO A GOTO IF IT WAS ON.
004240,002868:                                                                                                  #  01       SETGO                  SET A SWITCH AND DO A GOTO.
004241,002869:                                                                                                  #  02       BOFSET                 SET A SWITCH AND DO A GOTO IF IT WAS OFF
004242,002870:                                                                                                  #  03       SET                    SET A SWITCH.
004243,002871: 
004244,002872:                                                                                                  #  04       BONINV                 INVERT A SWITCH AND BRANCH IF IT WAS ON.
004245,002873:                                                                                                  #  05       INVGO                  INVERT A SWITCH AND DO A GOTO.
004246,002874:                                                                                                  #  06       BOFINV                 INVERT A SWITCH AND BRANCH IF IT WAS OFF
004247,002875:                                                                                                  #  07       INVERT                 INVERT A SWITCH.
004248,002876: 
004249,002877:                                                                                                  #  10       BONCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS ON.
004250,002878:                                                                                                  #  11       CLRGO                  CLEAR A SWITCH AND DO A GOTO.
004251,002879:                                                                                                  #  12       BOFCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS OFF.
004252,002880:                                                                                                  #  13       CLEAR                  CLEAR A SWITCH.
004253,002881: 
004254,002882:                                                                                                  #  14       BON                    BRANCH IF A SWITCH WAS ON.
004255,002883:                                                                                                  #  16       BOFF                   BRANCH IF A SWITCH WAS OFF.
004256,002884: 
004257,002885: 
004258,002886: 
004259,002887:                                                                                                  #           THE ADDRESS SUPPLIED WITH THE SWITCH INSTRUCTION IS INTERPRETED AS FOLLOWS:
004260,002888: 
004261,002889:                                                                                                  #           BITS 1-4    SWITCH BIT NUMBER (1-15).
004262,002890:                                                                                                  #           BITS 5-8    SWITCH OPERATION NUMBER.
004263,002891:                                                                                                  #           BITS 9-     SWITCH WORD NUMBER (UP TO 64 SWITCH WORDS).
004264,002892: 
004265,002893:                                                                                                  #           THE ADDRESS ITSELF IS MADE UP BY THE YUL SYSTEM ASSEMBLER. THE BRANCH INSTRUCTIONS REQUIRE TWO
004266,002894:                                                                                                  #  ADDRESSES, THE SECOND TAKEN AS THE DIRECT (OR INDIRECT IF IN ERASABLE) ADDRESS OF THE BRANCH.
004267,002895: 
004268,002896: 
004269,002897: 
004270,002898: 01,2135           37673        SWITCHES           CAF      LOW4                                  #  LEAVE THE SWITCH BIT IN SWBIT  .
004271,002899: 01,2136           70103                           MASK     POLISH                                
004272,002900: 01,2137           50000                           INDEX    A                                     
004273,002901: 01,2140           37641                           CAF      BIT15                                 #  (NUMBER FROM LEFT TO RIGHT.)
004274,002902: 01,2141           54115                           TS       SWBIT                                 
004275,002903: 
004276,002904: 01,2142           37651                           CAF      BIT7                                  #  LEAVE THE SWITCH NUMBER IN SWWORD.
004277,002905: 01,2143           00006                           EXTEND                                         
004278,002906: 01,2144           70103                           MP       POLISH                                
004279,002907: 01,2145           54114                           TS       SWWORD                                
004280,002908: 
004281,002909: 01,2146           00004                           INHINT                                         #  DURING SWITCH CHANGE SO RUPT CAN USE TOO
004282,002910: 01,2147           50000                           INDEX    A                                     #  LEAVE THE SWITCH WORD ITSELF IN L.
004283,002911: 01,2150           30061                           CA       STATE                                 
004284,002912: 01,2151           54002                           TS       Q                                     #  Q WILL BE USED AS A CHANNEL.
004285,002913: 
004286,002914: 
004287,002915: 01,2152           37645                           CAF      BIT11                                 
004288,002916: 01,2153           00006                           EXTEND                                         #  DISPATCH SWITCH BIT OPERATION AS IN BITS
004289,002917: 01,2154           70103                           MP       POLISH                                #  7-8 OF POLISH.
004290,002918: 01,2155           72215                           MASK     B3TOB4                                #  GETS 4X2-BIT CODE.
004291,002919: 01,2156           50000                           INDEX    A                                     
004292,002920: 01,2157           12160                           TCF      +1                                    
004293,002921: 
004294,002922: 01,2160           30115                 +1        CA       SWBIT                                 #  00 - SET SWITCH IN QUESTION.
004295,002923: 01,2161           00006                           EXTEND                                         
004296,002924: 01,2162           04002                           ROR      Q                                     
004297,002925: 01,2163           12172                           TCF      SWSTORE                               
004298,002926: 
004299,002927: 01,2164           30115                 +5        CA       SWBIT                                 #  01 - INVERT SWITCH.
004300,002928: 01,2165           00006                           EXTEND                                         
004301,002929: 01,2166           06002                           RXOR     Q                                     
004302,002930: 01,2167           12172                           TCF      SWSTORE                               
004303,002931: 
004304,002932: 01,2170           40115                 +9D       CS       SWBIT                                 #  10 - CLEAR.
004305,002933: 01,2171           70002                           MASK     Q                                     
004306,002934: 01,2172           50114        SWSTORE            INDEX    SWWORD                                
004307,002935: 01,2173           54061                           TS       STATE                                 #  NEW SWITCH WORD.
004308,002936: 
004309,002937: 01,2174           00003                 +13D      RELINT                                         #  11 - NOOP.
004310,002938: 01,2175           37643                           CAF      BIT13                                 
004311,002939: 01,2176           00006                           EXTEND                                         #  DISPATCH SEQUCE CHANGING OR BRANCHING
004312,002940: 01,2177           70103                           MP       POLISH                                #  CODE.
004313,002941: 01,2200           72215                           MASK     B3TOB4                                
004314,002942: 01,2201           50000                           INDEX    A                                     
004315,002943: 01,2202           12203                           TCF      +1                                    #  ORIGINALLY STORED IN BITS 5-6.
004316,002944: 
004317,002945: 01,2203           40002                 +1        CS       Q                                     #  00 - BRANCH IF ON.
004318,002946: 01,2204           70115        TEST               MASK     SWBIT                                 
004319,002947: 01,2205           10000                           CCS      A                                     
004320,002948: 01,2206           12216                           TCF      SWSKIP                                
004321,002949: 
004322,002950: 01,2207           16703                 +5        TCF      SWBRANCH                              #  01 - GO TO.
004323,002951: 
004324,002952: 01,2210           12216                           TCF      SWSKIP                                #  HERE ONLY ON BIT 15.
004325,002953: 
004326,002954: 01,2211           05456                           TC       CCSHOLE                               
004327,002955: 01,2212           05456                           TC       CCSHOLE                               
004328,002956: 
004329,002957: 01,2213           30002                 +9D       CA       Q                                     #  10 - BRANCH IF OFF.
004330,002958: 01,2214           12204                           TCF      TEST                                  
004331,002959: 
004332,002960: 01,2215           00014        B3TOB4             OCT      14                                    
004333,002961: 01,2216           24150        SWSKIP             INCR     LOC                                   
004334,002962: 
004335,002963: 01,2217  01,2135               SW/                EQUALS   SWITCHES                              
004336,002964: 
004337,002965: 01,2217           16014                 +13D      TCF      DANZIG                                #  11 - NOOP.
004338,002966: 01,2220                        ENDINTS1           EQUALS                                         

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