swh:1:snp:63e2d142f91fc04ec33789d9d7bb85f3bef72e05
Tip revision: 07d422a97efd13e2c9cc89135ae2b9c9c982136f authored by Mike Stewart on 07 August 2019, 06:38:15 UTC
LUM131R9: Added an implementation of PCR 942 (HLROFF) that gives the correct bugger word for bank 33
LUM131R9: Added an implementation of PCR 942 (HLROFF) that gives the correct bugger word for bank 33
Tip revision: 07d422a
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