Typewriter input on Simulator

17 views
Skip to first unread message

Alistair Cooper

unread,
Jun 7, 2025, 12:36:43 PMJun 7
to IBM1130
I'm using the IBM1130-4.4.0_X86_64_GUI_O2 version of the simulator on window 11.

The problem I have is that whenever my Fortran program tries ro read from the Typewriter
(device 6) the system waits but when I type nothing happens.

I click on the window to make sure it's selected but nothing i type shows up.

Any idea to what I doing wrong?

Thanks in advance
Alistair Cooper

Carl Claunch

unread,
Jun 7, 2025, 12:55:01 PMJun 7
to IBM1130
In most cases, when you are doing anything with the console typewriter/keyboard, it is best to open a terminal program rather than trying to work within the simulator window. 

issue set telnet #### to the simulator, where #### is the port number you will open with your terminal emulator program (e.g. Putty). 
then issue set tto ansi to the simulator

start your terminal emulator program, it will connect to the simulator on localhost at port ####

To undo the use of the terminal emulator, issue:

set notelnet 
set tto noansi

Carl

Claudio Vincenzi - GMail

unread,
Jun 7, 2025, 2:41:46 PMJun 7
to ibm...@googlegroups.com
Hi Alistair

a quick test you can do to help determine what is happening: run a sample program that reads from KBD (LU 6) and writes to TTY (LUN 1): sample program #9: 
Type:
do boot
do for9 

You should be able to talk to the program using the keyboard:

+ [[ CPU RUNNING ]]

 8-O PROGRAMA FORTRAN NO IBM-1130
 --------------------------------
 8TH FORTRAN  PROGRAM ON IBM-1130
 --------------------------------
 ENTER THE AMOUNT OF VALUES (1-128).
 ENTER A ZERO TO EXIT.
5

 PLEASE, ENTER UP TO    5 INTEGER NUMBERS.
  ENTER A DOLLAR SIGN ($) TO QUIT.
  ENTER A SLASH ANYTIME TO END OF DATA.
7 7 8 8
9
  --  5 NUMBERS WERE READ --
 THE NUMBER     7 IS ODD,     3 IS ITS HALF,  AND     49 IS ITS SQUARE
 THE NUMBER     7 IS ODD,     3 IS ITS HALF,  AND     49 IS ITS SQUARE
 THE NUMBER     8 IS EVEN,    4 IS ITS HALF,  AND     64 IS ITS SQUARE
 THE NUMBER     8 IS EVEN,    4 IS ITS HALF,  AND     64 IS ITS SQUARE
 THE NUMBER     9 IS ODD,     4 IS ITS HALF,  AND     81 IS ITS SQUARE

 PLEASE, ENTER UP TO    5 INTEGER NUMBERS.
  ENTER A DOLLAR SIGN ($) TO QUIT.
  ENTER A SLASH ANYTIME TO END OF DATA.
0
$
 IT WAS NICE TALKING TO YOU. BYE.


+ [[ CPU STOPPING ]]
$
$ Stop due 'CPU WAIT', (stop code=01), CPU Wait for Program Start
$ -------- '--------', (------------), --------------------------
$ Stopped with: IAR: 0x002A SAR: 0x0029 SBR: 0x3000
$ Stopped   at: IAR: 0x0029 (0x0000 0x00 0x00 S               +0x00 (  +0))
$ Followed  by: IAR: 0x002A (0x4C80 0x09 BSC  I       0x0028  +0x00 (  +0))
$ Elapsed Time:  47s
$ ACC Code: 0x1000, intervention required on 1442 Card RP/P
$ ---------------------------------------------------------------

[Sat Jun 07 15:32:39 2025] sim>


--
IBM1130 discord channel: https://discord.gg/nrFEMt48mE
---
You received this message because you are subscribed to the Google Groups "IBM1130" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ibm1130+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ibm1130/bde1bb19-0eca-4964-bd59-0d715865ebc3n%40googlegroups.com.


--
Claudio Vincenzi

Claudio Vincenzi - GMail

unread,
Jun 7, 2025, 3:02:56 PMJun 7
to ibm...@googlegroups.com
Hi Carl

actually, the console devices have a slight different name in 4.4 SIM:

 tto --> tty
 tti --> kbd

The telnet connection is a great idea to use the 1130 console in a more realistic way.

Thanks!  

Claudio

--
IBM1130 discord channel: https://discord.gg/nrFEMt48mE
---
You received this message because you are subscribed to the Google Groups "IBM1130" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ibm1130+u...@googlegroups.com.

Alistair Cooper

unread,
Jun 8, 2025, 8:18:28 AMJun 8
to ibm...@googlegroups.com
Thanks for that Carl.

I must be doing something wrong, however,  because the set tto ansi commands gives me a
$ [E096] Non-existent device message.

Any thoughts?

Alistair

--

Claudio Vincenzi - GMail

unread,
Jun 8, 2025, 9:42:23 AMJun 8
to ibm...@googlegroups.com, Alistair Cooper, Carl Claunch
Hi Alistair

actually, the console devices have a slight different name in 4.4 SIM:

 tto --> tty
 tti --> kbd

The telnet connection is a great idea to use the 1130 console in a more realistic way.
Do you mind sharing the Fortran code you are using?

Thanks
Claudio
--
Claudio Vincenzi

Alistair Cooper

unread,
Jun 10, 2025, 6:47:55 AMJun 10
to Claudio Vincenzi - GMail, ibm...@googlegroups.com, Carl Claunch
Hi Claudio,

Thanks for that, tty works fine now.
I still can't get the Putty terminal to work though.
The simulator connects, and when I get to the input nothing appears on the terminal and still doesn't accept input.

My code is below, remember I wrote this in 1971 as an 18 year old rookie, so it is messy.

Alistair

// JOB
// FOR
*IOCS(CARD,TYPEWRITER,KEYBOARD,1132 PRINTER,DISK)
*LIST ALL
*ONE WORD INTEGERS
*NAME MATRX
** MATRXBOOT DSK0 MAINLINE PROGRAM

      INTEGER P
      INTEGER S,Z(31)
      DIMENSION A(1000),AA(1000),B(31)
      IYFL=0

      READ(2,1)N
1     FORMAT(I2)
      WRITE(1,1)N

      WRITE(1,2)
2     FORMAT('TYPE IN ANY ODD INTEGER BETWEEN 01 AND 99')

      READ(6,3)IX
3     FORMAT(I2)
      WRITE(1,3)IX

      WRITE(1,6)
6     FORMAT('TYPE IN LOW RESISTANCE VALUE')

      READ(2,7)VAL
7     FORMAT(F10.5)
      WRITE(1,7)VAL

      IN=N**2
      READ(2,4)(AA(I),I=1,IN)
4     FORMAT(20F4.1)
      WRITE(1,4)(AA(I),I=1,IN)

      READ(2,4)(B(K),K=1,N)
      WRITE(1,4)(B(K),K=1,N)

      S=0
60    S=S+1
      IF (S-1)80,89,80
80    IF (S-31)10,10,100

10    CALL RANDU (IX,IY,YFL)
11    FORMAT(I6)
      WRITE(1,11)IX
      WRITE(1,11)IY
      WRITE(1,7)YFL

      IX=IY
      YFL=YFL*(N-1)+1
      IYFL=IFIX(YFL)
      WRITE(1,11)IYFL
      J=0
30    J=J+1
      IF (J-S)20,70,20
20    IF (Z(J)-IYFL) 30,80,30
70    Z(S)=IYFL
      M=((IYFL-1)*31)+11
      P=M+20
      DO 50 L=M,P
      IF (AA(L)) 52,50,51
51    AA(L)=VAL
      GO TO 50
52    AA(L)=-VAL
50    CONTINUE
89    DO 90 I=1,IN
90    A(I)=AA(I)

      CALL SIMQ (A,B,N,KS)
 
      C=B(31)
      RES=1/C
      DO 56 I=1,30
56    B(I)=0.
      B(31)=1.
      WRITE(1,5)S,IYFL,C,RES
5     FORMAT(/'STEP NO. ',I2,' RESISTOR CUT IS NO. ',I2,'CURRENT DRAWN I
     1S'F10.2,/' AND TOTAL RESISTANCE OF LATICE IS ',F11.8,/)
      GO TO 60
100   WRITE(1,21)(Z(I),I=1,31)
21    FORMAT('ALL RESISTORS HAVE BEEN SHORTED'/'THE ORDER IN WHICH THEY    
     1WERE CUT WAS AS FOLLOWS....'//31I3)
      CALL EXIT
      END

// DUP
*DELETE         UA  MATRX
*STORE      WS  UA  MATRX

// XEQ MATRX
03
0.0001
2000.2 2000.2000 2000.2 2000.2 2000.2 2000.2 2000.2 2000.2 2000.2
3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0


Claudio Vincenzi - GMail

unread,
Jun 10, 2025, 7:17:10 PMJun 10
to Alistair Cooper, ibm...@googlegroups.com
Alistair

I run without the telnet server and it works fine. 
First, I stopped the telnet server - it was on for the previous run.

$ Console Telnet connection timed out
[Tue Jun 10 20:12:19 2025] sim> set notelnet
[Tue Jun 10 20:12:30 2025] sim> do boot
%  CR0, rewind successfull.
% DSK0, CR Boot: Jumping to address 0x0000 ...
+ [[ CPU RUNNING ]]

PAGE   1

// JOB    1234

LOG DRIVE   CART SPEC   CART AVAIL  PHY DRIVE
  0000        1234        1234        0000

V2 M12   ACTUAL 16K  CONFIG 16K


// FOR
*IOCS(CARD,TYPEWRITER,KEYBOARD,1132 PRINTER,DISK)
*LIST ALL
*ONE WORD INTEGERS
*NAME MATRX
** MATRXBOOT DSK0 MAINLINE PROGRAM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PAGE   2               MATRXBOOT DSK0 MAINLINE PROGRAM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

PAGE   3               MATRXBOOT DSK0 MAINLINE PROGRAM


50    CONTINUE
89    DO 90 I=1,IN
90    A(I)=AA(I)

      CALL SIMQ (A,B,N,KS)

      C=B(31)
      RES=1/C
      DO 56 I=1,30
56    B(I)=0.
      B(31)=1.
      WRITE(1,5)S,IYFL,C,RES
5     FORMAT(/'STEP NO. ',I2,' RESISTOR CUT IS NO. ',I2,'CURRENT DRAWN I
     1S'F10.2,/' AND TOTAL RESISTANCE OF LATICE IS ',F11.8,/)
      GO TO 60
100   WRITE(1,21)(Z(I),I=1,31)
21    FORMAT('ALL RESISTORS HAVE BEEN SHORTED'/'THE ORDER IN WHICH THEY
     1WERE CUT WAS AS FOLLOWS....'//31I3)
      CALL EXIT
      END
VARIABLE ALLOCATIONS
     A(R )=07CE-0000    AA(R )=0F9E-07D0     B(R )=0FDC-0FA0   VAL(R )=0FDE        YFL(R )=0FE0          C(R )=0FE2
   RES(R )=0FE4          P(I )=0FE8          S(I )=0FE9          Z(I )=1008-0FEA  IYFL(I )=1009          N(I )=100A
    IX(I )=100B         IN(I )=100C          I(I )=100D          K(I )=100E         IY(I )=100F          J(I )=1010
     M(I )=1011          L(I )=1012         KS(I )=1013

STATEMENT ALLOCATIONS
 1    =1022  2    =1024  3    =103B  6    =103D  7    =104D  4    =104F  11   =1052  5    =1054  21   =108A  60   =1166
 80   =1172  10   =1178  30   =11B2  20   =11BE  70   =11CB  51   =11F5  52   =1200  50   =120A  89   =1213  90   =1217
 56   =1240  100  =1266

FEATURES SUPPORTED
 ONE WORD INTEGERS
 IOCS

CALLED SUBPROGRAMS
 RANDU   SIMQ    FADD    FMPY    FDIV    FLD     FLDX    FSTO    FSTOX   FIXI    IFIX    FLOAT   TYPEZ   CARDZ   PRNTZ
 SRED    SWRT    SCOMP   SFIO    SIOFX   SIOIX   SIOF    SIOI    SUBSC   SNR     SDFIO

REAL CONSTANTS
  .000000E 00=1016    .100000E 01=1018

INTEGER CONSTANTS
     0=101A      2=101B      1=101C      6=101D     31=101E     11=101F     20=1020     30=1021

CORE REQUIREMENTS FOR MATRX
 COMMON      0  VARIABLES   4118  PROGRAM    616

END OF COMPILATION


// DUP

*DELETE         UA  MATRX
CART ID 1234   DB ADDR  2574   DB CNT   002A

*STORE      WS  UA  MATRX
CART ID 1234   DB ADDR  2574   DB CNT   002A

// XEQ MATRX
 3
type in any odd integer between 01 and 99
7
70
type in low resistance value
   0.00010
**** 0.2 0.0****20.0 0.2**** 0.2 0.0
 3.0 3.0 3.0

step no.  1 resistor cut is no.  0current drawn is      0.00
 and total resistance of latice is ***********

    70
   210
   0.02563
     1

step no.  2 resistor cut is no.  1current drawn is      1.00
 and total resistance of latice is  1.00000024

   210
   630
   0.07690
     1
   630
  1890
   0.23071
     1
  1890
  5670
   0.69213
     2

step no.  3 resistor cut is no.  2current drawn is      1.00
 and total resistance of latice is  1.00000024

  5670
 17010
   2.07641
     5

step no.  4 resistor cut is no.  5current drawn is      1.00
 and total resistance of latice is  1.00000024

 17010
-14506
  -1.77075
    -2
+ [*BREAK*]


+ [[ CPU STOPPING ]]
$
$ Stop due 'INV INSTRUCTION', (stop code=02), Invalid instruction found
$ -------- '---------------', (------------), -------------------------
$ Stopped with: IAR: 0x0052 SAR: 0x0051 SBR: 0x0000
$ Stopped   at: IAR: 0x0051 (0x0000 0x00 0x00 S               +0x00 (  +0))
$ Followed  by: IAR: 0x0052 (0xC0EB 0x18 LD   S               -0xEB ( -21))
$ Elapsed Time:  12s
$ ACC Code: 0xDD7B
[Tue Jun 10 20:12:45 2025] sim>



On Tue, Jun 10, 2025 at 8:05 PM Claudio Vincenzi - GMail <c.vin...@gmail.com> wrote:
Hi Alistair
your code looks fine! I guess most of us started programming on an IBM-1130 using Fortran when we were around 18.
It works on telnet console. Here is my terminal configuration:
PuTTY Configuration 10_06_2025 19_57_57.pngt

starting the sim console telnet server:

C__WINDOWS_system32_cmd.exe 10_06_2025 19_59_04.png

starting the job

C__WINDOWS_system32_cmd.exe 10_06_2025 20_01_37.png

as soon as the job starts, putty connects to telnet console. 
and as soon as MATRX starts executing, messages from the program are displayed

SHANNON - PuTTY 10_06_2025 20_02_52.png

SHANNON - PuTTY 10_06_2025 19_55_36.png


--
Claudio Vincenzi
Reply all
Reply to author
Forward
0 new messages