If you had an Apple II, it was common in BASIC to reference memory locations above the 32K point by using a negative number. For example, if you wanted to click the speaker you would PEEK/POKE -16336 or if you wanted to enter the Apple II monitor, a CALL -768. Respectively, those would be 49200 ($C030) and 64568 ($FC38).
On the Commodore 64 by contrast, it was common to reference similar memory locations by their absolute value, e.g. the background color could be retrieved with a PEEK(53281) and many SYS calls were documented with non-negative numbers.
Given that many of the 8-bit BASIC implementations were derived from a common Microsoft code base, it is curious why the two conventions were used. I would have thought that it was perhaps something as simple as that a few cycles would be saved by specifying the negative number (or not, depending on who was right), but then again the negative sign introduces an additional character to process and also that big about common heritage.
What was the reason for the two conventions?
PEEK
ed andPOKE
d with integers from-32768
to65535
, with a large overlap of values.