Source Code
![]() |
These source-code files are part of a reconstructed copy of Artemis 071, the
first release of the Apollo 15 through 17 Command Module (CM) Apollo Guidance
Computer (AGC) software.
The reconstruction began with source code of Artemis 072 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes between the two versions. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021154-. Note that page numbers in the reconstructed code match those on the Artemis 072 printout, although the changed code would likely have changed page numbers for a real Artemis 071 listing. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
043850,000002: ## Copyright: Public domain. 043851,000003: ## Filename: MYSUBS.agc 043852,000004: ## Purpose: A section of Artemis revision 071. 043853,000005: ## It is part of the reconstructed source code for the first 043854,000006: ## release of the flight software for the Command Module's 043855,000007: ## (CM) Apollo Guidance Computer (AGC) for Apollo 15 through 043856,000008: ## 17. The code has been recreated from a copy of Artemis 072. 043857,000009: ## It has been adapted such that the resulting bugger words 043858,000010: ## exactly match those specified for Artemis 071 in NASA 043859,000011: ## drawing 2021154-, which gives relatively high confidence 043860,000012: ## that the reconstruction is correct. 043861,000013: ## Reference: 997 043862,000014: ## Assembler: yaYUL 043863,000015: ## Contact: Ron Burkey <info@sandroid.org>. 043864,000016: ## Website: www.ibiblio.org/apollo/index.html 043865,000017: ## Mod history: 2019-08-14 MAS Created from Artemis 072. 043866,000018:
![]() |
Page 997 |
043868,000020: 043869,000021: 21,2000 SETLOC MYSUBS 043870,000022: 21,2000 BANK 043871,000023: 043872,000024: 21,2060 E6,1510 EBANK= KMPAC 043873,000025: 21,2060 5060 SPCOS1 EQUALS SPCOS 043874,000026: 21,2060 5061 SPSIN1 EQUALS SPSIN 043875,000027: 21,2060 5060 SPCOS2 EQUALS SPCOS 043876,000028: 21,2060 5061 SPSIN2 EQUALS SPSIN 043877,000029: 043878,000030: 21,2060 COUNT* $$/DAPMS 043879,000031: 043880,000032: # ONE AND ONE HALF PRECISION MULTIPLICATION ROUTINE 043881,000033: 043882,000034: 21,2060 55512 SMALLMP TS KMPTEMP # A(X+Y) 043883,000035: 21,2061 00006 EXTEND 043884,000036: 21,2062 71511 MP KMPAC +1 043885,000037: 21,2063 55511 TS KMPAC +1 # AY 043886,000038: 21,2064 34772 CAF ZERO 043887,000039: 21,2065 57510 XCH KMPAC 043888,000040: 21,2066 00006 EXTEND 043889,000041: 21,2067 71512 MP KMPTEMP # AX 043890,000042: 21,2070 21511 DAS KMPAC # AX+AY 043891,000043: 21,2071 00002 TC Q 043892,000044: 043893,000045: # SUBROUTINE FOR DOUBLE PRECISION ADDITIONS OF ANGLES 043894,000046: # A AND L CONTAIN A DP(1S) ANGLE SCALED BY 180 DEGS TO BE ADDED TO KMPAC. 043895,000047: # RESULT IS PLACED IN KMPAC. TIMING = 6 MCT (22 MCT ON OVERFLOW) 043896,000048: 043897,000049: 21,2072 21511 DPADD DAS KMPAC 043898,000050: 21,2073 00006 EXTEND 043899,000051: 21,2074 12111 BZF TSK +1 # NO OVERFLOW 043900,000052: 21,2075 11510 CCS KMPAC 043901,000053: 21,2076 12112 TCF DPADD+ # + OVERFLOW 043902,000054: 21,2077 12101 TCF +2 043903,000055: 21,2100 12114 TCF DPADD- # - OVERFLOW 043904,000056: 21,2101 11511 CCS KMPAC +1 043905,000057: 21,2102 12117 TCF DPADD2+ # UPPER = 0, LOWER + 043906,000058: 21,2103 12105 TCF +2 043907,000059: 21,2104 40000 COM # UPPER = 0, LOWER - 043908,000060: 21,2105 64750 AD POSMAX # LOWER = 0, A=0 043909,000061: 21,2106 55511 TS KMPAC +1 # CAN NOT OVERFLOW 043910,000062: 21,2107 34750 CA POSMAX # UPPER WAS = 0 043911,000063: 21,2110 55510 TSK TS KMPAC 043912,000064: 21,2111 00002 +1 TC Q 043913,000065: 21,2112 64752 DPADD+ AD NEGMAX # KMPAC GREATER THAN 0 043914,000066: 21,2113 12110 TCF TSK 043915,000067: 043916,000068: 21,2114 40000 DPADD- COM 043917,000069: 21,2115 64750 AD POSMAX # KMPAC LESS THAN 0
![]() |
Page 998 |
043919,000071: 21,2116 12110 TCF TSK 043920,000072: 043921,000073: 21,2117 64752 DPADD2+ AD NEGMAX # CAN NOT OVERFLOW 043922,000074: 21,2120 55511 TS KMPAC +1 043923,000075: 21,2121 34752 CA NEGMAX # UPPER WAS = 0 043924,000076: 21,2122 12110 TCF TSK 043925,000077:
![]() |
Page 999 Empty page |
End of include-file MYSUBS.agc. Parent file is MAIN.agc