forked from chrislgarry/Apollo-11
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RESTART_TABLES.s
558 lines (446 loc) · 11.6 KB
/
RESTART_TABLES.s
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
# Copyright: Public domain.
# Filename: RESTART_TABLES.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. 211-221
# Contact: Ron Burkey <[email protected]>,
# Fabrizio Bernardini <[email protected]>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-16 FB Transcription Batch 2 Assignment.
# 2009-05-20 RSB Added a missing comment mark. Corrected mismarked
# Page 217 -> 220.
# 2009-05-21 RSB Fixed value of 5.21SPOT.
#
# 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
# Massachussets Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to [email protected].
# Page 211
# RESTART TABLES
# --------------
#
# THERE ARE TWO FORMS OF RESTART TABLES FOR EACH GROUP. THEY ARE KNOWN AS THE EVEN RESTART TABLES AND THE ODD
# RESTART TABLES. THE ODD TABLES HAVE ONLY ONE ENTRY OF THREE LOCATIONS WHILE THE EVEN TABLES HAVE TWO ENTRIES
# EACH USING THREE LOCATIONS. THE INFORMATION AS TO WHETHER IT IS A JOB, WAITLIST, OR A LONGCALL IS GIVEN BY THE
# WAY THINGS ARE PUT IN TO THE TABLES.
#
# A JOB HAS ITS PRIORITY STORED IN A PRDTTAB OF THE CORRECT PHASE SPOT -- A POSITIVE PRIORITY INDICATES A
# FINDVAC JOB, A NEGATIVE PRIORITY A NOVAC. THE 2CADR OF THE JOB IS STORED IN THE CADRTAB.
# FOR EXAMPLE,
#
# 5.7SPOT OCT 23000
# 2CADR SOMEJOB
#
# A RESTART OF GROUP 5 WITH PHASE SEVEN WOULD THEN CAUSE SOMEJOB TO BE RESTARTED AS A FINDVAC WITH PRIORITY 23.
#
# 5.5SPOT OCT -23000
# 2CADR ANYJOB
#
# HERE A RESTART OF GROUP 5 WITH PHASE 7 WOULD CAUSE ANYJOB TO BE RESTARTED AS A NOVAC WITH PRIORITY 23.
# A LONGCALL HAS ITS GENADR OF ITS 2CADR STORED NEGATIVELY AND ITS BBCON STORED POSITIVELY. IN ITS PRDTTAB IS
# PLACED THE LOCATION OF A DP REGISTER THAT CONTAINS THE DELTA TIME THAT LONGCALL HAD BEEN ORIGINALLY STARTED
# WITH. EXAMPLE,
#
# 3.6SPOT GENADR DELTAT
# -GENADR LONGTASK
# BBCON LONGTASK
# OCT 31000
# 2CADR JOBAGAIN
#
# THIS WOULD START UP LONGTASK AT THE APPROPRIATE TIME, OR IMMEDIATELY IF THE TIME HAD ALREADY PASSED. IT SHOULD
# BE NOTED THAT IF DELTAT IS IN A SWITCHED E BANK, THIS INFORMATION SHOULD BE IN THE BBCON OF THE 2CADR OF THE
# TASK. FROM ABOVE, WE SEE THAT THE SECOND PART OF THIS PHASE WOULD BE STARTED AS A JOB WITH A PRIORITY OF 31.
#
# WAITLIST CALLS ARE IDENTIFIED BY THE FACT THAT THEIR 2CADR IS STORED NEGATIVELY. IF PRDTTAB OF THE PHASE SPOT
# IS POSITIVE, THEN IT CONTAINS THE DELTA TIME, IF PRDTTAB IS NEGATIVE THEN IT IS THE -GENADR OF AN ERASABLE
# LOCATION CONTAINING THE DELTA TIME, THAT IS, THE TIME IS STORED INDIRECTLY. IT SHOULD BE NOTED AS ABOVE, THAT
# IF THE TIME IS STORED INDIRECTLY, THE BBCON MUST CONTAIN THE NECESSARY E BANK INFORMATION IF APPLICABLE. WITH
# WAITLIST WE HAVE ONE FURTHER OPTION, IF -0 IS STORED IN PRDTTAB, IT WILL CAUSE AN IMMEDIATE RESTART OF THE
# TASK. EXAMPLES,
#
# OCT 77777 # THIS WILL CAUSE AN IMMEDIATE RESTART
# -2CADR ATASK # OF THE TASK "ATASK"
#
# DEC 200 # IF THE TIME OF THE 2 SECONDS SINCE DUMMY
# -2CADR DUMMY # WAS PUT ON THE WAITLIST IS UP, IT WILL BEGIN
# # IN 10 MS, OTHERWISE IT WILL BEGIN WHEN
# # IT NORMALLY WOULD HAVE BEGUN.
# Page 212
# -GENADR DTIME # WHERE DTIME CONTAINS THE DELTA TIME
# -2CADR TASKTASK # OTHERWISE THIS IS AS ABOVE
#
# ***** NOW THE TABLES THEMSELVES *****
BANK 01
SETLOC RESTART
BANK
COUNT 01/RSTAB
PRDTTAB EQUALS 12000 # USED TO FIND THE PRIORITY OR DELTATIME
CADRTAB EQUALS 12001 # THIS AND THE NEXT RELATIVE LOC CONTAIN
# RESTART 2CADR
SIZETAB TC 1.2SPOT -12006
TC 1.3SPOT -12004
TC 2.2SPOT -12006
TC 2.3SPOT -12004
TC 3.2SPOT -12006
TC 3.3SPOT -12004
TC 4.2SPOT -12006
TC 4.3SPOT -12004
TC 5.2SPOT -12006
TC 5.3SPOT -12004
TC 6.2SPOT -12006
TC 6.3SPOT -12004
1.2SPOT EQUALS 3.2SPOT
# ANY MORE GROUP 1.EVEN RESTART VALUES SHOULD GO HERE.
1.3SPOT DEC 120 # THIS NUMBER MUST BE EQUAL C(JTAGTIME)
EBANK= AOG
-2CADR SETJTAG
1.5SPOT OCT 10000
EBANK= DAPDATR1
2CADR REDO40.9
1.7SPOT OCT 10000
EBANK= ESTROKER
2CADR RELINUS
1.11SPOT OCT 10000
EBANK= ESTROKER
2CADR PIKUP20
# ANY MORE GROUP 1.ODD RESTART VALUES SHOULD GO HERE.
2.2SPOT EQUALS 1.2SPOT
# ANY MORE GROUP 2.EVEN RESTART VALUES SHOULD GO HERE
# Page 213
2.3SPOT GENADR 600SECS
-GENADR STATEINT
EBANK= RRECTCSM
BBCON STATEINT
2.5SPOT OCT 05000
EBANK= RRECTCSM
2CADR STATINT1
2.7SPOT OCT 10000
EBANK= MRKBUF2
2CADR R22
2.11SPOT OCT 14000
EBANK= LANDMARK
2CADR V94ENTER
2.13SPOT OCT 10000
EBANK= MRKBUF2
2CADR REDOR22
# ANY MORE GROUP 2.ODD RESTART VALUES SHOULD GO HERE.
3.2SPOT EQUALS 4.2SPOT
# ANY MORE GROUP 3.EVEN RESTART VALUES SHOULD GO HERE
3.3SPOT OCT 20000
EBANK= TGO
2CADR S40.13
3.5SPOT DEC 0
DEC 0
DEC 0
3.7SPOT OCT 22000
EBANK= TEPHEM
2CADR MATRXJOB
3.11SPOT OCT 22000
EBANK= TEPHEM
2CADR REP11
3.13SPOT OCT 22000
EBANK= TEPHEM
2CADR REP11A
3.15SPOT -GENADR TGO +1
EBANK= TGO
-2CADR ENGINOFF
# Page 214
# ANY MORE GROUP 3.ODD RESTART VALUES SHOULD GO HERE
4.2SPOT OCT 77777
EBANK= TIG
-2CADR PRECHECK
OCT 30000
EBANK= DELVIMU
2CADR P47BODY
4.4SPOT OCT 77777
EBANK= TIG
-2CADR PRECHECK
DEC 2996
EBANK= DAPDATR1
-2CADR TTG/0
4.6SPOT OCT 77777
EBANK= TIG
-2CADR PRECHECK
DEC 2496
EBANK= TIG
-2CADR TIG-5
# ANY MORE GROUP 4.EVEN RESTART VALUES SHOULD GO HERE
4.3SPOT DEC 40
EBANK= PACTOFF
-2CADR DOTVCON
4.5SPOT DEC 160
EBANK= PACTOFF
-2CADR DOSTRULL
4.7SPOT DEC 500
EBANK= PACTOFF
-2CADR TIG-0
4.11SPOT DEC 250
EBANK= DAPDATR1
-2CADR V97E40.6
4.13SPOT DEC 200
EBANK= WHOCARES
-2CADR R40ENABL
4.15SPOT OCT 16000 # PRELAUNCH OPTICAL VERIFICATION
EBANK= OGC
# Page 215
2CADR COMPVER # CALLS FOR OPTICS DATA AGAIN (STD LEADIN)
4.17SPOT OCT 16000
EBANK= XSM
2CADR AZMTHCG1
4.21SPOT GENADR P40TMP # DELTA TIME USED IN SETTING UP
-GENADR TIGBLNK # LONG CALL OF TIGBLNK BY P40,P41
EBANK= P40TMP
BBCON TIGBLNK
4.23SPOT OCT 12000 # PROTECT P40S/SV BY P40 P41
EBANK= TIG
2CADR P40S/SV
4.25SPOT OCT 24000
EBANK= BESTI
2CADR PROG52
4.27SPOT DEC 250
EBANK= PACTOFF
-2CADR DOTVCRCS
4.31SPOT OCT 13000
EBANK= STAR
2CADR R51 +1
4.33SPOT DEC 2100 # PROTECT CONTINUING JOB TO START P63
EBANK= AOG
-2CADR WAKEP62
4.35SPOT OCT 12000
EBANK= DAPDATR1
2CADR POSTBURN
4.37SPOT DEC 500
EBANK= TIG
-2CADR TIGAVEG
4.41SPOT OCT 17000 # PROTECT DISPLAY JOB IN P67
EBANK= AOG
2CADR P67.1
4.43SPOT -GENADR S61DT # PROTECT TASK TO START PREREAD,ENTRY
EBANK= S61DT # S61.1C WILL CHANGE EBANK=EB7 FOR PREREAD
-2CADR S61.1C
4.45SPOT OCT 13000 # PROTECT CONTINUING JOB S61.1
EBANK= AOG # (ENTRY IMU ALIGNMENT)
# Page 216
2CADR S61.1A -1
4.47SPOT OCT 17000 # PROTECT HUNTEST ITERATION
EBANK= AOG
2CADR PRE-HUNT
4.51SPOT OCT 77777 # PROTECT FDAI ATTITUDE
EBANK= BODY3 # ERROR DISPLAY IN P11
-2CADR ATERTASK
4.53SPOT DEC -0
EBANK= END-E7 # EBANK7 FOR TIG
-2CADR V97ETASK
4.55SPOT OCT 13000 # PROTECT P65 RESPONSIVE DISPLAY.
EBANK= RTINIT
2CADR P65.1
4.57SPOT -GENADR P40TMP
EBANK= P40TMP
-2CADR TIGON
4.61SPOT OCT 77777
EBANK= PACTOFF
-2CADR IGNITION
4.63SPOT OCT 77777
EBANK= PACTOFF
-2CADR DOSPSOFF
4.65SPOT DEC 10
EBANK= TIG
-2CADR TIG-5
4.67SPOT DEC -0
EBANK= CSMMASS
-2CADR V97TTASK
4.71SPOT DEC 250
EBANK= DAPDATR1 # (FOR RCSDAPON)
-2CADR V97TRCS
4.73SPOT DEC -0
EBANK= V97VCNTR
-2CADR V97PTASK
4.75SPOT DEC -0
EBANK= DAPDATR1
-2CADR SPSOFF97
# Page 217
4.77SPOT DEC -0
EBANK= PACTOFF
-2CADR TIG-0
# ANY MORE GROUP 4.ODD RESTART VALUES SHOULD GO HERE
5.2SPOT OCT 32000
EBANK= DVCNTR
2CADR NORMLIZE
DEC 200
EBANK= AOG
-2CADR REREADAC
5.4SPOT OCT 20000
EBANK= DVCNTR
2CADR SERVICER
DEC 200
EBANK= AOG
-2CADR REREADAC
# ANY MORE GROUP 5.EVEN RESTART VALUES SHOULD GO HERE
5.3SPOT DEC 200
EBANK= AOG
-2CADR REREADAC
5.5SPOT OCT 77777
EBANK= AOG
-2CADR REDO5.5
5.7SPOT OCT 20000 # USED BY PRELAUNCH
EBANK= XSM
2CADR RSTGTS1
5.11SPOT OCT 77777
EBANK= XSM
-2CADR ALLOOP1
5.13SPOT OCT 20000
EBANK= XSM
2CADR WTLISTNT
5.15SPOT OCT 20000
EBANK= XSM
2CADR RESTEST1
5.17SPOT OCT 20000
EBANK= XSM
# Page 218
2CADR GEOSTRT4
5.21SPOT OCT 22000
EBANK= XSM
2CADR ALFLT1
5.23SPOT OCT 77777
EBANK= XSM
-2CADR SPECSTS
5.25SPOT OCT 20000
EBANK= XSM
2CADR RESTEST3
5.27SPOT OCT 20000
EBANK= XSM
2CADR RESTAIER
5.31SPOT DEC 0
DEC 0
DEC 0
5.33SPOT OCT 20000
EBANK= XSM
2CADR RESCHNG
5.35SPOT DEC 0
2DEC 0
5.37SPOT OCT 77777
EBANK= AOG
-2CADR CHEKAVEG
5.41SPOT OCT 77777 # TO PROTECT PREREAD AT TIG-30A
EBANK= DVCNTR # TIG-15 T+60
-2CADR PREREAD
# ANY MORE GROUP 5.ODD RESTART VALUES SHOULD GO HERE
6.2SPOT OCT 77777 # USED BY P40 AFTER GIMB DR TST TO REPOS'N
EBANK= AK # ENGINE UNTIL TVCDAPON
-2CADR PRE40.6
DEC 100
EBANK= TTOGO
-2CADR CLOKTASK
# ANY MORE 6.ODD RESTART VALUES SHOULD GO HERE
# Page 219
6.3SPOT DEC 100
EBANK= TIG
-2CADR CLOKTASK
6.5SPOT OCT 30000 # PROTECT INCREMENTING OF TIME2,TIME1 BY
EBANK= TEPHEM # P27(UPDATE PROGRAM)
2CADR TIMEDIDR
6.7SPOT OCT 0
OCT 0
OCT 0
6.11SPOT -GENADR CM/GYMDT # PROTECT TASK TO READ CDUS.
EBANK= CM/GYMDT # FOR ENTRY DAP
-2CADR READGYMB
6.13SPOT DEC 0
DEC 0
DEC 0
# Page 220
# PROGRAM DESCRIPTION: NEWPHASE DATE: 11 NOV 1966
# MOD: 1 ASSEMBLY: SUNBURST REV
# MOD BY: COPPS LOG SECTION: PHASE TABLE MAINTENANCE
#
# FUNCTIONAL DESCRIPTION:
#
# NEWPHASE IS THE QUICK WAY TO MAKE A NON VARIABLE PHASE CHANGE. IT INCLUDES THE OPTION OF SETTING
# TBASE OF THE GROUP. IF TBASE IS TO BE SET, -C(TIME1) IS STORED IN THE TBASE TABLE AS FOLLOWS:
#
# (L-1) TBASE0
# (L) TBASE1 (IF GROUP=1)
# (L+1)
# (L+2) TBASE2 (IF GROUP=2)
# -----
# (L+6) TBASE4 (IF GROUP=4)
# (L+7)
# (L+8) TBASE5 (IF GROUP=5)
#
# IN ANY CASE, THE NEGATIVE OF THE PHASE, FOLLOWED (IN THE NEXT REGISTER) BY THE PHASE, IS STORED IN THE
# PHASE TABLE AS FOLLOWS:
#
# (L) -PHASE1 (IF GROUP=1)
# (L+1) PHASE1
# (L+2) -PHASE2 (IF GROUP=2)
# (L+3) PHASE2
# -----
# (L+7) PHASE4
# (L+8) -PHASE5 (IF GROUP=5)
# (L+9) PHASE5
#
# CALLING SEQUENCE:
#
# EXAMPLE IS FOR PLACING A PHASE OF FIVE INTO GROUP THREE:
#
# 1) IF TBASE IS NOT TO BE SET:
# L-1 CA FIVE
# L TC NEWPHASE
# L+1 OCT 00003
#
# 2) IF TBASE IS TO BE SET:
# L-1 CS FIVE
# L TC NEWPHASE
# L+1 OCT 00003
#
# SUBROUTINES CALLED: NONE
#
# NORMAL EXIT MODE: AT L+2 OF CALLING SEQUENCE
#
# ALARM OR ABORT EXITS: NONE
#
# OUTPUT: PHASE TABLE AND TBASE TABLE UPDATED
#
# ERASABLE INITIALIZATION REQ'D: NONE
# Page 221
# DEBRIS: A,L,TEMPG
# *** WARNING *** THIS PROGRAM IS TO BE PLACED IN FIXED-FIXED AND UNSWITCHED ERASABLE.
BLOCK 02
SETLOC FFTAG1
BANK
COUNT* $$/PHASE
NEWPHASE INHINT
TS L # SAVE FOR FURTHER USE
NDX Q # OBTAIN THE GROUP NUMBER
CA 0
INCR Q # OBTAIN THE RETURN ADDRESS
DOUBLE # SAVE THE GROUP IN A FORM USED FOR
TS TEMPG # INDEXING
CCS L # SEE IF WE ARE TO SET TBASE
TCF +7 # NO, THE DELTA T WAS POSITIVE
TCF +6
NUFAZ+10 INCR A # SET TBASE AND STORE PHASE CORRECTLY
TS L
CS TIME1 # SET TBASE
NDX TEMPG
TS TBASE1 -2
CS L # NOW PUT THE PHASE IN THE RIGHT TABLE LOC
NDX TEMPG
DXCH -PHASE1 -2
RELINT
TC Q # NOW RETURN TO CALLER