dma_ini.ms

来自「一款SmartPhone的驱动代码」· MS 代码 · 共 968 行 · 第 1/3 页

MS
968
字号
	.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_timer3_8bit,	val	init_timer3_8bit,	scl	2,	type	0x21,	endef
	.global	init_timer3_8bit

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

	.loc	28
	ext	0x0		; 	xld.w	%r11,0x0004014e		; 262478
	ext	0x1005
	ld.w	%r11,0xe
	;.set	volatile
	ld.ub	%r10,[%r11]	; 	xld.ub	%r10,[%r11]
	;.set	novolatile
	and	%r10,0xf	; 	xand	%r10,%r10,0x0000000f
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	29
	bset	[%r11],0x7	; 	xbset	[%r11],0x7

	.loc	41
	ext	0x0		; 	xld.w	%r11,0x0004016d		; 262509
	ext	0x1005
	ld.w	%r11,0x2d
	ext	0x0		; 	xld.w	%r10,0x00000032		; 50
	ld.w	%r10,0x32
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	42
	ext	0x0		; 	xld.w	%r11,0x00040285		; 262789
	ext	0x100a
	ld.w	%r11,0x5
	bset	[%r11],0x3	; 	xbset	[%r11],0x3

	.loc	48
	ext	0x0		; 	xld.w	%r11,0x0004016c		; 262508
	ext	0x1005
	ld.w	%r11,0x2c
	ld.w	%r10,0x7	; 	xld.w	%r10,0x00000007		; 7
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

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

	.loc	54
	.def	ent,	scl	101,	type	0x0,	endef
init_hsdma3:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	.def	add,	val	12,	scl	17,	type	0x1d,	endef

	.loc	56
	ext	0x0		; 	xld.w	%r13,0x0004825c		; 295516
	ext	0x1209
	ld.w	%r13,0x1c
	bclr	[%r13],0x0	; 	xbclr	[%r13],0x0

	.loc	59
	ext	0x0		; 	xld.w	%r11,0x00040299		; 262809
	ext	0x100a
	ld.w	%r11,0x19
	ext	0x1		; 	xld.w	%r10,0x00000050		; 80
	ld.w	%r10,0x10
	;.set	volatile
	ld.b	[%r11],%r10	; 	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	64
	ext	0x0		; 	xld.w	%r11,0x00048250		; 295504
	ext	0x1209
	ld.w	%r11,0x10
	ext	0x1400		; 	xld.w	%r10,-1610593536			; 0xa0004b00
	ext	0x12c
	ld.w	%r10,0x0
	;.set	volatile
	ld.w	[%r11],%r10	; 	xld.w	[%r11],%r10
	;.set	novolatile

	.loc	68
	ext	0x0		; 	xld.w	%r10,0x00048254		; 295508
	ext	0x1209
	ld.w	%r10,0x14
	ext	0x200		; 	xsub	%r12,%r12,268435456
	ext	0x0
	sub	%r12,0x0
	;.set	volatile
	ld.w	[%r10],%r12	; 	xld.w	[%r10],%r12
	;.set	novolatile

	.loc	71
	ext	0x0		; 	xld.w	%r11,0x00048258		; 295512
	ext	0x1209
	ld.w	%r11,0x18
	ext	0x80		; 	xld.w	%r10,0x04000002		; 67108866
	ext	0x0
	ld.w	%r10,0x2
	;.set	volatile
	ld.w	[%r11],%r10	; 	xld.w	[%r11],%r10
	;.set	novolatile

	.loc	77
	ext	0x0		; 	xld.w	%r11,0x00040281		; 262785
	ext	0x100a
	ld.w	%r11,0x1
	bset	[%r11],0x3	; 	xbset	[%r11],0x3

	.loc	83
	bset	[%r13],0x0	; 	xbset	[%r13],0x0

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

	.loc	90
	.def	ent,	scl	101,	type	0x0,	endef
StartDMA:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ld.w	%r7,[%sp+0x2]	; 	xld.w	%r7,[%sp+8]
	ld.w	%r0,[%sp+0x3]	; 	xld.w	%r0,[%sp+12]
	ld.w	%r6,%r12
	ld.w	%r4,%r13
	ld.w	%r5,%r14
	ld.w	%r12,%r15
	.def	x1,	val	6,	scl	17,	type	0xd,	endef
	.def	y1,	val	4,	scl	17,	type	0xd,	endef
	.def	x2,	val	5,	scl	17,	type	0xd,	endef
	.def	y2,	val	12,	scl	17,	type	0xd,	endef
	.def	Srcbuf,	val	8,	scl	9,	type	0x1d,	endef
	.def	Desbuf,	val	12,	scl	9,	type	0x1d,	endef
	.def	Srcbuf,	val	7,	scl	4,	type	0x1d,	endef
	.def	Desbuf,	val	0,	scl	4,	type	0x1d,	endef

	.loc	91
	.def	begin,	scl	100,	type	0x0,	endef
	.def	f,	val	10,	scl	4,	type	0xc,	endef

	.loc	93
	ext	0x0		; 	xld.w	%r10,0x00040281		; 262785
	ext	0x100a
	ld.w	%r10,0x1

	.loc	94
	btst	[%r10],0x3	; 	xbtst	[%r10],0x3
	jrne	__LX5		; 	xjrne	__L5
	ext	0x0		; 	xld.w	%r11,0x00040281		; 262785
	ext	0x100a
	ld.w	%r11,0x1
__LX6:				; __L6:

	.loc	95
	btst	[%r11],0x3	; 	xbtst	[%r11],0x3
	jreq	__LX6		; 	xjreq	__L6
__LX5:				; __L5:

	.loc	98
	ext	0x0		; 	xld.w	%r14,0x00040281		; 262785
	ext	0x100a
	ld.w	%r14,0x1
	bset	[%r14],0x3	; 	xbset	[%r14],0x3

	.loc	100
	ext	0x0		; 	xld.w	%r13,0x0004825c		; 295516
	ext	0x1209
	ld.w	%r13,0x1c
	bclr	[%r13],0x0	; 	xbclr	[%r13],0x0

	.loc	104
	ext	0x0		; 	xld.w	%r11,0x00048254		; 295508
	ext	0x1209
	ld.w	%r11,0x14
	ld.w	%r10,%r7	; 	xsub	%r10,%r7,268435456
	ext	0x200
	ext	0x0
	sub	%r10,0x0
	;.set	volatile
	ld.w	[%r11],%r10	; 	xld.w	[%r11],%r10
	;.set	novolatile

	.loc	107
	ext	0x0		; 	xld.w	%r11,0x00048258		; 295512
	ext	0x1209
	ld.w	%r11,0x18
	ld.w	%r10,%r0	; 	xadd	%r10,%r0,67108864
	ext	0x80
	ext	0x0
	add	%r10,0x0
	;.set	volatile
	ld.w	[%r11],%r10	; 	xld.w	[%r11],%r10
	;.set	novolatile

	.loc	113
	ext	0x0		; 	xld.w	%r15,0x00048250		; 295504
	ext	0x1209
	ld.w	%r15,0x10
	ld.uh	%r12,%r12
	ld.uh	%r10,%r4
	sub	%r12,%r10
	add	%r12,0x1	; 	xadd	%r12,%r12,1
	ld.uh	%r10,%r5
	ld.uh	%r11,%r6
	sub	%r10,%r11
	add	%r10,0x1	; 	xadd	%r10,%r10,1
	mlt.w	%r12,%r10
	ld.w	%r10,%alr
	ext	0xc00		; 	xsub	%r10,%r10,1610612736
	ext	0x0
	sub	%r10,0x0
	;.set	volatile
	ld.w	[%r15],%r10	; 	xld.w	[%r15],%r10
	;.set	novolatile

	.loc	114
	bset	[%r13],0x0	; 	xbset	[%r13],0x0

	.loc	117

	.loc	118
	btst	[%r14],0x3	; 	xbtst	[%r14],0x3
	jrne	__LX9		; 	xjrne	__L9
	ext	0x0		; 	xld.w	%r11,0x00040281		; 262785
	ext	0x100a
	ld.w	%r11,0x1
__LX10:				; __L10:

	.loc	119
	btst	[%r11],0x3	; 	xbtst	[%r11],0x3
	jreq	__LX10		; 	xjreq	__L10
__LX9:				; __L9:

	.loc	122
	.def	bend,	scl	110,	type	0x0,	endef
	popn	%r0
	ret
	.def	end,	scl	111,	type	0x0,	endef

	.endfile

⌨️ 快捷键说明

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