Перепрограммирование контроллера прерываний

Тема в разделе "WASM.OS.DEVEL", создана пользователем Treant, 17 окт 2009.

  1. Treant

    Treant Member

    Публикаций:
    0
    Регистрация:
    24 май 2009
    Сообщения:
    261
    Не работаю примеры перепрограммирования контроллера прерываний
    У меня обработчик таймера стоит на 21h
    Пишу:
    Мне не понятно вот это
    mov al, 0FFh
    out 21h,al
    Это маска на прерывания если 1 то запрещено а здесь все единицы... если пишу 00h та же реакция, но вот если поставить туда 00000001b срабатывает, но только 1 раз...
    Сбрасываю обработку прерываний следующим кодом:
    Не пойму где у меня ошибка, подскажите пожалуйста
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Формат ICW2 следующий, это номер начального вектора прерывания. Биты 0-2 должны быть 0. При приходе прерывания. Номер линии, на которую пришло прерывание, складывается с этим числом. И выставляется на шину адреса.
     
  3. Treant

    Treant Member

    Публикаций:
    0
    Регистрация:
    24 май 2009
    Сообщения:
    261
    Pavia
    А как тогда записать туда 21h?
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Treant
    Никак.
     
  5. Treant

    Treant Member

    Публикаций:
    0
    Регистрация:
    24 май 2009
    Сообщения:
    261
    Pavia
    O_o
    Только 20h можно
    Хотя там нули будут - это для него видимо 20h...
     
  6. Treant

    Treant Member

    Публикаций:
    0
    Регистрация:
    24 май 2009
    Сообщения:
    261
    Значит можно выставлять только те значения, то с 3мя нулями на конце то есть 20h, 30h, 40h?
    ЗЫ предыдущий пост - бред)
     
  7. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    20h, 28h, 30h, ...