📄 mousealgorithm.lis
字号:
04A0 7A00 dec [_signZCount]
04A2 .dbline 253
04A2 ; }
04A2 .dbline 254
04A2 8004 xjmp L61
04A4 L60:
04A4 .dbline 254
04A4 ; } else {
04A4 .dbline 255
04A4 ; signZCount = 0;
04A4 550000 mov [_signZCount],0
04A7 .dbline 256
04A7 ; }
04A7 L61:
04A7 .dbline 257
04A7 ; lastSignY = signY;
04A7 5F0000 mov [_lastSignY],[_signY]
04AA .dbline 258
04AA ; lastSignZ = signZ;
04AA 5F0000 mov [_lastSignZ],[_signZ]
04AD .dbline 260
04AD ;
04AD ; if (mode!=8) {//Unless mode is "OFF" (on the desk)...
04AD 3C0008 cmp [_mode],8
04B0 A1D9 jz L64
04B2 .dbline 260
04B2 .dbline 261
04B2 ; if ((signYCount<ENTER_STOP_MODE) && (signZCount<ENTER_STOP_MODE)) {//If sign changes are happening
04B2 3C0032 cmp [_signYCount],50
04B5 D009 jnc L66
04B7 X29:
04B7 3C0032 cmp [_signZCount],50
04BA D004 jnc L66
04BC X30:
04BC .dbline 261
04BC .dbline 263
04BC ; //at a high frequency, enter stop mode
04BC ; mode = 7;
04BC 550007 mov [_mode],7
04BF .dbline 264
04BF ; }
04BF L66:
04BF .dbline 265
04BF 5040 mov A,64
04C1 1203 sub A,[_gyroTempY+3]
04C3 501F mov A,31
04C5 1A02 sbb A,[_gyroTempY+2]
04C7 5000 mov A,0
04C9 1A01 sbb A,[_gyroTempY+1]
04CB 5100 mov A,[_gyroTempY]
04CD 3180 xor A,-128
04CF 5300 mov [__rX],A
04D1 5080 mov A,(0 ^ 0x80)
04D3 1A00 sbb A,[__rX]
04D5 C019 jc L70
04D7 X31:
04D7 5040 mov A,64
04D9 1203 sub A,[_gyroTempZ+3]
04DB 501F mov A,31
04DD 1A02 sbb A,[_gyroTempZ+2]
04DF 5000 mov A,0
04E1 1A01 sbb A,[_gyroTempZ+1]
04E3 5100 mov A,[_gyroTempZ]
04E5 3180 xor A,-128
04E7 5300 mov [__rX],A
04E9 5080 mov A,(0 ^ 0x80)
04EB 1A00 sbb A,[__rX]
04ED D00E jnc L68
04EF X32:
04EF L70:
04EF .dbline 265
04EF ; if ((gyroTempY>SPEED_5) || (gyroTempZ>SPEED_5)) {// Test for "MEDIUM" mode
04EF .dbline 266
04EF ; if (lastMode==7) {//Not allowed if coming straight from "stop mode"
04EF 3C0007 cmp [_lastMode],7
04F2 B006 jnz L71
04F4 .dbline 266
04F4 .dbline 267
04F4 ; mode=6;
04F4 550006 mov [_mode],6
04F7 .dbline 268
04F7 8004 xjmp L72
04F9 L71:
04F9 .dbline 268
04F9 ; } else {
04F9 .dbline 269
04F9 ; mode=5;
04F9 550005 mov [_mode],5
04FC .dbline 270
04FC ; }
04FC L72:
04FC .dbline 271
04FC ; }
04FC L68:
04FC .dbline 272
04FC 500A mov A,10
04FE 3A00 cmp A,[_signYCount]
0500 C007 jc L75
0502 X33:
0502 500A mov A,10
0504 3A00 cmp A,[_signZCount]
0506 D180 jnc L73
0508 X34:
0508 L75:
0508 .dbline 272
0508 ; if ((signYCount>EXIT_STOP_MODE) || (signZCount>EXIT_STOP_MODE)) {// || (lastMode!=7)) {
0508 .dbline 273
0508 ; gyroTempY = gyroY;
0508 5F0000 mov [_gyroTempY],[_gyroY]
050B 5F0101 mov [_gyroTempY+1],[_gyroY+1]
050E 5F0202 mov [_gyroTempY+2],[_gyroY+2]
0511 5F0303 mov [_gyroTempY+3],[_gyroY+3]
0514 .dbline 274
0514 ; gyroTempZ = gyroZ;
0514 5F0000 mov [_gyroTempZ],[_gyroZ]
0517 5F0101 mov [_gyroTempZ+1],[_gyroZ+1]
051A 5F0202 mov [_gyroTempZ+2],[_gyroZ+2]
051D 5F0303 mov [_gyroTempZ+3],[_gyroZ+3]
0520 .dbline 275
0520 ; if (gyroTempY<0) {gyroTempY=-gyroTempY;}
0520 5103 mov A,[_gyroTempY+3]
0522 1100 sub A,0
0524 5102 mov A,[_gyroTempY+2]
0526 1900 sbb A,0
0528 5101 mov A,[_gyroTempY+1]
052A 1900 sbb A,0
052C 5100 mov A,[_gyroTempY]
052E 3180 xor A,-128
0530 1980 sbb A,(0 ^ 0x80)
0532 D01D jnc L76
0534 X35:
0534 .dbline 275
0534 .dbline 275
0534 5103 mov A,[_gyroTempY+3]
0536 73 cpl A
0537 11FF sub A,-1
0539 5303 mov [_gyroTempY+3],A
053B 5102 mov A,[_gyroTempY+2]
053D 73 cpl A
053E 19FF sbb A,-1
0540 5302 mov [_gyroTempY+2],A
0542 5101 mov A,[_gyroTempY+1]
0544 73 cpl A
0545 19FF sbb A,-1
0547 5301 mov [_gyroTempY+1],A
0549 5100 mov A,[_gyroTempY]
054B 73 cpl A
054C 19FF sbb A,-1
054E 5300 mov [_gyroTempY],A
0550 .dbline 275
0550 L76:
0550 .dbline 276
0550 ; if (gyroTempZ<0) {gyroTempZ=-gyroTempZ;}
0550 5103 mov A,[_gyroTempZ+3]
0552 1100 sub A,0
0554 5102 mov A,[_gyroTempZ+2]
0556 1900 sbb A,0
0558 5101 mov A,[_gyroTempZ+1]
055A 1900 sbb A,0
055C 5100 mov A,[_gyroTempZ]
055E 3180 xor A,-128
0560 1980 sbb A,(0 ^ 0x80)
0562 D01D jnc L78
0564 X36:
0564 .dbline 276
0564 .dbline 276
0564 5103 mov A,[_gyroTempZ+3]
0566 73 cpl A
0567 11FF sub A,-1
0569 5303 mov [_gyroTempZ+3],A
056B 5102 mov A,[_gyroTempZ+2]
056D 73 cpl A
056E 19FF sbb A,-1
0570 5302 mov [_gyroTempZ+2],A
0572 5101 mov A,[_gyroTempZ+1]
0574 73 cpl A
0575 19FF sbb A,-1
0577 5301 mov [_gyroTempZ+1],A
0579 5100 mov A,[_gyroTempZ]
057B 73 cpl A
057C 19FF sbb A,-1
057E 5300 mov [_gyroTempZ],A
0580 .dbline 276
0580 L78:
0580 .dbline 277
0580 5060 mov A,96
0582 1203 sub A,[_gyroTempY+3]
0584 506D mov A,109
0586 1A02 sbb A,[_gyroTempY+2]
0588 5000 mov A,0
058A 1A01 sbb A,[_gyroTempY+1]
058C 5100 mov A,[_gyroTempY]
058E 3180 xor A,-128
0590 5300 mov [__rX],A
0592 5080 mov A,(0 ^ 0x80)
0594 1A00 sbb A,[__rX]
0596 C019 jc L82
0598 X37:
0598 5060 mov A,96
059A 1203 sub A,[_gyroTempZ+3]
059C 506D mov A,109
059E 1A02 sbb A,[_gyroTempZ+2]
05A0 5000 mov A,0
05A2 1A01 sbb A,[_gyroTempZ+1]
05A4 5100 mov A,[_gyroTempZ]
05A6 3180 xor A,-128
05A8 5300 mov [__rX],A
05AA 5080 mov A,(0 ^ 0x80)
05AC 1A00 sbb A,[__rX]
05AE D006 jnc L80
05B0 X38:
05B0 L82:
05B0 .dbline 277
05B0 ; if ((gyroTempY>SPEED_0) || (gyroTempZ>SPEED_0)) {
05B0 .dbline 278
05B0 ; mode=0;
05B0 550000 mov [_mode],0
05B3 .dbline 279
05B3 80D3 xjmp L81
05B5 L80:
05B5 .dbline 279
05B5 50C0 mov A,-64
05B7 1203 sub A,[_gyroTempY+3]
05B9 505D mov A,93
05BB 1A02 sbb A,[_gyroTempY+2]
05BD 5000 mov A,0
05BF 1A01 sbb A,[_gyroTempY+1]
05C1 5100 mov A,[_gyroTempY]
05C3 3180 xor A,-128
05C5 5300 mov [__rX],A
05C7 5080 mov A,(0 ^ 0x80)
05C9 1A00 sbb A,[__rX]
05CB C019 jc L85
05CD X39:
05CD 50C0 mov A,-64
05CF 1203 sub A,[_gyroTempZ+3]
05D1 505D mov A,93
05D3 1A02 sbb A,[_gyroTempZ+2]
05D5 5000 mov A,0
05D7 1A01 sbb A,[_gyroTempZ+1]
05D9 5100 mov A,[_gyroTempZ]
05DB 3180 xor A,-128
05DD 5300 mov [__rX],A
05DF 5080 mov A,(0 ^ 0x80)
05E1 1A00 sbb A,[__rX]
05E3 D006 jnc L83
05E5 X40:
05E5 L85:
05E5 .dbline 279
05E5 ; } else if ((gyroTempY>SPEED_1) || (gyroTempZ>SPEED_1)) {
05E5 .dbline 280
05E5 ; mode=1;
05E5 550001 mov [_mode],1
05E8 .dbline 281
05E8 809E xjmp L84
05EA L83:
05EA .dbline 281
05EA 5020 mov A,32
05EC 1203 sub A,[_gyroTempY+3]
05EE 504E mov A,78
05F0 1A02 sbb A,[_gyroTempY+2]
05F2 5000 mov A,0
05F4 1A01 sbb A,[_gyroTempY+1]
05F6 5100 mov A,[_gyroTempY]
05F8 3180 xor A,-128
05FA 5300 mov [__rX],A
05FC 5080 mov A,(0 ^ 0x80)
05FE 1A00 sbb A,[__rX]
0600 C019 jc L88
0602 X41:
0602 5020 mov A,32
0604 1203 sub A,[_gyroTempZ+3]
0606 504E mov A,78
0608 1A02 sbb A,[_gyroTempZ+2]
060A 5000 mov A,0
060C 1A01 sbb A,[_gyroTempZ+1]
060E 5100 mov A,[_gyroTempZ]
0610 3180 xor A,-128
0612 5300 mov [__rX],A
0614 5080 mov A,(0 ^ 0x80)
0616 1A00 sbb A,[__rX]
0618 D006 jnc L86
061A X42:
061A L88:
061A .dbline 281
061A ; } else if ((gyroTempY>SPEED_2) || (gyroTempZ>SPEED_2)) {
061A .dbline 282
061A ; mode=2;
061A 550002 mov [_mode],2
061D .dbline 283
061D 8069 xjmp L87
061F L86:
061F .dbline 283
061F 5080 mov A,-128
0621 1203 sub A,[_gyroTempY+3]
0623 503E mov A,62
0625 1A02 sbb A,[_gyroTempY+2]
0627 5000 mov A,0
0629 1A01 sbb A,[_gyroTempY+1]
062B 5100 mov A,[_gyroTempY]
062D 3180 xor A,-128
062F 5300 mov [__rX],A
0631 5080 mov A,(0 ^ 0x80)
0633 1A00 sbb A,[__rX]
0635 C019 jc L91
0637 X43:
0637 5080 mov A,-128
0639 1203 sub A,[_gyroTempZ+3]
063B 503E mov A,62
063D 1A02 sbb A,[_gyroTempZ+2]
063F 5000 mov A,0
0641 1A01 sbb A,[_gyroTempZ+1]
0643 5100 mov A,[_gyroTempZ]
0645 3180 xor A,-128
0647 5300 mov [__rX],A
0649 5080 mov A,(0 ^ 0x80)
064B 1A0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -