回 帖 发 新 帖 刷新版面

主题:[改编]鼠标程序

程序改编自[url]http://www.qbasic.com/files/wmouse.bas[/url]

DECLARE SUB MouseDriver (AX%, bx%, CX%, DX%, lb%, RB%)
DIM SHARED mouse$
mouse$ = SPACE$(57)
FOR I% = 1 TO 57
  READ A$
  H$ = CHR$(VAL("&H" + A$))
  MID$(mouse$, I%, 1) = H$
NEXT I%
DATA 55,89,E5,8B,5E,0C,8B,07,50,8B,5E,0A,8B,07,50,8B
DATA 5E,08,8B,0F,8B,5E,06,8B,17,5B,58,1E,07,CD,33,53
DATA 8B,5E,0C,89,07,58,8B,5E,0A,89,07,8B,5E,08,89,0F
DATA 8B,5E,06,89,17,5D,CA,08,00

SCREEN 12: COLOR 15
CLS
DO
  MouseDriver 3, bx%, CX%, DX%, lb%, RB%
  CIRCLE (CX%, DX%), 5, 12
  PSET (CX%, DX%), 12
  LOCATE 1, 1: PRINT lb%
  LOCATE 2, 1: PRINT RB%
  LOCATE 3, 1: PRINT CX%
  LOCATE 4, 1: PRINT DX%
  CIRCLE (CX%, DX%), 5, 0
  PSET (CX%, DX%), 0
LOOP

SUB MouseDriver (AX%, bx%, CX%, DX%, lb%, RB%)
DEF SEG = VARSEG(mouse$)
CALL Absolute(AX%, bx%, CX%, DX%, SADD(mouse$))
lb% = ((bx% AND 1) <> 0)
RB% = ((bx% AND 2) <> 0)
END SUB

回复列表 (共3个回复)

沙发

啊~!飞鸟啊``你小子变态啊``怎么可能呢```哦~!``上帝``你自己社计的吗``怎么~有那鼠标的语句呢`````在哪本书啊``快告术我啊````难道~有一些书介召特别的语句吗```???????????你一定要告术我啊```[em10]

板凳

汇编?

3 楼

这个表的WORD文本,我已经放在了 qbasic45@163.com ,密码是11111111 (8个1)

功能码     功能               入口参数               出口参数
-----------------------------------------------------------------------------
  0     鼠标器复位并取其状态    AX=0          若AX=-1,鼠标器安装成功;
                                               若AX=0,鼠标器安装失败;
                                               BX=鼠标按键数目。
-----------------------------------------------------------------------------
  1    显示鼠标光标             AX=1
-----------------------------------------------------------------------------
  2    鼠标光标不显示           AX=2
-----------------------------------------------------------------------------
  3    取按键状态和鼠标器位置   AX=3          若BX=0,没有键按下;
                                               若BX=1,左键按下;
                                               若BX=2,右键按下;
                                               若BX=3,左右键都按下。
                                               CX=光标X坐标;DX=光标Y坐标.
-----------------------------------------------------------------------------
  4    设置鼠标光标位置       AX=4
                              CX=光标X坐标
                              DX=光标Y坐标
-----------------------------------------------------------------------------
  5    取按键压下状态         AX=5            AX保存按键状态:
                              BX=0,取左按键    0,没有键按下;
                              BX=1,取右按键    1,左键按下;
                                                 2,右键按下;
                                                 3,左右键都按下。
                                               BX存取自上次以来该按键按下次数
                                               CX最后一次按下鼠标的X坐标
                                               DX最后一次按下鼠标的Y坐标
-----------------------------------------------------------------------------
  6    取按键放开状态         AX=6            AX保存按键状态:
                              BX=0,取左按键    0,没有键按下;
                              BX=1,取右按键    1,左键按下;
                                                 2,右键按下;
                                                 3,左右键都按下。
                                               BX存取自上次以来该按键按下次数
                                               CX最后一次按下鼠标的X坐标
                                               DX最后一次按下鼠标的Y坐标
-----------------------------------------------------------------------------
  7    设置光标水平位置最大值 AX=7
                              CX=光标X坐标最小值
                              DX=光标X坐标最大值
-----------------------------------------------------------------------------
  8    设置光标垂直位置最大值 AX=8
                              CX=光标Y坐标最小值
                              DX=光标Y坐标最大值
-----------------------------------------------------------------------------
  11    取鼠标器移动计数值    AX=11             CX=光标X方向移动值
                                                 DX=光标Y方向移动值
-----------------------------------------------------------------------------
  12    设置中断处理程序参数  AX=12
                              CX保存产生中断的条件:
                                1,光标移动时中断
                                2,左键按下时中断
                                4,左键松开时中断
                                8,右键按下时中断
                                16,右键松开时中断
                              DX保存程序地址
-----------------------------------------------------------------------------    
表中的AX,BX,CX,DX均为80X86 CPU中的寄存器。

我来回复

您尚未登录,请登录后再回复。点此登录或注册