+#else
+ if (parportfd < 0)
+ return ret;
+
+ switch(tr->cmdTrans) {
+ case 10: /* Read Byte */
+ if ((unsigned long)tr->dwPort == ppbase) { /* Data Port */
+ ret = 0; /* We don't support reading of the data port */
+ } else if ((unsigned long)tr->dwPort == ppbase + 1) { /* Status Port */
+ DPRINTF("status port\n");
+ ret = ioctl(parportfd, PPRSTATUS, &val);
+ } else if ((unsigned long)tr->dwPort == ppbase + 2) { /* Control Port */
+ DPRINTF("control port\n");
+ ret = ioctl(parportfd, PPRCONTROL, &val);
+ }
+ break;
+ case 13: /* Write Byte */
+ if ((unsigned long)tr->dwPort == ppbase) { /* Data Port */
+ DPRINTF("data port\n");
+ ret = ioctl(parportfd, PPWDATA, &val);
+ } else if ((unsigned long)tr->dwPort == ppbase + 1) { /* Status Port */
+ ret = 0; /* Status Port is readonly */
+ } else if ((unsigned long)tr->dwPort == ppbase + 2) { /* Control Port */
+ DPRINTF("control port\n");
+ ret = ioctl(parportfd, PPWCONTROL, &val);
+ }
+ break;
+ default:
+ fprintf(stderr,"!!!Unsupported TRANSFER command: %lu!!!\n", tr->cmdTrans);
+ ret = -1;
+ break;
+ }
+
+ tr->Data.Byte = val;