mirror of
https://github.com/chrislgarry/Apollo-11.git
synced 2026-07-28 14:36:59 -07:00
missing Luminary099 files retrieved from virtualagc at https://github.com/rburkey2005/virtualagc/tree/master/Luminary099
This commit is contained in:
@@ -0,0 +1,251 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: ALARM_AND_ABORT.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1381-1385
|
||||
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
|
||||
# from the Luminary131/ file of the same
|
||||
# name, using Luminary099 page images.
|
||||
# 2009-06-05 RSB Fixed a type.
|
||||
# 2011-01-06 JL Fixed pseudo-label indentation.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1381
|
||||
# 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 AAANN # ALARM NO. NN IN GENERAL AREA AAA.
|
||||
# # (RETURNS HERE)
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG7
|
||||
BANK
|
||||
|
||||
EBANK= FAILREG
|
||||
|
||||
COUNT* $$/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
|
||||
|
||||
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
|
||||
MASK POSMAX
|
||||
CCS A
|
||||
TCF MULTFAIL
|
||||
LXCH FAILREG +2
|
||||
TCF MULTEXIT
|
||||
|
||||
# Page 1382
|
||||
|
||||
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* $$/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
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG7
|
||||
BANK
|
||||
|
||||
COUNT* $$/ALARM
|
||||
BAILOUT INHINT
|
||||
CA Q
|
||||
# Page 1383
|
||||
TS ALMCADR
|
||||
|
||||
INDEX Q
|
||||
CAF 0
|
||||
TC BORTENT
|
||||
OCT40400 OCT 40400
|
||||
|
||||
INHINT
|
||||
WHIMPER CA TWO
|
||||
AD Z
|
||||
TS BRUPT
|
||||
RESUME
|
||||
TC POSTJUMP # RESUME SENDS CONTROL HERE
|
||||
CADR ENEMA
|
||||
P00DOO INHINT
|
||||
CA Q
|
||||
ABORT2 TS ALMCADR
|
||||
INDEX Q
|
||||
CAF 0
|
||||
TC BORTENT
|
||||
OCT77770 OCT 77770 # DON'T MOVE
|
||||
|
||||
CAF OCT35 # 4.35SPOT FOR GOP00DOO
|
||||
TS L
|
||||
COM
|
||||
DXCH -PHASE4
|
||||
GOP00DOO INHINT
|
||||
TC BANKCALL # RESET STATEFLG, REINTFLG, AND NODOFLAG.
|
||||
CADR FLAGS
|
||||
CA FLAGWRD7 # IS SERVICER CURRENTLY IN OPERATION?
|
||||
MASK V37FLBIT
|
||||
CCS A
|
||||
TCF STRTIDLE
|
||||
TC BANKCALL # TERMINATE GRPS 1, 3, 5, AND 6
|
||||
CADR V37KLEAN
|
||||
TC BANKCALL # TERMINATE GRPS 2, 4, 1, 3, 5, AND 6
|
||||
CADR MR.KLEAN # (I.E., GRP 4 LAST)
|
||||
TCF WHIMPER
|
||||
STRTIDLE CAF BBSERVDL
|
||||
TC SUPERSW
|
||||
TC BANKCALL # PUT SERVICER INTO ITS "GROUND" STATE
|
||||
CADR SERVIDLE # AND PROCED TO GOTOP00H.
|
||||
CCSHOLE INHINT
|
||||
CA Q
|
||||
TC ABORT2
|
||||
OCT21103 OCT 1103
|
||||
CURTAINS INHINT
|
||||
CA Q
|
||||
TC ALARM2
|
||||
OCT217 OCT 00217
|
||||
# Page 1384
|
||||
TC ALMCADR # RETURN TO USER
|
||||
|
||||
BAILOUT1 INHINT
|
||||
DXCH ALMCADR
|
||||
CAF ADR40400
|
||||
BOTHABRT TS ITEMP1
|
||||
INDEX Q
|
||||
CAF 0
|
||||
TS L
|
||||
TCF CHKFAIL1
|
||||
P00DOO1 INHINT
|
||||
DXCH ALMCADR
|
||||
CAF ADR77770
|
||||
TCF BOTHABRT
|
||||
|
||||
ALARM1 INHINT
|
||||
DXCH ALMCADR
|
||||
ALMNCADR INHINT
|
||||
INDEX Q
|
||||
CA 0
|
||||
TS L
|
||||
TCF LARMENT
|
||||
|
||||
ADR77770 TCF OCT77770
|
||||
ADR40400 TCF OCT40400
|
||||
DOALARM EQUALS ENDOFJOB
|
||||
EBANK= DVCNTR
|
||||
BBSERVDL BBCON SERVIDLE
|
||||
|
||||
# CALLING SEQUENCE FOR VARALARM
|
||||
# CAF (ALARM)
|
||||
# TC VARALARM
|
||||
#
|
||||
# VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
|
||||
|
||||
VARALARM INHINT
|
||||
|
||||
TS L # SAVE USER'S ALARM CODE
|
||||
|
||||
CA Q # SAVE USERS Q
|
||||
TS ALMCADR
|
||||
|
||||
TC PRIOENT
|
||||
OCT14 OCT 14 # DONT MOVE
|
||||
|
||||
TC ALMCADR # RETURN TO USER
|
||||
|
||||
ABORT EQUALS WHIMPER
|
||||
BANK 13
|
||||
SETLOC ABTFLGS
|
||||
BANK
|
||||
# Page 1385
|
||||
COUNT* $$/ALARM
|
||||
|
||||
FLAGS CS STATEBIT
|
||||
MASK FLAGWRD3
|
||||
TS FLAGWRD3
|
||||
CS REINTBIT
|
||||
MASK FLGWRD10
|
||||
TS FLGWRD10
|
||||
CS NODOBIT
|
||||
MASK FLAGWRD2
|
||||
TS FLAGWRD2
|
||||
TC Q
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,42 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: CONTRACT_AND_APPROVALS.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: 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 001 of AGC program LMY99 by NASA 2021112-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1
|
||||
|
||||
# THIS LGC PROGRAM IS INTENDED FOR USE IN THE LM DURING THE MANNED LUNAR
|
||||
# LANDING MISSION OR ANY SUBSET THEREOF. THE DETAILS OF IMPLEMENTATION ARE
|
||||
# SPECIFIED IN REPORT R-567, AS AMENDED.
|
||||
#
|
||||
# GUIDANCE SYSTEM OPERATIONS PLAN
|
||||
# FOR MANNED LM EARTH ORBITAL AND LUNAR MISSIONS
|
||||
# USING PROGRAM LUMINARY
|
||||
#
|
||||
# THIS PROGRAM AND R-567 HAVE BEEN PREPARED BY THE INSTRUMENTATION LABORATORY,
|
||||
# MASSACHUSETTS INSTITUTE OF TECHNOLOGY 75 CAMBRIDGE PARKWAY, CAMBRIDGE,
|
||||
# MASSACHUSETTS UNDER PROJECT 55-238-70. SPONSORED BY THE MANNED SPACECRAFT
|
||||
# CENTER OF THE NATIONAL AERONAUTICS AND SPACE ADMINISTRATION, CONTRACT
|
||||
# NAS 9-4065.
|
||||
#
|
||||
# THIS PROGRAM IS REFERRED TO AS LUMINARY 1A
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,430 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: DOWNLINK_LISTS.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: Hartmuth Gutsche <hgutsche@xplornet.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 193-205
|
||||
# Mod history: 2009-05-19 HG 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 193
|
||||
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 (10 AGC WDS) 0 4 ECADR
|
||||
# 6DNADR DSPTAB (12 AGC WDS) 0 5 ECADR
|
||||
# DNCHAN 30 CHANNELS 0 7 CHANNEL
|
||||
# ADDRESS
|
||||
# DNPTR NEXTLIST POINTS TO NEXT 0 6 ADRES
|
||||
# LIST
|
||||
#
|
||||
# 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.
|
||||
|
||||
COUNT* $$/DLIST
|
||||
ERASZERO EQUALS 7
|
||||
UNKNOWN EQUALS ERASZERO
|
||||
SPARE EQUALS ERASZERO # USE SPARE TO INDICATE AVAILABLE SPACE
|
||||
LOWIDCOD OCT 77340 # LOW ID CODE
|
||||
|
||||
NOMDNLST EQUALS LMCSTADL # FRESH START AND POST P27 DOWNLIST
|
||||
|
||||
AGSLIST EQUALS LMAGSIDL
|
||||
|
||||
UPDNLIST EQUALS LMAGSIDL # UPDATE PROGRAM (P27) DOWNLIST
|
||||
|
||||
# Page 194
|
||||
# LM ORBITAL MANEUVERS LIST
|
||||
#
|
||||
# --------------------- CONTROL LIST -------------------------
|
||||
|
||||
LMORBMDL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR LMORBM01 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
1DNADR DELLT4 # DELLT4,+1
|
||||
3DNADR RTARG # RTARG,+1...+5
|
||||
1DNADR ELEV # ELEV,+1
|
||||
1DNADR TEVENT # TEVENT,+1
|
||||
6DNADR REFSMMAT # REFSMMAT +0...+11D
|
||||
1DNADR TCSI # TCSI,+1
|
||||
3DNADR DELVEET1 # DELVEET1 +0...+5
|
||||
3DNADR VGTIG # VGTIG +0...+5
|
||||
1DNADR DNLRVELZ # DNLRVELZ,DNLRALT
|
||||
1DNADR TPASS4 # TPASS4,+1
|
||||
DNPTR LMORBM02 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2/1
|
||||
DNPTR LMORBM03 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR LMORBM04 # COMMON DATA
|
||||
2DNADR POSTORKU # POSTORKU,NEGTORKU,POSTORKV,NEGTORKV
|
||||
1DNADR SPARE
|
||||
1DNADR TCDH # TCDH,+1
|
||||
3DNADR DELVEET2 # DELVEET2 +0...+5
|
||||
1DNADR TTPI # TTPI,+1
|
||||
3DNADR DELVEET3 # DELVEET3 +0...+5
|
||||
1DNADR DNRRANGE # DNRRANGE,DNRRDOT
|
||||
2DNADR DNLRVELX # DNLRVELX,DNLRVELY,DNLRVELZ,DNLRALT
|
||||
1DNADR DIFFALT # DIFFALT,+1
|
||||
1DNADR LEMMASS # LEMMASS,CSMMASS
|
||||
1DNADR IMODES30 # IMODES30,IMODES33
|
||||
1DNADR TIG # TIG,+1
|
||||
DNPTR LMORBM05 # COMMON DATA
|
||||
DNPTR LMORBM06 # COMMON DATA
|
||||
1DNADR SPARE # FORMERLY PIF
|
||||
-1DNADR TGO # TGO,+1
|
||||
|
||||
# --------------------- SUB-LISTS ---------------------------
|
||||
|
||||
LMORBM01 -1DNADR R-OTHER +2 # R-OTHER +2,+3 SNAPSHOT
|
||||
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 +0,+1
|
||||
|
||||
LMORBM02 2DNADR REDOCTR # REDOCTR,THETAD,+1,+2 COMMON DATA
|
||||
# Page 195
|
||||
1DNADR RSBBQ # RSBBQ,+1
|
||||
2DNADR OMEGAP # OMEGAP,OMEGAQ,OMEGAR,GARBAGE
|
||||
2DNADR CDUXD # CDUXD,CDUYD,CDUZD,GARBAGE
|
||||
2DNADR CDUX # CDUX,CDUY,CDUZ,CDUT
|
||||
6DNADR STATE # STATE +0...+11D (FLAGWORDS)
|
||||
-6DNADR DSPTAB # DSPTAB TABLES
|
||||
|
||||
LMORBM03 -1DNADR RN +2 # RN +2,+3 SNAPSHOT
|
||||
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
|
||||
|
||||
LMORBM04 2DNADR OMEGAPD # OMEGAPD,OMEGAQD,OMEGARD,GARBAGE
|
||||
3DNADR CADRFLSH # CADRFLSH,+1,+2,FAILREG,+1,+2
|
||||
-1DNADR RADMODES # RADMODES,DAPBOOLS COMMON DATA
|
||||
|
||||
LMORBM05 2DNADR OMEGAP # OMEGAP,OMEGAQ,OMEGAR,GARBAGE
|
||||
2DNADR CDUXD # CDUXD,CDUYD,CDUZD,GARBAGE
|
||||
2DNADR CDUX # CDUX,CDUY,CDUZ,CDUT
|
||||
1DNADR ALPHAQ # ALPHAQ,ALPHAR COMMON DATA
|
||||
1DNADR POSTORKP # POSTORKP,NEGTORKP
|
||||
DNCHAN 11 # CHANNELS 11,12
|
||||
DNCHAN 13 # CHANNELS 13,14
|
||||
DNCHAN 30 # CHANNELS 30,31
|
||||
-DNCHAN 32 # CHANNELS 32,33
|
||||
|
||||
LMORBM06 1DNADR PIPTIME1 # PIPTIME,+1 COMMON DATA
|
||||
-3DNADR DELV # DELV +0...+5
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
# Page 196
|
||||
# LM COAST AND ALIGNMENT DOWNLIST
|
||||
#
|
||||
# ---------------------- CONTROL LIST --------------------------------
|
||||
|
||||
LMCSTADL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR LMCSTA01 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
1DNADR AGSK # AGSK,+1
|
||||
1DNADR TALIGN # TALIGN,+1
|
||||
2DNADR POSTORKU # POSTORKU,NEGTORKU,POSTORKV,NEGTORKV
|
||||
1DNADR DNRRANGE # DNRRANGE,DNRRDOT
|
||||
1DNADR TEVENT # TEVENT,+1
|
||||
6DNADR REFSMMAT # REFSMMAT +0...+11D
|
||||
1DNADR AOTCODE # AOTCODE,GARBAGE
|
||||
3DNADR RLS # RLS +0...+5
|
||||
2DNADR DNLRVELX # DNLRVELX,DNLRVELY,DNLRVELZ,DNLRALT
|
||||
DNPTR LMCSTA06 # COMMON DATA
|
||||
DNPTR LMCSTA02 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2/1
|
||||
DNPTR LMCSTA03 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR LMCSTA04 # COMMON DATA
|
||||
DNPTR LMCSTA07 # COMMON DATA
|
||||
2DNADR DNLRVELX # DNLRVELX,DNLRVELY,DNLRVELZ,DNLRALT
|
||||
2DNADR CDUS # CDUS,PIPAX,PIPAY,PIPAZ
|
||||
1DNADR LASTYCMD # LASTYCMD,LASTXCMD
|
||||
1DNADR LEMMASS # LEMMASS,CSMMASS
|
||||
1DNADR IMODES30 # IMODES30,IMODES33
|
||||
1DNADR TIG # TIG,+1
|
||||
DNPTR LMCSTA05 # COMMON DATA
|
||||
-6DNADR DSPTAB # DSPTAB +0...+11D TABLE
|
||||
|
||||
# ---------------------- SUB-LISTS --------------------------
|
||||
|
||||
LMCSTA01 EQUALS LMORBM01 # COMMON DOWNLIST DATA
|
||||
LMCSTA02 EQUALS LMORBM02 # COMMON DOWNLIST DATA
|
||||
LMCSTA03 EQUALS LMORBM03 # COMMON DOWNLIST DATA
|
||||
LMCSTA04 EQUALS LMORBM04 # COMMON DOWNLIST DATA
|
||||
LMCSTA05 EQUALS LMORBM05 # COMMON DOWNLIST DATA
|
||||
|
||||
LMCSTA06 2DNADR X789 # X789 +0...+3 COMMON DATA
|
||||
-1DNADR LASTYCMD # LASTYCMD,LASTXCMD
|
||||
LMCSTA07 3DNADR OGC # OGC,+1,IGC,+1,MGC,+1 COMMON DATA
|
||||
1DNADR BESTI # BESTI,BESTJ
|
||||
3DNADR STARSAV1 # STARSAV1 +0...+5
|
||||
-3DNADR STARSAV2 # STARSAV2 +0...+5
|
||||
# Page 197
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# Page 198
|
||||
# LM RENDEZVOUS AND PRE-THRUST DOWNLIST
|
||||
#
|
||||
# --------------------- CONTROL LIST ------------------------
|
||||
|
||||
LMRENDDL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR LMREND01 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR LMREND07 # COLLECT SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
1DNADR DELLT4 # DELLT4,+1
|
||||
3DNADR RTARG # RTARG +0...+5
|
||||
3DNADR DELVSLV # DELVSLV +0...+5
|
||||
1DNADR TCSI # TCSI,+1
|
||||
3DNADR DELVEET1 # DELVEET +0...+5
|
||||
1DNADR SPARE
|
||||
1DNADR TPASS4 # TPASS4,+1
|
||||
DNPTR LMREND06 # COMMON DATA
|
||||
DNPTR LMREND02 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2/1
|
||||
DNPTR LMREND03 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR LMREND04 # COMMON DATA
|
||||
2DNADR POSTORKU # POSTORKU,NEGTORKU,POSTORKV,NEGTORKV
|
||||
1DNADR SPARE
|
||||
1DNADR TCDH # TCDH,+1
|
||||
3DNADR DELVEET2 # DELVEET2 +0...+5
|
||||
1DNADR TTPI # TTPI,+1
|
||||
3DNADR DELVEET3 # DELVEET3 +0...+5
|
||||
1DNADR ELEV # ELEV,+1
|
||||
2DNADR CDUS # CDUS,PIPAX,PIPAY,PIPAZ
|
||||
1DNADR LASTYCMD # LASTYCMD,LASTXCMD
|
||||
1DNADR LEMMASS # LEMMASS,CSMMASS
|
||||
1DNADR IMODES30 # IMODES30,IMODES33
|
||||
1DNADR TIG # TIG,+1
|
||||
DNPTR LMREND05 # COMMON DATA
|
||||
1DNADR DELTAR # DELTAR,+1
|
||||
1DNADR CENTANG # CENTANG,+1
|
||||
1DNADR NN # NN,+1
|
||||
1DNADR DIFFALT # DIFFALT,+1
|
||||
1DNADR DELVTPF # DELVTPF,+1
|
||||
-1DNADR SPARE
|
||||
|
||||
# --------------------- SUB-LISTS --------------------------
|
||||
|
||||
LMREND01 EQUALS LMORBM01 # COMMON DOWNLIST DATA
|
||||
LMREND02 EQUALS LMORBM02 # COMMON DOWNLIST DATA
|
||||
LMREND03 EQUALS LMORBM03 # COMMON DOWNLIST DATA
|
||||
# Page 199
|
||||
LMREND04 EQUALS LMORBM04 # COMMON DOWNLIST DATA
|
||||
LMREND05 EQUALS LMORBM05 # COMMON DOWNLIST DATA
|
||||
LMREND06 EQUALS LMCSTA06 # COMMON DOWNLIST DATA
|
||||
|
||||
LMREND07 -1DNADR AIG # AIG,AMG SNAPSHOT
|
||||
1DNADR AOG # AOG,TRKMKCNT
|
||||
1DNADR TANGNB # TANGNB,+1
|
||||
1DNADR MKTIME # MKTIME,+1
|
||||
-1DNADR RANGRDOT # DNRRANGE,DNRRDOT
|
||||
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# Page 200
|
||||
# LM DESCENT AND ASCENT DOWNLIST
|
||||
|
||||
# ---------------------- CONTROL LIST ------------------------
|
||||
|
||||
LMDSASDL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR LMDSAS07 # COLLECT SNAPSHOT
|
||||
DNPTR LMDSAS08 # SEND SNAPSHOT
|
||||
1DNADR TEVENT # TEVENT,+1
|
||||
3DNADR UNFC/2 # UNFC/2 +0...+5
|
||||
3DNADR VGVECT # VGVECT +0...+5
|
||||
1DNADR TTF/8 # TTF/8,+1
|
||||
1DNADR DELTAH # DELTAH,+1
|
||||
3DNADR RLS # RLS +0...+5
|
||||
1DNADR SPARE
|
||||
DNPTR LMDSAS09 # COMMON DATA
|
||||
DNPTR LMDSAS02 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2/1
|
||||
DNPTR LMDSAS03 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR LMDSAS04 # COMMON DATA
|
||||
2DNADR POSTORKU # POSTORKU,NEGTORKU,POSTORKV,NEGTORKV
|
||||
3DNADR RGU # RGU +0...+5
|
||||
3DNADR VGU # VGU +0...+5
|
||||
3DNADR LAND # LAND +0...+5
|
||||
1DNADR AT # AT,+1
|
||||
1DNADR TLAND # TLAND,+1
|
||||
1DNADR FC # FC,GARBAGE
|
||||
1DNADR LASTYCMD # LASTYCMD,LASTXCMD
|
||||
1DNADR LEMMASS # LEMMASS,CSMMASS
|
||||
1DNADR IMODES30 # IMODES30,IMODES33
|
||||
1DNADR TIG # TIG,+1
|
||||
DNPTR LMDSAS05 # COMMON DATA
|
||||
DNPTR LMDSAS06 # COMMON DATA
|
||||
1DNADR PSEUDO55 # PSEUDO55,GARBAGE
|
||||
-1DNADR TTOGO # TTOGO,+1
|
||||
|
||||
# ---------------------- SUB-LISTS ------------------------
|
||||
|
||||
LMDSAS02 EQUALS LMORBM02 # COMMON DOWNLIST DATA
|
||||
LMDSAS03 EQUALS LMORBM03 # COMMON DOWNLIST DATA
|
||||
LMDSAS04 EQUALS LMORBM04 # COMMON DOWNLIST DATA
|
||||
LMDSAS05 EQUALS LMORBM05 # COMMON DOWNLIST DATA
|
||||
LMDSAS06 EQUALS LMORBM06 # COMMON DOWNLIST DATA
|
||||
|
||||
LMDSAS07 -1DNADR LRZCDUDL # LRZCDUDL,GARBAGE SNAPSHOT
|
||||
1DNADR VSELECT # VSELECT,GARBAGE
|
||||
1DNADR LRVTIMDL # LRVTIMDL,+1
|
||||
# Page 201
|
||||
1DNADR VMEAS # VMEAS,+1
|
||||
1DNADR MKTIME # MKTIME,+1
|
||||
1DNADR HMEAS # HMEAS,+1
|
||||
1DNADR RM # RM,+1
|
||||
1DNADR AIG # AIG,AMG
|
||||
1DNADR AOG # AOG,TRKMKCNT
|
||||
1DNADR TANGNB # TANGNB,+1
|
||||
1DNADR MKTIME # MKTIME,+1
|
||||
-1DNADR LRXCDUDL # LRXCDUDL,LRYCDUDL
|
||||
|
||||
LMDSAS08 6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
-5DNADR DNTMBUFF +12D
|
||||
|
||||
LMDSAS09 EQUALS LMCSTA06 # COMMON DOWNLIST DATA
|
||||
|
||||
# ---------------------------------------------------------
|
||||
|
||||
# Page 202
|
||||
# LM LUNAR SURFACE ALIGN DOWNLIST
|
||||
|
||||
# ---------------------- CONTROL LIST ---------------------
|
||||
|
||||
LMLSALDL EQUALS # SEND ID BY SPECIAL CODING
|
||||
DNPTR LMLSAL01 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR LMLSAL07 # COLLECT SNAPSHOT
|
||||
4DNADR DNTMBUFF # SEND SHAPSHOT
|
||||
1DNADR TALIGN # TALIGN,+1
|
||||
6DNADR REFSMMAT # REFSMMAT +0...+11D
|
||||
6DNADR YNBSAV # YNBSAV +0...+5,SNBSAV +0...+5
|
||||
DNPTR LMLSAL08 # COMMON DATA
|
||||
DNPTR LMLSAL02 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2/1
|
||||
DNPTR LMLSAL03 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SHAPSHOT
|
||||
DNPTR LMLSAL04 # COMMON DATA
|
||||
DNPTR LMLSAL09 # COMMON DATA
|
||||
3DNADR GSAV # GSAV +0...+5
|
||||
1DNADR AGSK # AGSK,+1
|
||||
1DNADR LASTYCMD # LASTYCMD,LASTXCMD
|
||||
1DNADR LEMMASS # LEMMASS,CSMMASS
|
||||
1DNADR IMODES30 # IMODES30,IMODES33
|
||||
1DNADR TIG # TIG,+1
|
||||
DNPTR LMLSAL05 # COMMON DATA
|
||||
DNPTR LMLSAL06 # COMMON DATA
|
||||
1DNADR SPARE
|
||||
-1DNADR SPARE
|
||||
|
||||
# ---------------------- SUB-LISTS ----------------------
|
||||
|
||||
LMLSAL01 EQUALS LMORBM01 # COMMON DOWNLIST DATA
|
||||
LMLSAL02 EQUALS LMORBM02 # COMMON DOWNLIST DATA
|
||||
LMLSAL03 EQUALS LMORBM03 # COMMON DOWNLIST DATA
|
||||
LMLSAL04 EQUALS LMORBM04 # COMMON DOWNLIST DATA
|
||||
LMLSAL05 EQUALS LMORBM05 # COMMON DOWNLIST DATA
|
||||
LMLSAL06 EQUALS LMORBM06 # COMMON DOWNLIST DATA
|
||||
LMLSAL07 EQUALS LMREND07 # COMMON DOWNLIST DATA
|
||||
LMLSAL08 EQUALS LMCSTA06 # COMMON DOWNLIST DATA
|
||||
LMLSAL09 EQUALS LMCSTA07 # COMMON DOWNLIST DATA
|
||||
|
||||
# Page 203
|
||||
# --------------------------------------------------------
|
||||
|
||||
# Page 204
|
||||
# LM AGS INITIALIZATION AND UPDATE DOWNLIST
|
||||
|
||||
# ---------------------- CONTROL LIST --------------------
|
||||
|
||||
LMAGSIDL EQUALS # SEND IO BY SPECIAL CODING
|
||||
3DNADR AGSBUFF +0 # AGSBUFF +0...+5
|
||||
1DNADR AGSBUFF +12D # AGSBUFF +12D,GARBAGE
|
||||
3DNADR AGSBUFF +1 # AGSBUFF +1...+6
|
||||
1DNADR AGSBUFF +13D # AGSBUFF +13D, GARBAGE
|
||||
3DNADR AGSBUFF +6 # AGSBUFF +6...+11
|
||||
1DNADR AGSBUFF +12D # AGSBUFF +12D,GARBAGE
|
||||
3DNADR AGSBUFF +7 # AGSBUFF +7...+12D
|
||||
1DNADR AGSBUFF +13D # AGSBUFF +13D,GARBAGE
|
||||
6DNADR COMPNUMB # COMPNUMB,UPOLDMOD,UPVERB,UPCOUNT,
|
||||
# UPBUFF +0...+7
|
||||
6DNADR UPBUFF +8D # UPBUFF +8D...+19D
|
||||
DNPTR LMAGSI02 # COMMON DATA
|
||||
1DNADR TIME2 # TIME2/1
|
||||
DNPTR LMAGSI03 # COLLECT SNAPSHOT
|
||||
6DNADR DNTMBUFF # SEND SNAPSHOT
|
||||
DNPTR LMAGSI04 # COMMON DATA
|
||||
2DNADR POSTORKU # POSTORKU,NEGTORKU,POSTORKV,NEGTORKV
|
||||
1DNADR SPARE
|
||||
1DNADR SPARE
|
||||
1DNADR AGSK # AGSK,+1
|
||||
6DNADR UPBUFF # UPBUFF +0...+11D
|
||||
4DNADR UPBUFF +12D # UPBUFF +12D...+19D
|
||||
1DNADR LEMMASS # LEMMASS,CSMMASS
|
||||
1DNADR IMODES30 # IMODES30,IMODES33
|
||||
1DNADR SPARE
|
||||
DNPTR LMAGSI05 # COMMON DATA
|
||||
-6DNADR DSPTAB # DSPTAB +0...+11D
|
||||
|
||||
# ---------------------- SUB-LISTS ---------------------
|
||||
|
||||
LMAGSI02 EQUALS LMORBM02 # COMMON DOWNLIST DATA
|
||||
LMAGSI03 EQUALS LMORBM03 # COMMON DOWNLIST DATA
|
||||
LMAGSI04 EQUALS LMORBM04 # COMMON DOWNLIST DATA
|
||||
LMAGSI05 EQUALS LMORBM05 # COMMON DOWNLIST DATA
|
||||
|
||||
# ------------------------------------------------------
|
||||
|
||||
DNTABLE GENADR LMCSTADL # LM COAST AND ALIGN DOWNLIST
|
||||
GENADR LMAGSIDL # LM AGS INITIALIZATION/UPDATE DOWNLIST
|
||||
GENADR LMRENDDL # LM RENDEZVOUS AND PRE-THRUST DOWNLIST
|
||||
GENADR LMORBMDL # LM ORBITAL MANEUVERS DOWNLIST
|
||||
GENADR LMDSASDL # LM DESCENT AND ASCENT DOWNLIST
|
||||
# Page 205
|
||||
GENADR LMLSALDL # LM LUNAR SURFACE ALIGN DOWNLIST
|
||||
|
||||
# ------------------------------------------------------
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,503 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: EXECUTIVE.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1103-1114
|
||||
# Mod history: 2009-05-25 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2011-01-06 JL Fixed pseudo-label indentation.
|
||||
# 2011-05-08 JL Removed workaround.
|
||||
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1103
|
||||
BLOCK 02
|
||||
|
||||
# TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
|
||||
|
||||
COUNT* $$/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 REQUIREING 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"
|
||||
TS L
|
||||
# Page 1104
|
||||
+2 CAF EXECBANK
|
||||
TS BBANK
|
||||
TCF CHANJOB -1
|
||||
|
||||
# Page 1105
|
||||
# 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 1106
|
||||
# LOCATE AN AVAILABLE VAC AREA
|
||||
|
||||
BANK 01
|
||||
COUNT* $$/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
|
||||
LXCH EXECTEM1
|
||||
CA Q
|
||||
TC BAILOUT1
|
||||
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 CORESPONDING CORE SET IS AVAILABLE.
|
||||
NO.CORES DEC 7
|
||||
TCF NEXTCORE # AN ACTIVE JOB HAS A POSITIVE PRIORITY
|
||||
# BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
|
||||
|
||||
# Page 1107
|
||||
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 OUT 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
|
||||
LXCH EXECTEM1
|
||||
CA Q
|
||||
TC BAILOUT1 # NO CORE SETS AVAILABLE.
|
||||
OCT 1202
|
||||
# Page 1108
|
||||
# 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 1109
|
||||
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 1110
|
||||
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... DON'T LET NEWJOB CHANGE TO +0.
|
||||
CCS NEWJOB
|
||||
TCF +3 # NEWJOB STILL PNZ
|
||||
RELINT # NEW JOB 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 SLEEPINT JOB.
|
||||
|
||||
# Page 1111
|
||||
# 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 SLEEPIN 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 1112
|
||||
# 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 1113
|
||||
# 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
|
||||
|
||||
CCS PRIORITY +84D
|
||||
# Page 1114
|
||||
TC EJ1
|
||||
TC CCSHOLE
|
||||
TCF +1
|
||||
|
||||
# Page 1115
|
||||
# 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 IS 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 1116
|
||||
# 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 THE 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* $$/EXEC
|
||||
|
||||
# SUPDXCHZ -- ROUTINE TO TRANSFER TO SUPEBANK.
|
||||
# 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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,264 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: FIXED_FIXED_CONSTANT_POOL.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1095-1099
|
||||
# Mod history: 2009-05-25 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1095
|
||||
BLOCK 02
|
||||
COUNT* $$/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
|
||||
LOW4 OCT 17
|
||||
# Page 1096
|
||||
# BIT5 OCT 00020
|
||||
# NC1 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
|
||||
OCT33 OCT 33
|
||||
# DEC27 = OCT33
|
||||
OCT35 OCT 35
|
||||
# DEC29 = OCT35
|
||||
CALLCODE OCT 00032
|
||||
# LOW5 OCT 37 # PINBALL
|
||||
# 33DEC DEC 33 # PINBALL (OCTAL 41)
|
||||
# 34DEC DEC 34 # PINBALL (OCTAL 42)
|
||||
TBUILDFX DEC 37 # BUILDUP FOR CONVENIENCE 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 BK 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
|
||||
# Page 1097
|
||||
# MID5 OCT 1740 # PINBALL
|
||||
BITS2-10 OCT 1776
|
||||
LOW10 OCT 1777
|
||||
# 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* $$/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
|
||||
# Page 1098
|
||||
PRIO35 OCT 35000
|
||||
PRIO36 OCT 36000
|
||||
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 # (OCTAL 77767)
|
||||
# NEG4 DEC -4 # (OCTAL 77773)
|
||||
NEG3 DEC -3
|
||||
NEG2 OCT 77775
|
||||
NEGONE DEC -1
|
||||
|
||||
# Page 1099
|
||||
|
||||
# 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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,76 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: GIMBAL_LOCK_AVOIDANCE.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 364
|
||||
# Mod history: 2009-05-17 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2010-12-31 JL Fixed page number comment.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 364
|
||||
BANK 15
|
||||
|
||||
SETLOC KALCMON1
|
||||
BANK
|
||||
|
||||
# DETECTING GIMBAL LOCK
|
||||
LOCSKIRT EQUALS NOGIMLOC
|
||||
|
||||
NOGIMLOC SET
|
||||
CALCMAN3
|
||||
WCALC LXC,1 DLOAD*
|
||||
RATEINDX # CHOOSE THE DESIRED MANEUVER RATE
|
||||
ARATE,1 # FROM A LIST OF FOUR
|
||||
SR4 CALL # COMPUTE THE INCREMENTAL ROTATION MATRIX
|
||||
DELCOMP # DEL CORRESPONDING TO A 1 SEC ROTATION
|
||||
# ABOUT COF
|
||||
DLOAD* VXSC
|
||||
ARATE,1
|
||||
COF
|
||||
STODL BRATE # COMPONENT MANEUVER RATES 45 DEG/SEC
|
||||
AM
|
||||
DMP DDV*
|
||||
ANGLTIME
|
||||
ARATE,1
|
||||
SR
|
||||
5
|
||||
STORE TM # MANEUVER EXECUTION TIME SCALED AS T2
|
||||
SETGO
|
||||
CALCMAN2 # D(OFF) = CONTINUE MANEUVER
|
||||
NEWANGL +1 # 1(ON) = START MANEUVER
|
||||
|
||||
# THE FOUR SELECTABLE FREE FALL MANEUVER RATES SELECTED BY
|
||||
# LOADING RATEINDX WITH 0, 2, 4, 6, RESPECTIVELY
|
||||
|
||||
ARATE 2DEC .0088888888 # = 0.2 DEG/SEC $ 22.5 DEG/SEC
|
||||
|
||||
2DEC .0222222222 # = 0.5 DEG/SEC $ 22.5 DEG/SEC
|
||||
|
||||
2DEC .0888888888 # = 2.0 DEG/SEC $ 22.5 DEG/SEC
|
||||
|
||||
2DEC .4444444444 # = 10.0 DEG/SEC $ 22.5 DEG/SEC
|
||||
|
||||
ANGLTIME 2DEC .0001907349 # = 100B-19 FUDGE FACTOR TO CONVERT
|
||||
# MANEUVER ANGLE TO MANEUVER TIME
|
||||
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: GROUND_TRACKING_DETERMINATION_PROGRAM.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 654-657
|
||||
# Mod history: 2009-05-18 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 654
|
||||
# GROUND TRACKING DETERMINATION PROGRAM -- P21
|
||||
# PROGRAM DESCRIPTION
|
||||
# MOD NO -- 1
|
||||
# MOD BY -- N. M. NEVILLE
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION --
|
||||
# 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.137535898 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 655
|
||||
# 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* $$/P21
|
||||
PROG21 CAF ONE
|
||||
TS OPTION2 # ASSUMED VEHICLE IS LM, R2 = 00001
|
||||
CAF BIT2 # OPTION 2
|
||||
TC BANKCALL
|
||||
CADR GOPERF4
|
||||
TC GOTOP00H # 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 GOTOP00H # 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 CLEAR
|
||||
P21FLAG
|
||||
P21CONT # ON -- RECYCLE USING BASE VECTOR
|
||||
VINTFLAG # OFF -- 1ST PASS CALL BASE VECTOR
|
||||
SLOAD SR1
|
||||
OPTION2
|
||||
BHIZ SET
|
||||
+2 # ZERO -- THIS VEHICLE (LM)
|
||||
VINTFLAG # ONE -- OTHER VEHICLE (CM)
|
||||
CLEAR CLEAR
|
||||
DIM0FLAG
|
||||
INTYPFLG # PRECISION
|
||||
CALL
|
||||
INTEGRV # CALCULATE
|
||||
GOTO # AND
|
||||
P21VSAVE # SAVE BASE VECTOR
|
||||
P21CONT VLOAD
|
||||
P21BASER # RECYCLE -- INTEG FROM BASE VECTOR
|
||||
STOVL RCV # --POS
|
||||
# Page 656
|
||||
P21BASEV
|
||||
STODL VCV # --VEL
|
||||
P21TIME
|
||||
STORE TET # --TIME
|
||||
CLEAR CLEAR
|
||||
DIM0FLAG
|
||||
MOONFLAG
|
||||
SLOAD BZE
|
||||
P21ORIG
|
||||
+3 # ZERO = EARTH
|
||||
SET # ---2 = MOON
|
||||
MOONFLAG
|
||||
+3 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-07 OR B-05
|
||||
ABVAL SL*
|
||||
0,2
|
||||
STOVL P21VEL # VEL/ FOR N91 DISP
|
||||
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 SLOAD
|
||||
P21ORIG # 0 = EARTH
|
||||
OPTION2
|
||||
SR1 BHIZ
|
||||
+3
|
||||
GOTO
|
||||
+4
|
||||
+3 BON
|
||||
SURFFLAG
|
||||
P21DSP
|
||||
+4 SET
|
||||
P21FLAG
|
||||
P21DSP CLEAR SLOAD # GENERATE DISPLAY DATA
|
||||
LUNAFLAG
|
||||
X2
|
||||
BZE SET
|
||||
+2 # 0 = EARTH
|
||||
LUNAFLAG
|
||||
VLOAD
|
||||
RATT
|
||||
# Page 657
|
||||
STODL ALPHAV
|
||||
TAT
|
||||
CLEAR CALL
|
||||
ERADFLAG
|
||||
LAT-LONG
|
||||
DMP # MPAC = ALT, METERS B-29
|
||||
K.01
|
||||
STORE P21ALT # ALT/100 FOR N91 DISP
|
||||
EXIT
|
||||
CAF V06N43 # DISPLAY LAT, LONG, ALT
|
||||
TC BANKCALL # LAT, LONG = 1/2 REVS B0
|
||||
CADR GOFLASH # ALT = KM B14
|
||||
TC GOTOP00H # TERM
|
||||
TC GOTOP00H
|
||||
TC INTPRET # V32E RECYCLE
|
||||
DLOAD DAD
|
||||
P21TIME
|
||||
600SEC # 600 SECONDS OR 10 MIN
|
||||
STORE DSPTEM1
|
||||
RTB
|
||||
P21PROG1
|
||||
600SEC 2DEC 60000 # 10 MIN
|
||||
|
||||
V06N43 VN 00643
|
||||
V6N34 VN 00634
|
||||
K.01 2DEC .01
|
||||
|
||||
@@ -0,0 +1,418 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: IMU_COMPENSATION_PACKAGE.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 326-337
|
||||
# Mod history: 2009-05-16 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2009-06-07 RSB Corrected a typo.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 326
|
||||
BANK 7
|
||||
SETLOC IMUCOMP
|
||||
BANK
|
||||
|
||||
EBANK= NBDX
|
||||
|
||||
COUNT* $$/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
|
||||
|
||||
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)(SF)
|
||||
|
||||
INDEX BUF +2
|
||||
CS PIPABIAS # (PIPA PULSES)/(CS) X 2(-5) * *
|
||||
EXTEND
|
||||
MP 1/PIPADT # (CS) X 2(+8) NOW (PIPA PULSES) X 2(+5) *
|
||||
EXTEND
|
||||
MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11 *
|
||||
INDEX BUF +2
|
||||
DAS DELVX # (PIPAI) + (PIPAI)(SFE) - (BIAS)(DELTAT)
|
||||
|
||||
CCS BUF +2 # PIPAZ, PIPAY, PIPAX
|
||||
AD NEG1
|
||||
TCF 1/PIPA1 +1
|
||||
# Page 327
|
||||
NOOP # LESS THAN ZERO IMPOSSIBLE
|
||||
|
||||
# Page 328
|
||||
IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS.
|
||||
TS BUF # INDEX COUNTER. IRIGX, IRIGY, IRIGZ.
|
||||
|
||||
TC IRIGX # COMPENSATE ACCELERATION TERMS
|
||||
|
||||
CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC DRIFTSUB # -(NBOX)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
TC IRIGY # COMPENSATE ACCELERATION TERMS
|
||||
|
||||
CS NBDY # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC DRIFTSUB # +(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
TC IRIGZ # COMPENSATE ACCELERATION TERMS
|
||||
|
||||
CA NBDZ # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC DRIFTSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
|
||||
TCF +2 # YES SEND OUT GYRO TORQUING COMMANDS.
|
||||
TCF IRIG1 # NO RETURN
|
||||
|
||||
CA PRIO21 # PRIO GREATER THAN SERVICER.
|
||||
TC NOVAC # SEND OUT GYRO TORQUING COMMANDS.
|
||||
EBANK= NBDX
|
||||
2CADR 1/GYRO
|
||||
|
||||
RELINT
|
||||
IRIG1 CA MODE # RESTORE CALLER'S EBANK
|
||||
TS EBANK
|
||||
TCF SWRETURN
|
||||
|
||||
# Page 329
|
||||
IRIGX EXTEND
|
||||
QXCH MPAC +2 # SAVE Q
|
||||
EXTEND
|
||||
DCS DELVX # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC
|
||||
CA ADIAX # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
|
||||
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(-6) *
|
||||
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(-6) *
|
||||
# TC GCOMPSUB # *** -(ADOAX)(PIPAZ) (GYRO PULSES) X 2(+14)
|
||||
|
||||
TC MPAC +2
|
||||
|
||||
IRIGY EXTEND
|
||||
QXCH MPAC +2 # SAVE Q
|
||||
EXTEND
|
||||
DCS DELVY # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC
|
||||
CA ADIAY # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
|
||||
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(-6) *
|
||||
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(-6) *
|
||||
# TC GCOMPSUB # *** -(ADOAY)(/PIPAX) (GYRO PULSES) X 2(+14)
|
||||
|
||||
TC MPAC +2
|
||||
|
||||
IRIGZ EXTEND
|
||||
QXCH MPAC +2 # SAVE Q
|
||||
EXTEND
|
||||
DCS DELVY # (PIPA PULSES) X 2(+14)
|
||||
DXCH MPAC
|
||||
CA ADSRAZ # (GYRO PULSES)/(PIPA PULSE) X 2(-6) *
|
||||
# Page 330
|
||||
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(-6) *
|
||||
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(-6) *
|
||||
# TC GCOMPSUB # *** +(ADOAZ)(PIPAX) (GYRO PULSES) X 2(+14)
|
||||
|
||||
TC MPAC +2
|
||||
|
||||
# Page 331
|
||||
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(-6) *
|
||||
DXCH VBUF # NOW = (GYRO PULSES) X 2(+8) *
|
||||
|
||||
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(+8) *
|
||||
|
||||
CA VBUF # PARTIAL RESULT -- MAJOR
|
||||
EXTEND
|
||||
MP BIT9 # SCALE 2(+6) SHIFT RIGHT 6 *
|
||||
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 BIT9 # SCALE 2(+6) SHIFT RIGHT 6 *
|
||||
TS L
|
||||
CAF ZERO
|
||||
INDEX BUF # RESULT = (GYRO PULSES) X 2(+14)
|
||||
DAS GCOMP # (ADIA)(PIPAI) OR (ADSRA)(PIPAI)
|
||||
|
||||
TC Q
|
||||
|
||||
# Page 332
|
||||
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 # NO 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 COMPCHK # DEC -1
|
||||
CCS A # ARE GYRO COMMANDS GREATER THAN 2 PULSES
|
||||
TS GCOMPSW # YES -- SET GCOMPSW POSITIVE
|
||||
TC BUF +1 # NO
|
||||
|
||||
# Page 333
|
||||
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
|
||||
COMPCHK DEC -1 # LESS THAN ZERO IMPOSSIBLE
|
||||
TCF ENDOFJOB
|
||||
|
||||
# Page 334
|
||||
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 FLAGWRD8 # IF SURFACE FLAG IS SET, SET TEM1
|
||||
MASK BIT8 # POSITIVE SO THAT THE ACCELERATION TERMS
|
||||
TS TEM1 # WILL BE COMPENSATED.
|
||||
EXTEND
|
||||
BZF +3 # ARE WE ON THE SURFACE
|
||||
|
||||
TC IBNKCALL # ON THE SURFACE
|
||||
CADR PIPASR +3 # READ PIPAS, BUT DO NOT SCALE THEM
|
||||
|
||||
CA TIME1 # (CS) X 2(+14)
|
||||
XCH 1/PIPADT # PREVIOUS TIME
|
||||
RELINT
|
||||
COM
|
||||
AD 1/PIPADT # PRESENT TIME - PREVIOUS TIME
|
||||
NBD2 AD HALF # CORRECT FOR POSSIBLE TIME1 TICK
|
||||
AD HALF
|
||||
XCH L # IF TIME1 DID NOT DICK, REMOVE RESULTING
|
||||
XCH L # OVERFLOW.
|
||||
|
||||
NBD3 EXTEND # C(A) = DELTAT (CS) X 2(+14)
|
||||
MP BIT10 # SHIFT RIGHT 5
|
||||
DXCH VBUF +2
|
||||
|
||||
CA ZERO
|
||||
TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS.
|
||||
TS BUF # INDEX X, Y, Z.
|
||||
|
||||
CCS TEM1 # IF SURFACE FLAG IS SET,
|
||||
TC IRIGX # COMPENSATE ACCELERATION TERMS.
|
||||
|
||||
EXTEND
|
||||
DCA VBUF +2
|
||||
DXCH MPAC # DELTAT NOW SCALED (CS) X 2(+19)
|
||||
|
||||
CS NBDX # (GYRO PULSES)/(CS) X 2(-5)
|
||||
TC FBIASSUB # -(NBOX)(DELTAT) (GYRO PULSES) X 2(+14)
|
||||
|
||||
CCS TEM1 # IF SURFACE FLAG IS SET,
|
||||
TC IRIGY # COMPENSATE ACCELERATION TERMS.
|
||||
# Page 335
|
||||
EXTEND
|
||||
DCS VBUF +2
|
||||
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)
|
||||
|
||||
CCS TEM1 # IF SURFACE FLAG IS SET,
|
||||
TC IRIGZ # COMPENSATE ACCELERATION TERMS
|
||||
|
||||
EXTEND
|
||||
DCS VBUF +2
|
||||
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)
|
||||
|
||||
CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES
|
||||
TCF 1/GYRO # YES
|
||||
TCF ENDOFJOB # NO
|
||||
|
||||
# Page 336
|
||||
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 # NOW 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 PIPUSE1
|
||||
|
||||
CCS GCOMPSW
|
||||
TCF +3
|
||||
TCF +2
|
||||
TCF ENDOFJOB
|
||||
|
||||
CA FLAGWRD8 # IF SURFACE FLAG IS SET, SET TEM1
|
||||
MASK SURFFBIT # POSITIVE SO THAT THE ACCELERATION TERMS
|
||||
TS TEM1 # WILL BE COMPENSATED.
|
||||
|
||||
CAF PRIO31 # 2 SECONDS SCALED (CS) X 2(+8)
|
||||
XCH 1/PIPADT
|
||||
COM
|
||||
AD PIPTIME +1
|
||||
TCF NBD2
|
||||
|
||||
GCOMPZER CAF LGCOMP # ROUTINE TO ZERO GCOMP BEFORE FIRST
|
||||
XCH EBANK # CALL TO 1/PIPA
|
||||
TS MODE
|
||||
|
||||
CAF ZERO
|
||||
TS GCOMPSW
|
||||
TS GCOMP
|
||||
TS GCOMP +1
|
||||
TS GCOMP +2
|
||||
TS GCOMP +3
|
||||
TS GCOMP +4
|
||||
# Page 337
|
||||
TS GCOMP +5
|
||||
|
||||
TCF IRIG1 # RESTORE EBANK AND RETURN
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,300 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INFLIGHT_ALIGNMENT_ROUTINES.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1249-1258
|
||||
# Mod history: 2009-05-26 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1249
|
||||
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 TORQUE ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC,
|
||||
# MGC, AND OGC RESPECTIVELY.
|
||||
|
||||
COUNT* $$/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 1250
|
||||
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 1251
|
||||
# ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE.
|
||||
#
|
||||
# THE INPUTS ARE SIN/4 AND COS/4 STORED UP 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 1252
|
||||
# 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 1253
|
||||
# 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 1254
|
||||
DOT STADR
|
||||
STCALL SINTH # SIN(IG) = XSM . MGA
|
||||
ARCTRIG
|
||||
|
||||
STOVL IGC
|
||||
OGC
|
||||
RTB
|
||||
V1STO2S
|
||||
STCALL THETAD
|
||||
S2
|
||||
|
||||
GIMLOCK1 EXIT
|
||||
TC ALARM
|
||||
OCT 00401
|
||||
TC UPFLAG # GIMBAL LOCK HAS OCCURRED
|
||||
ADRES GLOKFAIL
|
||||
|
||||
TC INTPRET
|
||||
GOTO
|
||||
CALCGA1
|
||||
|
||||
# Page 1255
|
||||
# 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 1256
|
||||
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 1257
|
||||
QTSN45 2DEC .1768
|
||||
|
||||
.166... 2DEC .1666666667
|
||||
|
||||
# Page 1258 (empty page)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,175 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INTER-BANK_COMMUNICATION.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 998-1001
|
||||
# Mod history: 2009-05-24 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2011-05-08 JL Removed workaround.
|
||||
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 998
|
||||
# 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* $$/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 999
|
||||
# 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 1000
|
||||
# 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
|
||||
CAF 0
|
||||
INCR Q
|
||||
|
||||
ISWCALLL 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 1001
|
||||
# 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 OXX 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 MAY BE CALLED BY ANY PROGRAM LOCATED IN BANKS 00 - 27. I.E., NO PROGRAM LIVING IN ANY
|
||||
# SUPERBANK SHOULD USE SUPERSW. ***
|
||||
#
|
||||
# SUPERSW MAY BE CALLED IN THIS FASHION:
|
||||
# CAF ABBCON WHERE -- ABBCON BBCON SOMETHING --
|
||||
# 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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,117 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INTERRUT_LEAD_INS.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: 0153-0154
|
||||
# Mod history: 2009-05-14 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
|
||||
# Page 153
|
||||
SETLOC 4000
|
||||
|
||||
COUNT* $$/RUPTS # FIX-FIX LEAD INS
|
||||
INHINT # GO
|
||||
CAF GOBB
|
||||
XCH BBANK
|
||||
TCF GOPROG
|
||||
|
||||
DXCH ARUPT # T6RUPT
|
||||
EXTEND
|
||||
DCA T6ADR
|
||||
DTCB
|
||||
|
||||
DXCH ARUPT # T5RUPT -- AUTOPILOT
|
||||
EXTEND
|
||||
DCA T5ADR
|
||||
DTCB
|
||||
|
||||
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
|
||||
CAF RDRPTBB
|
||||
# Page 154
|
||||
XCH BBANK
|
||||
TCF RADAREAD
|
||||
|
||||
DXCH ARUPT # RUPT10 IS USED ONLY BY LANDING GUIDANCE
|
||||
CA RUPT10BB
|
||||
XCH BBANK
|
||||
TCF PITFALL
|
||||
|
||||
|
||||
EBANK= LST1 # RESTART USES E0, E3
|
||||
GOBB BBCON GOPROG
|
||||
|
||||
EBANK= PERROR
|
||||
T6ADR 2CADR DOT6RUPT
|
||||
|
||||
EBANK= LST1
|
||||
T3RPTBB BBCON T3RUPT
|
||||
|
||||
EBANK= KEYTEMP1
|
||||
KEYRPTBB BBCON KEYRUPT1
|
||||
|
||||
EBANK= AOTAZ
|
||||
MKRUPTBB BBCON MARKRUPT
|
||||
|
||||
UPRPTBB = KEYRPTBB
|
||||
|
||||
EBANK= DNTMBUFF
|
||||
DWNRPTBB BBCON DODOWNTM
|
||||
|
||||
EBANK= RADMODES
|
||||
RDRPTBB BBCON RADAREAD
|
||||
|
||||
EBANK= M11
|
||||
T4RPTBB BBCON T4RUPT
|
||||
|
||||
EBANK= ELVIRA
|
||||
RUPT10BB BBCON PITFALL
|
||||
|
||||
@@ -0,0 +1,229 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: KALCMANU_STEERING.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 365-369
|
||||
# Mod history: 2009-05-17 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2011-01-06 JL Added missing comment characters.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 365
|
||||
# GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
|
||||
#
|
||||
# NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
|
||||
|
||||
EBANK= TTEMP
|
||||
|
||||
NEWDELHI TC BANKCALL # CHECK FOR AUTO STABILIZATION
|
||||
CADR ISITAUTO # ONLY
|
||||
CCS A
|
||||
TCF NOGO -2
|
||||
NEWANGL TC INTPRET
|
||||
AXC,1 AXC,2
|
||||
MIS # COMPUTE THE NEW MATRIX FROM S/C TO
|
||||
KEL # 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 SPNDX
|
||||
INDEX SPNDX
|
||||
CA BCDU # INITIAL CDU ANGLES
|
||||
EXTEND # OR PREVIOUS DESIRED CDU ANGLES
|
||||
INDEX SPNDX
|
||||
MSU NCDU
|
||||
EXTEND
|
||||
|
||||
# The following 2 lines seem to have no purpose at all.
|
||||
# I am removing them because they only serve to confuse
|
||||
# the assembler by getting in between EXTEND and MP.
|
||||
# --- RSB 2009.
|
||||
#SETLOC KALCMON1
|
||||
#BANK
|
||||
|
||||
MP DT/TAU
|
||||
CCS A # CONVERT TO 2'S COMPLEMENT
|
||||
AD ONE
|
||||
TCF +2
|
||||
COM
|
||||
INDEX SPNDX
|
||||
TS DELDCDU # ANGLE INCREMENTS TO BE ADDED TO
|
||||
INDEX SPNDX # CDUXD, CDUYD, CDUZD EVERY TENTH SECOND
|
||||
# Page 366
|
||||
CA NCDU # BY LEM DAP
|
||||
INDEX SPNDX
|
||||
XCH BCDU
|
||||
INDEX SPNDX
|
||||
TS CDUXD
|
||||
CCS SPNDX
|
||||
TCF INCRDCDU # LOOP FOR THREE AXES
|
||||
|
||||
RELINT
|
||||
|
||||
# COMPARE PRESENT TIME WTIH TIME TO TERMINATE MANEUVER
|
||||
|
||||
TMANUCHK TC TIMECHK
|
||||
TCF CONTMANU
|
||||
CAF ONE
|
||||
MANUSTAL INHINT # END MAJOR PART OF MANEUVER WITHIN 1 SEC
|
||||
TC WAITLIST # UNDER WAITLIST CALL TO MANUSTOP
|
||||
EBANK= TTEMP
|
||||
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 ONESEK +1
|
||||
EXTEND
|
||||
BZMF 2NDRETRN
|
||||
INCR Q
|
||||
2NDRETRN INCR Q
|
||||
TC Q
|
||||
|
||||
DT/TAU DEC .1
|
||||
|
||||
MANUSTAT EXIT # INITIALIZATION ROUTINE
|
||||
EXTEND # FOR AUTOMATIC MANEUVERS
|
||||
DCA TIME2
|
||||
# Page 367
|
||||
DAS TM # TM+TO MANEUVER COMPLETION TIME
|
||||
EXTEND
|
||||
DCS ONESEK
|
||||
DAS TM # (TM+TO)-1
|
||||
INHINT
|
||||
CAF TWO
|
||||
RATEBIAS TS KSPNDX
|
||||
DOUBLE
|
||||
TS KDPNDX
|
||||
INDEX A
|
||||
CA BRATE
|
||||
INDEX KSPNDX # STORE MANEUVER RATE IN
|
||||
TS OMEGAPD # OMEGAPD, OMEGAQD, OMEGARD
|
||||
EXTEND
|
||||
BZMF +2 # COMPUTE ATTITUDE ERROR
|
||||
COM # OFFSET = (WX)ABS(WX)/2AJX
|
||||
EXTEND # WHERE AJX= 2-JET ACCELERATION
|
||||
MP BIASCALE # = -1/16
|
||||
EXTEND
|
||||
INDEX KDPNDX
|
||||
MP BRATE
|
||||
EXTEND
|
||||
INDEX KSPNDX
|
||||
DV 1JACC # = AJX $ 90 DEG/SEC-SEC
|
||||
INDEX KSPNDX
|
||||
TS DELPEROR # $ 180 DEG
|
||||
CCS KSPNDX
|
||||
TCF RATEBIAS
|
||||
|
||||
CA TIME1
|
||||
AD ONESEK +1
|
||||
XCH NEXTIME
|
||||
TCF INCRDCDU -1
|
||||
|
||||
ONESEK DEC 0
|
||||
DEC 100
|
||||
|
||||
BIASCALE OCT 75777 # = -1/16
|
||||
|
||||
CONTMANU CS TIME1 # RESET FOR NEXT DCDU UPDATE
|
||||
AD NEXTIME
|
||||
CCS A
|
||||
AD ONE
|
||||
TCF MANUCALL
|
||||
AD NEGMAX
|
||||
COM
|
||||
MANUCALL INHINT # CALL FOR NEXT UPDATE VIA WAITLIST
|
||||
TC WAITLIST
|
||||
EBANK= TTEMP
|
||||
2CADR UPDTCALL
|
||||
# Page 368
|
||||
CAF ONESEK +1 # INCREMENT TIME FOR NEXT UPDATE
|
||||
ADS NEXTIME
|
||||
TCF ENDOFJOB
|
||||
|
||||
UPDTCALL CAF PRIO26 # SATELLITE PROGRAM TO CALL FOR UPDATE
|
||||
TC FINDVAC # OF STEERING COMMANDS
|
||||
EBANK= TTEMP
|
||||
2CADR NEWDELHI
|
||||
|
||||
TC TASKOVER
|
||||
|
||||
# Page 369
|
||||
# ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
|
||||
|
||||
MANUSTOP CAF ZERO # ZERO MANEUVER RATES
|
||||
TS DELDCDU2
|
||||
TS OMEGARD
|
||||
TS DELREROR
|
||||
TS DELDCDU1
|
||||
TS OMEGAQD
|
||||
TS DELQEROR
|
||||
CA CPSI # SET DESIRED GIMBAL ANGLES TO
|
||||
TS CDUZD # DESIRED FINAL GIMBAL ANGLES
|
||||
CA CTHETA
|
||||
TS CDUYD
|
||||
ENDROLL CA CPHI # NO FINAL YAW
|
||||
TS CDUXD
|
||||
CAF ZERO
|
||||
TS OMEGAPD # I.E., MANEUVER DID NOT GO THRU
|
||||
TS DELDCDU # GIMBAL LOCK ORIGINALLY
|
||||
TS DELPEROR
|
||||
GOODMANU CA ATTPRIO # RESTORE USERS PRIO
|
||||
TS NEWPRIO
|
||||
|
||||
CA ZERO # ZERO ATTCADR
|
||||
DXCH ATTCADR
|
||||
|
||||
TC SPVAC # RETURN TO USER
|
||||
|
||||
TC TASKOVER
|
||||
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: KEYRUPT_UPRUPT.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1338-1340
|
||||
# Mod history: 2009-05-27 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1338
|
||||
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 DSKYFBIT
|
||||
ADS FLAGWRD5
|
||||
|
||||
ACCEPTUP CAF CHRPRIO # (NOTE: RUPTREG4 = KEYTEMP1)
|
||||
TC NOVAC
|
||||
EBANK= DSPCOUNT
|
||||
2CADR CHARIN
|
||||
|
||||
CA RUPTREG4
|
||||
INDEX LOCCTR
|
||||
TS MPAC # LEAVE 5 BIT KEY CODE IN MPAC FOR CHARIN
|
||||
TC RESUME
|
||||
|
||||
# Page 1339
|
||||
# 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
|
||||
|
||||
UPCK 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 UPLOCBIT # TEST UPLOCKFL FOR 0 OR 1
|
||||
MASK FLAGWRD7
|
||||
CCS A
|
||||
TC RESUME # UPLOCKFL = 1
|
||||
TC ACCEPTUP # UPLOCKFL = 0
|
||||
|
||||
CLUPLOCK CS UPLOCBIT # 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 UPLOCBIT # (BY SETTING UPLOCKFL = 1) UNTIL
|
||||
ADS FLAGWRD7 # `ERROR RESET' IS SENT VIA UPLINK.
|
||||
TC RESUME
|
||||
UPTEST AD KEYTEMP1
|
||||
# Page 1340
|
||||
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.
|
||||
|
||||
CS XDSPBIT
|
||||
|
||||
@@ -0,0 +1,308 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: LATITUDE_LONGITUDE_SUBROUTINES.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: Jim Lawton <jim DOT lawton AT gmail DOT com>
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1133-1139
|
||||
# Mod history: 2009-05-28 JL Updated from page images.
|
||||
# 2011-01-06 JL Fixed interpretive indentation.
|
||||
#
|
||||
# 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 1133
|
||||
# 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, SFTGAMMA, 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* $$/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
|
||||
DAD SQRT
|
||||
# Page 1134
|
||||
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 1135
|
||||
# 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 # PD 4 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 1136
|
||||
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
|
||||
|
||||
# Page 1137
|
||||
# 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 1138
|
||||
# ***** 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 1139
|
||||
# ***** 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 RE 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
|
||||
|
||||
|
||||
@@ -0,0 +1,196 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.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: Hartmuth Gutsche <hgutsche@xplornet.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 984-987
|
||||
# Mod history: 2009-05-24 HG 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 984
|
||||
# NAME -- LSPOS -- LOCATE SUN AND MOON DATE -- 25 OCT 67
|
||||
# MOD NO. 1
|
||||
# MOD BY NEVILLE ASSEMBLY SUNDANCE
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
#
|
||||
# COMPUTES UNIT POSITION VECTOR OF THE SUN AND MOON IN THE BASIC REFERENCE SYSTEM. THE SUN VECTOR S IS
|
||||
# LOCATED VIA TWO ANGLES. THE FIRST ANGLE (OBLIQUITY) IS THE ANGLE BETWEEN THE EARTH EQUATOR AND THE ECLIPTIC. THE
|
||||
# POSITION VECTOR OF THE SUN IS
|
||||
# _
|
||||
# S = (COS(LOS), COS(OBL)*SIN(LOS), SIN(OBL)*SIN(LOS)), WHERE
|
||||
#
|
||||
# LOS = LOS +LOS *T-(C *SIN(2PI*T)/365.24 +C *COS(2PI*T)/365.24)
|
||||
# 0 R 0 1
|
||||
# LOS (RAD) IS THE LONGITUDE OF THE SUN FOR MIGNIGHT JUNE 30TH OF THE PARTICULAR YEAR.
|
||||
# 0
|
||||
# LOS (RAD/DAY) IS THE MEAN RATE FOR THE PARTICULAR YEAR.
|
||||
# R
|
||||
#
|
||||
# LOS AND LOS ARE STORED AS LOSC AND LOSR IN RATESP.
|
||||
# 0 R
|
||||
# COS(OBL) AND SIN(OBL) ARE STORED IN THE MATRIX KONMAT.
|
||||
#
|
||||
# T, TIME MEASURED IN DAYS (24 HOURS) IS STORED IN TIMEP.
|
||||
#
|
||||
# C AND C ARE FUDGE FACTORS TO MINIMIZE THE DEVIATION. THEY ARE STORED AS ONE CONSTANT (CMOD), SINCE
|
||||
# 0 1 2 2 1/2
|
||||
# C *SIN(X)+C *COS(X) CAN BE WRITTEN AS (C +C ) *SIN(X+PHI), WHERE PHI=ARCTAN(C /C ).
|
||||
# 0 1 1 0
|
||||
#
|
||||
# THE MOON IS LOCATED VIA FOUR ANGLES, THE FIRST IS THE OBLIQUITY. THE SECOND IS THE MEAN LONGITUDE OF THE MOON,
|
||||
# MEASURED IN THE ECLIPTIC FROM THE MEAN EQUINOX TO THE MEAN ASCENDING NODE OF THE LUNAR ORBIT, AND THEN ALONG THE
|
||||
# ORBIT. THE THIRD ANGLE IS THE ANGLE BETWEEN THE ECLIPTIC AND THE LUNAR ORBIT. THE FOURTH ANGLE IS THE LONGITUDE
|
||||
# OF THE NODE OF THE MOON, MEASURED IN THE LUNAR ORBIT. LET THESE ANGLES BE OBL,LOM,IM, AND LON RESPECTIVELY.
|
||||
#
|
||||
# THE SIMPLIFIED POSITION VECTOR OF THE MOON IS
|
||||
# _
|
||||
# M=(COS(LOM), COS(OBL)*SIN(LOM)-SIN(OBL)*SIN(IM)*SIN(LOM-LON), SIN(OBL)*SIN(LOM)+COS(OBL)*SIN(IM)*SIN(LOM-LON))
|
||||
#
|
||||
# WHERE
|
||||
# LOM=LOM +LOM *T-(A *SIN(2PI*T/27.5545)+A *COS(2PI*T/27.5545)+B *SIN(2PI*T/32)+B *COS(2PI*T/32)), AND
|
||||
# 0 R 0 1 0 1
|
||||
# LON=LON +LON
|
||||
# 0 R
|
||||
# A , A , B AND B ARE STORE AS AMOD AND BMOD (SEE DESCRIPTION OF CMOD, ABOVE). COS(OBL), SIN(OBL)*SIN(IM),
|
||||
# 0 1 0 1
|
||||
# SIN(OBL), AND COS(OBL)*SIN(IM) ARE STORED IN KONMAT AS K1, K2, K3, AND K4, RESPECTIVELY. LOM , LOM , LON , LON
|
||||
# 0 R 0 R
|
||||
# ARE STORED AS LOM0, LOMR, LON0, AND LONR IN RATESP.
|
||||
#
|
||||
# THE THREE PHIS ARE STORED AS AARG, BARG, AND CARG(SUN). ALL CONSTANTS ARE UPDATED BY YEAR.
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
# Page 985
|
||||
# CALL LSPOS. RETURN IS VIA CPRET.
|
||||
#
|
||||
# ALARMS OR ABORTS
|
||||
# NONE
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED
|
||||
# TEPHEM -- TIME FROM MIGNIGHT 1 JULY PRECEDING THE LAUNCH TO THE TIME OF THE LAUNCH (WHEN THE AGC CLOCK WENT
|
||||
# TO ZERO). TEPHEM IS TP WITH UNITS OF CENTI-SECONDS.
|
||||
#
|
||||
# TIME2 AND TIME1 ARE IN MPAC AND MPAC +1 WHEN PROGRAM IS CALLED.
|
||||
#
|
||||
# OUTPUT
|
||||
# UNIT POSITIONAL VECTOR OF SUN IN VSUN. (SCALED B-1)
|
||||
# UNIT POSITIONAL VECTOR OF MOON IN VMOON. (SCALED B-1)
|
||||
#
|
||||
# SUBROUTINES USED
|
||||
# NONE
|
||||
#
|
||||
# DEBRIS
|
||||
# CURRENT CORE SET, WORK AREA AND FREEFLAG
|
||||
|
||||
BANK 04
|
||||
SETLOC EPHEM
|
||||
BANK
|
||||
|
||||
EBANK= VSUN
|
||||
COUNT* $$/EPHEM
|
||||
LUNPOS EQUALS LSPOS
|
||||
|
||||
LSPOS SETPD SR
|
||||
0
|
||||
14D # TP
|
||||
TAD DDV
|
||||
# HG comments in [...] are hand written comments in original listing
|
||||
TEPHEM # TIME OF LAUNCH [IN CENTISEC B 42]
|
||||
CSTODAY # 24 HOURS -- 8640000 CENTI-SECS/DAY B-33
|
||||
STORE TIMEP # T IN DAYS [@ B 9 = 512 DAYS]
|
||||
AXT,1 AXT,2 # [GRANULRITY = 0.164 SEC]
|
||||
0
|
||||
0
|
||||
CLEAR
|
||||
FREEFLAG # SWITCH BIT
|
||||
POSITA DLOAD
|
||||
KONMAT +2 # ZEROS
|
||||
STORE GTMP
|
||||
POSITB DLOAD DMP*
|
||||
TIMEP # T
|
||||
VAL67 +4,1 # 1/27 OR 1/32 OR 1/365
|
||||
# Page 986
|
||||
SL DAD*
|
||||
8D
|
||||
VAL67 +2,1 # AARG
|
||||
SIN DMP* # SIN(T/27+PHI) OR T/32 OR T/365
|
||||
VAL67,1 # (A0**2+A1**2)**1/2 SIN(X+PHIA)
|
||||
DAD INCR,1 # PLUS
|
||||
GTMP # (B0**2+B1**2)**1/2 SIN(X+PHIB)
|
||||
DEC -6
|
||||
STORE GTMP # OR (C0**2+C1**2)**1/2 SIN(X+PHIC)
|
||||
BOFSET
|
||||
FREEFLAG
|
||||
POSITB
|
||||
POSITD DLOAD DMP*
|
||||
TIMEP # T
|
||||
RATESP,2 # LOMR,LOSR,LONR
|
||||
SL DAD*
|
||||
5D
|
||||
RATESP +6,2 # LOM0,LOS0,LON0
|
||||
DSU
|
||||
GTMP
|
||||
STORE STMP,2 # LOM,LOS,LON
|
||||
SLOAD INCR,2
|
||||
X2
|
||||
DEC -2
|
||||
DAD BZE
|
||||
RCB-13 # PLUS 2
|
||||
POSITE # 2ND
|
||||
BPL
|
||||
POSITA # 1ST
|
||||
POSITF DLOAD DSU # 3RD
|
||||
STMP # LOM
|
||||
STMP +4 # LON
|
||||
SIN PDDL # SIN(LOM-LON)
|
||||
STMP
|
||||
SIN PDDL # SIN LOM
|
||||
STMP
|
||||
COS VDEF # COS LOM
|
||||
MXV UNIT
|
||||
KONMAT # K1,K2,K3,K4,
|
||||
STORE VMOON
|
||||
DLOAD PDDL
|
||||
KONMAT +2 # ZERO
|
||||
STMP +2
|
||||
SIN PDDL # SIN LOS
|
||||
STMP +2
|
||||
COS VDEF # COS LOS
|
||||
MXV UNIT
|
||||
KONMAT
|
||||
STORE VSUN
|
||||
RVQ
|
||||
# Page 987
|
||||
POSITE DLOAD
|
||||
KONMAT +2 # ZEROS
|
||||
STORE GTMP
|
||||
GOTO
|
||||
POSITD
|
||||
LUNVEL RVQ
|
||||
SETLOC EPHEM1
|
||||
BANK
|
||||
|
||||
COUNT* $$/EPHEM
|
||||
STMP EQUALS 16D
|
||||
GTMP EQUALS 22D
|
||||
TIMEP EQUALS 24D
|
||||
|
||||
# *** END OF LEMP50S .115 ***
|
||||
@@ -0,0 +1,165 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: MAIN.agc
|
||||
# Purpose: The main source file for Luminary 1A, revision 099.
|
||||
# It is part of the source code for the Lunar Module's (LM)
|
||||
# Apollo Guidance Computer (AGC) for Apollo 11.
|
||||
# Assembler: yaYUL
|
||||
# Contact: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo/index.html
|
||||
# Mod history: 2009-05-05 RSB Adapted from Luminary131/MAIN.agc.
|
||||
#
|
||||
# The contents of the "Luminary099" files, in general, are
|
||||
# transcribed from a digital images created from a hardcopy of the program
|
||||
# residing at the MIT Museum. Many thanks to Debbie Douglas of the Museum,
|
||||
# and to Paul Fjeld (who made the images).
|
||||
#
|
||||
# Notations on this document read, in part:
|
||||
#
|
||||
# ASSEMBLE REVISION 001 OF AGC PROGRAM LMY99 BY NASA 2021112-061
|
||||
# 16:27 JULY 14,1969
|
||||
# [Note that this is the date the hardcopy was made, not the
|
||||
# date of the program revision or the assembly.]
|
||||
# ...
|
||||
# THIS LGC PROGRAM IS INTENDED FOR USE IN THE LM DURING THE MANNED
|
||||
# LUNAR LANDING MISSION OR ANY SUBSET THEREOF.
|
||||
# ...
|
||||
#
|
||||
# The page images themselves, as reduced in size (and consequently in
|
||||
# quality) to be suitable for online presentation, are available at
|
||||
# http://www.ibiblio.org/apollo. If you want to see the (much) higher
|
||||
# quality digital images that Paul actually made, contact info@sandroi.org
|
||||
# directly.
|
||||
#
|
||||
# This file is a little different from the other Luminary099 files I'm providing,
|
||||
# in that it doesn't represent anything that appears directly in the original source.
|
||||
# What I (RSB) have done for organizational purposes is to split the huge monolithic
|
||||
# source code into smaller, more manageable chunks--i.e., into individual source
|
||||
# files. Those files are rejoined within this file as "includes". It just makes
|
||||
# it a little easier to work with. The code chunks correspond to natural divisions
|
||||
# into sub-programs. In fact, these divisions are more-or-less specified by
|
||||
# the source code itself. Refer to the "TABLE OF SUBROUTINE LOG SECTIONS" at the
|
||||
# very beginning of the file ASSEMBLY_AND_OPERATION_INFORMATION.agc.
|
||||
#
|
||||
# It may be reasonably asked why tens of thousands of lines of source are joined by
|
||||
# means of inclusion, rather than simply assembling the source files individually and
|
||||
# then linking them to form the executable. The answer is that the original
|
||||
# development team had no linker. The builds were monolithic just like this.
|
||||
# There was a big emphasis on reusability of the code in the original project,
|
||||
# apparently, but this reusability took the form of inserting your deck of
|
||||
# punch-cards at the appropriate position in somebody else's deck of punch-cards.
|
||||
# (Actually, I believe a tape-library method was used to avoid having to continually
|
||||
# reload the card decks, but that doesn't change the basic principle.)
|
||||
# So, indeed, the method of file-inclusion is a very fair representation of the
|
||||
# methods used in the original development ... with the improvement, of course,
|
||||
# that you no longer have to worry about dropping the card deck. On the other hand,
|
||||
# I wasn't there at the time, so I may have no idea what I'm talking about.
|
||||
#
|
||||
# Finally, note that the original Apollo AGC assembler (called "YUL") is no longer
|
||||
# available (as far as I can tell). In fact, it was replaced by another assembler
|
||||
# ("GAP") even before Apollo 11, but GAP is no more available than is YUL. The
|
||||
# replacement assembler yaYUL accepts a slightly different format for the source
|
||||
# code from what YUL or GAP accepted, so the source code has been targeted for
|
||||
# assembly with yaYUL.
|
||||
|
||||
# What follows is simply a bunch of file-includes for the individual code chunks.
|
||||
# I've marked the page numbers to make proof-reading easier. Besides, the digital
|
||||
# images of the assembly listing contains 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 at hand.
|
||||
|
||||
$CONTRACT_AND_APPROVALS.agc # p. 1
|
||||
$ASSEMBLY_AND_OPERATION_INFORMATION.agc # pp. 2-27
|
||||
$TAGS_FOR_RELATIVE_SETLOC.agc # pp. 28-37
|
||||
$CONTROLLED_CONSTANTS.agc # pp. 38-53
|
||||
$INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.agc # pp. 54-60
|
||||
$FLAGWORD_ASSIGNMENTS.agc # pp. 61-88
|
||||
# p. 89 is a GAP-generated table
|
||||
$ERASABLE_ASSIGNMENTS.agc # pp. 90-152
|
||||
$INTERRUPT_LEAD_INS.agc # pp. 153-154
|
||||
$T4RUPT_PROGRAM.agc # pp. 155-189
|
||||
$RCS_FAILURE_MONITOR.agc # pp. 190-192
|
||||
$DOWNLINK_LISTS.agc # pp. 193-205
|
||||
$AGS_INITIALIZATION.agc # pp. 206-210
|
||||
$FRESH_START_AND_RESTART.agc # pp. 211-237
|
||||
$RESTART_TABLES.agc # pp. 238-243
|
||||
$AOTMARK.agc # pp. 244-261
|
||||
$EXTENDED_VERBS.agc # pp. 262-300
|
||||
$PINBALL_NOUN_TABLES.agc # pp. 301-319
|
||||
$LEM_GEOMETRY.agc # pp. 320-325
|
||||
$IMU_COMPENSATION_PACKAGE.agc # pp. 326-337
|
||||
$R63.agc # pp. 338-341
|
||||
$ATTITUDE_MANEUVER_ROUTINE.agc # pp. 342-363
|
||||
$GIMBAL_LOCK_AVOIDANCE.agc # p. 364
|
||||
$KALCMANU_STEERING.agc # pp. 365-369
|
||||
$SYSTEM_TEST_STANDARD_LEAD_INS.agc # pp. 370-372
|
||||
$IMU_PERFORMANCE_TEST_2.agc # pp. 373-381
|
||||
$IMU_PERFORMANCE_TESTS_4.agc # pp. 382-389
|
||||
$PINBALL_GAME_BUTTONS_AND_LIGHTS.agc # pp. 390-471
|
||||
$R60_62.agc # pp. 472-485
|
||||
$S-BAND_ANTENNA_FOR_LM.agc # pp. 486-489
|
||||
$RADAR_LEADIN_ROUTINES.agc # pp. 490-491
|
||||
$P20-P25.agc # pp. 492-614
|
||||
$P30_P37.agc # pp. 615-617
|
||||
$P32-P35_P72-P75.agc # pp. 618-650
|
||||
$LAMBERT_AIMPOINT_GUIDANCE.agc # pp. 651-653
|
||||
$GROUND_TRACKING_DETERMINATION_PROGRAM.agc # pp. 654-657
|
||||
$P34-35_P74-75.agc # pp. 658-702
|
||||
$R31.agc # pp. 703-708
|
||||
$P76.agc # pp. 709-711
|
||||
$R30.agc # pp. 712-722
|
||||
$STABLE_ORBIT.agc # pp. 723-730
|
||||
$BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc # pp. 731-751
|
||||
$P40-P47.agc # pp. 752-784
|
||||
$THE_LUNAR_LANDING.agc # pp. 785-792
|
||||
$THROTTLE_CONTROL_ROUTINES.agc # pp. 793-797
|
||||
$LUNAR_LANDING_GUIDANCE_EQUATIONS.agc # pp. 798-828
|
||||
$P70-P71.agc # pp. 829-837
|
||||
$P12.agc # pp. 838-842
|
||||
$ASCENT_GUIDANCE.agc # pp. 843-856
|
||||
$SERVICER.agc # pp. 857-897
|
||||
$LANDING_ANALOG_DISPLAYS.agc # pp. 898-907
|
||||
$FINDCDUW--GUIDAP_INTERFACE.agc # pp. 908-925
|
||||
$P51-P53.agc # pp. 926-983
|
||||
$LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc # pp. 984-987
|
||||
$DOWN_TELEMETRY_PROGRAM.agc # pp. 988-997
|
||||
$INTER-BANK_COMMUNICATION.agc # pp. 998-1001
|
||||
$INTERPRETER.agc # pp. 1002-1094
|
||||
$FIXED_FIXED_CONSTANT_POOL.agc # pp. 1095-1099
|
||||
$INTERPRETIVE_CONSTANT.agc # pp. 1100-1101
|
||||
$SINGLE_PRECISION_SUBROUTINES.agc # p. 1102
|
||||
$EXECUTIVE.agc # pp. 1103-1116
|
||||
$WAITLIST.agc # pp. 1117-1132
|
||||
$LATITUDE_LONGITUDE_SUBROUTINES.agc # pp. 1133-1139
|
||||
$PLANETARY_INERTIAL_ORIENTATION.agc # pp. 1140-1148
|
||||
$MEASUREMENT_INCORPORATION.agc # pp. 1149-1158
|
||||
$CONIC_SUBROUTINES.agc # pp. 1159-1204
|
||||
$INTEGRATION_INITIALIZATION.agc # pp. 1205-1226
|
||||
$ORBITAL_INTEGRATION.agc # pp. 1227-1248
|
||||
$INFLIGHT_ALIGNMENT_ROUTINES.agc # pp. 1249-1258
|
||||
$POWERED_FLIGHT_SUBROUTINES.agc # pp. 1259-1267
|
||||
$TIME_OF_FREE_FALL.agc # pp. 1268-1283
|
||||
$AGC_BLOCK_TWO_SELF_CHECK.agc # pp. 1284-1293
|
||||
$PHASE_TABLE_MAINTENANCE.agc # pp. 1294-1302
|
||||
$RESTARTS_ROUTINE.agc # pp. 1303-1308
|
||||
$IMU_MODE_SWITCHING_ROUTINES.agc # pp. 1309-1337
|
||||
$KEYRUPT_UPRUPT.agc # pp. 1338-1340
|
||||
$DISPLAY_INTERFACE_ROUTINES.agc # pp. 1341-1373
|
||||
$SERVICE_ROUTINES.agc # pp. 1374-1380
|
||||
$ALARM_AND_ABORT.agc # pp. 1381-1385
|
||||
$UPDATE_PROGRAM.agc # pp. 1386-1396
|
||||
$RTB_OP_CODES.agc # pp. 1397-1402
|
||||
$T6-RUPT_PROGRAMS.agc # pp. 1403-1405
|
||||
$DAP_INTERFACE_SUBROUTINES.agc # pp. 1406-1409
|
||||
$DAPIDLER_PROGRAM.agc # pp. 1410-1420
|
||||
$P-AXIS_RCS_AUTOPILOT.agc # pp. 1421-1441
|
||||
$Q_R-AXIS_RCS_AUTOPILOT.agc # pp. 1442-1459
|
||||
$TJET_LAW.agc # pp. 1460-1469
|
||||
$KALMAN_FILTER.agc # pp. 1470-1471
|
||||
$TRIM_GIMBAL_CNTROL_SYSTEM.agc # pp. 1472-1484
|
||||
$AOSTASK_AND_AOSJOB.agc # pp. 1485-1506
|
||||
$SPS_BACK-UP_RCS_CONTROL.agc # pp. 1507-1510
|
||||
# pp. 1511-1743: GAP-generated tables.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,495 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: MEASUREMENT_INCORPORATION.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: Jim Lawton <jim DOT lawton AT gmail DOT com>
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1149-1158
|
||||
# Mod history: 2009-05-28 JL Updated from page images.
|
||||
# 2011-01-06 JL Fixed pseudo-label indentation.
|
||||
#
|
||||
# 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 1149
|
||||
# INCORP1 -- PERFORMS THE SIX DIMENSIONAL STATE VECTOR DEVIATION FOR POSITION
|
||||
# AND VELOCITY OR THE NINE-DIMENSIONAL DEVIATION OF POSITION, VELOCITY, AND
|
||||
# RADAR OR LANDMARK BIAS. THE OUTPUT OF THE BVECTOR ROUTINE ALONG WITH THE
|
||||
# ERROR TRANSITION MATRIX (W) ARE USED AS INPU TO THE ROUTINE. THE DEVIATION
|
||||
# IS OBTAINED BY COMPUTING AN ESTIMATED TRACKING MEASUREMENT FROM THE
|
||||
# CURRENT STATE VECTOR AND COMPARING IT WITH AN ACTUAL TRACKING MEASUREMENT
|
||||
# AND APPLYING A STATISTICAL WEIGHTING VECTOR.
|
||||
#
|
||||
# INPUT
|
||||
# DMENFLG = 0 (6-DIMENSIONAL BVECTOR), =1 (9-DIMENSIONAL)
|
||||
# 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 1150
|
||||
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 PASS
|
||||
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 1151
|
||||
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 1152
|
||||
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 1153
|
||||
# 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 0=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 1154
|
||||
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 1155
|
||||
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 1156
|
||||
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 1157
|
||||
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 RENDEZ
|
||||
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
|
||||
+3
|
||||
STADR
|
||||
STORE NORMZI # LARGEST ABVAL
|
||||
DLOAD SXA,1
|
||||
NORMZI
|
||||
NORMZI # SAVE X1
|
||||
NORM INCR,1
|
||||
# Page 1158
|
||||
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
|
||||
|
||||
|
||||
@@ -0,0 +1,977 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: ORBITAL_INTEGRATION.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1227-1248
|
||||
# Mod history: 2009-05-26 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2009-06-05 RSB Fixed 3 typos.
|
||||
# 2009-06-06 RSB Page 1248 was missing entirely for some reason.
|
||||
# 2009-06-07 RSB Corrected a typo.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1227
|
||||
# ORBITAL INTEGRATION
|
||||
|
||||
# DELETE
|
||||
BANK 13
|
||||
SETLOC ORBITAL
|
||||
BANK
|
||||
COUNT* $$/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 (-20R +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 1228
|
||||
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 1229
|
||||
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 1230
|
||||
# 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 1231
|
||||
2D
|
||||
STORE RPSV
|
||||
SLOAD DSU
|
||||
MODREG
|
||||
OCT27
|
||||
BHIZ BOF
|
||||
+3
|
||||
DIM0FLAG
|
||||
GETRPSV
|
||||
VLOAD VXSC
|
||||
ALPHAV
|
||||
ALPHAM
|
||||
VSR* VSU
|
||||
1,2
|
||||
BETAV
|
||||
XCHX,2
|
||||
DIFEQCNT
|
||||
STORE VECTAB +6,2
|
||||
STORE RQVV
|
||||
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
|
||||
# Page 1232
|
||||
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
|
||||
36D
|
||||
STORE BETAM
|
||||
NORM BDDV # FORM NORMALIZE QUOTIEN ALPHAM/BETAM
|
||||
33D
|
||||
SR1R PUSH # C(PDL+2) = ALMOST NORMALIZE 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
|
||||
# Page 1233
|
||||
ALPHAV
|
||||
VAD PUSH # A12 + C(PD+16D) TO PD+16D
|
||||
DLOAD DMP
|
||||
0
|
||||
12D
|
||||
NORM ROUND
|
||||
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 P00DOO
|
||||
OCT 00430
|
||||
|
||||
# Page 1234
|
||||
# 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 1235
|
||||
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
|
||||
DMPR* SR3
|
||||
2J3RE/J2,2
|
||||
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.
|
||||
# Page 1236
|
||||
PUSH DMP # STORE COSPHI**2 SCALED B2 IN 8D
|
||||
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 COMPNENT.
|
||||
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
|
||||
# Page 1237
|
||||
STORE FV
|
||||
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 VLOAD
|
||||
MIDFLAG
|
||||
RECTEST
|
||||
RCV
|
||||
DOT DMP
|
||||
VCV
|
||||
DT/2 # (R.V) X (DELTA T)
|
||||
BMN
|
||||
RECTEST
|
||||
BON BOF
|
||||
MOONFLAG
|
||||
LUNSPH
|
||||
RPQFLAG
|
||||
EARSPH
|
||||
DLOAD CALL
|
||||
TET
|
||||
LSPOS # RPQV IN MPAC
|
||||
STORE RPQV # RPQV
|
||||
LXA,2
|
||||
PBODY
|
||||
INLUNCHK BVSU ABVAL
|
||||
RCV
|
||||
DSU BMN
|
||||
RSPHERE
|
||||
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
|
||||
# Page 1238
|
||||
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
|
||||
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
|
||||
EARSPH VLOAD GOTO
|
||||
RPQV
|
||||
INLUNCHK
|
||||
LUNSPH DLOAD SR2
|
||||
10D
|
||||
DSU BMN
|
||||
RSPHERE
|
||||
RECTEST
|
||||
BOF DLOAD
|
||||
RPQFLAG
|
||||
DOSWITCH
|
||||
TET
|
||||
CALL
|
||||
LUNPOS
|
||||
VCOMP
|
||||
STORE RPQV
|
||||
# Page 1239
|
||||
DOSWITCH CALL
|
||||
ORIGCHNG
|
||||
GOTO
|
||||
INTGRATE
|
||||
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 1240
|
||||
# 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 1241
|
||||
# THE THREE DIFEQ ROUTINES -- DIFEQ+0, DIFEQ+12, DIFEQ+24 -- ARE ENTERED TO 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 1242
|
||||
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 # INSTALL AND INTWAKE
|
||||
TC INTPRET
|
||||
SSP
|
||||
QPRET
|
||||
AMOVED
|
||||
BON GOTO
|
||||
VINTFLAG
|
||||
# Page 1243
|
||||
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 # DON'T INTEGRATE W THIS TIME
|
||||
ORBWFLAG # INVALIDATE W
|
||||
CLEAR
|
||||
RENDWFLG
|
||||
SET EXIT
|
||||
STATEFLG # PICK UP STATE VECTOR UPDATE
|
||||
TC ALARM
|
||||
OCT 421
|
||||
TC INTPRET
|
||||
# Page 1244
|
||||
GOTO
|
||||
TESTLOOP # FINISH INTEGRATING STATE VECTOR
|
||||
|
||||
# Page 1245
|
||||
# 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 SOLVE THE DIFFERENTIAL EQUATIONS. THE PROGRAM
|
||||
# USES A TABLE OF VEHICLE POSITION VECTORS COMPUTED DURING THE INTEGRATION OF THE VEHICLE'S 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 1246
|
||||
0 -8D,2
|
||||
|
||||
# ********************************************************************************
|
||||
# ********************************************************************************
|
||||
SETITCTR SSP BOFF # SET ITERCTR FOR LAMBERT CALLS. THIS
|
||||
ITERCTR # CODING BELONGS IN INITVEL AND IS HERE
|
||||
20D # FOR PURPOSES OF A ONE-MODULE
|
||||
AVEGFLAG # REMANUFACTURE ONLY. CODING SHOULD
|
||||
LAMBERT # BE MOVED BACK TO INITVEL FOR LUMINARY 1B
|
||||
SSP GOTO
|
||||
ITERCTR
|
||||
5
|
||||
LAMBERT
|
||||
# ********************************************************************************
|
||||
# ********************************************************************************
|
||||
|
||||
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
|
||||
|
||||
# Page 1247
|
||||
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
|
||||
5/8 2DEC 5 B-3
|
||||
|
||||
-1/12 2DEC -.1
|
||||
|
||||
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
|
||||
|
||||
QUALITY1 BOF DLOAD
|
||||
MOONFLAG
|
||||
NBRANCH
|
||||
URPV
|
||||
DSQ
|
||||
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
|
||||
# Page 1248
|
||||
# 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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,164 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: P76.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 709-711
|
||||
# Mod history: 2009-05-19 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 709
|
||||
# 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 INIITIALIZATION REQUIRED -- NONE.
|
||||
# 4) CALLING SEQUENCES AND EXIT MODES -- CALLED BY ASTRONAUT REQUEST THRU DSKY V 37 E 76E.
|
||||
# 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
|
||||
|
||||
TC INTPRET
|
||||
VLOAD
|
||||
DELVLVC
|
||||
STORE DELVOV
|
||||
EXIT
|
||||
|
||||
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
|
||||
# Page 710
|
||||
DLOAD # SET D(MPAC)=TIG IN CSEC B28
|
||||
TIG
|
||||
STCALL TDEC1 # SET TDEC1=TIG FOR ORBITAL INTEGRATION
|
||||
OTHPREC
|
||||
COMPMAT VLOAD UNIT
|
||||
RATT
|
||||
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 # PRESENT 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
|
||||
VLOAD
|
||||
RATT1
|
||||
STORE RRECT
|
||||
STODL RCV
|
||||
TAT
|
||||
STOVL TET
|
||||
VATT1
|
||||
CALL
|
||||
MINIRECT
|
||||
# Page 711
|
||||
EXIT
|
||||
TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
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
|
||||
TCF GOTOP00H
|
||||
|
||||
V06N84 NV 0684
|
||||
NV 0633
|
||||
P76SUB1 AXT,2 SET
|
||||
2
|
||||
MOONFLAG # SET MEANS MOON IS SPHERE OF INFLUENCE.
|
||||
BON AXT,2
|
||||
CMOONFLG # SET MEANS PERM CM STATE IN LUNAR SPHERE.
|
||||
QPRET
|
||||
0
|
||||
CLEAR RVQ
|
||||
MOONFLAG
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,411 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: PHASE_TABLE_MAINTENANCE.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: 1294-1302
|
||||
# Mod history: 2009-05-26 OH Transcribed from page images.
|
||||
# 2009-06-05 RSB A few lines at the bottom of page image
|
||||
# 1294 were truncated. I've fixed the page
|
||||
# image and added those missing lines here.
|
||||
# 2011-05-07 JL Flagged SBANK= workaround for future
|
||||
# removal.
|
||||
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1294
|
||||
# SUBROUTINE TO UPDATE THE PROGRAM NUMBER DISPLAY ON THE DSKY.
|
||||
|
||||
COUNT* $$/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* $$/PHASE
|
||||
SETUPDSP INHINT
|
||||
DXCH RUPTREG1 # SAVE CALLER'S RETURN 2CADR
|
||||
CAF PRIO30 # EITHER A TASK OR JOB CAN COME TO
|
||||
TC NOVAC # NEWMODE X
|
||||
EBANK= MODREG
|
||||
2CADR DSPMMJOB
|
||||
|
||||
DXCH RUPTREG1
|
||||
RELINT
|
||||
DXCH Z # RETURN
|
||||
|
||||
DSPMMJOB EQUALS DSPMMJB
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG1
|
||||
BANK
|
||||
|
||||
# Page 1295
|
||||
# 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 STANTS 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 VARIABLE 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 1296
|
||||
# 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 CONTAINING 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 LOCATION. EXAMPLES,
|
||||
# AD TC PHASCHNG # THIS WOULD CAUSE LOCATION AD +3 TO BE
|
||||
# AD+1 OCT 05023 # RESTARTED BY GROUP THREE WITH A 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 DELTA TIME 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 TEH 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 FOLLOW,
|
||||
# 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 1297
|
||||
# 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 1298
|
||||
# 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 TYPE C. 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.
|
||||
|
||||
## [WORKAROUND] RSB 2004
|
||||
SBANK= PINSUPER
|
||||
## [WORKAROUND]
|
||||
|
||||
COUNT* $$/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
|
||||
|
||||
INDEX Q
|
||||
CA 0
|
||||
INCR Q
|
||||
TS TEMPSW
|
||||
|
||||
TCF PHASJUMP
|
||||
|
||||
PHASCHNG INHINT # NORMAL PHASCHNG ENTRY POINT.
|
||||
INDEX Q
|
||||
CA 0
|
||||
INCR Q
|
||||
PHSCHNGA INHINT # FIRST OCTAL PARAMETER IN A.
|
||||
# Page 1299
|
||||
TS TEMPSW
|
||||
CA ONE
|
||||
TS TEMPSW2
|
||||
PHASJUMP 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 USER'S 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
|
||||
# Page 1300
|
||||
TCF CON1 -1
|
||||
|
||||
GETNEWNM EXTEND
|
||||
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* $$/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
|
||||
# Page 1301
|
||||
TCF ONEORTWO
|
||||
|
||||
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
|
||||
# Page 1302
|
||||
CON2 LXCH TEMPBBCN
|
||||
|
||||
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 03
|
||||
SETLOC FFTAG6
|
||||
BANK
|
||||
|
||||
COUNT* $$/PHASE
|
||||
CHECKB MASK BIT12 # SINCE THIS IS OF TYPE 8, THIS BIT WOULD
|
||||
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.
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,906 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: PINBALL_NOUN_TABLES.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 301-319
|
||||
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
|
||||
# from the Luminary131/ file of the same
|
||||
# name, using Luminary099 page images.
|
||||
# 2009-06-07 RSB Corrected two typos.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 301
|
||||
# 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 NUMBER
|
||||
#
|
||||
# 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 LANDING RADAR POSITION (+0000X)
|
||||
# 00111 ARITH DP3 OUT (SL 7 AT END) IN (STRAIGHT)
|
||||
# 01000 WHOLE HOURS IN R1, WHOLE MINUES (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 360-CDU DEGREES (XXX.XX)
|
||||
#
|
||||
# END OF SF ROUTINE CODE NUMBERS
|
||||
|
||||
# SF CONSTANT CODE NUMBER INTERPRETATION
|
||||
#
|
||||
# 00000 WHOLE USE ARITH
|
||||
# 00000 DP TIME SEC (XXX.XX SEC) USE ARITHDP1
|
||||
# 00000 LR POSITION (+0000X) USE LR POSITION
|
||||
# 00001 SPARE
|
||||
# 00010 CDU DEGREES USE CDU DEGREES
|
||||
# 00010 360-CDU DEGREES USE 360-CDU 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
|
||||
# 00101 OPTICAL TRACKER AZIMUTH ANGLE (XXX.XXDEG)
|
||||
# USE ARITHDP1
|
||||
# 00110 WEIGHT2 (XXXXX. LBS) USE ARITH1
|
||||
# Page 302
|
||||
# 00111 POSITION5 (XXX.XX NAUTICAL MILES)
|
||||
# USE ARITHDP3
|
||||
# 01000 POSITION4 (XXXX.X NAUTICAL MILES)
|
||||
# USE ARITHDP3
|
||||
# 01001 VELOCITY2 (XXXXX. FT/SEC) USE ARITHDP4
|
||||
# 01010 VELOCITY3 (XXXX.X FT/SEC) USE ARITHDP3
|
||||
# 01011 ELEVATION DEGREES (89.999 MAX) USE ARITH
|
||||
# 01100 RENDEZVOUS RADAR RANGE (XXX.XX NAUT MI)
|
||||
# USE ARITHDP1
|
||||
# 01101 RENDEZVOUS RADAR RANGE RATE (XXXXX.FT/SEC)
|
||||
# USE ARITHDP1
|
||||
# 01110 LANDING RADAR ALTITUDE (XXXXX.FEET)
|
||||
# USE ARITHDP1
|
||||
# 01111 INITIAL/FINAL ALTITUDE (XXXXX. FEET)
|
||||
# USE ARITHDP1
|
||||
# 10000 ALTITUDE RATE (XXXXX.FT/SEC) USE ARITH
|
||||
# 10001 FORWARD/LATERAL VELOCITY (XXXXX.FEET/SEC)
|
||||
# USE ARITH
|
||||
# 10010 ROTATIONAL HAND CONTROLLER ANGLE RATES
|
||||
# XXXXX.DEG/SEC USE ARITH
|
||||
# 10011 LANDING RADAR VELX (XXXXX.FEET/SEC)
|
||||
# USE ARITHDP1
|
||||
# 10100 LANDING RADAR VELY (XXXXX.FEET/SEC)
|
||||
# USE ARITHDP1
|
||||
# 10101 LANDING RADAR VELZ (XXXXX.FEET/SEC)
|
||||
# USE ARITHDP1
|
||||
# 10110 POSITION7 (XXXX.X NAUT MI) USE ARITHDP4
|
||||
# 10111 TRIM DEGREES2 (XXX.XX DEG) USE ARITH
|
||||
# 11000 COMPUTED ALTITUDE (XXXXX. FEET)
|
||||
# USE ARITHDP1
|
||||
# 11001 DP DEGREES (XXXX.X DEG) USE ARITHDP3
|
||||
# 11010 POSITION9 (XXXX.X FT) USE ARITHDP3
|
||||
# 11011 VELOCITY4 (XXXX.X FT/SEC) USE ARITHDP2
|
||||
# 11100 RADIANS (XXX.XXX RADIANS) USE ARITHDP4
|
||||
#
|
||||
# END OF SF CONSTANT CODE NUMBERS
|
||||
|
||||
# FOR GREATER THAN SINGLE PRECISION SCALES, PUT ADDRESS OF 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.
|
||||
|
||||
# Page 303
|
||||
|
||||
# ALARM IF AN ATTEMPT IS MADE TO LOAD :SPLIT MINUTES/SECONDS: (MMBSS).
|
||||
# THIS IS USED FOR DISPLAY ONLY.
|
||||
|
||||
# Page 304
|
||||
# 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 6
|
||||
SETLOC PINBALL3
|
||||
BANK
|
||||
COUNT* $$/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 # (DEC 40)
|
||||
|
||||
# GTSFOUT LOADS SFTEMP1, SFTEMP2 WTIH THE DP SFOUTAB ENTRIES.
|
||||
|
||||
GTSFOUT DXCH SFTEMP1 # 2X(SFCONUM) ARRIVES IN SFTEMP1.
|
||||
# Page 305
|
||||
EXTEND
|
||||
INDEX A
|
||||
DCA SFOUTAB
|
||||
SFCOM DXCH SFTEMP1
|
||||
DXCH Z
|
||||
|
||||
# GTSFIN LOADS SFTEMP1, SFTEMP2 WITH THE DP SFINTAB INTRIES.
|
||||
|
||||
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)
|
||||
ECADR DSPTEM1 # 04 ANGULAR ERROR/DIFFERENCE
|
||||
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)
|
||||
ECADR DSPTEMX # 14 CHECKLIST
|
||||
# (USED BY EXTENDED VERBS ONLY)
|
||||
OCT 77777 # 15 INCREMENT MACHINE ADDRESS
|
||||
ECADR DSPTEMX # 16 TIME OF EVENT (HRS,MIN,SEC)
|
||||
OCT 00000 # 17 SPARE
|
||||
ECADR FDAIX # 18 AUTO MANEUVER BALL ANGLES
|
||||
OCT 00000 # 19 SPARE
|
||||
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 WTIH PLEASE PERFORM ONLY)
|
||||
ECADR DSPTEM1 # 26 PRIO/DELAY, ADRES, BBCON
|
||||
ECADR SMODE # 27 SELF TEST ON/OFF SWITCH
|
||||
# Page 306
|
||||
OCT 00000 # 28 SPARE
|
||||
OCT 00000 # 29 SPARE
|
||||
OCT 0 # 30 SPARE
|
||||
OCT 0 # 31 SPARE
|
||||
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 BEING INTEGRATED
|
||||
OCT 00000 # 39 SPARE
|
||||
|
||||
# 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
|
||||
# TTI OF NEXT BURN
|
||||
# MGA
|
||||
OCT 00022 # 46 AUTOPILOT CONFIGURATION
|
||||
OCT 22025 # 47 LEM WEIGHT
|
||||
# CSM WEIGHT
|
||||
OCT 22030 # 48 GIMBAL PITCH TRIM
|
||||
# GIMBAL ROLL TRIM
|
||||
OCT 24033 # 49 DELTA R
|
||||
# DELTA V
|
||||
# RADAR DATA SOURCE CODE
|
||||
OCT 0 # 50 SPARE
|
||||
OCT 22041 # 51 S-BAND ANTENNA PITCH
|
||||
# YAW
|
||||
OCT 00044 # 52 CENTRAL ANGLE OF ACTIVE VEHICLE
|
||||
OCT 00000 # 53 SPARE
|
||||
OCT 24052 # 54 RANGE
|
||||
# RANGE RATE
|
||||
# THETA
|
||||
OCT 24055 # 55 NO. OF APSIDAL CROSSINGS
|
||||
# Page 307
|
||||
# ELEVATION ANGLE
|
||||
# CENTRAL ANGLE
|
||||
OCT 02060 # 56 RR LOS AZIMUTH
|
||||
# ELEVATION
|
||||
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 HORIZONTAL VELOCITY
|
||||
# ALTITUDE RATE
|
||||
# COMPUTED ALTITUDE
|
||||
OCT 64077 # 61 TIME TO GO IN BRAKING PHASE
|
||||
# TIME TO IGNITION
|
||||
# CROSS RANGE DISTANCE
|
||||
OCT 64102 # 62 ABSOLUTE VALUE OF VELOCITY
|
||||
# TIME TO IGNITION
|
||||
# DELTA V (ACCUMULATED)
|
||||
OCT 24105 # 63 ABSOLUTE VALUE OF VELOCITY
|
||||
# ALTITUDE RATE
|
||||
# COMPUTED ALTITUDE
|
||||
OCT 64110 # 64 TIME LEFT FOR REDESIGNATION -- LPD ANGLE
|
||||
# ALTITUDE RATE
|
||||
# COMPUTED ALTITUDE
|
||||
OCT 24113 # 65 SAMPLED AGC TIME (HRS,MIN,SEC)
|
||||
# (FETCHED IN INTERRUPT)
|
||||
OCT 62116 # 66 LR RANGE
|
||||
# POSITION
|
||||
OCT 04121 # 67 LRVX
|
||||
# LRVY
|
||||
# LRVZ
|
||||
OCT 64124 # 68 SLANT RANGE TO LANDING SIGHT
|
||||
# TIME TO GO IN BRAKING PHASE
|
||||
# LR ALTITUDE -- COMPUTED ALTITUDE
|
||||
OCT 00000 # 69 SPARE
|
||||
OCT 04132 # 70 AOT DETENT CODE/STAR CODE
|
||||
OCT 04135 # 71 AOT DETENT CODE/STAR CODE
|
||||
OCT 02140 # 72 RR 360 -- TRUNNION ANGLE
|
||||
# SHAFT ANGLE
|
||||
OCT 02143 # 73 NEW RR 360 -- TRUNNION ANGLE
|
||||
# SHAFT ANGLE
|
||||
OCT 64146 # 74 TIME TO IGNITION
|
||||
# YAWAFTER VEHICLE RISE
|
||||
# PITCH AFTER VEHICLE RISE
|
||||
OCT 64151 # 75 DELTA ALTITUDE CDH
|
||||
# DELTA TIME (CDH-CSI OR TPI-CDH)
|
||||
# DELTA TIME (TPI-CDH OR TPI-NOMTPI)
|
||||
OCT 24154 # 76 DESIRED HORIZONTAL VELOCITY
|
||||
# DESIRED RADIAL VELOCITY
|
||||
# CROSS-RANGE DISTANCE
|
||||
# Page 308
|
||||
OCT 62157 # 77 TIME TO ENGINE CUTOFF
|
||||
# VELOCITY NORMAL TO CSM PLANE
|
||||
OCT 02162 # 78 RR RANGE
|
||||
# RANGE RATE
|
||||
OCT 24165 # 79 CURSOR ANGLE
|
||||
# SPIRAL ANGLE
|
||||
# POSITION CODE
|
||||
OCT 02170 # 80 DATA INDICATOR
|
||||
# OMEGA
|
||||
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 VG (LV)
|
||||
OCT 02215 # 87 BACKUP OPTICS LOS AZIMUTH
|
||||
# ELEVATION
|
||||
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 04231 # 91 ALTITUDE
|
||||
# VELOCITY
|
||||
# FLIGHT PATH ANGLE
|
||||
OCT 00000 # 92 SPARE
|
||||
OCT 04237 # 93 DELTA GYRO ANGLES
|
||||
OCT 00000 # 94 SPARE
|
||||
OCT 0 # 95 SPARE
|
||||
OCT 0 # 96 SPARE
|
||||
OCT 04253 # 97 SYSTEM TEST INPUTS
|
||||
OCT 04256 # 98 SYSTEM TEST RESULTS
|
||||
OCT 24261 # 99 RMS IN POSITION
|
||||
# RMS IN VELOCITY
|
||||
# RMS IN BIAS
|
||||
|
||||
# END OF NNADTAB FOR MIXED NOUNS
|
||||
|
||||
# NN NORMAL NOUNS
|
||||
NNTYPTAB OCT 00000 # 00 NOT IN USE
|
||||
OCT 04040 # 01 3COMP FRACTIONAL
|
||||
OCT 04140 # 02 3COMP WHOLE
|
||||
OCT 04102 # 03 3COMP CDU DEGREES
|
||||
OCT 00504 # 04 1COMP DPDEG(360)
|
||||
OCT 00504 # 05 1COMP DPDEG(360)
|
||||
OCT 04000 # 06 3COMP OCTAL ONLY
|
||||
OCT 04000 # 07 3COMP OCTAL ONLY
|
||||
OCT 04000 # 08 3COMP OCTAL ONLY
|
||||
# Page 309
|
||||
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 04140 # 14 3COMP WHOLE
|
||||
OCT 00000 # 15 1COMP OCTAL ONLY
|
||||
OCT 24400 # 16 3COMP HMS (DEC ONLY)
|
||||
OCT 0 # 17 SPARE
|
||||
OCT 04102 # 18 3COMP CDU DEG
|
||||
OCT 00000 # 19 SPARE
|
||||
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 WHILE
|
||||
OCT 00000 # 28 SPARE
|
||||
OCT 00000 # 29 SPARE
|
||||
OCT 0 # 30 SPARE
|
||||
OCT 0 # 31 SPARE
|
||||
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 00000 # 39 SPARE
|
||||
|
||||
# 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
|
||||
# (DEC ONLY)
|
||||
OCT 00410 # 44 3COMP POS4, POS4, MIN/SEC
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 10000 # 45 3COMP WHOLE, MIN/SEC, DPDEG(360)
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 00000 # 46 1COMP OCTAL ONLY
|
||||
OCT 00306 # 47 2COMP WEIGHT2 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 01367 # 48 2COMP TRIM DEG2 FOR EACH
|
||||
# Page 310
|
||||
# (DEC ONLY)
|
||||
OCT 00510 # 49 3COMP POS4, VEL3, WHOLE
|
||||
# (DEC ONLY)
|
||||
OCT 0 # 50 SPARE
|
||||
OCT 00204 # 51 2COMP DPDEG(360), DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 00004 # 52 1COMP DPDEG(360)
|
||||
OCT 00000 # 53 SPARE
|
||||
OCT 10507 # 54 3COMP POS5, VEL3, DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 10200 # 55 3COMP WHOLE, DPDEG(360), DPDEG(360)
|
||||
# (DEC ONLY)
|
||||
OCT 00204 # 56 2COMP DPDEG(360), DPDEG(360)
|
||||
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 60512 # 60 3COMP VEL3, VEL3, COMP ALT
|
||||
# (DEC ONLY)
|
||||
OCT 54000 # 61 3COMP MIN/SEC, MIN/SEC, POS7
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 24012 # 62 3COMP VEL3, MIN/SEC, VEL3
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 60512 # 63 3COMP VEL3, VEL3, COMP ALT
|
||||
# (DEC ONLY)
|
||||
OCT 60500 # 64 3COMP 2INT, VEL3, COMP ALT
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 00000 # 65 3COMP HMS (DEC ONLY)
|
||||
OCT 00016 # 66 2COMP LANDING RADAR ALT, POSITION
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 53223 # 67 3COMP LANDING RADAR VELX, Y, Z
|
||||
OCT 60026 # 68 3COMP POS7, MIN/SEC, COMP ALT
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 00000 # 69 SPARE
|
||||
OCT 0 # 70 3COMP OCTAL ONLY FOR EACH
|
||||
OCT 0 # 71 3COMP OCTAL ONLY FOR EACH
|
||||
OCT 00102 # 72 2COMP 360-CDU DEG, CDU DEG
|
||||
OCT 00102 # 73 2COMP 360-CDU DEG, CDU DEG
|
||||
OCT 10200 # 74 3COMP MIN/SEC, DPDEG(360), DPDEG(360)
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 00010 # 75 3COMP POS4, MIN/SEC, MIN/SEC
|
||||
# (NO LOAD, DEC ONLY)
|
||||
|
||||
OCT 20512 # 76 3COMP VEL3, VEL3, POS4
|
||||
# (DEC ONLY)
|
||||
OCT 00500 # 77 2COMP MIN/SEC, VEL3
|
||||
# (NO LOAD, DEC ONLY)
|
||||
OCT 00654 # 78 2 COMP RR RANGE, RR RANGE RATE
|
||||
OCT 00102 # 79 3COMP CDU DEG, CDU DEG, WHOLE
|
||||
# Page 311
|
||||
# (DEC ONLY)
|
||||
OCT 00200 # 80 2COMP WHOLE, DPDEG(360)
|
||||
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 24512 # 86 3COMP VEL3 FOR EACH
|
||||
# (DEC ONLY)
|
||||
OCT 00102 # 87 2COMP CDU DEG FOR EACH
|
||||
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 10450 # 91 3COMP POS4, VEL2, DPDEG(360)
|
||||
OCT 00000 # 92 SPARE
|
||||
OCT 06143 # 93 3COMP DPDEG(90) FOR EACH
|
||||
OCT 00000 # 94 SPARE
|
||||
OCT 0 # 95 SPARE
|
||||
OCT 0 # 96 SPARE
|
||||
OCT 00000 # 97 3COMP WHOLE FOR EACH
|
||||
OCT 00000 # 98 3COMP WHOLE, FRAC, WHOLE
|
||||
OCT 71572 # 99 3COMP POS9, VEL4, RADIANS
|
||||
# (DEC ONLY)
|
||||
|
||||
# END OF NNTYPTAB FOR MIXED NOUNS
|
||||
|
||||
SFINTAB OCT 00006 # WHOLE, DP TIME (SEC)
|
||||
OCT 03240
|
||||
OCT 00000 # SPARE
|
||||
OCT 00000
|
||||
OCT 00000 # CDU DEGREES, 360-CDU DEGREES
|
||||
OCT 00000 # (SFCONS IN DEGINSF)
|
||||
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
|
||||
# Page 312
|
||||
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 00047 # RENDEZVOUS RADAR RANGE
|
||||
OCT 21135
|
||||
OCT 77766 # RENDESVOUS RADAR RANGE RATE
|
||||
OCT 50711
|
||||
2DEC* .9267840599 E5 B-28* # LANDING RADAR ALTITUDE
|
||||
|
||||
OCT 00002 # INITIAL/FINAL ALTITUDE
|
||||
OCT 23224
|
||||
OCT 00014 # ALTITUDE RATE
|
||||
OCT 06500
|
||||
OCT 00012 # FORWARD/LATERAL VELOCITY
|
||||
OCT 36455
|
||||
OCT 04256 # ROT HAND CONT ANGLE RATE
|
||||
OCT 07071
|
||||
2DEC* -1.552795030 E5 B-28* # LANDING RADAR VELX
|
||||
|
||||
2DEC* .8250825087 E5 B-28* # LANDING RADAR VELY
|
||||
|
||||
2DEC* 1.153668673 E5 B-28* # LANDING RADAR VELZ
|
||||
|
||||
OCT 04324 # POSITION7
|
||||
OCT 27600
|
||||
OCT 00036 # TRIM DEGREES2
|
||||
OCT 20440
|
||||
OCT 00035 # COMPUTED ALTITUDE
|
||||
OCT 30400
|
||||
OCT 23420 # DP DEGREES
|
||||
OCT 00000
|
||||
2DEC 30480 B-19 # POSITION 9
|
||||
|
||||
2DEC 30.48 B-7 # VELOCITY4
|
||||
|
||||
2DEC 100 B-8 # RADIANS
|
||||
|
||||
# END OF SFINTAB
|
||||
|
||||
SFOUTAB OCT 05174 # WHOLE, DP TIME (SEC)
|
||||
OCT 13261
|
||||
OCT 00000 # SPARE
|
||||
OCT 00000
|
||||
OCT 00000 # CDU DEGREES, 360-CDU DEGREES
|
||||
# Page 313
|
||||
OCT 00000 # (SFCONS IN DEGOUTSF, 360 CDUO)
|
||||
OCT 00714 # DP DEGREES (90) (POINT BETWN BITS 7-8)
|
||||
OCT 31463
|
||||
OCT 13412 # DP DEGREES (360)
|
||||
OCT 07534
|
||||
OCT 05605 # DEGREES (180)
|
||||
OCT 03656
|
||||
OCT 00001 # WEIGHT2
|
||||
OCT 16170
|
||||
OCT 00441 # POSITION5
|
||||
OCT 34306
|
||||
OCT 07176 # POSITION4 (POINT BETWN BITS 7-8)
|
||||
OCT 21603
|
||||
OCT 15340 # VELOCITY2
|
||||
OCT 15340
|
||||
OCT 01031 # VELOCITY3 (POINT BETWN BITS 7-8)
|
||||
OCT 21032
|
||||
OCT 34631 # ELEVATION DETREES
|
||||
OCT 23146
|
||||
OCT 00636 # RENDEZVOUS RADAR RANGE
|
||||
OCT 14552
|
||||
OCT 74552 # RENDEZVOUS RADAR RANGE RATE
|
||||
OCT 70307
|
||||
2DEC 1.079 E-5 B14 # LANDING RADAR ALTITUDE
|
||||
|
||||
OCT 14226 # INITIAL/FINAL ALTITUDE
|
||||
OCT 31757
|
||||
OCT 02476 # ALTITUDE RATE
|
||||
OCT 05531
|
||||
OCT 02727 # FORWARD/LATERAL VELOCTY
|
||||
OCT 16415
|
||||
OCT 00007 # ROT HAND CONT ANGLE RATE
|
||||
OCT 13734
|
||||
2DEC -.6440 E-5 B14 # LANDING RADAR VELX
|
||||
|
||||
2DEC 1.212 E-5 B14 # LANDING RADAR VELY
|
||||
|
||||
2DEC .8668 E-5 B14 # LANDING RADAR VELZ
|
||||
|
||||
OCT 34772 # POSITION7
|
||||
OCT 07016
|
||||
OCT 01030 # TRIM DEGREES2
|
||||
OCT 33675
|
||||
OCT 01046 # COMPUTED ALTITUDE
|
||||
OCT 15700
|
||||
OCT 00321 # DP DEGREES
|
||||
OCT 26706
|
||||
2DEC 17.2010499 B-7 # POSITION 9
|
||||
|
||||
2DEC .032808399 # VELOCITY4
|
||||
# Page 314
|
||||
2DEC .32 # RADIANS
|
||||
|
||||
# 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 TRKMKCNT # 45 WHOLE ARTH
|
||||
ECADR TTOGO # 45 MIN/SEC M/S
|
||||
ECADR +MGA # 45 DPDEG(360) DP4
|
||||
ECADR DAPDATR1 # 46 OCTAL ONLY OCT
|
||||
OCT 0 # 46 SPARE COMPONENT
|
||||
OCT 0 # 46 SPARE COMPONENT
|
||||
ECADR LEMMASS # 47 WEIGHT2 ARTH1
|
||||
ECADR CSMMASS # 47 WEIGHT2 ARTH1
|
||||
OCT 0 # 47 SPARE COMPONENT
|
||||
ECADR PITTIME # 48 TRIM DEG2 ARTH
|
||||
ECADR ROLLTIME # 48 TRIM DEG2 ARTH
|
||||
OCT 0 # 48 SPARE COMPONENT
|
||||
ECADR R22DISP # 49 POS4 DP3
|
||||
ECADR R22DISP +2 # 49 VEL3 DP3
|
||||
ECADR WHCHREAD # 49 WHOLE ARTH
|
||||
OCT 0 # 50 SPARE
|
||||
OCT 0 # 50 SPARE
|
||||
OCT 0 # 50 SPARE
|
||||
ECADR ALPHASB # 51 DPDEG(360) DP4
|
||||
ECADR BETASB # 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
|
||||
OCT 00000 # 53 SPARE
|
||||
OCT 00000 # 53
|
||||
OCT 00000 # 53
|
||||
ECADR RANGE # 54 POS5 DP1
|
||||
# Page 315
|
||||
ECADR RRATE # 54 VEL3 DP3
|
||||
ECADR RTHETA # 54 DPDEG(360) DP4
|
||||
ECADR NN # 55 WHOLE ARTH
|
||||
ECADR ELEV # 55 DPDEG(360) DP4
|
||||
ECADR CENTANG # 55 DPDEG(360) DP4
|
||||
ECADR RR-AZ # 56 DPDEG(360) DP4
|
||||
ECADR RR-ELEV # 56 DPDEG(360) 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 VHORIZ # 60 VEL3 DP3
|
||||
ECADR HDOTDISP # 60 VEL3 DP3
|
||||
ECADR HCALC # 60 COMP ALT DP1
|
||||
ECADR TTFDISP # 61 MIN/SEC M/S
|
||||
ECADR TTOGO # 61 MIN/SEC M/S
|
||||
ECADR OUTOFPLN # 61 POS7 DP4
|
||||
ECADR ABVEL # 62 VEL3 DP3
|
||||
ECADR TTOGO # 62 MIN/SEC M/S
|
||||
ECADR DVTOTAL # 62 VEL3 DP3
|
||||
ECADR ABVEL # 63 VEL3 DP3
|
||||
ECADR HDOTDISP # 63 VEL3 DP3
|
||||
ECADR HCALC1 # 63 COMP ALT DP1
|
||||
ECADR FUNNYDSP # 64 2INT 2INT
|
||||
ECADR HDOTDISP # 64 VEL3 DP3
|
||||
ECADR HCALC # 64 COMP ALT DP1
|
||||
ECADR SAMPTIME # 65 HMS (MIXED ONLY TO KEEP CODE 65) HMS
|
||||
ECADR SAMPTIME # 65 HMS HMS
|
||||
ECADR SAMPTIME # 65 HMS HMS
|
||||
ECADR RSTACK +6 # 66 LANDING RADAR ALT DP1
|
||||
OCT 0 # 66 LR POSITION LRPOS
|
||||
OCT 0 # 66 SPARE COMPONENT
|
||||
ECADR RSTACK # 67 LANDING RADAR VELX DP1
|
||||
ECADR RSTACK +2 # 67 LANDING RADAR VELY DP1
|
||||
ECADR RSTACK +4 # 67 LANDING RADAR VELZ DP1
|
||||
ECADR RANGEDSP # 68 POS7 DP4
|
||||
ECADR TTFDISP # 68 MIN/SEC M/S
|
||||
ECADR DELTAH # 68 COMP ALT DP1
|
||||
OCT 00000 # 69 SPARE
|
||||
OCT 00000 # 69
|
||||
OCT 00000 # 69
|
||||
ECADR AOTCODE # 70 OCTAL ONLY OCT
|
||||
ECADR AOTCODE +1 # 70 OCTAL ONLY OCT
|
||||
ECADR AOTCODE +2 # 70 OCTAL ONLY OCT
|
||||
# Page 316
|
||||
ECADR AOTCODE # 71 OCTAL ONLY OCT
|
||||
ECADR AOTCODE +1 # 71 OCTAL ONLY OCT
|
||||
ECADR AOTCODE +2 # 71 OCTAL ONLY OCT
|
||||
ECADR CDUT # 72 360-CDU DEG 360-CDU
|
||||
ECADR CDUS # 72 CDU DEG CDU
|
||||
OCT 0 # 72 SPARE COMPONENT
|
||||
ECADR TANG # 73 360-CDU DEG 360-CDU
|
||||
ECADR TANG +1 # 73 CDU DEG CDU
|
||||
OCT 0 # 73 SPARE COMPONENT
|
||||
ECADR TTOGO # 74 MIN/SEC M/S
|
||||
ECADR YAW # 74 DPDEG(360) DP4
|
||||
ECADR PITCH # 74 DPDEG(360) DP4
|
||||
ECADR DIFFALT # 75 POS4 DP3
|
||||
ECADR T1TOT2 # 75 MIN/SEC
|
||||
ECADR T2TOT3 # 75 MIN/SEC M/S
|
||||
ECADR ZDOTD # 76 VEL3 DP3
|
||||
ECADR RDOTD # 76 VEL3 DP3
|
||||
ECADR XRANGE # 76 POS4 DP3
|
||||
ECADR TTOGO # 77 MIN/SEC M/S
|
||||
ECADR YDOT # 77 VEL3 DP3
|
||||
OCT 0 # 77 SPARE COMPONENT
|
||||
ECADR RSTACK # 78 RR RANGE DP1
|
||||
ECADR RSTACK +2 # 78 RR RANGE RATE DP1
|
||||
OCT 00000 # 78 SPARE COMPONENT
|
||||
ECADR CURSOR # 79 CDU DEG CDU
|
||||
ECADR SPIRAL # 79 CDU DEG CDU
|
||||
ECADR POSCODE # 79 WHOLE ARTH
|
||||
ECADR DATAGOOD # 80 WHOLE ARTH
|
||||
ECADR OMEGAD # 80 DPDEG(360) DP4
|
||||
OCT 0 # 80 SPARE COMPONENT
|
||||
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 VEL3 DP3
|
||||
ECADR DELVLVC +2 # 86 VEL3 DP3
|
||||
ECADR DELVLVC +4 # 86 VEL3 DP3
|
||||
ECADR AZ # 87 CDU DEG CDU
|
||||
ECADR EL # 87 CDU DEG CDU
|
||||
# Page 317
|
||||
OCT 0 # 87 SPARE COMPONENT
|
||||
ECADR STARAD # 88 FRAC FRAC
|
||||
ECADR STARAD +2 # 88 FRAC FRAC
|
||||
ECADR STARAD +4 # 88 FRAC FRAC
|
||||
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 P21ALT # 91 POS4 DP3
|
||||
ECADR P21VEL # 91 VEL2 DP4
|
||||
ECADR P21GAM # 91 DPDEG(360) DP4
|
||||
OCT 00000 # 92 SPARE
|
||||
OCT 00000 # 92
|
||||
OCT 00000 # 92
|
||||
ECADR OGC # 93 DPDEG(90) DP3
|
||||
ECADR OGC +2 # 93 DPDEG(90) DP3
|
||||
ECADR OGC +4 # 93 DPDEG(90) DP3
|
||||
OCT 00000 # 94 SPARE
|
||||
OCT 00000 # 94
|
||||
OCT 00000 # 94
|
||||
OCT 0 # 95 SPARE
|
||||
OCT 0 # 95 SPARE
|
||||
OCT 0 # 95 SPARE
|
||||
OCT 0 # 96 SPARE
|
||||
OCT 0 # 96 SPARE
|
||||
OCT 0 # 96 SPARE
|
||||
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 WWBIAS # 99 RADIANS DP4
|
||||
|
||||
# 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 24443 # 45 ARTH, M/S, DP4
|
||||
OCT 00000 # 46 OCT
|
||||
OCT 00553 # 47 ARITH1, ARITH1
|
||||
# Page 318
|
||||
OCT 00143 # 48 ARTH, ARTH
|
||||
OCT 06347 # 49 DP3, DP3, ARTH
|
||||
OCT 0 # 50 SPARE
|
||||
OCT 00512 # 51 DP4, DP4
|
||||
OCT 00012 # 52 DP4
|
||||
OCT 00000 # 53 SPARE
|
||||
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 10347 # 60 DP3, DP3, DP1
|
||||
OCT 24451 # 61 M/S, M/S, DP4
|
||||
OCT 16447 # 62 DP3, M/S, DP3
|
||||
OCT 10347 # 63 DP3, DP3, DP1
|
||||
OCT 10354 # 64 2INT, DP3, DP1
|
||||
OCT 20410 # 65 HMS, HMS, HMS
|
||||
OCT 00304 # 66 DP1, LRPOS
|
||||
OCT 10204 # 67 DP1, DP1, DP1
|
||||
OCT 10452 # 68 DP4, M/S, DP1
|
||||
OCT 00000 # 69 SPARE
|
||||
OCT 0 # 70 OCT, OCT, OCT
|
||||
OCT 0 # 71 OCT, OCT, OCT
|
||||
OCT 00115 # 72 360-CDU, CDU
|
||||
OCT 00115 # 73 360-CDU, CDU
|
||||
OCT 24511 # 74 M/S, DP4, DP4
|
||||
OCT 22447 # 75 DP3, M/S, M/S
|
||||
OCT 16347 # 76 DP3, DP3, DP3
|
||||
OCT 00351 # 77 M/S, DP3
|
||||
OCT 00204 # 78 DP1, DP1
|
||||
OCT 06102 # 79 CDU, CDU, ARTH
|
||||
OCT 00503 # 80 ARTH, 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 16347 # 86 DP3, DP3, DP3
|
||||
OCT 00102 # 87 CDU, CDU
|
||||
OCT 02041 # 88 FRAC FOR EACH
|
||||
OCT 10347 # 89 DP3, DP3, DP1
|
||||
OCT 24344 # 90 DP1, DP3, DP4
|
||||
OCT 24507 # 91 DP3, DP4, DP4
|
||||
OCT 00000 # 92 SPARE
|
||||
OCT 16347 # 93 DP3, DP3, DP3
|
||||
OCT 00000 # 94 SPARE
|
||||
OCT 0 # 95 SPARE
|
||||
OCT 0 # 96 SPARE
|
||||
OCT 06143 # 97 ARTH, ARTH, ARTH
|
||||
# Page 319
|
||||
OCT 06043 # 98 ARTH, FRAC, ARTH
|
||||
OCT 24247 # 99 DP3, DP2, DP4
|
||||
|
||||
# END OF RUTMXTAB
|
||||
|
||||
SBANK= LOWSUPER
|
||||
|
||||
@@ -0,0 +1,391 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: PLANETARY_INERTIAL_ORIENTATION.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: Jim Lawton <jim.lawton@gmail.com>
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1140-1148
|
||||
# Mod history: 2009-05-28 JVL Updated 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 1140
|
||||
# ***** RP-TO-R SUBROUTINE *****
|
||||
# SUBROUTINE TO CONVERT RP (VECTOR IN PLANETARY COORDINATE SYSTEM, EITHER
|
||||
# EARTH-FIXED OR MOON-FIXED) TO R (SAME VECTOR IN THE BASIC REF. SYSTEM)
|
||||
#
|
||||
# R = MT(T) * (RP + LP X RP) 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 PLANTIN1
|
||||
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 1141
|
||||
GOTO
|
||||
RPTORB
|
||||
SETLOC PLANTIN
|
||||
BANK
|
||||
COUNT* $$/LUROT
|
||||
|
||||
# Page 1142
|
||||
# ***** 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 1143
|
||||
# ***** 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 1144
|
||||
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
|
||||
GOTO
|
||||
MOONMXA
|
||||
|
||||
BANK 25
|
||||
SETLOC PLANTIN3
|
||||
BANK
|
||||
COUNT* $$/LUROT
|
||||
|
||||
MOONMXA 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
|
||||
# Page 1145
|
||||
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
|
||||
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 1146
|
||||
# ***** 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)
|
||||
|
||||
BANK 26
|
||||
SETLOC PLANTIN1
|
||||
BANK
|
||||
COUNT* $$/LUROT
|
||||
|
||||
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 1147
|
||||
# ***** 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
|
||||
|
||||
BANK 06
|
||||
SETLOC EARTHLOC
|
||||
BANK
|
||||
COUNT* $$/LUROT
|
||||
|
||||
EARTHL DLOAD DCOMP
|
||||
AXO
|
||||
STODL 504LPL
|
||||
-AYO
|
||||
STODL 504LPL +2
|
||||
LO6ZEROS
|
||||
STOVL 504LPL +4
|
||||
504LPL
|
||||
RVQ
|
||||
|
||||
# Page 1148
|
||||
# CONSTANTS AND ERASABLE ASSIGNMENTS
|
||||
|
||||
1B1 = DP1/2 # 1 SCALED 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+T0 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)
|
||||
|
||||
@@ -0,0 +1,447 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: POWERED_FLIGHT_SUBROUTINES.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1259-1267
|
||||
# Mod history: 2009-05-26 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2011-01-06 JL Fixed pseudo-label indentation.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1259
|
||||
BANK 14 # SAME FBANK AS THE FINDCDUD SUB-PROGRAM
|
||||
SETLOC POWFLITE
|
||||
BANK
|
||||
|
||||
EBANK= DEXDEX
|
||||
COUNT* $$/POWFL
|
||||
|
||||
# CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*TR*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 1260
|
||||
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 1261
|
||||
# *******************************************************************************************************
|
||||
# QUICTRIG, INTENDED FOR QUIDANCE 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 1262
|
||||
#****************************************************************************
|
||||
# THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
|
||||
# INTERPRETIVE. LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
|
||||
#
|
||||
# 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 TRANSFORMED
|
||||
# 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 TRANSFORMATION;
|
||||
# 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
|
||||
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
|
||||
# Page 1263
|
||||
# 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
|
||||
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
|
||||
# Page 1264
|
||||
LOOP1 DXCH MPAC
|
||||
CA SINSLOC
|
||||
AD DEX1
|
||||
TS ADDRWD
|
||||
|
||||
TC DMPSUB # MULTIPLY AT 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
|
||||
|
||||
TSTPOINT CCS DEXDEX # ONLY THE BRANCHING FUNCTION IS USED
|
||||
TCF R*TL**P
|
||||
TC RTNSAVER
|
||||
TCF R*TL**P
|
||||
TC RTNSAVER
|
||||
|
||||
SINSLOC ADRES SINCDU # FOR USE IN SETTING ADDRWD
|
||||
|
||||
INDEXI DEC 4 # ********** DON'T ***********
|
||||
DEC 2 # ********** TOUCH ***********
|
||||
DEC 0 # ********** THESE ***********
|
||||
# Page 1265
|
||||
DEC 4 # ********** CONSTANTS ***********
|
||||
|
||||
# ******************************************************************************
|
||||
|
||||
BANK 10
|
||||
SETLOC FLESHLOC
|
||||
BANK
|
||||
COUNT* $$/POWFL
|
||||
|
||||
# ROUTINE FLESHPOT COMPUTES THE BODY-STABLE MEMBER TRANSFORMATION MATRIX (COMMONLY CALLED XNB) AND STORES
|
||||
# IT IN THE LOCATIONS SPECIFIED BY THE ECADR ENTERING IN A.
|
||||
|
||||
CALCSMSC EXIT
|
||||
TC BANKCALL
|
||||
CADR FLESHPOT -1
|
||||
TC INTPRET
|
||||
RVQ
|
||||
|
||||
XNBECADR ECADR XNB
|
||||
|
||||
-1 CAF XNBECADR
|
||||
|
||||
FLESHPOT TS TEM2
|
||||
XCH EBANK
|
||||
XCH TEM2
|
||||
MASK LOW8
|
||||
AD OCT1400
|
||||
TS TEM1
|
||||
|
||||
EXTEND
|
||||
DCA COSCDUY
|
||||
DXCH MPAC
|
||||
TC DMP
|
||||
ADRES COSCDUZ
|
||||
DXCH MPAC
|
||||
DDOUBL
|
||||
INDEX TEM1
|
||||
DXCH 0 # = COSY COSZ
|
||||
|
||||
EXTEND
|
||||
DCA SINCDUZ
|
||||
INDEX TEM1
|
||||
DXCH 2 # = SINZ
|
||||
|
||||
EXTEND
|
||||
DCS SINCDUY
|
||||
DXCH MPAC
|
||||
TC DMPSUB # ADDRWD SET TO COSCDUZ
|
||||
# Page 1266
|
||||
DXCH MPAC
|
||||
DDOUBL
|
||||
INDEX TEM1
|
||||
DXCH 4 # = - SINY COSZ
|
||||
|
||||
EXTEND
|
||||
DCS SINCDUX
|
||||
DXCH MPAC
|
||||
TC DMPSUB # ADDRWD SET TO COSCDUZ STILL
|
||||
DXCH MPAC
|
||||
DDOUBL
|
||||
DXCH MPAC +3
|
||||
|
||||
EXTEND
|
||||
DCS SINCDUX
|
||||
DXCH MPAC
|
||||
TC DMP
|
||||
ADRES SINCDUZ
|
||||
EXTEND
|
||||
DCS MPAC
|
||||
DXCH MPAC +5
|
||||
TC DMP
|
||||
ADRES SINCDUY
|
||||
DXCH MPAC
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
DXCH MPAC +5
|
||||
|
||||
DXCH MPAC
|
||||
TC DMP
|
||||
ADRES COSCDUY
|
||||
DXCH MPAC
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
DXCH BUF
|
||||
|
||||
EXTEND
|
||||
DCA COSCDUY
|
||||
DXCH MPAC
|
||||
TC DMP
|
||||
ADRES COSCDUX
|
||||
DXCH MPAC
|
||||
DDOUBL
|
||||
DAS MPAC +5
|
||||
|
||||
EXTEND
|
||||
DCA SINCDUY
|
||||
DXCH MPAC
|
||||
TC DMPSUB # ADDRWD SET TO COSCDUX
|
||||
DXCH MPAC
|
||||
|
||||
# Page 1267
|
||||
DDOUBL
|
||||
DAS BUF
|
||||
|
||||
DXCH BUF
|
||||
DXCH MPAC
|
||||
|
||||
EXTEND
|
||||
DCA MPAC
|
||||
INDEX TEM1
|
||||
DXCH 14 # = - SINY COSX + SINX SINZ COSY
|
||||
|
||||
EXTEND
|
||||
DCA MPAC +3
|
||||
INDEX TEM1
|
||||
DXCH 16 # = - SINX COSZ
|
||||
|
||||
EXTEND
|
||||
DCA MPAC +5
|
||||
INDEX TEM1
|
||||
DXCH 20 # = COSX COSY - SINX SINY SINZ
|
||||
|
||||
CA TEM1
|
||||
TS ADDRWD
|
||||
EXTEND
|
||||
DCA Z
|
||||
AD FOUR
|
||||
DXCH LOC
|
||||
CAF BIT8
|
||||
TS EDOP
|
||||
TCF VXV
|
||||
DXCH MPAC
|
||||
DDOUBL
|
||||
INDEX TEM1
|
||||
DXCH 6
|
||||
|
||||
DXCH MPAC +3
|
||||
DDOUBL
|
||||
INDEX TEM1
|
||||
DXCH 10
|
||||
|
||||
DXCH MPAC +5
|
||||
DDOUBL
|
||||
INDEX TEM1
|
||||
DXCH 12
|
||||
|
||||
CA TEM2
|
||||
TS EBANK
|
||||
TCF SWRETURN
|
||||
|
||||
@@ -0,0 +1,465 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: R30.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 712-722
|
||||
# Mod history: 2009-05-19 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2009-06-07 RSB Removed a space between two components of
|
||||
# a 2OCT that isn't legal in yaYUL.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 712
|
||||
# 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 V22E XE. 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 LUNAR 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 -59M59S 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).
|
||||
# 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
|
||||
# RPER (-29) M EARTH
|
||||
# (-27) M MOON
|
||||
# TFF (-28) CS CONTAINS NEGATIVE QUANTITY
|
||||
# -TPER (-28) CS CONTAINS NEGATIVE QUANTITY
|
||||
#
|
||||
# Page 713
|
||||
# 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 # CALCULATION AND DISPLAY.
|
||||
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. OPTION1+1 = 1 FOR THIS VEHICLE
|
||||
# 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
|
||||
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
|
||||
# Page 714
|
||||
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 412
|
||||
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.
|
||||
X2
|
||||
EARTHPAD
|
||||
GOTO
|
||||
MOONPAD
|
||||
# Page 715
|
||||
THISSHIP TC INTPRET
|
||||
CALL # CALL STATE VECTOR UPDATE FOR THIS SHIP.
|
||||
THISPREC
|
||||
GOTO
|
||||
BOTHSHIP
|
||||
|
||||
# THE FOLLOWING CONSTANTS ARE PAIRWISE INDEXED. DO NOT SEPARATE PAIRS.
|
||||
|
||||
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 SCALILNG FOR SR30.1
|
||||
BOTHPAD STCALL RPADTEM
|
||||
SR30.1 # CALCULATE ORBITAL PARAMETERS
|
||||
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.
|
||||
TICKTIFF # (-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
|
||||
CAF BIT1
|
||||
TS V82FLAGS # INFORMS TICKTEST TO INCREMENT ONLY -TPER
|
||||
TC ENDOFJOB
|
||||
|
||||
TICKTIFF 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
|
||||
|
||||
# Page 716
|
||||
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 717
|
||||
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
|
||||
MOONTHIS # FLAG INDICATES BODY ABOUT WHICH ORBITAL
|
||||
MOONGON # CALCULATIONS ARE TO BE PERFORMED.
|
||||
EARTHGON # IF SET -- MOON, IF RESET --EARTH.
|
||||
|
||||
MOONGON SET DLOAD
|
||||
V82EMFLG # FLAG 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 718
|
||||
EXIT
|
||||
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
|
||||
|
||||
SPLRET = V82GON3
|
||||
|
||||
# Page 719
|
||||
# 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: R. R. 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: QPREG, PDL, S2
|
||||
|
||||
# Page 720
|
||||
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 RAPO > MAXNM, SET RAPO =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 721
|
||||
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 HPER 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 722 (empty page)
|
||||
|
||||
@@ -0,0 +1,267 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: R31.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 703-708
|
||||
# Mod history: 2009-05-19 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 703
|
||||
BANK 40
|
||||
SETLOC R31LOC
|
||||
BANK
|
||||
|
||||
COUNT* $$/R31
|
||||
|
||||
R31CALL CAF PRIO3
|
||||
TC FINDVAC
|
||||
EBANK= SUBEXIT
|
||||
2CADR V83CALL
|
||||
|
||||
DSPDELAY TC FIXDELAY
|
||||
DEC 100
|
||||
CA EXTVBACT
|
||||
MASK BIT12
|
||||
EXTEND
|
||||
BZF DSPDELAY
|
||||
|
||||
CAF PRIO5
|
||||
TC NOVAC
|
||||
EBANK= TSTRT
|
||||
2CADR DISPN5X
|
||||
|
||||
TCF TASKOVER
|
||||
|
||||
BANK 37
|
||||
SETLOC R31
|
||||
BANK
|
||||
COUNT* $$/R31
|
||||
|
||||
DISPN5X CAF V16N54
|
||||
TC BANKCALL
|
||||
CADR GOMARKF
|
||||
TC B5OFF
|
||||
TC B5OFF
|
||||
TCF DISPN5X
|
||||
|
||||
V83CALL CS FLAGWRD7 # TEST AVERAGE G FLAG
|
||||
MASK AVEGFBIT
|
||||
EXTEND
|
||||
BZF MUNG? # ON. TEST MUNFLAG
|
||||
|
||||
CS FLAGWRD8
|
||||
MASK SURFFBIT
|
||||
EXTEND
|
||||
BZF ONEBASE # ON SURFACE -- BYPASS LEMPREC
|
||||
|
||||
TC INTPRET # EXTRAPOLATE BOTH STATE VECTORS
|
||||
RTB
|
||||
# Page 704
|
||||
LOADTIME
|
||||
STCALL TDEC1
|
||||
LEMPREC # PRECISION BASE VECTOR FOR LM
|
||||
VLOAD
|
||||
RATT1
|
||||
STOVL BASETHP
|
||||
VATT1
|
||||
STODL BASETHV
|
||||
TAT
|
||||
DOCMBASE STORE BASETIME # PRECISION BASE VECTOR FOR CM
|
||||
STCALL TDEC1
|
||||
CSMPREC
|
||||
VLOAD
|
||||
RATT1
|
||||
STOVL BASEOTP
|
||||
VATT1
|
||||
STORE BASEOTV
|
||||
EXIT
|
||||
|
||||
REV83 CS FLAGWRD7
|
||||
MASK AVEGFBIT
|
||||
EXTEND
|
||||
BZF GETRVN # IF AVEGFLAG SET, USE RN,VN
|
||||
|
||||
CS FLAGWRD8
|
||||
MASK SURFFBIT
|
||||
EXTEND
|
||||
BZF R31SURF # IF ON SURFACE, USE LEMAREC
|
||||
|
||||
TC INTPRET # DO CONIC EXTRAPOLATION FOR BOTH VEHICLES
|
||||
RTB
|
||||
LOADTIME
|
||||
STCALL TDEC1
|
||||
INTSTALL
|
||||
VLOAD CLEAR
|
||||
BASETHP
|
||||
MOONFLAG
|
||||
STOVL RCV
|
||||
BASETHV
|
||||
STODL VCV
|
||||
BASETIME
|
||||
BOF SET # GET APPROPRIATE MOONFLAG SETTING
|
||||
MOONTHIS
|
||||
+2
|
||||
MOONFLAG
|
||||
SET
|
||||
INTYPFLG # CONIC EXTRAP.
|
||||
STCALL TET
|
||||
INTEGRVS # INTEGRATION --- AT LAST ---
|
||||
OTHCONIC VLOAD
|
||||
# Page 705
|
||||
RATT
|
||||
STOVL RONE
|
||||
VATT
|
||||
STCALL VONE # GET SET FOR CONIC EXTRAP., OTHER.
|
||||
INTSTALL
|
||||
SET DLOAD
|
||||
INTYPFLG
|
||||
TAT
|
||||
OTHINT STORE TDEC1
|
||||
VLOAD CLEAR
|
||||
BASEOTP
|
||||
MOONFLAG
|
||||
STOVL RCV
|
||||
BASEOTV
|
||||
STODL VCV
|
||||
BASETIME
|
||||
BOF SET
|
||||
MOONTHIS
|
||||
+2
|
||||
MOONFLAG
|
||||
STCALL TET
|
||||
INTEGRVS
|
||||
COMPDISP VLOAD VSU
|
||||
RATT
|
||||
RONE
|
||||
RTB PDDL
|
||||
NORMUNX1 # UNIT(RANGE) TO PD 0-5
|
||||
36D
|
||||
SL* # RESCALE AFTER NORMUNIT
|
||||
0,1
|
||||
STOVL RANGE # SCALED 2(29)M
|
||||
VATT
|
||||
VSU DOT # (VCM-VLM).UNIT(LOS), PD=0
|
||||
VONE
|
||||
SL1 # SCALED 2(7)M/CS
|
||||
STOVL RRATE
|
||||
RONE
|
||||
UNIT PDVL # UNIT(R) TO PD 0-5
|
||||
UNITZ
|
||||
CALL
|
||||
CDU*NBSM
|
||||
VXM PUSH # UNIT(Z)/4 TO PD 6-11
|
||||
REFSMMAT
|
||||
VPROJ VSL2 # UNIT(P)=UNIT(UZ-(UZ)PROJ(UR))
|
||||
0D
|
||||
BVSU UNIT
|
||||
6D
|
||||
PDVL VXV # UNIT(P) TO PD 12-17
|
||||
0D # UNIT(RL)
|
||||
VONE
|
||||
# Page 706
|
||||
VXV DOT # (UR * VL) * UR . U(P)
|
||||
0D
|
||||
12D
|
||||
PDVL # SIGN TO 12-13, LOAD U(P)
|
||||
DOT SIGN
|
||||
6D
|
||||
12D
|
||||
SL2 ACOS # ARCCOS(UP.UZ(SIGN))
|
||||
STOVL RTHETA
|
||||
0D
|
||||
DOT BPL # IF UR.UZ NEG,
|
||||
6D # RTHETA = 1 - RTHETA
|
||||
+5
|
||||
DLOAD DSU
|
||||
DPPOSMAX
|
||||
RTHETA
|
||||
STORE RTHETA
|
||||
EXIT
|
||||
|
||||
CA BIT5
|
||||
MASK EXTVBACT
|
||||
EXTEND # IF ANSWERED,
|
||||
BZF ENDEXT # TERMINATE
|
||||
|
||||
CS EXTVBACT
|
||||
MASK BIT12
|
||||
ADS EXTVBACT # SET BIT 12
|
||||
TCF REV83 # AND START AGAIN.
|
||||
|
||||
GETRVN CA PRIO22 # INHIBIT SERVICER
|
||||
TC PRIOCHNG
|
||||
TC INTPRET
|
||||
VLOAD SETPD
|
||||
RN # LM STATE VECTOR IN RN,VN.
|
||||
0
|
||||
STOVL RONE
|
||||
VN
|
||||
STOVL VONE # LOAD R(CSM),V(CSM) IN CASE MUNFLAG SET
|
||||
V(CSM) # (TO INSURE TIME COMPATIBILITY)
|
||||
PDVL PDDL
|
||||
R(CSM)
|
||||
PIPTIME
|
||||
EXIT
|
||||
CA PRIO3
|
||||
TC PRIOCHNG
|
||||
TC INTPRET
|
||||
BOFF VLOAD
|
||||
MUNFLAG
|
||||
GETRVN2 # IF MUNFLAG RESET, DO CM DELTA PRECISION
|
||||
# Page 707
|
||||
VXM VSR4 # CHANGE TO REFERENCE SYSTEM AND RESCALE
|
||||
REFSMMAT
|
||||
PDVL # R TO PD 0-5
|
||||
VXM VSL1
|
||||
REFSMMAT
|
||||
PUSH SETPD # V TO PD 5-11
|
||||
0
|
||||
GOTO
|
||||
COMPDISP
|
||||
|
||||
GETRVN2 CALL
|
||||
INTSTALL
|
||||
CLEAR GOTO
|
||||
INTYPFLG # PREC EXTRAP FOR OTHER
|
||||
OTHINT
|
||||
R31SURF TC INTPRET
|
||||
RTB # LM IS ON SURFACE, SO PRECISION
|
||||
LOADTIME # INTEGRATION USED PLANETARY INERTIAL
|
||||
STCALL TDEC1 # ORIENTATION SUBROUTINE
|
||||
LEMPREC
|
||||
GOTO # DO CSM CONIC
|
||||
OTHCONIC
|
||||
MUNG? CS FLAGWRD6
|
||||
MASK MUNFLBIT
|
||||
EXTEND
|
||||
BZF GETRVN # IF MUNFLAG SET, CSM BASE NOT NEEDED
|
||||
|
||||
ONEBASE TC INTPRET # GET CSM BASE VECTOR
|
||||
RTB GOTO
|
||||
LOADTIME
|
||||
DOCMBASE
|
||||
|
||||
V16N54 VN 1654
|
||||
|
||||
# Page 708 (empty page)
|
||||
|
||||
@@ -0,0 +1,587 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: R60_R62.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 472-485
|
||||
# Mod history: 2009-05-17 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 472
|
||||
# MOD NO: 0 DATE: 1 MAY 1968
|
||||
# MOD BY: DIGITAL DEVEL GROUP LOG SECTION R60,R62
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION:
|
||||
#
|
||||
# CALLED AS A GENERAL SUBROUTINE TO MANEUVER THE LM TO A SPECIFIED
|
||||
# ATTITUDE.
|
||||
#
|
||||
# 1. IF THE 3-AXIS FLAG IS NOT SET THE FINAL CDU ANGLES ARE
|
||||
# CALCULATED (VECPOINT).
|
||||
#
|
||||
# 2. THE FDAI BALL ANGLES (NOUN 18) ARE CALCULATED (BALLANGS).
|
||||
#
|
||||
# 3. REQUEST FLASHING DISPLAY V50 N18 PLEASE PERFORM AUTO MANEUVER.
|
||||
#
|
||||
# 4. IF PRIORITY DISPLAY FLAG IS SET DO A PHASECHANGE. THEN AWAIT
|
||||
# ASTRONAUT RESPONSE.
|
||||
#
|
||||
# 5. DISPLAY RESPONSE RETURNS.
|
||||
#
|
||||
# A. ENTER -- RESET 3-AXIS FLAG AND RETURN TO CLIENT.
|
||||
#
|
||||
# B. TERMINATE -- IF IN P00 GO TO STEP 5A. OTHERWISE CHECK IF R61 IS
|
||||
# THE CALLING PROGRAM. IF IN R61 AN EXIT IS MADE TO GOTOV56. IF
|
||||
# NOT IN R61 AN EXIT IS DONE VIA GOTOP00H.
|
||||
#
|
||||
# C. PROCEED -- CONTINUE WITH PROGRAM AT STEP 6.
|
||||
#
|
||||
# 6. IF THE 3-AXISFLAG IS NOT SET, THE FINAL CDU ANGLES ARE CALCULATED
|
||||
# (VECPOINT).
|
||||
#
|
||||
# 7. THE FDAI BALL ANGLES (NOUN 18) ARE CALCULATED (BALLANGS).
|
||||
#
|
||||
# 8. IF THE G+N SWITCH IS NOT SET GO BACK TO STEP 3.
|
||||
#
|
||||
# 9. IF THE AUTO SWITCH IS NOT SET GO BACK TO STEP 3.
|
||||
#
|
||||
# 10. NON-FLASHING DISPLAY V06N18 (FDAI ANGLES).
|
||||
#
|
||||
# 11. DO A PHASE-CHANGE.
|
||||
#
|
||||
# 12. DO A MANEUVER CALCULATION AND ICDU DRIVE ROUTINE TO ACHIEVE FINAL
|
||||
# GIMBAL ANGLES (GOMANUR).
|
||||
#
|
||||
# 13. AT END OF MANEUVER TO TO STEP 3.
|
||||
#
|
||||
# IF SATISFACTORY MANEUVER STEP 5A EXITS R60.
|
||||
# FOR FURTHER ADJUSTMENT OF THE VEHICLE ATTITUDE ABOUT THE
|
||||
# DESIRED VECTOR, THE ROUTINE MAY BE PERFORMED AGAIN STARTING AT
|
||||
# Page 473
|
||||
# STEP 5C.
|
||||
#
|
||||
# CALLING SEQUENCE: TC BANKCALL
|
||||
# CADR R60LEM
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED: SCAXIS, POINTVSM (FOR VECPOINT)
|
||||
# 3AXISFLG.
|
||||
#
|
||||
# SUBROUTINES CALLED: VECPOINT, BALLANGS, GOPERF24, LINUS, GODSPER,
|
||||
# GOMANUR, DOWNFLAG, PHASCHNG, UPFLAG
|
||||
#
|
||||
# NORMAL EXIT MODES: CAE TEMPR60 (CALLER'S RETURN ADDRESS)
|
||||
# TC BANKJUMP
|
||||
#
|
||||
# ALARMS: NONE
|
||||
#
|
||||
# OUTPUT: NONE
|
||||
#
|
||||
# DEBRIS: CPHI, CTHETA, CPSI, 3AXISFLG, TBASE2
|
||||
|
||||
BANK 34
|
||||
SETLOC MANUVER
|
||||
BANK
|
||||
|
||||
EBANK= TEMPR60
|
||||
|
||||
COUNT* $$/R06
|
||||
R60LEM TC MAKECADR
|
||||
TS TEMPR60
|
||||
|
||||
REDOMANN CAF 3AXISBIT
|
||||
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 TC BANKCALL
|
||||
CADR BALLANGS # TO CONVERT ANGLES TO FDAI
|
||||
TOBALLA CAF V06N18
|
||||
TC BANKCALL
|
||||
CADR GOPERF2R # DISPLAY PLEASE PERFORM AUTO MANEUVER
|
||||
TC R61TEST
|
||||
TC REDOMANC # PROCEED
|
||||
TC ENDMANU1 # ENTER I.E., FINISHED WITH R60
|
||||
# Page 474
|
||||
TC CHKLINUS # TO CHECK FOR PRIORITY DISPLAYS
|
||||
TC ENDOFJOB
|
||||
|
||||
REDOMANC CAF 3AXISBIT
|
||||
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 TC BANKCALL
|
||||
CADR BALLANGS # TO CONVERT ANGLES TO FDAI
|
||||
TC G+N,AUTO # CHECK AUTO MODE
|
||||
CCS A
|
||||
TCF TOBALLA # NOT AUTO, GO REREQUEST AUTO MANEUVER.
|
||||
|
||||
AUTOMANV CAF V06N18 # STATIC DISPLAY DURING AUTO MANEUVER
|
||||
TC BANKCALL
|
||||
CADR GODSPR
|
||||
TC CHKLINUS # TO CHECK FOR PRIORITY DISPLAYS
|
||||
|
||||
STARTMNV TC BANKCALL # PERFORM MANEUVER VIA KALCMANU
|
||||
CADR GOMANUR
|
||||
|
||||
ENDMANUV TCF TOBALLA # FINISHED MANEUVER.
|
||||
ENDMANU1 TC DOWNFLAG # RESET 3-AXIS FLAG
|
||||
ADRES 3AXISFLG
|
||||
CAE TEMPR60
|
||||
TC BANKJUMP
|
||||
|
||||
CHKLINUS CS FLAGWRD4
|
||||
MASK PDSPFBIT # 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 # HOLD Q OF LAST DISPLAY
|
||||
TS TBASE2
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 00132
|
||||
|
||||
CAF BIT7
|
||||
TC LINUS # GO SET BITS FOR PRIORITY DISPLAY
|
||||
TC MPAC +2
|
||||
|
||||
# Page 475
|
||||
RELINUS CAF PRIO26 # RESTORE ORIGINAL PRIORITY
|
||||
TC PRIOCHNG
|
||||
|
||||
CAF TRACKBIT # DON'T CONTINUE R60 UNLESS TRACKFLAG ON.
|
||||
MASK FLAGWRD1
|
||||
CCS A
|
||||
TCF RER60
|
||||
|
||||
CAF RNDVZBIT # IS IT P20?
|
||||
MASK FLAGWRD0
|
||||
CCS A
|
||||
TC +4 # YES
|
||||
TC PHASCHNG # NO, MUST BE P25, SET 2.11 SPOT
|
||||
OCT 40112
|
||||
|
||||
TC ENDOFJOB
|
||||
|
||||
TC PHASCHNG # SET 2.7 SPOT FOR P20
|
||||
OCT 40072
|
||||
|
||||
TC ENDOFJOB
|
||||
|
||||
RER60 TC UPFLAG # SET PRIO DISPLAY FLAG AFTER RESTART
|
||||
ADRES PDSPFLAG
|
||||
|
||||
TC TBASE2
|
||||
|
||||
R61TEST CA MODREG # IF WE ARE IN P00 IT MUST BE V49 OR V89
|
||||
EXTEND
|
||||
BZF ENDMANU1 # THUS WE GO TO ENDEXT VIA USER
|
||||
|
||||
CA FLAGWRD4 # ARE WE IN R61 (P20 OR P25)
|
||||
MASK PDSPFBIT
|
||||
EXTEND
|
||||
BZF GOTOP00H # NO
|
||||
TC GOTOV56 # YES
|
||||
|
||||
BIT14+7 OCT 20100
|
||||
OCT203 OCT 203
|
||||
V06N18 VN 0618
|
||||
|
||||
# SUBROUTINE TO CHECK FOR G+N CONTROL, AUTO STABILIZATION
|
||||
#
|
||||
# RETURNS WITH C(A) = + IF NOT SET FOR G+N, AUTO
|
||||
# RETURNS WITH C(A) = +0 IF SWITCHES ARE SET
|
||||
|
||||
G+N,AUTO EXTEND
|
||||
READ CHAN30
|
||||
MASK BIT10
|
||||
CCS A
|
||||
TC Q # NOT IN G+N C(A) = +
|
||||
# Page 476
|
||||
ISITAUTO EXTEND # CHECK FOR AUTO MODE
|
||||
READ CHAN31
|
||||
MASK BIT14
|
||||
TC Q # (+) = NOT IN AUTO, (+0) = AOK
|
||||
|
||||
# Page 477
|
||||
# PROGRAM DESCRIPTION BALLANGS
|
||||
# MOD NO. LOG SECTION R60,R62
|
||||
#
|
||||
# WRITTEN BY RAMA M. AIYAWAR
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
#
|
||||
# COMPUTES LM FDAI BALL DISPLAY ANGLES
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
#
|
||||
# TC BALLANGS
|
||||
#
|
||||
# NORMAL EXIT MODE
|
||||
#
|
||||
# TC BALLEXIT # (SAVED Q)
|
||||
#
|
||||
# ALARM OR EXIT MODE: NIL
|
||||
#
|
||||
# SUBROUTINES CALLED
|
||||
#
|
||||
# CD*TR*G
|
||||
# ARCTAN
|
||||
#
|
||||
# INPUT
|
||||
#
|
||||
# CPHI,CTHETA,CPSI ARE THE ANGLES CORRESPONDING TO AOG, AIG, AMG. THEY ARE
|
||||
# SP,2'S COMPLEMENT SCALED TO HALF REVOLUTION.
|
||||
#
|
||||
# OUTPUT
|
||||
#
|
||||
# FDAIX, FDAIY, FDAIZ ARE THE REQUIRED BALL ANGLES SCALED TO HALF REVOLUTION
|
||||
# SP,2'S COMPEMENT.
|
||||
#
|
||||
# THESE ANGLES WILL BE DISPLAYED AS DEGREES AND HUNDREDTHS, IN THE ORDER ROLL, PITCH, YAW, USING NOUNS 18 & 19.
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED
|
||||
#
|
||||
# CPHI, CTHETA, CPSI EACH AN SP REGISTER
|
||||
#
|
||||
# DEBRIS
|
||||
#
|
||||
# A,L,Q,MPAC,SINCDU,COSCDU,PUSHLIST,BALLEXIT
|
||||
#
|
||||
# NOMENCLATURE: CPHI, CTHETA, & CPSI REPRESENT THE OUTER, INNER, AND MIDDLE GIMBAL ANGLES, RESPECTIVELY; OR
|
||||
# EQUIVALENTLY, CDUX, CDUY, AND CDUZ.
|
||||
#
|
||||
# NOTE: ARCTAN CHECKS FOR OVERFLOW AND SHOULD BE ABLE TO HANDLE ANY SINGULARITIES.
|
||||
|
||||
SETLOC BAWLANGS
|
||||
BANK
|
||||
|
||||
COUNT* $$/BALL
|
||||
BALLANGS TC MAKECADR
|
||||
TS BALLEXIT
|
||||
CA CPHI
|
||||
# Page 478
|
||||
TS CDUSPOT +4
|
||||
CA CTHETA
|
||||
TS CDUSPOT
|
||||
CA CPSI
|
||||
TS CDUSPOT +2
|
||||
|
||||
TC INTPRET
|
||||
SETPD CALL
|
||||
0D
|
||||
CD*TR*G
|
||||
|
||||
DLOAD DMP
|
||||
SINCDUX # SIN (OGA)
|
||||
COSCDUZ # COS (MGA)
|
||||
|
||||
SL1 DCOMP # SCALE
|
||||
ARCSIN PDDL # YAW = ARCSIN(-SXCZ) INTO 0 PD
|
||||
SINCDUZ
|
||||
STODL SINTH # (SINTH = 18D IN PD)
|
||||
COSCDUZ
|
||||
DMP SL1 # RESCALE
|
||||
COSCDUX
|
||||
STCALL COSTH # (COSTH = 16D IN PD)
|
||||
ARCTAN
|
||||
PDDL DMP # ROLL = ARCTAN(SZ/CZCX) INTO 2 PD
|
||||
SINCDUZ
|
||||
SINCDUX
|
||||
SL2 PUSH # SXSZ INTO 4 PD
|
||||
DMP PDDL # SXSZCY INTO 4 PD
|
||||
COSCDUY
|
||||
DMP PDDL # SXSZSY INTO 6 PD
|
||||
SINCDUY
|
||||
COSCDUX
|
||||
DMP SL1 # CXCY
|
||||
COSCDUY
|
||||
DSU STADR # PULL UP FORM 6 PD
|
||||
STODL COSTH # COSTH = CXCY - SXSZSY
|
||||
SINCDUY
|
||||
DMP SL1
|
||||
COSCDUX # CXSY
|
||||
DAD STADR # PULL UP FORM 4 PD
|
||||
STCALL SINTH # SINTH = CXSY + SXSZCY
|
||||
ARCTAN # RETURNS WITH D(MPAC) = PITCH
|
||||
PDDL VDEF # PITCH INTO 2 PD, ROLL INTO MPAC FROM 2 PD
|
||||
RTB # VDEF MAKES V(MPAC) = ROLL, PITCH, YAW
|
||||
V1STO2S
|
||||
STORE FDAIX # MODE IS TP
|
||||
EXIT
|
||||
|
||||
ENDBALL CA BALLEXIT
|
||||
|
||||
# Page 479
|
||||
TC BANKJUMP
|
||||
|
||||
# Page 480
|
||||
# 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 INFORMTION VECPOINT COMPUTES A SET OF THREE GIMBAL
|
||||
# ANGLES (2'S 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 2'S COMPLEMENT 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 481
|
||||
COUNT* $$/VECPT
|
||||
|
||||
EBANK= BCDU
|
||||
|
||||
VECPNT1 STQ BOV # THIS ENTRY USES DESIRED CDUS
|
||||
VECQTEMP # NOT PRESENT -- ENTER WITH CDUD'S IN MPAC
|
||||
VECPNT2
|
||||
VECPNT2 AXC,2 GOTO
|
||||
MIS
|
||||
STORANG
|
||||
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
|
||||
STORANG 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
|
||||
KEL # 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.
|
||||
# Page 482
|
||||
# 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
|
||||
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
|
||||
KEL
|
||||
CALL # COMPUTE THE NEW TRANSFORMATION FROM
|
||||
MXM3 # DESIRED S/C AXES TO STABLE MEMBER AXES
|
||||
# WHICH WILL ALIGN VI WITH VF AND AVOID
|
||||
# Page 483
|
||||
# GIMBAL LOCK
|
||||
FINDGIMB AXC,1 CALL
|
||||
0 # EXTRACT THE COMMANDED CDU ANGLES FROM
|
||||
DCMTOCDU # THIS MATRIX
|
||||
RTB SETPD
|
||||
V1STO2S # CONVERT TO 2'S COMPLEMENT
|
||||
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
|
||||
|
||||
BANK 35
|
||||
SETLOC MANUVER1
|
||||
BANK
|
||||
ROT180 VLOAD VXV # IF VF, VI ANTIPARALLEL, 180 DEG ROTATION
|
||||
MIS +6 # IS REQUIRED. Y STABLE MEMBER AXIS IN
|
||||
HIDPHALF # INITIAL S/C AXES.
|
||||
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
|
||||
HIDPHALF
|
||||
XROT
|
||||
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
|
||||
# Page 484
|
||||
VECANG2 2DEC .09722222222 # = 35 DEGREES $360
|
||||
|
||||
1BITDP OCT 0 # KEEP THIS BEFORE DPB(-14) ************
|
||||
DPB-14 OCT 00001
|
||||
OCT 00000
|
||||
|
||||
# Page 485
|
||||
# ROUTINE FOR INITIATING AUTOMATIC MANEUVER VIA KEYBOARD (V49)
|
||||
|
||||
BANK 34
|
||||
SETLOC R62
|
||||
BANK
|
||||
EBANK= BCDU
|
||||
|
||||
COUNT* $$/R62
|
||||
|
||||
R62DISP EQUALS R62FLASH
|
||||
|
||||
R62FLASH CAF V06N22 # FLASH V06N22 AND
|
||||
TC BANKCALL # ICDU ANGLES
|
||||
CADR GOFLASH
|
||||
TCF ENDEXT # TERMINATE
|
||||
TCF GOMOVE # PROCEED
|
||||
TCF R62FLASH # ENTER
|
||||
|
||||
# ASTRONAUT MAY LOAD NEW ICDUS AT THIS
|
||||
# POINT.
|
||||
GOMOVE TC UPFLAG # SET FOR 3-AXIS MANEUVER
|
||||
ADRES 3AXISFLG
|
||||
|
||||
TC BANKCALL
|
||||
CADR R60LEM
|
||||
TCF ENDEXT # END R62
|
||||
|
||||
@@ -0,0 +1,325 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RESTARTS_ROUTINE.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: 1303-1309
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1303
|
||||
BANK 01
|
||||
SETLOC RESTART
|
||||
BANK
|
||||
|
||||
EBANK= PHSNAME1 # GOPROG MUST SWITCH TO THIS EBANK
|
||||
|
||||
COUNT* $$/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, IT'S 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 # STORES 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 # IT'S A LONGCALL
|
||||
|
||||
RTRNCADR TC SWRETURN # CAN'T GET HERE.
|
||||
# Page 1304
|
||||
TCF ITSAWAIT
|
||||
|
||||
TCF ITSAJOB # IT'S 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* $$/RSROU
|
||||
ITSINDIR LXCH GOLOC +1 # GET THE CORRECT E BANK IN CASE THIS IS
|
||||
LXCH BB # SWITCHED ERASABLE
|
||||
|
||||
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* $$/RSROU
|
||||
FINDTIME COM # MAKE NEGATIVE SINCE IT WILL BE SUBTRACTED
|
||||
TS L # AND SAVE
|
||||
NDX TEMP2G
|
||||
CS TBASE1
|
||||
EXTEND
|
||||
SU TIME1
|
||||
CCS A
|
||||
COM
|
||||
# Page 1305
|
||||
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 IT'S
|
||||
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
|
||||
|
||||
CA TEMPPHS # SET UP POINTER FOR FINDING OUR PLACE IN
|
||||
TS SR # THE RESTART TABLES
|
||||
AD SR
|
||||
# Page 1306
|
||||
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* $$/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
|
||||
|
||||
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
|
||||
# Page 1307
|
||||
TCF ITSLGCL2 # NOT LET'S PROCESS THIS LONGCALL
|
||||
|
||||
# ***** YOU MAY RETURN TO SWITCHED FIXED *****
|
||||
|
||||
BANK 01
|
||||
SETLOC RESTART
|
||||
BANK
|
||||
|
||||
COUNT* $$/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
|
||||
|
||||
NDX POINTER # GET THE DT AND FIND OUT IF IT WAS STORED
|
||||
CA PRDTTAB # DIRECTOY OR INDIRECTLY
|
||||
|
||||
TCF TIMETEST # FIND OUT HOW THE TIME IS STORED
|
||||
|
||||
# Page 1308
|
||||
ITSAJOB2 XCH GOLOC # STORE THE CADR
|
||||
|
||||
NDX POINTER # ADD THE PRIORITY AND LET'S GO
|
||||
CA PRDTTAB
|
||||
|
||||
TCF CHKNOVAC
|
||||
|
||||
ITSEVEN CA TEMPSWCH # SET 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 # NO 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
|
||||
|
||||
|
||||
@@ -0,0 +1,297 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RESTART_TABLES.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 238-243
|
||||
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
|
||||
# from the Luminary131/ file of the same
|
||||
# name, using Luminary099 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 238
|
||||
# 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 IN TO THE TABLES.
|
||||
#
|
||||
# A JOB HAS ITS PRIORITY STORED IN A 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 O THIS PHASE WOULD BE STARTED AS A JOB WITH A PRIORITY OF 31.
|
||||
#
|
||||
# WAITLIST CALLS ARE IDENTIFIED BY THE FCT 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
|
||||
# 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 239
|
||||
# -GENADR DTIME # WHERE DTIME CONTAINS THE DELTA TIME
|
||||
# -2CADR TASKTASK # OTHERWISE THIS IS AS ABOVE
|
||||
#
|
||||
# ***** NOW THE TABLES THEMSELVES *****
|
||||
|
||||
BANK 01
|
||||
SETLOC RESTART
|
||||
BANK
|
||||
|
||||
PRDTTAB EQUALS 12000 # USED TO FIND THE PRIORITY OR DELTATIME
|
||||
CADRTAB EQUALS 12001 # THIS AND THE NEXT RELATIVE LOC CONTAIN
|
||||
# RESTART 2CADR
|
||||
|
||||
COUNT* $$/RSTAB # TABLES IN BANK 1.
|
||||
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 OCT 21000 # A DUMMY EXAMPLE TO BE REPLACED AS SOON
|
||||
EBANK= STATE
|
||||
2CADR ENDOFJOB # AS THERE IS A LEGITIMATE 1.2SPOT
|
||||
|
||||
DEC 100
|
||||
EBANK= STATE
|
||||
2CADR TASKOVER
|
||||
|
||||
# ANY MORE GROUP 1.EVEN RESTART VALUES SHOULD GO HERE.
|
||||
|
||||
1.3SPOT -GENADR SAVET-30
|
||||
EBANK= DVCNTR
|
||||
-2CADR ULLGTASK
|
||||
|
||||
# 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
|
||||
|
||||
2.3SPOT GENADR 600SECS
|
||||
|
||||
-GENADR STATEINT
|
||||
EBANK= RRECTCSM
|
||||
BBCON STATEINT
|
||||
|
||||
# Page 240
|
||||
2.5SPOT OCT 05000
|
||||
EBANK= RRECTCSM
|
||||
2CADR STATINT1
|
||||
|
||||
2.7SPOT DEC 1500
|
||||
EBANK= LOSCOUNT
|
||||
-2CADR P20LEMC1
|
||||
|
||||
2.11SPOT OCT 14000
|
||||
EBANK= P21TIME
|
||||
2CADR P25LEM1
|
||||
|
||||
2.13SPOT OCT 10000
|
||||
EBANK= LOSCOUNT
|
||||
2CADR RELINUS
|
||||
|
||||
2.15SPOT OCT 26000
|
||||
EBANK= LOSCOUNT
|
||||
2CADR R22RSTRT
|
||||
|
||||
2.17SPOT OCT 77777
|
||||
EBANK= VGPREV
|
||||
-2CADR REDO2.17
|
||||
|
||||
2.21SPOT DEC 25
|
||||
EBANK= DVCNTR
|
||||
-2CADR R10,R11
|
||||
|
||||
# ANY MORE GROUP 2.ODD RESTART VALUES SHOULD GO HERE.
|
||||
|
||||
3.2SPOT EQUALS 1.2SPOT
|
||||
|
||||
# ANY MORE GROUP 3.EVEN RESTART VALUES SHOULD GO HERE
|
||||
|
||||
3.3SPOT -GENADR ZOOMTIME
|
||||
EBANK= DVCNTR
|
||||
-2CADR ZOOM
|
||||
|
||||
3.5SPOT OCT 20000
|
||||
EBANK= TTOGO
|
||||
2CADR S40.13
|
||||
|
||||
# ANY MORE GROUP 3.ODD RESTART VALUES SHOULD GO HERE
|
||||
|
||||
4.2SPOT DEC 2500
|
||||
EBANK= TTOGO
|
||||
|
||||
-2CADR TIG-5
|
||||
|
||||
OCT 77777
|
||||
EBANK= TTOGO
|
||||
# Page 241
|
||||
-2CADR REDO4.2
|
||||
|
||||
# ANY MORE GROUP 4.EVEN RESTART VALUES SHOULD GO HERE
|
||||
|
||||
4.3SPOT OCT 25000
|
||||
EBANK= DVCNTR
|
||||
2CADR GOABORT
|
||||
|
||||
4.5SPOT DEC 50
|
||||
EBANK= TTOGO
|
||||
-2CADR ULLAGOFF
|
||||
|
||||
4.7SPOT DEC 500
|
||||
EBANK= DVCNTR
|
||||
-2CADR TIG-0
|
||||
|
||||
4.11SPOT -GENADR TGO +1
|
||||
EBANK= DVCNTR
|
||||
-2CADR ENGOFTSK
|
||||
|
||||
4.13SPOT OCT 12000
|
||||
EBANK= TRKMKCNT
|
||||
2CADR POSTBURN
|
||||
|
||||
4.15SPOT DEC 500
|
||||
EBANK= TTOGO
|
||||
-2CADR TIG-30
|
||||
|
||||
4.17SPOT OCT 77777
|
||||
EBANK= DVCNTR
|
||||
-2CADR TIG-5
|
||||
|
||||
4.21SPOT OCT 13000
|
||||
EBANK= STAR
|
||||
2CADR R51.1 +1
|
||||
|
||||
4.23SPOT OCT 77777
|
||||
EBANK= DVCNTR
|
||||
-2CADR IGNITION
|
||||
|
||||
4.25SPOT GENADR SAVET-30
|
||||
-GENADR TIG-35
|
||||
EBANK= SAVET-30
|
||||
BBCON TIG-35
|
||||
|
||||
|
||||
4.27SPOT OCT 52777
|
||||
EBANK= DVCNTR
|
||||
2CADR P70A
|
||||
# Page 242
|
||||
4.31SPOT OCT 52777
|
||||
EBANK= DVCNTR
|
||||
2CADR P71A
|
||||
|
||||
4.33SPOT OCT 46777
|
||||
EBANK= DVCNTR
|
||||
2CADR GOP00FIX
|
||||
|
||||
4.35SPOT OCT 46777
|
||||
EBANK= DVCNTR
|
||||
2CADR GOP00DOO
|
||||
|
||||
4.37SPOT OCT 52777
|
||||
EBANK= WHICH
|
||||
2CADR COMFAIL
|
||||
|
||||
# ANY MORE 4.ODD RESTART VALUES SHOULD GO HERE.
|
||||
5.2SPOT OCT 22000
|
||||
EBANK= DVCNTR
|
||||
2CADR NORMLIZE
|
||||
|
||||
DEC 200
|
||||
EBANK= DVCNTR
|
||||
-2CADR REREADAC
|
||||
|
||||
5.4SPOT DEC 200
|
||||
EBANK= DVCNTR
|
||||
-2CADR REREADAC
|
||||
|
||||
OCT 20000
|
||||
EBANK= DVCNTR
|
||||
2CADR SERVICER
|
||||
|
||||
# ANY MORE GROUP 5.EVEN RESTART VALUES SHOULD GO HERE
|
||||
|
||||
5.3SPOT DEC 200
|
||||
EBANK= DVCNTR
|
||||
-2CADR REREADAC
|
||||
|
||||
5.5SPOT OCT 77777
|
||||
EBANK= DVCNTR
|
||||
-2CADR REDO5.5
|
||||
|
||||
5.7SPOT OCT 77777
|
||||
EBANK= DVCNTR
|
||||
# Page 243
|
||||
-2CADR BIBIBIAS
|
||||
|
||||
# ANY MORE GROUP 5.ODD RESTART VALUES SHOULD GO HERE
|
||||
|
||||
6.2SPOT EQUALS 1.2SPOT
|
||||
6.3SPOT DEC 100
|
||||
EBANK= TIG
|
||||
-2CADR CLOKTASK
|
||||
|
||||
6.5SPOT OCT 30000 # PROTECT INCREMENTING OF TIME2,TIME1 BY
|
||||
EBANK= TEPHEM # P27(UPDATE PROGRAM) VIA V70 OR V73.
|
||||
2CADR TIMEDIDR
|
||||
|
||||
6.7SPOT OCT 17000
|
||||
EBANK= VGPREV
|
||||
2CADR REDO6.7
|
||||
|
||||
|
||||
@@ -0,0 +1,224 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SERVICE_ROUTINES.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1374-1380
|
||||
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
|
||||
# from the Luminary131/ file of the same
|
||||
# name, using Luminary099 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1374
|
||||
BANK 10
|
||||
SETLOC DISPLAYS
|
||||
BANK
|
||||
COUNT* $$/DSPLA
|
||||
|
||||
UPENT2 INHINT
|
||||
MASK OCT77770
|
||||
TS L
|
||||
CS FLAGWRD4
|
||||
MASK L
|
||||
ADS FLAGWRD4
|
||||
JOIN RELINT
|
||||
TCF Q+1
|
||||
|
||||
DOWNENT2 INHINT
|
||||
MASK OCT77770
|
||||
COM
|
||||
MASK FLAGWRD4
|
||||
TS FLAGWRD4
|
||||
TCF JOIN
|
||||
|
||||
OCT7 EQUALS SEVEN
|
||||
|
||||
# Page 1375
|
||||
# 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 # CET DE BITS
|
||||
INHINT
|
||||
TS ITEMP3
|
||||
CA LOW4 # DEC15
|
||||
TS ITEMP1
|
||||
INDEX ITEMP3
|
||||
CA 0 -1 # ADRES
|
||||
TS L
|
||||
CA ZERO
|
||||
# Page 1376
|
||||
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 1377
|
||||
# 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* $$/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
|
||||
|
||||
DXCH BUF2
|
||||
TC BAILOUT1 # NO AVAILABLE LOCS.
|
||||
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 1378
|
||||
TC JOBWAKE
|
||||
|
||||
TC TASKOVER
|
||||
|
||||
TCSLEEP GENADR TCGETCAD -2
|
||||
WAKECAD GENADR WAKER
|
||||
|
||||
# Page 1379
|
||||
# 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 USEFUL 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 1380
|
||||
# B5OFF ZERO BIT 5 OF EXTVBACK, 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
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SINGLE_PRECISION_SUBROUTINES.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1102
|
||||
# Mod history: 2009-05-25 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2010-12-31 JL Fixed page number comment.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1102
|
||||
BLOCK 02
|
||||
|
||||
# SINGLE PRECISION SINE AND COSINE
|
||||
|
||||
COUNT* $$/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.
|
||||
|
||||
|
||||
@@ -0,0 +1,441 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: STABLE_ORBIT.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 723-730
|
||||
# Mod history: 2009-05-19 RSB Adapted from the corresponding
|
||||
# Colossus249 file (there being no corresponding
|
||||
# Luminary131 source-code file), using page
|
||||
# images from Luminary 1A.
|
||||
# 2009-06-07 RSB Eliminated an extraneous instruction.
|
||||
# 2011-01-06 JL Fixed pseudo-label indentation.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 723
|
||||
# STABLE ORBIT RENDEZVOUS PROGRAMS (P38 AND P78)
|
||||
#
|
||||
# MOD NO -1 LOG SECTION -- STABLE ORBIT -- P38-P39
|
||||
# MOD BY RUDNICKI.S DATE 26JAN68
|
||||
#
|
||||
# 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 THE 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 724
|
||||
# (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) DELTA VELOCITY AT SOI (AND SOR) -- LOCAL VERTICAL
|
||||
# CORDINATES
|
||||
#
|
||||
# SUBROUTINE USED
|
||||
#
|
||||
# AVFLAGA
|
||||
# AVFLAGP
|
||||
# VNDSPLY
|
||||
# BANKCALL
|
||||
# GOFLASHR
|
||||
# GOTOP00H
|
||||
# BLANKET
|
||||
# ENDOFJOB
|
||||
# PREC/TT
|
||||
# SELECTMU
|
||||
# INTRPVP
|
||||
# MAINRTNE
|
||||
|
||||
BANK 04
|
||||
SETLOC STBLEORB
|
||||
BANK
|
||||
|
||||
EBANK= SUBEXIT
|
||||
COUNT* $$/P3879
|
||||
|
||||
P38 TC BANKCALL
|
||||
CADR AVFLAGA # THIS VEHICLE ACTIVE
|
||||
TC +3
|
||||
P78 TC BANKCALL
|
||||
CADR AVFLAGP # OTHER VEHICLE ACTIVE
|
||||
TC BANKCALL
|
||||
CADR P20FLGON # SET UPDATFLG, TRACKFLG
|
||||
CAF DECTWO
|
||||
TS NN
|
||||
CAF V06N33SR # DISPLAY TIG
|
||||
TC VNDSPLY
|
||||
CAF V06N55SR # DISPLAY CENTANG
|
||||
TCR BANKCALL
|
||||
CADR GOFLASHR
|
||||
TCF GOTOP00H # TERMINATE
|
||||
TCF +5 # PROCEED
|
||||
TCF -5 # RECYCLE
|
||||
CAF THREE # IMMEDIATE RETURN -- BLANK R1, R2
|
||||
TCR BLANKET
|
||||
# Page 725
|
||||
TCF ENDOFJOB
|
||||
CAF FIVE
|
||||
TS OPTION1
|
||||
CAF ONE
|
||||
TS OPTION2 # OPTION CODE IS SET TO 1
|
||||
CAF V04N06SR # DISPLAY OPTION CODE -- 1 = SOI, 2 = SOR
|
||||
TCR BANKCALL
|
||||
CADR GOFLASHR
|
||||
TCF GOTOP00H # TERMINATE
|
||||
TCF +5 # PROCEED
|
||||
TCF -5 # RECYCLE
|
||||
CAF BIT3 # IMMEDIATE RETURN -- BLANK R3
|
||||
TCR BLANKET
|
||||
TCF ENDOFJOB
|
||||
TC INTPRET
|
||||
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
|
||||
DAD SET
|
||||
TIG
|
||||
UPDATFLG
|
||||
STORE TINT # TI = TIG + TF
|
||||
EXIT
|
||||
CAF V06N57SR # DISPLAY DELTA R
|
||||
TCR BANKCALL
|
||||
CADR GOFLASHR
|
||||
TCF GOTOP00H # TERMINATE
|
||||
TCF +5 # PROCEED
|
||||
TCF -5 # RECYCLE
|
||||
CAF SIX # IMMEDIATE RETURN -- BLANK R2, R3
|
||||
TCR BLANKET
|
||||
TCF ENDOFJOB
|
||||
+5 EXTEND
|
||||
DCA TINT
|
||||
DXCH DSPTEM1 # FOR DISPLAY
|
||||
CAF V06N34SR # DISPLAY TIME OF INTERCEPT
|
||||
TC VNDSPLY
|
||||
TC INTPRET
|
||||
JUNCTN1 CLEAR CALL
|
||||
# Page 726
|
||||
P39/79SW
|
||||
SELECTMU # SELECT MU, CLEAR FINALFLG, GO TO VN1645
|
||||
RECYCLE CALL
|
||||
PREC/TT
|
||||
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
|
||||
# GOTOP00H
|
||||
# VN1645
|
||||
|
||||
MAINRTNE STCALL TDEC1 # PRECISION UPDATE PASSIVE VEHICLE TO
|
||||
INTRPVP # TARGET TIME
|
||||
DLOAD
|
||||
TIG
|
||||
STORE INTIME
|
||||
SSP VLOAD
|
||||
SUBEXIT
|
||||
TEST3979
|
||||
# Page 727
|
||||
RATT
|
||||
CALL
|
||||
S3435.25
|
||||
TEST3979 BOFF BON
|
||||
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
|
||||
#
|
||||
# Page 728
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
#
|
||||
# P39 AND P79 CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL
|
||||
# CONDITIONS REQUIRED BY THE AGC TO MAKE A MIDCOURSE CORRECTION
|
||||
# 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 BANKCALL
|
||||
CADR AVFLAGA # THIS VEHICLE ACTIVE
|
||||
EXTEND
|
||||
DCA ATIGINC
|
||||
TC P39/P79A
|
||||
P79 TC BANKCALL
|
||||
CADR AVFLAGP # OTHER VEHICLE ACTIVE
|
||||
EXTEND
|
||||
DCA PTIGINC
|
||||
P39/P79A DXCH KT # TIME TO PREPARE FOR BURN
|
||||
TC BANKCALL
|
||||
CADR P20FLGON # SET UPDATFLG, TRACKFLG
|
||||
TC INTPRET
|
||||
# Page 729
|
||||
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
|
||||
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
|
||||
# Page 730
|
||||
# LEMPREC
|
||||
|
||||
INTRPVP STQ BOFF # PRECISION UPDATE PASSIVE VEHICLE TO
|
||||
RTRN # TDEC1
|
||||
AVFLAG
|
||||
OTHERV
|
||||
CALL
|
||||
CSMPREC
|
||||
GOTO
|
||||
RTRN
|
||||
OTHERV CALL
|
||||
LEMPREC
|
||||
GOTO
|
||||
RTRN
|
||||
|
||||
# .... VNDSPLY ....
|
||||
#
|
||||
# SUBROUTINES USED
|
||||
#
|
||||
# BANKCALL
|
||||
# GOFLASH
|
||||
# GOTOP00H
|
||||
|
||||
VNDSPLY EXTEND # FLASH DISPLAY
|
||||
QXCH RTRN
|
||||
TS VERBNOUN
|
||||
CA VERBNOUN
|
||||
TCR BANKCALL
|
||||
CADR GOFLASH
|
||||
TCF GOTOP00H # 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
|
||||
DECTWO OCT 2
|
||||
|
||||
# *** END OF KISSING .050 ***
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SYSTEM_TEST_STANDARD_LEAD_INS.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 370-372
|
||||
# Mod history: 2009-05-17 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 370
|
||||
EBANK= XSM
|
||||
|
||||
BANK 33
|
||||
SETLOC E/PROG
|
||||
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 TO 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 371
|
||||
# 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 RETURN TO CALLER.
|
||||
|
||||
# Page 372
|
||||
# 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 AND INHINT
|
||||
|
||||
BANK 33
|
||||
SETLOC E/PROG
|
||||
BANK
|
||||
|
||||
COUNT* $$/P07
|
||||
|
||||
E/JOBWAK TC JOBWAKE # ARRIVE WITH ADRES IN A.
|
||||
CS BIT11
|
||||
NDX LOCCTR
|
||||
ADS LOC # KNOCK FIXED MEMORY BIT OUT OF ADRES.
|
||||
TC RUPTREG3 # RETURN
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,347 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TAGS_FOR_RELATIVE_SETLOC.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: Jim Lawton <jim.lawton@gmail.com>
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 028-037
|
||||
# Mod history: 2009-05-16 JVL 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 28
|
||||
# TAGS FOR RELATIVE SETLOC AND BLANK BANK CARDS
|
||||
|
||||
# COUNT BANKSUM
|
||||
|
||||
# MODULE 1 CONTAINS BANKS 0 THROUGH 5
|
||||
|
||||
BLOCK 02
|
||||
RADARFF EQUALS
|
||||
FFTAG1 EQUALS
|
||||
FFTAG2 EQUALS
|
||||
FFTAG3 EQUALS
|
||||
FFTAG4 EQUALS
|
||||
FFTAG7 EQUALS
|
||||
FFTAG8 EQUALS
|
||||
FFTAG9 EQUALS
|
||||
FFTAG10 EQUALS
|
||||
FFTAG11 EQUALS
|
||||
FFTAG12 EQUALS
|
||||
FFTAG13 EQUALS
|
||||
BNKSUM 02
|
||||
|
||||
BLOCK 03
|
||||
FFTAG5 EQUALS
|
||||
FFTAG6 EQUALS
|
||||
BNKSUM 03
|
||||
|
||||
BANK 00
|
||||
DLAYJOB EQUALS
|
||||
BNKSUM 00
|
||||
|
||||
BANK 01
|
||||
RESTART EQUALS
|
||||
LOADDAP1 EQUALS
|
||||
BNKSUM 01
|
||||
|
||||
BANK 04
|
||||
R02 EQUALS
|
||||
VERB37 EQUALS
|
||||
PINBALL4 EQUALS
|
||||
CONICS1 EQUALS
|
||||
KEYRUPT EQUALS
|
||||
R36LM EQUALS
|
||||
UPDATE2 EQUALS
|
||||
E/PROG EQUALS
|
||||
AOTMARK2 EQUALS
|
||||
BNKSUM 04
|
||||
|
||||
# Page 29
|
||||
BANK 05
|
||||
FRANDRES EQUALS
|
||||
DOWNTELM EQUALS
|
||||
ABORTS1 EQUALS
|
||||
EPHEM1 EQUALS
|
||||
ASENT3 EQUALS
|
||||
BNKSUM 05
|
||||
|
||||
# MODULE 2 CONTAINS BANKS 6 THROUGH 13
|
||||
|
||||
BANK 06
|
||||
IMUCOMP EQUALS
|
||||
T4RUP EQUALS
|
||||
RCSMONT EQUALS
|
||||
MIDDGIM EQUALS
|
||||
EARTHLOC EQUALS
|
||||
BNKSUM 06
|
||||
|
||||
BANK 07
|
||||
AOTMARK1 EQUALS
|
||||
MODESW EQUALS
|
||||
ASENT2 EQUALS
|
||||
BNKSUM 07
|
||||
|
||||
BANK 10
|
||||
RTBCODES EQUALS
|
||||
DISPLAYS EQUALS
|
||||
PHASETAB EQUALS
|
||||
FLESHLOC EQUALS
|
||||
SLCTMU EQUALS
|
||||
BNKSUM 10
|
||||
|
||||
BANK 11
|
||||
ORBITAL EQUALS
|
||||
F2DPS*11 EQUALS
|
||||
INTVEL EQUALS
|
||||
BNKSUM 11
|
||||
|
||||
BANK 12
|
||||
CONICS EQUALS
|
||||
ORBITAL1 EQUALS
|
||||
# Page 30
|
||||
INTPRET2 EQUALS
|
||||
BNKSUM 12
|
||||
|
||||
BANK 13
|
||||
LATLONG EQUALS
|
||||
INTINIT EQUALS
|
||||
LEMGEOM EQUALS
|
||||
P76LOC EQUALS
|
||||
ORBITAL2 EQUALS
|
||||
ABTFLGS EQUALS
|
||||
BNKSUM 13
|
||||
|
||||
# Page 31
|
||||
# MODULE 3 CONTAINS BANKS 14 THROUGH 21
|
||||
|
||||
BANK 14
|
||||
P50S1 EQUALS
|
||||
STARTAB EQUALS
|
||||
ASENT4 EQUALS
|
||||
BNKSUM 14
|
||||
|
||||
BANK 15
|
||||
P50S EQUALS
|
||||
EPHEM EQUALS
|
||||
BNKSUM 15
|
||||
|
||||
BANK 16
|
||||
DAPS1 EQUALS
|
||||
BNKSUM 16
|
||||
|
||||
BANK 17
|
||||
DAPS2 EQUALS
|
||||
P40S3 EQUALS
|
||||
BNKSUM 17
|
||||
|
||||
BANK 20
|
||||
DAPS3 EQUALS
|
||||
LOADDAP EQUALS
|
||||
RODTRAP EQUALS
|
||||
BNKSUM 20
|
||||
|
||||
BANK 21
|
||||
DAPS4 EQUALS
|
||||
R10 EQUALS
|
||||
R11 EQUALS
|
||||
BNKSUM 21
|
||||
# Page 32
|
||||
|
||||
# MODULE 4 CONTAINS BANKS 22 THROUGH 27
|
||||
|
||||
BANK 22
|
||||
KALCMON1 EQUALS
|
||||
KALCMON2 EQUALS
|
||||
R30LOC EQUALS
|
||||
RENDEZ EQUALS
|
||||
SERV2 EQUALS
|
||||
LANDCNST EQUALS
|
||||
BNKSUM 22
|
||||
|
||||
BANK 23
|
||||
POWFLITE EQUALS
|
||||
POWFLIT1 EQUALS
|
||||
INFLIGHT EQUALS
|
||||
APOPERI EQUALS
|
||||
R61 EQUALS
|
||||
R62 EQUALS
|
||||
INTPRET1 EQUALS
|
||||
MEASINC EQUALS
|
||||
MEASINC1 EQUALS
|
||||
EXTVB1 EQUALS
|
||||
P12A EQUALS
|
||||
NORMLIZ EQUALS
|
||||
ASENT7 EQUALS
|
||||
BNKSUM 23
|
||||
|
||||
BANK 24
|
||||
PLANTIN EQUALS
|
||||
P20S EQUALS
|
||||
BNKSUM 24
|
||||
|
||||
BANK 25
|
||||
P20S1 EQUALS
|
||||
P20S2 EQUALS
|
||||
RADARUPT EQUALS
|
||||
RRLEADIN EQUALS
|
||||
R29S1 EQUALS
|
||||
PLANTIN3 EQUALS
|
||||
BNKSUM 25
|
||||
|
||||
BANK 26
|
||||
# Page 33
|
||||
P20S3 EQUALS
|
||||
BAWLANGS EQUALS
|
||||
MANUVER EQUALS
|
||||
MANUVER1 EQUALS
|
||||
PLANTIN1 EQUALS
|
||||
PLANTIN2 EQUALS
|
||||
BNKSUM 26
|
||||
|
||||
BANK 27
|
||||
TOF-FF EQUALS
|
||||
TOF-FF1 EQUALS
|
||||
P40S1 EQUALS
|
||||
VECPT EQUALS
|
||||
ASENT1 EQUALS
|
||||
SERV3 EQUALS
|
||||
BNKSUM 27
|
||||
|
||||
# Page 34
|
||||
# MODULE 5 CONTAINS BANKS 30 THROUGH 35
|
||||
|
||||
BANK 30
|
||||
LOWSUPER EQUALS
|
||||
P12 EQUALS
|
||||
ASENT EQUALS
|
||||
FCDUW EQUALS
|
||||
FLOGSUB EQUALS
|
||||
VB67A EQUALS
|
||||
ASENT5 EQUALS
|
||||
BNKSUM 30
|
||||
|
||||
BANK 31
|
||||
FTHROT EQUALS
|
||||
F2DPS*31 EQUALS
|
||||
VB67 EQUALS
|
||||
BNKSUM 31
|
||||
|
||||
BANK 32
|
||||
P20S4 EQUALS
|
||||
F2DPS*32 EQUALS
|
||||
ABORTS EQUALS
|
||||
LRS22 EQUALS
|
||||
P66LOC EQUALS
|
||||
R47 EQUALS
|
||||
SERV EQUALS
|
||||
BNKSUM 32
|
||||
|
||||
BANK 33
|
||||
SERVICES EQUALS
|
||||
R29/SERV EQUALS
|
||||
ASENT6 EQUALS
|
||||
BNKSUM 33
|
||||
|
||||
BANK 34
|
||||
STBLEORB EQUALS
|
||||
P30S1 EQUALS
|
||||
CSI/CDH1 EQUALS
|
||||
ASCFILT EQUALS
|
||||
R12STUFF EQUALS
|
||||
SERV4 EQUALS
|
||||
BNKSUM 34
|
||||
|
||||
# Page 35
|
||||
BANK 35
|
||||
CSI/CDH EQUALS
|
||||
P30S EQUALS
|
||||
GLM EQUALS
|
||||
P40S2 EQUALS
|
||||
BNKSUM 35
|
||||
|
||||
# Page 36
|
||||
# MODULE 6 CONTAINS BANKS 36 THROUGH 43
|
||||
|
||||
BANK 36
|
||||
P40S EQUALS
|
||||
BNKSUM 36
|
||||
|
||||
BANK 37
|
||||
P05P06 EQUALS
|
||||
IMU2 EQUALS
|
||||
IMU4 EQUALS
|
||||
R31 EQUALS
|
||||
IMUSUPER EQUALS
|
||||
SERV1 EQUALS
|
||||
BNKSUM 37
|
||||
|
||||
BANK 40
|
||||
PINBALL1 EQUALS
|
||||
SELFSUPR EQUALS
|
||||
PINSUPER EQUALS
|
||||
R31LOC EQUALS
|
||||
BNKSUM 40
|
||||
|
||||
BANK 41
|
||||
PINBALL2 EQUALS
|
||||
BNKSUM 41
|
||||
|
||||
BANK 42
|
||||
SBAND EQUALS
|
||||
PINBALL3 EQUALS
|
||||
BNKSUM 42
|
||||
|
||||
BANK 43
|
||||
EXTVERBS EQUALS
|
||||
SELFCHEC EQUALS
|
||||
BNKSUM 43
|
||||
|
||||
# Page 37
|
||||
|
||||
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
|
||||
|
||||
DELRSPL EQUALS SPLRET # COL PGM, ALSO CALLED BY R30 IN LUMINARY.
|
||||
|
||||
# ROPE-SPECIFIC ASSIGNS OBVIATING NEED TO CHECK COMPUTER FLAG IN DETERMINING INTEGRATION AREA ENTRIES.
|
||||
|
||||
ATOPTHIS EQUALS ATOPLEM
|
||||
ATOPOTH EQUALS ATOPCSM
|
||||
OTHPREC EQUALS CSMPREC
|
||||
MOONTHIS EQUALS LMOONFLG
|
||||
MOONOTH EQUALS CMOONFLG
|
||||
MOVATHIS EQUALS MOVEALEM
|
||||
RMM = LODPMAX
|
||||
RME = LODPMAX1
|
||||
THISPREC EQUALS LEMPREC
|
||||
THISAXIS = UNITZ
|
||||
NB1NB2 EQUALS THISAXIS # FOR R31
|
||||
ERASID EQUALS BITS2-10 # DOWNLINK ERASABLE DUMP ID
|
||||
DELAYNUM EQUALS TWO
|
||||
|
||||
@@ -0,0 +1,721 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TIME_OF_FREE_FALL.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1268-1283
|
||||
# Mod history: 2009-05-26 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2011-01-06 JL Fixed pseudo-label indentation.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1268
|
||||
# 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 1269
|
||||
# REGISTERS S1, S2 ARE UNTOUCED 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 1270
|
||||
# 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-MAJOR 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, NORMALIZED. 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 1271
|
||||
# X2 -NA, NORMCOUNT
|
||||
# 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 1272
|
||||
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-2NA) M:(-20-2NA)
|
||||
DUMPCNIC RVQ
|
||||
|
||||
# 39 W
|
||||
# Page 1273
|
||||
# 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 1274
|
||||
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 1275
|
||||
# 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 /8 ... (X < 1.0)
|
||||
#
|
||||
# CALLING SEQUENC: 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 1276
|
||||
#
|
||||
# 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+2N4)
|
||||
# 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, NORMCOUNT LEFT BY TFFCONIC
|
||||
# TFF1/ALF E:(-22-2NA) SIGNED SEMI-MAJOR 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 1277
|
||||
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 1278
|
||||
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 1279
|
||||
# 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+NR)
|
||||
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 1280
|
||||
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 1281
|
||||
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 1282
|
||||
# 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
|
||||
# MAX PROGRAM AUTOCURFIT294RRB 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 TANZIG
|
||||
#
|
||||
# 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 1283
|
||||
# TFF CONSTANTS
|
||||
|
||||
BANK 32
|
||||
|
||||
SETLOC TOF-FF1
|
||||
BANK
|
||||
|
||||
# # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ.
|
||||
#MUE = 3.990815471 E10 # M CUBE/CS SQ
|
||||
#RTMUE = 1.997702549 E5 B-18* # MODIFIED EARTH MU
|
||||
#
|
||||
# # NOTE: ADJUSTED MUE FOR NEAR EARTH TRAJ.
|
||||
#MUM = 4.902778 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) = 20909901.57 FT
|
||||
|
||||
RPAD1 = RPAD
|
||||
|
||||
R300K 2DEC 6464778 B-29 # (-29) M
|
||||
|
||||
NEARONE 2DEC .999999999
|
||||
|
||||
TFFZEROS EQUALS HI6ZEROS
|
||||
TFF1/4 EQUALS HIDP1/4
|
||||
|
||||
@@ -0,0 +1,548 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: UPDATE_PROGRAM.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1386-1396
|
||||
# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting
|
||||
# from the Luminary131/ file of the same
|
||||
# name, using Luminary099 page images.
|
||||
# 2009-06-07 RSB Added an SBANK= to account for incompatibilities
|
||||
# between YUL and yaYUL.
|
||||
# 2011-01-06 JL Fixed pseudo-label indentation.
|
||||
# 2011-05-07 JL Flag SBANK= workaround.
|
||||
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1386
|
||||
# PROGRAM NAME: P27
|
||||
# WRITTEN BY: KILROY/ DE WOLF
|
||||
#
|
||||
# MOD NO: 6
|
||||
# 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 DURINT 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 RESTROED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
|
||||
# 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 1387
|
||||
# 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. 200.,
|
||||
# ... 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 DEFINITITIONS: SCALE FACTORS:
|
||||
# Page 1388
|
||||
# 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 TERMINATEJOB
|
||||
|
||||
CA MODREG # CHECK IF UPDATE ALLOWED
|
||||
EXTEND # FIRST CHECK FOR MODREG = +0, -0
|
||||
BZF +3 # (+0 = P00, -0 = FRESHSTART)
|
||||
UPERROR TC POSTJUMP # TURN ON 'OPERATOR ERROR' LIGHT
|
||||
CADR UPERROUT +2 # GO TO COMMON UPDATE PROGRAM EXIT
|
||||
|
||||
CAE MODREG # UPDATE ALLOWED.
|
||||
CKMDMORE = UPERROR
|
||||
TS UPOLDMOD # SAVE CURRENT MAJOR MODE
|
||||
# Page 1389
|
||||
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.
|
||||
|
||||
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
|
||||
## [WORKAROUND] RSB 2009
|
||||
SBANK= PINSUPER
|
||||
## [WORKAROUND]
|
||||
EBANK= UPBUFF
|
||||
2CADR UPOUT +1
|
||||
|
||||
CAF ONE
|
||||
TS DNLSTCOD # DOWNLIST
|
||||
|
||||
TC NEWMODEX # SET MAJOR MODE = 27
|
||||
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
|
||||
# Page 1390
|
||||
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.
|
||||
|
||||
# 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
|
||||
# Page 1391
|
||||
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 TO 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 (BIT 3 OF FLAGWRD7) TO
|
||||
XCH L # INDICATE TO THE GROUND (VIA DOWNLINK)
|
||||
CAF VERIFBIT # THAT THE V33 (WHICH THE GROUND SENT TO
|
||||
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
|
||||
# Page 1392
|
||||
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
|
||||
|
||||
# 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 # SO
|
||||
TS L # A
|
||||
COM # QUICK
|
||||
DXCH -PHASE6 # PHASCHNG
|
||||
# Page 1393
|
||||
TIMEDIDR INHINT
|
||||
|
||||
CAF ZERO
|
||||
ZL # PICK UP INCRMENTER (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 DELTAOK # 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
|
||||
|
||||
DELTAOK 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
|
||||
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
|
||||
# Page 1394
|
||||
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
|
||||
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
|
||||
# Page 1395
|
||||
TS DNLSTCOD
|
||||
TC UPACTOFF # TURN OFF 'UPLINK ACTIVITY' LIGHT
|
||||
|
||||
EXTEND # KILL GROUP 6.
|
||||
DCA NEG0
|
||||
DXCH -PHASE6
|
||||
|
||||
TC ENDEXT # EXTENDED VERB EXIT
|
||||
|
||||
# VERB TO 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
|
||||
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
|
||||
# Page 1396
|
||||
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 PURPOS 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
|
||||
|
||||
@@ -0,0 +1,564 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: WAITLIST.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: Ron Burkey <info@sandroid.org>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1117-1132
|
||||
# Mod history: 2009-05-25 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2011-01-06 JL Fixed pseudo-label indentation.
|
||||
# 2011-05-07 JL Removed workarounds.
|
||||
#
|
||||
# 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-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1117
|
||||
# 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 4 BY 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 1118
|
||||
# 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 WTIH 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 1119
|
||||
EBANK= LST1 # TASK LISTS IN SWITCHED E BANK.
|
||||
|
||||
COUNT* $$/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
|
||||
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
|
||||
|
||||
# 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
|
||||
ROR SUPERBNK # ADD SBANK TO BBCON.
|
||||
TS L
|
||||
CAF DELAYEX
|
||||
TS WAITEXIT # GO TO TASKOVER AFTER TASK ENTRY.
|
||||
TCF DLY2
|
||||
|
||||
# Page 1120
|
||||
DELAYEX TCF TASKOVER -2 # RETURNS TO TASKOVER.
|
||||
|
||||
# Page 1121
|
||||
# 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
|
||||
|
||||
CKIMUSE CCS IMUCADR # DON'T DO NBDONLY IF SOMEONE ELSE IS IN
|
||||
TCF SVCT3X # IMUSTALL.
|
||||
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
|
||||
|
||||
SVCT3X TC FIXDELAY # DELAY MAX OF 2 TIMES FOR IMUZERO.
|
||||
DEC 500
|
||||
TC SVCT3 # CHECK DRIFT FLAG AGAIN.
|
||||
|
||||
# Page 1122
|
||||
# BEGIN TASK INSERTION.
|
||||
|
||||
BANK 01
|
||||
COUNT* $$/WAIT
|
||||
WAIT2 TS WAITBANK # BBANK OF CALLING PROGRAM.
|
||||
CA Q
|
||||
EXTEND
|
||||
BZMF WAITP00H
|
||||
|
||||
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 OVEFLOW 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 1123
|
||||
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 1124
|
||||
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 1125
|
||||
+4 CCS A # TEST TD - T2 + 1
|
||||
AD LST1 +7
|
||||
TCF +4
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 7
|
||||
|
||||
+4 CCS A
|
||||
WTABORT TC FILLED
|
||||
NOOP # CAN'T GET HERE
|
||||
AD ONE
|
||||
TC WTLST2
|
||||
OCT 10
|
||||
|
||||
OCT40201 OCT 40201
|
||||
|
||||
# Page 1126
|
||||
FILLED DXCH WAITEXIT
|
||||
TC BAILOUT1 # NO ROOM IN THE INN
|
||||
OCT 01203
|
||||
|
||||
# Page 1127
|
||||
# THE ENTRY TC 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
|
||||
|
||||
# C(TIME3) = 1.0 - (T1 - T)
|
||||
#
|
||||
# C(LST1) = - (T2 - T1) + 1
|
||||
# C(LST1+1) = - (T3 - T2) + 1
|
||||
# C(LST1+2) = - (T4 - T3) + 1
|
||||
# C(LST1+3) = - (T5 - T4) + 1
|
||||
# C(LST1+4) = - (T6 - T5) + 1
|
||||
#
|
||||
# C(LST2) = 2CADR TASK1
|
||||
# C(LST2+2) = 2CADR TASK2
|
||||
# C(LST2+4) = 2CADR TASK3
|
||||
# C(LST2+6) = 2CADR TASK4
|
||||
# C(LST2+8) = 2CADR TASK5
|
||||
# C(LST2+10) = 2CADR TASK6
|
||||
|
||||
# Page 1128
|
||||
# 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 WON'T 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 1129
|
||||
# RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
|
||||
|
||||
BLOCK 02
|
||||
COUNT* $$/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 1130
|
||||
# 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 ERASIBLE **
|
||||
|
||||
BLOCK 02
|
||||
EBANK= LST1
|
||||
LONGCALL DXCH LONGTIME # OBTAIN THE DELTA TIME
|
||||
|
||||
EXTEND # OBTAIN THE 2CADR
|
||||
# Page 1131
|
||||
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* $$/WAIT
|
||||
LNGCALL2 LXCH LONGEXIT +1 # SAVE THE CORRECT BB FOR RETURN
|
||||
CA TWO # OBTAIN THE RETURN ADDRESS
|
||||
ADS Q
|
||||
TS LONGEXIT
|
||||
|
||||
CA LONGTIME # CHECK FOR LEGITIMATE DELTA-TIME
|
||||
CCS A
|
||||
TCF LONGCYCL # HI-ORDER OK --> ALL IS OK.
|
||||
TCF +2 # HI-ORDER ZERO --> CHECK LO-ORDER.
|
||||
TCF LONGP00H # HI-ORDER NEG. --> NEG. DT
|
||||
+2 CA LONGTIME +1 # CHECK LO-ORDER FOR ZERO OR NEGATIVE.
|
||||
EXTEND
|
||||
BZMF LONGP00H # BAD DELTA-TIME. ABORT
|
||||
|
||||
# *** 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
|
||||
# Page 1132
|
||||
LASTTIME CA BIT14 # GET BACK THE CORRECT DELTA T FOR 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
|
||||
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
|
||||
LONGP00H DXCH LONGEXIT
|
||||
TCF +2
|
||||
WAITP00H DXCH WAITEXIT
|
||||
+2 TC P00DOO1
|
||||
OCT 01204
|
||||
|
||||
Reference in New Issue
Block a user