48 lines
		
	
	
		
			662 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			662 B
		
	
	
	
		
			C
		
	
	
	
#define USE_PORT_A
 | 
						|
 | 
						|
#define RXADATA (int *) 0x01F800E0
 | 
						|
#define RXBDATA (int *) 0x01F800E4
 | 
						|
#define RXSTAT (int *) 0x01F800E8
 | 
						|
 | 
						|
void
 | 
						|
outbyte (int c)
 | 
						|
{
 | 
						|
  volatile int *rxstat;
 | 
						|
  volatile int *rxadata;
 | 
						|
  int rxmask;
 | 
						|
 | 
						|
  rxstat = RXSTAT;
 | 
						|
#ifdef USE_PORT_A
 | 
						|
  rxadata = RXADATA;
 | 
						|
  rxmask = 6;
 | 
						|
#else
 | 
						|
  rxadata = RXBDATA;
 | 
						|
  rxmask = 0x60000;
 | 
						|
#endif
 | 
						|
 | 
						|
  while ((*rxstat & rxmask) == 0);
 | 
						|
 | 
						|
  *rxadata = c;
 | 
						|
}
 | 
						|
 | 
						|
int
 | 
						|
inbyte (void)
 | 
						|
{
 | 
						|
  volatile int *rxstat;
 | 
						|
  volatile int *rxadata;
 | 
						|
  int rxmask;
 | 
						|
 | 
						|
  rxstat = RXSTAT;
 | 
						|
#ifdef USE_PORT_A
 | 
						|
  rxadata = RXADATA;
 | 
						|
  rxmask = 1;
 | 
						|
#else
 | 
						|
  rxadata = RXBDATA;
 | 
						|
  rxmask = 0x10000;
 | 
						|
#endif
 | 
						|
 | 
						|
  while ((*rxstat & rxmask) == 0);
 | 
						|
 | 
						|
  return *rxadata;
 | 
						|
}
 |