Article: Q43568
Product(s): See article
Version(s): 3.00 4.00 4.00b 4.50
Operating System(s): MS-DOS
Keyword(s): ENDUSER | SR# S890412-84 B_BasicCom | mspl13_basic
Last Modified: 13-DEC-1989
The QuickBASIC program below will return the address of the interrupt
vector whose number you input. This program operates correctly with
Microsoft QuickBASIC Versions 3.00, 4.00, 4.00b, and 4.50, the
Microsoft BASIC compiler Versions 6.00 and 6.00b, and the Microsoft
BASIC PDS Version 7.00.
'Program GETVECTR.BAS looks in low memory to get the address of
'any interrupt vector that you input.
DEFINT A-Z
DEF SEG = 0
CLS
VIEW PRINT 25 TO 25
COLOR 15, 1
PRINT
LOCATE 25, 30
PRINT "Ctrl-Break to EXIT";
VIEW PRINT 1 TO 1
PRINT
LOCATE 1, 34
PRINT "GETVECTOR";
VIEW PRINT 9 TO 15
COLOR 0, 7
PRINT : PRINT : PRINT : PRINT : PRINT : PRINT : PRINT
DO
PRINT " Enter the Number of the Interrupt. Use &H to specify a "
PRINT " Hex Number (such as &H5 for Interrupt 5 Hex)"
PRINT
INPUT " Interrupt ", intnum
offset = 4 * intnum
byte1$ = HEX$(PEEK(offset))
byte2$ = HEX$(PEEK(offset + 1))
byte3$ = HEX$(PEEK(offset + 2))
byte4$ = HEX$(PEEK(offset + 3))
vector$ = byte4$ + " " + byte3$ + " : " + byte2$ + " " + byte1$
LOCATE 13, 1
PRINT SPACE$(40)
LOCATE 13, 1
PRINT "Handler for Interrupt "; HEX$(intnum) + " Hex"
PRINT "is located at address --> "; vector$
PRINT
LOOP
DEF SEG
CLS