⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 实现2个ps/2接口转到1个USB接口功能
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -