-
Notifications
You must be signed in to change notification settings - Fork 7.2k
/
Copy pathP20-P25.agc
5182 lines (4749 loc) · 118 KB
/
P20-P25.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
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Copyright: Public domain.
# Filename: P20-P25.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: 0492-0613
# Mod history: 2009-05-26 OH Transcribed from page images.
# 2009-06-05 RSB Corrected a typos.
# 2009-06-06 RSB Added a missing instruction, and a block
# of 3 missing instructions.
# 2009-06-07 RSB Fixed a misprint.
# 2009-06-07 RSB Changed the construct "2DEC E-6 B12"
# (which isn't legal in yaYUL) to
# "2DEC 1.0 E-6 B12".
# 2011-05-07 JL Removed workarounds.
# This source code has been transcribed or otherwise adapted from
# digitized images of a hardcopy from the MIT Museum. The digitization
# was performed by Paul Fjeld, and arranged for by Deborah Douglas of
# the Museum. Many thanks to both. The images (with suitable reduction
# in storage size and consequent reduction in image quality as well) are
# available online at www.ibiblio.org/apollo. If for some reason you
# find that the images are illegible, contact me at info@sandroid.org
# about getting access to the (much) higher-quality images which Paul
# actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 001 of AGC program LMY99 by NASA 2021112-061
# 16:27 JULY 14, 1969
# Page 492
# RENDEZVOUS NAVIGATION PROGRAM 20
#
# PROGRAM DESCRIPTION
#
# MOD NO -- 2
# BY P. VOLANTE
#
# FUNCTIONAL DESCRIPTION
#
# THE PURPOSE OF THIS PROGRAM IS TO CONTROL THE RENDEZVOUS RADAR FROM
# STARTUP THROUGH ACQUISITION AND LOCKON TO THE CSM AND TO UPDATE EITHER
# THE LM OR CSM STATE VECTOR (AS SPECIFIED BY THE ASTRONAUT BY DSKY ENTRY)
# ON THE BASIS OF THE RR TRACKING DATA.
#
# CALLING SEQUENCE --
#
# ASTRONAUT REQUEST THROUGH DSKY V37E20E
#
# SUBROUTINES CALLED
#
# R02BOTH (IMU STATUS CHECK) FLAGUP
# GOFLASH (PINBALL-DISPLAY) FLAGDOWN
# R23LEM (MANUAL ACQUISITION) BANKCALL
# LS201 (LOS DETERMINATION) TASKOVER
# LS202 (RANGE LIMIT TEST)
# R61LEM (PREFERRED TRACKING ATTITUDE)
# R21LEM (RR DESIGNATE) ENDOFJOB
# R22LEM (DATA READ) GOPERF1
# R31LEM (RENDEZVOUS PARAMETER DISPLAY)
# PRIOLARM (PRIORITY DISPLAY)
#
# NORMAL EXIT MODES --
#
# P20 MAY BE TERMINATED IN TWO WAYS -- ASTRONAUT SELECTION OF IDLING
# PROGRAM (P00) BY KEYING V37E00E OR BY KEYING IN V56E
#
# ALARM OR ABORT EXIT MODES --
#
# RANGE GREATER THAN 400 NM DISPLAY
#
# OUTPUT
#
# TRKMKCNT = NO OF RENDEZVOUS TRACKING MARKS TAKEN (COUNTER)
#
# ERASABLE INITIALIZATION REQUIRED
#
# FLAGS SET + RESET
#
# SRCHOPT, RNDVZFLG, ACMODFLG, VEHUPFLG, UPDATFLG, TRACKFLG
#
# DEBRIS
#
# CENTRALS -- A,Q,L
SBANK= LOWSUPER # FOR LOW 2CADR'S.
BANK 33
SETLOC P20S
BANK
EBANK= LOSCOUNT
COUNT* $$/P20
PROG22 = PROG20
PROG20 TC 2PHSCHNG
OCT 4
OCT 05022
OCT 26000 # PRIORITY 26
TC LUNSFCHK # CHECK IF ON LUNAR SURFACE
# Page 493
TC ORBCHGO # YES
TC PROG20A -2 # NO -- CONTINUE WITH P20
ORBCHGO TC UPFLAG # SET VEHUPFLG -- CSM STATE
ADRES VEHUPFLG # VECTOR TO BE UPDATED
CAF ONE # SET R2 FOR OPTION CSM WILL NOT
TS OPTION2 # CHANGE PRESENT ORBIT
CAF OCT00012
TC BANKCALL # DISPLAY ASSUMED CSM ORBIT OPTION
CADR GOPERF4
TC GOTOPOOH # TERMINATE
TC ORBCHG1 # PROCEED VALUE OF ASSUMED OPTION OK
TC -5 # R2 LOADED THRU DSKY
ORBCHG1 CS P22ONE
AD OPTION2
EXTEND
BZF PROG20A
CAF V06N33*
TC BANKCALL # FLASH VERB-NOUN TO REQUEST ESTIMATED
CADR GOFLASH # TIME OF LAUNCH
TC GOTOPOOH # TERMINATE
TC ORBCHG2 # PROCEED VALUES OK
TC -5 # TIME LOADED THRU DSKY
ORBCHG2 TC INTPRET
GOTO
ORBCHG3
BANK 32
SETLOC P20S4
BANK
COUNT* $$/P20
ORBCHG3 CALL
INTSTALL
DLOAD
TIG
STORE LNCHTM
STORE TDEC1 # ESTIMATED LAUNCH TIME
CLEAR CLEAR
VINTFLAG # LM INTEGRATION
INTYPFLG # PRECISION -- ENCKE
CLEAR CLEAR
DIM0FLAG # NO W-MATRIX
D6OR9FLG
CALL
INTEGRV # PLANETARY INERTIAL ORIENTATION
CALL
GRP2PC
VLOAD
RATT1
STODL RSUBL # SAVE LM POSITION
TAT
# Page 494
STCALL TDEC1
INTSTALL
SET CLEAR
VINTFLAG # CSM INTEGRATION
INTYPFLG
CLEAR BOFF
DIM0FLAG
RENDWFLG # W MATRIX VALID
NOWMATX # NO
SET SET # YES -- SET FOR W MATRIX
DIM0FLAG
D6OR9FLG
NOWMATX CALL
INTEGRV # CSM INTEGRATION
CALL
GRP2PC
VLOAD
VATT1
STOVL VSUBC # SAVE CSM POSITION
RATT1
STORE RSUBC # SAVE CSM POSITION
VXV UNIT # COMPUTE NORMAL TO CSM ORBITAL PLANE
VSUBC # NSUB1=UNIT(R(CM) CROSS V(CM))
STOVL 20D # SAVE NSUB1
RSUBL # COMPUTE ESTIMATED ORBITAL
VXV UNIT # PLANE CHANGE
20D # UCSM = UNIT(R(LM) CROSS NSUB1)
STOVL UCSM
RSUBC # COMPUTE ANGLE BETWEEN UCSM
UNIT DOT # AND RSUBC
UCSM # COS A = UCSM DOT UNIT (R(CM))
SL1
STORE CSTH # SAVE DOE TIME-THETA SUBROUTINE
DSQ BDSU # COMPUTE SINE A
ONEB-2
SQRT
STOVL SNTH # SAVE FOR TIME-THETA SUBROUTINE
RSUBC # POSITION OF CSM AT EST. LAUNCH
STOVL RVEC # TIME FOR TIME-THETHA B-27
VSUBC # VELOCITY OF CSM AT EST. LAUNCH.
VCOMP
STORE VVEC # TIME FOR TIME THETA B-5
CLEAR CALL
RVSW
TIMETHET
VCOMP
STORE NEWVEL # TERMINAL VELOCITY OF CSM
DLOAD
T
STOVL TRANSTM # TRANSFER TIME
# Page 495
NEWVEL
ABVAL
STOVL 20D
0D
STORE NEWPOS # TERMINAL POSITION OF CSM
VXV UNIT # COMPUTE NORMAL TO SCM ORBITAL PLANE
RSUBL # NSUB2 = UNIT(NEWPOS CROSS R(LM))
VXV UNIT # ROTATE TERMINAL VEL INTO DESIRED
NEWPOS # ORBITAL PLANE
VXSC VSL1 # VSUBC = ABVAL(NEWVEL) $ UNIT (NSUB2
20D
STCALL NCSMVEL # NEW CSM VELOCITY
GRP2PC
CALL
INTSTALL
DLOAD BDSU
TRANSTM # LAUNCH TIME -- TRANSFER TIME
LNCHTM
STOVL TET
NEWPOS
STORE RCV
STOVL RRECT
NCSMVEL
STCALL VRECT
MINIRECT
AXT,2 CALL
2
ATOPCSM
CALL
INTWAKE0
EXIT
TC BANKCALL
CADR PROG20A
BANK 24
SETLOC P20S
BANK
COUNT* $$/P20
TC DOWNFLAG # RESET VEHUPFLG -- LM STATE VECTOR
ADRES VEHUPFLG # TO BE UPDATED
PROG20A TC BANKCALL
CADR R02BOTH
TC UPFLAG
ADRES UPDATFLG # SET UPDATE FLAG
TC UPFLAG
ADRES TRACKFLG # SET TRACK FLAG
TC UPFLAG
ADRES RNDVZFLG # SET RENDEZVOUS FLAG
TC DOWNFLAG
ADRES SRCHOPTN # INSURE SEARCH OPTION OFF
# Page 496
TC DOWNFLAG # ALSO MANUAL ACQUISITION FLAG RESET
ADRES ACMODFLG
TC DOWNFLAG # TURN OFF R04FLAG TO ENSURE GETTING
ADRES R04FLAG # ALARM 521 IF CAN'T READ RADAR
TC DOWNFLAG # ENSURE R25 GIMBAL MONITOR IS ENABLED
ADRES NORRMON # (RESET NORRMON FLAG)
TC DOWNFLAG # RESET LOS BEING COMPUTED FLAG
ADRES LOSCMFLG
TC CLRADMOD
P20LEM1 TC PHASCHNG
OCT 04022
CAF ZERO # ZERO MARK COUNTER
TS MARKCTR
TC INTPRET # LOS DETERMINATION ROUTINE
RTB
LOADTIME
STCALL TDEC1
LPS20.1
CALL
LPS20.2 # TEST RANGE R/UTINE
EXIT
INDEX MPAC
TC +1
TC P20LEMA # NORMAL RETURN WITHIN 400 N M
526ALARM CAF ALRM526 # ERROR EXIT -- RANGE > 400 N. MI.
TC BANKCALL
CADR PRIOLARM
TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING
TC -4 # PROC (ILLEGAL)
TC P20LEM1 # ENTER RECYCLE
TC ENDOFJOB
P20LEMA TC PHASCHNG
OCT 04022
TC LUNSFCHK # CHECK LUNAR SURFACE FLAG (P22 FLAG)
TC P20LEMB
TC BANKCALL
CADR R61LEM # PREFERRED TRACKING ATTITUDE ROUTINE
P20LEMB TC PHASCHNG
OCT 05022 # RESTART AT PRIORITY 10 TO ALLOW V37
OCT 10000 # REQUESTED PROGRAM TO RUN FIRST
CAF PRIO26 # RESTORE PRIORITY 26
TC PRIOCHNG
CA FLAGWRD1 # IS THE TRACK FLAG SET
MASK TRACKBIT
EXTEND
BZF P20LEMWT # BRANCH -- NO -- WAIT FOR IT TO BE SET
P20LEMB7 CAF BIT2 # IS RR AUTO MODE DISCRETE PRESENT
EXTEND
# Page 497
RAND CHAN33
EXTEND
BZF P20LEMB3 # YES -- DO AUTOMATIC ACQUISITION (R21)
P20LEMB5 CS OCT24 # RADAR NOT IN AUTO CHECK IF
AD MODREG # MAJOR MODE IS 20
EXTEND
BZF P20LEMB6 # BRANCH -- YES -- OKAY TO DO PLEASE PERFORM
AD NEG2 # ALSO CHECK FOR P22
EXTEND
BZF P20LEMB6 # BRANCH -- YES OK TO DO PLEASE PERFORM
CAF ALRM514 # TRACK FLAG SET -- FLASH PRIORITY ALARM 514 --
TC BANKCALL # RADAR GOES OUT OF AUTO MODE WHILE IN USE
CADR PRIOLARM
TC GOTOV56 # TERMINATE EXITS VIA V56
TC P20LEMB # PROCEED AND ENTER BOTH GO BACK
TC P20LEMB # TO CHECK AUTO MODE AGAIN
TC ENDOFJOB
P20LEMB6 CAF OCT201 # REQUEST RR AUTO MODE SELECTION
TC BANKCALL
CADR GOPERF1
TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING
TC P20LEMB # PROCEED CHECKS AUTO MODE DISCRETE AGAIN
TC LUNSFCHK # ENTER INDICATES MANUAL ACQUISITION (R23)
TC P20LEMB2 # YES -- R23 NOT ALLOWED -- TURN ON OPR ERROR
TC R23LEM # NO -- DO MANUAL ACQUISITION
P20LEMB1 TC UPFLAG # RETURN FROM R23 -- LOCKON ACHIEVED
ADRES ACMODFLG # SET MANUAL FLAG AND GO BACK TO CHECK
TC P20LEMB # RR AUTO MODE
P20LEMB2 TC FALTON # TURNS ON OPERATOR ERROR LIGHT ON DSKY
TC P20LEMB # AND GOES BACK TO CHECK AUTO MODE
P20LEMB3 CS RADMODES # ARE RR CDUS BEING ZEROED
MASK RCDU0BIT
EXTEND
BZF P20LEMB4 # BRANCH -- YES -- WAIT
CAF BIT13-14 # IS SEARCH OR MANUAL ACQUISITION FLAG SET
MASK FLAGWRD2
EXTEND
BZF P20LEMC3 # ZERO MEANS AUTOMATIC RR ACQUISITION
TC DOWNFLAG # RESET TO AUTO MODE
ADRES SRCHOPTN
# Page 498
TC DOWNFLAG
ADRES ACMODFLG
TC P20LEMWT # WAIT 2.5 SECONDS THEN GO TO RR DATA READ
P20LEMB4 CAF 250DEC
TC BANKCALL # WAIT 2.5 SECONDS WHILE RR CDUS ARE BEING
CADR DELAYJOB # ZEROED -- THEN GO BACK AND CHECK AGAIN
TC P20LEMB3
P20LEMC3 TC INTPRET
RTB
LOADTIME
STCALL TDEC1
UPPSV
P20LEMC4 EXIT
P20LEMC TC PHASCHNG
OCT 04022
CAE FLAGWRD0 # IS THE RENDEZVOUS FLAG SET
MASK RNDVZBIT
EXTEND
BZF ENDOFJOB # NO -- EXIT P20
CAE FLAGWRD1 # IS TRACK FLAG SET (BIT 5 FLAGWORD 1)
MASK TRACKBIT
EXTEND
BZF P20LEMD # BRANCH -- TRACK FLAG NOT ON -- WAIT 15 SECONDS
P20LEMF TC R21LEM
P20LEMWT CAF 250DEC
TC TWIDDLE # USE INSTEAD OF WAITLIST SINCE SAME BANK
ADRES P20LEMC1 # WAIT 2.5 SECONDS
CAE FLAGWRD1 # IS TRACK FLAG SET
MASK TRACKBIT
EXTEND
BZF ENDOFJOB # NO -- EXIT WITHOUT DOING 2.7 PHASE CHANGE
P20LMWT1 TC PHASCHNG
OCT 40072
TC ENDOFJOB
P20LEMC1 CAE FLAGWRD0 # IS RENDEZVOUS FLAG SET
MASK RNDVZBIT
EXTEND
BZF TASKOVER # NO -- EXIT P20/R22
CAE FLAGWRD1 # IS TRACK FLAG SET
MASK TRACKBIT
EXTEND
BZF P20LEMC2 # NO -- DON'T SCHEDULE R22 JOB
# Page 499
CAF PRIO26 # YES -- SCHEDULE R22 JOB (RR DATA READ)
TC FINDVAC
EBANK= LOSCOUNT
2CADR R22LEM42
TC TASKOVER
P20LEMC2 TC FIXDELAY # TRACK FLAG NOT SET, WAIT 15 SECONDS
DEC 1500 # AND CHECK AGAIN
TC P20LEMC1
P20LEMD CAF 1500DEC
TC TWIDDLE # WAITLIST FOR 15 SECONDS
ADRES P20LEMD1
TC ENDOFJOB
P20LEMD1 CAE FLAGWRD1 # IS TRACK FLAG SET
MASK TRACKBIT
CCS A
TCF P20LEMD2 # YES -- SCHEDULE DESIGNATE JOB
TC FIXDELAY # NO -- WAIT 15 SECONDS
DEC 1500
TC P20LEMD1
P20LEMD2 CAF PRIO26 # SCHEDULE JOB TO DO R21
TC FINDVAC
EBANK= LOSCOUNT
2CADR P20LEMC3 # START AT PERM. MEMORY INTEGRATION
TC TASKOVER
250DEC DEC 250
ALRM526 OCT 00526
OCT201 OCT 00201
ALRM514 OCT 514
MAXTRIES DEC 60
OCT00012 OCT 00012
P22ONE OCT 00001
ONEB-2 2DEC 1.0 B-2
V06N33* VN 0633
UPPSV STQ CALL # UPDATES PERMANENT STATE VECTORS
LS21X # TO PRESENT TIME
INTSTALL
CALL
# Page 500
SETIFLGS
BOF SET # IF W-MATRIX INVALID, DON'T INTEGRATE IT
RENDWFLG
UPPSV1
DIM0FLAG # SET DIM0FLAG TO INTEGRATE W-MATRIX
BON SET
SURFFLAG # IF ON LUNAR SURFACE W IS 6X6
UPPSV5
D6OR9FLG # OTHERWISE 9X9
UPPSV5 BOF
VEHUPFLG
UPPSV3
UPPSV1 SET
VINTFLAG
CALL
INTEGRV
CALL # GROUP 2 PHASE CHANGE
GRP2PC # TO PROTECT INTEGRATION
CALL
INTSTALL
DLOAD CLEAR # GET TETCSM TO STORE IN TDEC FOR LM INT.
TETCSM
VINTFLAG
UPPSV4 CALL # INTEGRATE OTHER VEHICLE
SETIFLGS # WITHOUT W-MATRIX
STCALL TDEC1
INTEGRV
BOFF VLOAD
SURFFLAG
P20LEMC4
RCVLEM
VSR2
STOVL LMPOS
VCVLEM
VSR2
STORE LMVEL
GOTO
LS21X
UPPSV3 CLEAR CALL
VINTFLAG
INTEGRV
CALL
GRP2PC
CALL
INTSTALL
SET DLOAD
VINTFLAG
TETLEM # GET TETLEM TO STORE IN TDEC FOR CSM INT.
# Page 501
GOTO
UPPSV4
EBANK= LOSCOUNT
COUNT* $$/P22
# Page 502
# PROGRAM DESCRIPTION
#
# PREFERRED TRACKING ATTITUDE PROGRAM P25
# MOD NO -- 3
# BY P. VOLANTE
#
# FUNCTIONAL DESCRIPTION
#
# THE PURPOSE OF THIS PROGRAM IS TO COMPUTE THE PREFERRED TRACKING
# ATTITUDE OF THE LM TO CONTINUOUSLY POINT THE LM TRTACKING BEACON AT THE
# CSM AND TO PERFORM THE MANEUVER TO THE PREFERRED TRACKING ATTITUDE AND
# CONTINUOUSLY MAINTAIN THIS ATTITUDE WITHIN PRESCRIBED LIMITS.
#
# CALLING SEQUENCE --
#
# ASTRONAUT REQUEST THROUGH DSKY V37E25E
#
# SUBROUTINES CALLED --
#
# BANKCALL FLAGUP
# R02BOTH (IMU STATUS CHECK) ENDOFJOB
# R61LEM (PREF TRK ATT ROUT) WAITLIST
# TASKOVER FINDVAC
#
# NORMAL EXIT MODES --
#
# P25 MAY BE TERMINATED IN TWO WAYS -- ASTRONAUT SELECTION OF IDLING
# PROGRAM (P00) BY KEYING V37E00E OR BY KEYING IN V56E
#
# ALARM OR ABORT EXIT MODES --
#
# NONE
#
# OUTPUT
#
# ERASABLE INITIALIZATION REQUIRED
#
# FLAGS SET + RESET
#
# TRACKFLG, P25FLAG
#
# DEBRIS
#
# NONE
EBANK= LOSCOUNT
COUNT* $$/P25
PROG25 TC 2PHSCHNG
OCT 4 # MAKE GROUP 4 INACTIVE (VERB 37)
OCT 05022
OCT 26000 # PRIORITY 26
TC BANKCALL
CADR R02BOTH # IMU STATUS CHECK
TC UPFLAG
ADRES TRACKFLG # SET TRACK FLAG
TC UPFLAG
ADRES P25FLAG # SET P25FLAG
P25LEM1 TC PHASCHNG
OCT 04022
CAF P25FLBIT
MASK STATE # IS P25FLAG SET
EXTEND
BZF ENDOFJOB
CAF TRACKBIT # IS TRACKFLAG SET?
MASK STATE +1
EXTEND
# Page 503
BZF P25LMWT1 # NO -- SKIP PHASE CHANGE AND WAIT 1 MINUTE
CAF SEVEN # CALL R65 -- FINE PREFERRED
TS R65CNTR
TC BANKCALL # TRACKING ATTITUDE ROUTINE
CADR R65LEM
TC P25LEM1 # THEN GO CHECK FLAGS
P25LEMWT TC PHASCHNG
OCT 00112
P25LMWT1 CAF 60SCNDS
TC TWIDDLE # WAIT ONE MINUTE THEN CHECK AGAIN
ADRES P25LEM2
TC ENDOFJOB
P25LEM2 CAF PRIO14
TC FINDVAC
EBANK= LOSCOUNT
2CADR P25LEM1
TC TASKOVER
60SCNDS DEC 6000
# Page 504
# DATA READ ROUTINE 22 (LEM)
# PROGRAM DESCRIPTION
#
# MOD NO -- 2
# BY P. VOLANTE
#
# FUNCTIONAL DESCRIPTION
#
# TO PROCESS AUTOMATIC RR MARK DATA TO UPDATE THE STATE VECTOR OF EITHER
# LM OR CSM AS DEFINED IN THE RENDEZVOUS NAVIGATION PROGRAM (P20)
#
# CALLING SEQUENCE --
#
# TC BANKCALL
# CADR R22LEM
#
# SUBROUTINES CALLED --
#
# LSR22.1 GOFLASH WAITLIST
# LSR22.2 PRIOLARM BANKCALL
# LSR22.3 R61LEM
#
# NORMAL EXIT MODES --
#
# R22 WILL CONTINUE TO RECYCLE, UPDATING STATE VECTORS WITH RADAR DATA
# UNTIL P20 CEASES TO OPERATE (RENDEZVOUS FLAG SET TO ZERO) AT WHICH TIME
# R22 WILL TERMINATE SELF.
#
# ALARM OR ABORT EXIT MODES --
#
# PRIORITY ALARM
# PRIORITY ALARM 525 LOS NOT WITHIN 3 DEGREE LIMIT
#
# OUTPUT
#
# SEE OUTPUT FROM LSR22.3
#
# ERASABLE INITIALIZATION REQUIRED
#
# SEE LSR22.1, LSR22.2, LSR22.3
#
# FLAGS SET + RESET
#
# NOANGFLG
#
# DEBRIS
#
# SEE LSR22.1, LSR22.2, LSR22.3
EBANK= LRS22.1X
COUNT* $$/R22
R22LEM TC PHASCHNG
OCT 04022
CAF RNDVZBIT # IS RENDEZVOUS FLAG SET?
MASK STATE
EXTEND
BZF ENDOFJOB # NO -- EXIT R22 AND P20
CAF TRACKBIT # IS TRACKFLAG SET?
MASK STATE +1
EXTEND
BZF R22WAIT # NO WAIT
R22LEM12 CAF BIT14 # IS RR AUTO TRACK ENABLE DISCRETE STILL
EXTEND # ON (A MONITOR REPOSITION BY R25 CLEARS IT)
RAND CHAN12
EXTEND
BZF P20LEMA # NO -- RETURN TO P20
CAF BIT2 # YES
EXTEND # IS RR AUTO MODE DISCRETE PRESENT
RAND CHAN33
# Page 505
EXTEND
BZF +2 # YES CONTINUE
TC P20LEMB5 # NO -- SET IT
CS RADMODES # ARE RR CDUS BEING ZEROED
MASK RCDU0BIT
EXTEND
BZF R22LEM42 # CDUS BEING ZEROED
TC PHASCHNG # IF A RESTART OCCURS, AND EXTRA RADAR
OCT 00152 # READING IS TAKEN, SO BAD DATA ISN'T USED
TC BANKCALL # YES READ DATA + CALCULATE LOS
CADR LRS22.1 # DATA READ SUBROUTINE
INDEX MPAC
TC +1
TC R22LEM2 # NORMAL RETURN (GOOD DATA)
TC P20LEMC # COULD NOT READ RADAR -- TRY TO REDESIGNATE
CAF ALRM525 # RR LOS NOT WITHIN 3 DEGREES (ALARM)
TC BANKCALL
CADR PRIOLARM
TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING
TC R22LEM1 # PROC (DISPLAY DELTA THETA)
TC -5 # ENTER (ILLEGAL OPTION)
TC ENDOFJOB
R22LEM1 TC PHASCHNG
OCT 04022
CAF V06N05 # DISPLAY DELTA THETA
TC BANKCALL
CADR PRIODSP
TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING
TC R22LEM2 # PROC (OK CONTINUE)
TC P20LEMC # ENTER (RECYCLE)
R22LEM2 TC PHASCHNG
OCT 04022
TC LUNSFCHK # CHECK IF ON LUNAR SURFACE (P22FLAG SET)
TC R22LEM3 # YES -- BYPASS FLAG CHECKS AND LRS22.2
CA FLAGWRD1 # IS TRACK FLAG SET
MASK TRACKBIT
EXTEND
BZF R22WAIT # NO -- WAIT
TC BANKCALL # YES
CADR LRS22.2 # CHECKS RR BORESIGHT WITHIN 30 DEG OF +Z
INDEX MPAC
TC +1
TC R22LEM3 # NORMAL RETURN (LOS WITHIN 30 OF Z-AXIS)
TC BANKCALL
CADR R61LEM
TC R22WAIT # NOT WITHIN 30 DEG OF Z-AXIS
R22LEM3 CS FLAGWRD1 # SHOULD WE BYPASS STATE VECTOR UPDATE
MASK NOUPFBIT # (IS NO UPDATE FLAG SET?)
# Page 506
EXTEND
BZF R22LEM42 # BRANCH -- YES
CA FLAGWRD1 # IS UPDATE FLAG SET
MASK UPDATBIT
EXTEND
BZF R22LEM42 # UPDATE FLAG NOT SET
CAF PRIO26 # INSURE HIGH PRIO IN RESTART
TS PHSPRDT2
TC INTPRET
GOTO
LSR22.3
R22LEM93 EXIT # NORMAL EXIT FROM LSR22.3
TC PHASCHNG # PHASE CHANGE TO PROTECT AGAINST
OCT 04022 # CONFLICT WITH GRP2PC ERASEABLE
TCF R22LEM44
R22LEM96 EXIT
CAF ZERO # SET N49FLAG = ZERO TO INDICATE
TS N49FLAG # V06 N49 DISPLAY HASN'T BEEN ANSWERED
TC PHASCHNG
OCT 04022 # TO PROTECT DISPLAY
CAF PRIO27 # PROTECT DISPLAY
TC NOVAC
EBANK= N49FLAG
2CADR N49DSP
TC INTPRET
SLOAD
N49FLAG
BZE BMN # LOOP TO CHECK IF FLAG
-3 # SETTING CHANGED -- BRANCH -- NO
R22LEM7 # PROCEED
EXIT # DISPLAY ANSERED BY RECYCLE
TC LUNSFCHK # ARE WE ON LUNAR SURFACE
TC R22WAIT # YES -- 15 SECOND DELAY
CA ZERO # NO -- SET R65COUNTER = 0, DO FINE
TC R22LEM45 # TRACKING TAKE ANOTHER RADAR READING
R22LEM7 CALL # PROCEED
GRP2PC # PHASE CHANGE AND
GOTO # GO TO INCOPORATE DATA.
ASTOK
R22LEM44 INCR MARKCTR # INCREMENT COUNT OF MARKS INCORPORATED.
TC LUNSFCHK # ARE WE ON LUNAR SURFACE
TC R22LEM46 # YES -- WAIT 2 SECONDS
CA FIVE # NOT ON LUNAR SURFACE
TC R22LEM45 # R65COUNTER = 5
R22LEM42 TC LUNSFCHK # CHECK IF ON LUNAR SURFACE (P22FLAG SET)
TC R22LEM46 # YES -- WAIT 2 SECONDS
CA TWO # NO -- SET R65COUNTER = 2
R22LEM45 TS R65CNTR
# Page 507
TC BANKCALL
CADR R65LEM # FINE PREFERRED TRACKING ATTITUDE
TC R22LEM
R22WAIT CAF 1500DEC
TC P20LEMWT +1
R22LEM46 CAF 2SECS
TC BANKCALL # WAIT 2 SECONDS AND TAKE ANOTHER MARK
CADR DELAYJOB
TC R22LEM
N49DSP CAF V06N49NB
TC BANKCALL # EXCESSIVE STATE VECTOR UPDATE -- FLASH
CADR PRIODSP # VERB 06 NOUN 49 R1=DELTA R, R2=DELTA V
TC GOTOV56 # TERMINATE -- EXIT R22 AND P20
CS ONE # PROCEED -- N49FLAG = -1
TS N49FLAG # RECYCLE -- N49FLAG = + VALUE
TC ENDOFJOB
R22RSTRT TC PHASCHNG # IF A RESTART OCCURS WHILE READING RADAR
OCT 00152 # COME HERE TO TAKE A RANGE-RATE READING
TC BANKCALL # WHICH ISN'T USED TO PREVENT TAKING A BAD
CADR RRRDOT # READING AND TRYING TO INCORPORATE THE
TC BANKCALL # BAD DATA
CADR RADSTALL # WAIT FOR READ COMPLETE
TC P20LEMC # COULD NOT READ RADAR -- TRY TO REDISGNATE
TC R22LEM # READ SUCCESSFUL -- CONTINUE AT R22
ALRM525 OCT 00525
V06N05 VN 00605
V06N49NB VN 00649
1500DEC DEC 1500
# LUNSFCHECK -- CLOSED SUBROUTINE TO CHECK IF ON LUNAR SURFACE (P22FLAG)
# RETURNS TO CALLER +1 IF P22FLAG SET
# TO CALLER +2 IF P22FLAG NOT SET
COUNT* $$/P22
LUNSFCHK CS FLAGWRD8 # CHECK IF ON LUNAR SURFACE
MASK SURFFBIT # IS SURFFLAG SET?
CCS A # BRANCH -- P22FLAG SET
INCR Q # NOT SET
TC Q # RETURN
# Page 508
# RR DESIGNATE ROUTINE (R21LEM)
# PROGRAM DESCRIPTION
#
# MOD NO -- 2
# BY P. VOLANTE
#
# FUNCTIONAL DESCRIPTION
#
# TO POINT THE RENDEZVOUS RADAR AT THE CSM UNTIL AUTOMATIC ACQUISITION
# OF THE CSM IS ACCOMPLISHED BY THE RADAR. ROUTINE IS CALLED BY P20.
#
# CALLING SEQUENCE --
#
# TC BANKCALL
# CADR R21LEM
#
# SUBROUTINES CALLED --
#
# FINDVAC FLAGUP ENDOFJOB PRIOLARM
# NOVAC INTPRET LPS20.1 PHASCHNG
# WAITLIST JOBSLEEP JOBWAKE FLAGDOWN
# TASKOVER BANKCALL RADSTALL RRDESSM
#
# NORMAL EXIT MODES
#
# WHEN LOCK-ON IS ACHIEVED, BRANCH WILL BE TO P20 WHERE R22 (DATA READ
# WILL BE SELECTED OR A NEED FOR A MANEUVER (BRANCH TO P20LEMA)
#
# ALARM OR ABORT EXIT MODES --
#
# PRIORITY ALARM 503 WHEN LOCK-ON HASN'T BEEN ACHIEVED AFTER 30SECS --
# THIS REQUIRES ASTRONAUT INTERFACE: SELECTION OF SEARCH OPTION OF
# ACQUISITION
#
# OUTPUT
#
# SEE LPS20.1, RRDESSM
#
# ERASABLE INITIALIZATION REQUIRED
#
# RRTARGET, RADMODES ARE USED BY LPS20.1 AND RRDESSM
#
# FLAGS SET + RESET
#
# LOSCMFLG LOKONSW
#
# DEBRIS
#
# SEE LPS20.1, RRSESSM
EBANK= LOSCOUNT
COUNT* $$/R21
R21LEM CS BIT14 # REMOVE RR SELF TRACK ENABLE
EXTEND
WAND CHAN12
TC LUNSFCHK
TC R21LEM5
CAF ZERO # COMMAND ANTENNA TO MODE CENTER
TS TANG # IF NOT ON SURFACE -- MODE 1 -- (T=0,S=0)
TS TANG +1
TC R21LEM6
R21LEM5 CAF BIT12
MASK RADMODES
CCS A
TC R21LEM10
CAF BIT15
TS TANG
CS HALF
TS TANG +1
# Page 509
R21LEM6 TC DOWNFLAG
ADRES LOKONSW
TC BANKCALL
CADR RRDESNB
TC +1
TC BANKCALL
CADR RADSTALL
TC R21-503 # BAD RETURN FROM DESIGNATE -- ISSUE ALARM
R21LEM10 TC UPFLAG
ADRES LOSCMFLG # EVERY FOURTH PASS THRU DODES
CAF MAXTRIES # ALLOW 60 PASSES (APPROX 45 SECONDS)
TS DESCOUNT # TO DESIGNATE AND LOCK ON
R21LEM2 CAF THREE
TS LOSCOUNT
R21LEM1 TC INTPRET
RTB DAD
LOADTIME
HALFSEC # EXTRAPOLATE TO PRESENT TIME + .5 SEC.
STCALL TDEC1 # LOS DETERMINATION ROUTINE
LPS20.1
EXIT
R21LEM3 TC UPFLAG # SET LOKONSW TO RADAR -- ON DESIRED
ADRES LOKONSW
TC DOWNFLAG
ADRES NORRMON
TC INTPRET
CALL # INPUT (RRTARGET UPDATED BY LPS20.1)
RRDESSM # DESIGNATE ROUTINE
EXIT
TC R21LEM4 # LOS NOT IN MODE 2 COVERAGE
# ON LUNAR SURFACE
TC P20LEMA # VEHICLE MANEUVER REQUIRED.
TC BANKCALL # NO VEHICLE MANEUVER REQUIRED
CADR RADSTALL # WAIT FOR DESIGNATE COMPLETE -- LOCKON OR
TC +2 # BAD END -- LOCKON NOT ACHIEVED IN 60 TRIES
TC R21END # EXIT ROUTINE RETURN TO P20 (LOCK-ON)
R21-503 CAF ALRM503 # ISSUE ALARM 503
TC BANKCALL
CADR PRIOLARM
TC GOTOV56 # TERMINATE EXITS P20 VIA V56 CODING
TC R21SRCH # PROC
TC P20LEMC3
TC ENDOFJOB
R21END TC DOWNFLAG
ADRES LOSCMFLG # RESET LOSCMFLG
TC R21DISP # PUT UP VERIFY MAIN LOBE LOCKON DISPLAY
R21SRCH TC PHASCHNG
OCT 04022
TC R24LEM # SEARCH ROUTINE
ALRM503 OCT 00503
# Page 510
ALRM527 OCT 527
R21LEM4 CAF MAXTRIES # SET UP COUNTER FOR
TS REPOSCNT # 60 PASSES (APPROX 600 SECS.)
TC UPFLAG
ADRES FSPASFLG # SET FIRST PASS FLAG
TC DOWNFLAG # RESET LOS BEING
ADRES LOSCMFLG # COMPUTED FLAG
TC INTPRET
R21LEM12 RTB
LOADTIME
DAD
TENSEC # TIME T = T + 10 SECS.
STORE REPOSTM # SAVE FOR LONGCALL AND UPPSV
STCALL TDEC1
LPS20.1 # COMPUTE LOS AT TIME T
CALL
RRDESSM
EXIT
TC R21LEM13 # LOS NOT IN MODE 2 COVERAGE
TC ENDOFJOB # VEHICLE MANEUVER REQUIRED
TC KILLTASK
CADR BEGDES
TC INTPRET
BOF
FSPASFLG # FIRST PASS THRU REPOSITION
R21LEMB # NO -- GO TO CONTINUOUS DESIGNATE
CLRGO
FSPASFLG # YES -- RESET FIRST PASS FLAG
R21LEM7 +1
R21LEM13 CCS REPOSCNT # HAVE WE TRIED 60 TIMES?
TC R21LEM7 # NO -- ADD 10 SECS. RECOMPUTE LOS
TC R21LEM11 # YES -- PUT OUT ALARM 530
R21LEM7 TS REPOSCNT
TC INTPRET
DLOAD GOTO
REPOSTM
R21LEM12 +2
R21LEMB DLOAD
REPOSTM
STCALL TDEC1
UPPSV
EXIT
TC UPFLAG # SET RADMODES BIT 15 FOR
ADRES CDESFLAG # CONTINUOUS DESIGNATION
TC DOWNFLAG
ADRES LOKONSW
TC UPFLAG
ADRES NORRMON
# Page 511
TC BANKCALL
CADR RRDESNB
TC +1
TC INTPRET
RTB BDSU
LOADTIME # COMPUTE DELTA TIME
REPOSTM # FOR LONGCALL
STORE DELTATM
EXIT
EXTEND
DCA DELTATM
TC LONGCALL
EBANK= LOSCOUNT
2CADR R21LEM9
TC ENDOFJOB
R21LEM9 TC KILLTASK
CADR STDESIG
TC CLRADMOD
CAF PRIO26