#include "kernel.h" // Write a byte to an I/O port. void out(WORD port, BYTE value ) { __asm__ __volatile__ ( "outb %b0, %w1" : : "a" (value), "Nd" (port) ); } // Read a byte from an I/O port. BYTE in(WORD port) { BYTE value; __asm__ __volatile__ ( "inb %w1, %b0" : "=a" (value) : "Nd" (port) ); return value; } // Short delay. May be needed when talking to some // (slow) I/O devices. void iodelay(void) { BYTE value = 0; __asm__ __volatile__ ( "outb %0, $0x80" : : "a" (value) ); }