I've tried to replicate this onUsing an emulated IBM 1130 running DM2 with no success. Now, I'll admit I have almost no idea what I'm doing, and I can't for some reason get 1130 FORTRAN tocan confirm WRITE
a constant directly without compilation failingLeo B.'s example. If this is usefulIt took a little modification to someone, here'srun on the batch file I've used1130:
// JOB
// FOR IBM1130 FORTRAN - SCRUSS 2021-05
*ONE WORD INTEGERS
*LIST SOURCE PROGRAM
C TRY TO MODIFY*ONE AWORD CONSTANTINTEGERS
SUBROUTINE IMDFY(IK)
WRITE(3,10)
WRITE(3,20) IK
IK=1
WRITE(3,30) IK
IK=2
WRITE(3,15)
WRITE(3,20) IK
IK=1
WRITE(3,30) IK
10 FORMAT(' IN SUB BEFORE')
15 FORMAT(' IN SUB AFTER')
20 FORMATZERO(' IK =', I8K)
30 FORMAT(' 1 K =',= I8)0
RETURN
END
// DUP
*DELETE IMDFYZERO
*STORE WS UA IMDFYZERO
// FOR
*LIST ALL
*IOCS(1132 PRINTER)
*ONE WORD INTEGERS
C MAIN PROGRAM
J = J=51
WRITE(3,10 2)
WRITE(3,20) J
C CHANGE VALUE OF1) J AND PRINT
CALL IMDFY(J)
WRITEZERO(3,151)
WRITE(3,20) J
WRITE(3,16)
= J=11
WRITE(3,30) J
C CHANGE VALUE OF 1 AND PRINT
CALL IMDFY(1)
WRITE(3,17)
J=1
WRITE(3,30 1) J
10 FORMAT(' IN PROG BEFORE')
151 FORMAT(' IN PROG AFTER')
J 16= FORMAT(' CONST PROG, BEFORE'I1)
17 FORMAT(' CONST PROG AFTER')
202 FORMAT(' J =',BEFORE I8-')
30 3 FORMAT(' 1 =',AFTER I8-')
CALL EXIT
END
// XEQ
IN PROG BEFORE
J = 5
IN SUB BEFORE
IK = 5
1 = 1
IN SUB AFTER
IK = 2
1 = 1
IN PROG AFTER-
J = 1
CONST PROG BEFORE
1 = 1
IN SUB BEFORE
IK = 1
1 = 1
IN SUB AFTER
IK = 2
1 = 1
CONST PROG AFTER-
1 J = 10
If I'd been successful in redefiningSince the value of 1J
is only ever set to 1
, it's clear that the program has set the value of 1 = …
lines would be inconsistent.to 0
… 🤔