SI General Information Manual 1401 Data Processing System Minor Revision (February, 1960) This edition D24-1401-1 is a minor revision of the preceding edition but does not obsolete D24-1401-0. The principal changes in this edition are: PAGE SUBJECT 20 Input-Output Storage Assignments 23,24 Input-Output Branch Codes 28 B (I) Unconditional Branch, Figure 24 30 Z (A) (B) Move and Zero Suppress 32 • (I) Stop and Branch 35 Figure 30 Cycles 1 through 8 41 Auxiliary Console 42 Figure 37 43 Printer Controls 51 A and B Auxiliary Registers 55 Figures 54 and 55 Multiply Subroutine 57 Figure 57 Divide-Subroutine 58,59 Character Code Chart 60 1401 Timing Formulas 62 Magnetic Tape Timings © 1959 by International Business Machines Corporation Contents INTRODUCTION 5 ibm 1401 DATA PROCESSING SYSTEM 5 The Philosophy of the ibm 1401 6 The Stored Program Concept 6 Magnetic-Core Storage 7 Magnetic-Tape Storage 8 Language 8 Processing 9 Solid State Circuitry 9 Advanced Design 10 ibm 1401 CARD SYSTEM 11 Physical Features 12 Data Flow 16 Checking 18 Word Mark 18 Stored Program Instructions 19 Instruction Format 19 Addressing 20 Input-Output Storage Assignments 20 Address Registers 21 Chaining Instructions 21 Loading Instructions 22 Input-Output Operations 23 Input-Output Codes 23 Arithmetic Operations 25 Arithmetic Operation Codes 25 Logic Operations 28 Logic Operation Codes 28 Move and Load Codes 29 Miscellaneous Operation Codes 31 Editing 33 Expanded Print Edit 36 Operating Features 38 Console Keys, Lights, and Switches 38 Auxiliary Console 40 ibm 1402 Card Read-Punch Operating Keys and Lights 42 ibm 14 03 Prin ter Operating Keys, Lights .42 ibm 1401 MAGNETIC TAPE SYSTEMS 44 Data Flow 46 Magnetic Tape 46 Tape Sorting 50 Console Keys, Lights, and Switches 51 Column Binary Device (Optional) 52 Program Loading Routine 54 Clear Routine 55 Multiplication and Division Subroutines 55 Multiplication 55 Division 56 ibm 1401 TIMINGS 60 Card Systems 60 Magnetic Tape 62 INDEX 63 FIGURE 1. IBM 1401 DATA PROCESSING SYSTEM IBM 1401 Data Processing System Significant characteristics in the growth of data process- ing are the transitions from manual to mechanical, and from mechanical to electronic methods. Tremendous advantages accrue to business when manual or semi-manual procedures are converted to mechanical procedures. The curve of efficiency rises sharply while the curve of cost declines in such a changeover. Furthermore, important gains are realized in quantity and accessibility of significant data when unit-record equipment and the punched card replace manual and semi-automatic methods. As the volume of data to be processed increases, as the decision-making process is refined to the point where it requires more and more information, as the time available for decision-making becomes shorter, unit-record equipment continues to offer economies and advantages, but not at the same rate of improvement in time-saving and dollar-saving. The next available step in the mechanization process takes the businessman into intermediate and large-scale data processing. Each time this step from unit-record data processing to data processing systems is taken, it must be preceded by a carefully planned program. The ibm 1401 Data Processing System was spe- cifically designed and planned in various configurations to make this transition. Punched-card input is at much higher rates of speed than those used in unit-record equipment, and yet the processes in punched-card input are very similar to the unit-record equipment. The same applies to punched-card and printed output. The speeds are greater, the concepts are similar. The processing unit of the ibm 1401 is built with a degree of accessibility and utility that makes it the equivalent of storage units of greater capacity. The ibm 1401 is further enhanced by configurations that include tape systems, and the advantages of mag- netic-tape data-handling. The Philosophy of IBM 1401 The ibm 1401 can be considered in two major con- figurations: the card systems, and the tape systems. Card systems configurations are planned for pro- cedures involving large volumes of card documents as source data and output, with particular advantage to applications requiring re-entry data. Tape system configurations provide for the handling of magnetic tape, which has the advantages of compact record handling and storage medium for high-speed data processing systems. The Stored Program Concept The philosophy of data processing systems is self-con- trolled performance of procedures, carried to various degrees. Any such self-controlled performance involves simply a series of actions or movements, each depend- ing on another, and requiring no operator intervention in the completion of the series. The series may be very short, or very long. The series may be completely se- quential, or the next action to be taken may be chosen by the last action completed. An automatic record player is a good example of a series of actions, each one depending on the one imme- diately preceding it. When records are loaded on the spindle and the record player turned on, the record plays, the arm returns to a neutral position, the next record in sequence drops into place, the playing arm re- turns to the starting position on the new record, the record plays, and so on until all the records have been played once, without any need for intervention or assist- ance by anyone. This series of actions is called a pro- gram (Figure 2). In data processing systems, the program is more complex. It controls the entire flow of data in and out of various processing units. If, for instance, original data is punched into cards, the program would control the reading of this data, its transport to various proc- Drop Record Playing Arm to Start of Record T " rn , ° ff -J\^\t- Fiirfo^More -+/y^) Machine —y^r- Records \^y FIGURE 2. SCHEMATIC OF A PROGRAM essing areas for addition, subtraction, multiplication, division, modification, classification, recording, and any other kind of action to which data can be subjected. ' A data processing system is a group of various me- chanical and electronic components, interconnected. A system of this kind must be able to handle and complete such a program. The concept of stored programming provides this flexibility and efficiency. In punched-card data processing, the wires in the control panel actually comprise the program of instruc- tions. The requirements of the procedure are studied carefully, and then the proper wires are placed in the control panel. The entire program can be changed by removing one control panel and replacing it with an- other for a different procedure. The limiting factors in the extent of the program that unit-reeord equipment can handle is the number of program steps that can be provided within the physical confines of the control panel, and the number of control panels that can be conveniently utilized. Stored-program data processing systems use a simi- lar, but much more flexible, concept. All the instructions needed to complete a procedure are written in the form of program steps. These program steps are made avail- able to the machine by various methods, the most com- mon of which is punched cards. The data processing system stores these program steps in some kind of storage medium. Thus, when a procedure is to begin, the stored pro- gram is loaded into the system (Figure 3), and the entire procedure can be performed from beginning to end. The ibm 1401 Data Processing Systems make use of three kinds of storage: magnetic-core storage, mag- netic-tape storage, and the already familiar punched- card storage. Magnetic-Core Storage All configurations of the 1401 Data Processing System use magnetic-core storage for storing instructions and data. The magnetic-core storage unit is composed of a number of tiny rings made of magnetic material. Sev- eral electric wires are passed through each of these rings, and each ring is magnetized. Every magnetic field has polarity. This can be dem- onstrated by the common phenomenon of two horse- shoe-shaped magnets, which attract each other firmly when turned one way, and repel each other just as firmly when turned the other way. Similarly magnetic cores possess a magnetic field, and its polarity can be reversed by passing a current through the wires. These phenomena — magnetism, reverse magnetism, and the change from one to the other (Figure 4) — are used by the magnetic-core storage units to store infor- mation. No Bit FIGURE 4. MAGNETIC CORE Bit Reversed FIGURE 3. STORED PROGRAM A core magnetized in one direction contains a bit of information which has a value of 1 ; when the polarity is reversed, the value of the bit is zero. (This condition is referred to as no-bit.) Furthermore, all data in core storage is instantly available, and in the ibm 1401, the core-storage units have been specifically designed for high utility by making each location of core storage addressable. This means that a program step can desig- nate the exact cores needed for that step. Location of Letter "A' FIGURE 5. REPRESENTATION OF LETTER "a' STORAGE IN CORE Each location of core storage consists of a number of planes or levels of magnetic cores. Various combina- tions of bits designate digits, letters, and special char- acters (Figure 5). Notice that the planes are stacked, and the cores representing a single character (in this case the letter "A") are all at the intersection of the same two wires in each plane. The physical makeup of each core storage location and its associated circuitry makes it possible for the ibm 1401 to modify instructions and process data di- rectly in the storage area. (This is called add-to-storage logic.) The design, construction, and circuitry of the core- storage unit in the ibm 1401 make it possible for this compact but extremely powerful storage unit to do as much or more than storage units of greater size. Data can be read from a variety of sources, and put on the tape. The magnetic spots representing the in- formation that has now been stored on the tape remain until they are changed by positive action. This means that, in addition to being used as data storage, this data itself can be part of input and output. This makes magnetic tape an ideal storage medium for a large volume of data, because there is no limit to the amount of information that can be kept perma- nently. The reels of tape are removable from the sys- tem, and can be filed (Figure 6). They can also be transported from place to place, and used in other systems. '^^^^^^^^^^^ FIGURE 6. REEL OF MAGNETIC TAPE Data stored on the magnetic tape is read sequentially. The data processing system can search the tape to find the data to be used. Program steps can be stored on magnetic tapes, and tnis met' ! of storing is a common one for collecting a library l. . iiie of procedures. Another great advantage °f magnetic-tape storage is that a reel of tape that has been produced as an output of a procedure can be removed from the data process- ing system, and reports written with an independent unit, while the data processing system proceeds with the next program to be performed. Magnetic-Tape Storage Magnetic tapes are made of plastic material, coated with a metallic oxide. It has the property of being easily magnetized in tiny spots, so that patterns of these magnetized spots are codes for digits, alphabetic char- acters, and special characters. Language In the punched-card area of data processing, the lan- guage of the machine is the holes in the card. As data processing needs increase, the basic card kmguage re- mains the hole in the card. But in the transition from unit record systems to the 1401 Data Processing Sys- tems, and from there into computer systems, another faster, more flexible machine language emerges. Just as each digit, letter in the alphabet, or special character is coded into the card as a punched hole or a combination of punched holes, it is coded into magnetic storage as patterns of magnetized spots. Obviously, many different code patterns can be set up. The internal code used in the ibm 1401 Data Proc- essing System is called binary-coded-decimal. All data and instructions are translated into this code as they are stored. No matter how information is introduced into the system (most commonly by means of punched cards), the binary-coded-decimal code is used in all data flow and processing from that point on, until it is translated into printed output as reports and documents are written, or converted to punched-card code for punched-card output. Converting input data to the 1401 internal code, and subsequently reconverting, is com- pletely automatic. Processing The manipulation that data undergo in order to achieve desired results is called processing, and the part of the 1401 systems that houses these operations is called processing unit. Processing can be divided into three general cate- gories: logic, arithmetic, and editing. cation and division can be accomplished in any 1401 system, by programmed sub-routines. When the extent of the calculations might otherwise limit the operation, a direct multiply-divide feature is available. Editing As the term implies, editing adds significance to output data by punctuating and inserting special characters and symbols. The ibm 1401 has a unique ability to perform this function, automatically, with very simple program instructions. Checking Advanced circuit design with extremely reliable com- ponents is built into the 1401 system to provide assur- ance of accurate results. Self-checking within the ma- chine is separated into three categories: parity, validity, and hole count. parity checking. Achieved by testing for the proper number of 1-bits for any given character, known as parity for that character. validity checking. Checking for the correct config- uration of bits to represent each character in storage. hole count. Counting the number of holes punched in a card, to establish that it is equal to the num- ber of holes called for in the same card at a previous station. Logic The logic function of any kind of data processing sys- tem is comprised of its ability to execute program steps; but even more, its ability to evaluate conditions and select alternative program steps on the basis of those conditions. In unit record equipment, an example of this logic is selector-controlled operations based on an X or No X, or based on a positive or negative value, or perhaps based on a comparison of control numbers in a given card field. Similarly, the logic functions of the 1401 system control comparisons, branching (alternative decisions similar in concept to selector-controlled procedures), move and load operations (transfer of data or instruc- tions), and the general ability to perform a complicated set of program steps with all variations. Arithmetic The 1401 processing unit has the capacity to perform add, subtract, multiply, and divide operations. Multipli- Solid State Circuitry Transistorization of 1401 components is another sig- nificant design characteristic. In addition to providing a lower cost system, use of transistors increases reliability, while decreasing maintenance requirements. Other ad- vantages are carefully controlled: space requirements heat dissipation power requirements The physical arrangement of the system components offers a less tangible, but equally important benefit, in greater operating efficiency, in that the components re- quiring operator attention can be situated for accessi- bility and convenience. The controls and arithmetic components are consolidated into a single set of modu- lar cabinets. Thus far, only the most obvious advantages offered by the 1401 have been given. As the system compo- nents and features are described in greater detail, fur- ther advantages become evident. The power and econ- omy of the 1401 is not derived from any single char- acteristic or component, but from the many considera- tions that led to the design of a balanced system in which every component can operate at its optimum rate. Advanced Design Advanced systems design of the ibm 1401 permits use of the machine as a complete, independent, accounting system. It can also perform low-cost, direct input and output, and auxiliary tape-operations for large scale data processing systems. The entire system is operated by the stored, program. Time saving features, such as the powerful editing func- tion, and the elimination of control panels, provide in- creased flexibility for application development. The capacity to use magnetic-tape data means economy in recording, transporting, and storing large volumes of information in compact form. 10 IBM 1401 Card System The ibm 1401 Card Systems are completely transistor- ized, and utilize the modern technique of stored-program control. This system can perform all basic functions (such as: read-a-card, print-a-line, compare, add, subtract, edit), and variations of these functions. The ibm 1401 incorporates an advanced design of many outstanding features of existing equipment, for improved programming and operating efficiency. core storage. Instant access to information, and ap- plication of stored programming. Every position is alphanumerical, and individually addressable. variable word-length. Permits a maximum utiliza- tion of the storage facility. high speed printing. A medium of output efficiency. high speed reading and punching. Simplified input- output facilities and easy integration of the 1401 into existing accounting machine procedures. editing. Completeness in preparing output information for printing, or with magnetic tape operations. Component Card System Magnetic Tape System IBM 1401 Processing Unit IBM 1402 Card Read Punch IBM 1403 Printer IBM 729 Magnetic Tape Unit Model A1-A2-A3 Model 1 Model 1 or 2 Not Available Model B1-B2-B3 Model 1 Model 1 or 2 Not Available Model C1-C2-C3 Model 1 Model 2 Model II or IV Model D1-D2-D3 Not Available Model 2 Model II or IV IBM 1401 PROCESSING unit special features * Expanded Print Edit *Read Punch Release * Sense Switches "'Additional Print Control Multiply-Divide Print Storage Column Binary High-Low-Equal Compare *Can be field installed Optional Optional Optional Optional Not Available Not Available Not Available Not Available Optional Optional Optional Optional Optional Optional Optional Optional Standard Standard Standard Standard Optional Optional Optional Optional Standard Not Available Standard Standard Not Available Optional Not Available Optional NOTES: 1403 Model 1 has 100 print positions. 1403 Model 2 has 132 print positions, also requires the Additional Print Control optional feature. 1401 Processing Unit Models A1-B1-C1-D1 have 1400 storage positions. 1401 Processing Unit Models A2-B2-C2-D2 have 2000 storage positions. 1401 Processing Unit Models A3-B3-C3-D3 have 4000 storage positions. Dual Speed Carriage is a standard feature for the 1401 DPS, Models B, C, and D. It is not available on Model A. All Model A's provide a low cost card system — only certain special features (as indicated above) may be installed. All Model B's provide the expanded card version — all special features except magnetic tape may be included. All Model C's provide the full magnetic tape system with certain features standard and others optional. All Model D's provide an edit system without card I/O — it should be noted that some options available on Model C are not available on Model D. FIGURE 7. IBM 1401 DATA PROCESSING SYSTEM COMPONENTS 11 Physical Features The physical features of the units that make up the card system are compact and of modern design. All units are mobile for convenient and efficient arrangement for operating. The processing unit is the only unit that is changed in physical size when the different systems configura- tions (Figure 7) are required. The 1401 Data Processing System in its card con- figurations is composed of three interrelated units: 1. ibm 1401 Processing unit, containing 1400 char- acters of alphanumerical core storage (expandable to 2000 or 4000 positions) 2. ibm 1402 Card Read-Punch, equipped with an 800- card-per-minutc read feed and a 250-card-per- minute punch feed 3. ibm 1403 Printer, capable of printing up to 600 lines per minute, with a print span of 100 positions of alphanumerical data per line (expandable to 132 print positions). IBM 1401 Processing Unit The processing unit (Figure 8) contains the magnetic- core storage unit to perform all the machine logic. The storage capacity is 1400, 2000, or 4000 alpha- numerical characters of 8 -bit core storage. The eight bits consist of six bits for alphanumerical binary code, a redundant bit for checking, and an eighth bit for field definition. Three areas of storage are reserved for input and output data. In the first, 80 storage positions receive 80 columns of card information from the card reader. Another 80 positions are reserved for assembly of data to be punched. The third area is reserved for the as- sembly of 100 (or 132) characters of printer informa- tion. However, when these areas are not being used as specified, they can be used for other purposes. (Note: If 1 32-character printing is ordered, the Addi- tional Print Control feature is required in the 1 40 1 . ) i -SB- 1 lit ■■if. .%»_«'dS;*KSSi ..4. ±il P* ss,X %mmm mmwM. ■X\M\:\ ',-! a irm li 11*11 av ■..:■ FIGURE 8. IBM 1401 PROCESSING UNIT (2 CUBE &4 CUBE) 12 Coded Addresses in Storage Actual Addresses 3 -Character Addresses 000 to 999 No zone bits 000 to 999 1000 to 1099 ^+00 to +99 1100 to 1199 /00 to /99 1200 to 1299 S00 to S99 1300 to 1399 TOO to T99 1400 to 1499 A-bit, U00 to U99 1500 to 1599 using 0-zone V00 to V99 1600 to 1699 WOO to W99 1700 to 1799 X00 to X99 1800 to 1899 Y00 to Y99 1900 to 1999 . ZOO to Z99 2000 to 2099 " 000 to 099 2100 to 2199 J00 to J99 2200 to 2299 K00 to K99 2300 to 2399 LOO to L99 2400 to 2499 B-bit, MOO to M99 2500 to 2599 using 11 -zone N00 to N99 2600 to 2699 *O00 to 099 2700 to 2799 POO to P99 2800 to 2899 Q00 to Q99 2900 to 2999 _R00 to R99 3000 to 3099 r + 000 to 099 3100 to 3199 A00 to A99 3200 to 3299 BOO to B99 3300 to 3399 COO to C99 3400 to 3499 A-B-bit, D00 to D99 3500 to 3599 using 12-zone E00 to E99 3600 to 3699 F00 to F99 3700 to 3799 GOO to G99 3800 to 3899 H00 to H99 3900 to 3999 .. 100 to 199 * Letter O followed by Zero Zero FIGURE 9. STORAGE ADDRESS CODES Each of the storage positions is identified by a 3- character address. The first 1000 positions of storage have the addresses 000-999. The remaining 3000 stor- age positions require the use of an alphabetic or spe- cial character in the hundreds position of the address, as in Figure 9. The 1401 Processing Unit stores the program instruc- tions and the data. It employs a variable word-length concept, and each position is addressable. Stored programming involves the concept of words. A word is a single character, or group of characters, that represents a complete unit of information. One of the most important characteristics of the ibm 1401 Data Processing System is this variable word-length principle, in which words are not limited to any pre- determined number of character positions in the storage unit. Each word occupies only that number of character positions actually needed for each specific instruction, or for the specific data involved. This facility con- tributes to the high efficiency of the 1401 core-storage unit. FIGURE 10. IBM 1402 CARD READ-PUNCH IBM 1402 Card-Read Punch The ibm 1402 Card Read-Punch (Figure 10) provides the card system with simultaneous punched-card input and output. This unit has two card feeds. The read section has a rated reading speed of 800 cards per minute. Actual card speed realized is governed by the program routine for each particular run. The read feed is equipped with a device for large capacity loading, called a file feed. With the file feed device, the read feed can be loaded with as many as 3000 cards, which reduces operator-attendance requirements. The cards feed through the read side of the machine 9-edge first, face down. The feed path is from right to left, passing two sets of brushes. The first reading station reads 80 columns of the card to establish a hole- count for checking purposes. The second reading sta- tion also reads the 80 columns, proves the hole count, 13 and directs the data into storage. At the end of the card transport path, three stackers are available to receive the cards. The normal read stacker is the stacker closest to read hopper and is used unless the cards are pro- gram-directed to stackers 1 or 2. The punch section has a rated speed of 250 cards per minute. The card hopper capacity is 1200 cards. The cards feed 12-edge first, face down. The feed path is left to right, passing a blank station, a punching sta- tion, and a reading station. The punching station con- sists of 80 punches for recording information. The punch-reading station counts all the holes in all 80 col- umns of the card, for punch-checking. At the end of the card transport path on the punch side, three stackers are available to receive the cards. The normal punch stacker is used unless the cards are program-directed to stacker 4 or 8 (Figure 11). IBM 1403 Printer The printer (Figure 13) is another output medium for the 1401 DPS Card System. This unit has a rated print- ing speed of 600 lines per minute. The standard printing capacity is 100 positions, with an additional 32 posi- tions optional. Horizontal spacing is 10 characters to the inch. Ver- tical spacing of six or eight lines to the inch can be manually selected by the operator. In the 1401 Card System, Model A, vertical line spacing is performed by single-speed, tape-controlled carriage directed from the 1401 stored program. In Models B, C, and D a dual- speed tape-controlled carriage is standard. This carriage skips at the rate of 75 inches per second after the first eight lines of any skip. The single-speed carriage has a constant speed of 33 inches per second while skipping. Punches Check Brushes Select Stacker Normal Punch Np Read and Read Check . Check Hopper Select Stacker Normal Read 8/2 Nr FIGURE 11. IBM 1402 CARD TRANSPORT SCHEMATIC All these stackers are radial-type stackers (Figure 12) with a capacity of 1000 cards each. Cards can be removed from the stackers without stopping the ma- chine. Two stackers are assigned exclusively to the reader and two are assigned exclusively to the punch. The center or common stacker (8/2 stacker) can be used by either unit, but it must be assigned by the pro- gram to one or the other, in any one run. All stackers other than the normal stackers are selected only under program control. Both feeds are equipped with jam detection devices and with misfeeding detection. A card jam or a misfeed in either the read or punch feed causes the 1401 DPS to stop, and a console light glows, indicating which feed caused the stop. There is no electrical or mechanical coupling between the read and punch units. Therefore, any information from the read side must be entered into storage and read out of storage to. the punch unit, for operations equivalent to reproducing or gang punching. FIGURE 12. RADIAL STACKERS 14 Each position can print 48 different characters: 26 alphabetic; 10 numerical; and 12 special characters, (& , . U -$* + /% # @). In tape systems, the "+" character is replaced by a record-mark character (*). The printing format is controlled by the 1401 DPS stored program. The information to be printed is checked when it is read out to the printer. Print Storage (Optional) This optional feature provides 100 o r 132 non-address- able extra positions of core storage. They are used in conjunction with printer output. These extra positions of core storage increase processing speed in applications where printing volume is high. The data to be printed is moved by the print in- struction from the area in core storage assigned to the FIGURE 13. IBM 1403 PRINTER 15 Type Array Armature Hammer Magnet FIGURE 14. SCHEMATIC OF PRINTING MECHANISM 1401 Processing Card Input 1402 ■*• Read-Punch 1403 Printer Printed Output Card Output FIGURE 15. GENERAL DATA FLOW SCHEMATIC printer to the optional Print Storage area. The time re- quired for the transfer of data is 1.15 milliseconds for a 1 00-character print span; 1.52 milliseconds for a 132- character print span. On completion of this transfer of data, normal program execution is resumed while the print storage area sets up the print mechanism. During this setup, other operations can be performed in the normal manner. Only one instruction that involves the printer can be executed at any one time. Method of Printing The alphabetic, numerical, and special characters are assembled in a chain (Figure 14). As the chain travels in a horizontal plane, each character is printed as it is positioned opposite a magnet-driven hammer which presses the form against the chain (Figure 14). Before a character is printed, it is checked against the corresponding position in the print area of core storage to insure the accuracy of printed output. Data Flow The ibm 1402 Card Read Punch and the ibm 1403 Printer are input and output units for the ibm 1401 Card System. All data passes through the 1401 Process- ing Unit, where arithmetic and logical functions are performed (Figure 15). Each operation code is analyzed in the operation register. The A and B Registers contain the data char- acters at the storage location shown by the A and B Address Registers. The / Address Register contains the instruction address (Figure 16). 16 v — *> Core Storage Storage Address t Reade Punch I V. I-Address Register A-Address Register *-* B-Address Register 1 T f Printer Logic Add, Subtract Edit, Compare FIGURE 16. IBM 1401 CARD SYSTEM DETAIL DATA FLOW SCHEMATIC 17 Checking The ibm 1401 Data Processing System contains many important design factors to insure maximum efficiency and reliability. The self-checking features built into the 1401 are de- signed to insure a high degree of error detection. Each data character is represented by an alphanumerical bi- nary code consisting of 6 bits, plus 1 bit for an odd- parity check, and 1 bit for field definition.- Parity Check The odd-number bit configuration is used for the parity check. The proper number of bits for any given char- acter is known as parity for that character. Word marks are included in the odd-number bit configuration on a parity check when they appear with a character. When information is moved within the system, a parity check is performed to test the presence of an odd- number of bits for each character being moved. Validity Check A validity check is performed on all information when it is read into storage from the card reader, to insure that all characters are valid. A validity check is also made on data in the op code register and address reg- isters. If any invalid characters are detected, the ma- chine stops and the associated check light comes on. Hole Count Check The Hole Count feature compares the total number of punches read in a card column at the first reading sta- tion, with the total number of punches in the same card column at the second reading station. The Hole Count feature is also effective with the punch side to compare the total number of holes set up for punching in a col- umn, with the number of holes punched in the card column. If in either case, the result of the Hole Count comparison is unequal, the system stops, and check lights indicate the unit involved. If storage is scanned, the scanning process stops at the position corresponding to the card column in error. Word Mark The use of the variable length instruction and data for- mat, requires a method of determining the instruction and data-word length. This identification is provided by a word mark.- The word mark serves several functions: 1 . indicates the beginning of an instruction 2. defines the size of a data word - 3. signals the end of execution of an instructions The rules governing the use of word marks are: 1. Predetermined locations for word marks are as- signed in planning the program^ These predeter- mined word marks are normally expected to remain in these locations throughout the complete program. The word marks are set into storage location by a loading routine.- 2. Word marks are not moved with data during proc- essing, except when a load instruction (see Move and Load) is used.^ 3. For an arithmetic operation, the B field must have a defining word mark,' and the A field must have a word mark only when it is shorter than the B field. 4. A load instruction moves the word mark and data from the A field to the B field, and clears any other word marks in the designated B field, up to the length of the A field. 5. When moving data from one location to another, only one of the fields need have a defining word mark, because the move instruction implies that both fields are the same lengthy 6. A word mark must be associated with the high- order character (Operation Code) of every instruc- tion. Two operation codes are provided for setting and clearing word marks during program execution. Stored Program Instructions All arithmetic and logical functions are performed by the instructions retained in storage. One form of an in- struction consists of an operation code followed by two 3 -character addresses. The 2-address instruction is re- quired to move data from one location to another, to perform the arithmetic operations of addition or sub- traction, to compare two fields, or to edit. Because the 1401 system uses a variable word-length concept, the length of an instruction can vary from one to eight characters. Instruction Format OP (A/I) (B) d X XXX XXX X OP is a 1 -character operation code, which defines the basic instruction. A word mark is associated with the Op Code position. (This word mark is set under program control or by loading routines.) (A/I) is a 3-character storage address. A is the loca- tion of a data word. I is the address of the next instruction to be executed. (B) is a 3-character storage address of a data word. d is a 1 -character modifier to the operation code. It can be an alphabetic, numerical or special character. It is positioned as the last character of the instruction and can be used in any instruction length. Note: Underlining any position of an instruction or data word indicates that a word mark is associ- ated with that position. Instruction Example OP (A) (B) A 072 423 This is an add instruction. The operation code A, causes the field whose units position is in storage loca- tion 072 to be added to the field whose units position is in location 423. This operation continues until a word mark for the high-order position of field B, (which must have a defining word mark) is sensed. The word mark stops the operation being performed and causes the program to advance to the next instruction. If field A is shorter than field B, it must also have a defining word mark. As stated before, not all instructions have the 2- address form. Others consist of only one address, or no address. This concept results in what is known as vari- able-length instructions. Examples of the six combinations possible in variable- length instructions are: Number of Instruction Positions Operation Formal 1 READ OP 1 2 STACKER SELECT OP d K 2 4 BRANCH UNCONDITIONAL OP (I) B 400 5 BRANCH UNEQUAL OP (I) d B 625 / 7 ADD OP (A) (B) A 072 423 8 TEST CHARACTER AND BRANCH OP (I) (B) d B 650 080 4 19 Addressing The 1401 processes data by following a series of stored instructions. The storage unit stores both the instruc- tions and the data. Each position in storage can be addressed. The high-order position of a field in storage is identified by an associated word mark. An instruction in core storage is addressed by the lo- cation of its high-order position. The machine reads the instruction from left to right until it senses the word mark associated with the next instruction. The final in- struction in the program must have a word mark set at the right of the low-order position. The high-order character is the operation code, with an associated word mark which is set by the program when the instruction cards are loaded. In contrast to this, a data word is read from right to left until a word mark is sensed with its own high-order position. In addressing a data word, we specify its units position. Input-Output Storage Assignments Certain areas of storage are reserved for the use of the input-output devices. The assignments are such that a correlation is achieved between input-output columns and/or print positions. The storage location assignments are : card input 001 through 080 card output 101 through 180 print output 201 through 300 (or 332, as needed). Storage locations 081 through 099 and 181 through 200 can store other data used for normal processing. Storage locations 000 and 100 are also available for normal use except during a read or punch operation (Figure 17). »01 M tZiT; &*&■%&** s K St"***: " ;S2i iiiiiiiii .wSi£ " " 80 180 ,:.IS;I i^L:, w ••101 iHSii iBS llt:l?|§10|l|! llliltf iillliilll iiiiiiiii iiiiiii ~~ f||pl|l§II; 1* !*!!#*:*- iflifil IfHSSB ™»:oi £«**:*;: ^^ #,£&£■; iiltllllll & ; ?s-«#!&- fllllfl! *BHPPI jiimii MNttl illi§ii|il Ulilli! «i»if§i pllilillll IHPHS siilllpi lillllll 332 — - — * -— — - -- -— m ,.„ u» - -HB ,- VS. -M FIGURE 17. STORAGE LAYOUT 20 Address Registers Instruction M 5 6 7 T 1 2 S Location 197 198 199 200 201 202 203 204 Three address registers are incorporated in the ibm 1401 Processing Unit. Two address registers control the transfer of data from one storage location to another; the other, controls the program location sequence. 1. The A address register contains the storage location of the data in the (A) portion of an instruction. The number in this register is decreased by 1 after the execution of the storage cycle that involves the (A) address. 2. The B address register contains the storage location of the data in the (B) portion of an instruction. The number in this register is decreased by 1 after the execution of the storage cycle that involves the (B) address. 3. The location of the next instruction character to be used by the stored program is contained in the I (Instruction) Address Register. Figure 18 is a detailed schematic for the loading of a 7-character instruction in the operation code register, in the A and B registers, and in the A and B address registers. Eight storage cycles are required to load this complete instruction in the registers. Each storage cycle takes .0115 milliseconds. 0| 1 1 9 | 8 OP Register 0| 1 | 9| 9 OP Register m OP Register B Register A Register °l l|9|7 M H OP Reg ister A Address Register B Address Register M ? |?|? | ? ?|?|? |? I Register A Register m A Address Register B Address Register 015 1?? ? I ? I? I? B Register Q A Register A Address Register B Address Register 015 16 It ? | ? |?| ? I Register m m A Address Register B Address Register 0.5,6,7 LUL LULL Cycle 1 Cycle 2 Register Cycle Operation 1 Enter OP Register 2 Enter thousands and hundreds position of A ad- dress register; also A register. 3 Enter tens position of A address register; also A register. 4 Enter units position of A address register; also A register. 5 Enter thousands and hundreds position of B ad- dress register, as well as the A register. 6 Tens position of B address register, and the A register. 7 Units position of B address register, and the A register. 8 Next op code enters B register only. Chaining Instructions In some programs, it becomes possible to perform a series of operations on several fields that are in se- quence in storage. Some of the basic operations, such as add, subtract, move, and load, have the ability to be chained so that less time is required to perform the op- OP Register I Register LL£JJ B Register A Register A Address Register B Address Register Fiwl IViV I Register A Register □ □ Cycle 6 OP Register A Address Reg ster B Address Register H IViVl |1|3|1|?| 1 Register B Register A Address Reg ster A Register B Address Register 1 ° i 2 1 ° i 3 1 OP Register B 10,5,6,7] |.,3,I,2| 1 Register B Register A Address Reg ster A Register CD B Address Register |o,2,0|4| OP Register Cycle 8 [3 IViVl 11,3,1,21 FIGURE 18. SCHEMATIC OF LOADING A 7-CHARACTER INSTRUCTION 21 erations, and space is saved in storing instructions. Here is an example of the chaining technique: Assume that four 5 -position fields stored in sequence are to be added to four other sequential fields. This operation could be done using four 7-character instructions: A 700 850 A 695 845 A 690 840 A 685 835 At the completion of the first instruction, the A ad- dress register contains 695 and the B address register contains 845. These are the same numbers that are in the (A) and (B) addresses in the second instruction. Eighty storage cycles would be required to execute these instructions, thus using up ,920 ms. Also, 28 stor- age positions are required to store these instructions. By taking advantage of the fact that the A and B address registers contain the necessary information to perform the next instruction, this same sequence of operations can be executed as follows : A 700 850 A A A Connecting instructions together in this manner is called chaining. The first add instruction contains both the (A) and the (B) addresses. The following three instructions contain only the operation code for those instructions. The (A) and the (B) addresses are the results left in the A and B address registers from the previous instruction. This type of operation requires 62 storage cycles, and takes .713 milliseconds to exe- cute. Only ten storage positions are required to store these chained instructions. The ability to chain a series of instructions is not de- pendent on the use of the same operation code. Chained instructions may have various Op codes. The require- ment is that the (A) fields to be operated on must be in sequence, and the (B) fields must be in sequence. Example: A 900 850 M A M For example," assume that the data fields are each ten characters long: The ten characters at location 900 were added to 850. The ten characters at location 890 were moved to 840. The ten characters at location 880 were added to 830. The ten characters at location 870 were moved to 820. As operation codes are individually explained, in- structions that can be chained are so indicated. Loading Instructions Before the 1401 can start processing, program instruc- tions must be put into the system. This is accomplished by means of a loading routine, one of which is included in another section of this manual. Instructions are placed in the machine by the use of load cards. Several different types of load cards con- dition the 1401 to accept information for processing. They cause word marks to be set at specific storage locations, and load a series of instructions which allow the cards containing the actual program instructions to be stored in their correct locations. 22 Input-Output Operations Input-output operation codes control reading and punching data cards, and printing reports. Branching instructions are provided to transfer the program auto- matically at the completion of a function. More than one function can be initiated by a single instruction. Input-Output Codes 1 READ This instruction activates the card feed, and causes all 80 columns of information to be read from the card into the ibm 1401 storage unit, ad- dresses 001 through 080. The word marks for these 80 positions are not disturbed. 1 (I) READ AND BRANCH , Same as the read instruction, except that when the (I) address follows the read operation code, the next instruction is taken from the (I) address instead of from the next instruction location in sequence. This produces a branch in the program after the card has been read from the 1402 card- read unit. The position immediately following this instruction must contain a character with a word mark or a blank character with or without a word mark. 2 print This instruction causes the program to stop, and the data in the print area of storage to be trans- mitted to the printer. The program continues se- quentially, immediately after printing is complete. The print area of storage is designated as addresses 201 through 300 for the basic 1403, and addresses 201-332 for the 1403 equipped with 32 additional print positions. The printer automatically spaces one line after printing unless instructed to do otherwise. When the system is equipped with the Print Storage optional feature, the program can continue as soon as the data is received in print storage. Thus the interlock time is greatly reduced. . 2 (I) PRINT AND BRANCH Same as the print instruction, except that the location of the next instruction is at location (I). The position immediately following this instruction must contain a character with a word mark or a blank character with or without a word mark. 2 IU PRINT WORD MARKS This instruction causes each word mark associ- ated with storage addresses 201 through 300 (201- 332 for additional print control) to print as the digit "1". The printer automatically spaces one line after printing unless instructed to do otherwise. 2 A * E Sense Switch E * o Punch Error if I/O Check Stop Switch OFF * W Divide Overflow * F Sense Switch F * + Printer Error if I/O Check Stop Switch OFF * Z Overflow $ G Sense Switch G * % Procesing Check with Process Check Switch OFF $ * optional $ Condition reset by a Test and Branch in- struction FIGURE 24. d-CHARACTER FOR BRANCH INSTRUCTION 28 If this instruction is chained, B (601) (350) b BBB, the program also tests locations 349, 348 and 347 for blanks. Thus, the entire field is tested for blanks, and sends the program to location 601 if any blank positions are found in the field. Word marks do not affect this instruction. V (I) (B) d TEST FOR ZONE OR WORD MARK AND BRANCH This is a single-character-test instruction, which tests the character located at address (B) for a specific condition as specified by the d-character, and branches if the condition is met as follows : d-Character Branch to (I) if address (B) contains: 1 2 B K S 3 C L T Word mark No zone (No-"A", No-"B" bit) 12-zone ("AB" bits) 11 -zone ("B", No-" A" bit) Zero-zone ("A", No-"B" bit) Either a word mark, or no zone Either a word mark, or 1 2-zone Either a word mark, or 1 1-zone Either a word mark or zero-zone. Move and Load Codes M (A) (B) move This instruction causes the data in the A field to be stored in the B field. If both fields are the same length, only one of the fields need have the defin- ing word mark. If the fields are different lengths, the first word mark encountered defines the length of both fields, and stops the operation. Sensing an A word mark first allows the completion of one more B cycle before stopping the operation. The word marks themselves are not affected by the move operation, nor is the data in the A field. At the end of this operation, the A address register and B address register contain the addresses of the units positions of the fields to the immediate left of the high-order positions of the preceding locations. Thus, the next instruction can be chained, if it is to use the locations that are provided in the A and B address registers. M (A) The address in the B address register is used as the address of the B field. This instruction can be used to assemble fields in sequential order. Figure 25 is a detailed schematic, showing movement of a 3 -character data word from the A field to the B field. AF STORAGE UNIT , „ „ v ield B Field (before) ll B M| 567 |d p r _sjT12 i\ l _ j 1 | [ B Field (after) 1 ' 1 I ! |d p M| T12 1 | 1 i L , T r _JL OP Reg | 1 1 A Reg 1 1 1 BfReg ' ! M ! L -I M Ue ! M 1 | 1 A Cycle I 1 1 i 1 1 [ A Reg I 1 B Reg 1 1 "1 ' ! © ! M ! 1 s r* J 1 B Cycle l__ T _J i i L _ _ —J (1312) (1312) AF STORAGE UNIT ield B Field (before) |i B M| 566 |d p M| Til 4i 1 1 1 1 i ' j B Field (after) ! i { 1 1 1 1 Id B M| Til OP R j M eg —\ 1 1 L 1 A Reg | , 1 L-j B U«-- - "1 ' ' BfReg j ] i 1 1 1 1 R 1 ' ' ~ "■ 1 1 A Cycle i i l l A Reg r-— 1 ! B ! L___, | j B Reg ' ! r"H ' ! ; P j*J, B Cycle L_ T __1 l l (1311) (1311) STORAGE UNIT AFi eld B Field (before) |l B M| 565 Id b M| T10 \\ h 1 1 j B Field (after) 1 1 |l B M| T10 . I 1 I 1 'i | | 1 L — T i L OP Reg | 1 A Reg 1 B*Reg ] I r- '— | ! m ! L _ — i i h*— --H i i : A Cycle I 1 i i I i i i A Reg 1 1 j B Reg , 1 ' ' l © ! ' ! L*J D J | B Cycle U-T-J l 1 1 (1310) (1310) FIGURE 25. SCHEMATIC OF A 3-CHARACTER MOVE INSTRUCTION 29 A Address Developed B Address Developed Cycle Type of Cycle B Register A Register Address Registers at End of Cycle Op Register Remarks 1 A B 1 'op Word Mark M ? 002 ??? ??? M Read Instruction 2 li 5 5 003 5?? ??? M "\ 3 h 6 6 004 56? ??? M ►- Load A Address Register 4 >. ... '3 7 7 005 567 ??? M j r 5 u T T 006 567 13?? M n 6 Is 1 1 007 567 131? M K Load B Address Register I 7 l 6 2 2 008 567 1312 M ' 8 h Word Mark OP 2 008 567 1312 M OP code of next instruction . 9 A M M 008 566 1312 M Execute move inst. 10 B S M 008 566 1311 M 11 A B B 008 565 1311 M 12 B P B 008 565 1310 M 13 A Word Mark 1 Word Mark I 008 564 1310 M 14 B Word Mark D Word Mark 1 008 564 1309 M Completion of MOVE Instr. 15 'op Word Mark OP Word Mark 1 009 564 1309 Next OP Code Read next instr. FIGURE 26. SINGLE CYCLE OPERATION OF MOVE INSTRUCTION (M 567-T12) Figure 26 is the single-cycle operation chart, that explains the schematic. Z (A) (B) MOVE AND ZERO SUPPRESS This instruction causes the data in the A field to be stored in the B field. The B field contains blanks instead of zeros to the left of the first sig- nificant digit. At the completion of the move, the A address register contains the address of the field immediately to the left of the A field and the B address register contains the address of the units position of the B field plus one (1). Therefore, this instruction should not be chained. Only a word mark with the A field stops the transmission of data. This code removes the sign from the units position of the resultant field. D (A) (B) MOVE DIGIT This instruction causes the numerical portion (8-4-2-1 bits) of the single character in the A ad- dress to be written in the B address. The zone portion ("AB" bits) at both addresses is not af- fected. Because this is a single-character operation, no word marks are required with the A address or the B address. This instruction can be chained. Y (A) (B) MOVE ZONE This instruction is similar to move digit (D), except that only the zone ("AB" bits) are moved. This instruction can be chained. L (A) (B) LOAD This instruction is similar to move (M), except that the length of the word in the A field must be defined by a word mark. The word mark for the A field is transferred to the B field, and all B field word marks up to this newly moved word mark are cleared. This instruction is commonly used to load data into the printer, or punch areas of stor- age, or to bring data or instructions from the reader area of storage to another location. The word mark for the A field stops the transfer. L(A) The address in the B address register is used as the address of the B field. This instruction can be chained. , (A) (B) SET WORD MARK This instruction can include one or two ad- dresses, and causes a word mark to be set for each 30 of the specified addresses without disturbing the data at these addresses. This instruction can be chained. tl (A) (B) CLEAR WORD MARK Same as the set word mark (,) instruction, ex- cept that the word marks are cleared at the speci- fied addresses. This instruction can be chained. Miscellaneous Operation Codes F d FORMS CONTROL This instruction causes the carriage to move as specified by the d-character. A numerical digit causes an immediate skip to a specified channel in the carriage tape. An alphabetic character with a 12-zone causes a skip to a specified channel after the next line is printed. An alphabetic character with an 11 -zone causes an immediate space. A zero-zone character causes a space after the next line is printed. The table (Figure 27) shows the effect of the d-character. In order to maintain the highest possible machine speed, the immediate skip or space instruction should be given as early in the program as possible. If the carriage is in motion when a forms control instruction is given, the program stops until the carriage comes to rest. At this point, the new carriage action is initiated and then the program advances to the next instruction in storage. F(I)d FORMS CONTROL AND BRANCH Same as the previous instruction except that the next instruction is taken from the (I) address. Kd STACKER SELECT This instruction causes the card that was just read or punched to be selected into the stacker pocket specified by the d-character as follows: d-character 1 2 4 8 Feed Read Read Punch Punch Stacker Pocket 1 8/2 4 8/2 This instruction must be given in the first 10 milliseconds of process time after a read operation has been completed, in order to select the card that has just been read. Giving this instruction at any other time is ineffective for selecting a card in the card read unit, and the card enters the NR (non-selected reader) pocket (Figures 11 and 12). To select a card in the punch unit, this instruc- tion can be given any time after the punch in- struction has been completed, as long as it is before the next punch instruction. Even when this instruction is given immediately after a card is punched, the card is not selected into the proper pocket until after the next punch instruction is executed. It is not selected as specified by the stacker select instruction if during this second punch cycle a hole-count check occurs. d Immediate Skip to d Skip After Print to d Immediate Space 1 Channel 1 A Channel 1 J 1 space 2 Channel 2 B Channel 2 K 2 spaces 3 Channel 3 C Channel 3 L 3 spaces 4 Channel 4 D Channel 4 5 6 7 Channel 5 Channel 6 Channel 7 E F G Channel 5 Channel 6 Channel 7 d After Print-space / 1 space 8 Channel 8 H Channel 8 S 2 spaces 9 Channel 9 1 Channel 9 T 3 spaces Channel 10 + o Channel 10 # Channel 1 1 • Channel 11 @ Channel 12 n Channel 12 FIGURE 27. d-CHARACTER FOR FORMS CONTROL 31 An error check in the card read unit stops the entire system at the completion of the read in- struction, and the card in error is automatically selected into the NR pOcket. A punch error condition overrides the stacker- select operation, and the card enters the NP (non- selected punch) pocket. K(I) d STACKER SELECT AND BRANCH Same as the previous instruction except that the location of the next instruction is at address (I). C (A) (B) COMPARE This instruction causes the data in the B field to be compared to an equal number of characters in the A field. It compares the bit configuration of each character in the two fields. When the B field is longer than the A field, an unequal-compare results. When the A field is longer than the B field, the comparison is stopped by the B word mark. The result of the comparison is stored in the ma- chine for later use by a branch conditional in- struction. The compare instruction should not be chained. /(A) CLEAR This instruction is used to clear an area of stor- age (up to 100 characters) of data and word marks. It causes clearing in all positions from address (A) down to the nearest hundreds position. The cleared area is set to blanks. Example: if the (A) address is 563, all positions 563 through 500 are cleared. This instruction can be chained. / (I) (B) CLEAR AND BRANCH Same as the previous instruction (the B address is the start location for clear) except that the location of the next instruction is indicated by ad- dress (I). N NO OPERATION This operation code can be substituted for the operation code of any instruction to make that in- struction ineffective. STOP This instruction causes the machine to stop, and the stop-key light turns on. Pressing the start key causes the program to resume from the next in- struction in sequence. (I) STOP AND BRANCH Same as the previous instruction, except that when the start key is pressed, the location of the next instruction is at the (I) address. A blank character immediately following this instruction acts as a word mark to terminate this instruction. 32 Editing Editing in the ibm 1401 Data Processing System is automatic control of zero suppression, insertion of iden- tifying symbols, and punctuation of an output field. This function can be performed with two simple in- structions. One single edit instruction can cause all de- sired commas, decimals, dollar signs, asterisks, credit symbols, and minus signs, to be automatically inserted in a numerical field. In addition, unwanted zeros to the left of significant digits are suppressed (Figure 28). Example : Edit Instruction E (A) (789) (B) (300) Storage A Field (data) 00257426 B Field (control word) $bbb, bbO. bb&CR&** Result of Edit Storage 00257426 B Field $ 2,574.26 ** FIGURE 28. EDITING The process is analagous to the arithmetic operation. In addition, a character from the A field is read from storage; then a character from the B field is read from storage; an operation (addition) is performed on the two characters, and the result is written back into storage. Likewise, in editing, two fields are needed: the data field, and a control field. The control field indicates how the data is to be edited. It specifies the location of commas, decimals, conditional CR and minus symbols, and indicates where zero suppression is to occur. The two fields are read from storage alternately, char- acter-by-character, as they are in the addition process, but are under control of the editing rules. The control word is divided into two parts: the body (used for punctuating the A field) and the status por- tion (which contains the sign symbols and *'s). Print- ing sign symbols is in part controlled by the sign of the A field. To edit a field, a load instruction loads the control word in the output area; the edit instruction moves the data to the output area, and performs the editing function. E(A) (B) This instruction takes the data in the A field, modi- fies it by the contents of the edit-control word in the B field, and stores the results in the B field. The type of modification is controlled by the following set of rules. 33 Rule 1. All numerical, alphabetic and special char- acters can be used in the control word. However, some of these have special meanings as listed below. Control Character b (blank) (zero) . (period) , (comma) CR (credit) Function Replaced with the character from the corresponding position of the A field. Used for zero suppression. Replaced with a corresponding character from the A field; also the right-most "0" in the control word indicates the right- most limit of zero suppression. Undisturbed in the punctuated data field, in the position where written. Functions as a significant character unless Expanded Print Edit feature installed (See Expanded Print Edit). Undisturbed in the punctuated data field, in the position where written, unless zero suppression takes place, and no significant numerical charac- ters are found to the left of the comma. Undisturbed if the data sign is nega- tive. It is blanked out if the data sign is positive. Can be used in body of control word without being subject to sign control. Same as CR. Causes a space in the edited field. It can be used in multiples. Can be used in singular or in mul- tiple, usually to indicate class of total. When used with the Expanded Print Edit optional feature, this takes on a special meaning ( see Expanded Print Edit). Undisturbed in the position where written. When used with the Ex- panded Print Edit optional feature, this takes on a special meaning (see Expanded Print Edit). Rule 2. A word mark with the high-order position of the B field controls the edit operation. Rule 3. When the A field word mark is sensed, the remaining commas in the control field are set to blanks. — (minus) & (ampersand) (asterisk) $ (dollar sign) Rule 4. The body of the control word is defined as that portion beginning with the right-most blank or zero, and continuing to the left until the A field word mark is sensed. The remaining portion of the control field is referred to as the status portion. Rule 5. If the data field is positive, and the CR or — symbols are located in the status portion of the control word, they are blanked out. Rule 6. Zero Suppression. This is the deletion of unwanted zeros at the left of significant digits in an out- put field (Figure 29). Example: Afield 0010900 Control Word (B field) $bb,bb0„bb Forward scan $00,109.00 Reverse scan $bbbl09.00 Results of edit $ 109.00 FIGURE 29. ZERO SUPPRESSION A special is placed (in the body of the control word) in the right-most limit of zero suppression. Forward Scan: 1. The positions in the output field at the right of this special zero are replaced by the corresponding digits from the A field. 2. When the special zero is detected in the control field, it is replaced by the corresponding digit from the A field. 3. A word mark is automatically set in this position of the B (output) field. 4. The scan continues until the B field (high order) word mark is sensed and removed. Reverse Scan: 1. All zeros and punctuation at the left of the first significant character (up to and including the zero suppression code position) are replaced by blanks in the output field. 2. When the automatically set zero suppression word mark is sensed, it is erased and the operation ends. Rule 7. Any A field data that has not been moved before the word mark for the control field is sensed, does not appear in the edited output data. The data field can contain fewer, but should not contain more, positions than the number of the blanks and zeros in the body of the control word. Dollar signs and asterisks are included in the control word with the Expanded Print Edit feature. An illustration of the application of these rules is shown in Figure 30. 34 Cycle Type of Cycle Address Reqisters Reg. Put Back into Storage "B" Field at End of Cycle Remarks 1 A B B A 1 'OP 002 ? ? E E $ b b b , b b . b b & C R & * * Read Instr. OP code 2 'l 003 07?? 07?? 7 7 7 same Load A Address Register 3 '2 004 078? 078? 8 8 8 same Load A Address Register 4 '3 005 0789 0789 9 9 9 same Load A Address Register 5 '4 006 0789 0389 3 3 3 same Load B Address Register 6 '5 007 0789 0309 same Load B Address Register 7 '6 008 0789 0300 same Load B Address Register 8 h 008 0789 0300 OP OP same OP code of next instr. 9 A 008 0788 0300 6 6 6 same Execute EDIT instr. 10 B 008 0788 0299 * 6 * same Rule 1 11 B 008 0788 0298 * 6 * same Rule 1 12 B 008 0788 0297 & 6 Blank $bbb,bb0.bb&CRb** Rule 1 13 B 008 0788 0296 R 6 Blank $bbb , bbO: bb &Cbb* * Rule 1 and 5 14 B 008 0788 0295 C 6 Blank $bbb , bbO . bb &bbb# # Rule 1 and 5 15 B 008 0788 0294 & 6 Blank $bbb , bbO . bbbbbb* * Rule 1 16 B 008 0788 0293 b 6 6 $bbb,bb0.b6bbbb** Rule 1 17 A 008 0787 0293 2 2 2 same Rule 1 18 B 008 0787 0292 b 2 2 $bbb,bb0.26bbbb«* Rule 1 19 A 008 0786 0292 4 4 4 same Rule 1 20 B 008 0786 0291 4 • same Rule 1 21 B 008 0786 0290 4 4 $bbb , bb4 . 26bbbb* * Zero Suppress-Rule 1 and 6 22 A 008 0785 0290 7 7 7 same Rule 1 23 B 008 0785 0289 b 7 7 $bbb,b74. 26bbbb** Rule 1 24 A 008 0784 0289 5 5 5 same Rule 1 25 B 008 0784 0288 b 5 5 $bbb , 5 74 . 2bbbbb* * Rule 1 26 A 008 0783 0288 2 2 2 same Rule 1 27 B 008 0783 0287 • 2 / same Rule 1 28 B 008 0783 0286 b 2 2 $bb 2 , 5 74 . 26bbbb** Rule 1 29 A 008 0782 0286 same Rule 1 30 B 008 0782 0285 b $b02,5 74.26bbbb** Rule 1 31 A 008 0781 0285 same Rule 1 32 B 008 0781 0284 b $002,5 74. 26bbbb** Rule 1 33 B 008 0781 0284 $ $ $002,574. 26bbbb** Sense Word Mark — Rev. Scan — Rule 1 and 6 34 B 008 0781 0285 $ $ same Rule 6 35 B 008 0781 0286 Blank $b02 , 574 . 26bbbb * * Rule 6 36 B 008 0781 0287 Blank $bb 2 , 574 . 26bbbb** Rule 6 37 B 008 0781 0288 2 2 same Rule 6 38 B 008 0781 0289 , , same Rule 6 39 B 008 0781 0290 5 5 same Rule 6 40 B 008 0781 0291 7 7 same Rule 6 41 B 008 0781 0291 4 4 $bb2,574. 26bbbb** Rule 6 FIGURE 30. STEP BY STEP EDITING OPERATION 35 Expanded Print Edit The basic operations of the edit instruction can be ex- panded by an optional Expanded Print Edit feature. This provides the functions of Asterisk Protection, Floating Dollar Sign, Decimal Control, and Sign Con- trol Left. Asterisk Protection When it is necessary to have asterisks appear at the left of significant digits, the asterisk protection feature is used (Figure 31). Example: Afield Control word (B field) Forward scan Reverse scan Results of edit 00257426 bbb,b*0.bb&CR 002,574.26 CR **2,574.26 CR **2,574.26 CR FIGURE 31. ASTERISK PROTECTION The control word is written with the asterisk at the left of the zero suppression code. Forward Scan: 1. The normal editing process proceeds until the as- terisk is sensed. 2. The asterisk is replaced (in the output field) by the corresponding digit from the A field. 3. The editing process continues normally until the B field word mark is sensed and removed. Reverse Scan: 1. Zeros, blanks, and punctuation to the left of the first significant digit are replaced by asterisks. 2. The word mark (set during the forward scan) sig- nals the end of editing. It is erased, and the opera- tion is stopped. Floating Dollar Sign This feature causes the insertion of a dollar sign in the position at the left of the first significant digit in an amount field (Figure 32). Example: Afield 00257426 Control word (B field) bbb,b$0.bb First forward scan 002,574.26 Reverse scan bb2,574.26 Second forward scan $2,574.26 Results of edit $2,574.26 FIGURE 32. FLOATING DOLLAR SIGN The control word is written with the "$" at the left of the zero suppression code. Three scans are necessary to complete this editing operation. First Forward Scan: 1. The editing proceeds until the "$" is sensed. 2. The "$" is replaced (in the output field) by the cor- responding digit from the A field. 3. Editing continues until the B field word mark is sensed and removed. Reverse Scan: 1. Zeros, and punctuation to the left of the first sig- nificant digit are replaced by blanks. 2. The reverse scan continues until the word mark (set during the first forward scan) signals the start of the second forward scan. Second Forward Scan: 1. The word mark is erased and the scan continues until the first blank position is sensed. This blank position is replaced by "$," and the operation stops. Sign Control Left CR or — symbols can be placed at the left of a nega- tive field, if the sign control left feature is used (Figure 33). Example: Afield Control word (B field) Forward scan Reverse scan Results of edit 00378940 CR&bbb,bb0.bb CRb003,789.40 CRbbb3,789.40 CR 3,789.40 FIGURE 33. SIGN CONTROL LEFT 36 The control word is written with the CR or — symbols in the high-order position. Forward Scan: 1. The scan proceeds until the zero suppression char- acter in the control field is sensed. 2. The corresponding character from the A field is placed in this position of the output field. 3. A word mark is automatically inserted in this posi- tion in the output field. 4. Editing continues and the CR or — symbols are un- disturbed in their corresponding positions in the output field, only if the sign of the A field is minus. If the sign is plus, they are blanked. Reverse Scan: 1. Zeros and punctuation are replaced by blanks in the output field. The scan continues until the auto- matically-set word mark is sensed. 2. This word mark is erased and the operation ends. Decimal Control This feature insures that decimal points print only when there are significant digits in the A field (Figure 34). Two scans are sufficient to complete this editing opera- tion unless the field contains no significant digits. Then three scans are required. First Forward Scan: 1. When the zero suppression code (0) is sensed dur- ing editing, this position is replaced by the corre- sponding digit from the A field. 2. A word mark is set automatically in this position in the B (output) field. 3. Editing continues normally until the B field word mark is sensed and removed. Examples: 1. Afield 00000 Control word (B field) First forward scan Reverse scan bbb.bO 000.00 bbb.00 Second forward scan bbb Results of edit (Blank Field) 2. Afield 29437 Control word (B field) First forward scan Reverse scan bbb.bO 294.37 294.37 Result of edit 294.37 3. Afield 00001 Control word (B field) First forward scan Reverse scan bbb.bO 000.01 bbb.01 Results of edit .01 FIGURE 34. DECIMAL CONTROL Reverse Scan: 1 . Zeros and punctuation are replaced by blanks in the output field until the decimal point is sensed. 2. The decimal point and the digits at its right are un- altered. The automatically-set word mark is erased. If there are no significant digits in the field, the sec- ond forward scan is initiated. Otherwise, the edit operation stops. Second Forward Scan: 1 . The zeros at the right of the decimal point and the decimal point itself are replaced by blanks. 2. The operation stops at the decimal column. 37 Operating Features The ibm 1401 Data Processing System is equipped with start. This key (Figure 35) is used to initate or re- operating features that give complete operator control for setting up and checking machine operation. Console Keys, Lights and Switches power on. Controls the main power supply for the entire system. Pressing it causes power on key to light. power off. Turns off the main power supply. sume machine operation after a stop : manual, pro- grammed or automatic. Similar keys are found on each of the other units in the system. Operation of this key is conditioned by the setting of the mode switch. a. During a normal run mode, the system can be started by pressing the start key on any of the units. b. During a single cycle process mode, any of the start keys can cause the system to advance through the program, except on an input-output I'Wft' § ■■•"sPtt. ■ tlillltil SHidB 13 villi '-yfflisp^?i ill ^'■'i|^vl TfffHP; *>•'•" -;*r*>' iff,™ 8 jiH^ V\i > *• '^ wftyj| FIGURE 35. CONSOLE 38 execution cycle. The start key at the input-output unit must be pressed for this operation. c. To restart following an error indication, the check reset key must be pressed prior to the op- eration of the start key. d. Following a card jam or misfeed in either the reader or the punch, the cards in the associated feed must be run out by means of the non-process- runout key for that feed, and its hopper must be reloaded before the start key is pressed. start reset. This switch is used to reset the system (except for the data in storage) so that the op- erator can restart the operation. stop. This is a lighted key, and is used to stop process- ing in the system. It is not effective until the in- struction being executed is completed. Similar stop keys (without lights) are provided on each of the other units within the system. emergency off. This is a pull switch, located on the console. In an emergency, pulling this switch dis- connects all the power to the entire system. This switch should be manually reset by a customer en- gineer before power is restored to the system. check reset. An error detected by the checking cir- cuits causes this key to light. It must be pressed following a 1401 Processing Unit error, and the system is restarted by pressing the start key. Checking Lights Four lights are provided at the top of the console panel, representing the Processing Unit, Reader, Punch, and Printer. When the machine is operating normally, these lights appear as white areas with black lettering. When the machine stops, requiring operator attendance at one of the four units, the appropriate light glows red, indi- cating an error. The light is extinguished when proper action is performed by the operator. storage. The storage light is red when an error at the input to storage is detected by a parity check. b-light. The B-light comes on when a B register parity check error occurs. The lights underneath display the BCD coding check-bit status, and the word mark status of the character in the B register. a-light. The A-light comes on when an A register parity check error occurs. The lights below indi- cate the coded character, check-bit status, and word mark status of the character in the A register. Logic Block Lights o-flo. Lights when an overflow condition exists. b ^ a. Is on when an unequal-compare condition exists after a compare instruction. Additional lights are provided for high-low-equal compare when this optional feature is included in the system. bit display. Shows the bit configuration of the sum of the characters being processed in an arithmetic operation. Register Lights op register. The Op light is red when an incorrect operation code exists in the op register, or if the code is incorrectly interpreted. The lights below indicate the coded character and the check-bit status of the character in the op register. instruction length lights. Indicate the number of characters in the instruction. storage-address light. Red when an address register parity check occurs. The lights below, displaying the address, can be checked for the error condi- tion. storage address display. A group of storage address lights display the storage address (in binary-coded- decimal form) contained in the address register indicated by one of three key-lights: i address register. Glows when the I address is in the storage address display. a address register. Glows when the A address is in the display. b address register. Glows when the B address is displayed. Stopping the machine and holding down one of these keys causes the contents of the associated register to be displayed in the storage-address lights. I/O Check Stop Switch When in the on position (up), the machine stops at completion of an I/O operation if an error occurs dur- ing that operation. In the off position (down), the machine does not stop if it detects a hole count check in the Card Reader or Card Punch, a validity for the Card Reader, or a Print Check. With the switch in the off position, error detection must be accomplished by programming. 39 Manual Address Switches The four dial switches labeled Manual Address are used to select the address to be entered in the storage- address register. These work in conjunction with the address register key-lights and the storage-address display lights. For example, set the contents of the A address register to 1200. 1. Set the mode switch to alter. 2. Set the manual address switches to 1200. 3. Press the A address register key. 4. Press the start key. The storage-display lights then show the bit configur- ations for this address (1200). The manual address switches are also used to select a storage location for a display or alteration, without disturbing the contents of the address registers. Sense Switches Seven sense switches can be included in the 1401 Processing Unit. The manual toggle switches that con- trol them are located on the console. Switch A is used to control last card operations by making the test and branch sense switch on instruction effective only when the last card in the reader has passed the second reading brushes. Switch A is standard in all systems except Model D. Six additional sense switches (B, C, D, E, F, and G) are optional features. The B (I) d test and branch sense switch on instruction can be used to interrogate the setting of the switch specified by the d-character, at any time during processing, and causes a branch to the (I) address if the switch is on. Mode Switch The nine modes of machine operation are selected by the Mode Switch: 1. run. When the mode switch is set to run, the system is under control of the stored program. 2. i/ex (instruction/execution). When the mode switch is set to i/ex, the first time the start key is pressed, the machine reads one complete instruc- tion from storage and stops. This is called the instruction phase. The next time the start key is pressed, the machine executes that instruction. This is called the execution phase. Subsequent pressing of the start key results in alternate instruction and execution phases. 3. single-cycle process. Each time the start key is pressed, one .012 millisecond storage cycle is taken when the machine is in the single-cycle process mode. Console indicating lights display the con- tents of the OP, I Address, A Address, B Address, A and B registers, and the logic unit. (See Figure 25 and Figure 26.) 4. single cycle-non process. This is similar to the single-cycle-process mode, except that no data enters storage from the A register or the logic unit. Data always enters storage from the B register only. This mode permits observing the results of arithmetic operations, one character at a time, in the logic display, without destroying the original B field data. 5. character display. When the machine is operating in this mode, the start key is pressed to cause the character at the address selected by the manual- address switches to be displayed in the B register. 6. storage print out. This mode of operation permits any 100-character block of storage to be printed. The hundreds and thousands manual address switches are used to select the desired block of storage. Example: 12xx is set in the manual address switches and the start key is pressed. The 100 characters in the selected block 1201-1300 are printed automatically in print positions 1 through 100. Another automatic print cycle causes the word marks for that block to be indicated by printing l's in their corresponding print positions on the second line. This feature is used to great advantage in program testing, because the contents of a block in core storage is printed and can be easily examined by the programmer. Thus, this feature serves to increase both processing and programming efficiency. 7. alter. The operator can manually change the con- tents of any address register or storage location if the mode switch is set to alter. For example, to change the contents of address registers: set the manual address switches at the desired location; press the appropriate address register key-light; press the start key; the selected address register is set with the new address. To change the contents of a storage location: set the manual address switches to the desired location; 40 select the bit-structure of the character to be entered, by setting the eight BiT-switches located on the auxiliary console; press the enter key (also on the auxiliary console). storage scan. When the mode switch is set to storage scan, pressing the start key causes the 1401 to start reading out of storage beginning at the address set in the manual- address switches. If an error condition is detected that had been pre- viously set by an input-output device the machine stops, and the check light with the corresponding unit is turned on; and the location of the card column or print position in error is shown in the storage address display unit. The B-register con- tains the storage position in which the error was detected, the actual location in storage can be cor- rected by using the BiT-switches and enter key as described under the alter mode. After the error condition is corrected, the mode switch is again set to storage scan and the start key is pressed to cause a read out of storage start- ing from the address set in the manual address switches. This mode is used as a service aid to insure that all positions of storage are correct. address stop. When the mode switch is set to ad- dress stop, pressing the start key starts the pro- gram and the machine stops at the address selected by the manual address switches. Auxiliary Console The auxiliary console panel (Figure 36) is located below the main console of the 1401 processing unit. Its pur- pose is to provide additional operator control of the system. Keys Lights and Switches on the Auxiliary Console bit switches. Eight bit switches are used to alter char- acters in storage. These switches are used in con- junction with the alter mode as explained in the mode switch description. PRINTER CHECK RUN PRINTER DISPLAY READ INTERLOCK PUNCH INTERLOCK PROCESS CHECK STOP EN' FIGURE 36. AUXILIARY CONSOLE enter. This key is used to enter the characters selected by the bit-switches into storage, when the mode switch is set to alter. process check stop switch. This is normally on to cause the machine to stop automatically when a process check occurs. If the switch is in the off position, the machine does not stop on error con- ditions, except for op register and address register checks, and input-output checks. i/o check reset switch. This switch resets error con- ditions sensed on the read punch unit and permits the start key to be effective. It is primarily used by Customer Engineering. read interlock. When this light is on the reader is in a ready condition, when it is off the reader is interlocked until the print operation is completed. punch interlock. When this light is on the punch is in a ready condition, when it is off the punch is interlocked until the print operation is completed. printer display. This light is on when a print opera- tion is being executed. run. When this light is on the printer is in a ready con- dition, when it is off the printer is interlocked until the print operation is completed. 4t IBM 1402 Card Read Punch Operating Keys, Lights, and Switches start. Causes the machine to start, and feed two cards into the read feed. If the punch switch is on, two cards are also fed into the punch unit (Figure 37) . stop. Used to stop the system. If a program step is in process, it is completed before the stop occurs. non-process runout read. Pressed to clear the read feed. The last two cards in the normal stacker have not been processed. non-process runout punch. Causes the punch feed to be cleared of cards. The last two cards in the normal stacker have not been processed. load. Used to start loading instruction cards. Pressing the load key causes the read feed to operate until a card has passed the second read station. The I Address Register is reset to 001, and a word mark is set in address 001. All other word marks in addresses 002 through 080 are removed. When the card is read at second read, the pro- gram starts and executes the instruction that is punched in the first columns of the card. Continued operation is completely under con- trol of any program in that card or succeeding cards, as conditioned by the first instruction in the first card. When the punch switch is on, pres- sing the load key also causes the punch feed to operate until a card reaches the punch station. check reset. Must be pressed to reset any error indi- cation by a punch, read, or validity check, before the start key can become effective. punch switch. Controls the punch section of the ma- chine. When this switch is off the punch is in- operative. When it is on, the machine runs auto- matically if all the interlock circuits in the punch side are satisfied. power on light. When power is supplied to the read- punch unit, the power on light is on. reader stop. A condition (empty hopper, feed failure, or a card jam) causes the machine to stop and the reader stop light to come on. punch stop. A condition (empty hopper, feed failure, or a card jam) causes the machine to stop and the punch stop light to come on. validity. This light is on if an invalid character is detected during a read operation. read check. This light comes on if a hole count error is detected during card reading. If the count from the first and second reading brushes for a given card do not agree, an error is indicated by the read check light. punch check. This light is on if a hole count error is detected in the punch unit. If the hole counts are unequal, an error is indicated by the punch check light. stacker. If any of the five stackers becomes full, the machine stops, and this light signals the operator. fuse. When a fuse in the Card Read Punch burns out, this light signals the condition. IBM 1403 Printer Operating Keys, Lights and Switches Printer Controls (Figure 38) start. Starts the machine. stop. Stops the machine at completion of the instruc- tion in process. end of form. This light shows an end-of-form indi- cation and the machine stops. forms check. This light indicates paper feed trouble in the forms tractor or the carriage stop has been used. This light must be cleared by the check reset key before the print start is effective. carriage stop. Pressing this button permits immediate stopping of the carriage operation and turns on the Forms Check light. PUNCH CHECK PUNCH STOP FUSE CHIPS STACKER POWER TRANSPORT VALIDITY READER CHECK READER STOP PUNCH OFF READER OFF START CHECK RESET STOP LOAD PUNCH ON NOH.PBDt RUNOUT NON. Pilot RUNOUT READER ON FIGURE 37. 1402 CARD READ PUNCH KEYS, LIGHTS & SWITCHES 42 ready. This light comes on when the printer is in con- dition to print, and all error detecting devices are reset. print check. This light indicates a print error. sync check. This light comes on to show that the chain was not in synchronism, at all times, with the compare counter for the printer. The timing is automatically corrected. The light is extinguished by pressing check reset key. Carriage Controls (Figure 38) restore key. Causes the carriage to position at Chan- nel 1 (home position). If the carriage feed clutch is disengaged, the form does not move. If it is engaged, the form moves in synchronization with the control tape. space key. Causes the form to advance one space each time it is pressed. single cycle key. Initiates the operation of the printer for one print cycle on each pressing of the key. Manual Control (Figure 39) feed clutch. Controls the carriage-tape drive and form-feeding mechanism. If it is set to neutral, automatic form-feeding can not take place. It is also used to select six- or eight-lines-to-the-inch spacing. feed knob. Used to position the form vertically, and can be used only when the feed clutch is dis- engaged. vernier knob (vertical). Used for fine spacing ad- justment of forms at the print line. Carriage tape is not affected by this knob. FIGURE 39. PRINTER MANUAL CONTROLS horizontal adjustment. The printing mechanism is positioned, horizontally, by using this device. vernier knob (horizontal). Turn this knob to obtain fine horizontal positioning. form thickness control. Sets the proper clearance between the hammer and the chain to obtain opti- mum printing quality on multipart forms. print unit release lever. Permits access to form transport area (Figure 40). figure 38. 1403 printer keys, lights & SWITCHES FIGURE 40. PRINT UNIT RELEASE LEVER 43 IBM 14D1 Magnetic Tape System The ibm 1401 Data Processing System can be expanded to meet individual requirements in many areas of data processing. A 1401 System can be tailored to individual needs because it can consist of varying numbers and types of units (Figures 41, 42, and 43). The Tape System can be used alone as a complete data processing system, or as auxiliary equipment for intermediate and large-scale systems. It provides eco- nomical off-line tape editing and printing. As many as six magnetic tape units can be connected to the ibm 1401 Data Processing System, providing low-cost, full-scale, punched card, and magnetic tape input and output operations. The logic, arithmetic, editing, and tape instructions of the Tape System can be used to perform the primary functions : Magnetic tape to printer Punched cards to magnetic tape Magnetic tape to punched cards Punched cards to printer Tape Sorting-Merging FIGURE 41. 1401 TAPE SYSTEM, MODEL C 44 umsm FIGURE 42. 1401 TAPE SYSTEM, MODEL D COMPONENTS AVAILABLE : Model C — 1401 Processing Unit with 1400 Character Core Storage Model D — 1401 Processing Unit with 1400 Character Core Storage Model 1 Card Read Punch Model 2 Printer 729 Model II or IV Tape Units Model 2 Printer 729 Model II or IV Tape Units STANDARD FEATURES : Expanded Print Edit Read Punch Release Sense Switches Additional Print Control Dual Speed Carriage Control Expanded Print Edit Additional Print Control Sense Switches Dual Speed Carriage Control optional features: 2,000 or 4,000 Character Core Storage Multiply Divide High Low Equal Compare Column Binary Print Storage 2,000 or 4,000 Character Core Storage High Low Equal Compare Print Storage FIGURE 43. TAPE system components 45 Data Flow Magnetic Tape Data can he entered into the 1401 systems by means of punched cards, magnetic tape, or both. Information is read into the system, rearranged, calculated and edited by the stored program. Output can be in the form of punched cards, magnetic tape, or printed reports. Model D is not equipped with a card read-punch (Figure 44). All data passes through 1401 core storage, where a series of validity checks insure accuracy and reliability. FIGURE 44. DATA FLOW SCHEMATIC 1401 TAPE SYSTEM An important feature in economical processing of busi- ness data is compact storage. A magnetic tape reel (10'/2 inches in diameter) contains 2400 feet — sufficient tape to record as many as 14,000,000 characters. Tape reels can be easily stored or transported from one installation to another. In addition, magnetic tape records have gained wide acceptance as legal documents. Magnetic Tape Characteristics The magnetic tape recording code used with the ibm 1401, is the same binary-coded-decimal code used with other ibm Data Processing Systems. This compatability permits interchanging tapes between installations that employ different ibm systems. The tape itself is a rib- bon, '/2-inch wide, coated with a magnetic oxide ma terial. Data is recorded in a seven-bit code, in seven parallel channels along the tape. Tape characters and their cor- responding codes are shown in Figure 45. Records are separated from each other by approxi- mately % inch of blank (unrecorded) tape, called an inter-record gap. Each tape character is composed of an even number of magnetic bits. A check bit (labeled C in Figure 46) is written if the number of bits in the other six positions is odd. An even-parity check on each character insures accuracy for tape-read and tape-write operations. In addition to this vertical parity check, a horizontal check (HC in Figure 46) is made on each record. The bits in each horizontal row are automatically counted when the record is written, and a bit (similar in func- tion to the vertical check bit) is written at the end of each odd-count row. The vertical combination of these horizontal-check bits makes up the horizontal-check Code -t a ■< o> ° $ "J= e < o. J> 2. 0) = E U Q.O 01„, < — Add M'cand to Product /^\ Test for Word Mark 909 f No J © Shift Right Reduce Multiplier by 1 Move Product to Output Area i ■ Branch Unconditional to Zero Test Branch Unconditional to Zero Test Read and Print Adjust Addresses Yes Find number of significant digits in Divisor Add One to Address and Zero counter Adjust Addresses Subtract Divisor from Dividend Yes Add One to Quotient Add Divisor back to Dividend Adjust Addresses one position to the Right Jfes (^Division Completed^ FIGURE 56. DIVIDE FLOW CHART FIGURE 55. MULTIPLY FLOW CHART Division The restrictions placed on this subroutine are: 1. The dividend and quotient fields must be of equal length. 2. All fields must be positive. 3. The divisor cannot contain more than nine non- significant zeros. 4. All fields must be located completely below address 999. 5. The remainder is left in the dividend field. 56 IBM 1401 PROGRAM CHART Prngrom. DIVIDE SUB-ROUTINE Programmer: FORM X 24-6 437-0 PRINTED IN U.S.A DatPr Step No. Inst Addr Instruction Remarks Effective No. O P of Characters A/I B d Inst. Data Total 516 M 508 529 Store address of word mark of divisor 523 B 642 YYY Branch if divisor digit equals "0" 531 S A A 512 515 515 Find significant digits in divisor 538 545 502 515 505 Modify address 552 S S 513 513 502 WWW and XXX 559 505 566 M 502 628 573 M 502 635 580 M 502 684 Set modified addresses into divide routine 587 M 502 691 594 M 502 740 601 M 505 643 608 M 511 625 615 M 511 681 Set divisor address Data for Division Subroutine Location of Data Word Data Word Description of Data 499 blank Constant 502 WWW Address of word mark position of dividend 505 XXX Address of word mark position of quotient 508 YYY Address of word mark position of divisor 511 ZZZ Divisor address 512 blank Counter for # of zeros in divisor 513 1 Constant 515 Lq Length of quotient 622 S ZZZ WWW Subtract divisor from dividend 629 V 678 WWW K Branch if negative 637 A 513 XXX Add one to Quotient 644 B 622 Repeat 648 A 513 529 Add one to YYY address 655 A 513 512 Increase counter by one 662 C 512 515 Test for divisor equals 669 B 523 / Branch if unequal 674 746 Store — cannot divide by zero 678 685 A Y ZZZ WWW Add divisor back to dividend 499 WWW Remove zone bits 692 A 513 628 Modify address by one 699 A 513 635 706 A 513 643 713 720 A A 513 684 Modify address by one 513 691 727 A 513 740 734 V 746 WWW 1 Divide complete if word mark exists 742 T 622 Continue dividing 746 Divide complete FIGURE 57. DIVIDE SUB-ROUTINE 57 CHARACTER CARD CODE BCD CODE C B A 8 4 2 1 BLANK No Punches X 12-3-8 X X X X X a 12-4-8 X X X X X (Undefined Special Character) 12-5-8 * X X X X X (Undefined Special Character) 12-6-8 * X X X X X (Group Mark-Special Character) (Note 1) 12-7-8 X X X X X X X & 12 X X X $ 11-3-8 X X X X X * 11-4-8 X X X (Undefined Special Character) 11-5-8 * X X X X X (Undefined Special Character) 11-6-8 * X X X X X A (Mode Change (Delta) Special) 1 1-7-8 X X X X X 11 X / 0-1 X X X 0-3-8 X X X X X % 0-4-8 X X X (Word Separator-Special Char.) 0-5-8 * X X X X X (Undefined Special Character) 0-6-8 * X X X X X Tape Segment Mark-Special Char. 0-7-8 X X X X X 1401 Generated Special Character (Note 2) X # 3-8 X X X @ 4-8 X X X (Undefined Special Character) 5-8 * X X X (Undefined Special Character) 6-8 * X X X (Tape Mark-Special Char.) 7-8 X X X X X 12-0 X X X X X A 12-1 X X X B 12-2 X X X C 12-3 X X X X X D 12-4 X X X E 12-5 X X X X X F 12-6 X X X X X G 12-7 X X X X X H 12-8 X X X FIGURE 58. 1401 CHARACTER CODE CHART IN COLLATING SEQUENCE 58 CHARACTER CARD CODE BCD CODE 1 12-9 X X X X X H-0 X X X J 11-1 X X X K 11-2 X X X L 11-3 X X X M 11-4 X X X N 11-5 X X X O 11-6 X X X P 11-7 X X X X X Q 11-8 X X X R 11-9 X X X Record Mark * or + 0-2-8 X X X S 0-2 X X X T 0-3 X X X U 0-4 X X X V 0-5 X X X W 0-6 X X X X 0-7 X X X X X Y 0-8 X X X Z 0-9 X X X X X X 1 1 X 2 v 2 X 3 3 X X X 4 4 X 5 5 X X X 6 6 X X X 7 7 X X X 8 8 X 9 9 X X X *Coding nor valid for reading or punching card codes but can be used in tape operations. The 1401 has the ability to read MLP card codes. The 1401 ignores the 8-9 punches when they appear in the same column. The 1401 does not punch out MLP card codes. Note 1. In the 705, this is punched as (12-5-8). Note 2. The A bit coding must be program generated in the 1401 (it cannot be read in from a card); however, it can be punched in a card, and punches as a "0" (zero zone). (figure 58. continued) 59 IBM 1401 Data Processing System Timing Card Systems The following definitions are used in specifying the 1401 timings: Li — Number of characters in an instruction La — Number of characters in the A field Lb — Number of characters in the B field Ly — Number of characters back to right-most "0" in control field Name OP Code READ 1 PRINT 2 PRINT READ 3 PUNCH 4 READ PUNCH 5 PRINT PUNCH 6 PRINT READ PUNCH 7 READ RELEASE 8 PUNCH RELEASE 9 NO OPERATION N STOP • STACKER SELECT K UNCONDITIONAL BRANCH B TEST AND BRANCH B TEST CHARACTER B ZONE AND WORD MARK TEST V BIT TEST w SET WORD MARK ? CLEAR WORD MARK n MOVE DIGIT D MOVE ZONE Y COMPARE C LOAD L MOVE M + RESET ADD O RESET SUBTRACT O add (no recomplement) A subtract (no recomplement ) S ADD AND RECOMPLEMENT A SUBTRACT AND RECOMPLEMENT S MOVE AND ZERO SUPPRESS Z CLEAR / EDIT E FORMS CONTROL F Lx — Number of characters to be cleared Lw — Number of characters in the A field or the number of characters in the B field, which- ever is shorter This list contains the formulas to be used in calcu- lating the time required to execute an instruction, in milliseconds. Formula Require .0115 [Li+1] milliseconds plus the timings as shown in (Figure 59). .0115 ILi+1 .0115 [Li+2] .0115 [Li+3] .0115 [Li+1+La+Lb] .0115 |Li+1+2La] .0115 [Li+l+2Lw] .0115 [Li+1+La+Lb] // .0115 [Li+3+La+Lb] // .0115 |Li+3+La+4(Lb)] it .0115 |Li+1+3La] .0115 [Li+l+Lx] .0115 [Li+1+La+Lb+Ly] .0115 |Li+l] + remaining form-move- ment time if carriage is moving when this instruction is given. The form- movement time is determined by the number of spaces the form moves. Allow 20 ms. for the first space, plus 5 ms. for each additional space. 60 Timing Chart The main purpose of the timing charts (Figure 59) is to illustrate the processing time available during printing, reading, and punching. Knowledge of the exe- cution time for the individual operation codes is neces- sary before these charts can be used effectively. Card Read The Read Start Time is the time devoted to accelerat- ing the card reader and positioning the card for reading. The 44 milliseconds is the time required to read the card. During these 44 milliseconds, no processing takes place. The remaining 10 milliseconds is the time de- voted to processing. To maintain 800 cards/minute, another read instruction would be required during this time. If the process time exceeds the 10 milliseconds allotted, the reader will then function at a rate of 400 cards/minute. Printing When the operation code 2 is given, the information in the print output area is directed to the printing mech- anism. This consumes 84 milliseconds. The remaining 16 milliseconds is devoted to processing time. If the actual processing time exceeds the 16 milliseconds al- lotted, the basic print cycle is extended by the amount of the excess process involved. For example, if five ad- ditional milliseconds of processing were required (21 milliseconds total), the basic print cycle will now be 105 milliseconds. Converting this to lines per minute means that the machine is now printing at a rate of 571 lines per minute. Card Punching The start time is the time devoted to accelerating the card punch and positioning the card for punching. The actual time taken for punching a card is 180.5 milli- seconds. No processing takes place during this time. The remaining 22.5 milliseconds can be utilized as processing time. CARD READING 800 CARDS PER MINUTE (Assume that- operation code "1" was given during previous cycle) 75 ms * »| < : — 21 ms Read Start Time The Read Start Time may be used as Process Time if the "Read Release" Option is employed. 44 ms Card Reading * » « * 10 ms- Processing Time CARD PRINTING 600 LINES PER MINUTE (Assume that operation code "2" was given during previous cycle) 100 - 84 ms Printing -*-K- 16 ms Processing 20 ms > Form Movement CARD PUNCHING 250 CARDS PER MINUTE (Assume that operation code "4" was given during previous cycle) < 240 ms 37 ms' Punch Start Time ■*+*■ - 180.5 ms Punching *!■ The Punch Start Time may be used as Process Time if the "Punch Release" Option is employed. i 22.5 ms Processing Time FIGURE 59. 1401 TIMINGS 61 Magnetic Tape unit control u .0115 [Li+1] + tape movement time 1. Time for tape instructions is .108 milliseconds. 2. Tape operations (times expressed in milliseconds) TAPE READ, WRITE 729 Model II: 10.8 + CN ms. 729 Model IV: 7.3 + CN ms. REWIND 729 Model II: 1.2 minutes/reel 729 Model IV: .9 minutes/reel erase forward (add to subsequent write time)* 729 Model II: 108 ms. 729 Model IV: 72 ms. * leaves about 8" between records backspace (after read) 729 Model II: 46.4 + CN ms. 729 Model IV: 32.6 + CN ms. backspace (after write) 729 Model II: add 7.5 ms. to above 729 Model IV: add 5.0 ms. to above Note: C = Character rate, time in milliseconds per character. N = Total number of characters traversed for 729 II at 200 cpi. = .067 ms. at 556 cpi. = .024 ms. for 729 IV at 200 cpi. = .044 ms. at 556 cpi. = .016 ms. 1401 Operation Codes Op Codes Function Op Codes Function 1 Read M Move 2 Print N No Operation 3 Print-Read S Subtract 4 Punch u Unit Control (optional) 5 Read-Punch V Zone and Word Mark Test 6 Print-Punch w Bit Test (optional) 7 Print-Read-Punch Y Move Zone 8 Read-Release ( 'optional) Z Move-Zero Suppress 9 Punch Release (optional) @ Multiply (optional) A Add % Divide (optional) B Branch + Reset Add C Compare o Reset Subtract D Move Digit • Stop E Edit n Clear Word Mark F Forms Control / Clear K Stacker Select > Set Word Mark L Load 62 Index A-Address Register Light 39 A and B Auxiliary Registers 51 add 25 Addressing 20 Add-to-Storage Logic 8 Address Registers 21 Address Stop 41 Advanced Design 10 A-Light 39 Alter 40 Arithmetic 9 Arithmetic Operation 25 Arithmetic Operation Codes 25 Asterisk Protection 36 Auxiliary Console 41 B^A . 39 Backspace Key 51 Backspace Tape 50 B-Address Register Light 39 B-Light 39 Binary Coded Decimal 9 Bit 7 Bit Display Light 39 Bit Switches 41 Bit Test 53 Carriage Controls 43 Carriage Stop 42 Chaining Instructions 21 Character Code Charts 59 Character Display 40 Checking 9, 18 Checking Lights 39 Check Reset 39, 41, 42 Clear 32 Clear and Branch 32 Clear Storage Routine 55 Clear Word Mark 31 Coded Addresses in Storage 13 Column Binary Device 52 Compare 32 Console Keys, Lights and Switches 38 Console Keys, Lights and Switches for Tape System 51 Control Characters of Editing 34, 35 Constant Load Card 54 Data Flow 16, 46 Decimal Control 37 Divide 26 Division Sub-Routine 57 Edit 33 Editing 9, 33 Emergency off 39 End of Form 42 End of Reel Indicator Test 50 Enter 41 Erase Forward 50 Expanded Print Edit 36 Feed Clutch 43 Feed Knob 43 File Feed 13 Floating Dollar Sign 36 Forms Control 31 Forms Control and Branch 31 Forms Check 42 Fuse 42 Hole Count 9 Horizontal Adjustment 43 I-Address Register Light 39 ibm Card Systems 11 ibm 1401 Tape System 44 ibm 1402 Card Read Punch Operating Keys, Lights and Switches 42 ibm 1402 Card-Read Punch 13 ibm 1403 Printer 14 ibm 1403 Printer — Keys, Lights and Switches 43 I/EX 40 I/O Check Reset Switch 41 I/O Check Stop Switch 39 Input/Output Codes 23 Input/Output Operations 23 Input/Output Storage Assignments 20 Instruction Card 54 Instruction Format 19 Language 8 Load 30, 42 Loading Instructions 22 Load Magnetic Tape 49 Logic 9 Logic Block Light 39 Logic Operation Codes 28 Logic Operations 28 Magnetic Core Storage 7 Magnetic Storage 8 Magnetic Tape 46 Magnetic Tape Characteristics 46 Magnetic Tape Units 47 Manual Address Switches 40 Manual Carriage Control 43 Miscellaneous Operation Codes 31 Mode Switch 40 Move 29 Move and Load 29 Move and Scramble Column Binary 53 Move and Unscramble Column Binary 53 Move and Zero Suppress 30 Move Digit 30 Move-Magnetic Tape 49 Move Zone 30 Multiplication Sub-Routine 55 Multiply 26 No-Bit 7 No Operation 32 63 Non-Process Runout Punch 42 Non-Process Runout Read 42 Parity 9 Parity Check 18 Physical Features 12 Polarity 7 Power Off 38 Power On 38 Power On Light 42 Print 23 Print and Branch 23 Print and Punch 24 Print Check 43 Print Controls 42 Print, Read, Punch, Branch 24 Print, Punch, and Branch 24 Print, Read, and Branch 23, 24 Print and Read 23 Print Storage 15 Print Unit Release Lever 43 Print Word Marks and Branch 23 Printer Display 41 Printing Method 16 Process Check Stop 41 Program 6 Program Loading Routine 54 Punch 24 Punch and Branch 24 Punch Check 42 Punch Column Binary 52 Punch Display 41 Punch Interlock 41 Punch Release 24 Punch Stop 42 Punch Switch 42 Read 23 Read and Branch 23 Read and Punch 24 Read Check . 42 Read Column Binary 52 Read Column Binary and Branch 52 Read Release 24 Read Tape Binary 53 Reader Stop 42 Ready 43 Reading Stations 13 Reset Add 26 Reset Subtract 26 Restore Key 43 Rewind Tape 50 Rules of Editing 34, 35 Run 40, 41 Set Word Mark 30 Sign Control Left 36 Single Cycle Key 43 Single Cycle Non-Process 40 Solid State Circuitry 9 Space Key 43 Stacker 14, 15, 42 Stacker Select 31 Stacker Select and Branch 32 Start 42 Start Key 38 Start Reset Key 39 Stop 32, 39, 42 Stop and Branch 32 Storage Address Display 39 Storage Address Lights 39 Storage Cycle 21 Storage Light 39 Storage Print Out 40 Storage Scan 41 Stored Program Concept 6 Stored Programming 7, 19 Subtract 26 Sync Check-Printer 43 Tape Instructions 48 Tape Load 51 Tape Read 49 Tape Select 51 Tape Sorting 50 Tape Transmission Error Test 50 Tape Write 49 Test and Branch 28, 50 Test Character and Branch 28 Testing Condition 50 Test for Zone or Word Mark and Branch 29 Test High Low or Equal Compare 51 Timings 60, 61, 62 Trailer Card 54 Unconditional Branch 28 Unit Control 50 Validity 9, 42 Validity Check 18 Variable Length Instructions 19 Variable Word Length 13 Vernier Knob (Horizontal) 43 Vernier Knob (Vertical) 43 Word Marks 18 Words 13 Write Tape Binary 53 Write Tape Mark 50 Sense Switches 40 Zero Suppression 34 64 (2-60:20M-VO)