Re: CBM900 hard disk timeout

From: Michał Pleban <>
Date: Sun, 24 Aug 2014 22:54:11 +0200
Message-ID: <>

Michał Pleban wrote:

> All transfers to the controller are via DMA. The computer lays a
> six-byte command block in memory, then instructs the DMA chip to send it
> to the controller, and read the status and data.
> So it's also possible that the 8716 DMA chip is broken in some way. That
> would be most unfortunate as there is no possible source of this chip
> other than another C900. However, I believe that the same chip is used
> also to send commands to the floppy, and the floppy works fine (the
> schematic is a bit unclear to me on this point, but the documentation of
> the floppy controller does mention that the data goes through the 8716).
> So hopefully the chip is working.

I am right now browsing the disassembly of the computer BIOS to see what
is happening. The results are not encouraging.

As I mentioned, the first error message I get on drive #0 is:

read error: status=0xff block=0x00000002

The BIOS disassembly shows that 0xff is a placeholder placed by the BIOS
instead of the status code. The controller is supposed to overwrite it
with a status response via DMA. The BIOS code tries 30000000 times
whether this status changes from 0xff to smething else, and if it does
not, displays a "TIMEOUT" message. The displaying can be supressed by
some memory variable whose purpose is yet unclear to me, and that's
probably I don't see the "TIMEOUT" message on the first line, but the
timeout (indicated by the 0xff code) still occurs.

That condition basically means that the controller did not respond with
a status code at all. So it would rather mean timeout in communication
with the controller, not timeout in reading from disk. If the controller
wasn't able to communicate with the disk, it would show some SASI-like
error code from the controller.

That case would mean to me that either the DMA chip is broken or the
controller is dead. But either case is hard to explain since the
computer is somehow able to detect if the controller is attached. I am
leaning towards reflashing the controller MCU, but I don't have a
programmer or the 8749 chip.


       Message was sent through the cbm-hackers mailing list
Received on 2014-08-24 21:02:05

Archive generated by hypermail 2.2.0.