Previous       Table of Contents       Next

NCR 102-A and 102-D

Computing Devices was handling the Canadian sales of the 102-A, a digital computer manufactured by the National Cash Register Company of Dayton, Ohio. It was originally referred to as the NCR CRC 102-A as it had been designed by the Computer Research Corporation. Sixteen 102-A's were produced altogether, and two were installed in Canada. The first was at A. V. Roe (Canada) Limited, an aircraft company in Malton, Ontario adjacent to what is now Pearson Airport The company will be remembered for designing, building and flying a supersonic jet fighter, the Avro Arrow, which was scrapped before it went into production. The second 102-A, shown in the photograph, was at RCAF Station Cold Lake, (now called Canadian Forces Base, Cold Lake) Alberta where it was used for some of the calculations involved in the design and testing of the Velvet Glove air-to-air guided missile which like the Arrow was another ill-fated Canadian endeavour. The NCR 102-D, a later decimal version of the NCR 102-A, was installed in the Computing Devices offices in Ottawa in late 1955 or early 1956. The number of 102-D's produced is not known.

The 102-A consisted of the "computer proper", as it was termed in the programming manual, which was contained in a large cabinet about six feet high and five and a half feet deep and three feet wide, and a console with a Flexowriter (a modified electric typewriter) with a 10-character-per-second paper tape reader and punch and a small console. A magnetic tape unit and a card reader and punch were optional. The price was about $82,000 for the basic system and $16,000 for the tape unit. Specifications for the computer stated that it required 7.7 kilowatts of power, occupied 250 square feet, and had 800 tubes of twelve different types and 8000 crystal diodes. Air conditioning and a separate power supply were required.

The magnetic drum memory had a capacity of 1024 42-bit words and an additional "high-speed" memory of eight words. The internal number system was binary while input and output was in octal, or in decimal if appropriate conversion routines were available. All arithmetic operations were in fixed point, and it was the responsibility of the programmer to keep track of the decimal point by appropriate "scaling" operations. Addition and subtraction times varied from 7 to 20 milliseconds depending upon drum access, and multiplication and division times were from 25 to 38.5 milliseconds. All programming was done in machine language using a three-address code with 27 instructions. There were no routines for conversion between decimal and binary or floating-point arithmetic routines unless they were prepared by programmers at each installation. Even coding sheets for the convenient recording of final versions of programs before entry into the computer had to be designed. The accompanying figure shows a copy of an original handwritten coding sheet prepared by Bill Adams and myself for the NCR 102-D program library. The only documentation for the programmer was a 101-page typewritten manual entitled Functional Specifications of Model CRC 102-A.

The 102-D was a decimal version of the 102-A. The internal number system was binary-coded decimal and input and output was in decimal. Addition times could be as low as 7.8 milliseconds and multiplication and division times could be as long as 50 milliseconds. In addition to magnetic tape and punched card input and output, paper tape input at 200 characters per second and paper tape output at 60 characters per second were available.

For both the 102-A and 102-D programs were written in a three-address code in the format "Op Addr1 Addr2 Addr3" In the example shown here only five instructions with the following octal operation codes were used, where the input and output commands have been simplified for this simulation:
     11 Fill: Read data from paper tape into locations Addr3, Addr3+1, ...
     21 Print: Print Addr3 words beginning at Addr1
     22 Halt:
     34 Test Magnitude: If Magnitude of (Addr1) > Magnitude of (Addr2),
           then next instruction from Addr3
     35 Add Decimally: Addr3 <- (Addr1) + (Addr2)
A further simplification is that the addressing is octal rather than decimal as is used in this simulation. The J script file is given in NCR.ijs, and the program for the sample problem is given below.


0100 11 0000 0000 0125 Read data 0101 35 0117 0117 0121 N <- 0 0102 35 0117 0117 0122 Sum <- 0 0103 35 0117 0117 0123 Max <- 0 0104 35 0116 0117 0105 Initialize address 0105 35 0125 0117 0124 Get Price P 0106 34 0124 0117 0108 Is P > 0? 0107 34 0118 0117 0114 Trans. to 0114 0108 35 0121 0118 0121 N <- N + 1 0109 35 0122 0124 0122 Sum <- Sum + P 0110 34 0123 0124 0112 Is Max > P? 0111 35 0124 0117 0123 Max <- P 0112 35 0105 0119 0105 Incr. address 0113 34 0118 0117 0105 Trans. 0114 21 0121 0000 0003 Print N, Sum, Max 0115 22 0000 0000 0000 Halt 0116 35 0125 0117 0124 Initial address 0117 0 0118 1 0119 100000000 0120 0121 N 0122 Sum 0123 Max 0124 P 0125 Data 0126 ...
NCR 102-D Example

Information on the NCR 102-A and 102-D may be found here.


Previous       Table of Contents       Next