Форматирование дорожки производится вне зависимости
. Форматирование дорожки производится вне зависимости от того, была
ли она ранее отформатирована. При успешном завершении все данные
оказываются стерты.
. После форматирования каждой дорожки осуществляется ее проверка.
Примеры
. Форматирование дискеты в дисководе A: начинается с проверки,
поддерживает ли дисковод заданную емкость. Функция пользователя
CONTROL() осуществляет отображение номеров форматируемых дорожки и
головки. Чтобы не снижать скорость, повторение при сбоях не
производится, что предполагает использование дискет только высшего
качества.
. Для демонстрации возможностей функции пользователя форматируются
только дорожки с 80 по 11, а дорожки с 1 по 10 пропускаются:
CLEAR
cBootText := "Это несистемная дискета" // Текст, отображаемый
// при попытке загрузки.
@ 10, 02 SAY "Дорожка: "
@ 11, 02 SAY "Головка: "
IF FLOPPYTYPE("A:") = 2 // Дисковод емкостью 1.2 Мбайта
nErrCode := DISKFORMAT("A:", 1200, "CONTROL", cBootText, 0)
IF nErrCode = 0
? "Форматирование успешно завершено!"
ENDIF
ENDIF
RETURN
FUNCTION CONTROL(nTrack, nHead)
LOCAL nRetval
IF nTrack >= 11
@ 10, 08 SAY STR(nTrack)
@ 11, 08 SAY STR(nHead)
nRetval := 0 // Продолжить форматирование
ELSE
nRetval := 2 // Прервать форматирование
ENDIF
RETURN
. Функция пользователя, обеспечивающая прерывание форматирования по
нажатию клавиши <ESC>. При нормальном завершении выводится
соответствующее сообщение:
FUNCTION CONTROL(nTrack, nHead)
LOCAL nRetval
IF INKEY() = 27
nRetval := 2 // Прервать форматирование