$NetBSD: patch-af,v 1.1 2010/08/09 19:37:45 drochner Exp $ --- src/cmd/dr.c.orig 2009-04-17 20:24:09.000000000 +0000 +++ src/cmd/dr.c @@ -36,7 +36,7 @@ static int cmd_dr_run( chain_t *chain, char *params[] ) { int dir = 1; - tap_register *r; + tap_register *r, *r1; if (cmd_params( params ) < 1 || cmd_params( params ) > 2) return -1; @@ -68,7 +68,12 @@ cmd_dr_run( chain_t *chain, char *params dir = 0; else if (strcasecmp( params[1], "out" ) == 0) dir = 1; - else { + else if (strcasecmp( params[1], "sync" ) == 0) { + r = chain->parts->parts[chain->active_part]->active_instruction->data_register->in; + r1 = chain->parts->parts[chain->active_part]->active_instruction->data_register->out; + memcpy(r->data, r1->data, r->len); + dir = 0; + } else { unsigned int bit; if (strspn(params[1], "01") != strlen(params[1])) { return -1; @@ -101,12 +106,13 @@ cmd_dr_help( void ) { printf( _( "Usage: %s [DIR]\n" - "Usage: %s BITSTRING\n" + "Usage: %s BITSTRING | sync\n" "Display input or output data register content or set current register.\n" "\n" "DIR requested data register; possible values: 'in' for\n" " input and 'out' for output; default is 'out'\n" "BITSTRING set current data register with BITSTRING (e.g. 01010)\n" + "sync set 'in' data register to the 'out' value\n" ), "dr", "dr" ); }