home *** CD-ROM | disk | FTP | other *** search
- /*_ int.h Thu Feb 25 1988 Modified by: Walter Bright */
- /* Copyright (C) 1985-1988 by Northwest Software */
- /* All rights reserved */
- /* Written by Walter Bright */
-
- /* Header for int package */
-
- #ifndef INT_H
- #define INT_H 1
-
- #ifndef DOS_H
- #include <dos.h>
- #endif
-
- /* Structure passed to interrupt service routine (see int_xxx()) */
- struct INT_DATA
- {
- unsigned prevvec_off,prevvec_seg; /* previous interrupt vector */
- unsigned stacksize; /* size of ISR stack */
- unsigned newstack_off,newstack_seg; /* ptr to ISR stack */
- unsigned oldstack_off,oldstack_seg; /* ptr to interrupted stack */
- #if LPTR
- unsigned staticseg; /* value for DS */
- #endif
- int (*funcptr)();
- union REGS regs; /* passed/returned register and flag values */
- /* (the _cflag member is garbage and is ignored) */
- struct SREGS sregs; /* passed/returned segment register values */
- };
-
- void int_getvector(unsigned,unsigned *,unsigned *);
- void int_setvector(unsigned,unsigned,unsigned);
- int int_intercept(unsigned,int (*funcptr)(struct INT_DATA *),unsigned);
- int int_restore(unsigned);
- void int_off(void);
- void int_on(void);
-
- #endif /* INT_H */
-