Why can’t I define a variable as (I8)?

Haven’t we all been using 64-bit machines for years now?

I guess that’s one of the questions, how many boxes out there still don’t know about AG, AGR & co ?

Did you really every miss it (I haven’t, so far, to be honest).

Why not add an ER for this ?

Oh yes, and it’s more a “Natural general” type questions, most platforms are 64-bit nowadays :wink:

And while we’re at it, allow for unsigned (Ix) fields - perhaps (UIx) or (Jx).

B-type Fields can be used as some kind of unsigned integer fields. But arithmetic statements are not allowed - sometimes.

But for example this works:

define data local
01 #i4 (I4)
01 #b4 (B4)
end-define
#i4 := 255
#b4 := #i4
display #i4 #b4
add 1 to #i4
if #i4 > #b4
write ‘greater’
end-if
end

I can’t imagine there are very many.

That’s what prompted my original post; the program I was working on would have been more elegant if I’d had (I8) fields to work with. But I did work around it.

I’ll think about it.

I should probably admit that it was an odd program to be writing in Natural. It would have been even more elegant if Natural provided access to bit-level operations like shifts and bitwise and, or, and xor. As it was, I had to call assembler routines for significant parts of the operation.