This repository has been archived by the owner on Dec 24, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 91
/
Copy pathDAKAC.LST.txt
7750 lines (7580 loc) · 389 KB
/
DAKAC.LST.txt
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
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 1
DAKACT MAC 19-JAN-77 13:36 DIAGNOSTIC PARAMETERS SEQ 0007
1 ;DAKAC
2
3
4
5 000002 DECVER==2
6 000000 MCNVER==0
7
8 XLIST
9 LIST
10 LALL
11 NAME \MCNVER,\DECVER^
12
13 TITLE DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2
14 ^
15
16 ;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE
17 ;AND TO DETECT (SOLID) FAILURES IN THE FIELD.
18
19 ;COPYRIGHT 1972,1977
20 ;DIGITAL EQUIPMENT CORPORATION
21 ;MARLBORO, MASS. 01752
22
23 ;JOHN R. KIRCHOFF
24 ;DICK MALISKA
25
26 000137 LOC 137
27 000137 000000 000002 MCNVER,,DECVER
28
29 NOSYM
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 2
DAKACT MAC 19-JAN-77 13:36 DIAGNOSTIC PARAMETERS SEQ 0008
30 SUBTTL DIAGNOSTIC PARAMETERS
31 ;PARAMETER DEFINITIONS
32 000001 EXCASB==1
33 000001 USRASB==1
34 000001 PGMEND==1
35 000100 DEBUG==100
36
37 ;FLAG DEFINITIONS
38 010000 USERF=10000 ;USER MODE FLAG
39
40
41 ;MACROS
42
43 ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1)
44 ; TO A (JUMPA .-X) TO CYCLE ON FAILING INSTRUCTION
45
46 DEFINE STOP (A)<
47 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
48 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) TO
49 ;JUMPA X (X IS THE ADDRESS OF THE FIRST INSTRUCTION
50 ;IN THE SUBTEST) TO LOOP ON ERROR>
51
52 ;SPECIAL FEATURE PARAMETERS
53
54 030741 SADR1=STARTA
55 030741 SADR2=STARTA
56 030741 SADR3=STARTA
57 030741 SADR4=STARTA
58 254000 030741 SADR5=JRST STARTA
59 254000 030741 SADR6=JRST STARTA
60 254000 030741 SADR7=JRST STARTA
61 254000 030741 SADR8=JRST STARTA
62 254000 030741 SADR9=JRST STARTA
63 254000 030741 SADR10=JRST STARTA
64 254000 030741 SADR11=JRST STARTA
65
66 000000 PAREA0=0
67 000000 PAREA1=0
68 000000 PAREA2=0
69 444153 414300 PAREA3=SIXBIT/DAKAC/
70 645560 000000 PAREA4=SIXBIT/TMP/
71 000000 PAREA5=0
72 000000 PAREA6=0
73 001000 ITERAT==1000
74 000001 PGMEND==1
75 .DIRECTIVE .OKOVL
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 1
PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0009
76 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977
77
78 DEFINE S,<;*********************************************************************>
79
80 S^;*********************************************************************^
81 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
82 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
83 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
84 S^;*********************************************************************^
85
86 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
87 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
88 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
89
90 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
91 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
92 010000 DING== 010000 ;RING BELL ON ERROR
93
94 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
95 002000 ERSTOP==002000 ;HALT ON TEST ERROR
96 001000 PALERS==001000 ;PRINT ALL ERRORS
97
98 000400 RELIAB==000400 ;RELIABILITY MODE
99 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
100 000100 INHPAG==000100 ;INHIBIT PAGING
101
102 000040 MODDVC==000040 ;MODIFY DEVICE CODE
103 000020 INHCSH==000020 ;INHIBIT CACHE
104 000010 OPRSEL==000010 ;OPERATOR SELECTION
105
106 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
107
108 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
109
110 ;SWITCH 17 RESERVED !!!
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 2
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0010
111 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977
112
113 S^;*********************************************************************^
114 ;*SPECIAL SUBPROGRAM LINKAGES
115 S^;*********************************************************************^
116
117 027772 FSELNK= 27772 ;FILE SELECT LINK
118 027773 FRDLNK= 27773 ;FILE READ LINK
119 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
120 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
121 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
122 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
123
124 S^;*********************************************************************^
125 ;*SPECIAL SUBROUTINE FATAL HALTS
126 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
127 S^;*********************************************************************^
128
129 ;ADDRESS TAG REASON
130 ;---------------------
131
132 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
133 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
134 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
135 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
136 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
137 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
138 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
139 ; 1017 EOPERR ;END OF PROGRAM ERROR
140 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
141
142 S^;*********************************************************************^
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 3
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0011
143 S^;*********************************************************************^
144 ;OPERATOR DEFINITIONS (NON-UUO'S)
145 S^;*********************************************************************^
146
147 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
148 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
149 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
150 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
151 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
152 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
153 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
154 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
155
156 S^;*********************************************************************^
157 ;*SUBROUTINE INITIALIZATION CALL
158 S^;*********************************************************************^
159
160 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
161
162 S^;*********************************************************************^
163 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
164 S^;*********************************************************************^
165
166 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
167 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
168
169 S^;*********************************************************************^
170 ;*TERMINAL INPUT UUO'S
171 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
172 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
173 S^;*********************************************************************^
174
175 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
176 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
177 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
178 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
179 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
180 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
181 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
182 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
183 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
184 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 4
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0012
185 ;*TERMINAL OUTPUT UUO'S.
186
187 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
188 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
189 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
190 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
191 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
192 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
193 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
194 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
195 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
196 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
197 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
198 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
199 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
200 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
201 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
202 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
203 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
204 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
205 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
206 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
207 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
208 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
209 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
210 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
211 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
212 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
213 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
214 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
215 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
216 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
217 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
218 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
219 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
220 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
221 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
222 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
223 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
224 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
225 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
226 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
227 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
228 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
229 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
230 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
231 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
232 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
233 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
234 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
235 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
236 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
237 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
238 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
239 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 4-1
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0013
240 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
241 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
242
243 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
244
245 DEFINE PMSG (ARG),<
246 PSIXM [SIXBIT\ARG'_\]>
247
248 DEFINE PMSGF (ARG),<
249 PSIXMF [SIXBIT\ARG'_\]>
250
251 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
252 ;* CONSERVES CORE OVER ASCIZ
253
254 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
255
256 ;*CONSOLE SWITCH INPUT UUO.
257 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
258 ;* USER MODE.
259
260 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
261
262 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
263 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
264
265 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
266 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
267
268 ;*KL10 ONLY CACHE OPERATION UUO'S
269
270 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
271 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
272 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 5
PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0014
273 ;*END OF PASS/PROGRAM UUOS
274
275 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
276 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
277
278 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
279 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
280
281 ;*MEMORY MANAGEMENT UUO'S
282 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
283 ;*ADDRESS CONVERSION, ETC...
284
285 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
286 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
287 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
288 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
289 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
290 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
291 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
292
293 ;*DEVICE CODE MODIFICATION UUO
294 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
295 ;*IOT'S TO A DIFFERENT DEVICE CODE.
296
297 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
298 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
299
300 030000 IFNDEF MODDVL,<MODDVL==BEGIN>
301 030000 IFNDEF MODDVU,<MODDVU==BEGIN>
302
303 ;*"DIAMON" FILE SELECTION AND READ UUOS
304
305 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
306 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
307 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
308 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
309
310 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES
311
312 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
313
314 XLIST
315 IFNDEF KLOLD,<LIST
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 6
PARAM KLM 18-JAN-77 11:38 ERROR HANDLING UUO DEFINITIONS, JAN 18,1977 SEQ 0015
316 SUBTTL ERROR HANDLING UUO DEFINITIONS, JAN 18,1977
317
318 S^;*********************************************************************^
319 ;*ERROR HANDLER PARAMETERS
320 S^;*********************************************************************^
321
322 036000 000000 OPDEF ERUUO [36B8] ;ERROR CALL UUO
323 035000 000000 OPDEF ERLOOP [35B8] ;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
324 035040 000000 OPDEF ERLP1 [35B8!1B12] ;ERROR LOOP IF PC'S MATCH
325 035100 000000 OPDEF ERLP2 [35B8!2B12] ;ERROR LOOP IF ANY ERROR
326 034000 000000 OPDEF REPTUO [34B8] ;REPEAT LOOP UUO
327
328 ;*THE ERROR HANDLER MACROS
329
330 ;*A MACRO TO REPORT AN ERROR AND LOOP
331
332 DEFINE ERROR (ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
333 SALL
334 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
335 CORECT,,ACTUAL
336 [SIXBIT\D'_\],,ERR]
337 XALL
338
339 ERLOOP ADR ;IF ERROR, LOOP TO ADR
340 >
341
342 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP
343
344 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)<
345 SALL
346 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
347 CORECT,,ACTUAL
348 [SIXBIT\D'_\],,ERR]
349 XALL >
350
351 >;END OF KLOLD CONDITIONAL
352
353 XLIST
354 LIST
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 1
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0016
355 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977
356
357 030000 LOC 30000
358
359 S^;*********************************************************************^
360 ;*PROGRAM STARTING ADDRESSES
361 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
362 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
363 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
364 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
365 S^;*********************************************************************^
366
367 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
368 030001 254 00 0 00 030712 $START: JRST START ;MODE CHECK STARTING ADDRESS
369
370 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
371
372 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
373
374 030004 254 00 0 00 030741 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
375
376 030005 254 00 0 00 030741 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
377
378 030006 254 00 0 00 030741 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
379
380 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
381 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
382
383 030010 254 00 0 00 030741 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
384 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
385 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
386
387 030013 254000 030741 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
388 030014 254000 030741 START2: SADR8 ; "
389 030015 254000 030741 START3: SADR9 ; "
390 030016 254000 030741 START4: SADR10 ; "
391 030017 254000 030741 START5: SADR11 ; "
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 2
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0017
392 S^;*********************************************************************^
393 ;*PROGRAM FIXED PARAMETER AREA
394 S^;*********************************************************************^
395
396 030020 444153 414300 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
397 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
398 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER
399 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
400 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS
401 030025 000000 030725 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
402 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
403 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
404 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
405 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
406 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
407 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
408 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
409 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
410 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
411
412 S^;*********************************************************************^
413 ;*PROGRAM VARIABLE PARAMETER AREA
414 S^;*********************************************************************^
415
416 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
417 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
418 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
419 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
420 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
421 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
422 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
423 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
424 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
425 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
426 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
427 030052 000000 000000 ERRPC: 0 ;ERROR PC
428 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
429 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
430 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
431 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 3
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0018
432 S^;*********************************************************************^
433 ;*SPECIAL PROGRAM DISPATCH ADDRESSES
434 S^;*********************************************************************^
435
436 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
437 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
438 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
439 030062 254000 030741 CNTLC: SADR5 ;CONTROL C XFER ADDRESS
440 030063 254000 030741 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
441 030064 CPOPJ1: ;SKIP RETURN
442 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
443 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
444 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
445 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
446 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
447 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
448 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
449 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
450 030073 255 00 0 00 000000 $USRHL: JFCL ; "
451 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
452 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
453 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
454 030077 255 00 0 00 000000 RESRT2: JFCL ; "
455 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
456 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
457 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
458
459 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
460 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
461 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
462
463 S^;*********************************************************************^
464 ;*PROCESSOR CONTROL STORAGE
465 S^;*********************************************************************^
466
467 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
468 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
469 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
470 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
471 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
472
473 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
474 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
475
476 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
477 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
478 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
479 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
480 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
481 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
482 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 4
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0019
483 S^;*********************************************************************^
484 ;*UUO DISPATCH TABLE
485 S^;*********************************************************************^
486 XLIST
487 LIST
488 030124 030070 030070 UUODIS: LUUO1,,$UUOER
489 030125 030070 030070 LUUO3,,LUUO2
490 030126 030070 030070 LUUO5,,LUUO4
491 030127 030070 030070 LUUO7,,LUUO6
492 030130 030070 030070 LUUO11,,LUUO10
493 030131 030070 030070 LUUO13,,LUUO12
494 030132 030070 030070 LUUO15,,LUUO14
495 030133 030070 030070 LUUO17,,LUUO16
496 030134 030070 030070 LUUO21,,LUUO20
497 030135 030070 030070 LUUO23,,LUUO22
498 030136 030070 030070 LUUO25,,LUUO24
499 030137 030070 030070 LUUO27,,LUUO26
500 030140 030070 030070 LUUO31,,LUUO30
501 030141 030070 030070 LUUO33,,LUUO32
502
503 S^;*********************************************************************^
504 ;*MEMORY MANAGMENT STORAGE
505 S^;*********************************************************************^
506
507 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
508 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
509 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
510 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
511 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
512
513 S^;*********************************************************************^
514 ;*PRINT CONTROL STORAGE
515 S^;*********************************************************************^
516
517 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
518 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
519 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
520 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
521 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
522 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
523 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
524 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
525 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
526 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
527 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
528 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
529 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
530 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
531 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
532 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
533 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
534 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
535 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 5
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0020
536 S^;*********************************************************************^
537 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
538 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
539 ;* MOVEI NAME
540 ;* PNTA ;OR PNTAF
541 S^;*********************************************************************^
542
543 030242 CRLF: ASCII/
544 030242 015 012 000 000 000 /
545 030243 CRLF2: ASCII/
546
547 030243 015 012 015 012 000 /
548 030244 054 000 000 000 000 COMMA: ASCII/,/
549 030245 056 000 000 000 000 PERIOD: ASCII/./
550 030246 040 000 000 000 000 SPACE: ASCII/ /
551 030247 011 000 000 000 000 TAB: ASCII/ /
552 030250 MINUS:
553 030250 055 000 000 000 000 HYPEN: ASCII/-/
554 030251 053 000 000 000 000 PLUS: ASCII/+/
555 030252 052 000 000 000 000 AST: ASCII/*/
556 030253 100 000 000 000 000 ATSIN: ASCII/@/
557 030254 050 000 000 000 000 LFP: ASCII/(/
558 030255 051 000 000 000 000 RTP: ASCII/)/
559 030256 007 0000000000 BELL: BYTE (7) 007
560 030257 077 000 000 000 000 QUEST: ASCII/?/
561 030260 057 000 000 000 000 SLASH: ASCII!/!
562 030261 044 000 000 000 000 DOLLAR: ASCII/$/
563 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
564 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
565 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
566
567 S^;*********************************************************************^
568 ;*USER MODE OUTPUT FILE INFORMATION
569 S^;*********************************************************************^
570
571 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
572 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
573 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
574 030272 BLOCK 2
575
576 S^;*********************************************************************^
577 ;*DISK UPDATE MODE FILE INFORMATION
578 S^;*********************************************************************^
579
580 030274 $IBUF: BLOCK 3
581 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
582 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
583 030301 BLOCK 2
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 6
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021
584 S^;*********************************************************************^
585 ;*PUSHDOWN LIST CONTROL INFORMATION
586 S^;*********************************************************************^
587
588 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
589 030304 PLISTS: BLOCK 200
590 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
591
592 S^;*********************************************************************^
593 ;*POWER LINE CLOCK FREQUENCY FLAG
594 S^;*********************************************************************^
595
596 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
597
598 S^;*********************************************************************^
599 ;*KL10 CACHE CONTROL FLAGS
600 S^;*********************************************************************^
601
602 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
603 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
604
605 S^;*********************************************************************^
606 ;*NUMBER INPUT DIGIT FLAG
607 S^;*********************************************************************^
608
609 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
610
611 S^;*********************************************************************^
612 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
613 S^;*********************************************************************^
614
615 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
616
617 S^;*********************************************************************^
618 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
619 S^;*********************************************************************^
620
621 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
622 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
623 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
624
625 S^;*********************************************************************^
626 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION
627 S^;*********************************************************************^
628
629 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 7
FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022
630 S^;*********************************************************************^
631 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD
632 S^;*********************************************************************^
633
634 030516 000000 000000 KLTYP: 0
635
636 S^;*********************************************************************^
637 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION
638 S^;*********************************************************************^
639
640 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
641
642 S^;*********************************************************************^
643 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
644 S^;*********************************************************************^
645
646 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
647
648 S^;*********************************************************************^
649 ;*"SWITCH" CALL USAGE CONTROL
650 S^;*********************************************************************^
651
652 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
653
654 S^;*********************************************************************^
655 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
656 S^;*********************************************************************^
657
658 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
659 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
660
661 S^;*********************************************************************^
662 ;*SPECIAL FUTURE EXPANSION ROOM
663 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF
664 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE
665 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE.
666 S^;*********************************************************************^
667
668 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER
669
670 S^;*********************************************************************^
671 ;*END OF FIXED STORAGE
672 S^;*********************************************************************^
673
674 030577 $ENDFX=<PLISTE+100>&<777700>-1
675 030577 LOC $ENDFX
676 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 1
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0023
677 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76
678
679 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE
680
681 000000 AC0= 0
682 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS
683 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS
684 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS
685 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10)
686
687 ;DTE20 DEVICE CODES
688
689 000200 DTE== 200 ;DTE0
690 000204 DTE0== 204
691 000204 DTE1== 204
692 000210 DTE2== 210
693 000214 DTE3== 214
694
695 ;KL10 EPT COMMUNICATION AREA
696
697 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS
698 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS
699 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS
700 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS
701
702 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG
703 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG
704 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION
705 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT
706 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT
707 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD
708 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER
709 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE #
710 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER
711 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG
712 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG
713
714 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 2
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0024
715 ;SPECIAL "FIXED" REASSIGNMENTS
716
717 030600 $$LOC=. ;SAVE CURRENT LOCATION
718
719 030000 LOC 30000
720 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START
721 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS
722
723 000440 LOC 440
724 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD"
725 000443 LOC 443
726 000443 254 00 0 00 030636 $STM: JRST $SPEC ;SIMPLE RUN CONTROL
727
728 030057 LOC 30057
729 030057 254 00 0 00 030641 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND"
730
731 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP
732
733 000420 LOC 420
734 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL
735 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW
736 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW
737 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3
738 000424 000000 000000 $$424: 0 ;MMUO
739 000425 000000 000000 $$425: 0 ;MMUO PC
740 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT
741 000427 254 04 0 00 000427 $$427: HALT .
742 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S
743 000431 000000 000427 $$431: 427
744 000432 000000 000427 $$432: 427
745 000433 000000 000427 $$433: 427
746 000434 000000 000427 $$434: 427
747 000435 000000 000427 $$435: 427
748 000436 000000 000427 $$436: 427
749 000437 000000 000427 $$437: 427
750
751 000500 LOC 500
752 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD
753 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC
754 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC
755 000503 254 04 0 00 000503 $$503: HALT .
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 3
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025
756 030600 LOC $$LOC ;RESET CURRENT LOCATION
757
758 ;SPECIAL STARTUP SEQUENCE
759
760 030600 402 00 0 00 030037 $$START:SETZM USER
761 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ?
762 030602 603 00 0 00 010000 TLNE 0,USERF
763 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD
764 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ?
765 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC
766 030606 332 00 0 00 030037 SKIPE USER
767 030607 254 00 0 00 030712 JRST START ;USER MODE, DON'T NEED CPU TYPE
768
769 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ?
770 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER
771 030612 402 00 0 00 030516 SETZM KLTYP
772 030613 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10
773 030614 200 01 0 00 034010 MOVE 1,[1,,1]
774 030615 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS
775 030616 316 01 0 00 034010 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10
776 030617 254 00 0 00 030712 JRST START ;KI10, NO ADDITIONAL SETUP
777
778 030620 7 000 20 0 00 010040 $STKL: CONO APR,10040 ;SET BBD NOT BIT
779 030621 7 000 24 0 00 000000 CONI APR,0
780 030622 7 000 20 0 00 020040 CONO APR,20040 ;CLEAR BBD NOT BIT
781 030623 606 00 0 00 000040 TRNN 0,40 ;IF SET, KL10
782 030624 350 00 0 00 030516 AOS KLTYP ;IF NOT, BBD
783 030625 402 00 0 00 000444 SETZM $DTFLG
784 030626 402 00 0 00 000445 SETZM $DTCLK
785 030627 200 00 0 00 000453 MOVE $DTOPR ;GET DTE #
786 030630 436 00 0 00 030670 ORM $$DTE0 ;INSERT IN DTE I/O INSTS
787 030631 436 00 0 00 030672 ORM $$DTE1
788 030632 436 00 0 00 030704 ORM $$DTE2
789 030633 436 00 0 00 030706 ORM $$DTE3
790 030634 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG
791 030635 254 00 0 00 030712 JRST START
792
793 030636 200 00 0 00 034011 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL
794 030637 202 00 0 00 030643 MOVEM $SPB1
795 030640 254 00 0 00 030712 JRST START
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 4
SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026
796 ;SPECIAL "BEGEND" ROUTINE
797
798 030641 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT
799 030642 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT
800 030643 336 00 0 00 030037 $SPB1: SKIPN USER
801 030644 254 00 0 00 030652 JRST $SPBEX ;EXEC MODE
802
803 030645 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ?
804 030646 254 00 0 00 030741 JRST STARTA ;NO, KEEP RUNNING
805 030647 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ?
806 030650 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR
807 030651 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON"
808
809 030652 332 00 0 00 030041 $SPBEX: SKIPE KLFLG
810 030653 254 00 0 00 030660 JRST $SPBKL ;KL10 & EXEC
811 030654 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT
812 030655 332 00 0 00 030024 SKIPE ITRCNT
813 030656 254 00 0 00 030741 JRST STARTA ;NOT COMPLETED YET
814 030657 254 00 1 00 030012 JRST @RETURN ;DONE
815
816 030660 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT
817 030661 254 00 0 00 030676 JRST $SPKLD ;KL10, EXEC & COMPLETED
818
819 030662 335 00 0 00 030043 SKIPGE MONCTL
820 030663 254 00 0 00 030741 JRST STARTA ;"DIAMON" CONTROL
821 030664 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS
822 030665 202 00 0 00 000451 MOVEM 0,$DTCMD
823 030666 402 00 0 00 000444 SETZM $DTFLG
824 030667 336 00 0 00 030516 SKIPN KLTYP
825 030670 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11
826 030671 332 00 0 00 030516 SKIPE KLTYP
827 030672 7 200 20 0 00 010000 $$DTE1: CONO DTE,10000
828 030673 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS
829 030674 254 00 0 00 030673 JRST .-1
830 030675 254 00 0 00 030741 JRST STARTA ;KEEP RUNNING
831
832 ;SPECIAL KL10 COMPLETED ROUTINE
833
834 030676 332 00 0 00 030044 $SPKLD: SKIPE MONTEN
835 030677 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON"
836
837 030700 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION
838 030701 202 00 0 00 000451 MOVEM 0,$DTCMD
839 030702 402 00 0 00 000444 SETZM $DTFLG
840 030703 336 00 0 00 030516 SKIPN KLTYP
841 030704 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11
842 030705 332 00 0 00 030516 SKIPE KLTYP
843 030706 7 200 20 0 00 010000 $$DTE3: CONO DTE,10000
844 030707 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN
845 030710 254 00 0 00 030707 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM
846 030711 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT.
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 1
DAKACM MAC 19-JAN-77 13:40 DIAGNOSTIC SECTION SEQ 0027
847 SUBTTL DIAGNOSTIC SECTION
848
849 LALL
850
851 030712 402 00 0 00 030037 START: SETZM USER#
852 030713 265 00 0 00 030714 JSP 0,.+1 ;GET FLAGS
853 030714 603 00 0 00 010000 TLNE USERF ;IN USER MODE
854 030715 476 00 0 00 030037 SETOM USER ;YES SET USER CONTROLL WORD
855 030716 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE
856 030717 402 00 0 00 030037 SETZM USER ;YES CLEAR USER CONTROLL WORD
857 030720 336 00 0 00 030037 SKIPN USER
858 030721 254 00 0 00 030741 JRST STARTA
859 030722 331 00 0 00 030043 SKIPL MONCTL
860 030723 051 03 0 00 030725 TTCALL 3,PGMNAM ;MENTION OUR NAME
861 030724 254 00 0 00 030741 JRST STARTA
862
863 030725 PGMNAM: ASCIZ/
864 030725 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) [DAKAC]
865 030726 055 061 060 040 113
866 030727 101 061 060 040 102
867 030730 101 123 111 103 040
868 030731 111 116 123 124 122
869 030732 125 103 124 111 117
870 030733 116 040 104 111 101
871 030734 107 116 117 123 124
872 030735 111 103 040 050 063
873 030736 051 040 133 104 101
874 030737 113 101 103 135 015
875 030740 012 000 000 000 000 /
876 030741 254 00 0 00 030742 STARTA: JRST .+1
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 2
DAKACM MAC 19-JAN-77 13:40 TEST OF LOGICAL TEST INSTRUCTIONS SEQ 0028
877 SUBTTL TEST OF LOGICAL TEST INSTRUCTIONS
878
879 ;**********
880
881 ;THIS TEST VERIFIES THAT TDN DOES NOT MODIFY THE AC BECAUSE
882 ;TDN IS A NO-OP
883 ;FIRST, THE AC IS PRELOADED WITH 0. THEN,
884 ;TDN IS EXECUTED. THE AC IS THEN CHECKED FOR
885 ;NO MODIFICATION. IF C(AC) IS UNALTERED, THE TEST PASSES
886 030742 400 00 0 00 000000 B12600: SETZ ;PRELOAD AC WITH 0
887 030743 610 00 0 00 034012 TDN [-1] ;*TDN IS A NO-OP
888 030744 310 00 0 00 000000 CAM ;CAM IS A NO-OP. IT IS HERE IN CASE TDN SKIPS
889 030745 302 00 0 00 000000 CAIE ;PASS TEST IF C(AC) IS UNMODIFIED BY TDN
890 STOP^
891 030746 254 04 0 00 030747 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
892 030747 324 00 0 00 030750 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) TO
893 ;JUMPA X (X IS THE ADDRESS OF THE FIRST INSTRUCTION
894 ;IN THE SUBTEST) TO LOOP ON ERROR^
895
896 ;***** FAILURE ANALYSIS *****
897 ;C(AC0) C(AC1) FAILING SIGNAL
898
899 ;-1,,-1 FC: AD FM + EN
900
901 ;**********
902
903 ;THIS TEST VERIFIES THAT TSN DOES NOT MODIFY THE AC BECAUSE
904 ;TSN IS A NO-OP
905 ;FIRST, THE AC IS PRELOADED WITH -1. THEN,
906 ;TSN IS EXECUTED. THE AC IS THEN CHECKED FOR
907 ;NO MODIFICATION. IF C(AC) IS UNALTERED, THIS TEST PASSES
908
909 030750 474 00 0 00 000000 B12700: SETO ;PRELOAD AC WITH -1,,-1
910 030751 611 00 0 00 034013 TSN [XWD -1,0] ;*TSN IS A NO-OP
911 030752 310 00 0 00 000000 CAM ;CAM IS A NO-OP. IT IS HERE IN CASE TSN SKIPS
912 030753 312 00 0 00 034012 CAME [-1] ;PASS TEST IF C(AC) IS UNMODIFIED BY TSN
913 STOP^
914 030754 254 04 0 00 030755 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE
915 030755 324 00 0 00 030756 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) TO
916 ;JUMPA X (X IS THE ADDRESS OF THE FIRST INSTRUCTION
917 ;IN THE SUBTEST) TO LOOP ON ERROR^
918
919 ;**********
DAKAC PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (3) 0,2 MACRO %52(537) 14:24 19-JAN-77 PAGE 3
DAKACM MAC 19-JAN-77 13:40 TEST OF LOGICAL TEST INSTRUCTIONS SEQ 0029
920 ;THIS TEST VERIFIES THAT TRN DOE NOT MODIFY THE AC BECAUSE
921 ;TRN IS A NO-OP.
922 ;FIRST, THE AC IS PRELOADED WITH 0. THEN,
923 ;TRN IS EXECUTED. THE AC IS THEN CHECKED FOR
924 ;NO MODIFICATION. IF C(AC) IS UNALTERED, THIS TEST PASSES
925
926 030756 400 00 0 00 000000 B13000: SETZ ;PRELOAD AC WITH 0
927 030757 600 00 0 00 123456 TRN 123456 ;*TRN IS A NO-OP
928 030760 310 00 0 00 000000 CAM ;CAM IS A NO-OP. IT IS HERE IN CASE TRN SKIPS
929 030761 302 00 0 00 000000 CAIE ;PASS TEST IF C(AC) IS UNMODIFIED BY TRN
930 STOP^
931 030762 254 04 0 00 030763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE