Source Code
![]() |
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
003382,000002: ## Copyright: Public domain.
003383,000003: ## Filename: PHASE_TABLE_MAINTENANCE.agc
003384,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst).
003385,000005: ## It is part of the source code for the Lunar Module's (LM)
003386,000006: ## Apollo Guidance Computer (AGC) for Apollo 5.
003387,000007: ## Assembler: yaYUL
003388,000008: ## Contact: Ron Burkey <info@sandroid.org>.
003389,000009: ## Website: www.ibiblio.org/apollo/index.html
003390,000010: ## Mod history: 2016-09-30 RSB Created draft version.
003391,000011: ## 2016-10-04 RSB Corrected against the Sunburst page scans.
003392,000012: ## 2016-10-30 MAS Corrected PHASJUMP->PHASCHNG.
003393,000013: ## 2016-11-01 RSB Typos.
003394,000014: ## 2016-11-03 RSB Added some SBANK= workarounds.
003395,000015: ## 2016-12-03 RSB Used octopus/ProoferComments to proof the comments.
003396,000016: ## Made 62 corrections (11 pages total).
003397,000017: ## 2016-12-04 RSB Another typo identified with ProoferComments.py.
003398,000018: ## 2016-12-05 RSB Comment-proofing with octopus/ProoferComments completed.
003399,000019: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
003400,000020:
![]() |
Page 77 |
003402,000022: # SUBROUTINE TO UPDATE THE PROGRAM NUMBER DISPLAY ON THE DSKY.
003403,000023:
003404,000024: 4117 BLOCK 02
003405,000025: 4117 50002 NEWMODEX INDEX Q # UPDATE MODREG. ENTRY FOR MODE IN FIXED.
003406,000026: 4120 30000 CAF 0
003407,000027: 4121 24002 INCR Q
003408,000028:
003409,000029: 4122 56302 NEWMODEA XCH MODREG # ENTRY FOR MODE IN A
003410,000030: 4123 40000 COM # IF NO CHANGE IN MODE, RETURN IMMEDIATELY
003411,000031: 4124 60302 AD MODREG
003412,000032: 4125 00006 EXTEND
003413,000033: 4126 17020 BZF TCQ
003414,000034:
003415,000035: 4127 34132 CAF +3 # CALL PINBALL SUBROUTINE
003416,000036: 4130 22006 PREBJUMP LXCH BBANK # PUTS BBANK IN L
003417,000037: 4131 15230 TCF BANKJUMP # PUTS Q INTO A
003418,000038: 4132 72000 CADR SETUPDSP
003419,000039:
003420,000040: # RETURN TO CALLER +3 IF MODE = THAT AT CALLER +1. OTHERWISE RETURN TO CALLER +2.
003421,000041:
003422,000042: 4133 50002 CHECKMM INDEX Q
003423,000043: 4134 40000 CS 0
003424,000044: 4135 60302 AD MODREG
003425,000045: 4136 00006 EXTEND
003426,000046: 4137 17017 BZF Q+2
003427,000047: 4140 17015 TCF Q+1 # NO MATCH
003428,000048:
003429,000049: 4141 7020 TCQ = Q+2 +1
003430,000050:
003431,000051: 35,2000 BANK 35
003432,000052:
003433,000053: 35,2000 00004 SETUPDSP INHINT
003434,000054: 35,2001 52071 DXCH RUPTREG1 # SAVE CALLER-S RETURN 2CADR
003435,000055: 35,2002 35210 CAF PRIO30 # EITHER A TASK OR JOB CAN COME TO
003436,000056: 35,2003 05505 TC NOVAC # NEWMODEX
003437,000057: 35,2004 0302 EBANK= MODREG
003438,000058: 35,2004 02011 72060 2CADR DSPMMJOB
003439,000059:
003440,000060: 35,2006 52071 DXCH RUPTREG1
003441,000061: 35,2007 00003 RELINT
003442,000062: 35,2010 52006 DXCH Z # RETURN
003443,000063:
003444,000064: 35,2011 05206 DSPMMJOB TC BANKCALL
003445,000065: 35,2012 13403 CADR DSPMM1
003446,000066: 35,2013 15567 TCF ENDOFJOB
003447,000067:
003448,000068: 4141 BLOCK 02
![]() |
Page 78 |
003450,000070:
003451,000071: # PHASCHNG IS THE MAIN WAY OF MAKING PHASE CHANGES FOR RESTARTS. THERE ARE THREE FORMS OF PHASCHNG, KNOWN AS TYPE
003452,000072: # A, TYPE B, AND TYPE C. THEY ARE ALL CALLED AS FOLLOWS, WHERE OCT XXXXX CONTAINS THE PHASE INFORMATION,
003453,000073:
003454,000074: # TC PHASCHNG
003455,000075: # OCT XXXXX
003456,000076:
003457,000077: # TYPE A IS CONCERNED WITH FIXED PHASE CHANGES, THAT IS, PHASE INFORMATION THAT IS STORED PERMANENTLY. THESE
003458,000078: # OPTIONS ARE, WHERE G STANDS FOR A GROUP AND .X FOR THE PHASE.
003459,000079:
003460,000080: # G.0 INACTIVE, WILLNOT PERMIT A GROUP G RESTART
003461,000081: # G.1 WILL CAUSE THE LAST DISPLAY TO BE REACTIVATED, USED MAINLY IN MANNED FLIGHTS
003462,000082: # G.EVEN A DOUBLE TABLE RESTART, CAN CAUSE ANY COMBINATION OF TWO JOBS, TASKS, AND/OR
003463,000083: # LONGCALL TO BE RESTARTED.
003464,000084: # G.ODD NOT .1 A SINGLE TABLE RESTART, CAN CAUSE EITHER A JOB, TASK, OR LONGCALL RESTART
003465,000085:
003466,000086: # THIS INFORMATION IS PUT INTO THE OCTAL WORD AFTER TC PHASCHNG AS FOLLOWS
003467,000087:
003468,000088: # TL0 00P PPP PPP GGG ,
003469,000089:
003470,000090: # WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G:S STAND FOR THE GROUP, OCTAL 1-7, THE P;S FOR THE PHASE,
003471,000091: # OCTAL 0 - 127. 0;S MUST BE 0. IF ONE WISHES TO HAVE THE TBASE OF GROUP G TO BE SET AT THIS TIME,
003472,000092: # T IS SET TO 1, OTHERWISE IT IS SET TO 0. SIMIARLY IF ONE WISHES TO SET LONGBASE, THEN L IS SET TO 1, OTHERWISE
003473,000093: # IT IS SET TO 0. SOME EXAMPLES,
003474,000094:
003475,000095: # TC PHASCHNG THIS WILL CAUSE GROUP 3 TO BE SET TO 0,
003476,000096: # OCT 00003 MAKING GROUP 3 INACTIVE
003477,000097:
003478,000098: # TC PHASCHNG IF A RESTART OCCURS THIS WOULD CAUSE
003479,000099: # OCT 00012 GROUP 2 TO RESTART THE LAST DISPLAY
003480,000100:
003481,000101: # TC PHASCHNG THIS SETS THE TBASE OF GROUP 4 AND IN
003482,000102: # OCT 40064 CASE OF A RESTART WOULD START UP THE TWO
003483,000103: # THINGS LOCATED IN THE DOUBLE 4.6 RESTART
003484,000104: # LOCATION
003485,000105:
003486,000106: # TC PHASCHNG THIS SETS LONGBASE AND UPON A RESTART
003487,000107: # OCT 20135 CAUSES 5.13 TO BE RESTARTED (SINCE
003488,000108: # LONGBASE WAS SET THIS SINGLE ENTRY
003489,000109: # SHOULD BE A LONGCALL)
003490,000110:
003491,000111: # TC PHASCHNG SINCE BOTH TBASE4 AND LONGBASE ARE SET,
003492,000112: # OCT 60124 4.12 SHOULD CONTAIN BOTH A TASK AND A
003493,000113: # LONGCALL TO BE RESTARTED
003494,000114:
003495,000115: # TYPE C PHASCHNG CONTAINS THE VARIABLE TYPE OF PHASCHNG INFORMATION. INSTEAD OF THE INFORMATION BEING IN A
003496,000116: # PERMANENT FORM, ONE STORES THE DESIRED RESTART INFORMATION IN A VARIABKE LOCATION. THE BITS ARE AS FOLLOWS,
003497,000117:
003498,000118: # TL0 1AD XXX CJW GGG
003499,000119:
003500,000120: # WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G;S STAND FOR THE GROUP, OCTAL 1 - 7. IF THE RESTART IS TO
003501,000121: # BE BY WAITLIST, W IS SET TO 1, IF IT IS A JOB, J IS SET TO 1, IF IT IS A LONGCALL, C IS SET TO 1. ONLY ONE OF
003502,000122: # THESE THREE BITS MAY BE SET. X;S ARE IGNORED 1 MUST BE 1, AND 0 MUST BE 0. AGAIN T STANDS FOR THE TBASE,
![]() |
Page 79 |
003504,000124: # AND L FOR LONGBASE. THE BITS A AND D ARE CONCERNED WITH THE VARIABLE INFORMATION. IF D IS SET TO 1, A PRIORITY
003505,000125: # OR DELTA TIME WILL BE READ FROM THE NEXT LOCATION AFTER THE OCTAL INFORMATION, IF THIS IS TO BE INDIRECT, THAT
003506,000126: # IS, THE NAME OF A LOCATION CONTAINING THE INFORMATION (DELTA TIME ONLY), THEN THIS IS GIVEN AS THE -GENADR OF
003507,000127: # THAT LOCATION WHICH CONTAINS THE DELTA TIME. IF THE OLD PRIORITY OR DELTA TIME IS TO BE USED, THAT WHICH IS
003508,000128: # ALREADY IN THE VARIABLE STORAGE, THEN D IS SET TO 0. NEXT THE A BIT IS USED. IF IT IS SET TO 0, THE ADDRESS
003509,000129: # THAT WOULD BE RESTARTED DURING A RESTART IS THE NEXT LOCATION AFTER THE PHASE INFORMATION, THAT IS, EITHER
003510,000130: # (TC PHASCHNG) +2 OR +3, DEPENDING ON WHETHER D HAD BEEN SET OR NOT. IF A IS SET TO 1, THEN THE ADDRESS THAT
003511,000131: # WOULD BE RESTARTED IS THE 2CADR THAT IS READ FROM THE NEXT TWO LOCATIONS. EXAMPLES,
003512,000132:
003513,000133: # AD TC PHASCHNG THIS WOULD CAUSE LOCATION AD +3 TO BE
003514,000134: # AD+1 OCT 05023 RESTARTED BY GROUP THREE WITH A PRIORITY
003515,000135: # AD+2 OCT 23000 OF 23. NOTE UPON RETURNING IT WOULD
003516,000136: # AD+3 ALSO GO TO AD+3
003517,000137:
003518,000138: # AD TC PHASCHNG GROUP 1 WOULD CAUSE CAUSE CALLCALL TO
003519,000139: # AD+1 OCT 27441 BE STARTED AS A LONGCALL FROM THE TIME
003520,000140: # AD+2 -GENADR DELTIME STORED IN LONGBASE (LONGBASE WAS SET) BY
003521,000141: # AD+3 2CADR CALLCALL A DELTA TIME STORED IN DELTIME. THE
003522,000142: # AD+4 BBCON OF THE 2CADR SHOULD CONTAIN THE E
003523,000143: # AD+5 BANK OF DELTIME. PHASCHNG RETURNS TO
003524,000144: # LOCATION AD+5
003525,000145:
003526,000146: # TYPE B PHASCHNG IS A COMBINATION OF VARIABLE AND FIXED PHASE CHANGES. IT WILL START UP A JOB AS INDICATED
003527,000147: # BELOW AND ALSO START UP ONE FIXED RESTART, THAT IS EITHER AN G.1 OR A G.ODD OR THE FIRST ENTRY OF G.EVEN
003528,000148: # DOUBLE ENTRY. THE BIT INFORMATION IS AS FOLLOWS,
003529,000149:
003530,000150: # TL1 DAP PPP PPP GGG
003531,000151:
003532,000152: # WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G;S STAND FOR THE GROUP, OCTAL 1 - 7, THE P;S FOR THE FIXED
003533,000153: # PHASE INFORMATION, OCTAL 0 - 127. 1 MUST BE 1. AND AGAIN T STANDS FOR THE TBASE AND L FOR LONGBASE. D THIS
003534,000154: # TIME STANDS ONLY FOR PRIORITY SINCE THIS WILL BE CONSIDERED A JOB, AND IT MUST BE GIVEN DIRECTLY IF GIVEN.
003535,000155: # AGAIN A STANDS FOR THE ADDRESS OF THE LOCATION TO BE RESTARTED, 1 IF THE 2CADR IS GIVEN, OR 0 IF IT IS TO BE
003536,000156: # THE NEXT LOCATION. (THE RETURN LOCATION OF PHASCHNG) EXAMPLES,
003537,000157:
003538,000158: # AD TC PHASCHNG TBASE IS SET AND A RESTART CAUSE GROUP 3
003539,000159: # AD+1 OCT 56043 TO START THE JOB AJOBAJOB WITH PRIORITY
003540,000160: # AD+2 OCT 31000 31 AND THE FIRST ENTRY OF 3.4SPOT (WE CAN
003541,000161: # AD+3 2CADR AJOBAJOB ASSUME IT IS A TASK SINCE WE SET TBASE3)
003542,000162: # AD+4 UPON RETURN FROM PHASCHNG CONTROL WOULD
003543,000163: # AD+5 GO TO AD+5
003544,000164:
003545,000165: # AD TC PHASCHNG UPON A RESTART THE LAST DISPLAY WOULD BE
003546,000166: # AD+1 OCT 10015 RESTARTED AND A JOB WITH THE PREVIOUSLY
003547,000167: # AD+2 STORED PRIORITY WOULD BE BEGUN AT AD+2
003548,000168: # BY MEANS OF GROUP 5
003549,000169:
003550,000170: # SUMMARY OF BITS
003551,000171: # TYPE A TL0 00P PPP PPP GGG
![]() |
Page 80 |
003553,000173: # TYPE B TL1 DAP PPP PPP GGG
003554,000174:
003555,000175: # TYPE C TL0 1AD XXX CJW GGG
003556,000176:
![]() |
Page 81 |
003558,000178: # 2PHSCHNG IS USED WHEN ONE WISHES TO START UP A GROUP OR CHANGE A GROUP WHILE UNDER THE CONTROL OF A DIFFERENT
003559,000179: # GROUP. FOR EXAMPLE, CHANGE THE PHASE OF GROUP 3 WHILE THE PORTION OF THE PROGRAM IS UNDER GROUP 5. ALL 2PHSCHNG
003560,000180: # CALLS ARE MADE IN THE FOLLOWING MANNER,
003561,000181:
003562,000182: # TC 2PHSCHNG
003563,000183: # OCT XXXXX
003564,000184: # OCT YYYYY
003565,000185:
003566,000186: # WHERE OCT XXXXX MUST BE OF TYPE A AND OCT YYYYY MAY BE OF EITHER TYPE A OR TYPE B OR TYPE C. THERE IS ONE
003567,000187: # DIFFERENCE --- NOTE- IF LONGBASE IS TO BE SET THIS INFORMATION IS GIVEN IN THE OCT YYYYY INFORMATION, IT WILL
003568,000188: # BE DISREGARDED IF GIVEN WITH THE OCT XXXXX INFORMATION. A COUPLE OF EXAMPLES MAY HELP,
003569,000189:
003570,000190: # AD TC 2PHSCHNG SET TBASE3 AND IF A RESTART OCCURS START
003571,000191: # AD+1 OCT 40083 THE TWO ENTRIES IN 3.8 TABLE LOCATION
003572,000192: # AD+2 OCT 05025 THIS IS OF TYPE C, SET THE JOB TO BE
003573,000193: # AD+3 OCT 18000 TO BE LOCATION AD+4, WITH A PRIORITY 18,
003574,000194: # AD+4 FOR GROUP 5 PHASE INFORMATION
003575,000195:
003576,000196: 4141 00004 2PHSCHNG INHINT # THE ENTRY FOR A DOUBLE PHASE CHANGE
003577,000197: 4142 50002 NDX Q
003578,000198: 4143 30000 CA 0
003579,000199: 4144 24002 INCR Q
003580,000200: 4145 54072 TS TEMPP2
003581,000201:
003582,000202: 4146 77765 MASK OCT7
003583,000203: 4147 60000 DOUBLE
003584,000204: 4150 54071 TS TEMPG2
003585,000205:
003586,000206: 4151 30072 CA TEMPP2
003587,000207: 4152 74241 MASK OCT17770 # NEED ONLY 1770, BUT WHY GET A NEW CONST.
003588,000208: 4153 00006 EXTEND
003589,000209: 4154 77750 MP BIT12
003590,000210: 4155 56072 XCH TEMPP2
003591,000211:
003592,000212: 4156 77745 MASK BIT15
003593,000213: 4157 54066 TS TEMPSW2 # INDICATES WHETHER TO SET TBASE OR NOT
003594,000214:
003595,000215: 4160 14164 TCF PHASCHNG +3
003596,000216:
003597,000217:
003598,000218: 4161 00004 PHASCHNG INHINT
003599,000219: 4162 37763 CA ONE # INDICATESWE CAME FROM A PHASCHNG ENTRY
003600,000220: 4163 54066 TS TEMPSW2
003601,000221:
003602,000222: 4164 50002 NDX Q
003603,000223: 4165 30000 CA 0
003604,000224: 4166 24002 INCR Q
003605,000225: 4167 54065 TS TEMPSW
003606,000226:
003607,000227: 4170 00006 EXTEND
![]() |
Page 82 |
003609,000229: 4171 34174 DCA ADRPCHN2 # OFF TO SWITCHED BANK
003610,000230: 4172 52006 DTCB
003611,000231:
![]() |
The following line was not present in the original code. |
003613,000233: 4173 30,2000 SBANK= LOWSUPER
003614,000234: 4173 E3,1400 EBANK= LST1
003615,000235: 4173 02634 14063 ADRPCHN2 2CADR PHSCHNG2
003616,000236:
003617,000237: 4175 22073 ONEORTWO LXCH TEMPBBCN
003618,000238: 4176 22006 LXCH BBANK
003619,000239: 4177 22073 LXCH TEMPBBCN
003620,000240:
003621,000241: 4200 75640 MASK OCT14000 # SEE WHAT KIND OF PHASE CHANGE IT IS
003622,000242: 4201 10000 CCS A
003623,000243: 4202 14242 TCF CHECKB # IT IS OF TYPE ;B;
003624,000244:
003625,000245: 4203 30062 CA TEMPP
003626,000246: 4204 77755 MASK BIT7
003627,000247: 4205 10000 CCS A # SHALL WE USE THE OLD PRIORITY
003628,000248: 4206 14226 TCF GETPRIO # NO GET A NEW PRIORITY (OR DELTA T)
003629,000249:
003630,000250: 4207 50061 OLDPRIO NDX TEMPG # USE THE OLD PRIORITY (OR DELTA T)
003631,000251: 4210 31112 CA PHSPRDT1 -2
003632,000252: 4211 54070 TS TEMPPR
003633,000253:
003634,000254: 4212 30062 CON1 CA TEMPP # SEE IF A 2CADR IS GIVEN
003635,000255: 4213 77754 MASK BIT8
003636,000256: 4214 10000 CCS A
003637,000257: 4215 14232 TCF GETNEWNM
003638,000258:
003639,000259: 4216 30002 CA Q
003640,000260: 4217 54063 TS TEMPNM
003641,000261: 4220 30006 CA BB
003642,000262: 4221 54064 TS TEMPBB
003643,000263:
003644,000264: 4222 34225 TOCON2 CA CON2ADR # BACK TO SWITCHED BANK
003645,000265: 4223 22073 LXCH TEMPBBCN
003646,000266: 4224 52006 DTCB
003647,000267:
003648,000268: 4225 02722 CON2ADR GENADR CON2
003649,000269:
003650,000270: 4226 50002 GETPRIO NDX Q # DON:T CARE IF DIRECT OR INDIRECT
003651,000271: 4227 30000 CA 0 # LEAVE THAT DECISION TO RESTARTS
003652,000272: 4230 24002 INCR Q # OBTAIN RETURN ADDRESS
003653,000273: 4231 14211 TCF CON1 -1
003654,000274:
003655,000275: 4232 00006 GETNEWNM EXTEND
003656,000276: 4233 50002 INDEX Q
003657,000277: 4234 30001 DCA 0
003658,000278: 4235 52064 DXCH TEMPNM
003659,000279: 4236 37762 CA TWO
![]() |
Page 83 |
003661,000281: 4237 26002 ADS Q # OBTAIN RETURN ADDRESS
003662,000282:
003663,000283: 4240 14222 TCF TOCON2
003664,000284:
003665,000285: 4241 17770 OCT17770 OCT 17770
003666,000286: 4242 5640 OCT14000 EQUALS PRIO14
003667,000287: 4242 7765 OCT7 EQUALS SEVEN
003668,000288: 4242 0061 TEMPG EQUALS ITEMP1
003669,000289: 4242 0062 TEMPP EQUALS ITEMP2
003670,000290: 4242 0063 TEMPNM EQUALS ITEMP3
003671,000291: 4242 0064 TEMPBB EQUALS ITEMP4
003672,000292: 4242 0065 TEMPSW EQUALS ITEMP5
003673,000293: 4242 0066 TEMPSW2 EQUALS ITEMP6
003674,000294: 4242 0070 TEMPPR EQUALS RUPTREG1
003675,000295: 4242 0071 TEMPG2 EQUALS RUPTREG2
003676,000296: 4242 0072 TEMPP2 EQUALS RUPTREG3
003677,000297:
003678,000298: 4242 0073 TEMPBBCN EQUALS RUPTREG4
003679,000299: 4242 0000006 BB EQUALS BBANK
003680,000300:
003681,000301:
003682,000302: 06,2634 BANK 06
003683,000303:
003684,000304: 06,2634 E3,1516 EBANK= PHSNAME1
003685,000305: 06,2634 22073 PHSCHNG2 LXCH TEMPBBCN
003686,000306: 06,2635 30065 CA TEMPSW
003687,000307: 06,2636 77765 MASK OCT7
003688,000308: 06,2637 60000 DOUBLE
003689,000309: 06,2640 54061 TS TEMPG
003690,000310:
003691,000311: 06,2641 30065 CA TEMPSW
003692,000312: 06,2642 74241 MASK OCT17770
003693,000313: 06,2643 00006 EXTEND
003694,000314: 06,2644 77750 MP BIT12
003695,000315: 06,2645 54062 TS TEMPP
003696,000316:
003697,000317: 06,2646 30065 CA TEMPSW
003698,000318: 06,2647 72705 MASK OCT60000
003699,000319: 06,2650 56065 XCH TEMPSW
003700,000320: 06,2651 75640 MASK OCT14000
003701,000321: 06,2652 10000 CCS A
003702,000322:
003703,000323: 06,2653 14175 TCF ONEORTWO
003704,000324:
003705,000325: 06,2654 30062 CA TEMPP # START STORING THE PHASE INFORMATION
003706,000326: 06,2655 50061 NDX TEMPG
003707,000327: 06,2656 55076 TS PHASE1 -2
003708,000328:
003709,000329: 06,2657 10066 BELOW1 CCS TEMPSW2 # IS IT A PHASCHNG OR A 2PHSCHNG
![]() |
Page 84 |
003711,000331: 06,2660 12674 TCF BELOW2 # IT;S A PHASCHNG
003712,000332:
003713,000333: 06,2661 12662 TCF +1 # IT;S A 2PHSCHNG
003714,000334: 06,2662 40072 CS TEMPP2
003715,000335: 06,2663 22072 LXCH TEMPP2
003716,000336: 06,2664 50071 NDX TEMPG2
003717,000337: 06,2665 53076 DXCH -PHASE1 -2
003718,000338:
003719,000339: 06,2666 10066 CCS TEMPSW2
003720,000340: 06,2667 12670 NOOP # CAN;T GET HERE
003721,000341: 06,2670 12674 TCF BELOW2
003722,000342:
003723,000343: 06,2671 40025 CS TIME1
003724,000344: 06,2672 50071 NDX TEMPG2
003725,000345: 06,2673 55111 TS TBASE1 -2
003726,000346:
003727,000347: 06,2674 10065 BELOW2 CCS TEMPSW # SEE IF WE SHOULD SET TBASE OR LONGBASE
003728,000348: 06,2675 12710 TCF BELOW3 # SET LONGBASE ONLY
003729,000349: 06,2676 12713 TCF BELOW4 # SET NEITHER
003730,000350:
003731,000351: 06,2677 40025 CS TIME1 # SET TBASE TO BEGIN WITH
003732,000352: 06,2700 50061 NDX TEMPG
003733,000353: 06,2701 55111 TS TBASE1 -2
003734,000354:
003735,000355: 06,2702 30065 CA TEMPSW # SHALL WE NOW SET LONGBASE
003736,000356: 06,2703 62706 AD BIT14COM
003737,000357: 06,2704 10000 CCS A
003738,000358: 06,2705 60000 OCT60000 OCT 60000 # ***** CANT GET HERE *****
003739,000359: 06,2706 17777 BIT14COM OCT 17777 # ***** CANT GET HERE *****
003740,000360: 06,2707 12713 TCF BELOW4 # NO WE NEED ONLY SET TBASE
003741,000361:
003742,000362: 06,2710 00006 BELOW3 EXTEND # SET LONGBASE
003743,000363: 06,2711 30025 DCA TIME2
003744,000364: 06,2712 53433 DXCH LONGBASE
003745,000365:
003746,000366: 06,2713 40062 BELOW4 CS TEMPP # AND STORE THE FINAL PART OF THE PHASE
003747,000367: 06,2714 50061 NDX TEMPG
003748,000368: 06,2715 55075 TS -PHASE1 -2
003749,000369:
003750,000370: 06,2716 30002 CA Q
003751,000371: 06,2717 22073 LXCH TEMPBBCN
003752,000372: 06,2720 00003 RELINT
003753,000373: 06,2721 52006 DTCB
003754,000374: 06,2722 22073 CON2 LXCH TEMPBBCN
003755,000375:
003756,000376: 06,2723 30062 CA TEMPP
003757,000377: 06,2724 50061 NDX TEMPG
003758,000378: 06,2725 55076 TS PHASE1 -2
003759,000379:
003760,000380: 06,2726 30070 CA TEMPPR
![]() |
Page 85 |
003762,000382: 06,2727 50061 NDX TEMPG
003763,000383: 06,2730 55112 TS PHSPRDT1 -2
003764,000384:
003765,000385: 06,2731 00006 EXTEND
003766,000386: 06,2732 30064 DCA TEMPNM
003767,000387: 06,2733 50061 NDX TEMPG
003768,000388: 06,2734 53515 DXCH PHSNAME1 -2
003769,000389:
003770,000390: 06,2735 12657 TCF BELOW1
003771,000391:
003772,000392: 4242 BLOCK 02
003773,000393: 4242 77750 CHECKB MASK BIT12 # SINCE THIS IS OF TYPE B, THIS BIT SHOULD
003774,000394: 4243 10000 CCS A # BE HERE IF WE ARE TO GET A NEW PRIORITY
003775,000395: 4244 14226 TCF GETPRIO # IT IS, SO GET NEW PRIORITY
003776,000396:
003777,000397: 4245 14207 TCF OLDPRIO # IT ISN;T, USE THE OLD PRIORITY
003778,000398:
![]() |
Page 86 |
003780,000400: # PROGRAM DESCRIPTION: NEWPHASE DATE: 11 NOV 1966
003781,000401: # MOD: 1 ASSEMBLY: SUNBURST REV
003782,000402: # MOD BY: COPPS LOG SECTION: PHASE TABLE MAINTENANCE
003783,000403: # FUNCTIONAL DESCRIPTION:
003784,000404: # NEWPHASE IS THE QUICK WAY TO MAKE A NON VARIABLE PHASE CHANGE. IT INCLUDES THE OPTION OF SETTING
003785,000405: # TBASE OF THE GROUP. IF TBASE IS TO BE SET, -C(TIME1) IS STORED IN THE TBASE TABLE AS FOLLOWS:
003786,000406:
003787,000407: # (L-1) TBASE0
003788,000408: # (L) TBASE1 (IF GROUP=1)
003789,000409: # (L+1)
003790,000410: # (L+2) TBASE2 (IF GROUP=2)
003791,000411: # -----
003792,000412: # (L+6) TBASE4 (IF GROUP=4)
003793,000413: # (L+7)
003794,000414: # (L+8) TBASE5 (IF GROUP=5)
003795,000415:
003796,000416: # IN ANY CASE, THE NEGATIVE OF THE PHASE, FOLLOWED (IN THE NEXT REGISTER) BY THE PHASE, IF STORED IN THE
003797,000417: # PHASE TABLE AS FOLLOWS:
003798,000418:
003799,000419: # (L) -PHASE1 (IF GROUP=1)
003800,000420: # (L+1) PHASE1
003801,000421: # (L+2) -PHASE2 (IF GROUP=2)
003802,000422: # (L+3) PHASE2
003803,000423: # -----
003804,000424: # (L+7) PHASE 4
003805,000425: # (L+8) -PHASE5 (IF GROUP=5)
003806,000426: # (L+9) PHASE5
003807,000427:
003808,000428: # CALLING SEQUENCE:
003809,000429: # EXAMPLE IS FOR PLACING A PHASE OF FIVE INTO GROUP THREE:
003810,000430:
003811,000431: # 1) IF TBASE IS NOT TO BE SET:
003812,000432: # L-1 CA FIVE
003813,000433: # L TC NEWPHASE
003814,000434: # L+1 OCT 00003
003815,000435:
003816,000436: # 2) IF TBASE IS TO BE SET:
003817,000437: # L-1 CS FIVE
003818,000438: # L TC NEWPHASE
003819,000439: # L+1 OCT 00003
003820,000440:
003821,000441: # SUBROUTINES CALLED: NONE
003822,000442:
003823,000443: # NORMAL EXIT MODE: AT L+2 OF CALLING SEQUENCE
003824,000444:
003825,000445: # ALARM OR ABORT EXITS: NONE
003826,000446:
003827,000447: # OUTPUT: PHASE TABLE AND TBASE TABLE UPDATED
003828,000448:
003829,000449: # ERASABLE INITIALIZATION REQ,D: NONE
003830,000450:
![]() |
Page 87 |
003832,000452: # DEBRIS: A,L,TEMPG
003833,000453:
003834,000454: # ***WARNING*** THIS PROGRAM IS TO BE PLACED IN FIXED-FIXED AND UNSWITCHED ERASABLE.
003835,000455:
003836,000456: 4246 BLOCK 02
003837,000457: 4246 00004 NEWPHASE INHINT
003838,000458:
003839,000459: 4247 54001 TS L # SAVE FOR FURTHER USE
003840,000460:
003841,000461: 4250 50002 NDX Q # OBTAIN THE GROUP NUMBER
003842,000462: 4251 30000 CA 0
003843,000463: 4252 24002 INCR Q # OBTAIN THE RETURN ADDRESS
003844,000464: 4253 60000 DOUBLE # SAVE THE GROUP IN A FORM USED FOR
003845,000465: 4254 54061 TS TEMPG # INDEXING
003846,000466:
003847,000467: 4255 10001 CCS L # SEE IF WE ARE TO SET TBASE
003848,000468: 4256 14265 TCF +7 # NO, THE DELTA T WAS POSITIVE
003849,000469: 4257 14265 TCF +6
003850,000470:
003851,000471: 4260 24000 NUFAZ+10 INCR A # SET TBASE AND STORE PHASE CORRECTLY
003852,000472: 4261 54001 TS L
003853,000473:
003854,000474: 4262 40025 CS TIME1 # SET TBASE
003855,000475: 4263 50061 NDX TEMPG
003856,000476: 4264 55111 TS TBASE1 -2
003857,000477:
003858,000478: 4265 40001 CS L # NOW PUT THE PHASE IN THE RIGHT TABLE LOC
003859,000479: 4266 50061 NDX TEMPG
003860,000480: 4267 53076 DXCH -PHASE1 -2
003861,000481:
003862,000482: 4270 00003 RELINT
003863,000483: 4271 00002 TC Q # NOW RETURN TO CALLER
End of include-file PHASE_TABLE_MAINTENANCE.agc. Parent file is MAIN.agc