Source Code
These source-code files are part of a reconstructed copy of Sunrise 45, the
penultimate 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, and 1003133-20. 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. |
009085,000002: ## Copyright: Public domain.
009086,000003: ## Filename: RTB_OP_CODES.agc
009087,000004: ## Purpose: A section of Sunrise 45.
009088,000005: ## It is part of the reconstructed source code for the penultimate
009089,000006: ## release of the Block I Command Module system test software. No
009090,000007: ## original listings of this program are available; instead, this
009091,000008: ## file was created via disassembly of dumps of Sunrise core rope
009092,000009: ## memory modules and comparison with the later Block I program
009093,000010: ## Solarium 55.
009094,000011: ## Assembler: yaYUL --block1
009095,000012: ## Contact: Ron Burkey <info@sandroid.org>.
009096,000013: ## Website: www.ibiblio.org/apollo/index.html
009097,000014: ## Mod history: 2022-12-09 MAS Initial reconstructed source.
009098,000015:
009099,000016:
009100,000017: 23,7021 BANK 23
009101,000018: # ROUTINE TO LOAD TIME OF DAY INTO MPAC
009102,000019:
009103,000020: 23,7021 02473 LOADTIME TC READTIME
009104,000021: 23,7022 40565 CS RUPTSTOR
009105,000022: 23,7023 50114 TS MPAC
009106,000023: 23,7024 40566 CS RUPTSTOR +1
009107,000024: 23,7025 50115 TS MPAC +1
009108,000025: 23,7026 20016 RELINT
009109,000026: 23,7027 35500 CAF ZERO
009110,000027: 23,7030 50065 TS NEWEQIND
009111,000028: 23,7031 50116 TS MPAC +2
009112,000029: 23,7032 05236 TC DPEXIT
009113,000030:
009114,000031:
009115,000032: # ROUTINE TO RESET THE PUSHDOWN POUNTER
009116,000033:
009117,000034: 23,7033 40066 FRESHPD CS FIXLOC
009118,000035: 23,7034 40000 COM
009119,000036: 23,7035 50122 TS PUSHLOC
009120,000037: 23,7036 04702 TC RE-ENTER
009121,000038:
009122,000039:
009123,000040: # ROUTINE TO ZERO OUT THE FIRST 38 LOCS OF A VAC AREA
009124,000041:
009125,000042: 23,7037 37051 ZEROVAC CAF 37DEC
009126,000043: 23,7040 50114 ZVLOOP TS MPAC
009127,000044: 23,7041 60066 AD FIXLOC
009128,000045: 23,7042 50001 TS Q
009129,000046: 23,7043 35500 CAF ZERO
009130,000047: 23,7044 20001 INDEX Q
009131,000048: 23,7045 50000 TS 0
009132,000049: 23,7046 10114 CCS MPAC
009133,000050: 23,7047 07040 TC ZVLOOP
009134,000051: 23,7050 04702 TC RE-ENTER
009135,000052:
009136,000053: 23,7051 00045 37DEC DEC 37 B-14
009137,000054:
009138,000055:
009139,000056: # ROUTINE TO CONVERT IS COMP. NOS. TO 1S COMP.
009140,000057:
009141,000058: 23,7052 10114 CDULOGIC CCS MPAC # THIS BASIC ROUTINE TESTS CDU ANGLES FOR
009142,000059: 23,7053 07060 TC CDULOG1 # +OR-SIGN INCLUDING ZERO AND FORMS A DP
009143,000060: 23,7054 07060 TC CDULOG1 # NUMBER CORRESPONDING TO ANGLE
009144,000061: 23,7055 07056 TC +1
009145,000062: 23,7056 44521 CS HALF # USE SMOVE 1
009146,000063: 23,7057 07061 TC +2 # RTB
009147,000064: 23,7060 45500 CDULOG1 CS ZERO # CDUXYZ
009148,000065: 23,7061 30034 XCH OVCTR # CDULOGIC
009149,000066: 23,7062 30114 XCH MPAC
009150,000067: 23,7063 25777 EXTEND
009151,000068: 23,7064 44521 MP HALF
009152,000069: 23,7065 30034 XCH OVCTR
009153,000070: 23,7066 60003 AD LP
009154,000071: 23,7067 30115 XCH MPAC +1
009155,000072: 23,7070 30034 XCH OVCTR
009156,000073: 23,7071 30114 XCH MPAC
009157,000074: 23,7072 04024 TC DANZIG
009158,000075:
009159,000076:
009160,000077: # ROUTINE TO CONVERT 1S COMP. NOS. TO 2S COMP.
009161,000078:
009162,000079: 23,7073 35500 1STO2S CAF ZERO
009163,000080: 23,7074 30115 XCH MPAC +1
009164,000081: 23,7075 60000 DOUBLE
009165,000082: 23,7076 50034 TS OVCTR
009166,000083: 23,7077 35500 CAF ZERO
009167,000084: 23,7100 60114 AD MPAC
009168,000085: 23,7101 60114 AD MPAC
009169,000086: 23,7102 10000 CCS A
009170,000087: 23,7103 64516 AD ONE
009171,000088: 23,7104 07106 TC +2
009172,000089: 23,7105 40000 COM
009173,000090: 23,7106 50114 ZYXR TS MPAC # AND MAYBE OVERFLOW.
009174,000091: 23,7107 04024 TC DANZIG
009175,000092:
009176,000093: 23,7110 20000 INDEX A # HANDLE OVERFLOW IN STANDARD ANGULAR WAY.
009177,000094: 23,7111 34477 CAF LIMITS
009178,000095: 23,7112 60114 AD MPAC # GUARANTEED NO OVERFLOW.
009179,000096: 23,7113 07106 TC ZYXR
009180,000097:
009181,000098:
009182,000099: 23,7114 20017 READPIPS INHINT
009183,000100: 23,7115 40044 CS PIPAX
009184,000101: 23,7116 40000 CS A
009185,000102: 23,7117 20066 INDEX FIXLOC
009186,000103: 23,7120 50040 TS VAC
009187,000104: 23,7121 40045 CS PIPAY
009188,000105: 23,7122 40000 CS A
009189,000106: 23,7123 20066 INDEX FIXLOC
009190,000107: 23,7124 50042 TS VAC +2
009191,000108: 23,7125 40046 CS PIPAZ
009192,000109: 23,7126 40000 CS A
009193,000110: 23,7127 20066 INDEX FIXLOC
009194,000111: 23,7130 50044 TS VAC +4
009195,000112: 23,7131 20016 RELINT
009196,000113: 23,7132 35500 CAF ZERO
009197,000114: 23,7133 20066 INDEX FIXLOC
009198,000115: 23,7134 50041 TS VAC +1
009199,000116: 23,7135 20066 INDEX FIXLOC
009200,000117: 23,7136 50043 TS VAC +3
009201,000118: 23,7137 20066 INDEX FIXLOC
009202,000119: 23,7140 50045 TS VAC +5
009203,000120: 23,7141 45500 VMODE CS ZERO
009204,000121: 23,7142 05237 TC DPEXIT +1
009205,000122:
009206,000123:
009207,000124:
009208,000125: 23,7143 02516 PULSEIMU TC BANKCALL
009209,000126: 23,7144 21440 CADR IMUPULSE
009210,000127:
009211,000128: 23,7145 04702 TC RE-ENTER
009212,000129:
009213,000130:
009214,000131: 23,7146 02516 SGNAGREE TC BANKCALL
009215,000132: 23,7147 07132 CADR TPAGREE
009216,000133: 23,7150 04024 TC DANZIG
009217,000134:
009218,000135:
009219,000136:
009220,000137: # ROUTINE TO COMPLETE OPTICS TRUNNION ANGLE CONVERSION FROM COUNTER
009221,000138: # READING TO DP REVOLUTIONS. CALLS TO TRUNLOG SHOULD BE IMMEDIATELY
009222,000139: # PRECEDED BY A CALL TO CDULOGIC. (NO NEED TO CHECK SXT POWER-ON BIT.)
009223,000140: 23,7151 34502 TRUNLOG CAF BIT13
009224,000141: 23,7152 70750 MASK WASOPSET
009225,000142: 23,7153 10000 CCS A
009226,000143: 23,7154 07160 TC +4
009227,000144:
009228,000145: 23,7155 34521 CAF HALF
009229,000146: 23,7156 05415 TRUNLOG1 TC SHORTMP
009230,000147: 23,7157 04024 TC DANZIG # WITH PD IF AT END W/ NO ADDRESSES.
009231,000148:
009232,000149: 23,7160 37165 CAF 10DEGS # CORRECT FOR 20 DEG OFFSET (CDULOGIC
009233,000150: 23,7161 60114 AD MPAC # ALREADY SHIFTED IT RIGHT ONE) AND SHIFT
009234,000151: 23,7162 50114 TS MPAC # RIGHT TWO ADDITIONAL PLACES.
009235,000152: 23,7163 34502 CAF QUARTER
009236,000153: 23,7164 07156 TC TRUNLOG1
009237,000154:
009238,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