7 #define uint32 uint32_t
8 #define uint64 uint64_t
12 uint32 rv = write(fd, &c, 1);
14 printf("write ret: %d\n", rv);
16 printf("send: %x\n", c);
19 void send(int dest, uint64 i) {
20 sendc((dest >> 8) & 0xff);
21 sendc((dest >> 0) & 0xff);
22 sendc((i >>32) & 0xff);
23 sendc((i >>24) & 0xff);
24 sendc((i >>16) & 0xff);
25 sendc((i >> 8) & 0xff);
26 sendc((i >> 0) & 0xff);
31 uint32 rv = read(fd, &c, 1);
33 printf("read ret: %d\n", rv);
40 | (((uint64)recvc()) << 32)
41 | (((uint64)recvc()) << 24)
42 | (((uint64)recvc()) << 16)
43 | (((uint64)recvc()) << 8)
44 | (((uint64)recvc()) << 0)
49 void sendbits(int num, int dat) {
52 sendc((dat>>(num>=8 ? (num-8):0)) & 0xff);
57 uint64_t inst(int boxname, int tokenin, int datain, int latch, int dataout, int tokenout, int count, int dest) {
59 ret |= dest; ret <<= 7;
60 ret |= count; ret <<= 1;
61 ret |= tokenout; ret <<= 1;
62 ret |= dataout; ret <<= 1;
63 ret |= latch; ret <<= 1;
64 ret |= datain; ret <<= 1;
65 ret |= tokenin; ret <<= 11;
70 int main(int argc, char** argv) {
74 fd = open(argv[1], O_RDWR);
75 printf("open %s = %d\n", argv[1], fd);
78 int fd2 = open(argv[2], O_RDWR);
79 printf("open %s = %d\n", argv[2], fd2);
87 //send(0x03, 0x101010);
88 //send(0x00, 0x101010);
89 //send(0x01, 0x010101);
94 inst(0x01, 0, 1, 1, 1, 0, 1, 0x00)
99 send(27, atoi(argv[3]));
101 send(7, atoi(argv[4]));
103 printf("\n===================================================================\n\n");
111 // for( j=0; j<16; j++) {
113 printf("result: %d / %x \n", i, i);
115 printf("result: %d / %x \n", i, i);
117 printf("result: %d / %x \n", i, i);
119 printf("result: %d / %x \n", i, i);
121 printf("result: %d / %x \n", i, i);
123 printf("result: %d / %x \n", i, i);