My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
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
# Copyright: Public domain.
# Filename: RESTARTS_ROUTINE.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: 1303-1309
# Mod history: 2009-05-27 OH Transcribed from page images.
#
# 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-61
# 16:27 JULY 14, 1969

# Page 1303
BANK 01
SETLOC RESTART
BANK

EBANK= PHSNAME1 # GOPROG MUST SWITCH TO THIS EBANK

COUNT* $$/RSROU
RESTARTS CA MPAC +5 # GET GROUP NUMBER -1
DOUBLE # SAVE FOR INDEXING
TS TEMP2G

CA PHS2CADR # SET UP EXIT IN CASE IT IS AN EVEN
TS TEMPSWCH # TABLE PHASE

CA RTRNCADR # TO SAVE TIME ASSUME IT WILL GET NEXT
TS GOLOC +2 # GROUP AFTER THIS

CA TEMPPHS
MASK OCT1400
CCS A # IS IT A VARIABLE OR TABLE RESTART
TCF ITSAVAR # IT'S A VARIABLE RESTART

GETPART2 CCS TEMPPHS # IS IT AN X.1 RESTART
CCS A
TCF ITSATBL # NO, IT'S A TABLE RESTART

CA PRIO14 # IT IS AN X.1 RESTART, THEREFORE START
TC FINDVAC # THE DISPLAY RESTART JOB
EBANK= LST1
2CADR INITDSP

TC RTRNCADR # FINISHED WITH THIS GROUP, GET NEXT ONE

ITSAVAR MASK OCT1400 # IS IT TYPE B ?
CCS A
TCF ITSLIKEB # YES, IT IS TYPE B

EXTEND # STORES THE JOB (OR TASK) 2CADR FOR EXIT
NDX TEMP2G
DCA PHSNAME1
DXCH GOLOC

CA TEMPPHS # SEE IF THIS IS A JOB, TASK, OR A LONGCALL
MASK OCT7
AD MINUS2
CCS A
TCF ITSLNGCL # IT'S A LONGCALL

RTRNCADR TC SWRETURN # CAN'T GET HERE.
# Page 1304
TCF ITSAWAIT

TCF ITSAJOB # IT'S A JOB

ITSAWAIT CA WTLTCADR # SET UP WAITLIST CALL
TS GOLOC -1

NDX TEMP2G # DIRECTLY STORED
CA PHSPRDT1
TIMETEST CCS A # IS IT AN IMMEDIATE RESTART
INCR A # NO.
TCF FINDTIME # FIND OUT WHEN IT SHOULD BEGIN

TCF ITSINDIR # STORED INDIRECTLY

TCF IMEDIATE # IT WANTS AN IMMEDIATE RESTART

# ***** THIS MUST BE IN FIXED FIXED *****

BLOCK 02
SETLOC FFTAG2
BANK

COUNT* $$/RSROU
ITSINDIR LXCH GOLOC +1 # GET THE CORRECT E BANK IN CASE THIS IS
LXCH BB # SWITCHED ERASABLE

NDX A # GET THE TIME INDIRECTLY
CA 1

LXCH BB # RESTORE THE BB AND GOLOC
LXCH GOLOC +1

TCF FINDTIME # FIND OUT WHEN IT SHOULD BEGIN

# ***** YOU MAY RETURN TO SWITCHED FIXED *****

BANK 01
SETLOC RESTART
BANK

COUNT* $$/RSROU
FINDTIME COM # MAKE NEGATIVE SINCE IT WILL BE SUBTRACTED
TS L # AND SAVE
NDX TEMP2G
CS TBASE1
EXTEND
SU TIME1
CCS A
COM
# Page 1305
AD OCT37776
AD ONE
AD L
CCS A
CA ZERO
TCF +2
TCF +1
IMEDIATE AD ONE
TC GOLOC -1
ITSLIKEB CA RTRNCADR # TYPE B, SO STORE RETURN IN
TS TEMPSWCH # TEMPSWCH IN CASE OF AN EVEN PHASE

CA PRT2CADR # SET UP EXIT TO GET TABLE PART OF THIS
TS GOLOC +2 # VARIABLE TYPE OF PHASE

CA TEMPPHS # MAKE THE PHASE LOOK RIGHT FOR THE TABLE
MASK OCT177 # PART OF THIS VARIABLE PHASE
TS TEMPPHS

EXTEND
NDX TEMP2G # OBTAIN THE JOB'S 2CADR
DCA PHSNAME1
DXCH GOLOC

ITSAJOB NDX TEMP2G # NOW ADD THE PRIORITY AND LET'S GO
CA PHSPRDT1
CHKNOVAC TS GOLOC -1 # SAVE PRIO UNTIL WE SEE IF IT'S
EXTEND # A FINDVAC OR A NOVAC
BZMF ITSNOVAC

CAF FVACCADR # POSITIVE, SET UP FINDVAC CALL.
XCH GOLOC -1 # PICK UP PRIO
TC GOLOC -1 # AND GO

ITSNOVAC CAF NOVACADR # NEGATIVE,
XCH GOLOC -1 # SET UP NOVAC CALL,
COM # CORRECT PRIO,
TC GOLOC -1 # AND GO

ITSATBL TS CYR # FIND OUT IF THE PHASE IS ODD OR EVEN
CCS CYR
TCF +1 # IT'S EVEN
TCF ITSEVEN

CA RTRNCADR # IN CASE THIS IS THE SECOND PART OF A
TS GOLOC +2 # TYPE B RESTART, WE NEED PROPER EXIT

CA TEMPPHS # SET UP POINTER FOR FINDING OUR PLACE IN
TS SR # THE RESTART TABLES
AD SR
# Page 1306
NDX TEMP2G
AD SIZETAB +1
TS POINTER

CONTBL2 EXTEND # FIND OUT WHAT'S IN THE TABLE
NDX POINTER
DCA CADRTAB # GET THE 2CADR

LXCH GOLOC +1 # STORE THE BB INFORMATION

CCS A # IS IT A JOB OR IT IT TIMED
INCR A # POSITIVE, MUST BE A JOB
TCF ITSAJOB2

INCR A # MUST BE EITHER A WAITLIST OR LONGCALL
TS GOLOC # LET'S STORE THE CORRECT CADR

CA WTLTCADR # SET UP OUR EXIT TO WAITLIST
TS GOLOC -1

CA GOLOC +1 # NOW FIND OUT IF IT IS A WAITLIST CALL
MASK BIT10 # THIS SHOULD BE ONE IF WE HAVE -BB
CCS A # FOR THAT MATTER SO SHOULD BE BITS 9,8,7,
# 6,5, AND LAST BUT NOT LEAST (PERHAPS NOT
# IN IMPORTANCE ANYWAY. BIT 4
TCF ITSWTLST # IT IS A WAITLIST CALL

NDX POINTER # OBTAIN THE ORIGINAL DELTA T
CA PRDTTAB # ADDRESS FOR THIS LONGCALL

TCF ITSLGCL1 # NOW GO GET THE DELTA TIME

# ***** THIS MUST BE IN FIXED FIXED *****

BLOCK 02
SETLOC FFTAG2
BANK

COUNT* $$/RSROU
ITSLGCL1 LXCH GOLOC +1 # OBTAIN THE CORRECT E BANK
LXCH BB
LXCH GOLOC +1 # AND PRESERVE OUR E AND F BANKS

EXTEND # GET THE DELTA TIME
NDX A
DCA 0

LXCH GOLOC +1 # RESTORE OUR E AND F BANK
LXCH BB # RESTORE THE TASKS E AND F BANKS
LXCH GOLOC +1 # AND PRESERVE OUR L
# Page 1307
TCF ITSLGCL2 # NOT LET'S PROCESS THIS LONGCALL

# ***** YOU MAY RETURN TO SWITCHED FIXED *****

BANK 01
SETLOC RESTART
BANK

COUNT* $$/RSROU
ITSLGCL2 DXCH LONGTIME

EXTEND # CALCULATE TIME LEFT
DCS TIME2
DAS LONGTIME
EXTEND
DCA LONGBASE
DAS LONGTIME

CCS LONGTIME # FIND OUT HOW THIS SHOULD BE RESTARTED
TCF LONGCLCL
TCF +2
TCF IMEDIATE -3
CCS LONGTIME +1
TCF LONGCLCL
NOOP # CAN'T GET HERE ************
TCF IMEDIATE -3
TCF IMEDIATE

LONGCLCL CA LGCLCADR # WE WILL GO TO LONGCALL
TS GOLOC -1

EXTEND # PREPARE OUR ENTRY TO LONGCALL
DCA LONGTIME
TC GOLOC -1

ITSLNGCL CA WTLTCADR # ASSUME IT WILL GO TO WAITLIST
TS GOLOC -1

NDX TEMP2G
CS PHSPRDT1 # GET THE DELTA T ADDRESS

TCF ITSLGCL1 # NOW GET THE DELTA TIME

ITSWTLST CS GOLOC +1 # CORRECT THE BBCON INFORMATION
TS GOLOC +1

NDX POINTER # GET THE DT AND FIND OUT IF IT WAS STORED
CA PRDTTAB # DIRECTOY OR INDIRECTLY

TCF TIMETEST # FIND OUT HOW THE TIME IS STORED

# Page 1308
ITSAJOB2 XCH GOLOC # STORE THE CADR

NDX POINTER # ADD THE PRIORITY AND LET'S GO
CA PRDTTAB

TCF CHKNOVAC

ITSEVEN CA TEMPSWCH # SET FOR EITHER THE SECOND PART OF THE
TS GOLOC +2 # TABLE, OR A RETURN FOR THE NEXT GROUP

NDX TEMP2G # SET UP POINTER FOR OUR LOCATION WITHIN
CA SIZETAB # THE TABLE
AD TEMPPHS # THIS MAY LOOK BAD BUT LET'S SEE YOU DO
AD TEMPPHS # BETTER IN TIME OR NUMBER OF LOCATIONS
AD TEMPPHS
TS POINTER

TCF CONTBL2 # NO PROCESS WHAT IS IN THE TABLE

PHSPART2 CA THREE # SET THE POINTER FOR THE SECOND HALF OF
ADS POINTER # THE TABLE

CA RTRNCADR # THIS WILL BE OUR LAST TIME THROUGH THE
TS GOLOC +2 # EVEN TABLE, SO AFTER IT GET THE NEXT
# GROUP
TCF CONTBL2 # SO LET'S GET THE SECOND ENTRY IN THE TBL

TEMPPHS EQUALS MPAC
TEMP2G EQUALS MPAC +1
POINTER EQUALS MPAC +2
TEMPSWCH EQUALS MPAC +3
GOLOC EQUALS VAC5 +20D
MINUS2 EQUALS NEG2
OCT177 EQUALS LOW7

PHS2CADR GENADR PHSPART2
PRT2CADR GENADR GETPART2
LGCLCADR GENADR LONGCALL
FVACCADR GENADR FINDVAC
WTLTCADR GENADR WAITLIST
NOVACADR GENADR NOVAC


Change log

r390 by jim.lawton on Sep 3, 2009   Diff
Set eol-style on AGC sources to native.
Go to: 
Project members, sign in to write a code review

Older revisions

r259 by i...@sandroid.org on Jul 21, 2009   Diff
AGC source code renamed from *.s to
*.agc and AEA source code
renamed from *.s to *.aea to take
advantage of the fact that
Google has implemented syntax
...
r199 by ohommes on May 27, 2009   Diff
Added several small LMY99 files. Only
needed to make some comment fixes.
All revisions of this file

File info

Size: 7686 bytes, 325 lines

File properties

svn:eol-style
native
Powered by Google Project Hosting