call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov ah,0FFh ;длина передаваемых данных FF
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
and IntFlags,255-IntPres-IntMCA ;сбросим прерывание
sti ;откроем маски
call WaitInt ;ждем прерывание
jc FatalErr ;не дождались
; получим результат
call InFDC ;прочитаем данные из FDC
jc FatalErr ;неуспешно
mov ah,ST0 ;регистр состояния 0
and ah,11000000b ;выделим состояние завершения
or ah,ah ;успешно?
jnz FatalErr ;нет, ошибка
прочитаем три сектора, начиная с сектора 1
;установить DМА на рабочую область
mov di,WorkOff ;смещение рабочей области
mov сх,512*2 ;длина двух секторов
mov al,04Ah ;код оперции DMA - передаем в FDC
call SetDMA ;иницируем DМА
mov FDCOpCode,045h ;запомним код команды Запись
; передадим все команды чтения
cli ;закроем маски
mov ah,046h ;команда чтение
call OutFDC ;передадим в контроллер
jc FatalErr ; неуспешно
sub ah,ah ;накопитель 0 поверхность 0
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
; перешлем данные сектора
mov ah,1 ;цилиндр 1
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov ah,0 ;поверхность 0
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov ah,1 ;сектор 1
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov ah,2 ;код длины 2
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov ah,9 ;количество секторов 9
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov ah,02Ah ;GAP чтения/записи
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
mov ah,0FFh ;длина передаваемых данных FF
call OutFDC ;передадим в контроллер
jc FatalErr ;неуспешно
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.