Anyone know how to compute a 16-bit integer address without overflow? Trying to get the address of a string H$ into a variable C that I can PEEK. The first byte of a string object is the length. It's followed by a pointer to the string
10 DEFINTA-F 20 H$="0123456789ABCDEF": D=VARPTR(H$)+1:C=PEEK(D)+256*PEEK(D+1) No workey... overflow error. What is happening is that PEEK(D+1) is 128. 256 * 128 = 32768 which is too big to be stored in C% (a 16-bit signed integer) So given a number 0-65535 is there a good way in BASIC to get the 16-bit signed value -32768..32767? FWIW, AND and NOT only work on signed 16-bit values, not > 32767 positive values. -- John.