- IBM 1130
The IBM 1130 Computing System was introduced in
1965 . It wasIBM 's least-expensivecomputer to date, and was aimed at price-sensitive, computing-intensive technical markets like education and engineering. TheIBM 1800 was aprocess control variant of the 1130 with two extra instructions (CMP and DCM) and extra I/O capabilities.Description
The 1130 became quite popular, and the 1130 and its non-IBM clones gave many people their first feel of "personal computing." Though its price-performance ratio was good and it notably included inexpensive
disk storage , it otherwise broke no new ground technically. The 1130 holds a place in computing history primarily because of the fondness its former users hold for it.The IBM 1130 used
System/360 electronics packaging calledSolid Logic Technology (SLT) and had a16-bit binary architecture, not very different from laterminicomputer s like thePDP-11 orData General Nova . Theaddress space was 15 bits, limiting the 1130 to 32K 16-bit words ofcore memory . Both direct and indirect addressing capabilities were implemented. Amazing loops were possible.Much programming was done in
Fortran . The 1130 Fortrancompiler could run on a machine with only 4K words of core. That's 8kilobytes , the minimum file allocation on many PC's. To maximize speed and conserve space, the operating system and compilers were written entirely inassembly language , and employed techniques seen less frequently today including tight integration of code and data as well asself-modifying code .Other programming languages available on the 1130 included: APL [cite journal|url=http://www.vector.org.uk/archive/v223/APL_1130.htm|title=How We Got To APL1130|author=Larry Breed|authorlink=Larry Breed|journal=Vector (British APL Association)|volume=22|issue=3|month=August | year=2006|id=ISSN|0955-1433 ] , BASIC,
COBOL , FORTH, PL/I and RPG.Eastern Michigan University developed a Fortran IV compiler for the 1130, known as Fortran-EMU, that fixed a detail in IBM´s compiler: the lack of LOGICAL data type. The basic 1130 came with anIBM 2310 disk drive. These read pizza-box-sized 2315 single platter cartridges that held 512 K words or 1 M byte (less than a 3.5" floppy). Disk memory was used to store the operating system, object code, and data, but not source code. The last was kept onpunch card s. Thedisk operating system was called DMS or DM2 (for Disk Monitor System, Release 2).Other available peripherals included the
IBM 1132 andIBM 1403 lineprinter s, theIBM 1442 card reader/punch, theIBM 2311 Disk Drive, theIBM 2250 Graphic Display Unit and theIBM 1627 drum plotter. The plotter was very useful for engineering work. The console typewriter used an IBMSelectric mechanism, which meant one could change the type by replacing a hollow, golf-ball sized type element. There was a special type element available for APL, a powerful array-oriented programming language using a special symbolic notation.The IBM 1130 MTCA, for "Multiple Terminal Control Adapter", was announced late in the 1130s product life; it allowed up to four 2741 terminals to be connected to an IBM 1130, for use with APL.
A standard 1130 had a 3.6 microsecond memory cycle time, with a more expensive model equipped with 2.2 µs memory cycle time. (You could use the latter with a 1403 printer connected through a 1133 multiplexer.) To further tap the low end of the market, IBM introduced the 1130 Model 4, with a 5.6 µs cycle time - at a lower price of course. The Model 4's 1132 printer was derated as well, but the slower CPU still could not keep up with it. (The 1132 used the CPU to determine when to fire the print wheels as they rotated, a very compute intensive function.) Careful readers of the 1130 hardware manual discovered that when the printer
interrupt level (4) was on, the 1130 Model 4 ran at the faster 3.6 us cycle time. Some users of the Model 4 would write a phony printer driver that turned on level 4 and left it on. They would call this driver when running a compute-intensive job and write their output to disk, the printer being unusable, of course. When done, they'd run a normal program to print their output.IBM 1130 Models
IBM implemented five models of the 1131 Central Processing Unit which was the primary processing component of the IBM 1130 Computing Systems.
The
IBM 1800 was a variant of theIBM 1130 with additional features for process control applications. Just as theIBM 1130 was a successor to theIBM 1620 , theIBM 1800 was a successor to theIBM 1710 Chronology
* Feb. 11, 1965 - IBM introduces the 1130 (Models A1, A2, B1 and B2). Also announced is the IBM 1132 printer, the lowest cost online computer printer ever announced by IBM at that time.
* Fourth Quarter 1965 - First customer shipments begin from the San Jose plant.
* August 9, 1966 - IBM rolls out the 1130 synchronous communications adapter, which permits the small 1130 system to be connected by regular leased telephone lines to, and function as a communications terminal for, any model of the IBM System/360.
* April 17, 1967 - A four-way expansion of the 1130 is announced (Models B3, C2, C3, D2 and D3), involving:
** five times the disk storage and four times the magnetic core memory size;
** an additional processing speed almost 40 percent faster than previously available;
** More and faster peripheral equipment, including an optical mark reader;
** an improved commercial programing package.
* January 1968 - First shipments begin of the 1130 Models B3, C2, C3, D2 and D3.
* July 1968 - The Boca Raton plant begins shipping the 1130.
* July 22, 1971 - 1130 Models 4A and 4B are introduced at new levels of economy.
* September 1971 - First customer shipments begin of the 1130 Model 4.
* May 31, 1972 - Models 1C, 1D, 5B, 5C and 5D are announced.Trivia
*
Brian Utley was the 1130s Project Manager during its development and introduction. Brian said at the third 11/30 party that before IBM Marketing named the 1130 it was known as the Small Engineering Computer System or SECS. [cite web|url=http://mail.computerhistory.org/pipermail/inforoots/2006-October/001138.html|title=Origin of the IBM 1130 Name|first=Brian|last=Utley|date=2006-10-30 |accessdate=2007-01-16] The initial architecture was 18 bits but was changed to 16 bits due to the influence of theSystem/360 development. The full dialogue of his 2005 presentation is available [http://ibm1130.org/party/v03 at IBM1130.Org] .*Notable software designer
Grady Booch got his first exposure to programming on an IBM 1130: [cite web|url=http://www-106.ibm.com/developerworks/library/i-booch/ Quote from interview|title=Grady Booch polishes his crystal ball|first=Grady|last=Booch|authorlink=Grady Booch|date=2003-04-03 |publisher=IBM accessdate=2007-01-16]... I pounded the doors at the local IBM sales office until a salesman took pity on me. After we chatted for a while, he handed me a Fortran [manual] . I'm sure he gave it to me thinking, "I'll never hear from this kid again." I returned the following week saying, "This is really cool. I've read the whole thing and have written a small program. Where can I find a computer?" The fellow, to my delight, found me programming time on an IBM 1130 on weekends and late-evening hours. That was my first programming experience, and I must thank that anonymous IBM salesman for launching my career. Thank you, IBM.
*
LISP guruGuy Steele wrote a LISP interpreter for the IBM 1130 when he was in high school (Boston Latin School, which had an IBM 1130 for student use) [cite web|url=http://www.ddj.com/dept/architect/184406382|title=Thoughts on Language Design -- New challenges require new solutions|first=Guy L., Jr.|last=Steele|authorlink=Guy L. Steele, Jr.|date=2005-11-24 |publisher=Dr. Dobb's Journal |accessdate=2006-01-16] [cite web|url=http://www.ccil.org/jargon/jargon.html|title=Confessions of a Happy Hacker|first=Guy L., Jr.|last=Steele|authorlink=Guy L. Steele, Jr.|accessdate=2006-01-16]*Chuck Moore wanted to call his new language "Fourth" but the IBM 1130 operating system was limited to five character names, so it wound up being called FORTH. [cite web|url=http://www.forth.com/resources/evolution/evolve_0.html|title=The Evolution of Forth|first=Elizabeth|last=Rather|coauthors=Colburn, Donald and Moore, Charles|month=March|year=1993|accessdate=2007-01-16]
*
Dan Bricklin creator of theVisiCalc program got his start in programming when he learned and used the IBM 1130 as part of the National Science Foundation Computer/Math Summer Project for high school students, given at the University of Pennsylvania in 1966. [cite web|url=http://www.danbricklin.com/log/2002_08_23.htm|title=Memories while visiting the Bay Area and the Computer History Museum|date=2002-08-23 |first=Dan|last=Bricklin|authorlink=Dan Bricklin|accessdate=2007-01-16]*An IBM 1130 with 8 kilowords of core was used for the world's first full-time
Search for Extraterrestrial Intelligence research at The Ohio State University Radio Observatory. [cite web|url=http://www.bigear.org/oldseti.htm|title=SETI in the 1970s|first=Bob|last=Dixon|date=2005-08-13 |publisher=The Big Ear |accessdate=2007-01-16]*
Charles Goldfarb , the father ofSGML , describes a job installing a typesetting system based on an IBM 1130 that "eventually changed my career", driving him towards generic markup: [cite web|url=http://www.sgmlsource.com/history/roots.htm|title=The Roots of SGML -- A Personal Recollection|first=Charles|last=Goldfarb|authorlink=Charles Goldfarb|year=1996|accessdate=2007-01-16]The system was an IBM 1130 computer, a machine the size of a desk with 8KB (sic!) of main memory, a 512KB disk drive, a Teletype CX paper tape reader and BRPE paper tape punch, and a Photon 713 photomechanical typesetter. The assignment was my first experience with managing a machine-readable document database: I learned to roll the punched paper tape carefully so that it could be stored neatly in cylindrical waste paper baskets. In the meantime, though I didn't know about it, the roots of generalized markup were being planted. Historically, electronic manuscripts contained control codes or macros that caused the document to be formatted in a particular way ("specific coding"). In contrast, generic coding, which began in the late 1960s, uses descriptive tags (for example, "heading", rather than "format-17").
*There was an urban legend at the time of introduction that since it was a small scientific machine, the model number of the IBM 1130 was obtained from multiplying the model number of the
IBM 360 byπ .*There was an early version of the operating system which had the unique feature that the file headers when written by either FORTRAN and early RPG compiler were not compatible. Before using the other language, the file had to be copied.
Instruction set overview
Main Registers:IAR = Instruction Address RegisterACC = AccumulatorEXT = Extension RegisterXRx = Index Registers x = 1,2,31130 Instruction Set Mnemonics:LD = Load ACC STO = Store ACCLDD = Load Double (ACC & EXT) STD = Store Double (ACC & EXT)LDX = Load Index STX = Store IndexLDS = Load Status STS = Store StatusA = Add ACC AD = Add DoubleS = Subtract ACC SD = Subtract DoubleM = Multiply D = DivideAND = Boolean And OR = Boolean OrXOR = Boolean Exclusive OrSLA = Shift Left ACC SLT = Shift Left ACC & EXTSLCA = Shift Left and Count ACC SLC = Shift Left and Count ACC & EXTSRA = Shift Right ACC SRT = Shift Right ACC & EXTRTE = Rotate Right ACC & EXT XCH = Exchange ACC and EXTMDM = Modify MemoryB = BranchBSC = Branch or Skip on Condition (Modifier dependent) i.e. BP BNP BN BNN BZ BNZ BC BO BODBSI = Branch and Store IARMDX = Modify Index and SkipWAIT = Halt NOP = No OperationXIO = Execute I/O
1800 Additional Instruction Mnemonics:CMP = Compare ACC DCM = Double Compare ACC & EXT
Short instruction format (one 16 bit word): 1Bits 0...45678......5 OP---FTTDisp----
OP is OperationF is format 0 = ShortTT is TagDisp is Displacement
Long instruction format (two 16 bit words): 1 1Bits 0...456789.....50..............5 OP---FTTIMod----Address---------
OP is OperationF is format 1 = LongTT is TagI is Indirect bitMod is Modifier
Effective Address Calulation (EA): F = 0 | F = 1, I = 0 | F = 1, I = 1 Direct Addressing| Direct Addressing| Indirect Addressing-------------------------------------------------------------------TT = 00 | EA = Displ + IAR | EA = Add | EA = C/AddTT = 01 | EA = Displ + XR1 | EA = Add + XR1 | EA = C/Add + XR1TT = 10 | EA = Displ + XR2 | EA = Add + XR2 | EA = C/Add + XR2TT = 11 | EA = Displ + XR3 | EA = Add + XR2 | EA = C/Add + XR3------------------------------------------------------------------- Disp = Contents of displacement field Add = Contents of address field of instruction C = Contents of location specified by Add or Add + XR
Programming Examples
The examples can be executed on the IBM 1130 emulator available at [http://ibm1130.org/ IBM 1130.org] .
ample Assembler program deck
The following listing shows a card deck that compiles and runs an Assembler program that lists a deck of cards to the line printer.
The following code Copyright (c) 2006 Kym Farnik. Code published under MIT license. See: http://www.opensource.org/licenses/mit-license.php// JOB // ASM *LIST * LCARD.ASM - LIST A DECK OF CARDS TO LINE PRINTER * * COPYRIGHT (C) 2006 KYM FARNIK. * CODE PUBLISHED UNDER MIT LICENSE. * * PROGRAM * NEW PAGE ON PRINTER * A READ A CARD * CONVERT FORMAT * PRINT A LINE ON PRINTER * GOTO A * START LIBF PRNT1 GOTO NEW PAGE ON 1132 DC /3100 PRINTER CHANNEL 1-NEW PAGE * NEXTC LIBF CARD0 READ FROM 1442 CARD READER DC /1000 CONTROL TO READ DC CBUFF STORE 80 COLUMNS CINP LIBF CARD0 DC 0 B CINP LOOP UNTIL CARD IS READ * LIBF ZIPCO CONVERT CARD TO PRINTER DC /1100 UNPACKED IN, PACKED OUT DC CBUFF+1 INPUT BUFFER DC PBUFF+1 OUTPUT BUFFER DC 80 CHARACTER COUNT CALL HLEBC HOLLERITH TO EBCDIC * LIBF PRNT1 PRINT 80 CHARACTERS DC /2000 CONTROL CODE TO PRINT DC PBUFF PRINT BUFFER DC PERR PRINT ERROR POUT LIBF PRNT1 CHECK FOR PRINT COMPLETE DC 0 B POUT LOOP UNTIL COMPLETE * B NEXTC READ NEXT CARD * * DATA * CBUFF DC 80 80 COLUMNS PER CARD BSS 80 * PBUFF DC 40 40 WORDS 80 CHARACTERS BSS 40 * PERR DC 0 B I PERR THIS RETURNS TO THE * PRINTER ERROR HANDLER * WHICH WILL TERMINATE THE PROGRAM * END START PROGRAM ENTRY POINT // XEQ TEST DATA 1 HELLO WORLD TEST DATA 2ample Fortran IV program deck
The following listing shows a card deck that compiles and runs a
Fortran program and Fortransubroutine for the IBM 1130 when running DM2.
The following code Copyright (c) 2005 Kym Farnik. Code published under MIT license. See: http://www.opensource.org/licenses/mit-license.php// JOB // FOR *LIST SOURCE PROGRAM *ONE WORD INTEGERS C------------------------------------------------------- C COMPUTE THE CRITICAL VALUES FOR A QUADRATIC EQN C 0=A*X**2+B*X+C C RETURNS DISCRIMINANT, ROOTS, VERTEX, FOCAL LENGTH, FOCAL POINT C X1 AND X2 ARE THE ROOTS C------------------------------------------------------- SUBROUTINE QUADR(A,B,C,DISCR,X1,X2,VX,VY,FL,FPY) REAL A,B,C,DISCR,X1,X2,VX,VY,FL,FPYC DISCRIMINANT, VERTEX, FOCAL LENGTH, FOCAL POINT Y DISCR = B**2.0 - 4.0*A*C VX = -B / (2.0*A) VY = A*VX**2.0 + B*VX + C FL = 1.0 / (A * 4.0) FPY = VY + FL FL = ABS(FL)
C COMPUTE THE ROOTS BASED ON THE DISCRIMINANT IF(DISCR) 110,120,130
C -VE DISCRIMINANT, TWO COMPLEX ROOTS, R
">C +VE DISCRIMINANT, TWO REAL ROOTS 130 X1 = (-B + SQRT(DISCR)) / (2.0*A) X2 = (-B - SQRT(DISCR)) / (2.0*A) RETURN C C NEXT STORE SUBROUTINE ON DISK USING DUP END // DUP *DELETE QUADR *STORE WS UA QUADR // JOB // FOR *LIST SOURCE PROGRAM *IOCS(CARD,1132 PRINTER) *ONE WORD INTEGERS C------------------------------------------------------- C PROCESS DATA CARDS WITH A,B,C C UNTIL A=0 C-------------------------------------------------------
DATA ICARD,IPRT /2,3/ REAL A,B,C REAL DISCR,XR1,XR2,VX,VY,FL,FPY
WRITE(IPRT,901) 901 FORMAT(' ------------------------------------------------------')
C READ A B C, IF A=0 THEN EXIT 100 READ(ICARD,801)A,B,C 801 FORMAT(3F8.3)
C EXIT WHEN A IS ZERO IF (A) 110,9000,110
C PRINT A B C 110 WRITE(IPRT,902)A,B,C 902 FORMAT(' QUADRATIC A=',F8.3,' B=',F8.3,' C=',F8.3)
C COMPUTE AND PRINT THE CRITICAL VALUES CALL QUADR(A,B,C,DISCR,XR1,XR2,VX,VY,FL,FPY) WRITE(IPRT,903) DISCR 903 FORMAT(' DISCRIMINANT=',F9.4) WRITE(IPRT,904) VX,VY 904 FORMAT(' VERTEX X=',F9.4,' Y=',F9.4) WRITE(IPRT,905) FL 905 FORMAT(' FOCAL LENGTH=',F9.4) WRITE(IPRT,906) VX,FPY 906 FORMAT(' FOCAL POINT X=',F9.4,' Y='F9.4)
IF (DISCR) 120,130,140
C -VE DISCRIMINANT, TWO COMPLEX ROOTS 120 WRITE(IPRT,913) XR1, XR2 913 FORMAT(' COMPLEX ROOTS =(',F9.4,' +/-',F9.4,'I)') GO TO 200 C ZERO DISCRIMINANT, ONE REAL ROOT 130 WRITE(IPRT,912) XR1 912 FORMAT(' ROOT X =',F9.4) GO TO 200
C +VE DISCRIMINANT, TWO REAL ROOTS 140 WRITE(IPRT,911) XR1, XR2 911 FORMAT(' ROOTS X1=',F9.4,' X2=',F9.4) C --- GO TO 200
C END OF QUAD 200 WRITE(IPRT,901) GO TO 100
C END OF PROGRAM C DATA FOLLOWS XEQ CARD 9000 CALL EXIT END // XEQ +001.000+000.000+000.000 +001.000+002.000+003.000 +002.000+002.000+000.000 +002.000+000.000-004.000 +000.500+000.000-004.000 +000.250+002.000-002.000 -004.000+000.000-004.000 +002.730-007.200-003.750 +000.000+000.000+000.000
ample APL 1130 session
The following image shows a simple APL 1130 session. This session was performed via the 1130 simulator available from [http://ibm1130.org/ IBM 1130.org]
The above session shows a signon, addition of the integers 1 to 100, generation of an addition table for the integers 1..5 and a sign off.ee also
*
IBM mainframe
*List of IBM products References
External links
* [http://www-03.ibm.com/ibm/history/exhibits/1130/1130_intro.html IBM Archive: IBM 1130] press releases, chronology, photos, facts folder.
* [http://ibm1130.org/ IBM 1130.org] Norm Aleks and Brian Knittel site which has significant information about the 1130 and a downloadable simulator that supports the DMS R2V12 and APL environments.
* [http://www.ibm1130.net/ www.ibm1130.net] is Howard Shubs' site dedicated to the 1130.
* [http://world.std.com/~reinhold/dir/computer-history.html#IBM-1130 Arnold Reinhold's personal account of the 1130. Text from here has been incorporated into this article with permission]
* [http://computer-refuge.org/bitsavers/pdf/ibm/1130/ A set of PDFs made up of scanned IBM 1130 manuals]
* [http://www.users.on.net/~farnik/wikicgi/wiki.pl?RetroComputing Kym Farnik's page on Retro Computing specifically the 1130]
* [http://davidnewall.com/angle-park.html A discussion about the (then) Angle Park computing centre which was equipped with IBM 1130's]
* [http://www.dvq.com/1130/1130.htm Bob Rosenbloom's IBM 1130 Photos]
Wikimedia Foundation. 2010.