Tandy PSSJ (ISA Clone boards)
This commit is contained in:
@@ -101,6 +101,7 @@ extern const device_t pas16_device;
|
||||
|
||||
/* Tandy PSSJ */
|
||||
extern const device_t pssj_device;
|
||||
extern const device_t pssj_isa_device;
|
||||
|
||||
/* Creative Labs Sound Blaster */
|
||||
extern const device_t sb_1_device;
|
||||
|
||||
@@ -215,6 +215,22 @@ void *pssj_1e0_init(const device_t *info)
|
||||
return pssj;
|
||||
}
|
||||
|
||||
void *pssj_isa_init(const device_t *info)
|
||||
{
|
||||
pssj_t *pssj = malloc(sizeof(pssj_t));
|
||||
memset(pssj, 0, sizeof(pssj_t));
|
||||
|
||||
sn76489_init(&pssj->sn76489, 0x00c0, 0x0004, PSSJ, 3579545);
|
||||
|
||||
uint16_t addr = device_get_config_hex16("base");
|
||||
|
||||
io_sethandler(addr, 0x0004, pssj_read, NULL, NULL, pssj_write, NULL, NULL, pssj);
|
||||
timer_add(&pssj->timer_count, pssj_callback, pssj, pssj->enable);
|
||||
sound_add_handler(pssj_get_buffer, pssj);
|
||||
|
||||
return pssj;
|
||||
}
|
||||
|
||||
void pssj_close(void *p)
|
||||
{
|
||||
pssj_t *pssj = (pssj_t *)p;
|
||||
@@ -222,10 +238,35 @@ void pssj_close(void *p)
|
||||
free(pssj);
|
||||
}
|
||||
|
||||
static const device_config_t pssj_isa_config[] =
|
||||
{
|
||||
{
|
||||
"base", "Address", CONFIG_HEX16, "", 0xC0, "", { 0 },
|
||||
{
|
||||
{
|
||||
"0xC0", 0xC0
|
||||
},
|
||||
{
|
||||
"0x1E0", 0x1E0
|
||||
},
|
||||
{
|
||||
"0x2C0", 0x2C0
|
||||
},
|
||||
{
|
||||
""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
};
|
||||
|
||||
const device_t pssj_device =
|
||||
{
|
||||
"Tandy PSSJ",
|
||||
0, 0,
|
||||
0,
|
||||
0,
|
||||
pssj_init,
|
||||
pssj_close,
|
||||
NULL,
|
||||
@@ -237,7 +278,8 @@ const device_t pssj_device =
|
||||
const device_t pssj_1e0_device =
|
||||
{
|
||||
"Tandy PSSJ (port 1e0h)",
|
||||
0, 0,
|
||||
0,
|
||||
0,
|
||||
pssj_1e0_init,
|
||||
pssj_close,
|
||||
NULL,
|
||||
@@ -245,3 +287,17 @@ const device_t pssj_1e0_device =
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
const device_t pssj_isa_device =
|
||||
{
|
||||
"Tandy PSSJ (ISA Clone)",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
pssj_isa_init,
|
||||
pssj_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
pssj_isa_config
|
||||
};
|
||||
|
||||
@@ -85,6 +85,7 @@ static const SOUND_CARD sound_cards[] =
|
||||
{
|
||||
{ "none", NULL },
|
||||
{ "internal", NULL },
|
||||
{ "pssj_isa", &pssj_isa_device },
|
||||
{ "adlib", &adlib_device },
|
||||
{ "adlibgold", &adgold_device },
|
||||
{ "azt2316a", &azt2316a_device },
|
||||
|
||||
Reference in New Issue
Block a user