KOS API | Содержание DocPack
Функция 42 - работа с данными, полученными по IRQ.
Подфункция 0 - чтение данных
При возникновении IRQ система может считывать данные из указанных
ранее функцией 44 портов и записывать эти данные в буфер.
Описываемая функция копирует данные из этого буфера в область, указанную в
качестве параметра.
Параметры:
- eax = 42 - номер функции
- bl = номер IRQ, 0..15
- bh = 0 - номер подфункции
- старшее слово регистра ebx должно быть обнулено
- ecx = указатель на буфер размером не менее 4000 байт
Возвращаемое значение:
- eax = -1, если поток не является владельцем IRQ (или номер IRQ задан
неверно)
- eax = 0, если данных нет
- если всё в порядке и данные были:
eax = размер данных, прочитанных из буфера (в байтах)
Замечания:
- Предварительно поток должен зарезервировать для себя указанный IRQ
функцией 45.
- Размер буфера для данных - 4000 байт, при переполнении
"свежие" данные перестают записываться в буфер.
Подфункция 1 - узнать размер данных в буфере
Параметры:
- eax = 42 - номер функции
- bl = номер IRQ, 0..15
- bh = 1 - номер подфункции
- старшее слово регистра ebx должно быть обнулено
Возвращаемое значение:
- eax = -1, если поток не является владельцем IRQ (или номер IRQ задан
неверно)
- eax = размер данных в буфере (если всё в порядке)
Замечания:
- Предварительно поток должен зарезервировать для себя указанный IRQ
функцией 45.
- Размер буфера для данных - 4000 байт, при переполнении
"свежие" данные перестают записываться в буфер.
KOS API | Содержание DocPack
Pterox' DocPack R6. Last Edition: 29.05.2010. История выпусков