|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 23, 2003 19:59:50 Доброго времени суток. Помогите. Мне надо поменять соотношение IRQ - INT. тоесть что бы скажем IRQ1 (клава) вызывала прерывание Int 87h. Роюсь в документации но не могу найти... Если пошлете меня в ман или приведете пример - буду очень благодарен. С уважением. Ворон. |
|
|
Дата: Дек 24, 2003 09:57:03 Когда-то делал такое под досом. Судя по тому, то ты спросил в этом разделе форума, а не в соседнем, может, это тебе и надо... Сейчас проверил - в ДОС-сессии винды98 работает нормально, причём, в том числе и в протектед моде через ДПМИ. Под НТ - скорее всего не будет. SetIRQBase proc near ; AH - new IRQ Base
cli
pusha
push es
push 0
pop es
mov bx,word ptr es:[19Ch]
or bx,word ptr es:[19Eh]
jz @@1
xor bx,bx
mov bl,ah
push ax
mov cx,70h
mov ax,0DE0Bh
int 67h
pop ax
@@1: in al,21h
push ax
mov al,15h
out 20h,al
mov al,ah
out 21h,al
mov al,4
out 21h,al
mov al,0Dh
out 21h,al
pop ax
out 21h,al
sti
pop es
popa
ret
SetIRQBase endp
Если я ничего не путаю, то 20h и 21h - это порты контроллера прерываний 8259, а int 67h - это EMM. Кажется, ему надо сообщать о смене базы irq, чтобы софт под дпми не падал и под виндами работало, а в голом досе достаточно только в порты заслать. Давно это было, поэтому, по каким докам делалось я уже и не вспомню. |
|
|
Дата: Дек 24, 2003 19:51:21 Спасибо!!! Все великолепно работает!!!. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.136 |