Source Code
These source-code files are part of a reconstructed copy of Sunrise 69, the
final release of the Block I Command Module (CM) Apollo Guidance Computer
(AGC) system test software.
They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 1003133-18, 1003133-19, 1003133-20, and 1003733-071. Corresponding portions of code have been copied from Solarium 55 where applicable. Extensive use was also made of the AGC Information Series documents, which were specifically written about the Sunrise software. Since only binary dumps (rather than listings) of Sunrise 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. |
000763,000002: ## Copyright: Public domain.
000764,000003: ## Filename: FIXED-FIXED_INTERPRETER_SECTION.agc
000765,000004: ## Purpose: A section of Sunrise 69.
000766,000005: ## It is part of the reconstructed source code for the final
000767,000006: ## release of the Block I Command Module system test software. No
000768,000007: ## original listings of this program are available; instead, this
000769,000008: ## file was created via disassembly of dumps of Sunrise core rope
000770,000009: ## memory modules and comparison with the later Block I program
000771,000010: ## Solarium 55.
000772,000011: ## Assembler: yaYUL --block1
000773,000012: ## Contact: Ron Burkey <info@sandroid.org>.
000774,000013: ## Website: www.ibiblio.org/apollo/index.html
000775,000014: ## Mod history: 2023-06-19 MAS Created from Sunrise 45.
000776,000015:
000777,000016:
000778,000017: 4000 SETLOC 4000 # SECOND HALF OF FIXED-FIXED.
000779,000018:
000780,000019: 4000 10001 INTPRET CCS Q # ENTRY TO INTERPRETER
000781,000020: 4001 50120 TS ADRLOC
000782,000021:
000783,000022: 4002 40015 CS BANKREG # GET BANKBITS
000784,000023: 4003 50060 TS BANKSET
000785,000024: 4004 04007 TC +3
000786,000025:
000787,000026: 4005 40060 NEWEQUN CS BANKSET # HERE FOR NEW EQUATIONS
000788,000027: 4006 50015 TS BANKREG
000789,000028: 4007 34516 CAF ONE # SET NEWEQIND TO CALL LOAD
000790,000029: 4010 50065 TS NEWEQIND
000791,000030: 4011 60120 AD ADRLOC # C(ADRLOC) = LOCATION LAST ADDRESS USED
000792,000031: 4012 50117 TS LOC # FOR OPERATORS
000793,000032: 4013 20000 INDEX A # GET FIRST OP AND NO. OF OPERATOR WORDS
000794,000033: 4014 40000 CS 0
000795,000034: 4015 64335 AD MINUS1
000796,000035: 4016 50062 TS ORDER
000797,000036: 4017 74717 MASK LOW7 # NUMBER OF ADDITIONAL OPERATOR WORDS
000798,000037: 4020 60117 AD LOC
000799,000038: 4021 50120 TS ADRLOC # AND SET ADRLOC
000800,000039: 4022 35500 CAF ZERO # TO SET ORDER TO ZERO
000801,000040: 4023 04072 TC IPROC2
000802,000041:
000803,000042:
000804,000043: 4024 10550 DANZIG CCS NEWJOB # INTERPRETIVE INTERRUPT
000805,000044: 4025 02104 TC CHANG2 # CALL IN BANK0 AND SWITCH JOBS
000806,000045:
000807,000046: 4026 40060 CS BANKSET # RESET BANK BITS OF OBJECT PROGRAM
000808,000047: 4027 50015 TS BANKREG
000809,000048:
000810,000049: 4030 10062 CCS ORDER # HAS NEXT OP CODE BEEN PROCESSED
000811,000050: 4031 04200 TC LOWWD # NEXT INSTRUCTION WAS RIGHT-HAND
000812,000051:
000813,000052: 4032 20117 INDEX LOC # PICK UP POSSIBLE NEXT INSTRUCTION
000814,000053: 4033 40001 CS 1
000815,000054: 4034 10000 CCS A
000816,000055: 4035 04065 TC IPROC # IT IS - GO PROCESS IT
000817,000056: 4036 04037 TC +1 # IN CASE THE FIRST ADDRESS WAS INACTIVE
000818,000057:
000819,000058: 4037 20120 INDEX ADRLOC # END OF EQUATION
000820,000059: 4040 40001 CS 1
000821,000060: 4041 10000 CCS A # IS THERE ANOTHER ADDRESS
000822,000061: 4042 04317 TC PUSHDOWN # NO - INSERT IN PUSH-DOWN LIST
000823,000062: 4043 00042 D34 DEC 34 B-14 # USED TO DISPATCH STORE OPERATIONS
000824,000063:
000825,000064: 4044 50075 STORADR TS POLISH # PROCESS STORE ADDRESSES
000826,000065: 4045 04364 TC INCADR # TO SHOW WE PICKED UP ANOTHER ADDRESS
000827,000066: 4046 34043 CAF D34 # FORM CODES 32 - 34
000828,000067: 4047 60064 AD MODE
000829,000068: 4050 60000 DOUBLE # BECAUSE WE HAVE TO PUT IT INTO CYR
000830,000069: 4051 50020 TS CYR
000831,000070: 4052 34302 CAF LOW11
000832,000071: 4053 70075 MASK POLISH # SAVE ERASABLE PART PLUS POSSIBLE TAG
000833,000072: 4054 30075 XCH POLISH
000834,000073: 4055 64060 AD NEGIDEX # DIRECT OR INDEXED
000835,000074: 4056 10000 CCS A
000836,000075: 4057 04233 TC INDEX # IT IS INDEXED - PRESENT POLISH OK
000837,000076: 4060 44000 NEGIDEX OCT -33777 # NEGATIVE OF STORE ADDRESS PREFIX +1
000838,000077: 4061 44504 CS BIT11
000839,000078: 4062 60075 AD POLISH
000840,000079: 4063 50075 TS POLISH
000841,000080: 4064 04257 TC NONINDEX
000842,000081:
000843,000082:
000844,000083: 4065 50062 IPROC TS ORDER # OP CODE WORD WAS PICKED UP BY CCS
000845,000084: 4066 30117 XCH LOC
000846,000085: 4067 64516 AD ONE
000847,000086: 4070 30117 XCH LOC
000848,000087: 4071 74717 MASK LOW7 # SAVE LOW ORDER CODE
000849,000088: 4072 30062 IPROC2 XCH ORDER # ENTRY FROM NEWEQUN
000850,000089: 4073 25777 INDEX OPOVF
000851,000090: 4074 44507 MP BIT8 # SHIFT IT RIGHT SEVEN PLACES
000852,000091: 4075 50020 TS CYR # GETTING RID OF THE RIGHT-HAND OP
000853,000092:
000854,000093: 4076 10020 JUMPIT CCS CYR # LOOK AT LOW-ORDER PREFIX BIT
000855,000094: 4077 04215 TC ADDRESS # INDEXABLE - DECODE ADDRESS IMMEDIATELY
000856,000095: 4100 00043 LOADOP OCT 43 # USED BY UNARY LOAD
000857,000096:
000858,000097: 4101 10020 CCS CYR # LOOK AT SECOND ONE HERE
000859,000098: 4102 04364 TC INCADR # PROCESS MISCELLANEOUS
000860,000099: 4103 04113 TC MISCPROC
000861,000100:
000862,000101: 4104 10065 UNAPROC CCS NEWEQIND # PROCESS UNARY REQUESTS
000863,000102: 4105 04152 TC UNALOAD # LOAD AN ACCUMULATOR AND RETURN
000864,000103:
000865,000104: 4106 34717 CAF LOW7
000866,000105: 4107 50015 TS BANKREG # CALL IN BANK 0 WHERE UNARIES ARE
000867,000106: 4110 70020 MASK CYR # WITHOUT CLOBBERING
000868,000107: 4111 20000 INDEX A
000869,000108: 4112 04453 TC UNAJUMP
000870,000109:
000871,000110:
000872,000111: # PROCESS MISCELLANEOUS OP CODES.
000873,000112:
000874,000113: 4113 20000 MISCPROC INDEX A
000875,000114: 4114 40000 CS 0 # WE KNOW ITS AN ADDRESS
000876,000115: 4115 64516 AD ONE # TO FIT IN WITH THE POLISH ADDRESS SCHEME
000877,000116: 4116 50075 TS POLISH # SAVE ENTIRE ADDRESS
000878,000117:
000879,000118: 4117 10000 CCS A
000880,000119: 4120 04145 TC ENDMISC
000881,000120: 4121 42000 42K OCT 42000
000882,000121: 4122 04124 TC +2
000883,000122: 4123 04143 TC MISCREL
000884,000123: 4124 62206 AD BANKMASK
000885,000124: 4125 10000 CCS A
000886,000125: 4126 64516 AD ONE
000887,000126: 4127 04131 TC +2
000888,000127: 4130 04135 TC MISC2
000889,000128:
000890,000129: 4131 64121 AD 42K
000891,000130: 4132 40000 COM
000892,000131: 4133 50075 TS POLISH
000893,000132: 4134 04145 TC ENDMISC
000894,000133:
000895,000134: 4135 64267 MISC2 AD RELTEST
000896,000135: 4136 10000 CCS A
000897,000136: 4137 40075 CS POLISH
000898,000137: 4140 04143 TC +3
000899,000138: 4141 40075 CS POLISH
000900,000139: 4142 04144 TC +2
000901,000140: 4143 60066 MISCREL AD FIXLOC
000902,000141: 4144 50061 TS ADDRWD
000903,000142:
000904,000143: 4145 34717 ENDMISC CAF LOW7
000905,000144: 4146 50015 TS BANKREG # CALL IN BANK 0
000906,000145: 4147 70020 MASK CYR
000907,000146: 4150 20000 INDEX A
000908,000147: 4151 04433 TC NONJUMP
000909,000148:
000910,000149:
000911,000150: 4152 34717 UNALOAD CAF LOW7 # PROCESS LOADING REQUESTS FOR UNARY
000912,000151: 4153 70020 MASK CYR # OPERATIONS. START BY FINDING APPROPRIATE
000913,000152: 4154 10000 CCS A # MODE
000914,000153: 4155 04160 TC +3 # TMOVE HAS CODE 0
000915,000154: 4156 45502 CS TWO
000916,000155: 4157 04164 TC MODESET
000917,000156: 4160 40000 CS A
000918,000157: 4161 64647 AD OCT40003
000919,000158: 4162 50064 TS MODE # SKIP IF SO AND SET A TO -1
000920,000159: 4163 45500 CS ZERO # IF WE DIDNT SKIP
000921,000160: 4164 50064 MODESET TS MODE
000922,000161:
000923,000162: 4165 34500 CAF NEGSIGN # GET INDEXING BIT FROM UNARY OP CODE IN
000924,000163: 4166 70020 MASK CYR # CYR
000925,000164: 4167 64100 AD LOADOP # AD LOAD OPCODE = OCT 43
000926,000165: 4170 60000 60K DOUBLE # DOUBLE OP CODE AND DUPLICATE SIGN IN
000927,000166: 4171 30020 XCH CYR # BIT 1 WHERE IT GOES INTO SIGN OF CYR
000928,000167: 4172 50023 TS SL # RE-EDIT, NOT BOTHERING ABOUT BITS 8-14
000929,000168: 4173 04215 TC ADDRESS # STANDARD ADDRESS ROUTINE
000930,000169:
000931,000170: 4174 50065 ULRET TS NEWEQIND # RETURN HERE AFTER LOADING
000932,000171: 4175 30023 XCH SL
000933,000172: 4176 50020 TS CYR # RESTORE ORIGINAL OP CODE
000934,000173: 4177 04106 TC UNAPROC +2 # AND DISPATCH AS USUAL
000935,000174:
000936,000175: 4200 35500 LOWWD CAF ZERO # RIGHT HAND OP CODE HAS ALREADY BEEN SET
000937,000176: 4201 30062 XCH ORDER
000938,000177: 4202 04075 TC JUMPIT -1
000939,000178:
000940,000179:
000941,000180: 4203 50065 LOAD TS NEWEQIND # LOADS FIRST ADDRESS OF NEW EQUATIONS
000942,000181: 4204 20064 INDEX MODE # TRIGGERS TYPE OF CLEAR-AND-ADD
000943,000182: 4205 04210 TC +3
000944,000183: 4206 04532 TC TCA1
000945,000184: 4207 04536 TC DCA1
000946,000185: 4210 04610 TC VCA1
000947,000186:
000948,000187: 4211 10065 LOADRET CCS NEWEQIND # IF A UNARY LOAD, THIS IS STILL ONE
000949,000188: 4212 04174 TC ULRET # NO SECOND ADDRESS FOR UNARY LOADS
000950,000189:
000951,000190: 4213 40060 CS BANKSET
000952,000191: 4214 50015 TS BANKREG
000953,000192:
000954,000193: 4215 20120 ADDRESS INDEX ADRLOC # INDEXABLE ADDRESS ROUTINE
000955,000194: 4216 40001 CS 1 # PICK UP WHAT SHOULD BE THE NEXT ADDRESS
000956,000195: 4217 10000 CCS A
000957,000196: 4220 04354 TC PUSHUP # NO ADDRESS MEANS TAKE OFF TOP OF STACK
000958,000197: 4221 04353 TC PUSHUP2 # INACTIVE ADDRESS MEANS JUST PUSHUP
000959,000198: 4222 30120 XCH ADRLOC # SAVE ADDRESS WHILE WE INCREMENT ADRLOC
000960,000199: 4223 64516 AD ONE
000961,000200: 4224 30120 XCH ADRLOC # NOW BRING IT BACK
000962,000201: 4225 50075 TS POLISH
000963,000202: 4226 34500 CAF NEGSIGN
000964,000203: 4227 70020 MASK CYR
000965,000204: 4230 10000 CCS A # INDEXED OR NOT
000966,000205: 4231 50113 BUGMPAC XCADR MPAC
000967,000206: 4232 04257 TC NONINDEX
000968,000207:
000969,000208:
000970,000209: # PROCEDURE FOR INDEXED ADDRESSES.
000971,000210:
000972,000211: 4233 30075 INDEX XCH POLISH
000973,000212: 4234 50021 TS SR # SR NOW CONTAINS SUB-ADDRESS
000974,000213: 4235 30020 XCH CYR # SAVE ORDER CODE
000975,000214: 4236 50022 TS CYL # TO PREPARE FOR RESTORING
000976,000215: 4237 04721 TC TAG
000977,000216: 4240 20074 INDEX TAG1
000978,000217: 4241 40046 CS X1 # INDEX REGISTERS ARE SUBTRACTIVE, ALA 70X
000979,000218: 4242 60021 AD SR
000980,000219: 4243 30075 XCH POLISH # TS WOULD SKIP ON OVERFLOW
000981,000220:
000982,000221: 4244 30022 XCH CYL # RESTORE OP CODE BITS IN CYR
000983,000222: 4245 50020 TS CYR
000984,000223:
000985,000224: 4246 10075 CCS POLISH # SEE IF BIT 15 SHOULD BE ZERO. IT SHOULD
000986,000225: 4247 04257 TC NONINDEX # IF THE ADDRESS IS LESS THAN ROUGHLY
000987,000226: 4250 04362 TC RELTOVAC +1 # -1000D.
000988,000227: 4251 04253 TC +2
000989,000228: 4252 04362 TC RELTOVAC +1 # QUICK ACTION ON THESE ZERO CASES.
000990,000229:
000991,000230: 4253 64267 AD RELTEST # (-976D).
000992,000231: 4254 10000 CCS A
000993,000232: 4255 30075 XCH POLISH # LESS THAN -1000. GO DIRECTLY TO
000994,000233: 4256 04272 TC SWADDR # SWITCHED-BANK ADDRESS ROUTINE.
000995,000234:
000996,000235:
000997,000236: 4257 40075 NONINDEX CS POLISH # GET 14 BIT ADDRESS
000998,000237: 4260 64504 AD ERASTEST # SEE IF ERASABLE OR NOT
000999,000238: 4261 10000 CCS A
001000,000239: 4262 64267 AD RELTEST # YES - SEE IF IN TEMPORARY BLOCK
001001,000240: 4263 04300 TC TEST2
001002,000241: 4264 65472 AD STORTEST # NO - SEE IF STORE ADDRESS
001003,000242: 4265 10000 CCS A
001004,000243: 4266 04356 TC PUSHUP3 # YES - PUSHUP
001005,000244: 4267 76057 RELTEST DEC -976 B-14
001006,000245: 4270 34500 CAF BIT15
001007,000246: 4271 60075 AD POLISH
001008,000247: 4272 50015 SWADDR TS BANKREG
001009,000248: 4273 50075 TS POLISH
001010,000249: 4274 74605 MASK LOW10
001011,000250: 4275 64373 AD 6K
001012,000251: 4276 50061 TS ADDRWD
001013,000252: 4277 04305 TC JUMP
001014,000253:
001015,000254: 4300 10000 TEST2 CCS A # DOES THIS REFER TO THE TEMPORARY BLOCK
001016,000255: 4301 04361 TC RELTOVAC # ADDRESS IS RELATIVE TO VAC AREA.
001017,000256: 4302 03777 LOW11 OCT 3777
001018,000257: 4303 30075 XCH POLISH # YES - FORM ADDRESS
001019,000258: 4304 50061 TS ADDRWD
001020,000259:
001021,000260: 4305 34473 JUMP CAF THREE # LOOK AT LOW-ORDER 2 BITS IN 5 BIT CODE
001022,000261: 4306 70020 MASK CYR
001023,000262: 4307 10000 CCS A # IF ZERO, LOAD NOW AND CALL IN BANK 0
001024,000263: 4310 04313 TC +3 # NON-ZERO - GO ON.
001025,000264: 4311 04746 TC DPSET # LOAD DP IF NECESSARY
001026,000265: 4312 50015 TS BANKREG # CALL IN BANK 0
001027,000266: 4313 34717 CAF LOW7 # BITS 6-13 ARE GUARANTEED TO BE ZERO
001028,000267: 4314 70020 MASK CYR
001029,000268: 4315 20000 INDEX A
001030,000269: 4316 04367 TC INDJUMP
001031,000270:
001032,000271:
001033,000272: 4317 30122 PUSHDOWN XCH PUSHLOC # NO STORE ADDRESS GIVEN - PUSH DOWN
001034,000273: 4320 50061 TS ADDRWD # STORED IN THE NEXT ENTRY
001035,000274: 4321 20064 INDEX MODE
001036,000275: 4322 64475 AD NO.WDS # 2 FOR DP, 6 FOR VECTORS, 3 FOR TP
001037,000276: 4323 50122 TS PUSHLOC
001038,000277: 4324 20064 INDEX MODE
001039,000278: 4325 04431 TC INDJUMP +34D # DISPATCH TO CORRECT STORE INSTRUCTION
001040,000279:
001041,000280: 4326 30001 PUSHUP1 XCH Q # THE PUSH-UP ROUTINE IS CALLED UNDER THE
001042,000281: 4327 50111 TS COMPON # FOLLOWING CIRCUMSTANCES:
001043,000282: 4330 34717 CAF LOW7 # 1. NO ADDRESS WORD IS FOUND.
001044,000283: 4331 70020 MASK CYR # 2. A STORE ADDRESS IS FOUND.
001045,000284: 4332 64340 AD -VXSC # OR 3. AN INACTIVE ADDRESS IS FOUND.
001046,000285: 4333 10000 CCS A # IF THE REQUESTING OPERATION CODE IS VXSC
001047,000286: 4334 04345 TC PUSHUPOK # THE MODE MUST BE SWITCHED BEFORE PUSHING
001048,000287: 4335 77776 MINUS1 OCT -1 # UP, SINCE VXSC DEMANDS AN ARGUMENT OF
001049,000288: 4336 04345 TC PUSHUPOK # THE OPPOSITE MODE (SCALAR NEEDS VECTOR,
001050,000289:
001051,000290: 4337 10064 CCS MODE # ETC.)
001052,000291: 4340 77775 MINUS2 OCT -2 # UNUSED CCS BRANCHES.
001053,000292: 4341 77774 NEG3 OCT -3
001054,000293: 4342 45501 CS FOUR
001055,000294: 4343 64340 AD NEG2
001056,000295: 4344 04347 TC +3
001057,000296: 4345 20064 PUSHUPOK INDEX MODE # DO PUSH-UP OPERATION.
001058,000297: 4346 44475 CS NO.WDS # 2, 3, OR 6.
001059,000298: 4347 60122 AD PUSHLOC
001060,000299: 4350 50122 TS PUSHLOC
001061,000300: 4351 50061 TS ADDRWD # SET ADDRWD AND LEAVE ADDRESS IN A.
001062,000301: 4352 00111 TC COMPON
001063,000302:
001064,000303: 4353 4340 -VXSC EQUALS MINUS2
001065,000304:
001066,000305: 4353 04364 PUSHUP2 TC INCADR # SENT HERE ON INACTIVE ADDRESS
001067,000306:
001068,000307: 4354 04326 PUSHUP TC PUSHUP1 # NO ADDRESS GIVEN SENDS US HERE
001069,000308: 4355 04305 TC JUMP # AND JUMP
001070,000309:
001071,000310: 4356 10120 PUSHUP3 CCS ADRLOC # AN UNEXPECTED STORE ADDRESS SENDS US
001072,000311: 4357 50120 TS ADRLOC # HERE.
001073,000312: 4360 04354 TC PUSHUP
001074,000313:
001075,000314: 4361 30075 RELTOVAC XCH POLISH # ADDRESS WAS LESS THAN 42, SO ADD
001076,000315: 4362 60066 AD FIXLOC # ADDRESS OF VAC AREA.
001077,000316: 4363 04304 TC JUMP -1
001078,000317:
001079,000318: 4364 34516 INCADR CAF ONE
001080,000319: 4365 60120 AD ADRLOC
001081,000320: 4366 50120 TS ADRLOC
001082,000321: 4367 00001 TC Q
001083,000322:
001084,000323:
001085,000324: 4370 05611 IJUMP TC ITCF # INTERPRETIVE TRANSFER CONTROL
001086,000325: 4371 05356 TC VXSC1 # VECTOR TIMES SCALAR
001087,000326: 4372 05210 TC VSU1 # VECTOR SUBTRACT
001088,000327: 4373 06000 TC BMN1 # BRANCH MINUS
001089,000328: 4374 04677 TC STZ1 # STORE ZERO
001090,000329: 4375 05622 TC BOVF # BRANCH ON OVERFLOW
001091,000330: 4376 04765 TC DAD2 # DOUBLE PRECISION ADD
001092,000331: 4377 06014 TC BHIZ1 # BRANCH IF MAJOR PART ZERO
001093,000332: 4400 04731 TC DSU2 # DP SUBTRACT
001094,000333: 4401 04734 TC DBSU # DP BACKWARDS SUBTRACT
001095,000334: 4402 05060 TC DMP2 # DP MULTIPLY
001096,000335: 4403 06402 TC SHIFTL # TP LEFT SHIFT
001097,000336: 4404 05143 TC DDV # DP DIVIDE
001098,000337: 4405 05140 TC BDDV # DP BACKWARDS DIVIDE
001099,000338: 4406 04775 TC TRAD # TRIPLE PRECISION ADD
001100,000339: 4407 06411 TC TSLC # TP SHIFT LEFT AND COUNT
001101,000340: 4410 05074 TC SHIFTR1 # TP SHIFT RIGHT
001102,000341: 4411 05060 TC DMP2 # DP MULTIPLY AND THEN ROUND
001103,000342: 4412 04772 TC TSU1 # TP SUBTRACT
001104,000343: 4413 06213 TC SIGN # AFFIX SIGN OF X TO MPAC
001105,000344: 4414 05315 TC MXV1 # MATRIX TIMES VECTOR
001106,000345: 4415 05305 TC VXM1 # VECTOR TIMES MATRIX
001107,000346: 4416 05220 TC VAD1 # VECTOR ADD
001108,000347: 4417 06010 TC BZE1 # BRANCH ON ZERO
001109,000348: 4420 05213 TC BVSU1 # BACKWARDS VECTOR SUBTRACT
001110,000349: 4421 05632 TC VSRT1 # VECTOR SHIFT RIGHT
001111,000350: 4422 05627 TC VSLT1 # VECTOR SHIFT LEFT
001112,000351: 4423 06004 TC BPL1 # BRANCH POSITIVE
001113,000352: 4424 05233 TC DOT1 # VECTOR DOT PRODUCT
001114,000353: 4425 05510 TC CROSS1 # VECTOR CROSS PRODUCT
001115,000354: 4426 05504 TC VPROJ1 # VECTOR PROJECTION
001116,000355:
001117,000356: 4427 04551 TC TTS1
001118,000357: 4430 04555 TC DTS1 # DP TRANSFER TO STORAGE
001119,000358: 4431 04621 TC VTS1 # VECTOR TS
001120,000359: 4432 04204 TC LOAD +1 # LOADING
001121,000360:
001122,000361: 4433 4373 6K EQUALS IJUMP +3 # BMN STARTS AT LOCATION 6000
001123,000362:
001124,000363: 4433 4367 INDJUMP EQUALS IJUMP -1
001125,000364:
001126,000365:
001127,000366: 4433 06206 NONJUMP TC EXIT
001128,000367: 4434 06072 TC AXT # ADDRESS TO INDEX TRUE
001129,000368: 4435 06077 TC LXA # LOAD INDEX FROM THE ADDRESS
001130,000369: 4436 06104 TC LXC # LOAD INDEX FROM ADDRESS COMPLEMENTED
001131,000370: 4437 06110 TC SXA # STORE INDEX IN THE ADDRESS
001132,000371: 4440 06141 TC XCHX # INDEX REGISTER EXCHANGE
001133,000372: 4441 06134 TC INCR # INDEX REGISTER INCREMENT
001134,000373: 4442 06153 TC XAD # INDEX REGISTER ADD FROM ERASABLE
001135,000374: 4443 06147 TC XSU # INDEX REGISTER SUBTRACT FROM ERASABLE
001136,000375: 4444 06062 TC AST # ADDRESS TO STEP TRUE
001137,000376: 4445 06067 TC AXC # ADDRESS TO INDEX COMPLEMENTED
001138,000377: 4446 06115 TC TIX # TRANSFER ON INDEX
001139,000378: 4447 06352 TC NOLOAD # LEAVE MPAC (OR VAC) LOADED
001140,000379: 4450 06174 TC ITA1 # TRANSFER ADDRESS
001141,000380: 4451 06434 TC SWITCHEM # SWITCH AND TEST INSTRUCTIONS
001142,000381: 4452 06341 TC NEXT # LODON AND ITCQ
001143,000382:
001144,000383: 4453 07434 UNAJUMP TC TMOVE # FOR TP AS WELL
001145,000384: 4454 04024 TC VMOVE
001146,000385: 4455 07170 TC UNIT
001147,000386: 4456 06261 TC ABVAL1 # ABVAL
001148,000387: 4457 06226 TC VSQ # SQUARE OF VECTOR LENGTH
001149,000388: 4460 06316 TC SSP # ABSOLUTE VALUE OF SCALAR
001150,000389: 4461 06737 TC ARCSIN1
001151,000390: 4462 06741 TC ARCCOS1
001152,000391: 4463 06603 TC SIN1
001153,000392: 4464 06605 TC COS1
001154,000393: 4465 07424 TC SQRTS
001155,000394: 4466 06323 TC SQUARE
001156,000395: 4467 06325 TC COMP # COMPLEMENT
001157,000396: 4470 04024 TC DMOVE
001158,000397: 4471 06336 TC SMOVE
001159,000398: 4472 06160 TC VDEF # VECTOR DEFINE
001160,000399:
001161,000400:
001162,000401: 4473 00003 THREE OCT 3
001163,000402: 4474 00002 OCT 2
001164,000403: 4475 00006 NO.WDS OCT 6 # 3, 2, 6 ORDER IMPORTANT FOR PUSH-DOWN.
001165,000404:
001166,000405: 4476 37777 POSMAX OCT 37777 # MUST BE 2 LOCATIONS BEFORE NEGMAX
001167,000406: 4477 00005 FIVE OCT 5
001168,000407: 4500 4477 LIMITS EQUALS POSMAX +1 # USED BY CDU COUNTER ARITHMETIC PROGRAMS.
001169,000408:
001170,000409: 4500 40000 BIT15 OCT 40000
001171,000410: 4501 20000 BIT14 OCT 20000
001172,000411: 4502 10000 BIT13 OCT 10000
001173,000412: 4503 04000 BIT12 OCT 04000
001174,000413: 4504 02000 BIT11 OCT 02000
001175,000414: 4505 01000 BIT10 OCT 01000
001176,000415: 4506 00400 BIT9 OCT 00400
001177,000416: 4507 00200 BIT8 OCT 00200
001178,000417: 4510 00100 BIT7 OCT 00100
001179,000418: 4511 00040 BIT6 OCT 00040
001180,000419: 4512 00020 BIT5 OCT 00020
001181,000420: 4513 00010 BIT4 OCT 00010
001182,000421: 4514 00004 BIT3 OCT 00004
001183,000422: 4515 00002 BIT2 OCT 00002
001184,000423: 4516 00001 BIT1 OCT 00001
001185,000424:
001186,000425: 4517 4502 QUARTER EQUALS BIT13
001187,000426: 4517 4513 EIGHT EQUALS BIT4
001188,000427: 4517 4516 ONE EQUALS BIT1
001189,000428: 4517 4504 ERASTEST EQUALS BIT11
001190,000429: 4517 BUGBITS EQUALS 5777
001191,000430: 4517 ATSBITS EQUALS 5777
001192,000431: 4517 4340 NEG2 EQUALS MINUS2
001193,000432: 4517 4475 SIX EQUALS NO.WDS
001194,000433: 4517 4335 NEG1 EQUALS MINUS1
001195,000434: 4517 4500 NEGSIGN EQUALS BIT15
001196,000435:
001197,000436: 4517 57777 77777 NEG1/2 2DEC -.5
001198,000437: 4521 20000 00000 POS1/2 2DEC .5
001199,000438: 4523 4521 HALF EQUALS POS1/2
001200,000439:
001201,000440:
001202,000441: 4523 40100 TCS1 CS BUF +2 # USED BY DMP, ETC
001203,000442: 4524 50116 TS MPAC +2
001204,000443: 4525 40077 CS BUF +1
001205,000444: 4526 50115 TS MPAC +1
001206,000445: 4527 40076 CS BUF
001207,000446: 4530 50114 TS MPAC
001208,000447: 4531 00001 TC Q
001209,000448:
001210,000449: 4532 20061 TCA1 INDEX ADDRWD # TRIPLE PRECISION CLEAR AND ADD
001211,000450: 4533 40002 CS 2
001212,000451: 4534 40000 CS A
001213,000452: 4535 04537 TC +2
001214,000453:
001215,000454: 4536 35500 DCA1 XCH ZERO # DOUBLE PRECISION CLEAR AND ADD
001216,000455: 4537 50116 TS MPAC +2 # (CLEARS MPAC +2)
001217,000456: 4540 20061 INDEX ADDRWD
001218,000457: 4541 40001 CS 1
001219,000458: 4542 40000 CS A
001220,000459: 4543 50115 TS MPAC +1
001221,000460: 4544 20061 INDEX ADDRWD
001222,000461: 4545 40000 CS 0
001223,000462: 4546 40000 CS A
001224,000463: 4547 50114 TS MPAC
001225,000464: 4550 04211 TC LOADRET # PREPARE TO DECODE NEXT ADDRESS
001226,000465:
001227,000466: 4551 40116 STORE3 CS MPAC +2 # TRIPLE PRECISION TRANSFER TO STORAGE
001228,000467: 4552 40000 CS A
001229,000468: 4553 20061 INDEX ADDRWD
001230,000469: 4554 50002 TS 2
001231,000470: 4555 40115 DTS1 CS MPAC +1 # DOUBLE PRECISION TRANSFER TO STORAGE
001232,000471: 4556 40000 CS A
001233,000472: 4557 20061 INDEX ADDRWD
001234,000473: 4560 50001 TSQ TS 1
001235,000474: 4561 40114 CS MPAC
001236,000475: 4562 40000 MSIGN CS A
001237,000476: 4563 20061 INDEX ADDRWD
001238,000477: 4564 50000 TS 0
001239,000478: 4565 04005 NEQRET TC NEWEQUN # START NEW EQUATION
001240,000479:
001241,000480: 4566 4551 TTS1 EQUALS STORE3
001242,000481: # 35W
001243,000482:
001244,000483:
001245,000484: 4566 30075 DOBR XCH POLISH # DOES BRANCHES
001246,000485: 4567 04601 TC DOBR2
001247,000486:
001248,000487: 4570 40060 EXIT2 CS BANKSET # COMPLETE EXIT EXECUTION BY CALLING IN
001249,000488: 4571 50015 TS BANKREG # BANK OF OBJECT INTERPRETIVE PROGRAM.
001250,000489: 4572 00120 TC ADRLOC
001251,000490:
001252,000491: 4573 40060 SWF/F CS BANKSET # BRANCHING TEST INSTRUCTION
001253,000492: 4574 50015 TS BANKREG # RETURNS HERE TO PICK UP BRANCHING ADDRES
001254,000493: 4575 20120 INDEX ADRLOC
001255,000494: 4576 30000 CAF 0 # BRANCH IS ALWAYS TO FIXED.
001256,000495: 4577 64335 AD NEG1 # UNDO YULISH INCREMENT.
001257,000496: 4600 64500 AD BIT15
001258,000497:
001259,000498: 4601 50015 DOBR2 TS BANKREG
001260,000499: 4602 74605 MASK LOW10
001261,000500: 4603 64607 AD 6K-1
001262,000501: 4604 04001 TC INTPRET +1
001263,000502:
001264,000503: 4605 01777 LOW10 OCT 1777
001265,000504: 4606 00777 LOW9 OCT 777
001266,000505: 4607 05777 6K-1 OCT 5777
001267,000506:
001268,000507: 4610 30001 VCA1 XCH Q # VECTOR CLEAR-AND-ADD ROUTINE
001269,000508: 4611 50103 TS TEM5
001270,000509: 4612 34500 CAF NEGSIGN
001271,000510: 4613 04631 TC VECMOVE
001272,000511: 4614 00103 TC TEM5
001273,000512:
001274,000513: 4615 30001 VCS1 XCH Q # DP VECTOR CLEAR-AND-SUBTRACT
001275,000514: 4616 50103 TS TEM5
001276,000515: 4617 34712 CAF NOOP
001277,000516: 4620 04613 TC VCA1 +3
001278,000517:
001279,000518: 4621 30061 VTS1 XCH ADDRWD # TRANSFER TO STORAGE
001280,000519: 4622 30067 XCH VACLOC # EXCHANGE VACLOC AND ADDRWD AND DO AN
001281,000520: 4623 50061 TS ADDRWD # EFFECTIVE *CLEAR-AND-ADD*.
001282,000521: 4624 34500 CAF NEGSIGN
001283,000522: 4625 04631 TC VECMOVE
001284,000523: 4626 30061 XCH ADDRWD # RESTORE VACLOC
001285,000524: 4627 50067 TS VACLOC
001286,000525: 4630 04005 TC NEWEQUN # THIS ONLY HAPPENS AT END OF EQUATION
001287,000526:
001288,000527:
001289,000528: 4631 50101 VECMOVE TS TEM2 # MOVES A DP VECTOR IN THE FASTEST WAY
001290,000529: 4632 20061 INDEX ADDRWD # AVAILABLE. USED BY VCA, VCS, AND VTS.
001291,000530: 4633 40005 CS 5
001292,000531: 4634 20101 INDEX TEM2
001293,000532: 4635 00000 0 0 # COM FOR VCA, VTS. NOOP FOR VCS.
001294,000533: 4636 20067 INDEX VACLOC
001295,000534: 4637 50005 TS 5
001296,000535:
001297,000536: 4640 20061 INDEX ADDRWD
001298,000537: 4641 40004 CS 4
001299,000538: 4642 20101 INDEX TEM2
001300,000539: 4643 00000 0 0
001301,000540: 4644 20067 INDEX VACLOC
001302,000541: 4645 50004 TS 4
001303,000542:
001304,000543: 4646 20061 INDEX ADDRWD
001305,000544: 4647 40003 OCT40003 CS 3 # CONSTANT USED BY UNARY LOAD ROUTINE.
001306,000545: 4650 20101 INDEX TEM2
001307,000546: 4651 00000 0 0
001308,000547: 4652 20067 INDEX VACLOC
001309,000548: 4653 50003 TS 3
001310,000549:
001311,000550: 4654 20061 INDEX ADDRWD
001312,000551: 4655 40002 OCT40002 CS 2
001313,000552: 4656 20101 INDEX TEM2
001314,000553: 4657 00000 0 0
001315,000554: 4660 20067 INDEX VACLOC
001316,000555: 4661 50002 TS 2
001317,000556:
001318,000557: 4662 20061 INDEX ADDRWD
001319,000558: 4663 40001 CSQ CS 1 # CONSTANT USED BY WAITLIST.
001320,000559: 4664 20101 INDEX TEM2
001321,000560: 4665 00000 0 0
001322,000561: 4666 20067 INDEX VACLOC
001323,000562: 4667 50001 TS 1
001324,000563:
001325,000564: 4670 20061 INDEX ADDRWD
001326,000565: 4671 40000 CS 0
001327,000566: 4672 20101 INDEX TEM2
001328,000567: 4673 00000 0 0
001329,000568: 4674 20067 INDEX VACLOC
001330,000569: 4675 50000 TS 0
001331,000570:
001332,000571: 4676 00001 TC Q # DONE
001333,000572:
001334,000573:
001335,000574: 4677 35500 STZ1 CAF ZERO
001336,000575: 4700 20061 INDEX ADDRWD
001337,000576: 4701 50000 TS 0
001338,000577:
001339,000578: 4702 40060 RE-ENTER CS BANKSET # ROUTINE SIMILAR TO 'DANZIG' EXCEPT THAT
001340,000579: 4703 50015 TS BANKREG # NO PUSHING DOWN IS DONE AT END OF EQUN.
001341,000580:
001342,000581: 4704 10062 CCS ORDER # IT IS USED BY MISCELLANEOUS INSTRUCTIONS
001343,000582: 4705 04200 TC LOWWD # AND BRANCHES WHICH FAILED
001344,000583:
001345,000584: 4706 20117 INDEX LOC # IF WE HAD RETURNED DIRECTLY TO THE MAIN
001346,000585: 4707 40001 CS 1
001347,000586: 4710 10000 CCS A
001348,000587: 4711 04065 TC IPROC # IT IS USED BY BRANCH INSTRUCTIONS WHICH
001349,000588: 4712 30000 NOOP NOOP # IN CASE THE FIRST ADDRESS WAS INACTIVE
001350,000589:
001351,000590: 4713 20120 INDEX ADRLOC # SEE IF A LEFT-OVER ADDRESS
001352,000591: 4714 40001 CS 1
001353,000592: 4715 10000 CCS A
001354,000593: 4716 04005 TC NEWEQUN # NO - START NEW EQUATION
001355,000594: 4717 00177 LOW7 OCT 177
001356,000595: 4720 04044 TC STORADR # YES - MUST BE STORE ADDRESS
001357,000596:
001358,000597: 4721 4700 STOR1 EQUALS STZ1 +1
001359,000598:
001360,000599:
001361,000600: 4721 10020 TAG CCS CYR # SETS TAG1 ACCORDING TO SIGN BIT IN CYR
001362,000601: 4722 35500 CAF ZERO
001363,000602: 4723 10000 CCS A # SKIP NEXT INS WITHOUT CHANGING Q
001364,000603: 4724 34516 CAF ONE
001365,000604: 4725 60066 AD FIXLOC # INDEXES AND STEPS IN VAC AREA
001366,000605: 4726 50074 TS TAG1
001367,000606: 4727 00001 TC Q
001368,000607:
001369,000608: 4730 00076 TCBUF ADRES BUF
001370,000609:
001371,000610: 4731 04746 DSU2 TC DPSET # DP SUBTRACT
001372,000611: 4732 05054 TC ADDTOSUB
001373,000612: 4733 04766 TC DAD2 +1
001374,000613:
001375,000614: 4734 04746 DBSU TC DPSET
001376,000615: 4735 04741 TC DACCOM # COMPLEMENT DP ACCUM
001377,000616: 4736 04766 TC DAD2 +1 # AND ADD
001378,000617:
001379,000618: 4737 40116 MPACCOM CS MPAC +2 # COMPLEMENT MPAC
001380,000619: 4740 50116 TS MPAC +2
001381,000620: 4741 40115 DACCOM CS MPAC +1
001382,000621: 4742 50115 TS MPAC +1
001383,000622: 4743 40114 CS MPAC
001384,000623: 4744 50114 TS MPAC
001385,000624: 4745 00001 TC Q
001386,000625:
001387,000626: 4746 44516 DPSET CS ONE # SET UP DP MODE AND LOAD IF NECESSARY
001388,000627: 4747 50064 TS MODE
001389,000628: 4750 10065 CCS NEWEQIND
001390,000629: 4751 04203 TC LOAD
001391,000630: 4752 00001 TC Q
001392,000631:
001393,000632: 4753 45500 VECSET CS ZERO # SIMILARLY FOR VECTORS
001394,000633: 4754 50064 TS MODE
001395,000634: 4755 10065 CCS NEWEQIND
001396,000635: 4756 04203 TC LOAD
001397,000636: 4757 00001 TC Q
001398,000637:
001399,000638: 4760 45502 TPSET CS TWO # AND FOR TP
001400,000639: 4761 50064 TS MODE
001401,000640: 4762 10065 CCS NEWEQIND
001402,000641: 4763 04203 TC LOAD
001403,000642: 4764 00001 TC Q
001404,000643:
001405,000644:
001406,000645: 4765 04746 DAD2 TC DPSET # DOUBLE PRECISION ADD INSTRUCTION
001407,000646: 4766 34771 CAF DAD2 +4
001408,000647: 4767 05017 TC DAD1 # PROGRAM USES CLOSED SUBROUTINE DAD1,
001409,000648: 4770 04024 TC INT1 # WITH ADDRESSES SET UP IN ADDRWD, TEM2
001410,000649:
001411,000650: 4771 00114 +4 ADRES MPAC
001412,000651:
001413,000652: 4772 04760 TSU1 TC TPSET # TRIPLE PRECISION SUBTRACT INSTRUCTION
001414,000653: 4773 05054 TC ADDTOSUB
001415,000654: 4774 04776 TC TRAD +1
001416,000655:
001417,000656: 4775 04760 TRAD TC TPSET # TRIPLE PRECISION ADD INSTRUCTION
001418,000657: 4776 05000 TC +2
001419,000658: 4777 04024 TC INT1
001420,000659:
001421,000660: 5000 30001 +3 XCH Q
001422,000661: 5001 50103 TS TEM5
001423,000662: 5002 34771 CAF DAD2 +4
001424,000663: 5003 50101 TS TEM2
001425,000664: 5004 20000 INDEX A
001426,000665: 5005 30002 XCH 2
001427,000666: 5006 20061 INDEX ADDRWD
001428,000667: 5007 60002 AD 2
001429,000668: 5010 20101 INDEX TEM2
001430,000669: 5011 50002 TS 2 # AGAIN SKIPPING, AS IN DAD1
001431,000670: 5012 35500 CAF ZERO
001432,000671: 5013 20101 INDEX TEM2
001433,000672: 5014 60001 AD 1
001434,000673: 5015 05022 TC DAD1 +3 # FINISH IN DAD1
001435,000674:
001436,000675: 5016 00103 TC TEM5 # AND RETURN
001437,000676:
001438,000677:
001439,000678: 5017 50101 DAD1 TS TEM2 # DOUBLE PRECISION ADD ROUTINE
001440,000679: 5020 20101 INDEX TEM2 # POLYNOMIAL EVALUATOR ENTERS HERE.
001441,000680: 5021 30001 XCH 1
001442,000681: 5022 20061 +3 INDEX ADDRWD
001443,000682: 5023 60001 AD 1
001444,000683: 5024 20101 INDEX TEM2
001445,000684: 5025 50001 TS 1 # SKIPS IF OVERFLOW WITH COUNT IN A
001446,000685: 5026 35500 CAF ZERO # NO OVERFLOW IF HERE
001447,000686: 5027 20101 INDEX TEM2 # ARRIVE HERE WITH 1 OR -1 IN A IF OVERFLO
001448,000687: 5030 60000 AD 0
001449,000688: 5031 20061 INDEX ADDRWD
001450,000689: 5032 60000 AD 0
001451,000690: 5033 20101 INDEX TEM2
001452,000691: 5034 50000 TS 0 # AND AGAIN SKIP IF OVERFLOW
001453,000692: 5035 00001 TC Q # EXIT IF NONE
001454,000693: 5036 50121 TS OVFIND # SAVE ANY OVERFLOW FOR BOV TESTING
001455,000694: 5037 00001 TC Q
001456,000695:
001457,000696: 5040 50104 8TO2 TS TEM8 # MOVES THE DP WORD LOCATED AT THE ADDRESS
001458,000697: 5041 20000 INDEX A # IN A TO THE ADDRESS IN TEM2
001459,000698: 5042 40000 CS 0
001460,000699: 5043 40000 CS A
001461,000700: 5044 20101 INDEX TEM2
001462,000701: 5045 50000 TS 0
001463,000702: 5046 20104 INDEX TEM8
001464,000703: 5047 40001 CS 1
001465,000704: 5050 40000 CS A
001466,000705: 5051 20101 INDEX TEM2
001467,000706: 5052 50001 TS 1
001468,000707: 5053 00001 TC Q
001469,000708:
001470,000709: 5054 30061 ADDTOSUB XCH ADDRWD # BY PUTTING THE APPROPRIATE BITS IN
001471,000710: 5055 65777 AD ATSBITS # ADDRWD, DAD1 DOES A DOUBLE SUBTRACT IN-
001472,000711: 5056 50061 TS ADDRWD # STEAD OF A DOUBLE ADD.
001473,000712: 5057 00001 TC Q
001474,000713:
001475,000714:
001476,000715: 5060 04746 DMP2 TC DPSET # DP MULTIPLY (AND ROUND) ROUTINE
001477,000716: 5061 30061 XCH ADDRWD
001478,000717: 5062 65777 AD BUGBITS # MAKE EXENDED CODE ADDRESS.
001479,000718: 5063 50102 DSQ2 TS TEM4 # ENTRY FROM DSQ ROUTINE.
001480,000719: 5064 34771 XCH DAD2 +4 # C(DAD2 +4) = TC MPAC
001481,000720: 5065 05101 TC DMP1 # EXECUTE MULTIPLY AT DMP1, THEN EXIT
001482,000721: 5066 04523 TC TCS1 # VIA TCS1 TO MOVE (BUF TO BUF+2)
001483,000722: # INTO (MPAC TO MPAC+2).
001484,000723:
001485,000724: 5067 40020 OCT40020 CS CYR
001486,000725: 5070 10020 CCS CYR
001487,000726: 5071 34771 MPACRND CAF DAD2 +4 # SET UP ROUND SUBROUTINE TO ROUND MPAC.
001488,000727: 5072 05442 TC PREROUND +1
001489,000728: 5073 04024 TC DANZIG
001490,000729:
001491,000730: 5074 04746 SHIFTR1 TC DPSET # TSRT INSTRUCTION.
001492,000731: 5075 50015 TS BANKREG # SUBROUTINE IN BANK 0
001493,000732: 5076 06042 TC TRUE2 # GET INTEGER ADDRESS BACK
001494,000733: 5077 06232 TC SHIFTR -1 # WITH DECREMENTED COUNT IN A.
001495,000734: 5100 04024 TC DANZIG
001496,000735:
001497,000736:
001498,000737: 5101 50101 DMP1 TS TEM2 # GENERAL PURPOSE DP MULTIPLICATION
001499,000738: 5102 20101 INDEX TEM2 # POLYNOMIAL ENTERS HERE.
001500,000739: 5103 40001 CS 1
001501,000740: 5104 50034 TS OVCTR # -N1 TO OVCTR
001502,000741: 5105 20102 INDEX TEM4
001503,000742: 5106 40001 MP 1 # -M1N1
001504,000743: 5107 30034 XCH OVCTR # -U(M1N1) TO OVCTR, -N1 TO A
001505,000744: 5110 20102 INDEX TEM4
001506,000745: 5111 40000 MP 0 # -M0N1
001507,000746: 5112 30034 XCH OVCTR # -U(M0N1) TO OVCTR, -U(M1N1) TO A
001508,000747: 5113 60003 AD LP # MAYBE INCREMENT -U(M0N1) IN OVCTR
001509,000748: 5114 30077 XCH BUF +1 # -L(M0N1)-U(M1N1) TO BUF+1
001510,000749: 5115 20101 INDEX TEM2
001511,000750: 5116 40000 CS 0
001512,000751: 5117 50100 TS BUF +2 # -N0 TO BUF+2
001513,000752: 5120 20102 INDEX TEM4
001514,000753: 5121 40001 MP 1 # -M1N0
001515,000754: 5122 30034 XCH OVCTR # -U(M1N0) TO OVCTR, -U(M0N1) TO A
001516,000755: 5123 30077 XCH BUF +1 # -U(M0N1) TO BUF+1, -L(M0N1)-U(M1N1) TO A
001517,000756: 5124 60003 AD LP # MAYBE INCREMENT -U(M1N0) IN OVCTR
001518,000757: 5125 30100 XCH BUF +2 # -L(M1N0)-L(M0N1)-U(M1N1) TO BUF+2, -N0 T
001519,000758: 5126 20102 INDEX TEM4 # O A
001520,000759: 5127 40000 MP 0 # -M0N0
001521,000760: 5130 30034 XCH OVCTR # -U(M0N0) TO OVCTR, -U(M1N0) TO A
001522,000761: 5131 60003 AD LP
001523,000762: 5132 30077 XCH BUF +1
001524,000763: 5133 60077 AD BUF +1
001525,000764: 5134 30077 XCH BUF +1
001526,000765: 5135 30034 XCH OVCTR
001527,000766: 5136 50076 TS BUF
001528,000767: 5137 00001 TC Q
001529,000768:
001530,000769: # TIMING: 86 MC +-2 OR 1.032 MS +-0.024 30 WORDS
001531,000770:
001532,000771:
001533,000772: 5140 04746 BDDV TC DPSET # BACKWARDS DP DIVIDE
001534,000773: 5141 34516 CAF ONE # SET SWITCH
001535,000774: 5142 05144 TC +2 # AND GO ON AS USUAL
001536,000775:
001537,000776: 5143 04746 DDV TC DPSET # REGULAR DP DIVIDE
001538,000777: 5144 50107 TS DVSW # DPSET RETURNS WITH 0 IN A
001539,000778: 5145 35552 CAF LDANZIG # RETURN TO DANZIG
001540,000779: 5146 50075 TS TEMQ3
001541,000780: 5147 34730 CAF TCBUF
001542,000781: 5150 50101 TS TEM2
001543,000782: 5151 30061 XCH ADDRWD
001544,000783: 5152 05040 TC 8TO2 # X,X+1 INTO BUF, BUF+1
001545,000784:
001546,000785: 5153 35500 CAF ZERO
001547,000786: 5154 50015 TS BANKREG # CALL IN BANK 0
001548,000787: 5155 06760 TC DDV0 # TO BANK 0 PORTION
001549,000788:
001550,000789: 5156 30001 DMP XCH Q # DP MULTIPLY ROUTINE WHICH CAN BE CALLED
001551,000790: 5157 50103 TS TEM5 # BY TC DMP, FOLLOWED BY A WORD CONTAINING
001552,000791: 5160 20000 INDEX A # THE ADDRESS OF THE MULTIPLIER WITH
001553,000792: 5161 30000 CAF 0 # BITS IN THE ORDER CODE TO CALL IN MP
001554,000793: 5162 50102 TS TEM4 # IN THE EXTENDED CODE (UNKNOWN AS YET)
001555,000794: 5163 34771 CAF DAD2 +4
001556,000795: 5164 05101 TC DMP1
001557,000796: 5165 04523 TC TCS1
001558,000797: 5166 20103 INDEX TEM5 # TIME IS 120 MC+-2, OR ABOUT 1.44 MS
001559,000798: 5167 00001 TC 1 # RETURN TO INSTRUCTION AFTER ADDRESS WORD
001560,000799:
001561,000800: 5170 30001 DAD XCH Q # DP ADD ROUTINE WORKING JUST AS MP ABOVE
001562,000801: 5171 50103 TS TEM5 # HERE, HOWEVER, ONLY *ADRES X* IS NEEDED
001563,000802: 5172 20000 INDEX A # SINCE AD IS PART OF THE REGULAR CODE
001564,000803: 5173 30000 CAF 0
001565,000804: 5174 50061 TS ADDRWD
001566,000805: 5175 34771 CAF DAD2 +4
001567,000806: 5176 05017 TC DAD1
001568,000807: 5177 20103 INDEX TEM5
001569,000808: 5200 00001 TC 1 # TIME IS 48+-2 MC OR 576 MICRO-SEC.
001570,000809:
001571,000810:
001572,000811: 5201 30001 VACCOM XCH Q # COMPLEMENT THE APPROPRIATE VAC
001573,000812: 5202 50103 TS TEM5
001574,000813: 5203 40067 CS VACLOC
001575,000814: 5204 40000 COM
001576,000815: 5205 30061 XCH ADDRWD
001577,000816: 5206 50102 TS TEM4
001578,000817: 5207 04617 TC VCS1 +2
001579,000818:
001580,000819: 5210 04753 VSU1 TC VECSET # DP VECTOR SUBTRACT
001581,000820: 5211 05054 TC ADDTOSUB
001582,000821: 5212 05221 TC VAD1 +1 # USES VAD ROUTINE WITH SUBS
001583,000822:
001584,000823: 5213 04753 BVSU1 TC VECSET # DP VECTOR BACKWARDS SUBTRACT
001585,000824: 5214 05201 TC VACCOM # JUST COMPLEMENT VAC
001586,000825: 5215 30102 XCH TEM4
001587,000826: 5216 50061 TS ADDRWD
001588,000827: 5217 05221 TC VAD1 +1 # AND ADD
001589,000828:
001590,000829: 5220 04753 VAD1 TC VECSET
001591,000830: 5221 30067 XCH VACLOC # DP VECTOR ADD
001592,000831: 5222 50067 TS VACLOC
001593,000832: 5223 05017 TC DAD1
001594,000833: 5224 05241 TC AD2
001595,000834: 5225 05411 TC INCRT2
001596,000835: 5226 05017 TC DAD1
001597,000836: 5227 05241 TC AD2
001598,000837: 5230 05411 TC INCRT2
001599,000838: 5231 05017 TC DAD1
001600,000839: 5232 04024 TC INT1
001601,000840:
001602,000841:
001603,000842: 5233 04753 DOT1 TC VECSET # DP DOT PRODUCT ROUTINE
001604,000843: 5234 05245 TC DOT2
001605,000844: 5235 04737 TC MPACCOM
001606,000845: 5236 44516 DPEXIT CS ONE # CHANGE MODE TO DOUBLE-PRECISION
001607,000846: 5237 50064 TS MODE
001608,000847: 5240 04024 TC DANZIG
001609,000848:
001610,000849: 5241 30061 AD2 XCH ADDRWD
001611,000850: 5242 65502 AD TWO
001612,000851: 5243 50061 TS ADDRWD
001613,000852: 5244 00001 TC Q
001614,000853:
001615,000854: 5245 35502 DOT2 XCH TWO # SUBROUTINE DOT2 COMPUTES THE TRIPLE-
001616,000855: 5246 50063 TS TEM11
001617,000856: 5247 34730 XCH TCBUF # SIGN, IN MPAC TO MPAC+2.
001618,000857: 5250 30061 XCH ADDRWD
001619,000858: 5251 65777 AD BUGBITS
001620,000859: 5252 50102 TS TEM4
001621,000860: 5253 30001 XCH Q
001622,000861: 5254 50104 TS TEM8
001623,000862: 5255 30067 XCH VACLOC
001624,000863: 5256 50067 TS VACLOC
001625,000864: 5257 05101 TC DMP1
001626,000865: 5260 30076 XCH BUF
001627,000866: 5261 50114 TS MPAC
001628,000867: 5262 30077 XCH BUF +1
001629,000868: 5263 50115 TS MPAC +1
001630,000869: 5264 30100 XCH BUF +2
001631,000870: 5265 50116 TS MPAC +2
001632,000871: 5266 05301 TC INCRT4
001633,000872: 5267 05411 TC INCRT2
001634,000873: 5270 05101 TC DMP1
001635,000874: 5271 05000 TC TRAD +3
001636,000875: 5272 05301 TC INCRT4
001637,000876: 5273 30067 XCH VACLOC
001638,000877: 5274 50067 TS VACLOC
001639,000878: 5275 65501 AD FOUR
001640,000879: 5276 05101 TC DMP1
001641,000880: 5277 05000 TC TRAD +3
001642,000881: 5300 00104 TC TEM8
001643,000882:
001644,000883:
001645,000884: 5301 30102 INCRT4 XCH TEM4
001646,000885: 5302 60063 AD TEM11
001647,000886: 5303 50102 TS TEM4
001648,000887: 5304 00001 TC Q
001649,000888:
001650,000889: 5305 04753 VXM1 TC VECSET # DP VECTOR TIMES MATRIX
001651,000890: 5306 40061 CS ADDRWD
001652,000891: 5307 50106 TS TEM10
001653,000892: 5310 35502 XCH TWO
001654,000893: 5311 50105 TS TEM9
001655,000894: 5312 34475 XCH SIX
001656,000895: 5313 05246 TC DOT2 +1
001657,000896: 5314 05323 TC MXV2 # REST OF OPERATION USES MXV ROUTINE
001658,000897:
001659,000898: 5315 04753 MXV1 TC VECSET # MATRIX TIMES DP VECTOR
001660,000899: 5316 40061 CS ADDRWD
001661,000900: 5317 50106 TS TEM10
001662,000901: 5320 34475 XCH SIX # PROGRAM USES DOT PRODUCT ROUTINES TO
001663,000902: 5321 50105 TS TEM9
001664,000903: 5322 05245 TC DOT2
001665,000904:
001666,000905: 5323 35474 MXV2 CAF K2 # USES VBUF
001667,000906: 5324 05346 TC STORDAC
001668,000907: 5325 40106 CS TEM10
001669,000908: 5326 60105 AD TEM9
001670,000909: 5327 50106 TS TEM10
001671,000910: 5330 50061 TS ADDRWD
001672,000911: 5331 05247 TC DOT2 +2
001673,000912:
001674,000913: 5332 35475 CAF K2 +1
001675,000914: 5333 05346 TC STORDAC
001676,000915: 5334 30106 XCH TEM10
001677,000916: 5335 60105 AD TEM9
001678,000917: 5336 50061 TS ADDRWD
001679,000918: 5337 05247 TC DOT2 +2
001680,000919: 5340 35474 CAF K2
001681,000920: 5341 50061 TS ADDRWD
001682,000921: 5342 65501 AD FOUR
001683,000922: 5343 05346 TC STORDAC
001684,000923: 5344 04610 TC VCA1
001685,000924: 5345 04024 TC DANZIG
001686,000925:
001687,000926: 5346 50102 STORDAC TS TEM4 # SUBROUTINE TO STORE MPAC, MPAC+1 IN
001688,000927: 5347 40114 CS MPAC # ADDRESSES INDICATED BY C(A) AT ENTRY.
001689,000928: 5350 20102 INDEX TEM4
001690,000929: 5351 50000 TS 0
001691,000930: 5352 40115 CS MPAC +1
001692,000931: 5353 20102 INDEX TEM4
001693,000932: 5354 50001 TS 1
001694,000933: 5355 00001 TC Q
001695,000934:
001696,000935: 5356 10065 VXSC1 CCS NEWEQIND # DP VECTOR TIMES SCALAR
001697,000936: 5357 04753 TC VECSET # LOAD INSTRUCTION
001698,000937: 5360 10064 CCS MODE # IF NOT, WHICH MODE ARE WE IN
001699,000938: 5361 00007 SEVEN OCT 7
001700,000939: 5362 77762 MINUS13 DEC -13 B-14
001701,000940:
001702,000941: 5363 05367 TC VECCHECK
001703,000942:
001704,000943: 5364 30061 XCH ADDRWD
001705,000944: 5365 65777 AD BUGBITS # TO CALL IN MP
001706,000945: 5366 05371 TC VXSC2
001707,000946:
001708,000947: 5367 04610 VECCHECK TC VCA1 # USE ADDRWD TO LOAD VECTOR
001709,000948: 5370 34231 CAF BUGMPAC
001710,000949:
001711,000950:
001712,000951: 5371 50102 VXSC2 TS TEM4
001713,000952: 5372 40067 CS VACLOC
001714,000953: 5373 40000 COM
001715,000954: 5374 05101 TC DMP1
001716,000955: 5375 05441 TC PREROUND
001717,000956: 5376 05465 TC STB
001718,000957: 5377 05411 TC INCRT2
001719,000958: 5400 05101 TC DMP1
001720,000959: 5401 05443 TC ROUND
001721,000960: 5402 05465 TC STB
001722,000961: 5403 05411 TC INCRT2
001723,000962: 5404 05101 TC DMP1
001724,000963: 5405 05443 TC ROUND
001725,000964: 5406 05465 TC STB
001726,000965: 5407 45500 ZEROEXIT CS ZERO # CHANGE MODE TO VECTOR
001727,000966: 5410 05237 TC DPEXIT +1
001728,000967:
001729,000968: 5411 4024 INT1 EQUALS DANZIG
001730,000969:
001731,000970: 5411 30101 INCRT2 XCH TEM2
001732,000971: 5412 65502 AD TWO
001733,000972: 5413 50101 TS TEM2
001734,000973: 5414 00001 TC Q
001735,000974:
001736,000975:
001737,000976: 5415 30116 SHORTMP XCH MPAC +2 # MULTIPLY THE CONTENTS OF MPAC,MPAC+1,
001738,000977: 5416 25777 EXTEND # MPAC+2 BY THE SINGLE PRECISION NUMBER
001739,000978: 5417 40116 MP MPAC +2 # ARRIVING IN A.
001740,000979: 5420 30116 XCH MPAC +2
001741,000980:
001742,000981: 5421 30115 SHORTMP2 XCH MPAC +1 # FASTER BUT SLOPPIER VERSION FOR DP
001743,000982: 5422 25777 EXTEND
001744,000983: 5423 40115 MP MPAC +1
001745,000984: 5424 50034 TS OVCTR
001746,000985: 5425 30003 XCH LP
001747,000986: 5426 60116 AD MPAC +2 # THE SHORTMP2 RESULT WILL BE OFF IN THE
001748,000987: 5427 30116 XCH MPAC +2 # LAST BIT IF THIS AD OVERFLOWS.
001749,000988: 5430 30114 XCH MPAC
001750,000989: 5431 25777 EXTEND
001751,000990: 5432 40115 MP MPAC +1
001752,000991: 5433 30034 XCH OVCTR
001753,000992: 5434 60003 AD LP
001754,000993: 5435 30115 XCH MPAC +1
001755,000994: 5436 30034 XCH OVCTR # ARGUMENT IN OVCTR UPON EXIT
001756,000995: 5437 50114 TS MPAC
001757,000996: 5440 00001 TC Q
001758,000997:
001759,000998: 5441 34730 PREROUND CAF TCBUF
001760,000999: 5442 50104 TS TEM8
001761,001000:
001762,001001: 5443 35500 ROUND CAF ZERO # ROUND THE TRIPLE-PRECISION NUMBER WHOSE
001763,001002: 5444 20104 INDEX TEM8 # ADDRESS IS IN TEM8 TO DOUBLE-PRECISION,
001764,001003: 5445 30002 XCH 2 # SETING THE LOWEST ORDER OF THE THREE
001765,001004: 5446 60000 DOUBLE # WORDS TO ZERO IN THE PROCESS
001766,001005: 5447 50034 TS OVCTR
001767,001006: 5450 00001 TC Q # DONE IF DOESNT SKIP
001768,001007:
001769,001008: 5451 20104 INDEX TEM8
001770,001009: 5452 60001 AD 1
001771,001010: 5453 20104 INDEX TEM8
001772,001011: 5454 50001 TS 1
001773,001012: 5455 00001 TC Q
001774,001013:
001775,001014: 5456 20104 INDEX TEM8
001776,001015: 5457 60000 AD 0
001777,001016: 5460 20104 INDEX TEM8
001778,001017: 5461 50000 TS 0 # ANY CARRIES BEYOND THIS POINT ARE
001779,001018: 5462 00001 TC Q # OVERFLOW
001780,001019:
001781,001020: 5463 50121 TS OVFIND
001782,001021: 5464 00001 TC Q
001783,001022:
001784,001023:
001785,001024: 5465 40076 STB CS BUF
001786,001025: 5466 20101 INDEX TEM2
001787,001026: 5467 50000 TS 0
001788,001027: 5470 40077 CS BUF +1
001789,001028: 5471 20101 INDEX TEM2
001790,001029: 5472 50001 TS 1
001791,001030: 5473 00001 TC Q
001792,001031:
001793,001032: 5474 00070 K2 0 VBUF
001794,001033: 5475 00072 0 VBUF +2
001795,001034: 5476 00074 0 VBUF +4
001796,001035:
001797,001036: 5477 5472 STORTEST EQUALS K2 -2
001798,001037:
001799,001038: 5477 00002 SEQ OCT 2
001800,001039: 5500 00000 ZERO OCT 0
001801,001040: 5501 00004 FOUR OCT 4
001802,001041: 5502 00002 TWO OCT 2
001803,001042: 5503 77777 NEG0 OCT -0
001804,001043:
001805,001044: 5504 04753 VPROJ1 TC VECSET # VECTOR PROJECT
001806,001045: 5505 05245 TC DOT2 # LEAVES (VAC,X)VAC IN VAC
001807,001046: 5506 04741 TC DACCOM
001808,001047: 5507 05370 TC VXSC2 -1 # FINISH IN VXSC (USING MPAC)
001809,001048:
001810,001049: 5510 04753 CROSS1 TC VECSET # DP VECTOR CROSS PRODUCT (BOTH WAYS)
001811,001050: 5511 34730 XCH TCBUF
001812,001051: 5512 30061 XCH ADDRWD
001813,001052: 5513 65777 AD BUGBITS # AGAIN FOR MP
001814,001053: 5514 50103 TS BASE
001815,001054: 5515 65502 AD TWO # WHERE THE VECTOR X IS THAT ADDRESSED
001816,001055: 5516 50102 TS TEM4 # BY THE ORDER, AND V IS C(VAC).
001817,001056: 5517 35502 XCH TWO
001818,001057:
001819,001058:
001820,001059: 5520 50106 LUP TS IND
001821,001060: 5521 20106 INDEX IND
001822,001061: 5522 35477 XCH SEQ
001823,001062: 5523 60067 AD VACLOC
001824,001063: 5524 05101 TC DMP1
001825,001064: 5525 20106 INDEX IND
001826,001065: 5526 35501 XCH SEQ +2
001827,001066: 5527 65474 AD K2
001828,001067: 5530 50104 TS TEM6
001829,001068: 5531 50101 TS TEM2
001830,001069: 5532 05465 TC STB
001831,001070: 5533 20106 INDEX IND
001832,001071: 5534 35477 XCH SEQ
001833,001072: 5535 60103 AD BASE
001834,001073: 5536 50102 TS TEM4
001835,001074: 5537 20106 INDEX IND
001836,001075: 5540 35500 XCH SEQ +1
001837,001076: 5541 60067 AD VACLOC
001838,001077: 5542 05101 TC DMP1
001839,001078: 5543 30104 XCH TEM6
001840,001079: 5544 05017 TC DAD1
001841,001080: 5545 10106 CCS IND
001842,001081: 5546 05520 TC LUP
001843,001082:
001844,001083: 5547 35474 CREXIT XCH K2
001845,001084: 5550 50061 TS ADDRWD
001846,001085: 5551 04615 TC VCS1 # VXV
001847,001086: 5552 04024 LDANZIG TC DANZIG
001848,001087:
001849,001088:
001850,001089: # DOUBLE-PRECISION POLYNOMIAL EVALUATION ROUTINE.
001851,001090:
001852,001091: # PROGRAM ENTRY
001853,001092: #
001854,001093: # L TC POLY
001855,001094: # N
001856,001095: # L+1 OCT -2N COMPUTES A +A X + ... + A X , WHERE
001857,001096: # 0 1 N
001858,001097: # L+2 D.P. - A X = C(MPAC).
001859,001098: # 0
001860,001099:
001861,001100: # - - - - - - - -
001862,001101:
001863,001102: # L+2+2N D.P. - A
001864,001103: # N
001865,001104:
001866,001105: # L+4+2N NEXT OPERATION
001867,001106:
001868,001107: 5553 35607 POLY CAF BUGBITS2 # CONTAINS XCADR VBUF
001869,001108: 5554 50102 TS TEM4
001870,001109: 5555 35500 CAF ZERO # ZERO INTO BUF, BUF+1 TO START POLYLUP
001871,001110: 5556 50076 TS BUF
001872,001111: 5557 50077 TS BUF +1
001873,001112:
001874,001113: 5560 30114 XCH MPAC # ARGUMENT X INTO 6T, 7T
001875,001114: 5561 50070 TS VBUF # TEMPORARY STORAGE
001876,001115: 5562 30115 XCH MPAC +1
001877,001116: 5563 50071 TS VBUF +1
001878,001117:
001879,001118: 5564 34771 CAF DAD2 +4 # ADDRESS OF MPAC
001880,001119: 5565 50101 TS TEM2
001881,001120:
001882,001121: 5566 20001 INDEX Q # 2N INTO 10T
001883,001122: 5567 30000 CAF 0
001884,001123: 5570 50106 TS TEM10
001885,001124: 5571 60001 AD Q # EXIT ADDRESS INTO 11T
001886,001125: 5572 64473 AD THREE
001887,001126: 5573 50105 TS TEM9
001888,001127: 5574 05600 TC POLYLUP +3
001889,001128:
001890,001129:
001891,001130: 5575 50106 POLYLUP TS TEM10
001892,001131: 5576 05102 TC DMP1 +1
001893,001132:
001894,001133: 5577 30061 XCH ADDRWD
001895,001134: 5600 64340 +3 AD NEG2 # REDUCE COEFFICIENT INDEX BY 1
001896,001135: 5601 50061 TS ADDRWD # COEFFICIENT LOC IN ADDRWD FOR USE BY
001897,001136: 5602 04525 TC TCS1 +2 # -BUF,BUF+1 INTO MPAC,MPAC+1
001898,001137: 5603 05020 TC DAD1 +1 # - COEFF + (BUF) INTO BUF
001899,001138:
001900,001139: 5604 10106 CCS TEM10
001901,001140: 5605 64335 AD NEG1 # THE AD NEG1 ORDER, -0 WILL BE THE END
001902,001141: 5606 05575 TC POLYLUP
001903,001142:
001904,001143: 5607 50067 BUGBITS2 XCADR VBUF # USED BY POLY
001905,001144:
001906,001145: 5610 00105 TC TEM9 # RETURN
001907,001146:
001908,001147:
001909,001148: 5611 40060 ITCF CS BANKSET # ITC - UNCONDITIONAL TRANSFER
001910,001149: 5612 30120 XCH ADRLOC # PLACE IN QPRET THE POLISH ADDRESS OF
001911,001150: 5613 74605 MASK LOW10 # THE NEXT EQUATION. ITC MUST BE THE LAST
001912,001151: 5614 60120 AD ADRLOC # NON-BLANK OPERATOR IN AN EQUATION
001913,001152: 5615 64516 AD ONE
001914,001153: 5616 20066 INDEX FIXLOC
001915,001154: 5617 50052 TS QPRET
001916,001155: 5620 10061 CCS ADDRWD
001917,001156: 5621 04001 TC INTPRET +1 # BANKREG IS ALREADY SET
001918,001157:
001919,001158: 5622 10121 BOVF CCS OVFIND # BRANCH IF OVERFLOW INDICATOR IS ON
001920,001159: 5623 05625 TC +2 # OVFIND CAN BE EITHER -1, 0, OR +1
001921,001160: 5624 04024 TC DANZIG # IT WAS OFF - DISPATCH NEXT OPERATOR.
001922,001161: 5625 50121 TS OVFIND # IT WAS ON - SET TO 0 (OFF)
001923,001162: 5626 04566 TC DOBR # AND DO THE BRANCH
001924,001163:
001925,001164: 5627 04753 VSLT1 TC VECSET # DP VECTOR SHIFT LEFT
001926,001165: 5630 50015 TS BANKREG
001927,001166: 5631 06462 TC VSLT2
001928,001167:
001929,001168: 5632 04753 VSRT1 TC VECSET # DP VECTOR SHIFT RIGHT
001930,001169: 5633 50115 TS MPAC +1 # SET SHIFTING BIT IN MPAC,MPAC+1
001931,001170: 5634 50015 TS BANKREG # CALL IN BANK ZERO.
001932,001171: 5635 06042 TC TRUE2 # GET INTEGER ADDRESS
001933,001172: 5636 62130 AD NEG13
001934,001173: 5637 10000 CCS A
001935,001174: 5640 05647 TC VSRT3
001936,001175: 5641 77761 NEG14 DEC -14 B-14
001937,001176: 5642 05643 TC +1
001938,001177: 5643 20061 INDEX ADDRWD
001939,001178: 5644 34500 CAF BIT15
001940,001179: 5645 50114 TS MPAC
001941,001180: 5646 05370 TC VECCHECK +1 # FINISH IN VXSC ROUTINE.
001942,001181:
001943,001182: 5647 20000 VSRT3 INDEX A
001944,001183: 5650 34501 CAF BIT14
001945,001184: 5651 30115 XCH MPAC +1 # WHICH PREVIOUSLY CONTAINED A ZERO
001946,001185: 5652 05645 TC VSRT3 -2
001947,001186:
001948,001187: 5777 SETLOC 5777 # STANDARD LOCATION FOR EXTENDING BITS
001949,001188:
001950,001189: 5777 47777 OPOVF XCADR 0
End of include-file FIXED-FIXED_INTERPRETER_SECTION.agc. Parent file is MAIN.agc