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

📄 drv_key.ms

📁 一款SmartPhone的驱动代码
💻 MS
📖 第 1 页 / 共 4 页
字号:
	.def	pLastNotifyMsg,	val	8,	scl	8,	tag	T_MSG_QMsg,	size	32,	type	0x18,	endef
	.def	OnIdle,	val	12,	scl	8,	type	0x91,	endef
	.def	msg,	val	16,	scl	8,	tag	T_GUI_Msg,	size	28,	type	0x18,	endef
	.def	len,	val	20,	scl	8,	type	0x4,	endef
	.def	ReadPos,	val	24,	scl	8,	type	0x4,	endef
	.def	WritePos,	val	28,	scl	8,	type	0x4,	endef
	.def	TimerOwner,	val	32,	scl	8,	dim	16,	size	64,	type	0x34,	endef
	.def	TimerID,	val	96,	scl	8,	dim	16,	size	64,	type	0x34,	endef
	.def	TimerMask,	val	160,	scl	8,	type	0xd,	endef
	.def	T_MSG_MsgQueue,	val	164,	scl	102,	tag	T_MSG_MsgQueue,	size	164,	endef
	.def	T_WND_pMainWin,	scl	13,	tag	T_WND_MainWin,	size	0,	type	0x18,	endef
	.def	T_GAL_pGC,	scl	13,	tag	T_GAL_GraphicContext,	size	0,	type	0x18,	endef
	.def	T_GAL_GraphicContext,	scl	10,	type	0x8,	size	164,	endef
	.def	xRes,	val	0,	scl	8,	type	0x4,	endef
	.def	yRes,	val	4,	scl	8,	type	0x4,	endef
	.def	xVirtRes,	val	8,	scl	8,	type	0x4,	endef
	.def	yVirtRes,	val	12,	scl	8,	type	0x4,	endef
	.def	planes,	val	16,	scl	8,	type	0x4,	endef
	.def	bpp,	val	20,	scl	8,	type	0x4,	endef
	.def	LineLen,	val	24,	scl	8,	type	0x4,	endef
	.def	size,	val	28,	scl	8,	type	0x4,	endef
	.def	ForeGround,	val	32,	scl	8,	type	0xe,	endef
	.def	BackGround,	val	36,	scl	8,	type	0xe,	endef
	.def	DoClip,	val	40,	scl	8,	type	0x4,	endef
	.def	ClipMinX,	val	44,	scl	8,	type	0x4,	endef
	.def	ClipMinY,	val	48,	scl	8,	type	0x4,	endef
	.def	ClipMaxX,	val	52,	scl	8,	type	0x4,	endef
	.def	ClipMaxY,	val	56,	scl	8,	type	0x4,	endef
	.def	ncolors,	val	60,	scl	8,	type	0x4,	endef
	.def	flags,	val	64,	scl	8,	type	0x4,	endef
	.def	addr,	val	68,	scl	8,	type	0x11,	endef
	.def	Open,	val	72,	scl	8,	tag	T_GAL_GraphicContext,	size	164,	type	0x198,	endef
	.def	Close,	val	76,	scl	8,	type	0x91,	endef
	.def	SetPalette,	val	80,	scl	8,	type	0x91,	endef
	.def	GetPalette,	val	84,	scl	8,	type	0x91,	endef
	.def	AllocateMemGC,	val	88,	scl	8,	tag	T_GAL_GraphicContext,	size	164,	type	0x198,	endef
	.def	MapMemGC,	val	92,	scl	8,	type	0x94,	endef
	.def	FreeMemGC,	val	96,	scl	8,	type	0x91,	endef
	.def	ClipPoint,	val	100,	scl	8,	type	0x94,	endef
	.def	FillRect,	val	104,	scl	8,	type	0x91,	endef
	.def	DrawPixel,	val	108,	scl	8,	type	0x91,	endef
	.def	ReadPixel,	val	112,	scl	8,	type	0x9e,	endef
	.def	DrawHLine,	val	116,	scl	8,	type	0x91,	endef
	.def	PutHLine,	val	120,	scl	8,	type	0x91,	endef
	.def	GetHLine,	val	124,	scl	8,	type	0x91,	endef
	.def	DrawVLine,	val	128,	scl	8,	type	0x91,	endef
	.def	PutVLine,	val	132,	scl	8,	type	0x91,	endef
	.def	GetVLine,	val	136,	scl	8,	type	0x91,	endef
	.def	Blit,	val	140,	scl	8,	type	0x91,	endef
	.def	PutBox,	val	144,	scl	8,	type	0x91,	endef
	.def	GetBox,	val	148,	scl	8,	type	0x91,	endef
	.def	PutBoxMask,	val	152,	scl	8,	type	0x91,	endef
	.def	CopyBox,	val	156,	scl	8,	type	0x91,	endef
	.def	MapColor,	val	160,	scl	8,	type	0x9e,	endef
	.def	T_GAL_GraphicContext,	val	164,	scl	102,	tag	T_GAL_GraphicContext,	size	164,	endef
	.def	T_GAL_GraphicContext,	scl	13,	tag	T_GAL_GraphicContext,	size	164,	type	0x8,	endef
	.def	T_GAL_Output,	scl	10,	type	0x8,	size	212,	endef
	.def	phy_pgc,	val	0,	scl	8,	tag	T_GAL_GraphicContext,	size	164,	type	0x18,	endef
	.def	bytes_per_phypixel,	val	4,	scl	8,	type	0x4,	endef
	.def	bits_per_phypixel,	val	8,	scl	8,	type	0x4,	endef
	.def	width_phygc,	val	12,	scl	8,	type	0x4,	endef
	.def	height_phygc,	val	16,	scl	8,	type	0x4,	endef
	.def	colors_phygc,	val	20,	scl	8,	type	0x4,	endef
	.def	grayscale_screen,	val	24,	scl	8,	type	0xe,	endef
	.def	BytesPerPixel,	val	28,	scl	8,	type	0x94,	endef
	.def	BitsPerPixel,	val	32,	scl	8,	type	0x94,	endef
	.def	width,	val	36,	scl	8,	type	0x94,	endef
	.def	height,	val	40,	scl	8,	type	0x94,	endef
	.def	colors,	val	44,	scl	8,	type	0x94,	endef
	.def	AllocateGc,	val	48,	scl	8,	type	0x94,	endef
	.def	FreeGc,	val	52,	scl	8,	type	0x91,	endef
	.def	SetGc,	val	56,	scl	8,	type	0x91,	endef
	.def	EnableClipping,	val	60,	scl	8,	type	0x91,	endef
	.def	DisableClipping,	val	64,	scl	8,	type	0x91,	endef
	.def	SetClipping,	val	68,	scl	8,	type	0x94,	endef
	.def	GetClipping,	val	72,	scl	8,	type	0x94,	endef
	.def	GetBgColor,	val	76,	scl	8,	type	0x94,	endef
	.def	SetBgColor,	val	80,	scl	8,	type	0x94,	endef
	.def	GetFgColor,	val	84,	scl	8,	type	0x94,	endef
	.def	SetFgColor,	val	88,	scl	8,	type	0x94,	endef
	.def	MapColor,	val	92,	scl	8,	type	0x9e,	endef
	.def	UnmapPixel,	val	96,	scl	8,	type	0x94,	endef
	.def	PackColors,	val	100,	scl	8,	type	0x94,	endef
	.def	UnpackPixels,	val	104,	scl	8,	type	0x94,	endef
	.def	GetPalette,	val	108,	scl	8,	type	0x94,	endef
	.def	SetPalette,	val	112,	scl	8,	type	0x94,	endef
	.def	SetColorFulPalette,	val	116,	scl	8,	type	0x94,	endef
	.def	BoxSize,	val	120,	scl	8,	type	0x9e,	endef
	.def	FillBox,	val	124,	scl	8,	type	0x94,	endef
	.def	PutBox,	val	128,	scl	8,	type	0x94,	endef
	.def	GetBox,	val	132,	scl	8,	type	0x94,	endef
	.def	PutBoxMask,	val	136,	scl	8,	type	0x94,	endef
	.def	ScaleBox,	val	140,	scl	8,	type	0x94,	endef
	.def	CopyBox,	val	144,	scl	8,	type	0x94,	endef
	.def	CrossBlit,	val	148,	scl	8,	type	0x94,	endef
	.def	DrawHLine,	val	152,	scl	8,	type	0x94,	endef
	.def	PutHLine,	val	156,	scl	8,	type	0x94,	endef
	.def	GetHLine,	val	160,	scl	8,	type	0x94,	endef
	.def	DrawVLine,	val	164,	scl	8,	type	0x94,	endef
	.def	PutVLine,	val	168,	scl	8,	type	0x94,	endef
	.def	GetVLine,	val	172,	scl	8,	type	0x94,	endef
	.def	DrawPixel,	val	176,	scl	8,	type	0x94,	endef
	.def	GetPixel,	val	180,	scl	8,	type	0x94,	endef
	.def	circle,	val	184,	scl	8,	type	0x94,	endef
	.def	line,	val	188,	scl	8,	type	0x94,	endef
	.def	rectangle,	val	192,	scl	8,	type	0x94,	endef
	.def	ellipse,	val	196,	scl	8,	type	0x94,	endef
	.def	ellipsearc,	val	200,	scl	8,	type	0x94,	endef
	.def	fillellipsearc,	val	204,	scl	8,	type	0x94,	endef
	.def	arc,	val	208,	scl	8,	type	0x94,	endef
	.def	T_GAL_Output,	val	212,	scl	102,	tag	T_GAL_Output,	size	212,	endef
	.def	T_GAL_Output,	scl	13,	tag	T_GAL_Output,	size	212,	type	0x8,	endef
	.def	T_GAL_ScreenDevice,	scl	10,	type	0x8,	size	84,	endef
	.def	xRes,	val	0,	scl	8,	type	0x4,	endef
	.def	yRes,	val	4,	scl	8,	type	0x4,	endef
	.def	bpp,	val	8,	scl	8,	type	0x4,	endef
	.def	planes,	val	12,	scl	8,	type	0x4,	endef
	.def	InitScrDev,	val	16,	scl	8,	type	0x191,	endef
	.def	SetPalette,	val	20,	scl	8,	type	0x91,	endef
	.def	GetPalette,	val	24,	scl	8,	type	0x91,	endef
	.def	DrawPixel,	val	28,	scl	8,	type	0x91,	endef
	.def	ReadPixel,	val	32,	scl	8,	type	0x9e,	endef
	.def	DrawHLine,	val	36,	scl	8,	type	0x91,	endef
	.def	PutHLine,	val	40,	scl	8,	type	0x91,	endef
	.def	GetHLine,	val	44,	scl	8,	type	0x91,	endef
	.def	DrawVLine,	val	48,	scl	8,	type	0x91,	endef
	.def	PutVLine,	val	52,	scl	8,	type	0x91,	endef
	.def	GetVLine,	val	56,	scl	8,	type	0x91,	endef
	.def	Blit,	val	60,	scl	8,	type	0x91,	endef
	.def	PutBox,	val	64,	scl	8,	type	0x91,	endef
	.def	GetBox,	val	68,	scl	8,	type	0x91,	endef
	.def	PutBoxMask,	val	72,	scl	8,	type	0x91,	endef
	.def	CopyBox,	val	76,	scl	8,	type	0x91,	endef
	.def	MapColor,	val	80,	scl	8,	type	0x9e,	endef
	.def	T_GAL_ScreenDevice,	val	84,	scl	102,	tag	T_GAL_ScreenDevice,	size	84,	endef
	.def	T_GAL_ScreenDevice,	scl	13,	tag	T_GAL_ScreenDevice,	size	84,	type	0x8,	endef
	.def	T_IAL_Input,	scl	10,	type	0x8,	size	56,	endef
	.def	UpdateMouse,	val	0,	scl	8,	type	0x94,	endef
	.def	GetMouseX,	val	4,	scl	8,	type	0x94,	endef
	.def	GetMouseY,	val	8,	scl	8,	type	0x94,	endef
	.def	SetMouseXY,	val	12,	scl	8,	type	0x91,	endef
	.def	GetMouseButton,	val	16,	scl	8,	type	0x94,	endef
	.def	SetMouseRange,	val	20,	scl	8,	type	0x91,	endef
	.def	SuspendMouse,	val	24,	scl	8,	type	0x91,	endef
	.def	ResumeMouse,	val	28,	scl	8,	type	0x91,	endef
	.def	UpdateKeyboard,	val	32,	scl	8,	type	0x94,	endef
	.def	GetKeyboardState,	val	36,	scl	8,	type	0x192,	endef
	.def	SuspendKeyboard,	val	40,	scl	8,	type	0x91,	endef
	.def	ResumeKeyboard,	val	44,	scl	8,	type	0x91,	endef
	.def	SetLeds,	val	48,	scl	8,	type	0x91,	endef
	.def	WaitEvent,	val	52,	scl	8,	type	0x94,	endef
	.def	T_IAL_Input,	val	56,	scl	102,	tag	T_IAL_Input,	size	56,	endef
	.def	T_IAL_Input,	scl	13,	tag	T_IAL_Input,	size	56,	type	0x8,	endef
	.align	1
	.def	init_key,	val	init_key,	scl	2,	type	0x21,	endef
	.global	init_key

	.loc	26
	.def	ent,	scl	101,	type	0x0,	endef
init_key:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0

	.loc	29
	ext	0x0		; 	xld.w	%r11,0x000402dc		; 262876
	ext	0x100b
	ld.w	%r11,0x1c
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	ext	0x3		; 	xand	%r10,%r10,0x000000e0
	and	%r10,0x20
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	30
	ext	0x0		; 	xld.w	%r11,0x000402de		; 262878
	ext	0x100b
	ld.w	%r11,0x1e
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	or	%r10,0x1f	; 	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	31
	ext	0x0		; 	xld.w	%r11,0x000402dd		; 262877
	ext	0x100b
	ld.w	%r11,0x1d
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	ext	0x3		; 	xand	%r10,%r10,0x000000e0
	and	%r10,0x20
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	34
	ext	0x0		; 	xld.w	%r10,0x000402c0		; 262848
	ext	0x100b
	ld.w	%r10,0x0
	ld.w	%r12,0x0
	;.set	volatile
	ld.b	[%r10],%r12	; 	xld.b	[%r10],%r12
	;.set	novolatile

	.loc	37
	ext	0x0		; 	xld.w	%r11,0x000402ca		; 262858
	ext	0x100b
	ld.w	%r11,0xa
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	ext	0x3		; 	xand	%r10,%r10,0x000000fc
	and	%r10,0x3c
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	38
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	41
	ext	0x0		; 	xld.w	%r11,0x000402cc		; 262860
	ext	0x100b
	ld.w	%r11,0xc
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	or	%r10,0x1f	; 	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	44
	ext	0x0		; 	xld.w	%r11,0x000402ce		; 262862
	ext	0x100b
	ld.w	%r11,0xe
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	or	%r10,0x1f	; 	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	47
	ext	0x0		; 	xld.w	%r11,0x00040262		; 262754
	ext	0x1009
	ld.w	%r11,0x22
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	ext	0x3		; 	xand	%r10,%r10,0x000000f0
	and	%r10,0x30
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	48
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	or	%r10,0x3	; 	xoor	%r10,%r10,0x00000003
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	51
	ext	0x0		; 	xld.w	%r11,0x00040270		; 262768
	ext	0x1009
	ld.w	%r11,0x30
	bset	[%r11],0x4	; 	xbset	[%r11],0x4

	.loc	53
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	enable_key,	val	enable_key,	scl	2,	type	0x21,	endef
	.global	enable_key

	.loc	56
	.def	ent,	scl	101,	type	0x0,	endef
enable_key:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0

	.loc	58
	ext	0x0		; 	xld.w	%r11,0x00040280		; 262784
	ext	0x100a
	ld.w	%r11,0x0
	bset	[%r11],0x4	; 	xbset	[%r11],0x4

	.loc	59
	ext	0x0		; 	xld.w	%r11,0x00040270		; 262768
	ext	0x1009
	ld.w	%r11,0x30
	bset	[%r11],0x4	; 	xbset	[%r11],0x4

	.loc	60
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	int_key0,	val	int_key0,	scl	2,	type	0x21,	endef
	.global	int_key0

	.loc	63
	.def	ent,	scl	101,	type	0x0,	endef
int_key0:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0

	.loc	67
; APP
	pushn	%r15
; NO_APP

	.loc	70
	ext	0x0		; 	xld.w	%r10,0x00040280		; 262784
	ext	0x100a
	ld.w	%r10,0x0
	bset	[%r10],0x4	; 	xbset	[%r10],0x4

	.loc	72
	ext	bKeyStatus+0x0@h	; 	xld.uh	%r10,[bKeyStatus]
	ext	bKeyStatus+0x0@m
	ld.w	%r9,bKeyStatus+0x0@l
	ld.uh	%r10,[%r9]
	cmp	%r10,0x0
	jreq	__LX4		; 	xjreq	__L4

	.loc	75
	ext	0x0		; 	xld.w	%r11,0x000402cc		; 262860
	ext	0x100b
	ld.w	%r11,0xc
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	or	%r10,0x1f	; 	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	77
	ext	0x0		; 	xld.w	%r11,0x000402ce		; 262862
	ext	0x100b
	ld.w	%r11,0xe
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	or	%r10,0x1f	; 	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	80
	ld.w	%r14,0x0
	ext	bKeyStatus+0x0@h	; 	xld.h	[bKeyStatus],%r14
	ext	bKeyStatus+0x0@m
	ld.w	%r9,bKeyStatus+0x0@l
	ld.h	[%r9],%r14

	.loc	81
	ld.w	%r12,0x1	; 	xld.w	%r12,0x00000001		; 1
	ld.w	%r13,0x10	; 	xld.w	%r13,0x00000010		; 16
	ext	iset_flg@rh	; 	xcall	iset_flg
	ext	iset_flg@rm
	call	iset_flg@rl

	.loc	82
	ext	0x0		; 	xld.w	%r11,0x00040270		; 262768
	ext	0x1009
	ld.w	%r11,0x30
	bset	[%r11],0x4	; 	xbset	[%r11],0x4

	.loc	83
; APP
	popn	%r15
; NO_APP

	.loc	84
; APP
	reti
; NO_APP
__LX4:				; __L4:

	.loc	89
	ext	0x0		; 	xld.w	%r11,0x00040270		; 262768
	ext	0x1009
	ld.w	%r11,0x30
	bclr	[%r11],0x4	; 	xbclr	[%r11],0x4

	.loc	91
; APP
	ld.w	%r9,%psr
; NO_APP

	.loc	92
; APP
	or 	%r9,0x10
; NO_APP

	.loc	93
; APP
	ld.w	%psr,%r9
; NO_APP

	.loc	97
	ext	0x0		; 	xld.w	%r11,0x000402dd		; 262877
	ext	0x100b
	ld.w	%r11,0x1d

⌨️ 快捷键说明

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