Time limit above 999, random characters in timer
#17
Quote:The conclusion from this of course is that MSCC is using signed 16-bit quantities. So there is no range 32768-65535, and you can't set a time limit greater than 32767. Rather, you are setting a negative time limit.


It doesn't always, though. Time bonus is the only signed 16-bit integer on the score screen; level bonus, level score, and overall score are all 32-bit and allow up to 2.1b before rolling over to -2.1b.

There are several things that lead me to believe the time limit is not stored as a signed 16-bit integer:

* when you set a time limit or chip counter of 32768+, the last two digits still display properly (e.g. 32775 displays as [garbled][7][5])

* I was a bit ambiguous above; it is the time bonus points that overflow, which starts as early as time=3277. (since 32770 > 32767) It is not unique to time limits above 32768, and in fact there is no discontinuity between the time bonus points at time=32767 (-10) and time=32768 (0).

* when you reset (4,32) or (5,32) - which store the initial time limit of the level - the new data on the bottom layer of (4,0) and (5,0) is consistent with an unsigned 16-bit integer going up to 65535 rather than a signed one that wraps to -32768. (At time=32767, (4,0) will contain 255 and (5,0) will contain 127. At time=32768, (4,0) will contain 0 and (5,0) will contain 128.)
Reply


Messages In This Thread
Time limit above 999, random characters in timer - by James - 26-Aug-2017, 1:38 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)