#define JTAGSET (IO0SET)
#define JTAGCLR (IO0CLR)
#define JTAGDIR (IO0DIR)
-#define JTAGOUT_RBACK (IO0PIN) // used to read actual TCLK output value
+#define JTAGOUT_RDBACK (IO0PIN) // used to read actual TCLK output value
#undef JTAGSEL
#define TMS_PIN (1<<20) // P0.20 JTAG TMS input pin
#define TDI_PIN (1<<19) // P0.19 JTAG TDI input pin (SIMO1 if SPI mode)
#define VCCTGT_PIN 0 // Px.x Supply voltage of target board
#define TCLK_PIN TDI_PIN // P7.3 TDI (former XOUT) receives TCLK
+#define ClrTMS() do {(JTAGCLR) |= (TMS_PIN);} while(0);
+#define SetTMS() do {(JTAGSET) |= (TMS_PIN);} while(0);
+#define ClrTDI() do {(JTAGCLR) |= (TDI_PIN);} while(0);
+#define SetTDI() do {(JTAGSET) |= (TDI_PIN);} while(0);
+#define ClrTCK() do {(JTAGCLR) |= (TCK_PIN);} while(0);
+#define SetTCK() do {(JTAGSET) |= (TCK_PIN);} while(0);
+#define ClrTCLK() do {(JTAGCLR) |= (TCLK_PIN);} while(0);
+#define SetTCLK() do {(JTAGSET) |= (TCLK_PIN);} while(0);
+#define StoreTCLK() ((JTAGOUT_RDBACK & TCLK_PIN) ? 1:0)
+#define RestoreTCLK(x) (x == 0 ? (JTAGCLR |= TCLK_PIN) : (JTAGSET |= TCLK_PIN))
+#define ScanTDO() ((JTAGIN & TDO_PIN)) // assumes TDO to be bit0
+
+#define JTAG_IODELAY() __asm__ __volatile__ ("nop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n": : )
+
/****************************************************************************/
/* Define section for user, related to the controller used (here MSP430F149)*/
/****************************************************************************/