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