-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmicro.mic
1719 lines (1451 loc) · 62.6 KB
/
micro.mic
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
;KL10 E-BOX MICRO DIAGNOSTICS
.TOC "FIRST RAM LOCATIONS RESERVED"
;********************************************
;HERE ARE 9 NUL MICRO WORDS WHICH RESERVE LOW ADDRESS MICRO
;LOCATIONS AS DONT CARE LOCATIONS.. THE ASSEMBLER WILL
;PUT EMPTY NUL RAM CODE HERE, RESERVING THE LOCATIONS FOR PDP11
;USE,AND PUSHING LEGITIMATE RAM CODE ABOVE HERE
0000:
EMPTY: J/0000,DISP/DIAG,ADB/FM
0001:
NUL001: AR/AR
0002:
NUL002: AR/AR
0003:
TRAP03: J/TRAP03
0004:
NUL004: AR/AR
0005:
NUL005: AR/AR
0006:
NUL006: AR/AR
0007:
NUL007: AR/AR
0010:
NUL010: AR/AR
;END OF NUL RAM CODE
;*********************************************
;*********************************************
;ESTABLISH MICRO-CODE VERSION NUMBER
137: #/VERS
;*********************************************
.TOC "EDP1:BASIC DATA PATH MUX SELECT TEST"
;ALL TESTS WHICH NEED TEST DATA FROM THE PDP11 HAVE A MICRO
;FUNCTION CALLED "AR FROM PDP11".. THIS FUNCTION IS REALLY
;A NOP OF AR/AR, AND DATA IS FORCE STUFFED INTO THE AR FROM THE
;ELEVEN VIA A DIAGNOSTIC
AR FROM PDP11 "AR/AR"
;DATA PATH TEST 1, BASIC DATA PATH MUX SELECT
;ADA "10", AR"010", MQ"CLR" -- EXECUTED FOR SUBTEST 2
MIC1EDP: ADA/MQ,AD/A,AR/AD,COND/REG CTL,MQ CTL/0S
;BR "LOAD", RESET AR BACK TO ZERO -- EXECUTED FOR SUBTEST 3
BR/AR,AR/ADX,AD/A,ADA/AR,ADA EN/EN
;ADB "10", ARX"010", RESET BR TO ZERO -- EXECUTED FOR SUBTEST 4
ADB/BR,AD/B,ARX/AD,BR/AR
;BRX "LOAD", RESET ARX -- EXECUTED FOR SUBTEST 5
BRX/ARX,ARX/AD
;ADXB "10", ARX "110" -- EXECUTED FOR SUBTEST 6
ADB/BR,AD/B,ARX/ADX,BRX/ARX
;ADA "01", MQ "AD" -- EXECUTED FOR SUBTEST 7
ADA/ARX,ADA EN/EN,AD/A,MQ/MQM SEL,ARX/MQ,COND/REG CTL,MQ CTL/AD
;ARX "011" -- EXECUTED FOR SUBTEST 8
ARX/MQ,COND/REG CTL,MQ CTL/0S,AD/A,ADA/AR,ADA EN/EN,AR/AD*2
;AR "110", ADXA "EN" -- EXECUTED FOR SUBTEST 9
AD/A,AR/ADX,ADA EN/EN
;AR "101", RESET ARX -- EXECUTED FOR SUBTEST 10
AD/A,ADA/AR,ADA EN/EN,AR/AD*2,ARX/MQ
;ADA "00" -- EXECUTED FOR SUBTEST 11
AD/A,ADA EN/EN,ADA/AR,ARX/AD
;MQ "SH", ADA "DIS", ADXA "DIS" -- EXECUTED FOR SUBTEST 12
AR/AD,ARX/AD,MQ/SH,AD/A,ADA EN/0S
;MQ "MQ" -- EXECUTED FOR SUBTEST 13
;THIS CODE EQUIVILANT TO MQ/MQ
COND/REG CTL,MQ/MQ SEL,AD/B,ADB/AR*4,ARX/ADX*.25
;SETUP -- EXECUTED FOR SUBTEST 14
;THIS EQUIVILANT TO MQ/MQ
ARX/MQ,COND/REG CTL,MQ/MQ SEL,AD/A,ADA/ARX,ADA EN/EN
;ARX "101" -- EXECUTED FOR SUBTEST 15
ARX/ADX*2,COND/ARL IND,CLR/MQ,AD/A,ADA/AR,ADA EN/EN
;ARX "000" -- EXECUTED FOR SUBTEST 16
AD/B,ADB/BR ;TESTING ARX/ARX, DEFAULT MICRO CODE SELECT
;SETUP -- EXECUTED FOR SUBTEST 17
AD/A,ADA EN/EN,AR/ADX,BRX/ARX,ARX/MQ
;AR "000" -- EXECUTED FOR SUBTEST 18
AR/AR,AD/A,ADA EN/0S
;AR "100" -- EXECUTED FOR SUBTEST 19
AR/SH,ADA EN/0S
;SETUP, LOAD BR, CLEAR AR -- EXECUTED FOR SUBTEST 20
BR/AR,AR/ADX,ARX/ADX*2
;ADB "01" -- EXECUTED FOR SUBTEST 21
AD/B,ADB/BR*2,AR/AD,BR/AR
;ADXB "01" ** -- EXECUTED FOR SUBTEST 22
AD/B,ADB/BR*2,ARX/ADX,AR/AD,BR/AR
;ARX "111" -- EXECUTED FOR SUBTEST 23
ARX/ADX*.25,AD/A,ADA EN/EN,ADA/MQ
;SETUP -- EXECUTED FOR SUBTEST 24
ADA EN/0S,AD/A,AR/AD
;AR "111", RESET ARX,BR -- EXECUTED FOR SUBTEST 25
ARX/MQ,AD/B,ADB/BR,AR/AD*.25,BR/AR
;ARX "100", RESET AR,SET MQ -- EXECUTED FOR SUBTEST 26
ADA/MQ,AR/AD,MQ/SH,AD/A,ADA EN/EN
;MQ "*.25", RESET ARX -- EXECUTED FOR SUBTEST 27
ARX/SH,MQ/MQ*.25,SPEC/MQ SHIFT,AD/A,ADA/AR,ADA EN/EN
;MQ "*2" ** -- EXECUTED FOR SUBTEST 28
DISP/DIV,AD/A,ADA/AR,ADA EN/EN
=11
;MQ "*.5" ** -- EXECUTED FOR SUBTEST 29
COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*.5,AD/A,ADA/AR,ADA EN/EN
;MQ "*.25", VIA 2ND PATH ** -- EXECUTED FOR SUBTEST 30
DISP/MUL,MQ/MQM SEL,AD/B,ADB/BR,ARX/ADX,BRX/ARX,AR/ADX
=11
;ADXB "11" WITH ONES -- EXECUTED FOR SUBTEST 31
ADB/AR*4,AD/B,AR/EBUS,COND/EBUS CTL,EBUS CTL/DISABLE CS HOLD
;ADXB "01" WITH ZEROES -- EXECUTED FOR SUBTEST 32
AD/B,ADB/BR*2,COND/REG CTL,MQ CTL/1S,MQ/MQM SEL,AR/AD,ARX/ADX,
BRX/ARX
;ADXB "11" WITH ZEROES -- EXECUTED FOR SUBTEST 33
ADB/AR*4,AD/B,AR/EBUS
;MQ "*.25" WITH ZEROES - AD TO EBUS WITH ONES -- EXECUTED FOR SUBTEST 34
AD/A,MQ/SH,ADA/MQ,
AR/EBUS,COND/EBUS CTL
=11
;"AR MUX ENABLE" -- EXECUTED FOR SUBTEST 35
COND/AR CLR,ADA/ARX,AD/A,DISP/DIV,BR/AR,TIME/2T
=11
;"DISP/DIV" MQ SH LEFT 2ND TIME -- EXECUTED FOR SUBTEST 36
DISP/DIV,AD/B,ADB/BR,AR/AD,TIME/2T
=11
;"MQ *.5" --EXECUTED FOR SUBTEST 37
COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*.5,AD/A,ADA/AR
;"MQ*.5" 2ND TIME IN A ROW -- EXECUTED FOR SUBTEST 38
COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*.5,AD/A,ADA/AR
;"MQ LOADED FROM AD -- EXECUTED FOR SUBTEST 39
COND/REG CTL,MQ CTL/AD,MQ/MQM SEL
;"MQ*.5" -- SET-UP FOR SUBTEST 41 -- EXECUTED FOR SUBTEST 40
COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*.5,AD/A,ADA/AR
;"MQ*.5" PICK UP MQ SHIFT IN LINE S@0 -- EXECUTED FOR SUBTEST 41
COND/REG CTL,MQ/MQ SEL,MQ CTL/MQ*.5,AD/A,ADA/AR
;MQ LOADED FROM AD -- EXECUTED FOR SUBTEST 42
COND/REG CTL,MQ/MQM SEL,MQ CTL/AD,AD/A,ADA/AR
;MQ SH LEFT ONCE - SET-UP FOR SUBTEST 43
DISP/DIV,AD/A,ADA/ARX,TIME/2T
=11
;MQ SH LEFT-MQ SHIFT IN BIT STUCK -- EXECUTED FOR SUBTEST 44
DISP/DIV,AD/A,ADA/ARX,TIME/2T,J/MIC1EDP
.TOC "EDP2: DATA PATH BASIC INTERFERENCE- BURST SPEED"
;DATA PATH TEST 2, BASIC INTERFERENCE -- BURST SPEED
;BEGIN BY LOADING INITIAL INTERFERENCE PATTERN TO AR
MIC2EDP: AR FROM PDP11
;BEGIN BURST HERE - CHECK BR
BR/AR,AR/ADX,AD/0S
;CHECK ADB TO AD & AD TO ARX INCLUSIVE
ARX/AD,AD/B,ADB/BR,BR/AR
;CHECK BRX
BRX/ARX,ARX/AD,AD/0S
;CHECK ADXB TO ADX & ADX TO AR INCLUSIVE
AR/ADX,AD/B,ADB/BR,BRX/ARX
;CHECK AR TO ADA TO AD & AD TO MQ INCLUSIVE
AD/A,ADA/AR,COND/REG CTL,MQ/MQM SEL,MQ CTL/AD,AR/ADX,ADA EN/EN
;CHECK MQ TO ARX
ARX/MQ,MQ/MQ SEL,COND/REG CTL,MQ CTL/0S,AD/A,ADA/AR,ADA EN/EN
;CHECK ARX TO ADXA TO ADX & DONE WITH THIS INTERFERENCE PATTERN
AR/ADX,AD/A,ARX/AD,ADA/AR,ADA EN/EN,J/MIC2EDP
.TOC "EDP3: SHIFTER BOARD TEST--BURST SPEED"
;DATA PATH TEST 3, SHIFTER BOARD TEST -- BURST SPEED
;BEGIN BY LOADING THE ARX PATTERN INTO THE BRX &
;THEN THE AR PATTERN INTO THE BR. NEXT LOAD THE
;"SC" COUNT INTO THE AR. NOW BURST. THE DATA WILL
;TRAVEL AT BURST SPEED OVER THE FOLLOWING PATHS. 1) BR
;THRU AD TO AR. 2) BRX THRU ADX TO ARX. 3) SC LOADED
;FROM AR. 4) THEN THE OUTPUT OF THE SHIFTER INTO THE
;MQ,AR, & ARX.
;FIRST LOAD ARX PATTERN TO AR
MIC3EDP: AR FROM PDP11 ;PRESETING SC WITH THIS PATTERN
SPEC/SCM ALT,SC/AR SHIFT ;LOAD PRESET SC COUNT TO SC
AR FROM PDP11,AD/1S
;LOAD AR PATTERN TO AR THEN TRANSFER ARX PATTERN TO ARX
ADA/AR,ADA EN/EN,AD/A,ARX/AD
AR FROM PDP11
;TRANSFER AR & ARX PATTERNS TO BR & BRX RESPECTIVELY,AFTER LOADING SC VALUE
AD/A,ADA/AR,ADA EN/EN,BR/AR,BRX/ARX,ARX/MQ
AR FROM PDP11
;BURST BEGINS HERE
SPEC/SCM ALT,SC/AR SHIFT,AD/B,ADB/BR,AR/AD,ARX/ADX
;SEND SHIFTER OUTPUT TO REGISTERS
AR/SH,ARX/SH,MQ/SH,AD/A,ADA/AR,ADA EN/EN,J/MIC3EDP
;PHASE TWO OF SHIFTER TEST REQUIRES USE OF DIFFERING
;SHIFT BOARD CONTROL LINES.
MIC3.1SH: COND/REG CTL,MQ/MQM SEL,MQ CTL/1S,
AD/A,ADA/AR,ADA EN/EN ;SET MQ
AR FROM PDP11 ;ARX TEST PATTERN
AD/A,ARX/AD,ADA/AR,ADA EN/EN ;AR PATTERN
AR FROM PDP11
;BURST HERE
BR/AR,BRX/ARX, ;PATTERNS TO BR & BRX
ADA/MQ,AD/A,AR/AD,ARX/AD,ADA EN/EN
;ACTUAL TEST OF SH/AR CONTROL LINES
AD/B,ADB/BR,AR/AD,ARX/ADX,ADA EN/EN
;SHIFTER OUTPUT TO REGISTERS
SH/AR,AR/SH,MQ/SH,ARX/SH,AD/A,ADA/AR,ADA EN/EN,J/MIC3.2SH
MIC3.2SH: COND/REG CTL,MQ/MQM SEL,MQ CTL/1S, ;SET MQ
AD/A,ADA/AR,ADA EN/EN
AR FROM PDP11 ;ARX TEST PATTERN
AD/A,ARX/AD,ADA/AR,ADA EN/EN ;AR PATTERN
AR FROM PDP11
;BURST HERE
BR/AR,BRX/ARX, ;PATTERNS TO BR & BRX
ADA/MQ,AD/A,AR/AD,ARX/AD,ADA EN/EN
;ACTUAL TEST OF SH/ARX CONTROL LINES
AD/B,ADB/BR,AR/AD,ARX/ADX
;SHIFTER OUTPUT TO REGISTERS
SH/ARX,AR/SH,ARX/SH,MQ/SH,AD/A,ADA/AR,ADA EN/EN,J/MIC3.3SH
MIC3.3SH: COND/REG CTL,MQ/MQM SEL,MQ CTL/1S,AD/A,ADA/AR,ADA EN/EN ;SET MQ
AR FROM PDP11 ;ARX PATTERN
AD/A,ARX/AD,ADA/AR,ADA EN/EN ;AR PATTERN
AR FROM PDP11
;BURST HERE
BR/AR,BRX/ARX,ADA/MQ,AD/A,AR/AD,ARX/AD ;PATTERNS TO BR & BRX
;ACTUAL TEST OF SH/AR SWAP CONTROL LINES
AD/B,ADB/BR,AR/AD,ARX/ADX,#/VERS ;***INCLUDE VERSION
;SHIFTER OUTPUT TO REGISTERS
SH/AR SWAP,AR/SH,MQ/SH,ARX/SH,AD/A,ADA/AR,ADA EN/EN,J/MIC3.3SH
;END OF SHIFTER TEST
.TOC "EDP4: DATA PATH AD & ADX ALU TEST, INCLUDING CRY SKP NETWORK"
;GROUP ONE - ALU TEST, ARX & BRX USED TO TEST ADX
MIC4EDP: AR FROM PDP11 ;BRX PATTERN INTO THE EBOX
AD/A,ARX/AD ;ARX PATTERN TO EBOX, BRX PATTERN TO ARX
AR FROM PDP11
BRX/ARX,AD/0S,ARX/SH,ADB/FM, ;BRX SET, ARX SET
J/000, DISP/DRAM J ;AND DISPATCH TO ACTUAL ALU TEST FUNCTION
;GROUP TWO - ALU TEST, AR & BR USED TO TEST AD
MIC4.1AD: AR FROM PDP11 ;BR PATTERN TO EBOX
BR/AR,J/GO ;AR PATTERN TO EBOX
;GROUP THREE - ALU TEST, AR & BR, ARX & BRX, USED TO TEST AD,ADX & CRY SKIP
MIC4.2AD: AR FROM PDP11 ;BRX PATTERN INTO THE EBOX
AD/A,ARX/AD ;ARX PATTERN INTO THE EBOX,BRX TO ARX
AR FROM PDP11
AD/A,ARX/AD,BRX/ARX ;BR PATTERN INTO EBOX,BRX SET,ARX SET
AR FROM PDP11
BR/AR,J/GO ;BR SET & AR PATTERN SET IN AR.
;STANDARD DEFAULT MACRO FOR ALL ADDER TESTS
ADDER TEST "ADA/AR,ADA EN/EN,ADB/BR,AR/AD,ARX/ADX,COND/AD FLAGS"
;BEGINNING OF ACTUAL ALU TEST FUNCTIONS AND ALU CHIP SELECTS
=000000
F40: ADDER TEST,AD/A+1,J/FEND ;ALU FUNCTION 40
F21: ADDER TEST,AD/ORC,J/NULTIC ;ALU FUNCTION 21
F11: ADDER TEST,AD/A-B-1,J/FEND ;ALU FUNCTION 11
F51: ADDER TEST,AD/A-B,J/FEND ;ALU FUNCTION 51
F40GEN: ADDER TEST,AD/A+1, ;ALU FUNCTION 40 WITH "GEN CRY18"
SPEC/GEN CRY18,J/FEND
F26: ADDER TEST,AD/EQV,J/NULTIC ;ALU FUNCTION 26
F0: ADDER TEST,AD/A+XCRY,J/FEND ;ALU FUNCTION 0
F22: ADDER TEST,AD/ORCA,J/NULTIC ;ALU FUNCTION 22
F6LONG: ADDER TEST,AD/A+B, ;ALU FUNCTION 6 WITH "AD LONG"
J/FEND,SPEC/AD LONG
F46GEN: ADDER TEST,AD/A+B+1, ;ALU FUNCTION 46 WITH "GEN CRY18"
SPEC/GEN CRY18,J/FEND
F46LNG: ADDER TEST,AD/A+B+1, ;ALU FUNCTION 46 WITH "AD LONG"
SPEC/AD LONG,J/FEND
F6INH: ADDER TEST,AD/A+B, ;ALU FUNCTION 6 WITH "INH CRY18"
SPEC/INH CRY18,J/FEND
F6: ADDER TEST,AD/A+B,J/FEND ;ALU FUNCTION 6
=
NULTIC: J/FEND ;A NULL MICRO WORD TO SYNC ADDER TEST CLOCK TICS
FEND: DISP/DIAG,J/0000 ;DISPATCH BACK TO CURRENT GROUP
DISPATCHER: J/000, DISP/DRAM J, ;DISPATCH TO ACTUAL ALU TEST FUNCTION
ADB/FM,ADA EN/0S,AD/0S
GO: AR FROM PDP11,J/DISPATCHER ;BEGIN TEST SEQUENCE
.TOC "EDP4A: DATA PATH '-AD=0' TEST.FLOAT 1S DOWN AD"
;MICRO CODE TO DIRECT AR DATA TO THE AD AND THEN
;SKIP ON "-AD=0"
MIC4A: AR FROM PDP11 ;TEST DATA TO AR
AD/B,ADA/ARX ;NO AR DATA TO AD
AD/A,ADA/AR, ;READ AR TO AD
SKIP/AD#0 ;SKIP IF MACHINE WORKS
=0
HALT4A: J/HALT4A,AD/A,ADA/AR ;MIC-CODE DIDNT SKIP WHEN SHOULD HAVE
J/MIC4A ;LOOP IF TESTED OK
.TOC "FAST MEMORY BASIC INTERFERENCE TEST"
MIC5EDP: AD/B,ADB/FM ;LOAD INTERFERENCE PATTERN TO AR
AR FROM PDP11
;** BURST BEGINS HERE
BR/AR,AR/ADX ;PATTERN TO BR, ZERO TO AR
AD/B,ADB/BR,AR/AD ;FULL SPEED-PATTERN BACK TO AR
COND/FM WRITE,AR/ADX,J/MIC5EDP ;WRITE TO FM, READY TO TEST RESULTS
.TOC "FAST MEMORY FULL SPEED ADDRESS AND DATA TEST"
;INITIALIZE EBOX REGISTERS BRX,BR,AR
MIC6EDP: AR FROM PDP11 ;770000,,0 ACROSS EBUS
SH/AR,MQ/SH ;770000,,0 OVER TO MQ & 41,,0 ACROSS EBUS
AR FROM PDP11
AD/A,ADA/AR,ARX/AD,ADA EN/EN ;777757,,0 ACROSS EBUS & 41,,0 TO ARX
AR FROM PDP11
BRX/ARX,BR/AR,AD/A,ADA/MQ,AR/AD,ADA EN/EN ;LOAD UP BR,AR,BRX
;NOW BRX = 41,,0
;NOW BR = 777757,,0
;NOW AR & MQ = 770000,,0
;FILL FM RAM WITH ZEROES
;LOAD CURRENT AC BLOCKS & SET FM ADDRESS IN ARX
FM1: COND/DIAG FUNC,DIAG FUNC/LD AC BLKS,
FMADR/AC0,ADA/AR,ADB/BR,AD/AND,ARX/AD,ADA EN/EN
;GET ZERO TO AR, THEN WRITE FM
FMADR/AC0,AR/AD,AD/0S
FMADR/XR,COND/FM WRITE ;ARX 14-17 TO FM ADR
;CHECK THAT FM=0, HALT LOOP IF NO
ADB/FM,AD/B,SKIP/AD#0,FMADR/XR,AR/AD,J/LBFM
=0
LBFM: ADB/BR,ADA/AR,ADA EN/EN, ;IF HERE,FM HAS ZERO.INC BLOCK & AC#
ARX/ADX,AD/A+B,J/LBFM2
HALT00: J/HALT00,ADB/FM,AD/B,FMADR/XR ;HALT,WRITING 0S TO FM FAILED
;BLOCK AND AC JUST INCREMENTED.WILL GO TO
;FMOK1 WHEN BLOCK AND AC# BACK TO 0
LBFM2: ADA/ARX,AD/AND,SKIP/AD#0,ADB/BR,ADA EN/EN
=0
FMOK1: J/FM2
;IF HERE, MUST LOAD 0 TO NEXT FM LOCATION
;MOVE NEXT ADDRESS TO AR AND CONTINUE
AD/A,AR/ADX,ADA EN/EN,J/FM1
;FAST MEMORY RAM TEST, PHASE II
;THIS SECTION OF MICRO-CODE READS A LOCATION
;VERIFYS 0, WRITES A 1, GOES TO NEXT ADDR, VERIFYS 0
;WRITES A 1 AND SO ON, ONTO THE END OF THE FM RAM
FM2: AR/AD,AD/A,ADA/MQ,ADA EN/EN ;770000,,0 TO AR
;NOW BRX = 41,,0
;NOW BR = 777757,,0
;NOW AR & MQ = 770000,,0
;LOAD CURRENT AC BLOCKS & FM ADDRESS TO ARX
FM3: COND/DIAG FUNC,DIAG FUNC/LD AC BLKS,
FMADR/AC0,ADA/AR,ADB/BR,AD/AND,ARX/AD,ADA EN/EN
;GET ONE TO AR,VERIFY FM = 0 THEN WRITE FM 1'S
FMADR/AC0,AR/AD,AD/1S
FMADR/XR,ADB/FM,AD/B,SKIP/AD#0,AR/AD,J/LPFM ;ERR IF FM NON 0
=0
LPFM: AR/AD,AD/1S,J/LPFM2 ;AR GETS DATA TO WRITE TO FM
HALT20: ADB/FM,AD/B,FMADR/XR, ;HALT IF FM LOCATION WRITTEN BY SOMEONE ELSE
J/HALT20
;INCREMENT BLOCK AND AC NUMBER,NO JUMP IF = 0
LPFM2: FMADR/XR,COND/FM WRITE ;ARX 14-17 TO FM ADR & WRITE ONES
ADB/BR,ADA/AR,AD/A+B,ARX/ADX
ADA/ARX,AD/AND,SKIP/AD#0,ADB/BR ;TEST BLOCK & FM ADR FOR =0
=0
FMOK3: J/FM4 ;BLOCK & FM ADR = 0. ONTO NEXT PHASE
;MOVE NEXT ADDRESS TO AR AND CONTINUE LOOP
AD/A,AR/ADX,ADA EN/EN,J/FM3
;FAST MEMORY RAM TEST, PHASE III
;THIS SECTION OF MICRO-CODE STARTS AT THE GREATEST
;FAST MEMORY RAM LOCATION,READS AND VERIFYS A 1, WRITES A 0,
;DECREMENTS TO THE NEXT RAM ADDRESS,VERIFYS 1,WRITES 0
;AND SO ON, ONTO RAM ADDRESS ZERO.
;WHEN COMPLETE, THE FAST MEMORY RAM IS COMPLETLY TESTED
FM4: AD/A,ADA/MQ,AR/AD,ADA EN/EN ;770000,,0 TO AR
;NOW BRX = 41,,0
;NOW BR = 777757,,0
;NOW AR & MQ = 770000,,0
;BEGIN WITH BLOCK & FM ADR = 0
FM5: AD/SETCA,ADA/AR,AR/AD,ADA EN/EN ;NOW COMPLIMENT BLOCK & FM ADR
;LOAD CURRENT AC BLOCKS
COND/DIAG FUNC,DIAG FUNC/LD AC BLKS,
FMADR/AC0,ADA/AR,ADB/BR,AD/AND,ARX/AD,ADA EN/EN
;GET ZERO TO AR,VERIFY FM = 1 THEN WRITE FM 0'S
FMADR/AC0,AR/AD,AD/0S
FMADR/XR,ADB/FM,AD/SETCB,SKIP/AD#0,AR/AD,J/LQFM ;ERR IF FM NON 0
=0
LQFM: AR/AD,AD/0S,J/LQFM2
HALT40: J/HALT40,ADB/FM,AD/B,FMADR/XR ;HALTED IF FM NOT 36 ONES
;INCREMENT BLOCK AND AC NUMBER,NO JUMP IF = 0
LQFM2: FMADR/XR,COND/FM WRITE ;ARX 14-17 TO FM ADR
AD/SETCA,ARX/ADX,ADA EN/EN
ADA/ARX,ADB/BR,AD/AND,ARX/AD ;CLR BAD CARRY BIT
ADB/BR,ADA/AR,ADA EN/EN,AD/A+B,ARX/ADX ;NEXT FM ADDR
ADA/ARX,AD/AND,SKIP/AD#0,ADB/BR,ADA EN/EN
=0
FMOK5: J/FMOK5 ;8 AC BLOCKS PASS ADDRESSING AND DATA TEST IF END HERE
;IF HERE, MUST LOAD 0 TO NEXT FM LOCATION
;FINALLY MOVE NEXT ADDRESS TO AR AND CONTINUE
AD/A,ADA EN/EN,AR/ADX,J/FM5
.TOC "VMA1: VMA & ADDRESS BREAD REGISTER TESTS"
MIC1VMA: AR FROM PDP11 ;LOAD INTERFERENCE PATTERN TO AR
AD/A,ADA/ARX ;INSURE DATA NOT YET AVAILABLE TO VMA OR ADDR BREAK
COND/DIAG FUNC,DIAG FUNC/DATAO APR, ;LOAD VMA & ADDRESS BREAK REG.
AD/A,ADA/AR,VMA/AD,MEM/AD FUNC
.IFNOT/MODEL.B
AD/A,ADA/ARX,J/MIC1VMA ;REMOVE DATA FROM VMA & ADDR BRK INPUTS
.IF/MODEL.B
AD/A,ADA/ARX,J/MIC1VMA, ;REMOVE DATA FROM VMA & ADDR BRK INPUTS
MEM/LOAD AR ;SET " MCL VMA READ"
.ENDIF/MODEL.B
.TOC "VMA2: VMA/ADDR BREAK MATCH LOGIC & VMA 18-31=0"
MIC2VMA: AR FROM PDP11,AD/A,ADA/ARX ;LOAD PATTERN TO AR
AD/A,ADA/AR,VMA/AD,MEM/AD FUNC ;LOAD PATTERN TO VMA
.IFNOT/MODEL.B
AD/A,ADA/ARX,J/MIC2VMA ;REMOVE DATA FROM VMA & ADDR BRK INPUTS
.IF/MODEL.B
AD/A,ADA/ARX,J/MIC2VMA, ;REMOVE DATA FROM VMA & ADDR BRK INPUTS
MEM/LOAD AR ;SET " MCL VMA READ"
.ENDIF/MODEL.B
.TOC "EVMA03: PC AND VMA HELD REGISTERS TEST"
;MICRO-CODE TO INITIALIZE THE VMA(13-35),
; PC(13-35), ADR BRK(13-35), AND VMA HELD(13-35)
IMVMA3: AD/0S,VMA/AD,MEM/AD FUNC ;ZEROES TO VMA(13-35)
COND/DIAG FUNC,DIAG FUNC/DATAO APR,
SPEC/LOAD PC
COND/LD VMA HELD, J/IMVMA3 ;AND ZEROES TO VMA HELD
;MICRO-CODE FOR LOADING THE VMA WITH TEST PATTERNS, THEN LOADING
;BOTH THE PC AND VMA HELD REGISTERS
MIC3VMA:AR FROM PDP11 ;TEST PATTERN TO AR
VMA/AD,AD/A,ADA/AR,MEM/AD FUNC ;TEST PATTERN VMA
COND/LD VMA HELD ;TEST PATTERN TO VMA HELD
ARX/AD,AD/A,ADA/PC ;READ PC CONTENTS THRU ADA
AR/AD,AD/A,ADA/PC,COND/SEL VMA, ;READ VMA HELD THRU ADA
SPEC/LOAD PC,J/MIC3VMA ;AND LOAD PC WITH CURRENT TEST PATTERN
.TOC "EVMA04- VMA REGISTER- VMA INC & VMA DEC TEST"
;THIS MICRO-CODED TEST WILL CHECK THE ABILITY OF THE VMA REGISTER
;BINARY COUNTER TO INCREMENT AND DECREMENT THRU ALL REGISTER BITS
MIC4VMA: AR FROM PDP11 ;LOAD AR WITH TEST PATTERN
;BURST BEGINS HERE
AD/A,ADA/AR,VMA/AD,MEM/AD FUNC ;PATTERN TO VMA 13-35
COND/VMA INC,AD/0S ;SET VMA BIN COUNTER TO +1
AR/AD,AD/0S,SPEC/LOAD PC, ;VMA INCREMENTED TO PC, NOW DEC VMA
COND/VMA DEC
COND/LD VMA HELD, ;INCREMENTED VMA TO AR & DECREMENTED VMA TO HELD
AR/AD,AD/A,ADA/PC
ARX/AD,AD/A,ADA/PC,COND/SEL VMA, ;DECREMENTED VMA TO ARX
J/MIC4VMA ;AND BACK TO BEGINNING OF LOOP
.TOC "EVMA04: VMA ADDER ALU TEST"
;VMA ADDER ALU TEST. THIS TEST USES THE VMA ADDER ALU TO ADD MAGIC
; NUMBERS FROM THE CRAM NUMBER FIELD TO THE CONTENTS OF THE PC
;AND THEN PASS THE RESULTS TO THE VMA.
M4.1VMA: AR FROM PDP11 ;PC VALUE TO THE VMA
;BURST BEGINS HERE
AD/A,ADA/AR,VMA/AD,MEM/AD FUNC ;LOAD PC VALUE TO THE VMA
;THE MAGIC NUMBER FIELD AT "MIC4.2VMA" HAS ALREADY BEEN SET UP
SPEC/LOAD PC,AD/0S, ;PC PATTERN TO PC
VMA/AD,MEM/AD FUNC ;AND ZEROES TO VMA
;**NUMBER FIELD,COND FIELD,VMA FIELD & MEM FIELD FILLED IN BY PDP11
M4.2VMA: J/M4.1VMA ;NUM/,COND/,MEM/,VMA/
.TOC "VMA AC REF LOGIC AND VMA SECTION 0 LOGIC TEST"
;THIS IS THE MICRO-CODE FOR CHECKING THE VMA AC REF LOGIC AND
;THE VMA SECTION 0 LOGIC. THE MICRO-CODE FOR THIS TEST HAS 5
;BASIC TASKS TO PERFORM 1) SET "MCL PAGE UEBR REF", 2) SET
;"MCL VMA READ", 3) SET "MCL VMA WRITE", 4) SET "MCL VMA EXTENDED",
;AND 5) LOAD THE VMA, BITS 13-35, ALL THE APPROPRIATE TIMES.
;SEE THE ELEVEN CODE PORTION OF THE TEST FOR A DESCRIPTION OF
;THE ACTUAL PATTERNS BEING IMPLIMENTED.
MIC5VMA:AR FROM PDP11 ;LOAD A ONE TO BIT08
BR/AR,J/MIC5VMA ;AND SAVE BIT08 IN THE BR
;BEGIN ACTUAL TESTING MICRO-CODE---SUBTEST 1
VMAS1: AD/0S,VMA/AD,MEM/AD FUNC ;LOAD VMA(13-35) WITH ZEROES
SPEC/SP MEM CYCLE,MEM/AD FUNC, AD/B, ADB/BR ;SET "MCL VMA EXTENDED"
MEM/WRITE,J/0000 ;SET "MCL VMA WRITE"
VMAS2: COND/LD AR18-35,ADA/MQ,AD/A,AR/AD ;AR 18-35 FILL WITH 1'S
AD/A, ADA/AR, VMA/AD ;LOAD VMA(13-17)=0, VMA 18-31 NOT=0
SPEC/SP MEM CYCLE,MEM/AD FUNC,AD/B,ADB/BR ;SET "MCL VMA EXTENDED"
MEM/WRITE, AD/0S, AR/AD,J/0000 ;SET "MCL VMA WRITE" & SET AR=0
VMAS3: AD/0S, VMA/AD,MEM/AD FUNC ;LOAD VMA(13-35) WITH ZEROES
SPEC/SP MEM CYCLE,MEM/AD FUNC,AD/B,ADB/BR ;SET "MCL VMA EXTENDED"
MEM/WRITE, ;SET "MCL VMA WRITE"
SPEC/SP MEM CYCLE,SP MEM/UPT,J/0000 ;SET "MCL PAGE UEBR REF"
VMAS4: AD/0S, VMA/AD,MEM/AD FUNC ;LOAD VMA(13-35) WITH ZEROES
SPEC/SP MEM CYCLE, MEM/AD FUNC, ;SET "MCL VMA EXTENDED"
AD/B,ADB/BR, J/0000
.IFNOT/MODEL.B
VMAS5: AR FROM PDP11 ;LOAD AR WITH 37,,0 TO MAKE VMA(13-17)=ALL ONES
.IF/MODEL.B
VMAS7:
VMAS5: AR FROM PDP11, ;LOAD AR WITH 37,,0 TO MAKE VMA(13-17)=ALL ONES
MEM/A RD,#/400 ;SET "MCL SR00"
.ENDIF/MODEL.B
AD/A,ADA/AR,VMA/AD,MEM/AD FUNC ;VMA GETS 37,,0;SET "MCL VMA READ"
MEM/LOAD AR ;SET "MCL VMA READ"
.IF/MODEL.B
VMASF: AR FROM PDP11 ;TEST DATA FOR VMA(13-35) LOADED TO AR
MEM/A RD,#/000,BR/AR ;CLR "MCL SR00,01,02"
VMA/AD,ADB/BR,AD/B,SPEC/SP MEM CYCLE,MEM/LOAD AR,
#/400,J/0000 ;SET "FETCH" & "VMA EXTENDED"
.ENDIF/MODEL.B
;SUBTEST 6 THRU 10 LOOP ON THIS CODE
VMAS5.10:AR FROM PDP11 ;TEST DATA FOR VMA(13-35) LOADED TO AR
VMA/AD,ADA/AR,AD/A,MEM/AD FUNC ;LOAD VMA(13-35)
SPEC/SP MEM CYCLE,MEM/AD FUNC,AD/A,ADA/AR ;SET "MCL VMA EXTENDED"
MEM/WRITE, J/VMAS5.10 ;SET "MCL VMA WRITE" & LOOP THE TEST
.TOC "VMA6: PREVIOUS SECTION REG, VMA IN MUX, ARMM BITS 13-17"
;MICRO-CODE TO TEST PREVIOUS SECTION REGISTER, VMA IN MUX AND ITS
;INPUTS, AND TEST ARMM BITS 13-17 AND THE SELECTABILITY OF BOTH
;ITS INPUTS.
;BASIC PATH IS! LOAD A PATTERN INTO THE PREVIOUS SECTION REGISTER
;FROM THE AD. NEXT, READ THE PREVIOUS SECTION CONTENTS VIA
;THE ARMM AND AR. NEXT, PREVIOUS SECTION THRU VMA IN MUX
;INTO THE VMA SECTION. (AT THIS POINT BOTH THE AR AND VMA ARE
;READ AND VERIFIED TO BE CORRECT). NEXT, LOAD ZEROES TO THE
;VMA SECTION VIA THE VMA IN MUX, FROM THE PC SECTION, (AGAIN, VERIFY
;THE RESULTS). THEN REPEAT WITH A NEW PATTERN.
;MAINLINE TEST MICRO-CODE FOR EVMA06 TEST
MIC6VMA: AR FROM PDP11 ;FIRST TEST PATTERN INTO EBOX
AR/AR ;THIS WORD IS A NOP TO ENABLE BURST MODE OPERATION
COND/DIAG FUNC,DIAG FUNC/LD PCS+CWSX, ;LOAD PREV SECT.REGISTER
AD/A,ADA/AR,AR/ADX
.IFNOT/MODEL.B
AR CTL/AR9-17 LOAD,COND/REG CTL, ;PREV SECTION THRU ARMM INTO AR
AR/ARMM,ARMM/EXP_SIGN
.IF/MODEL.B
AR CTL/AR9-17 LOAD,COND/REG CTL, ;PREV SECTION THRU ARMM INTO AR
AR/ARMM,VMAX/PREV SEC ;THIS PUTS PREV SEC INTO AR
.ENDIF/MODEL.B
.IFNOT/MODEL.B
COND/SPEC INSTR,SPEC INSTR/PXCT ;SET UP A PXCT TO ENABLE VMA IN MUX
.IF/MODEL.B
MEM/EA CALC ;DO EA CALC TO ENABLE VMA IN MUX
.ENDIF/MODEL.B
MEM/A RD,VMA/AD, ;LOAD PREV SEC INTO VMA SEC THRU VMA IN MUX
BR/AR ;AND SAVE THE ARMM TO AR DATA IN THE BR
;PDP11 WILL TEST STATUS OF EBOX AT THIS POINT.
; PREV SEC "HOLD ABILITY" WAS ALSO CHECKED BY THIS MICRO-CODE.
VMA/PC,DISP/DIAG,J/0000 ;CLR VMA SEC. LOAD FROM PC SEC VIA VMA IN
;AGAIN THE PDP11 WILL CHECK THE EBOX
;NOW THE LAST PHASE OF THE TEST IS TO CHECK THE PC LINES
;THRU THE ARMM MIXER.
M6.1VMA:AR/ARMM,ARMM/# ;PC THRU ARMM INTO AR-CHECK ARMM PC SELECT ABILITY
.IF/MODEL.B
.TOC "ADDITIONAL AC REF & AC LOCAL ADDR TESTS FOR VMA BOARD"
;IT IS THE PURPOSE OF THIS TEST TO CHECK SEVERAL SIGNALS ON THE VMA
;BOARD THAT ARE CURRENTLY LOOSE ENDS AND NOT TESTED BY ANYONE.
;THESE INCLUDE INPUTS TO "VMA LOCAL","VMA LOCAL AC ADDRESS", & "VMA AC
;REF"
;SEE THE PDP11 CODE COMMENTS FOR COMPLETE DETAILS ON WHAT SIGNALS ARE
;BEING TESTED BY EACH SUBTEST
MIC8VMA: AR FROM PDP11 ;LOAD 36-BIT STIMULUS WORD TO AR
MEM/A RD,#/400,BR/AR ;SET "MCL SR00" TO PREVENT "VMA EXT EN"
J/SUPTST,DISP/SIGNS, ;SKIP..AD00=1 SETS "VMA EXTENDED"
VMA/AD,AD/B,ADB/BR ;AND LOAD VMA WITH DATA PATTERN
=110
SUPTST:
;HERE IF THERE SHALL BE NO "VMA EXTENDED"
COND/VMA INC,MEM/EA CALC, ;INCREMENT VMA AND
#/42,J/MIC8VMA ;SET "VMA READ" & ENABLE "MCL ADR ERR"
;HERE IF WE REQUIRE "VMA EXTENDED" TRUE
COND/VMA INC,MEM/EA CALC, ;INCREMENT VMA AND
#/42, ;SET "VMA READ" & ENABLE "MCL ADR ERR"
J/MIC8VMA,SH/AR ;DUMMY "SH/AR" TO SET "MCL VMA EXTENDED"
.ENDIF/MODEL.B
.TOC "VMA07: PC & VMA HELD DIAGNOSTIC MIXERS"
;MICRO-CODE FOR LOADING THE "PC" WITH INTERFERENCE DATA FROM THE VMA
;AND THEN LOADING THE "VMA HELD" REGISTER WITH INTERFERENCE DATA FROM
;THE VMA,AND CHECKING BOTH OF THE REGISTERS WHILE YOU DO IT
MIC7VMA: AR FROM PDP11 ;TEST PATTERNS TO AR
VMA/AD,AD/A,ADA/AR,MEM/AD FUNC,COND/LD VMA HELD ;TEST PATTERN TO VMA
SPEC/LOAD PC ;TEST PATTERN TO PC
;** PDP11 WILL STOP HERE TO READ THE PC
COND/LD VMA HELD, ;TEST PATTERN TO VMA HELD-0S TO VMA
VMA/AD,AD/0S,MEM/AD FUNC
SPEC/LOAD PC, ;ZEROES TO PC
J/MIC7VMA ;PDP11 WILL STOPHERE TO READ VMA HELD
;MACRO TO GENERATE "CON CONO PI"
CONO PI "COND/DIAG FUNC, DIAG FUNC/CONO PI, ADA/AR,AD/A"
GEN AR "ADA/AR,AD/A"
.TOC "PI LEVEL SET/CLR;PI GEN SET/CLR;PI ON/OFF & PI SYS CLR"
;THE MICRO-CODE FOR PI TEST1 MERELY STROBES THE CONTENTS OF THE
;AR TO THE PI BOARD IN ORDER TO TEST THE SETTING AND CLEARING OF
;BOTH PI "ON LEVELS" AND PI "GEN LEVELS".
MIC1PIZZA:
AR FROM PDP11 ;LOAD CONO DATA TO AR
AD/0S,ADA/ARX ;INSURE NO DATA READY ON EBUS
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE, ;PREVENT "LOAD/TEST" RING
AR/AR
CONO PI ;GIVE THE PI BOARD A GO
BR/AR,AR/ADX,GEN AR, ;AND CLOCK FOR "CON CONO PI" TO GO AWAY
J/0000,DISP/DIAG
;THIS CODE IDENTICAL TO "MIC1PIZZA", BUT "CON CONO PI" IS NOT ASSERTED
NOCONO: AR FROM PDP11 ;CONO DATA TO AR
AD/0S,ADA/ARX ;ZERO EBUS DATA
COND/SPEC INSTR, ;TURN OFF PI "LOAD/TEST" RING
SPEC INSTR/SET PI CYCLE
COND/DIAG FUNC,DIAG FUNC/.5 USEC,ADA/AR,AD/A ;PSUEDO CONO
BR/AR,AR/ADX,AD/0S,
J/MIC1PIZZA ;LAST CLOCK TICK
.TOC "PI BOARD IR03-IR09 THRU CS MUX, CS LINES STUCK, ANY INTERFERENCE"
MIC2PI: AR FROM PDP11 ;INTERFERENCE PATTERN TO THE AR
AD/A,ADA/AR,COND/LOAD IR ;LOAD IR FROM AD
AD/0S,ADA/MQ,AR/AD,J/MIC2PI ;REMOVE DATA AND BACK TO THE BEGINNING
.TOC "PI BOARD BASIC LOAD/TEST RING, PLUS EBUS REQUEST AND EBUS PI GRANT"
;THE FOLLOWING MICRO SEQUENCE IS USED IN TEST PIZZA2, SUBTESTS 8, 10, & 11.
;THE MICRO CODE FIRST SETS "PI CYCLE".
;SECONDLY, IT DOES A "CONO PI" WITH DATA
;LOADED INTO THE AR FROM THE PDP11.
;THIS DATA SHOULD SET "PI ACTIVE" & "PI GEN4".
;THE SIGNAL "EBOX HALTED" WILL BE LEFT FALSE. THEN MICRO CODE THE LOOPS ON
;A NOP INSTRUCTION WHILE THE PDP11 ISSUES MBOX CLOCKS IN ORDER TO TEST
;AND CHECK THE PI BOARD OPERATION.
MPI2.1: AR FROM PDP11 ;LOAD CONO DATA TO THE AR
COND/SPEC INSTR, ;SET THE PI CYCLE FLOP
SPEC INSTR/SET PI CYCLE,AR/AR
CONO PI,J/CLRPIC ;LOAD "ACTIVE" & "GEN" AND GO CLEAR PI CYCLE
;THIS MICRO-CODE SEQUENCE FIRST SETS "PI CYCLE".SECONDLY, DOES A "CONO PI"
;WITH DATA PROVIDED BY THE PDP11 WHICH SHOULD SET "ACTIVE" AND "GEN" 4
;NEXT THE FLOP "EBOX HALTED" WILL BE SET TRUE, FINALLY IT JUMPS TO THE
;NOP LOOP WHILE THE ELEVEN CHECKS THE PI BOARD.
MPI2.2: AR FROM PDP11 ;COND DATA INTO THE AR
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE,AR/AR ;SET PI CYCLE FLOP
CONO PI ;LOAD "ACTIVE" & "GEN" 4
COND/SPEC INSTR,SPEC INSTR/HALTED, ;SET "EBOX HALTED"
GEN AR,J/CLRPIC
;THIS MICRO CODE SEQUENCE FIRST SETS "PI CYCLE" THEN SETS
;"APR EBOX DISABLE CS". NEXT, PI CYCLE IS DROPPED AND WE GO TO
;THE NOP MICRO LOOP.
MPI2.5: AR FROM PDP11 ;LOAD CONO DATA TO THE AR
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE
COND/EBUS CTL,EBUS CTL/DISABLE CS HOLD ;SET "APR EBOX DISABLE CS"
J/CLRPIC
CLRPIC: SPEC/FLAG CTL,FLAG CTL/DISMISS,GEN AR,J/JSELF ;CLR PI CYCLE FLG
JSELF: J/JSELF,COND/VMA_#+PI*2 ;MICRO NOP TO LOOP ON SELF
;AND GATE PI4,2,1 TO SCAD MUXS
.TOC "PI BOARD TEST 3, PIR EN, PI REQ SET, PIH, PI CLRS"
;THIS MICRO-CODE IS USED TO TEST THE "PI REQ SET" DECODER SYSTEM,
;THE PIH FLIP FLOPS, AND THE "PI DISMISS" DECODER SYSTEM
MIC3PI: AR FROM PDP11 ;LOAD CONO DATA TO THE AR
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE,AR/AR ;SET PI CYCLE FLOP
CONO PI ;SET GEN LEVEL IN ORDER TO SET A PI REQ
SPEC/FLAG CTL,FLAG CTL/DISMISS, ;DROP PI CYCLE
GEN AR ;AND START LOAD/TEST RING COUNTER
TIME/3T ;WAIT 3 MTICS SO THE PI BOARD CAN SET THE REQUEST
TIME/2T ;ADDITIONAL TICS NEEDED FOR PI TO SET
;*******
;THE PDP11 WILL STOP THE CLOCK HERE IN ORDER TO READ STATE OF PI BOARD
;*******
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE ;SET PI CYCLE AGAIN
SPEC/SAVE FLAGS ;SET PI HOLD FLOPS & CLEAR PI CYCLE
;*******
;THE PDP11 WILL STOP THE CLOCK HERE IN ORDER TO READ STATE OF PI BOARD
;*******
SPEC/FLAG CTL,FLAG CTL/DISMISS ;DISMISS PI HOLD ON HIGHEST LEVEL
J/MIC3PI ;NOW LOOP TO BEGINNING
;*******
;THE PDP11 WILL STOP THE CLOCK TO READ THE STATE OF THE PI BOARD.
.TOC "PI BRD TST 3,PIH/PIR DUAL PRIORITY ENCODERS OF REQUEST ON LEVEL"
;THE PIH FLOPS ARE NOW SET, NOW WE MUST SET THE PIR FLOPS
M3.1PI: AR FROM PDP11 ;CLEAR GEN LEVEL CONO DATA TO THE AR
TIME/2T ;NEED RAM WORD TO BUFFERR THE CONO
CONO PI ;CLEAR CURRENT GEN STATUS
AR FROM PDP11,GEN AR ;CONO DATA TO SET APPROPRIATE PIR FLOPS
TIME/2T,COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE,AR/AR
CONO PI ;SET REQUIRED GEN LEVELS
SPEC/FLAG CTL,FLAG CTL/DISMISS, ;DROP PI CYCLE TO SET PIR FLOPS
GEN AR
TIME/3T,DISP/DIAG,J/0000 ;NOW ISSUE PI DISMISS ONLY IF NEEDED
PI3.1A: TIME/5T,SPEC/FLAG CTL,FLAG CTL/DISMISS,J/PI3.1C ;DISMISS A PIH
PI3.1B: TIME/5T ;4 MORE MBOX TICS
;****** PDP11 NOW CHECKS CURRENT PI BOARD STATE
PI3.1C: COND/VMA_#+PI*2 ;GATE "PI4,PI2,PI1" TO SCD MIXER
;MICRO CODE SUBROUTINE TO LOAD MORE THAN ONE OF THE PIH FLOPS
;AND FINISH UP WITH A DISPATCH "DISP/DIAG" SO THAT THE MAINLINE
;PDP11 CODE CAN TAKE OVER AGAIN AND CONTINUE ITS TEST, ONLY
;NOW WITH MULTIPLE PIH FLOPS SET
M3SUB1: AR FROM PDP11 ;LOAD CONO DATA TO THE AR
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE,AR/AR ;SET PI CYCLE FLOP
CONO PI ;SET GEN LEVEL IN ORDER TO SET A PI REQ
SPEC/FLAG CTL,FLAG CTL/DISMISS, ;DROP PI CYC,START LOAD/TEST RING
GEN AR
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE ;SET PI CYCLE AGAIN
SPEC/SAVE FLAGS ;SET PI HOLD FLOPS & CLEAR PI CYCLE
TIME/2T,DISP/DIAG,J/000 ;ADDITIONAL TICS NEEDED FOR PI TO SET
.TOC "PI BOARD TEST 4:PI TIME STATE COUNTER & TIMER DONE BINARY COUNTER"
;THIS MICRO-CODE SETS UP THE PI BOARD TO START THE PI TIME STATE COUNTER
;AND THEN LOOPS ON ITSELF WHILE THE PDP11 ISSUES CLOCKS AND EXAMINES THE
;PI BOARD AS IT CYCLES THRU ITS TIME STATES
MIC4PI: AR FROM PDP11 ;START WITH CONO DATA TO THE AR
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET GEN LEVEL TO FORCE PI TIME STATE GO
SPEC/FLAG CTL,FLAG CTL/DISMISS, ;DROP PI CYC,START LOAD/TEST RING
GEN AR
TIME/5T,AR/AD,ADB/AR*4,AD/B ;SET "EBUS PI GRANT",START "TIM1"
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE ;PI CYCLE AGAIN FOR "TIM6"
CONO PI ;AND DO A CONO TO CLEAR THE "GEN7" JUST SET
TIME/2T,GEN AR ;TWO TICS INTO "TIM3"
CONO PI ;AND DO A CONO TO CLEAR THE "GEN7" JUST SET
MPI4.1: J/MPI4.1,GEN AR ;LOOP HERE WHILE PDP11 CONTROLS THE TEST
.TOC "EBOX CONTROL OF PI:PI CYC,EBOX HALTED,EBUS REQ,REL,DEMAND,&RETURN"
;THIS TEST CLOCKS THROUGH THE TIME STATES OF THE PI BOARD, WHILE AT THE
;SAME TIME BRINGING UP CONTROL SIGNALS AND SETTING CONTROL FLOPS IN THE EBOX
;WHICH SHOULD EXERCISE CONTROL OVER THE PI BOARD,
;FORCING THE PI BOARD TO HOLD
;TIME STATES AND RELEASE OR ACCEPT CONTROL OF THE EBUS.
;THE BEGINNING TESTS WILL CHECK THE "PI GRANT" & "CP GRANT" NETWORKS
;THE FIRST SUBTEST WILL SET "CP GRANT",
;TRY TO SET "PI GRANT" (CP GRANT SHOULD DISABLE PI GRANT)
;AND THEN ISSUE AN "EBUS REL" TO CLEAR "CP GRANT".
MIC5PI: AR FROM PDP11 ;LOAD CONO PI GEN DATA TO AR
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
COND/EBUS CTL, EBUS CTL/REQ EBUS ;SET "APR EBUS REQ"
CONO PI ;CONO PI SETS "PI REQ" & "CON EBUS GRANT"
SPEC/FLAG CTL, ;DROP PI CYC,START PI LOAD/TEST RING&TEST EBUS GRANT
FLAG CTL/DISMISS,SKIP/-EBUS GRANT,GEN AR
=1
COND/EBUS CTL,EBUS CTL/REL EEBUS, ;CLOCK,CHECK "PI GRANT" NOT SET
TIME/5T
COND/EBUS CTL,EBUS CTL/REL EBUS ;RELEASE EBUS,VERIFY "CP GRANT" CLRS
M5.0PI: TIME/2T ;ADDITIONAL TIC FOR "CON EBUS GRANT" TO CLEAR
SKIP/-EBUS GRANT
;THE NEXT SUBTEST WILL COMPLETE THE TEST
;OF THE D-INPUT TO THE "CP GRANT" FLOP
M5.1PI: AR FROM PDP11 ;LOAD CONO PI GEN DATA TO AR
SKIP/-EBUS GRANT, ;CHECK THAT "-APR EBUS REQ",INHIBITS CP GRANT
TIME/2T
=1
COND/SPEC INSTR,SPEC INSTR/SET PI CYCLE
CONO PI ;DO A CONO & READ "CP GRANT"
SPEC/FLAG CTL,FLAG CTL/DISMISS,GEN AR
=1
TIME/5T ;AND SET "PI5 EBUS PI GRANT"
COND/EBUS CTL, EBUS CTL/REQ EBUS ;SET APR EBUS REQ
TIME/2T ;AND SEE THAT "EBUS CP GRANT" DOES NOT SET
TIME/2T,SKIP/-EBUS GRANT
;THE NEXT SEVERAL SUBTESTS ARE DESIGNED TO TEST THE "EBUS DEMAND" LOGIC
M5.2PI: AR FROM PDP11 ;LOAD CONO PI GEN DATA TO AR
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET GEN LEVEL,FORCE PI TIME STATE TO GO
SPEC/FLAG CTL, ;DROP PI CYCLE TO START LOAD/TEST TIMING
FLAG CTL/DISMISS,GEN AR
TIME/5T ;SET "EBUS PI GRANT"
COND/EBUS CTL, EBUS CTL/EBUS DEMAND ;SET "APR EBUS DEMAND"
;THE ELEVEN WILL STOP HERE AND CHECK THAT "EBUS DEMAND E" HAS GONE HIGH.
COND/EBUS CTL, EBUS CTL/EBUS NODEMAND, ;CLEAR "APR EBUS DEMAND"
J/JSELF ;AND GOTO A SELF LOOP
;THE NEXT SUBTEST IS THE FINAL PATTERN NECESSARY
;TO COMPLETE THE TEST OF THE EBUS DEMAND
;LOGIC. THIS SUBTEST REQUIRES THE USE
;OF "-HONOR INTERNAL" TO GET TO PI TIME STATE "TIM5"
;AND TEST "EBUS DEMAND"
M5.3PI: AR FROM PDP11 ;LOAD CONO PI GEN DATA TO AR
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET GEN LEVEL,FORCE PI TIME STATE GO
SPEC/FLAG CTL,FLAG CTL/DISMISS, ;DROP PI CYC,START LOAD/TEST RING
GEN AR
TIME/5T, AR/AD, ADB/AR*4, AD/B ;SET "EBUS PI GRANT"
CONO PI, ;CONO TO CLEAR GEN&DROP "HONOR INTERNAL"
J/JSELF ;AND GO TO A SELF LOOP
;THE NEXT GROUP OF SUBTESTS TEST THE "STATE HOLD" LOGIC
M5.4PI: AR FROM PDP11 ;LOAD CONO PI GEN DATA TO AR
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET NECESSARY GEN LEVEL TO FORCE A "PI REQ"
SPEC/FLAG CTL, ;DROP PI CYCLE TO START LOAD/TEST TIMING
FLAG CTL/DISMISS,GEN AR
TIME/3T ;SET "PI EBUS GRANT"
COND/SPEC INSTR, ;SET PI CYCLE FOR NEXT SUBTEST
SPEC INSTR/SET PI CYCLE,
J/JSELF ;CLEAR GEN PREVIOUSLY SET & LOOP
;THE PDP11 WILL STOP HERE TO CHECK THE STATE OF
;THE PI BOARD (IF COUNTER GOES TO TIMER DONE, ALL OK)
;PDP11 WILL AGAIN CHECK THE PI BOARD.
;IF WE GET THRU TIM6 INTO TIM7, STATE HOLD CHECKS OK
;NEXT STATE HOLD SUBTEST
M5.5PI: AR FROM PDP11 ;LOAD CONO PI GEN DATA TO AR
COND/SPEC INSTR, SPEC INSTR/HALTED ;SET "APR EBOX HALTED"
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET NECESSARY GEN LEVEL TO FORCE "PI REQ"
COND/EBUS CTL,EBUS CTL/GRAB EEBUS,GEN AR ;SET "APR EBUS RETURN"
SPEC/FLAG CTL, ;DROP PI CYCLE TO START LOAD/TEST TIMING
FLAG CTL/DISMISS
M5.5SF: TIME/5T,J/M5.5SF ;SET "EBUS PI GRANT"
;PDP11 WILL CHECK PI BOARD.
;SHOULD NOT ENTER "TIM1", SHOULD NEVER GET "TIMER DONE"
;NEXT STATE HOLD SUBTEST
M5.6PI: AR FROM PDP11 ;LOAD CONO PI GEN DATA TO AR
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET NECESSARY GEN LEVEL TO FORCE "PI REQ"
SPEC/FLAG CTL, ;DROP PI CYCLE TO START LOAD/TEST RING TIMING
FLAG CTL/DISMISS,GEN AR
TIME/5T ;LET PI GET INTO CYCLE THEN SET "HALTED"
TIME/5T ;SET "EBUS PI GRANT"
COND/SPEC INSTR, SPEC INSTR/HALTED, ;SET "CON EBOX HALTED"
J/JSELF ;AND LOOP
;FINAL STATE HOLD SUBTEST - THIS MICRO-CODE ALSO USED IN SEVERAL SUBTESTS
;TO TEST THE "OK ON HALT" DECODER ON PRINT PI4
M5.7PI: AR FROM PDP11 ;EBUS DATA FOR THE "OK ON HALT" TEST
BR/AR ;SAVE IT IN BR
AR FROM PDP11 ;CONO PI GEN DATA TO THE AR
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET NECESSARY GEN LEVEL TO SET "PI REQ"
SPEC/FLAG CTL, FLAG CTL/DISMISS, ;GET "OK ON HALT" DATA INTO AR
GEN AR
TIME/5T,BR/AR,AD/B,ADB/BR*2,AR/AD ;LET PI BOARD GET INTO CYCLE
TIME/5T ;THIS 5 TIC NOP MAKES PI "TIM6" HAPPEN
; AT THE BEGINNING OF A 17 TIC "CONO"
TIME/5T ;AND START PI LOAD/TEST TIMER
COND/SPEC INSTR, SPEC INSTR/HALTED ;SET "APR EBOX HALTED"
M5.8PI: COND/DIAG FUNC,DIAG FUNC/.5 USEC, ;DUMP "OK ON HALT" ONTO EBUS
ADA/AR,AD/A,J/M5.8PI
;FINALLY, PDP11 WILL CHECK THAT "OK ON HALT"
;CAUSES "STATE HOLD" AND THAT WE NEVER LEAVE "TIM6"
.TOC "PI TEST 6: PHYSICAL NUMBER FLOPS,PHYS. NO. PRIORITY ENCODERS"
;THIS TEST CHECKS THE 16 PHYSICAL NUMBER FLIP FLOPS ON PRINT PI2 AND
;ALSO CHECKS THE DUAL PRIORITY ENCODERS WHICH TAKE THE PHYSICAL NUMBERS AND
;PRODUCE THE SIGNALS "SEL PHY 8, SEL PHY 4, SEL PHY 2, AND SEL PHY 1".
;THE TEST ALSO CHECKS THE "SEL PHY X" TO EBUS BITS 7, 8, 9, 10 MIXER
;THE TEST USES MICRO-CODE WHICH RUNS THROUGH ALL 7 TIMING STATES OF
;THE PI BOARD. THE PDP11 STOPS THE CLOCK DURING PI TIM3 AND EXAMINES
;THE STATE OF THE PI BOARD TO ENSURE THAT THE CORRECT PHYSICAL NUMBERS
;HAVE COME UP. NEXT, THE TEST IS CONTINUED TO TIM6, WITH THE AR FUNCTION
;"AR/EBUS" AND AFTER TIM6 THE PDP11 AGAIN STOPS THE CLOCK AND EXAMINES THE
;PI BOARD & THE AR TO BE SURE THE CORRECT SIGNALS WERE PUT ONTO THE EBUS
;BY THE PI TO EBUS MIXER.
MIC6PI: AR FROM PDP11 ;LOAD PHYSICAL NUMBER TEST PATTERN TO AR
BR/AR ;TRANSFER TO BR
AR FROM PDP11 ;LOAD CONO PI GEN LEVEL TO START A CYCLE
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET GEN LEVEL,FORCE PI TIME STATE GO
SPEC/FLAG CTL, ;DROP PI CYCLE & ACTUALLY START LOAD/TEST TIMING
FLAG CTL/DISMISS,GEN AR
AR/AD,AD/B,ADB/BR, ;SET "EBUS PI GRANT",GET PHYS NUMBER DATA TO AR
TIME/5T
TIME/5T ;PI CYCLE HOLDS TIM6
TIME/5T ;MORE MBOX TICS
TIME/5T ;PLUS 5 MORE
TIME/5T ;AND FIVE MORE IS PERFECT
COND/DIAG FUNC,DIAG FUNC/.5 USEC,GEN AR ;PHYSICAL NUMBERS ONTO EBUS
;THE PDP11 STOPS THE CLOCK HERE TO EXAMINE THE PI BOARD AND CHECK
;THAT THE DESIRED PHYSICAL NUMBERS HAVE SET
M6.1PI: J/M6.1PI, AR/EBUS ;HAVE AR STROBING EBUS TO CHECK WHAT
;THE PI BOARD PUTS ON THE EBUS AT TIM6
;THE PDP11 STOPS THE CLOCK AFTER "TIM6" TO SEE WHAT THE AR HAS READ OFF
;THE EBUS AT "PI TIM6"
;THE FOLLOWING SECTION OF MICRO-CODE PERFORMS
;TWO ADDITIONAL SUBTESTS FOR PI TEST 6.
;THE FIRST IS TO TEST THE "AND" GATE DRIVING
;THE SELECT INPUT OF THE PHYS. NO. TO EBUS
;MIXER. THE MICRO-CODE WILL GO THROUGH A
;NORMAL SEL PHYS. NO. SEQUENCE LIKE THE
;PREVIOUS SUBTEST, BUT WILL ALSO DO AN
;"EBUS RETURN" TO CHECK THAT THE EBUS RETURN
;TURNS OFF THE DATA ONTO THE EBUS. IMMEDIATELY FOLLOWING THAT SUBTEST, THE
;MICRO-CODE WILL SET "APR EBOX DISABL CS" AND THE PDP11 WILL CHECK THAT THE
;DUAL "PHY. NO." PRIORITY ENCODERS SELECT ALL 0'S.
M6.2PI: AR FROM PDP11 ;LOAD PHYSICAL NUMBER 15 (EBUS BIT15) TO AR
BR/AR ;TRANSFER TO BR
AR FROM PDP11 ;LOAD GEN LEVEL DATA TO START A PI CYCLE
COND/SPEC INSTR, ;SET PI CYCLE TO INITIALIZE LOAD/TEST RING
SPEC INSTR/SET PI CYCLE
CONO PI ;SET GEN LEVEL,FORCE PI TIME STATE GO
SPEC/FLAG CTL, ;DROP PI CYCLE & ACTUALLY START LOAD/TEST TIMING
FLAG CTL/DISMISS,GEN AR
AR/AD,AD/B,ADB/BR, ;SET "EBUS PI GRANT",GET PHYS NUMBER DATA TO AR
TIME/5T
TIME/5T ;NOW NEED TO WAIT SEVERAL M-TICS FOR PI BOARD
TIME/5T ;PLUS 5 MTICS
TIME/5T ;PLUS 5 MORE MTICS
TIME/5T ;MAKE "TIM3" HAPPEN WHILE EBOX PUTS DATA ON EBUS
COND/DIAG FUNC, ;THIS RAM WORD TAKES 21 MTICS,GOES TO "PI TIM5"
DIAG FUNC/.5 USEC,AD/A,ADA/AR
COND/EBUS CTL, ;5 MORE TICS PUTS US IN TIM6, SET "EBUS RETURN"
EBUS CTL/GRAB EEBUS
COND/DIAG FUNC,DIAG FUNC/.5 USEC, ;THIS MICRO WORD TAKES 21 MTICS
AD/0S
TIME/5T ;WAIT 5 MORE MTICS
TIME/5T
TIME/5T
AR/EBUS ;EBUS INTO AR,ENSURE "EBUS RETURN" TURNS OFF
;PHYS. NO. TO EBUS-PDP11 CHECKS KL10 HERE
COND/EBUS CTL, ;SET "APR EBOX DISABLE CS" & ENSURE IT TURNS OFF
;PHYS NUMBER DUAL PRIORITY ENCODERS
EBUS CTL/DISABLE CS HOLD
J/JSELF ;AND END WITH A NOP LOOP
.TOC "PI BOARD - TEST 7, APR PIA 04,02,01, APR PHY NO. & PIR EN"
;MACRO FOR CONO APR
CONO APR "COND/DIAG FUNC, DIAG FUNC/CONO APR, ADA/AR, AD/A"
;IT IS THE PURPOSE OF THIS TEST TO CHECK THE "APR PIA04,02,01" FLPS, WHICH
;ARE SET BY THE "CONO APR", TO CHECK THE "APR PIA" DECODERS AND TO CHECK
;THE OUTPUT OF THE "APR PIA" DECODERS TO THE PI REQUEST FLOPS
;THE TEST PERFORMS THE TEST BY 1) SETTING ALL PI LEVELS "ON" & "PI ACTIVE".
;2) THEN SETTING THE 3-BIT "APR PIA" REGISTER WITH 0, CYCLING THE PI
;BOARD TO "TIM3", THEN REPEATING THAT LOOP, ONLY LOADING THE "APR PIA"