37 lines
		
	
	
		
			598 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			598 B
		
	
	
	
		
			C
		
	
	
	
| static volatile char *data = (char *)(0x20);
 | |
| static volatile char *control = (char *)(0x24);
 | |
| 
 | |
| extern void _outb (volatile char*, unsigned char);
 | |
| extern unsigned char _inb (volatile char*);
 | |
| 
 | |
| static unsigned char
 | |
|  read_scc_reg (unsigned char n)
 | |
| {
 | |
|   _outb (control, n);
 | |
|   return _inb(control);
 | |
| }
 | |
| 
 | |
| static void write_scc_data (unsigned char n)
 | |
| {
 | |
|   _outb (data, n);
 | |
| }
 | |
| 
 | |
| int
 | |
| _write (int dev, void *buf, unsigned int len)
 | |
| {
 | |
|   int i;
 | |
|   char *string = (char*)buf;
 | |
| 
 | |
|   for (i = 0; i < len; i++) 
 | |
|     {
 | |
|       int j;
 | |
| 
 | |
|       for (j = 0 ; j < 5000; j++)
 | |
| 	;
 | |
|       write_scc_data (string[i]);
 | |
| 
 | |
|     }
 | |
|   return len;
 | |
| }
 | |
| 
 |