Meeting with Richard Reid Tuesday July 3rd at 10:30 i MISTIC Notes There were 4 power supplies besides the filament supply. The supplies were in a separate room from the computer. The filament supplies were down at the bottom of each vertical chassis. The supplies were something like: +150 and -300 and maybe +100 and ? I assume there were other separate supplies to run the Storage CRT Memory. The book that has the technical written stuff is by Smith. The lineage is: IAS --> ORDVAC --> ILLIAC --> MISTIC They are all the same basic instruction set. Then ILLIAC had a drum memory extension while MISTIC had a coor memory extension. http://americanhistory.si.edu/csr/comphist/objects/ias.htm http://ftp.arl.army.mil/~mike/comphist/61ordnance/chap4.html =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= MISTIC PROGRAMMING MANUAL Prepared by Computer Laboratory Staff COMPUTER LABORATORY MICHIGAN STATE UNIVERSITY EAST LANSING, MICHIGAN March 17, 1958 6.13 MISTIC LIBRARY CATEGORIES Programmed Arithmetic Miscellaneous --------------------- ------------- A. Floating Point Z. Miscellaneous complete B. Other programmed arithmetic programs Code Checking ------------- C. Post Mortem checks D. Dynamic code checks Integration ----------- E. Quadrature F. Ordinary differential equations G. Partial differential equations Operations on Functions ----------------------- H. Zeros and minima I. Interpolation J. Operations on polynomials and power series K. Approximations and statistics Linear Algebra -------------- L. Simultaneous linear equations M. Other operation son matrices and vectors Input and Output ---------------- N. Number input O. Scope Output P. Printing and punching Mathematical Logic ------------------ Q. Mathematical logic Particular Functions -------------------- R. Roots and fractional powers S. Logarithmic, exponential, and hyperbolic functions T. Trigonometric functions V. Other special functions Organizational -------------- W. Counting, sorting, and selecting X. Program preparation 6.14 PROGRAM LIBRARY INDEX LABEL TITLE ----- ----- A1 Floating Decimal Arithmetic Routine (168) A3 Convert a Number from Floating Decimal Representation to Normal Machine Form (27) A4 1.7 Precision Floating Decimal (279) A5 Complex Number Arithmetic (248) A6 Floating Decimal Routine and Auxiliaries (See Description) B2 Complex Number Operations (54) C1 Post Mortem of the Decimal Order Input [37+(25-DOI)] C3 Post Mortem of Fractions and Their Locations (31) C4 Post Mortem of Integers and Their Locations (38) C5 Print Sets of Order Pairs and Their Locations (32) C6 Address Search Routine (23) C9 Print Sets of Floating Decimal Numbers and Their Decimal Locations (36) C01 Post Mortem for Fractions and their Locations (63) D1 Check Point Routine [57+31+s+j (See Text)] D3 Sequence Checking Routine (30) D4 Control Transfer Check (41) E1 Integration fro f(x) Given at Equal Increments of x (45) E2 Integration by Simpson's Rule (Tabulated Values) (21) E3 Integration by Simpson's Rule (Fraction Values) (33) E4 Numerical Differentiation with Interpolation (103) E5 Quadrature by Gauss' Method (18+2n) E6 Integration over a Single Interval (Tabulated Values)(32) F1 Solution of a System of Ordinary Differential Equations (41) F2 Solutions of a System of Differential Equations by Milne's Method (80+46) F3 Integration of n Simultaneous 2nd Order Differential Equations with Initial Conditions Specified (40) F5 Integration of a System of Ordinary Differential Equations (60) FA1 Second Order Linear Differential Equations with Two Point Boundary Conditions (101) FA2 Floating Decimal Solution of a System of Ordinary Differential Equations. G1 LaPlace's Equation-Liebmann Method G2 Poisson's Equation-Liebmann-Frankel Method ---------------------------------------------------------------------- * Number after title is number of words in routine. 6.15 LABEL TITLE ----- ----- H1 Inverse Interpolation (33) H2 A Search for the Real Roots of f(x) = 0 (80) H3 Minimization of a Function of Two Variables (46) H4 " " " " " Four " (75) H5 " " " " " n " (89) H6 " " " " " n " Treating One Variable at a Time (46) HF1 Zero of a Solution of a Differential Equation (16) I1 Interpolation (51) J2 Roots of a Polynomial (Entire Program) K2 Product Moment Correlations, Means, Standard Deviations, Variances, and Covariances (Entire Program) K3 Least Squares (Entire Program) K4 Analysis and Intercorrelation of Scores Based on Paired Comparisons (Entire Program) K5 Autocorrelations (Entire Program) K6 Chi-Squared (23) K6M Chi-Squared K7 Interative Estimation of Communalities--Principle Axes Method of Factor Analysis (Entire Program) K9 Product Moment Correlation, Means, Standard Deviations, Variances in Logarithmic Scale (Entire Program) K10 Calculate Autocorrelations of a Time Series (85) K11 Quartimax Orthogonal Rotation of Factors (Entire Program) KA1 Polynomial Approximation (60) L1 Solution of a Set of Simultaneous Linear Algebraic Equations (83) L2 Automatic Linear Equation Solver L3 Complete Linear Equations Solver (Entire Program) L6 Solution of a Set of n Simultaneous Linear Algebraic Equations (162) L7 Automatic Linear Equation Solver with Programmed Checks and Calculation of Residues M0 Eigenvalues and Eigenvectors of a Symmetric Matrix (113) M2 Automatic Inversion of a Symmetric Matrix (Entire Program) M3 Automatic Eigenvalue-Eigenvector Program (Entire Program) M4 Closed Eigenvalues and Eigenvectors (163) M5 Solutions of the Determinantal Equation |A-yB| = 0 (Entire Program) M6 New Matrix Multiplication (88) M7 Principle Axes Factor Analysis (Entire Program) M8 Sums of Squares of Rows and Columns (Entire Program) M9 Square Root Factorization (See Description) ---------------------------------------------------------------------- * Number after title is number of words in routine. 6.16 LABEL TITLE ----- ----- M10 Estimation of Communalities by the Method of Maximum Likelihood (Entire Program) M11 Matrix Multiplication (77) M12 Triangularization of a Matrix and its Determinant (Entire Program) M13 Complete Linear Matrix Equation Solver and General Matrix Inversion (Entire Program) M14 Linear Matrix Equation Solver and General Matrix Inversion (115) M15 Linear Programming (Entire Program) M16 Matrix Multiplication when the Common Dimension is Large (Entire Program) M17 Post Multiplication of a Matrix or its Transpose by a Vector (45) MA1 Matrix Multiplication with Floating Decimal Auxiliary (21 or 26--See Description) N1 Input One Number From Tape, Integer or Fraction (19) N2 Input a Sequence of Decimal Fractions (26) N4 Input a Sequence of Integers (17) N8 Read One Number from Tape as Integer or Fraction (22) N9 Matrix Modifying Input (43+26 words of N2) N10 Input a Sequence of Integers with Sum Check (36) N11 Input a Sequence of Fractions or Integers (25) N12 Infraput (39) N13 Input a Sequence of Fractions all having the Same Number of Decimal Digits (21) N14 Input a Sequence of Integers P1 Print One Number Fractional or Integer in a Manner Determined by a Program Parameter (28) P2 Print (A) with or without Sign to n Places as Determined by a program Parameter (18) P3 Print n Digits of an Integer with or without Sign (20) P4 Zero Suppression Integer Print (27) P5 Print One Number in a Parameter Set Layout (24) P7 Letter Printing (32) P8 Tape Lettering (110) P9 Decimal Order Print Routine (23) P10 Print Headings Interlude P11 Rounded or Unrounded Print (18) P12 Single Column Print (Revised (13) P13 Combined Integer Print (35) P15 Multiple Precision Integer Conversion (32) P16 Infraprint (56) Q1 Logical Algebra (230) Q3 Complete Circuit Analyzer Q4 Single Circuit Analyzer ---------------------------------------------------------------------- * Number after title is number of words in routine. 6.17 LABEL TITLE ----- ----- R1 Square Root Routine (9) R2 Integral Root A 1/p (24) R3 Fractional Power Routine (18) R4 Cube Root (15) R5 Reciprocal (17) RA1 Floating Decimal Square Root Auxiliary (16) S1 Natural Logarithm (45) S2 Exponential (33) S3 Logarithm (14) S4 Exponential (21) SA2 Exponential Auxiliary for Floating Decimal (26) SA3 Natural Logarithm (30) S5 Natural Logarithm (60) T1 Sine-Cosine (30) T3 Arctangent in Degrees (15) T4 New Arctan X Routine (25) T5 Sine-cosine (21) TA1 Sine Auxiliary for Floating Decimal (26) TA2 Arc Tangent Auxiliary TO Floating Point Routine (48) V1 Legendre Polynomials (25) V2 Tchebyscheff Polynomials (15) V3 Sequence of Random Numbers with Optimal Preparatory Interlude (13) V4 Fourier Analysis (52) V5 Spherical Bessel Functions (59) V6 Associated Legendre Functions (80) V7 Provide Sets of Random Numbers from 1 to N (Entire Program) V8 Ordinary Bessel Functions (257) V9 Generate 40-bit Random Numbers (32) W1 Loop Cycling Control (21) W2 Word Sorting According to Ordering Relations (25) X1 Decimal Order Input (DOI) (25) X3 Constant-Listing Auxiliary (21) X7 Sum Check (11) X8 Assemble Blocks (4) X9 Program Interruption Routine (Without Sum Check) (34) X10 Program Interruption Routine (with Sum Check (49) X11 Data Tape Checking for Library Routines K2 and K9 (Entire Program) XA1 Constant-Listing Auxiliary for Floating Decimal (18) ---------------------------------------------------------------------- * Number after title is number of words in routine. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= The MISTIC Computer uses a number of 40 bit long Registers. The type of register used is called "dual rank registers". In a dual rank register there are two storage locations for each bit. These are called the "upper rank" and the "lower rank". This is slightly similar to the master and slave sides of a modern "D" flip-flop. The use of dual rank registers is a way of implementing what we now call "clocked logic". That is a way of controlling when data enters a register to prevent a race conditions. In contemporary designs this function is typically accomplished with a "D" flip-fop. In a dual rank register, in each rank, each bit is held in a flip-flop. The active element in these flip-flop's is a dual triode vacuum tube. The vacuum tube used to implement the flio-flop's in the Mistic Computer is a dual triode in which the two sections share a common cathode. The tube type is a 6J6 which known as a type 5844 in its "industrial/computer" version. Using this tube as an ON/OFF switch it has the following characteristics: With a Vg of <= -8 Volts the plate current is < 0.4 ma when Vp is < 150 V. With a Vg of => 0 Volts the plate current is > 5.0 ma when Vp is > 35 V. The flip-flop is formed by cross coupling the two triode sections of the 6J6 as shown in figure ??. In this configuration one side of the tube will always be "ON" and the other side will be "OFF". Using the resistor values and supply voltages shown the ON and OFF cases have the following characteristics: ON Vg is +0.5 Volt and the plate will draw enough currnt to bring it down to 35 Volts. OFF Vg is -40 Volts and the plate current is so limited it will rise to 100 Volts. It required about 0.5 usec for this 6J6 flip-flop circuit to move from one state to the other. The two triodes in this flip-flop circuit can be set to either the "ON-OFF" state or to the "OFF-ON" state in a number of ways: Momentarily drop the supply voltage to the plate resistor on one side of the flip-flop. When the supply voltage is restored that side of the flip-flop will be ON. Momentarily force the grid voltage on one side of the flip-flop to a high enough or low enough value to cause the circuit to follow. Momentarily clamp the plate on one side of the flip-flop to a low enough voltage to force the other side OFF. When the clamp is removed, that side of the flip-flop will be ON. In the Mistic Computer the first method is used to preset registers, e.g. clear to zero all bits in the upper rank of a register. The third method is used to jam load data from one rank of a register into the other or to jam load data from an external source into one rank of a register. Data that is to be jam loaded into one rank of a register is passed from its source, through a "gate tube", and then to the plate on one side of the flip-flop. This gate tube is enabled (the path is enabled) when you want to jam load data into the flip-flop. The circuit can be designed with the gate tube connected to either plate of the flip-flop so data can be passed from the source to the flip-flop either with or without inversion. One use of gate tubes is to pass data from one rank of a register to the other. The actual circuit for one bit of a register for passing that bit from the lower rank to the upper rank is shown in figure ??. This general scheme can be used for shifting data with in the register. To implement shifting with in a register, the content of the lower rank bit "N" can pass through a gate tube and be jam loaded into the upper rank of that register at bit "N+1". When that operation is complete that gate tube is disabled and then a second set of gate tubes is enabled to jam load the contents of upper rank bit "N" into lower rank bit "N". Because only one set of gate tubes is enabled at a time there is no race condition. The end result is that the data in the lower rank of the register has been shifted by one place. =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= The good book that talks directly about Mistic class computers is written by Smith. Other general books from the era are: Seely, Samuel, PhD., "Electron-Tube Circuits", McGraw-Hill, 1950, especially chapters 18 through 21. Pettit, Joseph M., PhD., "Electronic Switching, Timing, and Pulse Circuits", McGraw-Hill, 1959, Library of Congress catalog #59-9992. Littauer, Raphael, "Pulse Electronics", McGraw-Hill, 1965, Library of Congress catalog #64-22195. Soisson, Harold E., "Electronic Measuring Instruments", McGraw-Hill, 1961, Library of Congress catalog #60-16639, especially chapters 11 through 13. Malmstadt, H. V., C. G. Enke and E. C. Toren, Jr, "Electronics for Scientists", W. A. Benjamin, Inc., 1962, Library of Congress catalog #62-15645, especially chapter 9. Also, Taub, Schilling, Millman, Strauss and Schwartz, alone and in various combinations, published several textbooks in a series edited by Terman with McGraw-Hill post WWII. An excellent book in that series is Strauss, Leonard, "Wave Generation and Shaping", McGraw-Hill, 2nd ed. 1970, ISBN 07-062161-6. My library contains only the 2nd. edition, which is all transistors, but I believe the first edition, from 1960, is mostly tubes. If you want to see how it was done with relays, see Keister, William, Alistair E. Ritchie and Seth H. Washburn, "The Design of Switching Circuits", D. Van Nostrand Company, Inc., 1951. And if you want to see how analog computers built from tubes worked, see Korn, Granino A., PhD., and Theresa M. Korn, M.S., "Electronic Analog Computers", McGraw-Hill, 2nd. ed. 1956, Library of Congress catalog #56-8176.