Merge pull request #156 from proudindiv/upstream
missing Luminary099 files retrieved from virtualagc at https://github…
This commit is contained in:
commit
e2cde29ca1
251
Luminary099/ALARM_AND_ABORT.agc
Normal file
251
Luminary099/ALARM_AND_ABORT.agc
Normal file
@ -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
|
||||||
|
|
1069
Luminary099/ASSEMBLY_AND_OPERATION_INFORMATION.agc
Normal file
1069
Luminary099/ASSEMBLY_AND_OPERATION_INFORMATION.agc
Normal file
File diff suppressed because it is too large
Load Diff
1864
Luminary099/CONIC_SUBROUTINES.agc
Normal file
1864
Luminary099/CONIC_SUBROUTINES.agc
Normal file
File diff suppressed because it is too large
Load Diff
42
Luminary099/CONTRACT_AND_APPROVALS.agc
Normal file
42
Luminary099/CONTRACT_AND_APPROVALS.agc
Normal file
@ -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
|
||||||
|
|
1459
Luminary099/DISPLAY_INTERFACE_ROUTINES.agc
Normal file
1459
Luminary099/DISPLAY_INTERFACE_ROUTINES.agc
Normal file
File diff suppressed because it is too large
Load Diff
430
Luminary099/DOWNLINK_LISTS.agc
Normal file
430
Luminary099/DOWNLINK_LISTS.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
||||||
|
|
2635
Luminary099/ERASABLE_ASSIGNMENTS.agc
Normal file
2635
Luminary099/ERASABLE_ASSIGNMENTS.agc
Normal file
File diff suppressed because it is too large
Load Diff
503
Luminary099/EXECUTIVE.agc
Normal file
503
Luminary099/EXECUTIVE.agc
Normal file
@ -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
|
||||||
|
|
1682
Luminary099/EXTENDED_VERBS.agc
Normal file
1682
Luminary099/EXTENDED_VERBS.agc
Normal file
File diff suppressed because it is too large
Load Diff
264
Luminary099/FIXED_FIXED_CONSTANT_POOL.agc
Normal file
264
Luminary099/FIXED_FIXED_CONSTANT_POOL.agc
Normal file
@ -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
|
||||||
|
|
1242
Luminary099/FRESH_START_AND_RESTART.agc
Normal file
1242
Luminary099/FRESH_START_AND_RESTART.agc
Normal file
File diff suppressed because it is too large
Load Diff
76
Luminary099/GIMBAL_LOCK_AVOIDANCE.agc
Normal file
76
Luminary099/GIMBAL_LOCK_AVOIDANCE.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
|
205
Luminary099/GROUND_TRACKING_DETERMINATION_PROGRAM.agc
Normal file
205
Luminary099/GROUND_TRACKING_DETERMINATION_PROGRAM.agc
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
# Copyright: Public domain.
|
||||||
|
# Filename: GROUND_TRACKING_DETERMINATION_PROGRAM.agc
|
||||||
|
# Purpose: Part of the source code for 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
|
||||||
|
|
418
Luminary099/IMU_COMPENSATION_PACKAGE.agc
Normal file
418
Luminary099/IMU_COMPENSATION_PACKAGE.agc
Normal file
@ -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
|
||||||
|
|
1072
Luminary099/IMU_MODE_SWITCHING_ROUTINES.agc
Normal file
1072
Luminary099/IMU_MODE_SWITCHING_ROUTINES.agc
Normal file
File diff suppressed because it is too large
Load Diff
300
Luminary099/INFLIGHT_ALIGNMENT_ROUTINES.agc
Normal file
300
Luminary099/INFLIGHT_ALIGNMENT_ROUTINES.agc
Normal file
@ -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)
|
||||||
|
|
1102
Luminary099/INTEGRATION_INITIALIZATION.agc
Normal file
1102
Luminary099/INTEGRATION_INITIALIZATION.agc
Normal file
File diff suppressed because it is too large
Load Diff
175
Luminary099/INTER-BANK_COMMUNICATION.agc
Normal file
175
Luminary099/INTER-BANK_COMMUNICATION.agc
Normal file
@ -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
|
||||||
|
|
3075
Luminary099/INTERPRETER.agc
Normal file
3075
Luminary099/INTERPRETER.agc
Normal file
File diff suppressed because it is too large
Load Diff
117
Luminary099/INTERRUPT_LEAD_INS.agc
Normal file
117
Luminary099/INTERRUPT_LEAD_INS.agc
Normal file
@ -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
|
||||||
|
|
229
Luminary099/KALCMANU_STEERING.agc
Normal file
229
Luminary099/KALCMANU_STEERING.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
|
132
Luminary099/KEYRUPT_UPRUPT.agc
Normal file
132
Luminary099/KEYRUPT_UPRUPT.agc
Normal file
@ -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
|
||||||
|
|
308
Luminary099/LATITUDE_LONGITUDE_SUBROUTINES.agc
Normal file
308
Luminary099/LATITUDE_LONGITUDE_SUBROUTINES.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
|
196
Luminary099/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
Normal file
196
Luminary099/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
Normal file
@ -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 ***
|
165
Luminary099/MAIN.agc
Normal file
165
Luminary099/MAIN.agc
Normal file
@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
495
Luminary099/MEASUREMENT_INCORPORATION.agc
Normal file
495
Luminary099/MEASUREMENT_INCORPORATION.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
|
977
Luminary099/ORBITAL_INTEGRATION.agc
Normal file
977
Luminary099/ORBITAL_INTEGRATION.agc
Normal file
@ -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
|
||||||
|
|
5182
Luminary099/P20-P25.agc
Normal file
5182
Luminary099/P20-P25.agc
Normal file
File diff suppressed because it is too large
Load Diff
1764
Luminary099/P34-35_P74-75.agc
Normal file
1764
Luminary099/P34-35_P74-75.agc
Normal file
File diff suppressed because it is too large
Load Diff
1471
Luminary099/P40-P47.agc
Normal file
1471
Luminary099/P40-P47.agc
Normal file
File diff suppressed because it is too large
Load Diff
2341
Luminary099/P51-P53.agc
Normal file
2341
Luminary099/P51-P53.agc
Normal file
File diff suppressed because it is too large
Load Diff
164
Luminary099/P76.agc
Normal file
164
Luminary099/P76.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
411
Luminary099/PHASE_TABLE_MAINTENANCE.agc
Normal file
411
Luminary099/PHASE_TABLE_MAINTENANCE.agc
Normal file
@ -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.
|
||||||
|
|
||||||
|
|
3798
Luminary099/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
Normal file
3798
Luminary099/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
Normal file
File diff suppressed because it is too large
Load Diff
906
Luminary099/PINBALL_NOUN_TABLES.agc
Normal file
906
Luminary099/PINBALL_NOUN_TABLES.agc
Normal file
@ -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
|
||||||
|
|
391
Luminary099/PLANETARY_INERTIAL_ORIENTATION.agc
Normal file
391
Luminary099/PLANETARY_INERTIAL_ORIENTATION.agc
Normal file
@ -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)
|
||||||
|
|
447
Luminary099/POWERED_FLIGHT_SUBROUTINES.agc
Normal file
447
Luminary099/POWERED_FLIGHT_SUBROUTINES.agc
Normal file
@ -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
|
||||||
|
|
465
Luminary099/R30.agc
Normal file
465
Luminary099/R30.agc
Normal file
@ -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)
|
||||||
|
|
267
Luminary099/R31.agc
Normal file
267
Luminary099/R31.agc
Normal file
@ -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)
|
||||||
|
|
587
Luminary099/R60_62.agc
Normal file
587
Luminary099/R60_62.agc
Normal file
@ -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
|
||||||
|
|
325
Luminary099/RESTARTS_ROUTINE.agc
Normal file
325
Luminary099/RESTARTS_ROUTINE.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
|
297
Luminary099/RESTART_TABLES.agc
Normal file
297
Luminary099/RESTART_TABLES.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
|
224
Luminary099/SERVICE_ROUTINES.agc
Normal file
224
Luminary099/SERVICE_ROUTINES.agc
Normal file
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
69
Luminary099/SINGLE_PRECISION_SUBROUTINES.agc
Normal file
69
Luminary099/SINGLE_PRECISION_SUBROUTINES.agc
Normal file
@ -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.
|
||||||
|
|
||||||
|
|
441
Luminary099/STABLE_ORBIT.agc
Normal file
441
Luminary099/STABLE_ORBIT.agc
Normal file
@ -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 ***
|
||||||
|
|
||||||
|
|
||||||
|
|
125
Luminary099/SYSTEM_TEST_STANDARD_LEAD_INS.agc
Normal file
125
Luminary099/SYSTEM_TEST_STANDARD_LEAD_INS.agc
Normal file
@ -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
|
||||||
|
|
1354
Luminary099/T4RUPT_PROGRAM.agc
Normal file
1354
Luminary099/T4RUPT_PROGRAM.agc
Normal file
File diff suppressed because it is too large
Load Diff
347
Luminary099/TAGS_FOR_RELATIVE_SETLOC.agc
Normal file
347
Luminary099/TAGS_FOR_RELATIVE_SETLOC.agc
Normal file
@ -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
|
||||||
|
|
721
Luminary099/TIME_OF_FREE_FALL.agc
Normal file
721
Luminary099/TIME_OF_FREE_FALL.agc
Normal file
@ -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
|
||||||
|
|
548
Luminary099/UPDATE_PROGRAM.agc
Normal file
548
Luminary099/UPDATE_PROGRAM.agc
Normal file
@ -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
|
||||||
|
|
564
Luminary099/WAITLIST.agc
Normal file
564
Luminary099/WAITLIST.agc
Normal file
@ -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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user