Yes, indeed, 1.18.3 fixes a bug with the @array_var when the the var is an array.
@array_var DOES NOT return the address of the 1st element, but the address of the array descriptor (indeed @array_var is forbidden in other BASIC dialects like FreeBasic). The Array Descriptor is a struct with internal data.
To get the address of the 1st element just use @array_var(0, 0, ...). In your case, use @a(0), etc, as you said.
Note: If the array indexes are constant (not variables) this is computed in compile time to a single actual address of the element, and it's immediate.
The bug was that @array_var was returning the address of the 1st element too.
@array_var DOES NOT return the address of the 1st element, but the address of the array descriptor (indeed @array_var is forbidden in other BASIC dialects like FreeBasic). The Array Descriptor is a struct with internal data.
To get the address of the 1st element just use @array_var(0, 0, ...). In your case, use @a(0), etc, as you said.
Note: If the array indexes are constant (not variables) this is computed in compile time to a single actual address of the element, and it's immediate.
The bug was that @array_var was returning the address of the 1st element too.
---
Boriel
Boriel

