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;
 | |
| }
 |