Merge pull request #1756 from Ompronce/master
Added alternate Tandy PSSJ I/O port at 1E0h (used in Tandy 1000 RSX), as well restoring the SN76489 to the IBM PCjr.
This commit is contained in:
@@ -859,8 +859,8 @@ machine_pcjr_init(const machine_t *model)
|
|||||||
keyboard_set_table(scancode_xt);
|
keyboard_set_table(scancode_xt);
|
||||||
keyboard_send = kbd_adddata_ex;
|
keyboard_send = kbd_adddata_ex;
|
||||||
|
|
||||||
/* Technically it's the SN76496N, but the NCR 8496 is a drop-in replacement for it. */
|
/* Technically it's the SN76496N, but the SN76489 is identical to the SN76496N. */
|
||||||
device_add(&ncr8496_device);
|
device_add(&sn76489_device);
|
||||||
|
|
||||||
nmi_mask = 0x80;
|
nmi_mask = 0x80;
|
||||||
|
|
||||||
|
@@ -201,6 +201,20 @@ void *pssj_init(const device_t *info)
|
|||||||
return pssj;
|
return pssj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *pssj_1e0_init(const device_t *info)
|
||||||
|
{
|
||||||
|
pssj_t *pssj = malloc(sizeof(pssj_t));
|
||||||
|
memset(pssj, 0, sizeof(pssj_t));
|
||||||
|
|
||||||
|
sn76489_init(&pssj->sn76489, 0x01e0, 0x0004, PSSJ, 3579545);
|
||||||
|
|
||||||
|
io_sethandler(0x01E4, 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)
|
void pssj_close(void *p)
|
||||||
{
|
{
|
||||||
pssj_t *pssj = (pssj_t *)p;
|
pssj_t *pssj = (pssj_t *)p;
|
||||||
@@ -219,3 +233,15 @@ const device_t pssj_device =
|
|||||||
NULL,
|
NULL,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const device_t pssj_1e0_device =
|
||||||
|
{
|
||||||
|
"Tandy PSSJ (port 1e0h)",
|
||||||
|
0, 0,
|
||||||
|
pssj_1e0_init,
|
||||||
|
pssj_close,
|
||||||
|
NULL,
|
||||||
|
{ NULL },
|
||||||
|
NULL,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
Reference in New Issue
Block a user