The correct test for mem%% containing a value which can be represented as a signed 32-bit number is:
Code: Select all
IF mem%% <> !^mem%% THEN PRINT "mem%% does not contain a valid signed 32-bit number"
The correct test for mem%% containing a value which can be represented as a signed 32-bit number is:
Code: Select all
IF mem%% <> !^mem%% THEN PRINT "mem%% does not contain a valid signed 32-bit number"
So ! and ? always process the parameters internally as sign-extended wide addresses. Ta.Richard Russell wrote: ↑Sat 02 Nov 2024, 18:51 No, it "should be" (and is) accessing the location:We've already ascertained that mem% can contain only signed 32-bit values.Code: Select all
FFFFFFFFEBB08D5B 000000000000FF00 + ---------------- FFFFFFFFEBB17D5B
Yes, both !addr and num% are signed 32-bit numbers, just as ?addr and num& are unsigned 8-bit numbers. In fact if you use CALL to return the variable type (in the parameter block) you will find that !addr and num% return the same type ID.
Re-reading the question, I'm not sure that I fully understand what you mean by "parameters". In the case of, say, !item are you referring to item as the 'parameter' of the pling (exclamation mark) operator?