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