|
Personally, I am incredibly grateful to all of the people involved with the Angle Park Computing Centre and the opportunities that it gave to Soth Australian high schools students in the 1970's. |
|
Personally, I am incredibly grateful to all of the people involved with the Angle Park Computing Centre and the opportunities that it gave to South Australian high schools students in the 1970's. |
![]() |
![]() |
|
Effective Address Calulation (EA): |
|
Effective Address Calculation (EA): |
In 1971 Peter (Jock) Smythe, my maths teacher, taught us [BASIC] which was processed using optical mark recognition (OMR) cards, sent to Angle park overnight, and the cards and printout returned the next day; not exactly interactive! From this early beginning I was bitten by the computer bug. In 1972 I was taught [APL] on the IBM 1130; again using OMR cards; and if really lucky we got to use the console of the IBM 1130 for an interactive session. APL was used to enhance the teaching of mathematics. For maths and statistics, APL (invented by [Ken Iverson]) and its [descendant J] (also: [J Language]), are really excellent tools.
IBM had significant involvement at Angle Park via Jim Clementi. During the 70's various computing summer schools were run. The schools had students and teachers from all over the state and even some overseas visitors.
I managed to learn a little [FORTRAN] during one of the summer schools. Later the two Angle Park IBM 1130's were replaced by an [IBM System/370] [model 115]. Through the computing summer schools and evenings at Angle Park Computing Centre (thanks Jock) I ended up with career in Information Technology.
The IBM 1130 is special, not because of any great technological break through, but because of the large number of users who gained access to computers because of its accessibility. There is a generation of IT professionals here in South Australia due to the IBM 1130 and the Angle Park Computing Centre.
Personally, I am incredibly grateful to all of the people involved with the Angle Park Computing Centre and the opportunities that it gave to South Australian high schools students in the 1970's.
| IBM 1130 | |
| |
| IBM 1442 Card Read-Punch | IBM 1132 Line Printer |
| |
This is a simple version of Conway's game of life

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 dependent)
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 Calculation (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
PAGE 1
// JOB
LOG DRIVE CART SPEC CART AVAIL PHY DRIVE
0000 1234 1234 0000
V2 M12 ACTUAL 32K CONFIG 32K
// 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
FEATURES SUPPORTED
ONE WORD INTEGERS
CORE REQUIREMENTS FOR QUADR
COMMON 0 VARIABLES 4 PROGRAM 228
RELATIVE ENTRY POINT ADDRESS IS 000A (HEX)
END OF COMPILATION
// DUP
PAGE 2
*DELETE QUADR
CART ID 1234 DB ADDR 209B DB CNT 0012
*STORE WS UA QUADR
CART ID 1234 DB ADDR 209B DB CNT 0012
PAGE 1
// JOB
LOG DRIVE CART SPEC CART AVAIL PHY DRIVE
0000 1234 1234 0000
V2 M12 ACTUAL 32K CONFIG 32K
// 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
PAGE 2
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
FEATURES SUPPORTED
ONE WORD INTEGERS
IOCS
CORE REQUIREMENTS FOR
COMMON 0 VARIABLES 22 PROGRAM 270
END OF COMPILATION
// XEQ
------------------------------------------------------
QUADRATIC A= 1.000 B= 0.000 C= 0.000
DISCRIMINANT= 0.0000
VERTEX X= 0.0000 Y= 0.0000
FOCAL LENGTH= 0.2500
FOCAL POINT X= 0.0000 Y= 0.2500
ROOT X = 0.0000
------------------------------------------------------
QUADRATIC A= 1.000 B= 2.000 C= 3.000
DISCRIMINANT= -8.0000
VERTEX X= -1.0000 Y= 2.0000
FOCAL LENGTH= 0.2500
FOCAL POINT X= -1.0000 Y= 2.2500
COMPLEX ROOTS =( -1.0000 +/- 1.4142I)
------------------------------------------------------
QUADRATIC A= 2.000 B= 2.000 C= 0.000
DISCRIMINANT= 3.9999
VERTEX X= -0.5000 Y= -0.5000
FOCAL LENGTH= 0.1250
FOCAL POINT X= -0.5000 Y= -0.3750
ROOTS X1= -0.0000 X2= -1.0000
------------------------------------------------------
QUADRATIC A= 2.000 B= 0.000 C= -4.000
DISCRIMINANT= 32.0000
VERTEX X= 0.0000 Y= -4.0000
FOCAL LENGTH= 0.1250
FOCAL POINT X= 0.0000 Y= -3.8750
ROOTS X1= 1.4142 X2= -1.4142
------------------------------------------------------
QUADRATIC A= 0.500 B= 0.000 C= -4.000
DISCRIMINANT= 8.0000
VERTEX X= 0.0000 Y= -4.0000
FOCAL LENGTH= 0.5000
FOCAL POINT X= 0.0000 Y= -3.5000
ROOTS X1= 2.8284 X2= -2.8284
------------------------------------------------------
QUADRATIC A= 0.250 B= 2.000 C= -2.000
DISCRIMINANT= 5.9999
VERTEX X= -4.0000 Y= -6.0000
FOCAL LENGTH= 1.0000
FOCAL POINT X= -4.0000 Y= -5.0000
ROOTS X1= 0.8989 X2= -8.8989
------------------------------------------------------
QUADRATIC A= -4.000 B= 0.000 C= -4.000
DISCRIMINANT= -64.0000
VERTEX X= 0.0000 Y= -4.0000
FOCAL LENGTH= 0.0625
FOCAL POINT X= 0.0000 Y= -4.0625
COMPLEX ROOTS =( 0.0000 +/- -1.0000I)
------------------------------------------------------
QUADRATIC A= 2.730 B= -7.200 C= -3.750
DISCRIMINANT= 92.7899
VERTEX X= 1.3186 Y= -8.4972
FOCAL LENGTH= 0.0915
FOCAL POINT X= 1.3186 Y= -8.4056
ROOTS X1= 3.0829 X2= -0.4455
------------------------------------------------------