28 lines
		
	
	
		
			713 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			713 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "sysutil.h"
 | |
| 
 | |
| #define COM1_BASE       0x3F8
 | |
| #define COM1_THR        (COM1_BASE + 0)
 | |
| #define         LSR_THRE        0x20
 | |
| #define COM1_LSR        (COM1_BASE + 5)
 | |
| 
 | |
| /*===========================================================================*
 | |
|  *                               ser_putc			    	     *
 | |
|  *===========================================================================*/
 | |
| void ser_putc(char c)
 | |
| {
 | |
|         u32_t b;
 | |
|         int i;
 | |
|         int lsr, thr;
 | |
|   
 | |
|         lsr= COM1_LSR;
 | |
|         thr= COM1_THR;
 | |
|         for (i= 0; i<10000; i++)
 | |
|         {
 | |
|                 if (sys_inb(lsr, &b) != OK)
 | |
| 			return;
 | |
|                 if (b & LSR_THRE)
 | |
|                         break;
 | |
|         }
 | |
|         sys_outb(thr, c);
 | |
| }
 | 
