Assembler для начинающих



         

Загрузка в верхнюю часть памяти - часть 13


    (сектор 2 дорожки 0) дискеты, находящейся на дисководе A:.
    Аналогичный способ можно было бы применить и для занесения на
    дискету записи инициализации.
 
      Такой способ формирования вызова BIOS в программе DEBUG
    для записи на дискету может использоваться почти для всех функций
    BIOS. Проследить, что именно происходит при вызове BIOS, можно с
    помощью программы DEBUG. Можно установить регистры для вызова и
    написать несложную трехбайтовую программу, осуществляющую
    программное прерывание и производящую возврат в DEBUG.  Этот прием
    удобен также для тестирования собственного драйвера устройства.
 
      Вернемся к процедуре драйвера псевдо-диска во второй части Фиг.
    10.2.  Заметим, что процедура загрузки сохранила исходный вектор
    дискеты (INT 13H) в этом сегменте со смещением 3.  Подпрограммы-
    драйвера используют этот вектор для реализации всех функций
    дискеты, которые не реализуются псевдо-диском. В приведенной
    подпрограмме предполагается, что псевдо-диск находится на дисководе
    2. На запрос любого другого дисковода процедура передает управление
    BIOS, используя приэтом сохраненный в ORIGINAL_VECTOR исходный
    вектор. Аналогично и запрос на смену дискеты передается BIOS. Если
    функция, запрашиваемая для псевдо-дисковода, не считывание и не
    запись, то драйвер псевдо-диска не производит никаких действий, и
    происходит возврат с нормальным кодом завершения. Псевдо-диск
    не требует форматирования, а поскольку у нас нет контроля ошибок,
    то не остается ничего проверять.
 
      Если запрашиваемой операцией является считывание или запись,
    драйвер вычисляет адрес соответствующего псевдо-сектора в памяти.
    При обращении за границу диска поцедура возвращает запись об ошибке
    отсуствия адреса. Код драйвера устанавливает регистры источника и
    назначения в соответствии с направлением операции.      Наконец,
    команда REP MOVSW передает данные между псевдо-диском и буфером



Содержание  Назад  Вперед