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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vesa20.inc

?? MenuetOS是一個(gè)用匯編開發(fā)的32/64位PC操作系統(tǒng)
?? INC
?? 第 1 頁 / 共 2 頁
字號(hào):
   
   
     add edi,ecx            ; +(x+Xwin)
     add edi,ecx            ; +(x+Xwin)
     add edi,ecx            ; +(x+Xwin)
   
     cmp [ScreenBPP],byte 24   ; 24 or 32 bpp ? - x start
     jz dbpi24
     add edi,ecx            ; +(x+Xwin)
   dbpi24:
     add edi,[LFBAddress]   ; +AddrLFB
   
; edi:=(y+Ywin)*Screen_Y_multiplier+X*BytesPerPixel
; ebp:=(y+Ywin)*(ScreenXSize+1)+(x+Xwin)+AddrBuffer
   
; x size
   
     mov eax,[esp+4]        ; B [esp+4]
   
     mov ecx,eax            ; B
     add ecx,eax            ; +B
     add ecx,eax            ; +B
   
     cmp [ScreenBPP],byte 24   ; 24 or 32 bpp ? - x size
     jz dbpi243
     add ecx,eax            ; +B if 32bpp
     ; ecx:=B*BytesPerPixel, eax:=B
   dbpi243:
   
     mov ebx,[esp+0]        ; H
   
     ; check limits ?
   
     push eax
     push ecx
   
     mov eax,[0x3010]
   
     mov ecx,[eax+draw_data-0x3000+0]
     cmp ecx,0
     jnz dbcblimitlset
   
     mov ecx,[eax+draw_data-0x3000+4]
     cmp ecx,0
     jnz dbcblimitlset
   
     mov ecx,[eax+draw_data-0x3000+8]
     cmp ecx,[ScreenWidth]
     jnz dbcblimitlset
   
     mov ecx,[eax+draw_data-0x3000+12]
     cmp ecx,[ScreenHeight]
     jnz dbcblimitlset
   
     pop ecx
     pop eax
   
     push dword 0
   
     jmp dbcblimitlno
   
   dbcblimitlset:
   
     pop ecx ; B*BytesPerPixel
     pop eax ; B
   
     push dword 1
   
   dbcblimitlno:
   
   
     cmp [ScreenBPP],byte 24   ; 24 or 32 bpp ?
     jz dbpi24bit
     jmp dbpi32bit
   
   
   
   
; DRAWBAR 24 BBP
   
   
dbpi24bit:
   
     mov ecx,eax ; B
     cld
   
   dbnewpi:
   
     push ebx
     push edi
     push ecx ; B
   
     mov  ebx,[0x3010]
     movzx ebx,byte[ebx+0xe]
   
     cld
   
     dbnp24:
   
         mov dl,[ds:ebp]
   
         push eax
         push ecx
   
         cmp dl,bl
         jnz dbimp24no
   
         mov eax,[esp+8+3*4+16+4]    ; NoCurrentWin|NoCurrentWin
   
         mov ecx,[esp+5*4]
         cmp ecx,0
         jz dbimp24yes
   
         call voodoodbcplimit
         jnz  dbimp24no
   
       dbimp24yes:
   
         mov  [edi],ax
         shr  eax,16
         mov  [edi+2],al
   
       dbimp24no:
   
         pop ecx
         pop eax
   
         add edi,3                   ; ptrScreen+=3
         inc ebp
   
         dec  ecx
         jnz  dbnp24                 ; while ecx > 0
   
       ;
   
       mov eax,[esp+3*4+16+4]        ; color glide
       test eax,0x80000000
       jz nodbgl24
       cmp al,0
       jz nodbgl24
       dec eax
       mov [esp+3*4+16+4],eax
   
    nodbgl24:
   
     pop ecx ; ecx:=B
     pop edi
     pop ebx
   
     add edi,[BytesPerScanLine] ; ptrScreen+=BytesPerScanLine
   
     add ebp,[ScreenWidth] ;
     sub ebp, ecx ;
     inc ebp ; ptrBuffer:=ptrBuffer-B+BytesPerPixel+1
   
     dec ebx ; H--
     jz dbnonewpi ; H <> 0
     jmp dbnewpi
   
dbnonewpi:
   
     add esp,7*4
     pop ebp
   
     ret
   
   
; DRAWBAR 32 BBP
   
   
dbpi32bit:
   
     cld
     shr ecx,2
   
   dbnewpi32:
   
     push ebx
     push edi
     push ecx
   
     mov   ebx,[0x3010]
     movzx ebx,byte[ebx+0xe]
   
     cld
   
     dbnp32:
   
       mov dl,[ds:ebp]
   
       push eax
       push ecx
   
       cmp dl,bl
       jnz dbimp32no
   
       mov eax,[esp+8+3*4+16+4]
   
       mov ecx,[esp+5*4]
       cmp ecx,0
       jz dbimp32yes
   
       call voodoodbcplimit
       jnz  dbimp32no
   
     dbimp32yes:
   
       mov  [edi],ax
       shr  eax,16
       mov  [edi+2],al
   
     dbimp32no:
   
       pop ecx
       pop eax
   
       add edi,4                ; ptrScreen+=4
       inc ebp
   
       dec ecx
       jnz dbnp32
   
   dbnp32d:
   
     mov eax,[esp+12+16+4]      ; color glide
     test eax,0x80000000
     jz nodbgl32
     cmp al,0
     jz nodbgl32
     dec eax
     mov [esp+12+16+4],eax
   nodbgl32:
   
     pop ecx
     pop edi
     pop ebx
   
     add edi,[BytesPerScanLine]  ; ptrScreen+=BytesPerScanLine
   
     add ebp,[ScreenWidth]       ;
     sub ebp, ecx                ;
     inc ebp                     ; ptrBuffer:=ptrBuffer-B+BytesPerPixel+1
   
     dec ebx                     ; H--
     jz nodbnewpi32              ; H<>0
   
     jmp dbnewpi32
   
   nodbnewpi32:
   
     add esp,7*4
     pop ebp
   
     ret
   
   
   
voodoodbcplimit:
   
; ebp:=(y+Ywin)*(ScreenXSize+1)+(x+Xwin)+AddrBuffer
   
   
     pusha
   
     xor edx,edx
     mov eax,ebp
     mov ebx,[ScreenWidth] ; Screen_X_size
     add ebx,1 ; +1
     sub eax,WinMapAddress ; -AddrBuffer
     div ebx ;
     mov ebx,eax ; ebx:=Y
     mov eax,edx ; eax:=X
     call cplimit
   
     cmp  ecx,0
     jne  dbcpl12
     popa
     clc
     ret
   dbcpl12:
     popa
     stc
     ret
   
   
   
dbcplimit:
   
        pusha
   
        xor  edx,edx
        mov  ebx,[ScreenWidth]
        add  ebx,1
        sub  eax,WinMapAddress
        div  ebx
        mov  ebx,eax
        mov  eax,edx
        call cplimit
   
        cmp  ecx,0
        jne  dbcpl1
        popa
        clc
        ret
     dbcpl1:
        popa
        stc
        ret
   
   
   
   
   
   
;--------------vbe voodoo ------------------------------------------------
vesa20_drawbackground_tiled:

     call disable_mouse
   
     push ebp
     push eax
     push ebx
     push ecx
     push edx
   
     mov edx,dword [WinMapAddress-8] ; B
     add edx,dword [WinMapAddress-8] ; +B
     add edx,dword [WinMapAddress-8] ; +B
     push edx
   
     mov ebp,[draw_data+32+0] ; x start:=(x+Xwin)
     mov ebx,[draw_data+32+4] ; y start:=(y+Ywin)
   
     mov eax,[BytesPerScanLine]
     mul ebx
     xchg ebp, eax  ; BytesPerScanLine*(Ywin+y)
     add ebp, eax   ; +X
     add ebp, eax   ; +X
     add ebp, eax   ; +X
   
     cmp [ScreenBPP],byte 24 ; 24 or 32 bpp ? - x size
     jz bgl243
     add ebp,eax ; +X
   bgl243:
     add ebp,[LFBAddress]  ; +LFB
   
     ; ebp:=Y*BytesPerScanLine+X*BytesPerPixel+AddrLFB
   
     call calculate_edi
   
   
   dp3:                             ; MAIN LOOP
   
     cmp [edi+WinMapAddress],byte 1 ; ptrBuffer^<>byte(1)
     je  ybgp
   
     jmp nbgp
   
   ybgp:
   
     push eax
     push ebx
   
     mov ecx,dword [WinMapAddress-8]    ; B
     xor edx,edx                   ; edx:=0
     div ecx                       ; Xstart/B
   
     ; eax=Int(qn) edx:=Rem
   
     lea esi,[edx+edx*2]           ; esi:=edx*3
   
     mov ecx,dword [WinMapAddress-4]    ; ecx:=H
     mov eax,[esp+0]               ; eax:=Ystart
     xor edx,edx                   ;
     div ecx                       ; Ystart/H
   
     mov eax,edx                   ; eax:=Rem
     xor edx,edx                   ;
     mov ebx,[esp+8]               ; ebx:=B*3
     mul ebx                       ;
     add esi,eax                   ;
     mov eax,[esi+0x300000]
     and eax,0xffffff
   
     xchg edi, ebp
     stosw
     shr eax,16
     stosb
     xchg ebp, edi                 ; ebp+=3
     cmp [ScreenBPP],byte 24       ; 24 or 32 bpp ? - x size
     jz bgl24312
     inc ebp ; +1
   bgl24312:
   
     pop ebx
     pop eax
   
     jmp hook1
   
   nbgp:
     add ebp,3                     ; +3
     cmp [ScreenBPP],byte 24       ; 24 or 32 bpp ? - x size
     jz bgl243121
     inc ebp ; +1
   bgl243121:
   
   hook1:
   
     inc edi                       ; ptrBuffer++
     add esi,3                     ; ptrImage+=3
     inc eax
     cmp eax,[draw_data+32+8]         ; X > xend?
     jg nodp3
     jmp dp3
   
   nodp3:
   
     mov ebp,[draw_data+32+0]
   
     inc ebx
   
     mov  eax,[BytesPerScanLine]
     mul  ebx
     xchg ebp, eax                 ; BytesPerScanLine*(Ywin+y)
     add  ebp, eax                 ; +X
     add  ebp, eax                 ; +X=X*2
     add  ebp, eax                 ; +X=X*3
     cmp  [ScreenBPP],byte 24      ; 24 or 32 bpp ? - x size
     jz   bgl2431
     add  ebp,eax                  ; +X=X*4
   bgl2431:
     add ebp,[LFBAddress]          ; +LFB
   
     ; ebp:=Y*BytesPerScanLine+X*BytesPerPixel+AddrLFB
   
     call calculate_edi
   
     cmp ebx,[draw_data+32+12]
     jg  dp4
   
     jmp dp3
   
   dp4:
   
     add esp,4
   
     pop edx
     pop ecx
     pop ebx
     pop eax
     pop ebp
   
     ret
   
; ----------
   
   
   
vesa20_drawbackground_stretch:

     call  disable_mouse
   
     push ebp
     push eax
     push ebx
     push ecx
     push edx
   
     mov edx,dword [WinMapAddress-8] ; B
     add edx,dword [WinMapAddress-8] ; +B
     add edx,dword [WinMapAddress-8] ; +B
     push edx
   
     mov ebp,[draw_data+32+0] ; x start:=(x+Xwin)
     mov ebx,[draw_data+32+4] ; y start:=(y+Ywin)
   
     mov eax,[BytesPerScanLine]
     mul ebx
     xchg ebp, eax  ; BytesPerScanLine*(Ywin+y)
     add ebp, eax   ; +X
     add ebp, eax   ; +X
     add ebp, eax   ; +X
   
     cmp [ScreenBPP],byte 24 ; 24 or 32 bpp ? - x size
     jz  sbgl243
     add ebp,eax ; +X
   sbgl243:
     add ebp,[LFBAddress] ; +LFB
   
     ; ebp:=Y*BytesPerScanLine+X*BytesPerPixel+AddrLFB
   
     call calculate_edi
   
   
   sdp3:                            ; MAIN LOOP
   
     cmp [edi+WinMapAddress],byte 1     ; ptrBuffer^<>byte(1)
     je  sybgp
   
     jmp snbgp
   
   sybgp:
   
     push eax
     push ebx
   
     mov   eax,dword [WinMapAddress-8]
     xor   edx,edx
     mov   ebx,[esp+4]
     mul   ebx
     xor   edx,edx
     mov   ebx,[ScreenWidth]
     div   ebx
     lea   esi,[eax+eax*2]
     mov   eax,dword [WinMapAddress-4]
     xor   edx,edx
     mov   ebx,[esp+0]
     mul   ebx
     xor   edx,edx
     mov   ebx,[ScreenHeight]
     div   ebx
   
     xor   edx,edx
     mov   ebx,[esp+8]
     mul   ebx
     add   esi,eax
     mov   eax,[esi+0x300000]
     and   eax,0xffffff
   
     xchg edi, ebp
     stosw
     shr eax,16
     stosb
     xchg ebp, edi                 ; ebp+=3
     cmp [ScreenBPP],byte 24       ; 24 or 32 bpp ? - x size
     jz  sbgl24312
     inc ebp ; +1
   sbgl24312:
   
     pop ebx
     pop eax
   
     jmp shook1
   
   snbgp:
     add  ebp,3                     ; +3
     cmp [ScreenBPP],byte 24        ; 24 or 32 bpp ? - x size
     jz  sbgl243121
     inc ebp ; +1
   sbgl243121:
   
   shook1:
   
     inc edi                       ; ptrBuffer++
     add esi,3                     ; ptrImage+=3
     inc eax
     cmp eax,[draw_data+32+8]         ; X > xend?
     jg  snodp3
     jmp sdp3
   
   snodp3:
   
     mov ebp,[draw_data+32+0]
   
     inc ebx
   
     mov  eax,[BytesPerScanLine]
     mul  ebx
     xchg ebp, eax                 ; BytesPerScanLine*(Ywin+y)
     add  ebp, eax                 ; +X
     add  ebp, eax                 ; +X=X*2
     add  ebp, eax                 ; +X=X*3
     cmp  [ScreenBPP],byte 24      ; 24 or 32 bpp ? - x size
     jz   sbgl2431
     add  ebp,eax                  ; +X=X*4
   sbgl2431:
     add ebp,[LFBAddress]          ; +LFB
   
     ; ebp:=Y*BytesPerScanLine+X*BytesPerPixel+AddrLFB
   
     call calculate_edi
   
     cmp ebx,[draw_data+32+12]
     jg  sdp4
   
     jmp sdp3
   
   sdp4:
   
     add esp,4
   
     pop edx
     pop ecx
     pop ebx
     pop eax
     pop ebp
   
     ret
   
   
   
   
   

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美怡红院视频| 久久久国产精华| 国产精品久久久久久亚洲毛片 | 色综合久久88色综合天天免费| 久久久av毛片精品| 欧美丝袜第三区| 成人黄色网址在线观看| 欧美精彩视频一区二区三区| 国产aⅴ精品一区二区三区色成熟| 国产日韩精品久久久| 欧美日韩高清一区二区| 日韩精彩视频在线观看| 91麻豆精品国产91| 久久av资源网| 国产午夜精品美女毛片视频| 97久久精品人人澡人人爽| 一区二区高清在线| 欧美理论片在线| 国产美女精品一区二区三区| 国产精品私房写真福利视频| 99久久精品久久久久久清纯| 国产一区二区美女| 青青草视频一区| 国产精品免费免费| 久久只精品国产| 91麻豆蜜桃一区二区三区| av电影天堂一区二区在线观看| 国产精品伦理在线| 久久美女高清视频| 精品国内二区三区| av综合在线播放| 成人一区二区三区视频| 偷拍一区二区三区| 国产午夜精品在线观看| 精品伦理精品一区| 在线视频综合导航| 国产一区二区三区美女| 老司机午夜精品| 日本欧美大码aⅴ在线播放| 国产精品欧美精品| 中文一区二区完整视频在线观看| 欧美人伦禁忌dvd放荡欲情| 91国内精品野花午夜精品| 国产在线精品一区在线观看麻豆| 亚洲日本va午夜在线电影| 日韩欧美国产小视频| 91麻豆成人久久精品二区三区| www.在线成人| 91麻豆国产福利在线观看| 91成人免费在线视频| 欧美丝袜丝nylons| 69堂成人精品免费视频| 欧美一级久久久| 欧美亚洲日本国产| 在线观看91精品国产麻豆| 欧美一级日韩一级| 欧美日韩久久一区二区| 欧美一区二区三级| 久久综合色婷婷| 国产精品网站在线观看| 亚洲卡通动漫在线| 亚洲永久精品大片| 日本一区二区在线不卡| 中文字幕一区二区三区四区| 久久久www成人免费无遮挡大片| 欧美国产激情一区二区三区蜜月 | 一区二区三区在线播放| 亚洲综合一区二区三区| 日本va欧美va欧美va精品| 国产一区欧美一区| jlzzjlzz欧美大全| 91高清视频在线| 日韩欧美卡一卡二| 国产精品国产三级国产aⅴ入口 | 欧日韩精品视频| 日韩三级免费观看| 国产精品全国免费观看高清| 亚洲高清免费一级二级三级| 一区二区三区高清不卡| 日本va欧美va瓶| 不卡的av在线播放| 在线不卡a资源高清| 国产清纯在线一区二区www| 一区二区三区蜜桃网| 国产曰批免费观看久久久| 91蝌蚪porny| 欧美变态tickling挠脚心| 国产精品黄色在线观看| 日韩av二区在线播放| 不卡av在线网| 欧美一级电影网站| 亚洲欧美激情在线| 亚洲国产综合91精品麻豆| 国产在线精品一区二区| 欧美日韩在线免费视频| 8v天堂国产在线一区二区| 欧美激情综合网| 免费的国产精品| 色综合天天综合狠狠| 欧美在线免费播放| 国产日韩精品一区二区浪潮av| 天天色 色综合| 99久久精品免费观看| 久久久99精品久久| 首页国产丝袜综合| 91麻豆swag| 国产精品区一区二区三区| 久久成人18免费观看| 欧美性猛片aaaaaaa做受| 中文字幕免费在线观看视频一区| 日韩av电影免费观看高清完整版 | 91麻豆123| 国产午夜精品在线观看| 男男成人高潮片免费网站| 91国在线观看| 国产精品不卡在线观看| 国产精品一区在线观看你懂的| 99久久久免费精品国产一区二区| 欧美不卡一二三| 日韩av电影免费观看高清完整版 | 亚洲一区二区精品3399| 成av人片一区二区| 国产亚洲一区二区三区四区| 久久精品国内一区二区三区| 91精品国产色综合久久不卡蜜臀 | 国产精品一区二区你懂的| 91精品国产色综合久久ai换脸| 亚洲专区一二三| 日本精品一区二区三区高清| 中文字幕佐山爱一区二区免费| 大白屁股一区二区视频| 国产欧美日韩一区二区三区在线观看 | 久久综合狠狠综合久久综合88 | 91亚洲国产成人精品一区二三| 中文字幕巨乱亚洲| 粉嫩aⅴ一区二区三区四区| 国产午夜久久久久| 成人一道本在线| 亚洲欧洲成人精品av97| 97se亚洲国产综合自在线| 亚洲天堂久久久久久久| 91免费版pro下载短视频| 亚洲色图欧洲色图| 色哟哟精品一区| 亚洲宅男天堂在线观看无病毒| 在线免费观看日本欧美| 亚洲不卡一区二区三区| eeuss鲁片一区二区三区在线看| 国产欧美一区二区在线| 成人精品电影在线观看| 国产精品久久久久影院色老大| 99国产精品国产精品毛片| 亚洲精品国产第一综合99久久| 欧美在线一区二区三区| 午夜欧美电影在线观看| 91精品国产色综合久久ai换脸| 久久成人久久爱| 国产日韩欧美精品综合| 91碰在线视频| 亚洲一级二级三级在线免费观看| 欧美精三区欧美精三区| 精品中文字幕一区二区| 欧美色手机在线观看| 日本亚洲欧美天堂免费| 久久久综合视频| 91丨九色丨黑人外教| 午夜免费欧美电影| 久久综合99re88久久爱| 91在线你懂得| 日韩高清不卡一区二区三区| 久久―日本道色综合久久| 99这里只有精品| 天堂久久一区二区三区| 久久久精品国产99久久精品芒果| 91麻豆免费看片| 九九国产精品视频| 亚洲色大成网站www久久九九| 91精品国产综合久久精品图片| 国产一区二区三区四| 亚洲女人的天堂| 日韩欧美国产1| av亚洲精华国产精华精| 日韩国产欧美视频| 国产精品嫩草99a| 欧美一二三区在线| 成人动漫中文字幕| 日本免费新一区视频| 国产精品高潮呻吟| 日韩欧美国产wwwww| 日本道精品一区二区三区| 国产一区二区免费视频| 亚洲 欧美综合在线网络| 欧美国产禁国产网站cc| 日韩一区二区三区电影在线观看| aa级大片欧美| 国产一区二区免费在线| 日日夜夜精品视频天天综合网| 一色屋精品亚洲香蕉网站| 日韩欧美在线观看一区二区三区| 91蜜桃免费观看视频|