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 номер
сектора и начинает считывать данные из следующего сектора. Так как параметры не совпадают контроллер вообще отказывается считывать сектора.


