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

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

?? sis900.inc

?? MenuetOS是一個用匯編開發的32/64位PC操作系統
?? INC
?? 第 1 頁 / 共 3 頁
字號:
    jne .get_mac_loop    ; Enable packet filtering    ;lea     edx,[ebp+SIS900_rfcr]    ;mov     eax,edi    ;or      eax,SIS900_RFEN    ;out     dx, eax   ;*******Debug Print MAC ID to debug window**********************if defined SIS900_DEBUG    mov     esi,SIS900_Debug_Str_GetMac_Address    call    sys_msg_board_str    mov     edx, node_addr    call    Create_Mac_Stringend if    ret;***************************************************************************;* Function: sis900_read_eeprom;*;* Description: reads and returns a given location from EEPROM;*;* Arguments: eax - location:       requested EEPROM location;*;* Returns:   eax :                contents of requested EEPROM location;*; Read Serial EEPROM through EEPROM Access Register, Note that location is;   in word (16 bits) unit */;done+;***************************************************************************sis900_read_eeprom:   push      esi   push      edx   push      ecx   push      ebx   mov       ebp,[io_addr]   mov       ebx, eax              ;location of Mac byte to read   or        ebx, SIS900_EEread    ;   lea       edx,[ebp+SIS900_mear] ; Eeprom access register   xor       eax, eax              ; start send   out       dx,eax   call      SIS900_Eeprom_Delay_1   mov       eax, SIS900_EECLK   out       dx, eax   call      SIS900_Eeprom_Delay_1    ;************ Shift the read command (9) bits out. *********   mov       cl, 8					;sis900_read_eeprom_Send:   mov       eax, 1   shl       eax, cl   and       eax, ebx   jz SIS900_Read_Eeprom_8   mov       eax, 9   jmp       SIS900_Read_Eeprom_9SIS900_Read_Eeprom_8:   mov       eax, 8SIS900_Read_Eeprom_9:   out       dx, eax   call      SIS900_Eeprom_Delay_1   or        eax, SIS900_EECLK   out       dx, eax   call      SIS900_Eeprom_Delay_1   cmp       cl, 0   je        sis900_read_eeprom_Send_Done   dec       cl   jmp       sis900_read_eeprom_Send   ;*********************sis900_read_eeprom_Send_Done:   mov       eax, SIS900_EECS		;   out       dx, eax   call      SIS900_Eeprom_Delay_1    ;********** Read 16-bits of data in ***************    mov      cx, 16 				;16 bits to readsis900_read_eeprom_Send2:    mov      eax, SIS900_EECS    out      dx, eax    call     SIS900_Eeprom_Delay_1    or       eax, SIS900_EECLK    out      dx, eax    call     SIS900_Eeprom_Delay_1    in       eax, dx    shl      ebx, 1    and      eax, SIS900_EEDO    jz       SIS900_Read_Eeprom_0    or       ebx, 1SIS900_Read_Eeprom_0:   dec       cx   jnz       sis900_read_eeprom_Send2   ;************** Terminate the EEPROM access. **************   xor       eax, eax   out       dx, eax   call      SIS900_Eeprom_Delay_1   mov       eax, SIS900_EECLK   out       dx, eax   mov       eax, ebx   and       eax, 0x0000ffff			;return only 16 bits   pop       ebx   pop       ecx   pop       edx   pop       esi   ret;***************************************************************************;   Function;      SIS900_Eeprom_Delay_1;   Description;;;;;***************************************************************************SIS900_Eeprom_Delay_1:   push eax   in eax, dx   pop eax   ret;***************************************************************************;   Function;      SIS900_poll;   Description;      polls card to see if there is a packet waiting;;  Currently only supports one descriptor per packet, if packet is fragmented;  between multiple descriptors you will lose part of the packet;***************************************************************************if defined SIS900_DEBUGSIS900_Debug_Pull_Packet_good db 'Good Packet Waiting: ',13,10,0SIS900_Debug_Pull_Bad_Packet_Status db 'Bad Packet Waiting: Status',13,10,0SIS900_Debug_Pull_Bad_Packet_Size db 'Bad Packet Waiting: Size',13,10,0end ifSIS900_poll:    ;**************Get Status **************    xor       eax, eax			    ;get RX_Status    mov      [eth_rx_data_len], ax    mov       al, [cur_rx]          ;find current discriptor    imul      eax, 12               ;    mov       ecx, [rxd+eax+4]		; get receive status    ;**************Check Status **************    mov       ebx, ecx				;move status    ;Check RX_Status to see if packet is waiting    and       ebx, 0x80000000		    jnz       SIS900_poll_IS_packet    ret   ;**********There is a packet waiting check it for errors**************SIS900_poll_IS_packet:    mov       ebx, ecx				;move status    and       ebx, 0x67C0000		;see if there are any errors    jnz       SIS900_Poll_Error_Status   ;**************Check size of packet*************   and       ecx, SIS900_DSIZE					;get packet size minus CRC   cmp       cx, SIS900_CRC_SIZE   ;make sure packet contains data   jle       SIS900_Poll_Error_Size				   ;*******Copy Good Packet to receive buffer******   sub      cx, SIS900_CRC_SIZE				    ;dont want crc   mov      word [eth_rx_data_len], cx          ;save size of packet   ;**********Continue copying packet****************   push     ecx   ; first copy dword-wise, divide size by 4   shr      ecx, 2							   mov      esi, [rxd+eax+8]				; set source   mov      edi, Ether_buffer               ; set destination   cld										; clear direction   rep      movsd							; copy the dwords   pop      ecx   and      ecx, 3						    ;   rep      movsb   ;********Debug, tell user we have a good packet*************if defined SIS900_DEBUG   mov      esi, SIS900_Debug_Pull_Packet_good   call     sys_msg_board_strend if   jmp SIS900_Poll_Cnt                      ;   ;*************Error occured let user know through debug window***********SIS900_Poll_Error_Status:if defined SIS900_DEBUG		mov      esi, SIS900_Debug_Pull_Bad_Packet_Status		call     sys_msg_board_strend if		jmp      SIS900_Poll_CntSIS900_Poll_Error_Size:if defined SIS900_DEBUG		mov      esi, SIS900_Debug_Pull_Bad_Packet_Size		call     sys_msg_board_strend if   ;*************Increment to next available descriptor**************SIS900_Poll_Cnt:    ;Reset status, allow ethernet card access to descriptor   mov      ecx, RX_BUFF_SZ					    mov      [rxd+eax+4], ecx                ;   inc      [cur_rx]	 					;get next descriptor   and      [cur_rx],3                      ;only 4 descriptors 0-3   ;******Enable Receiver************   mov  	ebp, [io_addr]	    ; Base Address   lea      edx,[ebp+SIS900_cr] ; Command Register offset   in 	    eax, dx			    ; Get current Command Register   or 	    eax, SIS900_RxENA   ;Enable Receive   out 	    dx, eax   ret;***************************************************************************;   Function;      SIS900_transmit;   Description;      Transmits a packet of data via the ethernet card;         Pointer to 48 bit destination address in edi;         Type of packet in bx;         size of packet in ecx;         pointer to packet data in esi;;      only one transmit descriptor is used;;***************************************************************************if defined SIS900_DEBUGSIS900_Debug_Transmit_Packet db 'Transmitting Packet: ',13,10,0SIS900_Debug_Transmit_Packet_Err db 'Transmitting Packet Error: ',13,10,0end ifSIS900_transmit:   mov  	ebp, [io_addr]	    ; Base Address   ;******** Stop the transmitter ********   lea      edx,[ebp+SIS900_cr] ; Command Register offset   in 	    eax, dx			    ; Get current Command Register   or 	    eax, SIS900_TxDIS   ; Disable Transmitter   out 	    dx, eax   ;*******load Transmit Descriptor Register *******   lea      edx,[ebp+SIS900_txdp]   mov      eax, txd   out      dx, eax   ;******* copy packet to descriptor*******   push    esi   mov     esi, edi		   ;copy destination addess   mov     edi, txb   cld   movsd   movsw   mov     esi, node_addr  ;copy my mac address   movsd   movsw   mov     [edi], bx	   ;copy packet type   add     edi, 2   pop     esi             ;restore pointer to source of packet   push    ecx             ;save packet size   shr     ecx, 2          ;divide by 4, size in bytes send in dwords   rep     movsd		   ;copy data to decriptor   pop     ecx			   ;restore packet size   push    ecx             ;save packet size   and     ecx, 3          ;last three bytes if not a multiple of 4   rep     movsb   ;**************set length tag**************   pop     ecx			         ;restore packet size   add     ecx, SIS900_ETH_HLEN  ;add header to length   and     ecx, SIS900_DSIZE     ;   ;**************pad to minimum packet size **************not needed   ;cmp       ecx, SIS900_ETH_ZLEN   ;jge       SIS900_transmit_Size_Ok   ;push      ecx   ;mov       ebx, SIS900_ETH_ZLEN   ;sub       ebx, ecx   ;mov       ecx, ebx   ;rep       movsb   ;pop       ecxSIS900_transmit_Size_Ok:   mov      [txd+4], dword 0x80000000			;card owns descriptor   or       [txd+4], ecx						;set size of packetif defined SIS900_DEBUG   mov      esi, SIS900_Debug_Transmit_Packet   call     sys_msg_board_strend if   ;***************restart the transmitter ********   lea      edx,[ebp+SIS900_cr]   in 	    eax, dx			    ; Get current Command Register   or 	    eax, SIS900_TxENA   ; Enable Transmitter   out 	    dx, eax   ;****make sure packet transmitted successfully****   mov      esi,10   call     delay_ms   mov      eax, [txd+4]   and      eax, 0x6200000   jz       SIS900_transmit_OK   ;**************Tell user there was an error through debug windowif defined SIS900_DEBUG   mov      esi, SIS900_Debug_Transmit_Packet_Err   call     sys_msg_board_strend ifSIS900_transmit_OK:   ;******** Disable interrupts by clearing the interrupt mask. ********   lea      edx,[ebp+SIS900_imr]	    ; Interupt Mask Register   xor      eax, eax   out 	    dx,eax   ret   ;***************************************************************************;* Function: Create_Mac_String;*;* Description: Converts the 48 bit value to a string for display;*;* String Format: XX:XX:XX:XX:XX:XX;*;* Arguments: node_addr is location of 48 bit MAC ID;*;* Returns:   Prints string to general debug window;*;*;done;***************************************************************************if defined SIS900_DEBUGSIS900_Char_String    db '0','1','2','3','4','5','6','7','8','9'                      db 'A','B','C','D','E','F'Mac_str_build: times 20 db 0Create_Mac_String:   pusha   xor ecx, ecxCreate_Mac_String_loop:   mov al,byte [edx+ecx];[node_addr+ecx]   push eax   shr eax, 4   and eax, 0x0f   mov bl, byte [SIS900_Char_String+eax]   mov [Mac_str_build+ecx*3], bl   pop eax   and eax, 0x0f   mov bl, byte [SIS900_Char_String+eax]   mov [Mac_str_build+1+ecx*3], bl   cmp ecx, 5   je Create_Mac_String_done   mov bl, ':'   mov [Mac_str_build+2+ecx*3], bl   inc ecx   jmp Create_Mac_String_loopCreate_Mac_String_done:					;Insert CR and Zero Terminate   mov [Mac_str_build+2+ecx*3],byte 13   mov [Mac_str_build+3+ecx*3],byte 10   mov [Mac_str_build+4+ecx*3],byte 0   mov esi, Mac_str_build   call sys_msg_board_str				;Print String to message board   popa   retend if;***************************************************************************;*	Set device to be a busmaster in case BIOS neglected to do so.;*	Also adjust PCI latency timer to a reasonable value, 64.;***************************************************************************SIS900_adjust_pci_device:   ;*******Get current setting************************   mov     al, 2					;read a word   mov     bh, [pci_dev]   mov     ah, [pci_bus]   mov     bl, 0x04				    ;from command Register   call    pci_read_reg   ;******see if its already set as bus master********   mov      bx, ax   and      bx,5   cmp      bx,5   je       SIS900_adjust_pci_device_Latency   ;******Make card a bus master*******   mov      cx, ax				;value to write   mov     bh, [pci_dev]   mov     al, 2				;write a word   or       cx,5   mov     ah, [pci_bus]   mov     bl, 0x04				;to command register   call    pci_write_reg   ;******Check latency setting***********SIS900_adjust_pci_device_Latency:   ;*******Get current latency setting************************   mov     al, 1					;read a byte   mov     bh, [pci_dev]   mov     ah, [pci_bus]   mov     bl, 0x0D				    ;from Lantency Timer Register   call    pci_read_reg   ;******see if its aat least 64 clocks********   cmp      ax,64   jge      SIS900_adjust_pci_device_Done   ;******Set latency to 32 clocks*******   mov     cx, 64				;value to write   mov     bh, [pci_dev]   mov     al, 1				;write a byte   mov     ah, [pci_bus]   mov     bl, 0x0D				;to Lantency Timer Register   call    pci_write_reg   ;******Check latency setting***********SIS900_adjust_pci_device_Done:   ret

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区在线观看视频| 国产一区二区三区国产| 亚洲欧美日韩国产成人精品影院| 亚洲欧美日韩电影| 亚洲成人动漫一区| 成人在线一区二区三区| 国产v日产∨综合v精品视频| 色先锋aa成人| 精品少妇一区二区三区| 亚洲视频一区二区免费在线观看| 精品视频一区三区九区| 6080国产精品一区二区| 久久九九国产精品| 偷窥国产亚洲免费视频| 国产精品综合视频| 色999日韩国产欧美一区二区| 国产成人亚洲综合色影视| 99国内精品久久| 日韩午夜三级在线| 亚洲男人的天堂在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 中文字幕免费不卡在线| 午夜天堂影视香蕉久久| 不卡的看片网站| 精品乱码亚洲一区二区不卡| 亚洲一二三级电影| 欧美a级理论片| 欧美三级日韩三级| 久久久精品免费观看| 日韩精品五月天| 91蝌蚪porny成人天涯| 久久久久久亚洲综合影院红桃| 3d动漫精品啪啪一区二区竹菊| 不卡一二三区首页| 国产视频一区二区三区在线观看| 日韩一级片网站| 亚洲一区二区五区| 成人美女视频在线看| 日韩精品专区在线| 天天综合色天天综合色h| 在线视频一区二区免费| 亚洲人123区| 一本大道综合伊人精品热热| 亚洲丝袜自拍清纯另类| 成人丝袜视频网| 国产午夜精品一区二区三区视频| 国产无遮挡一区二区三区毛片日本| 久久中文娱乐网| 国产曰批免费观看久久久| 欧美一区二区三区白人| 天堂精品中文字幕在线| 在线精品视频免费观看| 中文字幕日韩精品一区| 丁香婷婷深情五月亚洲| 欧美国产综合色视频| 国产**成人网毛片九色| 国产欧美日韩综合精品一区二区| 亚洲欧洲综合另类在线| 成人久久18免费网站麻豆| 亚洲丝袜另类动漫二区| 99re视频精品| 一区二区成人在线观看| 精品视频全国免费看| 日本最新不卡在线| 欧美日韩免费观看一区三区| 亚洲成人av在线电影| 日韩欧美资源站| 国产一区二区成人久久免费影院| 成人免费观看视频| 中文字幕一区三区| 色综合网站在线| 麻豆精品精品国产自在97香蕉| 国产在线精品不卡| 久久一留热品黄| 本田岬高潮一区二区三区| 亚洲视频香蕉人妖| 欧美乱妇一区二区三区不卡视频| 久久免费美女视频| 成人爽a毛片一区二区免费| 1000部国产精品成人观看| 欧美最猛黑人xxxxx猛交| 日韩在线一区二区三区| 久久综合九色综合97婷婷女人| 亚洲欧美日韩国产中文在线| 欧美精品一级二级| 国产成人精品免费网站| 成人免费在线观看入口| 欧美精选在线播放| 国产suv精品一区二区883| 亚洲欧美另类在线| 日韩免费高清电影| 色综合久久久久久久| 久久精品国产精品亚洲红杏| ●精品国产综合乱码久久久久| 国产曰批免费观看久久久| 亚洲精品欧美二区三区中文字幕| 激情欧美一区二区三区在线观看| 91美女视频网站| 卡一卡二国产精品 | 国产精品电影院| 欧美一区二区三区的| 欧美影院一区二区| av午夜精品一区二区三区| 国产成人av自拍| 国产在线视频精品一区| 蜜乳av一区二区| 亚洲一区二区三区国产| 一区二区成人在线视频| 亚洲视频 欧洲视频| 最新热久久免费视频| 国产精品三级视频| 亚洲国产高清不卡| 中文一区二区完整视频在线观看 | 久久66热偷产精品| 日本中文字幕一区二区有限公司| 精品国产伦一区二区三区观看方式| 国产在线国偷精品免费看| 蜜桃av噜噜一区二区三区小说| 久久久不卡网国产精品一区| 日韩一级二级三级精品视频| 制服丝袜在线91| 日韩欧美另类在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产日韩精品一区二区三区在线| 99久久免费视频.com| 成人免费视频app| av男人天堂一区| 91国模大尺度私拍在线视频| 欧美最新大片在线看| 欧美高清视频在线高清观看mv色露露十八| 精品一区二区影视| 精品亚洲免费视频| 国产成人自拍高清视频在线免费播放| 亚洲女子a中天字幕| 亚洲永久精品国产| 免费成人小视频| 国产成人午夜精品5599 | 毛片不卡一区二区| 国产宾馆实践打屁股91| 99综合电影在线视频| 欧美午夜精品久久久久久孕妇 | 色婷婷亚洲婷婷| 欧美色涩在线第一页| 日韩一区二区三区在线观看| 久久无码av三级| 一区二区三区四区高清精品免费观看| 久久夜色精品一区| 亚洲视频一二三区| 日韩电影在线观看电影| 蜜桃av噜噜一区| 色综合欧美在线| 日韩三区在线观看| 亚洲乱码国产乱码精品精的特点| 久久久久国色av免费看影院| 国产精品成人午夜| 捆绑变态av一区二区三区| 91首页免费视频| 精品福利av导航| 亚洲国产成人porn| www.欧美.com| 欧美成人vr18sexvr| 一区二区视频在线| 国产麻豆91精品| 欧美精品乱码久久久久久 | 亚洲成人第一页| 成人激情免费网站| 欧美成人女星排名| 亚洲综合久久久久| 97精品国产97久久久久久久久久久久 | 亚洲成人自拍一区| 成人免费视频播放| 精品久久五月天| 亚洲电影一区二区| 99久久免费视频.com| 久久品道一品道久久精品| 亚洲成av人影院| 色婷婷亚洲精品| 亚洲天堂福利av| 成人综合日日夜夜| 亚洲精品一区二区在线观看| 午夜精品一区在线观看| 色先锋资源久久综合| 国产精品沙发午睡系列990531| 国产精品国产三级国产有无不卡 | av电影在线不卡| 国产亚洲va综合人人澡精品| 日本不卡一二三| 7777女厕盗摄久久久| 亚洲成人在线免费| 91麻豆免费看片| 国产精品家庭影院| 91在线小视频| 亚洲视频在线一区观看| 菠萝蜜视频在线观看一区| 国产视频一区不卡| 国产999精品久久久久久绿帽| 成人久久久精品乱码一区二区三区 | 亚洲欧美日韩国产成人精品影院| 一区二区视频在线| 99国产麻豆精品|