home *** CD-ROM | disk | FTP | other *** search
- /* ------------------------------------------------------ */
- /* HERCULES.C */
- /* */
- /* lädt MSHERC.COM automatisch, wenn man eine */
- /* Hercules-Karte besitzt und MS-Grafikroutinen */
- /* verwendet werden sollen. Der Treiber MSHERC.COM muß */
- /* sich in einem von der Umgebungsvariable PATH */
- /* angegebenen Verzeichnis befinden. */
- /* */
- /* Returncode: 0 - MSHERC.COM nicht notwendig */
- /* 1 - MSHERC.COM wurde geladen */
- /* 2 - MSHERC.COM konnte nicht geladen werden */
- /* */
- /* (c) 1992 Michael Winter & DMV-Verlag */
- /* ------------------------------------------------------ */
-
- #include <bios.h>
- #include <graph.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <process.h>
-
- /* --- Funktionsprototypen ------------------------------ */
-
- int main ( void );
- int msherc( void );
- int hercules( void );
-
- /* --- Hauptprogramm ------------------------------------ */
-
- int main ( void )
- {
- printf("\nHercules");
- printf(" - (c) 1992 Michael Winter & DMV-Verlag\n");
- if ( (msherc() == 0) && (hercules() == 1) )
- {
- printf("\nProgramm MSHERC.COM wird geladen ...\n\n");
- if ( spawnvp( P_WAIT, "MSHERC.COM", NULL ) == -1)
- {
- printf("\n\nKonnte MSHERC.COM nicht laden : %d ",
- errno);
- exit(2);
- }
- exit(1);
- }
- printf("\nProgramm MSHERC.COM muß nicht geladen werden.");
- exit(0);
- }
-
- /*
-
- INT 10 - VIDEO - MSHERC.COM - INSTALLATION CHECK
- Aufruf : AH = EFh
- Rückgabe : DL = Grafikkartentyp
- 00h original Hercules
- 01h ??? \ möglicherweise Hercules Plus
- 02h ??? / Hercules InColor
- FFh keine Hercules Karte
- DH = "HALF" oder "FULL" Modus ?
- 01h "HALF" Modus
- 03h "FULL" Modus
- */
-
- int msherc( void )
- {
- union REGS regs;
-
- regs.h.ah = 0xEF;
-
- int86( 0x10, ®s, ®s );
-
- if ( (regs.h.dl == 0x00) || (regs.h.dl == 0x01) ||
- (regs.h.dl == 0x02) || (regs.h.dl == 0xFF) )
- return 1;
- else
- return 0;
- }
-
- int hercules( void )
- {
- struct videoconfig vc;
-
- _getvideoconfig( &vc );
-
- if ( (vc.adapter == _HGC) || (vc.adapter == _MDPA) )
- return 1;
- else
- return 0;
- }
- /* ------------------------------------------------------ */
- /* Ende von HERCULES.C */
-