Pre-launch Review
P11
Scanned pages: 533-550
# Copyright: Public domain.# Filename: P11.agc# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.# It is part of the source code for the Command Module's (CM)# Apollo Guidance Computer (AGC), for Apollo 11.# Assembler: yaYUL# Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.# Website: www.ibiblio.org/apollo.# Pages: 533-550# Mod history: 2009-05-13 HG Started adapting from the Colossus249/ file# of the same name, using Comanche055 page# images 0533.jpg - 0550.jpg.# 2009-05-20 RSB Corrections: ERTHALT -> EARTHALT,# STATSW -> SATSW.# 2009-05-23 RSB At end of RESCALES, corrected TC 0 to TC Q.# Added an SBANK= prior to a 2CADR.# 2010-08-24 JL Fixed page numbers. Added missing comment character on p537.## This source code has been transcribed or otherwise adapted from digitized# images of a hardcopy from the MIT Museum. The digitization was performed# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many# thanks to both. The images (with suitable reduction in storage size and# consequent reduction in image quality as well) are available online at# www.ibiblio.org/apollo. If for some reason you find that the images are# illegible, contact me at info@sandroid.org about getting access to the# (much) higher-quality images which Paul actually created.## Notations on the hardcopy document read, in part:## Assemble revision 055 of AGC program Comanche by NASA# 2021113-051. 10:28 APR. 1, 1969## This AGC program shall also be referred to as# Colossus 2A# Page 533# EARTH ORBIT INSERTION MONITOR PROGRAM# *************************************
# PROGRAM DESCRIPTION -P11-
# MOD NO. 1# MOD BY ELIASSEN
# FUNCTIONAL DESCRIPTION
# P11 IS INITIATED BY
# A) GYROCOMPASS PRG P02 WHEN LIFTOFF DISCRETE IS RECEIVED OR# B) BACKUP THRU VERB 75 ENTER
# PROGRAM WILL# 1. ZERO CMC CLOCK AT LIFTOFF (OR UPON RECEIPT OF BACKUP)# 2. UPDATE TEPHEM TO TIME CMC CLOCK WAS ZEROED# 3. INITIATE SERVICER AT PREREAD1# 4. CHANGE MAJOR MODE TO 11# 5. CLEAR DSKY IN CASE OF V 75# 6. STORE LIFTOFF IMU-CDU ANGLES FOR ATT. ERROR DISPLAY# 7. TERMINATE GYROCOMPASSING - -# 8. COMPUTE INITIAL VECTORS RN, VN - - -# 9. COMPUTE REFSMMAT FOR PRELAUNCH ALIGNMENT WHERE U ,U ,U ARE# - - X Y Z# U =(UNIT(-R) LOCAL VERTICAL AT TIME OF LIFTOFF# Z# - - -# U =UNIT(A), A=HOR VECTOR AT LAUNCH AZIMUTH# X# - - -# U =U * U# U Z X
# 10. SET REFSMMAT KNOWN FLAG# 11. SET AVGEXIT IN SERVICER TO VHHDOT TO# COMPUTE AND DISPLAY NOUN 62 EVERY 2 SECONDS
# R1 V1 - INERTIAL VELOCITY MAGNITUDE IN FPS# R2 HDOT - RATE OF CHANGE OF VEHICLE VEL IN FPS# R3 H - VEHICLE ALTITUDE ABOVE PAD IN NM
# 12. DISPLAY BODY AXES ATT. ERRORS ON FDAI NEEDLES## A) FROM L.O. TO RPSTART (APPROX. 0 TO +10SECS AFTER L.O.)# DESIRED ATTITUDE IS AS STORED AT L.O.# B) FROM RPSTART TO POLYSTOP(APPROX.+10 TO +133SECS AFTER LO)# DESIRED ATTITUDE IS SPECIFIED BY CMC PITCH AND ROLL# POLYNOMIALS DURING SATURN ROLLOUT AND PITCHOVER# Page 534# THE DISPLAY IS RUN AS LOW PRIORITY JOB APPROX.# EVERY 1/2 SEC OR LESS AND IS DISABLED UPON OVFLO OF TIME1
# SUBROUTINES CALLED
# 2PHSCHNG BANKCALL CALCGRA CDUTRIG CLEANDSP DANZIG# DELAYJOB EARTHR ENDOFJOB FINDVAC IBNKCALL# INTPRET LALOTORV NEEDLER NEWMODEX PHASCHNG# POSTJUMP POWRSERS PREREAD1 REGODSPR S11.1# SERVEXIT TASKOVER TCDANZIG V1STO2S WAITLIST
# ASTRONAUT REQUESTS (IF ALTITUDE ABOVE 300,000 FT)## DSKY -# MONITOR DISPLAY OF TIME TO PERIGEE R1 HOURS# R2 MINUTES
# DSKY -# MONITOR DISPLAY OF R1 APOGEE ALTITUDE IN NAUTICAL MILES# R2 PERIGEE ALTITUDE IN NAUTICAL MILES# R3 TFF IN MINUTES/SECS
# IF ASTRONAUT HAS REQUESTED ANY OF THESE DISPLAYS HE MUST# HIT PROCEED TO RETURN TO NORMAL NOUN 62 DISPLAY.# NORMAL EXIT MODE
# ASTRONAUT VERB 37 ENTER 00 ENTER
# ALARM MODES - NONE
# ABORT EXIT MODES -
# OUTPUT
# TLIFTOFF (DP) TEPHEM (TP)# REFSMMAT# DSKY DISPLAY# FDAI DISPLAY
# ERASABLE INITIALIZATION
# AZO, AXO, -AYO# LATITUDE# PADLONG# TEPHEM# PGNCSALT# POLYNUM THRU POLYNUM +14D)# RPSTART# POLYSTOP# FLAGS SET OR RESET# Page 535# SET REFSMFLG# SET DVMON IDLE FLAG# CLEAR ERADFLAG
# DEBRIS
# LIFTTEMP# POLYNUM THRU POLYNUM +7# SPOLYARG# BODY1, BODY2, BODY3# VMAG2, ALTI, HDOT# CENTRALS, CORE SET AND VAC AREAS COUNT 34/P11
BITS5-6 = SUPER011 BANK 42 SETLOC P11ONE BANK
EBANK= TEPHEMP11 CA EBANK3 TS EBANK
EXTEND DCA REP11S # DIRECT RESTARTS TO REP11 DXCH -PHASE3 CS ZERO ZL TS LIFTTEMP DXCH -PHASE5 # INACTIVE GROUP 5, PRELAUNCH PROTECTIONP11+7 EXTEND DCA REP11SA DXCH TLIFTOFF
EXTEND DCA TIME2 DXCH LIFTTEMP # FOR RESTARTS
CA ZERO ZL DXCH TIME2REP11A-2 DXCH TLIFTOFFREP11A-1 DXCH -PHASE3 # RESET PHASE
REP11A INHINT EXTEND DCA TEPHEM +1 DXCH TEPHEM1 +1 CA TEPHEM# Page 536 XCH TEPHEM1
EXTEND DCA TLIFTOFF DAS TEPHEM1 +1 ADS TEPHEM1 # CORRECTFOR OVERFLOW
TC PHASCHNG OCT 05023 OCT 22000
INHINT EXTEND DCA TEPHEM1 DXCH TEPHEM CA TEPHEM1 +2 XCH TEPHEM +2
CAF EBDVCNT TS EBANK EBANK= DVCNTR TC IBNKCALL CADR PREREAD1 # ZERO PIPS AND INITIALIZE AVERAGEG
TC PHASCHNG OCT 05023 # CONTINUE HERE ON RESTART OCT 22000
CAF .5SEC # START ATT ERROR DISPLAY TC WAITLIST # IN .5 SEC EBANK= BODY3 2CADR ATERTASK
TC NEWMODEX # DISPLAY MM 11 MM 11
TC UPFLAG ADRES NODOP01
CA POWDNCOD # SWITCH TO POWERED FLIGHT DOWNLIST TS DNLSTCOD
TC BANKCALL CADR CLEANDSP # CLEAR DSKY IN CASE OF V75
TC 2PHSCHNG OCT 40514 # PROTECT ATERTASK OCT 00073 CAF EBQPLACE# Page 537 TS EBANK
EBANK= QPLACES CA P11XIT # SET EXIT FROM PROUT IN EARTHR TS QPLACES TC INTPRET VLOAD MXV THETAN XSM VSL1 VAD ERCOMP STODL ERCOMP TLIFTOFF SSP GOTO S2 CADR PROUT # RETURN FROM EARTHR EARTHR +3MATRXJOB ZL # STORE DP GIMBAL ANGLES FOR ATTITUDE CA CDUX # ERROR DISPLAY AFTER LIFTOFF DXCH OGC ZL CA CDUY DXCH IGC ZL CA CDUZ DXCH MGC TC INTPRET # - VLOAD VSR1 # SCALE OGC B-1 OGC STORE OGC SSP # ZERO RTX2 RTX2 # FOR 0 # EARTH DLOAD PDDL PGNCSALT # ALTITUDE OF PGNCS PADLONG # LONGITUDE PDDL VDEF LATITUDE # GEODETIC LATITUDE STODL LAT # LAT,LONG,ALT ARE CONSECUTIVE HI6ZEROS # TIME = 0 CLEAR CALL ERADFLAG LALOTORV # CONVERT TO POSITION VECTOR IN REF.COORDS
STCALL RN1 # - GETDOWN # RETURN WITH VECTOR FOR DOWN DIRECTION VCOMP UNIT STOVL REFSMMAT +12D # UNITZ = UNIT(GRAV) RN1 VXV VXSC# Page 538 UNITW # SCALED AT 1 -ERTHRAT # V = EARTHRATE X R VSL4 # SCALE TO 2(7) M/CS STOVL VN1 REFSMMAT +12D VXV UNIT UNITW # (REF3 X UNITW) = EAST PUSH VXV REFSMMAT +12D # (EAST X REF3) = -SOUTH UNIT PDDL LAUNCHAZ # COS(AZ)*SOUTH COS VXSC STADR STODL REFSMMAT # TEMPORARY STORAGE LAUNCHAZ SIN VXSC # SIN(AZ)*EAST VAD UNIT # SIN(AZ)*EAST - COS(AZ)*SOUTH = REF1 REFSMMAT STORE REFSMMAT
VXV UNIT # (REF1 X REF3) = -REF3 REFSMMAT +12D VCOMP STORE REFSMMAT +6 DLOAD DSU DPHALF # 1/2 REV LAUNCHAZ DAD PDDL AZIMUTH SATRLRT # SET SATRLRT = -SATRLRT IF SIGN STADR # (1/2REV -LAVNCHAZ +AZIMUTH) IS NEGATIVE STORE SATRLRT # FOR ROLL CALC IN FDAI ATT. ERROR DISPLAY SET EXIT REFSMFLG # SET REFSMMAT KNOWN FLAG
TC PHASCHNG OCT 04023
EXTEND DCA P11SCADR DXCH AVGEXIT # SET AVGEXIT
CA PRIO31 # 2 SECONDS AT 2(+8) TS 1/PIPADT
EBANK= RCSFLAGS CA EBANK6 TS EBANK
INHINT# Page 539 CS ZERO TS TBASE5 # RESTART READACCS 2 SECONDS AFTER LIFTOFF
CS TIME1 AD 2SECS # DO READACCS 2 SECONDS AFTER LIFTOFF
CCS A # CHECK TO INSURE DT IS POSITIVE TCF +3 # TIME POSITIVE TCF +2 # CANNOT GET HERE CA ZERO # TIME NEGATIVE - SET TO 1 AD ONE # RESTORE TIME - OR MAKE POSITIVE
TC WAITLIST EBANK= AOG 2CADR READACCS
TC 2PHSCHNG OCT 00003 # TURN OFF GROUP 3 OCT 00025 # PROTECT NORMLIZE AND READACCS
TC POSTJUMP CADR NORMLIZE # DO NORMLIZE AND ENDOFJOB
EBANK= TEPHEMREP11 INHINT CCS PHASE5 TC ENDOFJOB
CCS LIFTTEMP TCF +4 TCF +3 TCF +2 TCF P11+7
CS TLIFTOFF EXTEND BZMF ENDREP11
CCS TIME2 # **TIME2 MUST BE NON-ZERO AT LIFTOFF** TCF REP11A -5 # T2,T1 NOT YET ZEROED, GO AND DO IT
EXTEND # T2,T1 ZEROED, SET TLIFTOFF DCA LIFTTEMP TCF REP11A-2
ENDREP11 EXTEND DCA REP11SA TCF REP11A-1# Page 540REP11S 2OCT 7776600011
REP11SA 2OCT 7776400013
P11XIT GENADR P11OUT-ERTHRAT 2DEC* -7.292115138 E-7 B18* # - EARTH RATE AT 2(18)
EBANK= BODY3P11SCADR 2CADR VHHDOT
POWDNCOD EQUALS THREE
EBANK= BODY3# VHHDOT IS EXECUTED EVERY 2 SECONDS TO DISPLAY ON DSKY# VI INERTIAL VELOCITY MAGNITUDE# HDOT RATE OF CHANGE OF ALT ABOVE L PAD RADIUS# H ALTITUDE ABOVE L PAD RADIUS
VHHDOT TC INTPRET CALL # LOAD VMAGI, ALTI, S11.1 # HDOT FOR DISPLAY EXIT TC PHASCHNG OCT 00035
CAF V06N62 # DISPLAY IN R1 R2 R3 TC BANKCALL # VI HDOT H CADR REGODSP
ATERTASK CAF PRIO1 # ESTABLISH JOB TO DISPLAY ATT ERRORS TC FINDVAC # COMES HERE AT L.O. + .33 SEC EBANK= BODY3 2CADR ATERJOB
CS RCSFLAGS # SET BIT3 FOR MASK BIT3 # NEEDLER ADS RCSFLAGS # INITIALIZATION PASS TC IBNKCALL # AND GO CADR NEEDLER # DO IT CA BIT1 # SET SW TS SATSW # FOR DISPLAY TC TASKOVERGETDOWN STQ SETPD INCORPEX 0D DLOAD HI6ZEROS# Page 541 STODL 6D DPHALF STCALL 8D LALOTORV +5# THIS SECTION PROVIDES ATTITUDE ERROR DISPLAYS TO THE FDAI DURING SONE BOOST
# COMPUTE DESIRED PITCH W.R.T. PAD LOCAL VERTICAL AT LIFTOFF# 2 3 4 5 6# PITCH = A0+A1T+A2T +A3T +A4T +A5T +A6T# SCALED TO 32 REVS. -14# IF TL = TIME IN SECS FROM L.O., THEN T = 100(TL-RPSTART)2# WHERE TL GE RPSTART# TL LE (-POLYSTOP + RPSTART)# COMPUTE DESIRED ROLL WHERE ROLL EQUALS ANGLE FROM# LAUNCHAZ TO -Z(S/C) AS SEEN FROM X(S/C).# ROLL = LAUNCHAZ-AZIMUTH-.5 +SATRLRT*T IN REV# SATRLRT = RATE OF ROLL IN REV/CENTI-SEC# T,IN CENTI-SEC,IS DEFINED AS ABOVE,INCLUSIVE OF TIME RESTRICTIONS
# FOR SIMPLICITY, LET P = 2*PI*PITCH# R = 2*PI*ROLL
# CONSTRUCT THE TRANSFORMATION MATRIX, TSMV, GIVING DESIRED S/C AXES IN# TERMS OF SM COORDINATES. LET THE RESULTING ROWS EQUAL THE VECTORS XDC,# YDC,AND ZDC.
# * ( SIN(P) 0 -COS(P) ) (XDC)# TSMV = (-SIN(R)*COS(P) -COS(R) -SIN(R)*SIN(P)) = (YDC)# (-COS(R)*COS(P) SIN(R) -COS(R)*SIN(P)) (ZDC)
# XDC,YDC,ZDC ARE USED AS INPUT TO CALCGTA FOR THE EXTRACTION OF THE# EULER SET OF ANGLES WHICH WILL BRING THE SM INTO THE DESIRED# ORIENTATION. THIS EULER SET, OGC, IGC, AND MGC, MAY BE IDENTIFIED# AS THE DESIRED CDU ANGLES.
# (XDC) (OGC)# (YDC) ---) CALCGTA ---) (IGC)# (ZDC) (MGC)
# -# DEFINE THE VECTOR DELTACDU.
# - (OGC) (CDUX)# DELTACDU = (IGC) - (CDUY)# (MGC) (CDUZ)
# - - * -# COMPUTE ATTITUDE ERRORS, A, WHERE A = TGSC*DELTACDU## * (1 SIN(CDUZ) 0 ) THE GIMBAL ANGLES# Page 542# TGSC = (0 COS(CDUX)*COS(CDUZ) SIN(CDUX)) = TO SPACECRAFT AXES# (0 -SIN(CDUX)*COS(CDUZ) COS(CDUX)) CONVERSION MATRIX
# -# THE ATTITUDE ERRORS, A, ARE STORED ONE HALF SINGLE PRECISION IN# THE REGISTERS AK, AK1, AK2 AS INPUT TO NEEDLER, THE FDAI ATTITUDE# ERROR DISPLAY ROUTINE.
ATERJOB CAE FLAGWRD6 # CHECK FLAGWRD6 MASK OCT60000 # BITS 14, 15 EXTEND BZF +2 # OK - CONTINUE TC ENDOFJOB # SATURN STICK ON - KILL JOB CAF BIT10 # CHECK IF S/C CONTROL EXTEND # OF SATURN PANEL RAND CHAN30 # SWITCH IS ON EXTEND BZF STRSAT # IT IS - GO STEER CCS SATSW # IT IS NOT - WAS IT ON LAST CYCLE TC ATTDISP # NO - CONTINUE TC ATRESET # YES - REINITIALIZE NEEDLER TC ATRESET # YES - REINITIALIZE NEEDLERATTDISP CS RPSTART # PITCH/ROLL START TIME AD TIME1 EXTEND BZMF NOPOLY # IF MINUS THEN ATTITUDE HOLD TS MPAC # MPAC=TIME1-RPSTART TS SPOLYARG # SAVE FOR USE IN ROLL CALCULATION AD POLYSTOP # NEG PITCHOVER TIME IN CSECS EXTEND BZMF +2 TC NOPOLY # GO TO ATTITUDE HOLD CA TIME2 EXTEND BZMF +2 TC NOPOLY # GO TO ATTITUDE HOLD CAE POLYNUM TS L CAF COEFPOLY # EVALUATE PITCH POLYNOMIAL TC POWRSERS # SCALED TO 32 REVOLUTIONS
CA ZERO # RETURN WITH PITCH(32REV) TS MODE # STORED MPAC, MPAC +1 TC INTPRET SETPD SL # 32(PITCH(32REV))=PITCH(REV) 0 5 PUSH # LET P(RAD)=2*PI*PITCH(REV) GOTO ATTDISP1 # AROUND SETLOC# Page 543# *# CONSTRUCT SM TO S/C MATRIX, TSMV
SETLOC P11TWO BANK # 36 IN COL., 34 IN DISK
COUNT 36/P11
ATTDISP1 COS DCOMP STODL 14D # -.5*COS(P) SIN STODL 10D # .5*SIN(P) ZEROVECS STORE 12D # 0
# EVALUATE ROLL = LAUNCHAZ-AZIMUTH-.5+SATRLRT*T SLOAD DMP SPOLYARG # TIME1 - RSPSTART ,CSECS B-14. SATRLRT SL DSU 14D DPHALF DAD DSU # ASSUMING X(SM) ALONG LAUNCH AZIMUTH, LAUNCHAZ # LAUNCHAZ = ANGLE FROM NORTH TO X(SM). AZIMUTH # AZIMUTH = -ANGLE FROM NORTH TO Z(S/C) RTB # DETERMINE IF ROLLOUT RLTST # IS COMPLETEDATTDISPR PUSH COS # CONTINUE COMPUTING TSMV PUSH # LET R(RAD) = 2*PI*ROLL(REV) DMP SL1 14D STODL 22D # -.5*COS(R)*COS(P) DCOMP STORE 18D # -.5*COS(R) DMP SL1 10D STODL 26D # -.5*COS(R)*SIN(P) SIN PUSH STORE 24D # .5*SIN(R) DMP SL1 14D STODL 16D # -.5*SIN(R)*COS(P) DCOMP DMP SL1 10D STOVL 20D # -.5*SIN(R)*SIN(P) 10D
# FROM TSMV FIND THE HALF UNIT VECTORS XDC,YDC,ZDC = INPUT TO CALCGTA# Page 544 UNIT STOVL XDC # XDC = .5*UNIT(SIN(P),0,-COS(P)) 16D UNIT STOVL YDC # YDC = .5*UNIT(-SIN(R)*COS(P),-COS(R), 22D # -SIN(R)*SIN(P)) UNIT STCALL ZDC # ZDC = .5*UNIT(-COS(R)*COS(P),SIN(R), CALCGTA # -COS(R)*SIN(P))
# CALL CALCGTA TO COMPUTE DESIRED SM ORIENTATION OGC,IGC,AND MGC# - - -# FIND DIFFERENCE VECTOR DELTACDU = OGC-CDUX
# ENTER HERE IF ATTITUDE HOLD
NOPOLYM VLOAD PUSH # OGC IGC OGC # CHANGE IGC TO MGC FOR COMPATIBILITY PUSH CALL # MGC OGC CDUTRIG # WITH Y,Z,X ORDER OF CDUSPOT VLOAD RTB # - DPHI OGC-CDUX ,PD4 2 # DELTACDU = DTHETA = IGC-CDUY , 0 V1STO2S # DPSI MGC-CDUZ , 2 STOVL BOOSTEMP ZEROVECS STOVL 0 CDUSPOT RTB RTB V1STO2S DELSTOR STODL 10D SINCDUZ DMP SL1 0 DAD SR2 # CHANGE SCALE OF AK TO 2REVS 4 GOTO ATTDISP2
SETLOC P11ONE BANK COUNT 34/P11
ATTDISP2 STODL 16D # 16D, .5(DPHI + DTHETA*SIN(CDUZ)) COSCDUZ DMP PUSH 0 DMP SL1 COSCDUX PDDL DMP# Page 545 SINCDUX 2 DAD SL1 STADR STODL 17D # 17D, .5(DTHETA*COS(CDUX)*COS(CDUZ) DMP SL1 # +DPSI*SIN(CDUX)) SINCDUX PDDL DMP COSCDUX 2 DSU SL1 STADR STORE 18D # 18D, .5(-DTHETA*SIN(CDUX)*COS(CDUZ) TLOAD # +DPSI*COS(CDUX)) 16D STORE AK # STORE ATTITUDE ERRORS IN AK,AK1,AK2 EXIT
CA SATSW CCS A # CHK TAKEOVER STATUS TC SATOUT # POS - DISPLAY ONLY TC AKLOAD # 0 STORE BIASSTEERSAT TC INTPRET # NEG STEER L/V TLOAD TAD BIASAK AK STORE AK # AKS = AKS - STORED BIAS EXIT CA AK TC RESCALES TS AK CA AK1 TC RESCALES TS AK1 CA AK2 TC RESCALES TS AK2# DISPLAY ATTITUDE ERRORS ON FDAI VIA NEEDLER
SATOUT TC BANKCALL CADR NEEDLERATERSET CAF OCT31 # DELAY .25 SEC TC BANKCALL # EXECUTION + DELAY =.56SEC APPROX CADR DELAYJOB TC ATERJOB # END OF ATT ERROR DISPLAY CYCLE
AKLOAD CS AK # STORE AKS TS BIASAK # INTO BIAS CS AK1 # COMPLEMENTED TS BIASAK +1# Page 546 CS AK2 TS BIASAK +2 CS BIT1 # SET SW TS SATSW # TO STEER TC STEERSAT # GO STEERSTRSAT CA SATSW # CHECK IF NEEDLER EXTEND # HAS BEEN INITIALIZED BZMF ATTDISP # YES - CONTINUEATRESET CS RCSFLAGS # NO - SET MASK BIT3 # INITIALIZATION SW ADS RCSFLAGS # FOR NEEDLER TC BANKCALL # AND GO CADR NEEDLER # DO IT CAF REVCNT # OCT 6 TC BANKCALL # DELAY JOB CADR DELAYJOB # 60 MS -WAIT TILL IMUERRCNTR ZEROED CCS SATSW # CHECK SW STATUS TC TAKEON # POS STEER INIT. TC +1 # 0 RETURN TO DISPLAY CA BIT1 # NEG RETURN TO DISPLAY TS SATSW # SW = DISPLAY ON CS BIT9 # DISABLE EXTEND # SIVB WAND CHAN12 # TAKEOVER TC SATOUT # DISPLAYTAKEON CAF BIT9 # ENABLE EXTEND # SIVB WOR CHAN12 # TAKEOVER CA ZERO # INDICATE NEEDLER TS SATSW # WAS INITIALIZED TC SATOUTS11.1 VLOAD ABVAL VN STOVL VMAGI # VI SCALED 2(7) IN METERS/CSEC RN UNIT DOT VN SL1 STODL HDOT RPAD BOF VLOAD AMOONFLG EARTHALT RLS ABVAL SR2EARTHALT BDSU 36D STORE ALTI RVQDELSTOR CA BOOSTEMP# Page 547 EXTEND # STORE DELTACDU INTO PDL 0,2,4 MSU MPAC INDEX FIXLOC TS 0 CA BOOSTEMP +1 EXTEND MSU MPAC +1 INDEX FIXLOC TS 2 CA BOOSTEMP +2 EXTEND MSU MPAC +2 INDEX FIXLOC TS 4 TCF DANZIGRLTST CA MPAC # DETERMINE IF ROLLOUT EXTEND # IS COMPLETED MP SATRLRT +1 EXTEND BZMF DANZIG # UNLIKE SIGNS STILL ROLLING EXTEND # ROLLOUT COMPLETED DCA MBDYTCTL +2 # ZERO OUT ROLL CONTRIBUTION DXCH MPAC TC DANZIGNOPOLY TC INTPRET # COMES HERE IF SETPD GOTO # ATTITUDE HOLD 0 NOPOLYMCOEFPOLY ADRES POLYLOCV06N62 VN 0662RESCALES EXTEND # RESCALE AK S FOR MP SATSCALE # NEW HARDWARE DDOUBL # SCALING FOR DDOUBL # STEERING TC Q # SATURN# SATURN TAKEOVER FUNCTION# ************************
# PROGRAM DESCRIPTION
# MOD NUMBER 1# MOD BY ELIASSEN
# FUNCTIONAL DESCRIPTION
# DURING THE COASTING PHASE OF SIVB ATTACHED, THE# ASTRONAUT MAY REQUEST SATURN TAKEOVER THROUGH# EXTENDED VERB 46 (BITS 13,14 OF DAPDATR1 SET ).# THE CMC REGARDS RHC COMMANDS AS BODY-AXES RATE# COMMANDS AND IT TRANSMITS THESE TO SATURN AS DC# Page 548# VOLTAGES. THE VALUE OF THE CONSTANT RATE COMMAND# IS 0.5 DEG/SEC. AN ABSENCE OF RHC ACTIVITY RE-# SULTS IN A ZERO RATE COMMAND.
# THE FDAI ERROR NEEDLES WILL INDICATE THE VALUE# OF THE RATE COMMAND.
# CALLING SEQUENCE## DAPFIG +9D TC POSTJUMP# CADR SATSTKON
# SUBROUTINES CALLED
# ENDEXT# IBNKCALL# STICKCHK# NEEDLER# T5RUPT# RESUME
# ASTRONAUT REQUESTS
# ENTRY - VERB 46 ENTER# (CONDITION - BITS 13, 14 OF DAPDATR1 SET)## EXIT - VERB 48 ENTER (FLASH V06N46)# VERB 21 ENTER AXXXX ENTER WHERE A=0 OR 1# VERB 34 ENTER# VERB 46 ENTER
# NORMAL EXIT MODE
# VERB 46 ENTER (SEE ASTRONAUT ABOVE)
# ALARM OR ABORT EXIT MODES
# NONE
# OUTPUT
# SATURN RATES IN CDUXCMD, CDUYCMD, CDUZCMD
# ERASABLE INITIALIZATION
# DAPDATR1 (BITS 13,14 MUST BE SET)
# DEBRIS
# CENTRALS# Page 549# CDUXCMD, CDUYCMD, CDUZCMD
BANK 43 SETLOC EXTVERBS BANK
COUNT 23/STTKESATSTKON EXTEND DCA 2REDOSAT INHINT DXCH T5LOC CAF POSMAX TS TIME5 CS FLAGWRD6 # TURN ON BITS 15,14 OF MASK RELTAB11 # FLAGWRD6 ADS FLAGWRD6 # SATSTICK CONTROL OF T5 TC IBNKCALL # ZERO JET CHANNELS IN 14 MS AND THEN CADR ZEROJET # LEAVE THE T6 CLOCK DISABLED RELINT TC GOPIN # EXIT THUS BECAUSE WE CAME VIA V46
EBANK= BODY32REDOSAT 2CADR REDOSAT
SBANK= LOWSUPER BANK 32 SETLOC P11FOUR BANK
REDOSAT LXCH BANKRUPT # ALSO COMES HERE FOR RESTARTS EXTEND QXCH QRUPT CS RCSFLAGS # TURN ON BIT3 OF RCSFLAGX MASK BIT3 # FOR ADS RCSFLAGS # NEEDLER INITIALIZATION TC IBNKCALL CADR NEEDLER # DISABLE IMU ERR COUNTERS ETC. CAF BIT9 # SIVB EXTEND # TAKEOVER WOR CHAN12 # ENABLE EXTEND # SET UP T5 CYCLE DCA 2SATSTCK DXCH T5LOC CAF 100MST5 # IN 100 MSECS TS TIME5 TCF RESUME # END OF SATURN STICK INITIALIZATION
# THIS SECTION IS EXECUTED EVERY 100 MSECS# Page 550SATSTICK LXCH BANKRUPT EXTEND QXCH QRUPT
CAF 2SATSTCK # SET UP RUPT TS T5LOC # LO ORDER LOC SET CAF 100MST5 # 100 MSECS TS TIME5 CAF STIKBITS EXTEND RXOR CHAN31 # CHECK IF MAN ROT BITS SAME MASK STIKBITS TC IBNKCALL # SET RATE INDICES CADR STICKCHK # FOR PITCH YAW AND ROLL
INDEX RMANNDX # SET SATURN RATES CA SATRATE TS AK # ROLL INDEX PMANNDX CA SATRATE TS AK1 # PITCH INDEX YMANNDX CA SATRATE TS AK2 # YAW
TC IBNKCALL # FOR SATURN INTERFACE AND FDAI DISPLAY CADR NEEDLER TCF RESUME # END OF SATURN STICK CONTROL
STIKBITS OCT 00077100MST5 DEC 16374 EBANK= BODY32SATSTCK 2CADR SATSTICK