kristofer sweger Home

Hooked Interrupts

To implement all its features, ANSIPLUS attaches itself to up to eleven system interrupts. Two are replaced (1Bh and 29h), and the remaining nine are supplemented (i.e., ANSIPLUS calls the original interrupt but extends its function). If possible, ANSIPLUS should always be installed after any other drivers that take over any of these interrupts without passing calls through. The following table lists the ANSIPLUS hooked interrupts and reasons for each:

ANSIPLUS Hooked Interrupts
Interrupt Description Reason
09h Keystroke Screen saver; scroll lock; scroll-back; key buffer extension; repeated key suppression; smooth scroll toggle; other special key processing
10h BIOS Video Palette/DAC control; beep tone generation; screen saver; smooth scroll; scroll lock; scroll-back; BIOS Write TTY ANSI trap; set scrollable region
15h System Services Key processing; screen saver
16h BIOS Get Key Key buffer management; highlighted key echo; scroll-lock and scroll-back functions; key reassignment; key repeat rate; copy and paste
1Bh Keyboard Break Promote Ctrl+Break to front of key buffer
1Ch User Timer Tick Screen saver; smooth scroll; color blinking; beep tone generation; copy and paste
28h DOS Idle Copy and paste
29h DOS Write Char Faster DOS screen output
2Fh Multiplex Installation checks; ANSIPLUS special functions API; Windows initialization and exit processing; 4DOS/NDOS key stacking; DESQview detection; task switching; command prompt detection; OS/2 CLS command
33h MS Mouse Copy and paste; set scrollable region
74h PS/2 Mouse Event Screen saver; set scrollable region

The MS-DOS KEYB program for international keyboard support hooks the Int 09h Key Event interrupt without passing calls through to whatever was installed before (i.e., to ANSIPLUS). However, the Novell DOS version of KEYB does pass calls through to the prior Int 09h handler. Therefore, under MS-DOS (but not Novell DOS) if the KEYB program is being used to set up the keyboard, the following command must be executed after loading KEYB otherwise most ANSIPLUS keyboard related features will not work:


This command will re-install ANSIPLUS on the key event interrupt. The INSTALL program will automatically add this command to AUTOEXEC.bat if it finds a reference in it or in CONFIG.sys to KEYB and you are not using Novell DOS.

If the DISPLAY.sys device driver for code page switching is being used, the ANSIPLUS.exe device driver must be installed before DISPLAY.sys in CONFIG.sys. The INSTALL program will also automatically handle this.

If you suspect that a system interrupt is no longer accessible to ANSIPLUS because of a TSR or device driver that has been loaded after ANSIPLUS, you can test this with the command:


which displays, to the extent possible, the chain of programs attached to any selected interrupt. The <intnum> may be either a hexadecimal interrupt number or one of the following keywords:

KEYEVENT Interrupt 09h Key Event
VIDEO Interrupt 10h Video
SYSTEMSERVICE Interrupt 15h System Services
KEYREQUEST Interrupt 16h Keyboard Request
KEYBREAK Interrupt 1Bh Keyboard Break
TIMERTICK Interrupt 1Ch User Timer Tick
DOSIDLE Interrupt 28h DOS Idle
DOSTTY Interrupt 29h DOS Fast TTY Output
MULTIPLEX Interrupt 2Fh Multiplex
MSMOUSE Interrupt 33h Mouse
PS2MOUSE Interrupt 74h PS/2 Mouse Event

If ANSIPLUS is missing from the listing, it can be relinked with the command:


© Copyright 2000-2007, Kristofer Sweger. All rights reserved.
Rev. 10/16/07