⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kbdmouse.cpp

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 CPP
字号:
/*

  Copyright(c) 1998,1999 SIC/Hitachi,Ltd.
  Copyright(c) 1998,1999 3RD Rail Engineering.

	Module Name:

		keybdist.cpp

	Revision History:

		26th April 1999		Released
		16th June  1999		Revised
*/

#include <windows.h>
#include <ceddk.h>
//#include "mobytel.h"
#include <dbgapi.h>

#include "ps2p465.hpp"
#include "ps2mouse.hpp"
#include "ps2keybd.hpp"
#include "dbgzones.hpp"

extern Ps2K465	*v_pp2k;
extern Ps2M465	*v_pp2m;
extern PVBYTE	v_pIoRegs;

static const UINT iopBaseDefault	= 0x60;
static const UINT iopRangeDefault	= 5;


static Ps2P465	*v_pp2p;




BOOL
WINAPI
DllMain(
	HANDLE	hinstDll,
	DWORD	dwReason,
	LPVOID	lpReserved
	)
{
	BOOL	bRet = FALSE;

	PVBYTE				iopBase;
	ULONG				iopRange = iopRangeDefault;
	ULONG				inIoSpace = 1;
	PHYSICAL_ADDRESS	ioPhysicalBase = { iopBaseDefault, 0 };

	switch ( dwReason )
	{
	case DLL_PROCESS_ATTACH:
		if ( v_pp2p )
		{
			bRet = TRUE;
			goto leave;
		}
		if ( KeybdDriverInitializeAddresses() )
		{
			iopBase = v_pIoRegs;
		}
		else
		{
			ERRORMSG( 1, (TEXT("Error mapping I/O Ports.\r\n")));
			goto leave;
		}
		
		v_pp2p = new Ps2P465;
		if ( !v_pp2p -> Initialize(iopBase) )
		{
			ERRORMSG(1, (TEXT("Could not initialize ps2 port.\r\n")));
			goto leave;
		}
		
		//	We always assume that there is a keyboard.
		v_pp2k = new Ps2K465;
		if ( v_pp2k -> Initialize(v_pp2p) )
		{
			v_pp2k -> IsrThreadStart();
		}
		else
		{
			ERRORMSG(1, (TEXT("Could not initialize ps2 keyboard.\r\n")));
			delete v_pp2k;
			v_pp2k = NULL;
		}
		if ( v_pp2p -> bMouseFound() )
		{
			v_pp2m = new Ps2M465;
			
			if ( v_pp2m -> Initialize(v_pp2p) )
			{
				v_pp2m -> IsrThreadStart();
			}
			else
			{
				ERRORMSG(1, (TEXT("Could not initialize ps2 mouse\r\n")));
				delete v_pp2m;
				v_pp2m = NULL;
			}
		}
		bRet = TRUE;
		break;
	}

	if (bRet)
	{
        DEBUGREGISTER((HINSTANCE) hinstDll);
			DEBUGMSG(ZONE_INIT, (TEXT("PS/2 Keyboard-mouse : DLL_PROCESS_ATTACH\r\n")));
	}
leave:
	return bRet;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -