Source Code

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

Notations on the program listing read, in part:

	YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES
	DEC 13, 1966

	THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 
        OF PROGRAM SUNBURST BY LEM GROUP
Note that the date is the date of the printout, not the date of the program revision.

040485,000002:                                                                                                  ## Copyright:   Public domain.
040486,000003:                                                                                                  ## Filename:    INTERPRETER.agc
040487,000004:                                                                                                  ## Purpose:     A section of Sunburst revision 37, or Shepatin revision 0.
040488,000005:                                                                                                  ##              It is part of an early development version of the software
040489,000006:                                                                                                  ##              for Apollo Guidance Computer (AGC) on the unmanned Lunar
040490,000007:                                                                                                  ##              Module (LM) flight Apollo 5. Sunburst 37 was the program
040491,000008:                                                                                                  ##              upon which Don Eyles's offline development program Shepatin
040492,000009:                                                                                                  ##              was based; the listing herein transcribed was actually for
040493,000010:                                                                                                  ##              the equivalent revision 0 of Shepatin.
040494,000011:                                                                                                  ##              This file is intended to be a faithful transcription, except
040495,000012:                                                                                                  ##              that the code format has been changed to conform to the
040496,000013:                                                                                                  ##              requirements of the yaYUL assembler rather than the
040497,000014:                                                                                                  ##              original YUL assembler.
040498,000015:                                                                                                  ## Reference:   pp. 893-984
040499,000016:                                                                                                  ## Assembler:   yaYUL
040500,000017:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
040501,000018:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
040502,000019:                                                                                                  ## Mod history: 2017-05-24 MAS  Created from Sunburst 120.
040503,000020:                                                                                                  ##              2017-06-12 MAS  Began updating for Sunburst 37.
040504,000021:                                                                                                  ##              2017-06-13 MAS  Completed updates for Sunburst 37.
040505,000022:                                                                                                  ##              2017-06-15 HG   Fix opcode TC  -> TCF
040506,000023:                                                                                                  ##              2017-06-23 RSB  Proofed comment text with
040507,000024:                                                                                                  ##                              octopus/ProoferComments.
040508,000025: 

Page 893

040510,000027:                                                                                                  #  SECTION 1  DISPATCHER
040511,000028: 
040512,000029:                                                                                                  #           ENTRY TO THE INTERPRETER. INTPRET SETS LOC TO THE FIRST  INSTRUCTION, BANKSET TO THE BBANK OF THE
040513,000030:                                                                                                  #  OBJECT INTERPRETIVE PROGRAM, AND INTBIT15 TO THE BIT15 CONTENTS OF FBANK. INTERPRETIVE PROGRAMS MAY BE IN
040514,000031:                                                                                                  #  VIRTUALLY ALL BANKS PRESENT UNDER ANY SUPER-BANK SETTING, WITH THE RESTRICTION THAT PROGRAMS IN HIGH BANKS
040515,000032:                                                                                                  #  (BIT15 OF FBANK = 1) DO NOT REFER TO LOWBANKS, AND VICE-VERSA. THE INTERPRETER DOES NOT SWITCH SUPERBANKS.
040516,000033:                                                                                                  #  E-BANK SWITCHING OCCURS WHENEVER GENERAL ERASABLE (100 - 3777) IS ADDRESSED.
040517,000034: 
040518,000035: 
040519,000036: 
040520,000037:    6103                                           BLOCK    03                                    
040521,000038: 
040522,000039:    6103           00006        INTPRET            EXTEND                                         #  SET LOC TO THE WORD FOLLOWING THE TC.
040523,000040:    6104           22154                           QXCH     LOC                                   
040524,000041: 
040525,000042:    6105           30006                 +2        CA       BBANK                                 #  INTERPRETIVE BRANCHES FINISH HERE.
040526,000043:    6106           54155                           TS       BANKSET                               
040527,000044:    6107           77737                           MASK     BIT15                                 #  GET 15TH BIT FOR INDEXABLE ADDRESSES.
040528,000045:    6110           54105                           TS       INTBIT15                              
040529,000046: 
040530,000047: 
040531,000048:    6111           16124                           TCF      NEWOPS                                #  PICK UP OP CODE PAIR AND BEGIN.
040532,000049: 
040533,000050: 
040534,000051: 
040535,000052:    6112           22006        INTRSM             LXCH     BBANK                                 #  RESUME SUSPENDED INTERPRETIVE JOB
040536,000053:    6113           16105                           TCF      INTPRET    +2                         
040537,000054: 

Page 894

040539,000056:                                                                                                  #           AT THE END OF MOST INSTRUCTIONS, CONTROL IS GIVEN TO DANZIG TO DISPATCH THE NEXT OPERATION.
040540,000057: 
040541,000058:    6114           54153        NEWMODE            TS       MODE                                  #  PROLOGUE FOR MODE-CHANGING INSTRUCTIONS.
040542,000059: 
040543,000060:    6115           30155        DANZIG             CA       BANKSET                               #  SET BBANK BEFORE TESTING NEWJOB SO THAT
040544,000061:    6116           54006                           TS       BBANK                                 #  IT MAY BE SAVED DIRECTLY BY CHANJOB.
040545,000062: 
040546,000063:    6117           10023        NOIBNKSW           CCS      EDOP                                  #  SEE IF AN ORDER CODE IS LEFT OVER FROM
040547,000064:    6120           16133                           TCF      OPJUMP                                #  THE LAST PAIR RETRIEVED. IF SO, EXECUTE.
040548,000065:                                                                                                  #  EDOP IS SET TO ZERO ON ITS RE-EDITING.
040549,000066: 
040550,000067:    6121           10067                           CCS      NEWJOB                                #  SEE IF A JOB OF HIGHER PRIORITY IS
040551,000068:    6122           15556                           TCF      CHANG2                                #  PRESENT, AND IF SO, CHANGE JOBS.
040552,000069: 
040553,000070: 
040554,000071:    6123           24154                           INCR     LOC                                   #  ADVANCE THE LOCATION COUNTER.
040555,000072:                                                                                                  #           ITRACE (1) REFERS TO "NEWOPS".
040556,000073:    6124           50154        NEWOPS             INDEX    LOC                                   #  ENTRY TO BEGIN BY PICKING OP CODE PAIR.
040557,000074:    6125           30000                           CA       0                                     #  MAY BE AN OPCODE PAIR OR A STORE CODE.
040558,000075:    6126           10000                           CCS      A                                     #  TEST SIGN AND GET DABS(A).
040559,000076:    6127           16421                           TCF      DOSTORE                               #  PROCESS STORE CODE.
040560,000077: 
040561,000078:    6130           00177        LOW7               OCT      177                                   
040562,000079: 
040563,000080:    6131           54023                           TS       EDOP                                  #  OP CODE PAIR. LEAVE THE OTHER IN EDOP
040564,000081: 
040565,000082:    6132           76130                           MASK     LOW7                                  #  WHERE  CCS EDOP  WILL HONOR IT NEXT.
040566,000083: 
040567,000084:    6133           54020        OPJUMP             TS       CYR                                   #  LOWWD ENTERS HERE IF A RIGHT-HAND OP
040568,000085:    6134           10020                           CCS      CYR                                   #  CODE IS TO BE PROCESSED. TEST PREFICES.
040569,000086:    6135           16303                           TCF      OPJUMP2                               #  TEST SECOND PREFIX BIT.
040570,000087: 
040571,000088:    6136           17012                           TCF      EXIT                                  #  +0 OP CODE IS EXIT.
040572,000089: 

Page 895

040574,000091:                                                                                                  #           PROCESS ADDRESSES WHICH MAY BE DIRECT, INDEXED, OR REFERENCE THE PUSHDOWN LIST.
040575,000092: 
040576,000093:    6137           77755        ADDRESS            MASK     BIT1                                  #  SEE IF ADDRESS IS INDEXED. CYR CONTAINED
040577,000094:    6140           10000                           CCS      A                                     #  400XX, SO BIT 1 IS NOW AS IT WAS IN CYR.
040578,000095:    6141           16202                           TCF      INDEX                                 #  FORM INDEXED ADDRESS.
040579,000096: 
040580,000097: 
040581,000098:    6142           50154        DIRADRES           INDEX    LOC                                   #  LOOK AHEAD TO NEXT WORD TO SEE IF
040582,000099:    6143           40001        OCT40001           CS       1                                     #  ADDRESS IS GIVEN.
040583,000100:    6144           10000                           CCS      A                                     
040584,000101:    6145           16251                           TCF      PUSHUP                                #  IF NOT.
040585,000102: 
040586,000103:    6146           77773        NEG4               DEC      -4         B-14                       
040587,000104: 
040588,000105:    6147           24154                           INCR     LOC                                   #  IF SO, TO SHOW WE PICKED UP A WORD.
040589,000106:    6150           54106                           TS       ADDRWD                                
040590,000107: 

Page 896

040592,000109:                                                                                                  #           FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE. IN EACH CASE, THE
040593,000110:                                                                                                  #  REQUIRED 12-BIT SUB-ADDRESS IS LEFT IN ADDRWD, WITH ANY REQUIRED E OR F BANK SWITCHING DONE. ADDRESSES LESS
040594,000111: 
040595,000112:                                                                                                  #  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.
040596,000113: 
040597,000114: 
040598,000115:    6151           66305                           AD       -ENDVAC                               #  SEE IF ADDRESS RELATIVE TO WORK AREA.
040599,000116:    6152           10000                           CCS      A                                     
040600,000117:    6153           66332                           AD       -ENDERAS                              #  IF NOT, SEE IF IN GENERAL ERASABLE.
040601,000118:    6154           16161                           TCF      IERASTST                              
040602,000119: 
040603,000120:    6155           30110        NETZERO            CA       FIXLOC                                #  IF SO, LEAVE THE MODIFIED ADDRESS IN
040604,000121: 
040605,000122:    6156           26106                           ADS      ADDRWD                                #  ADDRWD AND DISPATCH.
040606,000123:    6157           50020        ITR15              INDEX    CYR                                   #  THIS INDEX MAKES THE NEXT INSTRUCTION
040607,000124:    6160           76332                           7        INDJUMP    -1                         #  TCF INDJUMP + OP, EDITING CYR.
040608,000125: 
040609,000126:    6161           00006        IERASTST           EXTEND                                         
040610,000127:    6162           66172                           BZMF     GEADDR                                #  GO PROCESS GENERAL-ERASABLE ADDRESS.
040611,000128: 
040612,000129:    6163           75356                           MASK     LOW10                                 #  FIXED BANK ADDRESS. RESTORE AND ADD B15.
040613,000130:    6164           65356                           AD       LOW10                                 #  SWITCH BANKS AND LEAVE SUBADDRESS IN
040614,000131:    6165           56106                           XCH      ADDRWD                                #  ADDRWD FOR OPERAND RETRIEVAL. (THIS
040615,000132:    6166           60105                           AD       INTBIT15                              #  METHOD PRECLUDES USE OF THE LAST
040616,000133:    6167           54004                           TS       FBANK                                 #  LOCATION IN EACH FBANK.)
040617,000134: 
040618,000135:    6170           50020        ITR12              INDEX    CYR                                   
040619,000136:    6171           76332                           7        INDJUMP    -1                         
040620,000137: 
040621,000138:    6172           74553        GEADDR             MASK     LOW8                                  
040622,000139:    6173           65370                           AD       OCT1400                               
040623,000140:    6174           56106                           XCH      ADDRWD                                
040624,000141:    6175           54003                           TS       EBANK                                 
040625,000142:    6176           50020        ITR10              INDEX    CYR                                   
040626,000143:    6177           76332                           7        INDJUMP    -1                         
040627,000144: 

Page 897

040629,000146:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES INTERPRETIVE INDEXED ADDRESSES. AN INTERPRETER INDEX REGISTER MAY
040630,000147:                                                                                                  #  CONTAIN THE ADDRESS OF ANY ERASABLE REGISTER (0-42 BEING RELATIVE TO THE VAC AREA) OR ANY INTERPRETIVE PROGRAM
040631,000148:                                                                                                  #  BANK, OR ANY INTEGER IN THAT RANGE.
040632,000149: 
040633,000150:    6200           35364        DODLOAD*           CAF      DLOAD*                                #  STODL* COMES HERE TO PROCESS LOAD ADR.
040634,000151:    6201           54020                           TS       CYR                                   #  (STOVL* ENTERS HERE).
040635,000152: 
040636,000153:    6202           30110        INDEX              CA       FIXLOC                                #  SET UP INDEX LOCATION.
040637,000154: 
040638,000155:    6203           54120                           TS       INDEXLOC                              
040639,000156:    6204           24154                           INCR     LOC                                   #  (ADDRESS ALWAYS GIVEN).
040640,000157:    6205           50154                           INDEX    LOC                                   
040641,000158:    6206           40000                           CS       0                                     
040642,000159:    6207           10000                           CCS      A                                     #  INDEX 2 IF ADDRESS STORED COMPLEMENTED.
040643,000160:    6210           24120                           INCR     INDEXLOC                              
040644,000161:    6211           16212                           NOOP                                           
040645,000162: 
040646,000163:    6212           54106                           TS       ADDRWD                                #  14 BIT ADDRESS TO ADDRWD.
040647,000164:    6213           75367                           MASK     HIGH4                                 #  IF ADDRESS GREATER THAN 2K, ADD INTBIT15
040648,000165: 
040649,000166:    6214           00006                           EXTEND                                         
040650,000167:    6215           16220                           BZF      INDEX2                                
040651,000168:    6216           30105                           CA       INTBIT15                              
040652,000169:    6217           26106                           ADS      ADDRWD                                
040653,000170: 
040654,000171:    6220           50120        INDEX2             INDEX    INDEXLOC                              
040655,000172:    6221           40046                           CS       X1                                    
040656,000173:    6222           26106                           ADS      ADDRWD                                #  DO AUGMENT, IGNORING AND CORRECTING OVF.
040657,000174: 
040658,000175:    6223           76330                           MASK     HIGH9                                 #  SEE IF ADDRESS IS IN WORK AREA.
040659,000176:    6224           00006                           EXTEND                                         
040660,000177:    6225           16240                           BZF      INDWORK                               
040661,000178: 
040662,000179:    6226           75367                           MASK     HIGH4                                 #  SEE IF IN FIXED BANK.
040663,000180:    6227           00006                           EXTEND                                         
040664,000181:    6230           16242                           BZF      INDERASE                              
040665,000182: 
040666,000183:    6231           30106                           CA       ADDRWD                                #  IN FIXED - SWITCH BANKS AND CREATE
040667,000184:    6232           54004                           TS       FBANK                                 #  SUB-ADDRESS.
040668,000185:    6233           75356                           MASK     LOW10                                 
040669,000186:    6234           67743                           AD       2K                                    
040670,000187:    6235           54106                           TS       ADDRWD                                
040671,000188:    6236           50020        ITR11              INDEX    CYR                                   
040672,000189: 
040673,000190:    6237           36332                           3        INDJUMP    -1                         
040674,000191: 
040675,000192:    6240           30110        INDWORK            CA       FIXLOC                                #  MAKE ADDRWD RELATIVE TO WORK AREA.
040676,000193:    6241           16246                           TCF      ITR13      -1                         
040677,000194: 
040678,000195:    6242           35370        INDERASE           CA       OCT1400                               
040679,000196:    6243           56106                           XCH      ADDRWD                                
040680,000197:    6244           54003                           TS       EBANK                                 
040681,000198:    6245           74553                           MASK     LOW8                                  
040682,000199:    6246           26106                 -1        ADS      ADDRWD                                

Page 898

040684,000201:    6247           50020        ITR13              INDEX    CYR                                   
040685,000202: 
040686,000203:    6250           36332                           3        INDJUMP    -1                         
040687,000204: 

Page 899

040689,000206:                                                                                                  #           PUSH-UP ROUTINES. WHEN NO OPERAND ADDRESS IS GIVEN, THE APPROPRIATE OPERAND IS TAKEN FROM THE PUSH-DOWN
040690,000207:                                                                                                  #  LIST. IN MOST CASES THE MODE OF THE RESULT (VECTOR OR SCALAR) OF THE LAST ARITHMETIC OPERATION PERFORMED
040691,000208:                                                                                                  #  IS THE SAME AS THE TYPE OF OPERAND DESIRED (ALL ADD/SUBTRACT ETC.). EXCEPTIONS TO THIS GENERAL RULE ARE LISTED
040692,000209:                                                                                                  #  BELOW (NOTE THAT IN EVERY CASE THE MODE REGISTER IS LEFT INTACT):
040693,000210: 
040694,000211:                                                                                                  #           1.  VXSC AND V/SC WANT THE OPPOSITE TYPE OF OPERAND, E.G., IF THE LAST OPERATION YIELDED A VECTOR
040695,000212: 
040696,000213:                                                                                                  #  RESULT, VXSC WANTS A SCALAR.
040697,000214: 
040698,000215:                                                                                                  #           2.  THE LOAD CODES SHOULD LOAD THE ACCUMULATOR INDEPENDENT OF THE RESULT OF THE LAST OPERATION. THIS
040699,000216:                                                                                                  #  INCLUDES VLOAD, DLOAD, TLOAD, PDDL, AND PDVL (NO PUSHUP WITH SLOAD).
040700,000217: 
040701,000218:                                                                                                  #           3.  SOME ARITHMETIC OPERATIONS REQUIRE A STANDARD TYPE OF OPERAND REGARDLESS OF THE PREVIOUS OPERATION.
040702,000219:                                                                                                  #  THIS INCLUDES SIGN WANTING DP AND TAD REQUIRING TP.
040703,000220: 
040704,000221:    6251           34554        PUSHUP             CAF      OCT23                                 #  IF THE LOW 5 BITS OF CYR ARE LESS THAN
040705,000222:    6252           70020                           MASK     CYR                                   #  20, THIS OP REQUIRES SPECIAL ATTENTION.
040706,000223:    6253           66256                           AD       -OCT10                                #  (NO -0).
040707,000224:    6254           10000                           CCS      A                                     
040708,000225: 
040709,000226:    6255           16267                           TCF      REGUP                                 #  FOR ALL CODES GREATER THAN OCT 7.
040710,000227: 
040711,000228:    6256           77767        -OCT10             OCT      -10                                   
040712,000229: 
040713,000230:    6257           66146                           AD       NEG4                                  #  WE NOW HAVE 7 - OP CODE(MOD4). SEE IF
040714,000231:    6260           10000                           CCS      A                                     #  THE OP CODE (MOD4) IS THREE (REVERSE).
040715,000232:    6261           50000                           INDEX    A                                     #  NO - THE MODE IS DEFINITE. PICK UP THE
040716,000233:    6262           46300                           CS       NO.WDS                                
040717,000234:    6263           16271                           TCF      REGUP      +2                         
040718,000235: 
040719,000236: 
040720,000237:    6264           50153                           INDEX    MODE                                  #  FOR VXSC AND V/SC WE WANT THE REQUIRED
040721,000238:    6265           46276                           CS       REVCNT                                #  PUSHLOC DECREMENT WITHOUT CHANGING THE
040722,000239:    6266           16271                           TCF      REGUP      +2                         #  MODE AT THIS TIME.
040723,000240: 
040724,000241:    6267           50153        REGUP              INDEX    MODE                                  #  MOST ALL OP CODES PUSHUP HERE.
040725,000242:    6270           46300                           CS       NO.WDS                                
040726,000243:    6271           26156                 +2        ADS      PUSHLOC                               
040727,000244:    6272           54106                           TS       ADDRWD                                
040728,000245:    6273           50020        ITR14              INDEX    CYR                                   
040729,000246:    6274           76332                           7        INDJUMP    -1                         #  (THE INDEX MAKES THIS A TCF.)
040730,000247: 
040731,000248:    6275           00002                           OCT      2                                     #  REVERSE PUSHUP DECREMENT. VECTOR TAKES 2
040732,000249: 
040733,000250:    6276           00006        REVCNT             OCT      6                                     #  WORDS, SCALAR TAKES 6.
040734,000251:    6277           00006                           OCT      6                                     
040735,000252:    6300           00002        NO.WDS             OCT      2                                     #  CONVENTIONAL DECREMENT IS 6 WORDS VECTOR
040736,000253:    6301           00003        OCTAL3             OCT      3                                     #  2 IN DP, AND 3 IN TP.
040737,000254:    6302           00006                           OCT      6                                     
040738,000255: 

Page 900

040740,000257:                                                                                                  #            TEST THE SECOND PREFIX BIT TO SEE IF THIS IS A MISCELLANEOUS OR A UNARY/SHORT SHIFT OPERATION.
040741,000258: 
040742,000259:    6303           10020        OPJUMP2            CCS      CYR                                   #  TEST SECOND PREFIX BIT.
040743,000260:    6304           16317                           TCF      OPJUMP3                               #  TEST THIRD BIT TO SEE IF UNARY OR SHIFT.
040744,000261: 
040745,000262:    6305           77722        -ENDVAC            DEC      -45        B-14                       
040746,000263: 
040747,000264:                                                                                                  #           THE FOLLOWING ROUTINE PROCESSES ADDRESSES OF SUFFIX CLASS 10. THEY ARE BASICALLY WORK AREA ADDRESSES
040748,000265:                                                                                                  #  IN THE RANGE 0 - 52, ERASABLE ECADR CONSTANTS FROM 100 - 3777, AND FCADRS ABOVE THAT. ALL 15 BITS ARE AVAILABLE
040749,000266:                                                                                                  #  IN CONTRAST TO SUFFIX 1, IN WHICH ONLY THE LOW ORDER 14 ARE AVAILABLE.
040750,000267: 
040751,000268:    6306           24154        15BITADR           INCR     LOC                                   #  (ENTRY HERE FROM STCALL).
040752,000269: 
040753,000270:    6307           50154                           INDEX    LOC                                   #  PICK UP ADDRESS WORD.
040754,000271:    6310           30000                           CA       0                                     
040755,000272:    6311           54107                           TS       POLISH                                #  WE MAY NEED A SUBADDRESS LATER.
040756,000273: 
040757,000274:    6312           36327                           CAF      LOW7+2K                               #  THESE INSTRUCTIONS ARE IN BANK 1.
040758,000275:    6313           54004                           TS       FBANK                                 
040759,000276:    6314           70020                           MASK     CYR                                   
040760,000277:    6315           50000        ITR7               INDEX    A                                     
040761,000278:    6316           16373                           TCF      MISCJUMP                              
040762,000279: 

Page 901

040764,000281:                                                                                                  #           COMPLETE THE DISPATCHING OF UNARY AND SHORT SHIFT OPERATIONS.
040765,000282: 
040766,000283:    6317           54004        OPJUMP3            TS       FBANK                                 #  CALL IN BANK 0 (BIT5 11-15 OF A ARE 0.)
040767,000284:                                                                                                  #           ITRACE (6) REFERS TO "OPJUMP3".
040768,000285:    6320           10020                           CCS      CYR                                   #  TEST THIRD PREFIX BIT.
040769,000286:    6321           50000                           INDEX    A                                     #  THE DECREMENTED UNARY CODE IS IN BITS
040770,000287:    6322           12000                           TCF      UNAJUMP                               #  1-4 OF A (ZERO, EXIT, HAS BEEN DETECTED)
040771,000288: 
040772,000289: 
040773,000290:    6323           10153                           CCS      MODE                                  #  ITS A SHORT SHIFT CODE. SEE IF PRESENT
040774,000291:    6324           12017                           TCF      SHORTT                                #  SCALAR OR VECTOR.
040775,000292:    6325           12017                           TCF      SHORTT                                
040776,000293:    6326           12121                           TCF      SHORTV                                #  CALLS THE APPROPRIATE ROUTINE.
040777,000294: 
040778,000295: 
040779,000296: 
040780,000297:    6327     4554               OCT23              =        VD1                                   
040781,000298:    6327           02177        LOW7+2K            OCT      2177                                  #  OP CODE MASK + BANK 1 FBANK SETTING.
040782,000299:    6330           77700        HIGH9              OCT      77700                                 
040783,000300: 
040784,000301:    6331           76000        BANKMASK           OCT      76000                                 #  FBANK MASK.
040785,000302:    6332     6331               FBANKMSK           EQUALS   BANKMASK                              
040786,000303:    6332     5673               B12T14             =        PRIO34                                #  USED IN PROCESSING STORE CODES.
040787,000304:    6332           74056        -ENDERAS           DEC      -2001      B-14                       #  = -(2047 - 45 - 1)
040788,000305: 

Page 902

040790,000307:                                                                                                  #           THE FOLLOWING IS THE JUMP TABLE FOR OP CODES WHICH MAY HAVE INDEXABLE ADDRESSES OR MAY PUSH UP.
040791,000308: 
040792,000309:    6333           16554        INDJUMP            TCF      VLOAD                                 #  00 - LOAD MPAC WITH A VECTOR.
040793,000310:    6334           17133                           TCF      TAD                                   #  01 - TRIPLE PRECISION ADD TO MPAC.
040794,000311:    6335           17701                           TCF      SIGN                                  #  02 - COMPLEMENT MPAC (V OR SC) IF X NEG.
040795,000312:    6336           17452                           TCF      VXSC                                  #  03 - VECTOR TIMES SCALAR.
040796,000313:    6337           16752                           TCF      CGOTO                                 #  04 - COMPUTED GO TO.
040797,000314:    6340           16537                           TCF      TLOAD                                 #  05 - LOAD MPAC WITH TRIPLE PRECISION.
040798,000315:    6341           16530                           TCF      DLOAD                                 #  06 - LOAD MPAC WITH A DP SCALAR.
040799,000316:    6342           17650                           TCF      V/SC                                  #  07 - VECTOR DIVIDED BY SCALAR.
040800,000317: 
040801,000318:    6343           16550                           TCF      SLOAD                                 #  10 - LOAD MPAC IN SINGLE PRECISION.
040802,000319:    6344           16667                           TCF      SSP                                   #  11 - SET SINGLE PRECISION INTO X.
040803,000320: 
040804,000321:    6345           16572                           TCF      PDDL                                  #  12 - PUSH DOWN MPAC AND RE-LOAD IN DP.
040805,000322:    6346           17405                           TCF      MXV                                   #  13 - MATRIX POST-MULTIPLIED BY VECTOR.
040806,000323:    6347           16626                           TCF      PDVL                                  #  14 - PUSH DOWN AND VECTOR LOAD.
040807,000324:    6350           16675                           TCF      CCALL                                 #  15 - COMPUTED CALL.
040808,000325:    6351           17410                           TCF      VXM                                   #  16 - MATRIX PRE-MULTIPLIED BY VECTOR.
040809,000326:    6352           17642                           TCF      TSLC                                  #  17 - NORMALIZE MPAC (SCALAR ONLY).
040810,000327: 
040811,000328:    6353           17620                           TCF      DMPR                                  #  20 - DP MULTIPLY AND ROUND.
040812,000329:    6354           17623                           TCF      DDV                                   #  21 - DP DIVIDE BY.
040813,000330:    6355           17627                           TCF      BDDV                                  #  22 - DP DIVIDE INTO.
040814,000331: 
040815,000332:    6356           17645                           TCF      GSHIFT                                #  23 - GENERAL SHIFT INSTRUCTION.
040816,000333:    6357           17016                           TCF      VAD                                   #  24 - VECTOR ADD.
040817,000334:    6360           17044                           TCF      VSU                                   #  25 - VECTOR SUBTRACT.
040818,000335:    6361           17074                           TCF      BVSU                                  #  26 - VECTOR SUBTRACT FROM.
040819,000336:    6362           17402                           TCF      DOT                                   #  27 - VECTOR DOT PRODUCT.
040820,000337: 
040821,000338:    6363           17532                           TCF      VXV                                   #  30 - VECTOR CROSS PRODUCT.
040822,000339:    6364           17476                           TCF      VPROJ                                 #  31 - VECTOR PROJECTION.
040823,000340:    6365           17062                           TCF      DSU                                   #  32 - DP SUBTRACT.
040824,000341:    6366           17120                           TCF      BDSU                                  #  33 - DP SUBTRACT FROM.
040825,000342:    6367           17034                           TCF      DAD                                   #  34 - DP ADD.
040826,000343:    6370           16370                           TCF      +0                                    #  35 - AVAILABLE
040827,000344: 
040828,000345:    6371           17616                           TCF      DMP1                                  #  36 - DP MULTIPLY.
040829,000346:    6372           17637                           TCF      SETPD                                 #  37 - SET PUSH DOWN POINTER (DIRECT ONLY)
040830,000347: 
040831,000348:                                                                                                  #  CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED.
040832,000349: 

Page 903

040834,000351:                                                                                                  #           THE FOLLOWING JUMP TABLE APPLIES TO INDEX, BRANCH, AND MISCELLANEOUS INSTRUCTIONS.
040835,000352: 
040836,000353:    6373           12557        MISCJUMP           TCF      AXT                                   #  00 - ADDRESS TO INDEX TRUE.
040837,000354:    6374           12564                           TCF      AXC                                   #  01 - ADDRESS TO INDEX COMPLEMENTED.
040838,000355:    6375           12567                           TCF      LXA                                   #  02 - LOAD INDEX FROM ERASABLE.
040839,000356:    6376           12573                           TCF      LXC                                   #  03 - LOAD INDEX FROM COMPLEMENT OF ERAS.
040840,000357: 
040841,000358:    6377           12577                           TCF      SXA                                   #  04 - STORE INDEX IN ERASABLE.
040842,000359:    6400           12605                           TCF      XCHX                                  #  05 - EXCHANGE INDEX WITH ERASABLE.
040843,000360:    6401           12621                           TCF      INCR                                  #  06 - INCREMENT INDEX REGISTER.
040844,000361:    6402           12630                           TCF      TIX                                   #  07 - TRANSFER ON INDEX.
040845,000362: 
040846,000363:    6403           12613                           TCF      XAD                                   #  10 - INDEX REGISTER ADD FROM ERASABLE.
040847,000364:    6404           12624                           TCF      XSU                                   #  11 - INDEX SUBTRACT FROM ERASABLE.
040848,000365:    6405           12702                           TCF      BZE/GOTO                              #  12 - BRANCH ZERO AND GOTO.
040849,000366:    6406           12707                           TCF      BPL/BMN                               #  13 - BRANCH PLUS AND BRANCH MINUS.
040850,000367:    6407           12662                           TCF      RTB/BHIZ                              #  14 - RETURN TO BASIC AND BRANCH HI ZERO.
040851,000368:    6410           12722                           TCF      CALL/ITA                              #  15 - CALL AND STORE QPRET.
040852,000369:    6411           12731                           TCF      SW/                                   #  16 - SWITCH INSTRUCTIONS AND AVAILABLE.
040853,000370: 
040854,000371:    6412           12672                           TCF      BOV(B)                                #  17 - BRANCH ON OVERFLOW TO BASIC OR INT.
040855,000372: 

Page 904

040857,000374:                                                                                                  #           THE FOLLOWING JUMP TABLE APPIES TO UNARY INSTRUCTIONS.
040858,000375: 
040859,000376: 
040860,000377: 00,2000                                           BANK     0                                     #  00 - EXIT - DETECTED EARLIER.
040861,000378: 00,2000           13155        UNAJUMP            TCF      SQRT                                  #  01 - SQUARE ROOT.
040862,000379: 00,2001           13477                           TCF      SINE                                  #  02 - SIN.
040863,000380: 00,2002           13466                           TCF      COSINE                                #  03 - COS.
040864,000381: 00,2003           13557                           TCF      ARCSIN                                #  04 - ARC SIN.
040865,000382: 00,2004           13561                           TCF      ARCCOS                                #  05 - ARC COS.
040866,000383: 00,2005           13142                           TCF      DSQ                                   #  06 - DP SQUARE.
040867,000384: 00,2006           12116                           TCF      ROUND                                 #  07 - ROUND TO DP.
040868,000385: 
040869,000386: 00,2007           17714                           TCF      COMP                                  #  10 - COMPLEMENT VECTOR OR SCALAR.
040870,000387: 
040871,000388: 00,2010           13200                           TCF      VDEF                                  #  11 - VECTOR DEFINE.
040872,000389: 00,2011           12770                           TCF      UNIT                                  #  12 - UNIT VECTOR.
040873,000390: 00,2012           13144                           TCF      ABVALABS                              #  13 - LENGTH OF VECTOR OR MAG OF SCALAR.
040874,000391: 00,2013           13214                           TCF      VSQ                                   #  14 - SQUARE OF LENGTH OF VECTOR.
040875,000392: 00,2014           16413                           TCF      STADR                                 #  15 - PUSH UP ON STORE CODE.
040876,000393: 00,2015           13244                           TCF      RVQ                                   #  16 - RETURN VIA QPRET.
040877,000394: 00,2016           13217                           TCF      PUSH                                  #  17 - PUSH MPAC DOWN.
040878,000395: 

Page 905

040880,000397:                                                                                                  #  SECTION 2  LOAD AND STORE PACKAGE.
040881,000398: 
040882,000399:                                                                                                  #           A SET OF EIGHT STORE CODES IS PROVIDED AS THE PRIMARY METHOD OF STORING THE MULTI-PURPOSE
040883,000400:                                                                                                  #  ACCUMULATOR (MPAC). IF IN THE DANZIG SECTION LOC REFERS TO AN ALGEBRAICALLY POSITIVE WORD, IT IS TAKEN AS A 
040884,000401:                                                                                                  #  STORE CODE WITH A CORRESPONDING ERASABLE ADDRESS. MOST OF THESE CODES ARE TWO ADDRESS, SPECIFYING THAT THE WORD
040885,000402:                                                                                                  #  FOLLOWING THE STORE CODE IS TO BE USED AS AN ADDRESS FROM WHICH TO RE-LOAD MPAC. FOUR OPTIONS ARE AVAILABLE:
040886,000403: 
040887,000404:                                                                                                  #           1. STORE               STORE MPAC. THE E ADDRESS MAY BE INDEXED.
040888,000405: 
040889,000406:                                                                                                  #           2. STODL               STORE MPAC AND RE-LOAD IT IN DP WITH THE NEXT ADDRESS (THE LOAD MAY BE INDEXED).
040890,000407:                                                                                                  #           3. STOVL               STORE MPAC AND RE-LOAD A VECTOR (AS ABOVE).
040891,000408:                                                                                                  #           4. STCALL              STORE AND DO A CALL (BOTH ADDRESSES MUST BE DIRECT HERE).
040892,000409: 
040893,000410:                                                                                                  #           STODL AND STOVL WILL TAKE FROM THE PUSH-DOWN LIST IF NO LOAD ADDRESS IS GIVEN.
040894,000411: 
040895,000412: 
040896,000413: 
040897,000414:    6413                                           BLOCK    3                                     
040898,000415: 
040899,000416:    6413           30155        STADR              CA       BANKSET                               #  THE STADR CODE (PUSHUP UP ON STORE
040900,000417:    6414           54004                           TS       FBANK                                 #  ADDRESS) ENTERS HERE.
040901,000418:    6415           24154                           INCR     LOC                                   
040902,000419:    6416           50154        ITR1               INDEX    LOC                                   #  THE STORECODE WAS STORED COMPLEMENTED TO
040903,000420:    6417           40000                           CS       0                                     #  MAKE IT LOOK LIKE AN OPCODE PAIR.
040904,000421:    6420           67763                           AD       NEGONE                                #  (YUL CANT REMOVE 1 BECAUSE OF EARLY CCS)
040905,000422: 
040906,000423:    6421           54106        DOSTORE            TS       ADDRWD                                
040907,000424:    6422           74552                           MASK     LOW11                                 #  ENTRY FROM DISPATCHER. SAVE THE ERASABLE
040908,000425:    6423           56106                           XCH      ADDRWD                                #  ADDRESS AND JUMP ON THE STORE CODE NO.
040909,000426:    6424           75673                           MASK     B12T14                                
040910,000427:    6425           00006                           EXTEND                                         
040911,000428:    6426           77751                           MP       BIT5                                  #  EACH TRANSFER VECTOR ENTRY IS TWO WORDS.
040912,000429: 
040913,000430:    6427           54023                           TS       EDOP                                  #  MAYBE 2ND OP WAS LEFT OVER FROM BRANCH
040914,000431:    6430           50000        ITR0               INDEX    A                                     
040915,000432:    6431           16432                           TCF      STORJUMP                              
040916,000433: 

Page 906

040918,000435:                                                                                                  #           STORE CODE JUMP TABLE. CALLS THE APPROPRIATE STORING ROUTINE AND EXITS TO DANZIG OR TO ADDRESS WITH
040919,000436: 
040920,000437:                                                                                                  #  A SUPPLIED OPERATION CODE.
040921,000438: 
040922,000439:    6432           06462        STORJUMP           TC       STORE                                 #  STORE.
040923,000440:    6433           16123                           TCF      NEWOPS     -1                         #  PICK UP NEW OP CODE(S).
040924,000441:    6434           06454                           TC       STORE,1                               
040925,000442:    6435           16123                           TCF      NEWOPS     -1                         
040926,000443:    6436           06457                           TC       STORE,2                               
040927,000444:    6437           16123                           TCF      NEWOPS     -1                         
040928,000445: 
040929,000446:    6440           06462                           TC       STORE                                 #  STODL.
040930,000447:    6441           16520                           TCF      DODLOAD                               
040931,000448: 
040932,000449:    6442           06462                           TC       STORE                                 #  STODL WITH INDEXED LOAD ADDRESS.
040933,000450:    6443           16200                           TCF      DODLOAD*                              
040934,000451: 
040935,000452:    6444           06462                           TC       STORE                                 #  STOVL.
040936,000453:    6445           16523                           TCF      DOVLOAD                               
040937,000454: 
040938,000455:    6446           06462                           TC       STORE                                 #  STOVL WITH INDEXED LOAD ADDRESS.
040939,000456:    6447           16526                           TCF      DOVLOAD*                              
040940,000457:    6450           06462                           TC       STORE                                 #  STOTC.
040941,000458:    6451           35362                           CAF      CALLCODE                              
040942,000459: 
040943,000460:    6452           54020                           TS       CYR                                   
040944,000461:    6453           16306                           TCF      15BITADR                              #  GET A 15 BIT ADDRESS.
040945,000462: 

Page 907

040947,000464:                                                                                                  #           STORE CODE ADDRESS PROCESSOR.
040948,000465: 
040949,000466:    6454           50110        STORE,1            INDEX    FIXLOC                                
040950,000467:    6455           40046                           CS       X1                                    
040951,000468:    6456           16461                           TCF      PRESTORE                              
040952,000469: 
040953,000470: 
040954,000471:    6457           50110        STORE,2            INDEX    FIXLOC                                
040955,000472:    6460           40047                           CS       X2                                    
040956,000473:    6461           26106        PRESTORE           ADS      ADDRWD                                #  RESULTANT ADDRESS IS IN ERASABLE.
040957,000474: 
040958,000475:    6462           40106        STORE              CS       ADDRWD                                
040959,000476:    6463           65371                           AD       DEC45                                 
040960,000477:    6464           10000                           CCS      A                                     #  DOES THE ADDRESS POINT TO THE WORK AREA?
040961,000478:    6465           30110                           CA       FIXLOC                                #  YES.
040962,000479:    6466           16473                           TCF      AHEAD5                                
040963,000480:    6467           35370                           CA       OCT1400                               #  NO.  SET EBANK & MAKE UP SUBADDRESS.
040964,000481:    6470           56106                           XCH      ADDRWD                                
040965,000482:    6471           54003                           TS       EBANK                                 
040966,000483: 
040967,000484:    6472           74553                           MASK     LOW8                                  
040968,000485:    6473           26106        AHEAD5             ADS      ADDRWD                                
040969,000486: 

Page 908

040971,000488:                                                                                                  #           STORING ROUTINES. STORE DP, TP, OR VECTOR AS INDICATED BY MODE.
040972,000489: 
040973,000490: 
040974,000491:    6474           00006        STARTSTO           EXTEND                                         #  MPAC,+1 MUST BE STORED IN ANY EVENT.
040975,000492:                                                                                                  #           ITRACE (5) REFERS TO "STARTSTO".
040976,000493:    6475           30145                           DCA      MPAC                                  
040977,000494:    6476           50106                           INDEX    ADDRWD                                
040978,000495:    6477           52001                           DXCH     0                                     
040979,000496: 
040980,000497:    6500           10153                           CCS      MODE                                  
040981,000498:    6501           16514                           TCF      TSTORE                                
040982,000499:    6502           00002                           TC       Q                                     
040983,000500: 
040984,000501:    6503           00006        VSTORE             EXTEND                                         
040985,000502:    6504           30150                           DCA      MPAC       +3                         
040986,000503:    6505           50106                           INDEX    ADDRWD                                
040987,000504:    6506           52003                           DXCH     2                                     
040988,000505: 
040989,000506:    6507           00006                           EXTEND                                         
040990,000507:    6510           30152                           DCA      MPAC       +5                         
040991,000508:    6511           50106                           INDEX    ADDRWD                                
040992,000509:    6512           52005                           DXCH     4                                     
040993,000510:    6513           00002                           TC       Q                                     
040994,000511: 
040995,000512:    6514           30146        TSTORE             CA       MPAC       +2                         
040996,000513:    6515           50106                           INDEX    ADDRWD                                
040997,000514: 
040998,000515:    6516           54002                           TS       2                                     
040999,000516:    6517           00002                           TC       Q                                     
041000,000517: 

Page 909

041002,000519:                                                                                                  #           ROUTINES TO BEGIN PROCESSING OF THE SECOND ADDRESS ASSOCIATED WITH ALL STORE-TYPE CODES EXCEPT STORE
041003,000520:                                                                                                  #  ITSELF.
041004,000521: 
041005,000522:    6520           35363        DODLOAD            CAF      DLOADCOD                              
041006,000523:    6521           54020                           TS       CYR                                   
041007,000524:    6522           16142                           TCF      DIRADRES                              #  GO GET A DIRECT ADDRESS.
041008,000525: 
041009,000526:    6523           37737        DOVLOAD            CAF      VLOADCOD                              
041010,000527: 
041011,000528:    6524           54020                           TS       CYR                                   
041012,000529:    6525           16142                           TCF      DIRADRES                              
041013,000530: 
041014,000531:    6526           36143        DOVLOAD*           CAF      VLOAD*                                
041015,000532:    6527           16201                           TCF      DODLOAD*   +1                         #  PROLOGUE TO INDEX ROUTINE.
041016,000533: 

Page 910

041018,000535:                                                                                                  #           THE FOLLOWING LOAD INSTRUCTIONS ARE PROVIDED FOR LOADING THE MULTI-PURPOSE ACCUMULATOR MPAC.
041019,000536: 
041020,000537:    6530           00006        DLOAD              EXTEND                                         
041021,000538:    6531           50106                           INDEX    ADDRWD                                
041022,000539:    6532           30001                           DCA      0                                     #  PICK UP DP ARGUMENT AND LEAVE IT IN
041023,000540:    6533           52145        SLOAD2             DXCH     MPAC                                  #  MPAC,+1, SETTING MPAC +2 TO ZERO. THE
041024,000541:    6534           37761                           CAF      ZERO                                  #  CONTENTS OF THE OTHER FOUR REGISTERS OF
041025,000542:    6535           54146                           TS       MPAC       +2                         #  MPAC ARE IRRELEVANT.
041026,000543:    6536           16114                           TCF      NEWMODE                               #  DECLARE DOUBLE PRECISION MODE.
041027,000544: 
041028,000545:    6537           50106        TLOAD              INDEX    ADDRWD                                
041029,000546:    6540           30002                           CA       2                                     #  LOAD A TRIPLE PRECISION ARGUMENT INTO
041030,000547:    6541           54146                           TS       MPAC       +2                         #  THE FIRST THREE MPAC REGISTERS, WITH THE
041031,000548:    6542           00006                           EXTEND                                         #  CONTENTS OF THE OTHER FOUR IRRELEVANT.
041032,000549: 
041033,000550:    6543           50106                           INDEX    ADDRWD                                
041034,000551:    6544           30001                           DCA      0                                     
041035,000552:    6545           52145                           DXCH     MPAC                                  
041036,000553:    6546           37755                           CAF      ONE                                   
041037,000554:    6547           16114                           TCF      NEWMODE                               #  DECLARE TRIPLE PRECISION MODE.
041038,000555: 
041039,000556:    6550           22007        SLOAD              ZL                                             #  LOAD A SINGLE PRECISION NUMBER INTO
041040,000557:    6551           50106                           INDEX    ADDRWD                                #  MPAC, SETTING MPAC+1,2 TO ZERO. THE
041041,000558:    6552           30000                           CA       0                                     #  CONTENTS OF THE REMAINING MPAC REGISTERS
041042,000559:    6553           16533                           TCF      SLOAD2                                #  ARE IRRELEVANT.
041043,000560: 
041044,000561:    6554           00006        VLOAD              EXTEND                                         #  LOAD A DOUBLE PRECISION VECTOR INTO
041045,000562:    6555           50106                           INDEX    ADDRWD                                #  MPAC,+1, MPAC+3,4, AND MPAC+5,6. THE
041046,000563:    6556           30001                           DCA      0                                     #  CONTENTS OF MPAC +2 ARE IRRELEVANT.
041047,000564:    6557           52145                           DXCH     MPAC                                  
041048,000565: 
041049,000566:    6560           00006        ENDVLOAD           EXTEND                                         #  PDVL COMES HERE TO FINISH UP FOR DP, TP.
041050,000567:    6561           50106                           INDEX    ADDRWD                                
041051,000568:    6562           30003                           DCA      2                                     
041052,000569:    6563           52150                           DXCH     MPAC       +3                         
041053,000570: 
041054,000571:    6564           00006                 +4        EXTEND                                         #  TPDVL FINISHES HERE.
041055,000572:    6565           50106                           INDEX    ADDRWD                                
041056,000573: 
041057,000574:    6566           30005                           DCA      4                                     
041058,000575:    6567           52152                           DXCH     MPAC       +5                         
041059,000576: 
041060,000577:    6570           47755                           CS       ONE                                   #  DECLARE VECTOR MODE.
041061,000578:    6571           16114                           TCF      NEWMODE                               
041062,000579: 

Page 911

041064,000581:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE PROVIDED FOR STORING OPERANDS IN THE PUSHDOWN LIST:
041065,000582: 
041066,000583:                                                                                                  #           1.  PUSH               PUSHDOWN AND NO LOAD.
041067,000584:                                                                                                  #           2.  PDDL               PUSHDOWN AND DOUBLE PRECISION LOAD.
041068,000585:                                                                                                  #           3.  PDVL               PUSHDOWN AND VECTOR LOAD.
041069,000586: 
041070,000587:    6572           00006        PDDL               EXTEND                                         
041071,000588:    6573           50106                           INDEX    ADDRWD                                #  LOAD MPAC,+1, PUSHING THE FORMER
041072,000589:    6574           30001                           DCA      0                                     #  CONTENTS DOWN.
041073,000590:    6575           52145                           DXCH     MPAC                                  
041074,000591:    6576           50156                           INDEX    PUSHLOC                               
041075,000592:    6577           52001                           DXCH     0                                     
041076,000593: 
041077,000594:    6600           50153                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER APPRO-
041078,000595:    6601           36300                           CAF      NO.WDS                                #  PRIATELY.
041079,000596:    6602           26156                           ADS      PUSHLOC                               
041080,000597: 
041081,000598:    6603           10153                           CCS      MODE                                  
041082,000599:    6604           16621                           TCF      ENDTPUSH                              
041083,000600: 
041084,000601:    6605           16617                           TCF      ENDDPUSH                              
041085,000602: 
041086,000603:    6606           54153                           TS       MODE                                  #  NOW DP.
041087,000604:    6607           54146        ENDVPUSH           TS       MPAC       +2                         
041088,000605:    6610           52150                           DXCH     MPAC       +3                         #  PUSH DOWN THE REST OF THE VECTOR HERE.
041089,000606:    6611           50156                           INDEX    PUSHLOC                               
041090,000607:    6612           51775                           DXCH     0          -4                         
041091,000608: 
041092,000609:    6613           52152                           DXCH     MPAC       +5                         
041093,000610:    6614           50156                           INDEX    PUSHLOC                               
041094,000611: 
041095,000612:    6615           51777                           DXCH     0          -2                         
041096,000613: 
041097,000614:    6616           16115                           TCF      DANZIG                                
041098,000615: 
041099,000616:    6617           54146        ENDDPUSH           TS       MPAC       +2                         #  SET MPAC +2 TO ZERO AND EXIT ON DP.
041100,000617:    6620           16115                           TCF      DANZIG                                
041101,000618: 
041102,000619:    6621           54153        ENDTPUSH           TS       MODE                                  
041103,000620:    6622           56146                           XCH      MPAC       +2                         #  ON TRIPLE, SET MPAC +2 TO ZERO, PUSHING
041104,000621:    6623           50156                 +2        INDEX    PUSHLOC                               #  DOWN THE OLD CONTENTS
041105,000622:    6624           53777                           TS       0          -1                         
041106,000623:    6625           16115                           TCF      DANZIG                                
041107,000624: 

Page 912

041109,000626:                                                                                                  #           PDVL - PUSHDOWN AND VECTOR LOAD.
041110,000627: 
041111,000628: 
041112,000629:    6626           00006        PDVL               EXTEND                                         #  RELOAD MPAC AND PUSH DOWN ITS CONTENTS.
041113,000630:    6627           50106                           INDEX    ADDRWD                                
041114,000631:    6630           30001                           DCA      0                                     
041115,000632:    6631           52145                           DXCH     MPAC                                  
041116,000633:    6632           50156                           INDEX    PUSHLOC                               
041117,000634:    6633           52001                           DXCH     0                                     
041118,000635: 
041119,000636:    6634           50153                           INDEX    MODE                                  #  ADVANCE THE PUSHDOWN POINTER.
041120,000637:    6635           36300                           CAF      NO.WDS                                
041121,000638:    6636           26156                           ADS      PUSHLOC                               
041122,000639: 
041123,000640:    6637           10153                           CCS      MODE                                  #  TEST PAST MODE.
041124,000641:    6640           16657                           TCF      TPDVL                                 
041125,000642:    6641           16560                           TCF      ENDVLOAD                              #  JUST LOAD LAST FOUR REGISTERS ON DP.
041126,000643: 
041127,000644:    6642           00006        VPDVL              EXTEND                                         #  PUSHDOWN AND RE-LOAD LAST TWO COMPONENTS
041128,000645:    6643           50106                           INDEX    ADDRWD                                
041129,000646:    6644           30003                           DCA      2                                     
041130,000647:    6645           52150                           DXCH     MPAC       +3                         
041131,000648:    6646           50156                           INDEX    PUSHLOC                               
041132,000649:    6647           51775                           DXCH     0          -4                         
041133,000650: 
041134,000651:    6650           00006                           EXTEND                                         
041135,000652: 
041136,000653:    6651           50106                           INDEX    ADDRWD                                
041137,000654:    6652           30005                           DCA      4                                     
041138,000655:    6653           52152                           DXCH     MPAC       +5                         
041139,000656:    6654           50156                           INDEX    PUSHLOC                               
041140,000657:    6655           51777                           DXCH     0          -2                         
041141,000658: 
041142,000659:    6656           16115                           TCF      DANZIG                                
041143,000660: 
041144,000661:    6657           00006        TPDVL              EXTEND                                         #  ON TP, WE MUST LOAD THE Y COMPONENT
041145,000662:    6660           50106                           INDEX    ADDRWD                                #  BEFORE STORING MPAC +2 INCASE THIS IS A
041146,000663: 
041147,000664:    6661           30003                           DCA      2                                     #  PUSHUP.
041148,000665:    6662           52150                           DXCH     MPAC       +3                         
041149,000666: 
041150,000667:    6663           30146                           CA       MPAC       +2                         
041151,000668:    6664           50156                           INDEX    PUSHLOC                               #  IN DP.
041152,000669:    6665           53777                           TS       0          -1                         
041153,000670:    6666           16564                           TCF      ENDVLOAD   +4                         
041154,000671: 
041155,000672:                                                                                                  #           SSP (STORE SINGLE PRECISION) IS EXECUTED HERE.
041156,000673: 
041157,000674:    6667           24154        SSP                INCR     LOC                                   #  PICK UP THE WORD FOLLOWING THE GIVEN
041158,000675:    6670           50154                           INDEX    LOC                                   #  ADDRESS AND STORE IT AT X.
041159,000676: 
041160,000677:    6671           30000                           CA       0                                     
041161,000678:    6672           50106        STORE1             INDEX    ADDRWD                                #  SOME INDEX AND MISCELLANEOUS OPS END
041162,000679:    6673           54000                           TS       0                                     #  HERE.

Page 913

041164,000681:    6674           16115                           TCF      DANZIG                                
041165,000682: 

Page 914

041167,000684:                                                                                                  #  SEQUENCE CHANGING AND SUBROUTINE CALLING OPTIONS.
041168,000685: 
041169,000686:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR SEQUENCING CHANGING, BRANCHING, AND CALLING SUBROUTINES:
041170,000687: 
041171,000688:                                                                                                  #           1.  GOTO               GO TO.
041172,000689:                                                                                                  #           2.  CALL               CALL SUBROUTINE SETTING QPRET.
041173,000690:                                                                                                  #           3.  CGOTO              COMPUTED GO TO.
041174,000691:                                                                                                  #           4.  CCALL              COMPUTED CALL.
041175,000692:                                                                                                  #           7.  BPL                BRANCH IF MPAC POSITIVE OR ZERO.
041176,000693:                                                                                                  #           8.  BZE                BRANCH IF MPAC ZERO.
041177,000694:                                                                                                  #           9.  BMN                BRANCH IF MPAC NEGATIVE NON-ZERO.
041178,000695: 
041179,000696:    6675           24154        CCALL              INCR     LOC                                   #  MAINTAIN LOC FOR QPRET COMPUTATION.
041180,000697:    6676           50154                           INDEX    LOC                                   
041181,000698: 
041182,000699:    6677           30000                           CAF      0                                     #  GET BASE ADDRESS OF CADR LIST.
041183,000700:    6700           50106                           INDEX    ADDRWD                                
041184,000701:    6701           60000                           AD       0                                     #  ADD INCREMENT.
041185,000702:    6702           54004                           TS       FBANK                                 #  SELECT DESIRED CADR.
041186,000703:    6703           75356                           MASK     LOW10                                 
041187,000704:    6704           50000                           INDEX    A                                     
041188,000705:    6705           32000                           CAF      10000                                 
041189,000706:    6706           54107                           TS       POLISH                                
041190,000707: 
041191,000708:    6707           30155        CALL               CA       BANKSET                               #  FOR ANY OF THE CALL OPTIONS, MAKE UP THE
041192,000709: 
041193,000710:    6710           76331                           MASK     BANKMASK                              #  ADDRESS OF THE NEXT OP-CODE PAIR/STORE
041194,000711:    6711           66331                           AD       BANKMASK                              #  CODE AND LEAVE IT IN QPRET.  NOTE THAT
041195,000712:    6712           60154                           AD       LOC                                   #  BANKMASK = -(2000 - 1).
041196,000713:    6713           50110                           INDEX    FIXLOC                                
041197,000714:    6714           54052                           TS       QPRET                                 
041198,000715: 
041199,000716:    6715           30107        GOTO               CA       POLISH                                #  BASIC BRANCHING SEQUENCE.
041200,000717:    6716           75367                 +1        MASK     HIGH4                                 
041201,000718:    6717           00006                           EXTEND                                         
041202,000719:    6720           16731                           BZF      GOTOERS                               #  SEE IF ADDRESS POINTS TO FIXED OR ERAS.
041203,000720:    6721           30155                 +4        CA       BANKSET                               #  SET EBANK PART OF BBANK. NEXT, SET UP
041204,000721:    6722           54006                           TS       BBANK                                 #  FBANK. THE COMBINATION IS PICKED UP &
041205,000722: 
041206,000723:    6723           30107                           CA       POLISH                                #  PUT INTO BANKSET AT INTPRET +2.
041207,000724:    6724           54004                           TS       FBANK                                 
041208,000725:    6725           75356                           MASK     LOW10                                 
041209,000726:    6726           67743                           AD       2K                                    
041210,000727:    6727           54154                           TS       LOC                                   
041211,000728:    6730           16105                           TCF      INTPRET    +2                         
041212,000729: 

Page 915

041214,000731:    6731  E3,1400                                  EBANK=   1400                                  #  SO YUL DOESN'T CUSS THE "CA 1400" BELOW.
041215,000732: 
041216,000733:    6731           30107        GOTOERS            CA       POLISH                                #  THE GIVEN ADDRESS IS IN ERASABLE - SEE
041217,000734:    6732           66305                           AD       -ENDVAC                               #  IF RELATIVE TO THE WORK AREA.
041218,000735:    6733           10000                           CCS      A                                     
041219,000736:    6734           30107                           CA       POLISH                                #  GENERAL ERASABLE.
041220,000737: 
041221,000738:    6735           16744                           TCF      GOTOGE                                
041222,000739: 
041223,000740:    6736           30110                           CA       FIXLOC                                #  WORK AREA.
041224,000741:    6737           60107                           AD       POLISH                                
041225,000742:    6740           50000                           INDEX    A                                     #  USE THE GIVEN ADDRESS AS THE ADDRESS OF
041226,000743:    6741           30000                           CA       0                                     #  THE BRANCH ADDRESS.
041227,000744:    6742           54107                           TS       POLISH                                
041228,000745:    6743           16716                           TCF      GOTO       +1                         #  ALLOWS ARBITRARY INDIRECTNESS LEVELS.
041229,000746: 
041230,000747:    6744           54003        GOTOGE             TS       EBANK                                 
041231,000748:    6745           74553                           MASK     LOW8                                  
041232,000749:    6746           50000                           INDEX    A                                     #  USE THE GIVEN ADDRESS AS THE ADDRESS OF
041233,000750: 
041234,000751:    6747           31400                           CA       1400                                  #  THE BRANCH ADDRESS.
041235,000752:    6750           54107                           TS       POLISH                                
041236,000753:    6751           16716                           TCF      GOTO       +1                         
041237,000754: 
041238,000755:    6752           50154        CGOTO              INDEX    LOC                                   #  COMPUTED GO TO. PICK UP ADDRESS OF CADR
041239,000756:    6753           30001                           CA       1                                     #  LIST.
041240,000757:    6754           50106                           INDEX    ADDRWD                                #  ADD MODIFIER.
041241,000758:    6755           60000                           AD       0                                     
041242,000759:    6756           54004                           TS       FBANK                                 #  SELECT GOTO ADDRESS.
041243,000760:    6757           75356                           MASK     LOW10                                 
041244,000761: 
041245,000762:    6760           50000                           INDEX    A                                     
041246,000763:    6761           32000                           CA       10000                                 
041247,000764:    6762           54107                           TS       POLISH                                
041248,000765:    6763           16716                           TCF      GOTO       +1                         #  WITH ADDRESS IN A.
041249,000766: 
041250,000767:    6764           30155        SWBRANCH           CA       BANKSET                               #  SWITCH INSTRUCTIONS WHICH ELECT TO
041251,000768:    6765           54004                           TS       FBANK                                 #  BRANCH COME HERE TO DO SO.
041252,000769:    6766           50154                           INDEX    LOC                                   
041253,000770:    6767           30001                           CA       1                                     
041254,000771:    6770           54107                           TS       POLISH                                
041255,000772:    6771           16716                           TCF      GOTO       +1                         
041256,000773: 

Page 916

041258,000775:                                                                                                  #           TRIPLE PRECISION BRANCHING ROUTINE. IF CALLING TC IS AT L, RETURN IS AS FOLLOWS:
041259,000776: 
041260,000777: 
041261,000778:                                                                                                  #           L+1  IF MPAC IS GREATER THAN ZERO.
041262,000779:                                                                                                  #           L+2  IF MPAC IS EQUAL TO +0 OR -0.
041263,000780:                                                                                                  #           L+3  IF MPAC IS LESS THAN ZERO.
041264,000781: 
041265,000782: 
041266,000783:    6772           10144        BRANCH             CCS      MPAC                                  
041267,000784:    6773           00002                           TC       Q                                     
041268,000785:    6774           16776                           TCF      +2                                    #  ON ZERO.
041269,000786:    6775           17010                           TCF      NEG                                   
041270,000787: 
041271,000788: 
041272,000789:    6776           10145                           CCS      MPAC       +1                         
041273,000790:    6777           00002                           TC       Q                                     
041274,000791:    7000           17002                           TCF      +2                                    
041275,000792:    7001           17010                           TCF      NEG                                   
041276,000793: 
041277,000794:    7002           10146                           CCS      MPAC       +2                         
041278,000795:    7003           00002                           TC       Q                                     
041279,000796:    7004           17006                           TCF      +2                                    
041280,000797:    7005           17010                           TCF      NEG                                   
041281,000798: 
041282,000799:    7006           50002        Q+1                INDEX    Q                                     
041283,000800: 
041284,000801:    7007           00001                           TC       1                                     
041285,000802: 
041286,000803:    7010           50002        NEG                INDEX    Q                                     #  IF FIRST NON-ZERO REGISTER WAS NEGATIVE.
041287,000804:    7011           00002                           TC       2                                     
041288,000805: 
041289,000806: 
041290,000807: 
041291,000808:    7012     7010               Q+2                =        NEG                                   
041292,000809: 
041293,000810:                                                                                                  #           ITRACE (3) REFERS TO "EXIT".
041294,000811: 
041295,000812:    7012           30155        EXIT               CA       BANKSET                               #  RESTORE USER'S BANK SETTING, AND LEAVE
041296,000813:    7013           54006                           TS       BBANK                                 #  INTERPRETIVE MODE.
041297,000814:    7014           50154                           INDEX    LOC                                   
041298,000815:    7015           10001                           TCF      1                                     
041299,000816: 

Page 917

041301,000818:                                                                                                  #  SECTION 3 - ADD/SUBTRACT PACKAGE.
041302,000819: 
041303,000820:                                                                                                  #           THE FOLLOWING OPERATIONS ARE PROVIDED FOR ADDING TO AND SUBTRACTING FROM THE MULTI-PURPOSE ACCUMULATOR
041304,000821:                                                                                                  #  MPAC:
041305,000822: 
041306,000823:                                                                                                  #           1.  DAD                DOUBLE PRECISION ADD.
041307,000824:                                                                                                  #           2.  DSU                DOUBLE PRECISION SUBTRACT.
041308,000825:                                                                                                  #           3.  BDSU               DOUBLE PRECISION SUBTRACT FROM.
041309,000826: 
041310,000827: 
041311,000828:                                                                                                  #           4.  TAD                TRIPLE PRECISION ADD.
041312,000829: 
041313,000830:                                                                                                  #           5.  VAD                VECTOR ADD.
041314,000831:                                                                                                  #           6.  VSU                VECTOR SUBTRACT.
041315,000832:                                                                                                  #           7.  BVSU               VECTOR SUBTRACT FROM.
041316,000833: 
041317,000834:                                                                                                  #  THE INTERPRETIVE OVERFLOW INDICATOR OVFIND IS SET NON-ZERO IF OVERFLOW OCCURS IN ANY OF THE ABOVE.
041318,000835: 
041319,000836: 
041320,000837: 
041321,000838:    7016           00006        VAD                EXTEND                                         
041322,000839:    7017           50106                           INDEX    ADDRWD                                
041323,000840:    7020           30003                           DCA      2                                     
041324,000841:    7021           20150                           DAS      MPAC       +3                         
041325,000842:    7022           00006                           EXTEND                                         #  CHECK OVERFLOW.
041326,000843:    7023           17025                           BZF      +2                                    
041327,000844:    7024           07072                           TC       OVERFLOW                              
041328,000845: 
041329,000846:    7025           00006                           EXTEND                                         
041330,000847:    7026           50106                           INDEX    ADDRWD                                
041331,000848:    7027           30005                           DCA      4                                     
041332,000849:    7030           20152                           DAS      MPAC       +5                         
041333,000850: 
041334,000851:    7031           00006                           EXTEND                                         
041335,000852:    7032           17034                           BZF      +2                                    
041336,000853:    7033           07072                           TC       OVERFLOW                              
041337,000854: 
041338,000855:    7034           00006        DAD                EXTEND                                         
041339,000856:    7035           50106                           INDEX    ADDRWD                                
041340,000857:    7036           30001                           DCA      0                                     
041341,000858:    7037           20145        ENDVXV             DAS      MPAC                                  #  VXV FINISHES HERE.
041342,000859:    7040           00006                           EXTEND                                         
041343,000860:    7041           16115                           BZF      DANZIG                                
041344,000861: 
041345,000862:    7042           07072                           TC       OVERFLOW                              
041346,000863:    7043           16115                           TCF      DANZIG                                
041347,000864: 

Page 918

041349,000866:    7044           00006        VSU                EXTEND                                         
041350,000867: 
041351,000868:    7045           50106                           INDEX    ADDRWD                                
041352,000869:    7046           40003                           DCS      2                                     
041353,000870:    7047           20150                           DAS      MPAC       +3                         
041354,000871:    7050           00006                           EXTEND                                         
041355,000872:    7051           17053                           BZF      +2                                    
041356,000873:    7052           07072                           TC       OVERFLOW                              
041357,000874: 
041358,000875:    7053           00006                           EXTEND                                         
041359,000876:    7054           50106                           INDEX    ADDRWD                                
041360,000877:    7055           40005                           DCS      4                                     
041361,000878:    7056           20152                           DAS      MPAC       +5                         
041362,000879:    7057           00006                           EXTEND                                         
041363,000880: 
041364,000881:    7060           17062                           BZF      +2                                    
041365,000882:    7061           07072                           TC       OVERFLOW                              
041366,000883: 
041367,000884:    7062           00006        DSU                EXTEND                                         
041368,000885:    7063           50106                           INDEX    ADDRWD                                
041369,000886:    7064           40001                           DCS      0                                     
041370,000887:    7065           20145                           DAS      MPAC                                  
041371,000888:    7066           00006                           EXTEND                                         
041372,000889:    7067           16115                           BZF      DANZIG                                
041373,000890:    7070           07072                           TC       OVERFLOW                              
041374,000891: 
041375,000892:    7071           16115                           TCF      DANZIG                                
041376,000893: 
041377,000894:    7072           37755        OVERFLOW           CAF      ONE                                   #  SUBROUTINE TO TURN OVFIND ON.
041378,000895:    7073           17215                           TCF      SETOVF2                               
041379,000896: 

Page 919

041381,000898:    7074           00006        BVSU               EXTEND                                         
041382,000899:    7075           50106                           INDEX    ADDRWD                                
041383,000900:    7076           30003                           DCA      2                                     
041384,000901:    7077           52150                           DXCH     MPAC       +3                         
041385,000902:    7100           00006                           EXTEND                                         
041386,000903:    7101           40001                           DCOM                                           
041387,000904: 
041388,000905:    7102           20150                           DAS      MPAC       +3                         
041389,000906:    7103           00006                           EXTEND                                         
041390,000907:    7104           17106                           BZF      +2                                    
041391,000908:    7105           07072                           TC       OVERFLOW                              
041392,000909: 
041393,000910:    7106           00006                           EXTEND                                         
041394,000911:    7107           50106                           INDEX    ADDRWD                                
041395,000912:    7110           30005                           DCA      4                                     
041396,000913:    7111           52152                           DXCH     MPAC       +5                         
041397,000914:    7112           00006                           EXTEND                                         
041398,000915:    7113           40001                           DCOM                                           
041399,000916:    7114           20152                           DAS      MPAC       +5                         
041400,000917: 
041401,000918:    7115           00006                           EXTEND                                         
041402,000919:    7116           17120                           BZF      +2                                    
041403,000920:    7117           07072                           TC       OVERFLOW                              
041404,000921: 
041405,000922:    7120           00006        BDSU               EXTEND                                         
041406,000923:    7121           50106                           INDEX    ADDRWD                                
041407,000924:    7122           30001                           DCA      0                                     
041408,000925:    7123           52145                           DXCH     MPAC                                  
041409,000926:    7124           00006                           EXTEND                                         
041410,000927:    7125           40001                           DCOM                                           
041411,000928: 
041412,000929:    7126           20145                           DAS      MPAC                                  
041413,000930:    7127           00006                           EXTEND                                         
041414,000931:    7130           16115                           BZF      DANZIG                                
041415,000932:    7131           07072                           TC       OVERFLOW                              
041416,000933:    7132           16115                           TCF      DANZIG                                
041417,000934: 

Page 920

041419,000936:                                                                                                  #           TRIPLE PRECISION ADD ROUTINE.
041420,000937: 
041421,000938: 
041422,000939:    7133           00006        TAD                EXTEND                                         
041423,000940:    7134           50106                           INDEX    ADDRWD                                
041424,000941:    7135           30002                           DCA      1                                     #  ADD MINOR PARTS FIRST.
041425,000942:    7136           20146                           DAS      MPAC       +1                         
041426,000943:    7137           50106                           INDEX    ADDRWD                                
041427,000944:    7140           60000                           AD       0                                     
041428,000945:    7141           60144                           AD       MPAC                                  
041429,000946:    7142           54144                           TS       MPAC                                  
041430,000947:    7143           16115                           TCF      DANZIG                                
041431,000948: 
041432,000949:    7144           54111        SETOVF             TS       OVFIND                                #  SET OVFIND IF SUCH OCCURS.
041433,000950:    7145           16115                           TCF      DANZIG                                
041434,000951: 

Page 921

041436,000953:                                                                                                  #  ARITHMETIC SUBROUTINES REQUIRED IN FIXED-FIXED.
041437,000954: 
041438,000955:                                                                                                  #           1.  DMPSUB     DOUBLE PRECISION MULTIPLY. MULTIPLY THE CONTENTS OF MPAC,+1 BY THE DP WORD WHOSE ADDRESS
041439,000956:                                                                                                  #                          IS IN ADDRWD AND LEAVE A TRIPLE PRECISION RESULT IN MPAC.
041440,000957:                                                                                                  #           2.  ROUNDSUB   ROUND THE TRIPLE PRECISON CONTENTS OF MPAC TO DOUBLE PRECISION.
041441,000958:                                                                                                  #           3.  DOTSUB     TAKE THE DOT PRODUCT OF THE VECTOR IN MPAC AND THE VECTOR WHOSE ADDRESS IS IN ADDRWD
041442,000959:                                                                                                  #                          AND LEAVE THE TRIPLE PRECISION RESULT IN MPAC.
041443,000960:                                                                                                  #           4.  POLY       USING THE CONTENTS OF MPAC AS A DP ARGUMENT, EVALUATE THE POLYNOMIAL WHOSE DEGREE AND
041444,000961: 
041445,000962:                                                                                                  #                          COEFFICIENTS IMMEDIATELY FOLLOW THE TC POLY INSTRUCTION (SEE ROUTINE FOR DETAILS.)
041446,000963: 
041447,000964: 
041448,000965: 
041449,000966:    7146           50002        DMP                INDEX    Q                                     #  BASIC SUBROUTINE FOR USE BY PINBALL, ETC
041450,000967:    7147           30000                           CAF      0                                     #  ADRES OF ARGUMENT FOLLOWS  TC DMP  .
041451,000968:    7150           24002                           INCR     Q                                     
041452,000969:    7151           54106                 -1        TS       ADDRWD                                #  (PROLOGUE FOR SETTING ADDRWD.)
041453,000970: 
041454,000971:    7152           50106        DMPSUB             INDEX    ADDRWD                                #  GET MINOR PART OF OPERAND AT C(ADDRWD).
041455,000972: 
041456,000973:    7153           30001                           CA       1                                     
041457,000974:    7154           54146                           TS       MPAC       +2                         #  THIS WORKS FOR SQUARING MPAC AS WELL.
041458,000975:    7155           37761                           CAF      ZERO                                  #  SET MPAC +1 TO ZERO SO WE CAN ACCUMULATE
041459,000976:    7156           56145                           XCH      MPAC       +1                         #  THE PARTIAL PRODUCTS WITH DAS
041460,000977:    7157           54125                           TS       MPTEMP                                #  INSTRUCTIONS.
041461,000978:    7160           00006                           EXTEND                                         
041462,000979:    7161           70146                           MP       MPAC       +2                         #  MINOR OF MPAC X MINOR OF C(ADDRWD).
041463,000980: 
041464,000981:    7162           56146                           XCH      MPAC       +2                         #  DISCARD MINOR PART OF ABOVE RESULT AND
041465,000982:    7163           00006                           EXTEND                                         #  FORM MAJOR OF MPAC X MINOR OF C(ADDRWD).
041466,000983:    7164           70144                           MP       MPAC                                  
041467,000984:    7165           20146                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
041468,000985: 
041469,000986:    7166           50106                           INDEX    ADDRWD                                #  GET MAJOR PART OF ARGUMENT AT C(ADDRWD).
041470,000987:    7167           30000                           CA       0                                     
041471,000988:    7170           56125                           XCH      MPTEMP                                #  SAVE AND BRING OUT MINOR OF MPAC.
041472,000989:    7171           00006                           EXTEND                                         
041473,000990:    7172           70125                           MP       MPTEMP                                #  MAJOR OF C(ADDRWD) X MINOR OF MPAC.
041474,000991:    7173           20146                           DAS      MPAC       +1                         #  ACCUMULATE, SETTING A TO NET OVERFLOW.
041475,000992: 
041476,000993:    7174           56144                           XCH      MPAC                                  #  SETTING MPAC TO 0 OR +-1.
041477,000994:    7175           00006                           EXTEND                                         
041478,000995: 
041479,000996:    7176           70125                           MP       MPTEMP                                #  MAJOR OF MPAC X MAJOR OF C(ADDRWD).
041480,000997:    7177           20145                           DAS      MPAC                                  #  GUARANTEED NO OVERFLOW.
041481,000998:    7200           00002                           TC       Q                                     #  49 MCT = .573 MS. INCLUDING RETURN.
041482,000999: 

Page 922

041484,001001:                                                                                                  #           ROUND MPAC TO DOUBLE PRECISION, SETTING OVFIND ON THE RARE EVENT OF OVERFLOW.
041485,001002: 
041486,001003:    7201           37761        ROUNDSUB           CAF      ZERO                                  #  SET MPAC +2 = 0 FOR SCALARS AND CHANGE
041487,001004:    7202           54153                 +1        TS       MODE                                  #  MODE TO DP.
041488,001005: 
041489,001006:    7203           56146        VROUND             XCH      MPAC       +2                         #  BUT WE NEEDNT TAKE THE TIME FOR VECTORS.
041490,001007:    7204           60000                           DOUBLE                                         
041491,001008:    7205           54001                           TS       L                                     
041492,001009:    7206           00002                           TC       Q                                     
041493,001010: 
041494,001011:    7207           60145                           AD       MPAC       +1                         #  ADD ROUNDING BIT IF MPAC +2 WAS GREATER
041495,001012:    7210           54145                           TS       MPAC       +1                         #  THAN .5 IN MAGNITUDE.
041496,001013:    7211           00002                           TC       Q                                     
041497,001014: 
041498,001015: 
041499,001016:    7212           60144                           AD       MPAC                                  #  PROPAGATE INTERFLOW.
041500,001017:    7213           54144                           TS       MPAC                                  
041501,001018:    7214           00002                           TC       Q                                     
041502,001019: 
041503,001020:    7215           54111        SETOVF2            TS       OVFIND                                #  (RARE).
041504,001021:    7216           00002                           TC       Q                                     
041505,001022: 

Page 923

041507,001024:                                                                                                  #           THE DOT PRODUCT SUBROUTINE USUALLY FORMS THE DOT PRODUCT OF THE VECTOR IN MPAC WITH A STANDARD SIX
041508,001025:                                                                                                  #  REGISTER VECTOR WHOSE ADDRESS IS IN ADDRWD. IN THIS CASE C(DOTINC) ARE SET TO 2. VXM, HOWEVER, SETS C(DOTINC) TO
041509,001026:                                                                                                  #  6 SO THAT DOTSUB DOTS MPAC WITH A COLUMN VECTOR OF THE MATRIX IN QUESTION IN THIS CASE.
041510,001027: 
041511,001028: 
041512,001029: 
041513,001030:    7217           37754        PREDOT             CAF      TWO                                   #  PROLOGUE TO SET DOTINC TO 2.
041514,001031:    7220           54126                           TS       DOTINC                                
041515,001032: 
041516,001033:    7221           00006        DOTSUB             EXTEND                                         
041517,001034:    7222           22127                           QXCH     DOTRET                                #  SAVE RETURN.
041518,001035:    7223           07152                           TC       DMPSUB                                #  DOT X COMPONENTS.
041519,001036:    7224           52150                           DXCH     MPAC       +3                         #  POSITION Y COMPONENT OF MPAC FOR
041520,001037:    7225           52145                           DXCH     MPAC                                  #  MULTIPLICATION WHILE SAVING RESULT IN
041521,001038:    7226           52121                           DXCH     BUF                                   #  THREE WORD BUFFER, BUF.
041522,001039:    7227           30146                           CA       MPAC       +2                         
041523,001040:    7230           54122                           TS       BUF        +2                         
041524,001041: 
041525,001042:    7231           30126                           CA       DOTINC                                #  ADVANCE ADDRWD TO Y COMPONENT OF
041526,001043: 
041527,001044:    7232           26106                           ADS      ADDRWD                                #  OTHER ARGUMENT.
041528,001045:    7233           07152                           TC       DMPSUB                                
041529,001046:    7234           52146                           DXCH     MPAC       +1                         #  ACCUMULATE PARTIAL PRODUCTS.
041530,001047:    7235           20122                           DAS      BUF        +1                         
041531,001048:    7236           60144                           AD       MPAC                                  
041532,001049:    7237           60120                           AD       BUF                                   
041533,001050:    7240           54120                           TS       BUF                                   
041534,001051:    7241           17243                           TCF      +2                                    
041535,001052:    7242           54111                           TS       OVFIND                                #  IF OVERFLOW OCCURS.
041536,001053: 
041537,001054:    7243           52152                           DXCH     MPAC       +5                         #  MULTIPLY Z COMPONENTS.
041538,001055:    7244           52145                           DXCH     MPAC                                  
041539,001056:    7245           30126                           CA       DOTINC                                
041540,001057:    7246           26106                           ADS      ADDRWD                                
041541,001058:    7247           07152                           TC       DMPSUB                                
041542,001059:    7250           52122        ENDDOT             DXCH     BUF        +1                         #  LEAVE FINAL ACCUMULATION IN MPAC.
041543,001060:    7251           20146                           DAS      MPAC       +1                         
041544,001061:    7252           60144                           AD       MPAC                                  
041545,001062:    7253           60120                           AD       BUF                                   
041546,001063:    7254           54144                           TS       MPAC                                  
041547,001064:    7255           00127                           TC       DOTRET                                
041548,001065: 
041549,001066:    7256           54111                           TS       OVFIND                                #  ON OVERFLOW HERE.
041550,001067: 
041551,001068:    7257           00127                           TC       DOTRET                                
041552,001069: 

Page 924

041554,001071:                                                                                                  #  DOUBLE PRECISION POLYNOMIAL EVALUATOR
041555,001072: 
041556,001073: 
041557,001074:                                                                                                  #                                     N        N-1
041558,001075:                                                                                                  #           THIS ROUTINE EVALUATES A X  + A   X    + ... + A X + A  LEAVING THE DP RESULT IN MPAC ON EXIT.
041559,001076:                                                                                                  #                                   N      N-1              1     0
041560,001077: 
041561,001078:                                                                                                  #  THE ROUTINE HAS TWO ENTRIES
041562,001079: 
041563,001080:                                                                                                  #           1. ENTRY THRU POWRSERS. THE COEFFICIENTS MAY BE EITHER IN FIXED OR ERASABLE, THE CALL IS BY
041564,001081:                                                                                                  #              TC POWRSERS, AND THE RETURN IS TO LOC(TC POWRSERS)+1. THE ENTERING DATA MUST BE AS FOLLOWS
041565,001082: 
041566,001083:                                                                                                  #                                          A        SP     LOC-3           ADDRESS FOR REFERENCING COEF TABLE
041567,001084: 
041568,001085:                                                                                                  #                                          L        SP     N-1             N IS THE DEGREE OF THE POWER SERIES
041569,001086:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
041570,001087: 
041571,001088:                                                                                                  #                                          LOC-2N   DP     A(0)
041572,001089:                                                                                                  #                                                   ...
041573,001090:                                                                                                  #                                          LOC      DP     A(N)
041574,001091: 
041575,001092:                                                                                                  #           2. ENTRY THRU POLY. THE CALL TO POLY AND THE ENTERING DATA MUST BE AS FOLLOWS
041576,001093: 
041577,001094:                                                                                                  #                                          MPAC     DP     X               ARGUMENT
041578,001095: 
041579,001096:                                                                                                  #                                          LOC      TC     POLY
041580,001097: 
041581,001098:                                                                                                  #                                          LOC+1    SP     N-1
041582,001099:                                                                                                  #                                          LOC+2    DP     A(0)
041583,001100:                                                                                                  #                                                   ...
041584,001101:                                                                                                  #                                          LOC+2N+2 DP     A(N)            RETURN IS TO LOC+2N+4
041585,001102: 
041586,001103:    7260           00006        POWRSERS           EXTEND                                         
041587,001104:    7261           22131                           QXCH     POLYRET                               #  RETURN ADDRESS
041588,001105:    7262           54107                           TS       POLISH                                #  POWER SERIES ADDRESS
041589,001106:    7263           22130                           LXCH     POLYCNT                               #  N-1 TO COUNTER
041590,001107:    7264           17275                           TCF      POLYCOM                               #  SKIP SET UP BY POLY
041591,001108: 
041592,001109:    7265           50002        POLY               INDEX    Q                                     
041593,001110:    7266           30000                           CAF      0                                     
041594,001111:    7267           54130                           TS       POLYCNT                               #  N-1 TO COUNTER
041595,001112:    7270           60000                           DOUBLE                                         
041596,001113:    7271           60002                           AD       Q                                     
041597,001114:    7272           54107                           TS       POLISH                                #  L(A(N))-3 TO POLISH
041598,001115:    7273           67760                           AD       FIVE                                  
041599,001116:    7274           54131                           TS       POLYRET                               #  STORE RETURN ADDRESS
041600,001117: 
041601,001118:    7275           35365        POLYCOM            CAF      LVBUF                                 #  INCOMING X WILL BE MOVED TO VBUF, SO
041602,001119:    7276           54106                           TS       ADDRWD                                #  SET ADDRWD SO DMPSUB WILL MPY BY VBUF.
041603,001120: 
041604,001121: 
041605,001122:    7277           00006                           EXTEND                                         
041606,001123:    7300           50107                           INDEX    POLISH                                
041607,001124:    7301           30004                           DCA      3                                     
041608,001125: 

Page 925

041610,001127:    7302           52145                           DXCH     MPAC                                  #  LOAD A(N) INTO MPAC,
041611,001128:    7303           52113                           DXCH     VBUF                                  #  SAVING X IN VBUF
041612,001129:    7304           17310                           TCF      POLY2                                 
041613,001130: 
041614,001131:    7305           54130        POLYLOOP           TS       POLYCNT                               #  SAVE DECREMENTED LOOP COUNTER
041615,001132:    7306           47754                           CS       TWO                                   
041616,001133:    7307           26107                           ADS      POLISH                                #  REGRESS COEFFICIENT POINTER
041617,001134: 
041618,001135: 
041619,001136:    7310           07152        POLY2              TC       DMPSUB                                #  MULTIPLY BY X
041620,001137:    7311           00006                           EXTEND                                         
041621,001138:    7312           50107                           INDEX    POLISH                                
041622,001139:    7313           30002                           DCA      1                                     #  ADD IN NEXT COEFFICIENT
041623,001140:    7314           20145                           DAS      MPAC                                  #  USERS RESPONSIBILITY TO ASSURE NO OVFLOW
041624,001141: 
041625,001142:    7315           10130                           CCS      POLYCNT                               
041626,001143:    7316           17305                           TCF      POLYLOOP                              
041627,001144:    7317           00131                           TC       POLYRET                               #  RETURN CALLER
041628,001145: 

Page 926

041630,001147:                                                                                                  #           MISCELLANEOUS MULTI-PRECISION ROUTINES REQUIRED IN FIXED-FIXED BUT NOT USED BY THE INTERPRETER.
041631,001148: 
041632,001149:    7320           00006        TPAGREE            EXTEND                                         #  FORCE SIGN AGREEMENT AMONG THE TRIPLE-
041633,001150:    7321           22120                           QXCH     BUF                                   #  PRECISION CONTENTS OF MPAC, RETURNING
041634,001151:    7322           06772                           TC       BRANCH                                #  WITH THE SIGNUM OF THE INPUT IN A.
041635,001152:    7323           17327                           TCF      ARG+                                  
041636,001153:    7324           17347                           TCF      ARGZERO                               
041637,001154: 
041638,001155:    7325           47735                           CS       POSMAX                                #  IF NEGATIVE.
041639,001156:    7326           17330                           TCF      +2                                    
041640,001157: 
041641,001158:    7327           37735        ARG+               CAF      POSMAX                                
041642,001159:    7330           54121                 +2        TS       BUF        +1                         
041643,001160:    7331           00006                           EXTEND                                         
041644,001161: 
041645,001162:    7332           24000                           AUG      A                                     #  FORMS +-1.0.
041646,001163:    7333           60146                           AD       MPAC       +2                         
041647,001164:    7334           54146                           TS       MPAC       +2                         
041648,001165:    7335           37761                           CAF      ZERO                                  
041649,001166:    7336           60121                           AD       BUF        +1                         
041650,001167:    7337           60145                           AD       MPAC       +1                         
041651,001168:    7340           54145                           TS       MPAC       +1                         
041652,001169:    7341           37761                           CAF      ZERO                                  
041653,001170:    7342           60121                           AD       BUF        +1                         
041654,001171:    7343           60144                           AD       MPAC                                  
041655,001172: 
041656,001173:    7344           54144        ARGZERO2           TS       MPAC                                  #  ALWAYS SKIPPING UNLESS ARGZERO.
041657,001174:    7345           54145                           TS       MPAC       +1                         
041658,001175:    7346           00120                           TC       BUF                                   #  RETURN.
041659,001176: 
041660,001177:    7347           54146        ARGZERO            TS       MPAC       +2                         #  SET ALL THREE MPAC REGISTERS TO ZERO.
041661,001178:    7350           17344                           TCF      ARGZERO2                              
041662,001179: 
041663,001180:                                                                                                  #           SHORTMP MULTIPLIES THE TP CONTENTS OF MPAC BY THE SINGLE PRECISION NUMBER ARRIVING IN A.
041664,001181: 
041665,001182:    7351           54125        SHORTMP            TS       MPTEMP                                
041666,001183:    7352           00006                           EXTEND                                         
041667,001184:    7353           70146                           MP       MPAC       +2                         
041668,001185: 
041669,001186:    7354           54146                           TS       MPAC       +2                         
041670,001187:    7355           37761                           CAF      ZERO                                  #  SO SUBSEQUENT DAS WILL WORK.
041671,001188:    7356           56145                           XCH      MPAC       +1                         
041672,001189:    7357           00006                           EXTEND                                         
041673,001190:    7360           70125                           MP       MPTEMP                                
041674,001191:    7361           20146                           DAS      MPAC       +1                         
041675,001192:    7362           56144                           XCH      MPAC                                  #  SETTING MPAC TO 0.
041676,001193:    7363           00006                           EXTEND                                         
041677,001194:    7364           70125                           MP       MPTEMP                                
041678,001195:    7365           20145                           DAS      MPAC                                  
041679,001196: 
041680,001197:    7366           00002                           TC       Q                                     
041681,001198: 

Page 927

041683,001200:                                                                                                  #         DMPNSUB MULTIPLIES THE DP FRACTION ARRIVING IN MPAC BY THE SP
041684,001201:                                                                                                  #  INTEGER ARRIVING IN A.  THE DP PRODUCT DEPARTS BOTH IN MPAC AND IN
041685,001202:                                                                                                  #  A AND L.  NOTE THAT DMPNSUB NORMALLY INCREASES THE MAGNITUDE OF THE
041686,001203:                                                                                                  #  CONTENTS OF MPAC.  THE CUSTOMER MUST INSURE THAT B(A) X B(MPAC,MPAC+1)
041687,001204:                                                                                                  #  AND B(A) X B(MPAC) ARE LESS THAN 1 IN MAGNITUDE, WHERE B, AS IS OBVIOUS,
041688,001205:                                                                                                  #  INDICATES THE ARRIVING CONTENTS.
041689,001206: 
041690,001207: 
041691,001208:    7367           54125        DMPNSUB            TS       DMPNTEMP                              
041692,001209:    7370           00006                           EXTEND                                         
041693,001210:    7371           70145                           MP       MPAC       +1                         
041694,001211:    7372           52145                           DXCH     MPAC                                  #  LOW PRODUCT TO MPAC, HIGH FACTOR TO A
041695,001212:    7373           00006                           EXTEND                                         
041696,001213:    7374           70125                           MP       DMPNTEMP                              
041697,001214:    7375           30001                           CA       L                                     
041698,001215:    7376           26144                           ADS      MPAC                                  #  COMPLETING THE PRODUCT IN MPAC
041699,001216:    7377           00006                           EXTEND                                         
041700,001217:    7400           30145                           DCA      MPAC                                  #  BRINGING THE PRODUCT INTO A AND L
041701,001218:    7401           00002                           TC       Q                                     
041702,001219: 

Page 928

041704,001221:                                                                                                  #  MISCELLANEOUS VECTOR OPERATIONS. INCLUDED HERE ARE THE FOLLOWING:
041705,001222: 
041706,001223: 
041707,001224:                                                                                                  #           1.  DOT                DP VECTOR DOT PRODUCT.
041708,001225:                                                                                                  #           2.  VXV                DP VECTOR CROSS PRODUCT.
041709,001226:                                                                                                  #           3.  VXSC               DP VECTOR TIMES SCALAR.
041710,001227:                                                                                                  #           4.  V/SC               DP VECTOR DIVIDED BY SCALAR.
041711,001228:                                                                                                  #           5.  VPROJ              DP VECTOR PROJECTION.  ( (MPAC.X)MPAC ).
041712,001229:                                                                                                  #           6.  VXM                DP VECTOR POST-MULTIPLIED BY MATRIX.
041713,001230:                                                                                                  #           7.  MXV                DP VECTOR PRE-MULTIPLIED BY MATRIX.
041714,001231: 
041715,001232: 
041716,001233: 
041717,001234:    7402           07217        DOT                TC       PREDOT                                #  DO THE DOT PRODUCT AND EXIT, CHANGING
041718,001235:    7403           37761                           CAF      ZERO                                  #  THE MODE TO DP SCALAR.
041719,001236:    7404           16114                           TCF      NEWMODE                               
041720,001237: 
041721,001238: 
041722,001239: 
041723,001240:    7405           37754        MXV                CAF      TWO                                   #  SET UP MATINC AND DOTINC FOR ROW
041724,001241:    7406           54130                           TS       MATINC                                #  VECTORS.
041725,001242:    7407           17413                           TCF      VXM/MXV                               #  GO TO COMMON PORTION.
041726,001243: 
041727,001244:    7410           44557        VXM                CS       TEN                                   #  SET MATINC AND DOTINC TO REFER TO MATRIX
041728,001245:    7411           54130                           TS       MATINC                                #  AS THREE COLUMN VECTORS.
041729,001246:    7412           36276                           CAF      SIX                                   
041730,001247: 

Page 929

041732,001249:                                                                                                  #           COMMON PORTION OF MXV AND VXM.
041733,001250: 
041734,001251:    7413           54126        VXM/MXV            TS       DOTINC                                
041735,001252:                                                                                                  #           ITRACE (2) REFERS TO "VXM/MXV".
041736,001253:    7414           07604                           TC       MPACVBUF                              #  SAVE VECTOR IN MPAC FOR FURTHER USE.
041737,001254: 
041738,001255:    7415           07221                           TC       DOTSUB                                #  GO DOT TO GET X COMPONENT OF ANSWER.
041739,001256:    7416           00006                           EXTEND                                         
041740,001257: 
041741,001258:    7417           30113                           DCA      VBUF                                  #  MOVE MPAC VECTOR BACK INTO MPAC, SAVING
041742,001259:    7420           52145                           DXCH     MPAC                                  #  NEW X COMPONENT IN BUF2.
041743,001260:    7421           52124                           DXCH     BUF2                                  
041744,001261:    7422           00006                           EXTEND                                         
041745,001262:    7423           30115                           DCA      VBUF       +2                         
041746,001263:    7424           52150                           DXCH     MPAC       +3                         
041747,001264:    7425           00006                           EXTEND                                         
041748,001265:    7426           30117                           DCA      VBUF       +4                         
041749,001266:    7427           52152                           DXCH     MPAC       +5                         
041750,001267:    7430           30130                           CA       MATINC                                #  INITIALIZE ADDRWD FOR NEXT DOT PRODUCT.
041751,001268: 
041752,001269:    7431           26106                           ADS      ADDRWD                                #  FORMS BASE ADDRESS OF NEXT COLUMN(ROW).
041753,001270: 
041754,001271:    7432           07221                           TC       DOTSUB                                
041755,001272:    7433           52113                           DXCH     VBUF                                  #  MOVE GIVEN VECTOR BACK TO MPAC, SAVING Y
041756,001273:    7434           52145                           DXCH     MPAC                                  #  COMPONENT OF ANSWER IN VBUF +2.
041757,001274:    7435           52115                           DXCH     VBUF       +2                         
041758,001275:    7436           52150                           DXCH     MPAC       +3                         
041759,001276:    7437           52117                           DXCH     VBUF       +4                         
041760,001277:    7440           52152                           DXCH     MPAC       +5                         
041761,001278:    7441           30130                           CA       MATINC                                #  FORM ADDRESS OF LAST COLUMN OR ROW.
041762,001279:    7442           26106                           ADS      ADDRWD                                
041763,001280: 
041764,001281:    7443           07221                           TC       DOTSUB                                
041765,001282:    7444           52124                           DXCH     BUF2                                  #  ANSWER NOW COMPLETE. PUT COMPONENTS INTO
041766,001283:    7445           52145                           DXCH     MPAC                                  #  PROPER MPAC REGISTERS.
041767,001284:    7446           52152                           DXCH     MPAC       +5                         
041768,001285:    7447           52115                           DXCH     VBUF       +2                         
041769,001286:    7450           52150                           DXCH     MPAC       +3                         
041770,001287:    7451           16115                           TCF      DANZIG                                #  EXIT.
041771,001288: 

Page 930

041773,001290:                                                                                                  #           VXSC - VECTOR TIMES SCALAR.
041774,001291: 
041775,001292:    7452           10153        VXSC               CCS      MODE                                  #  TEST PRESENT MODE.
041776,001293:    7453           17501                           TCF      DVXSC                                 #  SEPARATE ROUTINE WHEN SCALAR IS IN MPAC.
041777,001294:    7454           17501                           TCF      DVXSC                                 
041778,001295: 
041779,001296:    7455           07152        VVXSC              TC       DMPSUB                                #  COMPUTE X COMPONENT
041780,001297:    7456           07203                           TC       VROUND                                #  AND ROUND IT.
041781,001298:    7457           52150                           DXCH     MPAC       +3                         #  PUT Y COMPONENT INTO MPAC SAVING MPAC IN
041782,001299:    7460           52145                           DXCH     MPAC                                  #  MPAC +3.
041783,001300:    7461           52150                           DXCH     MPAC       +3                         
041784,001301: 
041785,001302:    7462           07152                           TC       DMPSUB                                #  DO SAME FOR Y AND Z COMPONENTS.
041786,001303:    7463           07203                           TC       VROUND                                
041787,001304: 
041788,001305:    7464           52152                           DXCH     MPAC       +5                         
041789,001306:    7465           52145                           DXCH     MPAC                                  
041790,001307:    7466           52152                           DXCH     MPAC       +5                         
041791,001308: 
041792,001309:    7467           07152                           TC       DMPSUB                                
041793,001310:    7470           07203                           TC       VROUND                                
041794,001311:    7471           52145        VROTATEX           DXCH     MPAC                                  #  EXIT USED TO RESTORE MPAC AFTER THIS
041795,001312:    7472           52152                           DXCH     MPAC       +5                         #  TYPE OF ROTATION. CALLED BY VECTOR SHIFT
041796,001313:    7473           52150                           DXCH     MPAC       +3                         #  RIGHT, V/SC, ETC.
041797,001314:    7474           52145                           DXCH     MPAC                                  
041798,001315: 
041799,001316:    7475           16115                           TCF      DANZIG                                
041800,001317: 

Page 931

041802,001319:                                                                                                  #           DP VECTOR PROJECTION ROUTINE.
041803,001320: 
041804,001321:    7476           07217        VPROJ              TC       PREDOT                                #  (MPAC.X)MPAC IS COMPUTED AND LEFT IN
041805,001322:    7477           47753                           CS       FOUR                                  #  MPAC. DO DOT AND FALL INTO DVXSC.
041806,001323:    7500           26106                           ADS      ADDRWD                                
041807,001324: 
041808,001325:                                                                                                  #           VXSC WHEN SCALAR ARRIVES IN MPAC AND VECTOR IS AT X.
041809,001326: 
041810,001327:    7501           00006        DVXSC              EXTEND                                         #  SAVE SCALAR IN MPAC +3 AND GET X
041811,001328:    7502           30145                           DCA      MPAC                                  #  COMPONENT OF ANSWER.
041812,001329:    7503           52150                           DXCH     MPAC       +3                         
041813,001330:    7504           07152                           TC       DMPSUB                                
041814,001331:    7505           07203                           TC       VROUND                                
041815,001332: 
041816,001333:    7506           37754                           CAF      TWO                                   #  ADVANCE ADDRWD TO Y COMPONENT OF X.
041817,001334:    7507           26106                           ADS      ADDRWD                                
041818,001335:    7510           00006                           EXTEND                                         
041819,001336:    7511           30150                           DCA      MPAC       +3                         #  PUT SCALAR BACK INTO MPAC AND SAVE
041820,001337:    7512           52145                           DXCH     MPAC                                  #  X RESULT IN MPAC +5.
041821,001338: 
041822,001339:    7513           52152                           DXCH     MPAC       +5                         
041823,001340:    7514           07152                           TC       DMPSUB                                
041824,001341:    7515           07203                           TC       VROUND                                
041825,001342: 
041826,001343:    7516           37754                           CAF      TWO                                   
041827,001344:    7517           26106                           ADS      ADDRWD                                #  TO Z COMPONENT.
041828,001345:    7520           52150                           DXCH     MPAC       +3                         #  BRING SCALAR BACK, PUTTING Y RESULT IN
041829,001346:    7521           52145                           DXCH     MPAC                                  #  THE PROPER PLACE.
041830,001347:    7522           52150                           DXCH     MPAC       +3                         
041831,001348:    7523           07152                           TC       DMPSUB                                
041832,001349: 
041833,001350:    7524           07203                           TC       VROUND                                
041834,001351: 
041835,001352:    7525           52145                           DXCH     MPAC                                  #  PUT Z COMPONENT IN PROPER PLACE, ALSO
041836,001353:    7526           52152                           DXCH     MPAC       +5                         #  POSITIONING X.
041837,001354:    7527           52145                           DXCH     MPAC                                  
041838,001355: 
041839,001356:    7530           47755                           CS       ONE                                   #  MODE HAS CHANGED TO VECTOR.
041840,001357:    7531           16114                           TCF      NEWMODE                               
041841,001358: 

Page 932

041843,001360:                                                                                                  #           THE VECTOR CROSS PRODUCT ROUTINE CALCULATES (X M -X M ,X M -X M ,X M -X M ) WHERE M IS THE VECTOR IN
041844,001361:                                                                                                  #                                                         3 2  2 3  1 3  3 1  2 1  1 2
041845,001362: 
041846,001363:                                                                                                  #  MPAC AND X THE VECTOR AT THE GIVEN ADDRESS.
041847,001364: 
041848,001365: 
041849,001366: 
041850,001367:    7532           00006        VXV                EXTEND                                         
041851,001368:    7533           30152                           DCA      MPAC       +5                         #  FORM UP M3X1, LEAVING M1 IN VBUF.
041852,001369:    7534           52145                           DXCH     MPAC                                  
041853,001370:    7535           52113                           DXCH     VBUF                                  
041854,001371:    7536           07152                           TC       DMPSUB                                #  BY X1.
041855,001372: 
041856,001373:    7537           00006                           EXTEND                                         
041857,001374:    7540           40150                           DCS      MPAC       +3                         #  CALCULATE -X1M2, SAVING X1M3 IN VBUF +2.
041858,001375:    7541           52145                           DXCH     MPAC                                  
041859,001376:    7542           52115                           DXCH     VBUF       +2                         
041860,001377:    7543           07152                           TC       DMPSUB                                
041861,001378: 
041862,001379:    7544           37754                           CAF      TWO                                   #  ADVANCE ADDRWD TO X2.
041863,001380:    7545           26106                           ADS      ADDRWD                                
041864,001381:    7546           00006                           EXTEND                                         
041865,001382:    7547           40152                           DCS      MPAC       +5                         #  PREPARE TO GET -X2M3, SAVING -X1M2 IN
041866,001383:    7550           52145                           DXCH     MPAC                                  #  MPAC +5.
041867,001384:    7551           52152                           DXCH     MPAC       +5                         
041868,001385:    7552           07152                           TC       DMPSUB                                
041869,001386: 
041870,001387: 
041871,001388:    7553           00006                           EXTEND                                         
041872,001389:    7554           30113                           DCA      VBUF                                  #  GET X2M1, SAVING -X2M3 IN VBUF +4.
041873,001390:    7555           52145                           DXCH     MPAC                                  
041874,001391:    7556           52117                           DXCH     VBUF       +4                         
041875,001392:    7557           07152                           TC       DMPSUB                                
041876,001393: 
041877,001394:    7560           37754                           CAF      TWO                                   #  ADVANCE ADDRWD TO X3.
041878,001395:    7561           26106                           ADS      ADDRWD                                
041879,001396:    7562           00006                           EXTEND                                         
041880,001397: 
041881,001398:    7563           40113                           DCS      VBUF                                  #  GET -X3M1, ADDING X2M1 TO MPAC +5 TO
041882,001399:    7564           52145                           DXCH     MPAC                                  #  COMPLETE THE Z COMPONENT OF THE ANSWER.
041883,001400:    7565           20152                           DAS      MPAC       +5                         
041884,001401: 
041885,001402:    7566           00006                           EXTEND                                         
041886,001403:    7567           17571                           BZF      +2                                    
041887,001404:    7570           07072                           TC       OVERFLOW                              

Page 933

041889,001406:    7571           07152                           TC       DMPSUB                                
041890,001407:    7572           52115                           DXCH     VBUF       +2                         #  MOVE X1M3 TO MPAC +3 SETTING UP FOR X3M2
041891,001408:    7573           52150                           DXCH     MPAC       +3                         #  AND ADD -X3M1 TO MPAC +3 TO COMPLETE THE
041892,001409:    7574           52145                           DXCH     MPAC                                  #  Y COMPONENT OF THE RESULT.
041893,001410:    7575           20150                           DAS      MPAC       +3                         
041894,001411: 
041895,001412:    7576           00006                           EXTEND                                         
041896,001413:    7577           17601                           BZF      +2                                    
041897,001414: 
041898,001415:    7600           07072                           TC       OVERFLOW                              
041899,001416: 
041900,001417:    7601           07152                           TC       DMPSUB                                
041901,001418:    7602           52117                           DXCH     VBUF       +4                         #  GO ADD -X2M3 TO X3M2 TO COMPLETE THE X
041902,001419:    7603           17037                           TCF      ENDVXV                                #  COMPONENT (TAIL END OF DAD).
041903,001420: 
041904,001421:                                                                                                  #           THE MPACVBUF SUBROUTINE SAVES THE VECTOR IN MPAC IN VBUF WITHOUT CLOBBERING MPAC.
041905,001422: 
041906,001423:    7604           00006        MPACVBUF           EXTEND                                         #  CALLED BY MXV, VXM, AND UNIT.
041907,001424:    7605           30145                           DCA      MPAC                                  
041908,001425: 
041909,001426:    7606           52113                           DXCH     VBUF                                  
041910,001427:    7607           00006                           EXTEND                                         
041911,001428:    7610           30150                           DCA      MPAC       +3                         
041912,001429:    7611           52115                           DXCH     VBUF       +2                         
041913,001430:    7612           00006                           EXTEND                                         
041914,001431:    7613           30152                           DCA      MPAC       +5                         
041915,001432:    7614           52117                           DXCH     VBUF       +4                         
041916,001433:    7615           00002                           TC       Q                                     #  RETURN TO CALLER.
041917,001434: 

Page 934

041919,001436:                                                                                                  #           INTERPRETIVE INSTRUCTIONS WHOSE EXECUTION CONSISTS OF PRINCIPALLY CALLING SUBROUTINES.
041920,001437: 
041921,001438:    7616           07152        DMP1               TC       DMPSUB                                #  DMP INSTRUCTION.
041922,001439:    7617           16115                           TCF      DANZIG                                
041923,001440: 
041924,001441:    7620           07152        DMPR               TC       DMPSUB                                
041925,001442:    7621           07202                           TC       ROUNDSUB   +1                         #  (C(A) = +0).
041926,001443:    7622           16115                           TCF      DANZIG                                
041927,001444: 
041928,001445:    7623           00006        DDV                EXTEND                                         
041929,001446:    7624           50106                           INDEX    ADDRWD                                #  MOVE DIVIDEND INTO BUF.
041930,001447:    7625           30001                           DCA      0                                     
041931,001448:    7626           17633                           TCF      BDDV       +4                         
041932,001449: 
041933,001450: 
041934,001451:    7627           00006        BDDV               EXTEND                                         #  MOVE DIVISOR INTO MPAC SAVING MPAC, THE
041935,001452:    7630           50106                           INDEX    ADDRWD                                #  DIVIDEND, IN BUF.
041936,001453:    7631           30001                           DCA      0                                     
041937,001454:    7632           52145                           DXCH     MPAC                                  
041938,001455:    7633           52121                 +4        DXCH     BUF                                   
041939,001456:    7634           37761                           CAF      ZERO                                  #  DIVIDE ROUTINES IN BANK 0.
041940,001457:    7635           54004                           TS       FBANK                                 
041941,001458:    7636           12352                           TCF      DDV/BDDV                              
041942,001459: 
041943,001460:    7637           30106        SETPD              CA       ADDRWD                                #  MUST SET TO WORK AREA, OR EBANK TROUBLE.
041944,001461: 
041945,001462:    7640           54156                           TS       PUSHLOC                               
041946,001463:    7641           16117                           TCF      NOIBNKSW                              #  NO FBANK SWITCH REQUIRED.
041947,001464: 
041948,001465:    7642           37761        TSLC               CAF      ZERO                                  #  SHIFTING ROUTINES LOCATED IN BANK 00.
041949,001466:    7643           54004                           TS       FBANK                                 
041950,001467:    7644           12172                           TCF      TSLC2                                 
041951,001468: 
041952,001469:    7645           36130        GSHIFT             CAF      LOW7                                  #  USED AS MASK AT GENSHIFT. THIS PROCESSES
041953,001470:    7646           54004                           TS       FBANK                                 #  ANY SHIFT INSTRUCTION (EXCEPT TSLC) WITH
041954,001471:    7647           12214                           TCF      GENSHIFT                              #  AN ADDRESS (ROUTINES IN BANK 0).
041955,001472: 

Page 935

041957,001474:                                                                                                  #           THE FOLLOWING IS THE PROLOGUE TO V/SC. IF THE PRESENT MODE IS VECTOR, IT SAVES THE SCALAR AT X IN BUF
041958,001475:                                                                                                  #  AND CALLS THE V/SC ROUTINE IN BANK 0. IF THE PRESENT MODE IS SCALAR, IT MOVES THE VECTOR AT X INTO MPAC, SAVING
041959,001476:                                                                                                  #  THE SCALAR IN MPAC IN BUF BEFORE CALLING THE V/SC ROUTINE IN BANK 0.
041960,001477: 
041961,001478: 
041962,001479: 
041963,001480:    7650           10153        V/SC               CCS      MODE                                  
041964,001481:    7651           17662                           TCF      DV/SC                                 #  MOVE VECTOR INTO MPAC.
041965,001482:    7652           17662                           TCF      DV/SC                                 
041966,001483: 
041967,001484:    7653           00006        VV/SC              EXTEND                                         
041968,001485:    7654           50106                           INDEX    ADDRWD                                
041969,001486:    7655           30001                           DCA      0                                     
041970,001487:    7656           52121        V/SC1              DXCH     BUF                                   #  IN BOTH CASES, VECTOR IS NOW IN MPAC AND
041971,001488:    7657           37761                           CAF      ZERO                                  #  SCALAR IN BUF.
041972,001489:    7660           54004                           TS       FBANK                                 
041973,001490:    7661           12616                           TCF      V/SC2                                 
041974,001491: 
041975,001492:    7662           00006        DV/SC              EXTEND                                         
041976,001493: 
041977,001494:    7663           50106                           INDEX    ADDRWD                                
041978,001495:    7664           30003                           DCA      2                                     
041979,001496:    7665           52150                           DXCH     MPAC       +3                         
041980,001497:    7666           00006                           EXTEND                                         
041981,001498:    7667           50106                           INDEX    ADDRWD                                
041982,001499:    7670           30005                           DCA      4                                     
041983,001500:    7671           52152                           DXCH     MPAC       +5                         
041984,001501: 
041985,001502:    7672           47755                           CS       ONE                                   #  CHANGE MODE TO VECTOR.
041986,001503:    7673           54153                           TS       MODE                                  
041987,001504: 
041988,001505:    7674           00006                           EXTEND                                         
041989,001506:    7675           50106                           INDEX    ADDRWD                                
041990,001507:    7676           30001                           DCA      0                                     
041991,001508:    7677           52145                           DXCH     MPAC                                  
041992,001509:    7700           17656                           TCF      V/SC1                                 #  FINISH PROLOGUE AT COMMON SECTION.
041993,001510: 

Page 936

041995,001512:                                                                                                  #           SIGN AND COMPLEMENT INSTRUCTIONS.
041996,001513: 
041997,001514: 
041998,001515:    7701           50106        SIGN               INDEX    ADDRWD                                #  CALL COMP INSTRUCTION IF WORD AT X IS
041999,001516:    7702           10000                           CCS      0                                     #  NEGATIVE NON-ZERO.
042000,001517:    7703           16115                           TCF      DANZIG                                
042001,001518:    7704           17706                           TCF      +2                                    
042002,001519:    7705           17714                           TCF      COMP                                  #  DO THE COMPLEMENT.
042003,001520: 
042004,001521:    7706           50106                           INDEX    ADDRWD                                
042005,001522:    7707           10001                           CCS      1                                     
042006,001523:    7710           16115                           TCF      DANZIG                                
042007,001524:    7711           16115                           TCF      DANZIG                                
042008,001525: 
042009,001526:    7712           17714                           TCF      COMP                                  
042010,001527:    7713           16115                           TCF      DANZIG                                
042011,001528:    7714           00006        COMP               EXTEND                                         #  COMPLEMENT DP MPAC IN EVERY CASE.
042012,001529:    7715           40145                           DCS      MPAC                                  
042013,001530:    7716           52145                           DXCH     MPAC                                  
042014,001531: 
042015,001532:    7717           10153                           CCS      MODE                                  #  EITHER COMPLEMENT MPAC +3 OR THE REST OF
042016,001533:    7720           17731                           TCF      DCOMP                                 #  THE VECTOR ACCUMULATOR.
042017,001534:    7721           17731                           TCF      DCOMP                                 
042018,001535: 
042019,001536:    7722           00006                           EXTEND                                         #  VECTOR COMPLEMENT.
042020,001537:    7723           40150                           DCS      MPAC       +3                         
042021,001538: 
042022,001539:    7724           52150                           DXCH     MPAC       +3                         
042023,001540:    7725           00006                           EXTEND                                         
042024,001541:    7726           40152                           DCS      MPAC       +5                         
042025,001542:    7727           52152                           DXCH     MPAC       +5                         
042026,001543:    7730           16115                           TCF      DANZIG                                
042027,001544: 
042028,001545:    7731           40146        DCOMP              CS       MPAC       +2                         
042029,001546:    7732           54146                           TS       MPAC       +2                         
042030,001547:    7733           16115                           TCF      DANZIG                                
042031,001548: 

Page 937

042033,001550:                                                                                                  #           CONSTANTS REQUIRED IN FIXED-FIXED.
042034,001551:    7734           37777        DPOSMAX            OCT      37777                                 
042035,001552:    7735           37777        POSMAX             OCT      37777                                 
042036,001553:    7736     7736               LIMITS             EQUALS   POSMAX     +1                         
042037,001554:    7736           57777        NEG1/2             OCT      -20000                                #  MUST BE TWO LOCATIONS AHEAD OF POS1/2.
042038,001555: 
042039,001556:    7737           40000        BIT15              OCT      40000                                 #  BIT TABLE FOLLOWS.
042040,001557: 
042041,001558:    7740           20000        BIT14              OCT      20000                                 
042042,001559:    7741           10000        BIT13              OCT      10000                                 
042043,001560:    7742           04000        BIT12              OCT      04000                                 
042044,001561:    7743           02000        BIT11              OCT      02000                                 
042045,001562:    7744           01000        BIT10              OCT      01000                                 
042046,001563:    7745           00400        BIT9               OCT      00400                                 
042047,001564:    7746           00200        BIT8               OCT      00200                                 
042048,001565:    7747           00100        BIT7               OCT      00100                                 
042049,001566:    7750           00040        BIT6               OCT      00040                                 
042050,001567:    7751           00020        BIT5               OCT      00020                                 
042051,001568: 
042052,001569:    7752           00010        BIT4               OCT      00010                                 
042053,001570:    7753           00004        BIT3               OCT      00004                                 
042054,001571:    7754           00002        BIT2               OCT      00002                                 
042055,001572:    7755           00001        BIT1               OCT      00001                                 
042056,001573: 
042057,001574:    7756     7737               NEGMAX             EQUALS   BIT15                                 
042058,001575:    7756     7740               HALF               EQUALS   BIT14                                 
042059,001576:    7756     7740               POS1/2             EQUALS   HALF                                  
042060,001577:    7756     7741               QUARTER            EQUALS   BIT13                                 
042061,001578:    7756     7743               2K                 EQUALS   BIT11                                 
042062,001579:    7756           00013        ELEVEN             DEC      11         B-14                       
042063,001580:    7757     7756               NOUTCON            =        ELEVEN                                
042064,001581: 
042065,001582:    7757     4557               TEN                =        BINCON                                
042066,001583:    7757     4517               NINE               =        R2D1                                  
042067,001584:    7757     7752               EIGHT              EQUALS   BIT4                                  
042068,001585:    7757           00007        SEVEN              OCT      7                                     
042069,001586:    7760     6276               SIX                EQUALS   REVCNT                                
042070,001587:    7760           00005        FIVE               OCT      5                                     
042071,001588:    7761     7753               FOUR               EQUALS   BIT3                                  
042072,001589:    7761     6301               THREE              EQUALS   OCTAL3                                
042073,001590:    7761     7754               TWO                EQUALS   BIT2                                  
042074,001591:    7761     7755               ONE                EQUALS   BIT1                                  
042075,001592: 
042076,001593:    7761           00000        ZERO               OCT      0                                     
042077,001594:    7762           77777        NEG0               OCT      77777                                 
042078,001595:    7763           77776        NEGONE             DEC      -1         B-14                       
042079,001596: 
042080,001597:    7764     7763               NEG1               =        NEGONE                                
042081,001598:    7764     7763               MINUS1             EQUALS   NEG1                                  
042082,001599: 
042083,001600:    5355                                           BLOCK    02                                    
042084,001601: 
042085,001602:    5355           77775        NEG2               OCT      77775                                 

Page 938

042087,001604:    5356           01777        LOW10              OCT      1777                                  
042088,001605: 
042089,001606:    5357           77774        NEG3               DEC      -3         B-14                       
042090,001607:    5360           00777        LOW9               OCT      777                                   
042091,001608:    5361           00017        LOW4               OCT      17                                    
042092,001609:    5362     7757               LOW3               EQUALS   SEVEN                                 
042093,001610:    5362     6301               LOW2               EQUALS   THREE                                 
042094,001611: 
042095,001612:    5362           00032        CALLCODE           OCT      00032                                 
042096,001613:    5363           40014        DLOADCOD           OCT      40014                                 
042097,001614:    5364     7737               VLOADCOD           EQUALS   BIT15                                 
042098,001615:    5364           40015        DLOAD*             OCT      40015                                 
042099,001616:    5365     6143               VLOAD*             EQUALS   OCT40001                              
042100,001617:    5365           00112        LVBUF              ADRES    VBUF                                  
042101,001618: 
042102,001619:    5366     5226               BIT13-14           =        PRIO30                                
042103,001620:                                                                                                  #  THERE ARE FOUR POSSIBLE SETTINGS FOR CHANNEL 07 (WNACTV) FOR ACCESSING THE EVENTUALLY THREE AND ONE-HALF
042104,001621:                                                                                                  #  PRESENTLY ONE AND ONE-HALF SUPERBANKS.
042105,001622: 
042106,001623:    5366           00060        SUPER011           OCT      60                                    #  BITS FOR SUPERBNK SETTING 011
042107,001624:    5367     7747               SUPER100           EQUALS   BIT7                                  #  BITS FOR SUPERBNK SETTING 100
042108,001625:                                                                                                  #                                                                  (LAST 4K OF ROPE)
042109,001626:                                                                                                  #  SUPER101        OCT             120                             BITS FOR SUPERBNK SETTING 101
042110,001627:                                                                                                  #                                                                  (FIRST 8K OF ACM)
042111,001628:                                                                                                  #  SUPER110        OCT             140                             BITS FOR SUPERBNK SETTING 110
042112,001629: 
042113,001630:                                                                                                  #                                                                  (LAST 8K OF ACM)
042114,001631:    5367           74000        HIGH4              OCT      74000                                 
042115,001632:    5370           01400        OCT1400            OCT      01400                                 
042116,001633:    5371           00055        DEC45              DEC      45         B-14                       
042117,001634: 

Page 939

042119,001636:                                                                                                  #           THE FOLLOWING SHORT SHIFT CODES REQUIRE NO ADDRESS WORD:
042120,001637: 
042121,001638:                                                                                                  #           1.  SR1 TO SR4         SCALAR SHIFT RIGHT.
042122,001639:                                                                                                  #           2.  SR1R TO SR4R       SCALAR SHIFT RIGHT AND ROUND.
042123,001640:                                                                                                  #           3.  SL1 TO SL4         SCALAR SHIFT LEFT.
042124,001641:                                                                                                  #           4.  SL1R TO SL4R       SCALAR SHIFT LEFT AND ROUND.
042125,001642: 
042126,001643:                                                                                                  #           5.  VSR1 TO VSR8       VECTOR SHIFT RIGHT (ALWAYS ROUNDS).
042127,001644:                                                                                                  #           6.  VSL1 TO VSL8       VECTOR SHIFT LEFT (NEVER ROUNDS).
042128,001645: 
042129,001646:                                                                                                  #           THE FOLLOWING CODES REQUIRE AN ADDRESS WHICH MAY BE INDEXED:*
042130,001647: 
042131,001648:                                                                                                  #           1.  SR                 SCALAR SHIFT RIGHT.
042132,001649:                                                                                                  #           2.  SRR                SCALAR SHIFT RIGHT AND ROUND.
042133,001650:                                                                                                  #           3.  SL                 SCALAR SHIFT LEFT.
042134,001651:                                                                                                  #           4.  SLR                SCALAR SHIFT LEFT AND ROUND.
042135,001652: 
042136,001653:                                                                                                  #           5.  VSR                VECTOR SHIFT RIGHT.
042137,001654:                                                                                                  #           6.  VSL                VECTOR SHIFT LEFT.
042138,001655: 
042139,001656: 
042140,001657:                                                                                                  #  *  IF THE ADDRESS IS INDEXED, AND THE INDEX MODIFICATION RESULTS IN A NEGATIVE SHIFT COUNT, A SHIFT OF THE
042141,001658:                                                                                                  #  ABSOLUTE VALUE OF THE COUNT IS DONE IN THE OPPOSITE DIRECTION.
042142,001659: 
042143,001660: 
042144,001661: 
042145,001662: 00,2017                                           BANK     00                                    
042146,001663: 
042147,001664: 00,2017           36276        SHORTT             CAF      SIX                                   #  SCALAR SHORT SHIFTS COME HERE. THE SHIFT
042148,001665: 00,2020           70020                           MASK     CYR                                   #  COUNT-1 IS NOW IN BITS 2-3 OF CYR. THE
042149,001666: 
042150,001667: 00,2021           54021                           TS       SR                                    #  ROUNDING BIT IS IN BIT1 AT THIS POINT.
042151,001668: 
042152,001669: 00,2022           10020                           CCS      CYR                                   #  SEE IF RIGHT OR LEFT SHIFT DESIRED.
042153,001670: 00,2023           12101                           TCF      TSSL                                  #  SHIFT LEFT.
042154,001671: 
042155,001672: 00,2024           00024        SRDDV              DEC      20         B-14                       #  MPTEMP SETTING FOR SR BEFORE DDV.
042156,001673: 
042157,001674: 00,2025           50021        TSSR               INDEX    SR                                    #  GET SHIFTING BIT.
042158,001675: 00,2026           37740                           CAF      BIT14                                 
042159,001676: 00,2027           54125                           TS       MPTEMP                                
042160,001677: 
042161,001678: 00,2030           10020                           CCS      CYR                                   #  SEE IF A ROUND IS DESIRED.
042162,001679: 
042163,001680: 00,2031           02050        RIGHTR             TC       MPACSRND                              #  YES - SHIFT RIGHT AND ROUND.
042164,001681: 00,2032           16114                           TCF      NEWMODE                               #  SET MODE TO DP (C(A) = 0).
042165,001682: 00,2033           30125        MPACSHR            CA       MPTEMP                                #  DO A TRIPLE PRECISION SHIFT RIGHT.
042166,001683: 00,2034           00006                           EXTEND                                         
042167,001684: 00,2035           70146                           MP       MPAC       +2                         
042168,001685: 00,2036           54146                 +3        TS       MPAC       +2                         #  (EXIT FROM SQRT AND ABVAL).
042169,001686: 00,2037           30125                           CA       MPTEMP                                
042170,001687: 00,2040           00006                           EXTEND                                         
042171,001688: 00,2041           70144                           MP       MPAC                                  #  SHIFT MAJOR PART INTO A,L AND PLACE IN

Page 940

042173,001690: 00,2042           52145                           DXCH     MPAC                                  #  MPAC,+1.
042174,001691: 00,2043           30125                           CA       MPTEMP                                
042175,001692: 
042176,001693: 00,2044           00006                           EXTEND                                         
042177,001694: 00,2045           70001                           MP       L                                     #  ORIGINAL C(MPAC +1).
042178,001695: 00,2046           20146                           DAS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
042179,001696: 00,2047           16115                           TCF      DANZIG                                
042180,001697: 
042181,001698:                                                                                                  #           MPAC SHIFT RIGHT AND ROUND SUBROUTINES.
042182,001699: 
042183,001700: 00,2050           30146        MPACSRND           CA       MPAC       +2                         #  WE HAVE TO DO ALL THREE MULTIPLIES SINCE
042184,001701: 00,2051           00006                           EXTEND                                         #  MPAC +1 AND MPAC +2 MIGHT HAVE SIGN
042185,001702: 00,2052           70125                           MP       MPTEMP                                #  DISAGREEMENT WITH A SHIFT RIGHT OF 1.
042186,001703: 
042187,001704: 00,2053           56145                           XCH      MPAC       +1                         
042188,001705: 00,2054           00006                           EXTEND                                         
042189,001706: 00,2055           70125                           MP       MPTEMP                                
042190,001707: 00,2056           56145                           XCH      MPAC       +1                         #  TRIAL MINOR PART.
042191,001708: 00,2057           60001                           AD       L                                     
042192,001709: 
042193,001710: 00,2060           60000        VSHR2              DOUBLE                                         #  (FINISH VECTOR COMPONENT SHIFT RIGHT
042194,001711: 00,2061           54146                           TS       MPAC       +2                         #  AND ROUND.
042195,001712: 00,2062           12064                           TCF      +2                                    
042196,001713: 00,2063           26145                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
042197,001714: 
042198,001715: 00,2064           37761                           CAF      ZERO                                  
042199,001716: 
042200,001717: 00,2065           54146                           TS       MPAC       +2                         
042201,001718: 00,2066           56144                           XCH      MPAC                                  #  SETTING TO ZERO SO FOLLOWING DAS WORKS.
042202,001719: 00,2067           00006                           EXTEND                                         
042203,001720: 00,2070           70125                           MP       MPTEMP                                
042204,001721: 00,2071           20145                           DAS      MPAC                                  #  AGAIN NO OVERFLOW.
042205,001722: 00,2072           00002                           TC       Q                                     
042206,001723: 
042207,001724: 00,2073           30125        VSHRRND            CA       MPTEMP                                #  ENTRY TO SHIFT RIGHT AND ROUND MPAC WHEN
042208,001725: 00,2074           00006                           EXTEND                                         #  MPAC CONTAINS A VECTOR COMPONENT.
042209,001726: 00,2075           70145                           MP       MPAC       +1                         
042210,001727: 
042211,001728: 00,2076           54145                           TS       MPAC       +1                         
042212,001729: 00,2077           56001                           XCH      L                                     
042213,001730: 00,2100           12060                           TCF      VSHR2                                 #  GO ADD ONE IF NECESSARY AND FINISH.
042214,001731: 

Page 941

042216,001733:                                                                                                  #           ROUTINE FOR SHORT SCALAR SHIFT LEFT (AND MAYBE ROUND).
042217,001734: 
042218,001735: 00,2101           30021        TSSL               CA       SR                                    #  GET SHIFT COUNT FOR SR.
042219,001736: 00,2102           54125                 +1        TS       MPTEMP                                
042220,001737: 
042221,001738: 00,2103           00006                 +2        EXTEND                                         #  ENTRY HERE FROM SL FOR SCALARS.
042222,001739: 00,2104           30146                           DCA      MPAC       +1                         #  SHIFTING LEFT ONE PLACE AT A TIME IS
042223,001740: 00,2105           20146                           DAS      MPAC       +1                         #  FASTER THAN DOING THE WHOLE SHIFT WITH
042224,001741: 
042225,001742: 00,2106           60144                           AD       MPAC                                  #  MULTIPLIES ASSUMING THAT FREQUENCY OF
042226,001743: 00,2107           60144                           AD       MPAC                                  #  SHIFT COUNTS GOES DOWN RAPIDLY AS A
042227,001744: 00,2110           54144                           TS       MPAC                                  #  FUNCTION OF THEIR MAGNITUDE.
042228,001745: 00,2111           12113                           TCF      +2                                    
042229,001746: 00,2112           54111                           TS       OVFIND                                #  OVERFLOW. (LEAVES OVERFLOW-CORRECTED
042230,001747:                                                                                                  #  RESULT ANYWAY).
042231,001748: 00,2113           10125                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNT.
042232,001749: 00,2114           12102                           TCF      TSSL       +1                         
042233,001750: 
042234,001751: 00,2115           10020                           CCS      CYR                                   #  SEE IF ROUND WANTED.
042235,001752: 
042236,001753: 00,2116           07201        ROUND              TC       ROUNDSUB                              #  YES - ROUND AND EXIT.
042237,001754: 00,2117           16115                           TCF      DANZIG                                #  SL LEAVES A ZERO IN CYR FOR NO ROUND.
042238,001755: 00,2120           16115                           TCF      DANZIG                                #  NO - EXIT IMMEDIATL
042239,001756: 

Page 942

042241,001758:                                                                                                  #  VECTOR SHIFTING ROUTINES.
042242,001759: 
042243,001760: 00,2121           37757        SHORTV             CAF      LOW3                                  #  SAVE 3 BIT SHIFT COUNT - 1 WITHOUT
042244,001761: 00,2122           70020                           MASK     CYR                                   #  EDITING CYR.
042245,001762: 00,2123           54125                           TS       MPTEMP                                
042246,001763: 00,2124           10020                           CCS      CYR                                   #  SEE IF LEFT OR RIGHT SHIFT.
042247,001764: 00,2125           12145                           TCF      VSSL                                  #  VECTOR SHIFT LEFT.
042248,001765: 00,2126           00176        OCT176             OCT      176                                   #  USED IN PROCESSED SHIFTS WITH - COUNT.
042249,001766: 
042250,001767: 00,2127           50125        VSSR               INDEX    MPTEMP                                #  (ENTRY FROM SR). PICK UP SHIFTING BIT.
042251,001768: 00,2130           37740                           CAF      BIT14                                 #  MPTEMP CONTAINS THE SHIFT COUNT - 1.
042252,001769: 00,2131           54125                           TS       MPTEMP                                
042253,001770: 00,2132           02073                           TC       VSHRRND                               #  SHIFT X COMPONENT.
042254,001771: 
042255,001772: 
042256,001773: 00,2133           52145                           DXCH     MPAC                                  #  SWAP X AND Y COMPONENTS.
042257,001774: 00,2134           52150                           DXCH     MPAC       +3                         
042258,001775: 00,2135           52145                           DXCH     MPAC                                  
042259,001776: 00,2136           02073                           TC       VSHRRND                               #  SHIFT Y COMPONENT.
042260,001777: 
042261,001778: 00,2137           52145                           DXCH     MPAC                                  #  SWAP Y AND Z COMPONENTS.
042262,001779: 00,2140           52152                           DXCH     MPAC       +5                         
042263,001780: 00,2141           52145                           DXCH     MPAC                                  
042264,001781: 00,2142           02073                           TC       VSHRRND                               #  SHIFT Z COMPONENT.
042265,001782: 
042266,001783: 00,2143           17471                           TCF      VROTATEX                              #  RESTORE COMPONENTS TO PROPER PLACES.
042267,001784: 

Page 943

042269,001786:                                                                                                  #  VECTOR SHIFT LEFT - DONE ONE PLACE AT A TIME.
042270,001787: 
042271,001788: 00,2144           54125                 -1        TS       MPTEMP                                #  SHIFTING LOOP.
042272,001789: 
042273,001790: 00,2145           00006        VSSL               EXTEND                                         
042274,001791: 00,2146           30145                           DCA      MPAC                                  
042275,001792: 
042276,001793: 00,2147           20145                           DAS      MPAC                                  
042277,001794: 00,2150           00006                           EXTEND                                         
042278,001795: 00,2151           12153                           BZF      +2                                    
042279,001796: 00,2152           07072                           TC       OVERFLOW                              
042280,001797: 
042281,001798: 00,2153           00006                           EXTEND                                         
042282,001799: 00,2154           30150                           DCA      MPAC       +3                         
042283,001800: 00,2155           20150                           DAS      MPAC       +3                         
042284,001801: 00,2156           00006                           EXTEND                                         
042285,001802: 00,2157           12161                           BZF      +2                                    
042286,001803: 00,2160           07072                           TC       OVERFLOW                              
042287,001804: 
042288,001805: 
042289,001806: 00,2161           00006                           EXTEND                                         
042290,001807: 00,2162           30152                           DCA      MPAC       +5                         
042291,001808: 00,2163           20152                           DAS      MPAC       +5                         
042292,001809: 00,2164           00006                           EXTEND                                         
042293,001810: 00,2165           12167                           BZF      +2                                    
042294,001811: 00,2166           07072                           TC       OVERFLOW                              
042295,001812: 
042296,001813: 00,2167           10125                           CCS      MPTEMP                                #  LOOP ON DECREMENTED SHIFT COUNTER.
042297,001814: 00,2170           12144                           TCF      VSSL       -1                         
042298,001815: 00,2171           16115                           TCF      DANZIG                                #  EXIT.
042299,001816: 

Page 944

042301,001818:                                                                                                  #           TSLC - TRIPLE SHIFT LEFT AND COUNT. SHIFTS MPAC LEFT UNTIL GREATER THAN .5 IN MAGNITUDE, LEAVING
042302,001819:                                                                                                  #  THE COMPLEMENT OF THE NUMBER OF SHIFTS REQUIRED IN X.
042303,001820: 
042304,001821: 
042305,001822: 00,2172           54125        TSLC2              TS       MPTEMP                                #  START BY ZEROING SHIFT COUNT (IN A NOW).
042306,001823: 00,2173           06772                           TC       BRANCH                                #  EXIT WITH NO SHIFTING IF ARGUMENT ZERO.
042307,001824: 00,2174           12176                           TCF      +2                                    
042308,001825: 00,2175           12212                           TCF      ENDTSLC                               #  STORES ZERO SHIFT COUNT IN THIS CASE.
042309,001826: 
042310,001827: 00,2176           07320                           TC       TPAGREE                               #  MAY CAUSE UPSHIFT OF ONE EXTRA PLACE.
042311,001828: 
042312,001829: 00,2177           30144                           CA       MPAC                                  #  BEGIN NORMALIZATION LOOP.
042313,001830: 00,2200           12207                           TCF      TSLCTEST                              
042314,001831: 
042315,001832: 00,2201           24125        TSLCLOOP           INCR     MPTEMP                                #  INCREMENT SHIFT COUNTER.
042316,001833: 00,2202           00006                           EXTEND                                         
042317,001834: 00,2203           30146                           DCA      MPAC       +1                         
042318,001835: 00,2204           20146                           DAS      MPAC       +1                         
042319,001836: 00,2205           60144                           AD       MPAC                                  
042320,001837: 00,2206           26144                           ADS      MPAC                                  
042321,001838: 00,2207           60000        TSLCTEST           DOUBLE                                         #  SEE IF (ANOTHER) SHIFT IS REQUIRED.
042322,001839: 00,2210           54000                           OVSK                                           
042323,001840: 00,2211           12201                           TCF      TSLCLOOP                              #  YES - INCREMENT COUNT AND SHIFT AGAIN.
042324,001841: 
042325,001842: 00,2212           40125        ENDTSLC            CS       MPTEMP                                
042326,001843: 00,2213           16672                           TCF      STORE1                                #  STORE SHIFT COUNT AND RETURN TO DANZIG.
042327,001844: 

Page 945

042329,001846:                                                                                                  #           THE FOLLOWING ROUTINES PROCESSES THE GENERAL SHIFT INSTRUCTIONS SR, SRR, SL, AND SLR.
042330,001847:                                                                                                  #  THE GIVEN ADDRESS IS DECODED AS FOLLOWS:
042331,001848: 
042332,001849:                                                                                                  #           BITS 1-7    SHIFT COUNT (SUBADDRESS) LESS THAN 125 DECIMAL.
042333,001850:                                                                                                  #           BIT 8       PSEUDO SIGN BIT (DETECTS CHANGE IN SIGN IN INDEXED SHIFTS).
042334,001851:                                                                                                  #           BIT 9       0 FOR LEFT SHIFT, AND 1 FOR RIGHT SHIFT.
042335,001852:                                                                                                  #           BIT 10      1 FOR TERMINAL ROUND ON SCALAR SHIFTS, 0 OTHERWISE.
042336,001853:                                                                                                  #           BITS 11-13  0.
042337,001854: 
042338,001855:                                                                                                  #           BIT 14      1.
042339,001856:                                                                                                  #           BIT 15      0.
042340,001857: 
042341,001858:                                                                                                  #  THE ABOVE ENCODING IS DONE BY THE YUL SYSTEM.
042342,001859: 
042343,001860: 
042344,001861: 
042345,001862: 00,2214           70106        GENSHIFT           MASK     ADDRWD                                #  GET SHIFT COUNT, TESTING FOR ZERO.
042346,001863: 00,2215           10000                           CCS      A                                     #  (ARRIVES WITH C(A) = LOW7).
042347,001864: 00,2216           12224                           TCF      GENSHFT2                              #  IF NON-ZERO, PROCEED WITH DECREMENTED CT
042348,001865: 
042349,001866: 00,2217           37744                           CAF      BIT10                                 #  ZERO SHIFT COUNT. NO SHIFTS NEEDED BUT
042350,001867: 00,2220           70106                           MASK     ADDRWD                                #  WE MIGHT HAVE TO ROUND MPAC ON SLR AND
042351,001868: 00,2221           10000                           CCS      A                                     #  SRR (SCALAR ONLY).
042352,001869: 00,2222           07201                           TC       ROUNDSUB                              
042353,001870: 00,2223           16115                           TCF      DANZIG                                
042354,001871: 
042355,001872: 00,2224           54125        GENSHFT2           TS       MPTEMP                                #  DECREMENTED SHIFT COUNT TO MPTEMP.
042356,001873: 00,2225           37746                           CAF      BIT8                                  #  TEST MEANING OF LOW SEVEN BIT COUNT IN
042357,001874: 00,2226           00006                           EXTEND                                         #  MPTEMP NOW.
042358,001875: 00,2227           70106                           MP       ADDRWD                                
042359,001876: 00,2230           76301                           MASK     LOW2                                  #  JUMPS ON SHIFT DIRECTION (BIT8) AND
042360,001877: 00,2231           50000                           INDEX    A                                     
042361,001878: 
042362,001879: 00,2232           12233                           TCF      +1                                    #  ORIGINAL SHIFT DIRECTION (BIT 9).
042363,001880: 00,2233           12332                           TCF      RIGHT-                                #  NEGATIVE SHIFT COUNT FOR SL OR SLR.
042364,001881: 00,2234           12341                           TCF      LEFT                                  #  SL OR SLR.
042365,001882: 00,2235           12336                           TCF      LEFT-                                 #  NEGATIVE SHIFT COUNT WITH SR OR SRR.
042366,001883: 

Page 946

042368,001885:                                                                                                  #           GENERAL SHIFT RIGHT.
042369,001886: 
042370,001887: 00,2236           10153        RIGHT              CCS      MODE                                  #  SEE IF VECTOR OR SCALAR.
042371,001888: 00,2237           12277                           TCF      GENSCR                                
042372,001889: 00,2240           12277                           TCF      GENSCR                                
042373,001890: 
042374,001891: 00,2241           30125                           CA       MPTEMP                                #  SEE IF SHIFT COUNT LESS THAN 14D.
042375,001892: 00,2242           63676        VRIGHT2            AD       NEG12                                 
042376,001893: 00,2243           00006                           EXTEND                                         
042377,001894: 00,2244           62127                           BZMF     VSSR                                  #  IF SO, BRANCH AND SHIFT IMMEDIATELY.
042378,001895: 
042379,001896: 00,2245           67763                           AD       NEGONE                                #  IF NOT, REDUCE MPTEMP BY A TOTAL OF 14,
042380,001897: 00,2246           54125                           TS       MPTEMP                                #  AND DO A SHIFT RIGHT AND ROUND BY 14.
042381,001898: 00,2247           37761                           CAF      ZERO                                  #  THE ROUND AT THIS STAGE MAY INTRODUCE A
042382,001899: 
042383,001900: 00,2250           54001                           TS       L                                     #  ONE BIT ERROR IN A SHIFT RIGHT 15D.
042384,001901: 00,2251           56144                           XCH      MPAC                                  
042385,001902: 00,2252           56145                           XCH      MPAC       +1                         
042386,001903: 00,2253           02272                           TC       SETROUND                              #  X COMPONENT NOW SHIFTED, SO MAKE UP THE
042387,001904: 00,2254           20145                           DAS      MPAC                                  #  ROUNDING QUANTITY (0 IN A AND 0 OR +-1
042388,001905:                                                                                                  #  IN L).
042389,001906: 00,2255           56147                           XCH      MPAC       +3                         #  REPEAT THE ABOVE PROCESS FOR Y AND Z.
042390,001907: 00,2256           56150                           XCH      MPAC       +4                         
042391,001908: 00,2257           02272                           TC       SETROUND                              
042392,001909: 00,2260           20150                           DAS      MPAC       +3                         #  NO OVERFLOW ON THESE ADDS.
042393,001910: 
042394,001911: 
042395,001912: 00,2261           56151                           XCH      MPAC       +5                         
042396,001913: 00,2262           56152                           XCH      MPAC       +6                         
042397,001914: 00,2263           02272                           TC       SETROUND                              
042398,001915: 00,2264           20152                           DAS      MPAC       +5                         
042399,001916: 
042400,001917: 00,2265           10125                           CCS      MPTEMP                                #  SEE IF DONE, DOING FINAL DECREMENT.
042401,001918: 00,2266           54125                           TS       MPTEMP                                
042402,001919: 00,2267           12242                           TCF      VRIGHT2                               
042403,001920: 00,2270           04604        BIASLO             DEC      .2974      B-1                        #  SQRT CONSTANT
042404,001921: 
042405,001922: 00,2271           16115                           TCF      DANZIG                                
042406,001923: 
042407,001924: 
042408,001925: 
042409,001926: 00,2272           60000        SETROUND           DOUBLE                                         #  MAKES UP ROUNDING QUANTITY FROM ARRIVING
042410,001927: 00,2273           54146                           TS       MPAC       +2                         #  C(A). L IS ZERO INITIALLY.
042411,001928: 00,2274           37761                           CAF      ZERO                                  
042412,001929: 00,2275           56001                           XCH      L                                     
042413,001930: 00,2276           00002                           TC       Q                                     #  RETURN AND DO THE DAS, RESETTING L TO 0.
042414,001931: 

Page 947

042416,001933:                                                                                                  #           PROCESS SR AND SRR FOR SCALARS.
042417,001934: 
042418,001935: 00,2277           30125        GENSCR             CA       MPTEMP                                #  SEE IF THE ORIGINAL SHIFT COUNT WAS LESS
042419,001936: 00,2300           63676                 +1        AD       NEG12                                 #  THAN 14D.
042420,001937: 00,2301           00006                           EXTEND                                         
042421,001938: 00,2302           62322                           BZMF     DOSSHFT                               #  DO THE SHIFT IMMEDIATELY IF SO.
042422,001939: 
042423,001940: 00,2303           67763                 +4        AD       NEGONE                                #  IF NOT, DECREMENT SHIFT COUNT BY 14D AND
042424,001941: 00,2304           54125                           TS       MPTEMP                                #  SHIFT MPAC RIGHT 14 PLACES.
042425,001942: 00,2305           37761                           CAF      ZERO                                  
042426,001943: 00,2306           56144                           XCH      MPAC                                  
042427,001944: 00,2307           56145                           XCH      MPAC       +1                         
042428,001945: 00,2310           54146                           TS       MPAC       +2                         
042429,001946: 00,2311           10125                           CCS      MPTEMP                                #  SEE IF FINISHED, DO FINAL DECREMENT.
042430,001947: 00,2312           54125                           TS       MPTEMP                                
042431,001948: 00,2313           02300                           TC       GENSCR     +1                         
042432,001949: 00,2314           22650        SLOPEHI            DEC      .5884                                 #  SQRT CONSTANT.
042433,001950: 00,2315           37744                           CAF      BIT10                                 #  FINISHED WITH SHIFT. SEE IF ROUND
042434,001951: 00,2316           70106                           MASK     ADDRWD                                #  WANTED.
042435,001952: 
042436,001953: 00,2317           10000                           CCS      A                                     
042437,001954: 00,2320           07201                           TC       ROUNDSUB                              
042438,001955: 00,2321           16115                           TCF      DANZIG                                #  DO SO AND/OR EXIT.
042439,001956: 
042440,001957: 00,2322           50125        DOSSHFT            INDEX    MPTEMP                                #  PICK UP SHIFTING BIT.
042441,001958: 00,2323           37740                           CAF      BIT14                                 
042442,001959: 00,2324           54125                           TS       MPTEMP                                
042443,001960: 00,2325           37744                           CAF      BIT10                                 #  SEE IF TERMINAL ROUND DESIRED.
042444,001961: 00,2326           70106                           MASK     ADDRWD                                
042445,001962: 00,2327           10000                           CCS      A                                     
042446,001963: 
042447,001964: 00,2330           12031                           TCF      RIGHTR                                #  YES.
042448,001965: 00,2331           12033                           TCF      MPACSHR                               #  JUST SHIFT RIGHT.
042449,001966: 

Page 948

042451,001968:                                                                                                  #           PROCESS THE RIGHT- (SL(R) WITH A NEGATIVE COUNT), LEFT-, AND LEFT OPTIONS.
042452,001969: 
042453,001970: 
042454,001971: 00,2332           40125        RIGHT-             CS       MPTEMP                                #  GET ABSOLUTE VALUE - 1 OF SHIFT COUNT
042455,001972: 00,2333           62126                           AD       OCT176                                #  UNDERSTANDING THAT BIT8 (PSEUDO-SIGN)
042456,001973: 00,2334           54125                           TS       MPTEMP                                #  WAS 1 INITIALLY.
042457,001974: 00,2335           12236                           TCF      RIGHT                                 #  DO NORMAL SHIFT RIGHT.
042458,001975: 
042459,001976: 00,2336           40125        LEFT-              CS       MPTEMP                                #  SAME PROLOGUE TO LEFT FOR INDEXED RIGHT
042460,001977: 00,2337           62126                           AD       OCT176                                #  SHIFTS WHOSE NET SHIFT COUNT IS NEGATIVE
042461,001978: 00,2340           54125                           TS       MPTEMP                                
042462,001979: 
042463,001980: 00,2341           10153        LEFT               CCS      MODE                                  #  SINCE LEFT SHIFTING IS SONE ONE PLACE AT
042464,001981: 
042465,001982: 00,2342           12345                           TCF      GENSCL                                #  A TIME, NO COMPARISON WITH 14 NEED BE
042466,001983: 00,2343           12345                           TCF      GENSCL                                #  DONE. FOR SCALARS, SEE IF TERMINAL ROUND
042467,001984: 00,2344           12145                           TCF      VSSL                                  #  DESIRED. FOR VECTORS, SHIFT IMMEDIATELY.
042468,001985: 
042469,001986: 00,2345           37750        GENSCL             CAF      BIT6                                  #  PUT ROUNDING BIT (BIT10 OF ADDRWD) INTO
042470,001987: 00,2346           00006                           EXTEND                                         #  BIT 15 OF CYR WHERE THE ROUNDING BIT OF
042471,001988: 00,2347           70106                           MP       ADDRWD                                #  A SHORT SHIFT LEFT WOULD BE.
042472,001989: 00,2350           54020                           TS       CYR                                   
042473,001990: 00,2351           12103                           TCF      TSSL       +2                         #  DO THE SHIFT.
042474,001991: 

Page 949

042476,001993:                                                                                                  #           SCALAR DIVISION INSTRUCTIONS, DDV AND BDDV, ARE EXECUTED HERE. AT THIS POINT, THE DIVIDEND IS IN MPAC
042477,001994:                                                                                                  #  AND THE DIVISOR IN BUF.
042478,001995: 
042479,001996: 00,2352           47755        DDV/BDDV           CS       ONE                                   #  INITIALIZATION.
042480,001997: 00,2353           54126                           TS       DVSIGN                                #  +-1 FOR POSITIVE QUOTIENT - -0 FOR NEG.
042481,001998: 00,2354           54127                           TS       DVNORMCT                              #  DIVIDEND NORMALIZATION COUNT.
042482,001999: 00,2355           54130                           TS       MAXDVSW                               #  NEAR-ONE DIVIDE FLAG.
042483,002000: 
042484,002001: 
042485,002002: 00,2356           10120                           CCS      BUF                                   #  FORCE BUF POSITIVE WITH THE MAJOR PART
042486,002003: 00,2357           12406                           TCF      BUF+                                  #  NON-ZERO.
042487,002004: 00,2360           12362                           TCF      +2                                    
042488,002005: 00,2361           12402                           TCF      BUF-                                  
042489,002006: 
042490,002007: 00,2362           56121                           XCH      BUF        +1                         #  SHIFT DIVIDEND AND DIVISOR LEFT 14.
042491,002008: 00,2363           56120                           XCH      BUF                                   
042492,002009: 00,2364           56145                           XCH      MPAC       +1                         
042493,002010: 00,2365           56144                           XCH      MPAC                                  
042494,002011: 00,2366           00006                           EXTEND                                         #  CHECK FOR OVERFLOW.
042495,002012: 
042496,002013: 00,2367           12371                           BZF      +2                                    
042497,002014: 00,2370           12375                           TCF      DVOVF                                 
042498,002015: 
042499,002016: 00,2371           10120                           CCS      BUF                                   #  TRY AGAIN ON FORMER MINOR PART.
042500,002017: 00,2372           12406                           TCF      BUF+                                  
042501,002018: 00,2373           12375                           TCF      DVOVF                                 #  OVERFLOW ON ZERO DIVISOR.
042502,002019: 00,2374           12402                           TCF      BUF-                                  
042503,002020: 
042504,002021: 00,2375           37735        DVOVF              CAF      POSMAX                                #  ON DIVISION OVERFLOW OF ANY SORT, SET
042505,002022: 00,2376           54144                           TS       MPAC                                  #  SET DP MPAC TO +-POSMAX.
042506,002023: 00,2377           02572                           TC       FINALDV    +3                         
042507,002024: 00,2400           37755                           CAF      ONE                                   #  SET OVERFLOW INDICATOR AND EXIT.
042508,002025: 
042509,002026: 00,2401           17144                           TCF      SETOVF                                
042510,002027: 
042511,002028: 00,2402           00006        BUF-               EXTEND                                         #  IF BUF IS NEGATIVE, COMPLEMENT IT AND
042512,002029: 00,2403           40121                           DCS      BUF                                   #  MAINTAIN DVSIGN FOR FINAL QUOTIENT SIGN.
042513,002030: 00,2404           52121                           DXCH     BUF                                   
042514,002031: 00,2405           24126                           INCR     DVSIGN                                #  NOW -0.
042515,002032: 
042516,002033: 00,2406           10144        BUF+               CCS      MPAC                                  #  FORCE MPAC POSITIVE, CHECKING FOR ZERO
042517,002034: 00,2407           12423                           TCF      MPAC+                                 #  DIVIDEND IN THE PROCESS.
042518,002035: 00,2410           12412                           TCF      +2                                    
042519,002036: 
042520,002037: 00,2411           12417                           TCF      MPAC-                                 
042521,002038: 00,2412           10145                           CCS      MPAC       +1                         
042522,002039: 00,2413           12423                           TCF      MPAC+                                 
042523,002040: 00,2414           16115                           TCF      DANZIG                                #  EXIT IMMEDIATELY ON ZERO DIVIDEND.
042524,002041: 00,2415           12417                           TCF      MPAC-                                 
042525,002042: 00,2416           16115                           TCF      DANZIG                                
042526,002043: 
042527,002044: 00,2417           00006        MPAC-              EXTEND                                         #  FORCE MPAC POSITIVE AS BUF IN BUF-.
042528,002045: 00,2420           40145                           DCS      MPAC                                  
042529,002046: 00,2421           52145                           DXCH     MPAC                                  

Page 950

042531,002048: 00,2422           24126                           INCR     DVSIGN                                #  NOW +1 OR -0.
042532,002049: 

Page 951

042534,002051: 00,2423           40144        MPAC+              CS       MPAC                                  #  CHECK FOR DIVISION OVERFLOW. IF THE
042535,002052: 00,2424           67763                           AD       NEGONE                                #  MAJOR PART OF THE DIVIDEND IS LESS THAN
042536,002053: 00,2425           60120                           AD       BUF                                   #  THE MAJOR PART OF THE DIVISOR BY AT
042537,002054: 00,2426           10000                           CCS      A                                     #  LEAST TWO, WE CAN PROCEED IMMEDIATELY
042538,002055: 00,2427           12471                           TCF      DVNORM                                #  WITHOUT NORMALIZATION PRODUCING A DVMAX.
042539,002056: 00,2430           60001        -1/2+2             OCT      60001                                 #  USED IN SQRTSUB.
042540,002057: 
042541,002058: 00,2431           12432                           TCF      +1                                    #  IF THE ABOVE DOES NOT HOLD, FORCE SIGN
042542,002059: 00,2432           37740                           CAF      HALF                                  #  AGREEMENT IN NUMERATOR AND DENOMINATOR
042543,002060: 00,2433           60000                           DOUBLE                                         #  TO FACILITATE OVERFLOW AND NEAR-ONE
042544,002061: 00,2434           60145                           AD       MPAC       +1                         #  CHECKING.
042545,002062: 00,2435           54145                           TS       MPAC       +1                         
042546,002063: 00,2436           37761                           CAF      ZERO                                  
042547,002064: 00,2437           67735                           AD       POSMAX                                
042548,002065: 00,2440           26144                           ADS      MPAC                                  
042549,002066: 
042550,002067: 00,2441           37740                           CAF      HALF                                  #  SAME FOR BUF.
042551,002068: 00,2442           60000                           DOUBLE                                         
042552,002069: 00,2443           60121                           AD       BUF        +1                         
042553,002070: 
042554,002071: 00,2444           54121                           TS       BUF        +1                         
042555,002072: 00,2445           37761                           CAF      ZERO                                  
042556,002073: 00,2446           67735                           AD       POSMAX                                
042557,002074: 00,2447           26120                           ADS      BUF                                   
042558,002075: 
042559,002076: 00,2450           40144                           CS       MPAC                                  #  CHECK MAGNITUDE OF SIGN-CORRECTED
042560,002077: 00,2451           60120                           AD       BUF                                   #  OPERANDS.
042561,002078: 00,2452           10000                           CCS      A                                     
042562,002079: 00,2453           12471                           TCF      DVNORM                                #  DIVIDE OK - WILL NOT BECOME MAXDV CASE.
042563,002080: 00,2454           00123        LBUF2              ADRES    BUF2                                  
042564,002081: 
042565,002082: 00,2455           12375                           TCF      DVOVF                                 #  DIVISOR NOT LESS THAN DIVIDEND - OVF.
042566,002083: 
042567,002084: 00,2456           54130                           TS       MAXDVSW                               #  IF THE MAJOR PARTS OF THE DIVIDEND AND
042568,002085: 00,2457           40145                           CS       MPAC       +1                         #  DIVISOR ARE EQUAL, A SPECIAL APPROXIMA-
042569,002086: 00,2460           60121                           AD       BUF        +1                         #  TION IS USED (PROVIDED THE DIVISION IS
042570,002087: 00,2461           00006                           EXTEND                                         #  POSSIBLE, OF COURSE).
042571,002088: 00,2462           62375                           BZMF     DVOVF                                 
042572,002089: 00,2463           12471                           TCF      DVNORM                                #  IF NO OVERFLOW.
042573,002090: 

Page 952

042575,002092: 00,2464           00006        BUFNORM            EXTEND                                         #  ADD -1 TO AUGMENT SHIFT COUNT AND SHIFT
042576,002093: 00,2465           24127                           AUG      DVNORMCT                              #  LEFT ONE PLACE.
042577,002094: 
042578,002095: 00,2466           00006                           EXTEND                                         
042579,002096: 00,2467           30121                           DCA      BUF                                   
042580,002097: 00,2470           20121                           DAS      BUF                                   
042581,002098: 
042582,002099: 00,2471           30120        DVNORM             CA       BUF                                   #  SEE IF DIVISOR NORMALIZED YET.
042583,002100: 00,2472           60000                           DOUBLE                                         
042584,002101: 00,2473           54000                           OVSK                                           
042585,002102: 00,2474           12464                           TCF      BUFNORM                               #  NO - SHIFT LEFT ONE AND TRY AGAIN.
042586,002103: 
042587,002104: 00,2475           52145                           DXCH     MPAC                                  #  CALL DIVIDEND NORMALIZATION SEQUENCE
042588,002105: 
042589,002106: 00,2476           50127                           INDEX    DVNORMCT                              #  PRIOR TO DOING THE DIVIDE.
042590,002107: 00,2477           02527                           TC       MAXTEST                               
042591,002108: 
042592,002109: 00,2500           54146                           TS       MPAC       +2                         #  RETURNS WITH DIVISION DONE AND C(A) = 0.
042593,002110: 00,2501           16115                           TCF      DANZIG                                
042594,002111: 

Page 953

042596,002113:                                                                                                  #           THE FOLLOWING ARE PROLOGUES TO SHIFT THE DIVIDEND ARRIVING IN A AND L BEFORE THE DIVIDE.
042597,002114: 
042598,002115: 00,2502           22021                 -21D      LXCH     SR                                    #  SPECIAL PROLOGUE FOR UNIT WHEN THE
042599,002116: 00,2503           00006                           EXTEND                                         #  LENGTH OF THE ARGUMENT WAS NOT LESS THAN
042600,002117: 00,2504           77740                           MP       HALF                                  #  .5. IN THIS CASE, EACH COMPONENT MUST BE
042601,002118: 00,2505           56001                           XCH      L                                     #  SHIFTED RIGHT ONE TO PRODUCE A HALF-UNIT
042602,002119: 00,2506           60021                           AD       SR                                    #  VECTOR.
042603,002120: 00,2507           56001                           XCH      L                                     
042604,002121: 
042605,002122: 00,2510           12533                           TCF      GENDDV     +1                         #  WITH DP DIVIDEND IN A,L.
042606,002123: 
042607,002124: 00,2511           20001                           DDOUBL                                         #  PROLOGUE WHICH NORMALIZES THE DIVIDEND
042608,002125: 00,2512           20001                           DDOUBL                                         #  WHEN IT IS KNOWN THAT NO DIVISION
042609,002126: 00,2513           20001                           DDOUBL                                         #  OVERFLOW WILL OCCUR.
042610,002127: 00,2514           20001                           DDOUBL                                         
042611,002128: 00,2515           20001                           DDOUBL                                         
042612,002129: 00,2516           20001                           DDOUBL                                         
042613,002130: 00,2517           20001                           DDOUBL                                         
042614,002131: 00,2520           20001                           DDOUBL                                         
042615,002132: 
042616,002133: 00,2521           20001                           DDOUBL                                         
042617,002134: 00,2522           20001                           DDOUBL                                         
042618,002135: 00,2523           20001                           DDOUBL                                         
042619,002136: 00,2524           20001                           DDOUBL                                         
042620,002137: 00,2525           20001                           DDOUBL                                         
042621,002138: 00,2526           52145                           DXCH     MPAC                                  
042622,002139: 
042623,002140: 00,2527           10130        MAXTEST            CCS      MAXDVSW                               #  0 IF MAJORS MIGHT BE =, -1 OTHERWISE.
042624,002141: 00,2530           06552        BIASHI             DEC      .4192      B-1                        #  SQRT CONSTANTS
042625,002142: 
042626,002143: 00,2531           12604                           TCF      MAXDV                                 #  CHECK TO SEE IF THEY ARE NOW EQUAL.
042627,002144: 

Page 954

042629,002146:                                                                                                  #           THE FOLLOWING IS A GENERAL PURPOSE DOUBLE PRECISION DIVISION ROUTINE. IT DIVIDES MPAC BY BUF AND LEAVES
042630,002147: 
042631,002148:                                                                                                  #  THE RESULT IN MPAC. THE FOLLOWING CONDITIONS MUST BE SATISFIED:
042632,002149: 
042633,002150:                                                                                                  #           1.  THE DIVISOR (BUF) MUST BE POSITIVE AND NOT LESS THAN .5.
042634,002151: 
042635,002152:                                                                                                  #           2.  THE DIVIDEND (MPAC) MUST BE POSITIVE WITH THE MAJOR PART OF MPAC STRICTLY LESS THAN THAT OF BUF
042636,002153:                                                                                                  #  (A SPECIAL APPROXIMATION, MAXDV, IS USED WHEN THE MAJOR PARTS ARE EQUAL).
042637,002154: 
042638,002155:                                                                                                  #           UNDERSTANDING THAT A/B = Q + S(R/B) WHERE S = 2(-14) AND Q AND R ARE QUOTIENT AND REMAINDER, RESPEC-
042639,002156:                                                                                                  #  TIVELY, THE FOLLOWING APPROXIMATION IS OBTAINED BY MULTIPLYING ABOVE AND BELOW BY C - SD AND NEGLECTING TERMS OF
042640,002157:                                                                                                  #  ORDER S-SQUARED (POSSIBLY INTRODUCING ERROR INTO THE LOW TWO BITS OF THE RESULT). SIGN AGREEMENT IS UNNECESSARY.
042641,002158: 
042642,002159:                                                                                                  #           A + SB .      (R - QD)                                             A + SB
042643,002160: 
042644,002161:                                                                                                  #           ------ = Q + S(------) WHERE Q AND R ARE QUOTIENT AND REMAINDER OF ------ RESPECTIVELY.
042645,002162:                                                                                                  #           C + SD        (  C   )                                                C
042646,002163: 
042647,002164: 
042648,002165: 00,2532           52145        GENDDV             DXCH     MPAC                                  #  WE NEED A AND B ONLY FOR FIRST DV.
042649,002166: 00,2533           00006                 +1        EXTEND                                         #  (SPECIAL UNIT PROLOGUE ENTERS HERE).
042650,002167: 00,2534           10120                           DV       BUF                                   #  A NOW CONTAINS Q AND L, R.
042651,002168: 00,2535           52145                           DXCH     MPAC                                  
042652,002169: 
042653,002170: 00,2536           40144                           CS       MPAC                                  #  FORM DIVIDEND FOR MINOR PART OF RESULT.
042654,002171: 00,2537           00006                           EXTEND                                         
042655,002172: 00,2540           70121                           MP       BUF        +1                         
042656,002173: 00,2541           60145                           AD       MPAC       +1                         #  OVERFLOW AT THIS POINT IS POSITIVE SINCE
042657,002174: 00,2542           54000                           OVSK                                           #  R IS POSITIVE IN EVERY CASE.
042658,002175: 00,2543           12550                           TCF      +5                                    
042659,002176: 
042660,002177: 00,2544           00006                           EXTEND                                         #  OVERFLOW CAN BE REMOVED BY SUBTRACTING C
042661,002178: 00,2545           60120                           SU       BUF                                   #  (BUF) ONCE SINCE R IS ALWAYS LESS THAN C
042662,002179: 00,2546           24144                           INCR     MPAC                                  #  IN THIS CASE. INCR COMPENSATES SUBTRACT.
042663,002180: 00,2547           12552                           TCF      +DOWN                                 #  (SINCE C(A) IS STILL POSITIVE).
042664,002181: 
042665,002182: 00,2550           00006                 +5        EXTEND                                         #  C(A) CAN BE MADE LESS THAN C IN MAGNI-
042666,002183: 
042667,002184: 00,2551           62562                           BZMF     -UP                                   #  TUDE BY DIMINISHING IT BY C (SINCE C IS
042668,002185:                                                                                                  #  NOT LESS THAN .5) UNLESS C(A) = 0.
042669,002186: 

Page 955

042671,002188: 00,2552           00006        +DOWN              EXTEND                                         
042672,002189: 00,2553           60120                           SU       BUF                                   #  IF POSITIVE, REDUCE ONLY IF NECESSARY
042673,002190: 00,2554           00006                           EXTEND                                         #  SINCE THE COMPENSATING INCR MIGHT CAUSE
042674,002191: 00,2555           12560                           BZF      +3                                    #  OVERFLOW.
042675,002192: 00,2556           00006                           EXTEND                                         #  DONT SUBTRACT UNLESS RESULT IS POSITIVE
042676,002193: 00,2557           62566                           BZMF     ENDMAXDV                              #  OR ZERO.
042677,002194: 
042678,002195: 00,2560           24144                 +3        INCR     MPAC                                  #  KEEP SUBTRACT HERE AND COMPENSATE.
042679,002196: 00,2561           12567                           TCF      FINALDV                               
042680,002197: 
042681,002198: 00,2562           00006        -UP                EXTEND                                         #  IF ZERO, SET MINOR PART OF RESULT TO
042682,002199: 00,2563           12572                           BZF      FINALDV    +3                         #  ZERO.
042683,002200: 
042684,002201: 00,2564           00006                           EXTEND                                         #  IF NEGATIVE, ADD C TO A, SUBTRACTING ONE
042685,002202: 00,2565           26144                           DIM      MPAC                                  #  TO COMPENSATE. DIM IS OK HERE SINCE THE
042686,002203: 00,2566           60120        ENDMAXDV           AD       BUF                                   #  MAJOR PART NEVER GOES NEGATIVE.
042687,002204: 

Page 956

042689,002206: 00,2567           22007        FINALDV            ZL                                             #  DO DV TO OBTAIN MINOR PART OF RESULT.
042690,002207: 00,2570           00006                           EXTEND                                         
042691,002208: 
042692,002209: 00,2571           10120                           DV       BUF                                   
042693,002210: 00,2572           54145                 +3        TS       MPAC       +1                         
042694,002211: 
042695,002212: 00,2573           10126                           CCS      DVSIGN                                #  LEAVE RESULT POSITIVE UNLESS C(DVSIGN)=
042696,002213: 00,2574           00002                           TC       Q                                     #  -0.
042697,002214: 00,2575           00002                           TC       Q                                     
042698,002215: 00,2576           00002                           TC       Q                                     
042699,002216: 
042700,002217: 00,2577           00006                           EXTEND                                         
042701,002218: 00,2600           40145                           DCS      MPAC                                  
042702,002219: 
042703,002220: 00,2601           52145                           DXCH     MPAC                                  
042704,002221: 00,2602           37761                           CAF      ZERO                                  #  SO WE ALWAYS RETURN WITH C(A) = 0.
042705,002222: 00,2603           00002                           TC       Q                                     
042706,002223: 

Page 957

042708,002225:                                                                                                  #           IF THE MAJOR PARTS OF THE DIVISOR AND DIVIDEND ARE EQUAL, BUT THE MINOR PARTS ARE SUCH THAT THE
042709,002226:                                                                                                  #  DIVIDEND IS STRICTLY LESS THAN THE DIVISOR IN MAGNITUDE, THE FOLLOWING APPROXIMATION IS USED. THE ASSUMPTIONS
042710,002227:                                                                                                  #  ARE THE SAME AS THE GENERAL ROUTINE WITH THE ADDITION THAT SIGN AGREEMENT IS NECESSARY (B, C, & D POSITIVE).
042711,002228: 
042712,002229:                                                                                                  #                  C + SB .          (C + B - D)
042713,002230:                                                                                                  #                  ------ = 37777 + S(---------)
042714,002231:                                                                                                  #                  C + SD            (    C    )
042715,002232: 
042716,002233:                                                                                                  #           THE DIVISION MAY BE PERFORMED IMMEDIATELY SINCE B IS STRICTLY LESS THAN D AND C IS NOT LESS THAN .5.
042717,002234: 
042718,002235: 
042719,002236: 
042720,002237: 00,2604           40144        MAXDV              CS       MPAC                                  #  SEE IF MAXDV CASE STILL HOLDS AFTER
042721,002238: 00,2605           60120                           AD       BUF                                   #  NORMALIZATION.
042722,002239: 00,2606           00006                           EXTEND                                         
042723,002240: 00,2607           12611                           BZF      +2                                    
042724,002241: 00,2610           12532                           TCF      GENDDV                                #  MPAC NOW LESS THAN BUF - DIVIDE AS USUAL
042725,002242: 
042726,002243: 
042727,002244: 00,2611           37735                 +2        CAF      POSMAX                                #  SET MAJOR PART OF RESULT.
042728,002245: 00,2612           54144                           TS       MPAC                                  
042729,002246: 
042730,002247: 00,2613           40121                           CS       BUF        +1                         #  FORM DIVIDEND OF MINOR PART OF RESULT.
042731,002248: 00,2614           60145                           AD       MPAC       +1                         
042732,002249: 00,2615           12566                           TCF      ENDMAXDV                              #  GO ADD C AND DO DIVIDE, ATTACHING SIGN
042733,002250:                                                                                                  #  BEFORE EXITING.
042734,002251: 

Page 958

042736,002253:                                                                                                  #           VECTOR DIVIDED BY SCALAR, V/SC, IS EXECUTED HERE. THE VECTOR IS NOW IN MPAC WITH SCALAR IN BUF.
042737,002254: 
042738,002255: 00,2616           47755        V/SC2              CS       ONE                                   #  INITIALIZE DIVIDEND NORMALIZATION COUNT
042739,002256: 00,2617           54127                           TS       DVNORMCT                              #  AND DIVISION SIGN REGISTER.
042740,002257: 00,2620           54117                           TS       VBUF       +5                         
042741,002258: 
042742,002259: 00,2621           10120                           CCS      BUF                                   #  FORCE DIVISOR POSITIVE WITH MAJOR PART
042743,002260: 00,2622           12657                           TCF      /BUF+                                 #  NON-ZERO (IF POSSIBLE).
042744,002261: 00,2623           12625                           TCF      +2                                    
042745,002262: 00,2624           12653                           TCF      /BUF-                                 
042746,002263: 
042747,002264: 00,2625           56121                           XCH      BUF        +1                         #  SHIFT VECTOR AND SCALAR LEFT 14.
042748,002265: 00,2626           56120                           XCH      BUF                                   
042749,002266: 00,2627           56145                           XCH      MPAC       +1                         
042750,002267: 
042751,002268: 00,2630           56144                           XCH      MPAC                                  
042752,002269: 00,2631           00006                           EXTEND                                         #  CHECK FOR OVERFLOW IN EACH CASE.
042753,002270: 00,2632           12634                           BZF      +2                                    
042754,002271: 00,2633           12375                           TCF      DVOVF                                 
042755,002272: 
042756,002273: 00,2634           56150                           XCH      MPAC       +4                         
042757,002274: 00,2635           56147                           XCH      MPAC       +3                         
042758,002275: 00,2636           00006                           EXTEND                                         
042759,002276: 00,2637           12641                           BZF      +2                                    
042760,002277: 00,2640           12375                           TCF      DVOVF                                 
042761,002278: 
042762,002279: 
042763,002280: 00,2641           56152                           XCH      MPAC       +6                         
042764,002281: 00,2642           56151                           XCH      MPAC       +5                         
042765,002282: 00,2643           00006                           EXTEND                                         
042766,002283: 00,2644           12646                           BZF      +2                                    
042767,002284: 00,2645           12375                           TCF      DVOVF                                 
042768,002285: 
042769,002286: 00,2646           10120                           CCS      BUF                                   
042770,002287: 00,2647           12657                           TCF      /BUF+                                 
042771,002288: 00,2650           12375                           TCF      DVOVF                                 #  ZERO DIVISOR - OVERFLOW.
042772,002289: 00,2651           12653                           TCF      /BUF-                                 
042773,002290: 00,2652           12375                           TCF      DVOVF                                 
042774,002291: 
042775,002292: 
042776,002293: 00,2653           00006        /BUF-              EXTEND                                         #  ON NEGATIVE, COMPLEMENT BUF AND MAINTAIN
042777,002294: 00,2654           40121                           DCS      BUF                                   #  DVSIGN IN VBUF +5.
042778,002295: 00,2655           52121                           DXCH     BUF                                   
042779,002296: 00,2656           24117                           INCR     VBUF       +5                         
042780,002297: 

Page 959

042782,002299: 00,2657           37740        /BUF+              CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVISOR.
042783,002300: 00,2660           60000                           DOUBLE                                         
042784,002301: 00,2661           60121                           AD       BUF        +1                         
042785,002302: 00,2662           54121                           TS       BUF        +1                         
042786,002303: 00,2663           37761                           CAF      ZERO                                  
042787,002304: 00,2664           67735                           AD       POSMAX                                
042788,002305: 
042789,002306: 00,2665           26120                           ADS      BUF                                   
042790,002307: 
042791,002308: 00,2666           56123                           XCH      BUF2                                  #  LEAVE ABS(ORIGINAL DIVISOR) IN BUF2 FOR
042792,002309: 00,2667           30121                           CA       BUF        +1                         #  OVERFLOW TESTING.
042793,002310: 00,2670           54124                           TS       BUF2       +1                         
042794,002311: 00,2671           12677                           TCF      /NORM                                 #  NORMALIZE DIVISOR IN BUF.
042795,002312: 
042796,002313: 00,2672           00006        /NORM2             EXTEND                                         #  IF LESS THAN .5, AUGMENT DVNORMCT AND
042797,002314: 00,2673           24127                           AUG      DVNORMCT                              #  DOUBLE DIVISOR.
042798,002315: 00,2674           00006                           EXTEND                                         
042799,002316: 00,2675           30121                           DCA      BUF                                   
042800,002317: 00,2676           20121                           DAS      BUF                                   
042801,002318: 
042802,002319: 
042803,002320: 00,2677           30120        /NORM              CA       BUF                                   #  SEE IF DIVISOR NORMALIZED.
042804,002321: 00,2700           60000                           DOUBLE                                         
042805,002322: 00,2701           54000                           OVSK                                           
042806,002323: 00,2702           12672                           TCF      /NORM2                                #  DOUBLE AND TRY AGAIN IF NOT.
042807,002324: 
042808,002325: 00,2703           02715                           TC       V/SCDV                                #  DO X COMPONENT DIVIDE.
042809,002326: 00,2704           52150                           DXCH     MPAC       +3                         #  SUPPLY ARGUMENTS IN USUAL SEQUENCE.
042810,002327: 00,2705           52145                           DXCH     MPAC                                  
042811,002328: 00,2706           52150                           DXCH     MPAC       +3                         
042812,002329: 
042813,002330: 00,2707           02715                           TC       V/SCDV                                #  Y COMPONENT.
042814,002331: 00,2710           52152                           DXCH     MPAC       +5                         
042815,002332: 00,2711           52145                           DXCH     MPAC                                  
042816,002333: 00,2712           52152                           DXCH     MPAC       +5                         
042817,002334: 
042818,002335: 00,2713           02715                           TC       V/SCDV                                #  Z COMPONENT.
042819,002336: 00,2714           17471                           TCF      VROTATEX                              #  GO RE-ARRANGE COMPONENTS BEFORE EXIT.
042820,002337: 

Page 960

042822,002339:                                                                                                  #           SUBROUTINE USED BY V/SC TO DIVIDE VECTOR COMPONENT IN MPAC,+1 BY THE SCALAR GIVEN IN BUF.
042823,002340: 
042824,002341: 00,2715           30117        V/SCDV             CA       VBUF       +5                         #  REFLECTS SIGN OF SCALAR.
042825,002342: 00,2716           54126                           TS       DVSIGN                                
042826,002343: 
042827,002344: 00,2717           10144                           CCS      MPAC                                  #  FORCE MPAC POSITIVE, EXITING ON ZERO.
042828,002345: 00,2720           12734                           TCF      /MPAC+                                
042829,002346: 00,2721           12723                           TCF      +2                                    
042830,002347: 00,2722           12730                           TCF      /MPAC-                                
042831,002348: 
042832,002349: 00,2723           10145                           CCS      MPAC       +1                         
042833,002350: 00,2724           12734                           TCF      /MPAC+                                
042834,002351: 
042835,002352: 00,2725           00002                           TC       Q                                     
042836,002353: 00,2726           12730                           TCF      /MPAC-                                
042837,002354: 00,2727           00002                           TC       Q                                     
042838,002355: 
042839,002356: 00,2730           00006        /MPAC-             EXTEND                                         #  USUAL COMPLEMENTING AND SETTING OF SIGN.
042840,002357: 00,2731           40145                           DCS      MPAC                                  
042841,002358: 00,2732           52145                           DXCH     MPAC                                  
042842,002359: 00,2733           24126                           INCR     DVSIGN                                
042843,002360: 
042844,002361: 00,2734           47755        /MPAC+             CS       ONE                                   #  INITIALIZE NEAR-ONE SWITCH.
042845,002362: 00,2735           54130                           TS       MAXDVSW                               
042846,002363: 
042847,002364: 
042848,002365: 00,2736           40144                           CS       MPAC                                  #  CHECK POSSIBLE OVERFLOW.
042849,002366: 00,2737           60123                           AD       BUF2                                  #  UNNORMALIZED INPUT DIVISOR.
042850,002367: 00,2740           00006                           EXTEND                                         
042851,002368: 00,2741           62745                           BZMF     /AGREE                                #  CHECK FOR NEAR-ONE OR OVERFLOW.
042852,002369: 
042853,002370: 00,2742           52145        DDVCALL            DXCH     MPAC                                  #  CALL PRE-DIVIDE NORMALIZATION.
042854,002371: 00,2743           50127                           INDEX    DVNORMCT                              
042855,002372: 00,2744           12527                           TCF      MAXTEST                               
042856,002373: 

Page 961

042858,002375: 00,2745           37740        /AGREE             CAF      HALF                                  #  FORCE SIGN AGREEMENT IN DIVIDEND
042859,002376: 00,2746           60000                           DOUBLE                                         #  (ALREADY DONE FOR DIVISOR).
042860,002377: 00,2747           60145                           AD       MPAC       +1                         
042861,002378: 00,2750           54145                           TS       MPAC       +1                         
042862,002379: 00,2751           37761                           CAF      ZERO                                  
042863,002380: 00,2752           67735                           AD       POSMAX                                
042864,002381: 00,2753           26144                           ADS      MPAC                                  
042865,002382: 
042866,002383: 
042867,002384: 00,2754           40144                           CS       MPAC                                  #  CHECK TO SEE IF OVERFLOW GONE OR IF
042868,002385: 00,2755           60123                           AD       BUF2                                  #  NEAR-ONE CASE IS PRESENT.
042869,002386: 00,2756           10000                           CCS      A                                     
042870,002387: 00,2757           12742                           TCF      DDVCALL                               #  NOT NEAR-ONE.
042871,002388: 00,2760           32506        SLOPELO            DEC      .8324                                 
042872,002389: 00,2761           12375                           TCF      DVOVF                                 #  NO HOPE.
042873,002390: 
042874,002391: 00,2762           54130                           TS       MAXDVSW                               #  SIGNAL POSSIBLE NEAR-ONE CASE.
042875,002392: 00,2763           40145                           CS       MPAC       +1                         #  SEE IF DIVISION CAN BE DONE.
042876,002393: 00,2764           60124                           AD       BUF2       +1                         
042877,002394: 
042878,002395: 00,2765           00006                           EXTEND                                         
042879,002396: 00,2766           62375                           BZMF     DVOVF                                 
042880,002397: 00,2767           12742                           TCF      DDVCALL                               #  GOING TO MAXDV.
042881,002398: 

Page 962

042883,002400:                                                                                                  #           THE FOLLOWING ROUTINE EXECUTES THE UNIT INSTRUCTION, WHICH TAKES THE UNIT OF THE VECTOR IN MPAC.
042884,002401: 
042885,002402: 00,2770           07604        UNIT               TC       MPACVBUF                              #  SAVE THE ARGUMENT IN VBUF.
042886,002403: 00,2771           37761                           CAF      ZERO                                  #  MUST SENSE OVERFLOW IN FOLLOWING DOT.
042887,002404: 00,2772           56111                           XCH      OVFIND                                
042888,002405: 00,2773           54131                           TS       TEM1                                  
042889,002406: 00,2774           03267                           TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
042890,002407: 00,2775           30131                           CA       TEM1                                  
042891,002408: 00,2776           56111                           XCH      OVFIND                                
042892,002409: 00,2777           00006                           EXTEND                                         
042893,002410: 00,3000           13002                           BZF      +2                                    
042894,002411: 00,3001           12375                           TCF      DVOVF                                 
042895,002412: 00,3002           00006                           EXTEND                                         
042896,002413: 00,3003           30145                           DCA      MPAC                                  #  LEAVE THE SQUARE OF THE LENGTH OF THE
042897,002414: 
042898,002415: 00,3004           50110                           INDEX    FIXLOC                                #  ARGUMENT IN LVSQUARE.
042899,002416: 00,3005           52043                           DXCH     LVSQUARE                              
042900,002417: 
042901,002418: 00,3006           03313                           TC       SQRTSUB                               #  GO TAKE THE NORMALIZED SQUARE ROOT.
042902,002419: 
042903,002420: 00,3007           10144                           CCS      MPAC                                  #  CHECK FOR UNIT OVERFLOW.
042904,002421: 00,3010           13015                           TCF      +5                                    #  MPAC IS NOT LESS THAN .5 UNLESS
042905,002422: 00,3011           54001                           TS       L                                     
042906,002423: 00,3012           50110                           INDEX    FIXLOC                                
042907,002424: 00,3013           52045                           DXCH     LV                                    
042908,002425: 
042909,002426: 00,3014           12375                           TCF      DVOVF                                 #  INPUT TO SQRTSUB WAS 0.
042910,002427: 
042911,002428: 00,3015           43116                           CS       FOURTEEN                              #  SEE IF THE INPUT WAS SO SMALL THE THE
042912,002429: 00,3016           60125                           AD       MPTEMP                                #  FIRST TWO REGISTERS OF THE SQUARE WERE 0
042913,002430: 00,3017           10000                           CCS      A                                     
042914,002431: 00,3020           40000                           COM                                            #  IF SO, SAVE THE NEGATIVE OF THE SHIFT
042915,002432: 00,3021           13077                           TCF      SMALL                                 #  COUNT -15D.
042916,002433: 
042917,002434: 00,3022           13031                           TCF      LARGE                                 #  (THIS IS USUALLY THE CASE.)
042918,002435: 
042919,002436: 00,3023           43115                           CS       THIRTEEN                              #  IF THE SHIFT COUNT WAS EXACTLY 14, SET
042920,002437: 00,3024           54125                           TS       MPTEMP                                #  THE PRE-DIVIDE NORM COUNT TO -13D.
042921,002438: 
042922,002439: 
042923,002440: 00,3025           30144                           CA       MPAC                                  #  SHIFT THE LENGTH RIGHT 14 BEFORE STORING
042924,002441: 00,3026           54001        SMALL2             TS       L                                     #  (SMALL EXITS TO THIS POINT).
042925,002442: 00,3027           37761                           CAF      ZERO                                  
042926,002443: 00,3030           13056                           TCF      LARGE2                                #  GO TO STORE LENGTH AND PROCEED.
042927,002444: 
042928,002445: 00,3031           10125        LARGE              CCS      MPTEMP                                #  MOST ALL CASES COME HERE.
042929,002446: 00,3032           13040                           TCF      LARGE3                                #  SEE IF NO NORMALIZATION WAS REQUIRED BY
042930,002447: 
042931,002448: 00,3033           42024                           CS       SRDDV                                 #  SQRT, AND IF SO, SET UP FOR A SHIFT
042932,002449: 
042933,002450: 00,3034           54125                           TS       MPTEMP                                #  RIGHT 1 BEFORE DIVIDING TO PRODUCE
042934,002451: 00,3035           00006                           EXTEND                                         #  THE DESIRED HALF UNIT VECTOR.
042935,002452: 00,3036           30145                           DCA      MPAC                                  
042936,002453: 00,3037           13056                           TCF      LARGE2                                
042937,002454: 

Page 963

042939,002456: 00,3040           40000        LARGE3             COM                                            #  LEAVE NEGATIVE OF SHIFT COUNT-1 FOR
042940,002457: 00,3041           54125                           TS       MPTEMP                                #  PREDIVIDE LEFT SHIFT.
042941,002458: 
042942,002459: 00,3042           40000                           COM                                            #  PICK UP REQUIRED SHIFTING BIT TO UNNORM-
042943,002460: 00,3043           50000                           INDEX    A                                     #  ALIZE THE SQRT RESULT.
042944,002461: 00,3044           37740                           CAF      BIT14                                 
042945,002462: 
042946,002463: 00,3045           54120                           TS       BUF                                   
042947,002464: 00,3046           00006                           EXTEND                                         
042948,002465: 00,3047           70145                           MP       MPAC       +1                         
042949,002466: 00,3050           56120                           XCH      BUF                                   
042950,002467: 00,3051           00006                           EXTEND                                         #  (UNNORMALIZE THE SQRT FOR LV).
042951,002468: 00,3052           70144                           MP       MPAC                                  
042952,002469: 00,3053           56001                           XCH      L                                     
042953,002470: 00,3054           60120                           AD       BUF                                   
042954,002471: 00,3055           56001                           XCH      L                                     
042955,002472: 
042956,002473: 00,3056           50110        LARGE2             INDEX    FIXLOC                                
042957,002474: 00,3057           52045                           DXCH     LV                                    #  LENGTH NOW STORED IN WORK AREA.
042958,002475: 
042959,002476: 
042960,002477: 00,3060           47755                           CS       ONE                                   
042961,002478: 00,3061           54130                           TS       MAXDVSW                               #  NO MAXDV CASES IN UNIT.
042962,002479: 
042963,002480: 00,3062           52113                           DXCH     VBUF                                  #  PREPARE X COMPONENT FOR DIVIDE, SETTING
042964,002481: 00,3063           52145                           DXCH     MPAC                                  #  LENGTH OF VECTOR AS DIVISOR IN BUF.
042965,002482: 00,3064           52121                           DXCH     BUF                                   
042966,002483: 00,3065           03117                           TC       UNITDV                                
042967,002484: 
042968,002485: 00,3066           52115                           DXCH     VBUF       +2                         #  DO Y AND Z IN USUAL FASHION SO WE CAN
042969,002486: 
042970,002487: 00,3067           52145                           DXCH     MPAC                                  #  EXIT THROUGH VROTATEX.
042971,002488: 00,3070           52150                           DXCH     MPAC       +3                         
042972,002489: 00,3071           03117                           TC       UNITDV                                
042973,002490: 
042974,002491: 00,3072           52117                           DXCH     VBUF       +4                         
042975,002492: 00,3073           52145                           DXCH     MPAC                                  
042976,002493: 00,3074           52152                           DXCH     MPAC       +5                         
042977,002494: 00,3075           03117                           TC       UNITDV                                
042978,002495: 00,3076           17471                           TCF      VROTATEX                              #  AND EXIT.
042979,002496: 

Page 964

042981,002498:                                                                                                  #           IF THE LENGTH OF THE ARGUMENT VECTOR WAS LESS THAN 2(-28), EACH COMPONENT MUST BE SHIFTED LEFT AT LEAST
042982,002499:                                                                                                  #  14 PLACES BEFORE THE DIVIDE. NOTE THAT IN THIS CASE, THE MAJOR PART OF EACH COMPONENT IS ZERO.
042983,002500: 
042984,002501: 00,3077           54125        SMALL              TS       MPTEMP                                #  NEGATIVE OF PRE-DIVIDE SHIFT COUNT.
042985,002502: 
042986,002503: 00,3100           37761                           CAF      ZERO                                  #  SHIFT EACH COMPONENT LEFT 14.
042987,002504: 00,3101           56113                           XCH      VBUF       +1                         
042988,002505: 00,3102           56112                           XCH      VBUF                                  
042989,002506: 00,3103           56115                           XCH      VBUF       +3                         
042990,002507: 00,3104           56114                           XCH      VBUF       +2                         
042991,002508: 00,3105           56117                           XCH      VBUF       +5                         
042992,002509: 00,3106           56116                           XCH      VBUF       +4                         
042993,002510: 
042994,002511: 00,3107           40125                           CS       MPTEMP                                
042995,002512: 00,3110           50000                           INDEX    A                                     
042996,002513: 00,3111           37740                           CAF      BIT14                                 
042997,002514: 00,3112           00006                           EXTEND                                         
042998,002515: 00,3113           70144                           MP       MPAC                                  
042999,002516: 00,3114           13026                           TCF      SMALL2                                
043000,002517: 
043001,002518: 00,3115           00015        THIRTEEN           DEC      13         B-14                       
043002,002519: 00,3116           00016        FOURTEEN           DEC      14         B-14                       
043003,002520: 

Page 965

043005,002522:                                                                                                  #           THE FOLLOWING ROUTINE SETS UP THE CALL TO THE DIVIDE ROUTINES.
043006,002523: 
043007,002524: 00,3117           10144        UNITDV             CCS      MPAC                                  #  FORCE MPAC POSITIVE IF POSSIBLE, SETTING
043008,002525: 00,3120           13136                           TCF      UMPAC+                                #  DVSIGN ACCORDING TO THE SIGN OF MPAC
043009,002526: 00,3121           13123                           TCF      +2                                    #  SINCE THE DIVISOR IS ALWAYS POSITIVE
043010,002527: 00,3122           13130                           TCF      UMPAC-                                #  HERE.
043011,002528: 
043012,002529: 00,3123           10145                           CCS      MPAC       +1                         
043013,002530: 
043014,002531: 00,3124           13136                           TCF      UMPAC+                                
043015,002532: 00,3125           00002                           TC       Q                                     #  EXIT IMMEDIATELY ON ZERO.
043016,002533: 00,3126           13130                           TCF      UMPAC-                                
043017,002534: 00,3127           00002                           TC       Q                                     
043018,002535: 
043019,002536: 00,3130           47761        UMPAC-             CS       ZERO                                  #  IF NEGATIVE, SET -0 IN DVSIGN FOR FINAL
043020,002537: 00,3131           54126                           TS       DVSIGN                                #  COMPLEMENT.
043021,002538: 00,3132           00006                           EXTEND                                         
043022,002539: 00,3133           40145                           DCS      MPAC                                  #  PICK UP ABSOLUTE VALUE OF ARG AND JUMP.
043023,002540: 00,3134           50125                           INDEX    MPTEMP                                
043024,002541: 
043025,002542: 00,3135           12526                           TCF      MAXTEST    -1                         
043026,002543: 
043027,002544: 00,3136           54126        UMPAC+             TS       DVSIGN                                #  SET DVSIGN FOR POSITIVE QUOTIENT.
043028,002545: 00,3137           52145                           DXCH     MPAC                                  
043029,002546: 00,3140           50125                           INDEX    MPTEMP                                
043030,002547: 00,3141           12526                           TCF      MAXTEST    -1                         
043031,002548: 

Page 966

043033,002550:                                                                                                  #           MISCELLANEOUS UNARY OPERATIONS.
043034,002551: 
043035,002552: 00,3142           03250        DSQ                TC       DSQSUB                                #  SQUARE THE DP CONTENTS OF MPAC.
043036,002553: 00,3143           16115                           TCF      DANZIG                                
043037,002554: 
043038,002555: 00,3144           10153        ABVALABS           CCS      MODE                                  #  ABVAL OR ABS INSTRUCTION.
043039,002556: 00,3145           13174                           TCF      ABS                                   #  DO ABS ON SCALAR.
043040,002557: 00,3146           13174                           TCF      ABS                                   
043041,002558: 
043042,002559: 00,3147           03267        ABVAL              TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
043043,002560: 00,3150           22153                           LXCH     MODE                                  #  MODE IS NOW DP (L ZERO AFTER DAS).
043044,002561: 
043045,002562: 00,3151           00006                           EXTEND                                         #  STORE SQUARE OF LENGTH IN WORK AREA.
043046,002563: 00,3152           30145                           DCA      MPAC                                  
043047,002564: 
043048,002565: 00,3153           50110                           INDEX    FIXLOC                                
043049,002566: 00,3154           52043                           DXCH     LVSQUARE                              
043050,002567: 
043051,002568: 00,3155           03313        SQRT               TC       SQRTSUB                               #  TAKE THE SQUARE ROOT OF MPAC.
043052,002569: 00,3156           10125                           CCS      MPTEMP                                #  RETURNED NORMALIZED SQUARE ROOT. SEE IF
043053,002570: 00,3157           13161                           TCF      +2                                    #  ANY UN-NORMALIZATION REQUIRED AND EXIT
043054,002571: 00,3160           16115                           TCF      DANZIG                                #  IF NOT.
043055,002572: 
043056,002573: 00,3161           63676                           AD       NEG12                                 #  A RIGHT SHIFT OF MORE THAN 13 COULD BE
043057,002574: 00,3162           00006                           EXTEND                                         #  REQUIRED IF INPUT WAS ZERO IN MPAC,+1.
043058,002575: 
043059,002576: 00,3163           63167                           BZMF     SQRTSHFT                              #  GOES HERE IN MOST CASES.
043060,002577: 00,3164           22007                           ZL                                             #  IF A LONG SHIFT IS REQUIRED, GO TO
043061,002578: 00,3165           22106                           LXCH     ADDRWD                                #  GENERAL RIGHT SHIFT ROUTINES.
043062,002579: 00,3166           12303                           TCF      GENSCR     +4                         #  ADDRWD WAS ZERO TO PREVENT ROUND.
043063,002580: 
043064,002581: 00,3167           50125        SQRTSHFT           INDEX    MPTEMP                                #  SELECT SHIFTING BIT AND EXIT THROUGH
043065,002582: 00,3170           37737                           CAF      BIT15                                 #  SHIFT ROUTINES.
043066,002583: 00,3171           54125                           TS       MPTEMP                                
043067,002584: 00,3172           37761                           CAF      ZERO                                  #  TO ZERO MPAC +2 IN THE PROCESS.
043068,002585: 00,3173           12036                           TCF      MPACSHR    +3                         
043069,002586: 
043070,002587: 00,3174           06772        ABS                TC       BRANCH                                #  TEST SIGN OF MPAC AND COMPLEMENT IF
043071,002588: 
043072,002589: 00,3175           16115                           TCF      DANZIG                                
043073,002590: 00,3176           16115                           TCF      DANZIG                                
043074,002591: 00,3177           17714                           TCF      COMP                                  
043075,002592: 

Page 967

043077,002594: 00,3200           47753        VDEF               CS       FOUR                                  #  VECTOR DEFINE - ESSENTIALLY TREATS
043078,002595: 00,3201           26156                           ADS      PUSHLOC                               #  SCALAR IN MPAC AS X COMPONENT, PUSHES UP
043079,002596: 00,3202           00006                           EXTEND                                         #  FOR Y AND THEN AGAIN FOR Z.
043080,002597: 00,3203           50000                           INDEX    A                                     
043081,002598: 00,3204           30003                           DCA      2                                     
043082,002599: 00,3205           52150                           DXCH     MPAC       +3                         
043083,002600: 
043084,002601: 00,3206           00006                           EXTEND                                         
043085,002602: 00,3207           50156                           INDEX    PUSHLOC                               
043086,002603: 00,3210           30001                           DCA      0                                     
043087,002604: 00,3211           52152                           DXCH     MPAC       +5                         
043088,002605: 00,3212           47755                           CS       ONE                                   #  MODE IS NOW VECTOR.
043089,002606: 00,3213           16114                           TCF      NEWMODE                               
043090,002607: 
043091,002608: 00,3214           03267        VSQ                TC       VSQSUB                                #  DOT MPAC WITH ITSELF.
043092,002609: 00,3215           37761                           CAF      ZERO                                  
043093,002610: 00,3216           16114                           TCF      NEWMODE                               #  MODE IS NOW DP.
043094,002611: 
043095,002612: 00,3217           00006        PUSH               EXTEND                                         #  PUSH DOWN MPAC LEAVING IT LOADED.
043096,002613: 
043097,002614: 00,3220           30145                           DCA      MPAC                                  
043098,002615: 00,3221           50156                           INDEX    PUSHLOC                               #  PUSH DOWN FIRST TWO REGISTERS IN EACH
043099,002616: 00,3222           52001                           DXCH     0                                     
043100,002617: 
043101,002618: 00,3223           50153                           INDEX    MODE                                  #  INCREMENT PUSHDOWN POINTER.
043102,002619: 00,3224           36300                           CAF      NO.WDS                                
043103,002620: 00,3225           26156                           ADS      PUSHLOC                               
043104,002621: 
043105,002622: 00,3226           10153                           CCS      MODE                                  
043106,002623: 00,3227           13242                           TCF      TPUSH                                 #  PUSH DOWN MPAC +2.
043107,002624: 
043108,002625: 00,3230           16115                           TCF      DANZIG                                #  DONE FOR DP.
043109,002626: 
043110,002627: 00,3231           00006                           EXTEND                                         #  ON VECTOR, PUSH DOWN Y AND Z COMPONENTS.
043111,002628: 00,3232           30150                           DCA      MPAC       +3                         
043112,002629: 00,3233           50156                           INDEX    PUSHLOC                               
043113,002630: 00,3234           51775                           DXCH     0          -4                         
043114,002631: 00,3235           00006                           EXTEND                                         
043115,002632: 00,3236           30152                           DCA      MPAC       +5                         
043116,002633: 00,3237           50156                           INDEX    PUSHLOC                               
043117,002634: 00,3240           51777                           DXCH     0          -2                         
043118,002635: 00,3241           16115                           TCF      DANZIG                                
043119,002636: 
043120,002637: 
043121,002638: 00,3242           30146        TPUSH              CA       MPAC       +2                         
043122,002639: 00,3243           16623                           TCF      ENDTPUSH   +2                         
043123,002640: 
043124,002641: 00,3244           50110        RVQ                INDEX    FIXLOC                                #  RVQ - RETURN IVA QPRET.
043125,002642: 00,3245           30052                           CA       QPRET                                 
043126,002643: 00,3246           54107                           TS       POLISH                                
043127,002644: 00,3247           16721                           TCF      GOTO       +4                         #  (ASSUME QPRET POINTS TO FIXED ONLY.)
043128,002645: 

Page 968

043130,002647:                                                                                                  #           THE FOLLOWING SUBROUTINES ARE USED IN SQUARING MPAC, IN BOTH THE SCALAR AND VECTOR SENSE. THEY ARE
043131,002648:                                                                                                  #  SPECIAL CASES OF DMPSUB AND DOTSUB, PUT IN TO SAVE SOME TIME.
043132,002649: 
043133,002650: 00,3250           30145        DSQSUB             CA       MPAC       +1                         #  SQUARES THE SCALAR CONTENTS OF MPAC.
043134,002651: 00,3251           00006                           EXTEND                                         
043135,002652: 00,3252           70000                           SQUARE                                         
043136,002653: 00,3253           54146                           TS       MPAC       +2                         
043137,002654: 00,3254           37761                           CAF      ZERO                                  #  FORM 2(CROSS TERM).
043138,002655: 00,3255           56145                           XCH      MPAC       +1                         
043139,002656: 00,3256           00006                           EXTEND                                         
043140,002657: 00,3257           70144                           MP       MPAC                                  
043141,002658: 00,3260           20001                           DDOUBL                                         #  AND MAYBE OVERFLOW.
043142,002659: 
043143,002660: 00,3261           20146                           DAS      MPAC       +1                         #  AND SET A TO NET OVERFLOW.
043144,002661: 00,3262           56144                           XCH      MPAC                                  
043145,002662: 00,3263           00006                           EXTEND                                         
043146,002663: 00,3264           70000                           SQUARE                                         
043147,002664: 00,3265           20145                           DAS      MPAC                                  
043148,002665: 00,3266           00002                           TC       Q                                     
043149,002666: 
043150,002667: 00,3267           00006        VSQSUB             EXTEND                                         #  DOTS THE VECTOR IN MPAC WITH ITSELF.
043151,002668: 00,3270           22127                           QXCH     DOTRET                                
043152,002669: 00,3271           03250                           TC       DSQSUB                                #  SQUARE THE X COMPONENT.
043153,002670: 00,3272           52150                           DXCH     MPAC       +3                         
043154,002671: 00,3273           52145                           DXCH     MPAC                                  
043155,002672: 
043156,002673: 00,3274           52121                           DXCH     BUF                                   #  SO WE CAN END IN DOTSUB.
043157,002674: 00,3275           30146                           CA       MPAC       +2                         
043158,002675: 00,3276           54122                           TS       BUF        +2                         
043159,002676: 
043160,002677: 00,3277           03250                           TC       DSQSUB                                #  SQUARE Y COMPONENT.
043161,002678: 00,3300           52146                           DXCH     MPAC       +1                         
043162,002679: 00,3301           20122                           DAS      BUF        +1                         
043163,002680: 00,3302           60144                           AD       MPAC                                  
043164,002681: 00,3303           60120                           AD       BUF                                   
043165,002682: 00,3304           54120                           TS       BUF                                   
043166,002683: 
043167,002684: 00,3305           13307                           TCF      +2                                    
043168,002685: 00,3306           54111                           TS       OVFIND                                #  IF OVERFLOW.
043169,002686: 
043170,002687: 00,3307           52152                           DXCH     MPAC       +5                         
043171,002688: 00,3310           52145                           DXCH     MPAC                                  
043172,002689: 00,3311           03250                           TC       DSQSUB                                #  SQUARE Z COMPONENT.
043173,002690: 00,3312           17250                           TCF      ENDDOT                                #  END AS IN DOTSUB.
043174,002691: 

Page 969

043176,002693:                                                                                                  #           DOUBLE PRECISION SQUARE ROOT ROUTINE. TAKE THE SQUARE ROOT OF THE TRIPLE PRECISION (MPAC +2 USED ONLY
043177,002694:                                                                                                  #  IN NORMALIZATION) CONTENTS OF MPAC AND LEAVE THE NORMALIZED RESULT IN MPAC (C(MPAC) GREATER THAN OR EQUAL TO
043178,002695:                                                                                                  #  .5). THE RIGHT SHIFT COUNT (TO UNNORMALIZE) IS LEFT IN MPTEMP.
043179,002696: 
043180,002697: 
043181,002698: 
043182,002699: 00,3313           37761        SQRTSUB            CAF      ZERO                                  #  START BY ZEROING RIGHT SHIFT COUNT.
043183,002700: 00,3314           54125                           TS       MPTEMP                                
043184,002701: 
043185,002702: 
043186,002703: 00,3315           10144                           CCS      MPAC                                  #  CHECK FOR POSITIVE ARGUMENT, SHIFTING
043187,002704: 00,3316           13354                           TCF      SMPAC+                                #  FIRST SIGNIFICANT MPAC REGISTER INTO
043188,002705: 00,3317           13321                           TCF      +2                                    #  MPAC ITSELF.
043189,002706: 00,3320           13343                           TCF      SQRTNEG                               #  SEE IF MAG OF ARGUMENT LESS THAN 10(-4).
043190,002707: 
043191,002708: 00,3321           56146                           XCH      MPAC       +2                         #  MPAC IS ZERO - SHIFT LEFT 14.
043192,002709: 00,3322           56145                           XCH      MPAC       +1                         
043193,002710: 00,3323           54144                           TS       MPAC                                  
043194,002711: 00,3324           37757                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
043195,002712: 
043196,002713: 00,3325           54125                           TS       MPTEMP                                
043197,002714: 
043198,002715: 00,3326           10144                           CCS      MPAC                                  #  SEE IF MPAC NOW PNZ.
043199,002716: 00,3327           13354                           TCF      SMPAC+                                
043200,002717: 00,3330           13332                           TCF      +2                                    
043201,002718: 00,3331           13346                           TCF      ZEROANS                               #  NEGATIVE BUT LESS THAN 10(-4) IN MAG.
043202,002719: 
043203,002720: 00,3332           56145                           XCH      MPAC       +1                         #  ZERO - SHIFT LEFT 14 AGAIN.
043204,002721: 00,3333           54144                           TS       MPAC                                  
043205,002722: 00,3334           37757                           CAF      SEVEN                                 #  AUGMENT RIGHT SHIFT COUNTER.
043206,002723: 00,3335           26125                           ADS      MPTEMP                                
043207,002724: 
043208,002725: 
043209,002726: 00,3336           10144                           CCS      MPAC                                  
043210,002727: 00,3337           13354                           TCF      SMPAC+                                
043211,002728: 00,3340           00002                           TC       Q                                     #  SQRT(0) = 0.
043212,002729: 00,3341           13346                           TCF      ZEROANS                               
043213,002730: 00,3342           00002                           TC       Q                                     
043214,002731: 
043215,002732: 
043216,002733: 
043217,002734: 00,3343           10000        SQRTNEG            CCS      A                                     #  ARGUMENT IS NEGATIVE, BUT SEE IF SIGN-
043218,002735: 00,3344           13352                           TCF      SQRTABRT                              #  CORRECTED ARGUMENT IS LESS THAN 10(-4)
043219,002736: 
043220,002737: 00,3345           10145                           CCS      MPAC       +1                         #  IN MAGNITUDE. IF SO, CALL ANSWER ZERO.
043221,002738: 00,3346           37761        ZEROANS            CAF      ZERO                                  #  FORCE ANSWER TO ZERO HERE.
043222,002739: 00,3347           13422                           TCF      FIXROOT                               
043223,002740: 00,3350           13352                           TCF      SQRTABRT                              
043224,002741: 00,3351           13422                           TCF      FIXROOT                               
043225,002742: 
043226,002743: 00,3352           06000        SQRTABRT           TC       ABORT                                 
043227,002744: 00,3353           01302                           OCT      1302                                  
043228,002745: 

Page 970

043230,002747: 00,3354           62430        SMPAC+             AD       -1/2+2                                #  SEE IF ARGUMENT GREATER THAN OR EQUAL TO
043231,002748: 
043232,002749: 00,3355           00006                           EXTEND                                         #  .5.
043233,002750: 00,3356           63425                           BZMF     SRTEST                                #  IF SO, SEE IF LESS THAN .25.
043234,002751: 
043235,002752: 00,3357           52145                           DXCH     MPAC                                  #  WE WILL TAKE THE SQUARE ROOT OF MPAC/2.
043236,002753: 00,3360           22021                           LXCH     SR                                    #  SHIFT RIGHT 1 AND GO TO THE SQRT ROUTINE
043237,002754: 00,3361           00006                           EXTEND                                         
043238,002755: 00,3362           77740                           MP       HALF                                  
043239,002756: 00,3363           52145                           DXCH     MPAC                                  
043240,002757: 00,3364           56021                           XCH      SR                                    
043241,002758: 00,3365           26145                           ADS      MPAC       +1                         #  GUARANTEED NO OVERFLOW.
043242,002759: 
043243,002760: 00,3366           32314        ARGHI              CAF      SLOPEHI                               #  ARGUMENT BETWEEN .25 AND .5. GET A
043244,002761: 
043245,002762: 00,3367           00006                           EXTEND                                         #  LINEAR APPROXIMATION FOR THIS RANGE.
043246,002763: 00,3370           70144                           MP       MPAC                                  
043247,002764: 00,3371           62530                           AD       BIASHI                                #  X0/2 = (MPAC/2)(SLOPEHI) + BIASHI/2.
043248,002765: 
043249,002766: 00,3372           54120                 +4        TS       BUF                                   #  X0/2 (ARGLO ENTERS HERE).
043250,002767: 00,3373           30144                           CA       MPAC                                  #  SINGLE-PRECISION THROUGHOUT.
043251,002768: 00,3374           22007                           ZL                                             
043252,002769: 00,3375           00006                           EXTEND                                         
043253,002770: 00,3376           10120                           DV       BUF                                   #  (MPAC/2)/(X0/2)
043254,002771: 00,3377           00006                           EXTEND                                         
043255,002772: 
043256,002773: 00,3400           77740                           MP       HALF                                  
043257,002774: 00,3401           26120                           ADS      BUF                                   #  X1 = X0/2 + .5(MPAC/2)/(X0/2).
043258,002775: 
043259,002776: 00,3402           00006                           EXTEND                                         
043260,002777: 00,3403           77740                           MP       HALF                                  #  FORM UP X1/2.
043261,002778: 00,3404           52145                           DXCH     MPAC                                  #  SAVE AND BRING OUT ARGUMENT.
043262,002779: 00,3405           00006                           EXTEND                                         #  TAKE DP QUOTIENT WITH X1.
043263,002780: 00,3406           10120                           DV       BUF                                   
043264,002781: 00,3407           54121                           TS       BUF        +1                         #  SAVE MAJOR PART OF QUOTIENT.
043265,002782: 00,3410           37761                           CAF      ZERO                                  #  FORM MINOR PART OF QUOTIENT USING
043266,002783: 00,3411           56001                           XCH      L                                     #  (REMAINDER,0).
043267,002784: 00,3412           00006                           EXTEND                                         
043268,002785: 
043269,002786: 00,3413           10120                           DV       BUF                                   
043270,002787: 00,3414           54001                           TS       L                                     #  IN PREPARATION FOR DAS.
043271,002788: 00,3415           30121                           CA       BUF        +1                         
043272,002789: 00,3416           20145                           DAS      MPAC                                  #  X2 = X1/2 + (MPAC/2)X1
043273,002790: 
043274,002791: 00,3417           00006                           EXTEND                                         #  OVERFLOWS IF ARG. NEAR POSMAX.
043275,002792: 00,3420           13424                           BZF      TCQBNK00                              
043276,002793: 00,3421           37735                           CAF      POSMAX                                
043277,002794: 00,3422           54144        FIXROOT            TS       MPAC                                  
043278,002795: 00,3423           54145                           TS       MPAC       +1                         
043279,002796: 
043280,002797: 00,3424           00002        TCQBNK00           TC       Q                                     #  RETURN TO CALLER TO UNNORMALIZE, ETC.
043281,002798: 

Page 971

043283,002800: 00,3425           67741        SRTEST             AD       QUARTER                               #  ARGUMENT WAS LESS THAN .5, SEE IF LESS
043284,002801: 00,3426           00006                           EXTEND                                         #  THAN .25.
043285,002802: 00,3427           63451                           BZMF     SQRTNORM                              #  IF SO, BEGIN NORMALIZATION.
043286,002803: 
043287,002804: 00,3430           52145                           DXCH     MPAC                                  #  IF BETWEEN .5 AND .25, SHIFT RIGHT 1 AND
043288,002805: 00,3431           22021                           LXCH     SR                                    #  START AT ARGLO.
043289,002806: 
043290,002807: 00,3432           00006                           EXTEND                                         
043291,002808: 00,3433           77740                           MP       HALF                                  
043292,002809: 00,3434           52145                           DXCH     MPAC                                  
043293,002810: 00,3435           56021                           XCH      SR                                    
043294,002811: 00,3436           26145                           ADS      MPAC       +1                         #  NO OVERFLOW.
043295,002812: 
043296,002813: 00,3437           32760        ARGLO              CAF      SLOPELO                               #  (NORMALIZED) ARGUMENT BETWEEN .125 AND
043297,002814: 00,3440           00006                           EXTEND                                         #  .25
043298,002815: 00,3441           70144                           MP       MPAC                                  
043299,002816: 00,3442           62270                           AD       BIASLO                                
043300,002817: 00,3443           13372                           TCF      ARGHI      +4                         #  BEGIN SQUARE ROOT.
043301,002818: 
043302,002819: 
043303,002820: 00,3444           00006        SQRTNM2            EXTEND                                         #  SHIFT LEFT 2 AND INCREMENT RIGHT SHIFT
043304,002821: 00,3445           30146                           DCA      MPAC       +1                         #  COUNT (FOR TERMINAL UNNORMALIZATION).
043305,002822: 00,3446           20146                           DAS      MPAC       +1                         
043306,002823: 00,3447           60144                           AD       MPAC                                  
043307,002824: 00,3450           26144                           ADS      MPAC                                  #  (NO OVERFLOW).
043308,002825: 
043309,002826: 00,3451           24125        SQRTNORM           INCR     MPTEMP                                #  FIRST TIME THROUGH, JUST SHIFT LEFT 1
043310,002827: 00,3452           00006                           EXTEND                                         #  (PUTS IN EFFECTIVE RIGHT SHIFT SINCE
043311,002828: 00,3453           30146                           DCA      MPAC       +1                         #  WE WANT MPAC/2).
043312,002829: 00,3454           20146                           DAS      MPAC       +1                         
043313,002830: 
043314,002831: 00,3455           60144                           AD       MPAC                                  
043315,002832: 00,3456           26144                           ADS      MPAC                                  #  (AGAIN NO OVERFLOW).
043316,002833: 00,3457           60000                           DOUBLE                                         
043317,002834: 00,3460           54022                           TS       CYL                                   
043318,002835: 
043319,002836: 00,3461           10022        NORMTEST           CCS      CYL                                   #  SEE IF ARGUMENT NOW NORMALIZED AT
043320,002837: 00,3462           10022                           CCS      CYL                                   #  GREATER THAN .125.
043321,002838: 00,3463           13444                           TCF      SQRTNM2                               #  NO - SHIFT LEFT 2 MORE AND TRY AGAIN.
043322,002839: 00,3464           13366                           TCF      ARGHI                                 #  YES - NOW BETWEEN .5 AND .25.
043323,002840: 00,3465           13437                           TCF      ARGLO                                 #  ARGUMENT NOW BETWEEN .25 AND .125.
043324,002841: 

Page 972

043326,002843:                                                                                                  #  TRIGONOMETRIC FUNCTION PACKAGE.
043327,002844: 
043328,002845: 
043329,002846:                                                                                                  #           THE FOLLOWING TRIGONOMETRIC FUNCTIONS ARE AVAILABLE AS INTERPRETIVE OPERATIONS:
043330,002847: 
043331,002848:                                                                                                  #           1.  SIN                COMPUTES (1/2)SINE(2 PI MPAC).
043332,002849:                                                                                                  #           2.  COS                COMPUTES (1/2)COSINE(2 PI MPAC).
043333,002850: 
043334,002851:                                                                                                  #           3.  ASIN               COMPUTES (1/2PI)ARCSINE(2 MPAC).
043335,002852:                                                                                                  #           4.  ACOS               COMPUTES (1/2PI)ARCCOSINE(2 MPAC).
043336,002853: 
043337,002854:                                                                                                  #  SIN-ASIN AND COS-ACOS ARE MUTUALLY INVERSE, IE SIN(ASIN(X)) = X.
043338,002855: 
043339,002856: 
043340,002857: 
043341,002858: 00,3466           06772        COSINE             TC       BRANCH                                #  FINDS COSINE USING THE IDENTITY
043342,002859: 00,3467           13472                           TCF      +3                                    #  COS(X) = SIN(PI/2 - ABS(X)).
043343,002860: 00,3470           13475                           TCF      PRESINE                               
043344,002861: 00,3471           13475                           TCF      PRESINE                               
043345,002862: 
043346,002863: 00,3472           00006                 +3        EXTEND                                         
043347,002864: 00,3473           40145                           DCS      MPAC                                  
043348,002865: 00,3474           52145                           DXCH     MPAC                                  
043349,002866: 
043350,002867: 00,3475           37741        PRESINE            CAF      QUARTER                               #  PI/2 SCALED.
043351,002868: 00,3476           26144                           ADS      MPAC                                  
043352,002869: 
043353,002870: 
043354,002871: 
043355,002872: 
043356,002873: 00,3477           52145        SINE               DXCH     MPAC                                  #  DOUBLE ARGUMENT.
043357,002874: 00,3500           20001                           DDOUBL                                         
043358,002875: 00,3501           54000                           OVSK                                           #  SEE IF OVERFLOW PRESENT.
043359,002876: 00,3502           13505                           TCF      +3                                    #  IF NOT, ARGUMENT OK AS IS.
043360,002877: 
043361,002878: 00,3503           00006                           EXTEND                                         #  IF SO, WE LOST (OR GAINED) PI, SO
043362,002879: 00,3504           40001                           DCOM                                           #  COMPLEMENT MPAC USING THE IDENTITY
043363,002880: 
043364,002881:                                                                                                  #  SIN(X-(+)PI) = SIN(-X).
043365,002882: 00,3505           52145                 +3        DXCH     MPAC                                  
043366,002883: 00,3506           30144                           CA       MPAC                                  #  SEE IF ARGUMENT GREATER THAN .5 IN
043367,002884: 00,3507           60000                           DOUBLE                                         #  MAGNITUDE. IF SO, REDUCE IT TO LESS THAN
043368,002885: 00,3510           54001                           TS       L                                     #  .5 (+-PI/2 SCALED) AS FOLLOWS:
043369,002886: 00,3511           13522                           TCF      SN1                                   
043370,002887: 
043371,002888: 00,3512           50000                           INDEX    A                                     #  IF POSITIVE, FORM PI - X, IF NEGATIVE
043372,002889: 00,3513           37737                           CAF      NEG1/2     +1                         #  USE -PI - X.
043373,002890: 00,3514           60000                           DOUBLE                                         
043374,002891: 00,3515           00006                           EXTEND                                         
043375,002892: 00,3516           60144                           SU       MPAC                                  #  GUARANTEED NO OVERFLOW.
043376,002893: 
043377,002894: 00,3517           54144                           TS       MPAC                                  
043378,002895: 00,3520           40145                           CS       MPAC       +1                         
043379,002896: 00,3521           54145                           TS       MPAC       +1                         
043380,002897: 

Page 973

043382,002899: 00,3522           00006        SN1                EXTEND                                         #  SET UP TO EVALUATE HASTINGS POLYNOMIAL
043383,002900: 00,3523           30145                           DCA      MPAC                                  
043384,002901: 00,3524           52124                           DXCH     BUF2                                  
043385,002902: 00,3525           03250                           TC       DSQSUB                                #  SQUARE MPAC.
043386,002903: 
043387,002904: 00,3526           07265                           TC       POLY                                  #  EVALUATE FOURTH ORDER POLYNOMIAL.
043388,002905: 00,3527           00003                           DEC      3          B-14                       
043389,002906: 00,3530           14441 37325                     2DEC     +.3926990796                            
043390,002907: 
043391,002908: 
043392,002909: 00,3532           53250 60764                     2DEC     -.6459637111                            
043393,002910: 
043394,002911: 00,3534           12146 21276                     2DEC     +.318758717                            
043395,002912: 
043396,002913: 00,3536           75466 71471                     2DEC     -.074780249                            
043397,002914: 
043398,002915: 00,3540           00236 32757                     2DEC     +.009694988                            
043399,002916: 
043400,002917: 00,3542           32454                           CAF      LBUF2                                 #  MULTIPLY BY ARGUMENT AND SHIFT LEFT 2.
043401,002918: 
043402,002919: 00,3543           07151                           TC       DMPSUB     -1                         
043403,002920: 
043404,002921: 00,3544           00006                           EXTEND                                         
043405,002922: 00,3545           30146                           DCA      MPAC       +1                         
043406,002923: 00,3546           20146                           DAS      MPAC       +1                         
043407,002924: 00,3547           60144                           AD       MPAC                                  
043408,002925: 00,3550           26144                           ADS      MPAC                                  #  NEITHER SHIFT OVERFLOWS.
043409,002926: 00,3551           00006                           EXTEND                                         
043410,002927: 00,3552           30146                           DCA      MPAC       +1                         
043411,002928: 00,3553           20146                           DAS      MPAC       +1                         
043412,002929: 00,3554           60144                           AD       MPAC                                  
043413,002930: 00,3555           26144                           ADS      MPAC                                  
043414,002931: 
043415,002932: 00,3556           16115                           TCF      DANZIG                                
043416,002933: 

Page 974

043418,002935:                                                                                                  #           ARCSIN/ARCCOS ROUTINE.
043419,002936: 
043420,002937: 00,3557           33600        ARCSIN             CAF      LASINEX                               #  COMPUTE ARCSIN BY USING THE IDENTITY
043421,002938: 00,3560           13562                           TCF      +2                                    #  ARCSIN(X) = PI/2 - ARCCOS(X).
043422,002939: 
043423,002940: 00,3561           33662        ARCCOS             CAF      LDANZIG                               #  (EXITS IMMEDIATELY).
043424,002941: 00,3562           54126                           TS       ESCAPE                                
043425,002942: 00,3563           06772                           TC       BRANCH                                #  TEST SIGN OF INPUT.
043426,002943: 00,3564           13574                           TCF      ACOSST                                #  START IMMEDIATELY IF POSITIVE.
043427,002944: 00,3565           13674                           TCF      ACOSZERO                              #  ARCCOS(0) = PI/2 = .25.
043428,002945: 00,3566           00006                           EXTEND                                         #  IF NEGATIVE, USE THE IDENTITY
043429,002946: 00,3567           40145                           DCS      MPAC                                  #  ARCCOS(X) = PI - ARCCOS(-X), FORCING
043430,002947: 00,3570           52145                           DXCH     MPAC                                  #  ARGUMENT POSITIVE.
043431,002948: 00,3571           33677                           CAF      TCSUBTR                               #  SET EXIT  TO DO ABOVE BEFORE
043432,002949: 
043433,002950: 00,3572           56126                           XCH      ESCAPE                                #  ARCSIN/ARCCOS CONSIDERATIONS.
043434,002951: 00,3573           54127                           TS       ESCAPE2                               
043435,002952: 
043436,002953: 00,3574           47740        ACOSST             CS       HALF                                  #  TEST MAGNITUDE OF INPUT.
043437,002954: 00,3575           60144                           AD       MPAC                                  
043438,002955: 00,3576           10000                           CCS      A                                     
043439,002956: 00,3577           13670                           TCF      ACOSOVF                               #  THIS IS PROBABLY AN OVERFLOW CASE.
043440,002957: 
043441,002958: 00,3600           13656        LASINEX            TCF      ASINEX                                
043442,002959: 
043443,002960: 00,3601           13611                           TCF      ACOSST2                               #  NO OVERFLOW - PROCEED.
043444,002961: 
043445,002962: 00,3602           10145                           CCS      MPAC       +1                         #  IF MAJOR PART IS .5, CALL ANSWER 0
043446,002963: 00,3603           37761                           CAF      ZERO                                  #  UNLESS MINOR PART NEGATIVE.
043447,002964: 00,3604           13606                           TCF      ACOS=0                                
043448,002965: 
043449,002966: 00,3605           13611                           TCF      ACOSST2                               
043450,002967: 
043451,002968: 00,3606           54145        ACOS=0             TS       MPAC       +1                         
043452,002969: 00,3607           54144                           TS       MPAC                                  
043453,002970: 00,3610           00126                           TC       ESCAPE                                
043454,002971: 
043455,002972: 00,3611           00006        ACOSST2            EXTEND                                         #  NOW THAT ARGUMENT IS IN PROPER RANGE,
043456,002973: 
043457,002974: 00,3612           40145                           DCS      MPAC                                  #  BEGIN COMPUTATION. USE HASTINGS
043458,002975: 00,3613           67740                           AD       HALF                                  #  APPROXIMATION ARCCOS(X) = SQRT(1-X)P(X)
043459,002976: 00,3614           52145                           DXCH     MPAC                                  #  IN A SCALED VERSION WHERE P(X) IS A
043460,002977: 00,3615           52124                           DXCH     BUF2                                  #  SEVENTH ORDER POLYNOMIAL.
043461,002978: 
043462,002979: 00,3616           03313                           TC       SQRTSUB                               #  RETURNS WITH NORMALIZED SQUARE ROOT.
043463,002980: 
043464,002981: 00,3617           10125                           CCS      MPTEMP                                #  SEE IF UN-NORMALIZATION REQUIRED.
043465,002982: 00,3620           13663                           TCF      ACOSSHR                               #  IF SO.
043466,002983: 

Page 975

043468,002985: 00,3621           52145        ACOS3              DXCH     MPAC                                  #  SET UP FOR POLYNOMIAL EVALUATION.
043469,002986: 00,3622           52124                           DXCH     BUF2                                  
043470,002987: 00,3623           52145                           DXCH     MPAC                                  
043471,002988: 
043472,002989: 00,3624           07265                           TC       POLY                                  
043473,002990: 00,3625           00006                           DEC      6          B-14                       
043474,002991: 
043475,002992: 00,3626           13240 23630                     2DEC     +.353553385                            #  COEFFICIENTS ARE C 2(+I)/PISQRT(2) WHERE
043476,002993: 
043477,002994: 00,3630           74721 47775                     2DEC*    -.0483017006 B+1*                       #                    I
043478,002995: 
043479,002996: 00,3632           02440 20237                     2DEC*    +.0200273085 B+2*                       #       WHERE C STANDS FOR ORIGINAL COEFFS.
043480,002997: 
043481,002998: 00,3634           75067 70742                     2DEC*    -.0112931863 B+3*                       
043482,002999: 
043483,003000: 00,3636           03436 26756                     2DEC*    +.00695311612 B+4*                       
043484,003001: 
043485,003002: 00,3640           74037 57640                     2DEC*    -.00384617957 B+5*                       
043486,003003: 
043487,003004: 
043488,003005: 00,3642           03046 07143                     2DEC*    +.001501297736 B+6*                       
043489,003006: 
043490,003007: 00,3644           76654 42244                     2DEC*    -.000284160334 B+7*                       
043491,003008: 
043492,003009: 00,3646           32454                           CAF      LBUF2                                 #  DO FINAL MULTIPLY AND GO TO ANY
043493,003010: 00,3647           07151                           TC       DMPSUB     -1                         #  EPILOGUE SEQUENCES.
043494,003011: 00,3650           00126                           TC       ESCAPE                                
043495,003012: 
043496,003013: 00,3651           00006        SUBTR              EXTEND                                         #  EPILOGUE FOR NEGATIVE INPUTS TO ARCCOS.
043497,003014: 00,3652           40145                           DCS      MPAC                                  
043498,003015: 
043499,003016: 00,3653           67740                           AD       HALF                                  #  FORMS PI - ARCCOS(-X) = ARCCOS(X).
043500,003017: 00,3654           52145                           DXCH     MPAC                                  
043501,003018: 00,3655           00127                           TC       ESCAPE2                               #  GO TO POSSIBLE ARCSIN EPILOGUE.
043502,003019: 
043503,003020: 00,3656           00006        ASINEX             EXTEND                                         
043504,003021: 00,3657           40145                           DCS      MPAC                                  #  ARCSIN EPILOGUE - GET ARCSIN(X)
043505,003022: 00,3660           67741                           AD       QUARTER                               #  = PI/2 - ARCCOS(X).
043506,003023: 00,3661           52145                           DXCH     MPAC                                  
043507,003024: 00,3662           16115        LDANZIG            TCF      DANZIG                                
043508,003025: 

Page 976

043510,003027: 00,3663           50000        ACOSSHR            INDEX    A                                     #  THE SHIFT RIGHT IS LESS THAN 14 SINCE
043511,003028: 00,3664           37740                           CAF      BIT14                                 #  THE INPUT WAS NON-ZERO DP.
043512,003029: 
043513,003030: 00,3665           54125                           TS       MPTEMP                                
043514,003031: 00,3666           02073                           TC       VSHRRND                               #  DP SHIFT RIGHT AND ROUND.
043515,003032: 00,3667           13621                           TCF      ACOS3                                 #  PROCEED.
043516,003033: 
043517,003034: 00,3670           00006        ACOSOVF            EXTEND                                         #  IF MAJOR PART WAS ONLY 1 MORE THAN .5,
043518,003035: 00,3671           13606                           BZF      ACOS=0                                #  CALL ANSWER ZERO.
043519,003036: 
043520,003037: 00,3672           06000        ACOSABRT           TC       ABORT                                 
043521,003038: 00,3673           01301                           OCT      1301                                  
043522,003039: 
043523,003040: 00,3674           37741        ACOSZERO           CAF      QUARTER                               #  ACOS(0) = PI/2.
043524,003041: 00,3675           13607                           TCF      ACOS=0     +1                         #  SET MPAC AND EXIT VIA ESCAPE.
043525,003042: 
043526,003043: 00,3676           77763        NEG12              DEC      -12        B-14                       
043527,003044: 00,3677           13651        TCSUBTR            TCF      SUBTR                                 
043528,003045: 

Page 977

043530,003047:                                                                                                  #           THE FOLLOWING INSTRUCTIONS ARE AVAILABLE FOR SETTING, MODIFYING, AND BRANCHING ON INDEX REGISTERS:
043531,003048: 
043532,003049:                                                                                                  #           1.  AXT                ADDRESS TO INDEX TRUE.
043533,003050:                                                                                                  #           2.  AXC                ADDRESS TO INDEX COMPLEMENTED.
043534,003051:                                                                                                  #           3.  LXA                LOAD INDEX FROM ERASABLE.
043535,003052:                                                                                                  #           4.  LXC                LOAD INDEX COMPLEMENTED FROM ERASABLE.
043536,003053:                                                                                                  #           5.  SXA                STORE INDEX IN ERASABLE.
043537,003054:                                                                                                  #           6.  XCHX               EXCHANGE INDEX REIGSTER WITH ERASABLE.
043538,003055: 
043539,003056: 
043540,003057:                                                                                                  #           7.  INCR               INCREMENT INDEX REGISTER.
043541,003058:                                                                                                  #           8.  XAD                ERASABLE ADD TO INDEX REGISTER.
043542,003059:                                                                                                  #           9.  XSU                ERASABLE SUBTRACT FROM INDEX REGISTER.
043543,003060: 
043544,003061:                                                                                                  #          10.  TIX                BRANCH ON INDEX REGISTER AND DECREMENT.
043545,003062: 
043546,003063: 
043547,003064: 
043548,003065: 01,2557                                           BANK     01                                    
043549,003066: 
043550,003067: 01,2557           02654        AXT                TC       TAGSUB                                #  SELECT APPROPRIATE INDEX REGISTER.
043551,003068: 01,2560           30107                           CA       POLISH                                
043552,003069: 01,2561           50120        XSTORE             INDEX    INDEXLOC                              #  CONTAINS C(FIXLOC) OR C(FIXLOC)+1.
043553,003070: 01,2562           54046                           TS       X1                                    
043554,003071: 01,2563           16115                           TCF      DANZIG                                
043555,003072: 
043556,003073: 01,2564           02654        AXC                TC       TAGSUB                                
043557,003074: 01,2565           40107                           CS       POLISH                                
043558,003075: 01,2566           02561                           TC       XSTORE                                
043559,003076: 
043560,003077: 01,2567           02642        LXA                TC       15ADRERS                              #  LOAD INDEX REGISTER FROM ERASABLE.
043561,003078: 01,2570           50107                           INDEX    POLISH                                
043562,003079: 
043563,003080: 01,2571           30000                           CA       0                                     
043564,003081: 01,2572           12561                           TCF      XSTORE                                
043565,003082: 
043566,003083: 01,2573           02642        LXC                TC       15ADRERS                              #  LOAD NDX REG FROM ERASABLE COMPLEMENTED.
043567,003084: 01,2574           50107                           INDEX    POLISH                                
043568,003085: 01,2575           40000                           CS       0                                     
043569,003086: 01,2576           12561                           TCF      XSTORE                                
043570,003087: 
043571,003088: 01,2577           02642        SXA                TC       15ADRERS                              #  STORE INDEX REGISTER IN ERASABLE.
043572,003089: 01,2600           50120                           INDEX    INDEXLOC                              
043573,003090: 
043574,003091: 01,2601           30046                           CA       X1                                    
043575,003092: 01,2602           50107        MSTORE1            INDEX    POLISH                                
043576,003093: 01,2603           54000                           TS       0                                     
043577,003094: 01,2604           16115                           TCF      DANZIG                                
043578,003095: 

Page 978

043580,003097: 01,2605           02642        XCHX               TC       15ADRERS                              #  EXCHANGE INDEX REGISTER WITH ERASABLE.
043581,003098: 
043582,003099: 01,2606           50107                           INDEX    POLISH                                
043583,003100: 01,2607           30000                           CA       0                                     
043584,003101: 01,2610           50120                           INDEX    INDEXLOC                              
043585,003102: 01,2611           56046                           XCH      X1                                    
043586,003103: 01,2612           12602                           TCF      MSTORE1                               
043587,003104: 
043588,003105: 01,2613           02642        XAD                TC       15ADRERS                              #  ADD ERASABLE TO INDEX REGISTER.
043589,003106: 01,2614           50107                           INDEX    POLISH                                
043590,003107: 01,2615           30000                           CA       0                                     
043591,003108: 01,2616           50120        XAD2               INDEX    INDEXLOC                              
043592,003109: 01,2617           26046                           ADS      X1                                    #  IGNORING OVERFLOWS.
043593,003110: 01,2620           16115                           TCF      DANZIG                                
043594,003111: 
043595,003112: 
043596,003113: 01,2621           02654        INCR               TC       TAGSUB                                #  INCREMENT INDEX REGISTER.
043597,003114: 01,2622           30107                           CA       POLISH                                
043598,003115: 01,2623           12616                           TCF      XAD2                                  
043599,003116: 
043600,003117: 01,2624           02642        XSU                TC       15ADRERS                              #  SUBTRACT ERASABLE FROM INDEX REGISTER.
043601,003118: 01,2625           50107                           INDEX    POLISH                                
043602,003119: 01,2626           40000                           CS       0                                     
043603,003120: 01,2627           12616                           TCF      XAD2                                  
043604,003121: 
043605,003122: 
043606,003123: 
043607,003124: 01,2630           02654        TIX                TC       TAGSUB                                #  BRANCH AND DECREMENT ON INDEX.
043608,003125: 01,2631           50120                           INDEX    INDEXLOC                              
043609,003126: 01,2632           40050                           CS       S1                                    
043610,003127: 01,2633           50120                           INDEX    INDEXLOC                              
043611,003128: 01,2634           60046                           AD       X1                                    
043612,003129: 01,2635           00006                           EXTEND                                         #  NO OPERATION IF DECREMENTED INDEX IS
043613,003130: 01,2636           66115                           BZMF     DANZIG                                #  NEGATIVE OR ZERO.
043614,003131: 
043615,003132: 01,2637           50120        DOTIXBR            INDEX    INDEXLOC                              
043616,003133: 01,2640           56046                           XCH      X1                                    #  IGNORING OVERFLOWS.
043617,003134: 
043618,003135: 
043619,003136: 01,2641           16715                           TCF      GOTO                                  #  DO THE BRANCH USING THE CADR IN POLISH.
043620,003137: 

Page 979

043622,003139:                                                                                                  #           SUBROUTINE TO CONVERT AN ERASABLE ADDRESS (11 BITS) TO AN EBANK SETTING AND SUBADDRESS.
043623,003140: 
043624,003141: 01,2642           40107        15ADRERS           CS       POLISH                                
043625,003142: 01,2643           65371                           AD       DEC45                                 
043626,003143: 01,2644           10000                           CCS      A                                     #  DOES THE ADDRESS POINT TO THE WORK AREA?
043627,003144: 01,2645           30110                           CA       FIXLOC                                #  YES.  ADD FIXLOC.  EBANK OK AS IS.
043628,003145: 
043629,003146: 01,2646           12653                           TCF      +5                                    
043630,003147: 
043631,003148: 01,2647           35370                           CA       OCT1400                               #  NO.  SET EBANK & MAKE UP SUBADDRESS.
043632,003149: 01,2650           56107                           XCH      POLISH                                
043633,003150: 01,2651           54003                           TS       EBANK                                 
043634,003151: 01,2652           74553                           MASK     LOW8                                  
043635,003152: 01,2653           26107                 +5        ADS      POLISH                                #  FALL INTO TAGSUB, AND RETURN VIA Q.
043636,003153: 
043637,003154:                                                                                                  #           SUBROUTINE WHICH SETS THE ADDRESS OF THE SPECIFIED INDEX IN INDEXLOC. (ACTUALLY, THE ADDRESS -38D.)
043638,003155: 
043639,003156: 01,2654           30110        TAGSUB             CA       FIXLOC                                
043640,003157: 01,2655           54120                           TS       INDEXLOC                              
043641,003158: 
043642,003159: 
043643,003160: 01,2656           10020                           CCS      CYR                                   #  BIT 15 SPECIFIES INDEX.
043644,003161: 01,2657           24120                           INCR     INDEXLOC                              #  0 MEANS USE X2.
043645,003162: 01,2660           00002                           TC       Q                                     
043646,003163: 01,2661           00002                           TC       Q                                     #  1 FOR X1.
043647,003164: 

Page 980

043649,003166:                                                                                                  #           MISCELLANEOUS OPERATION CODES WITH DIRECT ADDRESSES. INCLUDED HERE ARE:
043650,003167: 
043651,003168: 
043652,003169:                                                                                                  #           1.  ITA                STORE QPRET (RETURN ADDRESS) IN ERASABLE.
043653,003170:                                                                                                  #           2.  CALL               CALL A SUBROUTINE, LEAVING RETURN IN QPRET.
043654,003171:                                                                                                  #           3.  RTB                RETURN TO BASIC LANGUAGE AT THE GIVEN ADDRESS.
043655,003172:                                                                                                  #           4.  BHIZ               BRANCH IF THE HIGH ORDER OF MPAC IS ZERO (SINGLE PRECISION).
043656,003173:                                                                                                  #           5.  BOV                BRANCH ON OVERFLOW.
043657,003174:                                                                                                  #           6.  GOTO               SIMPLE SEQUENCE CHANGE.
043658,003175: 
043659,003176: 01,2662           10020        RTB/BHIZ           CCS      CYR                                   
043660,003177: 01,2663           30107        RTB                CA       POLISH                                
043661,003178: 01,2664           15246                           TCF      BANKJUMP                              #  CALL BASIC ROUTINE.
043662,003179: 
043663,003180: 
043664,003181: 01,2665           10144        BHIZ               CCS      MPAC                                  
043665,003182: 01,2666           16115                           TCF      DANZIG                                
043666,003183: 01,2667           16715                           TCF      GOTO                                  
043667,003184: 01,2670           16115                           TCF      DANZIG                                
043668,003185: 01,2671           16715                           TCF      GOTO                                  
043669,003186: 
043670,003187: 01,2672           10111        BOV(B)             CCS      OVFIND                                #  BRANCH ON OVERFLOW TO BASIC OR INTERP.
043671,003188: 01,2673           12675                           TCF      +2                                    
043672,003189: 01,2674           16115                           TCF      DANZIG                                
043673,003190: 01,2675           54111                           TS       OVFIND                                
043674,003191: 01,2676           10020                           CCS      CYR                                   
043675,003192: 
043676,003193: 01,2677           12663                           TCF      RTB                                   #  IF BASIC.
043677,003194: 01,2700           00360        B5TOBB             OCT      360                                   
043678,003195: 01,2701           16715                           TCF      GOTO                                  
043679,003196: 

Page 981

043681,003198: 01,2702           10020        BZE/GOTO           CCS      CYR                                   #  SEE WHICH OP-CODE IS DESIRED.
043682,003199: 01,2703           06772                           TC       BRANCH                                #  DO BZE.
043683,003200: 01,2704           16115                           TCF      DANZIG                                
043684,003201: 01,2705           16715                           TCF      GOTO                                  #  DO GOTO.
043685,003202: 01,2706           16115                           TCF      DANZIG                                
043686,003203: 
043687,003204: 01,2707           10020        BPL/BMN            CCS      CYR                                   
043688,003205: 01,2710           12716                           TCF      BPL                                   
043689,003206: 
043690,003207: 01,2711           12000        5B10               DEC      5          B+10                       #  SHIFTS OP CODE IN SWITCH INSTRUCTION ADR
043691,003208: 
043692,003209: 01,2712           06772                           TC       BRANCH                                #  DO BMN.
043693,003210: 01,2713           16115                           TCF      DANZIG                                
043694,003211: 01,2714           16115                           TCF      DANZIG                                
043695,003212: 01,2715           16715                           TCF      GOTO                                  #  ONLY IF NNZ.
043696,003213: 
043697,003214: 01,2716           06772        BPL                TC       BRANCH                                
043698,003215: 01,2717           16715                           TCF      GOTO                                  #  IF POSITIVE OR ZERO.
043699,003216: 01,2720           16715                           TCF      GOTO                                  
043700,003217: 01,2721           16115                           TCF      DANZIG                                
043701,003218: 
043702,003219: 01,2722           10020        CALL/ITA           CCS      CYR                                   
043703,003220: 01,2723           16707                           TCF      CALL                                  
043704,003221: 
043705,003222: 01,2724           04725                           TC       CCSHOLE                               
043706,003223: 01,2725           02642                           TC       15ADRERS                              #  STORE QPRET. (TAGSUB AFTER 15ADRERS IS
043707,003224: 01,2726           50110                           INDEX    FIXLOC                                #  SLOW IN THIS CASE, BUT SAVES STORAGE.)
043708,003225: 01,2727           30052                           CA       QPRET                                 
043709,003226: 01,2730           12602                           TCF      MSTORE1                               
043710,003227: 

Page 982

043712,003229:                                                                                                  #           THE FOLLOWING OPERATIONS ARE AVAILABLE FOR ALTERING AND TESTING INTERPRETIVE SWITCHES:
043713,003230: 
043714,003231:                                                                                                  #  00       BONSET                 SET A SWITCH AND DO A GOTO IF IT WAS ON.
043715,003232:                                                                                                  #  01       SETGO                  SET A SWITCH AND DO A GOTO.
043716,003233:                                                                                                  #  02       BOFSET                 SET A SWITCH AND DO A GOTO IF IT WAS OFF
043717,003234:                                                                                                  #  03       SET                    SET A SWITCH.
043718,003235: 
043719,003236:                                                                                                  #  04       BONINV                 INVERT A SWITCH AND BRANCH IF IT WAS ON.
043720,003237:                                                                                                  #  05       INVGO                  INVERT A SWITCH AND DO A GOTO.
043721,003238:                                                                                                  #  06       BOFINV                 INVERT A SWITCH AND BRANCH IF IT WAS OFF
043722,003239:                                                                                                  #  07       INVERT                 INVERT A SWITCH.
043723,003240: 
043724,003241:                                                                                                  #  10       BONCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS ON.
043725,003242:                                                                                                  #  11       CLRGO                  CLEAR A SWITCH AND DO A GOTO.
043726,003243: 
043727,003244:                                                                                                  #  12       BOFCLR                 CLEAR A SWITCH AND BRANCH IF IT WAS OFF.
043728,003245:                                                                                                  #  13       CLEAR                  CLEAR A SWITCH.
043729,003246: 
043730,003247:                                                                                                  #  14       BON                    BRANCH IF A SWITCH WAS ON.
043731,003248:                                                                                                  #  16       BOFF                   BRANCH IF A SWITCH WAS OFF.
043732,003249: 
043733,003250: 
043734,003251: 
043735,003252:                                                                                                  #           THE ADDRESS SUPPLIED WITH THE SWITCH INSTRUCTION IS INTERPRETED AS FOLLOWS:
043736,003253: 
043737,003254:                                                                                                  #           BITS 1-4    SWITCH BIT NUMBER (1-15).
043738,003255:                                                                                                  #           BITS 5-8    SWITCH OPERATION NUMBER.
043739,003256:                                                                                                  #           BITS 9-     SWITCH WORD NUMBER (UP TO 64 SWITCH WORDS).
043740,003257: 
043741,003258:                                                                                                  #           THE ADDRESS ITSELF IS MADE UP BY THE YUL SYSTEM ASSEMBLER. THE BRANCH INSTRUCTIONS REQUIRE TWO
043742,003259:                                                                                                  #  ADDRESSES, THE SECOND TAKEN AS THE DIRECT (OR INDIRECT IF IN ERASABLE) ADDRESS OF THE BRANCH.
043743,003260: 
043744,003261: 
043745,003262: 
043746,003263: 01,2731           35361        SWITCHES           CAF      LOW4                                  #  LEAVE THE SWITCH BIT IN SWBIT  .
043747,003264: 01,2732           70107                           MASK     POLISH                                
043748,003265: 01,2733           50000                           INDEX    A                                     
043749,003266: 01,2734           37737                           CAF      BIT15                                 #  (NUMBER FROM LEFT TO RIGHT.)
043750,003267: 
043751,003268: 01,2735           54121                           TS       SWBIT                                 
043752,003269: 
043753,003270: 01,2736           37747                           CAF      BIT7                                  #  LEAVE THE SWITCH NUMBER IN SWWORD.
043754,003271: 01,2737           00006                           EXTEND                                         
043755,003272: 01,2740           70107                           MP       POLISH                                
043756,003273: 01,2741           54120                           TS       SWWORD                                
043757,003274: 
043758,003275: 01,2742           00004                           INHINT                                         #  DURING SWITCH CHANGE SO RUPT CAN USE TOO
043759,003276: 01,2743           50000                           INDEX    A                                     #  LEAVE THE SWITCH WORD ITSELF IN L.
043760,003277: 01,2744           30074                           CA       STATE                                 
043761,003278: 
043762,003279: 01,2745           54002                           TS       Q                                     #  Q WILL BE USED AS A CHANNEL.

Page 983

043764,003281: 01,2746           37743                           CAF      BIT11                                 
043765,003282: 01,2747           00006                           EXTEND                                         #  DISPATCH SWITCH BIT OPERATION AS IN BITS
043766,003283: 01,2750           70107                           MP       POLISH                                #  7-8 OF POLISH.
043767,003284: 01,2751           73011                           MASK     B3TOB4                                #  GETS 4X2-BIT CODE.
043768,003285: 01,2752           50000                           INDEX    A                                     
043769,003286: 01,2753           12754                           TCF      +1                                    
043770,003287: 
043771,003288: 
043772,003289: 01,2754           30121                 +1        CA       SWBIT                                 #  00 - SET SWITCH IN QUESTION.
043773,003290: 01,2755           00006                           EXTEND                                         
043774,003291: 01,2756           04002                           ROR      Q                                     
043775,003292: 01,2757           12766                           TCF      SWSTORE                               
043776,003293: 
043777,003294: 01,2760           30121                 +5        CA       SWBIT                                 #  01 - INVERT SWITCH.
043778,003295: 01,2761           00006                           EXTEND                                         
043779,003296: 01,2762           06002                           RXOR     Q                                     
043780,003297: 01,2763           12766                           TCF      SWSTORE                               
043781,003298: 
043782,003299: 01,2764           40121                 +9D       CS       SWBIT                                 #  10 - CLEAR.
043783,003300: 
043784,003301: 01,2765           70002                           MASK     Q                                     
043785,003302: 01,2766           50120        SWSTORE            INDEX    SWWORD                                
043786,003303: 01,2767           54074                           TS       STATE                                 #  NEW SWITCH WORD.
043787,003304: 

Page 984

043789,003306: 01,2770           00003                 +13D      RELINT                                         #  11 - NOOP.
043790,003307: 01,2771           37741                           CAF      BIT13                                 
043791,003308: 
043792,003309: 01,2772           00006                           EXTEND                                         #  DISPATCH SEQUCE CHANGING OR BRANCHING
043793,003310: 01,2773           70107                           MP       POLISH                                #  CODE.
043794,003311: 01,2774           73011                           MASK     B3TOB4                                
043795,003312: 01,2775           50000                           INDEX    A                                     
043796,003313: 01,2776           12777                           TCF      +1                                    #  ORIGINALLY STORED IN BITS 5-6.
043797,003314: 
043798,003315: 01,2777           40002                 +1        CS       Q                                     #  00 - BRANCH IF ON.
043799,003316: 01,3000           70121        TEST               MASK     SWBIT                                 
043800,003317: 01,3001           10000                           CCS      A                                     
043801,003318: 01,3002           13012                           TCF      SWSKIP                                
043802,003319: 
043803,003320: 01,3003           16764                 +5        TCF      SWBRANCH                              #  01 - GO TO.
043804,003321: 
043805,003322: 01,3004           13012                           TCF      SWSKIP                                #  HERE ONLY ON BIT 15.
043806,003323: 
043807,003324: 01,3005           04725                           TC       CCSHOLE                               
043808,003325: 01,3006           04725                           TC       CCSHOLE                               
043809,003326: 
043810,003327: 01,3007           30002                 +9D       CA       Q                                     #  10 - BRANCH IF OFF.
043811,003328: 01,3010           13000                           TCF      TEST                                  
043812,003329: 
043813,003330: 01,3011           00014        B3TOB4             OCT      14                                    
043814,003331: 
043815,003332: 
043816,003333: 01,3012           24154        SWSKIP             INCR     LOC                                   
043817,003334: 
043818,003335: 01,3013  01,2731               SW/                EQUALS   SWITCHES                              
043819,003336: 
043820,003337: 01,3013           16115                 +13D      TCF      DANZIG                                #  11 - NOOP.

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