Okay. I see the problem here. I am trying to see this as "the big picture" when really I need to focus on the blocks that built it. If I can understand those then I can get this.

Let’s just look at RANDOM and how you showed me to use this. Here is my take on it:

RandomSeed var WORD

Read 0,RandomSeed
RandomSeed=RandomSeed+23 ' best with any ODD number here
Write 0,RandomSeed

Loop:

RANDOM RandomSeed


(Now we have a random number in RandomSeed between 1 and 65525 correct? Let’s say this number is 3245 just for an example. Here is what I wasn’t getting and I had to read the manual again to hopefully get this. The "Seed" is based on whatever is in that variable RandomSeed. A calculation is performed on that variable to get the random number. If we didn’t use eeprom the seed is really zero. The first time we use it the seed in eeprom it is also zero. It changes after that. Am I even close to correct on this? That is why it will always produce the same sequence each time unless the variable that is used as the seed is changed.)

Then, if I did this instead:

RandomSeed var WORD

Read 0,RandomSeed
RandomSeed=RandomSeed+103 ' best with any ODD number here
Write 0,RandomSeed

Loop:

RANDOM RandomSeed

(The random number generated would be different if all things were equal than the first example of 3245 correct? It is that way because I used a different factor to add to the seed - right?)

I’m hoping I am explaining myself correct because I do not want to get too deep in mud. I just want to make sure I understand how RANDOM really works. That is first then I can address how this gets deeper. I’ve been going over your code word for word to figure it out.

Then to address part of your code that is more confusing.

You define:

RandomSeed Var Word, but then you use RandomSeed.Lowbyte later. What is this "Lowbyte" part of this? I don’t see any reference to this in the manual.

Bart