[Info-vax] VAX BASIC global variables.

Arne Vajhøj arne at vajhoej.dk
Fri Oct 15 15:13:21 EDT 2021


On 10/15/2021 3:03 PM, Dave Froble wrote:
> On 10/15/2021 12:56 PM, Arne Vajhøj wrote:
>> On 10/15/2021 12:09 PM, E Thump wrote:
>>> On Friday, October 15, 2021 at 4:44:49 PM UTC+1, Jeffrey H. Coffield
>>> wrote:
>>>> COMMON (MY_DATA) INTEGER a,b
>>
>>>> sub adder (integer c,integer d)
>>
>>> Next question to do with arrays. Instead of doing DIM Z(10) it seems
>>> I should do COMMON (MY_DATA) INTEGER Z(10) and then use that exact
>>> same line within the sub. The 10 and everything has to match. Am I on
>>> the right lines there?
>>
>> Yes.
>>
>> Declarations *should* match.
>>
>> They are not strictly required to, but it becomes
>> pretty messy if they don't.
>>
>> This does not look good:
>>
>> program hack
>> common (mydata) long a(2)
>> call s
>> print a(0),a(1)
>> end program
>>
>> sub s
>> common (mydata) word a(4)
>> a(0) = 1
>> a(1) = 1
>> a(2) = 2
>> a(3) = 2
>> end sub
> 
> In Arne's example, the linker will allocate space for the 4 element array,
> but the main program will not be able to address a(3).

It runs fine.

And outputs exactly what I expected.

$ bas hack
$ lin hack
$ run hack
  65537         131074

(which is 00010001 and 00020002 in hex)

But definitely not nice.

Arne







More information about the Info-vax mailing list