[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Suggested change to add volume numbering to .dsk disk image files
On Mon, 14 Aug 2000 07:32:16 -0500, Rubywand <rubywand@swbell.net>
wrote:
>
> A long-standing problem is the failure of .dsk disk image format to
>preserve volume number for DOS 3.3 disks-- i.e. disks which run under DOS 3.3
>or some variant. As a result, quite a few games and other pieces of software
>which use special volume numbering for disk identification will not run
>correctly from .dsk.
>
> Instead of changing the format of .dsk file content, perhaps emu writers
>could adopt a file naming convention which allows specifying volume number. A
>letter-number code just before the ".dsk" suffix could specify volume number.
>
> For example "VV238" in the file name NARFGAMEVV238.dsk would tell the
>emulator that the NARFGAME disk has Volume Number 238.
>
>
>
>Rubywand
A good idea, albeit temporary. What use would it be to be
backwards-compatible with disks that won't work without volume number
anyway? Long filenames can be an issue on old MS-DOS-based machines.
My point being, if emu writers change their code to support volume
number implementation, it would be just as well to support a new,
dsk-based file format. How about, .aii? It could support one or
more sides of a 5.25" floppy, with 35-, 36-, or 40-track sides. Or,
it could be an image of a 3.5" floppy or hard disk. Bad tracks or
sectors would be copied, too, to allow full and complete
representation of the original media. A header might look like this:
(in html form :>)
<HEADER>
AIID - 4-byte string- ID tag
[XXXX] - DWORD, in bytes- Offset of disk data.
[XXXX] - DWORD, in bytes- Size of disk data (all sides).
[XXXX] - DWORD, in bytes- Size of per-side header data.
[X] - Byte, in sides- Number of sides.
[XXXXXXXX] - 8-byte string- Spacer for future implement.
<PER-SIDE HEADER DATA>
<HEADER DATA FOR SIDE 1>
[XXXX] - DWORD, in bytes- Size of header data for side 1.
[XXXX] - DWORD, in bytes- Size of disk data for side 1.
[XXXX] - DWORD, in bytes- Offset of disk data for side 1.
[XXX] - 3-byte String- Format of side- DSK, NIB, RAW, or
- whatever.
[X] - Byte- Volume number for side 1.
[X] - Byte, in tracks- Number of tracks for side 1.
[XXXX] - DWORD, in bytes- Size of error table data (can be 0
- if no errors).
[XXXXXXXX] - 8-byte string- Spacer for future implement.
<ERROR TABLE DATA (optional)>
[XXXX] - DWORD, in bytes- Offset from beginning of disk side.
[XXXX] - DWORD, in bytes- Length of bad region.
[XXXX] - DWORD, in bytes- Offset from beginning of disk side.
[XXXX] - DWORD, in bytes- Length of bad region.
[XXXX] - DWORD, in bytes- Offset from beginning of disk side.
[XXXX] - DWORD, in bytes- Length of bad region.
[XXXX] - DWORD, in bytes- Offset from beginning of disk side.
[XXXX] - DWORD, in bytes- Length of bad region.
.
.
.
</ERROR TABLE DATA>
</HEADER DATA FOR SIDE 1>
<HEADER DATA FOR SIDE 2>
[XXXX] - DWORD, in bytes- Size of header data for side 2.
[XXXX] - DWORD, in bytes- Size of disk data for side 2.
[XXXX] - DWORD, in bytes- Offset of disk data for side 2.
[XXX] - 3-byte String- Format of side- DSK, NIB, RAW, or
- whatever.
[X] - Byte- Volume number for side 2.
[X] - Byte, in tracks- Number of tracks for side 2.
[XXXX] - DWORD, in bytes- Size of error table data (can be 0
- if no errors).
[XXXXXXXX] - 8-byte string- Spacer for future implement.
<ERROR TABLE DATA (optional)>
[XXXX] - DWORD, in bytes- Offset from beginning of disk side.
[XXXX] - DWORD, in bytes- Length of bad region.
[XXXX] - DWORD, in bytes- Offset from beginning of disk side.
[XXXX] - DWORD, in bytes- Length of bad region.
[XXXX] - DWORD, in bytes- Offset from beginning of disk side.
[XXXX] - DWORD, in bytes- Length of bad region.
[XXXX] - DWORD, in bytes- Offset from beginning of disk side.
[XXXX] - DWORD, in bytes- Length of bad region.
.
.
.
</ERROR TABLE DATA>
</HEADER DATA FOR SIDE 2>
.
.
.
</PER-SIDE HEADER DATA>
</HEADER>
<DISK DATA FOR SIDE 1>
(Disk Data)
</DISK DATA FOR SIDE 1>
<DISK DATA FOR SIDE 2>
(Disk Data)
</DISK DATA FOR SIDE 2>
All offsets are offset from the beginning of the file, except the
error table data, which are offset from the beginning of that side's
disk data. Format can be any supported format-- One should use DSK.
It is small and there is no reason not to use it anymore. Every disk
should be able to be copied to PC, and vice versa, with all things
intact.
larva_jt1@yahoo.com