вые номера секторов, а разделения расширения регистра используют
- 13-34 -
32-битовые номера секторов. Это может вызвать проблемы, связанные
с несовместимостью со многими прикладными программами, которые
обращаются к таблице размещения файлов (FAT) на диске и которые
обращаются к секторам с 16-битовыми значениями. Подробнее о фор-
матах дисков можно узнать в главе 11.
Таблица 13-9
Форматы гибких дисков операционной системы MS-DOS
ДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДД
¦ Версия операционной системы MS-DOS ¦ См.
Характе- ГДДДДДВДДДДДВДДДДДВДДДДДВДДДДДВДДДДВДДДДґ Примеча-
ристики ¦ 1.0 ¦ 1.1 ¦ 2.0 ¦ 2.1 ¦ 3.0 ¦ 3.2¦ 3.3¦ ние 1
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДДВДДДДВДДД
Размер ¦5,25"¦5,25"¦5,25"¦5,25"¦5,25"¦3,5"¦3,5"¦ 8" ¦ 8" ¦ 8"
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Байт ¦ FFE ¦ FFF ¦ FFC ¦ FFD ¦ FF9 ¦FF9 ¦FF0 ¦FFE ¦FFD ¦FFE
формата ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Стороны ¦ 1 ¦ 2 ¦ 1 ¦ 2 ¦ 2 ¦ 2 ¦ 2 ¦ 1 ¦ 2 ¦ 2
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Количество¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
треков на ¦ 40 ¦ 40 ¦ 40 ¦ 40 ¦ 80 ¦ 80 ¦ 80 ¦77 ¦77 ¦77
сторону ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Количество¦ 8 ¦ 8 ¦ 9 ¦ 9 ¦ 15 ¦ 9 ¦ 18 ¦26 ¦26 ¦ 8
секторов ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Количество¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
байтов в ¦ 512 ¦ 512 ¦ 512 ¦ 512 ¦ 512 ¦512 ¦512 ¦128 ¦128 ¦1024
секторе ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Количество¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
секторов в¦ 1 ¦ 2 ¦ 1 ¦ 2 ¦ 1 ¦ 2 ¦ 1 ¦ 4 ¦ 4 ¦ 1
кластере ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Секторы ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
начальной ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 4 ¦ 1
загрузки ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Секторы ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
таблицы ¦ 1 ¦ 1 ¦ 2 ¦ 2 ¦ 7 ¦ 3 ¦ 9 ¦ 6 ¦ 6 ¦ 2
FAT ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Количество¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
таблиц FAT¦ 2 ¦ 2 ¦ 2 ¦ 2 ¦ 2 ¦ 2 ¦ 2 ¦ 2 ¦ 2 ¦ 2
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Секторы ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
корневого ¦ 4 ¦ 7 ¦ 4 ¦ 7 ¦ 14 ¦ 7 ¦ 14 ¦ 17 ¦ 17 ¦ 6
каталога ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Элементы ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
корневого ¦ 64 ¦ 112 ¦ 64 ¦ 112 ¦ 224 ¦ 112¦ 224¦ 68 ¦ 68 ¦192
каталога ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Общее ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
количество¦ 320 ¦ 640 ¦ 360 ¦ 720 ¦ 2400¦1440¦2880¦2002¦4004¦1232
секторов ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
- 13-35 -
ДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДД
¦ Версия операционной системы MS-DOS ¦ См.
Характе- ГДДДДДВДДДДДВДДДДДВДДДДДВДДДДДВДДДДВДДДДґ Примеча-
ристики ¦ 1.0 ¦ 1.1 ¦ 2.0 ¦ 2.1 ¦ 3.0 ¦ 3.2¦ 3.3¦ ние 1
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДДВДДДДВДДД
Секторы ¦ 313 ¦ 630 ¦ 351 ¦ 708 ¦ 2371¦1426¦2857¦1972¦3940¦1221
данных ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Общее ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
количество¦ 313 ¦ 315 ¦ 351 ¦ 354 ¦2371 ¦713 ¦2857¦493 ¦985 ¦1221
кластеров ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Общая ¦ 160 ¦ 320 ¦ 180 ¦ 360 ¦ 1,2 ¦720 ¦1.44¦501 ¦250,¦1,232
емкость ¦ Кб ¦ Кб ¦ Кб ¦ Кб ¦ Мб ¦ Кб ¦ Мб ¦Кб ¦25Кб¦ Мб
ДДДДДДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДДД†ДДДД†ДДДД†ДДДД†ДДДД†ДДД
Общая ¦156,5¦ 315 ¦175,5¦ 354 ¦1, ¦713 ¦1, ¦246 ¦492,¦1,221
емкость ¦ Кб ¦ Кб ¦ Кб ¦ Кб ¦,1855¦ Кб ¦4285¦Кб ¦5 Кб¦ Мб
для данных¦ ¦ ¦ ¦ ¦ Мб ¦ ¦ Мб ¦ ¦ ¦
ДДДДДДДДДДБДДДДДБДДДДДБДДДДДБДДДДДБДДДДДБДДДДБДДДДБДДДДБДДДДБДДД
Примечания:
1. значения байта описателя формата, используемые для
идентификации формата 8-дюймового диска, являются такими же,
что используются для некоторых форматов 5,25-дюймовых дисков.
Разные значения определяются либо системой BIOS конкретной
реализации операционной системы MS-DOS, либо дисководом.
Большая часть реализаций операционной системы MS-DOS, особен-
но те, в которых система BIOS расположена в ПЗУ, не содержат
в системе BIOS необходимых стандартных программ для 8-дюймо-
вых дисков. Таким образом, их поддержка осуществляется обычно
при помощи специального драйвера дисковода. Поскольку первый
8-дюймовый формат одинарной плотности записи имеет то же
значение байта описателя (FFF), что и последний формат (с удво-
енной плотностью записи), операционная система MS-DOS:
по-разному подходит к попыткам чтения диска: сначала система
предполагает, что диск отформатирован с одинарной плотностью
записи. Если после прочтения первого сектора ошибок не возни-
кает, операционная система MS-DOS продолжает рассматривать
диск, как диск с одинарной плотностью записи.
Если после прочтения первого сектора диска возникла
ошибка, операционная система MS-DOS предполагает, что диск
отформатирован с удвоенной плотностью записи, и система снова
повторяет попытку чтения первого сектора. Отметим также, что
некоторые системы поддерживают формат удвоенной плотности для
односторонних, 8-дюймовых дисков, равную приблизительно поло-
вине емкости двухсторонних дисков (610 Кбайт).
Управление файлами
При работе с разными версиями операционной системы MS-DOS
следует обратить внимание на способ управления файлами в Ваших
программах. Когда операционная система MS-DOS только что была
создана, она обеспечивала возможности по управлению файлами,
сходные с теми, что используются под управлением операционной
системы CP/M (управляющая программа для микрокомпьютеров). Это
сходство сохранялось намеренно, поскольку оно предоставляло прог-
раммисту сравнительно простой способ преобразования как 8-бито-
вых, так и 16-битовых программ из среды операционной системы СР/M
- 13-36 -
в среду операционной системы MS-DOS. С целью поддержания совмес-
тимости все версии операционной системы MS-DOS вплоть до версии
3.1 имеют одинаковые возможности по управлению файлами. В версии
2.0 операционной системы MS-DOS тем не менее, был внедрен новый
способ, который представляет собой главное отступление от метода
управления файлами, использовавшегося в операционной системе
СР/M. Этот метод очень похож на метод управления файлами, исполь-
зуемый в операционной системе XENIX. Несмотря на то, что новый
метод гораздо проще в использовании, он, однако, не обеспечивает
совместимости со старым способом, а, следовательно, требует повы-
шенного внимания при работе с ним. Ниже описываются различия меж-
ду двумя указанными методами.
Использование блоков управления файлами (FCB)
Обращения к функциям с 0Fh по 29h, введенные в первой версии
операционной системы MS-DOS, используются вместе с блоком управ-
ления файлом (FCB) для создания, модификации и удаления файла.
Блок FCB представляет собой сегмент программы, записанный в памя-
ти, в котором определяются параметры файла, управляемого програм-
мой. Операционная система MS-DOS и прикладная программа использу-
ют параметры блока FCB для установления местоположения файла, его
сегмента, размера и других сведений об этом файле. Однако, по-
скольку для действительного создания всего блока FCB не существу-
ет обращений ни к каким функциям, блок FCB должен уже быть зара-
нее определен до того, как в программе будут использованы
относящиеся к файлу обращения к функциям. В любом случае, каждое
из обращений к функциям, относящимся к файлу (с 0Fh по 29h), тре-
бует того, чтобы адрес памяти, где расположен блок FCB, был бы
загружен в пару регистров DS:DX до начала выполнения функции. Это
значит, что прикладная программа должна сначала создать блок FCB
и загрузить его в известный адрес либо в сегменте данных, либо в
области данных программного сегмента в памяти (в зависимости от
того, что исходно задается программой).
Когда операционная система MS-DOS загружает программу, сис-
тема создает и форматирует два блока FCB в сегменте программного
префикса (PSP) программы. Адрес этих блоков FCB в префиксе PSP
так же, как средства обращения к префиксу PSP, описываются в гла-
ве 3. Поля имен файлов заполняются из информации, вводимой в ко-
мандной строке при вводе программы (как, например, в таком слу-
чае: "A>MUNG infile outfile"). Если, однако, характеристика файла
содержит имя пути доступа, действительным в блоке FCB будет толь-
ко номер дисковода. Кроме этого, в блоке FCB не будет появляться
никаких директив по переадресации. И, наконец, отметим, что, если
программа открывает первый блок FCB в префиксе PSP, второй блок
FCB перезаписывается.
В таблице 13-10 представлена структура блока FCB и там ука-
зываются размеры и смещение адреса в памяти для каждого параметра
в пределах блока FCB. Заметим, что не всеми параметрами в блоке
FCB можно управлять из прикладной программы. Некоторые модифици-
руются только самой операционной системой MS-DOS, а другие могут
модифицироваться и программой и операционной системой MS-DOS. В
любом случае при создании FCB следует предусматривать место для