Interrupt 23h   Ctrl-Break Exit Address                    

     If the user enters a  Ctrl-Break during STDIN, STDOUT, STDPRN, or
     STDAUX, int 23h is executed. If  BREAK  is on, int 23h is checked
     on MOST function calls (notably 06h). If the  user  written Ctrl-
     Break  routine saves all registers, it may  end  with  a  return-
     from-interrupt instruction (IRET) to continue  program execution.
     If the user-written interrupt program returns with a long return,
     the carry flag is  used  to determine whether the program will be
     aborted. If the  carry  flag  is  set,  the  program  is aborted,
     otherwise execution continues (as with  a return by IRET). If the
     user-written Ctrl-Break interrupt uses function calls 09h or 0Ah,
     then ctrl-C/CR/LF are  output.  If execution is continued with an
     IRET,  I/O  continues  from  the  start  of  the line.  When  the
     interrupt occurs, all registers  are  set  to  the value they had
     when the original  function  call  to  DOS was made. There are no
     restrictions on what the Ctrl-Break  handler  is  allowed  to do,
     including  DOS  function  calls,  as  long as the  registers  are
     unchanged if an IRET is used.

     If the program creates a new segment  and loads a second  program
     which itself changes the  Ctrl-Break  address, the termination of
     the second program and return to the first causes the  Ctrl-Break
     address to be restored from the PSP  to the  value it had  before
     execution of the second program.

See Also Func/33h


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