Re: [hatari-devel] Problem with SCSI initiator command register

[ Thread Index | Date Index | More Archives ]


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

Mail converted by MHonArc 2.6.19+