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

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

?? mouse.c

?? DOS下驅動源程序
?? C
字號:
/* MOUSE - Module of mouse functions. To use it, include the MOUSE.H file
 * 
 *
 *   MouseInit     -初始化鼠標
 *   GetMouseEvent  -得到最近的老鼠事件的信息 
 *   SetPtrVis      -設置指針的可見性隱蔽或顯示出
 *   SetPtrPos      - 指針的集合位置
 *   SetPtrShape    --指針的集合形狀在圖形模式,或*在文章模式的特性和顏色*
 *   GetPtrPos      - 得到指針位置和按鈕地位**下列結構被定義
 *
*/

#include <graph.h>
#include "mouse.h"


struct MOUINFO  ////各種各樣的鼠標使用了的內部的信息工作
{
    int      fExist, fInit, fGraph;
    short    xVirtual,  yVirtual;
    short    xActual,   yActual;
    short    xLast,     yLast;
    unsigned fsBtnLast, cBtn;
} static mi =
{
    1, 0, 0,
    0, 0,
    0, 0,
    0, 0,
    0, 0
};

#pragma optimize( "lge", off ) //與匯編程序

int MouseInit()  //-初始化鼠標
{
    struct videoconfig vc;
    char __far *pMode = (char __far *)0x00000449L; /* Address for mode */
    _getvideoconfig( &vc );//測試系統
    if( vc.mode == _HERCMONO )
    {
        _setvideomode( _TEXTMONO );
        *pMode = 6;
    }
    mi.fInit = 1;
    __asm
    {
        sub     ax, ax              ; Mouse function 0, reset mouse
        mov     mi.cBtn, ax         ; Assume no mouse buttons
        int     33h
        mov     mi.fExist, ax       ; Set existence flag for future calls
        or      ax, ax              ; If AX = 0, there is no mouse
        jz      nomouse
        mov     mi.cBtn, bx         ; Save number of mouse buttons for return
    nomouse:
    }
    if( !mi.fExist )
        return 0;

    /* 設置圖形標志 */
    if( vc.numxpixels )
    {
        mi.fGraph = 1;
        mi.yActual = vc.numypixels - 1;
        mi.xActual = vc.numxpixels - 1;
    }
    else
        mi.fGraph = 0;

  /*鼠標在 640 的一幅虛擬的屏幕上工作 x 象素由( 8 * textrows )*垂直的象素。
  由缺省,它假定 640  x  200 為25線模式。
 *你必須叫功能 8 為另外的屏幕大小調整。*/

    mi.xVirtual = 639;
    if( mi.fGraph )
        mi.yVirtual = vc.numypixels - 1;
    else
        mi.yVirtual = (vc.numtextrows << 3) - 1;

    /* Reset Hercules graphics mode and reset the height. */
    if( vc.mode == _HERCMONO )
    {
        _setvideomode( _HERCMONO );
        mi.xVirtual = 719;
    }
    __asm
    {
        mov     ax, 8               ; Set minimum and maximum vertical
        sub     cx, cx              ; Minimum is 0
        mov     dx, mi.yVirtual     ; Maximum is 8 * rows (or rows SHL 3)
        int     33h                 ; Adjust for 25, 30, 43, 50, or 60 lines

        mov     ax, 1               ; Turn on mouse pointer
        int     33h

        mov     ax, 3               ; Get initial position and button status
        int     33h
        mov     mi.xLast, cx        ; Save internally
        mov     mi.yLast, dx
        mov     mi.fsBtnLast, bx
    }
    return mi.cBtn;                 /* Return the number of mouse buttons */
}

/* GetMouseEvent -檢查看是否有一個老鼠事件。
如果事件*發生,更改事件結構。
-到事件結構的指針**回來: 1 如果事件, 0 如果沒有事件*/
int GetMouseEvent( EVENT __far *pEvent )
{
    int rtn;

    /* 確定鼠標是否安裝成功 */
    if( !mi.fInit )
        MouseInit();
    if( !mi.fExist )
        return 0;
    __asm
    {
        mov     ax, 3               ; Get Mouse position and button status
        int     33h
        sub     ax, ax              ; Assume no event

        cmp     cx, mi.xLast        ; Has column changed?
        jne     event
        cmp     dx, mi.yLast        ; Has row changed?
        jne     event
        cmp     bx, mi.fsBtnLast    ; Has button changed?
        je      noevent
event:
        mov     ax, 1               ; If something changed, event occurred
        mov     mi.xLast, cx        ; Update internal variables
        mov     mi.yLast, dx
        mov     mi.fsBtnLast, bx
noevent:
        mov     rtn, ax             ; Set return value
    }

    if( rtn )
    {
        /*如果圖形模式,以調整虛擬的老鼠位置實際*屏蔽坐標。*/
        if( mi.fGraph )
        {
            pEvent->x = (short)((long)mi.xLast * mi.xActual) / mi.xVirtual;
            pEvent->y = (short)((long)mi.yLast * mi.yActual) / mi.yVirtual;
        }
        /*如果文章模式,以1底調整虛擬的老鼠位置X,Y*/
        else
        {
            pEvent->x = (mi.xLast >> 3) + 1;
            pEvent->y = (mi.yLast >> 3) + 1;
        }
        pEvent->fsBtn = mi.fsBtnLast;
    }
    return rtn;
}


/*-得到不考慮的老鼠指針位置和按鈕地位*是否有一個事件。
 pEvent -到事件結構的指針**回來: 0 如果沒有老鼠,不那樣 */
int GetPtrPos( EVENT __far *pEvent )
{
      /* 確定鼠標是否安裝成功 */
    if( !mi.fInit )
        MouseInit();
    if( !mi.fExist )
        return 0;

    __asm
    {
        mov     ax, 3               ; Get Mouse position and button status
        int     33h
        les     di, pEvent
        mov     es:pEvent[di].x, cx
        mov     es:pEvent[di].y, dx
        mov     es:pEvent[di].fsBtn, bx
    }

    /*如果圖形模式,以調整虛擬的鼠標位置實際坐標位置。*/
    if( mi.fGraph )
    {
        pEvent->x = (short)((long)pEvent->x * mi.xActual) / mi.xVirtual;
        pEvent->y = (short)((long)pEvent->y * mi.yActual) / mi.yVirtual;
    }
     /*如果文章模式,以1底調整虛擬的老鼠位置X,Y*/
    else
    {
        pEvent->x >>= 3;
        pEvent->y >>= 3;
        pEvent->x++;
        pEvent->y++;
    }
    return 1;
}

/*集合指針可見性。
狀態-顯示出或隱蔽**回來: 0 如果沒有老鼠,不那樣 1 */
int SetPtrVis( PTRVIS pv )
{
      /* 確定鼠標是否安裝成功 */
    if( !mi.fInit )
        MouseInit();
    if( !mi.fExist )
        return 0;

    __asm
    {
        mov ax, pv                  ; Show or hide mouse pointer
        int 33h
    }
}

/* SetPtrPos -設定鼠標指針位置

 * Return: 0 if no mouse, otherwise 1
 */
int SetPtrPos( short x, short y )
{
     /* 確定鼠標是否安裝成功 */
    if( !mi.fInit )
        MouseInit();
    if( !mi.fExist )
        return 0;

    /*如果圖形模式,以調整虛擬的鼠標位置實際坐標位置。 */
    if( mi.fGraph )
    {
        x = (short)((long)x * mi.xActual) / mi.xVirtual;
        y = (short)((long)y * mi.yActual) / mi.yVirtual;
    }
     /*如果文章模式,以1底調整虛擬的老鼠位置X,Y*/
    else
    {
        x--;
        y--;
        x <<= 3;
        y <<= 3;
    }

    __asm
    {
        mov     ax, 4               ; Set mouse position
        mov     cx, x
        mov     dx, y
        int     33h
    }
    return 1;
}


int SetPtrShape( PTRSHAPE __far *ps )  //得到指針位置和按鈕地位
{
      /* 確定鼠標是否安裝成功 */
    if( !mi.fInit )
        MouseInit();
    if( !mi.fExist )
        return 0;

     /*如果圖形模式,以調整虛擬的老鼠位置實際*屏蔽坐標。*/
    if( mi.fGraph )
    {
        __asm
        {
            les     di, ps
            mov     bx, es:[di].g.xHot      ; Load hot spot offsets
            mov     cx, es:[di].g.yHot
            mov     dx, di
            add     dx, 4

            mov     ax, 9                   ; Set graphics pointer
            int     33h
        }
    }
    else /*如果文章模式,以1底調整虛擬的老鼠位置X,Y*/
    {
        __asm
        {
            les     di, ps
            mov     bx, 0                   ; Use software cursor
            mov     cl, es:[di].t.chScreen
            mov     ch, es:[di].t.atScreen
            mov     dl, es:[di].t.chCursor
            mov     dh, es:[di].t.atCursor

            mov     ax, 10                  ; Set text pointer
            int     33h
        }
    }
    return 1;
}

#pragma optimize( "", on )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久一级片| 成人国产精品免费网站| 欧美巨大另类极品videosbest | av网站免费线看精品| 中文幕一区二区三区久久蜜桃| 福利91精品一区二区三区| 国产精品嫩草影院com| 色av一区二区| 91影视在线播放| 亚洲色图19p| 欧美视频中文字幕| 日韩不卡一区二区| 久久久久97国产精华液好用吗| 成人一区在线观看| 亚洲午夜一区二区| 日韩久久精品一区| 福利一区二区在线| 亚洲成人中文在线| 久久久一区二区三区捆绑**| 成人黄色小视频| 亚洲va在线va天堂| 久久综合999| 色狠狠综合天天综合综合| 免费看欧美美女黄的网站| 久久嫩草精品久久久精品| 日本精品视频一区二区| 久久99精品久久久久久动态图| 中文字幕欧美国产| 欧美人体做爰大胆视频| 国产一区二区久久| 亚洲综合免费观看高清完整版在线 | 欧美在线免费观看亚洲| 蜜臀av一级做a爰片久久| 中文字幕中文在线不卡住| 亚洲日本在线天堂| 91精品午夜视频| 懂色av一区二区在线播放| 亚洲h动漫在线| 国产精品丝袜黑色高跟| 欧美高清dvd| 成人av电影观看| 久久精品国产精品青草| 亚洲激情一二三区| 国产欧美一二三区| 欧美一二三区在线观看| 色哟哟欧美精品| 国产精品主播直播| 美女性感视频久久| 亚洲一区二区三区小说| 国产精品色哟哟网站| 精品日韩在线观看| 欧美丰满嫩嫩电影| 欧洲精品在线观看| 成人av一区二区三区| 国产精品一级在线| 日韩国产成人精品| 一区二区三区四区不卡在线| 91在线视频观看| 国产在线一区二区综合免费视频| 亚洲伊人色欲综合网| 2014亚洲片线观看视频免费| 欧美亚洲丝袜传媒另类| 国产精品1区2区3区在线观看| 偷拍亚洲欧洲综合| 亚洲精品视频免费看| 久久精品视频一区| 欧美性生活久久| 国产91露脸合集magnet| 美女诱惑一区二区| 亚洲福利一区二区| 一区精品在线播放| 久久久久久久国产精品影院| 欧美日韩电影在线播放| 91玉足脚交白嫩脚丫在线播放| 免费在线看成人av| 亚洲国产精品久久人人爱蜜臀 | 欧美国产禁国产网站cc| 日韩视频一区在线观看| av电影在线观看一区| 国产精品亚洲第一区在线暖暖韩国| 亚洲国产aⅴ成人精品无吗| 中文字幕一区二区三区不卡 | 欧美午夜电影在线播放| av一区二区不卡| 成人午夜电影久久影院| 韩国精品久久久| 麻豆精品一区二区三区| 秋霞午夜av一区二区三区| 亚洲精品成a人| 亚洲精品久久7777| 中文字幕精品综合| 久久久99精品免费观看| 久久综合九色综合97_久久久| 日韩欧美国产综合| 精品动漫一区二区三区在线观看| 日韩精品中文字幕一区| 日韩精品在线一区二区| 久久这里都是精品| 久久久欧美精品sm网站| 亚洲精品一区二区三区在线观看 | 波多野结衣一区二区三区| 粉嫩在线一区二区三区视频| 福利一区福利二区| 色综合天天综合色综合av| 色综合天天综合色综合av| 欧美精品久久久久久久久老牛影院| 欧美久久免费观看| 日韩欧美高清在线| 久久久久9999亚洲精品| 中文字幕五月欧美| 亚洲夂夂婷婷色拍ww47| 亚洲观看高清完整版在线观看| 午夜精品久久久久久久蜜桃app| 日韩精品乱码免费| 国产一区二区三区香蕉| 成人av先锋影音| 在线看国产一区| 欧美一二三在线| 国产欧美日韩综合精品一区二区| 中文字幕在线免费不卡| 伊人开心综合网| 另类欧美日韩国产在线| 成人黄色综合网站| 欧美色图一区二区三区| 欧美第一区第二区| 18欧美亚洲精品| 日韩国产精品久久| 成人app在线观看| 国产成人综合在线播放| 欧美日韩三级视频| 久久色在线视频| 亚洲一区二区在线观看视频| 免费观看在线综合色| 成人99免费视频| 51久久夜色精品国产麻豆| 国产亚洲欧美一区在线观看| 婷婷六月综合亚洲| 国产风韵犹存在线视精品| 欧美精品三级在线观看| 日本一区二区三区国色天香 | 人人爽香蕉精品| 国产精品一区不卡| 日韩视频在线永久播放| 亚洲日本在线天堂| 极品少妇xxxx精品少妇偷拍| 91在线观看成人| 久久中文字幕电影| 性久久久久久久| 国内精品在线播放| 欧美日韩亚洲综合在线| 久久理论电影网| 亚洲图片一区二区| 成人高清视频在线观看| 精品国产乱子伦一区| 亚洲综合在线免费观看| 国产不卡免费视频| 欧美久久一区二区| 亚洲不卡av一区二区三区| 91视频在线观看免费| 国产日韩影视精品| 久久精品国产亚洲aⅴ| 欧美日韩在线综合| 亚洲黄色性网站| 成人黄色在线看| 国产清纯在线一区二区www| 日韩—二三区免费观看av| 色视频欧美一区二区三区| 中文字幕av不卡| 国产精品主播直播| 久久色成人在线| 日韩av不卡在线观看| 日本韩国一区二区三区| 国产亚洲综合色| 国产在线国偷精品免费看| 欧美精品丝袜久久久中文字幕| 综合精品久久久| 97久久精品人人做人人爽50路| 国产欧美视频一区二区| 国产高清不卡一区| 久久久久久毛片| 国产精品中文欧美| 精品日韩成人av| 九九精品一区二区| 久久亚洲一区二区三区四区| 久久99精品国产.久久久久久| 欧美一级久久久| 精品在线免费视频| 欧美一区二区三区日韩视频| 国产一区二区三区在线观看免费| 26uuu国产在线精品一区二区| 久久99深爱久久99精品| 26uuu另类欧美亚洲曰本| 国产福利91精品一区二区三区| 中文字幕不卡三区| 99久久精品免费精品国产| 亚洲精品高清在线观看| 欧美疯狂性受xxxxx喷水图片| 天天av天天翘天天综合网 | 成人久久久精品乱码一区二区三区| 国产精品久久久久久久久免费丝袜|