trap_version TRAPENTRY TrapInit( char *parm, char *err, bool remote ) { trap_version ver; int error_num; extern int hotkey_int; _DBG1(( "TrapInit\n" )); remote = remote; parm = parm; err[0] = '\0'; /* all ok */ ver.major = TRAP_MAJOR_VERSION; ver.minor = TRAP_MINOR_VERSION; ver.remote = FALSE; RedirectInit(); RealNPXType = NPXType(); WatchCount = 0; FakeBreak = FALSE; hotkey_int = 5; error_num = D32DebugInit( &Proc ); if( error_num ) { _DBG(("D32DebugInit() failed:\n")); exit(1); } Proc.int_id = -1; D32DebugBreakOp(&Break); /* Get the 1 byte break op */ return( ver ); }
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( char *parm, char *err, bool remote ) { trap_version ver; _DBG0(( "TrapInit" )); remote = remote; parm = parm; err[0] = '\0'; /* all ok */ ver.major = TRAP_MAJOR_VERSION; ver.minor = TRAP_MINOR_VERSION; ver.remote = FALSE; RedirectInit(); RealNPXType = NPXType(); WatchCount = 0; FakeBreak = FALSE; GrabVects(); _DBG0(( "Done TrapInit" )); return( ver ); }
trap_retval ReqGet_sys_config( void ) /********************************/ { get_sys_config_ret *ret; _DBG( "AccGetConfig\r\n" ); ret = GetOutPtr( 0 ); ret->sys.os = MAD_OS_RATIONAL; // Pretend we're DOS/4G ret->sys.osmajor = _osmajor; ret->sys.osminor = _osminor; ret->sys.cpu = X86CPUType(); ret->sys.huge_shift = 12; ret->sys.fpu = NPXType(); //RealNPXType; ret->sys.mad = MAD_X86; _DBG( "os = %d, cpu=%d, fpu=%d, osmajor=%d, osminor=%d\r\n", ret->sys.os, ret->sys.cpu, ret->sys.fpu, ret->sys.osmajor, ret->sys.osminor ); return( sizeof( *ret ) ); }
trap_version TRAPENTRY TrapInit( char *parm, char *err, bool remote ) /*******************************************************************/ { trap_version ver; char ver_msg[] = "CauseWay API version = 0.00\r\n$"; err[0] = '\0'; /* all ok */ ver.major = TRAP_MAJOR_VERSION; ver.minor = TRAP_MINOR_VERSION; ver.remote = FALSE; RedirectInit(); RealNPXType = NPXType(); HBRKInit(); WatchCount = 0; FakeBreak = FALSE; XVersion = GrabVectors(); ver_msg[23] = XVersion / 256 + '0'; ver_msg[25] = ( XVersion % 256 ) / 10 + '0'; ver_msg[26] = XVersion % 256 % 10 + '0'; dos_print( ver_msg ); return( ver ); }