RANDOM:    
    MOV   A,RN4      ; BIT 25 TO CARRY
    RRC   A    
    MOV   RN4,RN3    
    MOV   RN3,RN2    
    MOV   RN2,RN1    ; SHIFT ALL BYTES LEFT
    MOV   A,RN4      ; WAS RN3
    RRC   A          ; GET BIT 25 (IN CARRY) INTO OLD RN3
    MOV   TEMP1,A    ; SAVE IT FOR LATER
    MOV   A,RN1    
    RLC   A          ; BIT 1 TO 7 IN POSITION
    MOV   RN1,A      ; PUT BACK
    MOV   A,TEMP1    ; RESTORE A
    XRL   A,RN1      ; MOD 2 SUM OF ALL BITS IN RN1 AND THE CARRY BIT
    MOV   TEMP1,A    ; SAVE IT
    MOV   A,RN4    
    RRC   A    
    MOV   RN4,A      ; ROTATE RN4
    MOV   A,RN3    
    RRC   A    
    MOV   RN3,A      ; ROTATE RN3
    MOV   A,RN2    
    RRC   A    
    MOV   RN2,A      ; ROTATE RN2
    MOV   A,TEMP1    ; RESTORE A
    RLC   A    
    MOV   RN1,A      ; xor OVER-WRITES ALL 8 BITS, BUT DOESN'T MATTER
    MOV   RANNUM,A   ; RANDOM NUMBER!!
    RET     