Какое прерывание вы бы перехватили из DOS, чтобы получить часы реального времени?

StackOverflow https://stackoverflow.com/questions/83728

  •  01-07-2019
  •  | 
  •  

Вопрос

Какое прерывание вы бы перехватили из DOS, чтобы получить часы реального времени?

Это было полезно?

Решение

Часы реального времени не могут генерировать прерывания.Он был (возможно, до сих пор) связан с cmos-ram, поскольку буферизировался батареей.Доступ к нему возможен только через порты 0x70 и 0x71.

Однако вы можете подключить прерывание PIT (программируемый таймер прерывания).Это прерывание 0x08 (например.аппаратное IRQ0).Насколько я помню, DOS настроил прерывание на вызов примерно 27 раз в секунду.Вы также можете запрограммировать его на другие частоты, но это немного испортит тактовую частоту (порты 0x40 и 0x43).

Другие советы

http://www.control.com/thread/1026238869 есть некоторая информация по этому поводу.Перехватите int 08h (не забудьте его переотправить);это вызывается каждые 55 миллисекунд.

Прочтите о Интел 8259 семейство программируемых контроллеров прерываний.Согласно этому, это прерывания 8 (главное) и 112 (подчиненное).Вот очень технический документ по 8259A: http://pdos.csail.mit.edu/6.828/2008/readings/hardware/8259A.pdf

Вот их полный список, не знаю, что именно вы ищете.http://www.htl-steyr.ac.at/~morg/pcinfo/hardware/interrupts/inte2dm8.htm

От:http://www.htl-steyr.ac.at/~morg/pcinfo/hardware/interrupts/inte1at0.htm

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top