Showing preview only (3,627K chars total). Download the full file or copy to clipboard to get everything.
Repository: chrislgarry/Apollo-11
Branch: master
Commit: 247dd7d0d1b0
Files: 262
Total size: 3.4 MB
Directory structure:
gitextract_sw4va6c1/
├── .editorconfig
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── Discussion.md
│ │ ├── Humour.md
│ │ ├── Proof_Comanche.md
│ │ └── Proof_Luminary.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── labeler.yml
│ └── workflows/
│ ├── label.yml
│ └── markdownlint.yml
├── .gitignore
├── .markdownlint.yml
├── CONTRIBUTING.md
├── Comanche055/
│ ├── AGC_BLOCK_TWO_SELF-CHECK.agc
│ ├── ALARM_AND_ABORT.agc
│ ├── ANGLFIND.agc
│ ├── ASSEMBLY_AND_OPERATION_INFORMATION.agc
│ ├── AUTOMATIC_MANEUVERS.agc
│ ├── CM_BODY_ATTITUDE.agc
│ ├── CM_ENTRY_DIGITAL_AUTOPILOT.agc
│ ├── CONIC_SUBROUTINES.agc
│ ├── CONTRACT_AND_APPROVALS.agc
│ ├── CSM_GEOMETRY.agc
│ ├── DISPLAY_INTERFACE_ROUTINES.agc
│ ├── DOWN-TELEMETRY_PROGRAM.agc
│ ├── DOWNLINK_LISTS.agc
│ ├── ENTRY_LEXICON.agc
│ ├── ERASABLE_ASSIGNMENTS.agc
│ ├── EXECUTIVE.agc
│ ├── EXTENDED_VERBS.agc
│ ├── FIXED_FIXED_CONSTANT_POOL.agc
│ ├── FRESH_START_AND_RESTART.agc
│ ├── GIMBAL_LOCK_AVOIDANCE.agc
│ ├── GROUND_TRACKING_DETERMINATION_PROGRAM.agc
│ ├── IMU_CALIBRATION_AND_ALIGNMENT.agc
│ ├── IMU_COMPENSATION_PACKAGE.agc
│ ├── IMU_MODE_SWITCHING_ROUTINES.agc
│ ├── INFLIGHT_ALIGNMENT_ROUTINES.agc
│ ├── INTEGRATION_INITIALIZATION.agc
│ ├── INTER-BANK_COMMUNICATION.agc
│ ├── INTERPRETER.agc
│ ├── INTERPRETIVE_CONSTANTS.agc
│ ├── INTERRUPT_LEAD_INS.agc
│ ├── JET_SELECTION_LOGIC.agc
│ ├── KALCMANU_STEERING.agc
│ ├── KEYRUPT_UPRUPT.agc
│ ├── LATITUDE_LONGITUDE_SUBROUTINES.agc
│ ├── LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
│ ├── LUNAR_LANDMARK_SELECTION_FOR_CM.agc
│ ├── MAIN.agc
│ ├── MEASUREMENT_INCORPORATION.agc
│ ├── MYSUBS.agc
│ ├── ORBITAL_INTEGRATION.agc
│ ├── P11.agc
│ ├── P20-P25.agc
│ ├── P30-P37.agc
│ ├── P32-P33_P72-P73.agc
│ ├── P34-35_P74-75.agc
│ ├── P37_P70.agc
│ ├── P40-P47.agc
│ ├── P51-P53.agc
│ ├── P61-P67.agc
│ ├── P76.agc
│ ├── PHASE_TABLE_MAINTENANCE.agc
│ ├── PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
│ ├── PINBALL_NOUN_TABLES.agc
│ ├── PLANETARY_INERTIAL_ORIENTATION.agc
│ ├── POWERED_FLIGHT_SUBROUTINES.agc
│ ├── R30.agc
│ ├── R31.agc
│ ├── R60_62.agc
│ ├── RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc
│ ├── RCS-CSM_DIGITAL_AUTOPILOT.agc
│ ├── README.md
│ ├── REENTRY_CONTROL.agc
│ ├── RESTARTS_ROUTINE.agc
│ ├── RESTART_TABLES.agc
│ ├── RT8_OP_CODES.agc
│ ├── S-BAND_ANTENNA_FOR_CM.agc
│ ├── SERVICER207.agc
│ ├── SERVICE_ROUTINES.agc
│ ├── SINGLE_PRECISION_SUBROUTINES.agc
│ ├── STABLE_ORBIT.agc
│ ├── STAR_TABLES.agc
│ ├── SXTMARK.agc
│ ├── SYSTEM_TEST_STANDARD_LEAD_INS.agc
│ ├── T4RUPT_PROGRAM.agc
│ ├── TAGS_FOR_RELATIVE_SETLOC.agc
│ ├── TIME_OF_FREE_FALL.agc
│ ├── TPI_SEARCH.agc
│ ├── TVCDAPS.agc
│ ├── TVCEXECUTIVE.agc
│ ├── TVCINITIALIZE.agc
│ ├── TVCMASSPROP.agc
│ ├── TVCRESTARTS.agc
│ ├── TVCROLLDAP.agc
│ ├── TVCSTROKETEST.agc
│ ├── UPDATE_PROGRAM.agc
│ └── WAITLIST.agc
├── LICENSE.md
├── Luminary099/
│ ├── AGC_BLOCK_TWO_SELF_CHECK.agc
│ ├── AGS_INITIALIZATION.agc
│ ├── ALARM_AND_ABORT.agc
│ ├── AOSTASK_AND_AOSJOB.agc
│ ├── AOTMARK.agc
│ ├── ASCENT_GUIDANCE.agc
│ ├── ASSEMBLY_AND_OPERATION_INFORMATION.agc
│ ├── ATTITUDE_MANEUVER_ROUTINE.agc
│ ├── BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc
│ ├── CONIC_SUBROUTINES.agc
│ ├── CONTROLLED_CONSTANTS.agc
│ ├── DAPIDLER_PROGRAM.agc
│ ├── DAP_INTERFACE_SUBROUTINES.agc
│ ├── DISPLAY_INTERFACE_ROUTINES.agc
│ ├── DOWNLINK_LISTS.agc
│ ├── DOWN_TELEMETRY_PROGRAM.agc
│ ├── ERASABLE_ASSIGNMENTS.agc
│ ├── EXECUTIVE.agc
│ ├── EXTENDED_VERBS.agc
│ ├── FINDCDUW--GUIDAP_INTERFACE.agc
│ ├── FIXED_FIXED_CONSTANT_POOL.agc
│ ├── FLAGWORD_ASSIGNMENTS.agc
│ ├── FRESH_START_AND_RESTART.agc
│ ├── GENERAL_LAMBERT_AIMPOINT_GUIDANCE.agc
│ ├── GIMBAL_LOCK_AVOIDANCE.agc
│ ├── GROUND_TRACKING_DETERMINATION_PROGRAM.agc
│ ├── IMU_COMPENSATION_PACKAGE.agc
│ ├── IMU_MODE_SWITCHING_ROUTINES.agc
│ ├── IMU_PERFORMANCE_TESTS_4.agc
│ ├── IMU_PERFORMANCE_TEST_2.agc
│ ├── INFLIGHT_ALIGNMENT_ROUTINES.agc
│ ├── INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.agc
│ ├── INTEGRATION_INITIALIZATION.agc
│ ├── INTER-BANK_COMMUNICATION.agc
│ ├── INTERPRETER.agc
│ ├── INTERPRETIVE_CONSTANT.agc
│ ├── INTERRUPT_LEAD_INS.agc
│ ├── KALCMANU_STEERING.agc
│ ├── KALMAN_FILTER.agc
│ ├── KEYRUPT_UPRUPT.agc
│ ├── LANDING_ANALOG_DISPLAYS.agc
│ ├── LATITUDE_LONGITUDE_SUBROUTINES.agc
│ ├── LEM_GEOMETRY.agc
│ ├── LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
│ ├── LUNAR_LANDING_GUIDANCE_EQUATIONS.agc
│ ├── MAIN.agc
│ ├── MEASUREMENT_INCORPORATION.agc
│ ├── ORBITAL_INTEGRATION.agc
│ ├── P-AXIS_RCS_AUTOPILOT.agc
│ ├── P12.agc
│ ├── P20-P25.agc
│ ├── P30_P37.agc
│ ├── P32-P35_P72-P75.agc
│ ├── P34-35_P74-75.agc
│ ├── P40-P47.agc
│ ├── P51-P53.agc
│ ├── P70-P71.agc
│ ├── P76.agc
│ ├── PHASE_TABLE_MAINTENANCE.agc
│ ├── PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
│ ├── PINBALL_NOUN_TABLES.agc
│ ├── PLANETARY_INERTIAL_ORIENTATION.agc
│ ├── POWERED_FLIGHT_SUBROUTINES.agc
│ ├── Q_R-AXIS_RCS_AUTOPILOT.agc
│ ├── R30.agc
│ ├── R31.agc
│ ├── R60_62.agc
│ ├── R63.agc
│ ├── RADAR_LEADIN_ROUTINES.agc
│ ├── RCS_FAILURE_MONITOR.agc
│ ├── README.md
│ ├── RESTARTS_ROUTINE.agc
│ ├── RESTART_TABLES.agc
│ ├── RTB_OP_CODES.agc
│ ├── S-BAND_ANTENNA_FOR_LM.agc
│ ├── SERVICER.agc
│ ├── SERVICE_ROUTINES.agc
│ ├── SINGLE_PRECISION_SUBROUTINES.agc
│ ├── SPS_BACK-UP_RCS_CONTROL.agc
│ ├── STABLE_ORBIT.agc
│ ├── SYSTEM_TEST_STANDARD_LEAD_INS.agc
│ ├── T4RUPT_PROGRAM.agc
│ ├── T6-RUPT_PROGRAMS.agc
│ ├── TAGS_FOR_RELATIVE_SETLOC.agc
│ ├── THE_LUNAR_LANDING.agc
│ ├── THROTTLE_CONTROL_ROUTINES.agc
│ ├── TIME_OF_FREE_FALL.agc
│ ├── TJET_LAW.agc
│ ├── TRIM_GIMBAL_CONTROL_SYSTEM.agc
│ ├── UPDATE_PROGRAM.agc
│ └── WAITLIST.agc
├── README.md
├── Translations/
│ ├── CONTRIBUTING.ar.md
│ ├── CONTRIBUTING.az.md
│ ├── CONTRIBUTING.ca.md
│ ├── CONTRIBUTING.cz.md
│ ├── CONTRIBUTING.da.md
│ ├── CONTRIBUTING.de.md
│ ├── CONTRIBUTING.es.md
│ ├── CONTRIBUTING.fr.md
│ ├── CONTRIBUTING.gl.md
│ ├── CONTRIBUTING.gr.md
│ ├── CONTRIBUTING.hi_in.md
│ ├── CONTRIBUTING.id.md
│ ├── CONTRIBUTING.it.md
│ ├── CONTRIBUTING.ja.md
│ ├── CONTRIBUTING.jv.md
│ ├── CONTRIBUTING.ko_kr.md
│ ├── CONTRIBUTING.ku.md
│ ├── CONTRIBUTING.lt.md
│ ├── CONTRIBUTING.mn.md
│ ├── CONTRIBUTING.nl.md
│ ├── CONTRIBUTING.no.md
│ ├── CONTRIBUTING.pl.md
│ ├── CONTRIBUTING.pt_br.md
│ ├── CONTRIBUTING.sv.md
│ ├── CONTRIBUTING.tr.md
│ ├── CONTRIBUTING.uk.md
│ ├── CONTRIBUTING.vi.md
│ ├── CONTRIBUTING.zh_cn.md
│ ├── CONTRIBUTING.zh_tw.md
│ ├── README.ar.md
│ ├── README.as_in.md
│ ├── README.az.md
│ ├── README.bd_bn.md
│ ├── README.be.md
│ ├── README.ca.md
│ ├── README.cz.md
│ ├── README.da.md
│ ├── README.de.md
│ ├── README.es.md
│ ├── README.fa.md
│ ├── README.fi.md
│ ├── README.fr.md
│ ├── README.gl.md
│ ├── README.gr.md
│ ├── README.hi_in.md
│ ├── README.id.md
│ ├── README.it.md
│ ├── README.ja.md
│ ├── README.jv.md
│ ├── README.ko_kr.md
│ ├── README.ku.md
│ ├── README.lt.md
│ ├── README.ml.md
│ ├── README.mm.md
│ ├── README.mn.md
│ ├── README.ne.md
│ ├── README.nl.md
│ ├── README.no.md
│ ├── README.pl.md
│ ├── README.pt_br.md
│ ├── README.ro.md
│ ├── README.ru.md
│ ├── README.si.md
│ ├── README.sv.md
│ ├── README.tr.md
│ ├── README.uk.md
│ ├── README.vi.md
│ ├── README.zh_cn.md
│ └── README.zh_tw.md
├── bun.lockb
└── package.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.agc]
indent_style = tab
tab_width = 8
[*.md]
indent_style = space
indent_size = 2
================================================
FILE: .github/ISSUE_TEMPLATE/Discussion.md
================================================
---
name: Discussion & Questions
about: Discussion about the Apollo 11 source code is highly welcomed.
labels: "Type: Discussion"
---
================================================
FILE: .github/ISSUE_TEMPLATE/Humour.md
================================================
---
name: Humour / Jokes
about: Humourous issues are allowed, but please follow GitHub's Acceptable Use policies
labels: "Type: Humour"
---
================================================
FILE: .github/ISSUE_TEMPLATE/Proof_Comanche.md
================================================
---
name: Proof Comanche055
about: Template for Comanche055 Proof issues
title: "Proof "
---
Proof read transcribed code of [](//github.com/chrislgarry/Apollo-11/blob/master/Comanche055/.agc) against scans
**Multiple PRs for a few pages at a time are recommended!**
Lines:
Page: — ()
Reduced quality scans can be found [here][1]
[1]://ibiblio.org/apollo/ScansForConversion/Comanche055
================================================
FILE: .github/ISSUE_TEMPLATE/Proof_Luminary.md
================================================
---
name: Proof Luminary099
about: Template for Luminary099 Proof issues
title: "Proof "
---
Proof read transcribed code of [](//github.com/chrislgarry/Apollo-11/blob/master/Luminary099/.agc) against scans
**Multiple PRs for a few pages at a time are recommended!**
Lines:
Page: — ()
Reduced quality scans can be found [here][1]
[1]://ibiblio.org/apollo/ScansForConversion/Luminary099
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!-- Proofing PRs:
1. Title should follow "Proof [FILE NAME] #[PROOF ISSUE]", e.g:
"Proof ALARM_AND_ABORT #564"
2. Mention pages checked if you have not proofed the entire file
--><!-- New README/CONTRIBUTING PRs:
1. Title should follow "Add [LANGUAGE] [README|CONTRIBUTING]", e.g:
"Add Dutch README"
-->
================================================
FILE: .github/labeler.yml
================================================
"Type: Proof":
- "**/*.agc"
"Type: Meta":
- "**/MAIN.agc"
- "**/*.md"
- "*.md"
================================================
FILE: .github/workflows/label.yml
================================================
name: Pull Request Labeler
on:
schedule:
- cron: '0 */3 * * *'
jobs:
labeler:
runs-on: ubuntu-latest
steps:
- uses: paulfantom/periodic-labeler@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
LABEL_MAPPINGS_FILE: .github/labeler.yml
================================================
FILE: .github/workflows/markdownlint.yml
================================================
name: markdownlint
on: [push, pull_request]
jobs:
delivery:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v6
- name: Lint markdown
uses: DavidAnson/markdownlint-cli2-action@v19
with:
config: .markdownlint.yml
globs: '*.md,translations/*.md,Comanche055/*.md,Luminary099/*.md'
separator: ','
================================================
FILE: .gitignore
================================================
yaYUL.exe
node_modules
================================================
FILE: .markdownlint.yml
================================================
default: true
MD007: false
MD010: false
MD013: false
MD026: false
MD033: false
MD034: false
MD036: false
MD041: false
MD050: false
MD053: false
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
🌐
[Azerbaijani][AZ],
[bahasa Indonesia][ID],
[Basa Jawa][JV],
[Català][CA]،
[Čeština][CZ],
[Dansk][DA],
[Deutsch][DE],
[English][EN],
[Español][ES],
[Français][FR],
[Galego][GL],
[Italiano][IT],
[Kurdi][KU],
[Kurdî][KU],
[Lietuvių][LT],
[Mongolia][MN],
[Nederlands][NL],
[Norsk][NO],
[Polski][PL],
[Português][PT_BR],
[Svenska][SV],
[tiếng Việt][VI],
[Türkçe][TR],
[Ελληνικά][GR],
[Українська][UK]،
[العربية][AR],
[हिन्दी][HI_IN],
[한국어][KO_KR],
[日本語][JA],
[正體中文][ZH_TW],
[简体中文][ZH_CN],
[Basa Jawa][JV]
[AR]:Translations/CONTRIBUTING.ar.md
[AZ]:Translations/CONTRIBUTING.az.md
[CA]:Translations/CONTRIBUTING.ca.md
[CZ]:Translations/CONTRIBUTING.cz.md
[DA]:Translations/CONTRIBUTING.da.md
[DE]:Translations/CONTRIBUTING.de.md
[EN]:CONTRIBUTING.md
[ES]:Translations/CONTRIBUTING.es.md
[FR]:Translations/CONTRIBUTING.fr.md
[GL]:Translations/CONTRIBUTING.gl.md
[GR]:Translations/CONTRIBUTING.gr.md
[HI_IN]:Translations/CONTRIBUTING.hi_in.md
[ID]:Translations/CONTRIBUTING.id.md
[IT]:Translations/CONTRIBUTING.it.md
[JA]:Translations/CONTRIBUTING.ja.md
[JV]:Translations/CONTRIBUTING.jv.md
[KO_KR]:Translations/CONTRIBUTING.ko_kr.md
[KU]:Translations/CONTRIBUTING.ku.md
[LT]:Translations/CONTRIBUTING.lt.md
[MN]:Translations/CONTRIBUTING.mn.md
[NL]:Translations/CONTRIBUTING.nl.md
[NO]:Translations/CONTRIBUTING.no.md
[PL]:Translations/CONTRIBUTING.pl.md
[PT_BR]:Translations/CONTRIBUTING.pt_br.md
[SV]:Translations/CONTRIBUTING.sv.md
[TR]:Translations/CONTRIBUTING.tr.md
[UK]:Translations/CONTRIBUTING.uk.md
[VI]:Translations/CONTRIBUTING.vi.md
[ZH_CN]:Translations/CONTRIBUTING.zh_cn.md
[ZH_TW]:Translations/CONTRIBUTING.zh_tw.md
The source code in this repository was digitized manually from paper printouts, so typos and other discrepancies have been introduced accidentally. The code shall be modified to be made consistent with the following scanned printouts:
- [AGC printouts for Comanche][8]
- [AGC printouts for Luminary][9]
The following website can be used to easily navigate around the scanned printouts for both Comanche and Luminary: https://28gpc.csb.app/
## Useful Extensions
GitHub has syntax support for the AGC assembly language built-in. Unfortunately your code editor will not, however there are AGC language extensions that provides syntax highlighting for the following editors:
- [Atom][Atom]†
- [CodeBlocks][CodeBlocks]
- [Eclipse][Eclipse]
- [Kate][Kate]
- [ProgrammersNotepad][ProgrammersNotepad]
- [Sublime Text 3][Sublime Text]†
- [TextPad][TextPad]
- [Vim][Vim]
- [Visual Studio Code][VisualStudioCode]†
- [jEdit][jEdit]
† Supports automatic formatting
[Atom]:https://github.com/Alhadis/language-agc
[CodeBlocks]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/CodeBlocks
[Eclipse]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/Eclipse
[Kate]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/Kate
[ProgrammersNotepad]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/ProgrammersNotepad
[Sublime Text]:https://github.com/jimlawton/AGC-Assembly
[TextPad]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/TextPad
[Vim]:https://github.com/wsdjeg/vim-assembly
[VisualStudioCode]:https://github.com/wopian/agc-assembly
[jEdit]:https://github.com/virtualagc/virtualagc/tree/master/Contributed/SyntaxHighlight/jEdit
## Formatting
**Note:** GitHub and extensions marked above will ensure you're using the correct formatting automatically.
- Use tab indentation
- Use tab width of 8
- Trim trailing whitespace
## What do I check?
Any discrepancies between the scans and the source code in this repository.
### Comments
Comments in the transcribed code **MUST** match the scans **exactly**.
Common issues you should look out for while proofing include, but not limited to:
#### Typographic Errors
In some places, the original developers made typographic errors while writing comments. Some of these were mistakenly corrected during the initial digitisation, however the digitisation has also introduced typographic errors that were not present in the scans.
For example, if the digitised comments contained `SPACECRAFT`, but `SPAECRAFT` was printed in the scans, then the digitisation **MUST** be corrected to `SPAECRAFT` (missing `C`).
Likewise, if a word has a typo in the digitisation but is spelt correctly in the scans then the typo **MUST** be corrected.
#### Spaces
Spaces between two characters in comments **SHOULD** match the scans. In most cases (see the discussion in [#316][10]), this is:
- Single space for new words.
- Double space for new sentences.
- Triple space for indentations.
Not all pages in the scans follow this generalisation, if the scans only have a single space instead of a double space, use a single space.
### Line breaks
- Line breaks *with* `R0000` in column 1 should match the scans exactly.
- Line breaks *with**__out__* `R0000` in column 1 should contain only 1 or 2 blank lines in a row.
- If there are more than 2 blank lines breaks, strip the extra line breaks.
- Lines with `R0000` in column 1 do not count towards this.
- In the source images, these were created by an unprinted digit in column 8. A 2 there forced a double space (single blank line) and a 3 forced a triple space (double blank line). Values 4-8 were defined but never used. Read more about it in [#159][7]
For example the following:
```plain
R0819 SUBROUTINE TO SKIP...
R0820
0821 LAMPTEST CS IMODES33
```
Should become:
```plain
R0819 SUBROUTINE TO SKIP...
R0820
0820 LAMPTEST CS IMODES33
```
## Note
Before you make a PR, please make sure your changes are consistent with the scans!
[0]:https://github.com/chrislgarry/Apollo-11/pull/new/master
[1]:http://www.ibiblio.org/apollo/ScansForConversion/Luminary099/
[2]:http://www.ibiblio.org/apollo/ScansForConversion/Comanche055/
[6]:https://github.com/wopian/agc-assembly#user-settings
[7]:https://github.com/chrislgarry/Apollo-11/issues/159
[8]:http://www.ibiblio.org/apollo/ScansForConversion/Comanche055/
[9]:http://www.ibiblio.org/apollo/ScansForConversion/Luminary099/
[10]:https://github.com/chrislgarry/Apollo-11/pull/316#pullrequestreview-102892741
================================================
FILE: Comanche055/AGC_BLOCK_TWO_SELF-CHECK.agc
================================================
# Copyright: Public domain.
# Filename: AGC_BLOCK_TWO_SELF-CHECK.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), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1394-1403
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
# from the Colossus249/ file of the same
# name, using Comanche055 page images.
#
# 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
# Page 1394
# PROGRAM DESCRIPTION DATE 20 DECEMBER 1967
# PROGRAM NAME - SELF-CHECK LOG SECTION AGC BLOCK TWO SELF-CHECK
# MOD NO - 1 ASSEMBLY SUBROUTINE UTILITYM REV 25
# MOD BY - GAUNTT
#
#
# FUNCTIONAL DESCRIPTION
#
# PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
# PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
# STARTING VERB.
# THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
# THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK , ONE AT A TIME.
# IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
# FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
# THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
# A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
# OCTAL, TO LOAD INTO SMODE.
# +-4 ERASABLE MEMORY
# +-5 FIXED MEMORY
# +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
# -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
# +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
#
#
# WARNINGS
# USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
# SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
#
#
# CALLING SEQUENCE
#
# TO CALL SELF-CHECK KEY IN
# V 21 N 27 E OPTION NUMBER E
# TO CALL SHOW-BANKSUM KEY IN
# V 91 E DISPLAYS FIRST BANK
# V 33 E PROCEED, DISPLAYS NEXT BANK
#
#
# EXIT MODES, NORMAL AND ALARM
#
# SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
# COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
# THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
# SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP
#
#
#
# OUTPUT
# Page 1395
# SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
# TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
# INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
# IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
# INITIATED FRESH START (SLAP1).
# SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
# THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
#
#
# ERASABLE INITIALIZATION REQUIRED
# ACCOMPLISHED BY FRESH START
# SMODE SET TO +0
#
# DEBRIS
# ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
# EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
# E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
BANK 25
SETLOC SELFCHEC
BANK
COUNT 43/SELF
SBIT1 EQUALS BIT1
SBIT2 EQUALS BIT2
SBIT3 EQUALS BIT3
SBIT4 EQUALS BIT4
SBIT5 EQUALS BIT5
SBIT6 EQUALS BIT6
SBIT7 EQUALS BIT7
SBIT8 EQUALS BIT8
SBIT9 EQUALS BIT9
SBIT10 EQUALS BIT10
SBIT11 EQUALS BIT11
SBIT12 EQUALS BIT12
SBIT13 EQUALS BIT13
SBIT14 EQUALS BIT14
SBIT15 EQUALS BIT15
S+ZERO EQUALS ZERO
S+1 EQUALS BIT1
S+2 EQUALS BIT2
S+3 EQUALS THREE
S+4 EQUALS FOUR
S+5 EQUALS FIVE
# Page 1396
S+6 EQUALS SIX
S+7 EQUALS SEVEN
S8BITS EQUALS LOW8 # 00377
CNTRCON = OCT50 # USED IN CNTRCHK
ERASCON1 OCTAL 00061 # USED IN ERASCHK
ERASCON2 OCTAL 01373 # USED IN ERASCHK
ERASCON6 = OCT1400 # USED IN ERASCHK
ERASCON3 OCTAL 01461 # USED IN ERASCHK
ERASCON4 OCTAL 01773 # USED IN ERASCHK
S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK
SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK
-MAXADRS = HI5 # FOR ROPECHK
SIXTY OCTAL 00060
SUPRCON OCTAL 60017 # USED IN ROPECHK
S13BITS OCTAL 17777
CONC+S1 OCTAL 25252 # USED IN CYCLSHFT
CONC+S2 OCTAL 52400 # USED IN CYCLSHFT
ERASCON5 OCTAL 76777
S-7 = OCT77770
S-4 EQUALS NEG4
S-3 EQUALS NEG3
S-2 EQUALS NEG2
S-1 EQUALS NEGONE
S-ZERO EQUALS NEG0
EBANK= LST1
ADRS1 ADRES SKEEP1
SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT
# IN SELFRET WHEN GOING FROM SELFCHK TO
# SHOWSUM AND PUT IN SKEEP1 WHEN GOING
# FROM SHOWSUM TO SELF-CHECK.
PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
EXTEND
BZF ERRORS # NO
EXTEND
DCA SKEEP5
INDEX SKEEP7
DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS
CA S+ZERO
TS ERESTORE
ERRORS INHINT
CA Q
TS SFAIL # SAVE Q FOR FAILURE LOCATION
TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT
INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
TCALARM2 TC ALARM2
OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR
CCS SMODE
SIDLOOP CA S+ZERO
# Page 1397
TS SMODE
TC SELFCHK # GO TO IDLE LOOP
TC SFAIL # CONTINUE WITH SELF-CHECK
-1CHK CCS A
TCF PRERRORS
TCF PRERRORS
CCS A
TCF PRERRORS
TC Q
SMODECHK EXTEND
QXCH SKEEP1
TC CHECKNJ # CHECK FOR NEW JOB
CCS SMODE
TC SOPTIONS
TC SMODECHK +2 # TO BACKUP IDLE LOOP
TC SOPTIONS
INCR SCOUNT
TC SKEEP1 # CONTINUE WITH SELF-CHECK
SOPTIONS AD S-7
EXTEND
BZMF +2 # FOR OPTIONS BELOW NINE.
BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP.
INCR SCOUNT # FOR OPTIONS BELOW NINE.
AD S+7
INDEX A
TC SOPTION1
SOPTION1 TC SKEEP1 # WAS TC+TCF
SOPTION2 TC SKEEP1 # WAS IN:OUT1
SOPTION3 TC SKEEP1 # WAS COUNTCHK
SOPTION4 TC ERASCHK
SOPTION5 TC ROPECHK
SOPTION6 TC SKEEP1
SOPTION7 TC SKEEP1
SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK
CHECKNJ EXTEND
QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
CADR ADVAN
SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE
# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
# SKEEP6 HOLDS B(X+1).
# SKEEP5 HOLDS B(X).
# SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
# Page 1398
# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
# SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
# ERASCHK TAKES APPROXMATELY 7 SECONDS
ERASCHK CA S+1
TS SKEEP2
0EBANK CA S+ZERO
TS EBANK
CA ERASCON3 # 01461
TS SKEEP7 # STARTING ADDRESS
CA S10BITS # 01777
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
E134567B CA ERASCON6 # 01400
TS SKEEP7 # STARTING ADDRESS
CA S10BITS # 01777
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
2EBANK CA ERASCON6 # 01400
TS SKEEP7 # STARTING ADDRESS
CA ERASCON4 # 01773
TS SKEEP3 # LAST ADDRESS CHECKED
TC ERASLOOP
NOEBANK TS SKEEP2 # +0
CA ERASCON1 # 00061
TS SKEEP7 # STARTING ADDRESS
CA ERASCON2 # 01373
TS SKEEP3 # LAST ADDRESS CHECKED
ERASLOOP INHINT
CA EBANK # STORES C(EBANK)
TS SKEEP4
EXTEND
NDX SKEEP7
DCA 0000
DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
CA SKEEP7
TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
TS L
INCR L
NDX A
DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1
NDX SKEEP7
CS 0001 # CS X+1
NDX SKEEP7
AD 0000 # AD X
TC -1CHK
CA ERESTORE # HAS ERASABLE BEEN RESTORED
# Page 1399
EXTEND
BZF ELOOPFIN # YES, EXIT ERASLOOP.
EXTEND
NDX SKEEP7
DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1
NDX SKEEP7
DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1
NDX SKEEP7
CS 0000 # CS X
NDX SKEEP7
AD 0001 # AD X+1
TC -1CHK
CA ERESTORE # HAS ERASABLE BEEN RESTORED
EXTEND
BZF ELOOPFIN # YES, EXIT ERASLOOP.
EXTEND
DCA SKEEP5
NDX SKEEP7
DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1
CA S+ZERO
TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
ELOOPFIN RELINT
TC CHECKNJ # CHECK FOR NEW JOB
CA SKEEP4 # REPLACES B(EBANK)
TS EBANK
INCR SKEEP7
CS SKEEP7
AD SKEEP3
EXTEND
BZF +2
TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
CCS SKEEP2
TC NOEBANK
INCR SKEEP2 # PUT +1 IN SKEEP2.
CA EBANK
AD SBIT9
TS EBANK
AD ERASCON5 # 76777, CHECK FOR BANK E2
EXTEND
BZF 2EBANK
CCS EBANK
TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
CA ERASCON6 # END OF ERASCHK
TS EBANK
# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
CNTRCHK CA CNTRCON # 00050
CNTRLOOP TS SKEEP2
AD SBIT4 # +10 OCTAL
INDEX A
# Page 1400
CS 0000
CCS SKEEP2
TC CNTRLOOP
# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
CYCLSHFT CA CONC+S1 # 25252
TS CYR # C(CYR) = 12525
TS CYL # C(CYL) = 52524
TS SR # C(SR) = 12525
TS EDOP # C(EDOP) = 00125
AD CYR # 37777 C(CYR) = 45252
AD CYL # 00-12524 C(CYL) = 25251
AD SR # 00-25251 C(SR) = 05252
AD EDOP # 00-25376 C(EDOP) = +0
AD CONC+S2 # C(CONC+S2) = 52400
TC -1CHK
AD CYR # 45252
AD CYL # 72523
AD SR # 77775
AD EDOP # 77775
AD S+1 # 77776
TC -1CHK
INCR SCOUNT +1
TC SMODECHK
# SKEEP1 HOLDS SUM
# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
# (04000 TO 07777 IN FXFX BANKS)
# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
# SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
ROPECHK CA S-ZERO # *
TS SKEEP6 # * -0 FOR ROPECHK.
STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK
TS SKEEP4 # BANK NUMBER
CA S+1
COMMFX TS SKEEP7
CA S+ZERO
TS SKEEP1
TS SKEEP3
CA S+1
TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
COMADRS CA SKEEP4
TS L # TO SET SUPER BANK
# Page 1401
MASK HI5
AD SKEEP3
TC SUPDACAL # SUPER DATA CALL
TC ADSUM
AD SBIT11 # 02000
TC ADRSCHK
FXFX CS A
TS SKEEP7
EXTEND
BZF +3
CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02
TC +2
CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03
TS SKEEP3
CA S+ZERO
TS SKEEP1
CA S+1
TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
FXADRS INDEX SKEEP3
CA 0000
TC ADSUM
TC ADRSCHK
ADSUM TS SKEEP2
AD SKEEP1
TS SKEEP1
CAF S+ZERO
AD SKEEP1
TS SKEEP1
CS SKEEP2
AD SKEEP3
TC Q
ADRSCHK LXCH A
CA SKEEP3
MASK LOW10 # RELATIVE ADDRESS
AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
EXTEND
BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS.
CCS SKEEP5 # IS CHECKSUM FINISHED
TC +3 # NO
TC +2 # NO
TC SOPTION # GO TO ROPECHK SHOWSUM OPTION
CCS L # -0 MEANS A TC SELF WORD.
TC CONTINU
TC CONTINU
TC CONTINU
CCS SKEEP5
TC CONTINU +1
# Page 1402
CA S-1
TC CONTINU +1 # AD IN THE BUGGER WORD
CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
TS SKEEP5
CCS SKEEP6 # *
CCS NEWJOB # * +1, SHOWSUM
TC CHANG1 # *
TC +2 # *
TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK
ADRS+1 INCR SKEEP3
CCS SKEEP7
TC COMADRS
TC COMADRS
TC FXADRS
TC FXADRS
NXTBNK CS SKEEP4
AD LSTBNKCH # LAST BANK TO BE CHECKED
EXTEND
BZF ENDSUMS # END OF SUMMING OF BANKS.
CA SKEEP4
AD SBIT11
TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
TC CHKSUPR
17TO20 CA SBIT15
ADS SKEEP4 # SET FOR BANK 20
TC GONXTBNK
CHKSUPR MASK HI5
EXTEND
BZF NXTSUPR # INCREMENT SUPER BANK
27TO30 AD S13BITS
EXTEND
BZF +2 # BANK SET FOR 30
TC GONXTBNK
CA SIXTY # FIRST SUPER BANK
ADS SKEEP4
TC GONXTBNK
NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL
ADS SKEEP4 # ERC BIT OF THE 37 TO 40 ADVANCE.
GONXTBNK CCS SKEEP7
TC COMMFX
CA S+1
TC FXFX
CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS.
TC COMMFX
SOPTION CA SKEEP4
MASK HI5 # = BANK BITS
TC LEFT5
# Page 1403
TS L # BANK NUMBER BEFORE SUPER BANK
CA SKEEP4
MASK S8BITS # = SUPER BANK BITS
EXTEND
BZF SOPT # BEFORE SUPER BANK
TS SR # SUPER BANK NECESSARY
CA L
MASK SEVEN
AD SR
TS L # BANK NUMBER WITH SUPER BANK
SOPT CA SKEEP6 # *
EXTEND # *
BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK.
TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE.
TC +2
TC +2
AD S+1
TS SKEEP1
BNKCHK CS L # = - BANK NUMBER
AD SKEEP1
AD S-1
TC -1CHK # CHECK SUM
TC NXTBNK
EBANK= NEWJOB
LSTBNKCH BBCON* # * CONSTANT, LAST BANK.
SBANK= LOWSUPER
================================================
FILE: Comanche055/ALARM_AND_ABORT.agc
================================================
# Copyright: Public domain.
# Filename: ALARM_AND_ABORT.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1493-1496
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same
# name, and page images. Corrected various
# typos in the transcription of program
# comments, and these should be back-ported
# to Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1493
# THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION. IT MAY BE CALLED
# EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
#
# CALLING SEQUENCE IS AS FOLLOWS:
#
# TC ALARM
# OCT NNNNN
# # (RETURNS HERE)
BLOCK 02
SETLOC FFTAG7
BANK
EBANK= FAILREG
COUNT 02/ALARM
# ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
ALARM INHINT
CA Q
ALARM2 TS ALMCADR
INDEX Q
CA 0
BORTENT TS L
PRIOENT CA BBANK
+1 EXTEND
ROR SUPERBNK # ADD SUPER BITS.
TS ALMCADR +1
LARMENT CA Q # STORE RETURN FOR ALARM
TS ITEMP1
CA LOC
TS LOCALARM
CA BANKSET
TS BANKALRM
CHKFAIL1 CCS FAILREG # IS ANYTHING IN FAILREG
TCF CHKFAIL2 # YES TRY NEXT REG
LXCH FAILREG
TCF PROGLARM # TURN ALARM LIGHT ON FOR FIRST ALARM
CHKFAIL2 CCS FAILREG +1
TCF FAIL3
LXCH FAILREG +1
TCF MULTEXIT
FAIL3 CA FAILREG +2
# Page 1494
MASK POSMAX
CCS A
TCF MULTFAIL
LXCH FAILREG +2
TCF MULTEXIT
PROGLARM CS DSPTAB +11D
MASK OCT40400
ADS DSPTAB +11D
MULTEXIT XCH ITEMP1 # OBTAIN RETURN ADDRESS IN A
RELINT
INDEX A
TC 1
MULTFAIL CA L
AD BIT15
TS FAILREG +2
TCF MULTEXIT
# PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
# AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4. EXAMPLE FOLLOWS,
# CAF OCTXX # ALARM CODE
# TC BANKCALL
# CADR PRIOLARM
#
# ... ...
# ... ...
# ... ... # ASTRONAUT RETURN
# TC PHASCHNG # IMMEDIATE RETURN TO USER. RESTART
# OCT X.1 # PHASE CHANGE FOR PRIO DISPLAY
BANK 10
SETLOC DISPLAYS
BANK
COUNT 10/DSPLA
PRIOLARM INHINT # * * * KEEP IN DISPLAY ROUTINES BANK
TS L # SAVE ALARM CODE
CA BUF2 # 2 CADR OF PRIOLARM USER
TS ALMCADR
CA BUF2 +1
TC PRIOENT +1 # * LEAVE L ALONE
-2SEC DEC -200 # *** DONT MOVE
CAF V05N09
TCF PRIODSPR
# Page 1495
BLOCK 02
SETLOC FFTAG13
BANK
COUNT 02/ALARM
BAILOUT INHINT
CA Q
TS ALMCADR
TC BANKCALL
CADR VAC5STOR
INDEX ALMCADR
CAF 0
TC BORTENT
OCT40400 OCT 40400
INHINT
WHIMPER CA TWO
AD Z
TS BRUPT
RESUME
TC POSTJUMP # RESUME SENDS CONTROL HERE
CADR ENEMA
SETLOC FFTAG7
BANK
POODOO INHINT
CA Q
TS ALMCADR
TC BANKCALL
CADR VAC5STOR # STORE ERASABLES FOR DEBUGGING PURPOSES.
INDEX ALMCADR
CAF 0
ABORT2 TC BORTENT
OCT77770 OCT 77770 # DONT MOVE
CA V37FLBIT # IS AVERAGE G ON
MASK FLAGWRD7
CCS A
TC WHIMPER -1 # YES. DONT DO POODOO. DO BAILOUT.
TC DOWNFLAG
ADRES STATEFLG
TC DOWNFLAG
# Page 1496
ADRES REINTFLG
TC DOWNFLAG
ADRES NODOFLAG
TC BANKCALL
CADR MR.KLEAN
TC WHIMPER
CCSHOLE INHINT
CA Q
TS ALMCADR
TC BANKCALL
CADR VAC5STOR
CA OCT1103
TC ABORT2
OCT1103 OCT 1103
CURTAINS INHINT
CA Q
TC ALARM2
OCT217 OCT 00217
TC ALMCADR # RETURN TO USER
DOALARM EQUALS ENDOFJOB
# CALLING SEQUENCE FOR VARALARM
#
# CAF (ALARM)
# TC VARALARM
#
# VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
VARALARM INHINT
TS L # SAVE USERS ALARM CODE
CA Q # SAVE USERS Q
TS ALMCADR
TC PRIOENT
OCT14 OCT 14 # DONT MOVE
TC ALMCADR # RETURN TO USER
ABORT EQUALS BAILOUT # *** TEMPORARY UNTIL ABORT CALLS OUT
================================================
FILE: Comanche055/ANGLFIND.agc
================================================
# Copyright: Public domain.
# Filename: ANGLFIND.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), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 399-411
# Mod history: 2009-05-09 RSB Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
# 2009-05-22 RSB In NOGOM2, TC ZEROEROR corrected to
# CADR ZEROEROR.
#
# 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
# Page 399
BANK 15
SETLOC KALCMON1
BANK
EBANK= BCDU
COUNT 22/KALC
KALCMAN3 TC INTPRET
RTB
READCDUK # PICK UP CURRENT CDU ANGLES
STORE BCDU # STORE THE INITIAL S/C ANGLES
AXC,2 TLOAD # COMPUTE THE TRANSFORMATION FROM
MIS # INITIAL S/C AXES TO STABLE MEMBER AXES
BCDU # (MIS)
CALL
CDUTODCM
AXC,2 TLOAD # COMPUTE THE TRANSFORMATION FROM
MFS # FINAL S/C AXES TO STABLE MEMBER AXES
CPHI # (MFS)
CALL
CDUTODCM
SECAD AXC,1 CALL # MIS AND MFS ARRAYS CALCULATED $2
MIS
TRANSPOS
VLOAD
STADR
STOVL TMIS +12D
STADR
STOVL TMIS +6
STADR
STORE TMIS # TMIS = TRANSPOSE(MIS) SCALED BY 2
AXC,1 AXC,2
TMIS
MFS
CALL
MXM3
VLOAD STADR
STOVL MFI +12D
STADR
STOVL MFI +6
STADR
STORE MFI # MFI = TMIS MFS (SCALED BY 4)
SETPD CALL # TRANSPOSE MFI IN PD LIST
18D
TRNSPSPD
VLOAD STADR
STOVL TMFI +12D
STADR
STOVL TMFI +6
# Page 400
STADR
STORE TMFI # TMFI = TRANSPOSE (MFI) SCALED BY 4
# CALCULATE COFSKEW AND MFISYM
DLOAD DSU
TMFI +2
MFI +2
PDDL DSU # CALCULATE COF SCALED BY 2/SIN(AM)
MFI +4
TMFI +4
PDDL DSU
TMFI +10D
MFI +10D
VDEF
STORE COFSKEW # EQUALS MFISKEW
# CALCULATE AM AND PROCEED ACCORDING TO ITS MAGNITUDE
DLOAD DAD
MFI
MFI +16D
DSU DAD
DP1/4TH
MFI +8D
STORE CAM # CAM = (MFI0+MFI4+MFI8-1)/2 HALF SCALE
ARCCOS
STORE AM # AM=ARCCOS(CAM) (AM SCALED BY 2)
DSU BPL
MINANG
CHECKMAX
EXIT # MANEUVER LESS THAN 0.25 DEG
INHINT # GO DIRECTLY INTO ATTITUDE HOLD
CS ONE # ABOUT COMMANDED ANGLES
TS HOLDFLAG # NOGO WILL STOP ANY RATE AND SET UP FOR A
TC LOADCDUD # GOOD RETURN
TCF NOGO
CHECKMAX DLOAD DSU
AM
MAXANG
BPL VLOAD
ALTCALC # UNIT
COFSKEW # COFSKEW
UNIT
STORE COF # COF IS THE MANEUVER AXIS
GOTO # SEE IF MANEUVER GOES THRU GIMBAL LOCK
LOCSKIRT
ALTCALC VLOAD VAD # IF AM GREATER THAN 170 DEGREES
MFI
# Page 401
TMFI
VSR1
STOVL MFISYM
MFI +6
VAD VSR1
TMFI +6
STOVL MFISYM +6
MFI +12D
VAD VSR1
TMFI +12D
STORE MFISYM +12D # MFISYM=(MFI+TMFI)/2 SCALED BY 4
# CALCULATE COF
DLOAD SR1
CAM
PDDL DSU # PD0 CAM $4
DPHALF
CAM
BOVB PDDL # PD2 1 - CAM $2
SIGNMPAC
MFISYM +16D
DSU DDV
0
2
SQRT PDDL # COFZ = SQRT(MFISYM8-CAM)/(1-CAM)
MFISYM +8D # $ ROOT 2
DSU DDV
0
2
SQRT PDDL # COFY = SQRT(MFISYM4-CAM)/(1-CAM) $ROOT2
MFISYM
DSU DDV
0
2
SQRT VDEF # COFX = SQRT(MFISYM-CAM)/(1-CAM) $ROOT 2
UNIT
STORE COF
# DETERMINE LARGEST COF AND ADJUST ACCORDINGLY
COFMAXGO DLOAD DSU
COF
COF +2
BMN DLOAD # COFY G COFX
COMP12
COF
DSU BMN
COF +4
# Page 402
METHOD3 # COFZ G COFX OR COFY
GOTO
METHOD1 # COFX G COFY OR COFZ
COMP12 DLOAD DSU
COF +2
COF +4
BMN
METHOD3 # COFZ G COFY OR COFX
METHOD2 DLOAD BPL # COFY MAX
COFSKEW +2 # UY
U2POS
VLOAD VCOMP
COF
STORE COF
U2POS DLOAD BPL
MFISYM +2 # UX UY
OKU21
DLOAD DCOMP # SIGN OF UX OPPOSITE TO UY
COF
STORE COF
OKU21 DLOAD BPL
MFISYM +10D # UY UZ
LOCSKIRT
DLOAD DCOMP # SIGN OF UZ OPPOSITE TO UY
COF +4
STORE COF +4
GOTO
LOCSKIRT
METHOD1 DLOAD BPL # COFX MAX
COFSKEW # UX
U1POS
VLOAD VCOMP
COF
STORE COF
U1POS DLOAD BPL
MFISYM +2 # UX UY
OKU12
DLOAD DCOMP
COF +2 # SIGN OF UY OPPOSITE TO UX
STORE COF +2
OKU12 DLOAD BPL
MFISYM +4 # UX UZ
LOCSKIRT
DLOAD DCOMP # SIGN OF UZ OPPOSITE TO UY
COF +4
STORE COF +4
GOTO
LOCSKIRT
METHOD3 DLOAD BPL # COFZ MAX
# Page 403
COFSKEW +4 # UZ
U3POS
VLOAD VCOMP
COF
STORE COF
U3POS DLOAD BPL
MFISYM +4 # UX UZ
OKU31
DLOAD DCOMP
COF # SIGN OF UX OPPOSITE TO UZ
STORE COF
OKU31 DLOAD BPL
MFISYM +10D # UY UZ
LOCSKIRT
DLOAD DCOMP
COF +2 # SIGN OF UY OPPOSITE TO UZ
STORE COF +2
GOTO
LOCSKIRT
# Page 404
# MATRIX OPERATIONS
MXM3 SETPD # MXM3 MULTIPLIES 2 3X3 MATRICES
0 # AND LEAVES RESULT IN PD LIST
DLOAD* PDDL* # ADDRESS OF 1ST MATRIX IN XR1
12D,2 # ADDRESS OF 2ND MATRIX IN XR2
6,2
PDDL* VDEF # DEFINE VECTOR M2(COL 1)
0,2
MXV* PDDL* # M1XM2(COL 1) IN PD
0,1
14D,2
PDDL* PDDL*
8D,2
2,2
VDEF MXV* # DEFINE VECTOR M2(COL 2)
0,1
PDDL* PDDL* # M1XM2(COL 2) IN PD
16D,2
10D,2
PDDL* VDEF # DEFINE VECTOR M2(COL 3)
4,2
MXV* PUSH # M1XM2(COL 3) IN PD
0,1
GOTO
TRNSPSPD # REVERSE ROWS AND COLS IN PD AND
# RETURN WITH M1XM2 IN PD LIST
TRANSPOS SETPD VLOAD* # TRANSPOS TRANSPOSES A 3X3 MATRIX
0 # AND LEAVES RESULT IN PD LIST
0,1 # MATRIX ADDRESS IN XR1
PDVL* PDVL*
6,1
12D,1
PUSH # MATRIX IN PD
TRNSPSPD DLOAD PDDL # ENTER WITH MATRIX IN PD LIST
2
6
STODL 2
STADR
STODL 6
4
PDDL
12D
STODL 4
STADR
STODL 12D
10D
PDDL
# Page 405
14D
STODL 10D
STADR
STORE 14D
RVQ # RETURN WITH TRANSPOSED MATRIX IN PD LIST
MINANG DEC .00069375
MAXANG DEC .472222
# GIMBAL LOCK CONSTANTS
# D = MGA CORRESPONDING TO GIMBAL LOCK = 60 DEGREES
# NGL = BUFFER ANGLE (TO AVOID DIVISIONS BY ZERO) = 2 DEGREES
SD DEC .433015 # = SIN(D) $2
K3S1 DEC .86603 # = SIN(D) $2
K4 DEC -.25 # = - COS(D) $2
K4SQ DEC .125 # = COS(D)COS(D) $2
SNGLCD DEC .008725 # = SIN(NGL)COS(D) $2
CNGL DEC .499695 # = COS(NGL) $2
READCDUK INHINT # LOAD T(MPAC) WITH THE CURRENT CDU ANGLES
CA CDUZ
TS MPAC +2
EXTEND
DCA CDUX
RELINT
TCF TLOAD +6
BANK 16
SETLOC KALCMON2
BANK
COUNT* $$/KALC
CDUTODCM AXT,1 SSP # SUBROUTINE TO COMPUTE DIRECTION COSINE
OCT 3 # MATRIX RELATING S/C AXES TO STABLE
S1 # MEMBER AXES FROM 3 CDU ANGLES IN T(MPAC)
OCT 1 # SET XR1, S1 AND PD FOR LOOP
STORE 7
SETPD
0
LOOPSIN SLOAD* RTB
10D,1
CDULOGIC
STORE 10D # LOAD PD WITH 0 SIN(PHI)
SIN PDDL # 2 COS(PHI)
10D # 4 SIN(THETA)
COS PUSH # 6 COS(THETA)
TIX,1 DLOAD # 8 SIN(PSI)
LOOPSIN # 10 COS(PSI)
6
DMP SL1
10D
# Page 406
STORE 0,2
DLOAD
4
DMP PDDL
0 # (PD6 SIN(THETA)SIN(PHI))
6
DMP DMP
8D
2
SL1 BDSU
12D
SL1
STORE 2,2
DLOAD
2
DMP PDDL # (PD7 COS(PHI)SIN(THETA)) SCALED 4
4
6
DMP DMP
8D
0
SL1
DAD SL1
14D
STORE 4,2
DLOAD
8D
STORE 6,2
DLOAD
10D
DMP SL1
2
STORE 8D,2
DLOAD
10D
DMP DCOMP
0
SL1
STORE 10D,2
DLOAD
4
DMP DCOMP
10D
SL1
STORE 12D,2
DLOAD
DMP SL1 # (PUSH UP 7)
8D
PDDL DMP # (PD7 COS(PHI)SIN(THETA)SIN(PSI)) SCALE4
6
# Page 407
0
DAD SL1 # (PUSH UP 7)
STADR # C7=COS(PHI)SIN(THETA)SIN(PSI)
STORE 14D,2
DLOAD
DMP SL1 # (PUSH UP 6)
8D
PDDL DMP # (PD6 SIN(THETA)SIN(PHI)SIN(PSI)) SCALE4
6
2
DSU SL1 # (PUSH UP 6)
STADR
STORE 16D,2 # C8=-SIN(THETA)SIN(PHI)SIN(PSI)
RVQ # +COS(THETA)COS(PHI)
ENDOCM EQUALS
BANK 15
SETLOC KALCMON1
BANK
# CALCULATION OF THE MATRIX DEL......
#
# * * --T *
# DEL = (IDMATRIX)COS(A)+UU (1-COS(A))+UX SIN(A) SCALED 1
#
# -
# WHERE U IS A UNIT VECTOR (DP SCALED 2) ALONG THE AXIS OF ROTATION.
# A IS THE ANGLE OF ROTATION (DP SCALED 2)
# -
# UPON ENTRY THE STARTING ADDRESS OF U IS COF, AND A IS IN MPAC
COUNT 22/KALC
DELCOMP SETPD PUSH # MPAC CONTAINS THE ANGLE A
0
SIN PDDL # PD0 = SIN(A)
COS PUSH # PD2 = COS(A)
SR2 PDDL # PD2 = COS(A) $8
BDSU BOVB # PD4 = 1-COS(A) $2
DPHALF
SIGNMPAC
# COMPUTE THE DIAGONAL COMPONENTS OF DEL
PDDL
COF
DSQ DMP
4
DAD SL3
# Page 408
2
BOVB
SIGNMPAC
STODL DEL # UX UX(U-COS(A)) +COS(A) $1
COF +2
DSQ DMP
4
DAD SL3
2
BOVB
SIGNMPAC
STODL DEL +8D # UY UY(1-COS(A)) +COS(A) $1
COF +4
DSQ DMP
4
DAD SL3
2
BOVB
SIGNMPAC
STORE DEL +16D # UZ UZ(1-COS(A)) +COS(A) $1
# COMPUTE THE OFF DIAGONAL TERMS OF DEL
DLOAD DMP
COF
COF +2
DMP SL1
4
PDDL DMP # D6 UX UY (1-COS A) $ 4
COF +4
0
PUSH DAD # D8 UZ SIN A $ 4
6
SL2 BOVB
SIGNMPAC
STODL DEL +6
BDSU SL2
BOVB
SIGNMPAC
STODL DEL +2
COF
DMP DMP
COF +4
4
SL1 PDDL # D6 UX UZ (1-COS A ) $ 4
COF +2
DMP PUSH # D8 UY SIN(A)
0
DAD SL2
6
# Page 409
BOVB
SIGNMPAC
STODL DEL +4 # UX UZ (1-COS(A))+UY SIN(A)
BDSU SL2
BOVB
SIGNMPAC
STODL DEL +12D # UX UZ (U-COS(A))-UY SIN(A)
COF +2
DMP DMP
COF +4
4
SL1 PDDL # D6 UY UZ (1-COS(A)) $ 4
COF
DMP PUSH # D6 UX SIN(A)
0
DAD SL2
6
BOVB
SIGNMPAC
STODL DEL +14D # UY UZ(1-COS(A)) +UX SIN(A)
BDSU SL2
BOVB
SIGNMPAC
STORE DEL +10D # UY UZ (1-COS(A)) -UX SIN(A)
RVQ
# DIRECTION COSINE MATRIX TO CDU ANGLE ROUTINE
# X1 CONTAINS THE COMPLEMENT OF THE STARTING ADDRESS FOR MATRIX (SCALED 2)
# LEAVES CDU ANGLES SCALED 2PI IN V(MPAC)
# COS(MGA) WILL BE LEFT IN S1 (SCALED 1)
#
# THE DIRECTION COSINE MATRIX RELATING S/C AXES TO STABLE MEMBER AXES CAN BE WRITTEN AS***
#
# C =COS(THETA)COS(PSI)
# 0
# C =-COS(THETA)SIN(PSI)COS(PHI)+SI (THETA)SIN(PHI)
# 1
# C =COS(THETA)SIN(PSI)SIN(PHI) + S N(THETA)COS(PHI)
# 2
# C =SIN(PSI)
# 3
# C =COS(PSI)COS(PHI)
# 4
# C =-COS(PSI)SIN(PHI)
# 5
# C =-SIN(THETA)COS(PSI)
# 6
# C =SIN(THETA)SIN(PSI)COS(PHI)+COS THETA)SIN(PHI)
# 7
# Page 410
# C =-SIN(THETA)SIN(PSI)SIN(PHI)+COS(THETA)COS(PHI)
# 8
#
# WHERE PHI = OGA
# THETA = IGA
# PSI = MGA
DCMTOCDU DLOAD* ARCSIN
6,1
PUSH COS # PD +0 PSI
SL1 BOVB
SIGNMPAC
STORE S1
DLOAD* DCOMP
12D,1
DDV ARCSIN
S1
PDDL* BPL # PD +2 THETA
0,1 # MUST CHECK THE SIGN OF COS(THETA)
OKTHETA # TO DETERMINE THE PROPER QUADRANT
DLOAD DCOMP
BPL DAD
SUHALFA
DPHALF
GOTO
CALCPHI
SUHALFA DSU
DPHALF
CALCPHI PUSH
OKTHETA DLOAD* DCOMP
10D,1
DDV ARCSIN
S1
PDDL* BPL # PUSH DOWN PHI
8D,1
OKPHI
DLOAD DCOMP # PUSH UP PHI
BPL DAD
SUHALFAP
DPHALF
GOTO
VECOFANG
SUHALFAP DSU GOTO
DPHALF
VECOFANG
OKPHI DLOAD # PUSH UP PHI
VECOFANG VDEF RVQ
# Page 411
# ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
NOGOM2 INHINT # THIS LOCATION ACCESSED BY A BZMF NOGO -2
TC BANKCALL
CADR ZEROEROR
NOGO INHINT
TC STOPRATE
# TERMINATE MANEUVER
CAF TWO # NOTE - ALL RETURNS ARE NOW MADE VIA
TC WAITLIST # GOODEND
EBANK= BCDU
2CADR ENDMANU
TCF ENDOFJOB
================================================
FILE: Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc
================================================
# Copyright: Public domain.
# Filename: ASSEMBLY_AND_OPERATION_INFORMATION.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), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Mod history: 2009-05-05 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# 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
# Page 2
# ASSEMBLY AND OPERATIONS INFORMATION
# TAGS FOR RELATIVE SETLOC AND BLANK BANK CARDS
# SUBROUTINE CALLS
#
#
# COMERASE
# ERASABLE ASSIGNMENTS
# COMAID
# INTERRUPT LEAD INS
# T4RUPT PROGRAM
# DOWNLINK LISTS
# FRESH START AND RESTART
# RESTART TABLES
# SXTMARK
# EXTENDED VERBS
# PINBALL NOUN TABLES
# CSM GEOMETRY
# IMU COMPENSATION PACKAGE
# PINBALL GAME BUTTONS AND LIGHTS
# R60,R62
# ANGLFIND
# GIMBAL LOCK AVOIDANCE
# KALCMANU STEERING
# SYSTEM TEST STANDARD LEAD INS
# IMU CALIBRATION AND ALIGNMENT
# COMEKISS
# GROUND TRACKING DETERMINATION PROGRAM - P21
# P34-P35, P74-P75
# R31
# P76
# R30
# STABLE ORBIT - P38-P39
# TROUBLE
# P11
# TPI SEARCH
# P20-P25
# P30,P37
# P32-P33, P72-P73
# P40-P47
# P51-P53
# LUNAR AND SOLAR EPHEMERIDES SUBROUTINES
# P61-P67
# SERVICER207
# ENTRY LEXICON
# REENTRY CONTROL
# CM BODY ATTITUDE
# P37,P70
# S-BAND ANTENNA FOR CM
# TVCDAPS
# TVCINITIALIZE
# Page 3
# TVCEXECUTIVE
# TVCMASSPROP
# TVCRESTARTS
# TVCDAPS
# TVCSTROKETEST
# TVCROLLDAP
# MYSUBS
# RCS-CSM DIGITAL AUTOPILOT
# AUTOMATIC MANEUVERS
# RCS-CSM DAP EXECUTIVE PROGRAMS
# JET SELECTION LOGIC
# CM ENTRY DIGITAL AUTOPILOT
# CHIEFTAN
# DOWN-TELEMETRY PROGRAM
# INTER-BANK COMMUNICATION
# INTERPRETER
# FIXED-FIXED CONSTANT POOL
# INTERPRETIVE CONSTANTS
# SINGLE PRECISION SUBROUTINES
# EXECUTIVE
# WAITLIST
# LATITUDE LONGITUDE SUBROUTINES
# PLANETARY INERTIAL ORIENTATION
# MEASUREMENT INCORPORATION
# CONIC SUBROUTINES
# INTEGRATION INITIALIZATION
# ORBITAL INTEGRATION
# INFLIGHT ALIGNMENT ROUTINES
# POWERED FLIGHT SUBROUTINES
# TIME OF FREE FALL
# STAR TABLES
# AGC BLOCK TWO SELF-CHECK
# PHASE TABLE MAINTENANCE
# RESTARTS ROUTINE
# IMU MODE SWITCHING ROUTINES
# KEYRUPT, UPRUPT
# DISPLAY INTERFACE ROUTINES
# SERVICE ROUTINES
# ALARM AND ABORT
# UPDATE PROGRAM
# RTB OP CODES
#
#
# SYMBOL TABLE LISTING
# UNREFERENCED SYMBOL LISTING
# ERASABLE & EQUALS CROSS-REFERENCE TABLE
# SUMMARY OF SYMBOL TABLE LISTINGS
# MEMORY TYPE & AVAILABILITY DISPLAY
# COUNT TABLE
# PARAGRAPHS GENERATED FOR THIS ASSEMBLY
# Page 4
# OCTAL LISTING
# OCCUPIED LOCATIONS TABLE
# SUBROS CALLED & PROGRAM STATUS
# Page 5
# VERB LIST FOR CSM
# REGULAR VERBS
# 00 NOT IN USE
# 01 DISPLAY OCTAL COMP 1 IN R1
# 02 DISPLAY OCTAL COMP 2 IN R1
# 03 DISPLAY OCTAL COMP 3 IN R1
# 04 DISPLAY OCTAL COMP 1,2 IN R1,R2
# 05 DISPLAY OCTAL COMP 1,2,3 IN R1,R2,R3
# 06 DISPLAY DECIMAL IN R1 OR R1,R2 OR R1,R2,R3
# 07 DISPLAY DP DECIMAL IN R1,R2 (TEST ONLY)
# 08
# 09
# 10
# 11 MONITOR OCTAL COMP 1 IN R1
# 12 MONITOR OCTAL COMP 2 IN R1
# 13 MONITOR OCTAL COMP 3 IN R1
# 14 MONITOR OCTAL COMP 1,2, IN R1,R2
# 15 MONITOR OCTAL COMP 1,2,3 IN R1,R2,R3
# 16 MONITOR DECIMAL IN R1 OR R1,R2 OR R1,R2,R3
# 17 MONITOR DP DECIMAL IN R1,R2 (TEST ONLY)
# 18
# 19
# 20
# 21 LOAD COMPONENT 1 INTO R1
# 22 LOAD COMPONENT 2 INTO R2
# 23 LOAD COMPONENT 3 INTO R3
# 24 LOAD COMPONENT 1,2 INTO R1,R2
# 25 LOAD COMPONENT 1,2,3 INTO R1,R2,R3
# 26
# 27 DISPLAY FIXED MEMORY
# 28
# 29
# 30 REQUEST EXECUTIVE
# 31 REQUEST WAITLIST
# 32 RECYCLE PROGRAM
# 33 PROCEED WITHOUT DSKY INPUTS
# 34 TERMINATE FUNCTION
# 35 TEST LIGHTS
# 36 REQUEST FRESH START
# 37 CHANGE PROGRAM (MAJOR MODE)
# 38
# 39
# Page 6
# EXTENDED VERBS
# 40 ZERO CDU-S
# 41 COARSE ALIGN CDU-S
# 42 FINE ALIGN IMU-S
# 43 LOAD IMU ATT ERROR METERS
# 44 SET SURFACE FLAG
# 45 RESET SURFACE FLAG
# 46 ESTABLISH G+C CONTROL
# 47 MOVE LM STATE VECTOR INTO CM STATE VECTOR.
# 48 REQUEST DAP DATA LOAD ROUTINE (R03)
# 49 REQUEST CREW DEFINED MANEUVER ROUTINE (R62)
# 50 PLEASE PERFORM
# 51 PLEASE MARK
# 52 MARK ON OFFSET LANDING SITE
# 53 PLEASE PERFORM ALTERNATE LOS MARK
# 54 REQUEST RENDEZVOUS BACKUP SIGHTING MARK ROUTINE (R23)
# 55 INCREMENT AGC TIME (DECIMAL)
# 56 TERMINATE TRACKING (P20 + P25)
# 57 REQUEST RENDEZVOUS SIGHTING MARK ROUTINE (R21)
# 58 RESET STICK FLAG
# 59 PLEASE CALIBRATE
# 60 SET ASTRONAUT TOTAL ATTITUDE (N17) TO PRESENT ATTITUDE
# 61 DISPLAY DAP ATTITUDE ERROR
# 62 DISPLAY TOTAL ATTITUDE ERROR (WRT N22 (THETAD))
# 63 DISPLAY TOTAL ASTRONAUT ATTITUDE ERROR (WRT N17 (CPHIX))
# 64 REQUEST S-BAND ANTENNA ROUTINE
# 65 OPTICAL VERIFICATION OF PRELAUNCH ALIGNMENT
# 66 VEHICLES ARE ATTACHED. MOVE THIS VEHICLE STATE TO OTHER VEHICLE.
# 67
# 68 CSM STROKE TEST ON
# 69 CAUSE RESTART
# 70 UPDATE LIFTOFF TIME
# 71 UNIVERSAL UPDATE-BLOCK ADR
# 72 UNIVERSAL UPDATE-SINGLE ADR
# 73 UPDATE AGC TIME (OCTAL)
# 74 INITIALIZE ERASABLE DUMP VIA DOWNLINK
# 75 BACKUP LIFTOFF
# 76 SET PREFERRED ATTITUDE FLAG
# 77 RESET PREFERRED ATTITUDE FLAG
# 78 UPDATE PRELAUNCH AZIMUTH
# 79 REQUEST LUNAR LANDMARK SELECTION ROUTINE (R35)
# 80 UPDATE LEM STATE VECTOR
# 81 UPDATE CSM STATE VECTOR
# 82 REQUEST ORBIT PARAM DISPLAY (R30)
# 83 REQUEST REND PARAM DISPLAY (R31)
# 84 START TARGET DELTA V (R32)
# 85 REQUEST RENDEZVOUS PARAMETER DISPLAY NO. 2 (R34)
# 86 REJECT RENDEZVOUS BACKUP SIGHTING MARK
# 87 SET VHF RANGE FLAG
# Page 7
# 88 RESET VHF RANGE FLAG
# 89 REQUEST RENDEZVOUS FINAL ATTITUDE ROUTINE (R63)
# 90 REQUEST RENDEZVOUS OUT OF PLANE DISPLAY ROUTINE (R36)
# 91 DISPLAY BANK SUM
# 92 OPERATE IMU PERFORMANCE TEST (P07)
# 93 ENABLE W MATRIX INITIALIZATION
# 94 PERFORM CYSLUNAR ATTITUDE MANEUVER (P23)
# 95 NO UPDATE OF EITHER STATE VECTOR (P20 OR P22)
# 96 TERMINATE INTEGRATION AND GO TO P00
# 97 PERFORM ENGINE FAIL PROCEDURE
# 98 ENABLE TRANSLUNAR INJECT
# 99 PLEASE ENABLE ENGINE
# Page 8
# IN THE FOLLOWING NOUN LIST THE :NO LOAD: RESTRICTION MEANS THE NOUN
# CONTAINS AT LEAST ONE COMPONENT WHICH CANNOT BE LOADED, I.E. OF
# SCALE TYPE L (MIN/SEC) OR PP (2 INTEGERS).
# IN THIS CASE VERBS 24 AND 25 ARE NOT ALLOWED, BUT VERBS 21, 22 OR 23
# MAY BE USED TO LOAD ANY OF THE NOUN:S COMPONENTS WHICH ARE NOT OF THE
# ABOVE SCALE TYPES.
# THE :DEC ONLY: RESTRICTION MEANS ONLY DECIMAL OPERATION IS ALLOWED ON
# EVERY COMPONENT IN THE NOUN. (NOTE THAT :NO LOAD: IMPLIES :DEC ONLY:.)
# NORMAL NOUNS COMPONENTS SCALE AND DECIMAL POINT RESTRICTIONS
# 00 NOT IN USE
# 01 SPECIFY MACHINE ADDRESS (FRACTIONAL) 3COMP .XXXXX FOR EACH
# 02 SPECIFY MACHINE ADDRESS (WHOLE) 3COMP XXXXX. FOR EACH
# 03 SPECIFY MACHINE ADDRESS (DEGREES) 3COMP XXX.XX DEG FOR EACH
# 04 SPARE
# 05 ANGULAR ERROR/DIFFERENCE 1COMP XXX.XX DEG
# 06 OPTION CODE 2COMP OCTAL ONLY FOR EACH
# LOADING NOUN 07 WILL SET OR RESET SELECTED BITS IN ANY ERASABLE REGISTER
# 07 ECADR OF WORD TO BE MODIFIED 3COMP OCTAL ONLY FOR EACH
# ONES FOR BITS TO BE MODIFIED
# 1 TO SET OR 0 TO RESET SELECTED BITS
# 08 ALARM DATA 3COMP OCTAL ONLY FOR EACH
# 09 ALARM CODES 3COMP OCTAL ONLY FOR EACH
# 10 CHANNEL TO BE SPECIFIED 1COMP OCTAL ONLY
# 11 TIG OF CSI 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 12 OPTION CODE 2COMP OCTAL ONLY FOR EACH
# (USED BY EXTENDED VERBS ONLY)
# 13 TIG OF CDH 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 14 SPARE
# 15 INCREMENT MACHINE ADDRESS 1COMP OCTAL ONLY
# 16 TIME OF EVENT 3COMP 00XXX. HRS DEC ONLY
# (USED BY EXTENDED VERBS ONLY) 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 17 ASTRONAUT TOTAL ATTITUDE 3COMP XXX.XX DEG FOR EACH
# 18 AUTO MANEUVER BALL ANGLES 3COMP XXX.XX DEG FOR EACH
# 19 BYPASS ATTITUDE TRIM MANEUVER 3COMP XXX.XX DEG FOR EACH
# 20 ICDU ANGLES 3COMP XXX.XX DEG FOR EACH
# 21 PIPAS 3COMP XXXXX. PULSES FOR EACH
# 22 NEW ICDU ANGLES 3COMP XXX.XX DEG FOR EACH
# 23 SPARE
# 24 DELTA TIME FOR AGC CLOCK 3COMP 00XXX. HRS. DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 25 CHECKLIST 3COMP XXXXX. FOR EACH
# (USED WITH PLEASE PERFORM ONLY)
# Page 9
# 26 PRIORITY/DELAY, ADRES, BBCON 3COMP OCTAL ONLY FOR EACH
# 27 SELF TEST ON/OFF SWITCH 1COMP XXXXX.
# 28 SPARE
# 29 XSM LAUNCH AZIMUTH 1COMP XXX.XX DEG DEC ONLY
# Page 10
# 30 TARGET CODES 3COMP XXXXX. FOR EACH
# 31 TIME OF LANDING SITE 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 32 TIME FROM PERIGEE 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 33 TIME OF IGNITION 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 34 TIME OF EVENT 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 35 TIME FROM EVENT 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 36 TIME OF AGC CLOCK 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 37 TIG OF TPI 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 38 TIME OF STATE VECTOR 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 39 DELTA TIME FOR TRANSFER 3COMP 00XXX. HRS DEC ONLY
# 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# Page 11
# MIXED NOUNS COMPONENTS SCALE AND DECIMAL POINT RESTRICTIONS
#
# 40 TIME FROM IGNITION/CUTOFF 3COMP XXBXX MIN/SEC NO LOAD, DEC ONLY
# VG, XXXX.X FT/SEC
# DELTA V (ACCUMULATED) XXXX.X FT/SEC
# 41 TARGET AZIMUTH, 2COMP XXX.XX DEG
# ELEVATION XX.XXX DEG
# 42 APOGEE, 3COMP XXXX.X NAUT MI DEC ONLY
# PERIGEE, XXXX.X NAUT MI
# DELTA V (REQUIRED) XXXX.X FT/SEC
# 43 LATITUDE, 3COMP XXX.XX DEG DEC ONLY
# LONGITUDE, XXX.XX DEG
# ALTITUDE XXXX.X NAUT MI
# 44 APOGEE, 3COMP XXXX.X NAUT MI NO LOAD, DEC ONLY
# PERIGEE, XXXX.X NAUT MI
# TFF XXBXX MIN/SEC
# 45 MARKS (VHF - OPTICS) 3COMP +XXBXX NO LOAD, DEC ONLY
# TFI OF NEXT BURN XXBXX MIN/SEC
# MGA XXX.XX DEG
# 46 AUTOPILOT CONFIGURATION 2COMP OCTAL ONLY FOR EACH
# 47 THIS VEHICLE WEIGHT 2COMP XXXXX. LBS DEC ONLY
# OTHER VEHICLE WEIGHT XXXXX. LBS
# 48 PITCH TRIM 2COMP XXX.XX DEG DEC ONLY
# YAW TRIM, XXX.XX DEG
# 49 DELTA R 3COMP XXXX.X NAUT MI DEC ONLY
# DELTA V XXXX.X FT/SEC
# VHF OR OPTICS CODE XXXXX.
# 50 SPLASH ERROR, 3COMP XXXX.X NAUT MI NO LOAD, DEC ONLY
# PERIGEE, XXXX.X NAUT MI
# TFF XXBXX MIN/SEC
# 51 S-BAND ANTENNA ANGLES PITCH 2COMP XXX.XX DEG DEC ONLY
# YAW XXX.XX DEG
# 52 CENTRAL ANGLE OF ACTIVE VEHICLE 1COMP XXX.XX DEG
# 53 RANGE, 3COMP XXX.XX NAUT MI DEC ONLY
# RANGE RATE, XXXX.X FT/SEC
# PHI XXX.XX DEG
# 54 RANGE, 3COMP XXX.XX NAUT MI DEC ONLY
# RANGE RATE, XXXX.X FT/SEC
# THETA XXX.XX DEG
# 55 PERIGEE CODE 3COMP XXXXX. DEC ONLY
# ELEVATION ANGLE XXX.XX DEG
# CENTRAL ANGLE OF PASSIVE VEHICLE XXX.XX DEG
# 56 REENTRY ANGLE, 2COMP XXX.XX DEG DEC ONLY
# DELTA V XXXXX. FT/SEC
# 57 DELTA R 1COMP XXXX.X NAUT MI DEC ONLY
# 58 PERIGEE ALT (POST TPI) 3COMP XXXX.X NAUT MI DEC ONLY
# DELTA V TPI XXXX.X FT/SEC
# DELTA V TPF XXXX.X FT/SEC
# 59 DELTA VELOCITY LOS 3COMP XXXX.X FT/SEC FOR EA. DEC ONLY
# 60 GMAX, 3COMP XXX.XX G DEC ONLY
# Page 12
# VPRED, XXXXX. FT/SEC
# GAMMA EI XXX.XX DEG
# 61 IMPACT LATITUDE, 3COMP XXX.XX DEG DEC ONLY
# IMPACT LONGITUDE, XXX.XX DEG
# HEADS UP/DOWN +/- 00001
# 62 INERTIAL VEL MAG (VI), 3COMP XXXXX. FT/SEC DEC ONLY
# ALT RATE CHANGE (HDOT), XXXXX. FT/SEC
# ALT ABOVE PAD RADIUS (H) XXXX.X NAUT MI
# 63 RANGE 297,431 TO SPLASH (RTGO), 3COMP XXXX.X NAUT MI NO LOAD, DEC ONLY
# PREDICTED INERT VEL (VIO), XXXXX. FT/SEC
# TIME FROM 297,431 (TFE), XXBXX MIN/SEC
# 64 DRAG ACCELERATION, 3COMP XXX.XX G DEC ONLY
# INERTIAL VELOCITY (VI), XXXXX. FT/SEC
# RANGE TO SPLASH XXXX.X NAUT MI
# 65 SAMPLED AGC TIME 3COMP 00XXX. HRS DEC ONLY
# (FETCHED IN INTERRUPT) 000XX. MIN MUST LOAD 3 COMPS
# 0XX.XX SEC
# 66 COMMAND BANK ANGLE (BETA), 3COMP XXX.XX DEG DEC ONLY
# CROSS RANGE ERROR, XXXX.X NAUT MI
# DOWN RANGE ERROR XXXX.X NAUT MI
# 67 RANGE TO TARGET, 3COMP XXXX.X NAUT MI DEC ONLY
# PRESENT LATITUDE, XXX.XX DEG
# PRESENT LONGITUDE XXX.XX DEG
# 68 COMMAND BANK ANGLE (BETA), 3COMP XXX.XX DEG DEC ONLY
# INERTIAL VELOCITY (VI), XXXXX. FT/SEC
# ALT RATE CHANGE (RDOT) XXXXX. FT/SEC
# 69 BETA 3COMP XXX.XX DEG DEC ONLY
# DL XXX.XX G
# VL XXXXX. FT/SEC
# 70 STAR CODE, 3COMP OCTAL ONLY
# LANDMARK DATA, OCTAL ONLY
# HORIZON DATA OCTAL ONLY
# 71 STAR CODE 3COMP OCTAL ONLY
# LANDMARK DATA OCTAL ONLY
# HORIZON DATA OCTAL ONLY
# 72 DELT ANG 3COMP XXX.XX DEG DEC ONLY
# 73 ALTITUDE 3COMP XXXXXB. NAUT MI
# VELOCITY XXXXX. FT/SEC
# FLIGHT PATH ANGLE XXX.XX DEG
# 74 COMMAND BANK ANGLE (BETA) 3COMP XXX.XX DEG
# INERTIAL VELOCITY (VI) XXXXX. FT/SEC
# DRAG ACCELERATION XXX.XX G
# 75 DELTA ALTITUDE CDH 3COMP XXXX.X NAUT MI NO LOAD, DEC ONLY
# DELTA TIME (CDH-CSI OR TPI-CDH) XXBXX MIN/SEC
# DELTA TIME (TPI-CDH OR TPI-NOMTPI) XXBXX MIN/SEC
# 76 SPARE
# 77 SPARE
# 78 SPARE
# 79 SPARE
# 80 TIME FROM IGNITION/CUTOFF 3COMP XXBXX MIN/SEC NO LOAD, DEC ONLY
# Page 13
# VG XXXXX. FT/SEC
# DELTA V (ACCUMULATED) XXXXX. FT/SEC
# 81 DELTA V (LV) 3COMP XXXX.X FT/SEC FOR EACH DEC ONLY
# 82 DELTA V (LV) 3COMP XXXX.X FT/SEC FOR EACH DEC ONLY
# 83 DELTA V (BODY) 3COMP XXXX.X FT/SEC FOR EACH DEC ONLY
# 84 DELTA V (OTHER VEHICLE) 3COMP XXXX.X FT/SEC FOR EACH DEC ONLY
# 85 VG (BODY) 3COMP XXXX.X FT/SEC FOR EACH DEC ONLY
# 86 DELTA V(LV) 3COMP XXXXX. FT/SEC FOR EACH DEC ONLY
# 87 MARK DATA SHAFT, 2COMP XXX.XX DEG
# TRUNION XX.XXX DEG
# 88 HALF UNIT SUN OR PLANET VECTOR 3COMP .XXXXX FOR EACH DEC ONLY
# 89 LANDMARK LATITUDE, 3COMP XX.XXX DEG DEC ONLY
# LONGITUDE/2, XX.XXX DEG
# ALTITUDE XXX.XX NAUT MI
# 90 Y 3COMP XXX.XX NM DEC ONLY
# Y DOT XXXX.X FPS
# PSI XXX.XX DEG
# 91 OCDU ANGLES SHAFT, 2COMP XXX.XX DEG
# TRUNION XX.XXX DEG
# 92 NEW OPTICS ANGLES SHAFT, 2COMP XXX.XX DEG
# TRUNION XX.XXX DEG
# 93 DELTA GYRO ANGLES 3COMP XX.XXX DEG FOR EACH
# 94 NEW OPTICS ANGLES SHAFT 2COMP XXX.XX DEG
# TRUNNION XX.XXX DEG
# 95 PREFERRED ATTITUDE ICDU ANGLES 3COMP XXX.XX FOR FOR EACH
# 96 +X-AXIS ATTITUDE ICDU ANGLES 3COMP XXX.XX DEG FOR EACH
# 97 SYSTEM TEST INPUTS 3COMP XXXXX. FOR EACH
# 98 SYSTEM TEST RESULTS AND INPUTS 3COMP XXXXX.
# .XXXXX
# XXXXX.
# 99 RMS IN POSITION 3COMP XXXXX.FT DEC ONLY
# RMS IN VELOCITY XXXX.X FT/SEC
# RMS OPTION XXXXX.
# Page 14
# REGISTERS AND SCALING FOR NORMAL NOUNS
#
# NOUN REGISTER SCALE TYPE
#
# 00 NOT IN USE
# 01 SPECIFY ADDRESS B
# 02 SPECIFY ADDRESS C
# 03 SPECIFY ADDRESS D
# 04 SPARE
# 05 DSPTEM1 H
# 06 OPTION1 A
# 07 XREG A
# 08 ALMCADR A
# 09 FAILREG A
# 10 SPECIFY CHANNEL A
# 11 TCSI K
# 12 OPTIONX A
# 13 TCDH K
# 14 SPARE
# 15 INCREMENT ADDRESS A
# 16 DSPTEMX C
# 17 CPHIX D
# 18 THETAD D
# 19 THETAD D
# 20 CDUX D
# 21 PIPAX C
# 22 THETAD D
# 23 SPARE
# 24 DSPTEM2 +1 K
# 25 DSPTEM1 C
# 26 DSPTEM1 A
# 27 SMODE C
# 28 SPARE
# 29 DSPTEM1 D
# 30 DSPTEM1 C
# 31 DSPTEM1 K
# 32 -TPER K
# 33 TIG K
# 34 DSPTEM1 K
# 35 TTOGO K
# 36 TIME2 K
# 37 TTPI K
# 38 TET K
# 39 T3TOT4 K
# Page 15
# REGISTERS AND SCALING FOR MIXED NOUNS
#
# NOUN COMP REGISTER SCALE TYPE
#
# 40 1 TTOGO L
# 2 VGDISP S
# 3 DVTOTAL S
# 41 1 DSPTEM1 D
# 2 DSPTEM1 +1 E
# 42 1 HAPO Q
# 2 HPER Q
# 3 VGDISP S
# 43 1 LAT H
# 2 LONG H
# 3 ALT Q
# 44 1 HAPOX Q
# 2 HPERX Q
# 3 TFF L
# 45 1 VHFCNT PP
# 2 TTOGO L
# 3 +MGA H
# 46 1 DAPDATR1 A
# 2 DAPDATR2 A
# 47 1 CSMMASS KK
# 2 LEMMASS KK
# 48 1 PACTOFF FF
# 2 YACTOFF FF
# 49 1 N49DISP Q
# 2 N49DISP +2 S
# 3 N49DISP +4 C
# 50 1 RSP-RREC LL
# 2 HPERX Q
# 3 TFF L
# 51 1 RHOSB H
# 2 GAMMASB H
# 52 1 ACTCENT H
# 53 1 RANGE JJ
# 2 RRATE S
# 3 RTHETA H
# 54 1 RANGE JJ
# 2 RRATE S
# 3 RTHETA H
# 55 1 NN1 C
# 2 ELEV H
# 3 CENTANG H
# 56 1 RTEGAM2D H
# 2 RTEDVD P
# 57 1 DELTAR Q
# 58 1 POSTTPI Q
# 2 DELVTPI S
# Page 16
# 3 DELVTPF S
# 59 1 DVLOS S
# 2 DVLOS +2 S
# 3 DVLOS +4 S
# 60 1 GMAX T
# 2 VPRED P
# 3 GAMMAEI H
# 61 1 LAT(SPL) H
# 2 LNG(SPL) H
# 3 HEADSUP C
# 62 1 VMAGI P
# 2 HDOT P
# 3 ALTI Q
# 63 1 RTGO LL
# 2 VIO P
# 3 TTE L
# 64 1 D MM
# 2 VMAGI P
# 3 RTGON64 LL
# 65 1 SAMPTIME K
# 2 SAMPTIME K
# 3 SAMPTIME K
# 66 1 ROLLC H
# 2 XRNGERR VV
# 3 DNRNGERR LL
# 67 1 RTGON67 LL
# 2 LAT H
# 3 LONG H
# 68 1 ROLLC H
# 2 VMAGI P
# 3 RDOT UU
# 69 1 ROLLC H
# 2 Q7 MM
# 3 VL UU
# 70 1 STARCODE A
# 2 LANDMARK A
# 3 HORIZON A
# 71 1 STARCODE A
# 2 LANDMARK A
# 3 HORIZON A
# 72 1 THETZERO H
# 73 1 P21ALT Q (MEMORY/100 TO DISPLAY TENS N.M.)
# 2 P21VEL P
# 3 P21GAM H
# 74 1 ROLLC H
# 2 VMAGI P
# 3 D MM
# 75 1 DIFFALT Q
# 2 T1TOT2 L
# 3 T2TOT3 L
# Page 17
# 76 SPARE
# 77 SPARE
# 78 SPARE
# 79 SPARE
# 80 1 TTOGO L
# 2 VGDISP P
# 3 DVTOTAL P
# 81 1 DELVLVC S
# 2 DELVLVC +2 S
# 3 DELVLVC +4 S
# 82 1 DELVLVC S
# 2 DELVLVC +2 S
# 3 DELVLVC +4 S
# 83 1 DELVIMU S
# 2 DELVIMU +2 S
# 3 DELVIMU +4 S
# 84 1 DELVOV S
# 2 DELVOV +2 S
# 3 DELVOV +4 S
# 85 1 VGBODY S
# 2 VGBODY +2 S
# 3 VGBODY +4 S
# 86 1 DELVLVC P
# 2 DELVLVC +2 P
# 3 DELVLVC +4 P
# 87 1 MRKBUF1 +3 D
# 2 MRKBUF1 +5 J
# 88 1 STARSAV3 ZZ
# 2 STARSAV3 +2 ZZ
# 3 STARSAV3 +4 ZZ
# 89 1 LANDLAT G
# 2 LANDLONG G
# 3 LANDALT JJ
# 90 1 RANGE JJ
# 2 RRATE S
# 3 RTHETA H
# 91 1 CDUS D
# 2 CDUT J
# 92 1 SAC D
# 2 PAC J
# 93 1 OGC G
# 2 OGC +2 G
# 3 OGC +4 G
# 94 1 MRKBUF1 +3 D
# 2 MRKBUF1 +5 J
# 95 1 PRAXIS D
# 2 PRAXIS +1 D
# 3 PRAXIS +2 D
# 96 1 CPHIX D
# 2 CPHIX +1 D
# Page 18
# 3 CPHIX +2 D
# 97 1 DSPTEM1 C
# 2 DSPTEM1 +1 C
# 3 DSPTEM1 +2 C
# 98 1 DSPTEM2 C
# 2 DSPTEM2 +1 B
# 3 DSPTEM2 +2 C
# 99 1 WWPOS XX
# 2 WWVEL YY
# 3 WWOPT C
# Page 19
# NOUN SCALES AND FORMATS
#
# -SCALE TYPE- PRECISION
# UNITS DECIMAL FORMAT -- AGC FORMAT
# ------------ -------------- -- ----------
#
# -A-
# OCTAL XXXXX SP OCTAL
#
# -B- -14
# FRACTIONAL .XXXXX SP BIT 1 = 2 UNITS
# (MAX .99996)
#
# -C-
# WHOLE XXXXX. SP BIT 1 = 1 UNIT
# (MAX 16383.)
#
# -D- 15
# CDU DEGREES XXX.XX DEGREES SP BIT 1 = 360/2 DEGREES
# (MAX 359.99) (USES 15 BITS FOR MAGNI-
# TUDE AND 2-S COMP.)
#
# -E- 14
# ELEVATION DEGREES XX.XXX DEGREES SP BIT 1 = 90/2 DEGREES
# (MAX 89.999)
#
# -F- 14
# DEGREES (180) XXX.XX DEGREES SP BIT 1 = 180/2 DEGREES
# (MAX 179.99)
#
# -G-
# DP DEGREES(90) XX.XXX DEGREES DP BIT 1 OF LOW REGISTER =
# 28
# 360/2 DEGREES
#
# -H-
# DP DEGREES (360) XXX.XX DEGREES DP BIT 1 OF LOW REGISTER =
# 28
# (MAX 359.99) 360/2 DEGREES
#
# -J- 15
# Y OPTICS DEGREES XX.XXX DEGREES SP BIT 1 = 90/2 DEGREES
# (BIAS OF 19.775 (USES 15 BITS FOR MAGNI-
# DEGREES ADDED FOR TUDE AND 2-S COMP.)
# DISPLAY, SUBTRACTED
# FOR LOAD.)
# NOTE: NEGATIVE NUM-
# BERS CANNOT BE
# LOADED.
#
# -K-
# Page 20
# TIME (HR, MIN, SEC) 00XXX. HR DP BIT 1 OF LOW REGISTER =
# 000XX. MIN -2
# 0XX.XX SEC 10 SEC
# (DECIMAL ONLY.
# MAX MIN COMP=59
# MAX SEC COMP=59.99
# MAX CAPACITY=745 HRS
# 39 MINS
# 14.55 SECS.
# WHEN LOADING, ALL 3
# COMPONENTS MUST BE
# SUPPLIED.)
#
# -L-
# TIME (MIN/SEC) XXBXX MIN/SEC DP BIT 1 OF LOW REGISTER =
# (B IS A BLANK -2
# POSITION, DECIMAL 10 SEC
# ONLY, DISPLAY OR
# MONITOR ONLY. CANNOT
# BE LOADED.
# MAX MIN COMP=59
# MAX SEC COMP=59
# VALUES GREATER THAN
# 59 MIN 59 SEC
# ARE DISPLAYED AS
# 59 MIN 59 SEC.)
#
# -M- -2
# TIME (SEC) XXX.XX SEC SP BIT 1 = 10 SEC
# (MAX 163.83)
#
# -N-
# TIME(SEC) DP XXX.XX SEC DP BIT 1 OF LOW REGISTER =
# -2
# 10 SEC
#
# -P-
# VELOCITY 2 XXXXX. FEET/SEC DP BIT 1 OF HIGH REGISTER =
# (MAX 41994.) -7
# 2 METERS/CENTI-SEC
#
# -Q-
# POSITION 4 XXXX.X NAUTICAL MILES DP BIT 1 OF LOW REGISTER =
# 2 METERS
#
# -S-
# VELOCITY 3 XXXX.X FT/SEC DP BIT 1 OF HIGH REGISTER =
# -7
# 2 METERS/CENTI-SEC
# Page 21
# -T- -2
# G XXX.XX G SP BIT 1 = 10 G
# (MAX 163.83)
#
# -FF-
# TRIM DEGREES XXX.XX DEG. SP LOW ORDER BIT = 85.41 SEC
# (MAX 388.69) OF ARC
#
# -GG-
# INERTIA XXXXXBB. SLUG FT SQ SP FRACTIONAL PART OF
# (MAX 07733BB.) 20 2
# 2 KG M
#
# -II- 20
# THRUST MOMENT XXXXXBB. FT LBS SP FRACTIONAL PART OF 2
# (MAX 07733BB.) NEWTON METER
#
# -JJ-
# POSITION5 XXX.XX NAUT MI DP BIT 1 OF LOW REGISTER =
# 2 METERS
#
# -KK- 16
# WEIGHT2 XXXXX. LBS SP FRACTIONAL PART OF 2 KG
#
# -LL-
# POSITION6 XXXX.X NAUT MI DP BIT 1 OF LOW REG =
# -28
# (6,373,338)(2(PI))X2
# -----------------------
# 1852
# NAUT. MI.
#
# -MM-
# DRAG ACCELERATION XXX.XX G DP BIT 1 OF LOW REGISTER =
# MAX (024.99) -28
# 25X2 G
#
# -PP-
# 2 INTEGERS +XXBYY DP BIT 1 OF HIGH REGISTER =
# (B IS A BLANK 1 UNIT OF XX
# POSITION. DECIMAL BIT 1 OF LOW REGISTER =
# ONLY, DISPLAY OR 1 UNIT OF YY
# MONITOR ONLY. CANNOT (EACH REGISTER MUST
# BE LOADED.) CONTAIN A POSITIVE INTEGER
# (MAX 99B99) LESS THAN 100)
#
# -UU-
# VELOCITY/2VS XXXXX. FEET/SEC DP FRACTIONAL PART OF
# (MAX 51532.) 2VS FEET/SEC
# (VS = 25766.1973)
# Page 22
# -VV-
# POSITION8 XXXX.X NAUT MI DP BIT 1 OF LOW REGISTER =
# -28
# 4 X 6,373,338 X 2
# --------------------
# 1852
# NAUT MI.
#
# -XX-
# POSITION 9 XXXXX. FEET DP BIT 1 OF LOW REGISTER =
# -9
# 2 METERS
#
# -YY-
# VELOCITY 4 XXXX.X FEET/SEC DP FRACTIONAL PART OF
# (MAX 328.0) METERS/CENTI-SEC
#
# -ZZ-
# DP FRACTIONAL .XXXXX DP BIT 1 OF HIGH REGISTER =
# -14
# 2 UNITS
# THAT-S ALL ON THE NOUNS.
# Page 23
# ALARM CODES FOR 504
# REPORT DEFICIENCIES TO JOHN SUTHERLAND @ MIT 617-864-6900 X1458
# *9 *18 *60 *25 COLUMN
#
# CODE * TYPE SET BY ALARM ROUTINE
#
# 00110 NO MARK SINCE LAST MARK REJECT SXTMARK ALARM
# 00112 MARK NOT BEING ACCEPTED SXTMARK ALARM
# 00113 NO INBITS SXTMARK ALARM
# 00114 MARK MADE BUT NOT DESIRED SXTMARK ALARM
# 00115 OPTICS TORQUE REQUESTWITH SWITCH NOT AT EXT VERB OPTICS CDU ALARM
# CGC
# 00116 OPTICS SWITCH ALTERED BEFORE 15 SEC ZERO T4RUPT ALARM
# TIME ELAPSED.
# 00117 OPTICS TORQUE REQUEST WITH OPTICS NOT EXT VERB OPTICS CDU ALARM
# AVAILABLE (OPTIND=-0)
# 00120 OPTICS TORQUE REQUEST WITH OPTICS T4RUPT ALARM
# NOT ZEROED
# 00121 CDUS NO GOOD AT TIME OF MARK SXTMARK ALARM
# 00122 MARKING NOT CALLED FOR SXTMARK ALARM
# 00124 P17 TPI SEARCH - NO SAFE PERICTR HERE. TPI SEARCH ALARM
# 00205 BAD PIPA READING SERVICER ALARM
# 00206 ZERO ENCODE NOT ALLOWED WITH COARSE ALIGN IMU MODE SWITCHING ALARM
# + GIMBAL LOCK
# 00207 ISS TURNON REQUEST NOT PRESENT FOR 90 SEC T4RUPT ALARM
# 00210 IMU NOT OPERATING IMU MODE SWITCH, IMU-2, R02, P51 ALARM,VARALARM
# 00211 COARSE ALIGN ERROR - DRIVE > 2 DEGREES IMU MODE SWITCH ALARM
# 00212 PIPA FAIL BUT PIPA IS NOT BEING USED IMU MODE SWITCH,T4RPT ALARM
# 00213 IMU NOT OPERATING WITH TURN-ON REQUEST T4RUPT ALARM
# 00214 PROGRAM USING IMU WHEN TURNED OFF T4RUPT ALARM
# 00215 PREFERRED ORIENTATION NOT SPECIFIED P52,P54 ALARM
# 00217 BAD RETURN FROM STALL ROUTINES. CURTAINS ALARM2
# 00220 IMU NOT ALIGNED - NO REFSMMAT R02,P51 VARALARM
# 00401 DESIRED GIMBAL ANGLES YIELD GIMBAL LOCK IMF ALIGN, IMU-2 ALARM
# 00404 TARGET OUT OF VIEW - TRUN ANGLE > 90 DEG R52 PRIOLARM
# 00405 TWO STARS NOT AVAILABLE P52,P54 ALARM
# 00406 REND NAVIGATION NOT OPERATING R21,R23 ALARM
# 00407 AUTO OPTICS REQUEST TRUN ANGLE > 50 DEG. R52 ALARM
# 00421 W-MATRIX OVERFLOW INTEGRV VARALARM
# 00430 * INTEG. ABORT DUE TO SUBSURFACE S. V. ALL CALLS TO INTEG POODOO
# 00600 IMAGINARY ROOTS ON FIRST ITERATION P32, P72 VARALARM
# 00601 PERIGEE ALTITUDE LT PMIN1 P32,P72, VARALARM
# 00602 PERIGEE ALTITUDE LT PMIN2 P32,P72, VARALARM
# 00603 CSI TO CDH TIME LT PMIN22 P32,P72,P33,P73 VARALARM
# 00604 CDH TO TPI TIME LT PMIN23 P32,P72 VARALARM
# 00605 NUMBER OF ITERATIONS EXCEEDS LOOP MAXIMUM P32,P72,P37 VARALARM
# 00606 DV EXCEEDS MAXIMUM P32,P72 VARALARM
# 00607 * NO SOLN FROM TIME-THETA OR TIME-RADIUS TIMETHET,TIMERAD POODOO
# Page 24
# 00610 * LAMBDA LESS THAN UNITY P37 POODOO
# 00611 NO TIG FOR GIVEN ELEV ANGLE P34,P74 VARALARM
# 00612 STATE VECTOR IN WRONG SPHERE OF INFLUENCE P37 VARALARM
# 00613 REENTRY ANGLE OUT OF LIMITS P37 VARALARM
# 00777 PIPA FAIL CAUSED ISS WARNING. T4RUPT VARALARM
# 01102 CMC SELF TEST ERROR ALARM2
# 01103 * UNUSED CCS BRANCH EXECUTED ABORT POODOO
# 01104 * DELAY ROUTINE BUSY EXEC BAILOUT
# 01105 DOWNLINK TOO FAST T4RUPT ALARM
# 01106 UPLINK TOO FAST T4RUPT ALARM
# 01107 PHASE TABLE FAILURE. ASSUME RESATRT ALARM
# ERASABLE MEMORY IS DESTROYED
# 01201 * EXECUTIVE OVERFLOW-NO VAC AREAS EXEC BAILOUT
# 01202 * EXECUTIVE OVERFLOW-NO CORE SETS EXEC BAILOUT
# 01203 * WAITLIST OVERFLOW-TOO MANY TASKS WAITLIST BAILOUT
# 01204 * NEGATIVE OR ZERO WAITLIST CALL WAITLIST POODOO
# 01206 * SECOND JOB ATTEMPTS TO GO TO SLEEP PINBALL POODOO
# VIA KEYBOARD AND DISPLAY PROGRAM
# 01207 * NO VAC AREA FOR MARKS SXTMARK BAILOUT
# 01210 * TWO PROGRAMS USING DEVICE AT SAME TIME IMU MODE SWITCH POODOO
# 01211 * ILLEGAL INTERRUPT OF EXTENDED VERB SXTMARK BAILOUT
# 01301 ARCSIN-ARCCOS ARGUMENT TOO LARGE INTERPRETER ALARM
# 01302 * SQRT CALLED WITH NEGATIVE ARGUMENT.ABORT INTERPRETER POODOO
# 01407 VG INCREASING S40.8 ALARM
# 01426 IMU UNSATISFACTORY P61, P62 ALARM
# 01427 IMU REVERSED P61, P62 ALARM
# 01501 * KEYBOARD AND DISPLAY ALARM DURING PINBALL POODOO
# INTERNAL USE (NVSUB). ABORT.
# 01502 * ILLEGAL FLASHING DISPLAY GOPLAY POODOO
# 01520 V37 REQUEST NOT PERMITTED AT THIS TIME V37 ALARM
# 01521 * P01 ILLEGALLY SELECTED P01, P07 POODOO
# 01600 OVERFLOW IN DRIFT TEST OPT PRE ALIGN CALIB ALARM
# 01601 BAD IMU TORQUE OPT PRE ALIGN CALIB ALARM
# 01602 BAD OPTICS DURING VERIFICATION OPTALGN CALIB (CSM) ALARM
# 01703 INSUF. TIME FOR INTEG., TIG WAS SLIPPED R41 ALARM
# 03777 ICDU FAIL CAUSED THE ISS WARNING T4RUPT VARALARM
# 04777 ICDU , PIPA FAILS CAUSED THE ISS WARNING T4RUPT VARALARM
# 07777 IMU FAIL CAUSED THE ISS WARNING T4RUPT VARALARM
# 10777 IMU , PIPA FAILS CAUSED THE ISS WARNING T4RUPT VARALARM
# 13777 IMU , ICDU FAILS CAUSED THE ISS WARNING T4RUPT VARALARM
# 14777 IMU,ICDU,PIPA FAILS CAUSED THE ISSWNING T4RUPT VARALARM
# * INDICATES ABORT TYPE.ALL OTHERS ARE NON-ABORTIVE
# Page 25
# CHECKLIST CODES FOR 504
# PLEASE REPORT ANY DEFICIENCIES IN THIS LIST TO JOHN SUTHERLAND
# *9 *17 *26 COLUMN
#
# R1 CODE ACTION TO BE EFFECTED
#
# 00014 KEY IN FINE ALIGNMENT OPTION
# 00015 PERFORM CELESTIAL BODY ACQUISITION
# 00016 KEY IN TERMINATE MARK SEQUENCE
# 00041 SWITCH CM/SM SEPARATION TO UP
# 00062 SWITCH AGC POWER DOWN
# 00202 PERFORM GNCS AUTOMATIC MANEUVER
# 00203 SWITCH TO CMC-AUTO
# 00204 PERFORM SPS GIMBAL TRIM
# 00403 SWITCH OPTICS TO MANUAL OR ZERO
# SWITCH DENOTES CHANGE POSITION OF A CONSOLE SWITCH
# PERFORM DENOTES START OR END OF A TASK
# KEY IN DENOTES KEY IN OF DATA THRU THE DSKY
# Page 26
# OPTION CODES FOR 504
# PLEASE REPORT ANY DEFICIENCIES IN THIS LIST TO JOHN SUTHERLAND
# THE SPECIFIED OPTION CODES WILL BE FLASHED IN COMPONENT R1 IN
# CONJUNCTION WITH VERB04NOUN06 TO REQUEST THE ASTRONAUT TO LOAD INTO
# COMPONENT R2 THE OPTION HE DESIRES.
# *9 *17 *52 *11 *25 COLUMN
#
# OPTION
# CODE PURPOSE INPUT FOR COMPONENT 2 PROGRAM(S) APPLICABILITY
#
# 00001 SPECIFY IMU ORIENTATION 1=PREF 2=NOM 3=REFSMMAT P50'S ALL
# 00002 SPECIFY VEHICLE 1=THIS 2=OTHER P21,R30 ALL
# 00003 SPECIFY TRACKING ATTITUDE 1=PREFERRED 2=OTHER R63 ALL
# 00004 SPECIFY RADAR 1=RR 2=LR R04 SUNDANCE + LUMINARY
# 00005 SPECIFY SOR PHASE 1=FIRST 2=SECOND P38 COLOSSUS + LUMINARY
# 00006 SPECIFY RR COARSE ALIGN OPTION 1=LOCKON 2=CONTINUOUS DESIG. V41N72 SUNDANCE + LUMINARY
# 00007 SPECIFY PROPULSION SYSTEM 1=SPS 2=RCS P37 COLOSSUS
# 00010 SPECIFY ALIGNMENT MODE 0=ANY TIME 1=REFSMMAT +G P57 LUMINARY
# 2=TWO BODIES 3=ONE BODY + G
# 00011 SPECIFY SEPARATION MONITOR PHASE 1=DELTAV 2=STATE VECTOR UPDATE P46 LUMINARY
# 00012 SPECIFY CSM ORBIT OPTION 1=NO ORBIT CHANGE 2=CHANGE P22 LUMINARY
# ORBIT TO PASS OVER LM
================================================
FILE: Comanche055/AUTOMATIC_MANEUVERS.agc
================================================
# Copyright: Public domain.
# Filename: AUTOMATIC_MANEUVERS.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), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1025-1036
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# 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
# Page 1025
BANK 21
SETLOC DAPS3
BANK
COUNT 21/DAPAM
EBANK= KMPAC
AHFNOROT EXTEND
READ CHAN31
MASK BIT14
EXTEND
BZMF FREECONT
CA RCSFLAGS # SEE IF RATE FILTER HAS BEEN INITIALIZED
MASK BIT14
CCS A # IF SO, PROCEED WITH ATTITUDE CONTROL
TCF REINIT # IF NOT, RECYCLE TO INITIALIZE FILTER
# AUTOMATIC CONTROL YET
EXTEND
READ CHAN31
MASK BIT13
EXTEND
BZMF HOLDFUNC
AUTOCONT CA HOLDFLAG # IF HOLDFLAG IS +, GO TO GRABANG.
EXTEND # OTHERWISE, GO TO ATTHOLD.
BZMF ATTHOLD
TCF GRABANG
# MINIMUM IMPULSE CONTROL
FREECONT CAF ONE
TS HOLDFLAG # RESET HOLDFLAG
# INHIBIT AUTOMATIC STEERING
EXTEND
READ CHAN32
TS L
COM
MASK MANROT
MASK CHANTEMP
LXCH CHANTEMP
TC STICKCHK
INDEX RMANNDX
CA MINTAU # MINTAU +0
TS TAU # +1 +14MS MINIMUM IMPULSE
INDEX PMANNDX # +2 -14MS TIME
CA MINTAU # +3 +0
TS TAU1
INDEX YMANNDX
CA MINTAU
# Page 1026
TS TAU2
TCF T6PROGM
MINTAU DEC 0
DEC 23 # = 14MS
DEC -23 # = -14MS
DEC 0
# Page 1027
# CALCULATION OF ATTITUDE ERRORS-
# - * - - -
# AK = AMGB (CDUX - THETADX) + BIAS
#
# IE *AK * * 1 SIN(PSI) 0 ** CDUX - THETADX * *BIAS *
# * * * ** * * *
# *AK1* = * 0 COS(PSI)COS(PHI) SIN(PHI)** CDUY - THETADY * + *BIAS1*
# * * * ** * * *
# *AK2* * 0 -COS(PSI)SIN(PHI) COS(PHI)** CDUZ - THETADZ * *BIAS2*
#
# THE BIASES ARE ADDED ONLY WHILE PERFORMING AUTOMATIC MANEUVERS (ESP KALCMANU) TO PROVIDE ADDITIONAL LEAD
# AND PREVENT OVERSHOOT WHEN STARTING AN AUTOMATIC MANEUVER. NORMALLY THE REQUIRED LEAD IS ONLY 1-2 DEGREES.
# BUT DURING HIGH RATE MANEUVERS IT CAN BE AS MUCH AS 7 DEGREES. THE BIASES ARE COMPUTED BY KALCMANU AND REMAIN
# FIXED UNTIL THE MANEUVER IS COMPLETED AT WHICH TIME THEY ARE RESET TO ZERO.
ATTHOLD CA CDUX
EXTEND
MSU THETADX
TS ERRORX
CA CDUY
EXTEND
MSU THETADY
TS T5TEMP
EXTEND
MP AMGB1
ADS ERRORX
CA T5TEMP
EXTEND
MP AMGB4
TS ERRORY
CA T5TEMP
EXTEND
MP AMGB7
TS ERRORZ
CA CDUZ
EXTEND
MSU THETADZ
TS T5TEMP
EXTEND
MP AMGB5
ADS ERRORY
CA T5TEMP
EXTEND
MP AMGB8
ADS ERRORZ
CS HOLDFLAG
EXTEND
# Page 1028
BZMF JETS
CA BIAS # AD BIASES ONLY IF PERFORMING AUTOMATIC
ADS ERRORX
CA BIAS1
ADS ERRORY
CA BIAS2
ADS ERRORZ
TCF JETS
HOLDFUNC CCS HOLDFLAG
TCF +3
TCF ATTHOLD
TCF +1
GRABANG CAF ZERO # ZERO WBODYS AND BIASES
TS WBODY
TS WBODY +1
TS WBODY1
TS WBODY1 +1
TS WBODY2
TS WBODY2 +1
TS BIAS
TS BIAS1
TS BIAS2
CA RCSFLAGS
MASK OCT16000
EXTEND # IS RATE DAMPING COMPLETED
BZF ENDDAMP # IF SO, GO TO ENDDAMP
CAF ZERO # OTHERWISE, ZERO ERRORS
TS ERRORX
TS ERRORY
TS ERRORZ
TCF JETS
ENDDAMP TS HOLDFLAG # SET HOLDFLAG +0
EXTEND
DCA CDUX # PICK UP CDU ANGLES FOR ATTITUDE HOLD
DXCH THETADX # REFERENCES
CA CDUZ
TS THETADZ
TCF ATTHOLD
# Page 1029
# JET SWITCHING LOGIC AND CALCULATION OF REQUIRED ROTATION COMMANDS
#
# DETERMINE THE LOCATION OF THE RATE ERROR AND THE ATTITUDE ERROR RELATIVE TO THE SWITCHING LOGIC IN THE PHASE
# PLANE.
# COMPUTE THE CHANGE IN RATE CORRESPONDING TO THE ATTITUDE ERROR NECESSARY TO DRIVE THE THE S/C INTO THE
# APPROPRIATE DEADZONE.
#
# .
# R22 RATE . ERROR
# WL+H .
# ********************************* . ***** SWITCH LINES ENCLOSING DEADZONES
# R23 WL * .
# ----------------------------------* . ----- DESIRED RATE LINES
# R23 WL-H - *.
# ****************** - . R20, R21, R22, ETC REGIONS IN PHASE
# * - .* R18 R20 R21 PLANE FOF COMPUTING DESIRED RESPONSE
# * . *
# *- . *
# R22 R24*- R23 . *
# * . *
# * . *
# + -ADB . * AF ATTITUDE
# ........................+--+---------------+--+........................
# AF * . +ADB + ERROR
# * . *
# * . -*
# * . -*
# * . -*
# * . *
# *. - *
# . - *****************
# .* -
# . * --------------------------------
# . *
# . ********************************
# .
# FIG. 1 PHASE PLANE SWITCHING LOGIC
# CONSTANTS FOR JET SWITCHING LOGIC
WLH/SLOP DEC .00463 # = WL+H/SLOPE = .83333 DEG $180
WL-H/SLP DEC .00277 # = WL-H/SLOPE = .5 DEG $180
WLH 2DEC .0011111111 # = WL+H = 0.5 DEG/SEC $450
WLMH 2DEC .0006666666 # = WL-H = 0.3 DEG/SEC $450
WL 2DEC .0008888888 # = WL = 0.4 DEG/SEC $450
# Page 1030
SLOPE2 DEC .32 # = 0.8 DEG/SEC/DEG $450/180
JETS CA ADB
AD FOUR # AF = FLAT REGION = .044 DEG
TS T5TEMP # ADB+AF
CAF TWO
JLOOP TS SPNDX
DOUBLE
TS DPNDX
EXTEND
INDEX A
DCA ADOT
DXCH EDOT
CA HOLDFLAG # HOLDFLAG = +0 MEANS THAT DAP IS IN
EXTEND # ATTITUDE HOLD AND RATE DAMPING IS OVER.
BZF INHOLD # IF THIS IS THE CASE, BYPASS ADDITION
# OF WBODY AND GO TO INHOLD
EXTEND
INDEX DPNDX
DCS WBODY
DAS EDOT # = ADOT-WBODY
INHOLD INDEX SPNDX
CA ERRORX
TS AERR # AERR = BIAS + AK
CCS EDOT
TCF POSVEL
TCF SIGNCK1
TCF NEGVEL
SIGNCK1 CCS EDOT +1
TCF POSVEL
TCF POSVEL
TCF NEGVEL
TCF NEGVEL
POSVEL EXTEND
DCA EDOT
DXCH EDOTVEL
CA T5TEMP
TS ADBVEL # +(ADB+AF)
CA AERR
TS AERRVEL
TC J6.
NEGVEL EXTEND
DCS EDOT
DXCH EDOTVEL
CS T5TEMP
TS ADBVEL # -(ADB+AF)
CS AERR
TS AERRVEL
J6. EXTEND
# Page 1031
SU ADB
AD WLH/SLOP
EXTEND
BZMF J8
CS T5TEMP # (ADB+AF)
AD AERRVEL
EXTEND
BZMF +2
TCF J7
EXTEND
DCS EDOTVEL
EXTEND
DV SLOPE
EXTEND
SU AERRVEL
AD ADB
EXTEND
BZMF J18
TCF J23
J7 CS WL-H/SLP
EXTEND
SU T5TEMP # (ADB+AF)
AD AERRVEL
EXTEND
BZMF J20
TCF J21
J8 EXTEND
DCS WLH
DXCH WTEMP
EXTEND
DCA EDOTVEL
DAS WTEMP
CCS WTEMP
TCF J22
TCF SIGNCK2
TCF NJ22
SIGNCK2 CCS WTEMP +1
TCF J22
TCF J22
TCF NJ22
NJ22 EXTEND
DCA EDOTVEL
EXTEND
DV SLOPE
AD T5TEMP # (ADB+AF)
AD AERRVEL
# Page 1032
CCS A
TCF J23
TCF J23
TCF +2
TCF J23
EXTEND
DCS WLMH # WL - H
DXCH WTEMP
EXTEND
DCA EDOTVEL
DAS WTEMP
CCS WTEMP
TCF J23
TCF SIGNCK3
TCF NJ23
SIGNCK3 CCS WTEMP +1
TCF J23
TCF J23
TCF NJ23
NJ23 CA AERRVEL
AD T5TEMP # (ADB+AF)
AD WL-H/SLP
CCS A
TCF J24
TCF J24
TCF J22
TCF J22
J18 EXTEND
DCS EDOT
DXCH KMPAC
TCF JTIME
J20 CS AERR
AD ADBVEL
EXTEND
MP SLOPE2 # (HYSTERESIS SLOPE)
DXCH KMPAC
EXTEND
DCS EDOT
DAS KMPAC
TCF JTIME
J21 CCS EDOT
TCF JP
TCF SIGNCK4
TCF JN
SIGNCK4 CCS EDOT +1
# Page 1033
TCF JP
TCF JP
TCF JN
JN EXTEND
DCS EDOT
DXCH KMPAC
EXTEND
DCA WL
DAS KMPAC
TCF JTIME
JP EXTEND
DCS EDOT
DXCH KMPAC
EXTEND
DCS WL
DAS KMPAC
TCF JTIME
J22 CCS EDOT
TCF JN
TCF SIGNCK5
TCF JP
SIGNCK5 CCS EDOT +1
TCF JN
TCF JN
TCF JP
TCF JP
J23 INDEX SPNDX
CS BIT13 # RESET RATE DAMPING FLAG
MASK RCSFLAGS # BIT13 FOR ROLL (SPNDX = 0)
TS RCSFLAGS # BIT12 FOR PITCH (SPNDX = 1)
# BIT11 FOR YAW (SPNDX = 2)
INDEX SPNDX
CAF OCT01400 # IS THERE TO BE A FORCED FIRING ON THIS
MASK RCSFLAGS # AXIS
EXTEND
BZF DOJET +2 # NO, GO TO DOJET +2 AND DO NOTHING
TCF J18 # YES, GO TO J18 AND FORCE A FIRING
J24 CS AERR
EXTEND
SU ADBVEL
EXTEND
MP SLOPE2 # (HYSTERESIS SLOPE)
DXCH KMPAC
EXTEND
# Page 1034
DCS EDOT
DAS KMPAC
# Page 1035
# COMPUTE THE JET ON TIME NECESSARY TO ACCOMPLISH THE DESIRED CHANGE IN RATE, IE
#
# T = J/M(DELTA W)
# J
#
# DELTA W = DESIRED CHANGE IN S/C ANGULAR RATE AS DETERMINED BY THE
# SWITCHING LOGIC, AT THIS POINT STORED IN KMPAC.
#
# J/M = S/C INERTIA TO TORQUE 9ATIO SCALED BY
# (57.3/450)(B24/1600)(1/.8)
# FOR 1 JET OPERATION (M = 700 FT-LB).
# IE J/M = J(SLUG-FTFT) x 0.00000085601606
#
# THE CORRESPONDING COMPUTER VARIABLES ESTABLISHED BY
# KEYBOARD ENTRY ARE
# J/M (ROLL)
# J/M1 (PITCH)
# J/M2 (YAW)
#
# T = JET-ON TIME SCALED 16384/1600 SEC
# J
#
# THE COMPUTER VARIABLES ARE
# TAU (ROLL)
# TAU1 (PITCH)
# TAU2 (YAW)
JTIME INDEX SPNDX # PICK UP S/C INERTIA/TORQUE RATIO
CA J/M # SCALED (57.3/450)(B24/1600)
TC SMALLMP # FOR 1-JET OPERATION
CA BIT11
TC SMALLMP
CCS KMPAC
TCF +4
TCF TAUNORM
TCF +4
TCF TAUNORM
CA POSMAX
TCF DOJET
CA NEGMAX
TCF DOJET
TAUNORM CA KMPAC +1
DOJET INDEX SPNDX
TS TAU
CCS SPNDX
TCF JLOOP
TCF T6PROG
# Page 1036
ZEROCMDS CAF ZERO
TS TAU
TS TAU1
TS TAU2
T6PROG EXTEND # WHEN THE ROTATION COMMANDS (TAUS)
DCA JETADDR # HAVE BEEN DETERMINED
DXCH T5LOC # RESET T5LOC FOR PHASE3
TCF RESUME
EBANK= KMPAC
JETADDR 2CADR JETSLECT
================================================
FILE: Comanche055/CM_BODY_ATTITUDE.agc
================================================
# Copyright: Public domain.
# Filename: CM_BODY_ATTITUDE.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 883-889
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-12 RSB Adapted from Colossus249 file of the same
# name and Comanche 055 page images.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 883
BANK 35
SETLOC BODYATT
BANK
COUNT 37/CMBAT
# PDL 12D - 15D SAFE.
# VALUES OF GIMBAL AND BODY ANGLES VALID AT PIP TIME ARE SAVED DURING READACCS.
EBANK= RTINIT # LET INTERPRETER SET EB
CM/POSE TC INTPRET # COME HERE VIA AVEGEXIT.
SETPD VLOAD
0
VN # KVSCALE = (12800/ .3048) /2VS
VXSC PDVL
-KVSCALE # KVSCALE = .81491944
UNITW # FULL UNIT VECTOR
VXV VXSC # VREL = V - WE*R
UNITR
KWE
VAD STADR
STORE -VREL # SAVE FOR ENTRY GUIDANCE. REF COORDS
UNIT LXA,1
36D # ABVAL( -VREL) TO X1
STORE UXA/2 # -UVREL REF COORDS
VXV VCOMP
UNITR # .5 UNIT REF COORDS
UNIT SSP # THE FOLLOWING IS TO PROVIDE A STABLE
S1 # UN FOR THE END OF THE TERMINAL PHASE.
SPVQUIT DEC .019405 # 1000/ 2 VS
TIX,1 VLOAD # IF V-VQUIT POS, BRANCH.
CM/POSE2 # SAVE UYA IN OLDUYA
OLDUYA # OTHERWISE CONTINUE TO USE OLDUYA.
CM/POSE2 STORE UYA/2 # REF COORDS
STORE OLDUYA # RESTORE, OR SAVE AS CASE MAY BE.
VXV VCOMP
UXA/2 # FINISH OBTAINING TRAJECTORY TRIAD.
VSL1
STORE UZA/2 # REF COORDS
# Page 884
TLOAD # PICK UP CDUX, CDUY, CDUZ CORRESPONDING
AOG/PIP # TO PIPUP TIME IN 2S.C AND SAVE.
CM/TRIO STODL 24D
25D # AIG/PIP
RTB PUSH # TO PDL0
CDULOGIC
COS
STODL UBX/2 # CI /2
# AIG/PIP FROM PDL 0
SIN DCOMP
STODL UBX/2 +4 # -SI /2
26D # AMG/PIP
RTB PUSH # TO PDL 0
CDULOGIC
SIN PDDL # XCH PDL 0. SAVE SM /2
COS PDDL # CM /2 TO PDL 2
0 # SM /2
DCOMP VXSC
UBX/2
VSL1 # NOISE WONT OVFL.
STODL UBY/2 # =(-SMCI, NOISE, SMSI)/2
2 # CM /2 REPLACES NOISE
STODL UBY/2 +2 # UBY/2=(-SMCI, CM, SMSI)/2
24D # AOG/PIP
RTB PUSH # TO PDL 4
CDULOGIC
SIN PDDL # XCH PDL 4. SAVE SO /2
COS VXSC # CO /2
UBY/2
STODL UBY/2 # UBY/2=(-COSMCI, COCM, COSMSI)/4
4D # SO /2
DMP DCOMP
UBX/2 +4 # -SI /2
DAD
UBY/2 # INCREMENT BY (SOSI /4)
STODL UBY/2
# SO /2 FROM PDL 4
DMP DAD
UBX/2 # CI /2
UBY/2 +4
STOVL UBY/2 +4 # YB/4 PLATFORM COORDS
# YB = (-COSMCI + SOSI , COCM , COSMSI + SOCI )
UBY/2
VXM VSL2
REFSMMAT # .5 UNIT
STODL UBY/2 # YB/2 DONE REF COORDS
# Page 885
# CM /2 FROM PDL 2
VXSC VSL1
UBX/2
STODL UBX/2 # =( CMCI, NOISE, -CMSI)/2
STADR # SM /2 FROM PDL 0
STOVL UBX/2 +2 # SM /2 REPLACES NOISE
UBX/2 # XB/2 PLATFORM COORDS
# XB = ( CMCI , SM , -CMSI )
VXM VSL1
REFSMMAT # .5 UNIT
STORE UBX/2 # XB/2 DONE REF COORDS
VXV VSL1
UBY/2
STOVL UBZ/2 # ZB/2 DONE REF COORDS
# EQUIVALENT TO
# ZB = ( SOSMCI + COSI , -SOCM , -SOSMSI + COCI)
UXA/2 # -UVREL/2 = -UVA/2
VXV UNIT # GET UNIT(-UVREL*UBY)/2 = UL/2
UBY/2 # YB/2
PUSH DOT # UL/2 TO PDL 0,5
UZA/2 # UNA/2
STOVL COSTH # COS(ROLL)/4
0 # UL/2
DOT
UYA/2
STCALL SINTH # -SIN(ROLL)/4
ARCTRIG
STOVL 6D # -(ROLL/180) /2
UBY/2
DOT SL1 # -UVA.UBY = -SIN(BETA)
UXA/2 # -UVREL/2
ARCSIN
STOVL 7D # -(BETA/180) /2
UBX/2 # XB/2
DOT # UL.UBX = -SIN(ALFA)
0 # UL/2
STOVL SINTH # -SIN(ALFA)/4
DOT # UL/2 FROM PDL 0
UBZ/2
STCALL COSTH # COS(ALFA)/2
ARCTRIG
STOVL 8D # -(ALFA/180) /2
UNITR # UR/2 REF COORDS
DOT SL1
# Page 886
UZA/2 # MORE ACCURATE AT LARGE ARG.
ARCCOS
STORE 10D # (-GAMA/180)/2
TLOAD EXIT # ANGLES IN MPAC IN THE ORDER
# -( (ROLL, BETA, ALFA) /180)/2
6D # THESE VALUES CORRECT AT PIPUP TIME.
# Page 887
# BASIC SUBROUTINE TO UPDATE ATTITUDE ANGLES
EBANK= AOG
CM/ATUP CA EBAOG
TS EBANK
CMTR1 INDEX FIXLOC
CS 10D # (GAMA/180)/2
XCH GAMA
TS L
INHINT
# MUST REMAIN INHINTED UNTIL UPDATE OF BODY
# ANGLES, SO THAT GAMDIFSW IS VALID FIRST PASS
# INDICATOR.
CS CM/FLAGS
MASK BIT11 # GAMDIFSW=94D BIT11 INITLY=0
EXTEND # DONT CALC GAMA DOT UNTIL HAVE FORMD
# ONE DIFFERENCE.
BZF DOGAMDOT # IS OK, GO ON.
ADS CM/FLAGS # KNOW BIT IS 0
TC NOGAMDOT # SET GAMDOT = 0
DOGAMDOT CS L
AD GAMA # DEL GAMA/360= T GAMDOT/360
EXTEND
MP TCDU # TCDU = .1 SEC, T = 2 SEC.
TS GAMDOT # GAMA DOT TCDU / 180
EXTEND # IGNORE GAMDOT IF LEQ .5 DEG/SEC
BZMF +2
COM
AD FIVE
EXTEND
BZMF +3 # SET GAMDOT=+0 AS TAG IF TOO SMALL.
NOGAMDOT CA ZERO # COME HERE INHINTED.
TS GAMDOT
# FOR NOW LEAVE IN 2S.C
# UPDATE ANGLES BY CORRECTING EUILER ANG
# FOR ACCRUED INCREMENT SINCE PIPUP
# R = R EUIL + R(NOW) -R(PIPUP)
CS MPAC # GET (R EUL/180) /2
DOUBLE # POSSIBLE OVERFLOW
TC CORANGOV # CORRECT FOR OVFL IF ANY
EXTEND
SU ROLL/PIP # GET INCR SINCE PIPUP
AD ROLL/180 # ONLY SINGLE OVFL POSSIBLE.
TC CORANGOV # CORRECT FOR OVFL IF ANY
# Page 888
TS TEMPROLL
CS MPAC +2 # GET (ALFA EUL/180) /2
DOUBLE # SAME AS FOR ROLL. NEEDED FOR EXT ATM DAP
TC CORANGOV # CORRECT FOR OVFL IF ANY
EXTEND
SU ALFA/PIP
AD ALFA/180
TC CORANGOV # CORRECT FOR OVFL IF ANY
TS TEMPALFA
CS MPAC +1 # GET (BETA EUL/180) /2
CMTR2 DOUBLE
EXTEND
SU BETA/PIP
AD BETA/180
XCH TEMPBETA # OVFL NOT EXPECTED.
CA EBANK3
TS EBANK
EBANK= PHSNAME5
EXTEND
DCA REPOSADR # THIS ASSUMES THAT THE TC PHASCHNG
DXCH PHSNAME5 # IS NOT CHANGED IN OCT 10035
# SERVICER.
CA EBAOG
TS EBANK
EBANK= AOG
REDOPOSE EXTEND # RE-STARTS COME HERE
DCA TEMPROLL
DXCH ROLL/180
CA TEMPBETA
TS BETA/180
RELINT
TC INTPRET # CANT TC DANZIG AFTER PHASCHNG.
CM/POSE3 VLOAD ABVAL # RETURN FROM CM/ATUP. (RESTART)
VN # 2(-7) M/CS
STORE VMAGI # FOR DISPLAY ON CALL.
GOTO
POSEXIT # ENDEXIT, STARTENT, OR SCALEPOP.
CORANGOV TS L
TC Q
INDEX A
# Page 889
CA LIMITS
ADS L
TC Q # COSTS 2 MCT TO USE. SEE ANGOVCOR.
-KVSCALE 2DEC -.81491944 # -12800/(2 VS .3048)
TCDU DEC .1 # TCDU = .1 SEC.
EBANK= AOG
REPOSADR 2CADR REDOPOSE
================================================
FILE: Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc
================================================
# Copyright: Public domain.
# Filename: CM_ENTRY_DIGITAL_AUTOPILOT.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), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1063-1092
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrections: Removed an extraneous label
# EXDAPIN, added a missing instruction in
# COMPAT.
#
# 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
# Page 1063
# SUBROUTINE TO READ GIMBAL ANGLES AND FORM DIFFERENCES. GIMBAL ANGLES ARE SAVED IN 2S COMPLEMENT, BUT THE
# DIFFERENCES ARE IN 1S COMP. ENTER AND READ ANGLES EACH .1 SEC.
#
# CM/DSTBY = 1 FOR DAP OPERATION
# CM/DSTBY = 0 TO TERMINATE DAP OPERATION.
BANK 15
SETLOC ETRYDAP
BANK
COUNT 15/DAPEN
EBANK= AOG
READGYMB CA TEN # KEEP RESTART DT GOING RELATIVE TO
ADS CM/GYMDT # PIPTIME. (GROUP 6)
# IF A RESTART OCCURS, SKIP PRESENT CYCLE. THE
# PHASCHNG PROTECTION IS IN CM/DAPIC.
CA BIT6 # CHECK FOR FINE ALIGN MODE OF CDU.
MASK IMODES33 # ( PROTECT AOG/PIP ETC AS WELL AS
EXTEND # GIMBAL DIFFERENCES)
BZF READGYM1 # OK
CS BIT1 # NOT IN FINE ALIGN, SO IDLE.
MASK CM/FLAGS # SET GYMDIFSW = 0
TS CM/FLAGS
TC FLUSHJET # QUENCH JETS, SINCE MAY BE A WHILE.
TC CM/GYMIC +2
READGYM1 CA CDUX
XCH AOG
EXTEND
MSU AOG # -DELAOG=AOG(N-1) - AOG(N)
TS -DELAOG
CA CDUY
XCH AIG
EXTEND
MSU AIG
TS -DELAIG
CA CDUZ
XCH AMG
EXTEND
MSU AMG
TS -DELAMG
# Page 1064
DOBRATE? CS CM/FLAGS # CM/DSTBY=103D BIT2 GYMDIFSW=104D BIT1
MASK THREE
INDEX A
TC +1
TC DOBRATE # OK, GO ON
TC CM/GYMIC # DONT CALC BODYRATE ON FIRST PASS.
NOOP
TC FLUSHJET # TURN OFF ALL JETS
TC PHASCHNG
OCT 00006 # DEACTIVATE DAP GROUP 6.
TC TASKOVER
DOBRATE CA ONE # DO BODYRATE
DOBRATE1 TS JETEM # SKIP BODYRATE.
CA TEN # KEEP CDU READ GOING.
TC WAITLIST
EBANK= AOG
2CADR READGYMB
# DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
CCS JETEM
TC BODYRATE
TC TASKOVER # SKIP CALC ON INITIAL PASS. (PASSES)
CM/GYMIC ADS CM/FLAGS # GYMDIFSW: C(A)=1, KNOW BIT IS 0
CAF ZERO
TS JETAG
TS OLDELP
TS OLDELQ
TS OLDELR
TS GAMDOT # NO GYM DIF, PROB NO GAM DIF.
TC DOBRATE1
# Page 1065
# COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS
ANGOVCOR TS L # THIS COSTS 2 MCT TO USE.
TC Q # NO OVFL
INDEX A
CAF LIMITS
ADS L
TC Q
BLOCK 3
COUNT 03/DAPEN
FLUSHJET CA 7 # COME HERE TO TURN OFF ALL JETS.
EXTEND
WRITE ROLLJETS # ZERO CHANNEL 6
EXTEND
WRITE PYJETS # ZERO CHANNEL 5
TC Q
BANK 15
COUNT 15/DAPEN
SETLOC ETRYDAP
BANK
RATEAVG COM # SUBROUTINE TO ESTIMATE RATES IN PRESENCE
AD JETEM # OF CONSTANT ACCELERATION.
EXTEND
MP HALF # DELV (EST) = DELV +(DELV-OLDELV)/2
AD JETEM
TC Q
# Page 1066
# THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED.
BANK 20
SETLOC DAPS1
BANK
COUNT 20/DAPEN
EBANK= AOG
CM/DAPON CA EBAOG
TS EBANK
TC DOWNFLAG # RESET DAPBIT1. T5 RESTART IDENTIFIER.
ADRES DAPBIT1 # BIT 15 FLAG 6 CM FLAGS.
TC DOWNFLAG # RESET DAPBIT2
ADRES DAPBIT2 # BIT 14 FLAG 6
EXTEND
DCA T5IDLER1 # DISABLE RCS CALCULATION
DXCH T5LOC
EXTEND
DCA T5IDLER1 # DISABLE RCS JET CALLS
DXCH T6LOC
TC FLUSHJET # JETS DEPARTED ON SM. ZERO JET BITS.
CS 13,14,15
MASK DAPDATR1 # SET CONFIG BITS =0 FOR ENTRY
TS DAPDATR1
TC +4
NOTYET CA .5SEC
TC BANKCALL
CADR DELAYJOB # (DELAYJOB DOES INHINT)
+4 CA BIT11 # GAMDIFSW = 94D BIT11, INITLY=0
MASK CM/FLAGS # IF ZERO, WAIT UNTIL CM/POSE UPDATE.
EXTEND
BZF NOTYET
CS ONE # ACTIVATE CM/DAP
TS RCSFLAGS # USE BIT3 TO INITIALIZE NEEDLER ON
# NEXT PASS.
TS P63FLAG # SO WAKEP62 WILL NOT BE INITIATED UNTIL
# HEADSUP IS SET IN P62.
# FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62.
CA 7
TS JETAG
TS PAXERR1 # KEEP NEEDLES ZERO UNTIL DAP UPDATE
# IN CASE CMDAPMOD IS NOT +1.
# Page 1067
INHINT
EXTEND
DCA ALFA/180 # DO ATTITUDE HOLD UNTIL KEYBOARD
DXCH ALFACOM # ESTABLISHES HEADSUP.
CA ROLL/180
TS ROLLHOLD # FOR ATTITUDE HOLD IN MODE +1.
EXTEND
MP HALF
TS ROLLC # NOT INTERESTED IN LO WORD.
CS CM/FLAGS
MASK BIT12 # CMDAPARM =93D BIT12 INITLY=0
ADS CM/FLAGS # SET BIT TO 1.
CS FLAGWRD2 # SET NODOFLAG TO PREVENT FURTHER
MASK BIT1 # V 37 ENTRIES.
ADS FLAGWRD2
RELINT
TC POSTJUMP
CADR P62.1
# Page 1068
# INITIALIZE CM/DAP. WAITLIST CALL FOR READGYMB. SET SWITCH CM/DSTBY =1
# SO READACCS WILL ENTER A WTLST CALL FOR SETJTAG .
# CMDAPARM = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE.
# SET AVEGEXIT TO CONTINUE AT CM/POSE
CM/DAPIC CA EBAOG
TS EBANK
INHINT
CM/DAP2C CS PIPTIME +1
# PRIO OF P62 L PRIO AVG.:PIPTM=PIPTM1
TS JETEM
CA POS1/2
AD POS1/2
AD TIME1 # OVFL GUARANTEED
ADS JETEM # C(A) = DELTA TIME SINCE PIPUP
CS FIVE
AD JETEM
CCS A
AD -CDUT+1
TCF -2
NOOP
AD ONE # SEND NO ZERO TO WTLST
TS CM/GYMDT # FOR RESTART
TC WAITLIST
EBANK= AOG
2CADR READGYMB
CS CM/SWIC1 # GAMDIFSW, GYMDIFSW, CM/DSTBY
MASK CM/FLAGS # DAPARM, .05GSW, LATSW, ENTRYDSP
AD CM/SWIC2 # SET CM/DSTBY, LATSW
# DISABLE ENTRY DISPLAY, SINCE DES. GIMB.
# CALC. (P62.3) GOES TO ENDEXIT.
TS CM/FLAGS
CA 7
TS BETA/180 # NECESSARY: NO OVFL CORRECTION
CA ONE # INITIALIZE THE TM OF BODY RATES VIA
TS SW/NDX # UPBUFF.
TC 2PHSCHNG # DOES INHINT/RELINT
OCT 40116 # SAVE TBASE6
OCT 05024
OCT 13000
TC POSTJUMP
# Page 1069
CADR P62.2
CM/SWIC1 OCT 16017
CM/SWIC2 = TEN # 00012 : CM/DSTBY, LATSW
-CDUT+1 OCT 77766
EBANK= T5LOC
T5IDLER1 2CADR T5IDLOC
# Page 1070
# THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC. THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES
# XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R. REQUIREMENT: TEMPORARY ERASE. JETEM, JETEM +1
#
# SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS. THAT IS,
# THE 0.1 SEC DAPS WILL MISS A CYCLE, AND WILL PICK UP AT THE NEXT 0.1 SEC UPDATE. MOST OF THE TIME THE 2 SEC
# ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL. HOWEVER, IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS
# STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE.
# THIS IS NECESSARY UNDER THE GROUNDRULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS.
EBANK= AOG
BANK 15
SETLOC ETRYDAP
BANK
COUNT 15/DAPEN
BODYRATE CA AMG # THESE ARE 2S COMPL NOS, BUT USE ANYWAY.
TC SPCOS
TS COSM
CA AOG # C(AOG) = AOG/180
TC SPSIN # SINO
TS SINO # SINO = SIN(AOG)
EXTEND
MP COSM
TS SINOCOSM # SO CM
CA AOG
TC SPCOS # COSO
TS COSO
EXTEND
MP COSM
TS COSOCOSM # CO CM
# PITCHDOT: Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO
CS -DELAMG
EXTEND
MP SINO
DXCH JETEM # 2 LOCS
CS -DELAIG
EXTEND
MP COSOCOSM
DAS JETEM
CA JETEM
XCH OLDELQ
TC RATEAVG
TS QREL # PITCHDOT = Q TCDU/180
# Page 1071
# YAWDOT: R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO
CS -DELAMG
EXTEND
MP COSO
DXCH JETEM
CA -DELAIG
EXTEND
MP SINOCOSM
DAS JETEM
CA JETEM
XCH OLDELR
TC RATEAVG
TS RREL # YAWDOT = R TCDU/180
# ROLLDOT: P TCDU/180 = ODOT TCDU/180 + IDOT TCDU/180 SINM
CA AMG
TC SPSIN
TS SINM
EXTEND
MP -DELAIG
TS JETEM
CA ZERO
DDOUBL # ROUND L INTO A
AD -DELAOG
AD JETEM
CS A
TS JETEM
XCH OLDELP
TC RATEAVG
TS PREL # ROLLDOT = P TCDU/180
# IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0
CCS GAMDOT
TC +2
TC NOGAMDUT
CS ROLL/180
TC SPSIN
EXTEND
MP GAMDOT
TS JETEM +1 # -SR GAMDOT
EXTEND
MP SINTRIM # SIN(-20) (FOR NOMINAL L/D = .3)
ADS PREL # PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180
CA ROLL/180
TC SPCOS
# Page 1072
COM
EXTEND
MP GAMDOT
ADS QREL # QREL TCDU/180=(Q-CR GAMDOT) TCDU/180
CS JETEM +1 # B( ) = -SR GAMDOT
EXTEND
MP COSTRIM # COS(-20) (FOR NOMINAL L/D = .3)
ADS RREL # RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180
NOGAMDUT CA BIT12 # CMDAPARM = 93D BIT 12
MASK CM/FLAGS
EXTEND
STBYDUMP BZF TASKOVER # DAP NOT ARMED.
CA POSMAX # PICK UP AT ATTRATES IN 10 MS OR SO.
TS TIME5
EXTEND
DCA ATDOTCAD
DXCH T5LOC
# DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
TC TASKOVER
EBANK= AOG
ATDOTCAD 2CADR ATTRATES
# Page 1073
# CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES.
#
# CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180
# BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180
# ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180
ATTRATES LXCH BANKRUPT # CONTINUE HERE VIA T5
EXTEND # TASK MAY BE SKIPPED AT RESTART.
QXCH QRUPT
CA SR
DOUBLE
TS CM/SAVE
# DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
CA QREL
AD ALFA/180
TC ANGOVCOR
TS ALFA/180
TC SPCOS
TS CALFA # CALFA
TS PHIDOT
EXTEND
MP PREL
XCH PHIDOT # CA PREL
EXTEND
MP RREL # CA RREL
TS BETADOT
CA ALFA/180
TC SPSIN
TS SALFA # SIN(ALFA)
EXTEND
MP RREL # SA RREL
ADS PHIDOT # CB PHIDOT, SAVED.
CS SALFA
EXTEND
MP PREL
ADS BETADOT # SAVE BETADOT TCDU/180
ADS BETA/180 # BETA DONE.
TC SPSIN
EXTEND
MP PHIDOT # NEGLECT CB IN CB PHIDOT
AD ALFA/180
TC ANGOVCOR
TS ALFA/180 # ALFA DONE.
# Page 1074
COM
AD ALFACOM
TC ANGOVCOR # JUST IN CASE ...
TS AK1
TS QAXERR # FOR PITCH FDAI AND EDIT.
CA PHIDOT # PHIDOT TCDU/180, NEGLECTING CB
AD ROLL/180
TC ANGOVCOR
TS ROLLTM # ROLL/180 FOR TM.
TS ROLL/180 # ROLL DONE.
# START YAW AUTOPILOT HERE. RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER.
CS BETA/180 # IF IN ATM, SAVE 'RAXERR' FOR TM DNLST.
AD BETACOM
TS RAXERR # IF OUTSIDE ATM, USE TM REGISTER 'RAXERR'
# AS A TEMPORARY. (DAP OPERATION IS IN INTERRUPT, SO
# IS OK.) FINAL C(RAXERR) AT END OF DAP CYCLE WILL
# BE R-AXIS ERROR.
CA BIT3 # .05GSW = 102D BIT3 SW=0, LESS .05G
MASK CM/FLAGS # SWITCH =1, GREATER THAN .05 G
EXTEND
BZF EXDAP # IF G LESS THAN .05
CS ONE # IF G GEQ THAN .05
TS CMDAPMOD # SAVE -1 FOR USE IN CM/RCS
TS AK1 # TO ZERO PITCH AND YAW FDAI NEEDLES
TS AK2 # IN ATM. (MODE =-1)
CS PREL # YAW ERROR = RREL - PREL TAN(ALFA)
EXTEND
MP SINTRIM # LET SIN(-20) BE APPROX FOR TAN(-20)
AD RREL
TC 2D/SDZ # GO TEST DZ. GET TAG: +0 IF IN DZ
INDEX A # +/- 1 IF NOT
CAF YJETCODE
TS JETEM
# START PITCH AUTOPILOT HERE. RATE DAMPING ONLY.
CA QREL
TC 2D/SDZ
EXDAPIN INDEX A # COME HERE FROM EX ATM DAP
CAF P/RJCODE
ADS JETEM # COMBINE ALL NEW BITS.
EXTEND # DOES NOT REQUIRE SAVING OLD CODES.
# Page 1075
WRITE PYJETS # SET PYCHAN TO DESIRED BIT CONFIG.
CCS JETAG
TC CM/RCS
TC CM/FDAI
TC CM/FDAIR -1 # (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1)
# Page 1076
# DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS.
3DDZ CCS A # YAWLIM=1.0-3/180=16384-273=16111
AD YAWLIM
TCF DZCOM
AD YAWLIM
TCF DZNOCOM
# BIASED DZ FOR EXT ATM DAP.
BIASEDZ TS JETEM2 # SAVE RATE/180. ERROR/180 IS IN L.
CCS A # START ERROR DZ.
CS CM/BIAS # = .6/180
TCF +2
CA CM/BIAS
AD L # BIAS THE ERROR.
LXCH Q # SAVE CALLERS RETURN ADDRESS.
TC 3DDZ # GO GENERATE THE ERROR BIT.
DXCH L # BIT TO L, RESTORE CALLERS Q.
4D/SDZ CCS JETEM2 # CAME HERE IN EXT ATM. C(L) = ERROR BIT
AD 4D/SLIM # IF RATE GEQ 4D/S, SET L=0 AND TAKE
TCF +2 # JET BITS ACCORDING TO SGN OF RATE.
AD 4D/SLIM
TS A
TCF +2 # RATE OK. CONTINUE
ZL # RATE GEQ 4 D/S. OVER RIDE ERROR BIT
XCH JETEM2 # AND CONTINUE TO GET SIGN.
2D/SDZ CCS A # COME HERE TO TEST IF A WITHIN 2DEG/S DZ
AD YDOTLIM # 1.0 - YDOT DZ (OR PDOT)
TCF +3
AD YDOTLIM # YDOT DZ = 2 DEG/SEC
DZCOM COM
DZNOCOM TS JETEM +1 # GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ
CA ZERO # SET C(A) = +0 INSIDE
TC Q
# Page 1077
# EXTRA ATMOSPHERIC DIGITAL AUTOPILOT
#
# 1. IF ABS(CALF) -C(45) POS, USE IF CALFA POS, CMDAPMOD= +0
# BETA: YAW ERROR = SGN(CALF) (BETACOM -BETA) IF CALFA NEG, CMDAPMOD= -0
# RATE = BETADOT IF CMDAPMOD = -0, RATE = RREL
# R-AXIS = CONTROL
#
# ROLL: ROLL ERROR = SGN(CALF) (ROLLC - ROLL) IF CMDAPMOD = -0, RATE DAMP ONLY.
# RATE = PREL
# P-AXIS = CONTROL
#
# 2. IF C(45) GEQ CALFA GEQ -C(45), USE CMDAPMOD = +1
# BETA: ROLL ERROR = SGN(-SALF) (BETACOM -BETA)
# RATE = BETADOT
# P-AXIS = CONTROL
#
# ROLL: YAW ERROR = SGN(SALF) (ROLLC - ROLL) RATE DAMP ONLY.
# RATE = RREL
# R-AXIS = CONTROL
#
# 3. FOR ALL CASES, USE
# ALFA: PITCH ERROR = (ALFACOM - ALFA)
# RATE = QREL
# Q-AXIS = CONTROL
EXDAP TS CMDAPMOD # +0 FOR NOW
CCS CALFA
AD C45LIM # =1.0-COS(45)
TCF +2
AD C45LIM
TS A
TCF EXDAP2 # HERE IF ABS(CALFA) L COS(45)
CCS CALFA # |CALFA| > 0.707
TCF +1 # CONTINUE IF POS; GO TO EXDAP4 IF NEG.
CCS P63FLAG # VALID VALUES ARE: -1, +1, +0.
TC EXDAP4
TC +2
TC EXDAP4
TC PHASCHNG # SINGLE PASS THROUGH HERE.
OCT 40334
CS ONE
TS P63FLAG # SET FLAG TO ASSURE SINGLE PASS.
CA NSEC
TC WAITLIST
EBANK= AOG
2CADR WAKEP62 # CALL TO TERMINATE P62 IN N SEC.
# Page 1078
# 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL
# TRANSIT TIME FROM ALFA=45 TO ALFA TRIM.
EXDAP4 CCS JETAG # ROLLJET INTERFACE TEST BETWEEN .1 SEC
TCF EXDAP3 # DAP AND THE 2 SEC CM/RCS DAP
TCF EXDAP3
CA ZERO
EXTEND # TURN OFF ROLL JETS IF ON AND WAIT
WRITE ROLLJETS # UNTIL START OF 2 SEC CM/RCS CYCLE
TS JETAG # RESTORE PROPER VALUE +0
# ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL.
EXDAP3 CCS CALFA # HERE IF ABS(CALFA) GEQ COS(45)
CA RAXERR # C()= BETACOM - BETA/180
TCF EXDAP1
CS ZERO
TS CMDAPMOD # FOR CM/RCS
CS RAXERR # COMPLEMENT OF YAW ERROR.
EXDAP1 TS RAXERR # FOR YAW FDAI
TS AK2 # WANT RAXERR FOR TM.
TS L
CCS CMDAPMOD # COORDINATE BETA CONTROL.
TC +3 # C(CMDAPMOD) CAN BE +1, +0, OR -0.
CA ONE # USE BETADOT TO COORD IN MODE +0
INDEX A # OTHERWISE USE RREL.
CA RREL
TC BIASEDZ # GO TEST DZ. +0 IF IN DZ, +-1 OTHERWISE
# IF GEQ 4D/S, SET ERROR BIT IN L=0
EXTEND
ROR LCHAN # L HAS BETA BIT
INDEX A
CAF YJETCODE
TS JETEM
CA QAXERR # ALFA ERROR.
TS L
CA QREL # FOR ALPHADOT USE QREL
TC BIASEDZ
EXTEND
ROR LCHAN
TCF EXDAPIN # CONTINUE ON IN DAP
EXDAP2 INCR CMDAPMOD # SET CMDAPMOD TO +1
CS ONE # INDICATE CHANGE FROM .1 SEC UPDATE TO
TS JETAG # TO 2 SEC FOR ROLL JETS. (IF CMDAPMOD
# =0 AND JETAG =-1, QUENCHES JETS IF ON)
CCS P63FLAG # IF FLAG WAS +1, SET =0.
TS P63FLAG
# Page 1079
NOOP
CCS SALFA # BETA CONTROL WITH P JETS
CS RAXERR # B()= BETACOM - BETA/180
TCF +2
CA RAXERR
TS PAXERR1 # TEMP SAVE. ERROR/180
EXTEND
MP HALF # CM/FDAI EXPECTS ERROR/360.
XCH PAXERR1 # ERROR/360 FOR FDAI, GET ERROR/180.
TS L
CCS SALFA
CS BETADOT # USE BETADOT TO COORD IN MODE +1
TC +2
CA BETADOT
TC BIASEDZ
EXTEND
ROR LCHAN
INDEX A
CAF P/RJCODE # GET ROLL CODE
EXTEND # ROLL CONTROL WITH YAW JETS.
WRITE ROLLJETS # WE,LL SKIP REGULAR ROLL SYST
CA ROLLHOLD # ROLL/180 AT CM/DAPON TIME.
EXTEND
MSU ROLL/180 # 1,S COMPL, BUT SO WHATS A BIT.?
TS L # FORCE A LIMIT CYCLE IN YAW RATE.
CCS SALFA
CA L # TO REMOVE ITS BIASING EFFECT ON M DOT.
TC EXDAP1
CS L
TC EXDAP1
NSEC DEC 2100 # 65 DEG/ 3 DEG/SEC
# IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT.
4D/SLIM DEC 16348 # 1.0 -4/180 D/S = 4/1800 EXP 14
YDOTLIM DEC 16366 # =1.0 - YDOT DZ= 16384 -18
# YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14
CM/BIAS DEC 55 # =.6/180 B14 = 55
YAWLIM DEC 16055 # YAWLIM=1.0-3.6/180=16384-329=16055
C45LIM DEC .29289 # =1.0-COS(45)
SINTRIM DEC -.34202 # SIN(-20) (FOR NOMINAL L/D = .3)
COSTRIM DEC .93969 # COS(-20) (FOR NOMINAL L/D = .3)
# TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA
# USED DURING ATMOSPHERIC COORDINATION. OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY
# FROM TRIM, SO USE ON-BOARD ESTIMATES.
# Page 1080
# JET CODE TABLES FOLLOW _
OCTAL 00120 # POS Y
YJETCODE OCTAL 00000 # RCS JET BITS
OCTAL 00240 # NEG Y
OCTAL 00005 # POS R JET BITS ALSO POS P JET BITS
P/RJCODE OCTAL 00000
OCTAL 00012 # NEG R ALSO NEG P
# Page 1081
# RCS THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP.
# THE TASK SETJTAG SETS A FLAG IN JETAG TO SIGNIFY THAT ROLL UPDATE IS DUE. IN ROUGHLY 5 CS BPDYRATE WILL BE
# EXECUTED AND JETAG WILL CAUSE CM/RCS TO ACT ON ROLLC IMMEDIATELY THEREAFTER. THE
# TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE
# NEXT UPDATE.
SETJTAG CS TIME1 # SAVE NOMINAL UPDATE TIME FOR SYNCH
TS TUSED
# THE 5 CS APPEARS IN TIMETST.
CA ONE # RATHER THAN INCR, FOR SAFETY
TS JETAG # SET JETAG=1 TO CAUSE CM/RCS TO BE
TC PHASCHNG
OCT 00001
TC TASKOVER # EXECUTED AFTER NEXT BODYRATE UPDATE
# PREDICTIVE ROLL SYSTEM ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC. THE FOLLOWING CALCULATES THE
# TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V). PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE
# THE DESIRED TRAJECTORY. ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL T (2 SEC) ARE ENTERED IN
# WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE.
HALFPR EQUALS NEG1/2 +1
# CLEAR JETAG BEFORE TIMETST. SET TO +0 TO SHOW
# ROLL DAP CALLED. IN EVENT OF RESTART, BODYRATE
# MAY MISS A CYCLE. CM/RCS WILL MISS A CYCLE ONLY
# IF A RESTART OCCURS AFTER TIMETST COMMENCES.
CM/RCS CS ONE
TS JNDX # SET NDX FOR POS ROLL, AND CHANGE LATER
CS 2T/TCDU # ROLLDOT = DELAOG + DELAIG SINM =DELR
EXTEND
MP PREL # DELR/180 = RDOT TCDU/180 = RDOT/1800
AD L # -2 RDOT T/180 IN L
TS -VT/180 # SAVE -2VT/180 HERE
CS ROLL/180
TS SR # SAVE (-R/180) /2
CS CM/FLAGS
MASK BIT4 # LATSW = 101D BIT4
EXTEND # ROLL OVER TOP $
BZF GETLCX # NO, TAKE SHORTEST PATH
ADS CM/FLAGS # YES, ENFORCE ROLL OVER TOP.. (BIT =0)
CA ROLLC # (ROLLC/180) /2
AD SR # -(R/180) /2
XCH LCX/360 # DIFFERENT X REQD HERE. DISCONT AT 180.
TCF COMPAT # POSSIBLE OVFL ABOVE.
# Page 1082
GETLCX CA POS1/2 # FORM RCOM/360
DOUBLE
AD ROLLC
XCH LCX/360 # IGNORE POSSIBLE OVFL.
CA SR # FORM -R/360
AD NEG1/2
AD NEG1/2 # IGNORE OVFL
XCH LCX/360 # -R/360
ADS LCX/360 # LCX/360 = RCOM/360 -R/360 RANGE (-1,1)
# DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2 OVFL ?
CCS -VT/180 # TAKE SHORTEST ANGULAR PATH
AD ONE # (BASED ON SINGLE JET ACCELERATION)
TCF +2
AD ONE
EXTEND
MP -VT/180 # C(-VT/180) = -2 VT/180
EXTEND
MP 1/16A1 # = 180/(16 A1 TT)
EXTEND
DV CALFA
TS L
CCS LCX/360
CAF POS1/2
TCF +2
CS POS1/2
AD LCX/360 # IS LCX/360 LESS THAN 180 DEGS $
AD L
TS L
TCF COMPAT # YES, GO ON.
TRTAGXPI INDEX A # NO, SHIFT X BY - SGN(X) 2 PI
CS HALFPR # +A YIELDS -1/2
DOUBLE
ADS LCX/360
COMPAT CA LCX/360 # CORRECT FOR ASSUMED COORD TURN.
EXTEND
MP CALFA # COS ALFA
TS LCX/360 # SCALED LCX OK HERE.
CCS CMDAPMOD # FOUR POSSIBILITIES HERE
TC DZCALL1 # EXIT, SETTING JETAG=0. (C(A)=0)
# ALL 3 AXES ALREADY DONE.
TC +1 # G LESS THAN .05. CA POS. CONTINUE
CA LCX/360 # G GEQ .05. CONTINUE IN CM/RCS
TS LCX/360 # CMDAPMOD=-0. DAMPING ONLY. SET LCX=0
TS ERRORZ # INITIAL ROLL ERROR (UNREFLECTED) FOR TM.
TS PAXERR1 # SAVE LCX FOR FDAI AND EDIT. (/360)
# Page 1083
CA -VT/180 # GET - 2 VT/180
TS SR
CA SR # GET -VT/180, LEAVE -VT/360 IN SR FOR DZ
TS -VT/180E # DIAGNOSTIC ****
XCH -VT/180 # NOW CONTENTS OF -VT/180 AS LABELED
EXTEND
MP -VT/180 # B(A) = -ZVT/180
EXTEND
MP 180/8ATT
TS VSQ/4API
# IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 - .5 BUFLIM/360 POS?
WHICHALF DOUBLE # FOR SECOND BURN, A1
COM
AD BUFLIM # =BUFLIM/(2 360)
TS L
CCS -VT/180
CS L
TCF +2
CA L
AD LCX/360
AD BUFLIM
EXTEND
BZMF REFLECT # POINT (X,V) IN LHP.
# IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360 NEG?
COM
AD BUFLIM
AD BUFLIM
EXTEND
BZMF DZ1 # POINT (X,V) IN RHP.
# IS POINT WITHIN VELOCITY DZ?
CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG?
AD VSQ/4API
EXTEND
BZMF DZCALL # YES.
# POINT IS IN BUFFER ZONE. THRUST TO X AXIS.
CS JNDX
TS JNDX1
TC OVRLINE1
REFLECT CS -VT/180 # RELFECT LHP INTO RHP REL TO TERM CONTR
TS -VT/180
TS SR # -VT/360 SAVED FOR DZ.
# Page 1084
CS LCX/360
TS LCX/360
CS JNDX
TS JNDX
# IS VSQ/4API - (VSQ/4API) MIN NEG?
DZ1 CS VSQMIN # IS VSQ/4API - (VSQ/4API) MIN NEG $
AD VSQ/4API
EXTEND
BZMF DZ2 # YES, GO TEST FURTHER.
TCF MAXVTEST # NO
# IS X/360 - XMIN/360 -VT/360 NEG?
DZ2 CS XMIN/360 # XMIN/360 = 4/360
AD LCX/360
AD SR # C(SR) = -VT/360
EXTEND # IS X/360 - XMIN/360 -VT/360 NEG $
BZMF DZCALL # YES, IN DZ. EXIT SETTING JETAG=0.
# IS XD/360 - VM/360K - XS/360 POS?
MAXVTEST CS JNDX
TS JNDX1 # NOW CAN SET JNDX1 FOR TON2 JETS.
CS XS/360 # XS/360 = (XMIN -YMIN/K) /360
AD VSQ/4API
AD LCX/360
TS XD/360 # XD/360= X/360 +VSQ/4API X INTERCEPT
# BUT C(XD/360) = (XD - XS) /360
AD -VM/360K # X INTERCEPT FOR MAX V (VM)
COM
EXTEND
BZMF MAXVTIM1 # YES, THRUST TO VM
CA XD/360
EXTEND
MP KTRCS
DDOUBL # GO SAVE PREDICTED DRIFTING VELOCITY.
TC GETON1 # INSURE THAT Q IS POS AS TAG.
MAXVTIM1 EXTEND
ZQ # SET +Q AS TAG
CS -VMT/180
GETON1 TS VDT/180 # VDT/180 OR VMT/180
AD -VT/180
DOUBLE
EXTEND
MP 180/8ATT
TS TON1 # TON1 / 4T
# Page 1085
EXTEND
BZMF OVRLINE
TC GETON2 # RESET Q POS IF CAME FROM MAXVTIM1
OVRLINE CCS Q
TCF OVRLINE1
MAXVTIM2 CA JNDX1 # ABOVE VM, SO THRUST DOWN
TS JNDX
CS TON1
TCF OVRLINE2 +1
OVRLINE1 CS -VT/180 # DRIFT AT V
TS VDT/180
OVRLINE2 CA ZERO
TS TON1
GETON2 CA VDT/180 # VDT/180, OR VMT/180 OR VT/180
DOUBLE
EXTEND
MP 180/8ATT
DOUBLE # FOR SECOND BURN, A1
TS TON2 # = TON2 / 4T
COM
EXTEND
BZMF GETOFF
TS TON2
CA JNDX
TS JNDX1
GETOFF CS TON2 # TON2 / 4T
EXTEND
MP VDT/180 # VDT/180, OR VT/180, OR VMT/180.
TS XD/360 # USE AS TEMP
CS VDT/180
EXTEND
BZF TOFFOVFL # OMIT THE DIVIDE IF DEN = 0.
AD -VT/180
EXTEND
MP TON1 # TON1 /4T
AD XD/360 # TEMP = -VDT/180 / 2 TON2
AD LCX/360
ZL
XCH L # TEST THE DIVIDE
EXTEND
DV VDT/180
EXTEND
BZF GETOFF2 # DIVIDE OK
TOFFOVFL CA 2JETT # OVFL, USE 2T FOR CONVENIENCE.
TCF TIMSCAL
# Page 1086
GETOFF2 XCH L # GET NUMERATOR.
EXTEND
DV VDT/180 # C(A) = TOFF / 2T
EXTEND
MP 2JETT
TIMSCAL TS TOFF # IN CS
CAF 4JETT
EXTEND
MP TON1 # C(TON1) = TON1 / 4T
TS TON1 # IN CS
CAF 4JETT
EXTEND
MP TON2 # C(TON2) = TON2 / 4T
TS TON2 # IN CS
CA ZERO # CANNOT REDO AFTER TIMETST. TUSED GONE
TS JETAG # SET +0 TO SHOW ROLL DAP CALLED.
# CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE
# INITIALIZED. ALSO CAUSE NEEDLES TO BE DONE ON EXIT
# AND ON ALTERNATE PASSES THROUGH CM/DUMPR.
CA ONE
TS SW/NDX
# Page 1087
# TIMETEST SECTION FOR RCS
#
# ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASABLE LOCS TON1, TOFF, TON2, JNDX
# JNDX1. SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY
# (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM (HERE CHOSEN AS 2 CS) AND
# (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC).
# TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS. THUS: TON1, T1BITS,
# TOFF, TBITS, TON2, T2BITS. OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL.
# SECTION JETCALL BELOW PROCESSES THIS LIST.
TIMETST CA TIME1 # CORRECT FOR POSSIBLE TIME1 OVFL.
AD POS1/2
AD POS1/2 # OVFL GUARANTEED.
ADS TUSED # B(TUSED) =-TUSED =-OLTIME1
CA -T-3 # =-T +2 -5 (SEE SETJTAG)
# THE +2 REQUIRED FOR PROPER BRANCH.
ADS TUSED # TUSED = TIME(K)-TIME(K-1)-T+2
CS TWO # USE 2 SINCE TIME3 UNCERTAIN TO 1
AD TON1
EXTEND
BZMF TIMETST1
INDEX JNDX
CAF P/RJCODE
TS T1BITS
CA TON1
ADS TUSED
EXTEND
BZMF TOFFTEST
CA ZERO
TCF TIMETST3
TIMETST1 CS ONE
TS TON1
TOFFTEST CS TWO
AD TOFF
EXTEND
BZMF TIMETST2
CA TOFF
ADS TUSED
EXTEND
BZMF TON2TEST
CA ZERO
TCF TIMETST4
TIMETST2 CS ONE
TS TOFF
TON2TEST CS TWO
AD TON2
EXTEND
BZMF TIMETST5
# Page 1088
INDEX JNDX1
CAF P/RJCODE
TS T2BITS
CA TON2
ADS TUSED
EXTEND
BZMF JETCALL1
CA ZERO
TCF TIMETST5 +1
TIMETST3 TS TON1
CS ONE
TIMETST4 TS TOFF
TIMETST5 CS ONE
TS TON2
# SECTION JETCALL EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING
# JET CODES. A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS
# EXECUTED. A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPONDING JET BITS ARE TO BE
# EXECUTED. A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED. IN EVENT OF +0 OR -1, THE
# SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION. THUS JET BITS TO BE EXECUTED MAY COME FROM MORE
# THAN ONE REGISTER.
JETCALL1 CA ZERO
TS OUTTAG
TS NUJET
TS TBITS
DXCH TON1
CCS A
TCF JETCALL2 # CALL WTLST
JETCALL3 LXCH NUJET # WTLST ENTRIES COME HERE FROM JETCALL
CS ONE
DXCH TOFF
CCS A
TCF JETCALL2 # CALL WTLST
LXCH NUJET
CS ONE
DXCH TON2
CCS A
TCF JETCALL2 # CALL WTLST
LXCH NUJET
TC JETACTN # C(A) = +0
JETCALL2 XCH L # SAVE JET BITS FOR AFTER WTLST CALL
ADS NUJET
XCH L
AD ONE # RESTORE FOR CCS
TC WAITLIST
EBANK= AOG
2CADR JETCALL
JETACTN CA NUJET # COME HERE WHEN DESIRED JET CODE IS KNOWN
# Page 1089
EXTEND # NO NEED TO SAVE OLD CODES
WRITE ROLLJETS # SET RCHAN TO NEW BIT CONFIG.
CCS OUTTAG
TC TASKOVER
ROLLDUMP TC CM/FDAIR
# EDIT DUMP AT ABOVE LOCATION.
# WAITLIST ENTRIES COME HERE.
JETCALL CAF BIT2 # CM/DSTBY =103D BIT2
TS OUTTAG # SIGNIFY WTLST ENTRY
MASK CM/FLAGS # IS SYSTEM DISABLED $
EXTEND
BZF JETACTN +1 # YES, QUENCH ROLL JETS, IF ON AND EXIT.
ZL # NO, CONTINUE.
TCF JETCALL3 # C(A) POS, C(L) = +0
# DEAD ZONE ENTRIES COME HERE.
DZCALL CS CMDAPMOD # POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0.
MASK BIT1
TS L # C(L)=0 FOR -0: C(L)=1 FOR -1 OR +0.
INDEX A # ERASABLE ORDER: ROLLTM, ROLLC, ROLLC +1.
CA ROLLTM # GET ROLL/180 OR ROLLC (/360).
INDEX L
TS A # IF C(L)=1, STORE 'ROLLC' IN 'L'.
AD L # (BOTH MUST BE SCALED DEG/180)
TC ANGOVCOR # C(A)=ROLL/180 OR 2 ROLLC.
TS ROLLHOLD # IF CMDAPMOD =-0, SAVE ROLL ANGLE.
# OTHERWISE, SAVE ROLL COMMAND.
CA ZERO # COME HERE IF IN DZ, AND CANCEL JETS.
EXTEND # INHINT NOT NEEDED HERE.
WRITE ROLLJETS # TURN OFF ALL ROLL JETS.
TS VDT/180 # SET =0 TO SHOW IN DEAD ZONE.
DZCALL1 TS JETAG # COME HERE WITH C(A)=0.
TC ROLLDUMP
# Page 1090
# CM ENTRY FDAI DISPLAY
#
# CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES. DISPLAY ATTITUDE ERRORS AS FOLLOWS:
# ATM DAP: DISPLAY ONLY ROLL ATTITUDE ERROR.
# EXT ATM DAP: PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC.
# ROLL ROLLC-ROLL
# PITCH ALFAC-ALFA
# YAW BETAC-BETA
#
# DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW.
# THE SUBROUTINE NEEDLER EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE.
# COME HERE EACH .1 SEC. (CMDAPMOD=+1 COMES BELOW)
CM/FDAI CS PHIDOT # INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES
EXTEND
MP CALFA # FOR ASSUMED COORDINATION.
EXTEND
MP HALF
ADS PAXERR1 # ROLL ERROR/360. OVFL OK.
# EDIT DUMP AT ABOVE LOCATION.
CM/FDAIR CA HALF
EXTEND
MP PAXERR1 # FULL SCALE FOR FDAI (ROLL) IS 67.5 D
TS PAXERR # .25 (ROLL ERROR/180) FOR FDAI NEEDLE.
# PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND
# TO UPDATE THE NEEDLE DISPLAY ON THE NEXT.
# SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM
# IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON
# THE SUBSEQUENT PASS.
CM/DUMPR CS SW/NDX # COMBINED ALTERNATION SWITCH AND FILE
TS SW/NDX
EXTEND # INDEX.
BZMF CMTMFILE # FILE STARTS WITH SW/NDX +1 AND GOES TO
# ENDBUF.
# INDEX IS POS FOR NEEDLES.
TC IBNKCALL
CADR NEEDLER
TC CM/END
# INDEX IS NEG FOR TM FILE
CMTMFILE AD THREE
EXTEND
BZMF SAVENDX
# Page 1091
CA TIME1 # INITIALIZE THE TM LIST IN UPBUFF.
TS CMTMTIME
CS THIRTEEN # INITIALIZE COUNTER
SAVENDX TS SW/NDX # A NEGATIVE NUMBER.
EXTEND
DCA PREL
INDEX SW/NDX
DXCH ENDBUF -1
CA RREL
INDEX SW/NDX
TS ENDBUF +1
CM/END CA CM/SAVE
TS SR
# DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
EXTEND
DCA T5IDLER2
DXCH T5LOC
TC RESUME
EBANK= T5LOC
T5IDLER2 2CADR T5IDLOC
# DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE
# USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION.
# THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D
# DATA POINTS EACH 1 SEC. TM LIST IS READ TWICE
# EACH 2 SECONDS.
#
# THE SEQUENCE IS: SP TIME INITIAL TIME
# SWITCH ALSO INDEX.
# P ROLL RATE
# Q PITCH RATE
# R YAW RATE
# ETC.
#CMTMTIME = UPBUFF
#SW/NDX = UPBUFF +1
#ENDBUF = UPBUFF +16D
# Page 1092
# SPACER
#
# CONSTANTS USED IN THE ROLL CONTROL SYSTEM:
# CONSTANTS ARE THE FOLLOWING: A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC,
# XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE
# XBUF = 4 DEG
-T-3 DEC -203 # CS
VSQMIN DEC .61050061 E-3 # VSQ MIN/4 A PI = 4/(4 (9.1) 180)
2T/TCDU = OCT50 # T/TCDU EXP-14 TCDU = .1SEC
180/8ATT DEC .61813187 # 180/(8 (9.1) 4)=(180/ATT) EXP -3
-VMT/180 = -VM/360K # = 20 (2) / 180
2JETT = 4SECS # CS 2 (2) 100 INTEGER
4JETT DEC 800 # CS 4 (2) 100 INTEGER
XMIN/360 DEC 182 # XMIN/360 = 4/ 360 EXP 14 = 182 INTEGER
-VM/360K DEC -.22222222 # =-20/( 360 (.25))
1/16A1 = 180/8ATT
# 1/16A1 = 180/(16 A1 TT)
# = 180/(16 4.55 4)
XS/360 DEC 91 # =(XMIN +VI (T-1/K))/360 = 2/360 EXP 14
BUFLIM = XS/360 # 4/(2 360)
KTRCS = HALF # KT = (.25) 2 = .5
# *** END OF TVCDAPS .011 ***
================================================
FILE: Comanche055/CONIC_SUBROUTINES.agc
================================================
# Copyright: Public domain.
# Filename: CONIC_SUBROUTINES.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), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1262-1308
# Mod history: 2009-05-08 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
# 2009-05-20 RSB Corrected: Fixed four interpreter
# instructions.
#
# 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
# Page 1262
# PROGRAM DESCRIPTION -- ENTIRE CONIC SUBROUTINE LOG SECTION DATE -- 1 SEPTEMBER 1967
# MOD NO. -- 0 LOG SECTION -- CONIC SUBROUTINES
# MOD BY KRAUSE ASSEMBLY -- COLOSSUS REVISION 88
#
# FUNCTIONAL DESCRIPTION --
# THE FOLLOWING SET OF SUBROUTINES SOLVE VARIOUS PROBLEMS INVOLVING THE TRAJECTORY PRODUCED BY A CENTRAL
# INVERSE-SQUARE FORCE ACTING ON A POINT MASS, AS OUTLINED IN THE CMC AND LGC LUNAR LANDING MISSION GSOP, SECTION
# 5.5.1.2. A GENERAL USAGE POINT-OF-VIEW WAS TAKEN IN FORMULATING, MECHANIZING, AND SCALING THE SUBROUTINES,
# RATHER THAN OPTIMIZING EACH FOR A PARTICULAR USE. THEREFORE, MULTIPLE USAGE CAN BE MADE OF THE SUBROUTINES
# INVOLVING ANY REALISTIC SET OF CONSTRAINTS. IT SHOULD BE NOTED THAT ONLY ONE SET OF CODING IS USED, WHETHER THE
# EARTH, MOON, OR ANY OTHER CELESTIAL BODY IS SPECIFIED AS THE CENTRAL BODY OF THE PROBLEM, PROVIDED ONE OBSERVES
# THE INHERENT SCALE CHANGE REQUIRED IN POSITION, VELOCITY, MU, AND TIME, AS OUTLINED IN MISSION PROGRAMMING
# DEFINITION MEMO NO. 10. THIS CAN BE ACCOMPLISHED BY SIMPLY ADDING TO THE MUTABLE AND INITIALIZING THE SUBROUTINES
# APPROPRIATELY.
#
# DUE TO THE UNIFORMITY OF THE EQUATIONS INVOLVED, CODING WAS MINIMIZED BY TREATING INDIVIDUAL EQUATIONS AND
# BLOCKS OF EQUATIONS AS SUBROUTINES OF LOWER RANK WHENEVER POSSIBLE. AS A RESULT, THREE BY-PRODUCTS SUBROUTINES,
# DIRECTLY USABLE AS INDEPENDENT SUBROUTINES, WERE GENERATED.
#
# RESTRICTIONS --
# THE ONLY LIMITATION IN THE SCOPE OF THE PROBLEM WHICH CAN BE SOLVED BY A PARTICULAR SUBROUTINE IS THE SCALING
# LIMIT OF EACH PARAMETER AS SPECIFIED IN THE GSOP. THESE SCALING LIMITS WERE CHOSEN SO THAT ALL FEASIBLE TRAJECTORIES
# COULD BE HANDLED.
#
# SINCE THE SUBROUTINES (EXCEPT KEPLER) USE COMMON SUBROUTINES OF LOWER RANK WHICH USE ERASABLE OTHER THAN
# THE PUSHLIST (DUE TO ITS LIMITED SIZE) AND COMMON INTERPRETIVE SWITCHES, THE CONIC SUBROUTINES CANNOT BE ALLOWED
# TO INTERRUPT EACH OTHER. IT IS UP TO THE USER TO GUARANTEE THIS CONDITION.
# Page 1263
# PROGRAM DESCRIPTION -- KEPLER SUBROUTINE DATE -- 11 OCTOBER 1967
# MOD NO. -- 1 LOG SECTION -- CONIC SUBROUTINES
# MOD BY KRAUSE ASSEMBLY -- COLOSSUS 103 AND SUNDANCE 222
# MOD NO. -- 2 (AUGUST 1968) BY ROBERTSON: TO PERMIT BACKDATING BY MORE THAN ONE ORBITAL PERIOD.
# MOD NO. -- 3 (DEC 1968) BY ROBERTSON: SUPPRESSION OF X-MODULO-ING
# MOD NO. -- 4 (JAN 1969) BY ROBERTSON: CLEAR OVFIND AT KEPLER ENTRY
#
# FUNCTIONAL DESCRIPTION --
# THIS SUBROUTINE, GIVEN AN INITIAL STATE VECTOR AND THE DESIRED TRANSFER TIME THROUGH WHICH THE STATE IS TO
# BE UPDATED ALONG A CONIC TRAJECTORY, COMPUTES THE NEW, UPDATED STATE VECTOR. THE TRAJECTORY MAY BE ANY CONIC
# SECTION -- CIRCULAR, ELLIPTIC, PARABOLIC, HYPERBOLIC, OR RECTILINEAR WITH RESPECT TO THE EARTH OR THE MOON. THE
# USE OF THE SUBROUTINE CAN BE EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WITHOUT
# INTRODUCING ANY CODING CHANGES, ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY. AN ITERATION
# TECHNIQUE IS UTILIZED IN THE COMPUTATION.
#
# IF A NEGATIVE TIME-OF-FLIGHT IS INPUT, THE PROGRAM WILL SOLVE FOR THE STATE WHICH WOULD BE PRODUCED BY
# EXTRAPOLATING THE POSITION BACKWARD IN TIME.
#
# IF THE ABSOLUTE VALUE OF THE DESIRED TRANSFER TIME EXCEEDS THE ORBITAL PERIOD, THE SUBROUTINE, THROUGH A
# MODULAR TECHNIQUE, WILL COMPUTE THE STATE CORRESPONDING TO THE DESIRED TIME (WHETHER POSITIVE OR NEGATIVE).
#
# THE RESTRICTIONS ARE --
# 1. (PREVIOUS RESTRICTION ON THE NEGATIVE DESIRED TRANSFER TIME IS NOW DELETED.)
# 2. THE PARAMETERS IN THE PROBLEM CANNOT EXCEED THEIR SCALING LIMITS AS SPECIFIED IN THE GSOP. IF
# ANY OF THESE LIMITS ARE EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
#
# THE NUMBER OF ITERATIONS AND, THEREFORE, THE COMPUTATION SPEED IS DEPENDENT ON THE ACCURACY OF THE
# GUESS, XKEPNEW. THE AGC COMPUTATION TIME IS APPROXIMATELY .061 SECONDS FOR INITIALIZATION, .065 SECONDS FOR THE
# FINAL COMPUTATIONS, PLUS .083 SECONDS FOR EACH ITERATION.
#
# REFERENCES --
# R-479, MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP, SECTION 5.5, SGA
# MEMO 67-4.
#
# INPUT -- ERASABLE INITIALIZATION REQUIRED
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# RRECT +29 FOR EARTH DP INITIAL POSITION VECTOR IN METERS
# +27 FOR MOON
# Page 1264
# VRECT +7 FOR EARTH DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND
# +5 FOR MOON
# X1 (38D) NONE INDEX REGISTER SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
# RESPECTIVELY, IS THE CENTRAL BODY
# TAU +28 DESIRED TRANSFER TIME IN CENTISECONDS (DP)
# MAY BE POS OR NEG AND ABSOLUTE VALUE MAY BE GREATER OR LESS THAN ONE ORBITAL PERIOD.
# XKEPNEW +17 FOR EARTH DP GUESS OF ROOT X OF KEPLERS EQN IN SQRT(METERS).SIGN SHOULD AGREE WITH THAT OF TAU.
# +16 FOR MOON AND ABS VALUE SHOULD BE LESS THAN THAT CORRESPONDING TO A PERIOD, VIZ, 2PI SQRT(SEMI-
# MAJOR AXIS), FOR SPEED OF CONVERGENCE, BUT IF EITHER CONDITION FAILS, XKEPNEW IS RESET
# BY KEPLER TO A POOR BUT VALID GUESS.
# TC +28 DP PREV. VALUE OF TIME IN CENTISECS. MUST BE LESS THAN ONE ORBITAL PERIOD.
# XPREV +17 FOR EARTH DP PREV. VALUE OF X IN SQRT(METERS). MUST BE LESS THAN AN X CORRESPONDING TO ONE
# +16 FOR MOON ORBITAL PERIOD, VIZ, 2PI SQRT(SEMI-MAJOR AXIS)
#
# SUBROUTINES CALLED --
# DELTIME
#
# CALLING SEQUENCE AND NORMAL EXIT MODES --
# KEPRTN-2 GOTO # MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
# KEPRTN-1 KEPLER # RETURNS WITH XPREV IN MPAC. PL IS AT 0.
# KEPRTN ... # CONTINUE
#
# KEPLER MUST NOT BE CALLED DIRECTLY SINCE AN INTERRUPTION OF IT WOULD DESTROY THE ERASABLES IT NEEDS TO COMPLETE
# THE INTERRUPTED JOB. THEREFORE THE USER MUST CALL CSMCONIC OR LEMCONIC WHICH GUARANTEES NO INTERRUPTS AND WHICH
# ALSO CALLS KEPPREP TO COMPUTE A GUESS OF XKEPNEW.
#
# ABORT EXIT MODES --
# NONE
#
# OUTPUT --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# RCV +29 FOR EARTH DP TERMINAL POSITION VECTOR IN METERS
# +27 FOR MOON
# VCV +7 FOR EARTH DP TERMINAL VELOCITY VECTOR IN METERS/CENTISEC
# +5 FOR MOON
# TC +28 DP TRANSFER TIME IN CENTISECS TO WHICH KEPLER CONVERGED. ALWAYS LESS THAN ONE PERIOD.
# XPREV +17 FOR EARTH DP VALUE OF X IN SQRT(METERS) TO WHICH KEPLER CONVERGED. ALWAYS LESS THAN THE X
# +16 FOR MOON CORRESPONDING TO ONE PERIOD.
# Page 1265
# FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
#
# DEBRIS --
# PARAMETERS WHICH MAY BE OF USE --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# URRECT +1 DP UNIT VECTOR OF INITIAL POSITION
# R1 +29 FOR EARTH DP MAGNITUDE OF INITIAL POSITION IN METERS
# +27 FOR MOON
# ALPHA -22 FOR EARTH DP INVERSE OF SEMIMAJOR AXIS IN 1/METERS
# -20 FOR MOON
# TMODULO +28 DP INTEGRAL NUMBER OF PERIODS IN CENTISECS, WHICH WAS SUBTRACTED FROM TAU. TO PRODUCE A
# TAU. OF LESS THAN ONE PERIOD.
#
# PARAMETERS OF NO USE --
# DP PARAMETERS -- EPSILONT, DELX, DELT, RCNORM, XMODULO, PLUS PUSHLIST REGISTERS 0 THROUGH 39D.
# Page 1266
# PROGRAM DESCRIPTION -- LAMBERT SUBROUTINE DATE -- 1 SEPTEMBER 1967
# MOD NO. -- 0 LOG SECTION -- CONIC SUBROUTINES
# MOD BY KRAUSE ASSEMBLY -- COLOSSUS REVISION 88
#
# FUNCTIONAL DESCRIPTION --
# THIS SUBROUTINE CALCULATES THE INITIAL VELOCITY REQUIRED TO TRANSFER A POINT-MASS ALONG A CONIC TRAJECTORY
# FROM AN INITIAL POSITION TO A TERMINAL POSITION IN A PRESCRIBED TIME INTERVAL. THE RESULTING TRAJECTORY MAY BE
# A SECTION OF A CIRCLE, ELLIPSE, PARABOLA, OR HYPERBOLA WITH RESPECT TO THE EARTH OR THE MOON. THE USE OF THE
# SUBROUTINE CAN BE EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WITHOUT INTRODUCING ANY
# CODING CHANGES, ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY. AN ITERATION TECHNIQUE IS
# UTILIZED IN THE COMPUTATION.
#
# THE RESTRICTIONS ARE: --
# 1. RECTILINEAR TRAJECTORIES CANNOT BE COMPUTED.
# 2. AN ACCURACY DEGRADATION OCCURS AS THE COSINE OF THE TRUE ANOMALY DIFFERENCE APPROACHES +1.0.
# 3. THE ANGLE BETWEEN ANY POSITION VECTOR AND ITS VELOCITY VECTOR MUST BE GREATER THAN 1 DEGREE 47.5 MINUTES
# AND LESS THAN 178 DEGREES 12.5 MINUTES.
# 4. NEGATIVE TRANSFER TIME IS AMBIGUOUS AND WILL RESULT IN NO SOLUTION.
# 5. THE PARAMETERS IN THE PROBLEM MUST NOT EXCEED THEIR SCALING LIMITS SPECIFIED IN THE GSOP. IF THE
# LIMITS ARE EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
#
# THE NUMBER OF ITERATIONS AND, THEREFORE, THE COMPUTATIONS SPEED IS DEPENDENT ON THE ACCURACY OF THE FIRST
# GUESS OF THE INDEPENDENT VARIABLE, COGA. THE AGC COMPUTATION TIME IS APPROXIMATELY
# .105 SECONDS FOR INITIALIZATION, .069 SECONDS FOR FINAL COMPUTATIONS, PLUS .205 SECONDS FOR EACH ITERATION.
#
# REFERENCES --
# R-479, MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP -- SECTION 5.5, SGA MEMO 67-8,
# SGA MEMO 67-4.
#
# INPUT -- ERASABLE INITIALIZATION REQUIRED
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# R1VEC +29 FOR EARTH DP INITIAL POSITION VECTOR IN METERS
# +27 FOR MOON
# R2VEC +29 FOR EARTH DP TARGET OR TERMINAL POSITION VECTOR IN METERS
# +27 FOR MOON
# TDESIRED +28 DP DESIRED TRANSFER TIME IN CENTISECONDS
# X1 (38D) NONE INDEX REGISTER SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
# RESPECTIVELY, IS THE CENTRAL BODY
# GEOMSGN NONE SP +.5 IF DESIRED TRANSFER ANGLE IS LESS THAN 180 DEGREES, -.5 IF GREATER THAN 180 DEG.
# GUESSW NONE AN INTERPRETER SWITCH TO BE SET IF NO GUESS OF COGA IS AVAILABLE, CLEAR IF A GUESS OF
# Page 1267
# COGA IS TO BE USED BY LAMBERT
# COGA +5 DP GUESS OF COTANGNT OF FLIGHT PATH ANGLE (MEASURED FROM VERTICAL). THIS WILL BE
# IGNORED IF GUESSW IS SET.
# NORMSW NONE AN INTERPRETER SWITCH TO BE SET IF UN IS TO BE AN INPUT TO THE SUBROUTINE, CLEAR IF
# LAMBERT IS TO COMPUTE ITS OWN NORMAL (UN).
# UN +1 DP UNIT NORMAL TO THE DESIRED ORBIT PLANE IN THE DIRECTION OF THE RESULTING ANGULAR
# MOMENTUM VECTOR. THIS WILL BE IGNORED IF NORMSW IS CLEAR.
# VTARGTAG NONE A S.P. TAG TO BE SET TO ZERO IF LAMBERT IS TO COMPUTE THE VELOCITY AT R2VEC AS WELL AS
# AT R1VEC.
#
# SUBROUTINES CALLED --
# GEOM, GETX, DELTIME, ITERATOR, LAMENTER (PART OF NEWSTATE)
#
# CALLING SEQUENCE AND NORMAL EXIT MODES --
# L CALL # MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
# L+1 LAMBERT # RETURNS WITH PL AT 0 AND WITH VVEC IN MPAC IF VTARGTAG WAS WAS NON-ZERO OR VTARGET
# # IN MPAC IF VTARGTAG WAS ZERO
# L+2 BON # CONTINUE IF SOLNSW CLEAR SINCE SOLUTION IS ACCEPTABLE
# L+3 SOLNSW
# L+4 LAMABORT
#
# IF A LAMBERT RESULT IS TO BE A FIRST GUESS FOR THE NEXT LAMBERT CALCULATION, COGA MUST BE PRESERVED AND
# GUESSW MUST BE CLEAR FOR EACH SUCCEEDING LAMBERT CALL.
#
# ABORT EXIT MODES --
# IF SOLNSW WAS SET UPON EXITING, EITHER LAMBERT WAS ASKED TO COMPUTE A TRANSFER TOO NEAR 0 OR 360 DEG, OR T
# WAS TOO SMALL TO PRODUCE A REALISTIC TRANSFER BETWEEN R1VEC AND R2VEC. IN EITHER CASE THE FIX MUST BE MADE
# ACCORDING TO THE NEEDS OF THE PARTICULAR USER. THE ABORT EXIT MODE MAY BE CODED AS ...
# LAMBERT DLOAD ABS # A MEASURE OF THE PROXIMITY TO 0 OR
# 1-CSTH # 360 DEGREES.
# DSU BMN
# ONEBIT
# CHANGER2 # CHANGE R2VEC DIRECTION SLIGHTLY.
# DLOAD DAD
# TDESIRED
# SOMETIME
# STCALL TDESIRED # INCRESE TDESIRED
# LAMBERT
#
# OUTPUT --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# Page 1268
# -------- -------------- -----------------------
# VVEC +7 FOR EARTH DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND REQUIRED TO SATISFY THE BOUNDARY VALUE
# +5 FOR MOON PROBLEM.
# VTARGET +7 FOR EARTH DP RESULTANT VELOCITY VECTOR AT R2VEC IN METERS/CENTISECOND.
# +5 FOR MOON
# SOLNSW NONE INTERPRETER SWITCH WHICH IS SET IF THE SUBROUTINE CANNOT SOLVE THE PROBLEM, CLEAR IF THE
# SOLUTION EXISTS.
#
# FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
#
# DEBRIS --
# PARAMETERS WHICH MAY BE OF USE --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# SNTH +1 DP SIN OF ANGLE BETWEEN R1VEC AND R2VEC
# CSTH +1 DP COSINE OF ANGLE
# 1-CSTH +2 DP 1-CSTH
# COGA +5 DP COTAN OF INITIAL REQUIRED FLIGHT PATH ANGLE MEASURED FROM VERTICAL
# P +4 DP RATIO OF SEMILATUS RECTUM TO INITIAL RADIUS
# R1A +6 DP RATIO OF INITIAL RADIUS TO SEMIMAJOR AXIS
# R1 (32D) +29 FOR EARTH DP INITIAL RADIUS IN METERS
# +27 FOR MOON
# UR1 +1 DP UNIT VECTOR OF R1VEC
# U2 +1 DP UNIT VECTOR OF R2VEC
#
# PARAMETERS OF NO USE --
# DP PARAMETERS -- EPSILONL, CSTH-RHO, TPREV, TERRLAMB, R2, RTNLAMB (SP), PLUS PUSHLIST REGISTER 0 THROUGH 41D
# ADDITIONAL INTERPRETIVE SWITCHES USED -- INFINFLG, 360SW, SLOPESW, ORDERSW
# Page 1269
# PROGRAM DESCRIPTION -- TIME-THETA SUBROUTINE DATE -- 1 SEPTEMBER 1967
# MOD NO. -- 0 LOG SECTION -- CONIC SUBROUTINES
# MOD BY KRAUSE ASSEMBLY -- COLOSSUS REVISION 88
#
# FUNCTIONAL DESCRIPTION --
# THIS SUBROUTINE, GIVEN AN INITIAL STATE VECTOR AND A DESIRED TRUE-ANOMALY-DIFFERENCE THROUGH WHICH THE
# STATE IS TO BE UPDATED ALONG A CONIC TRAJECTORY, CALCULATES THE CORRESPONDING TIME-OF-FLIGHT AND, IN ADDITION,
# PROVIDES THE OPTION OF COMPUTING THE NEW UPDATED STATE VECTOR. THE RESULTING TRAJECTORY MAY BE A SECTION OF A
# CIRCLE, ELLIPSE, PARABOLA, OR HYPERBOLA WITH RESPECT TO THE EARTH OR THE MOON. THE USE OF THE SUBROUTINE CAN BE
# EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WITHOUT INTRODUCING ANY CODING CHANGES,
# ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY.
#
# THE RESTRICTIONS ARE --
# 1. THE ANGLE BETWEEN ANY POSITION VECTOR AND ITS VELOCITY VECTOR MUST BE GREATER THAN 1 DEGREE 47.5 MINUTES
# AND LESS THAN 178 DEGREES 12.5 MINUTES.
# 2. THE PARAMETERS IN THE PROBLEM MUST NOT EXCEED THEIR SCALING LIMITS SPECIFIED IN THE GSOP. IF THE LIMITS
# ARE EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
#
# THE AGC COMPUTATION TIME IS APPROXIMATELY .292 SECONDS.
#
# REFERENCES --
# R-479, MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP-SECTION 5.5, SGA MEMO 67-8.
#
# INPUT -- ERASABLE INITIALIZATION REQUIRED
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# RVEC +29 FOR EARTH DP INITIAL POSITION VECTOR IN METERS
# +27 FOR MOON
# VVEC +7 FOR EARTH DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND
# +5 FOR MOON
# SNTH +1 DP SINE OF TRUE-ANOMALY-DIFFERENCE THROUGH WHICH THE STATE IS TO BE UPDATED
# CSTH +1 DP COSINE OF THE ANGLE
# RVSW NONE AN INTERPRETIVE SWITCH TO BE SET IF ONLY TIME IS TO BE AN OUTPUT, CLEAR IF THE NEW STATE
# IS TO BE COMPUTED ALSO.
# X1 (38D) NONE INDEX REGISTER TO BE SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
# RESPECTIVELY, IS THE CENTRAL BODY.
#
# SUBROUTINES CALLED --
# Page 1270
# PARAM, GEOM, GETX, DELTIME, NEWSTATE
#
# CALLING SEQUENCE AND NORMAL EXIT MODES --
# IF ONLY TIME IS DESIRED AS OUTPUT --
# L SET CALL # MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
# L+1 RVSW
# L+2 TIMETHET # RETURN WITH PL AT 0 AND T IN MPAC
# L+3 ... # CONTINUE
#
# IF THE UPDATE STATE VECTOR IS DESIRED AS WELL --
# L CLEAR CALL # MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
# L+1 RVSW
# L+2 TIMETHET # RETURNS WITH PL AT 6. THE INITIAL POSITION VECTOR IS IN 0D OF THE PUSHLIST AND
# # THE INITIAL VELOCITY VECTOR IN MPAC.
# L+3 STOVL NEWVVEC
# L+4 STADR
# L+5 STORE NEWRVEC # NEWVVEC AND NEWRVEC ARE SYMBOLIC REPRESENTATIONS OF THE USERS LOCATIONS.
# L+6 ... # CONTINUE.
#
# ABORT EXIT MODES --
# IF COGAFLAG AND/OR INFINFLG IS SET AT THE EXIT TO TIME-THETA, TIME-THETA WILL TRANSFER TO POODOO WITH
# AN ALARM CODE (ORIGINALLY 00607), AND NOT RETURN TO THE CALLING PROGRAM. (PCR 692 AND 721).
#
# OUTPUT --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# T (30D) +28 DP TRANSFER TIME IN CENTISECONDS
# INFINFLG NONE AN INTERPRETIVE SWITCH WHICH IS SET IF THE TRANSFER ANGLE REQUIRES CLOSURE THROUGH
# INFINITY (NO SOLUTION), CLEAR IF A PHYSICAL SOLUTION IS POSSIBLE.
# COGAFLAG NONE AN INTERPRETIVE SWITCH WHICH IS SET IF RESTRICTION 1 HAS BEEN VIOLATED (NO SOLUTION),
# CLEAR IF NOT.
#
# IN ADDITION, IF RVSW IS CLEAR, THE FOLLOWING ARE OUTPUT --
# MPAC - +7 FOR EARTH DP TERMINAL VELOCITY VECTOR IN METERS/CENTISEC.
# MPAC+5 +5 FOR MOON
# 0D - 5D +29 FOR EARTH DP TERMINAL POSITION VECTOR IN METERS (PL AT 6D)
# +27 FOR MOON
#
# FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
# Page 1271
#
# DEBRIS --
# PARAMETERS WHICH MAY BE OF USE --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# R1 (32D) +29 FOR EARTH DP MAGNITUDE OF INITIAL POSITION VECTOR, RVEC, IN METERS
# +27 FOR MOON
# R1A +6 DP RATIO OF R1 TO SEMIMAJOR AXIS (NEG. FOR HYPERBOLIC TRAJECTORIES)
# P +4 DP RATIO OF SEMILATUS RECTUM TO R1
# COGA +5 DP COTAN OF ANGLE BETWEEN RVEC AND VVEC
# UR1 +1 DP UNIT VECTOR OF RVEC
# U2 +1 DP UNIT VECTOR OF VVEC
# UN +1 DP UNIT VECTOR OF UR1*U2
#
# PARAMETERS OF NO USE --
# SP PARAMETERS -- RTNTT, GEOMSGN, RTNPRM, MAGVEC2=R2 (DP), PLUS PUSHLIST LOCATIONS 0-11D, 14D-21D, 24D-39D, 41D
# ADDITIONAL INTERPRETIVE SWITCHES USED -- NORMSW, 360SW
# Page 1272
# PROGRAM DESCRIPTION -- TIME-RADIUS SUBROUTINE DATE -- 11 OCTOBER 1967
# MOD NO. -1 LOG SECTION -- CONIC SUBROUTINES
# MOD BY KRAUSE ASSEMBLY -- COLOSSUS REVISION 88
#
# FUNCTIONAL DESCRIPTION --
# THIS SUBROUTINE, GIVEN AN INITIAL STATE VECTOR AND A DESIRED RADIUS TO WHICH THE
# STATE IS TO BE UPDATED ALONG A CONIC TRAJECTORY, CALCULATES THE CORRESPONDING TIME-OF-FLIGHT AND, IN ADDITION,
# PROVIDES THE OPTION OF COMPUTING THE NEW UPDATED STATE VECTOR. THE RESULTING TRAJECTORY MAY BE A SECTION OF A
# CIRCLE, ELLIPSE, PARABOLA, OR HYPERBOLA WITH RESPECT TO THE EARTH OR THE MOON. THE USE OF THE SUBROUTINE CAN BE
# EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WITHOUT INTRODUCING ANY CODING CHANGES,
# ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY.
#
# IF THE DESIRED RADIUS IS BEYOND THE RADIUS OF APOCENTER OF THE CONIC OR BELOW THE RADIUS OF PERICENTER,
# APSESW WILL BE SET AND THE SUBROUTINE WILL RETURN THE APOCENTER OR PERICENTER SOLUTION, RESPECTIVELY.
#
# THE RESTRICTIONS ARE --
# 1. THE ANGLE BETWEEN ANY POSITION VECTOR AND ITS VELOCITY VECTOR MUST BE GREATER THAN 1 DEGREE 47.5 MINUTES
# AND LESS THAN 178 DEGREES 12.5 MINUTES.
# 2. THE PARAMETERS IN THE PROBLEM MUST NOT EXCEED THEIR SCALING LIMITS SPECIFIED IN THE GSOP. IF THE LIMITS
# EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
# 3. AN ACCURACY DEGRADATION OCCURS AS THE SENSITIVITIES OF TIME AND UPDATED STATE VECTOR TO CHANGES IN
# RDESIRED INCREASE. THIS WILL OCCUR NEAR EITHER APSIS OF THE CONIC AND WHEN THE CONIC IS NEARLY CIRCULAR. IN
# PARTICULAR, IF THE CONIC IS AN EXACT CIRCLE, THE PROBLEM IS UNDEFINED AND THE SUBROUTINE WILL ABORT.
#
# THE AGC COMPUTATION TIME IS APPROXIMATELY .363 SECONDS.
#
# REFERENCES --
# R-479, MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP-SECTION 5.5, SGA MEMO 67-8.
#
# INPUT -- ERASABLE INITIALIZATION REQUIRED.
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# RVEC +29 FOR EARTH DP INITIAL POSITION VECTOR IN METERS
# +27 FOR MOON
# VVEC +7 FOR EARTH DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND
# +5 FOR MOON
# RDESIRED +29 FOR EARTH DP TERMINAL RADIAL DISTANCE ON CONIC TRAJECTORY FOR WHICH TRANSFER TIME IS TO BE
# +27 FOR MOON COMPUTED
# SGNRDOT NONE SP TAG SET TO +.5 OR -.5 ACCORDING TO WHETHER THE RADIAL VELOCITY AT RDESIRED IS TO BE
# POSITIVE OR NEGATIVE, RESPECTIVELY. THIS TAG REDUCES THE DOUBLE-VALUED PROBLEM TO A
# Page 1273
# SINGLE-VALUED PROBLEM.
# X1 (38D) NONE INDEX REGISTER TO BE SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
# RESPECTIVELY, IS THE CENTRAL BODY.
# RVSW NONE AN INTERPRETIVE SWITCH TO BE SET IF ONLY TIME IS TO BE AN OUTPUT, CLEAR IF THE NEW STATE
# IS TO BE COMPUTED ALSO.
#
# SUBROUTINES CALLED --
# PARAM, GEOM, GETX, DELTIME, NEWSTATE
#
# CALLING SEQUENCE AND NORMAL EXIT MODES --
# IF ONLY TIME IS DESIRED AS OUTPUT --
# L SET CALL # MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
# L+1 RVSW
# L+2 TIMERAD # RETURN WITH PL AT 0 AND T IN MPAC
# L+3 ... # CONTINUE
#
# IF THE UPDATE STATE VECTOR IS DESIRED AS WELL --
# L CLEAR CALL # MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
# L+1 RVSW
# L+2 TIMERAD # RETURNS WITH PL AT 6. THE INITIAL POSITION VECTOR IS IN 0D OF THE PUSHLIST AND
# # THE INITIAL VELOCITY VECTOR IN MPAC.
# L+3 STOVL NEWVVEC
# L+4 STADR
# L+5 STORE NEWRVEC # NEWVVEC AND NEWRVEC ARE SYMBOLIC REPRESENTATIONS OF THE USERS LOCATIONS.
# L+6 ... # CONTINUE
#
# ABORT EXIT MODES --
# IF SOLNSW AND/OR COGAFLAG AND/OR INFINFLG IS SET AT THE EXIT TO TIME-RADIUS, TIME-RADIUS WILL TRANSFER
# TO POODOO WITH AN ALARM CODE (ORIGINALLY 00607), AND NOT RETURN TO THE CALLING PROGRAM. (PCR 692 & 721).
#
# OUTPUT --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# T (30D) +28 DP TRANSFER TIME IN CENTISECONDS.
# INFINFLG NONE AN INTERPRETIVE SWITCH WHICH IS SET IF RDESIRED AND SGNRDOT REQUIRE CLOSURE THROUGH
# INFINITY (NO SOLUTION), CLEAR IF A PHYSICAL SOLUTION IS POSSIBLE.
# COGAFLAG NONE AN INTERPRETIVE SWITCH WHICH IS SET IF RESTRICTION 1 HAS BEEN VIOLATED (NO SOLUTION),
# CLEAR IF NOT.
# APSESW NONE AN INTERPRETIVE SWITCH WHICH IS SET IF RDESIRED WAS GREATER THAN RADIUS OF APOCENTER OR
# Page 1274
# LESS THAN RADIUS OF PERICENTER. THE APOCENTER OR PERICENTER SOLUTION, RESPECTIVELY,
# WILL THEN BE RETURNED. THE SWITCH IS CLEAR IF RDESIRED WAS BETWEEN PERICENTER AND
# APOCENTER.
# SOLNSW NONE AN INTERPRETIVE SWITCH WHICH IS SET IF THE CONIC IS SO CLOSE TO A CIRCLE THAT THE TERMIN
# POINT IS AMBIGUOUS, VIOLATING RESTRICTION 3. IF ECCENTRICITY IS GREATER THAN 2-TO-THE-
# MINUS-18, THE SWITCH IS CLEAR.
#
# IN ADDITION, IF RVSW IS CLEAR, THE FOLLOWING ARE OUTPUT --
# MPAC - +7 FOR EARTH DP TERMINAL VELOCITY VECTOR IN METERS/CENTISEC.
# MPAC+5 +5 FOR MOON
# 0D - 5D +29 FOR EARTH DP TERMINAL POSITION VECTOR IN METERS (PL AT 6D)
# +27 FOR MOON
#
# FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
#
# DEBRIS --
# PARAMETERS WHICH MAY BE OF USE --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# R1 (32D) +29 FOR EARTH DP MAGNITUDE OF INITIAL POSITION VECTOR, RVEC, IN METERS
# +27 FOR MOON
# R1A +6 DP RATIO OF R1 TO SEMIMAJOR AXIS (NEG. FOR HYPERBOLIC TRAJECTORIES)
# P +4 DP RATIO OF SEMILATUS RECTUM TO R1
# COGA +5 DP COTAN OF ANGLE BETWEEN RVEC AND VVEC
# UR1 +1 DP UNIT VECTOR OF RVEC
# U2 +1 DP UNIT VECTOR OF VVEC
# UN +1 DP UNIT VECTOR OF UR1*U2
# CSTH +1 DP COSINE OF TRUE ANOMALY DIFFERENCE BETWEEN RVEC AND RDESIRED.
# SNTH +1 DP SINE OF TRUE ANOMALY DIFFERENCE.
#
# PARAMETERS OF NO USE --
# SP PARAMETERS -- RTNTT, GEOMSGN, RTNPRM, MAGVEC2=R2 (DP), PLUS PUSHLIST LOCATIONS 0-11D, 14D-21D, 24D-39D, 41D
# ADDITIONAL INTERPRETIVE SWITCHES USED -- NORMSW, 360SW
#
# Page 1275
# PROGRAM DESCRIPTION -- APSIDES SUBROUTINE DATE -- 1 SEPTEMBER 1967
# MOD NO. -- 0 LOG SECTION -- CONIC SUBROUTINES
# MOD BY KRAUSE ASSEMBLY -- COLOSSUS REVISION 88
#
# FUNCTIONAL DESCRIPTION --
# THIS SUBROUTINE, GIVEN AN INITIAL STATE VECTOR, CALCULATES THE RADIUS OF PERICENTER AND OF APOCENTER AND THE
# ECCENTRICITY OF THE RESULTING CONIC TRAJECTORY, WHICH MAY BE A STRAIGHT LINE,
# CIRCLE, ELLIPSE, PARABOLA, OR HYPERBOLA WITH RESPECT TO THE EARTH OR THE MOON. THE USE OF THE SUBROUTINE CAN
# BE EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WITHOUT INTRODUCING ANY CODING CHANGES,
# ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY.
#
# THE RESTRICTIONS ARE --
# 1. IF APOCENTER IS BEYOND THE SCALING OF POSITION, THE SCALE FACTOR LIMIT (536,870,910 METERS WITH RESPECT
# TO THE EARTH OR 134,217,727.5 METERS WITH RESPECT TO THE MOON) WILL BE RETURNED.
# 2. THE PARAMETERS IN THE PROBLEM MUST NOT EXCEED THEIR SCALING LIMITS SPECIFIED IN THE GSOP. IF THE LIMITS
# ARE EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
#
# THE AGC COMPUTATION TIME IS APPROXIMATELY .103 SECONDS.
#
# REFERENCES --
# MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP-SECTION 5.5.
#
# INPUT -- ERASABLE INITIALIZATION REQUIRED
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# RVEC +29 FOR EARTH DP INITIAL POSITION VECTOR IN METERS
# +27 FOR MOON
# VVEC +7 FOR EARTH DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND
# +5 FOR MOON
# X1 (38D) NONE INDEX REGISTER TO BE SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
# RESPECTIVELY, IS THE CENTRAL BODY.
#
# SUBROUTINES CALLED --
# PARAM, GEOM
#
# CALLING SEQUENCE AND NORMAL EXIT MODES --
# Page 1276
# IF ONLY TIME IS DESIRED AS OUTPUT --
# L CALL # MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
# L+1 APSIDES # RETURNS WITH PL AT 0, RADIUS OF APOCENTER IN MPAC AND RADIUS OF PERICENTER IN 0D
# L+2 STODL APOAPSE
# L+3 0D
# L+4 STORE PERIAPSE # APOAPSE AND PERIAPSE ARE SYMBOLIC REPRESENTATIONS OF THE USERS LOCATIONS
# L+5 ... # CONTINUE
#
# OUTPUT --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# MPAC +29 FOR EARTH DP RADIUS OF APOCENTER IN METERS
# +27 FOR MOON
# 0D-1D +29 FOR EARTH DP RADIUS OF PERICENTER IN METERS
# +27 FOR MOON
# ECC +3 DP ECCENTRICITY OF CONIC TRAJECTORY
#
# FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
#
# DEBRIS --
# PARAMETERS WHICH MAY BE OF USE --
# SCALE FACTOR
# VARIABLE IN POWERS OF 2 DESCRIPTION AND REMARKS
# -------- -------------- -----------------------
# R1 (32D) +29 FOR EARTH DP MAGNITUDE OF INITIAL POSITION VECTOR, RVEC, IN METERS
# +27 FOR MOON
# R1A +6 DP RATIO OF R1 TO SEMIMAJOR AXIS (NEG. FOR HYPERBOLIC TRAJECTORIES)
# P +4 DP RATIO OF SEMILATUS RECTUM TO R1
# COGA +5 DP COTAN OF ANGLE BETWEEN RVEC AND VVEC
# UR1 +1 DP UNIT VECTOR OF RVEC
# U2 +1 DP UNIT VECTOR OF VVEC
# UN +1 DP UNIT VECTOR OF UR1*U2
# MAGVEC2 +7 FOR EARTH DP MAGNITUDE OF VVEC
# +5 FOR MOON
#
# PARAMETERS OF NO USE --
# SP PARAMETERS -- RTNAPSE, GOMSGN, RTNPRM, PLUS PUSHLIST LOCATIONS 0-5, 10D-11D, 14D-21D, 31D-38D.
# ADDITIONAL INTERPRETIVE SWITCHES USED -- NORMSW
SETLOC CONICS
# Page 1277
BANK
COUNT 12/CONIC
EBANK= UR1
KEPLERN SETPD BOV
0
+1
VLOAD*
MUTABLE,1
STOVL 14D
RRECT
UNIT SSP
ITERCTR
20D
STODL URRECT
36D
STOVL R1
RRECT
DOT SL1R
VRECT
DMP SL1R
1/ROOTMU # 1/ROOTMU (-17 OR -14)
STOVL KEPC1 # C1=R.V/ROOTMU (+17 OR +16)
VRECT
VSQ DMPR
1/MU # 1/MU (-34 OR -28)
DMP SL3
R1
DSU ROUND
D1/64
STORE KEPC2 # C2=RV.V/MU -1 (+6)
BDSU SR1R
D1/64
DDV
R1
STORE ALPHA # ALPHA=(1-C2)/R1 (-22 OR -20)
BPL DLOAD # MAXIMUM X DEPENDS ON TYPE OF CONIC
1REV
-50SC # -50SC (+12)
DDV BOV
ALPHA
STOREMAX
SQRT GOTO
STOREMAX
# Page 1278
1REV SQRT BDDV
2PISC # 2PISC (+6)
BOV
STOREMAX
STOREMAX STORE XMAX
DMP PDDL
1/ROOTMU
ALPHA
NORM PDDL
X1
SL* DDV
0 -6,1
BOV BMN
MODDONE
MODDONE # MPAC=PERIOD
PERIODCH PDDL ABS # 0D=PERIOD
TAU.
DSU BMN
0D
MODDONE
SIGN
TAU.
STODL TAU.
GOTO
PERIODCH
MODDONE SETPD DLOAD
0
XKEPNEW
STORE X
SIGN BZE
TAU.
BADX
BMN ABS
BADX
DSU BPL
XMAX
BADX
STORBNDS DLOAD BPL
TAU.
STOREMIN
DLOAD DCOMP
XMAX
STODL XMIN
KEPZERO
STCALL XMAX
DXCOMP
STOREMIN DLOAD
KEPZERO
STORE XMIN
DXCOMP DLOAD DMPR
# Page 1279
TAU.
BEE22
ABS
STODL EPSILONT
XPREV
XDIFF BDSU
X
STORE DELX
KEPLOOP DLOAD DSQ
X # X=XKEP
NORM PUSH # 0D=XSQ (+34 OR +32 -N1) PL AT 2
X1
DMP SRR*
ALPHA
0 -6,1
STCALL XI # XI=ALPHA XSQ (+6)
DELTIME
BOV BDSU
TIMEOVFL # UNLIKELY
TAU.
STORE DELT # DELT=DELINDEP
ABS BDSU
EPSILONT
BPL DLOAD
KEPCONVG
T
DSU NORM
TC
X1
PDDL NORM
DELX
X2
XSU,1 DMP
X2
DELT
SLR* DDV
1,1
SR1 PUSH # 0D=TRIAL DELX PL AT 2
BPL DLOAD
POSDELX
X
STORE XMAX # MOVE MAX BOUND IN
BDSU DSU # PL AT 0
XMIN
BOV BPL
NDXCHNGE
NDXCHNGE
DLOAD GOTO
# Page 1280
0D
NEWDELX
NDXCHNGE DLOAD DSU
XMIN
X
DMPR GOTO # TO FORCE MPAC +2 TO ZERO
DP9/10
NEWDELX
POSDELX DLOAD
X
STORE XMIN # MOVE MIN BOUND IN
BDSU DSU # PL AT 0
XMAX
BOV BMN
PDXCHNGE
PDXCHNGE
DLOAD
0D
NEWDELX STORE DELX
BZE DAD
KEPCONVG
X
STODL X
T
STORE TC
BRNCHCTR RTB BHIZ
CHECKCTR
KEPCONVG
GOTO
KEPLOOP # ITERATE
PDXCHNGE DLOAD DSU
XMAX
X
DMPR GOTO # TO FORCE MPAC +2 TO ZERO
DP9/10
NEWDELX
BADX DLOAD SR1
XMAX
SIGN
TAU.
STCALL X
STORBNDS
# Page 1281
TIMEOVFL DLOAD BMN # X WAS TOO BIG
X
NEGTOVFL
STORE XMAX
CMNTOVFL DLOAD SR1
DELX
STORE DELX
BZE BDSU
KEPRTN
X
STODL X
TC
STCALL T
BRNCHCTR
NEGTOVFL STCALL XMIN
CMNTOVFL
KEPCONVG DLOAD SR4R
R1
DSU VXSC
XSQC(XI)
URRECT
VSL1 PDDL # 0D=(R1-XSQC(XI))URRECT (+33 OR +31)
X
DSQ NORM
X1
DMPR DMPR
1/ROOTMU
X
DMP SRR*
S(XI)
0 -7,1
BDSU
T
SL1 VXSC
VRECT
VSL1 VAD # PL AT 0
VSL4
STORE RCV # RCV (+29 OR +27)
ABVAL NORM
X2
STODL RCNORM
XI
DMPR DSU
S(XI)
D1/128
DMP SL1R
ROOTMU
DMP SLR*
# Page 1282
X
0 -3,2
DDV VXSC
RCNORM
URRECT
VSL1 PDDL # 0D=URRECT(XI S(XI)-1)X ROOTMU/RCV (+15
XSQC(XI) # OR +13) PL AT 6
SLR* DDV
0 -4,2
RCNORM
BDSU VXSC
D1/256
VRECT
VAD VSL8
STADR # PL AT 0
STODL VCV # VCV (+7 OR +5)
T
STODL TC
X
STCALL XPREV
KEPRTN
# Page 1283
DELTIME EXIT # MPAC=XI (+6), 0D=XSQ (+34 OR +32 -N1)
TC POLY
DEC 8
2DEC .083333334
2DEC -.266666684
2DEC .406349155
2DEC -.361198675
2DEC .210153242
2DEC -.086221951
2DEC .026268812
2DEC -.006163316
2DEC .001177342
2DEC -.000199055
TC INTPRET
STODL S(XI)
XI
EXIT
TC POLY
DEC 8
2DEC .031250001
2DEC -.166666719
2DEC .355555413
2DEC -.406347410
2DEC .288962094
2DEC -.140117894
2DEC .049247387
2DEC -.013081923
2DEC .002806389
2DEC -.000529414
TC INTPRET
# Page 1284
DMP SRR* # PL AT 0
0D
0 -5,1
STORE XSQC(XI) # XSQC(XI) (+33 OR +31)
DMP SL1
KEPC1
RTB PDDL # XCH WITH PL. 0D=C1 XSQ C(XI) (+49 OR +46)
TPMODE # PL AT 0,3
DMP SRR*
S(XI)
0 -5,1
DMP SL1
KEPC2
RTB PDDL # 3D=C2 XSQ S(XI) (+35 OR +33) PL AT 6
TPMODE
R1
SR TAD # PL AT 3
6
NORM DMP # TO PRESERVE SIGNIF.
X1
X
SR* TAD # X(C2 XSQ S(XI) +R1) (+49 OR +46) PL AT 0
0 -3,1
SL4R DMPR
1/ROOTMU
STORE T
RVQ
# Page 1285
ITERATOR BONCLR DLOAD
SLOPESW
FIRSTIME
DEP
DSU NORM
DEPREV
X1
PDDL NORM
DELINDEP
X2
XSU,1 DMP
X2
DELDEP
SLR* DDV # PL UP 2
1,1
SR1 BOFF
ORDERSW
SGNCHECK
ABS SIGN # IN CASE 2ND DERIV. CHANGED SIGN, MUST
DELDEP # DISREGARD IT TO FIND MIN.
SGNCHECK PUSH BPL # TRIAL DELINDEP PL DOWN 2
POSDEL
DLOAD BON
INDEP
ORDERSW
MINCHECK
STORE MAX # IF NOT 2ND ORDER, CAN MOVE MAX BOUND IN.
MINCHECK BDSU DSU
MIN
BOV BPL
MODNGDEL
MODNGDEL
GOTO
DELOK
MODNGDEL DLOAD DSU # TRIAL DELINDEP WOULD EXCEED MIN BOUND
MIN
INDEP
DMP GOTO
DP9/10
NEWDEL
FIRSTIME DLOAD DMP
MIN
TWEEKIT # DLOAD TWEEKIT(40D) SENSITIVE TO CHANGE.
PDDL DMP # S2(41D) SHOULDNT CONTAIN HI ORDER ONES
# Page 1286
MAX
TWEEKIT
DSU
SIGN GOTO
DELDEP
SGNCHECK
POSDEL DLOAD BON
INDEP
ORDERSW
MAXCHECK
STORE MIN # IF NOT 2ND ORDER, CAN MOVE MIN BOUND IN.
MAXCHECK BDSU DSU
MAX
BOV BMN
MODPSDEL
MODPSDEL
DELOK DLOAD
0D
NEWDEL STORE DELINDEP
RVQ
MODPSDEL DLOAD DSU
MAX
INDEP
DMP GOTO
DP9/10
NEWDEL
CHECKCTR CS ONE
INDEX FIXLOC
AD ITERCTR
INDEX FIXLOC
TS ITERCTR
TS MPAC
TC DANZIG
# Page 1287
NEWSTATE DLOAD SR4R
R1
DSU VXSC
XSQC(XI)
UR1
VSL1 PDDL # 0D=(R1-XSQC(XI))UR1 (+33 OR 31) PL AT 6
X
DSQ NORM
X1
DMPR DMPR
1/ROOTMU
X
DMP SRR*
S(XI)
0 -7,1
BDSU
T
SL1 VXSC
VVEC
VSL1 VAD # PL AT 0
VSL4 PUSH
ABVAL
LAMENTER NORM
X1
STODL R2
XI
DMP DSU
S(XI)
D1/128
DMP SL1R
ROOTMU
DMP SLR*
X
0 -3,1
DDV VXSC
R2
UR1
VSL1 PDDL # 6D=V2VEC PART (+15 OR 13) PL AT 12
XSQC(XI)
SLR* DDV
0 -4,1
R2
BDSU
D1/256
VXSC VAD # PL AT 6
VVEC
VSL8 RVQ
# Page 1288
SETLOC CONICS1
BANK
COUNT 04/CONIC
# DO NOT DISTURB THE ORDER OF THESE CDS, OVERLAYS HAVE BEEN MADE.
BEE17 DEC 0 # KEEP WITH D1/8 2DEC 1.0B-17 (0000004000)
D1/8 2DEC 1.0 B-3
D1/128 2DEC 1.0 B-7
D1/64 2DEC 1.0 B-6
D1/4 2DEC 1.0 B-2
D1/16 2DEC 1.0 B-4
D1/32 2DEC 1.0 B-5
D1/1024 2DEC 1.0 B-10
D1/256 2DEC 1.0 B-8
DP9/10 2DEC .9
KEPZERO EQUALS LO6ZEROS
-50SC 2DEC -50.0 B-12
2PISC 2DEC 6.28318530 B-6
BEE19 EQUALS D1/32 -1 # 2DEC 1.0 B-19 (00000 01000)
BEE22 EQUALS D1/256 -1 # 2DEC 1.0 B-22 (00000 00100)
ONEBIT 2DEC 1.0 B-28
COGUPLIM 2DEC .999511597
COGLOLIM 2DEC -.999511597
# Page 1289
SETLOC CONICS
BANK
COUNT 12/CONIC
TIMETHET STQ SETPD # PL AT 0
RTNTT
0
BOV
+1
VLOAD PDVL # SETUP FOR PARAM CALL PL AT 6
RVEC
VVEC
CALL
PARAM
BOV CALL # PL AT 0
COGAOVFL
GETX
COMMNOUT DLOAD BON
XI
INFINFLG
ABTCONIC
CLEAR CALL
COGAFLAG
DELTIME
BON CALL
RVSW
RTNTT
NEWSTATE
GOTO
RTNTT
COGAOVFL SETGO
COGAFLAG
ABTCONIC
BANK 4
SETLOC CONICS1
BANK
COUNT* $$/CONIC
PARAM STQ CLEAR # MPAC=V1VEC, 0D=R1VEC PL AT 6
RTNPRM
NORMSW
CLEAR
COGAFLAG
SSP CALL
GEOMSGN
37777 # GAMMA ALWAYS LESS THAN 180DEG
GEOM # MPAC=SNGA (+1), 0D=CSGA (+1) PL AT 2
STODL 36D # 36D=SIN GAMMA (+1) PL AT 0
# Page 1290
SR DDV
5
36D
STOVL* COGA
MUTABLE,1
STODL 1/MU
MAGVEC2
DSQ NORM
X1
DMPR DMP
1/MU
R1
SRR*
0 -3,1
PUSH BDSU # 0D=R1 V1SQ/MU (+6) PL AT 2
D1/32
STODL R1A # R1A (+6) PL AT 0
DMP NORM
36D
X1
DMP SR*
36D
0 -4,1
STCALL P # P (+4)
RTNPRM
# Page 1291
GEOM UNIT # MPAC=V2VEC, 0D=R1VEC PL AT 6
STODL U2 # U2 (+1)
36D
STOVL MAGVEC2 # PL AT 0
UNIT
STORE UR1 # UR1 (+1)
DOT SL1
U2
PDDL # 0D=CSTH (+1) PL AT 2
36D
STOVL R1 # R1 (+29 OR +27)
UR1
VXV VSL1
U2
BON SIGN
NORMSW
HAVENORM
GEOMSGN
UNIT BOV
COLINEAR
UNITNORM STODL UN # UN (+1)
36D
SIGN RVQ # MPAC=SNTH (+1), 34D=SNTH.SNTH (+2)
GEOMSGN
COLINEAR VSR1 GOTO
UNITNORM
HAVENORM ABVAL SIGN
GEOMSGN
RVQ # MPAC=SNTH (+1), 34D=SNTH.SNTH (+2)
# Page 1292
BANK 12
SETLOC CONICS
BANK
COUNT 12/CONIC
GETX AXT,2 SSP # ASSUMES P (+4) IN MPAC
3
S2
1
CLEAR
360SW
SQRT PDDL # 0D=SQRT(P) PL AT 2
CSTH
SR1 BDSU
D1/4
PDDL SRR # PL AT 4D
SNTH
6
DDV # PL AT 2
BOV
360CHECK
DSU DMP
COGA # PL AT 0
SL2R BOV
360CHECK
WLOOP PUSH DSQ # 0D=W (+5) PL AT 2
TLOAD PDDL # 2D=WSQ (+10) PL AT 5
MPAC
R1A
SR4 TAD # PL AT 2
BMN SQRT
INFINITY
ROUND DAD # PL AT 0D
BOV TIX,2
RESETX2
WLOOP
BDDV BOV
D1/128
INFINITY
POLYCOEF BMN PUSH # 0D=1/W (+2) OR 16/W (+6) PL AT 2
INFINITY
DSQ
NORM DMP
X1
R1A
SRR* EXIT
0 -10D,1
# Page 1293
TC POLY
DEC 5
2DEC .5
2DEC -.166666770
2DEC .100000392
2DEC -.071401086
2DEC .055503292
2DEC -.047264098
2DEC .040694204
TC INTPRET
DMP SL1R # PL AT 0D
PUSH BON
360SW
TRUE360X
XCOMMON DSQ NORM
X1
DMP SRR*
R1A
0 -12D,1
STODL XI # XI (+6)
R1
SR1 SQRT
ROUND DMP
SL4R # PL AT 0
STORE X # X (+17 OR +16)
DSQ NORM
X1
PDDL DMP # 0D=XSQ (+34 OR +32 -N1) PL AT 2
P
R1
SL3 SQRT
DMP SL3R
COGA
STODL KEPC1
R1A
BDSU CLEAR
D1/64
INFINFLG
STORE KEPC2
# Page 1294
RVQ
RESETX2 AXT,2
3
360CHECK SETPD BPL
0D
INVRSEQN
SET
360SW
INVRSEQN DLOAD SQRT
P
PDDL DMP # 0D=SQRT(P) (+2) PL AT 2
SNTH
COGA
SL1 PDDL # 2D=SNTH COGA (+5) PL AT 4
CSTH
SR4 DAD
D1/32
DSU DMP # PL AT 2,0
NORM BDDV
X1
SNTH
SLR* ABS # NOTE: NEAR 360 CASE TREATED DIFFERENTLY
0 -5,1
PUSH DSQ # 0D=1/W (-1) PL AT 2
STODL 34D
D1/16
1/WLOOP PUSH DSQ # 2D=G (+4) PL AT 4
RTB PDDL # PL AT 7
TPMODE
R1A
DMP SR4
34D
TAD # PL AT 4
BMN SQRT
INFINITY
DAD # PL AT 2
TIX,2 NORM
1/WLOOP
X1
BDDV # PL AT 0
SLR* GOTO
0 -7,1
POLYCOEF
# Page 1295
TRUE360X DLOAD BMN
R1A
INFINITY
SQRT NORM
X1
BDDV SL*
2PISC
0 -3,1
DSU PUSH # 0D=2PI/SQRT(R1A) -X PL AT 0,2
GOTO
XCOMMON
INFINITY SETPD BOV # NO SOLUTION EXISTS SINCE CLOSURE THROUGH
0 # INFINITY IS REQUIRED
OVFLCLR
OVFLCLR SET RVQ
INFINFLG
# Page 1296
LAMBERT STQ SETPD
RTNLAMB
0D
BOV
+1
SSP VLOAD*
ITERCTR
20D
MUTABLE,1
STODL 1/MU
TDESIRED
DMPR
BEE19
STORE EPSILONL
SET VLOAD
SLOPESW
R1VEC
PDVL CALL # 0D=R1VEC (+29 OR +27) PL AT 6
R2VEC # MPAC=R2VEC (+29 OR +27)
GEOM
STODL SNTH # 0D=CSTH (+1) PL AT 2
MAGVEC2
NORM PDDL # PL AT 4
X1
R1
SR1 DDV # PL AT 2
SL* PDDL # DXCH WITH 0D, 0D=R1/R2 (+7) PL AT 0,2
0 -6,1
STADR
STORE CSTH # CSTH (+1)
SR1 BDSU
D1/4
STORE 1-CSTH # 1-CSTH (+2)
ROUND BZE
360LAMB
NORM PDDL # PL AT 4
X1
0D
SR1 DDV # PL AT 2
SL* SQRT
0 -3,1
PDDL SR # 2D=SQRT(2R1/R2(1-CSTH)) (+5) PL AT 4
SNTH
6
DDV DAD # PL AT 2
1-CSTH
STADR
STORE COGAMAX
BOV BMN # IF OVFL, COGAMAX=COGUPLIM
# Page 1297
UPLIM # IF NEG, USE EVEN IF LT COGLOLIM, SINCE
MAXCOGA # THIS WOULD BE RESET IN LAMBLOOP
DSU BMN # IF COGAMAX GT COGUPLIM, COGAMAX=COGUPLIM
COGUPLIM
MAXCOGA # OTHERWISE OK, SO GO TO MAXCOGA
UPLIM DLOAD
COGUPLIM # COGUPLIM=.999511597 = MAX VALUE OF COGA
STORE COGAMAX # NOT CAUSING OVFL IN R1A CALCULATION
MAXCOGA DLOAD
CSTH
SR DSU # PL AT 0
6
STADR
STODL CSTH-RHO
GEOMSGN
BMN DLOAD
LOLIM
CSTH-RHO
SL1 DDV
SNTH
BOV
LOLIM
MINCOGA STORE COGAMIN # COGAMIN (+5)
BON SSP
GUESSW
NOGUESS
TWEEKIT
00001
DLOAD
COGA
LAMBLOOP DMP
SNTH
SR1 DSU
CSTH-RHO
NORM PDDL # 0D=SNTH COGA-(CSTH-RHO) (+7+C(XI)) PL=2
X1
1-CSTH
SL* DDV # 1-CSTH (+2) PL AT 0
0 -9D,1
BMN BZE
NEGP
NEGP
STODL P # P=(1-CSTH)/(SNTH COGA-(CSTH-RHO)) (+4)
COGA
DSQ DAD
D1/1024
NORM DMP
X1
# Page 1298
P
SR* BDSU
0 -8D,1
D1/32
STODL R1A # R1A=2-P(1+COGA COGA) (+6)
P
BOV CALL
HIENERGY
GETX
DLOAD
T
STODL TPREV
XI
BON CALL
INFINFLG
NEGP # HAVE EXCEEDED THEORETICAL BOUNDS
DELTIME
BOV BDSU
BIGTIME
TDESIRED
STORE TERRLAMB
ABS BDSU
EPSILONL
BPL RTB
INITV
CHECKCTR
BHIZ CALL
SUFFCHEK
ITERATOR
DLOAD BZE
MPAC
SUFFCHEK
DAD
COGA
STCALL COGA
LAMBLOOP
NEGP DLOAD BPL # IMPOSSIBLE TRAJECTORY DUE TO INACCURATE
DCOGA # BOUND CALCULATION. TRY NEW COGA.
LOENERGY
HIENERGY SETPD DLOAD # HIGH ENERGY TRAJECTORY RESULTED.
0
COGA # IN OVFL OF P OR R1A, OR XI EXCEEDING 50.
STORE COGAMIN # THIS IS THE NEW BOUND.
COMMONLM DLOAD SR1
DCOGA
# Page 1299
STORE DCOGA # USE DCOGA/2 AS DECREMENT
BZE BDSU
SUFFCHEK
COGA
STCALL COGA
LAMBLOOP
BIGTIME DLOAD
TPREV
STORE T
LOENERGY SETPD DLOAD # LOW ENERGY TRAJECTORY RESULTED
0
COGA # IN OVERFLOW OF TIME.
STCALL COGAMAX # THIS IS THE NEW BOUND.
COMMONLM
SUFFCHEK DLOAD ABS
TERRLAMB
PDDL DMP # PL AT 2D
TDESIRED
D1/4
DAD DSU # PL AT 0D
ONEBIT
BPL SETGO
INITV
SOLNSW
RTNLAMB
360LAMB SETPD SETGO # LAMBERT CANNOT HANDLE CSTH=1
0
SOLNSW
RTNLAMB
NOGUESS SSP DLOAD
TWEEKIT
20000
COGAMIN
SR1 PDDL # PL AT 2
COGAMAX
SR1 DAD
STADR # PL AT 0
STORE COGA
STCALL DCOGA
LAMBLOOP
# Page 1300
LOLIM DLOAD GOTO
COGLOLIM # COGLOLIM=-.999511597
MINCOGA
INITV DLOAD NORM
R1
X1
PDDL SR1 # PL AT 2
P
DDV # PL AT 0
SL* SQRT
0 -4,1
DMP SL1
ROOTMU
PUSH DMP # 0D=VTAN (+7) PL AT 2
COGA
SL VXSC
5
UR1
PDDL # XCH WITH 0D PL AT 0,6
VXSC VSL1
UN
VXV VAD # PL AT 0
UR1
VSL1 CLEAR
SOLNSW
STORE VVEC
SLOAD BZE
VTARGTAG
TARGETV
GOTO
RTNLAMB
TARGETV DLOAD CALL
MAGVEC2
LAMENTER
STCALL VTARGET
RTNLAMB
# Page 1301
TIMERAD STQ SETPD # PL AT 0
RTNTR
0
BOV
+1
VLOAD PDVL # PL AT 6
RVEC
VVEC
CALL
PARAM
BOV DLOAD # PL AT 0
COGAOVFL
D1/32
DSU DMP
R1A
P
SQRT DMP
COGA
SL4 VXSC
U2
PDDL DSU # PL AT 6
D1/64
R1A
VXSC VSU # PL AT 0
UR1
VSL4 UNIT
BOV
CIRCULAR
PDDL NORM # 0D=UNIT(ECC) (+3) PL AT 6
RDESIRED # 36D=ECC (+3)
X1
PDDL DMP # PL AT 8
R1
P
SL* DDV # PL AT 6
0,1
DSU DDV
D1/16
36D # 36D=ECC (+3)
STORE COSF
BOV DSQ
BADR2
BDSU BMN
D1/4
BADR2
SQRT SIGN
SGNRDOT
CLEAR
APSESW
# Page 1302
TERMNVEC VXSC VSL1
UN
VXV PDVL # VXCH WITH 0D PL AT 0,6
0D
VXSC VAD # PL AT 0
COSF
VSL1 PUSH # 0D=U2 PL AT 6
DOT DDV # LIMITS RESULT TO POSMAX OR NEGMAX
UR1
DP1/4
SR1 BOV # SCALE BACK DOWN TO NORMAL
+1 # CLEAR OVFIND IF SET
STOVL CSTH # CSTH (+1)
UR1
VXV VSL1
DOT SL1
UN
STODL SNTH # SNTH (+1)
P
CALL
GETX
CLRGO
SOLNSW
COMMNOUT
CIRCULAR SETPD SETGO
0
SOLNSW
ABTCONIC
BADR2 DLOAD SIGN
LODPHALF
COSF
STODL COSF
KEPZERO
SETGO
APSESW
TERMNVEC
# Page 1303
APSIDES STQ SETPD # PL AT 0
RTNAPSE
0D
BOV
+1
VLOAD PDVL # PL AT 6
RVEC
VVEC
CALL
PARAM
BOV # PL AT 0
GETECC
GETECC DMP SL4
R1A
BDSU SQRT
D1/64
STORE ECC
DAD PDDL # PL AT 2
D1/8
R1
DMP SL1
P
DDV # PL AT 0
PDDL NORM # 0D=RP (+29 OR +27) PL AT 2
R1A
X1
PDDL SL* # PL AT 4
R1
0 -5,1
DDV DSU # PL AT 2,0
BOV BMN
INFINAPO
INFINAPO
GOTO
RTNAPSE
INFINAPO DLOAD GOTO # RETURNS WITH APOAPSIS IN MPAC, PERIAPSIS
LDPOSMAX
RTNAPSE # THAT PL IS AT 0.
# Page 1304
ABTCONIC EXIT
TC POODOO
OCT 00607
# Page 1305
SETLOC CONICS1
BANK
COUNT 04/CONIC
MUTABLE 2DEC* 3.986032 E10 B-36* # MUE
2DEC* .25087606 E-10 B+34* # 1/MUE
2DEC* 1.99650495 E5 B-18* # SQRT(MUE)
2DEC* .50087529 E-5 B+17* # 1/SQRT(MUE)
2DEC 4.902778 E8 B-30 # MUM
2DEC .203966 E-8 B+28 # 1/MUM
2DEC* 2.21422176 E4 B-15* # SQRT(MUM)
2DEC* .45162595 E-4 B+14* # 1/SQRT(MUM)
LDPOSMAX EQUALS LODPMAX # DPPOSMAX IN LOW MEMORY.
# ERASABLE ASSIGNMENTS
# KEPLER SUBROUTINE
# INPUT --
# RRECT ERASE +5
# VRECT ERASE +5
# TAU. ERASE +1
# XKEP ERASE +1
# TC ERASE +1
# XPREV ERASE +1
1/MU EQUALS 14D
ROOTMU EQUALS 16D
1/ROOTMU EQUALS 18D
# OUTPUT --
# RCV ERASE +5
# VCV ERASE +5
# RC ERASE +1
# XPREV ERASE +1
# DEBRIS --
ALPHA EQUALS 8D
XMAX EQUALS 10D
# Page 1306
XMIN EQUALS 12D
X EQUALS 20D
XI EQUALS 24D
S(XI) EQUALS 26D
XSQC(XI) EQUALS 28D
T EQUALS 30D
R1 EQUALS 32D
KEPC1 EQUALS 34D
KEPC2 EQUALS 36D
# DELX ERASE +1
# DELT ERASE +1
# URRECT ERASE +5
# RCNORM ERASE +1
# XPREV EQUALS XKEP
# LAMBERT SUBROUTINE
#
# INPUT --
# R1VEC ERASE +5
# R2VEC ERASE +5
# TDESIRED ERASE +1
# GEOMSGN ERASE +0
# GUESSW # 0 IF COGA GUESS AVAILABLE, 1 IF NOT
# COGA ERASE +1 # INPUT ONLY IF GUESSW IS ZERO.
# NORMSW # 0 IF UN TO BE COMPUTED, 1 IF UN INPUT
# UN ERASE +5 # ONLY USED IF NORMSW IS 1
# VTARGTAG ERASE +0
# TWEEKIT EQUALS 40D # ONLY USED IF GUESSW IS 0
# OUTPUT --
# VTARGET ERASE +5 # AVAILABLE ONLY IF VTARGTAG IS ZERO.
# V1VEC EQUALS MPAC
# DEBRIS --
# RTNLAMB ERASE +0
# U2 ERASE +5
# MAGVEC2 ERASE +1
# UR1 ERASE +5
# R1 EQUALS 31D
# UN ERASE +5
# SNTH ERASE +1
# CSTH ERASE +1
# 1-CSTH ERASE +1
# CSTH-RHO ERASE +1
COGAMAX EQUALS 14D # CLOBBERS 1/MU
COGAMIN EQUALS 8D
DCOGA EQUALS 12D
# TWEEKIT EQUALS 40D
# P ERASE +1
# Page 1307
# COGA ERASE +1
# R1A ERASE +1
# X EQUALS 20D
# XSQ EQUALS 22D
# XI EQUALS 24D
# S(XI) EQUALS 26D
# XSQC(XI) EQUALS 28D
# T EQUALS 30D
# KEPC1 EQUALS 34D
# KEPC2 EQUALS 36D
# SLOPESW
# SOLNSW
# OTHERS --
# RVEC EQUALS R1VEC
# VVEC ERASE +5
# COGAFLAG
# RVSW
# INFINFLG
# APSESW
# 360SW
# RTNTT EQUALS RTNLAMB
# ECC ERASE +1
# RTNTR EQUALS RTNLAMB
# RTNAPSE EQUALS RTNLAMB
# R2 EQUALS MAGVEC2
COSF EQUALS 24D
# RTNPRM ERASE +0
# SGNRDOT ERASE +0
# RDESIRED ERASE +1
# ITERATOR SUBROUTINE
# ORDERSW
MAX EQUALS 14D # CLOBBERS 1/MU
MIN EQUALS 8D
# INDEP ERASE +1
DELINDEP EQUALS 12D
ITERCTR EQUALS 22D
DEP EQUALS 30D
# DELDEP ERASE +1
# DEPREV ERASE +1
TWEEKIT EQUALS 40D
# MORE KEPLER
# EPSILONT ERASE +1
# Page 1308
# MORE LAMBERT
# TERRLAMB EQUALS DELDEP
# TPREV EQUALS DEPREV
# EPSILONL EQUALS EPSILONT +2 # DOUBLE PRECISION WORD
================================================
FILE: Comanche055/CONTRACT_AND_APPROVALS.agc
================================================
# Copyright: Public domain.
# Filename: CONTRACT_AND_APPROVALS.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), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Mod history: 2009-05-06 RSB Transcribed from page images.
#
# 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
# Page 1
# ************************************************************************
# * *
# * THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS: *
# * *
# * *
# * COLOSSUS 2A *
# * *
# * *
# * THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED *
# * IN REPORT R-577. THIS PROGRAM WAS PREPARED UNDER DSR *
# * PROJECT 55-23870, SPONSORED BY THE MANNED SPACECRAFT *
# * CENTER OF THE NATIONAL AERONAUTICS AND SPACE *
# * ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE *
# * INSTRUMENTATION LABORATORY, MASSACHUSETTS INSTITUTE OF *
# * TECHNOLOGY, CAMBRIDGE, MASS. *
# * *
# ************************************************************************
# SUBMITTED: MARGARET H. HAMILTON DATE: 28 MAR 69
# M.H.HAMILTON, COLOSSUS PROGRAMMING LEADER
# APOLLO GUIDANCE AND NAVIGATION
# APPROVED: DANIEL J. LICKLY DATE: 28 MAR 69
# D.J.LICKLY, DIRECTOR, MISSION PROGRAM DEVELOPMENT
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: FRED H. MARTIN DATE: 28 MAR 69
# FRED H. MARTIN, COLOSSUS PROJECT MANGER
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: NORMAN E.SEARS DATE: 28 MAR 69
# N.E. SEARS, DIRECTOR, MISSION DEVELOPMENT
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: RICHARD H. BATTIN DATE: 28 MAR 69
# R.H. BATTIN, DIRECTOR, MISSION DEVELOPMENT
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: DAVID G. HOAG DATE: 28 MAR 69
# D.G. HOAG, DIRECTOR
# APOLLO GUIDANCE AND NAVIGATION PROGRAM
# APPROVED: RALPH R. RAGAN DATE: 28 MAR 69
# R.R. RAGAN, DEPUTY DIRECTOR
# INSTRUMENTATION LABORATORY
================================================
FILE: Comanche055/CSM_GEOMETRY.agc
================================================
# Copyright: Public domain.
# Filename: CSM_GEOMETRY.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), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 285-296
# Mod history: 2009-05-08 RSB Adapted from the Colossus249/ file of the
# same name, using Comanche055 page images.
#
# 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
# Page 285
BANK 22
SETLOC COMGEOM1
BANK
# THIS ROUTINE TAKES THE SHAFT AND TRUNNION ANGLES AS READ BY THE CM OPTICAL SYSTEM AND CONVERTS THEM INTO A UNIT
# VECTOR REFERENCED TO THE NAVIGATION BASE COORDINATE SYSTEM AND COINCIDENT WITH THE SEXTANT LINE OF SIGHT.
#
# THE INPUTS ARE 1) THE SEXTANT SHAFT AND TRUNNION ANGLES ARE STORED SP IN LOCATIONS 3 AND 5 RESPECTIVELY OF THE
# MARK VAC AREA. 2) THE COMPLEMENT OF THE BASE ADDRESS OF THE MARK VAC AREA IS STORED SP AT LOCATION X1 OF YOUR
# JOB VAC AREA.
#
# THE OUTPUT IS A HALF-UNIT VECTOR IN NAVIGATION BASE COORDINATES AND STORED AT LOCATION 32D OF THE VAC AREA. THE
# OUTPUT IS ALSO AVAILABLE AT MPAC.
COUNT 23/GEOM
SXTNB SLOAD* RTB # PUSHDOWN 00,02,04,(17D-19D),32D-36D
5,1 # TRUNNION = TA
CDULOGIC
RTB PUSH
SXTLOGIC
SIN SL1
PUSH SLOAD* # PD2 = SIN(TA)
3,1 # SHAFT = SA
RTB PUSH # PD4 = SA
CDULOGIC
COS DMP
2
STODL STARM # COS(SA)SIN(TA)
SIN DMP
STADR
STODL STARM +2 # SIN(SA)SIN(TA)
COS
STOVL STARM +4
STARM # STARM = 32D
MXV VSL1
NB1NB2
STORE 32D
RVQ
SXTLOGIC CAF 10DEGS- # CORRECT FOR 19.775 DEGREE OFFSET
ADS MPAC
CAF QUARTER
TC SHORTMP
TC DANZIG
# Page 286
# CALCSXA COMPUTES THE SEXTANT SHAFT AND TRUNNION ANGLES REQUIRED TO POSITION THE OPTICS SUCH THAT A STAR LINE-
# OF-SIGHT LIES ALONG THE STAR VECTOR. THE ROUTINE TAKES THE GIVEN STAR VECTOR AND EXPRESSES IT AS A VECTOR REF-
# ERENCED TO THE OPTICS COORDINATE SYSTEM. IN ADDITION IT SETS UP THREE UNIT VECTORS DEFINING THE X,Y, AND Z AXES
# REFERENCED TO THE OPTICS COORDINATE SYSTEM.
#
# THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO PRESENT STABLE MEMBER COORDINATES STORED AT STAR. 2) SAME ANGLE
# INPUT AS *SMNB*, I.E. SINES AND COSINES OF THE CDU ANGLES, IN THE ORDER Y Z X, AT SINCDU AND COSCDU. A CALL
# TO CDUTRIG WILL PROVIDE THIS INPUT.
#
# THE OUTPUTS ARE THE SEXTANT SHAFT AND TRUNNION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY. (LOW ORDER PART
# EQUAL TO ZERO).
CALCSXA ITA VLOAD # PUSHDOWN 00-26D,28D,30D,32D-36D
28D
STAR
CALL
*SMNB*
MXV VSL1
NB2NB1
STOVL STAR
HIUNITX
STOVL XNB1
HIUNITY
STOVL YNB1
HIUNITZ
STCALL ZNB1
SXTANG1
# Page 287
# SXTANG COMPUTES THE SEXTANT SHAFT AND TRUNNION ANGLES REQUIRED TO POSITION THE OPTICS SUCH THAT A STAR LINE-OF-
# SIGHT LIES ALONG THE STAR VECTOR.
#
# THE INPUTS ARE 1) THE STAR VECTOR REFERRED TO ANY COORDINATE SYSTEM STORED AT STAR. 2) THE NAVIGATION BASE
# COORDINATES REFERRED TO THE SAME COORDINATE SYSTEM. THESE THREE HALF-UNIT VECTORS ARE STORED AT XNB, YNB, AND
# ZNB.
#
# THE OUTPUTS ARE THE SEXTANT SHAFT AND TRUNNION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY. (LOW ORDER PART
# EQUAL TO ZERO).
SXTANG ITA RTB # PUSHDOWN 16D,18D,22D-26D,28D
28D
TRANSP1 # EREF WRT NB2
VLOAD MXV
XNB
NB2NB1
VSL1
STOVL XNB1
YNB
MXV VSL1
NB2NB1
STOVL YNB1
ZNB
MXV VSL1
NB2NB1
STORE ZNB1
RTB RTB
TRANSP1
TRANSP2
SXTANG1 VLOAD VXV
ZNB1
STAR
BOV
+1
UNIT BOV
ZNB=S1
STORE PDA # PDA = UNIT(ZNB X S)
DOT DCOMP
XNB1
STOVL SINTH # SIN(SA) = PDA . -XNB
PDA
DOT
YNB1
STCALL COSTH # COS(SA) = PDA . YNB
ARCTRIG
# Page 288
RTB
1STO2S
STOVL SAC
STAR
BOV
+1
DOT SL1
ZNB1
ACOS
BMN SL2
SXTALARM # TRUNNION ANGLE NEGATIVE
BOV DSU
SXTALARM # TRUNNION ANGLE GREATER THAN 90 DEGREES
20DEG-
RTB
1STO2S
STORE PAC # FOR FLIGHT USE, CULTFLAG IS ON IF
CLRGO # TRUNION IS GREATER THAN 90 DEG
CULTFLAG
28D
SXTALARM SETGO # ALARM HAS BEEN REMOVED FROM THIS
CULTFLAG
28D # SUBROUTINE,ALARM WILL BE SET BY MPI
ZNB=S1 DLOAD
270DEG
STODL SAC
20DEGS-
STORE PAC
CLRGO
CULTFLAG
28D
# Page 289
# THESE TWO ROUTINES COMPUTE THE ACTUAL STATE VECTOR FOR LM, CSM BY ADDING
# THE CONIC R,V AND THE DEVIATIONSR,V. THE STATE VECTORS ARE CONVERTED TO
# METERS B-29 AND METERS/CSEC B-7 AND STORED APPROPRIATELY IN RN,VN OR
# R-OTHER , V-OTHER FOR DOWNLINK. THE ROUTINES NAMES ARE SWITCHED IN THE
# OTHER VEHICLES COMPUTER.
#
# INPUT
# STATE VECTOR IN TEMPORARY STORAGE AREA
# IF STATE VECTOR IS SCALED POS B27 AND VEL B5
# SET X2 TO +2
# IF STATE VECTOR IS SCALED POS B29 AND VEL B7
# SET X2 TO 0
#
# OUTPUT
# R(T) IN RN, V(T) IN VN, T IN PIPTIME
# OR
# R(T) IN R-OTHER, V(T) IN V-OTHER (T IS DEFINED BY T-OTHER)
BANK 23
SETLOC COMGEOM2
BANK
COUNT 10/GEOM
SVDWN1 BOF RVQ # SW=1=AVETOMID DOING W-MATRIX INTEG
AVEMIDSW
+1
VLOAD VSL*
TDELTAV
0 -7,2
VAD VSL*
RCV
0,2
STOVL RN
TNUV
VSL* VAD
0 -4,2
VCV
VSL*
0,2
STODL VN
TET
STORE PIPTIME
RVQ
SVDWN2 VLOAD VSL*
TDELTAV
0 -7,2
VAD VSL*
RCV
# Page 290
0,2
STOVL R-OTHER
TNUV
VSL* VAD
0 -4,2
VCV
VSL*
0,2
STORE V-OTHER
RVQ
# Page 291
# SUBROUTINE TO COMPUTE THE NATURAL LOG OF C(MPAC, MPAC +1).
#
# ENTRY: CALL
# LOG
#
# SUBROUTINE RETURNS WITH -LOG IN DP MPAC.
#
# EBANK IS ARBITRARY..
BANK 14
SETLOC POWFLIT2
BANK
COUNT 23/GEOM
LOG NORM BDSU # GENERATES LOG BY SHIFTING ARG
MPAC +3 # UNTIL IT LIES BETWEEN .5 AND 1.
NEARLY1 # THE LOG OF THIS PART IS FOUND AND THE
EXIT # LOG OF THE SHIFTED PART IS COMPUTED
TC POLY # AND ADDED IN. SHIFT COUNT STORED
DEC 2 # (N-1, SUPPLIED BY SMERZH)
2DEC 0 # IN MPAC +3.
2DEC .031335467
2DEC .0130145859
2DEC .0215738898
CAF ZERO
TS MPAC +2
EXTEND
DCA CLOG2/32
DXCH MPAC
DXCH MPAC +3
COM # LOAD POSITIVE SHIFT COUNT IN A.
TC SHORTMP # MULTIPLY BY SHIFT COUNT.
DXCH MPAC +1
DXCH MPAC
DXCH MPAC +3
DAS MPAC
TC INTPRET # RESULT IN MPAC, MPAC +1
RVQ
NEARLY1 2DEC .999999999
# Page 292
CLOG2/32 2DEC .0216608494
# Page 293
# SUBROUTINE NAME: EARTH ROTATOR (EARROT1 OR EARROT2) DATE: 15 FEB 67
# MOD NO: N +1 LOG SECTION: POWERED FLIGHT SUBROS
# MOD BY: ENTRY GROUP (BAIRNSFATHER)
# FUNCTIONAL DESCRIPTION: THIS ROUTINE PROJECTS THE INITIAL EARTH TARGET VECTOR RTINIT AHEAD THROUGH
# THE ESTIMATED TIME OF FLIGHT. INITIAL CALL RESOLVES THE INITIAL TARGET VECTOR RTINIT INTO EASTERLY
# AND NORMAL COMPONENTS RTEAST AND RTNORM . INITIAL AND SUBSEQUENT CALLS ROTATE THIS VECTOR
# ABOUT THE (FULL) UNIT POLAR AXIS UNITW THROUGH THE ANGLE WIE DTEAROT TO OBTAIN THE ROTATED
# TARGET VECTOR RT . ALL VECTORS EXCEPT UNITW ARE HALF UNIT.
# THE EQUATIONS ARE
# - - - -
# RT = RTINIT + RTNORM (COS(WT) - 1) + RTEAST SIN(WT)
# WHERE WT = WIE DTEAROT
# RTINIT = INITIAL TARGET VECTOR
# - - -
# RTEAST = UNITW*RTINIT
# - - -
# RTNORM = RTEAST*UNITW
#
# FOR CONTINUOUS UPDATING, ONLY ONE ENTRY TO EARROT1 IS REQUIRED, WITH SUBSEQUENT ENTRIES AT EARROT2.
# CALLING SEQUENCE: FIRST CALL SUBSEQUENT CALL
# STCALL DTEAROT STCALL DTEAROT
# EARROT1 EARROT2
# C(MPAC) UNSPECIFIED C(MPAC) = DTEAROT
# PUSHLOC = PDL+0, ARBITRARY. 6 LOCATIONS USED.
#
# SUBROUTINES USED: NONE
# NORMAL EXIT MODES: RVQ
# ALARMS: NONE
# OUTPUT: RTEAST (-1) .5 UNIT VECTOR EAST, COMPNT OF RTINIT LEFT BY FIRST CALL
# RTNORM (-1) .5 UNIT VECTOR NORML, COMPNT OF RTINIT LEFT BY FIRST CALL
# RT (-1) .5 UNIT TARGET VECTOR, ROTATED LEFT BY ALL CALLS
# DTEAROT (-28) CS MAY BE CHANGED BY EARROT2, IF OVER 1 DAY
# ERASABLE INITIALIZATION REQUIRED:
# UNITW (0) UNIT POLAR VECTOR PAD LOADED
# RTINIT (-1) .5 UNIT INITIAL TARGET VECTOR LEFT BY ENTRY
# DTEAROT (-28) CS TIME OF FLIGHT LEFT BY CALLER
# DEBRIS: QPRET, PDL+0 ... PDL+5
# Page 294
EBANK= RTINIT
EARROT1 VLOAD VXV
UNITW # FULL UNIT VECTOR
RTINIT # .5 UNIT
STORE RTEAST # .5 UNIT
VXV
UNITW # FULL UNIT
STODL RTNORM # .5 UNIT
DTEAROT # (-28) CS
EARROT2 BOVB DDV
TCDANZIG # RESET OVFIND, IF ON
1/WIE
BOV PUSH
OVERADAY
COS DSU
HIDPHALF
VXSC PDDL # XCH W PUSH LIST
RTNORM # .5 UNIT
SIN VXSC
RTEAST # .5 UNIT
VAD VSL1
VAD UNIT # INSURE THAT RT IS 'UNIT'.
RTINIT # .5 UNIT
STORE RT # .5 UNIT TARGET VECTOR
RVQ
OVERADAY DLOAD SIGN
1/WIE
DTEAROT
BDSU
DTEAROT
STORE DTEAROT
GOTO
EARROT2
#WIE 2DEC .1901487997
1/WIE 2DEC 8616410
NB2NB1 2DEC +.8431756920 B-1
2DEC 0
2DEC -.5376381241 B-1
# Page 295
ZERINFLT 2DEC 0
HALFNFLT 2DEC .5
2DEC 0
2DEC +.5376381241 B-1
2DEC 0
2DEC +.8431756920 B-1
NB1NB2 2DEC +.8431756920 B-1
2DEC 0
2DEC +.5376381241 B-1
2DEC 0
2DEC .5
2DEC 0
2DEC -.5376381241 B-1
2DEC 0
2DEC +.8431756920 B-1
# Page 296
10DEGS- DEC 3600
270DEG OCT 60000 # SHAFT 270 DEGREES 2S COMP.
OCT 00000
20DEGS- DEC -07199
DEC -00000
20DEG- DEC 03600
DEC 00000
================================================
FILE: Comanche055/DISPLAY_INTERFACE_ROUTINES.agc
================================================
# Copyright: Public domain.
# Filename: DISPLAY_INTERFACE_ROUTINES.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 1452-1484
# Contact: Ron Burkey <info@sandroid.org>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same
# name, and page images. Corrected various
# typos in the transcription of program
# comments, and these should be back-ported
# to Colossus249.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to info@sandroid.org.
# Page 1452
# DISPLAYS CAN BE CLASSIFIED INTO THE FOLLOWING CATEGORIES-
# 1. PRIORITY DISPLAYS- DISPLAYS WHICH TAKE PRIORITY OVER ALL OTHER DISPLAYS. USUALLY THESE DISPLAYS ARE SENT
# OUT UNDER CRITICAL ALARM CONDITIONS.
# 2. EXTENDED VERB DISPLAYS- ALL EXTENDED VERBS AND MARK ROUTINES SHOULD USE EXTENDED VERB (MARK) DISPLAYS.
# 3. NORMAL DISPLAYS- ALL MISSION PROGRAM DISPLAYS WHICH INTERFACE WITH THE ASTRONAUT DURING THE NORMAL
# SEQUENCE OF EVENTS.
# 4. MISC. DISPLAYS- ALL DISPLAYS NOT HANDLED BY THE DISPLAY INTERFACEROUTINES. THESE INCLUDE SUCH DISPLAYS AS
# MM DISPLAYS AND SPECIAL PURPOSE DISPLAYS HANDLED BY PINBALL.
# 5. ASTRONAUT INITIATED DISPLAYS- ALL DISPLAYS INITIATED EXTERNALLY.
#
# THE FOLLOWING TERMS ARE USED TO DESCRIBE THE STATUS OF DISPLAYS-
# 1. ACTIVE-THE DISPLAY WHICH IS (1) BEING DISPLAYED TO THE ASTRONAUT AND WAITING FOR A RESPONSE OR
# (2) WAITING FIRST IN LINE FOR THE ASTRONAUT TO FINISH USING THE DSKY OR (3) BEING DISPLAYED ON THE DSKY
# BUT NOT WAITING FOR A RESPONSE.
# 2. INACTIVE -A DISPLAY WHICH HAS (1) BEEN ACTIVE BUT WAS INTERRUPTED BY A DISPLAY OF HIGHER PRIORITY,
# (2) BEEN PUT INTO THE WAITING LIST AT TIME IT WAS REQUESTED DUE TO THE FACT A HIGHER PRIORITY DISPLAY
# WAS ALREADY GOING, (3) BEEN INTERRUPTED BY THE ASTRONAUT (CALLED A PINBRANCH CONDITION, SINCE THIS TYPE
# OF INACTIVE DISPLAY IS USUALLY REACTIVATED ONLY BY PINBALL) OR (4) A DISPLAY WHICH HAS FINISHED BUT STILL
# HAS INFO SAVED FOR RESTART PURPOSES.
#
# DISPLAY PRIORITIES WORK AS FOLLOWS-
# INTERRUPTS-
# 1. THE ASTRONAUT CAN INTERRUPT ANY DISPLAY WITH AN EXTERNAL DISPLAY REQUEST.
# 2. INTERNAL DISPLAYS CAN NOT BE SENT OUT WHEN THE ASTRONAUT IS USING THE DSKY.
# 3. PRIORITY DISPLAYS INTERRUPT ALL OTHER TYPES OF INTERNAL DISPLAYS. A PRIORITY DISPLAY INTERRUPTING ANOTHER
# PRIORITY DISPLAY WILL CAUSE AN ABORT UNLESS BIT14 IS SET FOR THE LINUS ROUTINE.
# 4. A MARK DISPLAY INTERRUPTS ANY NORMAL DISPLAY.
# 5. A MARK THAT INTERRUPTS A MARK COMPLETELY REPLACES IT.
#
# ORDER OF WAITING DISPLAYS-
# 1. ASTRONAUT EXTERNAL USE
# 2. PRIORITY
# 3. INTERRUPTED MARK
# 4. INTERRUPTED NORMAL
# 5. MARK TO BE REQUESTED (SEE DESCRIPTION OF ENDMARK)
# 6. MARK WAITING
# 7. NORMAL WAITING
#
# Page 1453
# THE DISPLAY ROUTINES ARE INTENDED TO SERVE AS AN INTERFACE BETWEEN THE USER AND PINBALL. THE
# FOLLOWING STATEMENTS CAN BE MADE ABOUT NORMAL DISPLAYS AND PRIORITY DISPLAYS (A DESCRIPTION OF MARK ROUTINES
# WILL FOLLOW LATER):
# 1. ALL ROUTINES THAT END IN R HAVE AN IMMEDIATE RETURN TO THE USER. FOR ALL FLASHING DISPLAYS THIS RETURN
# IS TO THE USERS CALL CADR +4. FOR THE ONLY NON FLASHING IMMEDIATE RETURN DISPLAY (GODSPR) THIS RETURN
# IS TO THE USERS CALLING LOC +1.
# 2. ALL ROUTINES NOT ENDING IN R DO NOT DO AN IMMEDIATE RETURN TO THE USER.
# 3. ALL ROUTINES THAT END IN R START A SEPARATE JOB (MAKEPLAY) WITH USERS JOB PRIORITY.
# 4. ALL ROUTINES NOT ENDING IN R BRANCH DIRECTLY TO MAKEPLAY WHICH MAKES THESE DISPLAYS A PART OF THE
# USERS JOB.
# 5. ALL DISPLAY ROUTINES ARE CALLED VIA BANKCALL.
# 6. TO RESTART A DISPLAY THE USER WILL GENERALLY USE A PHASE OF ONE WITH DESIRED RESTART GROUP (SEE
# DESCRIPTION OF RESTARTS).
# 7. ALL FLASHING DISPLAYS HAVE 3 RETURNS TO THE USER FROM ASTRONAUT RESPONSES. A TERMINATE (V34) BRANCHES
# TO THE USERS CALL CADR +1. A PROCEED (V33) BRANCHES TO THE USERS CALL CADR +2. AN ENTER OR RECYCLE
# (V32) BRANCHES TO THE USERS CALL CADR +3.
# 8. ALL ROUTINES MUST BE USED UNDER EXECUTIVE CONTROL.
#
# A DESCRIPTION OF EACH ROUTINE WITH AN EXAMPLE FOLLOWS:
# GODSP IS USED TO DISPLAY A VERB NOUN ARRIVING IN A. NO RETURN IS MADE TO THE USER.
# 1. GODSP IS NOT RESTARTABLE
# 2. A VERB PASTE WITH GODSP ALWAYS TURNS ON THE FLASH.
# CAF VXXNYY
# TC BANKCALL
# CADR GODSP
# VXXNYY OCT OXXYY
# GODSPR IS THE SAME AS GODSP ONLY RETURN IS TO THE USER.
# CAF VXXNYY
# TC BANKCALL
# CADR GODSPR
# ... ... # IMMEDIATE RETURN OF GODSPR
# GOFLASH DISPLAYS A FLASHING VERB NOUN WITH NO IMMEDIATE RETURN TO THE USER. 3 RETURNS ARE POSSIBLE FORM
# THE ASTRONAUT (SEE NO. 7 ABOVE).
# CAF VXXNYY # VXX NYY WILL BE A FLASHING VERB NOUN.
# TC BANKCALL
# CADR GOFLASH
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# GOPERF1 IS ENTERED WITH DESIRED CHECKLIST VALUE IN A. GOPERF1 WILL DISPLAY THIS VALUE IN R1 BY MEANS OF A
# Page 1454
# V01 N25.A FLASHING PLEASE PERFORM ON CHECKLIST (V50 N25) IS THEN DISPLAYED. NO IMMEDIATE RETURN IS MADE TO
# USER (SEE NO. 7 ABOVE).
# GOPERF1 BLANKS REGISTERS R2 AND R3
# CAF OCTXX # CODE FOR CHECKLIST VALUE XX
# TC BANKCALL
# CADR GOPERF1
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOPERF2 IS ENTERED WITH A VARIABLE NOUN AND V01 (V00 FOR N10 OR N11) IN A. GOPERF2 WILL FIRST DISPLAY THE
# REQUESTED NOUN BY MEANS OF A V01NYY OR A V00NYY. PLEASE PERFORM ON NOUN (V50 NYY) THEN BECOMES A FLASHING
# DISPLAY. NO IMMEDIATE RETURN IS MADE TO THE USER (SEE NO. 7 ABOVE).
# GOPERF2 DOES NOT BLANK ANY REGISTERS
# CAF VXXNYY # VARIABLE NOUN YY. XX=00 OR 01.
# TC BANKCALL
# CADR GOPERF2
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOPERF3 IS USED FOR A PLEASE PERFORM ON A PROGRAM NUMBER. THE DESIRED PROGRAM NO. IS ENTERED IN A. GOPERF3
# DISPLAYS THE NO. BY MEANS OF A V06 N07 FOLLOWED BY A FLASHING V50 N07 FOR A PLEASE PERFORM. NO IMMEDIATE RETURN
# IS MADE TO THE USER (SEE NO. 7 ABOVE).
# GOPERF3 BLANKS REGISTERS R2 AND R3
# CAF DECXX # REQUEST PERFORM ON PXX
# TC BANKCALL
# CADR GOPERF3
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOPERF4 IS USED FOR A PLEASE PERFORM ON AN OPTION. THE DESIRED OPTION IS ENTERED IN A AND STORED IN OPTION1.
# GOPERF4 DISPLAYS R1 AND R2 BY MEANS OF A V04N06 FOLLOWED BY A FLASHING V50N06 FOR A PLEASE PERFORM. NO
# IMMEDIATE RETURN IS MADE TO THE USER (SEE NO. 7 ABOVE).
# CAF OCTXX # REQUEST PERFORM ON OPTION XX
# TC BANKCALL
# CADR GOPERF4
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOPERF4 BLANKS REGISTER R3
#
# Page 1455
# GODSPRET IS USED TO DISPLAY A VERB NOUN ARRIVING IN A WITH A RETURN TO THE USER AFTER THE DISPLAY HAS BEEN SENT
# OUT.
# CAF VXXXNYY
# TC BANKCALL
# CADR GODSPRET
# ... ... # RETURN TO USER
# REGODSP IS USED TO DISPLAY A VERB NOUN ARRIVING IN A. REGODSP IS THE SAME AS GODSP ONLY REGODSP REPLACES ANY
# ACTIVE NORMAL DISPLAY IF ONE WAS ACTIVE.
# CAF VXXNYY
# TC BANKCALL
# CADR REGODSP
# REFLASH IS THE SAME AS GOFLASH ONLY REFLASH REPLACES ANY ACTIVE NORMAL DISPLAY IF ONE WAS ACTIVE.
# CAF VXXNYY # VXX NYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR REFLASH
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOFLASHR IF SAME AS GOFLASH ONLY AN IMMEDIATE RETURN IS MADE TO THE USERS CALL CADR +4.
# CAF VXXNYY
# TC BANKCALL
# CADR GOFLASHR
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# ... ... # IMMEDIATE RETURN FROM GOFLASHR
# GOPERF1R IS THE SAME AS GOPERF1 ONLY GOPERF1R HAS AN IMMEDIATE RETURN TO USERS CALL CADR +4.
# GOPERF1R BLANKS REGISTERS R2 AND R3
# CAF OCTXX # CODE FOR CHECKLIST VALUE XX.
# TC BANKCALL
# CADR GOPERF1R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN FROM GOPERF1R
# GOPERF2R IS THE SAME AS GOPERF2 ONLY AN IMMEDIATE RETURN IS MADE TO USERS CALL CADR +4.
# Page 1456
# GOPERF2R DOES NOT BLANK ANY REGISTERS
# CAF VXXNYY # VARIABLE NOUN YY REQUESTED. XX=00 OR 01
# TC BANKCALL
# CADR GOPERF2R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN HERE FROM GOPERF2R
# GOPERF3R IS THE SAME AS GOPERF3 ONLY AN IMMEDIATE RETURN IS MADE TO USERS CALL CADR +4.
# GOPERF3R BLANKS REGISTERS R2 AND R3
# CAF PROGXX # PERFORM PROGRAM XX
# TC BANKCALL
# CADR GOPERF3R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # GOPERF3R IMMEDIATELY RETURNS HERE
# GOPERF4R IS THE SAME AS GOPERF4 ONLY AN IMMEDIATE RETURN IS MADE TO USERS CALL CADR +4.
# CAF OCTXX # REQUEST PERFORM ON OPTIONXX
# TC BANKCALL
# CADR GOPERF4R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN TO USER
# GOPERF4R BLANKS REGISTER R3
#
# REFLASHR IS THE SAME AS REFLASH ONLY AN IMMEDIATE RETURN IS MADE TO THE USERS CALL CADR +4.
# CAF VXXNYY # VXX NYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR REFLASHR
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN TO USER
# REGODSPR IS THE SAME AS REGODSP ONLY A RETURN (IMMEDIATE) IS MADE TO THE USER.
# Page 1457
# CAF VXXNYY
# TC BANKCALL
# CADR REGODSPR
# ... ... # IMMEDIATE RETURN TO USER
# Page 1458
# GOMARK IS USED TO DISPLAY A MARK VERB NOUN ARRIVING IN A. NO RETURN IS MADE TO THE USER.
# GOXDSP = GOMARK
# CAF VXXNYY # VXXNYY CONTAINS VERB AND NOUN
# TC BANKCALL
# CADR GOMARK # OTHER EXTENDED VERBS USE CADR GOXDSP
# GOMARKR IS THE SAME AS GOMARK ONLY RETURN IS TO THE USER.
# GOXDSPR = GOMARKR
# CAF VXXNYY
# TC BANKCALL
# CADR GOMARKR # OTHER EXTENDED VERBS USE CADR GOXDSPR
# ... ... # IMMEDIATE RETURN OF GOMARKR
# GOMARKF DISPLAYS A FLASHING MARK VERB NOUN WITH NO IMMEDIATE RETURN TO THE USER. 3 RETURNS ARE POSSIBLE FORM
# THE ASTRONAUT (SEE NO. 7 ABOVE).
# GOXDSPF = GOMARKF
# CAF VXXNYY # VXXNYY WILL BE A FLASHING MARK VERB NOUN
# TC BANKCALL
# CADR GOMARKFR # OTHER EXTENDED VERBS USE CADR GOXDSPFR
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# GOMARKFR IS THE SAME AS GOMARKF ONLY AN IMMEDIATE RETURN IS MADE TO THE USER CALL CADR +4.
# GOXDSPFR = GOMARKFR
# CAF VXXNYY # FLASHING MARK VERB NOUN
# TCF BANKCALL
# CADR GOMARKFR # OTHER EXTENDED VERBS USE CADR GOXDSPFR
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# ... ... # IMMEDIATE RETURN TO THE USER
# GOMARK1 IS USED FOR A PLEASE PERFORM ON A MARK REQUEST WITH ONLY 1 ASTRONAUT RETURN TO THE USER. NO IMMEDIATE
# RETURN IS MADE. THE DESIRED MARK PLEASE PERFORM VERB AND DESIRED NOUN IS ENTERED IN A. GOMARK1 DISPLAYS R1, R2, R
# MEANS OF A V05NYY FOLLOWED BY A FLASHING V5XNYY FOR A PLEASE PERFORM. THE ASTRONAUT WILL RESPOND WITH A MARK
# OR MARK REJECT OR AN ENTER. THE ENTER IS THE ONLY ASTRONAUT RESPONSE THAT WILL COME BACK TO THE USER.
# CAF V5XNYY # X=1,2,3,4 YY= NOUN
# TC BANKCALL
# Page 1459
# CADR GOMARK1
# ... ... # ENTER RETURN
# *** IF BLANKING DESIRED ON NON R ROUTINES, NOTIFY DISPLAYER.
#
# GOMARK1R IS THE SAME AS A GOMARK1 ONLY AN IMMEDIATE RETURN IS MADE TO THE USERS CALL CADR +2.
# CAF V5XNYY # X=1,2,3,4 YY = NOUN
# TC BANKCALL
# CADR GOMARK1R
# ... ... # ASTRONAUT ENTER RETURN
# ... ... # IMMEDIATE RETURN TO USER
# GOMARK2 IS THE SAME AS GOMARK1 ONLY 3 RETURNS ARE MADE TO THE USER FROM THE ASTRONAUT.
# CAF V5XNYY # X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK2
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOMARK2R IS THE SAME AS GOMARK1R ONLY 3 ASTRONAUT RETURNS ARE MADE TO THE USER.
# CAF V5XNYY # X=0,1,2,3,4 YY=NOUN
# TCF BANKCALL
# CADR GOMARK2R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN TO THE USER
# GOMARK3 IS USED FOR A PLEASE PERFORM ON A MARK REQUEST WITH A 3 COMP. DEC DISPLAY. THE DESIRED MARK PLEASE
# PERFORM VERB AND NOUN ARE ENTERED IN A. GOMARK3 DISPLAYS R1, R2, R3 BY MEANS OF A V06NYY FOLLOWED BY A FLASHING
# V5XNYY FOR A PLEASE PERFORM. GOMARK3 HAS 3 ASTRONAUT RETURNS TO THE USER WITH NO IMMEDIATE RETURN.
# CAF V5XNYY # X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK3
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOMARK4 IS THE SAME AS GOMARK3 ONLY R2 AND R3 ARE BLANKED AND R1 IS DISPLAYED IN OCTAL.
# CAF V5XNYY # X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK4
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# Page 1460
# ... ... # ENTER RETURN
# EXDSPRET IS USED TO DISPLAY A VERB NOUN ARRIVING IN A WITH A RETURN MADE TO THE USER AFTER THE DISPLAY HAS BEEN
# SENT OUT.
# CAF VXXNYY
# TC BANKCALL
# CADR EXDSPRET
# ... ... # RETURN TO USER
# KLEENEX CLEANS OUT ALL MARK DISPLAYS (ACTIVE AND INACTIVE). A RETURN IS MADE TO THE USER AFTER THE MARK DISPLAYS
# HAVE BEEN CLEANED OUT.
# TC BANKCALL
# CADR KLEENEX
# ... ... # RETURN TO USER
# MARKBRAN IS A SPECIAL PURPOSE ROUTINE USED FOR SAVING JOB VAC AREAS (SEE DESCRIPTION OF MARKBRAN BELOW).
# TC BANKCALL
# CADR MARKBRAN
# ... ... # BAD RETURN IF MARK DISPLAY NOT ACTIVE
# # (GOOD RETURN TO IMMEDIATE RETURN LOC OF
# # LAST FLASHING MARK R ROUTINE)
# PINBRNCH REESTABLISHES THE LAST ACTIVE FLASHING DISPLAY. IF THERE IS NO ACTIVE FLASHING DISPLAY, THE DSKY IS
# BLANKED AND CONTROL IS SENT TO ENDOFJOB.
# TC POSTJUMP
# CADR PINBRNCH
# PRIODSP IS USED AS A PRIORITY DISPLAY. IT WILL DISPLAY A GOFLASH TYPE DISPLAY WITH THREE POSSIBLE RETURNS FROM
# THE ASTRONAUT(SEE NO.7 ABOVE).
#
# THE MAIN PURPOSE OF PRIODSP IS TO REPLACE THE PRESENT DISPLAY WITH A DISPLAY OF HIGHER PRIORITY AND TO
# PROVIDE A MEANS FOR RESTORING THE OLD DISPLAY WHEN THE PRIORITY DISPLAY
# IS RESPONDED TO BY THE ASTRONAUT.
#
# THE FORMER DISPLAY IS RESTORED BY AN AUTOMATIC BRANCH TO WAKE UP THE DISPLAY THAT WAS INTERRUPTED BY THE
# PRIO DISPLAY.
# CAF VXXNYY # VXXNYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR PRIODSP
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# Page 1461
# ... ... # ENTER OR RECYCLE RETURN
# PRIODSPR IS THE SAME AS PRIODSP ONLY AN IMMEDIATE RETURN IS MADE TO THE USERS CALL CADR +4.
# CAF VXXNYY # VXXNYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR PRIODSPR
# ... ... # TERMINATE ACTION
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# ... ... # IMMEDIATE RETURN
# PRIOLARM DOES A V05N09 PRIODSPR.
# CLEANDSP CLEANS OUT ALL NORMAL DISPLAYS (ACTIVE AND INACTIVE). A RETURN IS MADE TO THE USER AFTER NORMAL
# DISPLAYS ARE CLEANED OUT.
# TC BANKCALL
# CADR CLEANDSP
# ... ... # RETURN TO USER
# Page 1462
#
# GENERAL INFORMATION
# -------------------
#
# ALARM OR ABORT EXIT MODES--
# PRIOBORT TC ABORT
# OCT 1502
#
# PRIOBORT IS BRANCED TO WHEN (1) A NORMAL DISPLAY IS REQUESTED AND ANOTHER NORMAL DISPLAY IS ALREADY ACTIVE
# (REFLASH AND REGODSP ARE EXCEPTIONS) OR (2) A PRIORITY DISPLAY IS REQUESTED WHEN ANOTHER PRIORITY DISPLAY IS
# ALREADY ACTIVE (A PRIORITY WITH LINUS BIT14 IS AN EXCEPTION).
#
# ERASABLE INITIALIZATION REQUIRED--
# ACCOMPLISHED BY FRESH START- 1. FLAGWRD4 (USED EXCLUSIVELY BY DISPLAY INTERFACE ROUTINES)
# 2. NVSAVE = NORMAL VERB AND NOUN REGISTER.
# 3. EBANKTEM = NORMAL INACTIVE FLAGWORD (ALSO CONTAINS NORMALS EBANK).
# 5. R1SAVE = MARKBRAN CONTROL WORD
# 4. RESTREG = PRIORITY 30 AND SUPERBANK 3.
#
# OUTPUT--
# NVWORD = PRIO VERB AND NOUN
# NVWORD +1(MARKNV) = MARK VERB AND NOUN
# NVWORD +2(NVSAVE) = NORMAL VERB AND NOUN
# DSPFLG(EBANKSAV) = PRIO FLAGWORD (INCLUDING EBANK)
# DSPFLG +1 (MARKEBAN) = MARK FLAGWORD (INCLUDING EBANK)
# DSPFLG +2 (EBANKTEM) = NORMAL FLAGWORD (INCLUDING EBANK)
# CADRFLSH = PRIO USERS CALL CADR +1 LOCATION
# CADRFLSH +1 (MARKFLSH) = MARK USERS CALL CADR +1 LOCATION
# CADRFLSH +2 (TEMPFLSH) = NORMAL USERS CALL CADR +1 LOCATION
# PRIOTI
gitextract_sw4va6c1/ ├── .editorconfig ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── Discussion.md │ │ ├── Humour.md │ │ ├── Proof_Comanche.md │ │ └── Proof_Luminary.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── labeler.yml │ └── workflows/ │ ├── label.yml │ └── markdownlint.yml ├── .gitignore ├── .markdownlint.yml ├── CONTRIBUTING.md ├── Comanche055/ │ ├── AGC_BLOCK_TWO_SELF-CHECK.agc │ ├── ALARM_AND_ABORT.agc │ ├── ANGLFIND.agc │ ├── ASSEMBLY_AND_OPERATION_INFORMATION.agc │ ├── AUTOMATIC_MANEUVERS.agc │ ├── CM_BODY_ATTITUDE.agc │ ├── CM_ENTRY_DIGITAL_AUTOPILOT.agc │ ├── CONIC_SUBROUTINES.agc │ ├── CONTRACT_AND_APPROVALS.agc │ ├── CSM_GEOMETRY.agc │ ├── DISPLAY_INTERFACE_ROUTINES.agc │ ├── DOWN-TELEMETRY_PROGRAM.agc │ ├── DOWNLINK_LISTS.agc │ ├── ENTRY_LEXICON.agc │ ├── ERASABLE_ASSIGNMENTS.agc │ ├── EXECUTIVE.agc │ ├── EXTENDED_VERBS.agc │ ├── FIXED_FIXED_CONSTANT_POOL.agc │ ├── FRESH_START_AND_RESTART.agc │ ├── GIMBAL_LOCK_AVOIDANCE.agc │ ├── GROUND_TRACKING_DETERMINATION_PROGRAM.agc │ ├── IMU_CALIBRATION_AND_ALIGNMENT.agc │ ├── IMU_COMPENSATION_PACKAGE.agc │ ├── IMU_MODE_SWITCHING_ROUTINES.agc │ ├── INFLIGHT_ALIGNMENT_ROUTINES.agc │ ├── INTEGRATION_INITIALIZATION.agc │ ├── INTER-BANK_COMMUNICATION.agc │ ├── INTERPRETER.agc │ ├── INTERPRETIVE_CONSTANTS.agc │ ├── INTERRUPT_LEAD_INS.agc │ ├── JET_SELECTION_LOGIC.agc │ ├── KALCMANU_STEERING.agc │ ├── KEYRUPT_UPRUPT.agc │ ├── LATITUDE_LONGITUDE_SUBROUTINES.agc │ ├── LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc │ ├── LUNAR_LANDMARK_SELECTION_FOR_CM.agc │ ├── MAIN.agc │ ├── MEASUREMENT_INCORPORATION.agc │ ├── MYSUBS.agc │ ├── ORBITAL_INTEGRATION.agc │ ├── P11.agc │ ├── P20-P25.agc │ ├── P30-P37.agc │ ├── P32-P33_P72-P73.agc │ ├── P34-35_P74-75.agc │ ├── P37_P70.agc │ ├── P40-P47.agc │ ├── P51-P53.agc │ ├── P61-P67.agc │ ├── P76.agc │ ├── PHASE_TABLE_MAINTENANCE.agc │ ├── PINBALL_GAME_BUTTONS_AND_LIGHTS.agc │ ├── PINBALL_NOUN_TABLES.agc │ ├── PLANETARY_INERTIAL_ORIENTATION.agc │ ├── POWERED_FLIGHT_SUBROUTINES.agc │ ├── R30.agc │ ├── R31.agc │ ├── R60_62.agc │ ├── RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc │ ├── RCS-CSM_DIGITAL_AUTOPILOT.agc │ ├── README.md │ ├── REENTRY_CONTROL.agc │ ├── RESTARTS_ROUTINE.agc │ ├── RESTART_TABLES.agc │ ├── RT8_OP_CODES.agc │ ├── S-BAND_ANTENNA_FOR_CM.agc │ ├── SERVICER207.agc │ ├── SERVICE_ROUTINES.agc │ ├── SINGLE_PRECISION_SUBROUTINES.agc │ ├── STABLE_ORBIT.agc │ ├── STAR_TABLES.agc │ ├── SXTMARK.agc │ ├── SYSTEM_TEST_STANDARD_LEAD_INS.agc │ ├── T4RUPT_PROGRAM.agc │ ├── TAGS_FOR_RELATIVE_SETLOC.agc │ ├── TIME_OF_FREE_FALL.agc │ ├── TPI_SEARCH.agc │ ├── TVCDAPS.agc │ ├── TVCEXECUTIVE.agc │ ├── TVCINITIALIZE.agc │ ├── TVCMASSPROP.agc │ ├── TVCRESTARTS.agc │ ├── TVCROLLDAP.agc │ ├── TVCSTROKETEST.agc │ ├── UPDATE_PROGRAM.agc │ └── WAITLIST.agc ├── LICENSE.md ├── Luminary099/ │ ├── AGC_BLOCK_TWO_SELF_CHECK.agc │ ├── AGS_INITIALIZATION.agc │ ├── ALARM_AND_ABORT.agc │ ├── AOSTASK_AND_AOSJOB.agc │ ├── AOTMARK.agc │ ├── ASCENT_GUIDANCE.agc │ ├── ASSEMBLY_AND_OPERATION_INFORMATION.agc │ ├── ATTITUDE_MANEUVER_ROUTINE.agc │ ├── BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc │ ├── CONIC_SUBROUTINES.agc │ ├── CONTROLLED_CONSTANTS.agc │ ├── DAPIDLER_PROGRAM.agc │ ├── DAP_INTERFACE_SUBROUTINES.agc │ ├── DISPLAY_INTERFACE_ROUTINES.agc │ ├── DOWNLINK_LISTS.agc │ ├── DOWN_TELEMETRY_PROGRAM.agc │ ├── ERASABLE_ASSIGNMENTS.agc │ ├── EXECUTIVE.agc │ ├── EXTENDED_VERBS.agc │ ├── FINDCDUW--GUIDAP_INTERFACE.agc │ ├── FIXED_FIXED_CONSTANT_POOL.agc │ ├── FLAGWORD_ASSIGNMENTS.agc │ ├── FRESH_START_AND_RESTART.agc │ ├── GENERAL_LAMBERT_AIMPOINT_GUIDANCE.agc │ ├── GIMBAL_LOCK_AVOIDANCE.agc │ ├── GROUND_TRACKING_DETERMINATION_PROGRAM.agc │ ├── IMU_COMPENSATION_PACKAGE.agc │ ├── IMU_MODE_SWITCHING_ROUTINES.agc │ ├── IMU_PERFORMANCE_TESTS_4.agc │ ├── IMU_PERFORMANCE_TEST_2.agc │ ├── INFLIGHT_ALIGNMENT_ROUTINES.agc │ ├── INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.agc │ ├── INTEGRATION_INITIALIZATION.agc │ ├── INTER-BANK_COMMUNICATION.agc │ ├── INTERPRETER.agc │ ├── INTERPRETIVE_CONSTANT.agc │ ├── INTERRUPT_LEAD_INS.agc │ ├── KALCMANU_STEERING.agc │ ├── KALMAN_FILTER.agc │ ├── KEYRUPT_UPRUPT.agc │ ├── LANDING_ANALOG_DISPLAYS.agc │ ├── LATITUDE_LONGITUDE_SUBROUTINES.agc │ ├── LEM_GEOMETRY.agc │ ├── LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc │ ├── LUNAR_LANDING_GUIDANCE_EQUATIONS.agc │ ├── MAIN.agc │ ├── MEASUREMENT_INCORPORATION.agc │ ├── ORBITAL_INTEGRATION.agc │ ├── P-AXIS_RCS_AUTOPILOT.agc │ ├── P12.agc │ ├── P20-P25.agc │ ├── P30_P37.agc │ ├── P32-P35_P72-P75.agc │ ├── P34-35_P74-75.agc │ ├── P40-P47.agc │ ├── P51-P53.agc │ ├── P70-P71.agc │ ├── P76.agc │ ├── PHASE_TABLE_MAINTENANCE.agc │ ├── PINBALL_GAME_BUTTONS_AND_LIGHTS.agc │ ├── PINBALL_NOUN_TABLES.agc │ ├── PLANETARY_INERTIAL_ORIENTATION.agc │ ├── POWERED_FLIGHT_SUBROUTINES.agc │ ├── Q_R-AXIS_RCS_AUTOPILOT.agc │ ├── R30.agc │ ├── R31.agc │ ├── R60_62.agc │ ├── R63.agc │ ├── RADAR_LEADIN_ROUTINES.agc │ ├── RCS_FAILURE_MONITOR.agc │ ├── README.md │ ├── RESTARTS_ROUTINE.agc │ ├── RESTART_TABLES.agc │ ├── RTB_OP_CODES.agc │ ├── S-BAND_ANTENNA_FOR_LM.agc │ ├── SERVICER.agc │ ├── SERVICE_ROUTINES.agc │ ├── SINGLE_PRECISION_SUBROUTINES.agc │ ├── SPS_BACK-UP_RCS_CONTROL.agc │ ├── STABLE_ORBIT.agc │ ├── SYSTEM_TEST_STANDARD_LEAD_INS.agc │ ├── T4RUPT_PROGRAM.agc │ ├── T6-RUPT_PROGRAMS.agc │ ├── TAGS_FOR_RELATIVE_SETLOC.agc │ ├── THE_LUNAR_LANDING.agc │ ├── THROTTLE_CONTROL_ROUTINES.agc │ ├── TIME_OF_FREE_FALL.agc │ ├── TJET_LAW.agc │ ├── TRIM_GIMBAL_CONTROL_SYSTEM.agc │ ├── UPDATE_PROGRAM.agc │ └── WAITLIST.agc ├── README.md ├── Translations/ │ ├── CONTRIBUTING.ar.md │ ├── CONTRIBUTING.az.md │ ├── CONTRIBUTING.ca.md │ ├── CONTRIBUTING.cz.md │ ├── CONTRIBUTING.da.md │ ├── CONTRIBUTING.de.md │ ├── CONTRIBUTING.es.md │ ├── CONTRIBUTING.fr.md │ ├── CONTRIBUTING.gl.md │ ├── CONTRIBUTING.gr.md │ ├── CONTRIBUTING.hi_in.md │ ├── CONTRIBUTING.id.md │ ├── CONTRIBUTING.it.md │ ├── CONTRIBUTING.ja.md │ ├── CONTRIBUTING.jv.md │ ├── CONTRIBUTING.ko_kr.md │ ├── CONTRIBUTING.ku.md │ ├── CONTRIBUTING.lt.md │ ├── CONTRIBUTING.mn.md │ ├── CONTRIBUTING.nl.md │ ├── CONTRIBUTING.no.md │ ├── CONTRIBUTING.pl.md │ ├── CONTRIBUTING.pt_br.md │ ├── CONTRIBUTING.sv.md │ ├── CONTRIBUTING.tr.md │ ├── CONTRIBUTING.uk.md │ ├── CONTRIBUTING.vi.md │ ├── CONTRIBUTING.zh_cn.md │ ├── CONTRIBUTING.zh_tw.md │ ├── README.ar.md │ ├── README.as_in.md │ ├── README.az.md │ ├── README.bd_bn.md │ ├── README.be.md │ ├── README.ca.md │ ├── README.cz.md │ ├── README.da.md │ ├── README.de.md │ ├── README.es.md │ ├── README.fa.md │ ├── README.fi.md │ ├── README.fr.md │ ├── README.gl.md │ ├── README.gr.md │ ├── README.hi_in.md │ ├── README.id.md │ ├── README.it.md │ ├── README.ja.md │ ├── README.jv.md │ ├── README.ko_kr.md │ ├── README.ku.md │ ├── README.lt.md │ ├── README.ml.md │ ├── README.mm.md │ ├── README.mn.md │ ├── README.ne.md │ ├── README.nl.md │ ├── README.no.md │ ├── README.pl.md │ ├── README.pt_br.md │ ├── README.ro.md │ ├── README.ru.md │ ├── README.si.md │ ├── README.sv.md │ ├── README.tr.md │ ├── README.uk.md │ ├── README.vi.md │ ├── README.zh_cn.md │ └── README.zh_tw.md ├── bun.lockb └── package.json
Condensed preview — 262 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,086K chars).
[
{
"path": ".editorconfig",
"chars": 197,
"preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.agc]\ni"
},
{
"path": ".github/ISSUE_TEMPLATE/Discussion.md",
"chars": 134,
"preview": "---\nname: Discussion & Questions\nabout: Discussion about the Apollo 11 source code is highly welcomed.\nlabels: \"Type: Di"
},
{
"path": ".github/ISSUE_TEMPLATE/Humour.md",
"chars": 140,
"preview": "---\nname: Humour / Jokes\nabout: Humourous issues are allowed, but please follow GitHub's Acceptable Use policies\nlabels:"
},
{
"path": ".github/ISSUE_TEMPLATE/Proof_Comanche.md",
"chars": 391,
"preview": "---\nname: Proof Comanche055\nabout: Template for Comanche055 Proof issues \ntitle: \"Proof \"\n---\nProof read transcribed cod"
},
{
"path": ".github/ISSUE_TEMPLATE/Proof_Luminary.md",
"chars": 391,
"preview": "---\nname: Proof Luminary099\nabout: Template for Luminary099 Proof issues \ntitle: \"Proof \"\n---\nProof read transcribed cod"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 314,
"preview": "<!-- Proofing PRs:\n1. Title should follow \"Proof [FILE NAME] #[PROOF ISSUE]\", e.g:\n \"Proof ALARM_AND_ABORT #564\"\n2. M"
},
{
"path": ".github/labeler.yml",
"chars": 87,
"preview": "\"Type: Proof\":\n - \"**/*.agc\"\n\"Type: Meta\":\n - \"**/MAIN.agc\"\n - \"**/*.md\"\n - \"*.md\"\n"
},
{
"path": ".github/workflows/label.yml",
"chars": 343,
"preview": "name: Pull Request Labeler\non:\n schedule:\n - cron: '0 */3 * * *'\njobs:\n labeler:\n runs-on: ubuntu-latest\n ste"
},
{
"path": ".github/workflows/markdownlint.yml",
"chars": 380,
"preview": "name: markdownlint\non: [push, pull_request]\njobs:\n delivery:\n runs-on: ubuntu-latest\n steps:\n - name: Check ou"
},
{
"path": ".gitignore",
"chars": 23,
"preview": "yaYUL.exe\nnode_modules\n"
},
{
"path": ".markdownlint.yml",
"chars": 144,
"preview": "default: true\nMD007: false\nMD010: false\nMD013: false\nMD026: false\nMD033: false\nMD034: false\nMD036: false\nMD041: false\nMD"
},
{
"path": "CONTRIBUTING.md",
"chars": 6271,
"preview": "# Contributing\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Basa Jawa][JV],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n"
},
{
"path": "Comanche055/AGC_BLOCK_TWO_SELF-CHECK.agc",
"chars": 13911,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tAGC_BLOCK_TWO_SELF-CHECK.agc\n# Purpose:\tPart of the source code for Colossus 2A,"
},
{
"path": "Comanche055/ALARM_AND_ABORT.agc",
"chars": 4448,
"preview": "# Copyright: Public domain.\n# Filename: ALARM_AND_ABORT.agc\n# Purpose: Part of the source code for Comanche,"
},
{
"path": "Comanche055/ANGLFIND.agc",
"chars": 11682,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tANGLFIND.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 05"
},
{
"path": "Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc",
"chars": 31234,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tASSEMBLY_AND_OPERATION_INFORMATION.agc\n# Purpose:\tPart of the source code for Co"
},
{
"path": "Comanche055/AUTOMATIC_MANEUVERS.agc",
"chars": 10787,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tAUTOMATIC_MANEUVERS.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA "
},
{
"path": "Comanche055/CM_BODY_ATTITUDE.agc",
"chars": 6926,
"preview": "# Copyright: Public domain.\n# Filename: CM_BODY_ATTITUDE.agc\n# Purpose: Part of the source code for Comanche"
},
{
"path": "Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc",
"chars": 31099,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tCM_ENTRY_DIGITAL_AUTOPILOT.agc\n# Purpose:\tPart of the source code for Colossus 2"
},
{
"path": "Comanche055/CONIC_SUBROUTINES.agc",
"chars": 47233,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tCONIC_SUBROUTINES.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Co"
},
{
"path": "Comanche055/CONTRACT_AND_APPROVALS.agc",
"chars": 3432,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tCONTRACT_AND_APPROVALS.agc\n# Purpose:\tPart of the source code for Colossus 2A, A"
},
{
"path": "Comanche055/CSM_GEOMETRY.agc",
"chars": 9913,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tCSM_GEOMETRY.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanch"
},
{
"path": "Comanche055/DISPLAY_INTERFACE_ROUTINES.agc",
"chars": 40070,
"preview": "# Copyright: Public domain.\n# Filename: DISPLAY_INTERFACE_ROUTINES.agc\n# Purpose: Part of the source code fo"
},
{
"path": "Comanche055/DOWN-TELEMETRY_PROGRAM.agc",
"chars": 17718,
"preview": "# Copyright: Public domain.\n# Filename: DOWN-TELEMETRY_PROGRAM.agc\n# Purpose: Part of the source code for Co"
},
{
"path": "Comanche055/DOWNLINK_LISTS.agc",
"chars": 13544,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tDOWNLINK_LISTS.agc\n# Purpose:\tPart of the source code for Comanche, build 055. I"
},
{
"path": "Comanche055/ENTRY_LEXICON.agc",
"chars": 11121,
"preview": "# Copyright: Public domain.\n# Filename: ENTRY_LEXICON.agc\n# Purpose: Part of the source code for Comanche, b"
},
{
"path": "Comanche055/ERASABLE_ASSIGNMENTS.agc",
"chars": 102170,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tERASABLE_ASSIGNMENTS.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA"
},
{
"path": "Comanche055/EXECUTIVE.agc",
"chars": 11541,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tEXECUTIVE.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 0"
},
{
"path": "Comanche055/EXTENDED_VERBS.agc",
"chars": 31075,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tEXTENDED_VERBS.agc\n# Purpose:\tPart of the source code for Comanche, build 055. I"
},
{
"path": "Comanche055/FIXED_FIXED_CONSTANT_POOL.agc",
"chars": 6608,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tFIXED_FIXED_CONSTANT_POOL.agc\n# Purpose:\tPart of the source code for Colossus 2A"
},
{
"path": "Comanche055/FRESH_START_AND_RESTART.agc",
"chars": 32186,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tFRESH_START_AND_RESTART.agc\n# Purpose:\tPart of the source code for Comanche, bui"
},
{
"path": "Comanche055/GIMBAL_LOCK_AVOIDANCE.agc",
"chars": 2157,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tGIMBAL_LOCK_AVOIDANCE.agc\n# Purpose:\tPart of the source code for Comanche, build"
},
{
"path": "Comanche055/GROUND_TRACKING_DETERMINATION_PROGRAM.agc",
"chars": 4642,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tGROUND_TRACKING_DETERMINATION_PROGRAM.agc\n# Purpose:\tPart of the source code for"
},
{
"path": "Comanche055/IMU_CALIBRATION_AND_ALIGNMENT.agc",
"chars": 23871,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tIMU_CALIBRATION_AND_ALIGNMENT.agc\n# Purpose: Part of the source code for Co"
},
{
"path": "Comanche055/IMU_COMPENSATION_PACKAGE.agc",
"chars": 9277,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tIMU_COMPENSATION_PACKAGE.agc\n# Purpose:\tPart of the source code for Colossus 2A,"
},
{
"path": "Comanche055/IMU_MODE_SWITCHING_ROUTINES.agc",
"chars": 23181,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tIMU_MODE_SWITCHING_ROUTINES.agc\n# Purpose:\tPart of the source code for Colossus "
},
{
"path": "Comanche055/INFLIGHT_ALIGNMENT_ROUTINES.agc",
"chars": 7027,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINFLIGHT_ALIGNMENT_ROUTINES.agc\n# Purpose:\tPart of the source code for Colossus "
},
{
"path": "Comanche055/INTEGRATION_INITIALIZATION.agc",
"chars": 26531,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTEGRATION_INITIALIZATION.agc\n# Purpose:\tPart of the source code for Colossus 2"
},
{
"path": "Comanche055/INTER-BANK_COMMUNICATION.agc",
"chars": 5747,
"preview": "# Copyright: Public domain.\n# Filename: INTER-BANK_COMMUNICATION.agc\n# Purpose: Part of the source code for "
},
{
"path": "Comanche055/INTERPRETER.agc",
"chars": 78524,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTERPRETER.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche"
},
{
"path": "Comanche055/INTERPRETIVE_CONSTANTS.agc",
"chars": 1920,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTERPRETIVE_CONSTANTS.agc\n# Purpose:\tPart of the source code for Colossus 2A, A"
},
{
"path": "Comanche055/INTERRUPT_LEAD_INS.agc",
"chars": 2247,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTERRUPT_LEAD_INS.agc\n# Purpose:\tPart of the source code for Comanche, build 05"
},
{
"path": "Comanche055/JET_SELECTION_LOGIC.agc",
"chars": 21978,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tJET_SELECTION_LOGIC.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA "
},
{
"path": "Comanche055/KALCMANU_STEERING.agc",
"chars": 5059,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tKALCMANU_STEERING.agc\n# Purpose:\tPart of the source code for Comanche, build 055"
},
{
"path": "Comanche055/KEYRUPT_UPRUPT.agc",
"chars": 3853,
"preview": "# Copyright: Public domain.\n# Filename: KEYRUPT_UPRUPT.agc\n# Purpose: Part of the source code for Comanche, "
},
{
"path": "Comanche055/LATITUDE_LONGITUDE_SUBROUTINES.agc",
"chars": 7119,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tLATITUDE_LONGITUDE_SUBROUTINES.agc\n# Purpose:\tPart of the source code for Coloss"
},
{
"path": "Comanche055/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc",
"chars": 5394,
"preview": "# Copyright: Public domain.\n# Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc\n# Purpose: Part of the s"
},
{
"path": "Comanche055/LUNAR_LANDMARK_SELECTION_FOR_CM.agc",
"chars": 1356,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tLUNAR_LANDMARK_SELECTION_FOR_CM.agc\n# Purpose:\tPart of the source code for Colos"
},
{
"path": "Comanche055/MAIN.agc",
"chars": 3545,
"preview": "$CONTRACT_AND_APPROVALS.agc\t\t\t# p. 1\n$ASSEMBLY_AND_OPERATION_INFORMATION.agc\t\t# pp. 2-26\n$TAGS_FOR_RELATIVE_SETLOC.agc\t\t"
},
{
"path": "Comanche055/MEASUREMENT_INCORPORATION.agc",
"chars": 8790,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tMEASUREMENT_INCORPORATION.agc\n# Purpose:\tPart of the source code for Colossus 2A"
},
{
"path": "Comanche055/MYSUBS.agc",
"chars": 2473,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tMYSUBS.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 055."
},
{
"path": "Comanche055/ORBITAL_INTEGRATION.agc",
"chars": 14885,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tORBITAL_INTEGRATION.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA "
},
{
"path": "Comanche055/P11.agc",
"chars": 21763,
"preview": "# Copyright: Public domain.\n# Filename: P11.agc\n# Purpose: Part of the source code for Colossus 2A, AKA Coma"
},
{
"path": "Comanche055/P20-P25.agc",
"chars": 71348,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP20-P25.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 055"
},
{
"path": "Comanche055/P30-P37.agc",
"chars": 12085,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP30-P37.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 055"
},
{
"path": "Comanche055/P32-P33_P72-P73.agc",
"chars": 26843,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP32-P33_P72-P73.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Coma"
},
{
"path": "Comanche055/P34-35_P74-75.agc",
"chars": 35303,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP34-35_P74-75.agc\n# Purpose: Part of the source code for Comanche, build 05"
},
{
"path": "Comanche055/P37_P70.agc",
"chars": 37716,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP37_P70.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 055"
},
{
"path": "Comanche055/P40-P47.agc",
"chars": 50844,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP40-P47.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 055"
},
{
"path": "Comanche055/P51-P53.agc",
"chars": 40894,
"preview": "# Copyright: Public domain.\n# Filename: P51-P53.agc\n# Purpose: Part of the source code for Comanche, build 0"
},
{
"path": "Comanche055/P61-P67.agc",
"chars": 34115,
"preview": "# Copyright: Public domain.\n# Filename: P61-P67.agc\n# Purpose: Part of the source code for Comanche, build 0"
},
{
"path": "Comanche055/P76.agc",
"chars": 4804,
"preview": "# Copyright: Public domain.\n# Filename: P76.agc\n# Purpose: Part of the source code for Colossus 2A, AKA Coma"
},
{
"path": "Comanche055/PHASE_TABLE_MAINTENANCE.agc",
"chars": 12224,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPHASE_TABLE_MAINTENANCE.agc\n# Purpose:\tPart of the source code for Colossus 2A, "
},
{
"path": "Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc",
"chars": 100080,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPINBALL_GAME_BUTTONS_AND_LIGHTS.agc\n# Purpose:\tPart of the source code for Colos"
},
{
"path": "Comanche055/PINBALL_NOUN_TABLES.agc",
"chars": 26827,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPINBALL_NOUN_TABLES.agc\n# Purpose:\tPart of the source code for Comanche, build 0"
},
{
"path": "Comanche055/PLANETARY_INERTIAL_ORIENTATION.agc",
"chars": 9496,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPLANETARY_INERTIAL_ORIENTATION.agc\n# Purpose:\tPart of the source code for Coloss"
},
{
"path": "Comanche055/POWERED_FLIGHT_SUBROUTINES.agc",
"chars": 10390,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPOWERED_FLIGHT_SUBROUTINES.agc\n# Purpose:\tPart of the source code for Colossus 2"
},
{
"path": "Comanche055/R30.agc",
"chars": 15336,
"preview": "# Copyright: Public domain.\n# Filename: R30.agc\n# Purpose: Part of the source code for Colossus 2A, AKA Coma"
},
{
"path": "Comanche055/R31.agc",
"chars": 5840,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tR31.agc\n# Purpose: Part of the source code for Comanche, build 055. It\n# "
},
{
"path": "Comanche055/R60_62.agc",
"chars": 10521,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tR60_62.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 055."
},
{
"path": "Comanche055/RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc",
"chars": 2352,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tRCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc\n# Purpose:\tPart of the source code for Coloss"
},
{
"path": "Comanche055/RCS-CSM_DIGITAL_AUTOPILOT.agc",
"chars": 24477,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tRCS-CSM_DIGITAL_AUTOPILOT.agc\n# Purpose:\tPart of the source code for Colossus 2A"
},
{
"path": "Comanche055/README.md",
"chars": 17160,
"preview": "# Comanche055\n\nThe images (with suitable reduction in storage size and consequent reduction in image quality as well) ar"
},
{
"path": "Comanche055/REENTRY_CONTROL.agc",
"chars": 31542,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tREENTRY_CONTROL.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Coma"
},
{
"path": "Comanche055/RESTARTS_ROUTINE.agc",
"chars": 7809,
"preview": "# Copyright: Public domain.\n# Filename: RESTARTS_ROUTINE.agc\n# Purpose: Part of the source code for Comanche"
},
{
"path": "Comanche055/RESTART_TABLES.agc",
"chars": 11852,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tRESTART_TABLES.agc\n# Purpose:\tPart of the source code for Comanche, build 055. I"
},
{
"path": "Comanche055/RT8_OP_CODES.agc",
"chars": 7768,
"preview": "# Copyright: Public domain.\n# Filename: RT8_OP_CODES.agc\n# Purpose: Part of the source code for Comanche, bu"
},
{
"path": "Comanche055/S-BAND_ANTENNA_FOR_CM.agc",
"chars": 3698,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tS-BAND_ANTENNA_FOR_CM.agc\n# Purpose:\tPart of the source code for Colossus 2A, AK"
},
{
"path": "Comanche055/SERVICER207.agc",
"chars": 19665,
"preview": "# Copyright: Public domain.\n# Filename: SERVICER207.agc\n# Purpose: Part of the source code for Comanche, bui"
},
{
"path": "Comanche055/SERVICE_ROUTINES.agc",
"chars": 6410,
"preview": "# Copyright: Public domain.\n# Filename: SERVICE_ROUTINES.agc\n# Purpose: Part of the source code for Comanche"
},
{
"path": "Comanche055/SINGLE_PRECISION_SUBROUTINES.agc",
"chars": 1813,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSINGLE_PRECISION_SUBROUTINES.agc\n# Purpose:\tPart of the source code for Colossus"
},
{
"path": "Comanche055/STABLE_ORBIT.agc",
"chars": 9172,
"preview": "# Copyright: Public domain.\n# Filename: STABLE_ORBIT.agc\n# Purpose: Part of the source code for Colossus 2A,"
},
{
"path": "Comanche055/STAR_TABLES.agc",
"chars": 5473,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSTAR_TABLES.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche"
},
{
"path": "Comanche055/SXTMARK.agc",
"chars": 15461,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSXTMARK.agc\n# Purpose:\tPart of the source code for Comanche, build 055. It\n#\t\tis"
},
{
"path": "Comanche055/SYSTEM_TEST_STANDARD_LEAD_INS.agc",
"chars": 3827,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSYSTEM_TEST_STANDARD_LEAD_INS.agc\n# Purpose:\tPart of the source code for Comanch"
},
{
"path": "Comanche055/T4RUPT_PROGRAM.agc",
"chars": 38224,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tT4RUPT_PROGRAM.agc\n# Purpose:\tPart of the source code for Comanche, build 055.\n#"
},
{
"path": "Comanche055/TAGS_FOR_RELATIVE_SETLOC.agc",
"chars": 7368,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTAGS_FOR_RELATIVE_SETLOC.agc\n# Purpose:\tPart of the source code for Colossus 2A,"
},
{
"path": "Comanche055/TIME_OF_FREE_FALL.agc",
"chars": 23513,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTIME_OF_FREE_FALL.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Co"
},
{
"path": "Comanche055/TPI_SEARCH.agc",
"chars": 10653,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTPI_SEARCH.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche "
},
{
"path": "Comanche055/TVCDAPS.agc",
"chars": 16414,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTVCDAPS.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 055"
},
{
"path": "Comanche055/TVCEXECUTIVE.agc",
"chars": 7926,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTVCEXECUTIVE.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanch"
},
{
"path": "Comanche055/TVCINITIALIZE.agc",
"chars": 10796,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTVCINITIALIZE.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanc"
},
{
"path": "Comanche055/TVCMASSPROP.agc",
"chars": 6897,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTVCMASSPROP.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche"
},
{
"path": "Comanche055/TVCRESTARTS.agc",
"chars": 9821,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTVCRESTARTS.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche"
},
{
"path": "Comanche055/TVCROLLDAP.agc",
"chars": 18686,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTVCROLLDAP.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche "
},
{
"path": "Comanche055/TVCSTROKETEST.agc",
"chars": 8776,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTVCSTROKETEST.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanc"
},
{
"path": "Comanche055/UPDATE_PROGRAM.agc",
"chars": 16798,
"preview": "# Copyright: Public domain.\n# Filename: UPDATE_PROGRAM.agc\n# Purpose: Part of the source code for Comanche, "
},
{
"path": "Comanche055/WAITLIST.agc",
"chars": 14011,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tWAITLIST.agc\n# Purpose:\tPart of the source code for Colossus 2A, AKA Comanche 05"
},
{
"path": "LICENSE.md",
"chars": 1151,
"preview": "# Public Domain Mark 1.0\n\n## No Copyright\n\nThis work has been identified as being free of known restrictions under copyr"
},
{
"path": "Luminary099/AGC_BLOCK_TWO_SELF_CHECK.agc",
"chars": 13695,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tAGC_BLOCK_TWO_SELF_CHECK.agc\n# Purpose: \tPart of the source code for Luminary 1A"
},
{
"path": "Luminary099/AGS_INITIALIZATION.agc",
"chars": 6146,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tAGS_INITIALIZATION.agc\n# Purpose: \tPart of the source code for Luminary 1A build"
},
{
"path": "Luminary099/ALARM_AND_ABORT.agc",
"chars": 5079,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tALARM_AND_ABORT.agc\n# Purpose: \tPart of the source code for Luminary 1A build 09"
},
{
"path": "Luminary099/AOSTASK_AND_AOSJOB.agc",
"chars": 28653,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tAOSTASK_AND_AOSJOB.agc\n# Purpose: \tPart of the source code for Luminary 1A build"
},
{
"path": "Luminary099/AOTMARK.agc",
"chars": 16963,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tAOTMARK.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt"
},
{
"path": "Luminary099/ASCENT_GUIDANCE.agc",
"chars": 11209,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tASCENT_GUIDANCE.agc\n# Purpose: \tPart of the source code for Luminary 1A build 09"
},
{
"path": "Luminary099/ASSEMBLY_AND_OPERATION_INFORMATION.agc",
"chars": 31842,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tASSEMBLY_AND_OPERATION_INFORMATION.agc\n# Purpose:\tPart of the source code for Lu"
},
{
"path": "Luminary099/ATTITUDE_MANEUVER_ROUTINE.agc",
"chars": 27087,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tATTITUDE_MANEUVER_ROUTINE.agc\n# Purpose: \tPart of the source code for Luminary 1"
},
{
"path": "Luminary099/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc",
"chars": 22306,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tBURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc\n# Purpose: \tPart of the source code "
},
{
"path": "Luminary099/CONIC_SUBROUTINES.agc",
"chars": 47595,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tCONIC_SUBROUTINES.agc\n# Purpose:\tPart of the source code for Luminary 1A build 0"
},
{
"path": "Luminary099/CONTROLLED_CONSTANTS.agc",
"chars": 14841,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tCONTROLLED_CONSTANTS.agc\n# Purpose:\tPart of the source code for Luminary 1A buil"
},
{
"path": "Luminary099/DAPIDLER_PROGRAM.agc",
"chars": 13220,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tDAPIDLER_PROGRAM.agc\n# Purpose: \tPart of the source code for Luminary 1A build 0"
},
{
"path": "Luminary099/DAP_INTERFACE_SUBROUTINES.agc",
"chars": 4811,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tDAP_INTERFACE_SUBROUTINES.agc\n# Purpose: \tPart of the source code for Luminary 1"
},
{
"path": "Luminary099/DISPLAY_INTERFACE_ROUTINES.agc",
"chars": 40245,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tDISPLAY_INTERFACE_ROUTINES.agc\n# Purpose: \tPart of the source code for Luminary "
},
{
"path": "Luminary099/DOWNLINK_LISTS.agc",
"chars": 14597,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tDOWNLINK_LISTS.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099"
},
{
"path": "Luminary099/DOWN_TELEMETRY_PROGRAM.agc",
"chars": 17768,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tDOWN_TELEMETRY_PROGRAM.agc\n# Purpose: \tPart of the source code for Luminary 1A b"
},
{
"path": "Luminary099/ERASABLE_ASSIGNMENTS.agc",
"chars": 77905,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tERASABLE ASSIGNMENTS.agc\n# Purpose: \tPart of the source code for Luminary 1A bui"
},
{
"path": "Luminary099/EXECUTIVE.agc",
"chars": 11697,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tEXECUTIVE.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\t"
},
{
"path": "Luminary099/EXTENDED_VERBS.agc",
"chars": 37260,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tEXTENDED_VERBS.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099"
},
{
"path": "Luminary099/FINDCDUW--GUIDAP_INTERFACE.agc",
"chars": 18500,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tFINDCDUW--GUIDAP_INTERFACE.agc\n# Purpose: \tPart of the source code for Luminary "
},
{
"path": "Luminary099/FIXED_FIXED_CONSTANT_POOL.agc",
"chars": 6679,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tFIXED_FIXED_CONSTANT_POOL.agc\n# Purpose: \tPart of the source code for Luminary 1"
},
{
"path": "Luminary099/FLAGWORD_ASSIGNMENTS.agc",
"chars": 36824,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tFLAGWORD_ASSIGNMENTS.agc\n# Purpose: \tPart of the source code for Luminary 1A bui"
},
{
"path": "Luminary099/FRESH_START_AND_RESTART.agc",
"chars": 27861,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tFRESH_START_AND_RESTART.agc\n# Purpose: \tPart of the source code for Luminary 1A "
},
{
"path": "Luminary099/GENERAL_LAMBERT_AIMPOINT_GUIDANCE.agc",
"chars": 4308,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tLAMBERT_AIMPOINT_GUIDANCE.agc\n# Purpose: \tPart of the source code for Luminary 1"
},
{
"path": "Luminary099/GIMBAL_LOCK_AVOIDANCE.agc",
"chars": 2293,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tGIMBAL_LOCK_AVOIDANCE.agc\n# Purpose: \tPart of the source code for Luminary 1A bu"
},
{
"path": "Luminary099/GROUND_TRACKING_DETERMINATION_PROGRAM.agc",
"chars": 4796,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tGROUND_TRACKING_DETERMINATION_PROGRAM.agc\n# Purpose: \tPart of the source code fo"
},
{
"path": "Luminary099/IMU_COMPENSATION_PACKAGE.agc",
"chars": 10414,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tIMU_COMPENSATION_PACKAGE.agc\n# Purpose: \tPart of the source code for Luminary 1A"
},
{
"path": "Luminary099/IMU_MODE_SWITCHING_ROUTINES.agc",
"chars": 23400,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tIMU_MODE_SWITCHING_ROUTINES.agc\n# Purpose: \tPart of the source code for Luminary"
},
{
"path": "Luminary099/IMU_PERFORMANCE_TESTS_4.agc",
"chars": 6228,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tIMU_PERFORMANCE_TESTS_4.agc\n# Purpose: \tPart of the source code for Luminary 1A "
},
{
"path": "Luminary099/IMU_PERFORMANCE_TEST_2.agc",
"chars": 6936,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tIMU_PERFORMANCE_TEST_2.agc\n# Purpose: \tPart of the source code for Luminary 1A b"
},
{
"path": "Luminary099/INFLIGHT_ALIGNMENT_ROUTINES.agc",
"chars": 6931,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINFLIGHT_ALIGNMENT_ROUTINES.agc\n# Purpose: \tPart of the source code for Luminary"
},
{
"path": "Luminary099/INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.agc",
"chars": 9400,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.agc\n# Purpose: \tPart of the source code fo"
},
{
"path": "Luminary099/INTEGRATION_INITIALIZATION.agc",
"chars": 25139,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTEGRATION_INITIALIZATION.agc\n# Purpose: \tPart of the source code for Luminary "
},
{
"path": "Luminary099/INTER-BANK_COMMUNICATION.agc",
"chars": 5886,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTER-BANK_COMMUNICATION.agc\n# Purpose: \tPart of the source code for Luminary 1A"
},
{
"path": "Luminary099/INTERPRETER.agc",
"chars": 78662,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTERPRETER.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#"
},
{
"path": "Luminary099/INTERPRETIVE_CONSTANT.agc",
"chars": 1852,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTERPRETIVE_CONSTANT.agc\n# Purpose: \tPart of the source code for Luminary 1A bu"
},
{
"path": "Luminary099/INTERRUPT_LEAD_INS.agc",
"chars": 2343,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tINTERRUT_LEAD_INS.agc\n# Purpose: \tPart of the source code for Luminary 1A build "
},
{
"path": "Luminary099/KALCMANU_STEERING.agc",
"chars": 4807,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tKALCMANU_STEERING.agc\n# Purpose: \tPart of the source code for Luminary 1A build "
},
{
"path": "Luminary099/KALMAN_FILTER.agc",
"chars": 2261,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tKALMAN_FILTER.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099."
},
{
"path": "Luminary099/KEYRUPT_UPRUPT.agc",
"chars": 3833,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tKEYRUPT_UPRUPT.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099"
},
{
"path": "Luminary099/LANDING_ANALOG_DISPLAYS.agc",
"chars": 11726,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tLANDING_ANALOG_DISPLAYS.agc\n# Purpose:\tPart of the source code for Luminary, bui"
},
{
"path": "Luminary099/LATITUDE_LONGITUDE_SUBROUTINES.agc",
"chars": 7080,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tLATITUDE_LONGITUDE_SUBROUTINES.agc\n# Purpose:\tPart of the source code for Lumina"
},
{
"path": "Luminary099/LEM_GEOMETRY.agc",
"chars": 5084,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tLEM_GEOMETRY.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n"
},
{
"path": "Luminary099/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc",
"chars": 6094,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tLUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc\n# Purpose: \tPart of the source code "
},
{
"path": "Luminary099/LUNAR_LANDING_GUIDANCE_EQUATIONS.agc",
"chars": 31942,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tLUNAR_LANDING_GUIDANCE_EQUATIONS.agc\n# Purpose: \tPart of the source code for Lum"
},
{
"path": "Luminary099/MAIN.agc",
"chars": 3815,
"preview": "$ASSEMBLY_AND_OPERATION_INFORMATION.agc\t\t# pp. 1-27\n$TAGS_FOR_RELATIVE_SETLOC.agc\t\t\t# pp. 28-37\n$CONTROLLED_CONSTANTS.ag"
},
{
"path": "Luminary099/MEASUREMENT_INCORPORATION.agc",
"chars": 8613,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tMEASUREMENT_INCORPORATION.agc\n# Purpose:\tPart of the source code for Luminary 1A"
},
{
"path": "Luminary099/ORBITAL_INTEGRATION.agc",
"chars": 15916,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tORBITAL_INTEGRATION.agc\n# Purpose: \tPart of the source code for Luminary 1A buil"
},
{
"path": "Luminary099/P-AXIS_RCS_AUTOPILOT.agc",
"chars": 21026,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP-AXIS_RCS_AUTOPILOT.agc\n# Purpose: \tPart of the source code for Luminary 1A bui"
},
{
"path": "Luminary099/P12.agc",
"chars": 4407,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP12.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt is "
},
{
"path": "Luminary099/P20-P25.agc",
"chars": 121255,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP20-P25.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt"
},
{
"path": "Luminary099/P30_P37.agc",
"chars": 4937,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP30_P37.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt"
},
{
"path": "Luminary099/P32-P35_P72-P75.agc",
"chars": 25575,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP32-P35_P72-P75.agc\n# Purpose: \tPart of the source code for Luminary 1A build 09"
},
{
"path": "Luminary099/P34-35_P74-75.agc",
"chars": 34716,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP34-35_P74-75.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099."
},
{
"path": "Luminary099/P40-P47.agc",
"chars": 30910,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP40-P47.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt"
},
{
"path": "Luminary099/P51-P53.agc",
"chars": 43690,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP51-P53.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt"
},
{
"path": "Luminary099/P70-P71.agc",
"chars": 7797,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP70-P71.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt"
},
{
"path": "Luminary099/P76.agc",
"chars": 4400,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tP76.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt is "
},
{
"path": "Luminary099/PHASE_TABLE_MAINTENANCE.agc",
"chars": 12373,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPHASE_TABLE_MAINTENANCE.agc\n# Purpose: \tPart of the source code for Luminary 1A "
},
{
"path": "Luminary099/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc",
"chars": 102264,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPINBALL_GAME_BUTTONS_AND_LIGHTS.agc\n# Purpose:\tPart of the source code for Lumin"
},
{
"path": "Luminary099/PINBALL_NOUN_TABLES.agc",
"chars": 28087,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPINBALL_NOUN_TABLES.agc\n# Purpose: \tPart of the source code for Luminary 1A buil"
},
{
"path": "Luminary099/PLANETARY_INERTIAL_ORIENTATION.agc",
"chars": 9233,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPLANETARY_INERTIAL_ORIENTATION.agc\n# Purpose:\tPart of the source code for Lumina"
},
{
"path": "Luminary099/POWERED_FLIGHT_SUBROUTINES.agc",
"chars": 10932,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tPOWERED_FLIGHT_SUBROUTINES.agc\n# Purpose: \tPart of the source code for Luminary "
},
{
"path": "Luminary099/Q_R-AXIS_RCS_AUTOPILOT.agc",
"chars": 17289,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tQ_R-AXIS_RCS_AUTOPILOT.agc\n# Purpose: \tPart of the source code for Luminary 1A b"
},
{
"path": "Luminary099/R30.agc",
"chars": 14653,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tR30.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt is "
},
{
"path": "Luminary099/R31.agc",
"chars": 5012,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tR31.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt is "
},
{
"path": "Luminary099/R60_62.agc",
"chars": 15295,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tR60_R62.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt"
},
{
"path": "Luminary099/R63.agc",
"chars": 4925,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tR63.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tIt is "
},
{
"path": "Luminary099/RADAR_LEADIN_ROUTINES.agc",
"chars": 2538,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tRADAR_LEADIN_ROUTINES.agc\n# Purpose: \tPart of the source code for Luminary 1A bu"
},
{
"path": "Luminary099/RCS_FAILURE_MONITOR.agc",
"chars": 5834,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tRCS_FAILURE_MONITOR.agc\n# Purpose: \tPart of the source code for Luminary 1A buil"
},
{
"path": "Luminary099/README.md",
"chars": 19648,
"preview": "# Luminary099\n\nThe images (with suitable reduction in storage size and consequent reduction in image quality as well) ar"
},
{
"path": "Luminary099/RESTARTS_ROUTINE.agc",
"chars": 7689,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tRESTARTS_ROUTINE.agc\n# Purpose: \tPart of the source code for Luminary 1A build 0"
},
{
"path": "Luminary099/RESTART_TABLES.agc",
"chars": 7458,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tRESTART_TABLES.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099"
},
{
"path": "Luminary099/RTB_OP_CODES.agc",
"chars": 5660,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tRTB_OP_CODES.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n"
},
{
"path": "Luminary099/S-BAND_ANTENNA_FOR_LM.agc",
"chars": 4670,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tS-BAND_ANTENNA_FOR_LM.agc\n# Purpose: \tPart of the source code for Luminary 1A bu"
},
{
"path": "Luminary099/SERVICER.agc",
"chars": 34569,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSERVICER.agc\n# Purpose:\tPart of the source code for Luminary, build 099. It\n#\t\ti"
},
{
"path": "Luminary099/SERVICE_ROUTINES.agc",
"chars": 5418,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSERVICE_ROUTINES.agc\n# Purpose: \tPart of the source code for Luminary 1A build 0"
},
{
"path": "Luminary099/SINGLE_PRECISION_SUBROUTINES.agc",
"chars": 1726,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSINGLE_PRECISION_SUBROUTINES.agc\n# Purpose: \tPart of the source code for Luminar"
},
{
"path": "Luminary099/SPS_BACK-UP_RCS_CONTROL.agc",
"chars": 5909,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSPS_BACK-UP_RCS_CONTROL.agc\n# Purpose: \tPart of the source code for Luminary 1A "
},
{
"path": "Luminary099/STABLE_ORBIT.agc",
"chars": 9235,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSTABLE_ORBIT.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n"
},
{
"path": "Luminary099/SYSTEM_TEST_STANDARD_LEAD_INS.agc",
"chars": 3636,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tSYSTEM_TEST_STANDARD_LEAD_INS.agc\n# Purpose: \tPart of the source code for Lumina"
},
{
"path": "Luminary099/T4RUPT_PROGRAM.agc",
"chars": 37085,
"preview": "# Copyright: Public domain.\n# Filename: T4RUPT_PROGRAM.agc\n# Purpose: Part of the source code for Luminary 1"
},
{
"path": "Luminary099/T6-RUPT_PROGRAMS.agc",
"chars": 4500,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tT6-RUPT_PROGRAMS.agc\n# Purpose: \tPart of the source code for Luminary 1A build 0"
},
{
"path": "Luminary099/TAGS_FOR_RELATIVE_SETLOC.agc",
"chars": 5620,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTAGS_FOR_RELATIVE_SETLOC.agc\n# Purpose:\tPart of the source code for Luminary 1A "
},
{
"path": "Luminary099/THE_LUNAR_LANDING.agc",
"chars": 7460,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTHE_LUNAR_LANDING.agc\n# Purpose: \tPart of the source code for Luminary 1A build "
},
{
"path": "Luminary099/THROTTLE_CONTROL_ROUTINES.agc",
"chars": 5906,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTHROTTLE_CONTROL_ROUTINES.agc\n# Purpose: \tPart of the source code for Luminary 1"
},
{
"path": "Luminary099/TIME_OF_FREE_FALL.agc",
"chars": 23387,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTIME_OF_FREE_FALL.agc\n# Purpose: \tPart of the source code for Luminary 1A build "
},
{
"path": "Luminary099/TJET_LAW.agc",
"chars": 17211,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTJET_LAW.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tI"
},
{
"path": "Luminary099/TRIM_GIMBAL_CONTROL_SYSTEM.agc",
"chars": 17459,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tTRIM_GIMBAL_CNTROL_SYSTEM.agc\n# Purpose: \tPart of the source code for Luminary 1"
},
{
"path": "Luminary099/UPDATE_PROGRAM.agc",
"chars": 17802,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tUPDATE_PROGRAM.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099"
},
{
"path": "Luminary099/WAITLIST.agc",
"chars": 14816,
"preview": "# Copyright:\tPublic domain.\n# Filename:\tWAITLIST.agc\n# Purpose: \tPart of the source code for Luminary 1A build 099.\n#\t\tI"
},
{
"path": "README.md",
"chars": 5917,
"preview": "# Apollo-11\n\n[![NASA][1]][2]\n[![SWH]][SWH_URL]\n[![Comanche]][ComancheMilestone]\n[![Luminary]][LuminaryMilestone]\n\n🌐\n[Aze"
},
{
"path": "Translations/CONTRIBUTING.ar.md",
"chars": 5646,
"preview": "<div dir=\"RTL\">\n\n# المساهمة\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deu"
},
{
"path": "Translations/CONTRIBUTING.az.md",
"chars": 6089,
"preview": "# Töhfə\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deutsch][DE],\n[English]"
},
{
"path": "Translations/CONTRIBUTING.ca.md",
"chars": 5691,
"preview": "# Contributing\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deutsch][DE],\n[E"
},
{
"path": "Translations/CONTRIBUTING.cz.md",
"chars": 5259,
"preview": "# Contributing\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deutsch][DE],\n[E"
},
{
"path": "Translations/CONTRIBUTING.da.md",
"chars": 6041,
"preview": "# Bidrag\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deutsch][DE],\n[English"
},
{
"path": "Translations/CONTRIBUTING.de.md",
"chars": 6395,
"preview": "# Contributing\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deutsch][DE],\n[E"
},
{
"path": "Translations/CONTRIBUTING.es.md",
"chars": 5591,
"preview": "# Contributing\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deutsch][DE],\n[E"
},
{
"path": "Translations/CONTRIBUTING.fr.md",
"chars": 6320,
"preview": "# Contribuer\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deutsch][DE],\n[Eng"
},
{
"path": "Translations/CONTRIBUTING.gl.md",
"chars": 5524,
"preview": "# Contribuíndo\n\n🌐\n[Azerbaijani][AZ],\n[bahasa Indonesia][ID],\n[Català][CA]،\n[Čeština][CZ],\n[Dansk][DA],\n[Deutsch][DE],\n[E"
}
]
// ... and 62 more files (download for full content)
About this extraction
This page contains the full source code of the chrislgarry/Apollo-11 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 262 files (3.4 MB), approximately 908.1k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.