swh:1:snp:92f3f585b9ae79620ad8c41a332d6329b31fd381
Raw File
Tip revision: 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
ASSEMBLY_AND_OPERATION_INFORMATION.agc
### FILE="Main.annotation"
## Copyright:	Public domain.
## Filename:	ASSEMBLY_AND_OPERATION_INFORMATION.agc
## Purpose:	A module for revision 0 of BURST120 (Sunburst).
##		It is part of the source code for the Lunar Module's (LM)
##		Apollo Guidance Computer (AGC) for Apollo 5.
## Assembler:	yaYUL
## Contact:	Ron Burkey <info@sandroid.org>.
## Website:	www.ibiblio.org/apollo/index.html
## Mod history:	2016-09-30 RSB	Created draft version.  Corrected it against the 
##				Sunburst 120 scans, so should be ready to go 
##				except for any errors I may have introduced myself.
##		2016-12-03 RSB	Used ProoferComments.py to check the comments.  
##				Fixed 30 errors (in 11 pages, so nearly 3 errors
##				per page).
##		2016-12-04 RSB	Fixed yet another typo, with an improved ProoferComments.py.

## Page 1

# 	   THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE
# COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1  ---  THE AS206 MISSION.

#	   THE DETAILS OF IMPLEMENTATION ARE SPECIFIED IN REPORT R-527, "GUIDANCE SYSTEM OPERATIONAL PLAN AS206",
# AS AMENDED.

#	   REPORT R-527 AND THIS PROGRAM HAVE BEEN PREPARED BY THE INSTRUMENTATION LABORATORY, MASSACHUSETTS
# INSTITUTE OF TECHNOLOGY, 75 CAMBRIDGE PARKWAY, CAMBRIDGE, MASSACHUSETTS, UNDER DSR PROJECT 55-23850, SPONSORED
# BY THE MANNED SPACECRAFT CENTER OF THE NATIONAL AERONAUTICS AND SPACE ADMINISTRATION, CONTRACT NAS 9-4065.

## Page 2

# TABLE OF LOG CARDS:
# ----- -- --- ------

# ASSEMBLY AND OPERATION INFORMATION
# ERASABLE ASSIGNMENTS
# INPUT/OUTPUT CHANNELS
# INTERRUPT LEAD INS
# RESTART TABLES AND RESTARTS ROUTINE
# PHASE TABLE MAINTENANCE
# FRESH START AND RESTART
# T4RUPT PROGRAM
# IMU MODE SWITCHING ROUTINES
# AOTMARK
# RADAR LEAD-IN ROUTINES
# RADAR TEST PROGRAMS
# EXTENDED VERBS
# KEYRUPT, UPRUPT
# PINBALL GAME  BUTTONS AND LIGHTS
# ALARM AND ABORT
# UPDATE PROGRAM PART 1 OF 2
# UPDATE PROGRAM PART 2 OF 2
# DOWN-TELEMETRY PROGRAM
# INFLIGHT ALIGNMENT ROUTINES
# RTB OP CODES
# LEM FLIGHT CONTROL SYSTEM TEST
# IMU PERFORMANCE TESTS 1
# IMU PERFORMANCE TESTS 2
# IMU PERFORMANCE TESTS 3
# OPTIMUM PRELAUNCH ALIGNMENT CALIBRATION
# DAP INTERFACE SUBROUTINES
# T6-RUPT PROGRAMS
# DAPIDLER PROGRAM
# P-AXIS REACTION CONTROL SYSTEM AUTOPILOT
# Q,R-AXES REACTION CONTROL SYSTEM AUTOPILOT
# Q,R-AXES JET SELECT AND FAILURE CONTROL LOGIC
# RCS FAILURE MONITOR
# KALMAN FILTER FOR LM DAP
# TRIM GIMBAL CONTROL SYSTEM
# AOSTASK AND AOSJOB
# SPS BACK-UP RCS CONTROL
# ATTITUDE MANEUVER ROUTINE
# GIMBAL LOCK AVOIDANCE
# KALCMANU STEERING
# MISSION PHASE 2 GUIDANCE REFERENCE RELEASE + BOOST MONITOR
# MP 3 - SUBORBITAL ABORT
# MP4-CONTINGENCY ORBIT INSERTION
# MISSION PHASE 6 COAST SIVB ATTACHED
# MP 7 - SIVB/LEM SEPARATION
# MISSION PHASE 8 - DPS COLD SOAK
# MP9-DPS 1 BURN
## Page 3
# MISSION PHASE 11 - DPS2/FITH/APS1
# MISSION PHASE 13 - APS2
# MISSION PHASE 16 - RCS COLD SOAK
# INTEGRATION INITIALIZATION
# ORBITAL INTEGRATION PROGRAM
# LMP COMMAND ROUTINES
# AS206 MISSION SCHEDULING PACKAGE
# 206 SERVICE ROUTINES
# TUMBLE MONITOR
# PIPA READER
# FIND CDU DESIRED
# AVERAGE G INTEGRATOR
# MASS CALCULATOR
# THROTTLE CONTROL
# IMU COMPENSATION PACKAGE
# DUMMY 206 INITIALIZATION
# SECOND DPS GUIDANCE
# PREBURN FOR APS2
# ASCENT STEERING
# THRUST MAGNITUDE FILTER
# LOGSUB ROUTINE
# LAMB
# SUM CHECK END OF BANK MARKERS
# INTER-BANK COMMUNICATION
# INTERPRETER
# SINGLE PRECISION SUBROUTINES
# EXECUTIVE
# WAITLIST
# AGC BLOCK TWO SELF-CHECK

## Page 4

# VERB AND NOUN INFORMATION

#  REGULAR VERBS
# 01  DISPLAY OCTAL COMP 1 (R1)
# 02  DISPLAY OCTAL COMP 2 (R1)
# 03  DISPLAY OCTAL COMP 3 (R1)
# 04  DISPLAY OCTAL COMP 1,2 (R1,R2)
# 05  DISPLAY OCTAL COMP 1,2,3 (R1,R2,R3)
# 06  DECIMAL DISPLAY
# 07  DP DECIMAL DISPLAY (R1,R2)
# 10  SPARE
# 11  MONITOR OCT COMP 1 (R1)
# 12  MONITOR OCT COMP 2 (R1)
# 13  MONITOR OCT COMP 3 (R1)
# 14  MONITOR OCT COMP 1,2 (R1)
# 15  MONITOR OCT COMP 1,2,3 (R1,R2,R3)
# 16  MONITOR DECIMAL
# 17  MONITOR DP DECIMAL (R1,R2)
# 20  SPARE
# 21  LOAD COMP 1 (R1)
# 22  LOAD COMP 2 (R2)
# 23  LOAD COMP 3 (R3)
# 24  LOAD COMP 1,2 (R1,R2)
# 25  LOAD COMP 1,2,3 (R1,R2,R3)
# 26  SPARE
# 27  FIXED MEMORY DISPLAY
# 30  REQUEST EXECUTIVE
# 31  REQUEST WAITLIST
# 32  C(R2) INTO R3, C(R1) INTO R2
# 33  PROCEED WITHOUT DATA
# 34  TERMINATE CURRENT TEST OR LOAD REQUEST
# 35  TEST LIGHTS
# 36  FRESH START
# 37  CHANGE MAJOR MODE
# END OF REGULAR VERBS

# EXTENDED VERBS
# 40  ZERO (USED WITH NOUN 20) (N 40 UNUSED IN 206)
# 41  COARSE ALIGN (USED WITH NOUN 20) (N 40 UNUSED IN 206)
# 42  FINE ALIGN IMU
# 43  LOAD IMU ATTITUDE ERROR METERS
# 44  ILLEGAL VERB
# 45  COMMAND LR TO POSITION 2 (UNUSED IN 206)
# 46  SAMPLE RADAR ONCE PER SECOND (UNUSED IN 206)
# 47  PERFORM LEM FCS TEST
# 50  PLEASE PERFORM
## Page 5
# 51  PLEASE MARK
# 52  PLEASE MARK Y
# 53  PLEASE MARK X OR Y
# 54  PULSE TORQUE GYROS
# 55  ALIGN TIME
# 56  PERFORM BANKSUM
# 57  PERFORM SYSTEM TEST
# 60  ILLEGAL VERB
# 61  ILLEGAL VERB
# 62  SCAN LEM INBITS
# 63  TURN OFF DAP AND SEND CDU'S ONLY ON DOWNLINK.
# 64  SET TIMER TO GROUND ELAPSED TIME
# 65  SET GUIDANCE REFERENCE RELEASE DISCRETE
# 66  INITIATE LGC DFI TLM CALIBRATE ROUTINE
# 67  SEND COMMAND TO LMP
# 70  SET MISSION TIMER
# 71  SET MISSION PHASE REGISTER
# 72  SET MISSION PHASE REGISTER + TIMER
# 73  RESET DPS OR RPS COLD SOAK DISCRETE
# 74  STOP MISSION TIMERS
# 75  TARGET PARAMETER UPDATE
# 76  STATE VECTOR UPDATE
# 77  ILLEGAL VERB

## Page 6
# NORMAL NOUNS				    		SCALE AND DECIMAL POINT			
# 00  NOT IN USE
# 01  SPECIFY MACHINE ADDRESS (FRACTIONAL)		(.XXXXX)
# 02  SPECIFY MACHINE ADDRESS (WHOLE)			(XXXXX.)
# 03  SPECIFY MACHINE ADDRESS (DEGREES)			(XXX.XXDEGREES)
# 04  SPECIFY MACHINE ADDRESS (HOURS)			(XXX.XXHOURS)
# 05  SPECIFY MACHINE ADDRESS (SECONDS)			(XXX.XXSECONDS)
# 06  SPECIFY MACHINE ADDRESS (GYRO DEGREES)		(XX.XXXDEGREES)
# 07  SPARE
# 10  CHANNEL TO BE SPECIFIED
# 11  SPARE
# 12  SPARE
# 13  SPARE
# 14  SPARE
# 15  INCREMENT MACHINE ADDRESS				(OCTAL ONLY)
# 16  TIME SECONDS					(XXX.XXSECONDS)
# 17  TIME HOURS					(XXX.XXHOURS)
# 20  ICDU						(XXX.XXDEGREES)
# 21  PIPAS						(XXXXX.PULSES)
# 22  NEW ANGLES I					(XXX.XXDEGREES)
# 23  DELTA ANGLES I					(XXX.XXDEGREES)
# 24  DELTA TIME (SECONDS)				(XXX.XXSECONDS)
# 25  CHECKLIST						(XXXXX.)
# 26  PRIO/DELAY, ADRES, BBCON				(OCTAL ONLY)
# 27  SELF TEST ON/OFF SWITCH				(XXXXX.)
# 30  STAR NUMBERS					(XXXXX.)
# 31  ALMCADR, ALMCADR +1, ERCOUNT			(OCTAL ONLY)
# 32  DECISION TIME (MIDCOURSE)				(XXX.XXHOURS (INTERNAL UNITS = WEEKS))
# 33  EPHEMERIS TIME (MIDCOURSE)			(XXX.XXHOURS (INTERNAL UNITS = WEEKS))
# 34  MEASURED QUANTITY (MIDCOURSE)			(XXXX.XKILOMETERS)
# 35  INBIT MESSAGE					(OCTAL ONLY)
# 36  LANDMARK DATA 1					(OCTAL ONLY)
# 37  LANDMARK DATA 2					(OCTAL ONLY)
# 40  RENDEZVOUS RADAR ANGLES (TRUNION,SHAFT)		(XXX.XXDEGREES)      (UNUSED IN 206)
# 41  NEW RENDEZVOUS RADAR ANGLES (TRUNION,SHAFT)	(XXX.XXDEGREES)      (UNUSED IN 206)
# 42  AOT ROTATION ANGLES 				(XXX.XXDEGREES)
# 43  AOT DETENT CODE					(XXXXX.)
# 44  FORWARD VELOCITY, LATERAL VELOCITY		(XXXXX.FEET/SEC)
# 45  ROTATIONAL HAND CONTROLLER ANGLE RATES		(XXXXX.DEG/SEC)      (NOT USED IN 206)
# 46  SPARE
# 47  SPARE
# 50  FAILREG, FAILREG +1, FAILREG +2			(OCTAL ONLY)
# 51  SPARE
# 52  GYRO BIAS DRIFT					(.BBXXXXXMILLIRAD/SEC)
# 53  GYRO INPUT AXIS ACCELERATION DRIFT		(.BBXXXXX(MILLIRAD/SEC)/(CM/SEC SEC))
# 54  GYRO SPIN AXIS ACCELERATION DRIFT			(.BBXXXXX(MILLIRAD/SEC)/(CM/SEC SEC))
# END OF NORMAL NOUNS

## Page 7
# MIXED NOUNS						SCALE AND DECIMAL POINT
# 55  LANDING RADAR ALTITUDE, TIME (SECONDS)		(XXXXX.FEET, XXX.XXSEC)               	(UNUSED IN 206)
# 56  LANDING RADAR VELX, TIME (SECONDS)		(XXXXX.FEET/SEC, XXX.XXSEC)           	(UNUSED IN 206)
# 57  LANDING RADAR VELY, TIME (SECONDS)		(XXXXX.FEET/SEC, XXX.XXSEC)		(UNUSED IN 206)
# 60  LANDING RADAR VELZ, TIME (SECONDS)		(XXXXX.FEET/SEC, XXX.XXSEC)		(UNUSED IN 206)
# 61  TARGET AZIMUTH AND ELEVATION			(XXX.XXDEG, XX.XXX DEG)
# 62  RENDEZVOUS RADAR RANGE, TRUNION, SHAFT		(XXXXXB.FEET, XXX.XXDEG, XXX.XXDEG)	(UNUSED IN 206)
# 63  RENDEZVOUS RADAR RANGE RATE, TRUNION, SHAFT	(XXXXX.FEET/SEC, XXX.XXDEG, XXX.XXDEG)	(UNUSED IN 206)
# 64  INITIAL ALTITUDE, FINAL ALTITUDE, ALT. RATE	(XXXXX.FEET, XXXXX.FEET, XXXXX.FEET/SEC)
# 65  SAMPLED TIME (HOURS AND SECONDS)			(XXX.XXHOURS, XXX.XXSEC)
#	  (FETCHED IN INTERRUPT)
# 66  SYSTEM TEST RESULTS				(XXXXX., .XXXXX, XXXXX.)
# 67  DELTA GYRO ANGLES					(XX.XXXDEG FOR EACH)
# 70  SPARE
# 71  SPARE
# 72  DELTA POSITION					(XXXX.XKILOMETERS FOR EACH)
# 73  DELTA VELOCITY					(XXXX.XMETERS/SEC FOR EACH)
# 74  MEASUREMENT DATA (MIDCOURSE)			(XXX.XXHOURS (INTERNAL UNITS=WEEKS), XXXX.XKILOMETERS, XXXXX.
# 75  MEASUREMENT DEVIATIONS (MIDCOURSE)		(XXXX.XKILOMETERS, XXXX.XMETERS/SEC, XXXX.XKILOMETERS)
# 76  POSITION VECTOR					(XXXX.XKILOMETERS FOR EACH)
# 77  VELOCITY VECTOR					(XXXX.XMETERS/SEC FOR EACH)

## Page 8
# TABLE OF ERROR CODES


# OPTICS SUB-SYSTEM

# 00105	    MARK SYSTEM CURRENTLY IN USE				
# 00111	    MARK IS MISSING AFTER V53 ENTER
# 00112	    AOTMARK SYSTEM HAS NOT BEEN INITIALIZED TO ACCEPT THIS MARK
# 00113	    NO BIT 3, 4, 5, 6, OR 7 (INBITS) IN CHANNEL 16
# 00114	    REQUESTED MARK NOT MADE
# 00115	    NO MARK TO REJECT


# IMU SUB-SYSTEM

# 00205	    SATURATED-PIPA ALARM
# 00206	    ZERO CDU NOT ALLOWED WITH COARSE ALIGN AND GIMBAL LOCK
# 00207	    ISS TURN-ON REQUEST NOT PRESENT FOR 90 SECONDS
# 00210	    IMU NOT OPERATING WHEN ICDU ZERO REQUESTED
# 00211	    COARSE ALIGN ERROR.  GIMBAL ANGLES NOT WITHIN 2 DEGREES OF DESIRED ANGLES
# 00212     PIPA FAIL WITH PIPA FAIL INHIBIT BIT SET
# 00213	    ISS TURN ON REQUEST WITH ISS OPERATIVE DISCRETE NOT PRESENT
# 00214	    PROGRAM USING IMU WHEN TURNED OFF


# DISPLAY ALARMS (PART 1)

# 00300	    ABORT COMMAND RECEIVED BUT ABORT NOT ENABLED
# 00310     CURTAINS ALARM (BADEND IN ATTSTALL, IMUSTALL, ETC., USUALLY)   WHEN ALARM2 IS CALLED BY CURTAINS
#                                                                          ALMCADR CONTAINS Q OF ROUTINE WHICH
# 00312     DAP MANEUVER PREVENTED BY FAILURE OF JETS                      CALLS CURTAINS
# 00315     FORGETIT ALARM
# 00316     RESTART OCCURRED BUT PROGRAM WASN'T RESTARTABLE (FAKESTRT)


# PROCEDURAL DIFFICULTY

# 00401	    DESIRED GIMBAL ANGLES YIELD GIMBAL LOCK
# 00404	    COMPUTED DT FOR WAITLIST TOO BIG OR NEGATIVE (TASKSFTR - MP 9).  ABORT.
# 00405	    LAMBERT ITERATIONS NOT CONVERGING -- MISSION PHASE 13
# 00410     OVERFLOW PRIOR TO OR DURING COMPUTATION OF ACS OR AFCS (MP 11)
# 00411     OVERFLOW IN ANG MOMENTUM CMD (COMPUTATION OF AFCS1)    (MP 11)
# 00412     OVERFLOW AFTER COMPUTATION OF AFCS1  		   (MP 11)


## Page 9
# RADAR ERRORS

# 00501	    RADAR ANTENNA OUT OF LIMITS OF EACH MODE
# 00502	    DESIRED RADAR GIMBAL ANGLES OUT OF LIMITS OF EACH MODE
# 00503	    NO RENDEZVOUS RADAR DATA GOOD SIGNAL WITHIN 30 SECONDS WITH LOCKON REQUESTED
# 00510	    RENDEZVOUS ZERO CDU REQUESTED WITH RENDEZVOUS RADAR NOT IN AUTO MODE
# 00514     RADAR RENDEZVOUS AUTO POWER OFF WITH PROGRAM USING THE RENDEZVOUS RADAR
# 00520	    RADAR RUPT OCCURRED BUT NOT EXPECTED
# 00521	    RADAR DATA COULD NOT BE READ
# 00522	    LANDING RADAR NOT IN DESIRED POSITION
# 00523	    LANDING RADAR DID NOT ACHIEVE POSITION 2 UPON REQUEST IN DESIRED TIME INTERVAL
# 00524     TARGET VECTOR REQUIRES RENDEZVOUS RADAR ANGLES NOT WITHIN LIMITS OF EITHER MODE


# MISSION SCHEDULER ERRORS

# 00601     MISSION PHASE DUE BUT PHASE REGISTER = 0


# COMPUTER HARDWARE MALFUNCTIONS

# 01102	    AGC SELF TEST ERROR						WHEN ALARM2 IS CALLED BY ERRORS
#									ALMCADR CONTAINS Q OF ROUTINE WHICH
#									CALLS ERRORS
# 01103	    UNUSED CCS BRANCH EXECUTED.  ABORT				WHEN ABORT2 IS CALLED BY CCSHOLE
#									ALMCADR CONTAINS Q OF ROUTINE WHICH
#									CALLED CCSHOLE
# 01105	    DOWNLINK TOO FAST
# 01106	    UPLINK TOO FAST
# 01107	    PHASE TABLE ENTRIES DO NOT AGREE -- DO A FRESH START
# 01110     RESTART BUT NO GROUPS ACTIVE


# LIST OVERFLOWS (ALL ABORTS)

# 01201	    EXECUTIVE OVERFLOW - NO VAC AREAS				WHEN ABORT2 IS CALLED BY ABORT
# 01202	    EXECUTIVE OVERFLOW - NO CORE SETS				ALMCADR CONTAINS Q OF ROUTINE
# 01203	    WAITLIST OVERFLOW - TOO MANY TASKS				WHICH CALLED ABORT
# 01206	    KEYBOARD AND DISPLAY WAITING LINE OVERFLOW
# 01207	    NO VAC AREA FOR MARKS
# 01210	    MORE THAN ONE IMU, RR, AOT, OR ATTITUDE PROGRAM ATTEMPTING TO USE STALL ROUTINES AT SAME TIME


# INTERPRETER ERRORS

# 01301	    ARCSIN-ARCCOS INPUT ANGLE TOO LARGE. ABORT
## Page 10
# 01302	    SQRT CALLED WITH NEGATIVE ARGUMENT. ABORT


# DISPLAY ALARMS (PART 2)
# 01405     DV ALARM.  ENGINE ON BUT NO THRUST
# 01410	    JET FAIL DURING FCS TEST
# 01411     CDU DOES NOT AGREE WITH COMMAND TO 1 DEGREE			ALMCADR FOR ALL ROUTINES WHICH CALL
# 01412     CDU DOES NOT AGREE WITH COMMAND TO 5 DEGREES		ALARMS (WHICH CALLS ALARM) WILL
#									CONTAIN  ALARMS +3.  Q OF THE
#									ORIGINATING ROUTINE WILL BE STORED
#									AT QPLACE
# KEYBOARD AND DISPLAY PROGRAM

# 01501	    KEYBOARD AND DISPLAY ERROR DURING INTERNAL USE. ABORT


# SYSTEM TEST ALARMS

# 01600	    DRIFT TEST OVERFLOW
# 01601     BAD IMU TORQUE IN DRIFT OR IN GYROCOMPASS

## Page 11

# INSTRUCTION CODES:
#
# NORMAL (NON-EXTENDED) CODES:
#
# TC		000		TRANSFER CONTROL
# CCS		001 00		COUNT, COMPARE, AND SKIP
# TCF		001 01		TRANSFER CONTROL TO FIXED
# TCF		001 10		DITTO
# TCF		001 11		DITTO
# DAS		010 00		DP ADD TO STORAGE
# LXCH		010 01		EXCHANGE L WITH STORAGE
# INCR		010 10		INCREMENT STORAGE
# ADS		010 11		ADD TO STORAGE
# CA		011		CLEAR AND ADD
# CS		100		CLEAR AND SUBTRACT
# INDEX		101 00		INDEX NEXT INSTRUCTION
# DXCH		101 01		DP EXCHANGE WITH STORAGE
# TS		101 10		TRANSFER TO STORAGE
# XCH		101 11		EXCHANGE A WITH STORAGE
# AD		110		ADD
# MASK		111		MASK ("AND" TO A)
#
#
# EXTENDED CODES:
#
# READ		000 00 0	READ FROM CHANNEL
# WRITE		000 00 1	WRITE CHANNEL
# RAND		000 01 0	READ, "AND" TO A
# WAND		000 01 1	WRITE, "AND" TO A
# ROR		000 10 0	READ, "OR" TO A
# WOR		000 10 1	WRITE, "OR" TO A
# RXOR		000 11 0	READ, EXCLUSIVE "OR" TO A
# EDRUPT	000 11 1	INTERRUPT
#
# DV		001 00		DIVIDE
# BZF		001 01		BRANCH ON ZERO TO FIXED
# BZF		001 10		DITTO
# BZF		001 11		DITTO
# MSU		010 00		MODULAR SUBTRACT
# QXCH		010 01		EXCHANGE Q WITH STORAGE
# AUG		010 10		AUGMENT STORAGE
# DIM		010 11		DIMINISH STORAGE
# DCA		011		DP CLEAR AND ADD
# DCS		100		DP CLEAR AND SUBTRACT
# INDEX		101		INDEX NEXT EXTENDED INSTR.
# SU		110 00		SUBTRACT
# BZMF		110 01		BRANCH ON 0 OR - TO FIXED
# BZMF		110 10		DITTO
# BZMF		110 11		DITTO
# MP		111		MULTIPLY


back to top