test commit
[my-code/fpga.git] / fx2 / fx2.c
index 3a57b12..a8f0467 100644 (file)
--- a/fx2/fx2.c
+++ b/fx2/fx2.c
  */
 
 /* constant definitions */
-#define TRUE   1
-#define FALSE  0
-#define POWER_ON       1;
-#define POWER_OFF      0;
+#define GET_TDO                0x20
 
 /* type definitions */
 typedef unsigned char u8;
@@ -227,6 +224,9 @@ void ep1_init() {
 
 void fx2_init() {
 
+       /* syncdelay */
+       SYNCDELAY;
+
        /* cpu init */
        cpu_init();
 
@@ -239,11 +239,14 @@ void fx2_init() {
 
        /* ep1 init */
        ep1_init();
+
+       /* jtag init */
+       jtag_init();
 }
 
 void main() {
 
-       u8 buf;
+       u8 buf,set;
 
        /* initialize the fx2 */
        fx2_init();
@@ -252,14 +255,18 @@ void main() {
        while(1) {
                if(!(EP1OUTCS&BUSY)) {
                        buf=EP1OUTBUF[0];
-                       buf&=0x1c;
-                       IOD|=buf;
-                       EP1OUTBC=1;
-               }
-               if(!(EP1INCS&BUSY)) {
-                       buf=IOD&0x01?1:0;
-                       EP1INBUF[0]=buf;
-                       EP1INBC=1;
+                       if(buf!=GET_TDO) {
+                               set=(IOD&(~0x1c))|(buf&0x1c);
+                               IOD=set;
+                               EP1OUTBC=1;
+                       }
+                       else {
+                               while(EP1INCS&BUSY)
+                                       continue;
+                               buf=IOD&0x01?1:0;
+                               EP1INBUF[0]=buf;
+                               EP1INBC=1;
+                       }
                }
        }