RND function on B series vs C64/C128

From: Micah Bly <micahbly_at_gmail.com>
Date: Sun, 19 Feb 2023 09:39:11 -0600
Message-Id: <D179DCDE-7519-445B-B9C4-74E8FCA1359A_at_gmail.com>
I’m working on a documentation project for the CBM II series. 

In comparing the descriptions of RND() for C64, C128, and B series, and in some light testing, I think the function may behave differently. Before I write that down, I wanted to check if that made sense. I could just be misinterpreting what I’m seeing. 

C128 system guide says X in RND(X) can be 0 for clock-based number, negative to pick a new see, and positive to use a random number from the RNG (not from clock).  Page 325.
C64 wiki describes the same behavior as C128 system guide, in more detail, with a sample program to show difference between RND(0) and RND(pos). 
https://www.c64-wiki.com/wiki/RND
“CBM 700 Reference Guide” (the thing CBM UK wrote that Protecto distributed) says only this:
=====

expression < 0

The algorithm uses the expression number to calculate the random number ("seed").

expression >= 0

The algorithm uses the last previously formed random number to calculate the new random number ("series").

=====

I ran the test program from the 64 wiki on the B128 (vice), and I can’t see a difference really. Certainly not the pattern you see in the pic on c64 wiki. Timer is very different on B series… is it possible they just decided not to offer that option?

Thanks,

Micah Bly
Received on 2023-02-19 17:00:03

Archive generated by hypermail 2.3.0.