LPT ports now no longer use the LPT device functions if priv is NULL.

This commit is contained in:
OBattler
2021-01-06 06:32:19 +01:00
parent 593b3adcfe
commit 08cc692173

View File

@@ -108,7 +108,7 @@ lpt_write(uint16_t port, uint8_t val, void *priv)
switch (port & 3) { switch (port & 3) {
case 0: case 0:
if (dev->dt && dev->dt->write_data) if (dev->dt && dev->dt->write_data && dev->priv)
dev->dt->write_data(val, dev->priv); dev->dt->write_data(val, dev->priv);
dev->dat = val; dev->dat = val;
break; break;
@@ -117,7 +117,7 @@ lpt_write(uint16_t port, uint8_t val, void *priv)
break; break;
case 2: case 2:
if (dev->dt && dev->dt->write_ctrl) if (dev->dt && dev->dt->write_ctrl && dev->priv)
dev->dt->write_ctrl(val, dev->priv); dev->dt->write_ctrl(val, dev->priv);
dev->ctrl = val; dev->ctrl = val;
dev->enable_irq = val & 0x10; dev->enable_irq = val & 0x10;
@@ -134,21 +134,21 @@ lpt_read(uint16_t port, void *priv)
switch (port & 3) { switch (port & 3) {
case 0: case 0:
if (dev->dt && dev->dt->read_data) if (dev->dt && dev->dt->read_data && dev->priv)
ret = dev->dt->read_data(dev->priv); ret = dev->dt->read_data(dev->priv);
else else
ret = dev->dat; ret = dev->dat;
break; break;
case 1: case 1:
if (dev->dt && dev->dt->read_status) if (dev->dt && dev->dt->read_status && dev->priv)
ret = dev->dt->read_status(dev->priv) | 0x07; ret = dev->dt->read_status(dev->priv) | 0x07;
else else
ret = 0xdf; ret = 0xdf;
break; break;
case 2: case 2:
if (dev->dt && dev->dt->read_ctrl) if (dev->dt && dev->dt->read_ctrl && dev->priv)
ret = (dev->dt->read_ctrl(dev->priv) & 0xef) | dev->enable_irq; ret = (dev->dt->read_ctrl(dev->priv) & 0xef) | dev->enable_irq;
else else
ret = 0xe0 | dev->ctrl | dev->enable_irq; ret = 0xe0 | dev->ctrl | dev->enable_irq;