IBM 1130

Missing image
IBM1130_user1.jpg
IBM 1130 Operator loading a disk

fr:IBM 1130 et 1800 The IBM 1130 Computing System was introduced in 1965. It was IBM's least-expensive computer to date, and was aimed at price-sensitive, computing-intensive technical markets like education and engineering. The IBM 1800 was a process control variant of the 1130 with two extra instructions (CMP and DCM) and extra I/O capabilities.

Contents

Description

Missing image
Ibm_1130_at_osaka.jpg
IBM 1130 at the Osaka 1970 World's Fair

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 technology (SLT – Solid Logic Technology) and had a 16-bit binary architecture, not very different from later minicomputers like the PDP-11 or Data General Nova. The address space was 15 bits, limiting the 1130 to 32K 16-bit words of core memory. Both direct and indirect addressing capabilities were implemented. Amazing loops were possible.

Much programming was done in Fortran. The 1130 Fortran compiler could run on a machine with only 4K words of core. That's 8 kilobytes, the minimum file size on many PC's. Eastern Michigan University developed a Fortran IV compiler for the 1130.

The basic 1130 came with an IBM 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 on punch cards. The disk operating system was called DMS or DM2 (for Disk Monitor System, Release 2).

Other available peripherals included the IBM 1132 and IBM 1403 lineprinters, the IBM 1442 card reader/punch, the IBM 1311 Disk Drive and the IBM 1627 drum plotter. The plotter was very useful for engineering work. The console typewriter used an IBM Selectric 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.

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.

Trivia

Notable software designer Grady Booch got his first exposure to programming on an IBM 1130. Quote from interview (http://www-106.ibm.com/developerworks/library/i-booch/):

... 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.

Instruction set overview

Main Registers:
IAR = Instruction Address Register
ACC = Accumulator
EXT = Extension Register
XRx = Index Registers x = 1,2,3

1130 Instruction Set Mnemonics:
LD   = Load ACC                   STO  = Store ACC
LDD  = Load Double (ACC & EXT)    STD  = Store Double (ACC & EXT)
LDX  = Load Index                 STX  = Store Index
LDS  = Load Status                STS  = Store Status
A    = Add ACC                    AD   = Add Double
S    = Subtract ACC               SD   = Subtract Double
M    = Multiply                   D    = Divide
AND  = Boolean And                OR   = Boolean Or
XOR  = Boolean Exclusive Or
SLA  = Shift Left ACC             SLT  = Shift Left ACC & EXT
SLCA = Shift Left and Count ACC   SLC  = Shift Left and Count ACC & EXT
SRA  = Shift Right ACC            SRT  = Shift Right ACC & EXT
RTE  = Rotate Right ACC & EXT     XCH  = Exchange ACC and EXT
MDM  = Modify Memory
B    = Branch
BSC  = Branch or Skip on Condition (Modifier dependant)
       i.e. BP BNP BN BNN BZ BNZ BC BO BOD
BSI  = Branch and Store IAR
MDX  = Modify Index and Skip
WAIT = Halt                       NOP  = No Operation
XIO  = Execute I/O

1800 Additional Instruction Mnemonics:
CMP  = Compare ACC                DCM  = Double Compare ACC & EXT

Short instruction format (one 16 bit word):
                       1
Bits    0...45678......5
        OP---FTTDisp----

OP    is Operation
F     is format 0 = Short
TT    is Tag
Disp  is Displacement

Long instruction format (two 16 bit words):
                       1               1
Bits    0...456789.....50..............5
        OP---FTTIMod----Address---------

OP    is Operation
F     is format 1 = Long
TT    is Tag
I     is Indirect bit
Mod   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/Add
TT = 01 | EA = Displ + XR1 | EA = Add + XR1   | EA = C/Add + XR1
TT = 10 | EA = Displ + XR2 | EA = Add + XR2   | EA = C/Add + XR2
TT = 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

Sample APL \ 1130 session

The following image shows a simple APL \ 1130 session. This session was performed via the 1130 simulator available from IBM 1130.org (http://ibm1130.org/)
Missing image
Ibm1130_apl.jpg
apl \ 1130 apl \ 1130 sample session


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.

Sample Fortran IV program deck

The following listing shows a card deck that compiles and runs a Fortran program and Fortran subroutine 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 CRITIAL VALUES FOR A QUADRAITIC 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,FPY

C 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, REAL=X1, IMG=+/-X2
110   X1 = -B / (2.0*A)
      X2 = SQRT(-DISCR) / (2.0*A)
      RETURN
      
C ZERO DISCRIMINANT, ONE REAL ROOT
120   X1 = -B / (2.0*A)
      X2 = X1
      RETURN 

C +VE DISCRIMINANTE, 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 DISCRIMINAT, 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

See also

External links

Navigation

  • Art and Cultures
    • Art (https://academickids.com/encyclopedia/index.php/Art)
    • Architecture (https://academickids.com/encyclopedia/index.php/Architecture)
    • Cultures (https://www.academickids.com/encyclopedia/index.php/Cultures)
    • Music (https://www.academickids.com/encyclopedia/index.php/Music)
    • Musical Instruments (http://academickids.com/encyclopedia/index.php/List_of_musical_instruments)
  • Biographies (http://www.academickids.com/encyclopedia/index.php/Biographies)
  • Clipart (http://www.academickids.com/encyclopedia/index.php/Clipart)
  • Geography (http://www.academickids.com/encyclopedia/index.php/Geography)
    • Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
    • Maps (http://www.academickids.com/encyclopedia/index.php/Maps)
    • Flags (http://www.academickids.com/encyclopedia/index.php/Flags)
    • Continents (http://www.academickids.com/encyclopedia/index.php/Continents)
  • History (http://www.academickids.com/encyclopedia/index.php/History)
    • Ancient Civilizations (http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations)
    • Industrial Revolution (http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution)
    • Middle Ages (http://www.academickids.com/encyclopedia/index.php/Middle_Ages)
    • Prehistory (http://www.academickids.com/encyclopedia/index.php/Prehistory)
    • Renaissance (http://www.academickids.com/encyclopedia/index.php/Renaissance)
    • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
    • United States (http://www.academickids.com/encyclopedia/index.php/United_States)
    • Wars (http://www.academickids.com/encyclopedia/index.php/Wars)
    • World History (http://www.academickids.com/encyclopedia/index.php/History_of_the_world)
  • Human Body (http://www.academickids.com/encyclopedia/index.php/Human_Body)
  • Mathematics (http://www.academickids.com/encyclopedia/index.php/Mathematics)
  • Reference (http://www.academickids.com/encyclopedia/index.php/Reference)
  • Science (http://www.academickids.com/encyclopedia/index.php/Science)
    • Animals (http://www.academickids.com/encyclopedia/index.php/Animals)
    • Aviation (http://www.academickids.com/encyclopedia/index.php/Aviation)
    • Dinosaurs (http://www.academickids.com/encyclopedia/index.php/Dinosaurs)
    • Earth (http://www.academickids.com/encyclopedia/index.php/Earth)
    • Inventions (http://www.academickids.com/encyclopedia/index.php/Inventions)
    • Physical Science (http://www.academickids.com/encyclopedia/index.php/Physical_Science)
    • Plants (http://www.academickids.com/encyclopedia/index.php/Plants)
    • Scientists (http://www.academickids.com/encyclopedia/index.php/Scientists)
  • Social Studies (http://www.academickids.com/encyclopedia/index.php/Social_Studies)
    • Anthropology (http://www.academickids.com/encyclopedia/index.php/Anthropology)
    • Economics (http://www.academickids.com/encyclopedia/index.php/Economics)
    • Government (http://www.academickids.com/encyclopedia/index.php/Government)
    • Religion (http://www.academickids.com/encyclopedia/index.php/Religion)
    • Holidays (http://www.academickids.com/encyclopedia/index.php/Holidays)
  • Space and Astronomy
    • Solar System (http://www.academickids.com/encyclopedia/index.php/Solar_System)
    • Planets (http://www.academickids.com/encyclopedia/index.php/Planets)
  • Sports (http://www.academickids.com/encyclopedia/index.php/Sports)
  • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
  • Weather (http://www.academickids.com/encyclopedia/index.php/Weather)
  • US States (http://www.academickids.com/encyclopedia/index.php/US_States)

Information

  • Home Page (http://academickids.com/encyclopedia/index.php)
  • Contact Us (http://www.academickids.com/encyclopedia/index.php/Contactus)

  • Clip Art (http://classroomclipart.com)
Toolbox
Personal tools