Interrupt 28h   DOS SAFE TO USE                        

     This interrupt is  continuously  called by DOS itself whenever it
     is in a wait state (i.e., when it is waiting for  keyboard input)
     during a function call of 01h through 0Ch. DOS  uses  3  separate
     internal stacks: one for calls 01h through 0Ch; another for calls
     0Dh  and  above;  and a third for calls 01h through  0Ch  when  a
     Critical Error is in progress. When int 28h is called,  any calls
     above 0Ch can  be  executed without destroying the internal stack
     used by DOS at the time.

     It is used primarily by the PRINT.COM routines, but any number of
     other routines can be chained to it by saving the original vector
     and calling it  with a FAR call (or just JMPing to it) at the end
     of the new routine.

     Int 28h is being issued it is usually safe to  do  DOS calls. You
     won't  get  int  28hs if a program is running that doesn't do its
     keyboard  input  through  DOS.  You  should  rely  on  the  timer
     interrupt for these.

     Int 28h is not called at all when any non-trivial foreground task
     is  running. As soon as a foreground program  has  a  file  open,
     INT28 no longer  gets  called.  Could  make a good driver for for
     abackground program that really works as long as there is nothing
     else going on in the machine.

Notes:

     1)   The int 28h handler may invoke any int  21h  function except
          functions 00h through 0Ch (and 50h/51h under DOS 2.x).
     2)   Apparently int 28h is also called during screen writes
     3)   Until some program installs its own routine,  this interrupt
          vector simply points to an IRET opcode.
     4)   Supported in OS/2 1.0's DOS Compatibility Box


Copyright © 1985 to 2022 Beta Systems                            Last modified: Wednesday, January 05, 2022 .