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

📄 drv_key.ps

📁 一款SmartPhone的驱动代码
💻 PS
📖 第 1 页 / 共 3 页
字号:
	.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
	xld.w	%r11,0x000402dc		; 262876
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xand	%r10,%r10,0x000000e0
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	30
	xld.w	%r11,0x000402de		; 262878
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	31
	xld.w	%r11,0x000402dd		; 262877
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xand	%r10,%r10,0x000000e0
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

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

	.loc	37
	xld.w	%r11,0x000402ca		; 262858
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xand	%r10,%r10,0x000000fc
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

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

	.loc	41
	xld.w	%r11,0x000402cc		; 262860
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	44
	xld.w	%r11,0x000402ce		; 262862
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	47
	xld.w	%r11,0x00040262		; 262754
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xand	%r10,%r10,0x000000f0
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

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

	.loc	51
	xld.w	%r11,0x00040270		; 262768
	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
	xld.w	%r11,0x00040280		; 262784
	xbset	[%r11],0x4

	.loc	59
	xld.w	%r11,0x00040270		; 262768
	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
	xld.w	%r10,0x00040280		; 262784
	xbset	[%r10],0x4

	.loc	72
	xld.uh	%r10,[bKeyStatus]
	cmp	%r10,0x0
	xjreq	__L4

	.loc	75
	xld.w	%r11,0x000402cc		; 262860
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	77
	xld.w	%r11,0x000402ce		; 262862
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xoor	%r10,%r10,0x0000001f
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	80
	ld.w	%r14,0x0
	xld.h	[bKeyStatus],%r14

	.loc	81
	xld.w	%r12,0x00000001		; 1
	xld.w	%r13,0x00000010		; 16
	xcall	iset_flg

	.loc	82
	xld.w	%r11,0x00040270		; 262768
	xbset	[%r11],0x4

	.loc	83
; APP
	popn	%r15
; NO_APP

	.loc	84
; APP
	reti
; NO_APP
__L4:

	.loc	89
	xld.w	%r11,0x00040270		; 262768
	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
	xld.w	%r11,0x000402dd		; 262877
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xand	%r10,%r10,0x0000003e
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	98
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xoor	%r10,%r10,0x0000001e
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	101
	xld.w	%r12,0x000402c1		; 262849
__L5:

	.loc	102
	;.set	volatile
	xld.ub	%r10,[%r12]
	;.set	novolatile
	xld.b	[keytemp],%r10

	.loc	103
; APP
	nop
; NO_APP

	.loc	105
	xld.ub	%r11,[keytemp]
	;.set	volatile
	xld.ub	%r10,[%r12]
	;.set	novolatile
	ld.ub	%r10,%r10
	cmp	%r11,%r10
	xjrne	__L5

	.loc	107
	xld.ub	%r10,[keytemp]
	xand	%r10,%r10,0x0000000f
	xld.b	[keytemp],%r10

	.loc	108
	xld.ub	%r10,[keytemp]
	xcmp	%r10,11
	xjreq	__L13
	xjrgt	__L17
	xcmp	%r10,7
	xjreq	__L14
	xjp	__L9
__L17:
	xcmp	%r10,13
	xjreq	__L12
	xcmp	%r10,14
	xjrne	__L9

	.loc	113
	xld.w	%r10,0x0000000e		; 14

	.loc	118
	xjp	__L52
__L12:

	.loc	123
	xld.w	%r10,0x0000001b		; 27

	.loc	128
	xjp	__L53
__L13:

	.loc	133
	xld.w	%r10,0x0000001a		; 26

	.loc	138
	xjp	__L54
__L14:

	.loc	143
	xld.w	%r10,0x0000001d		; 29

	.loc	148
	xjp	__L55
__L9:

	.loc	153
	xld.w	%r11,0x000402dd		; 262877
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xand	%r10,%r10,0x0000003d
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	154
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xoor	%r10,%r10,0x0000001d
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	155
	xld.w	%r10,0x000402c1		; 262849
	;.set	volatile
	xld.ub	%r10,[%r10]
	;.set	novolatile

	.loc	156
	xand	%r10,%r10,0x0000001f
	xld.b	[keytemp],%r10

	.loc	157
	xld.ub	%r10,[keytemp]
	xsub	%r10,%r10,15
	xcmp	%r10,15
	xjrugt	__L18
	xsll	%r10,2
	xld.w	%r10,[%r10+__L24]
	jp	%r10
	.code
	.align	2
__L24:
	.word	__L23
	.word	__L18
	.word	__L18
	.word	__L18
	.word	__L18
	.word	__L18
	.word	__L18
	.word	__L18
	.word	__L22
	.word	__L18
	.word	__L18
	.word	__L18
	.word	__L21
	.word	__L18
	.word	__L20
	.word	__L19
	.code
__L19:

	.loc	162
	xld.w	%r10,0x00000012		; 18

	.loc	168
	xjp	__L52
__L20:

	.loc	173
	xld.w	%r10,0x00000003		; 3

	.loc	178
	xjp	__L53
__L21:

	.loc	183
	xld.w	%r10,0x00000006		; 6

	.loc	189
	xjp	__L54
__L22:

	.loc	194
	xld.w	%r10,0x00000009		; 9

	.loc	199
	xjp	__L55
__L23:

	.loc	204
	xld.w	%r10,0x0000000b		; 11

	.loc	209
	xjp	__L56
__L18:

	.loc	216
	xld.w	%r11,0x000402dd		; 262877
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xand	%r10,%r10,0x0000003b

⌨️ 快捷键说明

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