亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? i16.asm

?? AMI 主板的BIOS源碼。
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
	page	,132
	title	EXTRA FUNCTIONS IN INT16
;---------------------------------------------------------------;
; NOTE:	Do not destroy SS,DS,ES,EBP unless otherwise specified.	;
;---------------------------------------------------------------;
;*****************************************************************;
;*****************************************************************;
;**								**;
;**	(C)Copyright 1985-1996, American Megatrends Inc.	**;
;**								**;
;**			All Rights Reserved.			**;
;**								**;
;**		6145-F, Northbelt Parkway, Norcross,		**;
;**								**;
;**		Georgia - 30071, USA. Phone-(770)-246-8600.	**;
;**								**;
;*****************************************************************;
;*****************************************************************;
;---------------------------------------;
	include	rt.equ
	include	makeflag.equ
;---------------------------------------;
	extrn	empty_8042_input_buffer:near
	extrn	cmos_data_in_x:near
	extrn	cmos_data_out_x:near
	extrn	get_cmos_item:near
;---------------------------------------;
cgroup	group	_text
_text	segment	word	public	'CODE'
	assume	cs:cgroup
.486p
;---------------------------------------;
	public	_I16_STARTS
_I16_STARTS	label	byte		; marks start of module
;-----------------------------------------------------------------------;
;				INT-16.ASM MODULE			;
; this routine gets control from from INT-16 ISR by JMP to support any	;
; special int-16 function if any. if you do not have any special func,	;
; simply return control to INT-16 ISR by JMP. otherwise do the special	;
; function and return control to INT-16 ISR by JMP.			;
; *********************************************************************	;
; *********************************************************************	;
; *******							*******	;
; *******			SPECIAL NOTE			*******	;
; *******							*******	;
; *******	Do not return control using IRET or RETF 2	*******	;
; *******	Always return control by JMP instruction	*******	;
; *******	with (AH) unchanged.				*******	;
; *******	special_int_16:					*******	;
; *******		....					*******	;
; *******		....					*******	;
; *******		JMP	special_int_16_end		*******	;
; *******							*******	;
; *******	THIS WAS A BUG ON PREVIOUS RELEASES.		*******	;
; *******	IBM-3270 program needs this procedure.		*******	;
; *******							*******	;
; *******	Final return value of (AH) will be changed	*******	;
; *******	inside original INT-16 routine.			*******	;
; *******							*******	;
; *******			07/07/93			*******	;
; *******							*******	;
; *********************************************************************	;
; *********************************************************************	;
; here is how INT-16 code will look like.				;
;int_16	proc	far							;
;	...								;
;	jmp	special_int_16						;
;special_int_16_end:							;
;	...								;
;	...								;
;int_16	endp								;
;=======================================================================;
;				SPECIAL_INT_16				;
;  input : 								;
;	ah	function#						;
;	stack	available						;
;  register usage -- do not destroy any register including (AH)		;
; *********************************************************************	;
; *********************************************************************	;
; *******							*******	;
; *******		DO NOT DESTROY (AH)			*******	;
; *******							*******	;
; *********************************************************************	;
; *********************************************************************	;
;-----------------------------------------------------------------------;
; New Functions in INT-16
;
;  1. SET CPU SPEED
;     Input		: AH = function# F0h
;			  AL = speed
;				00 low speed
;				01 low speed
;				02 high speed
;				03-FF..RESERVED (no action will taken if used)
;     Output		: None
;     Register Destroyed: None
;
;  2. RETURN CURRENT CPU SPEED
;     Input		: AH = function# F1h
;     Output		: AL = speed
;				00 low speed
;				01 low speed
;				02 high speed
;     Register Destroyed: AL
;
;  3. RETURN CACHE CONTROLLER STATUS
;     Input		: AH = function# F4h
;			  AL = 00h
;     Output		: AL = cache controller status
;				00 not present
;				01 enabled
;				02 disabled
;			  CX = cache size in KBytes
;				bit 15	 = 1..cache size information NOT valid
;					   0..cache size information valid
;				bit 14-0 = cache size in KBytes
;			  DH = cache write technology
;				bit 7	 = 1..cache write information NOT valid
;					   0..cache write information valid
;				bit 6-1  = RESERVED (set to 0)
;				bit 0	 = 0..write-through cache
;					   1..write-back cache
;			  DL = cache type
;				bit 7	 = 1..cache type information NOT valid
;					   0..cache type information valid
;				bit 6-1	 = RESERVED (set to 0)
;				bit 0	 = 0..direct mapped
;					   1..2-way set associative
;
;     Register Destroyed: AL CX DX if successful
;			  NONE if status can not be determined
;
;  4. ENABLE CACHE CONTROLLER
;     Input		: AH = function# F4h
;			  AL = 01h
;     Output		: NONE
;
;  5. DISABLE CACHE CONTROLLER
;     Input		: AH = function# F4h
;			  AL = 02h
;     Output		: NONE
;-----------------------------------------------------------------------;
	public	special_int_16		; special int 16 func if any
	extrn	special_int_16_end:near
special_int_16:
;---------------------------------------;
;  extra function for new Flash support
	push	bp
	cmp	ah,0e0h
	jnz	si16_00			; Not E0
	movzx	bp,al			; BP = subfunc#	
	sub	bp,10h
	cmp	bp,(offset special_int_16_e0_10_table_end-offset special_int_16_e0_10_table)/2
	jae	si16_00			; Not 10h onwards
	shl	bp,1
	cli				; disable interrupt
	call	[cgroup:special_int_16_e0_10_table+bp]
	pop	bp
	jmp	special_int_16_end	; goback to normal INT-16 ISR
si16_00:
	pop	bp
;---------------------------------------;
	push	ds
	push	si
	push	0040h
	pop	ds			; DS = 0040h
	mov	si,ax
;---------------------------------------;
IF	MKF_EXTRA_INT16_F0		; INT16 Func F0-F4 supported
	cmp	ah,0f0h			; special func ?
	jae	sp16_00			; yes..
ENDIF
;---------------------------------------;
	cmp	ah,0e0h			; flash func ?
	jnz	sp16_01			; no.. jmp to sp16_01 to exit int-16
sp16_e0:
	and	si,00ffh		; get the function number
	cmp	si,00ffh		; cpu reset func ?
	jnz	sp16_03			; no
	mov	si,offset cgroup:ah_e0_ff
	jmp	short sp16_02
sp16_03:
	cmp	si,(offset special_int_16_e0_table_end-offset special_int_16_e0_table)/2
	jae	sp16_01			; invalid func
	shl	si,1
	mov	si,[cgroup:special_int_16_e0_table+si]
	jmp	short sp16_02
sp16_00:
;---------------------------------------;
IF	MKF_EXTRA_INT16_F0		; INT16 Func F0-F4 supported
	shr	si,08h
	and	si,000fh
	cmp	si,(offset special_int_16_table_end-offset special_int_16_table)/2
	jae	sp16_01			; invalid func
	shl	si,1
	mov	si,[cgroup:special_int_16_table+si]
ENDIF
;---------------------------------------;
sp16_02:
	cli				; disable interrupt
	call	si
sp16_01:
	pop	si
	pop	ds
	jmp	special_int_16_end	; goback to normal INT-16 ISR
;-----------------------------------------------------------------------;
special_int_16_e0_10_table		label	word
	dw	offset cgroup:ah_e0_10	; 10h
	dw	offset cgroup:ah_e0_11	; 11h
special_int_16_e0_10_table_end		label	word
;-----------------------------------------------------------------------;
special_int_16_e0_table		label	word
	dw	offset cgroup:ah_e0_0	; get version no. of bios-flash interface
	dw	offset cgroup:ah_e0_1	; byte request for saving chipset env.
	dw	offset cgroup:ah_e0_2	; save chipset environment
	dw	offset cgroup:ah_e0_3	; restore chipset environment
	dw	offset cgroup:ah_e0_4	; set Vpp = low
	dw	offset cgroup:ah_e0_5	; set Vpp = high
	dw	offset cgroup:ah_e0_6	; flash write protect
	dw	offset cgroup:ah_e0_7	; flash write enable
	dw	offset cgroup:ah_e0_8	; flash select
	dw	offset cgroup:ah_e0_9	; flash deselect
	dw	offset cgroup:ah_e0_a	; verify allocation memory
	dw	offset cgroup:ah_e0_b	; save internal cache status
	dw	offset cgroup:ah_e0_c	; restore internal cache status
special_int_16_e0_table_end	label	word
;-----------------------------------------------------------------------;
;	AH_E0..FLASH PROGRAMMING UTILITY				;
;  input :								;
;	AH	function# E0h						;
;	AL	subfunction#						;
;	DS	0040h							;
;  output:								;
; 	CY 	Error							;
;	NC	Success							;
;		AL = 0FAH 						;
;  register usage : all registers (except return registers) must be	;
;		    saved except SI					;
;-----------------------------------------------------------------------;
;	AH_E0_0..GET VERSION NUMBER OF BIOS-FLASH INTERFACE		;
;  input :								;
;	AH	function# E0h						;
;	AL	00							;
;	DS	0040h							;
;  output:								;
; 	CY 	Error							;
;	NC	Success							;
;		AL = 0FAH 						;
;		BX = Version number in BCD format			;
;		CX = attribute						;
;			bit-0 = 0..A16 inversion not available		;
;		   		1..A16 inversion available		;
;			bit-1 = 0..bootblock not programmable		;
;				1..bootblock portion programmable	;
;			bit15-2....reserved for future use (set to 0)	;
;  register destroyed : AL, BX, CX					;
;-----------------------------------------------------------------------;
ah_e0_0		proc	near
	mov	bx,350h			; BIOS-FLASH interface ver 3.50
;	xor	cx,cx
;;;;	or	cl,1			; bit-0 = 1..A16 inversion available
;ahe0_0_00::
;;;;	or	cl,2			; make bootblock programmable
	mov	cx,02h
;	call	off_cyrix		; WT_ALLOC = 0 if Cyrix 6x86 M1
ah_e0_exit::
	mov	al,0fah			; set success flag
	clc	
	ret
ah_e0_0		endp
;-----------------------------------------------------------------------;
;	AH_E0_1..REQUEST NUMBER OF BYTE FOR SAVING CHIPSET ENVIRONMENT	;
;  input :								;
;	AH	function# E0h						;
;	AL	01							;
;	DS	0040h							;
;  output:								;
; 	CY 	Error							;
;	NC	Success							;
;		AL = 0FAH 						;
;		BX = # of bytes needed to save chipset environment	;
;  register destroyed : AL, BX						;
;-----------------------------------------------------------------------;
ah_e0_1		proc	near
	mov	bx,3h			; 3 bytes needed
	jmp	short ah_e0_exit
ah_e0_1		endp
;-----------------------------------------------------------------------;
;	AH_E0_2..SAVE AND PREPARE CHIPSET ENVIRONMENT			;
;  input :								;
;	AH	function# E0h						;
;	AL	02							;
;	DS	0040h							;
;	ES:DI	pointer to start of buffer where chipset		;
;  output:								;
; 	CY 	Error							;
;	NC	Success							;
;		AL = 0FAH 						;
;  register destroyed : AL						;
;-----------------------------------------------------------------------;
	extrn	prepare_chipset_for_flash_programming:near
ah_e0_2		proc	near
	call	prepare_chipset_for_flash_programming
	jmp	short ah_e0_exit
ah_e0_2		endp
;-----------------------------------------------------------------------;
;	AH_E0_3..RESTORE CHIPSET ENVIRONMENT				;
;  input :								;
;	AH	function# E0h						;
;	AL	03							;
;	DS	0040h							;
;	ES:DI	pointer to start of buffer where chipset		;
;  output:								;
; 	CY 	Error							;
;	NC	Success							;
;		AL = 0FAH 						;
;  register destroyed : AL						;
;-----------------------------------------------------------------------;
ah_e0_3		proc	near
;	call	check_cyrix		; Cx6x86 M1 found ?
;	jnz	ah_e0_exit		; no
;  Cx6x86 found, return with error, this will force system to reboot even
;  in case of non-fatal error
;	stc				; error
	jmp	short ah_e0_exit
;;	ret
ah_e0_3		endp
;-----------------------------------------------------------------------;
;	AH_E0_4..SET Vpp LOW						;
;  input :								;
;	AH	function# E0h						;
;	AL	04							;
;	DS	0040h							;
;  output:								;
; 	CY 	Error							;
;	NC	Success							;
;		AL = 0FAH 						;
;  register destroyed : AL						;
;-----------------------------------------------------------------------;
	extrn	make_vpp_low:near
	extrn	Q_USB_LEGACY_ENABLE:abs
ah_e0_4		proc	near
	call	make_vpp_low
	mov	al,Q_USB_LEGACY_ENABLE
	call	get_cmos_item
	jz	ah_e0_exit 
	pushad
COMMENT ~
	mov	dx,pac_reg+pac_pam4_index
	mov	bx,0dc00h
get_usb_segment:
	call	read_chip_reg
	mov	ah,al
	and	al,30h
	cmp	al,30h
	jz	get_usb_segment_done
	sub	bh,04h
	and	ah,03h
	cmp	ah,03h
	jz	get_usb_segment_done
	sub	bh,04h
	dec	dx
	cmp	dl,pac_pam0_index
	jnz	get_usb_segment
get_usb_segment_done:
	movzx	ebx,bx
	shr	ebx,4
~
	mov	ebx,80000h
        mov     cl,00h                  ; Enumerate, Beep
        mov     ax,2f01h                ; Start USB Host
;        CALL_RT_FUNCTION
	push	cs
	push	offset cgroup:ah_e0_4_0
	push	cs
	push	0e008h
	retf
ah_e0_4_0:
	popad
	jmp	short ah_e0_exit
ah_e0_4		endp
;-----------------------------------------------------------------------;
;	AH_E0_5..SET Vpp High						;
;  input :								;
;	AH	function# E0h						;
;	AL	05							;
;	DS	0040h							;
;  output:								;
; 	CY 	Error							;
;	NC	Success							;
;		AL = 0FAH 						;
;  register destroyed : AL						;
;-----------------------------------------------------------------------;
	extrn	make_vpp_high:near
ah_e0_5		proc	near
	call	make_vpp_high
	mov	al,Q_USB_LEGACY_ENABLE
	call	get_cmos_item
	jz	ah_e0_exit 
	push	ax
        mov     ax,2f02h                ; Stop USB Host controller
;        CALL_RT_FUNCTION
	push	cs
	push	offset cgroup:ah_e0_5_0
	push	cs
	push	0e008h
	retf
ah_e0_5_0:
	pop	ax
	jmp	short ah_e0_exit
ah_e0_5		endp
;-----------------------------------------------------------------------;
;	AH_E0_6..FLASH WRITE PROTECT					;
;  input :								;
;	AH	function# E0h						;
;	AL	06h							;
;	DS	0040h							;
;  output:								;
; 	CY 	Error							;
;	NC	Success							;
;		AL = 0FAH 						;
;  register destroyed : AL						;
;-----------------------------------------------------------------------;
	extrn	flash_write_disable:near
ah_e0_6		proc	near
	call	flash_write_disable
	jmp	short ah_e0_exit
ah_e0_6		endp
;-----------------------------------------------------------------------;
;	AH_E0_7..FLASH WRITE ENABLE					;
;  input :								;
;	AH	function# E0h						;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av影院| 欧美一区二区三区免费大片| 欧美色图片你懂的| 欧美成人综合网站| 亚洲影视在线播放| av不卡在线播放| 精品福利二区三区| 婷婷综合五月天| 一本色道亚洲精品aⅴ| 久久色视频免费观看| 视频一区视频二区在线观看| 97se亚洲国产综合在线| 2欧美一区二区三区在线观看视频| 亚洲激情六月丁香| 91丨porny丨户外露出| 欧美国产精品专区| 国产精品77777| 精品国产乱码久久久久久久久| 性感美女久久精品| 欧美日韩在线播放一区| 亚洲乱码日产精品bd| 色综合久久88色综合天天6| 亚洲国产精品av| 粉嫩在线一区二区三区视频| 久久久夜色精品亚洲| 精品一区二区三区av| 日韩女优制服丝袜电影| 天天色天天爱天天射综合| 欧亚洲嫩模精品一区三区| 尤物在线观看一区| 欧美综合一区二区三区| 亚洲一区二区在线观看视频| 一本色道久久加勒比精品| 亚洲欧美日韩国产另类专区| 91麻豆精品在线观看| 亚洲女同ⅹxx女同tv| 色老汉一区二区三区| 亚洲免费在线视频| 欧美系列日韩一区| 日韩av二区在线播放| 日韩亚洲欧美高清| 国产一区二区不卡在线| 亚洲国产高清在线观看视频| av在线播放不卡| 亚洲精品美国一| 欧美美女网站色| 久久99精品久久久久久久久久久久| 精品久久久久久久人人人人传媒| 韩国一区二区三区| 亚洲人成精品久久久久| 欧美视频第二页| 久久精品72免费观看| 中文欧美字幕免费| 欧美日韩在线播放| 国产在线播精品第三| 成人欧美一区二区三区小说| 欧美日韩午夜在线| 狠狠色丁香九九婷婷综合五月| 欧美高清一级片在线观看| 欧洲一区二区三区在线| 韩日欧美一区二区三区| 亚洲免费观看高清完整| 日韩一卡二卡三卡| 成人av在线网| 奇米精品一区二区三区四区 | 欧美久久一二区| 蜜桃视频在线一区| 中文字幕第一区二区| 欧美性一级生活| 国产高清无密码一区二区三区| 日韩毛片高清在线播放| 欧美一区三区二区| 91视频在线观看免费| 久久成人羞羞网站| 亚洲综合在线视频| 国产欧美视频一区二区三区| 欧美日韩一区二区不卡| 丁香桃色午夜亚洲一区二区三区| 亚洲一区二区三区美女| 久久精品夜色噜噜亚洲a∨| 欧美日韩精品一区二区三区四区| 国产91丝袜在线播放0| 日韩和欧美的一区| 亚洲精品伦理在线| 国产日韩欧美不卡在线| 欧美一卡2卡3卡4卡| 91亚洲男人天堂| 国产成人av电影| 久久av资源站| 日本一不卡视频| 亚洲一区二区四区蜜桃| 亚洲视频在线一区| 欧美国产日韩亚洲一区| 精品国产亚洲一区二区三区在线观看| 在线日韩一区二区| 972aa.com艺术欧美| 国产精品乡下勾搭老头1| 美女性感视频久久| 日本美女一区二区三区| 亚洲电影视频在线| 亚洲综合色视频| 亚洲精品日产精品乱码不卡| 国产精品久久久久影院老司| 久久女同精品一区二区| 欧美r级电影在线观看| 91超碰这里只有精品国产| 在线视频亚洲一区| 91美女片黄在线观看91美女| 99视频有精品| 91污片在线观看| 色综合久久中文字幕综合网| 91亚洲男人天堂| 色噜噜夜夜夜综合网| 99视频有精品| 欧美亚洲国产一区在线观看网站| 色综合咪咪久久| 欧美日韩一区小说| 欧美日韩精品一区二区天天拍小说| 欧美色图片你懂的| 在线综合+亚洲+欧美中文字幕| 欧美日韩免费观看一区二区三区| 欧美系列在线观看| 日韩一级片网站| 精品久久久影院| 中文字幕 久热精品 视频在线| 中文字幕欧美三区| 亚洲免费观看在线观看| 亚洲国产你懂的| 麻豆精品一区二区| 国产综合成人久久大片91| 福利一区二区在线| 色8久久人人97超碰香蕉987| 欧美午夜片在线看| 欧美电影精品一区二区| 国产女人aaa级久久久级| 日韩一区在线播放| 亚洲成a人片在线不卡一二三区| 日韩国产欧美视频| 国产·精品毛片| 在线观看91视频| 精品sm捆绑视频| 国产精品国产三级国产普通话99 | 成人高清伦理免费影院在线观看| 色综合久久久网| 日韩女优av电影| 日韩一区在线播放| 蜜桃传媒麻豆第一区在线观看| 国产伦精品一区二区三区免费迷| av综合在线播放| 精品视频免费在线| 久久综合九色综合欧美就去吻| 日韩一区中文字幕| 视频一区在线视频| 成人av网站在线| 欧美三级资源在线| 久久综合中文字幕| 国产三级精品在线| 亚洲高清视频在线| 国产精品综合在线视频| 欧美性大战xxxxx久久久| 国产亚洲欧洲997久久综合| 一区二区在线观看免费 | 欧美美女bb生活片| 久久久久久久久久电影| 亚洲午夜私人影院| 91网站最新地址| 精品免费一区二区三区| 亚洲综合在线第一页| 国产一区二区三区在线观看免费| 91香蕉视频mp4| 久久久www成人免费无遮挡大片| 1000部国产精品成人观看| 久久精品99久久久| 欧美亚洲丝袜传媒另类| 亚洲欧洲韩国日本视频| 国产在线不卡一区| 欧美日高清视频| 亚洲欧美一区二区在线观看| 蜜臀av性久久久久蜜臀aⅴ| 欧美性xxxxxx少妇| 亚洲四区在线观看| 国产乱妇无码大片在线观看| 欧美日本一区二区| 亚洲美女免费视频| 成人国产精品视频| www欧美成人18+| 日韩精品一二三区| 91久久久免费一区二区| 国产欧美视频在线观看| 国产麻豆成人精品| 欧美大片一区二区三区| 丝袜美腿一区二区三区| 欧美四级电影网| 亚洲欧美激情插| 91麻豆视频网站| 日韩美女啊v在线免费观看| av电影在线观看一区| 国产精品人成在线观看免费| 国产91清纯白嫩初高中在线观看| 精品成人免费观看|