Source Code
These source-code files are part of a reconstructed copy of Sunrise 69, the
final release of the Block I 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 1003133-18, 1003133-19, 1003133-20, and 1003733-071. Corresponding portions of code have been copied from Solarium 55 where applicable. Extensive use was also made of the AGC Information Series documents, which were specifically written about the Sunrise software. Since only binary dumps (rather than listings) of Sunrise 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. |
009146,000002: ## Copyright: Public domain.
009147,000003: ## Filename: RTB_OP_CODES.agc
009148,000004: ## Purpose: A section of Sunrise 69.
009149,000005: ## It is part of the reconstructed source code for the final
009150,000006: ## release of the Block I Command Module system test software. No
009151,000007: ## original listings of this program are available; instead, this
009152,000008: ## file was created via disassembly of dumps of Sunrise core rope
009153,000009: ## memory modules and comparison with the later Block I program
009154,000010: ## Solarium 55.
009155,000011: ## Assembler: yaYUL --block1
009156,000012: ## Contact: Ron Burkey <info@sandroid.org>.
009157,000013: ## Website: www.ibiblio.org/apollo/index.html
009158,000014: ## Mod history: 2023-06-19 MAS Created from Sunrise 45.
009159,000015:
009160,000016:
009161,000017: 23,7021 BANK 23
009162,000018: # ROUTINE TO LOAD TIME OF DAY INTO MPAC
009163,000019:
009164,000020: 23,7021 02473 LOADTIME TC READTIME
009165,000021: 23,7022 40565 CS RUPTSTOR
009166,000022: 23,7023 50114 TS MPAC
009167,000023: 23,7024 40566 CS RUPTSTOR +1
009168,000024: 23,7025 50115 TS MPAC +1
009169,000025: 23,7026 20016 RELINT
009170,000026: 23,7027 35500 CAF ZERO
009171,000027: 23,7030 50065 TS NEWEQIND
009172,000028: 23,7031 50116 TS MPAC +2
009173,000029: 23,7032 05236 TC DPEXIT
009174,000030:
009175,000031:
009176,000032: # ROUTINE TO RESET THE PUSHDOWN POUNTER
009177,000033:
009178,000034: 23,7033 40066 FRESHPD CS FIXLOC
009179,000035: 23,7034 40000 COM
009180,000036: 23,7035 50122 TS PUSHLOC
009181,000037: 23,7036 04702 TC RE-ENTER
009182,000038:
009183,000039:
009184,000040: # ROUTINE TO ZERO OUT THE FIRST 38 LOCS OF A VAC AREA
009185,000041:
009186,000042: 23,7037 37051 ZEROVAC CAF 37DEC
009187,000043: 23,7040 50114 ZVLOOP TS MPAC
009188,000044: 23,7041 60066 AD FIXLOC
009189,000045: 23,7042 50001 TS Q
009190,000046: 23,7043 35500 CAF ZERO
009191,000047: 23,7044 20001 INDEX Q
009192,000048: 23,7045 50000 TS 0
009193,000049: 23,7046 10114 CCS MPAC
009194,000050: 23,7047 07040 TC ZVLOOP
009195,000051: 23,7050 04702 TC RE-ENTER
009196,000052:
009197,000053: 23,7051 00045 37DEC DEC 37 B-14
009198,000054:
009199,000055:
009200,000056: # ROUTINE TO CONVERT IS COMP. NOS. TO 1S COMP.
009201,000057:
009202,000058: 23,7052 10114 CDULOGIC CCS MPAC # THIS BASIC ROUTINE TESTS CDU ANGLES FOR
009203,000059: 23,7053 07060 TC CDULOG1 # +OR-SIGN INCLUDING ZERO AND FORMS A DP
009204,000060: 23,7054 07060 TC CDULOG1 # NUMBER CORRESPONDING TO ANGLE
009205,000061: 23,7055 07056 TC +1
009206,000062: 23,7056 44521 CS HALF # USE SMOVE 1
009207,000063: 23,7057 07061 TC +2 # RTB
009208,000064: 23,7060 45500 CDULOG1 CS ZERO # CDUXYZ
009209,000065: 23,7061 30034 XCH OVCTR # CDULOGIC
009210,000066: 23,7062 30114 XCH MPAC
009211,000067: 23,7063 25777 EXTEND
009212,000068: 23,7064 44521 MP HALF
009213,000069: 23,7065 30034 XCH OVCTR
009214,000070: 23,7066 60003 AD LP
009215,000071: 23,7067 30115 XCH MPAC +1
009216,000072: 23,7070 30034 XCH OVCTR
009217,000073: 23,7071 30114 XCH MPAC
009218,000074: 23,7072 04024 TC DANZIG
009219,000075:
009220,000076:
009221,000077: # ROUTINE TO CONVERT 1S COMP. NOS. TO 2S COMP.
009222,000078:
009223,000079: 23,7073 35500 1STO2S CAF ZERO
009224,000080: 23,7074 30115 XCH MPAC +1
009225,000081: 23,7075 60000 DOUBLE
009226,000082: 23,7076 50034 TS OVCTR
009227,000083: 23,7077 35500 CAF ZERO
009228,000084: 23,7100 60114 AD MPAC
009229,000085: 23,7101 60114 AD MPAC
009230,000086: 23,7102 10000 CCS A
009231,000087: 23,7103 64516 AD ONE
009232,000088: 23,7104 07106 TC +2
009233,000089: 23,7105 40000 COM
009234,000090: 23,7106 50114 ZYXR TS MPAC # AND MAYBE OVERFLOW.
009235,000091: 23,7107 04024 TC DANZIG
009236,000092:
009237,000093: 23,7110 20000 INDEX A # HANDLE OVERFLOW IN STANDARD ANGULAR WAY.
009238,000094: 23,7111 34477 CAF LIMITS
009239,000095: 23,7112 60114 AD MPAC # GUARANTEED NO OVERFLOW.
009240,000096: 23,7113 07106 TC ZYXR
009241,000097:
009242,000098:
009243,000099: 23,7114 20017 READPIPS INHINT
009244,000100: 23,7115 40044 CS PIPAX
009245,000101: 23,7116 40000 CS A
009246,000102: 23,7117 20066 INDEX FIXLOC
009247,000103: 23,7120 50040 TS VAC
009248,000104: 23,7121 40045 CS PIPAY
009249,000105: 23,7122 40000 CS A
009250,000106: 23,7123 20066 INDEX FIXLOC
009251,000107: 23,7124 50042 TS VAC +2
009252,000108: 23,7125 40046 CS PIPAZ
009253,000109: 23,7126 40000 CS A
009254,000110: 23,7127 20066 INDEX FIXLOC
009255,000111: 23,7130 50044 TS VAC +4
009256,000112: 23,7131 20016 RELINT
009257,000113: 23,7132 35500 CAF ZERO
009258,000114: 23,7133 20066 INDEX FIXLOC
009259,000115: 23,7134 50041 TS VAC +1
009260,000116: 23,7135 20066 INDEX FIXLOC
009261,000117: 23,7136 50043 TS VAC +3
009262,000118: 23,7137 20066 INDEX FIXLOC
009263,000119: 23,7140 50045 TS VAC +5
009264,000120: 23,7141 45500 VMODE CS ZERO
009265,000121: 23,7142 05237 TC DPEXIT +1
009266,000122:
009267,000123:
009268,000124:
009269,000125: 23,7143 02516 PULSEIMU TC BANKCALL
009270,000126: 23,7144 21440 CADR IMUPULSE
009271,000127:
009272,000128: 23,7145 04702 TC RE-ENTER
009273,000129:
009274,000130:
009275,000131: 23,7146 02516 SGNAGREE TC BANKCALL
009276,000132: 23,7147 07132 CADR TPAGREE
009277,000133: 23,7150 04024 TC DANZIG
009278,000134:
009279,000135:
009280,000136:
009281,000137: # ROUTINE TO COMPLETE OPTICS TRUNNION ANGLE CONVERSION FROM COUNTER
009282,000138: # READING TO DP REVOLUTIONS. CALLS TO TRUNLOG SHOULD BE IMMEDIATELY
009283,000139: # PRECEDED BY A CALL TO CDULOGIC. (NO NEED TO CHECK SXT POWER-ON BIT.)
009284,000140: 23,7151 34502 TRUNLOG CAF BIT13
009285,000141: 23,7152 70750 MASK WASOPSET
009286,000142: 23,7153 10000 CCS A
009287,000143: 23,7154 07160 TC +4
009288,000144:
009289,000145: 23,7155 34521 CAF HALF
009290,000146: 23,7156 05415 TRUNLOG1 TC SHORTMP
009291,000147: 23,7157 04024 TC DANZIG # WITH PD IF AT END W/ NO ADDRESSES.
009292,000148:
009293,000149: 23,7160 37165 CAF 10DEGS # CORRECT FOR 20 DEG OFFSET (CDULOGIC
009294,000150: 23,7161 60114 AD MPAC # ALREADY SHIFTED IT RIGHT ONE) AND SHIFT
009295,000151: 23,7162 50114 TS MPAC # RIGHT TWO ADDITIONAL PLACES.
009296,000152: 23,7163 34502 CAF QUARTER
009297,000153: 23,7164 07156 TC TRUNLOG1
009298,000154:
009299,000155: 23,7165 07020 10DEGS DEC 3600 B-14 # HALF OF SXT TRUNION OFFSET
End of include-file RTB_OP_CODES.agc. Parent file is MAIN.agc