forked from chrislgarry/Apollo-11
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSERVICER207.agc
804 lines (692 loc) · 19.2 KB
/
SERVICER207.agc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
# Copyright: Public domain.
# Filename: SERVICER207.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 819-836
# Contact: Ron Burkey <[email protected]>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-12 RSB Adapted from Colossus249 file of the same
# name and Comanche 055 page images.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachusetts 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 [email protected].
# Page 819
# SERVICER207
#
# PROGRAM NAME: PREREAD, READACCS, SERVICER, AVERAGE G.
# MOD NO. 00 BY M. HAMILTON DEC. 12, 1966
#
# FUNCTIONAL DESCRIPTION
#
# THE ROUTINES DESCRIBED BELOW ARE USED TO CALCULATE VALUES OF RN, VN, AND GDT/2 DURING ACCELERATED FLIGHT.
# THE SEVERAL ROUTINES COMPRISE A PACKAGE AND ARE NOT MEANT TO BE USED AS SEPARATE SUBROUTINES.
#
# GENERAL REFERENCES TO SERVICER OR AVERAGE G ARE UNDERSTOOD TO REFER TO THE ENTIRE SET OF ROUTINES INCLUDING
# RRADACCS, SERVICER, AVERAGE G, INTEREAD, SMOOTHER, AND ANY ADDITIONAL ROUTINES ATTACHED AT AVGEXIT (SEE BELOW).
#
# PROGRAMS INITIATING SERVICER ARE REQUIRED TO MAKE A WAITLIST CALL FOR PREREAD (OR, IF LIFTOFF, FOR BIBIBIAS)
# AT 2 SECONDS BEFORE THE FIRST AVERAGE G UPDATE IN ORDER TO INITIALIZE THE SEQUENCE, WHICH WILL RECUR EVERY
# 2 SECONDS FROM THAT TIME ON AS LONG AS AVEGFLAG REMAINS SET.
#
# THE USE OF ERASABLE AVGEXIT ALLOWS VARIOUS ROUTINES TO BE PERFORMED AS PART OF THE NORMAL CYCLE (SEE
# EXPLANATION OF AVGEXIT BELOW).
#
# DESCRIPTIONS OF INDIVIDUAL ROUTINES FOLLOW.
#
# PREREAD
#
# PREVIOUSLY EXTRAPOLATED VALUES COPIED FROM RN1, VN1, AND PIPTIME1 INTO RN, VN, AND PIPTIME.
# LASTBIAS JOB SCHEDULED.
# PIPS READ AND CLEARED VIA PIPASR SUBROUTINE.
# AVERAGE G FLAG SET ON.
# DRIFT FLAG SET OFF.
# V37 FLAG SET ON.
# INITIALIZATION OF 1) THRUST MONITOR (DVMON) -- DVCNTR SET TO ONE.
# 2) TOTAL ACCUMULATED DELV VALUE (DVTOTAL) -- SET TO ZERO.
# 3) AXIS VECTOR (AXIS) -- SET TO (.5,0,0).
# NORMLIZE JOB SCHEDULED.
# READACCS TASH CALLED IN 2 SECONDS.
#
# NORMLIZE
#
# GDT/2 INITIALIZED VIA CALCGRAV ROUTINE.
#
# READACCS
#
# IF ONMON FLAG SET QUIKREAD ROUTINE IS PERFORMED BEFORE PIPASR ZEROS THE PIPA REGISTERS, AND THE 1/2 SEC
# ONMONITOR LOOP IS INITIATED TO PROVIDE DOWNLINK INFORMATION DURING ENTRY.
# PIPS READ AND CLEARED BY PIPASR SUBROUTINE.
# IF CM/DSTBY IS ON, ENTRY VARIABLES INITIALIZED AND SETJTAG TASK CALLED.
# Page 820
#
# SERVICER207
#
# IF AVERAGEG FLAG ON READACCS CALLED TO RECYCLE IN 2 SECONDS.
# IF AVERAGEG FLAG OFF AVERAGE G EXIT (AVGEXIT) SET TO 2CADR AVGEND FOR FINAL PASS.
# SERVICER JOB SCHEDULED.
# TEST CONNECTOR OUTBIT TURNED ON.
#
# ONMNITOR
#
# A SEQUENCE OF THREE PASSES THROUGH QUICREAD FOLLOWING A CALL TO READACCS WITH ONMONFLG SET AT 1/2
# SEC INTERVALS. INTERVALS ARE COUNTED OUT BY PIPCTR, INITIALIZED AT 3 BY READACCS.
#
# QUIKREAD
#
# READS CURRENT PIPS INTO X,Y,ZPIPBUF. READS OLD X,Y,ZPIPBUF INTO X,Y,ZOLDBUF. VALUES ARE SENT TO
# DOWNLIST DURING ENTRY.
#
# SERVICER
#
# DELV VALUES CHECKED TO DETECT RUNAWAY PIP:
# IF BAD PIP 1) ALARM SENT.
# 2) COMPENSATION, DVTOTAL ACCUMULATION, AND DVMON BYPASSED. CONTROL
# TRANSFERRED TO AVERAGE G.
# PIPS COMPENSATED VIA 1/PIPA SUBROUTINE.
# DVTOTAL INCREMENTED BY ABSOLUTE VALUE OF DELV.
# THRUST MONITOR (DVMON) PERFORMED UNLESS IDLE FLAG IS ON.
# CONTROL TRANSFERRED TO AVERAGE Q.
#
# DVMON
#
# THRESHOLD VALUD (PLACED IN DVTHRUSH BY USER) CHECKED AGAINST ABSOLUTE VALUE OF DELV TO CHECK
# THRUST LEVEL.
#
# IF THRUST 1) ULLAGE OFF ROUTINE PERFORMED.
# 2) STEERING FLAG TURNED ON AT FIRST DETECTION OF THRUST
# 3) CONTROL TRANSFERRED TO AVERAGE G.
# IF NO THRUST 1) ON FIRST PASS THROUGH MONITOR, CONTROL TRANSFERRED TO AVERAGE G.
# 2) ON SUBSEQUENT PASSES, CONTROL TRANSFERRED TO ENGINE FAIL ROUTINE IF THRUST
# HAS FAILED FOR 3 CONSECUTIVE PASSES.
#
# ENGINE FAIL
#
# ENGFAIL1 TASK CALLED IN 2.5 SECONDS. THIS WILL RETURN CONTROL TO TIG-5 SO THAT THE IGNITION
# SEQUENCE MAY BE REPEATED.
# ENGINOF3 PERFORMED.
# DAP SET UP FOR RCS.
#
# AVERAGE G
# Page 821
# RN1, VN1, GDT1/2 CALCULATED VIA CALCRVG ROUTINE BY UPDATING RN, VN WITH DELV AND AN AVERAGED VALUE
# OF GDT/2
# RN1, VN1, GDT1/2, PIPTIME1 COPIED INTO RN, VN, GDT/2, PIPTIME FOR RESTART PROTECTION.
# CONTROL TRANSFERRED TO ADDRESS SPECIFIED BY USER (OR BY READACCS FOR LAST PASS) IN AVGEXIT.
# LAST PASS (AVGEND) 1) FREE FALL GYRO COMPENSATION SET UP.
# 2) DRIFT FLAG TURNED ON.
# 3) STATE VECTOR TRANSFERRED VIA AVETOMID ROUTINE.
# 4) ONMONITOR FLAG RESET.
# 5) V37 FLAG RESET.
# 6) TEST CONNECTOR OUTBIT RESET.
# 7) CONTROL TRANSFERRED TO CANV37 TO CONTINUE MM CHANGE ROUTINE (R00).
#
# CALLING SEQUENCE
#
# PREREAD ENTERED DIRECTLY FROM TIG-30 VIA POSTJUMP.
# READACCS CALLED AS WAITLIST TASK.
#
# SUBROUTINES CALLED
#
# UTILITY ROUTINES: PHASCHNG FLAGUP FLAGDOWN NOVAC FINDVAC WAITLIST ALARM NEWPHASE 2PHSCHNG
#
# OTHER: PIPASR 1/PIPA CALCGRAV CALCRVG AVETOMID
#
# NORMAL EXIT MODES
#
# ENDOFJOB TASKOVER CANV37
#
# AVGEXIT: THIS IS A DOUBLE PRECISION ERASABLE LOCATION BY WHICH CONTROL IS TRANSFERRED AT THE END
# OF EACH CYCLE OF AVERAGE G.
# THE 2CADR OF A ROUTINE TO BE PERFORMED AT THAT TIME (E.G., STEERING EQUATIONS TO BE REPORTED
# AT 2 SECOND INTERVALS) MAY BE SET BY THE USER INTO AVGEXIT.
# ALL SUCH ROUTINES SHOULD RETURN TO SERVEXIT, WHICH IS THE NORMAL EXIT FROM AVERAGE G.
#
# SERVEXIT: DOES A PHASE CHANGE FOR RESTART PROTECTION AND GOES TO ENDOFJOB.
# THE 2CADR OF SERVEXIT IS SET INTO AVGEXIT BY THE USERI F NO OTHER ROUTINE (SEE ABOVE).
#
# AVGEND: LAST PASS OF AVERAGE G EXITS HERE, BYPASSING SPECIAL ROUTINE (SEE ABOVE UNDER READACCS).
# FINAL EXIT IS TO CANV37. F AVERAGE G).
#
# OUTPUT
#
# DVTOTAL(2) PIPTIME(2) XPIPBUF(2) YPIPBUF(2) ZPIPBUF(2)
# RN(6) REFERENCE COORD. SCALED AT 2(+29) M/CS
# VN(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
# GDT/2(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
# DELV(6) STABLE MEMB. COORD. SCALED AT 2(+14)*5.85*10(-4) M/CS (KPIP1 USED TO GET DV/2 AT 2(+7))
# Page 822
# DELVREF(6) REFERENCE COORD. SCALED AT 2(+7) M/CS
#
# INITIALIZATION
#
# ONMONITOR FLAG SET BY ENTRY TO SHOW PIPBUF VALUES REQUIRED.
# IDLE FLAG ON IF DVMON TO BE BYPASSED.
# DVTHRUSH SET TO APPROPRIATE VALUE FOR DVMON.
# AVGEXIT SET TO 2CADR OF ROUTINE, IF ANY, TO BE PERFORMED AFTER EACH CYCLE OF AVERAGE G. IF NO ROUTINE
# TO BE DONE, AVGEXIT SET TO SERVEXIT.
# VALUES NEEDED
# REFSMMAT
# UNITW: FULL UNIT VECTOR, IN REFERENCE COORD., OF EARTH'S ROTATIONAL VECTOR
# RN1, VN1, PIPTIME1: IN REFERENCE COORD., CONSISTENT WITH TIME OF EXECUTION OF PREREAD.
#
# DEBRIS
#
# CENTRALS A, L, Q
# OTHER INTERNAL: DVCNTR(1) PIPAGE(1) PIPCTR(1) AVGEXIT(2)
# EXTERNAL: ITEMP1(1) ITEMP2(1) RUPTREG1(1) TEMX(1) TEMY(1) TEMZ(1)
# USEFUL DEBRIS
# RN1(0) VN1(0) GDT1/0 PIPTIME1(2?)
# THESE LOCATIONS USED AS BUFFER STORAGE FOR NEWLY CALCULATED VALUES OF RN, VN, GDT/2,
# AND PIPTIME DURING PERFORMANCE OF SERVICER ROUTINES.
# UNITR: HALF UNIT VECTOR OF RN, REFERENCE COORD.
# RMAG SCALED AT 2(+58) IN 36D.
# RMAGSQ SCALED AT 2(+58) IN 34D.
# (RE/RMAG)SQ IN 32D
BANK 27
SETLOC SERVICES
BANK
EBANK= DVCNTR
# ********************* PREREAD ***************************************
COUNT 37/SERV
PREREAD CAF PRIO21 # CALLER MUST PROTECT PREREAD
TC NOVAC
EBANK= NBDX
2CADR LASTBIAS # DO LAST GYRO COMPENSATION IN FREE FALL
# CALL-TO AND LASTBIAS ITSELF ARE NOT
# PROTECTED. REREADAC SETS 1/PIPADT
# TO 2.0 SECS IN CASE LASTBIAS LOST.
# (REDUNDANT IF LASTBIAS IS AOK.)
# Page 823
REDO5.31 TC PREREAD1
CAF PRIO32
TC FINDVAC # SET UP NORMLIZE JOB REQUIRED PRIOR TO
EBANK= DVCNTR # FIRST AVERAGE G PASS
2CADR NORMLIZE
CAF 2SECS
TC WAITLIST
EBANK= AOG
2CADR READACCS
CS TWO
TC NEWPHASE
OCT 5
TCF TASKOVER
PREREAD1 EXTEND
QXCH RUPTREG1
TC PIPASR # CLEAR + READ PIPS LAST TIME IN FREE FALL
CAF ONE # SET UP PIPAGE FOR REREADAC IN CASE A
TS PIPAGE # RESTART OCCURS BEFORE READACCS
CS FLAGWRD1 # SET AVEG FLAG
MASK BIT1
ADS FLAGWRD1
CA POSMAX
MASK FLAGWRD2
TS FLAGWRD2 # KNOCK DOWN DRIFT FLAG
CS FLAGWRD7 # SET V37 FLAG
MASK BIT6
ADS FLAGWRD7
CAF ZERO
TS DVTOTAL # CLEAR DVTOTAL
TS DVTOTAL +1
TC RUPTREG1
# Page 824
# ********************* READACCS ***************************************
EBANK= AOG
READACCS TC PIPASR
PIPSDONE CAF FIVE
TS L
COM
DXCH -PHASE5
REDO5.5 CAF ONE # SHOW PIPS HAVE BEEN READ
TS PIPAGE
CA TWO # SET PIPCTR FOR ONMINTOR
TS PIPCTR # AFTER ABOVE PHASCHNG
CS CM/FLAGS
MASK BIT2 # CM/DSTBY
CCS A
TC CHEKAVEG
CS PIPTIME1 +1
TS TBASE6 # FOR RESTARTS
EXTEND # CONTINUE FOR ENTRY DAP
DCA AOG
DXCH AOG/PIP
CA AMG
XCH AMG/PIP
EXTEND
DCA ROLL/180
DXCH ROLL/PIP
CA BETA/180
XCH BETA/PIP
CA CM/FLAGS
MASK BIT12 # CM/DAPARM 93D BIT12
EXTEND # DURING ENTRY, WHEN RCS DAP IS INACTIVE,
BZF NOSAVPIP # SAVE PIPAS EACH 0.5 SEC FOR TM.
CA 0.5SEC
TC WAITLIST
EBANK= XPIPBUF
2CADR QUIKREAD
# NO NEED TO RESTART PROTECT THIS.
CA DELVX # SAVE PIPAS AS READ (BUT NOT COMPENSATED)
XCH XPIPBUF
TS XOLDBUF
CA DELVY
XCH YPIPBUF
TS YOLDBUF
# Page 825
CA DELVZ
XCH ZPIPBUF
TS ZOLDBUF
NOSAVPIP CA FIVE
TS CM/GYMDT
CA JTAGTIME # ACTIVATE CM/RCS AFTER PIPUP TO GO
# IN JTAGTIME +5 CS.
TC WAITLIST
EBANK= AOG
2CADR SETJTAG
CS THREE # 1.3SPOT FOR SETJTAG
TC NEWPHASE
OCT 1
CAF OCT37
TS L
COM
DXCH -PHASE5
CHEKAVEG CS FLAGWRD1
MASK BIT1
CCS A # IF AVEG FLAG DOWN SET FINAL EXIT AVEG
TC AVEGOUT
CAF 2SECS
TC WAITLIST
EBANK= AOG
2CADR READACCS
MAKESERV CAF PRIO20 # ESTABLISH SERVICER ROUTINE
TC FINDVAC
EBANK= DVCNTR
2CADR SERVICER
CS FOUR # RESTART SERVICER AND READACCS
TC NEWPHASE
OCT 5
CAF BIT9
EXTEND
WOR DSALMOUT # TURN TEST CONNECTOR OUTBIT ON
TCF TASKOVER # END PREVIOUS READACCS WAITLIST TASK
# Page 826
AVEGOUT EXTEND
DCA AVOUTCAD
DXCH AVGEXIT
TCF MAKESERV
EBANK= DVCNTR
AVOUTCAD 2CADR AVGEND
# Page 827
# ROUTINE NAME: ONMNITOR
# MOD 04 BY BAIRNSFATHER 30 APR 1968 REDO ONMNITOR TO SAVE PIPS EACH 0.5 SEC FOR TM,ENTRY.
# MOD 03 BY FISHER DECEMBER 1967
# MOD 02 BY RYE SEPT 1967
# MOD 01 BY KOSMALA 23 MAR 1967
# MOD 00 BY KOSMALA 27 FEB 1967
#
# FUNCTIONAL DESCRIPTION
#
# THE PURPOSE OF ONMONITOR IS TO PROVIDE 1/2 SEC. READING OF PIPAS FOR DOWNLIST DURING ENTRY.
# X,Y,XPIPBUF CONTAIN PRESET VALUES X,Y,ZOLDBUF CONTAIN VALUES FROM PREVIOUS READING.
#
# CALLING SEQUENCE
#
# CALL AS WAITLIST TASK. TERMINATES ITSELF IN TASKOVER
#
# INITIALIZATION
#
# PIPCTR = 2 (FOR DT = 0.5 SEC)
# X,Y,ZPIPBUF SET TO PREVIOUS PIPAX,Y,Z
#
# OUTPUT
#
# X,Y,ZPIPBUF, X,Y,ZOLDBUF
#
# DEBRIS
#
# X,Y,ZPIPBUF CONTAIN LAST PIPAX,Y,Z VALUES
# X,Y,ZOLDBUF CONTAIN LAST-BUT-ONE PIPAX,Y,Z VALUES
# RUPTREG1
# PIPCTR
ONMNITOR TS PIPCTR
TC FIXDELAY # WAIT
0.5SEC DEC 50
QUIKREAD CAF TWO
TS RUPTREG1
INDEX A
CA PIPAX # SAVE ACTUAL PIPAS FOR TM.
INDEX RUPTREG1
XCH XPIPBUF # UPDATE X,Y,ZPIPBUF
INDEX RUPTREG1
TS XOLDBUF # AND X,Y,ZOLDBUF
CHKCTR CCS RUPTREG1
TCF QUIKREAD +1 # LOOP AGAIN
CCS PIPCTR
TCF ONMNITOR
TC TASKOVER
# Page 828
# ********************* SERVICER ***************************************
EBANK= DVCNTR
SERVICER CAF TWO
INHINT
PIPCHECK TS RUPTREG1
DOUBLE
INDEX A
CCS DELVX
TC +2
TC PIPLOOP
AD -MAXDELV # DO PIPA-SATURATION TEST BEFORE
EXTEND
BZMF PIPLOOP # COMPENSATION.
TC ALARM
OCT 00205 # SATURATED-PIPA ALARM ***CHANGE LATER
TC AVERAGEG
PIPLOOP CCS RUPTREG1
TCF PIPCHECK
TC PHASCHNG # RESTART REREADAC + SERVICER
OCT 16035
OCT 20000
EBANK= DVCNTR
2CADR DVTOTUP
TC BANKCALL # PIPA COMPENSATION CALL
CADR 1/PIPA
DVTOTUP TC INTPRET
VLOAD ABVAL # GET ABS VALUE OF DELV
DELV
DMP EXIT
KPIP1 # SCALE AT 2(+7)
EXTEND
DCA MPAC
DAS DVTOTAL # ACCUMULATE DVTOTAL
AVERAGEG TC PHASCHNG
OCT 10035
TC INTPRET
CALL
# Page 829
CALCRVG
EXIT
TC PHASCHNG
OCT 10035
CAF OCT31 # COPY RN1,VN1,GOT102,GOBL1/2,PIPTIME1
TC GENTRAN # INTO RN, VN, GDT/12, GOBL/2,PIPTIME
ADRES RN1
ADRES RN
RELINT # GENTRAN DOES AN INHINT
TC PHASCHNG
OCT 10035
EXTEND
DCA AVGEXIT
DXCH Z # AVERAGEG EXIT
AVGEND CA PIPTIME +1 # FINAL AVERAGE G EXIT
TS OLDBT1 # SET UP FREE FALL GYRO COMPENSATION
TC UPFLAG # SET DRIFTFLG
ADRES DRIFTFLG # BIT 15 FLAG 2
TC 2PHSCHNG
OCT 5 # GROUP 5 OFF
OCT 05022 # GROUP 2 ON FOR AVETOMID
OCT 20000
TC INTPRET
CALL
AVETOMID # CONVERT STATE VECTOR TO REFERENCE SCALE.
EXIT
CAF ZERO # ZERO MARK COUNTERS.
TS VHFCNT
TS TRKMKCNT
TC BANKCALL
CADR PIPFREE
CS BIT9
TS MRKBUF2 # INVALIDATE MARK BUFFER
EXTEND
WAND DSALMOUT
TC DOWNFLAG
ADRES CM/DSTBY
TC DOWNFLAG
ADRES V37FLAG
# Page 830
CAF BIT7 # RESTORE GROUP 1 + 2 IF P20 IS RUNNING.
MASK FLAGWRD0
EXTEND
BZF +4
TC 2PHSCHNG
OCT 111 # 1.11SPOT
OCT 132 # 2.13SPOT
TC POSTJUMP
CADR CANV37
SERVEXIT TC PHASCHNG
OCT 00035 # A, 5.3 = REREADAC (ONLY)
TCF ENDOFJOB
DVTHRUSH EQUALS ELEVEN # 15 PERCENT OF 2SEC PIPA ACCUMULATION,
# FOR 503-FULL CSM/LEM....DELV SC.AT
# 5.85 CM/SEC.
-MAXDELV DEC -6398 # 3200 PPS FOR 2 SEC CCS TAKES 1
JTAGTIME DEC 120 # = 1 SEC + T CDU, T CDU = .1 SEC
2.5SEC DEC 250
MDOTFAIL DEC 144.0 B-16 # 5 SEC MASS LOSS AT 28.8 KG/SEC
# SHOULD BE 2-4 SECS FOR NO START
# 6-8 SECS FOR FAILURE
# Page 831
# NORMLIZE PERFORMS THE INITIALIZATION REQUIRED PRIOR TO THE FIRST ENTRY TO AVERAGEG, AND SCALES RN SO THAT IT
# HAS 1 LEADING BINARY ZERO. IN MOST MISSIONS, RN WILL BE SCALED AT 2(+29), BUT IN THE 206 MISSION, RN WILL BE
# SCALED AT 2(+24) M.
NORMLIZE CAF THIRTEEN # SET UP TO COPY 14 REGS: RN1,VN1,PIPTIME1
TC GENTRAN # INTO RN,VN,PIPTIME
ADRES RN1 # FROM HERE
ADRES RN # TO HERE
RELINT
TC INTPRET
VLOAD CALL # LOAD RN FOR CALCGRAV
RN
CALCGRAV # INITIALIZE UNITR RMAG GDT1
STOVL GDT/2
GOBL1/2
STORE GOBL/2
EXIT
TCF ENDOFJOB
# Page 832
# ***** PIPA READER *****
# MOD NO. 00 BY D. LICKLY DEC. 9 1966
#
# FUNCTIONAL DESCRIPTION
#
# SUBROUTINE TO READ PIPA COUNTERS, TRYING TO BE VERY CAREFUL SO THAT IT WILL BE RESTARTABLE.
# PIPA READINGS ARE STORED IN THE VECTOR DELV. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS THE PIPA READING,
# RESTARTS BEGIN AT REREADAC.
#
# AT THE END OF THE PIPA READER THE CDUS ARE READ AND STORED AS A
# VECTOR IN CDUTEMP. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS
# THE CDU READING IN 2'S COMP IN THE ORDER CDUX,Y,Z. THE THRUST
# VECTOR ESTIMATOR IN FINDCDUD REQUIRES THE CDUS BE READ AT PIPTIME.
#
# CALLING SEQUENCE AND EXIT
#
# CALL VIA TC, ISWCALL, ETC.
#
# EXIT IS VIA Q.
#
# INPUT
#
# INPUT IS THROUGH THE COUNTERS PIPAX, PIPAY, PIPAZ, AND TIME2.
#
# OUTPUT
#
# HIGH ORDER COMPONENTS OF THE VECTOR DELV CONTAIN THE PIPA READINGS.
#
# PIPTIME CONTAINS TIME OF PIPA READING.
#
# DEBRIS (ERASABLE LOCATIONS DESTROYED BY THE PROGRAM)
#
# LOW ORDER DELV'S ARE ZEROED FOR TM INDICATION.
# TEMX TEMY TEMZ PIPAGE
PIPASR EXTEND
DCA TIME2
DXCH PIPTIME1 # CURRENT TIME POSITIVE VALUE
CS ZERO # INITIALIZE THESE AT NEG ZERO.
TS TEMX
TS TEMY
TS TEMZ
# Page 833
CA ZERO
TS DELVZ # OTHER DELVS OK INCLUDING LOW ORDER
TS DELVY
TS DELVX +1 # LOW ORDER DELV'S ARE ZEROED FOR TM: THIS
TS DELVY +1 # IF DNLNK=D LOW ORDER DELVS ARE NZ, THEY
TS DELVZ +1 # CONTAIN PROPER COMPENSATION. IF=0, THEN
# THE TM VALUES ARE BEFORE COMPENSATION.
TS PIPAGE # SHOW PIPA READING IN PROGRESS
REPIP1 EXTEND
DCS PIPAX # X AND Y PIPS READ
DXCH TEMX
DXCH PIPAX # PIPAS SET TO NEG ZERO AS READ.
TS DELVX
LXCH DELVY
REPIP3 CS PIPAZ # REPEAT PROCESS FOR Z PIP
XCH TEMZ
XCH PIPAZ
DODELVZ TS DELVZ
TC Q
EBANK= AOG
REREADAC CCS PHASE5 # LAST PASS CHECK
TCF +2
TCF TASKOVER
CAF PRIO31 # RESTART MAY HAVE WIPED OUT LASTBIAS, AN
TS 1/PIPADT # UNPROTECTED NOVAC FROM PREREAD,
# WHICH SET(S) UP 1/PIPADT (THUSLY)
# FOR NON-COASTING COMPENSATION....BE
# SURE 1/PIPADT IS AOK. (PRIO31 IS
# 2.0SEC SC.AT B+8(CS)
CCS PIPAGE
TCF READACCS # PIP READING NOT STARTED. GO TO BEGINNING
CAF DONEADR # SET UP RETURN FROM PIPASR
TS Q
CCS DELVZ
TC Q # Z DONE, GO DO CDUS
TCF +3 # Z NOT DONE, CHECK Y.
TC Q
TC Q
# Page 834
ZL
CCS DELVY
TCF +3
TCF CHKTEMX # Y NOT DONE, CHECK X.
TCF +1
LXCH PIPAZ # Y DONE, ZERO Z PIP.
CCS TEMZ
CS TEMZ # TEMZ NOT = -0, CONTAINS -PIPAZ VALUE.
TCF DODELVZ
TCF -2
LXCH DELVZ # TEMZ = -0, L HAS ZPIP VALUE.
TC Q
CHKTEMX CCS TEMX # HAS THIS CHANGED
CS TEMX # YES
TCF +3 # YES
TCF -2 # YES
TCF REPIP1 # NO
TS DELVX
CS TEMY
TS DELVY
CS ZERO # ZERO X AND Y PIPS
DXCH PIPAX # L STILL ZERO FROM ABOVE
TCF REPIP3
DONEADR GENADR PIPSDONE
# Page 835
#*********************************************************************************************
#
# ROUTINE CALCRVG INTEGRATES THE EQUATIONS OF MOTION BY AVERAGING THE THRUST AND GRAVITATIONAL
# ACCELERATIONS OVER A TIME INTERVAL OF 2 SECONDS.
#
# FOR THE EARTH-CENTERED GRAVITATIONAL FIELD, THE PERTURBATION DUE TO OBLATENESS IS COMPUTED TO THE FIRST
# HARMONIC COEFFICIENT J.
#
# ROUTINE CALCRVG REQUIRES...
# 1) THRUST ACCELERATION INCREMENTS IN DELV SCALED SAME AS PIPAX,Y,Z IN STABLE MEMBER COORDS.
# 2) VN SCALED 2(+7) M/CS IN REFERENCE COORDS.
# 3) RN SCALED AT 2(+29) METERS IN REFERENCE COORDS.
# 4) UNITW THE EARTH'S UNIT ROTATIONAL VECTOR (SCALED AS A FULL UNIT VECTOR) IN REFERENCE COORDS.
#
# IT LEAVES RN1 UPDATED (SCALED AT 2(+29)M, VN1 (SCALED AT 2(+7)M/CS), AND GDT1/2 (SCALED AT 2(+7)M/CS). ALSO HALF
# UNIT VECTOR UNITR, RMAG IN 36D SCALED AT 2(+29)M, R MAG SQ. IN 34D SCALED AT 2(+58) M SQ.
CALCGRAV UNIT PUSH # ENTER WITH RN IN MPAC
STORE UNITR
LXC,1 SLOAD
RTX2
X1
BMN VLOAD
ITISMOON
DOT PUSH
UNITW
DSQ BDSU
DP1/20
PDDL DDV
RESQ
34D # (RN)SQ
STORE 32D # TEMP FOR (RE/RN)SQ
DMP DMP
20J
VXSC PDDL
UNITR
DMP DMP
2J
32D
VXSC VAD
UNITW
STADR
STORE GOBL1/2
VAD PUSH
UNITR
ITISMOON DLOAD NORM
34D
X2
BDDV* SLR*
# Page 836
-MUDT(E),1
0 -21D,2
VXSC STADR
STORE GDT1/2 # SCALED AT 2(+7) M/CS
RVQ
CALCRVG VLOAD VXSC
DELV
KPIP1
VXM VSL1
REFSMMAT
STORE DELVREF # DELV IN REF COORDS AT 2(+7)
VSR1 PUSH
VAD PUSH # (DV-OLDGDT)/2 TO PD SCALED AT 2(+7)M/CS
GDT/2
VAD VXSC
VN
2SEC(22)
VAD STQ
RN
31D
STCALL RN1 # TEMP STORAGE OF RN SCALED 2(+29)M
CALCGRAV
VAD VAD
VAD
VN
STCALL VN1 # TEMP STORAGE OF VN SCALED 2(+7) M/CS.
31D
KPIP 2DEC .1024 # SCALES DELV TO 2(+4)
KPIP1 2DEC 0.074880 # 207 DELV SCALING. 1 PULSE = 5.85 CM/SEC.
-MUDT(E) 2DEC* -7.9720645 E+12 B-44*
-MUDT(M) 2DEC* -9.805556 E+10 B-44*
2SEC(22) 2DEC 200 B-22
DP1/20 2DEC 0.05
RESQ 2DEC* 40.6809913 E12 B-59*
20J 2DEC* 3.24692010 E-2 B1*
2J 2DEC* 3.24692010 E-3 B1*