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

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

?? stack.inc

?? Menuet 操作系統源代碼。 非常難得的東西
?? INC
?? 第 1 頁 / 共 3 頁
字號:
    test    eax,eax
    jnz     not0
    ; Read the configuartion word
    mov     eax, [stack_config]
    ret
   
not0:
    cmp     eax, 1
    jnz     not1
    ; read the IP address
   
    mov     eax, [stack_ip]
    ret
   
not1:
    cmp     eax, 2
    jnz     not2
   
    ; write the configuration word
    mov     [stack_config], ebx
   
    ; <Slip shouldn't be active anyway - thats an operational issue.>
    ; If ethernet now enabled, probe for the card, reset it and empty
    ; the packet buffer
    ; If all successfull, enable the card.
    ; If ethernet now disabled, set it as disabled. Should really
    ; empty the tcpip data area too.
   
    ; ethernet interface is '3' in ls 7 bits
    and     bl, 0x7f
    cmp     bl, 3
   
    je       ash_eth_enable
    ; Ethernet isn't enabled, so make sure that the card is disabled
    mov     [ethernet_active], byte 0
    
    ret
   
ash_eth_enable:
    ; Probe for the card. This will reset it and enable the interface
    ; if found
    call    eth_probe
    test    eax,eax
    je      ash_eth_done            ; Abort if no hardware found
   
    mov     [ethernet_active], byte 1
   
ash_eth_done:   
    ret
   
not2:
    cmp     eax, 3
    jnz     not3
    ; write the IP Address
    mov     [stack_ip], ebx
    ret
   
not3:
    cmp     eax, 4
    jnz     not4
    ; Enabled the slip driver on the comm port
if SLIP_PRESENT = TRUE
    call    enable_slip
end if
    ret
   
not4:
    cmp     eax, 5
    jnz     stack_driver_end
    ; Disable the slip driver on the comm port
if SLIP_PRESENT = TRUE
    call    disable_slip
end if   

stack_driver_end:
    ret
   
   
   
;***************************************************************************
;   Function
;      app_socket_handler
;
;   Description
;       This is an application service, called by int 0x40
;       It provides application access to stack socket services
;       such as opening sockets
;
;***************************************************************************
app_socket_handler:
    test    eax,eax
    jnz     nots0
   
    call    socket_open
    ret
   
nots0:
    cmp     eax, 1
    jnz     nots1
   
    call    socket_close
    ret
   
nots1:
    cmp     eax, 2
    jnz     nots2
   
    call    socket_poll
    ret
   
nots2:
    cmp     eax, 3
    jnz     nots3
   
    call    socket_read
    ret
   
nots3:
    cmp     eax, 4
    jnz     nots4
   
    call    socket_write
    ret
   
nots4:
    cmp     eax, 5
    jnz     nots5

    call    socket_open_tcp
    ret

nots5:
    cmp     eax, 6
    jnz     nots6
   
    call    socket_status
    ret

nots6:
    cmp     eax, 7
    jnz     nots7
   
    call    socket_write_tcp
    ret

nots7:
    cmp     eax, 8
    jnz     nots8
    
    call    socket_close_tcp
    ret
    
nots8:
    cmp     eax, 9
    jnz     nots9
    
    call    is_localport_unused
    ret
    
nots9:
    cmp     eax, 254
    jnz     notdump
   
    ret
   
notdump:
    cmp     eax, 255
    jnz     notsdebug
   
    ; This sub function allows access to debugging information on the stack
    ; ebx holds the request:
    ;  100 : return length of empty queue
    ;  101 : return length of IPOUT QUEUE
    ;  102 : return length of IPIN QUEUE
    ;  103 : return length of NET1OUT QUEUE
    ; 200 : return # of ARP entries
    ; 201 : return size of ARP table ( max # entries )
    ; 202 : select ARP table entry #
    ; 203 : return IP of selected table entry
    ; 204 : return High 4 bytes of MAC address of selected table entry
    ; 205 : return low  2 bytes of MAC address of selected table entry
    ; 206 : return status word of selected table entry
    ; 207 : return Time to live of selected table entry
    

    ;  2 : return number of IP packets received
    ;  3 : return number of packets transmitted
    ;  4 : return number of received packets dumped
    ;  5 : return number of arp packets received
    ;  6 : return status of packet driver
    ;      ( 0 == not active, FFFFFFFF = successful )
   
    call    stack_internal_status
    ret
   
notsdebug:
    ; Invalid Option
    ret
   

ARPTmp:    
times 14 db 0
   
;***************************************************************************
;   Function
;      stack_internal_status
;
;   Description
;       Returns information about the internal status of the stack
;       This is only useful for debugging
;       It works with the ethernet driver
;       sub function in ebx
;       return requested data in eax
;
;***************************************************************************
stack_internal_status:
    cmp     ebx, 100
    jnz     notsis100
   
    ;  100 : return length of EMPTY QUEUE
    mov     ebx, EMPTY_QUEUE
    call    queueSize   
    ret
   
notsis100:
    cmp     ebx, 101
    jnz     notsis101
   
    ;  101 : return length of IPOUT QUEUE
    mov     ebx, IPOUT_QUEUE
    call    queueSize   
    ret
   
notsis101:
    cmp     ebx, 102
    jnz     notsis102
   
    ;  102 : return length of IPIN QUEUE
    mov     ebx, IPIN_QUEUE
    call    queueSize   
    ret

notsis102:
    cmp     ebx, 103
    jnz     notsis103
   
    ;  103 : return length of NET1OUT QUEUE
    mov     ebx, NET1OUT_QUEUE
    call    queueSize   
    ret

notsis103:
    cmp     ebx, 200
    jnz     notsis200
    
    ; 200 : return num entries in arp table
    movzx   eax, byte [NumARP]
    ret
    
notsis200:
    cmp     ebx, 201
    jnz     notsis201
    
    ; 201 : return arp table size
    mov     eax, 20 ; ARP_TABLE_SIZE
    ret

notsis201:
    cmp     ebx, 202
    jnz     notsis202

    ; 202 - read the requested table entry 
    ; into a temporary buffer
    ; ecx holds the entry number
    
    mov     eax, ecx
    mov     ecx, 14 ; ARP_ENTRY_SIZE
    mul     ecx
    
    mov     ecx, [eax + ARPTable]
    mov     [ARPTmp], ecx
    mov     ecx, [eax + ARPTable+4]
    mov     [ARPTmp+4], ecx
    mov     ecx, [eax + ARPTable+8]
    mov     [ARPTmp+8], ecx
    mov     cx, [eax + ARPTable+12]
    mov     [ARPTmp+12], cx
    ret
        
notsis202:    
    cmp     ebx, 203
    jnz     notsis203

    ; 203 - return IP address
    mov     eax, [ARPTmp]
    ret
    
notsis203:
    cmp     ebx, 204
    jnz     notsis204

    ; 204 - return MAC high dword
    mov     eax, [ARPTmp+4]
    ret
    
notsis204:
    cmp     ebx, 205
    jnz     notsis205

    ; 205 - return MAC ls word
    movzx   eax, word [ARPTmp+8]
    ret
    
notsis205:
    cmp     ebx, 206
    jnz     notsis206

    ; 206 - return status word
    movzx   eax, word [ARPTmp+10]
    ret
    
notsis206:
    cmp     ebx, 207
    jnz     notsis207

    ; 207 - return ttl word
    movzx   eax, word [ARPTmp+12]
    ret
    
notsis207:
    cmp     ebx, 2
    jnz     notsis2
   
    ;  2 : return number of IP packets received
    mov     eax, [ip_rx_count]
    ret
   
notsis2:
    cmp     ebx, 3
    jnz     notsis3
   
    ;  3 : return number of packets transmitted
    mov     eax, [ip_tx_count]
    ret
   
notsis3:
    cmp     ebx, 4
    jnz     notsis4
   
    ;  4 : return number of received packets dumped
    mov     eax, [dumped_rx_count]
    ret
   
notsis4:
    cmp     ebx, 5
    jnz     notsis5
   
    ;  5 : return number of arp packets received
    mov     eax, [arp_rx_count]
    ret
   
notsis5:
    cmp     ebx, 6
    jnz     notsis6
   
    ;  6 : return status of packet driver
    ;  ( 0 == not active, FFFFFFFF = successful )
    mov     eax, [eth_status]
    ret
   
notsis6:
    xor     eax, eax
    ret
   
   
   
;***************************************************************************
;   Function
;      socket_open
;
;   Description
;       find a free socket
;       local port in ebx
;       remote port in ecx
;       remote ip in edx
;       return socket # in eax, -1 if none available
;
;***************************************************************************
socket_open:
    call    get_free_socket
   
    cmp     eax, 0xFFFFFFFF
    jz      so_exit
   
    ; ax holds the socket number that is free. Get real address
    push    eax
    shl     eax, 12
    add     eax, sockets
   
    mov     [eax], dword SOCK_OPEN
   
    mov     [eax + 12], byte bh      ; Local port ( LS 16 bits )
    mov     [eax + 13], byte bl      ; Local port ( LS 16 bits )
    mov     ebx, [stack_ip]
    mov     [eax + 8], ebx         ; Local IP
    mov     [eax + 20], ch         ; Remote Port ( LS 16 bits )
    mov     [eax + 21], cl         ; Remote Port ( LS 16 bits )
    mov     [eax + 16], edx         ; Remote IP ( in Internet order )
    mov     [eax + 24], dword 0      ; recieved data count
   
    mov     esi, [0x3010]
    mov     ebx, [esi+0x4]
    mov     [eax + 4], ebx         ; save the process ID
    pop     eax      ; Get the socket number back, so we can return it
   
so_exit:
    ret
   


;***************************************************************************
;   Function
;      socket_open_tcp
;
;   Description
;       Opens a TCP socket in PASSIVE or ACTIVE mode
;       find a free socket
;       local port in ebx ( intel format )
;       remote port in ecx ( intel format )
;       remote ip in edx ( in Internet byte order )
;       Socket open mode in esi  ( SOCKET_PASSIVE or SOCKET_ACTIVE )
;       return socket # in eax, -1 if none available
;
;***************************************************************************
socket_open_tcp:
    call    get_free_socket
   
    cmp     eax, 0xFFFFFFFF
    jz      so_exit
   
    ; ax holds the socket number that is free. Get real address
    push    eax
    shl     eax, 12
    add     eax, sockets

    mov     [sktAddr], eax
    mov     [eax], dword SOCK_OPEN
   
    mov     [eax + 12], byte bh      ; Local port ( LS 16 bits )
    mov     [eax + 13], byte bl      ; Local port ( LS 16 bits )
    mov     ebx, [stack_ip]
    mov     [eax + 8], ebx         ; Local IP
    mov     [eax + 20], ch         ; Remote Port ( LS 16 bits )
    mov     [eax + 21], cl         ; Remote Port ( LS 16 bits )
    mov     [eax + 16], edx         ; Remote IP ( in Internet order )
    mov     [eax + 24], dword 0      ; recieved data count
   
    ; Now fill in TCB state
    mov     ebx, TCB_LISTEN
    cmp     esi, SOCKET_PASSIVE
    jz      sot_001
    mov     ebx, TCB_SYN_SENT

sot_001:
    mov     [eax + 28], ebx            ; Indicate the state of the TCB

    mov     esi, [0x3010]
    mov     ecx, [esi+0x4]
    mov     [eax + 4], ecx         ; save the process ID
      
    cmp     ebx, TCB_LISTEN
    je      sot_done    
    
    ; Now, if we are in active mode, then we have to send a SYN to the specified remote port
   
  
    mov     eax, EMPTY_QUEUE
    call    dequeue
    cmp     ax, NO_BUFFER
    je      sot_done
   
    push    eax
    
    mov     bl, 0x02        ; SYN
    mov     ecx, 0
    
    call    buildTCPPacket    
    
    mov     eax, NET1OUT_QUEUE

    mov     edx, [stack_ip]
    mov     ecx, [ sktAddr ]
    mov     ecx, [ ecx + 16 ]
    cmp     edx, ecx
    jne     sot_notlocal

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2021中文字幕一区亚洲| 亚洲男人的天堂在线观看| 国产精品毛片高清在线完整版| 亚洲国产成人高清精品| 成人精品国产一区二区4080| 欧美区在线观看| 亚洲三级小视频| 国产成人亚洲综合a∨婷婷图片| 欧美另类videos死尸| 亚洲视频一区在线观看| 国产在线精品一区二区夜色| 欧美视频在线观看一区| 国产精品不卡在线观看| 国产成人午夜片在线观看高清观看 | 成人自拍视频在线| 日韩一区二区高清| 亚洲高清视频的网址| 色婷婷久久久综合中文字幕| 国产女人aaa级久久久级| 精东粉嫩av免费一区二区三区| 欧美日韩中字一区| 一区二区三区精品视频| 99久久婷婷国产综合精品电影| 国产亚洲精品资源在线26u| 老司机精品视频导航| 正在播放一区二区| 日本不卡视频在线观看| 欧美精品久久久久久久多人混战| 伊人开心综合网| 日本乱人伦一区| 亚洲精品成人悠悠色影视| 99久久精品免费观看| 亚洲色图一区二区三区| 成人国产在线观看| 国产精品国产成人国产三级 | 亚洲欧美日韩国产另类专区| 99久久精品费精品国产一区二区| 国产女同互慰高潮91漫画| 国产成人在线电影| 1000精品久久久久久久久| 成人黄色小视频在线观看| 中文字幕一区二区三区蜜月| 岛国一区二区三区| 亚洲欧美一区二区三区久本道91| 91免费看`日韩一区二区| 亚洲精品免费看| 91精品国产综合久久福利软件| 日韩精品午夜视频| 久久综合久色欧美综合狠狠| 成人性生交大合| 国产精品久久久久影视| 一本色道久久综合精品竹菊| 亚洲午夜一区二区| 91精品国产综合久久香蕉麻豆| 日韩极品在线观看| 国产拍揄自揄精品视频麻豆| 91丨九色丨蝌蚪丨老版| 亚洲电影在线播放| 精品裸体舞一区二区三区| 国产 日韩 欧美大片| 亚洲卡通欧美制服中文| 在线综合亚洲欧美在线视频| 国产精品夜夜嗨| 一区二区三区在线看| 欧美一区中文字幕| 国产成人在线观看免费网站| 亚洲一区欧美一区| 久久综合精品国产一区二区三区| www.性欧美| 日韩成人av影视| 国产欧美精品一区二区三区四区 | 一区二区成人在线| 日韩女优视频免费观看| 国产91露脸合集magnet | 国产高清不卡二三区| 亚洲欧美国产三级| 欧美va亚洲va香蕉在线| 91在线云播放| 美女一区二区久久| 亚洲色图视频网| 精品福利在线导航| 91国偷自产一区二区开放时间| 美女视频网站黄色亚洲| 亚洲桃色在线一区| 国产女人18毛片水真多成人如厕| 欧美视频三区在线播放| 成人高清视频在线| 韩国成人在线视频| 天堂久久一区二区三区| 中文字幕日韩精品一区| 亚洲精品在线观看网站| 欧美日本乱大交xxxxx| 不卡视频一二三| 国产黄色91视频| 免费成人在线观看视频| 一区2区3区在线看| 亚洲欧美激情视频在线观看一区二区三区| 精品嫩草影院久久| 欧美一区二区三区四区视频| 欧美特级限制片免费在线观看| 成人午夜电影网站| 国产剧情一区在线| 毛片av一区二区| 同产精品九九九| 亚洲成年人影院| 亚洲综合无码一区二区| 夜色激情一区二区| 亚洲蜜桃精久久久久久久| 亚洲天堂免费看| 亚洲美女淫视频| 亚洲精选视频免费看| 亚洲欧美一区二区不卡| 日韩美女啊v在线免费观看| 欧美国产日韩在线观看| 国产日本一区二区| 中文字幕精品综合| 中文字幕亚洲不卡| 亚洲无线码一区二区三区| 亚洲成av人片在线| 日韩av电影免费观看高清完整版| 亚洲不卡一区二区三区| 视频一区中文字幕| 日本不卡一区二区三区| 精东粉嫩av免费一区二区三区| 国产又粗又猛又爽又黄91精品| 国产一区二区精品久久99| 国产91精品露脸国语对白| 菠萝蜜视频在线观看一区| aa级大片欧美| 欧美性猛交一区二区三区精品| 欧美三区在线观看| 91精品久久久久久久久99蜜臂| 欧美一区二区三区免费| 久久综合狠狠综合| 中文字幕精品一区| 亚洲综合一区二区| 久久精品国产秦先生| 国产不卡视频在线播放| 色婷婷国产精品久久包臀| 69精品人人人人| 国产亚洲人成网站| 亚洲精品成人悠悠色影视| 无码av免费一区二区三区试看| 国产综合久久久久久鬼色| 一本大道综合伊人精品热热| 在线不卡的av| 国产女主播在线一区二区| 亚洲国产日韩av| 国产精品一区二区在线播放| 色呦呦日韩精品| 欧美大黄免费观看| 亚洲天堂免费看| 经典三级一区二区| 色视频一区二区| 精品久久99ma| 亚洲夂夂婷婷色拍ww47 | 色天天综合久久久久综合片| 日韩欧美的一区二区| 亚洲免费观看视频| 国产自产v一区二区三区c| 欧美性猛交xxxx乱大交退制版| 久久综合久久综合久久综合| 亚洲午夜久久久| 国产福利视频一区二区三区| 欧美高清dvd| 亚洲三级理论片| 懂色av一区二区三区免费观看 | 91婷婷韩国欧美一区二区| 2024国产精品| 爽爽淫人综合网网站| 97精品国产露脸对白| 久久亚洲综合色一区二区三区| 亚洲图片自拍偷拍| 91在线视频官网| 久久久国产午夜精品| 免费观看日韩av| 欧美日韩中文精品| 亚洲视频网在线直播| thepron国产精品| 久久久噜噜噜久久中文字幕色伊伊| 亚洲第一电影网| 欧美日韩一区高清| 亚洲人精品一区| 91在线免费视频观看| 国产精品视频在线看| 国产一区二区三区四区五区美女| 91麻豆精品国产自产在线 | 亚洲高清免费在线| 在线观看免费一区| 亚洲色欲色欲www在线观看| 成人自拍视频在线| 欧美激情一区二区三区| 激情欧美一区二区三区在线观看| 91精品国产福利| 日韩电影一区二区三区四区| 欧美日韩国产电影| 日韩av在线发布| 欧美一区二区三区四区久久| 视频一区二区三区中文字幕| 欧美巨大另类极品videosbest|