📄 mp3player.lis
字号:
0144 20920000 sts _Key,R2
0148 .dbline 87
0148 ; }
0148 L9:
0148 .dbline 91
0148 ;
0148 ; // Up
0148 ;
0148 ; if ((Key == 0x02) || (Key == 0x82))
0148 80910000 lds R24,_Key
014C 8230 cpi R24,2
014E 29F0 breq L23
0150 80910000 lds R24,_Key
0154 8238 cpi R24,130
0156 09F0 breq X3
0158 4CC0 xjmp L21
015A X3:
015A L23:
015A .dbline 92
015A ; {
015A .dbline 93
015A ; if (Key == 0x02) FilePtr--;
015A 80910000 lds R24,_Key
015E 8230 cpi R24,2
0160 19F4 brne L24
0162 .dbline 93
0162 C501 movw R24,R10
0164 0197 sbiw R24,1
0166 5C01 movw R10,R24
0168 L24:
0168 .dbline 94
0168 ; if (Key == 0x82) FilePtr -= SONGPAGE;
0168 80910000 lds R24,_Key
016C 8238 cpi R24,130
016E 19F4 brne L26
0170 .dbline 94
0170 C501 movw R24,R10
0172 0597 sbiw R24,5
0174 5C01 movw R10,R24
0176 L26:
0176 .dbline 95
0176 ; if (FilePtr < 0) FilePtr = 0;
0176 C501 movw R24,R10
0178 8030 cpi R24,0
017A E0E0 ldi R30,0
017C 9E07 cpc R25,R30
017E 14F4 brge L28
0180 .dbline 95
0180 AA24 clr R10
0182 BB24 clr R11
0184 L28:
0184 .dbline 96
0184 ; if ((FilePtr / SONGPAGE) != Page)
0184 25E0 ldi R18,5
0186 30E0 ldi R19,0
0188 8501 movw R16,R10
018A 0E940000 xcall div16s
018E 0C15 cp R16,R12
0190 1D05 cpc R17,R13
0192 29F1 breq L30
0194 .dbline 97
0194 ; {
0194 .dbline 98
0194 ; Page = FilePtr / SONGPAGE;
0194 25E0 ldi R18,5
0196 30E0 ldi R19,0
0198 8501 movw R16,R10
019A 0E940000 xcall div16s
019E 6801 movw R12,R16
01A0 .dbline 99
01A0 ; GetDir(Cluster,Page*SONGPAGE,SONGPAGE,TRUE);
01A0 81E0 ldi R24,1
01A2 90E0 ldi R25,0
01A4 9D83 std y+5,R25
01A6 8C83 std y+4,R24
01A8 85E0 ldi R24,5
01AA 9B83 std y+3,R25
01AC 8A83 std y+2,R24
01AE 05E0 ldi R16,5
01B0 10E0 ldi R17,0
01B2 9601 movw R18,R12
01B4 0E940000 xcall empy16s
01B8 1983 std y+1,R17
01BA 0883 std y+0,R16
01BC FE01 movw R30,R28
01BE 0489 ldd R16,z+20
01C0 1589 ldd R17,z+21
01C2 2689 ldd R18,z+22
01C4 3789 ldd R19,z+23
01C6 0E940000 xcall _GetDir
01CA .dbline 100
01CA ; RemoteSendScreen(DIR,(FilePtr%SONGPAGE));
01CA 25E0 ldi R18,5
01CC 30E0 ldi R19,0
01CE 8501 movw R16,R10
01D0 0E940000 xcall mod16s
01D4 202F mov R18,R16
01D6 01E0 ldi R16,1
01D8 0E940000 xcall _RemoteSendScreen
01DC .dbline 101
01DC ; }
01DC 07C0 xjmp L31
01DE L30:
01DE .dbline 103
01DE ; else
01DE ; {
01DE .dbline 104
01DE ; RemoteSendLine((FilePtr%SONGPAGE));
01DE 25E0 ldi R18,5
01E0 30E0 ldi R19,0
01E2 8501 movw R16,R10
01E4 0E940000 xcall mod16s
01E8 0E940000 xcall _RemoteSendLine
01EC .dbline 105
01EC ; }
01EC L31:
01EC .dbline 106
01EC ; Key = 0;
01EC 2224 clr R2
01EE 20920000 sts _Key,R2
01F2 .dbline 107
01F2 ; }
01F2 L21:
01F2 .dbline 111
01F2 ;
01F2 ; // Left
01F2 ;
01F2 ; if (Key == 0x04)
01F2 80910000 lds R24,_Key
01F6 8430 cpi R24,4
01F8 11F5 brne L32
01FA .dbline 112
01FA ; {
01FA .dbline 113
01FA ; Cluster = 2; // Root Dir
01FA 42E0 ldi R20,2
01FC 50E0 ldi R21,0
01FE 60E0 ldi R22,0
0200 70E0 ldi R23,0
0202 FE01 movw R30,R28
0204 448B std z+20,R20
0206 558B std z+21,R21
0208 668B std z+22,R22
020A 778B std z+23,R23
020C .dbline 115
020C ;
020C ; Key = 0xff;
020C 8FEF ldi R24,255
020E 80930000 sts _Key,R24
0212 .dbline 116
0212 ; FilePtr = 0;
0212 AA24 clr R10
0214 BB24 clr R11
0216 .dbline 117
0216 ; Page = 99;
0216 83E6 ldi R24,99
0218 90E0 ldi R25,0
021A 6C01 movw R12,R24
021C .dbline 118
021C ; MaxFile = GetDir(Cluster,FilePtr,999,FALSE);
021C 2224 clr R2
021E 3324 clr R3
0220 3D82 std y+5,R3
0222 2C82 std y+4,R2
0224 87EE ldi R24,999
0226 93E0 ldi R25,3
0228 9B83 std y+3,R25
022A 8A83 std y+2,R24
022C B982 std y+1,R11
022E A882 std y+0,R10
0230 0489 ldd R16,z+20
0232 1589 ldd R17,z+21
0234 2689 ldd R18,z+22
0236 3789 ldd R19,z+23
0238 0E940000 xcall _GetDir
023C 7801 movw R14,R16
023E .dbline 119
023E ; }
023E L32:
023E .dbline 123
023E ;
023E ; // Right
023E ;
023E ; if (Key == 0x08)
023E 80910000 lds R24,_Key
0242 8830 cpi R24,8
0244 09F0 breq X4
0246 CBC0 xjmp L34
0248 X4:
0248 .dbline 124
0248 ; {
0248 .dbline 125
0248 ; GetDir(Cluster,FilePtr,1,FALSE);
0248 2224 clr R2
024A 3324 clr R3
024C 3D82 std y+5,R3
024E 2C82 std y+4,R2
0250 81E0 ldi R24,1
0252 90E0 ldi R25,0
0254 9B83 std y+3,R25
0256 8A83 std y+2,R24
0258 B982 std y+1,R11
025A A882 std y+0,R10
025C FE01 movw R30,R28
025E 0489 ldd R16,z+20
0260 1589 ldd R17,z+21
0262 2689 ldd R18,z+22
0264 3789 ldd R19,z+23
0266 0E940000 xcall _GetDir
026A .dbline 127
026A ;
026A ; if ((File.Attr & ATTR_DIRECTORY) == ATTR_DIRECTORY)
026A 80910301 lds R24,_File+259
026E 8071 andi R24,16
0270 8031 cpi R24,16
0272 39F5 brne L36
0274 .dbline 128
0274 ; {
0274 .dbline 129
0274 ; Key = 0xff;
0274 8FEF ldi R24,255
0276 80930000 sts _Key,R24
027A .dbline 130
027A ; FilePtr = 0;
027A AA24 clr R10
027C BB24 clr R11
027E .dbline 131
027E ; Page = 99;
027E 83E6 ldi R24,99
0280 90E0 ldi R25,0
0282 6C01 movw R12,R24
0284 .dbline 132
0284 ; Cluster = File.FirstClust;
0284 40900601 lds R4,_File+260+2
0288 50900701 lds R5,_File+260+2+1
028C 20900401 lds R2,_File+260
0290 30900501 lds R3,_File+260+1
0294 FE01 movw R30,R28
0296 248A std z+20,R2
0298 358A std z+21,R3
029A 468A std z+22,R4
029C 578A std z+23,R5
029E .dbline 133
029E ; MaxFile = GetDir(Cluster,FilePtr,999,FALSE);
029E 2224 clr R2
02A0 3324 clr R3
02A2 3D82 std y+5,R3
02A4 2C82 std y+4,R2
02A6 87EE ldi R24,999
02A8 93E0 ldi R25,3
02AA 9B83 std y+3,R25
02AC 8A83 std y+2,R24
02AE B982 std y+1,R11
02B0 A882 std y+0,R10
02B2 0489 ldd R16,z+20
02B4 1589 ldd R17,z+21
02B6 2689 ldd R18,z+22
02B8 3789 ldd R19,z+23
02BA 0E940000 xcall _GetDir
02BE 7801 movw R14,R16
02C0 .dbline 134
02C0 ; }
02C0 8EC0 xjmp L37
02C2 L36:
02C2 .dbline 136
02C2 ; else
02C2 ; {
02C2 .dbline 137
02C2 ; Page = 99;
02C2 83E6 ldi R24,99
02C4 90E0 ldi R25,0
02C6 6C01 movw R12,R24
02C8 .dbline 138
02C8 ; FilePtr--;
02C8 C501 movw R24,R10
02CA 0197 sbiw R24,1
02CC 5C01 movw R10,R24
02CE 65C0 xjmp L41
02D0 L40:
02D0 .dbline 140
02D0 ; while(1)
02D0 ; {
02D0 .dbline 141
02D0 ; Key = 0;
02D0 2224 clr R2
02D2 20920000 sts _Key,R2
02D6 .dbline 142
02D6 ; FilePtr++;
02D6 C501 movw R24,R10
02D8 0196 adiw R24,1
02DA 5C01 movw R10,R24
02DC .dbline 143
02DC ; if (FilePtr >= MaxFile) FilePtr--;
02DC 8E15 cp R24,R14
02DE 9F05 cpc R25,R15
02E0 10F0 brlo L43
02E2 .dbline 143
02E2 0197 sbiw R24,1
02E4 5C01 movw R10,R24
02E6 L43:
02E6 .dbline 144
02E6 ; if ((FilePtr / SONGPAGE) != Page)
02E6 25E0 ldi R18,5
02E8 30E0 ldi R19,0
02EA 8501 movw R16,R10
02EC 0E940000 xcall div16s
02F0 0C15 cp R16,R12
02F2 1D05 cpc R17,R13
02F4 21F1 breq L45
02F6 .dbline 145
02F6 ; {
02F6 .dbline 146
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -