mirror of
				https://github.com/deater/dos33fsprogs.git
				synced 2025-10-31 09:16:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			20 lines
		
	
	
		
			466 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			466 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // http://codebase64.org/doku.php?id=base:small_fast_8-bit_prng
 | |
| int random_8(void) {
 | |
| 
 | |
| 	static int seed=0x1f;
 | |
| 	static int newseed;
 | |
| 
 | |
| 	newseed=seed;					// lda seed
 | |
| 	if (newseed==0) goto doEor;			// beq doEor
 | |
| 	newseed<<=1;					// asl
 | |
| 	if (newseed==0) goto noEor;			//beq noEor
 | |
| 					// if the input was $80, skip the EOR
 | |
| 	if (!(newseed&0x100)) goto noEor;		// bcc noEor
 | |
| doEor:
 | |
| 	newseed^=0x1d;					// eor #$1d
 | |
| noEor:
 | |
| 	seed=(newseed&0xff);				// sta seed
 | |
| 	return seed;
 | |
| }
 | |
| 
 |