[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Info-mtools] What does it take to support FAT12 dialects?

From: Alain Knaff
Subject: Re: [Info-mtools] What does it take to support FAT12 dialects?
Date: Sun, 30 May 2021 19:34:51 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0


In today's 4.0.28 release I finally opted for introducing an option to
remap the order of sectors in the image file. I.e. the upper layers of
mtools will "see" an image where some sectors are skipped, some others
filled in, and some used from the image.

This is done by specifying a along with the image:

mdir -i ~/tmp/24.img\|data_map=1s,zero31s,28s,skip1s -a ::

A data map is a comma-separated sequence of source type and size. Source
type may be "zero" for zero-filled sectors created by map, "skip" for
data in raw image to be ignored (skipped), and nothing for data to be
used as is (copied) from the raw image. Datamap is automatically
complemented by an implicit last element of data to be used as
is from current offset to end of file. Each size is a number followed by
a unit: "s" for a 512 byte sector, "K" for Kbytes, "M" for megabytes,
"G" for gigabytes, and nothing for single bytes.

data_map=1s,zero31s,28s,skip1s can be used with IBM 3174 floppy images.

First sector ("1s", boot sector) is used as is.

Then follow 31 fake zero-filled sectors ("zero31s"). These represent the
unused extra 31 reserved sectors that we saw specified in the boot sector.

Then follow the next 28 sectors from image ("28s"), these are used as is
(they contain FAT and root directory).

Then, finally, one sector from image is skipped ("skip1s"). This is the
because the physical floppies actually lack 30 sectors on first track
(only 15 sectors instead of 30 per side). Ucode3174 skips that sector by
enforcing that sneaky alignment constraint that I mentioned in one of my
previous messages :-)

And finally the rest of the image is used as is (implicit)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]