2.5. Изучить влияние параметров МТ, H, C в команде "Чтение данных":

а) Выполнить команду "Чтение данных" для дорожки C и сектора R, задавая МТ=0, H=0; МТ=0, H=1; МТ=1, H=0; МТ=1, H=1.

1) МТ=0, H=0

Командная фаза:

MT MFM SK

КОП1:

// MT – multitrack – многодорожечный режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска.

HDS DS0 DS1

КОП2: 00

(HDS=0 – номер головки; DS1=0 и DS0=0 – номер дисковода)

С: – Номер дорожки (4)

Н: – Номер головки (0)

R: – Номер сектора (4)

N: – Код размера сектора (02h = 512 байт - стандартно)

EOT: – Количество секторов на дорожке (12h=18d - стандартно)

GPL: – Длина межсекторного промежутка для операций «Чтение» и «Запись» (из таблицы параметров дискеты = 1Вh)

DTL: – Максимальная длина передаваемых данных (используется, если не задана длина сектора, иначе – берется из таблицы параметров дискеты = FFh)

Фаза результата:

Чтение завершено успешно, записанные данные отобразились на экране

ST0 = - регистр состояния КГД

ST1 = - регистр состояния КГД

ST2 = - регистр состояния КГД

//нулевые значения этих регистров говорят о том, что операция записи завершена успешно

C = – номер дорожки (4)

H = – номер головки (0)

R = – номер сектора (5)

//мы записали данные в 4 и автоматически головка переместилась на следующий сектор (5)

N = – код размера сектора (02 – 512 байт - стандартно)

2) МТ=0, H=1

Командная фаза:

MT MFM SK

КОП1:

// MT – multitrack – многодорожечный режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска.

НЕ нашли? Не то? Что вы ищете?

HDS DS0 DS1

КОП2: 00

(HDS=1 – номер головки; DS1=0 и DS0=0 – номер дисковода)

С: – Номер дорожки (4)

Н: – Номер головки (1)

R: – Номер сектора (4)

N: – Код размера сектора (02h = 512 байт - стандартно)

EOT: – Количество секторов на дорожке (12h=18d - стандартно)

GPL: – Длина межсекторного промежутка для операций «Чтение» и «Запись» (из таблицы параметров дискеты = 1Вh)

DTL: – Максимальная длина передаваемых данных (используется, если не задана длина сектора, иначе – берется из таблицы параметров дискеты = FFh)

Фаза результата:

Чтение завершено успешно, записанные данные отобразились на экране

ST0 = – регистр состояния КГД

HD=1 – номер головки

ST1 = - регистр состояния КГД

ST2 = - регистр состояния КГД

//нулевые значения этих регистров говорят о том, что операция записи завершена успешно

C = – номер дорожки (4)

H = – номер головки (1)

R = – номер сектора (5)

//мы записали данные в 4 и автоматически головка переместилась на следующий сектор (5)

N = – код размера сектора (02 – 512 байт - стандартно)

3) МТ=1, H=0

Командная фаза:

MT MFM SK

КОП1:

// MT – multitrack – многодорожечный режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска.

HDS DS0 DS1

КОП2: 00

(HDS=0 – номер головки; DS1=0 и DS0=0 – номер дисковода)

С: – Номер дорожки (4)

Н: – Номер головки (0)

R: – Номер сектора (4)

N: – Код размера сектора (02h = 512 байт - стандартно)

EOT: – Количество секторов на дорожке (12h=18d - стандартно)

GPL: – Длина межсекторного промежутка для операций «Чтение» и «Запись» (из таблицы параметров дискеты = 1Вh)

DTL: – Максимальная длина передаваемых данных (используется, если не задана длина сектора, иначе – берется из таблицы параметров дискеты = FFh)

Фаза результата:

Чтение завершено успешно, записанные данные отобразились на экране

ST0 = - регистр состояния КГД

ST1 = - регистр состояния КГД

ST2 = - регистр состояния КГД

//нулевые значения этих регистров говорят о том, что операция записи завершена успешно

C = – номер дорожки (4)

H = – номер головки (0)

R = – номер сектора (5)

//мы записали данные в 4 и автоматически головка переместилась на следующий сектор (5)

N = – код размера сектора (02 – 512 байт - стандартно)

4) МТ=1, H=1

Командная фаза:

MT MFM SK

КОП1:

// MT – multitrack – многодорожечный режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска.

HDS DS0 DS1

КОП2: 00

(HDS=1 – номер головки; DS1=0 и DS0=0 – номер дисковода)

С: – Номер дорожки (4)

Н: – Номер головки (1)

R: – Номер сектора (4)

N: – Код размера сектора (02h = 512 байт - стандартно)

EOT: – Количество секторов на дорожке (12h=18d - стандартно)

GPL: – Длина межсекторного промежутка для операций «Чтение» и «Запись» (из таблицы параметров дискеты = 1Вh)

DTL: – Максимальная длина передаваемых данных (используется, если не задана длина сектора, иначе – берется из таблицы параметров дискеты = FFh)

Фаза результата:

Чтение завершено успешно, записанные данные отобразились на экране

ST0 = – регистр состояния КГД

HD=1 – номер головки

ST1 = - регистр состояния КГД

ST2 = - регистр состояния КГД

//нулевые значения этих регистров говорят о том, что операция записи завершена успешно

C = – номер дорожки (4)

H = – номер головки (1)

R = – номер сектора (5)

//мы записали данные в 4 и автоматически головка переместилась на следующий сектор (5)

N = – код размера сектора (02 – 512 байт - стандартно)

б) Выполнить команду "Чтение данных" для дорожки C и сектора с номером R=EOT, задавая МТ=0, H=0; МТ=0, H=1; МТ=1, H=0;МТ=1, H=1.

1) МТ=0, H=0

Командная фаза:

MT MFM SK

КОП1:

// MT – multitrack – многодорожечный режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска.

HDS DS0 DS1

КОП2: 00

(HDS=0 – номер головки; DS1=0 и DS0=0 – номер дисковода)

С: – Номер дорожки (4)

Н: – Номер головки (0)

R: – Номер сектора (18)

N: – Код размера сектора (02h = 512 байт - стандартно)

EOT: – Количество секторов на дорожке (12h=18d - стандартно)

GPL: – Длина межсекторного промежутка для операций «Чтение» и «Запись» (из таблицы параметров дискеты = 1Вh)

DTL: – Максимальная длина передаваемых данных (используется, если не задана длина сектора, иначе – берется из таблицы параметров дискеты = FFh)

Фаза результата:

Чтение завершено успешно, записанные данные отобразились на экране

ST0 = - регистр состояния КГД

ST1 = - регистр состояния КГД

ST2 = - регистр состояния КГД

//нулевые значения этих регистров говорят о том, что операция записи завершена успешно

C = – номер дорожки (5)

H = – номер головки (0)

R = – номер сектора (1)

//мы записали данные в 18 (последний) сектор и 4 дорожку, автоматически головка переместилась на первый сектор (1) и 5 дорожку.

N = – код размера сектора (02 – 512 байт - стандартно)

2) МТ=0, H=1

Командная фаза:

MT MFM SK

КОП1:

// MT – multitrack – многодорожечный режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска.

HDS DS0 DS1

КОП2: 00

(HDS=1 – номер головки; DS1=0 и DS0=0 – номер дисковода)

С: – Номер дорожки (4)

Н: – Номер головки (1)

R: – Номер сектора (18)

N: – Код размера сектора (02h = 512 байт - стандартно)

EOT: – Количество секторов на дорожке (12h=18d - стандартно)

GPL: – Длина межсекторного промежутка для операций «Чтение» и «Запись» (из таблицы параметров дискеты = 1Вh)

DTL: – Максимальная длина передаваемых данных (используется, если не задана длина сектора, иначе – берется из таблицы параметров дискеты = FFh)

Фаза результата:

Чтение завершено успешно, записанные данные отобразились на экране

ST0 = - регистр состояния КГД

HD=1 – номер головки

ST1 = - регистр состояния КГД

ST2 = - регистр состояния КГД

//нулевые значения этих регистров говорят о том, что операция записи завершена успешно

C = – номер дорожки (5)

H = – номер головки (1)

R = – номер сектора (1)

//мы записали данные в 18 (последний) сектор и 4 дорожку, автоматически головка переместилась на первый сектор (1) и 5 дорожку.

N = – код размера сектора (02 – 512 байт - стандартно)

3) МТ=1, H=0

Командная фаза:

MT MFM SK

КОП1:

// MT – multitrack – многодорожечный режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска.

HDS DS0 DS1

КОП2: 00

(HDS=0 – номер головки; DS1=0 и DS0=0 – номер дисковода)

С: – Номер дорожки (4)

Н: – Номер головки (0)

R: – Номер сектора (18)

N: – Код размера сектора (02h = 512 байт - стандартно)

EOT: – Количество секторов на дорожке (12h=18d - стандартно)

GPL: – Длина межсекторного промежутка для операций «Чтение» и «Запись» (из таблицы параметров дискеты = 1Вh)

DTL: – Максимальная длина передаваемых данных (используется, если не задана длина сектора, иначе – берется из таблицы параметров дискеты = FFh)

Фаза результата:

Чтение завершено успешно, записанные данные отобразились на экране

ST0 = - регистр состояния КГД

ST1 = - регистр состояния КГД

ST2 = - регистр состояния КГД

//нулевые значения этих регистров говорят о том, что операция записи завершена успешно

C = – номер дорожки (4)

H = – номер головки (1)

R = – номер сектора (1)

//мы записали данные в 18 (последний) сектор, автоматически головка переместилась на первый сектор (1).

N = – код размера сектора (02 – 512 байт - стандартно)

4) МТ=1, H=1

Командная фаза:

MT MFM SK

КОП1:

// MT – multitrack – многодорожечный режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска.

HDS DS0 DS1

КОП2: 00

(HDS=1 – номер головки; DS1=0 и DS0=0 – номер дисковода)

С: – Номер дорожки (4)

Н: – Номер головки (1)

R: – Номер сектора (18)

N: – Код размера сектора (02h = 512 байт - стандартно)

EOT: – Количество секторов на дорожке (12h=18d - стандартно)

GPL: – Длина межсекторного промежутка для операций «Чтение» и «Запись» (из таблицы параметров дискеты = 1Вh)

DTL: – Максимальная длина передаваемых данных (используется, если не задана длина сектора, иначе – берется из таблицы параметров дискеты = FFh)

Фаза результата:

Чтение завершено успешно, записанные данные отобразились на экране

ST0 = - регистр состояния КГД

HD=1 – номер головки

ST1 = - регистр состояния КГД

ST2 = - регистр состояния КГД

//нулевые значения этих регистров говорят о том, что операция записи завершена успешно

C = – номер дорожки (5)

H = – номер головки (0)

R = – номер сектора (1)

//мы записали данные в 18 (последний) сектор и 4 дорожку, автоматически головка переместилась на первый сектор (1) и 5 дорожку.

N = – код размера сектора (02 – 512 байт - стандартно)

в) Cделать выводы, обращая особое внимание на H и R в байтах результата.

Бит МТ задает многодорожечный (multitrack) режим контроллера, позволяющий ему считывать данные с обеих сторон (дорожек) диска. В этом случае для указанного цилиндра будут переданы все сектора, начиная с сектора 1 стороны 0 и заканчивая последним сектором стороны 1. Заметим, что этот режим относится только к одному цилиндру.

При чтении последнего сектора на дорожке головка перемещается на первый сектор следующей дорожки.

При чтении в многодорожечном режиме головка перемещалась на другую поверхность, так как происходило чтение с обеих сторон диска.

г) Выполнить команду "Чтение данных", задав EOT не равным байту "еот" из таблицы DPT и объяснить результат.

“Значение параметра EOT не совпадает с байтом eot из таблицы DPT”

eot - номер последнего сектора на дорожке

После окончания чтения сектора контроллер инкрементирует на 1 номер

сектора и начинает считывать данные из следующего сектора. Так как параметры не совпадают контроллер вообще отказывается считывать сектора.