More sonarlint work
This commit is contained in:
@@ -36,6 +36,7 @@
|
||||
#include <86box/snd_ad1848.h>
|
||||
#include <86box/snd_opl.h>
|
||||
#include <86box/snd_sb.h>
|
||||
#include <86box/plat_unused.h>
|
||||
|
||||
#define CRYSTAL_NOEEPROM 0x100
|
||||
|
||||
@@ -133,14 +134,32 @@ typedef struct cs423x_t {
|
||||
ad1848_t ad1848;
|
||||
sb_t *sb;
|
||||
void *gameport;
|
||||
void *i2c, *eeprom;
|
||||
void *i2c;
|
||||
void *eeprom;
|
||||
|
||||
uint16_t wss_base, opl_base, sb_base, ctrl_base, ram_addr, eeprom_size : 11, pnp_offset;
|
||||
uint8_t type, ad1848_type, regs[8], indirect_regs[16],
|
||||
eeprom_data[2048], ram_data[65536], ram_dl : 2, opl_wss : 1;
|
||||
char *nvr_path;
|
||||
uint16_t wss_base;
|
||||
uint16_t opl_base;
|
||||
uint16_t sb_base;
|
||||
uint16_t ctrl_base;
|
||||
uint16_t ram_addr;
|
||||
uint16_t eeprom_size : 11;
|
||||
uint16_t pnp_offset;
|
||||
uint8_t type;
|
||||
uint8_t ad1848_type;
|
||||
uint8_t regs[8];
|
||||
uint8_t indirect_regs[16];
|
||||
uint8_t eeprom_data[2048];
|
||||
uint8_t ram_data[65536];
|
||||
uint8_t ram_dl : 2;
|
||||
uint8_t opl_wss : 1;
|
||||
char *nvr_path;
|
||||
|
||||
uint8_t pnp_enable : 1, key_pos : 5, slam_enable : 1, slam_state : 2, slam_ld, slam_reg;
|
||||
uint8_t pnp_enable : 1;
|
||||
uint8_t key_pos : 5;
|
||||
uint8_t slam_enable : 1;
|
||||
uint8_t slam_state : 2;
|
||||
uint8_t slam_ld;
|
||||
uint8_t slam_reg;
|
||||
isapnp_device_config_t *slam_config;
|
||||
} cs423x_t;
|
||||
|
||||
@@ -198,6 +217,9 @@ cs423x_read(uint16_t addr, void *priv)
|
||||
ret |= 0x20;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -264,6 +286,9 @@ cs423x_write(uint16_t addr, uint8_t val, void *priv)
|
||||
dev->ad1848.wten = !!(val & 0x08);
|
||||
ad1848_updatevolmask(&dev->ad1848);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
dev->indirect_regs[dev->regs[3]] = val;
|
||||
break;
|
||||
@@ -274,7 +299,7 @@ cs423x_write(uint16_t addr, uint8_t val, void *priv)
|
||||
switch (val) {
|
||||
case 0x55: /* Disable PnP Key */
|
||||
dev->pnp_enable = 0;
|
||||
/* fall-through */
|
||||
[[fallthrough]];
|
||||
|
||||
case 0x5a: /* Update Hardware Configuration Data */
|
||||
cs423x_pnp_enable(dev, 0, 1);
|
||||
@@ -290,6 +315,9 @@ cs423x_write(uint16_t addr, uint8_t val, void *priv)
|
||||
case 0xaa: /* Download RAM */
|
||||
dev->ram_dl = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -306,6 +334,9 @@ cs423x_write(uint16_t addr, uint8_t val, void *priv)
|
||||
case 3: /* data */
|
||||
dev->ram_data[dev->ram_addr++] = val;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -321,13 +352,16 @@ cs423x_write(uint16_t addr, uint8_t val, void *priv)
|
||||
|
||||
case 7: /* Global Status */
|
||||
return;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
dev->regs[reg] = val;
|
||||
}
|
||||
|
||||
static void
|
||||
cs423x_slam_write(uint16_t addr, uint8_t val, void *priv)
|
||||
cs423x_slam_write(UNUSED(uint16_t addr), uint8_t val, void *priv)
|
||||
{
|
||||
cs423x_t *dev = (cs423x_t *) priv;
|
||||
uint8_t idx;
|
||||
@@ -441,11 +475,17 @@ cs423x_slam_write(uint16_t addr, uint8_t val, void *priv)
|
||||
/* Activate or deactivate the device. */
|
||||
dev->slam_config->activate = val & 0x01;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* Prepare for the next register, unless a two-byte read returns above. */
|
||||
dev->slam_state = CRYSTAL_SLAM_INDEX;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -467,7 +507,7 @@ cs423x_slam_enable(cs423x_t *dev, uint8_t enable)
|
||||
}
|
||||
|
||||
static void
|
||||
cs423x_ctxswitch_write(uint16_t addr, uint8_t val, void *priv)
|
||||
cs423x_ctxswitch_write(uint16_t addr, UNUSED(uint8_t val), void *priv)
|
||||
{
|
||||
cs423x_t *dev = (cs423x_t *) priv;
|
||||
uint8_t ctx = (dev->regs[7] & 0x80);
|
||||
@@ -542,7 +582,9 @@ cs423x_pnp_enable(cs423x_t *dev, uint8_t update_rom, uint8_t update_hwconfig)
|
||||
/* But wait! The TriGem Delhi-III BIOS sends command 0x55, and its behavior doesn't
|
||||
line up with real hardware (still listed in the POST summary and seen by software).
|
||||
Disable the PnP key disabling mechanism until someone figures something out. */
|
||||
// isapnp_enable_card(dev->pnp_card, ((dev->ram_data[0x4002] & 0x20) || !dev->pnp_enable) ? ISAPNP_CARD_NO_KEY : ISAPNP_CARD_ENABLE);
|
||||
#if 0
|
||||
isapnp_enable_card(dev->pnp_card, ((dev->ram_data[0x4002] & 0x20) || !dev->pnp_enable) ? ISAPNP_CARD_NO_KEY : ISAPNP_CARD_ENABLE);
|
||||
#endif
|
||||
if ((dev->ram_data[0x4002] & 0x20) || !dev->pnp_enable)
|
||||
pclog("CS423x: Attempted to disable PnP key\n");
|
||||
}
|
||||
@@ -674,6 +716,9 @@ cs423x_pnp_config_changed(uint8_t ld, isapnp_device_config_t *config, void *priv
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -764,6 +809,9 @@ cs423x_init(const device_t *info)
|
||||
dev->eeprom_data[26] = 0x38;
|
||||
dev->nvr_path = "cs4238b.nvr";
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* Load EEPROM contents from file if present. */
|
||||
@@ -775,6 +823,9 @@ cs423x_init(const device_t *info)
|
||||
dev->gameport = gameport_add(((dev->type == CRYSTAL_CS4235) || (dev->type == CRYSTAL_CS4236B)) ? &gameport_pnp_device : &gameport_pnp_6io_device);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* Initialize I2C bus for the EEPROM. */
|
||||
|
||||
Reference in New Issue
Block a user