home *** CD-ROM | disk | FTP | other *** search
- /*------------------------------------------------------------------*/
- /* CHKDRV.C */
- /*------------------------------------------------------------------*/
- /* API ▒` ªí : CHKDRV() */
- /* API ¿τ╝╞└] : CHKDRV.PLB */
- /* ╗y ¬k : CHKDRV(<expC>) */
- /*------------------------------------------------------------------*/
-
- #include <dos.h>
- #include <fcntl.h>
- #include <string.h>
- #include <stdio.h>
- #include <io.h>
- #include <ctype.h>
- #include <errno.h>
- #include <pro_ext.h>
-
- int notReady;
- void (__interrupt __far *cur_int)();
-
- void __interrupt __far ErrorHandler(union INTPACK r)
- {
- if ( (r.w.di & 0x00FF) == 1 ||
- (r.w.di & 0x00FF) == 2 ||
- (r.w.di & 0x00FF) == 12 )
- {
- /* ┐∙╗~¬¼¬p╗í⌐· : */
- /* 01H │µñ╕(unit) ⌐|Ñ╝⌐w╕q */
- /* 02H ║╧║╨╛≈⌐|Ñ╝│B⌐≤╖╟│╞ªnñº¬¼║A (ª╣Ñ]¼A */
- /* ╖φñ@¡╙║⌠╕⌠║╧║╨╛≈«┌Ñ╗┤Nñúªsªb) */
- /* 0CH ╡o▓{⌐|Ñ╝«µªíñ╞ñº║╧║╨¬║ñ@¡╙ñ@»δ⌐╩ñº┐∙ */
- /* ╗~╡oÑ═ */
- /* Ñu¡n└xªs¿Σ╕Ω░T¿├... */
-
- notReady = TRUE;
-
- /* ... │q¬╛ DOS Ñh⌐┐▓ñª╣┐∙╗~ */
- r.h.al = (unsigned char) 0;
- }
- else
- {
- _chain_intr(cur_int);
- }
- return;
- }
-
- void FAR ChkDrv(ParamBlk FAR *parm)
- {
- WHANDLE wh;
- Point pt;
- char FAR *message;
- int keystroke;
- int wasError = FALSE;
- char buffer[4];
- char FAR *ptr;
- int retCode;
- message = "│Q╢╟╗╝╡╣ CHKDRV() ñº░╤╝╞Ñ▓╢╖¼Oñ@¡╙║╧║╨╛≈ªrÑ└ÑN╕╣╗Pñ@¡╙½_╕╣";
-
- if (parm->p[0].val.ev_length!=2)
- wasError = TRUE;
- else
- {
- ptr = _HandToPtr(parm->p[0].val.ev_handle);
- _MemMove(buffer, ptr, 2);
- if (!isalpha(buffer[0]) || buffer[1]!=':')
- wasError = TRUE;
- }
-
- if (wasError)
- {
- wh = _WOpen(12,4,15,75,
- SHADOW,
- ALERT_SCHEME,
- 0,
- WO_SYSTEMBORDER);
- if(wh != NULL) {
- _WSetTitle( wh, "┐∙╗~░T«º" );
- _WSetFooter( wh, "ALERT MESSAGE");
- _WShow(wh);
- pt.h = 1;
- pt.v = 1;
- _WPosCursor( wh, pt );
- _WPutStr( wh , message);
- }
- _InKey(0,HIDECURSOR+MOUSEACTIVE);
- _WClose( wh );
- _RetLogical(FALSE);
- return;
- }
-
- buffer[2] = '\\';
- buffer[3] = '\0';
-
- notReady = FALSE;
-
- cur_int = _dos_getvect(0x24);
-
- _disable();
-
- _dos_setvect(0x24, &ErrorHandler);
-
- _enable();
-
- retCode = access(buffer, F_OK);
-
- _disable();
- _dos_setvect(0x24, cur_int);
- _enable();
- if (notReady)
- retCode = TRUE;
-
- _RetLogical(!retCode);
- return;
- }
-
- FoxInfo myFoxInfo[] = {
- { "CHKDRV",
- ChkDrv,
- 1,
- "C"}
- };
-
- FoxTable _FoxTable = {
- (FoxTable FAR *) 0,
- sizeof( myFoxInfo) / sizeof( FoxInfo ),
- myFoxInfo
- };
-