Add more commands to s51 assembly-language debugger
[fw/altos] / lib / ccdbg-io.c
index 2947678561d4ac964e99e988fd52d39efe06cbdb..5ecea769c6b4f9c6b1340067ba8be4709f211128 100644 (file)
@@ -38,54 +38,32 @@ ccdbg_open(void)
                perror("calloc");
                return NULL;
        }
-       dbg->clock = 1;
-#ifdef USE_KERNEL
-       dbg->fd = open("/dev/ttyUSB0", 2);
-       if (dbg->fd < 0) {
-               perror(file);
-               free(dbg);
+       dbg->cp = cp_usb_open ();
+       if (!dbg->cp) {
+               free (dbg);
                return NULL;
        }
-       cccp_init(dbg);
-       cccp_write(dbg, CC_CLOCK, CC_CLOCK);
-#else
-       cp_usb_init(dbg);
-#endif
-       dbg->clock = 1;
        return dbg;
 }
 
 void
 ccdbg_close(struct ccdbg *dbg)
 {
-#if USE_KERNEL
-       cccp_fini(dbg);
-       close (dbg->fd);
-#else
-       cp_usb_fini(dbg);
-#endif
+       cp_usb_close(dbg->cp);
        free (dbg);
 }
 
 int
 ccdbg_write(struct ccdbg *dbg, uint8_t mask, uint8_t value)
 {
-#if USE_KERNEL
-       return cccp_write(dbg, mask, value);
-#else
-       cp_usb_write(dbg, mask, value);
+       cp_usb_write(dbg->cp, mask, value);
        return 0;
-#endif
 }
 
 uint8_t
 ccdbg_read(struct ccdbg *dbg)
 {
-#if USE_KERNEL
-       return cccp_read_all(dbg);
-#else
-       return cp_usb_read(dbg);
-#endif
+       return cp_usb_read(dbg->cp);
 }
 
 static char
@@ -151,6 +129,7 @@ ccdbg_recv_bit(struct ccdbg *dbg, int first)
 
        ccdbg_send(dbg, CC_CLOCK|mask|CC_RESET_N, CC_CLOCK|CC_DATA|CC_RESET_N);
        read = ccdbg_read(dbg);
+       ccdbg_print("#\t%c %c %c\n", CC_DATA, read);
        ccdbg_send(dbg, CC_CLOCK|     CC_RESET_N,                  CC_RESET_N);
        return (read & CC_DATA) ? 1 : 0;
 }