|
@@ -47,12 +47,15 @@ IRQHANDLER(abc)
|
|
|
if (dev->out_cnt)
|
|
|
callback &= ~1;
|
|
|
}
|
|
|
+ dev->out_data[addr] = data;
|
|
|
+ if (callback & 1)
|
|
|
+ dev->callback_out(dev, data);
|
|
|
+ break;
|
|
|
|
|
|
- /* fall through */
|
|
|
case 2 ... 5:
|
|
|
dev->out_data[addr] = data;
|
|
|
if (callback & (1 << addr))
|
|
|
- dev->callback_out(dev, data, addr);
|
|
|
+ dev->callback_cmd(dev, data, addr);
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
@@ -83,14 +86,14 @@ IRQHANDLER(abc)
|
|
|
} else {
|
|
|
ABC_INP0_DATA = dev->inp_data[0] = dev->inp_data_def;
|
|
|
if (callback & 0x100)
|
|
|
- dev->callback_inp(dev, 0);
|
|
|
+ dev->callback_inp(dev);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (what & 0x200) {
|
|
|
ABC_INP1_DATA = dev->inp_data[1];
|
|
|
if (callback & 0x200)
|
|
|
- dev->callback_inp(dev, 1);
|
|
|
+ dev->callback_status(dev);
|
|
|
}
|
|
|
|
|
|
ABC_BUSY_STATUS = what;
|