Yes, and on some machines, like the IBM 1800, small numeric constants are stored in a
common location, to reduce the size of executable images.
So, once you've changed 4 to 5, it means that all programs that get loaded will now
use 5 when they meant 4.
Usually the generated code has a way to refer to zero without using the common constant
area, but not numbers like 1 or 2, so setting 1 or 2 to zero will have
'interesting' effects.
Especially if the machine is controlling heavy equipment.
[I bear witness to the result - been there, did that...]
From: "cctalk" <cctalk at classiccmp.org>
To: "cctalk" <cctalk at classiccmp.org>
Sent: Monday, June 1, 2020 11:40:10 PM
Subject: Re: Microsoft open sources GWBASIC
On Mon, 1 Jun 2020 at 00:14, Eric Korpela via cctalk
<cctalk at classiccmp.org> wrote:
C
C CHANGE THE VALUE OF 4
C
CALL INC(4)
WRITE (*, 30) 4
30 FORMAT ('2+2=',I4)
END
SUBROUTINE INC(I)
I = I + 1
END
-------- OUTPUT
2+2= 5
I had no idea, and I wrote a lot of FORTRAN for a few years. I just
tested the above with the Fortran-77 compiler for my ND-100 mini, and
yes, it prints 2+2= 5