# Copyright: Public domain. # Filename: P40-P47.agc # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055. # It is part of the source code for the Command Module's (CM) # Apollo Guidance Computer (AGC), for Apollo 11. # Assembler: yaYUL # Contact: Ron Burkey . # Website: www.ibiblio.org/apollo. # Pages: 684-736 # Mod history: 2009-05-11 RSB Adapted from the Colossus249/ file # of the same name, using Comanche055 page # images. # 2009-05-20 RSB In S20.1, a DMP DDV was corrected to DMPR DDV. # 2009-05-22 RSB In BESTTRIM, TC PACTOFF corrected to # TS PACTOFF. # 2009-05-23 RSB Prior to the 2CADR at T5IDLDAP, added an # SBANK. # # 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 684 # PROGRAM DESCRIPTION ** P40CSM ** EBANK= DAPDATR1 BANK 31 SETLOC P40S BANK COUNT 24/P40 P40CSM TC DOWNFLAG ADRES ENG2FLAG TC INTPRET SLOAD BOFF ECSTEER # IS THIS AN EXTERNAL DELTA V BURN XDELVFLG P40S/C # NO CSTEER = ECSTEER DLOAD # YES CSTEER = ZERO HI6ZEROS P40S/C STODL CSTEER FENG # SET UP THRUST FOR P40 20,000 LBS P40S/F STODL F # P41 ENTERS HERE TIG # ORIGINAL TIG MAY BE SLIPPED BY P40S/SV STORE NOMTIG # SET ORIGINAL TIME OF IGNITION FOR S40.9 EXIT TC BANKCALL CADR R02BOTH # IMU STATUS CHECK P40PVA TC INTPRET CALL S40.1 # COMPUTE VGTIG,UT CALL S40.2,3 # COMPUTE PREFERRED ATTITUDE SET EXIT PFRATFLG P40SXTY TCR SETMINDB -1 # NARROW DEADBAND FOR MANEUVER (EBANK6) RELINT TC BANKCALL CADR R60CSM # ATTITUDE MANEUVER CS ONE # FOR UPDATEVG TS NBRCYCLS TC UPFLAG ADRES TIMRFLAG # ALLOW CLOCKTASK TC P41/P40 TC P41/DSP # P41 P40TTOG CAF V06N40 # INITIALIZE FOR CLOCKTASK WHICH IS CALLED # Page 685 TS NVWORD1 # BELOW TC INTPRET VLOAD ABVAL # FOR R2 VGTIG STODL VGDISP HI6ZEROS STORE DVTOTAL EXIT EXTEND DCA STEERADS # SET FOR UPDATEVG AND TEST FOR STEERING DXCH AVEGEXIT # AFTER AVERAGE G P40GMB CAF P40CKLS2 # (4.1 PROTECTION) TC BANKCALL CADR GOPERF1 TCF POST41 # V34 TCF TST,TRIM # V33 TRIMONLY CS BIT1 # SET MRKRTEMP FOR GIMBAL TRIM (-1) +1 TS MRKRTMP # ENTRY FROM TST,TRIM CAF ZERO # SET CNTR +0 FOR RESTART LOGIC IN S40.6 TS CNTR # +0 SAYS NORMAL ENTRY # +1 (PRE40.6) SAYS RESTART ENTRY CAF ONE TC WAITLIST EBANK= DAPDATR1 2CADR S40.6 CCS MRKRTMP # TEST TO FIND TIME TO WAIT FOR GIMBAL TEST CAF 18SEC # PLUS, DELAY FOR 18 SECONDS TCF +2 # HOLE CAF 5SEC # DELAY FOR TRIM ONLY TASK TC BANKCALL CADR DELAYJOB TC 2PHSCHNG OCT 40026 # 6.2 = PRE40.6(-0CS), CLOKTASK(100CS) OCT 00234 # 4.23 = P40S/SV (PRIO12) P40S/RS CAF ONE TC WAITLIST # P41/SDP EBANK= TIG 2CADR CLOKTASK RELINT P40S/SV TCR E7SETTER # JOB, 4.23 PRETECTS, PREO12 EBANK= TIG # Page 686 TC INTPRET DLOAD DSU TIG SEC29.96 STORE TDEC1 CALRB # RETURN IN BASIC MIDTOAV1 TCF +2 TC P40SNEWM # INTEGRATION TIME GREATER THAN ALLOWED P40SET EXTEND DCA MPAC # DELTA TIME TO PREREAD (INT.INIT.) DXCH P40TMP EXTEND DCS 5SECDP # FOR TIGBLNK DAS P40TMP EXTEND DCA P40TMP TC LONGCALL EBANK= TIG 2CADR TIGBLNK TC PHASCHNG OCT 20214 # 4.21 = TIGBLNK (P40TMP CS) TCF ENDOFJOB P40BLNKR TC BANKCALL CADR CLEANDSP # REMOVE RESIDUE TCF ENDOFJOB EBANK= TIG P40SNEWM EXTEND DCA PIPTIME1 DXCH TIG # SET NEW TIG FOR 06 40 EXTEND DCA SEC29.96 DAS TIG TCF P40SET # FOR LONGCALL OF TIG-30 (OR -35) EBANK= DAPDATR1 POSTBURN CAF V16N40 TC BANKCALL CADR REFLASH TCF POST41 # V34 GO FINISH TCF P40RCS # PROCEED TCF POSTBURN # RECYCLE P40RCS EXTEND # V99N40 ENTERS HERE ON A P40 BYPASS SPS DCA ACADN85 DXCH AVEGEXIT CAF 2SECS # WAIT FOR CALCN85 VIA AVEGEXIT TC BANKCALL # Page 687 CADR DELAYJOB P40MINDB TCR SETMINDB -1 RELINT TIGNOW TC PHASCHNG OCT 05024 # TYPE C GROUP 4 BELOW FOR NOUN 85 OCT 20000 # PRIO 20 CAF V16N85B TC BANKCALL CADR REFLASH TCF POST41 # FINISH P40/P41 TCF POST41 # V03 PROCEED WITH REST OF THE CLEAN-UP TCF TIGNOW # V32 NOT GSOP RESPONSE BUT REDISPLAY N85 POST41 EXTEND DCA SERVCADR DXCH AVEGEXIT TCF GOTOPOOH MINDB DEC 46 MAXDB DEC 455 EBANK= DAPDATR1 -1 INHINT SETMINDB CA CDUX # ROUTINE FOR SETTING TS THETADX # THE MINIMUM DEADBAND EXTEND # IN AUTOPILOT DCA CDUY DXCH THETADY CA MINDB # SHOULD BE CALLED UNDER TS ADB # INTERRUPT INHIBITED CS BIT4 # EBANK = E6 MASK DAPDATR1 TS DAPDATR1 TC Q EBANK= DAPDATR1 -1 INHINT SETMAXDB CA MAXDB # ROUTINE FOR SETTING TS ADB # THE MAXIMUM DEADBAND IN AUTOPILOT CS DAPDATR1 MASK BIT4 # SHOULD BE CALLED UNDER ADS DAPDATR1 # INTERRUPT INHIBITED TC Q # EBANK = E6 # Page 688 # PROGRAM DESCRIPTION ** P41CSM ** SETLOC P40S2 BANK EBANK= DAPDATR1 COUNT 24/P41 P41CSM TC UPFLAG ADRES ENG2FLAG # SET FOR RCS TC INTPRET DLOAD HI6ZEROS # FOR P41 CSTEER =0 STORE CSTEER DLOAD BON FRCS2 # 2JET THRUST FOR S40.1 NJETSFLG P40S/F # NJETS = 1 2-JET DAD GOTO # NJETS = 0 4-JET FRCS2 P40S/F SETLOC P40S BANK P41/P40 CS MODREG MASK ONE # P41EXITS AT CALL LOC +1 EXTEND BZF +2 # P41 INCR Q # P40 EXITS AT CALL LOC +2 TC Q TTG/0 CAF PRIO20 # TASK (4.4 PROTECTS IN P41) TC NOVAC EBANK= DAPDATR1 2CADR TIGNOW P40CLK TC DOWNFLAG ADRES TIMRFLAG TCF TASKOVER P41/DSP CAF V06N85B # SET UP FOR NONFLASH V 06 N85 BY CLOCKJOB TS NVWORD1 TC INTPRET # Page 689 CALL # COMPUTE P40CNV85 # VGTIG IN CTRL COORDS EXIT EXTEND # DO CONTROL COORD CALCULATION AFTER AVEG DCA ACADN85 DXCH AVEGEXIT TC 2PHSCHNG OCT 40036 # 6.3=CLOKTASK(100CS) OCT 234 # 4.23=P40S/SV(PRIO12) TCF P40S/RS P41REDSP CAF V16N85B # ENTER FROM P41 SIDE OF TIGAVEG TS NVWORD1 # REDISPLAY NONFLASHING CAF SEC29.96 +1 TC WAITLIST EBANK= DAPDATR1 2CADR TTG/0 CS BIT3 TCF TTGPHS P40CNV85 STQ SETPD QTEMP1 0 VLOAD PUSH VGPREV # EQUALS VGTIG (TARGETTING INPUT) CALL S41.1 STCALL VGBODY QTEMP1 EBANK= DAPDATR1 CALCN85 TC INTPRET CALL UPDATEVG # NEW VG, S40.8 (+MAYBE S40.9) CALL P40CNV85 # COMPUTE VGBODY EXIT TC SERVXT FENG 2DEC 9.1188544 B-7 # SPS THRUST (20500LBS), SC.AT B+7 NEWT/E4 FRCS2 2DEC .087437837 B-7 # RCS ULLAGE (199.6COS10 LBS), SC.AT # B+7 NEWTONS/E+4 SEC24.96 DEC 2496 SEC29.96 2DEC 2996 18SEC DEC 1800 P40CKLS2 OCT 204 40CST5 OCT 37730 # 40 CS FOR THE T5 CLOCK OCT12 = TEN # Page 690 V1683 VN 1683 V06N85B VN 0685 V16N85B VN 1685 V06N40 VN 0640 V16N40 VN 1640 OCT27/24 OCT 27 OCT53 OCT 53 OCT35 OCT 35 EBANK= DAPDATR1 T5IDL24 2CADR T5IDLOC 3MDOT DEC 86.6175796 B-16 # 3SEC MASS LOSS (63.8 LBS/SEC), SC.AT # B+16 KB/SEC (NOT, EMDOT IS PAD-LOADED, # BUT 3MDOT IS NOT A CRITICAL QUANTITY, SO # IT CAN REMAIN IN FIXED MEMORY) TST,TRIM CAF BIT1 # SET UP FOR GIMB DRIVE TEST AND TRIM (+1) TCF TRIMONLY +1 TIGBLNK CAF 5SEC # CALL TIGAVEG IN FIVE SEC AT TIG-30 TC WAITLIST EBANK= TIG 2CADR TIGAVEG CAF ZERO # DISABLE HERE, NOT IN P40BLNKR TS NVWORD1 CAF PRIO14 TC NOVAC EBANK= TIG 2CADR P40BLNKR # DON'T PROTECT -- RESTARTS BLANK DSKY CS OCT37 # 4.37 = TIGAVEG (500CS) P40TSK TC NEWPHASE OCT 4 TC TASKOVER EBANK= TIG ACADN83 2CADR CALCN83 EBANK= TIG SERVCADR 2CADR SERVEXIT EBANK= DAPDATR1 ACADN85 2CADR CALCN85 # Page 691 # PROGRAM DESCRIPTION ** P47CSM ** COUNT 24/P47 EBANK= TIG P47CSM TC BANKCALL # IMU STATUS CHECK CADR R02BOTH TC INTPRET CALRB MIDTOAV2 CA MPAC +1 # DELTA TIME TO RPEREAD (LESS THAN 100 TS P40TMP # CS, WITH A TPAGREE, INT.INIT.) TC WAITLIST EBANK= TIG 2CADR TIGON # TIGON IS REQUIRED TO MATHCHTAT AND AVEG TC PHASCHNG OCT 40574 # A, 4.57 = TIGON (P40TMP CS) TCF ENDOFJOB EBANK= P40TMP TIGON EXTEND DCA ACADN83 DXCH AVEGEXIT CAF PRIO30 # FORCE ZEROING OF N83 BEFORE SERVICER TC NOVAC EBANK= TIG 2CADR P47BODY CS BIT2 # 4.2 = PRECHECK (-0CS), P47BODY (PRIO30) TCF TTGPHS EBANK= TIG CALCN83 TC INTPRET SETPD # SET UP PUSHLIST FOR S41.1 0 VLOAD VAD DELVCTL DELVREF STORE DV47TEMP # FOR COPYCYCLE BELOW PUSH CALL S41.1 STCALL DELVIMU S11.1 # CALC. VI, H, HDOT FOR NOUN 62 EXIT TC PHASCHNG OCT 10035 # Page 692 CAF FIVE TC GENTRAN ADRES DV47TEMP ADRES DELVCTL TC SERVXT P47BODY TC INTPRET VLOAD HI6ZEROS STORE DELVIMU # CLEAR DISPLAY AND ACCUMULATOR STORAGE STORE DELVCTL # UPON INITIATION OR ENTER RESPONSE EXIT P47BOD CAF PRIO15 # LOWER PRIO THAN CALCN83 (20) TC PRIOCHNG # TO PREVENT INTERRUPTION OF CALCN83 TC PHASCHNG OCT 05024 # TYPE C GROUP 4 BELOW FOR NOUN 83 OCT 15000 # PRIO 15 P47/DSP CAF V1683 TC BANKCALL CADR GOFLASH TC GOTOPOOH TC GOTOPOOH TCF P47BODY # RECYCLE -- CLEAR ACCUMULATED VELOCITY # Page 693 # ROUTINE ** TIG-30 ** DESCRIPTION EBANK= TIG COUNT 24/P40 TIGAVEG TC P41/P40 # TASK (4.37 PROTECTS) TCF P41REDSP CAF V06N40 # UNBLANK DISPLAY TS NVWORD1 CAF SEC24.96 TC WAITLIST EBANK= TIG 2CADR TIG-5 CS SIX # 4.6 = TIG-5 (2496CS), PRECHECK (-0CS) TTGPHS TC NEWPHASE # ENTRY FROM P41REDSP (P41) WITH A=-4, OR OCT 4 # FROM TIGON (P47) WITH A=-1 PRECHECK CCS PHASE5 # HAS SERVICER BEEN RESTARTED TCF TASKOVER # YES, DON'T START ANOTHER ONE TC POSTJUMP CADR PREREAD # Page 694 # ROUTINE ** TIG-5 ** DESCRIPTION EBANK= TIG TIG-5 CAF 5SEC TC WAITLIST EBANK= DAPDATR1 2CADR TIG-0 CS BIT9 # WILL CAUSE V99 FLASH TS NVWORD1 TC 2PHSCHNG OCT 40074 # A, 4.7 = TIG-0 (500CS) OCT 00033 # A, 3.3 = S40.13 (PRIO20) CAF PRIO20 TC FINDVAC EBANK= TGO 2CADR S40.13 TCF TASKOVER # Page 695 # ROUTINES ** TIG-0 ** AND ** IGNITION ** DESCRIPTION EBANK= DAPDATR1 # TASK, 4.7 PHASE, OR 4.77 (-0CS) IN R40 TIG-0 CS FLAGWRD7 # SET IGN FLAG MASK BIT13 ADS FLAGWRD7 CAE FLAGWRD7 # CHECK ASTN FLAG FOR V99 RESPONSE MASK BIT12 EXTEND BZF TASKOVER # WAIT FOR V99P CAF V06N40 # CLEAR THE V99 (IN CASE OF A RESTART TS NVWORD1 # DURING THE V99 SEQUENCE) TC PHASCHNG # V99P HAS COME ALREADY, DO IGNITION NOW OCT 00614 # A, 4.61 = IGNITION (-0CS) TBASE OLD IGNITION CAE CDUX # SAVE FOR ROLL DAP REFERENCE OGAD TS OGAD # V99PJOB (CLOCKJOB) SETS UP IGNITION EXTEND # TASK (4.61 PROTECTION) DCA TIME2 # FOR RESTARTS DXCH TEVENT CS FLAGWRD5 # SET ENGONFLG MASK BIT7 ADS FLAGWRD5 SPSON CAF BIT13 # TURN ON SPS ENGINE EXTEND WOR DSALMOUT IMPULCHK CAF BIT9 # CHECK FOR IMPULSIVE BURN MASK FLAGWRD2 CCS A TCF IMPLBURN # IMPULSIVE CS FLAGWRD6 # NON-IMPULSIVE, SET STRULLSW FOR STEERULL MASK BIT13 ADS FLAGWRD6 PREPTVC CS OCT60000 # RESET T5 BITS MASK FLAGWRD6 TS FLAGWRD6 EXTEND # KILL RCS DCA T5IDL24 DXCH T5LOC CS THREE # 4.3 = DOTVCON (40CS) TC NEWPHASE OCT 4 # Page 696 TC FIXDELAY DEC 40 # 0.4 SECOND DELAY FOR THRUST BUILDUP DOTVCON CS BIT1 # SET TVCPHASE = TVCDAPON CALL (FRESHDAP) TS TVCPHASE CAF ZERO # SET TVCEXECUTIVE PHASE TS TVCEXPHS CS OCT60000 # SET T5 BITS TO INDICATE TVC TAKEOVER .... MASK FLAGWRD6 # BITS 15,14 = 10 AD BIT15 TS FLAGWRD6 CAF THREE # 6.3 = CLOKTASK (100CS), DROPPING PRE40.6 TS L # WHICH IS HANDLED NOW BY REDOTVC COM DXCH -PHASE6 EXTEND # STORE RCS ATTITUDE ERRORS FOR USE IN DCS ERRORY # INITIALIZING TVC ATTITUDE ERRORS DXCH ERRBTMP CS FIVE # 4.5 = DOSTRULL (160 CS) TC NEWPHASE OCT 4 CAF POSMAX # SET TIME5 FOR STARTING RIGHT AWAY TS TIME5 EXTEND DCA TVCON2C # (TVCDAPON) DXCH T5LOC # (KILLS RCS DAP) TC FIXDELAY # 0.4 + 1.6 = 2.0 SEC FOR ULLAGE-OFF AND DEC 160 # STEERING (IF NON-IMPULSIVE) DOSTRULL CAF BIT13 # CHECK STRULLSW FOR IMPULSIVE BURN MASK FLAGWRD6 CCS A TCR STEERULL # NON-IMPULSIVE, STEERING AND ULLAGE OFF TCR ULAGEOFF # ULLAGE OFF (ONLY, OR AGAIN) EXTEND DCA NEG0 # KILL GROUP 4 (DP NEG0 = -0,+0) DXCH -PHASE4 ENDIGN TCF TASKOVER STEERULL CS FLAGWRD2 # SET STEERSW MASK BIT11 ADS FLAGWRD2 # Page 697 ULAGEOFF CAF ZERO EXTEND WRITE CHAN5 # ZERO CHANNEL 5 TC Q IMPLBURN CS BIT13 # RESET STRULLSW (COULD BE AN IMPULSIVE MASK FLAGWRD6 # ENGINE FAIL) TS FLAGWRD6 TCR E7SETTER EBANK= TIG EXTEND # PREPARE FOR R1 OF V06N40 (CLOCKTASK) DCA TGO DXCH TIG EXTEND DCA TIME2 DAS TIG TC 2PHSCHNG OCT 40153 # A, 3.15 = ENGINOFF (TGO+1) .... NOT GROUP OCT 07014 # C, DELTAT NEXT, TASK BELOW, IN DEC -0 # -0 CS EBANK= DAPDATR1 2CADR IMPLCONT CAE TGO +1 # (TPAGREE IN S40.13, LESS THAN 600CS) TC WAITLIST EBANK= TGO 2CADR ENGINOFF IMPLCONT CS BIT9 # RESET IMPULSW, ENGINOFF IS NOW SET UP MASK FLAGWRD2 TS FLAGWRD2 TCR E6SETTER EBANK= DAPDATR1 CAF ZERO # SET UP V97VCNTR IN CASE ENGINOFF (MASS-= TS V97VCNTR # BACK) ARRIVES BEFORE TVCDAPON TCF PREPTVC EBANK= TGO # E7 FORCED BY 3.15SPOT VARIABLE DELTA-T ENGINOFF TCR E6SETTER # TASK, 3.15 PHASE (TGO+1 CS) GET E6 EBANK= DAPDATR1 CAE CSMMASS TS MASSTMP # COPYCYCLE FOR MASSBACK # Page 698 TC 2PHSCHNG OCT 00003 # KILL GROUP 3 PROTECTION OF ENGINOFF, DO OCT 40634 # A, 4.63 = DOSPSOFF (-0CS) DOSPSOFF TCR SPSOFF # SHUTDOWN SPS, MASS UPDATES, ETC. CS OCT27/24 # (OCTAL 27) TC NEWPHASE OCT 4 # 4.27 = DOTVCRCS (250 CS) TC FIXDELAY # 2.5 SECOND DELAY FOR SPS TAILOFF DEC 250 DOTVCRCS TCR SETMAXDB # WIDE DEADBAND FOR CUTOFF TRANSIENT TC IBNKCALL # SET UP RCS DAP (KILLS TVCDAPS, SETS T5 CADR RCSDAPON # BITS, WAITS 0.6SEC FOR TVCEXEC DIE) TC IBNKCALL # UPDATE WEIGHT/G AND MASS-PROPERTIES FOR CADR MASSPROP # RCS DAP STARTUP IN 0.6 SECONDS TCR TVCZAP # WIPE OUT TVC, TURN OFF CLOKTASK TC PHASCHNG OCT 00354 # A, 4.35 = POSTBURN (NOVAC, PRIO12) CAF PRIO12 # SET UP POSTBURN V16N40 JOB TC NOVAC EBANK= DAPDATR1 # (SET MAXDB IN POST41) 2CADR POSTBURN TCF TASKOVER EBANK= DAPDATR1 SPSOFF EXTEND # ESTABLISH SPSOFF TEVENT DCA TIME2 DXCH TEVENT CS BIT7 # RESET ENGONFLG MASK FLAGWRD5 TS FLAGWRD5 # (RESTARTS WILL SHUT DOWN SPS NOW) CS BIT13 # SHUT DOWN SPS ENGINE EXTEND WAND DSALMOUT CAF BIT14 # ISSUE SIV CUTOFF COMMAND EXTEND # FOR POSSIBLE BACK-UP USE WOR CHAN12 MASSBACK CAE V97VCNTR # RESTORE PART OF PRE-DECREMENTED MASS # V97CNTR = VCNTR UNLESS V97 IS # ACTIVE. ONLY V97CNTR IS THEN RIGHT. EXTEND # VCNTR COUNTS 1/2-SECONDS IN TVC EXEC MP EMDOT # MDOT, SC.AT B+3 KG/CS LXCH A # Page 699 EXTEND MP 1SEC # DEC 100 AD MASSTMP # CORRECTION IS ACCURATE TO 5 CS OF FLOW TS CSMMASS # (1.44 KG OR 0.4 BITS) CA TVCPHASE # CHECK IF OK FOR TRIM UPDATE AD ONE # THESE CHECKS ARE ONLY NEEDED EXTEND # FOR A LESS THAN 0.4 SEC BURN BZF BTRIMR # NO. INITIALIZATION NOT COMPLETE CS FLAGWRD6 # YES, CHECK IF TVC MASK OCT60000 EXTEND BZMF BTRIMR # NO, NOT TVC YET BESTTRIM CAE DELPBAR # UPDATE TRIMS WITH DELFILTER VALUES TS PACTOFF CAE DELYBAR TS YACTOFF BTRIMR TC Q EBANK= DAPDATR1 STEERADS 2CADR STEERING .6SECT5 OCT 37703 5SECDP DEC 0 # MAKE DP 5SEC 5SEC DEC 500 OCT02202 OCT 02202 # BITS 2, 8, 11 FOR CHANNEL 12 TVC/OPTICS EBANK= DAPDATR1 TVCON2C 2CADR TVCDAPON -1 INHINT TVCZAP CS OCT02202 # DISABLE TVC AND OPT ERR CNTRLS, REENGAGE EXTEND # OPTICS DAC WAND CHAN12 CS BIT1 # ENABLE T4RUPT OPTICS MONITOR .... PERMIT TS OPTIND # OPTICS-ZERO BUT NOT OPTICS-DRIVE CAF ZERO # CLEAR NVWORD1 IN CASE CLOCKJOB WAITING TS NVWORD1 CS BIT11 # CLEAR TIMRFLAG TO STOP CLOKTASK MASK FLAGWRD7 TS FLAGWRD7 TC Q EBANK= DAPDATR1 UPDATEVG STQ BON QTEMP1 XDELVFLG CALL40.8 SLOAD BMN NBRCYCLS SETUP.9 # Page 700 VLOAD VAD DELVSUM DELVREF STORE DELVSUMP EXIT CA ONE AD NBRCYCLS TS NBRCYCLP TC PHASCHNG # TYPE B RESTART RESTART BELOW AND 5.3 REREADACCS OCT 10035 CA NBRCYCLP TS NBRCYCLS TC INTPRET VLOAD DELVSUMP STORE DELVSUM CALL40.8 CALL S40.8 GOTO QTEMP1 SETUP.9 BON SLOAD FIRSTFLG SURELY.9 NBRCYCLP NORM VXSC # (NORM HANDLES ZERO PROPERLY) X1 BDT VSR* VAD 0 -14D,1 VGTEMP VSU DELVSUM STORE VGPREV SURELY.9 EXIT CAF PRIO10 TC FINDVAC EBANK= DAPDATR1 2CADR S40.9 TC 2PHSCHNG OCT 00051 # A, 1.5 = REDO40.9, PRIO 10 OCT 10035 TC INTPRET VLOAD RN # ACTIVE VEHICLE RADIUS VECTOR AT T1 STOVL RINIT # Page 701 VN # ACTIVE VEHICLE VELOCITY VECTOR AT T1 STODL VINIT PIPTIME STORE TNIT BDSU TPASS4 STOVL DELLT4 HI6ZEROS STODL DELVSUM HI6ZEROS STORE NBRCYCLS GOTO CALL40.8 EBANK= DAPDATR1 STEERING TC INTPRET CALL UPDATEVG EXIT CAF BIT9 # CHECK IMPULSW MASK FLAGWRD2 CCS A TCF +3 # PRE-IGNITE, REQUEST ENG-OFF, OR POST-OFF SERVXT TC POSTJUMP CADR SERVEXIT CAF BIT13 # CHECK ENGINE-ON/-OFF EXTEND RAND DSALMOUT EXTEND BZF SERVXT # ENGINE-OFF, SO PRE-IGNITE OR POST-OFF TCR E7SETTER EBANK= TIG INHINT EXTEND DCA TIG DXCH MPAC EXTEND DCS TIME2 DAS MPAC TCR DPAGREE CAE MPAC +1 # (LESS THAN 6 (OR 4) SECONDS TO GO) CCS A # PROTECT AGAINST NEG/ZRO W.L. CALL TCF +3 TCF +2 CAF ZERO AD ONE XCH L CA ZERO DXCH TGO CA TGO +1 TC WAITLIST # Page 702 EBANK= TGO 2CADR ENGINOFF TC 2PHSCHNG OCT 40153 # A, 3.15 = ENGINOFF (TGO+1) .... NOTE GROUP OCT 10035 # B, 5.3 = REREADAC, AND START BELOW TC DOWNFLAG # CLEAR IMPULSW, ENGINOFF IS NOW SET UP ADRES IMPULSW # RESTARTS OK TCF SERVXT # Page 703 # ROUTINE ** CLOKTASK ** DESCRIPTION EBANK= TIG CLOKTASK CAF BIT11 # IS TIMRFLAG SET MASK FLAGWRD7 CCS A TCF CLOCKON TC PHASCHNG OCT 00006 # KILL RESTART TC TASKOVER CLOCKON EXTEND DCA TIME2 DXCH TTOGO EXTEND DCS TIG DAS TTOGO SETCLOCK CAF 1SEC TC WAITLIST EBANK= TIG 2CADR CLOKTASK CCS NVWORD1 TCF +3 TCF SETTB6 TCF +1 CS V06N85B # CHECK FOR V06N85B (P41) AD NVWORD1 EXTEND BZF SETUPDYN # V06N85, SO UPDATE N85 FOR DYNAMIC DISP CAF PRIO27 TC NOVAC EBANK= DAPDATR1 2CADR CLOCKJOB SETTB6 CS TIME1 # SET GROUP6 TIMEBASE TS TBASE6 TCF TASKOVER SETUPDYN CAF PRIO27 # SET UP A JOB TO UPDATE N85 (FOR P41=V06) TC FINDVAC EBANK= DAPDATR1 2CADR DYNDISP TCF SETTB6 # CLOSE OUT CLOCKTASK # Page 704 DYNDISP TC INTPRET # UPDATE N85 FOR A DYNAMIC V06N85 IN P41. CALL # PRIOR TO BLANKING AND AVEG (V16N85) P40CNV85 EXIT TCF CKNVWRD1 # Page 705 # ROUTINE ** CLOCKJOB ** DESCRIPTION EBANK= DAPDATR1 CLOCKJOB CA CDUX TS CDUSPOTX CA CDUY TS CDUSPOTY CA CDUZ TS CDUSPOTZ TC BANKCALL CADR QUICTRIG CKNVWRD1 INHINT CCS NVWORD1 # DETERMINE FUNCTION, INDICATED BY NVWORD1 TCF NOFLASH TCF ENDOFJOB TCF ENGREQST # SPS ENGINE-ON-ENABLE V99 FLASH FAILDSP CAF V06N40 # SPS ENGINE-FAILED V97 FLASH TC BANKCALL CADR CLOCPLAY TCF V97T # TERMINATE TCF V97P # PROCEED TCF V97E # ENTER ENGREQST CAF V06N40 TC BANKCALL CADR CLOCPLAY # LINUS MAKES IT A REDO, INHINT OK TCF V99T # TERMINATE TCF V99P # PROCEED TCF V99E # ENTER NOFLASH CAE NVWORD1 # DISPLAY NVWORD1 NORMALLY TC BANKCALL CADR REGODSP E7SETTER CAF EBANK7 TS EBANK EBANK= TIG TC Q E6SETTER CAF EBANK6 # SET UP EBANK6 TS EBANK EBANK= DAPDATR1 TC Q EBANK= DAPDATR1 V99E TC 2PHSCHNG OCT 00006 # KILL PRE40.6/CLOKTASK PROTECTION OCT 05024 # C, PRIORITY NEXT, JOB BELOW # Page 706 OCT 27000 V99EJOB TCR TVCZAP -1 # WIPE OUT TVC, CLOKTASK TCF P40RCS # V16N85 POST-BURN OPERATIONS EBANK= DAPDATR1 V99T TC 2PHSCHNG # (ENTRY FROM V97T FLOW TOO) OCT 00006 # KILL PRE40.6/CLOKTASK PROTECTION OCT 05024 # C, PRIORITY NEXT, JOB BELOW OCT 27000 V99TJOB TCR TVCZAP -1 # WIPE OUT TVC, CLOKTASK TCF POST41 # AVEGEXIT, SETMAXDB, GOTOPOOH V99P INHINT CAE FLAGWRD7 # CHECK ASTN FLAG FOR PRIOR V99P MASK BIT12 CCS A TCF V99P/TIG # YES, THIS MUST BE A RESTART ENTRY ASTNV99P CAF BIT12 # SET ASTN FLAG ADS FLAGWRD7 CAE FLAGWRD7 # CHECK IGN FLAG FOR TIG-0 ARRIVAL MASK BIT13 EXTEND BZF V99P/TIG # NO, CLEAR THE V99 AND WAIT FOR TIG-0 ENDV99PI CAF BIT1 # TIG-0 HAS COME ALREADY TC WAITLIST # SET UP IGNITION HERE EBANK= DAPDATR1 2CADR IGNITION V99P/TIG CAF V06N40 # CLEAR THE V99 FLASH AND WAIT FOR TIG-0 TS NVWORD1 ENDV99P TCF ENDOFJOB EBANK= CSMMASS V97T TC 2PHSCHNG OCT 00006 # KILL GROUP 6 (CLOKTASK) OCT 40674 # A, 4.67 = V97TTASK (-0 CS), TBASE NOW CAF BIT1 TC TWIDDLE ADRES V97TTASK # KEEP EBANK6 FOR MASSES, SPSOFF, ETC. TCF ENDOFJOB EBANK= CSMMASS V97TTASK CAF ZERO # DISABLE CLOCKJOB TS NVWORD1 CAF 3MDOT # 3 SECONDS OF MDOT (2-4 SEC ENGFAIL AD CSMMASS # DETECTION) NOT LOST BECAUSE THRUST TS MASSTMP # FAILED. COPYCYCLE FOR MASSBACK # Page 707 TC PHASCHNG OCT 05014 # C, DELTAT NEXT, TASK BELOW, IN DEC -0 # -0 CS TCR SPSOFF # SHUTDOWN SPS ENGINE, MASS UPDATE, ETC. TC PHASCHNG OCT 00714 # A, 4.71 = V97TRCS (250 CS), TBASE OLD TC FIXDELAY # DELAY 2.5 SECONDS FOR (POSSIBLE) TAIL- DEC 250 # OFF (FALSE THRUST-LOSS) EBANK= DAPDATR1 V97TRCS TC IBNKCALL # RCS DAP IN 0.6SEC, SETTING T5 BITS TO CADR RCSDAPON # KILL TVCEXEC/TVCROLLDAP STARTS CAF PRIO27 # SET UP V99T FOR TVCZAP AND POST41 (SET- TC NOVAC # MAXDB AND GOTOPOOH) EBANK= DAPDATR1 # EBANK6 FOR SETMAXDB IN POST41 2CADR V99T ENDV97T TCF TASKOVER EBANK= V97VCNTR V97P TC PHASCHNG OCT 40734 # A, 4.73 = V97PTASK (-0 CS), TBASE NOW CAF BIT1 TC TWIDDLE ADRES V97PTASK TCF ENDOFJOB EBANK= V97VCNTR V97PTASK CAE V97VCNTR # GET MASS UPDATES (TVCEXEC) GOING AGAIN TS VCNTR # (ERRORS IF FLASE THRUST-LOSS AND/OR # POOR SYNC OF MANUAL ENGINE-ON AND # THE VERB 97 PROCEED) CAF V06N40 # REDISPLAY V06N40 TS NVWORD1 TC UPFLAG # SET IDLEFAIL TO ALLOW R41-BYPASS, IN ADRES IDLEFAIL # CASE OF UNFAVORABLE S40.8 SYNCH TC UPFLAG # SET STEERSW TO RE-ENABLE STEERING ADRES STEERSW TC PHASCHNG OCT 00134 # A, 4.13 = R40ENABL (200 CS), TBASE OLD TC FIXDELAY # WAIT 2 SECONDS, THEN DEC 200 EBANK= WHOCARES R40ENABL TC DOWNFLAG # RE-ENABLE R40 BY CLEARING IDLEFAIL ADRES IDLEFAIL TC PHASCHNG OCT 00004 # KILL GROUP 4 # Page 708 ENDV97P TCF TASKOVER EBANK= WHOCARES V97E TC PHASCHNG OCT 40534 # A, 4.53 = V97ETASK (-0 CS), TBASE NOW CAF BIT1 TC WAITLIST EBANK= TIG 2CADR V97ETASK TCF ENDOFJOB EBANK= TIG V97ETASK CS OCT24 # FORCE R1 OF V06N40 TO READ 59X59 TS TIG CAF V06N40 # REDISPLAY V06N40 TS NVWORD1 TCR E6SETTER # RETURN TO EBANK6 FOR REST OF V97ETASK EBANK= CSMMASS CAF 3MDOT # 3 SECONDS OF MDOT (2-4 SEC ENGFAIL AD CSMMASS # DETECTION) NOT LOST BECAUSE THRUST TS MASSTMP # FAILED....COPYCYCLE FOR MASSBACK TC PHASCHNG OCT 00754 # A, 4.75 = SPSOFF97 (-0 CS), TBASE OLD SPSOFF97 TCR SPSOFF TC PHASCHNG OCT 00114 # A, 4.11 = V97E40.6 (250 CS), TBASE OLD TC FIXDELAY # DELAY 2.5 SECONDS FOR (POSSIBLE) TAIL- DEC 250 # OFF (FALSE THRUST-LOSS) EBANK= DAPDATR1 V97E40.6 CAF BIT1 TC WAITLIST EBANK= CNTR 2CADR PRE40.6 # USE S40.6 RESTART ENTRY TO TRIM ENGINE TC IBNKCALL # RCS DAP IN 0.6SEC, SETTING T5 BITS TO CADR RCSDAPON # KILL TVCEXEC/TVCROLLDAP STARTS. # LEAVE NARROW DEADBAND FOR REIGNITE. TC 2PHSCHNG OCT 00026 # A, 6.2 = PRE40.6 (-0 CS), CLOKTASK (1 SEC) OCT 05014 # C, DELTAT NEXT, TASK BELOW, IN DEC -0 # -0 CS. QUICKIGN CS PRIO14 # CLEAR ASTNFLAG AND SET IGNFLAG FOR MASK FLAGWRD7 # IMMEDIATE V99 RESPONSE. AD BIT13 TS FLAGWRD7 TC FIXDELAY # DELAY TO ALLOW TIME FOR PRE40.6 # Page 709 DEC 30 V99FLASH CS BIT9 # CAUSE V99 TO FLASH TS NVWORD1 TC 2PHSCHNG OCT 40774 # A, 4.77 = TIG-0 (-0 CS) TBASE FOR PREPTVC OCT 00033 # A, 3.3 = S40.13 (PRIO 20) CAF PRIO20 # SET UP TIMEBURN TC FINDVAC EBANK= TGO 2CADR S40.13 ENDV97E TCF TASKOVER # WAIT FOR CLOCKJOB (IMMEDIATE) REACTION # TO FLASHING V99 RESPONSE. # MOD N02 LOG SECTION P40-P47 # MOD BY ZELDIN # # FUNCTIONAL DESCRIPTION # COMPUTE INITIAL THRUST DIRECTION(UT) AND INITIAL VALUE OF VG # VECTOR(VGTIG). # # CALLING SEQUENCE # L CALL # L+1 S40.1 # # NORMAL EXIT MODE # AT L+2 OF CALLING SEQUENCE (GOTO L+2) NORMAL RETURN OR # ERROR RETURN IF NOSOFLAG =1 # # SUBROUTINES CALLED # CSMPREC # INITVEL # CALCGRAV # MIDGIM # # ALARM OR ABORT EXIT MODES # L+2 OF CALLING SEQUENCE, UNSOLVABLE CONIC IF NOSOFLAG=1 # # ERASABLE INITIALIZATION REQUIRED # WEIGHT/G ANTICIPATED VEHICLE MASS SP B16 KGM # XDELVFLG 1=DELTA-V MANEUVER, 0=AIMPT STEER # IF DELTA-V MANEUVER: # DELVSIN SPECIFIED DELTA-V REQUIRED IN # INERTIAL COORDS. OF ACTIVE VEHICLE # AT TIME OF IGNITION VECTOR B7 M/CS # DELVSAB MAG. OF DELVSIN DP B7 M/CS # RTIG POSITION AT TIME OF IGNITION VECTOR B29 M # VTIG VELOCITY AT TIME OF IGNITION VECTOR B7 M/CS. # CSTEER = 0 DP # IF AIMPOINT STEERING: # IF AIMPT STEER # TIG TIME OF IGNITION DP B28 CS # RTARG POSITION TARGET TIME VECTOR B29 M # CSTEER = ECSTEER (GR 0) DP B1 # Page 710 # TPASS4 -- TIME OF ARRIVAL AT AIMPOINT # # OUTPUT # UT 1/2 UNIT VECTOR ALIGNED WITH THRUST DIRETION IN REF COOR # VGTIG INITIAL VALUE OF VELOCITY # TO BE GAINED (INERT. COORD.) VECTOR B7 M/CS # DELVLVC VGTIG IN LOC. VERT. COORDS. B7 M/CS # F NOMINAL THRUST FOR ENG USED FOR S40.13 DP B7 M-NEWT # BDT V REQUIRED AT TIG -V REQUIRED AT (TIG-2SEC) # -GDT FOR S40.13 VECT B7 M/CS # RTIG CALC IN S40.1B (AIMPT) FOR S40.2,3 VECTOR B29M # POSITION AT TIME OF IGNITION # # DEBRIS QTEMP1 # MPAC, QPRET # PUSHLIST # RTX2,RTX1 BANK 14 SETLOC P40S1 BANK COUNT 16/S40.1 S40.1 SET VLOAD FIRSTFLG LO6ZEROS STORE BDT STQ BOF QTEMP XDELVFLG S40.1B # LAMBERT VLOAD ABVAL # EXTERNAL DELTA-V DELVSIN STORE DELVSAB # COMPUTE FOR P30/P40 INTERFACE # THUS PERMITTING MODULE-ONLY CHANGE SETPD VLOAD 0 VTIG STORE VINIT VXV UNIT RTIG STOVL UT # UP IN UT RTIG STORE RINIT VSQ PDDL 36D DMPR DDV THETACON DMP DMP DELVSAB WEIGHT/G DDV # Page 711 F STOVL 14D DELVSIN DOT VXSC UT UT VSL2 PUSH # (DELTAV.UP)UP SCALED AT 2(+7) P.D.L. 0 BVSU PDDL # DELTA VP SCALED AT 2(+7) P.D.L. 6 DELVSIN 14D SIN PDVL 6D VXV UNIT UT VXSC STADR STOVL VGTIG # UNIT(VP X UP)SIN(THETAT/2) IN VGTIG. UNIT PDDL # UNIT(DELTA VP) IN P.D.L. 6 14D COS VXSC VAD VXSC VGTIG 36D VSL2 VAD STADR STORE VGTIG # VG IGNITION SCALED AT 2(+7) M/CS UNIT STOVL UT # THRUST DIRECTION SCALED AT 2(+1) VGTIG PUSH SET AVFLAG CALL MIDGIM # VGTIG IN LV COOR AT 2(+7)M/CS IN DELVLVC GOTO QTEMP S40.1B DLOAD DSU # LAMBERT TIG TWODT STODL TDEC1 TPASS4 DSU TDEC1 STCALL DELLT4 AGAIN VLOAD VIPRIME STODL UT TIG STORE TDEC1 # Page 712 BDSU TPASS4 STCALL DELLT4 AGAIN VLOAD PUSH DELVEET3 STORE VGTIG SET CALL AVFLAG MIDGIM SETPD GOTO 0 CALCUT THETACON 2DEC .31830989 B-8 SETLOC P40S3 BANK COUNT 24/S40.1 EP4(45)H 2DEC .125 EP4(10)H 2DEC .027777777 AGAIN STQ CALL QTEMP1 THISPREC SXA,2 SXA,1 RTX2 RTX1 VLOAD RATT STORE RTIG STOVL RINIT VATT STORE VTIG STORE VINIT SETPD SLOAD 0 HI6ZEROS PDDL BON EP4(45)H NORMSW +3 DLOAD EP4(10)H PUSH CALL INITVEL SETPD GOTO # Page 713 0 QTEMP1 CALCUT VLOAD CALL RTIG CALCGRAV # GDELTAT IN MPAC AT 2(+7) M/CS VSL1 V/SC 200CS # G AT 2(-5) M/CS. CS PDVL VSU VIPRIME UT V/SC VSU 200CS VXSC VSL2 CSTEER STOVL 12D # B.C SCALED AT 2(-15) PDL 12D VGTIG UNIT PUSH # UG PDL 0 SCALED AT 2(+1) DOT VXSC 12D 0 VSL2 BVSU 12D STODL 12D # Q PDL SCALED AT 2(-5) F SRR DDV 4 WEIGHT/G DSQ PDVL # F/MASS SQUARED PDL 6 AT 2(-10M/(CS.CS) 12D VSQ BDSU SQRT VXSC VSL1 VAD UNIT 12D STCALL UT QTEMP 200CS 2DEC 200 B-12 # Page 714 # PROGRAM DESCRIPTION S40.2,3 DATE 15 NOV 66 # MOD NO 2 LOG SECTIONS P40-P47 # MOD BY ZELDIN # # FUNCTIONAL DESCRIPTION # # COMPUTE GIMBAL ANGLES IF THRUSTING OCCURRED WITH PRESENT IMU # ORIENTATION, WINGS LEVEL SPACECRAFT, HEADS UP # COMPUTE X AXIS OF ENGINE BELL # COMPUTE PREFERRED IMU ORIENTATION (XSCREF) # FOR THIS CALCULATION, ASSUME X AXIS OF SC ALONG UT INITIALLY, # YSC=UNIT(XXR), ZSC=UNIT(XX(XXR)) AND ROTATE ENGINE BELL ALONG UT. # NEW SC AXES WILL BE APPROX. WINGS LEVEL AND NEW SC AXES IN REF. # COORDS. WILL BE PREFERRED IMU ORIENTATION. # COMPUTE DESIRED THRUST DIRECTION IN SM COORDS. # # CALLING SEQUENCE # L CALL # L+1 S40.2,3 # # NORMAL EXIT MODE # AT L+2 OF CALLING SEQUENCE (GOTO L+2) # # SUBROUTINES CALLED # CALCGA # # ALARM OR ABORT MODES # NONE # # ERASABLE INITIALIZATION REQUIRED # PACTOFF TOTAL PITCH TRIM ANGLE SP AT 1.0795111 REV. # YACTOFF TOTAL YAW TRIM ANGLE SP AT 1.0795111 REV. # UT DESIRED THRUST DIRECTION VECT. B2 M/(CS.CS) # RTIG POSITION AT TIME OF IGNITION VECT. B29 M # ENG2FLAG ON=RCS OFF=SPS # # OUTPUT # SCAXIS UNIT VECT. ALIGNED WITH ENG BELL IN SC COOR. B1 # XSCREF UNIT VECTORS ALIGNED WTH PREFERRED IMU B1 # YSCREF # ZSCREF # GIMBAL ANGLES IN THETAD # POINTVSM UNIT VECT ALONG DESIRED THRUST DIRECTION IN SM B1 # # DEBRIS # PUSHLIST, QPRET, MPAC # QTEMP TEMP. ERASABLE BANK 24 SETLOC P40S BANK COUNT* $$/S40.2 S40.2,3 VLOAD MXV UT REFSMMAT VSL1 STQ QTEMP STORE POINTVSM # THRUST IN SM AT 2 SETPD BON 0 # Page 715 ENG2FLAG S40.2,3B DLOAD HI6ZEROS PUSH SLOAD # ZERO PDL 0 YACTOFF DMP SL1 TRIMSCAL DAD PUSH YBIAS COS PDDL # COS(Y +Y0) PDL 2 SIN PUSH # SIN(Y +Y0) PDL 4 SLOAD PACTOFF DMP SL1 TRIMSCAL DAD PUSH PBIAS COS PDDL # COS(P +P0) PDL 6 SIN PUSH # SIN(P +P0) PDL 8D STODL ZSCREF # SIN(P +P0) 6 DMP SL1 4 DCOMP PDDL # -SIN(Y+Y0)COS(P+P0) PDL 10 6 DMP SL1 2 VDEF STODL XSCREF # PD POINTER AT 6 NEW SC X AXIS SCALED AT ZSCREF DMP SL1 4 PDDL DMP ZSCREF 2 SL1 DCOMP VDEF STODL ZSCREF # PD POINTER AT 4 NEW SC Z AXIS SCALED AT 2 VDEF STODL YSCREF # PD POINTER AT 0 NEW SC Y AXIS SCALED AT 2 ZSCREF PDDL PDDL YSCREF XSCREF VDEF # Page 716 STOVL SCAXIS # ENGINE BELL SCALED AT 2 UT PDVL UNIT RTIG VXV VCOMP 0 UNIT PUSH CALL TSTRXUT VXV VCOMP 0 VSL1 PDVL # 2 RF/SC IN PDL 12D XSCREF VXM VSL1 0 STOVL XSCREF # X OF PREF. IMU,X OF SC IN REF COOR. AT 2 YSCREF VXM VSL1 0 STOVL YSCREF # Y OF PREF. IMU,Y OF SC IN REF COOR. AT 2 ZSCREF VXM VSL1 0 STORE ZSCREF # Z OF PREF. IMU,Z OF SC IN REF COOR. AT 2 SETPD GOTO 0 QTEMP S40.2,3B VLOAD UNITX STOVL SCAXIS UT STORE XSCREF VXV UNIT RTIG STCALL 6D TSTRXUT STORE YSCREF VXV VCOMP XSCREF VSL1 STCALL ZSCREF # ZNB AXIS IN REF COOR QTEMP TSTRXUT DLOAD BHIZ 36D BADVCTOR VLOAD RVQ 6D BADVCTOR VLOAD UNIT RTIG PDVL UNIT # Page 717 VTIG VSR3 VAD VXV UNIT UT VCOMP STORE 6D RVQ TRIMSCAL 2DEC 1.07975111 B-1 YBIAS 2DEC +.00263888889 # YAW MECH BIAS (+0.95 DEG, THRUST ON) PBIAS 2DEC -.00597222222 # PITCH MECH BIAS (-2.15 DEG, THRUST ON) # REFERENCE, TRW 68.6520.3.3-40 27 FEB, 1968 # PROGRAM DESCRIPTION S41.1 DATE 8 DEC 66 # MOD NO 1 LOG SECTION P40-P47 # MOD BY ZELDIN # # FUNCTIONAL DESCRIPTION # # COMPUTE VELOCITY TO BE GAINED INITIALLY IN REF COORDS. # TO CONTROL COORDS. # # CALLING SEQUENCE # # L CALL # L+1 S41.1 # # NORMAL EXIT MODE # # AT L +2 OF CALLING SEQUENCE # # SUBROUTINES CALLED: # # CALCSMSC # CDUTRIG # # ALARM OR ABORT MODES # # NONE # # ERASABLE INITIALIZATION REQUIRED # # VG IN REF. COORD. PDL L POINTER AT L+5. S41.1 WILL RETURN WITH # POINTER AT L (L MUST BE LESS THAN OR = TO 14D) # # OUTPUT # # MPAC CONTAINS VG IN CONTROL COORDS VECT. B7 M/CS # # DEBRIS: # # QTEMP TEMP ERASABLE # QPRET COUNT 22/S41.1 SETLOC P40S5 BANK S41.1 STQ CALL QTEMP CDUTRIG VLOAD MXV CALL REFSMMAT *SMNB* # Page 718 MXV VXSC QUADROT TENBNK14 # VG IN CONTROL COORD IN MPAC SCALED AT VSL5 GOTO # VG IN CONTROL COORDS. IN MPAC AT 2(+7) QTEMP TENBNK14 2DEC 10. B-4 # Page 719 # NAME S40.8 -- CROSS PRODUCT STEERING # FUNCTION (1) UPDATES THE VELOCITY-TO-BE-GAINED VECTOR. # (2) GENERATES ANGULAR RATE STEERING COMMANDS FOR AUTOPILOT. # (3) ESTABLISHES ENGINE CUT-OFF SIGNALS AT APPROPRIATE TIMES. # (4) INITIATES THRUST-FAIL ROUTINE, R40 # CALLING SEQ CALL S40.6 # INPUT VGPREV LAST VALUE OF THE VELOCITY-TO-BE-GAINED VECTOR # PRIOR TO UPDATING IN METERS/CS AT +7. # DELVREF CHANGE IN VEHICLE VELOCITY SINCE LAST MEASUREMENT # IN METERS/CS AT +7. # BDT EFFECT OF RATE OF CHANGE OF REQUIRED VELOCITY AND # GRAVITY DURING DT UPON VELOCITY-TO-BE-GAINED IN # METERS/CS AT +7. # CSTEER A SCALAR OF THE STEERING LAW, SC.AT B+1, USED FOR # SPS AIMPOINT STEERING MANEUVERS. # IDLEFAIL A FLAG TO INHIBIT (IDLE) THE THRUST-FAIL ROUTINE. # STEERSW A SWITCH TO PRECLUDE NEEDLESS CONDUCT OF STEERING. # REFSMMAT, DAPDATR1, PIPTIME # EREPFRAC, ETDECAY, KPRIMEDT FOR TVC. # OUTPUT TTOGO TIME REMAINING FOR ENGINE BURN IN CS AT +28. # OMEGAC DP VECTOR RATE COMMAND, SC.AT 1/(2TVCDT) REVS/SEC. # VG, VGPREV, VGDISP, TGO, TIG, SCALED AS NOTED IN CODING # STEERSW, IMPULSW, NVWORD1 # REPFRAC, CNTR, VCNTR, VCNTRTMP FOR TVC (R40 INTERFACING) # DEBRIS OMEGAXC, +1 # SUBROUTINES USED: *SMNB*, ALARM SETLOC P40S1 BANK EBANK= DAPDATR1 COUNT 16/S40.8 S40.8 SETPD STQ SPBIT1 00D QTEMP VLOAD BVSU # CONSTRUCT DELVG, SC.AT B+7 M/CS DELVREF BDT VAD VGPREV STORE VG # VELOCITY-TO-BE-GAINED, SC.AT B+7 M/CS ABVAL STORE VGDISP # FOR DISPLAY PURPOSES EXIT TC PHASCHNG OCT 10035 # TYPE B RESTART RESTART BELOW AND 5.3 REREADAC TC INTPRET VLOAD # Page 720 VG STORE VGPREV BOFF VLOAD STEERSW # SKIP TGO AND CROSS-PRODUCT QTEMP DELVREF ABVAL PUSH # CHECK FOR LOTHRUST SLOAD DMP DVTHRESH # SC.AT B-2 M/CS DPB-9 BDSU BMN EXIT LOTHRUST CAE DAPDATR1 # ENABLE TVCDAP CG TRACKING MASK BIT14 CCS A CAF BIT1 INDEX A # LM-OFF, LM-ON VALUE CAE EREPFRAC TS REPFRAC TC INTPRET TGOCALC VLOAD BVSU # GET DELVG DELVREF BDT UNIT DOT PUSH # (00D) VG BPL DDV # ANGLE SHOULD BE GREATER THAN PI/2 INCRSVG # DISPLAY ALARM IF NOT 2VEXHUST DAD DMP # (DOT PRODUCT UP FROM 00D) LODPHALF NORM SR1 X1 PDDL NORM 36D # (MAG DELVG) X2 BDDV XSU,2 SL* X1 0 -9D,2 DMP PUSH # (00D) -FOURDT SLOAD SR ETDECAY # ETDECAY SC.AT B+14 CS 14D BDSU STADR STORE TGO # TIME TO GO IN CS. AT +28 DAD # Page 721 PIPTIME STODL TIG TGO DSU BMN FOURSEC S40.81 XPRODUCT VLOAD VXSC BDT CSTEER VSL2 VSU DELVREF UNIT PDVL VG UNIT VXV MXV CALL REFSMMAT # (REFSMMAT/2) *SMNB* VXSC KPRIMEDT # (KPRIMEDT SCIAT PI/8 RAD) OMEGACLC STORE OMEGAC GOTO QTEMP SETLOC DAPS7 BANK COUNT 17/S40.8 TWODT 2DEC 200.0 B-28 # 2 SEC -FOURDT 2DEC -800 B-18 # -4(200CS), SC.AT B+18CS (-4 FOR SCALING) 2VEXHUST 2DEC 63.020792 B-7 # 2(10338.0564 FPS), SC.AT B+7 M/CS FOURSEC 2DEC 400.0 B-28 # 4 SEC DPB-9 2DEC 1 B-9 SETLOC DAPS6 BANK COUNT 20/S40.8 S40.81 SET VLOAD # TGO LESS THAN 4 SECONDS IMPULSW # FOR ENGINE-OFF CALL HI6ZEROS RATEZRO STORE OMEGAC # TVC TO ATTITUDE HOLD EXIT CAF POSMAX # INHIBIT SWITCHOVER/TVC EG TRACKING TS CNTR # Page 722 TC INTPRET CLEAR GOTO STEERSW # RESTARTS OK QTEMP INCRSVG EXIT # ALARM INDICATING THAT THRUST IS POINTING TC ALARM # IN WRONG DIRECTION. OCT 01407 TC INTPRET GOTO QTEMP LOTHRUST BON VLOAD # THRUST FAILURE (LO-OR-NO) INDICATED IDLEFAIL # SET BY V97P. ALLOWS 1 BYPASS IN CASE OF QTEMP # UNFAVORABLE S40.8 SYNCH. HI6ZEROS # START OF ENGINE-FAIL (R40) OPERATIONS STORE OMEGAC # PUT TVC IN ATTITUDE HOLD EXIT CS ZERO TS VCNTR # KILL CSMMASS UPDATING TS VCNTRTMP # (TVCEXEC LOGIC REQUIRES THIS TOO) TS REPFRAC # KILL TVCDAP CG TRIM TRACKING TS NVWORD1 # SET UP ENGINE-FAIL V97FLASH (CLOCKJOB) TC INTPRET CLEAR GOTO # INHIBIT STEERING AND TGO CALC (MANUAL STEERSW # SHUTDOWN IF NOT SET UP AGAIN) QTEMP # RESTARTS OK # Page 723 # NAME S40.9 -- VTOGAIN (AIMPOINT MANEUVERS ONLY) # FUNCTION (1) GENERATES REQUIRED VELOCITY AND VELOCITY-TO-BE-GAINED # VECTORS FOR USE DURING AIMPOINT MANEUVERS. # (2) UPDATES THE B VECTOR WHICH IS USED IN THE FINAL # CALCULATION OF EXTRAPOLATING THE VELOCITY-TO-BE-GAINED. # CALLING SEQ VIA FINDVEC AS NEW JOB. # INPUT RNIT ACTIVE VEHICLE RADIUS VECTOR IN METERS AT +29. # VNIT ACTIVE VEHICLE VELOCITY VECTOR IN METERS/CS AT +7. # VRPREV LAST COMPUTED VELOCITY REQUIRED VECTOR IN # METERS/CS AT +7. # NONTIG TIME OF IGN. USED IN TARGETTING ROUTINES B+28 # DELLT4 TRANSFER TIME FROM PIPTIME TO TARGET B+28 # TNIT TIME OF RNIT AND VNIT IN CS AT +28 # GDT/2 HALF OF VELOCITY GAINED IN DELTA T TIME DUE TO # ACCELERATION OF GRAVITY IN METERS/CS AT +7. # DELVREF CHANGE IN VELOCITY DURING LAST 2 SEC IN # METERS/CS AT +7. # NORMSW SET=CENTRAL ANGLE BETWEEN RTARG AND RTIG IS BETWEEN # 165 TO 195 DEGREES. # RESET=CENTRAL ANGLE OUTSIDE CONE DESCRIBED ABOVE. # OUTPUT VGTEMP VELOCITY TO BE GAINED VECTOR IN METERS/CS AT +7. # COGA INPUT OF INITIAL GUESS FOR LAMBERT FROM S40.1 # OR PREVIOUS PASS THRU S40.9. # GOBL/2 OBLATENESS TERM IN AVG GRAV CALC: GOBL*RSQ/MU # VRPREV/ VELOCITY REQUIRED VECTOR IN METERS/CS AT +7. # BDT B VECTOR IN METERS/CS AT +7. # SUBROUTINES USED -- INITVEL SETLOC P40S1 BANK EBANK= NBRCYCLS COUNT 16/S40.9 S40.9 TC INTPRET SETPD DLOAD 00D LO6ZEROS PDDL EP4(45)L BON DLOAD NORMSW +2 EP4(10)L PUSH CLEAR CALL GUESSW HAVEGUES EXIT TC PHASCHNG # SAVE TIME BY NOT REDOING LAMBERT CALCS OCT 05021 # C, PRIORITY NEXT, JOB BELOW # Page 724 OCT 10000 TC INTPRET ENDLAMB BON FIRSTFLG FIRSTTME VLOAD VSU VIPRIME VRPREV PDDL DSU TNIT TNITPREV SL BDDV 17D 200CSHI VXSC VSU VSL1 GDT/2 STORE BDT FIRSTTME SLOAD DCOMP RTX2 BMN MOONCASE VLOAD UNIT RN DLOAD DSU PIPTIME NOMTIG DMP DDV EARTHMU 34D VXSC VAD GOBL/2 VGTEMP # NOTE: NO TEST IS MADE TO SUBTRACT GOBL STORE VGTEMP # INSIDE 165-195 DEGREE CONE AREA. MOONCASE EXIT TC PHASCHNG OCT 04021 # C, JOB BELOW COPY40.9 TC INTPRET DLOAD TNIT STOVL TNITPREV VIPRIME STORE VRPREV CLEAR EXIT FIRSTFLG -2 CS ONE # REDO40.9 (RESTART) ENTRY TO END S40.9 TS NBRCYCLS ENDS40.9 TC PHASCHNG OCT 00001 # Page 725 TCF ENDOFJOB REDO40.9 TC INTPRET # S40.9 RESTARTS COME HERE TO GRACEFULLY VLOAD # TERMINATE S40.9 SO THAT IT CAN BE LO6ZEROS # SET UP WITH LATEST R,V,T NEXT PASS STODL DELVSUM # (TYPE C PHASE POINTS '04021' WILL LO6ZEROS # FORCE NORMAL S40.9 TERMINATIONS, STOVL NBRCYCLS # RATHER THAN LOSE TIME OF BRAND NEW VGPREV # PASS -- QUICK OLD DATA BETTER THAN STORE VGTEMP # NONE) NOW CAN GO THRU SETUP.9 EXIT # WITHOUT DISTURBING VGPREV. TCF ENDS40.9 -2 # STORE 0,0 COVERED NBRCYCLS,P -- FIX UP S 200CSHI 2DEC 200 B-12 EARTHMU 2DEC* -3.986032 E10 B-36* EP4(45)L 2DEC .125 EP4(10)L 2DEC .027777777 # Page 726 # NAME: S40.13 -- TIMEBURN # # FUNCTION (1) DETERMINE WHETHER A GIVEN COMBINATION OF VELOCITY-TO- # BE-GAINED AND ENGINE CHOICE RESULT IN A BURN TIME SUFFICIENT # TO ALLOW STEERING AT THE VEHICLE DURING THE BURN, AND # (2) THE MAGNITUDE OF THE RESULTING BURN TIME -- IF IT IS SHORT -- # AND THE ASSOCIATED TIME OF THE ENGINE OFF SIGNAL. # # CALLING SEQUENCE VIA FINDVAC AS A NEW JOB # # INPUT VGTIG -- VELOCITY TO BE GAINED VECTOR (METERS/CS) AT +7 # WEIGHT/G -- MASS OF VEHICLE IN KGM AT TIG # F -- ENGINE THRUST IN M.NEWTONS AT +7 # MDOT -- RATE OF DECREASE OF VEHICLE MASS DURING ENGINE BURN # IN KILOGRAMS/CENTISECOND AT +3. THIS SCALING MAY # REQUIRE MODIFICATION FOR SATURN BURNS. # # OUTPUT IMPULSW ZERO FOR STEERING # ONE FOR ATTITUDE HOLD # TGO TIME TO BURN IN CENTISECONDS AT +14 # THE QUANTITY M.NEWTON SHALL BE USED TO EXPRESS WEIGHT IN TERMS OF # (KILOGRAM*METER)/(CENTISECOND*CENTISECOND) # (1) M.NEWTON = (10000) NEWTONS. EBANK= TGO COUNT 16/40.13 S40.13 TC INTPRET SETPD SET 00D IMPULSW # ASSUME NO STEERING UNTIL FOUND OTHERWISE VLOAD ABVAL VGTIG # VELOCITY TO BE GAINED AT +7 EXIT CAF BIT7 # TEST +X TRANSLATION EXTEND RXOR CHAN31 MASK BIT7 EXTEND BZF NOTADDUL TC INTPRET PDDL DDV # 00D = MAG OF VGTIG AT +7 S40.135 # COMPENSATION FOR 2 JET ULLAGE AT +24 WEIGHT/G # MASS IN KGMS AT +16 BON SL1 # DOUBLE CORRECTION IF FOUR JETS NJETSFLG S40.130 S40.130 BDSU PDDL DDV # 00D = MAG OF VGTIG CORRECTED FOR ULLAGE K1VAL # M.NEWTON-CS AT +24 WEIGHT/G BDSU BMN 00D S40.131 # TGO LESS THAN 100 CS PDDL DMP # 02D = TEMP1 AT +7 # Page 727 EMDOT # SPS FLOW RATE SC.AT B+3 KG/CS (SP, NOTE) 3.5SEC # 350 CS AT +14 BDSU PDDL WEIGHT/G FANG DMP SR2 5SECOND # 500 CS AT +14 DDV PUSH # 04D = TEMP2 BDSU BPL 02D S40.133 # TGO GREATER THAN 600 CS DLOAD BDDV DMP DAD 5SECOND # 500 CS AT +14 1SEC2D # 100 CS AT +14 GOTO S40.132 S40.131 DLOAD DMP # TGO LESS THAN 100 CS WEIGHT/G DAD DDV K2VAL # M.NEWTON CS AT +24 K3VAL # M.NEWTON AT +10 S40.132 EXIT EBANK= TGO TC TPAGREE CA MPAC XCH L CA ZERO DXCH TGO # TGO IN CS AT +28 TC S40.134 S40.133 CLEAR EXIT # WILL STEER VEHICLE IMPULSW S40.134 TC PHASCHNG # KILL GROUP 3 OCT 3 TCF ENDOFJOB NOTADDUL TC INTPRET GOTO S40.130 +1 # DO NOT COMPENSATE FOR 7 SEC OF ULLAGE SETLOC DAPS7 BANK COUNT 17/40.13 K1VAL = EK1VAL # DP PAD LOAD B+23 NEWTON-SEC/E+2 K2VAL = EK2VAL # DP PAD LOAD B+23 NEWTON-SEC/E+2 K3VAL = EK3VAL # DP PAD LOAD B+09 NEWTONS/E+4 1SEC2D 2DEC 100.0 B-14 # 100.0 CS AT +14 # Page 728 3.5SEC 2DEC 350.0 B-13 # 350 CS AT +13 5SECOND 2DEC 500.0 B-14 # 500.0 CS AT +14 S40.135 2DEC 69.6005183 B-23 # IMPULSE FROM 7.96 SECS OF 2-JET FIRING # 7.96 (199.6)COS(10) LB-SEC, SC.AT # B+23 NEWTON-SEC/E+2 (7 SEC ULLAGE # TO GO, PLUS 0.96 SEC FROM PIPTIME) # Page 729 # NAME S40.6 GIMBAL DRIVE TEST AND/OR GIMBAL TRIM # MOD NO 5 DATE 9 MARCH, 1967 # MOD BY ENGEL LOG SECTION P40-P47 # # FUNCTIONAL DESCRIPTION # GIMBAL DRIVE TEST....0,+2,-2,0 DEGREE ENGINE COMMANDS, AT 2 SECOND # INTERVALS, FIRST IN PITCH, THEN IN YAW. ASTRONAUT VERIFICATION # OF GIMBAL MOTION ON GPI # GIMBAL TRIM....AFTER A 4 SECOND DELAY, ENGINE COMMANDED TO # PRE-COMPUTED TRIM POSITION. ASTRONAUT VERIFICATION ON GPI. # PRE40.6....RESTART ENTRY TO RE-DO S40.6, ONLY IF RCS IS ON --- IF TVC # IS NOT ON --- PRIMARILY TO GET ACTUATORS TRIMMED FOR IGNITION. # BYPASS 4 SEC DELAY. SPEED IS CRITICAL NEAR IGNITION. # IF TVC IS ON (TVCDAPON OR LATER) THEN REDOTVC WILL TAKE CARE # OF RESTARTING ACTUATORS. # # CALLING SEQUENCE.... # WAITLIST, WITH 2CADR FOR S40.6 (OR PRE40.6), WITH EBANK= CNTR # # NORMAL EXIT MODE -- FIXDELAY, TASKOVER # # SUBROUTINES CALLED.... # OUTPUT (INTERNAL) # FIXDELAY # # ALARM OR ABORT EXIT MODES --- NONE # # ERASABLE INITIALIZATION REQUIRED # CNTR = +0, NORMALLY SET BY THE P40 CALL AT TST,TRIM. # MRKRTMP....POSITIVE FOR GIMBAL DRIVE TEST AND GIMBAL TRIM (BOTH) # NEGATIVE FOR GIMBAL TRIM ONLY # PACTOFF, YACTOFF SC.AT 85.41 ARCSEC/BIT (V48N48 P, YTRIM) # "SC CONT" SWITCH AT "CMC" (A/P CONTROL SWITCH AT "GNC") # ACTIVE SPS GIMBAL MOTOR POWER(S), PITCH, YAW # # OUTPUT # TVCYAW, TVCPITCH (BITS RELEASED) # TVC ENABLE AND OPTICS ERROR COUNTER ENABLE # # DEBRIS # TBMPR60, CNTR BANK 17 SETLOC DAPS6 BANK EBANK= CNTR COUNT 20/S40.6 PRE40.6 CS FLAGWRD6 # RESTART ENTRY TO S40.6 (DO NOT PERMIT MASK OCT60000 # IF TVC, BITS 15,14 = 1,0) EXTEND BZMF +2 TCF TASKOVER # TVC, REDOTVC WILL REESTABLISH INTERFACE CS BIT1 # RCS, SO DO S40.6, GIMTRIM ONLY # Page 730 TS MRKRTMP CAF BIT1 # FOR REVISED S40.6 TIMING FOR RESTARTS... TS CNTR # TO INDICATE A RESTART ENTRY (CNTR 1S # NORMALLY +0, BY S40.6) EBANK= CNTR S40.6 CS ZERO # INHIBIT OPTICS ACTIVITY TS OPTIND CS BIT2 # DISENABLE OPTICS ERROR COUNTERS (ZERO, EXTEND # AND INHIBIT PULSE TRANSMISSION -- WAND CHAN12 # NORMAL STATE) CAF OCT02200 # TVC ENABLE (SPS SERVO AMPS SEE DAC EXTEND # VOLTAGES) AND DISENGAGE OPTICS/DAC WOR CHAN12 TC FIXDELAY # 60MS PROCEDURAL DELAY (40MS MINIMUM) FOR DEC 6 # RELAY LATCHING CAF BIT2 # ENABLE OPTICS ERROR COUNTERS EXTEND WOR CHAN12 TC FIXDELAY # 20MS PROCEDURAL DELAY (4MS MINIMUM) FOR DEC 2 # RELAY LATCHING RSTRTST CCS CNTR # CHECK FOR RESTART ENTRY (PRE40.6) TCF GIMTRIM +2 # RESTART ENTRY....BYPASS 4 SECOND DELAY # TST,TRIM SETS +0 ON NORMAL ENTRY CAE MRKRTMP # CHECK FOR TEST/TRIM OR TRIM ONLY TS CNTR # MRKRTMP SAVES CNTR FOR RESTARTS EXTEND BZMF GIMTRIM # (TRIM ONLY) GDTSETUP CS ZERO # GIMBAL DRIVE TEST SETUP, FOR PITCH TS CNTR GIMDTEST CAF +2ACTDEG # GIMBAL DRIVE TEST, 1ST INCREMENT TC OUTPUT # (LEAVES GIMBAL AT +2 DEG) CAF -4ACTDEG # 2ND INCREMENT (LEAVES GIMBAL AT -2) TC OUTPUT CAF +2ACTDEG # 3RD INCREMENT (LEAVES GIMBAL AT -0) TC OUTPUT CS CNTR # CHECK FOR COMPLETION OF YAW TEST. # Page 731 CCS A TCF GIMTRIM # COMPLETED, GO TO GIMBAL TRIM ROUTINE CS BIT1 # SET UP YAW TEST TS CNTR TCF GIMDTEST # FOR YAW TEST OUTPUT EXTEND # OUTPUT THE INCREMENT....SAVE Q QXCH TEMPR60 INDEX CNTR TS TVCPITCH INDEX CNTR CAF BIT11 EXTEND WOR CHAN14 TC FIXDELAY # WAIT 2SEC, WHILE ASTRONAUT VERIFIES DEC 200 # GIMBAL MOTION ON GPI TC TEMPR60 GIMTRIM TC FIXDELAY # WAIT 4 SECONDS BEFORE GIMBAL TRIM DEC 400 +2 CS ZERO # PICK UP TRIM VALUES AND OUTPUT THEM AD PACTOFF # (AVOID +0) ENTRY POINT FROM RSTRTST TS TVCPITCH # ON A RESTART, TO AVOID 4SEC DELAY CS ZERO AD YACTOFF TS TVCYAW CAF PRIO6 # RELEASE THE COUNTERS, BITS 11,12 EXTEND WOR CHAN14 ENDS40.6 TCF TASKOVER OCT02200 OCT 02200 # BITS 8,11 FOR CHANNEL 12 TVC/OPTICS -4ACTDEG DEC -168 # -2(+2ACTDEG), WHOLE BITS, NO ROUNDUP +2ACTDEG DEC +84 # +2 DEG, SC.AT 85.41 ARCSEC/BIT (+84D) # CALLED BY "DONOUN46" (VERB 48), OR DIRECTLY BY "FRESHDAP" (RCS DAP) VIA IBNKCALL COUNT 20/S41.2 S41.2 CA DAPDATR1 # Page 732 MASK THREE AD A TS RATEINDX INHINT CAE DAPDATR1 # IS LEM ATTACHED (BITS 14,13 OF DAPDATR1 MASK PRIO30 # =10) AD -BIT14 # (OCT57777) EXTEND BZF TOGETHER # YES CS BIT2 # NO, UNSET FLAG MASK FLAGWRD7 TS FLAGWRD7 TCF +4 TOGETHER CS FLAGWRD7 # ATTACHED, SET FLAG FOR INTEGRATION MASK BIT2 ADS FLAGWRD7 RELINT CA DAPDATR1 MASK BIT4 EXTEND BZMF +2 # DEC 46 MEANS NARROW DB CA DEC409 AD DEC46 # DEC 455 MEANS WIDE DB TS ADB CA DAPDATR1 MASK BIT7 # QUAD BD EXTEND BZMF +2 CA ONE TS XTRANS CA DAPDATR1 MASK BIT10 # QUAD AC EXTEND BZMF +2 CS ONE ADS XTRANS INHINT EXTEND BZF +5 # CLEAR NJETSFLG (4 JETS, OR NO JETS) CS FLAGWRD1 # SET NJETSFLG (2 JETS, AC OR BD QUADS) MASK BIT15 # NJETSFLG = 1 FOR 2 JET ULLAGE (AC OR BD) ADS FLAGWRD1 # Page 733 TCF +4 CS BIT15 # KJETSFLG = 0 FOR 4 JET (OR 0 JET) ULLAGE MASK FLAGWRD1 TS FLAGWRD1 RELINT CA DAPDATR2 MASK BIT13 EXTEND BZMF +2 TCF +2 CS ONE COM TS ACORBD # MINUS FOR A-C, PLUS FOR B-D CA DAPDATR2 MASK BIT10 CCS A TCF +4 CA ONE TS RACFAIL TCF BDFAIL CA ZERO TS RACFAIL CA DAPDATR2 MASK BIT4 CCS A TCF BDFAIL CS ONE TS RACFAIL BDFAIL CA DAPDATR2 MASK BIT7 CCS A TCF +4 CA ONE TS RBDFAIL TC Q CA ZERO TS RBDFAIL CA DAPDATR2 MASK BIT1 CCS A TC Q CS ONE TS RBDFAIL TC Q # DAPFIG ENTRY VIA TC POSTJUMP AS JOB FROM "STABLISH" (VERB 46) BANK 42 SETLOC EXTVBS # Page 734 BANK DAPFIG CS BIT9 # TURN OFF SIVB TAKEOVER EXTEND WAND CHAN12 CAE DAPDATR1 # DETERMINE VEHICLE CONFIGURATION EXTEND MP BIT3 # RIGHT SHIFT 4 OCTAL DIGITS MASK THREE # (IN CASE BIT 15 IS USED) INDEX A TCF +1 # BRANCH BASED ON CONFIG.... TCF NODAPUP # CM.......ACTIVATE NODAP TCF RCSDAPUP # CSM......ACTIVATE RCSDAP TCF RCSDAPUP # CSM/LEM..ACTIVATE RCSDAP TC POSTJUMP CADR SATSTKON RCSDAPUP INHINT # CALL TO ACTIVATE RCSDAP, AND RETURN TCR IBNKCALL CADR RCSDAPON RELINT TCF ENDFIG # CAME IN VIA V46, GO OUT VIA GOPIN NODAPUP EXTEND # T5 IDLE FOR NODAP (DON'T WORRY ABOUT T) DCA T5IDLDAP DXCH T5LOC TC DOWNFLAG # RESET T5-USAGE FLAGS FOR NODAP ADRES DAPBIT1 # BIT 15 FLAG 6 = 0 TC DOWNFLAG ADRES DAPBIT2 # BIT 14 FLAG 6 = 0 INHINT TC IBNKCALL # ZERO JET CHANNELS IN 14 MS AND THEN CADR ZEROJET # LEAVE THE T6 CLOCK DISABLED. RELINT CAF BIT1 # KILL KALCMANU JOB TS HOLDFLAG ENDFIG TC POSTJUMP # CAME IN VIA V46, GO OUT VIA GOPIN CADR GOPIN SBANK= PINSUPER # Added by RSB 2009 EBANK= PACTOFF T5IDLDAP 2CADR T5IDLOC SBANK= LOWSUPER BANK 17 SETLOC DAPS6 BANK DEC409 DEC 409 DEC46 DEC 46 # Page 735 # CALLED BY "DONOUN47" (VERB 48), OR DIRECTLY BY "FRESHDAP" (RCS DAP) S40.14 CAE IXX # RCS ENTRY EXTEND MP CONTONE TS J/M CA IAVG EXTEND MP CONTONE TS J/M1 TS J/M2 EXTEND DCA CONTTWO EXTEND DV IXX TS KMJ EXTEND DCA CONTTWO EXTEND DV IAVG TS KMJ1 TS KMJ2 TC Q CONTONE DEC .662034 # 2PI/M CONTTWO 2DEC .00118 COUNT 24/TVNG BANK 31 SETLOC P40S BANK POS-2.5 OCT 37405 EBANK= DAPDATR1 RCSCADR 2CADR RCSUP 6SECT5 OCT 37704 COUNT 21/RCSUP BANK 20 SETLOC DAPS3 BANK # Page 736 RCSUP LXCH BANKRUPT EXTEND QXCH QRUPT TCR RCSDAPON # ACTIVATE RCS DAP TCF RESUME EBANK= DAPDATR1 RCSADDR 2CADR RCSATT 0.6SECT5 OCT 37704 # RCSDAPON ENTRY MUST BE UNDER INT-INHIBIT RCSDAPON CAF 0.6SECT5 # 0.6 SEC ALLOWS TVCEXEC/ROLLDAP TO DIE +1 TS TIME5 # ENTRY FROM R00TOP00 TS T5PHASE # WILL CAUSE FRESHDAP (+1) CS RCSFLAGS # SET BIT3 TO REINITIALIZE FDAI ERROR MASK BIT3 # DISPLAY, IN CASE SC CONT SWITCH ADS RCSFLAGS # IN SCS NOT GNC (GUIDEMODE PRIMARY) EXTEND DCA RCSADDR # (RCSATT) DXCH T5LOC CS OCT60000 # SEE BITS 15,14 TO 01 TO INDICATE MASK FLAGWRD6 # T5 TAKEOVER BY RCSDAP AD BIT14 TS FLAGWRD6 # KILLS TVCEXEC AND ROLLDAP STARTS TC Q # RETURN TO CALLER (TVCDAPOF OR RCSDAPUP)