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

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

?? https.asm

?? 基于Menuet OS的用戶應用程序及其系統應用程序(用戶:BMP/jpg圖片查看器 系統:CPU 狀態監控程序等)
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;                                                      ;
;    Tiny HTTP Server v 0.4 for MenuetOS               ;
;                                                      ;
;    License GPL / See file COPYING for details.       ;
;    Copyright 2003 Ville Turjanmaa                    ;
;                                                      ;
;    Compile with FASM for Menuet                      ;
;                                                      ;
;    Request /TinyStat for server statistics           ;
;    Request /TinyBoard for server message board       ;
;                                                      ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

version  equ  '0.4'

use32

                org     0x0

                db      'MENUET01'              ; 8 byte id
                dd      0x01                    ; required os
                dd      START                   ; program start
                dd      I_END                   ; program image size
                dd      0x400000                ; required amount of memory
                dd      0x1ffff
                dd      0,0                     ; reserved=no extended header

; 0x0+       - program image
; 0x1ffff    - stack
; 0x20000+   - message board
; 0x100000+  - requested file

filel:
   dd   0x0,0x0,50000/512,0x20000,0x70000
   db   '/rd/1/board.htm',0

files:
   dd   0x1,0x0,0x0,0x20000,0x70000
   db   '/rd/1/board.htm',0



START:                          ; start of execution

    mov  eax,58
    mov  ebx,filel
    int  0x40
    mov  [board_size],ebx
    cmp  eax,0
    je   board_found

    mov  [board_size],board_end-board
    mov  esi,board
    mov  edi,0x20000
    mov  ecx,[board_size]
    cld
    rep  movsb

   board_found:

    mov  eax,58
    mov  ebx,files
    mov  ecx,[board_size]
    mov  [files+8],ecx
    int  0x40

    mov  [status],-1
    mov  [last_status],-2
    call clear_input
    call draw_window            ; at first, draw the window

;    call ops

still:

    call check_status
    cmp  [status],4
    je   start_transmission

    cmp  [status],0
    jne  nnn
    cmp  [server_active],1
    jne  nnn
    call ops
   nnn:

    mov  eax,5
    mov  ebx,1
    int  0x40

    mov  eax,11
    int  0x40
    call check_events

    jmp  still


 reb:  ; boot

    mov  eax,18
    mov  ebx,1
    int  0x40

    jmp  $


last_status   dd   0x0

check_events:

    cmp  eax,1                  ; redraw request ?
    jz   red
    cmp  eax,2                  ; key in buffer ?
    jz   key
    cmp  eax,3                  ; button in buffer ?
    jz   button

    ret

red:                           ; redraw
    call draw_window
    ret

key:                           ; Keys are not valid at this part of the
    mov  eax,2                 ; loop. Just read it and ignore
    int  0x40
    ret

button:                         ; button

    mov  eax,17                 ; get id
    int  0x40

    cmp  ah,1                   ; close
    jnz  tst2
    mov  eax,53
    mov  ebx,8
    mov  ecx,[socket]
    int  0x40
    mov  eax,-1
    int  0x40
  tst2:

    cmp  ah,2                   ; button id=2 ?
    jnz  tst3
    ; open socket
  ops:
    mov  eax,53
    mov  ebx,5
    mov  ecx,80     ; local port # - http
    mov  edx,0      ; no remote port specified
    mov  esi,0      ; no remote ip specified
    mov  edi,0      ; PASSIVE open
    int  0x40
    mov  [socket], eax
    mov  [posy],1
    mov  [posx],0
    call check_for_incoming_data
    call clear_input
    call draw_data
    mov  [server_active],1
    call check_status
;    cmp  [status],0
;    je   reb
    ret
  tst3:

    cmp  ah,4                   ; button id=4 ?
    jnz  no4
    mov  [server_active],0
  close_socket:
    mov  eax,53
    mov  ebx,8
    mov  ecx,[socket]
    int  0x40
    mov  eax,5
    mov  ebx,2
    int  0x40
    mov  eax,53
    mov  ebx,8
    mov  ecx,[socket]
    int  0x40

    cmp  [server_active],1
    jne  no_re_open
    mov  eax,53
    mov  ebx,5
    mov  ecx,80     ; local port # - http
    mov  edx,0      ; no remote port specified
    mov  esi,0      ; no remote ip specified
    mov  edi,0      ; PASSIVE open
    int  0x40
    mov  [socket], eax
  no_re_open:

    mov  edi,input_text+256*15+1
    mov  [edi+2],dword ':  :'
    call set_time
    mov  edi,input_text+256*16+1
    mov  [edi+2],dword '.  .'
    call set_date

    mov  eax,[documents_served]
    mov  ecx,9
    mov  edi,input_text+256*15+12
    call set_value

    mov  eax,[bytes_transferred]
    mov  ecx,9
    mov  edi,input_text+256*16+12
    call set_value

    call draw_data

    mov  esp,0x1ffff
    jmp  still
  no4:

    cmp  ah,6                   ; read directory
    je   read_string

    ret


clear_input:

    mov  edi,input_text
    mov  eax,0
    mov  ecx,256*30
    cld
    rep  stosb

    ret


retries  dd 50

start_transmission:

    mov  [posy],1
    mov  [posx],0
    call clear_input
    mov  [retries],50

  wait_for_data:
    call check_for_incoming_data
    cmp  [input_text+256+1],dword 'GET '
    je   data_received
    cmp  [input_text+256+1],dword 'POST'
    je   data_received
    mov  eax,5
    mov  ebx,1
    int  0x40
    dec  [retries]
    jnz  wait_for_data
    jmp  no_http_request
  data_received:

    mov  eax,0x100000
    mov  ebx,0x2f0000 / 512
    call read_file

    call wait_for_empty_slot
    call send_header

    mov  [filepos],0x100000
    mov  [fileadd],700

    call check_status
    call draw_data

  newblock:

    call wait_for_empty_slot

    mov  edx,[fileadd]
    cmp  edx,[file_left]
    jbe  file_size_ok
    mov  edx,[file_left]
  file_size_ok:
    sub  [file_left],edx

    ; write to socket
    mov  eax,53
    mov  ebx,7
    mov  ecx,[socket]
    mov  esi,[filepos]
    int  0x40

    mov  eax,esi
    add  eax,edx
    sub  eax,0x100000
    call display_progress

    mov  edx,[fileadd]
    add  [filepos],edx

    cmp  [file_left],0
    jg   newblock

  no_http_request:

    jmp  close_socket


filepos   dd  0x100000
fileadd   dd  0x1
filesize  dd  0x0
file_left dd  0x0


wait_for_empty_slot:

    pusha

  wait_more:

;    rdtsc
;    mov  ecx,eax
;    add  ecx,1000000
;   wr:
;    rdtsc
;    cmp  eax,ecx
;    jb   wr

    mov  eax,5
    mov  ebx,1
    int  0x40

    mov  eax,11
    int  0x40
    call check_events

    mov  eax,53
    mov  ebx,255
    mov  ecx,103
    int  0x40

    cmp  eax,0
    je   no_wait_more

    jmp  wait_more

  no_wait_more:

    popa
    ret




display_progress:

  pusha

  mov  edi,eax

  mov  eax,13
  mov  ebx,115*65536+8*6
  mov  ecx,178*65536+10
  mov  edx,0xffffff
  int  0x40

  mov  eax,47
  mov  ebx,8*65536
  mov  ecx,edi
  mov  edx,115*65536+178
  mov  esi,0x000000
  int  0x40

  popa
  ret


send_header:

    pusha

    mov   eax,53                  ; send response and file length
    mov   ebx,7
    mov   ecx,[socket]
    mov   edx,h_len-html_header
    mov   esi,html_header
    int   0x40

    mov   eax,53                  ; send file type
    mov   ebx,7
    mov   ecx,[socket]
    mov   edx,[type_len]
    mov   esi,[file_type]
    int   0x40

    popa
    ret


fileinfo     dd  0,0,1,0x100000,0xf0000
getf         db  '/RD/1/'
             times 50 db 0
wanted_file: times 100 db 0

getflen      dd  6

make_room:

   pusha

   mov  edx,ecx

   mov  esi,0x20000
   add  esi,[board_size]
   mov  edi,esi
   add  edi,edx
   mov  ecx,[board_size]
   sub  ecx,board1-board
   inc  ecx
   std
   rep  movsb
   cld

   popa
   ret


from_i  dd  0x0
from_len dd 0x0

message dd 0x0
message_len dd 0x0

read_file:                          ; start of execution

    mov  [fileinfo+12],eax
    mov  [fileinfo+8],ebx

    mov  [file_type],unk
    mov  [type_len],unkl-unk
    mov  [filename+40*2+6],dword 'UNK '

    cmp  [input_text+256+1],dword 'POST'
    je   yes_new_message

    cmp  [input_text+256+11],dword 'oard'     ; server board message
    jne  no_server_message_2

  yes_new_message:

    mov  eax,58
    mov  ebx,filel
    int  0x40
    mov  [board_size],ebx

    cmp  [input_text+256+1],dword 'POST'
    jne  no_new_message

    mov  edi,bsmt
    call set_time
    mov  edi,bsmd
    call set_date

    call check_for_incoming_data

    mov  esi,input_text+256   ; from
   newfroms:
    inc  esi
    cmp  esi,input_text+256*20
    je   no_server_message_2
    cmp  [esi],dword 'from'
    jne  newfroms

    add  esi,5
    mov  [from_i],esi

    mov  edx,0
   name_new_len:
    cmp  [esi+edx],byte 13
    je   name_found_len
    cmp  [esi+edx],byte '&'
    je   name_found_len
    cmp  edx,1000
    je   name_found_len
    inc  edx
    jmp  name_new_len
   name_found_len:

    mov  [from_len],edx

    mov  esi,input_text+256
   newmessages:
    inc  esi
    cmp  esi,input_text+256*20
    je   no_server_message_2
    cmp  [esi],dword 'sage'
    jne  newmessages

    add  esi,5
    mov  [message],esi

    mov  edx,0
   new_len:
    inc  edx
    cmp  [esi+edx],byte ' '
    je   found_len
    cmp  [esi+edx],byte 13
    jbe  found_len
    cmp  edx,input_text+5000
    je   found_len
    jmp  new_len
   found_len:
    mov  [message_len],edx


    mov  edx,0

   change_letters:

    cmp  [esi+edx],byte '+'
    jne  no_space
    mov  [esi+edx],byte ' '
   no_space:

    cmp  [esi+edx+1],word '0D'
    jne  no_br
    mov  [esi+edx],dword '<br>'
    mov  [esi+edx+4],word '  '
  no_br:

    cmp  [esi+edx],byte '%'
    jne  no_ascii
    movzx eax,byte [esi+edx+2]
    sub  eax,48
    cmp  eax,9
    jbe  eax_ok
    sub  eax,7
   eax_ok:
    movzx ebx,byte [esi+edx+1]
    sub  ebx,48
    cmp  ebx,9
    jbe  ebx_ok
    sub  ebx,7
   ebx_ok:
    imul ebx,16
    add  ebx,eax
    mov  [esi+edx],bl
    mov  [esi+edx+1],word '  '
    add  edx,2
   no_ascii:

    inc  edx
    cmp  edx,[message_len]
    jbe  change_letters


    mov  edx,board1e-board1 + board2e-board2 + board3e-board3
    add  edx,[from_len]
    add  edx,[message_len]

    add  [board_size],edx

    mov  ecx,edx
    call make_room


    mov  esi,board1          ; first part
    mov  edi,0x20000
    add  edi,board1-board
    mov  ecx,edx
    cld
    rep  movsb

    mov  esi,[from_i]          ; name
    mov  edi,0x20000
    add  edi,board1-board + board1e-board1
    mov  ecx,[from_len]
    cld
    rep  movsb

    mov  esi,board2          ; middle part
    mov  edi,0x20000
    add  edi,board1-board + board1e-board1
    add  edi,[from_len]
    mov  ecx,board2e-board2
    cld
    rep  movsb

    mov  esi,[message]       ; message
    mov  edi,0x20000
    add  edi,board1-board + board1e-board1 +board2e-board2
    add  edi,[from_len]
    mov  ecx,[message_len]
    cld
    rep  movsb

    mov  esi,board3    ; end part
    mov  edi,0x20000
    add  edi,board1-board + board1e-board1 +board2e-board2
    add  edi,[from_len]
    add  edi,[message_len]
    mov  ecx,board3e-board3
    cld
    rep  movsb

    inc  [board_messages]

    mov  eax,[board_size]
    mov  [files+8],eax

    mov  eax,58
    mov  ebx,files
    int  0x40

  no_new_message:
    mov  esi,0x20000
    mov  edi,0x100000
    mov  ecx,[board_size]
    cld
    rep  movsb
    mov  ebx,[board_size]

    mov  [file_type],htm
    mov  [type_len],html-htm
    mov  [filename+40*2+6],dword 'HTM '

    jmp  file_loaded
  no_server_message_2:

    cmp  [input_text+256+9],dword 'ySta'     ; server message
    jne  no_server_message_1
    mov  edi,smt
    call set_time
    mov  edi,smd
    call set_date
    mov  eax,[documents_served]
    mov  ecx,9
    mov  edi,sms+21
    call set_value
    mov  eax,[bytes_transferred]
    mov  ecx,9
    mov  edi,smb+21
    call set_value
    mov  eax,[board_messages]
    mov  ecx,9
    mov  edi,smm+21
    call set_value
    mov  eax,[board_size]
    mov  ecx,9
    mov  edi,smz+21
    call set_value
    mov  esi,sm
    mov  edi,0x100000
    mov  ecx,sme-sm
    cld
    rep  movsb
    mov  ebx,sme-sm

    mov  [file_type],htm
    mov  [type_len],html-htm
    mov  [filename+40*2+6],dword 'HTM '

    jmp  file_loaded
  no_server_message_1:

    mov  esi,input_text+256+6
    cmp  [input_text+256+1],dword 'GET '
    jne  no_new_let
    mov  edi,wanted_file
    cld
  new_let:
    cmp  [esi],byte ' '
    je   no_new_let
    cmp  edi,wanted_file+30
    jge  no_new_let
    movsb
    jmp  new_let
  no_new_let:
    mov  [edi+0],dword 0
    mov  [edi+4],dword 0
    mov  [edi+8],dword 0

    cmp  esi,input_text+256+6
    jne  no_index
    mov  edi,wanted_file
    mov  [edi+0],dword  'inde'
    mov  [edi+4],dword  'x.ht'
    mov  [edi+8],byte   'm'
    mov  [edi+9],byte   0
    add  edi,9

    mov  [file_type],htm
    mov  [type_len],html-htm
    mov  [filename+40*2+6],dword 'HTM '

    jmp  html_file

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品嫩草影院久久| 欧美三级日韩三级| 精品福利一二区| 美女视频网站久久| 欧美成人一区二区三区片免费 | 欧美r级在线观看| 日本成人在线电影网| 欧美本精品男人aⅴ天堂| 精品一区二区三区在线播放| 精品国产乱子伦一区| 国产a视频精品免费观看| 一区二区中文视频| 精品视频一区二区三区免费| 日本人妖一区二区| 久久先锋影音av鲁色资源| 懂色av一区二区夜夜嗨| 亚洲精品美腿丝袜| 正在播放亚洲一区| 国产剧情在线观看一区二区| 亚洲丝袜另类动漫二区| 精品视频一区二区不卡| 久久99久久精品| 中文字幕一区二区三区精华液 | 欧美一区午夜精品| 国产制服丝袜一区| 亚洲激情自拍视频| 欧美videos中文字幕| 99国产精品久| 精品一区二区久久| 亚洲日本在线视频观看| 日韩三级视频在线看| 99久久精品国产毛片| 奇米亚洲午夜久久精品| 国产精品卡一卡二| 欧美精品第1页| 成a人片亚洲日本久久| 日本少妇一区二区| 亚洲日本在线a| 久久你懂得1024| 91国偷自产一区二区开放时间| 奇米综合一区二区三区精品视频| 国产精品美女久久福利网站| 欧美一区二区三区四区高清| 91香蕉视频黄| 国产乱码一区二区三区| 午夜精品福利一区二区三区av| 国产欧美一区二区精品久导航 | 欧美精品三级日韩久久| 成人午夜av影视| 久久99国内精品| 香蕉久久一区二区不卡无毒影院| 亚洲国产精品二十页| 91麻豆精品国产自产在线 | 成人sese在线| 麻豆国产91在线播放| 亚洲欧美激情一区二区| 久久久久高清精品| 精品少妇一区二区三区在线播放| 色老头久久综合| 成人综合在线观看| 久久99这里只有精品| 五月婷婷激情综合| 一区二区三区精品在线| 成人免费在线视频观看| 欧美大白屁股肥臀xxxxxx| 欧美日韩在线播放| 色欧美88888久久久久久影院| 国产福利电影一区二区三区| 国模无码大尺度一区二区三区| 天堂在线一区二区| 亚洲一区二区三区四区五区黄 | 青娱乐精品视频| 午夜电影一区二区| 亚洲成人精品一区| 自拍av一区二区三区| 综合色中文字幕| 中文字幕中文字幕一区| 国产精品的网站| 国产精品国产三级国产| 国产精品美女久久久久久久 | 亚洲成人免费电影| 亚洲一区在线看| 亚洲国产欧美在线| 亚洲国产成人va在线观看天堂| 亚洲永久免费视频| 一区二区成人在线视频| 一区二区三区在线免费播放| 亚洲图片欧美色图| 亚洲午夜精品网| 日韩国产成人精品| 久久国产麻豆精品| 国模大尺度一区二区三区| 国产成人免费在线| 成人av中文字幕| 91美女片黄在线观看91美女| 在线免费精品视频| 制服.丝袜.亚洲.中文.综合| 精品日韩在线一区| 国产欧美日本一区视频| 亚洲美女电影在线| 日本亚洲视频在线| 国产精品1024| 色哟哟欧美精品| 欧美高清www午色夜在线视频| 日韩免费观看高清完整版在线观看| www精品美女久久久tv| 中文字幕精品一区二区精品绿巨人| 欧美国产亚洲另类动漫| 亚洲精品伦理在线| 麻豆国产精品一区二区三区 | 国产精品女人毛片| 一区二区三区国产精华| 麻豆精品一区二区av白丝在线| 高清不卡一区二区| 欧美日韩国产一二三| 久久天堂av综合合色蜜桃网| 亚洲视频一二三区| 免费av成人在线| 成人福利视频网站| 91精品国产欧美一区二区18| 国产亚洲欧洲997久久综合| 亚洲女人****多毛耸耸8| 石原莉奈在线亚洲三区| 成人一区二区三区在线观看| 欧美三区免费完整视频在线观看| 精品国产乱码久久久久久久久 | 91碰在线视频| 欧美大片一区二区三区| 亚洲激情校园春色| 国产成人在线观看免费网站| 欧美中文字幕亚洲一区二区va在线 | 欧美午夜影院一区| 久久夜色精品一区| 五月天视频一区| www.激情成人| 久久午夜老司机| 亚洲高清中文字幕| 成人午夜短视频| 欧美成人欧美edvon| 亚洲精品国久久99热| 国产精品亚洲午夜一区二区三区| 欧美吻胸吃奶大尺度电影| 国产欧美精品国产国产专区| 婷婷久久综合九色综合绿巨人| www.成人网.com| 国产视频911| 国产一区在线看| 欧美一级理论片| 亚洲网友自拍偷拍| 91啪在线观看| 中文字幕一区二区三区视频| 国产乱子伦一区二区三区国色天香 | 亚洲va欧美va人人爽| av在线不卡免费看| 国产欧美日韩综合精品一区二区| 麻豆精品视频在线观看| 4438x成人网最大色成网站| 亚洲综合视频在线| 色999日韩国产欧美一区二区| 中文字幕制服丝袜成人av| 国产成人综合在线观看| 久久综合九色综合久久久精品综合 | 日本aⅴ精品一区二区三区| 欧美色男人天堂| 亚洲国产欧美日韩另类综合 | 午夜视频在线观看一区二区三区| 一本大道综合伊人精品热热 | 久久影院电视剧免费观看| 精品夜夜嗨av一区二区三区| 日韩精品一区二区三区老鸭窝| 青青国产91久久久久久| 91精品国产麻豆国产自产在线| 亚洲高清中文字幕| 欧美日韩一卡二卡三卡| 一二三区精品视频| 欧美日韩精品电影| 青青草一区二区三区| 欧美成人福利视频| 国产精品原创巨作av| 国产视频一区二区在线| yourporn久久国产精品| 亚洲黄色尤物视频| 在线免费观看日本一区| 五月激情六月综合| 日韩欧美专区在线| 国产一区二区精品久久91| 国产精品水嫩水嫩| 日本福利一区二区| 午夜电影一区二区三区| 精品美女一区二区| 成人av在线电影| 一区二区三区日韩| 91精品国产免费久久综合| 国产一区二区在线影院| 国产精品萝li| 欧美久久免费观看| 国产呦萝稀缺另类资源| 国产精品视频一二三区| 欧美日韩另类国产亚洲欧美一级| 裸体歌舞表演一区二区|