/* * dosint.h -- MS-DOS Ctrl-C & system error INT handle * * Copyright (C) 1997 by Sony Computer Entertainment * All rights Reserved */ /* #include #include #include #include #include "irqvect.h" */ #define CAN_FAIL 0x0800 int ctrlcflag = 0; int breakflag = 0; /* int sdeverror = -1; int serrcode = -1; unsigned __far *sdevhdr; struct _DOSERROR doserror; void __cdecl __interrupt __far int23handler() { ctrlcflag ++; } void __cdecl __interrupt __far int1bhandler() { breakflag ++; } void __far int24handler(unsigned deverror, unsigned errcode, unsigned __far *devhdr) { sdeverror = deverror; serrcode = errcode & 0xff; sdevhdr = devhdr; _dosexterr( &doserror ); if( deverror & CAN_FAIL ) { _hardresume(_HARDERR_FAIL); } else { restore_ivectors(); _cprintf("deverror:%04x errcode:%04x\n\r", sdeverror, serrcode ); _hardresume(_HARDERR_ABORT); } } void dosint_init(void) { #ifndef PC98 set_ivector(0x1b, int1bhandler ); set_ivector(0x23, int23handler ); #endif _harderr( int24handler ); } void dosint_term(void) { restore_ivectors(); } */