Source Code
These source-code files are part of a reconstructed copy of Sundial E, the
final release of the Block II 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 2003053-121, 2003053-151, and 2003972-211, belonging to the MIT Museum. Since only binary dumps (rather than listings) of Sundial 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. |
011873,000002: ## Copyright: Public domain.
011874,000003: ## Filename: DOWN-TELEMETRY_PROGRAM.agc
011875,000004: ## Purpose: A section of Sundial E.
011876,000005: ## It is part of the reconstructed source code for the final
011877,000006: ## release of the Block II Command Module system test software. No
011878,000007: ## original listings of this program are available; instead, this
011879,000008: ## file was created via disassembly of dumps of Sundial core rope
011880,000009: ## modules and comparison with other AGC programs.
011881,000010: ## Assembler: yaYUL
011882,000011: ## Contact: Ron Burkey <info@sandroid.org>.
011883,000012: ## Website: www.ibiblio.org/apollo/index.html
011884,000013: ## Mod history: 2023-06-22 MAS Created from Aurora 12.
011885,000014: ## 2023-06-30 MAS Updated for Sundial E.
011886,000015:
011887,000016: 05,3517 SETLOC ENDPINS2
011888,000017: 05,3517 E7,1430 EBANK= DNTMBUFF
011889,000018:
011890,000019: # THIS ROUTINE IS INITITATED EVERY 20MS BY AN INTERRUPT TRIGGERED
011891,000020: # BY THE RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
011892,000021:
011893,000022: 05,3517 54016 DODOWNTM TS BANKRUPT # DO APPROPRIATE TM PHASE.
011894,000023: 05,3520 51426 INDEX DNTMGOTO
011895,000024: 05,3521 10000 TCF 0
011896,000025:
011897,000026: 05,3522 30413 DNPHASE1 CA DNLSTADR # ONCE PER CYCLE (1 SECOND), AN ID IS SENT
011898,000027: 05,3523 55425 TS LDATALST # AND THE DATA LIST SWITCHED TO THAT
011899,000028: 05,3524 76426 MASK LOW10 # SELECTED BY A MISSION OR TEST PROGRAM.
011900,000029: 05,3525 00006 EXTEND
011901,000030: 05,3526 01034 WRITE DNTM1
011902,000031: 05,3527 47644 CS BIT7 # WORD ORDER BIT IS 0 FOR ID OWRD ONLY.
011903,000032: 05,3530 00006 EXTEND
011904,000033: 05,3531 03013 WAND 13
011905,000034:
011906,000035: 05,3532 33662 CAF LDNPHAS2 # SWITCH TO PHASE 2.
011907,000036: 05,3533 55426 TS DNTMGOTO
011908,000037: 05,3534 33671 CAF LOWIDCOD # SPECIAL ID CODE IN L.
011909,000038: 05,3535 13621 TCF TMEXITL
011910,000039:
011911,000040: 05,3536 37644 DNPHASE2 CAF BIT7 # SET WORD ORDER BACK TO 1 FOR REMAINDER
011912,000041: 05,3537 00006 EXTEND # OF CYCLE AND SET UP TO PICK UP 12 PAIRS
011913,000042: 05,3540 05013 WOR 13 # FROM ANYWHERE IN COMMON ERASABLE OR E7.
011914,000043:
011915,000044: 05,3541 37657 CAF ZERO
011916,000045: 05,3542 54065 TS ITEMP1 # TAKE SNAPSHOT OF 12 DP WORDS.
011917,000046: 05,3543 37654 CAF TEN
011918,000047:
011919,000048: 05,3544 54066 LOOP TS ITEMP2 # THESE 12 DP WORDS ARE READ INTO AN
011920,000049: 05,3545 61425 AD LDATALST # INTERMEDIATE BUFFER SO THEY REFER TO THE
011921,000050: 05,3546 00006 EXTEND # SAME POINT IN THE EXECUTION OF A MISSION
011922,000051: 05,3547 50000 INDEX A # PROGRAM. THE WORDS MAY BE IN NON-
011923,000052: 05,3550 50032 INDEX 26D
011924,000053: 05,3551 30001 DCA 0 # 12 OF THE DATA LIST ARE USED AS
011925,000054: 05,3552 50065 INDEX ITEMP1 # ADDRESSES OF THE DESIRED DATA.
011926,000055: 05,3553 53431 DXCH DNTMBUFF
011927,000056:
011928,000057: 05,3554 37651 CAF TWO
011929,000058: 05,3555 26065 ADS ITEMP1
011930,000059: 05,3556 10066 CCS ITEMP2
011931,000060: 05,3557 13544 TCF LOOP
011932,000061:
011933,000062: 05,3560 33670 CAF DEC11 # SET UP TO SEND 11 REMAINING WORDS
011934,000063: 05,3561 55427 TS TMINDEX
011935,000064: 05,3562 33663 CAF LDNPHASX
011936,000065: 05,3563 55426 TS DNTMGOTO
011937,000066:
011938,000067: 05,3564 00006 EXTEND
011939,000068: 05,3565 51425 INDEX LDATALST
011940,000069: 05,3566 50045 INDEX 37D
011941,000070: 05,3567 30001 DCA 0
011942,000071: 05,3570 13616 TCF DNTMEXIT
011943,000072:
011944,000073: 05,3571 55427 DNPHASXA TS TMINDEX
011945,000074: 05,3572 00006 EXTEND
011946,000075: 05,3573 50000 INDEX A # SENDS SNAPSHOT BUFFER.
011947,000076: 05,3574 53701 INDEX FIXLISTB
011948,000077: 05,3575 30001 DCA 0
011949,000078: 05,3576 13616 TCF DNTMEXIT
011950,000079:
011951,000080: 05,3577 11427 DNPHASEX CCS TMINDEX # AT END OF SNAPSHOT TRANSMISSION, SET UP
011952,000081: 05,3600 13571 TCF DNPHASXA # TO SEND 26 PRS FROM ANY ERASABLE LOC AS
011953,000082:
011954,000083: 05,3601 33664 CAF LDNPHAS3 # SPECIFIED BY WORDS 1 - 26 OF THE DATA
011955,000084: 05,3602 55426 TS DNTMGOTO # LIST.
011956,000085: 05,3603 33667 CAF NOGENWDS
011957,000086:
011958,000087: 05,3604 55427 PHASE3A TS TMINDEX # GET DP WORD FROM ANY EBANK.
011959,000088: 05,3605 61425 AD LDATALST
011960,000089: 05,3606 00006 EXTEND
011961,000090: 05,3607 50000 INDEX A
011962,000091: 05,3610 30001 DCA 0 # THIS GETS THE ADDRESS - MUST USE DCA
011963,000092: 05,3611 54003 TS EBANK
011964,000093: 05,3612 75466 MASK LOW8
011965,000094: 05,3613 00006 EXTEND
011966,000095: 05,3614 50000 INDEX A
011967,000096: 05,3615 31401 DCA 3400 # (NOTE ASSEMBLY AS DCA 1400)
011968,000097: 05,3616 00006 DNTMEXIT EXTEND # GENERAL DNTM EXIT LOCATION.
011969,000098: 05,3617 01034 WRITE DNTM1
011970,000099: 05,3620 30001 CA L
011971,000100: 05,3621 00006 TMEXITL EXTEND
011972,000101: 05,3622 01035 WRITE DNTM2
011973,000102: 05,3623 14513 TCF NOQRSM
011974,000103:
011975,000104: 05,3624 11427 DNPHASE3 CCS TMINDEX
011976,000105: 05,3625 13604 TCF PHASE3A
011977,000106:
011978,000107: 05,3626 33665 CAF LDNPHAS4 # SEND FIXED FORMAT LIST OF DSPTAB AND
011979,000108: 05,3627 55426 TS DNTMGOTO # T2, T1.
011980,000109: 05,3630 36162 CAF SIX
011981,000110:
011982,000111: 05,3631 55427 PHASE4A TS TMINDEX
011983,000112: 05,3632 00006 EXTEND # FIXED DATA LIST FOR DSPTAB AND TIME.
011984,000113: 05,3633 50000 INDEX A
011985,000114: 05,3634 53672 INDEX FIXLIST
011986,000115: 05,3635 30001 DCA 0
011987,000116: 05,3636 13616 TCF DNTMEXIT
011988,000117: 05,3637 11427 DNPHASE4 CCS TMINDEX
011989,000118: 05,3640 13631 TCF PHASE4A
011990,000119:
011991,000120: 05,3641 33666 CAF LPHASE5 # SET UP FOR CHANNEL TRANSMISSION.
011992,000121: 05,3642 55426 TS DNTMGOTO
011993,000122: 05,3643 36165 CAF THREE # FOUR PAIRS OF CHANNELS.
011994,000123:
011995,000124: 05,3644 55427 PHASE5A TS TMINDEX
011996,000125: 05,3645 00006 EXTEND
011997,000126: 05,3646 50000 INDEX A
011998,000127: 05,3647 53720 INDEX FIXLSTCL
011999,000128: 05,3650 00000 READ 0
012000,000129: 05,3651 54001 TS L
012001,000130: 05,3652 00006 EXTEND
012002,000131: 05,3653 51427 INDEX TMINDEX
012003,000132: 05,3654 53714 INDEX FIXLSTCA
012004,000133: 05,3655 00000 READ 0
012005,000134: 05,3656 13616 TCF DNTMEXIT
012006,000135: 05,3657 11427 DNPHASE5 CCS TMINDEX
012007,000136: 05,3660 13644 TCF PHASE5A
012008,000137: 05,3661 13522 TCF DNPHASE1 # START NEXT CYCLE.
012009,000138: # CONSTNATS AND FIXED FORMAT DATA LIST.
012010,000139: 05,3662 03536 LDNPHAS2 ADRES DNPHASE2
012011,000140: 05,3663 03577 LDNPHASX ADRES DNPHASEX
012012,000141: 05,3664 03624 LDNPHAS3 ADRES DNPHASE3
012013,000142: 05,3665 03637 LDNPHAS4 ADRES DNPHASE4
012014,000143: 05,3666 03657 LPHASE5 ADRES DNPHASE5
012015,000144:
012016,000145: 05,3667 00031 NOGENWDS DEC 25 B-14 # 26 WORDS SENT DURING PHASE 3.
012017,000146: 05,3670 00013 DEC11 DEC 11 B-14
012018,000147: 05,3671 00437 LOWIDCOD OCT 00437 # FOD'S CHOICE.
012019,000148:
012020,000149: 05,3672 00024 FIXLIST ADRES TIME2 # FIXED-FORMAT PORTION INCLUDES BUFFER,
012021,000150: 05,3673 00321 ADRES DSPTAB +10D # DSPTAB, AND TIME.
012022,000151: 05,3674 00317 ADRES DSPTAB +8D
012023,000152: 05,3675 00315 ADRES DSPTAB +6
012024,000153: 05,3676 00313 ADRES DSPTAB +4
012025,000154: 05,3677 00311 ADRES DSPTAB +2
012026,000155: 05,3700 00307 ADRES DSPTAB
012027,000156:
012028,000157: 05,3701 01454 FIXLISTB ADRES DNTMBUFF +20D
012029,000158: 05,3702 01452 ADRES DNTMBUFF +18D
012030,000159: 05,3703 01450 ADRES DNTMBUFF +16D
012031,000160: 05,3704 01446 ADRES DNTMBUFF +14D
012032,000161: 05,3705 01444 ADRES DNTMBUFF +12D
012033,000162: 05,3706 01442 ADRES DNTMBUFF +10D
012034,000163: 05,3707 01440 ADRES DNTMBUFF +8D
012035,000164: 05,3710 01436 ADRES DNTMBUFF +6D
012036,000165: 05,3711 01434 ADRES DNTMBUFF +4D
012037,000166: 05,3712 01432 ADRES DNTMBUFF +2D
012038,000167: 05,3713 01430 ADRES DNTMBUFF
012039,000168:
012040,000169: 05,3714 00032 FIXLSTCA OCT 32 # CHANNEL ADDRESSES.
012041,000170: 05,3715 00030 OCT 30
012042,000171: 05,3716 00013 OCT 13
012043,000172: 05,3717 00011 OCT 11
012044,000173:
012045,000174: 05,3720 00033 FIXLSTCL OCT 33
012046,000175: 05,3721 00031 OCT 31
012047,000176: 05,3722 00014 OCT 14
012048,000177: 05,3723 00012 OCT 12
012049,000178: # NOMINAL SUNDIAL DOWNLIST.
012050,000179: 05,3724 00342 NOMDNLST ECADR UPLOCK
012051,000180: 05,3725 02635 ECADR PIPAE
012052,000181: 05,3726 02633 ECADR PIPAN
012053,000182: 05,3727 02741 ECADR WPLATT
012054,000183: 05,3730 02737 ECADR WPLATI
012055,000184: 05,3731 02735 ECADR WPLATO
012056,000185: 05,3732 02641 ECADR VLAUN
012057,000186: 05,3733 02631 ECADR ANGX
012058,000187: 05,3734 02627 ECADR ANGY
012059,000188: 05,3735 02623 ECADR ANGZ
012060,000189: 05,3736 02705 ECADR GAZIMUTH
012061,000190: 05,3737 02637 ECADR DRIFTT
012062,000191: 05,3740 02635 ECADR DRIFTI
012063,000192: 05,3741 02633 ECADR DRIFTO
012064,000193: 05,3742 00365 ECADR MARKSTAT
012065,000194: 05,3743 00402 ECADR THETAD +2
012066,000195: 05,3744 00400 ECADR THETAD
012067,000196: 05,3745 00363 ECADR IMUCADR
012068,000197: 05,3746 00356 ECADR DESOPMOD
012069,000198: 05,3747 00354 ECADR OPTMODES
012070,000199: 05,3750 01362 ECADR REDOCTR # INCLUDES FAILREG.
012071,000200: 05,3751 00063 ECADR STATE +2
012072,000201: 05,3752 00061 ECADR STATE
012073,000202: 05,3753 00035 ECADR OPTY
012074,000203: 05,3754 00034 ECADR CDUZ
012075,000204: 05,3755 00032 ECADR CDUX
012076,000205: 05,3756 00403 ADRES DESOPTT
012077,000206: 05,3757 00361 ADRES IMODES30
012078,000207: 05,3760 01364 ADRES SFAIL
012079,000208: 05,3761 01360 ADRES SELFRET
012080,000209: 05,3762 00411 ADRES DELVX +4
012081,000210: 05,3763 00407 ADRES DELVX +2
012082,000211: 05,3764 00405 ADRES DELVX
012083,000212: 05,3765 00150 ADRES LOC
012084,000213: 05,3766 00152 ADRES PUSHLOC
012085,000214: 05,3767 00043 ADRES BMAGY
012086,000215: 05,3770 00041 ADRES PIPAZ
012087,000216: 05,3771 00037 ADRES PIPAX
012088,000217: 05,3772 ENDDNTMS EQUALS
End of include-file DOWN-TELEMETRY_PROGRAM.agc. Parent file is MAIN.agc