Tools for working with Cidco Mailstations
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

util: move tribble code to tribble.c

+69 -62
+2 -2
Makefile
··· 63 63 hex2bin $> >/dev/null 64 64 65 65 # datadump/codedump receiver 66 - recvdump: util/recvdump.c 66 + recvdump: util/recvdump.c util/tribble.c 67 67 $(CC) $(CFLAGS) -o $@ $> $(IOPL_LIB) 68 68 69 69 # program loader 70 - sendload: util/sendload.c 70 + sendload: util/sendload.c util/tribble.c 71 71 $(CC) $(CFLAGS) -o $@ $> $(IOPL_LIB)
-1
util/recvdump.c
··· 16 16 #include <unistd.h> 17 17 #include <sys/types.h> 18 18 #include <machine/sysarch.h> 19 - #include <machine/pio.h> 20 19 21 20 #include "tribble.h" 22 21
+64
util/tribble.c
··· 1 + #include <sys/types.h> 2 + #include <machine/pio.h> 3 + 4 + #include "tribble.h" 5 + 6 + unsigned char 7 + recvtribble(void) 8 + { 9 + unsigned char b; 10 + 11 + /* drop busy/ack */ 12 + outb(DATA, 0); 13 + 14 + /* wait for (inverted) strobe */ 15 + while ((inb(STATUS) & stbin) != 0) 16 + ; 17 + 18 + /* grab tribble */ 19 + b = (inb(STATUS) >> 3) & tribmask; 20 + 21 + /* raise busy/ack */ 22 + outb(DATA,bsyout); 23 + 24 + /* wait for (inverted) UNstrobe */ 25 + while ((inb(STATUS) & stbin) == 0) 26 + ; 27 + 28 + return b; 29 + } 30 + 31 + void 32 + sendtribble(unsigned char b) 33 + { 34 + /* raise busy */ 35 + outb(DATA, bsyout); 36 + 37 + /* wait for mailstation to drop busy */ 38 + while ((inb(STATUS) & bsyin) != 0) 39 + ; 40 + 41 + /* send tribble */ 42 + outb(DATA, b & tribmask); 43 + 44 + /* strobe */ 45 + outb(DATA, b & tribmask | stbout); 46 + 47 + /* wait for ack */ 48 + while ((inb(STATUS) & bsyin) == 0) 49 + ; 50 + 51 + /* unstrobe */ 52 + outb(DATA, 0); 53 + 54 + /* raise busy/ack */ 55 + outb(DATA, bsyout); 56 + } 57 + 58 + void 59 + sendbyte(unsigned char b) 60 + { 61 + sendtribble(b); 62 + sendtribble(b >> 3); 63 + sendtribble(b >> 6); 64 + }
+3 -59
util/tribble.h
··· 11 11 #define tribmask 0x07 12 12 #define dibmask 0x03 13 13 14 - unsigned char 15 - recvtribble(void) 16 - { 17 - unsigned char b; 18 - 19 - /* drop busy/ack */ 20 - outb(DATA, 0); 21 - 22 - /* wait for (inverted) strobe */ 23 - while ((inb(STATUS) & stbin) != 0) 24 - ; 25 - 26 - /* grab tribble */ 27 - b = (inb(STATUS) >> 3) & tribmask; 28 - 29 - /* raise busy/ack */ 30 - outb(DATA,bsyout); 31 - 32 - /* wait for (inverted) UNstrobe */ 33 - while ((inb(STATUS) & stbin) == 0) 34 - ; 35 - 36 - return b; 37 - } 38 - 39 - void 40 - sendtribble(unsigned char b) 41 - { 42 - /* raise busy */ 43 - outb(DATA, bsyout); 44 - 45 - /* wait for mailstation to drop busy */ 46 - while ((inb(STATUS) & bsyin) != 0) 47 - ; 48 - 49 - /* send tribble */ 50 - outb(DATA, b & tribmask); 51 - 52 - /* strobe */ 53 - outb(DATA, b & tribmask | stbout); 54 - 55 - /* wait for ack */ 56 - while ((inb(STATUS) & bsyin) == 0) 57 - ; 58 - 59 - /* unstrobe */ 60 - outb(DATA, 0); 61 - 62 - /* raise busy/ack */ 63 - outb(DATA, bsyout); 64 - } 65 - 66 - void 67 - sendbyte(unsigned char b) 68 - { 69 - sendtribble(b); 70 - sendtribble(b >> 3); 71 - sendtribble(b >> 6); 72 - } 14 + unsigned char recvtribble(void); 15 + void sendtribble(unsigned char b); 16 + void sendbyte(unsigned char b);