Source Code
These source-code files were obtained by digitally photographing
a Solarium 55 (Apollo 6) program listing from the American Computer Museum in
Bozeman, Montana. Photography was by Ron Burkey, with assistance from
museum curator George Keremedjiev and Montana
State University curator Kim Scott. The listing originally belonged to Eldon C. Hall,
who donated it to the museum. Volunteers then manually typed in the
source code or else modified similar pre-existing Colossus 249
(Apollo 9) source files to incorporate changes, although this transcription was
principally done by Jim Lawton and corrected by Ron Burkey.
Notations on the program listing read, in part:YUL SYSTEM FOR AGC4: REVISION 0 OF PROGRAM SOLRUM55 BY NASA 1021108-021 DEC. 4, 1966Note that the date is the date of the printout, not the date of the program revision. Due to statements by Jay Sampson, the original contractor from AC Electronics who created Solarium 54 (Apollo 4) from the earlier Corona (AS-202 mission) program, it is believed that Solarium 54 and Solarium 55 (Apollo 6) are actually identical programs. The change in numbering, from 54 to 55, is believed to be for some administrative purpose. Thus, it is believed that the source-code represented here is equally appropriate for both Apollo 4 and Apollo 6 missions. |
001536,000002: ## Copyright: Public domain.
001537,000003: ## Filename: FIXED-FIXED_INTERPRETER_SECTION.agc
001538,000004: ## Purpose: Part of the source code for Solarium build 55. This
001539,000005: ## is for the Command Module's (CM) Apollo Guidance
001540,000006: ## Computer (AGC), for Apollo 6.
001541,000007: ## Assembler: yaYUL --block1
001542,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
001543,000009: ## Website: www.ibiblio.org/apollo/index.html
001544,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Solarium055/
001545,000011: ## Mod history: 2009-09-16 JL Created.
001546,000012: ## 2016-08-18 RSB Some corrections.
001547,000013: ## 2016-08-23 RSB More of the same.
001548,000014: ## 2016-12-28 RSB Proofed comment text using octopus/ProoferComments,
001549,000015: ## and fixed errors found.
001550,000016:
Page 37 |
001552,000018:
001553,000019: 4000 SETLOC 4000 # SECOND HALF OF FIXED-FIXED.
001554,000020:
001555,000021: 4000 10001 INTPRET CCS Q # ENTRY TO INTERPRETER
001556,000022: 4001 50121 TS ADRLOC
001557,000023:
001558,000024: 4002 40015 CS BANKREG # GET BANKBITS
001559,000025: 4003 50061 TS BANKSET
001560,000026: 4004 04007 TC +3
001561,000027:
001562,000028: 4005 40061 NEWEQUN CS BANKSET # HERE FOR NEW EQUATIONS
001563,000029: 4006 50015 TS BANKREG
001564,000030: 4007 34516 CAF ONE # SET NEWEQIND TO CALL LOAD
001565,000031: 4010 50066 TS NEWEQIND
001566,000032: 4011 60121 AD ADRLOC # C(ADRLOC) = LOCATION LAST ADDRESS USED
001567,000033: 4012 50120 TS LOC # FOR OPERATORS
001568,000034: 4013 20000 INDEX A # GET FIRST OP AND NO. OF OPERATOR WORDS
001569,000035: 4014 40000 CS 0
001570,000036: 4015 64335 AD MINUS1
001571,000037: 4016 50063 TS ORDER
001572,000038: 4017 74720 MASK LOW7 # NUMBER OF ADDITIONAL OPERATOR WORDS
001573,000039: 4020 60120 AD LOC
001574,000040: 4021 50121 TS ADRLOC # AND SET ADRLOC
001575,000041: 4022 35501 CAF ZERO # TO SET ORDER TO ZERO
001576,000042: 4023 04072 TC IPROC2
001577,000043:
Page 38 |
001579,000045:
001580,000046: 4024 10215 DANZIG CCS NEWJOB # INTERPRETIVE INTERRUPT
001581,000047: 4025 02113 TC CHANG2 # CALL IN BANK0 AND SWITCH JOBS
001582,000048:
001583,000049: 4026 40061 CS BANKSET # RESET BANK BITS OF OBJECT PROGRAM
001584,000050: 4027 50015 TS BANKREG
001585,000051:
001586,000052: 4030 10063 CCS ORDER # HAS NEXT OP CODE BEEN PROCESSED
001587,000053: 4031 04200 TC LOWWD # NEXT INSTRUCTION WAS RIGHT-HAND
001588,000054:
001589,000055: 4032 20120 INDEX LOC # PICK UP POSSIBLE NEXT INSTRUCTION
001590,000056: 4033 40001 CS 1
001591,000057: 4034 10000 CCS A
001592,000058: 4035 04065 TC IPROC # IT IS - GO PROCESS IT
001593,000059: 4036 04037 TC +1 # IN CASE THE FIRST ADDRESS WAS INACTIVE
001594,000060:
001595,000061: 4037 20121 INDEX ADRLOC # END OF EQUATION
001596,000062: 4040 40001 CS 1
001597,000063: 4041 10000 CCS A # IS THERE ANOTHER ADDRESS
001598,000064: 4042 04317 TC PUSHDOWN # NO - INSERT IN PUSH-DOWN LIST
001599,000065: 4043 00042 D34 DEC 34 B-14 # USED TO DISPATCH STORE OPERATIONS
001600,000066:
001601,000067: 4044 50076 STORADR TS POLISH # PROCESS STORE ADDRESSES
001602,000068: 4045 04364 TC INCADR # TO SHOW WE PICKED UP ANOTHER ADDRESS
001603,000069: 4046 34043 CAF D34 # FORM CODES 32 - 34
001604,000070: 4047 60065 AD MODE
001605,000071: 4050 60000 DOUBLE # BECAUSE WE HAVE TO PUT IT INTO CYR
001606,000072: 4051 50020 TS CYR
001607,000073: 4052 34302 CAF LOW11
001608,000074: 4053 70076 MASK POLISH # SAVE ERASABLE PART PLUS POSSIBLE TAG
001609,000075: 4054 30076 XCH POLISH
001610,000076: 4055 64060 AD NEGIDEX # DIRECT OR INDEXED
001611,000077: 4056 10000 CCS A
001612,000078: 4057 04233 TC INDEX # IT IS INDEXED - PRESENT POLISH OK
001613,000079: 4060 44000 NEGIDEX OCT -33777 # NEGATIVE OF STORE ADDRESS PREFIX +1
001614,000080: 4061 44504 CS BIT11
001615,000081: 4062 60076 AD POLISH
001616,000082: 4063 50076 TS POLISH
001617,000083: 4064 04257 TC NONINDEX
001618,000084:
Page 39 |
001620,000086:
001621,000087: 4065 50063 IPROC TS ORDER # OP CODE WORD WAS PICKED UP BY CCS
001622,000088: 4066 30120 XCH LOC
001623,000089: 4067 64516 AD ONE
001624,000090: 4070 30120 XCH LOC
001625,000091: 4071 74720 MASK LOW7 # SAVE LOW ORDER CODE
001626,000092: 4072 30063 IPROC2 XCH ORDER # ENTRY FROM NEWEQUN
001627,000093: 4073 25777 INDEX OPOVF
001628,000094: 4074 44507 MP BIT8 # SHIFT IT RIGHT SEVEN PLACES
001629,000095: 4075 50020 TS CYR # GETTING RID OF THE RIGHT-HAND OP
001630,000096:
001631,000097: 4076 10020 JUMPIT CCS CYR # LOOK AT LOW-ORDER PREFIX BIT
001632,000098: 4077 04215 TC ADDRESS # INDEXABLE - DECODE ADDRESS IMMEDIATELY
001633,000099: 4100 00043 LOADOP OCT 43 # USED BY UNARY LOAD
001634,000100:
001635,000101: 4101 10020 CCS CYR # LOOK AT SECOND ONE HERE
001636,000102: 4102 04364 TC INCADR # PROCESS MISCELLANEOUS
001637,000103: 4103 04113 TC MISCPROC
001638,000104:
001639,000105: 4104 10066 UNAPROC CCS NEWEQIND # PROCESS UNARY REQUESTS
001640,000106: 4105 04152 TC UNALOAD # LOAD AN ACCUMULATOR AND RETURN
001641,000107:
001642,000108: 4106 34720 CAF LOW7
001643,000109: 4107 50015 TS BANKREG # CALL IN BANK 0 WHERE UNARIES ARE
001644,000110: 4110 70020 MASK CYR # WITHOUT CLOBBERING
001645,000111: 4111 20000 INDEX A
001646,000112: 4112 04453 TC UNAJUMP
001647,000113:
Page 40 |
001649,000115:
001650,000116: # PROCESS MISCELLANEOUS OP CODES.
001651,000117:
001652,000118: 4113 20000 MISCPROC INDEX A
001653,000119: 4114 40000 CS 0 # WE KNOW ITS AN ADDRESS
001654,000120: 4115 64516 AD ONE # TO FIT IN WITH THE POLISH ADDRESS SCHEME
001655,000121: 4116 50076 TS POLISH # SAVE ENTIRE ADDRESS
001656,000122:
001657,000123: 4117 10000 CCS A
001658,000124: 4120 04145 TC ENDMISC
001659,000125: 4121 42000 42K OCT 42000
001660,000126: 4122 04124 TC +2
001661,000127: 4123 04143 TC MISCREL
001662,000128: 4124 62261 AD BANKMASK
001663,000129: 4125 10000 CCS A
001664,000130: 4126 64516 AD ONE
001665,000131: 4127 04131 TC +2
001666,000132: 4130 04135 TC MISC2
001667,000133:
001668,000134: 4131 64121 AD 42K
001669,000135: 4132 40000 COM
001670,000136: 4133 50076 TS POLISH
001671,000137: 4134 04145 TC ENDMISC
001672,000138:
001673,000139: 4135 64517 MISC2 AD RELTEST
001674,000140: 4136 10000 CCS A
001675,000141: 4137 40076 CS POLISH
001676,000142: 4140 04143 TC +3
001677,000143: 4141 40076 CS POLISH
001678,000144: 4142 04144 TC +2
001679,000145: 4143 60067 MISCREL AD FIXLOC
001680,000146: 4144 50062 TS ADDRWD
001681,000147:
001682,000148: 4145 34720 ENDMISC CAF LOW7
001683,000149: 4146 50015 TS BANKREG # CALL IN BANK 0
001684,000150: 4147 70020 MASK CYR
001685,000151: 4150 20000 INDEX A
001686,000152: 4151 04433 TC NONJUMP
001687,000153:
Page 41 |
001689,000155:
001690,000156: 4152 34720 UNALOAD CAF LOW7 # PROCESS LOADING REQUESTS FOR UNARY
001691,000157: 4153 70020 MASK CYR # OPERATIONS. START BY FINDING APPROPRIATE
001692,000158: 4154 10000 CCS A # MODE
001693,000159: 4155 04160 TC +3 # TMOVE HAS CODE 0
001694,000160: 4156 45503 CS TWO
001695,000161: 4157 04164 TC MODESET
001696,000162: 4160 40000 CS A
001697,000163: 4161 64650 AD OCT40003
001698,000164: 4162 50065 TS MODE # SKIP IF SO AND SET A TO -1
001699,000165: 4163 45501 CS ZERO # IF WE DIDNT SKIP
001700,000166: 4164 50065 MODESET TS MODE
001701,000167:
001702,000168: 4165 34500 CAF NEGSIGN # GET INDEXING BIT FROM UNARY OP CODE IN
001703,000169: 4166 70020 MASK CYR # CYR
001704,000170: 4167 64100 AD LOADOP # AD LOAD OPCODE = OCT 43
001705,000171: 4170 60000 60K DOUBLE # DOUBLE OP CODE AND DUPLICATE SIGN IN
001706,000172: 4171 30020 XCH CYR # BIT 1 WHERE IT GOES INTO SIGN OF CYR
001707,000173: 4172 50023 TS SL # RE-EDIT, NOT BOTHERING ABOUT BITS 8-14
001708,000174: 4173 04215 TC ADDRESS # STANDARD ADDRESS ROUTINE
001709,000175:
001710,000176: 4174 50066 ULRET TS NEWEQIND # RETURN HERE AFTER LOADING
001711,000177: 4175 30023 XCH SL
001712,000178: 4176 50020 TS CYR # RESTORE ORIGINAL OP CODE
001713,000179: 4177 04106 TC UNAPROC +2 # AND DISPATCH AS USUAL
001714,000180:
001715,000181: 4200 35501 LOWWD CAF ZERO # RIGHT HAND OP CODE HAS ALREADY BEEN SET
001716,000182: 4201 30063 XCH ORDER
001717,000183: 4202 04075 TC JUMPIT -1
001718,000184:
Page 42 |
001720,000186:
001721,000187: 4203 50066 LOAD TS NEWEQIND # LOADS FIRST ADDRESS OF NEW EQUATIONS
001722,000188: 4204 20065 INDEX MODE # TRIGGERS TYPE OF CLEAR-AND-ADD
001723,000189: 4205 04210 TC +3
001724,000190: 4206 04533 TC TCA1
001725,000191: 4207 04537 TC DCA1
001726,000192: 4210 04611 TC VCA1
001727,000193:
001728,000194: 4211 10066 LOADRET CCS NEWEQIND # IF A UNARY LOAD, THIS IS STILL ONE
001729,000195: 4212 04174 TC ULRET # NO SECOND ADDRESS FOR UNARY LOADS
001730,000196:
001731,000197: 4213 40061 CS BANKSET
001732,000198: 4214 50015 TS BANKREG
001733,000199:
001734,000200: 4215 20121 ADDRESS INDEX ADRLOC # INDEXABLE ADDRESS ROUTINE
001735,000201: 4216 40001 CS 1 # PICK UP WHAT SHOULD BE THE NEXT ADDRESS
001736,000202: 4217 10000 CCS A
001737,000203: 4220 04354 TC PUSHUP # NO ADDRESS MEANS TAKE OFF TOP OF STACK
001738,000204: 4221 04353 TC PUSHUP2 # INACTIVE ADDRESS MEANS JUST PUSHUP
001739,000205: 4222 30121 XCH ADRLOC # SAVE ADDRESS WHILE WE INCREMENT ADRLOC
001740,000206: 4223 64516 AD ONE
001741,000207: 4224 30121 XCH ADRLOC # NOW BRING IT BACK
001742,000208: 4225 50076 TS POLISH
001743,000209: 4226 34500 CAF NEGSIGN
001744,000210: 4227 70020 MASK CYR
001745,000211: 4230 10000 CCS A # INDEXED OR NOT
001746,000212: 4231 50114 BUGMPAC XCADR MPAC
001747,000213: 4232 04257 TC NONINDEX
001748,000214:
Page 43 |
001750,000216:
001751,000217: # PROCEDURE FOR INDEXED ADDRESSES.
001752,000218:
001753,000219: 4233 30076 INDEX XCH POLISH
001754,000220: 4234 50021 TS SR # SR NOW CONTAINS SUB-ADDRESS
001755,000221: 4235 30020 XCH CYR # SAVE ORDER CODE
001756,000222: 4236 50022 TS CYL # TO PREPARE FOR RESTORING
001757,000223: 4237 04722 TC TAG
001758,000224: 4240 20075 INDEX TAG1
001759,000225: 4241 40046 CS X1 # INDEX REGISTERS ARE SUBTRACTIVE, ALA 70X
001760,000226: 4242 60021 AD SR
001761,000227: 4243 30076 XCH POLISH # TS WOULD SKIP ON OVERFLOW
001762,000228:
001763,000229: 4244 30022 XCH CYL # RESTORE OP CODE BITS IN CYR
001764,000230: 4245 50020 TS CYR
001765,000231:
001766,000232: 4246 10076 CCS POLISH # SEE IF BIT 15 SHOULD BE ZERO. IT SHOULD
001767,000233: 4247 04257 TC NONINDEX # IF THE ADDRESS IS LESS THAN ROUGHLY
001768,000234: 4250 04362 TC RELTOVAC +1 # -1000D.
001769,000235: 4251 04253 TC +2
001770,000236: 4252 04362 TC RELTOVAC +1 # QUICK ACTION ON THESE ZERO CASES.
001771,000237:
001772,000238: 4253 64517 AD RELTEST # (-976D).
001773,000239: 4254 10000 CCS A
001774,000240: 4255 30076 XCH POLISH # LESS THAN -1000. GO DIRECTLY TO
001775,000241: 4256 04272 TC SWADDR # SWITCHED-BANK ADDRESS ROUTINE.
001776,000242:
Page 44 |
001778,000244:
001779,000245: 4257 40076 NONINDEX CS POLISH # GET 14 BIT ADDRESS
001780,000246: 4260 64504 AD ERASTEST # SEE IF ERASABLE OR NOT
001781,000247: 4261 10000 CCS A
001782,000248: 4262 64517 AD RELTEST # YES - SEE IF IN TEMPORARY BLOCK
001783,000249: 4263 04300 TC TEST2
001784,000250: 4264 65473 AD STORTEST # NO - SEE IF STORE ADDRESS
001785,000251: 4265 10000 CCS A
001786,000252: 4266 04356 TC PUSHUP3 # YES - PUSHUP
001787,000253: 4267 04270 TC +1 # IN CASE THE STORED ADDRESS WAS 2000.
001788,000254: 4270 34500 CAF BIT15
001789,000255: 4271 60076 AD POLISH
001790,000256: 4272 50015 SWADDR TS BANKREG
001791,000257: 4273 50076 TS POLISH
001792,000258: 4274 74606 MASK LOW10
001793,000259: 4275 64373 AD 6K
001794,000260: 4276 50062 TS ADDRWD
001795,000261: 4277 04305 TC JUMP
001796,000262:
001797,000263: 4300 10000 TEST2 CCS A # DOES THIS REFER TO THE TEMPORARY BLOCK
001798,000264: 4301 04361 TC RELTOVAC # ADDRESS IS RELATIVE TO VAC AREA.
001799,000265: 4302 03777 LOW11 OCT 3777
001800,000266: 4303 30076 XCH POLISH # YES - FORM ADDRESS
001801,000267: 4304 50062 TS ADDRWD
001802,000268:
001803,000269: 4305 34473 JUMP CAF THREE # LOOK AT LOW-ORDER 2 BITS IN 5 BIT CODE
001804,000270: 4306 70020 MASK CYR
001805,000271: 4307 10000 CCS A # IF ZERO, LOAD NOW AND CALL IN BANK 0
001806,000272: 4310 04313 TC +3 # NON-ZERO - GO ON.
001807,000273: 4311 04747 TC DPSET # LOAD DP IF NECESSARY
001808,000274: 4312 50015 TS BANKREG # CALL IN BANK 0
001809,000275: 4313 34720 CAF LOW7 # BITS 6-13 ARE GUARANTEED TO BE ZERO
001810,000276: 4314 70020 MASK CYR
001811,000277: 4315 20000 INDEX A
001812,000278: 4316 04367 TC INDJUMP
001813,000279:
Page 45 |
001815,000281:
001816,000282: 4317 30123 PUSHDOWN XCH PUSHLOC # NO STORE ADDRESS GIVEN - PUSH DOWN
001817,000283: 4320 50062 TS ADDRWD # STORED IN THE NEXT ENTRY
001818,000284: 4321 20065 INDEX MODE
001819,000285: 4322 64475 AD NO.WDS # 2 FOR DP, 6 FOR VECTORS, 3 FOR TP
001820,000286: 4323 50123 TS PUSHLOC
001821,000287: 4324 20065 INDEX MODE
001822,000288: 4325 04431 TC INDJUMP +34D # DISPATCH TO CORRECT STORE INSTRUCTION
001823,000289:
001824,000290: 4326 30001 PUSHUP1 XCH Q # THE PUSH-UP ROUTINE IS CALLED UNDER THE
001825,000291: 4327 50112 TS COMPON # FOLLOWING CIRCUMSTANCES:
001826,000292: 4330 34720 CAF LOW7 # 1. NO ADDRESS WORD IS FOUND.
001827,000293: 4331 70020 MASK CYR # 2. A STORE ADDRESS IS FOUND.
001828,000294: 4332 64340 AD -VXSC # OR 3. AN INACTIVE ADDRESS IS FOUND.
001829,000295: 4333 10000 CCS A # IF THE REQUESTING OPERATION CODE IS VXSC
001830,000296: 4334 04345 TC PUSHUPOK # THE MODE MUST BE SWITCHED BEFORE PUSHING
001831,000297: 4335 77776 MINUS1 OCT -1 # UP, SINCE VXSC DEMANDS AN ARGUMENT OF
001832,000298: 4336 04345 TC PUSHUPOK # THE OPPOSITE MODE (SCALAR NEEDS VECTOR,
001833,000299:
001834,000300: 4337 10065 CCS MODE # ETC.)
001835,000301: 4340 77775 MINUS2 OCT -2 # UNUSED CCS BRANCHES.
001836,000302: 4341 77774 NEG3 OCT -3
001837,000303: 4342 45502 CS FOUR
001838,000304: 4343 64340 AD NEG2
001839,000305: 4344 04347 TC +3
001840,000306: 4345 20065 PUSHUPOK INDEX MODE # DO PUSH-UP OPERATION.
001841,000307: 4346 44475 CS NO.WDS # 2, 3, OR 6.
001842,000308: 4347 60123 AD PUSHLOC
001843,000309: 4350 50123 TS PUSHLOC
001844,000310: 4351 50062 TS ADDRWD # SET ADDRWD AND LEAVE ADDRESS IN A.
001845,000311: 4352 00112 TC COMPON
001846,000312:
001847,000313: 4353 4340 -VXSC EQUALS MINUS2
001848,000314:
001849,000315: 4353 04364 PUSHUP2 TC INCADR # SENT HERE ON INACTIVE ADDRESS
001850,000316:
001851,000317: 4354 04326 PUSHUP TC PUSHUP1 # NO ADDRESS GIVEN SENDS US HERE
001852,000318: 4355 04305 TC JUMP # AND JUMP
001853,000319:
001854,000320: 4356 10121 PUSHUP3 CCS ADRLOC # AN UNEXPECTED STORE ADDRESS SENDS US
001855,000321: 4357 50121 TS ADRLOC # HERE.
001856,000322: 4360 04354 TC PUSHUP
001857,000323:
001858,000324: 4361 30076 RELTOVAC XCH POLISH # ADDRESS WAS LESS THAN 42, SO ADD
001859,000325: 4362 60067 AD FIXLOC # ADDRESS OF VAC AREA.
001860,000326: 4363 04304 TC JUMP -1
001861,000327:
001862,000328: 4364 34516 INCADR CAF ONE
001863,000329: 4365 60121 AD ADRLOC
001864,000330: 4366 50121 TS ADRLOC
001865,000331: 4367 00001 TC Q
001866,000332:
Page 46 |
001868,000334:
001869,000335: 4370 05612 IJUMP TC ITCF # INTERPRETIVE TRANSFER CONTROL
001870,000336: 4371 05357 TC VXSC1 # VECTOR TIMES SCALAR
001871,000337: 4372 05211 TC VSU1 # VECTOR SUBTRACT
001872,000338: 4373 06000 TC BMN1 # BRANCH MINUS
001873,000339: 4374 04700 TC STZ1 # STORE ZERO
001874,000340: 4375 05623 TC BOVF # BRANCH ON OVERFLOW
001875,000341: 4376 04766 TC DAD2 # DOUBLE PRECISION ADD
001876,000342: 4377 06014 TC BHIZ1 # BRANCH IF MAJOR PART ZERO
001877,000343: 4400 04732 TC DSU2 # DP SUBTRACT
001878,000344: 4401 04735 TC DBSU # DP BACKWARDS SUBTRACT
001879,000345: 4402 05061 TC DMP2 # DP MULTIPLY
001880,000346: 4403 06402 TC SHIFTL # TP LEFT SHIFT
001881,000347: 4404 05144 TC DDV # DP DIVIDE
001882,000348: 4405 05141 TC BDDV # DP BACKWARDS DIVIDE
001883,000349: 4406 04776 TC TRAD # TRIPLE PRECISION ADD
001884,000350: 4407 06411 TC TSLC # TP SHIFT LEFT AND COUNT
001885,000351: 4410 05075 TC SHIFTR1 # TP SHIFT RIGHT
001886,000352: 4411 05061 TC DMP2 # DP MULTIPLY AND THEN ROUND
001887,000353: 4412 04773 TC TSU1 # TP SUBTRACT
001888,000354: 4413 06213 TC SIGN # AFFIX SIGN OF X TO MPAC
001889,000355: 4414 05316 TC MXV1 # MATRIX TIMES VECTOR
001890,000356: 4415 05306 TC VXM1 # VECTOR TIMES MATRIX
001891,000357: 4416 05221 TC VAD1 # VECTOR ADD
001892,000358: 4417 06010 TC BZE1 # BRANCH ON ZERO
001893,000359: 4420 05214 TC BVSU1 # BACKWARDS VECTOR SUBTRACT
001894,000360: 4421 05633 TC VSRT1 # VECTOR SHIFT RIGHT
001895,000361: 4422 05630 TC VSLT1 # VECTOR SHIFT LEFT
001896,000362: 4423 06004 TC BPL1 # BRANCH POSITIVE
001897,000363: 4424 05234 TC DOT1 # VECTOR DOT PRODUCT
001898,000364: 4425 05511 TC CROSS1 # VECTOR CROSS PRODUCT
001899,000365: 4426 05505 TC VPROJ1 # VECTOR PROJECTION
001900,000366:
001901,000367: 4427 04552 TC TTS1
001902,000368: 4430 04556 TC DTS1 # DP TRANSFER TO STORAGE
001903,000369: 4431 04622 TC VTS1 # VECTOR TS
001904,000370: 4432 04204 TC LOAD +1 # LOADING
001905,000371:
001906,000372: 4433 4373 6K EQUALS IJUMP +3 # BMN STARTS AT LOCATION 6000
001907,000373:
001908,000374: 4433 4367 INDJUMP EQUALS IJUMP -1
001909,000375:
Page 47 |
001911,000377:
001912,000378: 4433 06206 NONJUMP TC EXIT
001913,000379: 4434 06072 TC AXT # ADDRESS TO INDEX TRUE
001914,000380: 4435 06077 TC LXA # LOAD INDEX FROM THE ADDRESS
001915,000381: 4436 06104 TC LXC # LOAD INDEX FROM ADDRESS COMPLEMENTED
001916,000382: 4437 06110 TC SXA # STORE INDEX IN THE ADDRESS
001917,000383: 4440 06141 TC XCHX # INDEX REGISTER EXCHANGE
001918,000384: 4441 06134 TC INCR # INDEX REGISTER INCREMENT
001919,000385: 4442 06153 TC XAD # INDEX REGISTER ADD FROM ERASABLE
001920,000386: 4443 06147 TC XSU # INDEX REGISTER SUBTRACT FROM ERASABLE
001921,000387: 4444 06062 TC AST # ADDRESS TO STEP TRUE
001922,000388: 4445 06067 TC AXC # ADDRESS TO INDEX COMPLEMENTED
001923,000389: 4446 06115 TC TIX # TRANSFER ON INDEX
001924,000390: 4447 06352 TC NOLOAD # LEAVE MPAC (OR VAC) LOADED
001925,000391: 4450 06174 TC ITA1 # TRANSFER ADDRESS
001926,000392: 4451 06434 TC SWITCHEM # SWITCH AND TEST INSTRUCTIONS
001927,000393: 4452 06341 TC NEXT # LODON AND ITCQ
001928,000394:
001929,000395: 4453 07463 UNAJUMP TC TMOVE # FOR TP AS WELL
001930,000396: 4454 04024 TC VMOVE
001931,000397: 4455 07212 TC UNIT
001932,000398: 4456 06261 TC ABVAL1 # ABVAL
001933,000399: 4457 06226 TC VSQ # SQUARE OF VECTOR LENGTH
001934,000400: 4460 06316 TC SSP # ABSOLUTE VALUE OF SCALAR
001935,000401: 4461 06755 TC ARCSIN1
001936,000402: 4462 06757 TC ARCCOS1
001937,000403: 4463 06620 TC SIN1
001938,000404: 4464 06622 TC COS1
001939,000405: 4465 07453 TC SQRTS
001940,000406: 4466 06323 TC SQUARE
001941,000407: 4467 06325 TC COMP # COMPLEMENT
001942,000408: 4470 04024 TC DMOVE
001943,000409: 4471 06336 TC SMOVE
001944,000410: 4472 06160 TC VDEF # VECTOR DEFINE
001945,000411:
Page 48 |
001947,000413:
001948,000414: 4473 00003 THREE OCT 3
001949,000415: 4474 00002 OCT 2
001950,000416: 4475 00006 NO.WDS OCT 6 # 3, 2, 6 ORDER IMPORTANT FOR PUSH-DOWN.
001951,000417:
001952,000418: 4476 37777 POSMAX OCT 37777 # MUST BE 2 LOCATIONS BEFORE NEGMAX
001953,000419: 4477 00005 FIVE OCT 5
001954,000420: 4500 4477 LIMITS EQUALS POSMAX +1 # USED BY CDU COUNTER ARITHMETIC PROGRAMS.
001955,000421:
001956,000422: 4500 40000 BIT15 OCT 40000
001957,000423: 4501 20000 BIT14 OCT 20000
001958,000424: 4502 10000 BIT13 OCT 10000
001959,000425: 4503 04000 BIT12 OCT 04000
001960,000426: 4504 02000 BIT11 OCT 02000
001961,000427: 4505 01000 BIT10 OCT 01000
001962,000428: 4506 00400 BIT9 OCT 00400
001963,000429: 4507 00200 BIT8 OCT 00200
001964,000430: 4510 00100 BIT7 OCT 00100
001965,000431: 4511 00040 BIT6 OCT 00040
001966,000432: 4512 00020 BIT5 OCT 00020
001967,000433: 4513 00010 BIT4 OCT 00010
001968,000434: 4514 00004 BIT3 OCT 00004
001969,000435: 4515 00002 BIT2 OCT 00002
001970,000436: 4516 00001 BIT1 OCT 00001
001971,000437:
001972,000438: 4517 4502 QUARTER EQUALS BIT13
001973,000439: 4517 4513 EIGHT EQUALS BIT4
001974,000440: 4517 4516 ONE EQUALS BIT1
001975,000441: 4517 4504 ERASTEST EQUALS BIT11
001976,000442: 4517 BUGBITS EQUALS 5777
001977,000443: 4517 ATSBITS EQUALS 5777
001978,000444: 4517 4340 NEG2 EQUALS MINUS2
001979,000445: 4517 4475 SIX EQUALS NO.WDS
001980,000446: 4517 4335 NEG1 EQUALS MINUS1
001981,000447: 4517 4500 NEGSIGN EQUALS BIT15
001982,000448:
001983,000449: 4517 76057 RELTEST DEC -976 B-14
001984,000450: 4520 57777 77777 NEG1/2 2DEC -.5
001985,000451: 4522 20000 00000 POS1/2 2DEC .5
001986,000452: 4524 4522 HALF EQUALS POS1/2
001987,000453:
Page 49 |
001989,000455:
001990,000456: 4524 40101 TCS1 CS BUF +2 # USED BY DMP, ETC
001991,000457: 4525 50117 TS MPAC +2
001992,000458: 4526 40100 CS BUF +1
001993,000459: 4527 50116 TS MPAC +1
001994,000460: 4530 40077 CS BUF
001995,000461: 4531 50115 TS MPAC
001996,000462: 4532 00001 TC Q
001997,000463:
001998,000464: 4533 20062 TCA1 INDEX ADDRWD # TRIPLE PRECISION CLEAR AND ADD
001999,000465: 4534 40002 CS 2
002000,000466: 4535 40000 CS A
002001,000467: 4536 04540 TC +2
002002,000468:
002003,000469: 4537 35501 DCA1 XCH ZERO # DOUBLE PRECISION CLEAR AND ADD
002004,000470: 4540 50117 TS MPAC +2 # (CLEARS MPAC +2)
002005,000471: 4541 20062 INDEX ADDRWD
002006,000472: 4542 40001 CS 1
002007,000473: 4543 40000 CS A
002008,000474: 4544 50116 TS MPAC +1
002009,000475: 4545 20062 INDEX ADDRWD
002010,000476: 4546 40000 CS 0
002011,000477: 4547 40000 CS A
002012,000478: 4550 50115 TS MPAC
002013,000479: 4551 04211 TC LOADRET # PREPARE TO DECODE NEXT ADDRESS
002014,000480:
002015,000481: 4552 40117 STORE3 CS MPAC +2 # TRIPLE PRECISION TRANSFER TO STORAGE
002016,000482: 4553 40000 CS A
002017,000483: 4554 20062 INDEX ADDRWD
002018,000484: 4555 50002 TS 2
002019,000485: 4556 40116 DTS1 CS MPAC +1 # DOUBLE PRECISION TRANSFER TO STORAGE
002020,000486: 4557 40000 CS A
002021,000487: 4560 20062 INDEX ADDRWD
002022,000488: 4561 50001 TSQ TS 1
002023,000489: 4562 40115 CS MPAC
002024,000490: 4563 40000 MSIGN CS A
002025,000491: 4564 20062 INDEX ADDRWD
002026,000492: 4565 50000 TS 0
002027,000493: 4566 04005 NEQRET TC NEWEQUN # START NEW EQUATION
002028,000494:
002029,000495: 4567 4552 TTS1 EQUALS STORE3
002030,000496: # 35W
002031,000497:
Page 50 |
002033,000499:
002034,000500: 4567 30076 DOBR XCH POLISH # DOES BRANCHES
002035,000501: 4570 04602 TC DOBR2
002036,000502:
002037,000503: 4571 40061 EXIT2 CS BANKSET # COMPLETE EXIT EXECUTION BY CALLING IN
002038,000504: 4572 50015 TS BANKREG # BANK OF OBJECT INTERPRETIVE PROGRAM.
002039,000505: 4573 00121 TC ADRLOC
002040,000506:
002041,000507: 4574 40061 SWF/F CS BANKSET # BRANCHING TEST INSTRUCTION
002042,000508: 4575 50015 TS BANKREG # RETURNS HERE TO PICK UP BRANCHING ADDRES
002043,000509: 4576 20121 INDEX ADRLOC
002044,000510: 4577 30000 CAF 0 # BRANCH IS ALWAYS TO FIXED.
002045,000511: 4600 64335 AD NEG1 # UNDO YULISH INCREMENT.
002046,000512: 4601 64500 AD BIT15
002047,000513:
002048,000514: 4602 50015 DOBR2 TS BANKREG
002049,000515: 4603 74606 MASK LOW10
002050,000516: 4604 64610 AD 6K-1
002051,000517: 4605 04001 TC INTPRET +1
002052,000518:
002053,000519: 4606 01777 LOW10 OCT 1777
002054,000520: 4607 00777 LOW9 OCT 777
002055,000521: 4610 05777 6K-1 OCT 5777
002056,000522:
002057,000523: 4611 30001 VCA1 XCH Q # VECTOR CLEAR-AND-ADD ROUTINE
002058,000524: 4612 50104 TS TEM5
002059,000525: 4613 34500 CAF NEGSIGN
002060,000526: 4614 04632 TC VECMOVE
002061,000527: 4615 00104 TC TEM5
002062,000528:
002063,000529: 4616 30001 VCS1 XCH Q # DP VECTOR CLEAR-AND-SUBTRACT
002064,000530: 4617 50104 TS TEM5
002065,000531: 4620 34713 CAF NOOP
002066,000532: 4621 04614 TC VCA1 +3
002067,000533:
002068,000534: 4622 30062 VTS1 XCH ADDRWD # TRANSFER TO STORAGE
002069,000535: 4623 30070 XCH VACLOC # EXCHANGE VACLOC AND ADDRWD AND DO AN
002070,000536: 4624 50062 TS ADDRWD # EFFECTIVE *CLEAR-AND-ADD*.
002071,000537: 4625 34500 CAF NEGSIGN
002072,000538: 4626 04632 TC VECMOVE
002073,000539: 4627 30062 XCH ADDRWD # RESTORE VACLOC
002074,000540: 4630 50070 TS VACLOC
002075,000541: 4631 04005 TC NEWEQUN # THIS ONLY HAPPENS AT END OF EQUATION
002076,000542:
Page 51 |
002078,000544:
002079,000545: 4632 50102 VECMOVE TS TEM2 # MOVES A DP VECTOR IN THE FASTEST WAY
002080,000546: 4633 20062 INDEX ADDRWD # AVAILABLE. USED BY VCA, VCS, AND VTS.
002081,000547: 4634 40005 CS 5
002082,000548: 4635 20102 INDEX TEM2
002083,000549: 4636 00000 0 0 # COM FOR VCA, VTS. NOOP FOR VCS.
002084,000550: 4637 20070 INDEX VACLOC
002085,000551: 4640 50005 TS 5
002086,000552:
002087,000553: 4641 20062 INDEX ADDRWD
002088,000554: 4642 40004 CS 4
002089,000555: 4643 20102 INDEX TEM2
002090,000556: 4644 00000 0 0
002091,000557: 4645 20070 INDEX VACLOC
002092,000558: 4646 50004 TS 4
002093,000559:
002094,000560: 4647 20062 INDEX ADDRWD
002095,000561: 4650 40003 OCT40003 CS 3 # CONSTANT USED BY UNARY LOAD ROUTINE.
002096,000562: 4651 20102 INDEX TEM2
002097,000563: 4652 00000 0 0
002098,000564: 4653 20070 INDEX VACLOC
002099,000565: 4654 50003 TS 3
002100,000566:
002101,000567: 4655 20062 INDEX ADDRWD
002102,000568: 4656 40002 OCT40002 CS 2
002103,000569: 4657 20102 INDEX TEM2
002104,000570: 4660 00000 0 0
002105,000571: 4661 20070 INDEX VACLOC
002106,000572: 4662 50002 TS 2
002107,000573:
002108,000574: 4663 20062 INDEX ADDRWD
002109,000575: 4664 40001 CSQ CS 1 # CONSTANT USED BY WAITLIST.
002110,000576: 4665 20102 INDEX TEM2
002111,000577: 4666 00000 0 0
002112,000578: 4667 20070 INDEX VACLOC
002113,000579: 4670 50001 TS 1
002114,000580:
002115,000581: 4671 20062 INDEX ADDRWD
002116,000582: 4672 40000 CS 0
002117,000583: 4673 20102 INDEX TEM2
002118,000584: 4674 00000 0 0
002119,000585: 4675 20070 INDEX VACLOC
002120,000586: 4676 50000 TS 0
002121,000587:
002122,000588: 4677 00001 TC Q # DONE
002123,000589:
Page 52 |
002125,000591:
002126,000592: 4700 35501 STZ1 CAF ZERO
002127,000593: 4701 20062 INDEX ADDRWD
002128,000594: 4702 50000 TS 0
002129,000595:
002130,000596: 4703 40061 RE-ENTER CS BANKSET # ROUTINE SIMILAR TO 'DANZIG' EXCEPT THAT
002131,000597: 4704 50015 TS BANKREG # NO PUSHING DOWN IS DONE AT END OF EQUN.
002132,000598:
002133,000599: 4705 10063 CCS ORDER # IT IS USED BY MISCELLANEOUS INSTRUCTIONS
002134,000600: 4706 04200 TC LOWWD # AND BRANCHES WHICH FAILED
002135,000601:
002136,000602: 4707 20120 INDEX LOC # IF WE HAD RETURNED DIRECTLY TO THE MAIN
002137,000603: 4710 40001 CS 1
002138,000604: 4711 10000 CCS A
002139,000605: 4712 04065 TC IPROC # IT IS USED BY BRANCH INSTRUCTIONS WHICH
002140,000606: 4713 30000 NOOP NOOP # IN CASE THE FIRST ADDRESS WAS INACTIVE
002141,000607:
002142,000608: 4714 20121 INDEX ADRLOC # SEE IF A LEFT-OVER ADDRESS
002143,000609: 4715 40001 CS 1
002144,000610: 4716 10000 CCS A
002145,000611: 4717 04005 TC NEWEQUN # NO - START NEW EQUATION
002146,000612: 4720 00177 LOW7 OCT 177
002147,000613: 4721 04044 TC STORADR # YES - MUST BE STORE ADDRESS
002148,000614:
002149,000615: 4722 4701 STOR1 EQUALS STZ1 +1
002150,000616:
Page 53 |
002152,000618:
002153,000619: 4722 10020 TAG CCS CYR # SETS TAG1 ACCORDING TO SIGN BIT IN CYR
002154,000620: 4723 35501 CAF ZERO
002155,000621: 4724 10000 CCS A # SKIP NEXT INS WITHOUT CHANGING Q
002156,000622: 4725 34516 CAF ONE
002157,000623: 4726 60067 AD FIXLOC # INDEXES AND STEPS IN VAC AREA
002158,000624: 4727 50075 TS TAG1
002159,000625: 4730 00001 TC Q
002160,000626:
002161,000627: 4731 00077 TCBUF ADRES BUF
002162,000628:
002163,000629: 4732 04747 DSU2 TC DPSET # DP SUBTRACT
002164,000630: 4733 05055 TC ADDTOSUB
002165,000631: 4734 04767 TC DAD2 +1
002166,000632:
002167,000633: 4735 04747 DBSU TC DPSET
002168,000634: 4736 04742 TC DACCOM # COMPLEMENT DP ACCUM
002169,000635: 4737 04767 TC DAD2 +1 # AND ADD
002170,000636:
002171,000637: 4740 40117 MPACCOM CS MPAC +2 # COMPLEMENT MPAC
002172,000638: 4741 50117 TS MPAC +2
002173,000639: 4742 40116 DACCOM CS MPAC +1
002174,000640: 4743 50116 TS MPAC +1
002175,000641: 4744 40115 CS MPAC
002176,000642: 4745 50115 TS MPAC
002177,000643: 4746 00001 TC Q
002178,000644:
002179,000645: 4747 44516 DPSET CS ONE # SET UP DP MODE AND LOAD IF NECESSARY
002180,000646: 4750 50065 TS MODE
002181,000647: 4751 10066 CCS NEWEQIND
002182,000648: 4752 04203 TC LOAD
002183,000649: 4753 00001 TC Q
002184,000650:
002185,000651: 4754 45501 VECSET CS ZERO # SIMILARLY FOR VECTORS
002186,000652: 4755 50065 TS MODE
002187,000653: 4756 10066 CCS NEWEQIND
002188,000654: 4757 04203 TC LOAD
002189,000655: 4760 00001 TC Q
002190,000656:
002191,000657: 4761 45503 TPSET CS TWO # AND FOR TP
002192,000658: 4762 50065 TS MODE
002193,000659: 4763 10066 CCS NEWEQIND
002194,000660: 4764 04203 TC LOAD
002195,000661: 4765 00001 TC Q
002196,000662:
Page 54 |
002198,000664:
002199,000665: 4766 04747 DAD2 TC DPSET # DOUBLE PRECISION ADD INSTRUCTION
002200,000666: 4767 34772 CAF DAD2 +4
002201,000667: 4770 05020 TC DAD1 # PROGRAM USES CLOSED SUBROUTINE DAD1,
002202,000668: 4771 04024 TC INT1 # WITH ADDRESSES SET UP IN ADDRWD, TEM2
002203,000669:
002204,000670: 4772 00115 +4 ADRES MPAC
002205,000671:
002206,000672: 4773 04761 TSU1 TC TPSET # TRIPLE PRECISION SUBTRACT INSTRUCTION
002207,000673: 4774 05055 TC ADDTOSUB
002208,000674: 4775 04777 TC TRAD +1
002209,000675:
002210,000676: 4776 04761 TRAD TC TPSET # TRIPLE PRECISION ADD INSTRUCTION
002211,000677: 4777 05001 TC +2
002212,000678: 5000 04024 TC INT1
002213,000679:
002214,000680: 5001 30001 +3 XCH Q
002215,000681: 5002 50104 TS TEM5
002216,000682: 5003 34772 CAF DAD2 +4
002217,000683: 5004 50102 TS TEM2
002218,000684: 5005 20000 INDEX A
002219,000685: 5006 30002 XCH 2
002220,000686: 5007 20062 INDEX ADDRWD
002221,000687: 5010 60002 AD 2
002222,000688: 5011 20102 INDEX TEM2
002223,000689: 5012 50002 TS 2 # AGAIN SKIPPING, AS IN DAD1
002224,000690: 5013 35501 CAF ZERO
002225,000691: 5014 20102 INDEX TEM2
002226,000692: 5015 60001 AD 1
002227,000693: 5016 05023 TC DAD1 +3 # FINISH IN DAD1
002228,000694:
002229,000695: 5017 00104 TC TEM5 # AND RETURN
002230,000696:
Page 55 |
002232,000698:
002233,000699: 5020 50102 DAD1 TS TEM2 # DOUBLE PRECISION ADD ROUTINE
002234,000700: 5021 20102 INDEX TEM2 # POLYNOMIAL EVALUATOR ENTERS HERE.
002235,000701: 5022 30001 XCH 1
002236,000702: 5023 20062 +3 INDEX ADDRWD
002237,000703: 5024 60001 AD 1
002238,000704: 5025 20102 INDEX TEM2
002239,000705: 5026 50001 TS 1 # SKIPS IF OVERFLOW WITH COUNT IN A
002240,000706: 5027 35501 CAF ZERO # NO OVERFLOW IF HERE
002241,000707: 5030 20102 INDEX TEM2 # ARRIVE HERE WITH 1 OR -1 IN A IF OVERFLO
002242,000708: 5031 60000 AD 0
002243,000709: 5032 20062 INDEX ADDRWD
002244,000710: 5033 60000 AD 0
002245,000711: 5034 20102 INDEX TEM2
002246,000712: 5035 50000 TS 0 # AND AGAIN SKIP IF OVERFLOW
002247,000713: 5036 00001 TC Q # EXIT IF NONE
002248,000714: 5037 50122 TS OVFIND # SAVE ANY OVERFLOW FOR BOV TESTING
002249,000715: 5040 00001 TC Q
002250,000716:
002251,000717: 5041 50105 8TO2 TS TEM8 # MOVES THE DP WORD LOCATED AT THE ADDRESS
002252,000718: 5042 20000 INDEX A # IN A TO THE ADDRESS IN TEM2
002253,000719: 5043 40000 CS 0
002254,000720: 5044 40000 CS A
002255,000721: 5045 20102 INDEX TEM2
002256,000722: 5046 50000 TS 0
002257,000723: 5047 20105 INDEX TEM8
002258,000724: 5050 40001 CS 1
002259,000725: 5051 40000 CS A
002260,000726: 5052 20102 INDEX TEM2
002261,000727: 5053 50001 TS 1
002262,000728: 5054 00001 TC Q
002263,000729:
002264,000730: 5055 30062 ADDTOSUB XCH ADDRWD # BY PUTTING THE APPROPRIATE BITS IN
002265,000731: 5056 65777 AD ATSBITS # ADDRWD, DAD1 DOES A DOUBLE SUBTRACT IN-
002266,000732: 5057 50062 TS ADDRWD # STEAD OF A DOUBLE ADD.
002267,000733: 5060 00001 TC Q
002268,000734:
Page 56 |
002270,000736:
002271,000737: 5061 04747 DMP2 TC DPSET # DP MULTIPLY (AND ROUND) ROUTINE
002272,000738: 5062 30062 XCH ADDRWD
002273,000739: 5063 65777 AD BUGBITS # MAKE EXENDED CODE ADDRESS.
002274,000740: 5064 50103 DSQ2 TS TEM4 # ENTRY FROM DSQ ROUTINE.
002275,000741: 5065 34772 XCH DAD2 +4 # C(DAD2 +4) = TC MPAC
002276,000742: 5066 05102 TC DMP1 # EXECUTE MULTIPLY AT DMP1, THEN EXIT
002277,000743: 5067 04524 TC TCS1 # VIA TCS1 TO MOVE (BUF TO BUF+2)
002278,000744: # INTO (MPAC TO MPAC+2).
002279,000745:
002280,000746: 5070 40020 OCT40020 CS CYR
002281,000747: 5071 10020 CCS CYR
002282,000748: 5072 34772 MPACRND CAF DAD2 +4 # SET UP ROUND SUBROUTINE TO ROUND MPAC.
002283,000749: 5073 05443 TC PREROUND +1
002284,000750: 5074 04024 TC DANZIG
002285,000751:
002286,000752: 5075 04747 SHIFTR1 TC DPSET # TSRT INSTRUCTION.
002287,000753: 5076 50015 TS BANKREG # SUBROUTINE IN BANK 0
002288,000754: 5077 06042 TC TRUE2 # GET INTEGER ADDRESS BACK
002289,000755: 5100 06232 TC SHIFTR -1 # WITH DECREMENTED COUNT IN A.
002290,000756: 5101 04024 TC DANZIG
002291,000757:
Page 57 |
002293,000759:
002294,000760: 5102 50102 DMP1 TS TEM2 # GENERAL PURPOSE DP MULTIPLICATION
002295,000761: 5103 20102 INDEX TEM2 # POLYNOMIAL ENTERS HERE.
002296,000762: 5104 40001 CS 1
002297,000763: 5105 50034 TS OVCTR # -N1 TO OVCTR
002298,000764: 5106 20103 INDEX TEM4
002299,000765: 5107 40001 MP 1 # -M1N1
002300,000766: 5110 30034 XCH OVCTR # -U(M1N1) TO OVCTR, -N1 TO A
002301,000767: 5111 20103 INDEX TEM4
002302,000768: 5112 40000 MP 0 # -M0N1
002303,000769: 5113 30034 XCH OVCTR # -U(M0N1) TO OVCTR, -U(M1N1) TO A
002304,000770: 5114 60003 AD LP # MAYBE INCREMENT -U(M0N1) IN OVCTR
002305,000771: 5115 30100 XCH BUF +1 # -L(M0N1)-U(M1N1) TO BUF+1
002306,000772: 5116 20102 INDEX TEM2
002307,000773: 5117 40000 CS 0
002308,000774: 5120 50101 TS BUF +2 # -N0 TO BUF+2
002309,000775: 5121 20103 INDEX TEM4
002310,000776: 5122 40001 MP 1 # -M1N0
002311,000777: 5123 30034 XCH OVCTR # -U(M1N0) TO OVCTR, -U(M0N1) TO A
002312,000778: 5124 30100 XCH BUF +1 # -U(M0N1) TO BUF+1, -L(M0N1)-U(M1N1) TO A
002313,000779: 5125 60003 AD LP # MAYBE INCREMENT -U(M1N0) IN OVCTR
002314,000780: 5126 30101 XCH BUF +2 # -L(M1N0)-L(M0N1)-U(M1N1) TO BUF+2, -N0 T
002315,000781: 5127 20103 INDEX TEM4 # O A
002316,000782: 5130 40000 MP 0 # -M0N0
002317,000783: 5131 30034 XCH OVCTR # -U(M0N0) TO OVCTR, -U(M1N0) TO A
002318,000784: 5132 60003 AD LP
002319,000785: 5133 30100 XCH BUF +1
002320,000786: 5134 60100 AD BUF +1
002321,000787: 5135 30100 XCH BUF +1
002322,000788: 5136 30034 XCH OVCTR
002323,000789: 5137 50077 TS BUF
002324,000790: 5140 00001 TC Q
002325,000791:
002326,000792: # TIMING: 86 MC +-2 OR 1.032 MS +-0.024 30 WORDS
002327,000793:
Page 58 |
002329,000795:
002330,000796: 5141 04747 BDDV TC DPSET # BACKWARDS DP DIVIDE
002331,000797: 5142 34516 CAF ONE # SET SWITCH
002332,000798: 5143 05145 TC +2 # AND GO ON AS USUAL
002333,000799:
002334,000800: 5144 04747 DDV TC DPSET # REGULAR DP DIVIDE
002335,000801: 5145 50110 TS DVSW # DPSET RETURNS WITH 0 IN A
002336,000802: 5146 35553 CAF LDANZIG # RETURN TO DANZIG
002337,000803: 5147 50076 TS TEMQ3
002338,000804: 5150 34731 CAF TCBUF
002339,000805: 5151 50102 TS TEM2
002340,000806: 5152 30062 XCH ADDRWD
002341,000807: 5153 05041 TC 8TO2 # X,X+1 INTO BUF, BUF+1
002342,000808:
002343,000809: 5154 35501 CAF ZERO
002344,000810: 5155 50015 TS BANKREG # CALL IN BANK 0
002345,000811: 5156 06776 TC DDV0 # TO BANK 0 PORTION
002346,000812:
002347,000813: 5157 30001 DMP XCH Q # DP MULTIPLY ROUTINE WHICH CAN BE CALLED
002348,000814: 5160 50104 TS TEM5 # BY TC DMP, FOLLOWED BY A WORD CONTAINING
002349,000815: 5161 20000 INDEX A # THE ADDRESS OF THE MULTIPLIER WITH
002350,000816: 5162 30000 CAF 0 # BITS IN THE ORDER CODE TO CALL IN MP
002351,000817: 5163 50103 TS TEM4 # IN THE EXTENDED CODE (UNKNOWN AS YET)
002352,000818: 5164 34772 CAF DAD2 +4
002353,000819: 5165 05102 TC DMP1
002354,000820: 5166 04524 TC TCS1
002355,000821: 5167 20104 INDEX TEM5 # TIME IS 120 MC+-2, OR ABOUT 1.44 MS
002356,000822: 5170 00001 TC 1 # RETURN TO INSTRUCTION AFTER ADDRESS WORD
002357,000823:
002358,000824: 5171 30001 DAD XCH Q # DP ADD ROUTINE WORKING JUST AS MP ABOVE
002359,000825: 5172 50104 TS TEM5 # HERE, HOWEVER, ONLY *ADRES X* IS NEEDED
002360,000826: 5173 20000 INDEX A # SINCE AD IS PART OF THE REGULAR CODE
002361,000827: 5174 30000 CAF 0
002362,000828: 5175 50062 TS ADDRWD
002363,000829: 5176 34772 CAF DAD2 +4
002364,000830: 5177 05020 TC DAD1
002365,000831: 5200 20104 INDEX TEM5
002366,000832: 5201 00001 TC 1 # TIME IS 48+-2 MC OR 576 MICRO-SEC.
002367,000833:
Page 59 |
002369,000835:
002370,000836: 5202 30001 VACCOM XCH Q # COMPLEMENT THE APPROPRIATE VAC
002371,000837: 5203 50104 TS TEM5
002372,000838: 5204 40070 CS VACLOC
002373,000839: 5205 40000 COM
002374,000840: 5206 30062 XCH ADDRWD
002375,000841: 5207 50103 TS TEM4
002376,000842: 5210 04620 TC VCS1 +2
002377,000843:
002378,000844: 5211 04754 VSU1 TC VECSET # DP VECTOR SUBTRACT
002379,000845: 5212 05055 TC ADDTOSUB
002380,000846: 5213 05222 TC VAD1 +1 # USES VAD ROUTINE WITH SUBS
002381,000847:
002382,000848: 5214 04754 BVSU1 TC VECSET # DP VECTOR BACKWARDS SUBTRACT
002383,000849: 5215 05202 TC VACCOM # JUST COMPLEMENT VAC
002384,000850: 5216 30103 XCH TEM4
002385,000851: 5217 50062 TS ADDRWD
002386,000852: 5220 05222 TC VAD1 +1 # AND ADD
002387,000853:
002388,000854: 5221 04754 VAD1 TC VECSET
002389,000855: 5222 30070 XCH VACLOC # DP VECTOR ADD
002390,000856: 5223 50070 TS VACLOC
002391,000857: 5224 05020 TC DAD1
002392,000858: 5225 05242 TC AD2
002393,000859: 5226 05412 TC INCRT2
002394,000860: 5227 05020 TC DAD1
002395,000861: 5230 05242 TC AD2
002396,000862: 5231 05412 TC INCRT2
002397,000863: 5232 05020 TC DAD1
002398,000864: 5233 04024 TC INT1
002399,000865:
Page 60 |
002401,000867:
002402,000868: 5234 04754 DOT1 TC VECSET # DP DOT PRODUCT ROUTINE
002403,000869: 5235 05246 TC DOT2
002404,000870: 5236 04740 TC MPACCOM
002405,000871: 5237 44516 DPEXIT CS ONE # CHANGE MODE TO DOUBLE-PRECISION
002406,000872: 5240 50065 TS MODE
002407,000873: 5241 04024 TC DANZIG
002408,000874:
002409,000875: 5242 30062 AD2 XCH ADDRWD
002410,000876: 5243 65503 AD TWO
002411,000877: 5244 50062 TS ADDRWD
002412,000878: 5245 00001 TC Q
002413,000879:
002414,000880: 5246 35503 DOT2 XCH TWO # SUBROUTINE DOT2 COMPUTES THE TRIPLE-
002415,000881: 5247 50064 TS TEM11
002416,000882: 5250 34731 XCH TCBUF # SIGN, IN MPAC TO MPAC+2.
002417,000883: 5251 30062 XCH ADDRWD
002418,000884: 5252 65777 AD BUGBITS
002419,000885: 5253 50103 TS TEM4
002420,000886: 5254 30001 XCH Q
002421,000887: 5255 50105 TS TEM8
002422,000888: 5256 30070 XCH VACLOC
002423,000889: 5257 50070 TS VACLOC
002424,000890: 5260 05102 TC DMP1
002425,000891: 5261 30077 XCH BUF
002426,000892: 5262 50115 TS MPAC
002427,000893: 5263 30100 XCH BUF +1
002428,000894: 5264 50116 TS MPAC +1
002429,000895: 5265 30101 XCH BUF +2
002430,000896: 5266 50117 TS MPAC +2
002431,000897: 5267 05302 TC INCRT4
002432,000898: 5270 05412 TC INCRT2
002433,000899: 5271 05102 TC DMP1
002434,000900: 5272 05001 TC TRAD +3
002435,000901: 5273 05302 TC INCRT4
002436,000902: 5274 30070 XCH VACLOC
002437,000903: 5275 50070 TS VACLOC
002438,000904: 5276 65502 AD FOUR
002439,000905: 5277 05102 TC DMP1
002440,000906: 5300 05001 TC TRAD +3
002441,000907: 5301 00105 TC TEM8
002442,000908:
Page 61 |
002444,000910:
002445,000911: 5302 30103 INCRT4 XCH TEM4
002446,000912: 5303 60064 AD TEM11
002447,000913: 5304 50103 TS TEM4
002448,000914: 5305 00001 TC Q
002449,000915:
002450,000916: 5306 04754 VXM1 TC VECSET # DP VECTOR TIMES MATRIX
002451,000917: 5307 40062 CS ADDRWD
002452,000918: 5310 50107 TS TEM10
002453,000919: 5311 35503 XCH TWO
002454,000920: 5312 50106 TS TEM9
002455,000921: 5313 34475 XCH SIX
002456,000922: 5314 05247 TC DOT2 +1
002457,000923: 5315 05324 TC MXV2 # REST OF OPERATION USES MXV ROUTINE
002458,000924:
002459,000925: 5316 04754 MXV1 TC VECSET # MATRIX TIMES DP VECTOR
002460,000926: 5317 40062 CS ADDRWD
002461,000927: 5320 50107 TS TEM10
002462,000928: 5321 34475 XCH SIX # PROGRAM USES DOT PRODUCT ROUTINES TO
002463,000929: 5322 50106 TS TEM9
002464,000930: 5323 05246 TC DOT2
002465,000931:
002466,000932: 5324 35475 MXV2 CAF K2 # USES VBUF
002467,000933: 5325 05347 TC STORDAC
002468,000934: 5326 40107 CS TEM10
002469,000935: 5327 60106 AD TEM9
002470,000936: 5330 50107 TS TEM10
002471,000937: 5331 50062 TS ADDRWD
002472,000938: 5332 05250 TC DOT2 +2
002473,000939:
002474,000940: 5333 35476 CAF K2 +1
002475,000941: 5334 05347 TC STORDAC
002476,000942: 5335 30107 XCH TEM10
002477,000943: 5336 60106 AD TEM9
002478,000944: 5337 50062 TS ADDRWD
002479,000945: 5340 05250 TC DOT2 +2
Page 62 |
002481,000947: 5341 35475 CAF K2
002482,000948: 5342 50062 TS ADDRWD
002483,000949: 5343 65502 AD FOUR
002484,000950: 5344 05347 TC STORDAC
002485,000951: 5345 04611 TC VCA1
002486,000952: 5346 04024 TC DANZIG
002487,000953:
002488,000954: 5347 50103 STORDAC TS TEM4 # SUBROUTINE TO STORE MPAC, MPAC+1 IN
002489,000955: 5350 40115 CS MPAC # ADDRESSES INDICATED BY C(A) AT ENTRY.
002490,000956: 5351 20103 INDEX TEM4
002491,000957: 5352 50000 TS 0
002492,000958: 5353 40116 CS MPAC +1
002493,000959: 5354 20103 INDEX TEM4
002494,000960: 5355 50001 TS 1
002495,000961: 5356 00001 TC Q
002496,000962:
002497,000963: 5357 10066 VXSC1 CCS NEWEQIND # DP VECTOR TIMES SCALAR
002498,000964: 5360 04754 TC VECSET # LOAD INSTRUCTION
002499,000965: 5361 10065 CCS MODE # IF NOT, WHICH MODE ARE WE IN
002500,000966: 5362 00007 SEVEN OCT 7
002501,000967: 5363 77762 MINUS13 DEC -13 B-14
002502,000968:
002503,000969: 5364 05370 TC VECCHECK
002504,000970:
002505,000971: 5365 30062 XCH ADDRWD
002506,000972: 5366 65777 AD BUGBITS # TO CALL IN MP
002507,000973: 5367 05372 TC VXSC2
002508,000974:
002509,000975: 5370 04611 VECCHECK TC VCA1 # USE ADDRWD TO LOAD VECTOR
002510,000976: 5371 34231 CAF BUGMPAC
002511,000977:
Page 63 |
002513,000979:
002514,000980: 5372 50103 VXSC2 TS TEM4
002515,000981: 5373 40070 CS VACLOC
002516,000982: 5374 40000 COM
002517,000983: 5375 05102 TC DMP1
002518,000984: 5376 05442 TC PREROUND
002519,000985: 5377 05466 TC STB
002520,000986: 5400 05412 TC INCRT2
002521,000987: 5401 05102 TC DMP1
002522,000988: 5402 05444 TC ROUND
002523,000989: 5403 05466 TC STB
002524,000990: 5404 05412 TC INCRT2
002525,000991: 5405 05102 TC DMP1
002526,000992: 5406 05444 TC ROUND
002527,000993: 5407 05466 TC STB
002528,000994: 5410 45501 ZEROEXIT CS ZERO # CHANGE MODE TO VECTOR
002529,000995: 5411 05240 TC DPEXIT +1
002530,000996:
002531,000997: 5412 4024 INT1 EQUALS DANZIG
002532,000998:
002533,000999: 5412 30102 INCRT2 XCH TEM2
002534,001000: 5413 65503 AD TWO
002535,001001: 5414 50102 TS TEM2
002536,001002: 5415 00001 TC Q
002537,001003:
Page 64 |
002539,001005:
002540,001006: 5416 30117 SHORTMP XCH MPAC +2 # MULTIPLY THE CONTENTS OF MPAC,MPAC+1,
002541,001007: 5417 25777 EXTEND # MPAC+2 BY THE SINGLE PRECISION NUMBER
002542,001008: 5420 40117 MP MPAC +2 # ARRIVING IN A.
002543,001009: 5421 30117 XCH MPAC +2
002544,001010:
002545,001011: 5422 30116 SHORTMP2 XCH MPAC +1 # FASTER BUT SLOPPIER VERSION FOR DP
002546,001012: 5423 25777 EXTEND
002547,001013: 5424 40116 MP MPAC +1
002548,001014: 5425 50034 TS OVCTR
002549,001015: 5426 30003 XCH LP
002550,001016: 5427 60117 AD MPAC +2 # THE SHORTMP2 RESULT WILL BE OFF IN THE
002551,001017: 5430 30117 XCH MPAC +2 # LAST BIT IF THIS AD OVERFLOWS.
002552,001018: 5431 30115 XCH MPAC
002553,001019: 5432 25777 EXTEND
002554,001020: 5433 40116 MP MPAC +1
002555,001021: 5434 30034 XCH OVCTR
002556,001022: 5435 60003 AD LP
002557,001023: 5436 30116 XCH MPAC +1
002558,001024: 5437 30034 XCH OVCTR # ARGUMENT IN OVCTR UPON EXIT
002559,001025: 5440 50115 TS MPAC
002560,001026: 5441 00001 TC Q
002561,001027:
002562,001028: 5442 34731 PREROUND CAF TCBUF
002563,001029: 5443 50105 TS TEM8
002564,001030:
002565,001031: 5444 35501 ROUND CAF ZERO # ROUND THE TRIPLE-PRECISION NUMBER WHOSE
002566,001032: 5445 20105 INDEX TEM8 # ADDRESS IS IN TEM8 TO DOUBLE-PRECISION,
002567,001033: 5446 30002 XCH 2 # SETING THE LOWEST ORDER OF THE THREE
002568,001034: 5447 60000 DOUBLE # WORDS TO ZERO IN THE PROCESS
002569,001035: 5450 50034 TS OVCTR
002570,001036: 5451 00001 TC Q # DONE IF DOESNT SKIP
002571,001037:
002572,001038: 5452 20105 INDEX TEM8
002573,001039: 5453 60001 AD 1
002574,001040: 5454 20105 INDEX TEM8
002575,001041: 5455 50001 TS 1
002576,001042: 5456 00001 TC Q
002577,001043:
002578,001044: 5457 20105 INDEX TEM8
002579,001045: 5460 60000 AD 0
002580,001046: 5461 20105 INDEX TEM8
002581,001047: 5462 50000 TS 0 # ANY CARRIES BEYOND THIS POINT ARE
002582,001048: 5463 00001 TC Q # OVERFLOW
002583,001049:
002584,001050: 5464 50122 TS OVFIND
002585,001051: 5465 00001 TC Q
002586,001052:
Page 65 |
002588,001054:
002589,001055: 5466 40077 STB CS BUF
002590,001056: 5467 20102 INDEX TEM2
002591,001057: 5470 50000 TS 0
002592,001058: 5471 40100 CS BUF +1
002593,001059: 5472 20102 INDEX TEM2
002594,001060: 5473 50001 TS 1
002595,001061: 5474 00001 TC Q
002596,001062:
002597,001063: 5475 00071 K2 0 VBUF
002598,001064: 5476 00073 0 VBUF +2
002599,001065: 5477 00075 0 VBUF +4
002600,001066:
002601,001067: 5500 5473 STORTEST EQUALS K2 -2
002602,001068:
002603,001069: 5500 00002 SEQ OCT 2
002604,001070: 5501 00000 ZERO OCT 0
002605,001071: 5502 00004 FOUR OCT 4
002606,001072: 5503 00002 TWO OCT 2
002607,001073: 5504 77777 NEG0 OCT -0
002608,001074:
002609,001075: 5505 04754 VPROJ1 TC VECSET # VECTOR PROJECT
002610,001076: 5506 05246 TC DOT2 # LEAVES (VAC,X)VAC IN VAC
002611,001077: 5507 04742 TC DACCOM
002612,001078: 5510 05371 TC VXSC2 -1 # FINISH IN VXSC (USING MPAC)
002613,001079:
002614,001080: 5511 04754 CROSS1 TC VECSET # DP VECTOR CROSS PRODUCT (BOTH WAYS)
002615,001081: 5512 34731 XCH TCBUF
002616,001082: 5513 30062 XCH ADDRWD
002617,001083: 5514 65777 AD BUGBITS # AGAIN FOR MP
002618,001084: 5515 50104 TS BASE
002619,001085: 5516 65503 AD TWO # WHERE THE VECTOR X IS THAT ADDRESSED
002620,001086: 5517 50103 TS TEM4 # BY THE ORDER, AND V IS C(VAC).
002621,001087: 5520 35503 XCH TWO
002622,001088:
Page 66 |
002624,001090:
002625,001091: 5521 50107 LUP TS IND
002626,001092: 5522 20107 INDEX IND
002627,001093: 5523 35500 XCH SEQ
002628,001094: 5524 60070 AD VACLOC
002629,001095: 5525 05102 TC DMP1
002630,001096: 5526 20107 INDEX IND
002631,001097: 5527 35502 XCH SEQ +2
002632,001098: 5530 65475 AD K2
002633,001099: 5531 50105 TS TEM6
002634,001100: 5532 50102 TS TEM2
002635,001101: 5533 05466 TC STB
002636,001102: 5534 20107 INDEX IND
002637,001103: 5535 35500 XCH SEQ
002638,001104: 5536 60104 AD BASE
002639,001105: 5537 50103 TS TEM4
002640,001106: 5540 20107 INDEX IND
002641,001107: 5541 35501 XCH SEQ +1
002642,001108: 5542 60070 AD VACLOC
002643,001109: 5543 05102 TC DMP1
002644,001110: 5544 30105 XCH TEM6
002645,001111: 5545 05020 TC DAD1
002646,001112: 5546 10107 CCS IND
002647,001113: 5547 05521 TC LUP
002648,001114:
002649,001115: 5550 35475 CREXIT XCH K2
002650,001116: 5551 50062 TS ADDRWD
002651,001117: 5552 04616 TC VCS1 # VXV
002652,001118: 5553 04024 LDANZIG TC DANZIG
002653,001119:
Page 67 |
002655,001121:
002656,001122: # DOUBLE-PRECISION POLYNOMIAL EVALUATION ROUTINE.
002657,001123:
002658,001124: # PROGRAM ENTRY
002659,001125: #
002660,001126: # L TC POLY
002661,001127: # N
002662,001128: # L+1 OCT -2N COMPUTES A +A X + ... + A X , WHERE
002663,001129: # 0 1 N
002664,001130: # L+2 D.P. - A X = C(MPAC).
002665,001131: # 0
002666,001132:
002667,001133: # - - - - - - - -
002668,001134:
002669,001135: # L+2+2N D.P. - A
002670,001136: # N
002671,001137:
002672,001138: # L+4+2N NEXT OPERATION
002673,001139:
002674,001140: 5554 35610 POLY CAF BUGBITS2 # CONTAINS XCADR VBUF
002675,001141: 5555 50103 TS TEM4
002676,001142: 5556 35501 CAF ZERO # ZERO INTO BUF, BUF+1 TO START POLYLUP
002677,001143: 5557 50077 TS BUF
002678,001144: 5560 50100 TS BUF +1
002679,001145:
002680,001146: 5561 30115 XCH MPAC # ARGUMENT X INTO 6T, 7T
002681,001147: 5562 50071 TS VBUF # TEMPORARY STORAGE
002682,001148: 5563 30116 XCH MPAC +1
002683,001149: 5564 50072 TS VBUF +1
002684,001150:
002685,001151: 5565 34772 CAF DAD2 +4 # ADDRESS OF MPAC
002686,001152: 5566 50102 TS TEM2
002687,001153:
002688,001154: 5567 20001 INDEX Q # 2N INTO 10T
002689,001155: 5570 30000 CAF 0
002690,001156: 5571 50107 TS TEM10
002691,001157: 5572 60001 AD Q # EXIT ADDRESS INTO 11T
002692,001158: 5573 64473 AD THREE
002693,001159: 5574 50106 TS TEM9
002694,001160: 5575 05601 TC POLYLUP +3
002695,001161:
Page 68 |
002697,001163:
002698,001164: 5576 50107 POLYLUP TS TEM10
002699,001165: 5577 05103 TC DMP1 +1
002700,001166:
002701,001167: 5600 30062 XCH ADDRWD
002702,001168: 5601 64340 +3 AD NEG2 # REDUCE COEFFICIENT INDEX BY 1
002703,001169: 5602 50062 TS ADDRWD # COEFFICIENT LOC IN ADDRWD FOR USE BY
002704,001170: 5603 04526 TC TCS1 +2 # -BUF,BUF+1 INTO MPAC,MPAC+1
002705,001171: 5604 05021 TC DAD1 +1 # - COEFF + (BUF) INTO BUF
002706,001172:
002707,001173: 5605 10107 CCS TEM10
002708,001174: 5606 64335 AD NEG1 # THE AD NEG1 ORDER, -0 WILL BE THE END
002709,001175: 5607 05576 TC POLYLUP
002710,001176:
002711,001177: 5610 50070 BUGBITS2 XCADR VBUF # USED BY POLY
002712,001178:
002713,001179: 5611 00106 TC TEM9 # RETURN
002714,001180:
Page 69 |
002716,001182:
002717,001183: 5612 40061 ITCF CS BANKSET # ITC - UNCONDITIONAL TRANSFER
002718,001184: 5613 30121 XCH ADRLOC # PLACE IN QPRET THE POLISH ADDRESS OF
002719,001185: 5614 74606 MASK LOW10 # THE NEXT EQUATION. ITC MUST BE THE LAST
002720,001186: 5615 60121 AD ADRLOC # NON-BLANK OPERATOR IN AN EQUATION
002721,001187: 5616 64516 AD ONE
002722,001188: 5617 20067 INDEX FIXLOC
002723,001189: 5620 50052 TS QPRET
002724,001190: 5621 10062 CCS ADDRWD
002725,001191: 5622 04001 TC INTPRET +1 # BANKREG IS ALREADY SET
002726,001192:
002727,001193: 5623 10122 BOVF CCS OVFIND # BRANCH IF OVERFLOW INDICATOR IS ON
002728,001194: 5624 05626 TC +2 # OVFIND CAN BE EITHER -1, 0, OR +1
002729,001195: 5625 04024 TC DANZIG # IT WAS OFF - DISPATCH NEXT OPERATOR.
002730,001196: 5626 50122 TS OVFIND # IT WAS ON - SET TO 0 (OFF)
002731,001197: 5627 04567 TC DOBR # AND DO THE BRANCH
002732,001198:
002733,001199: 5630 04754 VSLT1 TC VECSET # DP VECTOR SHIFT LEFT
002734,001200: 5631 50015 TS BANKREG
002735,001201: 5632 06477 TC VSLT2
002736,001202:
002737,001203: 5633 04754 VSRT1 TC VECSET # DP VECTOR SHIFT RIGHT
002738,001204: 5634 50116 TS MPAC +1 # SET SHIFTING BIT IN MPAC,MPAC+1
002739,001205: 5635 50015 TS BANKREG # CALL IN BANK ZERO.
002740,001206: 5636 06042 TC TRUE2 # GET INTEGER ADDRESS
002741,001207: 5637 65363 AD NEG13
002742,001208: 5640 10000 CCS A
002743,001209: 5641 05650 TC VSRT3
002744,001210: 5642 77761 NEG14 DEC -14 B-14
002745,001211: 5643 05644 TC +1
002746,001212: 5644 20062 INDEX ADDRWD
002747,001213: 5645 34500 CAF BIT15
002748,001214: 5646 50115 TS MPAC
002749,001215: 5647 05371 TC VECCHECK +1 # FINISH IN VXSC ROUTINE.
002750,001216:
002751,001217: 5650 20000 VSRT3 INDEX A
002752,001218: 5651 34501 CAF BIT14
002753,001219: 5652 30116 XCH MPAC +1 # WHICH PREVIOUSLY CONTAINED A ZERO
002754,001220: 5653 05646 TC VSRT3 -2
002755,001221:
002756,001222: 5777 SETLOC 5777 # STANDARD LOCATION FOR EXTENDING BITS
002757,001223:
002758,001224: 5777 47777 OPOVF XCADR 0
End of include-file FIXED-FIXED_INTERPRETER_SECTION.agc. Parent file is MAIN.agc