- cmddatalong[0] = jtag_trans_n(cmddatalong[1],cmddata[0],cmddata[1]);
- tapstate = (cmddata[1]&NORETIDLE)>0?Update_DR:RunTest_Idle;
- txdata(app,verb,4);
+ val = cmddata[0];
+ if (cmddata[0] > 32)
+ {
+ debughex32(cmddatalong[0]);
+ debughex32(cmddatalong[1]);
+ cmddatalong[1] = jtag_trans_n(cmddatalong[2], val - 32 ,cmddata[1] | NOEND |NORETIDLE);
+ cmddatalong[0] = jtag_trans_n(cmddatalong[2], 32, cmddata[1]);
+ }
+ else
+ {
+ debughex32(cmddatalong[0]);
+ cmddatalong[0] = jtag_trans_n(cmddatalong[1], val, cmddata[1]);
+ }
+ txdata(app,verb,val/8);
+ break;
+ case JTAG_DR_SHIFT_MORE:
+ // assumes you just executed JTAG_DR_SHIFT with NOEND flag set
+ val = cmddata[0];
+ if (cmddata[0] > 32)
+ {
+ debughex32(cmddatalong[0]);
+ debughex32(cmddatalong[1]);
+ cmddatalong[1] = jtag_trans_n(cmddatalong[2], val - 32 ,cmddata[1] | NOEND |NORETIDLE);
+ cmddatalong[0] = jtag_trans_n(cmddatalong[2], 32, cmddata[1]);
+ }
+ else
+ {
+ debughex32(cmddatalong[0]);
+ cmddatalong[0] = jtag_trans_n(cmddatalong[1], val, cmddata[1]);
+ }
+ txdata(app,verb,val/8);