Re: [hatari-devel] Problem with SCSI initiator command register |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Hi,
On sunnuntai 25 maaliskuu 2012, Uwe Seimet wrote:
> I noticed that with Hatari the TT's SCSI initiator command register bits
> appear always to be set, at least bit 6. This results in HDDRIVER
> detecting SCSI hardware when there is none.
> Can you confirm that this bit is always set when reading the ICR
> ($ffff8783)?
According to the Hatari code in ioMemTabTT.c:
{ 0xff8780, 16, IoMem_VoidRead, IoMem_WriteWithoutInterception },
/* TT SCSI controller */
It currently returns always 0xff/0xffff/0xffffffff, depending on size
of the read:
--------------------------------
/**
* This is the read handler for the IO memory locations without an assigned
* IO register and which also do not generate a bus error. Reading from such
* a register will return the result 0xff.
*/
void IoMem_VoidRead(void)
{
Uint32 a;
/* handler is probably called only once, so we have to take care of
the neighbour "void IO registers" */
for (a = IoAccessBaseAddress; a < IoAccessBaseAddress +
nIoMemAccessSize; a++)
{
if (pInterceptReadTable[a - 0xff8000] == IoMem_VoidRead)
{
IoMem[a] = 0xff;
}
}
}
--------------------------------
> If this is the case, can Hatari be changed to return 0 on
> reads instead for this register?
What about all the other TT SCSI registers?
Should they all return also all zero bits?
I.e. should we specify IoMem_VoidRead_00() for the whole range
instead of IoMem_VoidRead()?
- Eero