|
Форматирование "Путевая 0 Bad" дискеты
Эта программа используется для форматирования дискет те которые "плохие", сбойные сектора на их пути, и 0, когда форматируются с ДОС, ни окон, отображения сообщения об ошибке, как "тропа 0 BAD". Однако вы также можете использовать его для форматирования обычной дискеты.
Кодирования программы был дан в диск включена в эту книгу с названием "TTFORMAT.C". Логика работы программы - та же, программа опубликована в журнале PCQUEST компьютер, в феврале 2003 года издания.
В этой программе мы стараемся сделать типа многоразового использования дискет с их форматирования. Программа звуков, которые можно обрабатывать даже дискета с некоторыми сбойные сектора на нем. Однако, если первый сектор диска - это плохо, дискета не может быть отформатирован.
Программа переписывает все DBR, FAT и корневой каталоге информации. Если есть плохие сектора на поверхности диска, они помечены как плохие в FAT.
При кодировании программы, структура BPB используется для писателя Блок параметров BIOS от DBR. Boot_sector структура используется для записи DBR о диске. Address_field структура используется для взаимодействия с рядом цилиндра, головки, и секторов на дорожку и размер сектора.
Различные функции используются в кодировании программ и их описание, приводятся в таблице с учетом следующего.
FunctionФункция |
DescriptionОписание |
Random_VolumeID(
)Random_VolumeID () |
This function
provides the volume ID of the disk.Эта функция
дает номер тома диска. (How DOS
generates the serial number of the floppy has been
discussed next to this table)(Как в DOS
генерирует серийный номер дискеты уже обсуждался, рядом
с этим столом) |
mark_bad(
)mark_bad () |
Mark bad sector
using function 04H of INT 13H to verify the
sectors.Марк плохие сектора с использованием
функции INT 04H в 13H для проверки секторов. |
sector_no_to_physical(
)sector_no_to_physical
() |
This function
is used to Convert the number of sectors into tracks,
Heads and sectorsЭта функция используется для
Конвертировать число секторов на дорожках, секторах и
глав |
format_term(
)format_term () |
To terminate
the formatting and exit the programЧтобы
прекратить форматирования и выхода из программы |
write_boot_info(
)write_boot_info () |
Writes the boot
sector of the diskСоставляет загрузочный сектор
диска |
set_media_type_for_format(
)set_media_type_for_format
() |
The function is
used to Set Media Type For format using function 18H of
INT 13HФункция используется, чтобы задать тип
носителя для использования формы в функцию 18H INT 13H |
volume_label(
)volume_label () |
The function
gets the volume label to write volume label of the
diskФункция получает метку тома написать метку
тома на диске |
format(
)формат () |
Wipes the
surface of the disk during formatting as well as
handling the bad sectors count.Стирает
поверхности при форматировании диска, а также обработка
плохих секторов рассчитывать. |
get_drive_parameters(
)get_drive_parameters
() |
The Function
uses INT 13H, Function 08H to get drive
parameters.Функция используется INT 13H, функция
08H, чтобы получить параметры дисковода. |
mark_bad(
)mark_bad () |
Holds the
information of bad cluster to mark in FATИмеет
информацию плохой кластер в FAT пометить |
ask_for_continue(
)ask_for_continue () |
Function to
confirm before formatting the diskФункция
подтвердить, перед форматированием диска |
check_bad(
)check_bad () |
Function to
check if the returned status is error code for BAD
sectorФункция для проверки статуса возвращается
код ошибки для BAD сектор |
error(
)Ошибка () |
This function
Displays Error message for Corresponding error
codeЭта функция выводит сообщение Ошибка на
переписку кодом ошибки |
lock_volume(
)lock_volume () |
The function is
used to lock the Drive using INT 21H, function 44H and
Sub function 0DHФункция используется для
блокировки накопителя с помощью INT 21H, функция 44H и
подпрограмма использования 0DH |
unlock_volume(
)unlock_volume () |
The function is
used to unlock the Drive using INT 21H, function 44H and
Sub function 0DHФункция используется, чтобы
разблокировать диск с помощью INT 21H, функция 44H и
подпрограмма использования 0DH |
physical_to_sector_no(
)physical_to_sector_no
() |
Function is
used to Calculate number of sectors from track, head and
sector numberФункция используется для Рассчитать
число секторов в треке, головки и номер сектора |
Том серийный номер дисковода гибких дисков рассчитана на DOS согласно текущим дате и времени системным часам.
Первая часть серийного номера рассчитывается по сумме времени (секунды и сотые доли секунды) и дату (месяц и день). Вторая часть серийного номера равна сумме времени (часы и минуты) и дату (год).
Все расчеты выполняются в шестнадцатеричной системе. Так, например, предположим, что вы дискету в формате DOS в среду на 11:16:28:65 от 10/23/2003. Теперь давайте рассчитывать серийный номер диска.
Времени (секунды и Hundredths секунд) формат
= (28 and 65)
= (1CH and 41H)
Write it as 1C41
Кроме того, на сегодняшний день (месяц, день) формат
= (10 and 23)
= (0AH and 17H)
Write it as 0A17
Точно так же в момент (часы и минуты) формат,
= (11 and 16)
= (0BH and 10H)
Write it as 0B10
И год будет
= 2003
= 07D3
Теперь давайте расчета серийного номера дискеты, в соответствии с описанием, содержащимся ранее. Первая часть серийного номера будет хорошо (1C41 0A17 +) = 2658, и вторую часть порядковый номер, будет (+ 0B10 07D3) = 12E3.
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|
|