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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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						;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品伦理在线| 欧美一区日韩一区| 1区2区3区欧美| 色婷婷亚洲综合| 亚洲国产精品自拍| 日韩精品一区二区三区蜜臀| 久久成人免费电影| 国产精品色噜噜| 欧美日韩国产一级片| 久久国内精品自在自线400部| 国产亚洲一二三区| 91在线一区二区| 男女视频一区二区| 欧美经典一区二区| 欧美性淫爽ww久久久久无| 奇米精品一区二区三区在线观看| 精品国产免费久久| 99天天综合性| 日韩高清不卡一区二区三区| 精品美女被调教视频大全网站| 福利一区福利二区| 日韩不卡一区二区| 国产精品美女久久福利网站| 8x福利精品第一导航| 国产一区福利在线| 亚洲自拍都市欧美小说| 欧美一级欧美三级| 色综合咪咪久久| 久热成人在线视频| 亚洲少妇屁股交4| 精品日韩99亚洲| 色吊一区二区三区| 国产成人在线免费| 天堂影院一区二区| 国产精品电影院| 欧美成人a视频| 欧美色综合网站| 成人黄色国产精品网站大全在线免费观看| 亚洲国产精品天堂| 一区二区中文视频| 久久一日本道色综合| 欧美三电影在线| 成人app网站| 国产精品一二三| 免费黄网站欧美| 一区二区三区高清在线| 久久久久久久久久久久久女国产乱| 一本一道综合狠狠老| 国产精品影视天天线| 天堂一区二区在线| 亚洲在线视频免费观看| 国产精品久久久久久久久果冻传媒| 日韩精品一区二区在线| 69久久99精品久久久久婷婷| 一本到不卡免费一区二区| 国产成人一区二区精品非洲| 寂寞少妇一区二区三区| 日韩国产欧美在线播放| 亚洲一区二区美女| 一区二区久久久久久| 国产精品福利在线播放| 国产精品女主播av| 欧美精品一区二| 欧美成人伊人久久综合网| 777午夜精品免费视频| 欧美三级日韩三级国产三级| 99久久精品国产网站| 丁香激情综合国产| 丁香六月综合激情| 成人免费视频app| 成人美女在线视频| 成人久久视频在线观看| 成人午夜碰碰视频| 成人av在线一区二区三区| 国产v综合v亚洲欧| 国产精品99久久久久久似苏梦涵| 国产真实乱偷精品视频免| 激情亚洲综合在线| 国产精品1区2区| 粉嫩蜜臀av国产精品网站| 成人一级黄色片| 不卡一区二区中文字幕| 色综合天天综合网天天看片 | 免费成人在线网站| 免费观看一级特黄欧美大片| 日本不卡中文字幕| 久久99国产乱子伦精品免费| 国内精品写真在线观看| 国产乱码精品一区二区三| 成人一道本在线| 色吊一区二区三区| 日韩一区二区三区视频| 久久免费国产精品| 亚洲视频在线观看一区| 亚洲一级在线观看| 久久69国产一区二区蜜臀| 国产ts人妖一区二区| 91久久精品一区二区二区| 337p亚洲精品色噜噜狠狠| 精品少妇一区二区三区在线播放| 中文字幕欧美激情| 亚洲高清在线视频| 国产一区二区中文字幕| 99久久婷婷国产综合精品| 在线观看成人小视频| 日韩亚洲欧美一区| 国产精品福利电影一区二区三区四区| 亚洲自拍与偷拍| 国产一区在线看| 欧美在线视频不卡| 26uuu另类欧美| 亚洲精品中文字幕在线观看| 日本欧美一区二区三区| 丰满少妇在线播放bd日韩电影| 欧美在线免费观看亚洲| 欧美精品一区二区三区在线播放 | 欧美特级限制片免费在线观看| 欧美另类高清zo欧美| 国产欧美日韩中文久久| 手机精品视频在线观看| 国产成人精品www牛牛影视| 欧美女孩性生活视频| 亚洲国产高清不卡| 五月天欧美精品| 成人av动漫在线| 日韩免费观看高清完整版在线观看| 欧美韩日一区二区三区四区| 丝袜美腿亚洲色图| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 精品电影一区二区三区| 亚洲欧美国产三级| 国产在线不卡一区| 欧美顶级少妇做爰| 亚洲欧美成aⅴ人在线观看| 国产一区二区毛片| 欧美精品久久天天躁| 中文字幕亚洲精品在线观看| 久久99在线观看| 欧美日韩一区二区电影| 国产精品久久久久影院色老大| 美女高潮久久久| 欧美天堂一区二区三区| 亚洲女厕所小便bbb| 成人一区在线观看| 国产日产欧产精品推荐色| 蓝色福利精品导航| 欧美日韩日日骚| 亚洲一区电影777| 色婷婷久久99综合精品jk白丝| 欧美国产一区二区| 国产在线视频一区二区| 精品久久久久久久久久久久久久久| 天天操天天色综合| 欧美区在线观看| 天涯成人国产亚洲精品一区av| 一本到一区二区三区| 亚洲欧美日韩在线| 99这里都是精品| 亚洲视频在线观看一区| av高清久久久| 亚洲欧洲三级电影| 91香蕉视频在线| 国产精品久久久久精k8| 99re这里都是精品| 日韩美女啊v在线免费观看| 99精品桃花视频在线观看| 国产精品区一区二区三| 成人午夜激情视频| 国产精品久久久久久久久图文区| 大胆欧美人体老妇| 亚洲欧洲日韩女同| 91影院在线免费观看| 一区二区三区视频在线观看| 欧美性感一类影片在线播放| 一区二区久久久| 51精品秘密在线观看| 麻豆91精品91久久久的内涵| 久久综合色鬼综合色| 国产激情一区二区三区桃花岛亚洲| 国产亚洲欧美色| 99麻豆久久久国产精品免费 | 欧美一区二区三区系列电影| 日本成人在线看| 国产亚洲婷婷免费| 91看片淫黄大片一级在线观看| 亚洲成人动漫在线免费观看| 日韩一卡二卡三卡| 国产精一区二区三区| 椎名由奈av一区二区三区| 欧美日韩在线免费视频| 久久99精品久久久久久动态图| 久久久久久久一区| 在线亚洲一区二区| 日本在线播放一区二区三区| 久久久久久久久免费| 色哟哟一区二区在线观看| 日本成人超碰在线观看| 国产精品美女久久久久久久久久久| 91麻豆精品在线观看| 青青青伊人色综合久久|