MS-DOS vecteur d'interruption

T

tcwong3

Guest
Je vous écris un programme TSR pour MS-DOS 6.22 pour le piégeage RS232 interrompre.

Afin de faire cela j'ai besoin de savoir vecteur d'interruption pour COM1 et COM2 (ou 3 & 4).
Par exemple, le vecteur d'interruption du clavier est 0x09.

Quelqu'un peut-il m'aider sur ce sujet?

Merci à l'avance.

 
(decimal):

Ce sont les vecteurs d'interruption
(décimal):
# define COM2_VECT 11 / * COM2 * /
# define COM1_VECT 12 / * COM1 * /

et ce sont les numéros d'interruption:
COM2 = COM4 -> IRQ3
COM1 = COM3 -> IRQ4

Vous trouverez une liste ici:
http://bioscentral.com/misc/interrupts.htmMik

 
Il ya un service DOS pour obtenir et modifier les vecteurs d'interruption.
Voici un exemple pour le port COM:
com_irq db 4; port COM IRQ
save_ISR DW 0,0; sauvé vecteur d'interruption

mov al, com_irq; enregistrer COM vecteur d'interruption
add al, 8
mov ah, 35h
int 21h
mov save_ISR, BX
mov ax, es
mov save_ISR 2, ax
pop bx
es pop

mov al, com_irq et mettre de nouveau vecteur
add al, 8
mov ah, 25h
mov dx, offset COM_ISR
int 21h
--------------
restore_COM:
pushf
push ax
push dx
cli

ds push
mov al, com_irq; restaurer vecteur d'interruption
add al, 8
mov ah, 25h
lds dx, dword ptr save_ISR
int 21h
ds pop
.......
Ces routines sont l'utilisation des services 25h et de 35h de la DOS int21.
Hope that helps
K

 

Welcome to EDABoard.com

Sponsor

Back
Top