On Fri, Dec 29, 2017 at 10:30:17PM -0500, Programmingkid wrote:
On Dec 29, 2017, at 8:01 PM, BALATON Zoltan balaton@eik.bme.hu wrote:
I've tried to implement it the way I've suggested and came up with the patch below, but it does not seem to work. I think this is because the arithmetic in get-msec overflows and does not get the right values. Could it be it works in SLOF because that runs on 64bit? Or is something needed to tell Forth to use 64bit values on PPC32? Any ideas?
I continuously printed the tb@ word's value by using this program:
decimal begin tb@ . . cr again
The tbu value looks right. The tbl value is a problem. When it prints it sometimes prints as a negative value.
You should use U. .
printf("or'ed value: %" PRId64 "\n", (uint64_t)((tbu << 32) | tbl)); // should be 8,294,967,296
And that should be (uint64_t)tbu << 32 (note where the cast is done).
Segher