Ŀ
 ZOMBIE_1.CPP  


#define INCL_DOS
#include <OS2.h>
#include <Stdio.h>

#define Main main

/* * */

ULONG APIENTRY TermHandler (PEXCEPTIONREPORTRECORD,
                            PEXCEPTIONREGISTRATIONRECORD,
                            PCONTEXTRECORD,
                            PVOID);
/* * */

Main () 
{
  EXCEPTIONREGISTRATIONRECORD Record = {
                                        .ExceptionHandler = (ERR) TermHandler
                                       };

  DosSetExceptionHandler (&Record);

  printf ("Stop this program using Ctrl-C or Ctrl-Break." "\n");
  DosSleep (100000); printf ("Try again (1)" "\n");
  DosSleep (100000); printf ("Try again (2)" "\n");
  DosSleep (100000); printf ("Try again (3)" "\n");
  DosSleep (100000); printf ("Try again (4)" "\n");
  DosSleep (100000); printf ("Try again (5)" "\n");
  DosSleep (100000); printf ("Try again (6)" "\n");
  DosSleep (100000); printf ("Try again (7)" "\n");
  DosSleep (100000); printf ("Try again (8)" "\n");
  printf ("Program ends." "\n");

  return 0;
}

/* * */

ULONG APIENTRY TermHandler (PEXCEPTIONREPORTRECORD       Exception_report,
                            PEXCEPTIONREGISTRATIONRECORD Exception_registration,
                            PCONTEXTRECORD               Exception_context,
                            PVOID                        Thread_context) 
{
  printf (" >> TermHandler entered: [%x]" "\n", Exception_report->ExceptionNum);

  return XCPT_CONTINUE_EXECUTION;
}
