mov byte ptr ds:[si+1],0 ;поверхность 0
mov byte ptr ds:[si+2],al ; номер сектора
mov byte ptr ds:[si+3],2 ; код длины сектора
loop PrepForFormat ; заполним таблицу для секторов
установим головки для форматирования цилиндра 1; для цилиндра 1 и дискеты 360/1.2 необходимо реально установиться на цилиндр 2
cli
mov ah,0fh ;команда SEEK
mov FDCOpCode,0fh ;запомним код команды SEEK
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
sub ah,ah ;устройство 0 голова 0
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov ah,2 ;цилиндр 2
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
and IntFlags,255-IntPres-IntMCA ;сбросим прерываниe
sti ;откроем маски
call WaitInt ;ждем прерывание
jc FatalErr ;не дождались
;получим результат
call Sansl ;опросим прерывание
jc FatalErr ;неуспешно
;проверим результат
mov ah,ST0 ;регистр состояния 0
test ah,00100000b ;операция завершена?
jz FatalErr ;нет, ошибка
and ah,11000000b ;выделим биты типа завершения
test ah,11000000b ;успешно?
jnz FatalErr ;нет,ошибка
cmp ST1,2 ;подходящий цилиндр?
jne FatalErr ;нет, ошибка
; успешно сделали: подождем успокоения головок (для привода 1.2 время
; успокоения составляет 15 мс)
mov bx,18750 ;время успокоения в циклах таймерa
;15000 мкс/0.8 мкс
call WaitTimer2 ;подождем
;форматируем цилиндр
; установить DMA на таблицу формата
mov di,WorkOff ;смещение рабочей области
add di,4 ;начало таблицы формата
mov сх,9*4 ;длина таблицы формата
;9 секторов * описатель сектора (4 байта)
mov al,04Ah ;код оперции DMA - передаем в FDC
call SetDMA ;иницируем DMA
mov FDCOpCode,04dh ;запомним код команды Format
;передадим все команды формата
cli ; закроем маски
mov ah,04dh ;команда форматирования
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
sub ah,ah ;накопитель 0 поверхность 0
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov сх,4 ;количество данных в заголовке
;таблицы форматa
mov si,WorkOff ;заголовок таблицы формата
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.