/*===========================================================================* * Terminal Task * *===========================================================================* * Written by : Rongi * * Last update: 27-05-1997 * *===========================================================================*/ /*===========================================================================* * tty_init * *===========================================================================*/ /* Inicializace TTY tasku */ /* Pro vsechny pouzite TTY (NR_TTYS): tty_inhead=tty_intail=tty_inqueue; mode=CRMOD|XTABS|ECHO default nastaveni znaku pro erasem kill, sig intr, sig quit, xon, xoff, eot (^D) } tty_struct[0].tty_devstart=console .attribute, pozice kurzoru na (0,0) nastaveni pouzite delky tty_driver_buf[] na 0 */ /* stav: funkcni dodelat: snad nic */ #include "test.cnf" PRIVATE void tty_init(void) { register int i; register struct tty_struct *ptr; for (i=0; itty_inhead = ptr->tty_intail = ptr->tty_inqueue; ptr->tty_incount = 0; ptr->tty_lfcount = 0; /* Output section. */ ptr->tty_outhead = ptr->tty_outtail = ptr->tty_outqueue; ptr->tty_outcount = 0; ptr->tty_devstart = NULL; /* Terminal parameters and status. */ ptr->tty_discipline= COOKED; ptr->tty_mode = CRMOD | XTABS | ECHO; ptr->tty_column = 0; ptr->tty_row = 0; ptr->tty_attribute = 0; ptr->tty_busy = FALSE; ptr->tty_escaped = FALSE; ptr->tty_inhibited = FALSE; ptr->tty_makebreak = FALSE; ptr->tty_waiting = FALSE; /* user settable characters */ ptr->tty_erase = ERASE_CHAR; ptr->tty_kill = KILL_CHAR; ptr->tty_intr = INTR_CHAR; ptr->tty_quit = QUIT_CHAR; ptr->tty_xon = XON_CHAR; ptr->tty_xoff = XOFF_CHAR; ptr->tty_eof = EOT_CHAR; /* Information about incomplete I/O requests is stored here. */ ptr->tty_incaller = 0; ptr->tty_inproc = 0; ptr->tty_in_vir = 0; ptr->tty_inleft = 0; ptr->tty_outcaller = 0; ptr->tty_outproc = 0; ptr->tty_out_vir = 0; ptr->tty_outleft = 0; ptr->tty_outcum = 0; } // CONSOLE settings ptr = tty_addr(CONSOLE); ptr->tty_devstart = (int(*)(struct tty_struct *tp)) console; ptr->tty_makebreak = TRUE; ptr->tty_attribute = 0x0f; ptr->tty_column = 1; ptr->tty_row = 1; // Sem dopsat nastaveni parametru pro obe dve RS232 line. ptr = tty_addr(RS232LINE1); // ... nastavit parametry ... ptr->tty_devstart = (int(*)(struct tty_struct *tp)) send_rs232_com1; ptr->tty_makebreak = TRUE; ptr->tty_attribute = 0x0f; ptr->tty_column = 1; ptr->tty_row = 1; ptr = tty_addr(RS232LINE2); // ... nastavit parametry ... ptr->tty_devstart = (int(*)(struct tty_struct *tp)) send_rs232_com2; ptr->tty_makebreak = TRUE; ptr->tty_attribute = 0x0f; ptr->tty_column = 1; ptr->tty_row = 1; //tom //#ifdef TTY_RS232_1 // init(1,0,9600,0); //#endif //#ifdef TTY_RS232_2 init(2,0,9600,0); //#endif keyboard_init(); screen_init(); current_tty = NULL; }