Binary files isd300_udma_v0_9_2.orig/src/isd300_udma and isd300_udma_v0_9_2/src/isd300_udma differ
diff -urpbN isd300_udma_v0_9_2.orig/src/isd300_udma.c isd300_udma_v0_9_2/src/isd300_udma.c
--- isd300_udma_v0_9_2.orig/src/isd300_udma.c	2009-02-24 10:45:04.000000000 +0100
+++ isd300_udma_v0_9_2/src/isd300_udma.c	2009-02-26 00:28:58.000000000 +0100
@@ -26,6 +26,11 @@ With contibutions to EEPROM writing from
 #include "usb.h"
 #include "isd300_udma_id.h"
 
+#ifdef __linux
+#include <termios.h>
+#define getch getchar
+#endif
+
 /* Uncomment to display read data */
 //#define DISPLAY_PARAMS
 
@@ -219,6 +224,15 @@ int find_and_modify_isd300(struct usb_de
 
 int main(int argc, char *argv[])
 {
+#ifdef __linux
+    /* disable terminal canonical mode */
+    struct termios term_old, term_cur;
+    tcgetattr(0, &term_old);
+    tcgetattr(0, &term_cur);
+    term_cur.c_iflag &= ~ICANON;
+    term_cur.c_lflag &= ~(ICANON | ECHO);
+    tcsetattr(0, TCSANOW, &term_cur);
+#endif
   struct usb_bus *bus;
   int ret, isd300_found = FIND_ERROR;
 
@@ -248,7 +262,10 @@ int main(int argc, char *argv[])
       printf("\nPress a key to exit\n");
       getch();
   }
-  
+#ifdef __linux
+  /* restore old terminal mode */
+  tcsetattr(0, TCSANOW, &term_old);
+#endif
   return 0;
 }
 
Binary files isd300_udma_v0_9_2.orig/src/.isd300_udma.c.swp and isd300_udma_v0_9_2/src/.isd300_udma.c.swp differ
diff -urpbN isd300_udma_v0_9_2.orig/src/Makefile isd300_udma_v0_9_2/src/Makefile
--- isd300_udma_v0_9_2.orig/src/Makefile	1970-01-01 01:00:00.000000000 +0100
+++ isd300_udma_v0_9_2/src/Makefile	2009-02-26 00:02:15.000000000 +0100
@@ -0,0 +1,11 @@
+
+SOURCES = isd300_udma.c
+BIN = isd300_udma
+CCOPTS = -lusb
+
+isd300_udma: $(SOURCES)
+	gcc -o $(BIN) $(CCOPTS) $(SOURCES)
+
+clean:
+	rm -rf $(BIN)
+
Binary files isd300_udma_v0_9_2.orig/src/.Makefile.swp and isd300_udma_v0_9_2/src/.Makefile.swp differ
