Source Code
061136,000001: # Copyright: Public domain.
061137,000002: # Filename: RESTARTS_ROUTINE.agc
061138,000003: # Purpose: Part of the source code for Comanche, build 055. It
061139,000004: # is part of the source code for the Command Module's
061140,000005: # (CM) Apollo Guidance Computer (AGC), Apollo 11.
061141,000006: # Assembler: yaYUL
061142,000007: # Reference: pp. 1414-1419
061143,000008: # Contact: Ron Burkey <info@sandroid.org>
061144,000009: # Website: http://www.ibiblio.org/apollo.
061145,000010: # Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same
061146,000011: # name, and page images. Corrected various
061147,000012: # typos in the transcription of program
061148,000013: # comments, and these should be back-ported
061149,000014: # to Colossus249.
061150,000015: # 2010-08-28 JL Added missing comment character.
061151,000016:
061152,000017: # The contents of the "Comanche055" files, in general, are transcribed
061153,000018: # from scanned documents.
061154,000019:
061155,000020: # Assemble revision 055 of AGC program Comanche by NASA
061156,000021: # 2021113-051. April 1, 1969.
061157,000022:
061158,000023: # This AGC program shall also be referred to as Colossus 2A
061159,000024:
061160,000025: # Prepared by
061161,000026: # Massachusetts Institute of Technology
061162,000027: # 75 Cambridge Parkway
061163,000028: # Cambridge, Massachusetts
061164,000029:
061165,000030: # under NASA contract NAS 9-4065.
061166,000031:
061167,000032: # Refer directly to the online document mentioned above for further
061168,000033: # information. Please report any errors to info@sandroid.org.
061169,000034:
061170,000035: # Page 1414
061171,000036: 01,3520 BANK 01
061172,000037: 01,2000 SETLOC RESTART
061173,000038: 01,2000 BANK
061174,000039:
061175,000040: 01,3520 E3,1436 EBANK= PHSNAME1 # GOPROG MUST SWITCH TO THIS EBANK
061176,000041:
061177,000042: 01,3520 COUNT 01/RSROU
061178,000043:
061179,000044: 01,3520 30161 RESTARTS CA MPAC +5 # GET GROUP NUMBER -1
061180,000045: 01,3521 60000 DOUBLE # SAVE FOR INDEXING
061181,000046: 01,3522 54155 TS TEMP2G
061182,000047:
061183,000048: 01,3523 33762 CA PHS2CADR # SET UP EXIT IN CASE IT IS AN EVEN
061184,000049: 01,3524 54157 TS TEMPSWCH # TABLE PHASE
061185,000050:
061186,000051: 01,3525 33557 CA RTRNCADR # TO SAVE TIME ASSUME IT WILL GET NEXT
061187,000052: 01,3526 54707 TS GOLOC +2 # GROUP AFTER THIS
061188,000053:
061189,000054: 01,3527 30154 CA TEMPPHS
061190,000055: 01,3530 75051 MASK OCT1400
061191,000056: 01,3531 10000 CCS A # IS IT A VARIABLE OR TABLE RESTART
061192,000057: 01,3532 13543 TCF ITSAVAR # IT'S A VARIABLE RESTART
061193,000058:
061194,000059: 01,3533 10154 GETPART2 CCS TEMPPHS # IS IT AN X.1 RESTART
061195,000060: 01,3534 10000 CCS A
061196,000061: 01,3535 13643 TCF ITSATBL # NO, IT'S A TABLE RESTART
061197,000062:
061198,000063: 01,3536 35066 CA PRIO14 # IT IS AN X.1 RESTART, THEREFORE START
061199,000064: 01,3537 05147 TC FINDVAC # THE DISPLAY RESTART JOB
061200,000065: 01,3540 E3,1400 EBANK= LST1
061201,000066: 01,3540 03261 20063 2CADR INITDSP
061202,000067:
061203,000068: 01,3542 03557 TC RTRNCADR # FINISHED WITH THIS GROUP, GET NEXT ONE
061204,000069:
061205,000070: 01,3543 75051 ITSAVAR MASK OCT1400 # IS IT TYPE B ?
061206,000071: 01,3544 10000 CCS A
061207,000072: 01,3545 13614 TCF ITSLIKEB # YES, IT IS TYPE B
061208,000073:
061209,000074: 01,3546 00006 EXTEND # STORES THE JOB (OR TASK) 2CADR FOR EXIT
061210,000075: 01,3547 50155 NDX TEMP2G
061211,000076: 01,3550 31437 DCA PHSNAME1
061212,000077: 01,3551 52706 DXCH GOLOC
061213,000078:
061214,000079: 01,3552 30154 CA TEMPPHS # SEE IF THIS IS A JOB, TASK, OR A LONGCALL
061215,000080: 01,3553 75023 MASK OCT7
061216,000081: 01,3554 67715 AD MINUS2
061217,000082: 01,3555 10000 CCS A
061218,000083: 01,3556 13726 TCF ITSLNGCL # IT'S A LONGCALL
061219,000084:
061220,000085: # Page 1415
061221,000086: 01,3557 04675 RTRNCADR TC SWRETURN # CAN'T GET HERE.
061222,000087: 01,3560 13562 TCF ITSAWAIT
061223,000088:
061224,000089: 01,3561 13627 TCF ITSAJOB # IT'S A JOB
061225,000090:
061226,000091: 01,3562 33766 ITSAWAIT CA WTLTCADR # SET UP WAITLIST CALL
061227,000092: 01,3563 54704 TS GOLOC -1
061228,000093:
061229,000094: 01,3564 50155 NDX TEMP2G # DIRECTLY STORED
061230,000095: 01,3565 31054 CA PHSPRDT1
061231,000096: 01,3566 10000 TIMETEST CCS A # IS IT AN IMMEDIATE RESTART
061232,000097: 01,3567 24000 INCR A # NO.
061233,000098: 01,3570 13573 TCF FINDTIME # FIND OUT WHEN IT SHOULD BEGIN
061234,000099:
061235,000100: 01,3571 15500 TCF ITSINDIR # STORED INDIRECTLY
061236,000101:
061237,000102: 01,3572 13612 TCF IMEDIATE # IT WANTS AN IMMEDIATE RESTART
061238,000103:
061239,000104: # ***** THIS MUST BE IN FIXED FIXED *****
061240,000105:
061241,000106: 5500 BLOCK 02
061242,000107: 4000 SETLOC FFTAG2
061243,000108: 4000 BANK
061244,000109:
061245,000110: 5500 COUNT 02/RSROU
061246,000111:
061247,000112: 5500 22706 ITSINDIR LXCH GOLOC +1 # GET THE CORRECT E BANK IN CASE THIS IS
061248,000113: 5501 22006 LXCH BB # SWITCHED ERASABLE
061249,000114:
061250,000115: 5502 50000 NDX A # GET THE TIME INDIRECTLY
061251,000116: 5503 30001 CA 1
061252,000117:
061253,000118: 5504 22006 LXCH BB # RESTORE THE BB AND GOLOC
061254,000119: 5505 22706 LXCH GOLOC +1
061255,000120:
061256,000121: 5506 13573 TCF FINDTIME # FIND OUT WHEN IT SHOULD BEGIN
061257,000122:
061258,000123: # ***** YOU MAY RETURN TO SWITCHED FIXED *****
061259,000124:
061260,000125: 01,3573 BANK 01
061261,000126: 01,2000 SETLOC RESTART
061262,000127: 01,2000 BANK
061263,000128:
061264,000129: 01,3573 COUNT 01/RSROU
061265,000130:
061266,000131: 01,3573 40000 FINDTIME COM # MAKE NEGATIVE SINCE IT WILL BE SUBTRACTED
061267,000132: 01,3574 54001 TS L # AND SAVE
061268,000133: 01,3575 50155 NDX TEMP2G
061269,000134: 01,3576 41053 CS TBASE1
061270,000135: 01,3577 00006 EXTEND
061271,000136: # Page 1416
061272,000137: 01,3600 60025 SU TIME1
061273,000138: 01,3601 10000 CCS A
061274,000139: 01,3602 40000 COM
061275,000140: 01,3603 67700 AD OCT37776
061276,000141: 01,3604 65017 AD ONE
061277,000142: 01,3605 60001 AD L
061278,000143: 01,3606 10000 CCS A
061279,000144: 01,3607 35021 CA ZERO
061280,000145: 01,3610 13612 TCF +2
061281,000146: 01,3611 13612 TCF +1
061282,000147: 01,3612 65017 IMEDIATE AD ONE
061283,000148: 01,3613 00704 TC GOLOC -1
061284,000149: 01,3614 33557 ITSLIKEB CA RTRNCADR # TYPE B, SO STORE RETURN IN
061285,000150: 01,3615 54157 TS TEMPSWCH # TEMPSWCH IN CASE OF AN EVEN PHASE
061286,000151:
061287,000152: 01,3616 33763 CA PRT2CADR # SET UP EXIT TO GET TABLE PART OF THIS
061288,000153: 01,3617 54707 TS GOLOC +2 # VARIABLE TYPE OF PHASE
061289,000154:
061290,000155: 01,3620 30154 CA TEMPPHS # MAKE THE PHASE LOOK RIGHT FOR THE TABLE
061291,000156: 01,3621 76043 MASK OCT177 # PART OF THIS VARIABLE PHASE
061292,000157: 01,3622 54154 TS TEMPPHS
061293,000158:
061294,000159: 01,3623 00006 EXTEND
061295,000160: 01,3624 50155 NDX TEMP2G # OBTAIN THE JOB'S 2CADR
061296,000161: 01,3625 31437 DCA PHSNAME1
061297,000162: 01,3626 52706 DXCH GOLOC
061298,000163:
061299,000164: 01,3627 50155 ITSAJOB NDX TEMP2G # NOW ADD THE PRIORITY AND LET'S GO
061300,000165: 01,3630 31054 CA PHSPRDT1
061301,000166: 01,3631 54704 CHKNOVAC TS GOLOC -1 # SAVE PRIO UNTIL WE SEE IF IT'S
061302,000167: 01,3632 00006 EXTEND # A FINDVAC OR A NOVAC
061303,000168: 01,3633 63637 BZMF ITSNOVAC
061304,000169:
061305,000170: 01,3634 33765 CAF FVACCADR # POSITIVE, SET UP FINDVAC CALL.
061306,000171: 01,3635 56704 XCH GOLOC -1 # PICK UP PRIO
061307,000172: 01,3636 00704 TC GOLOC -1 # AND GO
061308,000173:
061309,000174: 01,3637 33767 ITSNOVAC CAF NOVACADR # NEGATIVE,
061310,000175: 01,3640 56704 XCH GOLOC -1 # SET UP NOVAC CALL,
061311,000176: 01,3641 40000 COM # CORRECT PRIO,
061312,000177: 01,3642 00704 TC GOLOC -1 # AND GO
061313,000178:
061314,000179: 01,3643 54020 ITSATBL TS CYR # FIND OUT IF THE PHASE IS ODD OR EVEN
061315,000180: 01,3644 10020 CCS CYR
061316,000181: 01,3645 13646 TCF +1 # IT'S EVEN
061317,000182: 01,3646 13744 TCF ITSEVEN
061318,000183:
061319,000184: 01,3647 33557 CA RTRNCADR # IN CASE THIS IS THE SECOND PART OF A
061320,000185: 01,3650 54707 TS GOLOC +2 # TYPE B RESTART, WE NEED PROPER EXIT
061321,000186: # Page 1417
061322,000187: 01,3651 30154 CA TEMPPHS # SET UP POINTER FOR FINDING OUR PLACE IN
061323,000188: 01,3652 54021 TS SR # THE RESTART TABLES
061324,000189: 01,3653 60021 AD SR
061325,000190: 01,3654 50155 NDX TEMP2G
061326,000191: 01,3655 62001 AD SIZETAB +1
061327,000192: 01,3656 54156 TS POINTER
061328,000193:
061329,000194: 01,3657 00006 CONTBL2 EXTEND # FIND OUT WHAT'S IN THE TABLE
061330,000195: 01,3660 50156 NDX POINTER
061331,000196: 01,3661 32002 DCA CADRTAB # GET THE 2CADR
061332,000197:
061333,000198: 01,3662 22706 LXCH GOLOC +1 # STORE THE BB INFORMATION
061334,000199:
061335,000200: 01,3663 10000 CCS A # IS IT A JOB OR IT IT TIMED
061336,000201: 01,3664 24000 INCR A # POSITIVE, MUST BE A JOB
061337,000202: 01,3665 13740 TCF ITSAJOB2
061338,000203:
061339,000204: 01,3666 24000 INCR A # MUST BE EITHER A WAITLIST OR LONGCALL
061340,000205: 01,3667 54705 TS GOLOC # LET'S STORE THE CORRECT CADR
061341,000206:
061342,000207: 01,3670 33766 CA WTLTCADR # SET UP OUR EXIT TO WAITLIST
061343,000208: 01,3671 54704 TS GOLOC -1
061344,000209:
061345,000210: 01,3672 30706 CA GOLOC +1 # NOW FIND OUT IF IT IS A WAITLIST CALL
061346,000211: 01,3673 75006 MASK BIT10 # THIS SHOULD BE ONE IF WE HAVE -BB
061347,000212: 01,3674 10000 CCS A # FOR THAT MATTER SO SHOULD BE BITS 9,8,7,
061348,000213: # 6,5, AND LAST BUT NOT LEAST (PERHAPS NOT
061349,000214: # IN IMPORTANCE ANYWAY. BUT 4
061350,000215: 01,3675 13733 TCF ITSWTLST # IT IS A WAITLIST CALL
061351,000216:
061352,000217: 01,3676 50156 NDX POINTER # OBTAIN THE ORIGINAL DELTA T
061353,000218: 01,3677 32000 CA PRDTTAB # ADDRESS FOR THIS LONGCALL
061354,000219:
061355,000220: 01,3700 15507 TCF ITSLGCL1 # NOW GO GET THE DELTA TIME
061356,000221:
061357,000222: # ***** THIS MUST BE IN FIXED FIXED *****
061358,000223:
061359,000224: 5507 BLOCK 02
061360,000225: 4000 SETLOC FFTAG2
061361,000226: 4000 BANK
061362,000227:
061363,000228: 5507 COUNT 02/RSROU
061364,000229:
061365,000230: 5507 22706 ITSLGCL1 LXCH GOLOC +1 # OBTAIN THE CORRECT E BANK
061366,000231: 5510 22006 LXCH BB
061367,000232: 5511 22706 LXCH GOLOC +1 # AND PRESERVE OUR E AND F BANKS
061368,000233:
061369,000234: 5512 00006 EXTEND # GET THE DELTA TIME
061370,000235: 5513 50000 NDX A
061371,000236: 5514 30001 DCA 0
061372,000237: # Page 1418
061373,000238: 5515 22706 LXCH GOLOC +1 # RESTORE OUR E AND F BANK
061374,000239: 5516 22006 LXCH BB # RESTORE THE TASKS E AND F BANKS
061375,000240: 5517 22706 LXCH GOLOC +1 # AND PRESERVE OUR L
061376,000241: 5520 13701 TCF ITSLGCL2 # NOT GET'S PROCESS THIS LONGCALL
061377,000242:
061378,000243: # ***** YOU MAY RETURN TO SWITCHED FIXED *****
061379,000244:
061380,000245: 01,3701 BANK 01
061381,000246: 01,2000 SETLOC RESTART
061382,000247: 01,2000 BANK
061383,000248:
061384,000249: 01,3701 COUNT 01/RSROU
061385,000250: 01,3701 53140 ITSLGCL2 DXCH LONGTIME
061386,000251:
061387,000252: 01,3702 00006 EXTEND # CALCULATE TIME LEFT
061388,000253: 01,3703 40025 DCS TIME2
061389,000254: 01,3704 21140 DAS LONGTIME
061390,000255: 01,3705 00006 EXTEND
061391,000256: 01,3706 31136 DCA LONGBASE
061392,000257: 01,3707 21140 DAS LONGTIME
061393,000258:
061394,000259: 01,3710 11137 CCS LONGTIME # FIND OUT HOW THIS SHOULD BE RESTARTED
061395,000260: 01,3711 13721 TCF LONGCLCL
061396,000261: 01,3712 13714 TCF +2
061397,000262: 01,3713 13607 TCF IMEDIATE -3
061398,000263: 01,3714 11140 CCS LONGTIME +1
061399,000264: 01,3715 13721 TCF LONGCLCL
061400,000265: 01,3716 13717 NOOP # CAN'T GET HERE ************
061401,000266: 01,3717 13607 TCF IMEDIATE -3
061402,000267: 01,3720 13612 TCF IMEDIATE
061403,000268:
061404,000269: 01,3721 33764 LONGCLCL CA LGCLCADR # WE WILL GO TO LONGCALL
061405,000270: 01,3722 54704 TS GOLOC -1
061406,000271:
061407,000272: 01,3723 00006 EXTEND # PREPARE OUR ENTRY TO LONGCALL
061408,000273: 01,3724 31140 DCA LONGTIME
061409,000274: 01,3725 00704 TC GOLOC -1
061410,000275:
061411,000276: 01,3726 33766 ITSLNGCL CA WTLTCADR # ASSUME IT WILL GO TO WAITLIST
061412,000277: 01,3727 54704 TS GOLOC -1
061413,000278:
061414,000279: 01,3730 50155 NDX TEMP2G
061415,000280: 01,3731 41054 CS PHSPRDT1 # GET THE DELTA T ADDRESS
061416,000281:
061417,000282: 01,3732 15507 TCF ITSLGCL1 # NOW GET THE DELTA TIME
061418,000283:
061419,000284: 01,3733 40706 ITSWTLST CS GOLOC +1 # CORRECT THE BBCON INFORMATION
061420,000285: 01,3734 54706 TS GOLOC +1
061421,000286: # Page 1419
061422,000287: 01,3735 50156 NDX POINTER # GET THE DT AND FIND OUT IF IT WAS STORED
061423,000288: 01,3736 32000 CA PRDTTAB # DIRECTLY OR INDIRECTLY
061424,000289:
061425,000290: 01,3737 13566 TCF TIMETEST # FIND OUT HOW THE TIME IS STORED
061426,000291:
061427,000292: 01,3740 56705 ITSAJOB2 XCH GOLOC # STORE THE CADR
061428,000293:
061429,000294: 01,3741 50156 NDX POINTER # ADD THE PRIORITY AND LET'S GO
061430,000295: 01,3742 32000 CA PRDTTAB
061431,000296:
061432,000297: 01,3743 13631 TCF CHKNOVAC
061433,000298:
061434,000299: 01,3744 30157 ITSEVEN CA TEMPSWCH # SET FOR EITHER THE SECOND PART OF THE
061435,000300: 01,3745 54707 TS GOLOC +2 # TABLE, OR A RETURN FOR THE NEXT GROUP
061436,000301:
061437,000302: 01,3746 50155 NDX TEMP2G # SET UP POINTER FOR OUR LOCATION WITHIN
061438,000303: 01,3747 32000 CA SIZETAB # THE TABLE
061439,000304: 01,3750 60154 AD TEMPPHS # THIS MAY LOOK BAD BUT LET'S SEE YOU DO
061440,000305: 01,3751 60154 AD TEMPPHS # BETTER IN TIME OR NUMBER OF LOCATIONS
061441,000306: 01,3752 60154 AD TEMPPHS
061442,000307: 01,3753 54156 TS POINTER
061443,000308:
061444,000309: 01,3754 13657 TCF CONTBL2 # NO PROCESS WHAT IS IN THE TABLE
061445,000310:
061446,000311: 01,3755 36214 PHSPART2 CA THREE # SET THE POINTER FOR THE SECOND HALF OF
061447,000312: 01,3756 26156 ADS POINTER # THE TABLE
061448,000313:
061449,000314: 01,3757 33557 CA RTRNCADR # THIS WILL BE OUR LAST TIME THROUGH THE
061450,000315: 01,3760 54707 TS GOLOC +2 # EVEN TABLE, SO AFTER IT GET THE NEXT
061451,000316: # GROUP
061452,000317: 01,3761 13657 TCF CONTBL2 # SO LET'S GET THE SECOND ENTRY IN THE TBL
061453,000318:
061454,000319: 01,3762 0154 TEMPPHS EQUALS MPAC
061455,000320: 01,3762 0155 TEMP2G EQUALS MPAC +1
061456,000321: 01,3762 0156 POINTER EQUALS MPAC +2
061457,000322: 01,3762 0157 TEMPSWCH EQUALS MPAC +3
061458,000323: 01,3762 0705 GOLOC EQUALS VAC5 +20D
061459,000324: 01,3762 7715 MINUS2 EQUALS NEG2
061460,000325: 01,3762 6043 OCT177 EQUALS LOW7
061461,000326:
061462,000327: 01,3762 03755 PHS2CADR GENADR PHSPART2
061463,000328: 01,3763 03533 PRT2CADR GENADR GETPART2
061464,000329: 01,3764 05342 LGCLCADR GENADR LONGCALL
061465,000330: 01,3765 05147 FVACCADR GENADR FINDVAC
061466,000331: 01,3766 05245 WTLTCADR GENADR WAITLIST
061467,000332: 01,3767 05134 NOVACADR GENADR NOVAC
061468,000333:
061469,000334:
061470,000335:
061471,000336:
End of include-file RESTARTS_ROUTINE.agc. Parent file is MAIN.agc