case 0xc2:
case 0xc4:
case 0xc6:
+ write_log(_T("READ XT IO %02x PC=%08x\n"), addr, M68K_GETPC);
v = 0xffff;
break;
case 0xe0:
wd->dmac_dawr = b;
break;
break;
+ case 0xa0:
+ case 0xa2:
+ case 0xa4:
+ case 0xa6:
+ case 0xc2:
+ case 0xc4:
+ case 0xc6:
+ write_log(_T("WRITE XT IO %02x = %04x PC=%08x\n"), addr, b, M68K_GETPC);
+ break;
case 0xe0:
if (wd->dmac_dma <= 0)
scsi_dmac_start_dma (wd);
dmac_a20912_lgeti, dmac_a20912_wgeti, ABFLAG_IO | ABFLAG_SAFE
};
+
+/* SUPERDMAC */
+
static void mbdmac_write_word (struct wd_state *wd, uae_u32 addr, uae_u32 val)
{
#if A3000_DEBUG_IO > 1
int add_wd_scsi_hd (struct wd_state *wd, int ch, struct hd_hardfiledata *hfd, struct uaedev_config_info *ci, int scsi_level)
{
- init_scsi (wd);
freescsi (wd->scsis[ch]);
wd->scsis[ch] = NULL;
if (!hfd) {
int add_wd_scsi_cd (struct wd_state *wd, int ch, int unitnum)
{
- init_scsi (wd);
device_func_init (0);
freescsi (wd->scsis[ch]);
wd->scsis[ch] = scsi_alloc_cd (ch, unitnum, false);
int add_wd_scsi_tape (struct wd_state *wd, int ch, const TCHAR *tape_directory, bool readonly)
{
- init_scsi (wd);
freescsi (wd->scsis[ch]);
wd->scsis[ch] = scsi_alloc_tape (ch, tape_directory, readonly);
return wd->scsis[ch] ? 1 : 0;
int a3000_add_scsi_unit (int ch, struct uaedev_config_info *ci)
{
struct wd_state *wd = &wd_a3000;
- init_scsi (wd);
if (ci->type == UAEDEV_CD)
return add_wd_scsi_cd (wd, ch, ci->device_emu_unit);
else if (ci->type == UAEDEV_TAPE)
{
struct wd_state *wd = &wd_a3000;
init_scsi (wd);
+ wd->enabled = true;
wd->configured = -1;
wd->superdmac = 1;
map_banks (&mbdmac_a3000_bank, 0xDD, 1, 0);
int slotsize;
struct romlist *rl;
- if (!wd->enabled) {
+ if (devnum > 0 && !wd->enabled) {
expamem_next();
return;
}
+ init_scsi(wd);
wd->configured = 0;
wd->autoconfig = true;
memset (wd->dmacmemory, 0xff, sizeof wd->dmacmemory);
int roms[3];
int i;
- if (!ncr->enabled) {
+ if (!ncr->enabled && devnum > 0) {
expamem_next();
return;
}
+ ncr->enabled = true;
roms[0] = 58;
roms[1] = 57;
ncr_reset_board(&ncr_a4091);
ncr_reset_board(&ncr_a4091_2);
ncr_reset_board(&ncr_a4000t);
- if (currprefs.cs_mbdmac & 2)
+ if (currprefs.cs_mbdmac & 2) {
ncr_a4000t.configured = -1;
+ ncr_a4000t.enabled = true;
+ }
}
static int add_ncr_scsi_hd (struct ncr_state *ncr, int ch, struct hd_hardfiledata *hfd, struct uaedev_config_info *ci, int scsi_level)