Source Code
![]() |
These source-code files were obtained by digitally photographing
an Artemis 72 program listing from a private collection and then
modifying pre-existing Comanche 55 (Apollo 11) source files to
incorporate changes. Note that the page images
presented online are of reduced quality, and that additional images
may be available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 072 OF AGC PROGRAM ARTEMIS BY NASA 2021114-011 11:40 FEB. 26, 1971 THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS COLOSSUS 3 THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED IN REPORT R-577. THIS PROGRAM WAS PREPARED UNDER OSR PROJECT 55-23890, SPONSORED BY THE MANNED SPACECRAFT CENTER OF THE NATIONAL AERONAUTICS AND SPACE ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE CHARLES STARK DRAPER LABORATORY, MASSACHUSETTS INSTITUTE OF TECHNOLOGY, CAMBRIDGE, MASS. |
061647,000002: # Copyright: Public domain.
061648,000003: # Filename: KEYRUPT_UPRUPT.agc
061649,000004: # Purpose: Part of the source code for Artemis (i.e., Colossus 3),
061650,000005: # build 072. This is for the Command Module's (CM)
061651,000006: # Apollo Guidance Computer (AGC), we believe for
061652,000007: # Apollo 15-17.
061653,000008: # Assembler: yaYUL
061654,000009: # Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
061655,000010: # Website: www.ibiblio.org/apollo/index.html
061656,000011: # Page scans: www.ibiblio.org/apollo/ScansForConversion/Artemis072/
061657,000012: # Mod history: 2009-08-18 JL Adapted from corresponding Comanche 055 file.
061658,000013: # 2009-09-03 JL Fixed error in conversion.
061659,000014: # 2010-02-20 RSB Un-##'d this header.
061660,000015:
061661,000016: # # Page 1445
061662,000017:
061663,000018: 07,2000 SETLOC KEYRUPT
061664,000019: 07,2000 BANK
061665,000020: 07,3666 COUNT* $$/KEYUP
061666,000021:
061667,000022: 07,3666 54016 KEYRUPT1 TS BANKRUPT
061668,000023: 07,3667 56002 XCH Q
061669,000024: 07,3670 54012 TS QRUPT
061670,000025: 07,3671 04366 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
061671,000026: 07,3672 34342 CAF LOW5
061672,000027: 07,3673 00006 EXTEND
061673,000028: 07,3674 02015 RAND MNKEYIN # CHECK IF KEYS 5M-1M ON
061674,000029: 07,3675 54073 KEYCOM TS RUPTREG4
061675,000030: 07,3676 40101 CS FLAGWRD5
061676,000031: 07,3677 74752 MASK DSKYBIT
061677,000032: 07,3700 26101 ADS FLAGWRD5
061678,000033:
061679,000034: 07,3701 05120 ACCEPTUP TC NOVAC30 # (NOTE: RUPTREG4 = KEYTEMP1)
061680,000035: 07,3702 1202 EBANK= DSPCOUNT
061681,000036: 07,3702 02000 60102 2CADR CHARIN
061682,000037:
061683,000038: 07,3704 30073 CA RUPTREG4
061684,000039: 07,3705 50064 INDEX LOCCTR
061685,000040: 07,3706 54154 TS MPAC # LEAVE 5 BIT KEY CODE IN MPAC FOR CHARIN
061686,000041: 07,3707 05323 TC RESUME
061687,000042:
061688,000043: # # Page 1446
061689,000044:
061690,000045: # UPRUPT PROGRAM
061691,000046:
061692,000047: 07,3710 54016 UPRUPT TS BANKRUPT
061693,000048: 07,3711 56002 XCH Q
061694,000049: 07,3712 54012 TS QRUPT
061695,000050: 07,3713 04366 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
061696,000051: 07,3714 34772 CAF ZERO
061697,000052: 07,3715 56045 XCH INLINK
061698,000053: 07,3716 54073 TS KEYTEMP1
061699,000054: 07,3717 30075 CA FLAGWRD1
061700,000055: 07,3720 74755 MASK NOP01BIT # IF = , MISSION IS IN
061701,000056: 07,3721 10000 CCS A # PRELAUNCH AND UPLINK DATA SUM IS ENABLED
061702,000057: 07,3722 13726 TCF +4 # IF FLGAWORD1 BIT 12 =1, IT IS NOT
061703,000058: 07,3723 30073 CA KEYTEMP1 # ALLOWED.
061704,000059: 07,3724 27116 ADS UPSUM
061705,000060: 07,3725 25117 INCR UPSUM +1
061706,000061: 07,3726 34766 CAF BIT3 # TURN ON UPACT LIGHT
061707,000062: 07,3727 00006 EXTEND # (BIT 3 OF CHANNEL 11)
061708,000063: 07,3730 05011 WOR DSALMOUT
061709,000064: 07,3731 34342 UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
061710,000065: 07,3732 70073 MASK KEYTEMP1 # LOW5 OF WORD
061711,000066: 07,3733 56073 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
061712,000067: 07,3734 00006 EXTEND
061713,000068: 07,3735 74757 MP BIT10 # SHIFT RIGHT 5
061714,000069: 07,3736 55137 TS KEYTEMP2
061715,000070: 07,3737 74342 MASK LOW5 # MID 5
061716,000071: 07,3740 63774 AD HI10
061717,000072: 07,3741 03771 TC UPTEST
061718,000073: 07,3742 34757 CAF BIT10
061719,000074: 07,3743 00006 EXTEND
061720,000075: 07,3744 71137 MP KEYTEMP2 # SHIFT RIGHT 5
061721,000076: 07,3745 74342 MASK LOW5 # HIGH 5
061722,000077: 07,3746 40000 COM
061723,000078: 07,3747 03771 TC UPTEST
061724,000079:
061725,000080: 07,3750 45000 UPOK CS ELRCODE # CODE IS GOOD. IF CODE = 'ERROR RESET',
061726,000081: 07,3751 60073 AD KEYTEMP1 # CLEAR UPLOCKFL (SET BIT4 OF FLAGWRD7 = 0)
061727,000082: 07,3752 00006 EXTEND # IF CODE DOES NOT = 'ERROR RESET', ACCEPT
061728,000083: 07,3753 13761 BZF CLUPLOCK # CODE ONLY IF UPLOCKFL IS CLEAR (=0).
061729,000084:
061730,000085: 07,3754 34765 CAF UPLOCBIT # TEST UPLOCKFL FOR 0 OR 1
061731,000086: 07,3755 70103 MASK FLAGWRD7
061732,000087: 07,3756 10000 CCS A
061733,000088: 07,3757 05323 TC RESUME # UPLOCKFL = 1
061734,000089: 07,3760 03701 TC ACCEPTUP # UPLOCKFL = 0
061735,000090:
061736,000091: 07,3761 44765 CLUPLOCK CS UPLOCBIT # CLEAR UPLOCKFL (I.E., SET BIT 4 OF
061737,000092: 07,3762 70103 MASK FLAGWRD7 # FLAGWRD7 = 0)
061738,000093: 07,3763 54103 TS FLAGWRD7
061739,000094: 07,3764 03701 TC ACCEPTUP
061740,000095: # # Page 1447
061741,000096: # CODE IS BAD
061742,000097: 07,3765 40103 TMFAIL2 CS FLAGWRD7 # LOCK OUT FURTHER UPLINK ACTIVITY
061743,000098: 07,3766 74765 MASK UPLOCBIT # (BY SETTING UPLOCKFL = 1) UNTIL
061744,000099: 07,3767 26103 ADS FLAGWRD7 # 'ERROR RESET' IS SENT VIA UPLINK.
061745,000100: 07,3770 05323 TC RESUME
061746,000101: 07,3771 60073 UPTEST AD KEYTEMP1
061747,000102: 07,3772 10000 CCS A
061748,000103: 07,3773 03765 TC TMFAIL2
061749,000104: 07,3774 77740 HI10 OCT 77740
061750,000105: 07,3775 03765 TC TMFAIL2
061751,000106: 07,3776 00002 TC Q
061752,000107:
061753,000108: 07,3777 5000 ELRCODE EQUALS OCT22
061754,000109:
061755,000110: # 'UPLINK ACTIVITY LIGHT' IS TURNED OFF BY .....
061756,000111: # 1. VBRELDSP
061757,000112: # 2. ERROR RESET
061758,000113: # 3. UPDATE PROGRAM (P27) ENTERED BY V70,V71,V72, AND V73.
061759,000114:
061760,000115: # _
061761,000116: # THE RECEPTION OF A BAD CODE (I.E., CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1.
061762,000117: # THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS.
061763,000118: # WHEN UPLINK ACTIVITY IS LOCKED OUT, IT CAN BE ALLOWED WHEN THE GROUND UPLINKS AN 'ERROR RESET' CODE.
061764,000119: # (IT IS RECOMMENDED THAT THE 'ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED
061765,000120: # BY 15 ZEROS. THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL
061766,000121: # FAILURE).
061767,000122:
061768,000123: # UPLINK ACTIVITY IS ALSO ALLOWED (UNLOCKED) DURING FRESH START WHEN FRESH START SETS BIT4 OF FLAGWRD7 = 0.
End of include-file KEYRUPT_UPRUPT.agc. Parent file is MAIN.agc