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

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

?? il.asm

?? dos下的網卡驅動程序。支持一般通用網卡
?? ASM
?? 第 1 頁 / 共 4 頁
字號:
	jc		short test_bnc
using_aui:
	mov		dx, offset cgroup:using_AUI_msg	; Setup message for AUI
	jmp		short announce_media

test_BNC:						; AUI failed, now try BNC
	mov		connector, BNC
if	CHIP EQ INTEL_82596
	LOAD_PORT	PLXP_USER_PINS
	in		al, dx
	and		al, NOT PLXP_USER_0 AND NOT PLXP_USER_1
	out		dx, al
else
; debug 82557 code required from Intel to select BNC connector
endif
	mov		ax,0016h	; Delay about 600 msec for front_end setup
	call	wait
	cmp		temp_connector, BNC_CONNECTOR
	je		short using_bnc
	call	send_on_connector
	jc		short test_TPE
using_bnc:
	mov		dx, offset cgroup:using_10B_2_msg	; Setup message for BNC
	jmp		short announce_media

test_TPE:									; BNC failed, now try TPE
	mov		connector, TPE
if	CHIP EQ INTEL_82596
	LOAD_PORT	PLXP_USER_PINS
	in		al, dx
	or		al, PLXP_USER_0 OR PLXP_USER_1
	out		dx, al
else
; debug 82557 code required from Intel to select TPE connector
endif
	mov		ax,0016h	; Delay about 600 msec for front_end setup
	call	wait
	cmp		temp_connector, TPE_CONNECTOR
	je		short using_tpe
	call	send_on_connector
	jc		short default_aui
using_tpe:
	mov		dx, offset cgroup:using_10B_T_msg	; Setup message for twisted pair
	jmp		short announce_media

default_aui:
	mov		connector, AUI 			; At this point all connectors have failed
if	CHIP EQ INTEL_82596
	LOAD_PORT	PLXP_USER_PINS
	in		al, dx					; Use AUI as default connector
	or		al, PLXP_USER_1
	and		al, NOT PLXP_USER_0
	out		dx, al
else
; debug 82557 code required from Intel to select AUI connector
endif
	mov		dx, offset cgroup:using_AUI_msg	; Setup message for AUI

announce_media:
	print_it
    ret
do_select_media	ENDP

send_on_connector	PROC	NEAR
	mov		[di].tx_status, 0h
if	CHIP EQ INTEL_82596
	mov		scb_buff.scb_cbl_add, di
endif
	call	issue_cmd

	mov		ax, 1					; Wait, if necessary, for about 27 msec
	call	set_timeout
wait_for_send:
	mov		ax, [di].tx_status
	test	ax, CB_STATUS_COMPLETE
	jnz		short send_complete
	call	do_timeout				; Any more time left ?
	jnz		short wait_for_send		; Continue to wait if so

if	CHIP EQ INTEL_82596
	mov		scb_buff.scb_command, CU_ABORT	; Abort the command
	C_ATTENTION
else
; debug 82557 code required for an ABORT
endif
error_send_on_connector:
	stc								; Indicate failure
    ret

send_complete:
    mov     ax, [di].tx_status		; Check if status bits are ok
    test    ax, CB_STATUS_OK
    jz		short error_send_on_connector
if	CHIP EQ INTEL_82596
    test    ax, CB_TX_NO_CARRIER_SENSE	; Also need to check for carrier
    jnz     short error_send_on_connector
else
; debug 82557 code required from INTEL to check for carrier
endif
	clc								; Indicate success
	ret
send_on_connector	ENDP

setup_test_packet	PROC NEAR
	mov		cx, RUNT
	lea		di, temp_buffer		; Buffer to use for test packets
	push	di					; Save start address of buffer
	mov		eax, (EL_BIT + TRANSMIT)*10000h
	stosd						; Store the action command word + status word
if	CHIP EQ INTEL_82596
	mov		ax, -1				; Set the address of next command to NULL
	stosw						; Store the link address - next command
	stosw						; TBD offset is also null
else
	mov		eax, -1				; Set the address of next command to NULL
	stosd						; Store the link address - next command
	stosd						; TBD offset is also null
endif
	mov		ax, RUNT OR TX_EOF_BIT	; Set length of data
	stosw
if	CHIP EQ INTEL_82596
	xor		ax, ax
else
	mov		ax, TX_THRESHOLD	; Set TX threshold
endif
	stosw
	mov		si, offset cgroup:rom_address	; Set destination address as us
	movsd
	movsw
	mov		si, offset cgroup:rom_address
	movsd
	movsw
    mov     ax, RUNT - EADDR_LEN*2 + 2 ; Set packet size (2 * address + size)
    stosw
	pop		di						; Recover start address of buffer
    ret
setup_test_packet	ENDP

  if CHIP EQ INTEL_82557
no_setup_routine:
	ret

  if 0
dump_phy:
	mov	bx,0
dump_phy_1:
	call	read_phy_reg
	jnc	short dump_phy_2
	mov	al,'!'
	call	chrout
	jmp	short dump_phy_3
dump_phy_2:
	call	wordout
dump_phy_3:
	mov	al,' '
	call	chrout
	inc	bx
	cmp	bx,20h
	jb	dump_phy_1
	ret
  endif

get_speed_from_phy_82555:
	mov		bx,16	; Find speed of link
	call		read_phy_reg
	test	ax, 0002h			; Go if autoneg says 100.
	mov		speed, FAST_100					; Got a fast link
	jne		short get_speed_from_phy_82555_1
	mov		speed, SLOW_10					; Got a slow link
get_speed_from_phy_82555_1:
	ret

get_speed_from_phy_83840:
	mov		bx,25	; Find speed of link
	call		read_phy_reg
	test	ax, 0040h			; any fast link pulses?
	mov		speed, FAST_100		; Assume a fast link
	je		short get_speed_from_phy_83840_1	;go if so.
	mov		speed, SLOW_10		; Got a slow link
get_speed_from_phy_83840_1:
	ret


setup_82555_routine:
	mov	get_speed_from_phy, offset cgroup:get_speed_from_phy_82555
	jmp	short into_setup_routine
setup_83840_routine:
	mov	get_speed_from_phy, offset cgroup:get_speed_from_phy_83840
into_setup_routine:
	push	bx			
	mov		bx, PHY_CTRL_REG_FAST + PHY_CTRL_REG_AUTO_ENBL
	or		bx, PHY_CTRL_REG_RESTART_AUTO + PHY_CTRL_REG_FULL
	mov		bx, 8000h
	mov		dx,PHY_CONTROL_REG 		; Start negotiation
	call		write_phy_reg

	print	wait_neg_msg
	mov		ax, 100h						; Set wait for negotiation
	call	set_timeout
	mov		last_timeout, 100h
wait_neg_done:
	mov		ax, timeout 					; The READ_PHY_REG code uses the
	mov		copy_timeout, ax				; set_timeout code so these 3
	mov		ax, timeout_counter 			; values must be 'saved'
	mov		copy_timeout_counter, ax
	mov		ax, timeout_value
	mov		copy_timeout_value, ax
	mov		bx,PHY_STATUS_REG				; Check if negotiation completed
	call		read_phy_reg
	test	ax, PHY_STA_NWAY_COMPLETE		; Is it done ?
	jnz		short can_partner_neg			; Jump if so
	mov		ax, copy_timeout_counter 		; Restore the saved values from
	mov		timeout_counter, ax 			; the set_timeout call
	mov		ax, copy_timeout_value
	mov		timeout_value, ax
	mov		ax, copy_timeout
	mov		timeout, ax 
	cmp		last_timeout, ax				; Display an occasional '.' to
	je		short no_period					; inform user that driver is still
	mov		last_timeout, ax				; alive
	and		ax, 07h
	jne		short no_period
	mov		al, '.'
	call	chrout
no_period:
	call	do_timeout						; Any more time left ?
	jnz		short wait_neg_done				; Yes - check again
	print	negotiation_problem				; Announce problem
	jmp		short no_negotiation_bits		; Try to continue

can_partner_neg:
	call	crlf
	mov		bx,PHY_EXP_REG		; Check if partner can negotiate
	call		read_phy_reg
	test	ax, PHY_ANE_LP_AUTONEG
	jnz		short use_neg_results	; Yes - use results
	print	no_lp_msg						; Announce no negotiation
no_negotiation_bits:
	mov		forced_speed_duplex, 0			; Assume no forced parameters
	mov		duplex, HALF_DUPLEX				; Default = half duplex
	cmp		user_duplex, 0					; Has user specified duplex
	je 		short duplex_set				; Jump if not
	mov		forced_speed_duplex, 1			; Record a forced speed/duplex
	mov		ax, user_duplex					; Get user duplex
	mov		duplex, ax						; And store
duplex_set:
;	call	dump_phy
	call		get_speed_from_phy
	cmp		user_speed, 0					; Has user specified speed
	je 		short speed_set					; Jump if not
	mov		forced_speed_duplex, 1			; Record a forced speed/duplex
	mov		ax, user_speed					; Get user speed
	mov		speed, ax						; And store

speed_set:									; Decide what message to display
	xor		bx, bx
	cmp		forced_speed_duplex, 0			; Check if forced parameters used
	je		short no_forced_params
	mov		bx, 04h							; Forced => messages 4-7
no_forced_params:
	cmp		speed, FAST_100
	jne		short slow_speed
	add		bx, 02h
slow_speed:
	cmp		duplex, FULL_DUPLEX
	jne		short using_half_duplex
	inc		bx
using_half_duplex:
	sal		bx, 1							; Convert to a word count
	mov		dx, speed_duplex_msg[bx]
	jmp		done_83840_speed_duplex

use_neg_results:
	mov		bx,PHY_ADVERT_REG	; Read our capability
	call		read_phy_reg
	and		ax, LINK_ABILITY_BITS	; Ignore other bits
	mov		cx, ax							; Store for later

	mov		bx,PHY_LINK_PART_REG	; Read link partner's capability
	call		read_phy_reg
	and		ax, LINK_ABILITY_BITS	; Ignore other bits
	jnz		short get_common_capabilities	; Should have some bits set
	print	no_neg_bits_msg			; Announce problem
	jmp		no_negotiation_bits	; Try to continue

get_common_capabilities:
	and		ax, cx							; Get the common technology
	jnz		short get_highest_priority		; Should have some bits in common
	print	no_common_capability			; Announce problem
	jmp		no_negotiation_bits				; Try to continue

get_highest_priority:
	; Apply the priority resolution to the common technolgies
	test	ax, TX_FULL_BIT
	jnz		short tx_full
	test	ax, T4_HALF_BIT
	jnz		short t4_half
	test	ax, TX_HALF_BIT
	jnz		short tx_half
	test	ax, T_FULL_BIT
	jnz		short t_full

t_half:
	mov		speed, SLOW_10
	mov		duplex, HALF_DUPLEX
	mov		dx, offset cgroup:t_half_msg
	jmp		short done_83840_speed_duplex

tx_full:
	mov		speed, FAST_100
	mov		duplex, FULL_DUPLEX
	mov		dx, offset cgroup:tx_full_msg
	jmp		short done_83840_speed_duplex

t4_half:
	mov		speed, FAST_100
	mov		duplex, HALF_DUPLEX
	mov		dx, offset cgroup:t4_half_msg
	jmp		short done_83840_speed_duplex

tx_half:
	mov		speed, FAST_100
	mov		duplex, HALF_DUPLEX
	mov		dx, offset cgroup:tx_half_msg
	jmp		short done_83840_speed_duplex

t_full:
	mov		speed, SLOW_10
	mov		duplex, FULL_DUPLEX
	mov		dx, offset cgroup:t_full_msg

done_83840_speed_duplex:
	print_it								; Announce speed / duplex found

	mov		bx,NSC_CONG_CTRL_REG		; Apply neccessary fixes
	call		read_phy_reg
	mov		bx, ax
	or		bx, NSC_TX_CONG_F_CONNECT	; This bit always needs to be set
	cmp		duplex, HALF_DUPLEX
	je		short no_full_duplex_fix
	or		bx, NSC_TX_CONG_TXREADY	; Needs to be set for full duplex
no_full_duplex_fix:
	mov		dx,NSC_CONG_CTRL_REG	; Write the fix
	call		write_phy_reg

	pop		bx
	ret
  endif


	public	find_base
find_base	PROC	NEAR
	call	get_pci_info		; Go and search the card
	jc		short f_b_failed	; Jump if card not found

;get the command register.
	mov		ah, PCI_FUNCTION_ID		; Get IO base
	mov		al, READ_PCI_CONFIG_WORD
	mov		bx, pci_bus_dev_no		; Recover the bus / device number
	mov		di, COMMAND_REGISTER
	int		PCI_BIOS_INTERRUPT
	cmp		ah, PCI_SUCCESSFULL
	jne		short f_b_failed
;turn on bus master mode.
	or		cl, CMD_BUS_MASTER + CMD_IO_SPACE + CMD_MEMORY_SPACE
;write it back out again.
	mov		ah, PCI_FUNCTION_ID		; Get IO base
	mov		al, WRITE_PCI_CONFIG_WORD
	mov		di, 4h		;COMMAND_REGISTER
	int		PCI_BIOS_INTERRUPT

	ret
f_b_failed:
	mov		dx, offset cgroup:scan_failed	; Message to announce later
	stc							; Set carry and return
	ret
find_base	ENDP

get_pci_info	PROC	NEAR
	mov		si,slot_no
	sub		si,16+1		;specified as 16, we need to be -1.
try_next_index:
	inc		si		; Start out with index # = 0
	mov		di,offset cgroup:device_id_list
try_next_device:
	mov		cx,[di]
	add		di,2
	jcxz		error_get_pci_info ; Not found in this slot - exit

 	mov		ah, PCI_FUNCTION_ID
	mov		al, FIND_PCI_DEVICE
	mov		dx, VENDOR_ID
	mov		deviceid, cx
	mov		vendorid, dx
	int		PCI_BIOS_INTERRUPT
	cmp		ah, PCI_SUCCESSFULL
	jne		try_next_device

	mov		ah, PCI_FUNCTION_ID	; Get IO base
	mov		al, READ_PCI_CONFIG_DWORD
	mov		di, 14h			; Base address register for IO info
	int		PCI_BIOS_INTERRUPT
	cmp		ah, PCI_SUCCESSFULL
	jne		try_next_index
	mov		pci_bus_dev_no, bx	; Save bus / device number
	mov		bl, cl			; Check that this base register has IO info
	and		bl, 03h					
	cmp		bl, 01h			; Check the IO space indicator bits
	jne		try_next_index	; No - should not happen
	and		cl, 0FCh		; Mask lower 2 bits of IO address

	mov		base_addr, cx
	mov		bx, pci_bus_dev_no	; Recover the bus / device number
	mov		ah, PCI_FUNCTION_ID	; Get IRQ number
	mov		al, READ_PCI_CONFIG_BYTE
	mov		di, 3ch			; PCI register for IRQ info
	int		PCI_BIOS_INTERRUPT
	cmp		ah, PCI_SUCCESSFULL
	je		short got_irq
	print	irq_problem_msg
	stc
	jmp		try_next_index		; Continue the search.
got_irq:
	mov		int_no, cl
	clc
	ret
error_get_pci_info:
	stc
	ret
get_pci_info	ENDP

code	ends

_text	segment para public 'code'
_text	ends

init	segment para public 'code'
init	ends

	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美日韩在线一区| 色综合色狠狠天天综合色| 欧美精品久久久久久久多人混战| 1000精品久久久久久久久| 99久久综合99久久综合网站| 亚洲私人影院在线观看| 在线欧美一区二区| 精品国产人成亚洲区| 久久亚洲欧美国产精品乐播| 久久精品国产久精国产| 久久蜜臀精品av| 成人av免费网站| 亚洲一区自拍偷拍| 精品视频一区 二区 三区| 午夜视频一区二区三区| 日韩精品一区二区三区swag | 久久99久久99精品免视看婷婷| 欧美变态tickle挠乳网站| 国产精品18久久久| 亚洲激情六月丁香| 亚洲精品一区二区精华| 成人h动漫精品一区二区| 午夜婷婷国产麻豆精品| 欧美精品一区二区不卡| 色综合久久综合| 奇米影视在线99精品| 国产精品理论片| 欧美日韩亚洲国产综合| 国产尤物一区二区在线| 一区二区在线观看av| 欧美tickling挠脚心丨vk| 99re热这里只有精品免费视频| 日韩精品成人一区二区三区| 国产精品美女一区二区在线观看| 欧美日韩在线观看一区二区| 国产成人啪午夜精品网站男同| 一区二区国产视频| 国产三级欧美三级| 欧美人xxxx| 99久久国产综合精品女不卡| 久久国产剧场电影| 亚洲一区视频在线| 中文子幕无线码一区tr| 欧美一区二区在线免费播放 | 色综合色狠狠天天综合色| 久久成人免费网| 亚洲高清不卡在线观看| 日本一区二区不卡视频| 日韩视频免费观看高清完整版在线观看 | 国产成人免费网站| 天天综合色天天综合| 亚洲日本电影在线| 欧美高清在线视频| 亚洲精品一线二线三线| 欧美日韩视频在线观看一区二区三区| 国产成人av电影在线| 免费看日韩精品| 亚洲午夜在线视频| 亚洲日本在线天堂| 久久精品亚洲乱码伦伦中文 | 欧美午夜精品一区二区蜜桃 | 欧美在线免费播放| 99久久精品99国产精品| 国产69精品一区二区亚洲孕妇| 日本不卡一二三| 午夜免费欧美电影| 亚洲一区二区三区中文字幕 | 日韩精品色哟哟| 亚洲成人av电影在线| 亚洲激情av在线| 日韩码欧中文字| 1000部国产精品成人观看| 日本一区二区成人| 国产精品麻豆99久久久久久| 国产偷国产偷亚洲高清人白洁| 日韩午夜激情视频| 欧美一区二区高清| 日韩欧美国产1| 精品成人佐山爱一区二区| 欧美成人a在线| 久久久久高清精品| 亚洲国产精品激情在线观看| 欧美国产日韩在线观看| 国产精品毛片高清在线完整版| 国产精品美女久久久久aⅴ国产馆| 久久久久久久久久久黄色| 国产欧美精品一区aⅴ影院| 国产欧美日韩精品在线| 最新国产精品久久精品| 一区二区三区四区在线播放 | 久久这里都是精品| 国产日韩欧美a| 国产精品美女www爽爽爽| 亚洲男人的天堂一区二区 | 亚洲国产欧美在线| 日韩影院精彩在线| 精品伊人久久久久7777人| 丰满放荡岳乱妇91ww| 色综合久久综合中文综合网| 欧美午夜精品电影| 精品精品国产高清一毛片一天堂| 精品国内二区三区| 中文字幕一区二区三区不卡 | 色综合久久综合| 欧美人与z0zoxxxx视频| 欧美精品黑人性xxxx| 精品国产乱码久久久久久闺蜜| 精品国产人成亚洲区| 日本一区二区三区在线观看| 国产精品乱子久久久久| 中文字幕一区二区三区不卡| 国产精品久久久久一区| 中文字幕制服丝袜一区二区三区| 亚洲欧洲综合另类| 视频一区国产视频| 精品一区二区日韩| 成人精品国产福利| 欧美中文字幕一区二区三区亚洲| 制服丝袜在线91| 国产网红主播福利一区二区| 亚洲品质自拍视频网站| 亚洲欧洲国产日韩| 日本最新不卡在线| 国产高清久久久| 欧美性xxxxxxxx| 久久久欧美精品sm网站| 成人欧美一区二区三区白人| 老汉av免费一区二区三区| 成人久久视频在线观看| 欧美综合久久久| 欧美日本精品一区二区三区| 国产亚洲女人久久久久毛片| 亚洲精品国久久99热| 男人的天堂亚洲一区| 成人av资源在线观看| 久久综合成人精品亚洲另类欧美| 最新中文字幕一区二区三区| 日韩av在线播放中文字幕| 成人在线一区二区三区| 日本高清无吗v一区| 国产欧美精品在线观看| 午夜精品久久久久久不卡8050| 国产精品66部| 欧美精品日韩精品| 欧美美女网站色| 中文字幕不卡的av| 日韩精品1区2区3区| 97超碰欧美中文字幕| 精品伦理精品一区| 日韩国产在线观看一区| 99久久久久久| 久久―日本道色综合久久| 美国欧美日韩国产在线播放| 91福利社在线观看| 久久无码av三级| 日韩精品国产欧美| 欧美一区二区福利在线| 中文字幕一区二区三区视频| 久久成人免费网| 欧美精品v日韩精品v韩国精品v| 一区二区三区不卡在线观看| 国产盗摄一区二区| 欧美成人福利视频| 性做久久久久久免费观看欧美| 国产精品一区在线观看乱码| 久久久久免费观看| 久久国产精品色| 日韩色视频在线观看| 亚洲国产精品久久久久秋霞影院 | 爽爽淫人综合网网站| 欧美日韩在线观看一区二区| 亚洲免费观看高清完整版在线观看 | 精品少妇一区二区三区日产乱码| 亚洲在线视频网站| 欧美日韩国产一区| 亚洲午夜精品网| 欧美视频中文字幕| 亚洲国产精品久久久男人的天堂| 欧美日韩欧美一区二区| 亚洲一二三四在线观看| 91美女在线视频| 日韩美女久久久| av在线不卡电影| 一区二区三区小说| 欧美在线视频不卡| 亚洲福利视频一区二区| 欧美日韩免费视频| 国产综合色在线| 国产日产欧产精品推荐色| 国产成人午夜精品5599| 国产色综合久久| 在线视频国内自拍亚洲视频| 亚洲一区二区五区| 欧美一三区三区四区免费在线看 | 91免费观看国产| 一区二区三区在线播| 日本韩国一区二区三区| 日韩高清一区二区| 26uuu成人网一区二区三区| 国产精品自在在线|