Revision 42c1a22d
b/hw/sb16.c | ||
---|---|---|
1341 | 1341 |
} |
1342 | 1342 |
}; |
1343 | 1343 |
|
1344 |
static const MemoryRegionPortio sb16_ioport_list[] = { |
|
1345 |
{ 4, 1, 1, .write = mixer_write_indexb }, |
|
1346 |
{ 4, 1, 2, .write = mixer_write_indexw }, |
|
1347 |
{ 5, 1, 1, .read = mixer_read, .write = mixer_write_datab }, |
|
1348 |
{ 6, 1, 1, .read = dsp_read, .write = dsp_write }, |
|
1349 |
{ 10, 1, 1, .read = dsp_read }, |
|
1350 |
{ 12, 1, 1, .write = dsp_write }, |
|
1351 |
{ 12, 4, 1, .read = dsp_read }, |
|
1352 |
PORTIO_END_OF_LIST(), |
|
1353 |
}; |
|
1354 |
|
|
1355 |
|
|
1344 | 1356 |
static int sb16_initfn (ISADevice *dev) |
1345 | 1357 |
{ |
1346 |
static const uint8_t dsp_write_ports[] = {0x6, 0xc}; |
|
1347 |
static const uint8_t dsp_read_ports[] = {0x6, 0xa, 0xc, 0xd, 0xe, 0xf}; |
|
1348 | 1358 |
SB16State *s; |
1349 |
int i; |
|
1350 | 1359 |
|
1351 | 1360 |
s = DO_UPCAST (SB16State, dev, dev); |
1352 | 1361 |
|
... | ... | |
1366 | 1375 |
dolog ("warning: Could not create auxiliary timer\n"); |
1367 | 1376 |
} |
1368 | 1377 |
|
1369 |
for (i = 0; i < ARRAY_SIZE (dsp_write_ports); i++) { |
|
1370 |
register_ioport_write (s->port + dsp_write_ports[i], 1, 1, dsp_write, s); |
|
1371 |
isa_init_ioport (dev, s->port + dsp_write_ports[i]); |
|
1372 |
} |
|
1373 |
|
|
1374 |
for (i = 0; i < ARRAY_SIZE (dsp_read_ports); i++) { |
|
1375 |
register_ioport_read (s->port + dsp_read_ports[i], 1, 1, dsp_read, s); |
|
1376 |
isa_init_ioport (dev, s->port + dsp_read_ports[i]); |
|
1377 |
} |
|
1378 |
|
|
1379 |
register_ioport_write (s->port + 0x4, 1, 1, mixer_write_indexb, s); |
|
1380 |
register_ioport_write (s->port + 0x4, 1, 2, mixer_write_indexw, s); |
|
1381 |
isa_init_ioport (dev, s->port + 0x4); |
|
1382 |
register_ioport_read (s->port + 0x5, 1, 1, mixer_read, s); |
|
1383 |
register_ioport_write (s->port + 0x5, 1, 1, mixer_write_datab, s); |
|
1384 |
isa_init_ioport (dev, s->port + 0x5); |
|
1378 |
isa_register_portio_list (dev, s->port, sb16_ioport_list, s, "sb16"); |
|
1385 | 1379 |
|
1386 | 1380 |
DMA_register_channel (s->hdma, SB_read_DMA, s); |
1387 | 1381 |
DMA_register_channel (s->dma, SB_read_DMA, s); |
Also available in: Unified diff