trap_version TRAPENTRY TrapInit( char *parm, char *err, bool remote ) { trap_version ver; out( "in TrapInit\r\n" ); out( " checking environment:\r\n" ); CPUType = X86CPUType(); Flags.Is386 = ( CPUType >= X86_386 ); if( parm[0] == 'D' || parm[0] == 'd' ) { Flags.DRsOn = FALSE; ++parm; } else if( out0( " CPU type\r\n" ) || ( Flags.Is386 == 0 ) ) { Flags.DRsOn = FALSE; } else if( out0( " WinEnh\r\n" ) || ( EnhancedWinCheck() & 0x7f ) ) { /* Enhanced Windows 3.0 VM kernel messes up handling of debug regs */ Flags.DRsOn = FALSE; } else if( out0( " DOSEMU\r\n" ) || DOSEMUCheck() ) { /* no fiddling with debug regs in Linux DOSEMU either */ Flags.DRsOn = FALSE; } else { Flags.DRsOn = TRUE; } if( parm[0] == 'O' || parm[0] == 'o' ) { Flags.NoOvlMgr = TRUE; } out( " done checking environment\r\n" ); err[0] = '\0'; /* all ok */ Flags.IsMMX = ( ( CPUType & X86_MMX ) != 0 ); Flags.IsXMM = ( ( CPUType & X86_XMM ) != 0 ); /* NPXType initializes '87, so check for it before a program starts using the thing */ RealNPXType = NPXType(); InitVectors(); if( DOS_major >= 20 ) { /* In an OS/2 2.0 DOS box. It doesn't let us fiddle the debug registers. The check is done here because InitVectors is the routine that sets up DOS_major */ Flags.DRsOn = FALSE; } Null87Emu(); NullOvlHdlr(); TrapTypeInit(); RedirectInit(); ExceptNum = -1; WatchCount = 0; ver.major = TRAP_MAJOR_VERSION; ver.minor = TRAP_MINOR_VERSION; ver.remote = FALSE; out( "done TrapInit\r\n" ); return( ver ); }
trap_version TRAPENTRY TrapInit( const char *parms, char *error, bool remote ) { trap_version ver; remote = remote; ver.remote = false; ver.major = TRAP_MAJOR_VERSION; ver.minor = TRAP_MINOR_VERSION; if( !remote && DPMIVersion() == 90 && !DOSEMUCheck() ) { strcpy( error, TRP_ERR_bad_dpmi ); return( ver ); } _DBG_EnterFunc( "TrapInit()" ); InitPSP(); LoadError = NULL; error[0] = '\0'; strcpy( LinkParms, parms ); // save trap parameters TaskLoaded = false; _DBG_ExitFunc( "TrapInit()" ); return( ver ); }
trap_version TRAPENTRY TrapInit( char *parm, char *error, bool remote ) #pragma on(unreferenced); { trap_version ver; extern void InitPSP( void ); ver.remote = FALSE; ver.major = TRAP_MAJOR_VERSION; ver.minor = TRAP_MINOR_VERSION; if( !remote && DPMIVersion() == 90 && !DOSEMUCheck() ) { strcpy( error, TRP_ERR_bad_dpmi ); return( ver ); } _DBG_EnterFunc( "TrapInit()" ); InitPSP(); LoadError = NULL; error[0] = '\0'; strcpy( LinkParm, parm ); TaskLoaded = FALSE; _DBG_ExitFunc( "TrapInit()" ); return( ver ); }