; DISKINDX.ASM .MODEL SMALL include msystem.mac include diskete.m .CODE ;--- Процедура чтения индексных данных --- func diskindex,,,,public ; посылаем контролеру НГМД параметры чтения индексных данных out_fdc <4Ah> ; посылаем команду чтения mov AH, drive ; и биты 1-0 выбор накопителя mov AL, head ; и биты 3 выбор головки mov CL, 2 ; сдвинуть содержимое 1 бита в 3 бит shl AL, CL ; --//-- or AH, AL ; --//-- out_fdc ; номер головки и накопителя wait_interrupt ; ожидаем прерывания от НГМД ; читаем результирующие байты lea BX, status ; помещаем в буфер статуса do 7 ; берем байтов статуса in_fdc ,<[BX]> ; получаем байт и помещаем в буфер inc BX ; указываем на следующий байт буфера enddo endf END