Re: 8088 and 610 saga continues...

From: Michał Pleban <lists_at_michau.name>
Date: Mon, 24 Jan 2011 10:32:26 +0100
Message-ID: <4D3D472A.3060005@michau.name>
Hello!

W dniu 2011-01-23 23:39, Hoffmann-Vetter, Martin pisze:

> Please. Do you want to post it on your blog?

Yes, I have posted it here:

http://www.cbm-ii.com/ms-dos-1-25-startup-files-disassembly/

> Yes, i've found that address in the rom listing. But not all addresses are usable. So i think it starts at $0828 or with ipc command $0c.

No, there are lower commands, for example 07h is the disk read sector
command (see below).

>> There are some things I don't
>> understand, for example some strange stuff at $0600-$07FF.
> You mean the $f0f0 and $0f0f?

Yes, exactly. Meybe it's just a placeholder so that the rest of the code
is moved to $0800 after the loader.

> What is your ipc command code for reading a sector from disk? I don't find command with highest bit set. So no command has access to dram. That must be false!

Yes, there is! It's at 0040:08EC, as you can see it uses command 097h
which is 07h with highest bit set.

> That's simple, but who do it?

That's the big question :-) I don't see anything in the IPC ROM that
could do it.

> But the 8088 has two address spaces. One for memory (dram) and the other for io (ports). And why is the difference between high and low profile? So is think it must be on the 6509 side or around the dram!

Yes, these two address spaces are separate, and the 8288 chip ensures
this. So I really don't see why such thing would occur on the 8088 side.

> Okay, if the address 0000:0021 is overwritten the system must running after starting up.

Yes, the system always executes some code before it hangs, and at least
one IPC call.

> No! The ipc code ends in a endlees jump loop. The 8088 do it when the dram bus is give up. The only way out of this loop is an irq. So i think the 6509 triggers the 8088 over an interrupt.

Where do you see this endless loop? Please look at Ruud's disassembly.
IPC is handled by the "rqster" procedure, I don't see any endless loop
there. It just sends the IRQ request to 6509, sends parameter bytes,
then receives the answer bytes and returns.

> The dot clock is the same, 18Mhz!

Well, if the schematics are identical, there may be another explanation:
the 610 motherboard may have a bug which is not reflected in the
schematics. Maybe there is some line or lines which is different from
the schematic and it is causing the problem. It may be well around DRAM,
but I have no idea how to find it...

Regards,
Michau.

       Message was sent through the cbm-hackers mailing list
Received on 2011-01-24 10:00:13

Archive generated by hypermail 2.2.0.