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
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
# Copyright: Public domain.
# Filename: DISPLAY_INTERFACE_ROUTINES.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: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1341-1373
# Mod history: 2009-05-27 RSB Adapted from the corresponding
# Luminary131 file, using page
# images from Luminary 1A.
# 2011-01-06 JL Fixed pseudo-label indentation.
# 2011-05-08 JL Removed workaround.

# 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 1341
# DISPLAYS CAN BE CLASSIFIED INTO THE FOLLOWING CATEGORIES --
# 1. PRIORITY DISPLAYS -- DISPLAYS WHICH TAKE PRIORITY OVER ALL OTHER DISPLAYS. USUALLY THESE DISPLAYS ARE SENT
# OUT UNDER CRITICAL ALARM CONDITIONS.
# 2. EXTENDED VERB DISPLAYS -- ALL EXTENDED VERBS AND MARK ROUTINES SHOULD USE EXTENDED VERB (MARK) DISPLAYS.
# 3. NORMAL DISPLAYS -- ALL MISSION PROGRAM DISPLAYS WHICH INTERFACE WITH THE ASTRONAUT DURING THE NORMAL
# SEQUENCE OF EVENTS.
# 4. MISC. DISPLAYS -- ALL DISPLAYS NOT HANDLED BY THE DISPLAY INTERFACE ROUTINES. THESE INCLUDE SUCH DISPLAYS AS
# MM DISPLAYS AND SPECIAL PURPOSE DISPLAYS HANDLED BY PINBALL.
# 5. ASTRONAUT INITIATED DISPLAYS -- ALL DISPLAYS INITIATED EXTERNALLY.
#
# THE FOLLOWING TERMS ARE USED TO DESCRIBE THE STATUS OF DISPLAYS --
# 1. ACTIVE -- THE DISPLAY WHICH IS (1) BEING DISPLAYED TO THE ASTRONAUT AND WAITING FOR A RESPONSE OR
# (2) WAITING FIRST IN LINE FOR THE ASTRONAUT TO FINISH USING THE DSKY OR (3) BEING DISPLAYED ON THE DSKY
# BUT NOT WAITING FOR A RESPONSE.
# 2. INACTIVE -- A DISPLAY WHICH HAS (1) BEEN ACTIVE BUT WAS INTERRUPTED BY A DISPLAY OF HIGHER PRIORITY,
# (2) BEEN PUT INTO THE WAITING LIST AT TIME IT WAS REQUESTED DUE TO THE FACT A HIGHER PRIORITY DISPLAY
# WAS ALREADY DOING, (3) BEEN INTERRUPTED BY THE ASTRONAUT (CALLED A PINBRANCH CONDITION, SINCE THIS TYPE
# OF INACTIVE DISPLAY IS USUALLY REACTIVATED ONLY BY PINBALL) OR (4) A DISPLAY WHICH HAS FINISHED BUT STILL
# HAS INFO SAVED FOR RESTART PURPOSES.
#
# DISPLAY PRIORITIES WORK AS FOLLOWS --
# INTERRUPTS --
# 1. THE ASTRONAUT CAN INTERRUPT ANY DISPLAY WITH AN EXTERNAL DISPLAY REQUEST.
# 2. INTERNAL DISPLAYS CAN NOT BE SENT OUT WHEN THE ASTRONAUT IS USING THE DSKY.
# 3. PRIORITY DISPLAYS INTERRUPT ALL OTHER TYPES OF INTERNAL DISPLAYS. A PRIORITY DISPLAY INTERRUPTING ANOTHER
# PRIORITY DISPLAY WILL CAUSE AN ABORT UNLESS BIT14 IS SET FOR THE LINUS ROUTINE.
# 4. A MARK DISPLAY INTERRUPTS ANY NORMAL DISPLAY.
# 5. A MARK THAT INTERRUPTS A MARK COMPLETELY REPLACES IT.
#
# ORDER OF WAITING DISPLAYS --
# 1. ASTRONAUT
# 2. PRIORITY
# 3. INTERRUPTED MARK
# 4. INTERRUPTED NORMAL
# 5. MARK TO BE REQUESTED (SEE DESCRIPTION OF ENDMARK)
# 6. MARK WAITING
# 7. NORMAL WAITING
#
# Page 1342
# THE DISPLAY ROUTINES ARE INTENDED TO SERVE AS AN INTERFACE BETWEEN THE USER AND PINBALL. THE
# FOLLOWING STATEMENTS CAN BE MADE ABOUT NORMAL DISPLAYS AND PRIORITY DISPLAYS (A DESCRIPTION OF MARK ROUTINES
# WILL FOLLOW LATER):
# 1. ALL ROUTINES THAT END IN R HAVE AN IMMEDIATE RETURN TO THE USER. FOR ALL FLASHING DISPLAYS THIS RETURN
# IS TO THE USER'S CALL CADR +4. FOR THE ONLY NON-FLASHING IMMEDIATE RETURN DISPLAY (GODSPR) THIS RETURN
# IS TO THE USER'S CALLING LOC +1.
# 2. ALL ROUTINES NOT ENDING IN R DO NOT DO AN IMMEDIATE RETURN TO THE USER.
# 3. ALL ROUTINES THAT END IN R START A SEPARATE JOB (MAKEPLAY) WITH USER'S JOB PRIORITY.
# 4. ALL ROUTINES NOT ENDING IN R BRANCH DIRECTLY TO MAKEPLAY WHICH MAKES THESE DISPLAYS A PART OF THE
# USER'S JOB.
# 5. ALL DISPLAY ROUTINES ARE CALLED VIA BANKCALL.
# 6. TO RESTART A DISPLAY THE USER WILL GENERALLY USE A PHASE OF ONE WITH DESIRED RESTART GROUP (SEE
# DESCRIPTION OF RESTARTS).
# 7. ALL FLASHING DISPLAYS HAVE 3 RETURNS TO THE USER FROM ASTRONAUT RESPOSES. A TERMINATE (V34) BRANCHES
# TO THE USER'S CALL CADR +1. A PROCEED (V33) BRANCHES TO THE USER'S CALL CADR +2. AN ENTER OR RECYCLE
# (V32) BRANCHES TO THE USER'S CALL CADR +3.
# 8. ALL ROUTINES MUST BE USED UNDER EXECUTIVE CONTROL
#
# A DESCRIPTION OF EACH ROUTINE WITH AN EXAMPLE FOLLOWS:
# GODSP IS USED TO DISPLAY A VERB NOUN ARRIVING IN A. NO RETURN IS MADE TO THE USER.
# 1. GODSP IS NOT RESTARTABLE
# 2. A VERB PASTE WITH GODSP ALWAYS TURNS ON THE FLASH.
# CAF VXXNYY
# TC BANKCALL
# CADR GODSP
# VXXNYY OCT 0XXYY
# GODSPR IS THE SAME AS GODSP ONLY RETURN IS TO THE USER.
# CAF VXXNYY
# TC BANKCALL
# CADR GODSPR
# ... ... # IMMEDIATE RETURN OF GODSPR
# GOFLASH DISPLAYS A FLASHING VERB NOUN WITH NO IMMEDIATE RETURN TO THE USER. 3 RETURNS ARE POSSIBLE FORM
# THE ASTRONAUT (SEE NO. 7 ABOVE).
# CAF VXXNYY # VXX NYY WILL BE A FLASHING VERB NOUN.
# TC BANKCALL
# CADR GOFLASH
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# GOPERF1 IS ENTERED WITH DESIRED CHECKLIST VALUE IN A. GOPERF1 WILL DISPLAY THIS VALUE IN R1 BY MEANS OF A
# Page 1343
# V01 N25. A FLASHING PLEASE PERFORM ON CHECKLIST (V50 N25) IS THEN DISPLAYED. NO IMMEDIATE RETURN IS MADE TO
# USER (SEE NO. 7 ABOVE).
# GOPERF1 BLANKS REGISTERS R2 AND R3
# CAF OCTXX # CODE FOR CHECKLIST VALUE XX
# TC BANKCALL
# CADR GOPERF1
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOPERF2 IS ENTERED WITH A VARIABLE NOUN AND V01 (V00 FOR N10 OR N11) IN A. GOPERF2 WILL FIRST DISPLAY THE
# REQUESTED NOUN BY MEANS OF A V01NYY OR A V00NYY. PLEASE PERFORM ON NOUN (V50 NYY) THEN BECOMES A FLASHING
# DISPLAY. NO IMMEDIATE RETURN IS MADE TO THE USER (SEE NO. 7 ABOVE).
# GOPERF2 DOES NOT BLANK ANY REGISTERS
# CAF VXXNYY # VARIABLE NOUN YY. XX=0 OR 01.
# TC BANKCALL
# CADR GOPERF2
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOPERF3 IS USED FOR A PLEASE PERFORM ON A PROGRAM NUMBER. THE DESIRED PROGRAM NO. IS ENTERED IN A. GOPERF3
# DISPLAYS THE NO. BY MEANS OF A V06 N07 FOLLOWED BY A FLASHING V50 N07 FOR A PLEASE PERFORM. NO IMMEDIATE RETURN
# IS MADE TO THE USER (SEE NO. 7 ABOVE).
# GOPERF3 BLANKS REGISTERS R2 AND R3
# CAF DECXX # REQUEST PERFORM ON PXX
# TC BANKCALL
# CADR GOPERF3
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOPERF4 IS USED FOR A PLEASE PERFORM ON AN OPTION. THE DESIRED OPTION IS ENTERED IN A AND STORED IN OPTION1.
# GOPERF4 DISPLAYS R1 AND R2 BY MEANS OF A V04N06 FOLLOWED BY A FLASHING V50N06 FOR A PLEASE PERFORM. NO
# IMMEDIATE RETURN IS MADE TO THE USER (SEE NO. 7 ABOVE).
# CAF OCTXX # REQUEST PERFORM ON OPTION XX
# TC BANKCALL
# CADR GOPERF4
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOPERF4 BLANKS REGISTER R3.
# Page 1344
# GODSPRET IS USED TO DISPLAY A VERB NOUN ARRIVING IN A WITH A RETURN TO THE USER AFTER THE DISPLAY HAS BEEN SENT
# OUT.
# CAF VXXXNYY
# TC BANKCALL
# CADR GODSPRET
# ... ... # RETURN TO USER.
# REGODSP IS USED TO DISPLAY A VERB NOUN ARRIVING IN A. REGODSP IS THE SAME AS GODSP ONLY REGODSP REPLACES ANY
# ACTIVE NORMAL DISPLAY IF ONE WAS ACTIVE.
# CAF VXXNYY
# TC BANKCALL
# CADR REGODSP
# REFLASH IS THE SAME AS GOFLASH ONLY REFLASH REPLACES ANY ACTIVE NORMAL DISPLAY IF ONE WAS ACTIVE.
# CAF VXXNYY # VXX NYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR REFLASH
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOFLASHR IF SAME AS GOFLASH ONLY AN IMMEDIATE RETURN IS MADE TO THE USER'S CALL CADR +4.
# CAF VXXNYY
# TC BANKCALL
# CADR GOFLASHR
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# ... ... # IMMEDIATE RETURN FROM GOFLASHR
# GOPERF1R IS THE SAME AS GOPERF1 ONLY GOPERF1R HAS AN IMMEDIATE RETURN TO USER'S CALL CADR +4.
# GOPERF1R BLANKS REGISTERS R2 AND R3
# CAF OCTXX # CODE FOR CHECKLIST VALUE XX.
# TC BANKCALL
# CADR GOPERF1R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN FROM GOPERF1R
# GOPERF2R IS THE SAME AS GOPERF2 ONLY AN IMMEDIATE RETURN IS MADE TO USER'S CALL CADR +4.
# Page 1345
# GOPERF2R DOES NOT BLANK ANY REGISTERS
# CAF VXXXNYY # VARIABLE NOUN YY REQUESTED. XX=00 OR 01
# TC BANKCALL
# CADR GOPERF2R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN HERE FROM GOPERF2R
# GOPERF3R IS THE SAME AS GOPERF3 ONLY AN IMMEDIATE RETURN IS MADE TO USER'S CALL CADR +4.
# GOPERF3R BLANKS REGISTERS R2 AND R3
# CAF PROGXX # PERFORM PROGRAM XX
# TC BANKCALL
# CADR GOPERF3R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # GOPERF3R IMMEDIATELY RETURNS HERE
# GOPERF4R IS THE SAME AS GOPERF4 ONLY AN IMMEDIATE RETURN IS MADE TO USER'S CALL CADR +4.
# CAF OCTXX # REQUEST PERFORM ON OPTIONXX
# TC BANKCALL
# CADR GOPERF4R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN TO USER
# GOPERF4R BLANKS REGISTER R3.
# REFLASHR IS THE SAME AS REFLASH ONLY AN IMMEDIATE RETURN IS MADE TO THE USER'S CALL CADR +4.
# CAF VXXNYY # VXX NYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR REFLASHR
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN TO USER
# REGODSPR IS THE SAME AS REGODSP ONLY A RETURN (IMMEDIATE) IS MADE TO THE USER.
# Page 1346
# CAF VXXNYY
# TC BANKCALL
# CADR REGODSPR
# ... ... # IMMEDIATE RETURN TO USER
# Page 1347
# GOMARK IS USED TO DISPLAY A MARK VERB NOUN ARRIVING IN A. NO RETURN IS MADE TO THE USER.
# GOXDSP = GOMARK
# CAF VXXNYY # VXXNYY CONTAINS VERB AND NOUN
# TC BANKCALL
# CADR GOMARK # OTHER EXTENDED VERBS USE CADR GOXDSP
# GOMARKR IS THE SAME AS GOMARK ONLY RETURN IS TO THE USER.
# GOXDSPR = GOMARKR
# CAF VXXNYY
# TC BANKCALL
# CADR GOMARKR # OTHER EXTENDED VERBS USE CADR GOXDSPR
# ... ... # IMMEDIATE RETURN OF GOMARKR
# GOMARKF DISPLAYS A FLASHING MARK VERB NOUN WITH NO IMMEDIATE RETURN TO THE USER. 3 RETURNS ARE POSSIBLE FROM
# THE ASTRONAUT (SEE NO. 7 ABOVE).
# GOXDSPF = GOMARKF
# CAF VXXNYY # VXXNYY WILL BE A FLASHING MARK VERB NOUN
# TC BANKCALL
# CADR GOMARKFR # OTHER EXTENDED VERBS USE CADR GOXDSPFR
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# GOMARKFR IS THE SAME AS GOMARKF ONLY AN IMMEDIATE RETURN IS MADE TO THE USER CALL CADR +4.
# GOXDSPFR = GOMARKFR
# CAF VXXNYY # FLASHING MARK VERB NOUN
# TC BANKCALL
# CADR GOMARKFR # OTHER EXTENDED VERBS USE CADR GOXDSPFR
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# ... ... # IMMEDIATE RETURN TO THE USER
# GOMARK1 IS USED FOR A PLEASE PERFORM ON A MARK REQUEST WITH ONLY 1 ASTRONAUT RETURN TO THE USER. NO IMMEDIATE
# RETURN IS MADE. THE DESIRED MARK PLEASE PERFORM VERB AND DESIRED NOUN IS ENTERED IN A. GOMARK1 DISPLAYS R1, R2, R
# MEANS OF A V05NYY FOLLOWED BY A FLASHING V5XNYY FOR A PLEASE PERFORM. THE ASTRONAUT WILL RESPOND WITH A MARK
# OR MARK REJECT OR AN ENTER. THE ENTER IS THE ONLY ASTRONAUT RESPONSE THAT WILL COME BACK TO THE USER.
# CAF V5XNYY # X=1,2,3,4 Y=NOUN
# TC BANKCALL
# Page 1348
# CADR GOMARK1
# ... ... # ENTER RETURN
# *** IF BLANKING DESIRED ON NON-R ROUTINES, NOTIFY DISPLAYER.
#
# GOMARK1R IS THE SAME AS A GOMARK1 ONLY AN IMMEDIATE RETURN IS MADE TO THE USER'S CALL CADR +2.
# CAF V5XNYY # X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK1R
# ... ... # ASTRONAUT ENTER RETURN
# ... ... # IMMEDIATE RETURN TO USER
# GOMARK2 IS THE SAME AS GOMARK1 ONLY 3 RETURNS ARE MADE TO THE USER FROM THE ASTRONAUT.
# CAF V5XNYY # X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK2
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOMARK2R IS THE SAME AS GOMARK1R ONLY 3 ASTRONAUT RETURNS ARE MADE TO THE USER.
# CAF V5XNYY # X=0,1,2,3,4 YY=NOUN
# TCF BANKCALL
# CADR GOMARK2R
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# ... ... # IMMEDIATE RETURN TO THE USER.
# GOMARK3 IS USED FOR A PLEASE PERFORM ON A MARK REQUEST WITH A 3 COMP. DEC DISPLAY. THE DESIRED MARK PLEASE
# PERFORM VERB AND NOUN ARE ENTERED IN A. GOMARK3 DISPLAYS R1, R2, R3 BY MEANS OF A V06NYY FOLLOWED BY A FLASHING
# V5XNYY FOR A PLEASE PERFORM. GOMARK3 HAS 3 ASTRONAUT RETURNS TO THE USER WITH NO IMMEDIATE RETURN.
# CAF V5XNYY # X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK3
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# ... ... # ENTER RETURN
# GOMARK4 IS THE SAME AS GOMARK3 ONLY R2 AND R3 ARE BLANKED AND R1 IS DISPLAYED IN OCTAL.
# CAF V5XNYY # X=1,2,3,4 YY=NOUN
# TC BANKCALL
# CADR GOMARK4
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# Page 1349
# ... ... # ENTER RETURN
# EXDSPRET IS USED TO DISPLAY A VERB NOUN ARRIVING IN A WITH A RETURN MADE TO THE USER AFTER THE DISPLAY HAS BEEN
# SEND OUT.
# CAF VXNYY
# TC BANKCALL
# CADR EXDSPRET
# ... ... # RETURN TO USER
# KLEENEX CLEANS OUT ALL MARK DISPLAYS (ACTIVE AND INACTIVE). A RETURN IS MADE TO THE USER AFTER THE MARK DISPLAYS
# HAVE BEEN CLEANED OUT.
# TC BANKCALL
# CADR KLEENEX
# ... ... # RETURN TO USER
# MARKBRAN IS A SPECIAL PURPOSE ROUTINE USED FOR SAVING JOB VAC AREAS (SEE DESCRIPTION OF MARKBRAN BELOW).
# TC BANKCALL
# CADR MARKBRAN
# ... ... # BAD RETURN IF MARK DISPLAY NOT ACTIVE
# # (GOOD RETURN TO IMMEDIATE RETURN LOC OF
# # LAST FLASHING MARK R ROUTINE)
# PINBRNCH REESTABLISHES THE LAST ACTIVE FLASHING DISPLAY. IF THERE IS NO ACTIVE FLASHING DISPLAY, THE DSKY IS
# BLANKED AND CONTROL IS SENT TO ENDOFJOB.
# TC POSTJUMP
# CADR PINBRNCH
# PRIODSP IS USED AS A PRIORITY DISPLAY. IT WILL DISPLAY A GOFLASH TYPE DISPLAY WITH THREE POSSIBLE RETURNS FROM
# THE ASTRONAUT (SEE NO. 7 ABOVE).
# THE MAIN PURPOSE OF PRIODSP IS TO REPLACE THE PRESENT DISPLAY WITH A DISPLAY OF HIGHER PRIORITY AND TO
# PROVIDE A MEANS FOR RESTORING THE OLD DISPLAY WHEN THE PRIORITY DISPLAY
# IS RESPONDED TO BY THE ASTRONAUT.
# THE FORMER DISPLAY IS RESTORED BY AN AUTOMATIC BRANCH TO WAKE UP THE DISPLAY THAT WAS INTERRUPTED BY THE
# PRIO DISPLAY
# CAF VXXNYY # VXXNYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR PRIODSP
# ... ... # TERMINATE RETURN
# ... ... # PROCEED RETURN
# Page 1350
# ... ... # ENTER OR RECYCLE RETURN
# PRIODSPR IS THE SAME AS PRIODSP ONLY AN IMMEDIATE RETURN IS MADE TO THE USER'S CALL CADR +4.
# CAF VXXNYY # VXXNYY WILL BE A FLASHING VERB NOUN
# TC BANKCALL
# CADR PRIODSPR
# ... ... # TERMINATE ACTION
# ... ... # PROCEED RETURN
# ... ... # ENTER OR RECYCLE RETURN
# ... ... # IMMEDIATE RETURN
# PRIOLARM DOES A V05N09 PRIODSPR.
#
# CLEANDSP CLEANS OUT ALL NORMAL DISPLAYS (ACTIVE AND INACTIVE). A RETURN IS MADE TO THE USER AFTER NORMAL
# DISPLAYS ARE CLEANED OUT.
# TC BANKCALL
# CADR CLEANDSP
# ... ... # RETURN TO USER
# Page 1351
#
# GENERAL INFORMATION
# -------------------
#
# ALARM OR ABORT EXIT MODE --
# PRIOBORT TC ABORT
# OCT 1502
#
# PRIOBORT IS BRANCHED TO WHEN (1) A NORMAL DISPLAY IS REQUESTED AND ANOTHER NORMAL DISPLAY IS ALREADY ACTIVE
# (REFLASH AND REGODSP ARE EXCEPTIONS) OR (2) A PRIORITY DISPLAY IS REQUESTED WHEN ANOTHER PRIORITY DISPLAY IS
# ALREADY ACTIVE (A PRIORITY WITH LINUS BIT14 IS AN EXCEPTION).
#
# ERASABLE INITIALIZATION REQUIRED --
# ACCOMPLISHED BY FRESH START -- 1. FLAGWRD4 (USED EXCLUSIVELY BY DISPLAY INTERFACE ROUTINES)
# 2. NVSAVE = NORMAL VERB AND NOUN REGISTER.
# 3. EBANKTEM = NORMAL INACTIVE FLAGWORD (ALSO CONTAINS NORMALS EBANK).
# 5. R1SAVE = MARKBRAN CONTROL WORD
# 4. RESTREG = PRIORITY 30 AND SUPERBANK 3.
#
# OUTPUT --
# NVWORD = PRIO VERB AND NOUN
# NVWORD +1 (MARKNV) = MARK VERB AND NOUN
# NVWORD +2 (NVSAVE) = NORMAL VERB AND NOUN
# DSPFLG (EBANKSAV) = PRIO FLAGWORD (INCLUDING EBANK)
# DSPFLG +1 (MARKEBAN) = MARK FLAGWORD (INCLUDING EBANK)
# DSPFLG +2 (EBANKTEM) = NORMAL FLAGWORD (INCLUDING EBANK)
# CADRFLSH = PRIO USER'S CALL CADR +1 LOCATION
# CADRFLSH +1 (MARKFLSH) = MARK USER'S CALL CADR +1 LOCATION
# CADRFLSH +2 (TEMPFLSH) = NORMAL USER'S CALL CADR +1 LOCATION
# PRIOTIME = TIME EACH PRIO REQUEST FIRST SENT OUT
# OPTION1 = DESIRED OPTION FROM GOPERF4
# FLAGWRD4 = BIT INFO FOR CONTROL OF ALL DISPLAY ROUTINES
# DSPTEM1 = R1 INFO FOR ASTRONAUT FROM PERFORM DISPLAYS (NORMAL)
#
# SUBROUTINES USED -- NVSUB, FLAGUP, FLAGDOWN, ENDOFJOB, BLANKSUB, ABORT, JOBWAKE, JOBSLEEP, FINDVAC, PRIOCHNG,
# JAMTERM, NVSUBUSY, FLASHON, ENDIDLE, CHANG1, BANKJUMP, MAKECADR, NOVAC
#
# DEBRIS -- (STORED INTO)
# TEMPORARY TEMPORARIES -- A, Q, L, MPAC +2, MPAC +3, MPAC +4, MPAC +5, MPAC +6, RUPREG2, RUPTREG3, CYL,
# EBANK, RUPTREG4, LOC, BANKSET, MODE, MPAC, MPAC +1, FACEREG
# ERASABLES (SHARED AND USED WITH OTHER PROGRAMS) -- CADRSTOR, DSPLIST, LOC, DSPTEM1, OPTION1
# ERASABLES (USED ONLY BY DISPLAY ROUTINES) -- NVWORD,+1,+2, DSPFLAG,+1,+2, CADRFLSH,+1,+2, PRIOTIME, FLAGWRD4,
# Page 1352
# R1SAVE, MARK2PAC
#
# DEBRIS -- (USED BUT NOT STORED INTO) -- NOUNREG, VERBREG, LOCCTR, MONSAVE1
#
# FLAGWORD DESCRIPTIONS --
# FLAGWRD4 -- SEE DESCRIPTION UNDER LOG SECTION ERASABLE ASSIGNMENTS
#
# DSPFLG, DSPFLG+1, DSPFLG+2
# --------------------------
# BITS 1 BLANK R1
# 2 BLANK R2
# 3 BLANK R3
# 4 FLASHING DISPLAY REQUESTED
# 5 PERFORM DISPLAY REQUESTED
# 6 ----- EXDSPRET GODSPRET
# 7 PRIO DISPLAY ----- -----
# 8 ----- DEC MARK PERFORM -----
# 9 EBANK
# 10 EBANK
# 11 EBANK
# 12 ----- ----- V99PASTE
# 13 2ND PART OF PERFORM
# 14 REFLASH OR REDO ----- REFLASH OR REDO
# 15 ----- MARK REQUEST -----
#
# RESTARTING DISPLAYS --
#
# RULES FOR THE DSKY OPERATOR --
# 1. PROCEED AND TERMINATE SERVE AS RESPONSES TO REQUESTS FOR OPERATOR RESPONSE (FLASHING V/N). AS LONG
# AS THERE IS ANY REQUEST AWAITING OPERATOR RESPONSE, ANY USE OF PROCEED OR TERMINATE WILL SERVE AS
# RESPONSES TO THAT REQUEST. CARE SHOULD BE EXERCISED IN ATTEMPTING TO KILL AN OPERATOR INITIATED MONITOR
# WITH PROCEED AND TERMINATE FOR THIS REASON.
# 2. THE ASTRONAUT MUST RESPOND TO A PRIORITY DISPLAY NO SOONER THAN 2 SECONDS FROM THE TIME THE
# PROGRAM SENT OUT THE REQUEST FOR OPERATOR RESPONSE (THE ASTRONAUT WOULD SEE THIS DISPLAY FOR LESS TIME
# DUE TO TIME IT TAKES TO GET DISPLAY SENT OUT.) IF THE ASTRONAUT RESPONDS TOO SOON, THE PRIORITY DISPLAY
# IS SENT OUT AGAIN -- AND AGAIN UNTIL AN ACCUMULATED 2 SECS FROM THE TIME THE FIRST PRIORITY DISPLAY
# OUT. THE SAME 2 SEC. DELAY WILL OCCUR AT 163.84 SECS OR IN ANY MULTIPLE OF THAT TIME DUE TO PROGRAM
# CONSIDERATION.
# 3. KEY RELEASE BUTTON --
# A) IF THE KEY RELEASE LIGHT IS ON, IT SIMPLY RELEASES THE KEYBOARD AND DISPLAY FOR INTERNAL USE.
# B) IF THE KEY RELEASE LIGHT IS OFF, AND IF SOME REQUEST FOR OPERATOR RESPONSE (FLASHING V/N) IS STILL
# AWAITING RESPONSE THEN IT RE-ESTABLISHES THE DISPLAYS THAT ORIGINALLY REQUESTED RESPONSE.
# IF AN OPERATOR WANTS THEREFORE TO RE-ESTABLISH BUT CONDITION (A) IS ENCOUNTERED, A SECOND DEPRESSION OF
# KEY RELEASE BUTTON MAY BE NECESSARY.
# 4. IT IS IMPORTANT TO ANSWER ALL REQUESTS FOR OPERATOR RESPONSE.
# 5. IT IS ALWAYS GOOD PRACTICE TO TERMINATE AN EXTENDED VERB BEFORE ASKING FOR ANOTHER ONE OR THE SAME ONE
# OVER AGAIN.
#
# SPECIAL CONSIDERATONS --
# Page 1353
# 1. MPAC +2 SAVED ONLY IN MARK DISPLAYS
# 2. GODSP(R), REGODSP(R), GOMARK(R) ALWAYS TURN ON THE FLASH IF ENTERED WITH A PASTE VERB REQUEST.
# 3. ALL NORMAL DISPLAYS ARE RESTARTABLE EXCEPT GODSP(R), REGODSP(R)
# 4. ALL EXTENDED VERBS WITH DISPLAYS SHOULD START WITH A TC TESTXACT AND FINISH WITH A TC ENDEXT.
# 5. GODSP(R) AND REGODSP(R) MUST BE IN THE SAME EBANK AND SUPERBANK AS THE LAST NORMAL DISPLAY RESTARTED
# BY A .1 RESTART PHASE CHANGE.
# 6. IN ORDER TO SET UP A NON DISPLAY .1 RESTART POINT, THE USER MUST MAKE CERTAIN THAT RESTREG CONTAINS THE
# CORRECT PRIORITY AND SUPERBANK AND THAT EBANKTEM CONTAINS THE CO
# 7. IF CLEANDSP IS RESTARTED VIA A .1 PHASE CHANGE, CAF ZERO SHOULD BE EXECUTED BEFORE THE TC BANKCALL.

# Page 1354
# CALLING SEQUENCE FOR BLANKING
# CAF BITX # X=1,2,3 BLANK R1,R2,R3 RESPECTIVELY
# TC BLANKET
# ... ... # RETURN TO USER HERE
# IN ORDER TO USE BLANKET CORRECTLY, THE USER MUST USE A DISPLAY ROUTINE THAT ENDS IN R FIRST FOLLOWED BY THE CALL
# TO BLANKET AT THE IMMEDIATE RETURN LOC.
BLOCK 02
SETLOC FFTAG4
BANK

COUNT* $$/DSPLA
BLANKET TS MPAC +6
CS PLAYTEM4
MASK MPAC +6
INDEX MPAC +5
ADS PLAYTEM4

TC Q

ENDMARK TC POSTJUMP
CADR MARKEND

CLEARMRK CAF ZERO
TS EXTVBACT

+2 INHINT
CS XDSPBIT
MASK FLAGWRD4
TS FLAGWRD4

RELINT
TC Q

# *** ALL EXTENDED VERB ROUTINES THAT HAVE AT LEAST ONE FLASHING DISPLAY MUST TCF ENDMARK OR TCF ENDEXT WHEN
# FINISHED.

BANK 10
SETLOC DISPLAYS
BANK

COUNT* $$/DSPLA

# NTERONLY IS USED TO DIFFERENTIATE THE MARK ROUTINE WITH ONLY ONE RETURN TO THE USER FROM THE MARKING ROUTINE WITH
# 3 RETURNS TO THE USER. THIS ROUTINE IS ONLY USED BY GOMARK1 AND GOMARK1R.

MARKEND TC CLEARMRK
TCF MARKOVER

GOMARK TS PLAYTEM1 # ENTRANCE FOR MARK GODSP
# Page 1355
GOMARS CAF BIT15 # BIT15 SET FOR ALL MARK REQUESTS
TCF GOFLASH2

KLEENEX CAF ZERO # CLEAN OUT EXTENDED VERBS
GOMARKF TS PLAYTEM1 # ENTRANCE FOR MARK GOFLASH

CAF MARKFMSK # MARK, FLASH
TCF GOFLASH2

GOMARK2 TS PLAYTEM1 # MARK GOPERFS-3 AST. RETURNS
MARKFORM CAF MPERFMSK # MARK, PERFORM, FLASH
TCF GOFLASH2

GOMARK3 TS PLAYTEM1 # USED FOR 3COMP DECIMAL PERFORM
CAF MARK3MSK
TCF GOFLASH2

GOMARK4 TS PLAYTEM1
CAF MARK4MSK # MARK,PERFORM,FLASH,BLANK
TCF GOFLASH2

GOMARKR TS PLAYTEM1 # ENTRANCE FOR MARK GODSPR

CAF BIT15
TCF GODSPR2

GOMARKFR TS PLAYTEM1 # ENTRANCE FOR MARK GOFLASHR

CAF MARKFMSK
TCF GODSPRS

GOMARK2R TS PLAYTEM1 # MARK GOPERFS-3 AST. RETS+ IMMEDIATE RET.
CAF MPERFMSK # MARK, PERFORM, FLASH
TCF GODSPRS

GOMARK3R TS PLAYTEM1
CAF MARK3MSK
TCF GODSPRS

MAKEMARK CAF ONE
TC COPIES

CA FLAGWRD4 # IS NORM OR PRIO BUSY OR WAITING
MASK OCT34300
CCS A
TCF CHKPRIO

CA FLAGWRD4 # IS MARK SLEEPING DUE TO ASTRO BUSY
MASK MRKNVBIT

EXTEND
# Page 1356
BZF MARKPLAY # NO

TCF ENDOFJOB

MARKPLAY INHINT
CS FIVE # RESET MARK OVER NORM, SET MARK
MASK FLAGWRD4
AD ONE
TS FLAGWRD4
RELINT

GOGOMARK CS MARKFLAG # PERFORM
MASK BIT5
CCS A
TCF MARKCOP
CS MARKNV
TS MARKNV

MARKCOP CAF ONE # MARK INDEX
TCF PRIOPLAY

COPYTOGO CA MPAC2SAV
TS MPAC +2

COPYPACS INDEX COPINDEX
CAF PRIOOCT
TS GENMASK

INDEX COPINDEX
CAF EBANKSAV
TS TEMPOR2 # ACTIVE EBANK AND FLAG

TS EBANK

TC Q

# PINCHEK CHECKS TO SEE IF THE CURRENT MARK REQUEST IS MADE BY THE ASTRONAUT WHILE INTERUPTING A GOPLAY DISPLAY
# (A NORMAL OR A PRIO). IF THE ASTRONAUT TRIES TO MARK DURING A PRIO, THE CHECK FAIL LIGHT GOES ON AND THE MARK
# REQUEST IS ENDED. IF HE TRIES TO MARK DURING A NORM, THE MARK IS ALLOWED. IN THIS CASE THE NORM IS PUT TO SLEEP
# UNTIL ALL MARKING IS FINISHED.
#
# IF THE MARK REQUEST COMES FROM THE PROGRAM DURING A TIME THE ASTRONAUT IS NOT INTERRUPTING A NORMAL OR A
# PRIO, THE MARK REQUEST IS PUT TO SLEEP UNTIL THE PRESENT ACTIVE DISPLAY IS RESPONDED TO BY THE ASTRONAUT.

CHKPRIO CA FLAGWRD4 # MARK ATTEMPT DURING PRIO
MASK OCT24100
CCS A
TCF MARSLEEP

CS FLAGWRD4
# Page 1357
MASK MKOVBIT # SET MARK OVER NORM
INHINT
ADS FLAGWRD4

TCF SETNORM

MARKPERF CA MARKNV
MASK VERBMASK
TCF NV50DSP

GODSP TS PLAYTEM1

GODSP2 CAF ZERO
TCF GOFLASH2

GODSPRET TS PLAYTEM1 # ENTRANCE FOR A GODSP WITH A PASTE

CAF BIT6 # SET BIT6 TO GO BACK TO USER AFTER NVSUB
TCF GOFLASH2

GODSPR TS PLAYTEM1

GODSPR1 CAF ZERO
GODSPR2 TS PLAYTEM4

CAF ZERO # * DON'T MOVE
TCF GODSPRS1

# CLEANDSP IS USED FOR CLEARING OUT A NORMAL DISPLAY THAT IS PRESENTLY ACTIVE OR A NORMAL DISPLAY THAT IS
# SET UP TO BE STARTED OR RESTARTED.
#
# NORMALLY THE USER WILL NOT NEED TO USE THIS ROUTINE SINCE A NEW NORMAL DISPLAY AUTOMATICALLY CLEARS OUT AN
# OLD DISPLAY.
#
# CALLING SEQUENCE FOR CLEANDSP --
#
# TC BANKCALL
# CADR CLEANDSP

CLEANDSP CAF ZERO
REFLASH TS PLAYTEM1

CAF REDOMASK # FLASH AND PERMIT
TCF GOFLASH2

REFLASHR TS PLAYTEM1

CAF REDOMASK # FLASH AND PERMIT
TCF GODSPRS

# Page 1358
REGODSP TS PLAYTEM1

CAF BIT14
TCF GOFLASH2

REGODSPR TS PLAYTEM1

CAF BIT14
TCF GODSPR2

CLOCPLAY TS PLAYTEM1
CAF CLOCKCON
TCF GOFLASH2

GOFLASH TS PLAYTEM1

CAF BIT4 # LEAVE ONLY FLASH BIT SET
GOFLASH2 TS PLAYTEM4

TC SAVELOCS

RELINT

TCF MAKEPLAY # BRANCH DIRECT WITH NO SEPARATE JOB CALL

PRIODSPR TS PLAYTEM1

CAF BITS7+4
TCF GODSPRS

PRIODSP TS PLAYTEM1

SETPRIO CAF BITS7+4
TCF GOFLASH2

MAKEPRIO CAF ZERO
TS COPINDEX

TC LINUSCHR
TCF HIPRIO # LINUS RETURN
CA FLAGWRD4
MASK OCT20100 # IS PRIO IN ENDIDLE OR BUSY
CCS A
TCF PRIOBORT # YES, ABORT

HIPRIO CA FLAGWRD4 # MARK ACTIVE
MASK OCT40400
EXTEND
BZF ASKIFNRM # NO

# Page 1359
SETMARK CAF ZERO
TCF JOBXCHS

ASKIFNRM CA FLAGWRD4 # NORMAL ACTIVE
MASK OCT10200 # BITS 13+8
EXTEND
BZF OKTOCOPY # NO

SETNORM CAF ONE
TCF JOBXCHS

OKTOCOPY TC COPYNORM
TC WITCHONE

TC JOBWAKE

TC XCHTOEND

REDOPRIO CA TIME1 # SAVE TIME PRIODSP SENT OUT
TS PRIOTIME

KEEPPRIO CAF ZERO # START UP PRIO DISPLAY
TCF PRIOPLAY

MAKEPLAY CA PRIORITY # SAVE USER'S PRIORITY
MASK PRIO37
TS USERPRIO

CAF PRIO33 # RAISE PRIORITY FOR FAST JOBS AFTER WAKE
TC PRIOCHNG

CA PLAYTEM4 # IS IT MARK OR PRIO OR NORM
MASK BITS15+7
CCS A
TCF MAKEPRIO # ITS PRIO
TCF IFLEGAL
TCF MAKEMARK # ITS MARK

IFLEGAL CAF TWO
TS COPINDEX

TC LINUSCHR

TCF OKTOPLAY # LINUS RETURN
CS EBANKTEM
MASK BIT4
CCS A
TCF OKTOPLAY # NO

CA FLAGWRD4 # WAS NORM ASLEEP
# Page 1360
MASK NBUSMASK # ARE ANY NORMS ASLEEP
EXTEND
BZF OKTOPLAY # NO

PRIOBORT TC P00DOO
OCT 1502

OKTOPLAY TC COPIES2

CA USERPRIO
EXTEND
ROR SUPERBNK
TS RESTREG

CA FLAGWRD4 # PRIO OR MARK GOING
MASK PMMASK
CCS A
TCF GOSLEEPS # MARK GOING

TCF +2
TCF GOSLEEPS

# COULD PUT NORM BUSY CHECK HERE TO SAVE TIME

TC WITCHONE # IS IT NVSUB BUSY, ENDIDLE OR NOONE
TC JOBWAKE

TC XCHTOEND

PLAYJUM1 CAF TWO
PRIOPLAY TS COPINDEX

TCF GOPLAY

EXDSPRET TS PLAYTEM1

CAF BIT15+6
TCF GOFLASH2

GOPERF1 TS NORMTEM1 # STORE DESIRED CHECKLIST VALUE
CAF V01N25 # USED TO DISPLAY CHECKLIST VALUE IN R1

GOPERFS TS PLAYTEM1

CAF PERFMASK # LEAVE ONLY FLASH, PERFORM, BLANKING
TCF GOFLASH2

GOPERF2 TS PLAYTEM1 # DESIRED VERB-NOUN TO DISPLAY R1,R2,R3

CAF PERF2MSK
TCF GOFLASH2

# Page 1361
GOPERF4 TC PURRS4

TCF GOFLASH2

GOFLASHR TS PLAYTEM1

CAF BIT4 # LEAVE ONLY FLASH BIT SET
GODSPRS TS PLAYTEM4

CAF THREE

GODSPRS1 INHINT # IMMEDIATE RETURN IS CALL CADR +4
TS RUPTREG3

CA PRIORITY # MAKE DISPLAY ONE HIGHER THAN USER
MASK PRIO37
TS NEWPRIO

CA PLAYTEM4 # IS THIS A FLASHING R DISPLAY
MASK BIT4
CCS A
TCF VACDSP # YES, MAKE DSPLAY JOB A VAC
CA NEWPRIO # NO, MAKE DSPLAY JOB A NOVAC
TC NOVAC
EBANK= WHOCARES
2CADR MAKEPLAY

TCF BOTHJOBS

VACDSP CA BBANK
EXTEND
ROR SUPERBNK
TS L
CAF MAKEGEN
TC SPVAC

BOTHJOBS TC SAVELOCS # COPY TEMPS INTO PERMANENT REGISTERS

EXTEND # SAVE NVWORD AND USER'S MPAC +2
DCA MPAC +1
INDEX LOCCTR
DXCH MPAC +1

EXTEND # SAVE USER'S CADR, FLAGS AND EBANK
DCA MPAC +3
INDEX LOCCTR
DXCH MPAC +3

CA LOCCTR
TS MPAC +5
# Page 1362
TC SAVELOCR
RELINT

TCF BANKJUMP # CALL CADR +4

GOPERF1R TS NORMTEM1 # DESIRED CHECKLIST VALUE

CAF V01N25 # DISPLAYS CHECKLIST VALUE IN R1

GOPERFRS TS PLAYTEM1

CAF PERFMASK # LEAVE ONLY FLASH, PERFORM, BLANKING
TCF GODSPRS

GOPERF2R TS PLAYTEM1 # DESIRED VERB-NOUN TO DISPLAY R1,R2,R3

CAF PERF2MSK
TCF GODSPRS

GOPERF4R TC PURRS4

TCF GODSPRS

PURRS4 TS OPTION1 # DESIRED OPTION CODE

CAF V04N06
TS PLAYTEM1

CAF PERF4MSK # FLASH, PERFORM AND EBANK R3
TC Q

SAVELOCS INHINT

CS OCT3400 # EBANK BITS
MASK PLAYTEM4
AD EBANK
TS PLAYTEM4

SAVELOCR LXCH Q

TC MAKECADR
TS PLAYTEM3

AD RUPTREG3 # NOT USED FOR NON R ROUTINES
TC L

COPYNORM CAF ZERO
COPIES TS COPINDEX
COPIES2 INHINT
CA PLAYTEM4 # FLAGWORD

# Page 1363
INDEX COPINDEX
TS EBANKSAV # EQUIV TO DSPFLG

MASK CADRMASK # FLASH AND GODSPRET
EXTEND
BZF SKIPADD

CA PLAYTEM3
INDEX COPINDEX
TS CADRFLSH

SKIPADD CA PLAYTEM1 # VERB NOUN
INDEX COPINDEX
TS NVWORD

TCF RELINTQ

GOSLEEPS INDEX COPINDEX
CA PRIOOCT
MASK WAITMASK
TC UPENT2
WAITMASK OCT 3004
CS ONE
AD COPINDEX
TS FACEREG

XCHSLEEP INDEX FACEREG
CAF WAKECADR
INHINT
TC JOBWAKE # FIND CADR IN JOB AREA

TC XCHTOEND # CAUSES AWAKENED JOB TO GO TO ENDOFJOB

INDEX FACEREG # REPLACE SAME CADR BUT NEW JOB AREA
CAF WAKECADR
TCF JOBSLEEP

JOBXCHS TS FACEREG # CONTROLS TYPE OF DISPLAY PUT TO SLEEP
TC WITCHONE
TC JOBWAKE
CA FACEREG
INDEX LOCCTR
TS FACEREG

CAF XCHQADD
TC XCHNYLOC

INDEX FACEREG
CA MARKOCT
MASK IDLESLEP

# Page 1364
TC DOWNENT2
IDLEMASK OCT 74004 # * DON'T MOVE

INDEX FACEREG # BIT SHOWS PRIO INTERRUPTED NORM OR MARK
CA BIT5 # BIT5 FOR MARK, BIT4 FOR NORMAL
AD FOUR
TC UPENT2 # FLAG ROUTINE DOES RELINT
XCHQADD GENADR XCHSLEEP # * DON'T MOVE
CA FLAGWRD4
MASK MKOVBIT # MARK OVER NORM?
CCS A
GENMARK TC MARKPLAY # USED AS GENADR FOR JOBWAKE
TCF OKTOCOPY

MARKWAKE CAF ZERO
WAKEPLAY TS TEMPOR2

INDEX TEMPOR2
CA BITS5+11
AD FOUR
TC DOWNENT2
MARKFMSK OCT 40010 # *** DON'T MOVE

INDEX TEMPOR2
CAF WAKECADR
INHINT
TC JOBWAKE

TCF ENDRET

# ALL .1 RESTARTS BRANCH DIRECTLY TO INITDSP. NORMAL DISPLAYS ARE THE ONLY DISPLAYS ALLOWED TO USE .1 RESTARTS
# INITDSP FIRST RESTORES THE EBANK AND THE SUPERBANK TO THE MOST RECENT NORMAL EBANK AND SUPERBANK.
#
# IF THE MOST RECENT NORMAL DISPLAY REQUEST WAS NOT FINISHED, CONTROL IS SENT BACK TO THE LAST NORMAL USER.
# OTHERWISE THE NORMAL DISPLAY SET UP IN THE NORMAL DISPLAY REGS IS STARTED UP IMMEDIATELY.

INITDSP CA EBANKTEM # RESTORE MOST RECENT NORMAL EBANK
TS EBANK

CA RESTREG # SUPERBANK AND JOB PRIORITY
TC SUPERSW # RESTORE SUPERBANK

MASK PRIO37
TC PRIOCHNG

CS THREE
AD TEMPFLSH
TCF BANKJUMP

PINBRNCH RELINT # FOR GOPIN USERS
CA MARK2PAC # NEEDED TO SAVE MPAC +2 FOR MARK USERS
# Page 1365
TS MPAC +2 # ONLY

CA FLAGWRD4 # PINBRANCH CONDITION
MASK PINMASK
CCS A
TCF +3
TCF ERASER # ** NOTHING IN ENDIDLE
TCF MARKPLAY

NORMBNCH TC UPFLAG # SET PINBRANCH BIT
ADRES PINBRFLG

CAF PRIODBIT # PRIO INTERRUPTED
MASK FLAGWRD4
CCS A
TCF KEEPPRIO

TCF PLAYJUM1

NVDSP TC COPYPACS

CA TEMPOR2 # SET UP BLANK BITS FOR NVMONOPT IN CASE
MASK SEVEN # USER REQUESTS BLANKING MONITOR
TS L

CS BIT13
INDEX COPINDEX
MASK DSPFLG
INDEX COPINDEX
TS DSPFLG

MASK BIT8 # BIT8 SET IF DEC MARK PERFORM DISPLAY
TS TEM1

CA MPAC +2
TS MPAC2SAV

TS MARK2PAC # * FOR DISK ONLY *
INDEX COPINDEX
CCS NVWORD
TCF NVDSP1
TCF CLEANEND
CS MARKNV
TS MARKNV # IN CASE MARKPLAY AWAKENED AFTER SLEEPING
MASK LOW7
AD V05N00M1
AD TEM1
NVDSP1 AD ONE
NV50DSP TC NVMONOPT
TCF REST # IF BUSY

# Page 1366
TC FLASHOFF # IN CASE OF EXTENDED VERB NON-FLASH

TC COPYTOGO # MPACS DESTROYED BY NVSUB
TC DOWNFLAG # UNSET SLEEPING BITS
ADRES MRKNVFLG
TC DOWNFLAG
ADRES NRMNVFLG
TC DOWNFLAG
ADRES PRONVFLG
BLANKCHK CA TEMPOR2 # BLANK BITS 1,2,3 IF SET
TC BLANKSUB
TCF NVDSP
PERFCHEK CAF BIT5 # BIT5 FOR PERFORM
MASK TEMPOR2
CCS A # IS THIS A GOPERF DISPLAY
TCF 1STOR2ND # YES

GOANIDLE CAF BIT4
MASK TEMPOR2
CCS A
TCF FLASHSUB # IT IS

CS TEMPOR2 # IS THIS A GODSPRET
MASK BIT6
CCS A
TCF ISITN00

INDEX COPINDEX
CA CADRFLSH
TS MPAC +3
TCF ENDIT

ISITN00 INDEX COPINDEX # IS THIS A PASTE
CA NVWORD
MASK LOW7 # CHECK MADE FOR PINBRNCH AND PRIO ON MARK
EXTEND
BZF FLASHSUB # YES, ASSUME PASTE ALWAYS ON FLASH

TCF ENDOFJOB # NOT FLASH, NOT GOPERF, THEREFORE EXIT

1STOR2ND CA TEMPOR2
MASK BIT13
CCS A
TCF GOANIDLE # SECOND

CA BIT13
INDEX COPINDEX
ADS DSPFLG

ZL
# Page 1367
EXTEND # IS IT MARK
BZMF MARKPERF # YES

MASK BIT12
EXTEND
BZF V50PASTE
CS NVWORD1 # NVOWRD1= -0 IS V97. NVWORD1= -400 IS V99
AD V97N00
TCF NV50DSP
V50PASTE CAF V50N00
TCF NV50DSP # DISPLAY SECOND PART OF GOPERF

WITCHONE CS BIT5 # TURN OFF KEY RELEASE LIGHT
EXTEND
WAND DSALMOUT

CA FLAGWRD4
MASK NVBUSMSK # IS IT NVSUB ALEEP
CCS A
CAF ONE
TS L
CAF ZERO
INDEX L
XCH CADRSTOR

INHINT
TC Q

XCHTOEND CAF ENDINST # TC ENDOFJOB REPLACES GENADR IN LOC FOR
XCHNYLOC XCH LOCCTR # WAS THIS ADDRESS SLEEPING
EXTEND
BZMF RELINTQ # NO
XCH LOCCTR # YES
INDEX LOCCTR
TS LOC

RELINTQ RELINT
TC Q # BACK TO USER

CLEANEND CAF PRIO32 # ONE LOWER THAN DISPLAYS SLEEPING
TC FINDVAC
EBANK= NVSAVE
2CADR JAMTERM

TCF FLASHSUB +1

ISITPRIO CA FLAGWRD4
MASK ITISMASK # IS PINBRFLG, MARKIDFLG SET
EXTEND
# Page 1368
BZF PRIOBORT
TCF ENDOFJOB

REST CCS CADRSTOR # IS SOMEONE IN ENDIDLE
TCF ENDOFJOB # YES
TCF RESTSLEP

TCF ENDOFJOB

RESTSLEP CA GENMASK # SET NVSLEEP BITS
MASK ASTROMSK
TC UPENT2
OCT24100 OCT 24100 # *** DON'T MOVE

INDEX COPINDEX
CAF NVCADR
TC NVSUBUSY # BUSY OR ABORT IF ILLEGAL

FLASHSUB TC FLASHON

CA COPINDEX # COPINDEX DESTROYED BY ENDIDLE
TS COPMPAC

CA GENMASK
MASK IDLEMASK
TC UPENT2
ITISMASK OCT 40040 # *** ENDIDLE ALLOW *** DON'T MOVE

CA R1SAVE # IS THIS A REPEAT AND RETURN DISPLAY
INDEX COPINDEX
MASK BIT3
CCS A
TCF UNSETR1 # YES

CCS CADRSTOR # SEE IF SOMEONE ALREADY IN ENDIDLE
TCF ISITPRIO
TCF +2
TCF ISITPRIO

TC ENDIDLE
IDLERET1 TCF TERMATE

TCF PROCEED # ENDIDLE RETURNS HERE ON PROCEED

CS LOWLOAD
AD MPAC # VERBREG
EXTEND
DIM A
EXTEND
BZF LOADITIS # V21 OR V22 OR V23 ON DSKY

# Page 1369
OKTOENT CAF TWO
ENDOUT TS OUTHERE

CA FLAGWRD4 # CHECK NATURE OF ENDIDLE RETURN
MASK OCT60000
CCS A
TCF TIMECHEK # PRIO ENDIDLE RETURN
TCF NORMRET # NORMAL ENDIDLE RETURN
TCF MARKRET # MARK ENDIDLE RETURN

TIMECHEK CS TIME1
AD PRIOTIME
CCS A
COM
AD OCT37776
AD ONE
AD -2SEC
EXTEND
BZMF KEEPPRIO

TCF NORMRET

NORMWAKE CAF ONE
TCF WAKEPLAY

ENDRET CCS OUTHERE
AD ONE
TCF +2 # NORMAL ENDIDLE EXIT
TCF ENDOFJOB
INDEX COPMPAC
AD CADRFLSH
TS MPAC +3

CA GENMASK # REMOVE ENDIDLE AND PINBRANCH BITS
MASK PINIDMSK
TC DOWNENT2
PINIDMSK OCT 74044 # *** DON'T MOVE

CS THREE # BLANK EVERYTHING EXCEPT MM
TC NVSUB
TCF +1

ENDIT CA USERPRIO # RETURN TO USER'S PRIORITY
MASK PRIO37
TC PRIOCHNG
CA MPAC +3
TCF BANKJUMP

UNSETR1 INDEX COPINDEX # RESET REPEAT AND RETURN REQUEST
CS BIT3
# Page 1370
MASK R1SAVE
TS R1SAVE

CAF ZERO # *** 205 ONLY MARKBRAN USERS IN
TC SUPERSW # SUPERBANK 0

-1 CAF THREE # RETURN TO USER'S IMMEDIATE RETURN LOC
IMMEDRET INDEX COPINDEX
AD CADRFLSH
TCF BANKJUMP

TERMATE CAF ZERO # ASTRONAUT TERMINATE (V34) RETURNS TO
TCF ENDOUT

LINUSCHR CS PLAYTEM4 # IS THIS A LINUS
MASK BIT14
CCS A
TCF Q+1 # NO
CS PLAYTEM3 # YES, IS IT ALREADY IN ENDIDLE
INDEX COPINDEX
AD CADRFLSH
EXTEND
BZF +2 # YES

TC Q # NO
CCS DSPLOCK # IS THE ASTRONAUT BUSY
TC ENDOFJOB # END THE NEW DISPLAY, IT'S ALREADY ACTIVE
TC Q

# MORE LOGIC COULD BE INCORPORATED HERE TO MAKE SURE A RECYCLE IS A RECYCLE AND CONVERSELY THAT A LOAD IS A LOAD

PROCEED CAF ONE # ASTRONAUT PROCEED (V33) RETURNS
TCF ENDOUT

# LASTPLAY CHECKS TO SEE IF (1) THE LAST NORMAL DISPLAY WAS EITHER INTERRUPTED BY A PRIO OR A MARK (MARK
# COULD ONLY HAPPEN DURING PINBRANCH) OR IF (2) THE LAST NORMAL DISPLAY WAS REQUESTED WHILE A HIGHER PRIORITY
# DISPLAY WAS GOING, RESULTING IN THE NORMAL BEING PUT TO SLEEP.
#
# IF EITHER OF THE ABOVE 2 CONDITIONS EXISTS, THE NORMAL DISPLAY IS AWAKENED TO GO TO PLAYJUM1 WHICH STARTS
# UP THE MOST RECENT VALID NORMAL DISPLAY. IF THESE 2 CONDITIONS DO NOT EXIST, CONTROL GOES TO PLAYJUM1 WHICH IS
# STARTED IMMEDIATELY WITH THE ASSUMPTION THAT THE MOST RECENT NORMAL DISPLAY IS ALREADY IN ENDIDLE (DURING A
# PINBRNCH) OR THAT A RESTART HAS OCCURRED AND THE DISPLAY CAN BE STARTED AS A .1 RESTART.

MARKRET CS SIX
MASK FLAGWRD4
INHINT # *** MAY MOVE DISPLAY FLAGWORD OUT OF
TS FLAGWRD4

RELINT # INHINT REALM
TCF ENDRET

# Page 1371
MARKOVER CAF MINUS1 # RUPTREG2 IS - MEANS ENDOFJOB TO ENDRET
TS OUTHERE

CA FLAGWRD4 # IS ENDIDFLG SET
MASK PRIO30 # IS NORMAL OR PRIO IN ENDIDLE
CCS A
TCF NORMBNCH

NORMRET CA FLAGWRD4 # IS MARK SLEEPING
MASK BITS5+11 # OR WAITING
CCS A
TCF MARKWAKE

CA FLAGWRD4 # NO
MASK BITS4+10 # IS NORMAL INTERRUPTED OR WAITING
CCS A
TCF NORMWAKE # YES

CA EBANKTEM # NO, WAS IT A FLASH REQUEST
MASK OCT50 # OR A GODSPRET
CCS A
TCF ENDRET # YES
CA NVSAVE
EXTEND
BZF ENDRET

CAF PRIO15
INHINT
TC NOVAC
EBANK= NVWORD
2CADR PLAYJUM1

TCF ENDRET

MARSLEEP CA FLAGWRD4 # IS MARK ALREADY IN
MASK BITS5+11
CCS A
TCF ENDOFJOB # YES
TCF GOSLEEPS

LOADITIS INDEX COPMPAC
CA NVWORD
MASK LOW7
COM
AD MPAC +1 # NOUNREG
EXTEND
BZF OKTOENT # NO, THEN LOAD IS VALID
TCF PINBRNCH # YES, ACCEPT LOAD BUT ASK FOR LAST AGAIN

# Page 1372
ERASER CS THREE # BLANK EVERYTHING EXCEPT MM
TC NVSUB
TCF ENDOFJOB
TCF ENDOFJOB

PERFMASK OCT 0036 # FLASH, PERFORM, BLANK R2 AND R3
V01N25 VN 00125
V06N07 VN 00607 # GOPERF3 VN DISPLAY BEFORE V50
V50N00 VN 5000
PERF2MSK OCT 00030 # FLASH, PERFORM
V04N06 VN 00406
PERF4MSK OCT 14 # FLASH, BLANK R3
GOAGIN EQUALS PINBRNCH
REDOMASK OCT 20010 # BITS 4 AND 14
MARK3MSK OCT 40230 # MARK, DECIMAL NOUN, PERFORM, FLASH
MARK4MSK OCT 40036 # MARK, PERFORM, FLASH, BLANK 2 AND 3
NVCADR CADR REDOPRIO
WAKECADR CADR MARKPLAY
CADR PLAYJUM1

OCT3400 OCT 3400 # EBANK MASK
NBUSMASK OCT 11210
PMMASK OCT 66521
VERBMASK = MID7 # (OCT 37600)
V05N00M1 OCT 1177 # V05 MINUS ONE
GOXDSP EQUALS GOMARK
GOXDSPR EQUALS GOMARKR
GOXDSPF EQUALS GOMARKF
GOXDSPFR EQUALS GOMARKFR
ENDEXT EQUALS ENDMARK
MPAC2SAV EQUALS BANKSET
NVBUSMSK OCT 700
ASTROMSK OCT 704
MPERFMSK OCT 40030 # BIT 15,5,4 FOR MARK,PERFORM,FLASH
OCT34300 OCT 34300
BITS15+7 OCT 40100
BITS7+4 OCT 110
DSPFLG EQUALS EBANKSAV
MARKFLAG EQUALS MARKEBAN
SAVEFLAG EQUALS EBANKTEM
BITS5+11 OCT 2020 # * DON'T MOVE
BITS4+10 OCT 1010 # * DON'T MOVE
LOWLOAD DEC 22
BUSYMASK OCT 77730
CADRMASK OCT 50
PINMASK EQUALS 13,14,15
GOPLAY EQUALS NVDSP
PRIOSAVE EQUALS R1SAVE
COPMPAC EQUALS MPAC +3
TEMPOR2 EQUALS MPAC +4

# Page 1373
OUTHERE EQUALS MPAC +5
COPINDEX EQUALS LOC
USERPRIO EQUALS MODE
GENMASK EQUALS MPAC +6
PRIOOCT OCT 20144 # PRIO
MARKOCT OCT 42424 # MARK
OCT 11254 # NORM

IDLESLEP OCT 74704
OCT67777 OCT 67777
LINUS EQUALS BLANKET
FACEREG EQUALS MPAC
PLAYTEM1 EQUALS MPAC +1
PLAYTEM3 EQUALS MPAC +3
PLAYTEM4 EQUALS MPAC +4
OCT40420 OCT 40420
MAKEGEN GENADR MAKEPLAY
OCT10200 OCT 10200
V97N00 VN 09700 # PASTE FOR V97 OR V99
OCT20100 OCT 20100
CLOCKCON OCT 24030 # FLASH, PERFORM, V99 OR V97 PASTE, REFLASH

Change log

r813 by jim.lawton on May 8, 2011   Diff
Remove workarounds. Flag SBANK= hacks.
Go to: 
Project members, sign in to write a code review

Older revisions

r694 by jim.lawton on Jan 6, 2011   Diff
Fixed a bunch of indentation errors,
comment chars missing. Fixed a few
pseudo-labels not indented at all,
resulting in spurious symbols.
r390 by jim.lawton on Sep 3, 2009   Diff
Set eol-style on AGC sources to
native.
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
...
All revisions of this file

File info

Size: 40247 bytes, 1459 lines

File properties

svn:eol-style
native
Powered by Google Project Hosting