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

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

?? smbpost.inc

?? AMI 主板的BIOS源碼。
?? INC
?? 第 1 頁 / 共 2 頁
字號:
;-----------------------------------------------------------------------;
;*****************************************************************;
;*****************************************************************;
;**								**;
;**	(C)Copyright 1985-1997, American Megatrends Inc.	**;
;**								**;
;**			All Rights Reserved.			**;
;**								**;
;**		6145-F, Northbelt Parkway, Norcross,		**;
;**								**;
;**		Georgia - 30071, USA. Phone-(770)-246-8600.	**;
;**								**;
;*****************************************************************;
;*****************************************************************;
;-----------------------------------------------------------------------;
;		DIFFERENT STRUCTURE INIT ROUTINE DURING POST		;
;-----------------------------------------------------------------------;
;			POST_BIOS_INIT					;
;-----------------------------------------------------------------------;
;  this routine is called from SMBPOST INIT code to initialize/build	;
;  the BIOS INFORMATION data structure.					;
;  input :								;
;	DS:SI	ptr to start of SMBIOS data structure			;
;	DS:DI	ptr to end of SMBIOS data structure			;
;	CS = ES								;
;	stack	available						;
;  output:								;
;	SMBIOS data structure initialized				;
;  register usage : can destroy any register except DS, ES		;
;-----------------------------------------------------------------------;
post_bios_init:
	ret
;-----------------------------------------------------------------------;
;			POST_PROCESSOR_INIT				;
;-----------------------------------------------------------------------;
;  this routine is called from SMBPOST INIT code to initialize/build	;
;  the PROCESSOR data structure.					;
;  input :								;
;	DS:SI	ptr to start of SMBIOS data structure			;
;	DS:DI	ptr to end of all structures				;
;	CS = ES								;
;	stack	available						;
;  output:								;
;	SMBIOS data structure initialized				;
;  register usage : can destroy any register except DS, ES		;
;-----------------------------------------------------------------------;
post_processor_init:
; find the start of 1st PROCESSOR_INFORMATION_TYPE structure
	mov	bp,0ffffh		; BP =	0 for BSP
					;	n for APn
ppi_01:
; DS:SI = ptr to next available structure
; DS:DI = ptr to end of all structures
	mov	al,PROCESSOR_INFORMATION_TYPE
	call	get_ptr_to_structure	; DS:SI = ptr to first occurence of the concerned structure
					; DS:BX = ptr to immediate next structure
	jnc	short ppi_14		; ok
	jmp	ppi_00			; no structure found
ppi_14:
	inc	bp			; next processor#, 0 = BSP, n = APn
	cld
	push	di
	push	bx
	push	si
	push	bp
	mov	bp,PROCESSOR_INFO_FUNC	; func#
	call	cgroup:dword ptr post_interface_routine; Get processor information (BIOS)
					; ESI = offset:segment BSP structure
					; EDI = offset:segment AP structure
; CL = #of processor installed
	pop	bp
	push	esi
	pop	es
	pop	bx			; ES:BX = ptr to BSP information array
	pop	si			; DS:SI = ptr to start of Processor structure
	or	bp,bp			; BSP ?
	jz	short ppi_02		; yes
; this is an AP, find the ptr to this AP information array
; CL = #of processor installed
	movzx	cx,cl			; CX = #of processor installed (1-based)
	cmp	bp,cx			; valid processor# ?
	jae	short ppi_16		; invalid processor#
	push	bp
	push	edi
	pop	es
	pop	bx			; ES:BX = ptr to next AP information array
ppi_04:
	dec	bp			; BP = AP# (0-based)
	jz	short ppi_03		; NC, ES:BX = ptr to concerned AP information array
	cmp	bx,0ffffh		; end of AP information array ?
	jnz	short ppi_05		; not yet
	mov	ax,es
	cmp	ax,0ffffh		; end of AP information array ?
	stc				; indicate error
	jz	short ppi_03		; yes
ppi_05:
	les	bx,es:dword ptr (APPLCPUHEADERSTRUC ptr [bx]).wNextPtr; ES:BX = ptr to next AP information array
	jmp	short ppi_04
ppi_03:
	pop	bp
	jnc	short ppi_13		; ok
ppi_16:
	pop	bx			; DS:BX = ptr to start of next structure
	pop	di			; DS:DI = ptr to end of all atructures
; DS:SI = ptr to the processor structure which and other processor structures
;	  if present needs to be initialized with default values
ppi_15:
	push	di
	push	bx
%OUT	May need to be updated properly
	mov	al,CPU_UNKNOWN
	mov	ds:byte ptr (PROC_STRUC ptr [si]).bProcType,al
	mov	ds:byte ptr (PROC_STRUC ptr [si]).bProcFamily,al
	xor	eax,eax
	mov	ds:byte ptr (PROC_STRUC ptr [si]).bProcStatus,00h
	mov	ds:dword ptr[si].PROC_STRUC.qProcID,eax
	mov	ds:dword ptr[si+4].PROC_STRUC.qProcID,eax
; clear manufacturer string, version string
	movzx	cx,ds:byte ptr [si].PROC_STRUC.bProcManufacturer; CX = string# for CPU manufacturer
	jcxz	short ppi_17	        ; no string for CPU manufacturer
	push	si
	call	get_string_details	; DS:SI = ptr to concerned string in the structure
					; CX = length of concerned string in the structure
	push	es
	push	ds
	pop	es
	mov	di,si			; ES:DI = ptr to manufacturer string
	mov	al,20h			; clear string with blank
	rep	stosb
	pop	es
	pop     si			; restore pointer to start of Struct
ppi_17:
; fill Processor Version
	movzx	cx,cs:byte ptr [si].PROC_STRUC.bProcVersion; CX = string# for Processor Version
	jcxz	short ppi_18		; no string for CPU version
	push	si
	call	get_string_details	; DS:SI = ptr to concerned string in the structure
					; CX = length of concerned string in the structure
	push	es
	push	ds
	pop	es
	mov	di,si			; ES:DI = ptr to manufacturer string
	mov	al,20h			; clear string with blank
	rep	stosb
	pop	es
	pop	si
ppi_18:
	pop	si			; DS:SI = ptr to next available structure
	pop	di			; DS:DI = ptr to end of all structures
	mov	al,PROCESSOR_INFORMATION_TYPE
	call	get_ptr_to_structure	; DS:SI = ptr to first occurence of the concerned structure
					; DS:BX = ptr to immediate next structure
	jnc	short ppi_15		; init next processor stucture
	jmp	ppi_00			; exit
ppi_13:
; ES:BX = ptr to AP information structure
	add	bx,size APPLCPUHEADERSTRUC
ppi_02:
; ES:BX = ptr to CPU information structure
; DS:SI = ptr to start of Processor structure
; fill Processor manufacturer string
	movzx	cx,ds:byte ptr [si].PROC_STRUC.bProcManufacturer; CX = string# for CPU manufacturer
	jcxz	short ppi_06	        ; no string for CPU manufacturer
	push	si
	call	get_string_details	; DS:SI = ptr to concerned string in the structure
					; CX = length of concerned string in the structure
	push	es
	push	ds
	mov	di,si
	mov	si,es:word ptr[bx].CPUINFOSTRUC.dVndr$Ptr
	mov	ax,es:word ptr[bx+2].CPUINFOSTRUC.dVndr$Ptr; AX:SI = BIOS vendor str
	push	ds
	pop	es			; ES:DI = ptr to destn string
	mov	ds,ax			; DS:SI = ptr to source string
	call	copy_string
	pop	ds
	pop	es			; ES:BX = CPU Info struc ptr
        pop     si			; restore pointer to start of Struct
ppi_06:
; ES:BX = ptr to CPU information structure
; DS:SI = ptr to start of Processor structure
; fill Processor Version
	movzx	cx,ds:byte ptr [si].PROC_STRUC.bProcVersion; CX = string# for Processor Version
	jcxz	short ppi_07		; no string for CPU version
	push	si
	call	get_string_details	; DS:SI = ptr to concerned string in the structure
					; CX = length of concerned string in the structure
	push	es
	push	ds
	mov	di,si
	mov	si,es:word ptr[bx].CPUINFOSTRUC.d$Ptr
	mov	ax,es:word ptr[bx+2].CPUINFOSTRUC.d$Ptr
	push	ds
	pop	es
	mov	ds,ax
	call	copy_string
	pop	ds
	pop	es
	pop	si
ppi_07:
; ES:BX = ptr to CPU information structure
; DS:SI = ptr to start of Processor structure
; fill Processor ID
	mov	eax,es:dword ptr [bx].CPUINFOSTRUC.dResetID
	mov	ds:dword ptr[si].PROC_STRUC.qProcID,eax
	mov	eax,es:dword ptr [bx].CPUINFOSTRUC.dFeature
	mov	ds:dword ptr[si+4].PROC_STRUC.qProcID,eax
; ES:BX = ptr to CPU information structure
; DS:SI = ptr to start of Processor structure
; fill Processor Family
	mov	ax,CPU_UNKNOWN*256+CPU_UNKNOWN	; value for Unknown
	mov	cl,es:byte ptr (CPUINFOSTRUC ptr [bx]).bVndrNum; Vendor#
	cmp	cl,0ffh			; unknown vendor# ?
	jz	short ppi_08		; unknown vendor
	cmp	es:byte ptr (CPUINFOSTRUC ptr [bx]).bNum,0ffh; unknown CPU# ?
	jz	short ppi_08		; unknown vendor and unknown CPU
; vendor and CPU is known
	movzx	di,cl			; DI = Vendor#
	shl	di,1			; DI = offset in the Generation Map Table
	mov	di,cs:[_Generation_Map+di]; DI = ptr to genaration table for the concerned Vendor
	mov	ax,es:word ptr (CPUINFOSTRUC ptr [bx]).wFuncField; Function Field
	and	ax,0e00h		; Seperate Generation code
	shr	ax,9			; AX = Generation Code = offset in the Generation Map Table
	add	di,ax			; DI = offset in Generation map table
	mov	ah,cs:byte ptr [di]	; get processor family
	mov	al,CPU_CENTRAL_PROCESSOR; processor type
ppi_08:
	mov	ds:[si].PROC_STRUC.bProcFamily,ah
	mov	ds:[si].PROC_STRUC.bProcType,al
; Fill Clock information details
	push	bp
	mov	bp,CPU_CLOCK_DETAILS_FUNC	; func#
	call	cgroup:dword ptr post_interface_routine; AX = CPU clock, BX = External Clock
	pop	bp
	mov	ds:[si].PROC_STRUC.wCurrentSpeed,ax
	mov	ds:[si].PROC_STRUC.wExternalClock,bx
; Fill Processor Status
	mov	ds:byte ptr (PROC_STRUC ptr [si]).bProcStatus,41h
					; Bit-6 = 1....socket populated
					; Bit2-0= 001..CPU Enabled
	pop	si			; DS:SI = ptr to start of next structure
	pop	di			; DS:DI = ptr to end of all atructures
	jmp	ppi_01			; continue for next Processor structure
ppi_00:
	ret
;-----------------------------------------------------------------------;
;			POST_MEMORY_CONTROLLER_INIT			;
;-----------------------------------------------------------------------;
;  this routine is called from SMBPOST INIT code to initialize/build	;
;  the MEMORY CONTROLLER data structure.				;
;  input :								;
;	DS:SI	ptr to start of SMBIOS data structure			;
;	DS:DI	ptr to end of all structures				;
;	CS = ES								;
;	stack	available						;
;  output:								;
;	DMI data structure initialized					;
;  register usage : can destroy any register except DS, ES		;
;-----------------------------------------------------------------------;
post_memory_controller_init:
	ret
;-----------------------------------------------------------------------;
;			POST_MEMORY_MODULE_INIT				;
;-----------------------------------------------------------------------;
;  this routine is called from SMBPOST INIT code to initialize/build	;
;  the MEMORY MODULE data structure.					;
;  input :								;
;	DS:SI	ptr to start of SMBIOS data structure			;
;	DS:DI	ptr to end of all structures				;
;	CS = ES								;
;	stack	available						;
;  output:								;
;	SMBIOS data structure initialized				;
;  register usage : can destroy any register except DS, ES		;
;-----------------------------------------------------------------------;
post_memory_module_init:
	xor	bp,bp				; BP = memory module# (1-based)
; find the start of MEMORY_MODULE_INFORMATION_TYPE structure
pmmi_02:
; DS:SI = ptr to next available structure
; DS:DI = ptr to end of all structures
	inc	bp				; next memory module#
	mov	al,MEMORY_MODULE_INFORMATION_TYPE
	call	get_ptr_to_structure		; DS:SI = ptr to first occurence of the concerned structure
						; DS:BX = ptr to immediate next structure
        jc      short pmmi_00                   ; no (more) structure found
	push	di
	push	bx
	push	bp
	mov	ax,bp				; AX = AL =  memory module# (1 based)
	mov	bp,MEMORY_MODULE_INFO_FUNC	; BP = function#
	call	cgroup:dword ptr post_interface_routine
	pop	bp
        jc      short pmmi_01			; error
; AL : Bank Connection
; AH : Current Speed
; CX : Current Memory Type
; BL : Installed Size				
;	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bBankCon,al
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bCurrentSpd,ah
	mov	ds:word ptr (MEMMOD_INFO_STRUC ptr [si]).wCurrentMemType,cx
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bInstSize,bl
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bEnabledSize,bl
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bErrStatus,00h
	pop	si				; DS:SI = ptr to next structure
	pop	di				; DS:DI = ptr to end of all structures
	jmp	short pmmi_02			; go to check next structure
pmmi_01:
	pop	bx				; DS:BX = ptr to next structure
	pop	di				; DS:DI = ptr to end of all structures
pmmi_03:
; CS:SI = ptr to current memory module structure which and other memory module
;	  stuctures (if present) need to be initialized with default values
	push	di
	push	bx
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bBankCon,MM_NO_BANK_CONNECTION
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bCurrentSpd,MM_SPEED_UNKNOWN
	mov	ds:word ptr (MEMMOD_INFO_STRUC ptr [si]).wCurrentMemType,MM_TYPE_UNKNOWN
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bInstSize,MM_NOT_INSTALLED
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bEnabledSize,MM_NOT_ENABLED
	mov	ds:byte ptr (MEMMOD_INFO_STRUC ptr [si]).bErrStatus,00h
	pop	si				; DS:SI = ptr to next structure
	pop	di				; DS:DI = ptr to end of all structures
	mov	al,MEMORY_MODULE_INFORMATION_TYPE
	call	get_ptr_to_structure		; DS:SI = ptr to first occurence of the concerned structure
						; DS:BX = ptr to immediate next structure
        jnc     short pmmi_03                   ; init next structure
pmmi_00:
	ret
;-----------------------------------------------------------------------;
;			POST_EXTERNAL_CACHE_INIT			;
;-----------------------------------------------------------------------;
;  this routine is called from SMBPOST INIT code to initialize/build	;
;  the external CACHE data structure.					;
;  input :								;
;	DS:SI	ptr to start of SMBIOS data structure			;
;	DS:DI	ptr to end of all structures				;
;	CS = ES								;
;	stack	available						;
;  output:								;
;	SMBIOS data structure initialized				;
;  register usage : can destroy any register except DS, ES		;
;-----------------------------------------------------------------------;
post_external_cache_init:
peci_02:
; DS:SI = ptr to nest available structure
; DS:DI = ptr to end of all structures
	mov	al,CACHE_INFORMATION_TYPE
	call	get_ptr_to_structure	; DS:SI = ptr to the concerned structure
					; DS:BX = ptr to immediate next structure
	jc	short peci_00		; no more structure found
	push	di
	push	bx
	mov	al,ds:byte ptr (CACHE_INFO_STRUC ptr [si]).wCacheConfig; get config
	shr	al,05h			; bit6-5 -> bit1-0
	and	al,03h
	cmp	al,01h			; external cache ?
;	jnz	short peci_03		; no, so no need to init this structure
	jz	short peci_05
        mov     eax,cr0
        test    eax,40000000h           ; is cache enabled?
        jz      short peci_03		; Yes, Skip
; Set Cache Disable

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日韩精品| 在线播放/欧美激情| 欧洲色大大久久| 久久亚洲精品国产精品紫薇| 亚洲精品视频在线| 国产.欧美.日韩| 日韩欧美久久一区| 偷窥少妇高潮呻吟av久久免费| 国产白丝精品91爽爽久久| 日韩亚洲欧美一区| 亚洲综合清纯丝袜自拍| av激情亚洲男人天堂| 精品国产免费视频| 美国三级日本三级久久99| 欧美午夜精品电影| 一区二区视频在线看| 丰满亚洲少妇av| 中文字幕乱码亚洲精品一区| 国产真实乱子伦精品视频| 在线播放91灌醉迷j高跟美女| 亚洲精品成人a在线观看| 成人福利视频在线| 国产精品盗摄一区二区三区| 成人一区二区三区在线观看| 久久久电影一区二区三区| 国产一区二区福利视频| 精品sm在线观看| 九九精品一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 麻豆精品新av中文字幕| 精品国内二区三区| 国产毛片精品一区| 国产精品午夜免费| 91一区二区三区在线观看| 亚洲天堂免费看| 欧洲精品一区二区三区在线观看| 亚洲欧美日韩国产综合在线| 99精品视频在线观看免费| 亚洲色图丝袜美腿| 在线看不卡av| 天天免费综合色| 日韩久久免费av| 国产成a人亚洲精| 中文字幕日本乱码精品影院| 日本黄色一区二区| 婷婷中文字幕综合| 欧美成人性战久久| 国产suv精品一区二区三区| 国产精品国产a级| 91国产免费观看| 麻豆精品国产91久久久久久| 久久精品亚洲精品国产欧美| 91视频观看免费| 三级不卡在线观看| 久久久影院官网| 97久久人人超碰| 日日欢夜夜爽一区| 久久久精品2019中文字幕之3| 99久久夜色精品国产网站| 亚洲成人激情av| www国产成人| 色婷婷激情一区二区三区| 日韩一区精品字幕| 国产精品麻豆欧美日韩ww| 欧美日韩国产精品成人| 国产在线国偷精品免费看| 一区二区三区在线免费视频| 日韩欧美一区在线| 99久久综合狠狠综合久久| 天天综合色天天| 亚洲图片你懂的| 欧美tickling网站挠脚心| 色综合色狠狠天天综合色| 免费欧美日韩国产三级电影| 国产精品久久久久国产精品日日| 7777精品伊人久久久大香线蕉经典版下载| 激情五月婷婷综合网| 一区二区三区精品在线| 国产亚洲欧洲一区高清在线观看| 欧美性猛片aaaaaaa做受| 国产美女一区二区三区| 亚洲成人激情自拍| 亚洲欧美综合另类在线卡通| 久久综合久久综合九色| 欧美午夜理伦三级在线观看| 成人国产精品免费观看视频| 麻豆精品视频在线观看视频| 亚洲午夜激情网站| 亚洲色图第一区| 国产日产欧美精品一区二区三区| 3751色影院一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品一卡二卡| 麻豆成人91精品二区三区| 亚洲一区二区视频在线| 1区2区3区欧美| 中文字幕精品—区二区四季| 久久综合999| 精品处破学生在线二十三| 91麻豆精品国产91久久久更新时间| 91免费观看视频| 成人av第一页| 不卡一二三区首页| 成人av在线播放网站| 成人涩涩免费视频| 懂色av一区二区三区蜜臀| 国产一区二区免费在线| 国产一区二区三区四区五区入口 | 国产在线精品一区二区不卡了| 亚洲一区二区av在线| 亚洲黄一区二区三区| 亚洲天堂精品在线观看| 最新欧美精品一区二区三区| 中文字幕制服丝袜一区二区三区| 国产蜜臀97一区二区三区| 国产欧美日韩三级| 欧美激情资源网| 中文字幕在线一区免费| 国产精品少妇自拍| 中文字幕一区在线观看视频| 一区在线中文字幕| 亚洲精品乱码久久久久久黑人| 亚洲激情六月丁香| 亚洲成人黄色影院| 青青草原综合久久大伊人精品优势 | 国产成人av电影在线| 国产美女精品在线| 成人国产电影网| 欧美性受xxxx黑人xyx| 91麻豆精品国产91久久久久久久久 | 9191成人精品久久| 欧美大片免费久久精品三p| 欧美大白屁股肥臀xxxxxx| 欧美v亚洲v综合ⅴ国产v| 久久人人97超碰com| 自拍偷在线精品自拍偷无码专区| 亚洲精品高清在线| 奇米一区二区三区av| 精品午夜久久福利影院| 国产精品中文字幕欧美| 成人毛片在线观看| 欧美日韩国产综合一区二区三区 | 91国产免费看| 欧美电视剧在线观看完整版| 欧美国产精品中文字幕| 亚洲成人激情综合网| 国产精品一区久久久久| 91在线免费视频观看| 91精品国产一区二区三区蜜臀| 国产亚洲精品久| 亚洲无人区一区| 国产成人午夜视频| 在线成人免费视频| 国产精品久久久久久久蜜臀 | 亚洲日本丝袜连裤袜办公室| 午夜精品一区二区三区免费视频 | 亚洲激情中文1区| 麻豆成人久久精品二区三区红 | 久久综合精品国产一区二区三区| 亚洲天堂av一区| 国内精品第一页| 欧美日韩卡一卡二| 国产精品免费视频一区| 蜜桃免费网站一区二区三区| 99r精品视频| 2021国产精品久久精品| 亚洲电影激情视频网站| 成人激情动漫在线观看| 日韩欧美不卡在线观看视频| 一区二区在线免费| 成人动漫视频在线| 久久久久久日产精品| 丝袜a∨在线一区二区三区不卡| 99综合影院在线| 欧美精品一区二区久久久| 日本特黄久久久高潮| 欧美在线啊v一区| 日韩一区在线播放| 成人免费观看av| 精品福利在线导航| 亚洲第一二三四区| 91美女片黄在线| 中文字幕视频一区| 成人小视频免费在线观看| 精品蜜桃在线看| 日本成人在线看| 7777精品久久久大香线蕉 | 精品一区免费av| 日韩一卡二卡三卡四卡| 亚洲图片欧美视频| 91电影在线观看| 亚洲三级在线免费| 91麻豆免费看| 亚洲黄一区二区三区| 91麻豆国产在线观看| 亚洲免费av高清| 精品视频在线免费看| 亚洲成人动漫精品| 欧美体内she精高潮| 午夜欧美大尺度福利影院在线看|