Re: Software for MS-DOS 1.25

From: Michał Pleban <lists_at_michau.name>
Date: Thu, 12 Oct 2017 16:09:07 +0200
Message-ID: <59DF7783.1010104@michau.name>
Hello!

Baltissen, GJPAA (Ruud) wrote:

> The idea of IO.SYS was that every system should have its own IO.SYS so any hardware could supported. IO.SYS can be seen as the BIOS file of CP/M. Please have a look at: https://en.wikipedia.org/wiki/CP/M

Yes, I understand that. But I am not inclined to change someone else's
binary program, to which I have no source code, and do it repeatedly for
every MS-DOS version I want to run. I can do that if that's necessary,
but I don't want that.

> INT 13h takes care of loading data from floppies or hard disk drives. There are two possibilities:
> 1) the BOOT program, loaded by the 6509, provides this INT so the 8088 can use it to load IO.SYS.
> 2) the BOOT program tells the 6509 to load IO.SYS and then the 8088 run IO.SYS directly. Advantage: no INT 13h needed at all. 
> But in both cases an INT 13h provided by the original ROM will be overwritten. My proof: it hasn't one to start with so it MUST be provide by option 1 ) or 2).

No, the goal is a solution 3) The "original ROM" (the 2532) WILL have
INT 13h defined so that IO.SYS can be loaded by a simple bootloader (I
am thinking of simply grabbing the code from a DOS floppy boot sector).

> And when do you want to provide this API? IO.SYS changes the vector, it does not hook into like some programs hook into the timer interrupt. So we can forget "before". And because IO.SYS tries to load MSDOS.SYS over non-existing PC hardware, we can forget "after" as well.

Actually, I remembered now why DOS overwrites the INT 13h vector - it is
to patch a bug on the PC DMA chip which cannot work over 64 kB
boundaries. DOS provided buffers so that calls to read diskettes across
DMA boundaries will succeed, and patches the original INT 13h for this
reason.

So I am pretty sure it DOES hook into original INT 13h and not overwrite
it. In the evening I will run PCem to verify this.

> And just an idea that popped up: what is wrong using the original IO.SYS in combination with MS-DOS 3.3 for example?

I would expect that the interface provided by IO.SYS changed
significantly from DOS version 1.25 to version 3.30. Also, the original
IO.SYS works from segment 0040 whereas PC MSDOS.SYS wants to see it at 0070.

> I'm sorry if I look quite stubborn regarding IO.SYS but I'm quite sure that I am on the right track. 

I'm pretty sure it can be done without modifying the IO.SYS ;-)

Regards,
Michau.

       Message was sent through the cbm-hackers mailing list
Received on 2017-10-12 15:02:45

Archive generated by hypermail 2.2.0.