*-------------------------------
*
* GETRAND
*
* Generate a somewhat random repeating sequence.  I use
* a typical linear congruential algorithm
*      I(n+1) = (I(n)*a + c) mod m
* with m=65536, a=5, and c=13841 ($3611).  c was chosen
* to be a prime number near (1/2 - 1/6 sqrt(3))*m.
*
* Note that in general the higher bits are "more random"
* than the lower bits, so for instance in this program
* since only small integers (0..15, 0..39, etc.) are desired,
* they should be taken from the high byte RANDOM+1, which
* is returned in A.
*
GETRAND                   
         LDA RANDOM+1     
         STA TEMP1        
         LDA RANDOM       
         ASL              
         ROL TEMP1        
         ASL              
         ROL TEMP1        
* ASL
* ROL TEMP1
* ASL
* ROL TEMP1
         CLC              
         ADC RANDOM       
         PHA              
         LDA TEMP1        
         ADC RANDOM+1     
         STA RANDOM+1     
         PLA              
         ADC #$11         
         STA RANDOM       
         LDA RANDOM+1     
         ADC #$36         
         STA RANDOM+1     
         RTS              
