Compare commits
No commits in common. "gh-pages" and "master" have entirely different histories.
15
.editorconfig
Normal file
15
.editorconfig
Normal file
@ -0,0 +1,15 @@
|
||||
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
|
5
.github/ISSUE_TEMPLATE/Discussion.md
vendored
Normal file
5
.github/ISSUE_TEMPLATE/Discussion.md
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
name: Discussion & Questions
|
||||
about: Discussion about the Apollo 11 source code is highly welcomed.
|
||||
labels: "Type: Discussion"
|
||||
---
|
5
.github/ISSUE_TEMPLATE/Humour.md
vendored
Normal file
5
.github/ISSUE_TEMPLATE/Humour.md
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
name: Humour / Jokes
|
||||
about: Humourous issues are allowed, but please follow GitHub's Acceptable Use policies
|
||||
labels: "Type: Humour"
|
||||
---
|
15
.github/ISSUE_TEMPLATE/Proof_Comanche.md
vendored
Normal file
15
.github/ISSUE_TEMPLATE/Proof_Comanche.md
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
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
|
15
.github/ISSUE_TEMPLATE/Proof_Luminary.md
vendored
Normal file
15
.github/ISSUE_TEMPLATE/Proof_Luminary.md
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
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
|
9
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
9
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
<!-- 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"
|
||||
-->
|
6
.github/labeler.yml
vendored
Normal file
6
.github/labeler.yml
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
"Type: Proof":
|
||||
- "**/*.agc"
|
||||
"Type: Meta":
|
||||
- "**/MAIN.agc"
|
||||
- "**/*.md"
|
||||
- "*.md"
|
13
.github/workflows/label.yml
vendored
Normal file
13
.github/workflows/label.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
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
|
14
.github/workflows/markdownlint.yml
vendored
Normal file
14
.github/workflows/markdownlint.yml
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
name: markdownlint
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
delivery:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v3
|
||||
- name: Lint markdown
|
||||
uses: DavidAnson/markdownlint-cli2-action@v19
|
||||
with:
|
||||
config: .markdownlint.yml
|
||||
globs: '*.md,translations/*.md,Comanche055/*.md,Luminary099/*.md'
|
||||
separator: ','
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
yaYUL.exe
|
||||
node_modules
|
||||
|
11
.markdownlint.yml
Normal file
11
.markdownlint.yml
Normal file
@ -0,0 +1,11 @@
|
||||
default: true
|
||||
MD007: false
|
||||
MD010: false
|
||||
MD013: false
|
||||
MD026: false
|
||||
MD033: false
|
||||
MD034: false
|
||||
MD036: false
|
||||
MD041: false
|
||||
MD050: false
|
||||
MD053: false
|
174
CONTRIBUTING.md
Normal file
174
CONTRIBUTING.md
Normal file
@ -0,0 +1,174 @@
|
||||
# Contributing
|
||||
|
||||
🌐
|
||||
[Azerbaijani][AZ],
|
||||
[bahasa Indonesia][ID],
|
||||
[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],
|
||||
[tiếng Việt][VI],
|
||||
[Türkçe][TR],
|
||||
[Ελληνικά][GR],
|
||||
[Українська][UK]،
|
||||
[العربية][AR],
|
||||
[हिन्दी][HI_IN],
|
||||
[한국어][KO_KR],
|
||||
[日本語][JA],
|
||||
[正體中文][ZH_TW],
|
||||
[简体中文][ZH_CN]
|
||||
|
||||
[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
|
||||
[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
|
||||
[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
|
513
Comanche055/AGC_BLOCK_TWO_SELF-CHECK.agc
Normal file
513
Comanche055/AGC_BLOCK_TWO_SELF-CHECK.agc
Normal file
@ -0,0 +1,513 @@
|
||||
# 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
|
230
Comanche055/ALARM_AND_ABORT.agc
Normal file
230
Comanche055/ALARM_AND_ABORT.agc
Normal file
@ -0,0 +1,230 @@
|
||||
# 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
|
626
Comanche055/ANGLFIND.agc
Normal file
626
Comanche055/ANGLFIND.agc
Normal file
@ -0,0 +1,626 @@
|
||||
# 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
|
||||
|
1010
Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc
Normal file
1010
Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc
Normal file
File diff suppressed because it is too large
Load Diff
504
Comanche055/AUTOMATIC_MANEUVERS.agc
Normal file
504
Comanche055/AUTOMATIC_MANEUVERS.agc
Normal file
@ -0,0 +1,504 @@
|
||||
# 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
|
301
Comanche055/CM_BODY_ATTITUDE.agc
Normal file
301
Comanche055/CM_BODY_ATTITUDE.agc
Normal file
@ -0,0 +1,301 @@
|
||||
# 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
|
1273
Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc
Normal file
1273
Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc
Normal file
File diff suppressed because it is too large
Load Diff
1922
Comanche055/CONIC_SUBROUTINES.agc
Normal file
1922
Comanche055/CONIC_SUBROUTINES.agc
Normal file
File diff suppressed because it is too large
Load Diff
73
Comanche055/CONTRACT_AND_APPROVALS.agc
Normal file
73
Comanche055/CONTRACT_AND_APPROVALS.agc
Normal file
@ -0,0 +1,73 @@
|
||||
# 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
|
415
Comanche055/CSM_GEOMETRY.agc
Normal file
415
Comanche055/CSM_GEOMETRY.agc
Normal file
@ -0,0 +1,415 @@
|
||||
# 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
|
1476
Comanche055/DISPLAY_INTERFACE_ROUTINES.agc
Normal file
1476
Comanche055/DISPLAY_INTERFACE_ROUTINES.agc
Normal file
File diff suppressed because it is too large
Load Diff
441
Comanche055/DOWN-TELEMETRY_PROGRAM.agc
Normal file
441
Comanche055/DOWN-TELEMETRY_PROGRAM.agc
Normal file
@ -0,0 +1,441 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: DOWN-TELEMETRY_PROGRAM.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. 1093-1102
|
||||
# Contact: Ron Burkey <info@sandroid.org>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 2009-05-08 RSB Adapted from Colossus249/ file of 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 1093
|
||||
# PROGRAM NAME- DOWN TELEMETRY PROGRAM
|
||||
# MOD NO.- 0 TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE
|
||||
# PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE.
|
||||
# THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS. REFER TO DOWNLINK
|
||||
# LISTS LOG SECTION FOR MORE DETAILS. HOWEVER THIS CHANGES WILL NOT AFFECT THE GROUND PROCESSING
|
||||
# OF DOWN TELEMETRY DATA.
|
||||
# MOD BY- KILROY, SMITH, DEWITT
|
||||
# DATE- 02OCT67
|
||||
# AUTHORS- KILROY, SMITH, DWWITT, DEWOLF, FAGIN
|
||||
# LOG SECTION- DOWN-TELEMETRY PROGRAM
|
||||
# FUNCTIONAL DESCRIPTION- THIS ROUTINE IS INITIATED BY TELEMETRY END
|
||||
# PULSE FROM THE DOWNLINK TELEMETRY CONVERTER. THIS PULSE OCCURS
|
||||
# AT 50 TIMES PER SEC(EVERY 20 MS) THEREFORE DODOWNTM IS
|
||||
# EXECUTED AT THESE RATES. THIS ROUTINE SELECTS THE APPROPRIATE
|
||||
# AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
|
||||
# CHANNELS 34 AND 35. THE INFORMATION IS THEN GATED OUT FROM THE
|
||||
# LGC IN SERIAL FASHION.
|
||||
# THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST. SINCE DOWNRUPTS
|
||||
# OCCUR EVERY 20MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN
|
||||
# CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
|
||||
# OF SENDING 200 AGC WORDS EVERY 2 SECONDS.
|
||||
# CALLING SEQUENCE- NONE
|
||||
# PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
|
||||
# RESULT OF A DOWNRUPT. CONTROL IS RETURNED VIA TCF RESUME WHICH
|
||||
# IN EFFECT IS A RESUME.
|
||||
# SUBROUTINES CALLED- NONE
|
||||
# NORMAL EXIT MODE- TCF RESUME
|
||||
# ALARM OR ABORT EXIT MODE- NONE
|
||||
# RESTART PROTECTION:
|
||||
# ON A FRESH START AND RESTART THE 'STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER(ACTUALLY
|
||||
# DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST(I.E., CURRENT CONTENTS OF DNLSTADR). THIS HAS THE
|
||||
# EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
|
||||
# THE RESTART(OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT
|
||||
# DOWNLIST.
|
||||
# ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35.
|
||||
# DOWNLINK LIST SELECTION:
|
||||
# THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING:
|
||||
# 1. FRESH START
|
||||
# 2. V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED.
|
||||
# 3. UPDATE PROGRAM(P27)
|
||||
# 4. NON-V37 SELECTABLE TYPE PROGRAMS(E.G. AGS INITIALIZATION(SUNDANCE,LUMINARY) AND P61-P62
|
||||
# TRANSITION(COLOSSUS) ETC.).
|
||||
# DOWNLINK LIST RULES AND LIMITATIONS:
|
||||
# READ SECTION(S) WHICH FOLLOW 'DEBRIS' WRITEUP.
|
||||
# OUTPUT- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS(I.E. 200 LGC
|
||||
# COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
|
||||
# ERASABLE INITIALIZATION REQUIRED- NONE
|
||||
# 'DNTMGOTO' AND 'DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM.
|
||||
# DEBRIS(ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM)-
|
||||
# LDATALST,DNTMBUFF TO DNTMBUFF +21D,TMINDEX,DNQ.
|
||||
# Page 1094
|
||||
# (No source on this page of the original assembly listing.)
|
||||
|
||||
# Page 1095
|
||||
# DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
|
||||
# RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
|
||||
#
|
||||
# NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM:
|
||||
# 1. DOWNLISTS. - DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
|
||||
# DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER
|
||||
# EXECUTION.
|
||||
# 2. EACH DOWNLINK LIST CONSISTS OF A CONTROL LIST AND A NUMBER OF
|
||||
# SUBLISTS.
|
||||
# 3. A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER
|
||||
# DOWNLINK LISTS. ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE
|
||||
# CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS.
|
||||
# 4. SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENOUS DATA WHICH MUST BE
|
||||
# SAVED IN A BUFFER DURING ONE DOWNRUPT.
|
||||
# 5. THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END
|
||||
# OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD
|
||||
# IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER.
|
||||
# 6. ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS
|
||||
# CREATED FOR THE DOWNLIST PROGRAM.
|
||||
# A. 1DNADR 1-WORD DOWNLIST ADDRESS.
|
||||
# SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT
|
||||
# HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY.
|
||||
# B. 2DNADR - 6DNADR N-WORD DOWNLIST ADDRESS, N = 2 - 6.
|
||||
# SAME AS 1DNADR, BUT WITH THE 4 UNUSED BITS OF THE ECADR FORMAT
|
||||
# FILLED IN WITH 0001-0101. USED TO POINT TO A LIST OF N DOUBLE-
|
||||
# PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY.
|
||||
# C. DNCHAN DOWNLIST CHANNEL ADDRESS.
|
||||
# SAME AS 1DNADR, BUT WITH PREFIX BITS 0111. USED TO POINT TO
|
||||
# A PAIR OF CHANNELS FOR DOWN TELEMETRY.
|
||||
# D. DNPTR DOWN TELEMETRY SUBLIST POINTER.
|
||||
# SAME AS CAF BUT TAGGES AS A CONSTANT. USED IN CONTROL LIST TO POINT TO A SUBLIST.
|
||||
# CAUTION--- A DNPTR CANNOT BE USED IN A SUBLIST.
|
||||
# 7. THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E., CONTROL LIST) AND WHEN
|
||||
# A '1DNADR TIME2' IS DETECTED IN THE CONTROL LIST(ONLY).
|
||||
# 8. IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK.
|
||||
#
|
||||
# DOWNLINK LIST RESTRICTIONS:
|
||||
# (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE
|
||||
# DONE)
|
||||
#
|
||||
# 1. SNAPSHOT DOWNLIST:
|
||||
# (A) CANNOT CONTAIN THE FOLLOWING ECADRS(I.E. 1DNADR'S): 0, 400, 1000, 1400, 2000, 2400, 3000, 3400.
|
||||
# (B) CAN CONTAIN ONLY 1DNADR'S
|
||||
#
|
||||
# 2. ALL DOWNLINKED DATA(EXCEPT CHANNELS) IS PICKED UP BY A <DCA<SO DOWNLINK LISTS CANNOT CONTAIN THE
|
||||
# EQUIVALENT OF THE FOLLOWING ECADRS(I.E. IDNADRS): 377, 777, 1377, 1777, 2377, 2777, 3377, 3777.
|
||||
#
|
||||
# (NOTE: THE TERM EQUIVALENT ' MEANT THAT THE IDNADR TO 6DNADR WILL BE PROCESSED LIKE 1 TO 6 ECADRS)
|
||||
#
|
||||
# 3. CONTROL LISTS AND SUBLISTS CANNOT HAVE ENTRIES = OCTAL 00000 OR OCTAL 77777
|
||||
# Page 1096
|
||||
# 4. THE '1DNADR TIME2' WHICH WILL CAUSE THE DOWNLINK PROGRAM TO SET THE WORDER CODE TO 3 MUST APPEAR IN THE
|
||||
# CONTROL SECTION OF THE DOWNLIST.
|
||||
#
|
||||
# 5. 'DNCHAN 0' CANNOT BE USED.
|
||||
#
|
||||
# 6. 'DNPTR 0' CANNOT BE USED.
|
||||
#
|
||||
# 7. DNPTR CANNOT APPEAR IN A SUBLIST.
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
# EBANK SETTINGS
|
||||
# IN THE PROCESS OF SETTING THE EBANK(WHEN PICKING UP DOWNLINK DATA) THE DOWN TELEMETRY PROGRAM PUTS
|
||||
# 'GARBAGE' INTO BITS15-12 OF EBANK. HUGH BLAIR-SMITH WARNS US THAT BITS15-12 OF EBANK MAY BECOME
|
||||
# SIGNIFICANT SOMEDAY IN THE FUTURE. IF/WHEN THAT HAPPENS, THE PROGRAM SHOULD INSURE(BY MASKING ETC.)
|
||||
# THAT BITS 15-12 OF EBANK ARE ZERO.
|
||||
# INITIALIZATION REQUIRED- TO INTERRUPT CURRENT LIST AND START A NEW ONE..
|
||||
# 1. ADRES OF DOWNLINK LIST INTO DNLSTADR
|
||||
# 2. NEGONE INTO SUBLIST
|
||||
# 3. NEGONE INTO DNECADR
|
||||
|
||||
BANK 22
|
||||
SETLOC DOWNTELM
|
||||
BANK
|
||||
|
||||
EBANK= DNTMBUFF
|
||||
|
||||
COUNT 05/DPROG
|
||||
|
||||
DODOWNTM TS BANKRUPT
|
||||
EXTEND
|
||||
QXCH QRUPT # SAVE Q
|
||||
CA BIT7 # SET WORD ORDER CODE TO 1. EXCEPTION- AT
|
||||
EXTEND # THE BEGINNING OF EACH LIST THE WORD
|
||||
WOR CHAN13 # CODE WILL BE SET BACK TO 0.
|
||||
TC DNTMGOTO # GO TO APPROPRIATE PHASE OF PROGRAM
|
||||
|
||||
DNPHASE1 CA NEGONE # INITIALIZE ALL CONTROL WORDS
|
||||
TS SUBLIST # WORDS TO MINUS ONE
|
||||
TS DNECADR
|
||||
CA LDNPHAS2 # SET DNTMGOTO =0 ALL SUBSEQUENT DOWNRUPTS
|
||||
TS DNTMGOTO # GO TO DNPHASE2
|
||||
TCF NEWLIST
|
||||
DNPHASE2 CCS DNECADR # SENDING OF DATA IN PROGRESS
|
||||
DODNADR TC FETCH2WD # YES - THEN FETCH THE NEXT 2 SP WORDS
|
||||
MINTIME2 -1DNADR TIME2 # NEGATIVE OF TIME2 1DNADR
|
||||
TCF +1 # (ECADR OF 3776 + 74001 = 77777)
|
||||
|
||||
CCS SUBLIST # IS THE SUBLIST IN CONTROL
|
||||
# Page 1097
|
||||
TCF NEXTINSL # YES
|
||||
DNADRDCR OCT 74001 # DNADR COUNT AND ECADR DECREMENTER
|
||||
|
||||
CHKLIST CA CTLIST
|
||||
EXTEND
|
||||
BZMF NEWLIST # IT WILL BE NEGATIVE AT END OF LIST
|
||||
TCF NEXTINCL
|
||||
NEWLIST INDEX DNLSTCOD
|
||||
CA DNTABLE # INITIALIZE CTLIST WITH
|
||||
TS CTLIST # STARTING ADDRESS OF NEW LIST
|
||||
CS DNLSTCOD
|
||||
TCF SENDID +3
|
||||
NEXTINCL INDEX CTLIST
|
||||
CA 0
|
||||
CCS A
|
||||
INCR CTLIST # SET POINTER TO PICK UP NEXT CTLIST WORD
|
||||
TCF +4 # ON NEXT ENTRY TO PROG. (A SHOULD NOT =0)
|
||||
XCH CTLIST # SET CTLIST TO NEGATIVE AND PLACE(CODING)
|
||||
COM # UNCOMPLEMENTED DNADR INTO A. (FOR LA)
|
||||
XCH CTLIST # (ST IN )
|
||||
+4 INCR A # (CTLIST)
|
||||
TS DNECADR # SAVE DNADR
|
||||
AD MINTIME2 # TEST FOR TIME2 (NEG. OF ECADR)
|
||||
CCS A
|
||||
TCF SETWO +1 # DON'T SET WORD ORDER CODE
|
||||
MINB1314 OCT 47777 # MINUS BIT 13 AND 14 (CAN'T GET HERE)
|
||||
TCF SETWO +1 # DON'T SET WORD ORDER CODE
|
||||
SETWO TC WOZERO # GO SET WORD ORDER CODE TO ZERO.
|
||||
+1 CA DNECADR # RELOAD A WITH THE DNADR.
|
||||
+2 AD MINB1314 # IS THIS A REGULAR DNADR?
|
||||
EXTEND
|
||||
BZMF FETCH2WD # YES. (A MUST NEVER BE ZERO)
|
||||
AD MINB12 # NO- IS IT A POINTER (DNPTR) OR A
|
||||
EXTEND # CHANNEL(DNCHAN)
|
||||
BZMF DODNPTR # IT'S A POINTER. (A MUST NEVER BE ZERO)
|
||||
|
||||
DODNCHAN TC 6 # (EXECUTED AS EXTEND) IT S A CHANNEL
|
||||
INDEX DNECADR
|
||||
INDEX 0 -4000 # (EXECUTED AS READ)
|
||||
TS L
|
||||
TC 6 # (EXECUTED AS EXTEND)
|
||||
INDEX DNECADR
|
||||
INDEX 0 -4001 # (EXECUTED AS READ)
|
||||
TS DNECADR # SET DNECADR
|
||||
CA NEGONE # TO MINUS
|
||||
XCH DNECADR # WHILE PRESERVING A.
|
||||
TCF DNTMEXIT # GO SEND CHANNELS
|
||||
|
||||
WOZERO CS BIT7
|
||||
EXTEND
|
||||
# Page 1098
|
||||
WAND CHAN13 # SET WORD ORDER CODE TO ZERO
|
||||
TC Q # RETURN TO CALLER
|
||||
|
||||
DODNPTR INDEX DNECADR # DNECADR CONTAINS ADRES OF SUBLIST
|
||||
0 0 # CLEAR AND ADD LIST ENTRY INTO A.
|
||||
CCS A # IS THIS A SNAPSHOT SUBLIST
|
||||
CA DNECADR # NO, IT IS A REGULAR SUBLIST.
|
||||
TCF DOSUBLST # A MUST NOT BE ZERO.
|
||||
|
||||
XCH DNECADR # YES, IT IS A SNAPSHOT SUBLIST.
|
||||
TS SUBLIST # C(DNECADR) INTO SUBLIST
|
||||
CAF ZERO # A INTO A
|
||||
XCH TMINDEX # (NOTE.. TMINDEX = DNECADR)
|
||||
|
||||
# THE FOLLOWING CODING (FROM SNAPLOOP TO SNAPEND)IS FOR THE PURPOSE OF TAKING A SNAPSHOT OF 12 DP REGISTERS.
|
||||
# THIS IS DONE BY SAVING 11 DP REGISTERS IN DNTMBUFF AND SENDING THE FIRST DP WORD IMMEDIATELY.
|
||||
# THE SNAPSHOT PROCESSING IS THE MOST TIME CONSUMING AND THEREFORE THE CODING AND LIST STRUCTURE WERE DESIGNED
|
||||
# TO MINIMIZE TIME. THE TIME OPTIMIZATION RESULTS IN RULES UNIQUE TO THE SNAPSHOT PORTION OF THE DOWNLIST.
|
||||
# THESE RULES ARE......
|
||||
# 1. ONLY 1DNADR'S CAN APPEAR IN THE SNAPSHOT SUBLIST
|
||||
# 2. THE 1DNADR'S CANNOT REFER TO THE FIRST LOCATION IN ANY BANK.
|
||||
|
||||
SNAPLOOP TS EBANK # SET EBANK
|
||||
MASK LOW8 # ISOLATE RELATIVE ADDRESS
|
||||
EXTEND
|
||||
INDEX A
|
||||
EBANK= 1401
|
||||
DCA 1401 # PICK UP 2 SNAPSHOT WORDS.
|
||||
EBANK= DNTMBUFF
|
||||
INDEX TMINDEX
|
||||
DXCH DNTMBUFF # STORE 2 SNAPSHOT WORDS IN BUFFER
|
||||
INCR TMINDEX # SET BUFFER INDEX FOR NEXT 2 WORDS.
|
||||
INCR TMINDEX
|
||||
SNAPAGN INCR SUBLIST # SET POINTER TO NEXT 2 WORDS OF SNAPSHOT
|
||||
INDEX SUBLIST
|
||||
0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
|
||||
CCS A # TEST FOR LAST TWO WORDS OF SNAPSHOT.
|
||||
TCF SNAPLOOP # NOT LAST TWO.
|
||||
LDNPHAS2 GENADR DNPHASE2
|
||||
TS SUBLIST # YES, LAST. SAVE A.
|
||||
CA NEGONE # SET DNECADR AND
|
||||
TS DNECADR # SUBLIST POINTERS
|
||||
XCH SUBLIST # TO NEGATIVE VALUES.
|
||||
TS EBANK
|
||||
MASK LOW8
|
||||
EXTEND
|
||||
INDEX A
|
||||
EBANK= 1401
|
||||
# Page 1099
|
||||
DCA 1401 # PICK UP FIRST 2 WORDS OF SNAPSHOT.
|
||||
EBANK= DNTMBUFF
|
||||
SNAPEND TCF DNTMEXIT # NOW GO SEND THEM.
|
||||
|
||||
FETCH2WD CA DNECADR
|
||||
TS EBANK # SET EBANK
|
||||
MASK LOW8 # ISOLATE RELATIVE ADDRESS
|
||||
TS L
|
||||
CA DNADRDCR # DECREMENT COUNT AND ECADR
|
||||
ADS DNECADR
|
||||
EXTEND
|
||||
INDEX L
|
||||
EBANK= 1400
|
||||
DCA 1400 # PICK UP 2 DATA WORDS
|
||||
EBANK= DNTMBUFF
|
||||
TCF DNTMEXIT # NOW GO SEND THEM.
|
||||
|
||||
DOSUBLST TS SUBLIST # SET SUBLIST POINTER
|
||||
NEXTINSL INDEX SUBLIST
|
||||
0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
|
||||
CCS A # IS IT THE END OF THE SUBLIST
|
||||
INCR SUBLIST # NO-
|
||||
TCF +4
|
||||
TS SUBLIST # SAVE A.
|
||||
CA NEGONE # SET SUBLIST TO MINUS
|
||||
XCH SUBLIST # RETRIEVE A.
|
||||
+4 INCR A
|
||||
TS DNECADR # SAVE DNADR
|
||||
TCF SETWO +2 # GO USE COMMON CODING(PROBLEMS WOULD
|
||||
# OCCUR IF THE PROGRAM ENCOUNTERED A
|
||||
# DNPTR NOW)
|
||||
|
||||
DNTMEXIT EXTEND # DOWN-TELEMETRY EXIT
|
||||
WRITE DNTM1 # TO SEND A + L TO CHANNELS 34 + 35
|
||||
CA L # RESPECTIVELY
|
||||
TMEXITL EXTEND
|
||||
WRITE DNTM2
|
||||
TMRESUME TCF RESUME # EXIT TELEMETRY PROGRAM VIA RESUME.
|
||||
|
||||
MINB12 EQUALS -1/8
|
||||
DNECADR EQUALS TMINDEX
|
||||
CTLIST EQUALS LDATALST
|
||||
SUBLIST EQUALS DNQ
|
||||
|
||||
# Page 1100
|
||||
# SUBROUTINE NAME- DNDUMP
|
||||
# FUNCTIONAL DESCRIPTION - TO SEND(DUMP) ALL ERASABLE STORAGE 'N' TIMES.(N = 1 TO 4). BANKS ARE SENT ONE AT A TIME
|
||||
# EACH BANK IS PRECEDED BY AN ID WORD, SYNCH BITS, ECADR AND TIME1 FOLLOWED BY THE 256D WORDS OF EACH
|
||||
# EBANK. EBANKS ARE DUMPED IN ORDER(I.E. EBANK 0 FIRST, THEN EBANK1 ETC.)
|
||||
# CALLING SEQUENCE- THE GROUND OR ASTRONAUT BY KEYING V74E CAN INITIALIZE THE DUMP.
|
||||
# AFTER KEYING IN V74E THE CURRENT DOWNLIST WILL BE IMMEDIATELY TERMINATED AND THE DOWNLINK ERASABLE DUMP
|
||||
# WILL BEGIN.
|
||||
# ONCE INITIATED THE DOWNLINK ERASABLE DUMP CAN BE TERMINATED (AND INTERRUPTED DOWNLIST REINSTATED) ONLY
|
||||
# BY THE FOLLOWING:
|
||||
# 1. A FRESH START
|
||||
# 2. COMPLETION OF ALL DOWNLINK DUMPS REQUESTED (ACCORDING TO BITS SET IN DUMPCNT). NOTE THAT DUMPCNT
|
||||
# CAN BE ALTERED BY A V21N01.
|
||||
# 3. AND INVOLUNTARILY BY A RESTART.
|
||||
# NORMAL EXIT MODE- TCF DNPHASE1
|
||||
# ALARM OR ABORT MODE- NONE
|
||||
# *SUBROUTINES CALLED- NONE.
|
||||
# ERASABLE INITIALIZATION REQUIRED --
|
||||
# DUMPCNT OCT 20000 IF 4 COMPLETE ERASABLE DUMPS ARE DESIRED
|
||||
# DUMPCNT OCT 10000 IF 2 COMPLETE ERASABLE DUMPS ARE DESIRED
|
||||
# DUMPCNT OCT 04000 IF 1 COMPLETE ERASABLE DUMP IS DESIRED
|
||||
# DEBRIS- DUMPLOC, DUMPSW, DNTMGOTO, EBANK AND CENTRAL REGISTERS
|
||||
# TIMING- TIME (IN SECS) = ((NO.DUMPS)*(NO.EBANKS)* (WDSPEREBANK + NO.IDWDS)) / NO.WDSPERSEC
|
||||
# TIME (IN SECS) = ( 4 )*( 8 )* ( 256 + 4 ) / 100
|
||||
# THUS TIME (IN SECS TO SEND DUMP OF ERASABLE 4 TIMES VIA DOWNLINK) = 83.2 SECONDS
|
||||
#
|
||||
# STRUCTURE OF ONE EBANK AS IT IS SENT BY DOWNLINK PROGRAM-
|
||||
# (REMINDER-THIS ONLY DESCRIBES ONE OF THE 8 EBANKS X 4 (DUMPS) = 32 EBANKS WHICH WILL BE SENT BY DNDUMP)
|
||||
# DOWNLIST W
|
||||
# WORD TAKEN FROM CONTENTS OF EXAMPLE O COMMENTS
|
||||
#
|
||||
# 1 ERASID 0177X 0 DOWNLIST I.D. FOR DOWNLINK ERASABLE DUMP (X=7 CSM, 6 LM)
|
||||
# 2 LOWIDCOD 77340 1 DOWNLINK SYNCH BITS.(SAME ONE USED IN ALL OTHER DOWNLISTS)
|
||||
# 3 DUMPLOC 13400 1 (SEE NOTES ON DUMPLOC)1= 3RD ERAS DUMP, 3400=ECADR OF 5TH WD
|
||||
# 4 TIME1 14120 1 TIME IN CENTISECONDS
|
||||
# 5 FIRST WORD OF EBANK X 03400 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1400 (ECADR 3400)
|
||||
# 6 2ND WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1401 (ECADR 3401)
|
||||
# 7. 3RD WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1402 (ECADR 3402)
|
||||
# . 1
|
||||
# . 1
|
||||
# . 1
|
||||
# 260D 256TH WORD OF EBANK X 03777 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1777 (ECADR 3777)
|
||||
#
|
||||
# NOTE- DUMPLOC CONTAINS THE COUNTER AND ECADR FOR EACH WORD BEING SENT.
|
||||
# THE BIT STRUCTURE OF DUMPLOC IS FOLLOWS--
|
||||
# X = NOT USED
|
||||
# X ABC EEE RRRRRRRR ABC = ERASABLE DUMP COUNTER(I.E. ABC = 0,1,2, OR 3 WHICH MEANS THAT
|
||||
# COMPLETE ERASABLE DUMP NUMBER 1,2,3, OR 4 RESPECTIVELY IS IN PROGRESS)
|
||||
# EEE = EBANK BITS
|
||||
# RRRRRRRR = RELATIVE ADDRESS WITHIN AN EBANK.
|
||||
|
||||
# Page 1101
|
||||
DNDUMPI CA ZERO # INITIALIZE DOWNLINK
|
||||
TS DUMPLOC # ERASABLE DUMP
|
||||
+2 TC SENDID # GO SEND ID AND SYNCH BITS
|
||||
CA LDNDUMP1 # SET DNTMGOTO
|
||||
TS DNTMGOTO # TO LOCATION FOR NEXT PASS
|
||||
CA TIME1 # PLACE TIME1
|
||||
XCH L # INTO L
|
||||
CA DUMPLOC # AND ECADR OF THIS EBANK INTO A
|
||||
TCF DNTMEXIT # SEND DUMPLOC AND TIME1
|
||||
|
||||
LDNDUMP ADRES DNDUMP
|
||||
LDNDUMP1 ADRES DNDUMP1
|
||||
|
||||
DNDUMP CA TWO # INCREMENT ECADR IN DUMPLOC
|
||||
ADS DUMPLOC # TO NEXT DP WORD TO BE
|
||||
MASK LOW8 # DUMPED AND SAVE IT.
|
||||
CCS A # IS THIS THE BEGINNING OF A NEW EBANK
|
||||
TCF DNDUMP2 # NO- THEN CONTINUE DUMPING
|
||||
CA DUMPLOC # YES- IS THIS THE END OF THE
|
||||
MASK DUMPCNT # N TH(N = 1 TO 4) COMPLETE ERASABLE
|
||||
MASK PRIO34 # DUMP(BIT14 FOR 4, BIT13 FOR 2 OR BIT12
|
||||
CCS A # FOR 1 COMPLETE ERASABLE DUMP(S)).
|
||||
TCF DNPHASE1 # YES- START SENDING INTERRUPTED DOWNLIST
|
||||
# AGAIN
|
||||
TCF DNDUMPI +2 # NO- GO BACK AND INITIALIZE NEXT BANK
|
||||
|
||||
DNDUMP1 CA LDNDUMP # SET DNTMGOTO
|
||||
TS DNTMGOTO # FOR WORDS 3 TO 256D OF CURRENT EBANK
|
||||
|
||||
DNDUMP2 CA DUMPLOC
|
||||
TS EBANK # SET EBANK
|
||||
MASK LOW8 # ISOLATE RELATIVE ADDRESS.
|
||||
TS Q # (NOTE: MASK INSTRUCTION IS USED TO PICK
|
||||
CA NEG0 # UP ERASABLE REGISTERS SO THAT EDITING
|
||||
TS L # REGISTERS 20-23 WILL NOT BE ALTERED.)
|
||||
INDEX Q
|
||||
EBANK= 1400 # PICK UP LOW ORDER REGISTER OF PAIR
|
||||
MASK 1401 # OF ERASABLE REGISTERS.
|
||||
XCH L
|
||||
INDEX Q # PICK UP HIGH ORDER REGISTER OF PAIR
|
||||
MASK 1400 # OF ERASABLE REGISTERS.
|
||||
EBANK= DNTMBUFF
|
||||
TCF DNTMEXIT # GO SEND THEM
|
||||
|
||||
|
||||
SENDID EXTEND # **ENTRANCE USED BY ERASABLE DUMP PROG.**
|
||||
QXCH DNTMGOTO # SET DNTMGOTO SO NEXT TIME PROG WILL GO
|
||||
CAF ERASID # TO LOCATION FOLLOWING :TC SENDID:
|
||||
|
||||
TS L # **ENTRANCE USED BY REGULAR DOWNLINK PG**
|
||||
# Page 1102
|
||||
TC WOZERO # GO SET WORD ORDER CODE TO ZERO
|
||||
CAF LOWIDCOD # PLACE SPECIAL ID CODE INTO L
|
||||
XCH L # AND ID BACK INTO A
|
||||
TCF DNTMEXIT # SEND DOWNLIST ID CODE(S).
|
411
Comanche055/DOWNLINK_LISTS.agc
Normal file
411
Comanche055/DOWNLINK_LISTS.agc
Normal file
@ -0,0 +1,411 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: DOWNLINK_LISTS.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. 170-180
|
||||
# Contact: Ron Burkey <info@sandroid.org>,
|
||||
# Fabrizio Bernardini <fabrizio@spacecraft.it>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 10/05/09 FB Transcription of Batch FB-1 Assignment.
|
||||
#
|
||||
# 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 170
|
||||
BANK 22
|
||||
SETLOC DOWNTELM
|
||||
BANK
|
||||
|
||||
EBANK= DNTMBUFF
|
||||
|
||||
# SPECIAL DOWNLINK OP CODES
|
||||
# OP CODE ADDRESS(EXAMPLE) SENDS... BIT 15 BITS 14-12 BITS 11-0
|
||||
# ------- ---------------- ---------- ------ ---------- ---------
|
||||
# 1DNADR TIME2 (2 AGC WDS) 0 0 ECADR
|
||||
# 2DNADR TEPHEM (4 AGC WDS) 0 1 ECADR
|
||||
# 3DNADR VGBODY (6 AGC WDS) 0 2 ECADR
|
||||
# 4DNADR STATE (8 AGC WDS) 0 3 ECADR
|
||||
# 5DNADR UPBUFF (10AGC WDS) 0 4 ECADR
|
||||
# 6DNADR DSPTAB (12AGC WDS) 0 5 ECADR
|
||||
# DNCHAN 30 CHANNELS 0 7 CHANNEL ADDRESS
|
||||
# DNPTR NEXTLIST POINTS TO NEXT LIST. 0 6 ADRES
|
||||
#
|
||||
# DOWNLIST FORMAT DEFINITIONS AND RULES -
|
||||
# 1. END OF A LIST = -XDNADR (X = 1 TO 6), -DNPTR, OR -DNCHAN.
|
||||
# 2. SNAPSHOT SUBLIST = LIST WHICH STARTS WITH A -1DNADR.
|
||||
# 3. SNAPSHOT SUBLIST CAN ONLY CONTAIN 1DNADRS.
|
||||
# 4. TIME2 1DNADR MUST BE LOCATED IN THE CONTROL LIST OF A DOWNLIST.
|
||||
# 5. ERASABLE DOWN TELEMETRY WORDS SHOULD BE GROUPED IN SEQUENTIAL
|
||||
# LOCATIONS AS MUCH AS POSSIBLE TO SAVE STORAGE USED BY DOWNLINK LISTS.
|
||||
# 6. THE DOWNLINK LISTS (INCLUDING SUBLISTS) ARE ORGANIZED SUCH THAT THE ITEMS LISTED FIRST (IN FRONT OF FBANK) ARE
|
||||
# SENT FIRST. EXCEPTION--- SNAPSHOT SUBLISTS. IN THE SNAPSHOT SUBLISTS THE DATA REPRESENTED BY THE FIRST
|
||||
# 11 1DNADRS IS PRESERVED (IN ORDER) IN DNTMBUFF AND SENT BY THE NEXT 11 DOWNRUPTS. THE DATA REPRESENTED BY THE
|
||||
# LIST IS SENT IMMEDIATELY.
|
||||
|
||||
COUNT 05/DLIST
|
||||
ERASZERO EQUALS 7
|
||||
SPARE EQUALS ERASZERO # USE SPARE TO INDICATE AVAILABLE SPACE
|
||||
LOWIDCOD OCT 77340 # LOW ID CODE
|
||||
|
||||
NOMDNLST EQUALS CMCSTADL # FRESH START AND POST P27 DOWNLIST
|
||||
UPDNLIST EQUALS CMENTRDL # UPDATE PROGRAM (P27) DOWNLIST
|
||||
|
||||
# Page 171
|
||||
# CSM POWERED FLIGHT DOWNLIST
|
||||
#
|
||||
# --------------------- CONTROL LIST -------------------------
|
||||
|
||||
CMPOWEDL EQUALS
|
||||
DNPTR CMPOWE01 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMPOWE02 # COLLECT SECOND SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMPOWE03 # COMMON DATA
|
||||
1DNADR TIG # TIG,+1
|
||||
1DNADR DELLT4 # DELLT4,+1
|
||||
3DNADR RTARG # RTARG,+1,+2,...+5
|
||||
1DNADR TGO # TGO,+1
|
||||
1DNADR PIPTIME1 # PIPTIME1,+1
|
||||
3DNADR DELV # DELV,+1,...+4,+5
|
||||
1DNADR PACTOFF # PACTOFF,YACTOFF
|
||||
1DNADR PCMD # PCMD,YCMD
|
||||
1DNADR CSTEER # CSTEER,+1
|
||||
3DNADR DELVEET1 # CSI DELTA VELOCITY COMPONENTS (31-33)
|
||||
6DNADR REFSMMAT # REFSMMAT,+1,...+10,+11
|
||||
DNPTR CMPOWE04 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2,TIME1
|
||||
DNPTR CMPOWE05 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMPOWE02 # COLLECT SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMPOWE03 #
|
||||
DNPTR CMPOWE06 # COMMON DATA
|
||||
1DNADR ELEV # ELEV,+1
|
||||
1DNADR CENTANG # CENTANG,+1
|
||||
1DNADR DELTAR # DELTAR,+1
|
||||
1DNADR STATE +10D # FLAGWRDS 10 AND 11
|
||||
1DNADR TEVENT # TEVENT,+1
|
||||
1DNADR PCMD # PCMD,YCMD
|
||||
1DNADR OPTMODES # OPTMODES,HOLDFLAG
|
||||
DNPTR CMPOWE07 # COMMON DATA
|
||||
3DNADR VGTIG # VGTIG,+1,...+4,+5
|
||||
-3DNADR DELVEET2 # CDH DELTA VELOCITY COMPONENTS (98-100)
|
||||
# --------------------- SUB LISTS ---------------------------
|
||||
|
||||
CMPOWE01 -1DNADR RN +2 # RN+2,+3 SNAPSHOT DATA
|
||||
1DNADR RN +4 # RN+4,+5
|
||||
1DNADR VN # VN,+1
|
||||
1DNADR VN +2 # VN+2,+3
|
||||
1DNADR VN +4 # VN+4,+5
|
||||
1DNADR PIPTIME # PIPTIME,+1
|
||||
-1DNADR RN # RN,+1
|
||||
|
||||
CMPOWE02 -1DNADR CDUZ # CDUZ,CDUT SNAPSHOT DATA
|
||||
# Page 172
|
||||
1DNADR ADOT # ADOT,+1/OGARATE,+1
|
||||
1DNADR ADOT +2 # ADOT+2,+3/OMEGAB+2,+3
|
||||
1DNADR ADOT +4 # ADOT+4,+5/OMEGAB+4,+5
|
||||
-1DNADR CDUX # CDUX,CDUY
|
||||
|
||||
CMPOWE03 2DNADR AK # AK,AK1,AK2,RCSFLAGS COMMON DATA
|
||||
-2DNADR THETADX # THETADX,THETADY,THETADZ,GARBAGE
|
||||
|
||||
CMPOWE04 5DNADR STATE # FLAGWRD0 THRU FLAGWRD9 COMMON DATA
|
||||
-6DNADR DSPTAB # DISPLAY TABLES
|
||||
|
||||
CMPOWE05 -1DNADR R-OTHER +2 # R-OTHER+2,+3 SNAPSHOT DATA
|
||||
1DNADR R-OTHER +4 # R-OTHER+4,+5
|
||||
1DNADR V-OTHER # V-OTHER,+1
|
||||
1DNADR V-OTHER +2 # V-OTHER+2,+3
|
||||
1DNADR V-OTHER +4 # V-OTHER+4,+5
|
||||
1DNADR T-OTHER # T-OTHER,+1
|
||||
-1DNADR R-OTHER # R-OTHER,+1
|
||||
|
||||
CMPOWE06 1DNADR RSBBQ # RSBBQ,+1 COMMON DATA
|
||||
3DNADR CADRFLSH # CADRFLSH,+1,+2,FAILREG,+1,+2
|
||||
-2DNADR CDUS # CDUS,PIPAX,PIPAY,PIPAZ
|
||||
|
||||
CMPOWE07 1DNADR LEMMASS # LEMMASS,CSMMASS COMMON DATA
|
||||
1DNADR DAPDATR1 # DAPDATR1,DAPDATR2
|
||||
2DNADR ERRORX # ERRORX,ERRORY,ERRORZ,GARBAGE
|
||||
3DNADR WBODY # WBODY,...+5/OMEGAC,...+5
|
||||
2DNADR REDOCTR # REDOCTR,THETAD,+1,+2
|
||||
1DNADR IMODES30 # IMODES30,IMODES33
|
||||
DNCHAN 11 # CHANNELS 11,12
|
||||
DNCHAN 13 # CHANNELS 13,14
|
||||
DNCHAN 30 # CHANNELS 30,31
|
||||
-DNCHAN 32 # CHANNELS 32,33
|
||||
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# Page 173
|
||||
# CSM COAST AND ALIGNMENT DOWNLIST
|
||||
|
||||
# --------------------- CONTROL LIST ------------------------
|
||||
|
||||
CMCSTADL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR CMCSTA01 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMCSTA02 # COLLECT SECOND SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMCSTA03 # COMMON DATA
|
||||
1DNADR TIG # TIG,+1
|
||||
1DNADR BESTI # BESTI,BESTJ
|
||||
4DNADR MARKDOWN # MARKDOWN,+1,...+5,+6,GARBAGE
|
||||
4DNADR MARK2DWN # MARK2DWN,+1,...+5,+6
|
||||
2DNADR HAPOX # APOGEE AND PERIGEE FROM R30 (28-29)
|
||||
1DNADR PACTOFF # PACTOFF, YACTOFF (30)
|
||||
3DNADR VGTIG # VGTIG,...+5
|
||||
6DNADR REFSMMAT # REFSMMAT,+1,...+10,+11
|
||||
DNPTR CMCSTA04 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2,TIME1
|
||||
DNPTR CMCSTA05 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMCSTA02 # COLLECT SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMCSTA03 # COMMON DATA
|
||||
DNPTR CMCSTA06 # COMMON DATA
|
||||
3DNADR OGC # OGC,+1,IGC,+1,MGC,+1
|
||||
1DNADR STATE +10D # FLAGWRDS 10 AND 11
|
||||
1DNADR TEVENT # TEVENT,+1
|
||||
1DNADR LAUNCHAZ # LAUNCHAZ,+1
|
||||
1DNADR OPTMODES # OPTMODES,HOLDFLAG
|
||||
DNPTR CMCSTA07 # COMMON DATA
|
||||
-6DNADR DSPTAB # DISPLAY TABLES
|
||||
|
||||
# --------------------- SUB LISTS ---------------------------
|
||||
|
||||
CMCSTA01 EQUALS CMPOWE01 # COMMON DOWNLIST DATA
|
||||
|
||||
CMCSTA02 EQUALS CMPOWE02 # COMMON DOWNLIST DATA
|
||||
|
||||
CMCSTA03 EQUALS CMPOWE03 # COMMON DOWNLIST DATA
|
||||
|
||||
CMCSTA04 EQUALS CMPOWE04 # COMMON DOWNLIST DATA
|
||||
|
||||
CMCSTA05 EQUALS CMPOWE05 # COMMON DOWNLIST DATA
|
||||
|
||||
CMCSTA06 EQUALS CMPOWE06 # COMMON DOWNLIST DATA
|
||||
|
||||
CMCSTA07 EQUALS CMPOWE07 # COMMON DOWNLIST DATA
|
||||
# Page 174
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# Page 175
|
||||
# CSM RENDEZVOUS AND PRETHRUST LIST
|
||||
|
||||
# --------------------- CONTROL LIST ------------------------
|
||||
|
||||
CMRENDDL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR CMREND01 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMREND02 # COLLECT SECOND SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMREND03 # COMMON DATA
|
||||
1DNADR TIG # TIG,+1
|
||||
1DNADR DELLT4 # DELLT4,+1
|
||||
3DNADR RTARG # RTARG,+1,...+4,+5
|
||||
1DNADR VHFTIME # VHFTIME,+1
|
||||
4DNADR MARKDOWN # MARKTIME(DP),YCDU,SCDU,ZCDU,TCDU,XCDU,RM
|
||||
1DNADR VHFCNT # VHFCNT,+1
|
||||
1DNADR TTPI # TTPI,+1
|
||||
1DNADR ECSTEER # ECSTEER,+1
|
||||
1DNADR DELVTPF # DELVTPF,+1
|
||||
2DNADR TCDH # CDH AND CSI TIME (32-33)
|
||||
1DNADR TPASS4 # TPASS4,+1
|
||||
3DNADR DELVSLV # DELVSLV,+1...+4,+5
|
||||
2DNADR RANGE # RANGE,+1,RRATE,+1
|
||||
DNPTR CMREND04 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2,TIME1
|
||||
DNPTR CMREND05 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMREND02 # COLLECT SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMREND03 # COMMON DATA
|
||||
DNPTR CMREND06 # COMMON DATA
|
||||
1DNADR DIFFALT # CDH DELTA ALTITUDE
|
||||
1DNADR CENTANG # CENTANG,+1
|
||||
1DNADR DELTAR # DELTAR,+1
|
||||
3DNADR DELVEET3 # DELVEET3,+1,...+4,+5
|
||||
1DNADR OPTMODES # OPTMODES,HOLDFLAG
|
||||
DNPTR CMREND07 # COMMON DATA
|
||||
1DNADR RTHETA # RTHETA,+1
|
||||
2DNADR LAT(SPL) # LAT(SPL),LNG(SPL),+1
|
||||
2DNADR VPRED # VPRED,+1,GAMMAEI,+1
|
||||
-1DNADR STATE +10D # FLAGWRDS 10 AND 11
|
||||
|
||||
# --------------------- SUB LISTS ----------------------------
|
||||
|
||||
CMREND01 EQUALS CMPOWE01 # COMMON DOWNLIST DATA
|
||||
|
||||
CMREND02 EQUALS CMPOWE02 # COMMON DOWNLIST DATA
|
||||
|
||||
CMREND03 EQUALS CMPOWE03 # COMMON DOWNLIST DATA
|
||||
|
||||
CMREND04 EQUALS CMPOWE04 # COMMON DOWNLIST DATA
|
||||
# Page 176
|
||||
CMREND05 EQUALS CMPOWE05 # COMMON DOWNLIST DATA
|
||||
|
||||
CMREND06 EQUALS CMPOWE06 # COMMON DOWNLIST DATA
|
||||
|
||||
CMREND07 EQUALS CMPOWE07 # COMMON DOWNLIST DATA
|
||||
|
||||
# ------------------------------------------------------------
|
||||
|
||||
# Page 177
|
||||
# CSM ENTRY AND UPDATE DOWNLIST
|
||||
#
|
||||
# --------------------- CONTROL LIST -------------------------
|
||||
|
||||
CMENTRDL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR CMENTR01 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMENTR02 # COLLECT SECOND SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMENTR03 # COMMON DATA
|
||||
2DNADR CMDAPMOD # CMDAPMOD,PREL,QREL,RREL
|
||||
1DNADR L/D1 # L/D1,+1
|
||||
6DNADR UPBUFF # UPBUFF,+1,...+10,+11
|
||||
4DNADR UPBUFF +12D # UPBUFF+12,13,...+18,+19D
|
||||
2DNADR COMPNUMB # COMPNUMB,UPOLDMOD,UPVERB,UPCOUNT
|
||||
1DNADR PAXERR1 # PAXERR1,ROLLTM
|
||||
3DNADR LATANG # LATANG,+1,RDOT,+1,THETAH,+1
|
||||
2DNADR LAT(SPL) # LAT(SPL),+1,LNG(SPL),+1
|
||||
1DNADR ALFA/180 # ALFA/180,BETA/180
|
||||
DNPTR CMENTR04 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2,TIME1
|
||||
DNPTR CMENTR05 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMENTR02 # COLLECT SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
2DNADR AK # AK,AK1,AK2,RCSFLAGS
|
||||
3DNADR ERRORX # ERRORX/Y/Z,THETADX/Y/Z
|
||||
2DNADR CMDAPMOD # CMDAPMOD,PREL,QREL,RREL
|
||||
6DNADR UPBUFF # UPBUFF+0,+1,...+10,+11D
|
||||
4DNADR UPBUFF +12D # UPBUFF+12,+13,...+18,+19D
|
||||
1DNADR LEMMASS # LEMMASS,CSMMASS
|
||||
1DNADR DAPDATR1 # DAPDATR1,DAPDATR2
|
||||
1DNADR ROLLTM # ROLLTM,ROLLC
|
||||
1DNADR OPTMODES # OPTMODES,HOLDFLAG
|
||||
3DNADR WBODY # WBODY,...+5/OMEGAC,...+5
|
||||
2DNADR REDOCTR # REDOCTR,THETAD+0,+1,+2
|
||||
1DNADR IMODES30 # IMODES30,IMODES33
|
||||
DNCHAN 11 # CHANNELS 11,12
|
||||
DNCHAN 13 # CHANNELS 13,14
|
||||
DNCHAN 30 # CHANNELS 30,31
|
||||
DNCHAN 32 # CHANNELS 32,33
|
||||
1DNADR RSBBQ # RSBBQ,+1
|
||||
3DNADR CADRFLSH # CADRFLSH,+1,+2,FAILREG,+1,+2
|
||||
1DNADR STATE +10D # FLAGWRDS 10 AND 11
|
||||
-1DNADR GAMMAEI # GAMMAEI,+1
|
||||
|
||||
# --------------------- SUB LISTS ----------------------------
|
||||
|
||||
CMENTR01 EQUALS CMPOWE01 # COMMON DOWNLIST DATA
|
||||
# Page 178
|
||||
CMENTR02 EQUALS CMPOWE02 # COMMON DOWNLIST DATA
|
||||
|
||||
CMENTR03 EQUALS CMPOWE03 # COMMON DOWNLIST DATA
|
||||
|
||||
CMENTR04 EQUALS CMPOWE04 # COMMON DOWNLIST DATA
|
||||
|
||||
CMENTR05 -1DNADR DELV # DELV,+1 SNAPSHOT DATA
|
||||
1DNADR DELV +2 # DELV+2,+3
|
||||
1DNADR DELV +4 # DELV+4,+5
|
||||
1DNADR TTE # TTE,+1
|
||||
1DNADR VIO # VIO,+1
|
||||
1DNADR VPRED # VPRED,+1
|
||||
-1DNADR PIPTIME1 # PIPTIME1,+1
|
||||
|
||||
CMENTR07 EQUALS CMPOWE07 # COMMON DOWNLIST DATA
|
||||
|
||||
# -------------------------------------------------------------
|
||||
|
||||
# Page 179
|
||||
# P22 DOWNLISTS
|
||||
#
|
||||
# --------------------- CONTROL LIST --------------------------
|
||||
|
||||
CMPG22DL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR CMPG2201 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMPG2202 # COLLECT SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMPG2203 # COMMON DATA
|
||||
6DNADR SVMRKDAT # LANDING SITE MARK DATA
|
||||
6DNADR SVMRKDAT +12D # SVMRKDAT+0...+34
|
||||
6DNADR SVMRKDAT +24D # LANDING SITE MARK DATA
|
||||
1DNADR LANDMARK # LANDMARK,GARBAGE
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
DNPTR CMPG2204 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2,TIME1
|
||||
DNPTR CMPG2205 # COLLECT SNAPSHOT
|
||||
2DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
DNPTR CMPG2202 # COLLECT SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR CMPG2203 # COMMON DATA
|
||||
DNPTR CMPG2206 # COMMON DATA
|
||||
1DNADR 8NN # 8NN,GARBAGE
|
||||
1DNADR STATE +10D # FLAGWRDS 10 AND 11
|
||||
3DNADR RLS # RLS,+1,...+4,+5
|
||||
1DNADR SPARE
|
||||
1DNADR OPTMODES # OPTMODES,HOLDFLAG
|
||||
DNPTR CMPG2207 # COMMON DATA
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
-1DNADR SPARE
|
||||
|
||||
# --------------------- SUB LISTS --------------------------
|
||||
|
||||
CMPG2201 EQUALS CMPOWE01 # COMMON DOWNLIST DATA
|
||||
|
||||
CMPG2202 EQUALS CMPOWE02 # COMMON DOWNLIST DATA
|
||||
|
||||
CMPG2203 EQUALS CMPOWE03 # COMMON DOWNLIST DATA
|
||||
# Page 180
|
||||
CMPG2204 EQUALS CMPOWE04 # COMMON DOWNLIST DATA
|
||||
|
||||
CMPG2205 -1DNADR LONG # LONG,+1 SNAPSHOT DATA
|
||||
1DNADR ALT # ALT,+1
|
||||
-1DNADR LAT # LAT,+1
|
||||
|
||||
CMPG2206 EQUALS CMPOWE06 # COMMON DOWNLIST DATA
|
||||
|
||||
CMPG2207 EQUALS CMPOWE07 # COMMON DOWNLIST DATA
|
||||
|
||||
# -----------------------------------------------------------
|
||||
|
||||
DNTABLE GENADR CMCSTADL
|
||||
GENADR CMENTRDL
|
||||
GENADR CMRENDDL
|
||||
GENADR CMPOWEDL
|
||||
GENADR CMPG22DL
|
||||
|
||||
# -----------------------------------------------------------
|
||||
|
299
Comanche055/ENTRY_LEXICON.agc
Normal file
299
Comanche055/ENTRY_LEXICON.agc
Normal file
@ -0,0 +1,299 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: ENTRY_LEXICON.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. 837-843
|
||||
# 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 837
|
||||
# VARIABLE DESCRIPTION MAXIMUM VALUE * COMPUTER NAME
|
||||
# -------- ----------- ------- ------- -------- ----
|
||||
#
|
||||
# _
|
||||
# URT0 INITIAL TARGET VECTOR 2 (UNIT VECTOR) = RTINIT
|
||||
# _
|
||||
# UZ UNIT VECTOR NORTH 1 = UNITW
|
||||
# _
|
||||
# V VELOCITY VECTOR 2 VSAT = VEL
|
||||
# _
|
||||
# R POSITION VECTOR 2 EXP 29 METERS = RN
|
||||
# _
|
||||
# VI INERTIAL VELOCITY 128 M/CENTISEC = VN
|
||||
# _
|
||||
# RTE VECTOR EAST AT INITIAL TARGET 2 = RTEAST
|
||||
# _
|
||||
# UTR NORMAL TO RTE AND UZ 2 = RTNORM
|
||||
# _
|
||||
# URT TARGET VECTOR 2 = RT
|
||||
# _
|
||||
# UNI UNIT NORMAL TO TRAJECTORY PLANE 2
|
||||
# _
|
||||
# DELV INTEGRATED ACCEL. FROM PIPAS 5.85 16384 CM/S
|
||||
# _
|
||||
# G GRAVITY VECTOR 128 M/CENTISEC = GDT/2
|
||||
#
|
||||
# A0 INITIAL DRAG FOR UPCONTRL 805 FPSS FPSS=FT/SEC/SEC
|
||||
# AHOOKDV TERM IN GAMMAL CALC. = AHOOK DVL 16
|
||||
# A1 DRAG VALUE IN FACTOR CALCULATION 805 FPSS
|
||||
# ALP CONST FOR UPCONTRL 1
|
||||
# ASKEP KEPLER RANGE 21600 NM NM = NAUTICAL MILE
|
||||
# ASP1 FINAL PHASE RANGE 21600 NM
|
||||
# ASPUP UP-RANGE 21600 NM
|
||||
# ASP3 GAMMA CORRECTION 21600 NM
|
||||
# ASPDWN RANGE DOWN TO PULL-UP 21600 NM
|
||||
# ASP PREDICTED RANGE 21600 NM NOT STORED
|
||||
# COSG COSINE(GAMMAL) 2 = COSG/2
|
||||
# C/D0 RECIPROCAL DRAG, -4/D0 B-8 64/FPSS
|
||||
# D TOTAL ACCELERATION 805 FPSS
|
||||
# D0 CONTROLLED CONSTANT D 805 FPSS
|
||||
# DHOOK TERM IN GAMMAL COMPUTATION 805 FPSS
|
||||
# DIFF THETNM-ASP (RANGE DIFFERENCE) 21600 NM
|
||||
# DIFFOLD PREVIOUS VALUE OF DIFF 21600 NM
|
||||
# DLEWD CHANGE IN LEWD 1
|
||||
# DR REFERENCE DRAG FOR DOWNCONTROL 805 FPSS NOT STORED
|
||||
# DREFR REFERENCE DRAG 805 FPSS NOT STORED
|
||||
# DVL VS1-VL 2 VSAT
|
||||
# E ECCENTRICITY 4 NOT STORED
|
||||
# F1 DRANGE/D DRAG (FINAL PHASE) 2700/805 = FX +5
|
||||
# F2 DRANGE/D RDOT (FINAL PHASE) 2700/2VS NM/FPS = FX +4
|
||||
# Page 838
|
||||
# F3 DRANGE/D (L/D) 2700 NM = FX
|
||||
# FACT1 CONST FOR UPCONTRL 805 FPSS
|
||||
# FACT2 CONST FOR UPCONTRL 1/805 FPSS
|
||||
# FACTOR USED IN UPCONTRL 1 * MAXIMUM VALUE DENOTES UNSCALED
|
||||
# GAMMAL FLIGHT PATH ANGLE AT VL 1 RADIAN VARIABLE VALUE WHEN SCALED
|
||||
# GAMMAL1 SIMPLE FORM OF GAMMAL 1 RADIAN VARIABLE HAS MAXIMUM VALUE OF ONE.
|
||||
# Page 839
|
||||
#
|
||||
# HEADSUP INDICATOR FOR INITIAL ROLL 1
|
||||
# KA DRAG TO LIFT UP IF DOWN 805 FPSS = KAT
|
||||
# KLAT LATERAL SWITCH GAIN 1 (NOM = .0125)
|
||||
# K2ROLL INDICATOR FOR ROLL SWITCH
|
||||
# LAD MAX L/D (MIN ACTUAL VEHICLE L/D) 1
|
||||
# LADPAD NOMINAL VEHICLE L/D, SP PAD LOAD 1 (NOM = 0.3)
|
||||
# LATANG LATERAL RANGE 4 RADIANS
|
||||
# LEQ EXCESS C.F. OVER GRAV=(VSQ-1)GS 128.8 FPSS
|
||||
# LEWD UPCONTROL REFERENCE L/D 1
|
||||
# LOD FINAL PHASE L/D 1 (NOM = 0.18)
|
||||
# LODPAD FINAL PHASE L/D, SP PAD LOAD 1
|
||||
# L/D DESIRED LIFT TO DRAG RATIO 1
|
||||
# (VERTICAL PLANE)
|
||||
# L/D1 TEMP STORAGE FOR L/D IN LATERAL 1
|
||||
# L/DCMINR LAD COS(15DEG) 1 (NOM = 0.2895)
|
||||
# PREDANGL PREDICTED RANGE (FINAL PHASE) 2700 NM = PREDANG
|
||||
# Q2 FINAL PHASE RANGE -23500 Q3 21600 NM
|
||||
# Q2 = FCN(LAD)
|
||||
# Q7 MINIMUM DRAG FOR UPCONTROL 805 FPSS
|
||||
# RDOT ALTITUDE RATE 2 VSAT
|
||||
# RDOTREF REFERENCE RDOT FOR UPCONTROL 2 VSAT
|
||||
# RDTR REFERENCE RDOT FOR DOWNCONT 2 VSAT NOT SAVED
|
||||
# ROLLC ROLL COMMAND 1 REVOLUTION
|
||||
# RTOGO RANGE TO GO (FINAL PHASE) 2700 NM = FX +2
|
||||
# SL SINE OF LATITUDE 1 NOT SAVED
|
||||
# T TIME B 28 CENTISEC = TIME2,TIME1
|
||||
# THETA DESIRED RANGE (RADIANS) 2 PI RADIANS = THETAH
|
||||
# THETNM DESIRED RANGE (NM) 21600 NM NON EXISTENT
|
||||
# V VELOCITY MAGNITUDE 2 VSAT
|
||||
# V1 INITIAL VELOCITY FOR UPCONTROL 2 VSAT
|
||||
# VL EXIT VELOCITY FOR UPCONTROL 2 VSAT
|
||||
# VREF REFERENCE VELOCITY FOR UPCONTROL 2 VSAT
|
||||
# VS1 VSAT OR V1, WHICHEVER IS SMALLER 2 VSAT
|
||||
# 2 2
|
||||
# VBARS VL /VSAT 4
|
||||
# 2 2
|
||||
# VSQ NORMALISED VEL. SQUARED = V /VSAT 4 = VSQUARE
|
||||
# WT EARTH RATE TIMES TIME 1 REVOLUTION NOT SAVED
|
||||
# = WIE (DTEAROT)
|
||||
# X INTERMEDIATE VARIABLE IN G-LIMITER 2 VSAT NOT SAVED
|
||||
# Y LATERAL MISS LIMIT 4 RADIANS NOT SAVED
|
||||
|
||||
# Page 840
|
||||
# EXTRA COMPUTER ERASABLE LOCATIONS NOT SHOWN ON FLOW CHARTS
|
||||
# ----------------------------------------------------------
|
||||
#
|
||||
# VARIABLE DESCRIPTION MAXIMUM VALUE
|
||||
# -------- ----------- -------------
|
||||
#
|
||||
# GOTOADDR ADDRESS SELECTED BY SEQUENCER
|
||||
# XPIPBUF BUFFER TO STORE X PIPA COUNTS
|
||||
# YPIPBUF BUFFER TO STORE Y PIPA COUNTS
|
||||
# ZPIPBUF BUFFER TO STORE Z PIPA COUNTS
|
||||
# PIPCTR COUNTS PASSES THRU PIPA READ ROUTINE
|
||||
# JJ INDEX IN FINAL PHASE TABLE LOOK-UP
|
||||
# MM INDEX IN FINAL PHASE TABLE LOOK-UP
|
||||
# GRAD INTERPOLATION FACTOR IN FINAL PHASE
|
||||
# FX DRANGE/D L/D = F3 2700 NM
|
||||
# FX +1 AREF 805 FPSS
|
||||
# FX +2 RTOGO 2700 NM
|
||||
# FX +3 RDOTREF VSAT/4
|
||||
# FX +4 DRANGE/D RDOT = F2 21600/2VS NM/FPS
|
||||
# FX +5 DRANGE/D DRAG = F1 2700/805 NM/FPSS
|
||||
# TEM1B TEMPORARY LOCATION
|
||||
# TIME/RTO TIME OF INITIAL TARGET RTINIT B 28 CENTISEC
|
||||
# DTEAROT EST TIME BETWEEN RTINIT AND RT B 28 CENTISEC
|
||||
#
|
||||
# _
|
||||
# UNITV UNIT V VECTOR 2
|
||||
# _
|
||||
# UNITR UNIT R VECTOR 2
|
||||
# _
|
||||
# -VREL NEGATIVE VELOCITY REL TO ATMOSP 2 VSAT
|
||||
#
|
||||
# COMPUTER SWITCHES INITIAL STATE CM/FLAGS = STATE +6
|
||||
# ----------------- ------------- -------------------
|
||||
#
|
||||
# ENTRYDSP DO ENTRY DISPLAY, IF SET NON-BRANCH (1) 92D, BIT13
|
||||
# GONEPAST INDICATES OVERSHOOT OF TARGET NON-BRANCH (0) 95D, BIT10
|
||||
# RELVELSW RELATIVE VELOCITY SWITCH NON-BRANCH (0) 96D, BIT 9
|
||||
# EGSW FINAL PHASE SWITCH NON-BRANCH (0) 97D, BIT 8
|
||||
# FIRSTPAS INITIAL PASS THRU HUNTEST NON-BRANCH (0) 98D, BIT 7
|
||||
# HIND INDICATES ITERATION IN HUNTEST NON-BRANCH (0) 99D, BIT 6
|
||||
# INRLSW INDICATES INIT ROLL ATTITUDE SET NON-BRANCH (0) 100D, BIT 5
|
||||
# LATSW INHIBIT DOWNLIFT SWITCH IF NOT SET BRANCH (1) 101D, BIT 4
|
||||
# .05GSW INDICATES DRAG EXCEEDS .05 GS BRANCH (0) 102D, BIT 3
|
||||
#
|
||||
# GONEBY INDICATES GONE PAST TARGET (SET) SELF-INITIALIZING 112D, BIT 8
|
||||
|
||||
# Page 841
|
||||
# CONSTANTS AND GAINS VALUE
|
||||
# ------------------- -----
|
||||
#
|
||||
# C1 FACTOR IN ALP COMPUTATION 1.25
|
||||
# C16 CONSTD GAIN ON DRAG .01
|
||||
# C17 CONSTD GAIN ON RDOT .001
|
||||
# C18 BIAS VEL. FOR FINAL PHASE START 500 FPS
|
||||
# C20 MAX DRAG FOR DOWN-LIFT 175 FPSS
|
||||
# CHOOK FACTOR IN AHOOK COMPUTATION .25
|
||||
# CH1 FACTOR IN GAMMAL COMPUTATION 1.0
|
||||
# COS15 COS( 15 DEG) .965
|
||||
# DLEWD0 INITIAL VARIATION IN LEWD -.05
|
||||
# D2 DRAG TO CHANGE LEWD 175 FPSS
|
||||
# DT COMPUTATION CYCLE TIME INTERVAL 2 SEC.
|
||||
# GMAX MAXIMUM ACCELERATION 257.6 FPSS (8 G-S)
|
||||
# KA1 FACTOR IN KA CALC 1.3 GS
|
||||
# KA2 FACTOR IN KA CALC .2 GS
|
||||
# KA3 FACTOR IN D0 CALC 90 FPSS
|
||||
# KA4 FACTOR IN D0 CALC 40 FPSS
|
||||
# KB1 OPTIMIZED UPCONTROL GAIN 3.4
|
||||
# KB2 OPTIMIZED UPCONTROL GAIN .0034
|
||||
# KDMIN INCREMENT ON Q7 TO DETECT END OF KEPLER PHASE .5 FPSS
|
||||
# KTETA TIME OF FLIGHT CONSTANT 1000
|
||||
# KLAT1 FACTOR IN KLAT CALC 1/24
|
||||
# K44 GAIN USED IN INITIAL ROLL SECTION 19749550 FPS
|
||||
# LATBIAS LATERAL SWITCH BIAS TERM .41252961 NM
|
||||
# LEWD1 NOMINAL UPCONTROL L/D .15
|
||||
# POINT1 FACTOR TO REDUCE UPCONTROL GAIN .1
|
||||
# Q2 FINAL PHASE RANGE - 23500 Q3 -1002 NM
|
||||
# Q3 FINAL PHASE DRANGE/D V .07 NM/FPS
|
||||
# Q5 FINAL PHASE DRANGE/D GAMMA 7050 NM/RAD
|
||||
# Q6 FINAL PHASE INITIAL FLIGHT PATH ANGLE .0349 RAD
|
||||
# Q7F MIN DRAG FOR UPCONTROL 6 FPSS
|
||||
# Q7MIN MIN VALUE FOR Q7 IN FACTOR CALCULATION 40 FPSS
|
||||
# Q19 FACTOR IN GAMMAL1 CALCULATION .5
|
||||
# Q21 FACTOR IN Q2 CALCULATION. 1000 NM
|
||||
# Q22 FACTOR IN Q2 CALCULATION. -1302 NM
|
||||
# VFINAL1 VELOCITY TO START FINAL PHASE ON INITIAL ENTRY 27000 FPS
|
||||
# VFINAL FACTOR IN INITIAL UP-DOWN CALC 26600 FPS
|
||||
# VLMIN MINIMUM VL 18000 FPS
|
||||
# VMIN VELOCITY TO SWITCH TO RELATIVE VEL VSAT/2
|
||||
# VRCONTRL RDOT TO START INTO HUNTEST 700 FPS
|
||||
# VRCONT = COMPUTER NAME
|
||||
# 25NM TOLERANCE TO STOP RANGE ITERATION 25 NM
|
||||
# VQUIT VELOCITY TO STOP STEERING 1000 FPS
|
||||
|
||||
# Page 842
|
||||
# CONVERSION FACTORS AND SCALING CONSTANTS
|
||||
# ---------- ------- --- ------- ---------
|
||||
#
|
||||
# ATK ANGLE IN RAD TO NM 3437.7468 NM/RAD
|
||||
# G5 NOMINAL G VALUE FOR SCALING 32.2 FPSS
|
||||
# H5 ATMOSPHERE SCALE HEIGHT 28500 FT
|
||||
# J GRAVITY HARMONIC COEFFICIENT .00162346
|
||||
# KWE EQUATORIAL EARTH RATE 1546.70168 FPS
|
||||
# MUE EARTH GRAVITATIONAL CONSTANT 3.986032233 E 14 CUBIC M/ SEC SEC
|
||||
# RE EARTH RADIUS 21202900 FT
|
||||
# REQ EARTH EQUATORIAL RADIUS 20925738.2 FT
|
||||
# VSAT SATELLITE VELOCITY AT RE 25766.1973 FPS
|
||||
# WIE EARTH RATE .0000729211505 RAD/SEC
|
||||
#
|
||||
# (END GSOP AS-278, VOL 1, FIG. 5.6-3 CONSTANTS,GAINS, ETC.)
|
||||
#
|
||||
#
|
||||
# DISPLAY QUANTITIES
|
||||
# ------------------
|
||||
#
|
||||
# (SEE SECTION 4 OF THE GSOP FOR SIGN CONVENTIONS.)
|
||||
#
|
||||
# VARIABLE DESCRIPTION MAXIMUM VALUE
|
||||
# -------- ----------- -------------
|
||||
#
|
||||
# GMAX PREDICTED MAXIMUM ENTRY ACCEL 163.84 GS N 60
|
||||
# VPRED PREDICTED VELOCITY AT ALTITUDE 128 M/CENTISEC N 60
|
||||
# 400K FT ABOVE FISCHER RADIUS.
|
||||
# GAMMAEI PREDICTED GAMMA AT ALTITUDE 1 REVOLUTION N 60
|
||||
# 400K FT ABOVE FISCHER RADIUS.
|
||||
# D DRAG ACCELERATION 805 FPSS N 64
|
||||
# VMAGI INERTIAL VELOCITY MAGNITUDE 128 M/CENTISEC N 64, N 68
|
||||
# THETAH DESIRED RANGE ANGLE NM 1 REVOLUTION N 64, N 67
|
||||
# LAT PRESENT LATITUDE 1 REVOLUTION N 67
|
||||
# LONG PRESENT LONGITUDE 1 REVOLUTION N 67
|
||||
# RTOGO RANGE ANGLE TO SPLASH FROM 1 REVOLUTION N 63
|
||||
# EMSALT FT ABOVE FISCHER RADIUS. (IN NM)
|
||||
# VIO PREDICTED VELOCITY AT ALTITUDE 128 M/CENTISEC N 63
|
||||
# EMSALT FT ABOVE FISCHER RADIUS.
|
||||
# TTE TIME OF FREE FALL TO ALT B 28 CENTISEC N 63
|
||||
# EMSALT FT ABOVE FISCHER RADIUS.
|
||||
# ROLLC ROLL COMMAND 1 REVOLUTION N 66, N 68, N 69
|
||||
# LATANG CROSS-RANGE ERROR (XRNGERR) 4 RADIANS N 66
|
||||
# DNRNGERR DOWN RANGE ERROR 1 REVOLUTION N 66
|
||||
# (PREDANG - THETAH IN NM)
|
||||
# HDOT ALTITUDE RATE 128 M/CENTISEC N 68
|
||||
# Q7 MINIMUM DRAG FOR UPCONTROL 805 FPSS N 69
|
||||
# VL EXIT VELOCITY FOR UP-CONTROL 2 VSAT N 69
|
||||
|
||||
# Page 843
|
||||
# BODY ATTITUDE QUANTITIES (CM/POSE)
|
||||
# ----------------------------------
|
||||
#
|
||||
# VARIABLE DESCRIPTION MAXIMUM VALUE
|
||||
# -------- ---------- ------- -----
|
||||
#
|
||||
# _
|
||||
# -VREL NEGATIVE VELOCITY REL TO ATMOS. 2 VSAT
|
||||
# _
|
||||
# OLDUYA USED FOR UYA BELOW 1000 FPS 2
|
||||
# _
|
||||
# UXA/2 UNIT VECTOR TRIAD 2
|
||||
# _
|
||||
# UYA/2 BASED ON 2
|
||||
# _
|
||||
# UZA/2 THE TRAJECTORY. 2
|
||||
# _
|
||||
# UBX/2 UNIT VECTOR 2
|
||||
# _
|
||||
# UBY/2 BODY TRIAD 2
|
||||
# _
|
||||
# UBZ/2 FOR CM. 2
|
3785
Comanche055/ERASABLE_ASSIGNMENTS.agc
Normal file
3785
Comanche055/ERASABLE_ASSIGNMENTS.agc
Normal file
File diff suppressed because it is too large
Load Diff
496
Comanche055/EXECUTIVE.agc
Normal file
496
Comanche055/EXECUTIVE.agc
Normal file
@ -0,0 +1,496 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: EXECUTIVE.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: 1208-1220
|
||||
# Mod history: 2009-05-14 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 1208
|
||||
BLOCK 02
|
||||
|
||||
# TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
|
||||
|
||||
COUNT 02/EXEC
|
||||
|
||||
NOVAC INHINT
|
||||
AD FAKEPRET # LOC(MPAC +6) - LOC(QPRET)
|
||||
TS NEWPRIO # PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
|
||||
|
||||
EXTEND
|
||||
INDEX Q # Q WILL BE UNDISTURBED THROUGHOUT.
|
||||
DCA 0 # 2CADR OF JOB ENTERED.
|
||||
DXCH NEWLOC
|
||||
CAF EXECBANK
|
||||
XCH FBANK
|
||||
TS EXECTEM1
|
||||
TCF NOVAC2 # ENTER EXECUTIVE BANK.
|
||||
|
||||
# TO ENTER A JOB REQUEST REQUIRING A VAC AREA - E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
|
||||
|
||||
FINDVAC INHINT
|
||||
TS NEWPRIO
|
||||
EXTEND
|
||||
INDEX Q
|
||||
DCA 0
|
||||
SPVACIN DXCH NEWLOC
|
||||
CAF EXECBANK
|
||||
XCH FBANK
|
||||
TCF FINDVAC2 # OFF TO EXECUTIVE SWITCHED-BANK.
|
||||
|
||||
# TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
|
||||
# USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
|
||||
|
||||
SPVAC XCH Q
|
||||
AD NEG2
|
||||
XCH Q
|
||||
TCF SPVACIN
|
||||
|
||||
# TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
|
||||
|
||||
CHANG1 LXCH Q
|
||||
CAF EXECBANK
|
||||
XCH BBANK
|
||||
TCF CHANJOB
|
||||
|
||||
# TO SUSPEND AN INTERPRETIVE JOB:
|
||||
|
||||
CHANG2 CS LOC # NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
|
||||
# ITRACE (4) REFERS TO "CHANG2".
|
||||
# Page 1209
|
||||
TS L
|
||||
+2 CAF EXECBANK
|
||||
TS BBANK
|
||||
TCF CHANJOB -1
|
||||
|
||||
# Page 1210
|
||||
# TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
|
||||
|
||||
JOBSLEEP TS LOC
|
||||
CAF EXECBANK
|
||||
TS FBANK
|
||||
TCF JOBSLP1
|
||||
|
||||
# TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
|
||||
|
||||
JOBWAKE INHINT
|
||||
TS NEWLOC
|
||||
CS TWO # EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
|
||||
ADS Q
|
||||
CAF EXECBANK
|
||||
XCH FBANK
|
||||
TCF JOBWAKE2
|
||||
|
||||
# TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
|
||||
|
||||
PRIOCHNG INHINT # NEW PRIORITY ARRIVES IN A. RETURNS TO
|
||||
TS NEWPRIO # CALLER AS SOON AS NEW JOB PRIORITY IS
|
||||
CAF EXECBANK # HIGHEST. PREPARE FOR POSSIBLE BASIC-
|
||||
XCH BBANK # STYLE CHANGE-JOB.
|
||||
TS BANKSET
|
||||
CA Q
|
||||
TCF PRIOCH2
|
||||
|
||||
# TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
|
||||
|
||||
ENDOFJOB CAF EXECBANK
|
||||
TS FBANK
|
||||
TCF ENDJOB1
|
||||
|
||||
ENDFIND CA EXECTEM1 # RETURN TO CALLER AFTER JOB ENTRY
|
||||
TS FBANK # COMPLETE.
|
||||
TCF Q+2
|
||||
EXECBANK CADR FINDVAC2
|
||||
|
||||
FAKEPRET ADRES MPAC -36D # LOC(MPAC +6) - LOC(QPRET)
|
||||
|
||||
# Page 1211
|
||||
# LOCATE AN AVAILABLE VAC AREA.
|
||||
|
||||
BANK 01
|
||||
COUNT 01/EXEC
|
||||
|
||||
FINDVAC2 TS EXECTEM1 # (SAVE CALLER'S BANK FIRST.)
|
||||
CCS VAC1USE
|
||||
TCF VACFOUND
|
||||
CCS VAC2USE
|
||||
TCF VACFOUND
|
||||
CCS VAC3USE
|
||||
TCF VACFOUND
|
||||
CCS VAC4USE
|
||||
TCF VACFOUND
|
||||
CCS VAC5USE
|
||||
TCF VACFOUND
|
||||
TC BAILOUT
|
||||
OCT 1201 # NO VAC AREAS.
|
||||
|
||||
VACFOUND AD TWO # RESERVE THIS VAC AREA BY STORING A ZERO
|
||||
ZL # IN ITS VAC USE REGISTER AND STORE THE
|
||||
INDEX A # ADDRESS OF THE FIRST WORD OF IT IN THE
|
||||
LXCH 0 -1 # LOW NINE BITS OF THE PRIORITY WORD.
|
||||
ADS NEWPRIO
|
||||
|
||||
NOVAC2 CAF ZERO # NOVAC ENTERS HERE. FIND A CORE SET.
|
||||
TS LOCCTR
|
||||
CAF NO.CORES # SEVEN SETS OF ELEVEN REGISTERS EACH.
|
||||
NOVAC3 TS EXECTEM2
|
||||
INDEX LOCCTR
|
||||
CCS PRIORITY # EACH PRIORITY REGISTER CONTAINS -0 IF
|
||||
TCF NEXTCORE # THE CORRESPONDING CORE SET IS AVAILABLE.
|
||||
NO.CORES DEC 6
|
||||
TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
|
||||
# BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
|
||||
|
||||
# Page 1212
|
||||
CORFOUND CA NEWPRIO # SET THE PRIORITY OF THIS JOB IN THE CORE
|
||||
INDEX LOCCTR # SET'S PRIORITY REGISTER AND SET THE
|
||||
TS PRIORITY # JOB'S PUSH-DOWN POINTER AT THE BEGINNING
|
||||
MASK LOW9 # OF THE WORK AREA AND OVERFLOW INDICATOR
|
||||
INDEX LOCCTR
|
||||
TS PUSHLOC # OFF TO PREPARE FOR INTERPRETIVE PROGRAMS
|
||||
|
||||
CCS LOCCTR # IF CORE SET ZERO IS BEING LOADED, SET UP
|
||||
TCF SETLOC # OVFIND AND FIXLOC IMMEDIATELY.
|
||||
TS OVFIND
|
||||
CA PUSHLOC
|
||||
TS FIXLOC
|
||||
|
||||
SPECTEST CCS NEWJOB # SEE IF ANY ACTIVE JOBS WAITING (RARE).
|
||||
TCF SETLOC # MUST BE AWAKENED BUT UNCHANGED JOB.
|
||||
TC CCSHOLE
|
||||
TC CCSHOLE
|
||||
TS NEWJOB # +0 SHOWS ACTIVE JOB ALREADY SET.
|
||||
DXCH NEWLOC
|
||||
DXCH LOC
|
||||
TCF ENDFIND
|
||||
|
||||
SETLOC DXCH NEWLOC # SET UP THE LOCATION REGISTERS FOR THIS
|
||||
INDEX LOCCTR
|
||||
DXCH LOC
|
||||
INDEX NEWJOB # THIS INDEX INSTRUCTION INSURES THAT THE
|
||||
CS PRIORITY # HIGHEST ACTIVE PRIORITY WILL BE COMPARED
|
||||
AD NEWPRIO # WITH THE NEW PRIORITY TO SEE IF NEWJOB
|
||||
EXTEND # SHOULD BE SET TO SIGNAL A SWITCH.
|
||||
BZMF ENDFIND
|
||||
CA LOCCTR # LOCCTR IS LEFT SET AT THIS CORE SET IF
|
||||
TS NEWJOB # THE CALLER WANTS TO LOAD ANY MPAC
|
||||
TCF ENDFIND # REGISTERS, ETC.
|
||||
|
||||
NEXTCORE CAF COREINC
|
||||
ADS LOCCTR
|
||||
CCS EXECTEM2
|
||||
TCF NOVAC3
|
||||
TC BAILOUT # NO CORE SETS.
|
||||
OCT 1202
|
||||
# Page 1213
|
||||
# THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
|
||||
|
||||
-2 LXCH LOC
|
||||
-1 CAE BANKSET # BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
|
||||
CHANJOB INHINT
|
||||
EXTEND
|
||||
ROR SUPERBNK # PICK UP CURRENT SBANK FOR BBCON
|
||||
XCH L # LOC IN A AND BBCON IN L.
|
||||
+4 INDEX NEWJOB # SWAP LOC AND BANKSET.
|
||||
DXCH LOC
|
||||
DXCH LOC
|
||||
|
||||
CAE BANKSET
|
||||
EXTEND
|
||||
WRITE SUPERBNK # SET SBANK FOR NEW JOB.
|
||||
DXCH MPAC # SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
|
||||
INDEX NEWJOB
|
||||
DXCH MPAC
|
||||
DXCH MPAC
|
||||
DXCH MPAC +2
|
||||
INDEX NEWJOB
|
||||
DXCH MPAC +2
|
||||
DXCH MPAC +2
|
||||
DXCH MPAC +4
|
||||
INDEX NEWJOB
|
||||
DXCH MPAC +4
|
||||
DXCH MPAC +4
|
||||
DXCH MPAC +6
|
||||
INDEX NEWJOB
|
||||
DXCH MPAC +6
|
||||
DXCH MPAC +6
|
||||
|
||||
CAF ZERO
|
||||
XCH OVFIND # MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
|
||||
EXTEND
|
||||
BZF +3
|
||||
CS PUSHLOC
|
||||
TS PUSHLOC
|
||||
|
||||
DXCH PUSHLOC
|
||||
INDEX NEWJOB
|
||||
DXCH PUSHLOC
|
||||
DXCH PUSHLOC # SWAPS PUSHLOC AND PRIORITY.
|
||||
CAF LOW9 # SET FIXLOC TO BASE OF VAC AREA.
|
||||
MASK PRIORITY
|
||||
TS FIXLOC
|
||||
|
||||
CCS PUSHLOC # SET OVERFLOW INDICATOR ACCORDING TO
|
||||
CAF ZERO
|
||||
TCF ENDPRCHG -1
|
||||
|
||||
# Page 1214
|
||||
CS PUSHLOC
|
||||
TS PUSHLOC
|
||||
CAF ONE
|
||||
XCH OVFIND
|
||||
TS NEWJOB
|
||||
|
||||
ENDPRCHG RELINT
|
||||
DXCH LOC # BASIC JOBS HAVE POSITIVE ADDRESSES, SO
|
||||
EXTEND # DISPATCH WITH A DTCB.
|
||||
BZMF +2 # IF INTERPRETIVE, SET UP EBANK, ETC.
|
||||
DTCB
|
||||
# Page 1215
|
||||
COM # EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
|
||||
AD ONE
|
||||
TS LOC # RESUME.
|
||||
TCF INTRSM
|
||||
|
||||
# COMPLETE JOBSLEEP PREPARATIONS.
|
||||
|
||||
JOBSLP1 INHINT
|
||||
CS PRIORITY # NNZ PRIORITY SHOWS JOB ASLEEP.
|
||||
TS PRIORITY
|
||||
CAF LOW7
|
||||
MASK BBANK
|
||||
EXTEND
|
||||
ROR SUPERBNK # SAVE OLD SUPERBANK VALUE.
|
||||
TS BANKSET
|
||||
CS ZERO
|
||||
JOBSLP2 TS BUF +1 # HOLDS - HIGHEST PRIORITY.
|
||||
TCF EJSCAN # SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
|
||||
|
||||
NUCHANG2 INHINT # QUICK... DONT LET NEWJOB CHANGE TO +0 .
|
||||
CCS NEWJOB
|
||||
TCF +3 # NEWJOB STILL PNZ
|
||||
RELINT # NEWJOB HAS CHANGED TO +0. WAKE UP JOB
|
||||
TCF ADVAN +2 # VIA NUDIRECT. (VERY RARE CASE.)
|
||||
|
||||
CAF TWO
|
||||
EXTEND
|
||||
WOR DSALMOUT # TURN ON ACTIVITY LIGHT
|
||||
DXCH LOC # AND SAVE ADDRESS INFO FOR BENEFIT OF
|
||||
TCF CHANJOB + 4 # POSSIBLE SLEEPING JOB.
|
||||
|
||||
# Page 1216
|
||||
# TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP. IF THE FCADR IN THE
|
||||
# LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED. IF NO JOB IS FOUND,
|
||||
# LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
|
||||
|
||||
JOBWAKE2 TS EXECTEM1
|
||||
CAF ZERO # BEGIN CORE SET SCAN.
|
||||
TS LOCCTR
|
||||
CAF NO.CORES
|
||||
JOBWAKE4 TS EXECTEM2
|
||||
INDEX LOCCTR
|
||||
CCS PRIORITY
|
||||
TCF JOBWAKE3 # ACTIVE JOB - CHECK NEXT CORE SET.
|
||||
COREINC DEC 12 # 12 REGISTERS PER CORE SET.
|
||||
TCF WAKETEST # SLEEPING JOB - SEE IF CADR MATCHES.
|
||||
|
||||
JOBWAKE3 CAF COREINC
|
||||
ADS LOCCTR
|
||||
CCS EXECTEM2
|
||||
TCF JOBWAKE4
|
||||
CS ONE # EXIT IF SLEEPING JOB NOT FOUND.
|
||||
TS LOCCTR
|
||||
TCF ENDFIND
|
||||
|
||||
WAKETEST CS NEWLOC
|
||||
INDEX LOCCTR
|
||||
AD LOC
|
||||
EXTEND
|
||||
BZF +2 # IF MATCH.
|
||||
TCF JOBWAKE3 # EXAMINE NEXT CORE SET IF NO MATCH.
|
||||
|
||||
INDEX LOCCTR # RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
|
||||
CS PRIORITY
|
||||
TS NEWPRIO
|
||||
INDEX LOCCTR
|
||||
TS PRIORITY
|
||||
|
||||
CS FBANKMSK # MAKE UP THE 2CADR OF THE WAKE ADDRESS
|
||||
MASK NEWLOC # USING THE CADR IN NEWLOC AND THE EBANK
|
||||
AD 2K # HALF OF BBANK SAVED IN BANKSET.
|
||||
XCH NEWLOC
|
||||
MASK FBANKMSK
|
||||
INDEX LOCCTR
|
||||
AD BANKSET
|
||||
TS NEWLOC +1
|
||||
|
||||
CCS LOCCTR # SPECIAL TREATMENT IF THIS JOB WAS
|
||||
TCF SETLOC # ALREADY IN THE RUN (0) POSITION.
|
||||
TCF SPECTEST
|
||||
|
||||
# Page 1217
|
||||
# PRIORITY CHANGE. CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
|
||||
|
||||
PRIOCH2 TS LOC
|
||||
CAF ZERO # SET FLAG TO TELL ENDJOB SCANNER IF THIS
|
||||
TS BUF # JOB IS STILL HIGHEST PRIORITY.
|
||||
CAF LOW9
|
||||
MASK PRIORITY
|
||||
AD NEWPRIO
|
||||
TS PRIORITY
|
||||
COM
|
||||
TCF JOBSLP2 # AND TO EJSCAN.
|
||||
|
||||
# Page 1218
|
||||
# RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
|
||||
|
||||
ENDJOB1 INHINT
|
||||
CS ZERO
|
||||
TS BUF +1
|
||||
XCH PRIORITY
|
||||
MASK LOW9
|
||||
TS L
|
||||
|
||||
CS FAKEPRET
|
||||
AD L
|
||||
|
||||
EXTEND
|
||||
BZMF EJSCAN # NOVAC ENDOFJOB
|
||||
|
||||
CCS L
|
||||
INDEX A
|
||||
TS 0
|
||||
|
||||
EJSCAN CCS PRIORITY +12D
|
||||
TC EJ1
|
||||
TC CCSHOLE
|
||||
TCF +1
|
||||
|
||||
CCS PRIORITY +24D # EXAMINE EACH PRIORITY REGISTER TO FIND
|
||||
TC EJ1 # THE JOB OF HIGHEST ACTIVE PRIORITY.
|
||||
TC CCSHOLE
|
||||
TCF +1
|
||||
|
||||
CCS PRIORITY +36D
|
||||
TC EJ1
|
||||
-CCSPR -CCS PRIORITY
|
||||
TCF +1
|
||||
|
||||
CCS PRIORITY +48D
|
||||
TC EJ1
|
||||
TC CCSHOLE
|
||||
TCF +1
|
||||
|
||||
CCS PRIORITY +60D
|
||||
TC EJ1
|
||||
TC CCSHOLE
|
||||
TCF +1
|
||||
|
||||
CCS PRIORITY +72D
|
||||
TC EJ1
|
||||
TC CCSHOLE
|
||||
TCF +1
|
||||
|
||||
# Page 1219
|
||||
# EVALUATE THE RESULTS OF THE SCAN.
|
||||
|
||||
CCS BUF +1 # SEE IF THERE ARE ANY ACTIVE JOBS WAITING
|
||||
TC CCSHOLE
|
||||
TC CCSHOLE
|
||||
|
||||
TCF +2
|
||||
TCF DUMMYJOB
|
||||
CCS BUF # BUF IS ZERO IF THIS IS A PRIOCHNG AND
|
||||
TCF +2 # CHANGED PRIORITY IS STILL HIGHEST.
|
||||
TCF ENDPRCHG -1
|
||||
|
||||
INDEX A # OTHERWISE, SET NEWJOB TO THE RELATIVE
|
||||
CAF 0 -1 # ADDRESS OF THE NEW JOB'S CORE SET.
|
||||
AD -CCSPR
|
||||
TS NEWJOB
|
||||
TCF CHANJOB -2
|
||||
|
||||
EJ1 TS BUF +2
|
||||
AD BUF +1 # - OLD HIGH PRIORITY.
|
||||
CCS A
|
||||
CS BUF +2
|
||||
TCF EJ2 # NEW HIGH PRIORITY.
|
||||
NOOP
|
||||
INDEX Q
|
||||
TC 2 # PROCEED WITH SEARCH.
|
||||
|
||||
EJ2 TS BUF +1
|
||||
EXTEND
|
||||
QXCH BUF # FOR LOCATING CCS PRIORITY + X INSTR.
|
||||
INDEX BUF
|
||||
TC 2
|
||||
|
||||
# Page 1220
|
||||
# IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTINE IS NOT A JOB IN ITSELF,
|
||||
# BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
|
||||
|
||||
EBANK= SELFRET # SELF-CHECK STORAGE IN EBANK.
|
||||
|
||||
DUMMYJOB CS ZERO # SET NEWJOB TO -0 FOR IDLING.
|
||||
TS NEWJOB
|
||||
RELINT
|
||||
CS TWO # TURN OFF THE ACTIVITY LIGHT.
|
||||
EXTEND
|
||||
WAND DSALMOUT
|
||||
ADVAN CCS NEWJOB # IS A NEWJOB ACTIVE ?
|
||||
TCF NUCHANG2 # YES... ONE REQUIRING A CHANGE JOB.
|
||||
CAF TWO # NEW JOB ALREADY IN POSITION FOR
|
||||
TCF NUDIRECT # EXECUTION.
|
||||
|
||||
CA SELFRET
|
||||
TS L # PUT RETURN ADDRESS IN L.
|
||||
CAF SELFBANK
|
||||
TCF SUPDXCHZ + 1 # AND DISPATCH JOB.
|
||||
|
||||
EBANK= SELFRET
|
||||
SELFBANK BBCON SELFCHK
|
||||
|
||||
NUDIRECT EXTEND # TURN THE GREEN LIGHT BACK ON.
|
||||
WOR DSALMOUT
|
||||
DXCH LOC # JOBS STARTED IN THIS FASHION MUST BE
|
||||
TCF SUPDXCHZ
|
||||
|
||||
BLOCK 2 # IN FIXED-FIXED SO OTHERS MAY USE.
|
||||
|
||||
COUNT 02/EXEC
|
||||
|
||||
# SUPDXCHZ - ROUTINE TO TRANSFER TO SUPERBANK.
|
||||
# CALLING SEQUENCE
|
||||
# TCF SUPDXCHZ # WITH 2CADR OF DESIRED LOCATION IN A + L.
|
||||
|
||||
SUPDXCHZ XCH L # BASIC.
|
||||
+1 EXTEND
|
||||
WRITE SUPERBNK
|
||||
TS BBANK
|
||||
TC L
|
||||
|
||||
NEG100 OCT 77677
|
||||
|
||||
|
||||
|
1315
Comanche055/EXTENDED_VERBS.agc
Normal file
1315
Comanche055/EXTENDED_VERBS.agc
Normal file
File diff suppressed because it is too large
Load Diff
263
Comanche055/FIXED_FIXED_CONSTANT_POOL.agc
Normal file
263
Comanche055/FIXED_FIXED_CONSTANT_POOL.agc
Normal file
@ -0,0 +1,263 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: FIXED_FIXED_CONSTANT_POOL.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: 1200-1204
|
||||
# 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 1200
|
||||
BLOCK 02
|
||||
|
||||
COUNT 02/FCONS
|
||||
|
||||
# THE FOLLOWING TABLE OF 18 VALUES IS INDEXED. DO NOT INSERT OR REMOVE ANY QUANTITIES.
|
||||
|
||||
DPOSMAX OCT 37777 # MUST PRECEDE POSMAX
|
||||
POSMAX OCT 37777
|
||||
|
||||
LIMITS = NEG1/2
|
||||
|
||||
NEG1/2 OCT -20000 # USED BY SIN ROUTINE (MUST BE TWO
|
||||
# LOCATIONS IN FRONT OF BIT14)
|
||||
# BIT TABLE
|
||||
|
||||
BIT15 OCT 40000
|
||||
BIT14 OCT 20000
|
||||
BIT13 OCT 10000
|
||||
BIT12 OCT 04000
|
||||
BIT11 OCT 02000
|
||||
BIT10 OCT 01000
|
||||
BIT9 OCT 00400
|
||||
BIT8 OCT 00200
|
||||
BIT7 OCT 00100
|
||||
BIT6 OCT 00040
|
||||
BIT5 OCT 00020
|
||||
BIT4 OCT 00010
|
||||
BIT3 OCT 00004
|
||||
BIT2 OCT 00002
|
||||
BIT1 OCT 00001
|
||||
|
||||
|
||||
# DO NOT DESTROY THIS COMBINATION, SINCE IT IS USED IN DOUBLE PRECISION INSTRUCTIONS.
|
||||
NEG0 OCT -0 # MUST PRECEDE ZERO
|
||||
ZERO OCT 0 # MUST FOLLOW NEG0
|
||||
# BIT1 OCT 00001
|
||||
# NO.WDS OCT 2 # INTERPRETER
|
||||
# OCTAL3 OCT 3 # INTERPRETER
|
||||
# R3D1 OCT 4 # PINBALL
|
||||
FIVE OCT 5
|
||||
# REVCNT OCT 6 # INTERPRETER
|
||||
SEVEN OCT 7
|
||||
# BIT4 OCT 00010
|
||||
# R2D1 OCT 11 # PINBALL
|
||||
OCT11 = R2D1 # P20S
|
||||
# BINCON DEC 10 # PINBALL (OCTAL 12)
|
||||
ELEVEN DEC 11
|
||||
# OCT14 OCT 14 # ALARM AND ABORT (FILLER)
|
||||
OCT15 OCT 15
|
||||
# R1D1 OCT 16 # PINBALL
|
||||
# Page 1201
|
||||
LOW4 OCT 17
|
||||
# BIT5 OCT 00020
|
||||
# ND1 OCT 21 # PINBALL
|
||||
# VD1 OCT 23 # PINBALL
|
||||
# OCT24 OCT 24 # SERVICE ROUTINES
|
||||
# MD1 OCT 25 # PINBALL
|
||||
BITS4&5 OCT 30
|
||||
# OCT31 OCT 31 # SERVICE ROUTINES
|
||||
CALLCODE OCT 00032
|
||||
# LOW5 OCT 37 # PINBALL
|
||||
# 33DEC DEC 33 # PINBALL (OCTAL 41)
|
||||
# 34DEC DEC 34 # PINBALL (OCTAL 42)
|
||||
TBUILDFX DEC 37 # BUILDUP FOR CONVIENCE IN DAPTESTING
|
||||
TDECAYFX DEC 38 # CONVENIENCE FOR DAPTESTING
|
||||
# BIT6 OCT 00040
|
||||
OCT50 OCT 50
|
||||
DEC45 DEC 45
|
||||
SUPER011 OCT 60 # BITS FOR SUPERBNK SETTING 011.
|
||||
.5SEC DEC 50
|
||||
# BIT7 OCT 00100
|
||||
|
||||
SUPER100 = BIT7 # BITS FOR SUPERBNK SETTING 100
|
||||
# (LAST 4K OF ROPE)
|
||||
SUPER101 OCT 120 # BITS FOR SUPERBNK SETTING 101
|
||||
# OCT121 OCT 121 # SERVICE ROUTINES
|
||||
# (FIRST 8K OF ACM)
|
||||
SUPER110 OCT 140 # BITS FOR SUPERBNK SETTING 110.
|
||||
# (LAST 8K OF ACM)
|
||||
1SEC DEC 100
|
||||
# LOW7 OCT 177 # INTERPRETER
|
||||
# BIT8 OCT 00200
|
||||
# OT215 OCT 215 # ALARM AND ABORT
|
||||
# 8,5 OCT 00220 # P20-P25 SUNDANCE
|
||||
2SECS DEC 200
|
||||
# LOW8 OCT 377 # PINBALL
|
||||
# BIT9 OCT 00400
|
||||
GN/CCODE OCT 00401 # SET S/C CONTROL SWITCH TO G/N
|
||||
3SECS DEC 300
|
||||
4SECS DEC 400
|
||||
LOW9 OCT 777
|
||||
# BIT10 OCT 01000
|
||||
# 5.5DEGS DEC .03056 # P20-P25 SUNDANCE (OCTAL 00765)
|
||||
# OCT1103 OCT 1103 # ALARM AND ABORT
|
||||
C5/2 DEC .0363551 # (OCTAL 01124)
|
||||
V05N09 VN 0509 # (SAME AS OCTAL 1211)
|
||||
OCT1400 OCT 01400
|
||||
V06N22 VN 0622
|
||||
# MID5 OCT 1740 # PINBALL
|
||||
BITS2-10 OCT 1776
|
||||
LOW10 OCT 1777
|
||||
# Page 1202
|
||||
# BIT11 OCT 02000
|
||||
# 2K+3 OCT 2003 # PINBALL
|
||||
LOW7+2K OCT 2177 # OP CODE MASK + BANK 1 FBANK SETTING.
|
||||
EBANK5 OCT 02400
|
||||
PRIO3 OCT 03000
|
||||
EBANK7 OCT 03400
|
||||
# LOW11 OCT 3777 # PINBALL
|
||||
# BIT12 OCT 04000
|
||||
# RELTAB OCT 04025 # T4RUPT
|
||||
PRIO5 OCT 05000
|
||||
PRIO6 OCT 06000
|
||||
PRIO7 OCT 07000
|
||||
|
||||
# BIT13 OCT 10000
|
||||
# OCT 10003 # T4RUPT RELTAB +1D
|
||||
# 13,7,2 OCT 10102 # P20-P25 SUNDANCE
|
||||
PRIO11 OCT 11000
|
||||
# PRIO12 OCT 12000 # BANKCALL
|
||||
PRIO13 OCT 13000
|
||||
PRIO14 OCT 14000
|
||||
# OCT 14031 # T4RUPT RELTAB +2D
|
||||
PRIO15 OCT 15000
|
||||
PRIO16 OCT 16000
|
||||
# 85DEGS DEC .45556 # P20-P25 SUNDANCE (OCTAL 16450)
|
||||
PRIO17 OCT 17000
|
||||
OCT17770 OCT 17770
|
||||
# BIT14 OCT 20000
|
||||
# OCT 20033 # T4RUPT RELTAB +3D
|
||||
PRIO21 OCT 21000
|
||||
BLOCK 03
|
||||
COUNT 03/FCONS
|
||||
|
||||
PRIO22 OCT 22000 # SERVICE ROUTINES
|
||||
PRIO23 OCT 23000
|
||||
PRIO24 OCT 24000
|
||||
# 5/8+1 OCT 24001 # SINGLE PRECISION SUBROUTINES
|
||||
# OCT 24017 # T4RUPT RELTAB +4D
|
||||
PRIO25 OCT 25000
|
||||
PRIO26 OCT 26000
|
||||
PRIO27 OCT 27000
|
||||
# CHRPRIO OCT 30000 # PINBALL
|
||||
# OCT 30036 # T4RUPT RELTAB +5D
|
||||
PRIO31 OCT 31000
|
||||
C1/2 DEC .7853134 # (OCTAL 31103)
|
||||
PRIO32 OCT 32000
|
||||
PRIO33 OCT 33000
|
||||
PRIO34 OCT 34000
|
||||
# OCT 34034 # T4RUPT RELTAB +6D
|
||||
PRIO35 OCT 35000
|
||||
PRIO36 OCT 36000
|
||||
# Page 1203
|
||||
PRIO37 OCT 37000
|
||||
63/64+1 OCT 37401
|
||||
# MID7 OCT 37600 # PINBALL
|
||||
OCT37766 OCT 37766
|
||||
OCT37774 OCT 37774
|
||||
OCT37776 OCT 37776
|
||||
# DPOSMAX OCT 37777
|
||||
# BIT15 OCT 40000
|
||||
# OCT40001 OCT 40001 # INTERPRETER (CS 1 INSTRUCTION)
|
||||
DLOADCOD OCT 40014
|
||||
DLOAD* OCT 40015
|
||||
# OCT 40023 # T4RUPT RELTAB +7D
|
||||
BIT15+6 OCT 40040
|
||||
OCT40200 OCT 40200
|
||||
# OCT 44035 # T4RUPT RELTAB +8D
|
||||
# OCT 50037 # T4RUPT RELTAB +9D
|
||||
# OCT 54000 # T4RUPT RELTAB +10D
|
||||
-BIT14 OCT 57777
|
||||
# RELTAB11 OCT 60000 # T4RUPT
|
||||
C3/2 DEC -.3216147 # (OCTAL 65552)
|
||||
13,14,15 OCT 70000
|
||||
-1/8 OCT 73777
|
||||
HIGH4 OCT 74000
|
||||
-ENDERAS DEC -2001 # (OCTAL 74056)
|
||||
# HI5 OCT 76000 # PINBALL
|
||||
HIGH9 OCT 77700
|
||||
# -ENDVAC DEC -45 # INTERPRETER (OCTAL 77722)
|
||||
# -OCT10 OCT -10 # (OCT 77767)
|
||||
# NEG4 DEC -4 # (OCTAL 77773)
|
||||
NEG3 DEC -3
|
||||
NEG2 OCT 77775
|
||||
NEGONE DEC -1
|
||||
|
||||
# Page 1204
|
||||
|
||||
# DEFINED BY EQUALS
|
||||
|
||||
# IT WOULD BE TO THE USERS ADVANTAGE TO OCCASIONALLY CHECK ANY OF THESE SYMBOLS IN ORDER TO PREVENT ANY
|
||||
# ACCIDENTAL DEFINITION CHANGES.
|
||||
|
||||
MINUS1 = NEG1
|
||||
NEG1 = NEGONE
|
||||
ONE = BIT1
|
||||
TWO = BIT2
|
||||
THREE = OCTAL3
|
||||
LOW2 = THREE
|
||||
FOUR = BIT3
|
||||
SIX = REVCNT
|
||||
LOW3 = SEVEN
|
||||
EIGHT = BIT4
|
||||
NINE = R2D1
|
||||
TEN = BINCON
|
||||
NOUTCON = ELEVEN
|
||||
OCT23 = VD1
|
||||
OCT25 = MD1
|
||||
PRIO1 = BIT10
|
||||
EBANK3 = OCT1400
|
||||
PRIO2 = BIT11
|
||||
OCT120 = SUPER101
|
||||
OCT140 = SUPER110
|
||||
2K = BIT11
|
||||
EBANK4 = BIT11
|
||||
PRIO4 = BIT12
|
||||
EBANK6 = PRIO3
|
||||
QUARTER = BIT13
|
||||
PRIO10 = BIT13
|
||||
OCT10001 = CCSL
|
||||
POS1/2 = HALF
|
||||
PRIO20 = BIT14
|
||||
HALF = BIT14
|
||||
PRIO30 = CHRPRIO
|
||||
BIT13-14 = PRIO30 # INTERPRETER USES IN PROCESSING STORECODE
|
||||
OCT30002 = TLOAD +1
|
||||
B12T14 = PRIO34
|
||||
NEGMAX = BIT15
|
||||
VLOADCOD = BIT15
|
||||
VLOAD* = OCT40001
|
||||
OCT60000 = RELTAB11
|
||||
BANKMASK = HI5
|
||||
|
1480
Comanche055/FRESH_START_AND_RESTART.agc
Normal file
1480
Comanche055/FRESH_START_AND_RESTART.agc
Normal file
File diff suppressed because it is too large
Load Diff
98
Comanche055/GIMBAL_LOCK_AVOIDANCE.agc
Normal file
98
Comanche055/GIMBAL_LOCK_AVOIDANCE.agc
Normal file
@ -0,0 +1,98 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: GIMBAL_LOCK_AVOIDANCE.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. 412-413
|
||||
# Contact: Onno Hommes <ohommes@cmu.edu>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Mod history: 05/07/09 OH Transcription Batch 1 Assignment
|
||||
#
|
||||
# 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 412
|
||||
BANK 15
|
||||
SETLOC KALCMON1
|
||||
BANK
|
||||
|
||||
EBANK= BCDU
|
||||
# DETECTING GIMBAL LOCK
|
||||
LOCSKIRT EQUALS WCALC
|
||||
WCALC LXC,1 DLOAD*
|
||||
RATEINDX
|
||||
ARATE,1
|
||||
SR4 CALL # COMPUTE THE INCREMENTAL ROTATION MATRIX
|
||||
DELCOMP # DEL CORRESPONDING TO A 1 SEC ROTATION
|
||||
# ABOUT COF
|
||||
DLOAD* VXSC
|
||||
ARATE,1
|
||||
COF
|
||||
MXV
|
||||
QUADROT
|
||||
STODL BRATE
|
||||
AM
|
||||
DMP DDV*
|
||||
ANGLTIME
|
||||
ARATE,1
|
||||
SR
|
||||
5
|
||||
STOVL TM
|
||||
BRATE
|
||||
VXSC
|
||||
BIASCALE
|
||||
STORE BIASTEMP # ATTITUDE ERROR BIAS TO PREVENT OVERSHOOT
|
||||
# IN SYSTEM
|
||||
SETGO # STATE SWITCH CALCMAN2 (43D)
|
||||
CALCMAN2 # 0(OFF) = BYPASS STARTING PROCEDURE
|
||||
NEWANGL +1 # 1(ON) = START MANEUVER
|
||||
|
||||
|
||||
ARATE 2DEC .0022222222 # = .05 DEG/SEC
|
||||
|
||||
2DEC .0088888889 # = .2 DEG/SEC
|
||||
|
||||
2DEC .0222222222 # = .5 DEG/SEC
|
||||
|
||||
2DEC .0888888889 # = 2 DEG/SEC $22.5 DEG/SEC
|
||||
|
||||
ANGLTIME 2DEC .000190735 # = 100B - 19
|
||||
|
||||
# MANEUVER ANGLE TO MANEUVER TIME
|
||||
|
||||
QUADROT 2DEC .1 # ROTATION MATRIX FROM S/C AXES TO CONTROL
|
||||
|
||||
# Page 413
|
||||
2DEC 0 # AXES (X ROT = -7.25 DEG)
|
||||
|
||||
2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
2DEC .099200 # =(.1)COS7.25
|
||||
|
||||
2DEC -.012620 # =-(.1)SIN7.25
|
||||
|
||||
2DEC 0
|
||||
|
||||
2DEC .012620 # (.1)SIN7.25
|
||||
|
||||
2DEC .099200 # (.1)COS7.25
|
||||
|
||||
BIASCALE 2DEC .0002543132 # = (450/180)(1/0.6)(1/16384)
|
205
Comanche055/GROUND_TRACKING_DETERMINATION_PROGRAM.agc
Normal file
205
Comanche055/GROUND_TRACKING_DETERMINATION_PROGRAM.agc
Normal file
@ -0,0 +1,205 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: GROUND_TRACKING_DETERMINATION_PROGRAM.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. 456-459
|
||||
# Contact: Onno Hommes <ohommes@cmu.edu>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Mod history: 2009-05-07 OH Transcription Batch 1 Assignment
|
||||
# 2009-05-20 RSB Corrected a couple of DIMOFLAG to DIM0FLAG.
|
||||
#
|
||||
# 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 456
|
||||
# GROUND TRACKING DETERMINATION PROGRAM P21
|
||||
# PROGRAM DESCRIPTION
|
||||
# MOD NO - 1
|
||||
# MOD BY - N.M.NEVILLE
|
||||
# FUNCTIONAL DECRIPTION-
|
||||
#
|
||||
# TO PROVIDE THE ASTRONAUT DETAILS OF THE LM OR CSM GROUND TRACK WITHOUT
|
||||
# THE NEED FOR GROUND COMMUNICATION (REQUESTED BY DSKY).
|
||||
# CALLING SEQUENCE -
|
||||
#
|
||||
# ASTRONAUT REQUEST THROUGH DSKY V37E21E
|
||||
# SUBROUTINES CALLED-
|
||||
#
|
||||
# GOPERF4
|
||||
# GOFLASH
|
||||
# THISPREC
|
||||
# OTHPREC
|
||||
# LAT-LONG
|
||||
# NORMAL EXIT MODES-
|
||||
#
|
||||
# ASTRONAUT REQUEST THROUGH DSKY TO TERMINATE PROGRAM V34E
|
||||
# ALARM OR ABORT EXIT MODES-
|
||||
#
|
||||
# NONE
|
||||
# OUTPUT -
|
||||
#
|
||||
# OCTAL DISPLAY OF OPTION CODE AND VEHICLE WHOSE GROUND TRACK IS TO BE
|
||||
# COMPUTED
|
||||
# OPTION CODE 00002
|
||||
# THIS 00001
|
||||
# OTHER 00002
|
||||
# DECIMAL DISPLAY OF TIME TO BE INTEGRATED TO HOURS , MINUTES , SECONDS
|
||||
# DECIMAL DISPLAY OF LAT,LONG,ALT
|
||||
# ERASABLE INITIALIZATION REQUIRED
|
||||
#
|
||||
# AX0 2DEC 4.652459653 E-5 RADIANS "68-69 CONSTANTS"
|
||||
#
|
||||
# -AY0 2DEC 2.147535898 E-5 RADIANS
|
||||
#
|
||||
# AZ0 2DEC .7753206164 REVOLUTIONS
|
||||
# FOR LUNAR ORBITS 504LM VECTOR IS NEEDED
|
||||
#
|
||||
# 504LM 2DEC -2.700340600 E-5 RADIANS
|
||||
#
|
||||
# 504LM _2 2DEC -7.514128400 E-4 RADIANS
|
||||
#
|
||||
# 504LM _4 2DEC _2.553198641 E-4 RADIANS
|
||||
#
|
||||
# NONE
|
||||
# DEBRIS
|
||||
|
||||
# Page 457
|
||||
# CENTRALS-A,Q,L
|
||||
# OTHER-THOSE USED BY THE ABOVE LISTED SUBROUTINES
|
||||
# SEE LEMPREC,LAT-LONG
|
||||
SBANK= LOWSUPER # FOR LOW 2CADR'S.
|
||||
|
||||
BANK 33
|
||||
SETLOC P20S
|
||||
BANK
|
||||
|
||||
EBANK= P21TIME
|
||||
COUNT 24/P21
|
||||
|
||||
PROG21 CAF ONE
|
||||
TS OPTION2 # ASSUMED VEHICLE IS LM , R2 = 00001
|
||||
CAF BIT2 # OPTION 2
|
||||
TC BANKCALL
|
||||
CADR GOPERF4
|
||||
TC GOTOPOOH # TERMINATE
|
||||
TC +2 # PROCEED VALUE OF ASSUMED VEHICLE OK
|
||||
TC -5 # R2 LOADED THROUGH DSKY
|
||||
P21PROG1 CAF V6N34 # LOAD DESIRED TIME OF LAT-LONG.
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TC GOTOPOOH # TERM
|
||||
TC +2 # PROCEED VALUES OK
|
||||
TC -5 # TIME LOADED THROUGH DSKY
|
||||
TC INTPRET
|
||||
DLOAD
|
||||
DSPTEM1
|
||||
STCALL TDEC1 # INTEG TO TIME SPECIFIED IN TDEC
|
||||
INTSTALL
|
||||
BON SET
|
||||
P21FLAG
|
||||
P21CONT # ON...RECYCLE USING BASE VECTOR
|
||||
VINTFLAG # OFF..1ST PASS CALC BASE VECTOR
|
||||
SLOAD SR1
|
||||
OPTION2
|
||||
BHIZ CLEAR
|
||||
+2 # ZERO..THIS VEHICLE (CM)
|
||||
VINTFLAG # ONE...OTHER VEHICLE(LM)
|
||||
CLEAR CLEAR
|
||||
DIM0FLAG
|
||||
INTYPFLG # PRECISION
|
||||
CALL
|
||||
INTEGRV # CALCULATE
|
||||
GOTO # .AND
|
||||
P21VSAVE # ..SAVE BASE VECTOR
|
||||
P21CONT VLOAD # RECYCLE..INTEG FROM BASE VECTOR
|
||||
P21BASER
|
||||
# Page 458
|
||||
STOVL RCV # ..POS
|
||||
P21BASEV
|
||||
STODL VCV # ..VEL
|
||||
P21TIME
|
||||
STORE TET # ..TIME
|
||||
CLEAR CLEAR
|
||||
DIM0FLAG
|
||||
MOONFLAG
|
||||
SLOAD BZE
|
||||
P21ORIG
|
||||
+3 # ZERO = EARTH
|
||||
SET # ...2 = MOON
|
||||
MOONFLAG
|
||||
CALL
|
||||
INTEGRVS
|
||||
P21VSAVE DLOAD # SAVE CURRENT BASE VECTOR
|
||||
TAT
|
||||
STOVL P21TIME # ..TIME
|
||||
RATT1
|
||||
STOVL P21BASER # ..POS B-29 OR B-27
|
||||
VATT1
|
||||
STORE P21BASEV # ..VEL B-7 OR B-5
|
||||
ABVAL SL*
|
||||
0,2
|
||||
STOVL P21VEL # /VEL/ FOR N73 DSP
|
||||
RATT
|
||||
UNIT DOT
|
||||
VATT # U(R).(V)
|
||||
DDV ASIN # U(R).U(V)
|
||||
P21VEL
|
||||
STORE P21GAM # SIN-1 U(R).U(V), -90 TO +90
|
||||
SXA,2 SET
|
||||
P21ORIG # 0 = EARTH 2 = MOON
|
||||
P21FLAG
|
||||
P21DSP CLEAR SLOAD # GENERATE DISPLAY DATA
|
||||
LUNAFLAG
|
||||
X2
|
||||
BZE SET
|
||||
+2 # 0 = EARTH
|
||||
LUNAFLAG
|
||||
VLOAD
|
||||
RATT
|
||||
STODL ALPHAV
|
||||
TAT
|
||||
CLEAR CALL
|
||||
ERADFLAG
|
||||
LAT-LONG
|
||||
DMP # MPAC = ALT, METERS B-29
|
||||
K.01
|
||||
STORE P21ALT # ALT/100 FOR N73 DSP
|
||||
# Page 459
|
||||
EXIT
|
||||
CAF V06N43 # DISPLAY LAT,LONG,ALT
|
||||
TC BANKCALL # LAT,LONG = REVS B0 BOTH EARTH/MOON
|
||||
CADR GOFLASH # ALT = METERS B-29 BOTH EARTH/MOON
|
||||
TC GOTOPOOH # TERM
|
||||
TC GOTOPOOH
|
||||
TC INTPRET # V32E RECYCLE
|
||||
DLOAD DAD
|
||||
P21TIME
|
||||
600SEC # 600 SECONDS OR 10 MIN
|
||||
STORE DSPTEM1
|
||||
RTB
|
||||
P21PROG1
|
||||
600SEC 2DEC 60000 # 10 MIN
|
||||
|
||||
P21ONENN OCT 00001 # NEEDED TO DETERMINE VEHICLE
|
||||
OCT 00000 # TO BE INTEGRATED
|
||||
V06N43 VN 00643
|
||||
V6N34 VN 00634
|
||||
K.01 2DEC .01
|
||||
|
1406
Comanche055/IMU_CALIBRATION_AND_ALIGNMENT.agc
Normal file
1406
Comanche055/IMU_CALIBRATION_AND_ALIGNMENT.agc
Normal file
File diff suppressed because it is too large
Load Diff
368
Comanche055/IMU_COMPENSATION_PACKAGE.agc
Normal file
368
Comanche055/IMU_COMPENSATION_PACKAGE.agc
Normal file
@ -0,0 +1,368 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: IMU_COMPENSATION_PACKAGE.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: 297-306
|
||||
# Mod history: 2009-05-08 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images/
|
||||
# 2009-05-21 RSB In IRIGZ, PRIO17 corrected to PRIO21.
|
||||
#
|
||||
# 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 297
|
||||
BANK 7
|
||||
SETLOC IMUCOMP
|
||||
BANK
|
||||
EBANK= NBDX
|
||||
|
||||
COUNT 06/ICOMP
|
||||
|
||||
1/PIPA CAF LGCOMP # SAVE EBANK OF CALLING PROGRAM
|
||||
XCH EBANK
|
||||
TS MODE
|
||||
|
||||
CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
|
||||
TCF +3
|
||||
TCF +2
|
||||
TCF IRIG1 # RETURN
|
||||
|
||||
INHINT # ASSURE COMPLETE COMPENSATION OF DELV'S
|
||||
# FOR DOWNLINK.
|
||||
1/PIPA1 CAF FOUR # PIPAZ, PIPAY, PIPAX
|
||||
TS BUF +2
|
||||
|
||||
INDEX BUF +2
|
||||
CA PIPASCF # (P.P.M.) X 2(-9)
|
||||
EXTEND
|
||||
INDEX BUF +2
|
||||
MP DELVX # (PP) X 2(+14) NOW (PIPA PULSES) X 2(+5)
|
||||
TS Q # SAVE MAJOR PART
|
||||
|
||||
CA L # MINOR PART
|
||||
EXTEND
|
||||
MP BIT6 # SCALE 2(+9) SHIFT RIGHT 9
|
||||
INDEX BUF +2
|
||||
TS DELVX +1 # FRACTIONAL PIPA PULSES SCALED 2(+14)
|
||||
|
||||
CA Q # MAJOR PART
|
||||
EXTEND
|
||||
MP BIT6 # SCALE 2(+9) SHIFT RIGHT 9
|
||||
INDEX BUF +2
|
||||
DAS DELVX # (PIPAI) + (PIPAI)(SFE)
|
||||
|
||||
INDEX BUF +2
|
||||
CS PIPABIAS # (PIPA PULSES)/(CS) X 2(-8) *
|
||||
EXTEND
|
||||
MP 1/PIPADT # (CS) X 2(+8) NOW (PIPA PULSES) X 2(+0) *
|
||||
EXTEND
|
||||
MP BIT1 # SCALE 2(+14) SHIFT RIGHT 14 *
|
||||
INDEX BUF +2
|
||||
DAS DELVX # (PIPAI) + (PIPAI)(SFE) - (BIAS)(DELTAT)
|
||||
|
||||
CCS BUF +2 # PIPAZ, PIPAY, PIPAX
|
||||
# Page 298
|
||||
AD NEG1
|
||||
TCF 1/PIPA1 +1
|
||||
NOOP # LESS THAN ZERO IMPOSSIBLE.
|
||||
RELINT
|
||||
# Page 299
|
||||
|
||||
IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS.
|
||||
TS BUF # INDEX COUNTER - IRIGX, IRIGY, IRIGZ.
|
||||
|
||||
IRIGX EXTEND
|
||||
DCS DELVX # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC
|
||||
CA ADIAX # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
TC GCOMPSUB # -(ADIAX)(PIPAX) (GYRO PULSES) X 2(+14)
|
||||
|
||||
EXTEND #
|
||||
DCS DELVY # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC #
|
||||
CS ADSRAX # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
TC GCOMPSUB # +(ADSRAX)(PIPAY) (GYRO PULSES) X 2(+14)
|
||||
|
||||
# EXTEND # ***
|
||||
# DCS DELVY # *** (PIPA PULSES) X 2(+14)
|
||||
# DXCH MPAC # ***
|
||||
# CA ADOAX # *** (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
# TC GCOMPSUB # *** -(ADOAX)(PIPAZ) (GYRO PULSES) X 2(+14)
|
||||
|
||||
CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC DRIFTSUB # -(NBDX)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
IRIGY EXTEND
|
||||
DCS DELVY # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC
|
||||
CA ADIAY # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
TC GCOMPSUB # -(ADIAY)(PIPAY) (GYRO PULSES) X 2(+14)
|
||||
|
||||
EXTEND
|
||||
DCS DELVZ # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC
|
||||
CS ADSRAY # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
TC GCOMPSUB # +(ADSRAY)(PIPAZ) (GYRO PULSES) X 2(+14)
|
||||
|
||||
# EXTEND # ***
|
||||
# DCS DELVX # *** (PIPA PULSES) X 2(+14)
|
||||
# DXCH MPAC # ***
|
||||
# CA ADOAY # *** (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
# TC GCOMPSUB # *** -(ADOAY)(PIPAZ) (GYRO PULSES) X 2(+14)
|
||||
|
||||
CS NBDY # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC DRIFTSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
IRIGZ EXTEND
|
||||
DCS DELVY # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC
|
||||
CA ADSRAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
# Page 300
|
||||
TC GCOMPSUB # -(ADSRAZ)(PIPAY) (GYRO PULSES) X 2(+14)
|
||||
|
||||
EXTEND
|
||||
DCS DELVZ # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC
|
||||
CA ADIAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
TC GCOMPSUB # -(ADIAZ)(PIPAZ) (GYRO PULSES) X 2(+14)
|
||||
|
||||
# EXTEND # ***
|
||||
# DCS DELVX # *** (PIPA PULSE) X 2(+14)
|
||||
# DXCH MPAC # ***
|
||||
# CS ADOAZ # *** (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
# TC GCOMPSUB # *** +(ADOAZ)(PIPAX) (GYRO PULSES) X 2(+14)
|
||||
|
||||
CA NBDZ # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC DRIFTSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
# Page 301
|
||||
CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
|
||||
TCF +2 # YES
|
||||
TCF IRIG1 # NO
|
||||
|
||||
CAF PRIO21 # HIGHER THAN SERVICER-LESS THAN PRELAUNCH
|
||||
TC NOVAC
|
||||
EBANK= NBDX
|
||||
2CADR 1/GYRO
|
||||
|
||||
RELINT
|
||||
IRIG1 CA MODE # SET EBANK FOR RETURN
|
||||
TS EBANK
|
||||
TCF SWRETURN
|
||||
|
||||
GCOMPSUB XCH MPAC # ADIA OR ADSRA COEFFICIENT ARRIVES IN A
|
||||
EXTEND # C(MPAC) = (PIPA PULSES) X 2(+14)
|
||||
MP MPAC # (GYRO PULSES)/(PIPA PULSE) X 2(-3) *
|
||||
DXCH VBUF # NOW = (GYRO PULSES) X 2(+11) *
|
||||
|
||||
CA MPAC +1 # MINOR PART OF PIPA PULSES
|
||||
EXTEND
|
||||
MP MPAC # ADIA OR ADSRA
|
||||
TS L
|
||||
CAF ZERO
|
||||
DAS VBUF # NOW = (GYRO PULSES) X 2(+11) *
|
||||
|
||||
CA VBUF # PARTIAL RESULT - MAJOR
|
||||
EXTEND
|
||||
MP BIT12 # SCALE 2(+3) SHIFT RIGHT 3 *
|
||||
INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
|
||||
DAS GCOMP # HI(ADIA)(PIPAI) OR HI(ADSRA)(PIPAI)
|
||||
|
||||
CA VBUF +1 # PARTIAL RESULT - MINOR
|
||||
EXTEND
|
||||
MP BIT12 # SCALE 2(+3) SHIFT RIGHT 3 *
|
||||
TS L
|
||||
CAF ZERO
|
||||
INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
|
||||
DAS GCOMP # (ADIA)(PIPAI) OR (ADSRA)(PIPAI)
|
||||
|
||||
TC Q
|
||||
|
||||
# Page 302
|
||||
DRIFTSUB EXTEND
|
||||
QXCH BUF +1
|
||||
|
||||
EXTEND # C(A) = NBD (GYRO PULSES)/(CS) X 2(-5)
|
||||
MP 1/PIPADT # (CS) X 2(+8) NO (GYRO PULSES) X 2(+3)
|
||||
LXCH MPAC +1 # SAVE FOR FRACTIONAL COMPENSATION
|
||||
EXTEND
|
||||
MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
|
||||
INDEX BUF
|
||||
DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
CA MPAC +1 # NOW MINOR PART
|
||||
EXTEND
|
||||
MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11
|
||||
TS L
|
||||
CAF ZERO
|
||||
INDEX BUF # ADD IN FRACTIONAL COMPENSATION
|
||||
DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
DRFTSUB2 CAF TWO # PIPAX, PIPAY, PIPAZ
|
||||
AD BUF
|
||||
XCH BUF
|
||||
INDEX A
|
||||
CCS GCOMP # ARE GYRO COMMANDS 1 PULSE OR GREATER
|
||||
TCF +2 # YES
|
||||
TC BUF +1 # NO
|
||||
|
||||
MASK NEGONE
|
||||
CCS A # ARE GYRO COMMANDS GREATER THAN 2 PULSES
|
||||
TS GCOMPSW # YES - SET GCOMPSW POSITIVE
|
||||
TC BUF +1 # NO
|
||||
|
||||
# Page 303
|
||||
1/GYRO CAF FOUR # PIPAZ, PIPAY, PIPAX
|
||||
TS BUF
|
||||
|
||||
INDEX BUF # SCALE GYRO COMMANDS FOR IMUPULSE
|
||||
CA GCOMP +1 # FRACTIONAL PULSES
|
||||
EXTEND
|
||||
MP BIT8 # SHIFT RIGHT 7
|
||||
INDEX BUF
|
||||
TS GCOMP +1 # FRACTIONAL PULSES SCALED
|
||||
|
||||
CAF ZERO # SET GCOMP = 0 FOR DAS INSTRUCTION
|
||||
INDEX BUF
|
||||
XCH GCOMP # GYRO PULSES
|
||||
EXTEND
|
||||
MP BIT8 # SHIFT RIGHT 7
|
||||
INDEX BUF
|
||||
DAS GCOMP # ADD THESE TO FRACTIONAL PULSES ABOVE
|
||||
|
||||
CCS BUF # PIPAZ, PIPAY, PIPAX
|
||||
AD NEG1
|
||||
TCF 1/GYRO +1
|
||||
LGCOMP ECADR GCOMP # LESS THAN ZERO IMPOSSIBLE
|
||||
|
||||
CAF LGCOMP
|
||||
TC BANKCALL
|
||||
CADR IMUPULSE # CALL GYRO TORQUING ROUTINE
|
||||
TC BANKCALL
|
||||
CADR IMUSTALL # WAIT FOR PULSES TO GET OUT
|
||||
TCF ENDOFJOB # TEMPORARY
|
||||
|
||||
GCOMP1 CAF FOUR # PIPAZ, PIPAY, PIPAX
|
||||
TS BUF
|
||||
|
||||
INDEX BUF # RESCALE
|
||||
CA GCOMP +1
|
||||
EXTEND
|
||||
MP BIT8 # SHIFT MINOR PART LEFT 7 - MAJOR PART = 0
|
||||
INDEX BUF
|
||||
LXCH GCOMP +1 # BITS 8-14 OF MINOR PART WERE = 0
|
||||
|
||||
CCS BUF # PIPAZ, PIPAY, PIPAX
|
||||
AD NEG1
|
||||
TCF GCOMP1 +1
|
||||
V06N30S VN 0630
|
||||
TCF ENDOFJOB
|
||||
|
||||
# Page 304
|
||||
NBDONLY CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
|
||||
TCF +3
|
||||
TCF +2
|
||||
TCF ENDOFJOB
|
||||
|
||||
INHINT
|
||||
CCS FLAGWRD2 # PREREAD T3RUPT MAY COINCIDE
|
||||
TCF ENDOFJOB
|
||||
TCF ENDOFJOB
|
||||
TCF +1
|
||||
|
||||
CA TIME1 # (CS) X 2(+14)
|
||||
XCH 1/PIPADT # PREVIOUS TIME
|
||||
RELINT
|
||||
COM
|
||||
AD 1/PIPADT
|
||||
NBD2 CCS A # CALCULATE ELAPSED TIME
|
||||
AD ONE # NO TIME1 OVERFLOW
|
||||
TCF NBD3 # RESTORE TIME DIFFERENCE AND JUMP
|
||||
TCF +2 # TIME1 OVERFLOW
|
||||
TCF ENDOFJOB # IF ELAPSED TIME = 0 (DIFFERENCE = -0)
|
||||
|
||||
COM # CALCULATE ABSOLUTE DIFFERENCE
|
||||
AD POSMAX
|
||||
|
||||
NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
|
||||
MP BIT10 # SHIFT RIGHT 5
|
||||
DXCH VBUF
|
||||
EXTEND
|
||||
DCA VBUF
|
||||
DXCH MPAC # DELTAT NOW SCALED (CS) X 2(+19)
|
||||
|
||||
CAF ZERO
|
||||
TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS
|
||||
TS BUF # PIPAX, PIPAY, PIPAZ
|
||||
|
||||
CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC FBIASSUB # -(NBOX)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
EXTEND
|
||||
DCS VBUF
|
||||
DXCH MPAC # DELTAT SCALED (CS) X 2(+19)
|
||||
CA NBDY # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC FBIASSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
EXTEND
|
||||
DCS VBUF
|
||||
DXCH MPAC # DELTAT SCALED (CS) X 2(+19)
|
||||
CS NBDZ # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC FBIASSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
# Page 305
|
||||
CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
|
||||
TCF 1/GYRO # YES
|
||||
TCF ENDOFJOB # NO
|
||||
|
||||
# Page 306
|
||||
FBIASSUB XCH Q
|
||||
TS BUF +1
|
||||
|
||||
CA Q # NBD SCALED (GYRO PULSES)/(CS) X 2(-5)
|
||||
EXTEND
|
||||
MP MPAC # DELTAT SCALED (CS) X 2(+19)
|
||||
INDEX BUF
|
||||
DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
CA Q # NO FRACTIONAL PART
|
||||
EXTEND
|
||||
MP MPAC +1
|
||||
TS L
|
||||
CAF ZERO
|
||||
INDEX BUF
|
||||
DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
TCF DRFTSUB2 # CHECK MAGNITUDE OF COMPENSATION
|
||||
|
||||
LASTBIAS TC BANKCALL
|
||||
CADR PIPUSE
|
||||
|
||||
CCS GCOMPSW # BYPASS IF GCOMPSW NEGATIVE
|
||||
TCF +3
|
||||
TCF +2
|
||||
TCF ENDOFJOB
|
||||
|
||||
CAF PRIO31 # 2 SECONDS SCALED (CS) X 2(+8)
|
||||
XCH 1/PIPADT
|
||||
COM
|
||||
AD PIPTIME1 +1 # TIME AT PIPA1 =0
|
||||
TCF NBD2
|
||||
|
1066
Comanche055/IMU_MODE_SWITCHING_ROUTINES.agc
Normal file
1066
Comanche055/IMU_MODE_SWITCHING_ROUTINES.agc
Normal file
File diff suppressed because it is too large
Load Diff
304
Comanche055/INFLIGHT_ALIGNMENT_ROUTINES.agc
Normal file
304
Comanche055/INFLIGHT_ALIGNMENT_ROUTINES.agc
Normal file
@ -0,0 +1,304 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INFLIGHT_ALIGNMENT_ROUTINES.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: 1355-1364
|
||||
# Mod history: 2009-05-14 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 1355
|
||||
BANK 22
|
||||
SETLOC INFLIGHT
|
||||
BANK
|
||||
|
||||
EBANK= XSM
|
||||
|
||||
# CALCGTA COMPUTES THE GYRO TORQUE ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
|
||||
#
|
||||
# THE INPUT IS THE DESIRED STABLE MEMBER COORDINATES REFERRED TO PRESENT STABLE MEMBER COORDINATES. THE THREE
|
||||
# HALF-UNIT VECTORS ARE STORED AT XDC, YDC, AND ZDC.
|
||||
#
|
||||
# THE OUTPUTS ARE THE THREE GYRO TORQUING ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC,
|
||||
# MGC, AND OGC RESPECTIVELY.
|
||||
|
||||
COUNT 23/INFLT
|
||||
|
||||
CALCGTA ITA DLOAD # PUSHDOWN 00-03,16D-27D,34D-37D
|
||||
S2 # XDC = (XD1 XD2 XD3)
|
||||
XDC # YDC = (YD1 YD2 YD3)
|
||||
PDDL PDDL # ZDC = (ZD1 ZD2 ZD3)
|
||||
HI6ZEROS
|
||||
XDC +4
|
||||
DCOMP VDEF
|
||||
UNIT
|
||||
STODL ZPRIME # ZP = UNIT(-XD3 0 XD1) = (ZP1 ZP2 ZP3)
|
||||
ZPRIME
|
||||
|
||||
SR1
|
||||
STODL SINTH # SIN(IGC) = ZP1
|
||||
ZPRIME +4
|
||||
SR1
|
||||
STCALL COSTH # COS(IGC) = ZP3
|
||||
ARCTRIG
|
||||
|
||||
STODL IGC # Y GYRO TORQUING ANGLE FRACTION OF REV.
|
||||
XDC +2
|
||||
SR1
|
||||
STODL SINTH # SIN(MGC) = XD2
|
||||
ZPRIME
|
||||
|
||||
DMP PDDL
|
||||
XDC +4 # PD00 = (ZP1)(XD3)
|
||||
ZPRIME +4
|
||||
|
||||
DMP DSU
|
||||
XDC # MPAC = (ZP3)(XD1)
|
||||
STADR
|
||||
STCALL COSTH # COS(MGC) = MPAC - PD00
|
||||
ARCTRIG
|
||||
# Page 1356
|
||||
STOVL MGC # Z GYRO TORQUING ANGLE FRACTION OF REV.
|
||||
ZPRIME
|
||||
DOT
|
||||
ZDC
|
||||
STOVL COSTH # COS(OGC) = ZP . ZDC
|
||||
ZPRIME
|
||||
DOT
|
||||
YDC
|
||||
STCALL SINTH # SIN(OGC) = ZP . YDC
|
||||
ARCTRIG
|
||||
|
||||
STCALL OGC # X GYRO TORQUING ANGLE FRACTION OF REV.
|
||||
S2
|
||||
|
||||
# Page 1357
|
||||
# ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE.
|
||||
#
|
||||
# THE INPUTS ARE SIN/4 AND COS/4 STORED DP AT SINTH AND COSTH.
|
||||
#
|
||||
# THE OUTPUT IS THE CALCULATED ANGLE BETWEEN +.5 AND -.5 REVOLUTIONS AND STORED AT THETA. THE OUTPUT IS ALSO
|
||||
# AVAILABLE AT MPAC.
|
||||
|
||||
ARCTRIG DLOAD ABS # PUSHDOWN 16D-21D
|
||||
SINTH
|
||||
DSU BMN
|
||||
QTSN45 # ABS(SIN/4) - SIN(45)/4
|
||||
TRIG1 # IF (-45,45) OR (135,-135)
|
||||
|
||||
DLOAD SL1 # (45,135) OR (-135,-45)
|
||||
COSTH
|
||||
ACOS SIGN
|
||||
SINTH
|
||||
STORE THETA # X = ARCCOS(COS) WITH SIGN(SIN)
|
||||
RVQ
|
||||
|
||||
TRIG1 DLOAD SL1 # (-45,45) OR (135,-135)
|
||||
SINTH
|
||||
ASIN
|
||||
STODL THETA # X = ARCSIN(SIN) WITH SIGN(SIN)
|
||||
COSTH
|
||||
BMN
|
||||
TRIG2 # IF (135,-135)
|
||||
|
||||
DLOAD RVQ
|
||||
THETA # X = ARCSIN(SIN) (-45,45)
|
||||
|
||||
TRIG2 DLOAD SIGN # (135,-135)
|
||||
HIDPHALF
|
||||
SINTH
|
||||
DSU
|
||||
THETA
|
||||
STORE THETA # X = .5 WITH SIGN(SIN) - ARCSIN(SIN)
|
||||
RVQ # (+) - (+) OR (-) - (-)
|
||||
|
||||
# Page 1358
|
||||
# SMNB, NBSM, AND AXISROT, WHICH USED TO APPEAR HERE, HAVE BEEN
|
||||
# COMBINED IN A ROUTINE CALLED AX*SR*T, WHICH APPEARS AMONG THE POWERED
|
||||
# FLIGHT SUBROUTINES.
|
||||
|
||||
# Page 1359
|
||||
# CALCGA COMPUTES THE CDU DRIVING ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
|
||||
#
|
||||
# THE INPUTS ARE 1) THE NAVIGATION BASE COORDINATES REFERRED TO ANY COORDINATE SYSTEM. THE THREE HALF-UNIT
|
||||
# VECTORS ARE STORED AT XNB, YNB, AND ZNB. 2) THE DESIRED STABLE MEMBER COORDINATES REFERRED TO THE SAME
|
||||
# COORDINATE SYSTEM ARE STORED AT XSM, YSM, AND ZSM.
|
||||
#
|
||||
# THE OUTPUTS ARE THE THREE CDU DRIVING ANGLES AND ARE STORED SP AT THETAD, THETAD +1, AND THETAD +2.
|
||||
|
||||
CALCGA SETPD # PUSHDOWN 00-05, 16D-21D, 34D-37D
|
||||
0
|
||||
VLOAD VXV
|
||||
XNB # XNB = OGA (OUTER GIMBAL AXIS)
|
||||
YSM # YSM = IGA (INNER GIMBAL AXIS)
|
||||
UNIT PUSH # PD0 = UNIT(OGA X IGA) = MGA
|
||||
|
||||
DOT ITA
|
||||
ZNB
|
||||
S2
|
||||
STOVL COSTH # COS(OG) = MGA . ZNB
|
||||
0
|
||||
DOT
|
||||
YNB
|
||||
STCALL SINTH # SIN(OG) = MGA . YNB
|
||||
ARCTRIG
|
||||
STOVL OGC
|
||||
0
|
||||
|
||||
VXV DOT # PROVISION FOR MG ANGLE OF 90 DEGREES
|
||||
XNB
|
||||
YSM
|
||||
SL1
|
||||
STOVL COSTH # COS(MG) = IGA . (MGA X OGA)
|
||||
YSM
|
||||
DOT
|
||||
XNB
|
||||
STCALL SINTH # SIN(MG) = IGA . OGA
|
||||
ARCTRIG
|
||||
STORE MGC
|
||||
|
||||
ABS DSU
|
||||
.166...
|
||||
BPL
|
||||
GIMLOCK1 # IF ANGLE GREATER THAN 60 DEGREES
|
||||
|
||||
CALCGA1 VLOAD DOT
|
||||
ZSM
|
||||
0
|
||||
STOVL COSTH # COS(IG) = ZSM . MGA
|
||||
XSM
|
||||
# Page 1360
|
||||
DOT STADR
|
||||
STCALL SINTH # SIN(IG) = XSM . MGA
|
||||
ARCTRIG
|
||||
|
||||
STOVL IGC
|
||||
OGC
|
||||
RTB BONCLR
|
||||
V1STO2S
|
||||
CPHIFLAG
|
||||
S2
|
||||
STCALL THETAD
|
||||
S2
|
||||
|
||||
GIMLOCK1 EXIT
|
||||
TC ALARM
|
||||
OCT 00401
|
||||
TC UPFLAG # GIMBAL LOCK HAS OCCURRED
|
||||
ADRES GLOKFAIL
|
||||
|
||||
TC INTPRET
|
||||
GOTO
|
||||
CALCGA1
|
||||
|
||||
# Page 1361
|
||||
# AXISGEN COMPUTES THE COORDINATES OF ONE COORDINATE SYSTEM REFERRED TO ANOTHER COORDINATE SYSTEM.
|
||||
#
|
||||
# THE INPUTS ARE 1) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM A STORED AT STARAD. 2) THE STAR2 VECTOR
|
||||
# REFERRED TO COORDINATE SYSTEM A STORED AT STARAD +6. 3) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM B STORED
|
||||
# AT LOCATION 6 OF THE VAC AREA. 4) THE STAR2 VECTOR REFERRED TO COORDINATE SYSTEM B STORED AT LOCATION 12D OF
|
||||
# THE VAC AREA.
|
||||
#
|
||||
# THE OUTPUT DEFINES COORDINATE SYSTEM A REFERRED TO COORDINATE SYSTEM B. THE THREE HALF-UNIT VECTORS ARE STORED
|
||||
# AT LOCATIONS XDC, XDC +6, XDC +12D, AND STARAD, STARAD +6, STARAD +12D.
|
||||
|
||||
AXISGEN AXT,1 SSP # PUSHDOWN 00-30D, 34D-37D
|
||||
STARAD +6
|
||||
S1
|
||||
STARAD -6
|
||||
|
||||
SETPD
|
||||
0
|
||||
AXISGEN1 VLOAD* VXV* # 06D UA = S1
|
||||
STARAD +12D,1 # STARAD +00D UB = S1
|
||||
STARAD +18D,1
|
||||
UNIT # 12D VA = UNIT(S1 X S2)
|
||||
STORE STARAD +18D,1 # STARAD +06D VB = UNIT(S1 X S2)
|
||||
VLOAD*
|
||||
STARAD +12D,1
|
||||
|
||||
VXV* VSL1
|
||||
STARAD +18D,1 # 18D WA = UA X VA
|
||||
STORE STARAD +24D,1 # STARAD +12D WB = UB X VB
|
||||
|
||||
TIX,1
|
||||
AXISGEN1
|
||||
|
||||
AXC,1 SXA,1
|
||||
6
|
||||
30D
|
||||
|
||||
AXT,1 SSP
|
||||
18D
|
||||
S1
|
||||
6
|
||||
|
||||
AXT,2 SSP
|
||||
6
|
||||
S2
|
||||
2
|
||||
|
||||
AXISGEN2 XCHX,1 VLOAD*
|
||||
30D # X1=-6 X2=+6 X1=-6 X2=+4 X1=-6 X2=+2
|
||||
0,1
|
||||
|
||||
# Page 1362
|
||||
VXSC* PDVL* # J=(UA)(UB1) J=(UA)(UB2) J=(UA)(UB3)
|
||||
STARAD +6,2
|
||||
6,1
|
||||
VXSC*
|
||||
STARAD +12D,2
|
||||
STOVL* 24D # K=(VA)(VB1) J=(VA)(VB2) J=(VA)(VB3)
|
||||
12D,1
|
||||
|
||||
VXSC* VAD
|
||||
STARAD +18D,2 # L=(WA)(WB1) J=(WA)(WB2) J=(WA)(WB3)
|
||||
VAD VSL1
|
||||
24D
|
||||
XCHX,1 UNIT
|
||||
30D
|
||||
STORE XDC +18D,1 # XDC = L+J+K YDC = L+J+K ZDC = L+J+K
|
||||
|
||||
TIX,1
|
||||
AXISGEN3
|
||||
|
||||
AXISGEN3 TIX,2
|
||||
AXISGEN2
|
||||
|
||||
VLOAD
|
||||
XDC
|
||||
STOVL STARAD
|
||||
YDC
|
||||
STOVL STARAD +6
|
||||
ZDC
|
||||
STORE STARAD +12D
|
||||
|
||||
RVQ
|
||||
|
||||
# Page 1363
|
||||
QTSN45 2DEC .1768
|
||||
.166... 2DEC .1666666667
|
||||
|
||||
# Page 1364 (empty page)
|
||||
|
||||
|
1174
Comanche055/INTEGRATION_INITIALIZATION.agc
Normal file
1174
Comanche055/INTEGRATION_INITIALIZATION.agc
Normal file
File diff suppressed because it is too large
Load Diff
183
Comanche055/INTER-BANK_COMMUNICATION.agc
Normal file
183
Comanche055/INTER-BANK_COMMUNICATION.agc
Normal file
@ -0,0 +1,183 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INTER-BANK_COMMUNICATION.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. 1103-1106
|
||||
# Contact: Ron Burkey <info@sandroid.org>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 2009-05-08 RSB Adapted from Colossus249/ file of 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 1103
|
||||
# THE FOLLOWING ROUTINE CAN BE USED TO CALL A SUBROUTINE IN ANOTHER BANK. IN THE BANKCALL VERSION, THE
|
||||
# CADR OF THE SUBROUTINE IMMEDIATELY FOLLOWS THE TC BANKCALL INSTRUCTION, WITH C(A) AND C(L) PRESERVED.
|
||||
|
||||
BLOCK 02
|
||||
COUNT 02/BANK
|
||||
|
||||
BANKCALL DXCH BUF2 # SAVE INCOMING A,L.
|
||||
INDEX Q # PICK UP CADR.
|
||||
CA 0
|
||||
INCR Q # SO WE RETURN TO THE LOC. AFTER THE CADR.
|
||||
|
||||
# SWCALL IS IDENTICAL TO BANKCALL, EXCEPT THAT THE CADR ARRIVES IN A.
|
||||
|
||||
SWCALL TS L
|
||||
LXCH FBANK # SWITCH BANKS, SAVING RETURN.
|
||||
MASK LOW10 # GET SUB-ADDRESS OF CADR.
|
||||
XCH Q # A,L NOW CONTAINS DP RETURN.
|
||||
DXCH BUF2 # RESTORING INPUTS IF THIS IS A BANKCALL.
|
||||
INDEX Q
|
||||
TC 10000 # SETTING Q TO SWRETURN
|
||||
|
||||
SWRETURN XCH BUF2 +1 # COMES HERE TO RETURN TO CALLER. C(A,L)
|
||||
XCH FBANK # ARE PRESERVED FOR RETURN.
|
||||
XCH BUF2 +1
|
||||
TC BUF2
|
||||
|
||||
# THE FOLLOWING ROUTINE CAN BE USED AS A UNILATERAL JUMP WITH C(A,L) PRESERVED AND THE CADR IMMEDIATELY
|
||||
# FOLLOWING THE TC POSTJUMP INSTRUCTION.
|
||||
|
||||
POSTJUMP XCH Q # SAVE INCOMING C(A).
|
||||
INDEX A # GET CADR.
|
||||
CA 0
|
||||
|
||||
# BANKJUMP IS THE SAME AS POSTJUMP, EXCEPT THAT THE CADR ARRIVES IN A.
|
||||
|
||||
BANKJUMP TS FBANK
|
||||
MASK LOW10
|
||||
XCH Q # RESTORING INPUT C(A) IF THIS WAS A
|
||||
Q+10000 INDEX Q # POSTJUMP.
|
||||
PRIO12 TCF 10000 # PRIO12 = TCF 10000 = 12000
|
||||
|
||||
# Page 1104
|
||||
# THE FOLLOWING ROUTINE GETS THE RETURN CADR SAVED BY SWCALL OR BANKCALL AND LEAVES IT IN A.
|
||||
|
||||
MAKECADR CAF LOW10
|
||||
MASK BUF2
|
||||
AD BUF2 +1
|
||||
TC Q
|
||||
|
||||
SUPDACAL TS MPTEMP
|
||||
XCH FBANK # SET FBANK FOR DATA.
|
||||
EXTEND
|
||||
ROR SUPERBNK # SAVE FBANK IN BITS 15-11, AND
|
||||
XCH MPTEMP # SUPERBANK IN BITS 7-5.
|
||||
MASK LOW10
|
||||
XCH L # SAVE REL. ADR. IN BANK, FETCH SUPERBITS.
|
||||
INHINT # BECAUSE RUPT DOES NOT SAVE SUPERBANK.
|
||||
EXTEND
|
||||
WRITE SUPERBNK # SET SUPERBANK FOR DATA.
|
||||
INDEX L
|
||||
CA 10000 # PINBALL (FIX MEM DISP) PREVENTS DCA HERE
|
||||
XCH MPTEMP # SAVE 1ST WD, FETCH OLD FBANK AND SBANK.
|
||||
EXTEND
|
||||
WRITE SUPERBNK # RESTORE SUPERBANK.
|
||||
RELINT
|
||||
TS FBANK # RESTORE FBANK.
|
||||
CA MPTEMP # RECOVER FIRST WORD OF DATA.
|
||||
RETURN # 24 WDS. DATACALL 516 MU, SUPDACAL 432 MU
|
||||
|
||||
# Page 1105
|
||||
# THE FOLLOWING ROUTINES ARE IDENTICAL TO BANKCALL AND SWCALL EXCEPT THAT THEY ARE USED IN INTERRUPT.
|
||||
|
||||
IBNKCALL DXCH RUPTREG3 # USES RUPTREG3,4 FOR DP RETURN ADDRESS.
|
||||
INDEX Q
|
||||
# Was CAF --- RSB 2009
|
||||
CA 0
|
||||
INCR Q
|
||||
|
||||
ISWCALL TS L
|
||||
LXCH FBANK
|
||||
MASK LOW10
|
||||
XCH Q
|
||||
DXCH RUPTREG3
|
||||
INDEX Q
|
||||
TC 10000
|
||||
|
||||
ISWRETRN XCH RUPTREG4
|
||||
XCH FBANK
|
||||
XCH RUPTREG4
|
||||
TC RUPTREG3
|
||||
|
||||
# 2. USPRCADR ACCESSES INTERPRETIVE CODING IN OTHER THAN THE USER'S FBANK. THE CALLING SEQUENCE IS AS FOLLOWS:
|
||||
# L TC USPRCADR
|
||||
# L+1 CADR INTPRETX # INTPRETX IS THE INTERPRETIVE CODING
|
||||
# # RETURN IS TO L+2
|
||||
|
||||
USPRCADR TS LOC # SAVE A
|
||||
CA BIT8
|
||||
TS EDOP # EXIT INSTRUCTION TO EDOP
|
||||
CA BBANK
|
||||
TS BANKSET # USER'S BBANK TO BANKSET
|
||||
INDEX Q
|
||||
CA 0
|
||||
TS FBANK # INTERPRETIVE BANK TO FBANK
|
||||
MASK LOW10 # YIELDS INTERPRETIVE RELATIVE ADDRESS
|
||||
XCH Q # INTERPRETIVE ADDRESS TO Q, FETCHING L+1
|
||||
XCH LOC # L+1 TO LOC, RETRIEVING ORIGINAL A
|
||||
TCF Q+10000
|
||||
|
||||
# Page 1106
|
||||
# THERE ARE FOUR POSSIBLE SETTINGS FOR CHANNEL 07. (CHANNEL 07 CONTAINS SUPERBANK SETTING.)
|
||||
#
|
||||
# PSEUDO-FIXED OCTAL PSEUDO
|
||||
# SUPERBANK SETTING S-REG. VALUE BANK NUMBERS ADDRESSES
|
||||
# ---------- ------- ------------ ------------ ------------
|
||||
# SUPERBANK 3 0XX 2000 - 3777 30 - 37 70000 - 107777 (WHERE XX CAN BE ANYTHING AND
|
||||
# WILL USUALLY BE SEEN AS 11)
|
||||
# SUPERBANK 4 100 2000 - 3777 40 - 47 110000 - 127777 (AS FAR AS IT CAN BE SEEN,
|
||||
# ONLY BANKS 40-43 WILL EVER BE
|
||||
# AND ARE PRESENTLY AVAILABLE)
|
||||
# SUPERBANK 5 101 2000 - 3777 50 - 57 130000 - 147777 (PRESENTLY NOT AVAILABLE TO
|
||||
# THE USER)
|
||||
# SUPERBANK 6 110 2000 - 3777 60 - 67 150000 - 167777 (PRESENTLY NOT AVAILABLE TO
|
||||
# THE USER)
|
||||
# *** THIS ROUTINE MAYBE CALLED BY ANY PROGRAM LOCATED IN BANKS 00 - 27. I.E., NO PROGRAM LIVING IN ANY
|
||||
# SUPERBANK SHOULD USE SUPERSW. ***
|
||||
#
|
||||
# SUPERSW MAYBE CALLED IN THIS FASHION:
|
||||
# CAF ABBCON WHERE -- ABBCON BBCON SOMETHIN --
|
||||
# TCR SUPERSW (THE SUPERBNK BITS ARE IN THE BBCON)
|
||||
# ... ...
|
||||
# . .
|
||||
# . .
|
||||
# OR IN THIS FASHION :
|
||||
# CAF SUPERSET WHERE SUPERSET IS ONE OF THE FOUR AVAILABLE
|
||||
# TCR SUPERSW SUPERBANK BIT CONSTANTS:
|
||||
# ... ... SUPER011 OCTAL 60
|
||||
# . . SUPER100 OCTAL 100
|
||||
# . . SUPER101 OCTAL 120
|
||||
# SUPER110 OCTAL 140
|
||||
|
||||
SUPERSW EXTEND
|
||||
WRITE SUPERBNK # WRITE BITS 7-6-5 OF THE ACCUMULATOR INTO
|
||||
# CHANNEL 07
|
||||
TC Q # TC TO INSTRUCTION FOLLOWING
|
||||
# TC SUPERSW
|
||||
|
||||
|
||||
|
3063
Comanche055/INTERPRETER.agc
Normal file
3063
Comanche055/INTERPRETER.agc
Normal file
File diff suppressed because it is too large
Load Diff
82
Comanche055/INTERPRETIVE_CONSTANTS.agc
Normal file
82
Comanche055/INTERPRETIVE_CONSTANTS.agc
Normal file
@ -0,0 +1,82 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INTERPRETIVE_CONSTANTS.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: 1205-1206
|
||||
# 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 1205
|
||||
SETLOC INTPRET1
|
||||
BANK
|
||||
|
||||
COUNT 23/ICONS
|
||||
|
||||
DP1/4TH 2DEC .25
|
||||
|
||||
UNITZ 2DEC 0
|
||||
|
||||
UNITY 2DEC 0
|
||||
|
||||
UNITX 2DEC .5
|
||||
|
||||
ZEROVECS 2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
DPHALF = UNITX
|
||||
DPPOSMAX OCT 37777
|
||||
OCT 37777
|
||||
|
||||
# Page 1206
|
||||
# INTERPRETIVE CONSTANTS IN THE OTHER HALF-MEMORY
|
||||
|
||||
SETLOC INTPRET2
|
||||
BANK
|
||||
|
||||
COUNT 14/ICONS
|
||||
|
||||
ZUNIT 2DEC 0
|
||||
|
||||
YUNIT 2DEC 0
|
||||
|
||||
XUNIT 2DEC .5
|
||||
|
||||
ZEROVEC 2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
OCT 77777 # -0,-6,-12 MUST REMAIN IN THIS ORDER
|
||||
DEC-6 DEC -6
|
||||
DEC-12 DEC -12
|
||||
LODPMAX 2OCT 3777737777 # THESE TWO CONSTANTS MUST REMAIN
|
||||
|
||||
LODPMAX1 2OCT 3777737777 # ADJACENT AND THE SAME FOR INTEGRATION
|
||||
|
||||
ZERODP = ZEROVEC
|
||||
HALFDP = XUNIT
|
122
Comanche055/INTERRUPT_LEAD_INS.agc
Normal file
122
Comanche055/INTERRUPT_LEAD_INS.agc
Normal file
@ -0,0 +1,122 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INTERRUPT_LEAD_INS.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. 131-132
|
||||
# Contact: Ron Burkey <info@sandroid.org>,
|
||||
# Fabrizio Bernardini <fabrizio@spacecraft.it>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 09/05/09 FB Transcription of Batch FB-1 Assignment.
|
||||
#
|
||||
# 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 131
|
||||
SETLOC 4000
|
||||
|
||||
COUNT 02/RUPTS
|
||||
|
||||
INHINT # GO
|
||||
CAF GOBB
|
||||
XCH BBANK
|
||||
TCF GOPROG
|
||||
|
||||
DXCH ARUPT # T6RUPT
|
||||
EXTEND
|
||||
DCA T6LOC
|
||||
DTCB
|
||||
|
||||
DXCH ARUPT # T5RUPT
|
||||
CS TIME5
|
||||
AD .5SEC
|
||||
TCF T5RUPT
|
||||
|
||||
DXCH ARUPT # T3RUPT
|
||||
CAF T3RPTBB
|
||||
XCH BBANK
|
||||
TCF T3RUPT
|
||||
|
||||
DXCH ARUPT # T4RUPT
|
||||
CAF T4RPTBB
|
||||
XCH BBANK
|
||||
TCF T4RUPT
|
||||
|
||||
DXCH ARUPT # KEYRUPT1
|
||||
CAF KEYRPTBB
|
||||
XCH BBANK
|
||||
TCF KEYRUPT1
|
||||
|
||||
DXCH ARUPT # KEYRUPT2
|
||||
CAF MKRUPTBB
|
||||
XCH BBANK
|
||||
TCF MARKRUPT
|
||||
|
||||
DXCH ARUPT # UPRUPT
|
||||
CAF UPRPTBB
|
||||
XCH BBANK
|
||||
TCF UPRUPT
|
||||
|
||||
DXCH ARUPT # DOWNRUPT
|
||||
CAF DWNRPTBB
|
||||
XCH BBANK
|
||||
TCF DODOWNTM
|
||||
|
||||
DXCH ARUPT # RADAR RUPT
|
||||
# Page 132
|
||||
CAF RDRPTBB
|
||||
XCH BBANK
|
||||
TCF VHFREAD
|
||||
|
||||
DXCH ARUPT # HAND CONTROL RUPT
|
||||
CAF HCRUPTBB
|
||||
XCH BBANK
|
||||
TCF RESUME +3 # NOT USED
|
||||
EBANK= LST1 # RESTART USES E0,E3
|
||||
GOBB BBCON GOPROG
|
||||
|
||||
EBANK= LST1
|
||||
T3RPTBB BBCON T3RUPT
|
||||
|
||||
EBANK= KEYTEMP1
|
||||
KEYRPTBB BBCON KEYRUPT1
|
||||
|
||||
EBANK= MRKBUF1
|
||||
MKRUPTBB BBCON MARKRUPT
|
||||
|
||||
UPRPTBB = KEYRPTBB
|
||||
|
||||
EBANK= DNTMBUFF
|
||||
DWNRPTBB BBCON DODOWNTM
|
||||
|
||||
EBANK= DATATEST
|
||||
RDRPTBB BBCON VHFREAD
|
||||
EBANK= TIME1
|
||||
HCRUPTBB BBCON RESUME # NOT USED
|
||||
EBANK= DSRUPTSW
|
||||
T4RPTBB BBCON T4RUPT
|
||||
EBANK= TIME1
|
||||
T5RPTBB BBCON T5RUPT
|
||||
|
||||
T5RUPT EXTEND
|
||||
BZMF NOQBRSM
|
||||
EXTEND
|
||||
DCA T5LOC
|
||||
DTCB
|
||||
|
920
Comanche055/JET_SELECTION_LOGIC.agc
Normal file
920
Comanche055/JET_SELECTION_LOGIC.agc
Normal file
@ -0,0 +1,920 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: JET_SELECTION_LOGIC.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: 1039-1062
|
||||
# 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 1039
|
||||
BANK 21
|
||||
SETLOC DAPS4
|
||||
BANK
|
||||
|
||||
COUNT 17/DAPJS
|
||||
|
||||
EBANK= KMPAC
|
||||
|
||||
# EXAMINE CHANNEL 31 FOR TRANSLATION COMMANDS
|
||||
|
||||
JETSLECT LXCH BANKRUPT
|
||||
CAF DELTATT3 # = 60 MS RESET TO EXECUTE PHASE1
|
||||
AD T5TIME
|
||||
TS TIME5
|
||||
TCF +3
|
||||
CAF DELATT20 # = 20 MS TO ASSURE A T5RUPT
|
||||
TS TIME5
|
||||
CAF =14MS # RESET T6 TO INITIALIZE THE JET CHANNELS
|
||||
TS TIME6 # IN 14 MS
|
||||
CAF NEGMAX
|
||||
EXTEND
|
||||
WOR CHAN13
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
CAF XLNMASK # = 7700 OCT
|
||||
EXTEND # EXAMINE THE TRANSLATION
|
||||
RXOR CHAN31 # HAND CONTROLLER
|
||||
MASK XLNMASK
|
||||
EXTEND
|
||||
BZF NOXLNCMD
|
||||
TS T5TEMP
|
||||
EXTEND
|
||||
MP BIT9
|
||||
MASK THREE
|
||||
TS XNDX1 # AC QUAD X-TRANSLATION INDEX
|
||||
TS XNDX2 # BD QUAD X-TRANSLATION INDEX
|
||||
CA T5TEMP
|
||||
EXTEND # 1 = + XLN
|
||||
MP BIT7 # 2 = - XLN
|
||||
MASK THREE # 3 = NO XLN
|
||||
TS YNDX # Y-TRANSLATION INDEX
|
||||
|
||||
CA T5TEMP
|
||||
EXTEND
|
||||
MP BIT5
|
||||
MASK THREE
|
||||
TS ZNDX # Z-TRANSLATION INDEX
|
||||
|
||||
CA DAPDATR1 # SET ATTKALMN TO PICK UP FILTER GAINS FOR
|
||||
MASK BIT14 # TRANSLATIONS.
|
||||
EXTEND # CHECK DAPDATR1 BIT 14 FOR LEM ATTACHED.
|
||||
# Page 1040
|
||||
BZF NOLEM
|
||||
CS THREE # IF LEM IS ON, SET ATTKALMN = -3
|
||||
TCF +2
|
||||
NOLEM CS TWO # IF LEM IS OFF, SET ATTKALMN = -2.
|
||||
TS ATTKALMN
|
||||
CCS XTRANS # (+, -1, 0)
|
||||
TS XNDX1 # USING BD-X ZERO XNDX1
|
||||
TCF PWORD
|
||||
TS XNDX2 # USING AC-X ZERO XNDX2
|
||||
TCF PWORD
|
||||
XLNMASK OCT 7700
|
||||
|
||||
DELTATT3 DEC 16378 # = 60 MS
|
||||
DELATT20 DEC 16382 # = 20 MS
|
||||
|
||||
NOXLNCMD TS XNDX1 # ZERO ALL REQUESTS FOR TRANSLATION
|
||||
TS XNDX2
|
||||
TS YNDX
|
||||
TS ZNDX
|
||||
|
||||
# PITCH COMMANDS TIMING(NO X-TRANS, NO QUAD FAILS) 32MCT
|
||||
|
||||
PWORD CCS TAU1 # CHECK FOR PITCH COMMANDS
|
||||
CAF ONE
|
||||
TCF +2 # 0 = NO PITCH
|
||||
CAF TWO # +1 = + PITCH
|
||||
TS PINDEX # +2 = - PITCH
|
||||
|
||||
CCS RACFAIL # FLAG FOR REAL AC QUAD FAILURES
|
||||
TCF AFAILP
|
||||
TCF TABPCOM # 0 = NO REAL AC FAILURES
|
||||
TCF CFAILP # + = A QUAD FAILED
|
||||
TCF TABPCOM # - = C QUAD FAILED
|
||||
# IF FAILURES ARE PRESENT IGNORE
|
||||
# X-TRANSLATIONS ON THIS AXIS
|
||||
|
||||
AFAILP CAF NINE # IF FAILURE IS PRESENT 1JET OPERATION
|
||||
TCF TABPCOM +2 # IS ASSUMED. IGNORE X-TRANSLATION
|
||||
CFAILP CAF TWELVE
|
||||
TCF TABPCOM +2
|
||||
|
||||
XLNNDX DEC 0 # INDICES FOR TRANSLATION COMMANDS
|
||||
DEC 3 # FOR USE IN TABLE LOOK UP
|
||||
DEC 6
|
||||
DEC 0
|
||||
|
||||
TWELVE = OCT14
|
||||
# TABLE LOOK UP FOR PITCH COMMANDS WITH AND WITHOUT X-TRANSLATION AND AC QUAD FAILURES PRESENT.
|
||||
# BITS 9, 10 CONTAIN THE NUMBER OF PITCH JETS USED TO PERFORM THE PITCH ROTATION
|
||||
# Page 1041
|
||||
|
||||
TABPCOM INDEX XNDX1
|
||||
CA XLNNDX
|
||||
AD PINDEX
|
||||
INDEX A
|
||||
CA PYTABLE
|
||||
MASK PJETS # =1417 OCT
|
||||
TS PWORD1
|
||||
EXTEND
|
||||
MP BIT7
|
||||
TS NPJETS # = NO. OF PITCH JETS
|
||||
|
||||
# YAW JET COMMANDS TIMING(NO X-TRANS, NO QUAD FAILURES) 32MCT
|
||||
|
||||
YWORD CCS TAU2 # CHECK FOR YAW COMMANDS
|
||||
CAF ONE
|
||||
TCF +2
|
||||
CAF TWO
|
||||
TS YINDEX # YAW ROTATION INDEX
|
||||
|
||||
CCS RBDFAIL # FLAG FOR B OR D QUAD FAILURES
|
||||
TCF BFAILY # 0 = NO BD FAILURE
|
||||
TCF TABYCOM # + = B QUAD FAILED
|
||||
TCF DFAILY # - = D QUAD FAILED
|
||||
TCF TABYCOM
|
||||
|
||||
BFAILY CAF NINE
|
||||
TCF TABYCOM +2
|
||||
DFAILY CAF TWELVE
|
||||
TCF TABYCOM +2
|
||||
|
||||
# Page 1042
|
||||
# TABLE FOR PITCH(YAW) COMMANDS
|
||||
# BITS 4,3,2,1 = PITCH, X-TRANSLATION JETS SELECTED
|
||||
# BITS 10,9 = NO. PITCH JETS USED TO PERFORM ROTATION
|
||||
# BITS 8,7,6,5 = YAW, X-TRANSLATION JETS SELECTED
|
||||
# BITS 12,11 : NO. YAW JETS USED TO PERFORM ROTATION
|
||||
|
||||
# ROT TRANS QUAD BIAS
|
||||
PYTABLE OCT 0 # 0 0 0
|
||||
OCT 5125 # + 0 0
|
||||
OCT 5252 # - 0 0
|
||||
OCT 0231 # 0 + 3
|
||||
OCT 2421 # + + 3
|
||||
OCT 2610 # - + 3
|
||||
OCT 0146 # 0 - 6
|
||||
OCT 2504 # + - 6
|
||||
OCT 2442 # - - 6
|
||||
OCT 0 # 0 A(B) 9
|
||||
OCT 2421 # + A(B) 9
|
||||
OCT 2442 # - A(B) 9
|
||||
OCT 0 # 0 C(D) 12
|
||||
OCT 2504 # + C(D) 12
|
||||
OCT 2610 # - C(D) 12
|
||||
|
||||
# MASKS FOR PITCH AND YAW COMMANDS
|
||||
|
||||
PJETS OCT 1417
|
||||
YJETS OCT 6360
|
||||
|
||||
# TABLE LOOK UP FOR YAW COMMANDS WITH AND WITHOUT X-TRANSLATION AND AC QUAD FAILURES PRESENT
|
||||
# BITS 11, 12 CONTAIN THE NUMBER OF YAW JETS USED TO PERFORM THE YAW ROTATION
|
||||
|
||||
TABYCOM INDEX XNDX2
|
||||
CA XLNNDX
|
||||
AD YINDEX
|
||||
INDEX A
|
||||
CA PYTABLE
|
||||
MASK YJETS # = 6360 OCT
|
||||
TS YWORD1
|
||||
EXTEND
|
||||
MP BIT5
|
||||
TS NYJETS # NO. OF YAW JETS USED TO PERFORM ROTATION
|
||||
|
||||
# Page 1043
|
||||
# ROLL COMMANDS TIMING(NO Y,Z TRANS, NO QUAD FAILS) 45MCT
|
||||
|
||||
RWORD CCS TAU # CHECK FOR ROLL COMMANDS
|
||||
CAF ONE
|
||||
TCF +2
|
||||
CAF TWO
|
||||
TS RINDEX
|
||||
|
||||
CCS ACORBD # FLAG FOR AC OR BD QUAD SELECTION FOR
|
||||
TCF BDROLL # ROLL COMMANDS
|
||||
TCF BDROLL # +, +0 = BD ROLL
|
||||
TCF +1 # -, -0 = AC ROLL
|
||||
|
||||
ACROLL CCS RACFAIL # CHECK FOR REAL FAILURES
|
||||
TCF RAFAIL # ON AC QUADS
|
||||
TCF RXLNS
|
||||
TCF RCFAIL
|
||||
TCF RXLNS
|
||||
|
||||
RAFAIL CAF NINE # QUAD FAILURE WILL GET
|
||||
TCF TABRCOM # 1-JET OPERATION
|
||||
RCFAIL CAF TWELVE
|
||||
TCF TABRCOM
|
||||
|
||||
XLN1NDX DEC 0
|
||||
DEC 1 # INDECES FOR TRANSLATION
|
||||
DEC 2
|
||||
DEC 0
|
||||
|
||||
# TABLE LOOK UP FOR AC-ROLL COMMANDS WITH AND WITHOUT Y-TRANSLATION AND ACQUAD FAILURES PRESENT
|
||||
# BITS 9,10,11 CONTAIN THE MAGNITUDE AND DIRECTION OF THE ROLL
|
||||
|
||||
RXLNS INDEX YNDX # NO AC QUAD FAILURES
|
||||
CA XLNNDX # INCLUDE +,-,0, Y-TRANSLATION
|
||||
TABRCOM AD RINDEX
|
||||
INDEX A
|
||||
CA RTABLE
|
||||
MASK ACRJETS # = 3760 OCT
|
||||
TS RWORD1
|
||||
|
||||
# CHECK FOR Z-TRANSLATIONS ON BD
|
||||
|
||||
BDZCHECK CA ZNDX
|
||||
EXTEND
|
||||
BZMF NOBDZ # NO Z-TRANSLATION
|
||||
|
||||
# Page 1044
|
||||
# TABLE LOOK UP FOR BD Z-TRANSLATION WITH AND WITHOUT REAL BD QUAD FAILURES. Z-TRANSLATION WILL BE POSS-
|
||||
# IBLE AS LONG AS ROLL COMMANDS CAN BE SATISFIED WITH THE AC ROLL JETS. CRITERION.. IF THE RESULTANT NET ROLL
|
||||
# COMMANDS = 0 (WITH Z-TRANSLATION) AND IF TAU = 0, THEN INCLUDE THE BD Z-TRANSLATION COMMANDS. IF THE RESULTANT
|
||||
# ROLL COMMAND = 0, AND IF TAU NZ, THEN IGNORE THE BD Z-TRANSLATION
|
||||
|
||||
CCS RBDFAIL
|
||||
CAF THREE
|
||||
TCF +2
|
||||
CAF SIX
|
||||
INDEX ZNDX
|
||||
AD XLN1NDX
|
||||
INDEX A
|
||||
CA YZTABLE
|
||||
MASK BDZJETS # = 3417 OCT
|
||||
AD RWORD1 # ADD TO ROLL COMMANDS
|
||||
TS T5TEMP # IF POSSIBLE. MUST CHECK TAU FIRST
|
||||
|
||||
EXTEND
|
||||
MP BIT7 # DETERMINE THE NET ROLL COMMAND WITH
|
||||
AD =-4 # Z-TRANSLATION ADDED ON
|
||||
TS NRJETS # NET NO. OF +,- ROLL JETS ON
|
||||
EXTEND
|
||||
BZF TAUCHECK
|
||||
|
||||
ACRBDZ CA T5TEMP # Z-TRANSLATION ACCEPTED EVEN THO WE MAY
|
||||
TS RWORD1 # HAVE INTRODUCED AN UNDESIREABLE ROLL
|
||||
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATIONS
|
||||
|
||||
TAUCHECK CCS TAU
|
||||
TCF NOBDZ
|
||||
TCF ACRBDZ
|
||||
TCF NOBDZ
|
||||
TCF ACRBDZ
|
||||
|
||||
NOBDZ CA RWORD1 # Z-TRANSLATION NOT ACCEPTED
|
||||
EXTEND
|
||||
MP BIT7
|
||||
AD =-2
|
||||
TS NRJETS
|
||||
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATION
|
||||
|
||||
# Page 1045
|
||||
# BD QUAD SELECTION FOR ROLL COMMANDS
|
||||
|
||||
BDROLL CCS RBDFAIL
|
||||
TCF RBFAIL
|
||||
TCF RZXLNS
|
||||
TCF RDFAIL
|
||||
TCF RZXLNS
|
||||
RBFAIL CAF NINE
|
||||
TCF TABRZCMD
|
||||
RDFAIL CAF TWELVE
|
||||
TCF TABRZCMD
|
||||
|
||||
RZXLNS INDEX ZNDX # NO BD FAILURES
|
||||
CA XLNNDX # +,-,0 Z-TRANSLATION PRESENT
|
||||
TABRZCMD AD RINDEX
|
||||
INDEX A
|
||||
CA RTABLE
|
||||
MASK BDRJETS # = 34017 OCT
|
||||
TS RWORD1
|
||||
|
||||
ACYCHECK CA YNDX # ANY Y-TRANSLATION
|
||||
EXTEND
|
||||
BZF NOACY # NO Y-TRANSLATION
|
||||
CCS RACFAIL
|
||||
CAF THREE
|
||||
TCF +2
|
||||
CAF SIX
|
||||
INDEX YNDX
|
||||
AD XLN1NDX
|
||||
INDEX A
|
||||
CA YZTABLE
|
||||
MASK ACYJETS # = 34360 OCT
|
||||
AD RWORD1
|
||||
TS T5TEMP
|
||||
EXTEND # FOR EXPLANATION SEE CODING ON RTABLE
|
||||
MP BIT4
|
||||
AD =-4
|
||||
TS NRJETS # NO. OF NET ROLL JETS
|
||||
EXTEND
|
||||
BZF TAUCHCK # IF NRJETS = 0
|
||||
|
||||
BDRACZ CA T5TEMP # Y-TRANSLATION ACCEPTED
|
||||
TS RWORD1
|
||||
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATIONS
|
||||
|
||||
TAUCHCK CCS TAU
|
||||
TCF NOACY
|
||||
TCF BDRACZ
|
||||
TCF NOACY
|
||||
TCF BDRACZ
|
||||
|
||||
# Page 1046
|
||||
NOACY CA RWORD1 # Y-TRANSLATION NOT ACCEPTED
|
||||
EXTEND
|
||||
MP BIT4
|
||||
AD =-2
|
||||
TS NRJETS
|
||||
TCF ROLLTIME
|
||||
|
||||
# Page 1047
|
||||
# TABLE FOR ROLL, Y AND Z-TRANSLATION COMMANDS
|
||||
|
||||
# EITHER AC OR BD ROLL MAY BE SELECTED. IF AC ROLL IS SELECTED, Y-TRANSLATIONS MAY BE SATISFIED SIMULTANEOUSLY
|
||||
# PROVIDED THAT THERE ARE NO AC QUAD FAILURES. IF THERE ARE AC FAILURES, Y-TRANSLATION COMMANDS WILL BE IGNORED,
|
||||
# IN WHICH CASE THE ASTRONAUT SHOULD SWITCH TO BD ROLL.
|
||||
# IF BDROLL IS SELECTED, Z-TRANSLATIONS MAY BE SATISFIED SIMULTANEOUSLY PROVIDED THAT THERE ARE NO BD QUAD
|
||||
# FAILURES. IF THERE ARE BD FAILURES, Z-TRANSLATION COMMANDS WILL BE IGNORED, IN WHICH CASE THE ASTRONAUT SHOULD
|
||||
# SWITCH TO AC ROLL.
|
||||
# NOTE THAT IF ONE QUAD FAILS (E.G. B FAILED), Z-TRANSLATION IS STILL POSSIBLE AND THAT THE UNDESIRABLE ROLL
|
||||
# INTRODUCED BY THIS TRANSLATION WILL BE COMPENSATED BY THE TWO AC ROLL JETS ACTUATED BY THE AUTOPILOT LOGIC.
|
||||
|
||||
# WORD MAKE UP....RTABLE
|
||||
|
||||
# TWO WORDS, CORRESPONDING TO AC OR BD ROLL SELECTION, HAVE BEEN COMBINED INTO ONE TABLE. THE WORD CORRESPOND-
|
||||
# ING TO AC ROLL HAS THE FOLLOWING INTERPRETATION..
|
||||
# BITS 9,10,11 ARE CODED TO GIVE THE NET ROLL TORQUE FOR THE WORD SELECTED. THE CODING IS..
|
||||
# BIT NO. 11 10 9 NO. OF ROLL JETS
|
||||
|
||||
# 0 0 0 -2
|
||||
# 0 0 1 -1
|
||||
# 0 1 0 0
|
||||
# 0 1 1 +1
|
||||
# 1 0 0 +2
|
||||
|
||||
# THIS WORD MAY THEN BE ADDED TO THE WORD SELECTED FROM THE YZ-TRANSLATION TABLE, WHICH HAS THE SAME TYPE OF
|
||||
# CODING AS ABOVE, AND THE NET ROLL DETERMINED BY SHIFTING THE RESULTANT WORD RIGHT 8 PLACES AND SUBTRACTING FOUR.
|
||||
|
||||
# THE WORD CORRESPONDING TO THE BD ROLL HAS A SIMILAR INTERPRETATION, EXCEPT THAT BITS 12, 13, 14 ARE CODED
|
||||
# (AS ABOVE) TO GIVE THE NET ROLL TORQUE.
|
||||
|
||||
# ROLL TRANS QUADFAIL BIAS
|
||||
|
||||
RTABLE OCT 11000 # 0 0
|
||||
OCT 22125 # + 0
|
||||
OCT 00252 # - 0
|
||||
OCT 11231 # 0 +Y(+Z) 3
|
||||
OCT 15421 # + +Y(+Z) 3
|
||||
OCT 04610 # - +Y(+Z) 3
|
||||
OCT 11146 # 0 -Y(-Z) 6
|
||||
OCT 15504 # + -Y(-Z) 6
|
||||
OCT 04442 # - -Y(-Z) 6
|
||||
OCT 11000 # 0 A(B) 9
|
||||
OCT 15504 # + A(B) 9
|
||||
OCT 04610 # - A(B) 9
|
||||
OCT 11000 # 0 C(D) 12
|
||||
OCT 15421 # + C(D) 12
|
||||
OCT 04442 # - C(D) 12
|
||||
|
||||
# Page 1048
|
||||
# RTABLE MASKS -
|
||||
|
||||
ACRJETS OCT 03760
|
||||
BDRJETS OCT 34017
|
||||
|
||||
# Page 1049
|
||||
# Y, Z TRANSLATION TABLE
|
||||
|
||||
# ONCE AC OR BD ROLL IS SELECTED THE QUAD PAIR WHICH IS NOT BEING USED TO SATISFY THE ROLL COMMANDS MAY BE
|
||||
# USED TO SATISFY THE REMAINING TRANSLATION COMMANDS. HOWEVER, WE MUST MAKE SURE THAT ROLL COMMANDS ARE SATISFIED
|
||||
# WHEN THEY OCCUR. THEREFORE, THE Y-Z TRANSLATIONS FROM THIS TABLE WILL BE IGNORED IF THE NET ROLL TORQUE OF THE
|
||||
# COMBINED WORD IS ZERO AND THE ROLL COMMANDS ARE NON-ZERO. THIS SITUATION WOULD OCCUR, FOR EXAMPLE, IF WE EN-
|
||||
# COUNTER SIMULTANEOUS +R +Y -Z COMMANDS AND A QUAD D FAILURE WHILE USING AC FOR ROLL.
|
||||
# TO FACILITATE THE LOGIC, THE Y-Z TRANSLATION TABLE HAS BEEN CODED IN A MANNER SIMILAR TO THE ROLL TABLE
|
||||
# ABOVE.
|
||||
# BITS 9,10,11 ARE CODED TO GIVE THE NET ROLL TORQUE INCURRED BY Z-TRANSLATIONS. THE WORD SELECTED CAN THEN BE
|
||||
# ADDED TO THE AC-ROLL WORD AND THE RESULTANT ROLL TORQUE DETERMINED FROM THE COMBINED WORD. SIMILIARLY BITS
|
||||
# 12,13,14 ARE CODED TO GIVE THE NET ROLL TORQUE INCURRED BY Y-TRANSLATIONS WHEN BD-ROLL IS SELECTED.
|
||||
|
||||
# TRANSLATION QUADFAIL BIAS
|
||||
#
|
||||
YZTABLE OCT 11000 # 0 0
|
||||
OCT 11231 # +Z(+Y) 0
|
||||
OCT 11146 # -Z(-Y) 0
|
||||
OCT 11000 # 0 B(A) 3
|
||||
OCT 04610 # +Z(+Y) B(A) 3
|
||||
OCT 15504 # -Z(-Y) B(A) 3
|
||||
OCT 11000 # 0 D(C) 6
|
||||
OCT 15421 # +Z(+Y) D(C) 6
|
||||
OCT 04442 # -Z(-Y) D(C) 6
|
||||
|
||||
# YZ-TABLE MASKS-
|
||||
|
||||
BDZJETS OCT 03417
|
||||
ACYJETS OCT 34360
|
||||
|
||||
# ADDITIONAL CONSTANTS
|
||||
|
||||
=-2 = NEG2
|
||||
=-4 = NEG4
|
||||
|
||||
# Page 1050
|
||||
# CALCULATION OF JET ON-TIMES
|
||||
#
|
||||
# THE ROTATION COMMANDS (TAU:S), WHICH WERE DETERMINED FROM THE JET SWITCHING LOGIC ON THE BASIS OF SINGLE JET
|
||||
# OPERATION, MUST NOW BE UPDATED BY THE ACTUAL NUMBER OF JETS TO BE USED IN SATISFYING THESE COMMANDS. TAU MUST
|
||||
# ALSO BE DECREMENTED ACCORDING TO THE EXPECTED TORQUE GENERATED BY THE NEW COMMANDS ACTING OVER THE NEXT T5 INT-
|
||||
# ERVAL.
|
||||
# IN ORDER TO MAINTAIN ACCURATE KNOWLEDGE OF VEHICLE ANGULAR RATES, WE MUST ALSO PROVIDE EXPECTED FIRING TIMES
|
||||
# (DFT:S, ALSO IN TERMS OF 1-JET OPERATION) FOR THE RATE FILTER.
|
||||
# NOTE THAT TRANSLATIONS CAN PRODUCE ROTATIONS EVEN THOUGH NO ROTATIONS WERE CALLED FOR. NEVERTHELESS, WE MUST
|
||||
# UPDATE DFT.
|
||||
# WHEN THE ROTATIONS HAVE FINISHED, WE MUST PROVIDE CHANNEL INFORMATION TO THE T6 PROGRAM TO CONTINUE ON WITH
|
||||
# THE TRANSLATIONS. THIS WILL BE DONE IN THE NEXT SECTION. HOWEVER, TO INSURE THAT JETS ARE NOT FIRED FOR LESS
|
||||
# THAN A MINIMUM IMPULSE (14MS), ALL JET CHANNEL COMMANDS WILL BE HELD FIXED FROM THE START OF THE T5 PROGRAM FOR
|
||||
# ATLEAST 14MS UNTIL THE INITIALIZATION OF NEW COMMANDS. MOREOVER, A 14MS ON-TIME WILL BE ADDED TO ANY ROTATIONAL
|
||||
# COMMANDS GENERATED BY THE MANUAL CONTROLS OR THE JET SWITCHING LOGIC, AND ALL TRANSLATION COMMANDS WILL BE
|
||||
# ACTIVE FOR ATLEAST ONE CYCLE OF THE T5 PROGRAM (.1SEC)
|
||||
|
||||
# PITCH JET ON-TIME CALCULATION
|
||||
|
||||
PITCHTIM CCS TAU1
|
||||
TCF PTAUPOS
|
||||
TCF +2
|
||||
TCF PTAUNEG
|
||||
TS DFT1 # NO PITCH ROTATION
|
||||
TCF PBYPASS # COMMANDS
|
||||
|
||||
PTAUNEG CS NPJETS
|
||||
TS NPJETS
|
||||
PTAUPOS CA TAU1
|
||||
EXTEND
|
||||
INDEX NPJETS
|
||||
MP NJET
|
||||
TS BLAST1
|
||||
AD =-.1SEC
|
||||
EXTEND
|
||||
BZMF AD14MSP
|
||||
INDEX NPJETS
|
||||
CA DFTMAX # THE PITCH ON-TIME IS GREATER THAN .1 SEC
|
||||
TS DFT1
|
||||
COM
|
||||
ADS TAU1 # UPDATE TAU1
|
||||
CAF =+.1SEC # LIMIT THE LENGTH OF PITCH ROTATION
|
||||
TS BLAST1 # COMMANDS TO 0.1 SEC SO THAT ONLY
|
||||
TCF ASMBLWP # X-TRANSLATIONS WILL CONTINUE ON SWITCH
|
||||
# OVER TO TVC
|
||||
AD14MSP CS BLAST1 # SEE IF JET ON TIME IS LESS THAN
|
||||
AD =14MS # MINIMUM IMPULSE TIME
|
||||
EXTEND
|
||||
BZMF PBLASTOK # IF SO LIMIT MINIMUM ON TIME TO 14 MS
|
||||
CAF =14MS
|
||||
# Page 1051
|
||||
TS BLAST1
|
||||
PBLASTOK CA BLAST1
|
||||
EXTEND # THE PITCH COMMANDS WILL BE COMPLETED
|
||||
MP NPJETS # WITHIN THE TS-CYCLE TIME
|
||||
LXCH DFT1 # FOR USE IN UPDATING RATE FILTER
|
||||
TS TAU1 # ZERO TAU1 (ACC CONTAINS ZERO)
|
||||
TCF ASMBLWP
|
||||
|
||||
# Page 1052
|
||||
# YAW JET ON-TIME CALCULATION
|
||||
|
||||
YAWTIME CCS TAU2
|
||||
TCF YTAUPOS
|
||||
TCF +2
|
||||
TCF YTAUNEG
|
||||
TS DFT2 # NO YAW ROTATION COMMANDS
|
||||
TCF YBYPASS
|
||||
|
||||
YTAUNEG CS NYJETS
|
||||
TS NYJETS
|
||||
YTAUPOS CA TAU2
|
||||
EXTEND
|
||||
INDEX NYJETS
|
||||
MP NJET
|
||||
TS BLAST2
|
||||
AD =-.1SEC
|
||||
EXTEND
|
||||
BZMF AD14MSY
|
||||
INDEX NYJETS
|
||||
CA DFTMAX # YAW COMMANDS WILL LAST LONGER THAN .1SEC
|
||||
TS DFT2
|
||||
COM
|
||||
ADS TAU2 # DECREMENT TAU2
|
||||
CAF =+.1SEC # LIMIT THE LENGTH OF YAW ROTATION COMMAND
|
||||
TS BLAST2 # TO 0.1 SEC SO THAT ONLY X-TRANSLATION
|
||||
TCF ASMBLWY # WILL CONTINUE ON SWITCH OVER TO TVC
|
||||
|
||||
AD14MSY CS BLAST2 # SEE IF JET ON-TIME LESS THAN
|
||||
AD =14MS # MINIMUM IMPULSE TIME
|
||||
EXTEND
|
||||
BZMF YBLASTOK # IF SO, LIMIT MINIMUM ON-TIME TO 14 MS
|
||||
CAF =14MS
|
||||
TS BLAST2
|
||||
YBLASTOK CA BLAST2 # YAW COMMANDS WILL BE COMPLETED WITHIN
|
||||
EXTEND # THE T5CYCLE TIME
|
||||
MP NYJETS
|
||||
LXCH DFT2
|
||||
TS TAU2 # ZERO TAU2
|
||||
TCF ASMBLWY
|
||||
|
||||
# Page 1053
|
||||
# ROLL ON-TIME CALCULATION-
|
||||
|
||||
ROLLTIME CCS TAU
|
||||
TCF RBLAST
|
||||
TCF +2
|
||||
TCF RBLAST
|
||||
INDEX NRJETS
|
||||
CA DFTMAX # UPDATE DFT EVEN THO NO ROLL COMMANDS ARE
|
||||
TS DFT # PRESENT
|
||||
TCF RBYPASS
|
||||
|
||||
DEC -480 # = -.3SEC
|
||||
DEC -320 # = -.2SEC
|
||||
=-.1SEC DEC -160 # = -.1SEC
|
||||
DFTMAX DEC 0 # 0
|
||||
=+.1SEC DEC 160 # = +.1SEC
|
||||
DEC 320 # = +.2SEC
|
||||
DEC 480 # = +.3SEC
|
||||
=14MS DEC 23 # =14MS
|
||||
|
||||
RBLAST CA TAU
|
||||
EXTEND
|
||||
INDEX NRJETS
|
||||
MP NJET
|
||||
TS BLAST # BLAST IS AN INTERMEDIATE VARIABLE
|
||||
# USED IN DETERMINING THE JET ON-TIMES
|
||||
AD =-.1SEC
|
||||
EXTEND
|
||||
BZMF AD14MSR
|
||||
INDEX NRJETS # THE ROLL ROTATION WILL LAST LONGER
|
||||
CA DFTMAX # THAN THE T5 CYCLE TIME
|
||||
TS DFT
|
||||
COM
|
||||
ADS TAU
|
||||
CAF =+.1SEC # LIMIT THE LENGTH OF ROLL ROTATION
|
||||
TS BLAST # COMMANDS TO 0.1 SEC SO THAT ONLY Y-Z
|
||||
TCF ASMBLWR # TRANSLATION COMMANDS CONTINUE
|
||||
|
||||
AD14MSR CS BLAST # SEE IF THE JET ON-TIME LESS THAN
|
||||
AD =14MS # MINIMUM IMPULSE TIME
|
||||
EXTEND
|
||||
BZMF RBLASTOK
|
||||
CAF =14MS # IF SO, LIMIT MINIMUM ON-TIME TO 14 MS
|
||||
TS BLAST
|
||||
RBLASTOK CA BLAST
|
||||
EXTEND
|
||||
MP NRJETS
|
||||
LXCH DFT
|
||||
TS TAU # ZERO TAU
|
||||
TCF ASMBLWR
|
||||
|
||||
# Page 1054
|
||||
DEC -.333333 # = -1/3
|
||||
DEC -.500000 # = -1/2
|
||||
DEC -.999999 # = -1 (NEGMAX)
|
||||
NJET DEC 0
|
||||
DEC .999999 # = +1 (POSMAX)
|
||||
DEC .500000 # = +1/2
|
||||
DEC .333333 # = +1/3
|
||||
|
||||
# Page 1055
|
||||
# WHEN THE ROTATION COMMANDS ARE COMPLETED, IT IS NECESSARY TO REPLACE THESE COMMANDS BY NEW COMMANDS WHICH
|
||||
# CONTINUE ON WITH THE TRANSLATIONS IF ANY ARE PRESENT.
|
||||
# IN THIS SECTION THESE NEW COMMANDS ARE GENERATED AND STORED FOR REPLACEMENT OF THE CHANNEL COMMANDS WHEN THE
|
||||
# CORRESPONDING ROTATIONS ARE COMPLETED.
|
||||
|
||||
# GENERATION OF THE SECOND PITCH(X-TRANS) WORD...PWORD2
|
||||
|
||||
ASMBLWP CCS RACFAIL
|
||||
TCF FPX2 # IF FAILURE ON AC IGNORE X-TRANSLATION
|
||||
TCF +2
|
||||
TCF FPX2
|
||||
INDEX XNDX1
|
||||
CA XLNNDX
|
||||
INDEX A
|
||||
FPX2 CA PYTABLE
|
||||
MASK PJETS
|
||||
TS PWORD2
|
||||
TCF YAWTIME
|
||||
|
||||
PBYPASS CA PWORD1 # THE T6 PROGRAM WILL LOAD PWORD2
|
||||
TS PWORD2 # UPON ENTRY
|
||||
CAF ZERO
|
||||
TS BLAST1 # THERE IS NO PWORD2
|
||||
TCF YAWTIME
|
||||
|
||||
# Page 1056
|
||||
# GENERATION OF THE SECOND ROLL (Y,Z) WORD (RWORD2)
|
||||
|
||||
ASMBLWR CCS YNDX # CHECK FOR Y-TRANS
|
||||
TCF ACBD2Y
|
||||
NO2Y CAF ZERO
|
||||
TS RWORD2
|
||||
CCS ZNDX # CHECK FOR Z-TRANS
|
||||
TCF ACBD2Z
|
||||
NO2Z CAF ZERO
|
||||
ADS RWORD2
|
||||
TCF PITCHTIM # RWORD2 ASSEMBLED
|
||||
|
||||
ACBD2Y CCS ACORBD
|
||||
TCF AC2Y # CAN DO Y-TRANS
|
||||
TCF AC2Y
|
||||
TCF +1 # USING AC FOR ROLL
|
||||
CCS RACFAIL
|
||||
TCF NO2Y # USING AC AND AC HAS FAILED
|
||||
TCF +2
|
||||
TCF NO2Y # DITTO
|
||||
|
||||
INDEX YNDX # NO FAILURES, CAN DO Y
|
||||
CA XLNNDX
|
||||
INDEX A
|
||||
CA RTABLE
|
||||
MASK ACRJETS
|
||||
TCF NO2Y +1
|
||||
|
||||
AC2Y CCS RACFAIL
|
||||
CAF THREE
|
||||
TCF +2
|
||||
CAF SIX
|
||||
INDEX YNDX
|
||||
AD XLN1NDX
|
||||
INDEX A
|
||||
CA YZTABLE
|
||||
MASK ACYJETS
|
||||
TS RWORD2
|
||||
EXTEND
|
||||
MP BIT4
|
||||
AD =-2
|
||||
TS NRJETS
|
||||
CS BLAST
|
||||
AD =+.1SEC
|
||||
EXTEND
|
||||
MP NRJETS
|
||||
CA L
|
||||
ADS DFT
|
||||
TCF NO2Y +2
|
||||
# Page 1057
|
||||
ACBD2Z CCS ACORBD
|
||||
TCF BDF2Z # USING BD-ROLL
|
||||
TCF BDF2Z # MUST CHECK FOR BD FAILURES
|
||||
TCF +1
|
||||
CCS RBDFAIL # USING AC FOR ROLL, CAN DO Z-TRANS
|
||||
CAF THREE
|
||||
TCF +2
|
||||
CAF SIX
|
||||
INDEX ZNDX
|
||||
AD XLN1NDX
|
||||
INDEX A
|
||||
CA YZTABLE
|
||||
MASK BDZJETS
|
||||
ADS RWORD2
|
||||
EXTEND
|
||||
MP BIT7
|
||||
AD =-2
|
||||
TS NRJETS
|
||||
CS BLAST
|
||||
AD =+.1SEC
|
||||
EXTEND
|
||||
MP NRJETS
|
||||
CA L
|
||||
ADS DFT
|
||||
TCF PITCHTIM
|
||||
|
||||
BDF2Z CCS RBDFAIL
|
||||
TCF NO2Z # USING BD-ROLL AND BD HAS FAILED
|
||||
TCF +2
|
||||
TCF NO2Z # DITTO
|
||||
INDEX ZNDX
|
||||
CA XLNNDX
|
||||
INDEX A
|
||||
CA RTABLE
|
||||
MASK BDRJETS
|
||||
TCF NO2Z +1
|
||||
|
||||
RBYPASS CA RWORD1
|
||||
TS RWORD2
|
||||
CAF ZERO
|
||||
TS BLAST
|
||||
TCF PITCHTIM
|
||||
|
||||
# Page 1058
|
||||
# GENERATION OF THE SECOND YAW (X-TRANS) WORD...YWORD2
|
||||
|
||||
ASMBLWY CCS RBDFAIL
|
||||
TCF FYX2 # IF FAILURE ON BD IGNORE X-TRANSLATION
|
||||
TCF +2
|
||||
TCF FYX2
|
||||
INDEX XNDX2
|
||||
CA XLNNDX
|
||||
INDEX A
|
||||
FYX2 CA PYTABLE
|
||||
MASK YJETS
|
||||
TS YWORD2
|
||||
TCF T6SETUP
|
||||
|
||||
YBYPASS CA YWORD1
|
||||
TS YWORD2
|
||||
CAF ZERO
|
||||
TS BLAST2
|
||||
|
||||
# Page 1059
|
||||
# SORT THE JET ON-TIMES
|
||||
|
||||
# AT THIS POINT ALL THE CHANNEL COMMANDS AND JET ON-TIMES HAVE BEEN DETERMINED. IN SUMMARY THESE ARE-
|
||||
|
||||
# RWORD1
|
||||
# RWORD2 BLAST
|
||||
|
||||
# PWORD1
|
||||
# PWORD2 BLAST1
|
||||
|
||||
# YWORD1
|
||||
# YWORD2 BLAST2
|
||||
|
||||
# IN THIS SECTION THE JET ON-TIMES ARE SORTED AND THE SEQUENCE OF T6 INTERRUPTS IS DETERMINED. TO FACILITATE
|
||||
# THE SORTING PROCESS AND THE T6 PROGRAM, THE VARIABLES BLAST, BLAST1, BLAST2, ARE RESERVED AS DOUBLE PRECISION
|
||||
# WORDS. THE LOWER PART OF THESE WORDS CONTAIN A BRANCH INDEX ASSOCIATED WITH THE ROTATION AXIS OF THE HIGHER
|
||||
# ORDER WORD.
|
||||
|
||||
T6SETUP CAF ZERO # BRANCH INDEX FOR ROLL
|
||||
TS BLAST +1
|
||||
CAF FOUR # BRANCH INDEX FOR PITCH
|
||||
TS BLAST1 +1
|
||||
CAF ELEVEN # BRANCH INDEX FOR YAW
|
||||
TS BLAST2 +1
|
||||
|
||||
CS BLAST
|
||||
AD BLAST1
|
||||
EXTEND
|
||||
BZMF DXCHT12 # T1 GR T2
|
||||
CHECKT23 CS BLAST1
|
||||
AD BLAST2
|
||||
EXTEND
|
||||
BZMF DXCHT23
|
||||
CALCDT6 CS BLAST1
|
||||
ADS BLAST2
|
||||
CS BLAST
|
||||
ADS BLAST1 # END OF SORTING PROCEDURE
|
||||
EXTEND # RESET T5LOC TO BEGIN PHASE1
|
||||
DCA RCS2CADR
|
||||
DXCH T5LOC
|
||||
ENDJETS CS BIT1 # RESET BIT1 FOR INITIALIZATION OF
|
||||
MASK RCSFLAGS # T6 PROGRAM
|
||||
TS RCSFLAGS
|
||||
CS ZERO # RESET T5PHASE FOR PHASE1
|
||||
TS T5PHASE
|
||||
TCF RESUME # RESUME INTERRUPTED PROGRAM
|
||||
|
||||
EBANK= KMPAC
|
||||
RCS2CADR 2CADR RCSATT
|
||||
|
||||
# Page 1060
|
||||
DXCHT12 DXCH BLAST
|
||||
DXCH BLAST1
|
||||
DXCH BLAST
|
||||
TCF CHECKT23
|
||||
|
||||
DXCHT23 DXCH BLAST1
|
||||
DXCH BLAST2
|
||||
DXCH BLAST1
|
||||
CS BLAST
|
||||
AD BLAST1
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TCF CALCDT6
|
||||
DXCH BLAST
|
||||
DXCH BLAST1
|
||||
DXCH BLAST
|
||||
TCF CALCDT6
|
||||
|
||||
# Page 1061
|
||||
# T6 PROGRAM AND CHANNEL SETUP
|
||||
|
||||
BANK 21
|
||||
SETLOC DAPS5
|
||||
BANK
|
||||
|
||||
T6START LXCH BANKRUPT
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
CCS TIME6 # CHECK TO SEE IF TIME6 WAS RESET
|
||||
TCF RESUME # AFTER T6RUPT OCCURED(IN T5RUPT)
|
||||
TCF +2 # IF SO WAIT FOR NEXT T6RUPT BEFORE
|
||||
TCF RESUME # TAKING ACTION
|
||||
|
||||
CS RCSFLAGS
|
||||
MASK BIT1 # IF BIT1 IS 0 RESET TO 1
|
||||
EXTEND # AND INITIALIZE CHANNEL
|
||||
BZF T6RUPTOR
|
||||
ADS RCSFLAGS
|
||||
CA RWORD1
|
||||
EXTEND # INITIALIZE CHANNELS 5,6 WITH WORD1
|
||||
WRITE CHAN6
|
||||
CA PWORD1
|
||||
AD YWORD1
|
||||
EXTEND
|
||||
WRITE CHAN5
|
||||
|
||||
T6RUPTOR CCS BLAST
|
||||
TCF ZBLAST # ZERO BLAST1
|
||||
TCF REPLACE # REPLACE WORD1
|
||||
TCF +2
|
||||
TCF REPLACE
|
||||
T6L1 CCS BLAST1
|
||||
TCF ZBLAST1
|
||||
TCF REPLACE1
|
||||
TCF +2
|
||||
TCF REPLACE1
|
||||
T6L2 CCS BLAST2
|
||||
TCF ZBLAST2
|
||||
TCF REPLACE2
|
||||
TCF RESUME
|
||||
TCF REPLACE2
|
||||
|
||||
REPLACE INDEX BLAST +1
|
||||
TC REPLACER
|
||||
CS ONE
|
||||
TS BLAST
|
||||
TCF T6L1
|
||||
|
||||
REPLACE1 INDEX BLAST1 +1
|
||||
# Page 1062
|
||||
TC REPLACER
|
||||
CS ONE
|
||||
TS BLAST1
|
||||
TCF T6L2
|
||||
|
||||
REPLACE2 INDEX BLAST2 +1
|
||||
TC REPLACER
|
||||
CS ONE
|
||||
TS BLAST2
|
||||
TCF RESUME
|
||||
|
||||
REPLACER CA RWORD2
|
||||
EXTEND # INITIALIZE CHANNELS 5,6 WITH WORD2
|
||||
WRITE CHAN6
|
||||
TC Q
|
||||
|
||||
REPLACEP CA YJETS
|
||||
EXTEND
|
||||
RAND CHAN5
|
||||
AD PWORD2
|
||||
EXTEND
|
||||
WRITE CHAN5
|
||||
TC Q
|
||||
|
||||
REPLACEY CA PJETS
|
||||
EXTEND
|
||||
RAND CHAN5
|
||||
AD YWORD2
|
||||
EXTEND
|
||||
WRITE CHAN5
|
||||
TC Q
|
||||
|
||||
ZBLAST CAF ZERO
|
||||
XCH BLAST
|
||||
TCF ENABT6
|
||||
ZBLAST1 CAF ZERO
|
||||
XCH BLAST1
|
||||
TCF ENABT6
|
||||
ZBLAST2 CAF ZERO
|
||||
XCH BLAST2
|
||||
ENABT6 TS TIME6
|
||||
CAF NEGMAX
|
||||
EXTEND
|
||||
WOR CHAN13 # ENABLE T6RUPT
|
||||
TCF RESUME
|
||||
|
||||
# END OF T6 INTERRUPT
|
||||
|
||||
ENDSLECT EQUALS
|
265
Comanche055/KALCMANU_STEERING.agc
Normal file
265
Comanche055/KALCMANU_STEERING.agc
Normal file
@ -0,0 +1,265 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: KALCMANU_STEERING.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. 414-419
|
||||
# Contact: Onno Hommes <ohommes@cmu.edu>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Mod history: 05/07/09 OH Transcription Batch 1 Assignment
|
||||
#
|
||||
# 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 414
|
||||
# GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
|
||||
#
|
||||
# NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
|
||||
|
||||
BANK 15
|
||||
|
||||
SETLOC KALCMON1
|
||||
BANK
|
||||
|
||||
EBANK= BCDU
|
||||
|
||||
COUNT 22/KALC
|
||||
|
||||
NEWDELHI CS HOLDFLAG # SEE IF MANEUVER HAS BEEN INTERRUPTED
|
||||
EXTEND # BY ASTRONAUT
|
||||
BZMF NOGO -2 # IF SO, TERMINATE KALCMANU
|
||||
NEWANGL TC INTPRET
|
||||
AXC,1 AXC,2
|
||||
MIS # COMPUTE THE NEW MATRIX FROM S/C TO
|
||||
DEL # STABLE MEMBER AXES
|
||||
CALL
|
||||
MXM3
|
||||
VLOAD STADR
|
||||
STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
|
||||
STADR
|
||||
STOVL MIS +6D
|
||||
STADR
|
||||
STORE MIS
|
||||
AXC,1 CALL
|
||||
MIS
|
||||
DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
|
||||
RTB
|
||||
V1STO2S
|
||||
STORE NCDU # NEW CDU ANGLES
|
||||
BONCLR EXIT
|
||||
CALCMAN2
|
||||
MANUSTAT # TO START MANEUVER
|
||||
CAF TWO # +0 OTHERWISE
|
||||
INCRDCDU TS KSPNDX
|
||||
DOUBLE
|
||||
TS KDPNDX
|
||||
INDEX KSPNDX
|
||||
CA NCDU # NEW DESIRED CDU ANGLES
|
||||
EXTEND
|
||||
INDEX KSPNDX
|
||||
MSU BCDU # INITIAL S/C ANGLE OR PREVIOUS DESIRED
|
||||
EXTEND # CDU ANGLES
|
||||
MP QUADROT
|
||||
INDEX KDPNDX
|
||||
DXCH DELCDUX # ANGEL INCREMENTS TO BE ADDED TO
|
||||
# Page 415
|
||||
INDEX KSPNDX # DCDU EVERY TENTH SEC
|
||||
CA NCDU # BY LEM DAP
|
||||
INDEX KSPNDX
|
||||
XCH BCDU
|
||||
INDEX KDPNDX
|
||||
TS CDUXD
|
||||
CCS KSPNDX
|
||||
TCF INCRDCDU # LOOP FOR THREE AXES
|
||||
|
||||
RELINT
|
||||
# COMPARE PRESENT TIME WITH TIME TO TERMINATE MANEUVER
|
||||
|
||||
TMANUCHK TC TIMECHK
|
||||
TC POSTJUMP
|
||||
CADR CONTMANU
|
||||
|
||||
CAF ONE
|
||||
MANUSTAL TC WAITLIST
|
||||
EBANK= BCDU
|
||||
2CADR MANUSTOP
|
||||
|
||||
RELINT
|
||||
TCF ENDOFJOB
|
||||
|
||||
|
||||
TIMECHK EXTEND
|
||||
DCS TIME2
|
||||
DXCH TTEMP
|
||||
EXTEND
|
||||
DCA TM
|
||||
DAS TTEMP
|
||||
CCS TTEMP
|
||||
TC Q
|
||||
TCF +2
|
||||
TCF 2NDRETRN
|
||||
CCS TTEMP +1
|
||||
TC Q
|
||||
TCF MANUOFF
|
||||
COM
|
||||
MANUOFF AD 1SEC
|
||||
EXTEND
|
||||
BZMF 2NDRETRN
|
||||
INCR Q
|
||||
2NDRETRN INCR Q
|
||||
INCR Q
|
||||
TC Q
|
||||
|
||||
SETLOC MANUSTUF
|
||||
BANK
|
||||
# Page 416
|
||||
MANUSTAT EXIT # INITIALIZATION ROUTINE
|
||||
EXTEND # FOR AUTOMATIC MANEUVERS
|
||||
DCA TIME2
|
||||
DAS TM # TM+T0 MANEUVER COMPLETION TIME
|
||||
CS 1SEC
|
||||
TS L
|
||||
CS ZERO
|
||||
DAS TM # (TM+T0)-1
|
||||
INHINT
|
||||
CS ONE # ENABLE AUTOPILOT TO PERFORM
|
||||
TS HOLDFLAG # AUTOMATIC MANEUVERS
|
||||
CS RATEINDX # SEE IF MANEUVERING AT HIGH RATE
|
||||
AD SIX
|
||||
EXTEND
|
||||
BZMF HIGHGAIN
|
||||
TCF +4
|
||||
HIGHGAIN CS RCSFLAGS # IF SO, SET HIGH RATE FLAG (BIT 15 OF
|
||||
MASK BIT15 # RCSFLAGS)
|
||||
ADS RCSFLAGS
|
||||
DXCH BRATE # X-AXIS MANEUVER RATE
|
||||
DXCH WBODY
|
||||
DXCH BRATE +2 # Y-AXIS MANEUVER RATE
|
||||
DXCH WBODY1
|
||||
DXCH BRATE +4 # Z-AXIS MANEUVER RATE
|
||||
DXCH WBODY2
|
||||
CA BIASTEMP +1 # INSERT ATTITUDE ERROR BIASES
|
||||
TS BIAS # INTO AUTOPILOT
|
||||
CA BIASTEMP +3
|
||||
TS BIAS1
|
||||
CA BIASTEMP +5
|
||||
TS BIAS2
|
||||
CA TIME1
|
||||
AD 1SEC
|
||||
XCH NEXTIME
|
||||
TC POSTJUMP
|
||||
CADR INCRDCDU -1
|
||||
|
||||
CONTMANU INHINT # CONTINUE WITH UPDATE PROCESS
|
||||
CS TIME1
|
||||
AD NEXTIME
|
||||
CCS A
|
||||
AD ONE
|
||||
TCF MANUCALL
|
||||
AD NEGMAX
|
||||
COM
|
||||
MANUCALL TC WAITLIST
|
||||
EBANK= BCDU
|
||||
2CADR UPDTCALL
|
||||
|
||||
RELINT
|
||||
# Page 417
|
||||
CAF 1SEC # INCREMENT TIME FOR NEXT UPDATE
|
||||
ADS NEXTIME
|
||||
TCF ENDOFJOB
|
||||
|
||||
|
||||
UPDTCALL CAF PRIO26 # CALL FOR UPDATE
|
||||
TC FINDVAC # OF STEERING COMMANDS
|
||||
EBANK= BCDU
|
||||
2CADR NEWDELHI
|
||||
|
||||
TC TASKOVER
|
||||
|
||||
# Page 418
|
||||
# ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
|
||||
|
||||
SETLOC KALCMON3
|
||||
BANK
|
||||
|
||||
MANUSTOP TC STOPYZ
|
||||
TC IBNKCALL
|
||||
CADR LOADYZ
|
||||
|
||||
ENDROLL CA CPHI
|
||||
TS CDUXD # SET CDUXD TO THE COMMANDED OUTER GIMBAL
|
||||
TC STOPRATE
|
||||
ENDMANU CA ATTPRIO # RESTORE USERS PRIORITY
|
||||
TS NEWPRIO
|
||||
|
||||
CA ZERO # ZERO ATTCADR
|
||||
DXCH ATTCADR
|
||||
|
||||
TC SPVAC # RETURN TO USER OF GOMANUR
|
||||
|
||||
TC TASKOVER
|
||||
|
||||
SETLOC STOPRAT
|
||||
BANK
|
||||
STOPRATE CAF ZERO
|
||||
TS DELCDUX
|
||||
TS DELCDUX +1 # ZERO ROLL INCREMENTAL ANGLES
|
||||
TS WBODY # RATE
|
||||
TS WBODY +1
|
||||
TS BIAS # BIAS
|
||||
|
||||
CS BIT15 # MAKE SURE HIGH RATE FLAG (BIT 15 OF
|
||||
MASK RCSFLAGS # RCSFLAGS) IS RESET.
|
||||
TS RCSFLAGS
|
||||
|
||||
STOPYZ CAF ZERO
|
||||
TS DELCDUY # ZERO PITCH, YAW
|
||||
TS DELCDUY +1 # INCREMENTAL ANGLES
|
||||
TS DELCDUZ
|
||||
TS DELCDUZ +1
|
||||
TS WBODY1 # RATES
|
||||
TS WBODY1 +1
|
||||
TS WBODY2
|
||||
TS WBODY2 +1
|
||||
TS BIAS1 # BIASES
|
||||
TS BIAS2
|
||||
TC Q
|
||||
|
||||
SETLOC MANUSTUF
|
||||
BANK
|
||||
|
||||
# Page 419
|
||||
ZEROERROR CA CDUX # PICK UP CDU ANGLES AND STORE IN
|
||||
TS CDUXD # CDU DESIRED
|
||||
CA CDUY
|
||||
TS CDUYD
|
||||
CA CDUZ
|
||||
TS CDUZD
|
||||
TC Q
|
||||
|
||||
SETLOC KALCMON1
|
||||
BANK
|
||||
|
||||
LOADCDUD CA CPHI # STORE TERMINAL ANGLES INTO
|
||||
TS CDUXD # COMMAND ANGLES
|
||||
LOADYZ CA CTHETA
|
||||
TS CDUYD
|
||||
CA CPSI
|
||||
TS CDUZD
|
||||
TC Q
|
136
Comanche055/KEYRUPT_UPRUPT.agc
Normal file
136
Comanche055/KEYRUPT_UPRUPT.agc
Normal file
@ -0,0 +1,136 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: KEYRUPT_UPRUPT.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. 1449-1451
|
||||
# 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 1449
|
||||
BANK 14
|
||||
SETLOC KEYRUPT
|
||||
BANK
|
||||
COUNT* $$/KEYUP
|
||||
|
||||
KEYRUPT1 TS BANKRUPT
|
||||
XCH Q
|
||||
TS QRUPT
|
||||
TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
|
||||
CAF LOW5
|
||||
EXTEND
|
||||
RAND MNKEYIN # CHECK IF KEYS 5M-1M ON
|
||||
KEYCOM TS RUPTREG4
|
||||
CS FLAGWRD5
|
||||
MASK BIT15
|
||||
ADS FLAGWRD5
|
||||
|
||||
ACCEPTUP CAF CHRPRIO # (NOTE: RUPTREG4 = KEYTEMP1)
|
||||
TC NOVAC
|
||||
EBANK= DSPCOUNT
|
||||
2CADR CHARIN
|
||||
|
||||
CA RUPTREG4
|
||||
INDEX LOCCTR
|
||||
TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
|
||||
TC RESUME
|
||||
|
||||
# Page 1450
|
||||
# UPRUPT PROGRAM
|
||||
|
||||
UPRUPT TS BANKRUPT
|
||||
XCH Q
|
||||
TS QRUPT
|
||||
TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
|
||||
CAF ZERO
|
||||
XCH INLINK
|
||||
TS KEYTEMP1
|
||||
CAF BIT3 # TURN ON UPACT LIGHT
|
||||
EXTEND # (BIT 3 OF CHANNEL 11)
|
||||
WOR DSALMOUT
|
||||
UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
|
||||
MASK KEYTEMP1 # LOW5 OF WORD
|
||||
XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
|
||||
EXTEND
|
||||
MP BIT10 # SHIFT RIGHT 5
|
||||
TS KEYTEMP2
|
||||
MASK LOW5 # MID 5
|
||||
AD HI10
|
||||
TC UPTEST
|
||||
CAF BIT10
|
||||
EXTEND
|
||||
MP KEYTEMP2 # SHIFT RIGHT 5
|
||||
MASK LOW5 # HIGH 5
|
||||
COM
|
||||
TC UPTEST
|
||||
|
||||
UPOK CS ELRCODE # CODE IS GOOD. IF CODE = 'ERROR RESET',
|
||||
AD KEYTEMP1 # CLEAR UPLOCKFL(SET BIT4 OF FLAGWRD7 = 0)
|
||||
EXTEND # IF CODE DOES NOT = 'ERROR RESET', ACCEPT
|
||||
BZF CLUPLOCK # CODE ONLY IF UPLOCKFL IS CLEAR (=0).
|
||||
|
||||
CAF BIT4 # TEST UPLOCKFL FOR 0 OR 1.
|
||||
MASK FLAGWRD7
|
||||
CCS A
|
||||
TC RESUME # UPLOCKFL = 1
|
||||
TC ACCEPTUP # UPLOCKFL = 0
|
||||
|
||||
CLUPLOCK CS BIT4 # CLEAR UPLOCKFL (I.E., SET BIT 4 OF
|
||||
MASK FLAGWRD7 # FLAGWRD7 = 0)
|
||||
TS FLAGWRD7
|
||||
TC ACCEPTUP
|
||||
|
||||
# CODE IS BAD
|
||||
TMFAIL2 CS FLAGWRD7 # LOCK OUT FURTHER UPLINK ACTIVITY
|
||||
MASK BIT4 # (BY SETTING UPLOCKFL = 1) UNTIL
|
||||
ADS FLAGWRD7 # 'ERROR RESET' IS SENT VIA UPLINK.
|
||||
TC RESUME
|
||||
UPTEST AD KEYTEMP1
|
||||
# Page 1451
|
||||
CCS A
|
||||
TC TMFAIL2
|
||||
HI10 OCT 77740
|
||||
TC TMFAIL2
|
||||
TC Q
|
||||
|
||||
ELRCODE OCT 22
|
||||
|
||||
# 'UPLINK ACTIVITY LIGHT' IS TURNED OFF BY .....
|
||||
# 1. VBRELDSP
|
||||
# 2. ERROR RESET
|
||||
# 3. UPDATE PROGRAM(P27) ENTERED BY V70,V71,V72,AND V73.
|
||||
#
|
||||
#
|
||||
# -
|
||||
# THE RECEPTION OF A BAD CODE(I.E. CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1.
|
||||
# THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS.
|
||||
# WHEN UPLINK ACTIVITY IS LOCKED OUT ,IT CAN BE ALLOWED WHEN THE GROUND UPLINKS AND 'ERROR RESET' CODE.
|
||||
# (IT IS RECOMMENDED THAT THE 'ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED
|
||||
# BY 15 ZEROS. THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL
|
||||
# FAILURE).
|
||||
# UPLINK ACTIVITY IS ALSO ALLOWED(UNLOCKED) DURING FRESH START WHEN FRESH START SETS BIT4 OF FLAGWRD7 = 0.
|
||||
|
317
Comanche055/LATITUDE_LONGITUDE_SUBROUTINES.agc
Normal file
317
Comanche055/LATITUDE_LONGITUDE_SUBROUTINES.agc
Normal file
@ -0,0 +1,317 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: LATITUDE_LONGITUDE_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: 1236-1242
|
||||
# Mod history: 2009-05-14 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 1236
|
||||
# SUBROUTINE TO CONVERT RAD VECTOR AT GIVEN TIME TO LAT,LONG AND ALT
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
#
|
||||
# L-1 CALL
|
||||
# L LAT-LONG
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# R-TO-RP,ARCTAN,SETGAMMA,SETRE
|
||||
# ERASABLE INIT. REQ.
|
||||
#
|
||||
# AXO,-AYO,AZO,TEPHEM (SET AT LAUNCH TIME)
|
||||
# ALPHAV = POSITION VECTOR METERS B-29
|
||||
# MPAC-- TIME (CSECS B-28)
|
||||
# ERADFLAG =1, TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
|
||||
# LUNAFLAG=0 FOR EARTH,1 FOR MOON
|
||||
# OUTPUT
|
||||
#
|
||||
# LATITUDE IN LAT (REVS. B-0)
|
||||
# LONGITUDE IN LONG (REVS. B-0)
|
||||
# ALTITUDE IN ALT METERS B-29
|
||||
|
||||
BANK 30
|
||||
SETLOC LATLONG
|
||||
BANK
|
||||
|
||||
COUNT 13/LT-LG
|
||||
|
||||
EBANK= ALPHAV
|
||||
LAT-LONG STQ SETPD
|
||||
INCORPEX
|
||||
0D
|
||||
STOVL 6D # SAVE TIME IN 6-7D FOR R-TO-RP
|
||||
ALPHAV
|
||||
PUSH ABVAL # 0-5D= R FOR R-TO-RP
|
||||
STODL ALPHAM # ABS. VALUE OF R FOR ALT FORMULA BELOW
|
||||
ZEROVEC # SET MPAC=0 FOR EARTH,NON-ZERO FOR MOON
|
||||
BOFF COS # USE COS(0) TO GET NON-ZERO IN MPAC
|
||||
LUNAFLAG # 0=EARTH,1=MOON
|
||||
CALLRTRP
|
||||
CALLRTRP CALL
|
||||
R-TO-RP # RP VECTOR CONVERTED FROM R B-29
|
||||
UNIT # UNIT RP B-1
|
||||
STCALL ALPHAV # U2= 1/2 SINL FOR SETRE SUBR BELOW
|
||||
SETGAMMA # SET GAMMA=B2/A2 FOR EARTH,=1 FOR MOON
|
||||
CALL # SCALED B-1
|
||||
SETRE # CALC RE METERS B-29
|
||||
DLOAD DSQ
|
||||
ALPHAV
|
||||
PDDL DSQ
|
||||
ALPHAV +2
|
||||
# Page 1237
|
||||
DAD SQRT
|
||||
DMP SL1R
|
||||
GAMRP
|
||||
STODL COSTH # COS(LAT) B-1
|
||||
ALPHAV +4
|
||||
STCALL SINTH # SIN(LAT) B-1
|
||||
ARCTAN
|
||||
STODL LAT # LAT B0
|
||||
ALPHAV
|
||||
STODL COSTH # COS(LONG) B-1
|
||||
ALPHAV +2
|
||||
STCALL SINTH # SIN(LONG) B-1
|
||||
ARCTAN
|
||||
STODL LONG # LONG. REVS B-0 IN RANGE -1/2 TO 1/2
|
||||
ALPHAM
|
||||
DSU # ALT= R-RE METERS B-29
|
||||
ERADM
|
||||
STCALL ALT # EXIT WITH ALT METERS B-29
|
||||
INCORPEX
|
||||
# Page 1238
|
||||
# SUBROUTINE TO CONVERT LAT,LONG.ALT AT GIVEN TIME TO RADIUS VECTOR
|
||||
# CALLING SEQUENCE
|
||||
|
||||
# L-1 CALL
|
||||
# L LALOTORV
|
||||
# SUBROUTINES USED
|
||||
# SETGAMMA,SETRE,RP-TO-R
|
||||
# ERASABLE INIT. REQ.
|
||||
|
||||
# AXO,AYO,AZO,TEPHEM SET AT LAUNCH TIME
|
||||
# LAT-- LATITUDE (REVS B0)
|
||||
# LONG-- LONGITUDE (REVS B0)
|
||||
# ALT--ALTITUDE (METERS) B-29
|
||||
# MPAC-- TIME (CSECS B-28)
|
||||
# ERADFLAG =1 TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
|
||||
# LUNAFLAG=0 FOR EARTH,1 FOR MOON
|
||||
# OUTPUT
|
||||
|
||||
# R-VECTOR IN ALPHAV (METERS B-29)
|
||||
LALOTORV STQ SETPD # LAT,LONG,ALT TO R VECTOR
|
||||
INCORPEX
|
||||
0D
|
||||
STCALL 6D # 6-7D= TIME FOR RP-TO-R
|
||||
SETGAMMA # GAMMA=B2/A2 FOR EARTH,1 FOR MOON B-1
|
||||
DLOAD SIN # COS(LONG)COS(LAT) IN MPAC
|
||||
LAT # UNIT RP= SIN(LONG)COS(LAT) 2-3D
|
||||
DMPR PDDL # PD 2 GAMMA*SIN(LAT) 0-1D
|
||||
GAMRP
|
||||
LAT # 0-1D = GAMMA*SIN(LAT) B-2
|
||||
COS PDDL # PD4 2-3D=COS(LAT) B-1 TEMPORARILY
|
||||
LONG
|
||||
SIN DMPR # PD 2
|
||||
PDDL COS # PD 4 2-3D=SIN(LONG)COS(LAT) B-2
|
||||
LAT
|
||||
PDDL COS # PD 6 4-5D=COS(LAT) B-1 TEMPORARILY
|
||||
LONG
|
||||
DMPR VDEF # PD4 MPAC= COS(LONG)COS(LAT) B-2
|
||||
UNIT PUSH # 0-5D= UNIT RP FOR RP-TO-R SUBR.
|
||||
STCALL ALPHAV # ALPHAV +4= SINL FOR SETRE SUBR.
|
||||
SETRE # RE METERS B-29
|
||||
DLOAD BOFF # SET MPAC=0 FOR EARTH,NON-ZERO FOR MOON
|
||||
ZEROVEC
|
||||
LUNAFLAG
|
||||
CALLRPRT
|
||||
COS # USE COS(0) TO GET NON-ZERO IN MPAC
|
||||
CALLRPRT CALL
|
||||
RP-TO-R # EXIT WITH UNIT R VECTOR IN MPAC
|
||||
STODL ALPHAV
|
||||
ERADM
|
||||
# Page 1239
|
||||
DAD VXSC # (RE + ALT)(UNIT R) METERS B-30
|
||||
ALT
|
||||
ALPHAV
|
||||
VSL1 # R METERS B-29
|
||||
STCALL ALPHAV # EXIT WITH R IN METERS B-29
|
||||
INCORPEX
|
||||
# SUBROUTINE TO COMPUTE EARTH RADIUS
|
||||
|
||||
# INPUT
|
||||
|
||||
# 1/2 SIN LAT IN ALPHAV +4
|
||||
|
||||
# OUTPUT
|
||||
|
||||
# EARTH RADIUS IN ERADM AND MPAC (METERS B-29)
|
||||
|
||||
GETERAD DLOAD DSQ
|
||||
ALPHAV +4 # SIN**2(L)
|
||||
SL1 BDSU
|
||||
DP1/2 # COS**2(L)
|
||||
DMPR BDSU
|
||||
EE
|
||||
DP1/2
|
||||
BDDV SQRT
|
||||
B2XSC
|
||||
SR4R
|
||||
STORE ERADM
|
||||
RVQ
|
||||
|
||||
# THE FOLLOWING CONSTANTS WERE COMPUTED WITH A=6378166,B=6356784 METERS
|
||||
# B2XSC= B**2 SCALED B-51
|
||||
# B2/A2= B**2/A**2 SCALED B-1
|
||||
# EE=(1-B**2/A**2) SCALED B-0
|
||||
|
||||
B2XSC 2DEC .0179450689 # B**2 SCALED B-51
|
||||
|
||||
DP1/2 = XUNIT
|
||||
B2/A2 2DEC .9933064884 B-1 # GAMMA= B**2/A**2 B-1
|
||||
|
||||
EE 2DEC 6.6935116 E-3 # (1-B**2/A**2) B-0
|
||||
|
||||
ERAD 2DEC 6373338 B-29 # PAD RADIUS
|
||||
|
||||
# Page 1240
|
||||
# ARCTAN SUBROUTINE
|
||||
|
||||
|
||||
# CALLING SEQUENCE
|
||||
|
||||
# SIN THETA IN SINTH B-1
|
||||
# COS THETA IN COSTH B-1
|
||||
# CALL ARCTAN
|
||||
|
||||
# OUTPUT
|
||||
# ARCTAN THETA IN MPAC AND THETA B-0 IN RANGE -1/2 TO +1/2
|
||||
|
||||
ARCTAN BOV
|
||||
CLROVFLW
|
||||
CLROVFLW DLOAD DSQ
|
||||
SINTH
|
||||
PDDL DSQ
|
||||
COSTH
|
||||
DAD
|
||||
BZE SQRT
|
||||
ARCTANXX # ATAN=0/0 SET THETA=0
|
||||
BDDV BOV
|
||||
SINTH
|
||||
ATAN=90
|
||||
SR1 ASIN
|
||||
STORE THETA
|
||||
PDDL BMN
|
||||
COSTH
|
||||
NEGCOS
|
||||
DLOAD RVQ
|
||||
NEGCOS DLOAD DCOMP
|
||||
BPL DAD
|
||||
NEGOUT
|
||||
DP1/2
|
||||
ARCTANXX STORE THETA
|
||||
RVQ
|
||||
|
||||
NEGOUT DSU GOTO
|
||||
DP1/2
|
||||
ARCTANXX
|
||||
ATAN=90 DLOAD SIGN
|
||||
LODP1/4
|
||||
SINTH
|
||||
STORE THETA
|
||||
RVQ
|
||||
|
||||
2DZERO = DPZERO
|
||||
|
||||
# Page 1241
|
||||
# ***** SETGAMMA SUBROUTINE *****
|
||||
# SUBROUTINE TO SET GAMMA FOR THE LAT-LONG AND LALOTORV SUBROUTINES
|
||||
|
||||
# GAMMA = B**2/A**2 FOR EARTH (B-1)
|
||||
# GAMMA = 1 FOR MOON (B-1)
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 SETGAMMA
|
||||
|
||||
# INPUT
|
||||
# LUNAFLAG=0 FOR EARTH,=1 FOR MOON
|
||||
|
||||
# OUTPUT
|
||||
# GAMMA IN GAMRP (B-1)
|
||||
|
||||
SETGAMMA DLOAD BOFF # BRANCH FOR EARTH
|
||||
B2/A2 # EARTH GAMMA
|
||||
LUNAFLAG
|
||||
SETGMEX
|
||||
SLOAD
|
||||
1B1 # MOON GAMMA
|
||||
SETGMEX STORE GAMRP
|
||||
RVQ
|
||||
GAMRP = 8D
|
||||
|
||||
# Page 1242
|
||||
# ***** SETRE SUBROUTINE *****
|
||||
# SUBROUTINE TO SET RE (EARTH OR MOON RADIUS)
|
||||
|
||||
# RE= RM FOR MOON
|
||||
# RE= RREF FOR FIXED EARTH RADIUS OR COMPUTED RF FOR FISCHER ELLIPSOID
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 SETRE
|
||||
|
||||
# SUBROUTINES USED
|
||||
# GETERAD
|
||||
|
||||
# INPUT
|
||||
# ERADFLAG=0 FOR FIXED RE, 1 FOR COMPUTED RE
|
||||
# ALPHAV +4= 1/2 SINL IF GETERAD IS CALLED
|
||||
# LUNAFLAG=0 FOR EARTH,=1 FOR MOON
|
||||
|
||||
# OUTPUT
|
||||
# ERADM= 504RM FOR MOON (METERS B-29)
|
||||
# ERADM= ERAD OR COMPUTED RF FOR EARTH (METERS B-29)
|
||||
|
||||
SETRE STQ DLOAD
|
||||
SETREX
|
||||
504RM
|
||||
BON DLOAD # BRANCH FOR MOON
|
||||
LUNAFLAG
|
||||
TSTRLSRM
|
||||
ERAD
|
||||
BOFF CALL # ERADFLAG=0 FOR FIXED RE,1 FOR COMPUTED
|
||||
ERADFLAG
|
||||
SETRXX
|
||||
GETERAD
|
||||
SETRXX STCALL ERADM # EXIT WITH RE OR RM METERS B-29
|
||||
SETREX
|
||||
TSTRLSRM BON VLOAD # ERADFLAG=0,SET R0=RLS
|
||||
ERADFLAG # =1 R0=RM
|
||||
SETRXX
|
||||
RLS
|
||||
ABVAL SR2R # SCALE FROM B-27 TO B-29
|
||||
GOTO
|
||||
SETRXX
|
||||
SETREX = S2
|
||||
504RM 2DEC 1738090 B-29 # METERS B-29 (MOON RADIUS)
|
||||
|
198
Comanche055/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
Normal file
198
Comanche055/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
Normal file
@ -0,0 +1,198 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.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. 785-788
|
||||
# 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.
|
||||
# 2009-07-26 RSB Added annotations related to computation
|
||||
# of the ephemeral(?) polynomials.
|
||||
#
|
||||
# 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 785
|
||||
# LUNAR AND SOLAR EPHEMERIDES SUBROUTINES
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
#
|
||||
# THESE SUBROUTINES ARE USED TO DETERMINE THE POSITION AND VELOCITY
|
||||
# VECTORS OF THE SUN AND THE MOON RELATIVE TO THE EARTH AT THE
|
||||
# SPECIFIED GROUND ELAPSED TIME INPUT BY THE USER.
|
||||
#
|
||||
# THE POSITION OF THE MOON IS STORED IN THE COMPUTER IN THE FORM OF
|
||||
# A NINTH DEGREE POLYNOMIAL APPROXIMATION WHICH IS VALID OVER A 15
|
||||
# DAY INTERVAL BEGINNING SHORTLY BEFORE LAUNCH. THEREFORE THE TIME
|
||||
# INPUT BY THE USER SHOULD FALL WITHIN THIS 15 DAY INTERVAL.
|
||||
#
|
||||
# LSPOS COMPUTES THE POSITION VECTORS OF THE SUN AND THE MOON.
|
||||
#
|
||||
# LUNPOS COMPUTES THE POSITION VECTOR OF THE MOON.
|
||||
#
|
||||
# LUNVEL COMPUTES THE VELOCITY VECTOR OF THE MOON.
|
||||
#
|
||||
# SOLPOS COMPUTES THE POSITION VECTOR OF THE SUN.
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
#
|
||||
# DLOAD CALL
|
||||
# TIME GROUND ELAPSED TIME
|
||||
# SUBROUTINE LSPOS OR LUNPOS OR LUNVEL OR SOLPOS
|
||||
#
|
||||
# INPUT
|
||||
#
|
||||
# 1) SPECIFIED GROUND ELAPSED TIME IN CS x B-28 LOADED IN MPAC.
|
||||
#
|
||||
# 2) TIMEMO - TIME AT THE CENTER OF THE RANGE OVER WHICH THE LUNAR
|
||||
# POSITION POLYNOMIAL IS VALID IN CS x B-42.
|
||||
#
|
||||
# 3) VECOEM - VECTOR COEFFICIENTS OF THE LUNAR POSITION POLYNOMIAL
|
||||
# LOADED IN DESCENDING SEQUENCE IN METERS/CS**N x B-2
|
||||
#
|
||||
# 4) RESO - POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH AT
|
||||
# TIMEMO IN METERS x B-38.
|
||||
#
|
||||
# 5) VESO - VELOCITY VECTOR OF THE SUN RELATIVE TO THE EARTH AT
|
||||
# TIMEMO IN METERS/CS x B-9.
|
||||
#
|
||||
# 6) OMEGAES - ANGULAR VELOCITY OF THE VECTOR RESO AT TIMEMO IN
|
||||
# REV/CS x B+26.
|
||||
#
|
||||
# ALL EXCEPT THE FIRST INPUT ARE INCLUDED IN THE PRE-LAUNCH
|
||||
# ERASABLE DATA LOAD.
|
||||
#
|
||||
# OUTPUT - LSPOS
|
||||
# Page 786
|
||||
# 1) 2D OF VAC AREA CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE
|
||||
# TO THE EARTH AT TIME INPUT BY THE USER IN METERS x B-38.
|
||||
#
|
||||
# 2) MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE
|
||||
# EARTH AT TIME INPUT BY THE USER IN METERS x B-29.
|
||||
#
|
||||
# OUTPUT - LUNPOS
|
||||
#
|
||||
# MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE
|
||||
# EARTH AT THE TIME INPUT BY USER IN METERS x B-29.
|
||||
#
|
||||
# OUTPUT - LUNVEL
|
||||
#
|
||||
# MPAC CONTAINS THE VELOCITY VECTOR OF THE MOON RELATIVE TO THE
|
||||
# EARTH AT THE TIME INPUT BY THE USER IN METERS/CS x B-7.
|
||||
#
|
||||
# OUTPUT - SOLPOS
|
||||
#
|
||||
# MPAC CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH
|
||||
# AT TIME INPUT BY THE USER IN METERS x B-38.
|
||||
#
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# NONE
|
||||
#
|
||||
# REMARKS
|
||||
#
|
||||
# THE VAC AREA IS USED FOR STORAGE OF INTERMEDIATE AND FINAL RESULTS
|
||||
# OF COMPUTATIONS.
|
||||
#
|
||||
# S1, X1 AND X2 ARE USED BY THESE SUBROUTINES.
|
||||
# PRELAUNCH ERASABLE DATA LOAD ARE ONLY ERASABLE STORAGE USED BY
|
||||
# THESE SUBROUTINES.
|
||||
# RESTARTS DURING OPERATION OF THESE SUBROUTINES MUST BE HANDLED BY
|
||||
# THE USER.
|
||||
|
||||
BANK 36
|
||||
SETLOC EPHEM
|
||||
BANK
|
||||
|
||||
COUNT* $$/EPHEM
|
||||
EBANK= END-E7
|
||||
LSPOS AXT,2 # COMPUTES POSITION VECTORS OF BOTH THE
|
||||
RESA # SUN AND THE MOON. THE POSITION VECTOR
|
||||
AXT,1 GOTO # OF THE SUN IS STORED IN 2D OF THE VAC
|
||||
RES # AREA. THE POSITION VECTOR OF THE MOON
|
||||
LSTIME # IS STORED IN MPAC.
|
||||
LUNPOS AXT,1 GOTO # COMPUTES THE POSITION VECTOR OF THE MOON
|
||||
REM # AND STORES IT IN MPAC.
|
||||
LSTIME
|
||||
# Page 787
|
||||
LUNVEL AXT,1 GOTO # COMPUTES THE VELOCITY VECTOR OF THE MOON
|
||||
VEM # AND STORES IT IN MPAC.
|
||||
LSTIME
|
||||
SOLPOS STQ AXT,1 # COMPUTES THE POSITION VECTOR OF THE SUN
|
||||
X2 # AND STORES IT IN MPAC.
|
||||
RES
|
||||
LSTIME SETPD SR
|
||||
0D
|
||||
14D
|
||||
TAD DCOMP
|
||||
TEPHEM
|
||||
TAD DCOMP
|
||||
TIMEMO
|
||||
SL SSP
|
||||
16D
|
||||
S1
|
||||
6D
|
||||
GOTO
|
||||
X1
|
||||
RES PUSH DMP # PD- 2
|
||||
OMEGAES
|
||||
PUSH COS # PD- 4
|
||||
VXSC PDDL # PD- 8
|
||||
RESO
|
||||
SIN PDVL # PD-10
|
||||
RESO
|
||||
PUSH UNIT # PD-16
|
||||
VXV UNIT
|
||||
VESO
|
||||
VXV VSL1 # PD-10
|
||||
VXSC VAD # PD-02
|
||||
VSL1 GOTO # RES IN METERS x B-38 IN MPAC.
|
||||
X2
|
||||
RESA STODL 2D # RES IN METERS x B-38 IN 2D OF VAC. PD- 0
|
||||
REM AXT,1 PDVL # PD- 2
|
||||
54D
|
||||
VECOEM
|
||||
REMA VXSC VAD*
|
||||
0D
|
||||
VECOEM +60D,1
|
||||
TIX,1 VSL2 # REM IN METERS x B-29 IN MPAC.
|
||||
REMA
|
||||
RVQ
|
||||
VEM AXT,1 PDDL # PD- 2
|
||||
48D
|
||||
NINEB4
|
||||
PUSH VXSC # PD- 4
|
||||
VECOEM
|
||||
VEMA VXSC
|
||||
0D
|
||||
# Page 788
|
||||
STODL 4D # PD- 2
|
||||
DSU PUSH # PD- 4
|
||||
ONEB4
|
||||
VXSC* VAD
|
||||
VECOEM +54D,1
|
||||
4D
|
||||
TIX,1 VSL2 # VEM IN METERS/CS x B-7 IN MPAC.
|
||||
VEMA
|
||||
RVQ
|
||||
NINEB4 2DEC 9.0 B-4
|
||||
|
||||
ONEB4 2DEC 1.0 B-4
|
35
Comanche055/LUNAR_LANDMARK_SELECTION_FOR_CM.agc
Normal file
35
Comanche055/LUNAR_LANDMARK_SELECTION_FOR_CM.agc
Normal file
@ -0,0 +1,35 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: LUNAR_LANDMARK_SELECTION_FOR_CM.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: Jim Lawton <jim.lawton@gmail.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 936
|
||||
# Mod history: 2009-05-11 JVL 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 936
|
||||
|
||||
|
||||
# *** END OF TROUBLE .043 ***
|
||||
|
99
Comanche055/MAIN.agc
Normal file
99
Comanche055/MAIN.agc
Normal file
@ -0,0 +1,99 @@
|
||||
$CONTRACT_AND_APPROVALS.agc # p. 1
|
||||
$ASSEMBLY_AND_OPERATION_INFORMATION.agc # pp. 2-26
|
||||
$TAGS_FOR_RELATIVE_SETLOC.agc # pp. 27-35
|
||||
|
||||
# p. 36 contains no code.
|
||||
# COMERASE
|
||||
$ERASABLE_ASSIGNMENTS.agc # pp. 37-130
|
||||
|
||||
# COMAID
|
||||
$INTERRUPT_LEAD_INS.agc # pp. 131-132
|
||||
$T4RUPT_PROGRAM.agc # pp. 133-169
|
||||
$DOWNLINK_LISTS.agc # pp. 170-180
|
||||
$FRESH_START_AND_RESTART.agc # pp. 181-210
|
||||
$RESTART_TABLES.agc # pp. 211-221
|
||||
$SXTMARK.agc # pp. 222-235
|
||||
$EXTENDED_VERBS.agc # pp. 236-267
|
||||
$PINBALL_NOUN_TABLES.agc # pp. 268-284
|
||||
$CSM_GEOMETRY.agc # pp. 285-296
|
||||
$IMU_COMPENSATION_PACKAGE.agc # pp. 297-306
|
||||
$PINBALL_GAME_BUTTONS_AND_LIGHTS.agc # pp. 307-389
|
||||
$R60_62.agc # pp. 390-398
|
||||
$ANGLFIND.agc # pp. 399-411
|
||||
$GIMBAL_LOCK_AVOIDANCE.agc # pp. 412-413
|
||||
$KALCMANU_STEERING.agc # pp. 414-419
|
||||
$SYSTEM_TEST_STANDARD_LEAD_INS.agc # pp. 420-422
|
||||
$IMU_CALIBRATION_AND_ALIGNMENT.agc # pp. 423-455
|
||||
|
||||
# COMEKISS
|
||||
$GROUND_TRACKING_DETERMINATION_PROGRAM.agc # pp. 456-459
|
||||
$P34-35_P74-75.agc # pp. 460-504
|
||||
$R31.agc # pp. 505-510
|
||||
$P76.agc # pp. 511-513
|
||||
$R30.agc # pp. 514-524
|
||||
$STABLE_ORBIT.agc # pp. 525-532
|
||||
|
||||
# TROUBLE
|
||||
$P11.agc # pp. 533-550
|
||||
$TPI_SEARCH.agc # pp. 551-561
|
||||
$P20-P25.agc # pp. 562-634
|
||||
$P30-P37.agc # pp. 635-648
|
||||
$P32-P33_P72-P73.agc # pp. 649-683
|
||||
$P40-P47.agc # pp. 684-736
|
||||
$P51-P53.agc # pp. 737-784
|
||||
$LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc # pp. 785-788
|
||||
$P61-P67.agc # pp. 789-818
|
||||
$SERVICER207.agc # pp. 819-836
|
||||
$ENTRY_LEXICON.agc # pp. 837-843
|
||||
$REENTRY_CONTROL.agc # pp. 844-882
|
||||
$CM_BODY_ATTITUDE.agc # pp. 883-889
|
||||
$P37_P70.agc # pp. 890-933
|
||||
$S-BAND_ANTENNA_FOR_CM.agc # pp. 934-935
|
||||
$LUNAR_LANDMARK_SELECTION_FOR_CM.agc # pp. 936
|
||||
|
||||
# TVCDAPS
|
||||
$TVCINITIALIZE.agc # pp. 937-944
|
||||
$TVCEXECUTIVE.agc # pp. 945-950
|
||||
$TVCMASSPROP.agc # pp. 951-955
|
||||
$TVCRESTARTS.agc # pp. 956-960
|
||||
$TVCDAPS.agc # pp. 961-978
|
||||
$TVCSTROKETEST.agc # pp. 979-983
|
||||
$TVCROLLDAP.agc # pp. 984-998
|
||||
$MYSUBS.agc # pp. 999-1001
|
||||
$RCS-CSM_DIGITAL_AUTOPILOT.agc # pp. 1002-1024
|
||||
$AUTOMATIC_MANEUVERS.agc # pp. 1025-1036
|
||||
$RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc # pp. 1037-1038
|
||||
$JET_SELECTION_LOGIC.agc # pp. 1039-1062
|
||||
$CM_ENTRY_DIGITAL_AUTOPILOT.agc # pp. 1063-1092
|
||||
|
||||
# CHIEFTAN
|
||||
$DOWN-TELEMETRY_PROGRAM.agc # pp. 1093-1102
|
||||
$INTER-BANK_COMMUNICATION.agc # pp. 1103-1106
|
||||
$INTERPRETER.agc # pp. 1107-1199
|
||||
$FIXED_FIXED_CONSTANT_POOL.agc # pp. 1200-1204
|
||||
$INTERPRETIVE_CONSTANTS.agc # pp. 1205-1206
|
||||
$SINGLE_PRECISION_SUBROUTINES.agc # p. 1207
|
||||
$EXECUTIVE.agc # pp. 1208-1220
|
||||
$WAITLIST.agc # pp. 1221-1235
|
||||
$LATITUDE_LONGITUDE_SUBROUTINES.agc # pp. 1236-1242
|
||||
$PLANETARY_INERTIAL_ORIENTATION.agc # pp. 1243-1251
|
||||
$MEASUREMENT_INCORPORATION.agc # pp. 1252-1261
|
||||
$CONIC_SUBROUTINES.agc # pp. 1262-1308
|
||||
$INTEGRATION_INITIALIZATION.agc # pp. 1309-1333
|
||||
$ORBITAL_INTEGRATION.agc # pp. 1334-1354
|
||||
$INFLIGHT_ALIGNMENT_ROUTINES.agc # pp. 1355-1364
|
||||
$POWERED_FLIGHT_SUBROUTINES.agc # pp. 1365-1372
|
||||
$TIME_OF_FREE_FALL.agc # pp. 1373-1388
|
||||
$STAR_TABLES.agc # pp. 1389-1393
|
||||
$AGC_BLOCK_TWO_SELF-CHECK.agc # pp. 1394-1403
|
||||
$PHASE_TABLE_MAINTENANCE.agc # pp. 1404-1413
|
||||
$RESTARTS_ROUTINE.agc # pp. 1414-1419
|
||||
$IMU_MODE_SWITCHING_ROUTINES.agc # pp. 1420-1448
|
||||
$KEYRUPT_UPRUPT.agc # pp. 1449-1451
|
||||
$DISPLAY_INTERFACE_ROUTINES.agc # pp. 1452-1484
|
||||
$SERVICE_ROUTINES.agc # pp. 1485-1492
|
||||
$ALARM_AND_ABORT.agc # pp. 1493-1496
|
||||
$UPDATE_PROGRAM.agc # pp. 1497-1507
|
||||
$RT8_OP_CODES.agc # pp. 1508-1516
|
||||
|
||||
# pp. 1517-1751: GAP-generated tables.
|
496
Comanche055/MEASUREMENT_INCORPORATION.agc
Normal file
496
Comanche055/MEASUREMENT_INCORPORATION.agc
Normal file
@ -0,0 +1,496 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: MEASUREMENT_INCORPORATION.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: 1252-1261
|
||||
# Mod history: 2009-05-14 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 1252
|
||||
# INCORP1--PERFORMS THE SIX DIMENSIONAL STATE VECTOR DEVIATION FOR POSITI
|
||||
# ON AND VELOCITY OR THE NINE DIMENSIONAL DEVIATION OF POSITION,VELOCITY,A
|
||||
# ND RADAR OR LANDMARK BIAS.THE OUTPUT OF THE BVECTOR ROUTINE ALONG WITH T
|
||||
# HE ERROR TRANSITION MATRIX(W) ARE USED AS INPUT TO THE ROUTINE.THE DEVIA
|
||||
# TION IS OBTAINED BY COMPUTING AN ESTIMATED TRACKING MEASUREMENT FROM THE
|
||||
# CURRENT STATE VECTOR AND COMPARING IT WITH AN ACTUAL TRACKING MEASUREMEN
|
||||
# T AND APPLYING A STATISTICAL WEIGHTING VECTOR.
|
||||
# INPUT
|
||||
# DMENFLG = 0 6DIMENSIONAL BVECTOR 1= 9DIMENSIONAL
|
||||
# W = ERROR TRANSITION MATRIX 6X6 OR 9X9
|
||||
# VARIANCE = VARIANCE (SCALAR)
|
||||
# DELTAQ = MEASURED DEVIATION(SCALAR)
|
||||
# BVECTOR = 6 OR 9 DIMENSIONAL BVECTOR
|
||||
#
|
||||
# OUTPUT
|
||||
# DELTAX = STATE VECTOR DEVIATIONS 6 OR 9 DIMENSIONAL
|
||||
# ZI = VECTOR USED FOR THE INCORPORATION 6 OR 9 DIMENSIONAL
|
||||
# GAMMA = SCALAR
|
||||
# OMEGA = OMEGA WEIGHTING VECTOR 6 OR 9 DIMENSIONAL
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
# L CALL INCORP1
|
||||
#
|
||||
# NORMAL EXIT
|
||||
# L+1 OF CALLING SEQUENCE
|
||||
|
||||
BANK 37
|
||||
SETLOC MEASINC
|
||||
BANK
|
||||
|
||||
COUNT* $$/INCOR
|
||||
|
||||
EBANK= W
|
||||
|
||||
INCORP1 STQ
|
||||
EGRESS
|
||||
AXT,1 SSP
|
||||
54D
|
||||
S1
|
||||
18D # IX1 = 54 S1= 18
|
||||
AXT,2 SSP
|
||||
18D
|
||||
S2
|
||||
6 # IX2 = 18 S2=6
|
||||
Z123 VLOAD MXV*
|
||||
BVECTOR # BVECTOR (0)
|
||||
W +54D,1
|
||||
STORE ZI +18D,2
|
||||
VLOAD
|
||||
BVECTOR +6 # BVECTOR (1)
|
||||
# Page 1253
|
||||
MXV* VAD*
|
||||
W +108D,1
|
||||
ZI +18D,2
|
||||
STORE ZI +18D,2
|
||||
VLOAD
|
||||
BVECTOR +12D # BVECTOR (2)
|
||||
MXV* VAD*
|
||||
W +162D,1
|
||||
ZI +18D,2 # B(0)*W+B(1)*(W+54)+B(2)*(W+108)FIRST PAS
|
||||
STORE ZI +18D,2 # ZI THEN Z2 THEN Z3
|
||||
TIX,1
|
||||
INCOR1
|
||||
INCOR1 TIX,2 BON
|
||||
Z123 # LOOP FOR Z1,Z2,Z3
|
||||
DMENFLG
|
||||
INCOR1A
|
||||
VLOAD
|
||||
ZEROVECS
|
||||
STORE ZI +12D
|
||||
INCOR1A SETPD VLOAD
|
||||
0
|
||||
ZI
|
||||
VSQ RTB
|
||||
TPMODE
|
||||
PDVL VSQ
|
||||
ZI +6
|
||||
RTB TAD
|
||||
TPMODE
|
||||
PDVL VSQ
|
||||
ZI +12D
|
||||
RTB TAD
|
||||
TPMODE
|
||||
TAD AXT,2
|
||||
VARIANCE
|
||||
0
|
||||
STORE TRIPA # ZI*2 + Z2*2 + Z3*2 + VARIANCE
|
||||
TLOAD BOV
|
||||
VARIANCE # CLEAR OVFIND
|
||||
+1
|
||||
STORE TEMPVAR # TEMP STORAGE FOR VARIANCE
|
||||
BZE
|
||||
INCOR1C
|
||||
INCOR1B SL2 BOV
|
||||
INCOR1C
|
||||
STORE TEMPVAR
|
||||
INCR,2 GOTO
|
||||
DEC 1
|
||||
INCOR1B
|
||||
INCOR1C TLOAD ROUND
|
||||
TRIPA
|
||||
# Page 1254
|
||||
DMP SQRT
|
||||
TEMPVAR
|
||||
SL* TAD
|
||||
0,2
|
||||
TRIPA
|
||||
NORM INCR,2
|
||||
X2
|
||||
DEC -2
|
||||
SXA,2 AXT,2
|
||||
NORMGAM # NORMALIZATION COUNT -2 FOR GAMMA
|
||||
162D
|
||||
BDDV SETPD
|
||||
DP1/4TH
|
||||
0
|
||||
STORE GAMMA
|
||||
TLOAD NORM
|
||||
TRIPA
|
||||
X1
|
||||
DLOAD PDDL # PD 0-1 = NORM (A)
|
||||
MPAC
|
||||
DELTAQ
|
||||
NORM
|
||||
S1
|
||||
XSU,1 SR1
|
||||
S1
|
||||
DDV PUSH # PD 0-1 = DELTAQ/A
|
||||
GOTO
|
||||
NEWZCOMP
|
||||
-3 SSP
|
||||
S2
|
||||
54D
|
||||
INCOR2 VLOAD VXM* # COMPUT OMEGA1,2,3
|
||||
ZI
|
||||
W +162D,2
|
||||
PUSH VLOAD
|
||||
ZI +6
|
||||
VXM* VAD
|
||||
W +180D,2
|
||||
PUSH VLOAD
|
||||
ZI +12D
|
||||
VXM* VAD
|
||||
W +198D,2
|
||||
PUSH TIX,2 # PD 2-7=OMEGA1,8-13=OMEGA2,14-19=OMEGA3
|
||||
INCOR2
|
||||
VLOAD STADR
|
||||
STORE OMEGA +12D
|
||||
VLOAD STADR
|
||||
STORE OMEGA +6
|
||||
VLOAD STADR
|
||||
STORE OMEGA
|
||||
# Page 1255
|
||||
BON VLOAD
|
||||
DMENFLG
|
||||
INCOR2AB
|
||||
ZEROVECS
|
||||
STORE OMEGA +12D
|
||||
INCOR2AB AXT,2 SSP
|
||||
18D
|
||||
S2
|
||||
6
|
||||
INCOR3 VLOAD*
|
||||
OMEGA +18D,2
|
||||
VXSC VSL*
|
||||
0 # DELTAQ/A
|
||||
0,1
|
||||
STORE DELTAX +18D,2
|
||||
TIX,2 VLOAD
|
||||
INCOR3
|
||||
DELTAX +6
|
||||
VSL3
|
||||
STORE DELTAX +6
|
||||
GOTO
|
||||
EGRESS
|
||||
|
||||
# Page 1256
|
||||
# INCORP2 -INCORPORATES THE COMPUTED STATE VECTOR DEVIATIONS INTO THE
|
||||
# ESTIMATED STATE VECTOR. THE STATE VECTOR UPDATED MAY BE FOR EITHER THE
|
||||
# LEM OR THE CSM.DETERMINED BY FLAG VEHUPFLG.(ZERO = LEM) (1 = CSM)
|
||||
# INPUT
|
||||
# PERMANENT STATE VECTOR FOR EITHER THE LEM OR CSM
|
||||
# VEHUPFLG = UPDATE VEHICLE C=LEM 1=CSM
|
||||
# W = ERROR TRANSITION MATRIX
|
||||
# DELTAX = COMPUTED STATE VECTOR DEVIATIONS
|
||||
# DMENFLG = SIZE OF W MATRIX (ZERO=6X6) (1=9X9)
|
||||
# GAMMA = SCALAR FOR INCORPORATION
|
||||
# ZI = VECTOR USED IN INCORPORATION
|
||||
# OMEGA = WEIGHTING VECTOR
|
||||
#
|
||||
# OUTPUT
|
||||
# UPDATED PERMANENT STATE VECTOR
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
# L CALL INCORP2
|
||||
#
|
||||
# NORMAL EXIT
|
||||
# L+1 OF CALLING SEQUENCE
|
||||
#
|
||||
|
||||
SETLOC MEASINC1
|
||||
BANK
|
||||
|
||||
COUNT* $$/INCOR
|
||||
|
||||
INCORP2 STQ CALL
|
||||
EGRESS
|
||||
INTSTALL
|
||||
VLOAD VXSC # CALC. GAMMA * OMEGA1,2,3
|
||||
OMEGA
|
||||
GAMMA
|
||||
STOVL OMEGAM1
|
||||
OMEGA +6
|
||||
VXSC
|
||||
GAMMA
|
||||
STOVL OMEGAM2
|
||||
OMEGA +12D
|
||||
VXSC
|
||||
GAMMA
|
||||
STORE OMEGAM3
|
||||
EXIT
|
||||
CAF 54DD # INITIAL IX 1 SETTING FOR W MATRIX
|
||||
TS WIXA
|
||||
TS WIXB
|
||||
CAF ZERO
|
||||
TS ZIXA # INITIAL IX 2 SETTING FOR Z COMPONENT
|
||||
TS ZIXB
|
||||
FAZA TC PHASCHNG
|
||||
# Page 1257
|
||||
OCT 04022
|
||||
TC UPFLAG
|
||||
ADRES REINTFLG
|
||||
FAZA1 CA WIXB # START FIRST PHASE OF INCORP2
|
||||
TS WIXA # TO UPDATE 6 OR 9 DIM. W MATRIX IN TEMP
|
||||
CA ZIXB
|
||||
TS ZIXA
|
||||
TC INTPRET
|
||||
LXA,1 LXA,2
|
||||
WIXA
|
||||
ZIXA
|
||||
SSP DLOAD*
|
||||
S1
|
||||
6
|
||||
ZI,2
|
||||
DCOMP NORM # CALC UPPER 3X9 PARTITION OF W MATRIX
|
||||
S2
|
||||
VXSC XCHX,2
|
||||
OMEGAM1
|
||||
S2
|
||||
LXC,2 XAD,2
|
||||
X2
|
||||
NORMGAM
|
||||
VSL* XCHX,2
|
||||
0,2
|
||||
S2
|
||||
VAD*
|
||||
W +54D,1
|
||||
STORE HOLDW
|
||||
DLOAD* DCOMP # CALC MIDDLE 3X9 PARTITION OF W MATRIX
|
||||
ZI,2
|
||||
NORM VXSC
|
||||
S2
|
||||
OMEGAM2
|
||||
XCHX,2 LXC,2
|
||||
S2
|
||||
X2
|
||||
XAD,2 VSL*
|
||||
NORMGAM
|
||||
0,2
|
||||
XCHX,2 VAD*
|
||||
S2
|
||||
W +108D,1
|
||||
STORE HOLDW +6
|
||||
BOFF
|
||||
DMENFLG # BRANCH IF 6 DIMENSIONAL
|
||||
FAZB
|
||||
DLOAD* DCOMP # CALC LOWER 3X9 PARTITION OF W MATRIX
|
||||
ZI,2
|
||||
NORM VXSC
|
||||
# Page 1258
|
||||
S2
|
||||
OMEGAM3
|
||||
XCHX,2 LXC,2
|
||||
S2
|
||||
X2
|
||||
XAD,2 VSL*
|
||||
NORMGAM
|
||||
0,2
|
||||
XCHX,2 VAD*
|
||||
S2
|
||||
W +162D,1
|
||||
STORE HOLDW +12D
|
||||
FAZB CALL
|
||||
GRP2PC
|
||||
EXIT
|
||||
FAZB1 CA WIXA # START 2ND PHASE OF INCORP2 TO TRANSFER
|
||||
AD 6DD # TEMP REG TO PERM W MATRIX
|
||||
TS WIXB
|
||||
CA ZIXA
|
||||
AD MINUS2
|
||||
TS ZIXB
|
||||
TC INTPRET
|
||||
LXA,1 SSP
|
||||
WIXA
|
||||
S1
|
||||
6
|
||||
VLOAD
|
||||
HOLDW
|
||||
STORE W +54D,1
|
||||
VLOAD
|
||||
HOLDW +6
|
||||
STORE W +108D,1
|
||||
BOFF VLOAD
|
||||
DMENFLG
|
||||
FAZB5
|
||||
HOLDW +12D
|
||||
STORE W +162D,1
|
||||
FAZB2 TIX,1 GOTO
|
||||
+2
|
||||
FAZC # DONE WITH W MATRIX. UPDATE STATE VECTOR
|
||||
RTB
|
||||
FAZA
|
||||
FAZB5 SLOAD DAD
|
||||
ZIXB
|
||||
12DD
|
||||
BHIZ GOTO
|
||||
FAZC
|
||||
FAZB2
|
||||
FAZC CALL
|
||||
GRP2PC
|
||||
# Page 1259
|
||||
VLOAD VAD # START 3RD PHASE OF INCORP2
|
||||
X789 # 7TH,8TH,9TH,COMPONENT OF STATE VECTOR
|
||||
DELTAX +12D # INCORPORATION FOR X789
|
||||
STORE TX789
|
||||
BON RTB
|
||||
VEHUPFLG
|
||||
DOCSM
|
||||
MOVEPLEM
|
||||
FAZAB BOVB AXT,2
|
||||
TCDANZIG
|
||||
0
|
||||
BOFF AXT,2
|
||||
MOONTHIS
|
||||
+2
|
||||
2
|
||||
VLOAD VSR*
|
||||
DELTAX # B27 IF MOON ORBIT, B29 IF EARTH
|
||||
0 -7,2
|
||||
VAD BOV
|
||||
TDELTAV
|
||||
FAZAB1
|
||||
STOVL TDELTAV
|
||||
DELTAX +6 # B5 IF MOON ORBIT, B7 IF EARTH
|
||||
VSR* VAD
|
||||
0 -4,2
|
||||
TNUV
|
||||
BOV
|
||||
FAZAB2
|
||||
STCALL TNUV
|
||||
FAZAB3
|
||||
FAZAB1 VLOAD VAD
|
||||
RCV
|
||||
DELTAX
|
||||
STORE RCV
|
||||
FAZAB2 VLOAD VAD
|
||||
VCV
|
||||
DELTAX +6
|
||||
STORE VCV
|
||||
SXA,2 CALL
|
||||
PBODY
|
||||
RECTIFY
|
||||
FAZAB3 CALL
|
||||
GRP2PC
|
||||
BON RTB
|
||||
VEHUPFLG
|
||||
DOCSM1
|
||||
MOVEALEM
|
||||
CALL
|
||||
SVDWN2 # STORE DOWNLINK STATE VECTOR
|
||||
FAZAB4 CALL
|
||||
# Page 1260
|
||||
GRP2PC # PHASE CHANGE
|
||||
BOFF VLOAD
|
||||
DMENFLG
|
||||
FAZAB5 # 6 DIMENSIONAL
|
||||
TX789 # 9 DIMENSIONAL
|
||||
STORE X789
|
||||
FAZAB5 LXA,1 SXA,1
|
||||
EGRESS
|
||||
QPRET
|
||||
EXIT
|
||||
TC POSTJUMP # EXIT
|
||||
CADR INTWAKE
|
||||
DOCSM RTB GOTO
|
||||
MOVEPCSM
|
||||
FAZAB
|
||||
DOCSM1 RTB CALL
|
||||
MOVEACSM
|
||||
SVDWN1 # STORE DOWNLINK STATE VECTOR
|
||||
GOTO
|
||||
FAZAB4
|
||||
ZEROD = ZEROVECS
|
||||
54DD DEC 54
|
||||
6DD DEC -6
|
||||
12DD DEC 12
|
||||
SETLOC MEASINC2
|
||||
BANK
|
||||
COUNT* $$/INCOR
|
||||
|
||||
NEWZCOMP VLOAD ABVAL
|
||||
ZI
|
||||
STOVL NORMZI
|
||||
ZI +6
|
||||
ABVAL PUSH
|
||||
DSU BMN
|
||||
NORMZI
|
||||
+3
|
||||
DLOAD STADR
|
||||
STORE NORMZI
|
||||
VLOAD ABVAL
|
||||
ZI +12D
|
||||
PUSH DSU
|
||||
NORMZI
|
||||
BMN DLOAD
|
||||
NEWZCMP1
|
||||
STADR
|
||||
STCALL NORMZI # LARGEST ABVAL
|
||||
NEWZCMP1
|
||||
|
||||
SETLOC MEASINC3
|
||||
BANK
|
||||
# Page 1261
|
||||
NEWZCMP1 DLOAD SXA,1
|
||||
NORMZI
|
||||
NORMZI # SAVE X1
|
||||
NORM INCR,1
|
||||
X1
|
||||
DEC 2
|
||||
VLOAD VSL*
|
||||
ZI
|
||||
0,1
|
||||
STOVL ZI
|
||||
ZI +6
|
||||
VSL*
|
||||
0,1
|
||||
STOVL ZI +6
|
||||
ZI +12D
|
||||
VSL* SXA,1
|
||||
0,1
|
||||
NORMZI +1 # SAVE SHIFT
|
||||
STORE ZI +12D
|
||||
LXA,1 XSU,1
|
||||
NORMGAM
|
||||
NORMZI +1
|
||||
XSU,1
|
||||
NORMZI +1
|
||||
SXA,1 LXC,1
|
||||
NORMGAM
|
||||
NORMZI +1
|
||||
XAD,1 SETPD
|
||||
NORMZI
|
||||
2D
|
||||
GOTO
|
||||
INCOR2 -3
|
||||
NORMZI = 36D
|
93
Comanche055/MYSUBS.agc
Normal file
93
Comanche055/MYSUBS.agc
Normal file
@ -0,0 +1,93 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: MYSUBS.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: 999-1001
|
||||
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images.
|
||||
# 2009-05-20 RSB Corrections: EBANK= changed from MPAC to KMPAC.
|
||||
#
|
||||
# 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 999
|
||||
BANK 20
|
||||
SETLOC MYSUBS
|
||||
BANK
|
||||
|
||||
EBANK= KMPAC
|
||||
SPCOS1 EQUALS SPCOS
|
||||
SPSIN1 EQUALS SPSIN
|
||||
SPCOS2 EQUALS SPCOS
|
||||
SPSIN2 EQUALS SPSIN
|
||||
|
||||
|
||||
COUNT 21/DAPMS
|
||||
|
||||
# ONE AND ONE HALF PRECISION MULTIPLICATION ROUTINE
|
||||
|
||||
SMALLMP TS KMPTEMP # A(X+Y)
|
||||
EXTEND
|
||||
MP KMPAC +1
|
||||
TS KMPAC +1 # AY
|
||||
CAF ZERO
|
||||
XCH KMPAC
|
||||
EXTEND
|
||||
MP KMPTEMP # AX
|
||||
DAS KMPAC # AX+AY
|
||||
TC Q
|
||||
|
||||
|
||||
# SUBROUTINE FOR DOUBLE PRECISION ADDITIONS OF ANGLES
|
||||
# A AND L CONTAIN A DP(1S) ANGLE SCALED BY 180 DEGS TO BE ADDED TO KMPAC.
|
||||
# RESULT IS PLACED IN KMPAC. TIMING = 6 MCT (22 MCT ON OVERFLOW)
|
||||
|
||||
DPADD DAS KMPAC
|
||||
EXTEND
|
||||
BZF TSK +1 # NO OVERFLOW
|
||||
CCS KMPAC
|
||||
TCF DPADD+ # + OVERFLOW
|
||||
TCF +2
|
||||
TCF DPADD- # - OVERFLOW
|
||||
CCS KMPAC +1
|
||||
TCF DPADD2+ # UPPER = 0, LOWER +
|
||||
TCF +2
|
||||
COM # UPPER = 0, LOWER -
|
||||
AD POSMAX # LOWER = 0, A=0
|
||||
TS KMPAC +1 # CAN NOT OVERFLOW
|
||||
CA POSMAX # UPPER WAS = 0
|
||||
TSK TS KMPAC
|
||||
TC Q
|
||||
|
||||
DPADD+ AD NEGMAX # KMPAC GREATER THAN 0
|
||||
TCF TSK
|
||||
|
||||
# Page 1000
|
||||
DPADD- COM
|
||||
AD POSMAX # KMPAC LESS THAN 0
|
||||
TCF TSK
|
||||
|
||||
DPADD2+ AD NEGMAX # CAN NOT OVERFLOW
|
||||
TS KMPAC +1
|
||||
CA NEGMAX # UPPER WAS = 0
|
||||
TCF TSK
|
||||
|
||||
# Page 1001 (empty page)
|
944
Comanche055/ORBITAL_INTEGRATION.agc
Normal file
944
Comanche055/ORBITAL_INTEGRATION.agc
Normal file
@ -0,0 +1,944 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: ORBITAL_INTEGRATION.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: 1334-1354
|
||||
# Mod history: 2009-05-14 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images.
|
||||
# 2009-05-20 RSB Corrections: DAT -> DAD in one place,
|
||||
# BWM -> BMN, DEFEQCNT -> DIFEQCNT.
|
||||
#
|
||||
# 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 1334
|
||||
# ORBITAL INTEGRATION
|
||||
|
||||
# DELETE
|
||||
BANK 13
|
||||
SETLOC ORBITAL
|
||||
BANK
|
||||
COUNT 11/ORBIT
|
||||
|
||||
# DELETE
|
||||
KEPPREP LXA,2 SETPD
|
||||
PBODY
|
||||
0
|
||||
DLOAD* SQRT # SQRT(MU) (+18 OR +15) 0D PL 2D
|
||||
MUEARTH,2
|
||||
PDVL UNIT # PL 8D
|
||||
RCV
|
||||
PDDL NORM # NORM R (+29 OR +27 - N1) 2D PL 4D
|
||||
36D
|
||||
X1
|
||||
PDVL
|
||||
DOT PDDL # F*SQRT(MU)(+7 OR +5) 4D PL 6D
|
||||
VCV
|
||||
TAU. # (+28)
|
||||
DSU NORM
|
||||
TC
|
||||
S1
|
||||
SR1
|
||||
DDV PDDL
|
||||
2D
|
||||
DMP PUSH # FS(+6 +N1-N2) 6D PL 8D
|
||||
4D
|
||||
DSQ PDDL # (FS)SQ(+12 +2(N1-N2)) 8D PL 10D
|
||||
4D
|
||||
DSQ PDDL* # SSQ/MU(-2OR +2(N1-N2)) 10D PL 12D
|
||||
MUEARTH,2
|
||||
SR3 SR4
|
||||
PDVL VSQ # PREALIGN MU (+43 OR +37) 12D PL 14D
|
||||
VCV
|
||||
DMP BDSU # PL 12D
|
||||
36D
|
||||
DDV DMP # PL 10D
|
||||
2D # -(1/R-ALPHA)(+12 +3N1-2N2)
|
||||
DMP SL*
|
||||
DP2/3
|
||||
0 -3,1 # 10L(1/R-ALPHA)(+13 +2(N1-N2))
|
||||
XSU,1 DAD # 2(FS)SQ - ETCETERA PL 8D
|
||||
S1 # X1 = N2-N1
|
||||
SL* DSU # -FS+2(FS)SQ ETC (+6 +N1-N2) PL 6D
|
||||
8D,1
|
||||
DMP DMP
|
||||
0D
|
||||
4D
|
||||
SL* SL*
|
||||
# Page 1335
|
||||
8D,1
|
||||
0,1 # S(-FS(1-2FS)-1/6...)(+17 OR +16)
|
||||
DAD PDDL # PL 6D
|
||||
XKEP
|
||||
DMP SL* # S(+17 OR +16)
|
||||
0D
|
||||
1,1
|
||||
BOVB DAD
|
||||
TCDANZIG
|
||||
STADR
|
||||
STORE XKEPNEW
|
||||
STQ AXC,1
|
||||
KEPRTN
|
||||
DEC 10
|
||||
BON AXC,1
|
||||
MOONFLAG
|
||||
KEPLERN
|
||||
DEC 2
|
||||
GOTO
|
||||
KEPLERN
|
||||
|
||||
# Page 1336
|
||||
FBR3 LXA,1 SSP
|
||||
DIFEQCNT
|
||||
S1
|
||||
DEC -13
|
||||
DLOAD SR
|
||||
DT/2
|
||||
9D
|
||||
TIX,1 ROUND
|
||||
+1
|
||||
PUSH DAD
|
||||
TC
|
||||
STODL TAU.
|
||||
DAD
|
||||
TET
|
||||
STCALL TET
|
||||
KEPPREP
|
||||
|
||||
# Page 1337
|
||||
# AGC ROUTINE TO COMPUTE ACCELERATION COMPONENTS.
|
||||
|
||||
ACCOMP LXA,1 LXA,2
|
||||
PBODY
|
||||
PBODY
|
||||
VLOAD
|
||||
ZEROVEC
|
||||
STOVL FV
|
||||
ALPHAV
|
||||
VSL* VAD
|
||||
0 -7,2
|
||||
RCV
|
||||
STORE BETAV
|
||||
BOF XCHX,2
|
||||
DIM0FLAG
|
||||
+5
|
||||
DIFEQCNT
|
||||
STORE VECTAB,2
|
||||
XCHX,2
|
||||
DIFEQCNT
|
||||
VLOAD UNIT
|
||||
ALPHAV
|
||||
STODL ALPHAV
|
||||
36D
|
||||
STORE ALPHAM
|
||||
CALL
|
||||
GAMCOMP
|
||||
VLOAD SXA,1
|
||||
BETAV
|
||||
S2
|
||||
STODL ALPHAV
|
||||
BETAM
|
||||
STORE ALPHAM
|
||||
BOF DLOAD
|
||||
MIDFLAG
|
||||
OBLATE
|
||||
TET
|
||||
CALL
|
||||
LSPOS
|
||||
AXT,2 LXA,1
|
||||
2
|
||||
S2
|
||||
BOF
|
||||
MOONFLAG
|
||||
+3
|
||||
VCOMP AXT,2
|
||||
0
|
||||
STORE BETAV
|
||||
STOVL RPQV
|
||||
# Page 1338
|
||||
2D
|
||||
STORE RPSV
|
||||
BOF VLOAD
|
||||
DIM0FLAG
|
||||
GETRPSV
|
||||
ALPHAV
|
||||
VXSC VSR*
|
||||
ALPHAM
|
||||
1,2
|
||||
VSU XCHX,2
|
||||
BETAV
|
||||
DIFEQCNT
|
||||
STORE VECTAB +6,2
|
||||
XCHX,2
|
||||
DIFEQCNT
|
||||
GETRPSV VLOAD INCR,1
|
||||
RPQV
|
||||
4
|
||||
CLEAR BOF
|
||||
RPQFLAG
|
||||
MOONFLAG
|
||||
+5
|
||||
VSR VAD
|
||||
9D
|
||||
RPSV
|
||||
STORE RPSV
|
||||
CALL
|
||||
GAMCOMP
|
||||
AXT,2 INCR,1
|
||||
4
|
||||
4
|
||||
VLOAD
|
||||
RPSV
|
||||
STCALL BETAV
|
||||
GAMCOMP
|
||||
GOTO
|
||||
OBLATE
|
||||
GAMCOMP VLOAD VSR1
|
||||
BETAV
|
||||
VSQ SETPD
|
||||
0
|
||||
NORM ROUND
|
||||
31D
|
||||
PDDL NORM # NORMED B SQUARED TO PD LIST
|
||||
ALPHAM # NORMALIZE (LESS ONE) LENGTH OF ALPHA
|
||||
32D # SAVING NORM SCALE FACTOR IN X1
|
||||
SR1 PDVL
|
||||
BETAV # C(PDL+2) = ALMOST NORMED ALPHA
|
||||
UNIT
|
||||
STODL BETAV
|
||||
# Page 1339
|
||||
36D
|
||||
STORE BETAM
|
||||
NORM BDDV # FORM NORMALIZED QUOTIENT ALPHAM/BETAM
|
||||
33D
|
||||
SR1R PUSH # C(PDL+2) = ALMOST NORMALIZED RHO.
|
||||
DLOAD*
|
||||
ASCALE,1
|
||||
STORE S1
|
||||
XCHX,2 XAD,2
|
||||
S1
|
||||
32D
|
||||
XSU,2 DLOAD
|
||||
33D
|
||||
2D
|
||||
SR* XCHX,2
|
||||
0 -1,2
|
||||
S1
|
||||
PUSH SR1R # RHO/4 TO 4D
|
||||
PDVL DOT
|
||||
ALPHAV
|
||||
BETAV
|
||||
SL1R BDSU # (RHO/4) - 2(ALPHAV/2.BETAV/2)
|
||||
PUSH DMPR # TO PDL+6
|
||||
4
|
||||
SL1
|
||||
PUSH DAD
|
||||
DQUARTER
|
||||
PUSH SQRT
|
||||
DMPR PUSH
|
||||
10D
|
||||
SL1 DAD
|
||||
DQUARTER
|
||||
PDDL DAD # (1/4)+2((Q+1)/4) TO PD+14D
|
||||
10D
|
||||
HALFDP
|
||||
DMPR SL1
|
||||
8D
|
||||
DAD DDV
|
||||
THREE/8
|
||||
14D
|
||||
DMPR VXSC
|
||||
6
|
||||
BETAV
|
||||
PDVL VSR3 # (G/2)(C(PD+4))B/2 TO PD+16D
|
||||
ALPHAV
|
||||
VAD PUSH # A12 + C(PD+16D) TO PD+16D
|
||||
DLOAD DMP
|
||||
0
|
||||
12D
|
||||
NORM ROUND
|
||||
# Page 1340
|
||||
30D
|
||||
BDDV DMP*
|
||||
2
|
||||
MUEARTH,2
|
||||
DCOMP VXSC
|
||||
XCHX,2 XAD,2
|
||||
S1
|
||||
S2
|
||||
XSU,2 XSU,2
|
||||
30D
|
||||
31D
|
||||
BOV # CLEAR OVIND
|
||||
+1
|
||||
VSR* XCHX,2
|
||||
0 -1,2
|
||||
S1
|
||||
VAD
|
||||
FV
|
||||
STORE FV
|
||||
BOV RVQ # RETURN IF NO OVERFLOW
|
||||
+1
|
||||
GOBAQUE VLOAD ABVAL
|
||||
TDELTAV
|
||||
BZE
|
||||
INT-ABRT
|
||||
DLOAD SR
|
||||
H
|
||||
9D
|
||||
PUSH BDSU
|
||||
TC
|
||||
STODL TAU.
|
||||
TET
|
||||
DSU STADR
|
||||
STCALL TET
|
||||
KEPPREP
|
||||
CALL
|
||||
RECTIFY
|
||||
SETGO
|
||||
RPQFLAG
|
||||
TESTLOOP
|
||||
|
||||
INT-ABRT EXIT
|
||||
TC POODOO
|
||||
OCT 00430
|
||||
|
||||
# Page 1341
|
||||
# THE OBLATE ROUTINE COMPUTES THE ACCELERATION DUE TO OBLATENESS. IT USES THE UNIT OF THE VEHICLE
|
||||
# POSITION VECTOR FOUND IN ALPHAV AND THE DISTANCE TO THE CENTER IN ALPHAM. THIS IS ADDED TO THE SUM OF THE
|
||||
# DISTURBING ACCELERATIONS IN FV AND THE PROPER DIFEQ STAGE IS CALLED VIA X1.
|
||||
OBLATE LXA,2 DLOAD
|
||||
PBODY
|
||||
ALPHAM
|
||||
SETPD DSU*
|
||||
0
|
||||
RDE,2
|
||||
BPL BOF # GET URPV
|
||||
NBRANCH
|
||||
MOONFLAG
|
||||
COSPHIE
|
||||
VLOAD PDDL
|
||||
ALPHAV
|
||||
TET
|
||||
PDDL CALL
|
||||
3/5
|
||||
R-TO-RP
|
||||
STORE URPV
|
||||
VLOAD VXV
|
||||
504LM
|
||||
ZUNIT
|
||||
VAD VXM
|
||||
ZUNIT
|
||||
MMATRIX
|
||||
UNIT # POSSIBLY UNNECESSARY
|
||||
COMTERM STORE UZ
|
||||
DLOAD DMPR
|
||||
COSPHI/2
|
||||
3/32
|
||||
PDDL DSQ # P2/64 TO PD0
|
||||
COSPHI/2
|
||||
DMPR DSU
|
||||
15/16
|
||||
3/64
|
||||
PUSH DMPR # P3/32 TO PD2
|
||||
COSPHI/2
|
||||
DMP SL1R
|
||||
7/12
|
||||
PDDL DMPR
|
||||
0
|
||||
2/3
|
||||
BDSU PUSH # P4/128 TO PD4
|
||||
DMPR DMPR
|
||||
COSPHI/2 # BEGIN COMPUTING P5/1024
|
||||
9/16
|
||||
PDDL DMPR
|
||||
2
|
||||
5/128
|
||||
# Page 1342
|
||||
BDSU
|
||||
DMP*
|
||||
J4REQ/J3,2
|
||||
DDV DAD # -3
|
||||
ALPHAM # (((P5/256)B 2 /R+P4/32) /R+P3/8)ALPHAV
|
||||
4 # 4 3
|
||||
DMPR* DDV
|
||||
2J3RE/J2,2
|
||||
ALPHAM
|
||||
DAD VXSC
|
||||
2
|
||||
ALPHAV
|
||||
STODL TVEC
|
||||
DMP* SR1
|
||||
J4REQ/J3,2
|
||||
DDV DAD
|
||||
ALPHAM # -3
|
||||
DMPR* SR3
|
||||
2J3RE/J2,2 # 3 4
|
||||
DDV DAD
|
||||
ALPHAM
|
||||
VXSC VSL1
|
||||
UZ
|
||||
BVSU
|
||||
TVEC
|
||||
STODL TVEC
|
||||
ALPHAM
|
||||
NORM DSQ
|
||||
X1
|
||||
DSQ NORM
|
||||
S1 # 4
|
||||
PUSH BDDV* # NORMED R TO 0D
|
||||
J2REQSQ,2
|
||||
VXSC BOV
|
||||
TVEC
|
||||
+1 # (RESET OVERFLOW INDICATOR)
|
||||
XAD,1 XAD,1
|
||||
X1
|
||||
X1
|
||||
XAD,1 VSL*
|
||||
S1
|
||||
0 -22D,1
|
||||
VAD BOV
|
||||
FV
|
||||
GOBAQUE
|
||||
STCALL FV
|
||||
QUALITY1
|
||||
QUALITY3 DSQ # J22 TERM X R**4 IN 2D. SCALED B61
|
||||
# AS VECTOR.
|
||||
PUSH DMP # STORE COSPHI**2 SCALED B2 IN 8D
|
||||
# Page 1343
|
||||
5/8 # 5 SCALED B3
|
||||
PDDL SR2 # PUT 5 COSPHI**2, D5, IN 8D. GET
|
||||
# COSPHI**2 D2 FROM 8D
|
||||
DAD BDSU # END UP WITH (1-7 COSPHI**2), B5
|
||||
8D # ADDING COSPHI**2 B4 SAME AS COSPHI**2
|
||||
# X 2 D5
|
||||
D1/32 # 1 SCALED B5
|
||||
DMP DMP
|
||||
URPV # X COMPONENT
|
||||
5/8 # 5 SCALED B3
|
||||
VXSC VSL5 # AFTER SHIFT, SCALED B5
|
||||
URPV # VECTOR, B1.
|
||||
PDDL # VECTOR INTO 8D, 10D, 12D, SCALED B5.
|
||||
# GET 5 COSPHI**2 OUT OF 8D
|
||||
DSU DAD
|
||||
D1/32 # 1 B5
|
||||
8D # X COMPONENT (SAME AS MULTIPLYING
|
||||
# BY UNITX)
|
||||
STODL 8D
|
||||
URPV # X COMPONENT
|
||||
DMP DMP
|
||||
URPV +4 # Z COMPONENT
|
||||
5/8 # 5 B3 ANSWER B5
|
||||
SL1 DAD # FROM 12D FOR Z COMPONENT (SL1 GIVES 10
|
||||
# INSTEAD OF 5 FOR COEFFICIENT)
|
||||
PDDL NORM # BACK INTO 12D FOR Z COMPONENT.
|
||||
ALPHAM # SCALED B27 FOR MOON
|
||||
X2
|
||||
PUSH SLOAD # STORE IN 14D, DESTROYING URPV
|
||||
# X COMPONENT
|
||||
E32C31RM
|
||||
DDV VXSC # IF X2 = 0, DIVISION GIVES B53, VXSC
|
||||
# OUT OF 8D B5 GIVES B58
|
||||
VSL* VAD # SHIFT MAKES B61, FOR ADDITION OF
|
||||
# VECTOR IN 2D
|
||||
0 -3,2
|
||||
VSL* V/SC # OPERAND FROM 0D, B108 FOR X1 = 0
|
||||
0 -27D,1 # FOR X1 = 0, MAKES B88, GIVING B-20
|
||||
# FOR RESULT.
|
||||
PDDL PDDL
|
||||
TET
|
||||
5/8 # ANY NON-ZERO CONSTANT
|
||||
LXA,2 CALL # POSITION IN 0D, TIME IN 6D. X2 LEFT
|
||||
# ALONE.
|
||||
PBODY
|
||||
RP-TO-R
|
||||
VAD BOV # OVERFLOW INDICATOR RESET IN "RP-TO-R"
|
||||
FV
|
||||
GOBAQUE
|
||||
STORE FV
|
||||
# Page 1344
|
||||
NBRANCH SLOAD LXA,1
|
||||
DIFEQCNT
|
||||
MPAC
|
||||
DMP CGOTO
|
||||
-1/12
|
||||
MPAC
|
||||
DIFEQTAB
|
||||
COSPHIE DLOAD
|
||||
ALPHAV +4
|
||||
STOVL COSPHI/2
|
||||
ZUNIT
|
||||
GOTO
|
||||
COMTERM
|
||||
DIFEQTAB CADR DIFEQ+0
|
||||
CADR DIFEQ+1
|
||||
CADR DIFEQ+2
|
||||
|
||||
TIMESTEP BOF CALL
|
||||
MIDFLAG
|
||||
RECTEST # SKIP ORIGIN CHANGE LOGIC
|
||||
CHKSWTCH
|
||||
BMN
|
||||
DOSWITCH
|
||||
|
||||
RECTEST VLOAD ABVAL # RECTIFY IF
|
||||
TDELTAV
|
||||
BOV
|
||||
CALLRECT
|
||||
DSU BPL # 1) EITHER TDELTAV OR TNUV EQUALS OR
|
||||
3/4 # EXCEEDS 3/4 IN MAGNITUDE
|
||||
CALLRECT #
|
||||
DAD SL* # OR
|
||||
3/4 #
|
||||
0 -7,2 # 2) ABVAL(TDELTAV) EQUALS OR EXCEEDS
|
||||
DDV DSU # .01(ABVAL(RCV))
|
||||
10D
|
||||
RECRATIO
|
||||
BPL VLOAD
|
||||
CALLRECT
|
||||
TNUV
|
||||
ABVAL DSU
|
||||
3/4
|
||||
BOV
|
||||
CALLRECT
|
||||
BMN
|
||||
INTGRATE
|
||||
CALLRECT CALL
|
||||
RECTIFY
|
||||
INTGRATE VLOAD
|
||||
TNUV
|
||||
# Page 1345
|
||||
STOVL ZV
|
||||
TDELTAV
|
||||
STORE YV
|
||||
CLEAR
|
||||
JSWITCH
|
||||
DIFEQ0 VLOAD SSP
|
||||
YV
|
||||
DIFEQCNT
|
||||
0
|
||||
STODL ALPHAV
|
||||
DPZERO
|
||||
STORE H # START H AT ZERO. GOES 0(DELT/2)DELT.
|
||||
BON GOTO
|
||||
JSWITCH
|
||||
DOW..
|
||||
ACCOMP
|
||||
|
||||
CHKSWTCH STQ BOF
|
||||
ORIGEX
|
||||
RPQFLAG
|
||||
RPQOK # MOON POSITION IS AVAILABLE
|
||||
DLOAD CALL
|
||||
TET
|
||||
LUNPOS # GET MOON POSITION
|
||||
BOF VCOMP
|
||||
MOONFLAG
|
||||
+1
|
||||
STORE RPQV
|
||||
|
||||
RPQOK LXA,2 VLOAD # RESTORE X2 AFTER USING LUNPOS
|
||||
PBODY
|
||||
TDELTAV # _
|
||||
VSL* VAD # |RQC|-RSPHERE WHEN OUTSIDE THE SPHERE.
|
||||
0 -7,2 # _ _ _
|
||||
RCV # R = RDEVIATION + RCONIC
|
||||
BOF ABVAL
|
||||
MOONFLAG
|
||||
EARSPH
|
||||
SR2 BDSU # INSIDE
|
||||
RSPHERE
|
||||
GOTO
|
||||
ORIGEX
|
||||
EARSPH VSU ABVAL # OUTSIDE
|
||||
RPQV
|
||||
DSU GOTO
|
||||
RSPHERE
|
||||
ORIGEX
|
||||
|
||||
DOSWITCH CALL
|
||||
ORIGCHNG
|
||||
GOTO
|
||||
INTGRATE
|
||||
|
||||
# Page 1346
|
||||
ORIGCHNG STQ CALL
|
||||
ORIGEX
|
||||
RECTIFY
|
||||
VLOAD VSL*
|
||||
RCV
|
||||
0,2
|
||||
VSU VSL*
|
||||
RPQV
|
||||
2,2
|
||||
STORE RRECT
|
||||
STODL RCV
|
||||
TET
|
||||
CALL
|
||||
LUNVEL
|
||||
BOF VCOMP
|
||||
MOONFLAG
|
||||
+1
|
||||
PDVL VSL*
|
||||
VCV
|
||||
0,2
|
||||
VSU
|
||||
VSL*
|
||||
0 +2,2
|
||||
STORE VRECT
|
||||
STORE VCV
|
||||
LXA,2 SXA,2
|
||||
ORIGEX
|
||||
QPRET
|
||||
BON GOTO
|
||||
MOONFLAG
|
||||
CLRMOON
|
||||
SETMOON
|
||||
# Page 1347
|
||||
# THE RECTIFY SUBROUTINE IS CALLED BY THE INTEGRATION PROGRAM AND OCCASIONALLY BY THE MEASUREMENT INCORPORATION
|
||||
# ROUTINES TO ESTABLISH A NEW CONIC.
|
||||
|
||||
|
||||
RECTIFY LXA,2 VLOAD
|
||||
PBODY
|
||||
TDELTAV
|
||||
VSL* VAD
|
||||
0 -7,2
|
||||
RCV
|
||||
STORE RRECT
|
||||
STOVL RCV
|
||||
TNUV
|
||||
VSL* VAD
|
||||
0 -4,2
|
||||
VCV
|
||||
MINIRECT STORE VRECT
|
||||
STOVL VCV
|
||||
ZEROVEC
|
||||
STORE TDELTAV
|
||||
STODL TNUV
|
||||
ZEROVEC
|
||||
STORE TC
|
||||
STORE XKEP
|
||||
RVQ
|
||||
|
||||
# Page 1348
|
||||
# THE THREE DIFEQ ROUTINES - DIFEQ+0, DIFEQ+12, DIFEQ+24 - ARE ENTEREDTO PROCESS THE CONTRIBUTIONS AT THE
|
||||
# BEGINNING, MIDDLE, AND END OF THE TIMESTEP, RESPECTIVELY. THE UPDATING IS DONE BY THE NYSTROM METHOD.
|
||||
DIFEQ+0 VLOAD VSR3
|
||||
FV
|
||||
STCALL PHIV
|
||||
DIFEQCOM
|
||||
DIFEQ+1 VLOAD VSR1
|
||||
FV
|
||||
PUSH VAD
|
||||
PHIV
|
||||
STOVL PSIV
|
||||
VSR1 VAD
|
||||
PHIV
|
||||
STCALL PHIV
|
||||
DIFEQCOM
|
||||
DIFEQ+2 DLOAD DMPR
|
||||
H
|
||||
DP2/3
|
||||
PUSH VXSC
|
||||
PHIV
|
||||
VSL1 VAD
|
||||
ZV
|
||||
VXSC VAD
|
||||
H
|
||||
YV
|
||||
STOVL YV
|
||||
FV
|
||||
VSR3 VAD
|
||||
PSIV
|
||||
VXSC VSL1
|
||||
VAD
|
||||
ZV
|
||||
STORE ZV
|
||||
BOFF CALL
|
||||
JSWITCH
|
||||
ENDSTATE
|
||||
GRP2PC
|
||||
LXA,2 VLOAD
|
||||
COLREG
|
||||
ZV
|
||||
VSL3 # ADJUST W-POSITION FOR STORAGE
|
||||
STORE W +54D,2
|
||||
VLOAD
|
||||
YV
|
||||
VSL3 BOV
|
||||
WMATEND
|
||||
STORE W,2
|
||||
|
||||
CALL
|
||||
GRP2PC
|
||||
# Page 1349
|
||||
LXA,2 SSP
|
||||
COLREG
|
||||
S2
|
||||
0
|
||||
INCR,2 SXA,2
|
||||
6
|
||||
YV
|
||||
TIX,2 CALL
|
||||
RELOADSV
|
||||
GRP2PC
|
||||
LXA,2 SXA,2
|
||||
YV
|
||||
COLREG
|
||||
|
||||
NEXTCOL CALL
|
||||
GRP2PC
|
||||
LXA,2 VLOAD*
|
||||
COLREG
|
||||
W,2
|
||||
VSR3 # ADJUST W-POSITION FOR INTEGRATION
|
||||
STORE YV
|
||||
VLOAD* AXT,1
|
||||
W +54D,2
|
||||
0
|
||||
VSR3 # ADJUST W-VELOCITY FOR INTEGRATION
|
||||
STCALL ZV
|
||||
DIFEQ0
|
||||
|
||||
ENDSTATE BOV VLOAD
|
||||
GOBAQUE
|
||||
ZV
|
||||
STOVL TNUV
|
||||
YV
|
||||
STORE TDELTAV
|
||||
BON BOFF
|
||||
MIDAVFLG
|
||||
CKMID2 # CHECK FOR MID2 BEFORE GOING TO TIMEINC
|
||||
DIM0FLAG
|
||||
TESTLOOP
|
||||
EXIT
|
||||
TC PHASCHNG
|
||||
OCT 04022 # PHASE 1
|
||||
TC UPFLAG # PHASE CHANGE HAS OCCURRED BETWEEN
|
||||
ADRES REINTFLG # INTSTALL AND INTWAKE
|
||||
TC INTPRET
|
||||
SSP
|
||||
QPRET
|
||||
AMOVED
|
||||
BON GOTO
|
||||
VINTFLAG
|
||||
# Page 1350
|
||||
ATOPCSM
|
||||
ATOPLEM
|
||||
AMOVED SET SSP
|
||||
JSWITCH
|
||||
COLREG
|
||||
DEC -30
|
||||
BOFF SSP
|
||||
D6OR9FLG
|
||||
NEXTCOL
|
||||
COLREG
|
||||
DEC -48
|
||||
GOTO
|
||||
NEXTCOL
|
||||
|
||||
RELOADSV DLOAD # RELOAD TEMPORARY STATE VECTOR
|
||||
TDEC # FROM PERMANENT IN CASE OF
|
||||
STCALL TDEC1
|
||||
INTEGRV2 # BY STARTING AT INTEGRV2.
|
||||
DIFEQCOM DLOAD DAD # INCREMENT H AND DIFEQCNT.
|
||||
DT/2
|
||||
H
|
||||
INCR,1 SXA,1
|
||||
DEC -12
|
||||
DIFEQCNT # DIFEQCNT SET FOR NEXT ENTRY.
|
||||
STORE H
|
||||
VXSC VSR1
|
||||
FV
|
||||
VAD VXSC
|
||||
ZV
|
||||
H
|
||||
VAD
|
||||
YV
|
||||
STORE ALPHAV
|
||||
BON GOTO
|
||||
JSWITCH
|
||||
DOW..
|
||||
FBR3
|
||||
|
||||
WMATEND CLEAR CLEAR
|
||||
DIM0FLAG # DONT INTEGRATE W THIS TIME
|
||||
ORBWFLAG # INVALIDATE W
|
||||
CLEAR
|
||||
RENDWFLG
|
||||
SET EXIT
|
||||
STATEFLG # PICK UP STATE VECTOR UPDATE
|
||||
TC ALARM
|
||||
OCT 421
|
||||
TC INTPRET
|
||||
# Page 1351
|
||||
GOTO
|
||||
TESTLOOP # FINISH INTEGRATING STATE VECTOR
|
||||
|
||||
# Page 1352
|
||||
# ORBITAL ROUTINE FOR EXTRAPOLATION OF THE W MATRIX. IT COMPUTES THE SECOND DERIVATIVE OF EACH COLUMN POSITION
|
||||
# VECTOR OF THE MATRIX AND CALLS THE NYSTROM INTEGRATION ROUTINES TO SOLVETHE DIFFERENTIAL EQUATIONS. THE PROGRAM
|
||||
# USES A TABLE OF VEHICLE POSITION VECTORS COMPUTED DURING THE INTEGRATION OF THE VEHICLES POSITION AND VELOCITY.
|
||||
DOW.. LXA,2 DLOAD*
|
||||
PBODY
|
||||
MUEARTH,2
|
||||
STCALL BETAM
|
||||
DOW..1
|
||||
STORE FV
|
||||
BOF INCR,1
|
||||
MIDFLAG
|
||||
NBRANCH
|
||||
DEC -6
|
||||
LXC,2 DLOAD*
|
||||
PBODY
|
||||
MUEARTH -2,2
|
||||
STCALL BETAM
|
||||
DOW..1
|
||||
BON VSR6
|
||||
MOONFLAG
|
||||
+1
|
||||
VAD
|
||||
FV
|
||||
STCALL FV
|
||||
NBRANCH
|
||||
DOW..1 VLOAD VSR4
|
||||
ALPHAV
|
||||
PDVL* UNIT
|
||||
VECTAB,1
|
||||
PDVL VPROJ
|
||||
ALPHAV
|
||||
VXSC VSU
|
||||
3/4
|
||||
PDDL NORM
|
||||
36D
|
||||
S2
|
||||
PUSH DSQ
|
||||
DMP
|
||||
NORM PDDL
|
||||
34D
|
||||
BETAM
|
||||
SR1 DDV
|
||||
VXSC
|
||||
LXA,2 XAD,2
|
||||
S2
|
||||
S2
|
||||
XAD,2 XAD,2
|
||||
S2
|
||||
34D
|
||||
VSL* RVQ
|
||||
# Page 1353
|
||||
0 -8D,2
|
||||
|
||||
SETLOC ORBITAL1
|
||||
BANK
|
||||
|
||||
3/5 2DEC .6 B-2
|
||||
|
||||
THREE/8 2DEC .375
|
||||
|
||||
.3D 2DEC .3 B-2
|
||||
|
||||
3/64 2DEC 3 B-6
|
||||
|
||||
DP1/4 2DEC .25
|
||||
|
||||
DQUARTER EQUALS DP1/4
|
||||
POS1/4 EQUALS DP1/4
|
||||
3/32 2DEC 3 B-5
|
||||
|
||||
15/16 2DEC 15. B-4
|
||||
|
||||
3/4 2DEC 3.0 B-2
|
||||
|
||||
7/12 2DEC .5833333333
|
||||
|
||||
9/16 2DEC 9 B-4
|
||||
|
||||
5/128 2DEC 5 B-7
|
||||
|
||||
DPZERO EQUALS ZEROVEC
|
||||
DP2/3 2DEC .6666666667
|
||||
|
||||
2/3 EQUALS DP2/3
|
||||
OCT27 OCT 27
|
||||
|
||||
BANK 13
|
||||
SETLOC ORBITAL2
|
||||
BANK
|
||||
# IT IS VITAL THAT THE FOLLOWING CONSTANTS NOT BE SHUFFLED
|
||||
DEC -11
|
||||
DEC -2
|
||||
DEC -9
|
||||
DEC -6
|
||||
DEC -2
|
||||
DEC -2
|
||||
DEC 0
|
||||
DEC -12
|
||||
DEC -9
|
||||
DEC -4
|
||||
ASCALE DEC -7
|
||||
DEC -6
|
||||
# Page 1354
|
||||
2DEC* 1.32715445 E16 B-54* # S
|
||||
|
||||
2DEC* 4.9027780 E8 B-30* # M
|
||||
|
||||
MUEARTH 2DEC* 3.986032 E10 B-36*
|
||||
|
||||
2DEC 0
|
||||
|
||||
J4REQ/J3 2DEC* .4991607391 E7 B-26*
|
||||
|
||||
2DEC -176236.02 B-25
|
||||
|
||||
2J3RE/J2 2DEC* -.1355426363 E5 B-27*
|
||||
|
||||
2DEC* .3067493316 E18 B-60*
|
||||
|
||||
J2REQSQ 2DEC* 1.75501139 E21 B-72*
|
||||
|
||||
3J22R2MU 2DEC* 9.20479048 E16 B-58*
|
||||
|
||||
5/8 2DEC 5 B-3
|
||||
|
||||
-1/12 2DEC -.1
|
||||
|
||||
MUM = MUEARTH -2
|
||||
RECRATIO 2DEC .01
|
||||
|
||||
RSPHERE 2DEC 64373.76 E3 B-29
|
||||
|
||||
RDM 2DEC 16093.44 E3 B-27
|
||||
|
||||
RDE 2DEC 80467.20 E3 B-29
|
||||
|
||||
RATT EQUALS 00
|
||||
VATT EQUALS 6D
|
||||
TAT EQUALS 12D
|
||||
RATT1 EQUALS 14D
|
||||
VATT1 EQUALS 20D
|
||||
MU(P) EQUALS 26D
|
||||
TDEC1 EQUALS 32D
|
||||
URPV EQUALS 14D
|
||||
COSPHI/2 EQUALS URPV +4
|
||||
UZ EQUALS 20D
|
||||
TVEC EQUALS 26D
|
928
Comanche055/P11.agc
Normal file
928
Comanche055/P11.agc
Normal file
@ -0,0 +1,928 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: P11.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: Hartmuth Gutsche <hgutsche@xplornet.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 533-550
|
||||
# Mod history: 2009-05-13 HG Started adapting from the Colossus249/ file
|
||||
# of the same name, using Comanche055 page
|
||||
# images 0533.jpg - 0550.jpg.
|
||||
# 2009-05-20 RSB Corrections: ERTHALT -> EARTHALT,
|
||||
# STATSW -> SATSW.
|
||||
# 2009-05-23 RSB At end of RESCALES, corrected TC 0 to TC Q.
|
||||
# Added an SBANK= prior to a 2CADR.
|
||||
# 2010-08-24 JL Fixed page numbers. Added missing comment character on p537.
|
||||
#
|
||||
# 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 533
|
||||
# EARTH ORBIT INSERTION MONITOR PROGRAM
|
||||
# *************************************
|
||||
|
||||
# PROGRAM DESCRIPTION -P11-
|
||||
|
||||
# MOD NO. 1
|
||||
# MOD BY ELIASSEN
|
||||
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
|
||||
# P11 IS INITIATED BY
|
||||
|
||||
# A) GYROCOMPASS PRG P02 WHEN LIFTOFF DISCRETE IS RECEIVED OR
|
||||
# B) BACKUP THRU VERB 75 ENTER
|
||||
|
||||
# PROGRAM WILL
|
||||
# 1. ZERO CMC CLOCK AT LIFTOFF (OR UPON RECEIPT OF BACKUP)
|
||||
# 2. UPDATE TEPHEM TO TIME CMC CLOCK WAS ZEROED
|
||||
# 3. INITIATE SERVICER AT PREREAD1
|
||||
# 4. CHANGE MAJOR MODE TO 11
|
||||
# 5. CLEAR DSKY IN CASE OF V 75
|
||||
# 6. STORE LIFTOFF IMU-CDU ANGLES FOR ATT. ERROR DISPLAY
|
||||
# 7. TERMINATE GYROCOMPASSING - -
|
||||
# 8. COMPUTE INITIAL VECTORS RN, VN - - -
|
||||
# 9. COMPUTE REFSMMAT FOR PRELAUNCH ALIGNMENT WHERE U ,U ,U ARE
|
||||
# - - X Y Z
|
||||
# U =(UNIT(-R) LOCAL VERTICAL AT TIME OF LIFTOFF
|
||||
# Z
|
||||
# - - -
|
||||
# U =UNIT(A), A=HOR VECTOR AT LAUNCH AZIMUTH
|
||||
# X
|
||||
# - - -
|
||||
# U =U * U
|
||||
# U Z X
|
||||
|
||||
# 10. SET REFSMMAT KNOWN FLAG
|
||||
# 11. SET AVGEXIT IN SERVICER TO VHHDOT TO
|
||||
# COMPUTE AND DISPLAY NOUN 62 EVERY 2 SECONDS
|
||||
|
||||
# R1 V1 - INERTIAL VELOCITY MAGNITUDE IN FPS
|
||||
# R2 HDOT - RATE OF CHANGE OF VEHICLE VEL IN FPS
|
||||
# R3 H - VEHICLE ALTITUDE ABOVE PAD IN NM
|
||||
|
||||
# 12. DISPLAY BODY AXES ATT. ERRORS ON FDAI NEEDLES
|
||||
#
|
||||
# A) FROM L.O. TO RPSTART (APPROX. 0 TO +10SECS AFTER L.O.)
|
||||
# DESIRED ATTITUDE IS AS STORED AT L.O.
|
||||
# B) FROM RPSTART TO POLYSTOP(APPROX.+10 TO +133SECS AFTER LO)
|
||||
# DESIRED ATTITUDE IS SPECIFIED BY CMC PITCH AND ROLL
|
||||
# POLYNOMIALS DURING SATURN ROLLOUT AND PITCHOVER
|
||||
# Page 534
|
||||
# THE DISPLAY IS RUN AS LOW PRIORITY JOB APPROX.
|
||||
# EVERY 1/2 SEC OR LESS AND IS DISABLED UPON OVFLO OF TIME1
|
||||
|
||||
# SUBROUTINES CALLED
|
||||
|
||||
# 2PHSCHNG BANKCALL CALCGRA CDUTRIG CLEANDSP DANZIG
|
||||
# DELAYJOB EARTHR ENDOFJOB FINDVAC IBNKCALL
|
||||
# INTPRET LALOTORV NEEDLER NEWMODEX PHASCHNG
|
||||
# POSTJUMP POWRSERS PREREAD1 REGODSPR S11.1
|
||||
# SERVEXIT TASKOVER TCDANZIG V1STO2S WAITLIST
|
||||
|
||||
# ASTRONAUT REQUESTS (IF ALTITUDE ABOVE 300,000 FT)
|
||||
#
|
||||
# DSKY -
|
||||
# MONITOR DISPLAY OF TIME TO PERIGEE R1 HOURS
|
||||
# R2 MINUTES
|
||||
|
||||
# DSKY -
|
||||
# MONITOR DISPLAY OF R1 APOGEE ALTITUDE IN NAUTICAL MILES
|
||||
# R2 PERIGEE ALTITUDE IN NAUTICAL MILES
|
||||
# R3 TFF IN MINUTES/SECS
|
||||
|
||||
# IF ASTRONAUT HAS REQUESTED ANY OF THESE DISPLAYS HE MUST
|
||||
# HIT PROCEED TO RETURN TO NORMAL NOUN 62 DISPLAY.
|
||||
# NORMAL EXIT MODE
|
||||
|
||||
# ASTRONAUT VERB 37 ENTER 00 ENTER
|
||||
|
||||
# ALARM MODES - NONE
|
||||
|
||||
# ABORT EXIT MODES -
|
||||
|
||||
# OUTPUT
|
||||
|
||||
# TLIFTOFF (DP) TEPHEM (TP)
|
||||
# REFSMMAT
|
||||
# DSKY DISPLAY
|
||||
# FDAI DISPLAY
|
||||
|
||||
# ERASABLE INITIALIZATION
|
||||
|
||||
# AZO, AXO, -AYO
|
||||
# LATITUDE
|
||||
# PADLONG
|
||||
# TEPHEM
|
||||
# PGNCSALT
|
||||
# POLYNUM THRU POLYNUM +14D)
|
||||
# RPSTART
|
||||
# POLYSTOP
|
||||
# FLAGS SET OR RESET
|
||||
# Page 535
|
||||
# SET REFSMFLG
|
||||
# SET DVMON IDLE FLAG
|
||||
# CLEAR ERADFLAG
|
||||
|
||||
# DEBRIS
|
||||
|
||||
# LIFTTEMP
|
||||
# POLYNUM THRU POLYNUM +7
|
||||
# SPOLYARG
|
||||
# BODY1, BODY2, BODY3
|
||||
# VMAG2, ALTI, HDOT
|
||||
# CENTRALS, CORE SET AND VAC AREAS
|
||||
COUNT 34/P11
|
||||
|
||||
BITS5-6 = SUPER011
|
||||
BANK 42
|
||||
SETLOC P11ONE
|
||||
BANK
|
||||
|
||||
EBANK= TEPHEM
|
||||
P11 CA EBANK3
|
||||
TS EBANK
|
||||
|
||||
EXTEND
|
||||
DCA REP11S # DIRECT RESTARTS TO REP11
|
||||
DXCH -PHASE3
|
||||
CS ZERO
|
||||
ZL
|
||||
TS LIFTTEMP
|
||||
DXCH -PHASE5 # INACTIVE GROUP 5, PRELAUNCH PROTECTION
|
||||
P11+7 EXTEND
|
||||
DCA REP11SA
|
||||
DXCH TLIFTOFF
|
||||
|
||||
EXTEND
|
||||
DCA TIME2
|
||||
DXCH LIFTTEMP # FOR RESTARTS
|
||||
|
||||
CA ZERO
|
||||
ZL
|
||||
DXCH TIME2
|
||||
REP11A-2 DXCH TLIFTOFF
|
||||
REP11A-1 DXCH -PHASE3 # RESET PHASE
|
||||
|
||||
|
||||
REP11A INHINT
|
||||
EXTEND
|
||||
DCA TEPHEM +1
|
||||
DXCH TEPHEM1 +1
|
||||
CA TEPHEM
|
||||
# Page 536
|
||||
XCH TEPHEM1
|
||||
|
||||
EXTEND
|
||||
DCA TLIFTOFF
|
||||
DAS TEPHEM1 +1
|
||||
ADS TEPHEM1 # CORRECTFOR OVERFLOW
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 05023
|
||||
OCT 22000
|
||||
|
||||
INHINT
|
||||
EXTEND
|
||||
DCA TEPHEM1
|
||||
DXCH TEPHEM
|
||||
CA TEPHEM1 +2
|
||||
XCH TEPHEM +2
|
||||
|
||||
CAF EBDVCNT
|
||||
TS EBANK
|
||||
EBANK= DVCNTR
|
||||
TC IBNKCALL
|
||||
CADR PREREAD1 # ZERO PIPS AND INITIALIZE AVERAGEG
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 05023 # CONTINUE HERE ON RESTART
|
||||
OCT 22000
|
||||
|
||||
CAF .5SEC # START ATT ERROR DISPLAY
|
||||
TC WAITLIST # IN .5 SEC
|
||||
EBANK= BODY3
|
||||
2CADR ATERTASK
|
||||
|
||||
TC NEWMODEX # DISPLAY MM 11
|
||||
MM 11
|
||||
|
||||
TC UPFLAG
|
||||
ADRES NODOP01
|
||||
|
||||
CA POWDNCOD # SWITCH TO POWERED FLIGHT DOWNLIST
|
||||
TS DNLSTCOD
|
||||
|
||||
TC BANKCALL
|
||||
CADR CLEANDSP # CLEAR DSKY IN CASE OF V75
|
||||
|
||||
TC 2PHSCHNG
|
||||
OCT 40514 # PROTECT ATERTASK
|
||||
OCT 00073
|
||||
CAF EBQPLACE
|
||||
# Page 537
|
||||
TS EBANK
|
||||
|
||||
EBANK= QPLACES
|
||||
CA P11XIT # SET EXIT FROM PROUT IN EARTHR
|
||||
TS QPLACES
|
||||
TC INTPRET
|
||||
VLOAD MXV
|
||||
THETAN
|
||||
XSM
|
||||
VSL1 VAD
|
||||
ERCOMP
|
||||
STODL ERCOMP
|
||||
TLIFTOFF
|
||||
SSP GOTO
|
||||
S2
|
||||
CADR PROUT # RETURN FROM EARTHR
|
||||
EARTHR +3
|
||||
MATRXJOB ZL # STORE DP GIMBAL ANGLES FOR ATTITUDE
|
||||
CA CDUX # ERROR DISPLAY AFTER LIFTOFF
|
||||
DXCH OGC
|
||||
ZL
|
||||
CA CDUY
|
||||
DXCH IGC
|
||||
ZL
|
||||
CA CDUZ
|
||||
DXCH MGC
|
||||
TC INTPRET # -
|
||||
VLOAD VSR1 # SCALE OGC B-1
|
||||
OGC
|
||||
STORE OGC
|
||||
SSP # ZERO RTX2
|
||||
RTX2 # FOR
|
||||
0 # EARTH
|
||||
DLOAD PDDL
|
||||
PGNCSALT # ALTITUDE OF PGNCS
|
||||
PADLONG # LONGITUDE
|
||||
PDDL VDEF
|
||||
LATITUDE # GEODETIC LATITUDE
|
||||
STODL LAT # LAT,LONG,ALT ARE CONSECUTIVE
|
||||
HI6ZEROS # TIME = 0
|
||||
CLEAR CALL
|
||||
ERADFLAG
|
||||
LALOTORV # CONVERT TO POSITION VECTOR IN REF.COORDS
|
||||
|
||||
STCALL RN1 # -
|
||||
GETDOWN # RETURN WITH VECTOR FOR DOWN DIRECTION
|
||||
VCOMP UNIT
|
||||
STOVL REFSMMAT +12D # UNITZ = UNIT(GRAV)
|
||||
RN1
|
||||
VXV VXSC
|
||||
# Page 538
|
||||
UNITW # SCALED AT 1
|
||||
-ERTHRAT # V = EARTHRATE X R
|
||||
VSL4 # SCALE TO 2(7) M/CS
|
||||
STOVL VN1
|
||||
REFSMMAT +12D
|
||||
VXV UNIT
|
||||
UNITW # (REF3 X UNITW) = EAST
|
||||
PUSH VXV
|
||||
REFSMMAT +12D # (EAST X REF3) = -SOUTH
|
||||
UNIT PDDL
|
||||
LAUNCHAZ # COS(AZ)*SOUTH
|
||||
COS VXSC
|
||||
STADR
|
||||
STODL REFSMMAT # TEMPORARY STORAGE
|
||||
LAUNCHAZ
|
||||
SIN VXSC # SIN(AZ)*EAST
|
||||
VAD UNIT # SIN(AZ)*EAST - COS(AZ)*SOUTH = REF1
|
||||
REFSMMAT
|
||||
STORE REFSMMAT
|
||||
|
||||
VXV UNIT # (REF1 X REF3) = -REF3
|
||||
REFSMMAT +12D
|
||||
VCOMP
|
||||
STORE REFSMMAT +6
|
||||
DLOAD DSU
|
||||
DPHALF # 1/2 REV
|
||||
LAUNCHAZ
|
||||
DAD PDDL
|
||||
AZIMUTH
|
||||
SATRLRT # SET SATRLRT = -SATRLRT IF
|
||||
SIGN STADR # (1/2REV -LAVNCHAZ +AZIMUTH) IS NEGATIVE
|
||||
STORE SATRLRT # FOR ROLL CALC IN FDAI ATT. ERROR DISPLAY
|
||||
SET EXIT
|
||||
REFSMFLG # SET REFSMMAT KNOWN FLAG
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 04023
|
||||
|
||||
EXTEND
|
||||
DCA P11SCADR
|
||||
DXCH AVGEXIT # SET AVGEXIT
|
||||
|
||||
CA PRIO31 # 2 SECONDS AT 2(+8)
|
||||
TS 1/PIPADT
|
||||
|
||||
EBANK= RCSFLAGS
|
||||
CA EBANK6
|
||||
TS EBANK
|
||||
|
||||
INHINT
|
||||
# Page 539
|
||||
CS ZERO
|
||||
TS TBASE5 # RESTART READACCS 2 SECONDS AFTER LIFTOFF
|
||||
|
||||
CS TIME1
|
||||
AD 2SECS # DO READACCS 2 SECONDS AFTER LIFTOFF
|
||||
|
||||
CCS A # CHECK TO INSURE DT IS POSITIVE
|
||||
TCF +3 # TIME POSITIVE
|
||||
TCF +2 # CANNOT GET HERE
|
||||
CA ZERO # TIME NEGATIVE - SET TO 1
|
||||
AD ONE # RESTORE TIME - OR MAKE POSITIVE
|
||||
|
||||
TC WAITLIST
|
||||
EBANK= AOG
|
||||
2CADR READACCS
|
||||
|
||||
TC 2PHSCHNG
|
||||
OCT 00003 # TURN OFF GROUP 3
|
||||
OCT 00025 # PROTECT NORMLIZE AND READACCS
|
||||
|
||||
TC POSTJUMP
|
||||
CADR NORMLIZE # DO NORMLIZE AND ENDOFJOB
|
||||
|
||||
|
||||
EBANK= TEPHEM
|
||||
REP11 INHINT
|
||||
CCS PHASE5
|
||||
TC ENDOFJOB
|
||||
|
||||
CCS LIFTTEMP
|
||||
TCF +4
|
||||
TCF +3
|
||||
TCF +2
|
||||
TCF P11+7
|
||||
|
||||
CS TLIFTOFF
|
||||
EXTEND
|
||||
BZMF ENDREP11
|
||||
|
||||
CCS TIME2 # **TIME2 MUST BE NON-ZERO AT LIFTOFF**
|
||||
TCF REP11A -5 # T2,T1 NOT YET ZEROED, GO AND DO IT
|
||||
|
||||
EXTEND # T2,T1 ZEROED, SET TLIFTOFF
|
||||
DCA LIFTTEMP
|
||||
TCF REP11A-2
|
||||
|
||||
ENDREP11 EXTEND
|
||||
DCA REP11SA
|
||||
TCF REP11A-1
|
||||
# Page 540
|
||||
REP11S 2OCT 7776600011
|
||||
|
||||
REP11SA 2OCT 7776400013
|
||||
|
||||
P11XIT GENADR P11OUT
|
||||
-ERTHRAT 2DEC* -7.292115138 E-7 B18* # - EARTH RATE AT 2(18)
|
||||
|
||||
EBANK= BODY3
|
||||
P11SCADR 2CADR VHHDOT
|
||||
|
||||
POWDNCOD EQUALS THREE
|
||||
|
||||
EBANK= BODY3
|
||||
# VHHDOT IS EXECUTED EVERY 2 SECONDS TO DISPLAY ON DSKY
|
||||
# VI INERTIAL VELOCITY MAGNITUDE
|
||||
# HDOT RATE OF CHANGE OF ALT ABOVE L PAD RADIUS
|
||||
# H ALTITUDE ABOVE L PAD RADIUS
|
||||
|
||||
VHHDOT TC INTPRET
|
||||
CALL # LOAD VMAGI, ALTI,
|
||||
S11.1 # HDOT FOR DISPLAY
|
||||
EXIT
|
||||
TC PHASCHNG
|
||||
OCT 00035
|
||||
|
||||
CAF V06N62 # DISPLAY IN R1 R2 R3
|
||||
TC BANKCALL # VI HDOT H
|
||||
CADR REGODSP
|
||||
|
||||
ATERTASK CAF PRIO1 # ESTABLISH JOB TO DISPLAY ATT ERRORS
|
||||
TC FINDVAC # COMES HERE AT L.O. + .33 SEC
|
||||
EBANK= BODY3
|
||||
2CADR ATERJOB
|
||||
|
||||
CS RCSFLAGS # SET BIT3 FOR
|
||||
MASK BIT3 # NEEDLER
|
||||
ADS RCSFLAGS # INITIALIZATION PASS
|
||||
TC IBNKCALL # AND GO
|
||||
CADR NEEDLER # DO IT
|
||||
CA BIT1 # SET SW
|
||||
TS SATSW # FOR DISPLAY
|
||||
TC TASKOVER
|
||||
GETDOWN STQ SETPD
|
||||
INCORPEX
|
||||
0D
|
||||
DLOAD
|
||||
HI6ZEROS
|
||||
# Page 541
|
||||
STODL 6D
|
||||
DPHALF
|
||||
STCALL 8D
|
||||
LALOTORV +5
|
||||
# THIS SECTION PROVIDES ATTITUDE ERROR DISPLAYS TO THE FDAI DURING SONE BOOST
|
||||
|
||||
# COMPUTE DESIRED PITCH W.R.T. PAD LOCAL VERTICAL AT LIFTOFF
|
||||
# 2 3 4 5 6
|
||||
# PITCH = A0+A1T+A2T +A3T +A4T +A5T +A6T
|
||||
# SCALED TO 32 REVS. -14
|
||||
# IF TL = TIME IN SECS FROM L.O., THEN T = 100(TL-RPSTART)2
|
||||
# WHERE TL GE RPSTART
|
||||
# TL LE (-POLYSTOP + RPSTART)
|
||||
# COMPUTE DESIRED ROLL WHERE ROLL EQUALS ANGLE FROM
|
||||
# LAUNCHAZ TO -Z(S/C) AS SEEN FROM X(S/C).
|
||||
# ROLL = LAUNCHAZ-AZIMUTH-.5 +SATRLRT*T IN REV
|
||||
# SATRLRT = RATE OF ROLL IN REV/CENTI-SEC
|
||||
# T,IN CENTI-SEC,IS DEFINED AS ABOVE,INCLUSIVE OF TIME RESTRICTIONS
|
||||
|
||||
# FOR SIMPLICITY, LET P = 2*PI*PITCH
|
||||
# R = 2*PI*ROLL
|
||||
|
||||
# CONSTRUCT THE TRANSFORMATION MATRIX, TSMV, GIVING DESIRED S/C AXES IN
|
||||
# TERMS OF SM COORDINATES. LET THE RESULTING ROWS EQUAL THE VECTORS XDC,
|
||||
# YDC,AND ZDC.
|
||||
|
||||
# * ( SIN(P) 0 -COS(P) ) (XDC)
|
||||
# TSMV = (-SIN(R)*COS(P) -COS(R) -SIN(R)*SIN(P)) = (YDC)
|
||||
# (-COS(R)*COS(P) SIN(R) -COS(R)*SIN(P)) (ZDC)
|
||||
|
||||
# XDC,YDC,ZDC ARE USED AS INPUT TO CALCGTA FOR THE EXTRACTION OF THE
|
||||
# EULER SET OF ANGLES WHICH WILL BRING THE SM INTO THE DESIRED
|
||||
# ORIENTATION. THIS EULER SET, OGC, IGC, AND MGC, MAY BE IDENTIFIED
|
||||
# AS THE DESIRED CDU ANGLES.
|
||||
|
||||
# (XDC) (OGC)
|
||||
# (YDC) ---) CALCGTA ---) (IGC)
|
||||
# (ZDC) (MGC)
|
||||
|
||||
# -
|
||||
# DEFINE THE VECTOR DELTACDU.
|
||||
|
||||
# - (OGC) (CDUX)
|
||||
# DELTACDU = (IGC) - (CDUY)
|
||||
# (MGC) (CDUZ)
|
||||
|
||||
# - - * -
|
||||
# COMPUTE ATTITUDE ERRORS, A, WHERE A = TGSC*DELTACDU
|
||||
#
|
||||
# * (1 SIN(CDUZ) 0 ) THE GIMBAL ANGLES
|
||||
# Page 542
|
||||
# TGSC = (0 COS(CDUX)*COS(CDUZ) SIN(CDUX)) = TO SPACECRAFT AXES
|
||||
# (0 -SIN(CDUX)*COS(CDUZ) COS(CDUX)) CONVERSION MATRIX
|
||||
|
||||
# -
|
||||
# THE ATTITUDE ERRORS, A, ARE STORED ONE HALF SINGLE PRECISION IN
|
||||
# THE REGISTERS AK, AK1, AK2 AS INPUT TO NEEDLER, THE FDAI ATTITUDE
|
||||
# ERROR DISPLAY ROUTINE.
|
||||
|
||||
ATERJOB CAE FLAGWRD6 # CHECK FLAGWRD6
|
||||
MASK OCT60000 # BITS 14, 15
|
||||
EXTEND
|
||||
BZF +2 # OK - CONTINUE
|
||||
TC ENDOFJOB # SATURN STICK ON - KILL JOB
|
||||
CAF BIT10 # CHECK IF S/C CONTROL
|
||||
EXTEND # OF SATURN PANEL
|
||||
RAND CHAN30 # SWITCH IS ON
|
||||
EXTEND
|
||||
BZF STRSAT # IT IS - GO STEER
|
||||
CCS SATSW # IT IS NOT - WAS IT ON LAST CYCLE
|
||||
TC ATTDISP # NO - CONTINUE
|
||||
TC ATRESET # YES - REINITIALIZE NEEDLER
|
||||
TC ATRESET # YES - REINITIALIZE NEEDLER
|
||||
ATTDISP CS RPSTART # PITCH/ROLL START TIME
|
||||
AD TIME1
|
||||
EXTEND
|
||||
BZMF NOPOLY # IF MINUS THEN ATTITUDE HOLD
|
||||
TS MPAC # MPAC=TIME1-RPSTART
|
||||
TS SPOLYARG # SAVE FOR USE IN ROLL CALCULATION
|
||||
AD POLYSTOP # NEG PITCHOVER TIME IN CSECS
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TC NOPOLY # GO TO ATTITUDE HOLD
|
||||
CA TIME2
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TC NOPOLY # GO TO ATTITUDE HOLD
|
||||
CAE POLYNUM
|
||||
TS L
|
||||
CAF COEFPOLY # EVALUATE PITCH POLYNOMIAL
|
||||
TC POWRSERS # SCALED TO 32 REVOLUTIONS
|
||||
|
||||
CA ZERO # RETURN WITH PITCH(32REV)
|
||||
TS MODE # STORED MPAC, MPAC +1
|
||||
TC INTPRET
|
||||
SETPD SL # 32(PITCH(32REV))=PITCH(REV)
|
||||
0
|
||||
5
|
||||
PUSH # LET P(RAD)=2*PI*PITCH(REV)
|
||||
GOTO
|
||||
ATTDISP1 # AROUND SETLOC
|
||||
# Page 543
|
||||
# *
|
||||
# CONSTRUCT SM TO S/C MATRIX, TSMV
|
||||
|
||||
SETLOC P11TWO
|
||||
BANK # 36 IN COL., 34 IN DISK
|
||||
|
||||
COUNT 36/P11
|
||||
|
||||
ATTDISP1 COS DCOMP
|
||||
STODL 14D # -.5*COS(P)
|
||||
SIN
|
||||
STODL 10D # .5*SIN(P)
|
||||
ZEROVECS
|
||||
STORE 12D # 0
|
||||
|
||||
# EVALUATE ROLL = LAUNCHAZ-AZIMUTH-.5+SATRLRT*T
|
||||
SLOAD DMP
|
||||
SPOLYARG # TIME1 - RSPSTART ,CSECS B-14.
|
||||
SATRLRT
|
||||
SL DSU
|
||||
14D
|
||||
DPHALF
|
||||
DAD DSU # ASSUMING X(SM) ALONG LAUNCH AZIMUTH,
|
||||
LAUNCHAZ # LAUNCHAZ = ANGLE FROM NORTH TO X(SM).
|
||||
AZIMUTH # AZIMUTH = -ANGLE FROM NORTH TO Z(S/C)
|
||||
RTB # DETERMINE IF ROLLOUT
|
||||
RLTST # IS COMPLETED
|
||||
ATTDISPR PUSH COS # CONTINUE COMPUTING TSMV
|
||||
PUSH # LET R(RAD) = 2*PI*ROLL(REV)
|
||||
DMP SL1
|
||||
14D
|
||||
STODL 22D # -.5*COS(R)*COS(P)
|
||||
DCOMP
|
||||
STORE 18D # -.5*COS(R)
|
||||
DMP SL1
|
||||
10D
|
||||
STODL 26D # -.5*COS(R)*SIN(P)
|
||||
SIN PUSH
|
||||
STORE 24D # .5*SIN(R)
|
||||
DMP SL1
|
||||
14D
|
||||
STODL 16D # -.5*SIN(R)*COS(P)
|
||||
DCOMP
|
||||
DMP SL1
|
||||
10D
|
||||
STOVL 20D # -.5*SIN(R)*SIN(P)
|
||||
10D
|
||||
|
||||
# FROM TSMV FIND THE HALF UNIT VECTORS XDC,YDC,ZDC = INPUT TO CALCGTA
|
||||
# Page 544
|
||||
UNIT
|
||||
STOVL XDC # XDC = .5*UNIT(SIN(P),0,-COS(P))
|
||||
16D
|
||||
UNIT
|
||||
STOVL YDC # YDC = .5*UNIT(-SIN(R)*COS(P),-COS(R),
|
||||
22D # -SIN(R)*SIN(P))
|
||||
UNIT
|
||||
STCALL ZDC # ZDC = .5*UNIT(-COS(R)*COS(P),SIN(R),
|
||||
CALCGTA # -COS(R)*SIN(P))
|
||||
|
||||
# CALL CALCGTA TO COMPUTE DESIRED SM ORIENTATION OGC,IGC,AND MGC
|
||||
# - - -
|
||||
# FIND DIFFERENCE VECTOR DELTACDU = OGC-CDUX
|
||||
|
||||
# ENTER HERE IF ATTITUDE HOLD
|
||||
|
||||
NOPOLYM VLOAD PUSH # OGC IGC
|
||||
OGC # CHANGE IGC TO MGC FOR COMPATIBILITY
|
||||
PUSH CALL # MGC OGC
|
||||
CDUTRIG # WITH Y,Z,X ORDER OF CDUSPOT
|
||||
VLOAD RTB # - DPHI OGC-CDUX ,PD4
|
||||
2 # DELTACDU = DTHETA = IGC-CDUY , 0
|
||||
V1STO2S # DPSI MGC-CDUZ , 2
|
||||
STOVL BOOSTEMP
|
||||
ZEROVECS
|
||||
STOVL 0
|
||||
CDUSPOT
|
||||
RTB RTB
|
||||
V1STO2S
|
||||
DELSTOR
|
||||
STODL 10D
|
||||
SINCDUZ
|
||||
DMP SL1
|
||||
0
|
||||
DAD SR2 # CHANGE SCALE OF AK TO 2REVS
|
||||
4
|
||||
GOTO
|
||||
ATTDISP2
|
||||
|
||||
SETLOC P11ONE
|
||||
BANK
|
||||
COUNT 34/P11
|
||||
|
||||
ATTDISP2 STODL 16D # 16D, .5(DPHI + DTHETA*SIN(CDUZ))
|
||||
COSCDUZ
|
||||
DMP PUSH
|
||||
0
|
||||
DMP SL1
|
||||
COSCDUX
|
||||
PDDL DMP
|
||||
# Page 545
|
||||
SINCDUX
|
||||
2
|
||||
DAD SL1
|
||||
STADR
|
||||
STODL 17D # 17D, .5(DTHETA*COS(CDUX)*COS(CDUZ)
|
||||
DMP SL1 # +DPSI*SIN(CDUX))
|
||||
SINCDUX
|
||||
PDDL DMP
|
||||
COSCDUX
|
||||
2
|
||||
DSU SL1
|
||||
STADR
|
||||
STORE 18D # 18D, .5(-DTHETA*SIN(CDUX)*COS(CDUZ)
|
||||
TLOAD # +DPSI*COS(CDUX))
|
||||
16D
|
||||
STORE AK # STORE ATTITUDE ERRORS IN AK,AK1,AK2
|
||||
EXIT
|
||||
|
||||
CA SATSW
|
||||
CCS A # CHK TAKEOVER STATUS
|
||||
TC SATOUT # POS - DISPLAY ONLY
|
||||
TC AKLOAD # 0 STORE BIAS
|
||||
STEERSAT TC INTPRET # NEG STEER L/V
|
||||
TLOAD TAD
|
||||
BIASAK
|
||||
AK
|
||||
STORE AK # AKS = AKS - STORED BIAS
|
||||
EXIT
|
||||
CA AK
|
||||
TC RESCALES
|
||||
TS AK
|
||||
CA AK1
|
||||
TC RESCALES
|
||||
TS AK1
|
||||
CA AK2
|
||||
TC RESCALES
|
||||
TS AK2
|
||||
# DISPLAY ATTITUDE ERRORS ON FDAI VIA NEEDLER
|
||||
|
||||
SATOUT TC BANKCALL
|
||||
CADR NEEDLER
|
||||
ATERSET CAF OCT31 # DELAY .25 SEC
|
||||
TC BANKCALL # EXECUTION + DELAY =.56SEC APPROX
|
||||
CADR DELAYJOB
|
||||
TC ATERJOB # END OF ATT ERROR DISPLAY CYCLE
|
||||
|
||||
AKLOAD CS AK # STORE AKS
|
||||
TS BIASAK # INTO BIAS
|
||||
CS AK1 # COMPLEMENTED
|
||||
TS BIASAK +1
|
||||
# Page 546
|
||||
CS AK2
|
||||
TS BIASAK +2
|
||||
CS BIT1 # SET SW
|
||||
TS SATSW # TO STEER
|
||||
TC STEERSAT # GO STEER
|
||||
STRSAT CA SATSW # CHECK IF NEEDLER
|
||||
EXTEND # HAS BEEN INITIALIZED
|
||||
BZMF ATTDISP # YES - CONTINUE
|
||||
ATRESET CS RCSFLAGS # NO - SET
|
||||
MASK BIT3 # INITIALIZATION SW
|
||||
ADS RCSFLAGS # FOR NEEDLER
|
||||
TC BANKCALL # AND GO
|
||||
CADR NEEDLER # DO IT
|
||||
CAF REVCNT # OCT 6
|
||||
TC BANKCALL # DELAY JOB
|
||||
CADR DELAYJOB # 60 MS -WAIT TILL IMUERRCNTR ZEROED
|
||||
CCS SATSW # CHECK SW STATUS
|
||||
TC TAKEON # POS STEER INIT.
|
||||
TC +1 # 0 RETURN TO DISPLAY
|
||||
CA BIT1 # NEG RETURN TO DISPLAY
|
||||
TS SATSW # SW = DISPLAY ON
|
||||
CS BIT9 # DISABLE
|
||||
EXTEND # SIVB
|
||||
WAND CHAN12 # TAKEOVER
|
||||
TC SATOUT # DISPLAY
|
||||
TAKEON CAF BIT9 # ENABLE
|
||||
EXTEND # SIVB
|
||||
WOR CHAN12 # TAKEOVER
|
||||
CA ZERO # INDICATE NEEDLER
|
||||
TS SATSW # WAS INITIALIZED
|
||||
TC SATOUT
|
||||
S11.1 VLOAD ABVAL
|
||||
VN
|
||||
STOVL VMAGI # VI SCALED 2(7) IN METERS/CSEC
|
||||
RN
|
||||
UNIT DOT
|
||||
VN
|
||||
SL1
|
||||
STODL HDOT
|
||||
RPAD
|
||||
BOF VLOAD
|
||||
AMOONFLG
|
||||
EARTHALT
|
||||
RLS
|
||||
ABVAL SR2
|
||||
EARTHALT BDSU
|
||||
36D
|
||||
STORE ALTI
|
||||
RVQ
|
||||
DELSTOR CA BOOSTEMP
|
||||
# Page 547
|
||||
EXTEND # STORE DELTACDU INTO PDL 0,2,4
|
||||
MSU MPAC
|
||||
INDEX FIXLOC
|
||||
TS 0
|
||||
CA BOOSTEMP +1
|
||||
EXTEND
|
||||
MSU MPAC +1
|
||||
INDEX FIXLOC
|
||||
TS 2
|
||||
CA BOOSTEMP +2
|
||||
EXTEND
|
||||
MSU MPAC +2
|
||||
INDEX FIXLOC
|
||||
TS 4
|
||||
TCF DANZIG
|
||||
RLTST CA MPAC # DETERMINE IF ROLLOUT
|
||||
EXTEND # IS COMPLETED
|
||||
MP SATRLRT +1
|
||||
EXTEND
|
||||
BZMF DANZIG # UNLIKE SIGNS STILL ROLLING
|
||||
EXTEND # ROLLOUT COMPLETED
|
||||
DCA MBDYTCTL +2 # ZERO OUT ROLL CONTRIBUTION
|
||||
DXCH MPAC
|
||||
TC DANZIG
|
||||
NOPOLY TC INTPRET # COMES HERE IF
|
||||
SETPD GOTO # ATTITUDE HOLD
|
||||
0
|
||||
NOPOLYM
|
||||
COEFPOLY ADRES POLYLOC
|
||||
V06N62 VN 0662
|
||||
RESCALES EXTEND # RESCALE AK S FOR
|
||||
MP SATSCALE # NEW HARDWARE
|
||||
DDOUBL # SCALING FOR
|
||||
DDOUBL # STEERING
|
||||
TC Q # SATURN
|
||||
# SATURN TAKEOVER FUNCTION
|
||||
# ************************
|
||||
|
||||
# PROGRAM DESCRIPTION
|
||||
|
||||
# MOD NUMBER 1
|
||||
# MOD BY ELIASSEN
|
||||
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
|
||||
# DURING THE COASTING PHASE OF SIVB ATTACHED, THE
|
||||
# ASTRONAUT MAY REQUEST SATURN TAKEOVER THROUGH
|
||||
# EXTENDED VERB 46 (BITS 13,14 OF DAPDATR1 SET ).
|
||||
# THE CMC REGARDS RHC COMMANDS AS BODY-AXES RATE
|
||||
# COMMANDS AND IT TRANSMITS THESE TO SATURN AS DC
|
||||
# Page 548
|
||||
# VOLTAGES. THE VALUE OF THE CONSTANT RATE COMMAND
|
||||
# IS 0.5 DEG/SEC. AN ABSENCE OF RHC ACTIVITY RE-
|
||||
# SULTS IN A ZERO RATE COMMAND.
|
||||
|
||||
# THE FDAI ERROR NEEDLES WILL INDICATE THE VALUE
|
||||
# OF THE RATE COMMAND.
|
||||
|
||||
# CALLING SEQUENCE
|
||||
#
|
||||
# DAPFIG +9D TC POSTJUMP
|
||||
# CADR SATSTKON
|
||||
|
||||
# SUBROUTINES CALLED
|
||||
|
||||
# ENDEXT
|
||||
# IBNKCALL
|
||||
# STICKCHK
|
||||
# NEEDLER
|
||||
# T5RUPT
|
||||
# RESUME
|
||||
|
||||
# ASTRONAUT REQUESTS
|
||||
|
||||
# ENTRY - VERB 46 ENTER
|
||||
# (CONDITION - BITS 13, 14 OF DAPDATR1 SET)
|
||||
#
|
||||
# EXIT - VERB 48 ENTER (FLASH V06N46)
|
||||
# VERB 21 ENTER AXXXX ENTER WHERE A=0 OR 1
|
||||
# VERB 34 ENTER
|
||||
# VERB 46 ENTER
|
||||
|
||||
# NORMAL EXIT MODE
|
||||
|
||||
# VERB 46 ENTER (SEE ASTRONAUT ABOVE)
|
||||
|
||||
# ALARM OR ABORT EXIT MODES
|
||||
|
||||
# NONE
|
||||
|
||||
# OUTPUT
|
||||
|
||||
# SATURN RATES IN CDUXCMD, CDUYCMD, CDUZCMD
|
||||
|
||||
# ERASABLE INITIALIZATION
|
||||
|
||||
# DAPDATR1 (BITS 13,14 MUST BE SET)
|
||||
|
||||
# DEBRIS
|
||||
|
||||
# CENTRALS
|
||||
# Page 549
|
||||
# CDUXCMD, CDUYCMD, CDUZCMD
|
||||
|
||||
BANK 43
|
||||
SETLOC EXTVERBS
|
||||
BANK
|
||||
|
||||
COUNT 23/STTKE
|
||||
SATSTKON EXTEND
|
||||
DCA 2REDOSAT
|
||||
INHINT
|
||||
DXCH T5LOC
|
||||
CAF POSMAX
|
||||
TS TIME5
|
||||
CS FLAGWRD6 # TURN ON BITS 15,14 OF
|
||||
MASK RELTAB11 # FLAGWRD6
|
||||
ADS FLAGWRD6 # SATSTICK CONTROL OF T5
|
||||
TC IBNKCALL # ZERO JET CHANNELS IN 14 MS AND THEN
|
||||
CADR ZEROJET # LEAVE THE T6 CLOCK DISABLED
|
||||
RELINT
|
||||
TC GOPIN # EXIT THUS BECAUSE WE CAME VIA V46
|
||||
|
||||
EBANK= BODY3
|
||||
2REDOSAT 2CADR REDOSAT
|
||||
|
||||
|
||||
SBANK= LOWSUPER
|
||||
BANK 32
|
||||
SETLOC P11FOUR
|
||||
BANK
|
||||
|
||||
REDOSAT LXCH BANKRUPT # ALSO COMES HERE FOR RESTARTS
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
CS RCSFLAGS # TURN ON BIT3 OF RCSFLAGX
|
||||
MASK BIT3 # FOR
|
||||
ADS RCSFLAGS # NEEDLER INITIALIZATION
|
||||
TC IBNKCALL
|
||||
CADR NEEDLER # DISABLE IMU ERR COUNTERS ETC.
|
||||
CAF BIT9 # SIVB
|
||||
EXTEND # TAKEOVER
|
||||
WOR CHAN12 # ENABLE
|
||||
EXTEND # SET UP T5 CYCLE
|
||||
DCA 2SATSTCK
|
||||
DXCH T5LOC
|
||||
CAF 100MST5 # IN 100 MSECS
|
||||
TS TIME5
|
||||
TCF RESUME # END OF SATURN STICK INITIALIZATION
|
||||
|
||||
# THIS SECTION IS EXECUTED EVERY 100 MSECS
|
||||
# Page 550
|
||||
SATSTICK LXCH BANKRUPT
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
|
||||
CAF 2SATSTCK # SET UP RUPT
|
||||
TS T5LOC # LO ORDER LOC SET
|
||||
CAF 100MST5 # 100 MSECS
|
||||
TS TIME5
|
||||
CAF STIKBITS
|
||||
EXTEND
|
||||
RXOR CHAN31 # CHECK IF MAN ROT BITS SAME
|
||||
MASK STIKBITS
|
||||
TC IBNKCALL # SET RATE INDICES
|
||||
CADR STICKCHK # FOR PITCH YAW AND ROLL
|
||||
|
||||
INDEX RMANNDX # SET SATURN RATES
|
||||
CA SATRATE
|
||||
TS AK # ROLL
|
||||
INDEX PMANNDX
|
||||
CA SATRATE
|
||||
TS AK1 # PITCH
|
||||
INDEX YMANNDX
|
||||
CA SATRATE
|
||||
TS AK2 # YAW
|
||||
|
||||
TC IBNKCALL # FOR SATURN INTERFACE AND FDAI DISPLAY
|
||||
CADR NEEDLER
|
||||
TCF RESUME # END OF SATURN STICK CONTROL
|
||||
|
||||
STIKBITS OCT 00077
|
||||
100MST5 DEC 16374
|
||||
EBANK= BODY3
|
||||
2SATSTCK 2CADR SATSTICK
|
3529
Comanche055/P20-P25.agc
Normal file
3529
Comanche055/P20-P25.agc
Normal file
File diff suppressed because it is too large
Load Diff
611
Comanche055/P30-P37.agc
Normal file
611
Comanche055/P30-P37.agc
Normal file
@ -0,0 +1,611 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: P30-P37.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: 635-648
|
||||
# Mod history: 2009-05-10 RSB Adapted from the Colossus249/ file
|
||||
# of the same name, using Comanche055 page
|
||||
# images.
|
||||
# 2009-05-20 RSB Corrected BDV -> BOV.
|
||||
#
|
||||
# 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 635
|
||||
BANK 32
|
||||
|
||||
SETLOC P30S1
|
||||
BANK
|
||||
|
||||
EBANK= +MGA
|
||||
|
||||
COUNT 35/P34
|
||||
|
||||
DISPMGA STQ EXIT # USED IN P30
|
||||
|
||||
RGEXIT
|
||||
TC COMPTGO
|
||||
|
||||
DISP45 CAF V16N45
|
||||
TC BANKCALL
|
||||
CADR GOFLASHR
|
||||
TC GOTOPOOH
|
||||
TC END45
|
||||
TC DISP45
|
||||
P30PHSI TC PHASCHNG
|
||||
OCT 14
|
||||
TCR ENDOFJOB
|
||||
END45 TC INTPRET
|
||||
CLEAR GOTO
|
||||
TIMRFLAG
|
||||
RGEXIT
|
||||
|
||||
COMPTGO EXTEND # USED TO COMPUTE TTOGO
|
||||
QXCH PHSPRDT6 # ** GROUP 6 TEMPORARY USED .. BEWARE **
|
||||
|
||||
TC UPFLAG # SET TIMRFLAG
|
||||
ADRES TIMRFLAG # BIT 11 FLAG 7
|
||||
CAF ZERO
|
||||
TS NVWORD1
|
||||
|
||||
CAF ONE
|
||||
TC WAITLIST
|
||||
EBANK= TIG
|
||||
2CADR CLOKTASK
|
||||
|
||||
TC 2PHSCHNG
|
||||
OCT 40036 # 6.3SPOT FOR CLOKTASK
|
||||
OCT 05024 # GROUP 4 CONTINUES HERE
|
||||
OCT 13000
|
||||
|
||||
TC PHSPRDT6
|
||||
# Page 636
|
||||
# PROGRAM DESCRIPTION P30 DATE 3-6-67
|
||||
|
||||
# MOD.I BY S. ZELDIN- TO ADD P31 AND AD APT P30 FOR P31 USE. 22DEC67
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
# +30(EXTERNAL DELTA-V TARGETTING PROGRAM)
|
||||
# ACCEPTS ASTRONAUT INPUTS OF TIG,DELV(LV) AND COMPUTES,FOR DISPLAY,
|
||||
# APOGEE,PERIGEE,DELV(MAG),MGA ASSOCIATED WITH DESIRED MANEUVER
|
||||
|
||||
# P31(GENERAL LAMBERT AIMPOINT GUIDANCE)
|
||||
# A GROUND RULE FOR P31 IS THE ANGLE BETWEEN THE TARGET VECTOR AND
|
||||
# POSITION VECTOR AT TIG IS NOT 165-195 DEGREES APART
|
||||
# BASED ON STORED INPUT OF OFFSET TARGET(B+29) AND DELTA T TRANS,AND
|
||||
# ASTRONAUT ENTRY OF TIG,P31 COMPUTES REQUIRED VELOCITY FOR MANEUVER
|
||||
# AND,FOR DISPLAY,APOGEE,PERIGEE,DELV(7AG),+MGA ASSOCIATED WITH
|
||||
# DESIRED MANEUVER
|
||||
|
||||
# THE FOLLOWING SUBROUTINES ARE USED IN P30 AND P31
|
||||
# S30.1 (P30 ONLY)
|
||||
# S31.1 (P31 ONLY)
|
||||
# P30/P31 - DISPLAYS TIG
|
||||
# CNTUP30 - DISPLAYS DELV(LV)
|
||||
# PARAM30 - DISPLAYS APOGEE,PERIGEE,DELV(MAG),MGA,TIME FROM TIG,
|
||||
# MARKS SINCE LAST THRUSTING MANEUVER
|
||||
|
||||
# CALLING SEQUENCE VIA JOB FROM V37
|
||||
|
||||
# EXIT VIA V37 OR GOTOPOOH
|
||||
|
||||
# OUTPUT FOR POWERED FLIGHT
|
||||
# VTIG X
|
||||
# RTIG XSEE S30.1
|
||||
# DELVSIN X
|
||||
# VGDISP
|
||||
# RTARG X
|
||||
# TPASS4 X SEE S31.1
|
||||
# X
|
||||
|
||||
|
||||
COUNT 35/P30
|
||||
|
||||
P30 TC P30/P31
|
||||
TC CNTNUP30
|
||||
TC DOWNFLAG # RESET UPDATFLG
|
||||
ADRES UPDATFLG # BIT 7 FLAG 1
|
||||
TC INTPRET
|
||||
CALL
|
||||
S30.1
|
||||
EXIT
|
||||
TC PARAM30
|
||||
TC UPFLAG
|
||||
# Page 637
|
||||
ADRES XDELVFLG # SET XDELVFLG BIT 8 FLAG 2
|
||||
TCF GOTOPOOH
|
||||
|
||||
P31 TC P30/P31
|
||||
TC DOWNFLAG
|
||||
ADRES UPDATFLG # RESET UPDATFLG BIT 7 FLAG 1
|
||||
TC DOWNFLAG
|
||||
ADRES NORMSW # RESET NORMSW BIT 10 FLAG 7
|
||||
TC INTPRET
|
||||
CALL
|
||||
S31.1
|
||||
EXIT
|
||||
TC CNTNUP30
|
||||
TC PARAM30
|
||||
TC DOWNFLAG
|
||||
ADRES XDELVFLG # BIT 8 FLAG 2
|
||||
TCF GOTOPOOH
|
||||
|
||||
P30/P31 XCH Q
|
||||
TS P30/31RT
|
||||
TC UPFLAG
|
||||
ADRES UPDATFLG # SET UPDATFLG BIT 7 FLAG 1
|
||||
TC UPFLAG
|
||||
ADRES TRACKFLG # SET TRACKFLG BIT 5 FLAG 1
|
||||
CAF V06N33 # T OF IGN
|
||||
TC BANKCALL
|
||||
CADR GOFLASHR
|
||||
TCF GOTOPOOH
|
||||
TC P30/31RT
|
||||
TCF P30/P31 +4
|
||||
TC PHASCHNG
|
||||
OCT 00014
|
||||
TC ENDOFJOB
|
||||
|
||||
CNTNUP30 XCH Q
|
||||
TS P30/RET
|
||||
CAF V06N81
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TCF GOTOPOOH
|
||||
TC P30/RET
|
||||
TCF CNTNUP30 +2
|
||||
PARAM30 XCH Q
|
||||
TS P30/31RT
|
||||
CAF V06N42
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TC GOTOPOOH # ON TERMINATION GOTOPOOH
|
||||
TCF REFTEST # ON PROCEED GO DO REFTEST
|
||||
# Page 638
|
||||
TCF PARAM30 +2
|
||||
REFTEST CAF BIT13
|
||||
MASK STATE +3 # REFSMFLAG
|
||||
EXTEND
|
||||
BZF NOTSET # REFSMFLAG =0 , THEN BRANCH TO NOTSET
|
||||
TC INTPRET
|
||||
VLOAD PUSH
|
||||
DELVSIN
|
||||
CALL
|
||||
GET+MGA
|
||||
GOTO
|
||||
FLASHMGA
|
||||
NOTSET EXTEND
|
||||
DCS MARSDP
|
||||
DXCH +MGA # +MGA, +MGA+1 CONTAINS (-00001)
|
||||
TC INTPRET
|
||||
FLASHMGA CALL
|
||||
DISPMGA
|
||||
EXIT
|
||||
TC P30/31RT
|
||||
MARSDP OCT 00000 # (00000) (16440) = (+00001)
|
||||
OCT 35100
|
||||
# ( .01 ) DEGREES IN THE LOW ORDER REGISTE
|
||||
|
||||
V06N33 VN 0633
|
||||
V06N42 VN 0642
|
||||
V16N35 VN 1635
|
||||
V06N45 VN 0645
|
||||
|
||||
# Page 639
|
||||
# PROGRAM DESCRIPTION S30.1 DATE 9NOV66
|
||||
|
||||
# MOD NO 1 LOG SECTION P30,P37
|
||||
# MOD BY RAMA AIYAWAR **
|
||||
# MOD.2 BY S.ZELDIN - TO CORRECT MOD.1 FOR COLOSSUS 29DEC67
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
# BASED ON STORED TARGET PARAMETERS(R OF IGNITION(RTIG),V OF
|
||||
# IGNITION(VTIG),TIME OF IGNITION(TIG),DELV(LV),COMPUTE PERIGEE ALTITUDE
|
||||
# A+OGEE ALTITUDE AND DELTA-V REQUIRED IN REF. COORDS.(DELVSIN)
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 S30.1
|
||||
# NORMAL EXIT MODE
|
||||
# AT L+2 OR CALLING SEQUENCE (GOTO L+2)
|
||||
# SUBROUTINES CALLED
|
||||
# THISPREC
|
||||
# PERIAPO
|
||||
# ALARM OR ABORT EXIT MODES
|
||||
# NONE
|
||||
# ERASABLE INITIALIZATION REQUIRED
|
||||
# TIG TIME OF IGNITION DP B28CS
|
||||
# DELVSLV SPECIFIED DELTA-V IN LOCAL VERT.
|
||||
# COORDS. OF ACTIVE VEHICLE AT
|
||||
# TIME OF IGNITION VCT. B+7M/CS
|
||||
#
|
||||
# OUTPUT
|
||||
# RTIG POSITION AT TIG VCT. B+29M
|
||||
# VTIG VELOCITY AT TIG VCT. B+7M
|
||||
# HAPO APOGEE ALT. DP B+29M
|
||||
# HPER PERIGEE ALT. DP B+29M
|
||||
# DELVSIN DELVSLV IN REF COORDS VCT. B+7M/CS
|
||||
# VGDISP MAG. OF DELVSIN DP B+7M/CS
|
||||
# DEBRIS QTEMP TEMP. ERASABLE
|
||||
# QPRET,MPAC
|
||||
# PUSHLIST
|
||||
|
||||
SETLOC P30S1A
|
||||
BANK
|
||||
|
||||
COUNT 35/S30S
|
||||
|
||||
S30.1 STQ DLOAD
|
||||
QTEMP
|
||||
TIG # TIME IGNITION SCALED AT 2(+28)CS
|
||||
STCALL TDEC1
|
||||
THISPREC # ENCKE ROUTINE FOR
|
||||
|
||||
VLOAD SXA,2
|
||||
VATT
|
||||
RTX2
|
||||
STOVL VTIG
|
||||
# Page 640
|
||||
RATT
|
||||
STORE RTIG
|
||||
STORE RACT3
|
||||
VXV UNIT
|
||||
VTIG
|
||||
STCALL UNRM
|
||||
LOMAT
|
||||
VLOAD VXM
|
||||
DELVSLV
|
||||
0
|
||||
VSL1 SXA,1
|
||||
RTX1
|
||||
STORE DELVSIN
|
||||
ABVAL
|
||||
STOVL VGDISP # MAG DELV
|
||||
RTIG
|
||||
PDVL VAD
|
||||
DELVSIN
|
||||
VTIG
|
||||
CALL
|
||||
PERIAPO1
|
||||
CALL
|
||||
SHIFTR1
|
||||
CALL
|
||||
MAXCHK
|
||||
STODL HPER # PERIGEE ALT B+29
|
||||
4D
|
||||
CALL
|
||||
SHIFTR1
|
||||
CALL
|
||||
MAXCHK
|
||||
STCALL HAPO # APOGEE ALT B+29
|
||||
QTEMP
|
||||
|
||||
# Page 641
|
||||
# S31.1 PROGRAM DESCRIPTION 28DEC67
|
||||
# MOD.1 BY S.ZELDIN
|
||||
|
||||
# S31.1 COMPUTES DELV IN REF AND LV COORDS,MAG OF DELV,INTERCEPT TIME,
|
||||
# APOGEE AND PERIGEE ALT FOR REQUIRED MANEUVER
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 S31.1
|
||||
|
||||
# NORMAL EXIT MODE
|
||||
# AT L +2 OF CALLING SEQUENCE(GOTO L+2)
|
||||
# SUBROUTINES CALLED
|
||||
# AGAIN
|
||||
# PERIAPO1
|
||||
# SHIFTR1
|
||||
# MIDGIM
|
||||
# NO ALARM OR ABORT MODES
|
||||
# INPUT
|
||||
# DELLT4 DP +28
|
||||
# TIG DP +28
|
||||
# RTARG VCT +29
|
||||
# OUTPUT
|
||||
# DELVLVC VCT +7
|
||||
# VGDISP DP +7
|
||||
# HAPO DP +29
|
||||
# HPER DP +29
|
||||
# TPASS4 DP +28
|
||||
# DEBRIS - QTEMP
|
||||
|
||||
S31.1 STQ DLOAD
|
||||
QTEMP
|
||||
TIG
|
||||
STCALL TDEC1
|
||||
AGAIN # RETURNS RTX2,RTX1,RATT,VATT,VIPRIME
|
||||
VLOAD PDVL # DELUEET3
|
||||
RTIG
|
||||
VIPRIME
|
||||
CALL
|
||||
PERIAPO1
|
||||
CALL
|
||||
SHIFTR1
|
||||
CALL
|
||||
MAXCHK
|
||||
STODL HPER # B29
|
||||
4D
|
||||
CALL
|
||||
SHIFTR1
|
||||
CALL
|
||||
MAXCHK
|
||||
STOVL HAPO # B29
|
||||
# Page 642
|
||||
DELVEET3
|
||||
STORE 0
|
||||
SET CALL
|
||||
AVFLAG
|
||||
MIDGIM # GET DELVLVC B7 FORDISPLAY
|
||||
ABVAL
|
||||
STODL VGDISP # B+7 FOR DISPLAY
|
||||
DELLT4
|
||||
DAD
|
||||
TIG
|
||||
STCALL TPASS4 # FOR S40.1
|
||||
QTEMP
|
||||
|
||||
# Page 643
|
||||
# SUBROUTINE NAME: DELRSPL (CONTINUATION OF V 82 IN CSM IF P11 ACTI
|
||||
# TRANSFERRED COMPLETELY FROM SUNDISK, P30S REV 33. 9 SEPT 67.
|
||||
# MOD NO: 0 MOD BY: ZELDIN DATE:
|
||||
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
|
||||
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 12 MAY 67 ADD UR.RT CALC WHEN BELOW 300K FT
|
||||
# MOD NO: 2.1 MOD BY: RR BAIRNSFATHER DATE: 5 JULY 67 FIX ERROR ON MOD. 2.
|
||||
# MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 12 JUL 67 CHANGE SIGN OF DISPLAYED ERROR.
|
||||
# MOD 4 MOD BY S.ZELDIN DATE 3 APRIL 68 CHANGE EQUATIONS FOR L/D=.18 WHICH REPLA
|
||||
# FUNCTION: CALCULATE (FOR DISPLAY ON CALL) AN APPROXIMATE MEASURE OF IN-PLANE SPLASH DOWN
|
||||
# ERROR. IF THE FREE-FALL TRANSFER ANGLE TO 300K FT ABOVE PAD RADIUS IS POSITIVE:
|
||||
# SPLASH ERROR= -RANGE TO TARGET + FREE-FALL TRANSFER ANGLE + ESTIMATED ENTRY ANGLE.
|
||||
# THE TARGET LOCATION AT ESTIMATED TIME OF IMPACT IS USED. IF THE FREE-FALL TRANSFER
|
||||
# ANGLE IS NEGATIVE: SPASH ERROR= -RANGE TO TARGET
|
||||
# THE PRESENT TARGET LOCATION IS USED.
|
||||
# CALLING SEQUENCE CALLED AFTER SR30.1 IF IN CSM AND IF P11 OPERATING (UNDER CONTROL OF V82)
|
||||
# SUBROUTINES CALLED: VGAMCALC, TFF/TRIG, LALOTORV.
|
||||
# EXIT: RETURN DIRECTLY TO V 82 PROG. AT SPLRET
|
||||
# ERASABLE INITIALIZATION LEFT BY SR30.1 AND V82GON1
|
||||
# OUTPUT: RSP-RREC RANGE IN REVOLUTIONS. DSKY DISPLAY IN N. MI.
|
||||
# DEBRIS: QPRET, PDL0 ...PDL7 ,PDL10
|
||||
|
||||
# THETA(1)
|
||||
|
||||
BANK 32
|
||||
SETLOC DELRSPL1
|
||||
BANK
|
||||
COUNT* $$/P30 # PROGRAMS: P30 EXTERNAL DELTA V
|
||||
|
||||
DELRSPL STORE 8D
|
||||
BPL DSU
|
||||
CANTDO # GONE PAST 300K FT ALT
|
||||
1BITDP
|
||||
BOV CALL
|
||||
CANTDO # POSMAX INDICATES NO 300K FT SOLUTION.
|
||||
VGAMCALC # +GAMMA(REV) IN PMAC,V300 MAG(B-7)=PDL 0
|
||||
PUSH CALL
|
||||
TFF/TRIG
|
||||
CALL
|
||||
AUGEKUGL
|
||||
PDDL ACOS # T ENTRY PDL 6
|
||||
CDELF/2
|
||||
DAD
|
||||
4
|
||||
GETARG STOVL THETA(1)
|
||||
LAT(SPL)
|
||||
STODL LAT
|
||||
HI6ZEROS
|
||||
STODL ALT # ALT=0 = LAT +4
|
||||
PIPTIME
|
||||
# Page 644
|
||||
BON DLOAD
|
||||
V37FLAG
|
||||
+2
|
||||
TSTART82
|
||||
DSU DAD
|
||||
8D
|
||||
CLEAR CALL
|
||||
ERADFLAG
|
||||
LALOTORV # R RECOV. IN ALPHAV AND MPAC
|
||||
|
||||
UNIT PDVL
|
||||
RONE
|
||||
UNIT DOT
|
||||
SL1 ARCCOS
|
||||
BDSU # ERROR = THETA EST - THETA TARG
|
||||
# NEGATIVE NUMBER SIGNIFIES THAT WILL FALL SHORT.
|
||||
# POSITIVE NUMBER SIGNIFIES THAT WILL OVERSHOOT.
|
||||
THETA(1)
|
||||
DELRDONE STCALL RSP-RREC # DOWNRANGE RECOVERY RANGE ERROR /360
|
||||
INTWAKE0
|
||||
CALL
|
||||
SPLRET
|
||||
CANTDO DLOAD PDDL # INITIALIZE ERASE TO DOT TARGET AND UR
|
||||
# FOR RANGE ANGLE.
|
||||
HIDPHALF # TO PDL 0 FOR DEN IN DDV.
|
||||
HI6ZEROS
|
||||
PUSH # ZERO TO PDL 2 FOR PHI ENTRY
|
||||
STCALL 8D
|
||||
GETARG # GO SET RSP-RREC =0
|
||||
|
||||
AUGEKUGL VLOAD
|
||||
X1CON -2
|
||||
STODL X1 -2
|
||||
0
|
||||
DSU BMN
|
||||
V(21K)
|
||||
LOOPSET
|
||||
XSU,1 XCHX,2
|
||||
S1
|
||||
X1
|
||||
XCHX,2 DSU
|
||||
S1
|
||||
V(3K)
|
||||
BMN XCHX,2
|
||||
LOOPSET
|
||||
S1
|
||||
DSU BMN
|
||||
V(4K)
|
||||
LOOPSET
|
||||
XCHX,2 XCHX,2
|
||||
# Page 645
|
||||
S1
|
||||
X1
|
||||
DSU BMN
|
||||
V(400)
|
||||
LOOPSET
|
||||
SXA,1
|
||||
S1
|
||||
LOOPSET INCR,1 GOTO
|
||||
DEC 1
|
||||
K1K2LOOP
|
||||
K2CALC SXA,1
|
||||
S1
|
||||
K1K2LOOP DLOAD DSU*
|
||||
0
|
||||
V(32K) +1,1
|
||||
DMP* DAD*
|
||||
YK1K2 +1,1
|
||||
CK1K2 +1,1
|
||||
PDDL TIX,1
|
||||
2
|
||||
K2CALC
|
||||
DSU BDDV
|
||||
PUSH BOV
|
||||
MAXPHI
|
||||
BMN DSU
|
||||
MAXPHI
|
||||
MAXPHIC
|
||||
BPL
|
||||
MAXPHI
|
||||
PHICALC DLOAD DSU # PHI ENTRY PDL 4D
|
||||
0
|
||||
V(26K)
|
||||
BPL DLOAD
|
||||
TGR26
|
||||
TLESS26
|
||||
DDV
|
||||
0
|
||||
TENT DMP RVQ
|
||||
4D
|
||||
TGR26 DLOAD GOTO
|
||||
TGR26CON
|
||||
TENT
|
||||
|
||||
MAXPHI DLOAD PDDL
|
||||
MAXPHIC
|
||||
GOTO
|
||||
PHICALC
|
||||
MAXPHIC 2DEC .09259298 # 2000 NM FOR MAXIMUM PHI ENTRY
|
||||
|
||||
# Page 646
|
||||
|
||||
COUNT* $$/P30
|
||||
|
||||
# BELOW
|
||||
# <<<< TABLE IS INDEXED. KEEP IN ORDER >>>>
|
||||
|
||||
2DEC 7.07304526 E-4 # 5500
|
||||
|
||||
2DEC 3.08641975 E-4 # 2400
|
||||
|
||||
2DEC 3.08641975 E-4 # 2400
|
||||
|
||||
2DEC -8.8888888 E-3 # -3.2
|
||||
|
||||
2DEC 2.7777777 E-3 # 1
|
||||
|
||||
CK1K2 2DEC 6.6666666 E-3 # 2.4
|
||||
|
||||
2DEC 0 # 0
|
||||
|
||||
2DEC* -1.86909989 E-5 B7* # -.443
|
||||
|
||||
2DEC 0
|
||||
|
||||
2DEC* 1.11639691 E-3 B7* # .001225
|
||||
|
||||
2DEC* 9.56911636 E-4 B7* # .00105
|
||||
|
||||
YK1K2 2DEC* 2.59733157 E-4 B7* # .000285
|
||||
|
||||
V(400) 2DEC 1.2192 B-7
|
||||
|
||||
V(28K) 2DEC 85.344 B-7
|
||||
|
||||
V(3K) 2DEC 9.144 B-7
|
||||
|
||||
V(24K) 2DEC 73.152 B-7
|
||||
|
||||
2DEC 85.344 B-7
|
||||
|
||||
V(32K) 2DEC 97.536 B-7
|
||||
|
||||
V(4K) 2DEC 12.192 B-7
|
||||
|
||||
V(21K) 2DEC 64.000 B-7
|
||||
|
||||
TLESS26 2DEC* 5.70146688 E7 B-35* # 8660PHI/V
|
||||
|
||||
TGR26CON 2DEC 7.2 E5 B-28 # PHI/3
|
||||
|
||||
V(26K) 2DEC 79.248 B-7 # 26000
|
||||
|
||||
# Page 647
|
||||
|
||||
X1CON DEC 10
|
||||
|
||||
DEC 8
|
||||
|
||||
DEC 6
|
||||
# <<<< TABLE IS INDEXED. KEEP IN ORDER >>>>
|
||||
# ABOVE
|
||||
# Page 648
|
||||
# ***** AVFLAGA/P *****
|
||||
|
||||
# SUBROUTINES USED
|
||||
|
||||
# UPFLAG
|
||||
# DOWNFLAG
|
||||
SETLOC P30SUBS
|
||||
BANK
|
||||
EBANK= SUBEXIT
|
||||
AVFLAGA EXTEND # AVFLAG = CSM
|
||||
QXCH SUBEXIT
|
||||
TC DOWNFLAG
|
||||
ADRES AVFLAG # BIT 5 FLAG 2
|
||||
CAF EBANK7
|
||||
TS EBANK
|
||||
EBANK= ECSTEER
|
||||
CAF BIT13
|
||||
TS ECSTEER # SET ECSTEER = 1
|
||||
CAF EBANK4
|
||||
TS EBANK
|
||||
EBANK= SUBEXIT
|
||||
TC SUBEXIT
|
||||
AVFLAGP EXTEND # AVFLAG = LEM
|
||||
QXCH SUBEXIT
|
||||
TC UPFLAG
|
||||
ADRES AVFLAG # BIT 5 FLAG 2
|
||||
TC SUBEXIT
|
||||
P20FLGON EXTEND
|
||||
QXCH SUBEXIT
|
||||
TC UPFLAG
|
||||
ADRES TRACKFLG
|
||||
TC UPFLAG
|
||||
ADRES UPDATFLG
|
||||
TC SUBEXIT # DP B4
|
1415
Comanche055/P32-P33_P72-P73.agc
Normal file
1415
Comanche055/P32-P33_P72-P73.agc
Normal file
File diff suppressed because it is too large
Load Diff
1739
Comanche055/P34-35_P74-75.agc
Normal file
1739
Comanche055/P34-35_P74-75.agc
Normal file
File diff suppressed because it is too large
Load Diff
1950
Comanche055/P37_P70.agc
Normal file
1950
Comanche055/P37_P70.agc
Normal file
File diff suppressed because it is too large
Load Diff
2429
Comanche055/P40-P47.agc
Normal file
2429
Comanche055/P40-P47.agc
Normal file
File diff suppressed because it is too large
Load Diff
2213
Comanche055/P51-P53.agc
Normal file
2213
Comanche055/P51-P53.agc
Normal file
File diff suppressed because it is too large
Load Diff
1225
Comanche055/P61-P67.agc
Normal file
1225
Comanche055/P61-P67.agc
Normal file
File diff suppressed because it is too large
Load Diff
162
Comanche055/P76.agc
Normal file
162
Comanche055/P76.agc
Normal file
@ -0,0 +1,162 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: P76.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: Hartmuth Gutsche <hgutsche@xplornet.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: pp 511-513
|
||||
# Mod history: 2009-05-08 HG Adapting from the Luminary131/ file
|
||||
# of the same name, using Comanche055 page
|
||||
# images 0511.jpg - 0513.jpg.
|
||||
#
|
||||
# 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 511
|
||||
# 1) PROGRAM NAME - TARGET DELTA V PROGRAM (P76).
|
||||
# 2) FUNCTIONAL DESCRIPTION - UPON ENTRY BY ASTRONAUT ACTION, P76 FLASHES DSKY REQUESTS TO THE ASTRONAUT
|
||||
# TO PROVIDE VIA DSKY (1) THE DELTA V TO BE APPLIED TO THE OTHER VEHICLE STATE VECTOR AND (2) THE
|
||||
# TIME (TIG) AT WHICH THE OTHER VEHICLE VELOCITY WAS CHANGED BY EXECUTION OF A THRUSTING MANEUVER. THE
|
||||
# OTHER VEHICLE STATE VECTOR IS INTEGRATED TO TIG AND UPDATED BY THE ADDITION OF DELTA V (DELTA V HAVING
|
||||
# BEEN TRANSFORMED FROM LV TO REF COSYS). USING INTEGRVS, THE PROGRAM THEN INTEGRATES THE OTHER
|
||||
# VEHICLE STATE VECTOR TO THE STATE VECTOR OF THIS VEHICLE, THUS INSURING THAT THE W-MATRIX AND BOTH VEHICLE
|
||||
# STATES CORRESPOND TO THE SAME TIME.
|
||||
# 3) ERASABLE INITIALIZATION REQUIRED - NONE.
|
||||
# 4) CALLING SEQUENCES AND EXIT MODES - CALLED BY ASTRONAUT REQUEST THRU DSKY V 37 E 76 E.
|
||||
# EXITS BY TCF ENDOFJOB.
|
||||
# 5) OUTPUT - OTHER VEHICLE STATE VECTOR INTEGRATED TO TIG AND INCREMENTED BY DELTA V IN REF COSYS.
|
||||
# THE PUSHLIST CONTAINS THE MATRIX BY WHICH THE INPUT DELTA V MUST BE POST-MULTIPLIED TO CONVERT FROM LV
|
||||
# TO REF COSYS.
|
||||
# 6) DEBRIS - OTHER VEHICLE STATE VECTOR.
|
||||
# 7) SUBROUTINES CALLED - BANKCALL,GOXDSPF,CSMPREC (OR LEMPREC),ATOPCSM (OR ATOPLEM),INTSTALL,INTWAKE, PHASCHNG
|
||||
# INTPRET, INTEGRVS, AND MINIRECT.
|
||||
# 8) FLAG USE - MOONFLAG,CMOONFLG,INTYPFLG,RASFLAG, AND MARKCTR.
|
||||
|
||||
BANK 30
|
||||
SETLOC P76LOC
|
||||
BANK
|
||||
|
||||
COUNT* $$/P76
|
||||
|
||||
EBANK= TIG
|
||||
|
||||
P76 TC UPFLAG
|
||||
ADRES TRACKFLG
|
||||
|
||||
CAF V06N84 # FLASH LAST DELTA V.
|
||||
TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
|
||||
CADR GOFLASH
|
||||
TCF ENDP76
|
||||
TC +2 # PROCEED
|
||||
TC -5 # STORE DATA AND REPEAT FLASHING
|
||||
CAF V06N84 +1 # FLASH VERB 06 NOUN 33, DISPLAY LAST TIG,
|
||||
TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
|
||||
CADR GOFLASH
|
||||
TCF ENDP76
|
||||
TC +2
|
||||
TC -5
|
||||
TC INTPRET # RETURN TO INTERPRETIVE CODE
|
||||
DLOAD # SET D(MPAC)=TIG IN CSEC B28
|
||||
TIG
|
||||
STCALL TDEC1 # SET TDEC1=TIG FOR ORBITAL INTEGRATION
|
||||
OTHPREC
|
||||
COMPMAT VLOAD UNIT
|
||||
RATT
|
||||
# Page 512
|
||||
VCOMP # U(-R)
|
||||
STORE 24D # U(-R) TO 24D
|
||||
VXV UNIT # U(-R) X V = U(V X R)
|
||||
VATT
|
||||
STORE 18D
|
||||
VXV UNIT # U(V X R) X U(-R) = U((R X V) X R)
|
||||
24D
|
||||
STOVL 12D
|
||||
DELVOV
|
||||
VXM VSL1 # V(MPAC)=DELTA V IN REFCOSYS
|
||||
12D
|
||||
VAD
|
||||
VATT
|
||||
STORE 6 # V(PD6)=VATT + DELTA V
|
||||
CALL # PREVENT WOULD-BE USER OF ORBITAL
|
||||
INTSTALL # INTEG FROM INTERFERING WITH UPDATING
|
||||
CALL
|
||||
P76SUB1
|
||||
VLOAD VSR*
|
||||
6
|
||||
0,2
|
||||
STOVL VCV
|
||||
RATT
|
||||
VSR*
|
||||
0,2
|
||||
STODL RCV
|
||||
TIG
|
||||
STORE TET
|
||||
CLEAR DLOAD
|
||||
INTYPFLG
|
||||
TETTHIS
|
||||
INTOTHIS STCALL TDEC1
|
||||
INTEGRVS
|
||||
CALL
|
||||
INTSTALL
|
||||
CALL
|
||||
P76SUB1 # SET/CLEAR MOONFLAG
|
||||
VLOAD
|
||||
RATT1
|
||||
STORE RRECT
|
||||
STODL RCV
|
||||
TAT
|
||||
STOVL TET
|
||||
VATT1
|
||||
CALL
|
||||
MINIRECT
|
||||
EXIT
|
||||
TC PHASCHNG
|
||||
OCT 04024
|
||||
# Page 513
|
||||
TC UPFLAG
|
||||
ADRES REINTFLG
|
||||
|
||||
TC INTPRET
|
||||
CALL
|
||||
ATOPOTH
|
||||
SSP EXIT
|
||||
QPRET
|
||||
OUT
|
||||
TC BANKCALL # PERMIT USE OF ORBITAL INTEGRATION
|
||||
CADR INTWAKE1
|
||||
OUT EXIT
|
||||
ENDP76 CAF ZERO
|
||||
TS MARKCTR # CLEAR RR TRACKING MARK COUNTER
|
||||
TS VHFCNT
|
||||
|
||||
CAF NEGONE
|
||||
TS MRKBUF2 # INVALIDATE MARK BUFFER
|
||||
|
||||
TCF GOTOPOOH
|
||||
|
||||
V06N84 NV 0684
|
||||
NV 0633
|
||||
P76SUB1 CLEAR SLOAD
|
||||
MOONFLAG
|
||||
X2
|
||||
BHIZ SET # X2=0...CLEAR MOONFLAG
|
||||
+2 # =2.....SET MOONFLAG
|
||||
MOONFLAG
|
||||
RVQ
|
||||
|
416
Comanche055/PHASE_TABLE_MAINTENANCE.agc
Normal file
416
Comanche055/PHASE_TABLE_MAINTENANCE.agc
Normal file
@ -0,0 +1,416 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: PHASE_TABLE_MAINTENANCE.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: 1404-1413
|
||||
# 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 1404
|
||||
# SUBROUTINE TO UPDATE THE PROGRAM NUMBER DISPLAY ON THE DSKY.
|
||||
|
||||
COUNT 02/PHASE
|
||||
BLOCK 02
|
||||
SETLOC FFTAG1
|
||||
BANK
|
||||
|
||||
NEWMODEX INDEX Q # UPDATE MODREG. ENTRY FOR MODE IN FIXED.
|
||||
CAF 0
|
||||
INCR Q
|
||||
|
||||
NEWMODEA TS MODREG # ENTRY FOR MODE IN A.
|
||||
MMDSPLAY CAF +3 # DISPLAY MAJOR MODE.
|
||||
PREBJUMP LXCH BBANK # PUTS BBANK IN L
|
||||
TCF BANKJUMP # PUTS Q INTO A
|
||||
CADR SETUPDSP
|
||||
|
||||
# RETURN TO CALLER +3 IF MODE = THAT AT CALLER +1. OTHERWISE RETURN TO CALLER +2.
|
||||
|
||||
CHECKMM INDEX Q
|
||||
CS 0
|
||||
AD MODREG
|
||||
EXTEND
|
||||
BZF Q+2
|
||||
TCF Q+1 # NO MATCH
|
||||
|
||||
TCQ = Q+2 +1
|
||||
|
||||
BANK 14
|
||||
SETLOC PHASETAB
|
||||
BANK
|
||||
|
||||
COUNT 10/PHASE
|
||||
|
||||
SETUPDSP INHINT
|
||||
DXCH RUPTREG1 # SAVE CALLER-S RETURN 2CADR
|
||||
CAF PRIO30 # EITHER A TASK OR JOB CAN COME TO
|
||||
TC NOVAC # NEWMODEX
|
||||
EBANK= MODREG
|
||||
2CADR DSPMMJOB
|
||||
|
||||
DXCH RUPTREG1
|
||||
RELINT
|
||||
DXCH Z # RETURN
|
||||
|
||||
DSPMMJOB EQUALS DSPMMJB
|
||||
|
||||
BLOCK 02
|
||||
# Page 1405
|
||||
SETLOC FFTAG1
|
||||
BANK
|
||||
|
||||
# Page 1406
|
||||
# PHASCHNG IS THE MAIN WAY OF MAKING PHASE CHANGES FOR RESTARTS. THERE ARE THREE FORMS OF PHASCHNG, KNOWN AS TYPE
|
||||
# A, TYPE B, AND TYPE C. THEY ARE ALL CALLED AS FOLLOWS, WHERE OCT XXXXX CONTAINS THE PHASE INFORMATION,
|
||||
#
|
||||
# TC PHASCHNG
|
||||
# OCT XXXXX
|
||||
#
|
||||
# TYPE A IS CONCERNED WITH FIXED PHASE CHANGES, THAT IS, PHASE INFORMATION THAT IS STORED PERMANENTLY. THESE
|
||||
# OPTIONS ARE, WHERE G STANDS FOR A GROUP AND .X FOR THE PHASE,
|
||||
#
|
||||
# G.0 INACTIVE, WILL NOT PERMIT A GROUP G RESTART
|
||||
# G.1 WILL CAUSE THE LAST DISPLAY TO BE REACTIVATED, USED MAINLY IN MANNED FLIGHTS
|
||||
# G.EVEN A DOUBLE TABLE RESTART, CAN CAUSE ANY COMBINATION OF TWO JOBS, TASKS, AND/OR
|
||||
# LONGCALL TO BE RESTARTED.
|
||||
# G.ODD NOT .1 A SINGLE TABLE RESTART, CAN CAUSE EITHER A JOB, TASK, OR LONGCALL RESTART.
|
||||
#
|
||||
# THIS INFORMATION IS PUT INTO THE OCTAL WORD AFTER TC PHASCHNG AS FOLLOWS
|
||||
#
|
||||
# TL0 00P PPP PPP GGG
|
||||
#
|
||||
# WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G:S STAND FOR THE GROUP, OCTAL 1-7, THE P:S FOR THE PHASE,
|
||||
# OCTAL 0 - 127. 0:S MUST BE 0. IF ONE WISHES TO HAVE THE TBASE OF GROUP G TO BE SET AT THIS TIME,
|
||||
# T IS SET TO 1, OTHERWISE IT IS SET TO 0. SIMILARLY IF ONE WISHES TO SET LONGBASE, THEN L IS SET TO 1, OTHERWISE
|
||||
# IT IS SET TO 0. SOME EXAMPLES,
|
||||
#
|
||||
# TC PHASCHNG # THIS WILL CAUSE GROUP 3 TO BE SET TO 0,
|
||||
# OCT 00003 # MAKING GROUP 3 INACTIVE
|
||||
#
|
||||
# TC PHASCHNG # IF A RESTART OCCURS THIS WOULD CAUSE
|
||||
# OCT 00012 # GROUP 2 TO RESTART THE LAST DISPLAY
|
||||
#
|
||||
# TC PHASCHNG # THIS SETS THE TBASE OF GROUP 4 AND IN
|
||||
# OCT 40064 # CASE OF A RESTART WOULD START UP THE TWO
|
||||
# # THINGS LOCATED IN THE DOUBLE 4.6 RESTART
|
||||
# # LOCATION.
|
||||
# TC PHASCHNG # THIS SETS LONGBASE AND UPON A RESTART
|
||||
# OCT 20135 # CAUSES 5.13 TO BE RESTARTED (SINCE
|
||||
# # LONGBASE WAS SET THIS SINGLE ENTRY
|
||||
# # SHOULD BE A LONGCALL)
|
||||
# TC PHASCHNG # SINCE BOTH TBASE4 AND LONGBASE ARE SET,
|
||||
# OCT 60124 # 4.12 SHOULD CONTAIN BOTH A TASK AND A
|
||||
# # LONGCALL TO BE RESTARTED
|
||||
#
|
||||
# TYPE C PHASCHNG CONTAINS THE VARIABLE TYPE OF PHASCHNG INFORMATION. INSTEAD OF THE INFORMATION BEING IN A
|
||||
# PERMANENT FORM, ONE STORES THE DESIRED RESTART INFORMATION IN A VARIABKE LOCATION. THE BITS ARE AS FOLLOWS,
|
||||
#
|
||||
# TL0 1AD XXX CJW GGG
|
||||
#
|
||||
# WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G:S STAND FOR THE GROUP, OCTAL 1 - 7. IF THE RESTART IS TO
|
||||
# BE BY WAITLIST, W IS SET TO 1, IF IT IS A JOB, J IS SET TO 1, IF IT IS A LONGCALL, C IS SET TO 1. ONLY ONE OF
|
||||
# THESE THREE BITS MAY BE SET. X:S ARE IGNORED 1 MUST BE 1, AND 0 MUST BE 0. AGAIN T STANDS FOR THE TBASE,
|
||||
# Page 1407
|
||||
# AND L FOR LONGBASE. THE BITS A AND D ARE CONCERNED WITH THE VARIABLE INFORMATION. IF D IS SET TO 1, A PRIORITY
|
||||
# OR DELTA TIME WILL BE READ FROM THE NEXT LOCATION AFTER THE OCTAL INFORMATION, IF THIS IS TO BE INDIRECT, THAT
|
||||
# IS, THE NAME OF A LOCATION COMT+INING THE INFORMATION (DELTA TIME ONLY), THEN THIS IS GIVEN AS THE -GENADR OF
|
||||
# THAT LOCATION WHICH CONTAINS THE DELTA TIME. IF THE OLD PRIORITY OR DELTA TIME IS TO BE USED, THAT WHICH IS
|
||||
# ALREADY IN THE VARIABLE STORAGE, THEN D IS SET TO 0. NEXT THE A BIT IS USED. IF IT IS SET TO 0, THE ADDRESS
|
||||
# THAT WOULD BE RESTARTED DURING A RESTART IS THE NEXT LOCATION AFTER THE PHASE INFORMATION, THAT IS, EITHER
|
||||
# (TC PHASCHNG) +2 OR +3, DEPENDING ON WHETHER D HAD BEEN SET OR NOT. IF A IS SET TO 1, THEN THE ADDRESS THAT
|
||||
# WOULD BE RESTARTED IS THE 2CADR THAT IS READ FROM THE NEXT TWO LOCATIONS. EXAMPLES,
|
||||
#
|
||||
# AD TC PHASCHNG # THIS WOULD CAUSE LOCATION AD +3 TO BE
|
||||
# AD+1 OCT 05023 # RESTARTED BY GROUP THREE WITHA PRIORITY
|
||||
# AD+2 OCT 23000 # OF 23. NOTE UPON RETURNING IT WOULD
|
||||
# AD+3 # ALSO GO TO AD+3
|
||||
#
|
||||
# AD TC PHASCHNG # GROUP 1 WOULD CAUSE CALLCALL TO BE
|
||||
# AD+1 OCT 27441 # BE STARTED AS A LONGCALL FROM THE TIME
|
||||
# AD+2 -GENADR DELTIME # STORED IN LONGBASE (LONGBASE WAS SET) BY
|
||||
# AD+3 2CADR CALLCALL # A DELTATIME STORED IN DELTIME. THE
|
||||
# AD+4 # BBCON OF THE 2CADR SHOULD CONTAIN THE E
|
||||
# AD+5 # BANK OF DELTIME. PHASCHNG RETURNS TO
|
||||
# # LOCATION AD+5
|
||||
#
|
||||
# NOTE THAT IF A VARIABLE PRIORITY IS GIVEN FOR A JOB, THE JOB WILL BE RESTARTED AS A NOVAC IF THE PRIORITY IS
|
||||
# NEGATIVE, AS A FINDVAC IF THE PRIORITY IS POSITIVE.
|
||||
#
|
||||
# TYPE B PHASCHNG IS A COMBINATION OF VARIABLE AND FIXED PHASE CHANGES. IT WILL START UP A JOB AS INDICATED
|
||||
# BELOW AND ALSO START UP ONE FIXED RESTART, THAT IS EITHER AN G.1 OR A G.ODD OR THE FIRST ENTRY OF G.EVEN
|
||||
# DOUBLE ENTRY. THE BIT INFORMATION IS AS FOLLOWS,
|
||||
#
|
||||
# TL1 DAP PPP PPP GGG
|
||||
#
|
||||
# WHERE EACH LETTER OR NUMBER STANDS FOR A BIT. THE G:S STAND FOR THE GROUP, OCTAL 1 - 7. THE P:S FOR THE FIXED
|
||||
# PHASE INFORMATION, OCTAL 0 - 127. 1 MUST BE 1. AND AGAIN T STANDS FOR THE TBASE AND L FOR LONGBASE. D THIS
|
||||
# TIME STANDS ONLY FOR PRIORITY SINCE THIS WILL BE CONSIDERED A JOB, AND IT MUST BE GIVEN DIRECTLY IF GIVEN.
|
||||
# AGAIN A STANDS FOR THE ADDRESS OF THE LOCATION TO BE RESTARTED, 1 IF THE 2CADR IS GIVEN, OR 0 IF IT IS TO BE
|
||||
# THE NEXT LOCATION.(THE RETURN LOCATION OF PHASCHNG) EXAMPLES,
|
||||
# AD TC PHASCHNG # TBASE IS SET AND A RESTART CAUSE GROUP 3
|
||||
# AD+1 OCT 56043 # TO START THE JOB AJOBAJOB WITH PRIORITY
|
||||
# AD+2 OCT 31000 # 31 AND THE FIRST ENTRY OF 3.4SPOT (WE CAN
|
||||
# AD+3 2CADR AJOBAJOB # ASSUME IT IS A TASK SINCE WE SET TBASE3)
|
||||
# AD+4 # UPON RETURN FROM PHASCHNG CONTROL WOULD
|
||||
# AD+5 # GO TO AD+5
|
||||
#
|
||||
# AD TC PHASCHNG # UPON A RESTART THE LAST DISPLAY WOULD BE
|
||||
# AD+1 OCT 10015 # RESTARTED AND A JOB WITH THE PREVIOUSLY
|
||||
# AD+2 # STORED PRIORITY WOULD BE BEGUN AT AD+2
|
||||
# # BY MEANS OF GROUP 5
|
||||
# Page 1408
|
||||
# THE NOVAC-FINDVAC CHOICE FOR JOBS HOLDS HERE ALSO - NEGATIVE PRIORITY CAUSES A NOVAC CALL, POSITIVE A FINDVAC.
|
||||
|
||||
|
||||
# SUMMARY OF BITS:
|
||||
# TYPE A TL0 00P PPP PPP GGG
|
||||
# TYPE B TL1 DAP PPP PPP GGG
|
||||
# TYPE C TL0 1AD XXX CJW GGG
|
||||
|
||||
# Page 1409
|
||||
# 2PHSCHNG IS USED WHEN ONE WISHES TO START UP A GROUP OR CHANGE A GROUP WHILE UNDER THE CONTROL OF A DIFFERENT
|
||||
# GROUP. FOR EXAMPLE, CHANGE THE PHASE OF GROUP 3 WHILE THE PORTION OF THE PROGRAM IS UNDER GROUP 5. ALL 2PHSCHNG
|
||||
# CALLS ARE MADE IN THE FOLLOWING MANNER,
|
||||
|
||||
# TC 2PHSCHNG
|
||||
# OCT XXXXX
|
||||
# OCT YYYYY
|
||||
|
||||
# WHERE OCT XXXXX MUST BE OF TYPE A AND OCT YYYYY MAY BE OF EITHER TYPE A OR TYPE B OR TYPEC. THERE IS ONE
|
||||
# DIFFERENCE --- NOTE- IF LONGBASE IS TO BE SET THIS INFORMATION IS GIVEN IN THE OCT YYYYY INFORMATION, IT WILL
|
||||
# BE DISREGARDED IF GIVEN WITH THE OCT XXXXX INFORMATION. A COUPLE OF EXAMPLES MAY HELP.
|
||||
|
||||
# AD TC 2PHACHNG # SET TBASE3 AND IF A RESTART OCCURS START
|
||||
# AD+1 OCT 40083 # THE TWO ENTRIES IN 3.8 TABLE LOCATION
|
||||
# AD+2 OCT 05025 # THIS IS OF TYPE C. SET THE JOB TO BE
|
||||
# AD+3 OCT 18000 # TO BE LOCATION AD+4, WITH A PRIORITY 18,
|
||||
# AD+4 # FOR GROUP 5 PHASE INFORMATION.
|
||||
|
||||
COUNT 02/PHASE
|
||||
|
||||
2PHSCHNG INHINT # THE ENTRY FOR A DOUBLE PHASE CHANGE
|
||||
NDX Q
|
||||
CA 0
|
||||
INCR Q
|
||||
TS TEMPP2
|
||||
|
||||
MASK OCT7
|
||||
DOUBLE
|
||||
TS TEMPG2
|
||||
|
||||
CA TEMPP2
|
||||
MASK OCT17770 # NEED ONLY 1770, BUT WHY GET A NEW CONST.
|
||||
EXTEND
|
||||
MP BIT12
|
||||
XCH TEMPP2
|
||||
|
||||
MASK BIT15
|
||||
TS TEMPSW2 # INDICATES WHETHER TO SET TBASE OR NOT
|
||||
|
||||
TCF PHASCHNG +3
|
||||
|
||||
PHASCHNG INHINT
|
||||
CA ONE # INDICATESWE CAME FROM A PHASCHNG ENTRY
|
||||
TS TEMPSW2
|
||||
|
||||
NDX Q
|
||||
CA 0
|
||||
INCR Q
|
||||
TS TEMPSW
|
||||
# Page 1410
|
||||
EXTEND
|
||||
DCA ADRPCHN2 # OFF TO SWITCHED BANK
|
||||
DTCB
|
||||
|
||||
EBANK= LST1
|
||||
ADRPCHN2 2CADR PHSCHNG2
|
||||
|
||||
ONEORTWO LXCH TEMPBBCN
|
||||
LXCH BBANK
|
||||
LXCH TEMPBBCN
|
||||
|
||||
MASK OCT14000 # SEE WHAT KIND OF PHASE CHANGE IT IS
|
||||
CCS A
|
||||
TCF CHECKB # IT IS OF TYPE :B:
|
||||
|
||||
CA TEMPP
|
||||
MASK BIT7
|
||||
CCS A # SHALL WE USE THE OLD PRIORITY
|
||||
TCF GETPRIO # NO GET A NEW PRIORITY (OR DELTA T)
|
||||
|
||||
OLDPRIO NDX TEMPG # USE THE OLD PRIORITY (OR DELTA T)
|
||||
CA PHSPRDT1 -2
|
||||
TS TEMPPR
|
||||
|
||||
CON1 CA TEMPP # SEE IF A 2CADR IS GIVEN
|
||||
MASK BIT8
|
||||
CCS A
|
||||
TCF GETNEWNM
|
||||
|
||||
CA Q
|
||||
TS TEMPNM
|
||||
CA BB
|
||||
EXTEND # PICK UP USERS SUPERBANK
|
||||
ROR SUPERBNK
|
||||
TS TEMPBB
|
||||
|
||||
TOCON2 CA CON2ADR # BACK TO SWITCHED BANK
|
||||
LXCH TEMPBBCN
|
||||
DTCB
|
||||
|
||||
CON2ADR GENADR CON2
|
||||
|
||||
GETPRIO NDX Q # DON:T CARE IF DIRECT OR INDIRECT
|
||||
CA 0 # LEAVE THAT DECISION TO RESTARTS
|
||||
INCR Q # OBTAIN RETURN ADDRESS
|
||||
TCF CON1 -1
|
||||
|
||||
GETNEWNM EXTEND
|
||||
# Page 1411
|
||||
INDEX Q
|
||||
DCA 0
|
||||
DXCH TEMPNM
|
||||
CA TWO
|
||||
ADS Q # OBTAIN RETURN ADDRESS
|
||||
|
||||
TCF TOCON2
|
||||
|
||||
OCT14000 EQUALS PRIO14
|
||||
TEMPG EQUALS ITEMP1
|
||||
TEMPP EQUALS ITEMP2
|
||||
TEMPNM EQUALS ITEMP3
|
||||
TEMPBB EQUALS ITEMP4
|
||||
TEMPSW EQUALS ITEMP5
|
||||
TEMPSW2 EQUALS ITEMP6
|
||||
TEMPPR EQUALS RUPTREG1
|
||||
TEMPG2 EQUALS RUPTREG2
|
||||
TEMPP2 EQUALS RUPTREG3
|
||||
|
||||
TEMPBBCN EQUALS RUPTREG4
|
||||
BB EQUALS BBANK
|
||||
|
||||
BANK 14
|
||||
SETLOC PHASETAB
|
||||
BANK
|
||||
|
||||
EBANK= PHSNAME1
|
||||
COUNT 10/PHASE
|
||||
|
||||
PHSCHNG2 LXCH TEMPBBCN
|
||||
CA TEMPSW
|
||||
MASK OCT7
|
||||
DOUBLE
|
||||
TS TEMPG
|
||||
|
||||
CA TEMPSW
|
||||
MASK OCT17770
|
||||
EXTEND
|
||||
MP BIT12
|
||||
TS TEMPP
|
||||
|
||||
CA TEMPSW
|
||||
MASK OCT60000
|
||||
XCH TEMPSW
|
||||
MASK OCT14000
|
||||
CCS A
|
||||
TCF ONEORTWO
|
||||
|
||||
# Page 1412
|
||||
CA TEMPP # START STORING THE PHASE INFORMATION
|
||||
NDX TEMPG
|
||||
TS PHASE1 -2
|
||||
|
||||
BELOW1 CCS TEMPSW2 # IS IT A PHASCHNG OR A 2PHSCHNG
|
||||
TCF BELOW2 # IT:S A PHASCHNG
|
||||
|
||||
TCF +1 # IT:S A 2PHSCHNG
|
||||
CS TEMPP2
|
||||
LXCH TEMPP2
|
||||
NDX TEMPG2
|
||||
DXCH -PHASE1 -2
|
||||
|
||||
CCS TEMPSW2
|
||||
NOOP # CAN:T GET HERE
|
||||
TCF BELOW2
|
||||
|
||||
CS TIME1
|
||||
NDX TEMPG2
|
||||
TS TBASE1 -2
|
||||
|
||||
BELOW2 CCS TEMPSW # SEE IF WE SHOULD SET TBASE OR LONGBASE
|
||||
TCF BELOW3 # SET LONGBASE ONLY
|
||||
TCF BELOW4 # SET NEITHER
|
||||
|
||||
CS TIME1 # SET TBASE TO BEGIN WITH
|
||||
NDX TEMPG
|
||||
TS TBASE1 -2
|
||||
|
||||
CA TEMPSW # SHALL WE NOW SET LONGBASE
|
||||
AD BIT14COM
|
||||
CCS A
|
||||
NOOP # ***** CAN'T GET HERE *****
|
||||
BIT14COM OCT 17777 # ***** CAN'T GET HERE *****
|
||||
TCF BELOW4 # NO WE NEED ONLY SET TBASE
|
||||
|
||||
BELOW3 EXTEND # SET LONGBASE
|
||||
DCA TIME2
|
||||
DXCH LONGBASE
|
||||
|
||||
BELOW4 CS TEMPP # AND STORE THE FINAL PART OF THE PHASE
|
||||
NDX TEMPG
|
||||
TS -PHASE1 -2
|
||||
|
||||
CA Q
|
||||
LXCH TEMPBBCN
|
||||
RELINT
|
||||
DTCB
|
||||
CON2 LXCH TEMPBBCN
|
||||
# Page 1413
|
||||
CA TEMPP
|
||||
NDX TEMPG
|
||||
TS PHASE1 -2
|
||||
|
||||
CA TEMPPR
|
||||
NDX TEMPG
|
||||
TS PHSPRDT1 -2
|
||||
|
||||
EXTEND
|
||||
DCA TEMPNM
|
||||
NDX TEMPG
|
||||
DXCH PHSNAME1 -2
|
||||
|
||||
TCF BELOW1
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG1
|
||||
BANK
|
||||
|
||||
COUNT 02/PHASE
|
||||
|
||||
CHECKB MASK BIT12 # SINCE THIS IS OF TYPE B, THIS BIT SHOULD
|
||||
CCS A # BE HERE IF WE ARE TO GET A NEW PRIORITY
|
||||
TCF GETPRIO # IT IS, SO GET NEW PRIORITY
|
||||
|
||||
TCF OLDPRIO # IT ISN:T, USE THE OLD PRIORITY
|
3781
Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
Normal file
3781
Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
Normal file
File diff suppressed because it is too large
Load Diff
861
Comanche055/PINBALL_NOUN_TABLES.agc
Normal file
861
Comanche055/PINBALL_NOUN_TABLES.agc
Normal file
@ -0,0 +1,861 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: PINBALL_NOUN_TABLES.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. 268-284
|
||||
# Contact: Ron Burkey <info@sandroid.org>,
|
||||
# Fabrizio Bernardini <fabrizio@spacecraft.it>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 2009-05-18 FB Transcription Batch 3 Assignment.
|
||||
# 2009-05-23 RSB In NNTYPTAB, corrected former 13 SPARE.
|
||||
#
|
||||
# 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 268
|
||||
# THE FOLLOWING REFERS TO THE NOUN TABLES
|
||||
|
||||
|
||||
# COMPONENT CODE NUMBER INTERPRETATION
|
||||
|
||||
# 00000 1 COMPONENT
|
||||
# 00001 2 COMPONENT
|
||||
# 00010 3 COMPONENT
|
||||
# X1XXX BIT 4 = 1. DECIMAL ONLY
|
||||
# 1XXXX BIT 5 = 1. NO LOAD
|
||||
# END OF COMPONENT CODE NUMBERS
|
||||
|
||||
|
||||
# SF ROUTINE CODE NUMBER INTERPRETATION
|
||||
|
||||
# 00000 OCTAL ONLY
|
||||
# 00001 STRAIGHT FRACTIONAL
|
||||
# 00010 CDU DEGREES (XXX.XX)
|
||||
# 00011 ARITHMETIC SF
|
||||
# 00100 ARITH DP1 OUT(MULT BY 2EXP14 AT END) IN(STRAIGHT)
|
||||
# 00101 ARITH DP2 OUT(STRAIGHT) IN(SL 7 AT END)
|
||||
# 00110 Y OPTICS DEGREES (XX.XXX MAX 89.999)
|
||||
# 00111 ARITH DP3 OUT ( SL 7 AT END) IN ( STRAIGHT)
|
||||
# 01000 WHOLE HOURS IN R1, WHOLE MINUTES (MOD 60) IN R2,
|
||||
# SECONDS (MOD 60) 0XX.XX IN R3. *** ALARMS IF USED WITH OCTAL
|
||||
# 01001 MINUTES (MOD 60) IN D1D2, D3 BLANK, SECONDS (MOD 60) IN D4D5
|
||||
# LIMITS TO 59B59 IF MAG EXCEEDS THIS VALUE.
|
||||
# ALARMS IF USED WITH OCTAL ******** IN (ALARM)
|
||||
# 01010 ARITH DP4 OUT (STRAIGHT) IN (SL 3 AT END)
|
||||
# 01011 ARITH1 SF OUT(MULT BY 2EXP14 AT END) IN(STRAIGHT)
|
||||
# 01100 2 INTEGERS IN D1D2, D4D5, D3 BLANK.
|
||||
# ALARMS IF USED WITH OCTAL ******** IN (ALARM)
|
||||
# 01101 DP STRAIGHT FRACTIONAL
|
||||
# END OF SF ROUTINE CODE NUMBERS
|
||||
|
||||
|
||||
# SF CONSTANT CODE NUMBER INTERPRETATION
|
||||
|
||||
# 00000 WHOLE USE ARITH
|
||||
# 00000 DP TIME SEC (XXX.XX SEC) USE ARITHDP1
|
||||
# 00001 SPARE
|
||||
# 00010 CDU DEGREES USE CDU DEGREES
|
||||
# 00010 Y OPTICS DEGREES USE Y OPTICS DEGREES
|
||||
# 00011 DP DEGREES (90) XX.XXX DEG USE ARITHDP3
|
||||
# 00100 DP DEGREES (360) XXX.XX DEG USE ARITHDP4
|
||||
# 00101 DEGREES (180) XXX.XX DEG USE ARITH
|
||||
# 00110 WEIGHT2 (XXXXX. LBS) USE ARITH1
|
||||
# 00111 POSITION5 (XXX.XX NAUTICAL MILES)
|
||||
# USE ARITHDP3
|
||||
# 01000 POSITION4 (XXXX.X NAUTICAL MILES)
|
||||
# Page 269
|
||||
# USE ARITHDP3
|
||||
# 01001 VELOCITY2 (XXXXX. FT/SEC) USE ARITHDP4
|
||||
# 01010 VELOCITY3 (XXXX.X FT/SEC) USE ARITHDP3
|
||||
# 01011 ELEVATION DEGREES (89.999MAX) USE ARITH
|
||||
# 01100 TRIM DEGREES (XXX.XX DEG) USE ARITH
|
||||
# 01101 INERTIA (XXXXXBB. SLUG FT FT) USE ARITH
|
||||
# 01101 THRUST MOMENT (XXXXXBB.FT LBS) USE ARITH
|
||||
# 01110 VELOCITY/2VS (XXXXX. FT/SEC)USE ARITHDP4
|
||||
# 01111 POSITION6 (XXXX.X NAUT MI) USE ARITHDP3
|
||||
# 10000 DRAG ACCELERATION (XXX.XX G)USE ARITHDP2
|
||||
# 10001 POSITION8 (XXXX.X NAUT MI) USE ARITHDP3
|
||||
# 10010 POSITION9 (XXXXX. FT) USE ARITHDP3
|
||||
# 10011 VELOCITY4 (XXXX.X FT/SEC) USE ARITHDP2
|
||||
# END OF SF CONSTANT CODE NUMBERS
|
||||
|
||||
|
||||
# FOR GREATER THAN SINGLE PRECISION SCALES, PUT ADDRESS IN MAJOR PART INTO
|
||||
# NOUN TABLES.
|
||||
# OCTAL LOADS PLACE +0 INTO MAJOR PART, DATA INTO MINOR PART.
|
||||
# OCTAL DISPLAYS SHOW MINOR PART ONLY.
|
||||
# TO GET AT BOTH MAJOR AND MINOR PARTS(IN OCTAL), USE NOUN 01.
|
||||
|
||||
|
||||
# A NOUN MAY BE DECLARED :DECIMAL ONLY: BY MAKING BIT4=1 OF ITS COMPONENT
|
||||
# CODE NUMBER. IF THIS NOUN IS USED WITH ANY OCTAL DISPLAY VERB, OR IF
|
||||
# DATA IS LOADED IN OCTAL, IT ALARMS.
|
||||
|
||||
# IN LOADING AN :HOURS, MINUTES, SECONDS: NOUN, ALL 3 WORDS MUST BE
|
||||
# LOADED, OR ALARM.
|
||||
# ALARM IF AN ATTEMPT IS MADE TO LOAD :SPLIT MINUTES/SECONDS: (MMBSS).
|
||||
# THIS IS USED FOR DISPLAY ONLY.
|
||||
|
||||
# Page 270
|
||||
# THE FOLLOWING ROUTINES ARE FOR READING THE NOUN TABLES AND THE SF TABLES
|
||||
# (WHICH ARE IN A SEPARATE BANK FROM THE REST OF PINBALL). THESE READING
|
||||
# ROUTINES ARE IN THE SAME BANK AS THE TABLES. THEY ARE CALLED BY DXCH Z.
|
||||
|
||||
|
||||
# LODNNTAB LOADS NNADTEM WITH THE NNADTAB ENTRY, NNTYPTEM WITH THE
|
||||
# NNTYPTAB ENTRY. IF THE NOUN IS MIXED, IDADITEM IS LOADED WITH THE FIRST
|
||||
# IDADDTAB ENTRY, IDAD2TEM THE SECOND IDADDTAB ENTRY, IDAD3TEM THE THIRD
|
||||
# IDADDTAB ENTRY, RUTMXTEM WITH THE RUTMXTAB ENTRY. MIXBR IS SET FOR
|
||||
# MIXED OR NORMAL NOUN.
|
||||
|
||||
BANK 06
|
||||
SETLOC PINBALL3
|
||||
BANK
|
||||
|
||||
COUNT 42/NOUNS
|
||||
|
||||
LODNNTAB DXCH IDAD2TEM # SAVE RETURN INFO IN IDAD2TEM, IDAD3TEM.
|
||||
INDEX NOUNREG
|
||||
CAF NNADTAB
|
||||
TS NNADTEM
|
||||
INDEX NOUNREG
|
||||
CAF NNTYPTAB
|
||||
TS NNTYPTEM
|
||||
CS NOUNREG
|
||||
AD MIXCON
|
||||
EXTEND
|
||||
BZMF LODMIXNN # NOUN NUMBER G/E FIRST MIXED NOUN
|
||||
CAF ONE # NOUN NUMBER L/ FIRST MIXED NOUN
|
||||
TS MIXBR # NORMAL. +1 INTO MIXBR.
|
||||
TC LODNLV
|
||||
LODMIXNN CAF TWO # MIXED. +2 INTO MIXBR.
|
||||
TS MIXBR
|
||||
INDEX NOUNREG
|
||||
CAF RUTMXTAB -40D # FIRST MIXED NOUN = 40.
|
||||
TS RUTMXTEM
|
||||
CAF LOW10
|
||||
MASK NNADTEM
|
||||
TS Q # TEMP
|
||||
INDEX A
|
||||
CAF IDADDTAB
|
||||
TS IDAD1TEM # LOAD IDAD1TEM WITH FIRST IDADDTAB ENTRY
|
||||
EXTEND
|
||||
INDEX Q # LOAD IDAD2TEM WITH 2ND IDADDTAB ENTRY
|
||||
DCA IDADDTAB +1 # LOAD IDAD3TEM WITH 3RD IDADDTAB ENTRY.
|
||||
LODNLV DXCH IDAD2TEM # PUT RETURN INFO INTO A, L.
|
||||
DXCH Z
|
||||
|
||||
MIXCON = OCT50 # FIRST MIXED NOUN =40. (DEC 40)
|
||||
|
||||
# GTSFOUT LOADS SFTEMP1, SFTEMP2 WITH THE DP SFOUTAB ENTRIES.
|
||||
# Page 271
|
||||
|
||||
GTSFOUT DXCH SFTEMP1 # 2X(SFCONUM) ARRIVES IN SFTEMP1.
|
||||
EXTEND
|
||||
INDEX A
|
||||
DCA SFOUTAB
|
||||
SFCOM DXCH SFTEMP1
|
||||
DXCH Z
|
||||
|
||||
# GTSFIN LOADS SFTEMP1, SFTEMP2 WITH THE DP SFINTAB ENTRIES.
|
||||
|
||||
GTSFIN DXCH SFTEMP1 # 2X(SFCONUM) ARIVES IN SFTEMP1.
|
||||
EXTEND
|
||||
INDEX A
|
||||
DCA SFINTAB
|
||||
TCF SFCOM
|
||||
|
||||
# NN NORMAL NOUNS
|
||||
NNADTAB OCT 00000 # 00 NOT IN USE
|
||||
OCT 40000 # 01 SPECIFY MACHINE ADDRESS (FRACTIONAL)
|
||||
OCT 40000 # 02 SPECIFY MACHINE ADDRESS (WHOLE)
|
||||
OCT 40000 # 03 SPECIFY MACHINE ADDRESS (DEGREES)
|
||||
OCT 0 # 04 SPARE
|
||||
ECADR DSPTEM1 # 05 ANGULAR ERROR/DIFFERENCE
|
||||
ECADR OPTION1 # 06 OPTION CODE
|
||||
ECADR XREG # 07 ECADR OF WORD TO BE MODIFIED
|
||||
# ONES FOR BITS TO BE MODIFIED
|
||||
# 1 TO SET OR 0 TO RESET SELECTED BITS
|
||||
ECADR ALMCADR # 08 ALARM DATA
|
||||
ECADR FAILREG # 09 ALARM CODES
|
||||
OCT 77776 # 10 CHANNEL TO BE SPECIFIED
|
||||
ECADR TCSI # 11 TIG OF CSI (HRS,MIN,SEC)
|
||||
ECADR OPTIONX # 12 OPTION CODE
|
||||
# (USED BY EXTENDED VERBS ONLY)
|
||||
ECADR TCDH # 13 TIG OF CDH (HRS,MIN,SEC)
|
||||
OCT 0 # 14 SPARE
|
||||
OCT 77777 # 15 INCREMENT MACHINE ADDRESS
|
||||
ECADR DSPTEMX # 16 TIME OF EVENT (HRS,MIN,SEC)
|
||||
ECADR CPHIX # 17 ASTRONAUT TOTAL ATTITUDE
|
||||
ECADR THETAD # 18 AUTO MANEUVER BALL ANGLES
|
||||
ECADR THETAD # 19 BYPASS ATTITUDE TRIM MANEUVER
|
||||
ECADR CDUX # 20 ICDU ANGLES
|
||||
ECADR PIPAX # 21 PIPAS
|
||||
ECADR THETAD # 22 NEW ICDU ANGLES
|
||||
OCT 00000 # 23 SPARE
|
||||
ECADR DSPTEM2 +1 # 24 DELTA TIME FOR AGC CLOCK(HRS,MIN,SEC)
|
||||
ECADR DSPTEM1 # 25 CHECKLIST
|
||||
# (USED WITH PLEASE PERFORM ONLY)
|
||||
ECADR DSPTEM1 # 26 PRIO/DELAY, ADRES, BBCON
|
||||
ECADR SMODE # 27 SELF TEST ON/OFF SWITCH
|
||||
# Page 272
|
||||
OCT 0 # 28 SPARE
|
||||
ECADR DSPTEM1 # 29 XSM LAUNCH AZIMUTH
|
||||
ECADR DSPTEM1 # 30 TARGET CODES
|
||||
ECADR DSPTEM1 # 31 TIME OF LANDING SITE (HRS,MIN,SEC)
|
||||
ECADR -TPER # 32 TIME TO PERIGEE (HRS,MIN,SEC)
|
||||
ECADR TIG # 33 TIME OF IGNITION (HRS,MIN,SEC)
|
||||
ECADR DSPTEM1 # 34 TIME OF EVENT (HRS,MIN,SEC)
|
||||
ECADR TTOGO # 35 TIME TO GO TO EVENT (HRS,MIN,SEC)
|
||||
ECADR TIME2 # 36 TIME OF AGC CLOCK (HRS,MIN,SEC)
|
||||
ECADR TTPI # 37 TIG OF TPI (HRS,MIN,SEC)
|
||||
ECADR TET # 38 TIME OF STATE VECTOR
|
||||
ECADR T3TOT4 # 39 DELTA TIME TO TRANSFER (HRS,MIN,SEC)
|
||||
# END OF NNADTAB FOR NORMAL NOUNS
|
||||
|
||||
# NN MIXED NOUNS
|
||||
OCT 64000 # 40 TIME TO IGNITION/CUTOFF
|
||||
# VG
|
||||
# DELTA V (ACCUMULATED)
|
||||
OCT 02003 # 41 TARGET AZIMUTH
|
||||
# ELEVATION
|
||||
OCT 24006 # 42 APOGEE
|
||||
# PERIGEE
|
||||
# DELTA V (REQUIRED)
|
||||
OCT 24011 # 43 LATITUDE
|
||||
# LONGITUDE
|
||||
# ALTITUDE
|
||||
OCT 64014 # 44 APOGEE
|
||||
# PERIGEE
|
||||
# TFF
|
||||
OCT 64017 # 45 MARKS (VHF - OPTICS)
|
||||
# TTI OF NEXT BURN
|
||||
# MGA
|
||||
OCT 02022 # 46 AUTOPILOT CONFIGURATION
|
||||
OCT 22025 # 47 THIS VEHICLE WEIGHT
|
||||
# OTHER VEHICLE WEIGHT
|
||||
OCT 22030 # 48 PITCH TRIM
|
||||
# YAW TRIM
|
||||
OCT 24033 # 49 DELTA R
|
||||
# DELTA V
|
||||
# VHF OR OPTICS CODE
|
||||
OCT 64036 # 50 SPLASH ERROR
|
||||
# PERIGEE
|
||||
# TFF
|
||||
OCT 22041 # 51 S-BAND ANTENNA PITCH
|
||||
# YAW
|
||||
OCT 00044 # 52 CENTRAL ANGLE OF ACTIVE VEHICLE
|
||||
OCT 24047 # 53 RANGE
|
||||
# RANGE RATE
|
||||
# PHI
|
||||
# Page 273
|
||||
OCT 24052 # 54 RANGE
|
||||
# RANGE RATE
|
||||
# THETA
|
||||
OCT 24055 # 55 PERIGEE CODE
|
||||
# ELEVATION ANGLE
|
||||
# CENTRAL ANGLE
|
||||
OCT 22060 # 56 REENTRY ANGLE,
|
||||
# DELTA V
|
||||
OCT 20063 # 57 DELTA R
|
||||
OCT 24066 # 58 PERIGEE ALT
|
||||
# DELTA V TPI
|
||||
# DELTA V TPF
|
||||
OCT 24071 # 59 DELTA VELOCITY LOS
|
||||
OCT 24074 # 60 GMAX
|
||||
# VPRED
|
||||
# GAMMA EI
|
||||
OCT 24077 # 61 IMPACT LATITUDE
|
||||
# IMPACT LONGITUDE
|
||||
# HEADS UP/DOWN
|
||||
OCT 24102 # 62 INERTIAL VEL MAG (V1)
|
||||
# ALT RATE CHANGE (HDOT)
|
||||
# ALT ABOVE PAD RADIUS (H)
|
||||
OCT 64105 # 63 RANGE 297,431 TO SPLASH (RTGO)
|
||||
# PREDICTED INERT VEL (VIO)
|
||||
# TIME TO GO TO 297,431 (TTE)
|
||||
OCT 24110 # 64 DRAG ACCELERATION
|
||||
# INERTIAL VELOCITY (VI)
|
||||
# RANGE TO SPLASH
|
||||
OCT 24113 # 65 SAMPLED AGC TIME (HRS,MIN,SEC)
|
||||
# (FETCHED IN INTERRUPT)
|
||||
OCT 24116 # 66 COMMAND BANK ANGLE (BETA)
|
||||
# CROSS RANGE ERROR
|
||||
# DOWN RANGE ERROR
|
||||
OCT 24121 # 67 RANGE TO TARGET
|
||||
# PRESENT LATITUDE
|
||||
# PRESENT LONGITUDE
|
||||
OCT 24124 # 68 COMMAND BANK ANGLE (BETA)
|
||||
# INERTIAL VELOCITY (VI)
|
||||
# ALT RATE CHANGE (RDOT)
|
||||
OCT 24127 # 69 BETA
|
||||
# DL
|
||||
# VL
|
||||
OCT 04132 # 70 STAR CODE
|
||||
# LANDMARK DATA
|
||||
# HORIZON DATA
|
||||
OCT 04135 # 71 STAR CODE
|
||||
# LANDMARK
|
||||
# HORIZON
|
||||
OCT 24140 # 72 DELT ANG
|
||||
# DELT ALT
|
||||
# Page 274
|
||||
# SEARCH OPTION
|
||||
OCT 04143 # 73 ALTITUDE
|
||||
# VELOCITY
|
||||
# FLIGHT PATH ANGLE
|
||||
OCT 04146 # 74 COMMAND BANK ANGLE (BETA)
|
||||
# INERTIAL VELOCITY (VI)
|
||||
# DRAG ACCELERATION
|
||||
OCT 64151 # 75 DELTA ALTITUDE CDH
|
||||
# DELTA TIME (CDH-CSI OR TPI-CDH)
|
||||
# DELTA TIME (TPI-CDH OR TPI-NOMTPI)
|
||||
OCT 0 # 76 SPARE
|
||||
OCT 0 # 77 SPARE
|
||||
OCT 0 # 78 SPARE
|
||||
OCT 0 # 79 SPARE
|
||||
OCT 64170 # 80 TIME TO IGNITION/CUTOFF
|
||||
# VG
|
||||
# DELTA V (ACCUMULATED)
|
||||
OCT 24173 # 81 DELTA V (LV)
|
||||
OCT 24176 # 82 DELTA V (LV)
|
||||
OCT 24201 # 83 DELTA V (BODY)
|
||||
OCT 24204 # 84 DELTA V (OTHER VEHICLE)
|
||||
OCT 24207 # 85 VG (BODY)
|
||||
OCT 24212 # 86 DELTA V (LV)
|
||||
OCT 02215 # 87 MARK DATA SHAFT
|
||||
# TRUNION
|
||||
OCT 24220 # 88 HALF UNIT SUN OR PLANET VECTOR
|
||||
OCT 24223 # 89 LANDMARK LATITUDE
|
||||
# LONGITUDE/2
|
||||
# ALTITUDE
|
||||
OCT 24226 # 90 Y
|
||||
# Y DOT
|
||||
# PSI
|
||||
OCT 02231 # 91 OCDU ANGLES SHAFT
|
||||
# TRUNION
|
||||
OCT 02234 # 92 NEW OPTICS ANGLES SHAFT
|
||||
# TRUNION
|
||||
OCT 04237 # 93 DELTA GYRO ANGLES
|
||||
OCT 02242 # 94 NEW OPTICS ANGLES SHAFT
|
||||
# TRUNNION
|
||||
OCT 04245 # 95 PREFERRED ATTITUDE ICDU ANGLES
|
||||
OCT 04250 # 96 +X-AXIS ATTITUDE ICDU ANGLES
|
||||
OCT 04253 # 97 SYSTEM TEST INPUTS
|
||||
OCT 04256 # 98 SYSTEM TEST RESULTS
|
||||
OCT 24261 # 99 RMS IN POSITION
|
||||
# RMS IN VELOCITY
|
||||
# RMS OPTION
|
||||
# END OF NNADTAB FOR MIXED NOUNS
|
||||
|
||||
# NN NORMAL NOUNS
|
||||
# Page 275
|
||||
NNTYPTAB OCT 00000 # 00 NOT IN USE
|
||||
OCT 04040 # 01 3COMP FRACTIONAL
|
||||
OCT 04140 # 02 3COMP WHOLE
|
||||
OCT 04102 # 03 3COMP CDU DEGREES
|
||||
OCT 0 # 04 SPARE
|
||||
OCT 00504 # 05 1COMP DPDEG(360)
|
||||
OCT 02000 # 06 2COMP OCTAL ONLY
|
||||
OCT 04000 # 07 3COMP OCTAL ONLY
|
||||
OCT 04000 # 08 3COMP OCTAL ONLY
|
||||
OCT 04000 # 09 3COMP OCTAL ONLY
|
||||
OCT 00000 # 10 1COMP OCTAL ONLY
|
||||
OCT 24400 # 11 3COMP HMS (DEC ONLY)
|
||||
OCT 02000 # 12 2COMP OCTAL ONLY
|
||||
OCT 24400 # 13 3COMP HMS (DEC ONLY)
|
||||
OCT 0 # 14 SPARE
|
||||
OCT 00000 # 15 1COMP OCTAL ONLY
|
||||
OCT 24400 # 16 3COMP HMS (DEC ONLY)
|
||||
OCT 04102 # 17 3COMP CDU DEG
|
||||
OCT 04102 # 18 3COMP CDU DEG
|
||||
OCT 04102 # 19 3COMP CDU DEG
|
||||
OCT 04102 # 20 3COMP CDU DEGREES
|
||||
OCT 04140 # 21 3COMP WHOLE
|
||||
OCT 04102 # 22 3COMP CDU DEGREES
|
||||
OCT 00000 # 23 SPARE
|
||||
OCT 24400 # 24 3COMP HMS (DEC ONLY)
|
||||
OCT 04140 # 25 3COMP WHOLE
|
||||
OCT 04000 # 26 3COMP OCTAL ONLY
|
||||
OCT 00140 # 27 1COMP WHOLE
|
||||
OCT 00000 # 28 SPARE
|
||||
OCT 20102 # 29 1COMP CDU DEG (DEC ONLY)
|
||||
OCT 04140 # 30 3COMP WHOLE
|
||||
OCT 24400 # 31 3COMP HMS (DEC ONLY)
|
||||
OCT 24400 # 32 3COMP HMS (DEC ONLY)
|
||||
OCT 24400 # 33 3COMP HMS (DEC ONLY)
|
||||
OCT 24400 # 34 3COMP HMS (DEC ONLY)
|
||||
OCT 24400 # 35 3COMP HMS (DEC ONLY)
|
||||
OCT 24400 # 36 3COMP HMS (DEC ONLY)
|
||||
OCT 24400 # 37 3COMP HMS (DEC ONLY)
|
||||
OCT 24400 # 38 3COMP HMS (DEC ONLY)
|
||||
OCT 24400 # 39 3COMP HMS (DEC ONLY)
|
||||
# END OF NNTYPTAB FOR NORMAL NOUNS
|
||||
|
||||
# NN MIXED NOUNS
|
||||
|
||||
OCT 24500 # 40 3COMP MIN/SEC, VEL3, VEL3
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 00542 # 41 2COMP CDU DEG, ELEV DEG
|
||||
OCT 24410 # 42 3COMP POS4, POS4, VEL3
|
||||
# (DEC ONLY)
|
||||
OCT 20204 # 43 3COMP DPDEG(360), DPDEG(360), POS4
|
||||
# Page 276
|
||||
# (DEC ONLY)
|
||||
OCT 00410 # 44 3COMP POS4, POS4, MIN/SEC
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 10000 # 45 3COMP 2INT, MIN/SEC, DPDEG(360)
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 00000 # 46 2COMP OCTAL ONLY FOR EACH
|
||||
OCT 00306 # 47 2COMP WEIGHT2 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 00614 # 48 2COMP TRIM DEG, TRIM DEG
|
||||
# (DEC ONLY)
|
||||
OCT 00510 # 49 3COMP POS4, VEL3, WHOLE
|
||||
# (DEC ONLY)
|
||||
OCT 00417 # 50 3COMP POS6, POS4, MIN/SEC
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 00204 # 51 2COMP DPDEG(360), DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 00004 # 52 1COMP DPDEG(360)
|
||||
OCT 10507 # 53 3COMP POS5, VEL3, DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 10507 # 54 3COMP POS5, VEL3, DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 10200 # 55 3COMP WHOLE, DPDEG(360), DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 00444 # 56 2COMP DPDEG(360), VEL2
|
||||
# (DEC ONLY)
|
||||
OCT 00010 # 57 1COMP POS4
|
||||
# (DEC ONLY)
|
||||
OCT 24510 # 58 3COMP POS4, VEL3, VEL3
|
||||
# (DEC ONLY)
|
||||
OCT 24512 # 59 3COMP VEL3 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 10440 # 60 3COMP WHOLE, VEL2, DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 00204 # 61 3COMP DPDEG(360), DPDEG(360), WHOLE
|
||||
# (DEC ONLY)
|
||||
OCT 20451 # 62 3COMP VEL2, VEL2, POS4
|
||||
# (DEC ONLY)
|
||||
OCT 00457 # 63 3COMP POS6, VEL2, MIN/SEC
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 36460 # 64 3COMP DRAG ACCEL, VEL2, POS6
|
||||
# (DEC ONLY)
|
||||
OCT 00000 # 65 3COMP HMS (DEC ONLY)
|
||||
OCT 37044 # 66 3COMP DPDEG(360), POS8, POS6
|
||||
# (DEC ONLY)
|
||||
OCT 10217 # 67 3COMP POS6, DPDEG(360), DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 34444 # 68 3COMP DPDEG(360), VEL2, VEL/2VS
|
||||
# (DEC ONLY)
|
||||
OCT 35004 # 69 3COMP DPDEG(360), DRAG ACCEL,VEL/2VS
|
||||
# (DEC ONLY)
|
||||
# Page 277
|
||||
OCT 00000 # 70 3COMP OCTAL ONLY FOR EACH
|
||||
OCT 0 # 71 3COMP OCTAL ONLY FOR EACH
|
||||
OCT 00404 # 72 3COMP DPDEG(360), POS4, WHOLE
|
||||
# (DEC ONLY)
|
||||
OCT 10450 # 73 3COMP POS4, VEL2, DPDEG(360)
|
||||
OCT 40444 # 74 3COMP DPDEG(360), VEL2, DRAG ACCEL
|
||||
OCT 00010 # 75 3COMP POS4, MIN/SEC, MIN/SEC
|
||||
# # (NO LOAD, DEC ONLY)
|
||||
OCT 0 # 76 SPARE
|
||||
OCT 0 # 77 SPARE
|
||||
OCT 0 # 78 SPARE
|
||||
OCT 0 # 79 SPARE
|
||||
OCT 22440 # 80 3COMP MIN/SEC, VEL2, VEL2
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 24512 # 81 3COMP VEL3 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 24512 # 82 3COMP VEL3 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 24512 # 83 3COMP VEL3 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 24512 # 84 3COMP VEL3 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 24512 # 85 3COMP VEL3 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 22451 # 86 3COMP VEL2 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 00102 # 87 2COMP CDU DEG, Y OPTICS DEG
|
||||
OCT 0 # 88 3COMP FRAC FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 16143 # 89 3COMP DPDEG(90), DPDEG(90), POS5
|
||||
# (DEC ONLY)
|
||||
OCT 10507 # 90 3COMP POS5, VEL3, DEPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 00102 # 91 2COMP CDUDEG, YOPTICS DEG
|
||||
OCT 00102 # 92 2COMP CDUDEG, YOPTICS DEG
|
||||
OCT 06143 # 93 3COMP DPDEG(90) FOR EACH
|
||||
OCT 00102 # 94 2COMP CDUDEG, YOPTICS DEG
|
||||
OCT 04102 # 95 3COMP CDU DEG FOR EACH
|
||||
OCT 04102 # 96 3COMP CDU DEG FOR EACH
|
||||
OCT 00000 # 97 3COMP WHOLE FOR EACH
|
||||
OCT 00000 # 98 3COMP WHOLE, FRAC, WHOLE
|
||||
OCT 01162 # 99 3COMP POS9, VEL4, WHOLE
|
||||
# (DEC ONLY)
|
||||
# END OF NNTYPTAB FOR MIXED NOUNS
|
||||
|
||||
|
||||
SFINTAB OCT 00006 # WHOLE, DP TIME (SEC)
|
||||
OCT 03240
|
||||
OCT 00000 # SPARE
|
||||
OCT 00000
|
||||
# Page 278
|
||||
OCT 00000 # CDU DEGREES, Y OPTICS DEGREES
|
||||
OCT 00000 # (SFCONS IN DEGINSF, OPTDEGIN)
|
||||
OCT 10707 # DP DEGREES (90)
|
||||
OCT 03435 # UPPED BY 1
|
||||
OCT 13070 # DP DEGREES (360)(POINT BETWN BITS 11-12)
|
||||
OCT 34345 # UPPED BY 1
|
||||
OCT 00005 # DEGREES (180)
|
||||
OCT 21616
|
||||
OCT 26113 # WEIGHT2
|
||||
OCT 31713
|
||||
OCT 00070 # POSITION5
|
||||
OCT 20460
|
||||
OCT 01065 # POSITION4
|
||||
OCT 05740
|
||||
OCT 11414 # VELOCITY2 (POINT BETWN BITS 11-12)
|
||||
OCT 31463
|
||||
OCT 07475 # VELOCITY3
|
||||
OCT 16051
|
||||
OCT 00001 # ELEVATION DEGREES
|
||||
OCT 03434
|
||||
OCT 00002 # TRIM DEGREES
|
||||
OCT 22245
|
||||
OCT 00014 # INERTIA, THRUST MOMENT
|
||||
OCT 35607
|
||||
OCT 07606 # VELOCITY/2VS
|
||||
OCT 06300
|
||||
OCT 16631 # POSITION 6
|
||||
OCT 11307
|
||||
OCT 12000 # DRAG ACCELERATION (POINT BETWN BITS 7-8)
|
||||
OCT 00000
|
||||
OCT 27176 # POSITION 8
|
||||
OCT 14235
|
||||
2DEC 30480 B-19 # POSITION 9
|
||||
|
||||
2DEC 30.48 B-7 # VELOCITY4
|
||||
|
||||
# END OF SFINTAB
|
||||
|
||||
|
||||
SFOUTAB OCT 05174 # WHOLE, DP TIME (SEC)
|
||||
OCT 13261
|
||||
OCT 00000 # SPARE
|
||||
OCT 00000
|
||||
OCT 00000 # CDU DEGREES, Y OPTICS DEGREES
|
||||
OCT 00000 # (SFCONS IN DEGOUTSF, OPTDEGOUT)
|
||||
OCT 00714 # DP DEGREES (90) (POINT BETWN BITS 7-8)
|
||||
OCT 31463
|
||||
OCT 13412 # DP DEGREES (360)
|
||||
OCT 07534
|
||||
OCT 05605 # DEGREES (180)
|
||||
# Page 279
|
||||
OCT 03656
|
||||
OCT 00001 # WEIGHT2
|
||||
OCT 16170
|
||||
OCT 00441 # POSITION5
|
||||
OCT 34306
|
||||
OCT 07176 # POSITION4
|
||||
OCT 21603
|
||||
OCT 15340 # VELOCITY2
|
||||
OCT 15340
|
||||
OCT 01031 # VELOCITY3 (POINT BETWN BITS 7-8)
|
||||
OCT 21032
|
||||
OCT 34631 # ELEVATION DEGREES
|
||||
OCT 23146
|
||||
OCT 14340 # TRIM DEGREES
|
||||
OCT 24145
|
||||
OCT 02363 # INERTIA, THRUST MOMENT
|
||||
OCT 03721
|
||||
OCT 20373 # VELOCITY/ZVS
|
||||
OCT 02122
|
||||
OCT 00424 # POSITION 6 (POINT BETWN BITS 7-8)
|
||||
OCT 30446
|
||||
OCT 00631 # DRAG ACCELERATION
|
||||
OCT 23146
|
||||
OCT 00260 # POSITION 8
|
||||
OCT 06213
|
||||
2DEC 17.2010499 B-7 # POSITION 9
|
||||
|
||||
2DEC .032808399 # VELOCITY4
|
||||
|
||||
# END OF SFOUTAB
|
||||
|
||||
|
||||
# NN SF CONSTANT SF ROUTINE
|
||||
|
||||
IDADDTAB ECADR TTOGO # 40 MIN/SEC M/S
|
||||
ECADR VGDISP # 40 VEL3 DP3
|
||||
ECADR DVTOTAL # 40 VEL3 DP3
|
||||
ECADR DSPTEM1 # 41 CDU DEG CDU
|
||||
ECADR DSPTEM1 +1 # 41 ELEV DEG ARTH
|
||||
OCT 0 # 41 SPARE COMPONENT
|
||||
ECADR HAPO # 42 POS4 DP3
|
||||
ECADR HPER # 42 POS4 DP3
|
||||
ECADR VGDISP # 42 VEL3 DP3
|
||||
ECADR LAT # 43 DPDEG(360) DP4
|
||||
ECADR LONG # 43 DPDEG(360) DP4
|
||||
ECADR ALT # 43 POS4 DP3
|
||||
ECADR HAPOX # 44 POS4 DP3
|
||||
ECADR HPERX # 44 POS4 DP3
|
||||
ECADR TFF # 44 MIN/SEC M/S
|
||||
ECADR VHFCNT # 45 2INT 2INT
|
||||
# Page 280
|
||||
ECADR TTOGO # 45 MIN/SEC M/S
|
||||
ECADR +MGA # 45 DPDEG(360) DP4
|
||||
ECADR DAPDATR1 # 46 OCTAL ONLY OCT
|
||||
ECADR DAPDATR2 # 46 OCATAL ONLY OCT
|
||||
OCT 0 # 46 SPARE COMPONENT
|
||||
ECADR CSMMASS # 47 WEIGHT2 ARTH1
|
||||
ECADR LEMMASS # 47 WEIGHT2 ARTH1
|
||||
OCT 00000 # 47 SPARE COMPONENT
|
||||
ECADR PACTOFF # 48 TRIM DEG ARTH
|
||||
ECADR YACTOFF # 48 TRIM DEG ARTH
|
||||
OCT 00000 # 48 SPARE COMPONENT
|
||||
ECADR N49DISP # 49 POS4 DP3
|
||||
ECADR N49DISP +2 # 49 VEL3 DP3
|
||||
ECADR N49DISP +4 # 49 WHOLE ARTH
|
||||
ECADR RSP-RREC # 50 POS6 DP3
|
||||
ECADR HPERX # 50 POS4 DP3
|
||||
ECADR TFF # 50 MIN/SEC M/S
|
||||
ECADR RHOSB # 51 DPDEG(360)
|
||||
ECADR GAMMASB # 51 DPDEG(360) DP4
|
||||
OCT 0 # 51 SPARE COMPONENT
|
||||
ECADR ACTCENT # 52 DPDEG(360) DP4
|
||||
OCT 00000 # 52 SPARE COMPONENT
|
||||
OCT 00000 # 52 SPARE COMPONENT
|
||||
ECADR RANGE # 53 POS5 DP1
|
||||
ECADR RRATE # 53 VEL3 DP3
|
||||
ECADR RTHETA # 53 DPDEG(360) DP4
|
||||
ECADR RANGE # 54 POS5 DP1
|
||||
ECADR RRATE # 54 VEL3 DP3
|
||||
ECADR RTHETA # 54 DPDEG(360) DP4
|
||||
ECADR NN1 # 55 WHOLE ARTH
|
||||
ECADR ELEV # 55 DPDEG(360) DP4
|
||||
ECADR CENTANG # 55 DPDEG(360) DP4
|
||||
ECADR RTEGAM2D # 56 DPDEG(360) DP4
|
||||
ECADR RTEDVD # 56 VEL2 DP4
|
||||
OCT 0 # 56 SPARE COMPONENT
|
||||
ECADR DELTAR # 57 POS4 DP3
|
||||
OCT 0 # 57 SPARE COMPONENT
|
||||
OCT 0 # 57 SPARE COMPONENT
|
||||
ECADR POSTTPI # 58 POS4 DP3
|
||||
ECADR DELVTPI # 58 VEL3 DP3
|
||||
ECADR DELVTPF # 58 VEL3 DP3
|
||||
ECADR DVLOS # 59 VEL3 DP3
|
||||
ECADR DVLOS +2 # 59 VEL3 DP3
|
||||
ECADR DVLOS +4 # 59 VEL3 DP3
|
||||
ECADR GMAX # 60 WHOLE ARTH
|
||||
ECADR VPRED # 60 VEL2 DP4
|
||||
ECADR GAMMAEI # 60 DPDEG(360) DP4
|
||||
ECADR LAT(SPL) # 61 DPDEG(360) DP4
|
||||
ECADR LNG(SPL) # 61 DPDEG(360) DP4
|
||||
ECADR HEADSUP # 61 WHOLE ARTH
|
||||
# Page 281
|
||||
ECADR VMAGI # 62 VEL2 DP4
|
||||
ECADR HDOT # 62 VEL2 DP4
|
||||
ECADR ALTI # 62 POS4 DP3
|
||||
ECADR RTGO # 63 POS6 DP3
|
||||
ECADR VIO # 63 VEL2 DP4
|
||||
ECADR TTE # 63 MIN/SEC M/S
|
||||
ECADR D # 64 DRAG ACCEL DP2
|
||||
ECADR VMAGI # 64 VEL2 DP4
|
||||
ECADR RTGON64 # 64 POS6 DP3
|
||||
ECADR SAMPTIME # 65 HMS (MIXED ONLY TO KEEP CODE 65) HMS
|
||||
ECADR SAMPTIME # 65 HMS HMS
|
||||
ECADR SAMPTIME # 65 HMS HMS
|
||||
ECADR ROLLC # 66 DPDEG(360) DP4
|
||||
ECADR XRNGERR # 66 POS8 DP3
|
||||
ECADR DNRNGERR # 66 POS6 DP3
|
||||
ECADR RTGON67 # 67 POS6 DP3
|
||||
ECADR LAT # 67 DPDEG(360) DP4
|
||||
ECADR LONG # 67 DPDEG(360) DP4
|
||||
ECADR ROLLC # 68 DPDEG(360) DP4
|
||||
ECADR VMAGI # 68 VEL2 DP4
|
||||
ECADR RDOT # 68 VEL/2VS DP4
|
||||
ECADR ROLLC # 69 DPDEG(360) DP4
|
||||
ECADR Q7 # 69 DRAG ACCEL DP2
|
||||
ECADR VL # 69 VEL/2VS DP4
|
||||
ECADR STARCODE # 70 OCTAL ONLY OCT
|
||||
ECADR LANDMARK # 70 OCTAL ONLY OCT
|
||||
ECADR HORIZON # 70 OCTAL ONLY OCT
|
||||
ECADR STARCODE # 71 OCTAL ONLY OCT
|
||||
ECADR LANDMARK # 71 OCTAL ONLY OCT
|
||||
ECADR HORIZON # 71 OCTAL ONLY OCT
|
||||
ECADR THETZERO # 72 DPDEG(360) DP4
|
||||
ECADR DELHITE # 72 POS4 DP3
|
||||
ECADR OPTION2 # 72 WHOLE ARTH
|
||||
ECADR P21ALT # 73 POS4 DP3
|
||||
ECADR P21VEL # 73 VEL2 DP4
|
||||
ECADR P21GAM # 73 DPDEG(360) DP4
|
||||
ECADR ROLLC # 74 DPDEG(360) DP4
|
||||
ECADR VMAGI # 74 VEL2 DP4
|
||||
ECADR D # 74 DRAG ACCEL DP2
|
||||
ECADR DIFFALT # 75 POS4 DP3
|
||||
ECADR T1TOT2 # 75 MIN/SEC M/S
|
||||
ECADR T2TOT3 # 75 MIN/SEC M/S
|
||||
OCT 0 # 76 SPARE
|
||||
OCT 0 # 76 SPARE
|
||||
OCT 0 # 76 SPARE
|
||||
OCT 0 # 77 SPARE
|
||||
OCT 0 # 77 SPARE
|
||||
OCT 0 # 77 SPARE
|
||||
OCT 0 # 78 SPARE
|
||||
OCT 0 # 78 SPARE
|
||||
# Page 282
|
||||
OCT 0 # 78 SPARE
|
||||
OCT 0 # 79 SPARE
|
||||
OCT 0 # 79 SPARE
|
||||
OCT 0 # 79 SPARE
|
||||
ECADR TTOGO # 80 MIN/SEC M/S
|
||||
ECADR VGDISP # 80 VEL2 DP4
|
||||
ECADR DVTOTAL # 80 VEL2 DP4
|
||||
ECADR DELVLVC # 81 VEL3 DP3
|
||||
ECADR DELVLVC +2 # 81 VEL3 DP3
|
||||
ECADR DELVLVC +4 # 81 VEL3 DP3
|
||||
ECADR DELVLVC # 82 VEL3 DP3
|
||||
ECADR DELVLVC +2 # 82 VEL3 DP3
|
||||
ECADR DELVLVC +4 # 82 VEL3 DP3
|
||||
ECADR DELVIMU # 83 VEL3 DP3
|
||||
ECADR DELVIMU +2 # 83 VEL3 DP3
|
||||
ECADR DELVIMU +4 # 83 VEL3 DP3
|
||||
ECADR DELVOV # 84 VEL3 DP3
|
||||
ECADR DELVOV +2 # 84 VEL3 DP3
|
||||
ECADR DELVOV +4 # 84 VEL3 DP3
|
||||
ECADR VGBODY # 85 VEL3 DP3
|
||||
ECADR VGBODY +2 # 85 VEL3 DP3
|
||||
ECADR VGBODY +4 # 85 VEL3 DP3
|
||||
ECADR DELVLVC # 86 VEL2 DP4
|
||||
ECADR DELVLVC +2 # 86 VEL2 DP4
|
||||
ECADR DELVLVC +4 # 86 VEL2 DP4
|
||||
ECADR MRKBUF1 +3 # 87 CDU DEG CDU
|
||||
ECADR MRKBUF1 +5 # 87 Y OPTICS DEG YOPT
|
||||
OCT 0 # 87 SPARE COMPONENT
|
||||
ECADR STARSAV3 # 88 DPFRAC DPFRAC
|
||||
ECADR STARSAV3 +2 # 88 DPFRAC DPFRAC
|
||||
ECADR STARSAV3 +4 # 88 DPFRAC DPFRAC
|
||||
ECADR LANDLAT # 89 DPDEG(90) DP3
|
||||
ECADR LANDLONG # 89 DPDEG(90) DP3
|
||||
ECADR LANDALT # 89 POS5 DP1
|
||||
ECADR RANGE # 90 POS5 DP1
|
||||
ECADR RRATE # 90 VEL3 DP3
|
||||
ECADR RTHETA # 90 DPDEG(360) DP4
|
||||
ECADR CDUS # 91 CDU DEG CDU
|
||||
ECADR CDUT # 91 Y OPTICS DEG YOPT
|
||||
OCT 0 # 91 SPARE COMPONENT
|
||||
ECADR SAC # 92 CDU DEG CDU
|
||||
ECADR PAC # 92 Y OPTICS DEG YOPT
|
||||
OCT 0 # 92 SPARE COMPONENT
|
||||
ECADR OGC # 93 DPDEG(90) DP3
|
||||
ECADR OGC +2 # 93 DPDEG(90) DP3
|
||||
ECADR OGC +4 # 93 DPDEG(90) DP3
|
||||
ECADR MRKBUF1 +3 # 94 CDU DEG CDU
|
||||
ECADR MRKBUF1 +5 # 94 Y OPTICS DEG YOPT
|
||||
OCT 00000 # 94 SPARE
|
||||
ECADR PRAXIS # 95 CDU DEG CDU
|
||||
# Page 283
|
||||
ECADR PRAXIS +1 # 95 CDU DEG CDU
|
||||
ECADR PRAXIS +2 # 95 CDU DEG CDU
|
||||
ECADR CPHIX # 96 CDU DEG CDU
|
||||
ECADR CPHIX +1 # 96 CDU DEG CDU
|
||||
ECADR CPHIX +2 # 96 CDU DEG CDU
|
||||
ECADR DSPTEM1 # 97 WHOLE ARTH
|
||||
ECADR DSPTEM1 +1 # 97 WHOLE ARTH
|
||||
ECADR DSPTEM1 +2 # 97 WHOLE ARTH
|
||||
ECADR DSPTEM2 # 98 WHOLE ARTH
|
||||
ECADR DSPTEM2 +1 # 98 FRAC FRAC
|
||||
ECADR DSPTEM2 +2 # 98 WHOLE ARTH
|
||||
ECADR WWPOS # 99 POS9 DP3
|
||||
ECADR WWVEL # 99 VEL4 DP2
|
||||
ECADR WWOPT # 99 WHOLE ARTH
|
||||
# END OF IDADDTAB
|
||||
|
||||
|
||||
# NN SF ROUTINES
|
||||
|
||||
RUTMXTAB OCT 16351 # 40 M/S, DP3, DP3
|
||||
OCT 00142 # 41 CDU, ARTH
|
||||
OCT 16347 # 42 DP3, DP3, DP3
|
||||
OCT 16512 # 43 DP4, DP4, DP3
|
||||
OCT 22347 # 44 DP3, DP3, M/S
|
||||
OCT 24454 # 45 2INT, M/S, DP4
|
||||
OCT 00000 # 46 OCT, OCT
|
||||
OCT 00553 # 47 ARITH1, ARITH1
|
||||
OCT 00143 # 48 ARTH, ARTH
|
||||
OCT 06347 # 49 DP3, DP3, ARTH
|
||||
OCT 22347 # 50 DP3, DP3, M/S
|
||||
OCT 00512 # 51 DP4, DP4
|
||||
OCT 00012 # 52 DP4
|
||||
OCT 24344 # 53 DP1, DP3, DP4
|
||||
OCT 24344 # 54 DP1, DP3, DP4
|
||||
OCT 24503 # 55 ARTH, DP4 , DP4
|
||||
OCT 00512 # 56 DP4, DP4
|
||||
OCT 00007 # 57 DP3
|
||||
OCT 16347 # 58 DP3, DP3, DP3
|
||||
OCT 16347 # 59 DP3, DP3, DP3
|
||||
OCT 24503 # 60 ARTH, DP4, DP4
|
||||
OCT 06512 # 61 DP4, DP4, ARTH
|
||||
OCT 16512 # 62 DP4, DP4, DP3
|
||||
OCT 22507 # 63 DP3, DP4, M/S
|
||||
OCT 16505 # 64 DP2, DP4, DP3
|
||||
OCT 20410 # 65 HMS, HMS, HMS
|
||||
OCT 16352 # 66 DP4, DP3, DP3
|
||||
OCT 24507 # 67 DP3, DP4, DP4
|
||||
OCT 24512 # 68 DP4, DP4, DP4
|
||||
OCT 24252 # 69 DP4, DP2, DP4
|
||||
OCT 00000 # 70 OCT, OCT, OCT
|
||||
# Page 284
|
||||
OCT 0 # 71 OCT, OCT, OCT
|
||||
OCT 06352 # 72 DP4, DP3, ARTH
|
||||
OCT 24507 # 73 DPR, DP4, DP4
|
||||
OCT 12512 # 74 DP4, DP4, DP2
|
||||
OCT 22447 # 75 DP3, M/S, M/S
|
||||
OCT 0 # 76 SPARE
|
||||
OCT 0 # 77 SPARE
|
||||
OCT 0 # 78 SPARE
|
||||
OCT 0 # 79 SPARE
|
||||
OCT 24511 # 80 M/S, DP4, DP4
|
||||
OCT 16347 # 81 DP3, DP3, DP3
|
||||
OCT 16347 # 82 DP3, DP3, DP3
|
||||
OCT 16347 # 83 DP3, DP3, DP3
|
||||
OCT 16347 # 84 DP3, DP3, DP3
|
||||
OCT 16347 # 85 DP3, DP3, DP3
|
||||
OCT 24512 # 86 DP4, DP4, DP4
|
||||
OCT 00302 # 87 CDU, YOPT
|
||||
OCT 32655 # 88 DPFRAC FOR EACH
|
||||
OCT 10347 # 89 DP3, DP3, DP1
|
||||
OCT 24344 # 90 DP1, DP3, DP4
|
||||
OCT 00302 # 91 CDU, YOPT
|
||||
OCT 00302 # 92 CDU, YOPT
|
||||
OCT 16347 # 93 DP3, DP3, DP3
|
||||
OCT 00302 # 94 CDU, YOPT
|
||||
OCT 04102 # 95 CDU, CDU, CDU
|
||||
OCT 04102 # 96 CDU, CDU, CDU
|
||||
OCT 06143 # 97 ARTH, ARTH, ARTH
|
||||
OCT 06043 # 98 ARTH, FRAC, ARTH
|
||||
OCT 06247 # 99 DP3, DP2, ARTH
|
||||
# END OF RUTMXTAB
|
||||
|
||||
|
||||
SBANK= LOWSUPER
|
386
Comanche055/PLANETARY_INERTIAL_ORIENTATION.agc
Normal file
386
Comanche055/PLANETARY_INERTIAL_ORIENTATION.agc
Normal file
@ -0,0 +1,386 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: PLANETARY_INERTIAL_ORIENTATION.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: 1243-1251
|
||||
# Mod history: 2009-05-14 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 1243
|
||||
# PLANETARY INERTIAL ORIENTATION
|
||||
|
||||
# ..... RP-TO-R SUBROUTINE .....
|
||||
# SUBROUTINE TO CONVERT RP (VECTOR IN PLANETARY COORDINATE SYSTEM,EITHER
|
||||
# EARTH-FIXED OR MOON-FIXED) TO R (SAME VECTOR IN BASIC REF. SYSTEM)
|
||||
|
||||
# R=MT(T)*(RP+LPXRP) MT= M MATRIX TRANSPOSE
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 RP-TO-R
|
||||
|
||||
# SUBROUTINES USED
|
||||
# EARTHMX,MOONMX,EARTHL
|
||||
|
||||
# ITEMS AVAILABLE FROM LAUNCH DATA
|
||||
# 504LM= THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL,EXPRESSED
|
||||
# IN THE MOON-FIXED COORD. SYSTEM RADIANS B0
|
||||
# ITEMS NECESSARY FOR SUBR. USED (SEE DESCRIPTION OF SUBR.)
|
||||
|
||||
# INPUT
|
||||
# MPAC= 0 FOR EARTH,NON-ZERO FOR MOON
|
||||
# 0-5D= RP VECTOR
|
||||
# 6-7D= TIME
|
||||
|
||||
# OUTPUT
|
||||
# MPAC= R VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON
|
||||
|
||||
SETLOC PLANTIN
|
||||
BANK
|
||||
|
||||
COUNT* $$/LUROT
|
||||
|
||||
RP-TO-R STQ BHIZ
|
||||
RPREXIT
|
||||
RPTORA
|
||||
CALL # COMPUTE M MATRIX FOR MOON
|
||||
MOONMX # LP=LM FOR MOON RADIANS B0
|
||||
VLOAD
|
||||
504LM
|
||||
RPTORB VXV VAD
|
||||
504RPR
|
||||
504RPR
|
||||
VXM GOTO
|
||||
MMATRIX # MPAC=R=MT(T)*(RP+LPXRP)
|
||||
RPRPXXXX # RESET PUSHLOC TO 0 BEFORE EXITING
|
||||
RPTORA CALL # EARTH COMPUTATIONS
|
||||
EARTHMX # M MATRIX B-1
|
||||
CALL
|
||||
EARTHL # L VECTOR RADIANS B0
|
||||
MXV VSL1 # LP=M(T)*L RAD B-0
|
||||
MMATRIX
|
||||
# Page 1244
|
||||
GOTO
|
||||
RPTORB
|
||||
|
||||
# Page 1245
|
||||
# ..... R-TO-RP SUBROUTINE .....
|
||||
# SUBROUTINE TO CONVERT R (VECTOR IN REFERENCE COORD. SYSTEM) TO RP
|
||||
# (VECTOR IN PLANETARY COORD SYSTEM) EITHER EARTH-FIXED OR MOON-FIXED
|
||||
|
||||
# RP = M(T) * (R - L X R)
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 R-TO-RP
|
||||
|
||||
# SUBROUTINES USED
|
||||
# EARTHMX,MOONMX,EARTHL
|
||||
|
||||
# INPUT
|
||||
# MPAC= 0 FOR EARTH,NON-ZERO FOR MOON
|
||||
# 0-5D= R VECTOR
|
||||
# 6-7D= TIME
|
||||
|
||||
# ITEMS AVAILABLE FROM LAUNCH DATA
|
||||
# 504LM= THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL,EXPRESSED
|
||||
# IN THE MOON-FIXED COORD. SYSTEM RADIANS B0
|
||||
# ITEMS NECESSARY FOR SUBROUTINES USED (SEE DESCRIPTION OF SUBR.)
|
||||
|
||||
# OUTPUT
|
||||
# MPAC=RP VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON
|
||||
|
||||
R-TO-RP STQ BHIZ
|
||||
RPREXIT
|
||||
RTORPA
|
||||
CALL
|
||||
MOONMX
|
||||
VLOAD VXM
|
||||
504LM # LP=LM
|
||||
MMATRIX
|
||||
VSL1 # L=MT(T)*LP RADIANS B0
|
||||
RTORPB VXV BVSU
|
||||
504RPR
|
||||
504RPR
|
||||
MXV # M(T)*(R-LXR) B-2
|
||||
MMATRIX
|
||||
RPRPXXXX VSL1 SETPD
|
||||
0D
|
||||
GOTO
|
||||
RPREXIT
|
||||
RTORPA CALL # EARTH COMPUTATIONS
|
||||
EARTHMX
|
||||
CALL
|
||||
EARTHL
|
||||
GOTO # MPAC=L=(-AX,-AY,0) RAD B-0
|
||||
RTORPB
|
||||
|
||||
# Page 1246
|
||||
# ..... MOONMX SUBROUTINE .....
|
||||
# SUBROUTINE TO COMPUTE THE TRANSFORMATION MATRIX M FOR THE MOON
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 MOONMX
|
||||
|
||||
# SUBROUTINES USED
|
||||
# NEWANGLE
|
||||
|
||||
# INPUT
|
||||
# 6-7D= TIME
|
||||
# ITEMS AVAILABLE FROM LAUNCH DATA
|
||||
# BSUBO,BDOT
|
||||
# TIMSUBO,NODIO,NODDOT,FSUBO,FDOT
|
||||
# COSI= COS(I) B-1
|
||||
# SINI= SIN(I) B-1
|
||||
# I IS THE ANGLE BETWEEN THE MEAN LUNAR EQUATORIAL PLANE AND THE
|
||||
# PLANE OF THE ECLIPTIC (1 DEGREE 32.1 MINUTES)
|
||||
|
||||
# OUTPUT
|
||||
# MMATRIX= 3X3 M MATRIX B-1 (STORED IN VAC AREA)
|
||||
|
||||
MOONMX STQ SETPD
|
||||
EARTHMXX
|
||||
8D
|
||||
AXT,1 # B REQUIRES SL 0, SL 5 IN NEWANGLE
|
||||
5
|
||||
DLOAD PDDL # PD 10D 8-9D=BSUBO
|
||||
BSUBO # 10-11D= BDOT
|
||||
BDOT
|
||||
PUSH CALL # PD 12D
|
||||
NEWANGLE # EXIT WITH PD 8D AND MPAC= B REVS B0
|
||||
PUSH COS # PD 10D
|
||||
STODL COB # PD 8D COS(B) B-1
|
||||
SIN # SIN(B) B-1
|
||||
STODL SOB # SETUP INPUT FOR NEWANGLE
|
||||
FSUBO # 8-9D=FSUBO
|
||||
PDDL PUSH # PD 10D THEN 12D 10-11D=FDOT
|
||||
FDOT
|
||||
AXT,1 CALL # F REQUIRES SL 1, SL 6 IN NEWANGLE
|
||||
4
|
||||
NEWANGLE # EXIT WITH PD 8D AND MPAC= F REVS B0
|
||||
STODL AVECTR +2 # SAVE F TEMP
|
||||
NODIO # 8-9D=NODIO
|
||||
PDDL PUSH # PD 10D THEN 12D 10-11D=NODDOT
|
||||
NODDOT # MPAC=T
|
||||
AXT,1 CALL # NODE REQUIRES SL 0, SL 5 IN NEWANGLE
|
||||
5
|
||||
NEWANGLE # EXIT WITH PD 8D AND MPAC= NODI REVS B0
|
||||
# Page 1247
|
||||
PUSH COS # PD 10D 8-9D= NODI REVS B0
|
||||
PUSH # PD 12D 10-11D= COS(NODI) B-1
|
||||
STORE AVECTR
|
||||
DMP SL1R
|
||||
COB # COS(NODI) B-1
|
||||
STODL BVECTR +2 # PD 10D 20-25D=AVECTR=COB*SIN(NODI)
|
||||
DMP SL1R # SOB*SIN(NODI)
|
||||
SOB
|
||||
STODL BVECTR +4 # PD 8D
|
||||
SIN PUSH # PD 10D -SIN(NODI) B-1
|
||||
DCOMP # 26-31D=BVECTR= COB*COS(NODI)
|
||||
STODL BVECTR # PD 8D SOB*COS(NODI)
|
||||
AVECTR +2 # MOVE F FROM TEMP LOC. TO 504F
|
||||
STODL 504F
|
||||
DMP SL1R
|
||||
COB
|
||||
STODL AVECTR +2
|
||||
SINNODI # 8-9D=SIN(NODI) B-1
|
||||
DMP SL1R
|
||||
SOB
|
||||
STODL AVECTR +4 # 0
|
||||
HI6ZEROS # 8-13D= CVECTR= -SOB B-1
|
||||
PDDL DCOMP # PD 10D COB
|
||||
SOB
|
||||
PDDL PDVL # PD 12D THEN PD 14D
|
||||
COB
|
||||
BVECTR
|
||||
VXSC PDVL # PD 20D BVECTR*SINI B-2
|
||||
SINI
|
||||
CVECTR
|
||||
VXSC VAD # PD 14D CVECTR*COSI B-2
|
||||
COSI
|
||||
VSL1
|
||||
STOVL MMATRIX +12D # PD 8D M2=BVECTR*SINI+CVECTR*COSI B-1
|
||||
VXSC PDVL # PD 14D
|
||||
SINI # CVECTR*SINI B-2
|
||||
BVECTR
|
||||
VXSC VSU # PD 8D BVECTR*COSI B-2
|
||||
COSI
|
||||
VSL1 PDDL # PD 14D
|
||||
504F # 8-13D=DVECTR=BVECTR*COSI-CVECTR*SINI B-1
|
||||
COS VXSC
|
||||
DVECTR
|
||||
PDDL SIN # PD 20D 14-19D= DVECTR*COSF B-2
|
||||
504F
|
||||
VXSC VSU # PD 14D AVECTR*SINF B-2
|
||||
AVECTR
|
||||
VSL1
|
||||
STODL MMATRIX +6 # M1= AVECTR*SINF-DVECTR*COSF B-1
|
||||
504F
|
||||
# Page 1248
|
||||
SIN VXSC # PD 8D
|
||||
PDDL COS # PD 14D 8-13D=DVECTR*SINF B-2
|
||||
504F
|
||||
VXSC VAD # PD 8D AVECTR*COSF B-2
|
||||
AVECTR
|
||||
VSL1 VCOMP
|
||||
STCALL MMATRIX # M0= -(AVECTR*COSF+DVECTR*SINF) B-1
|
||||
EARTHMXX
|
||||
# COMPUTE X=X0+(XDOT)(T+T0)
|
||||
# 8-9D= X0 (REVS B-0),PUSHLOC SET AT 12D
|
||||
# 10-11D=XDOT (REVS/CSEC) SCALED B+23 FOR WEARTH,B+28 FOR NODDOT AND BDOT
|
||||
# AND B+27 FOR FDOT
|
||||
# X1=DIFFERENCE IN 23 AND SCALING OF XDOT,=0 FOR WEARTH,5 FOR NDDOT AND
|
||||
# BDOT AND 4 FOR FDOT
|
||||
# 6-7D=T (CSEC B-28), TIMSUBO= (CSEC B-42 TRIPLE PREC.)
|
||||
|
||||
NEWANGLE DLOAD SR # ENTER PD 12D
|
||||
6D
|
||||
14D
|
||||
TAD TLOAD # CHANGE MODE TO TP
|
||||
TIMSUBO
|
||||
MPAC
|
||||
STODL TIMSUBM # T+T0 CSEC B-42
|
||||
TIMSUBM +1
|
||||
DMP # PD 10D MULT BY XDOT IN 10-11D
|
||||
SL* DAD # PD 8D ADD X0 IN 8-9D AFTER SHIFTING
|
||||
5,1 # SUCH THAT SCALING IS B-0
|
||||
PUSH SLOAD # PD 10D SAVE PARTIAL (X0+XDOT*T) IN 8-9D
|
||||
TIMSUBM
|
||||
SL DMP
|
||||
9D
|
||||
10D # XDOT
|
||||
SL* DAD # PD 8D SHIFT SUCH THAT THIS PART OF X
|
||||
10D,1 # IS SCALED REVS/CSEC B-0
|
||||
BOV # TURN OFF OVERFLOW IF SET BY SHIFT
|
||||
+1 # INSTRUCTION BEFORE EXITING
|
||||
RVQ # MPAC=X= X0+(XDOT)(T+T0) REVS B0
|
||||
|
||||
# Page 1249
|
||||
# ..... EARTHMX SUBROUTINE .....
|
||||
# SUBROUTINE TO COMPUTE THE TRANSFORMATION MATRIX M FOR THE EARTH
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 EARTHMX
|
||||
|
||||
# SUBROUTINE USED
|
||||
# NEWANGLE
|
||||
|
||||
# INPUT
|
||||
# INPUT AVAILABLE FROM LAUNCH DATA AZO REVS B-0
|
||||
# TEPHEM CSEC B-42
|
||||
# 6-7D= TIME CSEC B-28
|
||||
|
||||
# OUTPUT
|
||||
# MMATRIX= 3X3 M MATRIX B-1 (STORED IN VAC AREA)
|
||||
|
||||
EARTHMX STQ SETPD # SET 8-9D=AZO
|
||||
EARTHMXX
|
||||
8D # 10-11D=WEARTH
|
||||
AXT,1 # FOR SL 5, AND SL 10 IN NEWANGLE
|
||||
0
|
||||
DLOAD PDDL # LEAVING PD SET AT 12D FOR NEWANGLE
|
||||
AZO
|
||||
WEARTH
|
||||
PUSH CALL
|
||||
NEWANGLE
|
||||
SETPD PUSH # 18-19D=504AZ
|
||||
18D # COS(AZ) SIN(AZ) 0
|
||||
COS PDDL # 20-37D= MMATRIX= -SIN(AZ) COS(AZ) 0 B-1
|
||||
504AZ # 0 0 1
|
||||
SIN PDDL
|
||||
HI6ZEROS
|
||||
PDDL SIN
|
||||
504AZ
|
||||
DCOMP PDDL
|
||||
504AZ
|
||||
COS PDVL
|
||||
HI6ZEROS
|
||||
PDDL PUSH
|
||||
HIDPHALF
|
||||
GOTO
|
||||
EARTHMXX
|
||||
|
||||
# Page 1250
|
||||
# ..... EARTHL SUBROUTINE .....
|
||||
# SUBROUTINE TO COMPUTE L VECTOR FOR EARTH
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 EARTHL
|
||||
|
||||
# INPUT
|
||||
# AXO,AYO SET AT LAUNCH TIME WITH AYO IMMEDIATELY FOLLOWING AXO IN CORE
|
||||
|
||||
# OUTPUT
|
||||
# -AX
|
||||
# MPAC= -AY RADIANS B-0
|
||||
# 0
|
||||
|
||||
EARTHL DLOAD DCOMP
|
||||
AXO
|
||||
STODL 504LPL
|
||||
-AYO
|
||||
STODL 504LPL +2
|
||||
HI6ZEROS
|
||||
STOVL 504LPL +4
|
||||
504LPL
|
||||
RVQ
|
||||
|
||||
# Page 1251
|
||||
# CONSTANTS AND ERASABLE ASSIGNMENTS
|
||||
1B1 = DP1/2 # 1 SCALED B-1
|
||||
COSI 2DEC .99964173 B-1 # COS(5521.5 SEC) B-1
|
||||
|
||||
SINI 2DEC .02676579 B-1 # SIN(5521.5 SEC) B-1
|
||||
|
||||
RPREXIT = S1 # R-TO-RP AND RP-TO-R SUBR EXIT
|
||||
EARTHMXX = S2 # EARTHMX,MOONMX SUBR. EXITS
|
||||
504RPR = 0D # 6 REGS R OR RP VECTOR
|
||||
SINNODI = 8D # 2 SIN(NODI)
|
||||
DVECTR = 8D # 6 D VECTOR MOON
|
||||
CVECTR = 8D # 6 C VECTR MOON
|
||||
504AZ = 18D # 2 AZ
|
||||
TIMSUBM = 14D # 3 TIME SUB M (MOON) T+10 IN GETAZ
|
||||
504LPL = 14D # 6 L OR LP VECTOR
|
||||
AVECTR = 20D # 6 A VECTOR (MOON)
|
||||
BVECTR = 26D # 6 B VECTOR (MOON)
|
||||
MMATRIX = 20D # 18 M MATRIX
|
||||
COB = 32D # 2 COS(B) B-1
|
||||
SOB = 34D # 2 SIN(B) B-1
|
||||
504F = 6D # 2 F(MOON)
|
||||
NODDOT 2DEC -.457335121 E-2 # REVS/CSEC B+28=-1.07047011 E-8 RAD/SEC
|
||||
|
||||
FDOT 2DEC .570863327 # REVS/CSEC B+27= 2.67240410 E-6 RAD/SEC
|
||||
|
||||
BDOT 2DEC -3.07500686 E-8 # REVS/CSEC B+28=-7.19757301 E-14 RAD/SEC
|
||||
|
||||
NODIO 2DEC .986209434 # REVS B-0 = 6.19653663041 RAD
|
||||
|
||||
FSUBO 2DEC .829090536 # REVS B-0 = 5.20932947829 RAD
|
||||
|
||||
BSUBO 2DEC .0651201393 # REVS B=0 = 0.40916190299 RAD
|
||||
|
||||
WEARTH 2DEC .973561595 # REVS/CSEC B+23= 7.29211494 E-5 RAD/SEC
|
371
Comanche055/POWERED_FLIGHT_SUBROUTINES.agc
Normal file
371
Comanche055/POWERED_FLIGHT_SUBROUTINES.agc
Normal file
@ -0,0 +1,371 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: POWERED_FLIGHT_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: 1365-1372
|
||||
# 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 1365
|
||||
BANK 14 # SAME FBANK AS THE FINDCDUD SUB-PROGRAM
|
||||
SETLOC POWFLITE
|
||||
BANK
|
||||
|
||||
EBANK= DEXDEX
|
||||
COUNT* $$/POWFL
|
||||
|
||||
# CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*GR*GS ALL COMPUTE THE SINES AND
|
||||
# COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE
|
||||
# PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU. AN
|
||||
# ADDITIONAL OUTPUT IS THE 1'S COMPLEMENT ANGLES AT CDUSPOT. THESE
|
||||
# ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT,
|
||||
# EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2. THEY DIFFER ONLY IN
|
||||
# WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING.
|
||||
|
||||
# CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE
|
||||
# SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS.
|
||||
# THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY
|
||||
# CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS.
|
||||
|
||||
# CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC.
|
||||
|
||||
# CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP. THIS
|
||||
# ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL
|
||||
# ANGLES IN AN ORDER OTHER THAN X Y Z. A CALL TO THIS ROUTINE IS
|
||||
# NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO
|
||||
# MODES (SMNB OR NBSM). SINCE AX*SR*T EXPECTS TO FIND THE SINES AND
|
||||
# COSINES IN THE ORDER Y Z X THE ANGLES MUST HAVE BEEN PLACED IN CDUSPOT
|
||||
# IN THIS ORDER. CD*TR*GS NEED NOT BE REPEATED WHEN AX*SR*T IS CALLED
|
||||
# MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED. NOTE THAT SINCE
|
||||
# IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE
|
||||
# CALLED USING BANKCALL. SORRY.
|
||||
|
||||
# CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN
|
||||
# INTERPRETIVE.
|
||||
|
||||
CDUTRIG EXIT
|
||||
TC CDUTRIGS
|
||||
TC INTPRET
|
||||
RVQ
|
||||
|
||||
CD*TR*G EXIT
|
||||
TC CD*TR*GS
|
||||
TC INTPRET
|
||||
RVQ
|
||||
|
||||
CDUTRIGS CA CDUX
|
||||
TS CDUSPOT +4
|
||||
CA CDUY
|
||||
TS CDUSPOT
|
||||
# Page 1366
|
||||
CA CDUZ
|
||||
TS CDUSPOT +2
|
||||
|
||||
CD*TR*GS EXTEND
|
||||
QXCH TEM2
|
||||
CAF FOUR
|
||||
TR*GL**P MASK SIX # MAKE IT EVEN AND SMALLER
|
||||
TS TEM3
|
||||
INDEX TEM3
|
||||
CA CDUSPOT
|
||||
DXCH MPAC # STORING 2'S COMP ANGLE, LOADING MPAC
|
||||
DXCH VBUF +4 # STORING MPAC FOR LATER RESTORATION
|
||||
TC USPRCADR
|
||||
CADR CDULOGIC
|
||||
EXTEND
|
||||
DCA MPAC
|
||||
INDEX TEM3
|
||||
DXCH CDUSPOT # STORING 1'S COMPLEMENT ANGLE
|
||||
TC USPRCADR
|
||||
CADR COSINE
|
||||
DXCH MPAC
|
||||
INDEX TEM3
|
||||
DXCH COSCDU # STORING COSINE
|
||||
EXTEND
|
||||
INDEX TEM3
|
||||
DCA CDUSPOT # LOADING 1'S COMPLEMENT ANGLE
|
||||
TC USPRCADR
|
||||
CADR SINE +1 # SINE +1 EXPECTS ARGUMENT IN A AND L
|
||||
DXCH VBUF +4 # BRINGING UP PRIOR MPAC TO BE RESTORED
|
||||
DXCH MPAC
|
||||
INDEX TEM3
|
||||
DXCH SINCDU
|
||||
CCS TEM3
|
||||
TCF TR*GL**P
|
||||
TC TEM2
|
||||
# Page 1367
|
||||
# *******************************************************************************************************
|
||||
|
||||
# QUICTRIG, INTENDED FOR GUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS.
|
||||
# QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2,
|
||||
# AND CDUSPOT +4. UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN
|
||||
# CDUSPOT. QUICTRIG'S EXECUTION TIME IS 4.1 MS; THIS IS 10 TIMES AS FAST AS CD*TR*GS. QUICTRIG MAY BE
|
||||
# CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL.
|
||||
|
||||
QUICTRIG INHINT # INHINT SINCE DAP USES THE SAME TEMPS
|
||||
EXTEND
|
||||
QXCH ITEMP1
|
||||
CAF FOUR
|
||||
+4 MASK SIX
|
||||
TS ITEMP2
|
||||
INDEX ITEMP2
|
||||
CA CDUSPOT
|
||||
TC SPSIN
|
||||
EXTEND
|
||||
MP BIT14 # SCALE DOWN TO MATCH INTERPRETER OUTPUTS
|
||||
INDEX ITEMP2
|
||||
DXCH SINCDU
|
||||
INDEX ITEMP2
|
||||
CA CDUSPOT
|
||||
TC SPCOS
|
||||
EXTEND
|
||||
MP BIT14
|
||||
INDEX ITEMP2
|
||||
DXCH COSCDU
|
||||
CCS ITEMP2
|
||||
TCF QUICTRIG +4
|
||||
CA ITEMP1
|
||||
RELINT
|
||||
TC A
|
||||
# Page 1368
|
||||
#****************************************************************************
|
||||
|
||||
|
||||
# THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
|
||||
# INTERPRETIVE. LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
|
||||
#
|
||||
# NBSM WILL BE THE FIRST TO GO. IT SHOULD NOT BE USED.
|
||||
|
||||
NBSM STQ
|
||||
X2
|
||||
LXC,1 VLOAD*
|
||||
S1 # BASE ADDRESS OF THE CDU ANGLES IS IN S1
|
||||
0,1
|
||||
STOVL CDUSPOT
|
||||
32D # VECTOR TO BE TRANSFORMED IS IN 32D
|
||||
CALL
|
||||
TRG*NBSM
|
||||
STCALL 32D # SINCE THERE'S NO STGOTO
|
||||
X2
|
||||
|
||||
# THESE INTERFACE ROUTINES ARE PERMANENT. ALL RESTORE USER'S EBANK
|
||||
# SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL",
|
||||
# RETURNING VIA QPRET. ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR-
|
||||
# MED INTERPRETER-STYLE IN MPAC; COMPONENTS AT MPAC, MPAC +3, AND MPAC +5.
|
||||
|
||||
# TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES
|
||||
# AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4; ODD
|
||||
# LOCATIONS NEED NOT BE ZEROED). TRG*NBSM DOES THE NB TO SM TRANSFOR-
|
||||
# MATION; TRG*SMNB, VICE VERSA.
|
||||
|
||||
# CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF
|
||||
# THE CDL COUNTERS. OTHERWISE IT IS LIKE TRG*NBSM.
|
||||
#
|
||||
# CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM.
|
||||
|
||||
CDU*SMNB EXIT
|
||||
TC CDUTRIGS
|
||||
TCF C*MM*N1
|
||||
|
||||
TRG*SMNB EXIT
|
||||
TC CD*TR*GS
|
||||
C*MM*N1 TC MPACVBUF # AX*SR*T EXPECTS VECTOR IN VBUF
|
||||
CS THREE # SIGNAL FOR SM TO NB TRANSFORMATION.
|
||||
C*MM*N2 TC AX*SR*T
|
||||
TC INTPRET
|
||||
VLOAD RVQ
|
||||
VBUF
|
||||
|
||||
CDU*NBSM EXIT
|
||||
TC CDUTRIGS
|
||||
|
||||
# Page 1369
|
||||
|
||||
TCF C*MM*N3
|
||||
|
||||
TRG*NBSM EXIT
|
||||
TC CD*TR*GS
|
||||
C*MM*N3 TC MPACVBUF # FOR AX*SR*T
|
||||
CA THREE # SIGNAL FOR NB TO SM TRANSFORMATION
|
||||
TCF C*MM*N2
|
||||
|
||||
# *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU
|
||||
# AND COSCDU) RATHER THAN THE ANGLES THEMSELVES. OTHERWISE THEY ARE
|
||||
# LIKE TRG*NBSM AND TRG*SMNB.
|
||||
|
||||
# NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES
|
||||
# OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM
|
||||
# AND TRG*SMNB NEED BE CALLED FOR EACH SERIES. FOR SUBSEQUENT TRANFOR-
|
||||
# MATIONS USE *NBSM* AND *SMNB*.
|
||||
|
||||
*SMNB* EXIT
|
||||
TCF C*MM*N1
|
||||
|
||||
*NBSM* EXIT
|
||||
TCF C*MM*N3
|
||||
|
||||
# AX*SR*T COMBINES THE OLD SMNB AND NBSM. FOR THE NB TO SM
|
||||
# TRANSFORMATION, ENTER WITH +3 IN A. FOR SM TO NB, ENTER WITH -3.
|
||||
# THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF.
|
||||
# AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION
|
||||
# AT SINCDU AND COSCDU, IN THE ORDER Y Z X. A CALL TO CD*TR*GS, WITH
|
||||
# THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF
|
||||
# THIS. HERE IS A SAMPLE CALLING SEQUENCE:-
|
||||
|
||||
# TC CDUTRIGS
|
||||
# CS THREE ("CA THREE" FOR NBSM)
|
||||
# TC AX*SR*T
|
||||
|
||||
# THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE
|
||||
# THAN ONCE, UNLESS THE ANGLES HAVE CHANGED.
|
||||
|
||||
# AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN
|
||||
# UNITY. A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE
|
||||
# HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS-
|
||||
# FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED.
|
||||
|
||||
AX*SR*T TS DEXDEX # WHERE IT BECOMES THE INDEX OF INDEXES
|
||||
EXTEND
|
||||
QXCH RTNSAVER
|
||||
|
||||
R*TL**P CCS DEXDEX # +3 --> 0 -3 --> 2
|
||||
CS DEXDEX # THUS: +2 --> 1 -2 --> 1
|
||||
AD THREE # +1 --> 2 -1 --> 0
|
||||
# Page 1370
|
||||
EXTEND
|
||||
INDEX A
|
||||
DCA INDEXI
|
||||
DXCH DEXI
|
||||
|
||||
CA ONE
|
||||
TS BUF
|
||||
EXTEND
|
||||
INDEX DEX1
|
||||
DCS VBUF
|
||||
TCF LOOP1 # REALLY BE A SUBTRACT, AND VICE VERSA
|
||||
|
||||
LOOP2 DXCH BUF # LOADING VECTOR COMPONENT, STORING INDEX
|
||||
|
||||
LOOP1 DXCH MPAC
|
||||
CA SINESLOC
|
||||
AD DEX1
|
||||
TS ADDRWD
|
||||
|
||||
TC DMPSUB # MULTIPLY BY SIN(CDUANGLE)
|
||||
CCS DEXDEX
|
||||
DXCH MPAC # NBSM CASE
|
||||
TCF +3
|
||||
EXTEND # SMNB CASE
|
||||
DCS MPAC
|
||||
DXCH TERM1TMP
|
||||
|
||||
CA SIX # SINCDU AND COSCDU (EACH 6 WORDS) MUST
|
||||
ADS ADDRWD # BE CONSECUTIVE AND IN THAT ORDER
|
||||
|
||||
EXTEND
|
||||
INDEX BUF
|
||||
INDEX DEX1
|
||||
DCA VBUF
|
||||
DXCH MPAC
|
||||
TC DMPSUB # MULTIPLY BY COS(CDUANGLE)
|
||||
DXCH MPAC
|
||||
DAS TERM1TMP
|
||||
DXCH TERM1TMP
|
||||
DDOUBL
|
||||
INDEX BUF
|
||||
INDEX DEX1
|
||||
DXCH VBUF
|
||||
DXCH BUF # LOADING INDEX, STORING VECTOR COMPONENT
|
||||
|
||||
CCS A # 'CAUSE THAT'S WHERE THE INDEX NOW IS
|
||||
TCF LOOP2
|
||||
|
||||
EXTEND
|
||||
DIM DEXDEX # DECREMENT MAGNITUDE PRESERVING SIGN
|
||||
|
||||
# Page 1371
|
||||
TSTPOINT CCS DEXDEX # ONLY THE BRANCHING FUNCTION IS USED
|
||||
TCF R*TL**P
|
||||
TC RTNSAVER
|
||||
TCF R*TL**P
|
||||
TC RTNSAVER
|
||||
|
||||
|
||||
SINESLOC ADRES SINCDU # FOR USE IN SETTING ADDRWD
|
||||
|
||||
|
||||
INDEXI DEC 4 # ********** DON'T ***********
|
||||
DEC 2 # ********** TOUCH ***********
|
||||
DEC 0 # ********** THESE ***********
|
||||
DEC 4 # ********** CONSTANTS ***********
|
||||
|
||||
# ******************************************************************************
|
||||
# Page 1372
|
||||
# THIS SUBROUTINE COMPUTES INCREMENTAL CHANGES IN CDU(GIMBAL) ANGLES FROM INCREMENTAL CHANGES ABOUT SM AXES. IT
|
||||
# REQUIRES SM INCREMENTS AS A DP VECTOR SCALED AT ONE REVOLUTION(DTHETASM,+2,+4). SIN,COS(CDUY,Z,X) ARE IN
|
||||
# SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY,SCALED TO ONE HALF. CDU INCREENTS ARE PLACED IN DCDU,+2,+4 SCALED TO
|
||||
# ONE REVOLUTION.
|
||||
|
||||
# * COS(IGA)SEC(MGA) 0 -SIN(IGA)SEC(MGA) *
|
||||
# * *
|
||||
# * -COS(IGA)TAN(MGA) 1 SIN(IGA)TAN(MGA) *
|
||||
# * *
|
||||
# * SIN(IGA) 0 COS(IGA) *
|
||||
|
||||
BANK 14
|
||||
SETLOC POWFLIT1
|
||||
BANK
|
||||
|
||||
SMCDURES DLOAD DMP
|
||||
DTHETASM
|
||||
COSCDUY
|
||||
|
||||
PDDL DMP
|
||||
DTHETASM +4
|
||||
SINCDUY
|
||||
|
||||
BDSU
|
||||
DDV
|
||||
COSCDUZ
|
||||
STORE DCDU
|
||||
|
||||
DMP SL1 # SCALE
|
||||
SINCDUZ
|
||||
BDSU
|
||||
|
||||
DTHETASM +2
|
||||
STODL DCDU +2
|
||||
DTHETASM
|
||||
|
||||
DMP PDDL
|
||||
SINCDUY
|
||||
DTHETASM +4
|
||||
|
||||
DMP DAD
|
||||
COSCDUY
|
||||
SL1
|
||||
STORE DCDU +4
|
||||
RVQ
|
485
Comanche055/R30.agc
Normal file
485
Comanche055/R30.agc
Normal file
@ -0,0 +1,485 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: R30.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: Hartmuth Gutsche <hgutsche@xplornet.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 514-524
|
||||
# Mod history: 2009-05-09 HG Started adapting from the Colossus249/ file
|
||||
# of the same name, using Comanche055 page
|
||||
# images 0514.jpg - 0524.jpg.
|
||||
#
|
||||
# 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 514
|
||||
# SUBROUTINE NAME: V82CALL
|
||||
# MOD NO: 0 DATE: 16 FEB 67
|
||||
# MOD BY: R. R. BAIRNSFATHER LOG SECTION: R30
|
||||
# MOD NO: 1 MOD BY: R. R. BAIRNSFATHER DATE: 11 APR 67 SR30.1 CHANGED TO ALLOW MONITOR OPERN
|
||||
# MOD NO: 2 MOD BY: ALONSO DATE: 11 DEC 67 VB82 PROGRAM REWRITTEN
|
||||
# MOD NO: 3 MOD BY: ALONSO DATE: 26 MAR 68 PROG MOD TO HANDLE DIF EARTH/MOON SCALE
|
||||
#
|
||||
# NEW FUNCTIONAL DESCRIPTION: CALLED BY VERB 82 ENTER. PRIORITY 10.
|
||||
# USED THROUGHOUT. CALCULATE AND DISPLAY ORBITAL PARAMETERS
|
||||
#
|
||||
# 1. IF AVERAGE G IS OFF:
|
||||
# FLASH DISPLAY V04N06. R2 INDICATES WHICH SHIP'S STATE VECTOR IS
|
||||
# TO BE UPDATED. INITIAL CHOICE IS THIS SHIP (R2=1). ASTRONAUT
|
||||
# CAN CHANGE TO OTHER SHIP BY V22EXE. WHERE X IS NOT EQ 1.
|
||||
# SELECTED STATE VECTOR UPDATED BY THISPREC (OTHPREC).
|
||||
# CALLS SR30.1 (WHICH CALLS TFFCONMU + TFFRP/RA) TO CALCULATE
|
||||
# RPER (PERIGEE RADIUS), RAPO (APOGEE RADIUS), HPER (PERIGEE
|
||||
# HEIGHT ABOVE LAUNCH PAD OR LAUNAR LANDING SITE), HARD (APOGEE
|
||||
# HEIGHT AS ABOVE), TPER (TIME TO PERIGEE), TFF (TIME TO
|
||||
# INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
|
||||
# FLASH MONITOR V16N44 (HAPO, HPER, TFF). TFF IS -59MS59S IF IT WAS
|
||||
# NOT COMPUTABLE, OTHERWISE IT INCREMENTS ONCE PER SECOND.
|
||||
# ASTRONAUT HAS OPTION TO MONITOR TPER BY KEYING IN N 32 E.
|
||||
# DISPLAY IS IN HMS, IS NEGATIVE (AS WAS TFF), AND INCREMENTS
|
||||
# ONCE PER SECOND ONLY IF TFF DISPLAY WAS -59M59S.
|
||||
# 2. IF AVERAGE G IS ON:
|
||||
# CALLS SR30.1 APPROX EVERY TWO SECS. STATE VECTOR IS ALWAYS
|
||||
# FOR THIS VEHICLE. V82 DOES NOT DISTURB STATE VECTOR. RESULTS
|
||||
# OF SR30.1 ARE RAPO, RPER, HAPO, HPER, TPER, TFF.
|
||||
# FLASH MONITOR V16N44 (HAPO, HPER, TFF).
|
||||
# IF MODE IS P11, THEN CALL DELRSPL SO ASTRONAUT CAN MONITOR
|
||||
# RESULTS BY N50E. SPLASH COMPUTATION DONE ONCE PER TWO SECS.
|
||||
|
||||
# ADDENDUM: HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
|
||||
# ABOVE REMARKS.
|
||||
#
|
||||
# CALLING SEQUENCE: VERB 82 ENTER.
|
||||
#
|
||||
# SUBROUTINES CALLED: SR30.1, GOXDSPF
|
||||
# MAYBE -- THISPREC, OTHPREC, LOADTIME, DELRSPL
|
||||
#
|
||||
# NORMAL EXIT MODES: TC ENDEXT
|
||||
#
|
||||
# ALARMS: NONE
|
||||
#
|
||||
# OUTPUT: HAPOX (-29) M
|
||||
# HPERX (-29) M
|
||||
# RAPO (-29) M EARTH
|
||||
# (-27) M MOON
|
||||
# Page 515
|
||||
# RPER (-29) M EARTH
|
||||
# (-27) M MOON
|
||||
# TFF (-28) CS CONTAINS NEGATIVE QUANTITY
|
||||
# -TPER (-28) CS CONTAINS NEGATIVE QUANTITY
|
||||
# RSP-RREC(-29) M IF DELRSPL CALLED
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED: STATE VECTOR.
|
||||
#
|
||||
# DEBRIS: QPRET, RONE, VONE,TFF/RTMU, HPERMIN, RPADTEM, V82EMFLG.
|
||||
# MAYBE: TSTART82, V82FLAGS, TDEC1.
|
||||
|
||||
EBANK= HAPOX
|
||||
BANK 31
|
||||
SETLOC R30LOC
|
||||
BANK
|
||||
COUNT* $$/R30
|
||||
|
||||
V82CALL TC INTPRET
|
||||
BON GOTO
|
||||
AVEGFLAG
|
||||
V82GON # IF AVERAGE G ON
|
||||
V82GOFF # IF AVERAGE G OFF
|
||||
|
||||
V82GOFF EXIT # ALLOW ASTRONAUT TO SELECT VEHICLE
|
||||
CAF TWO # DESIRED FOR ORBITAL PARAMETERS
|
||||
TS OPTIONX
|
||||
CAF ONE
|
||||
TS OPTIONX +1
|
||||
CAF OPTIONVN # V 04 N 06
|
||||
TC BANKCALL
|
||||
CADR GOXDSPF
|
||||
TC ENDEXT # TERMINATE
|
||||
TC +2 # PROCEED
|
||||
TC -5 # DATA IN. OPTIONX +1 = 1 FOR THIS VEHIC.
|
||||
# UNEQ 1 FOR OTHER VEHICLE.
|
||||
CAF BIT4 # 80 MS
|
||||
TC WAITLIST
|
||||
EBANK= TFF
|
||||
2CADR TICKTEST
|
||||
|
||||
RELINT
|
||||
V82GOFLP CAF TFFBANK # MAJOR RECYCLE LOOP ENTRY
|
||||
TS EBANK
|
||||
CAF ZERO
|
||||
TS V82FLAGS # ZERO FLAGS FOR TICKTEST, INHIBITS
|
||||
# DECREMENTING OF TFF AND -TPER.
|
||||
CAF PRIO7
|
||||
TC FINDVAC # V82GOFF1 WILL EXECUTE STATE VECTOR
|
||||
# Page 516
|
||||
EBANK= TFF # UPDATE AND ORBIT CALCULATIONS FOR
|
||||
2CADR V82GOFF1 # SELECTED VEHICLE ABOUT PROPER BODY.
|
||||
|
||||
RELINT
|
||||
V82STALL CAF THREE # STALL IN THIS LOOP AND WITHOLD V 16 N 44
|
||||
MASK V82FLAGS # UNTIL STATE VECTOR UPDATE SETS ONE OF
|
||||
CCS A # OUR FLAG BITS.
|
||||
TC FLAGGON # EXIT FROM STALL LOOP.
|
||||
CAF 1SEC
|
||||
TC BANKCALL
|
||||
CADR DELAYJOB
|
||||
TC V82STALL
|
||||
|
||||
FLAGGON CAF V16N44 # MONITOR HAPO,HPER,TFF.
|
||||
TC BANKCALL
|
||||
CADR GOXDSPF
|
||||
TC B5OFF # TERM THIS TELLS TICKTEST TO KILL ITSELF
|
||||
TC B5OFF # PROCEED DITTO
|
||||
TC V82GOFLP # RECYCLE RECOMPUTE STATE VECT + DISPLAY
|
||||
|
||||
OPTIONVN VN 0412
|
||||
V16N44 VN 1644
|
||||
TFFBANK ECADR TFF
|
||||
|
||||
V82GOFF1 TC INTPRET
|
||||
RTB
|
||||
LOADTIME
|
||||
STORE TDEC1 # TIME FOR STATE VECTOR UPDATE.
|
||||
STORE TSTART82 # TIME FOR INTERNAL USE.
|
||||
EXIT
|
||||
CS OPTIONX +1 # 1 FOR THIS VEHICLE, NOT 1 FOR OTHER
|
||||
AD ONE
|
||||
EXTEND
|
||||
BZF THISSHIP
|
||||
OTHSHIP TC INTPRET
|
||||
CALL # CALL STATE VECTOR UPDATE FOR OTHER SHIP.
|
||||
OTHPREC
|
||||
BOTHSHIP VLOAD # MOVE RESULTS INTO TFFCONIC STORAGE AREAS
|
||||
RATT # TO BE CALLED BY SR30.1.
|
||||
STOVL RONE # RATT AT (-29)M FOR EARTH OR MOON
|
||||
VATT
|
||||
STORE VONE # VATT AT (-7)M/CS FOR EARTH OR MOON
|
||||
DLOAD*
|
||||
1/RTMUE,2 # X2 IS 0 FOR EARTH CENTERED STATE VEC
|
||||
STORE TFF/RTMU # X2 IS 2 FOR MOON
|
||||
DLOAD* # AS LEFT BY THISPREC OR OTHPREC.
|
||||
MINPERE,2
|
||||
STORE HPERMIN # TFFRTMU, HPERMIN, AND RPADTEM ARE ALL
|
||||
SLOAD BHIZ # EARTH/MOON PARAMETERS AS SET HERE.
|
||||
# Page 517
|
||||
X2
|
||||
EARTHPAD
|
||||
GOTO
|
||||
MOONPAD
|
||||
THISSHIP TC INTPRET
|
||||
CALL # CALL STATE VECTOR UPDATE FOR THIS SHIP.
|
||||
THISPREC
|
||||
GOTO
|
||||
BOTHSHIP
|
||||
|
||||
# THE FOLLOWING CONSTANTS ARE PAIRWISE INDEXED. DO NOT SEPARATE PAIRS.
|
||||
|
||||
1/RTMUM 2DEC* .45162595 E-4 B14*
|
||||
1/RTMUE 2DEC* .50087529 E-5 B17*
|
||||
|
||||
MINPERM 2DEC 10668 B-27 # 35 KFT MIN PERIGEE HEIGHT FOR MOON(-27)M
|
||||
MINPERE 2DEC 91440 B-29 # 300 KFT (-29)M FOR EARTH
|
||||
|
||||
EARTHPAD DLOAD CLRGO # PAD 37-B RADIUS. SCALED AT (-29)M.
|
||||
RPAD
|
||||
V82EMFLG # INDICATE EARTH SCALING FOR SR30.1
|
||||
BOTHPAD
|
||||
|
||||
MOONPAD VLOAD ABVAL # COMPUTE MOON PAD RADIUS FROM RLS VECTOR.
|
||||
RLS # SCALED AT (-27)M.
|
||||
SET
|
||||
V82EMFLG # INDICATE MOON SCALING FOR SR30.1
|
||||
BOTHPAD STCALL RPADTEM
|
||||
SR30.1 # CALCULATE ORBITAL PARAMETERS
|
||||
EXIT
|
||||
CA MODREG # ARE WE IN P00
|
||||
EXTEND
|
||||
BZF CANDEL # YES, DO DELRSPL
|
||||
SPLRET1 TC INTPRET
|
||||
RTB DSU
|
||||
LOADTIME
|
||||
TSTART82 # PRESENT TIME - TIME V82GOFF1 BEGAN
|
||||
STORE TSTART82 # SAVE IT
|
||||
DLOAD BZE # SR30.1 SETS -TPER=0 IF HPER L/
|
||||
-TPER # HPERMIN (300 OR 35) KFT.
|
||||
TICKTFF # (-TPER = 0)
|
||||
TICKTPER DLOAD DAD # (-TPER NON ZERO) TFF WAS NOT COMPUTED,
|
||||
-TPER # BUT WAS SET TO 59M59S.DON'T DICK TFF, DO
|
||||
TSTART82 # TICK -TPER. DISPLAY BOTH.
|
||||
STORE -TPER # -TPER CORRECTED FOR TIME SINCE V82GOFF1
|
||||
EXIT # BEGAN.
|
||||
|
||||
# Page 518
|
||||
CAF BIT1
|
||||
TS V82FLAGS # INFORMS TICKTEST TO INCREMENT ONLY -TPER
|
||||
TC ENDOFJOB
|
||||
|
||||
TICKTFF DLOAD DAD # (-TPER=0) TFF WAS COMPUTED.TICK TFF.
|
||||
TFF # DO NOT TICK -TPER.DISPLAY TFF, BUT NOT
|
||||
TSTART82 # -TPER.
|
||||
STORE TFF # TFF CORRECTED FOR TIME SINCE V82GOFF1
|
||||
EXIT # BEGAN.
|
||||
CAF BIT2
|
||||
TS V82FLAGS # INFORMS TICKTEST TO INCREMENT ONLY TFF.
|
||||
TC ENDOFJOB
|
||||
|
||||
TICKTEST CAF BIT5 # THIS WAITLIST PROGRAM PERPETUATES ITSELF
|
||||
MASK EXTVBACT # ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
|
||||
CCS A
|
||||
TC DOTICK
|
||||
CAF PRIO25
|
||||
TC NOVAC # TERMINATE V 82.CAN'T CALL ENDEXT IN RUPT.
|
||||
EBANK= EXTVBACT
|
||||
2CADR ENDEXT
|
||||
|
||||
TC TASKOVER
|
||||
DOTICK CAF 1SEC # RE-REQUEST TICKTEST.
|
||||
TC WAITLIST
|
||||
EBANK= TFF
|
||||
2CADR TICKTEST
|
||||
|
||||
CAF THREE
|
||||
MASK V82FLAGS
|
||||
INDEX A
|
||||
TC +1
|
||||
TC TASKOVER # IF NO FLAGBITS SET DONT CHANGE TFF OR
|
||||
# -TPER, BUT CONTINUE LOOP.
|
||||
TC TPERTICK # ONLY BIT 1 SET. INCR -TPER BY 1 SEC.
|
||||
TFFTICK CAF 1SEC # ONLY BIT 2 SET. INCR TFF BY 1 SEC.
|
||||
TS L
|
||||
CAF ZERO
|
||||
DAS TFF
|
||||
TC TASKOVER
|
||||
TPERTICK CAF 1SEC
|
||||
TS L
|
||||
CAF ZERO
|
||||
DAS -TPER
|
||||
TC TASKOVER
|
||||
# Page 519
|
||||
V82GON EXIT # AVERAGE G ON. USE CURRENT STATE VECTOR
|
||||
# FOR ORBITAL PARAMETER CALCULATIONS.
|
||||
CAF PRIO7 # LESS THAN LAMBERT
|
||||
TC FINDVAC # V82GON1 WILL PERFORM ORBIT CALCULATIONS
|
||||
EBANK= TFF # ABOUT PROPER BODY APPROX ONCE PER SEC.
|
||||
2CADR V82GON1
|
||||
|
||||
RELINT
|
||||
CCS NEWJOB # WITHOLD V16 N44 UNTIL FIRST ORBIT CALC
|
||||
TC CHANG1 # IS DONE. NOTE: V82GON1 (PRIO7, FINDVAC
|
||||
# JOB) IS COMPLETED BEFORE V82GON (PRIO7,
|
||||
# NOVAC JOB).
|
||||
V82REDSP CAF V16N44 # MONITOR HAPO, HPER, TFF
|
||||
TC BANKCALL
|
||||
CADR GOXDSPF
|
||||
TC B5OFF # TERM THIS TELLS V82GON1 TO KILL ITSELF.
|
||||
TC B5OFF # PROC DITTO.
|
||||
TC V82REDSP # RECYCLE
|
||||
|
||||
V82GON1 TC INTPRET # THIS EXEC PROGRAM PERPETUATES ITSELF
|
||||
# ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
|
||||
VLOAD GOTO # HOLDS OFF CCS NEWJOB BETWEEN RN AND
|
||||
RN # VN FETCH SO RN , VN ARE FROM SAME
|
||||
NEXTLINE # STATE VECTOR UPDATE.
|
||||
NEXTLINE STOVL RONE # RN AT (-29)M FOR EARTH OR MOON
|
||||
VN
|
||||
STORE VONE # VN AT (-7)M/CS FOR EARTH OR MOON
|
||||
BON GOTO
|
||||
AMOONFLG # FLAG INDICATES BODY ABOUT WHICH ORBITAL
|
||||
MOONGON # CALCULATIONS ARE TO BE PERFORMED.
|
||||
EARTHGON # IF SET - MOON , IF RESET - EARTH.
|
||||
|
||||
MOONGON SET DLOAD
|
||||
V82EMFLG # INDICATE MOON SCALING FOR SR30.1
|
||||
1/RTMUM # LUNAR PARAMETERS LOADED HERE FOR SR30.1
|
||||
STODL TFF/RTMU
|
||||
MINPERM
|
||||
STOVL HPERMIN
|
||||
RLS # SCALED AT (-27)M
|
||||
ABVAL GOTO
|
||||
V82GON2
|
||||
EARTHGON CLEAR DLOAD
|
||||
V82EMFLG # INDICATE EARTH SCALING FOR SR30.1
|
||||
1/RTMUE # EARTH PARAMETERS LOADED HERE FOR SR30.1
|
||||
STODL TFF/RTMU
|
||||
MINPERE
|
||||
STODL HPERMIN
|
||||
RPAD
|
||||
V82GON2 STCALL RPADTEM # COMMON CODE FOR EARTH & MOON.
|
||||
SR30.1
|
||||
# Page 520
|
||||
EXIT
|
||||
TC CHECKMM
|
||||
DEC 11
|
||||
TC V82GON3 # NOT IN MODE 11.
|
||||
CANDEL TC INTPRET # IN MODE 11 OR 00
|
||||
CALL
|
||||
INTSTALL # DELRSPL DOES INTWAKE
|
||||
DLOAD CALL
|
||||
TFF
|
||||
DELRSPL # RETURN IS TO NEXT LINE ( SPLRET ).
|
||||
SPLRET EXIT
|
||||
|
||||
CA MODREG
|
||||
EXTEND
|
||||
BZF SPLRET1
|
||||
V82GON3 CAF BIT5
|
||||
MASK EXTVBACT # SEE IF ASTRONAUT HAS SIGNALLED TERMINATE
|
||||
EXTEND
|
||||
BZF ENDEXT # YES, TERMINATE VB 82 LOOP
|
||||
CAF 1SEC
|
||||
TC BANKCALL # WAIT ONE SECOND BEFORE REPEATING
|
||||
CADR DELAYJOB # ORBITAL PARAMETER COMPUTATION.
|
||||
TC V82GON1
|
||||
|
||||
# Page 521
|
||||
# SUBROUTINE NAME: SR30.1
|
||||
# MOD NO: 0 DATE: 16 FEB 67
|
||||
# MOD BY: R. R. BAIRNSFATHER LOG SECTION: R32
|
||||
# MOD NO: 1 MOD BY: R. R. BAIRNSFATHER DATE: 11 APR 67 SR30.1 CHANGED TO ALLOW MONITOR OPERN
|
||||
# MOD NO: 2 MOD BY: R. R. BAIRNSFATHER DATE: 14 APR 67 ADD OVFL CK FOR RAPO
|
||||
# MOD NO: 3 MOD BY ALONSO DATE: 11 DEC 67 SUBROUTINE REWRITTEN
|
||||
# MOD NO: 4 MOD BY ALONSO DATE: 26 MAR 68 PROG MOD TO HANDLE DIF EARTH/MOON SCALE
|
||||
# MOD NO: 5 MOD BY: RR BAIRNSFATHER DATE: 6 AUG 68 OVFL CK FOR HAPO & HPER. VOIDS MOD #2.
|
||||
#
|
||||
# NEW FUNCTIONAL DESCRIPTION: ORBITAL PARAMETERS DISPLAY FOR NOUNS 32 AND 44.
|
||||
# SR30.1 CALLS TFFCONMU AND TFFRP/RA TO CALCULATE RPER (PERIGEE RADIUS),
|
||||
# RAPO (APOGEE RADIUS), HPER (PERIGEE HEIGHT ABOVE LAUNCH PAD OR LUNAR
|
||||
# LANDING SITE), HAPO (APOGEE HEIGHT AS ABOVE), TPER (TIME TO PERIGEE),
|
||||
# TFF (TIME TO INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
|
||||
# IF HPER IS GREATER THAN OR EQUAL TO HPERMIN, CALCULATES TPER AND STORES
|
||||
# NEGATIVE IN -TPER. OTHERWISE STORES +0 IN -TPER. WHENEVER TPER IS
|
||||
# CALCULATED, TFF IS NOT COMPUTABLE AND DEFAULTS TO -59MIN 59SEC. IF HAPO
|
||||
# WOULD EXCEED 9999.9 NM, IT IS LIMITED TO THAT VALUE FOR DISPLAY.
|
||||
#
|
||||
# ADDENDUM: HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
|
||||
# ABOVE REMARKS.
|
||||
#
|
||||
# CALLING SEQUENCE: CALL
|
||||
# SR30.1
|
||||
#
|
||||
# SUBROUTINES CALLED: TFFCONMU, TFFRP/RA, CALCTPER, CALCTFF
|
||||
# NORMAL EXIT MODE: CALLING LINE +1 (STILL IN INTERPRETIVE MODE)
|
||||
# ALARMS: NONE
|
||||
# OUTPUT: RAPO (-29) M EARTH APOGEE RADIUS EARTH CENTERED COORD.
|
||||
# (-27) M MOON MOON CENTERED COORD.
|
||||
# RPER (-29) M EARTH PERIGEE RADIUS EARTH CENTERED COORD.
|
||||
# (-27) M MOON MOON CENTERED COORD.
|
||||
# HAPOX (-29) M APOGEE ALTITUDE ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM.
|
||||
# HPERX (-29) M PERIGEE ALT. ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM.
|
||||
# TFF (-28) CS TIME TO 300KFT OR 35KFT ALTITUDE
|
||||
# -TPER (-28) CS TIME TO PERIGEE
|
||||
# ERASABLE INITIALIZATION REQUIRED -
|
||||
# TFF/RTMU (+17) EARTH RECIPROCAL OF PROPER GRAV CONSTANT FOR
|
||||
# (+14) MOON EARTH OR MOON = 1/SQRT(MU).
|
||||
# RONE (-29) M STATE VECTOR
|
||||
# VONE (-7) M/CS STATE VECTOR
|
||||
# RPADTEM (-29) M EARTH RADIUS OF LAUNCH PAD OR LUNAR LANDING
|
||||
# (-27) M MOON SITE.
|
||||
# HPERMIN (-29) M EARTH (300 OR 35) KFT MINIMUM PERIGEE ALTITUDE
|
||||
# (-27) M MOON ABOVE LAUNCH PAD OR LUNAR LANDING SITE.
|
||||
# V82EMFLG (INT SW BIT) RESET FOR EARTH, SET FOR MOON.
|
||||
#
|
||||
# DEBRIS: QPRET, PDL, S2
|
||||
|
||||
# Page 522
|
||||
COUNT* $$/SR30S
|
||||
|
||||
SR30.1 SETPD STQ # INITIALIZE PUSHDOWN LIST.
|
||||
0
|
||||
S2
|
||||
# SR30.1 INPUT: RONE AT (-29)M EARTH/MOON
|
||||
# VONE AT (-7)M/CS
|
||||
# TFFCONMU,TFFRP/RA,CALCTPER,AND CALCTFF
|
||||
# CALLS REQUIRE:
|
||||
# EARTH CENTERED (NO RESCALING REQUIRED)
|
||||
# RONE SCALED TO B-29 M
|
||||
# VONE SCALED TO B-7 M/CS
|
||||
# MOON CENTERED (RESCALING REQUIRED)
|
||||
# RONE SCALED TO B-27 M
|
||||
# VONE SCALED TO B-5 M/CS
|
||||
BOFF VLOAD
|
||||
V82EMFLG # OFF FOR EARTH , ON FOR MOON.
|
||||
TFFCALLS
|
||||
RONE
|
||||
VSL2
|
||||
STOVL RONE
|
||||
VONE
|
||||
VSL2
|
||||
STORE VONE
|
||||
TFFCALLS CALL
|
||||
TFFCONMU
|
||||
CALL # TFFRP/RA COMPUTES RAPO,RPER.
|
||||
TFFRP/RA
|
||||
# RETURNS WITH RAPO IN D(MPAC).
|
||||
DSU
|
||||
RPADTEM
|
||||
BOFF SR2R # NEED HAPO AT (-29)M FOR DISPLAY.
|
||||
# IF MOON CENTERED, RESCALE FROM (-27)M.
|
||||
# IF EARTH CENTERED ALREADY AT (-29)M.
|
||||
V82EMFLG # OFF FOR EARTH , ON FOR MOON.
|
||||
+1
|
||||
CALL # IF HAPO > MAXNM, SET HAPO =9999.9 NM.
|
||||
MAXCHK # OTHERWISE STORE (RAPO-RPADTEM) IN HAPO.
|
||||
STORHAPO STODL HAPOX
|
||||
RPER
|
||||
DSU
|
||||
RPADTEM # GIVES HPER AT (-29)M EARTH, (-27)M MOON.
|
||||
STORE MPAC +4 # SAVE THIS FOR COMPARISON TO HPERMIN.
|
||||
BOFF SR2R # NEED HPER AT (-29)M FOR DISPLAY.
|
||||
# IF MOON CENTERED, RESCALE FROM (-27)M.
|
||||
# IF EARTH CENTERED ALREADY AT (-29)M.
|
||||
V82EMFLG # OFF FOR EARTH, ON FOR MOON.
|
||||
+1
|
||||
CALL # IF HPER > MAXNM, SET HPER = 9999.9 NM.
|
||||
MAXCHK
|
||||
# Page 523
|
||||
STORHPER STODL HPERX # STORE (RPER - RPADTEM) INTO HPERX.
|
||||
MPAC +4
|
||||
DSU BPL # HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
|
||||
HPERMIN # IF HPER L/ HPERMIN (300 OR 35) KFT,
|
||||
DOTPER # THEN ZERO INTO -TPER.
|
||||
DLOAD GOTO # OTHERWISE CALCULATE TPER.
|
||||
HI6ZEROS
|
||||
SKIPTPER
|
||||
DOTPER DLOAD CALL
|
||||
RPER
|
||||
CALCTPER
|
||||
DCOMP # TPER IS PUT NEG INTO -TPER.
|
||||
SKIPTPER STODL -TPER
|
||||
HPERMIN # HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
|
||||
DAD CALL
|
||||
RPADTEM # RPADTEM AT (-29)M FOR EARTH, (-27)M MOON
|
||||
CALCTFF # GIVES 59M59S FOR TFF IF RPER G/
|
||||
DCOMP # HPERMIN + RPADTEM. (TPER WAS NON ZERO)
|
||||
STCALL TFF # OTHERWISE COMPUTES TFF. (GOTO)
|
||||
S2
|
||||
|
||||
MAXCHK DSU BPL # IF C(MPAC) > 9999.9 NM. MPAC = 9999.9 NM.
|
||||
MAXNM
|
||||
+3 # OTHERWISE C(MPAC) = B(MPAC).
|
||||
DAD RVQ
|
||||
MAXNM
|
||||
+3 DLOAD RVQ # (USED BY P30 - P37 ALSO)
|
||||
MAXNM
|
||||
|
||||
MAXNM 2OCT 0106505603
|
||||
|
||||
# Page 524
|
||||
|
||||
# There is no source code on this page --- HG 2009
|
290
Comanche055/R31.agc
Normal file
290
Comanche055/R31.agc
Normal file
@ -0,0 +1,290 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: R31.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. 505-510
|
||||
# Contact: Onno Hommes <ohommes@cmu.edu>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 2009-05-11 OH Batch 2 Assignment Comanche Transcription
|
||||
# 2009-05-20 RSB Corrected INSTALL -> INTSTALL
|
||||
#
|
||||
# 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 505
|
||||
BANK 34
|
||||
SETLOC R31
|
||||
BANK
|
||||
|
||||
COUNT* $$/R31
|
||||
|
||||
R31CALL CAF PRIO3
|
||||
TC FINDVAC
|
||||
EBANK= SUBEXIT
|
||||
2CADR V83CALL
|
||||
|
||||
DSPDELAY CAF 1SEC
|
||||
TC BANKCALL
|
||||
CADR DELAYJOB
|
||||
CA EXTVBACT
|
||||
MASK BIT12
|
||||
EXTEND
|
||||
BZF DSPDELAY
|
||||
|
||||
DISPN5X CA FLAGWRD9 # TEST R31FLAG (IN SUNDANCE R31FLAG WILL
|
||||
MASK BIT4 # ALWAYS BE SET AS R34 DOES NOT EXIST)
|
||||
EXTEND
|
||||
BZF +3
|
||||
CAF V16N54 # R31 USE NOUN 54
|
||||
TC +2
|
||||
CAF V16N53 # R34 USE NOUN 53
|
||||
TC BANKCALL
|
||||
CADR GOMARKF
|
||||
TC B5OFF
|
||||
TC B5OFF
|
||||
TCF DISPN5X
|
||||
|
||||
V83 TC INTPRET
|
||||
GOTO
|
||||
HAVEBASE # INTEG STATE VECTORS
|
||||
V83CALL TC INTPRET
|
||||
GOTO
|
||||
STATEXTP # EXTRAPOLATE STATE VECTORS
|
||||
COMPDISP VLOAD VSU
|
||||
RATT
|
||||
RONE
|
||||
PUSH ABVAL # RATT-RONE TO 0D PD= 6
|
||||
STORE RANGE # METERS B-29
|
||||
NORM VLOAD
|
||||
X1 # RATT-RONE PD= 0
|
||||
VSR1
|
||||
VSL* UNIT
|
||||
0,1
|
||||
PDVL VSU # UNIT(LOS) TO 0D PD= 6
|
||||
# Page 506
|
||||
VATT
|
||||
VONE
|
||||
DOT # (VATT-VONE).UNIT(LOS) PD= 0
|
||||
SL1
|
||||
STCALL RRATE # RANGE RATE M/CS B-7
|
||||
CDUTRIG # TO INITIALIZE FOR *NBSM*
|
||||
CALL
|
||||
R34LOS # NOTE. PDL MUST = 0.
|
||||
R34ANG VLOAD UNIT
|
||||
RONE
|
||||
PDVL # UR TO 0D PD= 6
|
||||
THISAXIS # UNITX FOR CM, UNITZ FOR LM
|
||||
BON VLOAD # CHK R31FLAG. ON=R31 THETA, OFF=R34 PHI
|
||||
R31FLAG
|
||||
+2 # R31-THETA
|
||||
12D
|
||||
CALL
|
||||
*NBSM*
|
||||
VXM PUSH # UXORZ TO 6D PD=12D
|
||||
REFSMMAT
|
||||
VPROJ VSL2
|
||||
0D
|
||||
BVSU UNIT
|
||||
6D
|
||||
PDVL VXV # UP/2 TO 12D PD=18D
|
||||
RONE
|
||||
VONE
|
||||
UNIT VXV
|
||||
RONE
|
||||
DOT PDVL # SIGN TO 12D, UP/2 TO MPAC PD=18D
|
||||
12D
|
||||
VSL1 DOT # UP.UXORZ
|
||||
6D
|
||||
SIGN SL1
|
||||
12D
|
||||
ACOS
|
||||
STOVL RTHETA
|
||||
RONE
|
||||
DOT BPL
|
||||
6D
|
||||
+5
|
||||
DLOAD BDSU # IF UXORZ.R NEG, RTHETA = 1 - RTHETA
|
||||
RTHETA
|
||||
DPPOSMAX
|
||||
STORE RTHETA # RTHETA BETWEEN 0 AND 1 REV.
|
||||
EXIT
|
||||
CAF BIT5 # HAVE WE BEEN ANSWERED
|
||||
MASK EXTVBACT
|
||||
EXTEND
|
||||
BZF ENDEXT # YES, DIE
|
||||
# Page 507
|
||||
CS EXTVBACT
|
||||
MASK BIT12
|
||||
ADS EXTVBACT
|
||||
|
||||
TCF V83
|
||||
V16N54 VN 1654
|
||||
V16N53 VN 1653
|
||||
|
||||
# Page 508
|
||||
# STATEXTP DOES AN INITIAL PRECISION EXTRAPOLATION OF THE
|
||||
# LEM STATE VECTOR TO PRESENT TIME OR TO PIPTIME IF AV G
|
||||
# IS ON AND SAVES AS BASE VECTOR. IF AV G IS ON RN + VN
|
||||
# ARE USED AS THE CM STATE VECTOR AND THE INITIAL R RDOT
|
||||
# RTHETA ARE COMPUTED WITH NO FURTHER INTEGRATION. IF AV
|
||||
# G IS OFF A PRECISION EXTRAPOLATION IS MADE OF THE CM
|
||||
# STATE VECTOR TO PRESENT TIME AND.....
|
||||
#
|
||||
# THE CM + LM STATE VECTORS ARE INTEGRATED TO PRES TIME
|
||||
# USING PRECISION OR CONIC AS SURFFLAG IS SET OR CLEAR.
|
||||
#
|
||||
# IF AV G IS ON THEN
|
||||
# SUBSEQUENT PASSES WILL PROVIDE
|
||||
# USE OF RN + VN AS CM STATE VECTOR AND THE LM STATE
|
||||
# VECTOR WILL BE PRECISION INTEGRATED USING LEMPREC
|
||||
#
|
||||
# IF SURFFLAG IS SET.
|
||||
# CM STATE VECTOR RONE VONE + LM STATE VECTOR RATT
|
||||
# VATT ARE USED IN COMPUTING R RDOT RTHETA.
|
||||
#
|
||||
|
||||
STATEXTP RTB BOF # INITIAL INTEGRATION
|
||||
LOADTIME
|
||||
V37FLAG
|
||||
+3 # AV G OFF, USE PRES TIME
|
||||
CALL
|
||||
GETRVN # ON, USE RN VN PIPTIME
|
||||
STORE BASETIME # PRES TIME OR PIPTIME
|
||||
STCALL TDEC1
|
||||
LEMPREC
|
||||
VLOAD # BASE VECTOR, LM
|
||||
RATT1
|
||||
STOVL BASEOTP # POS.
|
||||
VATT1
|
||||
STORE BASEOTV # VEL.
|
||||
BON DLOAD
|
||||
V37FLAG
|
||||
COMPDISP # COMPUTE R RDOT RTHETA FROM
|
||||
# RONE(RN) VONE(VN) RATT+VATT(LEMPREC)
|
||||
TAT
|
||||
STCALL TDEC1
|
||||
CSMPREC
|
||||
VLOAD # BASE VECTOR, CM
|
||||
RATT1
|
||||
STOVL BASETHP # POS.
|
||||
VATT1
|
||||
STORE BASETHV # VEL.
|
||||
HAVEBASE BON RTB # SUBSEQUENT INTEGRATIONS
|
||||
V37FLAG
|
||||
GETRVN5
|
||||
LOADTIME
|
||||
STCALL TDEC1 # AV G OFF. SET INTEG. OF CM
|
||||
INTSTALL
|
||||
VLOAD CLEAR
|
||||
BASETHP
|
||||
# Page 509
|
||||
MOONFLAG
|
||||
STOVL RCV
|
||||
BASETHV
|
||||
STODL VCV
|
||||
BASETIME
|
||||
BOF SET # GET APPROPRIATE MOONFLAG SETTING
|
||||
MOONTHIS
|
||||
+2
|
||||
MOONFLAG
|
||||
CLEAR
|
||||
INTYPFLG
|
||||
BON SET
|
||||
SURFFLAG
|
||||
+2 # PREC. IF LM DOWN
|
||||
INTYPFLG # CONIC IF LM NOT DOWN
|
||||
STCALL TET
|
||||
INTEGRVS # INTEGRATION --- AT LAST---
|
||||
VLOAD
|
||||
RATT
|
||||
STOVL RONE
|
||||
VATT
|
||||
STODL VONE # GET SET FOR CONIC EXTRAP.,OTHER
|
||||
TAT
|
||||
BON CALL
|
||||
SURFFLAG
|
||||
GETRVN6 # LEMPREC IF LM DOWN
|
||||
INTSTALL # ..CONIC IF NOT DOWN
|
||||
SET
|
||||
INTYPFLG
|
||||
OTHINT STORE TDEC1 # ENTERED IF AV G ON TO INTEG LM
|
||||
VLOAD CLEAR
|
||||
BASEOTP
|
||||
MOONFLAG
|
||||
STOVL RCV
|
||||
BASEOTV
|
||||
STODL VCV
|
||||
BASETIME
|
||||
BOF SET
|
||||
MOONTHIS
|
||||
+2
|
||||
MOONFLAG
|
||||
STCALL TET
|
||||
INTEGRVS
|
||||
GOTO
|
||||
COMPDISP # COMPUTE R RDOT RTHETA
|
||||
GETRVN5 CALL # AV G ON
|
||||
GETRVN
|
||||
BON CALL
|
||||
SURFFLAG
|
||||
GETRVN6 # LM DOWN, LMPREC
|
||||
# Page 510
|
||||
INTSTALL
|
||||
CLEAR GOTO
|
||||
INTYPFLG
|
||||
OTHINT
|
||||
GETRVN6 STCALL TDEC1
|
||||
LEMPREC
|
||||
GOTO
|
||||
COMPDISP # COMPUTE R RDOT RTHETA
|
||||
GETRVN STQ
|
||||
0D
|
||||
VLOAD GOTO # AV G ON, RONE = RN VONE = VN
|
||||
RN # AND USE PIPTIME
|
||||
+1
|
||||
STCALL RONE
|
||||
+1
|
||||
VLOAD GOTO
|
||||
VN
|
||||
+1
|
||||
STODL VONE
|
||||
PIPTIME
|
||||
GOTO
|
||||
0D
|
||||
SETLOC R34
|
||||
BANK
|
||||
R34LOS EXIT
|
||||
CA CDUS
|
||||
INDEX FIXLOC
|
||||
TS 9D
|
||||
CA CDUT
|
||||
INDEX FIXLOC
|
||||
TS 11D
|
||||
CA FIXLOC
|
||||
AD SIX
|
||||
COM
|
||||
INDEX FIXLOC
|
||||
TS X1
|
||||
TC INTPRET
|
||||
CALL
|
||||
SXTNB
|
||||
STCALL 12D
|
||||
R34ANG
|
385
Comanche055/R60_62.agc
Normal file
385
Comanche055/R60_62.agc
Normal file
@ -0,0 +1,385 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: R60_62.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: 390-398
|
||||
# Mod history: 2009-05-09 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 390
|
||||
BANK 34
|
||||
SETLOC MANUVER
|
||||
BANK
|
||||
|
||||
EBANK= TEMPR60
|
||||
|
||||
COUNT 27/R60
|
||||
|
||||
# CONFORMS TO GSOP CHAPTER FOUR REVISION LOGIC 09 JAN 18,1968
|
||||
|
||||
R60CSM TC MAKECADR
|
||||
TS TEMPR60
|
||||
|
||||
# INSERT PRIODSP CHECK WITH R22 (V06N49) WITH JENNINGS BRODEUR
|
||||
|
||||
REDOMANN CAF BIT6
|
||||
MASK FLAGWRD5 # IS 3-AXIS FLAG SET
|
||||
CCS A
|
||||
TCF TOBALL # YES
|
||||
TC INTPRET
|
||||
CALL
|
||||
VECPOINT # TO COMPUTE FINAL ANGLES
|
||||
STORE CPHI # STORE FINAL ANGLES - CPHI,CTHETA,CPSI
|
||||
EXIT
|
||||
|
||||
TOBALL CAF V06N18
|
||||
TC BANKCALL
|
||||
CADR GOPERF2R # DISPLAY PLEASE PERFORM AUTO MANEUVER
|
||||
TC R61TEST
|
||||
TC REDOMANC # PROCEED
|
||||
TCF ENDMANU1 # ENTER I.E. FINISHED WITH R60
|
||||
|
||||
TC CHKLINUS # TO CHECK FOR PRIORITY DISPLAYS
|
||||
TC ENDOFJOB
|
||||
|
||||
REDOMANC CAF BIT6
|
||||
MASK FLAGWRD5 # IS 3-AXIS FLAG SET
|
||||
CCS A
|
||||
TCF TOBALLC # YES
|
||||
TC INTPRET
|
||||
CALL
|
||||
VECPOINT # TO COMPUTE FINAL ANGLES
|
||||
STORE CPHI # STORE ANGLES
|
||||
EXIT
|
||||
|
||||
TOBALLC CAF PRIO30 # IS MODE AUTO AND CTL GNC
|
||||
# Page 391
|
||||
EXTEND
|
||||
RXOR CHAN31
|
||||
MASK 13,14,15
|
||||
EXTEND
|
||||
BZF +2 # AUTO, NON-FLASH N18
|
||||
TCF TOBALL # NOT AUTO
|
||||
|
||||
CAF V06N18 # SET UP NON-FLASHING V06 N18
|
||||
TC BANKCALL
|
||||
CADR GODSPR
|
||||
TC CHKLINUS
|
||||
|
||||
STARTMNV TC BANKCALL
|
||||
CADR GOMANUR
|
||||
ENDMANUV TCF TOBALL # FINISHED MANEUVER
|
||||
|
||||
ENDMANU1 TC DOWNFLAG # RESET 3-AXIS FLAG
|
||||
ADRES 3AXISFLG # BIT 6 FLAG 5
|
||||
CAE TEMPR60
|
||||
TC BANKJUMP
|
||||
|
||||
CHKLINUS CS FLAGWRD4
|
||||
MASK BIT12 # IS PRIORITY DISPLAY FLAG SET
|
||||
CCS A
|
||||
TC Q # NO - EXIT
|
||||
CA Q
|
||||
TS MPAC +2 # SAVE RETURN
|
||||
CS THREE # OBTAIN LOCATION FOR RESTART.
|
||||
AD BUF2 # HOLDS Q OF LAST DISPLAY
|
||||
TS TBASE1
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 71 # 1.7SPOT FOR RELINUS
|
||||
|
||||
CAF BIT7
|
||||
TC LINUS # GO SET BITS FOR PRIORITY DISPLAY
|
||||
TC MPAC +2
|
||||
|
||||
RELINUS CAF BIT5 # IS TRACK FLAG ON
|
||||
MASK FLAGWRD1
|
||||
EXTEND
|
||||
BZF GOREDO20 # NO
|
||||
|
||||
TC UPFLAG
|
||||
ADRES PDSPFLAG # R60 PRIODSP FLAG
|
||||
|
||||
TC UPFLAG
|
||||
ADRES TARG1FLG # FOR R52
|
||||
|
||||
CAF ZERO # RESET TO ZERO, SINCE
|
||||
# Page 392
|
||||
TS OPTIND # OPTIND WAS SET TO -1 BY V379
|
||||
|
||||
CAF PRIO14 # RESTORE ORIGINAL PRIORITY
|
||||
TC PRIOCHNG
|
||||
|
||||
TC TBASE1
|
||||
|
||||
GOREDO20 TC PHASCHNG
|
||||
OCT 111 # 1.11 FOR PIKUP20
|
||||
|
||||
TC ENDOFJOB
|
||||
|
||||
R61TEST CA MODREG # ARE WE IN P00. IF YES THIS MUST BE
|
||||
EXTEND # VERB49 OR VERB89 SO DO ENDEXT.
|
||||
BZF ENDMANU1 # RESET 3-AXIS & RUTURN. USER DOES ENDEXT
|
||||
CA FLAGWRD4 # ARE WE IN R61 (P20)
|
||||
MASK BIT12
|
||||
EXTEND
|
||||
BZF GOTOPOOH # NO
|
||||
TC GOTOV56 # YES
|
||||
|
||||
BIT14+7 OCT 20100
|
||||
V06N18 VN 0618
|
||||
|
||||
# Page 393
|
||||
# PROGRAM DESCRIPTION - VECPOINT
|
||||
|
||||
|
||||
# THIS INTERPRETIVE SUBROUTINE MAY BE USED TO POINT A SPACECRAFT AXIS IN A DESIRED DIRECTION. THE AXIS
|
||||
# TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN SUCCESSIVE LOCATIONS OF ERASABLE MEMORY
|
||||
# BEGINNING WITH THE LOCATION CALLED SCAXIS. THE COMPONENTS OF THIS VECTOR ARE GIVEN IN SPACECRAFT COORDINATES.
|
||||
# THE DIRECTION IN WHICH THIS AXIS IS TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN
|
||||
# SUCCESSIVE LOCATIONS OF ERASABLE MEMORY BEGINNING WITH THE ADDRESS CALLED POINTVSM. THE COMPONENTS OF THIS
|
||||
# VECTOR ARE GIVEN IN STABLE MEMBER COORDINATES. WITH THIS INFORMATION VECPOINT COMPUTES A SET OF THREE GIMBAL
|
||||
# ANGLES (2S COMPLEMENT) CORRESPONDING TO THE CROSS-PRODUCT ROTATION BETWEEN SCAXIS AND POINTVSM AND STORES THEM
|
||||
# IN T(MPAC) BEFORE RETURNING TO THE CALLER.
|
||||
# THIS ROTATION, HOWEVER, MAY BRING THE S/C INTO GIMBAL LOCK. WHEN POINTING A VECTOR IN THE Y-Z PLANE,
|
||||
# THE TRANSPONDER AXIS, OR THE AOT FOR THE LEM, THE PROGRAM WILL CORRECT THIS PROBLEM BY ROTATING THE CROSS-
|
||||
# PRODUCT ATTITUDE ABOUT POINTVSM BY A FIXED AMOUNT SUFFICIENT TO ROTATE THE DESIRED S/C ATTITUDE OUT OF GIMBAL
|
||||
# LOCK. IF THE AXIS TO BE POINTED IS MORE THAN 40.6 DEGREES BUT LESS THAN 60.5 DEG FROM THE +X (OR-X) AXIS,
|
||||
# THE ADDITIONAL ROTATION TO AVOID GIMBAL LOCK IS 35 DEGREES. IF THE AXIS IS MORE THAN 60.5 DEGREES FROM +X (OR -X)
|
||||
# THE ADDITIONAL ROTATION IS 35 DEGREES. THE GIMBAL ANGLES CORRESPONDING TO THIS ATTITUDE ARE THEN COMPUTED AND
|
||||
# STORED AS 2S COMPLIMENT ANGLES IN T(MPAC) BEFORE RETURNING TO THE CALLER.
|
||||
# WHEN POINTING THE X-AXIS, OR THE THRUST VECTOR, OR ANY VECTOR WITHIN 40.6 DEG OF THE X-AXIS, VECPOINT
|
||||
# CANNOT CORRECT FOR A CROSS-PRODUCT ROTATION INTO GIMBAL LOCK. IN THIS CASE A PLATFORM REALIGNMENT WOULD BE
|
||||
# REQUIRED TO POINT THE VECTOR IN THE DESIRED DIRECTION. AT PRESENT NO INDICATION IS GIVEN FOR THIS SITUATION
|
||||
# EXCEPT THAT THE FINAL MIDDLE GIMBAL ANGLE IN MPAC +2 IS GREATER THAN 59 DEGREES.
|
||||
|
||||
# CALLING SEQUENCE -
|
||||
# 1) LOAD SCAXIS, POINTVSM
|
||||
# 2) CALL
|
||||
# VECPOINT
|
||||
|
||||
# RETURNS WITH
|
||||
|
||||
# 1) DESIRED OUTER GIMBAL ANGLE IN MPAC
|
||||
# 2) DESIRED INNER GIMBAL ANGLE IN MPAC +1
|
||||
# 3) DESIRED MIDDLE GIMBAL ANGLE IN MPAC +2
|
||||
|
||||
|
||||
# ERASABLES USED -
|
||||
|
||||
# 1) SCAXIS 6
|
||||
# 2) POINTVSM 6
|
||||
# 3) MIS 18
|
||||
# 4) DEL 18
|
||||
# 5) COF 6
|
||||
# 6) VECQTEMP 1
|
||||
# 7) ALL OF VAC AREA 43
|
||||
|
||||
# TOTAL 99
|
||||
|
||||
SETLOC VECPT
|
||||
BANK
|
||||
# Page 394
|
||||
EBANK= BCDU
|
||||
|
||||
COUNT 27/VECPT
|
||||
|
||||
VECPOINT STQ BOV # SAVE RETURN ADDRESS
|
||||
VECQTEMP
|
||||
VECLEAR # AND CLEAR OVFIND
|
||||
VECLEAR AXC,2 RTB
|
||||
MIS # READ THE PRESENT CDU ANGLES AND
|
||||
READCDUK # STORE THEM IN PD25, 26, 27
|
||||
STCALL 25D
|
||||
CDUTODCM # S/C AXES TO STABLE MEMBER AXES (MIS)
|
||||
VLOAD VXM
|
||||
POINTVSM # RESOLVE THE POINTING DIRECTION VF INTO
|
||||
MIS # INITIAL S/C AXES ( VF = POINTVSM)
|
||||
UNIT
|
||||
STORE 28D
|
||||
# PD 28 29 30 31 32 33
|
||||
VXV UNIT # TAKE THE CROSS PRODUCT VF X VI
|
||||
SCAXIS # WHERE VI = SCAXIS
|
||||
BOV VCOMP
|
||||
PICKAXIS
|
||||
STODL COF # CHECK MAGNITUDE
|
||||
36D # OF CROSS PRODUCT
|
||||
DSU BMN # VECTOR, IF LESS
|
||||
DPB-14 # THAN B-14 ASSUME
|
||||
PICKAXIS # UNIT OPERATION
|
||||
VLOAD DOT # INVALID.
|
||||
SCAXIS
|
||||
28D
|
||||
SL1 ARCCOS
|
||||
COMPMATX CALL # NOW COMPUTE THE TRANSFORMATION FROM
|
||||
DELCOMP # FINAL S/C AXES TO INITIAL S/C AXES MFI
|
||||
AXC,1 AXC,2
|
||||
MIS # COMPUTE THE TRANSFORMATION FROM FINAL
|
||||
DEL # S/C AXES TO STABLE MEMBER AXES
|
||||
CALL # MFS = MIS MFI
|
||||
MXM3 # (IN PD LIST)
|
||||
|
||||
DLOAD ABS
|
||||
6 # MFS6 = SIN(CPSI) $2
|
||||
DSU BMN
|
||||
SINGIMLC # = SIN(59 DEGS) $2
|
||||
FINDGIMB # /CPSI/ LESS THAN 59 DEGS
|
||||
# I.E. DESIRED ATTITUDE NOT IN GIMBAL LOCK
|
||||
|
||||
DLOAD ABS # CHECK TO SEE IF WE ARE POINTING
|
||||
SCAXIS # THE THRUST AXIS
|
||||
DSU BPL
|
||||
SINVEC1 # SIN 49.4 DEGS $2
|
||||
# Page 395
|
||||
FINDGIMB # IF SO, WE ARE TRYING TO POINT IT INTO
|
||||
VLOAD # GIMBAL LOCK, ABORT COULD GO HERE
|
||||
STADR
|
||||
STOVL MIS +12D
|
||||
STADR # STORE MFS (IN PD LIST) IN MIS
|
||||
STOVL MIS +6
|
||||
STADR
|
||||
STOVL MIS
|
||||
MIS +6 # INNER GIMBAL AXIS IN FINAL S/C AXES
|
||||
BPL VCOMP # LOCATE THE IG AXIS DIRECTION CLOSEST TO
|
||||
IGSAMEX # FINAL X S/C AXIS
|
||||
|
||||
IGSAMEX VXV BMN # FIND THE SHORTEST WAY OF ROTATING THE
|
||||
SCAXIS # S/C OUT OF GIMBAL LOCK BY A ROTATION
|
||||
U=SCAXIS # ABOUT +- SCAXIS, I.E. IF (IG (SGN MFS3)
|
||||
# X SCAXIS . XF) LESS THAN 0, U = SCAXIS
|
||||
# OTHERWISE U = -SCAXIS.
|
||||
|
||||
VLOAD VCOMP
|
||||
SCAXIS
|
||||
STCALL COF # ROTATE ABOUT -SCAXIS
|
||||
CHEKAXIS
|
||||
U=SCAXIS VLOAD
|
||||
SCAXIS
|
||||
STORE COF # ROTATE ABOUT + SCAXIS
|
||||
CHEKAXIS DLOAD ABS
|
||||
SCAXIS # SEE IF WE ARE POINTING THE AOT
|
||||
DSU BPL
|
||||
SINVEC2 # SIN 29.5 DEGS $2
|
||||
PICKANG1 # IF SO, ROTATE 50 DEGS ABOUT +- SCAXIS
|
||||
DLOAD GOTO # IF NOT, MUST BE POINTING THE TRANSPONDER
|
||||
VECANG2 # OR SOME VECTOR IN THE Y, OR Z PLANE
|
||||
COMPMFSN # IN THIS CASE ROTATE 35 DEGS TO GET OUT
|
||||
# OF GIMBAL LOCK (VECANG2 $360)
|
||||
PICKANG1 DLOAD
|
||||
VECANG1 # = 50 DEGS $360
|
||||
COMPMFSN CALL
|
||||
DELCOMP # COMPUTE THE ROTATION ABOUT SCAXIS TO
|
||||
AXC,1 AXC,2 # BRING MFS OUT OF GIMBAL LOCK
|
||||
MIS
|
||||
DEL
|
||||
CALL # COMPUTE THE NEW TRANSFORMATION FROM
|
||||
MXM3 # DESIRED S/C AXES TO STABLE MEMBER AXES
|
||||
# WHICH WILL ALIGN VI WITH VF AND AVOID
|
||||
# GIMBAL LOCK
|
||||
FINDGIMB AXC,1 CALL
|
||||
0 # EXTRACT THE COMMANDED CDU ANGLES FROM
|
||||
DCMTOCDU # THIS MATRIX
|
||||
RTB SETPD
|
||||
V1STO2S # CONVERT TO 2:S COMPLEMENT
|
||||
# Page 396
|
||||
0
|
||||
GOTO
|
||||
VECQTEMP # RETURN TO CALLER
|
||||
|
||||
PICKAXIS VLOAD DOT # IF VF X VI = 0, FIND VF . VI
|
||||
28D
|
||||
SCAXIS
|
||||
BMN TLOAD
|
||||
ROT180
|
||||
25D
|
||||
GOTO # IF VF = VI, CDU DESIRED = PRESENT CDU
|
||||
VECQTEMP # PRESENT CDU ANGLES
|
||||
|
||||
ROT180 VLOAD VXV # IF VF, VI ANTI-PARALLEL, 180 DEG ROTATION
|
||||
MIS +6 # IS REQUIRED. Y STABLE MEMBER AXIS IN
|
||||
HIUNITX # INITIAL S/C AXIS.
|
||||
UNIT VXV # FIND Y(SM) X X(I)
|
||||
SCAXIS # FIND UNIT(VI X UNIT(Y(SM) X X(I)))
|
||||
UNIT BOV # I.E. PICK A VECTOR IN THE PLANE OF X(I),
|
||||
PICKX # Y(SM) PERPENDICULAR TO VI
|
||||
STODL COF
|
||||
36D # CHECK MAGNITUDE
|
||||
DSU BMN # OF THIS VECTOR.
|
||||
DPB-14 # IF LESS THAN B-14,
|
||||
PICKX # PICK X-AXIS.
|
||||
VLOAD
|
||||
COF
|
||||
XROT STODL COF
|
||||
HIDPHALF
|
||||
GOTO
|
||||
COMPMATX
|
||||
PICKX VLOAD GOTO # PICK THE XAXIS IN THIS CASE
|
||||
HIUNITX
|
||||
XROT
|
||||
BANK 35
|
||||
SETLOC MANUVER1
|
||||
BANK
|
||||
|
||||
SINGIMLC 2DEC .4285836003 # =SIN(59) $2
|
||||
|
||||
SINVEC1 2DEC .3796356537 # =SIN(49.4) $2
|
||||
|
||||
SINVEC2 2DEC .2462117800 # =SIN(29.5) $2
|
||||
|
||||
VECANG1 2DEC .1388888889 # = 50 DEGREES $360
|
||||
|
||||
VECANG2 2DEC .09722222222 # = 35 DEGREES $360
|
||||
|
||||
|
||||
1BITDP OCT 0 # KEEP THIS BEFORE DPB(-14) *********
|
||||
DPB-14 OCT 00001
|
||||
# Page 397
|
||||
OCT 00000
|
||||
BANK 34
|
||||
SETLOC MANUVER
|
||||
BANK
|
||||
|
||||
# Page 398
|
||||
# ROUTINE FOR INITIATING AUTOMATIC MANEUVER VIA KEYBOARD (V49)
|
||||
|
||||
EBANK= CPHI
|
||||
|
||||
COUNT 27/R62
|
||||
|
||||
R62DISP CAF V06N22 # DISPLAY COMMAND ICDUS CPHI, CTHETA, CPHI
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TCF ENDEXT
|
||||
TCF GOMOVE # PROCEED
|
||||
TCF R62DISP # ENTER
|
||||
|
||||
# ASTRONAUT MAY LOAD NEW ICDUS AT THIS
|
||||
# POINT
|
||||
GOMOVE TC UPFLAG # SET 3-AXIS FLAG
|
||||
ADRES 3AXISFLG # BIT 6 FLAG 5
|
||||
|
||||
TC BANKCALL
|
||||
CADR R60CSM
|
||||
TCF ENDEXT
|
85
Comanche055/RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc
Normal file
85
Comanche055/RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc
Normal file
@ -0,0 +1,85 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RCS-CSM_DAP_EXECUTIVE_PROGRAMS.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: 1037-1038
|
||||
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images.
|
||||
# 2009-05-20 RSB A "Page N" comment was corrected.
|
||||
#
|
||||
# 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 1037
|
||||
# CALCULATION OF AMGB, AMBG ONCE EVERY SECOND
|
||||
#
|
||||
# AMGB = 1 SIN(PSI) 0
|
||||
# 0 COS(PSI)COS(PHI) SIN(PHI)
|
||||
# 0 -COS(PSI)SIN(PHI) COS(PHI)
|
||||
#
|
||||
# AMBG = 1 -TAN(PSI)COS(PHI) TAN(PSI)SIN(PHI)
|
||||
# 0 COS(PHI)/COS(PSI) -SIN(PHI)/COS(PSI)
|
||||
# 0 SIN(PHI) COS(PHI)
|
||||
#
|
||||
# WHERE PHI AND PSI ARE CDU ANGLES
|
||||
|
||||
|
||||
BANK 20
|
||||
SETLOC DAPS8
|
||||
BANK
|
||||
|
||||
COUNT* $$/DAPEX
|
||||
EBANK= KMPAC
|
||||
AMBGUPDT CA FLAGWRD6 # CHECK FOR RCS AUTOPILOT
|
||||
EXTEND
|
||||
BZMF ENDOFJOB # BIT15 = 0, BIT14 = 1
|
||||
MASK BIT14 # IF NOT RCS, EXIT
|
||||
EXTEND
|
||||
BZF ENDOFJOB # TO PROTECT TVC DAP ON SWITCHOVER
|
||||
|
||||
CA CDUZ
|
||||
TC SPSIN2
|
||||
TS AMGB1 # CALCULATE AMGB
|
||||
CA CDUZ
|
||||
TC SPCOS2
|
||||
TS CAPSI # MUST CHECK FOR GIMBAL LOCK
|
||||
CAF QUADANGL # = 7.25 DEGREES JET QUAD ANGULAR OFFSET
|
||||
EXTEND
|
||||
MSU CDUX
|
||||
COM # CDUX - 7.25 DEG
|
||||
TC SPCOS1
|
||||
TS AMGB8
|
||||
EXTEND
|
||||
MP CAPSI
|
||||
TS AMGB4
|
||||
CAF QUADANGL
|
||||
EXTEND
|
||||
MSU CDUX
|
||||
COM # CDUX - 7.25 DEG
|
||||
TC SPSIN1
|
||||
TS AMGB5
|
||||
EXTEND
|
||||
MP CAPSI
|
||||
COM
|
||||
# Page 1038
|
||||
TS AMGB7
|
||||
TCF ENDOFJOB
|
||||
QUADANGL DEC 660 # = 7.25 DEGREES
|
975
Comanche055/RCS-CSM_DIGITAL_AUTOPILOT.agc
Normal file
975
Comanche055/RCS-CSM_DIGITAL_AUTOPILOT.agc
Normal file
@ -0,0 +1,975 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RCS-CSM_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: 1002-1024
|
||||
# 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 1002
|
||||
# T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
|
||||
# START OF T5 INTERRUPT PROGRAM
|
||||
|
||||
|
||||
BANK 20
|
||||
SETLOC DAPS3
|
||||
BANK
|
||||
|
||||
COUNT 21/DAPRC
|
||||
|
||||
EBANK= KMPAC
|
||||
REDORCS LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE
|
||||
CA T5PHASE # ON A T5 RUPT.
|
||||
EXTEND
|
||||
BZMF +2 # IF T5PHASE +0, -0, OR -, RESET TO -
|
||||
TCF +3 # IF T5PHASE +, LEAVE IT +. DO A FRESHDAP
|
||||
CS ONE
|
||||
TS T5PHASE
|
||||
EXTEND
|
||||
DCA RCSLOC
|
||||
DXCH T5LOC # HOOK UP T5RUPT TO AUTOPILOT
|
||||
TCF RCSATT +1
|
||||
EBANK= KMPAC
|
||||
RCSLOC 2CADR RCSATT
|
||||
|
||||
RCSATT LXCH BANKRUPT # SAVE BB
|
||||
EXTEND # SAVE Q
|
||||
QXCH QRUPT
|
||||
CAF BIT15 # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
|
||||
EXTEND # S/C CONT SW IS IN CMC (I.E. IF G/C AUTO
|
||||
RAND CHAN31 # PILOT IS FULLY ENABLED)
|
||||
EXTEND
|
||||
BZF SETT5 # IF G/C AUTOPILOT IS FULLY ENABLED,
|
||||
# GO TO SETT5
|
||||
|
||||
CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLED,
|
||||
MASK BIT14
|
||||
ADS RCSFLAGS # SET NORATE FLAG,
|
||||
CAF POSMAX
|
||||
TS HOLDFLAG # SET HOLDFLAG +,
|
||||
CAF ZERO # ZERO ERRORX, ERRORY, AND ERRORZ,
|
||||
TS ERRORX
|
||||
TS ERRORY
|
||||
TS ERRORZ
|
||||
CAF BIT14
|
||||
EXTEND
|
||||
RAND CHAN31 # AND CHECK FREE FUNCTION (BIT14 CHAN31).
|
||||
EXTEND
|
||||
# Page 1003
|
||||
BZF SETT5 # IF IN FREE MODE, GO TO SETT5.
|
||||
|
||||
TS T5PHASE # IF NOT IN FREE MODE,
|
||||
CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP)
|
||||
TS TIME5 # IN 100 MS VIA T5RUPT
|
||||
|
||||
TCR ZEROJET # ZERO JET CHANNELS IN 14 MS VIA ZEROJET
|
||||
|
||||
TCF KMATRIX
|
||||
DELTATT OCT 37770 # 80MS (TIME5)
|
||||
DELTATT2 OCT 37776 # 20MS (TIME5)
|
||||
ONESEK DEC 16284 # 1 SEC(TIME5)
|
||||
CHAN5 EQUALS 5
|
||||
CHAN6 EQUALS 6
|
||||
PRIO34A = PRIO34
|
||||
# CHECK PHASE OF T5 PROGRAM
|
||||
|
||||
# BECAUSE OF THE LENGTH OF THE T5 PROGRAM, IT HAS BEEN DIVIDED INTO
|
||||
# THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
|
||||
# TO ALLOW FOR THE EXECUTION OF OTHER
|
||||
# INTERRUPTS. T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
|
||||
# VARIABLES AT TURN ON.
|
||||
# THE CODING OF T5PHASE IS...
|
||||
|
||||
# + = INITIALIZE T5 RCS-CSM AUTOPILOT
|
||||
# T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
|
||||
# - = RESTART DAP
|
||||
# -0 = PHASE1 OF THE T5 PROGRAM
|
||||
|
||||
SETT5 CCS T5PHASE
|
||||
TCF FRESHDAP # TURN ON AUTOPILOT
|
||||
TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM
|
||||
TCF REDAP # RESTART AUTOPILOT
|
||||
|
||||
TS T5PHASE # PHASE 1 RESET FOR PHASE 2
|
||||
CA TIME5
|
||||
TS T5TIME # USED IN COMPENSATING FOR DELAYS IN T5
|
||||
CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2
|
||||
TS TIME5 # OF PROGRAM
|
||||
|
||||
# Page 1004
|
||||
# IMU STATUS CHECK
|
||||
|
||||
CS IMODES33 # CHECK IMU STATUS
|
||||
MASK BIT6 # BIT6 = 0 IMU OK
|
||||
CCS A # BIT6 = 1 NO IMU
|
||||
TCF RATEFILT
|
||||
FREECHK CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN
|
||||
MASK BIT14 # INITIALIZED
|
||||
ADS RCSFLAGS
|
||||
CAF BIT14 # NO ATTITUDE REFERENCE
|
||||
TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE
|
||||
# TO PICK UP CDU ANGLES UPON RESUMPTION OF
|
||||
# ATTITUDE HOLD
|
||||
EXTEND
|
||||
RAND CHAN31 # CHECK FOR FREE MODE
|
||||
EXTEND
|
||||
BZF KRESUME1 # IN FREE MODE PROVIDE FREE CONTROL ONLY
|
||||
TCF REINIT # .....TILT...............................
|
||||
BITS4,5 OCT 30
|
||||
|
||||
RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED
|
||||
MASK BIT14
|
||||
EXTEND # IF SO, PROCEED WITH RATE DERIVATION
|
||||
BZF +2
|
||||
TCF KMATRIX # IF NOT, SKIP RATE DERIVATION
|
||||
|
||||
# RATE FILTER TIMING = 7.72 MS
|
||||
|
||||
# RATE FILTER EQUATIONS
|
||||
# DRHO = DELRHO - (.1)ADOT + (1 = GAIN1)DRHO
|
||||
# -1
|
||||
# ADOT = ADOT + GAIN2 DRHO + KMJ DFT
|
||||
# -1
|
||||
# - * - -
|
||||
# WHERE DELRHO = AMGB (CDU - CDU )
|
||||
# -1
|
||||
|
||||
CAF TWO
|
||||
DRHOLOOP TS SPNDX
|
||||
DOUBLE
|
||||
TS DPNDX
|
||||
INDEX DPNDX
|
||||
CS DRHO # DRHO SCALED 180 DEGS
|
||||
EXTEND
|
||||
INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN
|
||||
MP GAIN1
|
||||
INDEX DPNDX
|
||||
DAS DRHO # (1 -.064)DRHO
|
||||
EXTEND
|
||||
# Page 1005
|
||||
INDEX DPNDX
|
||||
DCS ADOT
|
||||
DXCH KMPAC # -(.1)ADOT
|
||||
CA QUARTER
|
||||
TC SMALLMP
|
||||
DXCH KMPAC
|
||||
INDEX DPNDX
|
||||
DAS DRHO
|
||||
CCS SPNDX
|
||||
TCF DRHOLOOP
|
||||
|
||||
CA CDUX # MEASURED BODY RATES--
|
||||
XCH RHO
|
||||
EXTEND
|
||||
MSU RHO # - * - -
|
||||
COM # DELRHO = AMGB (CDU - CDU )
|
||||
# -1
|
||||
ZL
|
||||
DXCH DELTEMPX
|
||||
CA CDUY
|
||||
XCH RHO1
|
||||
EXTEND
|
||||
MSU RHO1
|
||||
COM
|
||||
TS T5TEMP # (CDUY - RHO1) SCALED 90 DEGS
|
||||
EXTEND
|
||||
MP AMGB1
|
||||
DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
|
||||
# MUST BE DOUBLE PRECISION OR WILL LOSE
|
||||
# PULSES
|
||||
CA AMGB4
|
||||
EXTEND
|
||||
MP T5TEMP
|
||||
DXCH DELTEMPY
|
||||
CA AMGB7
|
||||
EXTEND
|
||||
MP T5TEMP
|
||||
DXCH DELTEMPZ
|
||||
CA CDUZ
|
||||
XCH RHO2
|
||||
EXTEND
|
||||
MSU RHO2
|
||||
COM
|
||||
TS T5TEMP # (CDUZ - RHO2) SCALED 90 DEGS
|
||||
EXTEND
|
||||
MP AMGB5
|
||||
DAS DELTEMPY # DELTEMPY =AMGB4(CDUY-RHO1)
|
||||
# + AMGB5(CDUZ-RHO2)
|
||||
CA AMGB8
|
||||
EXTEND
|
||||
|
||||
# Page 1006
|
||||
MP T5TEMP
|
||||
DAS DELTEMPZ # DELTEMPZ = AMBG7(CDUY-RHO1)
|
||||
# + AMGB8(CDUZ-RHO2)
|
||||
CAF TWO
|
||||
ADOTLOOP TS SPNDX
|
||||
DOUBLE
|
||||
TS DPNDX
|
||||
EXTEND
|
||||
INDEX DPNDX
|
||||
DCA DELTEMPX
|
||||
INDEX DPNDX
|
||||
DAS DRHO
|
||||
EXTEND
|
||||
INDEX DPNDX
|
||||
DCA DELTEMPX
|
||||
INDEX DPNDX
|
||||
DAS MERRORX
|
||||
INDEX DPNDX
|
||||
CA DRHO
|
||||
DOUBLE # N.B.
|
||||
DOUBLE # N.B.
|
||||
EXTEND
|
||||
INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS
|
||||
MP GAIN2
|
||||
INDEX DPNDX # ADOT + (.16)(.1)DRHO
|
||||
DAS ADOT # -1
|
||||
INDEX SPNDX # S/C TORQUE TO INERTIA RATIO
|
||||
CA KMJ # SCALED (450)(1600)/(57.3)(16384)=1/1.3
|
||||
EXTEND
|
||||
INDEX SPNDX
|
||||
MP DFT
|
||||
INDEX DPNDX
|
||||
DAS ADOT # KMJ(DFT)
|
||||
CCS SPNDX
|
||||
TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES
|
||||
KMATRIX CA ATTSEC
|
||||
MASK LOW4
|
||||
CCS A
|
||||
TCF TENTHSEK
|
||||
CAF PRIO34 # CALL FOR 1 SEC UPDATE OF TRANSFORMATION
|
||||
TC NOVAC # MATRIX FROM GIMBAL AXES TO BODY AXES
|
||||
EBANK= KMPAC
|
||||
2CADR AMBGUPDT
|
||||
|
||||
CAF NINE
|
||||
|
||||
TENTHSEK TS ATTSEC
|
||||
|
||||
# Page 1007
|
||||
# WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
|
||||
# SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--
|
||||
|
||||
# CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION)
|
||||
# CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION)
|
||||
# CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION)
|
||||
|
||||
# THE STEERING PROGRAMS-
|
||||
# 1) ATTITUDE MANEUVER ROUTINE
|
||||
# 2) LEM TRACKING
|
||||
|
||||
# SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
|
||||
# DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.
|
||||
|
||||
# HOLDFLAG CODING-
|
||||
|
||||
# + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
|
||||
# AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
|
||||
# ALSO IGNORE AUTOMATIC STEERING
|
||||
# SET = + BY
|
||||
# 1) INITIALIZATION PHASE OF AUTOPILOT
|
||||
# 2) OCCURANCE OF RHC COMMANDS
|
||||
# 3) FREE MODE
|
||||
# 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
|
||||
# WHILE DOING AUTOMATIC STEERING (IN THIS CASE
|
||||
# HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
|
||||
# FUNCTIONS AS IF IT WERE.)
|
||||
# 5) S/C CONTROL SWITCH IS SCS
|
||||
# 6) IMU POWER OFF
|
||||
# +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
|
||||
# - = PERFORMING AUTOMATIC MANEUVER
|
||||
# -0 = NOT USED AT PRESENT
|
||||
|
||||
|
||||
# NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
|
||||
# SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
|
||||
# DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE THE APPROPRIATE ACTION.
|
||||
|
||||
CS HOLDFLAG
|
||||
EXTEND
|
||||
BZMF DACNDLS # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
|
||||
# COMMANDS
|
||||
DCDUINCR CAF TWO
|
||||
DELOOP TS SPNDX
|
||||
DOUBLE
|
||||
TS DPNDX
|
||||
EXTEND
|
||||
INDEX A
|
||||
DCA CDUXD
|
||||
# Page 1008
|
||||
DXCH KMPAC
|
||||
EXTEND
|
||||
INDEX DPNDX
|
||||
DCA DELCDUX
|
||||
TC DPADD
|
||||
EXTEND
|
||||
DCA KMPAC
|
||||
INDEX SPNDX
|
||||
TS THETADX
|
||||
INDEX DPNDX
|
||||
DXCH CDUXD
|
||||
CCS SPNDX
|
||||
TCF DELOOP
|
||||
|
||||
# Page 1009
|
||||
# RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY
|
||||
|
||||
# THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI-
|
||||
|
||||
# MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E
|
||||
# GENERATED INTERNALLY BY THE AUTOPILOT
|
||||
|
||||
# MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E
|
||||
# WITH RESPECT TO THE CONTENTS OF N22
|
||||
|
||||
# MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E
|
||||
# WITH RESPECT TO THE CONTENTS OF N17
|
||||
|
||||
# MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS. IN THIS
|
||||
# MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE
|
||||
|
||||
# MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
|
||||
# IN N22. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
|
||||
# AS A FLY-TO INDICATOR.
|
||||
|
||||
# MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
|
||||
# IN N17. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
|
||||
# AS A FLY-TO INDICATOR.
|
||||
|
||||
# V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
|
||||
# WITH THE CURRENT S/C ATTITUDE. THIS VERB MAY BE USED AT ANY TIME.
|
||||
|
||||
# THESE DISPLAYS WILL BE AVAILABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
|
||||
# INITIATED VIA V46E. MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD. THE CREW MAY PRESET (VIA
|
||||
# V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.
|
||||
|
||||
DACNDLS CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
|
||||
MASK BIT4
|
||||
EXTEND
|
||||
BZF FDAIDSP2
|
||||
|
||||
FDAIDSP1 ADS RCSFLAGS
|
||||
TC NEEDLER
|
||||
KRESUME1 TCF RESUME # END PHASE 1
|
||||
|
||||
# Page 1010
|
||||
# FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
|
||||
|
||||
# PROGRAM DESCRIPTION: D. KEENE 5/24/67
|
||||
|
||||
# THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
|
||||
# IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
|
||||
# OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
|
||||
# THE DACS.
|
||||
|
||||
|
||||
# CALLING SEQUENCE:
|
||||
|
||||
# DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
|
||||
# TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
|
||||
|
||||
# CS RCSFLAGS # IN EBANK6
|
||||
# MASK BIT3
|
||||
# ADS RCSFLAGS
|
||||
|
||||
# THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:
|
||||
|
||||
# AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
|
||||
# AK1 SCALED 180 DEGREES TO CHANGE
|
||||
# AK2 SCALED 180 DEGREES
|
||||
|
||||
# FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
|
||||
# (= 384 BITS IN IMU ERROR COUNTER)
|
||||
|
||||
# A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
|
||||
|
||||
# INHINT
|
||||
# TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6
|
||||
# CADR NEEDLER
|
||||
# RELINT
|
||||
|
||||
# THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE
|
||||
# REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
|
||||
# NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
|
||||
|
||||
# ERASABLE USED:
|
||||
# AK CDUXCMD
|
||||
# AK1 CDUYCMD
|
||||
# AK2 CDUZCMD
|
||||
# EDRIVEX A,L,Q
|
||||
# EDRIVEY T5TEMP
|
||||
# EDRIVEZ SPNDX
|
||||
|
||||
# SWITCHES: RCSFLAGS BITS 3,2
|
||||
|
||||
# I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY)
|
||||
# Page 1011
|
||||
# CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
|
||||
# CHAN14 BIT 13,14,15 (DAC ACTIVITY)
|
||||
|
||||
|
||||
# SIGN CONVENTION< AK = THETAC - THETA
|
||||
# WHERE THETAC = COMMAND ANGLE
|
||||
# THETA = PRESENT ANGLE
|
||||
|
||||
|
||||
NEEDLER CAF BIT4 # CHECK FOR COARSE ALIGN ENABLE
|
||||
EXTEND # IF IN COARSE ALIGN DO NOT USE IMU
|
||||
RAND CHAN12 # ERROR COUNTERS. DONT USE NEEDLES
|
||||
EXTEND
|
||||
BZF NEEDLER1
|
||||
CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS
|
||||
MASK BIT3
|
||||
ADS RCSFLAGS
|
||||
TC Q
|
||||
|
||||
NEEDLER1 CA RCSFLAGS
|
||||
MASK SIX
|
||||
EXTEND
|
||||
BZF NEEDLES3
|
||||
MASK BIT3
|
||||
EXTEND
|
||||
BZF NEEDLER2 # BIT3 = 0, BIT2 = 1
|
||||
|
||||
CS BIT6 # FIRST PASS BIT3 = 1
|
||||
EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS
|
||||
WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE
|
||||
NEEDLE11 CS ZERO # ENABLING COUNTERS.
|
||||
TS AK # ZERO THE INPUTS ON FIRST PASS
|
||||
TS AK1
|
||||
TS AK2
|
||||
TS EDRIVEX # ZERO THE DISPLAY REGISTERS
|
||||
TS EDRIVEY
|
||||
TS EDRIVEZ
|
||||
TS CDUXCMD # ZERO THE OUT COUNTERS
|
||||
TS CDUYCMD
|
||||
TS CDUZCMD
|
||||
CS SIX # RESET RCSFLAGS FOR PASS2
|
||||
MASK RCSFLAGS
|
||||
AD BIT2
|
||||
TS RCSFLAGS
|
||||
TC Q # END PASS1
|
||||
|
||||
NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS
|
||||
EXTEND
|
||||
WOR CHAN12
|
||||
CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE
|
||||
# Page 1012
|
||||
MASK RCSFLAGS # ERRORS WAIT AT LEAST 4 MS FOR
|
||||
TS RCSFLAGS # RELAY CLOSURE
|
||||
TC Q
|
||||
|
||||
NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER
|
||||
EXTEND # IS ENABLED
|
||||
RAND CHAN12
|
||||
EXTEND # IF NOT RECYCLE NEEDLES
|
||||
BZF NEEDLER +5
|
||||
|
||||
NEEDLES CAF TWO
|
||||
DACLOOP TS SPNDX
|
||||
CS QUARTER
|
||||
EXTEND
|
||||
INDEX SPNDX
|
||||
MP AK
|
||||
TS L
|
||||
CCS A
|
||||
CA DACLIMIT
|
||||
TCF +2
|
||||
CS DACLIMIT
|
||||
AD L
|
||||
TS T5TEMP # OVFLO CHK
|
||||
TCF +4
|
||||
INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384
|
||||
CAF DACLIMIT
|
||||
TS L
|
||||
INDEX SPNDX
|
||||
CS EDRIVEX # CURRENT VALUE OF DAC
|
||||
AD L
|
||||
INDEX SPNDX
|
||||
ADS CDUXCMD
|
||||
INDEX SPNDX
|
||||
LXCH EDRIVEX
|
||||
CCS SPNDX
|
||||
TCF DACLOOP
|
||||
CAF 13,14,15
|
||||
EXTEND
|
||||
WOR CHAN14 # SET DAC ACTIVITY BITS
|
||||
TC Q
|
||||
|
||||
REINIT CAF DELAY200 # ........TILT LOGIC
|
||||
TS TIME5 # REINITIALIZE DAP IN 200MS
|
||||
TS T5PHASE
|
||||
TCF RESUME
|
||||
DELAY200 DEC 16364 # 200MS
|
||||
|
||||
DEC -384
|
||||
|
||||
# Page 1013
|
||||
DACLIMIT DEC 16000
|
||||
DEC 384
|
||||
|
||||
# Page 1014
|
||||
# INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT
|
||||
|
||||
# THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY
|
||||
|
||||
# WBODY (+1) DFT TAU2
|
||||
# WBODY1 (+1) DFT1 BIAS
|
||||
# WBODY2 (+1) DFT2 BIAS1
|
||||
# ADOT (+1) DRHO (+1) BIAS2
|
||||
# ADOT1 (+1) DRHO1 (+1) ERRORX
|
||||
# ADOT2 (+1) DRHO2 (+1) ERRORY
|
||||
# MERRORX (+1) ATTSEC ERRORZ
|
||||
# MERRORY (+1) TAU
|
||||
# MERRORZ (+1) TAU1
|
||||
FRESHDAP CAF ONE # RESET HOLDFLAG TO STOP AUTOMATIC
|
||||
TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN
|
||||
# ATTITUDE HOLD REFERENCE
|
||||
|
||||
REDAP TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
|
||||
CADR S41.2 # RATES, QUADFAILS, QUAD MANAGEMENT
|
||||
|
||||
TC IBNKCALL # DECODE IXX, IAVG, AND CONVERT
|
||||
CADR S40.14 # TO AUTOPILOT GAINS
|
||||
|
||||
CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS ONE
|
||||
ZEROT5 TS SPNDX # ZERO ALL NECESSARY ERASABLE REGISTERS
|
||||
CAF ZERO
|
||||
INDEX SPNDX
|
||||
TS WBODY
|
||||
CCS SPNDX
|
||||
TCF ZEROT5
|
||||
TCR ZEROJET
|
||||
|
||||
CS ZERO
|
||||
TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL
|
||||
|
||||
TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR
|
||||
# MANUAL RATE MODES
|
||||
|
||||
CAF =.24
|
||||
TS SLOPE # INITIALIZE SWITCHING LOGIC SLOPE
|
||||
|
||||
CAF FOUR
|
||||
TS T5TIME # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
|
||||
# 60 MS. PHASE 2 RESETS FOR PHASE 1 RUPT
|
||||
# IN (80MS - T5TIME(40MS)). THEREFORE
|
||||
# PHASE 1 (RATEFILTER) BEGINS CYCLING 100
|
||||
# MS FROM NOW AND EVERY 100MS THEREAFTER.
|
||||
|
||||
CAF ELEVEN
|
||||
TS ATTKALMN # RESET TO PICK UP KALMAN FILTER GAINS
|
||||
# TO INITIALIZE THE S/C ANGULAR RATES
|
||||
# Page 1015
|
||||
CA CDUX
|
||||
TS RHO
|
||||
CA CDUY
|
||||
TS RHO1
|
||||
CA CDUZ
|
||||
TS RHO2
|
||||
CAF ZERO # RESET AUTOPILOT TO BEGIN EXECUTING
|
||||
TS T5PHASE # PHASE2 OF PROGRAM
|
||||
|
||||
CS IMODES33 # CHECK IMU STATUS
|
||||
MASK BIT6 # IF BIT6 = 0 IMU IN FINE ALIGN
|
||||
CCS A # IF BIT6 = 1 IMU NOT READY
|
||||
TCF IMUAOK
|
||||
TS ATTKALMN # CANNOT USE IMU
|
||||
CAF RCSINITB # PROVIDE FREE CONTROL ONLY
|
||||
TCF RCSSWIT # DONT START UP RATE FILTER
|
||||
# SIGNAL NO RATE FILTER
|
||||
|
||||
IMUAOK CAF PRIO34 # START MATRIX INITIALIZATION
|
||||
TC NOVAC # BYPASS IF IMU NOT IN FINE ALIGN
|
||||
EBANK= KMPAC
|
||||
2CADR AMBGUPDT
|
||||
|
||||
CAF RCSINIT # CLEAR BIT14 -ASSUME WE HAVE A GOOD IMU
|
||||
RCSSWIT TS RCSFLAGS # CLEAR BIT1 -INITIALIZE T6 PROGRAM
|
||||
# SET BIT3 -INITIALIZE NEEDLES
|
||||
# CLEAR BIT4 -RESET FOR FDAIDSP1
|
||||
CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
|
||||
# ERROR COUNTER TO ZERO.
|
||||
# (MINIMUM DELAY = 15 MS)
|
||||
TS TIME5 # SINCE ATTKALMN IS +11, PROGRAM WILL THEN
|
||||
TC RESUME # PICK UP THE KALMAN FILTER GAINS. RATE
|
||||
# FILTER WILL BEGIN OPERATING ZOOMS FROM
|
||||
# NOW
|
||||
|
||||
# CONSTANTS USED IN INITIALIZATION PROGRAM
|
||||
|
||||
NO.T5VAR DEC 36
|
||||
=.24 DEC .24 # = SLOPE OF 0.6/SEC
|
||||
RCSINIT OCT 00004
|
||||
RCSINITB OCT 20004
|
||||
T5WAIT60 DEC 16378 # = 6 CS
|
||||
EBANK= KMPAC
|
||||
T6ADDR 2CADR T6START
|
||||
|
||||
ZEROJET CAF ELEVEN # ZERO BLAST2, BLAST1, BLAST, YWORD2,
|
||||
TS SPNDX # YWORD1, PWORD2, PWORD1, RWORD2,
|
||||
CAF ZERO # AND RWORD1.
|
||||
|
||||
# Page 1016
|
||||
INDEX SPNDX
|
||||
TS RWORD1
|
||||
CCS SPNDX
|
||||
TCF ZEROJET +1
|
||||
|
||||
CAF FOUR
|
||||
TS BLAST1 +1
|
||||
CAF ELEVEN
|
||||
TS BLAST2 +1
|
||||
|
||||
CS BIT1
|
||||
MASK RCSFLAGS
|
||||
TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0
|
||||
|
||||
EXTEND
|
||||
DCA T6ADDR
|
||||
DXCH T6LOC
|
||||
CAF =+14MS # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
|
||||
TS TIME6
|
||||
CAF BIT15
|
||||
EXTEND
|
||||
WOR CHAN13
|
||||
|
||||
TC Q
|
||||
|
||||
T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE
|
||||
TCF KALUPDT
|
||||
|
||||
TCF +2 # ONLY IF ATTKALMN POSITIVE
|
||||
TCF +1
|
||||
CA DELTATT2 # RESET FOR PHASE3 IN 20 MS
|
||||
XCH TIME5 # (JET SELECTION LOGIC)
|
||||
ADS T5TIME # TO COMPENSATE FOR DELAYS IN T5RUPT
|
||||
|
||||
CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN
|
||||
MASK BIT15 # PROGRESS (BIT 15 OF RCSFLAGS SET), SET
|
||||
EXTEND # ATTKALMN TO -1
|
||||
BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0.
|
||||
CS ONE
|
||||
NOHIAUTO TS ATTKALMN
|
||||
|
||||
# Page 1017
|
||||
# MANUAL ROTATION COMMANDS
|
||||
|
||||
CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5
|
||||
MASK RCSFLAGS # OF RCSFLAGS) TO ZERO
|
||||
TS RCSFLAGS
|
||||
|
||||
EXTEND
|
||||
READ CHAN31
|
||||
TS L
|
||||
CA CH31TEMP
|
||||
EXTEND
|
||||
RXOR LCHAN
|
||||
MASK MANROT # = OCT00077
|
||||
EXTEND
|
||||
BZMF NOCHANGE
|
||||
|
||||
LXCH A
|
||||
TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP
|
||||
|
||||
CA L
|
||||
EXTEND
|
||||
MP BIT5 # PUT BITS 6-1 OF A IN BITS 10-5 OF L
|
||||
CA L
|
||||
ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH
|
||||
# CHANGES IN COMMAND. BITS 10,9 FOR
|
||||
# ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
|
||||
# PITCH
|
||||
|
||||
CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12,AND
|
||||
MASK OCT16000 # 11 OF RCSFLAGS)
|
||||
ADS RCSFLAGS
|
||||
|
||||
NOCHANGE CS CH31TEMP
|
||||
MASK MANROT
|
||||
EXTEND
|
||||
BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT
|
||||
|
||||
TS HOLDFLAG # SET HOLDFLAG +
|
||||
|
||||
TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX,
|
||||
# YMANNDX, AND RMANNDX ARE ALL SET, BY
|
||||
# MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
|
||||
# +, OR - ROTATION RESPECTIVELY AS
|
||||
# COMMANDED BY THE RHC.
|
||||
|
||||
# HOWEVER, IT IS WELL TO NOTE THAT AFTER
|
||||
# THE RHC IS RETURNED TO DETENT, THE
|
||||
# PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
|
||||
# STICKCHK SO PMANNDX, YMANNDX, AND
|
||||
# RMANNDX ARE NOT RESET TO ZERO BUT RATHER
|
||||
# LEFT SET TO THEIR LAST OUT OF DETENT
|
||||
# Page 1018
|
||||
# VALUES.
|
||||
|
||||
CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING
|
||||
MASK BIT14 # PROGRAMS (P20) THAT ASTRONAUT HAS
|
||||
ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT
|
||||
|
||||
CAF BIT14
|
||||
EXTEND
|
||||
RAND CHAN31
|
||||
EXTEND
|
||||
BZMF FREEFUNC
|
||||
|
||||
CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER
|
||||
MASK BIT14 # HAS BEEN INITIALIZED
|
||||
CCS A # IF SO, PROCEED WITH MANUAL RATE COMMANDS
|
||||
TCF REINIT # .....TILT, RECYCLE TO INITIALIZE FILTER
|
||||
|
||||
CS FIVE # IF MANUAL MANEUVER IS AT HIGH RTE, SET
|
||||
AD RATEINDX # ATTKALMN TO -1.
|
||||
EXTEND # OTHERWISE, LEAVE ATTKALMN ALONE.
|
||||
BZMF +3
|
||||
CS ONE
|
||||
TS ATTKALMN
|
||||
|
||||
CAF TWO # AUTO-HOLD MANUAL ROTATION
|
||||
SETWBODY TS SPNDX
|
||||
DOUBLE
|
||||
TS DPNDX
|
||||
INDEX SPNDX # RMANNDX = 0 NO ROTATION
|
||||
CA RMANNDX # = 1 + ROTATION
|
||||
EXTEND # = 2 - ROTATION
|
||||
BZF NORATE # IF NO ROTATION COMMAND ON THIS AXIS,
|
||||
# GO TO NORATE.
|
||||
|
||||
AD RATEINDX # RATEINDX = 0 0.05 DEG/SEC
|
||||
TS Q # = 2 0.2 DEG/SEC
|
||||
INDEX Q # = 4 0.5 DEG/SEC
|
||||
CA MANTABLE -1 # = 6 2.0 DEG/SEC
|
||||
EXTEND
|
||||
MP BIT9 # MULTIPLY MANTABLE BY 2 TO THE -6
|
||||
INDEX DPNDX # TO GET COMMANDED RATE.
|
||||
DXCH WBODY # SET WBODY TO COMMANDED RATE.
|
||||
|
||||
CA RCSFLAGS
|
||||
MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND
|
||||
EXTEND # 11 OF RCSFLAGS ALL ZERO.) IF SO, GO TO
|
||||
BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
|
||||
# ERROR.
|
||||
|
||||
# Page 1019
|
||||
ZEROER CA ZERO # ZEROER ZEROS MERRORS
|
||||
ZL
|
||||
INDEX DPNDX
|
||||
DXCH MERRORX
|
||||
TCF SPNDXCHK
|
||||
|
||||
NORATE ZL
|
||||
INDEX DPNDX
|
||||
DXCH WBODY # ZERO WBODY FOR THIS AXIS
|
||||
CA RCSFLAGS
|
||||
MASK OCT16000
|
||||
EXTEND # IS RATE DAMPING COMPLETED
|
||||
BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
|
||||
TCF ZEROER # NO,GO TO ZEROER
|
||||
|
||||
MERUPDAT INDEX Q # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
|
||||
CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE
|
||||
EXTEND # THE ADDITION OF MEASURED CHANGE IN ANGLE
|
||||
MP BIT7 # HAS ALREADY BEEN DONE IN THE RATE FILTER
|
||||
INDEX DPNDX # COMMANDED CHANGE IN ANGLE = WBODY TIMES
|
||||
DAS MERRORX # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8
|
||||
|
||||
SPNDXCHK INDEX DPNDX
|
||||
CA MERRORX
|
||||
INDEX SPNDX
|
||||
TS ERRORX # ERRORX = HIGH ORDER WORD OF MERRORX
|
||||
CCS SPNDX
|
||||
TCF SETWBODY
|
||||
TCF JETS
|
||||
|
||||
OCT01760 OCT 01760 # FORCED FIRING BITS MASK
|
||||
|
||||
OCT01400 OCT 01400 # ROLL FORCED FIRING MASK ORDER OF
|
||||
OCT00060 OCT 00060 # PITCH FORCED FIRING MASK DEFINITION
|
||||
OCT00300 OCT 00300 # YAW FORCED FIRING MASK MUST BE
|
||||
# PRESERVED
|
||||
# FOR INDEXING
|
||||
MANROT OCT 77
|
||||
OCT16000 OCT 16000 # RATE DAMPING FLAGS MASK
|
||||
MANTABLE DEC .0071111
|
||||
DEC -.0071111
|
||||
DEC .028444
|
||||
DEC -0.028444
|
||||
DEC .071111
|
||||
DEC -.071111
|
||||
DEC .284444
|
||||
DEC -.284444
|
||||
=+14MS DEC 23
|
||||
FREEFUNC INDEX RMANNDX # ACCELERATION
|
||||
# Page 1020
|
||||
CA FREETAU # COMMANDS
|
||||
TS TAU
|
||||
INDEX PMANNDX
|
||||
CA FREETAU # FREETAU 0 SEC
|
||||
TS TAU1 # +1 +0.10 SEC
|
||||
INDEX YMANNDX # +2 -0.10 SEC
|
||||
CA FREETAU # (+3) 0 SEC
|
||||
TS TAU2
|
||||
TCF T6PROGM
|
||||
|
||||
FREETAU DEC 0
|
||||
DEC 480
|
||||
DEC -480
|
||||
DEC 0
|
||||
|
||||
T6PROGM CAF ZERO # FOR MANUAL ROTATIONS
|
||||
TS ERRORX
|
||||
TS ERRORY
|
||||
TS ERRORZ
|
||||
TCF T6PROG
|
||||
|
||||
# Page 1021
|
||||
DEC .2112 # FILTER GAIN FOR TRANSLATION, LEM ON
|
||||
DEC .8400 # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
|
||||
DEC .2112 # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
|
||||
GAIN1 DEC .0640 # KALMAN FILTER GAINS FOR INITIALIZATION
|
||||
DEC .3180 # OF ATTITUDE RATES
|
||||
DEC .3452
|
||||
DEC .3774
|
||||
DEC .4161
|
||||
DEC .4634
|
||||
DEC .5223
|
||||
DEC .5970
|
||||
DEC .6933
|
||||
DEC .8151
|
||||
DEC .9342
|
||||
|
||||
DEC .0174 # FILTER GAIN FOR TRANSLATION, LEM ON
|
||||
DEC .3600 # FILTER GAIN FOR TRANSLATION (WN)(WN)DT
|
||||
DEC .0174 # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
|
||||
GAIN2 DEC .0016 # SCALED 10
|
||||
DEC .0454
|
||||
DEC .0545
|
||||
DEC .0666
|
||||
DEC .0832
|
||||
DEC .1069
|
||||
DEC .1422
|
||||
DEC .1985
|
||||
DEC .2955
|
||||
DEC .4817
|
||||
DEC .8683
|
||||
STICKCHK TS T5TEMP
|
||||
MASK THREE # INDICES FOR MANUAL ROTATION
|
||||
TS PMANNDX
|
||||
CA T5TEMP
|
||||
EXTEND # MAN RATE 0 0 RATE (DP)
|
||||
MP QUARTER # +1 +RATE (DP)
|
||||
TS T5TEMP # +2 -RATE (DP)
|
||||
MASK THREE # (+3) 0 RATE (DP)
|
||||
TS YMANNDX
|
||||
CA T5TEMP
|
||||
EXTEND
|
||||
MP QUARTER
|
||||
TS RMANNDX
|
||||
TC Q
|
||||
|
||||
|
||||
KALUPDT TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING
|
||||
# KALMAN FILTER TAKES 1.1 SEC
|
||||
|
||||
CA DELTATT # =1SEC - 80MS
|
||||
AD T5TIME # + DELAYS
|
||||
# Page 1022
|
||||
TS TIME5
|
||||
TCF +3
|
||||
CAF DELTATT2 # SAFETY PLAY TO ASSURE
|
||||
TS TIME5 # A T5RUPT
|
||||
|
||||
KRESUME2 CS ZERO # RESET FOR PHASE1
|
||||
TS T5PHASE # RESUME INTERRUPTED PROGRAM
|
||||
TCF RESUME
|
||||
|
||||
FDAIDSP2 CS BIT4 # RESET FOR FDAIDSP1
|
||||
MASK RCSFLAGS
|
||||
TS RCSFLAGS
|
||||
|
||||
CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE
|
||||
MASK BIT9 # ERRORS
|
||||
EXTEND
|
||||
BZF FDAITOTL
|
||||
EXTEND
|
||||
DCS ERRORX # OFF -DISPLAY AUTOPILOT FOLLOWING ERROR
|
||||
DXCH AK
|
||||
CS ERRORZ
|
||||
TS AK2
|
||||
TCF RESUME # END PHASE 1
|
||||
|
||||
FDAITOTL CA FLAGWRD9
|
||||
MASK BIT6
|
||||
EXTEND
|
||||
BZF WRTN17 # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
|
||||
# IF SO, GO TO WRTN17
|
||||
WRTN22 EXTEND # OTHERWISE, CONTINUE ON TO WRTN22 AND
|
||||
DCA CTHETA # GET SET TO COMPUTE TOTAL ATTITUDE
|
||||
DXCH WTEMP # ERROR WRT N22 BY PICKING UP THE THREE
|
||||
CA CPHI # COMPONENTS OF N22
|
||||
|
||||
GETAKS EXTEND # COMPUTE TOTAL ATTITUDE ERROR FOR
|
||||
MSU CDUX # DISPLAY ON FDAI ERROR NEEDLES
|
||||
TS AK
|
||||
CA WTEMP
|
||||
EXTEND
|
||||
MSU CDUY
|
||||
TS T5TEMP
|
||||
EXTEND
|
||||
MP AMGB1
|
||||
ADS AK
|
||||
CA T5TEMP
|
||||
EXTEND
|
||||
MP AMGB4
|
||||
# Page 1023
|
||||
TS AK1
|
||||
CA T5TEMP
|
||||
EXTEND
|
||||
MP AMGB7
|
||||
TS AK2
|
||||
CA WTEMP +1
|
||||
EXTEND
|
||||
MSU CDUZ
|
||||
TS T5TEMP
|
||||
EXTEND
|
||||
MP AMGB5
|
||||
ADS AK1
|
||||
CA T5TEMP
|
||||
EXTEND
|
||||
MP AMGB8
|
||||
ADS AK2
|
||||
TCF RESUME # END PHASE1 OF RCS DAP
|
||||
|
||||
WRTN17 EXTEND # GET SET TO COMPUTE TOTAL ASTRONAUT
|
||||
DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP
|
||||
DXCH WTEMP # THE THREE COMPONENTS OF N17
|
||||
CA CPHIX
|
||||
TCF GETAKS
|
||||
|
||||
# Page 1024 (empty page)
|
229
Comanche055/README.md
Normal file
229
Comanche055/README.md
Normal file
@ -0,0 +1,229 @@
|
||||
# Comanche055
|
||||
|
||||
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.
|
||||
|
||||
## Background
|
||||
|
||||
For organizatinal purposes RSB split the huge monolithic source code into smaller, more manageable chunks--i.e., into individual source
|
||||
files. Those files are rejoined as "includes". The code chunks correspond to natural divisions into sub-programs. In fact, these divisions are more-or-less specified by the source code itself. Refer to the `"SUBROUTINE CALLS"` at the very beginning of `ASSEMBLY_AND_OPERATION_INFORMATION.agc`.
|
||||
|
||||
It may be reasonably asked why tens of thousands of lines of source are joined by means of inclusion, rather than simply assembling the source files individually and then linking them to form the executable. The answer is that the original development team had no linker. The builds were monolithic just like this.
|
||||
|
||||
There was a big emphasis on reusability of the code in the original project, apparently, but this reusability took the form of inserting your deck of punch-cards at the appropriate position in somebody else's deck of punch-cards. (Actually, I think the card-decks were turned into tape libraries, and the modules were mixed-and-matched from the tape libraries, but the principle is the same.) So, indeed, the method of file-inclusion is a very fair representation of the methods used in the original development...with the improvement, of course,
|
||||
that you no longer have to worry about dropping the card deck. On the other hand, I (RSB) wasn't there at the time, so I may have no idea what I'm talking about.
|
||||
|
||||
Finally, note that the original Apollo AGC assembler (called `YUL`) is no longer available (as far as I can tell). Actually, it had already been replaced by another assembler (called `GAP`) by the time of Apollo 11, but GAP isn't available either. The replacement assembler yaYUL accepts a slightly different format for the source code from what YUL or GAP accepted, so the source code has been targeted for assembly with yaYUL.
|
||||
|
||||
What follows is simply a bunch of file-includes for the individual code chunks. The page numbers have been marked to make proof-reading easier. The page images also contain a lot of interesting tables (cross-referenced to page numbers) created by GAP, but not duplicated by yaYUL, so it's still valuable even if the source-files listed below are in hand.
|
||||
|
||||
## Source Code Index
|
||||
|
||||
### INFORMATION
|
||||
|
||||
Source File | Page Number
|
||||
:--------------------------------------- | :----------
|
||||
[CONTRACT_AND_APPROVALS.agc] | 1
|
||||
[ASSEMBLY_AND_OPERATION_INFORMATION.agc] | 2-26
|
||||
[TAGS_FOR_RELATIVE_SETLOC.agc] | 27-35
|
||||
|
||||
### COMERASE
|
||||
|
||||
Source File | Page Number
|
||||
:------------------------- | :----------
|
||||
[ERASABLE_ASSIGNMENTS.agc] | 37-130
|
||||
|
||||
### COMAID
|
||||
|
||||
Source File | Page Number
|
||||
:------------------------------------ | :----------
|
||||
[INTERRUPT_LEAD_INS.agc] | 131-132
|
||||
[T4RUPT_PROGRAM.agc] | 133-169
|
||||
[DOWNLINK_LISTS.agc] | 170-180
|
||||
[FRESH_START_AND_RESTART.agc] | 181-210
|
||||
[RESTART_TABLES.agc] | 211-221
|
||||
[SXTMARK.agc] | 222-235
|
||||
[EXTENDED_VERBS.agc] | 236-267
|
||||
[PINBALL_NOUN_TABLES.agc] | 268-284
|
||||
[CSM_GEOMETRY.agc] | 285-296
|
||||
[IMU_COMPENSATION_PACKAGE.agc] | 297-306
|
||||
[PINBALL_GAME_BUTTONS_AND_LIGHTS.agc] | 307-389
|
||||
[R60_62.agc] | 390-398
|
||||
[ANGLFIND.agc] | 399-411
|
||||
[GIMBAL_LOCK_AVOIDANCE.agc] | 412-413
|
||||
[KALCMANU_STEERING.agc] | 414-419
|
||||
[SYSTEM_TEST_STANDARD_LEAD_INS.agc] | 420-422
|
||||
[IMU_CALIBRATION_AND_ALIGNMENT.agc] | 423-455
|
||||
|
||||
### COMEKISS
|
||||
|
||||
Source File | Page Number
|
||||
:------------------------------------------ | :----------
|
||||
[GROUND_TRACKING_DETERMINATION_PROGRAM.agc] | 456-459
|
||||
[P34-35_P74-75.agc] | 460-504
|
||||
[R31.agc] | 505-510
|
||||
[P76.agc] | 511-513
|
||||
[R30.agc] | 514-524
|
||||
[STABLE_ORBIT.agc] | 525-532
|
||||
|
||||
### TROUBLE
|
||||
|
||||
Source File | Page Number
|
||||
:-------------------------------------------- | :----------
|
||||
[P11.agc] | 533-550
|
||||
[TPI_SEARCH.agc] | 551-561
|
||||
[P20-P25.agc] | 562-634
|
||||
[P30-P37.agc] | 635-648
|
||||
[P32-P33_P72-P73.agc] | 649-683
|
||||
[P40-P47.agc] | 684-736
|
||||
[P51-P53.agc] | 737-784
|
||||
[LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc] | 785-788
|
||||
[P61-P67.agc] | 789-818
|
||||
[SERVICER207.agc] | 819-836
|
||||
[ENTRY_LEXICON.agc] | 837-843
|
||||
[REENTRY_CONTROL.agc] | 844-882
|
||||
[CM_BODY_ATTITUDE.agc] | 883-889
|
||||
[P37_P70.agc] | 890-933
|
||||
[S-BAND_ANTENNA_FOR_CM.agc] | 934-935
|
||||
[LUNAR_LANDMARK_SELECTION_FOR_CM.agc] | 936
|
||||
|
||||
### TVCDAPS
|
||||
|
||||
Source File | Page Number
|
||||
:----------------------------------- | :----------
|
||||
[TVCINITIALIZE.agc] | 937-944
|
||||
[TVCEXECUTIVE.agc] | 945-950
|
||||
[TVCMASSPROP.agc] | 951-955
|
||||
[TVCRESTARTS.agc] | 956-960
|
||||
[TVCDAPS.agc] | 961-978
|
||||
[TVCSTROKETEST.agc] | 979-983
|
||||
[TVCROLLDAP.agc] | 984-998
|
||||
[MYSUBS.agc] | 999-1001
|
||||
[RCS-CSM_DIGITAL_AUTOPILOT.agc] | 1002-1024
|
||||
[AUTOMATIC_MANEUVERS.agc] | 1025-1036
|
||||
[RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc] | 1037-1038
|
||||
[JET_SELECTION_LOGIC.agc] | 1039-1062
|
||||
[CM_ENTRY_DIGITAL_AUTOPILOT.agc] | 1063-1092
|
||||
|
||||
### CHIEFTAN
|
||||
|
||||
Source File | Page Number
|
||||
:----------------------------------- | :----------
|
||||
[DOWN-TELEMETRY_PROGRAM.agc] | 1093-1102
|
||||
[INTER-BANK_COMMUNICATION.agc] | 1103-1106
|
||||
[INTERPRETER.agc] | 1107-1199
|
||||
[FIXED_FIXED_CONSTANT_POOL.agc] | 1200-1204
|
||||
[INTERPRETIVE_CONSTANTS.agc] | 1205-1206
|
||||
[SINGLE_PRECISION_SUBROUTINES.agc] | 1207
|
||||
[EXECUTIVE.agc] | 1208-1220
|
||||
[WAITLIST.agc] | 1221-1235
|
||||
[LATITUDE_LONGITUDE_SUBROUTINES.agc] | 1236-1242
|
||||
[PLANETARY_INERTIAL_ORIENTATION.agc] | 1243-1251
|
||||
[MEASUREMENT_INCORPORATION.agc] | 1252-1261
|
||||
[CONIC_SUBROUTINES.agc] | 1262-1308
|
||||
[INTEGRATION_INITIALIZATION.agc] | 1309-1333
|
||||
[ORBITAL_INTEGRATION.agc] | 1334-1354
|
||||
[INFLIGHT_ALIGNMENT_ROUTINES.agc] | 1355-1364
|
||||
[POWERED_FLIGHT_SUBROUTINES.agc] | 1365-1372
|
||||
[TIME_OF_FREE_FALL.agc] | 1373-1388
|
||||
[STAR_TABLES.agc] | 1389-1393
|
||||
[AGC_BLOCK_TWO_SELF-CHECK.agc] | 1394-1403
|
||||
[PHASE_TABLE_MAINTENANCE.agc] | 1404-1413
|
||||
[RESTARTS_ROUTINE.agc] | 1414-1419
|
||||
[IMU_MODE_SWITCHING_ROUTINES.agc] | 1420-1448
|
||||
[KEYRUPT_UPRUPT.agc] | 1449-1451
|
||||
[DISPLAY_INTERFACE_ROUTINES.agc] | 1452-1484
|
||||
[SERVICE_ROUTINES.agc] | 1485-1492
|
||||
[ALARM_AND_ABORT.agc] | 1493-1496
|
||||
[UPDATE_PROGRAM.agc] | 1497-1507
|
||||
[RT8_OP_CODES.agc] | 1508-1516
|
||||
|
||||
### MISCELLANEOUS
|
||||
|
||||
Source File | Page Number
|
||||
:------------------- | :----------
|
||||
GAP-generated tables | 1517-1751
|
||||
|
||||
[CONTRACT_AND_APPROVALS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CONTRACT_AND_APPROVALS.agc
|
||||
[ASSEMBLY_AND_OPERATION_INFORMATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc
|
||||
[TAGS_FOR_RELATIVE_SETLOC.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TAGS_FOR_RELATIVE_SETLOC.agc
|
||||
[ERASABLE_ASSIGNMENTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ERASABLE_ASSIGNMENTS.agc
|
||||
[INTERRUPT_LEAD_INS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTERRUPT_LEAD_INS.agc
|
||||
[T4RUPT_PROGRAM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/T4RUPT_PROGRAM.agc
|
||||
[DOWNLINK_LISTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/DOWNLINK_LISTS.agc
|
||||
[FRESH_START_AND_RESTART.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/FRESH_START_AND_RESTART.agc
|
||||
[RESTART_TABLES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RESTART_TABLES.agc
|
||||
[SXTMARK.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SXTMARK.agc
|
||||
[EXTENDED_VERBS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/EXTENDED_VERBS.agc
|
||||
[PINBALL_NOUN_TABLES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/PINBALL_NOUN_TABLES.agc
|
||||
[CSM_GEOMETRY.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CSM_GEOMETRY.agc
|
||||
[IMU_COMPENSATION_PACKAGE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/IMU_COMPENSATION_PACKAGE.agc
|
||||
[PINBALL_GAME_BUTTONS_AND_LIGHTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
|
||||
[R60_62.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/R60_62.agc
|
||||
[ANGLFIND.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ANGLFIND.agc
|
||||
[GIMBAL_LOCK_AVOIDANCE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/GIMBAL_LOCK_AVOIDANCE.agc
|
||||
[KALCMANU_STEERING.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/KALCMANU_STEERING.agc
|
||||
[SYSTEM_TEST_STANDARD_LEAD_INS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SYSTEM_TEST_STANDARD_LEAD_INS.agc
|
||||
[IMU_CALIBRATION_AND_ALIGNMENT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/IMU_CALIBRATION_AND_ALIGNMENT.agc
|
||||
[GROUND_TRACKING_DETERMINATION_PROGRAM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/GROUND_TRACKING_DETERMINATION_PROGRAM.agc
|
||||
[P34-35_P74-75.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P34-35_P74-75.agc
|
||||
[R31.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/R31.agc
|
||||
[P76.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P76.agc
|
||||
[R30.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/R30.agc
|
||||
[STABLE_ORBIT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/STABLE_ORBIT.agc
|
||||
[P11.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P11.agc
|
||||
[TPI_SEARCH.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TPI_SEARCH.agc
|
||||
[P20-P25.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P20-P25.agc
|
||||
[P30-P37.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P30-P37.agc
|
||||
[P32-P33_P72-P73.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P32-P33_P72-P73.agc
|
||||
[P40-P47.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P40-P47.agc
|
||||
[P51-P53.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P51-P53.agc
|
||||
[LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
|
||||
[P61-P67.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P61-P67.agc
|
||||
[SERVICER207.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SERVICER207.agc
|
||||
[ENTRY_LEXICON.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ENTRY_LEXICON.agc
|
||||
[REENTRY_CONTROL.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/REENTRY_CONTROL.agc
|
||||
[CM_BODY_ATTITUDE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CM_BODY_ATTITUDE.agc
|
||||
[P37_P70.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/P37_P70.agc
|
||||
[S-BAND_ANTENNA_FOR_CM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/S-BAND_ANTENNA_FOR_CM.agc
|
||||
[LUNAR_LANDMARK_SELECTION_FOR_CM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/LUNAR_LANDMARK_SELECTION_FOR_CM.agc
|
||||
[TVCINITIALIZE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCINITIALIZE.agc
|
||||
[TVCEXECUTIVE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCEXECUTIVE.agc
|
||||
[TVCMASSPROP.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCMASSPROP.agc
|
||||
[TVCRESTARTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCRESTARTS.agc
|
||||
[TVCDAPS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCDAPS.agc
|
||||
[TVCSTROKETEST.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCSTROKETEST.agc
|
||||
[TVCROLLDAP.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TVCROLLDAP.agc
|
||||
[MYSUBS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/MYSUBS.agc
|
||||
[RCS-CSM_DIGITAL_AUTOPILOT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RCS-CSM_DIGITAL_AUTOPILOT.agc
|
||||
[AUTOMATIC_MANEUVERS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/AUTOMATIC_MANEUVERS.agc
|
||||
[RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc
|
||||
[JET_SELECTION_LOGIC.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/JET_SELECTION_LOGIC.agc
|
||||
[CM_ENTRY_DIGITAL_AUTOPILOT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CM_ENTRY_DIGITAL_AUTOPILOT.agc
|
||||
[DOWN-TELEMETRY_PROGRAM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/DOWN-TELEMETRY_PROGRAM.agc
|
||||
[INTER-BANK_COMMUNICATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTER-BANK_COMMUNICATION.agc
|
||||
[INTERPRETER.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTERPRETER.agc
|
||||
[FIXED_FIXED_CONSTANT_POOL.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/FIXED_FIXED_CONSTANT_POOL.agc
|
||||
[INTERPRETIVE_CONSTANTS.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTERPRETIVE_CONSTANTS.agc
|
||||
[SINGLE_PRECISION_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SINGLE_PRECISION_SUBROUTINES.agc
|
||||
[EXECUTIVE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/EXECUTIVE.agc
|
||||
[WAITLIST.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/WAITLIST.agc
|
||||
[LATITUDE_LONGITUDE_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/LATITUDE_LONGITUDE_SUBROUTINES.agc
|
||||
[PLANETARY_INERTIAL_ORIENTATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/PLANETARY_INERTIAL_ORIENTATION.agc
|
||||
[MEASUREMENT_INCORPORATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/MEASUREMENT_INCORPORATION.agc
|
||||
[CONIC_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/CONIC_SUBROUTINES.agc
|
||||
[INTEGRATION_INITIALIZATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INTEGRATION_INITIALIZATION.agc
|
||||
[ORBITAL_INTEGRATION.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ORBITAL_INTEGRATION.agc
|
||||
[INFLIGHT_ALIGNMENT_ROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/INFLIGHT_ALIGNMENT_ROUTINES.agc
|
||||
[POWERED_FLIGHT_SUBROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/POWERED_FLIGHT_SUBROUTINES.agc
|
||||
[TIME_OF_FREE_FALL.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/TIME_OF_FREE_FALL.agc
|
||||
[STAR_TABLES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/STAR_TABLES.agc
|
||||
[AGC_BLOCK_TWO_SELF-CHECK.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/AGC_BLOCK_TWO_SELF-CHECK.agc
|
||||
[PHASE_TABLE_MAINTENANCE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/PHASE_TABLE_MAINTENANCE.agc
|
||||
[RESTARTS_ROUTINE.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RESTARTS_ROUTINE.agc
|
||||
[IMU_MODE_SWITCHING_ROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/IMU_MODE_SWITCHING_ROUTINES.agc
|
||||
[KEYRUPT_UPRUPT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/KEYRUPT_UPRUPT.agc
|
||||
[DISPLAY_INTERFACE_ROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/DISPLAY_INTERFACE_ROUTINES.agc
|
||||
[SERVICE_ROUTINES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/SERVICE_ROUTINES.agc
|
||||
[ALARM_AND_ABORT.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/ALARM_AND_ABORT.agc
|
||||
[UPDATE_PROGRAM.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/UPDATE_PROGRAM.agc
|
||||
[RT8_OP_CODES.agc]:https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/RT8_OP_CODES.agc
|
1609
Comanche055/REENTRY_CONTROL.agc
Normal file
1609
Comanche055/REENTRY_CONTROL.agc
Normal file
File diff suppressed because it is too large
Load Diff
337
Comanche055/RESTARTS_ROUTINE.agc
Normal file
337
Comanche055/RESTARTS_ROUTINE.agc
Normal file
@ -0,0 +1,337 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RESTARTS_ROUTINE.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. 1414-1419
|
||||
# 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 1414
|
||||
BANK 01
|
||||
SETLOC RESTART
|
||||
BANK
|
||||
|
||||
EBANK= PHSNAME1 # GOPROG MUST SWITCH TO THIS EBANK
|
||||
|
||||
COUNT 01/RSROU
|
||||
|
||||
RESTARTS CA MPAC +5 # GET GROUP NUMBER -1
|
||||
DOUBLE # SAVE FOR INDEXING
|
||||
TS TEMP2G
|
||||
|
||||
CA PHS2CADR # SET UP EXIT IN CASE IT IS AN EVEN
|
||||
TS TEMPSWCH # TABLE PHASE
|
||||
|
||||
CA RTRNCADR # TO SAVE TIME ASSUME IT WILL GET NEXT
|
||||
TS GOLOC +2 # GROUP AFTER THIS
|
||||
|
||||
CA TEMPPHS
|
||||
MASK OCT1400
|
||||
CCS A # IS IT A VARIABLE OR TABLE RESTART
|
||||
TCF ITSAVAR # IT:S A VARIABLE RESTART
|
||||
|
||||
GETPART2 CCS TEMPPHS # IS IT AN X.1 RESTART
|
||||
CCS A
|
||||
TCF ITSATBL # NO, ITS A TABLE RESTART
|
||||
|
||||
CA PRIO14 # IT IS AN X.1 RESTART, THEREFORE START
|
||||
TC FINDVAC # THE DISPLAY RESTART JOB
|
||||
EBANK= LST1
|
||||
2CADR INITDSP
|
||||
|
||||
TC RTRNCADR # FINISHED WITH THIS GROUP, GET NEXT ONE
|
||||
|
||||
ITSAVAR MASK OCT1400 # IS IT TYPE B ?
|
||||
CCS A
|
||||
TCF ITSLIKEB # YES,IT IS TYPE B
|
||||
|
||||
EXTEND # STORE THE JOB (OR TASK) 2CADR FOR EXIT
|
||||
NDX TEMP2G
|
||||
DCA PHSNAME1
|
||||
DXCH GOLOC
|
||||
|
||||
CA TEMPPHS # SEE IF THIS IS A JOB, TASK, OR A LONGCALL
|
||||
MASK OCT7
|
||||
AD MINUS2
|
||||
CCS A
|
||||
TCF ITSLNGCL # ITS A LONGCALL
|
||||
|
||||
# Page 1415
|
||||
RTRNCADR TC SWRETURN # CANT GET HERE
|
||||
TCF ITSAWAIT
|
||||
|
||||
TCF ITSAJOB # ITS A JOB
|
||||
|
||||
ITSAWAIT CA WTLTCADR # SET UP WAITLIST CALL
|
||||
TS GOLOC -1
|
||||
|
||||
NDX TEMP2G # DIRECTLY STORED
|
||||
CA PHSPRDT1
|
||||
TIMETEST CCS A # IS IT AN IMMEDIATE RESTART
|
||||
INCR A # NO.
|
||||
TCF FINDTIME # FIND OUT WHEN IT SHOULD BEGIN
|
||||
|
||||
TCF ITSINDIR # STORED INDIRECTLY
|
||||
|
||||
TCF IMEDIATE # IT WANTS AN IMMEDIATE RESTART
|
||||
|
||||
# ***** THIS MUST BE IN FIXED FIXED *****
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG2
|
||||
BANK
|
||||
|
||||
COUNT 02/RSROU
|
||||
|
||||
ITSINDIR LXCH GOLOC +1 # GET THE CORRECT E BANK IN CASE THIS IS
|
||||
LXCH BB # SWITCHED ERRASIBLE
|
||||
|
||||
NDX A # GET THE TIME INDIRECTLY
|
||||
CA 1
|
||||
|
||||
LXCH BB # RESTORE THE BB AND GOLOC
|
||||
LXCH GOLOC +1
|
||||
|
||||
TCF FINDTIME # FIND OUT WHEN IT SHOULD BEGIN
|
||||
|
||||
# ***** YOU MAY RETURN TO SWITCHED FIXED *****
|
||||
|
||||
BANK 01
|
||||
SETLOC RESTART
|
||||
BANK
|
||||
|
||||
COUNT 01/RSROU
|
||||
|
||||
FINDTIME COM # MAKE NEGATIVE SINCE IT WILL BE SUBTRACTED
|
||||
TS L # AND SAVE
|
||||
NDX TEMP2G
|
||||
CS TBASE1
|
||||
EXTEND
|
||||
# Page 1416
|
||||
SU TIME1
|
||||
CCS A
|
||||
COM
|
||||
AD OCT37776
|
||||
AD ONE
|
||||
AD L
|
||||
CCS A
|
||||
CA ZERO
|
||||
TCF +2
|
||||
TCF +1
|
||||
IMEDIATE AD ONE
|
||||
TC GOLOC -1
|
||||
ITSLIKEB CA RTRNCADR # TYPE B, SO STORE RETURN IN
|
||||
TS TEMPSWCH # TEMPSWCH IN CASE OF AN EVEN PHASE
|
||||
|
||||
CA PRT2CADR # SET UP EXIT TO GET TABLE PART OF THIS
|
||||
TS GOLOC +2 # VARIABLE TYPE OF PHASE
|
||||
|
||||
CA TEMPPHS # MAKE THE PHASE LOOK RIGHT FOR THE TABLE
|
||||
MASK OCT177 # PART OF THIS VARIABLE PHASE
|
||||
TS TEMPPHS
|
||||
|
||||
EXTEND
|
||||
NDX TEMP2G # OBTAIN THE JOB:S 2CADR
|
||||
DCA PHSNAME1
|
||||
DXCH GOLOC
|
||||
|
||||
ITSAJOB NDX TEMP2G # NOW ADD THE PRIORITY AND LET:S GO
|
||||
CA PHSPRDT1
|
||||
CHKNOVAC TS GOLOC -1 # SAVE PRIO UNTIL WE SEE IF ITS
|
||||
EXTEND # A FINDVAC OR A NOVAC
|
||||
BZMF ITSNOVAC
|
||||
|
||||
CAF FVACCADR # POSITIVE, SET UP FINDVAC CALL.
|
||||
XCH GOLOC -1 # PICK UP PRIO,
|
||||
TC GOLOC -1 # AND GO
|
||||
|
||||
ITSNOVAC CAF NOVACADR # NEGATIVE,
|
||||
XCH GOLOC -1 # SET UP NOVAC CALL,
|
||||
COM # CORRECT PRIO,
|
||||
TC GOLOC -1 # AND GO
|
||||
|
||||
ITSATBL TS CYR # FIND OUT IF THE PHASE IS ODD OR EVEN
|
||||
CCS CYR
|
||||
TCF +1 # IT:S EVEN
|
||||
TCF ITSEVEN
|
||||
|
||||
CA RTRNCADR # IN CASE THIS IS THE SECOND PART OF A
|
||||
TS GOLOC +2 # TYPE B RESTART, WE NEED PROPER EXIT
|
||||
# Page 1417
|
||||
CA TEMPPHS # SET UP POINTER FOR FINDING OUR PLACE IN
|
||||
TS SR # THE RESTART TABLES
|
||||
AD SR
|
||||
NDX TEMP2G
|
||||
AD SIZETAB +1
|
||||
TS POINTER
|
||||
|
||||
CONTBL2 EXTEND # FIND OUT WHAT'S IN THE TABLE
|
||||
NDX POINTER
|
||||
DCA CADRTAB # GET THE 2CADR
|
||||
|
||||
LXCH GOLOC +1 # STORE THE BB INFORMATION
|
||||
|
||||
CCS A # IS IT A JOB OR IT IT TIMED
|
||||
INCR A # POSITIVE, MUST BE A JOB
|
||||
TCF ITSAJOB2
|
||||
|
||||
INCR A # MUST BE EITHER A WAITLIST OR LONGCALL
|
||||
TS GOLOC # LET-S STORE THE CORRECT CADR
|
||||
|
||||
CA WTLTCADR # SET UP OUR EXIT TO WAITLIST
|
||||
TS GOLOC -1
|
||||
|
||||
CA GOLOC +1 # NOW FIND OUT IF IT IS A WAITLIST CALL
|
||||
MASK BIT10 # THIS SHOULD BE ONE IF WE HAVE -BB
|
||||
CCS A # FOR THAT MATTER SO SHOULD BE BITS 9,8,7,
|
||||
# 6,5, AND LAST BUT NOT LEAST (PERHAPS NOT
|
||||
# IN IMPORTANCE ANYWAY. BIT 4
|
||||
TCF ITSWTLST # IT IS A WAITLIST CALL
|
||||
|
||||
NDX POINTER # OBTAIN THE ORIGINAL DELTA T
|
||||
CA PRDTTAB # ADDRESS FOR THIS LONGCALL
|
||||
|
||||
TCF ITSLGCL1 # NOW GO GET THE DELTA TIME
|
||||
|
||||
# ***** THIS MUST BE IN FIXED FIXED *****
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG2
|
||||
BANK
|
||||
|
||||
COUNT 02/RSROU
|
||||
|
||||
ITSLGCL1 LXCH GOLOC +1 # OBTAIN THE CORRECT E BANK
|
||||
LXCH BB
|
||||
LXCH GOLOC +1 # AND PRESERVE OUR E AND F BANKS
|
||||
|
||||
EXTEND # GET THE DELTA TIME
|
||||
NDX A
|
||||
DCA 0
|
||||
# Page 1418
|
||||
LXCH GOLOC +1 # RESTORE OUR E AND F BANK
|
||||
LXCH BB # RESTORE THE TASKS E AND F BANKS
|
||||
LXCH GOLOC +1 # AND PRESERVE OUR L
|
||||
|
||||
TCF ITSLGCL2 # NOW LET:S PROCESS THIS LONGCALL
|
||||
|
||||
# ***** YOU MAY RETURN TO SWITCHED FIXED *****
|
||||
|
||||
BANK 01
|
||||
SETLOC RESTART
|
||||
BANK
|
||||
|
||||
COUNT 01/RSROU
|
||||
|
||||
ITSLGCL2 DXCH LONGTIME
|
||||
|
||||
EXTEND # CALCULATE TIME LEFT
|
||||
DCS TIME2
|
||||
DAS LONGTIME
|
||||
EXTEND
|
||||
DCA LONGBASE
|
||||
DAS LONGTIME
|
||||
|
||||
CCS LONGTIME # FIND OUT HOW THIS SHOULD BE RESTARTED
|
||||
TCF LONGCLCL
|
||||
TCF +2
|
||||
TCF IMEDIATE -3
|
||||
CCS LONGTIME +1
|
||||
TCF LONGCLCL
|
||||
NOOP # CAN:T GET HERE *********
|
||||
TCF IMEDIATE -3
|
||||
TCF IMEDIATE
|
||||
|
||||
LONGCLCL CA LGCLCADR # WE WILL GO TO LONGCALL
|
||||
TS GOLOC -1
|
||||
|
||||
EXTEND # PREPARE OUR ENTRY TO LONGCALL
|
||||
DCA LONGTIME
|
||||
TC GOLOC -1
|
||||
|
||||
ITSLNGCL CA WTLTCADR # ASSUME IT WILL GO TO WAITLIST
|
||||
TS GOLOC -1
|
||||
|
||||
NDX TEMP2G
|
||||
CS PHSPRDT1 # GET THE DELTA T ADDRESS
|
||||
|
||||
TCF ITSLGCL1 # NOW GET THE DELTA TIME
|
||||
|
||||
ITSWTLST CS GOLOC +1 # CORRECT THE BBCON INFORMATION
|
||||
TS GOLOC +1
|
||||
# Page 1419
|
||||
NDX POINTER # GET THE DT AND FIND OUT IF IT WAS STORED
|
||||
CA PRDTTAB # DIRECTLY OR INDIRECTLY
|
||||
|
||||
TCF TIMETEST # FIND OUT HOW THE TIME IS STORED
|
||||
|
||||
ITSAJOB2 XCH GOLOC # STORE THE CADR
|
||||
|
||||
NDX POINTER # ADD THE PRIORITY AND LET:S GO
|
||||
CA PRDTTAB
|
||||
|
||||
TCF CHKNOVAC
|
||||
|
||||
ITSEVEN CA TEMPSWCH # SET UP FOR EITHER THE SECOND PART OF THE
|
||||
TS GOLOC +2 # TABLE, OR A RETURN FOR THE NEXT GROUP
|
||||
|
||||
NDX TEMP2G # SET UP POINTER FOR OUR LOCATION WITHIN
|
||||
CA SIZETAB # THE TABLE
|
||||
AD TEMPPHS # THIS MAY LOOK BAD BUT LET:S SEE YOU DO
|
||||
AD TEMPPHS # BETTER IN TIME OR NUMBER OF LOCATIONS
|
||||
AD TEMPPHS
|
||||
TS POINTER
|
||||
|
||||
TCF CONTBL2 # NOW PROCESS WHAT IS IN THE TABLE
|
||||
|
||||
PHSPART2 CA THREE # SET THE POINTER FOR THE SECOND HALF OF
|
||||
ADS POINTER # THE TABLE
|
||||
|
||||
CA RTRNCADR # THIS WILL BE OUR LAST TIME THROUGH THE
|
||||
TS GOLOC +2 # EVEN TABLE , SO AFTER IT GET THE NEXT
|
||||
# GROUP
|
||||
TCF CONTBL2 # SO LET:S GET THE SECOND ENTRY IN THE TBL
|
||||
|
||||
TEMPPHS EQUALS MPAC
|
||||
TEMP2G EQUALS MPAC +1
|
||||
POINTER EQUALS MPAC +2
|
||||
TEMPSWCH EQUALS MPAC +3
|
||||
GOLOC EQUALS VAC5 +20D
|
||||
MINUS2 EQUALS NEG2
|
||||
OCT177 EQUALS LOW7
|
||||
|
||||
PHS2CADR GENADR PHSPART2
|
||||
PRT2CADR GENADR GETPART2
|
||||
LGCLCADR GENADR LONGCALL
|
||||
FVACCADR GENADR FINDVAC
|
||||
WTLTCADR GENADR WAITLIST
|
||||
NOVACADR GENADR NOVAC
|
||||
|
||||
|
||||
|
||||
|
549
Comanche055/RESTART_TABLES.agc
Normal file
549
Comanche055/RESTART_TABLES.agc
Normal file
@ -0,0 +1,549 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RESTART_TABLES.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. 211-221
|
||||
# Contact: Ron Burkey <info@sandroid.org>,
|
||||
# Fabrizio Bernardini <fabrizio@spacecraft.it>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 2009-05-16 FB Transcription Batch 2 Assignment.
|
||||
# 2009-05-20 RSB Added a missing comment mark. Corrected mismarked
|
||||
# Page 217 -> 220.
|
||||
# 2009-05-21 RSB Fixed value of 5.21SPOT.
|
||||
#
|
||||
# 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 211
|
||||
# RESTART TABLES
|
||||
# --------------
|
||||
#
|
||||
# THERE ARE TWO FORMS OF RESTART TABLES FOR EACH GROUP. THEY ARE KNOWN AS THE EVEN RESTART TABLES AND THE ODD
|
||||
# RESTART TABLES. THE ODD TABLES HAVE ONLY ONE ENTRY OF THREE LOCATIONS WHILE THE EVEN TABLES HAVE TWO ENTRIES
|
||||
# EACH USING THREE LOCATIONS. THE INFORMATION AS TO WHETHER IT IS A JOB, WAITLIST, OR A LONGCALL IS GIVEN BY THE
|
||||
# WAY THINGS ARE PUT INTO THE TABLES.
|
||||
#
|
||||
# A JOB HAS ITS PRIORITY STORED IN PRDTTAB OF THE CORRECT PHASE SPOT - A POSITIVE PRIORITY INDICATES A
|
||||
# FINDVAC JOB, A NEGATIVE PRIORITY A NOVAC. THE 2CADR OF THE JOB IS STORED IN THE CADRTAB.
|
||||
# FOR EXAMPLE,
|
||||
#
|
||||
# 5.7SPOT OCT 23000
|
||||
# 2CADR SOMEJOB
|
||||
#
|
||||
# A RESTART OF GROUP 5 WITH PHASE SEVEN WOULD THEN CAUSE SOMEJOB TO BE RESTARTED AS A FINDVAC WITH PRIORITY 23.
|
||||
#
|
||||
# 5.5SPOT OCT -23000
|
||||
# 2CADR ANYJOB
|
||||
#
|
||||
# HERE A RESTART OF GROUP 5 WITH PHASE 7 WOULD CAUSE ANYJOB TO BE RESTARTED AS A NOVAC WITH PRIORITY 23.
|
||||
# A LONGCALL HAS ITS GENADR OF ITS 2CADR STORED NEGATIVELY AND ITS BBCON STORED POSITIVELY. IN ITS PRDTTAB IS
|
||||
# PLACED THE LOCATION OF A DP REGISTER THAT CONTAINS THE DELTA TIME THAT LONGCALL HAD BEEN ORIGINALLY STARTED
|
||||
# WITH. EXAMPLE,
|
||||
#
|
||||
# 3.6SPOT GENADR DELTAT
|
||||
# -GENADR LONGTASK
|
||||
# BBCON LONGTASK
|
||||
|
||||
# OCT 31000
|
||||
# 2CADR JOBAGAIN
|
||||
#
|
||||
# THIS WOULD START UP LONGTASK AT THE APPROPRIATE TIME, OR IMMEDIATELY IF THE TIME HAD ALREADY PASSED. IT SHOULD
|
||||
# BE NOTED THAT IF DELTAT IS IN A SWITCHED E BANK, THIS INFORMATION SHOULD BE IN THE BBCON OF THE 2CADR OF THE
|
||||
# TASK. FROM ABOVE, WE SEE THAT THE SECOND PART OF THIS PHASE WOULD BE STARTED AS A JOB WITH A PRIORITY OF 31.
|
||||
#
|
||||
# WAITLIST CALLS ARE IDENTIFIED BY THE FACT THAT THEIR 2CADR IS STORED NEGATIVELY. IF PRDTTAB OF THE PHASE SPOT
|
||||
# IS POSITIVE, THEN IT CONTAINS THE DELTA TIME, IF PRDTTAB IS NEGATIVE THEN IT IS THE -GENADR OF AN ERASABLE
|
||||
# LOCATION CONTAINING THE DELTA TIME, THAT IS, THE TIME IS STORED INDIRECTLY. IT SHOULD BE NOTED AS ABOVE, THAT
|
||||
# IF THE TIME IS STORED INDIRECTLY, THE BBCON MUST CONTAIN THE NECESSARY E BANK INFORMATION IF APPLICABLE. WITH
|
||||
# WAITLIST WE HAVE ONE FURTHER OPTION, IF -0 IS STORED IN PRDTTAB, IT WILL CAUSE AN IMMEDIATE RESTART OF THE
|
||||
# TASK. EXAMPLES,
|
||||
#
|
||||
# OCT 77777 # THIS WILL CAUSE AN IMMEDIATE RESTART
|
||||
# -2CADR ATASK # OF THE TASK :ATASK:
|
||||
#
|
||||
# DEC 200 # IF THE TIME OF THE 2 SECONDS SINCE DUMMY
|
||||
# -2CADR DUMMY # WAS PUT ON THE WAITLIST IS UP, IT WILL BEGIN
|
||||
# # IN 10 MS, OTHERWISE IT WILL BEGIN WHEN
|
||||
# # IT NORMALLY WOULD HAVE BEGUN.
|
||||
# Page 212
|
||||
# -GENADR DTIME # WHERE DTIME CONTAINS THE DELTA TIME
|
||||
# -2CADR TASKTASK # OTHERWISE THIS IS AS ABOVE
|
||||
#
|
||||
# ***** NOW THE TABLES THEMSELVES *****
|
||||
|
||||
BANK 01
|
||||
SETLOC RESTART
|
||||
BANK
|
||||
|
||||
COUNT 01/RSTAB
|
||||
|
||||
PRDTTAB EQUALS 12000 # USED TO FIND THE PRIORITY OR DELTATIME
|
||||
CADRTAB EQUALS 12001 # THIS AND THE NEXT RELATIVE LOC CONTAIN
|
||||
# RESTART 2CADR
|
||||
|
||||
SIZETAB TC 1.2SPOT -12006
|
||||
TC 1.3SPOT -12004
|
||||
TC 2.2SPOT -12006
|
||||
TC 2.3SPOT -12004
|
||||
TC 3.2SPOT -12006
|
||||
TC 3.3SPOT -12004
|
||||
TC 4.2SPOT -12006
|
||||
TC 4.3SPOT -12004
|
||||
TC 5.2SPOT -12006
|
||||
TC 5.3SPOT -12004
|
||||
TC 6.2SPOT -12006
|
||||
TC 6.3SPOT -12004
|
||||
1.2SPOT EQUALS 3.2SPOT
|
||||
|
||||
# ANY MORE GROUP 1.EVEN RESTART VALUES SHOULD GO HERE
|
||||
|
||||
1.3SPOT DEC 120 # THIS NUMBER MUST BE EQUAL C(JTAGTIME)
|
||||
EBANK= AOG
|
||||
-2CADR SETJTAG
|
||||
|
||||
1.5SPOT OCT 10000
|
||||
EBANK= DAPDATR1
|
||||
2CADR REDO40.9
|
||||
|
||||
1.7SPOT OCT 10000
|
||||
EBANK= ESTROKER
|
||||
2CADR RELINUS
|
||||
|
||||
1.11SPOT OCT 10000
|
||||
EBANK= ESTROKER
|
||||
2CADR PIKUP20
|
||||
|
||||
# ANY MORE GROUP 1.ODD RESTART VALUES SHOULD GO HERE
|
||||
|
||||
2.2SPOT EQUALS 1.2SPOT
|
||||
|
||||
# ANY MORE GROUP 2.EVEN RESTART VALUES SHOULD GO HERE
|
||||
# Page 213
|
||||
|
||||
2.3SPOT GENADR 600SECS
|
||||
-GENADR STATEINT
|
||||
EBANK= RRECTCSM
|
||||
BBCON STATEINT
|
||||
|
||||
2.5SPOT OCT 05000
|
||||
EBANK= RRECTCSM
|
||||
2CADR STATINT1
|
||||
|
||||
2.7SPOT OCT 10000
|
||||
EBANK= MRKBUF2
|
||||
2CADR R22
|
||||
|
||||
2.11SPOT OCT 14000
|
||||
EBANK= LANDMARK
|
||||
2CADR V94ENTER
|
||||
|
||||
2.13SPOT OCT 10000
|
||||
EBANK= MRKBUF2
|
||||
2CADR REDOR22
|
||||
|
||||
# ANY MORE GROUP 2.ODD RESTART VALUES SHOULD GO HERE
|
||||
|
||||
3.2SPOT EQUALS 4.2SPOT
|
||||
|
||||
# ANY MORE GROUP 3.EVEN RESTART VALUES SHOULD GO HERE
|
||||
|
||||
3.3SPOT OCT 20000
|
||||
EBANK= TGO
|
||||
2CADR S40.13
|
||||
|
||||
3.5SPOT DEC 0
|
||||
DEC 0
|
||||
DEC 0
|
||||
3.7SPOT OCT 22000
|
||||
EBANK= TEPHEM
|
||||
2CADR MATRXJOB
|
||||
|
||||
3.11SPOT OCT 22000
|
||||
EBANK= TEPHEM
|
||||
2CADR REP11
|
||||
|
||||
3.13SPOT OCT 22000
|
||||
EBANK= TEPHEM
|
||||
2CADR REP11A
|
||||
|
||||
3.15SPOT -GENADR TGO +1
|
||||
EBANK= TGO
|
||||
-2CADR ENGINOFF
|
||||
|
||||
# Page 214
|
||||
# ANY MORE GROUP 3.ODD RESTART VALUES SHOULD GO HERE
|
||||
|
||||
4.2SPOT OCT 77777
|
||||
EBANK= TIG
|
||||
-2CADR PRECHECK
|
||||
|
||||
OCT 30000
|
||||
EBANK= DELVIMU
|
||||
2CADR P47BODY
|
||||
|
||||
4.4SPOT OCT 77777
|
||||
EBANK= TIG
|
||||
-2CADR PRECHECK
|
||||
|
||||
DEC 2996
|
||||
EBANK= DAPDATR1
|
||||
-2CADR TTG/0
|
||||
|
||||
4.6SPOT OCT 77777
|
||||
EBANK= TIG
|
||||
-2CADR PRECHECK
|
||||
|
||||
DEC 2496
|
||||
EBANK= TIG
|
||||
-2CADR TIG-5
|
||||
|
||||
# ANY MORE GROUP 4.EVEN RESTART VALUES SHOULD GO HERE
|
||||
|
||||
4.3SPOT DEC 40
|
||||
EBANK= PACTOFF
|
||||
-2CADR DOTVCON
|
||||
|
||||
4.5SPOT DEC 160
|
||||
EBANK= PACTOFF
|
||||
-2CADR DOSTRULL
|
||||
|
||||
4.7SPOT DEC 500
|
||||
EBANK= PACTOFF
|
||||
-2CADR TIG-0
|
||||
|
||||
4.11SPOT DEC 250
|
||||
EBANK= DAPDATR1
|
||||
-2CADR V97E40.6
|
||||
|
||||
4.13SPOT DEC 200
|
||||
EBANK= WHOCARES
|
||||
-2CADR R40ENABL
|
||||
|
||||
4.15SPOT OCT 16000 # PRELAUNCH OPTICAL VERIFICATION
|
||||
EBANK= OGC
|
||||
# Page 215
|
||||
2CADR COMPVER # CALLS FOR OPTICS DATA AGAIN (STD LEADIN)
|
||||
|
||||
4.17SPOT OCT 16000 # PRELAUNCH AZIMUTH CHANGE
|
||||
EBANK= XSM
|
||||
2CADR AZMTHCG1
|
||||
|
||||
4.21SPOT GENADR P40TMP # DELTA TIME USED IN SETTING UP
|
||||
-GENADR TIGBLNK # LONG CALL OF TIGBLNK BY P40,P41
|
||||
EBANK= P40TMP
|
||||
BBCON TIGBLNK
|
||||
4.23SPOT OCT 12000 # PROTECT P40S/SV BY P40 P41
|
||||
EBANK= TIG
|
||||
2CADR P40S/SV
|
||||
|
||||
4.25SPOT OCT 24000
|
||||
EBANK= BESTI
|
||||
2CADR PROG52
|
||||
|
||||
4.27SPOT DEC 250
|
||||
EBANK= PACTOFF
|
||||
-2CADR DOTVCRCS
|
||||
|
||||
4.31SPOT OCT 13000
|
||||
EBANK= STAR
|
||||
2CADR R51 +1
|
||||
|
||||
4.33SPOT DEC 2100 # PROTECT CONTINUING JOB TO START P63
|
||||
EBANK= AOG
|
||||
-2CADR WAKEP62
|
||||
|
||||
4.35SPOT OCT 12000
|
||||
EBANK= DAPDATR1
|
||||
2CADR POSTBURN
|
||||
|
||||
4.37SPOT DEC 500
|
||||
EBANK= TIG
|
||||
-2CADR TIGAVEG
|
||||
|
||||
4.41SPOT OCT 17000 # PROTECT DISPLAY JOB IN P67
|
||||
EBANK= AOG
|
||||
2CADR P67.1
|
||||
|
||||
4.43SPOT -GENADR S61DT # PROTECT TASK TO START PREREAD,ENTRY
|
||||
EBANK= S61DT # S61.1C WILL CHANGE EBANK=EB7 FOR PREREAD
|
||||
-2CADR S61.1C
|
||||
|
||||
4.45SPOT OCT 13000 # PROTECT CONTINUING JOB S61.1
|
||||
EBANK= AOG # (ENTRY IMU ALIGNMENT)
|
||||
# Page 216
|
||||
2CADR S61.1A -1
|
||||
|
||||
4.47SPOT OCT 17000 # PROTECT HUNTEST ITERATION.
|
||||
EBANK= AOG
|
||||
2CADR PRE-HUNT
|
||||
|
||||
4.51SPOT OCT 77777 # PROTECT FDAI ATTITUDE
|
||||
EBANK= BODY3 # ERROR DISPLAY IN P11
|
||||
-2CADR ATERTASK
|
||||
|
||||
4.53SPOT DEC -0
|
||||
EBANK= END-E7 # EBANK7 FOR TIG
|
||||
-2CADR V97ETASK
|
||||
|
||||
4.55SPOT OCT 13000 # PROTECT P65 RESPONSIVE DISPLAY.
|
||||
EBANK= RTINIT
|
||||
2CADR P65.1
|
||||
|
||||
4.57SPOT -GENADR P40TMP
|
||||
EBANK= P40TMP
|
||||
-2CADR TIGON
|
||||
|
||||
4.61SPOT OCT 77777
|
||||
EBANK= PACTOFF
|
||||
-2CADR IGNITION
|
||||
|
||||
4.63SPOT OCT 77777
|
||||
EBANK= PACTOFF
|
||||
-2CADR DOSPSOFF
|
||||
|
||||
4.65SPOT DEC 10
|
||||
EBANK= TIG
|
||||
-2CADR TIG-5
|
||||
|
||||
4.67SPOT DEC -0
|
||||
EBANK= CSMMASS
|
||||
-2CADR V97TTASK
|
||||
|
||||
4.71SPOT DEC 250
|
||||
EBANK= DAPDATR1 # (FOR RCSDAPON)
|
||||
-2CADR V97TRCS
|
||||
|
||||
4.73SPOT DEC -0
|
||||
EBANK= V97VCNTR
|
||||
-2CADR V97PTASK
|
||||
|
||||
4.75SPOT DEC -0
|
||||
EBANK= DAPDATR1
|
||||
-2CADR SPSOFF97
|
||||
|
||||
# Page 217
|
||||
4.77SPOT DEC -0
|
||||
EBANK= PACTOFF
|
||||
-2CADR TIG-0
|
||||
|
||||
# ANY MORE GROUP 4.ODD RESTART VALUES SHOULD GO HERE
|
||||
|
||||
5.2SPOT OCT 32000
|
||||
EBANK= DVCNTR
|
||||
2CADR NORMLIZE
|
||||
|
||||
DEC 200
|
||||
EBANK= AOG
|
||||
-2CADR REREADAC
|
||||
|
||||
5.4SPOT OCT 20000
|
||||
EBANK= DVCNTR
|
||||
2CADR SERVICER
|
||||
|
||||
DEC 200
|
||||
EBANK= AOG
|
||||
-2CADR REREADAC
|
||||
|
||||
# ANY MORE GROUP 5.EVEN RESTART VALUES SHOULD GO HERE
|
||||
|
||||
5.3SPOT DEC 200
|
||||
EBANK= AOG
|
||||
-2CADR REREADAC
|
||||
|
||||
5.5SPOT OCT 77777
|
||||
EBANK= AOG
|
||||
-2CADR REDO5.5
|
||||
|
||||
5.7SPOT OCT 20000 # USED BY PRELAUNCH
|
||||
EBANK= XSM
|
||||
2CADR RSTGTS1
|
||||
|
||||
5.11SPOT OCT 77777
|
||||
EBANK= XSM
|
||||
-2CADR ALLOOP1
|
||||
|
||||
5.13SPOT OCT 20000
|
||||
EBANK= XSM
|
||||
2CADR WTLISTNT
|
||||
|
||||
5.15SPOT OCT 20000
|
||||
EBANK= XSM
|
||||
2CADR RESTEST1
|
||||
|
||||
5.17SPOT OCT 20000
|
||||
EBANK= XSM
|
||||
# Page 218
|
||||
2CADR GEOSTRT4
|
||||
|
||||
5.21SPOT OCT 22000
|
||||
EBANK= XSM
|
||||
2CADR ALFLT1
|
||||
|
||||
5.23SPOT OCT 77777
|
||||
EBANK= XSM
|
||||
-2CADR SPECSTS
|
||||
|
||||
5.25SPOT OCT 20000
|
||||
EBANK= XSM
|
||||
2CADR RESTEST3
|
||||
|
||||
5.27SPOT OCT 20000
|
||||
EBANK= XSM
|
||||
2CADR RESTAIER
|
||||
|
||||
5.31SPOT DEC 0
|
||||
DEC 0
|
||||
DEC 0
|
||||
5.33SPOT OCT 20000
|
||||
EBANK= XSM
|
||||
2CADR RESCHNG
|
||||
|
||||
5.35SPOT DEC 0
|
||||
2DEC 0
|
||||
|
||||
5.37SPOT OCT 77777
|
||||
EBANK= AOG
|
||||
-2CADR CHEKAVEG
|
||||
|
||||
5.41SPOT OCT 77777 # TO PROTECT PREREAD AT TIG-30A
|
||||
EBANK= DVCNTR # TIG-15 T+60
|
||||
-2CADR PREREAD
|
||||
|
||||
# ANY MORE GROUP 5.ODD RESTART VALUES SHOULD GO HERE
|
||||
|
||||
6.2SPOT OCT 77777 # USED BY P40 AFTER GIMB DR TST TO REPOS'N
|
||||
EBANK= AK # ENGINE UNTIL TVCDAPON
|
||||
-2CADR PRE40.6
|
||||
|
||||
DEC 100
|
||||
EBANK= TTOGO
|
||||
-2CADR CLOKTASK
|
||||
|
||||
# ANY MORE 6.ODD RESTART VALUES SHOULD GO HERE
|
||||
# Page 219
|
||||
|
||||
6.3SPOT DEC 100
|
||||
EBANK= TIG
|
||||
-2CADR CLOKTASK
|
||||
|
||||
6.5SPOT OCT 30000 # PROTECT INCREMENTING OF TIME2,TIME1 BY
|
||||
EBANK= TEPHEM # P27(UPDATE PROGRAM)
|
||||
2CADR TIMEDIDR
|
||||
|
||||
6.7SPOT OCT 0
|
||||
OCT 0
|
||||
OCT 0
|
||||
|
||||
6.11SPOT -GENADR CM/GYMDT # PROTECT TASK TO READ CDUS.
|
||||
EBANK= CM/GYMDT # FOR ENTRY DAP
|
||||
-2CADR READGYMB
|
||||
|
||||
6.13SPOT DEC 0
|
||||
DEC 0
|
||||
DEC 0
|
||||
|
||||
# Page 220
|
||||
# PROGRAM DESCRIPTION: NEWPHASE DATE: 11 NOV 1966
|
||||
# MOD: 1 ASSEMBLY: SUNBURST REV
|
||||
# MOD BY: COPPS LOG SECTION: PHASE TABLE MAINTENANCE
|
||||
# FUNCTIONAL DESCRIPTION:
|
||||
#
|
||||
# NEWPHASE IS THE QUICK WAY TO MAKE A NON VARIABLE PHASE CHANGE. IT INCLUDES THE OPTION OF SETTING
|
||||
# TBASE OF THE GROUP. IF TBASE IS TO BE SET, -C(TIME1) IS STORED IN THE TBASE TABLE AS FOLLOWS:
|
||||
#
|
||||
# (L-1) TBASE0
|
||||
# (L) TBASE1 (IF GROUP=1)
|
||||
# (L+1)
|
||||
# (L+2) TBASE2 (IF GROUP=2)
|
||||
# -----
|
||||
# (L+6) TBASE4 (IF GROUP=4)
|
||||
# (L+7)
|
||||
# (L+8) TBASE5 (IF GROUP=5)
|
||||
#
|
||||
# IN ANY CASE, THE NEGATIVE OF THE PHASE, FOLLOWED (IN THE NEXT REGISTER) BY THE PHASE, IS STORED IN THE
|
||||
# PHASE TABLE AS FOLLOWS:
|
||||
#
|
||||
# (L) -PHASE1 (IF GROUP=1)
|
||||
# (L+1) PHASE1
|
||||
# (L+2) -PHASE2 (IF GROUP=2)
|
||||
# (L+3) PHASE2
|
||||
# -----
|
||||
# (L+7) PHASE4
|
||||
# (L+8) -PHASE5 (IF GROUP=5)
|
||||
# (L+9) PHASE5
|
||||
#
|
||||
# CALLING SEQUENCE:
|
||||
# EXAMPLE IS FOR PLACING A PHASE OF FIVE INTO GROUP THREE:
|
||||
#
|
||||
# 1) IF TBASE IS NOT TO BE SET:
|
||||
# L-1 CA FIVE
|
||||
# L TC NEWPHASE
|
||||
# L+1 OCT 00003
|
||||
#
|
||||
# 2) IF TBASE IS TO BE SET:
|
||||
# L-1 CS FIVE
|
||||
# L TC NEWPHASE
|
||||
# L+1 OCT 00003
|
||||
#
|
||||
# SUBROUTINES CALLED: NONE
|
||||
#
|
||||
# NORMAL EXIT MODE: AT L+2 OF CALLING SEQUENCE
|
||||
#
|
||||
# ALARM OR ABORT EXITS: NONE
|
||||
#
|
||||
# OUTPUT: PHASE TABLE AND TBASE TABLE UPDATED
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQ'D: NONE
|
||||
# Page 221
|
||||
# DEBRIS: A,L,TEMPG
|
||||
|
||||
# ***WARNING*** THIS PROGRAM IS TO BE PLACED IN FIXED-FIXED AND UNSWITCHED ERASABLE.
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG1
|
||||
BANK
|
||||
|
||||
COUNT* $$/PHASE
|
||||
|
||||
NEWPHASE INHINT
|
||||
|
||||
TS L # SAVE FOR FURTHER USE
|
||||
NDX Q # OBTAIN THE GROUP NUMBER
|
||||
CA 0
|
||||
INCR Q # OBTAIN THE RETURN ADDRESS
|
||||
DOUBLE # SAVE THE GROUP IN A FORM USED FOR
|
||||
TS TEMPG # INDEXING
|
||||
|
||||
CCS L # SEE IF WE ARE TO SET TBASE
|
||||
TCF +7 # NO, THE DELTA T WAS POSITIVE
|
||||
TCF +6
|
||||
|
||||
NUFAZ+10 INCR A # SET TBASE AND STORE PHASE CORRECTLY
|
||||
TS L
|
||||
CS TIME1 # SET TBASE
|
||||
NDX TEMPG
|
||||
TS TBASE1 -2
|
||||
CS L # NOW PUT THE PHASE IN THE RIGHT TABLE LOC
|
||||
NDX TEMPG
|
||||
DXCH -PHASE1 -2
|
||||
RELINT
|
||||
TC Q # NOW RETURN TO CALLER
|
||||
|
||||
|
358
Comanche055/RT8_OP_CODES.agc
Normal file
358
Comanche055/RT8_OP_CODES.agc
Normal file
@ -0,0 +1,358 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RT8_OP_CODES.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. 1508-1516
|
||||
# Contact: Ron Burkey <info@sandroid.org>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 2009-05-07 RSB Adapted from Colossus249/RT8_OP_CODES.agc
|
||||
# and page images.
|
||||
# 2009-05-07 RSB Oops! Left out the entire last page before.
|
||||
#
|
||||
# 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 1508
|
||||
BANK 22
|
||||
SETLOC RTBCODES
|
||||
BANK
|
||||
|
||||
EBANK= XNB
|
||||
COUNT* $$/RTB
|
||||
|
||||
# LOAD TIME2, TIME1 INTO MPAC:
|
||||
|
||||
LOADTIME EXTEND
|
||||
DCA TIME2
|
||||
TCF SLOAD2
|
||||
|
||||
# CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
|
||||
# DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
|
||||
|
||||
CDULOGIC CCS MPAC
|
||||
CAF ZERO
|
||||
TCF +3
|
||||
NOOP
|
||||
CS HALF
|
||||
|
||||
TS MPAC +1
|
||||
CAF ZERO
|
||||
XCH MPAC
|
||||
EXTEND
|
||||
MP HALF
|
||||
DAS MPAC
|
||||
TCF DANZIG # MODE IS ALREADY AT DOUBLE-PRECISION
|
||||
|
||||
# READ THE PIPS INTO MPAC WITHOUT CHANGING THEM:
|
||||
|
||||
READPIPS INHINT
|
||||
CA PIPAX
|
||||
TS MPAC
|
||||
CA PIPAY
|
||||
TS MPAC +3
|
||||
CA PIPAZ
|
||||
RELINT
|
||||
TS MPAC +5
|
||||
|
||||
CAF ZERO
|
||||
TS MPAC +1
|
||||
TS MPAC +4
|
||||
TS MPAC +6
|
||||
|
||||
VECMODE TCF VMODE
|
||||
|
||||
# FORCE TP SIGN AGREEMENT IN MPAC:
|
||||
|
||||
SGNAGREE TC TPAGREE
|
||||
|
||||
# Page 1509
|
||||
|
||||
TCF DANZIG
|
||||
|
||||
# CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
|
||||
# SCALED IN HALF-REVOLUTIONS.
|
||||
|
||||
1STO2S TC 1TO2SUB
|
||||
CAF ZERO
|
||||
TS MPAC +1
|
||||
TCF NEWMODE
|
||||
|
||||
# DO 1STO2S ON A VECTOR OF ANGLES:
|
||||
|
||||
V1STO2S TC 1TO2SUB # ANSWER ARRIVES IN A AND MPAC.
|
||||
|
||||
DXCH MPAC +5
|
||||
DXCH MPAC
|
||||
TC 1TO2SUB
|
||||
TS MPAC +2
|
||||
|
||||
DXCH MPAC +3
|
||||
DXCH MPAC
|
||||
TC 1TO2SUB
|
||||
TS MPAC +1
|
||||
|
||||
CA MPAC +5
|
||||
TS MPAC
|
||||
|
||||
TPMODE CAF ONE # MODE IS TP.
|
||||
TCF NEWMODE
|
||||
|
||||
# V1STO2S FOR 2 COMPONENT VECTOR. USED BY RR.
|
||||
|
||||
2V1STO2S TC 1TO2SUB
|
||||
DXCH MPAC +3
|
||||
DXCH MPAC
|
||||
TC 1TO2SUB
|
||||
TS L
|
||||
CA MPAC +3
|
||||
TCF SLOAD2
|
||||
|
||||
# SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S CONVERSION:
|
||||
|
||||
1TO2SUB DXCH MPAC # FINAL MPAC +1 UNSPECIFIED.
|
||||
DDOUBL
|
||||
CCS A
|
||||
AD ONE
|
||||
TCF +2
|
||||
COM # THIS WAS REVERSE OF MSU.
|
||||
|
||||
TS MPAC # AND SKIP ON OVERFLOW.
|
||||
# Page 1510
|
||||
TC Q
|
||||
|
||||
INDEX A # OVERFLOW UNCORRECT AND IN MSU.
|
||||
CAF LIMITS
|
||||
ADS MPAC
|
||||
TC Q
|
||||
|
||||
# Page 1511
|
||||
# SUBROUTINE TO INCREMENT CDUS
|
||||
|
||||
INCRCDUS CAF LOCTHETA
|
||||
TS BUF # PLACE ADRES(THETA) IN BUF.
|
||||
CAE MPAC # INCREMENT IN 1S COMPL.
|
||||
TC CDUINC
|
||||
|
||||
INCR BUF
|
||||
CAE MPAC +3
|
||||
TC CDUINC
|
||||
|
||||
INCR BUF
|
||||
CAE MPAC +5
|
||||
TC CDUINC
|
||||
|
||||
TCF VECMODE
|
||||
|
||||
LOCTHETA ADRES THETAD
|
||||
|
||||
# THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL.
|
||||
# QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCREMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL.
|
||||
# (+0 UNEQUAL TO -0) QUANTITY. MAY BE CALLED BY BANKCALL/SWCALL.
|
||||
|
||||
CDUINC TS TEM2 # 1S COMPL.QUANT. ARRIVES IN ACC. STORE IT
|
||||
INDEX BUF
|
||||
CCS 0 # CHANGE 2S COMPLE. ANGLE(IN BUF) INTO 1S
|
||||
AD ONE
|
||||
TCF +4
|
||||
AD ONE
|
||||
AD ONE # OVEFLOW HERE IF 2S COMPL. IS 180 DEG.
|
||||
COM
|
||||
|
||||
AD TEM2 # SULT MOVES FROM 2ND TO 3D QUAD.(OR BACK)
|
||||
CCS A # BACK TO 2S COMPL.
|
||||
AD ONE
|
||||
TCF +2
|
||||
COM
|
||||
TS TEM2 # STORE 14BIT QUANTITY WITH PRESENT SIGN
|
||||
TCF +4
|
||||
INDEX A # SIGN.
|
||||
CAF LIMITS # FIX IT,BY ADDING IN 37777 OR 40000
|
||||
AD TEM2
|
||||
|
||||
INDEX BUF
|
||||
TS 0 # STORE NEW ANGLE IN 2S COMPLEMENT.
|
||||
TC Q
|
||||
|
||||
# Page 1512
|
||||
# RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL. ECADR OF COMMANDS ARRIVES IN X1.
|
||||
|
||||
PULSEIMU INDEX FIXLOC # ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
|
||||
CA X1
|
||||
TC BANKCALL
|
||||
CADR IMUPULSE
|
||||
TCF DANZIG
|
||||
|
||||
# Page 1513
|
||||
# EACH ROUTINE TAKES A 3X3 MATRIX STORED IN DOUBLE PRECISION IN A FIXED AREA OF ERASABLE MEMORY AND REPLACES IT
|
||||
# WITH THE TRANSPOSE MATRIX. TRANSP1 USES LOCATIONS XNB+0,+1 THROUGH XNB+16D, 17D AND TRANSP2 USES LOCATIONS
|
||||
# XNB1+0,+1 THROUGH XNB1+16D, 17D. EACH MATRIX IS STORED BY ROWS.
|
||||
|
||||
XNBEB ECADR XNB
|
||||
XNB1EB ECADR XNB1
|
||||
|
||||
EBANK= XNB
|
||||
|
||||
TRANSP1 CAF XNBEB
|
||||
TS EBANK
|
||||
DXCH XNB +2
|
||||
DXCH XNB +6
|
||||
DXCH XNB +2
|
||||
|
||||
DXCH XNB +4
|
||||
DXCH XNB +12D
|
||||
DXCH XNB +4
|
||||
|
||||
DXCH XNB +10D
|
||||
DXCH XNB +14D
|
||||
DXCH XNB +10D
|
||||
TCF DANZIG
|
||||
|
||||
|
||||
EBANK= XNB1
|
||||
|
||||
TRANSP2 CAF XNB1EB
|
||||
TS EBANK
|
||||
DXCH XNB1 +2
|
||||
DXCH XNB1 +6
|
||||
DXCH XNB1 +2
|
||||
|
||||
DXCH XNB1 +4
|
||||
DXCH XNB1 +12D
|
||||
DXCH XNB1 +4
|
||||
|
||||
DXCH XNB1 +10D
|
||||
DXCH XNB1 +14D
|
||||
DXCH XNB1 +10D
|
||||
TCF DANZIG
|
||||
|
||||
# Page 1514
|
||||
# THE SUBROUTINE SIGNMPAC SETS C(MPAC, MPAC +1) TO SIGN(MPAC).
|
||||
# FOR THIS, ONLY THE CONTENTS OF MPAC ARE EXAMINED. ALSO +0 YIELDS POSMAX AND -0 YIELDS NEGMAX.
|
||||
#
|
||||
# ENTRY MAY BE BY EITHER OF THE FOLLOWING:
|
||||
# 1. LIMIT THE SIZE OF MPAC ON INTERPRETIVE OVERFLOW:
|
||||
# ENTRY: BOVB
|
||||
# SIGNMPAC
|
||||
# 2. GENERATE IN MPAC THE SIGNUM FUNCTION OF MPAC:
|
||||
# ENTRY: RTB
|
||||
# SIGNMPAC
|
||||
# IN EITHER CASE, RETURN IS TO TEH NEXT INTERPRETIVE INSTRUCTION IN THE CALLING SEQUENCE.
|
||||
|
||||
SIGNMPAC EXTEND
|
||||
DCA DPOSMAX
|
||||
DXCH MPAC
|
||||
CCS A
|
||||
DPMODE CAF ZERO # SETS MPAC +2 TO ZERO IN THE PROCESS
|
||||
TCF SLOAD2 +2
|
||||
TCF +1
|
||||
EXTEND
|
||||
DCS DPOSMAX
|
||||
TCF SLOAD2
|
||||
|
||||
# RTB OP CODE NORMUNIT IS LIKE INTERPRETIVE INSTRUCTION UNIT, EXCEPT THAT IT CAN BE DEPENDED ON NOT TO BLOW
|
||||
# UP WHEN THE VECTOR BEING UNITIZED IS VERY SMALL -- IT WILL BLOW UP WHEN ALL COMPONENT ARE ZERO. IF NORMUNIT
|
||||
# IS USED AND THE UPPER ORDER HALVES OF ALL COMPONENTS ARE ZERO, THE MAGNITUDE RETURNS IN 36D WILL BE TOO LARGE
|
||||
# BY A FACTOR OF 2(13) AND THE SQUARED MAGNITUDE RETURNED AT 34D WILL BE TOO BIG BY A FACTOR OF 2(26).
|
||||
|
||||
NORMUNX1 CAF ONE
|
||||
TCF NORMUNIT +1
|
||||
NORMUNIT CAF ZERO
|
||||
AD FIXLOC
|
||||
TS MPAC +2
|
||||
TC BANKCALL # GET SIGN AGREEMENT IN ALL COMPONENTS
|
||||
CADR VECAGREE
|
||||
CCS MPAC
|
||||
TCF NOSHIFT
|
||||
TCF +2
|
||||
TCF NOSHIFT
|
||||
CCS MPAC +3
|
||||
TCF NOSHIFT
|
||||
TCF +2
|
||||
TCF NOSHIFT
|
||||
CCS MPAC +5
|
||||
TCF NOSHIFT
|
||||
TCF +2
|
||||
TCF NOSHIFT
|
||||
# Page 1515
|
||||
CA MPAC +1 # SHIFT ALL COMPONENTS LEFT 13
|
||||
EXTEND
|
||||
MP BIT14
|
||||
DAS MPAC # DAS GAINS A LITTLE ACCURACY
|
||||
CA MPAC +4
|
||||
EXTEND
|
||||
MP BIT14
|
||||
DAS MPAC +3
|
||||
CA MPAC +6
|
||||
EXTEND
|
||||
MP BIT14
|
||||
DAS MPAC +5
|
||||
CAF THIRTEEN
|
||||
INDEX MPAC +2
|
||||
TS 37D
|
||||
OFFTUNIT TC POSTJUMP
|
||||
CADR UNIT +1 # SKIP THE "TC VECAGREE" DONE AT UNIT
|
||||
|
||||
NOSHIFT CAF ZERO
|
||||
TCF OFFTUNIT -2
|
||||
|
||||
# RTB VECSGNAG ...FORCES SIGN AGREEMENT OF VECTOR IN MPAC.
|
||||
|
||||
VECSGNAG TC BANKCALL
|
||||
CADR VECAGREE
|
||||
TC DANZIG
|
||||
|
||||
# Page 1516
|
||||
# MODULE CHANGE FOR NEW LUNAR GRAVITY MODEL
|
||||
SETLOC MODCHG3
|
||||
BANK
|
||||
QUALITY1 BOF DLOAD
|
||||
MOONFLAG
|
||||
NBRANCH
|
||||
URPV
|
||||
DSQ GOTO
|
||||
QUALITY2
|
||||
SETLOC MODCHG2
|
||||
BANK
|
||||
QUALITY2 PDDL DSQ # SQUARE INTO 2D, B2
|
||||
URPV +2 # Y COMPONENT, B1
|
||||
DSU
|
||||
DMP VXSC # 5(Y**2-X**2)UR
|
||||
5/8 # CONSTANT, 5B3
|
||||
URPV # VECTOR, RESULT MAXIMUM IS 5, SCALING
|
||||
# HERE B6
|
||||
VSL3 PDDL # STORE SCALED B3 IN 2D, 4D, 6D FOR XYZ
|
||||
URPV # X COMPONENT, B1
|
||||
SR1 DAD # 2 X X COMPONENT FOR B3 SCALING
|
||||
2D # ADD TO VECTOR X COMPONENT OF ANSWER.
|
||||
# SAME AS MULTIPLYING BY UNITX. MAX IS 7.
|
||||
STODL 2D
|
||||
URPV +2 # Y COMPONENT, B1
|
||||
SR1 BDSU # 2 X Y COMPONENT FOR B3 SCALING
|
||||
4D # SUBTRACT FROM VECTOR Y COMPONENT OF
|
||||
# ANSWER, SAME AS MULTIPLYING BY UNITY.
|
||||
# MAX IS 7.
|
||||
STORE 4D # 2D HAS VECTOR, B3.
|
||||
SLOAD VXSC # MULTIPLY COEFFICIENT TIMES VECTOR IN 2D
|
||||
E3J22R2M
|
||||
PDDL RVQ # J22 TERM X R**4 IN 2D, SCALED B61
|
||||
COSPHI/2 # SAME AS URPV +4, Z COMPONENT
|
||||
|
||||
# *** END OF CHIEFTAN.028 ***
|
||||
|
128
Comanche055/S-BAND_ANTENNA_FOR_CM.agc
Normal file
128
Comanche055/S-BAND_ANTENNA_FOR_CM.agc
Normal file
@ -0,0 +1,128 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: S-BAND_ANTENNA_FOR_CM.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: Jim Lawton <jim.lawton@gmail.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 934-935
|
||||
# Mod history: 2009-05-11 JVL 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 934
|
||||
# S-BAND ANTENNA FOR CM
|
||||
|
||||
BANK 23
|
||||
SETLOC SBAND
|
||||
BANK
|
||||
|
||||
COUNT* $$/R05
|
||||
EBANK= EMSALT
|
||||
|
||||
SBANDANT TC BANKCALL # V 64 E GETS US HERE
|
||||
CADR R02BOTH # CHECK IF IMU IS ON AND ALIGNED
|
||||
TC INTPRET
|
||||
RTB CALL
|
||||
LOADTIME # PICKUP CURRENT TIME SCALED B-28
|
||||
CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
|
||||
STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
|
||||
CSMCONIC # USING CONIC INTEGRATION
|
||||
SLOAD BHIZ # ORIGIN OF REFERENCE INERTIAL SYSTEM IS
|
||||
X2 # EARTH = 0, MOON = 2
|
||||
EISOI
|
||||
VLOAD
|
||||
RATT
|
||||
STORE RCM # MOVE RATT TO PREVENT WIPEOUT
|
||||
DLOAD CALL # MOON, PUSH ON
|
||||
TAT # GET ORIGINAL TIME
|
||||
LUNPOS # COMPUTE POSITION VECTOR OF MOON
|
||||
VAD VCOMP # R= -(REM+RCM) = NEG. OF S/C POS. VEC
|
||||
RCM
|
||||
GOTO
|
||||
EISOI +2
|
||||
EISOI VLOAD VCOMP # EARTH, R= -RCM
|
||||
RATT
|
||||
SETPD MXV # RCS TO STABLE MEMBER- B-1X B-29X B+1
|
||||
2D # 2D
|
||||
REFSMMAT # STABLE MEMBER. B-1X B-29X B+1= B-29
|
||||
VSL1 PDDL # 8D
|
||||
HI6ZEROS
|
||||
STOVL YAWANG # ZERO OUT YAWANG, SET UP FOR SMNB
|
||||
RCM # TRANSFORMATION. SM COORD. SCALED B-29
|
||||
CALL
|
||||
*SMNB*
|
||||
STORE R # SAVE NAV. BASE COORDINATES
|
||||
UNIT PDVL # 14D
|
||||
R
|
||||
VPROJ VSL2 # COMPUTE PROJECTION OF VECTOR INTO CM
|
||||
HIUNITZ # XY-PLANE, R-(R.UZ)UZ
|
||||
BVSU BOV # CLEAR OVERFLOW INDICATOR IF SET
|
||||
R
|
||||
COVCNV
|
||||
COVCNV UNIT BOV # TEST OVERFLOW FOR INDICATION OF NULL
|
||||
NOADJUST # VECTOR
|
||||
PUSH DOT # 20D
|
||||
# Page 935
|
||||
HIUNITX # COMPUTE YAW ANGLE = ACOS (URP.UX)
|
||||
SL1 ACOS # REVOLUTIONS SCALED B0
|
||||
PDVL DOT # 22D YAWANG
|
||||
URP
|
||||
HIUNITY # COMPUTE FOLLOWING- URP.UY
|
||||
SL1 BPL # POSITIVE
|
||||
NOADJUST # YES, 0- 180 DEGREES
|
||||
DLOAD DSU # NO, 181-360 DEGREES 20D
|
||||
DPPOSMAX # COMPUTE 2 PI MINUS YAW ANGLE
|
||||
PUSH # 22D YAWANG
|
||||
NOADJUST VLOAD DOT # COMPUTE PITCH ANGLE
|
||||
UR # ACOS (UR.UZ) - PI/2
|
||||
HIUNITZ
|
||||
SL1 ACOS # REVOLUTIONS B0
|
||||
DSU
|
||||
HIDP1/4
|
||||
STODL RHOSB
|
||||
YAWANG
|
||||
STORE GAMMASB # PATCH FOR CHECKOUT
|
||||
EXIT
|
||||
CA EXTVBACT # IS BIT 5 STILL ON
|
||||
MASK BIT5
|
||||
EXTEND
|
||||
BZF ENDEXT # NO, WE HAVE BEEN ANSWERED
|
||||
CAF V06N51 # DISPLAY ANGLES
|
||||
TC BANKCALL
|
||||
CADR GOMARKFR
|
||||
TC B5OFF # TERMINATE
|
||||
TC B5OFF
|
||||
TC ENDOFJOB # RECYCLE
|
||||
CAF BIT3 # IMMEDIATE RETURN
|
||||
TC BLANKET # BLANK R3
|
||||
CAF BIT1 # DELAY MINIMUM TIME TO ALLOW DISPLAY IN
|
||||
TC BANKCALL
|
||||
CADR DELAYJOB
|
||||
TCF SBANDANT +2
|
||||
V06N51 VN 0651
|
||||
RCM EQUALS 2D
|
||||
UR EQUALS 8D
|
||||
URP EQUALS 14D
|
||||
YAWANG EQUALS 20D
|
||||
PITCHANG EQUALS 22D
|
||||
R EQUALS RCM
|
||||
SBANK= LOWSUPER
|
824
Comanche055/SERVICER207.agc
Normal file
824
Comanche055/SERVICER207.agc
Normal file
@ -0,0 +1,824 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SERVICER207.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. 819-836
|
||||
# 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 819
|
||||
# SERVICER207
|
||||
|
||||
# PROGRAM NAME - PREREAD, READACCS, SERVICER, AVERAGE G.
|
||||
|
||||
|
||||
# MOD NO. 00 BY M.HAMILTON DEC.12, 1966
|
||||
|
||||
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
|
||||
# THE ROUTINES DESCRIBED BELOW ARE USED TO CALCULATE VALUES OF RN, VN, AND GDT/2 DURING ACCELERATED FLIGHT.
|
||||
# THE SEVERAL ROUTINES COMPRISE A PACKAGE AND ARE NOT MEANT TO BE USED AS SEPARATE SUBROUTINES.
|
||||
|
||||
# GENERAL REFERENCES TO SERVICER OR AVERAGE G ARE UNDERSTOOD TO REFER TO THE ENTIRE SET OF ROUTINES INCLUDING
|
||||
# READACCS, SERVICER, AVERAGE G, INTEREAD, SMOOTHER, AND ANY ADDITIONAL ROUTINES ATTACHED AT AVGEXIT (SEE BELOW).
|
||||
|
||||
# PROGRAMS INITIATING SERVICER ARE REQUIRED TO MAKE A WAITLIST CALL FOR PREREAD (OR, IF LIFTOFF, FOR BIBIBIAS)
|
||||
# AT 2 SECONDS BEFORE THE FIRST AVERAGE G UPDATE IN ORDER TO INITIALIZE THE SEQUENCE, WHICH WILL RECUR EVERY
|
||||
# 2 SECONDS FROM THAT TIME ON AS LONG AS AVEGFLAG REMAINS SET.
|
||||
|
||||
# THE USE OF ERASABLE AVGEXIT ALLOWS VARIOUS ROUTINES TO BE PERFORMED AS PART OF THE NORMAL CYCLE (SEE
|
||||
# EXPLANATION OF AVGEXIT BELOW).
|
||||
|
||||
# DESCRIPTIONS OF INDIVIDUAL ROUTINES FOLLOW.
|
||||
|
||||
|
||||
# PREREAD
|
||||
|
||||
# PREVIOUSLY EXTRAPOLATED VALUES COPIED FROM RN1, VN1, AND PIPTIME1 INTO RN, VN, AND PIPTIME.
|
||||
# LASTBIAS JOB SCHEDULED.
|
||||
# PIPS READ AND CLEARED VIA PIPASR SUBROUTINE.
|
||||
# AVERAGE G FLAG SET ON.
|
||||
# DRIFT FLAG SET OFF.
|
||||
# V37 FLAG SET ON.
|
||||
# INITIALIZATION OF 1) THRUST MONITOR (DVMON) - DVCNTR SET TO ONE.
|
||||
# 2) TOTAL ACCUMULATED DELV VALUE (DVTOTAL) - SET TO ZERO.
|
||||
# 3) AXIS VECTOR (AXIS) - SET TO (.5,0,0).
|
||||
# NORMLIZE JOB SCHEDULED.
|
||||
# READACCS TASH CALLED IN 2 SECONDS.
|
||||
|
||||
|
||||
# NORMLIZE
|
||||
#
|
||||
# GDT/2 INITIALIZED VIA CALCGRAV SUBROUTINE.
|
||||
|
||||
|
||||
# READACCS
|
||||
|
||||
# IF ONMON FLAG SET QUIKREAD ROUTINE IS PERFORMED BEFORE PIPASR ZEROS THE PIPA REGISTERS, AND THE 1/2 SEC
|
||||
# ONMONITOR LOOP IS INITIATED TO PROVIDE DOWNLINK INFORMATION DURING ENTRY.
|
||||
# PIPS READ AND CLEARED BY PIPASR SUBROUTINE.
|
||||
# IF CM/DSTBY IS ON, ENTRY VARIABLES INITIALIZED AND SETJTAG TASK CALLED.
|
||||
# Page 820
|
||||
# SERVICER207
|
||||
|
||||
# IF AVERAGEG FLAG ON READACCS CALLED TO RECYCLE IN 2 SECONDS.
|
||||
# IF AVERAGEG FLAG OFF AVERAGE G EXIT (AVGEXIT) SET TO 2CADR AVGEND FOR FINAL PASS.
|
||||
# SERVICER JOB SCHEDULED.
|
||||
|
||||
|
||||
# TEST CONNECTOR OUTBIT TURNED ON.
|
||||
|
||||
|
||||
# ONMNITOR
|
||||
|
||||
# A SEQUENCE OF THREE PASSES THROUGH QUICREAD FOLLOWING A CALL TO READACCS WITH ONMONFLG SET AT 1/2
|
||||
# SEC INTERVALS. INTERVALS ARE COUNTED OUT BY PIPCTR, INITIALISED AT 3 BY READACCS
|
||||
|
||||
# QUIKREAD
|
||||
|
||||
# READS CURRENT PIPS INTO X,Y,ZPIPBUF. READS OLD X,Y,ZPIPBUF INTO X,Y,ZOLDBUF. VALUES ARE SENT TO
|
||||
# DOWNLIST DURING ENTRY.
|
||||
# SERVICER
|
||||
# DELV VALUES CHECKED TO DETECT RUNAWAY PIP -
|
||||
# IF BAD PIP 1) ALARM SENT.
|
||||
# 2) COMPENSATION, DVTOTAL ACCUMULATION, AND DVMON BYPASSED. CONTROL
|
||||
# TRANSFERRED TO AVERAGE G.
|
||||
# PIPS COMPENSATED VIA 1/PIPA SUBROUTINE.
|
||||
# DVTOTAL INCREMENTED BY ABSOLUTE VALUE OF DELV.
|
||||
# THRUST MONITOR (DVMON) PERFORMED UNLESS IDLE FLAG IS ON.
|
||||
# CONTROL TRANSFERRED TO AVERAGE Q.
|
||||
|
||||
|
||||
# DVMON
|
||||
|
||||
# THRESHOLD VALUD (PLACED IN DVTHRUSH BY USER) CHECKED AGAINST ABSOLUTE VALUE OF DELV TO CHECK
|
||||
# THRUST LEVEL.
|
||||
# IF THRUST 1) ULLAGE OFF ROUTINE PERFORMED.
|
||||
# 2) STEERING FLAG TURNED ON AT FIRST DETECTION OF THRUST.
|
||||
# 3) CONTROL TRANSFERRED TO AVERAGE G.
|
||||
# IF NO THRUST 1) ON FIRST PASS THROUGH MONITOR, CONTROL TRANSFERRED TO AVERAGE G.
|
||||
# 2) ON SUBSEQUENT PASSES, CONTROL TRANSFERRED TO ENGINE FAIL ROUTINE IF THRUST
|
||||
# HAS FAILED FOR 3 CONSECUTIVE PASSES.
|
||||
|
||||
|
||||
# ENGINE FAIL
|
||||
|
||||
# ENGFAIL1 TASK CALLED IN 2.5 SECONDS. THIS WILL RETURN CONTROL TO TIG-5 SO THAT THE IGNITION
|
||||
# SEQUENCE MAY BE REPEATED.
|
||||
# ENGINOF3 PERFORMED.
|
||||
# DAP SET UP FOR RCS.
|
||||
|
||||
|
||||
# AVERAGE G
|
||||
# Page 821
|
||||
# RN1, VN1, GDT1/2 CALCULATED VIA CALCRVG ROUTINE BY UPDATING RN, VN WITH DELV AND AN AVERAGED VALUE
|
||||
# OF GDT/2.
|
||||
# RN1, VN1, GDT1/2, PIPTIME1 COPIED INTO RN, VN, GDT/2, PIPTIME FOR RESTART PROTECTION.
|
||||
# CONTROL TRANSFERRED TO ADDRESS SPECIFIED BY USER (OR BY READACCS FOR LAST PASS) IN AVGEXIT.
|
||||
# LAST PASS (AVGEND) 1) FREE FALL GYRO COMPENSATION SET UP.
|
||||
# 2) DRIFT FLAG TURNED ON.
|
||||
# 3) STATE VECTOR TRANSFERRED VIA AVETOMID ROUTINE.
|
||||
# 4) ONMONITOR FLAG RESET.
|
||||
# 5) V37 FLAG RESET.
|
||||
# 6) TEST CONNECTOR OUTBIT RESET.
|
||||
# 7) CONTROL TRANSFERRED TO CANV37 TO CONTINUE MM CHANGE ROUTINE (R00).
|
||||
|
||||
|
||||
# CALLING SEQUENCE
|
||||
|
||||
# PREREAD ENTERED DIRECTLY FROM TIG-30 VIA POSTJUMP.
|
||||
# READACCS CALLED AS WAITLIST TASK.
|
||||
|
||||
|
||||
# SUBROUTINES CALLED
|
||||
|
||||
# UTILITY ROUTINES - PHASCHNG FLAGUP FLAGDOWN NOVAC FINDVAC WAITLIST ALARM NEWPHASE 2PHSCHNG
|
||||
|
||||
# OTHER - PIPASR 1/PIPA CALCGRAV CALCRVG AVETOMID
|
||||
|
||||
|
||||
# NORMAL EXIT MODES
|
||||
|
||||
# ENDOFJOB TASKOVER CANV37
|
||||
|
||||
# AVGEXIT - THIS IS A DOUBLE PRECISION ERASABLE LOCATION BY WHICH CONTROL IS TRANSFERRED AT THE END
|
||||
# OF EACH CYCLE OF AVERAGE G.
|
||||
# THE 2CADR OF A ROUTINE TO BE PERFORMED AT THAT TIME (E.G., STEERING EQUATIONS TO BE PERFORMED
|
||||
# AT 2 SECOND INTERVALS) MAY BE SET BY THE USER INTO AVGEXIT.
|
||||
# ALL SUCH ROUTINES SHOULD RETURN TO SERVEXIT, WHICH IS THE NORMAL EXIT FROM AVERAGE G.
|
||||
|
||||
# SERVEXIT - DOES A PHASE CHANGE FOR RESTART PROTECTION AND GOES TO ENDOFJOB.
|
||||
# THE 2CADR OF SERVEXIT IS SET INTO AVGEXIT BY THE USER IF NO OTHER ROUTINE (SEE ABOVE).
|
||||
#
|
||||
# AVGEND - LAST PASS OF AVERAGE G EXITS HERE, BYPASSING SPECIAL ROUTINE (SEE ABOVE UNDER READACCS).
|
||||
# FINAL EXIT IS TO CANV37. F AVERAGE G).
|
||||
|
||||
|
||||
# OUTPUT
|
||||
|
||||
# DVTOTAL(2) PIPTIME(2) XPIPBUF(2) YPIPBUF(2) ZPIPBUF(2)
|
||||
# RN(6) REFERENCE COORD. SCALED AT 2(+29) M/CS
|
||||
# VN(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
|
||||
# GDT/2(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
|
||||
# DELV(6) STABLE MEMB. COORD.SCALED AT 2(+14)*5.85*10(-4)M/CS (KPIP1 USED TO GET DV/2 AT 2(+7))
|
||||
# Page 822
|
||||
# DELVREF(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
|
||||
|
||||
# INITIALIZATION
|
||||
|
||||
# ONMONITOR FLAG SET BY ENTRY TO SHOW PIPBUF VALUES REQUIRED.
|
||||
# IDLE FLAG ON IF DVMON TO BE BYPASSED.
|
||||
# DVTHRUSH SET TO APPROPRIATE VALUE FOR DVMON.
|
||||
# AVGEXIT SET TO 2CADR OF ROUTINE, IF ANY, TO BE PERFORMED AFTER EACH CYCLE OF AVERAGE G. IF NO ROUTINE
|
||||
# TO BE DONE, AVGEXIT SET TO SERVEXIT.
|
||||
# VALUES NEEDED
|
||||
# REFSMMAT
|
||||
# UNITW - FULL UNIT VECTOR, IN REFERENCE COORD., OF EARTH S ROTATIONAL VECTOR
|
||||
# RN1, VN1, PIPTIME1 - IN REFERENCE COORD., CONSISTENT WITH TIME OF EXECUTION OF PREREAD
|
||||
|
||||
|
||||
# DEBRIS
|
||||
|
||||
# CENTRALS A, L, Q
|
||||
# OTHER INTERNAL - DVCNTR(1) PIPAGE(1) PIPCTR(1) AVGEXIT(2)
|
||||
# EXTERNAL - ITEMP1(1) ITEMP2(1) RUPTREG1(1) TEMX(1) TEMY(1) TEMZ(1)
|
||||
# USEFUL DEBRIS
|
||||
# RN1(6) VN1(6) GDT1/2 PIPTIME1(2)
|
||||
# THESE LOCATIONS USED AS BUFFER STORAGE FOR NEWLY CALCULATED VALUES OF RN, VN, GDT/2,
|
||||
# AND PIPTIME DURING PERFORMANCE OF SERVICER ROUTINES.
|
||||
# UNITR - HALF UNIT VECTOR OF RN, REFERENCE COORD.
|
||||
# RMAG SCALED AT 2(+58) IN 36D.
|
||||
# RMAGSQ SCALED AT 2(+58) IN 34D.
|
||||
# (RE/RMAG)SQ IN 32D.
|
||||
|
||||
|
||||
BANK 27
|
||||
SETLOC SERVICES
|
||||
BANK
|
||||
|
||||
EBANK= DVCNTR
|
||||
# ********************* PREREAD ***************************************
|
||||
#
|
||||
|
||||
COUNT 37/SERV
|
||||
|
||||
PREREAD CAF PRIO21 # CALLER MUST PROTECT PREREAD
|
||||
TC NOVAC
|
||||
EBANK= NBDX
|
||||
2CADR LASTBIAS # DO LAST GYRO COMPENSATION IN FREE FALL
|
||||
|
||||
# CALL-TO AND LASTBIAS ITSELF ARE NOT
|
||||
# PROTECTED. REREADAC SETS 1/PIPADT
|
||||
# TO 2.0 SECS IN CASE LASTBIAS LOST.
|
||||
# (REDUNDANT IF LASTBIAS IS AOK)
|
||||
# Page 823
|
||||
REDO5.31 TC PREREAD1
|
||||
|
||||
CAF PRIO32
|
||||
TC FINDVAC # SET UP NORMLIZE JOB REQUIRED PRIOR TO
|
||||
EBANK= DVCNTR # FIRST AVERAGE G PASS
|
||||
2CADR NORMLIZE
|
||||
|
||||
CAF 2SECS
|
||||
TC WAITLIST
|
||||
EBANK= AOG
|
||||
2CADR READACCS
|
||||
|
||||
CS TWO
|
||||
TC NEWPHASE
|
||||
OCT 5
|
||||
|
||||
TCF TASKOVER
|
||||
|
||||
PREREAD1 EXTEND
|
||||
QXCH RUPTREG1
|
||||
|
||||
TC PIPASR # CLEAR + READ PIPS LAST TIME IN FREE FALL
|
||||
|
||||
CAF ONE # SET UP PIPAGE FOR REREADAC IN CASE A
|
||||
TS PIPAGE # RESTART OCCURS BEFORE READACCS
|
||||
|
||||
CS FLAGWRD1 # SET AVEG FLAG
|
||||
MASK BIT1
|
||||
ADS FLAGWRD1
|
||||
|
||||
CA POSMAX
|
||||
MASK FLAGWRD2
|
||||
TS FLAGWRD2 # KNOCK DOWN DRIFT FLAG
|
||||
|
||||
CS FLAGWRD7 # SET V37 FLAG
|
||||
MASK BIT6
|
||||
ADS FLAGWRD7
|
||||
|
||||
CAF ZERO
|
||||
TS DVTOTAL # CLEAR DVTOTAL
|
||||
TS DVTOTAL +1
|
||||
|
||||
TC RUPTREG1
|
||||
|
||||
# Page 824
|
||||
# ********************* READACCS ***************************************
|
||||
EBANK= AOG
|
||||
READACCS TC PIPASR
|
||||
|
||||
PIPSDONE CAF FIVE
|
||||
TS L
|
||||
COM
|
||||
DXCH -PHASE5
|
||||
|
||||
REDO5.5 CAF ONE # SHOW PIPS HAVE BEEN READ
|
||||
TS PIPAGE
|
||||
|
||||
CA TWO # SET PIPCTR FOR ONMINTOR
|
||||
TS PIPCTR # AFTER ABOVE PHASCHNG
|
||||
|
||||
CS CM/FLAGS
|
||||
MASK BIT2 # CM/DSTBY
|
||||
CCS A
|
||||
TC CHEKAVEG
|
||||
|
||||
CS PIPTIME1 +1
|
||||
TS TBASE6 # FOR RESTARTS
|
||||
EXTEND # CONTINUE FOR ENTRY DAP
|
||||
DCA AOG
|
||||
DXCH AOG/PIP
|
||||
CA AMG
|
||||
XCH AMG/PIP
|
||||
EXTEND
|
||||
DCA ROLL/180
|
||||
DXCH ROLL/PIP
|
||||
CA BETA/180
|
||||
XCH BETA/PIP
|
||||
CA CM/FLAGS
|
||||
MASK BIT12 # CM/DAPARM 93D BIT12
|
||||
EXTEND # DURING ENTRY, WHEN RCS DAP IS INACTIVE,
|
||||
BZF NOSAVPIP # SAVE PIPAS EACH 0.5 SEC FOR TM.
|
||||
|
||||
CA 0.5SEC
|
||||
TC WAITLIST
|
||||
EBANK= XPIPBUF
|
||||
2CADR QUIKREAD
|
||||
|
||||
# NO NEED TO RESTART PROTECT THIS.
|
||||
CA DELVX # SAVE PIPAS AS READ (BUT NOT COMPENSATED)
|
||||
XCH XPIPBUF
|
||||
TS XOLDBUF
|
||||
|
||||
CA DELVY
|
||||
XCH YPIPBUF
|
||||
TS YOLDBUF
|
||||
# Page 825
|
||||
CA DELVZ
|
||||
XCH ZPIPBUF
|
||||
TS ZOLDBUF
|
||||
|
||||
NOSAVPIP CA FIVE
|
||||
TS CM/GYMDT
|
||||
|
||||
CA JTAGTIME # ACTIVATE CM/RCS AFTER PIPUP TO GO
|
||||
# IN JTAGTIME +5 CS.
|
||||
TC WAITLIST
|
||||
EBANK= AOG
|
||||
2CADR SETJTAG
|
||||
|
||||
CS THREE # 1.3SPOT FOR SETJTAG
|
||||
TC NEWPHASE
|
||||
OCT 1
|
||||
|
||||
CAF OCT37
|
||||
TS L
|
||||
COM
|
||||
DXCH -PHASE5
|
||||
|
||||
CHEKAVEG CS FLAGWRD1
|
||||
MASK BIT1
|
||||
CCS A # IF AVEG FLAG DOWN SET FINAL EXIT AVEG
|
||||
TC AVEGOUT
|
||||
|
||||
CAF 2SECS
|
||||
TC WAITLIST
|
||||
EBANK= AOG
|
||||
2CADR READACCS
|
||||
|
||||
MAKESERV CAF PRIO20 # ESTABLISH SERVICER ROUTINE
|
||||
TC FINDVAC
|
||||
EBANK= DVCNTR
|
||||
2CADR SERVICER
|
||||
|
||||
CS FOUR # RESTART SERVICER AND READACCS
|
||||
TC NEWPHASE
|
||||
OCT 5
|
||||
|
||||
CAF BIT9
|
||||
EXTEND
|
||||
WOR DSALMOUT # TURN TEST CONNECTOR OUTBIT ON
|
||||
|
||||
TCF TASKOVER # END PREVIOUS READACCS WAITLIST TASK
|
||||
|
||||
# Page 826
|
||||
AVEGOUT EXTEND
|
||||
DCA AVOUTCAD
|
||||
DXCH AVGEXIT
|
||||
TCF MAKESERV
|
||||
|
||||
EBANK= DVCNTR
|
||||
AVOUTCAD 2CADR AVGEND
|
||||
|
||||
# Page 827
|
||||
# ROUTINE NAME: ONMNITOR
|
||||
# MOD 04 BY BAIRNSFATHER 30 APR 1968 REDO ONMNITOR TO SAVE PIPS EACH 0.5 SEC FOR TM,ENTRY.
|
||||
# MOD 03 BY FISHER DECEMBER 1967
|
||||
# MOD 02 BY RYE SEPT 1967
|
||||
# MOD 01 BY KOSMALA 23 MAR 1967
|
||||
# MOD 00 BY KOSMALA 27 FEB 1967
|
||||
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
|
||||
# THE PURPOSE OF ONMONITOR IS TO PROVIDE 1/2 SEC.READING OF PIPAS FOR DOWNLIST DURING ENTRY.
|
||||
# X,Y,ZPIPBUF CONTAIN PRESET VALUES X,Y,ZOLDBUF CONTAIN VALUES FROM PREVIOUS READING.
|
||||
|
||||
# CALLING SEQUENCE
|
||||
|
||||
# CALL AS WAITLIST TASK. TERMINATES ITSELF IN TASKOVER
|
||||
|
||||
# INITIALISATION
|
||||
|
||||
# PIPCTR = 2 (FOR DT = 0.5 SEC)
|
||||
# X,Y,ZPIPBUF SET TO PREVIOUS PIPAX,Y,Z
|
||||
|
||||
# OUTPUT
|
||||
|
||||
# X,Y,ZPIPBUF, X,Y,ZOLDBUF
|
||||
# DEBRIS
|
||||
|
||||
# X,Y,ZPIPBUF CONTAIN LAST PIPAX,Y,Z VALUES
|
||||
# X,Y,ZOLDBUF CONTAIN LAST-BUT-ONE PIPAX,Y,Z VALUES
|
||||
# RUPTREG1
|
||||
# PIPCTR
|
||||
|
||||
ONMNITOR TS PIPCTR
|
||||
|
||||
TC FIXDELAY # WAIT
|
||||
0.5SEC DEC 50
|
||||
|
||||
QUIKREAD CAF TWO
|
||||
TS RUPTREG1
|
||||
INDEX A
|
||||
CA PIPAX # SAVE ACTUAL PIPAS FOR TM.
|
||||
INDEX RUPTREG1
|
||||
XCH XPIPBUF # UPDATE X,Y,ZPIPBUF
|
||||
INDEX RUPTREG1
|
||||
TS XOLDBUF # AND X,Y,ZOLDBUF
|
||||
CHKCTR CCS RUPTREG1
|
||||
TCF QUIKREAD +1 # LOOP AGAIN
|
||||
CCS PIPCTR
|
||||
TCF ONMNITOR
|
||||
TC TASKOVER
|
||||
|
||||
# Page 828
|
||||
# ********************* SERVICER ***************************************
|
||||
#
|
||||
|
||||
EBANK= DVCNTR
|
||||
|
||||
SERVICER CAF TWO
|
||||
INHINT
|
||||
PIPCHECK TS RUPTREG1
|
||||
|
||||
DOUBLE
|
||||
INDEX A
|
||||
CCS DELVX
|
||||
TC +2
|
||||
TC PIPLOOP
|
||||
|
||||
AD -MAXDELV # DO PIPA-SATURATION TEST BEFORE
|
||||
EXTEND
|
||||
BZMF PIPLOOP # COMPENSATION.
|
||||
|
||||
TC ALARM
|
||||
OCT 00205 # SATURATED-PIPA ALARM ***CHANGE LATER
|
||||
TC AVERAGEG
|
||||
|
||||
PIPLOOP CCS RUPTREG1
|
||||
TCF PIPCHECK
|
||||
|
||||
TC PHASCHNG # RESTART REREADAC + SERVICER
|
||||
OCT 16035
|
||||
OCT 20000
|
||||
EBANK= DVCNTR
|
||||
2CADR DVTOTUP
|
||||
|
||||
TC BANKCALL # PIPA COMPENSATION CALL
|
||||
CADR 1/PIPA
|
||||
|
||||
DVTOTUP TC INTPRET
|
||||
VLOAD ABVAL # GET ABS VALUE OF DELV
|
||||
DELV
|
||||
DMP EXIT
|
||||
KPIP1 # SCALE AT 2(+7)
|
||||
|
||||
EXTEND
|
||||
DCA MPAC
|
||||
DAS DVTOTAL # ACCUMULATE DVTOTAL
|
||||
AVERAGEG TC PHASCHNG
|
||||
OCT 10035
|
||||
|
||||
TC INTPRET
|
||||
CALL
|
||||
# Page 829
|
||||
CALCRVG
|
||||
EXIT
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 10035
|
||||
|
||||
CAF OCT31 # COPY RN1,VN1,GOT102,GOBL1/2,PIPTIME1
|
||||
TC GENTRAN # INTO RN ,VN ,GDT/12 ,GOBL/2 ,PIPTIME
|
||||
ADRES RN1
|
||||
ADRES RN
|
||||
RELINT # GENTRAN DOES AN INHINT
|
||||
TC PHASCHNG
|
||||
OCT 10035
|
||||
|
||||
EXTEND
|
||||
DCA AVGEXIT
|
||||
DXCH Z # AVERAGEG EXIT
|
||||
|
||||
AVGEND CA PIPTIME +1 # FINAL AVERAGE G EXIT
|
||||
TS OLDBT1 # SET UP FREE FALL GYRO COMPENSATION
|
||||
|
||||
TC UPFLAG # SET DRIFTFLG
|
||||
ADRES DRIFTFLG # BIT 15 FLAG 2
|
||||
TC 2PHSCHNG
|
||||
OCT 5 # GROUP 5 OFF
|
||||
OCT 05022 # GROUP 2 ON FOR AVETOMID
|
||||
OCT 20000
|
||||
|
||||
TC INTPRET
|
||||
CALL
|
||||
AVETOMID # CONVERT STATE VECTOR TO REFERENCE SCALE.
|
||||
EXIT
|
||||
|
||||
CAF ZERO # ZERO MARK COUNTERS.
|
||||
TS VHFCNT
|
||||
TS TRKMKCNT
|
||||
|
||||
TC BANKCALL
|
||||
CADR PIPFREE
|
||||
|
||||
CS BIT9
|
||||
TS MRKBUF2 # INVALIDATE MARK BUFFER
|
||||
EXTEND
|
||||
WAND DSALMOUT
|
||||
|
||||
TC DOWNFLAG
|
||||
ADRES CM/DSTBY
|
||||
|
||||
TC DOWNFLAG
|
||||
ADRES V37FLAG
|
||||
|
||||
# Page 830
|
||||
CAF BIT7 # RESTORE GROUP 1 + 2 IF P20 IS RUNNING.
|
||||
MASK FLAGWRD0
|
||||
EXTEND
|
||||
BZF +4
|
||||
|
||||
TC 2PHSCHNG
|
||||
OCT 111 # 1.11SPOT
|
||||
OCT 132 # 2.13SPOT
|
||||
|
||||
TC POSTJUMP
|
||||
CADR CANV37
|
||||
|
||||
SERVEXIT TC PHASCHNG
|
||||
OCT 00035 # A, 5.3 = REREADAC (ONLY)
|
||||
|
||||
TCF ENDOFJOB
|
||||
|
||||
DVTHRUSH EQUALS ELEVEN # 15 PERCENT OF 2SEC PIPA ACCUMULATION,
|
||||
# FOR 503-FULL CSM/LEM....DELV SC.AT
|
||||
# 5.85 CM/SEC.
|
||||
|
||||
-MAXDELV DEC -6398 # 3200 PPS FOR 2 SEC CCS TAKES 1
|
||||
|
||||
JTAGTIME DEC 120 # = 1 SEC + T CDU, T CDU = .1 SEC
|
||||
|
||||
2.5SEC DEC 250
|
||||
MDOTFAIL DEC 144.0 B-16 # 5 SEC MASS LOSS AT 28.8 KG/SEC
|
||||
# SHOULD BE 2-4 SECS FOR NO START
|
||||
# 6-8 SECS FOR FAILURE
|
||||
|
||||
# Page 831
|
||||
# NORMLIZE PERFORMS THE INITIALIZATION REQUIRED PRIOR TO THE FIRST ENTRY TO AVERAGEG, AND SCALES RN SO THAT IT
|
||||
# HAS 1 LEADING BINARY ZERO. IN MOST MISSIONS, RN WILL BE SCALED AT 2(+29), BUT IN THE 206 MISSION, RN WILL BE
|
||||
# SCALED AT 2(+24)M.
|
||||
|
||||
NORMLIZE CAF THIRTEEN # SET UP TO COPY 14 REGS- RN1,VN1,PIPTIME1
|
||||
TC GENTRAN # INTO RN,VN, PIPTIME
|
||||
ADRES RN1 # FROM HERE
|
||||
ADRES RN # TO HERE
|
||||
|
||||
RELINT
|
||||
TC INTPRET
|
||||
VLOAD CALL # LOAD RN FOR CALCGRAV
|
||||
RN
|
||||
CALCGRAV # INITIALISE UNITR RMAG GDT1
|
||||
|
||||
STOVL GDT/2
|
||||
GOBL1/2
|
||||
STORE GOBL/2
|
||||
EXIT
|
||||
TCF ENDOFJOB
|
||||
|
||||
# Page 832
|
||||
# ***** PIPA READER *****
|
||||
|
||||
|
||||
# MOD NO. 00 BY D. LICKLY DEC.9 1966
|
||||
|
||||
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
|
||||
# SUBROUTINE TO READ PIPA COUNTERS, TRYING TO BE VERY CAREFUL SO THAT IT WILL BE RESTARTABLE.
|
||||
# PIPA READINGS ARE STORED IN THE VECTOR DELV. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS THE PIPA READING,
|
||||
# RESTARTS BEGIN AT REREADAC.
|
||||
|
||||
|
||||
# AT THE END OF THE PIPA READER THE CDUS ARE READ AND STORED AS A
|
||||
# VECTOR IN CDUTEMP. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS
|
||||
# THE CDU READING IN 2S COMP IN THE ORDER CDUX,Y,Z. THE THRUST
|
||||
# VECTOR ESTIMATOR IN FINDCDUD REQUIRES THE CDUS BE READ AT PIPTIME.
|
||||
|
||||
# CALLING SEQUENCE AND EXIT
|
||||
|
||||
# CALL VIA TC, ISWCALL, ETC.
|
||||
|
||||
# EXIT IS VIA Q.
|
||||
|
||||
|
||||
# INPUT
|
||||
|
||||
# INPUT IS THROUGH THE COUNTERS PIPAX, PIPAY, PIPAZ, AND TIME2.
|
||||
|
||||
|
||||
# OUTPUT
|
||||
|
||||
# HIGH ORDER COMPONENTS OF THE VECTOR DELV CONTAIN THE PIPA READINGS.
|
||||
# PIPTIME CONTAINS TIME OF PIPA READING.
|
||||
|
||||
|
||||
# DEBRIS (ERASABLE LOCATIONS DESTROYED BY THE PROGRAM)
|
||||
|
||||
# LOW ORDER DELV'S ARE ZEROED FOR TM INDICATION.
|
||||
# TEMX TEMY TEMZ PIPAGE
|
||||
|
||||
PIPASR EXTEND
|
||||
DCA TIME2
|
||||
DXCH PIPTIME1 # CURRENT TIME POSITIVE VALUE
|
||||
CS ZERO # INITIALIZE THESE AT NEG ZERO.
|
||||
TS TEMX
|
||||
TS TEMY
|
||||
TS TEMZ
|
||||
# Page 833
|
||||
CA ZERO
|
||||
TS DELVZ # OTHER DELVS OK INCLUDING LOW ORDER
|
||||
TS DELVY
|
||||
|
||||
TS DELVX +1 # LOW ORDER DELV'S ARE ZEROED FOR TM: THUS
|
||||
TS DELVY +1 # IF DNLNK'D LOW ORDER DELVS ARE NZ, THEY
|
||||
TS DELVZ +1 # CONTAIN PROPER COMPENSATION. IF=0, THEN
|
||||
# THE TM VALUES ARE BEFORE COMPENSATION.
|
||||
|
||||
TS PIPAGE # SHOW PIPA READING IN PROGRESS
|
||||
|
||||
REPIP1 EXTEND
|
||||
DCS PIPAX # X AND Y PIPS READ
|
||||
DXCH TEMX
|
||||
DXCH PIPAX # PIPAS SET TO NEG ZERO AS READ.
|
||||
TS DELVX
|
||||
LXCH DELVY
|
||||
|
||||
REPIP3 CS PIPAZ # REPEAT PROCESS FOR Z PIP
|
||||
XCH TEMZ
|
||||
XCH PIPAZ
|
||||
DODELVZ TS DELVZ
|
||||
|
||||
TC Q
|
||||
|
||||
EBANK= AOG
|
||||
|
||||
REREADAC CCS PHASE5 # LAST PASS CHECK
|
||||
TCF +2
|
||||
TCF TASKOVER
|
||||
|
||||
CAF PRIO31 # RESTART MAY HAVE WIPED OUT LASTBIAS, AN
|
||||
TS 1/PIPADT # UNPROTECTED NOVAC FROM PREREAD,
|
||||
# WHICH SET(S) UP 1/PIPADT (THUSLY)
|
||||
# FOR NON-COASTING COMPENSATION....BE
|
||||
# SURE 1/PIPADT IS AOK. (PRIO31 IS
|
||||
# 2.0SEC SC.AT B+8CS)
|
||||
|
||||
CCS PIPAGE
|
||||
TCF READACCS # PIP READING NOT STARTED. GO TO BEGINNING
|
||||
|
||||
CAF DONEADR # SET UP RETURN FROM PIPASR
|
||||
TS Q
|
||||
|
||||
CCS DELVZ
|
||||
TC Q # Z DONE, GO DO CDUS
|
||||
TCF +3 # Z NOT DONE, CHECK Y.
|
||||
TC Q
|
||||
TC Q
|
||||
# Page 834
|
||||
ZL
|
||||
CCS DELVY
|
||||
TCF +3
|
||||
TCF CHKTEMX # Y NOT DONE, CHECK X.
|
||||
TCF +1
|
||||
LXCH PIPAZ # Y DONE, ZERO Z PIP.
|
||||
|
||||
CCS TEMZ
|
||||
CS TEMZ # TEMZ NOT = -0, CONTAINS -PIPAZ VALUE.
|
||||
TCF DODELVZ
|
||||
TCF -2
|
||||
LXCH DELVZ # TEMZ = -0, L HAS ZPIP VALUE.
|
||||
TC Q
|
||||
|
||||
CHKTEMX CCS TEMX # HAS THIS CHANGED
|
||||
CS TEMX # YES
|
||||
TCF +3 # YES
|
||||
TCF -2 # YES
|
||||
TCF REPIP1 # NO
|
||||
TS DELVX
|
||||
|
||||
CS TEMY
|
||||
TS DELVY
|
||||
|
||||
CS ZERO # ZERO X AND Y PIPS
|
||||
DXCH PIPAX # L STILL ZERO FROM ABOVE
|
||||
|
||||
TCF REPIP3
|
||||
|
||||
DONEADR GENADR PIPSDONE
|
||||
|
||||
# Page 835
|
||||
# *********************************************************************************************
|
||||
|
||||
# ROUTINE CALCRVG INTEGRATES THE EQUATIONS OF MOTION BY AVERAGING THE THRUST AND GRAVITATIONAL
|
||||
# ACCELERATIONS OVER A TIME INTERVAL OF 2 SECONDS.
|
||||
#
|
||||
# FOR THE EARTH-CENTERED GRAVITATIONAL FIELD, THE PERTURBATION DUE TO OBLATENESS IS COMPUTED TO THE FIRST
|
||||
# HARMONIC COEFFICIENT J.
|
||||
|
||||
# ROUTINE CALCRVG REQUIRES...
|
||||
# 1) THRUST ACCELERATION INCREMENTS IN DELV SCALED SAME AS PIPAX,Y,Z IN STABLE MEMBER COORDS.
|
||||
# 2) VN SCALED 2(+7)M/CS IN REFERENCE COORDS.
|
||||
# 3) RN SCALED AT 2(+29) METERS IN REFERENCE COORDS.
|
||||
# 4) UNITW THE EARTH S UNIT ROTATIONAL VECTOR (SCALED AS A FULL UNIT VECTOR) IN REFERENCE COORDS.
|
||||
|
||||
# IT LEAVES RN1 UPDATED (SCALED AT 2(+29)M, VN1 (SCALED AT 2(+7)M/CS), AND GDT1/2 (SCALED AT 2(+7)M/CS). ALSO HALF
|
||||
# UNIT VECTOR UNITR, RMAG IN 36D SCALED AT 2(+29)M, R MAG SQ. IN 34D SCALED AT 2(+58) M SQ.
|
||||
|
||||
CALCGRAV UNIT PUSH # ENTER WITH RN IN MPAC
|
||||
STORE UNITR
|
||||
LXC,1 SLOAD
|
||||
RTX2
|
||||
X1
|
||||
BMN VLOAD
|
||||
ITISMOON
|
||||
DOT PUSH
|
||||
UNITW
|
||||
DSQ BDSU
|
||||
DP1/20
|
||||
PDDL DDV
|
||||
RESQ
|
||||
34D # (RN)SQ
|
||||
STORE 32D # TEMP FOR (RE/RN)SQ
|
||||
DMP DMP
|
||||
20J
|
||||
VXSC PDDL
|
||||
UNITR
|
||||
DMP DMP
|
||||
2J
|
||||
32D
|
||||
VXSC VAD
|
||||
UNITW
|
||||
STADR
|
||||
STORE GOBL1/2
|
||||
VAD PUSH
|
||||
UNITR
|
||||
ITISMOON DLOAD NORM
|
||||
34D
|
||||
X2
|
||||
BDDV* SLR*
|
||||
# Page 836
|
||||
-MUDT(E),1
|
||||
0 -21D,2
|
||||
VXSC STADR
|
||||
STORE GDT1/2 # SCALED AT 2(+7) M/CS
|
||||
RVQ
|
||||
|
||||
CALCRVG VLOAD VXSC
|
||||
DELV
|
||||
KPIP1
|
||||
VXM VSL1
|
||||
REFSMMAT
|
||||
STORE DELVREF # DELV IN REF COORDS AT 2(+7)
|
||||
VSR1 PUSH
|
||||
VAD PUSH # (DV-OLDGDT)/2 TO PD SCALED AT 2(+7)M/CS
|
||||
GDT/2
|
||||
VAD VXSC
|
||||
VN
|
||||
2SEC(22)
|
||||
VAD STQ
|
||||
RN
|
||||
31D
|
||||
STCALL RN1 # TEMP STORAGE OF RN SCALED 2(+29)M
|
||||
CALCGRAV
|
||||
|
||||
VAD VAD
|
||||
VAD
|
||||
VN
|
||||
STCALL VN1 # TEMP STORAGE OF VN SCALED 2(+7)M/CS.
|
||||
31D
|
||||
|
||||
KPIP 2DEC .1024 # SCALES DELV TO 2(+4)
|
||||
|
||||
KPIP1 2DEC 0.074880 # 207 DELV SCALING. 1 PULSE = 5.85 CM/SEC.
|
||||
|
||||
-MUDT(E) 2DEC* -7.9720645 E+12 B-44*
|
||||
|
||||
-MUDT(M) 2DEC* -9.805556 E+10 B-44*
|
||||
|
||||
2SEC(22) 2DEC 200 B-22
|
||||
|
||||
DP1/20 2DEC 0.05
|
||||
|
||||
RESQ 2DEC* 40.6809913 E12 B-59*
|
||||
|
||||
20J 2DEC* 3.24692010 E-2 B1*
|
||||
|
||||
2J 2DEC* 3.24692010 E-3 B1*
|
279
Comanche055/SERVICE_ROUTINES.agc
Normal file
279
Comanche055/SERVICE_ROUTINES.agc
Normal file
@ -0,0 +1,279 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SERVICE_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. 1485-1492
|
||||
# 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 1485
|
||||
BLOCK 3
|
||||
SETLOC FFTAG6
|
||||
BANK
|
||||
COUNT 03/FLAG
|
||||
|
||||
UPENT2 TS L # WHICH FLAGWORD IS IT
|
||||
MASK OCT7
|
||||
XCH L # SAVE IN L FOR INDEXING
|
||||
|
||||
MASK OCT77770 # OBTAIN THE BIT INFORMATION
|
||||
INHINT # PREVENT INTERUPTS
|
||||
TS ITEMP1 # STORE THE BIT INFORMATION TEMPORARIALY
|
||||
|
||||
NDX L
|
||||
CS FLAGWRD0
|
||||
MASK ITEMP1
|
||||
NDX L
|
||||
ADS FLAGWRD0
|
||||
RELINT # RELEASE INTERUPT INHIBIT
|
||||
|
||||
INCR Q # OBTAIN THE CORRECT RETURN ADDRESS
|
||||
TC Q # RETURN
|
||||
|
||||
DOWNENT2 TS L # WHICH FLAGWORD IS IT
|
||||
MASK OCT7
|
||||
XCH L # SAVE IN L FOR INDEXING
|
||||
|
||||
MASK OCT77770 # OBTAIN THE BIT INFORMATION
|
||||
COM # START TO PROCESS THE INFORMATION
|
||||
|
||||
INHINT # PREVENT INTERUPTS
|
||||
NDX L
|
||||
MASK FLAGWRD0
|
||||
NDX L
|
||||
TS FLAGWRD0
|
||||
RELINT # RELEASE INTERUPT INHIBIT
|
||||
|
||||
INCR Q # OBTAIN THE CORRECT RETURN ADDRESS
|
||||
TC Q # RETURN
|
||||
|
||||
OCT7 EQUALS SEVEN
|
||||
BANK 10
|
||||
|
||||
# Page 1486
|
||||
#
|
||||
# UPFLAG AND DOWNFLAG ARE ENTIRELY GENERAL FLAG SETTING AND CLEARING SUBROUTINES. USING THEM, WHETHER OR
|
||||
# NOT IN INTERRUPT, ONE MAY SET OR CLEAR ANY SINGLE, NAMED BIT IN ANY ERASABLE REGISTER, SUBJECT OF COURSE TO
|
||||
# EBANK SETTING. A "NAMED" BIT, AS THE WORD IS USED HERE, IS ANY BIT WITH A NAME FORMALLY ASSIGNED BY THE YUL
|
||||
# ASSEMBLER.
|
||||
#
|
||||
# AT PRESENT THE ONLY NAMED BITS ARE THOSE IN THE FLAGWORDS. ASSEMBLER CHANGES WILL MAKE IT POSSIBLE TO
|
||||
# NAME ANY BIT IN ERASABLE MEMORY.
|
||||
#
|
||||
# CALLING SEQUENCES ARE AS FOLLOWS:-
|
||||
#
|
||||
# TC UPFLAG TC DOWNFLAG
|
||||
# ADRES NAME OF FLAG ADRES NAME OF FLAG
|
||||
#
|
||||
# RETURN IS TO THE LOCATION FOLLOWING THE "ADRES" ABOUT .58 MS AFTER THE "TC".
|
||||
#
|
||||
# UPON RETURN A CONTAINS THE CURRENT FLAGWRD SETTING.
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG1
|
||||
BANK
|
||||
COUNT* $$/FLAG
|
||||
|
||||
UPFLAG CA Q
|
||||
TC DEBIT
|
||||
COM # +(15 - BIT)
|
||||
EXTEND
|
||||
ROR LCHAN # SET BIT
|
||||
COMFLAG INDEX ITEMP1
|
||||
TS FLAGWRD0
|
||||
LXCH ITEMP3
|
||||
RELINT
|
||||
TC L
|
||||
|
||||
|
||||
DOWNFLAG CA Q
|
||||
TC DEBIT
|
||||
MASK L # RESET BIT
|
||||
TCF COMFLAG
|
||||
|
||||
|
||||
DEBIT AD ONE # GET DE BITS
|
||||
INHINT
|
||||
TS ITEMP3
|
||||
CA LOW4 # DEC15
|
||||
TS ITEMP1
|
||||
INDEX ITEMP3
|
||||
CA 0 -1 # ADRES
|
||||
TS L
|
||||
CA ZERO
|
||||
# Page 1487
|
||||
EXTEND
|
||||
DV ITEMP1 # A = FLAGWRD, L = (15 - BIT)
|
||||
DXCH ITEMP1
|
||||
INDEX ITEMP1
|
||||
CA FLAGWRD0
|
||||
TS L # CURRENT STATE
|
||||
INDEX ITEMP2
|
||||
CS BIT15 # -(15 - BIT)
|
||||
TC Q
|
||||
|
||||
# Page 1488
|
||||
# DELAYJOB- A GENERAL ROUTINE TO DELAY A JOB A SPECIFIC AMOUNT OF TIME BEFORE PICKING UP AGAIN.
|
||||
#
|
||||
# ENTRANCE REQUIREMENTS...
|
||||
# CAF DT # DELAY JOB FOR DT CENTISECS
|
||||
# TC BANKCALL
|
||||
# CADR DELAYJOB
|
||||
|
||||
BANK 06
|
||||
SETLOC DLAYJOB
|
||||
BANK
|
||||
|
||||
# THIS MUST REMAIN IN BANK 0 ****************************************
|
||||
|
||||
COUNT 00/DELAY
|
||||
|
||||
DELAYJOB INHINT
|
||||
TS Q # STORE DELAY DT IN Q FOR DLY -1 IN
|
||||
|
||||
CAF DELAYNUM # WAITLIST
|
||||
DELLOOP TS RUPTREG1
|
||||
INDEX A
|
||||
CA DELAYLOC # IS THIS DELAYLOC AVAILABLE
|
||||
EXTEND
|
||||
BZF OK2DELAY # YES
|
||||
|
||||
CCS RUPTREG1 # NO, TRY NEXT DELAYLOC
|
||||
TCF DELLOOP
|
||||
|
||||
TC BAILOUT # NO AVAILABLE LOCS AVAILABLE.
|
||||
OCT 1104
|
||||
|
||||
OK2DELAY CA TCSLEEP # SET WAITLIST IMMEDIATE RETURN
|
||||
TS WAITEXIT
|
||||
|
||||
CA FBANK
|
||||
AD RUPTREG1 # STORE BBANK FOR TASK CALL
|
||||
TS L
|
||||
|
||||
CAF WAKECAD # STORE CADR FOR TASK CALL
|
||||
TCF DLY2 -1 # DLY IS IN WAITLIST ROUTINE
|
||||
|
||||
TCGETCAD TC MAKECADR # GET CALLERS FCADR
|
||||
|
||||
INDEX RUPTREG1
|
||||
TS DELAYLOC # SAVE DELAY CADRS
|
||||
|
||||
TC JOBSLEEP
|
||||
|
||||
WAKER CAF ZERO
|
||||
INDEX BBANK
|
||||
XCH DELAYLOC # MAKE DELAYLOC AVAILABLE
|
||||
# Page 1489
|
||||
TC JOBWAKE
|
||||
|
||||
TC TASKOVER
|
||||
|
||||
TCSLEEP GENADR TCGETCAD -2
|
||||
WAKECAD GENADR WAKER
|
||||
|
||||
# Page 1490
|
||||
# GENTRAN, A BLOCK TRANSFER ROUTINE.
|
||||
#
|
||||
# WRITTEN BY D. EYLES
|
||||
# MOD 1 BY KERNAN UTILITYM REV 17 11/18/67
|
||||
#
|
||||
# MOD 2 BY SCHULENBERG (REMOVE RELINT) SKIPPER REV 4 2/28/68
|
||||
#
|
||||
# THIS ROUTINE IS USEFULL FOR TRANSFERING N CONSECUTIVE ERASABLE OR FIXED QUANTITIES TO SOME OTHER N
|
||||
# CONSECUTIVE ERASABLE LOCATIONS. IF BOTH BLOCKS OF DATA ARE IN SWITCHABLE EBANKS, THEY MUST BE IN THE SAME ONE.
|
||||
#
|
||||
# GENTRAN IS CALLABLE IN A JOB AS WELL AS A RUPT. THE CALLING SEQUENCE IS:
|
||||
#
|
||||
# I CA N-1 # # OF QUANTITIES MINUS ONE.
|
||||
# I +1 TC GENTRAN # IN FIXED-FIXED.
|
||||
# I +2 ADRES L # STARTING ADRES OF DATA TO BE MOVED.
|
||||
# I +3 ADRES M # STARTING ADRES OF DUPLICATION BLOCK.
|
||||
# I +4 # RETURNS HERE.
|
||||
#
|
||||
# GENTRAN TAKES 25 MCT'S (300 MICROSECONDS) PER ITEM + 5 MCT'S (60 MICS) FOR ENTERING AND EXITING.
|
||||
#
|
||||
# A, L AND ITEMP1 ARE NOT PRESERVED.
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG4
|
||||
BANK
|
||||
|
||||
EBANK= ITEMP1
|
||||
|
||||
COUNT* $$/TRAN
|
||||
|
||||
GENTRAN INHINT
|
||||
TS ITEMP1 # SAVE N-1.
|
||||
INDEX Q # C(Q) = ADRES L.
|
||||
AD 0 # ADRES (L + N - 1).
|
||||
INDEX A
|
||||
CA 0 # C(ABOVE).
|
||||
TS L # SAVE DATA.
|
||||
CA ITEMP1
|
||||
INDEX Q
|
||||
AD 1 # ADRES (M + N - 1).
|
||||
INDEX A
|
||||
LXCH 0 # STUFF IT.
|
||||
CCS ITEMP1 # LOOP UNTIL N-1 = 0.
|
||||
TCF GENTRAN +1
|
||||
TCF Q+2 # RETURN TO CALLER.
|
||||
|
||||
# Page 1491
|
||||
# B5OFF ZERO BIT 5 OF EXTVBACT, WHICH IS SET BY TESTXACT.
|
||||
#
|
||||
# MAY BE USED AS NEEDED BY ANY EXTENDED VERB WHICH HAS DONE TESTXACT
|
||||
|
||||
COUNT* $$/EXTVB
|
||||
|
||||
B5OFF CS BIT5
|
||||
MASK EXTVBACT
|
||||
TS EXTVBACT
|
||||
TC ENDOFJOB
|
||||
|
||||
# Page 1492
|
||||
# SUBROUTINES TO TURN OFF AND TURN ON TRACKER FAIL LIGHT.
|
||||
|
||||
|
||||
TRFAILOF INHINT
|
||||
CS OCT40200 # TURN OFF TRACKER LIGHT
|
||||
MASK DSPTAB +11D
|
||||
AD BIT15
|
||||
TS DSPTAB +11D
|
||||
CS OPTMODES # TO INSURE THAT OCDU FAIL WILL GO ON
|
||||
MASK BIT7 # AGAIN IF IT WAS ON IN ADDITION TO
|
||||
ADS OPTMODES # TRACKER FAIL.
|
||||
|
||||
REQ RELINT
|
||||
TC Q
|
||||
|
||||
TRFAILON INHINT
|
||||
CS DSPTAB +11D # TURN ON
|
||||
MASK OCT40200
|
||||
ADS DSPTAB +11D
|
||||
TCF REQ
|
67
Comanche055/SINGLE_PRECISION_SUBROUTINES.agc
Normal file
67
Comanche055/SINGLE_PRECISION_SUBROUTINES.agc
Normal file
@ -0,0 +1,67 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SINGLE_PRECISION_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: 1207
|
||||
# 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 1207
|
||||
BLOCK 02
|
||||
# SINGLE PRECISION SINE AND COSINE
|
||||
|
||||
COUNT 02/INTER
|
||||
SPCOS AD HALF # ARGUMENTS SCALED AT PI
|
||||
SPSIN TS TEMK
|
||||
TCF SPT
|
||||
CS TEMK
|
||||
SPT DOUBLE
|
||||
TS TEMK
|
||||
TCF POLLEY
|
||||
XCH TEMK
|
||||
INDEX TEMK
|
||||
AD LIMITS
|
||||
COM
|
||||
AD TEMK
|
||||
TS TEMK
|
||||
TCF POLLEY
|
||||
TCF ARG90
|
||||
POLLEY EXTEND
|
||||
MP TEMK
|
||||
TS SQ
|
||||
EXTEND
|
||||
MP C5/2
|
||||
AD C3/2
|
||||
EXTEND
|
||||
MP SQ
|
||||
AD C1/2
|
||||
EXTEND
|
||||
MP TEMK
|
||||
DDOUBL
|
||||
TS TEMK
|
||||
TC Q
|
||||
ARG90 INDEX A
|
||||
CS LIMITS
|
||||
TC Q # RESULT SCALED AT 1
|
||||
# SPROOT WAS DELETED IN REV 51 OF MASTER. ASS. CONT. HAS CARDS.
|
422
Comanche055/STABLE_ORBIT.agc
Normal file
422
Comanche055/STABLE_ORBIT.agc
Normal file
@ -0,0 +1,422 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: STABLE_ORBIT.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: Hartmuth Gutsche <hgutsche@xplornet.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 525-532
|
||||
# Mod history: 2009-05-10 HG Started adapting from the Colossus249/ file
|
||||
# of the same name, using Comanche055 page
|
||||
# images 0525.jpg - 0532.jpg.
|
||||
#
|
||||
# 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 525
|
||||
# STABLE ORBIT RENDEZVOUS PROGRAMS (P38 AND P78)
|
||||
#
|
||||
# MOD NO -1 LOG SECTION - STABLE ORBIT - P38-P39
|
||||
# MOD BY RUDNICKI.S DATE 25JAN68
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
#
|
||||
# P38 AND P78 CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL
|
||||
# CONDITIONS REQUIRED BY THE AGC TO (1) PUT THE ACTIVE VEHICLE
|
||||
# ON A TRANSFER TRAJECTORY THAT INTERCEPTS THE PASSIVE VEHICLE
|
||||
# ORBIT A GIVEN DISTANCE, DELTA R, EITHER AHEAD OF OR BEHIND THE
|
||||
# PASSIVE VEHICLE AND (2) ACTUALLY PLACE THE ACTIVE VEHICLE IN THE
|
||||
# PASSIVE VEHICLE ORBIT WITH A DELTA R SEPARATION BETWEEN THE TWO
|
||||
# VEHICLES
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
#
|
||||
# ASTRONAUT REQUEST THRU DSKY
|
||||
#
|
||||
# V37E38E IF THIS VEHICLE IS ACTIVE VEHICLE
|
||||
# V37E78E IF OTHER VEHICLE IS ACTIVE VEHICLE
|
||||
#
|
||||
# INPUT
|
||||
#
|
||||
# (1) SOI MANEUVER
|
||||
#
|
||||
# (A) TIG TIME OF SOI MANEUVER
|
||||
# (B) CENTANG ORBITAL CENTRAL ANGLE OF THE PASSIVE VEHICLE
|
||||
# DURING TRANSFER FROM TIG TO TIME OF INTERCEPT
|
||||
# (C) DELTAR THE DESIRED SEPARATION OF THE TWO VEHICLES
|
||||
# SPECIFIED AS A DISTANCE ALONG THE PASSIVE VEHICLE
|
||||
# ORBIT
|
||||
# (D) OPTION EQUALS 1 FOR SOI
|
||||
#
|
||||
# (2) SOR MANEUVER
|
||||
#
|
||||
# (A) TIG TIME OF SOR MANEUVER
|
||||
# (B) CENTANG AN OPTIONAL RESPECIFICATION OF 1 (B) ABOVE
|
||||
# (C) OPTION EQUALS 2 FOR SOR
|
||||
# (D) DELTTIME THE TIME REQUIRED TO TRAVERSE DELTA R WHEN
|
||||
# TRAVELING AT A VELOCITY EQUAL TO THE HORIZONTAL
|
||||
# VELOCITY OF THE PASSIVE VEHICLE - SAVED FROM
|
||||
# SOI PHASE
|
||||
# (E) TINT TIME OF INTERCEPT (SOI) - SAVED FROM SOI PHASE
|
||||
#
|
||||
# OUTPUT
|
||||
#
|
||||
# (1) TRKMKCNT NUMBER OF MARKS
|
||||
# (2) TTOGO TIME TO GO
|
||||
# (3) +MGA MIDDLE GIMBAL ANGLE
|
||||
# Page 526
|
||||
# (4) DSPTEM1 TIME OF INTERCEPT OF PASSIVE VEHICLE ORBIT
|
||||
# (FOR SOI ONLY)
|
||||
# (5) POSTTPI PERIGEE ALTITUDE OF ACTIVE VEHICLE ORBIT AFTER
|
||||
# THE SOI (SOR) MANEUVER
|
||||
# (6) DELVTPI MAGNITUDE OF DELTA V AT SOI (SOR) TIME
|
||||
# (7) DELVTPF MAGNITUDE OF DELTA V AT INTERCEPT TIME
|
||||
# (8) DELVLVC DELTA VELOCITY AT SOI (AND SOR) - LOCAL VERTICAL
|
||||
# COORDINATES
|
||||
#
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# AVFLAGA
|
||||
# AVFLAGP
|
||||
# VNDSPLY
|
||||
# BANKCALL
|
||||
# GOFLASHR
|
||||
# GOTOPOOH
|
||||
# BLANKET
|
||||
# ENDOFJOB
|
||||
# PREC/TT
|
||||
# SELECTMU
|
||||
# INTRPVP
|
||||
# MAINRTNE
|
||||
|
||||
BANK 04
|
||||
SETLOC STBLEORB
|
||||
BANK
|
||||
|
||||
EBANK= SUBEXIT
|
||||
COUNT* $$/P3879
|
||||
|
||||
P38 TC AVFLAGA # THIS VEHICLE ACTIVE
|
||||
TC +2
|
||||
P78 TC AVFLAGP # OTHER VEHICLE ACTIVE
|
||||
TC P20FLGON # SET UPDATFLG, TRACKFLG
|
||||
CAF V06N33SR # DISPLAY TIG
|
||||
TC VNDSPLY
|
||||
CAF V06N55SR # DISPLAY CENTANG
|
||||
TCR BANKCALL
|
||||
CADR GOFLASHR
|
||||
TCF GOTOPOOH # TERMINATE
|
||||
TCF +5 # PROCEED
|
||||
TCF -5 # RECYCLE
|
||||
CAF THREE # IMMEDIATE RETURN - BLANK R1, R2
|
||||
TCR BLANKET
|
||||
TCF ENDOFJOB
|
||||
CAF FIVE
|
||||
TS OPTION1
|
||||
CAF ONE
|
||||
TS OPTION2 # OPTION CODE IS SET TO 1
|
||||
# Page 527
|
||||
CAF V04N06SR # DISPLAY OPTION CODE - 1 = SOI, 2 = SOR
|
||||
TCR BANKCALL
|
||||
CADR GOFLASHR
|
||||
TCF GOTOPOOH # TERMINATE
|
||||
TCF +5 # PROCEED
|
||||
TCF -5 # RECYCLE
|
||||
CAF BIT3 # IMMEDIATE RETURN - BLANK R3
|
||||
TCR BLANKET
|
||||
TCF ENDOFJOB
|
||||
TC INTPRET
|
||||
SSP
|
||||
NN
|
||||
2
|
||||
SLOAD SR1
|
||||
OPTION2
|
||||
BHIZ DLOAD
|
||||
OPTN1
|
||||
TINT
|
||||
STORE TINTSOI # STORE FOR SOR PHASE
|
||||
CLRGO
|
||||
OPTNSW # OPTNSW; ON = SOI, OFF = SOR
|
||||
JUNCTN1
|
||||
OPTN1 SET CLEAR # SOI
|
||||
OPTNSW
|
||||
UPDATFLG
|
||||
CALL
|
||||
PREC/TT
|
||||
SET DAD
|
||||
UPDATFLG
|
||||
TIG
|
||||
STORE TINT # TI = TIG + TF
|
||||
STORE DSPTEM1 # FOR DISPLAY
|
||||
EXIT
|
||||
CAF V06N57SR # DISPLAY DELTA R
|
||||
TCR BANKCALL
|
||||
CADR GOFLASHR
|
||||
TCF GOTOPOOH # TERMINATE
|
||||
TCF +5 # PROCEED
|
||||
TCF -5 # RECYCLE
|
||||
CAF SIX # IMMEDIATE RETURN - BLANK R2, R3
|
||||
TCR BLANKET
|
||||
TCF ENDOFJOB
|
||||
CAF V06N34SR # DISPLAY TIME OF INTERCEPT
|
||||
TC VNDSPLY
|
||||
TC INTPRET
|
||||
JUNCTN1 CLEAR CALL
|
||||
P39/79SW
|
||||
SELECTMU # SELECT MU, CLEAR FINALFLG, GO TO VN1645
|
||||
RECYCLE CALL
|
||||
PREC/TT
|
||||
# Page 528
|
||||
BOFF DLOAD
|
||||
OPTNSW
|
||||
OPTN2
|
||||
TINT
|
||||
STCALL TDEC1 # PRECISION UPDATE PASSIVE VEHICLE TO
|
||||
INTRPVP # INTERCEPT TIME
|
||||
VLOAD UNIT
|
||||
RATT # RP/(RP)
|
||||
PDVL VXV
|
||||
VATT
|
||||
ABVAL NORM # (VP X RP/(RP))
|
||||
X1
|
||||
PDDL DDV
|
||||
DELTAR
|
||||
SL* # DELTA R / (VP X RP/RP)
|
||||
0 -7,1
|
||||
STCALL DELTTIME # DELTA T = (RP) DELTA R / (VP X RP)
|
||||
JUNCTN2
|
||||
OPTN2 DLOAD DAD
|
||||
TINTSOI
|
||||
T
|
||||
STORE TINT # TI = TI + TF
|
||||
JUNCTN2 DLOAD DSU
|
||||
TINT
|
||||
DELTTIME
|
||||
STORE TARGTIME # TT = TI - DELTA T
|
||||
|
||||
# .... MAINRTNE ....
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# S3435.25
|
||||
# PERIAPO1
|
||||
# SHIFTR1
|
||||
# VNDSPLY
|
||||
# BANKCALL
|
||||
# GOFLASH
|
||||
# GOTOPOOH
|
||||
# VN1645
|
||||
|
||||
MAINRTNE STCALL TDEC1 # PRECISION UPDATE PASSIVE VEHICLE TO
|
||||
INTRPVP # TARGET TIME
|
||||
DLOAD
|
||||
TIG
|
||||
STORE INTIME
|
||||
SSP VLOAD
|
||||
SUBEXIT
|
||||
TEST3979
|
||||
RATT
|
||||
CALL
|
||||
S3435.25
|
||||
TEST3979 BOFF BON
|
||||
# Page 529
|
||||
P39/79SW
|
||||
MAINRTN1
|
||||
FINALFLG
|
||||
P39P79
|
||||
SET
|
||||
UPDATFLG
|
||||
P39P79 EXIT
|
||||
TC DSPLY81 # FOR P39 AND P79
|
||||
MAINRTN1 VLOAD ABVAL
|
||||
DELVEET3
|
||||
STOVL DELVTPI # DELTA V
|
||||
VPASS4
|
||||
VSU ABVAL
|
||||
VTPRIME
|
||||
STOVL DELVTPF # DELTA V (FINAL) = V'T - VT
|
||||
RACT3
|
||||
PDVL CALL
|
||||
VIPRIME
|
||||
PERIAPO1 # GET PERIGEE ALTITUDE
|
||||
CALL
|
||||
SHIFTR1
|
||||
STORE POSTTPI
|
||||
BON SET
|
||||
FINALFLG
|
||||
DSPLY58
|
||||
UPDATFLG
|
||||
DSPLY58 EXIT
|
||||
CAF V06N58SR # DISPLAY HP, DELTA V, DELTA V (FINAL)
|
||||
TC VNDSPLY
|
||||
DSPLY81 CAF V06N81SR # DISPLAY DELTA V (LV)
|
||||
TC VNDSPLY
|
||||
TC INTPRET
|
||||
CLEAR VLOAD
|
||||
XDELVFLG
|
||||
DELVEET3
|
||||
STCALL DELVSIN
|
||||
VN1645 # DISPLAY TRKMKCNT, TTOGO, +MGA
|
||||
BON GOTO
|
||||
P39/79SW
|
||||
P39/P79B
|
||||
RECYCLE
|
||||
|
||||
# STABLE ORBIT MIDCOURSE PROGRAM (P39 AND P79)
|
||||
#
|
||||
# MOD NO -1 LOG SECTION - STABLE ORBIT - P38-P39
|
||||
# MOD BY RUDNICKI, S DATE 25JAN68
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
#
|
||||
# P39 AND P79 CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL
|
||||
# CONDITIONS REQUIRED BY THE AGC TO MAKE A MIDCOURSE CORRECTION
|
||||
# Page 530
|
||||
# MANEUVER AFTER COMPLETING THE SOI MANEUVER BUT BEFORE MAKING
|
||||
# THE SOR MANEUVER
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
#
|
||||
# ASTRONAUT REQUEST THRU DSKY
|
||||
#
|
||||
# V37E39E IF THIS VEHICLE IS ACTIVE VEHICLE
|
||||
# V37E79E IF OTHER VEHICLE IS ACTIVE VEHICLE
|
||||
#
|
||||
# INPUT
|
||||
#
|
||||
# (1) TPASS4 TIME OF INTERCEPT - SAVED FROM P38/P78
|
||||
# (2) TARGTIME TIME THAT PASSIVE VEHICLE IS AT INTERCEPT POINT -
|
||||
# SAVED FROM P38/P78
|
||||
#
|
||||
# OUTPUT
|
||||
#
|
||||
# (1) TRKMKCNT NUMBER OF MARKS
|
||||
# (2) TTOGO TIME TO GO
|
||||
# (3) +MGA MIDDLE GIMBAL ANGLE
|
||||
# (4) DELVLVC DELTA VELOCITY AT MID - LOCAL VERTICAL COORDINATES
|
||||
#
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# AVFLAGA
|
||||
# AVFLAGP
|
||||
# LOADTIME
|
||||
# SELECTMU
|
||||
# PRECSET
|
||||
# S34/35.1
|
||||
# MAINRTNE
|
||||
|
||||
P39 TC AVFLAGA # THIS VEHICLE ACTIVE
|
||||
EXTEND
|
||||
DCA ATIGINC
|
||||
TC P39/P79A
|
||||
P79 TC AVFLAGP # OTHER VEHICLE ACTIVE
|
||||
EXTEND
|
||||
DCA PTIGINC
|
||||
P39/P79A DXCH KT # TIME TO PREPARE FOR BURN
|
||||
TC P20FLGON # SET UPDATFLG, TRACKFLG
|
||||
TC INTPRET
|
||||
SET CALL
|
||||
P39/79SW
|
||||
SELECTMU # SELECT MU, CLEAR FINALFLG, GO TO VN1645
|
||||
P39/P79B RTB DAD
|
||||
LOADTIME
|
||||
KT
|
||||
STORE TIG # TIG = T (PRESENT) + PREPARATION TIME
|
||||
# Page531
|
||||
STCALL TDEC1 # PRECISION UPDATE ACTIVE AND PASSIVE
|
||||
PRECSET # VEHICLES TO TIG
|
||||
CALL
|
||||
S34/35.1 # GET UNIT NORMAL
|
||||
DLOAD GOTO
|
||||
TARGTIME
|
||||
MAINRTNE # CALCULATE DELTA V AND DELTA V (LV)
|
||||
|
||||
# .... PREC/TT ....
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# PRECSET
|
||||
# TIMETHET
|
||||
# S34/35.1
|
||||
|
||||
PREC/TT STQ DLOAD
|
||||
RTRN
|
||||
TIG
|
||||
STCALL TDEC1 # PRECISION UPDATE ACTIVE AND PASSIVE
|
||||
PRECSET # VEHICLES TO TIG
|
||||
VLOAD VSR*
|
||||
RPASS3
|
||||
0,2
|
||||
STODL RVEC
|
||||
CENTANG
|
||||
PUSH COS
|
||||
STODL CSTH
|
||||
SIN SET
|
||||
RVSW
|
||||
STOVL SNTH
|
||||
VPASS3
|
||||
VSR*
|
||||
0,2
|
||||
STCALL VVEC # GET TRANSFER TIME BASED ON CENTANG OF
|
||||
TIMETHET # PASSIVE VEHICLE
|
||||
CALL
|
||||
S34/35.1 # GET UNIT NORMAL
|
||||
DLOAD GOTO
|
||||
T
|
||||
RTRN
|
||||
# .... INTRPVP ....
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# CSMPREC
|
||||
# LEMPREC
|
||||
|
||||
INTRPVP STQ BOFF # PRECISION UPDATE PASSIVE VEHICLE TO
|
||||
RTRN # TDEC1
|
||||
AVFLAG
|
||||
OTHERV
|
||||
CALL
|
||||
# Page 532
|
||||
CSMPREC
|
||||
GOTO
|
||||
RTRN
|
||||
OTHERV CALL
|
||||
LEMPREC
|
||||
GOTO
|
||||
RTRN
|
||||
# .... VNDSPLY ....
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# BANKCALL
|
||||
# GOFLASH
|
||||
# GOTOPOOH
|
||||
|
||||
VNDSPLY EXTEND # FLASH DISPLAY
|
||||
QXCH RTRN
|
||||
TS VERBNOUN
|
||||
CA VERBNOUN
|
||||
TCR BANKCALL
|
||||
CADR GOFLASH
|
||||
TCF GOTOPOOH # TERMINATE
|
||||
TC RTRN # PROCEED
|
||||
TCF -5 # RECYCLE
|
||||
V06N33SR VN 0633
|
||||
V06N55SR VN 0655
|
||||
V04N06SR VN 0406
|
||||
V06N57SR VN 0657
|
||||
V06N34SR VN 0634
|
||||
V06N58SR VN 0658
|
||||
V06N81SR VN 0681
|
||||
|
||||
# *** END OF COMEKISS.020 ***
|
193
Comanche055/STAR_TABLES.agc
Normal file
193
Comanche055/STAR_TABLES.agc
Normal file
@ -0,0 +1,193 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: STAR_TABLES.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: 1389-1393
|
||||
# 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 1389
|
||||
BANK 32
|
||||
SETLOC STARTAB
|
||||
BANK
|
||||
|
||||
COUNT 14/STARS
|
||||
|
||||
2DEC +.8342971408 B-1 # STAR 37 X
|
||||
2DEC -.2392481515 B-1 # STAR 37 Y
|
||||
2DEC -.4966976975 B-1 # STAR 37 Z
|
||||
|
||||
2DEC +.8139832631 B-1 # STAR 36 X
|
||||
2DEC -.5557243189 B-1 # STAR 36 Y
|
||||
2DEC +.1691204557 B-1 # STAR 36 Z
|
||||
|
||||
2DEC +.4541086270 B-1 # STAR 35 X
|
||||
2DEC -.5392368197 B-1 # STAR 35 Y
|
||||
2DEC +.7092312789 B-1 # STAR 35 Z
|
||||
|
||||
2DEC +.3201817378 B-1 # STAR 34 X
|
||||
2DEC -.4436021946 B-1 # STAR 34 Y
|
||||
2DEC -.8370786986 B-1 # STAR 34 Z
|
||||
|
||||
2DEC +.5520184464 B-1 # STAR 33 X
|
||||
2DEC -.7933187400 B-1 # STAR 33 Y
|
||||
2DEC -.2567508745 B-1 # STAR 33 Z
|
||||
|
||||
2DEC +.4537196908 B-1 # STAR 32 X
|
||||
2DEC -.8779508801 B-1 # STAR 32 Y
|
||||
2DEC +.1527766153 B-1 # STAR 32 Z
|
||||
|
||||
2DEC +.2069525789 B-1 # STAR 31 X
|
||||
2DEC -.8719885748 B-1 # STAR 31 Y
|
||||
2DEC -.4436288486 B-1 # STAR 31 Z
|
||||
|
||||
2DEC +.1217293692 B-1 # STAR 30 X
|
||||
# Page 1390
|
||||
2DEC -.7702732847 B-1 # STAR 30 Y
|
||||
2DEC +.6259880410 B-1 # STAR 30 Z
|
||||
|
||||
2DEC -.1124304773 B-1 # STAR 29 X
|
||||
2DEC -.9694934200 B-1 # STAR 29 Y
|
||||
2DEC +.2178116072 B-1 # STAR 29 Z
|
||||
|
||||
2DEC -.1146237858 B-1 # STAR 28 X
|
||||
2DEC -.3399692557 B-1 # STAR 28 Y
|
||||
2DEC -.9334250333 B-1 # STAR 28 Z
|
||||
|
||||
2DEC -.3516499609 B-1 # STAR 27 X
|
||||
2DEC -.8240752703 B-1 # STAR 27 Y
|
||||
2DEC -.4441196390 B-1 # STAR 27 Z
|
||||
|
||||
2DEC -.5326876930 B-1 # STAR 26 X
|
||||
2DEC -.7160644554 B-1 # STAR 26 Y
|
||||
2DEC +.4511047742 B-1 # STAR 26 Z
|
||||
|
||||
2DEC -.7861763936 B-1 # STAR 25 X
|
||||
2DEC -.5217996305 B-1 # STAR 25 Y
|
||||
2DEC +.3311371675 B-1 # STAR 25 Z
|
||||
|
||||
2DEC -.6898393233 B-1 # STAR 24 X
|
||||
2DEC -.4182330640 B-1 # STAR 24 Y
|
||||
2DEC -.5909338474 B-1 # STAR 24 Z
|
||||
|
||||
2DEC -.5812035376 B-1 # STAR 23 X
|
||||
2DEC -.2909171294 B-1 # STAR 23 Y
|
||||
2DEC +.7599800468 B-1 # STAR 23 Z
|
||||
|
||||
2DEC -.9170097662 B-1 # STAR 22 X
|
||||
2DEC -.3502146628 B-1 # STAR 22 Y
|
||||
# Page 1391
|
||||
2DEC -.1908999176 B-1 # STAR 22 Z
|
||||
|
||||
2DEC -.4523440203 B-1 # STAR 21 X
|
||||
2DEC -.0493710140 B-1 # STAR 21 Y
|
||||
2DEC -.8904759346 B-1 # STAR 21 Z
|
||||
|
||||
2DEC -.9525211695 B-1 # STAR 20 X
|
||||
2DEC -.0593434796 B-1 # STAR 20 Y
|
||||
2DEC -.2986331746 B-1 # STAR 20 Z
|
||||
|
||||
2DEC -.9656605484 B-1 # STAR 19 X
|
||||
2DEC +.0525933156 B-1 # STAR 19 Y
|
||||
2DEC +.2544280809 B-1 # STAR 19 Z
|
||||
|
||||
2DEC -.8608205219 B-1 # STAR 18 X
|
||||
2DEC +.4636213989 B-1 # STAR 18 Y
|
||||
2DEC +.2098647835 B-1 # STAR 18 Z
|
||||
|
||||
2DEC -.7742591356 B-1 # STAR 17 X
|
||||
2DEC +.6152504197 B-1 # STAR 17 Y
|
||||
2DEC -.1482892839 B-1 # STAR 17 Z
|
||||
|
||||
2DEC -.4657947941 B-1 # STAR 16 X
|
||||
2DEC +.4774785033 B-1 # STAR 16 Y
|
||||
2DEC +.7450164351 B-1 # STAR 16 Z
|
||||
|
||||
2DEC -.3612508532 B-1 # STAR 15 X
|
||||
2DEC +.5747270840 B-1 # STAR 15 Y
|
||||
2DEC -.7342932655 B-1 # STAR 15 Z
|
||||
|
||||
2DEC -.4118589524 B-1 # STAR 14 X
|
||||
2DEC +.9065485360 B-1 # STAR 14 Y
|
||||
2DEC +.0924226975 B-1 # STAR 14 Z
|
||||
|
||||
# Page 1392
|
||||
2DEC -.1820751783 B-1 # STAR 13 X
|
||||
2DEC +.9404899869 B-1 # STAR 13 Y
|
||||
2DEC -.2869271926 B-1 # STAR 13 Z
|
||||
|
||||
2DEC -.0614937230 B-1 # STAR 12 X
|
||||
2DEC +.6031563286 B-1 # STAR 12 Y
|
||||
2DEC -.7952489957 B-1 # STAR 12 Z
|
||||
|
||||
2DEC +.1371725575 B-1 # STAR 11 X
|
||||
2DEC +.6813721061 B-1 # STAR 11 Y
|
||||
2DEC +.7189685267 B-1 # STAR 11 Z
|
||||
|
||||
2DEC +.2011399589 B-1 # STAR 10 X
|
||||
2DEC +.9690337941 B-1 # STAR 10 Y
|
||||
2DEC -.1432348512 B-1 # STAR 10 Z
|
||||
|
||||
2DEC +.3507315038 B-1 # STAR 9 X
|
||||
2DEC +.8926333307 B-1 # STAR 9 Y
|
||||
2DEC +.2831839492 B-1 # STAR 9 Z
|
||||
|
||||
2DEC +.4105636020 B-1 # STAR 8 X
|
||||
2DEC +.4988110001 B-1 # STAR 8 Y
|
||||
2DEC +.7632988371 B-1 # STAR 8 Z
|
||||
|
||||
2DEC +.7032235469 B-1 # STAR 7 X
|
||||
2DEC +.7075846047 B-1 # STAR 7 Y
|
||||
2DEC +.0692868685 B-1 # STAR 7 Z
|
||||
|
||||
2DEC +.5450107404 B-1 # STAR 6 X
|
||||
2DEC +.5314955466 B-1 # STAR 6 Y
|
||||
2DEC -.6484410356 B-1 # STAR 6 Z
|
||||
|
||||
2DEC +.0130968840 B-1 # STAR 5 X
|
||||
# Page 1393
|
||||
2DEC +.0078062795 B-1 # STAR 5 Y
|
||||
2DEC +.9998837600 B-1 # STAR 5 Z
|
||||
|
||||
2DEC +.4917678276 B-1 # STAR 4 X
|
||||
2DEC +.2204887125 B-1 # STAR 4 Y
|
||||
2DEC -.8423473935 B-1 # STAR 4 Z
|
||||
|
||||
2DEC +.4775639450 B-1 # STAR 3 X
|
||||
2DEC +.1166004340 B-1 # STAR 3 Y
|
||||
2DEC +.8708254803 B-1 # STAR 3 Z
|
||||
|
||||
2DEC +.9342640400 B-1 # STAR 2 X
|
||||
2DEC +.1735073142 B-1 # STAR 2 Y
|
||||
2DEC -.3115219339 B-1 # STAR 2 Z
|
||||
|
||||
2DEC +.8748658918 B-1 # STAR 1 X
|
||||
2DEC +.0260879174 B-1 # STAR 1 Y
|
||||
2DEC +.4836621670 B-1 # STAR 1 Z
|
||||
|
||||
CATLOG DEC 6970
|
||||
|
||||
|
||||
|
659
Comanche055/SXTMARK.agc
Normal file
659
Comanche055/SXTMARK.agc
Normal file
@ -0,0 +1,659 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SXTMARK.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. 222-235
|
||||
# Contact: Ron Burkey <info@sandroid.org>,
|
||||
# Fabrizio Bernardini <fabrizio@spacecraft.it>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 16/05/09 FB Transcription Batch 2 Assignment.
|
||||
#
|
||||
# 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 222
|
||||
# PROGRAM NAME - SXTMARK DATE- 5 APRIL 1967
|
||||
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS LOG SECTION SXTMARK
|
||||
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
|
||||
|
||||
# FUNCTIONAL DESCRIPTION-
|
||||
# SXTMARK IS CALLED FROM INTERNAL ROUTINES WHICH MAY REQUIRE STAR OR LANDMARK MARKINGS BY THE ASTRONAUT. IF
|
||||
# THE MARK SYSTEM IS NOT IN USE, SXTMARK RESERVES A VAC AREA FOR MARKING AND REQUESTS EXECUTION OF THE MKVB51
|
||||
# ROUTINE VIA THE EXECUTIVE JOB PRIORITY LIST. R21 USES THIS ROUTINE TO DETERMINE IF THE MARK SYSTEM CAN BE
|
||||
# USED. IF YES, SXTMARK RETURNS TO R21 TO PERFORM ITS OWN MARK REQUESTS VIA THE V51 FLASH.
|
||||
|
||||
# CALLING SEQUENCE-
|
||||
|
||||
# CAF (NO. MARK REQUESTS IN BITS 1-3 OF A)
|
||||
# TC BANKCALL
|
||||
# CADR SXTMARK
|
||||
|
||||
# NORMAL EXIT MODE-
|
||||
# SWRETURN
|
||||
|
||||
# ALARM OR ABORT EXIT MODE-
|
||||
# ABORT
|
||||
|
||||
# OUTPUT-
|
||||
# 1) MARKSTAT CONTAINS MARK VALUE (BITS 14-12) AND VAC AREA ADDRESS
|
||||
# 2) QPRET = VAC AREA POINTER VALUE
|
||||
# 3) 1ST WORD OF RESERVED VAC AREA SET TO +0
|
||||
# 4) PRIO32 PLACED IN A REGISTER
|
||||
|
||||
# ERASABLE INITIALIZATION-
|
||||
# 1) BITS 1-3 OF A = NO. MARKS REQUESTED
|
||||
# 2) BITS 2,3 OF EXTVBACT =0
|
||||
# 3) A VAC AREA MUST BE AVAILABLE (WORD 1 = ADDRESS OF VAC AREA)
|
||||
|
||||
# DEBRIS-
|
||||
# A,Q,L,RUPTREG1,MARKSTAT,QPRET,BIT2 OF EXTVBACT
|
||||
|
||||
BANK 13
|
||||
SETLOC SXTMARKE
|
||||
BANK
|
||||
|
||||
EBANK= MRKBUF1
|
||||
COUNT 07/SXTMK
|
||||
|
||||
SXTMARK INHINT
|
||||
TS RUPTREG1 # NUMBER OF MARKS WANTED
|
||||
|
||||
CAF SIX # BIT2 = MARKING SYSTEM IN USE
|
||||
MASK EXTVBACT # BIT3 = EXTENDED VERB IN PROGRESS
|
||||
CCS A
|
||||
TC MKABORT # SET THEREFORE ABORT
|
||||
# Page 223
|
||||
CAF BIT2 # NOT SET
|
||||
ADS EXTVBACT # SET IT, RESET IN ENDMARK
|
||||
TC MARKOK # YES, FIND VAC AREA
|
||||
|
||||
MKABORT TC BAILOUT
|
||||
OCT 01211
|
||||
MARKOK CCS VAC1USE # FIND VAC AREA
|
||||
TC MKVACFND
|
||||
CCS VAC2USE
|
||||
TC MKVACFND
|
||||
CCS VAC3USE
|
||||
TC MKVACFND
|
||||
CCS VAC4USE
|
||||
TC MKVACFND
|
||||
CCS VAC5USE
|
||||
TC MKVACFND
|
||||
TC BAILOUT
|
||||
OCT 01207
|
||||
|
||||
MKVACFND AD TWO # ADDRESS OF VAC AREA
|
||||
TS MARKSTAT
|
||||
INDEX A
|
||||
TS QPRET # STORE NEXT AVAILABLE MARK SLOT
|
||||
|
||||
CAF ZERO # STORE VAC AREA OCCUPIED
|
||||
INDEX MARKSTAT
|
||||
TS 0 -1
|
||||
|
||||
TC CHECKMM # BACKUP MARK ROUTINE USES SXTMARK
|
||||
MM 53
|
||||
TCF +2
|
||||
TCF SWRETURN
|
||||
TC CHECKMM
|
||||
MM 54
|
||||
TCF +2
|
||||
TCF SWRETURN
|
||||
CAF BIT12 # DESIRED NUMBER OF MARKS IN 12-14
|
||||
EXTEND
|
||||
MP RUPTREG1
|
||||
XCH L
|
||||
ADS MARKSTAT
|
||||
|
||||
CAF PRIO32 # ENTER MARK JOB
|
||||
TC NOVAC
|
||||
EBANK= MARKSTAT
|
||||
2CADR MKVB51
|
||||
|
||||
RELINT
|
||||
TCF SWRETURN # SAME AS MODEEXIT
|
||||
|
||||
# Page 224
|
||||
# PROGRAM NAME - MKRELEAS DATE- 5 APRIL 1967
|
||||
# PROGRAM MODIFIED BY 248/278 PROGRAMMERS LOG SECTION SXTMARK
|
||||
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
|
||||
|
||||
# FUNCTIONAL DESCRIPTION-
|
||||
# MKRELEAS IS EXECUTED BY INTERNAL ROUTINES TO RELEASE THE MARK SYSTEM TO MAKE IT AVAILABLE TO OTHER INTERNAL
|
||||
# SYSTEM ROUTINES. IT ALSO CLEARS THE COARSE OPTICS FLAG BIT AND DISABLES THE OPTICS ERROR COUNTER.
|
||||
|
||||
# CALLING SEQUENCE-
|
||||
|
||||
# TC BANKCALL
|
||||
# CADR MKRELEAS
|
||||
|
||||
# NORMAL EXIT MODE-
|
||||
# SWRETURN
|
||||
|
||||
# ALARM OR ABORT EXIT MODE- NONE
|
||||
|
||||
# OUTPUT-
|
||||
# 1) BIT9 OPTMODES SET TO 0
|
||||
# 2) OPTIND SET TO -1
|
||||
# 3) 1ST WORD OF VAC AREA SET TO VAC ADDRESS TO SIGNIFY AVAILABILITY.
|
||||
# 4) MARKSTAT CLEARED
|
||||
# 5) BIT2 CHANNEL 12 SET TO 0
|
||||
|
||||
# ERASABLE INITIALIZATION- NONE
|
||||
|
||||
# DEBRIS-
|
||||
# A,MARKSTAT,BIT9,OPTMODES OPTIND,BIT2 CHANNEL 12
|
||||
|
||||
MKRELEAS CAF ZERO # SHOW MARK SYSTEM NOW AVAILABLE
|
||||
XCH MARKSTAT
|
||||
MASK LOW9
|
||||
CCS A
|
||||
INDEX A
|
||||
TS 0
|
||||
MKRLEES INHINT
|
||||
CS BIT9 # COARSE OPTICS RETURN FLAG.
|
||||
MASK OPTMODES
|
||||
TS OPTMODES
|
||||
|
||||
CA NEGONE
|
||||
TS OPTIND # KILL COARSE OPTICS
|
||||
|
||||
CS BIT2 # DISABLE OPTICS ERROR COUNTER
|
||||
EXTEND
|
||||
WAND CHAN12
|
||||
|
||||
RELINT
|
||||
TC SWRETURN
|
||||
# Page 225
|
||||
# PROGRAM NAME - MARKRUPT DATE- 5 APRIL 1967
|
||||
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS LOG SECTION SXTMARK
|
||||
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
|
||||
|
||||
# FUNCTIONAL DESCRIPTION-
|
||||
# MARKRUPT STORES CDUS,OPTICS AND TIME AND TRANSFERS CONTROL TO THE MARKIT,MARK REJECT OR KEYCOM ROUTINES IF
|
||||
# BITS IN CHANNEL 16 ARE SET AS REQUIRED.
|
||||
|
||||
# CALLING SEQUENCE-
|
||||
# ROUTINE ENTERED VIA KEYRUPT2 WHEN MARK,MARK REJECT OR DSKY KEYS DEPRESSED BY THE OPERATOR.
|
||||
|
||||
# NORMAL EXIT MODE-
|
||||
# MARKIT, MKREJECT, OR POSTJUMP ROUTINES (MARK,MARK REJECT, OR DSKY CODE)
|
||||
|
||||
# ALARM OR ABORT EXIT MODE-
|
||||
# ALARM AND RESUME
|
||||
|
||||
# OUTPUT-
|
||||
# RUPTSTOR+5 = CDUT, RUPTSTOR+3 = CDUS, RUPTSTOR+2 = CDUY,
|
||||
# RUPTREG3 = CDUZ, RUPTSTOR+6 = CDUX, RUPTSTOR+1 AND SAMPTIME+1 =TIME1,
|
||||
# RUPTSTOR AND SAMPTIME = TIME2
|
||||
|
||||
# ERASABLE INITIALIZATION-
|
||||
# CDUT,CDUS,CDUY,CDUZ,CDUX,TIME2,TIME1,CHANNEL 16 BITS 6,7 OR 1-5
|
||||
|
||||
# DEBRIS-
|
||||
# A,QRUPT,RUPTREG3,SAMPTIME,SAMPTIME+1,RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4 (LOCATION 67)
|
||||
|
||||
MARKRUPT TS BANKRUPT # STORE CDUS AND OPTICS NOW
|
||||
CA CDUT
|
||||
TS MKCDUT
|
||||
CA CDUS
|
||||
TS MKCDUS
|
||||
CA CDUY
|
||||
TS MKCDUY
|
||||
CA CDUZ
|
||||
TS MKCDUZ
|
||||
CA CDUX
|
||||
TS MKCDUX
|
||||
EXTEND
|
||||
DCA TIME2 # GET TIME
|
||||
DXCH MKT2T1
|
||||
EXTEND
|
||||
DCA MKT2T1
|
||||
DXCH SAMPTIME # RUPT TIME FOR NOUN 65.
|
||||
|
||||
XCH Q
|
||||
TS QRUPT
|
||||
|
||||
CAF BIT6 # SEE IF MARK OR MKREJECT
|
||||
# Page 226
|
||||
EXTEND
|
||||
RAND NAVKEYIN
|
||||
CCS A
|
||||
TC MARKIT # ITS A MARK
|
||||
|
||||
CAF BIT7 # NOT A MARK, SEE IF MKREJECT
|
||||
EXTEND
|
||||
RAND NAVKEYIN
|
||||
CCS A
|
||||
TC MKREJECT # ITS A MARK REJECT
|
||||
|
||||
KEYCALL CAF OCT37 # NOT MARK OR MKREJECT, SEE IF KEYCODE
|
||||
EXTEND
|
||||
RAND NAVKEYIN
|
||||
EXTEND
|
||||
BZF +3 # IF NO INBITS
|
||||
TC POSTJUMP
|
||||
CADR KEYCOM # IT,S A KEY CODE, NOT A MARK.
|
||||
|
||||
+3 TC ALARM # ALARM IF NO INBITS
|
||||
OCT 113
|
||||
TC RESUME
|
||||
|
||||
# Page 227
|
||||
# PROGRAM NAME - MARKCONT DATE- 19 SEPT 1967
|
||||
|
||||
# PROGRAM MODIFIED BY 258/278 PROGRAMMERS LOG SECTION SXTMARK
|
||||
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
|
||||
|
||||
# FUNCTIONAL DESCRIPTION-
|
||||
# MARKCONT IS USED TO PERFORM A SPECIAL MARK FUNCTION FOR R21, TO EXECUTE A SPECIAL DISPLAY OF OPTICS AND TIME OR
|
||||
# TO PERFORM A MARK OF THE STAR OR LAND SIGHTING BASED UPON FLASHING V-N.
|
||||
|
||||
# CALLING SEQUENCE-
|
||||
# FROM MARKDIF
|
||||
|
||||
# NORMAL EXIT MODE-
|
||||
# TASKOVER
|
||||
|
||||
# ALARM OR ABORT EXIT MODE-
|
||||
# ALARM AND TASKOVER
|
||||
|
||||
# OUTPUT-
|
||||
# 1) FOR R21-
|
||||
# EBANK=EBANK7
|
||||
# MRKBUF1 TO MRKBUF1+6 = TIME2,TIME1,CDUY,OPTICX,CDUZ,OPTICSY,CDUX OF CURRENT R21 MARK FUNCTION.
|
||||
# MRKBUF2 TO MRKBUF2+6 CONTAINS PREVIOUS R21 MARK VALUES.
|
||||
# 2) FOR SPECIAL DISPLAY JOB-
|
||||
# RUPTREG1 AND MRKBUF1 = CDUS,RUPTREG2 AND MRKBUF1 +1 = CDUT.
|
||||
# RUPTREG3 AND MRKBUF1 +2 = TIME2,RUPTREG4 AND MRKBUF1 +3 = TIME1
|
||||
# 3) FOR NORMAL MARKING-
|
||||
# DECREMENT BITS14-12 OF MARKSTAT BY 1,
|
||||
# BIT10 MARKSTAT SET TO 1,INCREMENT QPRET BY 7,
|
||||
# STORE TIME2,TIME1,CDUY,CDUS,CDUZ,CDUT AND CDUX IN VAC+1 TO VAC+7
|
||||
|
||||
# ERASABLE INITIALIZATION-
|
||||
# 1) FOR R21-
|
||||
# BIT14 OF STATE+2 =1, MRKBUF1 TO MRKBUF1+6, ITEMP1, RUPTREG3,
|
||||
# RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4
|
||||
# 2) FOR SPECIAL DISPLAY JOB-
|
||||
# BIT14 OF STATE+2 =0,MARKSTAT =+0,RUPTREG1,RUPTREG2,RUPTREG3
|
||||
# RUPTREG4,RUPTSTOR,RUPTSTOR+1,RUPTSTOR+3,RUPTSTOR+5,
|
||||
# BIT12 OF STATE+5 (V59 FLAG),MRKBUF1 THRU MRKBUF1+3
|
||||
# 3) FOR NORMAL MARKING-
|
||||
# BIT14 OF STATE+2 =0,MARKSTAE =VAC ADDRESS, A REG, ITEMP1, RUPTREG3,
|
||||
# RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4.
|
||||
|
||||
# DEBRIS-
|
||||
# 1) FOR R21-
|
||||
# A,ITEMP1,MRKBUF1,MRKBUF2
|
||||
# 2) FOR SPECIAL DISPLAY JOB-
|
||||
# A,RUPTREG1,RUPTREG2,RUPTREG3,RUPTREG4,MPAC TO MPAC+3
|
||||
# 3) FOR NORMAL MARKING-
|
||||
# A,MARKSTAT,ITEMP1,QPRET,VAC+1 TO VAC+7 OF VAC AREA IN USE
|
||||
|
||||
# Page 228
|
||||
MARKCONT CAF BIT14
|
||||
MASK STATE +2 # R21 MARK (SPECIAL MARKING FOR R21)
|
||||
EXTEND
|
||||
BZF MARKET # NOT SET THEREFORE REGULAR MARKING
|
||||
MARKIT1 CAF SIX # SPECIAL FOR R21
|
||||
TC GENTRAN # TRANSFER MRKBUF1 TO MRKBUF2
|
||||
ADRES MRKBUF1
|
||||
ADRES MRKBUF2
|
||||
|
||||
CAF SIX # TRANSFER CURRENT MARK DATA TO MARKBUF1
|
||||
TC GENTRAN
|
||||
ADRES MKT2T1
|
||||
ADRES MRKBUF1
|
||||
|
||||
TCF TASKOVER
|
||||
|
||||
MARKET CCS MARKSTAT # SEE IF MARKS CALLED FOR
|
||||
TC MARK2 # COLLECT MARKS
|
||||
|
||||
CAF TWO # IS MARKING SYSTEM IN USE (BIT2)
|
||||
MASK EXTVBACT
|
||||
EXTEND
|
||||
BZF MARKET3 # MARKING NOT CALLED FOR
|
||||
CAF BIT12
|
||||
MASK STATE +5 # V59FLAG
|
||||
EXTEND
|
||||
BZF MARKET3 # IF V59FLAG NOT SET-MARK UNCALLED FOR
|
||||
CAF PRIO5 # CALIBRATION MARK (SET) FOR P23
|
||||
TC NOVAC # SPECIAL DISPLAY JOB
|
||||
EBANK= MRKBUF1
|
||||
2CADR MARKDISP
|
||||
|
||||
CAF SIX
|
||||
TC GENTRAN # TRANSFER MARK DATE TO MARKDOWN
|
||||
ADRES MKT2T1
|
||||
ADRES MARKDOWN
|
||||
CAF SIX
|
||||
TC GENTRAN # TRANSFER MARK DATA TO MRKBUF1 FOR
|
||||
ADRES MKT2T1 # SPECIAL DISPLAY OF SHAFT AND TRUNNION
|
||||
ADRES MRKBUF1 # IF V59 ACTING
|
||||
TCF TASKOVER
|
||||
MARKET3 TC ALARM
|
||||
OCT 122 # MARKING NOT CALLED FOR
|
||||
TCF TASKOVER
|
||||
114ALM TC ALARM # MARK NOT WANTED
|
||||
OCT 114
|
||||
TCF TASKOVER
|
||||
|
||||
# Page 229
|
||||
# STORE MARK DATA IN MKVAC AND INCREMENT POINTER
|
||||
|
||||
MARK2 AD 74K # SEE IF MARKS WANTED-REDUCE MARKS WANTED
|
||||
EXTEND
|
||||
BZMF 114ALM # MARK NOT WANTED-ALARM
|
||||
TS MARKSTAT
|
||||
COM
|
||||
MASK BIT10 # SET BIT10 TO ENABLE REJECT
|
||||
ADS MARKSTAT
|
||||
|
||||
MASK LOW9
|
||||
TS ITEMP1
|
||||
INDEX A
|
||||
XCH QPRET # PICK UP MARK SLOT-POINTER
|
||||
TS ITEMP2 # SAVE CURRENT POINTER
|
||||
AD SEVEN # INCREMENT POINTER
|
||||
INDEX ITEMP1
|
||||
TS QPRET # STORE ADVANCED POINTER
|
||||
|
||||
VACSTOR EXTEND
|
||||
DCA MKT2T1
|
||||
INDEX ITEMP2
|
||||
DXCH 0
|
||||
CA MKCDUY
|
||||
INDEX ITEMP2
|
||||
TS 2
|
||||
CA MKCDUS
|
||||
INDEX ITEMP2
|
||||
TS 3
|
||||
CA MKCDUZ
|
||||
INDEX ITEMP2
|
||||
TS 4
|
||||
CA MKCDUT
|
||||
INDEX ITEMP2
|
||||
TS 5
|
||||
CA MKCDUX
|
||||
INDEX ITEMP2
|
||||
TS 6
|
||||
|
||||
CAF PRIO34 # IF ALL MARKS MADE FLASH VB50
|
||||
MASK MARKSTAT
|
||||
EXTEND
|
||||
BZF +2
|
||||
TCF TASKOVER
|
||||
CAF PRIO32
|
||||
TC NOVAC
|
||||
EBANK= MARKSTAT
|
||||
2CADR MKVB50
|
||||
|
||||
TCF TASKOVER
|
||||
|
||||
# Page 230
|
||||
# PROGRAM NAME - MKREJECT DATE- 5 APRIL 1967
|
||||
# PROGRAM MODIFIED BY 258/276 PROGRAMMERS LOG SECTION SXTMARK
|
||||
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 116
|
||||
|
||||
# FUNCTIONAL DESCRIPTION-
|
||||
# ROUTINE ALLOWS OPEATOR TO REJECT MARK MADE PRIOR TO ACCEPTANCE AND ALLOWS A NEW MARK TO BE MADE BY ASTRONAUT
|
||||
|
||||
# CALLING SEQUENCE-
|
||||
# FROM MARKRUPT IF BIT7 OF CHANNEL 16 IS 1.
|
||||
|
||||
# NORMAL EXIT MODE-
|
||||
# RESUME
|
||||
|
||||
# ALARM OR ABORT EXIT MODE-
|
||||
# ALARM AND RESUME
|
||||
|
||||
# OUTPUT-
|
||||
# 1) FOR R21-
|
||||
# MRKRUP1 SET TO -1
|
||||
# 2) FOR NORMAL MARKING-
|
||||
# BIT10 MARKSTAT =0,INCREMENT NO. MARKS BY 1,DECREMENT QPRET BY 7
|
||||
|
||||
# ERASABLE INITIALIZATION-
|
||||
# 1) FOR R21-
|
||||
# BIT14 OF STATE+2 SET TO 1
|
||||
# 2) FOR NORMAL MARKING-
|
||||
# BIT14 OF STATE+2 SET TO 0, MARKSTAT,QPRET
|
||||
|
||||
# DEBRIS-
|
||||
# 1) FOR R21-
|
||||
# A,MARKSTAT,EBANK
|
||||
# 2) FOR NORMAL MARKING-
|
||||
# A,MARKSTAT,ITEMP1,QPRET
|
||||
|
||||
MKREJECT CAF BIT14
|
||||
MASK STATE +2 # R21 MARK (SPECIAL MARKING FOR R21)
|
||||
EXTEND
|
||||
BZF MRKREJCT # NOT SET THEREFORE REGULAR REJECT
|
||||
CA NEGONE # -1 (FOR R22)
|
||||
TS MRKBUF1 # -0 IN TIME IS FLAG TO R22 SIGNIFYING A
|
||||
TC RESUME # REJECTED MARK
|
||||
MRKREJCT CCS MARKSTAT # SEE IF MARKS BEING ACCEPTED
|
||||
TC REJECT2
|
||||
TC ALARM # MARKS NOT BEING ACCEPTED
|
||||
OCT 112
|
||||
TC RESUME
|
||||
|
||||
REJECT2 CS BIT10 # SEE IF MARK HAD BEEN MADE SINCE LAST
|
||||
MASK MARKSTAT # REJECT, AND SET BIT10 TO ZERO TO
|
||||
XCH MARKSTAT # SHOW MARK REJECT
|
||||
# Page 231
|
||||
MASK BIT10
|
||||
CCS A
|
||||
TC REJECT3
|
||||
|
||||
TC ALARM # DONT ACCEPT TWO REJECTS TOGETHER
|
||||
OCT 110
|
||||
TC RESUME
|
||||
|
||||
REJECT3 CAF LOW9 # DECREMENT POINTER TO REJECT MARK
|
||||
MASK MARKSTAT
|
||||
TS ITEMP1
|
||||
CS SEVEN
|
||||
INDEX ITEMP1
|
||||
ADS QPRET # NEW POINTER
|
||||
|
||||
CAF BIT12 # INCREMENT MARKS WANTED AND IF FIELD
|
||||
AD MARKSTAT # IS NOW NON-ZERO, CHANGE TO VB51 TO
|
||||
XCH MARKSTAT # INDICATE MORE MARKS WANTED
|
||||
MASK PRIO34 # INDICATE MORE MARKS WANTED
|
||||
CCS A
|
||||
TC RESUME
|
||||
CAF PRIO32
|
||||
TC NOVAC
|
||||
EBANK= MARKSTAT
|
||||
2CADR MKVB51
|
||||
|
||||
TC RESUME
|
||||
|
||||
# Page 232
|
||||
# PROGRAM DESCRIPTION MKVB51 AND MKVB50
|
||||
|
||||
# AUTHOR-BARNERT DATE-2-15-67 MOD-0
|
||||
# PURPOSE FLASH V51N70,V51N43, OR V51 TO REQUEST MARKING,
|
||||
# AND V50N25 R1=16 TO REQUEST TERMINATE MARKING.
|
||||
|
||||
# CALLING SEQUENCE AS JOB WITHIN SXTMARK
|
||||
|
||||
# EXIT TO ENDMARK UPON RECEIPT OF V33, V34 CAUSES GOTOPOOH, ENTER
|
||||
# RECYCLES THE DISPLAY
|
||||
|
||||
# NOTE- SXTMARK AUTOMATICALLY CHANGES FROM CALLING MKVB51 TO MKVB50 WHEN
|
||||
# SUFFICIENT MARKS HAVE BEEN MADE, AND THE REVERSE WHEN A MARK
|
||||
# REJECT REDUCES THE NUMBER MADE BELOW THAT REQUIRED
|
||||
|
||||
# SUBROUTINES CALLED- BANKCALL, GOMARK2,GOODEND,ENDMARK,WAITLIST
|
||||
|
||||
# ALARM OR ABORT MODES - NONE
|
||||
|
||||
# ERASABLE USED-VERBREG,MARKSTAT,QPRET,DSPTEM1
|
||||
|
||||
# OUTPUT MARKSTAT=VAC ADDRESS
|
||||
|
||||
# QPRET= NO.MARKS
|
||||
MKVB51 TC BANKCALL # CLEAR DISPLAY FOR MARK VERB
|
||||
CADR KLEENEX
|
||||
CAF VB51 # DISPLAY MARK VB51
|
||||
TC BANKCALL
|
||||
CADR GOMARK4
|
||||
TCF TERMSXT # VB34-TERMINATE
|
||||
TCF ENTANSWR # V33-PROCEED-MARKING DONE
|
||||
TCF MKVB5X # ENTER-RECYCLE TO INITIAL MARK DISPLAY
|
||||
|
||||
TERMSXT TC CLEARMRK # CLEAR MARK ACTIVITY.
|
||||
|
||||
TC CHECKMM
|
||||
MM 03
|
||||
TCF +2
|
||||
TC TERMP03
|
||||
TC POSTJUMP
|
||||
CADR TERM52
|
||||
|
||||
TERMP03 TC UPFLAG
|
||||
ADRES TRM03FLG
|
||||
ENTANSWR CAF LOW9 # PUT VAC ADR IN MARKSTAT AND NO. OF
|
||||
MASK MARKSTAT # MARKS MADE IN QPRET BEFORE LEAVING
|
||||
TS MARKSTAT # SXTMARK
|
||||
COM
|
||||
INDEX MARKSTAT
|
||||
AD QPRET
|
||||
# Page 233
|
||||
EXTEND
|
||||
BZMF JAMIT # NO MARKS MADE, SHOW IT IN QPRET, R53
|
||||
EXTEND # WILL PICK IT UP AND RECYCLE
|
||||
MP BIT12 # THIS PUTS NUMBER MARKS-1 IN A
|
||||
AD ONE
|
||||
JAMIT INDEX MARKSTAT # STORE NO OF MARKS MADE
|
||||
TS QPRET
|
||||
INHINT # SERVICE OPTSTALL INTERFACE WITH
|
||||
CAF FIVE
|
||||
TC WAITLIST
|
||||
EBANK= MARKSTAT
|
||||
2CADR ENDMARKS
|
||||
|
||||
TC ENDMARK # KNOCKS DOWN MARKING FLAG + DOES ENDOFJOB
|
||||
|
||||
ENDMARKS CAF ONE
|
||||
TC IBNKCALL
|
||||
CADR GOODEND
|
||||
MKVB5X CAF PRIO34
|
||||
MASK MARKSTAT # RE-DISPLAY VB51 IF MORE MARKS WANTED
|
||||
CCS A # AND VB50 IF ALL IN
|
||||
TCF MKVB51
|
||||
MKVB50 CAF R1D1 # OCT 16
|
||||
TS DSPTEM1
|
||||
CAF V50N25
|
||||
TCF MKVB51 +3
|
||||
|
||||
V50N25 VN 5025
|
||||
VB51 VN 5100
|
||||
OCT37 = LOW5
|
||||
|
||||
# PROGRAM NAME - MARKIT DATE- 19 SEPT 1967
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# FROM MARKRUPT IF CHAN 16 BIT 6 = 1
|
||||
|
||||
# EXIT
|
||||
# RESUME
|
||||
|
||||
# INPUT
|
||||
# CDUCHKWD. ALSO ALL INITIALIZATION FOR MARKCONT
|
||||
|
||||
# OUTPUT
|
||||
# MKT2T1,MKCDUX,MKCDUY,MKCDUZ,MKCDUS,MKCDUT
|
||||
|
||||
# ALARM EXIT
|
||||
# NONE
|
||||
|
||||
MARKIT CCS CDUCHKWD
|
||||
TCF +3 # DELAY OF CDUCHKWD CS IF PNZ
|
||||
# Page 234
|
||||
TCF +2
|
||||
CAF ZERO
|
||||
AD ONE # 10 MS IF NO CHECK
|
||||
TC WAITLIST
|
||||
EBANK= MRKBUF1
|
||||
2CADR MARKDIF
|
||||
|
||||
TCF RESUME
|
||||
|
||||
SETLOC SXTMARK1
|
||||
BANK
|
||||
|
||||
COUNT 20/SXTMK
|
||||
|
||||
# PROGRAM NAME - MARKDIF DATE- 19 SEPT 1967
|
||||
|
||||
# CALLING SEQUENCE
|
||||
# WAITLIST FROM MARKIT
|
||||
|
||||
# EXIT
|
||||
# TASKOVER TO IBNKCALL TO MARKCONT
|
||||
|
||||
# INPUT
|
||||
# OUTPUT FROM MARKIT, INPUT TO MARKCONT, CDUCHKWD
|
||||
|
||||
# OUTPUT
|
||||
# RUPTSTOR - RUPTSTOR+3,RUPTREG3,RUPTSTOR+5 - RUPTSTOR+6
|
||||
|
||||
# ALARM EXIT
|
||||
# ALARM AND TASKOVER
|
||||
|
||||
MARKDIF CA CDUCHKWD # IF DELAY CHECK IS ZERO OR NEG,ACP MARK
|
||||
EXTEND
|
||||
BZMF MKACPT
|
||||
CS BIT1
|
||||
TS MKNDX # SET INDEX -1
|
||||
CA MKCDUX
|
||||
TC DIFCHK # SEE IF VEHICLE RATE TO MUCH AT MARK
|
||||
CA MKCDUY
|
||||
TC DIFCHK
|
||||
CA MKCDUZ
|
||||
TC DIFCHK
|
||||
|
||||
MKACPT TC IBNKCALL
|
||||
CADR MARKCONT # MARK DATA OK, WHAT DO WE DO WITH IT
|
||||
|
||||
DIFCHK INCR MKNDX # INCREMENT INDEX
|
||||
|
||||
EXTEND
|
||||
INDEX MKNDX
|
||||
# Page 235
|
||||
MSU CDUX # GET MARK(ICDU) - CURRENT(ICDU)
|
||||
CCS A
|
||||
TCF +4
|
||||
TC Q
|
||||
TCF +2
|
||||
TC Q
|
||||
AD NEG2 # SEE IF DIFFERENCE GREATER THAN 3 BITS
|
||||
EXTEND
|
||||
BZMF -3 # NOT GREATER
|
||||
|
||||
TC ALARM # COUPLED WITH PROGRAM ALARM
|
||||
OCT 00121
|
||||
|
||||
TCF TASKOVER # DO NOT ACCEPT
|
150
Comanche055/SYSTEM_TEST_STANDARD_LEAD_INS.agc
Normal file
150
Comanche055/SYSTEM_TEST_STANDARD_LEAD_INS.agc
Normal file
@ -0,0 +1,150 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SYSTEM_TEST_STANDARD_LEAD_INS.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. 420-422
|
||||
# Contact: Onno Hommes <ohommes@cmu.edu>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Mod history: 05/07/09 OH Transcription Batch 1 Assignment
|
||||
#
|
||||
# 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 420
|
||||
EBANK= XSM
|
||||
|
||||
BANK 33
|
||||
SETLOC E/PROG1
|
||||
BANK
|
||||
|
||||
COUNT* $$/P07
|
||||
|
||||
# SPECIAL PROGRAMS TO EASE THE PANGS OF ERASABLE MEMORY PROGRAMS.
|
||||
#
|
||||
# E/BKCALL FOR DOING BANKCALLS FROM AND RETURNING TO ERASABLE.
|
||||
#
|
||||
# THIS ROUTINE IS CALLABLE FROM ERASABLE OR FIXED. LIKE BANKCALL, HOWEVER, SWITCHING BETWEEN S3 AND S4
|
||||
# IS NOT POSSIBLE.
|
||||
#
|
||||
# THE CALLING SEQUENCE IS:
|
||||
#
|
||||
# TC BANKCALL
|
||||
# CADR E/BKCALL
|
||||
# CADR ROUTINE # WHERE YOU WANT TO GO IN FIXED.
|
||||
# RETURN HERE FROM DISPLAY TERMINATE, BAD STALL OR TC Q.
|
||||
# RETURN HERE FROM DISPLAY PROCEED OR GOOD RETURN FROM STALL.
|
||||
# RETURN HERE FROM DISPLAY ENTER OR RECYCLE.
|
||||
#
|
||||
# THIS ROUTINE REQUIRES TWO ERASABLES (EBUF2, +1) IN UNSWITCHED WHICH ARE UNSHARED BY INTERRUPTS AND
|
||||
# OTHER EMEMORY PROGRAMS.
|
||||
#
|
||||
# A + L ARE PRESERVED THROUGH BANKCALL AND E/BKCALL.
|
||||
|
||||
E/BKCALL DXCH BUF2 # SAVE A,L AND GET DP RETURN.
|
||||
DXCH EBUF2 # SAVE DP RETURN.
|
||||
INCR EBUF2 # RETURN +1 BECAUSE DOUBLE CADR.
|
||||
CA BBANK
|
||||
MASK LOW10 # GET CURRENT EBANK. (SBANK SOMEDAY)
|
||||
ADS EBUF2 +1 # FORM BBCON. (WAS FBANK)
|
||||
NDX EBUF2
|
||||
CA 0 -1 # GET CADR OF ROUTINE.
|
||||
TC SWCALL # GO TO ROUTINE, SETTING Q TO SWRETURN
|
||||
# AND RESTORING A + L.
|
||||
TC +4 # TX Q, V34, OR BAD STALL RETURN.
|
||||
TC +2 # PROCEED OR GOOD STALL RETURN.
|
||||
INCR EBUF2 # ENTER OR RECYCLE RETURN.
|
||||
INCR EBUF2
|
||||
E/SWITCH DXCH EBUF2
|
||||
DTCB
|
||||
|
||||
# Page 421
|
||||
# E/CALL FOR CALLING A FIXED MEMORY INTERPRETIVE SUBROUTINE FROM ERASABLE AND RETURNING TO ERASABLE.
|
||||
#
|
||||
# THE CALLING SEQUENCE IS...
|
||||
#
|
||||
# RTB
|
||||
# E/CALL
|
||||
# CADR ROUTINE # THE INTERPRETIVE SUBROUTINE YOU WANT.
|
||||
# # RETURNS HERE IN INTERPRETIVE.
|
||||
|
||||
E/CALL LXCH LOC # ADRES -1 OF CADR.
|
||||
INDEX L
|
||||
CA L # CADR IN A.
|
||||
INCR L
|
||||
INCR L # RETURN ADRES IN L.
|
||||
DXCH EBUF2 # STORE CADR AND RETURN.
|
||||
TC INTPRET
|
||||
CALL
|
||||
EBUF2 # INDIRECTLY EXECUTE ROUTING. IT MUST
|
||||
EXIT # LEAVE VIA RVQ OR EQUIVALENT.
|
||||
LXCH EBUF2 +1 # PICK UP RETURN.
|
||||
TCF INTPRET +2 # SET LOC AND RETURB TO CALLER
|
||||
|
||||
# Page 422
|
||||
# E/JOBWAK FOR WAKING UP ERASABLE MEMORY JOBS.
|
||||
#
|
||||
# THIS ROUTINE MUST BE CALLED IN INTERRUPT OR WITH INTERRUPTS INHIBITED.
|
||||
#
|
||||
# THE CALLING SEQUENCE IS:
|
||||
#
|
||||
# INHINT
|
||||
# .
|
||||
# .
|
||||
# CA WAKEADR # ADDRESS OF SLEEPING JOB
|
||||
# TC IBNKCALL
|
||||
# CADR E/JOBWAK
|
||||
# . # RETURNS HERE
|
||||
# .
|
||||
# .
|
||||
# RELINT # IF YOU DID AN INHINT.
|
||||
|
||||
BANK 33
|
||||
SETLOC E/PROG
|
||||
BANK
|
||||
|
||||
COUNT* $$/P07
|
||||
|
||||
E/JOBWAK TC JOBWAKE # ARRIVE IWTH ADRES IN A.
|
||||
CS BIT11
|
||||
NDX LOCCTR
|
||||
ADS LOC # KNOCK FIXED MEMORY BIT OUT OF ADRES.
|
||||
TC RUPTREG3 # RETURN
|
||||
|
||||
|
||||
# THESE PROGRAMS ARE PROVIDED TO ALLOW OVERLAY OF BANKS 30 THRU 33 OF THE 205 VERSIONS OF SYSTEM TESTS AND
|
||||
# PRELAUNCH ALIGN. THE INTENT IS TO ALLOW THE STG AND HYBRID LABS TO RUN ALL THE TESTS WITH COLOSSUS.
|
||||
|
||||
|
||||
BANK 33
|
||||
SETLOC TESTLEAD
|
||||
BANK
|
||||
|
||||
COUNT 33/COMST
|
||||
|
||||
EBANK= QPLACE
|
||||
|
||||
COMPVER TC GCOMPVER # MUST BE 33,2000.
|
||||
|
||||
GTSCPSS1 TC GTSCPSS # MUST BE AT 33,2001
|
||||
|
||||
REDO TC NEWMODEX # DISPLAY MM 07.
|
||||
MM 07 # FALL INTO IMUTEST
|
||||
|
1467
Comanche055/T4RUPT_PROGRAM.agc
Normal file
1467
Comanche055/T4RUPT_PROGRAM.agc
Normal file
File diff suppressed because it is too large
Load Diff
435
Comanche055/TAGS_FOR_RELATIVE_SETLOC.agc
Normal file
435
Comanche055/TAGS_FOR_RELATIVE_SETLOC.agc
Normal file
@ -0,0 +1,435 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TAGS_FOR_RELATIVE_SETLOC.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.
|
||||
# 2009-05-20 RSB Corrected R32 -> R31.
|
||||
#
|
||||
# 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 27
|
||||
# TAGS FOR RELATIVE SETLOC AND BLANK BANK CARDS
|
||||
|
||||
FIXED MEMORY 120000 - 167777
|
||||
COUNT BANKSUM
|
||||
|
||||
# MODULE 1 CONTAINS BANKS 0 THROUGH 5
|
||||
|
||||
BLOCK 02
|
||||
FFTAG1 EQUALS
|
||||
FFTAG2 EQUALS
|
||||
FFTAG3 EQUALS
|
||||
FFTAG4 EQUALS
|
||||
FFTAG7 EQUALS
|
||||
FFTAG8 EQUALS
|
||||
FFTAG9 EQUALS
|
||||
FFTAG10 EQUALS
|
||||
FFTAG12 EQUALS
|
||||
P30SUBS EQUALS
|
||||
STOPRAT EQUALS
|
||||
P23S EQUALS
|
||||
BNKSUM 02
|
||||
|
||||
BLOCK 03
|
||||
FFTAG5 EQUALS
|
||||
FFTAG6 EQUALS
|
||||
DAPS9 EQUALS
|
||||
FFTAG13 EQUALS
|
||||
BNKSUM 03
|
||||
|
||||
BANK 00
|
||||
DLAYJOB EQUALS
|
||||
BNKSUM 00
|
||||
|
||||
BANK 01
|
||||
RESTART EQUALS
|
||||
BNKSUM 01
|
||||
|
||||
BANK 4
|
||||
VERB37 EQUALS
|
||||
CONICS1 EQUALS
|
||||
PINBALL4 EQUALS
|
||||
CSI/CDH1 EQUALS
|
||||
INTPRET2 EQUALS
|
||||
IMUCAL1 EQUALS
|
||||
|
||||
# Page 28
|
||||
|
||||
STBLEORB EQUALS
|
||||
E/PROG EQUALS
|
||||
MIDDGIM EQUALS
|
||||
BNKSUM 04
|
||||
|
||||
BANK 5
|
||||
FRANDRES EQUALS
|
||||
DOWNTELM EQUALS
|
||||
DAPMASS EQUALS
|
||||
CDHTAG EQUALS
|
||||
BNKSUM 05
|
||||
|
||||
# MODULE 2 CONTAINS BANKS 6 THROUGH 13
|
||||
|
||||
BANK 6
|
||||
IMUCOMP EQUALS
|
||||
T4RUP EQUALS
|
||||
IMUCAL2 EQUALS
|
||||
CSIPROG EQUALS
|
||||
BNKSUM 06
|
||||
|
||||
BANK 7
|
||||
SXTMARKE EQUALS
|
||||
R02 EQUALS
|
||||
MODESW EQUALS
|
||||
XANG EQUALS
|
||||
KEYRUPT EQUALS
|
||||
CSIPROG6 EQUALS
|
||||
BNKSUM 07
|
||||
|
||||
BANK 10
|
||||
DISPLAYS EQUALS
|
||||
PHASETAB EQUALS
|
||||
COMGEOM2 EQUALS
|
||||
SXTMARK1 EQUALS
|
||||
P60S4 EQUALS
|
||||
OPTDRV EQUALS
|
||||
CSIPROG8 EQUALS
|
||||
BNKSUM 10
|
||||
|
||||
BANK 11
|
||||
ORBITAL EQUALS
|
||||
ORBITAL1 EQUALS # CONSTANTS
|
||||
|
||||
# Page 29
|
||||
|
||||
INTVEL EQUALS
|
||||
S52/2 EQUALS
|
||||
CSIPROG5 EQUALS
|
||||
INTINIT1 EQUALS
|
||||
BNKSUM 11
|
||||
|
||||
BANK 12
|
||||
CONICS EQUALS
|
||||
CSIPROG2 EQUALS
|
||||
CSI/CDH2 EQUALS
|
||||
MODCHG2 EQUALS
|
||||
BNKSUM 12
|
||||
|
||||
BANK 13
|
||||
P76LOC EQUALS
|
||||
LATLONG EQUALS
|
||||
INTINIT EQUALS
|
||||
SR52/1 EQUALS
|
||||
ORBITAL2 EQUALS
|
||||
CDHTAGS EQUALS
|
||||
E/PROG1 EQUALS
|
||||
MODCHG3 EQUALS
|
||||
BNKSUM 13
|
||||
|
||||
# SPACER
|
||||
|
||||
# MODULE 3 CONTAINS BANKS 14 THROUGH 21
|
||||
|
||||
BANK 14
|
||||
STARTAB EQUALS
|
||||
RT53 EQUALS
|
||||
P50S1 EQUALS
|
||||
MEASINC2 EQUALS
|
||||
CSI/CDH3 EQUALS
|
||||
BNKSUM 14
|
||||
|
||||
BANK 15
|
||||
P50S EQUALS
|
||||
ETRYDAP EQUALS
|
||||
S52/3 EQUALS
|
||||
BNKSUM 15
|
||||
|
||||
BANK 16
|
||||
P40S1 EQUALS
|
||||
|
||||
# Page 30
|
||||
|
||||
DAPROLL EQUALS
|
||||
P50S2 EQUALS
|
||||
P23S1 EQUALS
|
||||
RTE2 EQUALS
|
||||
BNKSUM 16
|
||||
|
||||
BANK 17
|
||||
DAPS4 EQUALS
|
||||
DAPS5 EQUALS
|
||||
DAPS7 EQUALS
|
||||
P50S3 EQUALS
|
||||
BNKSUM 17
|
||||
|
||||
BANK 20
|
||||
DAPS6 EQUALS
|
||||
DAPS1 EQUALS
|
||||
DAPS2 EQUALS
|
||||
MANUSTUF EQUALS
|
||||
R36CM EQUALS
|
||||
VAC5LOC EQUALS
|
||||
BNKSUM 20
|
||||
|
||||
BANK 21
|
||||
DAPS3 EQUALS
|
||||
MYSUBS EQUALS
|
||||
KALCMON3 EQUALS
|
||||
BNKSUM 21
|
||||
|
||||
# MODULE 4 CONTAINS BANKS 22 THROUGH 27
|
||||
|
||||
BANK 22
|
||||
RTBCODES EQUALS
|
||||
RTBCODE1 EQUALS
|
||||
DAPS8 EQUALS
|
||||
APOPERI EQUALS
|
||||
P40S5 EQUALS
|
||||
KALCMON2 EQUALS
|
||||
KALCMON1 EQUALS
|
||||
CSIPROG3 EQUALS
|
||||
BNKSUM 22
|
||||
|
||||
# Page 31
|
||||
|
||||
BANK 23
|
||||
P20S2 EQUALS
|
||||
INFLIGHT EQUALS
|
||||
COMGEOM1 EQUALS
|
||||
POWFLITE EQUALS
|
||||
POWFLIT1 EQUALS
|
||||
RENDGUID EQUALS
|
||||
POWFLIT2 EQUALS
|
||||
R30LOC EQUALS
|
||||
P11FOUR EQUALS
|
||||
CSIPROG4 EQUALS
|
||||
BNKSUM 23
|
||||
|
||||
BANK 24
|
||||
LOADDAP EQUALS
|
||||
P40S EQUALS
|
||||
CSIPROG7 EQUALS
|
||||
BNKSUM 24
|
||||
|
||||
BANK 25
|
||||
REENTRY EQUALS
|
||||
CDHTAG1 EQUALS
|
||||
BNKSUM 25
|
||||
|
||||
BANK 26
|
||||
INTPRET1 EQUALS
|
||||
REENTRY1 EQUALS
|
||||
P60S EQUALS
|
||||
P60S1 EQUALS
|
||||
P60S2 EQUALS
|
||||
P60S3 EQUALS
|
||||
PLANTIN EQUALS # LUNAR ROT
|
||||
EPHEM EQUALS
|
||||
P05P06 EQUALS
|
||||
26P50S EQUALS
|
||||
BNKSUM 26
|
||||
|
||||
BANK 27
|
||||
TOF-FF EQUALS
|
||||
TOF-FF1 EQUALS
|
||||
MANUVER EQUALS
|
||||
MANUVER1 EQUALS
|
||||
|
||||
# Page 32
|
||||
|
||||
VECPT EQUALS
|
||||
UPDATE1 EQUALS
|
||||
UPDATE2 EQUALS
|
||||
R22S1 EQUALS
|
||||
P60S5 EQUALS
|
||||
P40S2 EQUALS
|
||||
BNKSUM 27
|
||||
|
||||
# MODULE 5 CONTAINS BANKS 30 THROUGH 35
|
||||
|
||||
BANK 30
|
||||
IMUSUPER EQUALS
|
||||
LOWSUPER EQUALS
|
||||
FCSTART EQUALS # STANDARD LOCATION FOR THIS. (FOR EXTV8)
|
||||
LOPC EQUALS
|
||||
P20S1 EQUALS
|
||||
P20S6 EQUALS
|
||||
P40S3 EQUALS
|
||||
R35A EQUALS
|
||||
BNKSUM 30
|
||||
|
||||
BANK 31
|
||||
R35 EQUALS
|
||||
RT23 EQUALS
|
||||
P30S1A EQUALS
|
||||
R34 EQUALS
|
||||
CDHTAG2 EQUALS
|
||||
CSIPROG9 EQUALS
|
||||
R31 EQUALS
|
||||
P22S EQUALS
|
||||
RTE3 EQUALS
|
||||
BNKSUM 31
|
||||
|
||||
BANK 32
|
||||
MSGSCAN1 EQUALS
|
||||
RTE EQUALS
|
||||
DELRSPL1 EQUALS
|
||||
IMUCAL3 EQUALS
|
||||
BNKSUM 32
|
||||
|
||||
BANK 33
|
||||
TESTLEAD EQUALS
|
||||
|
||||
# Page 33
|
||||
|
||||
IMUCAL EQUALS
|
||||
BNKSUM 33
|
||||
|
||||
BANK 34
|
||||
P11ONE EQUALS
|
||||
P20S3 EQUALS
|
||||
P20S4 EQUALS
|
||||
RTECON EQUALS
|
||||
BNKSUM 34
|
||||
|
||||
BANK 35
|
||||
RTECON1 EQUALS
|
||||
CSI/CDH EQUALS
|
||||
P30S1 EQUALS
|
||||
P30S EQUALS
|
||||
P17S1 EQUALS
|
||||
MEASINC3 EQUALS
|
||||
INTINIT2 EQUALS
|
||||
BNKSUM 35
|
||||
|
||||
# MODULE 6 CONTAINS BANKS 36 THROUGH 43
|
||||
|
||||
BANK 36
|
||||
MEASINC EQUALS
|
||||
MEASINC1 EQUALS
|
||||
P17S EQUALS
|
||||
RTE1 EQUALS
|
||||
S3435LOC EQUALS
|
||||
BNKSUM 36
|
||||
|
||||
BANK 37
|
||||
P20S EQUALS
|
||||
BODYATT EQUALS
|
||||
RENDEZ EQUALS
|
||||
SERVICES EQUALS
|
||||
P11TWO EQUALS
|
||||
CDHTAG3 EQUALS
|
||||
BNKSUM 37
|
||||
|
||||
BANK 40
|
||||
PINSUPER EQUALS
|
||||
|
||||
# Page 34
|
||||
|
||||
SELFSUPR EQUALS
|
||||
PINBALL1 EQUALS
|
||||
R36CM1 EQUALS
|
||||
BNKSUM 40
|
||||
|
||||
BANK 41
|
||||
PINBALL2 EQUALS
|
||||
R36LM EQUALS
|
||||
BNKSUM 41
|
||||
|
||||
BANK 42
|
||||
SBAND EQUALS
|
||||
PINBALL3 EQUALS
|
||||
EXTVBS EQUALS
|
||||
R36LM1 EQUALS
|
||||
BNKSUM 42
|
||||
|
||||
BANK 43
|
||||
SELFCHEC EQUALS
|
||||
EXTVERBS EQUALS
|
||||
BNKSUM 43
|
||||
|
||||
HI6ZEROS EQUALS ZEROVECS # ZERO VECTOR ALWAYS IN HIGH MEMORY
|
||||
LO6ZEROS EQUALS ZEROVEC # ZERO VECTOR ALWAYS IN LOW MEMORY
|
||||
HIDPHALF EQUALS UNITX
|
||||
LODPHALF EQUALS XUNIT
|
||||
HIDP1/4 EQUALS DP1/4TH
|
||||
LODP1/4 EQUALS D1/4 # 2DEC .25
|
||||
HIUNITX EQUALS UNITX
|
||||
HIUNITY EQUALS UNITY
|
||||
HIUNITZ EQUALS UNITZ
|
||||
LOUNITX EQUALS XUNIT # 2DEC .5
|
||||
LOUNITY EQUALS YUNIT # 2DEC 0
|
||||
LOUNITZ EQUALS ZUNIT # 2DEC 0
|
||||
3/4LOWDP EQUALS 3/4 # 2DEC 3.0 B-2
|
||||
SBANK= LOWSUPER
|
||||
|
||||
# ROPE SPECIFIC ASSIGNS OBVIATING NEED TO CHECK COMPUTER FLAG IN DETVRUZVING INTEGRATION AREA ENTRIES
|
||||
|
||||
OTHPREC EQUALS LEMPREC
|
||||
ATOPOTH EQUALS ATOPLEM
|
||||
ATOPTHIS EQUALS ATOPCSM
|
||||
MOONTHIS EQUALS CMOONFLG
|
||||
|
||||
# Page 35
|
||||
|
||||
MOONOTH EQUALS LMOONFLG
|
||||
MOVATHIS EQUALS MOVEACSM
|
||||
STATEST EQUALS V83CALL # * TEMPORARY
|
||||
THISPREC EQUALS CSMPREC
|
||||
THISAXIS = UNITX
|
||||
ERASID EQUALS LOW10 # DOWNLINK ERASABLE DUMP ID
|
||||
DELAYNUM EQUALS THREE
|
||||
|
||||
#***************************************************************************************************************
|
||||
|
||||
# THE FOLLOWING ECADRS ARE DEFINED TO FACILITATE EBANK SWITCHING. THEY ALSO MAKE IT EASIER FOR
|
||||
# ERASABLE CONTROL TO REARRANGE ERASABLE MEMORY WITHOUT DISRUPTING THE PROGRAMS WHICH SET EBANKS.
|
||||
# PRIOR TO ROPE RELEASE FIXED MEMORY CAN BE SAVED BY SETTING EACH EBXXXX =EBANKX (X=4,5,6,7).EBANKX OF COURSE
|
||||
# WILL BE THE BANK WHERE THE ERASABLES REFERENCED IN EBXXXX WILL BE STORED.
|
||||
|
||||
BANK 7
|
||||
EBANK= MARKDOWN
|
||||
EBMARKDO ECADR MARKDOWN
|
||||
EBANK= MRKBUF1
|
||||
EBMRKBUF ECADR MRKBUF1
|
||||
|
||||
BANK 24
|
||||
EBANK= DVCNTR
|
||||
EBDVCNTR ECADR DVCNTR
|
||||
EBANK= P40TMP
|
||||
EBP40TMP ECADR P40TMP
|
||||
|
||||
BANK 34
|
||||
EBANK= DVCNTR
|
||||
EBDVCNT ECADR DVCNTR
|
||||
EBANK= QPLACES
|
||||
EBQPLACE ECADR QPLACES
|
||||
|
||||
BANK 37
|
||||
EBANK= RN1
|
||||
EBRN1 ECADR RN1
|
||||
|
||||
#***************************************************************************************************************
|
||||
|
||||
# Page 36
|
||||
|
||||
# *** END OF MAIN PROGRAM ***
|
683
Comanche055/TIME_OF_FREE_FALL.agc
Normal file
683
Comanche055/TIME_OF_FREE_FALL.agc
Normal file
@ -0,0 +1,683 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TIME_OF_FREE_FALL.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: 1373-1388
|
||||
# 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 1373
|
||||
# THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES. THE TFF ROUTINES NEVER
|
||||
# KNOW WHICH ORIGIN APPLIES. IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE AND 1/SQRT(MU) AT THE
|
||||
# APPROPRIATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
|
||||
|
||||
# EARTH ORIGIN POSITION -29 METERS
|
||||
# VELOCITY -7 METERS/CENTISECOND
|
||||
# 1/SQRT(MU) +17 SQRT(CS SQ/METERS CUBED)
|
||||
|
||||
# MOON ORIGIN POSITION -27 METERS
|
||||
# VELOCITY -5 METERS/CENTISECONDS
|
||||
# 1/SQRT(MU) +14 SQRT(CS SQ/METERS CUBED)
|
||||
|
||||
# ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE. IN ALL CASES,
|
||||
# THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28). PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
|
||||
# LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
|
||||
# THE USER MUST STORE THE STATE VECTOR IN RONE, VONE AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
|
||||
# AT THE PROPER SCALE BEFORE CALLING TFF/CONIC. SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
|
||||
# THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
|
||||
# PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
|
||||
# RADIUS. THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
|
||||
#
|
||||
# THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
|
||||
#
|
||||
|
||||
# BELOW E: IS USED FOR EARTH ORIGIN SCALE
|
||||
# M: IS USED FOR MOON ORIGIN SCALE
|
||||
|
||||
#TFFSW = 119D # BIT1 0 = CALCTFF 1 = CALCTPER
|
||||
TFFDELQ = 10D # Q2-Q1 E: (-16) M: (-15)
|
||||
RMAG1 = 12D # ABVAL(RN) M E: (-29) M: (-27)
|
||||
#RPER = 14D # PERIGEE RADIUS M E: (-29) M: (-27)
|
||||
TFFQ1 = 14D # R.V / SQRT(MUE) E: (-16) M: (-15)
|
||||
#SDELF/2 # SIN(THETA) /2
|
||||
CDELF/2 = 14D # COS(THETA) /2
|
||||
#RAPO = 16D # APOGEE RADIUS M E: (-29) M: (-27)
|
||||
NRTERM = 16D # TERMINAL RADIUS M E: (-29+NR)
|
||||
# M: (-27+NR)
|
||||
RTERM = 18D # TERMINAL RADIUS M E: (-29) M: (-27)
|
||||
TFFVSQ = 20D # -(V SQUARED/MU) 1/M E: (20) M: (18)
|
||||
TFF1/ALF = 22D # SEMI MAJ AXIS M E: (-22-2 NA)
|
||||
# M: (-20-2 NA)
|
||||
TFFRTALF = 24D # SQRT(ALFA) E:(10+NA) M: (9+NA)
|
||||
TFFALFA = 26D # ALFA 1/M E:(26-NR) M: (24-NR)
|
||||
TFFNP = 28D # SEMI LATUS RECTUM M E: (-38+2 NR)
|
||||
# M: (-36+2 NR)
|
||||
TFF/RTMU = 30D # 1/SQRT(MU) E: (17) M: (14)
|
||||
NRMAG = 32D # PRESENT RADIUS M E: (-29+NR)
|
||||
# M: (-27+NR)
|
||||
TFFX = 34D #
|
||||
TFFTEM = 36D # TEMPORARY
|
||||
# Page 1374
|
||||
# REGISTERS S1, S2 ARE UNTOUCHED BY ANY TFF SUBROUTINE
|
||||
# INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES. THEY ARE ESTAB-
|
||||
# LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
|
||||
# SUBROUTINES.
|
||||
# -NR C(X1) = NORM COUNT OF RMAG
|
||||
# -NA C(X2)= NORM COUNT OF SQRT(ABS(ALFA))
|
||||
|
||||
# Page 1375
|
||||
# SUBROUTINE NAME: TFFCONIC DATE: 01.29.67
|
||||
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL
|
||||
# MOD BY: RR BAIRNSFATHER
|
||||
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
|
||||
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD MOON MU.
|
||||
# MOD NO: 3 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
|
||||
# FUNCTIONAL DESCRIPTION: THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
|
||||
# SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA. THE PARAMETERS ARE LISTED UNDER OUTPUT.
|
||||
# THE EQUATIONS ARE:
|
||||
# - - -
|
||||
# H = RN*VN ANGULAR MOMENTUM
|
||||
# - -
|
||||
# LCP = H.H / MU SEMI LATUS RECTUM
|
||||
# - -
|
||||
# ALFA = 2/RN - VN.VN / MU RECIPROCAL SEMI MAJ AXIS, SIGNED
|
||||
|
||||
# AND ALFA IS POS FOR ELLIPTIC ORBITS
|
||||
# 0 FOR PARABOLIC ORBITS
|
||||
# NEG FOR HYPERBOLIC ORBITS.
|
||||
# SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
|
||||
# CALLING SEQUENCE:
|
||||
# TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
|
||||
# 1/SQRT(MU). THE PROGRAM WILL SAVE IN TFF/RTMU . THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
|
||||
# ORIGIN IS USED. THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
|
||||
# VONE AT PROPER SCALE. THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
|
||||
# TFF ROUTINES.
|
||||
# ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
|
||||
# TO SPECIFY MU: DLOAD CALL # IF MU ALREADY STORED: CALL
|
||||
# YOURMU # 1/RTMU E:(17) M:(14) TFFCONMU
|
||||
# TFFCONIC
|
||||
# PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
|
||||
|
||||
# SUBROUTINES CALLED: NONE
|
||||
# NORMAL EXIT MODES: RVQ
|
||||
# ALARMS: NONE
|
||||
# OUTPUT: THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
|
||||
# RMAG1 E:(-29) M:(-27) M RN, PRESENT RADIUS LENGTH.
|
||||
# NRMAG E:(-29+NR) M RMAG, NORMALIZED
|
||||
# M:(-27+NR)
|
||||
# X1 -NR, NORM COUNT
|
||||
# TFFNP E:(-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHTED BY NR. FOR VGAMCALC
|
||||
# M:(-36+2NR)
|
||||
# TFF/RTMU E:(17) M:(14) 1/SQRT(MU)
|
||||
# TFFVSQ E:(20) M:(18) 1/M -(V SQ/MU): PRESENT VELOCITY,NORMLIZED. FOR VGAMCALC
|
||||
# TFFALFA E:(26-NR) 1/M ALFA, WEIGHTED BY NR
|
||||
# M:(24-NR)
|
||||
# TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED
|
||||
# M:(9+NA)
|
||||
# Page 1376
|
||||
# X2 -NA, NORM COUNT
|
||||
# TFF1/ALF E: (-22-2NA) SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
|
||||
# M: (-20-2NA)
|
||||
# PUSHLOC AT PDL+0
|
||||
# THE FOLLOWING IS STORED IN GENERAL ERASABLE
|
||||
# VONE' E:(10) M:(9) V/RT(MU), NORMALIZED VELOCITY
|
||||
# ERASABLE INITIALIZATION REQUIRED:
|
||||
# RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY CALLER
|
||||
# VONE E:(-7) M:(-5) M/CS STATE VECTOR LEFT BY CALLER
|
||||
# TFF/RTMU E:(17) M:(14) 1/RT(CS SQ/M CUBE) IF ENTER VIA TFFCONMU.
|
||||
# DEBRIS: QPRET. PDL+0 ... PDL+3
|
||||
#
|
||||
|
||||
BANK 33
|
||||
SETLOC TOF-FF
|
||||
BANK
|
||||
|
||||
COUNT* $$/TFF
|
||||
|
||||
TFFCONIC STORE TFF/RTMU # 1/SQRT(MU) E: (17) M: (14)
|
||||
|
||||
TFFCONMU VLOAD UNIT # COME HERE WITH TFFRTMU LOADED.
|
||||
RONE # SAVED RN. M E: (-29) M: (-27)
|
||||
PDDL # UR/2 TO PDL+0, +5
|
||||
36D # MAGNITUDE
|
||||
STORE RMAG1 # M E:(-29) M:(-27)
|
||||
|
||||
NORM
|
||||
X1 # -NR
|
||||
STOVL NRMAG # RMAG M E: (-29+NR) M: (-27+NR)
|
||||
VONE # SAVED VN. M/CS E: (-7) M: (-5)
|
||||
VXSC
|
||||
TFF/RTMU # E:(17) M:(14)
|
||||
STORE VONE' # VN/SQRT(MU) E: (10) M: (9)
|
||||
|
||||
VXSC VXV
|
||||
NRMAG # E: (-29+NR) M: (-27+NR)
|
||||
# UR/2 FROM PDL
|
||||
VSL1 VSQ # BEFORE: E:(-19+NR) M:(-18+NR)
|
||||
STODL TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
|
||||
# SAVE ALSO FOR VGAMCALC
|
||||
TFF1/4
|
||||
DDV PDVL # (2/RMAG) 1/M E:(26-NR) M:(24-NR)
|
||||
NRMAG # RMAG M E:(-29+NR) M:(-27+NR)
|
||||
VONE' # SAVED VN. E:(10) M:(9)
|
||||
VSQ DCOMP # KEEP MPAC+2 HONEST FOR SQRT.
|
||||
STORE TFFVSQ # -(V SQ/MU) E:(20) M:(18)
|
||||
# SAVE FOR VGAMCALC
|
||||
SR* DAD
|
||||
# Page 1377
|
||||
0 -6,1 # GET -VSQ/MU E:(26-NR) M:(24-NR)
|
||||
STADR
|
||||
# 2/RMAG FROM PDL+2
|
||||
STORE TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
|
||||
SL* PUSH # TEMP SAVE ALFA E:(20) M:(18)
|
||||
0 -6,1
|
||||
ABS SQRT # E:(10) M:(9)
|
||||
NORM
|
||||
X2 # X2 = -NA
|
||||
STORE TFFRTALF # SQRT( ABS(ALFA) ) E:(10+NA) M:(9+NA)
|
||||
DSQ SIGN # NOT SO ACCURATE, BUT OK
|
||||
# ALFA FROM PDL+2 E:(20) M:(18)
|
||||
BZE BDDV # SET 1/ALFA =0, TO SHOW SMALL ALFA
|
||||
+2
|
||||
TFF1/4
|
||||
+2 STORE TFF1/ALF # 1/ALFA E:(-22-2 NA) M:(-20-2 NA)
|
||||
DUMPCNIC RVQ
|
||||
# 39 W
|
||||
# Page 1378
|
||||
# SUBROUTINE NAME: TFFRP/RA DATE: 01.17.67
|
||||
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL
|
||||
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 11 APR 67
|
||||
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
|
||||
# ALSO IMPROVE ACCURACY OF RAPO.
|
||||
# FUNCTIONAL DESCRIPTION: USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
|
||||
# APOGEE RADIUS FOR A GENERAL CONIC.
|
||||
# PROGRAM GIVES PERIGEE RADIUS AS APOGEE RADIUS IS GIVEN BY
|
||||
# RP = P /(1+E) RA = (1+E) / ALFA
|
||||
# WHERE 2
|
||||
# E = 1 - P ALFA
|
||||
# IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
|
||||
# 1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
|
||||
# 2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
|
||||
# 3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
|
||||
# THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
|
||||
# CALLING SEQUENCE: CALL
|
||||
# TFFRP/RA
|
||||
# PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
|
||||
# C(MPAC) UNSPECIFIED
|
||||
|
||||
# SUBROUTINES CALLED: NONE
|
||||
# NORMAL EXIT MODE: RVQ
|
||||
# IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
|
||||
# OTHERWISE, RAPO = POSMAX.
|
||||
# ALARMS: NONE
|
||||
# OUTPUT: STORED IN PUSH LIST AREA. SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
|
||||
# RPER E:(-29) M:(-27) M PERIGEE RADIUS DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
|
||||
# RAPO E:(-29) M:(-27) M APOGEE RADIUS WILL BE DESTROYED BY CALCTFF/CALCTPER
|
||||
# PUSHLOC AT PDL+0
|
||||
# ERASABLE INITIALIZATION REQUIRED:
|
||||
# TFFALFA E:(26-NR) M 1/SEMI MAJ AXIS LEFT BY TFFCONIC
|
||||
# M:(24-NR)
|
||||
# TFFNP E: (-38+2NR) M LC P, SEMI LATUS RECTUM LEFT BY TFFCONIC
|
||||
# M: (-36+2NR)
|
||||
# X1 -NR, NORM COUNT OF RMAG LEFT BY TFFCONIC
|
||||
# X2 -NA, NORM COUNT OF ALFA LEFT BY TFFCONIC
|
||||
# DEBRIS: QPRET, PDL+0 ... PDL+1
|
||||
|
||||
# Page 1379
|
||||
RAPO = 16D # APOGEE RADIUS M E:(-29) M:(-27)
|
||||
RPER = 14D # PERIGEE RADIUS M E:(-29) M:(-27)
|
||||
|
||||
TFFRP/RA DLOAD DMP
|
||||
TFFALFA # ALFA 1/M E:(26-NR) M:(24-NR)
|
||||
TFFNP # LC P M E:(-38+2NR) M:(-36+2NR)
|
||||
SR* DCOMP # ALFA P (-12+NR)
|
||||
0 -8D,1 # ALFA P (-4)
|
||||
DAD ABS # (DCOMP GIVES VALID TP RESULT FOR SQRT)
|
||||
# (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
|
||||
DP2(-4)
|
||||
SQRT DAD # E SQ = (1- P ALFA) (-4)
|
||||
TFF1/4
|
||||
PUSH BDDV # (1+E) (-2) TO PDL+0
|
||||
TFFNP # LCP M E:(-38+2NR) M:(-36+2NR)
|
||||
SR* SR* # (DOES SR THEN SL TO AVOID OVFL)
|
||||
0,1 # X1=-NR
|
||||
0 -7,1 # (EFFECTIVE SL)
|
||||
STODL RPER # PERIGEE RADIUS M E:(-29) M:(-27)
|
||||
# (1+E) (-2) FROM PDL+0
|
||||
DMP BOVB
|
||||
TFF1/ALF # E:(-22-2NA) M:(-20-2NA)
|
||||
TCDANZIG # CLEAR OVFIND, IF ON.
|
||||
BZE SL*
|
||||
MAXRA # SET POSMAX, IF ALFA=0
|
||||
0 -5,2 # -5+NA
|
||||
SL* BOV
|
||||
0,2
|
||||
MAXRA # SET POSMAX IF OVFL.
|
||||
BPL # CONTINUE WITH VALID RAPO.
|
||||
+3
|
||||
MAXRA DLOAD # RAPO CALC IS NOT VALID. SET RAPO =
|
||||
NEARONE # POSMAX AS A TAG.
|
||||
+3 STORE RAPO # APOGEE RADIUS M E:(-29) M:(-27)
|
||||
DUMPRPRA RVQ
|
||||
|
||||
# 30 W
|
||||
# Page 1380
|
||||
# SUBROUTINE NAME: CALCTPER / CALCTFF DATE: 01.29.67
|
||||
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL
|
||||
# MOD BY: RR BAIRNSFATHER
|
||||
# MOD NO: 1 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 67
|
||||
# MOD NO: 2 MOD BY: RR BAIRNSFATHER DATE: 14 APR 67
|
||||
# MOD BY: 3 MOD BY: RR BAIRNSFATHER DATE: 8 JUL 67 NEAR EARTH MUE AND NEG TFF (GONEPAST)
|
||||
# MOD BY: 4 MOD BY: RR BAIRNSFATHER DATE: 21 NOV 67 ADD VARIABLE MU.
|
||||
# MOD BY: 5 MOD BY: RR BAIRNSFATHER DATE: 21 MAR 68 ACCEPT DIFFERENT EARTH/MOON SCALES
|
||||
# FUNCTIONAL DESCRIPTION: PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
|
||||
# VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM , SUPPLIED BY THE USER. THE POSITION VECTOR
|
||||
# RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
|
||||
# THE EQUATIONS ARE
|
||||
|
||||
# Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP) (INBOUND SIDE)) LEQ +- LCE/SQRT(ALFA)
|
||||
# - -
|
||||
# Q1 = RN.VN / SQRT(MU) LEQ +- LCE/SQRT(ALFA)
|
||||
|
||||
# Z = NUM / DEN LEQ +- 1/SQRT(ALFA)
|
||||
|
||||
# WHERE, IF INBOUND
|
||||
# NUM = RTERM -RN LEQ +- 2 LCE/ALFA
|
||||
# DEN = Q2+Q1 LEQ +- 2 LCE/SQRT(ALFA)
|
||||
|
||||
# AND, IF OUTBOUND
|
||||
# NUM = Q2-Q1 LEQ +- 2 LCE/SQRT(ALFA)
|
||||
# DEN = 2 - ALFA (RTERM + RN) . LEQ +- 2 LCE
|
||||
|
||||
# IF ALFA ZZ < 1.0 (FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
|
||||
|
||||
# THEN X = ALFA Z Z
|
||||
# AND TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
|
||||
|
||||
# EXCEPT IF ALFA PNZ, AND IF TFF NEG,
|
||||
# THEN TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
|
||||
|
||||
# OR IF ALFA ZZ GEQ 1.0 (FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
|
||||
|
||||
# THEN X = 1/ALFA Z Z
|
||||
# AND TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
|
||||
|
||||
# WHERE T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
|
||||
# 2 3 2
|
||||
# 1/3 -X/5 +X /7 -X /9... (X < 1.0)
|
||||
|
||||
# CALLING SEQUENCE: TIME TO RTERM TIME TO PERIGEE
|
||||
# CALL CALL
|
||||
# CALCTFF CALCTPER
|
||||
# C(MPAC) = TERMNL RAD M C(MPAC) = PERIGEE RAD M
|
||||
# FOR EITHER, E: (-29) M: (-27)
|
||||
# FOR EITHER, PUSHLOC = PDL+0 , ARBITRARY IF LEQ 8D.
|
||||
# Page 1381
|
||||
#
|
||||
# SUBROUTINES CALLED: T(X), VIA RTB
|
||||
# NORMAL EXIT MODE: RVQ
|
||||
# HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC. USER MUST STORE.
|
||||
# A. TFF = FLIGHT TIME. NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
|
||||
# B. (THIS OPTION IS NO LONGER USED.)
|
||||
# C. TFF = POSMAX. THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
|
||||
# THE SPECIFIED ALTITUDE. ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
|
||||
# OUTPUT: C(MPAC) (-28) CS TIME OF FLIGHT, OR TIME TO PERIGEE
|
||||
# TFFX (0) X, LEFT FOR ENTRY DISPLAY TFF ROUTINES
|
||||
# NRTERM E: (-29+NR) M RTERM, WEIGHTED BY NR LEFT FOR ENTRY DISPLAY TFF ROUTINES
|
||||
# M: (-27+NR)
|
||||
# TFFTEM E: (-59+2NR) LCP Z Z SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
|
||||
# M: (-55+2NR) LCP /ALFA SGN(SDELF) LEFT FOR ENTRY DISPLAY TFF ROUTINES
|
||||
# NOTE: TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
|
||||
# RMAG1 E:(-29) M:(-27) PDL 12 NOT TOUCHED.
|
||||
# TFFQ1 E:(-16) M:(-15) PDL 14D
|
||||
# TFFDELQ E:(-16) M:(-15) PDL 10D
|
||||
# PUSHLOC AT PDL+0
|
||||
# ERASABLE INITIALIZATION REQUIRED:
|
||||
# RONE E:(-29) M:(-27) M STATE VECTOR LEFT BY USER
|
||||
# VONE' E:(+10) M:(+9) VN/SQRT(NU) LEFT BY TFF/CONIC
|
||||
# RMAG1 E:(-29) M:(-27) PRESENT RADIUS, M LEFT BY TFFCONIC
|
||||
# C(MPAC) E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH, M LEFT BY USER
|
||||
#
|
||||
# THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
|
||||
# TFF/RTMU E:(17) M:(14) 1/SQRT(MU) LEFT BY TFFCONIC.
|
||||
# NRMAG E: (-29+NR) M RMAG, NORMALIZED LEFT BY TFFCONIC
|
||||
# M: (-27+NR)
|
||||
# X1 -NR, NORM COUNT LEFT BY TFFCONIC
|
||||
# TFFNP E: (-38+2NR) M LCP, SEMI LATUS RECTUM, WEIGHT NR LEFT BY TFFCONIC
|
||||
# M: (-36+2NR)
|
||||
# TFFALFA E: (26-NR) 1/M ALFA, WEIGHT NR LEFT BY TFFCONIC
|
||||
# M: (24-NR)
|
||||
# TFFRTALF E:(10+NA) SQRT(ALFA), NORMALIZED LEFT BY TFFCONIC
|
||||
# M:(9+NA)
|
||||
# X2 -NA, NORM COUNT LEFT BY TFFCONIC
|
||||
# TFF1/ALF E:(-22-2NA) SIGNED SEMIMAJ AXIS, WEIGHTED BY NA LEFT BY TFFCONIC
|
||||
# M:(-20-2NA)
|
||||
# DEBRIS: QPRET, PDL+0 ... PDL+3
|
||||
# RTERM E:(-29) M:(-27) RTERM, TERMINAL RADIUS LENGTH
|
||||
# RAPO E:(-29) M:(-27) PDL 16D (=NRTERM)
|
||||
# RPER E:(-29) M:(-27) PDL 14D (=TFFQ1)
|
||||
|
||||
# Page 1382
|
||||
CALCTPER SETGO # ENTER WITH RPER IN MPAC
|
||||
TFFSW
|
||||
+3
|
||||
CALCTFF CLEAR # ENTER WITH RTERM IN MPAC
|
||||
TFFSW
|
||||
+3 STORE RTERM # E: (-29) M: (-27)
|
||||
SL*
|
||||
0,1 # X1=-NR
|
||||
STORE NRTERM # RTERM E: (-29+NR) M: (-27+NR)
|
||||
DMP BDSU
|
||||
TFFALFA # ALFA E:(26-NR) M:(24-NR)
|
||||
TFF1/4
|
||||
PUSH DMP # (2-ALFA RTERM) (-3) TO PDL+0
|
||||
NRTERM # E: (-29+NR) M: (-27+NR)
|
||||
PDDL SR* # RTERM(2-ALFA RTERM) TO PDL+2
|
||||
# E: (-32+NR) M: (-30+NR)
|
||||
TFFNP # LC P E:(-38+2NR) M:(-36+2NR)
|
||||
0 -6,1 # X1 = -NR
|
||||
DCOMP DAD # DUE TO SHIFTS, KEEP PRECISION FOR SQRT
|
||||
# RTERM(2-ALFA RTERM) FROM PDL+2
|
||||
# E: (-32+NR) M: (-30+NR)
|
||||
SR* # LEAVE E: (-32) M: (-30)
|
||||
0,1 # X1 = -NR
|
||||
BOFF DLOAD # CHECK TFF / TPER SWITCH
|
||||
TFFSW
|
||||
+2 # IF TFF, CONTINUE
|
||||
TFFZEROS # IF TPER, SET Q2 = 0
|
||||
+2 BMN SQRT # E: (-16) M: (-15)
|
||||
|
||||
MAXTFF1 # NO FREE FALL CONIC TO RTERM FROM HERE
|
||||
# RESET PDL, SET TFF=POSMAX, AND EXIT.
|
||||
|
||||
DCOMP BOVB # RT IS ON INBOUND SIDE. ASSURE OVFIND=0
|
||||
TCDANZIG # ANY PORT IN A STORM.
|
||||
STOVL TFFTEM # Q2 E: (-16) M: (-15)
|
||||
VONE' # VN/SQRT(MU) E: (10) M: (9)
|
||||
DOT SL3
|
||||
RONE # SAVED RN. E: (-29) M: (-27)
|
||||
STORE TFFQ1 # Q1, SAVE FOR GONEPAST TEST.
|
||||
# E: (-16) M: (-15)
|
||||
BMN BDSU
|
||||
INBOUND # USE ALTERNATE Z
|
||||
TFFTEM # Q2 E: (-16) M: (-15)
|
||||
|
||||
# OUTBOUND Z CALC CONTINUES HERE
|
||||
|
||||
STODL TFFX # NUM=Q2-Q1 E: (-16) M: (-15)
|
||||
TFFALFA # ALFA E: (26-NR) M: (24-NR)
|
||||
DMP BDSU
|
||||
# Page 1383
|
||||
NRMAG # RMAG E: (-29+NR) M: (-27+NR)
|
||||
# (2-RTERM ALFA) (-3) FROM PDL+0
|
||||
SAVEDEN PUSH ABS # DEN TO PDL+0 E: (-3) OR (-16)
|
||||
# M: (-3) OR (-15)
|
||||
DAD BOV # INDETERMINANCY TEST
|
||||
LIM(-22) # =1.0-B(-22)
|
||||
TFFXTEST # GO IF DEN >/= B(-22)
|
||||
DLOAD PDDL # SET DEN=0 OTHERWISE
|
||||
TFFZEROS
|
||||
# XCH ZERO WITH PDL+0
|
||||
DLOAD DCOMP
|
||||
TFFALFA # ALFA E: (26-NR) M:( 24-NR)
|
||||
BMN DLOAD # FOR TPER: Z INDET AT DELE/2=0 AND 90.
|
||||
TFFEL1 # ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
|
||||
|
||||
# Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
|
||||
DUMPTFF1 RVQ # RETURN TFF =0
|
||||
|
||||
# INBOUND Z CALC CONTINUES HERE
|
||||
INBOUND DLOAD # RESET PDL+0
|
||||
DLOAD DSU # ALTERNATE Z CALC
|
||||
RTERM # E: (-29) M: (-27)
|
||||
RMAG1 # E: (-29) M: (-27)
|
||||
STODL TFFX # NUM=RTERM-RN E: (-29) M: (-27)
|
||||
TFFTEM # Q2 E: (-16) M: (-15)
|
||||
DAD GOTO
|
||||
TFFQ1 # Q1 E: (-16) M: (-15)
|
||||
SAVEDEN # DEN = Q2+Q1 E: (-16) M: (-15)
|
||||
|
||||
TFFXTEST DAD PDDL # (ABS(DEN) TO PDL+2)) E: (-3) OR (-16)
|
||||
# M: (-3) OR (-15)
|
||||
DP(-22) # RESTORE ABS(DEN) TO MPAC
|
||||
TFFX # NUM E:(-16) OR (-29) M:(-15) OR (-27)
|
||||
DMP SR*
|
||||
TFFRTALF # SQRT(ALFA) E:(10+NA) M:(9+NA)
|
||||
0 -3,2 # X2=-NA
|
||||
DDV # C(MPAC) =NUM SQRT(ALFA) E:(-3) OR (-16)
|
||||
# M:(-3) OR (-15)
|
||||
# ABS(DEN) FROM PDL+2 E:(-3) OR (-16)
|
||||
# M:(-3) OR (-15)
|
||||
DLOAD BOV # (THE DLOAD IS SHARED WITH TFFELL)
|
||||
TFFX # NUM E: (-16) OR (-29) M:(-15) OR (-27)
|
||||
TFFELL # USE EQN FOR DELE GEQ 90, LEQ -90
|
||||
|
||||
# OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
|
||||
|
||||
DDV STADR
|
||||
# DEN FROM PDL+0 E: (-3) OR (-16)
|
||||
# M: (-3) OR (-15)
|
||||
STORE TFFTEM # Z SAVE FOR SIGN OF SDELF.
|
||||
# Page 1384
|
||||
# E: (-13) M: (-12)
|
||||
PUSH DSQ # Z TO PDL+0
|
||||
PUSH DMP # Z SQ TO PDL+2 E: (-26) M: (-24)
|
||||
TFFNP # LC P E: (-38+2NR) M: (-36+2NR)
|
||||
SL SIGN
|
||||
5
|
||||
TFFTEM # AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
|
||||
STODL TFFTEM # P ZSQ E: (-59+2NR) M: (-55+2NR)
|
||||
# (ARG IS USED IN TFF/TRIG)
|
||||
# ZSQ FROM PDL+2 E: (-26) M: (-24)
|
||||
PUSH DMP # RESTORE PUSH LOC
|
||||
TFFALFA # ALFA E: (26-NR) M: (24-NR)
|
||||
SL*
|
||||
0,1 # X1=-NR
|
||||
STORE TFFX # X
|
||||
RTB DMP
|
||||
T(X) # POLY
|
||||
# ZSQ FROM PDL+2 E: (-26) M: (-24)
|
||||
SR2 BDSU # 2 ZSQ T(X) E: (-29) M: (-27)
|
||||
RTERM # RTERM E: (-29) M: (-27)
|
||||
DAD DMP
|
||||
RMAG1 # E: (-29) M: (-27)
|
||||
# Z FROM PDL+0 E: (-13) M: (-12)
|
||||
SR3 BPL # TFF SQRT(MU) E: (-45) M: (-42)
|
||||
ENDTFF # (NO PUSH UP)
|
||||
PUSH SIGN # TFF SQRT(MU) TO PDL+0
|
||||
TFFQ1 # Q1 FOR GONEPAST TEST
|
||||
BPL DLOAD # GONE PAST ?
|
||||
NEGTFF # YES. TFF < 0 .
|
||||
TFF1/ALF # 1/ALFA E: (-22-2NA) M: (-20-2NA)
|
||||
DCOMP BPL # ALFA > 0 ?
|
||||
NEGTFF # NO. TFF IS NEGATIVE.
|
||||
|
||||
# CORRECT FOR ORBITAL PERIOD.
|
||||
|
||||
DCOMP # YES. CORRECT FOR ORB PERIOD.
|
||||
DMP DDV
|
||||
PI/16 # 2 PI (-5)
|
||||
TFFRTALF # SQRT(ALFA) E: (10+NA) M: (9+NA)
|
||||
SL* SL*
|
||||
0 -4,2 # X2=-NA
|
||||
0 -4,2
|
||||
SL* DAD
|
||||
0,2
|
||||
# TFF SQRT(MU) FROM PDL+0 E:(-45) M:(-42)
|
||||
ENDTFF DMP BOV # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
|
||||
TFF/RTMU # E: (17) M: (14)
|
||||
MAXTFF # SET POSMAX IN OVFL.
|
||||
|
||||
DUMPTFF2 RVQ # RETURN TFF (-28) CS IN MPAC.
|
||||
|
||||
# Page 1385
|
||||
NEGTFF DLOAD
|
||||
# TFF SQRT(MU) FROM PDL+0, NEGATIVE.
|
||||
GOTO
|
||||
ENDTFF
|
||||
|
||||
MAXTFF1 DLOAD # RESET PDL
|
||||
MAXTFF DLOAD RVQ
|
||||
NEARONE
|
||||
|
||||
# TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
|
||||
|
||||
# NUM FROM TFFX. E: (-16) OR (-29)
|
||||
# M: (-15) OR (-27)
|
||||
TFFELL SL2 # NUM E:(-14) OR (-27) M:(-13) OR (-25)
|
||||
BDDV PUSH # TEMP SAVE D/N IN PDL+0
|
||||
# DEN FROM PDL+0 E:(-3)/( 16) M:(-3)/(-15)
|
||||
# N/D TO PDL+0 E: (11) M: (10)
|
||||
TFFEL1 DLOAD DSU # (ENTER WITH D/N=0 IN PDL+0)
|
||||
TFFTEM # Q2 E: (-16) M: (-15)
|
||||
TFFQ1 # Q1 E: (-16) M: (-15)
|
||||
STODL TFFDELQ # Q2-Q1 E: (-16) M: (-15)
|
||||
# D/N FROM PDL+0
|
||||
STADR
|
||||
STORE TFFTEM # D/N E: (11) M: (10)
|
||||
DMP SL*
|
||||
TFF1/ALF # 1/ALFA E: (-22-2NA) M: (-20-2NA)
|
||||
0,2 # 1/ALFA Z E: (-11-NA) M: (-10-NA)
|
||||
PUSH DMP # TO PDL+0
|
||||
TFFTEM # 1/Z E: (11) M: (10)
|
||||
SL* BOVB
|
||||
0,2 # X2= -NA
|
||||
SIGNMPAC # IN CASE X= 1.0, CONTINUE
|
||||
STORE TFFX # X=1/ALFA ZSQ
|
||||
RTB DMP
|
||||
T(X) # POLY
|
||||
TFFX
|
||||
SR3 DSU
|
||||
DP2(-3)
|
||||
DMP PUSH # 2(X T(X)-1) /Z ALFA E:(-15-NA)
|
||||
# M:(-14-NA)
|
||||
# 1/ALFA Z FROM PDL+0 E:(-11-NA)
|
||||
# M:(-10-NA)
|
||||
DLOAD DMP # GET SIGN FOR SDELF
|
||||
TFFTEM # 1/Z E: (11) M: (10)
|
||||
RMAG1 # E: (-29) M: (-27)
|
||||
SL2 DAD
|
||||
TFFQ1 # Q1 E: (-16) M: (-15)
|
||||
STODL TFFTEM # (Q1+R 1/Z) =SGN OF SDELF E:(-16) M:(-15
|
||||
TFFNP # LC P E: (-38+2NR) M: (-36+2NR)
|
||||
DMP SL* # CALC FOR ARG FOR TFF/TRIG.
|
||||
# Page 1386
|
||||
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
|
||||
1,2 # X2=-NA
|
||||
SIGN SL*
|
||||
TFFTEM # AFFIX SIGN FOR SDELF
|
||||
0,2
|
||||
STODL TFFTEM # P/ALFA E:(-59+2NR) M:(-55+2NR)
|
||||
# (ARG FOR USE IN TFF/TRIG)
|
||||
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
|
||||
SQRT DMP
|
||||
PI/16 # PI (-4)
|
||||
DAD
|
||||
# 2(XT(X)-1)/Z ALFA FROM PDL E:(-15-NA)
|
||||
# M:(-14-NA)
|
||||
SL* DSU
|
||||
0 -1,2
|
||||
TFFDELQ # Q2-Q1 E: (-16) M: (-15)
|
||||
DMP SL*
|
||||
TFF1/ALF # 1/ALFA E:(-22-2NA) M:(-20-2NA)
|
||||
0 -3,2
|
||||
SL* GOTO
|
||||
0 -4,2
|
||||
ENDTFF # TFF SQRT(MU) IN MPAC E:(-45) M:(-42)
|
||||
|
||||
# Page 1387
|
||||
# PROGRAM NAME: T(X) DATE: 01.17.67
|
||||
# MOD NO: 0 LOG SECTION: TIME OF FREE FALL
|
||||
# MOD BY: RR BAIRNSFATHER
|
||||
# FUNCTIONAL DESCRIPTION: THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
|
||||
# CALCTPER TO APPROXIMATE THE SERIES
|
||||
# 2 3
|
||||
# 1/3 -X/5 +X /7 -X /9 ...
|
||||
|
||||
# WHERE X = ALFA Z Z IF ALFA Z Z LEQ 1
|
||||
# X = 1/(ALFA Z Z ) IF ALFA Z Z G 1
|
||||
|
||||
# ALSO X IS NEG FOR HYPERBOLIC ORBITS
|
||||
# X = 0 FOR PARABOLIC ORBITS
|
||||
# X IS POSITIVE FOR ELLIPTIC ORBITS
|
||||
# FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
|
||||
# DEVIATION FROM THE SERIES OF 2 E-5 (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
|
||||
# MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1). )
|
||||
# CALLING SEQUENCE: RTB
|
||||
# T(X)
|
||||
# C(MPAC) = X
|
||||
|
||||
# SUBROUTINE CALLED: NONE
|
||||
# NORMAL EXIT MODE: TC DANZIG
|
||||
# ALARMS: NONE
|
||||
# OUTPUT: C(MPAC) = T(X)
|
||||
# ERASABLE INITIALIZATION REQUIRED:
|
||||
# C(MPAC) = X
|
||||
# DEBRIS: NONE
|
||||
|
||||
T(X) TC POLY
|
||||
DEC 4 # N-1
|
||||
2DEC 3.333333333 E-1
|
||||
2DEC* -1.999819135 E-1*
|
||||
2DEC* 1.418148467 E-1*
|
||||
2DEC* -1.01310997 E-1*
|
||||
2DEC* 5.609004986 E-2*
|
||||
2DEC* -1.536156925 E-2*
|
||||
|
||||
ENDT(X) TC DANZIG
|
||||
|
||||
TCDANZIG = ENDT(X)
|
||||
|
||||
# Page 1388
|
||||
# TFF CONSTANTS
|
||||
BANK 32
|
||||
|
||||
SETLOC TOF-FF1
|
||||
BANK
|
||||
|
||||
# # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
|
||||
|
||||
#MUE = 3.990 815 471 E10 # M CUBE/CS SQ
|
||||
#RTMUE = 1.997702549 E5 B-18* # MODIFIED EARTH MU
|
||||
|
||||
1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
|
||||
|
||||
# # NOTE _ NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
|
||||
|
||||
#MUM = 4.902 778 E8 # M CUBE /CS SQ
|
||||
|
||||
#RTMUM 2DEC* 2.21422176 E4 B-18*
|
||||
PI/16 2DEC 3.141592653 B-4
|
||||
LIM(-22) 2OCT 3777737700 # 1.0 -B(-22)
|
||||
DP(-22) 2OCT 0000000100 # B(-22)
|
||||
DP2(-3) 2DEC 1 B-3
|
||||
DP2(-4) 2DEC 1 B-4 # 1/16
|
||||
|
||||
# RPAD1 2DEC 6373338 B-29 # M (-29) =20 909 901.57 FT
|
||||
RPAD1 = RPAD
|
||||
R300K 2DEC 6464778 B-29 # (-29) M
|
||||
NEARONE 2DEC .999999999
|
||||
TFFZEROS EQUALS HI6ZEROS
|
||||
TFF1/4 EQUALS HIDP1/4
|
552
Comanche055/TPI_SEARCH.agc
Normal file
552
Comanche055/TPI_SEARCH.agc
Normal file
@ -0,0 +1,552 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TPI_SEARCH.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: 551-561
|
||||
# Mod history: 2009-05-15 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images.
|
||||
# 2009-05-20 RSB Corrections: On p. 551, "SETLOC P17S" -> P17S1.
|
||||
#
|
||||
# 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 551
|
||||
# TPI SEARCH
|
||||
|
||||
# PROGRAM DESCRIPTION S17.1 AND S17.2
|
||||
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
|
||||
# THE TPI SEARCH ROUTINE DETERMINES THE MINIMUM TOTAL VELOCITY TRANSFER TRAJECTORY FROM A GIVEN TPI
|
||||
# MANEUVER TIME WITHIN THE CONSTRAINT OF A SAFE PERICENTER. THIS VELOCITY IS THE SUM OF THE IMPULSIVE VELOCITIES
|
||||
# FOR THE TPI AND TPF MANEUVERS.
|
||||
# THE S17.1 ROUTINE EXTRAPOLATES THE STATE VECTORS OF BOTH VEHICLES TO THE TPI TIME AND COMPUTES THE
|
||||
# RELATIVE PHASE ANGLE BETWEEN THE VEHICLES, THE ALTITUDE DIFFERENCE(I.E. THE MAGNITUDE DIFFERENCE OF THE
|
||||
# POSITION VECTORS) AND SELECTS A SEARCH SECTOR BASED ON THE SIGN OF THE ALTITUDE DIFFERENCE.
|
||||
# THE S17.2 ROUTINE FURTHER DEFINES THE SEARCH SECTOR BY COMPUTING ANGULAR LIMITS AND USES THE TIME THETA
|
||||
# SUBROUTINE TO COMPUTE THE SEARCH START AND END TIMES. THE SEARCH IS THEN MADE IN AN ITERATIVE LOOP USING THE
|
||||
# LAMBERT SUBROUTINE TO COMPUTE THE VELOCITIES REQUIRED AT TPI TIME AND AT TPF TIME. EXIT FROM THE SEARCH LOOP
|
||||
# IS MADE WHEN SOLUTION CRITERIA ARE MET (NORMAL EXIT) OR AS SOON AS IT IS EVIDENT THAT NO SOLUTION EXISTS IN
|
||||
# THE SECTOR SEARCHED.
|
||||
|
||||
# CALLING SEQUENCE
|
||||
|
||||
# BOTH ROUTINES ARE CALLED IN INTERPRETIVE CODE AND RETURN VIA QPRET. S17.1 HAS ONLY A NORMAL EXIT.
|
||||
# S17.2 RETURNS VIA QPRET FOR NORMAL EXIT AND TO ALARUMS FOR ERROR EXIT.
|
||||
# SUBROUTINES CALLED
|
||||
#
|
||||
# CSMCONIC
|
||||
# LEMCONIC
|
||||
# TIMETHET
|
||||
# INITVEL
|
||||
|
||||
BANK 36
|
||||
SETLOC P17S1
|
||||
BANK
|
||||
|
||||
COUNT 36/TPI
|
||||
|
||||
EBANK= RACT3
|
||||
|
||||
# **** TEMPORARY ****
|
||||
|
||||
HPE 2DEC 157420.0 B-29 # EARTH'S MIN. PERICENTER ALTITUDE 85 N.M.
|
||||
|
||||
HPL 2DEC 10668.0213 B-29 # MOON:S MIN. PERICENTER ALTITUDE 35000FT
|
||||
|
||||
CDSEC 2DEC 40000
|
||||
|
||||
CLSEC 2DEC 15000
|
||||
|
||||
PIINVERS 2DEC .3183098862
|
||||
|
||||
SEC1THET 2DEC .1944444444
|
||||
|
||||
# Page 552
|
||||
SEC2THET 2DEC .9166666667
|
||||
|
||||
MANYFEET 2DEC -1.0 B-2
|
||||
|
||||
LIMVEL 2DEC .6096 E-2 B-7 # 2FPS
|
||||
|
||||
DFTMOON 2DEC .1524 E3 B-29 # 500 FEET
|
||||
|
||||
DP-.002 2DEC 0.002
|
||||
|
||||
SETLOC P17S
|
||||
BANK
|
||||
S17.1 STQ DLOAD
|
||||
NORMEX
|
||||
TTPI
|
||||
STCALL TDEC1 # ADVANCE PASSIVE VEHICLE TO TPI
|
||||
LEMCONIC
|
||||
CALL
|
||||
LEMSTORE
|
||||
DLOAD
|
||||
TTPI
|
||||
STCALL TDEC1 # ADVANCE ACTIVE VEHICLE TO TPI
|
||||
CSMCONIC
|
||||
CALL
|
||||
CSMSTORE
|
||||
VLOAD
|
||||
RACT3
|
||||
ABVAL PDVL # /RA/ 0D PL 2D
|
||||
RPASS3
|
||||
UNIT PDDL # UNIT RP 0D PL 6D
|
||||
BDSU SET
|
||||
36D # /RP/ -/RA/
|
||||
KFLAG # OFF = +
|
||||
BMN CLEAR
|
||||
+2
|
||||
KFLAG # ON = -
|
||||
STOVL DELHITE
|
||||
0D
|
||||
VXV UNIT
|
||||
VPASS3
|
||||
STOVL E2 # ALMOST IT SAVE FOR 17.2
|
||||
RACT3
|
||||
PUSH VPROJ
|
||||
E2
|
||||
VSL2 BVSU # RPA
|
||||
UNIT DOT
|
||||
0D
|
||||
SL1 ACOS
|
||||
PDVL
|
||||
VXV DOT
|
||||
# Page 553
|
||||
RACT3
|
||||
E2
|
||||
PDDL SIGN
|
||||
STADR
|
||||
STODL THETZERO # CENTRAL ANGLE
|
||||
X1
|
||||
STCALL XRS # SAVE INDICES FOR FURTHER USE
|
||||
NORMEX # += ACTIVE AHEAD -= ACTIVE BEHIND
|
||||
S17.2 STQ VLOAD # COMPUTE SEARCH SECTOR LIMITS
|
||||
QTEMP
|
||||
RACT3
|
||||
UNIT DOT
|
||||
E2
|
||||
ABS SQRT
|
||||
SL1 DAD
|
||||
DP-.002 # ADD .002 RADIANS TO IT
|
||||
BON DCOMP # GIVES CORRECT SINE, COSINE MUST BE
|
||||
KFLAG # COMP. ADD .5 FOR ANGLE
|
||||
+1
|
||||
# PHI(0)=180-(-(THETAZERO +K5IT)), PHI(I)=180-(-THETAZERO+K2IT))
|
||||
# SIN(180-ALPHA)=SIN(ALPHA) ETC
|
||||
DMP SETPD
|
||||
PIINVERS # REVOLUTIONARY HERES TWO IT
|
||||
0D
|
||||
PUSH DSU
|
||||
THETZERO
|
||||
STORE IT # PHI(I) , -(THETZERO + K2IT)
|
||||
PDDL PUSH
|
||||
SR1 DAD
|
||||
DAD PUSH # PHI(0) , -(THETZERO + K5IT)
|
||||
SIN SET
|
||||
RVSW
|
||||
STODL SNTH
|
||||
COS BMN
|
||||
+2
|
||||
DCOMP
|
||||
STODL CSTH
|
||||
XRS
|
||||
STOVL X1
|
||||
RPASS3
|
||||
VSR*
|
||||
0,2
|
||||
STOVL RVEC
|
||||
VPASS3
|
||||
VSR*
|
||||
0,2
|
||||
STCALL VVEC
|
||||
TIMETHET
|
||||
DLOAD # SAVE START TIME AND GET END TIME
|
||||
T
|
||||
# Page 554
|
||||
STORE TF
|
||||
STODL TFO
|
||||
IT
|
||||
PUSH SIN
|
||||
STODL SNTH
|
||||
COS BMN
|
||||
+2
|
||||
DCOMP
|
||||
STORE CSTH
|
||||
LXA,1 CALL
|
||||
XRS
|
||||
TIMETHET
|
||||
# INITIALIZE LOOP
|
||||
DLOAD CLEAR
|
||||
T
|
||||
ITSWICH
|
||||
STODL TFI # SAVE TIME FOR LOOP TEST
|
||||
DPPOSMAX
|
||||
STODL DELVEE
|
||||
MANYFEET
|
||||
STODL HP
|
||||
SEC1THET # 70 DEGREES
|
||||
BON DLOAD
|
||||
KFLAG
|
||||
+2
|
||||
SEC2THET # 330 DEGREES
|
||||
STCALL THETL
|
||||
CONCAUL
|
||||
BIS DLOAD SR1
|
||||
CSTH
|
||||
STODL COSTH
|
||||
SNTH
|
||||
SR1
|
||||
STCALL SINTH # GET 4 QUADRANT THETA
|
||||
ARCTRIG
|
||||
BPL DAD
|
||||
+2
|
||||
DPPOSMAX # PUT THETA BETWEEN 0,1
|
||||
BDSU PDDL
|
||||
THETL
|
||||
TF
|
||||
DSU SIGN # FAST TIMES
|
||||
TFI
|
||||
BMN
|
||||
RNGETEST # TIME MUST HAVE A STOP
|
||||
# ADVANCE PASSIVE FOR TARGET VECTOR
|
||||
CONCAUL DLOAD
|
||||
TTPI
|
||||
DAD BON
|
||||
TF
|
||||
# Page 555
|
||||
AVFLAG
|
||||
ADVCSM
|
||||
STCALL TDEC1
|
||||
LEMCONIC
|
||||
GOTO
|
||||
JUNCT3
|
||||
ADVCSM STCALL TDEC1
|
||||
CSMCONIC
|
||||
# SAVE BACK VALUES OF HP AND DELVEE
|
||||
JUNCT3 VLOAD
|
||||
VATT
|
||||
STOVL VPASS4
|
||||
RATT
|
||||
STORE RPASS4
|
||||
STODL RTARG
|
||||
TF
|
||||
STODL DELLT4
|
||||
HP
|
||||
STODL HPO
|
||||
DELVEE
|
||||
STODL DELVEO
|
||||
# PREPARE FOR LAMBERT
|
||||
TTPI
|
||||
STODL INTIME
|
||||
XRS
|
||||
STODL RTX1
|
||||
HI6ZEROS
|
||||
SETPD PDDL
|
||||
0D
|
||||
EPSFOUR
|
||||
PDVL
|
||||
RACT3
|
||||
STOVL RINIT
|
||||
VACT3
|
||||
STCALL VINIT
|
||||
INITVEL
|
||||
# COMPUTE H ET CETERA
|
||||
VLOAD VSU
|
||||
VTPRIME
|
||||
VPASS4
|
||||
ABVAL PUSH
|
||||
STOVL RELDELV # /V2-VP(TPI+TF)/
|
||||
DELVEET3 # V1-VA
|
||||
ABVAL # /V1-VA/
|
||||
STORE MAGVTPI
|
||||
DAD STADR
|
||||
STODL DELVEE
|
||||
XRS
|
||||
STOVL X1
|
||||
VIPRIME
|
||||
# Page 556
|
||||
VSR*
|
||||
0,2
|
||||
STOVL VVEC
|
||||
RACT3
|
||||
VSR*
|
||||
0,2
|
||||
STCALL RVEC
|
||||
PERIAPO
|
||||
LXA,2 DLOAD
|
||||
XRS +1
|
||||
SL*
|
||||
0,2
|
||||
STORE HP
|
||||
# ITSWICH DENOTES INTERPOLATION--SOLUTION ACCEPTANCE IS FORCED
|
||||
BON DLOAD
|
||||
ITSWICH
|
||||
ENDEN
|
||||
HPERMIN
|
||||
DSU BMN
|
||||
HP
|
||||
HALFSAFE
|
||||
PDDL DSU # WAS PERICENTER ALT SAFE
|
||||
HPERMIN
|
||||
HPO
|
||||
BMN DSU # (HPLIM-HPO)-(HPLIM-HP)=HP-HPO
|
||||
INTERP # SOLUTION AT HAND
|
||||
BMN DLOAD
|
||||
ALARUMS # IT'S GETTING WORSE - SOUND THE ALARM
|
||||
CDSEC
|
||||
JUNCT1 BOFF DCOMP # OFF IS PLUS ON IS MINUS
|
||||
KFLAG
|
||||
+1
|
||||
STORE DELTEE
|
||||
JUNCT2 DLOAD DAD
|
||||
DELTEE
|
||||
TF
|
||||
STCALL TF
|
||||
BIS # RECYCLE
|
||||
INTERP SET DSU # HP-HPO
|
||||
ITSWICH
|
||||
NORM PDDL
|
||||
X1
|
||||
DFTMOON
|
||||
DAD DSU
|
||||
HPERMIN
|
||||
HP
|
||||
NORM SR1
|
||||
X2
|
||||
XSU,2 DDV
|
||||
X1
|
||||
# Page 557
|
||||
DMP SR*
|
||||
DELTEE
|
||||
0 -1,2
|
||||
STCALL DELTEE
|
||||
JUNCT2
|
||||
HALFSAFE PDDL DSU # SAVE HP-HPLIM FOR POSSIBLE
|
||||
DELVEE
|
||||
DELVEO # SAVE THIS TOO
|
||||
PUSH ABS
|
||||
DSU BMN
|
||||
LIMVEL # 2 FT PS
|
||||
ENDEN
|
||||
DLOAD DSU
|
||||
HPERMIN
|
||||
HPO
|
||||
PDDL
|
||||
BMN DLOAD
|
||||
LRGRDVO
|
||||
BPL DLOAD
|
||||
INTERP
|
||||
DELTEE
|
||||
SR1 DCOMP
|
||||
STCALL DELTEE
|
||||
JUNCT2
|
||||
LRGRDVO DLOAD
|
||||
BMN DLOAD
|
||||
JUNCT2
|
||||
CLSEC
|
||||
GOTO
|
||||
JUNCT1
|
||||
# TIME RAN OUT ASSUME SOLUTION IF SAVE PERICENTER
|
||||
RNGETEST DLOAD DSU
|
||||
HP
|
||||
HPERMIN
|
||||
BMN DLOAD
|
||||
ALARUMS
|
||||
TF
|
||||
DSU
|
||||
DELTEE
|
||||
STORE TF # TIME OF SOLUTION
|
||||
ENDEN VLOAD
|
||||
VTPRIME
|
||||
DOT PDDL # SG2 WITH MAGNITUDE
|
||||
RPASS4
|
||||
RELDELV
|
||||
SIGN STADR # NOW SIGN(RELDELV)=SIGN(SG2)
|
||||
STCALL RELDELV
|
||||
TRANSANG # COMPUTE OMEGA T , CENTRAL ANGLE
|
||||
VLOAD DOT
|
||||
RACT3
|
||||
# Page 558
|
||||
VIPRIME # SG1
|
||||
SIGN BPL # IF POSITIVE THEN SG1 = SG2 OTHERWISE
|
||||
RELDELV
|
||||
USEKAY # SIGN(SG2-SG1)=SIGN(SG2)=SIGN(RELDELV)
|
||||
SLOAD DCOMP
|
||||
DECTWO
|
||||
SIGN BPL
|
||||
RELDELV
|
||||
NEXUS
|
||||
DCOMP GOTO
|
||||
USEKAY +4
|
||||
USEKAY SLOAD BON
|
||||
DECTWO
|
||||
KFLAG
|
||||
NEXUS
|
||||
DSU
|
||||
P21ONENN
|
||||
NEXUS STODL NN1
|
||||
HP
|
||||
STCALL POSTTPI
|
||||
QTEMP
|
||||
BANK 07
|
||||
SETLOC XANG
|
||||
BANK
|
||||
COUNT 07/XANG
|
||||
|
||||
# CENTRAL ANGLE SUBROUTINE
|
||||
# THIS SUBROUTINE COMPUTES THE CENTRAL ANGLE OF TRAVEL OF THE
|
||||
# PASSIVE VEHICLE DURING THE TRANSFER.
|
||||
|
||||
TRANSANG STQ SETPD
|
||||
SUBEXIT
|
||||
0
|
||||
LXA,1 LXA,2
|
||||
XRS
|
||||
XRS +1
|
||||
VLOAD VSR*
|
||||
VPASS4
|
||||
0,2
|
||||
STODL* VVEC
|
||||
MUTABLE +2,1
|
||||
PDVL VSR* # SQRT MU (+18 OR +15) 00D
|
||||
RPASS4
|
||||
0,2
|
||||
ABVAL PDDL* # MAGNITUDE OF R (+29 OR +27) 02D
|
||||
MUTABLE,1
|
||||
PDVL VSQ # 1/MU (+34 OR +28) 04D
|
||||
VVEC
|
||||
NORM DMPR # PUSH LIST AT 02D
|
||||
X1
|
||||
# Page 559
|
||||
DMP SRR*
|
||||
02D
|
||||
0 -3,1
|
||||
BDSU # R V**/MU (+6)
|
||||
D1/32
|
||||
NORM PDDL
|
||||
X1 # (2 - R V**/MU) (+6-N)
|
||||
SR1R DDV # MAGNITUDE OF R (+30 OR +28)
|
||||
SL* PUSH # R/(2 - R V**/MU) (+29 OR +27)02D
|
||||
0 -5,1
|
||||
SR1 SQRT
|
||||
DMP
|
||||
NORM PDDL # ASUBP*** 00D
|
||||
X1
|
||||
SR1 DDV
|
||||
DMP SL*
|
||||
TF
|
||||
0,1
|
||||
PDDL NORM
|
||||
2PISC
|
||||
X1
|
||||
PDDL DDV
|
||||
SL*
|
||||
0 -3,1 # CENTANG = (SQRT(MU/ASUP***)TF)
|
||||
STCALL CENTANG # IN REVOLUTIONS B-0
|
||||
SUBEXIT
|
||||
BANK 35
|
||||
SETLOC P17S1
|
||||
BANK
|
||||
COUNT 35/P17
|
||||
|
||||
# TPI SEARCH DISPLAY ROUTNE
|
||||
|
||||
P17 TC AVFLAGA # AVFLAG = CSM , SET TRACK + UPDATE FLAGS
|
||||
TC P17.1
|
||||
P77 TC AVFLAGP # AVFLAG = LEM , SET TRACK + UPDATE FLAGS
|
||||
P17.1 TC P20FLGON # SET UPDATE FLAG
|
||||
CAF V06N37 # DISPLAY TTPI TIME
|
||||
TC VNPOOH
|
||||
TC INTPRET
|
||||
CLEAR CALL
|
||||
UPDATFLG
|
||||
S17.1 # UPDATE STATE VECTORS TO TTPI
|
||||
SET AXT,1
|
||||
UPDATFLG
|
||||
DEC 2 # DELTA H = 2 K POSITIVE , KFLAG OFF
|
||||
BOFF AXT,1
|
||||
KFLAG
|
||||
+2
|
||||
DEC 1 # DELTA H = 1 K NEGATIVE , KFLAG ON
|
||||
# Page 560
|
||||
SXA,1 EXIT
|
||||
OPTION2
|
||||
CAF V06N72 # DISPLAY PHI , DELTA H , SEARCH OPTION K
|
||||
TC VNCOMP17
|
||||
TC INTPRET
|
||||
CLEAR SET
|
||||
UPDATFLG
|
||||
KFLAG
|
||||
SLOAD DSU
|
||||
OPTION2 # RESET KFLAG ON FOR OPTION =1
|
||||
P21ONENN # OFF FOR OPTION =2
|
||||
BHIZ CLEAR
|
||||
+2
|
||||
KFLAG
|
||||
SLOAD BHIZ
|
||||
XRS +1
|
||||
+4
|
||||
DLOAD GOTO
|
||||
HPL
|
||||
P17.2
|
||||
DLOAD
|
||||
HPE
|
||||
P17.2 STCALL HPERMIN
|
||||
S17.2
|
||||
SET EXIT
|
||||
UPDATFLG
|
||||
P17.3 CAF V06N58 # DISPLAY DELTA VTPI , DELTA VTPF , AND H
|
||||
TC VNCOMP17
|
||||
CAF V06N55 # DISPLAY PERICENTER CODE AND CENTRAL ANG.
|
||||
TC BANKCALL
|
||||
CADR GOFLASHR
|
||||
TC GOTOPOOH # TERMINATE PROGRAM
|
||||
TC GOTOPOOH # END PROGRAM
|
||||
TC P17.1 # RECYCLE WITH NEW TTPI OR SEARCH OPTION
|
||||
CAF TWO # BLANK R2
|
||||
TC BLANKET
|
||||
TCF ENDOFJOB
|
||||
EBANK= RTRN
|
||||
|
||||
VNCOMP17 EXTEND
|
||||
QXCH QSAVED
|
||||
TS VERBNOUN
|
||||
CA VERBNOUN
|
||||
TCR BANKCALL
|
||||
CADR GOFLASH
|
||||
TC -3 # TERMINATE ILLEGAL REDISPLAY
|
||||
TC QSAVED # PROCEED
|
||||
CS MPAC # RECYCLE WITH NEW TPI TIME
|
||||
AD BIT6 # OR PROCEED WITH NEW SEARCH OPTION
|
||||
EXTEND
|
||||
# Page 561
|
||||
BZF P17.1
|
||||
TC VNCOMP17 +3
|
||||
ALARUMS SET EXIT
|
||||
UPDATFLG
|
||||
TC ALARM
|
||||
OCT 00124 # NO SAFE PERICENTER IN THIS SECTOR
|
||||
CAF V05N09
|
||||
TC VNCOMP17
|
||||
TC GOTOPOOH # PROCEED ILLEGAL TERMINATE PROGRAM
|
||||
V06N72 VN 0672
|
784
Comanche055/TVCDAPS.agc
Normal file
784
Comanche055/TVCDAPS.agc
Normal file
@ -0,0 +1,784 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TVCDAPS.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: 961-978
|
||||
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images.
|
||||
# 2009-05-20 RSB Corrections: Eliminated an extraneous EXTEND,
|
||||
# added a missing instruction to PFORWARD.
|
||||
# 2000-05-21 RSB Wrong opcode was used with DELBRTMP and
|
||||
# DELBRTMP +1 operands in 4 places. Corrected
|
||||
# an MP operation in 2CASFLTR.
|
||||
#
|
||||
# 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 961
|
||||
# PROGRAM NAME....TVCDAP, CONSISTING OF PITCHDAP, YAWDAP, ETC.
|
||||
# LOG SECTION...TVCDAPS SUBROUTINE...DAPCSM
|
||||
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
|
||||
# FUNCTIONAL DESCRIPTION....
|
||||
|
||||
# SELF-PERPETUATING T5 TASKS WHICH GENERATE THE COMMAND SIGNALS
|
||||
# FOR THE PITCH AND YAW SPS GIMBAL ACTUATORS DURING TVC (SPS) BURNS,
|
||||
# IN RESPONSE TO BODY-AXIS RATE COMMANDS FROM CROSS-PRODUCT STEERING
|
||||
# (S40.8). IF NO STEERING (IMPULSIVE BURNS) MAINTAINS ATTITUDE-HOLD
|
||||
# ABOUT THE REFERENCE (INITIAL) DIRECTIONS (ZERO RATE COMMANDS).
|
||||
|
||||
# THE PITCH AND YAW LOOPS ARE SEPARATE, BUT STRUCTURED IDENTICALLY.
|
||||
# EACH ATTITUDE-RATE LOOP INCLUDES GIMBAL ANGLE RATE DERIVATION,
|
||||
# GIMBAL/BODY AXIS TRANSFORMATION, BODY-AXIS ATTITUDE ERROR
|
||||
# INTEGRATION WITH ERROR LIMITING, THE GENERALIZED 6TH-ORDER FILTER
|
||||
# FOR CSM OR CSM/LM OPERATION. A FILTER OUTPUT LIMITER.
|
||||
# CG-OFFSET TRACKER FILTER, AND THE CG-TRACKER MINOR LOOP.
|
||||
|
||||
# THE DAPS ARE CYCLIC, CALLING EACH OTHER AT 1/2 THE DAP SAMPLE
|
||||
# TIME, AS DETERMINED BY T5TVCDT. THE ACTUATOR COMMANDS ARE
|
||||
# REGENERATED AS ANALOG VOLTAGES BY THE OPTICS ERROR COUNTERS, WHICH
|
||||
# TRANSMIT THE SIGNAL TO THE ACTUATOR SERVOS WHEN THERE IS PROPER CDU
|
||||
# MODING.
|
||||
|
||||
# CALLING SEQUENCE.... (TYPICALLY)
|
||||
|
||||
# T5 CALL OF TVCDAPON (TVCINITIALIZE) BY DOTVCON (P40)
|
||||
# T5 CALL OF DAPINIT (TVCDAPS) BY TVCINIT4 (TVCINITIALIZE)
|
||||
# T5 CALL OF PITCHDAP BY DAPINIT
|
||||
# T5 CALL OF YAWDAP BY PITCHDAP
|
||||
# T5 CALL OF PITCHDAP BY YAWDAP
|
||||
# ETC.
|
||||
# (AUTOMATIC SEQUENCING FROM TVCDAPON)
|
||||
|
||||
# NORMAL EXIT MODE....RESUME
|
||||
|
||||
# ALARM OR ABORT EXIT MODES....NONE
|
||||
|
||||
# SUBROUTINES CALLED....
|
||||
|
||||
# HACK FOR STROKE TEST (V68) WAVEFORM GENERATION
|
||||
# PCOPY, YCOPY FOR COPY-CYCLES (USED ALSO BY TVC RESTART PACKAGE)
|
||||
# DAPINIT FOR INITIAL CDUS FOR RATE MEASUREMENTS
|
||||
# ERRORLIM, ACTLIM FOR INPUT (ATTITUDE-ERROR INTEGRATION) AND
|
||||
# OUTPUT (ACTUATOR COMMAND) LIMITING, COMMON TO PITCH AND
|
||||
# YAW DAPS
|
||||
# FWDFLTR (INCLUDING OPTVARK) AND PRECOMP, TO COMPUTE FILTER
|
||||
# OUTPUTS AND STORAGE VALUES
|
||||
# RESUME
|
||||
|
||||
# Page 962
|
||||
# OTHER INTERFACES....
|
||||
|
||||
# S40.8 CROSS-PRODUCT STEERING FOR BODY AXIS RATE COMMANDS OMEGAY,ZC
|
||||
# S40.15 FOR THE INITIAL DAP GAINS VARK AND 1/CONACC
|
||||
# TVCEXECUTIVE FOR DAP GAIN UPDATES AND TMC LOOP OPERATIONS
|
||||
# TVCRESTART PACKAGE FOR TVC RESTART PROTECTION.
|
||||
|
||||
# ERASABLE INITIALIZATION REQUIRED....
|
||||
|
||||
# PAD-LOAD ERASABLES ( SEE ERASABLE ASSIGNMENTS )
|
||||
# CONFIGURATION BITS (14, 13) OF DAPDATR1 AS IN R03
|
||||
# ENGINE-ON BIT (11.13) FOR RESTARTS
|
||||
# TVCPHASE FOR RESTARTS ( SEE DOTVCON, AND TVCINIT4 )
|
||||
# T5 BITS (15,14 OF FLAGWRD6) FOR RESTARTS
|
||||
# MISCELLANEOUS VARIABLES SET UP OR COMPUTED BY TVCDAPON....TVCINIT4,
|
||||
# INCLUDING THE ZEROING OF TEMPORARIES BY MRCLEAN
|
||||
# CDUX,Y,Z AND SINCDUX....COSCDUX AS PREPARED BY QUICTRIG (WITH
|
||||
# UPDATES EVERY 1/2 SECOND)
|
||||
# ALSO G+N PRIMARY, TVC ENABLE, AND OPTICS ERROR COUNTER ENABLE
|
||||
# UNLESS BENCH-TESTING.
|
||||
#
|
||||
# OUTPUT....
|
||||
#
|
||||
# TVCPITCH AND TVCYAW WITH COUNTER RELEASE (11.14 AND 11.13 INCREMEN-
|
||||
# TAL COMMANDS TO OPTICS ERROR COUNTERS), FILTER NODES, BODY-
|
||||
# AXIS ATTITUDE ERROR INTEGRATOR, TOTAL ACTUATOR COMMANDS,
|
||||
# OFFSET-TRACKER-FILTER OUTPUTS, ETC.
|
||||
# DEBRIS....
|
||||
|
||||
# MUCH, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
|
||||
|
||||
BANK 17
|
||||
SETLOC DAPS2
|
||||
BANK
|
||||
|
||||
EBANK= BZERO
|
||||
|
||||
COUNT* $$/DAPS
|
||||
|
||||
# Page 963
|
||||
# PITCH TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
|
||||
|
||||
PITCHDAP LXCH BANKRUPT # T5 ENTRY, NORMAL OR VIA DAPINIT
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
|
||||
CAF YAWT5 # SET UP T5 CALL FOR YAW AUTOPILOT (LOW-
|
||||
TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
|
||||
CAE T5TVCDT
|
||||
TS TIME5
|
||||
|
||||
PSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST
|
||||
TC HACK # TEST-START OR TEST-IN-PROGRESS
|
||||
TCF +2 # NO-TEST
|
||||
TC HACK # TEST-IN-PROGRESS
|
||||
|
||||
PCDUDOTS CAE CDUY # COMPUTE CDUYDOT (USED BY PITCH AND YAW)
|
||||
XCH PCDUYPST
|
||||
EXTEND
|
||||
MSU PCDUYPST
|
||||
TCR RLIMTEST # RATE TEST
|
||||
TS MCDUYDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
|
||||
|
||||
CAE CDUZ # COMPUTE CDUZDOT (USED BY PITCH AND YAW)
|
||||
XCH PCDUZPST
|
||||
EXTEND
|
||||
MSU PCDUZPST
|
||||
TCR RLIMTEST # RATE TEST
|
||||
TS MCDUZDOT # (MINUS, SC.AT 1/2TVCDT REVS/SEC)
|
||||
TCF PINTEGRL
|
||||
|
||||
RLIMTEST TS TTMP1 # TEST FOR EXCESSIVE CDU RATES (GREATER
|
||||
EXTEND # THAN 2.33 DEG IN ONE SAMPLE PERIOD)
|
||||
MP 1/RTLIM
|
||||
EXTEND
|
||||
BZF +3
|
||||
CAF ZERO
|
||||
TS TTMP1
|
||||
CAE TTMP1
|
||||
TC Q
|
||||
|
||||
PINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS PITCH-RATE
|
||||
DCA PERRB # ERROR, SC.AT B-1 REVS
|
||||
DXCH ERRBTMP
|
||||
|
||||
EXTEND
|
||||
DCA OMEGAYC
|
||||
DAS ERRBTMP
|
||||
|
||||
# Page 964
|
||||
CS COSCDUZ # PREPARE BODY-AXIS PITCH RATE, OMEGAYB
|
||||
EXTEND
|
||||
MP COSCDUX
|
||||
DDOUBL
|
||||
EXTEND
|
||||
MP MCDUYDOT
|
||||
DDOUBL
|
||||
DXCH OMEGAYB
|
||||
|
||||
CS MCDUZDOT
|
||||
EXTEND
|
||||
MP SINCDUX
|
||||
DDOUBL
|
||||
DAS OMEGAYB # (COMPLETED OMEGAYB, SC.AT 1/2TVCDT REVS)
|
||||
|
||||
EXTEND # PICK UP -OMEGAYB (SIGN CHNG, INTEGRATE)
|
||||
DCS OMEGAYB
|
||||
DAS ERRBTMP
|
||||
|
||||
PERORLIM TCR ERRORLIM # PITCH BODY-AXIS-ERROR INPUT LIMITER
|
||||
|
||||
PFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
|
||||
DCA PTMP1 # FOR THE PITCH CHANNEL
|
||||
DXCH TMP1
|
||||
EXTEND
|
||||
DCA PTMP3
|
||||
DXCH TMP3
|
||||
EXTEND
|
||||
DCA PTMP5
|
||||
DXCH TMP5
|
||||
|
||||
TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
|
||||
# (INCLUDES VARIABLE GAIN PACKAGE)
|
||||
|
||||
POFFSET EXTEND
|
||||
DCA PDELOFF
|
||||
DAS CMDTMP # NO SCALED AT B+0 ASCREV
|
||||
|
||||
PACLIM TCR ACTLIM # ROUND OFF & LIMIT PITCH ACTUATOR COMMAND
|
||||
|
||||
POUT CS PCMD # INCREMENTAL PITCH COMMAND
|
||||
AD CMDTMP
|
||||
ADS TVCPITCH # UPDATE THE ERROR COUNTER (NO RESTART-
|
||||
# PROTECT. SINCE ERROR CNTR ZEROED)
|
||||
|
||||
CAF BIT11 # BIT FOR TVCPITCH COUNT RELEASE
|
||||
EXTEND
|
||||
WOR CHAN14
|
||||
|
||||
PPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR PITCH
|
||||
# Page 965
|
||||
DCA PTMP2
|
||||
DXCH TMP2
|
||||
EXTEND
|
||||
DCA PTMP4
|
||||
DXCH TMP4
|
||||
EXTEND
|
||||
DCA PTMP6
|
||||
DXCH TMP6
|
||||
|
||||
TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
|
||||
|
||||
DELBARP CAE DELPBAR +1 # UPDATE PITCH OFFSET-TRACKER-FILTER
|
||||
EXTEND
|
||||
MP E(-AT)
|
||||
TS DELBRTMP +1
|
||||
CAE DELPBAR
|
||||
EXTEND
|
||||
MP E(-AT)
|
||||
DAS DELBRTMP
|
||||
CAE CMDTMP
|
||||
EXTEND
|
||||
MP 1-E(-AT)
|
||||
DAS DELBRTMP
|
||||
|
||||
PCOPYCYC TCR PCOPY # PITCH COPYCYCLE
|
||||
|
||||
PDAPEND TCF RESUME # PITCH DAP COMPLETED
|
||||
# Page 966
|
||||
# PITCH TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA PITCH TVCDAP OR TVC RESTART PACKAGE)
|
||||
|
||||
PCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (1)
|
||||
# NOTE POSSIBLE RE-ENTRY FROM RESTART
|
||||
# PACKAGE, SHOULD A RESTART OCCUR
|
||||
# DURING PITCH COPYCYCLE.
|
||||
|
||||
EXTEND
|
||||
DCA TMP1
|
||||
DXCH PTMP1
|
||||
EXTEND
|
||||
DCA TMP2
|
||||
DXCH PTMP2
|
||||
EXTEND
|
||||
DCA TMP3
|
||||
DXCH PTMP3
|
||||
EXTEND
|
||||
DCA TMP4
|
||||
DXCH PTMP4
|
||||
EXTEND
|
||||
DCA TMP5
|
||||
DXCH PTMP5
|
||||
EXTEND
|
||||
DCA TMP6
|
||||
DXCH PTMP6
|
||||
|
||||
PMISC EXTEND # MISC....PITCH-RATE-ERROR INTEGRATOR
|
||||
DCA ERRBTMP
|
||||
TS AK1 # FOR PITCH NEEDLES, SC.AT B-1 REVS
|
||||
DXCH PERRB
|
||||
|
||||
CAE CMDTMP # PITCH ACTUATOR COMMAND
|
||||
TS PCMD
|
||||
|
||||
EXTEND # PITCH OFFSET-TRACKER-FILTER
|
||||
DCA DELBRTMP
|
||||
DXCH DELPBAR
|
||||
|
||||
INCR TVCPHASE # PITCH COPYCYCLE COMPLETED (2)
|
||||
|
||||
TC Q
|
||||
|
||||
# Page 967
|
||||
# YAW TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
|
||||
|
||||
YAWDAP LXCH BANKRUPT # T5 ENTRY, NORMAL
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
|
||||
CAF PITCHT5 # SET UP T5 CALL FOR PITCH AUTOPILOT (LOW-
|
||||
TS T5LOC # ORDER PART OF 2CADR ALREADY THERE)
|
||||
CAE T5TVCDT
|
||||
TS TIME5
|
||||
|
||||
YSTROKER CCS STROKER # (STRKFLG) CHECK FOR STROKE TEST
|
||||
TC HACK # TEST-START OR TEST-IN-PROGRESS
|
||||
TCF +2 # NO-TEST
|
||||
TC HACK # TEST-IN-PROGRESS
|
||||
|
||||
# USE BODY RATES FROM PITCHDAP (PCDUDOTS)
|
||||
|
||||
YINTEGRL EXTEND # COMPUTE INTEGRAL OF BODY-AXIS YAW-RATE
|
||||
DCA YERRB # ERROR, SC.AT B-1 REVS
|
||||
DXCH ERRBTMP
|
||||
|
||||
EXTEND
|
||||
DCA OMEGAZC
|
||||
DAS ERRBTMP
|
||||
|
||||
CAE COSCDUZ # PREPARE BODY-AXIS YAW-RATE, OMEGAZB
|
||||
EXTEND
|
||||
MP SINCDUX
|
||||
DDOUBL
|
||||
EXTEND
|
||||
MP MCDUYDOT
|
||||
DDOUBL
|
||||
DXCH OMEGAZB
|
||||
|
||||
CS MCDUZDOT
|
||||
EXTEND
|
||||
MP COSCDUX
|
||||
DDOUBL
|
||||
DAS OMEGAZB # (COMPLETED OMEGAZB, SC.AT 1/2TVCDT REVS)
|
||||
|
||||
EXTEND # PICK UP -OMEGAZB (SIGN CHNG, INTEGRATE)
|
||||
DCS OMEGAZB
|
||||
DAS ERRBTMP
|
||||
|
||||
YERORLIM TCR ERRORLIM # YAW BODY-AXIS-ERROR INPUT LIMITER
|
||||
|
||||
YFORWARD EXTEND # PREPARE THE FILTER STORAGE LOCATIONS
|
||||
DCA YTMP1 # FOR THE YAW CHANNEL
|
||||
# Page 968
|
||||
DXCH TMP1
|
||||
EXTEND
|
||||
DCA YTMP3
|
||||
DXCH TMP3
|
||||
EXTEND
|
||||
DCA YTMP5
|
||||
DXCH TMP5
|
||||
|
||||
TCR FWDFLTR # GO COMPUTE PRESENT OUTPUT
|
||||
# (INCLUDES VARIABLE GAIN PACKAGE)
|
||||
|
||||
YOFFSET EXTEND
|
||||
DCA YDELOFF
|
||||
DAS CMDTMP # NOW SCALED AT B+0 ASCREV
|
||||
|
||||
YACLIM TCR ACTLIM # ROUND OFF & LIMIT YAW ACTUATOR COMMAND
|
||||
|
||||
YOUT CS YCMD # INCREMENTAL YAW COMMAND
|
||||
AD CMDTMP
|
||||
ADS TVCYAW # UPDATE THE ERROR COUNTER (NO RESTART-
|
||||
# PROTECT, SINCE ERROR CNTR ZEROED)
|
||||
|
||||
CAF BIT12 # BIT FOR TVCYAW COUNT RELEASE
|
||||
EXTEND
|
||||
WOR CHAN14
|
||||
|
||||
YPRECOMP EXTEND # PREPARE THE FILTER STORAGE FOR YAW
|
||||
DCA YTMP2
|
||||
DXCH TMP2
|
||||
EXTEND
|
||||
DCA YTMP4
|
||||
DXCH TMP4
|
||||
EXTEND
|
||||
DCA YTMP6
|
||||
DXCH TMP6
|
||||
|
||||
TCR PRECOMP # TO THE FILTER FOR PRECOMPUTATION
|
||||
|
||||
DELBARY CAE DELYBAR +1 # UPDATE YAW OFFSET-TRACKER-FILTER
|
||||
EXTEND
|
||||
MP E(-AT)
|
||||
TS DELBRTMP +1
|
||||
CAE DELYBAR
|
||||
EXTEND
|
||||
MP E(-AT)
|
||||
DAS DELBRTMP
|
||||
CAE CMDTMP
|
||||
EXTEND
|
||||
MP 1-E(-AT)
|
||||
DAS DELBRTMP
|
||||
|
||||
# Page 969
|
||||
YCOPYCYC TCR YCOPY # YAW COPYCYCLE
|
||||
|
||||
YDAPEND TCF RESUME # YAW DAP COMPLETED
|
||||
|
||||
# Page 970
|
||||
# TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA YAW TVCDAP OR TVC RESTART PACKAGE)
|
||||
|
||||
YCOPY INCR TVCPHASE # RESTART-PROTECT THE COPYCYCLE. (3)
|
||||
# NOTE POSSIBLE RE-ENTRY FROM RESTART
|
||||
# PACKAGE, SHOULD A RESTART OCCUR
|
||||
# DURING YAW COPYCYCLE.
|
||||
|
||||
EXTEND
|
||||
DCA TMP1
|
||||
DXCH YTMP1
|
||||
EXTEND
|
||||
DCA TMP2
|
||||
DXCH YTMP2
|
||||
EXTEND
|
||||
DCA TMP3
|
||||
DXCH YTMP3
|
||||
EXTEND
|
||||
DCA TMP4
|
||||
DXCH YTMP4
|
||||
EXTEND
|
||||
DCA TMP5
|
||||
DXCH YTMP5
|
||||
EXTEND
|
||||
DCA TMP6
|
||||
DXCH YTMP6
|
||||
|
||||
YMISC EXTEND # MISC....YAW-RATE-ERROR INTEGRATOR
|
||||
DCA ERRBTMP
|
||||
TS AK2 # FOR YAW NEEDLES, SC.AT B-1 REVS
|
||||
DXCH YERRB
|
||||
|
||||
CAE CMDTMP
|
||||
TS YCMD
|
||||
|
||||
EXTEND
|
||||
DCA DELBRTMP
|
||||
DXCH DELYBAR
|
||||
|
||||
CAF ZERO # YAW COPYCYCLE COMPLETED
|
||||
TS TVCPHASE # RESET TVCPHASE
|
||||
|
||||
TC Q
|
||||
|
||||
# Page 971
|
||||
# SUBROUTINES COMMON TO BOTH PITCH AND YAW DAPS....
|
||||
|
||||
|
||||
# INITIALIZATION PACKAGE FOR CDURATES....
|
||||
|
||||
DAPINIT LXCH BANKRUPT # T5 RUPT ENTRY (CALLED BY TVCINT4)
|
||||
|
||||
CAF NEGONE # SET UP
|
||||
AD T5TVCDT # T5 CALL FOR PITCHDAP IN TVCDT SECS
|
||||
AD NEGMAX # (T5TVCDT = POSMAX - TVCDT/2 +1)
|
||||
AD T5TVCDT
|
||||
TS TIME5
|
||||
CAF PITCHT5 # (BBCON ALREADY THERE)
|
||||
TS T5LOC
|
||||
|
||||
CAE CDUY # READ AND STORE CDUS FOR DIFFERENTIATOR
|
||||
TS PCDUYPST # PAST-VALUES
|
||||
CAE CDUZ
|
||||
TS PCDUZPST
|
||||
|
||||
TCF NOQRSM
|
||||
|
||||
# BODY-AXIS-ERROR INPUT LIMITER PACKAGE....
|
||||
|
||||
ERRORLIM CAE ERRBTMP # CHECK FOR INPUT-ERROR LIMIT
|
||||
EXTEND # CHECKS UPPER WORD ONLY
|
||||
MP 1/ERRLIM
|
||||
EXTEND
|
||||
BZF +6
|
||||
CCS ERRBTMP
|
||||
CAF ERRLIM
|
||||
TCF +2
|
||||
CS ERRLIM
|
||||
TS ERRBTMP # LIMIT WRITES OVER UPPER WORD ONLY
|
||||
|
||||
TC Q
|
||||
|
||||
|
||||
# ACTUATOR-COMMAND LIMITER PACKAGE....
|
||||
|
||||
ACTLIM CAE CMDTMP +1 # ROUND UP FOR OUTPUT
|
||||
DOUBLE
|
||||
TS L
|
||||
CAF ZERO
|
||||
AD CMDTMP
|
||||
|
||||
EXTEND # CHECK FOR ACTUATOR COMMAND LIMIT
|
||||
MP 1/ACTSAT
|
||||
EXTEND
|
||||
# Page 972
|
||||
BZF +6
|
||||
CCS CMDTMP # APPLY LIMITS
|
||||
CAF ACTSAT
|
||||
TCF +2
|
||||
CS ACTSAT
|
||||
TS CMDTMP # LIMITS WRITE OVER CMDTMP
|
||||
|
||||
TC Q
|
||||
|
||||
|
||||
# FILTER COMPUTATIONS FOR PRESENT OUTPUT................
|
||||
|
||||
FWDFLTR CAF ZERO
|
||||
TS DAP1
|
||||
TS DAP2
|
||||
TS DAP3
|
||||
TS CMDTMP
|
||||
|
||||
TS DELBRTMP
|
||||
|
||||
1DAPCAS CAE ERRBTMP +1 # FIRST DAP CASCADE
|
||||
EXTEND
|
||||
MP N10 # N10
|
||||
TS DAP1 +1
|
||||
CA ERRBTMP
|
||||
EXTEND
|
||||
MP N10 # N10
|
||||
DAS DAP1
|
||||
DXCH TMP1
|
||||
DAS DAP1
|
||||
|
||||
2DAPCAS CAE DAP1 +1 # SECOND DAP CASCADE
|
||||
EXTEND
|
||||
MP N10 +5 # N20
|
||||
TS DAP2 +1
|
||||
CA DAP1
|
||||
EXTEND
|
||||
MP N10 +5 # N20
|
||||
DAS DAP2
|
||||
DXCH TMP3
|
||||
DAS DAP2
|
||||
|
||||
CAE DAPDATR1 # TEST FOR LEM ON OR OFF
|
||||
MASK BIT14
|
||||
CCS A
|
||||
TCF 3DAPCAS # LEM ON
|
||||
EXTEND # LEM OFF
|
||||
DCA DAP2
|
||||
DXCH DAP3
|
||||
TCF OPTVARK
|
||||
|
||||
# Page 973
|
||||
3DAPCAS CAE DAP2 +1 # THIRD DAP CASCADE
|
||||
EXTEND
|
||||
MP N10 +10D # N30
|
||||
TS DAP3 +1
|
||||
CA DAP2
|
||||
EXTEND
|
||||
MP N10 +10D # N30
|
||||
DAS DAP3
|
||||
DXCH TMP5
|
||||
DAS DAP3
|
||||
|
||||
OPTVARK CS DAP3 +1 # VARIABLE GAIN PACKAGE
|
||||
EXTEND # (ALSO, SIGN CHANGE IN FORWARD LOOP)
|
||||
MP VARK # SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE
|
||||
TS CMDTMP +1
|
||||
CS DAP3
|
||||
EXTEND
|
||||
MP VARK
|
||||
DAS CMDTMP
|
||||
|
||||
DXCH CMDTMP # FIX UP SCALING - SCALED B+3 ASCREVS
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
DXCH CMDTMP # - SCALED B+1 ASCREVS
|
||||
# NOTE - THERE IS AN INHERANT GAIN OF
|
||||
# (B+1 ASCREVS) ON THE OUTPUT DACS.
|
||||
|
||||
TC Q
|
||||
|
||||
|
||||
# FILTER PRECOMPUTATIONS FOR NEXT PASS................
|
||||
|
||||
PRECOMP CAF ZERO # ***** FIRST CASCADE FILTER **********
|
||||
TS TTMP1
|
||||
TS TTMP2
|
||||
|
||||
CA ERRBTMP +1 # MULTIPLY INPUT BY
|
||||
EXTEND
|
||||
MP N10 +1 # N11/2
|
||||
TS TTMP1 +1
|
||||
CA ERRBTMP
|
||||
EXTEND
|
||||
MP N10 +1 # N11/2
|
||||
DAS TTMP1
|
||||
|
||||
CS DAP1 +1 # MULTIPLY OUTPUT BY
|
||||
EXTEND
|
||||
MP N10 +3 # D11/2
|
||||
TS TTMP2 +1
|
||||
CS DAP1
|
||||
|
||||
# Page 974
|
||||
EXTEND
|
||||
MP N10 +3 # D11/2
|
||||
DAS TTMP2
|
||||
|
||||
DXCH TTMP2
|
||||
DAS TTMP1
|
||||
DXCH TTMP1
|
||||
DDOUBL
|
||||
DAS TMP2
|
||||
|
||||
DXCH TMP2
|
||||
DXCH TMP1
|
||||
|
||||
CAF ZERO
|
||||
TS TTMP1
|
||||
TS TMP2
|
||||
|
||||
CA ERRBTMP +1 # MULTIPLY INPUT BY
|
||||
EXTEND # SECOND-ORDER NUMERATOR COEFF.
|
||||
MP N10 +2 # N12
|
||||
TS TTMP1 +1
|
||||
CA ERRBTMP
|
||||
EXTEND
|
||||
MP N10 +2 # N12
|
||||
DAS TTMP1
|
||||
|
||||
CS DAP1 +1 # MULTIPLY OUTPUT BY
|
||||
EXTEND
|
||||
MP N10 +4 # D12
|
||||
TS TMP2 +1
|
||||
CS DAP1
|
||||
EXTEND
|
||||
MP N10 +4 # D12
|
||||
DAS TMP2
|
||||
|
||||
DXCH TTMP1
|
||||
DAS TMP2
|
||||
|
||||
2CASFLTR CAF ZERO # *****SECOND CASCADE FILTER*****
|
||||
TS TTMP1
|
||||
TS TTMP2
|
||||
|
||||
CA DAP1 +1 # MULTIPLY INPUT BY
|
||||
EXTEND
|
||||
MP N10 +6 # N21/2
|
||||
TS TTMP1 +1
|
||||
CA DAP1
|
||||
EXTEND
|
||||
MP N10 +6 # N21/2
|
||||
# Page 975
|
||||
DAS TTMP1
|
||||
|
||||
CS DAP2 +1 # MULTIPLY OUTPUT BY
|
||||
EXTEND
|
||||
MP N10 +8D # D21/2
|
||||
TS TTMP2 +1
|
||||
CS DAP2
|
||||
EXTEND
|
||||
MP N10 +8D # D21/2
|
||||
DAS TTMP2
|
||||
|
||||
DXCH TTMP2
|
||||
DAS TTMP1
|
||||
DXCH TTMP1
|
||||
DDOUBL
|
||||
DAS TMP4
|
||||
|
||||
DXCH TMP4
|
||||
DXCH TMP3
|
||||
|
||||
CAF ZERO
|
||||
TS TTMP1
|
||||
TS TMP4
|
||||
|
||||
CA DAP1 +1 # MULTIPLY INPUT BY
|
||||
EXTEND
|
||||
MP N10 +7 # N22
|
||||
TS TTMP1 +1
|
||||
CA DAP1
|
||||
EXTEND
|
||||
MP N10 +7 # N22
|
||||
DAS TTMP1
|
||||
|
||||
CS DAP2 +1 # MULTIPLY OUTPUT BY
|
||||
EXTEND
|
||||
MP N10 +9D # D22
|
||||
TS TMP4 +1
|
||||
CS DAP2
|
||||
EXTEND
|
||||
MP N10 +9D # D22
|
||||
DAS TMP4
|
||||
|
||||
DXCH TTMP1
|
||||
DAS TMP4
|
||||
|
||||
|
||||
CAE DAPDATR1 # TEST FOR LEM ON OR OFF
|
||||
MASK BIT13
|
||||
CCS A
|
||||
TC Q # EXIT IF LEM OFF
|
||||
|
||||
# Page 976
|
||||
3CASFLTR CAF ZERO # *****THIRD CASCADE FILTER*****
|
||||
TS TTMP1
|
||||
TS TTMP2
|
||||
|
||||
CA DAP2 +1 # MULTIPLY INPUT BY (1/2)
|
||||
EXTEND
|
||||
MP N10 +11D # N31/2
|
||||
TS TTMP1 +1
|
||||
CA DAP2
|
||||
EXTEND
|
||||
MP N10 +11D # N31/2
|
||||
DAS TTMP1
|
||||
|
||||
CS DAP3 +1
|
||||
EXTEND
|
||||
MP N10 +13D # D31/2
|
||||
TS TTMP2 +1
|
||||
CS DAP3
|
||||
EXTEND
|
||||
MP N10 +13D # D31/2
|
||||
DAS TTMP2
|
||||
|
||||
DXCH TTMP2
|
||||
DAS TTMP1
|
||||
DXCH TTMP1
|
||||
DDOUBL
|
||||
DAS TMP6
|
||||
|
||||
DXCH TMP6
|
||||
DXCH TMP5
|
||||
|
||||
CAF ZERO
|
||||
TS TTMP1
|
||||
TS TMP6
|
||||
|
||||
CA DAP2 +1 # MULTIPLY INPUT BY
|
||||
EXTEND
|
||||
MP N10 +12D # N32
|
||||
TS TTMP1 +1
|
||||
CA DAP2
|
||||
EXTEND
|
||||
MP N10 +12D # N32
|
||||
DAS TTMP1
|
||||
|
||||
CS DAP3 +1
|
||||
EXTEND
|
||||
MP N10 +14D # D32
|
||||
TS TMP6 +1
|
||||
CS DAP3
|
||||
EXTEND
|
||||
# Page 977
|
||||
MP N10 +14D # D32
|
||||
DAS TMP6
|
||||
|
||||
DXCH TTMP1
|
||||
DAS TMP6
|
||||
|
||||
TC Q
|
||||
|
||||
# Page 978
|
||||
# CONSTANTS FOR AUTOPILOTS
|
||||
|
||||
# NOTE....1 ASCREV (ACTUATOR CMD SCALING) = 85.41 ARCSEC/BIT OR 1.07975111 REVS (85.41x16384/3600/360)
|
||||
|
||||
# 1 SPASCREV (SPECIAL ACTUATOR CMD SCALING) = 1.04620942 REVS
|
||||
|
||||
ACTSAT DEC 253 # ACTUATOR LIMIT (6 DEG), SC.AT 1ASCREV
|
||||
1/ACTSAT DEC .0039525692 # RECIPROCAL (1/253)
|
||||
|
||||
ERRLIM EQUALS BIT13 # FILTER INPUT LIMIT....B-3 REVS (45DEG),
|
||||
1/ERRLIM EQUALS BIT3 # SC.AT B-1 REV, AND ITS RECIPROCAL
|
||||
|
||||
PITCHT5 GENADR PITCHDAP # UPPER WORDS OF T5 2CADRS, LOWER WORDS
|
||||
DAPT5 GENADR DAPINIT # (BBCON) ALREADY THERE. ORDER IS
|
||||
YAWT5 GENADR YAWDAP # REQUIRED.
|
||||
|
||||
1/RTLIM DEC 0.004715 # .004715(CDUDIF) = 0 IF CDUIF < 2.33 DEG
|
||||
1-E(-AT) OCT 00243 # AT = .01SEC....EITHER(1/A=4SEC, T=40MS),
|
||||
E(-AT) OCT 37535 # OR(1/A=8SEC, T=80MS)
|
276
Comanche055/TVCEXECUTIVE.agc
Normal file
276
Comanche055/TVCEXECUTIVE.agc
Normal file
@ -0,0 +1,276 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TVCEXECUTIVE.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: 945-950
|
||||
# Mod history: 2009-05-12 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images.
|
||||
# 2009-05-20 RSB Corrections: CAE -> CAF in one place.
|
||||
# 2009-05-21 RSB In 1SHOTCHK, a CAF SEVEN was corrected to
|
||||
# CAF SIX.
|
||||
#
|
||||
# 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 945
|
||||
# PROGRAM NAME.... TVCEXECUTIVE, CONSISTING OF TVCEXEC, NEEDLEUP, VARGAINS
|
||||
# 1SHOTCHK, REPCHEK, CG.CORR, COPYCYCLES, ETC.
|
||||
# LOG SECTION...TVCEXECUTIVE SUBROUTINE...DAPCSM
|
||||
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
|
||||
# FUNCTIONAL DESCRIPTION....
|
||||
#
|
||||
# *A SELF-PERPETUATING WAITLIST TASK AT 1/2 SECOND INTERVALS WHICH:
|
||||
# PREPARES THE ROLL DAP WITH OGA (CDUX)
|
||||
# PREPARES THE ROLL FDAI NEEDLE (FLY-TO OGA ERROR)
|
||||
# PREPARES THE ROLL PHASE PLANE OGAERR (FLY-FROM OGA ERROR)
|
||||
# PREPARES THE TVC ROLLDAP TASK WAITLIST CALL (3 CS DELAY)
|
||||
# UPDATES THE NEEDLES DISPLAY
|
||||
# UPDATES VEHICLE MASS AND CALLS MASSPROP TO UPDATE INERTIA DATA
|
||||
# UPDATES PITCH, YAW, AND ROLL DAP GAINS FROM MASSPROP DATA
|
||||
# PERFORMS ONE-SHOT CORRECTION FOR TMC LOOP 0-3 SEC AFTER IGNITION
|
||||
# PERFORMS REPETITIVE UPDATES FOR TMC LOOP AFTER THE ONE-SHOT CORR.
|
||||
#
|
||||
# CALLING SEQUENCE....
|
||||
#
|
||||
# *TVCEXEC CALLED AS A WAITLIST TASK, IN PARTICULAR BY TVCINIT4 AND BY
|
||||
# ITSELF, BOTH AT 1/2 SECOND INTERVALS
|
||||
#
|
||||
# NORMAL EXIT MODE.... TASKOVER
|
||||
#
|
||||
# ALARM OR ABORT EXIT MODES.... NONE
|
||||
#
|
||||
# SUBROUTINES CALLED....NEEDLER, S40.15, MASSPROP, TASKOVER, IBNKCALL
|
||||
#
|
||||
# OTHER INTERFACES....
|
||||
#
|
||||
# *TVCRESTART PACKAGE FOR RESTARTS
|
||||
# *PITCHDAP, YAWDAP FOR VARIABLE GAINS AND ENGINE TRIM ANGLES
|
||||
# ERASABLE INITIALIZATION REQUIRED....
|
||||
#
|
||||
# *SEE TVCDAPON....TVCINIT4
|
||||
# *VARK AND 1/CONACC (S40.15 OF TVCINITIALIZE)
|
||||
# *PAD LOAD EREPFRAC
|
||||
# *BITS 15,14 OF FLAGWRD6 (T5 BITS)
|
||||
# *TVCEXPHS FOR RESTARTS
|
||||
# *ENGINE-ON BIT (11.13) FOR RESTARTS
|
||||
# *CDUX, OGAD
|
||||
#
|
||||
# OUTPUT....
|
||||
#
|
||||
# *ROLL DAP OGANOW, FDAI NEEDLE (AK), AND PHASE PLANE OGAERR
|
||||
# *VARIABLE GAINS FOR PITCH/YAW AND ROLL TVC DAPS
|
||||
# *SINGLE-SHOT AND REPETITIVE CORRECTIONS TO ENGINE TRIM ANGLES
|
||||
# PACTOFF AND YACTOFF
|
||||
#
|
||||
# DEBRIS.... MUCH, BUT SHAREABLE WITH RCS/ENTRY, ALL IN EBANK6
|
||||
|
||||
# Page 946
|
||||
BANK 16
|
||||
SETLOC DAPROLL
|
||||
BANK
|
||||
EBANK= BZERO
|
||||
COUNT* $$/TVCX
|
||||
|
||||
TVCEXEC CS FLAGWRD6 # CHECK FOR TERMINATION (BITS 15,14 READ
|
||||
MASK OCT60000 # 10 FROM TVCDAPON TO RCSDAPON)
|
||||
EXTEND
|
||||
BZMF TVCEXFIN # TERMINATE
|
||||
|
||||
CAF .5SEC # W.L. CALL TO PERPETUATE TVCEXEC
|
||||
TC WAITLIST
|
||||
EBANK= BZERO
|
||||
2CADR TVCEXEC
|
||||
|
||||
ROLLPREP CAE CDUX # UPDATE ROLL LADDERS (NO NEED TO RESTART-
|
||||
XCH OGANOW # PROTECT, SINCE ROLL DAPS RE-START)
|
||||
XCH OGAPAST
|
||||
|
||||
CAE OGAD # PREPARE ROLL FDAI NEEDLE WITH FLY-TO
|
||||
EXTEND # ERROR (COMMAND - MEASURED)
|
||||
MSU OGANOW
|
||||
TS AK # FLY-TO OGA ERROR, SC.AT B-1 REVS
|
||||
|
||||
EXTEND # PREPARE ROLL DAP PHASE PLANE OGAERR
|
||||
MP -BIT14
|
||||
TS OGAERR # PHASE-PLANE (FLY-FROM) OGAERROR,
|
||||
# SC.AT B+0 REVS
|
||||
|
||||
CAF THREE # SET UP ROLL DAP TASK (ALLOW SOME TIME)
|
||||
TC WAITLIST
|
||||
EBANK= BZERO
|
||||
2CADR ROLLDAP
|
||||
|
||||
NEEDLEUP TC IBNKCALL # DO A NEEDLES UPDATE (RETURNS AFTER CADR)
|
||||
CADR NEEDLER # (NEEDLES RESTARTS ITSELF)
|
||||
|
||||
VARGAINS CAF BIT13 # CHECK ENGINE-ON BIT TO INHIBIT VARIABLE
|
||||
EXTEND # GAINS AND MASS IF ENGINE OFF
|
||||
RAND DSALMOUT # CHANNEL 11
|
||||
CCS A
|
||||
TCF +4 # ON , SO OK TO UPDATE GAINS AND MASS
|
||||
+5 CAF TWO # OFF, SO BYPASS MASS/GAIN UPDATES,
|
||||
TS TVCEXPHS # ALSO ENTRY FROM CCS BELOW WITH
|
||||
TCF 1SHOTCHK # VCNTR = -0 (V97 R40 ENGFAIL)
|
||||
CCS VCNTR # TEST FOR GAIN OF UPDATE TIME
|
||||
TCF +4 # NOT YET
|
||||
# Page 947
|
||||
TCF GAINCHNG # NOW
|
||||
TCF +0 # NOT USED
|
||||
TCF VARGAINS +5 # NO, LOTHRUST (S40.8 R40)
|
||||
|
||||
+4 TS VCNTRTMP # PROTECT VCNTR AND
|
||||
CAE CSMMASS # CSMMASS DURING AN IMPULSIVE BURN
|
||||
TS MASSTMP
|
||||
TCF EXECCOPY
|
||||
|
||||
GAINCHNG TC IBNKCALL # UPDATE IXX, IAVG, IAVG/TLX
|
||||
CADR FIXCW # MASSPROP ENTRY (ALREADY INITIALIZED)
|
||||
TC IBNKCALL # UPDATE 1/CONACC, VARK
|
||||
CADR S40.15 # (S40.15 IS IN TVCINITIALIZE)
|
||||
CS TENMDOT # UPDATE MASS FOR NEXT 10 SEC. OF BURN
|
||||
AD CSMMASS
|
||||
TS MASSTMP # KG B+16
|
||||
|
||||
CAF NINETEEN # RESET THE VARIABLE-GAIN UPDATE COUNTER
|
||||
TS VCNTRTMP
|
||||
|
||||
EXECCOPY INCR TVCEXPHS # RESTART-PROTECT THE COPYCYCLE (1)
|
||||
|
||||
CAE MASSTMP # CSMMASS KG B+16
|
||||
TS CSMMASS
|
||||
|
||||
CAE VCNTRTMP # VCNTR
|
||||
TS VCNTR
|
||||
TS V97VCNTR # FOR ENGFAIL (R41) MASS UPDATES AT SPSOFF
|
||||
|
||||
INCR TVCEXPHS # COPYCYCLE OVER (2)
|
||||
|
||||
1SHOTCHK CCS CNTR # CHECK TIME FOR ONE-SHOT OR REPCORR
|
||||
TCF +4 # NOT YET
|
||||
TCF 1SHOTOK # NOW
|
||||
TCF REPCHEK # ONE-SHOT OVER, ON TO REPCORR
|
||||
TCF 1SHOTOK # NOW (ONE-SHOT ONLY, NO REPCORR)
|
||||
|
||||
+4 TS CNTRTMP # COUNT DOWN
|
||||
CAF SIX # SET UP TVCEXPHS FOR ENTRY AT CNTRCOPY
|
||||
TS TVCEXPHS
|
||||
TCF CNTRCOPY
|
||||
|
||||
REPCHEK CAE REPFRAC # CHECK FOR REPETITIVE UPDATES
|
||||
EXTEND
|
||||
BZMF TVCEXFIN # NO, OVER-AND-OUT
|
||||
TS TEMPDAP +1 # YES, SET UP CORRECTION FRACTION
|
||||
CAF FOUR # SET UP TVCEXPHS FOR ENTRY AT CORSETUP
|
||||
TS TVCEXPHS
|
||||
TCF CORSETUP
|
||||
# Page 948
|
||||
1SHOTOK CAF BIT13 # CHECK ENGINE-ON BIT, NOT PERMITTING
|
||||
EXTEND # ONE-SHOT DURING ENGINE-SHUTDOWN
|
||||
RAND DSALMOUT
|
||||
CCS A
|
||||
TCF +2 # ONE-SHOT OK
|
||||
TCF TVCEXFIN # NO, TERMINATE
|
||||
|
||||
INCR TVCEXPHS # (3)
|
||||
|
||||
# RSB 2009. The following instruction was previously "CAE FCORFRAC", but FCORFRAC
|
||||
# is not in erasable memory as implied by the use of CAE. I've accordingly changed
|
||||
# it to CAF instead to indicate fixed memory.
|
||||
TEMPSET CAF FCORFRAC # SET UP CORRECTION FRACTION
|
||||
TS TEMPDAP +1
|
||||
|
||||
INCR TVCEXPHS # ENTRY FROM REPCHECK AT NEXT LOCATION (4)
|
||||
|
||||
CORSETUP CAE DAPDATR1 # CHECK FOR LEM-OFF/ON
|
||||
MASK BIT13 # (NOTE, SHOWS LEM-OFF)
|
||||
EXTEND
|
||||
BZF +2 # LEM IS ON, PICK UP TEMPDAP+1
|
||||
CAE TEMPDAP +1 # LEM IS OFF, PICK UP 2(TEMPDAP+1)
|
||||
AD TEMPDAP +1
|
||||
TS TEMPDAP # CG.CORR USES TEMPDAP
|
||||
|
||||
CAF NEGONE # SET UP FOR CNTR = -1 (ONE-SHOT DONE)
|
||||
TS CNTRTMP # (COPYCYCLE AT .CNTRCOPY. )
|
||||
|
||||
CG.CORR EXTEND # PITCH TMC LOOP
|
||||
DCA PDELOFF
|
||||
DXCH PACTTMP
|
||||
EXTEND
|
||||
DCS PDELOFF
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
DXCH TTMP1
|
||||
EXTEND
|
||||
DCA DELPBAR
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
DAS TTMP1
|
||||
EXTEND
|
||||
DCA TTMP1
|
||||
EXTEND
|
||||
MP TEMPDAP
|
||||
DAS PACTTMP
|
||||
|
||||
EXTEND # YAW TMC LOOP
|
||||
DCA YDELOFF
|
||||
DXCH YACTTMP
|
||||
EXTEND
|
||||
DCS YDELOFF
|
||||
DDOUBL
|
||||
# Page 949
|
||||
DDOUBL
|
||||
DXCH TTMP1
|
||||
EXTEND
|
||||
DCA DELYBAR
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
DAS TTMP1
|
||||
EXTEND
|
||||
DCA TTMP1
|
||||
EXTEND
|
||||
MP TEMPDAP
|
||||
DAS YACTTMP
|
||||
|
||||
CORCOPY INCR TVCEXPHS # RESTART PROTECT THE COPYCYCLE (5)
|
||||
|
||||
EXTEND # TRIM-ESTIMATES, AND
|
||||
DCA PACTTMP
|
||||
TS PACTOFF # TRIMS
|
||||
DXCH PDELOFF
|
||||
|
||||
EXTEND
|
||||
DCA YACTTMP
|
||||
TS YACTOFF
|
||||
DXCH YDELOFF
|
||||
|
||||
INCR TVCEXPHS # ENTRY FROM 1SHOTCHK AT NEXT LOCATION (6)
|
||||
|
||||
CNTRCOPY CAE CNTRTMP # UPDATE CNTR (RESTARTS OK, FOLLOWS CPYCY)
|
||||
TS CNTR
|
||||
|
||||
TVCEXFIN CAF ZERO # RESET TVCEXPHS
|
||||
TS TVCEXPHS
|
||||
TCF TASKOVER # TVCEXECUTIVE FINISHED
|
||||
|
||||
FCORFRAC OCT 10000 # ONE-SHOT CORRECTION FRACTION
|
||||
|
||||
# Page 950 (page is empty)
|
||||
|
414
Comanche055/TVCINITIALIZE.agc
Normal file
414
Comanche055/TVCINITIALIZE.agc
Normal file
@ -0,0 +1,414 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TVCINITIALIZE.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: Jim Lawton <jim.lawton@gmail.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 936-944
|
||||
# Mod history: 2009-05-11 JVL Adapted from the Colossus249/ file
|
||||
# of the same name, using Comanche055 page
|
||||
# images.
|
||||
# 2009-05-20 RSB Corrections: +80 -> +8D, added 4 missing
|
||||
# lines in TVCINIT1, changed the capitalization
|
||||
# of a couple of the "Page N" comments,
|
||||
# corrected a couple of lines in LOADCOEFF.
|
||||
# 2009-05-22 RSB In LOADCOEF, DXCH N10 +14D corrected to
|
||||
# TS N10 +14D. Also, various comment-marks
|
||||
# were added to comments following this
|
||||
# change.
|
||||
#
|
||||
# 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 937
|
||||
# NAME TVCDAPON (TVC DAP INITIALIZATION AND STARTUP CALL)
|
||||
# LOG SECTION...TVCINITIALIZE SUBROUTINE...DAPCSM
|
||||
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
# PERFORMS TVCDAP INITIALIZATION (GAINS, TIMING PARAMETERS, FILTER VARIABLES, ETC.)
|
||||
# COMPUTES STEERING (S40.8) GAIN KPRIMEDT, AND ZEROES PASTDELV,+1 VARIABLE
|
||||
# MAKES INITIALIZATION CALL TO "NEEDLER" FOR TVC DAP NEEDLES-SETUP
|
||||
# PERFORMS INITIALIZATION FOR ROLL DAP
|
||||
# CALLS TVCEXECUTIVE AT TVCEXEC, VIA WAITLIST
|
||||
# CALLS TVCDAP CDU-RATE INITIALIZATION PKG AT DAPINIT VIA T5
|
||||
# PROVIDES FOR LOADING OF LOW-BANDWIDTH COEFFS AND GAINS AT SWICHOVR
|
||||
# CALLING SEQUENCE - T5LOC=2CADR(TVCDAPON,EBANK=BZERO), T5=.6SECT5
|
||||
# IN PARTICULAR, CALLED BY "DOTVCON" IN P40
|
||||
# MRCLEAN AND TVCINIT4 ARE POSSIBLE TVC-RESTART ENTRY POINTS
|
||||
# NORMAL EXIT MODE
|
||||
# TCF RESUME
|
||||
# SUBROUTINES CALLED
|
||||
# NEEDLER, MASSPROP
|
||||
# ALARM OR ABORT EXIT MODES
|
||||
# NONE
|
||||
# ERASABLE INITIALIZATION REQUIRED
|
||||
# CSMMASS, LEMMASS, DAPDATR1 (FOR MASSPROP SUBROUTINE)
|
||||
# TVC PAD LOADS (SEE EBANK6 IN ERASABLE ASSIGNMENTS)
|
||||
# PACTOFF, YACTOFF, CDUX
|
||||
# TVCPHASE AND THE T5 BITS OF FLAGWRD6 (SET AT DOTVCON IN P40)
|
||||
# OUTPUT
|
||||
# ALL TVC AND ROLL DAP ERASABLES, FLAGWRD6 (BITS 13,14), T5, WAITLIST
|
||||
# DEBRIS
|
||||
# NONE
|
||||
|
||||
COUNT* $$/INIT
|
||||
BANK 17
|
||||
SETLOC DAPS7
|
||||
BANK
|
||||
|
||||
EBANK= BZERO
|
||||
|
||||
TVCDAPON LXCH BANKRUPT # T5 RUPT ARRIVAL (CALL BY DOTVCON - P40)
|
||||
EXTEND # SAVE Q REQUIRED IN RESTARTS (MRCLEAN AND
|
||||
QXCH QRUPT # TVCINIT4 ARE ENTRIES)
|
||||
MRCLEAN CAF NZERO # NUMBER TO ZERO, LESS ONE (MUST BE ODD)
|
||||
# TVC RESTARTS ENTER HERE (NEW BANK)
|
||||
+1 CCS A
|
||||
TS CNTR
|
||||
CAF ZERO
|
||||
TS L
|
||||
INDEX CNTR
|
||||
DXCH OMEGAYC # FIRST (LAST) TWO LOCATIONS
|
||||
CCS CNTR
|
||||
TCF MRCLEAN +1
|
||||
# Page 938
|
||||
EXTEND # SET UP ANOTHER T5 RUPT TO CONTINUE
|
||||
DCA INITLOC2 # INITIALIZATION AT TVCINIT1
|
||||
DXCH T5LOC # THE PHSCHK2 ENTRY (REDOTVC) AT TVCDAPON
|
||||
CAF POSMAX # +3 IS IN ANOTHER BANK. MUST RESET
|
||||
TS TIME5 # BBCON TOO (FULL 2CADR), FOR THAT
|
||||
ENDMRC TCF RESUME # ENTRY.
|
||||
|
||||
TVCINIT1 LXCH BANKRUPT
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
|
||||
TC IBNKCALL # UPDATE IXX, IAVG/TLX FOR DAP GAINS (R03
|
||||
CADR MASSPROP # OR NOUNS 46 AND 47 MUST BE CORRECT)
|
||||
|
||||
CAE EMDOT # SPS FLOW RATE, SCALED B+3 KG/CS
|
||||
EXTEND
|
||||
MP ONETHOU
|
||||
TS TENMDOT # 10-SEC MASS LOSS B+16 KG
|
||||
COM
|
||||
AD CSMMASS
|
||||
TS MASSTMP # DECREMENT FOR FIRST 10 SEC OF BURN
|
||||
|
||||
CAE DAPDATR1 # CHECK LEM-ON/OFF
|
||||
MASK BIT14
|
||||
CCS A
|
||||
CAF BIT1 # LEM-ON (BIT1)
|
||||
TS CNTR # LEM-OFF (ZERO)
|
||||
|
||||
INDEX CNTR # LOAD THE FILTER COEFFICIENTS
|
||||
CAF CSMCFADR
|
||||
TS COEFFADR
|
||||
TC LOADCOEF
|
||||
|
||||
INDEX CNTR # PICK UP LM-OFF,-ON KTLX/I
|
||||
CAE EKTLX/I # SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE
|
||||
TS KTLX/I
|
||||
|
||||
TCR S40.15 # COMPUTE 1/CONACC , VARK
|
||||
|
||||
TVCINIT2 CS CNTR # PICK LM-OFF,-ON VALUE FOR FILTER PERIOD
|
||||
INDEX A # DETERMINATION:
|
||||
CAF BIT2 # BIT2 FOR CSM ONLY 40MS FILTER
|
||||
TS KPRIMEDT # BIT3 FOR CSM/LM 80MS FILTER
|
||||
|
||||
COM # PREPARE T5TVCDT
|
||||
AD POSMAX
|
||||
AD BIT1
|
||||
TS T5TVCDT
|
||||
|
||||
CS BIT15 # RESET SWTOVER FLAG
|
||||
# Page 939
|
||||
MASK FLAGWRD9
|
||||
TS FLAGWRD9
|
||||
|
||||
INDEX CNTR # PICK UP LEM-OFF,-ON KPRIME
|
||||
CAE EKPRIME # SCALED (100 PI)/16
|
||||
EXTEND
|
||||
MP KPRIMEDT # (TVCDT/2, SC.AT B+14CS)
|
||||
LXCH A # SC.AT PI/8 (DIMENSIONLESS)
|
||||
DXCH KPRIMEDT
|
||||
|
||||
INDEX CNTR # PICK UP LEM-OFF,-ON REPFRAC
|
||||
CAE EREPFRAC
|
||||
TS REPFRAC
|
||||
|
||||
INDEX CNTR # PICK UP ONE-SHOT CORRECTION TIME
|
||||
CAF TCORR
|
||||
TS CNTR
|
||||
|
||||
CAF NEGONE # PREVENT STROKE TEST UNTIL CALLED
|
||||
TS STRKTIME
|
||||
|
||||
CAF NINETEEN # SET VCNTR FOR VARIABLE-GAIN UPDATES IN
|
||||
TS VCNTR # 10 SECONDS (TVCEXEC 1/2 SEC RATE)
|
||||
TS V97VCNTR # FOR ENGFAIL (R41) LOGIC
|
||||
|
||||
TVCINIT3 CAE PACTOFF # TRIM VALUES TO TRIM-TRACKERS, OUTPUT
|
||||
TS PDELOFF # TRACKERS, OFFSET-UPDATES, AND
|
||||
TS PCMD # OFFSET-TRACKER FILTERS
|
||||
TS DELPBAR # NOTE, LO-ORDER DELOFF,DELBAR ZEROED
|
||||
|
||||
CAE YACTOFF
|
||||
TS YDELOFF
|
||||
TS YCMD
|
||||
TS DELYBAR
|
||||
|
||||
ATTINIT CAE DAPDATR1 # ATTITUDE-ERROR INITIALIZATION LOGIC
|
||||
MASK BIT13 # TEST FOR CSM OR CSM/LM
|
||||
EXTEND
|
||||
BZF NEEDLEIN # BYPASS INITIALIZATION FOR CSM/LM
|
||||
|
||||
CAF BIT1 # SET UP TEMPORARY COUNTER
|
||||
+5 TS TTMP1
|
||||
|
||||
INDEX TTMP1
|
||||
CA ERRBTMP # ERRBTMP CONTAINS RCS ATTITUDE ERRORS
|
||||
EXTEND # ERRORY & ERRORZ (P40 AT DOTVCON)
|
||||
MP 1/ATTLIM # .007325(ERROR) = 0 IF ERROR < 1.5 DEG
|
||||
EXTEND
|
||||
BZF +8D # |ERROR| LESS THAN 1.5 DEG
|
||||
EXTEND
|
||||
# Page 940
|
||||
BZMF +3 # |ERROR| > 1.5 DEG, AND NEG
|
||||
CA ATTLIM # |ERROR| > 1.5 DEG, AND POS
|
||||
TCF +2
|
||||
+3 CS ATTLIM
|
||||
+2 INDEX TTMP1
|
||||
TS ERRBTMP
|
||||
+8 CCS TTMP1 # TEST TEMPORARY COUNTER
|
||||
TCF ATTINIT +5 # BACK TO REPEAT FOR PITCH ERROR
|
||||
|
||||
CA ERRBTMP # ERRORS ESTABLISHED AND LIMITED
|
||||
TS PERRB
|
||||
CA ERRBTMP +1
|
||||
TS YERRB
|
||||
|
||||
NEEDLEIN CS RCSFLAGS # SET BIT 3 FOR INITIALIZATION PASS AND GO
|
||||
MASK BIT3 # TO NEEDLER. WILL CLEAR FOR TVC DAP
|
||||
ADS RCSFLAGS # (RETURNS AFTER CADR)
|
||||
TC IBNKCALL
|
||||
CADR NEEDLER
|
||||
|
||||
TVCINIT4 CAF ZERO # SET TVCPHASE TO INDICATE TVCDAPON-THRU-
|
||||
TS TVCPHASE # NEEDLEIN INITIALIZATION FINISHED.
|
||||
# (POSSIBLE TVC-RESTART ENTRY)
|
||||
|
||||
CAE CDUX # PREPARE ROLL DAP
|
||||
TS OGANOW
|
||||
|
||||
CAF BIT13 # IF ENGINE IS ALREADY OFF, ENGINOFF HAS
|
||||
EXTEND # ALREADY ESTABLISHED THE POST-BURN
|
||||
RAND DSALMOUT # CSMMASS (MASSBACK DOES IT). DONT
|
||||
EXTEND # TOUCH CSMMASS. IF ENGINE IS ON,
|
||||
BZF +3 # THEN ITS OK TO DO THE COPYCYCLE
|
||||
# EVEN BURNS LESS THAN 0.4 SEC ARE AOK
|
||||
|
||||
CAE MASSTMP # COPYCYCLE
|
||||
TS CSMMASS
|
||||
|
||||
+3 CAF .5SEC # CALL TVCEXECUTIVE (ROLLDAP CALL, ETC)
|
||||
TC WAITLIST
|
||||
EBANK= BZERO
|
||||
2CADR TVCEXEC
|
||||
|
||||
EXTEND # CALL FOR DAPINIT
|
||||
DCA DAPINIT5
|
||||
DXCH T5LOC
|
||||
CAE T5TVCDT # (ALLOW TIME FOR RESTART COMPUTATIONS)
|
||||
TS TIME5
|
||||
# Page 941
|
||||
ENDTVCIN TCF RESUME
|
||||
|
||||
PRESWTCH TCR SWICHOVR # ENTRY FROM V46
|
||||
|
||||
TC POSTJUMP # THIS PROVIDES AN EXIT FROM SWITCH-OVER
|
||||
CADR PINBRNCH # (PINBRNCH DOES A RELINT)
|
||||
|
||||
SWICHOVR INHINT
|
||||
CA TVCPHASE # SAVE TVCPHASE
|
||||
TS PHASETMP
|
||||
CS BIT2 # SET TVCPHASE = -2 (INDICATES SWITCH-OVER
|
||||
TS TVCPHASE # TO RESTART LOGIC)
|
||||
|
||||
+5 EXTEND # SAVE Q FOR RETURN (RESTART ENTRY POINT,
|
||||
QXCH RTRNLOC # TVCPHASE AND PHASETMP ALREADY SET)
|
||||
|
||||
CAF NZEROJR # ZEROING LOOP FOR FILTER STORAGE LOCS
|
||||
+8 TS CNTRTMP
|
||||
|
||||
MCLEANJR CA ZERO
|
||||
TS L
|
||||
INDEX CNTRTMP
|
||||
DXCH PTMP1 -1
|
||||
CCS CNTRTMP
|
||||
CCS A
|
||||
TCF SWICHOVR +8D
|
||||
|
||||
CS FLAGWRD9 # SET SWITCHOVER FLAG FOR DOWNLINK
|
||||
MASK BIT15
|
||||
ADS FLAGWRD9
|
||||
|
||||
CAE EKTLX/I +2 # LOW BANDWIDTH GAINS - DAP
|
||||
TS KTLX/I
|
||||
TCR S40.15 +7
|
||||
|
||||
CAF FKPRIMDT # - STEERING
|
||||
TS KPRIMEDT
|
||||
|
||||
CAF FREPFRAC # - TMC LOOP
|
||||
TS REPFRAC
|
||||
|
||||
EXTEND # UPDATE TRIM ESTIMATES
|
||||
DCA DELPBAR
|
||||
DXCH PDELOFF
|
||||
EXTEND
|
||||
DCA DELYBAR
|
||||
DXCH YDELOFF
|
||||
|
||||
CA LBCFADR
|
||||
# Page 942
|
||||
TS COEFFADR
|
||||
TC LOADCOEF
|
||||
|
||||
CAE PHASETMP # RESTORE TVCPHASE
|
||||
TS TVCPHASE
|
||||
|
||||
TC RTRNLOC # BACK TO PRESWTCH OR TVCRESTARTS
|
||||
|
||||
LOADCOEF EXTEND # LOAD DAP FILTER COEFFICIENTS
|
||||
INDEX COEFFADR # FROM: ERASABLE FOR CSM/LM HB
|
||||
DCA 0 # FIXED FOR CSM/LM LB
|
||||
DXCH N10 # FIXED FOR CSM
|
||||
|
||||
EXTEND # NOTE: FOR CSM/LM, NORMAL COEFFICIENT
|
||||
INDEX COEFFADR # LOAD WILL BE HIGH BANDWIDTH PAD LOAD
|
||||
DCA 2 # ERASABLES. DURING CSM/LM SWITCHOVER,
|
||||
DXCH N10 +2 # THIS LOGIC IS USED TO LOAD LOW BANDWIDTH
|
||||
# COEFFICIENTS FROM FIXED MEMORY.
|
||||
|
||||
EXTEND
|
||||
INDEX COEFFADR
|
||||
DCA 4
|
||||
DXCH N10 +4
|
||||
|
||||
EXTEND
|
||||
INDEX COEFFADR
|
||||
DCA 6
|
||||
DXCH N10 +6
|
||||
|
||||
EXTEND
|
||||
INDEX COEFFADR
|
||||
DCA 8D
|
||||
DXCH N10 +8D
|
||||
|
||||
EXTEND
|
||||
INDEX COEFFADR
|
||||
DCA 10D
|
||||
DXCH N10 +10D
|
||||
|
||||
EXTEND
|
||||
INDEX COEFFADR
|
||||
DCA 12D
|
||||
DXCH N10 +12D
|
||||
|
||||
INDEX COEFFADR
|
||||
CA 14D
|
||||
TS N10 +14D
|
||||
|
||||
TC Q
|
||||
# Page 943
|
||||
S40.15 CAE IXX # GAIN COMPUTATIONS (1/CONACC, VARK)
|
||||
EXTEND # ENTERED FROM TVCINITIALIZE AND TVCEXEC
|
||||
MP 2PI/M # 2PI/M SCALED 1/(B+8 N M)
|
||||
DDOUBL # IXX SCALED B+20 KG-MSQ
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
TS 1/CONACC # SCALED B+9 SEC-SQ/REV
|
||||
|
||||
+7 CAE KTLX/I # ENTRY FROM CSM/LM V46 SWITCH-OVER
|
||||
EXTEND # SCALED (B+3 ASCREV) 1/SECSQ
|
||||
MP IAVG/TLX # SCALED B+2 SECSQ
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
TS VARK # SCALED (B+3 ASCREV)
|
||||
TC Q
|
||||
|
||||
CSMN10 DEC .99999 # N10 CSM ONLY FILTER COEFFICIENTS
|
||||
DEC -.2549 # N11/2
|
||||
DEC .0588 # N12
|
||||
DEC -.7620 # D11/2
|
||||
DEC .7450 # D12
|
||||
|
||||
DEC .99999 # N20
|
||||
DEC -.4852 # N21/2
|
||||
DEC 0 # N22
|
||||
DEC -.2692 # D22/2
|
||||
DEC 0 # D22
|
||||
|
||||
LBN10 DEC +.99999 # N10 LOW BANDWIDTH FILTER COEFFICIENTS
|
||||
DEC -.3285 # N11/2
|
||||
DEC -.3301 # N12
|
||||
DEC -.9101 # D11/2
|
||||
DEC +.8460 # D12
|
||||
|
||||
DEC +.03125 # N20
|
||||
DEC 0 # N21/2
|
||||
DEC 0 # N22
|
||||
DEC -.9101 # D21/2
|
||||
DEC +.8460 # D22
|
||||
|
||||
DEC +.5000 # N30
|
||||
DEC -.47115 # N31/2
|
||||
DEC +.4749 # N32
|
||||
DEC -.9558 # D31/2
|
||||
DEC +.9372 # D32
|
||||
|
||||
CSMCFADR GENADR CSMN10 # CSM ONLY COEFFICIENTS ADDRESS
|
||||
HBCFADR GENADR HBN10 # HIGH BANDWIDTH COEFFICIENTS ADDRESS
|
||||
# Page 944
|
||||
LBCFADR GENADR LBN10 # LOW BANDWIDTH COEFFICIENTS ADDRESS
|
||||
|
||||
NZERO DEC 51 # MUST BE ODD FOR MRCLEAN
|
||||
NZEROJR DEC 23 # MUST BE ODD FOR MCLEANJR
|
||||
|
||||
ATTLIM DEC 0.00833 # INITIAL ATTITUDE ERROR LIMIT (1.5 DEG)
|
||||
1/ATTLIM DEC 0.007325 # .007325(ERROR) = 0 IF ERROR < 1.5 DEG
|
||||
|
||||
TCORR OCT 00005 # CSM
|
||||
+1 OCT 00000 # CSM/LM (HB,LB)
|
||||
|
||||
FKPRIMDT DEC .0102 # CSM/LM (LB), (.05 X .08) SCALED AT PI/8
|
||||
FREPFRAC DEC .0375 B-2 # CSM/LM (LB), 0.0375 SCALED AT B+2
|
||||
|
||||
NINETEEN = VD1
|
||||
2PI/M DEC .00331017 B+8 # 2PI/M, SCALED AT 1/(B+8 N-M)
|
||||
|
||||
ONETHOU DEC 1000 B-13 # KG/CS B3 TO KG/10SEC B16 CONVERSION
|
||||
|
||||
EBANK= BZERO
|
||||
DAPINIT5 2CADR DAPINIT
|
||||
|
||||
EBANK= BZERO
|
||||
INITLOC2 2CADR TVCINIT1
|
||||
|
245
Comanche055/TVCMASSPROP.agc
Normal file
245
Comanche055/TVCMASSPROP.agc
Normal file
@ -0,0 +1,245 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TVCMASSPROP.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: 951-955
|
||||
# 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 951
|
||||
# PROGRAM NAME....MASSPROP
|
||||
# LOG SECTION....TVCMASSPROP PROGRAMMER...MELANSON (ENGEL, SCHLUNDT)
|
||||
#
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION:
|
||||
#
|
||||
# MASSPROP OPERATES IN TWO MODES:(1)IF LEM MASS OR CONFIGURATION ARE UPDATED (MASSPROP DOES NOT TEST
|
||||
# FOR THIS) THE ENTIRE PROGRAM MUST BE RUN THROUGH, BREAKPOINT VALUES AND DERIVATIVES OF THE OUTPUTS WITH
|
||||
# RESPECT TO CSM MASS BEING CALCULATED PRIOR TO CALCULATION OF THE OUTPUTS. (2)OTHERWISE, THE OUTPUTS CAN BE
|
||||
# CALCULATED USING PREVIOUSLY COMPUTED BREAKPOINT VALUES AND DERIVATIVES.
|
||||
#
|
||||
# CALLING SEQUENCES
|
||||
#
|
||||
# IF LEM MASS OR CONFIGURATION HAS BEEN UPDATED, TRANSFER TO MASSPROP, OTHERWISE TRANSFER TO FIXCW.
|
||||
# L TC BANKCALL OR IBNKCALL
|
||||
# L+1 CADR MASSPROP
|
||||
# OR
|
||||
# L+1 CADR FIXCW
|
||||
#
|
||||
# L+2 RETURNS VIA Q
|
||||
#
|
||||
# CALLED IN PARTICULAR BY DONOUN47 (JOB) AND TVCEXECUTIVE (TASK)
|
||||
#
|
||||
# JOBS OR TASKS INITIATED - NONE
|
||||
#
|
||||
# SUBROUTINES CALLED - NONE
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED
|
||||
#
|
||||
# LEMMASS MUST CONTAIN LEM MASS SCALED AT B+16 KILOGRAMS
|
||||
# CSMMASS MUST CONTAIN CSM MASS SCALED AT B+16 KILOGRAMS
|
||||
#
|
||||
# DAPDATR1 MUST BE SET TO INDICATE VEHICLE CONFIGURATION.
|
||||
# BITS (15,14,13) = ( 0 , 0 , 1 ) LEM OFF
|
||||
# ( 0 , 1 , 0 ) LEM ON (ASCNT,DSCNT)
|
||||
# ( 1 , 1 , 0 ) LEM ON (ASCNT ONLY)
|
||||
#
|
||||
#
|
||||
# ALARMS - NONE
|
||||
#
|
||||
# EXIT - TC Q
|
||||
#
|
||||
# OUTPUTS:
|
||||
#
|
||||
# (1)IXX, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
|
||||
# (2)IAVG, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
|
||||
# (3)IAVG/TLX, SINGLE PRECISION, SCALED AT B+2 SEC-SQD
|
||||
# THEY ARE STORED IN CONSECUTIVE REGISTERS IXX0, IXX1, IXX2
|
||||
#
|
||||
# CONVERSION FACTOR : (SLUG-FTSQ) = 0.737562 (KG-MSQ)
|
||||
# Page 952
|
||||
#
|
||||
# OUTPUTS ARE CALCULATED AS FOLLOWS:
|
||||
#
|
||||
# (1) IF LEM DOCKED, LEMMASS IS FIRST ELIMINATED AS A PARAMETER
|
||||
#
|
||||
# VARST0 = INTVALUE0 + LEMMASS(SLOPEVAL0) IXX BREAKPOINT VALUE
|
||||
# VARST1 = INTVALUE1 + LEMMASS(SLOPEVAL1) IAVG BREAKPOINT VALUE
|
||||
# VARST2 = INTVALUE2 + LEMMASS(SLOPEVAL2) IAVG/TLX BREAKPOINT VALUE
|
||||
#
|
||||
# VARST3 = INTVALUE3 + LEMMASS(SLOPEVAL3) IAVG/TLX SLOPE FOR CSMMASS > 33956 LBS ( SPS > 10000 LBS)
|
||||
# VARST4 = INTVALUE4 + LEMMASS(SLOPEVAL4) IAVG SLOPE FOR CSMMASS > 33956 LBS ( SPS > 10000 LBS)
|
||||
#
|
||||
# VARST5 = INTVALUE5 + LEMMASS(SLOPEVAL5) IXX SLOPE FOR ALL VALUES OF CSMMASS
|
||||
#
|
||||
# VARST6 = INTVALUE6 + LEMMASS(SLOPEVAL6) IAVG SLOPE FOR CSMMASS < 33956 LBS ( SPS < 10000 LBS)
|
||||
# VARST7 = INTVALUE7 + LEMMASS(SLOPEVAL7) IAVG/TLX SLOPE FOR CSMMASS < 33956 LBS ( SPS < 10000 LBS)
|
||||
#
|
||||
# VARST8 = INTVALUE8 + LEMMASS(SLOPEVAL8) IAVG DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
|
||||
# VARST9 = INTVALUE9 + LEMMASS(SLOPEVAL9) IAVG/TLX DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
|
||||
#
|
||||
# (2) IF LEM NOT DOCKED
|
||||
#
|
||||
# VARST0 = NOLEMVAL0 WHERE THE MEANING AND SCALING OF VARST0
|
||||
# . . TO VARST9 ARE THE SAME AS GIVEN ABOVE
|
||||
# . .
|
||||
# . . NOTE... FOR THIS CASE, VARST8,9 HAVE NO
|
||||
# VARST9 = NOLEMVAL9 MEANING (THEY ARE COMPUTED BUT NOT USED)
|
||||
#
|
||||
# (3) THE FINAL OUTPUT CALCULATIONS ARE THEN DONE
|
||||
#
|
||||
# IXX0 = VARST0 + (CSMMASS + NEGBPW)VARST5 IXX
|
||||
#
|
||||
# IXX1 = VARST1 + (CSMMASS + NEGBPW)VARST(4 OR 6) IAVG
|
||||
#
|
||||
# IXX2 = VARST2 + (CSMMASS + NEGBPW)VARST(3 OR 7) IAVG/TLX
|
||||
#
|
||||
#
|
||||
# THE DATA USED CAME FROM CSM/LM SPACECRAFT OPERATIONAL DATA BOOK.
|
||||
# VOL. 3, NASA DOCUMENT SNA-8-D-027 (MARCH 1968)
|
||||
#
|
||||
# PERTINENT MASS DATA : CSM WEIGHT (FULL) 64100 LBS.
|
||||
# (EMPTY) 23956 LBS.
|
||||
# LEM WEIGHT (FULL) 32000 LBS.
|
||||
# (EMPTY) 14116 LBS.
|
||||
#
|
||||
# (WEIGHTS ARE FROM AMENDMENT #1 (APRIL 24,1968) TO ABOVE DATA BOOK)
|
||||
# Page 953
|
||||
|
||||
BANK 25
|
||||
SETLOC DAPMASS
|
||||
BANK
|
||||
EBANK= BZERO
|
||||
COUNT* $$/MASP
|
||||
|
||||
|
||||
MASSPROP CAF NINE # MASSPROP USES TVC/RCS INTERRUPT TEMPS
|
||||
TS PHI333 # SET UP TEN PASSES
|
||||
|
||||
LEMTEST CAE DAPDATR1 # DETERMINE LEM STATUS
|
||||
MASK BIT13
|
||||
EXTEND
|
||||
BZF LEMYES
|
||||
|
||||
LEMNO INDEX PHI333 # LEM NOT ATTACHED
|
||||
CAF NOLEMVAL
|
||||
TCF STOINST
|
||||
|
||||
LEMYES CAE LEMMASS # LEM IS ATTACHED
|
||||
DOUBLE
|
||||
EXTEND
|
||||
INDEX PHI333
|
||||
MP SLOPEVAL
|
||||
DDOUBL
|
||||
INDEX PHI333
|
||||
AD INTVALUE
|
||||
|
||||
STOINST INDEX PHI333 # STORAGE INST BEGIN HERE
|
||||
TS VARST0
|
||||
CCS PHI333 # ARE ALL TEN PASSES COMPLETED
|
||||
TCF MASSPROP +1 # NO - GO DECREMENT PHI333
|
||||
|
||||
DXTEST CCS DAPDATR1 # IF NEG, BIT15 IS 1, LEM DSCNT STAGE OFF
|
||||
TCF FIXCW
|
||||
TCF FIXCW
|
||||
DXCH VARST0 +8D
|
||||
DAS VARST0 +1
|
||||
CA DXITFIX
|
||||
ADS VARST0 +7
|
||||
|
||||
FIXCW CAF BIT2 # COMPUTATION PHASE BEGINS HERE. SET UP
|
||||
TS PHI333 # THREE PASSES
|
||||
TS PSI333
|
||||
|
||||
CAE CSMMASS # GET DELTA CSM WEIGHT - SIGN DETERMINES
|
||||
AD NEGBPW # SLOPE LOCATIONS.
|
||||
DOUBLE
|
||||
TS TEMP333
|
||||
# Page 954
|
||||
EXTEND
|
||||
BZMF PEGGY # DETERMINE CORRECT SLOPE
|
||||
CAF NEG2
|
||||
TS PHI333
|
||||
|
||||
PEGGY INDEX PHI333 # ALL IS READY - CALCULATE OUTPUTS NOW
|
||||
CAE VARST5 # GET SLOPE
|
||||
EXTEND
|
||||
MP TEMP333 # MULT BY DELTA CSM WEIGHT
|
||||
DOUBLE
|
||||
INDEX PSI333
|
||||
AD VARST0 # ADD BREAKPOINT VALUE
|
||||
INDEX PSI333
|
||||
TS IXX # ****** OUTPUTS (IXX0, IXX1, IXX2) ******
|
||||
|
||||
|
||||
CCS PSI333 # BOOKKEEPING - MASSPROP FINISHED OR NOT
|
||||
TCF BOKKEP2 # NO - GO TAKE CARE OF INDEXING REGISTERS
|
||||
|
||||
CAE DAPDATR1 # UPDATE WEIGHT/G
|
||||
MASK BIT14
|
||||
CCS A
|
||||
CA LEMMASS
|
||||
AD CSMMASS
|
||||
TS WEIGHT/G # SCALED AT B+16 KILOGRAMS
|
||||
ENDMASSP TC Q
|
||||
|
||||
BOKKEP2 TS PSI333 # REDUCE PSI BY ONE
|
||||
EXTEND
|
||||
DIM PHI333
|
||||
TCF PEGGY
|
||||
|
||||
# Page 955
|
||||
NOLEMVAL DEC 25445 B-20
|
||||
DEC 87450 B-20
|
||||
DEC .30715 B-2
|
||||
DEC 1.22877 E-5 B+12
|
||||
DEC 1.6096 B-6
|
||||
DEC 1.54 B-6
|
||||
DEC 7.77177 B-6
|
||||
DEC 3.46458 E-5 B+12
|
||||
|
||||
INTVALUE DEC 26850 B-20
|
||||
DEC 127518 B-20
|
||||
DEC .54059 B-2
|
||||
DEC .153964 E-4 B+12
|
||||
DEC -.742923 B-6
|
||||
DEC 1.5398 B-6
|
||||
DEC 9.68 B-6
|
||||
DEC .647625 E-4 B+12
|
||||
DEC -27228 B-20
|
||||
DEC -.206476 B-2
|
||||
|
||||
SLOPEVAL DEC 1.96307 B-6
|
||||
DEC 27.5774 B-6
|
||||
DEC 2.3548 E-5 B+12
|
||||
DEC 2.1777 E-9 B+26
|
||||
DEC 1.044 E-3 B+8
|
||||
DEC 0
|
||||
DEC 2.21068 E-3 B+8
|
||||
DEC 1.5166 E-9 B+26
|
||||
DEC -1.284 B-6
|
||||
DEC 2 E-5 B+12
|
||||
|
||||
NEGBPW DEC -15402.17 B-16
|
||||
DXITFIX DEC* -1.88275 E-5 B+12*
|
256
Comanche055/TVCRESTARTS.agc
Normal file
256
Comanche055/TVCRESTARTS.agc
Normal file
@ -0,0 +1,256 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TVCRESTARTS.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: 956-960
|
||||
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
|
||||
# same name, using Comanche055 page images.
|
||||
# 2009-05-20 RSB Corrections: TCF -> BZF in one place.
|
||||
# 2009-05-21 RSB In PHSCHK2, CS TVCPHASE corrected to
|
||||
# CCS TVCPHASE and CCS 4 corrected to CCS A.
|
||||
# Page 924 corrected to 961. CORCOPY +2
|
||||
# corrected to CORCOPY +1.
|
||||
#
|
||||
# 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 956
|
||||
# NAME....TVCRESTART PACKAGE, CONSISTING OF REDOTVC, ENABL1, 2, CMDSOUT, PHSCHK2, ETC.
|
||||
# LOG SECTION...TVCRESTARTS SUBROUTINE....DAPCSM
|
||||
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
|
||||
# FUNCTIONAL DESCRIPTION....
|
||||
#
|
||||
# *RESTART-PROOFS THE TVC DAPS, INCLUDING PITCHDAP, YAWDAP,
|
||||
# TVCEXECUTIVE, ROLLDAP, TVCINIT4, TVCDAPON, AND CSM/LM V46 SWTCHOVR.
|
||||
# *TVC RESTARTS DESERVE SPECIAL CONSIDERATION IN SEVERAL AREAS.
|
||||
# RESTART DOWN-TIME IS IMPORTANT BECAUSE OF THE TRANSIENTS INTRODUCED
|
||||
# BY THE THRUST VECTOR RETURN TO THE ACTUATOR MECHANICAL NULLS
|
||||
# FOLLOWING TVC- AND OPTICS-ERROR-COUNTER-DISENABLES (CHANNEL 12).
|
||||
# TVC USES A MIXTURE OF WAITLIST, T5, T6, AND JOB CALLS. THERE IS
|
||||
# FILTER MEMORY (UP TO 6TH ORDER) TO BE PROTECTED IF WILD TRANSIENTS
|
||||
# ARE TO BE AVOIDED. COUNTERS ARE INVOLVED FOR ONE-SHOT
|
||||
# CORRECTIONS AND GAIN UPDATES. THE GIMBAL TRIM ESTIMATORS AND THE
|
||||
# BODY AXIS ATTITUDE ERROR INTEGRATORS INVOLVE DIGITAL SUMMATION.
|
||||
# DIGITAL DIFFERENTIATORS ARE INVOLVED IN THE BODY AXIS RATE ESTIMA-
|
||||
# TIONS AND IN THE OUTPUTTING OF ACTUATOR COMMANDS. THERE IS AN
|
||||
# OFFSET-TRACKER-FILTER TO PROTECT. ETC., ETC.
|
||||
# *THOSE QUANTITIES WHICH MUST BE PROTECTED ARE STORED IN TEMPORARY
|
||||
# REGISTERS AS THEY ARE COMPUTED, FOR UPDATING THE REAL REGISTERS
|
||||
# DURING COPYCYCLES.
|
||||
# *THE SEVERAL COPYCYCLES ARE EACH PROTECTED BY PHASE POINTS AT THEIR
|
||||
# BEGINNING AND AT THEIR TERMINATION. THE PHASE POINTS ARE SIMPLY
|
||||
# ..INCR.. INSTRUCTIONS, EITHER ..INCR TVCEXPHS.. FOR COPYCYCLES
|
||||
# IN THE TVCEXECUTIVE, OR ..INCR TVCPHASE.. FOR THE PITCH AND YAW
|
||||
# COPYCYCLES. INDEXING ON EACH OF THESE POINTERS THEN PERMITS A
|
||||
# RETURN TO THE APPROPRIATE RESTART POINTS.
|
||||
# *IF A RESTART OCCURS DURING EITHER COPYCYCLE, THAT COPYCYCLE IS
|
||||
# COMPLETED. THEN THE NORMAL TVCINIT4....DAPINIT....PITCHDAP STARTUP
|
||||
# SEQUENCE IS CALLED UPON TO GET THINGS GOING AGAIN.
|
||||
# *TVC-ENABLE AND OPTICS-ERROR-COUNTER ENABLE MUST BE SET ASAP
|
||||
# (ALLOWING FOR PROCEDURAL DELAYS). THEN THE ENGINES ARE COMMANDED
|
||||
# TO THE P,YACTOFF TRIM VALUES. THE DAPS ARE THEN READY TO GO ON THE
|
||||
# AIR, WITH THE REGULAR STARTUP SEQUENCE, EITHER AT MRCLEAN FOR A
|
||||
# COMPLETE INITIALIZATION OR AT TVCINIT4 FOR A PARTIAL INITIALIZATION
|
||||
# *FOR RESTARTS PRIOR TO THE SETTING OF THE T5 BITS AT DOTVCON THE
|
||||
# PRE40.6 SECTION OF S40.6 TAKES CARE OF RE-ESTABLISHING TRIMS.
|
||||
# *IF A RESTART OCCURS DURING THE TVCEXEC....TVCEXFIN SEQUENCE THE
|
||||
# COMPUTATIONS WILL BE COMPLETED, STARTING AT THE APPROPRIATE RESTART
|
||||
# POINT, AFTER THE DAPS ARE READY TO GO ON THE AIR.
|
||||
# *IF A RESTART OCCURS PRIOR TO TVCINIT4 (TVCPHASE = -1) E.G. DURING
|
||||
# THE EARLY DAP INITIALIZATION PHASE, THE DAP STARTUP SEQUENCE IS
|
||||
# ENTERED AT MRCLEAN FOR A FULL INITIALIZATION.
|
||||
# *FOR RESTARTS DURING CSM/LM V46 SWITCH-OVER, TVCPHASE IS SET TO -2,
|
||||
# AND THE RESTART LOGIC GOES BACK TO REDO SWITCH-OVER (AFTER THE
|
||||
# NORMAL DAP RESTART SEQUENCE IS FOLLOWED).
|
||||
# *RESTARTS ARE NOT CRITICAL TO THE ROLL DAP PERFORMANCES HENCE THE
|
||||
# ROLL DAP IS MERELY RESTARTED.
|
||||
# *RESTARTS DURING A STROKE TEST (STROKER IS NON-ZERO) WILL CAUSE THE
|
||||
# Page 957
|
||||
# STROKE TEST TO BE TERMINATED. A NEW V68 ENTRY WILL BE REQUIRED
|
||||
# TO GET IT GOING AGAIN (NO AUTOMATIC RESTART).
|
||||
# *REDOTVC IS REACHED FOLLOWING ANY RESTART WHICH FINDS THE T5 BITS
|
||||
# (BITS 15,14 OF FLAGWRD6) SET FOR TVC. DOTVCON SETS TVCPHASE = -1
|
||||
# AND TVC EXPHS = 0 JUST BEFORE SETTING THESE BITS, JUST BEFORE
|
||||
# MAKING THE T5 CALL TO TVCDAPON. ON A NORMAL SHUTDOWN DOTVCRCS
|
||||
# CALLS RCSDAPON, WHICH RESETS THE T5 BIT FOR RCS.
|
||||
# CALLING SEQUENCE....T5, IN PARTICULAR BY ELRSKIP OF FRESH START/RESTART
|
||||
#
|
||||
# NORMAL EXIT MODES....RESUME, NOQRSM, POSTJUMP (TO TVCINIT4 OR MRCLEAN)
|
||||
#
|
||||
# ALARM OR ABORT EXIT MODES....NONE
|
||||
#
|
||||
# SUBROUTINES CALLED....
|
||||
#
|
||||
# *PCOPY+1, YCOPY+1 (PITCH AND YAW COPYCYCLES)
|
||||
# *ENABLE1,2, CMDSOUT (RE-ESTABLISH ACTUATOR TRIMS)
|
||||
# *MRCLEAN OR TVCINIT4 (TVCDAP INITIALIZATIONS)
|
||||
# *SWICHOVR +5 (CSM/LM V46 SWITCH-OVER)
|
||||
# *EXRSTRT AND TVCEXECUTIVE PHASE POINTS 1 THRU 6
|
||||
# *WAITLIST, IBNKCALL, POSTJUMP, ISWCALL
|
||||
#
|
||||
# OTHER INTERFACES....DOTVCON AND RCSDAPON (T5 BITS), ELRSKIP (CALLS IT)
|
||||
# ERASABLE INITIALIZATION REQUIRED....
|
||||
#
|
||||
# *T5 BITS (1,0), TVCPHASE (-2,-1,0,1,2,3), TVCEXPHS (1 THRU 6)
|
||||
# *TVC DAP VARIABLES
|
||||
# *OPERATIONS PERFORMED BY REDOTVC ARE BASED ON THE ASSUMPTION THAT
|
||||
# THE TVC DAPS ARE RUNNING NORMALLY
|
||||
#
|
||||
# OUTPUT....
|
||||
#
|
||||
# *PITCH AND YAW TVC DAP COPYCYCLES COMPLETED IF INTERUPTED
|
||||
# *TVCEXECUTIVE COMPLETED IF INTERUPTED
|
||||
# *STROKE TEST TERMINATED IF INTERRUPTED
|
||||
# *CSM/LM V46 SWITCH-OVER REPEATED IF INTERRUPTED
|
||||
# *ACTUATOR TRIMS RE-ESTABLISHED (ACTUATORS BACK ON THE AIR)
|
||||
# *TVC DAP INITIALIZATION AS REQUIRED
|
||||
# *ALL TVC DAP OPERATIONS ON THE AIR
|
||||
#
|
||||
# DEBRIS....TVC TEMPORARIES IN EBANK6
|
||||
|
||||
# Page 958
|
||||
|
||||
BANK 16
|
||||
SETLOC DAPROLL
|
||||
BANK
|
||||
EBANK= TVCPHASE
|
||||
COUNT* $$/RSRT
|
||||
|
||||
REDOTVC LXCH BANKRUPT # TVC RESTART PACKAGE
|
||||
EXTEND
|
||||
QXCH QRUPT # ( ..TCR.. IN ..FINCOPY.. )
|
||||
|
||||
EXECPHS CCS TVCEXPHS # CHECK TVCEXECUTIVE PHASE
|
||||
TCF +2 # MUST RESTART TVCEXECUTIVE
|
||||
TCF TVCDAPHS # NO NEED TO RESTART TVCEXECUTIVE
|
||||
|
||||
CAF NINE # 9CS DELAY TO FORCE EXRSTRT TO OCCUR
|
||||
TC WAITLIST # BEFORE PITCHDAP, AFTER CMDSOUT
|
||||
EBANK= TVCEXPHS
|
||||
2CADR EXRSTRT
|
||||
|
||||
TVCDAPHS CS OCT37776 # CHECK BITS 15 AND 1 OF TVCPHASE TO SEE
|
||||
MASK TVCPHASE # DAP RESTART LOCATION (-1,1,2,3)
|
||||
CCS A
|
||||
TCF FINCOPY # FINISH THE COPYCYCLE FIRST
|
||||
TCF ENABL1 # JUST PREPARE THE OUTCOUNTERS AND GO
|
||||
|
||||
CS TVCPHASE # TEST FOR TVCPHASE = -2
|
||||
MASK BIT2 # (THIS INDICATES RESTART OCCURRED
|
||||
EXTEND # DURING CSM/LM V46 SWITCH-OVER)
|
||||
BZF TRIM/CMD # NO. TVCPHASE = -1. RSTRT WAS IN TVCINIT
|
||||
|
||||
ENABL1 CAF BIT8 # TVC ENABLE, FOLLOWED BY 40 MS (MIN) WAIT
|
||||
AD BIT11 # SET BIT FOR OPTICS-DAC-ENABLE ALSO
|
||||
EXTEND # (ENABL1 ENTERED FROM TVCDAPHS / FINCOPY)
|
||||
WOR CHAN12
|
||||
CAF TVCADDR # WAIT. CALLING ENABL2 (BBCON THERE)
|
||||
TS T5LOC
|
||||
CAF TVCADDR +4 # 60 MS (TVCEXADR)
|
||||
TS TIME5
|
||||
|
||||
TCF RESUME
|
||||
|
||||
ENABL2 LXCH BANKRUPT # CONTINUE PREPARATION OF OUTCOUNTERS
|
||||
|
||||
CAF BIT2 # OPTICS ERROR CNTR ENABLE. 4MS MIN WAIT
|
||||
EXTEND
|
||||
WOR CHAN12
|
||||
# Page 959
|
||||
CAF TVCADDR +2 # WAIT, CALLING CMDSOUT (BBCON THERE)
|
||||
TS T5LOC
|
||||
CAF OCT37776 # 20MS
|
||||
TS TIME5
|
||||
|
||||
TCF NOQRSM
|
||||
|
||||
CMDSOUT LXCH BANKRUPT # CONTINUE PREPARATION OF OUTCOUNTERS
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
|
||||
CS ZERO # MOST RECENT ACTUATOR COMMANDS
|
||||
AD PCMD # (AVOID +0)
|
||||
TS TVCPITCH
|
||||
CS ZERO
|
||||
AD YCMD
|
||||
TS TVCYAW
|
||||
|
||||
CAF PRIO6 # RELEASE THE COUNTERS (BITS 11,12)
|
||||
EXTEND
|
||||
WOR CHAN14
|
||||
|
||||
PHSCHK2 CCS TVCPHASE # CHECK TVCPHASE AGAIN
|
||||
TCF CHKSTRK
|
||||
TCF CHKSTRK
|
||||
CCS A # A CONTAINS THE DIMINISHED ABSOLUTE OF
|
||||
TC +3 # TVCPHASE (-2 BECOMES +1, -1 BECOMES +0)
|
||||
|
||||
TC POSTJUMP # REPEAT TVC INITIALIZATION
|
||||
CADR MRCLEAN # (DO NOT RETURN)
|
||||
|
||||
+3 TC IBNKCALL # REPEAT CSM/LM V46 SWITCH-OVER
|
||||
CADR SWICHOVR +5 # (RETURN TO CHECK FOR STROKE TEST)
|
||||
|
||||
CHKSTRK CCS STROKER # CHECK FOR STROKE TEST IN PROGRESS
|
||||
TCF TSTINITJ # YES, KILL IT
|
||||
TCF +2 # NO, PROCEED
|
||||
TCF TSTINITJ # YES, KILL IT
|
||||
|
||||
+4 TC POSTJUMP # IF POSITIVE OR ZERO, RESTART AT
|
||||
CADR TVCINIT4 # TVCINIT4 (ZEROS TVCPHASE, AND
|
||||
# CALLS TVC DAPS VIA DAPINIT)
|
||||
FINCOPY INDEX TVCPHASE # PICK UP THE APPROPRIATE COPYCYCLE
|
||||
CAF TVCCADR
|
||||
TCR ISWCALL # RE-ENTER THE COPYCYCLE, RETURN AT END
|
||||
TCF ENABL1 # NOW PREPARE THE OUTCOUNTERS
|
||||
|
||||
TRIM/CMD EXTEND # TVCDAPON INITIALIZATION NOT COMPLETED,
|
||||
# Page 960
|
||||
DCA PACTOFF # EG. P,YCMD MAY NOT BE SET. SET...
|
||||
DXCH PCMD
|
||||
TCF ENABL1 # NOW PREPARE THE OUTCOUNTERS
|
||||
|
||||
TSTINITJ CAF ZERO # DISABLE STROKE TEST (-0 SHOWS PRIOR V68)
|
||||
TS STROKER # (+0 MEANS NEW V68 REQUIRED FOR STARTUP)
|
||||
|
||||
TCF CHKSTRK +4
|
||||
|
||||
EXRSTRT INDEX TVCEXPHS # TVCEXECUTIVE RESTARTS....GO TO
|
||||
CAF TVCEXADR # APPROPRIATE RESTART POINT
|
||||
INDEX A
|
||||
TCF 0
|
||||
|
||||
# TVC RESTART TABLES.... ORDER IS REQUIRED. HI-ORDER WORDS ONLY, OF 2CADRS, SINCE BBCON IS ALREADY THERE.
|
||||
|
||||
TVCADDR = TVCCADR # TABLE OF CADRS, UNUSED LOCS FOR GENADRS
|
||||
TVCCADR GENADR ENABL2 # (FOR T5 CALL, UNUSED TABLE LOC)
|
||||
+1 CADR PCOPY +1 # PITCH COPYCYCLE
|
||||
+2 GENADR CMDSOUT # (FOR T5 CALL, UNUSED TABLE LOC)
|
||||
+3 CADR YCOPY +1 # YAW COPYCYCLE
|
||||
TVCEXADR OCT 37772 # (UNUSED TABLE LOC, FILL WITH 60MS, T5)
|
||||
+1 GENADR EXECCOPY +1 # TVCEXECUTIVE RESTART POINTS (ORDERED)
|
||||
+2 GENADR 1SHOTCHK
|
||||
+3 GENADR TEMPSET
|
||||
+4 GENADR CORSETUP
|
||||
+5 GENADR CORCOPY +1
|
||||
+6 GENADR CNTRCOPY
|
||||
|
||||
|
619
Comanche055/TVCROLLDAP.agc
Normal file
619
Comanche055/TVCROLLDAP.agc
Normal file
@ -0,0 +1,619 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TVCROLLDAP.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: 984-998
|
||||
# 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 984
|
||||
# PROGRAM NAME...TVC ROLL AUTOPILOT
|
||||
# LOG SECTION...TVCROLLDAP SUBROUTINE...DAPCSM
|
||||
# MOD BY SCHLUNDT 21 OCTOBER 1968
|
||||
|
||||
|
||||
# FUNCTIONAL DESCRIPTION....
|
||||
|
||||
# *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER
|
||||
# *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN
|
||||
# BY IGNITION (P40)
|
||||
# *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE
|
||||
# *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3
|
||||
# *USES T6 CLOCK TO TIME JET FIRINGS
|
||||
# *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER
|
||||
# *MINIMUM JET FIRING TIME = 15 MS
|
||||
# *JET PAIRS FIRE ALTERNATELY
|
||||
# *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED
|
||||
# *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION
|
||||
# OF A JET FIRING TIME IS MADE ON A LATER PASS
|
||||
|
||||
# CALLING SEQUENCE....
|
||||
|
||||
# *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC)
|
||||
# WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.)
|
||||
|
||||
# NORMAL EXIT MODES.... ENDOFJOB
|
||||
|
||||
# ALARM OR ABORT EXIT MODES.... NONE
|
||||
|
||||
# SUBROUTINES CALLED.....NONE
|
||||
|
||||
# OTHER INTERFACES....
|
||||
|
||||
# *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC
|
||||
# EVERY 10 SECONDS (VIA MASSPROP AND S40.15)
|
||||
# *RESTARTS SUSPEND ROLL DAP COMPUTATIONS UNTIL THE NEXT 1/2 SEC
|
||||
# SAMPLE PERIOD. (THE PART OF TVCEXECUTIVE THAT CALLS ROLL DAP IS
|
||||
# NOT RESTARTED.) THE OGAD FROM IGNITION IS MAINTAINED.
|
||||
|
||||
# ERASABLE INITIALIZATION REQUIRED....
|
||||
|
||||
# *1/CONACC (S40.15)
|
||||
# *OGAD (CDUX AT IGNITION)
|
||||
# *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE)
|
||||
# *OGAPAST (OGANOW AT TVCEXECUTIVE)
|
||||
# *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON)
|
||||
#
|
||||
# OUTPUT....
|
||||
|
||||
# *ROLL JET PAIR FIRINGS
|
||||
|
||||
# Page 985
|
||||
# DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
|
||||
|
||||
# Page 986
|
||||
# SOME NOTES ON THE ROLL AUTOPILOT, AND IN PARTICULAR, ON ITS SWITCHING
|
||||
# LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS.
|
||||
|
||||
# SWITCHING LOGIC IN THE PHASE PLANE....
|
||||
|
||||
# OGARATE
|
||||
# *
|
||||
# *
|
||||
# * * * * * * * * * * * *
|
||||
# * (REGION 1, SEE TEXT BELOW)
|
||||
# * *
|
||||
# *
|
||||
# * * * * * * * (COAST) * ...PARABOLA (SWITCHING = CONTROL)
|
||||
# * * .
|
||||
# * * *
|
||||
# * * (FIRE NEG ROLL JETS)
|
||||
# * * *
|
||||
# (-DB,+LMCRATE)....* *
|
||||
# * * *
|
||||
# * * OGAERROR
|
||||
# ************************************************************************
|
||||
# * * (-AK, OGAERR)
|
||||
# * * * (REGION 6-PRIME)
|
||||
# * * (SEE TEXT BELOW)
|
||||
# * * *
|
||||
# * * ...STRAIGHT LINE
|
||||
# (FIRE POS ROLL JETS) * * * .
|
||||
# * (COAST) *
|
||||
# * * * * * * * * * * *
|
||||
# * -MINLIM
|
||||
# * *
|
||||
# *
|
||||
# * * * * * * * * * * * * * * * *
|
||||
# * -MAXLIM
|
||||
# *
|
||||
# *
|
||||
|
||||
# SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF
|
||||
# CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC
|
||||
# ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET
|
||||
# FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE,
|
||||
# SUBJECT TO THE LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION,
|
||||
# ABOVE.
|
||||
|
||||
# THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRIZED OF
|
||||
# TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME...
|
||||
# 6-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS)
|
||||
# Page 987
|
||||
#
|
||||
# GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE
|
||||
# IS AT THE POINT OF PENETRATION OF THE COAST REGION BY THE CONTROL
|
||||
# PARABOLA WHICH PASSES THROUGH THE OPERATING POINT. FOR REGION 3
|
||||
# DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION
|
||||
# TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT
|
||||
# LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE
|
||||
# INSTEAD. TAKE AN OPERATING POINT IN REGION 6' . PASS A TANGENT TO
|
||||
# THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS
|
||||
# INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE...
|
||||
# THE INTERSECTION DEFINES THE DESIRED OGARATE. IF THE OPERATING POINT IS
|
||||
# CLOSE TO THE SWITCH LINE, THE APPROXIMATION IS QUITE GOOD (INDEED
|
||||
# THE APPROXIMATE AND QUADRATIC SOLUTIONS CONVERGE IN THE LIMIT AS
|
||||
# THE SWITCH LINE IS APPROACHED). IF THE OPERATING POINT IS NOT CLOSE
|
||||
# TO THE SWITCH LINE, THE APPROXIMATE SOLUTION GIVES VALID TREND
|
||||
# INFORMATION (DIRECTION OF DESIRED OGARATE) AT LEAST. THE
|
||||
# RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2
|
||||
# SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE
|
||||
# APPROXIMATION.
|
||||
|
||||
# FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDARY BEFORE
|
||||
# INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS
|
||||
# IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO
|
||||
# THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO.
|
||||
# IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING
|
||||
# THE DESIRED INTERSECTION (IE. IN THE REGION BETWEEN THE MINLIM
|
||||
# AND THE STRAIGHT LINE SWITCH) IT WILL EXHIBIT NORMAL COAST-REGION
|
||||
# BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY
|
||||
# IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET
|
||||
# FAILED-ON.
|
||||
|
||||
# WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS
|
||||
# MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT,
|
||||
# DEFINED BY.. OGAERROR = INTERSECTION OF CONTROL PARABOLA AND
|
||||
# OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF
|
||||
# REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED
|
||||
# FROM REGION 1 TO REGION 6', THE DUMMY POINT IS NO LONGER REQUIRED,
|
||||
# AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6' POINT.
|
||||
|
||||
|
||||
# EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE)....
|
||||
# 2
|
||||
# SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE)
|
||||
|
||||
|
||||
# EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT....
|
||||
|
||||
# SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP
|
||||
|
||||
# WHERE INTERCEP = DB(-SLOPE) - LMCRATE
|
||||
# Page 988
|
||||
#
|
||||
# EQUATION FOR INTERSECTION, CONTROL PARABOLA AND STRAIGHT SWITCH LINE....
|
||||
|
||||
# DOGADOT = NUM/DEN, WHERE
|
||||
# 2
|
||||
# NUM = (-SLOPE)(OGARATE) (1/CONACC)
|
||||
# +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB))
|
||||
# +LMCRATE
|
||||
|
||||
# DEN = (-SLOPE)(LMCRATE)(1/CONACC) - SGN(DELOGA)
|
||||
|
||||
# 2
|
||||
# DELOGA = OGAERROR - (DB - (OGADOT) (1/CONACC)/2) SGN(OGARATE)
|
||||
|
||||
|
||||
# FOR REGIONS 6 AND 6-PRIME USE ACTUAL OPERATING POINT (OGA, OGARATE)
|
||||
# FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE.
|
||||
# FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR
|
||||
# AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY....
|
||||
# OGAERROR= DELOGA + DB SGN(OGARATE)
|
||||
# OGARATE= -LMCRATE SGN(OGARATE)
|
||||
#
|
||||
# NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING
|
||||
# ALSO, AT POINT WHERE DOGARATE IS COMPUTED, REGISTER DELOGA IS USED
|
||||
# AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE
|
||||
# Page 989
|
||||
|
||||
# ROLLDAP CODING....
|
||||
|
||||
SETLOC DAPROLL
|
||||
BANK
|
||||
EBANK= OGANOW
|
||||
COUNT* $$/ROLL
|
||||
ROLLDAP CAE OGANOW # OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER
|
||||
EXTEND # DIFFERENCE (SAMPLE TIME = 1/2 SEC)
|
||||
MSU OGAPAST
|
||||
EXTEND
|
||||
MP BIT5
|
||||
LXCH A
|
||||
TS OGARATE # SC.AT B-4 REV/SEC
|
||||
|
||||
# COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER)
|
||||
# EXAMINE DURATION OF LAST JET FIRING IF JETS ARE NOW ON.
|
||||
|
||||
DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX
|
||||
EXTEND
|
||||
BZF +2 # ROLL JETS ARE NOW OFF.
|
||||
TCF ROLLOGIC # ENTER LOGIC,JETS NOW ON.
|
||||
|
||||
CAE TEMREG # EXAMINE LAST FIRING INTERVAL
|
||||
EXTEND # IF POSITIVE, DONT FIRE
|
||||
BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF.
|
||||
|
||||
CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT
|
||||
TS TEMREG # RESET TEMREG
|
||||
WAIT1/2 TCF TASKOVER # EXIT ROLL DAP
|
||||
|
||||
# COMPUTE DB-(1/2 CONACC) (OGARATE)SQ (1/2 IN THE SCALING)
|
||||
|
||||
ROLLOGIC CS OGARATE # SCALED AT 2(-4) REV/SEC
|
||||
EXTEND
|
||||
MP 1/CONACC # SCALED AT 2(+9) SEC SQ /REV
|
||||
EXTEND
|
||||
MP OGARATE
|
||||
AD DB # SCALED AT 2(+0) REV
|
||||
TS TEMREG # QUANTITY SCALED AT 2(+0) REV.
|
||||
|
||||
# GET SIGN OF OGARATE
|
||||
|
||||
CA OGARATE
|
||||
EXTEND
|
||||
BZMF +3 # LET SGN(0) BE NEGATIVE
|
||||
CA BIT1
|
||||
TCF +2
|
||||
CS BIT1
|
||||
TS SGNRT # + OR - 2(-14)
|
||||
|
||||
# Page 990
|
||||
# CALCULATE DISTANCE FROM SWITCH PARABOLA (DELOGA)
|
||||
|
||||
EXTEND
|
||||
MP TEMREG # SGN(OGARATE) TEMREG NOW IN L
|
||||
CS L
|
||||
AD OGA # SCALED AT 2(+0) REV
|
||||
DELOGAC TS DELOGA # SC.AT B+0 REV, PLUS TO RIGHT OF C-PARAB
|
||||
|
||||
# EXAMINE SGN(DELOGA) AND CREATE CA OR CS INSTR. DEPENDING UPON SIGN.
|
||||
|
||||
EXTEND
|
||||
BZMF +3
|
||||
CAF PRIO30 # =CA (30000)
|
||||
TCF +2
|
||||
CAF BIT15 # =CS (40000)
|
||||
TS I
|
||||
|
||||
INDEX I # TSET ON I SGN(OGARATE)
|
||||
0 SGNRT # CA OR CS
|
||||
COM
|
||||
EXTEND
|
||||
REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN)
|
||||
|
||||
# NO JET FIRE YET. TEST FOR MAX OGARATE
|
||||
|
||||
INDEX I
|
||||
0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE
|
||||
TS IOGARATE # I.E. I OGARATE
|
||||
AD MAXLIM # SCALED AT 2(-4) REV/SEC
|
||||
EXTEND
|
||||
REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS)
|
||||
|
||||
# COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT..NOTE THAT STR. LINE
|
||||
# SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG QUANTITY
|
||||
|
||||
CA OGARATE
|
||||
EXTEND
|
||||
MP BIT14
|
||||
TS TEMREG
|
||||
CA OGA
|
||||
EXTEND
|
||||
MP -SLOPE
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
DDOUBL # (OGA ERROR MUST BE LESS THAN +-225 DEG)
|
||||
AD TEMREG
|
||||
|
||||
INDEX I
|
||||
0 A # I((-SLOPE)OGA+OGARATE) AT 2(-3)REV/SEC
|
||||
COM
|
||||
# Page 991
|
||||
AD INTERCEP # SCALED AT 2(-3) REV.
|
||||
COM
|
||||
EXTEND
|
||||
REG2TST BZMF NOROLL # IP REGION 2 (COAST SIDE OF STRT LINE)
|
||||
|
||||
# CHECK TO SEE IF OGARATE IS ABOVE MINLIM BOUNDARY
|
||||
|
||||
CA IOGARATE # ALWAYS NEGATIVE
|
||||
AD MINLIM # SCALED AT 2(-4) REV/SEC
|
||||
EXTEND
|
||||
REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM)
|
||||
|
||||
# ALL AREAS CHECKED EXCEPT LAST AREA...NO FIRE IN THIS SMALL SEGMENT
|
||||
|
||||
INDEX I
|
||||
0 OGA
|
||||
COM
|
||||
AD DB
|
||||
COM
|
||||
EXTEND
|
||||
REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB)
|
||||
|
||||
# JETS MUST FIRE NOW.OGARATE IS NEG.(OR VICE VERSA).USE DIRECT STR. LINE.
|
||||
# DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A
|
||||
# STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION
|
||||
# OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT
|
||||
# LINE IS THE TANGENT TO THE CONTROL PARABOLA AT THE OPERATING POINT. (FOR
|
||||
# OPERATING POINTS IN REGIONS 6 AND 6')
|
||||
|
||||
REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT
|
||||
TS DELOGA # ACTUAL STATE
|
||||
CA OGARATE
|
||||
TS DELOGART # ACTUAL STATE,I.E. DEL OGARATE
|
||||
TCF ONROLL
|
||||
|
||||
# JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VICE VERSA),USE INDIRECT
|
||||
# STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA
|
||||
# + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY
|
||||
# OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1' )
|
||||
|
||||
ROLLON INDEX I
|
||||
0 DB
|
||||
ADS DELOGA # DELOGA WAS DIST. FROM SWITCH PARABOLA
|
||||
|
||||
CS LMCRATE # LIMIT CYCLE RATE AT 2(-4) REV/SEC
|
||||
INDEX I
|
||||
0 A
|
||||
TS DELOGART # EVALUATE STATE FOR INDIRECT LINE.
|
||||
|
||||
# Page 992
|
||||
# SOLVE STRAIGHT LINES SIMULTANEOUSLY TO OBTAIN DESIRED OGARATE.
|
||||
|
||||
ONROLL EXTEND # DELOGART IN ACC. ON ARRIVAL
|
||||
MP 1/CONACC
|
||||
DOUBLE
|
||||
EXTEND
|
||||
MP -SLOPE
|
||||
TS TEMREG # 2(-SLOPE)RATE /CONACC
|
||||
EXTEND
|
||||
MP DELOGART
|
||||
TS DELOGART # 2(-SLOPE)(RATESQ)/CONACC
|
||||
CS BIT11
|
||||
INDEX I
|
||||
0 A
|
||||
RATEDEN ADS TEMREG # DENOMINATOR COMPLETED
|
||||
|
||||
INDEX I
|
||||
0 DELOGA
|
||||
COM
|
||||
AD DB
|
||||
COM
|
||||
EXTEND
|
||||
MP -SLOPE
|
||||
ADS DELOGART
|
||||
CA LMCRATE
|
||||
EXTEND
|
||||
MP BIT11
|
||||
RATENUM AD DELOGART # NUMERATOR COMPLETED
|
||||
|
||||
XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK
|
||||
CA ZERO
|
||||
EXTEND
|
||||
DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A
|
||||
EXTEND
|
||||
BZF DVOK # NO OVERFLOW....(0,L)/TEMREG = 0,L
|
||||
|
||||
MINLIMAP CCS A
|
||||
CAF POSMAX # POSITIVE OVERFLOW
|
||||
TCF ROLLSET
|
||||
CS POSMAX # NEGATIVE OVERFLOW
|
||||
TCF ROLLSET
|
||||
|
||||
DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 INTO L
|
||||
EXTEND
|
||||
DV TEMREG # RESULT OF DIVISION IS DESIRED OGARATE
|
||||
TCF ROLLSET # ( SCALED AT B-4 REV/SEC )
|
||||
|
||||
RATELIM CS MAXLIM
|
||||
INDEX I
|
||||
# Page 993
|
||||
0 A # IF I = CA, DESIRED RATE IS -MAXLIM
|
||||
|
||||
# COMPUTE JET FIRE TIME, BASED ON DESIRED RATE MINUS PRESENT RATE
|
||||
|
||||
ROLLSET TS TEMREG # STORE DESIRED OGARATE (SCALED B-4)
|
||||
EXTEND
|
||||
SU OGARATE # RATE DIFF. SCALED AT 2(-4) REV/SEC
|
||||
TS TEMREG # OVERFLOW PROTECT
|
||||
TCF +3 # " "
|
||||
INDEX A # " "
|
||||
CS LIMITS # " "
|
||||
EXTEND
|
||||
MP T6SCALE # T6SCALE = 8/10.24
|
||||
EXTEND
|
||||
MP 1/CONACC # SCALED AT B+9 SECSQ/REV (MAX < .60)
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
TS TEMREG # OVERFLOW PROTECT
|
||||
TCF +3 # " "
|
||||
INDEX A # " "
|
||||
CS LIMITS # " "
|
||||
TS TEMREG # JET FIRE TIME AT 625 MICROSEC/BIT
|
||||
EXTEND # POS MEANS POSITIVE ROLL TORQUE.
|
||||
BZF NOROLL
|
||||
|
||||
# JET FIRE TIME IS NZ, TEST FOR JETS NOW ON.
|
||||
|
||||
CAE TEMREG # DESIRED CHANGE IN OGARATE
|
||||
EXTEND
|
||||
MP ROLLFIRE # (SGN OF TORQUE..ZERO IF JETS NOW OFF)
|
||||
CCS A
|
||||
TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY
|
||||
TCF NEWROLL # START NEW FIRING NOW, PLUS
|
||||
TCF NOROLL # TERMINATE OLD FIRING, NEW SIGN REQUESTED
|
||||
TCF NEWROLL # START NEW FIRING NOW, MINUS
|
||||
|
||||
# CONTINUE PRESENT FIRING
|
||||
|
||||
MOREROLL CAF ZERO
|
||||
TS I # USE TEMP. AS MOREROLL SWITCH
|
||||
TCF MAXTFIRE
|
||||
|
||||
# START NEW FIRING BUT CHECK IF GREATER THAN MIN FIRE TIME.
|
||||
|
||||
NEWROLL CCS TEMREG # CALL THIS T6FIRE
|
||||
AD ONE
|
||||
TCF +2
|
||||
AD ONE
|
||||
COM # -MAG(T6FIRE)
|
||||
AD TMINFIRE # TMINFIRE-MAG(T6FIRE)
|
||||
# Page 994
|
||||
COM
|
||||
EXTEND
|
||||
MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE)
|
||||
|
||||
# PROCEED WITH NEW FIRING BUT NOT LONGER THAN TMAXFIRE.
|
||||
|
||||
MAXTFIRE CA TEMREG
|
||||
EXTEND
|
||||
MP 1/TMXFIR # I.E. 1/TMAXFIRE
|
||||
EXTEND
|
||||
MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE
|
||||
|
||||
CCS A
|
||||
CAF TMAXFIRE # USE MAXIMUM
|
||||
TCF +2
|
||||
CS TMAXFIRE # USE MAXIMUM
|
||||
TS TEMREG
|
||||
|
||||
# SET UP SIGN OF REQUIRED TORQUE.
|
||||
|
||||
NOMXFIRE CCS TEMREG # FOR TORQUE SIGN
|
||||
CA POSMAX # POSITIVE TORQUE REQUIRED
|
||||
TCF +2
|
||||
CA NEGMAX # NEGATIVE TORQUE REQUIRED
|
||||
TS ROLLFIRE # SET ROLLFIRE FOR + OR - TORQUE
|
||||
|
||||
COM # COMPLEMENT... POS. FOR NEG. TORQUE
|
||||
EXTEND
|
||||
BZMF +3 # POSITIVE TORQUE REQUIRED
|
||||
CS TEMREG
|
||||
TS TEMREG
|
||||
|
||||
FIRELOOK CA I # IS IT MOREROLL
|
||||
EXTEND
|
||||
BZF FIREPLUG # YES
|
||||
TCF JETROLL # MAG(T6FIRE) NOW IN TEMREG
|
||||
|
||||
FIREPLUG CAE TIME6 # CHECK FOR EXTENDED FIRING
|
||||
EXTEND
|
||||
SU TEMREG
|
||||
EXTEND
|
||||
EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DONT, EXIT ROLL DAP
|
||||
TCF JETROLL
|
||||
|
||||
NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6)
|
||||
TS ROLLFIRE # NOTE, JETS CAN FIRE NEXT PASS
|
||||
TS TEMREG
|
||||
|
||||
JETROLL EXTEND
|
||||
DCA NOROL1T6
|
||||
# Page 995
|
||||
DXCH T6LOC
|
||||
CA TEMREG # ENTER JET FIRING TIME
|
||||
TS TIME6
|
||||
|
||||
CA I # I=0 IF MOREROLL,KEEP SAME JETS ON
|
||||
EXTEND
|
||||
SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP
|
||||
|
||||
CCS ROLLFIRE
|
||||
TCF +TORQUE
|
||||
TCF T6ENABL
|
||||
TCF -TORQUE
|
||||
TCF T6ENABL
|
||||
|
||||
# PROCEED WITH + TORQUE
|
||||
|
||||
+TORQUE CA ROLLWORD # WHAT WAS THE LAST +TORQUE COMBINATION
|
||||
MASK BIT1 # WAS IT NO.9-11
|
||||
EXTEND
|
||||
BZF NO.9-11 # NOT 9-11, SO USE IT THIS TIME
|
||||
|
||||
NO.13-15 CS BIT1
|
||||
MASK ROLLWORD
|
||||
TS ROLLWORD # CHANGE BIT 1 TO ZERO
|
||||
CAF +ROLL2
|
||||
EXTEND
|
||||
WRITE CHAN6
|
||||
TCF T6ENABL
|
||||
|
||||
NO.9-11 CAF BIT1 # 1ST + JETS TO FIRE (MRCLEAN OS ROLLWORD)
|
||||
ADS ROLLWORD # CHANGE BIT 1 TO ONE
|
||||
CAF +ROLL1
|
||||
EXTEND
|
||||
WRITE CHAN6
|
||||
TCF T6ENABL
|
||||
|
||||
-TORQUE CA ROLLWORD # WHAT WAS LAST -TORQUE COMBINATION
|
||||
MASK BIT2 # WAS IT NO.12-10
|
||||
EXTEND
|
||||
BZF NO.12-10 # NOT 12-10, SO USE IT THIS TIME
|
||||
|
||||
NO.16-14 CS BIT2
|
||||
MASK ROLLWORD
|
||||
TS ROLLWORD # CHANGE BIT 2 TO ZERO
|
||||
CAF -ROLL2
|
||||
EXTEND
|
||||
WRITE CHAN6
|
||||
TCF T6ENABL
|
||||
|
||||
NO.12-10 CAF BIT2 # 1ST -JETS TO FIRE (MRCLEAN OS ROLLWORD)
|
||||
# Page 996
|
||||
ADS ROLLWORD # CHANGE BIT 2 TO ONE
|
||||
CAF -ROLL1
|
||||
EXTEND
|
||||
WRITE CHAN6
|
||||
|
||||
T6ENABL CAF BIT15
|
||||
EXTEND
|
||||
WOR CHAN13
|
||||
RDAPEND TCF TASKOVER # EXIT ROLL DAP
|
||||
|
||||
# Page 997
|
||||
# THIS T6 TASK SHUTS OFF ALL ROLL JETS
|
||||
|
||||
NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK
|
||||
CAF ZERO # CALLED BY ..JETROLL..)
|
||||
TS ROLLFIRE # ZERO INDICATES JETS NOW OFF
|
||||
EXTEND
|
||||
KILLJETS WRITE CHAN6
|
||||
TCF NOQRSM
|
||||
|
||||
# Page 998
|
||||
# CONSTANTS FOR ROLL AUTOPILOT....
|
||||
|
||||
EBANK= BZERO
|
||||
NOROL1T6 2CADR NOROLL1
|
||||
|
||||
DB DEC .01388889 # DEAD BAND (5 DEG), SC.AT B+0 REV
|
||||
|
||||
-SLOPE DEC 0.2 # -SWITCHLINE SLOPE(0.2 PER SEC) SC.AT B+0
|
||||
# PER SEC
|
||||
LMCRATE DEC .00027778 B+4 # LIMIT CYCLE RATE (0.1 DEG/SEC) SC.AT
|
||||
# B-4 REV/SEC
|
||||
INTERCEP DEC .0025 B+3 # DB(-SLOPE) - LMCRATE, SC.AT B-3 REV/SC
|
||||
|
||||
MINLIM DEC .00277778 B+4 # RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC
|
||||
|
||||
1/MINLIM DEC 360 B-18 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT
|
||||
|
||||
MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC
|
||||
|
||||
TMINFIRE DEC 1.5 B+4 # 15 MS (14MIN), SC.AT 16 BITS/CS
|
||||
|
||||
TMAXFIRE DEC 250 B+4 # 2.5 SEC, SC.AT 16 BITS/CS
|
||||
|
||||
1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT,
|
||||
# ROUNDS TO OCT00004, SO ALLOWS 2.56
|
||||
# SEC FIRINGS BEFORE APPLYING LIMIT
|
||||
T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC)
|
||||
|
||||
+ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11
|
||||
+ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15
|
||||
-ROLL1 = TEN # ONBITS FOR JETS 12 NAD 10
|
||||
-ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14
|
260
Comanche055/TVCSTROKETEST.agc
Normal file
260
Comanche055/TVCSTROKETEST.agc
Normal file
@ -0,0 +1,260 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TVCSTROKETEST.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: 979-983
|
||||
# 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 979
|
||||
# NAME STROKE TEST PACKAGE (INCLUDING INITIALIZATION PACKAGE)
|
||||
# LOG SECTION...TVCSTROKETEST SUBROUTINE...DAPCSM
|
||||
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION....
|
||||
# STROKE TEST PACKAGE GENERATES A WAVEFORM DESIGNED TO EXCITE BENDING
|
||||
# STRKTSTI (STROKE TEST INITIALIZATION) IS CALLED AS A JOB BY VB68.
|
||||
# IT INITIALIZES ALL ERASABLES REQD FOR A STROKE TEST, AND
|
||||
# THEN TESTS FOR CSM/LM (BIT 13 OF DAPDATR1). IF CSM/LM,
|
||||
# IN EITHER HIGH OR LOW-BANDWIDTH MODE, THE TEST IS STARTED
|
||||
# IMMEDIATELY. IF NOT CSM/LM, PROGRAM EXITS WITH NO ACTION.
|
||||
# HACK (STROKE TEST) GENERATES THE WAVEFORM BY DUMPING PULSE BURSTS
|
||||
# OF PROPER SIGN AND IN PROPER SEQUENCE DIRECTLY INTO
|
||||
# TVCPITCH, WORKING IN CONJUNCTION WITH BOTH PITCH AND YAW
|
||||
# TVC DAPS, WITH INTERMEDIATE WAITLIST CALLS. NOTE, HOWEVER
|
||||
# THAT THE STROKE TEST IS PERFORMED ONLY IN THE PITCH AXIS.
|
||||
# AN EXAMPLE WAVEFORM IS GIVEN BELOW, TO DEMONSTRATE STROKE-
|
||||
# TEST PARAMETER SELECTION.
|
||||
# RESTARTS CAUSE TEST TO BE TERMINATED. ANOTHER V68 REQD IF TEST
|
||||
# IS TO BE RE-RUN.
|
||||
# PULSE BURST SIZE IS PAD-LOADED (ESTROKER) SO THAT AMPLITUDE OF
|
||||
# WAVEFORM CAN BE CHANGED. THERE ARE TEN PULSE BURSTS IN
|
||||
# THE HALF-AMPLITUDE OF THE FIRST FREQUENCY SET IN THE
|
||||
# STANDARD WAVEFORM. AMPLITUDE IS 10(ESTROKER)(1/42.15),
|
||||
# NOMINALLY 50/42.15 = 1.185 DEG
|
||||
#
|
||||
# CALLING SEQUENCE....
|
||||
# EXTENDED VERB 68 SETS UP STRKTSTI JOB
|
||||
# PITCH AND YAW TVCDAPS, FINDING STROKER NON-ZERO, DO A ..TC HACK..
|
||||
# AN INTERNALLY-GENERATED WAITLIST CALL ENTERS AT ..HACKWLST..
|
||||
#
|
||||
# NORMAL EXIT MODES....
|
||||
# TC BUNKER (..Q.. IF ENTRY FROM DAP, ..TCTSKOVR.. IF FROM WAITLIST) LIST
|
||||
#
|
||||
# SUBROUTINES CALLED....
|
||||
# WAITLIST
|
||||
#
|
||||
# ALARM OR ABORT EXIT MODES....
|
||||
# NONE
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED....
|
||||
# ESTROKER (PAD-LOAD)
|
||||
# STROKER, CADDY, REVS, CARD, N
|
||||
#
|
||||
# OUTPUT....
|
||||
# STRKTSTI...INITIALIZATION FOR STROKE TEST
|
||||
# HACK, HACKWLST...PULSE BURSTS INTO TVCPITCH VIA..ADS..
|
||||
# RESETS STROKER = +0 WHEN TEST COMPLETED
|
||||
#
|
||||
# DEBRIS....
|
||||
# N = CADDY = +0, CARD = -0, REVS = -1
|
||||
# BUNKER
|
||||
# Page 980
|
||||
#
|
||||
# EXAMPLE STROKE TEST WAVE FORM, DEMONSTRATING PARAMETER SELECTION
|
||||
|
||||
# NOTE....THIS IS NOT THE OFFICIAL WAVEFORM....
|
||||
#
|
||||
# ** **
|
||||
# ** **
|
||||
# ** ** EXAMPLE WAVEFORM (EACH * REPRESENTS
|
||||
# * * * * (85.41 ARCSEC OF ACTUATOR CMND)
|
||||
# * * * *
|
||||
# * * * *
|
||||
# * * * * ** ** ** ** **
|
||||
# * * * * ** ** ** ** **
|
||||
# * * * * ** ** ** ** **
|
||||
# * * * * * * * * * * * * * * ** ** ** ** **
|
||||
# * * * * * * * * * * * * * * ** ** ** ** **
|
||||
# * * * * * * * * * * * * * * ** ** ** ** **
|
||||
# ----------------------------------------------------------------------------------------------------
|
||||
# * * * * * * * * * * * * * * ** ** ** ** **
|
||||
# * * * * * * * * * * * * * * ** ** ** ** **
|
||||
# * * * * * * * * * * * * * * ** ** ** ** **
|
||||
# * * * * ** ** ** ** **
|
||||
# * * * * ** ** ** ** **
|
||||
# * * * * ** ** ** ** **
|
||||
# * * * *
|
||||
# * * * *
|
||||
# * * * *
|
||||
# ** **
|
||||
# ** **
|
||||
# ** **
|
||||
#
|
||||
# FOR THIS (UNOFFICIAL, EXAMPLE) WAVEFORM, THE REQUIRED PARAMETERS ARE AS FOLLOWS....
|
||||
#
|
||||
# FCARD = +3 (NUMBER OF SETS)
|
||||
# ESTROKER = +3 (PULSE BURST SIZE, SC.AT 85.41 ARCSEC/BIT)
|
||||
#
|
||||
# SET1:
|
||||
# FREVS = +3 (NUMBER REVERSALS MINUS 1)
|
||||
# FCADDY = +4 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
|
||||
# SET2:
|
||||
# FCARD1 = +9 (NUMBER REVERSALS MINUS 1)
|
||||
# FCARD4 = +2 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
|
||||
# SET3:
|
||||
# FCARD2 = +9 (NUMBER REVERSALS MINUS 1)
|
||||
# FCARD5 = +1 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
|
||||
# SET4:
|
||||
# FCARD3 = +0 (NUMBER OF REVERSALS MINUS 1)
|
||||
# FCARD6 = +0 (NUMBER OF PULSE BURSTS IN 1/2 AMPLUTUDE)
|
||||
|
||||
# Page 981
|
||||
# STROKE TEST INITIALIZATION PACKAGE (AS A JOB, FROM VERB 68)
|
||||
|
||||
BANK 17
|
||||
SETLOC DAPS2
|
||||
BANK
|
||||
|
||||
COUNT* $$/STRK
|
||||
EBANK= CADDY
|
||||
|
||||
STRKTSTI TCR TSTINIT # STROKE TEST INITIALIZATION PKG (CALLED
|
||||
# AS A JOB BY VERB68)
|
||||
|
||||
STRKCHK INHINT
|
||||
|
||||
CAE DAPDATR1 # CHECK FOR CSM/LM CONFIGURATION
|
||||
MASK BIT14
|
||||
EXTEND
|
||||
BZF +3
|
||||
|
||||
CAE ESTROKER # BEGIN ON NEXT DAP PASS (PITCH OR YAW)
|
||||
TS STROKER # (STROKING DONE IN PITCH ONLY, HOWEVER)
|
||||
|
||||
TCF ENDOFJOB
|
||||
|
||||
TSTINIT CS FCADDY # NORMAL ENTRY FROM STRKTSTI
|
||||
TS CADDY
|
||||
TS N # NOTE SGN CHNG FCADDY(+) TO CADDY(-)
|
||||
|
||||
CAF FREVS
|
||||
TS REVS
|
||||
|
||||
CS FCARD # NOTE SGN CHNG FCARD(+) TO CARD(-)
|
||||
TS CARD
|
||||
|
||||
TC Q # RETURN TO STRKTSTI+1 (OR CHKSTRK+2OR+4)
|
||||
|
||||
# Page 982
|
||||
# THE OFFICIAL STROKE TEST WAVEFORM (3 JAN, 1967) CONSISTS OF FOUR STROKE SETS, AS FOLLOWS....
|
||||
#
|
||||
# SET 1...10 BURSTS IN 1/2 AMP, 4 REVERSALS
|
||||
# SET 2... 6 BURSTS IN 1/2 AMP, 6 REVERSALS
|
||||
# SET 3... 5 BURSTS IN 1/2 AMP, 10 REVERSALS
|
||||
# SET 4... 4 BURSTS IN 1/2 AMP, 14 REVERSALS
|
||||
#
|
||||
# THE PULSE BURST SIZE (ESTROKER) IS PAD-LOADED (5 BITS AS OF 3JAN,1967)
|
||||
# THE REMAINING WAVEFORM-GENERATING PARAMETERS ARE AS FOLLOWS....
|
||||
|
||||
FCADDY DEC 10 # NO. PULSE BURSTS IN 1/2 AMP, SET1..(+10)
|
||||
FREVS DEC 3 # NO. REVERSALS MINUS 1, SET1........( 3)
|
||||
|
||||
FCARD DEC 4 # NO. STROKE SETS....................(+ 4)
|
||||
|
||||
FCARD1 DEC 5 # NO. REVERSALS MINUS 1, SET2........( 5)
|
||||
|
||||
FCARD2 DEC 9 # 3........( 9)
|
||||
FCARD3 DEC 13 # 4........( 13)
|
||||
|
||||
FCARD4 DEC 6 # NO. PULSE BURSTS IN 1/2 AMP, SET2..(+ 6)
|
||||
FCARD5 DEC 5 # SET3..(+ 5)
|
||||
FCARD6 DEC 4 # SET4..(+ 4)
|
||||
|
||||
20MS = BIT2
|
||||
|
||||
# STROKE TEST PACKAGE PROPER....
|
||||
|
||||
EBANK= BUNKER
|
||||
|
||||
HACK EXTEND # ENTRY (IN T5 RUPT) FROM TVCDAPS
|
||||
QXCH BUNKER # SAVE Q FOR DAP RETURN
|
||||
|
||||
CAF 20MS # 2DAPSX2(PASSES/DAP)X2(CS/PASS)=8CS=TVCDT
|
||||
TC WAITLIST
|
||||
EBANK= BUNKER
|
||||
2CADR HACKWLST
|
||||
|
||||
TCF +3
|
||||
|
||||
HACKWLST CAF TCTSKOVR # ENTRY FROM WAITLIST
|
||||
TS BUNKER # BUNKER IS TC TASKOVER
|
||||
|
||||
CA STROKER # STROKE
|
||||
ADS TVCPITCH
|
||||
|
||||
CAF BIT11 # RELEASE THE ERROR COUNTERS
|
||||
EXTEND
|
||||
WOR CHAN14
|
||||
INCR CADDY # COUNT DOWN THE NO. BURSTS, THIS SLOPE
|
||||
# Page 983
|
||||
CS CADDY
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TC BUNKER # EXIT, WHILE ON A SLOPE
|
||||
|
||||
CCS REVS
|
||||
TCF REVUP # POSITIVE REVS
|
||||
TCF REVUP +4 # FINAL REVERSAL, THIS SET
|
||||
|
||||
INCR CARD # NEGATIVE REVS SET LAST PASS, READY FOR
|
||||
CS CARD # THE NEXT SET. CHECK IF NO MORE SETS
|
||||
EXTEND
|
||||
BZF STROKILL # ALL SETS COMPLETED
|
||||
|
||||
INDEX CARD
|
||||
CAF FCARD +4 # PICK UP NO. REVERSALS (-), NEXT SET
|
||||
TS REVS # REINITIALIZE
|
||||
INDEX CARD
|
||||
CS FCARD +7 # PICK UP NO. BURSTS IN 1/2AMP, NEXT SET
|
||||
TS N # REINITIALIZE
|
||||
TS CADDY
|
||||
TC BUNKER # EXIT, AT END OF SET
|
||||
|
||||
STROKILL TS STROKER # RESET (TO +0) TO END TEST
|
||||
TC BUNKER # EXIT, STROKE TEST FINIS
|
||||
|
||||
REVUP TS REVS # ALL REVERSALS EXCEPT LAST OF SET
|
||||
CA N
|
||||
DOUBLE # 2 x 1/2AMP
|
||||
TCF +4
|
||||
|
||||
+4 CS ONE # FINAL REVERSAL, THIS SET
|
||||
TS REVS # PREPARE TO BRANCH TO NEW BURST
|
||||
CA N # JUST RETURN TO ZERO, FINAL SLOPE OF SET
|
||||
TS CADDY # CADUP
|
||||
|
||||
CS STROKER # CHANGE SIGN OF SLOPE
|
||||
TS STROKER
|
||||
TC BUNKER # EXIT AT A REVERSAL (SLOPE CHANGE)
|
555
Comanche055/UPDATE_PROGRAM.agc
Normal file
555
Comanche055/UPDATE_PROGRAM.agc
Normal file
@ -0,0 +1,555 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: UPDATE_PROGRAM.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. 1497-1507
|
||||
# Contact: Ron Burkey <info@sandroid.org>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 2009-05-07 RSB Adapted from Colossus249/UPDATE_PROGRAM.agc
|
||||
# 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 1497
|
||||
# PROGRAM NAME: P27
|
||||
# WRITTEN BY: KILROY/ DE WOLF
|
||||
#
|
||||
# MOD NO: 0
|
||||
# MOD BY: KILROY
|
||||
# DATE: 01DEC67
|
||||
#
|
||||
# LOG SECTION: UPDATE PROGRAM.
|
||||
#
|
||||
# FUNCT. DESCR.: P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
|
||||
# INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
|
||||
# THE P27 PROGRAM WILL ACCEPT UPDATES
|
||||
# ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
|
||||
# P02, AND FRESH START FOR THE CSM.
|
||||
#
|
||||
# CALLING SEQ: PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72, AND 73.
|
||||
#
|
||||
# SUBROUTINES: TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
|
||||
# INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
|
||||
#
|
||||
# NORMAL EXIT: TC ENDEXT
|
||||
#
|
||||
# ALARM/ABORT: TC FALTON FOLLOWED BY TC ENDEXT
|
||||
#
|
||||
# RESTARTS: P27 IS RESTART PROTECTED IN TWO WAYS ...
|
||||
# 1. PRIOR TO VERIFLAG INVERSION(WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
|
||||
# DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
|
||||
# NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINE
|
||||
# ACTIVITY LIGHT IS TURNED OFF.(JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
|
||||
# V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
|
||||
# 2. AFTER VERIFLAG INVERSION(WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
|
||||
# PROTECTED AGAINST RESTARTS.
|
||||
#
|
||||
# DEBRIS: UPBUFF (20D) TEMP STORAGE FOR ADDRESSES AND CONTENTS.
|
||||
# UPVERB (1) VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
|
||||
# UPOLDMOD(1) FOR MAJOR MODE INTERRUPTED BY P27.
|
||||
# COMPNUMB(1) TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
|
||||
# UPCOUNT (1) ACTUAL NUMBER OF COMPONENTS RECEIVED.
|
||||
# UPTEMP (1) SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE
|
||||
#
|
||||
# INPUT:
|
||||
#
|
||||
# ENTRY: DESCRIPTION
|
||||
#
|
||||
# V70EXXXXXEXXXXXE (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
|
||||
# IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
|
||||
# VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
|
||||
# THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
|
||||
# Page 1498
|
||||
# V71EIIEAAAAE (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS,XXXXX,
|
||||
# XXXXXE ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
|
||||
# XXXXXE IT IS .GE. 3 .AND. .LE. 20D.,
|
||||
# AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
|
||||
# NEXT BANK.
|
||||
# . SCALING IS SAME AS INTERNAL REGISTERS.
|
||||
#
|
||||
# V72EIIE (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS,XXXXX, ARE
|
||||
# AAAAEXXXXXE LOADED INTO ERASABLE LOCATIONS, AAAA.
|
||||
# AAAAEXXXXXE II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
|
||||
# . SCALING IS SAME AS INTERNAL REGISTERS.
|
||||
#
|
||||
# V73EXXXXXEXXXXXE (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
|
||||
# INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
|
||||
# CENTISECONDS SCALED AT (2)28.
|
||||
# THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
|
||||
#
|
||||
# OUTPUT: IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
|
||||
# COMPLEMENT BIT3 OF FLAGWORD7.
|
||||
#
|
||||
# ADDITIONAL NOTES: VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES --
|
||||
# 1. CSM/LM STATE VECTOR UPDATE
|
||||
# 2. REFSMMAT UPDATE
|
||||
#
|
||||
# THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE ---
|
||||
#
|
||||
# 1. CSM/LM STATE VECTOR UPDATE(ALL DATA ENTRIES IN OCTAL)
|
||||
# ENTRIES: DATA DEFINITION: SCALE FACTORS:
|
||||
# V71E CONTIGUOUS BLOCK UPDATE VERB
|
||||
# 21E NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
|
||||
# AAAAE ECADR OF 'UPSVFLAG'
|
||||
# XXXXXE STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
|
||||
# 00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
|
||||
# XXXXXEXXXXXE X POSITION
|
||||
# XXXXXEXXXXXE Y POSITION
|
||||
# XXXXXEXXXXXE Z POSITION
|
||||
# XXXXXEXXXXXE X VELOCITY
|
||||
# XXXXXEXXXXXE Y VELOCITY
|
||||
# XXXXXEXXXXXE Z VELOCITY
|
||||
# XXXXXEXXXXXE TIME FROM AGC CLOCK ZERO
|
||||
# V33E VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
|
||||
#
|
||||
# 2. REFSMMAT(ALL DATA ENTRIES IN OCTAL)
|
||||
# ENTRIES: DATA DEFINITIONS: SCALE FACTORS:
|
||||
# Page 1499
|
||||
# V71E CONTIGUOUS BLOCK UPDATE VERB
|
||||
# 24E NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
|
||||
# AAAAE ECADR OF 'REFSMMAT'
|
||||
# XXXXXEXXXXXE ROW 1 COLUMN 1 2(-1)
|
||||
# XXXXXEXXXXXE ROW 1 COLUMN 2 2(-1)
|
||||
# XXXXXEXXXXXE ROW 1 COLUMN 3 2(-1)
|
||||
# XXXXXEXXXXXE ROW 2 COLUMN 1 2(-1)
|
||||
# XXXXXEXXXXXE ROW 2 COLUMN 2 2(-1)
|
||||
# XXXXXEXXXXXE ROW 2 COLUMN 3 2(-1)
|
||||
# XXXXXEXXXXXE ROW 3 COLUMN 1 2(-1)
|
||||
# XXXXXEXXXXXE ROW 3 COLUMN 2 2(-1)
|
||||
# XXXXXEXXXXXE ROW 3 COLUMN 3 2(-1)
|
||||
# V33E VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.
|
||||
|
||||
BANK 07
|
||||
SETLOC EXTVERBS
|
||||
BANK
|
||||
|
||||
EBANK= TEPHEM
|
||||
|
||||
COUNT* $$/P27
|
||||
V70UPDAT CAF UP70 # COMES HERE ON V70E
|
||||
TCF V73UPDAT +1
|
||||
|
||||
V71UPDAT CAF UP71 # COMES HERE ON V71E
|
||||
TCF V73UPDAT +1
|
||||
|
||||
V72UPDAT CAF UP72 # COMES HERE ON V72E
|
||||
TCF V73UPDAT +1
|
||||
|
||||
V73UPDAT CAF UP73 # COMES HERE ON V73E
|
||||
|
||||
+1 TS UPVERBSV # SAVE UPVERB UNTIL IT'S OK TO ENTER P27
|
||||
|
||||
TC TESTXACT # GRAB DISPLAY IF AVAILABLE, OTHERWISE
|
||||
# TURN*OPERATOR ERROR* ON AND TERMINATE JOB
|
||||
|
||||
CA MODREG # CHECK IF UPDATE ALLOWED
|
||||
EXTEND # FIRST CHECK FOR MODREG = +0, -0
|
||||
BZF +2 # (+0 = P00, -0 = FRESH START)
|
||||
TC CKMDMORE # NOW CHECK FOR PROGRAM WHICH CAN BE
|
||||
# INTERRUPTED BY P27.
|
||||
|
||||
CAE MODREG # UPDATE ALLOWED.
|
||||
TS UPOLDMOD # SAVE CURRENT MAJOR MODE
|
||||
# Page 1500
|
||||
CAE UPVERBSV # SET UPVERB TO INDICDATE TO P27
|
||||
TS UPVERB # WHICH EXTENDED VERB CALLED IT.
|
||||
|
||||
CAF ONE
|
||||
TS UPCOUNT # INITIALIZE UPCOUNT TO 1
|
||||
|
||||
TC POSTJUMP # LEAVE EXTENDED VERB BANK AND
|
||||
CADR UPPART2 # GO TO UPDATE PROGRAM(P27) BANK.
|
||||
|
||||
CKMDMORE CS FLAGWRD5
|
||||
MASK BIT8 # CHECK IF COMPUTER IS LGC
|
||||
CCS A # IS COMPUER LGC OR AGC
|
||||
UPERLEM TCF UPERROR # ERROR- IT'S THE LEM + MODE IS NOT P00.
|
||||
CS TWO
|
||||
MASK MODREG
|
||||
CCS A
|
||||
UPERCMC TCF UPERROR # ERROR- IT'S THE CMC AND MODE IS NOT
|
||||
# P00 OR P02.
|
||||
TC Q # ALLOW UPDATE TO PROCEED
|
||||
|
||||
UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
|
||||
CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
|
||||
|
||||
SBANK= LOWSUPER
|
||||
UP70 EQUALS ZERO
|
||||
UP71 EQUALS ONE
|
||||
UP72 EQUALS TWO
|
||||
UP73 EQUALS THREE
|
||||
|
||||
BANK 04
|
||||
SETLOC UPDATE2
|
||||
BANK
|
||||
|
||||
COUNT* $$/P27
|
||||
|
||||
UPPART2 EQUALS # UPDATE PROGRAM - PART 2
|
||||
|
||||
TC PHASCHNG # SET RESTART GROUP 6 TO RESTORE OLD MODE
|
||||
OCT 07026 # AND DOWNLIST AND EXIT IF RESTART OCCURS.
|
||||
OCT 30000 # PRIORITY SAME AS CHRPRIO
|
||||
EBANK= UPBUFF
|
||||
2CADR UPOUT +1
|
||||
|
||||
CAF ONE
|
||||
TS DNLSTCOD # DOWNLIST
|
||||
|
||||
TC NEWMODEX # SET MAJOR MODE = 27
|
||||
# Page 1501
|
||||
DEC 27
|
||||
|
||||
INDEX UPVERB # BRANCH DEPENDING ON WHETHER THE UPDATE
|
||||
TCF +1 # VERB REQUIRES A FIXED OR VARIABLE NUMBER
|
||||
TCF +3 # V70 FIXED. (OF COMPONENTS.
|
||||
TCF OHWELL1 # V71 VARIABLE - GO GET NO. OF COMPONENTS
|
||||
TCF OHWELL1 # V72 VARIABLE - GO GET NO. OF COMPONENTS
|
||||
CA TWO # V73 (AND V70) FIXED
|
||||
TS COMPNUMB # SET NUMBER OF COMPONENTS TO 2.
|
||||
TCF OHWELL2 # GO GET THE TWO UPDATE COMPONENTS
|
||||
|
||||
OHWELL1 CAF ADUPBUFF # * REQUEST USER TO SEND NUMBER *
|
||||
TS MPAC +2 # * OF COMPONENTS PARAMETER(II). *
|
||||
+2 CAF UPLOADNV # (CKV432 RETURNS HERE IF V32 ENCOUNTERED)
|
||||
TC BANKCALL # DISPLAY A FLASHING V21N01
|
||||
CADR GOXDSPF # TO REQUEST II.
|
||||
TCF UPOUT4 # V34 TERMINATE UPDATE(P27) RETURN
|
||||
TCF OHWELL1 +2
|
||||
TC CK4V32 # DATA OR V32 RETURN
|
||||
CS BIT2
|
||||
AD UPBUFF # IS II(NUMBER OF COMPONENTS PARAMETER)
|
||||
EXTEND # .GE. 3 AND .LE. 20D.
|
||||
BZMF OHWELL1 +2
|
||||
CS UPBUFF
|
||||
AD UP21
|
||||
EXTEND
|
||||
BZMF OHWELL1 +2
|
||||
CAE UPBUFF
|
||||
TS COMPNUMB # SAVE II IN COMPNUMB
|
||||
|
||||
# UPBUFF LOADING SEQUENCE
|
||||
|
||||
INCR UPCOUNT # INCREMENT COUNT OF COMPONENTS RECEIVED.
|
||||
OHWELL2 CAF ADUPBFM1 # CALCULATE LOCATION(ECADR) IN UPBUFF
|
||||
AD UPCOUNT # WHERE NEXT COMPONENT SHOULD BE STORED.
|
||||
+2 TS MPAC +2 # PLACE ECADR INTO R3.
|
||||
+3 CAF UPLOADNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
|
||||
TC BANKCALL # DISPLAY A FLASHING V21N01
|
||||
CADR GOXDSPF # TO REQUEST DATA.
|
||||
TCF UPOUT4 # V34 TERMINATE UPDATE(P27) RETURN.
|
||||
TCF OHWELL2 +3 # V33 PROCEED RETURN
|
||||
TC CK4V32 # DATA OR V32 RETURN
|
||||
CS UPCOUNT # HAVE WE FINISHED RECEIVING ALL
|
||||
AD COMPNUMB # THE DATA WE EXPECTED.
|
||||
EXTEND
|
||||
BZMF UPVERIFY # YES- GO TO VERIFICATION SEQUENCE
|
||||
TCF OHWELL2 -1 # NO- REQUEST ADDITIONAL DATA.
|
||||
|
||||
# Page 1502
|
||||
# VERIFY SEQUENCE
|
||||
UPVERIFY CAF ADUPTEMP # PLACE ECADR WHERE COMPONENT NO. INDEX
|
||||
TS MPAC +2 # IS TO BE STORED INTO R3.
|
||||
CAF UPVRFYNV # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
|
||||
TC BANKCALL # DISPLAY A FLASHING V21N02 TO REQUEST
|
||||
CADR GOXDSPF # DATA CORRECTION OR VERIFICATION.
|
||||
TCF UPOUT4 # V34 TERMINATE UPDATE(P27) RETURN
|
||||
TCF UPSTORE # V33 DATA SENT IS GOOD. GO STORE IT.
|
||||
TC CK4V32 # COMPONENT NO. INDEX OR V32 RETURN
|
||||
CA UPTEMP # DOES THE COMPONENT NO. INDEX JUST SENT
|
||||
EXTEND # SPECIFY A LEGAL COMPONENT NUMBER?
|
||||
BZMF UPVERIFY # NO, IT IS NOT POSITIVE NONZERO
|
||||
CS UPTEMP
|
||||
AD COMPNUMB
|
||||
AD BIT1
|
||||
EXTEND
|
||||
BZMF UPVERIFY # NO
|
||||
CAF ADUPBFM1 # YES- BASED ON THE COMPONENT NO. INDEX
|
||||
AD UPTEMP # CALCULATE THE ECADR OF LOCATION IN
|
||||
TCF OHWELL2 +2 # UPBUFF WHICH USER WANTS TO CHANGE.
|
||||
|
||||
UPOUT4 EQUALS UPOUT +1 # COMES HERE ON V34 TC TERMINATE UPDATE
|
||||
|
||||
# CHECK FOR VERB 32 SEQUENCE
|
||||
|
||||
CK4V32 CS MPAC # ON DATA RETURN FROM 'GOXDSPF'
|
||||
MASK BIT6 # ON DATA RETURN FROM "GOXDSP"& THE CON-
|
||||
CCS A # TENTS OF MPAC = VERB. SO TEST FOR V32.
|
||||
TC Q # IT'S NOT A V32, IT'S DATA. PROCEED.
|
||||
INDEX Q
|
||||
TC 0 -6 # V32 ENCOUNTERED - GO BACK AND GET DATA
|
||||
|
||||
ADUPTEMP ADRES UPTEMP # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
|
||||
ADUPBUFF ADRES UPBUFF # ADDRESS OF UPDATE DATA STORAGE BUFFER
|
||||
UPLOADNV VN 2101 # VERB 21 NOUN 01
|
||||
UPVRFYNV VN 2102 # VERB 21 NOUN 02
|
||||
UP21 = MD1 # DEC 21 = MAX NO OF COMPONENTS +1
|
||||
UPDTPHAS EQUALS FIVE
|
||||
|
||||
# PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
|
||||
|
||||
UPSTORE EQUALS # GROUND HAS VERIFIED UPDATE. STORE DATA.
|
||||
|
||||
INHINT
|
||||
|
||||
CAE FLAGWRD7 # INVERT VERIFLAG(BIT3 OF FLAGWRD7) TO
|
||||
XCH L # INDICATE TO THE GROUND(VIA DOWNLINK)
|
||||
CAF BIT3 # THAT THE V33(WHICH THE GROUND SENT TO
|
||||
# Page 1503
|
||||
EXTEND # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
|
||||
RXOR LCHAN # RECEIVED BY THE UPDATE PROGRAM
|
||||
TS FLAGWRD7
|
||||
|
||||
TC PHASCHNG # SET RESTART GROUP 6 TO REDO THE UPDATE
|
||||
OCT 04026 # DATA STORE IF A RESTART OCCURS.
|
||||
INHINT # (BECAUSE PHASCHNG DID A RELINT)
|
||||
|
||||
CS TWO # GO TO UPFNDVAC IF INSTALL IS REQUIRED,
|
||||
AD UPVERB # THAT IS, IF IT'S A V70 - V72.
|
||||
EXTEND # GO TO UPEND73 IF IT'S A V73.
|
||||
BZMF UPFNDVAC
|
||||
|
||||
# VERB 73 BRANCH
|
||||
|
||||
UPEND73 EXTEND # V73-PERFORM DP OCTAL AGC CLOCK INCREMENT
|
||||
DCA UPBUFF
|
||||
DXCH UPBUFF +8D
|
||||
TC TIMEDIDL
|
||||
TC FALTON # ERROR- TURN ON *OPERATOR ERROR* LIGHT
|
||||
TC UPOUT +1 # GO TO COMMON UPDATE PROGRAM EXIT
|
||||
|
||||
UPFNDVAC CAF CHRPRIO # (USE EXTENDED VERB PRIORITY)
|
||||
TC FINDVAC # GET VAC AREA FOR 'CALL INTSTALL'
|
||||
EBANK= TEPHEM
|
||||
2CADR UPJOB # (NOTE: THIS WILL ALSO SET EBANK FOR
|
||||
TC ENDOFJOB # 'TEPHEM' UPDATE BY V70)
|
||||
|
||||
UPJOB TC INTPRET # THIS COULD BE A STATE VECTOR UPDATE--SO
|
||||
CALL # WAIT(PUT JOB TO SLEEP) IF ORBIT INT(OI)
|
||||
INTSTALL # IS IN PROGRESS--OR--GRAB OI AND RETURN
|
||||
# TO UPWAKE IF OI IS NOT IN PROGRESS.
|
||||
|
||||
UPWAKE EXIT
|
||||
|
||||
TC PHASCHNG # RESTART PROTECT(GROUP 6)
|
||||
OCT 04026
|
||||
|
||||
TC UPFLAG # SET INTEGRATION RESTART BIT
|
||||
ADRES REINTFLG
|
||||
INHINT
|
||||
UPPART3 EQUALS
|
||||
|
||||
INDEX UPVERB # BRANCH TO THE APPROPRIATE UPDATE VERB
|
||||
TCF +1 # ROUTINE TO ACTUALLY PERFORM THE UPDATE
|
||||
TCF UPEND70 # V70
|
||||
TCF UPEND71 # V71
|
||||
TCF UPEND72 # V72
|
||||
|
||||
# Page 1504
|
||||
# ROUTINE TO INCREMENT CLOCK(TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
|
||||
TIMEDIDL EXTEND
|
||||
QXCH UPTEMP # SAVE Q FOR RETURN
|
||||
CAF ZERO # ZERO AND SAVE TIME2,TIME1
|
||||
ZL
|
||||
DXCH TIME2
|
||||
DXCH UPBUFF +18D # STORE IN CASE OF OVERFLOW
|
||||
|
||||
CAF UPDTPHAS # DO
|
||||
TS L # A
|
||||
COM # QUICK
|
||||
DXCH -PHASE6 # PHASCHNG
|
||||
|
||||
TIMEDIDR INHINT
|
||||
CAF ZERO
|
||||
ZL # PICK UP INCREMENTER(AND ZERO
|
||||
TS MPAC +2 # IT IN CASE OF RESTARTS) AND
|
||||
DXCH UPBUFF +8D # STORE IT
|
||||
DXCH MPAC # INTO MPAC FOR TPAGREE.
|
||||
|
||||
EXTEND
|
||||
DCA UPBUFF +18D
|
||||
DAS MPAC # FORM SUM IN MPAC
|
||||
EXTEND
|
||||
BZF DELTATOK # TEST FOR OVERFLOW
|
||||
CAF ZERO
|
||||
DXCH UPBUFF +18D # OVERFLOW, RESTORE OLD VALUE OF CLOCK
|
||||
DAS TIME2 # AND TURN ON OPERATOR ERROR
|
||||
|
||||
TC PHASCHNG # RESTART PROTECT(GROUP 6)
|
||||
OCT 04026
|
||||
|
||||
TC UPTEMP # GO TO ERROR EXIT
|
||||
|
||||
DELTATOK TC TPAGREE # FORCE SIGN AGREEMENT
|
||||
DXCH MPAC
|
||||
DAS TIME2 # INCREMENT TIME2,TIME1
|
||||
|
||||
TC PHASCHNG # RESTART PROTECT(GROUP 6)
|
||||
OCT 04026
|
||||
|
||||
INHINT
|
||||
INDEX UPTEMP # (CODED THIS WAY FOR RESTART PROTECTION)
|
||||
TC 1 # NORMAL RETURN
|
||||
|
||||
# VERB 71 BRANCH
|
||||
|
||||
UPEND71 CAE UPBUFF +1 # SET EBANK
|
||||
TS EBANK # AND
|
||||
# Page 1505
|
||||
MASK LOW8 # CALCULATE
|
||||
TS UPTEMP # S-REG VALUE OF RECEIVING AREA
|
||||
|
||||
AD NEG3 # IN THE PROCESS OF
|
||||
AD COMPNUMB # PERFORMING
|
||||
EXTEND # THIS UPDATE
|
||||
BZF STORLP71 # WILL WE
|
||||
MASK BIT9 # OVERFLOW
|
||||
CCS A # INTO THE NEXT EBANK....
|
||||
TCF UPERROUT # YES
|
||||
|
||||
CA NEG3 # NO- CALCULATE NUMBER OF
|
||||
AD COMPNUMB # WORDS TO BE STORED MINUS ONE
|
||||
STORLP71 TS MPAC # SAVE NO. OF WORDS REMAINING MINUS ONE
|
||||
INDEX A # TAKE NEXT UPDATE WORD FROM
|
||||
CA UPBUFF +2 # UPBUFF AND
|
||||
TS L # SAVE IT IN L
|
||||
CA MPAC # CALCULATE NEXT
|
||||
AD UPTEMP # RECEIVING ADDRESS
|
||||
INDEX A
|
||||
EBANK= 1400
|
||||
LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
|
||||
EBANK= TEPHEM
|
||||
CCS MPAC # ARE THERE ANY WORDS LEFT TO BE STORED
|
||||
TCF STORLP71 # YES
|
||||
TCF UPOUT # NO- THEN EXIT UPDATE PROGRAM
|
||||
ADUPBFM1 ADRES UPBUFF -1 # SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
|
||||
TCF UPOUT # NO- EXIT UPDATE(HERE WHEN COMPNUMB = 3)
|
||||
|
||||
# VERB 72 BRANCH
|
||||
|
||||
UPEND72 CAF BIT1 # HAVE AN ODD NO. OF COMPONENTS
|
||||
MASK COMPNUMB # BEEN SENT FOR A V72 UPDATE...
|
||||
CCS A
|
||||
TCF +2 # YES
|
||||
TCF UPERROUT # ERROR- SHOULD BE ODD NO. OF COMPONENTS
|
||||
CS BIT2
|
||||
AD COMPNUMB
|
||||
LDLOOP72 TS MPAC # NOW PERFORM THE UPDATE
|
||||
INDEX A
|
||||
CAE UPBUFF +1 # PICK UP NEXT UPDATE WORD
|
||||
LXCH A
|
||||
CCS MPAC # SET POINTER TO ECADR(MUST BE CCS)
|
||||
TS MPAC
|
||||
INDEX A
|
||||
CAE UPBUFF +1 # PICK UP NEXT ECADR OF REG TO BE UPDATED
|
||||
TS EBANK # SET EBANK
|
||||
MASK LOW8 # ISOLATE RELATIVE ADDRESS
|
||||
INDEX A
|
||||
|
||||
# Page 1506
|
||||
EBANK= 1400
|
||||
LXCH 1400 # UPDATE THE REGISTER BY CONTENTS OF L
|
||||
EBANK= TEPHEM
|
||||
CCS MPAC # ARE WE THORUGH THE V72 UPDATE...
|
||||
TCF LDLOOP72 # NO
|
||||
|
||||
# NORMAL FINISH OF P27
|
||||
|
||||
UPOUT EQUALS
|
||||
TC INTWAKEU # RELEASE GRAB OF ORBITAL INTEGRATION
|
||||
+1 CAE UPOLDMOD # RESTORE PRIOR P27 MODE
|
||||
TC NEWMODEX +3
|
||||
CAF ZERO
|
||||
TS DNLSTCOD
|
||||
TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
|
||||
|
||||
EXTEND # KILL GROUP 6
|
||||
DCA NEG0
|
||||
DXCH -PHASE6
|
||||
|
||||
TC ENDEXT # EXTENDED VERB EXIT
|
||||
|
||||
# VERB 70 BRANCH
|
||||
|
||||
UPEND70 EXTEND # V70 DOES THE FOLLOWING WITH DP DELTA
|
||||
DCS UPBUFF # TIME IN UPBUFF
|
||||
DXCH UPBUFF +8D
|
||||
TC TIMEDIDL # DECREMENT AGC CLOCK
|
||||
|
||||
TC UPERROUT # ERROR WHILE DECREMENTING CLOCK -- EXIT
|
||||
|
||||
EBANK= TEPHEM
|
||||
EXTEND
|
||||
DCS UPBUFF # COPY DECREMENTERS FOR
|
||||
DXCH UPBUFF +10D # RESTART PROTECTION
|
||||
EXTEND
|
||||
DCS UPBUFF
|
||||
DXCH UPBUFF +12D
|
||||
|
||||
TC PHASCHNG # RESTART PROTECT(GROUP 6)
|
||||
OCT 04026
|
||||
|
||||
CAF ZERO
|
||||
ZL
|
||||
DXCH UPBUFF +10D # DECREMENT CSM STATE VECTOR TIME
|
||||
DAS TETCSM
|
||||
|
||||
CAF ZERO
|
||||
# Page 1507
|
||||
ZL
|
||||
DXCH UPBUFF +12D # DECREMENT LEM STATE VECTOR TIME
|
||||
DAS TETLEM
|
||||
|
||||
CAF ZERO
|
||||
ZL
|
||||
DXCH UPBUFF
|
||||
DAS TEPHEM +1 # INCREMENT TP TEPHEM
|
||||
ADS TEPHEM
|
||||
|
||||
TC PHASCHNG # RESTART PROTECT(GROUP 6)
|
||||
OCT 04026
|
||||
|
||||
EBANK= UPBUFF
|
||||
|
||||
TC UPOUT # GO TO STANDARD UPDATE PROGRAM EXIT
|
||||
|
||||
# ERROR SEQUENCE
|
||||
|
||||
UPERROUT TC FALTON # TURN ON *OPERATOR ERROR* LIGHT
|
||||
TCF UPOUT # GO TO COMMON UPDATE PROGRAM EXIT
|
||||
|
||||
+2 TC FALTON # TURN ON 'OPERATOR ERROR' LIGHT
|
||||
TC UPACTOFF # TURN OFF'UPLINK ACTIVITY'LIGHT
|
||||
TC ENDEXT # EXTENDED VERB EXIT
|
||||
# (THE PURPOSE OF UPERROUT +2 EXIT IS
|
||||
# TO PROVIDE AN ERROR EXIT WHICH DOES NOT
|
||||
# RESET ANY RESTART GROUPS)
|
||||
|
||||
# :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM(P27).
|
||||
|
||||
UPACTOFF CS BIT3
|
||||
EXTEND # TURN OFF UPLINK ACTIVITY LIGHT
|
||||
WAND DSALMOUT # (BIT 3 OF CHANNEL 11)
|
||||
TC Q
|
556
Comanche055/WAITLIST.agc
Normal file
556
Comanche055/WAITLIST.agc
Normal file
@ -0,0 +1,556 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: WAITLIST.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: 1221-1235
|
||||
# Mod history: 2009-05-14 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 1221
|
||||
# PROGRAM DESCRIPTION DATE - 10 OCTOBER 1966
|
||||
# MOD NO - 2 LOG SECTION - WAITLIST
|
||||
# MOD BY - MILLER (DTMAX INCREASED TO 162.5 SEC) ASSEMBLY SUNBURST REV 5
|
||||
# MOD 3 BY KERNAN (INHINT INSERTED AT WAITLIST) 2/28/68 SKIPPER REV 4
|
||||
# MOD 4BY KERNAN (TWIDDLE IN 54) 3/28/68 SKIPPER REV 13.
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION-
|
||||
# PART OF A SECTION OF PROGRAMS,-WAITLIST, TASKOVER, T3RUPT, USED TO CALL A PROGRAM, (CALLED A TASK),
|
||||
# WHICH IS TO BEGIN IN C(A) CENTISECONDS. WAITLIST UPDATES TIME3, LST1 AND LST2. THE MEANING OF THESE LISTS
|
||||
# FOLLOW.
|
||||
#
|
||||
# C(TIME3) = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
|
||||
#
|
||||
# C(LST1) = -(T2-T1)+1
|
||||
# C(LST1 +1) = -(T3-T2)+1
|
||||
# C(LST1 +2) = -(T4-T3)+1
|
||||
# ...
|
||||
# C(LST1 +6) = -(T8-T7)+1
|
||||
# C(LST1 +7) = -(T9-T8)+1
|
||||
#
|
||||
# C(LST2) = 2CADR OF TASK1
|
||||
# C(LST2 +2) = 2CADR OF TASK2
|
||||
# ...
|
||||
# C(LST2 +14) = 2CADR OF TASK8
|
||||
# C(LST2 +16) = 2CADR OF TASK9
|
||||
#
|
||||
# WARNINGS-
|
||||
# --------
|
||||
# 1) 1 <= C(A) <= 16250D (1 CENTISECOND TO 162.5 SEC)
|
||||
# 2) 9 TASKS MAXIMUM
|
||||
# 3) TASKS CALLED UNDER INTERRUPT INHIBITED
|
||||
# 4) TASKS END BY TC TASKOVER
|
||||
#
|
||||
# CALLING SEQUENCE-
|
||||
#
|
||||
# L-1 CA DELTAT (TIME IN CENTISECONDS TO TASK START)
|
||||
# L TC WAITLIST
|
||||
# L+1 2CADR DESIRED TASK
|
||||
# L+2 (MINOR OF 2CADR)
|
||||
# L+3 RELINT (RETURNS HERE)
|
||||
#
|
||||
# TWIDDLE-
|
||||
# -------
|
||||
# TWIDDLE IS FOR USE WHEN THE TASK BEING SET UP IS IN THE SAME EBANK AND FBANK AS THE USER. IN
|
||||
# SUCH CASES, IT IMPROVES UPON WAITLIST BY ELIMINATING THE NEED FOR THE BBCON HALF OF THE 2CADR,
|
||||
# Page 1222
|
||||
# SAVING A WORD. TWIDDLE IS LIKE WAITLIST IN EVERY RESPECT EXCEPT CALLING SEQUENCE, TO WIT-
|
||||
#
|
||||
# L-1 CA DELTAT
|
||||
# L TC TWIDDLE
|
||||
# L+1 ADRES DESIRED TASK
|
||||
# L+2 RELINT (RETURNS HERE)
|
||||
#
|
||||
# NORMAL EXIT MODES-
|
||||
#
|
||||
# AT L+3 OF CALLING SEQUENCE
|
||||
#
|
||||
# ALARM OR ABORT EXIT MODES-
|
||||
#
|
||||
# TC ABORT
|
||||
# OCT 1203 (WAITLIST OVERFLOW - TOO MANY TASKS)
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED-
|
||||
#
|
||||
# ACCOMPLISHED BY FRESH START,-- LST2,..., LST2 +16 =ENDTASK
|
||||
# LST1,..., LST1 +7 =NEG1/2
|
||||
#
|
||||
# OUTPUT--
|
||||
#
|
||||
# LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
|
||||
# DEBRIS-
|
||||
# CENTRALS- A,Q,L
|
||||
# OTHER - WAITEXIT, WAITADR, WAITTEMP, WAITBANK
|
||||
# DETAILED ANALYSIS OF TIMING-
|
||||
#
|
||||
# CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR) IN EXACTLY DELTA T CENTISECONDS.
|
||||
# THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS
|
||||
#
|
||||
# LET T0 = THE TIME OF THE TC WAITLIST
|
||||
# LET TS = T0 +147U + COUNTER INCREMENTS (SET UP TIME)
|
||||
# LET X = TS -(100TS)/100 (VARIANCE FROM COUNTERS)
|
||||
# LET Y = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
|
||||
# LET Z = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
|
||||
# (Z=0, USUALLY)
|
||||
# LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
|
||||
# THEN DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
|
||||
# *THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
|
||||
#
|
||||
# IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK'S
|
||||
# INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
|
||||
# OF OTHER TASKS INHIBITING THE INTERRUPT.
|
||||
|
||||
BLOCK 02
|
||||
# Page 1223
|
||||
EBANK= LST1 # TASK LISTS IN SWITCHED E BANK.
|
||||
|
||||
COUNT 02/WAIT
|
||||
|
||||
TWIDDLE INHINT
|
||||
TS L # SAVE DELAY TIME IN L
|
||||
CA POSMAX
|
||||
ADS Q # CREATING OVERFLOW AND Q-1 IN Q
|
||||
CA BBANK
|
||||
EXTEND
|
||||
ROR SUPERBNK
|
||||
XCH L
|
||||
|
||||
WAITLIST INHINT
|
||||
EXTEND
|
||||
BZMF WATLST0-
|
||||
XCH Q # SAVE DELTA T IN Q AND RETURN IN
|
||||
TS WAITEXIT # WAITEXIT.
|
||||
EXTEND
|
||||
INDEX WAITEXIT # IF TWIDDLING, THE TS SKIPS TO HERE
|
||||
DCA 0 # PICK UP 2CADR OF TASK.
|
||||
-1 TS WAITADR # BBCON WILL REMAIN IN L
|
||||
DLY2 CAF WAITBB # ENTRY FROM FIXDELAY AND VARDELAY.
|
||||
XCH BBANK
|
||||
TCF WAIT2
|
||||
|
||||
WATLST0- TC POODOO
|
||||
OCT 1204 # WAITLIST CALL WITH ZERO OR NEG DT
|
||||
|
||||
# RETURN TO CALLER AFTER TASK INSERTION:
|
||||
|
||||
LVWTLIST DXCH WAITEXIT
|
||||
AD TWO
|
||||
DTCB
|
||||
|
||||
EBANK= LST1
|
||||
WAITBB BBCON WAIT2
|
||||
|
||||
# RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
|
||||
|
||||
FIXDELAY INDEX Q # BOTH ROUTINES MUST BE CALLED UNDER
|
||||
CAF 0 # WAITLIST CONTROL AND TERMINATE THE TASK
|
||||
INCR Q # IN WHICH THEY WERE CALLED.
|
||||
|
||||
# RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
|
||||
|
||||
VARDELAY XCH Q # DT TO Q. TASK ADRES TO WAITADR.
|
||||
TS WAITADR
|
||||
CA BBANK # BBANK IS SAVED DURING DELAY.
|
||||
EXTEND
|
||||
# Page 1224
|
||||
ROR SUPERBNK # ADD SBANK TO BBCON.
|
||||
TS L
|
||||
CAF DELAYEX
|
||||
TS WAITEXIT # GO TO TASKOVER AFTER TASK ENTRY.
|
||||
TCF DLY2
|
||||
|
||||
DELAYEX TCF TASKOVER -2 # RETURNS TO TASKOVER
|
||||
|
||||
# Page 1225
|
||||
# ENDTASK MUST ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
|
||||
|
||||
EBANK= LST1
|
||||
ENDTASK -2CADR SVCT3
|
||||
|
||||
|
||||
SVCT3 CCS FLAGWRD2 # DRIFT FLAG
|
||||
TCF TASKOVER
|
||||
TCF TASKOVER
|
||||
TCF +1
|
||||
|
||||
CCS IMUCADR # DON'T DO NBDONLY IF SOMEONE ELSE IS IN
|
||||
TCF SVCT3X
|
||||
TCF +3
|
||||
TCF SVCT3X
|
||||
TCF SVCT3X
|
||||
+3 CAF PRIO35 # COMPENSATE FOR NBD COEFFICIENTS ONLY.
|
||||
TC NOVAC # ENABLE EVERY 81.93 SECONDS
|
||||
EBANK= NBDX
|
||||
2CADR NBDONLY
|
||||
|
||||
TCF TASKOVER
|
||||
|
||||
SETLOC FFTAG6
|
||||
BANK
|
||||
|
||||
SVCT3X TC FIXDELAY # DELAY MAX OF 2 TIMES FOR IMU ZERO
|
||||
DEC 500
|
||||
TC SVCT3 # CHECK DRIFT FLAG AGAIN
|
||||
|
||||
# Page 1226
|
||||
# BEGIN TASK INSERTION.
|
||||
|
||||
BANK 01
|
||||
COUNT 01/WAIT
|
||||
|
||||
WAIT2 TS WAITBANK # BBANK OF CALLING PROGRAM.
|
||||
CS TIME3
|
||||
AD BIT8 # BIT 8 = OCT 200
|
||||
CCS A # TEST 200 - C(TIME3). IF POSITIVE,
|
||||
# IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
|
||||
# C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T). THE FOLLOWING FOUR
|
||||
# ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
|
||||
|
||||
AD OCT40001 # OVERFLOW HAS OCCURRED. SET C(A) =
|
||||
CS A # T - T1 + 1.0 - 201
|
||||
|
||||
# NORMAL CASE (C(A) NNZ) YIELDS SAME C(A): -( -(1.0-(T1-T)) + 200) - 1
|
||||
|
||||
AD OCT40201
|
||||
AD Q # RESULT = TD - T1 + 1.
|
||||
|
||||
CCS A # TEST TD - T1 + 1
|
||||
|
||||
AD LST1 # IF TD - T1 POS, GO TO WTLST5 WITH
|
||||
TCF WTLST5 # C(A) = (TD - T1) + C(LST1) = TD-T2+1
|
||||
|
||||
NOOP
|
||||
CS Q
|
||||
|
||||
# NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
|
||||
# SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1. (G/E
|
||||
# SYMBOL MEANS GREATER THAN OR EQUAL TO). THUS THERE NEED BE NO CON-
|
||||
# CERN OVER A PREVIOUS OR IMMINENT OVERFLOW OF TIME3 HERE.
|
||||
|
||||
AD POS1/2 # WHEN TD IS NEXT, FORM QUANTITY
|
||||
AD POS1/2 # 1.0 - DELTA T = 1.0 - (TD - T)
|
||||
XCH TIME3
|
||||
AD NEGMAX
|
||||
AD Q # 1.0 - DELTAT T NOW COMPLETE.
|
||||
EXTEND # ZERO INDEX Q.
|
||||
QXCH 7 # (ZQ)
|
||||
|
||||
# Page 1227
|
||||
WTLST4 XCH LST1
|
||||
XCH LST1 +1
|
||||
XCH LST1 +2
|
||||
XCH LST1 +3
|
||||
XCH LST1 +4
|
||||
XCH LST1 +5
|
||||
XCH LST1 +6
|
||||
XCH LST1 +7
|
||||
|
||||
CA WAITADR # (MINOR PART OF TASK CADR HAS BEEN IN L.)
|
||||
INDEX Q
|
||||
TCF +1
|
||||
|
||||
DXCH LST2
|
||||
DXCH LST2 +2
|
||||
DXCH LST2 +4
|
||||
DXCH LST2 +6
|
||||
DXCH LST2 +8D
|
||||
DXCH LST2 +10D # AT END, CHECK THAT C(LST2 +10) IS STD
|
||||
DXCH LST2 +12D
|
||||
DXCH LST2 +14D
|
||||
DXCH LST2 +16D
|
||||
AD ENDTASK # END ITEM, AS CHECK FOR EXCEEDING
|
||||
# THE LENGTH OF THE LIST.
|
||||
EXTEND # DUMMY TASK ADRES SHOULD BE IN FIXED-
|
||||
BZF LVWTLIST # FIXED SO ITS ADRES ALONE DISTINGUISHES
|
||||
TCF WTABORT # IT.
|
||||
|
||||
# Page 1228
|
||||
WTLST5 CCS A # TEST TD - T2 + 1
|
||||
AD LST1 +1
|
||||
TCF +4
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 1
|
||||
|
||||
+4 CCS A # TEST TD - T3 + 1
|
||||
AD LST1 +2
|
||||
TCF +4
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 2
|
||||
|
||||
+4 CCS A # TEST TD - T4 + 1
|
||||
AD LST1 +3
|
||||
TCF +4
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 3
|
||||
|
||||
+4 CCS A # TEST TD - T5 + 1
|
||||
AD LST1 +4
|
||||
TCF +4
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 4
|
||||
|
||||
+4 CCS A # TEST TD - T6 + 1
|
||||
AD LST1 +5
|
||||
TCF +4
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 5
|
||||
|
||||
+4 CCS A # TEST TD - T7 + 1
|
||||
AD LST1 +6
|
||||
TCF +4
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 6
|
||||
|
||||
# Page 1229
|
||||
+4 CCS A
|
||||
AD LST1 +7
|
||||
TCF +4
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 7
|
||||
|
||||
+4 CCS A
|
||||
WTABORT TC BAILOUT # NO ROOM IN THE INN.
|
||||
OCT 1203
|
||||
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 10
|
||||
|
||||
OCT40201 OCT 40201
|
||||
|
||||
# Page 1230
|
||||
# THE ENTRY TO WTLST2 JUST PRECEDING OCT N IS FOR T LE TD LE T -1.
|
||||
# N N+1
|
||||
#
|
||||
# (LE MEANS LESS THAN OR EQUAL TO). AT ENTRY, C(A) = -(TD - T + 1)
|
||||
# N+1
|
||||
#
|
||||
# THE LST1 ENTRY-(T -T +1) IS TO BE REPLACED BY -(TD - T + 1), AND
|
||||
# N+1 N N
|
||||
#
|
||||
# THE ENTRY-(T - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
|
||||
# N+1
|
||||
|
||||
WTLST2 TS WAITTEMP # C(A) = -(TD - T + 1)
|
||||
INDEX Q
|
||||
CAF 0
|
||||
TS Q # INDEX VALUE INTO Q.
|
||||
|
||||
CAF ONE
|
||||
AD WAITTEMP
|
||||
INDEX Q # C(A) = -(TD - T ) + 1.
|
||||
ADS LST1 -1 # N
|
||||
|
||||
CS WAITTEMP
|
||||
INDEX Q
|
||||
TCF WTLST4
|
||||
|
||||
# Page 1231
|
||||
# ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
|
||||
|
||||
T3RUPT EXTEND
|
||||
ROR SUPERBNK # READ CURRENT SUPERBANK VALUE AND
|
||||
TS BANKRUPT # SAVE WITH E AND F BANK VALUES.
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
|
||||
T3RUPT2 CAF NEG1/2 # DISPATCH WAITLIST TASK.
|
||||
XCH LST1 +7
|
||||
XCH LST1 +6
|
||||
XCH LST1 +5
|
||||
XCH LST1 +4 # 1. MOVE UP LST1 CONTENTS, ENTERING
|
||||
XCH LST1 +3 # A VALUE OF 1/2 +1 AT THE BOTTOM
|
||||
XCH LST1 +2 # FOR T6-T5, CORRESPONDING TO THE
|
||||
XCH LST1 +1 # INTERVAL 81.91 SEC FOR ENDTASK.
|
||||
XCH LST1
|
||||
AD POSMAX # 2. SET T3 = 1.0 - T2 - T USING LIST 1.
|
||||
ADS TIME3 # SO T3 WONT TICK DURING UPDATE.
|
||||
TS RUPTAGN
|
||||
CS ZERO
|
||||
TS RUPTAGN # SETS RUPTAGN TO +1 ON OVERFLOW.
|
||||
|
||||
EXTEND # DISPATCH TASK.
|
||||
DCS ENDTASK
|
||||
DXCH LST2 +16D
|
||||
DXCH LST2 +14D
|
||||
DXCH LST2 +12D
|
||||
DXCH LST2 +10D
|
||||
DXCH LST2 +8D
|
||||
DXCH LST2 +6
|
||||
DXCH LST2 +4
|
||||
DXCH LST2 +2
|
||||
DXCH LST2
|
||||
|
||||
XCH L
|
||||
EXTEND
|
||||
WRITE SUPERBNK # SET SUPERBANK FROM BBCON OF 2CADR
|
||||
XCH L # RESTORE TO L FOR DXCH Z.
|
||||
DTCB
|
||||
|
||||
# Page 1232
|
||||
# RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
|
||||
|
||||
BLOCK 02
|
||||
COUNT 02/WAIT
|
||||
|
||||
TASKOVER CCS RUPTAGN # IF +1 RETURN TO T3RUPT, IF -0 RESUME.
|
||||
CAF WAITBB
|
||||
TS BBANK
|
||||
TCF T3RUPT2 # DISPATCH NEXT TASK IF IT WAS DUE.
|
||||
|
||||
CA BANKRUPT
|
||||
EXTEND
|
||||
WRITE SUPERBNK # RESTORE SUPERBANK BEFORE RESUME IS DONE
|
||||
|
||||
RESUME EXTEND
|
||||
QXCH QRUPT
|
||||
NOQRSM CA BANKRUPT
|
||||
XCH BBANK
|
||||
NOQBRSM DXCH ARUPT
|
||||
RELINT
|
||||
RESUME
|
||||
|
||||
# Page 1233
|
||||
# LONGCALL
|
||||
#
|
||||
# PROGRAM DESCRIPTION DATE- 17 MARCH 1967
|
||||
# PROGRAM WRITTEN BY W.H. VANDEVER LOG SECTION WAITLIST
|
||||
# MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 100
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION-
|
||||
# LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
|
||||
# IMMEDIATELY FOLLOWING THE TC LONGCALL. FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
|
||||
# A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
|
||||
# START
|
||||
#
|
||||
# CALLING SEQUENCE-
|
||||
# EXTEND
|
||||
# DCA TIMELOC
|
||||
# TC LONGCALL
|
||||
# 2CADR TASKTODO
|
||||
#
|
||||
# NORMAL EXIT MODE-
|
||||
# 1). TC WAITLIST
|
||||
# 2). DTCB (TC L+3 OF CALLING ROUTINE 1ST PASS THRU LONGCYCL)
|
||||
# 3). DTCB (TO TASKOVER ON SUBSEQUENT PASSES THRU LONGCYCL)
|
||||
#
|
||||
# ALARM OR ABORT EXIT MODE-
|
||||
# NONE
|
||||
#
|
||||
# OUTPUT-
|
||||
# LONGTIME AND LONGTIME+1 = DELTA TIME
|
||||
# LONGEXIT AND LONGEXIT+1 = RETURN 2CADR
|
||||
# LONGCADR AND LONGCADR+1 = TASK 2CADR
|
||||
# A = SINGLE PRECISION TIME FOR WAITLIST
|
||||
#
|
||||
# ERASABLE INITIALIZATION-
|
||||
# A = MOST SIGNIFICANT PART OF DELTA TIME
|
||||
# L = LEAST SIGNIFICANT PART OF DELTA TIME
|
||||
# Q = ADDRESS OF 2CADR TASK VALUE
|
||||
#
|
||||
# DEBRIS-
|
||||
# A,Q,L
|
||||
# LONGCADR AND LONGCADR+1
|
||||
# LONGEXIT AND LONGEXIT+1
|
||||
# LONGTIME AND LONGTIME+1
|
||||
#
|
||||
# *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERRASIBLE ***
|
||||
|
||||
BLOCK 02
|
||||
EBANK= LST1
|
||||
LONGCALL DXCH LONGTIME # OBTAIN THE DELTA TIME
|
||||
|
||||
EXTEND # OBTAIN THE 2CADR
|
||||
# Page 1234
|
||||
NDX Q
|
||||
DCA 0
|
||||
DXCH LONGCADR
|
||||
|
||||
EXTEND # NOW GO TO THE APPROPRIATE SWITCHED BANK
|
||||
DCA LGCL2CDR # FOR THE REST OF LONGCALL
|
||||
DTCB
|
||||
|
||||
EBANK= LST1
|
||||
LGCL2CDR 2CADR LNGCALL2
|
||||
|
||||
# *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
|
||||
|
||||
BANK 01
|
||||
COUNT 01/WAIT
|
||||
|
||||
LNGCALL2 LXCH LONGEXIT +1 # SAVE THE CORRECT BB FOR RETURN
|
||||
CA TWO # OBTAIN THE RETURN ADDRESS
|
||||
ADS Q
|
||||
TS LONGEXIT
|
||||
|
||||
# *** WAITLIST TASK LONGCYCL ***
|
||||
LONGCYCL EXTEND # CAN WE SUCCESFULLY TAKE ABOUT 1.25
|
||||
DCS DPBIT14 # MINUTES OFF OF LONGTIME
|
||||
DAS LONGTIME
|
||||
|
||||
CCS LONGTIME +1 # THE REASONING BEHIND THIS PART IS
|
||||
TCF MUCHTIME # INVOLVED, TAKING INTO ACCOUNT THAT THE
|
||||
# WORDS MAY NOT BE SIGNED CORRECTED (DP
|
||||
# BASIC INSTRUCTIONS
|
||||
# DO NOT SIGN CORRECT) AND THAT WE SUBTRAC-
|
||||
# TED BIT14 (1 OVER HALF THE POS. VALUE
|
||||
# REPRESENTABLE IN SINGLE WORD)
|
||||
NOOP # CAN'T GET HERE **********
|
||||
TCF +1
|
||||
CCS LONGTIME
|
||||
TCF MUCHTIME
|
||||
DPBIT14 OCT 00000
|
||||
OCT 20000
|
||||
|
||||
# LONGCALL
|
||||
LASTTIME CA BIT14 # GET BACK THE CORRECT DELTA TFOR WAITLIST
|
||||
ADS LONGTIME +1
|
||||
TC WAITLIST
|
||||
EBANK= LST1
|
||||
2CADR GETCADR # THE ENTRY TO OUR LONGCADR
|
||||
|
||||
LONGRTRN CA TSKOVCDR # SET IT UP SO THAT ONLY THE FIRST EXIT IS
|
||||
# Page 1235
|
||||
DXCH LONGEXIT # TO THE CALLER OF LONGCALL
|
||||
DTCB # THE REST ARE TO TASKOVER
|
||||
|
||||
MUCHTIME CA BIT14 # WE HAVE OVER OUR ABOUT 1.25 MINUTES
|
||||
TC WAITLIST # SO SET UP FOR ANOTHER CYCLE THROUGH HERE
|
||||
EBANK= LST1
|
||||
2CADR LONGCYCL
|
||||
|
||||
|
||||
TCF LONGRTRN # NOW EXIT PROPERLY
|
||||
|
||||
# *** WAITLIST TASK GETCADR ***
|
||||
GETCADR DXCH LONGCADR # GET THE LONGCALL THAT WE WISHED TO START
|
||||
DTCB # AND TRANSFER CONTROL TO IT
|
||||
|
||||
TSKOVCDR GENADR TASKOVER
|
19
LICENSE.md
Normal file
19
LICENSE.md
Normal file
@ -0,0 +1,19 @@
|
||||
# Public Domain Mark 1.0
|
||||
|
||||
## No Copyright
|
||||
|
||||
This work has been identified as being free of known restrictions under copyright law, including all related and neighboring rights.
|
||||
|
||||
You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission. See Other Information below.
|
||||
|
||||
## Other Information
|
||||
|
||||
- The work may not be free of known copyright restrictions in all jurisdictions.
|
||||
|
||||
- Persons may have other rights in or related to the work, such as patent or trademark rights, and others may have rights in how the work is used, such as publicity or privacy rights.
|
||||
|
||||
- In some jurisdictions moral rights of the author may persist beyond the term of copyright. These rights may include the right to be identified as the author and the right to object to derogatory treatments.
|
||||
|
||||
- Unless expressly stated otherwise, the person who identified the work makes no warranties about the work, and disclaims liability for all uses of the work, to the fullest extent permitted by applicable law.
|
||||
|
||||
- When using or citing the work, you should not imply endorsement by the author or the person who identified the work.
|
513
Luminary099/AGC_BLOCK_TWO_SELF_CHECK.agc
Normal file
513
Luminary099/AGC_BLOCK_TWO_SELF_CHECK.agc
Normal file
@ -0,0 +1,513 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: AGC_BLOCK_TWO_SELF_CHECK.agc
|
||||
# Purpose: Part of the source code for Luminary 1A build 099.
|
||||
# It is part of the source code for the Lunar Module's (LM)
|
||||
# Apollo Guidance Computer (AGC), for Apollo 11.
|
||||
# Assembler: yaYUL
|
||||
# Contact: Onno Hommes <ohommes@cmu.edu>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1284-1293
|
||||
# Mod history: 2009-05-27 OH 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 001 of AGC program LMY99 by NASA 2021112-061
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1284
|
||||
# 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 1285
|
||||
# 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* $$/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
|
||||
S+6 EQUALS SIX
|
||||
# Page 1286
|
||||
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
|
||||
TS SMODE
|
||||
# Page 1287
|
||||
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.
|
||||
# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
|
||||
# Page 1288
|
||||
# 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
|
||||
EXTEND
|
||||
# Page 1289
|
||||
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
|
||||
CS 0000
|
||||
# Page 1290
|
||||
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
|
||||
MASK HI5
|
||||
# Page 1291
|
||||
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
|
||||
CA S-1
|
||||
# Page 1292
|
||||
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
|
||||
TS L # BANK NUMBER BEFORE SUPER BANK
|
||||
# Page 1293
|
||||
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.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user