static void triton_clock( cable_t *cable, int tms, int tdi ) { tms = tms ? 1 : 0; tdi = tdi ? 1 : 0; parport_set_data( cable->port, (PARAM_TRST(cable) << TRST) | (PARAM_SRESET(cable) << SRESET) | (0 << TCK) | (tms << TMS) | (tdi << TDI) ); cable_wait(); parport_set_data( cable->port, (PARAM_TRST(cable) << TRST) | (PARAM_SRESET(cable) << SRESET) | (1 << TCK) | (tms << TMS) | (tdi << TDI) ); cable_wait(); }
static int triton_get_tdo( cable_t *cable ) { parport_set_data( cable->port, (PARAM_TRST(cable) << TRST) | (PARAM_SRESET(cable) << SRESET) | (0 << TCK) ); cable_wait(); return (parport_get_status( cable->port ) >> TDO) & 1; }
static int dlc5_get_tdo( cable_t *cable ) { parport_set_data( cable->link.port, (1 << PROG) | ( 0 << TCK ) ); PARAM_SIGNALS(cable) &= ~(CS_TDI | CS_TCK | CS_TMS); cable_wait( cable ); return (parport_get_status( cable->link.port ) >> TDO) & 1; }
static void dlc5_clock( cable_t *cable, int tms, int tdi, int n ) { int i; tms = tms ? 1 : 0; tdi = tdi ? 1 : 0; for (i = 0; i < n; i++) { parport_set_data( cable->link.port, (1 << PROG) | (0 << TCK) | (tms << TMS) | (tdi << TDI) ); cable_wait( cable ); parport_set_data( cable->link.port, (1 << PROG) | (1 << TCK) | (tms << TMS) | (tdi << TDI) ); cable_wait( cable ); } PARAM_SIGNALS(cable) &= CS_TRST; PARAM_SIGNALS(cable) |= CS_TCK; PARAM_SIGNALS(cable) |= tms ? CS_TMS : 0; PARAM_SIGNALS(cable) |= tdi ? CS_TDI : 0; }