MS-DOS vettore di interrupt

T

tcwong3

Guest
Sto scrivendo un programma TSR per MS-DOS 6.22 per la cattura RS232 interrupt.

Per fare questo ho bisogno di sapere vettore di interrupt per COM1 & COM2 (o 3 e 4).
Ad esempio, il vettore di interrupt di tastiera è 0x09.

Qualcuno può aiutarmi in questo?

Grazie in anticipo.

 
(decimal):

Questi sono i vettori di
interrupt (decimale):
# define COM2_VECT 11 / * COM2 * /
# define COM1_VECT 12 / * COM1 * /

e questi sono i numeri di interrupt:
COM2 = COM4 -> IRQ3
COM1 = COM3 -> IRQ4

troverete un elenco qui:
http://bioscentral.com/misc/interrupts.htmMik

 
C'è un servizio DOS per ottenere e modificare i vettori di interrupt.
Ecco un esempio per la porta COM:
com_irq db 4; porta COM IRQ
save_ISR dw 0,0; salvato vettore di interrupt

mov al, com_irq; salvare COM vettore di interrupt
Aggiungi al, 8
mov ah, 35h
int 21h
mov save_ISR, bx
mov ax, es
mov save_ISR 2, ax
pop bx
pop es

mov al, com_irq; set nuovo vettore
Aggiungi al, 8
mov ah, 25h
mov dx, offset COM_ISR
int 21h
--------------
restore_COM:
pushf
push ax
push dx
cli

push ds
mov al, com_irq; ripristinare vettore di interrupt
Aggiungi al, 8
mov ah, 25h
lds dx, dword ptr save_ISR
int 21h
pop ds
.......
Queste routine si utilizzano i servizi 25h e 35h del DOS int21.
Hope that helps
K

 

Welcome to EDABoard.com

Sponsor

Back
Top