/*************************************************************************** * * * Programski primeri za 4 letnik - LAV * * * *==========================================================================* * Verzija Datum Opis Avtor * *--------------------------------------------------------------------------* * 1 1998-03-03 Slavko M. * *==========================================================================* * * * OPIS: * * Program pogleda v BIOSovo tabelo PC-ja in izpiçe naslove printer * * portov v çestajtiçki in desetiçki obliki. * ***************************************************************************/ #include int port; /* default port - standardni printerski izhod */ void main(void) { port = portx("/lpt1"); printf("\nNaslov printerskega porta 1 = 0x%X = %d",port,port); port = portx("/lpt2"); printf("\nNaslov printerskega porta 2 = 0x%X = %d\n",port,port); } /**************************************************************************** * * UGOTOVI NASLOV CENTRONICS PRINTERSKEGA PORTA * * Ce naslov za zahtevan port ni podan v tabeli BIOS-a, potem vzame default ! * ****************************************************************************/ int portx (char *ime_porta) { int naslov; /* Naslov porta */ int kateri_port; /* Stevilka porta */ strlwr (ime_porta); kateri_port = ime_porta[4]-'0'; /* Stevilka porta */ if (!(strncmp(ime_porta,"/lpt",4) == 0) || ( (kateri_port > 4) || (kateri_port < 1))) { puts ("Napacen izhodni port !\n"); exit (1); } naslov = peek (0,0x408+2*(kateri_port-1)); if (naslov == 0) { naslov = peek (0,0x408); /* Naslov LPT1 */ if ((kateri_port > 1) && (naslov != 0)) printf ("Delam s paralelnim izhodom LPT1 (LPT%d ne obstaja) !\n" ,kateri_port); } if (naslov == 0) { naslov = 0x378; /* Vzame default */ puts ("Delam z default printerskim izhodom !"); } return naslov; }