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

📄 video.s

📁 linux-2.6.15.6
💻 S
📖 第 1 页 / 共 3 页
字号:
atiok:	retidati:	.ascii	"761295520"ati_md:	.byte	0x23, 0x19, 0x84	.byte	0x33, 0x2c, 0x84	.byte	0x22, 0x1e, 0x64	.byte	0x21, 0x19, 0x64	.byte	0x58, 0x21, 0x50	.byte	0x5b, 0x1e, 0x50	.byte	0	.ascii	"ATI"	.byte	0# AHEADahead_test:	movw	$0x200f, %ax	movw	$0x3ce, %dx	outw	%ax, %dx	incw	%dx	inb	%dx, %al	cmpb	$0x20, %al	je	isahed	cmpb	$0x21, %al	je	isahed		xorw	%bp, %bpisahed:	retahead_md:	.byte	0x22, 0x2c, 0x84	.byte	0x23, 0x19, 0x84	.byte	0x24, 0x1c, 0x84	.byte	0x2f, 0x32, 0xa0	.byte	0x32, 0x22, 0x50	.byte	0x34, 0x42, 0x50	.byte	0	.ascii	"Ahead"	.byte	0# Chips & Tech.chips_test:	movw	$0x3c3, %dx	inb	%dx, %al	orb	$0x10, %al	outb	%al, %dx	movw	$0x104, %dx	inb	%dx, %al	movb	%al, %bl	movw	$0x3c3, %dx	inb	%dx, %al	andb	$0xef, %al	outb	%al, %dx	cmpb	$0xa5, %bl	je	cantok		xorw	%bp, %bpcantok:	retchips_md:	.byte	0x60, 0x19, 0x84	.byte	0x61, 0x32, 0x84	.byte	0	.ascii	"Chips & Technologies"	.byte	0# Cirrus Logic 5X0cirrus1_test:	movw	$0x3d4, %dx	movb	$0x0c, %al	outb	%al, %dx	incw	%dx	inb	%dx, %al	movb	%al, %bl	xorb	%al, %al	outb	%al, %dx	decw	%dx	movb	$0x1f, %al	outb	%al, %dx	incw	%dx	inb	%dx, %al	movb	%al, %bh	xorb	%ah, %ah	shlb	$4, %al	movw	%ax, %cx	movb	%bh, %al	shrb	$4, %al	addw	%ax, %cx	shlw	$8, %cx	addw	$6, %cx	movw	%cx, %ax	movw	$0x3c4, %dx	outw	%ax, %dx	incw	%dx	inb	%dx, %al	andb	%al, %al	jnz	nocirr		movb	%bh, %al	outb	%al, %dx	inb	%dx, %al	cmpb	$0x01, %al	je	iscirrnocirr:	xorw	%bp, %bpiscirr: movw	$0x3d4, %dx	movb	%bl, %al	xorb	%ah, %ah	shlw	$8, %ax	addw	$0x0c, %ax	outw	%ax, %dx	retcirrus1_md:	.byte	0x1f, 0x19, 0x84	.byte	0x20, 0x2c, 0x84	.byte	0x22, 0x1e, 0x84	.byte	0x31, 0x25, 0x64	.byte	0	.ascii	"Cirrus Logic 5X0"	.byte	0# Cirrus Logic 54XXcirrus5_test:	movw	$0x3c4, %dx	movb	$6, %al	call	inidx	movb	%al, %bl			# BL=backup	movw	$6, %ax	call	tstidx	cmpb	$0x0f, %al	jne	c5fail		movw	$0x1206, %ax	call	tstidx	cmpb	$0x12, %al	jne	c5fail		movb	$0x1e, %al	call	inidx	movb	%al, %bh	movb	%bh, %ah	andb	$0xc0, %ah	movb	$0x1e, %al	call	tstidx	andb	$0x3f, %al	jne	c5xx		movb	$0x1e, %al	movb	%bh, %ah	orb	$0x3f, %ah	call	tstidx	xorb	$0x3f, %al	andb	$0x3f, %alc5xx:	pushf	movb	$0x1e, %al	movb	%bh, %ah	outw	%ax, %dx	popf	je	c5donec5fail:	xorw	%bp, %bpc5done:	movb	$6, %al	movb	%bl, %ah	outw	%ax, %dx	retcirrus5_md:	.byte	0x14, 0x19, 0x84	.byte	0x54, 0x2b, 0x84	.byte	0	.ascii	"Cirrus Logic 54XX"	.byte	0# Cirrus Logic 64XX -- no known extra modes, but must be identified, because# it's misidentified by the Ahead test.cirrus6_test:	movw	$0x3ce, %dx	movb	$0x0a, %al	call	inidx	movb	%al, %bl	# BL=backup	movw	$0xce0a, %ax	call	tstidx	orb	%al, %al	jne	c2fail		movw	$0xec0a, %ax	call	tstidx	cmpb	$0x01, %al	jne	c2fail		movb	$0xaa, %al	call	inidx		# 4X, 5X, 7X and 8X are valid 64XX chip ID's. 	shrb	$4, %al	subb	$4, %al	jz	c6done		decb	%al	jz	c6done		subb	$2, %al	jz	c6done		decb	%al	jz	c6done	c2fail:	xorw	%bp, %bpc6done:	movb	$0x0a, %al	movb	%bl, %ah	outw	%ax, %dx	retcirrus6_md:	.byte	0	.ascii	"Cirrus Logic 64XX"	.byte	0# Everex / Tridenteverex_test:	movw	$0x7000, %ax	xorw	%bx, %bx	int	$0x10	cmpb	$0x70, %al	jne	noevrx		shrw	$4, %dx	cmpw	$0x678, %dx	je	evtrid		cmpw	$0x236, %dx	jne	evrxokevtrid:	leaw	trident_md, %bpevrxok:	retnoevrx:	xorw	%bp, %bp	reteverex_md:	.byte	0x03, 0x22, 0x50	.byte	0x04, 0x3c, 0x50	.byte	0x07, 0x2b, 0x64	.byte	0x08, 0x4b, 0x64	.byte	0x0a, 0x19, 0x84	.byte	0x0b, 0x2c, 0x84	.byte	0x16, 0x1e, 0x50	.byte	0x18, 0x1b, 0x64	.byte	0x21, 0x40, 0xa0	.byte	0x40, 0x1e, 0x84	.byte	0	.ascii	"Everex/Trident"	.byte	0# Genoa.genoa_test:	leaw	idgenoa, %si			# Check Genoa 'clues'	xorw	%ax, %ax	movb	%es:(0x37), %al	movw	%ax, %di	movw	$0x04, %cx	decw	%si	decw	%dil1:	incw	%si	incw	%di	movb	(%si), %al	testb	%al, %al	jz	l2	cmpb	%es:(%di), %all2:	loope 	l1	orw	%cx, %cx	je	isgen		xorw	%bp, %bpisgen:	retidgenoa: .byte	0x77, 0x00, 0x99, 0x66genoa_md:	.byte	0x58, 0x20, 0x50	.byte	0x5a, 0x2a, 0x64	.byte	0x60, 0x19, 0x84	.byte	0x61, 0x1d, 0x84	.byte	0x62, 0x20, 0x84	.byte	0x63, 0x2c, 0x84	.byte	0x64, 0x3c, 0x84	.byte	0x6b, 0x4f, 0x64	.byte	0x72, 0x3c, 0x50	.byte	0x74, 0x42, 0x50	.byte	0x78, 0x4b, 0x64	.byte	0	.ascii	"Genoa"	.byte	0# OAKoak_test:	leaw	idoakvga, %si	movw	$0x08, %di	movw	$0x08, %cx	repe	cmpsb	je	isoak		xorw	%bp, %bpisoak:	retidoakvga: .ascii  "OAK VGA "oak_md: .byte	0x4e, 0x3c, 0x50	.byte	0x4f, 0x3c, 0x84	.byte	0x50, 0x19, 0x84	.byte	0x51, 0x2b, 0x84	.byte	0	.ascii	"OAK"	.byte	0# WD Paradise.paradise_test:	leaw	idparadise, %si	movw	$0x7d, %di	movw	$0x04, %cx	repe	cmpsb	je	ispara		xorw	%bp, %bpispara:	retidparadise:	.ascii	"VGA="paradise_md:	.byte	0x41, 0x22, 0x50	.byte	0x47, 0x1c, 0x84	.byte	0x55, 0x19, 0x84	.byte	0x54, 0x2c, 0x84	.byte	0	.ascii	"Paradise"	.byte	0# Trident.trident_test:	movw	$0x3c4, %dx	movb	$0x0e, %al	outb	%al, %dx	incw	%dx	inb	%dx, %al	xchgb	%al, %ah	xorb	%al, %al	outb	%al, %dx	inb	%dx, %al	xchgb	%ah, %al	movb	%al, %bl	# Strange thing ... in the book this wasn't	andb	$0x02, %bl	# necessary but it worked on my card which	jz	setb2		# is a trident. Without it the screen goes				# blurred ...	andb	$0xfd, %al	jmp	clrb2		setb2:	orb	$0x02, %al	clrb2:	outb	%al, %dx	andb	$0x0f, %ah	cmpb	$0x02, %ah	je	istrid	xorw	%bp, %bpistrid:	rettrident_md:	.byte	0x50, 0x1e, 0x50	.byte	0x51, 0x2b, 0x50	.byte	0x52, 0x3c, 0x50	.byte	0x57, 0x19, 0x84	.byte	0x58, 0x1e, 0x84	.byte	0x59, 0x2b, 0x84	.byte	0x5a, 0x3c, 0x84	.byte	0	.ascii	"Trident"	.byte	0# Tseng.tseng_test:	movw	$0x3cd, %dx	inb	%dx, %al	# Could things be this simple ! :-)	movb	%al, %bl	movb	$0x55, %al	outb	%al, %dx	inb	%dx, %al	movb	%al, %ah	movb	%bl, %al	outb	%al, %dx	cmpb	$0x55, %ah 	je	istsenisnot:	xorw	%bp, %bpistsen:	rettseng_md:	.byte	0x26, 0x3c, 0x50	.byte	0x2a, 0x28, 0x64	.byte	0x23, 0x19, 0x84	.byte	0x24, 0x1c, 0x84	.byte	0x22, 0x2c, 0x84	.byte	0x21, 0x3c, 0x84	.byte	0	.ascii	"Tseng"	.byte	0# Video7.video7_test:	movw	$0x3cc, %dx	inb	%dx, %al	movw	$0x3b4, %dx	andb	$0x01, %al	jz	even7	movw	$0x3d4, %dxeven7:	movb	$0x0c, %al	outb	%al, %dx	incw	%dx	inb	%dx, %al	movb	%al, %bl	movb	$0x55, %al	outb	%al, %dx	inb	%dx, %al	decw	%dx	movb	$0x1f, %al	outb	%al, %dx	incw	%dx	inb	%dx, %al	movb	%al, %bh	decw	%dx	movb	$0x0c, %al	outb	%al, %dx	incw	%dx	movb	%bl, %al	outb	%al, %dx	movb	$0x55, %al	xorb	$0xea, %al	cmpb	%bh, %al	jne	isnot		movb	$VIDEO_FIRST_V7>>8, svga_prefix # Use special mode switching	retvideo7_md:	.byte	0x40, 0x2b, 0x50	.byte	0x43, 0x3c, 0x50	.byte	0x44, 0x3c, 0x64	.byte	0x41, 0x19, 0x84	.byte	0x42, 0x2c, 0x84	.byte	0x45, 0x1c, 0x84	.byte	0	.ascii	"Video 7"	.byte	0# Realtek VGArealtek_test:	leaw	idrtvga, %si	movw	$0x45, %di	movw	$0x0b, %cx	repe	cmpsb	je	isrt		xorw	%bp, %bpisrt:	retidrtvga:	.ascii	"REALTEK VGA"realtek_md:	.byte	0x1a, 0x3c, 0x50	.byte	0x1b, 0x19, 0x84	.byte	0x1c, 0x1e, 0x84	.byte	0x1d, 0x2b, 0x84	.byte	0x1e, 0x3c, 0x84	.byte	0	.ascii	"REALTEK"	.byte	0#endif	/* CONFIG_VIDEO_SVGA */# User-defined local mode table (VGA only)#ifdef CONFIG_VIDEO_LOCALlocal_modes:	leaw	local_mode_table, %silocm1:	lodsw	orw	%ax, %ax	jz	locm2		stosw	movsw	jmp	locm1locm2:	ret# This is the table of local video modes which can be supplied manually# by the user. Each entry consists of mode ID (word) and dimensions# (byte for column count and another byte for row count). These modes# are placed before all SVGA and VESA modes and override them if table# compacting is enabled. The table must end with a zero word followed# by NUL-terminated video adapter name.local_mode_table:	.word	0x0100				# Example: 40x25	.byte	25,40	.word	0	.ascii	"Local"	.byte	0#endif	/* CONFIG_VIDEO_LOCAL */# Read a key and return the ASCII code in al, scan code in ahgetkey:	xorb	%ah, %ah	int	$0x16	ret# Read a key with a timeout of 30 seconds.# The hardware clock is used to get the time.getkt:	call	gettime	addb	$30, %al			# Wait 30 seconds	cmpb	$60, %al	jl	lminute	subb	$60, %allminute:	movb	%al, %clagain:	movb	$0x01, %ah	int	$0x16	jnz	getkey				# key pressed, so get it	call	gettime	cmpb	%cl, %al	jne	again	movb	$0x20, %al			# timeout, return `space'	ret# Flush the keyboard bufferflush:	movb	$0x01, %ah	int	$0x16	jz	empty		xorb	%ah, %ah	int	$0x16	jmp	flushempty:	ret# Print hexadecimal number.prthw:	pushw	%ax	movb	%ah, %al	call	prthb	popw	%axprthb:	pushw	%ax	shrb	$4, %al	call	prthn	popw	%ax	andb	$0x0f, %alprthn:	cmpb	$0x0a, %al	jc	prth1	addb	$0x07, %alprth1:	addb	$0x30, %al	jmp	prtchr# Print decimal number in alprtdec:	pushw	%ax	pushw	%cx	xorb	%ah, %ah	movb	$0x0a, %cl	idivb	%cl	cmpb	$0x09, %al	jbe	lt100	call	prtdec	jmp	skip10lt100:	addb	$0x30, %al	call	prtchrskip10:	movb	%ah, %al	addb	$0x30, %al	call	prtchr		popw	%cx	popw	%ax	retstore_edid:	pushw	%es				# just save all registers	pushw	%ax	pushw	%bx	pushw   %cx	pushw	%dx	pushw   %di	pushw	%fs	popw    %es	movl	$0x13131313, %eax		# memset block with 0x13	movw    $32, %cx	movw	$0x140, %di	cld	rep	stosl	movw	$0x4f15, %ax                    # do VBE/DDC	movw	$0x01, %bx	movw	$0x00, %cx	movw    $0x01, %dx	movw	$0x140, %di	int	$0x10	popw	%di				# restore all registers	popw	%dx	popw	%cx	popw	%bx	popw	%ax	popw	%es	ret# VIDEO_SELECT-only variablesmt_end:		.word	0	# End of video mode table if builtedit_buf:	.space	6	# Line editor buffercard_name:	.word	0	# Pointer to adapter namescanning:	.byte	0	# Performing mode scando_restore:	.byte	0	# Screen contents altered during mode changesvga_prefix:	.byte	VIDEO_FIRST_BIOS>>8	# Default prefix for BIOS modesgraphic_mode:	.byte	0	# Graphic mode with a linear frame bufferdac_size:	.byte	6	# DAC bit depth# Status messageskeymsg:		.ascii	"Press <RETURN> to see video modes available, "		.ascii	"<SPACE> to continue or wait 30 secs"		.byte	0x0d, 0x0a, 0listhdr:	.byte	0x0d, 0x0a		.ascii	"Mode:    COLSxROWS:"crlft:		.byte	0x0d, 0x0a, 0prompt:		.byte	0x0d, 0x0a		.asciz	"Enter mode number or `scan': "unknt:		.asciz	"Unknown mode ID. Try again."badmdt:		.ascii	"You passed an undefined mode number."		.byte	0x0d, 0x0a, 0vesaer:		.ascii	"Error: Scanning of VESA modes failed. Please "		.ascii	"report to <mj@ucw.cz>."		.byte	0x0d, 0x0a, 0old_name:	.asciz	"CGA/MDA/HGA"ega_name:	.asciz	"EGA"svga_name:	.ascii	" "vga_name:	.asciz	"VGA"vesa_name:	.asciz	"VESA"name_bann:	.asciz	"Video adapter: "#endif /* CONFIG_VIDEO_SELECT */# Other variables:adapter:	.byte	0	# Video adapter: 0=CGA/MDA/HGA,1=EGA,2=VGAvideo_segment:	.word	0xb800	# Video memory segmentforce_size:	.word	0	# Use this size instead of the one in BIOS vars

⌨️ 快捷键说明

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