+void print_multi_track(char *rxbuf, int len)
+{
+int bpos = 0, t, i;
+int t1len, t2len, t3len;
+char tmpstr[4];
+
+ fprintf(stderr, "tracks requested: %c\n", rxbuf[bpos++]);
+ memset(tmpstr, 0, 4);
+ t=0;
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ fprintf(stderr, "t#1 read result: %s\n", tmpstr);
+ t=0;
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ fprintf(stderr, "t#2 read result: %s\n", tmpstr);
+ t=0;
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ fprintf(stderr, "t#3 read result: %s\n", tmpstr);
+ memset(tmpstr, 0, 4);
+
+ t=0;
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ t1len = atoi(tmpstr);
+ fprintf(stderr, "t#1 read len: %d\n", t1len);
+ t=0;
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ t2len = atoi(tmpstr);
+ fprintf(stderr, "t#2 read len: %d\n", t2len);
+ t=0;
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ tmpstr[t++] = rxbuf[bpos++];
+ t3len = atoi(tmpstr);
+ fprintf(stderr, "t#3 read len: %d\n", t3len);
+
+ fprintf(stderr, "t#1 data: '");
+ for (i=0; i<t1len; i++) {
+ unsigned char c = rxbuf[bpos++];
+ if (c > 31 || c < 128)
+ fprintf(stderr, "%c", c);
+ else
+ fprintf(stderr, "0x%02x ", c);
+ }
+ fprintf(stderr, "'\n");
+
+ fprintf(stderr, "t#2 data: '");
+ for (i=0; i<t2len; i++) {
+ unsigned char c = rxbuf[bpos++];
+ if (c > 31 || c < 128)
+ fprintf(stderr, "%c", c);
+ else
+ fprintf(stderr, "0x%02x ", c);
+ }
+ fprintf(stderr, "'\n");
+
+ fprintf(stderr, "t#3 data: '");
+ for (i=0; i<t3len; i++) {
+ unsigned char c = rxbuf[bpos++];
+ if (c > 31 || c < 128)
+ fprintf(stderr, "%c", c);
+ else
+ fprintf(stderr, "0x%02x ", c);
+ }
+ fprintf(stderr, "'\n");
+}
+