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