Re: Found something interesting re MS-DOS

From: Michał Pleban <lists_at_michau.name>
Date: Thu, 04 Jan 2018 12:51:59 +0100
Message-ID: <5A4E155F.6080405@michau.name>
Hello!

Mia Magnusson wrote:

> It seems like with this it could be possible to make a special CBM-II
> version of MS-DOS that is as compatible with PC as the stock MS-DOS 3.3
> (except for defragmentation utilities and similar stuff) but with the
> possibility to use more of the disks for DOS. Choose a combination of
> tracks, sectors and sides that gives a total number of sectors that
> line up good with the number of sectors that's on a CBM disk.

I have been thinking about that and I suppose there are better ways to
do that than modifying IO.SYS (for which we don't have a source code
anyway):

* MS-DOS allows writing installable device drivers - they are meant to
be written to support non-standard devices (such as CD-ROM drives) and
it's a perfect example of where it would be applicable.

* It might not even be necessary to write a driver at all - the diskette
boot sector contains a parameter block with the number of tracks,
sectors and heads. Modifying this information might be sufficient to
support the bigger 8250 diskette, but I haven't tried it yet.

> Perhaps two different formats, one that uses all of the disk except two
> sectors for BAM and directory (to make it possible to read the
> directory in CBM mode and realize that it's a MS-DOS disk and not just
> a disk containing garbage that can be overwritten). The other format
> would leave just enough space for the CBM-II PC emulator software with
> BAM and directory entries on the disk, and leave the rest for MS-DOS.
> (Or maybe it's already good enough as it is?)

I don't think it's worth it to support two different formats. The
current implementation leaves tracks 37-39 for the emulation layer, it's
a bit over 21 kB reserved space. I am not sure this extra 21 kB is worth
the effort (also, BAM is four sectors, not one).

You can see the current implementation in the source code:

https://github.com/MichalPleban/cbm2-pc-emulator/blob/master/src/8088/include/ipc.asm

The function "IPC_SectorCalc" is responsible from translating between PC
and CBM disk geometry.

Regards,
Michau.

       Message was sent through the cbm-hackers mailing list
Received on 2018-01-04 12:01:33

Archive generated by hypermail 2.2.0.