Прерывания таймера и клавиатуры

Тема в разделе "WASM.OS.DEVEL", создана пользователем BVOG, 12 мар 2011.

  1. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    MisHel64
    А нет разницы. Индикация снимается по тому что прерывание разрешается. Также очищается бит выходного буфера.


    Ну возьми посмотри за что отвечает 7 бит 61h порта.
    У интела он вообще RO (только на чтение). Так что чушь тут порете вы.
     
  2. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    MisHel64, получилось так, что я просто вставил разрешение других прерываний в более приоритетное прерывание - от таймера, и теперь всё работает. Нужно было добавить всего 3 строчки кода....
    И кстати, если ли где нибудь список портов, для того чтобы иметь представление какой используется для управления устройствами?
     
  3. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    IRQ RESET не использую совершенно.
    Добавил в обработчик прерывания таймера
    Код (Text):
    1. mov al, 20h
    2. out 20h, al
    3. sti
     
  4. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Интеррупт лист Ральфа Брауна. Классика жанра.
     
  5. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Да,есть такая, я ей пользуюсь. Я просто думал, что есть в другом, несколько более удобном виде.
     
  6. abcd008

    abcd008 New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2009
    Сообщения:
    616
    насколько я помню порт 61 использовался в XT машинах и входил именно в логику клавиатуры.
    теперь он не входит и не обязателен. но не кто не мешает его использовать.
    так как все порты до 100h остануться совместимыми со старым оборудованием(написано помоему в legacy pnp)

    но с другой стороны таких машин не осталось, а 32 битных не было.

    а если ps2 эмулируется usb контроллером, то порт 61 вообще не как не относится к логике.
     
  7. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    На оригинальную ПЦ и ПЦ/ХТ лучше не смотреть: между ними и ПЦ/АТ (и совместимыми с ним современными ПК) довольно много различий в аппаратуре. В частности, они касаются подключения клавиатуры и соседних портов: в ПЦ и ПЦ/ХТ адреса 60-63 занимал контроллер 8255 -- трёхпортовый параллельный интерфейс, ну а в АТ его уже не было, хотя часть функций выполнялась другими средствами.
     
  8. MisHel64

    MisHel64 Member

    Публикаций:
    0
    Регистрация:
    9 мар 2011
    Сообщения:
    182
    Я компилировал его для BP, и стало удобно. Да и собственный вьевер не плох.

    Ну тот же Браун и Джордейн относят их к стандартным PC, и относят к логике 8255 контролера, хотя описывают 8041/8042. А с точки зрения программиста, это был отдельный чип, выполняющий посреднические услуги.
    То есть на этот чип подавались данные например от генератора тактовой от таймера. Вход и выход второго канала таймера то же были подключены к этому чипу. И спикер то же. Бит ноль, разрешал передачу тактовой на вход таймера, а бит 1 разрешал передачу с выхода таймера на спикер. Та же картина с IRQ1. Запись 1/0 в 7й бит генерировала сигнал подтверждения обработки прерывания (а точнее подтверждение чтения данных) для клавиатурного контролера.