void centronics_write_handshake(int nr, int data, int mask) { CENTRONICS *This=cent+nr; int neu=(data&mask)|(This->control&(~mask)); if (neu & CENTRONICS_NO_RESET) { if ( !(This->control&CENTRONICS_STROBE) && (neu&CENTRONICS_STROBE) ) { printer_output(image_from_devtype_and_index(IO_PRINTER, nr), This->data); /* setup timer for data acknowledge */ /* set mask for data that has changed */ This->new_control_mask = CENTRONICS_ACKNOWLEDGE; /* set data that has changed */ This->new_control_data = CENTRONICS_ACKNOWLEDGE; /* setup a new timer */ timer_adjust(This->timer, TIME_IN_USEC(1), nr, 0); } } This->control=neu; }
static WRITE8_HANDLER( printer_w ) { printer_output(image_from_devtype_and_index(IO_PRINTER, 0), data); }