ich benutze den bloodshed dev-c++ 4.0 compiler (http://ftp1.sourceforge.net/dev-cpp/devcpp4.zip) und musste die ausgabebefehle selber scripten.... und zwar mit assembler (at&t syntax)....

Code:
void outp(char wert, int adresse){
  __asm("MOVW %1, %%dx    \n\t"
        "MOVB %0, %%al    \n\t"
        "OUT  %%al, %%dx"
        :
        : "g" (wert), "g" (adresse) );
}

char inp(int adresse){
  char wert;
  __asm("MOVW %1, %%dx    \n\t"
        "IN   %%dx, %%al  \n\t"
        "MOVB %%al, %0"
        : "=g" (wert)
        : "g" (adresse) );
  return(wert);
}
sollte eigentlich selbsterklärend sein.... ansonsten nur fragen....