ENIAC                             U. S. Army

A Logical Coding System Applied to the ENIAC

SECTION V: A SUGGESTED TEST PROGRAM

The ENIAC is complicated. It has about 20,000 tubes and thousands of switches and plug-in contacts. Since any of these or other things may fail, it is not surprising that the duration of an average run without some failure is only a few hours. For example, a power failure (of which there were 9 in November and December, 1947) may spoil four or five tubes. Some of these failures are not clear-cut failures like a short, but borderline failures which may cause a tube to operate improperly once in a hundred to a thousand times. It is therefore important to be able to test the ENIAC rather thoroughly, rapidly, and systematically, and, as far as possible, without touching any cables or switches. Testing of this kind is a science in itself and testing procedures will constantly be changed and improved. The procedure described in this section may accordingly be considered as only one stage in such a development. It is a program, set on the function tables which tests each unit an appropriate number of times and prints the errors found on IBM cards. The nature of the errors should localize the point of failure usually to within 10 or 20 tubes (if it is a tube failure) which can be replaced and examined at leisure without holding up the machine. Of course, the fact that part of the function table switches which describe the problem to be run must be changed to carry out the test is a defect, since switch errors or bad contacts may be made in setting the problem back. This defect is partially corrected by comparing the orders set on the function table with those set on cards before starting the problem. This latter test uses only a few lines of a function table.

Function Table Test.

To test the function tables the number in the first row and first function table is sent to accumulator 11 or 15, 10**n times, then shifted and subtracted from the correct number in the constant transmitter; if the difference is not zero, it is printed and then the next number is sent to accumulator 11 or 15, etc. The whole test takes about 15 minutes if n=3.

Multiplier Test.

A set of about 120 IBM cards is provided, each having 2 numbers, a[i] and b[i], and the product c[i]. The ENIAC reads a card, multiplies a[i] by b[i], 10**n times, shifts the sum n places to the right, compares it with c[i] and prints the difference if it is not zero; the next card is then read, etc. This test takes about a minute if n=2.

Divider and Square-Rooter Test.

Divisions and a square root are used.

Accumulator Test.

To test the accumulators, minus 0000000001 is sent from the constant transmitter to accumulator 1 whence it is sent to accumulator x and back to accumulator 15. Its sign is then changed and it is added to the number in accumulator 1; if the sum is not zero, it is printed. This is repeated m times, then the number is printed and then the value of x is changed. At present it is planned to test 14 of the accumulators since the others are checked some other way. However, it may be desirable to check the others the same way. The testing time, if m is 1,000, is about 5 minutes.

Constant Transmitter.

Two tests are provided for the constant transmitter. The first consists of sending minus 0000000001 from A[LR] m times, adding m and printing if not zero, then repeating for B[LR], etc. This only takes a few seconds. The second consists of reading the card 9999999999, -9999999999, 9999999999, -9999999999, etc., adding A[LR] to B[LR], C[LR] to D[LR], etc., and printing if not zero. This is repeated 50 times, then the signs are changed, and it is repeated 50 times. The 9's are then reduced to 8's and the test proceeds. This tests the reader and the relay switches in the constant transmitter. About 10 minutes are required for this test.

The whole program takes about 30 minutes for the values of m and n suggested, then probably another 30 minutes would be consumed by about 4 people to set and reset the 3,600 switches required to run the program and then put the problem back on, and check the orders reset on the function tables.

Thus 1 to 1-1/2 hours will be required to run this functional test if all goes well. If a defective part is discovered, more time will be required to replace it and retest that unit (it is easy to start and stop the program at any two arguments in the function table).

A shorter, more elementary test which may be run every few hours to seek out major defects has been programmed. Since it only takes about 30 lines it may often be left on the function tables throughout the problem.

Table 5.I. Test Procedure for ENIAC (10 March 1948)

F.T. (alpha) Test

00    94              0X         XX              11        00        00
01    01              02         94             *01        00        63
02    03              94         03              00        63        04
03    70              01         63              05        00        00
04    95              (alpha)0   9(alpha)        05        74        00
05    72              90         94              32        02        44
06    90              94         31              01        41        35
07    11              35         63              33        03        33
08    75              94         0(alpha)        05        73        00
09    41              61         70              01        11        35
10    90              02         03              70        01        34
11    04              95         (alpha)1        3(alpha)  12        74
12    34              75         94              0(alpha)  04        74

Multiply Test

13    94              01         12              63        05        94
14    01              00         63              04        00        00
15    62              95         (alpha)2        0(alpha)  16        74
16    81              63         03              80        30        33
17    03              33         65              63        75        44
18    01              45         02              34        22        33
19    61              00         00              00        00        00
20    95              (alpha)2   3(alpha)        21        74        00
21    70              01         34              04        34        75
22    95              (alpha)2   0(alpha)        16        74        00
23    95              (alpha)2   7(alpha)        24        74        00
24    70              01         35              05        35        75
25    94              01         00              63        04        94
26    0(alpha)        15         73              00        00        00

Acc. Test

27    62              70         13              90        05        03
28    94              0(alpha)   32              15        00        00
29    94              *9         99              33        03        00
30    95              (alpha)6   2(alpha)        31        74        00
31    45              73         00              00        00        00
32    80              01         31              63        44        14
33    94              0(alpha)   60              73        00        00
34    81              02         32              63        44        14
35    94              0(alpha)   60              73        00        00
36    82              04         34              63        44        14
37    94              0(alpha)   60              73        00        00
38    83              05         35              63        44        14
39    94              0(alpha)   60              73        00        00
40    84              10         40              63        44        14
41    94              0(alpha)   60              73        00        00
42    80              11         41              63        44        14
43    94              0(alpha)   60              73        00        00
44    81              12         42              63        44        14
45    94              0(alpha)   60              73        00        00
46    82              13         43              63        44        14
47    94              0(alpha)   60              73        00        00
48    83              21         51              63        44        14
49    94              0(alpha)   60              73        00        00
50    84              22         52              63        44        14
51    94              0(alpha)   60              73        00        00
52    80              23         53              63        44        14
53    94              0(alpha)   60              73        00        00
54    81              24         54              63        44        14
55    94              0(alpha)   60              73        00        00
56    82              25         64              63        44        14
57    94              0(alpha)   60              73        00        00
58    83              24         91              91        54        63
59    44              14         94              0(alpha)  60        73
60    44              65         63              75        33        01
61    44              61         00              00        00        00
62    95              (alpha)6   6(alpha)        63        74        00
63    33              90         05              90        95        63
64    75              70         01              63        33        03
65    94              0(alpha)   30              73        00        00
66    95              (alpha)7   1(alpha)        67        74        00
67    33              90         95              63        75        70
68    01              63         90              05        33        03
69    70              02         45              15        94        0(alpha)
70    29              73         00              00        00        00
71    70              01         93              95        (alpha)7  4(alpha)
72    77              74         00              00        00        00

C.T. Test

73
74    70              19         63              92        00        00
75    70              25         93              00        00        00
76    62              95         (alpha)8        2(alpha)  77        74
77    80              02         44              01        83        24
78    91              44         25              82        24        44
79    23              81         22              44        61        00
80    70              01         63              93        63        75
81    94              0(alpha)   76              73        00        00
82    95              (alpha)8   5(alpha)        83        74        00
83    70              01         92              75        94        0(alpha)
84    75              73         00              00        00        00

Div. and Sqrt. Test

85    62              80         10              44        01        81
86    55              63         31              61        00        82
87    63              60         61              00        82        01
      30              60         61              00        01        00

Shift Test

88    62              80         21              44        13        43
89    85              01         45              85        91        45
90    63              51         01              81        21        43
91    85              02         45              85        92        45
92    63              44         02              43        85        03
93    45              85         93              45        63        51
94    03              82         21              43        85        04
95    45              85         94              45        63        44
96    22              43         85              05        45        85
97    95              63         51              23        70        85
98    24              33         20              50        61        00

JLR and KLR Test

99    84              01         44              02        61        71

UP | PREV | NEXT