https://github.com/virtualagc/virtualagc
Raw File
Tip revision: a8d66c8ae3c4d967053e2bfb4298e90182cbeff2 authored by Ron Burkey on 06 March 2024, 12:40:55 UTC
Minor tweaks associated with supporting Skylark 48.
Tip revision: a8d66c8
MAIN.agc
### FILE="Main.annotation"
# Copyright:	Public domain.
# Filename:	MAIN.agc
# Purpose:	Part of the source code for Colossus 2A, AKA Comanche 055.
#		It is part of the source code for the Command Module's (CM)
#		Apollo Guidance Computer (AGC) Apollo 11.
# Assembler:	yaYUL
# Contact:	Ron Burkey <info@sandroid.org>.
# Website:	www.ibiblio.org/apollo
# Mod history:	2009-05-05 RSB	Adapted from Colossus249/MAIN.agc.
#		2017-01-20 RSB	Changed GOTOP00H to GOTOPOOH in all *.agc
#				files.  There are probably more POO problems
#				but those are the only ones I fixed.
#
# This source code has been transcribed or otherwise adapted from digitized
# images of a hardcopy from the MIT Museum.  The digitization was performed
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum.  Many
# thanks to both.  The images (with suitable reduction in storage size and
# consequent reduction in image quality as well) are available online at
# www.ibiblio.org/apollo.  If for some reason you find that the images are
# illegible, contact me at info@sandroid.org about getting access to the 
# (much) higher-quality images which Paul actually created.
#
# Notations on the hardcopy document read, in part:
#
#	Assemble revision 055 of AGC program Comanche by NASA
#	2021113-051.  10:28 APR. 1, 1969  
#
#	This AGC program shall also be referred to as
#			Colossus 2A
#
# This file is a little different from the other Comanche055 files I'm providing, 
# in that it doesn't represent anything that appears directly in the original source.  
# What I (RSB) have done for organizational purposes is to split the huge monolithic
# source code into smaller, more manageable chunks--i.e., into individual source 
# files.  Those files are rejoined within this file as "includes".  It just makes
# it a little easier to work with.  The code chunks correspond to natural divisions
# into sub-programs.  In fact, these divisions are more-or-less specified by
# the source code itself.  Refer to the "SUBROUTINE CALLS" at the
# very beginning of the file ASSEMBLY_AND_OPERATION_INFORMATION.agc.
#
# It may be reasonably asked why tens of thousands of lines of source are joined by
# means of inclusion, rather than simply assembling the source files individually and
# then linking them to form the executable.  The answer is that the original 
# development team had no linker.  The builds were monolithic just like this.
# There was a big emphasis on reusability of the code in the original project, 
# apparently, but this reusability took the form of inserting your deck of 
# punch-cards at the appropriate position in somebody else's deck of punch-cards.
# (Actually, I think the card-decks were turned into tape libraries, and the modules
# were mixed-and-matched from the tape libraries, but the principle is the same.)
# So, indeed, the method of file-inclusion is a very fair representation of the 
# methods used in the original development ... with the improvement, of course,
# that you no longer have to worry about dropping the card deck.  On the other hand, 
# I wasn't there at the time, so I may have no idea what I'm talking about.
#
# Finally, note that the original Apollo AGC assembler (called "YUL") is no longer 
# available (as far as I can tell).  Actually, it had already been replaced by another
# assembler (called "GAP") by the time of Apollo 11, but GAP isn't available either.
# The replacement assembler yaYUL accepts a slightly different format for the source 
# code from what YUL or GAP accepted, so the source code has been targeted for 
# assembly with yaYUL.

# What follows is simply a bunch of file-includes for the individual code chunks.
# I've marked the page numbers to make proof-reading easier.  The page images also
# contain a lot of interesting tables (cross-referenced to page numbers) created by GAP, 
# but not duplicated by yaYUL, so it's still valuable even if the source-files
# listed below are in hand.

$CONTRACT_AND_APPROVALS.agc			        # p. 1						
$ASSEMBLY_AND_OPERATION_INFORMATION.agc		        # pp. 2-26
$TAGS_FOR_RELATIVE_SETLOC_AND_BLANK_BANK_CARDS.agc      # pp. 27-35

						        # p. 36 contains no code.
# COMERASE
$ERASABLE_ASSIGNMENTS.agc			        # pp. 37-130

# COMAID
$INTERRUPT_LEAD_INS.agc				        # pp. 131-132
$T4RUPT_PROGRAM.agc				        # pp. 133-169
$DOWNLINK_LISTS.agc				        # pp. 170-180
$FRESH_START_AND_RESTART.agc			        # pp. 181-210
$RESTART_TABLES.agc				        # pp. 211-221
$SXTMARK.agc 					        # pp. 222-235
$EXTENDED_VERBS.agc				        # pp. 236-267
$PINBALL_NOUN_TABLES.agc			        # pp. 268-284
$CSM_GEOMETRY.agc				        # pp. 285-296
$IMU_COMPENSATION_PACKAGE.agc			        # pp. 297-306
$PINBALL_GAME__BUTTONS_AND_LIGHTS.agc		        # pp. 307-389
$R60,R62.agc					        # pp. 390-398
$ANGLFIND.agc					        # pp. 399-411
$GIMBAL_LOCK_AVOIDANCE.agc			        # pp. 412-413
$KALCMANU_STEERING.agc				        # pp. 414-419
$SYSTEM_TEST_STANDARD_LEAD_INS.agc		        # pp. 420-422
$IMU_CALIBRATION_AND_ALIGNMENT.agc		        # pp. 423-455

# COMEKISS
$GROUND_TRACKING_DETERMINATION_PROGRAM_-_P21.agc	# pp. 456-459
$P34-P35,_P74-P75.agc				        # pp. 460-504
$R31.agc					        # pp. 505-510
$P76.agc					        # pp. 511-513
$R30.agc					        # pp. 514-524
$STABLE_ORBIT_-_P38-P39.agc			        # pp. 525-532

# TROUBLE
$P11.agc					        # pp. 533-550
$TPI_SEARCH.agc					        # pp. 551-561
$P20-P25.agc					        # pp. 562-634
$P30,P37.agc					        # pp. 635-648
$P32-P33,_P72-P73.agc				        # pp. 649-683
$P40-P47.agc					        # pp. 684-736
$P51-P53.agc					        # pp. 737-784
$LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc	        # pp. 785-788
$P61-P67.agc					        # pp. 789-818
$SERVICER207.agc				        # pp. 819-836
$ENTRY_LEXICON.agc				        # pp. 837-843
$REENTRY_CONTROL.agc				        # pp. 844-882
$CM_BODY_ATTITUDE.agc				        # pp. 883-889
$P37,P70.agc					        # pp. 890-933
$S-BAND_ANTENNA_FOR_CM.agc			        # pp. 934-935
$LUNAR_LANDMARK_SELECTION_FOR_CM.agc		        # pp. 936

# TVCDAPS
$TVCINITIALIZE.agc				        # pp. 937-944
$TVCEXECUTIVE.agc				        # pp. 945-950
$TVCMASSPROP.agc				        # pp. 951-955
$TVCRESTARTS.agc				        # pp. 956-960
$TVCDAPS.agc					        # pp. 961-978
$TVCSTROKETEST.agc				        # pp. 979-983
$TVCROLLDAP.agc					        # pp. 984-998
$MYSUBS.agc					        # pp. 999-1001
$RCS-CSM_DIGITAL_AUTOPILOT.agc			        # pp. 1002-1024
$AUTOMATIC_MANEUVERS.agc			        # pp. 1025-1036
$RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc		        # pp. 1037-1038
$JET_SELECTION_LOGIC.agc			        # pp. 1039-1062
$CM_ENTRY_DIGITAL_AUTOPILOT.agc			        # pp. 1063-1092

# CHIEFTAN
$DOWN-TELEMETRY_PROGRAM.agc			        # pp. 1093-1102
$INTER-BANK_COMMUNICATION.agc			        # pp. 1103-1106
$INTERPRETER.agc				        # pp. 1107-1199
$FIXED-FIXED_CONSTANT_POOL.agc			        # pp. 1200-1204
$INTERPRETIVE_CONSTANTS.agc			        # pp. 1205-1206
$SINGLE_PRECISION_SUBROUTINES.agc		        # p.  1207
$EXECUTIVE.agc					        # pp. 1208-1220
$WAITLIST.agc					        # pp. 1221-1235
$LATITUDE_LONGITUDE_SUBROUTINES.agc		        # pp. 1236-1242
$PLANETARY_INERTIAL_ORIENTATION.agc		        # pp. 1243-1251
$MEASUREMENT_INCORPORATION.agc			        # pp. 1252-1261
$CONIC_SUBROUTINES.agc				        # pp. 1262-1308
$INTEGRATION_INITIALIZATION.agc			        # pp. 1309-1333
$ORBITAL_INTEGRATION.agc			        # pp. 1334-1354
$INFLIGHT_ALIGNMENT_ROUTINES.agc		        # pp. 1355-1364
$POWERED_FLIGHT_SUBROUTINES.agc			        # pp. 1365-1372
$TIME_OF_FREE_FALL.agc				        # pp. 1373-1388
$STAR_TABLES.agc				        # pp. 1389-1393
$AGC_BLOCK_TWO_SELF-CHECK.agc			        # pp. 1394-1403
$PHASE_TABLE_MAINTENANCE.agc			        # pp. 1404-1413
$RESTARTS_ROUTINE.agc				        # pp. 1414-1419
$IMU_MODE_SWITCHING_ROUTINES.agc		        # pp. 1420-1448
$KEYRUPT,_UPRUPT.agc				        # pp. 1449-1451
$DISPLAY_INTERFACE_ROUTINES.agc			        # pp. 1452-1484
$SERVICE_ROUTINES.agc				        # pp. 1485-1492
$ALARM_AND_ABORT.agc				        # pp. 1493-1496
$UPDATE_PROGRAM.agc				        # pp. 1497-1507
$RTB_OP_CODES.agc				        # pp. 1508-1516

						        # pp. 1517-1751: GAP-generated tables.





back to top