Reorganized files to separate Luminary099 source code from Comanche055 source code
This commit is contained in:
511
Luminary099/AGC_BLOCK_TWO_SELF_CHECK.s
Normal file
511
Luminary099/AGC_BLOCK_TWO_SELF_CHECK.s
Normal file
@ -0,0 +1,511 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: AGC_BLOCK_TWO_SELF_CHECK.agc
|
||||
# Purpose: Part of the source code for Luminary 1A build 099.
|
||||
# It is part of the source code for the Lunar Module's (LM)
|
||||
# Apollo Guidance Computer (AGC), for Apollo 11.
|
||||
# Assembler: yaYUL
|
||||
# Contact: Onno Hommes <ohommes@cmu.edu>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 1284-1293
|
||||
# Mod history: 2009-05-27 OH Transcribed from page images.
|
||||
#
|
||||
# This source code has been transcribed or otherwise adapted from
|
||||
# digitized images of a hardcopy from the MIT Museum. The digitization
|
||||
# was performed by Paul Fjeld, and arranged for by Deborah Douglas of
|
||||
# the Museum. Many thanks to both. The images (with suitable reduction
|
||||
# in storage size and consequent reduction in image quality as well) are
|
||||
# available online at www.ibiblio.org/apollo. If for some reason you
|
||||
# find that the images are illegible, contact me at info@sandroid.org
|
||||
# about getting access to the (much) higher-quality images which Paul
|
||||
# actually created.
|
||||
#
|
||||
# Notations on the hardcopy document read, in part:
|
||||
#
|
||||
# Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
|
||||
# 16:27 JULY 14, 1969
|
||||
|
||||
# Page 1284
|
||||
# PROGRAM DESCRIPTION DATE: 20 DECEMBER 1967
|
||||
# PROGRAM NAME -- SELF-CHECK LOG SECTION: AGC BLOCK TWO SELF-CHECK
|
||||
# MOD NO -- 1 ASSEMBLY SUBROUTINE UTILITYM REV 25
|
||||
# MOD BY -- GAUNTT
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
# PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
|
||||
# PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
|
||||
# STARTING VERB.
|
||||
#
|
||||
# THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
|
||||
#
|
||||
# THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
|
||||
#
|
||||
# IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
|
||||
# FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
|
||||
#
|
||||
# THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
|
||||
# A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
|
||||
# OCTAL, TO LOAD INTO SMODE.
|
||||
# +-4 ERASABLE MEMORY
|
||||
# +-5 FIXED MEMORY
|
||||
# +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
|
||||
# -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
|
||||
# +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
|
||||
#
|
||||
# WARNINGS
|
||||
# USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
|
||||
# SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
# TO CALL SELF-CHECK KEY IN
|
||||
# V 21 N 27 E OPTION NUMBER E
|
||||
# TO CALL SHOW-BANKSUM KEY IN
|
||||
# V 91 E DISPLAYS FIRST BANK
|
||||
# V 33 E PROCEED, DISPLAYS NEXT BANK
|
||||
#
|
||||
# EXIT MODES, NORMAL AND ALARM
|
||||
# SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
|
||||
# COMPUTER INTO BACKUP IDLE LOOP, - OPTIONS NUMBERS RESTART THE OPTION.
|
||||
#
|
||||
# THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
|
||||
#
|
||||
# SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP.
|
||||
#
|
||||
# OUTPUT
|
||||
# Page 1285
|
||||
# SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
|
||||
# TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
|
||||
# INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
|
||||
# IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
|
||||
# INITIATED FRESH START (SLAP1).
|
||||
#
|
||||
# SHOW-BANKSUM STARTING WTIH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
|
||||
# THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED
|
||||
# ACCOMPLISHED BY FRESH START
|
||||
# SMODE SET TO +0
|
||||
#
|
||||
# DEBRIS
|
||||
# ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
|
||||
# EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
|
||||
# E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
|
||||
|
||||
BANK 25
|
||||
SETLOC SELFCHEC
|
||||
BANK
|
||||
|
||||
COUNT* $$/SELF
|
||||
SBIT1 EQUALS BIT1
|
||||
SBIT2 EQUALS BIT2
|
||||
SBIT3 EQUALS BIT3
|
||||
SBIT4 EQUALS BIT4
|
||||
SBIT5 EQUALS BIT5
|
||||
SBIT6 EQUALS BIT6
|
||||
SBIT7 EQUALS BIT7
|
||||
SBIT8 EQUALS BIT8
|
||||
SBIT9 EQUALS BIT9
|
||||
SBIT10 EQUALS BIT10
|
||||
SBIT11 EQUALS BIT11
|
||||
SBIT12 EQUALS BIT12
|
||||
SBIT13 EQUALS BIT13
|
||||
SBIT14 EQUALS BIT14
|
||||
SBIT15 EQUALS BIT15
|
||||
|
||||
S+ZERO EQUALS ZERO
|
||||
S+1 EQUALS BIT1
|
||||
S+2 EQUALS BIT2
|
||||
S+3 EQUALS THREE
|
||||
S+4 EQUALS FOUR
|
||||
S+5 EQUALS FIVE
|
||||
S+6 EQUALS SIX
|
||||
# Page 1286
|
||||
S+7 EQUALS SEVEN
|
||||
S8BITS EQUALS LOW8 # 00377
|
||||
CNTRCON = OCT50 # USED IN CNTRCHK
|
||||
ERASCON1 OCTAL 00061 # USED IN ERASCHK
|
||||
ERASCON2 OCTAL 01373 # USED IN ERASCHK
|
||||
ERASCON6 = OCT1400 # USED IN ERASCHK
|
||||
ERASCON3 OCTAL 01461 # USED IN ERASCHK
|
||||
ERASCON4 OCTAL 01773 # USED IN ERASCHK
|
||||
S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK
|
||||
SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK
|
||||
-MAXADRS = HI5 # FOR ROPECHK
|
||||
SIXTY OCTAL 00060
|
||||
SUPRCON OCTAL 60017 # USED IN ROPECHK
|
||||
S13BITS OCTAL 17777
|
||||
CONC+S1 OCTAL 25252 # USED IN CYCLSHFT
|
||||
CONC+S2 OCTAL 52400 # USED IN CYCLSHFT
|
||||
ERASCON5 OCTAL 76777
|
||||
S-7 = OCT77770
|
||||
S-4 EQUALS NEG4
|
||||
S-3 EQUALS NEG3
|
||||
S-2 EQUALS NEG2
|
||||
S-1 EQUALS NEGONE
|
||||
S-ZERO EQUALS NEG0
|
||||
|
||||
EBANK= LST1
|
||||
ADRS1 ADRES SKEEP1
|
||||
SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT
|
||||
# IN SELFRET WHEN GOING FROM SELFCHK TO
|
||||
# SHOWSUM AND PUT IN SKEEP1 WHEN GOING
|
||||
# FROM SHOWSUM TO SELF-CHECK.
|
||||
|
||||
PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
|
||||
EXTEND
|
||||
BZF ERRORS # NO
|
||||
EXTEND
|
||||
DCA SKEEP5
|
||||
INDEX SKEEP7
|
||||
DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS
|
||||
CA S+ZERO
|
||||
TS ERESTORE
|
||||
ERRORS INHINT
|
||||
CA Q
|
||||
TS SFAIL # SAVE Q FOR FAILURE LOCATION
|
||||
TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT
|
||||
INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
|
||||
TCALARM2 TC ALARM2
|
||||
OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR
|
||||
CCS SMODE
|
||||
SIDLOOP CA S+ZERO
|
||||
TS SMODE
|
||||
# Page 1287
|
||||
TC SELFCHK # GO TO IDLE LOOP
|
||||
TC SFAIL # CONTINUE WITH SELF-CHECK
|
||||
|
||||
-1CHK CCS A
|
||||
TCF PRERRORS
|
||||
TCF PRERRORS
|
||||
CCS A
|
||||
TCF PRERRORS
|
||||
TC Q
|
||||
|
||||
SMODECHK EXTEND
|
||||
QXCH SKEEP1
|
||||
TC CHECKNJ # CHECK FOR NEW JOB
|
||||
CCS SMODE
|
||||
TC SOPTIONS
|
||||
TC SMODECHK +2 # TO BACKUP IDLE LOOP
|
||||
TC SOPTIONS
|
||||
INCR SCOUNT
|
||||
TC SKEEP1 # CONTINUE WITH SELF-CHECK
|
||||
|
||||
SOPTIONS AD S-7
|
||||
EXTEND
|
||||
BZMF +2 # FOR OPTIONS BELOW NINE.
|
||||
BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP.
|
||||
INCR SCOUNT # FOR OPTIONS BELOW NINE.
|
||||
AD S+7
|
||||
|
||||
INDEX A
|
||||
TC SOPTION1
|
||||
SOPTION1 TC SKEEP1 # WAS TC+TCF
|
||||
SOPTION2 TC SKEEP1 # WAS IN:OUT1
|
||||
SOPTION3 TC SKEEP1
|
||||
SOPTION4 TC ERASCHK
|
||||
SOPTION5 TC ROPECHK
|
||||
SOPTION6 TC SKEEP1
|
||||
SOPTION7 TC SKEEP1
|
||||
SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK
|
||||
|
||||
CHECKNJ EXTEND
|
||||
QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
|
||||
TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
|
||||
CADR ADVAN
|
||||
|
||||
SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE
|
||||
|
||||
# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
|
||||
# SKEEP6 HOLDS B(X+1).
|
||||
# SKEEP5 HOLDS B(X).
|
||||
# SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ
|
||||
# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
|
||||
# Page 1288
|
||||
# SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
|
||||
#
|
||||
# ERASCHK TAKES APPROXIMATELY 7 SECONDS.
|
||||
|
||||
ERASCHK CA S+1
|
||||
TS SKEEP2
|
||||
0EBANK CA S+ZERO
|
||||
TS EBANK
|
||||
CA ERASCON3 # 01461
|
||||
TS SKEEP7 # STARTING ADDRESS
|
||||
CA S10BITS # 01777
|
||||
TS SKEEP3 # LAST ADDRESS CHECKED
|
||||
TC ERASLOOP
|
||||
|
||||
E134567B CA ERASCON6 # 01400
|
||||
TS SKEEP7 # STARTING ADDRESS
|
||||
CA S10BITS # 01777
|
||||
TS SKEEP3 # LAST ADDRESS CHECKED
|
||||
TC ERASLOOP
|
||||
|
||||
2EBANK CA ERASCON6 # 01400
|
||||
TS SKEEP7 # STARTING ADDRESS
|
||||
CA ERASCON4 # 01773
|
||||
TS SKEEP3 # LAST ADDRESS CHECKED
|
||||
TC ERASLOOP
|
||||
|
||||
NOEBANK TS SKEEP2 # +0
|
||||
CA ERASCON1 # 00061
|
||||
TS SKEEP7 # STARTING ADDRESS
|
||||
CA ERASCON2 # 01373
|
||||
TS SKEEP3 # LAST ADDRESS CHECKED
|
||||
|
||||
ERASLOOP INHINT
|
||||
CA EBANK # STORES C(EBANK)
|
||||
TS SKEEP4
|
||||
EXTEND
|
||||
NDX SKEEP7
|
||||
DCA 0000
|
||||
DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
|
||||
CA SKEEP7
|
||||
TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
|
||||
TS L
|
||||
INCR L
|
||||
NDX A
|
||||
DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1
|
||||
NDX SKEEP7
|
||||
CS 0001 # CS X+1
|
||||
NDX SKEEP7
|
||||
AD 0000 # AD X
|
||||
TC -1CHK
|
||||
CA ERESTORE # HAS ERASABLE BEEN RESTORED
|
||||
EXTEND
|
||||
# Page 1289
|
||||
BZF ELOOPFIN # YES, EXIT ERASLOOP.
|
||||
EXTEND
|
||||
NDX SKEEP7
|
||||
DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1
|
||||
NDX SKEEP7
|
||||
DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1
|
||||
NDX SKEEP7
|
||||
CS 0000 # CS X
|
||||
NDX SKEEP7
|
||||
AD 0001 # AD X+1
|
||||
TC -1CHK
|
||||
CA ERESTORE # HAS ERASABLE BEEN RESTORED
|
||||
EXTEND
|
||||
BZF ELOOPFIN # YES, EXIT ERASLOOP.
|
||||
EXTEND
|
||||
DCA SKEEP5
|
||||
NDX SKEEP7
|
||||
DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1
|
||||
CA S+ZERO
|
||||
TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
|
||||
ELOOPFIN RELINT
|
||||
TC CHECKNJ # CHECK FOR NEW JOB
|
||||
CA SKEEP4 # REPLACES B(EBANK)
|
||||
TS EBANK
|
||||
INCR SKEEP7
|
||||
CS SKEEP7
|
||||
AD SKEEP3
|
||||
EXTEND
|
||||
BZF +2
|
||||
TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
|
||||
CCS SKEEP2
|
||||
TC NOEBANK
|
||||
INCR SKEEP2 # PUT +1 IN SKEEP2.
|
||||
CA EBANK
|
||||
AD SBIT9
|
||||
TS EBANK
|
||||
AD ERASCON5 # 76777, CHECK FOR BANK E2
|
||||
EXTEND
|
||||
BZF 2EBANK
|
||||
CCS EBANK
|
||||
TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
|
||||
CA ERASCON6 # END OF ERASCHK
|
||||
TS EBANK
|
||||
|
||||
# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
|
||||
# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
|
||||
|
||||
CNTRCHK CA CNTRCON # 00050
|
||||
CNTRLOOP TS SKEEP2
|
||||
AD SBIT4 # +10 OCTAL
|
||||
INDEX A
|
||||
CS 0000
|
||||
# Page 1290
|
||||
CCS SKEEP2
|
||||
TC CNTRLOOP
|
||||
|
||||
# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
|
||||
|
||||
CYCLSHFT CA CONC+S1 # 25252
|
||||
TS CYR # C(CYR) = 12525
|
||||
TS CYL # C(CYL) = 52524
|
||||
TS SR # C(SR) = 12525
|
||||
TS EDOP # C(EDOP) = 00125
|
||||
AD CYR # 37777 C(CYR) = 45252
|
||||
AD CYL # 00-12524 C(CYL) = 25251
|
||||
AD SR # 00-25251 C(SR) = 05252
|
||||
AD EDOP # 00-25376 C(EDOP) = +0
|
||||
AD CONC+S2 # C(CONC+S2) = 52400
|
||||
TC -1CHK
|
||||
AD CYR # 45252
|
||||
AD CYL # 72523
|
||||
AD SR # 77775
|
||||
AD EDOP # 77775
|
||||
AD S+1 # 77776
|
||||
TC -1CHK
|
||||
|
||||
INCR SCOUNT +1
|
||||
TC SMODECHK
|
||||
|
||||
# SKEEP1 HOLDS SUM
|
||||
# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
|
||||
# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
|
||||
# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
|
||||
# (04000 TO 07777 IN FXFX BANKS)
|
||||
# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
|
||||
# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
|
||||
# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
|
||||
# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
|
||||
# SKEEP7 CONTROLS WHEN ROUTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
|
||||
|
||||
ROPECHK CA S-ZERO # *
|
||||
TS SKEEP6 # * -0 FOR ROPECHK
|
||||
STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK
|
||||
|
||||
TS SKEEP4 # BANK NUMBER
|
||||
CA S+1
|
||||
COMMFX TS SKEEP7
|
||||
CA S+ZERO
|
||||
TS SKEEP1
|
||||
TS SKEEP3
|
||||
CA S+1
|
||||
TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
|
||||
COMADRS CA SKEEP4
|
||||
TS L # TO SET SUPER BANK
|
||||
MASK HI5
|
||||
# Page 1291
|
||||
AD SKEEP3
|
||||
TC SUPDACAL # SUPER DATA CALL
|
||||
TC ADSUM
|
||||
AD SBIT11 # 02000
|
||||
TC ADRSCHK
|
||||
|
||||
FXFX CS A
|
||||
TS SKEEP7
|
||||
EXTEND
|
||||
BZF +3
|
||||
CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02
|
||||
TC +2
|
||||
CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03
|
||||
TS SKEEP3
|
||||
CA S+ZERO
|
||||
TS SKEEP1
|
||||
CA S+1
|
||||
TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
|
||||
FXADRS INDEX SKEEP3
|
||||
CA 0000
|
||||
TC ADSUM
|
||||
TC ADRSCHK
|
||||
|
||||
ADSUM TS SKEEP2
|
||||
AD SKEEP1
|
||||
TS SKEEP1
|
||||
CAF S+ZERO
|
||||
AD SKEEP1
|
||||
TS SKEEP1
|
||||
CS SKEEP2
|
||||
AD SKEEP3
|
||||
TC Q
|
||||
|
||||
ADRSCHK LXCH A
|
||||
CA SKEEP3
|
||||
MASK LOW10 # RELATIVE ADDRESS
|
||||
AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
|
||||
EXTEND
|
||||
BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS.
|
||||
CCS SKEEP5 # IS CHECKSUM FINISHED
|
||||
TC +3 # NO
|
||||
TC +2 # NO
|
||||
TC SOPTION # GO TO ROPECHK SHOWSUM OPTION
|
||||
CCS L # -0 MEANS A TC SELF WORD.
|
||||
TC CONTINU
|
||||
TC CONTINU
|
||||
TC CONTINU
|
||||
CCS SKEEP5
|
||||
TC CONTINU +1
|
||||
CA S-1
|
||||
# Page 1292
|
||||
TC CONTINU +1 # AD IN THE BUGGER WORD
|
||||
CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
|
||||
TS SKEEP5
|
||||
CCS SKEEP6 # *
|
||||
CCS NEWJOB # * +1, SHOWSUM
|
||||
TC CHANG1 # *
|
||||
TC +2 # *
|
||||
TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK
|
||||
|
||||
ADRS+1 INCR SKEEP3
|
||||
CCS SKEEP7
|
||||
TC COMADRS
|
||||
TC COMADRS
|
||||
TC FXADRS
|
||||
TC FXADRS
|
||||
|
||||
NXTBNK CS SKEEP4
|
||||
AD LSTBNKCH # LAST BANK TO BE CHECKED
|
||||
EXTEND
|
||||
BZF ENDSUMS # END OF SUMMING OF BANKS.
|
||||
CA SKEEP4
|
||||
AD SBIT11
|
||||
TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
|
||||
TC CHKSUPR
|
||||
17TO20 CA SBIT15
|
||||
ADS SKEEP4 # SET FOR BANK 20
|
||||
TC GONXTBNK
|
||||
CHKSUPR MASK HI5
|
||||
EXTEND
|
||||
BZF NXTSUPR # INCREMENT SUPER BANK
|
||||
27TO30 AD S13BITS
|
||||
EXTEND
|
||||
BZF +2 # BANK SET FOR 30
|
||||
TC GONXTBNK
|
||||
CA SIXTY # FIRST SUPER BANK
|
||||
ADS SKEEP4
|
||||
TC GONXTBNK
|
||||
NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL
|
||||
ADS SKEEP4 # ERC BIT OF TEH 37 TO 40 ADVANCE.
|
||||
GONXTBNK CCS SKEEP7
|
||||
TC COMMFX
|
||||
CA S+1
|
||||
TC FXFX
|
||||
CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS.
|
||||
TC COMMFX
|
||||
|
||||
SOPTION CA SKEEP4
|
||||
MASK HI5 # = BANK BITS
|
||||
TC LEFT5
|
||||
TS L # BANK NUMBER BEFORE SUPER BANK
|
||||
# Page 1293
|
||||
CA SKEEP4
|
||||
MASK S8BITS # = SUPER BANK BITS
|
||||
EXTEND
|
||||
BZF SOPT # BEFORE SUPER BANK
|
||||
TS SR # SUPER BANK NECESSARY
|
||||
CA L
|
||||
MASK SEVEN
|
||||
AD SR
|
||||
TS L # BANK NUMBER WITH SUPER BANK
|
||||
SOPT CA SKEEP6 # *
|
||||
EXTEND # *
|
||||
BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK.
|
||||
TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
|
||||
CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE.
|
||||
TC +2
|
||||
TC +2
|
||||
AD S+1
|
||||
TS SKEEP1
|
||||
BNKCHK CS L # = - BANK NUMBER
|
||||
AD SKEEP1
|
||||
AD S-1
|
||||
TC -1CHK # CHECK SUM
|
||||
TC NXTBNK
|
||||
|
||||
EBANK= NEWJOB
|
||||
LSTBNKCH BBCON* # * CONSTANT, LAST BANK.
|
||||
|
230
Luminary099/AGS_INITIALIZATION.s
Normal file
230
Luminary099/AGS_INITIALIZATION.s
Normal file
@ -0,0 +1,230 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: AGS_INITIALIZATION.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: 206-210
|
||||
# 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 206
|
||||
|
||||
# PROGRAM NAME: AGS INITIALIZATION (R47)
|
||||
#
|
||||
# WRITTEN BY: RHODE/KILROY/FOLLETT
|
||||
#
|
||||
# MOD NO.: 0
|
||||
# DATE: 23 MARCH 1967
|
||||
# MOD BY: KILROY
|
||||
#
|
||||
# MOD NO.: 1
|
||||
# DATE: 28 OCTOBER 1967
|
||||
# MOD BY: FOLLETT
|
||||
#
|
||||
# FUNCT. DESC.: (1) TO PROVIDE THE AGS ABORT ELECTRONICS ASSEMBLY (AEA) WITH THE LEM AND CSM STATE VECTORS
|
||||
# (POSITION,VELOCITY,TIME) IN LEM IMU COORDINATES BY MEANS OF THE LGC DIGITAL DOWNLINK.
|
||||
#
|
||||
# (2) TO ZERO THE ICDU, LGC, AND AEA GIMBAL ANGLE COUNTER SIMULTANEOUSLY IN ORDER TO ESTABLISH A
|
||||
# COMMON ZERO REFERENCE FOR THE MEASUREMENT OF GIMBAL (EULER) ANGLES WHICH DEFINE LEM ATTITUDE
|
||||
#
|
||||
# (3) TO ESTABLISH THE GROUND ELAPSED TIME OF AEA CLOCK ZERO. (IF AN AEA CLOCK ZERO IS
|
||||
# REQUESTED DURING THIS PROGRAM
|
||||
#
|
||||
# LOG SECTION: AGS INITIALIZATION
|
||||
#
|
||||
# CALLING SEQ: PROGRAM IS ENTERED WHEN ASTRONAUT KEYS V47E ON DSKY.
|
||||
# R47 MAY BE CALLED AT ANY TIME EXCEPT WHEN ANOTHER EXTENDED VERB IS IN PROGRESS
|
||||
#
|
||||
# SUBROUTINES
|
||||
# CALLED:
|
||||
#
|
||||
# NORMAL EXIT: ENDEXT
|
||||
#
|
||||
# ALARM/ABORT: ALARM -- BAD REFSMMAT -- CODE:220
|
||||
# OPERATOR ERROR IF V47 SELECTED DURING ANOTHER EXTENDED VERB.
|
||||
#
|
||||
# ERASABLES
|
||||
# USED: SAMPTIME (2) TIME OF :ENTER: KEYSTROKE
|
||||
# AGSK (2) GROUND ELAPSED TIME OF THE AEA CLOCK :ZERO:
|
||||
# AGSBUFF (140) CONTAINS AGS INITIALIZATION DATA (SEE :OUTPUT: BELOW)
|
||||
# AGSWORD (1) PREVIOUS DOWNLIST SAVED HERE
|
||||
|
||||
EBANK= AGSBUFF
|
||||
|
||||
BANK 40
|
||||
SETLOC R47
|
||||
BANK
|
||||
|
||||
COUNT* $$/R47
|
||||
|
||||
AGSINIT CAF REFSMBIT
|
||||
MASK FLAGWRD3 # CHECK REFSMFLG.
|
||||
CCS A
|
||||
# Page 207
|
||||
TC REDSPTEM # REFSMMAT IS OK
|
||||
TC ALARM # REFSMMAT IS BAD
|
||||
OCT 220
|
||||
TC ENDEXT
|
||||
|
||||
NEWAGS EXTEND
|
||||
DCA SAMPTIME # TIME OF THE :ENTER: KEYSTROKE
|
||||
DXCH AGSK # BECOMES NEW AEA CLOCK :ZERO:
|
||||
|
||||
REDSPTEM EXTEND
|
||||
DCA AGSK
|
||||
DXCH DSPTEMX
|
||||
AGSDISPK CAF V06N16
|
||||
TC BANKCALL # R1 = 00XXX. HRS., R2 = 000XX MIN.,
|
||||
CADR GOMARKF # R3 = 0XX.XX SEC.
|
||||
TC ENDEXT # TERMINATE RETURN
|
||||
TC AGSVCALC # PROCEED RETURN
|
||||
CS BIT6 # IS ENTER VIA A V32
|
||||
AD MPAC
|
||||
EXTEND
|
||||
BZF NEWAGS # YES, USE KEYSTROKE TIME FOR NEW AGSK
|
||||
|
||||
EXTEND # NO, NEW AGSK LOADED VIA V25
|
||||
DCA DSPTEMX # LOADED INTO DSPTEMX BY KEYING
|
||||
TC REDSPTEM -1 # V25E FOLLOWED BY HRS.,MINS.,SECS.
|
||||
# DISPLAY THE NEW K.
|
||||
|
||||
AGSVCALC TC INTPRET
|
||||
SET
|
||||
NODOFLAG # DON'T ALLOW V37
|
||||
SET EXIT
|
||||
XDSPFLAG
|
||||
|
||||
CAF V06N16
|
||||
TC BANKCALL
|
||||
CADR EXDSPRET
|
||||
|
||||
TC INTPRET # EXTRAPOLATE LEM AND CSM STATE VECTORS
|
||||
RTB # TO THE PRESENT TIME
|
||||
LOADTIME # LOAD MPAC WITH TIME2,TIME1
|
||||
STCALL TDEC1 # CALCULATE LEM STATE VECTOR
|
||||
LEMPREC
|
||||
CALL # CALL ROUTINE TO CONVERT TO SM COORDS AND
|
||||
SCALEVEC # PROVIDE PROPER SCALING
|
||||
STODL AGSBUFF # (LEMPREC AND CSMPREC LEAVE TDEC1 IN TAT)
|
||||
TAT # TAT = TIME TO WHICH RATT1 AND VATT1 ARE
|
||||
STCALL TDEC1 # COMPUTED (CSEC SINCE CLOCK START B-28).
|
||||
CSMPREC # CALCULATE CSM STATE VECTOR FOR SAME TIME
|
||||
CALL
|
||||
SCALEVEC
|
||||
# Page 208
|
||||
STODL AGSBUFF +6
|
||||
TAT
|
||||
DSU DDV # CALCULATE AND STORE THE TIME
|
||||
AGSK
|
||||
TSCALE
|
||||
STORE AGSBUFF +12D
|
||||
EXIT
|
||||
|
||||
CAF LAGSLIST
|
||||
TS DNLSTCOD
|
||||
|
||||
CAF 20SEC # DELAY FOR 20 SEC WHILE THE AGS
|
||||
TC BANKCALL # DOWNLIST IS TRANSMITTED
|
||||
CADR DELAYJOB
|
||||
|
||||
CA AGSWORD
|
||||
TS DNLSTCOD # RETURN TO THE OLD DOWNLIST
|
||||
CAF IMUSEBIT
|
||||
MASK FLAGWRD0 # CHECK IMUSE FLAG.
|
||||
CCS A
|
||||
TC AGSEND # IMU IS BEING USED -- DO NOT ZERO
|
||||
CKSTALL CCS IMUCADR # CHECK FOR IMU USAGE WHICH AVOIDS THE
|
||||
TCF +3 # IMUSE BIT: I.E., IMU COMPENSATION.
|
||||
TCF +6 # FREE. GO AHEAD WITH THE IMU ZERO.
|
||||
TCF +1
|
||||
+3 CAF TEN # WAIT .1 SEC AND TRY AGAIN.
|
||||
TC BANKCALL
|
||||
CADR DELAYJOB
|
||||
TCF CKSTALL
|
||||
|
||||
+6 TC BANKCALL # IMU IS NOT IN USE
|
||||
CADR IMUZERO # SET IMU ZERO DISCRETE FOR 320 MSECS.
|
||||
TC BANKCALL # WAIT 3 SEC FOR COUNTERS TO INCREMENT
|
||||
CADR IMUSTALL
|
||||
TC AGSEND
|
||||
AGSEND TC DOWNFLAG # ALLOW V37
|
||||
ADRES NODOFLAG
|
||||
|
||||
CAF V50N16
|
||||
TC BANKCALL
|
||||
CADR GOMARK3
|
||||
TCF ENDEXT
|
||||
TCF ENDEXT
|
||||
TC ENDEXT
|
||||
|
||||
SCALEVEC VLOAD MXV
|
||||
VATT1
|
||||
REFSMMAT
|
||||
VXSC VSL2
|
||||
VSCALE
|
||||
# Page 209
|
||||
VAD VAD # THIS SECTION ROUNDS THE VECTOR, AND
|
||||
AGSRND1 # CORRECTS FOR THE FACT THAT THE AGS
|
||||
AGSRND2 # IS A 2'S COMPLEMENT MACHINE WHILE THE
|
||||
RTB # LGC IS A 1'S COMPLEMENT MACHINE.
|
||||
VECSGNAG
|
||||
STOVL VATT1
|
||||
RATT1
|
||||
MXV VXSC
|
||||
REFSMMAT
|
||||
RSCALE
|
||||
VSL8 VAD # AGAIN THIS SECTION ROUNDS. TWO VECTORS
|
||||
AGSRND1 # ARE ADDED TO DEFEAT ALSIGNAG IN THE
|
||||
VAD RTB # CASE OF A HIGH-ORDER ZERO COUPLED WITH
|
||||
AGSRND2 # A LOW ORDER NEGATIVE PART.
|
||||
VECSGNAG
|
||||
LXA,1
|
||||
VATT1
|
||||
SXA,1 LXA,1
|
||||
MPAC +1
|
||||
VATT1 +2
|
||||
SXA,1 LXA,1
|
||||
MPAC +4
|
||||
VATT1 +4
|
||||
SXA,1 RVQ
|
||||
MPAC +6
|
||||
|
||||
LAGSLIST = ONE
|
||||
V01N14 VN 0114
|
||||
V50N00A VN 5000
|
||||
V00N25 EQUALS OCT31
|
||||
V06N16 VN 0616
|
||||
V00N34 EQUALS 34DEC
|
||||
V50N16 VN 5016
|
||||
TSCALE 2DEC 100 B-10 # CSEC TO SEC SCALE FACTOR
|
||||
20SEC DEC 2000
|
||||
RSCALE 2DEC 3.280839 B-3 # METERS TO FEET SCALE FACTOR
|
||||
VSCALE 2DEC 3.280839 E2 B-9 # METERS/CS TO FEET/SEC SCALE FACTOR
|
||||
AGSRND1 2OCT 0000060000
|
||||
2OCT 0000060000
|
||||
2OCT 0000060000
|
||||
AGSRND2 2OCT 0000037777
|
||||
2OCT 0000037777
|
||||
S
|
||||
# Page 210
|
||||
2OCT 0000037777
|
||||
|
||||
SBANK= LOWSUPER # FOR SUBSEQUENT LOW 2CADRS.
|
||||
|
1069
Luminary099/AOSTASK_AND_AOSJOB.s
Normal file
1069
Luminary099/AOSTASK_AND_AOSJOB.s
Normal file
File diff suppressed because it is too large
Load Diff
695
Luminary099/AOTMARK.s
Normal file
695
Luminary099/AOTMARK.s
Normal file
@ -0,0 +1,695 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: AOTMARK.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: 244-261
|
||||
# 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 244
|
||||
BANK 12
|
||||
SETLOC AOTMARK1
|
||||
BANK
|
||||
|
||||
EBANK= XYMARK
|
||||
COUNT* $$/MARK
|
||||
|
||||
AOTMARK INHINT
|
||||
CCS MARKSTAT # SEE IF AOTMARK BUSY
|
||||
TC +2 # MARK SYSTEM BUSY -- DO ALARM
|
||||
TC EXTVBCHK
|
||||
TC P00DOO
|
||||
OCT 00105
|
||||
|
||||
EXTVBCHK CAF SIX # SEE IF EXT. VERB WORKING
|
||||
MASK EXTVBACT
|
||||
CCS A
|
||||
TCF MKABORT # YES -- ABORT
|
||||
|
||||
CAF BIT2 # NO -- DISALLOW SOME EXTENDED VERB ACTION
|
||||
ADS EXTVBACT # BIT2 RESET IN ENDMARK
|
||||
MKVAC CCS VAC1USE # LOOK FOR A VAC AREAD -- DO ABORT IF
|
||||
TCF MKVACFND # NONE AVAILABLE
|
||||
CCS VAC2USE
|
||||
TCF MKVACFND
|
||||
CCS VAC3USE
|
||||
TCF MKVACFND
|
||||
CCS VAC4USE
|
||||
TCF MKVACFND
|
||||
CCS VAC5USE
|
||||
TCF MKVACFND
|
||||
DXCH BUF2
|
||||
TC BAILOUT1 # ALL VAC AREAS OCCUPIED -- ABORT.
|
||||
OCT 01207
|
||||
|
||||
MKVACFND AD TWO
|
||||
TS MARKSTAT # STORE VAC ADR IN LOW 9 OF MARKSTAT
|
||||
|
||||
CAF ZERO
|
||||
INDEX MARKSTAT
|
||||
TS 0 -1 # ZERO IN VACUSE REG TO SHOW VAC OCCUPIED
|
||||
|
||||
CAF PRIO15
|
||||
TC FINDVAC # SET UP JOB FOR GETDAT
|
||||
EBANK= XYMARK
|
||||
2CADR GETDAT
|
||||
|
||||
RELINT
|
||||
TCF SWRETURN
|
||||
# Page 245
|
||||
MKABORT DXCH BUF2
|
||||
TC BAILOUT1 # CONFLICT WITH EXTENDED VERB
|
||||
OCT 01211
|
||||
|
||||
MKRELEAS CAF ZERO
|
||||
XCH MARKSTAT # SET MARKSTAT TO ZERO
|
||||
MASK LOW9 # PICK UP VAC AREA AOR
|
||||
CCS A
|
||||
INDEX A
|
||||
TS 0 # SHOW MKVAC AREA AVAILABLE
|
||||
CAF ONE
|
||||
TC IBNKCALL
|
||||
CADR GOODEND # GO WAKE UP CALLING JOB
|
||||
|
||||
# Page 246
|
||||
KILLAOT CAF ZERO
|
||||
TS EXTVBACT # TERMINATE AOTMARK -- ALLOW EXT VERB
|
||||
TC GOTOP00H
|
||||
GETDAT CS MARKSTAT # SET BIT12 TO DISCOURAGE MARKRUPT
|
||||
MASK BIT12 # BIT12 RESET AT GETMARK
|
||||
ADS MARKSTAT
|
||||
|
||||
CAF V01N71 # DISPLAY DETENT AND STAR CODE
|
||||
TC BANKCALL
|
||||
CADR GOMARKF
|
||||
|
||||
TCF KILLAOT # V34 -- DOES GOTOP00H
|
||||
TCF DODAT # V33 -- PROCEED -- USE THIS STAR FOR MARKS
|
||||
ENTERDAT TCF GETDAT # ENTER -- REDISPLAY STAR CODE
|
||||
|
||||
DODAT CAF HIGH9 # PICK DETENT CODE FROM BITS7-9 OF AOTCODE
|
||||
MASK AOTCODE # AND SEE IF CODE 1 TO 6
|
||||
EXTEND
|
||||
MP BIT9
|
||||
TS XYMARK # STORE DETENT
|
||||
|
||||
EXTEND
|
||||
BZMF GETDAT # COAS CALIBRATION CODE - NO GOOD HERE
|
||||
|
||||
AD NEG7 # SEE IF DETENT 7 FOR COAS
|
||||
EXTEND
|
||||
BZF CODE7
|
||||
|
||||
TCF CODE1TO6
|
||||
|
||||
CODE7 CAF V06N87* # CODE 7, COAS SIGHTING, GET OPTIC AXIS
|
||||
TC BANKCALL # AZ AND EL OF SIGHTING DEVICE FROM ASTRO
|
||||
CADR GOMARKF
|
||||
|
||||
TCF KILLAOT # V34 -- DOES GOTOP00H
|
||||
TCF +2 # PROCEED
|
||||
TCF CODE7 # ON ENTER, RECYCLE
|
||||
EXTEND
|
||||
DCA AZ # PICK UP AZ AND EL IN SP 25 COMP
|
||||
INDEX FIXLOC
|
||||
DXCH 8D # STORE IN 8D AND 9D OF LOCAL VAC
|
||||
CAF ZERO # BACKUP SYSTEM TO BE USED
|
||||
TCF COASCODE # ZERO APPARENT ROTATION
|
||||
|
||||
CODE1TO6 INDEX XYMARK # INDEX AOT POSITION BY DET CODE
|
||||
CA AOTEL -1
|
||||
INDEX FIXLOC
|
||||
TS 9D # STORE ELEVATION IN VAC+9D
|
||||
|
||||
INDEX XYMARK # INDEX DET CODE 1,2 OR 3
|
||||
# Page 247
|
||||
CA AOTAZ -1
|
||||
INDEX FIXLOC
|
||||
TS 8D # STORE AZIMUTH IN VAC +8D
|
||||
|
||||
CA AOTAZ +1 # COMPENSATION FOR APPARENT ROTATION OF
|
||||
EXTEND # AOT FIELD OF VIEW IN LEFT AND RIGHT
|
||||
INDEX FIXLOC # DETENTS IS STORED IN VAC +10D IN SP
|
||||
MSU 8D # PRECISION ONE'S COMPLEMENT
|
||||
COASCODE INDEX FIXLOC
|
||||
TS 10D # ROT ANGLE
|
||||
|
||||
TC INTPRET # COMPUTE X AND Y PLANE VECTORS
|
||||
|
||||
# Page 248
|
||||
# THE OPTAXIS SOBROUTINE COMPUTES THE X AND Y MARK PLANE VECS AND
|
||||
# ROTATES THEM THRU THE APPARENT FIELD OF VIEW ROTATION UNIQUE TO AOT
|
||||
# OPTAXIS USES OANB TO COMPUTE THE OPTIC AXIS
|
||||
#
|
||||
# INPUT -- AZIMUTH ANGLE IN SINGLE PREC AT CDU SCALE IN 8D OF JOB VAC
|
||||
# ELEVATION ANGLE IN SINGLE PREC AT CDU SCALE IN 9D OF JOB VAC
|
||||
# ROTATION ANGLE IN SINGLE PREC IS COMP SCALED BY PI IN 10D OF VAC
|
||||
#
|
||||
# OUTPUT -- OPTIC AXIS VEC IN NG COORDS IN SCAXIS
|
||||
# X-MARK PLANE 1/4VEC IN NB COORDS AT 18D OF JOB VAC
|
||||
# Y-MARK PLANE 1/4VEC IN NB COORDS AT 12D OF JOB VAC
|
||||
|
||||
OPTAXIS CALL # GO COMPUTE OA AN X AND Y PLANE VECS
|
||||
OANB
|
||||
SLOAD SR1 # LOAD APP ROTATION IN ONES COMP
|
||||
10D # RESCALE BY 2PI
|
||||
PUSH SIN # 1/2SIN(ROT) 0-1
|
||||
PDDL COS
|
||||
PUSH VXSC # 1/2COS(ROT) 2-3
|
||||
18D
|
||||
PDDL VXSC # 1/4COS(ROT)UYP 4-9
|
||||
0
|
||||
24D # 1/4SIN(ROT)UXP
|
||||
BVSU STADR # UP 4-9
|
||||
STODL 12D # YPNB=1/4(COS(ROT)UYP-SIN(ROT)UXP)
|
||||
VXSC PDDL # UP 2-3 UP 0-1 FOR EXCHANGE
|
||||
24D # 1/4COS(ROT)UXP PUSH 0-5
|
||||
VXSC VAD # 1/4SIN(ROT)UYP
|
||||
18D # UP 0-5
|
||||
STADR
|
||||
STOVL 18D # XPNB=1/4(COS(ROT)UXP+SIN(ROT)UYP)
|
||||
LO6ZEROS # INITIALIZE AVE STAR VEC ACCUMULATOR
|
||||
STORE STARAD +6
|
||||
EXIT
|
||||
TCF GETMKS
|
||||
|
||||
# Page 249
|
||||
# THE OANB SUBROUTINE COMPUTES THE OPTIC AXIS OF THE SIGHTING INSTRUMENT
|
||||
# FROM AZIMUTH AND ELEVATION INPUT FROM THE ASTRONAUT.
|
||||
#
|
||||
# INPUT -- AZIMUTH ANGLE IN SINGLE PREC 2'S COMP IN 8D OF JOB VAC
|
||||
# ELEVATION ANGLE IN SINGLE PREC 2'S COMP IN 9D OF VAC
|
||||
#
|
||||
# OUTPUT -- OPTIC AXIS IN NB COORDS. IN SCAXIS
|
||||
# X-PLANE 1/2VEC IN NB COORDS AT 24D OF VAC
|
||||
# Y-PLANE 1/2VEC IN NB COORDS AT 18D OF VAC
|
||||
|
||||
BANK 05
|
||||
SETLOC AOTMARK2
|
||||
BANK
|
||||
|
||||
COUNT* $$/MARK
|
||||
|
||||
OANB SETPD STQ
|
||||
0
|
||||
GCTR # STORE RETURN
|
||||
SLOAD RTB
|
||||
9D # PICK UP SP ELV
|
||||
CDULOGIC
|
||||
PUSH COS
|
||||
PDDL SIN # 1/2COS(ELV) PD 0-1
|
||||
STADR
|
||||
STODL SCAXIS # OAX=1/2SIN(ELV)
|
||||
8D
|
||||
RTB
|
||||
CDULOGIC
|
||||
PUSH COS
|
||||
STORE 20D # STORE UYP(Y) 20-21
|
||||
PDDL SIN # 1/2COS(AZ) PD 2-3
|
||||
PUSH DCOMP # PUSH 1/2S IN (AZ) 4-5
|
||||
STODL 22D # STORE UYP(Z) 22-23
|
||||
LO6ZEROS
|
||||
STODL 18D # STORE UYP(X) 18-19
|
||||
DMP SL1
|
||||
0
|
||||
STODL SCAXIS +2 # OAY=1/2COS(ELV)SIN(AZ)
|
||||
DMP SL1 # UP 2-3
|
||||
STADR # UP 0-1
|
||||
STOVL SCAXIS +4 # OAZ=1/2COS(ELV)COS(AZ)
|
||||
18D # LOAD UYP VEC
|
||||
VXV UNIT
|
||||
SCAXIS # UXP VEC=UYP X OA
|
||||
STORE 24D # STORE UXP
|
||||
GOTO
|
||||
GCTR
|
||||
# Page 250
|
||||
# SURFSTAR COMPUTES A STAR VECTOR IN SM COORDINAGES FOR LUNAR
|
||||
# SURFACE ALIGNMENT AND EXITS TO AVEIT TO AVERAGE STAR VECTORS.
|
||||
#
|
||||
# GIVEN X-MARK PLANE 1/4 VEC IN NB AT 18D OF LOCAL VAC
|
||||
# Y-MARK PLANE 1/4 VEC IN NB AT 12D OF LOCAL VAC
|
||||
# CURSOR SP 2COMP AT POSITION 1 OF INDEXED MARKVAC
|
||||
# SPIRAL SP 2COMP AT POSITION 3 OF INDEXED MARKVAC
|
||||
# CDUY,Z,X AT POSITIONS 0,2,4 OF INDEXED MARKVAC
|
||||
|
||||
BANK 15
|
||||
SETLOC P50S
|
||||
BANK
|
||||
COUNT* $$/R59
|
||||
|
||||
SURFSTAR VLOAD*
|
||||
0,1 # PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
|
||||
STORE CDUSPOT
|
||||
SLOAD* RTB
|
||||
1,1 # PICK UP YROT
|
||||
CDULOGIC
|
||||
STORE 24D # STORE CURSOR FOR SPIRAL COMP (REVS)
|
||||
BZE
|
||||
YZCHK # IF YROT ZERO -- SEE IF SROT ZERO
|
||||
JUSTZY PUSH COS
|
||||
PDDL SIN # 1/2COS(YROT) 0-1
|
||||
VXSC PDDL # UP 0-1 1/8SIN(YROT)UXP 0-5
|
||||
18D
|
||||
VXSC VSU # UP 0-5
|
||||
12D # UYP
|
||||
UNIT VXV
|
||||
SCAXIS
|
||||
UNIT PUSH
|
||||
SLOAD* RTB
|
||||
3,1 # PICK UP SPIRAL
|
||||
CDULOGIC
|
||||
STORE 26D # STORE SPIRAL (REVS)
|
||||
DSU DAD
|
||||
24D
|
||||
ABOUTONE
|
||||
DMP
|
||||
DP1/12
|
||||
STORE 26D # SEP=(360 + SPIRAL -CURSOR)/12
|
||||
SIN VXSC # UP 0-5
|
||||
VSL1 PDDL # 1/2SIN(SEP)(UPP X OA) 0-5
|
||||
26D
|
||||
COS VXSC
|
||||
SCAXIS
|
||||
VSL1 VAD # UP 0-5
|
||||
JUSTOA UNIT CALL
|
||||
TRG*NBSM
|
||||
STCALL 24D # STAR VEC IN SM
|
||||
AVEIT # GO AVERAGE
|
||||
# Page 251
|
||||
ABOUTONE 2DEC .99999999
|
||||
|
||||
DP1/12 EQUALS DEG30 # .08333333
|
||||
BANK 7
|
||||
SETLOC AOTMARK1
|
||||
BANK
|
||||
COUNT* $$/MARK
|
||||
YZCHK SLOAD* BZE # YROT ZERO AND IF SROT ZERO FORCE STAR
|
||||
3,1 # ALONG OPTIC AXIS
|
||||
YSZERO
|
||||
DLOAD GOTO
|
||||
24D
|
||||
JUSTZY # SROT NOT ZERO -- CONTINUE NORMALLY
|
||||
YSZERO VLOAD GOTO
|
||||
SCAXIS
|
||||
JUSTOA
|
||||
|
||||
# Page 252
|
||||
# THE GETMKS ROUTINE INITIALIZES THE SIGHTING MARK PROCEDURE
|
||||
|
||||
GETMKS CAF ZERO # INITIALIZE MARK ID REGISTER AND MARK CNT
|
||||
TS XYMARK
|
||||
TS MARKCNTR
|
||||
CAF LOW9 # ZERO BITS10 TO 15 RETAINING MKVAC ADR
|
||||
MASK MARKSTAT
|
||||
TS MARKSTAT
|
||||
CAF MKVB54* # DISPLAY VB54 INITIALLY
|
||||
PASTIT TC BANKCALL
|
||||
CADR GOMARK4
|
||||
|
||||
TCF KILLAOT # V34 -- DOES GOTOP00H
|
||||
TCF MARKCHEX # VB33 -- PROCEED, GOT MARKS, COMPUTE LOS
|
||||
TCF GETDAT # ENTER -- RECYCLE TO V01N71
|
||||
|
||||
MARKCHEX CS MARKSTAT # SET BIT12 TO DISCOURAGE MARKRUPT
|
||||
MASK BIT12
|
||||
ADS MARKSTAT
|
||||
MASK LOW9
|
||||
TS XYMARK # JAM MARK VAC ADR IN XYMARK FOR AVESTAR
|
||||
CAF ZERO
|
||||
TS MKDEX # SET MKDEX ZERO FOR LOS VEC CNTR
|
||||
CA MARKSTAT
|
||||
MASK PRIO3 # SEE IF LAST MK PART COMPLETE
|
||||
TS L
|
||||
CAF PRIO3 # BITS10 AND 11
|
||||
EXTEND
|
||||
RXOR LCHAN
|
||||
EXTEND
|
||||
BZF AVESTAR # LAST PAIR COMPLETE -- TO COMPUTE LOS
|
||||
CNTCHK CCS MARKCNTR # NO PAIR SHOWING -- SEE IF PAIR IN HOLD
|
||||
TCF +2 # PAIR BURIED -- DECREMENT COUNTER
|
||||
TCF MKALARM # NO PAIR -- ALARM
|
||||
TS MARKCNTR # STORE DECREMENTED COUNTER
|
||||
|
||||
AVESTAR CAF BIT12 # INITIALIZE MKDEX FOR STAR LOS COUNTER
|
||||
ADS MKDEX # MKDEX WAS INITIALIZED ZERO IN MARKCHEX
|
||||
CS MARKCNTR
|
||||
EXTEND
|
||||
MP SIX # GET C(L) = -6 MARKCNTR
|
||||
CS XYMARK
|
||||
AD L # ADD -- MARK VAC ADR SET IN MARKCHEX
|
||||
INDEX FIXLOC
|
||||
TS X1 # JAM -- CDU ADR OF X-MARK IN X1
|
||||
|
||||
CA FIXLOC # SET PD POINTER TO ZERO
|
||||
TS PUSHLOC
|
||||
|
||||
TC INTPRET
|
||||
# Page 253
|
||||
BON VLOAD*
|
||||
SURFFLAG # IF ON SURFACE COMPUTE VEC AT SURFSTAR
|
||||
SURFSTAR
|
||||
1,1 # PUT Y-MARK CDUS IN CDUSPOT FOR TRG*NBSM
|
||||
STOVL CDUSPOT
|
||||
12D # LOAD Y-PLANE VECTOR IN NG
|
||||
CALL
|
||||
TRG*NBSM # CONVERT IT TO STABLE MEMBER
|
||||
PUSH VLOAD*
|
||||
0,1 # PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
|
||||
STOVL CDUSPOT
|
||||
18D # LOAD X-PLANE VECTOR IN NB
|
||||
CALL
|
||||
TRG*NBSM # CONVERT IT TO STABLE-MEMBER
|
||||
VXV UNIT # UNIT(XPSM * YPSM)
|
||||
STADR
|
||||
STORE 24D
|
||||
|
||||
AVEIT SLOAD PDVL # N(NUMBER OF VECS) IN 0-1
|
||||
MKDEX
|
||||
24D # LOAD CURRENT VECTOR
|
||||
VSR3 V/SC
|
||||
0
|
||||
STODL 24D # VEC/N
|
||||
0
|
||||
DSU DDV
|
||||
DP1/8 # (N-1)/N
|
||||
VXSC VAD
|
||||
STARAD +6 # ADD VEC TO PREVIOUSLY AVERAGED VECTOR
|
||||
24D # (N-1)/N AVESTVEC + VEC/N
|
||||
STORE STARAD +6 # AVERAGE STAR VECTOR
|
||||
STORE STARSAV2
|
||||
EXIT
|
||||
CCS MARKCNTR # SEE IF ANOTHER MARK PAIR IN MKVAC
|
||||
TCF AVESTAR -1 # THERE IS -- GO GET IT -- DECREMENT COUNTER
|
||||
ENDMARKS CAF FIVE # NO MORE MARKS -- TERMINATE AOTMARK
|
||||
INHINT
|
||||
TC WAITLIST
|
||||
EBANK= XYMARK
|
||||
2CADR MKRELEAS
|
||||
|
||||
TC ENDMARK
|
||||
|
||||
MKALARM TC ALARM # NOT A PAIR TO PROCESS -- DO GETMKS
|
||||
OCT 111
|
||||
TCF GETMKS
|
||||
|
||||
V01N71 VN 171
|
||||
V06N87* VN 687
|
||||
|
||||
# Page 254
|
||||
# MARKRUPT IS ENTERED FROM INTERRUPT LEAD-INS AND PROCESSES CHANNEL 16
|
||||
# CAUSED BY X,Y MARK OR MARK REJECT OR BY THE RATE OF DESCENT SWITCH
|
||||
|
||||
MARKRUPT TS BANKRUPT
|
||||
CA CDUY # STORE CDUS AND TIME NOW -- THEN SEE IF
|
||||
TS ITEMP3 # WE NEED THEM
|
||||
CA CDUZ
|
||||
TS ITEMP4
|
||||
CA CDUX
|
||||
TS ITEMP5
|
||||
EXTEND
|
||||
DCA TIME2
|
||||
DXCH ITEMP1
|
||||
XCH Q
|
||||
TS QRUPT
|
||||
|
||||
CAF OCT34 # SEE IF X OR Y MARK OR MKREJECT
|
||||
EXTEND
|
||||
RAND NAVKEYIN
|
||||
CCS A
|
||||
TCF +2 # ITS A LIVE ONE -- SEE IF ITS WANTED
|
||||
TCF SOMEKEY # ITS SOME OTHER KEY
|
||||
|
||||
CAF BIT12 # ARE WE ASKING FOR A MARK
|
||||
MASK MARKSTAT
|
||||
CCS A
|
||||
TC RESUME # DON'T WANT MARK OR MKREJECT -- DO NOTHING
|
||||
|
||||
CCS MARKSTAT # ARE MARKS BEING ACCEPTED
|
||||
TCF FINDKEY # THEY ARE -- WHICH ONE IS IT
|
||||
TC ALARM # MARKS NOT BEING ACCEPTED -- DO ALARM
|
||||
OCT 112
|
||||
TC RESUME
|
||||
|
||||
FINDKEY CAF BIT5 # SEE IF MARK REJECT.
|
||||
EXTEND
|
||||
RAND NAVKEYIN
|
||||
CCS A
|
||||
TCF MKREJ # IT'S A MARK REJECT
|
||||
|
||||
CAF BIT4 # SEE IF Y MARK
|
||||
EXTEND
|
||||
RAND NAVKEYIN
|
||||
CCS A
|
||||
|
||||
TCF YMKRUPT # IT'S A Y MARK
|
||||
|
||||
CAF BIT3 # SEE IF X MARK
|
||||
EXTEND
|
||||
RAND NAVKEYIN
|
||||
|
||||
# Page 255
|
||||
CCS A
|
||||
TCF XMKRUPT # IT'S A X MARK
|
||||
|
||||
SOMEKEY CAF OCT140 # NOT MARK OR MKREJECT -- SEE IF DESCENT BITS
|
||||
EXTEND
|
||||
RAND NAVKEYIN
|
||||
EXTEND
|
||||
BZF +3 # IF NO BITS
|
||||
|
||||
TC POSTJUMP # IF DESCENT BITS
|
||||
CADR DESCBITS
|
||||
|
||||
TC ALARM # NO INBITS IN CHANNEL 16.
|
||||
OCT 113
|
||||
|
||||
TC RESUME
|
||||
|
||||
XMKRUPT CAF ZERO
|
||||
TS RUPTREG1 # SET X MARK STORE INDEX TO ZERO
|
||||
CAF BIT10
|
||||
TCF +4
|
||||
YMKRUPT CAF ONE
|
||||
TS RUPTREG1 # SET Y MARK STORE INDEX TO ONE
|
||||
CAF BIT11
|
||||
TS XYMARK # SET MARK IDENTIFICATION
|
||||
|
||||
TC MARKTYPE # SEE IF SURFACE MARK
|
||||
TCF SURFSTOR # SURFACE MARK -- JUST STORE CDUS
|
||||
|
||||
CAF BIT14 # GOT A MARK -- SEE IF MARK PARI MADE
|
||||
MASK MARKSTAT
|
||||
EXTEND
|
||||
BZF VERIFYMK # NOT A PAIR, NORMAL PROCEDURE
|
||||
CS MARKCNTR # GO A PAIR, SEE IF ANOTHER CAN BE MADE
|
||||
AD FOUR # IF SO, INCREMENT POINTER, CLEAR BITS 10,11
|
||||
EXTEND
|
||||
BZMF 5MKALARM # HAVE FIVE MARK PAIRS -- DON'T ALLOW MARK
|
||||
INCR MARKCNTR # OK FOR ANOTHER PAIR, INCR POINTER
|
||||
CS PRIO23 # CLEAR BITS 10,11,14 FOR NEXT PAIR
|
||||
MASK MARKSTAT
|
||||
TS MARKSTAT
|
||||
|
||||
VERIFYMK CA XYMARK
|
||||
MASK MARKSTAT
|
||||
CCS A
|
||||
TCF +2 # THIS MARK NOT DESIRED
|
||||
TCF VACSTOR # MARK DESIRED -- STORE CDUS
|
||||
TC ALARM
|
||||
OCT 114
|
||||
TC RESUME # RESUME -- DISPLAY UNCHANGED -- WAIT FOR ACTION
|
||||
|
||||
# Page 256
|
||||
5MKALARM TC ALARM # ATTEMPTING TO MAKE MORE THAN 5 MK PAIRS
|
||||
OCT 107
|
||||
TC MARKTYPE # SEE IF SURFACE MARK
|
||||
TCF DSPV6N79 # IT IS
|
||||
TC RESUME # DON'T CHANGE DISPLAY -- DO NOTHING
|
||||
|
||||
# Page 257
|
||||
MKREJ TC MARKTYPE # SEE IF SURFACE
|
||||
TCF SURFREJ # SURFACE -- JUST CHECK MARK COUNTER
|
||||
|
||||
CAF PRIO3 # INFLIGHT -- SEE IF MARKS MADE
|
||||
MASK MARKSTAT
|
||||
CCS A
|
||||
TCF REJECT # MARKS MADE -- REJECT ONE
|
||||
REJALM TC ALARM # NO MARK TO REJECT -- BAD PROCEDURE -- ALARM
|
||||
OCT 115
|
||||
TC RESUME # DESIRED ACTION DISPLAYED
|
||||
|
||||
REJECT CS PRIO30 # ZERO BIT14, SHOW REJ., SEE IF MARK SINCE
|
||||
MASK MARKSTAT # LAST REJECT
|
||||
AD BIT13
|
||||
XCH MARKSTAT
|
||||
MASK BIT13
|
||||
CCS A
|
||||
TCF REJECT2 # ANOTHER REJECT SET BIT 10+11 TO ZERO
|
||||
|
||||
CS XYMARK # MARK MADE SINCE REJECT -- REJECT MARK IN 1D
|
||||
RENEWMK MASK MARKSTAT
|
||||
TS MARKSTAT
|
||||
TCF REMARK # GO REQUEST NEW MARK ACTION
|
||||
|
||||
REJECT2 CS PRIO3 # ON SECOND REJECT -- DISPLAY VB53 AGAIN
|
||||
TCF RENEWMK
|
||||
|
||||
SURFREJ CCS MARKCNTR # IF MARK DECREMENT COUNTER
|
||||
TCF +2
|
||||
TCF REJALM # NO MARKS TO REJECT -- ALARM
|
||||
TS MARKCNTR
|
||||
TC RESUME
|
||||
|
||||
# Page 258
|
||||
# MARKTYPE TESTS TO SEE IF LEM ON LUNAR SURFACE. IF IT IS RETURN TO LOC+1
|
||||
|
||||
MARKTYPE CS FLAGWRD8 # SURFFLAG ******** TEMPORARY ******
|
||||
MASK BIT8
|
||||
CCS A
|
||||
INCR Q # IF SURFACE MARK RETURN TO LOC +1
|
||||
TC Q # IF INFLIGHT MARK RETURN TO LOC +2
|
||||
|
||||
SURFSTOR CAF ZERO # FOR SURFACE MARK ZERO MARK KIND INDEX
|
||||
TS RUPTREG1
|
||||
|
||||
CS MARKSTAT # SET BITS10,11 TO SHOW SURFACE MARK
|
||||
MASK PRIO3 # FOR MARKCHEX
|
||||
ADS MARKSTAT
|
||||
|
||||
VACSTOR CAF LOW9
|
||||
MASK MARKSTAT # STORE MARK VAC ADR IN RUPTREG2
|
||||
TS RUPTREG2
|
||||
EXTEND
|
||||
DCA ITEMP1 # PICK UP MARKTIME
|
||||
DXCH TSIGHT # STORE LAST MARK TIME
|
||||
CA MARKCNTR # 6 X MARKCNTR FOR STORE INDEX
|
||||
EXTEND
|
||||
MP SIX
|
||||
XCH L # GET INDEX FROM LOW ORDER PART
|
||||
AD RUPTREG2 # SET CDU STORE INDEX TO MARKVAC
|
||||
ADS RUPTREG1 # INCREMENT VAC PICKUP BY MARK FOR FLIGHT
|
||||
TS MKDEX # STORE HERE IN CASE OF SURFACE MARK
|
||||
CA ITEMP3
|
||||
INDEX RUPTREG1
|
||||
TS 0 # STORE CDUY
|
||||
CA ITEMP4
|
||||
INDEX RUPTREG1
|
||||
TS 2 # STORE CDUZ
|
||||
CA ITEMP5
|
||||
INDEX RUPTREG1
|
||||
TS 4 # STORE CDUX
|
||||
TC MARKTYPE # IF SURFACE MARK -- JUST DO SURFJOB
|
||||
TCF SURFJOB
|
||||
|
||||
CAF BIT13 # CLEAR BIT13 TO SHOW MARK MADE
|
||||
AD XYMARK # SET MARK ID IN MARKSTAT
|
||||
COM
|
||||
MASK MARKSTAT
|
||||
AD XYMARK
|
||||
TS MARKSTAT
|
||||
MASK PRIO3 # SEE IF X, Y MARK MADE
|
||||
TS L
|
||||
|
||||
# Page 259
|
||||
CA PRIO3
|
||||
EXTEND
|
||||
RXOR LCHAN
|
||||
CCS A
|
||||
TCF REMARK # NOT PAIR YET, DISPLAY MARK ACTION
|
||||
CS MARKSTAT # MARK PAIR COMPLETE -- SET BIT14
|
||||
MASK BIT14
|
||||
ADS MARKSTAT
|
||||
TCF REMARK # GO DISPLAY V54
|
||||
|
||||
# Page 260
|
||||
REMARK CAF PRIO3 # BITS 10 AND 11
|
||||
MASK MARKSTAT
|
||||
EXTEND
|
||||
MP BIT6 # SHIFT MARK IDS TO BE 0 TO 3 FOR INDEX
|
||||
TS MKDEX # STORE VERB INDEX
|
||||
SURFJOB CAF PRIO15
|
||||
TC NOVAC # ENTER JOB TO CHANGE DISPLAY TO
|
||||
EBANK= XYMARK # REQUEST NEXT ACTION
|
||||
2CADR CHANGEVB
|
||||
|
||||
TC RESUME
|
||||
|
||||
CHANGEVB TC MARKTYPE
|
||||
TCF DSPV6N79 # SURFACE -- DISPLAY V 06 N 79
|
||||
INDEX MKDEX # INFLIGHT -- PICK UP MARK VB INDEX
|
||||
CAF MKVB54
|
||||
TC PASTIT # PASTE UP NEXT MK VERB DISPLAY
|
||||
|
||||
# THE FOUR MKVBS ARE INDEXED -- THEIR ORDER CANNOT BE CHANGED
|
||||
|
||||
MKVB54 VN 5471 # MAKE X OR Y MARK
|
||||
MKVB53 VN 5371 # MAKE Y MARK
|
||||
MKVB52 VN 5271 # MAKE X MARK
|
||||
MKVB54* VN 5471 # MAKE X OR Y MARK
|
||||
DP1/8 2DEC .125
|
||||
|
||||
OCT34 OCT 34
|
||||
V06N71 VN 671
|
||||
V06N79* VN 679
|
||||
|
||||
# Page 261
|
||||
# ROUTINE TO REQUEST CURSOR AND SPIRAL MEASUREMENTS
|
||||
COUNT* $$/R59
|
||||
|
||||
DSPV6N79 CAF V06N79* # CURSOR -- SPIRAL DISPLAY
|
||||
TC BANKCALL
|
||||
CADR GOMARKF
|
||||
|
||||
TCF KILLAOT # V34 -- DOES GOTOP00H
|
||||
TCF SURFEND # V33 -- PROCEED, END MARKING
|
||||
CAF BIT6 # IF V32(OCT40) IN MPAC DO RECYCLE
|
||||
MASK MPAC # OTHERWISE IT IS LOAD VB ENTER SO
|
||||
CCS A # RE-DISPLAY V06N79
|
||||
TCF SURFAGAN # VB32 -- RECYCLE
|
||||
TCF DSPV6N79 # ENTER
|
||||
|
||||
SURFEND CS BIT14 # SET BIT14 TO SHOW MARK END
|
||||
MASK MARKSTAT
|
||||
AD BIT14
|
||||
TS MARKSTAT
|
||||
|
||||
SURFAGAN CA CURSOR
|
||||
INDEX MKDEX # HOLDS VAC AREA POINTER FOR SURF MARKING
|
||||
TS 1 # STORE CURSOR SP 2COMP
|
||||
CA SPIRAL
|
||||
INDEX MKDEX
|
||||
TS 3 # STORE SPIRAL
|
||||
|
||||
CS MARKSTAT # IF BIT 14 SET -- END MARKING
|
||||
MASK BIT14
|
||||
EXTEND
|
||||
BZF MARKCHEX
|
||||
CA MARKCNTR # THIS IS RECYCLE -- SEE IF 5 MARKS ALREADY
|
||||
AD ONE
|
||||
COM
|
||||
AD FIVE
|
||||
EXTEND
|
||||
BZMF 5MKALARM # CAN'T RECYCLE -- TOO MANY MARKS -- ALARM
|
||||
INCR MARKCNTR # OF FOR RECYCLE -- INCR COUNTER
|
||||
TCF GETMKS +3 # GO DISPLAY MARK VB
|
||||
|
647
Luminary099/ASCENT_GUIDANCE.s
Normal file
647
Luminary099/ASCENT_GUIDANCE.s
Normal file
@ -0,0 +1,647 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: ASCENT_GUIDNCE.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: 843-856
|
||||
# Mod history: 2009-05-23 HG Transcribed from page images.
|
||||
# 2009-06-05 RSB Fixed a couple of typos.
|
||||
# 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 843
|
||||
BANK 34
|
||||
SETLOC ASCFILT
|
||||
BANK
|
||||
|
||||
EBANK= DVCNTR
|
||||
|
||||
COUNT* $$/ASENT
|
||||
|
||||
ATMAG TC PHASCHNG
|
||||
OCT 00035
|
||||
TC INTPRET
|
||||
BON
|
||||
FLRCS
|
||||
ASCENT
|
||||
DLOAD DSU
|
||||
ABDVCONV
|
||||
MINABDV
|
||||
BMN CLEAR
|
||||
ASCTERM4
|
||||
SURFFLAG
|
||||
CLEAR SLOAD
|
||||
RENDWFLG
|
||||
BIT3H
|
||||
DDV EXIT
|
||||
ABDVCONV
|
||||
DXCH MPAC
|
||||
DXCH 1/DV3
|
||||
DXCH 1/DV2
|
||||
DXCH 1/DV1
|
||||
DXCH 1/DV0
|
||||
TC INTPRET
|
||||
DLOAD DAD
|
||||
1/DV0
|
||||
1/DV1
|
||||
DAD DAD
|
||||
1/DV2
|
||||
1/DV3
|
||||
DMP DMP
|
||||
VE
|
||||
2SEC(9)
|
||||
SL3 PDDL
|
||||
TBUP
|
||||
SR1 DAD
|
||||
DSU
|
||||
6SEC(18)
|
||||
STODL TBUP
|
||||
VE
|
||||
SR1 DDV
|
||||
TBUP
|
||||
STCALL AT
|
||||
# Page 844
|
||||
ASCENT
|
||||
BIT3H OCT 4
|
||||
|
||||
# Page 845
|
||||
BANK 30
|
||||
SETLOC ASENT
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
|
||||
ASCENT VLOAD ABVAL
|
||||
R
|
||||
STOVL /R/MAG
|
||||
ZAXIS1
|
||||
DOT SL1
|
||||
V # Z.V = ZDOT*2(-8).
|
||||
STOVL ZDOT # ZDOT*2(-7)
|
||||
ZAXIS1
|
||||
VXV VSL1
|
||||
UNIT/R/ # Z X UR = LAXIS*2(-2)
|
||||
STORE LAXIS # LAXIS*2(-1)
|
||||
DOT SL1
|
||||
V # L.V = YDOT*2(-8).
|
||||
STCALL YDOT # YDOT * 2(-7)
|
||||
YCOMP
|
||||
VLOAD
|
||||
GDT1/2 # LOAD GDT1/2*2(-7) M/CS.
|
||||
V/SC DOT
|
||||
2SEC(18)
|
||||
UNIT/R/ # G.UR*2(9) = GR*2(9).
|
||||
PDVL VXV # STORE IN PDL(0)
|
||||
UNIT/R/ # LOAD UNIT/R/ *2(-1)
|
||||
V # UR*2(-1) X V*2(-7) = H/R*2(-8).
|
||||
VSQ DDV # H(2)/R(2)*2(-16).
|
||||
/R/MAG # H(2)/R(3)*2(9).
|
||||
SL1 DAD
|
||||
STADR
|
||||
STODL GEFF # GEFF*2(10)m/CS/CS.
|
||||
ZDOTD
|
||||
DSU
|
||||
ZDOT
|
||||
STORE DZDOT # DZDOT = (ZDOTD - ZDOT) * 2(7) M/CS.
|
||||
VXSC PDDL
|
||||
ZAXIS1
|
||||
YDOTD
|
||||
DSU
|
||||
YDOT
|
||||
STORE DYDOT # DYDOT = (YDOTD - YDOT) *2(7) M/CS.
|
||||
VXSC PDDL
|
||||
LAXIS
|
||||
RDOTD
|
||||
# Page 846
|
||||
DSU
|
||||
RDOT
|
||||
STORE DRDOT # DRDOT = (RDOTD - RDOT) * 2(7) M/CS.
|
||||
VXSC VAD
|
||||
UNIT/R/
|
||||
VAD VSL1
|
||||
STADR
|
||||
STORE VGVECT # VG = (DRDOT)R + (DVDOT)L + (DZDOT)Z.
|
||||
DLOAD DMP # LOAD TGO
|
||||
TGO # TGO GEFF
|
||||
GEFF
|
||||
VXSC VSL1
|
||||
UNIT/R/ # TGO GEFF UR
|
||||
BVSU
|
||||
VGVECT # COMPENSATED FOR GEFF
|
||||
STORE VGVECT # STORE FOR DOWNLINK
|
||||
MXV VSL1 # GET VGBODY FOR N85 DISPLAY
|
||||
XNBPIP
|
||||
STOVL VGBODY
|
||||
VGVECT
|
||||
ABVAL BOFF # MAGNITUDE OF VGVECT
|
||||
FLRCS # IF FLRCS=0,D0 NORMAL GUIDANCE
|
||||
MAINENG
|
||||
DDV # USE TGO=VG/AT WITH RCS
|
||||
AT/RCS
|
||||
STCALL TGO # THIS WILL BE USED ON NEXT CYCLE
|
||||
ASCTERM2
|
||||
MAINENG DDV PUSH # VG/VE IN PDL(0) (2)
|
||||
VE
|
||||
DMP BDSU # 1 - KT VG/VE
|
||||
KT1
|
||||
NEARONE
|
||||
DMP DMP # TBUP VG(1-KT VG/VE)/VE (0)
|
||||
TBUP # = TGO
|
||||
DSU # COMPENSATE FOR TAILOFF
|
||||
TTO
|
||||
STORE TGO
|
||||
SR DCOMP
|
||||
11D
|
||||
STODL TTOGO # TGO *2(-28) CS
|
||||
TGO
|
||||
BON DSU
|
||||
IDLEFLAG
|
||||
T2TEST
|
||||
4SEC(17) # ( TGO - 4 )*2(-17) CS.
|
||||
BMN
|
||||
ENGOFF
|
||||
T2TEST DLOAD
|
||||
TGO
|
||||
DSU BMN # IF TGO - T2 NEG., GO TO CMPONENT
|
||||
# Page 847
|
||||
T2A
|
||||
CMPONENT
|
||||
DLOAD DSU
|
||||
TBUP
|
||||
TGO
|
||||
DDV CALL # 1- TGO/TBUP
|
||||
TBUP
|
||||
LOGSUB
|
||||
SL PUSH # -L IN PDL(0) (2)
|
||||
5
|
||||
BDDV BDSU # -TGO/L*2(-17)
|
||||
TGO
|
||||
TBUP # TBUP + TGO/L = D12*2(-17)
|
||||
PUSH BON # STORE IN PDL(2) (4)
|
||||
FLPC # IF FLPC = 1, GO TO CONST
|
||||
NORATES
|
||||
DLOAD DSU
|
||||
TGO
|
||||
T3
|
||||
BPL SET # FLPC=1
|
||||
RATES
|
||||
FLPC
|
||||
NORATES DLOAD
|
||||
HI6ZEROS
|
||||
STORE PRATE # B = 0
|
||||
STORE YRATE # D = 0
|
||||
GOTO
|
||||
CONST # GO TO CONST
|
||||
RATES DLOAD DSU
|
||||
TGO
|
||||
02D # TGO - D12 = D21*2(-17)
|
||||
PUSH SL1 # IN PDL(4) (6)
|
||||
BDSU SL3 # (1/2TGO - D21)*2(-13) = E * 2(-13)
|
||||
TGO # (8)
|
||||
PDDL DMP # IN PDL(6)
|
||||
TGO
|
||||
RDOT # RDOT TGO * 2(-24)
|
||||
DAD DSU # R + RDOT TGO
|
||||
/R/MAG # R + RDOT TGO - RCO
|
||||
RCO # MPAC = -DR *2(-24).
|
||||
PDDL DMP # -DR IN PDL(8) (10)
|
||||
DRDOT
|
||||
04D # D21 DRDOT*2(-24)
|
||||
DAD SL2 # (D21 DRDOT-DR)*2(-22) (8)
|
||||
DDV DDV
|
||||
06D # (D21 DRDOT-DR)/E*2(-9)
|
||||
TGO
|
||||
STORE PRATE # B * 2(8)
|
||||
BMN DLOAD # B>0 NOT PERMITTED
|
||||
CHKBMAG
|
||||
#Page 848
|
||||
HI6ZEROS
|
||||
STCALL PRATE
|
||||
PROK
|
||||
CHKBMAG SR4 DDV # B*2(4)
|
||||
TBUP # (B / TAU) * 2(21)
|
||||
DSU BPL
|
||||
PRLIMIT # ( B / TAU ) = 2(21) MAX.
|
||||
PROK
|
||||
DLOAD DMP
|
||||
PRLIMIT
|
||||
TBUP # B MAX. * 2(4)
|
||||
SL4 # BMAX*2(8)
|
||||
STORE PRATE
|
||||
PROK DLOAD
|
||||
TGO
|
||||
DMP DAD # YDOT TGO
|
||||
YDOT
|
||||
Y # Y + YDOT TGO
|
||||
DSU PDDL # Y + YDOT TGO - YCO
|
||||
YCO # MPAC = - DY*(-24.) IN PDL(8) (10)
|
||||
DYDOT
|
||||
DMP DAD # D21 DYDOT - DY (8)
|
||||
04D
|
||||
SL2 DDV # (D21 DYDOT - DY)/E*2(-9)
|
||||
DDV SETPD # (D21 DYDOT - DY)/E TGO*2(8)
|
||||
TGO # = D*2(8)
|
||||
04
|
||||
STORE YRATE
|
||||
CONST DLOAD DMP # LOAD B*2(8)
|
||||
PRATE # B D12*2(-9)
|
||||
02D
|
||||
PDDL DDV # D12 B IN PDL(4) (6)
|
||||
DRDOT # LOAD DRDOT*2(-7)
|
||||
00D # -DRDOT/L*2(-7)
|
||||
SR2 DSU # (-DRDOT/L-D12 B)=A*2(-9) (4)
|
||||
STADR
|
||||
STODL PCONS
|
||||
YRATE # D*2(8)
|
||||
DMP PDDL # D12 D,EXCH WITH -L IN PDL(0) (2,2)
|
||||
BDDV SR2 # -DYDOT/L*2(-9)
|
||||
DYDOT
|
||||
DSU # (-DYDOT/L-D12 D)=C*2(-9)
|
||||
00D
|
||||
STORE YCONS
|
||||
CMPONENT SETPD DLOAD
|
||||
00D
|
||||
100CS
|
||||
DMP
|
||||
PRATE # B(T-T0)*2(-9)
|
||||
DAD DDV # (A+B(T-T0))*2(-9)
|
||||
# Page 849
|
||||
PCONS # (A+B(T-T0))/TBUP*2(8)
|
||||
TBUP
|
||||
SL1 DSU
|
||||
GEFF # ATR*2(9)
|
||||
STODL ATR
|
||||
100CS
|
||||
DMP DAD
|
||||
YRATE
|
||||
YCONS # (C+D(T-T0))*2(-9)
|
||||
DDV SL1
|
||||
TBUP
|
||||
STORE ATY # ATY*2(9)
|
||||
VXSC PDDL # ATY UY*2(8) (6)
|
||||
LAXIS
|
||||
ATR
|
||||
VXSC VAD
|
||||
UNIT/R/
|
||||
VSL1 PUSH # AH*2(9) IN PDL(0) (6)
|
||||
ABVAL PDDL # AH(2) IN PDL(34)
|
||||
AT # AHMAG IN PDL(6) (8)
|
||||
DSQ DSU # (AT(2)-AH(2))*2(18)
|
||||
34D # =ATP2*2(18)
|
||||
PDDL PUSH # (12)
|
||||
AT
|
||||
DSQ DSU # (AT(2)KR(2)-AH(2))*2(18) (10)
|
||||
34D # =ATP3*2(18)
|
||||
BMN DLOAD # IF ATP3 NEG,GO TO NO-ATP
|
||||
NO-ATP # LOAD ATP2, IF ATP3 POS
|
||||
8D
|
||||
SQRT GOTO # ATP*2(9)
|
||||
AIMER
|
||||
NO-ATP DLOAD BDDV # KR AT/AH = KH (8)
|
||||
6D
|
||||
VXSC # KH AG*2(9)
|
||||
00D
|
||||
STODL 00D # STORE NEW AH IN PDL(0)
|
||||
HI6ZEROS
|
||||
AIMER SIGN
|
||||
DZDOT
|
||||
STORE ATP
|
||||
VXSC
|
||||
ZAXIS1 # ATP ZAXIS *2(8).
|
||||
VSL1 VAD # AT*2(0)
|
||||
00D
|
||||
STORE UNFC/2 # WILL BE OVERWRITTEN IF IN VERT. RISE.
|
||||
SETPD BON
|
||||
00D
|
||||
FLPI
|
||||
P12RET
|
||||
BON
|
||||
# Page 850
|
||||
FLVR
|
||||
CHECKALT
|
||||
MAINLINE VLOAD VCOMP
|
||||
UNIT/R/
|
||||
STODL UNWC/2
|
||||
TXO
|
||||
DSU BPL
|
||||
PIPTIME
|
||||
ASCTERM
|
||||
BON
|
||||
ROTFLAG
|
||||
ANG1CHEK
|
||||
CLRXFLAG CLEAR CLEAR
|
||||
NOR29FLG # START r29 IN ASCENT PHASE.
|
||||
XOVINFLG # ALLOW X-AXIS OVERRIDE
|
||||
ASCTERM EXIT
|
||||
CA FLAGWRD9
|
||||
MASK FLRCSBIT
|
||||
CCS A
|
||||
TCF ASCTERM3
|
||||
TC INTPRET
|
||||
CALL
|
||||
FINDCDUW -2
|
||||
ASCTERM1 EXIT
|
||||
+1 CA FLAGWRD9 # INSURE THAT THE NOUN 63 DISPLAY IS
|
||||
MASK FLRCSBIT # BYPASSED IF WE ARE IN THE RCS TRIMMING
|
||||
CCS A # MODE OF OPERATION
|
||||
TCF ASCTERM3
|
||||
CA FLAGWRD8 # BYPASS DISPLAYS IF ENGINE FAILURE IS
|
||||
MASK FLUNDBIT # INDICATED.
|
||||
CCS A
|
||||
TCF ASCTERM3
|
||||
CAF V06N63*
|
||||
TC BANKCALL
|
||||
CADR GODSPR
|
||||
TCF ASCTERM3
|
||||
ASCTERM2 EXIT
|
||||
ASCTERM3 TCF ENDOFJOB
|
||||
ASCTERM4 EXIT
|
||||
INHINT
|
||||
TC IBNKCALL # NO GUIDANCE THIS CYCLE -- HENCE ZERO
|
||||
CADR ZATTEROR # THE DAP COMMANDED ERRORSss.
|
||||
TCF ASCTERM1 +1
|
||||
|
||||
CHECKALT DLOAD DSU
|
||||
/R/MAG
|
||||
/LAND/
|
||||
DSU BMN # IF H LT 25K CHECK Z AXIS ORIENTATION
|
||||
25KFT
|
||||
CHECKYAW
|
||||
# Page 851
|
||||
EXITVR CLEAR BON
|
||||
FLVR
|
||||
ROTFLAG
|
||||
MAINLINE
|
||||
DLOAD DAD
|
||||
PIPTIME
|
||||
10SECS
|
||||
STCALL TXO
|
||||
MAINLINE
|
||||
EXITVR1 CLRGO
|
||||
ROTFLAG
|
||||
EXITVR
|
||||
|
||||
SETLOC ASENT1
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
|
||||
ANG1CHEK VLOAD DOT
|
||||
UNFC/2
|
||||
XNBPIP
|
||||
DSU BPL
|
||||
COSTHET1
|
||||
OFFROT
|
||||
VLOAD DOT
|
||||
XNBPIP
|
||||
UNIT/R/
|
||||
DSU BMN
|
||||
COSTHET2
|
||||
KEEPVR1
|
||||
OFFROT CLRGO
|
||||
ROTFLAG
|
||||
CLRXFLAG
|
||||
|
||||
BANK 7
|
||||
SETLOC ASENT2
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
|
||||
SETXFLAG = CHECKYAW
|
||||
|
||||
CHECKYAW SET
|
||||
XOVINFLG # PROHIBIT X-AXIS OVERRRIDE
|
||||
DLOAD VXSC
|
||||
ATY
|
||||
LAXIS
|
||||
PDDL VXSC
|
||||
ATP
|
||||
ZAXIS1
|
||||
VAD UNIT
|
||||
PUSH DOT
|
||||
# Page 852
|
||||
YNBPIP
|
||||
ABS DSU
|
||||
SIN5DEG
|
||||
BPL DLOAD
|
||||
KEEPVR
|
||||
RDOT
|
||||
DSU BPL
|
||||
40FPS
|
||||
EXITVR1
|
||||
GOTO
|
||||
KEEPVR
|
||||
|
||||
BANK 5
|
||||
SETLOC ASENT3
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
|
||||
SIN5DEG 2DEC 0.08716 B-2
|
||||
40FPS 2DEC 0.12192 B-7
|
||||
|
||||
BANK 14
|
||||
SETLOC ASENT4
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
|
||||
KEEPVR VLOAD STADR # RECALL LOSVEC FROM PUSHLIST
|
||||
STORE UNWC/2
|
||||
KEEPVR1 VLOAD
|
||||
UNIT/R/
|
||||
STCALL UNFC/2
|
||||
ASCTERM
|
||||
|
||||
ENGOFF RTB
|
||||
LOADTIME
|
||||
DSU DAD
|
||||
PIPTIME
|
||||
TTOGO
|
||||
DCOMP EXIT
|
||||
TC TPAGREE # FORCH SIGN AGREEMENT ON MPAC, MPAC +1.
|
||||
CAF EBANK7
|
||||
TS EBANK
|
||||
EBANK= TGO
|
||||
INHINT
|
||||
CCS MPAC +1
|
||||
TCF +3 # C(A) = DT - 1 BIT
|
||||
TCF +2 # C(A) = 0
|
||||
CAF ZERO # C(A) = 0
|
||||
AD BIT1 # C(A) = 1 BIT OR DT.
|
||||
# Page 853
|
||||
TS ENGOFFDT
|
||||
TC TWIDDLE
|
||||
ADRES ENGOFF1
|
||||
TC PHASCHNG
|
||||
OCT 47014
|
||||
-GENADR ENGOFFDT
|
||||
EBANK= TGO
|
||||
2CADR ENGOFF1
|
||||
|
||||
TC INTPRET
|
||||
SET GOTO
|
||||
IDLEFLAG # DISABLE DELTA-V MONITOR
|
||||
T2TEST
|
||||
|
||||
ENGOFF1 TC IBNKCALL # SHUT OFF THE ENGINE.
|
||||
CADR ENGINOF2
|
||||
|
||||
CAF PRIO17 # SET UP A JOB FOR THE ASCENT GUIDANCE
|
||||
TC FINDVAC # POSTBURN LOGIC.
|
||||
EBANK= WHICH
|
||||
2CADR CUTOFF
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 07024
|
||||
OCT 17000
|
||||
EBANK= TGO
|
||||
2CADR CUTOFF
|
||||
|
||||
TCF TASKOVER
|
||||
|
||||
CUTOFF TC UPFLAG # SET FLRCS FLAG.
|
||||
ADRES FLRCS
|
||||
|
||||
-5 CAF V16N63
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TCF +3
|
||||
TCF CUTOFF1
|
||||
TCF -5
|
||||
|
||||
+3 TC POSTJUMP
|
||||
CADR TERMASC
|
||||
|
||||
CUTOFF1 INHINT
|
||||
TC IBNKCALL # ZERO ATTITUDE ERRORS BEFORE REDUCINT DB.
|
||||
CADR ZATTEROR
|
||||
TC IBNKCALL
|
||||
CADR SETMINDB
|
||||
TC POSTJUMP
|
||||
CADR CUTOFF2
|
||||
# Page 854
|
||||
|
||||
V16N63 VN 1663
|
||||
BANK 30
|
||||
SETLOC ASENT5
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
|
||||
CUTOFF2 TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
CAF V16N85C
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TCF TERMASC
|
||||
TCF +2 # PROCEED
|
||||
TCF CUTOFF2
|
||||
|
||||
TERMASC TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
INHINT # RESTORE DEADBAND DESIRED BY ASTRONAUT.
|
||||
TC IBNKCALL
|
||||
CADR RESTORDB
|
||||
TC DOWNFLAG # DISALLOW ABORTS AT THIS TIME.
|
||||
ADRES LETABORT
|
||||
TCF GOTOP00H
|
||||
|
||||
V16N85C VN 1685
|
||||
|
||||
BANK 27
|
||||
SETLOC ASENT1
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
|
||||
YCOMP VLOAD DOT
|
||||
UNIT/R/
|
||||
QAXIS
|
||||
SL2 DMP
|
||||
RCO
|
||||
STORE Y
|
||||
RVQ
|
||||
|
||||
BANK 30
|
||||
SETLOC ASENT
|
||||
BANK
|
||||
# Page 855
|
||||
100CS EQUALS 2SEC(18)
|
||||
T2A EQUALS 2SEC(17)
|
||||
4SEC(17) 2DEC 400 B-17
|
||||
2SEC(17) 2DEC 200 B-17
|
||||
T3 2DEC 1000 B-17
|
||||
6SEC(18) 2DEC 600 B-18
|
||||
BIT4H OCT 10
|
||||
2SEC(9) 2DEC 200 B-9
|
||||
V06N63* VN 0663
|
||||
V06N76 VN 0676
|
||||
V06N33A VN 0633
|
||||
|
||||
BANK 33
|
||||
SETLOC ASENT6
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
|
||||
KT1 2DEC 0.5000
|
||||
PRLIMIT 2DEC -.0639 # (B/TBUP)MIN=-.1FT.SEC(-3)
|
||||
MINABDV 2DEC .0356 B-5 # 10 PERCENT BIGGER THAN GRAVITY
|
||||
1/DV0 = MASS1
|
||||
|
||||
# Page 856
|
||||
# THE LOGARITHM SUBROUTINE
|
||||
|
||||
BANK 24
|
||||
SETLOC FLOGSUB
|
||||
BANK
|
||||
|
||||
# INPUT ..... X IN MPAC
|
||||
# OUTPUT ..... -LOG(X) IN MPAC
|
||||
|
||||
LOGSUB NORM BDSU
|
||||
MPAC +6
|
||||
NEARONE
|
||||
EXIT
|
||||
TC POLY
|
||||
DEC 6
|
||||
2DEC .0000000060
|
||||
2DEC -.0312514377
|
||||
2DEC -.0155686771
|
||||
2DEC -.0112502068
|
||||
2DEC -.0018545108
|
||||
2DEC -.0286607906
|
||||
2DEC .0385598563
|
||||
2DEC -.0419361902
|
||||
|
||||
CAF ZERO
|
||||
TS MPAC +2
|
||||
EXTEND
|
||||
DCA CLOG2/32
|
||||
DXCH MPAC
|
||||
DXCH BUF +1
|
||||
CA MPAC +6
|
||||
TC SHORTMP
|
||||
DXCH MPAC +1
|
||||
DXCH MPAC
|
||||
DXCH BUF +1
|
||||
DAS MPAC
|
||||
TC INTPRET
|
||||
DCOMP RVQ
|
||||
|
||||
CLOG2/32 2DEC .0216608494
|
||||
|
1027
Luminary099/ATTITUDE_MANEUVER_ROUTINE.s
Normal file
1027
Luminary099/ATTITUDE_MANEUVER_ROUTINE.s
Normal file
File diff suppressed because it is too large
Load Diff
1059
Luminary099/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s
Normal file
1059
Luminary099/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s
Normal file
File diff suppressed because it is too large
Load Diff
558
Luminary099/CONTROLLED_CONSTANTS.s
Normal file
558
Luminary099/CONTROLLED_CONSTANTS.s
Normal file
@ -0,0 +1,558 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: CONTROLLED_CONSTANTS.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: 038-053
|
||||
# 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 38
|
||||
# DPS AND APS ENGINE PARAMETERS
|
||||
|
||||
SETLOC P40S
|
||||
BANK
|
||||
COUNT* $$/P40
|
||||
|
||||
# *** THE ORDER OF THE FOLLOWING SIX CONSTANTS MUST NOT BE CHANGED ***
|
||||
|
||||
FDPS 2DEC 4.3670 B-7 # 9817.5 LBS FORCE IN NEWTONS
|
||||
MDOTDPS 2DEC 0.1480 B-3 # 32.62 LBS/SEC IN KGS/CS
|
||||
DTDECAY 2DEC -38
|
||||
FAPS 2DEC 1.5569 B-7 # 3500 LBS FORCE IN NEWTONS
|
||||
MDOTAPS 2DEC 0.05135 B-3 # 11.32 LBS/SEC IN KGS/CS
|
||||
ATDECAY 2DEC -10
|
||||
|
||||
# ********************************************************************
|
||||
|
||||
FRCS4 2DEC 0.17792 B-7 # 400 LBS FORCE IN NEWTONS
|
||||
FRCS2 2DEC 0.08896 B-7 # 200 LBS FORCE IN NEWTONS
|
||||
|
||||
SETLOC P40S1
|
||||
BANK
|
||||
COUNT* $$/P40
|
||||
|
||||
# *** APS IMPULSE DATA FOR P42 ***************************************
|
||||
|
||||
K1VAL 2DEC 124.55 B-23 # 2800 LB-SEC
|
||||
K2VAL 2DEC 31.138 B-24 # 700 LB-SEC
|
||||
K3VAL 2DEC 1.5569 B-10 # FAPS (3500 LBS THRUST)
|
||||
|
||||
# ********************************************************************
|
||||
|
||||
S40.136 2DEC .4671 B-9 # .4671 M NEWTONS (DPS)
|
||||
S40.136_ 2DEC .4671 B+1 # S40.136 SHIFTED LEFT 10.
|
||||
|
||||
SETLOC ASENT1
|
||||
BANK
|
||||
COUNT* $$/P70
|
||||
|
||||
(1/DV)A 2DEC 15.20 B-7 # 2 SECONDS WORTH OF INITIAL ASCENT
|
||||
# Page 39
|
||||
# STAGE ACCELERATION -- INVERTED (M/CS)
|
||||
# 1) PREDICATED ON A LIFTOFF MASS OF
|
||||
# 4869.9 KG (SNA-8-D-027 7/11/68)
|
||||
# 2) PREDICATED ON A CONTRIBUTION TO VEH-
|
||||
# ICLE ACCELERATION FROM RCS THRUSTERS
|
||||
# EQUIV. TO 1 JET ON CONTINUOUSLY.
|
||||
|
||||
K(1/DV) 2DEC 436.70 B-9 # DPS ENGINE THRUST IN NEWTONS / 100 CS.
|
||||
|
||||
(AT)A 2DEC 3.2883 E-4 B9 # INITIAL ASC. STG. ACCELERATION ** M/CS.
|
||||
# ASSUMPTIONS SAME AS FOR (1/DV)A.
|
||||
(TBUP)A 2DEC 91902 B-17 # ESTIMATED BURN-UP TIME OF THE ASCENT STG.
|
||||
# ASSUMPTIONS SAME AS FOR (1/DV)A WITH THE
|
||||
# ADDITIONAL ASSUMPTION THAT NET MASS-FLOW
|
||||
# RATE = 5.299 KG/SEC = 5.135 (APS) +
|
||||
# .164 (1 RCS JET).
|
||||
SETLOC ASENT
|
||||
BANK
|
||||
COUNT* $$/ASENT
|
||||
AT/RCS 2DEC .0000785 B+10 # 4 JETS IN A DRY LEM
|
||||
|
||||
SETLOC SERVICES
|
||||
BANK
|
||||
COUNT* $$/SERV
|
||||
|
||||
# *** THE ORDER OF THE FOLLOWING TWO CONSTANTS MUST NOT BE CHANGED *******
|
||||
|
||||
APSVEX DEC -3030 E-2 B-5 # 9942 FT/SEC IN M/CS.
|
||||
DPSVEX DEC* -2.95588868 E+1 B-05* # VE (DPS) +2.95588868E+ 3
|
||||
|
||||
# ************************************************************************
|
||||
|
||||
SETLOC F2DPS*31
|
||||
BANK
|
||||
COUNT* $$/F2DPS
|
||||
|
||||
TRIMACCL 2DEC* +3.50132708 E-5 B+08* # A (T) +3.50132708E- 1
|
||||
|
||||
# Page 40
|
||||
# THROTTLING AND THRUST DETECTION PARAMETERS
|
||||
|
||||
SETLOC P40S
|
||||
BANK
|
||||
COUNT* $$/P40
|
||||
|
||||
THRESH1 DEC 24
|
||||
THRESH3 DEC 12
|
||||
HIRTHROT = BIT13
|
||||
|
||||
SETLOC FFTAG5
|
||||
BANK
|
||||
COUNT* $$/P40
|
||||
|
||||
THRESH2 DEC 308
|
||||
|
||||
SETLOC FTHROT
|
||||
BANK
|
||||
COUNT* $$/THROT
|
||||
|
||||
FMAXODD DEC +3841 # FSAT +4.81454413 E+4
|
||||
FMAXPOS DEC +3467 # FMAX +4.34546769 E+4
|
||||
THROTLAG DEC +20 # TAU (TH) +1.99999999 E-1
|
||||
SCALEFAC 2DEC* +7.97959872 E+2 B-16* # BITPERF +7.97959872 E-2
|
||||
|
||||
SETLOC F2DPS*32
|
||||
BANK
|
||||
COUNT* $$/F2DPS
|
||||
|
||||
DPSTHRSH DEC 36 # (THRESH1 + THRESH3 FOR P63)
|
||||
|
||||
# Page 41
|
||||
# LM HARDWARE-RELATED PARAMETERS
|
||||
|
||||
SETLOC RADARUPT
|
||||
BANK
|
||||
COUNT* $$/RRUPT
|
||||
|
||||
LVELBIAS DEC -12288 # LANDING RADAR BIAS FOR 153.6 KC.
|
||||
RDOTBIAS 2DEC 17000 # BIAS COUNT FOR RR RANGE RATE.
|
||||
|
||||
SETLOC LRS22
|
||||
BANK
|
||||
COUNT* $$/LRS22
|
||||
|
||||
RDOTCONV 2DEC -.0019135344 B7 # CONVERTS RR RDOT READING TO M/CS AT 2(7)
|
||||
RANGCONV 2DEC 2.859024 B-3 # CONVERTS RR RANGE READING TO M. AT 2(-29
|
||||
|
||||
SETLOC SERVICES
|
||||
BANK
|
||||
COUNT* $$/SERV
|
||||
|
||||
HBEAMANT 2DEC -.4687018041 # RANGE BEAM IN LR ANTENNA COORDINATES.
|
||||
2DEC 0
|
||||
2DEC -.1741224271
|
||||
|
||||
HSCAL 2DEC -.3288792 # SCALES 1.079 FT/BIT TO 2(22)M.
|
||||
|
||||
# ***** THE SEQUENCE OF THE FOLLOWING CONSTANTS MUST BE PRESERVED *********
|
||||
|
||||
VZSCAL 2DEC +.5410829105 # SCALES .8668 FT/SEC/BIT TO 2(18) M/CS.
|
||||
VYSCAL 2DEC +.7565672446 # SCALES 1.212 FT/SEC/BIT TO 2(18) M/CS.
|
||||
VXSCAL 2DEC -.4020043770 # SCALES -.644 FT/SEC/BIT TO 2(18) M/CS.
|
||||
|
||||
# *************************************************************************
|
||||
|
||||
KPIP DEC .0512 # SCALES DELV TO UNITS OF 2(5) M/CS.
|
||||
KPIP1 2DEC .0128 # SCALES DELV TO UNITS OF 2(7) M/CS.
|
||||
KPIP2 2DEC .0064 # SCALES DELV TO UNITS OF 2(8) M/CS.
|
||||
|
||||
# Page 42
|
||||
ALTCONV 2DEC 1.399078846 B-4 # CONVERTS M*2(-24) TO BIT UNITS *2(-28).
|
||||
ARCONV1 2DEC 656.167979 B-10 # CONV. ALTRATE COMP. TO BIT UNITS<
|
||||
|
||||
SETLOC R10
|
||||
BANK
|
||||
COUNT* $$/R10
|
||||
|
||||
ARCONV OCT 24402 # 656.1679798B-10 CONV ALTRATE TO BIT UNIT
|
||||
ARTOA DEC .1066098 B-1 # .25/2.345 B-1 4X/SEC CYCLE RATE.
|
||||
ARTOA2 DEC .0021322 B8 # (.5)/(2.345)(100)
|
||||
VELCONV OCT 22316 # 588.914 B-10 CONV VEL. TO BIT UNITS.
|
||||
KPIP1(5) DEC .0512 # SCALES DELV TO M/CS*2(-5).
|
||||
MAXVBITS OCT 00547 # MAX. DISPLAYED VELOCITY 199.9989 FT/SEC.
|
||||
|
||||
SETLOC DAPS3
|
||||
BANK
|
||||
COUNT* $$/DAPAO
|
||||
|
||||
TORKJET1 DEC .03757 # 550 / .2 SCALED AT (+16) 64 / 180
|
||||
|
||||
# Page 43
|
||||
# PARAMETERS RELATING TO MASS, INERTIA, AND VEHICLE DIMENSIONS
|
||||
|
||||
SETLOC FRANDRES
|
||||
BANK
|
||||
COUNT* $$/START
|
||||
|
||||
FULLAPS DEC 5050 B-16 # NOMINAL FULL ASCENT MASS -- 2(16) KG.
|
||||
|
||||
SETLOC LOADDAP1
|
||||
BANK
|
||||
COUNT* $$/R03
|
||||
|
||||
MINLMD DEC -2850 B-16 # MIN. DESCENT STAGE MASS -- 2(16) KG.
|
||||
MINMINLM DEC -2200 B-16 # MIN ASCENT STAGE MASS -- 2(16) KG.
|
||||
MINCSM = BIT11 # MIN CSM MASS (OK FOR 1/ACCS) = 9050 LB
|
||||
|
||||
SETLOC DAPS3
|
||||
BANK
|
||||
COUNT* $$/DAPAD
|
||||
|
||||
LOASCENT DEC 2200 B-16 # MIN ASCENT LEM MASS -- 2(16) KG.
|
||||
HIDESCNT DEC 15300 B-16 # MAX DESCENT LEM MASS -- 2(16) KG.
|
||||
LODESCNT DEC 1750 B-16 # MIN DESCENT STAGE (ALONE) -- 2(16) KG.
|
||||
|
||||
# Page 44
|
||||
# PHYSICAL CONSTANTS ( TIME - INVARIANT )
|
||||
|
||||
SETLOC IMU2
|
||||
BANK
|
||||
COUNT* $$/P07
|
||||
|
||||
OMEG/MS 2DEC .24339048
|
||||
|
||||
SETLOC R30LOC
|
||||
BANK
|
||||
COUNT* $$/R30
|
||||
|
||||
# *** THE ORDER OF THE FOLLOWING TWO CONSTANTS MUST BE PRESERVED ***********
|
||||
|
||||
1/RTMUM 2DEC* .45162595 E-4 B14*
|
||||
1/RTMUE 2DEC* .50087529 E-5 B17*
|
||||
|
||||
# **************************************************************************
|
||||
|
||||
SETLOC P40S1
|
||||
BANK
|
||||
COUNT* $$/S40.9
|
||||
|
||||
EARTHMU 2DEC* -3.986032 E10 B-36* # M(3)/CS(2)
|
||||
|
||||
SETLOC ASENT1
|
||||
BANK
|
||||
COUNT* $$/P12
|
||||
|
||||
MUM(-37) 2DEC* 4.9027780 E8 B-37*
|
||||
MOONRATE 2DEC* .26616994890062991 E-7 B+19* # RAD/CS.
|
||||
|
||||
SETLOC SERVICES
|
||||
BANK
|
||||
COUNT* $$/SERV
|
||||
|
||||
# *** THE ORDER OF THE FOLLOWING TWO CONSTANTS MUST BE PRESERVED ***********
|
||||
|
||||
-MUDT 2DEC* -7.9720645 E+12 B-44*
|
||||
-MUDT1 2DEC* -9.8055560 E+10 B-44*
|
||||
|
||||
# **************************************************************************
|
||||
|
||||
-MUDTMUN 2DEC* -9.8055560 E+10 B-38*
|
||||
RESQ 2DEC* 40.6809913 E12 B-58*
|
||||
|
||||
# Page 45
|
||||
20J 2DEC 3.24692010 E-2
|
||||
2J 2DEC 3.24692010 E-3
|
||||
|
||||
SETLOC P50S1
|
||||
BANK
|
||||
COUNT* $$/LOSAM
|
||||
|
||||
RSUBEM 2DEC 384402000 B-29
|
||||
RSUBM 2DEC 1738090 B-29
|
||||
RSUBE 2DEC 6378166 B-29
|
||||
ROE 2DEC .00257125
|
||||
|
||||
SETLOC CONICS1
|
||||
BANK
|
||||
COUNT* $$/LT-LG
|
||||
|
||||
ERAD 2DEC 6373338 B-29 # PAD RADIUS
|
||||
504RM 2DEC 1738090 B-29 # METERS B-29 (EQUATORIAL MOON RADIUS)
|
||||
|
||||
SETLOC CONICS1
|
||||
BANK
|
||||
COUNT* $$/CONIC
|
||||
|
||||
# *** THE ORDER OF THE FOLLOWING CONSTANTS MUST BE PRESERVED **************
|
||||
|
||||
MUTABLE 2DEC* 3.986032 E10 B-36* # MUE
|
||||
2DEC* .25087606 E-10 B+34* # 1/MUE
|
||||
2DEC* 1.99650495 E5 B-18* # SQRT(MUE)
|
||||
2DEC* .50087529 E-5 B+17* # 1/SQRT(MUE)
|
||||
2DEC* 4.902778 E8 B-30* # MUM
|
||||
2DEC* .203966 E-8 B+28* # 1/MUM
|
||||
2DEC* 2.21422176 E4 B-15* # SQRT(MUM)
|
||||
2DEC* .45162595 E-4 B+14* # 1/SQRT(MUM)
|
||||
|
||||
# *************************************************************************
|
||||
|
||||
# Page 46
|
||||
SETLOC INTINIT
|
||||
BANK
|
||||
COUNT* $$/INTIN
|
||||
|
||||
OMEGMOON 2DEC* 2.66169947 E-8 B+23*
|
||||
|
||||
SETLOC ORBITAL2
|
||||
BANK
|
||||
COUNT* $$/ORBIT
|
||||
|
||||
# *** THE ORDER OF THE FOLLOWING CONSTANTS MUST NOT BE CHANGED ************
|
||||
|
||||
2DEC* 1.32715445 E16 B-54*
|
||||
MUM 2DEC* 4.9027780 E8 B-30*
|
||||
MUEARTH 2DEC* 3.986032 E10 B-36*
|
||||
2DEC 0
|
||||
J4REQ/J3 2DEC* .4991607391 E7 B-26*
|
||||
2DEC -176236.02 B-25
|
||||
2J3RE/J2 2DEC* -.1355426363 E5 B-27*
|
||||
2DEC* .3067493316 E18 B-60*
|
||||
J2REQSQ 2DEC* 1.75501139 E21 B-72*
|
||||
3J22R2MU 2DEC* 9.20479048 E16 B-58*
|
||||
|
||||
# *************************************************************************
|
||||
|
||||
SETLOC TOF-FF1
|
||||
BANK
|
||||
COUNT* $$/TFF
|
||||
|
||||
1/RTMU 2DEC* .5005750271 E-5 B17* # MODIFIED EARTH MU
|
||||
|
||||
SETLOC SBAND
|
||||
BANK
|
||||
COUNT* $$/R05
|
||||
|
||||
REMDIST 2DEC 384402000 B-29 # MEAN DISTANCE BETWEEN EARTH AND MOON.
|
||||
|
||||
# Page 47
|
||||
# PHYSICAL CONSTANTS (TIME - VARIANT)
|
||||
|
||||
SETLOC STARTAB
|
||||
BANK
|
||||
COUNT* $$/STARS
|
||||
|
||||
2DEC +.8342971408 B-1 # STAR 37 X
|
||||
2DEC -.2392481515 B-1 # STAR 37 Y
|
||||
2DEC -.4966976975 B-1 # STAR 37 Z
|
||||
|
||||
2DEC +.8139832631 B-1 # STAR 36 X
|
||||
2DEC -.5557243189 B-1 # STAR 36 Y
|
||||
2DEC +.1691204557 B-1 # STAR 36 Z
|
||||
|
||||
2DEC +.4541086270 B-1 # STAR 35 X
|
||||
2DEC -.5392368197 B-1 # STAR 35 Y
|
||||
2DEC +.7092312789 B-1 # STAR 35 Z
|
||||
|
||||
2DEC +.3201817378 B-1 # STAR 34 X
|
||||
2DEC -.4436021946 B-1 # STAR 34 Y
|
||||
2DEC -.8370786986 B-1 # STAR 34 Z
|
||||
|
||||
2DEC +.5520184464 B-1 # STAR 33 X
|
||||
2DEC -.7933187400 B-1 # STAR 33 Y
|
||||
2DEC -.2567508745 B-1 # STAR 33 Z
|
||||
|
||||
2DEC +.4537196908 B-1 # STAR 32 X
|
||||
2DEC -.8779508801 B-1 # STAR 32 Y
|
||||
2DEC +.1527766153 B-1 # STAR 32 Z
|
||||
|
||||
2DEC +.2069525789 B-1 # STAR 31 X
|
||||
2DEC -.8719885748 B-1 # STAR 31 Y
|
||||
2DEC -.4436288486 B-1 # STAR 31 Z
|
||||
|
||||
2DEC +.1217293692 B-1 # STAR 30 X
|
||||
2DEC -.7702732847 B-1 # STAR 30 Y
|
||||
# Page 48
|
||||
2DEC +.6259880410 B-1 # STAR 30 Z
|
||||
|
||||
2DEC -.1124304773 B-1 # STAR 29 X
|
||||
2DEC -.9694934200 B-1 # STAR 29 Y
|
||||
2DEC +.2178116072 B-1 # STAR 29 Z
|
||||
|
||||
2DEC -.1146237858 B-1 # STAR 28 X
|
||||
2DEC -.3399692557 B-1 # STAR 28 Y
|
||||
2DEC -.9334250333 B-1 # STAR 28 Z
|
||||
|
||||
2DEC -.3516499609 B-1 # STAR 27 X
|
||||
2DEC -.8240752703 B-1 # STAR 27 Y
|
||||
2DEC -.4441196390 B-1 # STAR 27 Z
|
||||
|
||||
2DEC -.5326876930 B-1 # STAR 26 X
|
||||
2DEC -.7160644554 B-1 # STAR 26 Y
|
||||
2DEC +.4511047742 B-1 # STAR 26 Z
|
||||
|
||||
2DEC -.7861763936 B-1 # STAR 25 X
|
||||
2DEC -.5217996305 B-1 # STAR 25 Y
|
||||
2DEC +.3311371675 B-1 # STAR 25 Z
|
||||
|
||||
2DEC -.6898393233 B-1 # STAR 24 X
|
||||
2DEC -.4182330640 B-1 # STAR 24 Y
|
||||
2DEC -.5909338474 B-1 # STAR 24 Z
|
||||
|
||||
2DEC -.5812035376 B-1 # STAR 23 X
|
||||
2DEC -.2909171294 B-1 # STAR 23 Y
|
||||
2DEC +.7599800468 B-1 # STAR 23 Z
|
||||
|
||||
2DEC -.9170097662 B-1 # STAR 22 X
|
||||
2DEC -.3502146628 B-1 # STAR 22 Y
|
||||
2DEC -.1908999176 B-1 # STAR 22 Z
|
||||
|
||||
# Page 49
|
||||
2DEC -.4523440203 B-1 # STAR 21 X
|
||||
2DEC -.0493710140 B-1 # STAR 21 Y
|
||||
2DEC -.8904759346 B-1 # STAR 21 Z
|
||||
|
||||
2DEC -.9525211695 B-1 # STAR 20 X
|
||||
2DEC -.0593434796 B-1 # STAR 20 Y
|
||||
2DEC -.2986331746 B-1 # STAR 20 Z
|
||||
|
||||
2DEC -.9656605484 B-1 # STAR 19 X
|
||||
2DEC +.0525933156 B-1 # STAR 19 Y
|
||||
2DEC +.2544280809 B-1 # STAR 19 Z
|
||||
|
||||
2DEC -.8608205219 B-1 # STAR 18 X
|
||||
2DEC +.4636213989 B-1 # STAR 18 Y
|
||||
2DEC +.2098647835 B-1 # STAR 18 Z
|
||||
|
||||
2DEC -.7742591356 B-1 # STAR 17 X
|
||||
2DEC +.6152504197 B-1 # STAR 17 Y
|
||||
2DEC -.1482892839 B-1 # STAR 17 Z
|
||||
|
||||
2DEC -.4657947941 B-1 # STAR 16 X
|
||||
2DEC +.4774785033 B-1 # STAR 16 Y
|
||||
2DEC +.7450164351 B-1 # STAR 16 Z
|
||||
|
||||
2DEC -.3612508532 B-1 # STAR 15 X
|
||||
2DEC +.5747270840 B-1 # STAR 15 Y
|
||||
2DEC -.7342932655 B-1 # STAR 15 Z
|
||||
|
||||
2DEC -.4118589524 B-1 # STAR 14 X
|
||||
2DEC +.9065485360 B-1 # STAR 14 Y
|
||||
2DEC +.0924226975 B-1 # STAR 14 Z
|
||||
|
||||
2DEC -.1820751783 B-1 # STAR 13 X
|
||||
# Page 50
|
||||
2DEC +.9404899869 B-1 # STAR 13 Y
|
||||
2DEC -.2869271926 B-1 # STAR 13 Z
|
||||
|
||||
2DEC -.0614937230 B-1 # STAR 12 X
|
||||
2DEC +.6031563286 B-1 # STAR 12 Y
|
||||
2DEC -.7952489957 B-1 # STAR 12 Z
|
||||
|
||||
2DEC +.1371725575 B-1 # STAR 11 X
|
||||
2DEC +.6813721061 B-1 # STAR 11 Y
|
||||
2DEC +.7189685267 B-1 # STAR 11 Z
|
||||
|
||||
2DEC +.2011399589 B-1 # STAR 10 X
|
||||
2DEC +.9690337941 B-1 # STAR 10 Y
|
||||
2DEC -.1432348512 B-1 # STAR 10 Z
|
||||
|
||||
2DEC +.3507315038 B-1 # STAR 9 X
|
||||
2DEC +.8926333307 B-1 # STAR 9 Y
|
||||
2DEC +.2831839492 B-1 # STAR 9 Z
|
||||
|
||||
2DEC +.4105636020 B-1 # STAR 8 X
|
||||
2DEC +.4988110001 B-1 # STAR 8 Y
|
||||
2DEC +.7632988371 B-1 # STAR 8 Z
|
||||
|
||||
2DEC +.7032235469 B-1 # STAR 7 X
|
||||
2DEC +.7075846047 B-1 # STAR 7 Y
|
||||
2DEC +.0692868685 B-1 # STAR 7 Z
|
||||
|
||||
2DEC +.5450107404 B-1 # STAR 6 X
|
||||
2DEC +.5314955466 B-1 # STAR 6 Y
|
||||
2DEC -.6484410356 B-1 # STAR 6 Z
|
||||
|
||||
2DEC +.0130968840 B-1 # STAR 5 X
|
||||
2DEC +.0078062795 B-1 # STAR 5 Y
|
||||
# Page 51
|
||||
2DEC +.9998837600 B-1 # STAR 5 Z
|
||||
|
||||
2DEC +.4917678276 B-1 # STAR 4 X
|
||||
2DEC +.2204887125 B-1 # STAR 4 Y
|
||||
2DEC -.8423473935 B-1 # STAR 4 Z
|
||||
|
||||
2DEC +.4775639450 B-1 # STAR 3 X
|
||||
2DEC +.1166004340 B-1 # STAR 3 Y
|
||||
2DEC +.8708254803 B-1 # STAR 3 Z
|
||||
|
||||
2DEC +.9342640400 B-1 # STAR 2 X
|
||||
2DEC +.1735073142 B-1 # STAR 2 Y
|
||||
2DEC -.3115219339 B-1 # STAR 2 Z
|
||||
|
||||
2DEC +.8748658918 B-1 # STAR 1 X
|
||||
2DEC +.0260879174 B-1 # STAR 1 Y
|
||||
2DEC +.4836621670 B-1 # STAR 1 Z
|
||||
|
||||
CATLOG DEC 6970
|
||||
|
||||
# *******************************************************************************
|
||||
|
||||
SETLOC EPHEM1
|
||||
BANK
|
||||
COUNT* $$/EPHEM
|
||||
|
||||
KONMAT 2DEC 1.0 B-1 # ********************
|
||||
2DEC 0 # *
|
||||
2DEC 0 # *
|
||||
2DEC 0 # *
|
||||
2DEC .91745 B-1 # K1 COS(OBL) *
|
||||
2DEC -.03571 B-1 # K2 SIN(OBL)SIN(IM) *
|
||||
2DEC 0 # *
|
||||
2DEC .39784 B-1 # K3 SIN(OBL) *
|
||||
# Page 52
|
||||
2DEC .082354 B-1 # K4 COS(OBL)SIN(IM) *
|
||||
CSTODAY 2DEC 8640000 B-33 # * NOTE: *
|
||||
RCB-13 OCT 00002 # * TABLES CONTAIN *
|
||||
OCT 00000 # * CONSTANTS FOR *
|
||||
RATESP 2DEC .03660098 B+4 # LOMR * 1969 - 1970 *
|
||||
2DEC .00273779 B+4 # LOSR
|
||||
2DEC -.00014719 B+4 # LONR
|
||||
2DEC .815282336 # LOMO
|
||||
2DEC .274674910 # LOSO
|
||||
2DEC .986209499 # LONO
|
||||
VAL67 2DEC* .01726666666 B+1* # AMOD
|
||||
2DEC .530784445 # AARG
|
||||
2DEC .036291712 B+1 # 1/27
|
||||
2DEC .003505277 B+1 # BMOD
|
||||
2DEC .585365625 # BARG
|
||||
2DEC .03125 B+1 # 1/32
|
||||
2DEC .005325277 B+1 # CMOD
|
||||
2DEC -.01106341036 # CARG
|
||||
2DEC .002737925 B+1 # 1/365
|
||||
|
||||
# ********************************************************************************
|
||||
|
||||
SETLOC PLANTIN2
|
||||
BANK
|
||||
COUNT* $$/LUROT
|
||||
|
||||
COSI 2DEC .99964173 B-1 # COS (5521.5 SEC.) B-1
|
||||
SINI 2DEC .02676579 B-1 # SIN (5521.5 SEC.) B-1
|
||||
NODDOT 2DEC -.457335121 E-2 # REV/CSEC B+28 = -1.07047011 E-8 RAD/SEC
|
||||
FDOT 2DEC .570863327 # REV/CSEC B+27 = 2.67240410 E-6 RAD/SEC
|
||||
# Page 53
|
||||
BDOT 2DEC -3.07500686 E-8 # REV/CSEC B+28 = -7.19757301 E-14 RAD/SEC
|
||||
NODIO 2DEC .986209434 # REVS B-D = 6.19653663041 RAD
|
||||
FSUBO 2DEC .829090536 # REVS B-D = 5.20932947829 RAD
|
||||
BSUBO 2DEC .0651201393 # REVS B-D = 0.40916190299 RAD
|
||||
WEARTH 2DEC .973561595 # REV/CSEC B+23 = 7.29211494 E-5 RAD/SEC
|
||||
|
481
Luminary099/DAPIDLER_PROGRAM.s
Normal file
481
Luminary099/DAPIDLER_PROGRAM.s
Normal file
@ -0,0 +1,481 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: DAPIDLER_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: 1410-1420
|
||||
# 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 1410
|
||||
# THE DAPIDLER PROGRAM IS STARTED BY FRESH START AND RESTART. THE DAPIDLER PROGRAM IS DONE 10 TIMES
|
||||
# PER SECOND UNTIL THE ASTRONAUT DESIRES THE DAP TO WAKE UP, AND THE IMU AND CDUS ARE READY FOR USE BY THE DAP.
|
||||
# THE NECESSARY INITIALIZATION OF THE DAP IS DONE BY THE DAPIDLER PROGRAM.
|
||||
|
||||
BANK 16
|
||||
SETLOC DAPS1
|
||||
BANK
|
||||
|
||||
EBANK= AOSQ
|
||||
|
||||
COUNT* $$/DAPID
|
||||
|
||||
CHEKBITS EXTEND
|
||||
READ CHAN31 # IF BOTH BIT13 AND BIT14 ARE ONE, THEN
|
||||
COM # THE MODE SELECT SWITCH IS IN THE OFF
|
||||
MASK BIT13-14 # POSITION, AND SO THE DAP SHOULD BE OFF,
|
||||
EXTEND # WITH NO ATTITUDE ERROR DISPLAY.
|
||||
BZF MOREIDLE
|
||||
|
||||
CS IMODES33
|
||||
MASK BIT6
|
||||
CCS A
|
||||
TCF JUMPDSP
|
||||
CS RCSFLAGS # IMU NOT USABLE. SET UP INITIALIZATION
|
||||
MASK BIT3 # FLAG FOR ATT ERROR DISPLAY ROUTINE.
|
||||
ADS RCSFLAGS
|
||||
TCF SHUTDOWN
|
||||
|
||||
CHEKMORE CAF BIT10 # BIT 10 OF 30 IS PGNCS CONTROL OF S/C
|
||||
EXTEND
|
||||
RAND CHAN30 # BITS IN 30 ARE INVERTED
|
||||
CCS A
|
||||
TCF MOREIDLE
|
||||
|
||||
RETURN
|
||||
|
||||
# Page 1411
|
||||
# DAPIDLER ENTRY.
|
||||
|
||||
DAPIDLER LXCH BANKRUPT # INTERRUPT LEAD INS (CONTINUED)
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
|
||||
CA RCSFLAGS
|
||||
MASK BIT13
|
||||
CCS A # CHECK IF 1/ACCJOB HAS BEEN SET UP SINCE
|
||||
TCF CHECKUP # THE LAST FRESH START OR RESTART.
|
||||
CA BIT13
|
||||
ADS RCSFLAGS # BIT 13 IS 1.
|
||||
CAF PRIO27
|
||||
TC NOVAC # SET UP JOB TO DO A LITTLE INITIALIZATION
|
||||
EBANK= AOSQ # AND EXECUTE 1/ACCS.
|
||||
2CADR 1/ACCSET # (WILL BRANCH TO MOREIDLE ON ACCSOKAY)
|
||||
|
||||
CHECKUP TC CHEKBITS # CHECK TO SEE IF LM DAP IS TO GO ON AND
|
||||
# DO ERROR DISPLAY.
|
||||
|
||||
CAE DAPBOOLS # IF 1/ACCS HAS NOT BEEN COMPLETED, IDLE.
|
||||
MASK ACCSOKAY # NOTE: ONLY FRESH START AND RESTART
|
||||
EXTEND # KNOCK THIS BIT DOWN.
|
||||
BZF MOREIDLE
|
||||
|
||||
STARTDAP TC IBNKCALL # ZERO ATTITUDE ERROR AND DESIRED RATES.
|
||||
FCADR ZATTEROR
|
||||
CAF ZERO # ************ INITIALIZE: *************
|
||||
TS TJP
|
||||
TS TJU
|
||||
TS TJV
|
||||
TS OMEGAP # RATES IN BODY (PILOT) COORDINATES.
|
||||
TS OMEGAQ
|
||||
TS OMEGAR
|
||||
TS TRAPEDP
|
||||
TS TRAPEDQ
|
||||
TS TRAPEDR
|
||||
TS AOSQ # OFFSET ACCELERATION ESTIMATES.
|
||||
TS AOSQ +1
|
||||
TS AOSR
|
||||
TS AOSR +1
|
||||
TS ALPHAQ # COPIES OF OFFSET ESTIMATES FOR DOWNLIST.
|
||||
TS ALPHAR
|
||||
TS NEGUQ
|
||||
TS NEGUR
|
||||
TS AOSQTERM # QRAXIS RATE DERIVATION TERMS AND KALMAN
|
||||
TS AOSRTERM # FILTER INITIALIZATION TERMS.
|
||||
TS QACCDOT # DESCENT ACCELERATION DERIVATIVE EST.
|
||||
TS RACCDOT
|
||||
# Page 1412
|
||||
TS ALLOWGTS # AOSTASK FLAG FOR QRAXIS RCS CONTROL USE.
|
||||
TS COTROLER # DO TRYGTS ON FIRST PASS (WILL GO TO RCS)
|
||||
TS INGTS # RECOGNIZE FIRST GTS PASS AS SUCH.
|
||||
TS QGIMTIMR # STOP GIMBAL DRIVES. (PROBABLY WOULD BE
|
||||
TS RGIMTIMR # GOOD ENOUGH JUST TO INACTIVATE TIMERS)
|
||||
TS OLDPMIN # MINIMUM IMPULSE MODE ERASABLES
|
||||
TS OLDQRMIN
|
||||
TS PJETCTR # INITIALIZE DOCKED JET INHIBITION
|
||||
TS UJETCTR # COUNTERS
|
||||
TS VJETCTR
|
||||
CALLGMBL EQUALS BIT5 # RCSFLAGS INITIALIZATION.
|
||||
CS MANFLAG
|
||||
MASK RCSFLAGS # NEGUQ(R) HAVE BEEN GENERATED.
|
||||
TS RCSFLAGS
|
||||
|
||||
# SET UP "OLD" MEASURED CDU ANGLES:
|
||||
|
||||
EXTEND
|
||||
DCA CDUX # OLDXFORP AND OLDYFORP
|
||||
DXCH OLDXFORP
|
||||
CA CDUZ
|
||||
TS OLDZFORQ
|
||||
CS RCSFLAGS
|
||||
MASK BIT12
|
||||
ADS RCSFLAGS # BIT 12 SET TO 1.
|
||||
CA FOUR
|
||||
TS SKIPU
|
||||
TS SKIPV
|
||||
CA POSMAX
|
||||
TS TIME6
|
||||
TS T6NEXT
|
||||
TS T6FURTHA
|
||||
CA ZERO
|
||||
TS T6NEXT +1
|
||||
TS T6FURTHA +1
|
||||
TS NXT6ADR
|
||||
TS NEXTP
|
||||
TS NEXTU
|
||||
TS NEXTV
|
||||
CS TEN
|
||||
TS DAPZRUPT # JASK NOT IN PROGRESS, INITIALIZE NEG.
|
||||
CA TWO
|
||||
TS NPTRAPS
|
||||
TS NQTRAPS
|
||||
TS NRTRAPS
|
||||
EXTEND
|
||||
DCA PAXADIDL
|
||||
DXCH T5ADR
|
||||
SETTIME5 CAF MS100
|
||||
TS TIME5
|
||||
# Page 1413
|
||||
TCF RESUME
|
||||
EBANK= AOSQ
|
||||
IDLERADR 2CADR DAPIDLER
|
||||
|
||||
MOREIDLE TC IBNKCALL # CALCULATE Q,R-AXES ATTITUDE ERRORS.
|
||||
CADR QERRCALC
|
||||
|
||||
TC IBNKCALL
|
||||
CADR CALCPERR # CALCULATE P AXIS ATTITUDE ERRORS.
|
||||
|
||||
SHUTDOWN EXTEND
|
||||
DCA IDLERADR
|
||||
DXCH T5ADR
|
||||
|
||||
CAF ZERO # KILL ANY POSSIBLE JET REQUESTS
|
||||
TS NEXTP
|
||||
TS NEXTU
|
||||
TS NEXTV
|
||||
EXTEND # COMMAND JETS OFF.
|
||||
WRITE CHAN5
|
||||
EXTEND
|
||||
WRITE CHAN6
|
||||
CS BGIM23 # TURN TRIM GIMBAL OFF
|
||||
EXTEND
|
||||
WAND CHAN12
|
||||
TCF SETTIME5 # RETURN IN 100 MSEC.
|
||||
|
||||
MANFLAG OCT 03021
|
||||
BGIM23 OCTAL 07400
|
||||
EBANK= OMEGAP
|
||||
PAXADIDL 2CADR PAXIS
|
||||
|
||||
MS100 = OCT37766
|
||||
COSMG = ITEMP1
|
||||
JUMPDSP EXTEND # TRANSFER TO BANK 20
|
||||
DCA DSPCADR # FOR ATTITUDE ERROR DISPLAYS
|
||||
DTCB
|
||||
|
||||
EBANK= AK
|
||||
DSPCADR 2CADR ALTDSPLY
|
||||
|
||||
# Page 1414
|
||||
BANK 20
|
||||
SETLOC DAPS3
|
||||
BANK
|
||||
COUNT* $$/NEEDL
|
||||
|
||||
# PROGRAM: ALTDSPLY
|
||||
# MOD 0. 6 DEC 1967
|
||||
# AUTHOR: CRAIG WORK, DON KEENE, MIT IL
|
||||
# MOD 3 BY DON KEENE AUG 1, 1968 -- MOVED PROGRAM TO BANK 20
|
||||
#
|
||||
# PROGRAM DESCRIPTION:
|
||||
# ALTDSPLY REVERSES THE DSPLYALT BIT OF RCSFLAGS EACH TIME IT IS CALLED, WHICH IS PRESUMABLY EVERY 100 MS.
|
||||
# IF THE REVERSED BIT IS ONE, NEEDLER IS CALLED TO DISPLAY ATTITUDE ERRORS. IF THE BIT IS ZERO, THE ATTITUDE ERR-
|
||||
# ORS ARE CALCULATED AS 1) DAP FOLLOWING ERRORS, IF NEEDLFLG = 0, AND 2) TOTAL ATTITUDE ERRORS FOR NEEDLFLG = 1.
|
||||
#
|
||||
#
|
||||
# WARNING: ALTDSPLY MAY ONLY BE CALLED WITH INTERRUPT INHIBITED
|
||||
#
|
||||
# WARNING: EBANK MUST BE SET TO 6 WHEN USING THIS ROUTINE.
|
||||
#
|
||||
# INPUT: RCSFLAGS AND 1) IF NEEDLFLG = 0, INPUT PERROR, QERROR, RERROR.
|
||||
# 2) IF NEEDLFLG = 1, INPUT CPHI,CTHETA,CPSI,CDUX,CDUY,CDUZ,M11,M21,M32,M22,M32. (GPMATRIX)
|
||||
#
|
||||
#
|
||||
# OUTPUTS: RCSFLAGS WITH DSPLYALT REVERSED, AK, AK1, AK2, + NEEDLER OUTPUTS.
|
||||
#
|
||||
# ENTRY: TCF ALTDSPLY
|
||||
#
|
||||
# EXIT: TCF CHEKMORE
|
||||
#
|
||||
# ALARM OR ABORT EXITS: NONE
|
||||
#
|
||||
# SUBPROGRAMS CALLED: NEEDLER, OVERSUB2
|
||||
#
|
||||
# DEBRIS: A, L, AND NEEDLER DEBRIS.
|
||||
|
||||
ALTDSPLY CA RCSFLAGS # INVERT THE DISPLAY ALTERNATION BIT.
|
||||
TS L
|
||||
CA DSPLYALT
|
||||
EXTEND
|
||||
RXOR LCHAN
|
||||
TS RCSFLAGS
|
||||
|
||||
MASK DSPLYALT
|
||||
CCS A # IS ALTERNATION FLAG ZERO?
|
||||
TCF NEEDLER
|
||||
|
||||
CAE FLAGWRD0 # NEEDLFLG WILL INDICATE TOTAL OR DAP AT-
|
||||
# Page 1415
|
||||
MASK NEEDLBIT # TITUDE ERROR DISPLAY REQUEST.
|
||||
CCS A
|
||||
TCF DSPLYTOT # TOTAL ERROR IS NEEDED IN AK, AK +1, AK +2
|
||||
|
||||
CS QERROR # YES. DISPLAY ATT ERRORS ON THE -BALL.
|
||||
TS AK +1 # ERROR COMPLEMENTS ARE INPUT TO NEEDLER.
|
||||
CS RERROR
|
||||
TS AK +2
|
||||
CS PERROR
|
||||
XCH AK
|
||||
|
||||
TCF RETNMORE # DISPLAY THESE THE NEXT TIME THROUGH
|
||||
|
||||
# CALCULATE GIMBAL ANGLE TOTAL ERRORS, RESOLVE INTO PILOT AXES, STORE TOTAL ERRORS FOR NEEDLER. Q-AXIS FIRST.
|
||||
|
||||
DSPLYTOT EXTEND
|
||||
QXCH ITEMP1 # SAVE Q FOR CHEKBITS RETURN.
|
||||
|
||||
CA CTHETA # DESIRED ATTITUDE, Y-AXIS, 2'S COMP.
|
||||
EXTEND # SUBTRACT CURRENT ATTITUDE.
|
||||
MSU CDUY # DIFFERENCE SCALED AT PI, 1'S COMP.
|
||||
TS AK # SAVE FOR R-ERROR CALCULATION.
|
||||
EXTEND
|
||||
MP M21 # (CTHETA-CDUY)*M21 SCALED AT PI RADIANS.
|
||||
XCH AK +1 # STORE FIRST TERM OF Q ERROR.
|
||||
CA CPSI # DESIRED ATTITUDE, Z-AXIS, 2'S COMP.
|
||||
EXTEND # SUBTRACT CURRENT ATTITUDE.
|
||||
MSU CDUZ # DIFFERENCE SCALED AT PI, 1'S COMP.
|
||||
TS AK +2 # SAVE Z-AXIS TERM FOR R ERROR CALCULATION
|
||||
EXTEND
|
||||
MP M22 # (CPSI-CDUZ)*M22, SCALED AT PI RADIANS.
|
||||
AD AK +1 # Q ERROR COMPLETE , AT PI RAD.
|
||||
TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW
|
||||
TS AK +1
|
||||
|
||||
# R ERROR CALCULATION NEXT.
|
||||
|
||||
CA AK # Y-AXIS DIFFERENCE STORED BY Q-AXIS CALC.
|
||||
EXTEND
|
||||
MP M31 # (CTHETA-CDUY)*M31, SCALED AT PI RADIANS.
|
||||
XCH AK +2 # FIRST TERM OF R ERROR.
|
||||
# Z-AXIS DIFFERENCE, STORED BY A CALC. IS
|
||||
EXTEND # RECOVERED BY THE EXCHANGE.
|
||||
MP M32 # (CPSI-CDUZ)*M32, SCALED AT PI RADIANS.
|
||||
AD AK +2 # R ERROR COMPLETE , AT PI RAD.
|
||||
TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW.
|
||||
TS AK +2
|
||||
|
||||
# NOW CALCULATE P ERROR. (NOTE THAT M13 = 1, SCALED AT 1, SO THE MULTIPLICATION IS BY-PASSED.)
|
||||
# Page 1416
|
||||
CA AK # Y-AXIS DIFFERENCE STORED BY Q AXIS CALC.
|
||||
EXTEND
|
||||
MP M11 # (CTHETA-CDUY)*M11 SCALED AT PI RADIANS.
|
||||
XCH AK # FIRST TERM OF P ERROR IN AK, AT PI RAD.
|
||||
CAE CPHI # DESIRED ATTITUDE, X-AXIS, 2'S COMP.
|
||||
EXTEND # SUBTRACT CURRENT X ATTITUDE.
|
||||
MSU CDUX # X-AXIS DIFFERENCE, 1'S COMP, AT PI RAD.
|
||||
|
||||
# M13 = 1, SO BYPASS THE MULTIPLICATION.
|
||||
# EXTEND
|
||||
# MP M13 # (CPHI-CDUX)*M13 SCALED AT PI RADIANS.
|
||||
|
||||
AD AK # P ERROR COMPLETE , SCALED AT PI RAD
|
||||
TC OVERSUB2 # PIN NEEDLES IN CASE OF OVERFLOW.
|
||||
TS AK
|
||||
|
||||
EXTEND
|
||||
QXCH ITEMP1 # RESTORE Q FOR CHEKBITS RETURN.
|
||||
|
||||
TCF RETNMORE # DISPLAY THESE THE NEXT TIME THROUGH
|
||||
|
||||
# Page 1417
|
||||
# FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
|
||||
#
|
||||
# PROGRAM DESCRIPTION: D. KEENE 5/24/67
|
||||
# MOD 1 BY CRAIG WORK, 12 DEC 67
|
||||
# MOD 2 BY CRAIG WORK, 6 APRIL 68, CONVERTS ATTITUDE ERROR DISPLAY SCALING FROM 16 7/8 DEG. TO 42 3/16 DEGREES.
|
||||
#
|
||||
# THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
|
||||
# IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
|
||||
# OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
|
||||
# THE DACS.
|
||||
#
|
||||
# CALLING SEQUENCE:
|
||||
# DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
|
||||
# TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
|
||||
# CS RCSFLAGS # IN EBANK6
|
||||
# MASK BIT3
|
||||
# ADS RCSFLAGS
|
||||
# THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERRED TO THE FOLLOWING LOCATIONS IN EBANK6:
|
||||
# AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
|
||||
# AK1 SCALED 180 DEGREES TO CHANGE
|
||||
# AK2 SCALED 180 DEGREES
|
||||
# FULL SCALED DEFLECTION OF THE NEEDLES CORRESPONDS TO 5 1/16 DEGREES, WHILE 384 BITS IN THE IMU ERROR COUNTER
|
||||
# CORRESPONDS TO 42 3/16 DEGREES. (DAC MAXIMUM CAPACITY IS 384 BITS.) 46 BITS EFFECTIVELY PIN THE NEEDLES.
|
||||
#
|
||||
# A CALL TO NEEDLER WILL THE UPDATE THE DISPLAY:
|
||||
# INHINT
|
||||
# TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6
|
||||
# CADR NEEDLER
|
||||
# RELINT
|
||||
# THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE
|
||||
# REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
|
||||
# NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50 MS. TO ASSURE PROPER RELAY SEQUENCING.
|
||||
#
|
||||
# ERASABLES USED:
|
||||
# AK CDUXCMD
|
||||
# AK1 CDUYCMD
|
||||
# AK2 CDUZCMD
|
||||
# EDRIVEX A,L,Q
|
||||
# EDRIVEY T5TEMP
|
||||
# EDRIVEZ DINDX
|
||||
# Page 1418
|
||||
#
|
||||
# SWITCHES: RCSFLAGS BITS 3,2
|
||||
#
|
||||
# I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN -- READ ONLY)
|
||||
# CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
|
||||
# CHAN14 BIT 13,14,15 (DAC ACTIVITY)
|
||||
#
|
||||
# SIGN CONVENTION: AK = THETAC - THETA
|
||||
# WHERE THETAC = COMMAND ANGLE
|
||||
# THETA = PRESENT ANGLE
|
||||
|
||||
NEEDLER CA RCSFLAGS
|
||||
MASK SIX
|
||||
EXTEND
|
||||
BZF NEEDLES3
|
||||
MASK BIT3
|
||||
EXTEND
|
||||
BZF NEEDLER2 # BIT3 = 0, BIT2 = 1
|
||||
|
||||
CS BIT6 # FIRST PASS BIT3 = 1
|
||||
EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS
|
||||
WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE
|
||||
NEEDLE11 CS ZERO # ENABLING COUNTERS.
|
||||
TS AK # ZERO THE INPUTS ON FIRST PASS
|
||||
TS AK1
|
||||
TS AK2
|
||||
TS EDRIVEX # ZERO THE DISPLAY REGISTERS
|
||||
TS EDRIVEY
|
||||
TS EDRIVEZ
|
||||
TS CDUXCMD # ZERO THE OUT COUNTERS
|
||||
TS CDUYCMD
|
||||
TS CDUZCMD
|
||||
CS SIX # RESET RCSFLAGS FOR PASS2
|
||||
MASK RCSFLAGS
|
||||
AD BIT2
|
||||
TS RCSFLAGS
|
||||
TCF RETNMORE
|
||||
|
||||
NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS
|
||||
EXTEND
|
||||
WOR CHAN12
|
||||
CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE
|
||||
MASK RCSFLAGS # ERRORS. WAIT AT LEAST 4 MS FOR
|
||||
TS RCSFLAGS # RELAY CLOSURE.
|
||||
TCF RETNMORE
|
||||
|
||||
NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER
|
||||
EXTEND # IS ENABLED
|
||||
RAND CHAN12
|
||||
# Page 1419
|
||||
CCS A # IF NOT, RE-INITIALIZE NEEDLER.
|
||||
TCF NEEDLES
|
||||
|
||||
CS RCSFLAGS # SET UP INITIALIZATION FLAG IN RCSFLAGS.
|
||||
MASK BIT3
|
||||
ADS RCSFLAGS
|
||||
TCF RETNMORE
|
||||
|
||||
NEEDLES CAF TWO
|
||||
DACLOOP TS DINDX
|
||||
CS ONETENTH # RESCALE INPUTS TO + OR - 1800 DEGREES.
|
||||
EXTEND
|
||||
INDEX DINDX
|
||||
MP AK
|
||||
TS L
|
||||
CCS A
|
||||
CA DACLIMIT
|
||||
TCF +2
|
||||
CS DACLIMIT
|
||||
AD L
|
||||
TS T5TEMP # OVFLO CHK
|
||||
TCF +4
|
||||
INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384
|
||||
CAF DACLIMIT
|
||||
TS L
|
||||
INDEX DINDX
|
||||
CS EDRIVEX # CURRENT VALUE OF DAC
|
||||
AD L
|
||||
INDEX DINDX
|
||||
ADS CDUXCMD
|
||||
INDEX DINDX
|
||||
LXCH EDRIVEX
|
||||
CCS DINDX
|
||||
TCF DACLOOP
|
||||
CAF 13,14,15
|
||||
EXTEND
|
||||
WOR CHAN14 # SET DAC ACTIVITY BITS
|
||||
TCF RETNMORE
|
||||
|
||||
DEC -384
|
||||
DACLIMIT DEC 16000
|
||||
DEC 384
|
||||
|
||||
ONETENTH OCT 03146 # DECIMAL +0.1, SCALED AT 1.
|
||||
DSPLYALT EQUALS BIT4 # 100 MS ALTERNATION BIT IN RCSFLAGS
|
||||
|
||||
OVERSUB2 TS 7 # RETURNS A UNCHANGED OR LIMITED TO
|
||||
TC Q # POSMAX OR NEGMAX IF A HAS OVERFLOW
|
||||
INDEX A
|
||||
# Page 1420
|
||||
CS LIMITS # DUPLICATE CODING IN BANK 16
|
||||
TC Q
|
||||
|
||||
RETNMORE EXTEND # RETURN TO CHEKMORE
|
||||
DCA MORECADR
|
||||
DTCB
|
||||
|
||||
EBANK= AOSQ
|
||||
MORECADR 2CADR CHEKMORE
|
||||
|
176
Luminary099/DAP_INTERFACE_SUBROUTINES.s
Normal file
176
Luminary099/DAP_INTERFACE_SUBROUTINES.s
Normal file
@ -0,0 +1,176 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: DAP_INTERFACE_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: 1406-1409
|
||||
# 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 1406
|
||||
BANK 20
|
||||
SETLOC DAPS3
|
||||
BANK
|
||||
|
||||
EBANK= CDUXD
|
||||
COUNT* $$/DAPIF
|
||||
|
||||
# MOD 0 DATE 11/15/66 BY GEORGE W. CHERRY
|
||||
# MOD 1 1/23/67 MODIFICATION BY PETER ADLER
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
# HEREIN IS A COLLECTION OF SUBROUTINES WHICH ALLOW MISSION CONTROL PROGRAMS TO CONTROL THE MODE
|
||||
# AND INTERFACE WITH THE DAP.
|
||||
#
|
||||
# CALLING SEQUENCES
|
||||
# IN INTERRUPT OR WITH INTERRUPT INHIBITED
|
||||
# TC IBNKCALL
|
||||
# FCADR ROUTINE
|
||||
# IN A JOB WITHOUT INTERRUPT INHIBITED
|
||||
# INHINT
|
||||
# TC IBNKCALL
|
||||
# FCADR ROUTINE
|
||||
# RELINT
|
||||
#
|
||||
# OUTPUT
|
||||
# SEE INDIVIDUAL ROUTINES BELOW
|
||||
#
|
||||
# DEBRIS
|
||||
# A, L, AND SOMETIMES MDUETEMP ODE NOT IN PULSES MODE
|
||||
|
||||
# Page 1407
|
||||
# SUBROUTINE NAMES:
|
||||
# SETMAXDB, SETMINDB, RESTORDB, PFLITEDB
|
||||
# MODIFIED: 30 JANUARY 1968 BY P. S. WEISSMAN TO CREATE RESTORDB.
|
||||
# MODIFIED: 1 MARCH 1968 BY P. S. WEISSMAN TO SAVE EBANK AND CREATE PFLITEDB
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION:
|
||||
# SETMAXDB -- SET DEADBAND TO 5.0 DEGREES
|
||||
# SETMINDB -- SET DEADBAND TO 0.3 DEGREE
|
||||
# RESTORDB -- SET DEADBAND TO MAX OR MIN ACCORDING TO SETTINGS OF DBSELECT BIT OF DAPBOOLS
|
||||
# PFLITEDB -- SET DEADBAND TO 1.0 DEGREE AND ZERO THE COMMANDED ATTITUDE CHANGE AND COMMANDED RATE
|
||||
#
|
||||
# ALL ENTRIES SET UP A NOVAC JOB TO DO 1/ACCS SO THAT THE TJETLAW SWITCH CURVES ARE POSITIONED TO
|
||||
# REFLECT TEH NEW DEADBAND. IT SHOULD BE NOTED THAT THE DEADBAND REFERS TO THE ATTITUDE IN THE P-, U-, AND V-AXES.
|
||||
#
|
||||
# SUBROUTINE CALLED: NOVAC
|
||||
#
|
||||
# CALLING SEQUENCE: SAME AS ABOVE
|
||||
# OR TC RESTORDB +1 FROM ALLCOAST
|
||||
#
|
||||
# DEBRIS: A, L, Q, RUPTREG1, (ITEMPS IN NOVAC)
|
||||
|
||||
RESTORDB CAE DAPBOOLS # DETERMINE CREW-SELECTED DEADBAND.
|
||||
MASK DBSELECT
|
||||
EXTEND
|
||||
BZF SETMINDB
|
||||
|
||||
SETMAXDB CAF WIDEDB # SET 5 DEGREE DEADBAND.
|
||||
+1 TS DB
|
||||
|
||||
EXTEND # SET UP JOB TO RE-POSITION SWITCH CURVES.
|
||||
QXCH RUPTREG1
|
||||
CALLACCS CAF PRIO27
|
||||
TC NOVAC
|
||||
EBANK= AOSQ
|
||||
2CADR 1/ACCJOB
|
||||
|
||||
TC RUPTREG1 # RETURN TO CALLER.
|
||||
|
||||
SETMINDB CAF NARROWDB # SET 0.3 DEGREE DEADBAND.
|
||||
TCF SETMAXDB +1
|
||||
|
||||
PFLITEDB EXTEND # THE RETURN FROM CALLACCS IS TO RUPTREG1.
|
||||
QXCH RUPTREG1
|
||||
TC ZATTEROR # ZERO THE ERRORS AND COMMANDED RATES.
|
||||
CAF POWERDB # SET DB TO 1.0 DEG.
|
||||
TS DB
|
||||
TCF CALLACCS # SET UP 1/ACCS AND RETURN TO CALLER.
|
||||
NARROWDB OCTAL 00155 # 0.3 DEGREE SCALED AT 45.
|
||||
# Page 1408
|
||||
WIDEDB OCTAL 03434 # 5.0 DEGREES SCALED AT 45.
|
||||
POWERDB DEC .02222 # 1.0 DEGREE SCALED AT 45.
|
||||
|
||||
ZATTEROR CAF EBANK6
|
||||
XCH EBANK
|
||||
TS L # SAVE CALLERS EBANK IN L.
|
||||
CAE CDUX
|
||||
TS CDUXD
|
||||
CAE CDUY
|
||||
TS CDUYD
|
||||
CAE CDUZ
|
||||
TS CDUZD
|
||||
TCF STOPRATE +3
|
||||
|
||||
STOPRATE CAF EBANK6
|
||||
XCH EBANK
|
||||
TS L # SAVE CALLERS EBANK IN L.
|
||||
+3 CAF ZERO
|
||||
TS OMEGAPD
|
||||
TS OMEGAQD
|
||||
TS OMEGARD
|
||||
TS DELCDUX
|
||||
TS DELCDUY
|
||||
TS DELCDUZ
|
||||
TS DELPEROR
|
||||
TS DELQEROR
|
||||
TS DELREROR
|
||||
LXCH EBANK # RESTORE CALLERS EBANK.
|
||||
TC Q
|
||||
|
||||
# SUBROUTINE NAME: ALLCOAST
|
||||
# WILL BE CALLED BY FRESH STARTS AND ENGINE OFF ROUTINES.
|
||||
#
|
||||
# CALLING SEQUENCE: (SAME AS ABOVE)
|
||||
#
|
||||
# EXIT: RETURN TO Q.
|
||||
#
|
||||
# SUBROUTINES CALLED: STOPRATE, RESTORDB, NOVAC
|
||||
#
|
||||
# ZERO: (FOR ALL AXES) AOS, ALPHA, AOSTERM, OMEGAD, DELCDU, DELEROR
|
||||
#
|
||||
# OUTPUT: DRIFTBIT/DAPBOOLS, OE, JOB TO DO 1/ACCS
|
||||
#
|
||||
# DEBRIS: A, L, Q, RUPTREG1, RUPTREG2, (ITEMPS IN NOVAC)
|
||||
|
||||
ALLCOAST EXTEND # SAVE Q FOR RETURN
|
||||
QXCH RUPTREG2
|
||||
# Page 1409
|
||||
TC STOPRATE # CLEAR RATE INTERFACE. RETURN WITH A=0
|
||||
LXCH EBANK # AND L=EBANK6. SAVE CALLER'S EBANK.
|
||||
TS AOSQ
|
||||
TS AOSQ +1
|
||||
TS AOSR
|
||||
TS AOSR +1
|
||||
TS ALPHAQ # FOR DOWNLIST.
|
||||
TS ALPHAR
|
||||
TS AOSQTERM
|
||||
TS AOSRTERM
|
||||
LXCH EBANK # RESTORE EBANK (EBANK6 NO LONGER NEEDED)
|
||||
|
||||
CS DAPBOOLS # SET UP DRIFTBIT
|
||||
MASK DRIFTBIT
|
||||
ADS DAPBOOLS
|
||||
TC RESTORDB +1 # RESTORE DEADBANK TO CREW-SELECTED VALUE.
|
||||
|
||||
TC RUPTREG2 # RETURN.
|
||||
|
455
Luminary099/DOWN_TELEMETRY_PROGRAM.s
Normal file
455
Luminary099/DOWN_TELEMETRY_PROGRAM.s
Normal file
@ -0,0 +1,455 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: DOWN_TELEMETRY_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: 988-997
|
||||
# Mod history: 2009-05-24 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 988
|
||||
# PROGRAM NAME -- DOWN TELEMETRY PROGRAM
|
||||
# MOD NO. -- 0 TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE
|
||||
# PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE.
|
||||
# THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS. REFER TO DOWNLINK
|
||||
# LISTS LOG SECTION FOR MORE DETAILS. HOWEVER THIS CHANGE WILL NOT AFFECT THE GROUND PROCESSING
|
||||
# OF DOWN TELEMETRY DATA.
|
||||
# MOD BY -- KILROY, SMITH, DEWITT
|
||||
# DATE -- 02 OCT 67
|
||||
# AUTHORS -- KILROY, SMITH, DWWITT, DEWOLF, FAGIN
|
||||
# LOG SECTION -- DOWN-TELEMETRY PROGRAM
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION -- THIS ROUTINE IS INITIATED BY TELEMETRY END
|
||||
# PULSE FROM THE DOWNLINK TELEMETRY CONVERTER. THIS PULSE OCCURS
|
||||
# AT 50 TIMES PER SEC (EVERY 20 MS) THEREFORE DODOWNTM IS
|
||||
# EXECUTED AT THESE RATES. THIS ROUTINE SELECTS THE APPROPRIATE
|
||||
# AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
|
||||
# CHANNELS 34 AND 35. THE INFORMATION IS THEN GATED OUT FROM THE
|
||||
# LGC IN SERIAL FASHION.
|
||||
#
|
||||
# THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST. SINCE DOWNRUPTS
|
||||
# OCCUR EVERY 20 MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN
|
||||
# CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
|
||||
# OF SENDING 200 AGC WORDS EVERY 2 SECONDS.
|
||||
#
|
||||
# CALLING SEQUENCE -- NONE
|
||||
# PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
|
||||
# RESULT OF A DOWNRUPT. CONTROL IS RETURNED VIA TCF RESUME WHICH
|
||||
# IN EFFECT IS A RESUME.
|
||||
#
|
||||
# SUBROUTINES CALLED -- NONE
|
||||
#
|
||||
# NORMAL EXIT MODE -- TCF RESUME
|
||||
#
|
||||
# ALARM OR ABORT EXIT MODE -- NONE
|
||||
#
|
||||
# RESTART PROTECTION:
|
||||
# ON A FRESH START AND RESTART THE `STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER (ACTUALLY
|
||||
# DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST (I.E., CURRENT CONTENTS OF DNLSTADR). THIS HAS THE
|
||||
# EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
|
||||
# THE RESTART (OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT
|
||||
# DOWNLIST.
|
||||
#
|
||||
# ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35.
|
||||
#
|
||||
# DOWNLINK LIST SELECTION:
|
||||
# THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING:
|
||||
# 1. FRESH START
|
||||
# 2. V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED.
|
||||
# 3. UPDATE PROGRAM (P27)
|
||||
# 4. NON-V37 SELECTABLE TYPE PROGRAMS (E.G., AGS INITIALIZATION (SUNDANCE, LUMINARY) AND P61-P62
|
||||
# TRANSITION (COLOSSUS) ETC.).
|
||||
#
|
||||
# DOWNLINK LIST RULES AND LIMITATIONS:
|
||||
# READ SECTION(S) WHICH FOLLOW `DEBRIS' WRITEUP.
|
||||
#
|
||||
# OUTPUT -- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS (I.E., 200 LGC
|
||||
# COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED -- NONE
|
||||
# `DNTMGOTO' AND `DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM.
|
||||
#
|
||||
# DEBRIS (ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM) --
|
||||
# LDATALST, DNTMBUFF TO DNTMBUFF +21D, TMINDEX, DNQ.
|
||||
# Page 989 (empty page)
|
||||
# Page 990
|
||||
# DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
|
||||
# RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
|
||||
#
|
||||
# NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM:
|
||||
# 1. DOWNLISTS. DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
|
||||
# DOWN-TELEMETRY PROGRAM. THIS IS DONE FOR EASE OF CODING, FASTER
|
||||
# EXECUTION.
|
||||
# 2. EACH DOWNLINK LIST CONSISTS OF A CONTROL LIST AND A NUMBER OF
|
||||
# SUBLISTS.
|
||||
# 3. A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER
|
||||
# DOWNLINK LISTS. ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE
|
||||
# CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS.
|
||||
# 4. SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENEOUS DATA WHICH MUST BE
|
||||
# SAVED IN A BUFFER DURING ONE DOWNRUPT.
|
||||
# 5. THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END
|
||||
# OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD
|
||||
# IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER.
|
||||
# 6. ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS
|
||||
# CREATED FOR THE DOWNLIST PROGRAM.
|
||||
# A. 1DNADR 1-WORD DOWNLIST ADDRESS.
|
||||
# SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT
|
||||
# HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY.
|
||||
# B. 2DNADR - 6DNADR N-WORD DOWNLIST ADDRESS, N = 2 - 6.
|
||||
# SAME AS 1DNADR, BUT WTIH THE 4 UNUSED BITS OF THE ECADR FORMAT
|
||||
# FILLED IN WITH 0001-0101. USED TO POINT TO A LIST OF N DOUBLE-
|
||||
# PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY.
|
||||
# C. DNCHAN DOWNLIST CHANNEL ADDRESS.
|
||||
# SAME AS 1DNADR, BUT WITH PREFIX BITS 0111. USED TO POINT TO
|
||||
# A PAIR OF CHANNELS FOR DOWN TELEMETRY.
|
||||
# D. DNPTR DOWN-TELEMETRY SUBLIST POINTER.
|
||||
# SAME AS CAF BUT TAGGED AS A CONSTANT. USED IN CONTROL LIST TO POINT TO A SUBLIST.
|
||||
# CAUTION --- A DNPTR CANNOT BE USED IN A SUBLIST.
|
||||
# 7. THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E., CONTROL LIST) AND WHEN
|
||||
# A `1DNADR TIME2' IS DETECTED IN THE CONTROL LIST (ONLY).
|
||||
# 8. IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK.
|
||||
#
|
||||
# DOWNLIST LIST RESTRICTIONS:
|
||||
# (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE
|
||||
# DONE)
|
||||
# 1. SNAPSHOT DOWNLIST:
|
||||
# (A) CANNOT CONTAIN THE FOLLOWING ECADRS (I.E., 1DNADR'S): Q, 400, 1000, 1400, 2000, 2400, 3000, 3400.
|
||||
# (B) CAN CONTAIN ONLY 1DNADR'S
|
||||
# 2. ALL DOWNLINKED DATA (EXCEPT CHANNELS) IS PICKED UP BY A DCA SO DOWNLINK LISTS CANNOT CONTAIN THE
|
||||
# EQUIVALENT OF THE FOLLOWING ECADRS (I.E., 1DNADRS): 377, 777, 1377, 1777, 2377, 2777, 3377, 3777.
|
||||
# (NOTE: THE TERM `EQUIVALENT' MEANT THAT THE 1DNADR TO 6DNADR WILL BE PROCESSED LIKE 1 TO 6 ECADRS)
|
||||
# 3. CONTROL LISTS AND SUBLISTS CANNOT HAVE ENTRIES = OCTAL 00000 OR OCTAL 77777
|
||||
# Page 991
|
||||
# 4. THE `1DNADR TIME2' WHICH WILL CAUSE THE DOWNLINK PROGRAM TO SET THE WORDER CODE TO 3 MUST APPEAR IN THE
|
||||
# CONTROL SECTION OF THE DOWNLIST.
|
||||
# 5. `DNCHAN 0' CANNOT BE USED.
|
||||
# 6. `DNPTR 0' CANNOT BE USED.
|
||||
# 7. DNPTR CANNOT APPEAR IN A SUBLIST.
|
||||
#
|
||||
# EBANK SETTINGS
|
||||
# IN THE PROCESS OF SETTING THE EBANK (WHEN PICKING UP DOWNLINK DATA) THE DOWN TELEMETRY PROGRAM PUTS
|
||||
# `GARBAGE' INTO BITS15-12 OF EBANK. HUGH BLAIR-SMITH WARNS US THAT BITS15-12 OF EBANK MAY BECOME
|
||||
# SIGNIFICANT SOMEDAY IN THE FUTURE. IF/WHEN THAT HAPPENS, THE PROGRAM SHOULD INSURE (BY MASKING ETC.)
|
||||
# THAT BITS 15-12 OF EBANK ARE ZERO.
|
||||
#
|
||||
# INITIALIZATION REQUIRED -- TO INTERRUPT CURRENT LIST AND START A NEW ONE.
|
||||
# 1. ADRES OF DOWNLINK LIST INTO DNLSTADR
|
||||
# 2. NEGONE INTO SUBLIST
|
||||
# 3. NEGONE INTO DNECADR
|
||||
|
||||
BANK 22
|
||||
SETLOC DOWNTELM
|
||||
BANK
|
||||
|
||||
EBANK= DNTMBUFF
|
||||
|
||||
COUNT* $$/DPROG
|
||||
DODOWNTM TS BANKRUPT
|
||||
EXTEND
|
||||
QXCH QRUPT # SAVE Q
|
||||
TCF WOTEST
|
||||
WO1 EXTEND # SET WORD ORDER BIT TO 1 ONLY IF IT
|
||||
WOR CHAN13 # ALREADY ISN'T
|
||||
TC DNTMGOTO # GOTO APPROPRIATE PHASE OF PROGRAM
|
||||
|
||||
DNPHASE1 CA NEGONE # INITIALIZE ALL CONTROL WORDS
|
||||
TS SUBLIST # WORDS TO MINUS ONE
|
||||
TS DNECADR
|
||||
CA LDNPHAS2 # SET DNTMGOTO = 0 ALL SUSEQUENT DOWRUPTS
|
||||
TS DNTMGOTO # GO TO DNPHASE2
|
||||
TCF NEWLIST
|
||||
DNPHASE2 CCS DNECADR # SENDING OF DATA IN PROGRESS
|
||||
DODNADR TC FETCH2WD # YES -- THEN FETCH THE NEXT 2 SP WORDS
|
||||
MINTIME2 -1DNADR TIME2 # NEGATIVE OF TIME2 1DNADR
|
||||
TCF +1 # (ECADR OF 3776 + 74001 = 77777)
|
||||
|
||||
CCS SUBLIST # IS THE SUBLIST IN CONTROL
|
||||
TCF NEXTINSL # YES
|
||||
# Page 992
|
||||
DNADRDCR OCT 74001 # DNADR COUNT AND ECADR DECREMENTER
|
||||
|
||||
CHKLIST CA CTLIST
|
||||
EXTEND
|
||||
BZMF NEWLIST # IT WILL BE NEGATIVE AT END OF LIST
|
||||
TCF NEXTINCL
|
||||
NEWLIST INDEX DNLSTCOD
|
||||
CA DNTABLE # INITIALIZE CTLIST WITH
|
||||
TS CTLIST # STARTING ADDRESS OF NEW LIST
|
||||
CS DNLSTCOD
|
||||
TCF SENDID +3
|
||||
NEXTINCL INDEX CTLIST
|
||||
CA 0
|
||||
CCS A
|
||||
INCR CTLIST # SET POINTER TO PICK UP NEXT CTLIST WORD
|
||||
TCF +4 # ON NEXT ENTRY TO PROG. (A SHOULD NOT =0)
|
||||
XCH CTLIST # SET CTLIST TO NEGATIVE AND PLACE(CODING)
|
||||
COM # UNCOMPLEMENTED DNADR INTO A. (FOR LA)
|
||||
XCH CTLIST # (ST IN )
|
||||
+4 INCR A # (CTLIST)
|
||||
TS DNECADR # SAVE DNADR
|
||||
AD MINTIME2 # TEST FOR TIME2 (NEG. OF ECADR)
|
||||
CCS A
|
||||
TCF SETWO +1 # DON'T SET WORD ORDER CODE
|
||||
MINB1314 OCT 47777 # MINUS BIT 13 AND 14 (CAN'T GET HERE)
|
||||
TCF SETWO +1 # DON'T SET WORD ORDER CODE
|
||||
SETWO TC WOZERO # GO SET WORD ORDER CODE TO ZERO.
|
||||
+1 CA DNECADR # RELOAD A WITH THE DNADR.
|
||||
+2 AD MINB1314 # IS THIS A REGULAR DNADR?
|
||||
EXTEND
|
||||
BZMF FETCH2WD # YES. (A MUST NEVER BE ZERO)
|
||||
AD MINB12 # NO. IS IT A POINTER (DNPTR) OR A
|
||||
EXTEND # CHANNEL(DNCHAN)
|
||||
BZMF DODNPTR # IT'S A POINTER. (A MUST NEVER BE ZERO)
|
||||
|
||||
DODNCHAN TC 6 # (EXECUTED AS EXTEND) IT'S A CHANNEL
|
||||
INDEX DNECADR
|
||||
INDEX 0 -4000 # (EXECUTED AS READ)
|
||||
TS L
|
||||
TC 6 # (EXECUTED AS EXTEND)
|
||||
INDEX DNECADR
|
||||
INDEX 0 -4001 # (EXECUTED AS READ)
|
||||
TS DNECADR # SET DNECADR
|
||||
CA NEGONE # TO MINUS
|
||||
XCH DNECADR # WHILE PRESERVING A.
|
||||
TCF DNTMEXIT # GO SEND CHANNELS
|
||||
|
||||
WOZERO CS BIT7
|
||||
EXTEND
|
||||
WAND CHAN13 # SET WORD ORDER CODE TO ZERO
|
||||
# Page 993
|
||||
TC Q # RETURN TO CALLER
|
||||
|
||||
DODNPTR INDEX DNECADR # DNECADR CONTAINS ADRES OF SUBLIST
|
||||
0 0 # CLEAR AND ADD LIST ENTRY INTO A.
|
||||
CCS A # IS THIS A SNAPSHOT SUBLIST
|
||||
CA DNECADR # NO, IT IS A REGULAR SUBLIST.
|
||||
TCF DOSUBLST # A MUST NOT BE ZERO.
|
||||
|
||||
XCH DNECADR # YES. IT IS A SNAPSHOT SUBLIST.
|
||||
TS SUBLIST # C(DNECADR) INTO SUBLIST
|
||||
CAF ZERO # A INTO A
|
||||
XCH TMINDEX # (NOTE: TMINDEX = DNECADR)
|
||||
|
||||
# THE FOLLOWING CODING (FROM SNAPLOOP TO SNAPEND) IS FOR THE PURPOSE OF TAKING A SNAPSHOT OF 12 DP REGISTERS.
|
||||
# THIS IS DONE BY SAVING 11 DP REGISTERS IN DNTMBUFF AND SENDING THE FIRST DP WORD IMMEDIATELY.
|
||||
# THE SNAPSHOT PROCESSING IS THE MOST TIME CONSUMING AND THEREFORE THE CODING AND LIST STRUCTURE WERE DESIGNED
|
||||
# TO MINIMIZE TIME. THE TIME OPTIMIZATION RESULTS IN RULES UNIQUE TO THE SNAPSHOT PORTION OF THE DOWNLIST.
|
||||
# THESE RULES ARE ......
|
||||
# 1. ONLY 1DNADR'S CAN APPEAR IN THE SNAPSHOT SUBLIST
|
||||
# 2. THE 1DNADR'S CANNOT REFER TO THE FIRST LOCATION IN ANY BANK.
|
||||
|
||||
SNAPLOOP TS EBANK # SET EBANK
|
||||
MASK LOW8 # ISOLATE RELATIVE ADDRESS
|
||||
EXTEND
|
||||
INDEX A
|
||||
EBANK= 1401
|
||||
DCA 1401 # PICK UP 2 SNAPSHOT WORDS.
|
||||
EBANK= DNTMBUFF
|
||||
INDEX TMINDEX
|
||||
DXCH DNTMBUFF # STORE 2 SNAPSHOT WORDS IN BUFFER
|
||||
INCR TMINDEX # SET BUFFER INDEX FOR NEXT 2 WORDS.
|
||||
INCR TMINDEX
|
||||
SNAPAGN INCR SUBLIST # SET POINTER TO NEXT 2 WORDS OF SNAPSHOT
|
||||
INDEX SUBLIST
|
||||
0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
|
||||
CCS A # TEST FOR LAST TWO WORDS OF SNAPSHOT.
|
||||
TCF SNAPLOOP # NOT LAST TWO.
|
||||
LDNPHAS2 GENADR DNPHASE2
|
||||
TS SUBLIST # YES, LAST. SAVE A.
|
||||
CA NEGONE # SET DNECADR AND
|
||||
TS DNECADR # SUBLIST POINTERS
|
||||
XCH SUBLIST # TO NEGATIVE VALUES
|
||||
TS EBANK
|
||||
MASK LOW8
|
||||
EXTEND
|
||||
INDEX A
|
||||
EBANK= 1401
|
||||
DCA 1401 # PICK UP FIRST 2 WORDS OF SNAPSHOT.
|
||||
# Page 994
|
||||
EBANK= DNTMBUFF
|
||||
SNAPEND TCF DNTMEXIT # NOW TO SEND THEM.
|
||||
|
||||
FETCH2WD CA DNECADR
|
||||
TS EBANK # SET EBANK
|
||||
MASK LOW8 # ISOLATE RELATIVE ADDRESS
|
||||
TS L
|
||||
CA DNADRDCR # DECREMENT COUNT AND ECADR
|
||||
ADS DNECADR
|
||||
EXTEND
|
||||
INDEX L
|
||||
EBANK= 1400
|
||||
DCA 1400 # PICK UP 2 DATA WORDS
|
||||
EBANK= DNTMBUFF
|
||||
TCF DNTMEXIT # NOW GO SEND THEM.
|
||||
|
||||
DOSUBLST TS SUBLIST # SET SUBLIST POINTER
|
||||
NEXTINSL INDEX SUBLIST
|
||||
0 0 # = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
|
||||
CCS A # IS IT THE END OF THE SUBLIST
|
||||
INCR SUBLIST # NO --
|
||||
TCF +4
|
||||
TS SUBLIST # SAVE A.
|
||||
CA NEGONE # SET SUBLIST TO MINUS
|
||||
XCH SUBLIST # RETRIEVE A.
|
||||
+4 INCR A
|
||||
TS DNECADR # SAVE DNADR
|
||||
TCF SETWO +2 # GO USE COMMON CODING (PROLEMS WOULD
|
||||
# OCCUR IF THE PROGRAM ENCOUNTERED A
|
||||
# DNPTR NOW)
|
||||
|
||||
DNTMEXIT EXTEND # DOWN-TELEMETRY EXIT
|
||||
WRITE DNTM1 # TO SEND A + L TO CHANNELS 34 + 35
|
||||
CA L # RESPECTIVELY
|
||||
TMEXITL EXTEND
|
||||
WRITE DNTM2
|
||||
TMRESUME TCF RESUME # EXIT TELEMTRY PROGRAM VIA RESUME.
|
||||
|
||||
MINB12 EQUALS -1/8
|
||||
DNECADR EQUALS TMINDEX
|
||||
CTLIST EQUALS LDATALST
|
||||
SUBLIST EQUALS DNQ
|
||||
|
||||
# Page 995
|
||||
# SUBROUTINE NAME -- DNDUMP
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION -- TO SEND (DUMP) ALL ERASABLE STORAGE 'N' TIMES. (N=1 TO 4). BANKS ARE SENT ONE AT A TIME
|
||||
# EACH BANK IS PRECEDED BY AN ID WORD, SYNCH BITS, ECADR AND TIME1 FOLLOWED BY THE 256D WORDS OF EACH
|
||||
# EBANK. EBANKS ARE DUMPED IN ORDER (I.E., EBANK 0 FIRST, THEN EBANK1 ETC.)
|
||||
#
|
||||
# CALLING SEQUENCE -- THE GROUND OR ASTRONAUT BY KEYING V74E CAN INITIALIZE THE DUMP.
|
||||
# AFTER KEYING IN V74E THE CURRENT DOWNLIST WILL BE IMMEDIATELY TERMINATED AND THE DOWNLINK ERASABLE DUMP
|
||||
# WILL BEGIN.
|
||||
#
|
||||
# ONCE INITITIATED THE DOWNLINK ERASABLE DUMP CAN BE TERMINATED (AND INTERRUPTED DOWNLIST REINSTATED) ONLY
|
||||
# BY THE FOLLOWING:
|
||||
#
|
||||
# 1. A FRESH START
|
||||
# 2. COMPLETION OF ALL DOWNLINK DUMPS REQUESTED (ACCORDING TO BITS SET IN DUMPCNT). NOTE THAT DUMPCNT
|
||||
# CAN BE ALTERED BY A V21N01.
|
||||
# 3. AND INVOLUNTARILY BY A RESTART.
|
||||
#
|
||||
# NORMAL EXIT MODE -- TCF DNPHASE1
|
||||
#
|
||||
# ALARM OR ABORT MODE -- NONE
|
||||
#
|
||||
# *SUBROUTINES CALLED -- NONE
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED --
|
||||
# DUMPCNT OCT 20000 IF 4 COMPLETE ERASABLE DUMPS ARE DESIRED
|
||||
# DUMPCNT OCT 10000 IF 2 COMPLETE ERASABLE DUMPS ARE DESIRED
|
||||
# DUMPCNT OCT 04000 IF 1 COMPLETE ERASABLE DUMP IS DESIRED
|
||||
#
|
||||
# DEBRIS -- DUMPLOC, DUMPSW, DNTMGOTO, EBANK, AND CENTRAL REGISTERS
|
||||
#
|
||||
# TIMING -- TIME (IN SECS) = ((NO.DUMPS)*(NO.EBANKS)*(WDSPEREBANK + NO.IDWDS)) / NO.WDSPERSEC
|
||||
# TIME (IN SECS) = ( 4 )*( 8 )*( 256 + 4 ) / 100
|
||||
# THUS TIME (IN SECS TO SEND DUMP OF ERASABLE 4 TIMES VIA DOWNLINK) = 83.2 SECONDS
|
||||
#
|
||||
# STRUCTURE OF ONE EBANK AS IT IS SENT BY DOWNLINK PROGRAM --
|
||||
# (REMINDER -- THIS ONLY DESCRIBES ONE OF THE 8 EBANKS X 4 (DUMPS) = 32 EBANKS WHICH WILL BE SENT BY DNDUMP)
|
||||
#
|
||||
# DOWNLIST W
|
||||
# WORD TAKEN FROM CONTENTS OF EXAMPLE O COMMENTS
|
||||
# 1 ERASID 0177X 0 DOWNLIST I.D. FOR DOWNLINK ERASABLE DUMP (X=7 CSM, 6 LM)
|
||||
# 2 LOWIDCOD 77340 1 DOWNLINK SYNCH BITS. (SAME ONE USED IN ALL OTHER DOWNLISTS)
|
||||
# 3 DUMPLOC 13400 1 (SEE NOTES ON DUMPLOC) 1 = 3RD ERAS DUMP, 3400=ECADR OF 5TH WD
|
||||
# 4 TIME1 14120 1 TIME IN CENTISECONDS
|
||||
# 5 FIRST WORD OF EBANK X 03400 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1400 (ECADR 3400)
|
||||
# 6 2ND WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1401 (ECADR 3401)
|
||||
# 7 3RD WORD OF EBANK X 00142 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1402 (ECADR 3402)
|
||||
# .
|
||||
# .
|
||||
# .
|
||||
# 260D 256TH WORD OF EBANK X 03777 1 IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1777 (ECADR 3777)
|
||||
#
|
||||
# NOTE -- DUMPLOC CONTAINS THE COUNTER AND ECADR FOR EACH WORD BEING SENT.
|
||||
# THE BIT STRUCTURE OF DUMPLOC IS FOLLOW --
|
||||
# X = NOT USED
|
||||
# X ABC EEE RRRRRRRR ABC = ERASABLE DUMP COUNTER (I.E. ABC = 0,1,2, OR 3 WHICH MEANS THAT
|
||||
# COMPLETE ERASABLE DUMP NUMBER 1,2,3, OR 4 RESPECTIVELY IS IN PROGRESS)
|
||||
# EEE = EBANK BITS
|
||||
# RRRRRRRR = RELATIVE ADDRESS WITHIN AN EBANK
|
||||
|
||||
# Page 996
|
||||
DNDUMPI CA ZERO # INITIALIZE DOWNLINK
|
||||
TS DUMPLOC # ERASABLE DUMP
|
||||
+2 TC SENDID # GO SEND ID AND SYNCH BITS
|
||||
CA LDNDUMP1 # SET DNTMGOTO
|
||||
TS DNTMGOTO # TO LOCATION FOR NEXT PASS
|
||||
CA TIME1 # PLACE TIME1
|
||||
XCH L # INTO L
|
||||
CA DUMPLOC # AND ECADR OF THIS EBANK INTO A
|
||||
TCF DNTMEXIT # SEND DUMPLOC AND TIME1
|
||||
|
||||
LDNDUMP ADRES DNDUMP
|
||||
LDNDUMP1 ADRES DNDUMP1
|
||||
|
||||
DNDUMP CA TWO # INCREMENT ECADR IN DUMPLOC
|
||||
ADS DUMPLOC # TO NEXT DP WORD TO BE
|
||||
MASK LOW8 # DUMPED AND SAVE IT.
|
||||
CCS A # IS THIS THE BEGINNING OF A NEW EBANK
|
||||
TCF DNDUMP2 # NO -- THEN CONTINUE DUMPING
|
||||
CA DUMPLOC # YES -- IS THIS THE END OF THE
|
||||
MASK DUMPCNT # N TH (N = 1 TO 4) COMPLETE ERASABLE
|
||||
MASK PRIO34 # DUMP (BIT14 FOR 4, BIT13 FOR 2 OR BIT12
|
||||
CCS A # FOR 1 COMPLETE ERASABLE DUMP(S)).
|
||||
TCF DNPHASE1 # YES -- START SENDING INTERRUPTED DOWNLIST
|
||||
# AGAIN
|
||||
TCF DNDUMPI +2 # NO -- GO BACK AND INITIALIZE NEXT BANK
|
||||
|
||||
DNDUMP1 CA LDNDUMP # SET DNTMGOTO
|
||||
TS DNTMGOTO # FOR WORDS 3 TO 256D OF CURRENT EBANK
|
||||
|
||||
DNDUMP2 CA DUMPLOC
|
||||
TS EBANK # SET EBANK
|
||||
MASK LOW8 # ISOLATE RELATIVE ADDRESS.
|
||||
TS Q # (NOTE: MASK INSTRUCTION IS USED TO PICK
|
||||
CA NEG0 # UP ERASABLE REGISTERS SO THAT EDITING
|
||||
TS L # REGISTERS 20-23 WILL NOT BE ALTERED.)
|
||||
INDEX Q
|
||||
EBANK= 1400 # PICK UP LOW ORDER REGISTER OF PAIR
|
||||
MASK 1401 # OF ERASABLE REGISTERS.
|
||||
XCH L
|
||||
INDEX Q # PICK UP HIGH ORDER REGISTER OF PAIR
|
||||
MASK 1400 # OF ERASABLE REGISTERS.
|
||||
EBANK= DNTMBUFF
|
||||
TCF DNTMEXIT # GO SEND THEM
|
||||
|
||||
SENDID EXTEND # ** ENTRANCE USED BY ERASABLE DUMP PROG. **
|
||||
QXCH DNTMGOTO # SET DNTMGOTO SO NEXT TIME PROG WILL GO
|
||||
CAF ERASID # TO LOCATION FOLLOWING `TC SENDID'
|
||||
|
||||
TS L # ** ENTRANCE USED BY REGULAR DOWNLINK PG **
|
||||
# Page 997
|
||||
TC WOZERO # GO SET WORD ORDER CODE TO ZERO
|
||||
CAF LOWIDCOD # PLACE SPECIAL ID CODE INTO L
|
||||
XCH L # AND ID BACK INTO A
|
||||
TCF DNTMEXIT # SEND DOWNLIST ID CODE(S).
|
||||
|
||||
WOTEST CA BIT7 # AT THE BEGINNING OF THE LIST THE WORD
|
||||
EXTEND # ORDER BIT WILL BE SET BACK TO ZERO
|
||||
RAND CHAN13
|
||||
CCS A
|
||||
TC DNTMGOTO
|
||||
CA BIT7
|
||||
TCF WO1
|
||||
|
743
Luminary099/FINDCDUW--GUIDAP_INTERFACE.s
Normal file
743
Luminary099/FINDCDUW--GUIDAP_INTERFACE.s
Normal file
@ -0,0 +1,743 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: FINDCDUW--GUIDAP_INTERFACE.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: 908-925
|
||||
# Mod history: 2009-05-28 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 908
|
||||
# PROGRAM NAME: FINDCDUW
|
||||
# MOD NUMBER: 1 68-07-15
|
||||
# MOD AUTHOR: KLUMPP
|
||||
#
|
||||
# OBJECTS OF MOD: 1. TO SUPPLY COMMANDED GIMBAL ANGLES FOR NOUN 22.
|
||||
# 2. TO MAINTAIN CORRECT AND CURRENT THRUST
|
||||
# DIRECTION DATA IN ALL MODES. THIS IS DONE BY
|
||||
# FETCHING FOR THE THRUST DIRECTION FILTER THE
|
||||
# CDUD'S IN PNGCS-AUTO, THE CDU'S IN ALL OTHER
|
||||
# MODES.
|
||||
# 3. TO SUBSTITUDE A STOPRATE FOR THE NORMAL
|
||||
# AUTOPILOT COMMANDS WHENEVER
|
||||
# 1) NOT IN PNGCS-AUTO, OR
|
||||
# 2) ENGINE IS OFF.
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION:
|
||||
#
|
||||
# FINDCDUW PROVIDES THE INTERFACES BETWEEN THE VARIOUS POWERED FLITE GUIDANCE PROGRAMS
|
||||
# AND THE DIGITAL AUTOPILOT. THE INPUTS TO FINDCDUW ARE THE THRUST COMMAND VECTOR
|
||||
# AND THE WINDOW COMMAND VECTOR, AND THE OUTPUTS ARE THE GIMBAL ANGLE
|
||||
# INCRMENTS, THE COMMANDED ATTITUDE ANGLE RATES, AND THE COMMANDED
|
||||
# ATTITUDE LAG ANGLES (WHICH ACCOUNT FOR THE ANGLES BY WHICH THE BODY WILL
|
||||
# LAG BEHIND A RAMP COMMAND IN ATTITUDE ANGLE DUE TO THE FINITE ANGULAR
|
||||
# ACCELERATIONS AVAILABLE).
|
||||
#
|
||||
# FINDCDUW ALIGNS THE ESTIMATED THRUST VECTOR FROM THE THRUST DIRECTION
|
||||
# FILTER WITH THE THRUST COMMAND VECTOR, AND, WHEN XDVINHIB SET,
|
||||
# ALIGNS THE +Z HALF OF THE LM ZX PLANE WITH THE WINDOW COMMAND VECTOR.
|
||||
#
|
||||
# Page 909
|
||||
# SPECIFICATIONS:
|
||||
#
|
||||
# INITIALIZATION: A SINGLE INTERPRETIVE CALL TO INITCDUW IS REQUIRED
|
||||
# BEFORE EACH GUIDED MANEUVER USING FINDCDUW.
|
||||
#
|
||||
# CALL: INTERPRETIVE CALL TO FINDCDUW WITH THE THRUST COMMAND
|
||||
# VECTOR IN MPAC. INTERPRETIVE CALL TO FINDCDUW -2 WITH
|
||||
# THE THRUST COMMAND VECTOR IN UNFC/2 AND NOT IN MPAC.
|
||||
#
|
||||
# RETURNS: NORMAL INTERPRETIVE IN ALL CASES
|
||||
# 1. NORMALLY ALL AUTOPILOT CMDS ARE ISSUED.
|
||||
# 2. IF NOT PNGCS AUTO, DO STOPRATE AND RETURN
|
||||
# WITHOUT ISSUING AUTOPILOT CMDS.
|
||||
# 3. IF ENGINE OFF, DO STOPRATE AND RETURN WITHOUT
|
||||
# ISSUING AUTOPILOT CMDS.
|
||||
#
|
||||
# ALARMS: 00401 IF INPUTS DETERMINE AN ATTITUDE IN GIMBAL LOCK.
|
||||
# FINDCDUW DRIVES CDUXD AND CDUYD TO THE RQD VALUES,
|
||||
# BUT DRIVES CDUZD ONLY TO THE GIMBAL LOCK CONE.
|
||||
#
|
||||
# 00402 IF UNFC/2 OR UNWC/2 PRODUCE OVERFLOW WHEN
|
||||
# UNITIZED USING NORMUNIT. FINDCDUW ISSUES
|
||||
# STOPRATE AS ONLY INPUT TO AUTOPILOT.
|
||||
#
|
||||
# INPUTS: UNFC/2 THRUST COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
|
||||
# UNWC/2 WINDOW COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
|
||||
# OGABIAS POSSIBLE BIAS FOR OUTER GIMBAL ANGLE (ZEROED IN INITCDUW), UNITS OF PI.
|
||||
# XOVINHIB FLAG DENOTING X AXIS OVERRIDE INHIBITED.
|
||||
# CSMDOCKD FLAG DENOTING CSM DOCKED.
|
||||
# STEERSW FLAG DENOTING INSUFF THRUST FOR THRUST DIR FLTR.
|
||||
#
|
||||
# OUTPUTS: DELCDUX,Y,Z
|
||||
# OMEGAPD,+1,+2
|
||||
# DELPEROR,+1,+2
|
||||
# CPHI,+1,+2 FOR NOUN22
|
||||
#
|
||||
# DEBRIS: FINDCDUW DESTROYS SINCDUX,Y,Z AND COSCDUX,Y,Z BY
|
||||
# WRITING INTO THESE LOCATIONS THE SINES AND COSINES
|
||||
# OF THE CDUD'S IN PNGCS-AUTO, OF THE CDU'S OTHERWISE.
|
||||
|
||||
# Page 910
|
||||
# INITIALIZATION FOR FINDCDUW
|
||||
|
||||
BANK 30
|
||||
SETLOC FCDUW
|
||||
BANK
|
||||
|
||||
EBANK= ECDUW
|
||||
COUNT* $$/FCDUW
|
||||
|
||||
INITCDUW VLOAD
|
||||
UNITX
|
||||
STORE UNFV/2
|
||||
STORE UNWC/2
|
||||
RVQ
|
||||
|
||||
# FINDCDUW PRELIMINARIES
|
||||
|
||||
VLOAD # FINDCDUW -2: ENTRY WHEN UNFC/2 PRE-STORD
|
||||
UNFC/2 # INPUT VECTORS NEED NOT BE SEMI-UNIT
|
||||
FINDCDUW BOV SETPD # FINDCDUW: ENTRY WHEN UNFC/2 IN MPAC
|
||||
FINDCDUW # INTERPRETER NOW INITIALIZED
|
||||
22 # LOCS 0 THRU 21 FOR DIRECTION COSINE MAT
|
||||
STQ EXIT
|
||||
QCDUWUSR # SAVE RETURN ADDRESS
|
||||
|
||||
# MORE HAUSKEEPING
|
||||
CA ECDUWL
|
||||
XCH EBANK # SET EBANK
|
||||
TS ECDUWUSR # SAVE USER'S EBANK
|
||||
|
||||
CA DAPBOOLS
|
||||
MASK CSMDOCKD # CSMDOCKD MUST NOT BE BIT15
|
||||
CCS A
|
||||
CA ONE # INDEX IF CSM DOCKED
|
||||
TS NDXCDUW
|
||||
|
||||
CA XOVINHIB # XOVINHIB MUST NOT BE BIT15
|
||||
TS FLPAUTNO # SET TO POS-NON-ZERO FLAG PNGCS AUTO NOT
|
||||
|
||||
MASK DAPBOOLS
|
||||
TS FLAGOODW # FLAG0ODW = ANY PNZ NUMBER IF XOV INHIBTD
|
||||
|
||||
# Page 911
|
||||
# FETCH BASIC DATA
|
||||
INHINT # RELINT AT PAUTNO (TC INTPRET)
|
||||
|
||||
CA CDUX # FETCH CDUX,CDUY,CDUZ IN ALL CASES, BUT
|
||||
TS CDUSPOTX # REPLACE BELOW IF PNGCS AUTO
|
||||
CA CDUY
|
||||
TS CDUSPOTY
|
||||
CA CDUZ
|
||||
TS CDUSPOTZ
|
||||
|
||||
CA BIT10 # PNGCS CONTROL BIT
|
||||
EXTEND
|
||||
RAND CHAN30
|
||||
CCS A
|
||||
TCF PAUTNO # NOT PNGCS (BITS INVERTED)
|
||||
|
||||
CA BIT14 # AUTO MODE BIT
|
||||
EXTEND
|
||||
RAND CHAN31
|
||||
CCS A
|
||||
TCF PAUTNO # NOT AUTO (BITS INVERTED)
|
||||
|
||||
TS FLPAUTNO # RESET FLAG PNGCS AUTO NOT
|
||||
|
||||
CA CDUXD # PNGCS AUTO: FETCH CDUXD,CDUYD,CDUZD
|
||||
TS CDUSPOTX
|
||||
CA CDUYD
|
||||
TS CDUSPOTY
|
||||
CA CDUZD
|
||||
TS CDUSPOTZ
|
||||
|
||||
# Page 912
|
||||
# FETCH INPUTS
|
||||
PAUTNO TC INTPRET # ENTERING THRUST CMD STILL IN MPAC
|
||||
RTB
|
||||
NORMUNIT
|
||||
STOVL UNX/2 # SEMI-UNIT THRUST CMD AS INITIAL UNX/2
|
||||
UNWC/2
|
||||
RTB RTB
|
||||
NORMUNIT
|
||||
QUICTRIG # ALWAYS RQD TO OBTAIN TRIGS OF CDUD'S
|
||||
STOVL UNZ/2 # SEMI-UNIT WINDOW CMD AS INITIAL UNZ/2
|
||||
DELV
|
||||
BOVB UNIT
|
||||
NOATTCNT # AT LEAST ONE ENTERING CMD VCT ZERO
|
||||
BOV CALL
|
||||
AFTRFLTR # IF UNIT DELV OVERFLOWS SKIP FILTER
|
||||
*SMNB* # YIELDS UNIT(DELV) IN VEH COORDS FOR FLTR
|
||||
|
||||
# THRUST DIRECTION FILTER
|
||||
|
||||
EXIT
|
||||
|
||||
CA UNFVY/2 # FOR RESTARTS, UNFV/2 ALWAYS INTACT, MPAC
|
||||
LXCH MPAC +3 # RENEWD AFTER RETURN FROM CALLER,
|
||||
TC FLTRSUB # TWO FILTER UPDATES MAY BE DONE.
|
||||
TS UNFVY/2 # UNFV/2 NEED NOT BE EXACTLY SEMI-UNIT.
|
||||
|
||||
CA UNFVZ/2
|
||||
LXCH MPAC +5
|
||||
TC FLTRSUB
|
||||
TS UNFVZ/2
|
||||
|
||||
TC INTPRET # COMPLETES FILTER
|
||||
|
||||
# Page 913
|
||||
# FIND A SUITABLE WINDOW POINTING VECTOR
|
||||
|
||||
AFTRFLTR SLOAD BHIZ # IF XOV NOT INHIBITED, GO FETCH ZNB
|
||||
FLAGOODW
|
||||
FETCHZNB
|
||||
VLOAD CALL
|
||||
UNZ/2
|
||||
UNWCTEST
|
||||
|
||||
FETCHZNB VLOAD
|
||||
ZNBPIP
|
||||
STCALL UNZ/2
|
||||
UNWCTEST
|
||||
|
||||
VLOAD VCOMP # Z AND -X CAN'T BOTH PARALLEL UNFC/2
|
||||
XNBPIP
|
||||
STORE UNZ/2
|
||||
|
||||
# COMPUTE THE REQUIRED DIRECTION COSINE MATRIX
|
||||
|
||||
DCMCL VLOAD VXV
|
||||
UNZ/2
|
||||
UNX/2
|
||||
UNIT PUSH # UNY/2 FIRST ITERATION
|
||||
VXV VSL1
|
||||
UNX/2
|
||||
STORE UNZ/2 # -UNZ/2 FIRST ITERATION
|
||||
VXSC PDVL # EXCHANGE -UNFVZ/2 UNZ/2 FOR UNY/2
|
||||
UNFVZ/2 # MUST BE SMALL
|
||||
VXSC BVSU # YIELDS -UNFVY/2 UNY/2-UNFVZ/2 UNZ/2
|
||||
UNFVY/2 # MUST BE SMALL
|
||||
VSL1 VAD
|
||||
UNX/2
|
||||
UNIT # TOTALLY ELIMINATES THRUST POINTING ERROR
|
||||
STORE UNX/2 # UNX/2
|
||||
VXV VSL1
|
||||
UNZ/2 # -UNZ/2 WAS STORED HERE REMEMBER
|
||||
STORE UNY/2 # UNY/2
|
||||
VCOMP VXV
|
||||
UNX/2
|
||||
VSL1
|
||||
STORE UNZ/2 # UNZ/2
|
||||
|
||||
# Page 914
|
||||
# COMPUTES THE REQUIRED GIMBAL ANGLES
|
||||
|
||||
CALL
|
||||
NB2CDUSP # YIELDS THE RQD GIMBAL ANGLES, 2'S, PI
|
||||
EXIT
|
||||
|
||||
# LIMIT THE MIDDLE GIMBAL ANGLE & COMPUTE THE UNLIMITED GIMBAL ANGLE CHGS
|
||||
|
||||
CA MPAC +2 # LIMIT THE MGA
|
||||
TS L # CAN'T LXCH: NEED UNLIMITED MGA FOR ALARM
|
||||
CA CDUZDLIM
|
||||
TC LIMITSUB # YIELDS LIMITED MGA. 1 BIT ERROR POSSIBLE
|
||||
XCH MPAC +2 # BECAUSE USING 2'S COMP. WHO CARES?
|
||||
EXTEND
|
||||
MSU MPAC +2 # THIS BETTER YIELD ZERO
|
||||
EXTEND
|
||||
BZF +2
|
||||
TCF ALARMMGA
|
||||
|
||||
MGARET INHINT # RELINT AT TC INTPRET AFTER TCQCDUW
|
||||
|
||||
ZL
|
||||
CA TWO
|
||||
DELGMBLP TS TEM2
|
||||
|
||||
CA L # TO PREVENT FALSE STARTS ABOUT X, ZERO
|
||||
EXTEND # FLAGOODW IF DELGMBZ OR Y TOO BIG.
|
||||
SQUARE
|
||||
AD HI5 # WITHIN 1 BIT OF -(45 DEG SQUARED)
|
||||
EXTEND
|
||||
BZMF +3
|
||||
CA ZERO
|
||||
TS FLAGOODW
|
||||
|
||||
INDEX TEM2
|
||||
CA MPAC
|
||||
INDEX TEM2
|
||||
TS CPHI # OUTPUTS TO NOUN22
|
||||
EXTEND
|
||||
INDEX TEM2
|
||||
MSU CDUXD # NO MATTER THAT THESE SLIGHLTY DIFFERENT
|
||||
COM # FROM WHEN WE INITIALLY FETCHED THEM
|
||||
INDEX TEM2
|
||||
TS -DELGMB # -UNLIMITED GIMBAL ANGLE CHGS, 1'S, PI
|
||||
TS L # FOR PRECEDING TEST ON NEXT LOOP PASS
|
||||
CCS TEM2
|
||||
TCF DELGMBLP
|
||||
|
||||
# Page 915
|
||||
# BRANCHES TO NOATTCNT
|
||||
CCS FLPAUTNO
|
||||
TCF NOATTCNT +2 # NO PNGCS AUTO
|
||||
|
||||
CA FLAGWRD5
|
||||
MASK ENGONBIT
|
||||
EXTEND
|
||||
BZF NOATTCNT +2 # ENGINE NOT ON
|
||||
|
||||
# Page 916
|
||||
# LIMIT THE ATTITUDE ANGLE CHANGES
|
||||
#
|
||||
# THIS SECTION LIMITS THE ATTITUDE ANGLE CHANGES ABOUT A SET OF ORTHOGONAL VEHICLE AXES X,YPRIME,ZPRIME,
|
||||
# THESE AXES COINCIDE WITH THE COMMANDED VEHICLE AXES IF AND ONLY IF CDUXD IS ZERO. THE PRIME SYSTEM IS
|
||||
# THE COMMANDED VEHICLE SYSTEM ROTATED ABOUT THE X AXIS TO BRING THE Z AXIS INTO ALIGNMENT WITH THE MIDDLE GIMBAL
|
||||
# AXIS. ATTITUDE ANGLE CHANGES IN THE PRIME SYSTEM ARE RELATED TO SMALL GIMBAL ANGLE CHANGES BY:
|
||||
#
|
||||
# [ -DELATTX ] [ 1 SIN(CDUZD) 0 ] [ -DELGMBX ]
|
||||
# [ ] [ ] [ ]
|
||||
# [ -DELATTYPRIME ] = [ 0 COS(CDUZD) 0 ] [ -DELGMBY ]
|
||||
# [ ] [ ] [ ]
|
||||
# [ -DELATTZPRIME ] [ 0 0 1 ] [ -DELGMBZ ]
|
||||
|
||||
LXCH -DELGMB +2 # SAME AS -DELATTZPRIME UNLIMITED
|
||||
INDEX NDXCDUW
|
||||
CA DAZMAX
|
||||
TC LIMITSUB
|
||||
TS -DELGMB +2 # -DELGMBZ
|
||||
|
||||
CA -DELGMB +1
|
||||
EXTEND
|
||||
MP COSCDUZ # YIELDS -DELATTYPRIME/2 UNLIMITED
|
||||
TS L
|
||||
INDEX NDXCDUW
|
||||
CA DAY/2MAX
|
||||
TC LIMITSUB
|
||||
EXTEND
|
||||
DV COSCDUZ
|
||||
XCH -DELGMB +1 # -DELGMBY, FETCHING UNLIMITED VALUE
|
||||
|
||||
EXTEND
|
||||
MP SINCDUZ
|
||||
DDOUBL
|
||||
COM
|
||||
EXTEND # YIELDS +DELATTX UNLIMITD, MAG < 180 DEG.
|
||||
MSU -DELGMB # BASED ON UNLIMITED DELGMBV.
|
||||
TS L # ONE BIT ERROR IF OPERANDS IN MSU
|
||||
INDEX NDXCDUW # OF MIXED SIGNS. WHO CARES?
|
||||
CA DAXMAX
|
||||
TC LIMITSUB
|
||||
TS -DELGMB # SAVE LIMITED +DELATTX
|
||||
CCS FLAGOODW
|
||||
CS -DELGMB # FETCH IT BACK CHGING SIGN IF WINDOW GOOD
|
||||
TS -DELGMB # OTHERWISE USE ZERO FOR -DELATTX
|
||||
CS -DELGMB +1
|
||||
EXTEND
|
||||
MP SINCDUZ
|
||||
DDOUBL # YIELDS -CNTRIB TO -DELATTX FROM -DELGMBY
|
||||
ADS -DELGMB # -DELGMBX. NO OVERFLOW SINCE LIMITED TO
|
||||
# 20DEG(1+SIN(70DEG)/COS(70DEG)) < 180DEG
|
||||
|
||||
# Page 917
|
||||
# COMPUTE COMMANDED ATTITUDE RATES
|
||||
#
|
||||
# [ OMEGAPD ] [ -2 -4 SINCDUZ +0 ] [ -DELGMBZ ]
|
||||
# [ ] [ ] [ ]
|
||||
# [ OMEGAQD ] = [ +0 -8 COSCDUZ COSCDUX -4 SINCDUX ] [ -DELGMBY ]
|
||||
# [ ] [ ] [ ]
|
||||
# [ OMEGARD ] [ +0 +8 COSCDUZ SINCDUX -4 COSCDUX ] [ -DELGMBZ ]
|
||||
#
|
||||
# ATTITUDE ANGLE RATES IN UNITS OF PI/4 RAD/SEC = K TRIG FCNS IN UNITS OF 2 X GIMBAL ANGLE RATES IN UNITS OF
|
||||
# PI/2 RAD/SEC. THE CONSTANTS ARE BASED ON DELGMB BEING THE GIMBAL ANGLE CHANGES IN UNITS OF PI RADIANS,
|
||||
# AND 2 SECONDS BEING THE COMPUTATION PERIOD (THE PERIOD BETWEEN SUCCESSIVE PASSES THRU FINDCDUW).
|
||||
|
||||
CS -DELGMB
|
||||
TS OMEGAPD
|
||||
CS -DELGMB +1
|
||||
EXTEND
|
||||
MP SINCDUZ
|
||||
DDOUBL
|
||||
ADS OMEGAPD
|
||||
ADS OMEGAPD
|
||||
|
||||
CS -DELGMB +1
|
||||
EXTEND
|
||||
MP COSCDUX
|
||||
DDOUBL
|
||||
EXTEND
|
||||
MP COSCDUZ
|
||||
TS OMEGAQD
|
||||
CS -DELGMB +2
|
||||
EXTEND
|
||||
MP SINCDUX
|
||||
ADS OMEGAQD
|
||||
ADS OMEGAQD
|
||||
ADS OMEGAQD
|
||||
|
||||
CA -DELGMB +1
|
||||
EXTEND
|
||||
MP SINCDUX
|
||||
DDOUBL
|
||||
EXTEND
|
||||
MP COSCDUZ
|
||||
TS OMEGARD
|
||||
CS -DELGMB +2
|
||||
EXTEND
|
||||
MP COSCDUX
|
||||
ADS OMEGARD
|
||||
ADS OMEGARD
|
||||
ADS OMEGARD
|
||||
|
||||
# Page 918
|
||||
# FINAL TRANSFER
|
||||
|
||||
CA TWO
|
||||
CDUWXFR TS TEM2
|
||||
INDEX TEM2
|
||||
CA -DELGMB
|
||||
EXTEND
|
||||
MP DT/DELT # RATIO OF DAP INTERVAL TO CDUW INTERVAL
|
||||
TC ONESTO2S
|
||||
INDEX TEM2
|
||||
TS DELCDUX # ANGLE INTERFACE
|
||||
|
||||
INDEX TEM2
|
||||
CCS OMEGAPD
|
||||
AD ONE
|
||||
TCF +2
|
||||
AD ONE
|
||||
EXTEND # WE NOW HAVE ABS(OMEGAPD,QD,RD)
|
||||
INDEX TEM2
|
||||
MP OMEGAPD
|
||||
EXTEND
|
||||
MP BIT11 # 1/16
|
||||
EXTEND
|
||||
INDEX TEM2 # 2
|
||||
DV 1JACC # UNITS PI/4 RAD/SEC
|
||||
TS L
|
||||
CA DELERLIM
|
||||
TC LIMITSUB
|
||||
INDEX TEM2
|
||||
TS DELPEROR # LAG ANGLE = OMEGA ABS(OMEGA)/2 ACCEL
|
||||
CCS TEM2
|
||||
TCF CDUWXFR
|
||||
|
||||
# HAUSKEEPING AND RETURN
|
||||
|
||||
TCQCDUW CA ECDUWUSR
|
||||
TS EBANK # RETURN USER'S EBANK
|
||||
|
||||
TC INTPRET
|
||||
SETPD GOTO
|
||||
0
|
||||
QCDUWUSR # NORMAL AND ABNORMAL RETURN TO USER
|
||||
|
||||
# Page 919
|
||||
# THRUST VECTOR FILTER SUBROUTINE
|
||||
|
||||
FLTRSUB EXTEND
|
||||
QXCH TEM2
|
||||
TS TEM3 # SAVE ORIGINAL OFFSET
|
||||
COM # ONE MCT, NO WDS, CAN BE SAVED IF NEG OF
|
||||
AD L # ORIG OFFSET ARRIVES IN A, BUT IT'S
|
||||
EXTEND # NOT WORTH THE INCREASED OBSCURITY.
|
||||
INDEX NDXCDUW
|
||||
MP GAINFLTR
|
||||
TS L # INCR TO OFFSET, UNLIMITED
|
||||
CA DUNFVLIM # SAME LIMIT FOR Y AND Z
|
||||
TC LIMITSUB # YIELDS INCR TO OFFSET, LIMITED
|
||||
AD TEM3 # ORIGINAL OFFSET
|
||||
TS L # TOTAL OFFSET, UNLIMITED
|
||||
CA UNFVLIM # SAME LIMIT FOR Y AND Z
|
||||
TC LIMITSUB # YIELDS TOTAL OFFSET, LIMITED
|
||||
TC TEM2
|
||||
|
||||
# SUBR TO TEST THE ANGLE BETWEEN THE PROPOSED WINDOW AND THRUST CMD VCTS
|
||||
|
||||
UNWCTEST DOT DSQ
|
||||
UNX/2
|
||||
DSU BMN
|
||||
DOTSWFMX
|
||||
DCMCL
|
||||
SSP RVQ # RVQ FOR ALT CHOICE IF DOT MAGN TOO LARGE
|
||||
FLAGOODW # ZEROING WINDOW GOOD FLAG
|
||||
0
|
||||
|
||||
# Page 920
|
||||
# NB2CDUSP RETURNS THE 2'S COMPLEMENT, PI, SP CDU ANGLES X,Y,Z IN MPAC,+1,+2 GIVEN THE MATRIX WHOSE ROW VECTORS
|
||||
# ARE THE SEMI-UNIT NAV BASE VECTORS X,Y,X EXPRESSED IN STABLE MEMBER COORDINATES, LOCATED AT 0 IN THE PUSH LIST.
|
||||
# NB2CDUSP USES THE ARCTRGSP WHICH HAS A MAXIMUM ERROR OF +-4 BITS.
|
||||
|
||||
NB2CDUSP DLOAD DSQ
|
||||
2
|
||||
BDSU BPL
|
||||
DP1/4TH
|
||||
+3
|
||||
DLOAD
|
||||
ZEROVECS # IN CASE SIN WAS SLIGHTLY > 1/2
|
||||
SQRT EXIT # YIELDS COS(CDUZ) IN UNITS OF 2
|
||||
|
||||
EXTEND
|
||||
DCA MPAC
|
||||
DDOUBL
|
||||
TS TEM5
|
||||
TCF +3
|
||||
CA POSMAX # OVERFLOW. FETCH POSMAX, MPAC ALWAYS POS
|
||||
TS TEM5 # COS(CDUZ) IN TEM5, UNITS 1
|
||||
|
||||
INDEX FIXLOC
|
||||
CA 2
|
||||
LXCH MPAC
|
||||
TC ARCTRGSP
|
||||
TS MPAC +2 # CDUZ
|
||||
|
||||
CA ZERO
|
||||
TC DVBYCOSM
|
||||
CA FOUR
|
||||
TC DVBYCOSM
|
||||
CS TEM1
|
||||
TC ARCTRGSP
|
||||
TS MPAC +1 # CDUY
|
||||
|
||||
CA BIT4
|
||||
TC DVBYCOSM
|
||||
CA 16OCT
|
||||
TC DVBYCOSM
|
||||
CS TEM1
|
||||
TC ARCTRGSP
|
||||
TS MPAC # CDUX
|
||||
|
||||
TC INTPRET
|
||||
RVQ
|
||||
|
||||
16OCT OCT 16
|
||||
|
||||
# Page 921
|
||||
# THE ELEMENTS OF THE NAV BASE MATRIX WHICH WE MUST DIVIDE BY COS(MGA)
|
||||
# ALREADY CONTAIN COS(MGA)/2 AS A FACTOR. THEREFORE THE QUOTIENT SHOULD
|
||||
# ORDINARILY NEVER EXCEED 1/2 IN MAGNITUDE. BUT IF THE MGA IS NEAR PI/2
|
||||
# THEN COS(MGA) IS NEAR ZERO, AND THERE MAY BE SOME CHAFF IN THE OTHER
|
||||
# ELEMENTS OF THE MATRIX WHICH WOULD PRODUCE CHAOS UNDER DIVISION.
|
||||
# BEFORE DIVIDING WE MAKE SURE COS(MGA) IS AT LEAST ONE BIT LARGER
|
||||
# THAN THE MAGNITUDE OF THE HIGH ORDER PART OF THE OPERAND.
|
||||
#
|
||||
# IF ONE OR MORE DIVIDES CANNOT BE PERFORMED, THIS MEANS THAT THE
|
||||
# REQUIRED MGA IS VERY NEARLY +-PI/2 AND THEREFORE THE OTHER GIMBAL
|
||||
# ANGLES ARE INDETERMINATE. THE INNER AND OUTER GIMBAL ANGLES RETURNED
|
||||
# IN THIS CASE WILL BE RANDOM MULTIPLES OF PI/2.
|
||||
|
||||
DVBYCOSM AD FIXLOC
|
||||
TS ADDRWD # ADRES OF OPERAND
|
||||
|
||||
INDEX ADDRWD # FETCH NEG ABS OF OPERAND, AD TEM5, AND
|
||||
CA 0 # SKIP DIVIDE IF RESULT NEG OR ZERO
|
||||
EXTEND
|
||||
BZMF +2
|
||||
COM
|
||||
AD TEM5 # C(A) ZERO OR NEG, C(TEM5) ZERO OR POS
|
||||
EXTEND
|
||||
BZMF TSL&TCQ # DIFFERENCE ALWAYS SMALL IF BRANCH
|
||||
|
||||
EXTEND # TEM5 EXCEEDS ABS HIGH ORDER PART OF
|
||||
INDEX ADDRWD # OPERAND BY AT LEAST ONE BIT.
|
||||
DCA 0 # THEREFORE IT EXCEEDS THE DP OPERAND
|
||||
EXTEND # AND DIVISION WILL ALWAYS SUCCEED.
|
||||
DV TEM5
|
||||
TSL&TCQ TS L
|
||||
LXCH TEM1
|
||||
TC Q
|
||||
|
||||
# Page 922
|
||||
# ARCTRGSP RETURNS THE 2'S COMPLEMENT, PI, SP ANGLE IN THE A REGISTER GIVEN ITS SINE IN A AND ITS COSINE IN L IN
|
||||
# UNITS OF 2. THE RESULT IS AN UNAMBIGUOUS ANGLE ANYWHERE IN THE CIRCLE, WITH A MAXIMUM ERROR OF +-4 BITS.
|
||||
# THE ERROR IS PRODUCED BY THE SUBROUTINE SPARCSIN WHICH IS USED ONLY IN THE REGION +-45 DEGREES.
|
||||
|
||||
ARCTRGSP EXTEND
|
||||
BZF SINZERO # TO AVOID DIVIDING BY ZERO
|
||||
|
||||
EXTEND
|
||||
QXCH TEM4
|
||||
TS TEM2
|
||||
CA L
|
||||
TS TEM3
|
||||
CA ZERO
|
||||
EXTEND
|
||||
DV TEM2
|
||||
EXTEND
|
||||
BZF USECOS
|
||||
|
||||
CCS TEM3 # SIN IS SMALLER OR EQUAL
|
||||
CA ZERO
|
||||
TCF +4
|
||||
CS TEM2 # IF COS NEG, REVERSE SIGN OF SIN,
|
||||
TS TEM2 # ANGLE = PI-ARCSIN(SIN)
|
||||
CA NEGMAX # PICK UP PI, 2'S COMPLEMENT
|
||||
TS TEM3 # WE NO LONGER NEED COS
|
||||
CA TEM2
|
||||
TC SPARCSIN -1
|
||||
TC ONESTO2S
|
||||
EXTEND
|
||||
MSU TEM3
|
||||
1TO2&TCQ TC ONESTO2S
|
||||
TC TEM4
|
||||
|
||||
USECOS CS TEM3 # COS IS SMALLER
|
||||
TC SPARCSIN -1 # ANGLE = SIGN(SIN)(FI/2-ARCSIN(COS))
|
||||
AD HALF
|
||||
TS TEM3 # WE NO LONGER NEED COS
|
||||
CCS TEM2
|
||||
CA TEM3
|
||||
TCF 1TO2&TCQ
|
||||
CS TEM3
|
||||
TCF 1TO2&TCQ
|
||||
|
||||
SINZERO CCS L
|
||||
CA ZERO
|
||||
TC Q
|
||||
CA NEGMAX # PI, 2'S COMP
|
||||
TC Q
|
||||
|
||||
# Page 923
|
||||
# SPARCSIN TAKES AN ARGUMENT SCALED UNITY IN A AND RETURNS AN ANGLE SCALED
|
||||
# 180 DEGREES IN A. IT HAS BEEN UNIT TESTED IN THE REGION +-.94 (+-70
|
||||
# DEGREES) AND THE MAXIMUM ERROR IS +-5 BITS WITH AN AVERAGE TIME OF
|
||||
# 450 MICROSECONDS. SPARCSIN -1 TAKES THE ARGUMENT SCALED TWO. (BOB CRISP)
|
||||
|
||||
DOUBLE
|
||||
SPARCSIN TS SR
|
||||
TCF +4
|
||||
INDEX A
|
||||
CS LIMITS
|
||||
TS SR
|
||||
EXTEND
|
||||
MP A
|
||||
TS TEM1
|
||||
EXTEND
|
||||
MP DPL9
|
||||
AD DPL7
|
||||
EXTEND
|
||||
MP TEM1
|
||||
AD DPL5
|
||||
EXTEND
|
||||
MP TEM1
|
||||
AD DPL3
|
||||
EXTEND
|
||||
MP TEM1
|
||||
AD DPL1
|
||||
EXTEND
|
||||
MP SR
|
||||
TC Q
|
||||
DPL1 DEC 10502
|
||||
DPL3 DEC 432
|
||||
DPL5 DEC 7300
|
||||
DPL7 DEC -11803
|
||||
DPL9 DEC 8397
|
||||
|
||||
# Page 924
|
||||
# LIMITSUB LIMITS THE MAGNITUDE OF THE POSITIVE OR NEGATIVE VARIABLE
|
||||
# ARRIVING IN L TO THE POSITIVE LIMIT ARRIVING IN A.
|
||||
# THE SIGNED LIMITED VARIABLE IS RETURNED IN A.
|
||||
#
|
||||
# VERSION COUTESY HUGH BLAIR-SMITH
|
||||
|
||||
LIMITSUB TS TEM1
|
||||
CA ZERO
|
||||
EXTEND
|
||||
DV TEM1
|
||||
CCS A
|
||||
LXCH TEM1
|
||||
TCF +2
|
||||
TCF +3
|
||||
CA L
|
||||
TC Q
|
||||
CS TEM1
|
||||
TC Q
|
||||
|
||||
# SUBROUTINE TO CONVERT 1'S COMP SP TO 2'S COMP
|
||||
|
||||
ONESTO2S CCS A
|
||||
AD ONE
|
||||
TC Q
|
||||
CS A
|
||||
TC Q
|
||||
|
||||
# NO ATTITUDE CONTROL
|
||||
|
||||
NOATTCNT TC ALARM
|
||||
OCT 00402 # NO ATTITUDE CONTROL
|
||||
|
||||
+2 INHINT # COME HERE FOR NOATTCNT WITHOUT ALARM
|
||||
TC IBNKCALL # RELINT AT TC INTPRET AFTER TCQCDUW
|
||||
FCADR STOPRATE
|
||||
TCF TCQCDUW # RETURN TO USER SKIPPING AUTOPILOT CMDS
|
||||
|
||||
# MIDDLE GIMBAL ANGLE ALARM
|
||||
|
||||
ALARMMGA TC ALARM
|
||||
OCT 00401
|
||||
TCF MGARET
|
||||
|
||||
# Page 925
|
||||
#******************************************************************
|
||||
# CONSTANTS
|
||||
#******************************************************************
|
||||
|
||||
# ADDRESS CONSTANTS
|
||||
|
||||
ECDUWL ECADR ECDUW
|
||||
|
||||
# THRUST DIRECTION FILTER CONSTANTS
|
||||
|
||||
GAINFLTR DEC .2 # GAIN FILTER SANS CSM
|
||||
DEC .1 # GAIN FILTER WITH CSM
|
||||
|
||||
DUNFVLIM DEC .007 B-1 # 7 MR MAX CHG IN F DIR IN VEH IN 2 SECS.
|
||||
# THIS DOES NOT ALLOW FOR S/C ROT RATE.
|
||||
|
||||
UNFVLIM DEC .129 B-1 # 129 MR MAX THRUST OFFSET. 105 MR TRAVEL
|
||||
# +10MR DEFL+5MR MECH MOUNT+9MR ABLATION.
|
||||
|
||||
# CONSTANT RELATED TO GIMBAL ANGLE COMPUTATIONS
|
||||
|
||||
DOTSWFMX DEC .93302 B-4 # LIM COLNRTY OF UNWC/2 & UNFC/2 TO 85 DEG
|
||||
# LOWER PART COMES FROM NEXT CONSTANT
|
||||
|
||||
DAXMAX DEC .11111111111 # DELATTX LIM TO 20 DEG IN 2 SECS, 1'S, PI
|
||||
DEC .0111111111 # 2 DEG WHEN CSM DOCKED
|
||||
|
||||
DAY/2MAX DEC .05555555555 # LIKEWISE FOR DELATTY
|
||||
DEC .0055555555
|
||||
|
||||
DAZMAX = DAXMAX # LIKEWISE FOR DELATTZ
|
||||
|
||||
CDUZDLIM DEC .3888888888 # 70 DEG LIMIT FOR MGA, 1'S, PI
|
||||
|
||||
# CONSTANTS FOR DATA TRANSFER
|
||||
|
||||
DT/DELT DEC .05 # .1 SEC/2 SEC WHICH IS THE AUTOPILOT
|
||||
# CONTROL SAMPLE PERIOD/COMPUTATION PERIOD
|
||||
|
||||
DELERLIM = DAY/2MAX # 0 DEG LIMIT FOR LAG ANGLES, 1'S, PI
|
||||
|
||||
# *** END OF FLY .132 ***
|
1269
Luminary099/FLAGWORD_ASSIGNMENTS.s
Normal file
1269
Luminary099/FLAGWORD_ASSIGNMENTS.s
Normal file
File diff suppressed because it is too large
Load Diff
28
Luminary099/HeaderTemplate.s
Normal file
28
Luminary099/HeaderTemplate.s
Normal file
@ -0,0 +1,28 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: XXXXXXXX.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: XXXX-XXXX
|
||||
# Mod history: 2009-05-XX XXX 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
|
||||
|
362
Luminary099/IMU_PERFORMANCE_TESTS_4.s
Normal file
362
Luminary099/IMU_PERFORMANCE_TESTS_4.s
Normal file
@ -0,0 +1,362 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: IMU_PERFORMANCE_TESTS_4.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: 382-389
|
||||
# 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 382
|
||||
# PROGRAM -- IMU PERFORMANCE TESTS 4
|
||||
# DATE -- NOV 15, 1966
|
||||
# BY -- GEORGE SCHMIDT IL7-146 EXT 1126
|
||||
# MOD NO-ZERO
|
||||
#
|
||||
# FUNCITONAL DESCRIPTION
|
||||
#
|
||||
# THIS SECTION CONSISTS OF THE FILTER FOR THE GYRO DRIFT TESTS. NO COMPASS
|
||||
# IS DONE IN LEM. FOR A DESCRIPTION OF THE FILTER SEE E-1973. THIS
|
||||
# SECTION IS ENTERED FROM IMU 2. IT RETURNS THERE AT END OF TEST.
|
||||
#
|
||||
# EARTHR,OGC ZERO,ERTHRVSE
|
||||
#
|
||||
# NORMAL EXIT
|
||||
#
|
||||
# LENGTHOT GOES TO ZERO -- RETURN TO IMU PERF TESTS 2 CONTROL
|
||||
#
|
||||
# ALARMS
|
||||
#
|
||||
# 1600 OVERFLOW IN DRIFT TEST
|
||||
# 1601 BAD IMU MODING IN ANY ROUTINE THAT USES IMUSTALL
|
||||
# OUTPUT
|
||||
#
|
||||
# FLASHING DISPLAY OF RESULTS -- CONTROLLED IN IMU PERF TESTS 2
|
||||
#
|
||||
# DEBRIS
|
||||
#
|
||||
# ALL CENTRALS -- ALL OF EBANK XSM
|
||||
|
||||
# Page 383
|
||||
BANK 33
|
||||
SETLOC IMU4
|
||||
BANK
|
||||
COUNT* $$/P07
|
||||
|
||||
EBANK= XSM
|
||||
|
||||
ESTIMS INHINT
|
||||
CAE 1SECXT
|
||||
TC TWIDDLE
|
||||
EBANK= XSM
|
||||
ADRES ALLOOP
|
||||
CAF ZERO # ZERO THE PIPAS
|
||||
TS PIPAX
|
||||
TS PIPAY
|
||||
TS PIPAZ
|
||||
RELINT
|
||||
CA 77DECML
|
||||
TS ZERONDX
|
||||
CA ALXXXZ
|
||||
TC ZEROING
|
||||
TC INTPRET
|
||||
SLOAD
|
||||
SCHZEROS
|
||||
STOVL GCOMPSW -1
|
||||
INTVAL +2
|
||||
STOVL ALX1S
|
||||
SCHZEROS
|
||||
STORE DELVX
|
||||
STORE GCOMP
|
||||
SLOAD
|
||||
TORQNDX
|
||||
DCOMP BMN
|
||||
VERTSKIP
|
||||
CALL
|
||||
ERTHRVSE
|
||||
VERTSKIP EXIT
|
||||
TC SLEEPIE +1
|
||||
|
||||
# Page 384
|
||||
ALLOOP CA OVFLOWCK
|
||||
EXTEND
|
||||
BZF +2
|
||||
TC TASKOVER
|
||||
CCS ALTIM
|
||||
CA A # SHOULD NEVER HIT THIS LOCATION
|
||||
TS ALTIMS
|
||||
CS A
|
||||
TS ALTIM
|
||||
CS ONE
|
||||
AD GEOCOMPS
|
||||
EXTEND
|
||||
BZF +4
|
||||
CA LENGTHOT
|
||||
EXTEND
|
||||
BZMF +5
|
||||
CAE 1SECXT
|
||||
TC TWIDDLE
|
||||
EBANK= XSM
|
||||
ADRES ALLOOP
|
||||
CAF ZERO
|
||||
XCH PIPAX
|
||||
TS DELVX
|
||||
CAF ZERO
|
||||
XCH PIPAY
|
||||
TS DELVY
|
||||
CAF ZERO
|
||||
XCH PIPAZ
|
||||
TS DELVZ
|
||||
SPECSTS CAF PRIO20
|
||||
TC FINDVAC
|
||||
EBANK= XSM
|
||||
2CADR ALFLT # START THE JOB
|
||||
|
||||
TC TASKOVER
|
||||
|
||||
# Page 385
|
||||
ALFLT CCS GEOCOMPS
|
||||
TC +2
|
||||
TC NORMLOP
|
||||
TC BANKCALL
|
||||
CADR 1/PIPA
|
||||
NORMLOP TC INTPRET
|
||||
DLOAD
|
||||
INTVAL
|
||||
STOVL S1
|
||||
DELVX
|
||||
VXM VSL1
|
||||
XSM
|
||||
DLOAD DCOMP
|
||||
MPAC +3
|
||||
STODL DPIPAY
|
||||
MPAC +5
|
||||
STORE DPIPAZ
|
||||
|
||||
SETPD AXT,1
|
||||
0
|
||||
8D
|
||||
SLOAD DCOMP
|
||||
GEOCOMPS
|
||||
BMN
|
||||
PERFERAS
|
||||
ALCGKK SLOAD BMN
|
||||
ALTIMS
|
||||
ALFLT3
|
||||
ALKCG AXT,2 LXA,1 # LOADS SLOPES AND TIME CONSTANTS AT RQST
|
||||
12D
|
||||
ALX1S
|
||||
ALKCG2 DLOAD* INCR,1
|
||||
ALFDK +144D,1
|
||||
DEC -2
|
||||
STORE ALDK +10D,2
|
||||
TIX,2 SXA,1
|
||||
ALKCG2
|
||||
ALX1S
|
||||
|
||||
ALFLT3 AXT,1
|
||||
8D
|
||||
DELMLP DLOAD* DMP
|
||||
DPIPAY +8D,1
|
||||
PIPASC
|
||||
SLR BDSU*
|
||||
9D
|
||||
INTY +8D,1
|
||||
STORE INTY +8D,1
|
||||
PDDL DMP*
|
||||
VELSC
|
||||
# Page 386
|
||||
VLAUN +8D,1
|
||||
SL2R
|
||||
DSU STADR
|
||||
STORE DELM +8D,1
|
||||
STORE DELM +10D,1
|
||||
TIX,1 AXT,2
|
||||
DELMLP
|
||||
4
|
||||
ALILP DLOAD* DMPR*
|
||||
ALK +4,2
|
||||
ALDK +4,2
|
||||
STORE ALK +4,2
|
||||
TIX,2 AXT,2
|
||||
ALILP
|
||||
8D
|
||||
ALKLP LXC,1 SXA,1
|
||||
CMPX1
|
||||
CMPX1
|
||||
DLOAD* DMPR*
|
||||
ALK +1,1
|
||||
DELM +8D,2
|
||||
DAD*
|
||||
INTY +8D,2
|
||||
STORE INTY +8D,2
|
||||
DLOAD* DAD*
|
||||
ALK +12D,2
|
||||
ALDK +12D,2
|
||||
STORE ALK +12D,2
|
||||
DMPR* DAD*
|
||||
DELM +8D,2
|
||||
INTY +16D,2
|
||||
STORE INTY +16D,2
|
||||
DLOAD* DMP*
|
||||
ALSK +1,1
|
||||
DELM +8D,2
|
||||
SL1R DAD*
|
||||
VLAUN +8D,2
|
||||
STORE VLAUN +8D,2
|
||||
TIX,2 AXT,1
|
||||
ALKLP
|
||||
8D
|
||||
|
||||
LOOSE DLOAD* PDDL*
|
||||
ACCWD +8D,1
|
||||
VLAUN +8D,1
|
||||
PDDL* VDEF
|
||||
POSNV +8D,1
|
||||
MXV VSL1
|
||||
TRANSM1
|
||||
# Page 387
|
||||
DLOAD
|
||||
MPAC
|
||||
STORE POSNV +8D,1
|
||||
DLOAD
|
||||
MPAC +3
|
||||
STORE VLAUN +8D,1
|
||||
DLOAD
|
||||
MPAC +5
|
||||
STORE ACCWD +8D,1
|
||||
TIX,1
|
||||
LOOSE
|
||||
|
||||
AXT,2 AXT,1 # EVALUATE SINES AND COSINES
|
||||
6
|
||||
2
|
||||
BOOP DLOAD* DMPR
|
||||
ANGX +2,1
|
||||
GEORGEJ
|
||||
SR2R
|
||||
PUSH SIN
|
||||
SL3R XAD,1
|
||||
X1
|
||||
STORE 16D,2
|
||||
DLOAD
|
||||
COS
|
||||
STORE 22D,2 # COSINES
|
||||
TIX,2
|
||||
BOOP
|
||||
|
||||
PERFERAS EXIT
|
||||
CA EBANK7
|
||||
TS EBANK
|
||||
EBANK= ATIGINC
|
||||
TC ATIGINC # GOTO ERASABLE TO CALCULATE ONLY TO RETN
|
||||
|
||||
# CAUTION
|
||||
#
|
||||
# THE ERASABLE PROGRAM THAT DOES THE CALCULATIONS MUST BE LOADED
|
||||
# BEFORE ANY ATTEMPT IS MAKE TO RUN THE IMU PERFORMANCE TEST
|
||||
|
||||
EBANK= AZIMUTH
|
||||
CCS LENGTHOT
|
||||
TC SLEEPIE
|
||||
CCS TORQNDX
|
||||
TCF +2
|
||||
TC SETUPER1
|
||||
CA CDUX
|
||||
TS LOSVEC +1 # FOR TROUBLESHOOTING VD POSNS 2$4
|
||||
|
||||
# Page 388
|
||||
SETUPER1 TC INTPRET
|
||||
DLOAD PDDL # ANGLES FROM DRIFT TEST ONLY
|
||||
ANGZ
|
||||
ANGY
|
||||
PDDL VDEF
|
||||
ANGX
|
||||
VCOMP VXSC
|
||||
GEORGEJ
|
||||
MXV VSR1
|
||||
XSM
|
||||
STORE OGC
|
||||
EXIT
|
||||
|
||||
CA OGCPL
|
||||
TC BANKCALL
|
||||
CADR IMUPULSE
|
||||
TC IMUSLLLG
|
||||
GEOSTRT4 CCS TORQNDX # ONLY POSITIVE IF IN VERTICAL DRIFT TEST
|
||||
TC VALMIS
|
||||
TC INTPRET
|
||||
CALL
|
||||
ERTHRVSE
|
||||
EXIT
|
||||
TC TORQUE
|
||||
|
||||
SLEEPIE TS LENGTHOT # TEST NOT OVER-DECREMENT LENGTHOT
|
||||
CCS TORQNDX # ARE WE DOING VERTDRIFT
|
||||
TC EARTHR*
|
||||
TC ENDOFJOB
|
||||
|
||||
SOMEERRR CA EBANK5
|
||||
TS EBANK
|
||||
CA ONE
|
||||
TS OVFLOWCK # STOP ALLOOP FROM CALLING ITSELF
|
||||
TC ALARM
|
||||
OCT 1600
|
||||
TC ENDTEST1
|
||||
SOMERR2 CAF OCT1601
|
||||
TC VARALARM
|
||||
TC DOWNFLAG
|
||||
ADRES IMUSE
|
||||
TC ENDOFJOB
|
||||
|
||||
OCT1601 OCT 01601
|
||||
DEC585 OCT 06200 # 3200 B+14 ORDER IS IMPORTANT
|
||||
SCHZEROS 2DEC .00000000
|
||||
# Page 389
|
||||
2DEC .00000000
|
||||
|
||||
OCT 00000
|
||||
ONEDPP OCT 00000 # ORDER IS IMPORTANT
|
||||
OCT 00001
|
||||
|
||||
INTVAL OCT 4
|
||||
OCT 2
|
||||
DEC 144
|
||||
DEC -1
|
||||
SOUPLY 2DEC .93505870 # INITIAL GAINS FOR PIP OUTPUTS
|
||||
|
||||
2DEC .26266423 # INITIAL GAINS/4 FOR ERECTION ANGLES
|
||||
|
||||
77DECML DEC 77
|
||||
ALXXXZ GENADR ALX1S -1
|
||||
PIPASC 2DEC .13055869
|
||||
|
||||
VELSC 2DEC -.52223476 # 512/980.402
|
||||
|
||||
ALSK 2DEC .17329931 # SSWAY VEL GAIN X 980.402/4096
|
||||
|
||||
2DEC -.00835370 # SSWAY ACCEL GAIN X 980.402/4096
|
||||
|
||||
GEORGEJ 2DEC .63661977
|
||||
|
||||
GEORGEK 2DEC .59737013
|
||||
|
421
Luminary099/IMU_PERFORMANCE_TEST_2.s
Normal file
421
Luminary099/IMU_PERFORMANCE_TEST_2.s
Normal file
@ -0,0 +1,421 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: IMU_PERFORMANCE_TEST_2.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: 373-381
|
||||
# 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 373
|
||||
# NAME -- IMU PERFORMANCE TESTS 2
|
||||
#
|
||||
# DATE -- MARCH 20, 1967
|
||||
#
|
||||
# BY -- SYSTEM TEST GROUP 864-6900 EXT. 1274
|
||||
#
|
||||
# MODNO. -- ZERO
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
#
|
||||
# POSITIONING ROUTINES FOR THE IMU PERFORMANCE TESTS AS WELL AS SOME OF
|
||||
# THE TESTS THEMSELVES. FOR A DESCRIPTION OF THESE SUBROUTINES AND THE
|
||||
# OPERATING PROCEDURES (TYPICALLY) SEE STG MEMO 685. THEORETICAL REF. E-1973
|
||||
|
||||
BANK 33
|
||||
SETLOC IMU2
|
||||
BANK
|
||||
EBANK= POSITON
|
||||
COUNT* $$/P07
|
||||
|
||||
REDO TC NEWMODEX
|
||||
MM 07
|
||||
|
||||
GEOIMUTT TC IMUZERR
|
||||
IMUBACK CA ZERO
|
||||
TS NDXCTR
|
||||
TS TORQNDX
|
||||
TS TORQNDX +1
|
||||
TS OVFLOWCK
|
||||
NBPOSPL CA DEC17
|
||||
TS ZERONDX
|
||||
CA XNBADR
|
||||
TC ZEROING
|
||||
CA HALF
|
||||
TS XNB
|
||||
GUESS TC INTPRET
|
||||
LATAZCHK DLOAD SL2
|
||||
LATITUDE
|
||||
STODL DSPTEM1 +1
|
||||
AZIMUTH
|
||||
RTB EXIT
|
||||
1STO2S
|
||||
XCH MPAC
|
||||
TS DSPTEM1
|
||||
CAF VN0641
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TC ENDTEST1
|
||||
TC +2
|
||||
TC -5
|
||||
# Page 374
|
||||
TC INTPRET
|
||||
SLOAD RTB
|
||||
DSPTEM1
|
||||
CDULOGIC
|
||||
STORE AZIMUTH
|
||||
SLOAD SR2
|
||||
DSPTEM1 +1
|
||||
STORE LATITUDE
|
||||
COS DCOMP
|
||||
SL1
|
||||
STODL WANGI
|
||||
LATITUDE
|
||||
SIN SL1
|
||||
STODL WANGO
|
||||
AZIMUTH
|
||||
PUSH SIN
|
||||
STORE YNB +2
|
||||
STODL ZNB +4
|
||||
COS
|
||||
STORE YNB +4
|
||||
DCOMP
|
||||
POSGMBL STCALL ZNB +2
|
||||
CALCGA
|
||||
EXIT
|
||||
TC BANKCALL
|
||||
CADR IMUCOARS
|
||||
CAF BIT14 # IF BIT14 SET, GIMBAL LOCK
|
||||
MASK FLAGWRD3
|
||||
EXTEND
|
||||
BZF +2
|
||||
INCR NDXCTR # +1 IF IN GIMBAL LOCK, OTHERWISE 0
|
||||
TC DOWNFLAG
|
||||
ADRES GLOKFAIL # RESET GIMBAL LOCK FLAG
|
||||
TC IMUSLLLG
|
||||
CCS NDXCTR # IF ONE GO AND DO A PIPA TEST ONLY
|
||||
TC PIPACHK # ALIGN AND MEASURE VERTICAL PIPA RATE
|
||||
TC FINIMUDD
|
||||
EXTEND
|
||||
DCA PERFDLAY
|
||||
TC LONGCALL # DELAY WHILE SUSPENSION STABILIZES
|
||||
EBANK= POSITON
|
||||
2CADR GOESTIMS
|
||||
|
||||
CA ESTICADR
|
||||
TC JOBSLEEP
|
||||
GOESTIMS CA ESTICADR
|
||||
TC JOBWAKE
|
||||
TC TASKOVER
|
||||
ESTICADR CADR ESTIMS
|
||||
TORQUE CA ZERO
|
||||
# Page 375
|
||||
TS DSPTEM2
|
||||
CA DRIFTI
|
||||
TS DSPTEM2 +1
|
||||
INDEX POSITON
|
||||
TS SOUTHDR -1
|
||||
TC SHOW
|
||||
|
||||
PIPACHK INDEX NDXCTR # PIPA TEST
|
||||
TC +1
|
||||
TC EARTHR*
|
||||
CA DEC17 # ALLOW PIP COUNTER TO OVERFLOW 17 TIMES
|
||||
TS DATAPL +4 # IN THE ALLOTTED TIME INTERVAL
|
||||
CA DEC58
|
||||
TS LENGTHOT
|
||||
CA ONE
|
||||
TS RESULTCT
|
||||
CA ZERO
|
||||
INDEX PIPINDEX
|
||||
TS PIPAX
|
||||
TS DATAPL
|
||||
TC CHECKG
|
||||
INHINT
|
||||
CAF TWO
|
||||
TC TWIDDLE
|
||||
EBANK= XSM
|
||||
ADRES PIPATASK
|
||||
TC ENDOFJOB
|
||||
|
||||
PIPATASK EXTEND
|
||||
DIM LENGTHOT
|
||||
CA LENGTHOT
|
||||
EXTEND
|
||||
BZMF STARTPIP
|
||||
CAF BIT10
|
||||
TC TWIDDLE
|
||||
EBANK= XSM
|
||||
ADRES PIPATASK
|
||||
STARTPIP CAF PRIO20
|
||||
TC FINDVAC
|
||||
EBANK= XSM
|
||||
2CADR PIPJOBB
|
||||
|
||||
TC TASKOVER
|
||||
|
||||
PIPJOBB INDEX NDXCTR
|
||||
TC +1
|
||||
TC EARTHR*
|
||||
CA LENGTHOT
|
||||
# Page 376
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TC ENDOFJOB
|
||||
|
||||
CA FIVE
|
||||
TS RESULTCT
|
||||
TC CHECKG
|
||||
CCS DATAPL +1
|
||||
TC +4
|
||||
TC CCSHOLE
|
||||
CS DATAPL +4
|
||||
TS DATAPL +4
|
||||
EXTEND
|
||||
DCS DATAPL
|
||||
DAS DATAPL +4
|
||||
|
||||
TC INTPRET
|
||||
DLOAD DSU
|
||||
DATAPL +6
|
||||
DATAPL +2
|
||||
BPL CALL
|
||||
AINGOTN
|
||||
OVERFFIX
|
||||
AINGOTN PDDL DDV
|
||||
DATAPL +4
|
||||
DMPR RTB
|
||||
DEC585 # DEC585 HAS BEEN REDEFINED FOR LEM
|
||||
SGNAGREE
|
||||
STORE DSPTEM2
|
||||
EXIT
|
||||
CCS NDXCTR
|
||||
TC COAALIGN # TAKE PLATFORM OUT OF GIMBAL LOCK
|
||||
TC SHOW
|
||||
VERTDRFT CA 3990DEC # ABOUT 1 HOUR VERTICAL DRIFT TEST
|
||||
TS LENGTHOT
|
||||
INDEX POSITON
|
||||
CS SOUTHDR -2
|
||||
TS DRIFTT
|
||||
CCS PIPINDEX # OFFSET PLATFORM TO MISS PIP DEAD-ZONES
|
||||
TCF PON4 # Z-UP IN POS 4
|
||||
PON2 CS BIT5 # X-UP
|
||||
ADS ERCOMP +2
|
||||
CA BIT5
|
||||
ADS ERCOMP +4
|
||||
TCF PON
|
||||
PON4 CS BIT5
|
||||
ADS ERCOMP +2
|
||||
CA BIT5
|
||||
ADS ERCOMP
|
||||
PON TC EARTHR*
|
||||
# Page 377
|
||||
CA ZERO # ALLOW ONLY SOUTH GYRO EARTH RATE COMPENS
|
||||
TS ERVECTOR
|
||||
TS ERVECTOR +1
|
||||
GUESS1 CAF POSMAX
|
||||
TS TORQNDX
|
||||
TS TORQNDX +1
|
||||
CA CDUX
|
||||
TS LOSVEC
|
||||
TC ESTIMS
|
||||
VALMIS CA DRIFTO
|
||||
TS DSPTEM2 +1
|
||||
CA ZERO
|
||||
TS DSPTEM2
|
||||
TC SHOW
|
||||
|
||||
ENDTEST1 TC DOWNFLAG
|
||||
ADRES IMUSE
|
||||
CS ZERO
|
||||
TC NEWMODEA
|
||||
TC ENDEXT
|
||||
|
||||
# Page 378
|
||||
OVERFFIX DAD DAD
|
||||
DPPOSMAX
|
||||
ONEDPP
|
||||
RVQ
|
||||
|
||||
COAALIGN EXTEND # COARSE ALIGN SUBROUTINE
|
||||
QXCH ZERONDX
|
||||
CA ZERO
|
||||
TS THETAD
|
||||
TS THETAD +1
|
||||
TS THETAD +2
|
||||
TC BANKCALL
|
||||
CADR IMUCOARS
|
||||
ALIGNCOA TC BANKCALL
|
||||
CADR IMUSTALL
|
||||
TC SOMERR2
|
||||
TC ZERONDX
|
||||
|
||||
IMUSLLLG EXTEND
|
||||
QXCH ZERONDX
|
||||
TC ALIGNCOA
|
||||
|
||||
FINIMUDD EXTEND
|
||||
QXCH ZERONDX
|
||||
TC BANKCALL
|
||||
CADR IMUFINE
|
||||
TC ALIGNCOA
|
||||
|
||||
IMUZERR EXTEND
|
||||
QXCH ZERONDX
|
||||
TC BANKCALL
|
||||
CADR IMUZERO
|
||||
TC ALIGNCOA
|
||||
|
||||
CHECKG EXTEND # PIP PULSE CATCHING ROUTINE
|
||||
QXCH QPLACE
|
||||
TC +6
|
||||
CHECKG1 RELINT
|
||||
CA NEWJOB
|
||||
EXTEND
|
||||
BZMF +6
|
||||
TC CHANG1
|
||||
INHINT
|
||||
INDEX PIPINDEX
|
||||
CS PIPAX
|
||||
TS ZERONDX
|
||||
INHINT
|
||||
# Page 379
|
||||
INDEX PIPINDEX
|
||||
CA PIPAX
|
||||
AD ZERONDX
|
||||
EXTEND
|
||||
BZF CHECKG1
|
||||
INDEX PIPINDEX
|
||||
CA PIPAX
|
||||
INDEX RESULTCT
|
||||
TS DATAPL
|
||||
TC FINETIME
|
||||
INDEX RESULTCT
|
||||
TS DATAPL +1
|
||||
INDEX RESULTCT
|
||||
LXCH DATAPL +2
|
||||
RELINT
|
||||
ENDCHKG TC QPLACE
|
||||
|
||||
ZEROING TS L
|
||||
TCF +2
|
||||
ZEROING1 TS ZERONDX
|
||||
CAF ZERO
|
||||
INDEX L
|
||||
TS 0
|
||||
INCR L
|
||||
CCS ZERONDX
|
||||
TCF ZEROING1
|
||||
TC Q
|
||||
|
||||
# Page 380
|
||||
ERTHRVSE DLOAD PDDL
|
||||
SCHZEROS # PD24 = (SIN -COS 0)(OMEG/MS)
|
||||
LATITUDE
|
||||
COS DCOMP
|
||||
PDDL SIN
|
||||
LATITUDE
|
||||
VDEF VXSC
|
||||
OMEG/MS
|
||||
STORE ERVECTOR
|
||||
RTB
|
||||
LOADTIME
|
||||
STOVL TMARK
|
||||
SCHZEROS
|
||||
STORE ERCOMP
|
||||
RVQ
|
||||
|
||||
EARTHR ITA RTB
|
||||
S2
|
||||
LOADTIME
|
||||
STORE TEMPTIME
|
||||
DSU BPL
|
||||
TMARK
|
||||
ERTHR
|
||||
CALL
|
||||
OVERFFIX
|
||||
ERTHR SL VXSC
|
||||
9D
|
||||
ERVECTOR
|
||||
MXV VAD
|
||||
XSM
|
||||
ERCOMP
|
||||
STODL ERCOMP
|
||||
TEMPTIME
|
||||
STORE TMARK
|
||||
AXT,1 RTB
|
||||
ECADR ERCOMP
|
||||
PULSEIMU
|
||||
GOTO
|
||||
S2
|
||||
|
||||
EARTHR* EXTEND
|
||||
QXCH QPLACES
|
||||
TC INTPRET
|
||||
CALL
|
||||
EARTHR
|
||||
EXIT
|
||||
TC IMUSLLLG
|
||||
TC QPLACES
|
||||
|
||||
SHOW EXTEND
|
||||
# Page 381
|
||||
QXCH QPLACE
|
||||
SHOW1 CA POSITON
|
||||
TS DSPTEM2 +2
|
||||
CA VB06N98
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TC ENDTEST1 # V34
|
||||
TC QPLACE # V33
|
||||
TCF SHOW1
|
||||
|
||||
3990DEC DEC 3990
|
||||
VB06N98 VN 0698
|
||||
VN0641 VN 0641
|
||||
DEC17 = ND1
|
||||
DEC58 DEC 58
|
||||
OGCPL ECADR OGC
|
||||
1SECX = 1SEC
|
||||
XNBADR GENADR XNB
|
||||
XSMADR GENADR XSM
|
||||
BLOCK 2
|
||||
COUNT* $$/P07
|
||||
FINETIME INHINT # RETURNS WITH INTERRUPT INHIBITED
|
||||
EXTEND
|
||||
READ LOSCALAR
|
||||
TS L
|
||||
EXTEND
|
||||
RXOR LOSCALAR
|
||||
EXTEND
|
||||
BZF +4
|
||||
EXTEND
|
||||
READ LOSCALAR
|
||||
TS L
|
||||
+4 CS POSMAX
|
||||
AD L
|
||||
EXTEND
|
||||
BZF FINETIME +1
|
||||
EXTEND
|
||||
READ HISCALAR
|
||||
TC Q
|
||||
|
224
Luminary099/INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.s
Normal file
224
Luminary099/INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.s
Normal file
@ -0,0 +1,224 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.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: 0054-0060
|
||||
# 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 54
|
||||
|
||||
# *** CHANNEL DESCRIPTION WORDS ARE ALLOCATED IN ERASABLE ASSIGNMENTS ***
|
||||
|
||||
# CHANNEL 1 IDENTICAL TO COMPUTER REGISTER L (0001)
|
||||
|
||||
# CHANNEL 2 IDENTICAL TO COMPUTER REGISTER Q (0002)
|
||||
|
||||
# CHANNEL 3 HISCALAR: INPUT CHANNEL; MOST SIGNIFICANT 14 BITS FROM 33 STAGE BINARY COUNTER. SCALE
|
||||
# FACTOR IS B23 IN CSEC, SO MAX VALUE ABOUT 23.3 HOURS AND LEAST SIGNIFICANT BIT 5.12 SECS.
|
||||
|
||||
# CHANNEL 4 LOSCALAR: INPUT CHANNEL; NEXT MOST SIGNIFICANT 14 BITS FROM THE 33 STAGE BINARY COUNTER
|
||||
# ASSOCIATED WITH CHANNEL 3. SCALE FACTOR IS B9 IN CSEC. SO MAX VAL IS 5.12 SEC AND LEAST
|
||||
# SIGNIFICANT BIT IS 1/3200 SEC. SCALE FACTOR OF D.P. WORD WITH CHANNEL 3 IS B23 CSEC.
|
||||
|
||||
# CHANNEL 5 PYJETS: OUTPUT CHANNEL; PITCH RCS JET CONTROL. (REACTION CONTROL SYSTEM) USES BITS 1-8.
|
||||
|
||||
# CHANNEL 6 ROLLJETS: OUTPUT CHANNEL; ROLL RCS JET CONTROL. (REACTION CONTROL SYSTEM) USES BIT 1-8.
|
||||
|
||||
# CHANNEL 7 SUPERBNK: OUTPUT CHANNEL; NOT RESET BY RESTART; FIXED EXTENSION BITS USED TO SELECT THE
|
||||
# APPROPRIATE FIXED MEMORY BANK IF FBANK IS 30 OCTAL OR MORE. USES BITS 5-7.
|
||||
|
||||
# CHANNEL 10 OUT0: OUTPUT CHANNEL; REGISTER USED TO TRANSMIT LATCHING-RELAY DRIVING INFORMATION FOR
|
||||
# THE DISPLAY SYSTEM. BITS 15-12 ARE SET TO THE ROW NUMBER (1-14 OCTAL) OF THE RELAY TO BE
|
||||
# CHANGED AND BITS 11-1 CONTAIN THE REQUIRED SETTINGS FOR THE RELAYS IN THE ROW.
|
||||
|
||||
# CHANNEL 11 DSALMOUT: OUTPUT CHANNEL; REGISTER WHOSE BITS ARE USED FOR ENGINE ON-OFF CONTROL AND TO
|
||||
# DRIVE INDIVIDUAL INDICATORS OF THE DISPLAY SYSTEM. BITS 1-7 ARE A RELAYS.
|
||||
#
|
||||
# BIT 1 ISS WARNING
|
||||
# BIT 2 LIGHT COMPUTER ACTIVITY LAMP
|
||||
# BIT 3 LIGHT UPLINK ACTIVITY LAMP
|
||||
# BIT 4 LIGHT TEMP CAUTION LAMP
|
||||
# BIT 5 LIGHT KEYBOARD RELEASE LAMP
|
||||
# BIT 6 FLASH VERB AND NOUN LAMPS
|
||||
# BIT 7 LIGHT OPERATOR ERROR LAMP
|
||||
# Page 55
|
||||
# BIT 8 SPARE
|
||||
# BIT 9 TEST CONNECTOR OUTBIT
|
||||
# BIT 10 CAUTION RESET
|
||||
# BIT 11 SPARE
|
||||
# BIT 12 SPARE
|
||||
# BIT 13 ENGINE ON
|
||||
# BIT 14 ENGINE OFF
|
||||
# BIT 15 SPARE
|
||||
|
||||
# CHANNEL 12 CHAN12: OUTPUT CHANNEL; BITS USED TO DRIVE NAVIGATION AND SPACECRAFT HARDWARE.
|
||||
#
|
||||
# BIT 1 ZERO RR CDU; CDU'S GIVE RRADAR INFORMATION FOR LM
|
||||
# BIT 2 ENABLE CDU RADAR ERROR COUNTERS
|
||||
# BIT 3 NOT USED
|
||||
# BIT 4 COARSE ALIGN ENABLE OF IMU
|
||||
# BIT 5 ZERO IMU CDU'S
|
||||
# BIT 6 ENABLE IMU ERROR COUNTER, CDU ERROR COUNTER.
|
||||
# BIT 7 SPARE
|
||||
# BIT 8 DISPLAY INERTIAL DATA
|
||||
# BIT 9 -PITCH GIMBAL TRIM (BELL MOTION) DESCENT ENGINE
|
||||
# BIT 10 +PITCH GIMBAL TRIM (BELL MOTION) DESCENT ENGINE
|
||||
# BIT 11 -ROLL GIMBAL TRIM (BELL MOTION) DESCENT ENGINE
|
||||
# BIT 12 +ROLL GIMBAL TRIM (BELL MOTION) DESCENT ENGINE
|
||||
# BIT 13 LR POSITION 2 COMMAND
|
||||
# BIT 14 ENABLE RENDEZVOUS RADAR LOCK-ON; AUTO ANGLE TRACK'G
|
||||
# BIT 15 ISS TURN ON DELAY COMPLETE
|
||||
|
||||
# Page 56
|
||||
# CHANNEL 13 CHAN13: OUTPUT CHANNEL.
|
||||
#
|
||||
# BIT 1 RADAR C PROPER SETTING OF THE A,B,C MATRIX
|
||||
# BIT 2 RADAR B SELECTS CERTAIN RADAR
|
||||
# BIT 3 RADAR A PARAMETERS TO BE READ.
|
||||
# BIT 4 RADAR ACTIVITY
|
||||
# BIT 5 NOT USED (CONNECTS AN ALTERNATE INPUT TO UPLINK)
|
||||
# BIT 6 BLOCK INPUTS TO UPLINK CELL
|
||||
# BIT 7 DOWNLINK TELEMETRY WORD ORDER CODE BIT
|
||||
# BIT 8 RHC COUNTER ENABLE (READ HAND CONTROLLER ANGLES)
|
||||
# BIT 9 START RHC READ INTO COUNTERS IS BIT 8 SET
|
||||
# BIT 10 TEST ALARMS, TEST DSKY LIGHTS
|
||||
# BIT 11 ENABLE STANDBY
|
||||
# BIT 12 RESET TRAP 31-A ALWAYS APPEAR TO BE SET TO 0
|
||||
# BIT 13 RESET TRAP 31-B ALWAYS APPEAR TO BE SET TO 0
|
||||
# BIT 14 RESET TRAP 32 ALWAYS APPEAR TO BE SET TO 0
|
||||
# BIT 15 ENABLE T6 RUPT
|
||||
|
||||
# CHANNEL 14 CHAN14: OUTPUT CHANNEL; USED TO CONTROL COMPUTER COUNTER CELLS (CDU, GYRO, SPACECRAFT FUNC).
|
||||
#
|
||||
# BIT 1 OUTLINK ACTIVITY (NOT USED)
|
||||
# BIT 2 ALTITUDE RATE OR ALTITUDE SELECTOR
|
||||
# BIT 3 ALTITUDE METER ACTIVITY
|
||||
# BIT 4 THRUST DRIVE ACTIVITY FOR DESCENT ENGINE
|
||||
# BIT 5 SPARE
|
||||
# BIT 6 GYRO ENABLE POWER FOR PULSES
|
||||
# BIT 7 GYRO SELECT B PAIR OF BITS IDENTIFIES AXIS OF
|
||||
# BIT 8 GYRO SELECT A GYRO SYSTEM TO BE TORQUED.
|
||||
# BIT 9 GYRO TORQUING COMMAND IN NEGATIVE DIRECTION.
|
||||
# Page 57
|
||||
# BIT 10 GYRO ACTIVITY
|
||||
# BIT 11 DRIVE CDU S
|
||||
# BIT 12 DRIVE CDU T
|
||||
# BIT 13 DRIVE CDU Z
|
||||
# BIT 14 DRIVE CDU Y
|
||||
# BIT 15 DRIVE CDU X
|
||||
|
||||
# CHANNEL 15 MNKEYIN: INPUT CHANNEL; KEY CODE INPUT FROM KEYBOARD OF DSKY, SENSED BY PROGRAM WHEN
|
||||
# PROGRAM INTERRUPT #5 IS RECEIVED. USED BITS 5-1
|
||||
|
||||
# CHANNEL 16 NAVKEYIN: INPUT CHANNEL; OPTICS MARK INFORMATION AND NAVIGATION PANEL DSKY (CM) OR THRUST
|
||||
# CONTROL (LM) SENSED BY PROGRAM THEN PROGRAM INTERRUPT #6 IS RECEIVED. USES BITS 3-7 ONLY.
|
||||
#
|
||||
# BIT 1 NOT ASSIGNED
|
||||
# BIT 2 NOT ASSIGNED
|
||||
# BIT 3 OPTICS X-AXIS MARK SIGNAL FOR ALIGN OPTICAL TSCOPE
|
||||
# BIT 4 OPTICS Y-AXIS MARK SIGNAL FOR AOT
|
||||
# BIT 5 OPTICS MARK REJECT SIGNAL
|
||||
# BIT 6 DESCENT+ ; CREW DESIRED SLOWING RATE OF DESCENT
|
||||
# BIT 7 DESCENT- ; CREW DESIRED SPEEDING UP RATE OF D'CENT
|
||||
|
||||
# NOTE: ALL BITS IN CHANNELS 30-33 ARE INVERTED AS SENSED BY THE PROGRAM, SO THAT A VALUE OF ZERO MEANS
|
||||
# THAT THE INDICATED SIGNAL IS PRESENT.
|
||||
|
||||
# CHANNEL 30 INPUT CHANNEL
|
||||
#
|
||||
# BIT 1 ABORT WITH DESCENT STAGE
|
||||
# BIT 2 UNUSED
|
||||
# BIT 3 ENGINE ARMED SIGNAL
|
||||
# BIT 4 ABORT WITH ASCENT ENGINE STAGE
|
||||
# BIT 5 AUTO THROTTLE; COMPUTER CONTROL OF DESCENT ENGINE
|
||||
# Page 58
|
||||
# BIT 6 DISPLAY INERTIAL DATA
|
||||
# BIT 7 RR CDU FAIL
|
||||
# BIT 8 SPARE
|
||||
# BIT 9 IMU OPERATE WITH NO MALFUNCTION
|
||||
# BIT 10 LM COMPUTER (NOT AGS) HAS CONTROL OF LM.
|
||||
# BIT 11 IMU CAGE COMMAND TO DRIVE IMU GIMBAL ANGLES TO 0.
|
||||
# BIT 12 IMU CDU FAIL (MALFUNCTION OF IMU CDU,S)
|
||||
# BIT 13 IMU FAIL (MALFUCTION OF IMU STABILIZATION LOOPS)
|
||||
# BIT 14 ISS TURN ON REQUESTED
|
||||
# BIT 15 TEMPERATURE OF STABLE MEMBER WITHIN DESIGN LIMITS
|
||||
|
||||
# CHANNEL 31 INPUT CHANNEL; BITS ASSOCIATED WITH THE ATTITUDE CONTROLLER, TRANSLATIONAL CONTROLLER,
|
||||
# AND SPACECRAFT ATTITUDE CONTROL; USED BY RCS DAP.
|
||||
#
|
||||
# BIT 1 ROTATION (BY RHC) COMMANDED IN POSITIVE PITCH DIRECTION; MUST BE IN MINIMUM IMPULSE MODE.
|
||||
# ALSO POSITIVE ELEVATION CHANGE FOR LANDING POINT DESIGNATOR
|
||||
# BIT 2 AS BIT 1 EXCEPT NEGATIVE PITCH AND ELEVATION.
|
||||
# BIT 3 ROTATION (BY RHC) COMMANDED IN POSITIVE YAW DIRECTION; MUST BE IN MINIMUM IMPULSE MODE.
|
||||
# BIT 4 AS BIT 3 EXCEPT NEGATIVE YAW
|
||||
# BIT 5 ROTATION (BY RHC) COMMANDED IN POSITIVE ROLL DIRECTION; MUST BE IN MINIMUM IMPULSE MODE.
|
||||
# ALSO POSITIVE AZIMUTH CHANGE FOR LANDING POINT DESIGNATOR.
|
||||
# BIT 6 AS BIT 5 EXCEPT NEGATIVE ROLL AND AZIMUTH
|
||||
# BIT 7 TRANSLATION IN +X DIRECTION COMMANDED BY THC
|
||||
# BIT 8 TRANSLATION IN -X DIRECTION COMMANDED BY THC
|
||||
# BIT 9 TRANSLATION IN +Y DIRECTION COMMANDED BY THC
|
||||
# BIT 10 TRANSLATION IN -Y DIRECTION COMMANDED BY THC
|
||||
# BIT 11 TRANSLATION IN +Z DIRECTION COMMANDED BY THC
|
||||
# BIT 12 TRANSLATION IN -Z DIRECTION COMMANDED BY THC
|
||||
# Page 59
|
||||
# BIT 13 ATTITUDE HOLD MODE ON SCS MODE CONTROL SWITCH
|
||||
# BIT 14 AUTO STABILIZATION OF ATTITUDE ON SCS MODE SWITCH
|
||||
# BIT 15 ATTITUDE CONTROL OUT OF DETENT (RHC NOT IN NEUTRAL)
|
||||
|
||||
# CHANNEL 32 INPUT CHANNEL.
|
||||
#
|
||||
# BIT 1 THRUSTERS 2 & 4 DISABLED BY CREW
|
||||
# BIT 2 THRUSTERS 5 & 8 DISABLED BY CREW
|
||||
# BIT 3 THRUSTERS 1 & 3 DISABLED BY CREW
|
||||
# BIT 4 THRUSTERS 6 & 7 DISABLED BY CREW
|
||||
# BIT 5 THRUSTERS 14 & 16 DISABLED BY CREW
|
||||
# BIT 6 THRUSTERS 13 & 15 DISABLED BY CREW
|
||||
# BIT 7 THRUSTERS 9 & 12 DISABLED BY CREW
|
||||
# BIT 8 THRUSTERS 10 & 11 DISABLED BY CREW
|
||||
# BIT 9 DESCENT ENGINE DISABLED BY CREW
|
||||
# BIT 10 APPARENT DESCENT ENGINE GIMBAL FAILURE
|
||||
# BIT 14 INDICATES PROCEED KEY IS DEPRESSED
|
||||
|
||||
# CHANNEL 33 CHAN33: INPUT CHANNEL; FOR HARDWARE STATUS AND COMMAND INFORMATION. BITS 15-11 ARE FLIP-
|
||||
# FLOP BITS RESET BY A CHANNEL "WRITE" COMMAND THAT ARE RESET BY A RESTART & BY T4RUPT LOOP.
|
||||
#
|
||||
# BIT 1 SPARE
|
||||
# BIT 2 RR AUTO-POWER ON
|
||||
# BIT 3 RR RANGE LOW SCALE
|
||||
# BIT 4 RR DATA GOOD
|
||||
# BIT 5 LR RANGE DATA GOOD
|
||||
# BIT 6 LR POS1
|
||||
# BIT 7 LR POS2
|
||||
# Page 60
|
||||
# BIT 8 LR VEL DATA GOOD
|
||||
# BIT 9 LR RANGE LOW SCALE
|
||||
# BIT 10 BLOCK UPLINK INPUT
|
||||
# BIT 11 UPLINK TOO FAST
|
||||
# BIT 12 DOWNLINK TOO FAST
|
||||
# BIT 13 PIPA FAIL
|
||||
# BIT 14 WARNING OF REPEATED ALARMS: RESTART, COUNTER FAIL, VOLTAGE FAIL, AND SCALAR DOUBLE.
|
||||
# BIT 15 LGC OSCILLATOR STOPPED
|
||||
|
||||
# CHANNEL 34 DNT M1: OUTPUT CHANNEL; DOWNLINK 1: FIRST OF TWO WORDS SERIALIZATION.
|
||||
# CHANNEL 35 DNT M2: OUTPUT CHANNEL; DOWNLINK 2: SECOND OF TWO WORDS SERIALIZATION.
|
||||
|
||||
|
81
Luminary099/INTERPRETIVE_CONSTANT.s
Normal file
81
Luminary099/INTERPRETIVE_CONSTANT.s
Normal file
@ -0,0 +1,81 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: INTERPRETIVE_CONSTANT.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: 1100-1101
|
||||
# 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 1100
|
||||
SETLOC INTPRET1
|
||||
BANK
|
||||
|
||||
COUNT* $$/ICONS
|
||||
DP1/4TH 2DEC .25
|
||||
|
||||
UNITZ 2DEC 0
|
||||
|
||||
UNITY 2DEC 0
|
||||
|
||||
UNITX 2DEC .5
|
||||
|
||||
ZEROVECS 2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
DPHALF = UNITX
|
||||
DPPOSMAX OCT 37777
|
||||
OCT 37777
|
||||
|
||||
# Page 1101
|
||||
# INTERPRETIVE CONSTANTS IN THE OTHER HALF-MEMORY
|
||||
|
||||
SETLOC INTPRET2
|
||||
BANK
|
||||
|
||||
COUNT* $$/ICONS
|
||||
ZUNIT 2DEC 0
|
||||
|
||||
YUNIT 2DEC 0
|
||||
|
||||
XUNIT 2DEC .5
|
||||
|
||||
ZEROVEC 2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
2DEC 0
|
||||
|
||||
OCT 77777 # -0, -6, -12 MUST REMAIN IN THIS ORDER
|
||||
DFC-6 DEC -6
|
||||
DFC-12 DEC -12
|
||||
LODPMAX 2OCT 3777737777 # THESE TWO CONSTANTS MUST REMAIN
|
||||
|
||||
LODPMAX1 2OCT 3777737777 # ADJACENT AND THE SAME FOR INTEGRATION
|
||||
|
||||
ZERODP = ZEROVEC
|
||||
HALFDP = XUNIT
|
||||
|
||||
|
101
Luminary099/KALMAN_FILTER.s
Normal file
101
Luminary099/KALMAN_FILTER.s
Normal file
@ -0,0 +1,101 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: KALMAN_FILTER.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: 1470-1471
|
||||
# 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 1470
|
||||
EBANK= NO.UJETS
|
||||
BANK 16
|
||||
SETLOC DAPS1
|
||||
BANK
|
||||
|
||||
COUNT* $$/DAP
|
||||
|
||||
RATELOOP CA TWO
|
||||
TS DAPTEMP6
|
||||
DOUBLE
|
||||
TS Q
|
||||
INDEX DAPTEMP6
|
||||
CCS TJP
|
||||
TCF +2
|
||||
TCF LOOPRATE
|
||||
AD -100MST6
|
||||
EXTEND
|
||||
BZMF SMALLTJU
|
||||
INDEX DAPTEMP6
|
||||
CCS TJP
|
||||
CA -100MST6
|
||||
TCF +2
|
||||
CS -100MST6
|
||||
INDEX DAPTEMP6
|
||||
ADS TJP
|
||||
INDEX DAPTEMP6
|
||||
CCS TJP
|
||||
CS -100MS # 0.1 AT 1
|
||||
TCF +2
|
||||
CA -100MS
|
||||
LOOPRATE EXTEND
|
||||
INDEX DAPTEMP6
|
||||
MP NO.PJETS
|
||||
CA L
|
||||
INDEX DAPTEMP6
|
||||
TS DAPTEMP1 # SIGNED TORQUE AT 1 JET-SEC FOR FILTER
|
||||
EXTEND
|
||||
MP BIT10 # RESCALE TO 32; ONE BIT ABOUT 2 JET-MSEC
|
||||
EXTEND
|
||||
BZMF NEGTORK
|
||||
STORTORK INDEX Q # INCREMENT DOWNLIST REGISTER.
|
||||
ADS DOWNTORK # NOTE: NOT INITIALIZED; OVERFLOWS.
|
||||
|
||||
CCS DAPTEMP6
|
||||
TCF RATELOOP +1
|
||||
TCF ROTORQUE
|
||||
SMALLTJU CA ZERO
|
||||
INDEX DAPTEMP6
|
||||
XCH TJP
|
||||
EXTEND
|
||||
# Page 1471
|
||||
MP ELEVEN # 10.24 PLUS
|
||||
CA L
|
||||
TCF LOOPRATE
|
||||
ROTORQUE CA DAPTEMP2
|
||||
AD DAPTEMP3
|
||||
EXTEND
|
||||
MP 1JACCR
|
||||
TS JETRATER
|
||||
CS DAPTEMP3
|
||||
AD DAPTEMP2
|
||||
EXTEND
|
||||
MP 1JACCQ
|
||||
TS JETRATEQ
|
||||
TCF BACKP
|
||||
-100MST6 DEC -160
|
||||
|
||||
NEGTORK COM
|
||||
INCR Q
|
||||
TCF STORTORK
|
||||
|
||||
|
169
Luminary099/LAMBERT_AIMPOINT_GUIDANCE.s
Normal file
169
Luminary099/LAMBERT_AIMPOINT_GUIDANCE.s
Normal file
@ -0,0 +1,169 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: LAMBERT_AIMPOINT_GUIDANCE.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: 651-653
|
||||
# Mod history: 2009-05-18 RSB Transcribed from Luminary 099
|
||||
# page images.
|
||||
# 2009-06-05 RSB Corrected 4 typos.
|
||||
# 2009-06-07 RSB Fixed 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 651
|
||||
|
||||
# GENERAL LAMBERT AIMPOINT GUIDANCE **
|
||||
# WRITTEN BY RAMA M AIYAWAR
|
||||
|
||||
# PROGRAM P-31 DESCRIPTION **
|
||||
#
|
||||
# 1. TO ACCEPT TARGETING PARAMETERS OBTAINED FROM A SOURCE EXTERNAL
|
||||
# TO THE LEM AND COMPUTE THERE FROM THE REQUIRED-VELOCITY AND
|
||||
# OTHER INITIAL CONDITIONS REQUIRED BY LM FOR DESIRED MANEUVER.
|
||||
# THE TARGETING PARAMETERS ARE TIG (TIME OF IGNITION), TARGET
|
||||
# VECTOR (RTARG), AND THE TIME FROM TIG UNTIL THE TARGET IS
|
||||
# REACHED (DELLT4), DESIRED TIME OF FLIGHT FROM RINIT TO RTARG.
|
||||
|
||||
# ASSUMPTIONS **
|
||||
#
|
||||
# 1. THE TARGET PARAMETERS MAY HAVE BEEN LOADED PRIOR TO THE
|
||||
# EXECUTION OF THIS PROGRAM.
|
||||
# 2. THIS PROGRAM IS APPLICABLE IN EITHER EARTH OR LUNAR ORBIT.
|
||||
# 3. THIS PROGRAM IS DESIGNED FOR ONE-MAN OPERATION, AND SHOULD
|
||||
# BE SELECTED BY THE ASTRONAUT BY DSKY ENTRY V37 E31.
|
||||
|
||||
# SUBROUTINES USED **
|
||||
#
|
||||
# MANUPARM, TTG/N35, R02BOTH, MIDGIM, DISPMGA, FLAGDOWN, BANKCALL,
|
||||
# GOTOPOOH, ENDOFJOB, PHASCHNG, GOFLASHR, GOFLASH.
|
||||
#
|
||||
# MANUPARM CALCULATES APOGEE, PERIGEE ALTITUDES AND DELTAV DESIRED
|
||||
# FOR THE MANEUVER.
|
||||
#
|
||||
# TTG/N35 CLOCKTASK - UPDATES CLOCK.
|
||||
#
|
||||
# MIDGIM CALCULATES MIDDLE GIMBAL ANGLE FOR DISPLAY.
|
||||
#
|
||||
# R02BOTH IMU - STATUS CHECK ROUTINE.
|
||||
|
||||
# DISPLAYS USED IN P-31LM **
|
||||
#
|
||||
# V06N33 DISPLAY SOTRED TIG (IN HRS. MINS. SECS.)
|
||||
# V06N42 DISPLAY APOGEE, PERIGEE, DELTAV.
|
||||
# V16N35 DISPLAY TIME FROM TIG.
|
||||
# V06N45 TIME FROM IGNITION AND MIDDLE GIMBAL ANGLE.
|
||||
|
||||
# ERASABLE INITIALIZATION REQUIRED **
|
||||
#
|
||||
# TIG TIME OF IGNITION DP (B+28) CS.
|
||||
#
|
||||
# DELLT4 DESIRED TIME OF FLIGHT DP (B+28) CS
|
||||
# FROM RINIT TO RTARG.
|
||||
#
|
||||
# RTARG RADIUS VECTOR OF TARGET POSITION VECTOR
|
||||
# RADIUS VECTOR SCALED TO (B+29)METERS IF EARTH ORBIT
|
||||
# Page 652
|
||||
# RADIUS VECTOR SCALED TO (B+27)METERS IF MOON ORBIT
|
||||
|
||||
# OUTPUT **
|
||||
#
|
||||
# HAPO APOGEE ALTITUDE
|
||||
# HPER PERIGEE ALTITUDE
|
||||
# VGDISP MAG. OF DELTAV FOR DISPLAY, SCALING B+7 M/CS EARTH
|
||||
# MAG. OF DELTAV FOR DISPLAY, SCALING B+5 M/CS MOON
|
||||
# MIDGIM MIDDLE GIMBAL ANGLE
|
||||
# XDELVFLG RESETS XDELVFLG FOR LAMBERT VG COMPUTATIONS
|
||||
|
||||
# ALARMS OR ABORTS NONE **
|
||||
|
||||
# RESTARTS ARE VIA GROUP 4 **
|
||||
|
||||
SETLOC GLM
|
||||
BANK
|
||||
|
||||
EBANK= SUBEXIT
|
||||
|
||||
COUNT* $$/P31
|
||||
P31 TC P20FLGON
|
||||
CAF V06N33 # T16
|
||||
TC VNP00H
|
||||
TC INTPRET
|
||||
CLEAR DLOAD
|
||||
UPDATFLG
|
||||
TIG
|
||||
STCALL TDEC1 # INTEGRATE STATE VECTORS TO TIG
|
||||
LEMPREC
|
||||
VLOAD SETPD
|
||||
RATT
|
||||
0D
|
||||
STORE RTIG
|
||||
STOVL RINIT
|
||||
VATT
|
||||
STORE VTIG
|
||||
STODL VINIT
|
||||
P30ZERO
|
||||
PUSH PDDL # E4 AND NUMIT = 0
|
||||
DELLT4
|
||||
DAD SXA,1
|
||||
TIG
|
||||
RTX1
|
||||
STORE TPASS4
|
||||
SXA,2 CALL
|
||||
RTX2
|
||||
INITVEL
|
||||
VLOAD PUSH
|
||||
# Page 653
|
||||
DELVEET3
|
||||
STORE DELVSIN
|
||||
ABVAL CLEAR
|
||||
XDELVFLG
|
||||
STCALL VGDISP
|
||||
GET.LVC
|
||||
VLOAD PDVL
|
||||
RTIG
|
||||
VIPRIME
|
||||
CALL
|
||||
PERIAPO1
|
||||
CALL
|
||||
SHIFTR1
|
||||
CALL # LIMIT DISPLAY TO 9999.9 N. MI.
|
||||
MAXCHK
|
||||
STODL HPER
|
||||
4D
|
||||
CALL
|
||||
SHIFTR1
|
||||
CALL # LIMIT DISPLAY TO 9999.9 N. MI.
|
||||
MAXCHK
|
||||
STORE HAPO
|
||||
EXIT
|
||||
CAF V06N81 # DELVLVC
|
||||
TC VNP00H
|
||||
CAF V06N42 # HAPO, HPER, VGDISP
|
||||
TC VNP00H
|
||||
TC INTPRET
|
||||
REVN1645 SET CALL # TRKMKCNT, TTOGO, +MGA
|
||||
FINALFLG
|
||||
VN1645
|
||||
GOTO
|
||||
REVN1645
|
||||
|
||||
|
||||
# *** END OF LEMP30S .103 ***
|
||||
|
536
Luminary099/LANDING_ANALOG_DISPLAYS.s
Normal file
536
Luminary099/LANDING_ANALOG_DISPLAYS.s
Normal file
@ -0,0 +1,536 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: LANDING_ANALOG_DISPLAYS.agc
|
||||
# Purpose: Part of the source code for Luminary, build 099. It
|
||||
# is part of the source code for the Lunar Module's
|
||||
# (LM) Apollo Guidance Computer (AGC), Apollo 11.
|
||||
# Assembler: yaYUL
|
||||
# Reference: pp. 898-907
|
||||
# Contact: Ron Burkey <info@sandroid.org>,
|
||||
# Fabrizio Bernardini <fabrizio@spacecraft.it>
|
||||
# Website: http://www.ibiblio.org/apollo.
|
||||
# Mod history: 05/06/09 FB Transcription Batch 4 Assignment.
|
||||
#
|
||||
# The contents of the "Luminary099" files, in general, are transcribed
|
||||
# from scanned documents.
|
||||
#
|
||||
# Assemble revision 001 of AGC program Luminary099 by NASA
|
||||
# 2021112-061. July 14, 1969.
|
||||
#
|
||||
# Prepared by
|
||||
# Massachussets Institute of Technology
|
||||
# 75 Cambridge Parkway
|
||||
# Cambridge, Massachusetts
|
||||
#
|
||||
# under NASA contract NAS 9-4065.
|
||||
#
|
||||
# Refer directly to the online document mentioned above for further
|
||||
# information. Please report any errors to info@sandroid.org.
|
||||
|
||||
# Page 898
|
||||
BANK 21
|
||||
SETLOC R10
|
||||
BANK
|
||||
|
||||
EBANK= UNIT/R/
|
||||
COUNT* $$/R10
|
||||
|
||||
LANDISP LXCH PIPCTR1 # UPDATE TBASE2 AND PIPCTR SIMULTANEOUSLY.
|
||||
CS TIME1
|
||||
DXCH TBASE2
|
||||
|
||||
CS FLAGWRD7 # IS LANDING ANALOG DISPLAYS FLAG SET?
|
||||
MASK SWANDBIT
|
||||
CCS A
|
||||
TCF DISPRSET # NO.
|
||||
CA IMODES33 # BIT 7 = 0 (DO ALTRATE), =1 (DO ALT.)
|
||||
MASK BIT7
|
||||
CCS A
|
||||
TCF ALTOUT
|
||||
ALTROUT TC DISINDAT # CHECK MODE SELECT SWITCH AND DIDFLG.
|
||||
CS IMODES33
|
||||
MASK BIT7
|
||||
ADS IMODES33 # ALTERNATE ALTITUDE RATE WITH ALTITUDE.
|
||||
CAF BIT2 # RATE COMMAND IS EXECUTED BEFORE RANGE.
|
||||
EXTEND
|
||||
WOR CHAN14 # ALTRATE (BIT2 = 1), ALTITUDE (BIT2 = 0).
|
||||
ARCOMP CA RUNIT # COMPUTE ALTRATE = RUNIT.VVECT M/CS *(-6).
|
||||
EXTEND
|
||||
MP VVECT # MULTIPLY X-COMPONENTS.
|
||||
XCH RUPTREG1 # SAVE SINGLE PRECISION RESULT M/CS*2(-6)
|
||||
CA RUNIT +1 # MULTIPLY Y-COMPONENTS.
|
||||
EXTEND
|
||||
MP VVECT +1
|
||||
ADS RUPTREG1 # ACCUMULATE PARTIAL PRODUCTS.
|
||||
CA RUNIT +2 # MULTIPLY Z-COMPONENTS.
|
||||
EXTEND
|
||||
MP VVECT +2
|
||||
ADS RUPTREG1 # ALTITUDE RATE IN M/CS *2(-6).
|
||||
CA ARCONV # CONVERT ALTRATE TO BIT UNITS (.5FPS/BIT)
|
||||
EXTEND
|
||||
MP RUPTREG1
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
XCH RUPTREG1 # ALTITUDE RATE IN BIT UNITS*2(-14).
|
||||
CA DALTRATE # ALTITUDE RATE COMPENSATION FACTOR.
|
||||
EXTEND
|
||||
MP DT
|
||||
AD RUPTREG1
|
||||
TS ALTRATE # ALTITUDE RATE IN BIT UNITS*2(-14).
|
||||
CS ALTRATE
|
||||
# Page 899
|
||||
EXTEND # CHECK POLARITY OF ALTITUDE RATE.
|
||||
BZMF +2
|
||||
TCF DATAOUT # NEGATIVE -- SEND POS. PULSES TO ALTM REG.
|
||||
CA ALTRATE # POSITIVE OR ZERO -- SET SIGN BIT = 1 AND
|
||||
AD BIT15 # SEND TO ALTM REGISTER. *DO NOT SEND +0*
|
||||
DATAOUT TS ALTM # ACTIVATE THE LANDING ANALOG DISPLAYS
|
||||
CAF BIT3
|
||||
EXTEND
|
||||
WOR CHAN14 # BIT3 DRIVES THE ALT/ALTRATE METER.
|
||||
TCF TASKOVER # EXIT
|
||||
|
||||
ALTOUT TC DISINDAT # CHECK MODE SELECT SWITCH AND DIDFLG.
|
||||
CS BIT7
|
||||
MASK IMODES33
|
||||
TS IMODES33 # ALTERNATE ALTITUDE RATE WITH ALTITUDE.
|
||||
CS BIT2
|
||||
EXTEND
|
||||
WAND CHAN14
|
||||
CCS ALTBITS # = -1 IF OLD ALT. DATA TO BE EXTRAPOLATED.
|
||||
TCF +4
|
||||
TCF +3
|
||||
TCF OLDDATA
|
||||
TS ALTBITS # SET ALTBITS FROM -0 TO +0.
|
||||
CS ONE
|
||||
DXCH ALTBITS # SET ALTBITS = -1 FOR SWITCH USE NEXT PASS.
|
||||
DXCH ALTSAVE
|
||||
CA BIT10 # NEW ALTITUDE EXTRAPOLATION WITH ALTRATE.
|
||||
XCH Q
|
||||
LXCH 7 # ZL
|
||||
CA DT
|
||||
EXTEND
|
||||
DV Q # RESCALE DT*2(-14) TO *2(-9) TIME IN CS.
|
||||
EXTEND
|
||||
MP ARTOA2 # .0021322 *2(+8)
|
||||
TCF OLDDATA +1 # RATE APPLIES FOR DT CS.
|
||||
|
||||
ZDATA2 DXCH ALTSAVE
|
||||
TCF NEWDATA
|
||||
OLDDATA CA ARTOA # RATE APPLIES FOR .5 SEC. (4X/SEC. CYCLE)
|
||||
EXTEND
|
||||
MP ALTRATE # EXTRAPOLATE WITH ALTITUDE RATE.
|
||||
DDOUBL
|
||||
AD ALTSAVE +1
|
||||
TS ALTSAVE +1
|
||||
CAF ZERO
|
||||
ADS ALTSAVE
|
||||
CAF POSMAX # FORCE SIGN AGREEMENT ASSUMING A
|
||||
AD ONE # NON-NEGATIVE ALTSAVE.
|
||||
AD ALTSAVE +1 # IF ALTSAVE IS NEGATIVE, ZERO ALTSAVE
|
||||
TS ALTSAVE +1 # AND ALTSAVE +1 AT ZERODATA.
|
||||
# Page 900
|
||||
CAF ZERO
|
||||
AD POSMAX
|
||||
AD ALTSAVE
|
||||
TS ALTSAVE # POSSIBLY SKIP TO NEWDATA.
|
||||
TCF ZERODATA
|
||||
NEWDATA CCS ALTSAVE +1
|
||||
TCF +4
|
||||
TCF +3
|
||||
CAF ZERO # SET NEGATIVE ALTSAVE +1 TO +0.
|
||||
TS ALTSAVE +1
|
||||
CCS ALTSAVE # PROVIDE A 15 BIT UNSIGNED OUTPUT.
|
||||
CAF BIT15 # THE HI-ORDER PART IS +1 OR +0.
|
||||
AD ALTSAVE +1
|
||||
TCF DATAOUT # DISPATCH UNSIGNED BITS TO ALTM REG.
|
||||
DISINDAT EXTEND
|
||||
QXCH LADQSAVE # SAVE RETURN TO ALTROUT +1 OR ALTOUT +1
|
||||
CAF BIT6
|
||||
EXTEND # WISHETH THE ASTRONAUT THE ANALOG
|
||||
RAND CHAN30 # DISPLAYS? I.E.,
|
||||
CCS A # IS THE MODE SELECT SWITCH IN PGNCS?
|
||||
TCF DISPRSET # NO. ASTRONAUT REQUESTS NO INERTIAL DATA
|
||||
CS FLAGWRD1 # YES. CHECK STATUS OF DIDFLAG.
|
||||
MASK DIDFLBIT
|
||||
EXTEND
|
||||
BZF SPEEDRUN # SET. PERFORM DATA DISPLAY SEQUENCE.
|
||||
CS FLAGWRD1 # RESET. PERFORM INITIALIZATION FUNCTIONS.
|
||||
MASK DIDFLBIT
|
||||
ADS FLAGWRD1 # SET DIDFLAG.
|
||||
CS BIT7
|
||||
MASK IMODES33 # TO DISPLAY ALTRATE FIRST AND ALT. SECOND
|
||||
TS IMODES33
|
||||
CS FLAGWRD0 # ARE WE IN DESCENT TRAJECTORY?
|
||||
MASK R10FLBIT
|
||||
EXTEND
|
||||
BZF TASKOVER # NO
|
||||
CAF BIT8 # YES.
|
||||
EXTEND
|
||||
WOR CHAN12 # SET DISPLAY INERTIAL DATA OUTBIT.
|
||||
CAF ZERO
|
||||
TS TRAKLATV # LATERAL VELOCITY MONITOR FLAG
|
||||
TS TRAKFWDV # FORWARD VELOCITY MONITOR FLAG
|
||||
TS LATVMETR # LATVEL MONITOR METER
|
||||
TS FORVMETR # FORVEL MONITOR METER
|
||||
CAF BIT4
|
||||
TC TWIDDLE
|
||||
ADRES INTLZE
|
||||
TCF TASKOVER
|
||||
INTLZE CAF BIT2
|
||||
EXTEND
|
||||
WOR CHAN12 # ENABLE RR ERROR COUNTER.
|
||||
# Page 901
|
||||
CS IMODES33
|
||||
MASK BIT8
|
||||
ADS IMODES33 # SET INERTIAL DATA FLAG.
|
||||
TCF TASKOVER
|
||||
|
||||
SPEEDRUN CS PIPTIME +1 # UPDATE THE VELOCITY VECTOR
|
||||
AD TIME1 # COMPUTE T - TN
|
||||
AD HALF # CORRECT FOR POSSIBLE OVERFLOW OF TIME1.
|
||||
AD HALF
|
||||
XCH DT # SAVE FOR LATER USE
|
||||
CA 1SEC
|
||||
TS ITEMP5 # INITIALIZE FOR DIVISION LATER
|
||||
EXTEND
|
||||
DCA GDT/2 # COMPUTE THE X-COMPONENT OF VELOCITY.
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
EXTEND
|
||||
MP DT
|
||||
EXTEND
|
||||
DV ITEMP5
|
||||
XCH VVECT # VVECT = G(T-TN) M/CS *2(-5)
|
||||
EXTEND
|
||||
DCA V # M/CS *2(-7)
|
||||
DDOUBL # RESCALE TO 2(-5)
|
||||
DDOUBL
|
||||
ADS VVECT # VVECT = VN + G(T-TN) M/CS *2(-5)
|
||||
CA PIPAX # DELV CM/SEC *2(-14)
|
||||
AD PIPATMPX # IN CASE PIPAX HAS BEEN ZEROED
|
||||
EXTEND
|
||||
MP KPIP1(5) # DELV M/CS *2(-5)
|
||||
ADS VVECT # VVECT = VN + DELV + GN(T-TN) M/CS *2(-5)
|
||||
EXTEND
|
||||
DCA GDT/2 +2 # COMPUTE THE Y-COMPONENT OF VELOCITY.
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
EXTEND
|
||||
MP DT
|
||||
EXTEND
|
||||
DV ITEMP5
|
||||
XCH VVECT +1
|
||||
EXTEND
|
||||
DCA V +2
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
ADS VVECT +1
|
||||
CA PIPAY
|
||||
AD PIPATMPY
|
||||
EXTEND
|
||||
MP KPIP1(5)
|
||||
ADS VVECT +1
|
||||
# Page 902
|
||||
EXTEND
|
||||
DCA GDT/2 +4 # COMPUTE THE Z-COMPONENT OF VELOCITY.
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
EXTEND
|
||||
MP DT
|
||||
EXTEND
|
||||
DV ITEMP5
|
||||
XCH VVECT +2
|
||||
EXTEND
|
||||
DCA V +4
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
ADS VVECT +2
|
||||
CA PIPAZ
|
||||
AD PIPATMPZ
|
||||
EXTEND
|
||||
MP KPIP1(5)
|
||||
ADS VVECT +2
|
||||
|
||||
CAF BIT3 # PAUSE 40 MS TO LET OTHER RUPTS IN.
|
||||
TC VARDELAY
|
||||
|
||||
CS FLAGWRD0 # ARE WE IN DESCENT TRAJECTORY?
|
||||
MASK R10FLBIT
|
||||
CCS A
|
||||
TCF +2 # YES.
|
||||
TC LADQSAVE # NO.
|
||||
|
||||
CA DELVS # HI X OF VELOCITY CORRECTION TERM.
|
||||
AD VVECT # HI X OF UPDATED VELOCITY VECTOR.
|
||||
TS ITEMP1 # = VX - DVX M/CS *2(-5).
|
||||
CA DELVS +2 # Y
|
||||
AD VVECT +1 # Y
|
||||
TS ITEMP2 # = VY - DVY M/CS *2(-5)
|
||||
CA DELVS +4 # Z
|
||||
AD VVECT +2 # Z
|
||||
TS ITEMP3 # = VZ - DVZ M/CS *2(-5)
|
||||
CA ITEMP1 # COMPUTE VHY, VELOCITY DIRECTED ALONG THE
|
||||
EXTEND # Y-COORDINATE.
|
||||
MP UHYP # HI X OF CROSS-RANGE HALF-UNIT VECTOR
|
||||
XCH RUPTREG1
|
||||
CA ITEMP2
|
||||
EXTEND
|
||||
MP UHYP +2 # Y
|
||||
ADS RUPTREG1 # ACCUMULATE PARTIAL PRODUCTS.
|
||||
CA ITEMP3
|
||||
EXTEND
|
||||
MP UHYP +4 # Z
|
||||
ADS RUPTREG1
|
||||
# Page 903
|
||||
CA RUPTREG1
|
||||
DOUBLE
|
||||
XCH VHY # VHY=VMP.UHYP M/CS*2(-5).
|
||||
CA ITEMP1 # NO COMPUTE VHZ, VELOCITY DIRECTED ALONG
|
||||
EXTEND # THE Z-COORDINATE.
|
||||
MP UHZP # HI X OF DOWN-RANGE HALF-UNIT VECTOR.
|
||||
XCH RUPTREG1
|
||||
CA ITEMP2
|
||||
EXTEND
|
||||
MP UHZP +2 # Y
|
||||
ADS RUPTREG1 # ACCUMULATE PARTIAL PRODUCTS.
|
||||
CA ITEMP3
|
||||
EXTEND
|
||||
MP UHZP +4 # Z
|
||||
ADS RUPTREG1
|
||||
CA RUPTREG1
|
||||
DOUBLE
|
||||
XCH VHZ # VHZ = VMP.UHZP M/CS*2(-5).
|
||||
GET22/32 CAF EBANK6 # GET SIN(AOG),COS(AOG) FROM GPMATRIX.
|
||||
TS EBANK
|
||||
EBANK= M22
|
||||
CA M22
|
||||
TS ITEMP3
|
||||
CA M32
|
||||
TS ITEMP4
|
||||
CAF EBANK7
|
||||
TS EBANK
|
||||
EBANK= UNIT/R/
|
||||
LATFWDV CA ITEMP4 # COMPUTE LATERAL AND FORWARD VELOCITIES.
|
||||
EXTEND
|
||||
MP VHY
|
||||
XCH RUPTREG1
|
||||
CA ITEMP3
|
||||
EXTEND
|
||||
MP VHZ
|
||||
ADS RUPTREG1 # = VHY(COS)AOG+VHZ(SIN)AOG M/CS *2(-5)
|
||||
CA VELCONV # CONVERT LATERAL VELOCITY TO BIT UNITS.
|
||||
EXTEND
|
||||
MP RUPTREG1
|
||||
DDOUBL
|
||||
XCH LATVEL # LATERAL VELOCITY IN BIT UNITS *2(-14).
|
||||
CA ITEMP4 # COMPUTE FORWARD VELOCITY.
|
||||
EXTEND
|
||||
MP VHZ
|
||||
XCH RUPTREG1
|
||||
CA ITEMP3
|
||||
EXTEND
|
||||
MP VHY
|
||||
CS A
|
||||
ADS RUPTREG1 # =VHZ(COS)AOG-VHY(SIN)AOG M/CS *2(-5).
|
||||
# Page 904
|
||||
CA VELCONV # CONVERT FORWARD VELOCITY TO BIT UNITS.
|
||||
EXTEND
|
||||
MP RUPTREG1
|
||||
DDOUBL
|
||||
XCH FORVEL # FORWARD VELOCITY IN BIT UNITS *2(-14).
|
||||
|
||||
CS MAXVBITS # ACC.=-199.9989 FT./SEC.
|
||||
TS ITEMP6 # -547 BIT UNITS (OCTAL) AT 0.5571 FPS/BIT
|
||||
|
||||
CAF ONE # LOOP TWICE.
|
||||
VMONITOR TS ITEMP5 # FORWARD AND LATERAL VELOCITY LANDING
|
||||
INDEX ITEMP5 # ANALOG DISPLAYS MONITOR.
|
||||
CCS LATVEL
|
||||
TCF +4
|
||||
TCF LVLIMITS
|
||||
TCF +8D
|
||||
TCF LVLIMITS
|
||||
INDEX ITEMP5
|
||||
CS LATVEL
|
||||
AD MAXVBITS # +199.9989 FT.SEC.
|
||||
EXTEND
|
||||
BZMF CHKLASTY
|
||||
TCF LVLIMITS
|
||||
INDEX ITEMP5
|
||||
CA LATVEL
|
||||
AD MAXVBITS
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TCF LVLIMITS
|
||||
CHKLASTY INDEX ITEMP5
|
||||
CCS LATVMETR
|
||||
TCF +4
|
||||
TCF LASTOK
|
||||
TCF +7
|
||||
TCF LASTOK
|
||||
INDEX ITEMP5
|
||||
CA LATVEL
|
||||
EXTEND
|
||||
BZMF LASTPOSY +5
|
||||
TCF +5
|
||||
INDEX ITEMP5
|
||||
CS LATVEL
|
||||
EXTEND
|
||||
BZMF LASTNEGY +4
|
||||
LASTOK INDEX ITEMP5
|
||||
CCS TRAKLATV
|
||||
TCF LASTPOSY
|
||||
TCF +2
|
||||
TCF LASTNEGY
|
||||
INDEX ITEMP5
|
||||
# Page 905
|
||||
CA LATVEL
|
||||
EXTEND
|
||||
BZMF NEGVMAXY
|
||||
TCF POSVMAXY
|
||||
LASTPOSY INDEX ITEMP5
|
||||
CA LATVEL
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TCF POSVMAXY
|
||||
CS MAXVBITS
|
||||
TCF ZEROLSTY
|
||||
POSVMAXY INDEX ITEMP5
|
||||
CS LATVMETR
|
||||
AD MAXVBITS
|
||||
INDEX ITEMP5
|
||||
XCH RUPTREG3
|
||||
CAF ONE
|
||||
TCF ZEROLSTY +3
|
||||
LASTNEGY INDEX ITEMP5
|
||||
CA LATVEL
|
||||
EXTEND
|
||||
BZMF NEGVMAXY
|
||||
CA MAXVBITS
|
||||
TCF ZEROLSTY
|
||||
NEGVMAXY INDEX ITEMP5
|
||||
CA LATVMETR
|
||||
AD MAXVBITS
|
||||
COM
|
||||
INDEX ITEMP5
|
||||
XCH RUPTREG3
|
||||
CS ONE
|
||||
TCF ZEROLSTY +3
|
||||
LVLIMITS INDEX ITEMP5
|
||||
CCS TRAKLATV
|
||||
TCF LATVPOS
|
||||
TCF +2
|
||||
TCF LATVNEG
|
||||
INDEX ITEMP5
|
||||
CS LATVMETR
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TCF NEGLMLV
|
||||
INDEX ITEMP5
|
||||
|
||||
CS LATVEL
|
||||
EXTEND
|
||||
BZMF LVMINLM
|
||||
AD ITEMP6
|
||||
INDEX ITEMP5
|
||||
AD LATVMETR
|
||||
EXTEND
|
||||
# Page 906
|
||||
BZMF LVMINLM
|
||||
INDEX ITEMP5
|
||||
AD LATVEL
|
||||
EXTEND
|
||||
INDEX ITEMP5
|
||||
SU LATVMETR
|
||||
TCF ZEROLSTY
|
||||
LATVPOS INDEX ITEMP5
|
||||
CS LATVEL
|
||||
EXTEND
|
||||
BZMF LVMINLM
|
||||
TCF +5
|
||||
LATVNEG INDEX ITEMP5
|
||||
CA LATVEL
|
||||
EXTEND
|
||||
BZMF LVMINLM
|
||||
INDEX ITEMP5
|
||||
CS LATVMETR
|
||||
TCF ZEROLSTY
|
||||
NEGLMLV INDEX ITEMP5
|
||||
CA LATVEL
|
||||
EXTEND
|
||||
BZMF LVMINLM
|
||||
CA MAXVBITS
|
||||
INDEX ITEMP5
|
||||
AD LATVMETR
|
||||
COM
|
||||
INDEX ITEMP5
|
||||
AD LATVEL
|
||||
EXTEND
|
||||
BZMF LVMINLM
|
||||
EXTEND
|
||||
INDEX ITEMP5
|
||||
SU LATVEL
|
||||
INDEX ITEMP5
|
||||
AD LATVMETR
|
||||
COM
|
||||
TCF ZEROLSTY
|
||||
LVMINLM INDEX ITEMP5
|
||||
CS LATVMETR
|
||||
INDEX ITEMP5
|
||||
AD LATVEL
|
||||
ZEROLSTY INDEX ITEMP5
|
||||
XCH RUPTREG3
|
||||
CAF ZERO
|
||||
INDEX ITEMP5
|
||||
TS TRAKLATV
|
||||
INDEX ITEMP5
|
||||
CA RUPTREG3
|
||||
AD NEG0 # AVOIDS +0 DINC HARDWARE MALFUNCTION
|
||||
# Page 907
|
||||
INDEX ITEMP5
|
||||
TS CDUTCMD
|
||||
INDEX ITEMP5
|
||||
CA RUPTREG3
|
||||
INDEX ITEMP5
|
||||
ADS LATVMETR
|
||||
CCS ITEMP5 # FIRST MONITOR FORWARD THEN LATERAL VEL.
|
||||
TCF VMONITOR
|
||||
|
||||
CAF BITSET # DRIVE THE X-POINTER DISPLAY.
|
||||
EXTEND
|
||||
WOR CHAN14
|
||||
TC LADQSAVE # GO TO ALTROUT +1 OR TO ALTOUT +1
|
||||
ZERODATA CAF ZERO # ZERO ALTSAVE AND ALTSAVE +1
|
||||
TS L # NO NEGATIVE ALTITUDES ALLOWED.
|
||||
TCF ZDATA2
|
||||
|
||||
# ****************************************************************************
|
||||
|
||||
DISPRSET CS FLAGWRD0 # ARE WE IN DESCENT TRAJECTORY?
|
||||
MASK R10FLBIT
|
||||
EXTEND
|
||||
BZF ABORTON # NO.
|
||||
CAF BIT8 # YES.
|
||||
MASK IMODES33 # CHECK IF INERTIAL DATA JUST DISPLAYED.
|
||||
CCS A
|
||||
CAF BIT2 # YES. DISABLE RR ERROR COUNTER
|
||||
AD BIT8 # NO. REMOVE DISPLAY INERTIAL DATA
|
||||
COM
|
||||
EXTEND
|
||||
WAND CHAN12
|
||||
ABORTON CS BITS8/7 # RESET INERTIAL DATA, INTERLEAVE FLAGS.
|
||||
MASK IMODES33
|
||||
TS IMODES33
|
||||
CS DIDFLBIT
|
||||
MASK FLAGWRD1
|
||||
TS FLAGWRD1 # RESET DIDFLAG.
|
||||
TCF TASKOVER
|
||||
|
||||
# ******************************************************************************
|
||||
|
||||
BITS8/7 OCT 00300 # INERTIAL DATA AND INTERLEAVE FLAGS.
|
||||
BITSET = PRIO6
|
||||
|
||||
# ******************************************************************************
|
||||
|
||||
|
209
Luminary099/LEM_GEOMETRY.s
Normal file
209
Luminary099/LEM_GEOMETRY.s
Normal file
@ -0,0 +1,209 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: LEM_GEOMETRY.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: 320-325
|
||||
# Mod history: 2009-05-16 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 320
|
||||
BANK 23
|
||||
SETLOC LEMGEOM
|
||||
BANK
|
||||
|
||||
SBANK= LOWSUPER
|
||||
EBANK= XSM
|
||||
|
||||
# THESE TWO ROUTINES COMPUTE THE ACTUAL STATE VECTOR FOR LM,CSM BY ADDING
|
||||
# THE CONIC R,V AND THE DEVIATIONS R,V. THE STATE VECTORS ARE CONVERTED TO
|
||||
# METERS B-29 AND METERS/CSEC B-7 AND STORED APPROPRIATELY IN RN,VN OR
|
||||
# R-OTHER,V-OTHER FOR DOWNLINK. THE ROUTINES' NAMES ARE SWITCHED IN THE
|
||||
# OTHER VEHICLE'S COMPUTER.
|
||||
#
|
||||
# INPUT
|
||||
# STATE VECTOR IN TEMPORARY STORAGE AREA
|
||||
# IF STATE VECTOR IS SCALED POS B27 AND VEL B5
|
||||
# SET X2 TO +2
|
||||
# IF STATE VECTOR IS SCALED POS B29 AND VEL B7
|
||||
# SET X2 TO 0
|
||||
#
|
||||
# OUTPUT
|
||||
# R(T) IN RN, V(T) IN VN, T IN PIPTIME
|
||||
# OR
|
||||
# R(T) IN R-OTHER, V(T) IN V-OTHER (T IS DEFINED BY T-OTHER)
|
||||
|
||||
COUNT* $$/GEOM
|
||||
SVDWN2 BOF RVQ # SW=1=AVETOMID DOING W-MATRIX INTEG.
|
||||
AVEMIDSW
|
||||
+1
|
||||
VLOAD VSL*
|
||||
TDELTAV
|
||||
0 -7,2
|
||||
VAD VSL*
|
||||
RCV
|
||||
0,2
|
||||
STOVL RN
|
||||
TNUV
|
||||
VSL* VAD
|
||||
0 -4,2
|
||||
VCV
|
||||
VSL*
|
||||
0,2
|
||||
STODL VN
|
||||
TET
|
||||
STORE PIPTIME
|
||||
RVQ
|
||||
# Page 321
|
||||
SVDWN1 VLOAD VSL*
|
||||
TDELTAV
|
||||
0 -7,2
|
||||
VAD VSL*
|
||||
RCV
|
||||
0,2
|
||||
STOVL R-OTHER
|
||||
TNUV
|
||||
VSL* VAD
|
||||
0 -4,2
|
||||
VCV
|
||||
VSL*
|
||||
0,2
|
||||
STORE V-OTHER
|
||||
RVQ
|
||||
|
||||
# Page 322
|
||||
# THE FOLLOWING ROUTINE TAKES A HALF UNIT TARGET VECTOR REFERRED TO NAV BASE COORDINATES AND FINDS BOTH
|
||||
# GIMBAL ORIENTATIONS AT WHICH THE RR MIGHT SIGHT THE TARGET. THE GIMBAL ANGLES CORRESPONDING TO THE PRESENT MODE
|
||||
# ARE LEFT IN MODEA AND THOSE WHICH WOULD BE USED AFTER A REMODE IN MODEB. THIS ROUTINE ASSUMES MODE 1 IS TRUNNION
|
||||
# ANGLE LESS THAN 90 DEGS IN ABS VALUE WITH ARBITRARY SHAFT, WITH A CORRESPONDING DEFINITION FOR MODE 2. MODE
|
||||
# SELECTION AND LIMIT CHECKING ARE DONE ELSEWHERE.
|
||||
#
|
||||
# THE MODE 1 CONFIGURATION IS CALCULATED FROM THE VECTOR AND THEN MODE 2 IS FOUND USING THE RELATIONS
|
||||
#
|
||||
# S(2) = 180 + S(1)
|
||||
# T(2) = 180 - T(1)
|
||||
#
|
||||
# THE VECTOR ARRIVES IN MPAC WHERE TRG*SMNG OR *SMNB* WILL HAVE LEFT IT.
|
||||
|
||||
RRANGLES STORE 32D
|
||||
DLOAD DCOMP # SINCE WE WILL FIND THE MODE 1 SHAFT
|
||||
34D # ANGLE LATER, WE CAN FIND THE MODE 1
|
||||
SETPD ASIN # TRUNNION BY SIMPLY TAKING THE ARCSIN OF
|
||||
0 # THE Y COMPONENT, THE ASIN GIVIN AN
|
||||
PUSH BDSU # ANSWER WHOSE ABS VAL IS LESS THAN 90 DEG.
|
||||
LODPHALF
|
||||
STODL 4 # MODE 2 TRUNNION TO 4.
|
||||
|
||||
LO6ZEROS
|
||||
STOVL 34D # UNIT THE PROJECTION OF THE VECTOR
|
||||
32D # IN THE X-Z PLANE
|
||||
UNIT BOVB # IF OVERFLOW, TARGET VECTOR IS ALONG Y
|
||||
LUNDESCH # CALL FOR MANEUVER UNLESS ON LUNAR SURF
|
||||
STODL 32D # PROJECTION VECTOR.
|
||||
32D
|
||||
SR1 STQ
|
||||
S2
|
||||
STODL SINTH # USE ARCTRIG SINCE SHAFT COULD BE ARB.
|
||||
36D
|
||||
SR1
|
||||
STCALL COSTH
|
||||
ARCTRIG
|
||||
# Page 323
|
||||
PUSH DAD # MODE 1 SHAFT TO 2.
|
||||
LODPHALF
|
||||
STOVL 6
|
||||
4
|
||||
RTB # FIND MODE 2 CDU ANGLES.
|
||||
2V1STO2S
|
||||
STOVL MODEB
|
||||
0
|
||||
RTB # MODE 1 ANGLES TO MODE A.
|
||||
2V1STO2S
|
||||
STORE MODEA
|
||||
EXIT
|
||||
|
||||
CS RADMODES # SWAP MODEA AND MODEB IF RR IN MODE 2.
|
||||
MASK ANTENBIT
|
||||
CCS A
|
||||
TCF +4
|
||||
|
||||
DXCH MODEA
|
||||
DXCH MODEB
|
||||
DXCH MODEA
|
||||
|
||||
TC INTPRET
|
||||
GOTO
|
||||
S2
|
||||
# Page 324
|
||||
# GIVEN RR TRUNNION AND SHAFT (T,S) IN TANGNB,+1, FIND THE ASSOCIATED
|
||||
# LINE OF SIGHT IN NAV BASE AXES. THE HALF UNIT VECTOR, .5(SIN(S)COS(T),
|
||||
# -SIN(T),COS(S)COS(T)) IS LEFT IN MPAC AND 32D.
|
||||
|
||||
SETLOC INFLIGHT
|
||||
BANK
|
||||
|
||||
COUNT* $$/GEOM
|
||||
|
||||
RRNB SLOAD RTB
|
||||
TANGNB
|
||||
CDULOGIC
|
||||
SETPD PUSH # TRUNNION ANGLE TO 0
|
||||
0
|
||||
SIN DCOMP
|
||||
STODL 34D # Y COMPONENT
|
||||
|
||||
COS PUSH # .5 COS(T) TO 0
|
||||
SLOAD RTB
|
||||
TANGNB +1
|
||||
CDULOGIC
|
||||
RRNB1 PUSH COS # SHAFT ANGLE TO 2
|
||||
DMP SL1
|
||||
0
|
||||
STODL 36D # Z COMPONENT
|
||||
|
||||
SIN DMP
|
||||
SL1
|
||||
STOVL 32D
|
||||
32D
|
||||
RVQ
|
||||
|
||||
# THIS ENTRY TO RRNB REQUIRES THE TRUNNION AND SHAFT ANGLES IN MPAC AND MPAC +1 RESPECTIVELY
|
||||
|
||||
RRNBMPAC STODL 20D # SAVE SHAFT CDU IN 21.
|
||||
MPAC # SET MODE TO DP. (THE PRECEEDING STORE
|
||||
# MAY BE DP, TP OR VECTOR.)
|
||||
RTB SETPD
|
||||
CDULOGIC
|
||||
0
|
||||
PUSH SIN # TRUNNION ANGLE TO 0
|
||||
DCOMP
|
||||
STODL 34D # Y COMPONENT
|
||||
COS PUSH # .5COS(T) TO 0
|
||||
SLOAD RTB # PICK UP CDU'S.
|
||||
21D
|
||||
CDULOGIC
|
||||
GOTO
|
||||
RRNB1
|
||||
# Page 325
|
||||
# (This page has nothing on it.)
|
||||
|
||||
|
1474
Luminary099/LUNAR_LANDING_GUIDANCE_EQUATIONS.s
Normal file
1474
Luminary099/LUNAR_LANDING_GUIDANCE_EQUATIONS.s
Normal file
File diff suppressed because it is too large
Load Diff
1056
Luminary099/P-AXIS_RCS_AUTOPILOT.s
Normal file
1056
Luminary099/P-AXIS_RCS_AUTOPILOT.s
Normal file
File diff suppressed because it is too large
Load Diff
245
Luminary099/P12.s
Normal file
245
Luminary099/P12.s
Normal file
@ -0,0 +1,245 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: P12.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: 838-842
|
||||
# Mod history: 2009-05-23 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 838
|
||||
BANK 24
|
||||
SETLOC P12
|
||||
BANK
|
||||
|
||||
EBANK= DVCNTR
|
||||
COUNT* $$/P12
|
||||
|
||||
P12LM TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
TC BANKCALL
|
||||
CADR R02BOTH # CHECK THE STATUS OF THE IMU.
|
||||
|
||||
TC UPFLAG
|
||||
ADRES MUNFLAG
|
||||
|
||||
TC UPFLAG # INSURE 4-JET TRANSLATION CAPABILITY.
|
||||
ADRES ACC4-2FL
|
||||
|
||||
TC UPFLAG # PREVENT R10 FROM ISSUING CROSS-POINTER
|
||||
ADRES R10FLAG # OUTPUTS.
|
||||
|
||||
TC CLRADMOD # INITIALIZE RADMODES FOR R29
|
||||
|
||||
TC DOWNFLAG # CLEAR RENDEVOUS FLAG FOR P22
|
||||
ADRES RNDVZFLG
|
||||
|
||||
CAF THRESH2 # INITIALIZE DVMON
|
||||
TS DVTHRUSH
|
||||
CAF FOUR
|
||||
TS DVCNTR
|
||||
|
||||
CA ZERO
|
||||
TS TRKMKCNT # SHOW THAT R29 DOWNLINK DATA IS NOT READY.
|
||||
CAF V06N33A
|
||||
TC BANKCALL # FLASH TIG
|
||||
CADR GOFLASH
|
||||
TCF GOTOP00H
|
||||
TCF +2 # PROCEED
|
||||
TCF -5 # ENTER
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
TC INTPRET
|
||||
CALL # INITIALZE WM AND /LAND/
|
||||
GUIDINIT
|
||||
SET CALL
|
||||
FLPI
|
||||
P12INIT
|
||||
# Page 839
|
||||
P12LMB DLOAD
|
||||
(TGO)A # SET TGO TO AN INITIAL NOMINAL VALUE.
|
||||
STODL TGO
|
||||
TIG
|
||||
STCALL TDEC1
|
||||
LEMPREC # ROTATE THE STATE VECTORS TO THE
|
||||
VLOAD MXV # IGNITION TIME.
|
||||
VATT
|
||||
REFSMMAT
|
||||
VSL1
|
||||
STOVL V1S # COMPUTE V1S = VEL(TIG)*2(-7) M/CS.
|
||||
RATT
|
||||
MXV VSL6
|
||||
REFSMMAT
|
||||
STCALL R # COMPUTE R = POS(TIG)*2(-24) M.
|
||||
MUNGRAV # COMPUTE GDT1/2(TIG)*2(-T)M/CS.
|
||||
VLOAD UNIT
|
||||
R
|
||||
STCALL UNIT/R/ # COMPUTE UNIT/R/ FOR YCOMP.
|
||||
YCOMP
|
||||
SR DCOMP
|
||||
5D
|
||||
STODL XRANGE # INITIALIZE XRANGE FOR NOUN 76
|
||||
VINJNOM
|
||||
STODL ZDOTD
|
||||
RDOTDNOM
|
||||
STORE RDOTD
|
||||
EXIT
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
NEWLOAD CAF V06N76 # FLASH CROSS-RANGE, AND APOLUNE VALUES.
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TCF GOTOP00H
|
||||
TCF +2 # PROCEED
|
||||
TCF NEWLOAD # ENTER NEW DATA.
|
||||
|
||||
CAF P12ADRES
|
||||
TS WHICH
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
TC INTPRET
|
||||
DLOAD SL
|
||||
XRANGE
|
||||
5D
|
||||
DAD
|
||||
# Page 840
|
||||
Y
|
||||
STOVL YCO
|
||||
UNIT/R/
|
||||
VXSC VAD
|
||||
49FPS
|
||||
V1S
|
||||
STORE V # V(TIPOVER) = V(IGN) + 57FPS (UNIT/R/)
|
||||
DOT SL1
|
||||
UNIT/R/
|
||||
STOVL RDOT # RDOT = 2(-7)
|
||||
UNIT/R/
|
||||
VXV UNIT
|
||||
QAXIS
|
||||
STORE ZAXIS1
|
||||
SETGO
|
||||
FLVR
|
||||
ASCENT
|
||||
P12RET DLOAD
|
||||
ATP # ATP(2)*2(18)
|
||||
DSQ PDDL
|
||||
ATY # ATY(2)*2(18)
|
||||
DSQ DAD
|
||||
BZE SQRT
|
||||
YAWDUN
|
||||
SL1 BDDV
|
||||
ATY
|
||||
ARCSIN
|
||||
YAWDUN STOVL YAW
|
||||
UNFC/2
|
||||
UNIT DOT
|
||||
UNIT/R/
|
||||
SL1 ARCCOS
|
||||
DCOMP
|
||||
STORE PITCH
|
||||
EXIT
|
||||
TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
TC DOWNFLAG
|
||||
ADRES FLPI
|
||||
|
||||
INHINT
|
||||
TC IBNKCALL
|
||||
CADR PFLITEDB
|
||||
RELINT
|
||||
|
||||
TC POSTJUMP
|
||||
CADR BURNBABY
|
||||
|
||||
P12INIT DLOAD # INITIALIZE ENGINE DATA. USED FOR P12 AND
|
||||
# Page 841
|
||||
(1/DV)A # P71.
|
||||
STORE 1/DV3
|
||||
STORE 1/DV2
|
||||
STODL 1/DV1
|
||||
(AT)A
|
||||
STODL AT
|
||||
(TBUP)A
|
||||
STODL TBUP
|
||||
ATDECAY
|
||||
DCOMP SL
|
||||
11D
|
||||
STORE TTO
|
||||
SLOAD DCOMP
|
||||
APSVEX
|
||||
SR2
|
||||
STORE VE
|
||||
BOFF RVQ
|
||||
FLAP
|
||||
COMMINIT
|
||||
COMMINIT DLOAD DAD # INITIALIZE TARGET DATA. USED BY P12, P70
|
||||
HINJECT # AND P71 IF IT DOES NOT FOLLOW P70.
|
||||
/LAND/
|
||||
STODL RCO
|
||||
HI6ZEROS
|
||||
STORE TXO
|
||||
STORE YCO
|
||||
STORE RDOTD
|
||||
STOVL YDOTD
|
||||
VRECTCSM
|
||||
VXV MXV
|
||||
RRECTCSM
|
||||
REFSMMAT
|
||||
UNIT
|
||||
STORE QAXIS
|
||||
RVQ
|
||||
P12ADRES REMADR P12TABLE
|
||||
|
||||
SETLOC P12A
|
||||
BANK
|
||||
COUNT* $$/P12
|
||||
|
||||
GUIDINIT STQ SETPD
|
||||
TEMPR60
|
||||
0D
|
||||
VLOAD PUSH
|
||||
UNITZ
|
||||
RTB PUSH
|
||||
LOADTIME
|
||||
CALL
|
||||
RP-TO-R
|
||||
# Page 842
|
||||
MXV VXSC
|
||||
REFSMMAT
|
||||
MOONRATE
|
||||
STOVL WM
|
||||
RLS
|
||||
ABVAL SL3
|
||||
STCALL /LAND/
|
||||
TEMPR60
|
||||
|
||||
49FPS 2DEC .149352 B-6 # EXPECTED RDOT AT TIPOVER
|
||||
VINJNOM 2DEC 16.7924 B-7 # 5509.5 FPS(APO=30NM WITH RDOT=19.5FPS)
|
||||
RDOTDNOM 2DEC .059436 B-7 # 19.5 FPS
|
||||
|
||||
|
193
Luminary099/P30_P37.s
Normal file
193
Luminary099/P30_P37.s
Normal file
@ -0,0 +1,193 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: P30_P37.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: 614-617
|
||||
# Mod history: 2009-05-17 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2009-06-05 RSB Removed 4 lines of code that shouldn't
|
||||
# have survived from Luminary 131.
|
||||
#
|
||||
# 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 614
|
||||
# PROGRAM DESCRIPTION P30 DATE 3-6-67
|
||||
#
|
||||
# MOD.1 BY RAMA AIYAWAR
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTIONS
|
||||
# ACCEPT ASTRONAUT INPUTS OF TIG,DELV(LV)
|
||||
# CALL IMU STATUS CHECK ROUTINE (R02)
|
||||
# DISPLAY TIME TO GO, APOGEE, PERIGEE, DELV(MAG), MGA AT IGN
|
||||
# REQUEST BURN PROGRAM
|
||||
#
|
||||
# CALLING SEQUENCE VIA JOB FROM V37
|
||||
#
|
||||
# EXIT VIA V37 CALL OR TO GOTOP00H (V34E)
|
||||
#
|
||||
# SUBROUTINE CALLS -- FLAGUP, PHASCHNG, BANKCALL, ENDOFJOB, GOFLASH, GOFLASHR
|
||||
# GOPERF3R, INTPRET, BLANKET, GOTOP00H, R02BOTH, S30.1,
|
||||
# TIG/N35, MIDGIM, DISPMGA
|
||||
#
|
||||
# ERASABLE INITIALIZATION -- STATE VECTOR
|
||||
#
|
||||
# OUTPUT -- RINIT, VINIT, +MGA, VTIG, RTIG, DELVSIN, DELVSAB, DELVSLV, HAPO,
|
||||
# HPER, TTOGO
|
||||
#
|
||||
# DEBRIS -- A, L, MPAC, PUSHLIST
|
||||
|
||||
BANK 32
|
||||
SETLOC P30S
|
||||
BANK
|
||||
EBANK= +MGA
|
||||
COUNT* $$/P30
|
||||
P30 TC UPFLAG # SET UPDATE FLAG
|
||||
ADRES UPDATFLG
|
||||
TC UPFLAG # SET TRACK FLAG
|
||||
ADRES TRACKFLG
|
||||
|
||||
P30N33 CAF V06N33 # T OF IGN
|
||||
TC VNP00H # RETURN ON PROCEED, P00H ON TERMINATE
|
||||
|
||||
CAF V06N81 # DISPLAY DELTA V (LV)
|
||||
TC VNP00H # REDISPLAY ON RECYCLE
|
||||
|
||||
TC DOWNFLAG # RESET UPDATE FLAG
|
||||
ADRES UPDATFLG
|
||||
TC INTPRET
|
||||
CALL
|
||||
S30.1
|
||||
SET EXIT
|
||||
UPDATFLG
|
||||
PARAM30 CAF V06N42 # DISPLAY APOGEE,PERIGEE,DELTA V
|
||||
TC VNP00H
|
||||
# Page 615
|
||||
|
||||
TC INTPRET
|
||||
SETGO
|
||||
XDELVFLG # FOR P40'S: EXTERNAL DELTA-V GUIDANCE.
|
||||
REVN1645 # TRKMKCNT, T60, +MGA DISPLAY
|
||||
|
||||
V06N33 VN 0633
|
||||
V06N42 VN 0642
|
||||
|
||||
# Page 616
|
||||
# PROGRAM DESCRPTION S30.1 DATE 9NOV66
|
||||
# MOD NO 1 LOG SECTION P30,P37
|
||||
# MOD BY RAMA AIYAWAR **
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
# BASED ON STORED TARGET PARAMETERS (R OF IGNITION (RTIG), V OF
|
||||
# IGNITION (VTIG), TIME OF IGNITION (TIG)), COMPUTE PERIGEE ALTITUDE
|
||||
# APOGEE ALTITUDE AND DELTAV REQUIRED (DELVSIN).
|
||||
#
|
||||
# CALLING SEQUENCE
|
||||
# L CALL
|
||||
# L+1 s30.1
|
||||
#
|
||||
# NORMAL EXIT MODE
|
||||
# AT L+2 OR CALLING SEQUENCE (GOTO L+2)
|
||||
#
|
||||
# SUBROUTINES CALLED
|
||||
# LEMPREC
|
||||
# PERIAPO
|
||||
#
|
||||
# ALARM OR ABORT EXIT MODES
|
||||
# NONE
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED
|
||||
# TIG TIME OF IGNITION DP B28CS
|
||||
# DELVSLV SPECIFIED DELTA-V IN LOCAL VERT.
|
||||
# COORDS. OF ACTIVE VEHICLE AT
|
||||
# TIME OF IGNITION VECTOR B+7 METERS/CS
|
||||
#
|
||||
# OUTPUT
|
||||
# RTIG POSITION AT TIG VECTOR B+29 METERS
|
||||
# VTIG VELOCITY AT TIG VECTOR B+29 METERS/CS
|
||||
# PDL 4D APOGEE ALTITUDE DP B+29 M, B+27 METERS.
|
||||
# HAPO APOGEE ALTITUDE DP B+29 METERS
|
||||
# PDL 8D PERIGEE ALTITUDE DP B+29 M, B+27 METERS.
|
||||
# HPER PERIGEE ALTITUDE DP B+29 METERS
|
||||
# DELVSIN SPECIFIED DELTA-V IN INTERTIAL
|
||||
# COORD. OF ACTIVE VEHICLE AT
|
||||
# TIME OF IGNITION VECTOR B+7 METERS/CS
|
||||
# DELVSAB MAG. OF DELVSIN VECTOR B+7 METERS/CS
|
||||
#
|
||||
# DEBRIS QTEMP TEMP.ERASABLE
|
||||
# QPRET, MPAC
|
||||
# PUSHLIST
|
||||
|
||||
SETLOC P30S1
|
||||
BANK
|
||||
|
||||
COUNT* $$/S30S
|
||||
|
||||
S30.1 STQ DLOAD
|
||||
QTEMP
|
||||
TIG # TIME IGNITION SCALED AT 2(+28)CS
|
||||
STCALL TDEC1
|
||||
LEMPREC # ENCKE ROUTINE FOR LEM
|
||||
|
||||
VLOAD SXA,2
|
||||
# Page 617
|
||||
RATT
|
||||
RTX2
|
||||
STORE RTIG # RADIUS VECTOR AT IGNITION TIME
|
||||
UNIT VCOMP
|
||||
STOVL DELVSIN # ZRF/LV IN DELVSIN SCALED AT 2
|
||||
VATT # VELOCITY VECTOR AT TIG, SCALED 2(7) M/CS
|
||||
STORE VTIG
|
||||
VXV UNIT
|
||||
RTIG
|
||||
SETPD SXA,1
|
||||
0
|
||||
RTX1
|
||||
PUSH VXV # YRF/LV PDL 0 SCALED AT 2
|
||||
DELVSIN
|
||||
VSL1 PDVL
|
||||
PDVL PDVL # YRF/LV PDL 6 SCALED AT 2
|
||||
DELVSIN # ZRF/LV PDL 12D SCALED AT 2
|
||||
DELVSLV
|
||||
VXM VSL1
|
||||
0
|
||||
STORE DELVSIN # DELTAV IN INERT. COOR. SCALED TO B+7M/CS
|
||||
ABVAL
|
||||
STOVL DELVSAB # DELTA V MAG.
|
||||
RTIG # (FOR PERIAPO)
|
||||
PDVL VAD # VREQUIRED = VTIG + DELVSIN (FOR PERIAPO)
|
||||
VTIG
|
||||
DELVSIN
|
||||
CALL
|
||||
PERIAPO1
|
||||
CALL
|
||||
SHIFTR1 # RESCALE IF NEEDED
|
||||
CALL # LIMIT DISPLAY TO 9999.9 N. MI.
|
||||
MAXCHK
|
||||
STODL HPER # PERIGEE ALT 2(29) METERS FOR DISPLAY
|
||||
4D
|
||||
CALL
|
||||
SHIFTR1 # RESCALE IF NEEDED
|
||||
CALL # LIMIT DISPLAY TO 9999.9 N. MI.
|
||||
MAXCHK
|
||||
STCALL HAPO # APOGEE ALT 2(29) METERS FOR DISPLAY
|
||||
QTEMP
|
||||
|
||||
|
1394
Luminary099/P32-P35_P72-P75.s
Normal file
1394
Luminary099/P32-P35_P72-P75.s
Normal file
File diff suppressed because it is too large
Load Diff
434
Luminary099/P70-P71.s
Normal file
434
Luminary099/P70-P71.s
Normal file
@ -0,0 +1,434 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: P70-P71.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: 829-837
|
||||
# Mod history: 2009-05-23 HG Transcribed from page images.
|
||||
# 2009-06-05 RSB Fixed 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 829
|
||||
BANK 21
|
||||
SETLOC R11
|
||||
BANK
|
||||
|
||||
EBANK= DVCNTR
|
||||
COUNT* $$/R11
|
||||
|
||||
R10,R11 CS FLAGWRD7 # IS SERVICER STILL RUNNING?
|
||||
MASK AVEGFBIT
|
||||
CCS A
|
||||
TCF TASKOVER # LET AVGEND TAKE CARE OF GROUP 2.
|
||||
CCS PIPCTR
|
||||
TCF +2
|
||||
TCF LRHTASK # LAST PASS. CALL LRHTASK.
|
||||
+2 TS PIPCTR1
|
||||
|
||||
PIPCTR1 = LADQSAVE
|
||||
PIPCTR = PHSPRDT2
|
||||
CAF OCT31
|
||||
TC TWIDDLE
|
||||
ADRES R10,R11
|
||||
R10,R11A CS IMODES33 # IF LAMP TEST, DO NTO CHANGE LR LITES
|
||||
MASK BIT1
|
||||
EXTEND
|
||||
BZF 10,11
|
||||
|
||||
FLASHH? MASK FLGWRD11 # C(A) = 1 - HFLASH BIT
|
||||
EXTEND
|
||||
BZF FLASHV? # H FLASH OFF, SO LEAVE ALONE
|
||||
|
||||
CA HLITE
|
||||
TS L
|
||||
TC FLIP # FLIP H LITE
|
||||
|
||||
FLASHV? CA VFLSHBIT # VLASHBIT MUST BE BIT 2.
|
||||
MASK FLGWRD11
|
||||
EXTEND
|
||||
BZF 10,11 # V FLASH OFF
|
||||
|
||||
CA VLITE
|
||||
TS L
|
||||
TC FLIP # FLIP V LITE
|
||||
|
||||
10,11 CA FLAGWRD9 # IS THE LETABORT FLAG SET ?
|
||||
MASK LETABBIT
|
||||
EXTEND
|
||||
BZF LANDISP # NO. PROCEED TO R10.
|
||||
|
||||
P71NOW? CS MODREG # YES. ARE WE IN P71 NOW?
|
||||
# Page 830
|
||||
AD 1DEC71
|
||||
EXTEND
|
||||
BZF LANDISP # YES. PROCEED TO R10.
|
||||
|
||||
EXTEND # NO. IS AN ABORT STAGE COMMANDED?
|
||||
READ CHAN30
|
||||
COM
|
||||
TS L
|
||||
MASK BIT4
|
||||
CCS A
|
||||
TCF P71A # YES.
|
||||
|
||||
P70NOW? CS MODREG # NO. ARE WE IN P70 NOW?
|
||||
AD 1DEC70
|
||||
EXTEND
|
||||
BZF LANDISP # YES. PROCEED TO R10.
|
||||
|
||||
CA L # NO. IS AN ABORT COMMANDED?
|
||||
MASK BIT1
|
||||
CCS A
|
||||
TCF P70A # YES.
|
||||
TCF LANDISP # NO. PROCEED TO R10.
|
||||
|
||||
COUNT* $$/P70
|
||||
|
||||
P70 TC LEGAL?
|
||||
P70A CS ZERO
|
||||
TCF +3
|
||||
P71 TC LEGAL?
|
||||
P71A CAF TWO
|
||||
+3 TS Q
|
||||
INHINT
|
||||
EXTEND
|
||||
DCA CNTABTAD
|
||||
DTCB
|
||||
|
||||
EBANK= DVCNTR
|
||||
CNTABTAD 2CADR CONTABRT
|
||||
|
||||
1DEC70 DEC 70
|
||||
1DEC71 DEC 71
|
||||
|
||||
BANK 05
|
||||
SETLOC ABORTS1
|
||||
BANK
|
||||
COUNT* $$/P70
|
||||
|
||||
CONTABRT CAF ABRTJADR
|
||||
TS BRUPT
|
||||
RESUME
|
||||
# Page 831
|
||||
|
||||
ABRTJADR TCF ABRTJASK
|
||||
|
||||
ABRTJASK CAF OCTAL27
|
||||
AD Q
|
||||
TS L
|
||||
COM
|
||||
DXCH -PHASE4
|
||||
INDEX Q
|
||||
CAF MODE70
|
||||
TS MODREG
|
||||
|
||||
TS DISPDEX # INSURE DISPDEX IS POSITIVE.
|
||||
|
||||
CCS Q # SET APSFLAG IF P71.
|
||||
CS FLGWRD10 # SET APSFLAG PRIOR TO THE ENEMA.
|
||||
MASK APSFLBIT
|
||||
ADS FLGWRD10
|
||||
CS DAPBITS # DAPBITS = OCT 640 = BITS 6, 8, 9
|
||||
MASK DAPBOOLS # (TURN OFF ULLAGE, DRIFT, AND XOVINHIB
|
||||
TS DAPBOOLS
|
||||
|
||||
CS FLAGWRD5 # SET ENGONFLG.
|
||||
MASK ENGONBIT
|
||||
ADS FLAGWRD5
|
||||
|
||||
CS PRIO30 # INSURE THAT THE ENGINE IS ON, IF ARMED.
|
||||
EXTEND
|
||||
RAND DSALMOUT
|
||||
AD BIT13
|
||||
EXTEND
|
||||
WRITE DSALMOUT
|
||||
|
||||
CAF LRBYBIT # TERMINATE R12.
|
||||
TS FLGWRD11
|
||||
|
||||
CS FLAGWRD0 # SET R10FLAG TO SUPPRESS OUTPUTS TO THE
|
||||
MASK R10FLBIT # CROSS-POINTER DISPLAY.
|
||||
ADS FLAGWRD0 # THE FOLLOWING ENEMA WILL REMOVE THE
|
||||
# DISPLAY INERTIAL DATA OUTBIT.
|
||||
TC CLRADMOD # INSURE RADMODES PROPERLY SET FOR R29.
|
||||
|
||||
EXTEND # LOAD TEVENT FOR THE DOWNLINK.
|
||||
DCA TIME2
|
||||
DXCH TEVENT
|
||||
|
||||
EXTEND
|
||||
DCA SVEXITAD
|
||||
DXCH AVGEXIT
|
||||
|
||||
# Page 832
|
||||
EXTEND
|
||||
DCA NEG0
|
||||
DXCH -PHASE1
|
||||
|
||||
EXTEND
|
||||
DCA NEG0
|
||||
DXCH -PHASE3
|
||||
|
||||
EXTEND
|
||||
DCA NEG0
|
||||
DXCH -PHASE6
|
||||
|
||||
CAF THREE # SET UP 4.3SPOT FOR GOABORT
|
||||
TS L
|
||||
COM
|
||||
DXCH -PHASE4
|
||||
|
||||
# the 3 in OCT37774 could be something else, garbled
|
||||
CAF OCT37774 # SET T5RUPT TO CALL DAPIDLER IN
|
||||
TS TIME5 # 40 MILLISECONDS.
|
||||
|
||||
TC POSTJUMP
|
||||
CADR ENEMA
|
||||
|
||||
EBANK= DVCNTR
|
||||
SVEXITAD 2CADR SERVEXIT
|
||||
|
||||
MODE70 DEC 70
|
||||
OCTAL27 OCT 27
|
||||
MODE71 DEC 71
|
||||
|
||||
DAPBITS OCT 00640
|
||||
|
||||
BANK 32
|
||||
SETLOC ABORTS
|
||||
BANK
|
||||
|
||||
COUNT* $$/P70
|
||||
|
||||
GOABORT TC INTPRET
|
||||
CALL
|
||||
INITCDUW
|
||||
EXIT
|
||||
CAF FOUR
|
||||
TS DVCNTR
|
||||
|
||||
CAF WHICHADR
|
||||
TS WHICH
|
||||
|
||||
TC DOWNFLAG
|
||||
ADRES FLRCS
|
||||
# Page 833
|
||||
TC DOWNFLAG
|
||||
ADRES FLUNDISP
|
||||
|
||||
TC DOWNFLAG
|
||||
ADRES IDLEFLAG
|
||||
|
||||
TC UPFLAG # INSURE 4-JET TRANSLATION CAPABILIITY.
|
||||
ADRES ACC4-2FL
|
||||
|
||||
TC CHECKMM
|
||||
70DEC DEC 70
|
||||
TCF P71RET
|
||||
|
||||
P70INIT TC INTPRET
|
||||
CALL
|
||||
TGOCOMP
|
||||
DLOAD SL
|
||||
MDOTDPS
|
||||
4D
|
||||
BDDV
|
||||
MASS
|
||||
STODL TBUP
|
||||
MASS
|
||||
DDV SR1
|
||||
K(1/DV)
|
||||
STORE 1/DV1
|
||||
STORE 1/DV2
|
||||
STORE 1/DV3
|
||||
BDDV
|
||||
K(AT)
|
||||
STODL AT
|
||||
DTDECAY
|
||||
DCOMP SL
|
||||
11D
|
||||
STORE TTO
|
||||
SLOAD DCOMP
|
||||
DPSVEX
|
||||
SR2
|
||||
STORE VE # INITIALIZE DPS EXHAUST VELOCITY
|
||||
SET CALL
|
||||
FLAP
|
||||
COMMINIT
|
||||
AXC,1 GOTO # RETURN HERE IN P70, SET X1 FOR DPS COEFF.
|
||||
0D
|
||||
BOTHPOLY
|
||||
INJTARG AXC,1 # RETURN HERE IN P71, SET X1 FOR APS COEFF.
|
||||
8D
|
||||
BOTHPOLY DLOAD* DMP # TGO D
|
||||
ABTCOF,1
|
||||
TGO
|
||||
# Page 834
|
||||
DAD* DMP
|
||||
ABTCOF +2,1 # TGO(C+TGO )
|
||||
TGO
|
||||
DAD* DMP
|
||||
ABTCOF +4,1 # TGO(B+TGO d))
|
||||
TGO
|
||||
DAD*
|
||||
ABTCOF +6,1 # A+TGO(B+TGO(C+TGO D))
|
||||
STORE ZDOTD # STORE TENTATIVELY IN ZDOTD
|
||||
DSU BPL # CHECK AGAINST MINIMUM
|
||||
VMIN
|
||||
UPRATE # IF BIG ENOUGH, LEAVE ZDOTD AS IS .
|
||||
DLOAD
|
||||
VMIN
|
||||
STORE ZDOTD # IF TOO SMALL, REPLCAE WITH MINIMUM.
|
||||
UPRATE DLOAD
|
||||
ABTRDOT
|
||||
STCALL RDOTD # INITIALZE RDOTD.
|
||||
YCOMP # COMPUTE Y
|
||||
ABS DSU
|
||||
YLIM # /Y/-DYMAX
|
||||
BMN SIGN # IF <0, XR<.5DEG, LEAVE YCO AT 0
|
||||
YOK # IF >0, FIX SIGN OF DEFICIT. THIS IS YCO.
|
||||
Y
|
||||
STORE YCO
|
||||
YOK DLOAD DSU
|
||||
YCO
|
||||
Y # COMPUTE XRANGE IN CASE ASTRONAUT WANTS
|
||||
SR
|
||||
5D
|
||||
STORE XRANGE # TO LOOK.
|
||||
UPTHROT SET EXIT
|
||||
FLVR
|
||||
|
||||
TC UPFLAG # SET ROTFLAG
|
||||
ADRES ROTFLAG
|
||||
|
||||
TC THROTUP
|
||||
|
||||
TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
-3 TC BANKCALL # VERIFY THAT THE PANEL SWITCHES
|
||||
CADR P40AUTO # ARE PROPERLY SET.
|
||||
|
||||
TC THROTUP
|
||||
|
||||
UPTHROT1 EXTEND # SET SERVICER TO CALL ASCENT GUIDANCE.
|
||||
DCA ATMAGAD
|
||||
DXCH AVGEXIT
|
||||
# Page 835
|
||||
GRP4OFF TC PHASCHNG # TERMINATE USE OF GROUP 4.
|
||||
OCT 00004
|
||||
|
||||
TCF ENDOFJOB
|
||||
|
||||
P71RET TC DOWNFLAG
|
||||
ADRES LETABORT
|
||||
|
||||
CAF THRESH2 # SET DVMON THRESHOLD TO THE ASCENT VALUE.
|
||||
TS DVTHRUSH
|
||||
|
||||
TC INTPRET
|
||||
BON CALL
|
||||
FLAP
|
||||
OLDTIME
|
||||
TGOCOMP # IF FLAP=0, TGO=T-TIG
|
||||
SSP GOTO
|
||||
QPRET
|
||||
CADR INJTARG
|
||||
P12INIT # WILL EXIT P12INIT TO INJTARG
|
||||
OLDTIME DLOAD SL1 # IF FLAP=1,GTO=2 TGO
|
||||
TGO
|
||||
STCALL TGO1
|
||||
P12INIT
|
||||
EXIT
|
||||
TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
EXTEND
|
||||
DCA TGO1
|
||||
DXCH TGO
|
||||
TCF UPTHROT1 -3
|
||||
|
||||
TGO1 = VGBODY
|
||||
# *************************************************************************
|
||||
|
||||
BANK 21
|
||||
SETLOC R11
|
||||
BANK
|
||||
COUNT* $$/P70
|
||||
|
||||
LEGAL? CS MMNUMBER # IS THE DESIRED PGM ALREADY IN PROGRESS?
|
||||
AD MODREG
|
||||
EXTEND
|
||||
BZF ABORTALM
|
||||
|
||||
CS FLAGWRD9 # ARE THE ABORTS ENABLED?
|
||||
MASK LETABBIT
|
||||
CCS A
|
||||
# Page 836
|
||||
TCF ABORTALM
|
||||
|
||||
CA FLAGWRD7 # IS SERVICER ON THE AIR?
|
||||
MASK AVEGFBIT
|
||||
CCS A
|
||||
TC Q # YES. ALL IS WELL.
|
||||
ABORTALM TC FALTON
|
||||
TC RELDSP
|
||||
TC POSTJUMP
|
||||
CADR PINBRNCH
|
||||
|
||||
BANK 32
|
||||
SETLOC ABORTS
|
||||
BANK
|
||||
|
||||
COUNT* $$/P70
|
||||
|
||||
# **********************************************************************
|
||||
|
||||
TGOCOMP RTB DSU
|
||||
LOADTIME
|
||||
TIG
|
||||
SL
|
||||
11D
|
||||
STORE TGO
|
||||
RVQ
|
||||
|
||||
# ************************************************************************
|
||||
|
||||
THROTUP CAF BIT13
|
||||
TS THRUST
|
||||
CAF BIT4
|
||||
EXTEND
|
||||
WOR CHAN14
|
||||
TC Q
|
||||
|
||||
# ************************************************************************
|
||||
|
||||
10SECS 2DEC 1000
|
||||
HINJECT 2DEC 18288 B-24 # 60,000 FEET EXPRESSED IN METERS.
|
||||
(TGO)A 2DEC 37000 B-17
|
||||
K(AT) 2DEC .02 # SCALING CONSTANT
|
||||
WHICHADR REMADR ABRTABLE
|
||||
|
||||
# ************************************************************************
|
||||
# Page 837
|
||||
EBANK= DVCNTR
|
||||
ATMAGAD 2CADR ATMAG
|
||||
ORBMANAD ADRES ORBMANUV
|
||||
|
860
Luminary099/Q_R-AXIS_RCS_AUTOPILOT.s
Normal file
860
Luminary099/Q_R-AXIS_RCS_AUTOPILOT.s
Normal file
@ -0,0 +1,860 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: Q_R-AXIS_RCS_AUTOPILOT.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: 1442-1459
|
||||
# Mod history: 2009-05-27 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2009-06-07 RSB Corrected "DEC 96.0" to "DEC 96", since
|
||||
# the former is not compatible with 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 1442
|
||||
BANK 17
|
||||
SETLOC DAPS2
|
||||
BANK
|
||||
|
||||
EBANK= CDUXD
|
||||
|
||||
COUNT* $$/DAPQR
|
||||
|
||||
CALLQERR CA BIT13 # CALCULATE Q,R ERRORS UNLESS THESE AXES
|
||||
EXTEND # ARE IN MANUAL RATE COMMAND.
|
||||
RAND CHAN31
|
||||
CCS A
|
||||
TCF +5 # IN AUTO COMPUTE Q,R ERRORS
|
||||
CS DAPBOOLS # IN MANUAL RATE COMMAND?
|
||||
MASK OURRCBIT
|
||||
EXTEND
|
||||
BZF Q,RORGTS # IF SO BYPASS CALCULATION OF ERROS.
|
||||
TC QERRCALC
|
||||
|
||||
Q,RORGTS CCS COTROLER # CHOOSE CONTROL SYSTEM FOR THIS DAP PASS:
|
||||
TCF GOTOGTS # GTS (ALTERNATES WITH RCS WHEN DOCKED)
|
||||
TCF TRYGTS # GTS IF ALLOWED, OTHERWISE RCS
|
||||
RCS CAF ZERO # RCS (TRYGTS MAY BRANCH TO HERE)
|
||||
TS COTROLER
|
||||
|
||||
DXCH EDOTQ
|
||||
TC ROT-TOUV
|
||||
DXCH OMEGAU
|
||||
|
||||
# X - TRANSLATION
|
||||
#
|
||||
# INPUT: BITS 7,8 OF CH31 (TRANSLATION CONTROLLER)
|
||||
# ULLAGER
|
||||
# APSFLAG, DRIFTBIT
|
||||
# ACC40R2X, ACRBTRAN
|
||||
#
|
||||
# OUTPUT: NEXTU, NEXTV CODES OF TRANSLATION FOR AFTER ROTATION
|
||||
# SENSETYP TELL ROTATION DIRECTION AND DESIRE
|
||||
#
|
||||
# X-TRANS POLICIES ARE EITHER 4 JETS OR A DIAGONAL PAIR. IN 2-JET TRANSLATION THE SYSTEM IS SPECIFIED. A FAILURE
|
||||
# WILL OVERRIDE THIS SPECIFICATION. AN ALARM RESULTS WHEN NO POLICY IS AVAILABLE BECAUSE OF FAILURES.
|
||||
|
||||
SENSEGET CA BIT7 # INPUT BITS OVERRIDE THE INTERNAL BITS
|
||||
EXTEND # SENSETYP WILL NOT OPPOSE ANYTRANS
|
||||
RAND CHAN31
|
||||
EXTEND
|
||||
BZF +X0RULGE
|
||||
# Page 1443
|
||||
CA BIT8
|
||||
EXTEND
|
||||
RAND CHAN31
|
||||
EXTEND
|
||||
BZF -XTRANS
|
||||
|
||||
CA ULLAGER
|
||||
MASK DAPBOOLS
|
||||
CCS A
|
||||
TCF +X0RULGE
|
||||
|
||||
TS NEXTU # STORE NULL TRANSLATION POLICIES
|
||||
TS NEXTV
|
||||
CS DAPBOOLS # BURNING OR DRIFTING?
|
||||
MASK DRIFTBIT
|
||||
EXTEND
|
||||
BZF TSENSE
|
||||
CA FLGWRD10 # DPS (INCLUDING DOCKED) OR APS?
|
||||
MASK APSFLBIT
|
||||
CCS A
|
||||
CAF TWO # FAVOR +X JETS DURING AN APS BURN.
|
||||
TSENSE TS SENSETYP
|
||||
TCF QRCONTRL
|
||||
|
||||
+X0RULGE CAF ONE
|
||||
-XTRANS AD FOUR
|
||||
TS ROTINDEX
|
||||
AD NEG3
|
||||
TS SENSETYP # FAVOR APPROPRIATE JETS DURING TRANS.
|
||||
CA DAPBOOLS
|
||||
MASK ACC4OR2X
|
||||
CCS A
|
||||
TCF TRANS4
|
||||
|
||||
CA DAPBOOLS
|
||||
MASK AORBTRAN
|
||||
CCS A
|
||||
CA ONE # THREE FOR B
|
||||
AD TWO # TWO FOR A SYSTEM 2 JET X TRANS
|
||||
TSNUMBRT TS NUMBERT
|
||||
|
||||
TC SELCTSUB
|
||||
|
||||
CCS POLYTEMP
|
||||
TCF +3
|
||||
TC ALARM
|
||||
OCT 02002
|
||||
CA 00314OCT
|
||||
MASK POLYTEMP
|
||||
TSNEXTS TS NEXTU
|
||||
# Page 1444
|
||||
CS 00314OCT
|
||||
MASK POLYTEMP
|
||||
TS NEXTV
|
||||
|
||||
# Q,R-AXES RCS CONTROL MODE SELECTION
|
||||
# SWITCHES INDICATION WHEN SET
|
||||
# BIT13/CHAN31 AUTO, GO TO ATTSTEER
|
||||
# PULSES MINIMUM IMPULSE MODE
|
||||
# (OTHERWISE) RATE COMMAND/ATTITUDE HOLD MODE
|
||||
|
||||
QRCONTRL CA BIT13 # CHECK MODE SELECT SWITCH.
|
||||
EXTEND
|
||||
RAND CHAN31 # BITS INVERTED
|
||||
CCS A
|
||||
TCF ATTSTEER
|
||||
CHKBIT10 CAF PULSES # PULSES = 1 FOR MIN IMP USE OF RHC
|
||||
MASK DAPBOOLS
|
||||
EXTEND
|
||||
BZF CHEKSTIK # IN ATT-HOLD/RATE-COMMAND IF BIT10=0
|
||||
|
||||
# MINIMUM IMPULSE MODE
|
||||
|
||||
INHINT
|
||||
TC IBNKCALL
|
||||
CADR ZATTEROR
|
||||
CA ZERO
|
||||
TS QERROR
|
||||
TS RERROR # FOR DISPLAYS
|
||||
RELINT
|
||||
|
||||
EXTEND
|
||||
READ CHAN31
|
||||
TS TEMP31 # IS EQUAL TO DAPTEMP1
|
||||
CCS OLDQRMIN
|
||||
TCF CHECKIN
|
||||
|
||||
FIREQR CA TEMP31
|
||||
MASK BIT1
|
||||
EXTEND
|
||||
BZF +QMIN
|
||||
|
||||
CA TEMP31
|
||||
MASK BIT2
|
||||
EXTEND
|
||||
BZF -QMIN
|
||||
|
||||
CA TEMP31
|
||||
MASK BIT5
|
||||
# Page 1445
|
||||
EXTEND
|
||||
BZF +RMIN
|
||||
|
||||
CA TEMP31
|
||||
MASK BIT6
|
||||
EXTEND
|
||||
BZF -RMIN
|
||||
|
||||
TCF XTRANS
|
||||
|
||||
CHECKIN CS TEMP31
|
||||
MASK OCT63
|
||||
TS OLDQRMIN
|
||||
TCF XTRANS
|
||||
|
||||
+QMIN CA 14MS
|
||||
TS TJU
|
||||
CS 14MS
|
||||
TCF MINQR
|
||||
-QMIN CS 14MS
|
||||
TS TJU
|
||||
CA 14MS
|
||||
TCF MINQR
|
||||
+RMIN CA 14MS
|
||||
TCF +2
|
||||
-RMIN CS 14MS
|
||||
TS TJU
|
||||
MINQR TS TJV
|
||||
CA MINADR
|
||||
TS RETJADR
|
||||
CA ONE
|
||||
TS OLDQRMIN
|
||||
MINRTN TS AXISCTR
|
||||
CA DAPBOOLS
|
||||
MASK CSMDOCKD
|
||||
EXTEND
|
||||
BZF MIMRET
|
||||
INDEX AXISCTR # IF DOCKED, USE 60MS MINIMUM IMPULSE
|
||||
CCS TJU
|
||||
CA 60MS
|
||||
TCF +2
|
||||
CS 60MS
|
||||
INDEX AXISCTR
|
||||
TS TJU
|
||||
MIMRET CA DAPBOOLS
|
||||
MASK AORBTRAN
|
||||
CCS A
|
||||
CA ONE
|
||||
AD TWO
|
||||
TS NUMBERT
|
||||
# Page 1446
|
||||
TCF AFTERTJ
|
||||
|
||||
60MS DEC 96 # RSB 2009 -- was 96.0.
|
||||
MINADR GENADR MINRTN
|
||||
OCT63 OCT 63
|
||||
14MS = +TJMINT6
|
||||
|
||||
TRANS4 CA FOUR
|
||||
TCF TSNUMBRT
|
||||
|
||||
# RATE COMMAND MODE:
|
||||
#
|
||||
# DESCRIPTION (SAME AS P-AXIS)
|
||||
|
||||
CHEKSTIK TS INGTS # NOT IN GTS WHEN IN ATT HOLD
|
||||
CS ONE # 1/ACCS WILL DO THE NULLING DRIVES
|
||||
TS COTROLER # COME BACK TO RCS NEXT TIME
|
||||
CA BIT15
|
||||
MASK CH31TEMP
|
||||
EXTEND
|
||||
BZF RHCACTIV # BRANCH IF OUT OF DETENT.
|
||||
CA OURRCBIT # ***********
|
||||
MASK DAPBOOLS # *IN DETENT* CHECK FOR MANUAL CONTROL
|
||||
EXTEND # *********** LAST TIME.
|
||||
BZF STILLRCS
|
||||
CS BIT9
|
||||
MASK RCSFLAGS
|
||||
TS RCSFLAGS # BIT 9 IS 0.
|
||||
TCF DAMPING
|
||||
40CYCL OCT 50
|
||||
1/10S OCT 1
|
||||
LINRAT DEC 46
|
||||
|
||||
# ===========================================================
|
||||
|
||||
DAMPING CA ZERO
|
||||
TS SAVEHAND
|
||||
TS SAVEHAND +1
|
||||
RHCACTIV CCS SAVEHAND # ******************
|
||||
TCF +3 # Q,R MANUAL CONTROL WC = A*(B+|D|)*D
|
||||
TCF +2 # ******************
|
||||
TCF +1
|
||||
DOUBLE # WHERE
|
||||
DOUBLE #
|
||||
AD LINRAT # WC = COMMANDED ROTATIONAL RATE
|
||||
EXTEND # A = QUADRATIC SENSITIVITY FACTOR
|
||||
MP SAVEHAND # B = LINEAR/QUADRATIC SENSITIVITY
|
||||
CA L # |D| = ABS. VALUE OF DEFLECTION
|
||||
EXTEND # D = HAND CONTROLLER DEFLECTION
|
||||
MP STIKSENS
|
||||
XCH QLAST # COMMAND Q RATE, SCALED 45 DEG/SEC
|
||||
COM
|
||||
# Page 1447
|
||||
AD QLAST
|
||||
TS DAPTEMP3
|
||||
CCS SAVEHAND +1
|
||||
TCF +3
|
||||
TCF +2
|
||||
TCF +1
|
||||
DOUBLE
|
||||
DOUBLE
|
||||
AD LINRAT
|
||||
EXTEND
|
||||
MP SAVEHAND +1
|
||||
CA L
|
||||
EXTEND
|
||||
MP STIKSENS
|
||||
XCH RLAST
|
||||
COM
|
||||
AD RLAST
|
||||
TS DAPTEMP4
|
||||
CS QLAST # INTERVAL.
|
||||
AD OMEGAQ
|
||||
TS QRATEDIF
|
||||
CS RLAST
|
||||
AD OMEGAR
|
||||
TS RRATEDIF
|
||||
ENTERQR DXCH QRATEDIF # TRANSFORM RATES FROM Q,R TO U,V AXES
|
||||
TC ROT-TOUV
|
||||
DXCH URATEDIF
|
||||
CCS DAPTEMP3 # CHECK IF Q COMMAND CHANGE EXCEEDS
|
||||
TC +3 # BREAKOUT LEVEL. IF NOT, CHECK R.
|
||||
TC +2
|
||||
TC +1
|
||||
AD -RATEDB
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TCF ENTERUV -2 # BREAKOUT LEVEL EXCEEDED. DIRECT RATE.
|
||||
CCS DAPTEMP4 # R COMMAND BREAKOUT CHECK.
|
||||
TC +3
|
||||
TC +2
|
||||
TC +1
|
||||
AD -RATEDB
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TCF ENTERUV -2 # BREAKOUT LEVEL EXCEEDED. DIRECT RATE.
|
||||
CA RCSFLAGS # BREAKOUT LEVEL NOT EXCEEDED. CHECK FOR
|
||||
MASK QRBIT # DIRECT RATE CONTROL LAST TIME.
|
||||
EXTEND
|
||||
BZF +2
|
||||
TCF ENTERUV # CONTINUE DIRECT RATE CONTROL.
|
||||
TCF STILLRCS # PSEUDO-AUTO CONTROL.
|
||||
CA 40CYCL
|
||||
# Page 1448
|
||||
TS TCQR
|
||||
ENTERUV INHINT # DIRECT RATE CONTROL
|
||||
TC IBNKCALL
|
||||
FCADR ZATTEROR
|
||||
RELINT
|
||||
CA ZERO
|
||||
TS DYERROR
|
||||
TS DYERROR +1
|
||||
TS DZERROR
|
||||
TS DZERROR +1
|
||||
CCS URATEDIF
|
||||
TCF +3
|
||||
TCF +2
|
||||
TCF +1
|
||||
AD TARGETDB # IF TARGET DB IS EXCEEDED, CONTINUE
|
||||
EXTEND # DIRECT RATE CONTROL.
|
||||
BZMF VDB
|
||||
CCS VRATEDIF
|
||||
TCF +3
|
||||
TCF +2
|
||||
TCF +1
|
||||
AD TARGETDB
|
||||
EXTEND
|
||||
BZMF +2
|
||||
TCF QRTIME
|
||||
CA ZERO
|
||||
TS VRATEDIF
|
||||
TCF QRTIME
|
||||
VDB CCS VRATEDIF
|
||||
TC +3
|
||||
TC +2
|
||||
TC +1
|
||||
AD TARGETDB # IF TARGET DB IS EXCEEDED, CONTINUE
|
||||
EXTEND # DIRECT RATE CONTROL. IF NOT, FIRE AND
|
||||
BZMF TOPSEUDO # SWITCH TO PSEUDO-AUTO CONTROL ON NEXT
|
||||
CA ZERO # PASS.
|
||||
TS URATEDIF
|
||||
QRTIME CA TCQR # DIRECT RATE TIME CHECK.
|
||||
EXTEND
|
||||
BZMF +5 # BRANCH IF TIME EXCEEDS 4 SEC.
|
||||
CS RCSFLAGS
|
||||
MASK QRBIT
|
||||
ADS RCSFLAGS # BIT 11 IS 1.
|
||||
TC +4
|
||||
TOPSEUDO CS QRBIT
|
||||
MASK RCSFLAGS
|
||||
TS RCSFLAGS # BIT 11 IS 0.
|
||||
CA HANDADR
|
||||
TS RETJADR
|
||||
CA ONE
|
||||
|
||||
# Page 1449
|
||||
BACKHAND TS AXISCTR
|
||||
|
||||
CA FOUR
|
||||
TS NUMBERT
|
||||
|
||||
INDEX AXISCTR
|
||||
INDEX SKIPU
|
||||
TCF +1
|
||||
CA FOUR
|
||||
INDEX AXISCTR
|
||||
TS SKIPU
|
||||
TCF LOOPER
|
||||
|
||||
INDEX AXISCTR
|
||||
CCS URATEDIF # INDEX AXIS QUANTITY
|
||||
CA ZERO # 0 -U 1/JETACC-AOSU
|
||||
TCF +2 # 1 +U 1/JETACC+AOSU
|
||||
CA ONE # 16 -V 1/JETACC-AOSV
|
||||
INDEX AXISCTR # 17 +V 1/JETACC+AOSV
|
||||
AD AXISDIFF # JETACC = 2 JET ACCELERATION (1 FOR FAIL)
|
||||
|
||||
INDEX A
|
||||
CS 1/ANET2 +1
|
||||
EXTEND
|
||||
INDEX AXISCTR # UPRATEDIF IS SCALED AT PI/4 RAD/SEC
|
||||
MP URATEDIF # JET TIME IN A, SCALED 32 SEC
|
||||
TS Q
|
||||
DAS A
|
||||
AD Q
|
||||
TS A # OVERFLOW SKIP
|
||||
TCF +2
|
||||
CA Q # RIGHT SIGN AND BIGGER THAN 150MS
|
||||
SETTIME INDEX AXISCTR
|
||||
TS TJU # SCALED AT 10.67 WHICH IS CLOSE TO 10.24
|
||||
TCF AFTERTJ
|
||||
|
||||
ZEROTJ CA ZERO
|
||||
TCF SETTIME
|
||||
|
||||
HANDADR GENADR BACKHAND
|
||||
|
||||
# GTS WILL BE TRIED IF
|
||||
# 1. USEQRJTS = 0,
|
||||
# 2. ALLOWGTS POS,
|
||||
# 3. JETS ARE OFF (Q,R-AXES)
|
||||
|
||||
TRYGTS CAF USEQRJTS # IS JET USE MANDATORY. (AS LONG AS
|
||||
MASK DAPBOOLS # USEQRJTS BIT IS NOT BIT 15, CCS IS SAFE.)
|
||||
CCS A
|
||||
TCF RCS
|
||||
CCS ALLOWGTS # NO. DOES AOSTASK OK CONTROL FOR GTS?
|
||||
# Page 1450
|
||||
TCF +2
|
||||
TCF RCS
|
||||
EXTEND
|
||||
READ CHAN5
|
||||
CCS A
|
||||
TCF CHKINGTS
|
||||
GOTOGTS EXTEND
|
||||
DCA GTSCADR
|
||||
DTCB
|
||||
|
||||
CHKINGTS CCS INGTS # WAS THE TRIM GIMBAL CONTROLLING
|
||||
TCF +2 # YES. SET UP A DAMPED NULLING DRIVE.
|
||||
TCF RCS # NO. NULLING WAS SET UP BEFORE. DO RCS.
|
||||
INHINT
|
||||
TC IBNKCALL
|
||||
CADR TIMEGMBL
|
||||
RELINT
|
||||
CAF ZERO
|
||||
TS INGTS
|
||||
TCF RCS
|
||||
|
||||
EBANK= CDUXD
|
||||
GTSCADR 2CADR GTS
|
||||
|
||||
# Page 1451
|
||||
# SUBROUTINE TO COMPUTE Q,R-AXES ATTITUDE ERRORS FOR USE IN THE RCS AND GTS CONTROL LAWS AND THE DISPLAYS.
|
||||
|
||||
QERRCALC CAE CDUY # Q-ERROR CALCULATION
|
||||
EXTEND
|
||||
MSU CDUYD # CDU ANGLE -- ANGLE DESIRED (Y-AXIS)
|
||||
TS DAPTEMP1 # SAVE FOR RERRCALC
|
||||
EXTEND
|
||||
MP M21 # (CDUY-CDUYD)*M21 SCALED AT PI RADIANS
|
||||
TS E
|
||||
CAE CDUZ # SECOND TERM CALCULATION:
|
||||
EXTEND
|
||||
MSU CDUZD # CDU ANGLE -ANGLE DESIRED (Z-AXIS)
|
||||
TS DAPTEMP2 # SAVE FOR RERRCALC
|
||||
EXTEND
|
||||
MP M22 # (CDUZ-CDUZD)*M22 SCALED AT PI RADIANS
|
||||
AD DELQEROR # KALCMANU INERFACE ERROR
|
||||
AD E
|
||||
XCH QERROR # SAVE Q-ERROR FOR EIGHT-BALL DISPLAY.
|
||||
|
||||
RERRCALC CAE DAPTEMP1 # R-ERROR CALCULATION:
|
||||
EXTEND # CDU ANGLE -ANGLE DESIRED (Y-AXIS)
|
||||
MP M31 # (CDUY-CDUYD)*M31 SCALED AT PI RADIANS
|
||||
TS E
|
||||
CAE DAPTEMP2 # SECOND TERM CALCULATION:
|
||||
EXTEND # CDU ANGLE -ANGLE DESIRED (Z-AXIS)
|
||||
MP M32 # (CDUZ-CDUZD)*M32 SCALED AT PI RADIANS
|
||||
AD DELREROR # KALCMANU INERFACE ERROR
|
||||
AD E
|
||||
XCH RERROR # SAVE R-ERROR FOR EIGHT-BALL DISPLAY.
|
||||
TC Q
|
||||
|
||||
# Page 1452
|
||||
# "ATTSTEER" IS THE ENTRY POINT FOR Q,R-AXES (U,V-AXES) ATTITUDE CONTROL USING THE REACTION CONTROL SYSTEM
|
||||
|
||||
ATTSTEER EQUALS STILLRCS # "STILLRCS" IS THE RCS EXIT FROM TRYGTS.
|
||||
|
||||
STILLRCS CA RERROR
|
||||
LXCH A
|
||||
CA QERROR
|
||||
TC ROT-TOUV
|
||||
DXCH UERROR
|
||||
|
||||
# PREPARES CALL TO TJETLAW (OR SPSRCS(DOCKED))
|
||||
# PREFORMS SKIP LOGIC ON U OR Y AXIS IF NEEDED.
|
||||
|
||||
TJLAW CA TJLAWADR
|
||||
TS RETJADR
|
||||
CA ONE
|
||||
TS AXISCTR
|
||||
INDEX AXISCTR
|
||||
INDEX SKIPU
|
||||
TCF +1
|
||||
CA FOUR
|
||||
INDEX AXISCTR
|
||||
TS SKIPU
|
||||
TCF LOOPER
|
||||
INDEX AXISCTR
|
||||
CA UERROR
|
||||
TS E
|
||||
INDEX AXISCTR
|
||||
CA OMEGAU
|
||||
TS EDOT
|
||||
CA DAPBOOLS
|
||||
MASK CSMDOCKD
|
||||
CCS A
|
||||
TCF +3
|
||||
TC TJETLAW
|
||||
TCF AFTERTJ
|
||||
+3 CS DAPBOOLS # DOCKED. IF GIMBAL USABLE DO GTS CONTROL
|
||||
MASK USEQRJTS # ON THE NEXT PASS.
|
||||
CCS A # USEQRJTS BIT MUST NOT BE BIT 15.
|
||||
TS COTROLER # GIMBAL USABLE. STORE POSITIVE VALUE.
|
||||
INHINT
|
||||
TC IBNKCALL
|
||||
CADR SPSRCS # DETERMINE RCS CONTROL
|
||||
RELINT
|
||||
CAF FOUR # ALWAYS CALL FOR 2-JET CONTROL ABOUT U,V.
|
||||
TS NUMBERT # FALL THROUGH TO JET SLECTION, ETC.
|
||||
|
||||
# Q,R-JET-SELECTION-LOGIC
|
||||
#
|
||||
# INPUT: AXISCTR 0,1 FOR U,V
|
||||
# SNUFFBIT ZERO TJETU,V AND TRANS. ONLY IF SET IN A DPS BURN
|
||||
# Page 1453
|
||||
# TJU,TJV JET TIME SCALED 10.24 SEC.
|
||||
# NUMBERT INDICATES NUMBER OF JETS AND TYPE OF POLICY
|
||||
# RETJADR WHERE TO RETURN TO
|
||||
#
|
||||
# OUTPUT: NO.U(V)JETS RATE DERIVATION FEEDBACK
|
||||
# CHANNEL 5
|
||||
# SKIPU,SKIPV FOR LESS THAN 150MS FIRING
|
||||
#
|
||||
# NOTES: IN CASE OF FAILURE IN DESIRED ROTATION POLICY, "ALL" UNFAILED
|
||||
# JETS OF THE DESIRED POLICY ARE SELECTED. SINCE THERE ARE ONLY
|
||||
# TWO JETS, THIS MEANS THE OTHER ONE OR NONE. THE ALARM IS SENT
|
||||
# IF NONE CAN BE FOUND.
|
||||
#
|
||||
# TIMES LESS THAN 14 MSEC ARE TAKEN TO CALL FOR A SINGLE-JET
|
||||
# MINIMUM IMPULSE, WITH THE JET CHOSEN SEMI-RANDOMLY.
|
||||
|
||||
AFTERTJ CA FLAGWRD5 # IF SNUFFBIT SET DURING A DPS BURN GO TO
|
||||
MASK SNUFFBIT # XTRANS; THAT IS, INHIBIT CONTROL.
|
||||
EXTEND
|
||||
BZF DOROTAT
|
||||
CS FLGWRD10
|
||||
MASK APSFLBIT
|
||||
EXTEND
|
||||
BZF DOROTAT
|
||||
CA DAPBOOLS
|
||||
MASK DRIFTBIT
|
||||
EXTEND
|
||||
BZF XTRANS
|
||||
|
||||
DOROTAT CAF TWO
|
||||
TS L
|
||||
INDEX AXISCTR
|
||||
CCS TJU
|
||||
TCF +5
|
||||
TCF NOROTAT
|
||||
TCF +2
|
||||
TCF NOROTAT
|
||||
ZL
|
||||
AD ONE
|
||||
TS ABSTJ
|
||||
|
||||
CA AXISCTR
|
||||
AD L
|
||||
TS ROTINDEX # 0 1 2 3 = -U -V +U +V
|
||||
|
||||
CA ABSTJ
|
||||
AD -150MS
|
||||
EXTEND
|
||||
BZMF DOSKIP
|
||||
# Page 1454
|
||||
TC SELCTSUB
|
||||
|
||||
INDEX AXISCTR
|
||||
CA INDEXES
|
||||
TS L
|
||||
|
||||
CA POLYTEMP
|
||||
INHINT
|
||||
INDEX L
|
||||
TC WRITEP
|
||||
|
||||
RELINT
|
||||
TCF FEEDBACK
|
||||
|
||||
NOROTAT INDEX AXISCTR
|
||||
CA INDEXES
|
||||
INHINT
|
||||
INDEX A
|
||||
TC WRITEP -1
|
||||
|
||||
RELINT
|
||||
LOOPER CCS AXISCTR
|
||||
TC RETJADR
|
||||
TCF CLOSEOUT
|
||||
DOSKIP CS ABSTJ
|
||||
AD +TJMINT6 # 14MS
|
||||
EXTEND
|
||||
BZMF NOTMIN
|
||||
|
||||
ADS ABSTJ
|
||||
INDEX AXISCTR
|
||||
CCS TJU
|
||||
CA +TJMINT6
|
||||
TCF +2
|
||||
CS +TJMINT6
|
||||
INDEX AXISCTR
|
||||
TS TJU
|
||||
|
||||
CCS SENSETYP # ENSURE MIN-IMPULSE NOT AGAINST TRANS
|
||||
TCF NOTMIN -1
|
||||
EXTEND
|
||||
READ LOSCALAR
|
||||
MASK ONE
|
||||
TS NUMBERT
|
||||
|
||||
NOTMIN TC SELCTSUB
|
||||
|
||||
INDEX AXISCTR
|
||||
CA INDEXES
|
||||
INHINT
|
||||
# Page 1455
|
||||
TS T6FURTHA +1
|
||||
CA POLYTEMP
|
||||
INDEX T6FURTHA +1
|
||||
TC WRITEP
|
||||
|
||||
CA ABSTJ
|
||||
TS T6FURTHA
|
||||
TC JTLST # IN QR BANK BY NOW
|
||||
|
||||
RELINT
|
||||
|
||||
CA ZERO
|
||||
INDEX AXISCTR
|
||||
TS SKIPU
|
||||
|
||||
FEEDBACK CS THREE
|
||||
AD NUMBERT
|
||||
EXTEND
|
||||
BZMF +3
|
||||
|
||||
CA TWO
|
||||
TCF +2
|
||||
CA ONE
|
||||
INDEX AXISCTR
|
||||
TS NO.UJETS
|
||||
TCF LOOPER
|
||||
|
||||
XTRANS CA ZERO
|
||||
TS TJU
|
||||
TS TJV
|
||||
CA FOUR
|
||||
INHINT
|
||||
XCH SKIPU
|
||||
EXTEND
|
||||
BZF +2
|
||||
TC WRITEU -1
|
||||
CA FOUR
|
||||
XCH SKIPV
|
||||
RELINT
|
||||
|
||||
EXTEND
|
||||
BZF CLOSEOUT
|
||||
INHINT
|
||||
TC WRITEV -1
|
||||
RELINT
|
||||
|
||||
TCF CLOSEOUT
|
||||
INDEXES DEC 4
|
||||
DEC 13
|
||||
+TJMINT6 DEC 22
|
||||
# Page 1456
|
||||
-150MS DEC -240
|
||||
BIT8,9 OCT 00600
|
||||
SCLNORM OCT 266
|
||||
TJLAWADR GENADR TJLAW +3 # RETURN ADDRESS FOR RCS ATTITUDE CONTROL
|
||||
|
||||
# THE JET LIST:
|
||||
# THIS IS A WAITLIST FOR T6RUPTS.
|
||||
#
|
||||
# CALLED BY:
|
||||
# CA TJ # TIME WHEN NEXT JETS WILL BE WRITTEN
|
||||
# TS T6FURTHA
|
||||
# CA INDEX # AXIS TO BE WRITTEN AT TJ (FROM NOW)
|
||||
# TS T6FURTHA +1
|
||||
# TC JTLST
|
||||
#
|
||||
# EXAMPLE -- U-AXIS AUTOPILOT WILL WRITE ITS ROTATION CODE OF
|
||||
# JETS INTO CHANNEL 5. IF IT DESIRES TO TURN OFF THIS POLICY WITHIN
|
||||
# 150MS AND THEN FIRE NEXTU, A CALL TO JTLST IS MADE WITH T6FURTHA
|
||||
# CONTAINING THE TIME TO TURN OFF THE POLICY, T6FURTHA +1 THE INDEX
|
||||
# OF THE U-AXIS(4), AND NEXTU WILL CONTAIN THE "U-TRANS" POLICY OR ZERO.
|
||||
#
|
||||
# THE LIST IS EXACTLY 3 LONG. (THIS LEADS UP TO SKIP LOGIC AND 150MS LIMIT)
|
||||
# THE INPUT IS THE LAST MEMBER OF THE LIST.
|
||||
#
|
||||
# RETURNS BY:
|
||||
# + TC Q
|
||||
#
|
||||
# DEFINITIONS: (OUTPUT)
|
||||
# TIME6 TIME OF NEXT RUPT
|
||||
# T6NEXT DELTA TIME TO NEXT RUPT
|
||||
# T6FURTHA DELTA TIME FROM 2ND TO LAST RUPT
|
||||
# NXT6ADR AXIS INDEX 0 -- P-AXIS
|
||||
# T6NEXT +1 AXIS INDEX 4 -- U-AXIS
|
||||
# T6FURTHA +1 AXIS INDEX 13 -- V-AXIS
|
||||
|
||||
JTLST CS T6FURTHA
|
||||
AD TIME6
|
||||
EXTEND
|
||||
BZMF MIDORLST # TIME6 -- TI IS IN A
|
||||
|
||||
LXCH NXT6ADR
|
||||
DXCH T6NEXT
|
||||
DXCH T6FURTHA
|
||||
TS TIME6
|
||||
LXCH NXT6ADR
|
||||
|
||||
TURNON CA BIT15
|
||||
EXTEND
|
||||
WOR CHAN13
|
||||
TC Q
|
||||
|
||||
# Page 1457
|
||||
MIDORLST AD T6NEXT
|
||||
EXTEND
|
||||
BZMF LASTCHG # TIME6 + T6NEXT - T IS IN A
|
||||
|
||||
LXCH T6NEXT +1
|
||||
DXCH T6FURTHA
|
||||
EXTEND
|
||||
SU TIME6
|
||||
DXCH T6NEXT
|
||||
|
||||
TC Q
|
||||
|
||||
LASTCHG CS A
|
||||
AD NEG0
|
||||
TS T6FURTHA
|
||||
|
||||
TC Q
|
||||
|
||||
# ROT-TOUV IS ENTERED WITH THE Q-COMPONENT OF THE QUANTITY TO BE TRANSFORMED IN A AND THE R-COMPONENT IN L.
|
||||
# ROT-TOUV TRANSFORMS THE QUANTITY INTO THE NON-ORTHOGONAL U-V AXIS SYSTEM. IN THE U-V SYSTEM NO CROSS-COUPLING IS
|
||||
# PRODUCED FROM RCS JET FIRINGS. AT THE COMPLETION OF ROT-TOUV, THE U-COMPONENT OF THE TRANSFORMED QUANTITY IS IN
|
||||
# A AND THE V-COMPONENT IS IN L.
|
||||
|
||||
ROT-TOUV LXCH ROTEMP2 # (R) IS PUT INTO ROTEMP2
|
||||
EXTEND
|
||||
MP COEFFQ
|
||||
XCH ROTEMP2 # (R) GOES TO A AND COEFFQ.(Q) TO ROTEMP2
|
||||
EXTEND
|
||||
MP COEFFR
|
||||
TS L # COEFFR.(R) IS PUT INTO L
|
||||
AD ROTEMP2
|
||||
TS ROTEMP1 # COEFFQ.(Q)+COEFFR.(R) IS PUT IN ROTEMP1
|
||||
TCF +4
|
||||
INDEX A # COEFFQ.(Q) + COEFFR.(R) HAS OVERFLOWED
|
||||
CS LIMITS # AND IS LIMITED TO POSMAX OR NEGMAX
|
||||
TS ROTEMP1
|
||||
CS ROTEMP2
|
||||
AD L # -COEFFQ.(Q) + COEFFR.(R) IS NOW IN A
|
||||
TS 7
|
||||
TCF +3
|
||||
INDEX A # -COEFFQ.(Q) + COEFFR.(R) HAS OVERFLOWED
|
||||
CS LIMITS # AND IS LIMITED TO POSMAX OR NEGMAX
|
||||
LXCH ROTEMP1 # COEFFQ.(Q) + COEFFR.(R) IS PUT INTO L
|
||||
TC Q
|
||||
SELCTSUB INDEX ROTINDEX
|
||||
CA ALLJETS
|
||||
INDEX NUMBERT
|
||||
MASK TYPEPOLY
|
||||
TS POLYTEMP
|
||||
# Page 1458
|
||||
MASK CH5MASK
|
||||
CCS A
|
||||
TCF +2
|
||||
|
||||
TC Q
|
||||
|
||||
CA THREE
|
||||
FAILOOP TS NUMBERT
|
||||
INDEX ROTINDEX
|
||||
CA ALLJETS
|
||||
INDEX NUMBERT
|
||||
MASK TYPEPOLY
|
||||
TS POLYTEMP
|
||||
MASK CH5MASK
|
||||
EXTEND
|
||||
BZF FAILOOP -2
|
||||
CCS NUMBERT
|
||||
TCF FAILOOP
|
||||
INDEX AXISCTR
|
||||
TS TJU
|
||||
TC ALARM
|
||||
OCT 02004
|
||||
TCF NOROTAT
|
||||
ALLJETS OCT 00110 # -U 6 13
|
||||
OCT 00022 # -V 2 9
|
||||
OCT 00204 # +U 5 14
|
||||
OCT 00041 # +V 1 10
|
||||
TYPEPOLY OCT 00125 # -X 1 5 9 13
|
||||
OCT 00252 # +X 2 6 10 14
|
||||
OCT 00146 # A 2 5 10 13
|
||||
OCT 00231 # B 1 6 9 14
|
||||
OCT 00377 # ALL 1 2 5 6 9 10 13 14
|
||||
|
||||
# THE FOLLOWING SETS THE INTERRUPT FLIP-FLOP AS SOON AS POSSIBLE, WHICH PERMITS A RETURN TO THE INTERRUPTED JOB.
|
||||
|
||||
CLOSEOUT CA ADRRUPT
|
||||
TC MAKERUPT
|
||||
|
||||
ADRRUPT ADRES ENDJASK
|
||||
|
||||
ENDJASK DXCH DAPARUPT
|
||||
DXCH ARUPT
|
||||
DXCH DAPBQRPT
|
||||
XCH BRUPT
|
||||
LXCH Q
|
||||
CAF NEGMAX # NEGATIVE DAPZRUPT SIGNALS JASK IS OVER.
|
||||
DXCH DAPZRUPT
|
||||
DXCH ZRUPT
|
||||
TCF NOQRSM
|
||||
# Page 1459
|
||||
BLOCK 3
|
||||
SETLOC FFTAG6
|
||||
BANK
|
||||
|
||||
COUNT* $$/DAP
|
||||
|
||||
MAKERUPT EXTEND
|
||||
EDRUPT MAKERUPT
|
||||
|
156
Luminary099/R63.s
Normal file
156
Luminary099/R63.s
Normal file
@ -0,0 +1,156 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: R63.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: 338-341
|
||||
# Mod history: 2009-05-16 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 338
|
||||
# SUBROUTINE NAME: V89CALL
|
||||
# MOD NO: 0 DATE: 9 JAN 1968
|
||||
# MOD BY: DIGITAL DEVEL GROUP LOG SECTION: R63
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION:
|
||||
#
|
||||
# CALLED BY VERB 89 ENTER DURING P00. PRIO 10 USED. CALCULATES AND
|
||||
# DISPLAYS FINAL FDAI BALL ANGLES TO POINT LM +X OR +Z AXIS AT CSM.
|
||||
#
|
||||
# 1. KEY IN V 89 E ONLY IF IN PROG 00. IF NOT IN P00, OPERATOR ERROR AND
|
||||
# EXIT R63, OTHERWISE CONTINUE.
|
||||
#
|
||||
# 2. IF IN P00, DO IMU STATUS CHECK ROUTINE (R02BOTH). IF IMU ON AND ITS
|
||||
# ORIENTATION KNOWN TO LGC, CONTINUE.
|
||||
#
|
||||
# 3. FLASH DISPLAY V 04 N 06. R2 INDICATES WHICH SPACECRAFT AXIS IS TO
|
||||
# BE POINTED AT CSM. INITIAL CHOICE IS PREFERRED (+Z) AXIS (R2=1).
|
||||
# ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT =1) BY V 22 E 2 E. CONTINUE
|
||||
# AFTER KEYING IN PROCEED.
|
||||
#
|
||||
# 4. BOTH VEHICLE STATE VECTORS UPDATED BY CONIC EQS.
|
||||
#
|
||||
# 5. HALF MAGNITUDE UNIT LOS VECTOR (IN STABLE MEMBER COORDINATES) AND
|
||||
# HALF MAGNITUDE UNIT SPACECRAFT AXIS VECTOR (IN BODY COORDINATES)
|
||||
# PREPARED FOR VECPOINT.
|
||||
#
|
||||
# 6. GIMBAL ANGLES FROM VECPOINT TRANSFORMED INTO FDAI BALL ANGLES BY
|
||||
# BALLANGS. FLASH DISPLAY V 06 N 18 AND AWAIT RESPONSE.
|
||||
#
|
||||
# 7 RECYCLE -- RETURN TO STEP 4.
|
||||
# TERMINATE -- EXIT R63
|
||||
# PROCEED -- RESET 3AXISFLAG AND CALL R60LEM FOR ATTITUDE MANEUVER.
|
||||
#
|
||||
# CALLING SEQUENCE: V 89 E.
|
||||
#
|
||||
# SUBROUTINES CALLED: CHECKP00H, R02BOTH, GOXDSPF, CSMCONIC, LEMCONIC,
|
||||
# VECPOINT, BALLANGS, R60LEM.
|
||||
#
|
||||
# NORMAL EXIT MODES: TC ENDEXT
|
||||
#
|
||||
# ALARMS: 1. OPERATOR ERROR IF NOT IN P00.
|
||||
# 2. PROGRAM ALARM IF IMU IS OFF.
|
||||
# 3. PROGRAM ALARM IF IMU ORIENTATION IS UNKNOWN.
|
||||
#
|
||||
# OUTPUT: NONE
|
||||
#
|
||||
# ERASABLE INITIALIZATION REQUIRED: NONE
|
||||
#
|
||||
# DEBRIS: OPTION1, +1, TDEC1, PCINTVSM, SCAXIS, CPHI, CTHETA, CPSI,
|
||||
# Page 339
|
||||
# 3AXISFLAG.
|
||||
|
||||
EBANK= RONE
|
||||
BANK 32
|
||||
SETLOC BAWLANGS
|
||||
BANK
|
||||
|
||||
COUNT* $$/R63
|
||||
V89CALL TC BANKCALL # IMU STATUS CHECK. RETURNS IF ORIENTATION
|
||||
CADR R02BOTH # KNOWN. ALARMS IF NOT.
|
||||
CAF THREE # ALLOW ASTRONAUT TO SELECT DESIRED
|
||||
TS OPTIONX # TRACKING ATTITUDE AXIS.
|
||||
CAF ONE
|
||||
TS OPTIONX +1
|
||||
CAF VB04N12 # V 04 N 12.
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TC ENDEXT # TERMINATE
|
||||
TC +2 # PROCEED
|
||||
TC -5 # DATA IN. OPTION1+1 = 1 FOR Z AXIS
|
||||
V89RECL TC INTPRET # 2 FOR X AXIS
|
||||
RTB DAD
|
||||
LOADTIME # READ PRESENT TIME
|
||||
DP1MIN
|
||||
STORE TSTART82 # SAVE TIME FOR LEMCONIC CALL
|
||||
STCALL TDEC1 # STORE TIME FOR CSMCONIC CALL
|
||||
CSMCONIC # CSM STATE VECTOR UPDATE
|
||||
VLOAD # CSMCONIC LEFT R VECTOR IN RATT
|
||||
RATT
|
||||
STODL RONE # SAVE FOR LINE OF SIGHT (LOS) COMPUTATION
|
||||
TSTART82
|
||||
STCALL TDEC1 # STORE TIME FOR LEMCONIC CALL
|
||||
LEMCONIC # LEM STATE VECTOR UPDATE
|
||||
VLOAD VSU # CSM POSITION -- LEM POSITION -- LOS
|
||||
RONE # LOS VECTOR LEFT IN MPAC
|
||||
RATT
|
||||
MXV RTB # (REFSMAT X LOS). TRANSFORMS LOS FROM
|
||||
REFSMMAT # REFERENCE COORD TO STAB MEMB COORD.
|
||||
NORMUNIT
|
||||
STORE POINTVSM # STORE LOS FOR VECPOINT CALCULATION
|
||||
EXIT
|
||||
CS OPTIONX +1 # 1 FOR Z AXIS. 2 FOR X AXIS.
|
||||
AD ONE
|
||||
EXTEND
|
||||
BZF ALINEZ
|
||||
ALINEX TC INTPRET # X AXIS ALIGNMENT
|
||||
VLOAD
|
||||
UNITX # READ (.5, 0, 0)
|
||||
# Page 340
|
||||
V89CALL1 STCALL SCAXIS # STORE SELECTED ALIGNMENT AXIS
|
||||
VECPOINT # PUTS DESIRED GIM ANG (OG,IG,MG) IN TMPAC
|
||||
STORE CPHI # STOR GIMBAL ANGLES FOR BALLANGS CALL
|
||||
EXIT
|
||||
TC BANKCALL
|
||||
CADR BALLANGS # PUTS DESIRED BALL ANGLE IN FDAIX,Y,Z
|
||||
CAF VB06N18 # V 06 N 18
|
||||
TC BANKCALL # NOUN 18 REFERS TO FDAIX,Y,Z
|
||||
CADR GOFLASH
|
||||
TC ENDEXT # TERMINATE
|
||||
TC +2 # PROCEED
|
||||
TC V89RECL # RECYCLE
|
||||
TC DOWNFLAG # RESET 3 AXIS FLAG
|
||||
ADRES 3AXISFLG # RESET BIT6 FLAG WORD 5
|
||||
TC BANKCALL # PERFORMS LEM MANEUVER TO ALIGN SELECTED
|
||||
CADR R60LEM # SPACECRAFT AXIS TO CSM.
|
||||
TCF ENDEXT # TERMINATE R63
|
||||
|
||||
ALINEZ TC INTPRET # Z AXIS ALIGNMENT
|
||||
VLOAD GOTO
|
||||
UNITZ # READ (0, 0, .5)
|
||||
V89CALL1
|
||||
|
||||
VB04N12 VN 412
|
||||
VB06N18 VN 0618
|
||||
# Page 341
|
||||
DP1MIN 2DEC 6000
|
||||
|
103
Luminary099/RADAR_LEADIN_ROUTINES.s
Normal file
103
Luminary099/RADAR_LEADIN_ROUTINES.s
Normal file
@ -0,0 +1,103 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RADAR_LEADIN_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: 490-491
|
||||
# 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 490
|
||||
BANK 25
|
||||
SETLOC RRLEADIN
|
||||
BANK
|
||||
|
||||
EBANK= RSTACK
|
||||
|
||||
# RADAR SAMPLING LOOP.
|
||||
|
||||
COUNT* $$/RLEAD
|
||||
RADSAMP CCS RSAMPDT # TIMES NORMAL ONCE PER SECOND SAMLING
|
||||
TCF +2
|
||||
TCF TASKOVER # +0 INSERTED MANUALLY TERMINATES TEST.
|
||||
|
||||
TC WAITLIST
|
||||
EBANK= RSTACK
|
||||
2CADR RADSAMP
|
||||
|
||||
CAF PRIO25
|
||||
TC NOVAC
|
||||
EBANK= RSTACK
|
||||
2CADR DORSAMP
|
||||
|
||||
CAF BIT14 # FOR CYCLIC SAMPLING, RTSTDEX=
|
||||
EXTEND # RTSTLOC/2 + RTSTBASE
|
||||
MP RTSTLOC
|
||||
AD RTSTBASE # 0 FOR RR, 2 FOR LR.
|
||||
TS RTSTDEX
|
||||
TCF TASKOVER
|
||||
|
||||
# DO THE ACTUAL RADAR SAMPLE.
|
||||
|
||||
DORSAMP TC VARADAR # SELECTS VARIABLE RADAR CHANNEL.
|
||||
TC BANKCALL
|
||||
CADR RADSTALL
|
||||
|
||||
INCR RFAILCNT # ADVANCE FAIL COUNTER BUT ACCEPT BAD DATA
|
||||
|
||||
DORSAMP2 INHINT
|
||||
CA FLAGWRD5 # DON'T UPDATE RSTACK IF IN R77.
|
||||
MASK R77FLBIT
|
||||
CCS A
|
||||
TCF +4
|
||||
|
||||
DXCH SAMPLSUM
|
||||
INDEX RTSTLOC
|
||||
DXCH RSTACK
|
||||
|
||||
CS RTSTLOC # CYCLE RTSTLOC.
|
||||
AD RTSTMAX
|
||||
EXTEND
|
||||
|
||||
# Page 491
|
||||
BZF +3
|
||||
CA RTSTLOC
|
||||
AD TWO # STORAGE IS DP
|
||||
TS RTSTLOC
|
||||
TCF ENDOFJOB # CONTINUOUS SAMPLING AND 2N TRIES -- GONE.
|
||||
|
||||
# VARIABLE RADAR DATA CALLER FOR ONE MEASUREMENT ONLY.
|
||||
|
||||
VARADAR CAF ONE # WILL BE SENT TO RADAR ROUTINE IN A BY
|
||||
TS BUF2 # SWCALL
|
||||
INDEX RTSTDEX
|
||||
CAF RDRLOCS
|
||||
TCF SWCALL # NOT TOUCHING Q.
|
||||
|
||||
RDRLOCS CADR RRRANGE # = 0
|
||||
CADR RRRDOT # = 1
|
||||
CADR LRVELX # = 2
|
||||
CADR LRVELY # = 3
|
||||
CADR LRVELZ # = 4
|
||||
CADR LRALT # = 5
|
||||
|
||||
|
173
Luminary099/RCS_FAILURE_MONITOR.s
Normal file
173
Luminary099/RCS_FAILURE_MONITOR.s
Normal file
@ -0,0 +1,173 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RCS_FAILURE_MONITOR.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: 190-192
|
||||
# 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 190
|
||||
# PROGRAM DESCRIPTION:
|
||||
#
|
||||
# AUTHOR: J. S. MILLER
|
||||
#
|
||||
# MODIFIED 6 MARCH 1968 BY P. S. WEISSMAN TO SET UP JOB FOR 1/ACCS WHEN THE MASKS ARE CHANGED.
|
||||
#
|
||||
# THIS ROUTINE IS ATTACHED TO T4RUPT, AND IS ENTERED EVERY 480 MS. ITS FUNCTION IS TO EXAMINE THE LOW 8 BITS
|
||||
# OF CHANNEL 32 TO SEE IF ANY ISOLATION-VALVE CLOSURE BITS HAVE APPEARED OR DISAPPEARED (THE CREW IS WARNED OF JET
|
||||
# FAILURES BY LAMPS LIT BY THE GRUMMAN FAILURE-DETECTION CIRCUITRY; THEY MAY RESPOND BY OPERATING SWITCHES WHICH
|
||||
# ISOLATE PAIRS OF JETS FROM THE PROPELLANT TANKS AND SET BITS IN CHANNEL 32). iN THE EVENT THAT CHANNEL 32 BITS
|
||||
# DIFFER FROM `PVALVEST', THE RECORD OF ACTIONS TAKEN BY THIS ROUTINE, THE APPROPRIATE BITS IN `CH5MASK' &
|
||||
# `CH6MASK', USED BY THE DAP JET-SELECTION LOGIC, ARE UPDATED, AS IS `PVALVEST'. TO SPEED UP & SHORTEN THE
|
||||
# ROUTINE, NO MORE THAN ONE CHANGE IS ACCEPTED PER ENTRY. THE HIGHEST-NUMBERED BIT IN CHANNEL 32 WHICH REQUIRES
|
||||
# ACTION IS THE ONE PROCESSED.
|
||||
#
|
||||
# THE CODING IN THE FAILURE MONITOR HAS BEEN WRITTEN SO AS TO HAVE ALMOST COMPLETE RESTART PROTECTION. FOR
|
||||
# EXAMPLE, NO ASSUMPTION IS MADE WHEN SETTING A `CH5MASK' BIT TO 1 THAT THE PREVIOUS STATE IS 0, ALTHOUGH IT OF
|
||||
# COURSE SHOULD BE. ONE CASE WHICH MAY BE SEEN TO EVADE PROTECTION IS THE OCCURRENCE OF A RESTART AFTER UPDATING
|
||||
# ONE OR BOTH DAP MASK-WORDS BUT BEFORE UPDATING `PVALVEST', COUPLED WITH A CHANGE IN THE VALVE-BIT BACK TO ITS
|
||||
# FORMER STATE. THE CONSEQUENCE OF THIS IS THAT THE NEXT ENTRY WOULD NOT SEE THE CHANGE INCOMPLETELY INCORP-
|
||||
# ORATED BY THE LAST PASS (BECAUSE IT WENT AWAY AT JUST THE RIGHT TIME), BUT THE DAP MASK-WORDS WILL BE INCORRECT.
|
||||
# THIS COMBINATION OF EVENTS SEEMS QUITE REMOTE, BUT NOT IMPOSSIBLE UNLESS THE CREW OPERATES THE SWITCHES AT HALF-
|
||||
# SECOND INTERVALS OR LONGER. IN ANY EVENT, A DISAGREEMENT BETWEEN REALITY AND THE DAP MASKS WILL BE CUREED IF
|
||||
# THE MISINTERPRETED SWITCH IS REVERSED AND THEN RESTORED TO ITS CORRECT POSITION (SLOWLY).
|
||||
#
|
||||
# CALLING SEQUENCE:
|
||||
#
|
||||
# TCF RCSMONIT # (IN INTERRUPT MODE, EVERY 480 MS.)
|
||||
#
|
||||
# EXIT: TCF RCSMONEX (ALL PATHS EXIT VIA SUCH AN INSTRUCTION)
|
||||
|
||||
RCSMONEX EQUALS RESUME
|
||||
|
||||
# ERASABLE INITIALIZATION REQUIRED:
|
||||
#
|
||||
# VIA FRESH START: PVALVEST = +0 (ALL JETS ENABLED)
|
||||
# CH5MASK,CH6MASK = +0 (ALL JETS OK)
|
||||
#
|
||||
# OUTPUT: CH5MASK & CH6MASK UPDATED (1'S WHERE JETS NOT TO BE USED, IN CHANNEL 5 & 6 FORMAT)
|
||||
# PVALTEST UPDATED (1'S WHEN VALVE CLOSURES HAVE BEEN TRANSLATED INTO CH5MASK & CH6MASK; CHAN 32 FORMAT)
|
||||
# JOB TO DO 1/ACCS.
|
||||
#
|
||||
# DEBRIS: A, L, AND Q AND DEBRIS OF NOVAC.
|
||||
#
|
||||
# SUBROUTINE CALLED: NOVAC.
|
||||
|
||||
EBANK= CH5MASK
|
||||
|
||||
BANK 23
|
||||
SETLOC RCSMONT
|
||||
BANK
|
||||
# Page 191
|
||||
COUNT* $$/T4RCS
|
||||
|
||||
RCSMONIT EQUALS RCSMON
|
||||
|
||||
RCSMON CS ZERO
|
||||
EXTEND
|
||||
RXOR CHAN32 # PICK UP + INVERT INVERTED CHANNEL 32.
|
||||
MASK LOW8 # KEEP JET-FAIL BITS ONLY.
|
||||
TS Q
|
||||
|
||||
CS PVALVEST # _ _
|
||||
MASK Q # FORM PC + PC.
|
||||
TS L # (P = PREVIOUS ISOLATION VALVE STATE,
|
||||
CS Q # C = CURRENT VALVE STATE (CH32)).
|
||||
MASK PVALVEST
|
||||
ADS L # RESULT NZ INDICATES ACTION REQUIRED.
|
||||
|
||||
EXTEND
|
||||
BZF RCSMONEX # QUIT IF NO ACTION REQUIRED.
|
||||
|
||||
EXTEND
|
||||
MP BIT7 # MOVE BITS 8-1 OF A TO 14-7 OF L.
|
||||
XCH L # ZERO TO L IN THE PROCESS.
|
||||
|
||||
-3 INCR L
|
||||
DOUBLE # BOUND TO GET OVERFLOW IN THIS LOOP,
|
||||
OVSK # SINCE WE ASSURED INITIAL NZ IN A.
|
||||
TCF -3
|
||||
|
||||
INDEX L
|
||||
CA BIT8 -1 # SAVE THE RELEVANT BIT (8-1).
|
||||
TS Q
|
||||
MASK PVALVEST # LOOK AT PREVIOUS VALVE STATE BIT.
|
||||
CCS A
|
||||
TCF VOPENED # THE VALVE HAS JUST BEEN OPENED.
|
||||
|
||||
CS CH5MASK # THE VALVE HAS JUST BEEN CLOSED.
|
||||
INDEX L
|
||||
MASK 5FAILTAB
|
||||
ADS CH5MASK # SET INHIBIT BIT FOR CHANNEL 5 JET.
|
||||
|
||||
CS CH6MASK
|
||||
INDEX L
|
||||
MASK 6FAILTAB
|
||||
ADS CH6MASK # SET INGIBIT BIT FOR CHANNEL 6 JET
|
||||
|
||||
CA Q
|
||||
ADS PVALVEST # RECORD ACTION TAKEN.
|
||||
|
||||
TCF 1/ACCFIX # SET UP 1/ACCJOB AND EXIT.
|
||||
|
||||
# Page 192
|
||||
VOPENED INDEX L # A VALVE HAS JUST BEEN OPENED.
|
||||
CS 5FAILTAB
|
||||
MASK CH5MASK
|
||||
TS CH5MASK # REMOVE INHIBIT BIT FOR CHANNEL 5 JET.
|
||||
|
||||
INDEX L
|
||||
CS 6FAILTAB
|
||||
MASK CH6MASK
|
||||
TS CH6MASK # REMOVE INHIBIT BIT FOR CHANNEL 6 JET.
|
||||
|
||||
CS Q
|
||||
MASK PVALVEST
|
||||
TS PVALVEST # RECORD ACTION TAKEN.
|
||||
|
||||
1/ACCFIX CAF PRIO27 # SET UP 1/ACCS SO THAT THE SWITCH CURVES
|
||||
TC NOVAC # FOR TJETLAW CAN BE MODIFIED IF CH5MASK
|
||||
EBANK= AOSQ # HAS BEEN ALTERED.
|
||||
2CADR 1/ACCJOB
|
||||
|
||||
TCF RCSMONEX # EXIT.
|
||||
|
||||
5FAILTAB EQUALS -1 # CH 5 JET BIT CORRESPONDING TO CH 32 BIT:
|
||||
OCT 00040 # 8
|
||||
OCT 00020 # 7
|
||||
OCT 00100 # 6
|
||||
OCT 00200 # 5
|
||||
OCT 00010 # 4
|
||||
OCT 00001 # 3
|
||||
OCT 00004 # 2
|
||||
OCT 00002 # 1
|
||||
|
||||
6FAILTAB EQUALS -1 # CH 6 JET BIT CORRESPONDING TO CH 32 BIT:
|
||||
OCT 00010 # 8
|
||||
OCT 00020 # 7
|
||||
OCT 00004 # 6
|
||||
OCT 00200 # 5
|
||||
OCT 00001 # 4
|
||||
OCT 00002 # 3
|
||||
OCT 00040 # 2
|
||||
OCT 00100 # 1
|
||||
|
||||
|
236
Luminary099/RTB_OP_CODES.s
Normal file
236
Luminary099/RTB_OP_CODES.s
Normal file
@ -0,0 +1,236 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: RTB_OP_CODES.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: 1397-1401
|
||||
# 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 1397
|
||||
BANK 22
|
||||
SETLOC RTBCODES
|
||||
BANK
|
||||
|
||||
EBANK= XNB
|
||||
COUNT* $$/RTB
|
||||
|
||||
# LOAD TIME2, TIME1 INTO MPAC:
|
||||
|
||||
LOADTIME EXTEND
|
||||
DCA TIME2
|
||||
TCF SLOAD2
|
||||
|
||||
# CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
|
||||
# DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
|
||||
|
||||
CDULOGIC CCS MPAC
|
||||
CAF ZERO
|
||||
TCF +3
|
||||
NOOP
|
||||
CS HALF
|
||||
|
||||
TS MPAC +1
|
||||
CAF ZERO
|
||||
XCH MPAC
|
||||
EXTEND
|
||||
MP HALF
|
||||
DAS MPAC
|
||||
TCF DANZIG # MODE IS ALREADY AT DOUBLE-PRECISION
|
||||
|
||||
# FORCE TP SIGN AGREEMENT IN MPAC:
|
||||
|
||||
SGNAGREE TC TPAGREE
|
||||
TCF DANZIG
|
||||
|
||||
# CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
|
||||
# SCALED IN HALF-REVOLUTIONS.
|
||||
|
||||
1STO2S TC 1TO2SUB
|
||||
CAF ZERO
|
||||
TS MPAC +1
|
||||
TCF NEWMODE
|
||||
|
||||
# DO 1STO2S ON A VECTOR OF ANGLES:
|
||||
|
||||
V1STO2S TC 1TO2SUB # ANSWER ARRIVES IN A AND MPAC.
|
||||
|
||||
DXCH MPAC +5
|
||||
DXCH MPAC
|
||||
TC 1TO2SUB
|
||||
# Page 1398
|
||||
TS MPAC +2
|
||||
|
||||
DXCH MPAC +3
|
||||
DXCH MPAC
|
||||
TC 1TO2SUB
|
||||
TS MPAC +1
|
||||
|
||||
CA MPAC +5
|
||||
TS MPAC
|
||||
|
||||
TPMODE CAF ONE # MODE IS TP.
|
||||
TCF NEWMODE
|
||||
|
||||
# V1STO2S FOR 2 COMPONENT VECTOR. USED BY RR.
|
||||
|
||||
2V1STO2S TC 1TO2SUB
|
||||
DXCH MPAC +3
|
||||
DXCH MPAC
|
||||
TC 1TO2SUB
|
||||
TS L
|
||||
CA MPAC +3
|
||||
TCF SLOAD2
|
||||
|
||||
# SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S CONVERSION:
|
||||
|
||||
1TO2SUB DXCH MPAC # FINAL MPAC +1 UNSPECIFIED.
|
||||
DDOUBL
|
||||
CCS A
|
||||
AD ONE
|
||||
TCF +2
|
||||
COM # THIS WAS REVERSE OF MSU.
|
||||
|
||||
TS MPAC # AND SKIP ON OVERFLOW.
|
||||
TC Q
|
||||
|
||||
INDEX A # OVERFLOW UNCORRECT AND IN MSU.
|
||||
CAF LIMITS
|
||||
ADS MPAC
|
||||
TC Q
|
||||
|
||||
# THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL.
|
||||
# QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCRMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL.
|
||||
# (+0 UNEQUAL TO -0) QUANTITY. MAY BE CALLED BY BANKCALL/SWCALL.
|
||||
|
||||
CDUINC TS TEM2 # 1S COMPL.QUANT. ARRIVES IN ACC. STORE IT
|
||||
INDEX BUF
|
||||
CCS 0 # CHANGE 2S COMPL. ANGLE(IN BUF)INTO 1S
|
||||
AD ONE
|
||||
TCF +4
|
||||
AD ONE
|
||||
# Page 1399
|
||||
AD ONE # OVEFLOW HERE IF 2S COMPL. IS 180 DEG.
|
||||
COM
|
||||
|
||||
AD TEM2 # SULT MOVES FROM 2ND TO 3D QUAD. (OR BACK)
|
||||
CCS A # BACK TO 2S COMPL.
|
||||
AD ONE
|
||||
TCF +2
|
||||
COM
|
||||
TS TEM2 # STORE 14BIT QUANTITY WITH PRESENT SIGN
|
||||
TCF +4
|
||||
INDEX A # SIGN.
|
||||
CAF LIMITS # FIX IT, BY ADDING IN 37777 OR 40000
|
||||
AD TEM2
|
||||
|
||||
INDEX BUF
|
||||
TS 0 # STORE NEW ANGLE IN 2S COMPLEMENT.
|
||||
TC Q
|
||||
|
||||
# Page 1400
|
||||
# RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL. ECADR OF COMMANDS ARRIVES IN X1.
|
||||
|
||||
PULSEIMU INDEX FIXLOC # ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
|
||||
CA X1
|
||||
TC BANKCALL
|
||||
CADR IMUPULSE
|
||||
TCF DANZIG
|
||||
|
||||
# Page 1401
|
||||
# THE SUBROUTINE SIGNMPAC SETS C(MPAC, MPAC +1) TO SIGN(MPAC).
|
||||
# FOR THIS, ONLY THE CONTENTS OF MPAC ARE EXAMINED. ALSO +0 YIELDS POSMAX AND -0 YIELDS NEGMAX.
|
||||
#
|
||||
# ENTRY MAY BE BY EITHER OF THE FOLLOWING:
|
||||
# 1. LIMIT THE SIZE OF MPAC ON INTERPRETIVE OVERFLOW:
|
||||
# ENTRY: BOVB
|
||||
# SIGNMPAC
|
||||
# 2. GENERATE IN MPAC THE SIGNUM FUNCTION OF MPAC:
|
||||
# ENTRY: RTB
|
||||
# SIGNMPAC
|
||||
# IN EITHER CASE, RETURN IS TO TEH NEXT INTERPRETIVE INSTRUCTION IN THE CALLING SEQUENCE.
|
||||
|
||||
SIGNMPAC EXTEND
|
||||
DCA DPOSMAX
|
||||
DXCH MPAC
|
||||
CCS A
|
||||
DPMODE CAF ZERO # SETS MPAC +2 TO ZERO IN THE PROCESS
|
||||
TCF SLOAD2 +2
|
||||
TCF +1
|
||||
EXTEND
|
||||
DCS DPOSMAX
|
||||
TCF SLOAD2
|
||||
|
||||
# RTB OP CODE NORMUNIT IS LIKE INTERPRETIVE INSTRUCTION UNIT, EXCEPT THAT IT CAN BE DEPENDED ON NOT TO BLOW
|
||||
# UP WHEN THE VECTOR BEING UNITIZED IS VERY SMALL -- IT WILL BLOW UP WHEN ALL COMPONENT ARE ZERO. IF NORMUNIT
|
||||
# IS USED AND THE UPPER ORDER HALVES OF ALL COMPONENTS ARE ZERO, THE MAGNITUDE RETURNED IN 36D WILL BE TOO LARGE
|
||||
# BY A FACTOR OF 2(13) AND THE SQUARED MAGNITUDE RETURNED ATE 34D WILL BE TOO BIG BY A FACTOR OF 2(26).
|
||||
|
||||
NORMUNX1 CAF ONE
|
||||
TCF NORMUNIT +1
|
||||
NORMUNIT CAF ZERO
|
||||
AD FIXLOC
|
||||
TS MPAC +2
|
||||
TC BANKCALL # GET SIGN AGREEMENT IN ALL COMPONENTS
|
||||
CADR VECAGREE
|
||||
CCS MPAC
|
||||
TCF NOSHIFT
|
||||
TCF +2
|
||||
TCF NOSHIFT
|
||||
CCS MPAC +3
|
||||
TCF NOSHIFT
|
||||
TCF +2
|
||||
TCF NOSHIFT
|
||||
CCS MPAC +5
|
||||
TCF NOSHIFT
|
||||
TCF +2
|
||||
TCF NOSHIFT
|
||||
# Page 1402
|
||||
CA MPAC +1 # SHIFT ALL COMPONENTS LEFT 13
|
||||
EXTEND
|
||||
MP BIT14
|
||||
DAS MPAC # DAS GAINS A LITTLE ACCURACY
|
||||
CA MPAC +4
|
||||
EXTEND
|
||||
MP BIT14
|
||||
DAS MPAC +3
|
||||
CA MPAC +6
|
||||
EXTEND
|
||||
MP BIT14
|
||||
DAS MPAC +5
|
||||
CAF THIRTEEN
|
||||
INDEX MPAC +2
|
||||
TS 37D
|
||||
OFFTUNIT TC POSTJUMP
|
||||
CADR UNIT +1 # SKIP THE "TC VECAGREE" DONE AT UNIT
|
||||
|
||||
NOSHIFT CAF ZERO
|
||||
TCF OFFTUNIT -2
|
||||
|
||||
# RTB VECSGNAG ... FORCES SIGN AGREEMENT OF VECTOR IN MPAC.
|
||||
|
||||
VECSGNAG TC BANKCALL
|
||||
CADR VECAGREE
|
||||
TC DANZIG
|
||||
|
||||
# *** END OF SKIPPER .087 ***
|
||||
|
201
Luminary099/S-BAND_ANTENNA_FOR_LM.s
Normal file
201
Luminary099/S-BAND_ANTENNA_FOR_LM.s
Normal file
@ -0,0 +1,201 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: S-BAND_ANTENNA_FOR_LM.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: 486-489
|
||||
# Mod history: 2009-05-17 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2009-06-07 RSB Corrected a misprint.
|
||||
#
|
||||
# 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 486
|
||||
# SUBROUTINE NAME: R05 -- S-BAND ANTENNA FOR LM
|
||||
#
|
||||
# MOD0 BY T. JAMES
|
||||
# MOD1 BY P. SHAKIR
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION
|
||||
#
|
||||
# THE S-BAND ANTENNA ROUTINE, R05, COMPUTES AND DISPLAYS THE PITCH AND
|
||||
# YAW ANTENNA GIMBAL ANGLES REQUIRED TO POINT THE LM STEERABLE ANTENNA
|
||||
# TOWARD THE CENTER OF THE EARTH. THIS ROUTINE IS SELECTED BY THE ASTRO-
|
||||
# NAUT VIA DSKY ENTRY DURING COASTING FLIGHT OR WHEN THE LM IS ON THE MOON
|
||||
# SURFACE. THE EARTH OR MOON REFERENCE COORDINATE SYSTEM IS USED DEPENDING
|
||||
# ON WHETHER THE LM IS ABOUT TO ENTER OR HAS ALREADY ENTERED THE MOON
|
||||
# SPHERE OF INFLUENCE, RESPECTIVELY.
|
||||
#
|
||||
# TO CALL SUBROUTINE, ASTRONAUT KEYS IN V 64 E
|
||||
#
|
||||
# SUBROUTINES CALLED ---
|
||||
# R02BOTH
|
||||
# INTPRET
|
||||
# LOADTIME
|
||||
# LEMCONIC
|
||||
# LUNPOS
|
||||
# CDUTRIG
|
||||
# *SMNB*
|
||||
# BANKCALL
|
||||
# B50OFF
|
||||
# ENDOFJOB
|
||||
# BLANKRET
|
||||
#
|
||||
# RETURNS WITH
|
||||
# PITCH ANGLE IN PITCHANG REV. B0
|
||||
# YAW ANGLE IN YAWANG REV. B0
|
||||
#
|
||||
# ERASABLES USED
|
||||
# PITCHANG
|
||||
# YAWANG
|
||||
# RLM
|
||||
# VAC AREA
|
||||
|
||||
BANK 41
|
||||
SETLOC SBAND
|
||||
BANK
|
||||
|
||||
EBANK= WHOCARES
|
||||
COUNT* $$/R05
|
||||
SBANDANT TC BANKCALL
|
||||
# Page 487
|
||||
CADR R02BOTH # CHECK IF IMU IS ON AND ALIGNED
|
||||
TC INTPRET
|
||||
SETPD RTB
|
||||
0D
|
||||
LOADTIME # PICK UP CURRENT TIME
|
||||
STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
|
||||
LEMCONIC # USING CONIC INTEGRATION
|
||||
SLOAD BHIZ
|
||||
X2 # X2 =0 EARTH SPHERE, X2 =2 MOON SPHERE
|
||||
CONV4
|
||||
VLOAD
|
||||
RATT
|
||||
STODL RLM
|
||||
TAT
|
||||
CONV3 CALL
|
||||
LUNPOS # UNIT POSITION VECTOR FROM EARTH TO MOON
|
||||
VLOAD VXSC
|
||||
VMOON
|
||||
REMDIST # MEAN DISTANCE FROM EARTH TO MOON
|
||||
VSL1 VAD
|
||||
RLM
|
||||
GOTO
|
||||
CONV5
|
||||
CONV4 VLOAD
|
||||
RATT # UE = -UNIT(RATT) EARTH SPHERE
|
||||
CONV5 SETPD UNIT # UE = -UNIT((REM)(UEM) + RL) MOON SPHERE
|
||||
0D # SET PL POINTER TO 0
|
||||
VCOMP CALL
|
||||
CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
|
||||
MXV VSL1 # TRANSFORM REF. COORDINATE SYSTEM TO
|
||||
REFSMMAT # STABLE MEMBER B-1 X B-1 X B+1 = B-1
|
||||
PUSH DLOAD # 8D
|
||||
HI6ZEROS
|
||||
STORE PITCHANG
|
||||
STOVL YAWANG # ZERO OUT ANGLES
|
||||
CALL
|
||||
*SMNB*
|
||||
STODL RLM # PRE-MULTIPLY RLM BY (NBSA) MATRIX(B0)
|
||||
RLM +2
|
||||
PUSH DSU
|
||||
RLM
|
||||
DMP
|
||||
1OVSQRT2
|
||||
STODL RLM +2
|
||||
DAD DMP
|
||||
RLM
|
||||
1OVSQRT2
|
||||
STOVL RLM # R B-1
|
||||
RLM
|
||||
UNIT PDVL
|
||||
# Page 488
|
||||
RLM
|
||||
VPROJ VSL2 # PROJECTION OF R ONTO LM XZ PLANE.
|
||||
HIUNITY
|
||||
BVSU BOV # CLEAR OVERFLOW INDICATOR IF ON
|
||||
RLM
|
||||
COVCNV
|
||||
COVCNV UNIT BOV # EXIT ON OVERFLOW
|
||||
SBANDEX
|
||||
PUSH VXV # URP VECTOR B-1
|
||||
HIUNITZ
|
||||
VSL1 VCOMP # UZ X URP = -(URP X UZ)
|
||||
STORE RLM # X VEC B-1
|
||||
DOT PDVL # SGN(X.UY) UNSCALED
|
||||
HIUNITY
|
||||
RLM
|
||||
ABVAL SIGN
|
||||
ASIN # ASIN((SGN(X.UY))ABV(X)) REV B0
|
||||
STOVL PITCHANG
|
||||
URP
|
||||
DOT BPL
|
||||
HIUNITZ
|
||||
NOADJUST # YES, -90 TO +90
|
||||
DLOAD DSU
|
||||
HIDPHALF
|
||||
PITCHANG
|
||||
STORE PITCHANG
|
||||
NOADJUST VLOAD VXV
|
||||
UR # Z = (UR X URP)
|
||||
URP
|
||||
VSL1
|
||||
STODL RLM # Z VEC B-1
|
||||
PITCHANG
|
||||
SIN VXSC
|
||||
HIUNITZ
|
||||
PDDL COS
|
||||
PITCHANG
|
||||
VXSC VSU
|
||||
HIUNITX # (UX COS ALPHA) - (UZ SIN ALPHA)
|
||||
DOT PDVL # YAW.Z
|
||||
RLM
|
||||
RLM
|
||||
ABVAL SIGN
|
||||
ASIN
|
||||
STORE YAWANG
|
||||
SBANDEX EXIT
|
||||
CA EXTVBACT
|
||||
MASK BIT5 # IS BIT5 STILL ON
|
||||
EXTEND
|
||||
BZF ENDEXT # NO
|
||||
CAF PRIO5
|
||||
# Page 489
|
||||
TC PRIOCHNG
|
||||
CAF V06N51 # DISPLAY ANGLES
|
||||
TC BANKCALL
|
||||
CADR GOMARKFR
|
||||
TC B5OFF # TERMINATE
|
||||
TC B5OFF # PROCEED
|
||||
TC ENDOFJOB # RECYCLE
|
||||
CAF BIT3 # IMMEDIATE RETURN
|
||||
TC BLANKET # BLANK R3
|
||||
CAF PRIO4
|
||||
TC PRIOCHNG
|
||||
TC SBANDANT +2 # YES, CONTINUE DISPLAYING ANGLES.
|
||||
V06N51 VN 0651
|
||||
1OVSQRT2 2DEC .7071067815 # 1/SQRT(2)
|
||||
|
||||
UR EQUALS 0D
|
||||
URP EQUALS 6D
|
||||
SBANK= LOWSUPER
|
||||
|
||||
# END OF LNYAIDE .001 ***
|
||||
|
1715
Luminary099/SERVICER.s
Normal file
1715
Luminary099/SERVICER.s
Normal file
File diff suppressed because it is too large
Load Diff
196
Luminary099/SPS_BACK-UP_RCS_CONTROL.s
Normal file
196
Luminary099/SPS_BACK-UP_RCS_CONTROL.s
Normal file
@ -0,0 +1,196 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: SPS_BACK-UP_RCS_CONTROL.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: 1507-1510
|
||||
# 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 1507
|
||||
# PROGRAM NAME: SPSRCS
|
||||
# AUTHOR: EDGAR M. OSHIKA (AC ELECTRONICS)
|
||||
# MODIFIED: TO RETURN TO ALL AXES VIA Q BY P. S. WEISSMAN, OCT 7, 1968
|
||||
# MODIFIED TO IMPROVE BENDING STABILITY BY G. KALAN, FEB. 14, 1969
|
||||
#
|
||||
# FUNCTIONAL DESCRIPTION:
|
||||
# THE PROGRAM CONTROLS THE FIRING OF ALL RCS JETS IN THE DOCKED CONFIGURATION ACCORDING TO THE FOLLOWING PHASE
|
||||
# PLANE LOGIC.
|
||||
#
|
||||
# 1. JET SENSE TEST (SPSRCS)
|
||||
# IF JETS ARE FIRING NEGATIVELY, SET OLDSENSE NEGATIVE AND CONTINUE
|
||||
# IF JETS ARE FIRING POSITIVELY, SET OLDSENSE POSITIVE AND CONTINUE
|
||||
# IF JETS ARE NOT FIRING, SET OLDSENSE TO ZERO AND GO TO OUTER RATE LIMIT TEST
|
||||
#
|
||||
# 2. RATE DEAD BAND TEST
|
||||
# IF JETS ARE FIRING NEGATIVELY AND RATE IS GREATER THAN TARGET RATE, LEAVE
|
||||
# JETS ON AND GO TO INHIBITION LOGIC. OTHERWISE, CONTINUE.
|
||||
# IF JETS ARE FIRING POSITIVELY AND RATE IS LESS THAN TARGET RATE, LEAVE
|
||||
# JETS ON AND GO TO INHIBITION LOGIC. OTHERWISE, CONTINUE.
|
||||
#
|
||||
# 3. OUTER RATE LIMIT TEST (SPSSTART)
|
||||
# IF MAGNITUDE OF EDOT IS GREATER THAN 1.73 DEG/SEC SET JET FIRING TIME
|
||||
# TO REDUCE RATE AND GO TO INHIBITION LOGIC. OTHERWISE, CONTINUE.
|
||||
#
|
||||
# 4. COAST ZONE TEST
|
||||
# IF STATE (E,EDOT) IS BELOW LINE E + 4 X EDOT > -1.4 DEG AND EDOT IS LESS THAN 1.30 DEG/SEC SET JET TIME
|
||||
# POSITIVE AND CONTINUE. OTHERWISE, SET JET FIRING TIME TO ZERO AND CONTINUE.
|
||||
# IF STATE IS ABOVE LINE E + 4 X EDOT > +1.4 DEG AND EDOT IS GREATER THAN -1.30 DEG/SEC, SET JET TIME NEGATIVE
|
||||
# AND CONTINUE. OTHERWISE, SET JET FIRING TIME TO ZERO AND CONTINUE.
|
||||
#
|
||||
# 5. INHIBITION LOGIC
|
||||
# IF OLDSENSE IS NON-ZERO:
|
||||
# A) RETURN IF JET TIME AS THE SAME SIGN AS OLDSENSE
|
||||
# B) SET INHIBITION COUNTER* AND RETURN IF JET TIME IS ZERO
|
||||
# C) SET INHIBITION COUNTER,* SET JET TIME TO ZERO AND RETURN IF SIGN
|
||||
# OF JET TIME IS OPPOSITE TO THAT OF OLDSENSE
|
||||
# IF OLDSENSE IS ZERO:
|
||||
# A) RETURN IF INHIBITION COUNTER IS NOT POSITIVE
|
||||
# B) SET JET TIME TO ZERO AND RETURN IF INHIBITION COUNTER IS POSITIVE
|
||||
# *NOTE: INHIBITION COUNTERS CAN BE SET TO 4 OR 10 FOR THE P AND UV AXES,
|
||||
# RESPECTIVELY, IN SPSRCS. THEY ARE DECREMENTED BY ONE AT THE BEGINNING OF
|
||||
# Page 1508
|
||||
# EACH DAP PASS.
|
||||
#
|
||||
# THE MINIMUM PULSE WIDTH OF THIS CONTROLLER IS DETERMINED BY THE REPETITION RATE AT WHICH THIS ROUTINE IS CALLED
|
||||
# AND IS NOMINALLY 100 MS FOR ALL AXES IN DRIFTING FLIGHT. DURING POWERED FLIGHT THE MINIMUM IS 100 MS FOR THE
|
||||
# P AXIS AND 200 MS FOR THE CONTROL OF THE U AND V AXES.
|
||||
#
|
||||
# CALLING SEQUENCE:
|
||||
# INHINT
|
||||
# TC IBNKCALL
|
||||
# CADR SPSRCE
|
||||
#
|
||||
# EXIT:
|
||||
# TC Q
|
||||
#
|
||||
# ALARM/ABORT MODE: NONE
|
||||
#
|
||||
# SUBROUTINES CALLED: NONE
|
||||
#
|
||||
# INPUT: E, EDOT
|
||||
# TJP, TJV, TJU TJ MUST NOT BE NEGATIVE ZERO
|
||||
#
|
||||
# OUTPUT: TJP, TJV, TJU
|
||||
|
||||
BANK 21
|
||||
SETLOC DAPS4
|
||||
BANK
|
||||
|
||||
COUNT* $$/DAPBU
|
||||
|
||||
EBANK= TJU
|
||||
RATELIM2 OCT 00632 # 1.125 DEG/SEC
|
||||
POSTHRST CA HALF
|
||||
|
||||
NDX AXISCTR
|
||||
TS TJU
|
||||
CCS OLDSENSE
|
||||
TCF POSCHECK # JETS FIRING POSITIVELY
|
||||
TCF CTRCHECK # JETS OFF. CHECK INHIBITION CTR
|
||||
NEGCHECK INDEX AXISCTR # JETS FIRING NEGATIVELY
|
||||
CS TJU
|
||||
CCS A
|
||||
TC Q # RETURN
|
||||
TCF +2
|
||||
TCF +1 # JETS COMMANDED OFF. SET CTR AND RETURN
|
||||
SETCTR INDEX AXISCTR # JET FIRING REVERSAL COMMANDED. SET CTR,
|
||||
CA UTIME # SET JET TIME TO ZER, AND RETURN
|
||||
# Page 1509
|
||||
INDEX AXISCTR
|
||||
TS UJETCTR
|
||||
ZAPTJ CA ZERO
|
||||
INDEX AXISCTR
|
||||
TS TJU
|
||||
TC Q
|
||||
POSCHECK INDEX AXISCTR
|
||||
CA TJU
|
||||
TCF NEGCHECK +2
|
||||
CTRCHECK INDEX AXISCTR # CHECK JET INHIBITION COUNTER
|
||||
CCS UJETCTR
|
||||
TCF +2
|
||||
TC Q # CTR IS NOT POSITIVE. RETURN
|
||||
TCF ZAPTJ # CTR IS POSITIVE. INHIBIT FIRINGS
|
||||
TC Q # CTR IS NOT POSITIVE. RETURN
|
||||
OCT 00004
|
||||
UTIME OCT 00012
|
||||
OCT 00012
|
||||
OLDSENSE EQUALS DAPTREG1
|
||||
NEGFIRE CS ONE # JETS FIRING NEGATIVELY
|
||||
TS OLDSENSE
|
||||
CA EDOT
|
||||
TCF +4
|
||||
PLUSFIRE CA ONE
|
||||
TS OLDSENSE
|
||||
CS EDOT # RATE DEAD BAND TEST
|
||||
LXCH A
|
||||
CS DAPBOOLS # IF DRIFTBIT = 1, USE ZERO TARGET RATE
|
||||
MASK DRIFTBIT # IF DRIFTBIT = 0, USE 0.10 RATE TARGET
|
||||
CCS A
|
||||
CA RATEDB1
|
||||
AD L
|
||||
EXTEND
|
||||
BZMF SPSSTART
|
||||
TCF POSTHRST +3
|
||||
|
||||
SPSRCS INDEX AXISCTR # JET SENSE TEST
|
||||
CCS TJU
|
||||
TCF PLUSFIRE # JETS FIRING POSITIVELY
|
||||
TCF +2
|
||||
TCF NEGFIRE # JETS FIRING NEGATIVELY
|
||||
TS OLDSENSE # JETS OFF
|
||||
SPSSTART CA EDOT # OUTER RATE LIMIT TEST
|
||||
EXTEND
|
||||
MP RATELIM1
|
||||
CCS A
|
||||
TCF NEGTHRST # OUTER RATE LIMIT EXCEEDED
|
||||
TCF +2
|
||||
TCF POSTHRST # OUTER RATE LIMIT EXCEEDED
|
||||
CA EDOT # COAST ZONE TEST
|
||||
# Page 1510
|
||||
AD E
|
||||
EXTEND
|
||||
MP DKDB # PAD LOADED DEADBAND. FRESHSTART: 1.4 DEG
|
||||
EXTEND
|
||||
BZF TJZERO
|
||||
|
||||
EXTEND
|
||||
BZMF +7
|
||||
CA EDOT
|
||||
AD RATELIM2
|
||||
EXTEND
|
||||
BZMF TJZERO
|
||||
NEGTHRST CS HALF
|
||||
TCF POSTHRST +1
|
||||
+7 CS RATELIM2
|
||||
AD EDOT
|
||||
EXTEND
|
||||
BZMF POSTHRST
|
||||
TJZERO CA ZERO
|
||||
TCF POSTHRST +1
|
||||
|
||||
RATELIM1 = CALLCODE # = 00032, CORRESPONDING TO 1.73 DEG/SEC
|
||||
RATEDB1 = TBUILDFX # = 00045, CORRESPONDS TO 0.101 DEG/SEC
|
||||
|
||||
# *** END OF LMDAP .015 ***
|
||||
|
||||
|
163
Luminary099/T6-RUPT_PROGRAMS.s
Normal file
163
Luminary099/T6-RUPT_PROGRAMS.s
Normal file
@ -0,0 +1,163 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: T6-RUPT_PROGRAMS.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: 1403-1405
|
||||
# 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 1403
|
||||
# PROGRAM NAMES: (1) T6JOBCHK MOD. NO. 5 OCTOBER 2, 1967
|
||||
# (2) DOT6RUPT
|
||||
# MODIFICATION BY: LOWELL G. HULL (A.C.ELECTRONICS)
|
||||
#
|
||||
# THESE PROGRAMS ENABLE THE LM DAP TO CONTROL THE THRUST TIMES OF THE REACTION CONTROL SYSTEM JETS BY USING TIME6.
|
||||
# SINCE THE LM DAP MAINTAINS EXCLUSIVE CONTROL OVER TIME6 AND ITS INTERRUPTS, THE FOLLOWING CONVENTIONS HAVE BEEN
|
||||
# ESTABLISHED AND MUST NOT BE TAMPERED WITH:
|
||||
# 1. NO NUMBER IS EVER PLACED INTO TIME6 EXCEPT BY LM DAP.
|
||||
# 2. NO PROGRAM OTHER THAN LM DAP ENABLES THE TIME6 COUNTER.
|
||||
# 3. TO USE TIME6, THE FOLLOWING SEQUENCE IS ALWAYS EMPLOYED:
|
||||
# A. A POSITIVE (NON-ZERO) NUMBER IS STORED IN TIME6.
|
||||
# B. THE TIME6 CLOCK IS ENABLED.
|
||||
# C. TIME6 IS INTERROGATED AND IS:
|
||||
# I. NEVER FOUND NEGATIVE (NON-ZERO) OR +0.
|
||||
# II. SOMETIMES FOUND POSITIVE (BETWEEN 1 AND 240D) INDICATING THAT IT IS ACTIVE.
|
||||
# III. SOMETIMES FOUND POSMAX INDICATING THAT IT IS INACTIVE AND NOT ENABLED.
|
||||
# IV. SOMETIMES FOUND NEGATIVE ZERO INDICATING THAT:
|
||||
# A. A T6RUPT IS ABOUT TO OCCUR AT THE NEXT DINC, OR
|
||||
# B. A T6RUPT IS WAITING IN THE PRIORITY CHAIN, OR
|
||||
# C. A T6RUPT IS IN PROCESS NOW.
|
||||
# 4. ALL PROGRAMS WHICH OPERATE IN EITHER INTERRUPT MODE OR WITH INTERRUPT INHIBITED MUST CALL T6JOBCHK
|
||||
# EVERY 5 MILLISECONDS TO PROCESS A POSSIBLE WAITING T6RUPT BEFORE IT CAN BE HONORED BY THE HARDWARE.
|
||||
# (5. PROGRAM JTLST, IN Q,R-AXES, HANDLES THE INPUT LIST.)
|
||||
#
|
||||
# T6JOBCHK CALLING SEQUENCE:
|
||||
# L TC T6JOBCHK
|
||||
# L+1 (RETURN)
|
||||
#
|
||||
# DOT6RUPT CALLING SEQUENCE:
|
||||
# DXCH ARUPT # T6RUPT LEAD IN AT LOCATION 4004.
|
||||
# EXTEND
|
||||
# DCA T6ADR
|
||||
# DTCB
|
||||
#
|
||||
# SUBROUTINES CALLED: DOT6RUPT CALLS T6JOBCHK.
|
||||
#
|
||||
# NORMAL EXIT MODES: T6JOBCHK RETURNS TO L +1.
|
||||
# DOT6RUPT TRANSFERS CONTROL TO RESUME.
|
||||
#
|
||||
# ALARM/ABORT MODES: NONE.
|
||||
#
|
||||
# INPUT: TIME6 NXT6ADR OUTPUT: TIME6 NXT6ADR CHANNEL 5
|
||||
# T6NEXT T6NEXT +1 T6NEXT T6NEXT +1 CHANNEL 6
|
||||
# T6FURTHA T6FURTHA +1 T6FURTHA T6FURTHA +1 BIT15/CH13
|
||||
#
|
||||
# DEBRIS: T6JOBCHK CLOBBERS A. DOT6RUPT CLOBBERS NOTHING.
|
||||
|
||||
BLOCK 02
|
||||
# Page 1404
|
||||
BANK 17
|
||||
SETLOC DAPS2
|
||||
BANK
|
||||
EBANK= T6NEXT
|
||||
COUNT* $$/DAPT6
|
||||
|
||||
T6JOBCHK CCS TIME6 # CHECK TIME6 FOR WAITING T6RUPT:
|
||||
TC Q # NONE: CLOCK COUNTING DOWN.
|
||||
TC CCSHOLE
|
||||
TC T6JOBCHK +3
|
||||
|
||||
# CONTROL PASSES TO T6JOB ONLY WHEN C(TIME6) = -0 (I.E., WHEN A T6RUPT MUST BE PROCESSED).
|
||||
|
||||
T6JOB CAF POSMAX # DISABLE CLOCK: NEEDED SINCE RUPT OCCURS
|
||||
EXTEND # 1 DINC AFTER T6 = 77777. FOR 625 MUSECS
|
||||
WAND CHAN13 # MUST NOT HAVE T6 = +0 WITH ENABLE SET
|
||||
|
||||
CA POSMAX
|
||||
ZL
|
||||
DXCH T6FURTHA
|
||||
DXCH T6NEXT
|
||||
LXCH NXT6ADR
|
||||
TS TIME6
|
||||
|
||||
AD PRIO37
|
||||
TS A
|
||||
TCF ENABLET6
|
||||
CA POSMAX
|
||||
TS TIME6
|
||||
TCF GOCH56
|
||||
ENABLET6 CA BIT15
|
||||
EXTEND
|
||||
WOR CHAN13
|
||||
CA T6NEXT
|
||||
AD PRIO37
|
||||
TS A
|
||||
TCF GOCH56
|
||||
CA POSMAX
|
||||
TS T6NEXT
|
||||
GOCH56 INDEX L
|
||||
TCF WRITEP -1
|
||||
|
||||
BLOCK 02
|
||||
SETLOC FFTAG9
|
||||
BANK
|
||||
EBANK= CDUXD
|
||||
COUNT* $$/DAPT6
|
||||
|
||||
CA NEXTP
|
||||
WRITEP EXTEND
|
||||
WRITE CHAN6
|
||||
# Page 1405
|
||||
TC Q
|
||||
|
||||
CA NEXTU
|
||||
WRITEU TS L
|
||||
CS 00314OCT
|
||||
EXTEND
|
||||
RAND CHAN5
|
||||
AD L
|
||||
EXTEND
|
||||
WRITE CHAN5
|
||||
TC Q
|
||||
|
||||
CA NEXTV
|
||||
WRITEV TS L
|
||||
CA 00314OCT
|
||||
TCF -9D
|
||||
00314OCT OCT 00314
|
||||
|
||||
BANK 17
|
||||
SETLOC DAPS2
|
||||
BANK
|
||||
|
||||
EBANK= T6NEXT
|
||||
COUNT* $$/DAPT6
|
||||
|
||||
DOT6RUPT LXCH BANKRUPT # (INTERRUPT LEAD INS CONTINUED)
|
||||
EXTEND
|
||||
QXCH QRUPT
|
||||
|
||||
TC T6JOBCHK # CALL T6JOBCHK.
|
||||
|
||||
TCF RESUME # END TIME6 INTERRUPT PROCESSOR.
|
||||
|
335
Luminary099/THE_LUNAR_LANDING.s
Normal file
335
Luminary099/THE_LUNAR_LANDING.s
Normal file
@ -0,0 +1,335 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: THE_LUNAR_LANDING.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: 785-792
|
||||
# Mod history: 2009-05-20 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 785
|
||||
BANK 32
|
||||
SETLOC F2DPS*32
|
||||
BANK
|
||||
|
||||
EBANK= E2DPS
|
||||
|
||||
# *************************************
|
||||
# P63: THE LUNAR LANDING, BRAKING PHASE
|
||||
# *************************************
|
||||
|
||||
COUNT* $$/P63
|
||||
|
||||
P63LM TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
TC BANKCALL # DO IMU STATUS CHECK ROUTINE R02
|
||||
CADR R02BOTH
|
||||
|
||||
CAF P63ADRES # INITIALIZE WHICH FOR BURNBABY
|
||||
TS WHICH
|
||||
|
||||
CAF DPSTHRSH # INITIALIZE DVMON
|
||||
TS DVTHRUSH
|
||||
CAF FOUR
|
||||
TS DVCNTR
|
||||
|
||||
CS ONE # INITIALIZE WCHPHASE AND FLPASS0
|
||||
TS WCHPHASE
|
||||
|
||||
CA ZERO
|
||||
TS FLPASS0
|
||||
|
||||
CS BIT14
|
||||
EXTEND
|
||||
WAND CHAN12 # REMOVE TRACK-ENABLE DISCRETE.
|
||||
|
||||
FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING
|
||||
CLEAR CLEAR
|
||||
NOTHROTL
|
||||
REDFLAG
|
||||
CLEAR SET
|
||||
LRBYPASS
|
||||
MUNFLAG
|
||||
CLEAR CLEAR
|
||||
P25FLAG # TERMINATE P25 IF IT IS RUNNING.
|
||||
RNDVZFLG # TERMINATE P20 IF IT IS RUNNING.
|
||||
|
||||
# ********************************
|
||||
|
||||
IGNALG SETPD VLOAD # FIRST SET UP INPUTS FOR RP-TO-R:
|
||||
# Page 786
|
||||
0 # AT 0D LANDING SITE IN MOON FIXED FRAME
|
||||
RLS # AT 6D ESTIMATED TIME OF LANDING
|
||||
PDDL PUSH # MPAC NON-ZERO TO INDICATE LUNAR CASE
|
||||
TLAND
|
||||
STCALL TPIP # ALSO SET TPIP FOR FIRST GUIDANCE PASS
|
||||
RP-TO-R
|
||||
VSL4 MXV
|
||||
REFSMMAT
|
||||
STCALL LAND
|
||||
GUIDINIT # GUIDINIT INITIALIZES WM AND /LAND/
|
||||
DLOAD DSU
|
||||
TLAND
|
||||
GUIDDURN
|
||||
STCALL TDEC1 # INTEGRATE STATE FORWARD TO THAT TIME
|
||||
LEMPREC
|
||||
SSP VLOAD
|
||||
NIGNLOOP
|
||||
40D
|
||||
UNITX
|
||||
STOVL CG
|
||||
UNITY
|
||||
STOVL CG +6
|
||||
UNITZ
|
||||
STODL CG +14
|
||||
99999CON
|
||||
STOVL DELTAH # INITIALIZE DELTAH FOR V16N68 DISPLAY
|
||||
ZEROVECS
|
||||
STODL UNFC/2 # INITIALIZE TRIM VELOCITY CORRECTION TERM
|
||||
HI6ZEROS
|
||||
STORE TTF/8
|
||||
|
||||
IGNALOOP DLOAD
|
||||
TAT
|
||||
STOVL PIPTIME1
|
||||
RATT1
|
||||
VSL4 MXV
|
||||
REFSMMAT
|
||||
STCALL R
|
||||
MUNGRAV
|
||||
STCALL GDT/2
|
||||
?GUIDSUB # WHICH DELIVERS N PASSES OF GUIDANCE
|
||||
|
||||
# DDUMCALC IS PROGRAMMED AS FOLLOWS:
|
||||
# 2 ___
|
||||
# (RIGNZ - RGU )/16 + 16(RGU )KIGNY/B8 + (RGU - RIGNX)KIGNX/B4 + (ABVAL(VGU) - VIGN)KIGNV/B4
|
||||
# 2 1 0
|
||||
# DDUM = -------------------------------------------------------------------------------------------
|
||||
# 10
|
||||
# 2 (VGU - 16 VGU KIGNX/B4)
|
||||
# 2 0
|
||||
# Page 787 new page is actually one line earlier but this would put the indices on a seperate line
|
||||
# disconnected from their respective variables
|
||||
# THE NUMERATOR IS SCALED IN METERS AT 2(28). THE DENOMINATOR IS A VELOCITY IN UNITS OF 2(10) M/CS.
|
||||
# THE QUOTIENT IS THUS A TIME IN UNITS OF 2(18) CENTISECONDS. THE FINAL SHIFT RESCALES TO UNITS OF 2(28) CS.
|
||||
# THERE IS NO DAMPING FACTOR. THE CONSTANTS KIGNX/B4, KIGNY/B8 AND KIGNV/B4 ARE ALL NEGATIVE IN SIGN.
|
||||
|
||||
DDUMCALC TS NIGNLOOP
|
||||
TC INTPRET
|
||||
DLOAD DMPR # FORM DENOMINATOR FIRST
|
||||
VGU
|
||||
KIGNX/B4
|
||||
SL4R BDSU
|
||||
VGU +4
|
||||
PDDL DSU
|
||||
RIGNZ
|
||||
RGU +4
|
||||
SR4R PDDL
|
||||
RGU +2
|
||||
DSQ DMPR
|
||||
KIGNY/B8
|
||||
SL4R PDDL
|
||||
RGU
|
||||
DSU DMPR
|
||||
RIGNX
|
||||
KIGNX/B4
|
||||
PDVL ABVAL
|
||||
VGU
|
||||
DSU DMPR
|
||||
VIGN
|
||||
KIGNV/B4
|
||||
DAD DAD
|
||||
DAD DDV
|
||||
SRR
|
||||
10D
|
||||
|
||||
PUSH DAD
|
||||
PIPTIME1
|
||||
STODL TDEC1 # STORE NEW GUESS FOR NEXT INTEGRATION
|
||||
ABS DSU
|
||||
DDUMCRIT
|
||||
BMN CALL
|
||||
DDUMGOOD
|
||||
INTSTALL
|
||||
SET SET
|
||||
INTYPFLG
|
||||
MOONFLAG
|
||||
DLOAD
|
||||
PIPTIME1
|
||||
STOVL TET # HOPEFULLY ?GUIDSUB DID NOT
|
||||
RATT1 # CLOBBER RATT1 AND VATT1
|
||||
# Page 788
|
||||
STOVL RCV
|
||||
VATT1
|
||||
STCALL VCV
|
||||
INTEGRVS
|
||||
GOTO
|
||||
IGNALOOP
|
||||
|
||||
DDUMGOOD SLOAD SR
|
||||
ZOOMTIME
|
||||
14D
|
||||
BDSU
|
||||
TDEC1
|
||||
STOVL TIG # COMPUTE DISTANCE LANDING SITE WILL BE
|
||||
V # OUT OF LM'S ORBITAL PLANE AT IGNITION:
|
||||
VXV UNIT # SIGN IS + IF LANDING SITE IS TO THE
|
||||
R # RIGHT, NORTH; - IF TO THE LEFT, SOUTH.
|
||||
DOT SL1
|
||||
LAND
|
||||
R60INIT STOVL OUTOFPLN # INITIALIZATION FOR CALCMANU
|
||||
UNFC/2
|
||||
STORE R60VSAVE # STORE UNFC/2 TEMPORARILY IN R60SAVE
|
||||
EXIT
|
||||
# *******************************************
|
||||
|
||||
IGNALGRT TC PHASCHNG # PREVENT REPEATING IGNALG
|
||||
OCT 04024
|
||||
|
||||
ASTNCLOK CS ASTNDEX
|
||||
TC BANKCALL
|
||||
CADR STCLOK2
|
||||
TCF ENDOFJOB # RETURN IN NEW JOB AND IN EBANK FIVE
|
||||
|
||||
ASTNRET TC INTPRET
|
||||
SSP RTB # GO PICK UP DISPLAY AT END OF R51:
|
||||
QMAJ # "PROCEED" WILL DO A FINE ALIGNMENT
|
||||
FCADR P63SPOT2 # "ENTER" WILL RETURN TO P63SPOT2
|
||||
R51P63
|
||||
P63SPOT2 VLOAD UNIT # INITIALIZE KALCMANU FOR BURN ATTITUDE
|
||||
R60VSAVE
|
||||
STOVL POINTVSM
|
||||
UNITX
|
||||
STORE SCAXIS
|
||||
EXIT
|
||||
|
||||
CAF EBANK7
|
||||
TS EBANK
|
||||
|
||||
INHINT
|
||||
TC IBNKCALL
|
||||
CADR PFLITEDB
|
||||
# Page 789
|
||||
RELINT
|
||||
|
||||
TC BANKCALL
|
||||
CADR R60LEM
|
||||
|
||||
TC PHASCHNG # PREVENT RECALLING R60
|
||||
OCT 04024
|
||||
|
||||
P63SPOT3 CA BIT6 # IS THE LR ANTENNA IN POSITION 1 YET
|
||||
EXTEND
|
||||
RAND CHAN33
|
||||
EXTEND
|
||||
BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1
|
||||
|
||||
CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
|
||||
TC BANKCALL # SILLY THING AROUND
|
||||
CADR GOPERF1
|
||||
TCF GOTOP00H # TERMINATE
|
||||
TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
|
||||
|
||||
P63SPOT4 TC BANKCALL # ENTER INITIALIZE LANDING RADAR
|
||||
CADR SETPOS1
|
||||
|
||||
TC POSTJUMP # OFF TO SEE THE WIZARD ...
|
||||
CADR BURNBABY
|
||||
|
||||
# ---------------------------------
|
||||
|
||||
# CONSTANTS FOR P63LM AND IGNALG
|
||||
|
||||
P63ADRES GENADR P63TABLE
|
||||
|
||||
ASTNDEX = MD1 # OCT 25: INDEX FOR CLOKTASK
|
||||
|
||||
CODE500 OCT 00500
|
||||
|
||||
99999CON 2DEC 30479.7 B-24
|
||||
|
||||
GUIDDURN 2DEC +66440 # GUIDDURN +6.64400314 E+2
|
||||
DDUMCRIT 2DEC +8 B-28 # CRITERION FOR IGNALG CONVERGENCE
|
||||
|
||||
# Page 790
|
||||
# --------------------------------
|
||||
|
||||
# Page 791
|
||||
# *************************
|
||||
# P68: LANDING CONFIRMATION
|
||||
# *************************
|
||||
|
||||
BANK 31
|
||||
SETLOC F2DPS*31
|
||||
BANK
|
||||
|
||||
COUNT* $$/P6567
|
||||
|
||||
LANDJUNK TC PHASCHNG
|
||||
OCT 04024
|
||||
|
||||
INHINT
|
||||
TC BANKCALL # ZERO ATTITUDE ERROR
|
||||
CADR ZATTEROR
|
||||
|
||||
TC BANKCALL # SET 5 DEGREE DEADBAND
|
||||
CADR SETMAXDB
|
||||
|
||||
TC INTPRET # TO INTERPRETIVE AS TIME IS NOT CRITICAL
|
||||
SET CLEAR
|
||||
SURFFLAG
|
||||
LETABORT
|
||||
SET VLOAD
|
||||
APSFLAG
|
||||
RN
|
||||
STODL ALPHAV
|
||||
PIPTIME
|
||||
SET CALL
|
||||
LUNAFLAG
|
||||
LAT-LONG
|
||||
SETPD VLOAD # COMPUTE RLS AND STORE IT AWAY
|
||||
0
|
||||
RN
|
||||
VSL2 PDDL
|
||||
PIPTIME
|
||||
PUSH CALL
|
||||
R-TO-RP
|
||||
STORE RLS
|
||||
EXIT
|
||||
CAF V06N43* # ASTRONAUT: NOW LOOK WHERE TO ENDED UP
|
||||
TC BANKCALL
|
||||
CADR GOFLASH
|
||||
TCF GOTOP00H # TERMINATE
|
||||
TCF +2 # PROCEED
|
||||
TCF -5 # RECYCLE
|
||||
|
||||
TC INTPRET
|
||||
# Page 792
|
||||
VLOAD # INITIALIZE GSAV AND (USING REFMF)
|
||||
UNITX # YNBSAV, ZNBSAV AND ATTFLAG FOR P57
|
||||
STCALL GSAV
|
||||
REFMF
|
||||
EXIT
|
||||
|
||||
TCF GOTOP00H # ASTRONAUT: PLEASE SELECT P57
|
||||
|
||||
V06N43* VN 0643
|
||||
|
224
Luminary099/THROTTLE_CONTROL_ROUTINES.s
Normal file
224
Luminary099/THROTTLE_CONTROL_ROUTINES.s
Normal file
@ -0,0 +1,224 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: THROTTLE_CONTROL_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: HARTMUTH GUTSCHE <hgutsche@xplornet.com>.
|
||||
# Website: www.ibiblio.org/apollo.
|
||||
# Pages: 793-797
|
||||
# Mod history: 2009-05-20 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 793
|
||||
BANK 31
|
||||
SETLOC FTHROT
|
||||
BANK
|
||||
EBANK= PIF
|
||||
COUNT* $$/THROT
|
||||
|
||||
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
# HERE FC, DESIRED THRUST, AND FP, PRESENT THRUST, UNWEIGHTED, ARE COMPUTED.
|
||||
|
||||
THROTTLE CA ABDELV # COMPUTE PRESENT ACCELERATION IN UNITS OF
|
||||
EXTEND # 2(-4) M/CS/CS, SAVING SERVICER TROUBLE
|
||||
MP /AF/CNST
|
||||
+3 EXTEND
|
||||
QXCH RTNHOLD
|
||||
AFDUMP TC MASSMULT
|
||||
DXCH FP # FP = PRESENT THRUST
|
||||
EXTEND
|
||||
DCA /AFC/
|
||||
TC MASSMULT
|
||||
TS FC # FC = THRUST DESIRED BY GUIDANCE
|
||||
DXCH FCODD # FCODD = WHAT IT IS GOING TO GET
|
||||
|
||||
# IF IT HAS BEEN LESS THAN 3 SECONDS SINCE THE LAST THROTTLING, AUGMENT FP USING THE FWEIGHT CALCULATED THEN.
|
||||
|
||||
CS TTHROT # THIS CODING ASSUMES A FLATOUT WITHIN
|
||||
AD TIME1 # 80 SECONDS BEFORE FIRST THROTTLE CALL
|
||||
MASK POSMAX
|
||||
COM
|
||||
AD 3SECS
|
||||
EXTEND
|
||||
BZMF WHERETO # BRANCH IF (TIME1-TTHROT +1) > 3 SECONDS
|
||||
EXTEND
|
||||
DCA FWEIGHT
|
||||
DAS FP
|
||||
|
||||
# THIS LOGIC DETERMINES THE THROTTLING IN THE REGION 10% - 94%. THE MANUAL THROTTLE, NOMINALLY SET AT
|
||||
# MINIMUM BY ASTRONAUT OR MISSION CONTROL PROGRAMS, PROVIDES THE LOWER BOUND. A STOP IN THE THROTTLE HARDWARE
|
||||
# PROVIDES THE UPPER.
|
||||
|
||||
WHERETO CA EBANK5 # INITIALIZE L*WCR*T AND H*GHCR*T FROM
|
||||
TS EBANK # PAD LOADED ERASABLES IN W-MATRIX
|
||||
#Page 794
|
||||
EBANK= LOWCRIT
|
||||
EXTEND
|
||||
DCA LOWCRIT
|
||||
DXCH L*WCR*T
|
||||
CA EBANK7
|
||||
TS EBANK
|
||||
EBANK= PIF
|
||||
CS ZERO # INITIALIZE PIFPSET
|
||||
TS PIFPSET
|
||||
CS H*GHCR*T
|
||||
AD FCOLD
|
||||
EXTEND
|
||||
BZMF LOWFCOLD # BRANCH IF FCOLD < OR = HIGHCRIT
|
||||
CS L*WCR*T
|
||||
AD FCODD
|
||||
EXTEND
|
||||
BZMF FCOMPSET # BRANCH IF FC < OR = LOWCRIT
|
||||
CA FP # SEE NOTE 1
|
||||
TCF FLATOUT1
|
||||
|
||||
FCOMPSET CS FMAXODD # SEE NOTE 2
|
||||
AD FP
|
||||
TCF FLATOUT2
|
||||
|
||||
LOWFCOLD CS H*GHCR*T
|
||||
AD FCODD
|
||||
EXTEND
|
||||
BZMF DOPIF # BRANCH IF FC < OR = HIGHCRIT
|
||||
|
||||
CA FMAXPOS # NO: THROTTLE-UP
|
||||
FLATOUT1 DXCH FCODD
|
||||
CA FEXTRA
|
||||
FLATOUT2 TS PIFPSET
|
||||
|
||||
# NOTE 1 FC IS SET EQUAL TO FP SO PIF WILL BE ZERO. THIS IS DESIRABLE
|
||||
# AS THERE IS ACTUALLY NO THROTTLE CHANGE.
|
||||
#
|
||||
# NOTE2 HERE, SINCE WE ARE ABOUT TO RETURN TO THE THROTTLEABLE REGION
|
||||
# (BELOW 55%) THE QUANTITY -(FMAXODD-FP) IS COMPUTED AND PUT
|
||||
# INTO PIFPSET TO COMPENSATE FOR THE DIFFERENCE BETWEEN THE
|
||||
# NUMBER OF BITS CORRESPONDING TO FULL THROTTLE (FMAXODD) AND THE
|
||||
# NUMBER CORRESPONDING TO ACTUAL THRUST (FP). THUS THE TOTAL
|
||||
# THROTTLE COMMAND PIF = FC - FP - (FMAXODD - FP) = FC - FMAXODD.
|
||||
|
||||
DOPIF TC FASTCHNG
|
||||
EXTEND
|
||||
DCA FCODD
|
||||
TS FCOLD
|
||||
DXCH PIF
|
||||
EXTEND
|
||||
#Page 795
|
||||
DCS FP
|
||||
DAS PIF # PIF = FC - FP, NEVER EQUALS +0
|
||||
|
||||
DOIT CA PIF
|
||||
AD PIFPSET # ADD IN PIFPSET, WITHOUT CHANGING PIF
|
||||
TS PSEUDO55
|
||||
TS THRUST
|
||||
CAF BIT4
|
||||
EXTEND
|
||||
WOR CHAN14
|
||||
CA TIME1
|
||||
TS TTHROT
|
||||
|
||||
# SINCE /AF/ IS NOT AN INSTANTANEOUS ACELERATION, BUT RATHER AN "AVERAGE" OF THE ACCELERATION LEVELS DURING
|
||||
# THE PRECEEDING PIPA INTERVAL, AND SINCE FP IS COMPUTED DIRECTLY FROM /AF/, FP IN ORDER TO CORRESPOND TO THE
|
||||
# ACTUAL THRUST LEVEL AT THE END OF THE INTERVAL MUST BE WEIGHTED BY
|
||||
#
|
||||
# PIF(PPROCESS + TL) PIF /PIF/
|
||||
# FWEIGHT = ------------------ + -------------
|
||||
# PGUID 2 PGUID FRATE
|
||||
#
|
||||
# WHERE PROCESS IS THE TIME BETWEEN PIPA READING AND THE START OF THROTTLING, PGUID IS THE GUIDANCE PERIOD, AND
|
||||
# FRATE IS THE THROTTLING RATE (32 UNITS PER CENTISECOND). PGUID IS EITHER 1 OR 2 SECONDS. THE "TL" IN THE
|
||||
# FIRST TERM REPRESENTS THE ENGINE'S RESPONSE LAG. HERE FWEIGHT IS COMPUTED FOR USE NEXT PASS.
|
||||
|
||||
CA THISTPIP +1 # INITIALIZE FWEIGHT COMP AS IF FOR P66
|
||||
TS BUF
|
||||
|
||||
CS MODREG # ARE WE IN FACT IN P66?
|
||||
AD DEC66
|
||||
EXTEND
|
||||
BZF FWCOMP # YES
|
||||
|
||||
CA PIPTIME +1 # NO: INITIALIZE FOR TWO SECOND PERIOD
|
||||
TS BUF
|
||||
CAF 4SECS
|
||||
TCF FWCOMP +1
|
||||
|
||||
FWCOMP CAF 2SECS
|
||||
+1 TS Q
|
||||
EXTEND
|
||||
MP BIT6
|
||||
LXCH BUF +1
|
||||
CS BUF # TIME OF LAST PIPA READING.
|
||||
AD TIME1
|
||||
AD THROTLAG # COMPENSATE FOR ENGINE RESPONSE LAG
|
||||
MASK LOW8 # MAKE SURE SMALL AND POSITIVE
|
||||
ZL
|
||||
EXTEND
|
||||
#Page 796
|
||||
DV Q
|
||||
EXTEND
|
||||
MP PIF
|
||||
DOUBLE
|
||||
DXCH FWEIGHT
|
||||
CCS PIF
|
||||
AD ONE
|
||||
TCF +2
|
||||
AD ONE
|
||||
EXTEND
|
||||
MP PIF
|
||||
EXTEND
|
||||
DV BUF +1
|
||||
ZL
|
||||
DAS FWEIGHT
|
||||
|
||||
THDUMP TC RTNHOLD
|
||||
|
||||
# FLATOUT THROTTLES UP THE DESCENT ENGINE, AND IS CALLED AS A BASIC SUBROUTINE.
|
||||
|
||||
FLATOUT CAF BIT13 # 4096 PULSES
|
||||
WHATOUT TS PIFPSET # USE PIFPSET SO FWEIGHT WILL BE ZERO
|
||||
CS ZERO
|
||||
TS FCOLD
|
||||
TS PIF
|
||||
EXTEND
|
||||
QXCH RTNHOLD
|
||||
TCF DOIT
|
||||
|
||||
# MASSMULT SCALES ACCELERATION, ARRIVING IN A AND L IN UNITS OF 2(-4) M/CS/CS, TO FORCE IN PULSE UNITS.
|
||||
|
||||
MASSMULT EXTEND
|
||||
QXCH BUF
|
||||
DXCH MPAC
|
||||
TC DMP
|
||||
ADRES MASS
|
||||
TC DMP # LEAVES PROPERLY SCALED FORCE IN MPAC
|
||||
ADRES SCALEFAC
|
||||
TC TPAGREE
|
||||
CA MPAC
|
||||
EXTEND
|
||||
BZF +3
|
||||
CAF POSMAX
|
||||
TC BUF
|
||||
DXCH MPAC +1
|
||||
TC BUF
|
||||
#Page 797
|
||||
# CONSTANTS --
|
||||
|
||||
FEXTRA = BIT13 # FEXT +5.13309020 E+4
|
||||
|
||||
/AF/CNST DEC .13107
|
||||
|
||||
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
519
Luminary099/TJET_LAW.s
Normal file
519
Luminary099/TJET_LAW.s
Normal file
@ -0,0 +1,519 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TJET_LAW.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: 1460-1469
|
||||
# Mod history: 2009-05-27 RSB Adapted from the corresponding
|
||||
# Luminary131 file, using page
|
||||
# images from Luminary 1A.
|
||||
# 2009-06-06 RSB Eliminated a stray instruction that had crept
|
||||
# in somehow.
|
||||
#
|
||||
# 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 1460
|
||||
# PROGRAM DESCRIPTION
|
||||
# DESIGNED BY: R. D. GOSS AND P. S. WEISSMAN
|
||||
# CODED BY: P. S. WEISSMAN, 28 FEBRURARY 1968
|
||||
#
|
||||
# TJETLAW IS CALLED AS A SUBROUTINE WHEN THE LEM IS NOT DOCKED AND THE AUTOPILOT IS IN THE AUTOMATIC OR
|
||||
# ATTITUDE-HOLD MODE TO CALCULATE THE JET-FIRING-TIME (TJET) REQUIRED FOR THE AXIS INDICATED BY AXISCTR:
|
||||
# -1 INDICATES THE P-AXIS
|
||||
# +0 INDICATES THE U-AXIS
|
||||
# +1 INDICATES THE V-AXIS
|
||||
# THE REGISTERS E AND EDOT CONTAIN THE APPROPRIATE ATTITUDE ERROR AND ERROR RATE AND SENSETYP SHOWS WHETHER
|
||||
# UNBALANCED COUPLES ARE PREFERRED. TJETLAW ALSO USES VARIOUS FUNCTIONS OF ACCELERATION AND DEADBAND WHICH ARE
|
||||
# COMPUTED IN THE 1/ACCONT SECTION OF 1/ACCS AND ARE STORED IN SUCH AN ORDER THAT THEY CAN BE CONVENIENTLY
|
||||
# ACCESSED BY INDEXING.
|
||||
#
|
||||
# THE SIGN OF THE REQUIRED ROTATION IS CARRIED THROUGH TJETLAW AS ROTSENSE AND IS FINALLY APPLIED TO TJET JUST
|
||||
# PREVIOUS TO ITS STORAGE IN THE LOCATION CORRESPONDING TO THE AXIS (TJP, TJU, OR TJV). THE NUMBER OF JETS THAT
|
||||
# TJETLAW ASSUMES WILL BE USED AS INDICATED BY THE SETTING OF NUMBERT FOR THE U- OR V-AXIS. TWO JETS ARE ALWAYS
|
||||
# ASSUMED FOR THE P-AXIS ALTHOUGH FOUR JETS WILL BE FIRED WHEN FIREFCT IS MORE NEGATIVE THAN -4.0 DEGREES
|
||||
# (FIREFCT IS THE DISTANCE TO A SWITCH CURVE IN THE PHASE PLANE) AND A LONG FIRING IS CALLED FOR.
|
||||
#
|
||||
# IN ORDER TO AVOID SCALING DIFFICULTIES, SIMPLE ALGORITHMS TAGGED RUFLAW1, -2 AND -3 ARE RESORTED TO WHEN THE
|
||||
# ERROR AND/OR ERROR RATE ARE LARGE.
|
||||
#
|
||||
# CALLING SEQUENCE:
|
||||
# TC TJETLAW # (MUST BE IN JASK)
|
||||
# OR
|
||||
# INHINT # (MUST BE IN JASK)
|
||||
# TC IBNKCALL
|
||||
# CADR TJETLAW
|
||||
# RELINT
|
||||
#
|
||||
# EXIT: RETURN TO Q.
|
||||
#
|
||||
# INPUT:
|
||||
# FROM THE CALLER: E, EDOT, AXISCTR, SENSETYP, TJP, -U, -V.
|
||||
# FROM 1/ACCONT: 48 ERASABLES BEGINNING AT BLOCKTOP (INCLUDING FLAT, ZONE3LIM AND ACCSWU, -V).
|
||||
#
|
||||
# OUTPUT:
|
||||
# TJP, -U OR -V, NUMBERT (DAPTEMP5), FIREFCT (DAPTEMP3).
|
||||
#
|
||||
# DEBRIS:
|
||||
# A, L, Q, E, EDOT, DAPTEMP1-6, DAPTEMP1-4.
|
||||
#
|
||||
# ALARM: NONE
|
||||
|
||||
BANK 17
|
||||
SETLOC DAPS2
|
||||
BANK
|
||||
EBANK= TJP
|
||||
# Page 1461
|
||||
COUNT* $$/DAPTJ
|
||||
|
||||
TJETLAW EXTEND # SAVE Q FOR RETURN.
|
||||
QXCH HOLDQ
|
||||
|
||||
# SET INDEXERS TO CORRESPOND TO THE AXIS AND TO THE SIGN OF EDOT
|
||||
|
||||
INDEX AXISCTR # AXISDIFF(-1)=NO OF LOCATIONS BET P AND U
|
||||
CAF AXISDIFF # AXISDIFF(0)=0
|
||||
TS ADRSDIF1 # AXISDIFF(+1)=NO OF LOCATIONS BET V AND U
|
||||
|
||||
CAE EDOT # IF EDOT NEGATIVE, PICK UP SET OF VALUES
|
||||
EXTEND # THAT ALLOW USE OF SAME CODING AS FOR
|
||||
BZMF NEGEDOT # POSITIVE EDOT.
|
||||
CAE ADRSDIF1 # SET A SECOND INDEXER WHICH MAY BE
|
||||
TS ADRSDIF2 # MODIFIED BY A DECISION FOR MAX JETS.
|
||||
CAF SENSOR # FOR POSITIVE EDOT, ROTSENSE IS
|
||||
TCF SETSENSE # INITIALIZED POSITIVE.
|
||||
|
||||
NEGEDOT CS E # IN ORDER FOR NEG EDOT CASE TO USE CODING
|
||||
TS E # OF POS EDOT, MUST MODIFY AS FOLLOWS:
|
||||
CS EDOT # 1. COMPLEMENT E AND EDOT.
|
||||
TS EDOT # 2. SET SENSE OF ROTATION TO NEGATIVE
|
||||
CAF BIT1 # (REVERSED LATER IF NECESSARY).
|
||||
ADS ADRSDIF1 # 3. INCREMENT INDEXERS BY ONE SO THAT
|
||||
TS ADRSDIF2 # THE PROPER PARAMETERS ARE ACCESSED.
|
||||
CS SENSOR
|
||||
SETSENSE TS ROTSENSE
|
||||
|
||||
# TEST MAGNITUDE OF E (ATTITUDE ERROR, SINGLE-PRECISION, SCALED AT PI RADIANS):
|
||||
# IF GREATER THAN (OR EQUAL TO) PI/16 RADIANS, GO TO THE SIMPLIFIED TJET ROUTINE.
|
||||
# IF LESS THAN PI/16 RADIANS, RESCALE TO PI/4
|
||||
|
||||
CAE E # PICK UP ATTITUDE ERROR FOR THIS AXIS
|
||||
EXTEND
|
||||
MP BIT5 # SHIFT RIGHT TEN BITS: IF A-REGISTER IS
|
||||
CCS A # ZERO, RESCALE AND TEST EDOT.
|
||||
TCF RUFLAW2
|
||||
TCF SCALEE
|
||||
TCF RUFLAW1
|
||||
SCALEE CAF BIT13 # ERROR IS IN L SCALED AT PI/16. RESCALE
|
||||
EXTEND # IT TO PI/4 AND SAVE IT.
|
||||
MP L
|
||||
TS E
|
||||
|
||||
# TEST MAGNITUDE OF EDOT (ERROR RATE SCALED AT PI/4 RADIANS/SECOND)
|
||||
# IF GREATER THAN (OR EQUAL TO) PI/32 RADIANS/SECOND, GO TO THE SIMPLIFIED TJET ROUTINE.
|
||||
# IF LESS THAN PI/32 RADIANS/SECOND, THEN RESCALE TO PI/32 RADIANS/SECOND.
|
||||
|
||||
CAE EDOT # PICK UP SINGLE-PRECISION ERROR-RATE
|
||||
# Page 1462
|
||||
EXTEND # FOR THIS AXIS=
|
||||
MP BIT4 # SHIFT RIGHT ELEVEN BITS, IF THE A-REG IS
|
||||
EXTEND # ZERO, THEN RESCALE AND USE FINELAW.
|
||||
BZF SCALEDOT
|
||||
TCF RUFLAW3
|
||||
|
||||
# *** FINELAW STARTS HERE ***
|
||||
|
||||
SCALEDOT LXCH EDOT # EDOT IS SCALED AT PI/32 RADIANS/SECOND.
|
||||
|
||||
CAE EDOT # COMPUTE (EDOT)(EDOT)
|
||||
EXTEND
|
||||
SQUARE # PRODUCT SCALED AT PI(2)/2(10) RAD/SEC.
|
||||
EXTEND
|
||||
MP BIT13 # SHIFT RIGHT TWO BITS TO RESCALE TO EDOTSQ
|
||||
TS EDOTSQ # TO PI(2)/2(8) RAD(2)/SEC(2).
|
||||
|
||||
ERRTEST CCS E # DOES BIG ERROR (THREE DEG BEYOND THE
|
||||
AD -3DEG # DEADBAND) REQUIRE MAXIMUM JETS?
|
||||
TCF +2
|
||||
AD -3DEG
|
||||
EXTEND
|
||||
INDEX ADRSDIF1
|
||||
SU FIREDB
|
||||
EXTEND
|
||||
BZMF SENSTEST # IF NOT: ARE UNBALANCED JETS PREFERRED?
|
||||
MAXJETS CAF TWO # IF YES: INCRMENT ADDRESS LOCATOR AND
|
||||
ADS ADRSDIF2 # SET SWITCH FOR JET SELECT LOGIC TO 4.
|
||||
CAF FOUR # (ALWAYS DO THIS FOR P-AXIS)
|
||||
TCF TJCALC
|
||||
SENSTEST CCS SENSETYP # DOES TRANSLATION PREFER MIN JETS.
|
||||
TCF TJCALC # YES. USE MIN-JET PARAMETERS
|
||||
TCF MAXJETS # NO. GET THE MAX-JET PARAMETERS.
|
||||
TJCALC TS NUMBERT # SET TO +0,1,4 FOR (U,V-AXES) JET SELECT.
|
||||
|
||||
# BEGINNING OF TJET CALCULATIONS:
|
||||
|
||||
CS EDOTSQ # SCALED AT PI(2)/2(8).
|
||||
EXTEND
|
||||
INDEX ADRSDIF2
|
||||
MP 1/ANET1 # .5/ACC SCALED AT 2(6)/PI SEC(2)/RADIAN.
|
||||
INDEX ADRSDIF1
|
||||
AD FIREDB # DEADBAND SCALED AT PI/4 RADIAN.
|
||||
EXTEND
|
||||
SU E # ATTITUDE ERROR SCALED AT PI/4 RADIAN.
|
||||
TS FIREFCT # -E-.5(EDOTSQ)/ACC-DB AT PI/4 RADIAN.
|
||||
EXTEND
|
||||
BZMF ZON1,2,3
|
||||
|
||||
ZONE4,5 INDEX ADRSDIF1
|
||||
CAE 1/ACOAST # .5/ACC SCALED AT 2(6)/PI WHERE
|
||||
# Page 1463
|
||||
EXTEND # ACC = MAX(AMIN, AOS-).
|
||||
MP EDOTSQ # SCALED AT PI/2(8).
|
||||
AD E # SCALED AT PI/4
|
||||
INDEX ADRSDIF1
|
||||
AD COASTDB # SCALED AT PI/4 POS. FOR NEG. INTERCEPT.
|
||||
EXTEND # TEST E+.5(EDOTSQ)/ACC+DB AT PI/4 RADIAN.
|
||||
BZMF ZONE5 # IF FUNCTION NEGATIVE, FIND TJET.
|
||||
# IF FUNCTION POSITIVE, IN ZONE 4.
|
||||
|
||||
# ZONE 4 IS THE COAST REGION. HOWEVER, IF THE JETS ARE ON AND DRIVING TOWARD
|
||||
# A. THE AXIS WITHIN + OR - (DB + FLAT) FOR DRIFTING FLIGHT, OR
|
||||
# B. THE USUAL TARGET PARABOLA FOR POWERED FLIGHT
|
||||
# THEN THE THRUSTERS ARE KEPT ON.
|
||||
|
||||
ZONE4 INDEX AXISCTR # IS THE CURRENT VALUE IN TJET NON-ZERO
|
||||
CS TJETU # WITH SENSE OPPOSITE TO EDOT,
|
||||
EXTEND # (I.E., ARE JETS ON AND FIRING TOWARD
|
||||
MP ROTSENSE # THE DESIRABLE STATE).
|
||||
EXTEND
|
||||
BZMF COASTTJ # NO. COAST.
|
||||
|
||||
JETSON CCS FLAT # YES. IS THIS DRIFTING OR POWERED FLIGHT?
|
||||
TCF DRIFT/ON # DRIFTING. GO MAKE FURTHER TEST.
|
||||
|
||||
CS FIREFCT # POWERED (OR ULLAGE). CAN TARGET PARABOLA
|
||||
INDEX ADRSDIF1 # BE REACHED FROM THIS POINT IN THE
|
||||
AD AXISDIST # PHASE PLANE?
|
||||
EXTEND
|
||||
BZMF COASTTJ # NO. SET TJET = 0.
|
||||
TC Z123COMP # YES. CALCULATE TJET AS THOUGH IN ZONE 1
|
||||
CAE FIREFCT # AFTER COMPUTING THE REQUIRED
|
||||
TCF ZONE1 # PARAMETERS.
|
||||
|
||||
DRIFT/ON INDEX ADRSDIF1 # CAN TARGET STRIP OF AXIS BE REACHED FROM
|
||||
CS FIREDB # THIS POINT IN THE PHASE PLANE?
|
||||
DOUBLE
|
||||
AD FIREFCT
|
||||
EXTEND
|
||||
BZMF +3
|
||||
COASTTJ CAF ZERO # NO. SET TJET = 0.
|
||||
TCF RETURNTJ
|
||||
|
||||
TC Z123COMP # YES. CALCULATE TJET AS THOUGH IN ZONE 2
|
||||
TCF ZONE2,3 # OR 3 AFTER COMPUTING REQUIRED VALUES.
|
||||
|
||||
ZONE5 TS L # TEMPORARILY STORE FUNCTION IN L.
|
||||
CCS ROTSENSE # MODIFY ADRSDIF2 FOR ACCESSING 1/ANET2
|
||||
TCF +4 # AND ACCFCTZ5, WHICH MUST BE PICKED UP
|
||||
TC CCSHOLE # FROM THE NEXT LOWER REGISTER IF THE
|
||||
CS TWO # (ACTUAL) ERROR RATE IS NEGATIVE.
|
||||
# Page 1464
|
||||
ADS ADRSDIF2
|
||||
|
||||
+4 CAE L
|
||||
EXTEND
|
||||
INDEX ADRSDIF2 # TTOAXIS AND HH ARE THE PARAMETERS UPON
|
||||
MP ACCFCTZ5 # WHICH THE APPROXIMATIONS TO TJET ARE
|
||||
DDOUBL # ABASED.
|
||||
DDOUBL
|
||||
DXCH HH # DOUBLE PRECISION H SCALED AT 8 SEC(2).
|
||||
INDEX ADRSDIF2
|
||||
CAE 1/ANET2 # SCALED AT 2(7)/PI SEC(2)/RAD.
|
||||
EXTEND
|
||||
MP EDOT # SCALED AT PI/2(5)
|
||||
TS TTOAXIS # SCALED AT 4 SEC.
|
||||
|
||||
# TEST WHETHER TJET GREATER THAN 50 MSEC.
|
||||
|
||||
EXTEND
|
||||
MP -.05AT2 # H - .05 TTOAXIS - .00125 G.T. ZERO
|
||||
AD HH # (SCALED AT 8 SEC(2) ).
|
||||
AD NEG2
|
||||
EXTEND
|
||||
BZMF FORMULA1
|
||||
|
||||
# TEST WHETHER TJET GREATER THAN 150 MSEC.
|
||||
|
||||
CAE TTOAXIS
|
||||
EXTEND
|
||||
MP -.15AT2 # H - .15 TTOAXIS - .01125 G.T. ZERO
|
||||
AD HH # (SCALED AT 8 SEC(2) )
|
||||
AD -.0112A8
|
||||
EXTEND
|
||||
BZMF FORMULA2
|
||||
|
||||
# IF TJET GREATER THAN 150 MSEC, ASSIGN IT VALUE OF 250 MSEC, SINCE THIS
|
||||
# IS ENOUGH TO ASSURE NO SKIP NEXT CSP (100 MSEC).
|
||||
|
||||
FULLTIME CAF BIT11 # 250 MSEC SCALED AT 4 SEC.
|
||||
|
||||
# RETURN TO CALLING PROGRAM WITH JET TIME SCALED AS TIME6 AND SIGNED.
|
||||
|
||||
RETURNTJ EXTEND # ALL BRANCHES TERMINATE HERE WITH TJET
|
||||
MP ROTSENSE # (SCALED AT 4 SEC) IN THE ACCUMULATOR.
|
||||
INDEX AXISCTR # ROTSENSE APPLIES SIGN AND CHANGES SCALE.
|
||||
TS TJETU
|
||||
EXTEND
|
||||
INDEX AXISCTR
|
||||
MP ACCSWU # SET SWITCH FOR JET SELECT IF ROTATION IS
|
||||
CAE L
|
||||
EXTEND # IN A SENSE FOR WHICH 1/ACCS HAS FORCED
|
||||
BZMF +3 # A MAX-JET CALCULATION.
|
||||
CAF FOUR
|
||||
# Page 1465
|
||||
TS NUMBERT
|
||||
TC HOLDQ # RETURN VIA SAVED Q.
|
||||
|
||||
# TJET = H/(.025 + TTOAXIS) FOR TJET LESS THAN 50 MSEC.
|
||||
|
||||
FORMULA1 CS -.025AT4 # .025 SEC SCALED AT 4.
|
||||
AD TTOAXIS # SCALED AT 4 SECONDS.
|
||||
DXCH HH # STORE DENOMINATOR IN FIRST WORD OF H,
|
||||
EXTEND # WHICH NEED NOT BE PRESERVED. PICK UP
|
||||
DV HH # DP H AND DIVIDE BY DENOMINATOR.
|
||||
EXTEND
|
||||
MP BIT14 # RESCALE TJET FROM 2 TO USUAL 4 SEC.
|
||||
TCF CHKMINTJ # CHECK THAT TJET IS NOT LESS THAN MINIMUM
|
||||
|
||||
# TJET = (H + .00375)/(0.1 + TTOAXIS) FOR TJET GREATER THAN 50 MSEC.
|
||||
|
||||
FORMULA2 EXTEND
|
||||
DCA .00375A8 # .00375 SEC(2) SCALED AT 8.
|
||||
DAS HH # STORE NUMERATOR IN DP H, WHICH NEED NOT
|
||||
# BE PRESERVED.
|
||||
CAE TTOAXIS # SCALED AT 4 SEC.
|
||||
AD .1AT4 # 0.1 SEC SCALED AT 4.
|
||||
DXCH HH # STORE DENOMINATOR IN FIRST WORD OF H,
|
||||
EXTEND # WHICH NEED NOT BE PRESERVED. PICK UP
|
||||
DV HH # DP NUMERATOR AND DIVIDE BY DENOMINATOR
|
||||
EXTEND
|
||||
MP BIT14 # RESCALE TJET FROM 2 TO USUAL 4 SEC.
|
||||
TCF RETURNTJ # END SUBROUTINE.
|
||||
|
||||
# SUBROUTINIZED COMPUTATIONS REQUIRED FOR ALL ENTRIES INTO CODING FOR ZONES 1, 2, AND 3.
|
||||
# REACHED BY TC FROM 3 POINTS IN TJETLAW.
|
||||
|
||||
Z123COMP CS ROTSENSE # USED IN RETURNTJ SECTION TO RESCALE TJET
|
||||
TS ROTSENSE # AS TIME6 AND GIVE IT PROPER SIGN.
|
||||
CAE EDOT # SCALED AT PI/2(5) RAD/SEC.
|
||||
EXTEND
|
||||
INDEX ADRSDIF2
|
||||
MP 1/ANET1 # SCALED AT 2(7)/PI SEC(2)/RAD.
|
||||
TS TTOAXIS # STORE TIME-TO-AXIS SCALED AT 4 SECONDS.
|
||||
AD -TJMAX
|
||||
EXTEND # IS TIME TO AXIS LESS THAN 150 MSEC.
|
||||
BZMF +2
|
||||
TCF FULLTIME # NO. FIRE JETS, DO NOT CALCULATE TJET.
|
||||
RETURN # YES. GO ON TO FIND TJET
|
||||
|
||||
ZON1,2,3 TC Z123COMP # SUBROUTINIZED PREPARATION FOR ZONE1,2,3.
|
||||
|
||||
# IF THE (NEG) DISTANCE BEYOND PARABOLA IS LESS THAN FLAT, USE SPECIAL
|
||||
# LOGIC TO ACQUIRE MINIMUM IMPULSE LIMIT CYCLE. DURING POWERED FLIGHT
|
||||
# Page 1466
|
||||
# OR ULLAGE, FLAT = 0
|
||||
|
||||
CAE FIREFCT # SCALED AT PI/4 RAD.
|
||||
AD FLAT
|
||||
EXTEND
|
||||
BZMF ZONE1 # NOT IN SPECIAL ZONES.
|
||||
|
||||
# FIRE FOR AXIS OR, IF CLOSE, FIRE MINIMUM IMPULSE. IF ON AXIS, COAST.
|
||||
|
||||
ZONE2,3 CS ZONE3LIM # HEIGHT OF MIN-IMPULSE ZONE SET BY 1/ACCS
|
||||
AD TTOAXIS # 35 MSEC IN DRIFTING FLIGHT
|
||||
EXTEND # ZERO WHEN TRYING TO ENTER GTS CONTROL.
|
||||
BZMF ZONE3
|
||||
ZONE2 CAE TTOAXIS # FIRE TO AXIS.
|
||||
TCF RETURNTJ
|
||||
ZONE3 CCS EDOT # CHECK IF EDOT IS ZERO.
|
||||
CAF BIT6 # FIRE A ONE-JET MINIMUM IMPULSE.
|
||||
TCF RETURNTJ # TJET = +0.
|
||||
TC CCSHOLE # CANNOT BE BECAUSE NEG EDOT COMPLEMENTED.
|
||||
TCF RETURNTJ # TJET = +0.
|
||||
|
||||
ZONE1 EXTEND
|
||||
INDEX ADRSDIF1
|
||||
SU AXISDIST # SCALED AT PI/4 RAD.
|
||||
EXTEND
|
||||
INDEX ADRSDIF2
|
||||
MP ACCFCTZ1 # SCALED AT 2(7)/PI SEC(2)/RAD.
|
||||
DDOUBL
|
||||
DDOUBL
|
||||
DXCH HH # DOUBLE PRECISION H SCALED AT 8 SEC(2).
|
||||
|
||||
# TEST WHETHER TOTAL TIME REQUIRED GREATER THAN 150 MSEC:
|
||||
# 2 2
|
||||
# IS .5(.150 - TTOAXIS) - H NEGATIVE (SCALED AT 8 SECONDS )
|
||||
|
||||
CAE TTOAXIS # TTOAXIS SCALED AT 4 SECONDS.
|
||||
AD -TJMAX # -.150 SECOND SCALED AT 4.
|
||||
EXTEND
|
||||
SQUARE
|
||||
EXTEND
|
||||
SU HH # HIGH WORD OF H SCALED AT 8 SEC(2).
|
||||
EXTEND
|
||||
BZMF FULLTIME # YES. NEED NOT CALCULATE TJET.
|
||||
|
||||
# TEST WHETHER TIME BEYOND AXIS GREATER THAN 50 MSEC TO DETERMINE WHICH APPROXIMATION TO USE.
|
||||
|
||||
CAE HH
|
||||
AD NEG2
|
||||
EXTEND
|
||||
BZMF FORMULA3
|
||||
|
||||
# Page 1467
|
||||
# TJET = H/0.1 + TTOAXIS + .0375 FOR APPROXIMATION OVER MORE THAN 50 MSEC.
|
||||
|
||||
CAF .1AT2 # STORE .1 SEC SCALED AT 2 FOR DIVISION.
|
||||
DXCH HH # DP H SCALED AT 8 SEC(2) NEED NOT BE
|
||||
EXTEND # PRESERVED.
|
||||
DV HH # QUOTIENT SCALED AT 4 SECONDS.
|
||||
AD TTOAXIS # SCALED AT 4 SEC.
|
||||
AD .0375AT4 # .0375 SEC SCALED AT 4.
|
||||
TCF RETURNTJ # END COMPUTATION.
|
||||
|
||||
# TJET - H/.O25 + TTOAXIS FOR APPROXIMATION OVER LESS THAN 50 MSEC.
|
||||
|
||||
FORMULA3 CS -.025AT2 # STORE +.25 SEC SCALED AT 2 FOR DIVISION
|
||||
DXCH HH # PICK UP DP H AT 8, WHICH NEED NOT BE
|
||||
EXTEND # PRESERVED.
|
||||
DV HH # QUOTIENT SCALED AT 4 SECONDS.
|
||||
AD TTOAXIS # SCALED AT 4 SEC.
|
||||
|
||||
# IF COMPUTED JET TIME IS LESS THAN TJMIN, TJET IS SET TO ZERO.
|
||||
# MINIMUM IMPULSES REQUIRED IN ZONE 3 ARE NOT SUBJECT TO THIS CONSTRAINT, NATURALLY.
|
||||
|
||||
CHKMINTJ AD -TJMIN # IS COMPUTED TIME LESS THAN THE MINIMUM.
|
||||
EXTEND
|
||||
BZMF COASTTJ # YES, SET TIME TO ZERO.
|
||||
AD TJMIN # NO, RESTORE COMPUTED TIME.
|
||||
TCF RETURNTJ # END COMPUTATION.
|
||||
|
||||
# Page 1468
|
||||
# *** ROUGHLAW ***
|
||||
#
|
||||
# BEFORE ENTRY TO RUFLAW:
|
||||
# 1. INDEXERS ADRSDIF1 AND ADRSDIF2 ARE SET ON BASIS OF AXIS, AND SIGN OF EDOT.
|
||||
# 2. IF EDOT WAS NEGATIVE, E AND EDOT ARE ROTATED INTO UPPER HALF-PLANE AND ROTSENSE IS MADE NEGATIVE.
|
||||
# 3. E IS SCALED AT PI RADIANS AND EDOT AT PI/4 RAD/SEC.
|
||||
# (EXCEPT THE RUFLAW3 ENTRY WHEN E IS AT PI/4)
|
||||
#
|
||||
# RUFLAW1: ERROR MORE NEGATIVE THAN PI/16 RAD. FIRE TO A RATE OF 6.5 DEG/SEC (IF JET TIME EXCEEDS 20 MSEC.).
|
||||
# RUFLAW2: ERROR MORE POSITIVE THAN PI/16 RAD. FIRE TO AN OPPOSING RATE OF 6.5 DEG/SEC.
|
||||
# RUFLAW3: ERROR RATE GREATER THAN PI/32 RAD/SEC AND ERROR WITHIN BOUNDS. COAST IF BELOW FIREFCT, FIRE IF ABOVE
|
||||
|
||||
RUFLAW1 CS RUFRATE # DECREMENT EDOT BY .1444 RAD/SEC AT PI/4
|
||||
ADS EDOT # WHICH IS THE TARGET RATE
|
||||
EXTEND
|
||||
BZMF SMALRATE # BRANCH IF RATE LESS THAN TARGET.
|
||||
TC RUFSETUP # REVERSE ROTSENSE AND INDICATE MAX JETS.
|
||||
CAE EDOT # PICK UP DESIRED RATE CHANGE.
|
||||
|
||||
RUFLAW12 EXTEND # COMPUTE TJET
|
||||
INDEX ADRSDIF2 # = (DESIRED RATE CHANGE)/(2-JET ACCEL.)
|
||||
MP 1/ANET1 +2
|
||||
AD -1/8 # IF TJET, SCALED AT 32 SEC, EXCEEDS
|
||||
EXTEND # 4 SECONDS, SET TJET TO TJMAX.
|
||||
BZMF +2
|
||||
TCF FULLTIME
|
||||
EXTEND
|
||||
BZF FULLTIME
|
||||
AD BIT12 # RESTORE COMPUTED TJET TO ACCUMULATOR
|
||||
DAS A
|
||||
DAS A
|
||||
DAS A # RESCALED TJET AT 4 SECONDS.
|
||||
TCF CHKMINTJ # RETURN AS FROM FINELAW.
|
||||
|
||||
SMALRATE TC RUFSETUP +2 # SET NUMBERT AND FIREFCT FOR MAXIMUM JETS
|
||||
CCS ROTSENSE
|
||||
CAF ONE # MODIFY INDEXER TO POINT TO 1/ANET
|
||||
TCF +2 # CORRESPONDING TO THE PROPER SENSE.
|
||||
CAF NEGONE
|
||||
ADS ADRSDIF2
|
||||
|
||||
CS EDOT # (.144 AT PI/4 - EDOT) = DESIRED RATE CHNG.
|
||||
TCF RUFLAW12
|
||||
|
||||
RUFLAW2 TC RUFSETUP # REVERSE ROTSENSE AND INDICATE MAX JETS.
|
||||
CAF RUFRATE
|
||||
AD EDOT # (.144 AT PI/4 + EDOT) = DESIRED RATE CHNG.
|
||||
TS A # IF OVERFLOW SKIP, FIRE FOR FULL TIME.
|
||||
TCF RUFLAW12 # OTHERWISE, COMPUTE JET TIME.
|
||||
TCF FULLTIME
|
||||
|
||||
# Page 1469
|
||||
RUFLAW3 TC RUFSETUP # EXECUTE COMMON RUFLAW SUBROUTINE.
|
||||
INDEX ADRSDIF1
|
||||
CS FIREDB # CALCULATE DISTANCE FROM SWITCH CURVE
|
||||
AD E # 1/ANET1*EDOT*EDOT +E - FIREDB = 0
|
||||
EXTEND # SCALED AT 4 PI RADIANS
|
||||
MP BIT11
|
||||
XCH EDOT
|
||||
EXTEND
|
||||
SQUARE
|
||||
EXTEND
|
||||
INDEX ADRSDIF1
|
||||
MP 1/ANET1 +2
|
||||
AD EDOT
|
||||
EXTEND
|
||||
BZMF COASTTJ # COAST IF BELOW IT.
|
||||
TCF FULLTIME # FIRE FOR FULL PERIOD IF ABOVE IT.
|
||||
|
||||
# SUBROUTINE USED IN ALL ENTRIES TO ROUGHLAW.
|
||||
|
||||
RUFSETUP CS ROTSENSE # REVERSE ROTSENSE WHEN ENTER HERE.
|
||||
TS ROTSENSE
|
||||
+2 CAF FOUR # REQUIRE MAXIMUM (2) JETS IN U,V-AXES.
|
||||
TS NUMBERT
|
||||
CAF NEGMAX # SUGGEST MAXIMUM (4) JETS IN P-AXIS.
|
||||
TS FIREFCT
|
||||
TC Q
|
||||
|
||||
# CONSTANTS FOR TJETLAW
|
||||
|
||||
DEC -16 # AXISDIFF(INDEX) = NUMBER OF REGISTERS
|
||||
AXISDIFF DEC +0 # BETWEEN STORED 1/ACCS PARAMETERS FOR
|
||||
DEC 16 # THE INDEXED AXIS AND THE U-AXIS.
|
||||
SENSOR OCT 14400 # RATIO OF TJET SCALING WITHIN TJETLAW
|
||||
# (4 SEC) TO SCALING FOR T6 (10.24 SEC).
|
||||
-3DEG DEC -.06667 # -3.0 DEGREES SCALED AT 45.
|
||||
-.0112A8 DEC -.00141 # -.01125 SEC(2) SCALED AT 8.
|
||||
.1AT4 DEC .025 # 0.1 SECOND SCALED AT 4.
|
||||
.1AT2 DEC .05 # .1 SEC SCALED AT 2.
|
||||
.0375AT4 DEC .00938 # .0375 SEC SCALED AT 4.
|
||||
-.025AT2 DEC -.0125 # -.025 SEC SCALED AT 2.
|
||||
-.025AT4 DEC -.00625
|
||||
-.05AT2 DEC -.025
|
||||
-.15AT2 DEC -.075
|
||||
.00375A8 2DEC .00375 B-3
|
||||
|
||||
-TJMAX DEC -.0375 # LARGEST CALCULATED TIME. .150 SEC AT 4.
|
||||
TJMIN DEC .005 # SMALLEST ALLOWABLE TIME. .020 SEC AT 4.
|
||||
-TJMIN DEC -.005
|
||||
RUFRATE DEC .1444 # CORRESPONDS TO TARGET RATE OF 6.5 DEG/S.
|
622
Luminary099/TRIM_GIMBAL_CNTROL_SYSTEM.s
Normal file
622
Luminary099/TRIM_GIMBAL_CNTROL_SYSTEM.s
Normal file
@ -0,0 +1,622 @@
|
||||
# Copyright: Public domain.
|
||||
# Filename: TRIM_GIMBAL_CNTROL_SYSTEM.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: 1472-1485
|
||||
# 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 1472
|
||||
BANK 21
|
||||
EBANK= QDIFF
|
||||
SETLOC DAPS4
|
||||
BANK
|
||||
|
||||
COUNT* $$/DAPGT
|
||||
|
||||
# CONTROL REACHES THIS POINT UNDER EITHER OF THE FOLLOWING TWO CONDITIONS ONCE THE DESCENT ENGINE AND THE DIGITAL
|
||||
# AUTOPILOT ARE BOTH ON:
|
||||
# A) THE TRIM GIMBAL CONTROL LAW WAS ON DURING THE PREVIOUS Q,R-AXIS TIME5 INTERRUPT (OR THE DAPIDLER
|
||||
# INITIALIZATION WAS SET FOR TRIM GIMBAL CONTROL AND THIS IS THE FIRST PASS), OR
|
||||
# B) THE Q,R-AXES RCS AUTOPILOT DETERMINED THAT THE VEHICLE WAS ENTERING (OR HAD JUST ENTERED) A COAST
|
||||
# ZONE WITH A SMALL OFFSET ANGULAR ACCELERATION.
|
||||
# GTS IS THE ENTRY TO THE GIMBAL TRIM SYSTEM FOR CONTROLLING ATTITUDE ERRORS AND RATES AS WELL AS ACCELERATIONS.
|
||||
|
||||
GTS CAF NEGONE # MAKE THE NEXT PASS THROUGH THE DAP BE
|
||||
TS COTROLER # THROUGH RCS CONTROL,
|
||||
CAF FOUR # AND ENSURE THAT IT IS NOT A SKIP.
|
||||
TS SKIPU
|
||||
TS SKIPV
|
||||
|
||||
CAF TWO
|
||||
TS INGTS # SET INDICATOR OF GTS CONTROL POSITIVE.
|
||||
TS QGIMTIMR # SET TIMERS TO 200 MSEC TO AVOID BOTH
|
||||
TS RGIMTIMR # RUNAWAY AND INTERFERENCE BY NULLING.
|
||||
|
||||
# THE DRIVE SETTING ALGORITHM
|
||||
#
|
||||
# DEL = SGN(OMEGA + ALPHA*ABS(ALPHA)/(2*K))
|
||||
# 2 1/2 2 3/2
|
||||
# NEGUSUM = ERROR*K + ALPHA*(DEL*OMEGA + ALPHA /(3*K)) + DEL*K (DEL*OMEGA + ALPHA /(2*K))
|
||||
#
|
||||
# DRIVE = -SGN(NEGUSUM)
|
||||
|
||||
CA SR # SAVE THE SR. SHIFT IT LEFT TO CORRECT
|
||||
AD A # FOR THE RIGHT SHIFT DUE TO EDITING.
|
||||
TS SAVESR
|
||||
|
||||
GTSGO+DN CAF TWO # SET INDEXER FOR R-AXIS CALCULATIONS.
|
||||
TCF GOQTRIMG +1
|
||||
|
||||
GOQTRIMG CAF ZERO # SET INDEXER FOR Q-AXIS CALCULATIONS
|
||||
TS QRCNTR
|
||||
# Page 1473
|
||||
# RSB 2009 ---------------------------------------------------------------------
|
||||
# Everything between this line and the similar line below was simply filled-in
|
||||
# as-is from Luminary 131, and then verified to assemble to the proper binary
|
||||
# values. This area is blank on the Luminary 099 print-out, as if the
|
||||
# printer ribbon had run out.
|
||||
INDEX QRCNTR # AOS SCALED AT PI/2
|
||||
CA AOSQ
|
||||
EXTEND
|
||||
MP BIT2 # RESCALE AOS TO PI/4
|
||||
EXTEND
|
||||
BZF GTSQAXIS -3 # USE FULL SCALE FOR LARGER AOS ESTIMATES.
|
||||
|
||||
INDEX A
|
||||
CS LIMITS # LIMITS +1 CONTAINS NEGMAX.
|
||||
XCH L # LIMITS -1 CONTAINS POSMAX.
|
||||
|
||||
CCS QRCNTR # PICK UP RATE FOR THIS AXIS. RATE CELLS
|
||||
INDEX A # USE ADJACENT, NOT SEPARATED. AT PI/4
|
||||
CA EDOTQ
|
||||
GTSQAXIS DXCH WCENTRAL
|
||||
|
||||
INDEX QRCNTR # COLLECT K FOR THIS AXIS
|
||||
CA KQ
|
||||
TS KCENTRAL
|
||||
|
||||
EXTEND # CONTROL AUTHORITY ZERO. AVOID DRIVING
|
||||
BZF POSDRIVE +1 # ENGINE BELL TO THE STOPS.
|
||||
|
||||
INDEX QRCNTR # QDIFF, RDIFF ARE STORED IN D.P.
|
||||
CAE QDIFF
|
||||
|
||||
ALGORTHM EXTEND # Q(R)DIFF IS THETA (ERROR) SCALED AT PI.
|
||||
MP KCENTRAL # FORM K*ERROR AT PI(2)/2(8), IN D.P.
|
||||
LXCH K2THETA
|
||||
EXTEND
|
||||
MP BIT5 # RESCALE TO 4*PI(2)
|
||||
DXCH K2THETA
|
||||
EXTEND
|
||||
MP BIT5 # FIRST TERM OF NEGUSUM IN K2THETA.
|
||||
ADS K2THETA +1 # NO CARRY NEEDED D.P. AT 4*PI(2)
|
||||
|
||||
CS ACENTRAL # FORM ALPHA(2)/(2*K) AT 16*PI, IN D.P.,
|
||||
EXTEND # LIMITING QUOTIENT TO AVOID OVERFLOW.
|
||||
MP BIT14 # -ALPHA/2 IN A, SCALED AT PI/4
|
||||
EXTEND
|
||||
MP ACENTRAL # -ALPHA(2)/2 IN A,L, SCALED AT PI(2)/16)
|
||||
AD KCENTRAL
|
||||
EXTEND
|
||||
BZMF HUGEQUOT # K-ALPHA(2)/2 SHOULD BE PNZ FO DIVISION
|
||||
|
||||
EXTEND
|
||||
DCS A # ALPHA(2)/2 - K
|
||||
AD KCENTRAL
|
||||
# RSB 2009 ---------------------------------------------------------------------
|
||||
EXTEND
|
||||
DV KCENTRAL # HIGH ORDER OF QUOTIENT.
|
||||
XCH A2CNTRAL
|
||||
CA L # SHIFT UP THE REMAINDER.
|
||||
LXCH 7 # ZERO LOW-ORDER DIVIDEND.
|
||||
EXTEND
|
||||
# Page 1474
|
||||
DV KCENTRAL
|
||||
XCH A2CNTRAL +1 # QUOTIENT STORED AT 16*PI, D.P.
|
||||
TCF HAVEQUOT
|
||||
|
||||
HUGEQUOT CA POSMAX
|
||||
TS L
|
||||
DXCH A2CNTRAL # LIMITED QUOTIENT STORED AT 16*PI, D.P.
|
||||
|
||||
HAVEQUOT CA WCENTRAL
|
||||
EXTEND
|
||||
MP BIT9 # RESCALE OMEGA AT 16*PI IN D.P.
|
||||
DXCH K2CNTRAL # LOWER WORD OVERLAYS OMEGA IN WCENTRAL
|
||||
|
||||
EXTEND
|
||||
DCA K2CNTRAL
|
||||
DXCH FUNCTION
|
||||
|
||||
CA ACENTRAL # GET ALPHA*ABS(ALPHA)/(2*K)
|
||||
EXTEND
|
||||
BZMF +4
|
||||
|
||||
EXTEND
|
||||
DCA A2CNTRAL
|
||||
TCF +3
|
||||
|
||||
EXTEND
|
||||
DCS A2CNTRAL
|
||||
|
||||
DAS FUNCTION # OMEGA + ALPHA*ABS(ALPHA)/(2*K) AT 16*PI
|
||||
|
||||
CCS FUNCTION # DEL = +1 FOR FUNCT1 GREATER THAN ZERO.
|
||||
TCF POSFNCT1 # OTHERWISE DEL = -1
|
||||
TCF +2
|
||||
TCF NEGFNCT1
|
||||
|
||||
CCS FUNCTION +1 # USE LOW ORDER WORD SINCE HIGH IS ZERO
|
||||
POSFNCT1 CAF BIT1
|
||||
TCF +2
|
||||
NEGFNCT1 CS BIT1
|
||||
TS DEL
|
||||
|
||||
CCS DEL # REPLACE OMEGA BY DEL*OMEGA
|
||||
TCF FUNCT2 # POSITIVE DEL VALUE. PROCEED.
|
||||
TCF DEFUNCT
|
||||
TCF NEGFNCT2
|
||||
|
||||
DEFUNCT TS K2CNTRAL
|
||||
TS K2CNTRAL +1
|
||||
TCF FUNCT2
|
||||
|
||||
# Page 1475
|
||||
NEG1/3 DEC -.33333
|
||||
|
||||
NEGFNCT2 EXTEND
|
||||
DCS K2CNTRAL
|
||||
DXCH K2CNTRAL
|
||||
|
||||
FUNCT2 EXTEND
|
||||
DCA A2CNTRAL
|
||||
DAS K2CNTRAL # DEL*OMEGA + ALPHA(2)/(2*K) AT 16*PI, D.P.
|
||||
|
||||
FUNCT3 CA A2CNTRAL
|
||||
EXTEND
|
||||
MP NEG1/3
|
||||
DXCH A2CNTRAL
|
||||
CA L
|
||||
EXTEND
|
||||
MP NEG1/3
|
||||
ADS A2CNTRAL +1
|
||||
TS L
|
||||
TCF +2 # A2CNTRAL NOW CONTAINS -ALPHA(2)/(6*K),
|
||||
ADS A2CNTRAL # SCALED AT 16*PI, IN D.P.
|
||||
|
||||
EXTEND
|
||||
DCA K2CNTRAL # DEL*OMEGA + ALPHA(2)/(3*K) IN A2CNTRAL,
|
||||
DAS A2CNTRAL # SCALED AT 16*PI, D.P.
|
||||
|
||||
CA A2CNTRAL
|
||||
EXTEND
|
||||
MP ACENTRAL
|
||||
DAS K2THETA
|
||||
CA A2CNTRAL +1
|
||||
EXTEND
|
||||
MP ACENTRAL # ACENTRAL MAY NOW BE OVERLAID.
|
||||
ADS K2THETA +1
|
||||
TS L
|
||||
TCF +2 # TWO TERMS OF NEGUSUM ACCUMULATED, SO FAR
|
||||
ADS K2THETA # SCALED AT 4*PI(2), IN D.P.
|
||||
|
||||
GETROOT CA K2CNTRAL # K*(DEL*OMEGA + ALPHA(2)/(2*K)) IS THE
|
||||
EXTEND # TERM FOR WHICH A SQUARE ROOT IS NEEDED.
|
||||
MP KCENTRAL # K AT PI/2(8)
|
||||
DXCH FUNCTION
|
||||
CA K2CNTRAL +1
|
||||
EXTEND
|
||||
MP KCENTRAL
|
||||
ADS FUNCTION +1
|
||||
TS L
|
||||
TCF +2
|
||||
ADS FUNCTION # DESIRED TERM IN FUNCTION, AT PI(2)/16
|
||||
# Page 1476
|
||||
CCS DEL
|
||||
TCF RSTOFGTS
|
||||
TCF NEGUSUM
|
||||
TCF NEGATE
|
||||
TCF NEGUSUM
|
||||
|
||||
NEGATE EXTEND
|
||||
DCS K2CNTRAL
|
||||
DXCH K2CNTRAL
|
||||
TCF RSTOFGTS
|
||||
|
||||
BANK 16
|
||||
EBANK= NEGUQ
|
||||
SETLOC DAPS1
|
||||
BANK
|
||||
|
||||
# THE WRCHN12 SUBROUTINE SETS BITS 9,10,11,12 OF CHANNEL 12 ON THE BASIS OF THE CONTENTS OF NEGUQ,NEGUR WHICH ARE
|
||||
# THE NEGATIVES OF THE DESIRED ACCELERATION CHANGES. ACDT+C12 SETS Q(R)ACCDOT TO REFLECT THE NEW DRIVES.
|
||||
#
|
||||
# WARNING: ACDT+C12 AND WRCHN12 MUST BE CALLED WITH INTERRUPT INHIBITED.
|
||||
|
||||
BGIM OCTAL 07400
|
||||
CHNL12 EQUALS ITEMP6
|
||||
ACDT+C12 CS NEGUQ
|
||||
EXTEND # GIMBAL DRIVE REQUESTS.
|
||||
MP ACCDOTQ
|
||||
LXCH QACCDOT
|
||||
CS NEGUR
|
||||
EXTEND
|
||||
MP ACCDOTR
|
||||
LXCH RACCDOT
|
||||
|
||||
CCS NEGUQ
|
||||
CAF BIT10
|
||||
TCF +2
|
||||
CAF BIT9
|
||||
TS CHNL12
|
||||
|
||||
CCS NEGUR
|
||||
CAF BIT12
|
||||
TCF +2
|
||||
CAF BIT11
|
||||
ADS CHNL12 # (STORED RESULT NOT USED AT PRESENT)
|
||||
|
||||
CS BGIM
|
||||
EXTEND
|
||||
RAND CHAN12
|
||||
AD CHNL12
|
||||
EXTEND
|
||||
WRITE CHAN12
|
||||
# Page 1477
|
||||
CS CALLGMBL # TURN OFF REQUEST FOR ACDT+C12 EXECUTION.
|
||||
MASK RCSFLAGS
|
||||
TS RCSFLAGS
|
||||
|
||||
TC Q # RETURN TO CALLER.
|
||||
|
||||
BANK 21
|
||||
EBANK= QDIFF
|
||||
SETLOC DAPS4
|
||||
BANK
|
||||
|
||||
# Page 1478
|
||||
# SUBROUTINE TIMEGMBL: MOD 0, OCTOBER 1967, CRAIG WORK
|
||||
#
|
||||
# TIMEGMBL COMPUTES THE DRIVE TIME NEEDED FOR THE TRIM GIMBAL TO POSITION THE DESCENT ENGINE NOZZLE SO AS TO NULL
|
||||
# THE OFFSET ANGULAR ACCELERATION ABOUT THE Q (OR R) AXIS. INSTEAD OF USING AOSQ(R), TIMEGMBL USES .4*AOSQ(R),
|
||||
# SCALED AT PI/8. FOR EACH AXIS, THE DRIVE TIME IS COMPUTED AS ABS(ALPHA/ACCDOT). A ZERO
|
||||
# ALPHA OR ACCDOT OR A ZERO QUOTIENT TURNS OFF THE GIMBAL DRIVE IMMEDIATELY. OTHERWISE, THE GIMBAL IS TURNED ON
|
||||
# DRIVING IN THE CORRECT DIRECTION. THE Q(R)GIMTIMR IS SET TO TERMINATE THE DRIVE AND Q(R)ACCDOT
|
||||
# IS STORED TO REFLECT THE NEW ACCELERATION DERIVATIVE. NEGUQ(R) WILL CONTAIN +1,+0,-1 FOR A Q(R)ACCDOT VALUE
|
||||
# WHICH IS NEGATIVE, ZERO, OR POSITIVE.
|
||||
#
|
||||
# INPUTS: AOSQ,AOSR, SCALED AT P1/2, AND ACCDOTQ, ACCDOTR AT PI/2(7). PI/2(7).
|
||||
#
|
||||
# OUTPUTS: NEW GIMBAL DRIVE BITS IN CHANNEL 12, NEGUQ, NEGUR, QACCDOT, AND RACCDOT, THE LAST SCALED AT PI/2(7).
|
||||
# Q(R)GIMTIMR WILL BE SET TO TIME AND TERMINATE GIMBAL DRIVE(S).
|
||||
#
|
||||
# DEBRIS: A, L, Q, ITEMPS 2, 3, 6, AND RUPTREG2 AND ACDT+C12 DEBRIS.
|
||||
#
|
||||
# EXITS: VIA TC Q.
|
||||
#
|
||||
# ALARMS, ABORTS: NONE.
|
||||
#
|
||||
# SUBROUTINES: ACDT+C12, IBNKCALL
|
||||
#
|
||||
# WARNING: THIS SUBROUTINE WRITES INTO CHANNEL 12 AND USES THE ITEMPS. THEREFORE IT MAY ONLY BE CALLED WITH
|
||||
# INTERRUPT INHIBITED.
|
||||
#
|
||||
# ERASABLE STORAGE CONFIGURATION (NEEDED BY THE INDEXING METHODS):
|
||||
# NEGUQ ERASE +2 # NEGATIVE OF Q-AXIS GIMBAL DRIVE
|
||||
# (SPWORD) EQUALS NEGUQ +1 # ANY S.P. ERASABLE NUMBER, NOW THRSTCMD
|
||||
# NEGUR EQUALS NEGUQ +2 # NEGATIVE OF R-AXIS GIMBAL DRIVE
|
||||
# ACCDOTQ ERASE +2 # Q-JERK TERM SCALED AT PI/2(7) RAD/SEC(3)
|
||||
# (SPWORD) EQUALS ACCDOTQ +1 # ANY S.P. ERASABLE NUMBER NOW QACCDOT
|
||||
# ACCDOTR EQUALS ACCDOTQ +2 # R-JERK TERM SCALED AT PI/2(7) RAD/SEC(3)
|
||||
# # ACCDOTQ, ACCDOTR ARE MAGNITUDES.
|
||||
# AOSQ ERASE +4 # Q-AXIS ACC., D.P. AT PI/2 R/SEC(2)
|
||||
# AOSR EQUALS AOSQ +2 # R-AXIS ACCELERATION SCALED AT PI/2 R/S2
|
||||
|
||||
QRNDXER EQUALS ITEMP6
|
||||
OCT23146 OCTAL 23146 # DECIMAL .6
|
||||
NZACCDOT EQUALS ITEMP3
|
||||
|
||||
TIMEGMBL CAF ONE # INITIALZE ALLOWGTS.
|
||||
TS ALLOWGTS
|
||||
|
||||
CAF TWO # SET UP LOOP FOR R AXIS.
|
||||
LXCH Q # SAVE RETURN ADDRESS.
|
||||
LXCH RUPTREG2
|
||||
# Page 1479
|
||||
TCF +2
|
||||
TIMQGMBL CAF ZERO # NOW DO THE Q-AXIS
|
||||
TS QRNDXER
|
||||
INDEX QRNDXER
|
||||
CA ACCDOTQ # ACCDOT IS PRESUMED TO BE AT PI/2(7).
|
||||
EXTEND
|
||||
BZMF TGOFFNOW # IS ACCDOT LESS THAN OR EQUAL TO 0?
|
||||
TS NZACCDOT # NO. STORE NON-ZERO, POSITIVE ACCDOT.
|
||||
|
||||
ALPHATRY INDEX QRNDXER
|
||||
CS AOSQ
|
||||
EXTEND
|
||||
BZF TGOFFNOW # IS ALPHA ZERO?
|
||||
|
||||
TS Q # SAVE A COPY OF -AOS.
|
||||
EXTEND # NO. RESCALE FOR TIMEGMBL USE.
|
||||
MP OCT23146 # OCTAL 23146 IS DECIMAL .6
|
||||
AD Q # -1.6*AOS AT PI/2 = -.4*AOS AT PI/8
|
||||
TS L # WAS THERE OVERFLOW?
|
||||
TCF SETNEGU # NO. COMPUTE DRIVE TIME.
|
||||
|
||||
CS A # RECOVER -SGN(AOS) IN THE A REGISTER.
|
||||
INDEX QRNDXER # YES. START DRIVE WITHOUT WAITLIST.
|
||||
XCH NEGUQ
|
||||
TCF NOTALLOW # KNOCK DOWN THE ALLOWGTS FLAG.
|
||||
|
||||
SETNEGU EXTEND
|
||||
BZMF POSALPH
|
||||
|
||||
COM
|
||||
TS ITEMP2 # STORE -ABS(.4*AOS) SCALED AT PI/8.
|
||||
CS BIT1
|
||||
TCF POSALPH +2
|
||||
POSALPH TS ITEMP2 # STORE -ABS(.4*AOS) SCALED AT PI/8.
|
||||
CA BIT1
|
||||
+2 INDEX QRNDXER # SGN(AOS) INTO NEGU
|
||||
TS NEGUQ # STORE SGN(ALPHA) AS NEGU
|
||||
|
||||
CA NZACCDOT
|
||||
EXTEND
|
||||
MP BIT12 # 2*ACCDOT, SCALED AT PI/8.
|
||||
AD ITEMP2 # -ABS(ALPHS) + 2*ACCDOT, AT PI/8.
|
||||
EXTEND
|
||||
BZMF NOTALLOW # IS DRIVE TIME MORE THAN TWO SECONDS?
|
||||
CS ITEMP2 # NO. COMPUTE DRIVE TIME.
|
||||
EXTEND # ABS(ALPHA) AT PI/8.
|
||||
MP OCT00240 # DECIMAL 10/1024
|
||||
EXTEND # QUOTIENT IS DRIVE TIME AT WAITLIST.
|
||||
DV NZACCDOT # ABS(ALPHA)/ACCDOT AT 2(14)/100
|
||||
# Page 1480
|
||||
EXTEND
|
||||
BZF TGOFFNOW # DRIVE TIME MUST BE GREATER THAN ZERO.
|
||||
|
||||
TCF DRIVEON
|
||||
|
||||
TGOFFNOW CAF ZERO # TURN OFF GIMBAL NOW.
|
||||
INDEX QRNDXER
|
||||
TS NEGUQ
|
||||
|
||||
TCF DONEYET
|
||||
|
||||
NOTALLOW CAF OCT31
|
||||
INDEX QRNDXER
|
||||
TS QGIMTIMR
|
||||
CAF ZERO # DRIVE TIME IS MORE THAN 2 SECONDS, SO
|
||||
TS ALLOWGTS # DO NOT PERMIT FURTHER GTS ATTITUDE-RATE
|
||||
# CONTROL UNTIL AOSTASK APPROVES.
|
||||
TCF DONEYET # NO WAITLIST CALL IS MADE.
|
||||
|
||||
DRIVEON INDEX QRNDXER
|
||||
TS QGIMTIMR # CHOOSE Q OR R AXIS.
|
||||
|
||||
DONEYET CCS QRNDXER
|
||||
TCF TIMQGMBL
|
||||
|
||||
DXCH RUPTREG3 # PROTECT IBNKCALL ERASABLES. ACDT+C12
|
||||
DXCH ITEMP2 # LEAVES ITEMPS2,3 ALONE.
|
||||
|
||||
TC IBNKCALL # TURN OFF CHANNEL BITS, SET Q(R)ACCDOTS.
|
||||
CADR ACDT+C12
|
||||
|
||||
DXCH ITEMP2 # RESTORE ERASABLES FOR IBNKCALL.
|
||||
DXCH RUPTREG3
|
||||
|
||||
TC RUPTREG2 # RETURN TO CALLER.
|
||||
|
||||
OCT00240 OCTAL 00240 # DECIMAL 10/1024
|
||||
|
||||
# Page 1481
|
||||
# THE FOLLOWING SECTION IS A CONTINUATION OF THE TRIM GIMBAL CONTROL FROM THE LAST GTS ENTRY. THE QUANTITY NEGUSUM
|
||||
# IS COMPUTED FOR EACH AXIS (Q,R), .707*DEL*FUNCTION(3/2) + K2THETA = NEGUSUM. NEW DRIVES ARE ENTERED TO CH 12.
|
||||
#
|
||||
# THE SUBROUTINE GTSQRT ACCEPTS A DOUBLE PRECISION VALUE IN FUNCTION, FUNCTION +1 AND RETURNS A SINGLE-PRECISION
|
||||
# SQUARE ROOT OF THE FOURTEEN MOST SIGNIFICANT BITS OF THE ARGUMENT. ALSO, THE CELL SHFTFLAG CONTAINS A BINARY
|
||||
# EXPONENT S, SUCH THAT THE SQUARE ROOT (RETURNED IN THE A REGISTER) MUST BE SHIFTED RIGHT (MULTIPLIED BY 2 TO THE
|
||||
# POWER (-S)) IN ORDER TO BE THE TRUE SQUARE ROOT OF THE FOURTEEN MOST SIGNIFICANT BITS OF FUNCTION, FUNCTION +1.
|
||||
# SQUARE ROOT ERROR IS NOT MORE THAN 2 IN THE 14TH SIGNIFICANT BIT. CELLS CLOBBERED ARE A, L, SHFTFLAG, ININDEX,
|
||||
# HALFARG, SCRATCH, SR, FUNCTION, FUNCTION +1. GTSQRT IS CALLED BY TC GTSQRT AND RETURNS VIA TC Q OR TC FUNCTION +1.
|
||||
# ZERO OR NEGATIVE ARGUMENTS YIELD ZERO FOR SQUARE ROOTS.
|
||||
|
||||
GTSQRT CCS FUNCTION
|
||||
TCF GOODARG # FUNCTION IS POSITIVE. TAKE SQUARE ROOT.
|
||||
TCF +2 # HIGH ORDER WORD IS ZERO. TRY THE LOWER.
|
||||
TCF ZEROOT # NEGATIVE. USE ZERO FOR 1/2 POWER.
|
||||
|
||||
CA FUNCTION +1
|
||||
EXTEND
|
||||
BZMF ZEROOT
|
||||
|
||||
TCF ZEROHIGH # PROCEED.
|
||||
ZEROOT CA ZERO
|
||||
TS SHFTFLAG
|
||||
TC Q
|
||||
|
||||
ZEROHIGH XCH FUNCTION # 14 MOST SIGNIFICANT BITS ARE IN THE
|
||||
XCH FUNCTION +1 # LOWER WORD. EXCHANGE THEM.
|
||||
CA SEVEN
|
||||
TCF GOODARG +1
|
||||
|
||||
GOODARG CA ZERO
|
||||
TS SHFTFLAG
|
||||
CA TWELVE # INITIALIZE THE SCALING LOOP.
|
||||
TS ININDEX
|
||||
TCF SCALLOOP
|
||||
|
||||
SCALSTRT CA FUNCTION
|
||||
TCF SCALDONE
|
||||
|
||||
MULBUSH CA NEG2 # IF ARG IS NOT LESS THAN 1/4, INDEX IS
|
||||
ADS ININDEX # ZERO, INDICATING NO SHIFT NEEDED.
|
||||
EXTEND # BRANCH IF ARG IS NOT LESS THAN 1/4.
|
||||
BZMF SCALSTRT # OTHERWISE COMPARE ARG WITH A REFERENCE
|
||||
# WHICH IS 4 TIMES LARGER THAN THE LAST.
|
||||
SCALLOOP CS FUNCTION
|
||||
INDEX ININDEX
|
||||
AD BIT15 # REFERENCE MAGNITUDE LESS OR EQUAL TO 1/4
|
||||
EXTEND
|
||||
BZMF MULBUSH # IF ARG IS NOT LESS THAN REFERENCE, GO
|
||||
# AROUND THE MULBERRY BUSH ONCE MORE.
|
||||
# Page 1482
|
||||
INDEX ININDEX
|
||||
CA BIT15 # THIS IS THE SCALE MAGNITUDE
|
||||
XCH HALFARG # 2**(-ININDEX) IS THE SHIFT DIVISOR.
|
||||
EXTEND # RESCALE ARGUMENT.
|
||||
DCA FUNCTION
|
||||
EXTEND
|
||||
DV HALFARG
|
||||
# ININDEX AND SHFTFLAG PRESERVE INFO FOR
|
||||
# RESCALING AFTER ROOT PROCESS.
|
||||
SCALDONE EXTEND
|
||||
QXCH FUNCTION +1 # SAVE Q FOR RETURN
|
||||
EXTEND
|
||||
MP BIT14
|
||||
TS HALFARG
|
||||
MASK BIT13
|
||||
CCS A
|
||||
CA OCT11276
|
||||
AD ROOTHALF # INITIAL GUESS IS ROOT 1/2 OR POSMAX
|
||||
TC ROOTCYCL
|
||||
TC ROOTCYCL
|
||||
TC ROOTCYCL
|
||||
TC FUNCTION +1
|
||||
|
||||
# ***************************************************************************
|
||||
|
||||
RSTOFGTS TC GTSQRT
|
||||
PRODUCT XCH K2CNTRAL
|
||||
EXTEND
|
||||
MP K2CNTRAL
|
||||
DXCH K2CNTRAL
|
||||
EXTEND # THE PRODUCT OF
|
||||
MP L # 1/2 2 1/2
|
||||
ADS K2CNTRAL +1 # K *(DEL*OMEGA + ALPHA /(2*K))
|
||||
TS L # AND
|
||||
TCF +2 # 2
|
||||
ADS K2CNTRAL # DEL*(DEL*OMEGA + ALPHA /(2*K)) NOW IN
|
||||
# K2CNTRAL
|
||||
|
||||
DOSHIFT CA ININDEX
|
||||
EXTEND # MULTIPLY IN THE FACTOR 2(-S), RETURNED
|
||||
MP BIT14 # BY THE GTSQRT SUBROUTINE
|
||||
ADS SHFTFLAG
|
||||
EXTEND
|
||||
BZF ADDITIN
|
||||
INDEX SHFTFLAG
|
||||
CA BIT15
|
||||
# Page 1483
|
||||
XCH K2CNTRAL
|
||||
EXTEND
|
||||
MP K2CNTRAL
|
||||
DAS K2THETA
|
||||
XCH K2CNTRAL
|
||||
EXTEND
|
||||
MP K2CNTRAL +1
|
||||
ADS K2THETA +1
|
||||
TS L
|
||||
TCF +2
|
||||
ADS K2THETA
|
||||
|
||||
TCF NEGUSUM
|
||||
|
||||
ADDITIN EXTEND
|
||||
DCA K2CNTRAL
|
||||
DAS K2THETA # NO ADD IN THE K2THETA TERM.
|
||||
NEGUSUM CCS K2THETA # TEST SIGN OF HIGH ORDER PART.
|
||||
TCF NEGDRIVE
|
||||
TCF +2
|
||||
TCF POSDRIVE
|
||||
|
||||
CCS K2THETA +1 # SIGN TEST FOR LOW ORDER PART.
|
||||
NEGDRIVE CA BIT1
|
||||
TCF +2 # STOP GIMBAL DRIVE FOR A ZERO NEGUSUM.
|
||||
POSDRIVE CS BIT1
|
||||
TS L # SAVE FOR DRIVE REVERSAL TEST.
|
||||
INDEX QRCNTR
|
||||
XCH NEGUQ
|
||||
|
||||
EXTEND
|
||||
MP L # MULTIPLY OLD NEGU AND NEW NEGU.
|
||||
CCS L
|
||||
TCF LOUPE # NON-ZERO GIMBAL DRIVE BEING CONTINUED.
|
||||
|
||||
TCF ZEROLOUP # NO REVERSAL PROBLEM HERE.
|
||||
|
||||
TCF REVERSAL # NON-ZERO GIMBAL DRIVE BEING REVERSED.
|
||||
TCF ZEROLOUP # NO REVERSAL PROBLEM HERE.
|
||||
|
||||
REVERSAL INDEX QRCNTR # A ZERO-DRIVE PAUSE IS NEEDED HERE. ZERO
|
||||
TS QACCDOT # IS IN A REGISTER FROM CCS ON (-1).
|
||||
INDEX QRCNTR
|
||||
CS GMBLBITA
|
||||
EXTEND
|
||||
WAND CHAN12
|
||||
|
||||
ZEROLOUP CS RCSFLAGS # SET UP REQUEST FOR ACDT+C12 CALL.
|
||||
MASK CALLGMBL
|
||||
ADS RCSFLAGS
|
||||
# Page 1484
|
||||
LOUPE CCS QRCNTR # HAVE BOTH AXES BEEN PROCESSED?
|
||||
TCF GOQTRIMG # NO. DO Q AXIS NEXT.
|
||||
|
||||
CA SAVESR # RESTORE THE SR
|
||||
TS SR
|
||||
|
||||
GOCLOSE EXTEND # TERMINATE THE JASK.
|
||||
DCA CLOSEADR
|
||||
DTCB
|
||||
|
||||
EBANK= AOSQ
|
||||
CLOSEADR 2CADR CLOSEOUT # TERMINATE THE JASK.
|
||||
|
||||
TWELVE EQUALS OCT14
|
||||
ROOTHALF OCTAL 26501 # SQUARE ROOT OF 1/2
|
||||
GMBLBITA OCTAL 01400 # INDEXED WRT GMBLBITB DO NOT MOVE *******
|
||||
OCT11276 OCTAL 11276 # POSMAX -- ROOTHALF
|
||||
GMBLBITB OCTAL 06000 # INDEXED WRT GMBLBITA DO NOT MOVE *******
|
||||
|
||||
# SUBROUTINE ROOTCYCL: BY CRAIG WORK, 3 APRIL 68
|
||||
#
|
||||
# ROOTCYCL IS A SUBROUTINE WHICH EXECUTS ONE NEWTON SQUARE ALGORITHM ITERATION. THE INITIAL GUESS AT THE
|
||||
# SQUARE ROOT IS PRESUMED TO BE IN THE A REGISTER AND ONE-HALF THE SQUARE IS TAKEN FROM HALFARG. THE NEW APPROXIMATION
|
||||
# TO THE SQUARE ROOT IS RETURNED IN THE A REGISTER. DEBRIS: A, L, SR, SCRATCH. ROOTCYCL IS CALLED FROM
|
||||
# LOCATION (LOC) BY A TC ROOTCYCL, AND RETURNS (TC Q) TO LOC +1.
|
||||
#
|
||||
# WARNING: IF THE INITIAL GUESS IS NOT GREATER THAN THE SQUARE, DIVIDE OR ADD OVERFLOW IS A REAL POSSIBILITY.
|
||||
|
||||
ROOTCYCL TS SCRATCH # STORE X
|
||||
TS SR # X/2 NOW IN SR
|
||||
CA HALFARG # ARG/2 IN THE A REG
|
||||
ZL # PREPARE FOR DIVISION
|
||||
EXTEND
|
||||
DV SCRATCH # (ARG/X)/2
|
||||
AD SR # (X + ARG/X)/2 IN THE A REG
|
||||
TC Q
|
||||
|
||||
|
Reference in New Issue
Block a user