📄 main.lis
字号:
008E 10 push X
008F 7C0000 xcall _GET_INT1_NEW
0092 20 pop X
0093 531C mov [_get_int1_new],A
0095 .dbline 151
0095 ;
0095 ; if(get_int1_new==reg_int1_new && get_int1_new!=0x00)
0095 511C mov A,[_get_int1_new]
0097 3A1B cmp A,[_reg_int1_new]
0099 B00B jnz L10
009B 3C1C00 cmp [_get_int1_new],0
009E A006 jz L10
00A0 .dbline 152
00A0 ; {
00A0 .dbline 153
00A0 ; shouldstartms=TRUE;
00A0 551A01 mov [_shouldstartms],1
00A3 .dbline 154
00A3 ; }
00A3 800A xjmp L11
00A5 L10:
00A5 .dbline 156
00A5 ; else
00A5 ; {
00A5 .dbline 157
00A5 ; shouldstartms=FALSE;
00A5 551A00 mov [_shouldstartms],0
00A8 .dbline 158
00A8 ; reg_int1_new=get_int1_new;
00A8 5F1B1C mov [_reg_int1_new],[_get_int1_new]
00AB .dbline 159
00AB ; ms_timer=0x00;
00AB 551900 mov [_ms_timer],0
00AE .dbline 160
00AE ; }
00AE L11:
00AE .dbline 162
00AE ; //MOUSE
00AE ; if(ms_timer==0x0A)
00AE 3C190A cmp [_ms_timer],10
00B1 B1BB jnz L12
00B3 .dbline 163
00B3 ; {
00B3 .dbline 164
00B3 ; get_ms0=INT1_GET_BUTT();
00B3 10 push X
00B4 7C0000 xcall _INT1_GET_BUTT
00B7 20 pop X
00B8 5318 mov [_get_ms0],A
00BA .dbline 165
00BA ; get_ms1=INT1_GET_X();
00BA 10 push X
00BB 7C0000 xcall _INT1_GET_X
00BE 20 pop X
00BF 5317 mov [_get_ms1],A
00C1 .dbline 166
00C1 ; get_ms2=INT1_GET_Y();
00C1 10 push X
00C2 7C0000 xcall _INT1_GET_Y
00C5 20 pop X
00C6 5316 mov [_get_ms2],A
00C8 .dbline 167
00C8 ; get_ms3=INT1_GET_Z();
00C8 10 push X
00C9 7C0000 xcall _INT1_GET_Z
00CC 20 pop X
00CD 5315 mov [_get_ms3],A
00CF .dbline 171
00CF ;
00CF ; // if(check_ms==get_ms4)//check sum end
00CF ; // {
00CF ; regx_ms0=get_ms0;
00CF 5118 mov A,[_get_ms0]
00D1 5403 mov [X+3],A
00D3 .dbline 172
00D3 ; regy_ms0=get_ms0;
00D3 5118 mov A,[_get_ms0]
00D5 5404 mov [X+4],A
00D7 .dbline 174
00D7 ;
00D7 ; report_packet.buttons = get_ms0 & 0x07;//0x07="0000 0111"
00D7 5118 mov A,[_get_ms0]
00D9 2107 and A,7
00DB 5329 mov [_report_packet],A
00DD .dbline 176
00DD ;
00DD ; xsign=regx_ms0 & 0x10;
00DD 5203 mov A,[X+3]
00DF 2110 and A,16
00E1 5401 mov [X+1],A
00E3 .dbline 177
00E3 ; if(xsign == 0x10)
00E3 3D0110 cmp [X+1],16
00E6 B01E jnz L14
00E8 .dbline 178
00E8 ; {
00E8 .dbline 179
00E8 ; if((get_ms1==0x01) || (get_ms1==0x02))
00E8 3C1701 cmp [_get_ms1],1
00EB A006 jz L18
00ED 3C1702 cmp [_get_ms1],2
00F0 B006 jnz L16
00F2 L18:
00F2 .dbline 180
00F2 ; {
00F2 .dbline 181
00F2 ; report_packet.x=0xff;
00F2 552AFF mov [_report_packet+1],-1
00F5 .dbline 182
00F5 ; }
00F5 801C xjmp L15
00F7 L16:
00F7 .dbline 188
00F7 ; // else if(get_ms1==0x02)
00F7 ; // {
00F7 ; // report_packet.x=0xff;
00F7 ; // }
00F7 ; else
00F7 ; {
00F7 .dbline 189
00F7 ; get_ms1=get_ms1-1;
00F7 7A17 dec [_get_ms1]
00F9 .dbline 190
00F9 ; get_ms1=get_ms1>>1;
00F9 70FB and F,-5
00FB 6E17 rrc [_get_ms1]
00FD .dbline 191
00FD ; get_ms1=get_ms1|0x80;
00FD 2E1780 or [_get_ms1],-128
0100 .dbline 194
0100 ; // if((get_ms1>=0xf0) && (get_ms1<=0xff))
0100 ; // {
0100 ; report_packet.x=get_ms1;
0100 5F2A17 mov [_report_packet+1],[_get_ms1]
0103 .dbline 200
0103 ; // }
0103 ; // else
0103 ; // {
0103 ; // report_packet.x=0xf0;
0103 ; // }
0103 ; }
0103 .dbline 201
0103 ; }
0103 800E xjmp L15
0105 L14:
0105 .dbline 203
0105 ; else// xsign!=0x10
0105 ; { //clear the high bit start
0105 .dbline 204
0105 ; get_ms1 = get_ms1 >>1;//cut the first bit
0105 70FB and F,-5
0107 6E17 rrc [_get_ms1]
0109 .dbline 205
0109 ; get_ms1 = get_ms1 <<1;//
0109 6517 asl [_get_ms1]
010B .dbline 206
010B ; get_ms1 = get_ms1 >>1;//cut the last bit
010B 70FB and F,-5
010D 6E17 rrc [_get_ms1]
010F .dbline 211
010F ; //clear the high bit end
010F ;
010F ; // if((get_ms1>=0x00) && (get_ms1<=0x1f))
010F ; // {
010F ; report_packet.x=get_ms1;
010F 5F2A17 mov [_report_packet+1],[_get_ms1]
0112 .dbline 217
0112 ; // }
0112 ; // else
0112 ; // {
0112 ; // report_packet.x=0x1f;
0112 ; // }
0112 ; }// xsign
0112 L15:
0112 .dbline 219
0112 ;
0112 ; ysign=regy_ms0 & 0x20;
0112 5204 mov A,[X+4]
0114 2120 and A,32
0116 5402 mov [X+2],A
0118 .dbline 220
0118 ; if(ysign != 0x20)
0118 3D0220 cmp [X+2],32
011B A01E jz L22
011D .dbline 221
011D ; {
011D .dbline 222
011D ; if(get_ms2==0x00)
011D 3C1600 cmp [_get_ms2],0
0120 B006 jnz L24
0122 .dbline 223
0122 ; {
0122 .dbline 224
0122 ; report_packet.y=get_ms2;
0122 5F2B16 mov [_report_packet+2],[_get_ms2]
0125 .dbline 225
0125 ; }
0125 8035 xjmp L23
0127 L24:
0127 .dbline 227
0127 ; else
0127 ; {
0127 .dbline 228
0127 ; get_ms2=get_ms2-1;
0127 7A16 dec [_get_ms2]
0129 .dbline 229
0129 ; get_ms2=~get_ms2;
0129 5116 mov A,[_get_ms2]
012B 73 cpl A
012C 5316 mov [_get_ms2],A
012E .dbline 230
012E ; get_ms2=get_ms2>>1;
012E 70FB and F,-5
0130 6E16 rrc [_get_ms2]
0132 .dbline 231
0132 ; get_ms2=get_ms2 | 0x80;
0132 2E1680 or [_get_ms2],-128
0135 .dbline 235
0135 ;
0135 ; // if((get_ms2>=0xf0) && (get_ms2<=0xff))
0135 ; // {
0135 ; report_packet.y=get_ms2;
0135 5F2B16 mov [_report_packet+2],[_get_ms2]
0138 .dbline 241
0138 ; // }
0138 ; // else
0138 ; // {
0138 ; // report_packet.y=0xf0;
0138 ; // }
0138 ; }
0138 .dbline 242
0138 ; }
0138 8022 xjmp L23
013A L22:
013A .dbline 244
013A ; else //ysign == 0x20
013A ; {//clear the high bit start
013A .dbline 245
013A ; if((get_ms2==0xff) || (get_ms2==0xfe))
013A 3C16FF cmp [_get_ms2],-1
013D A006 jz L30
013F 3C16FE cmp [_get_ms2],-2
0142 B006 jnz L28
0144 L30:
0144 .dbline 246
0144 ; {
0144 .dbline 247
0144 ; report_packet.y=0x01;
0144 552B01 mov [_report_packet+2],1
0147 .dbline 248
0147 ; }
0147 8013 xjmp L29
0149 L28:
0149 .dbline 250
0149 ; else
0149 ; {
0149 .dbline 251
0149 ; get_ms2 = get_ms2 >>1;//cut the first bit
0149 70FB and F,-5
014B 6E16 rrc [_get_ms2]
014D .dbline 252
014D ; get_ms2 = get_ms2 <<1;//
014D 6516 asl [_get_ms2]
014F .dbline 253
014F ; get_ms2=~get_ms2;
014F 5116 mov A,[_get_ms2]
0151 73 cpl A
0152 5316 mov [_get_ms2],A
0154 .dbline 256
0154 ;
0154 ;
0154 ; get_ms2 = get_ms2 >>1;//cut the last bit
0154 70FB and F,-5
0156 6E16 rrc [_get_ms2]
0158 .dbline 260
0158 ; //clear the high bit end
0158 ; // if((get_ms2>=0x01) && (get_ms2<=0x0f))
0158 ; // {
0158 ; report_packet.y=get_ms2;
0158 5F2B16 mov [_report_packet+2],[_get_ms2]
015B .dbline 266
015B ; // }
015B ; // else
015B ; // {
015B ; // report_packet.y=0x0f;
015B ; // }
015B ; }
015B L29:
015B .dbline 267
015B ; }// ysign
015B L23:
015B .dbline 269
015B ;
015B ; switch(get_ms3)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -