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