📄 main.lis
字号:
03F0 .dbline 138
03F0 ; {
03F0 .dbline 139
03F0 ; FilePtrSave = FilePtr;
03F0 20900000 lds R2,L29
03F4 30900100 lds R3,L29+1
03F8 30920100 sts L31+1,R3
03FC 20920000 sts L31,R2
0400 .dbline 140
0400 ; GetDir(Cluster,FilePtr,1,DIR,TRUE);
0400 81E0 ldi R24,1
0402 90E0 ldi R25,0
0404 9F83 std y+7,R25
0406 8E83 std y+6,R24
0408 9D83 std y+5,R25
040A 8C83 std y+4,R24
040C 9B83 std y+3,R25
040E 8A83 std y+2,R24
0410 3982 std y+1,R3
0412 2882 std y+0,R2
0414 FE01 movw R30,R28
0416 0089 ldd R16,z+16
0418 1189 ldd R17,z+17
041A 2289 ldd R18,z+18
041C 3389 ldd R19,z+19
041E 0E940000 xcall _GetDir
0422 .dbline 141
0422 ; FileBrowser(File.FirstClust);
0422 20910601 lds R18,_File+260+2
0426 30910701 lds R19,_File+260+2+1
042A 00910401 lds R16,_File+260
042E 10910501 lds R17,_File+260+1
0432 06D0 xcall _FileBrowser
0434 .dbline 142
0434 ; }
0434 L51:
0434 .dbline 143
0434 L34:
0434 .dbline 99
0434 FACE xjmp L37
0436 X2:
0436 .dbline -2
0436 .dbline 144
0436 ; }
0436 ; }
0436 L28:
0436 2896 adiw R28,8
0438 0E940000 xcall pop_gset4
043C 2496 adiw R28,4
043E .dbline 0 ; func end
043E 0895 ret
0440 .dbsym r MaxFile 10 i
0440 .dbsym r ch 12 c
0440 .dbsym l Cluster 16 l
0440 .dbend
0440 .dbfunc e FileBrowser _FileBrowser fV
0440 ; Page -> R12,R13
0440 ; ch -> R10
0440 ; MaxFile -> R14,R15
0440 ; FilePtr -> y+8
0440 ; Cluster -> y+20
.even
0440 _FileBrowser::
0440 0E940000 xcall push_arg4
0444 0E940000 xcall push_gset5
0448 2A97 sbiw R28,10
044A .dbline -1
044A .dbline 150
044A ;
044A ; //*************************************
044A ; // void FileBrowser(unsigned long Cluster)
044A ; //*************************************
044A ; void FileBrowser(unsigned long Cluster)
044A ; {
044A .dbline 157
044A ; extern unsigned char text[255];
044A ; extern struct FileInfo File;
044A ; unsigned char ch;
044A ; unsigned int MaxFile;
044A ; int FilePtr,Page;
044A ;
044A ; ClrScr();
044A 0E940000 xcall _ClrScr
044E .dbline 158
044E ; GotoXY(1,1);
044E 21E0 ldi R18,1
0450 01E0 ldi R16,1
0452 0E940000 xcall _GotoXY
0456 .dbline 159
0456 ; tx_string(debugport,"--Song List --\0");
0456 20E0 ldi R18,<L55
0458 30E0 ldi R19,>L55
045A 01E0 ldi R16,1
045C 0E940000 xcall _tx_string
0460 .dbline 160
0460 ; FilePtr = 0;
0460 0024 clr R0
0462 1124 clr R1
0464 1986 std y+9,R1
0466 0886 std y+8,R0
0468 .dbline 161
0468 ; Page = 0;
0468 CC24 clr R12
046A DD24 clr R13
046C .dbline 162
046C ; MaxFile = GetDir(Cluster,FilePtr,999,FILE,FALSE);
046C 2224 clr R2
046E 3324 clr R3
0470 3F82 std y+7,R3
0472 2E82 std y+6,R2
0474 3D82 std y+5,R3
0476 2C82 std y+4,R2
0478 87EE ldi R24,999
047A 93E0 ldi R25,3
047C 9B83 std y+3,R25
047E 8A83 std y+2,R24
0480 1982 std y+1,R1
0482 0882 std y+0,R0
0484 FE01 movw R30,R28
0486 0489 ldd R16,z+20
0488 1589 ldd R17,z+21
048A 2689 ldd R18,z+22
048C 3789 ldd R19,z+23
048E 0E940000 xcall _GetDir
0492 7801 movw R14,R16
0494 .dbline 163
0494 ; GotoXY(2,2);
0494 22E0 ldi R18,2
0496 02E0 ldi R16,2
0498 0E940000 xcall _GotoXY
049C .dbline 164
049C ; GetDir(Cluster,FilePtr,SONGPAGE,FILE,TRUE);
049C 81E0 ldi R24,1
049E 90E0 ldi R25,0
04A0 9F83 std y+7,R25
04A2 8E83 std y+6,R24
04A4 2224 clr R2
04A6 3324 clr R3
04A8 3D82 std y+5,R3
04AA 2C82 std y+4,R2
04AC 85E0 ldi R24,5
04AE 9B83 std y+3,R25
04B0 8A83 std y+2,R24
04B2 0884 ldd R0,y+8
04B4 1984 ldd R1,y+9
04B6 1982 std y+1,R1
04B8 0882 std y+0,R0
04BA FE01 movw R30,R28
04BC 0489 ldd R16,z+20
04BE 1589 ldd R17,z+21
04C0 2689 ldd R18,z+22
04C2 3789 ldd R19,z+23
04C4 0E940000 xcall _GetDir
04C8 .dbline 165
04C8 ; GotoXY(2,2);
04C8 22E0 ldi R18,2
04CA 02E0 ldi R16,2
04CC 0E940000 xcall _GotoXY
04D0 48C1 xjmp L57
04D2 X6:
04D2 .dbline 167
04D2 ; while(1)
04D2 ; {
04D2 L59:
04D2 .dbline 168
04D2 A895 wdr
04D4 L60:
04D4 .dbline 168
04D4 ; while(!is_char(debugport)) WDR();
04D4 01E0 ldi R16,1
04D6 0E940000 xcall _is_char
04DA 0023 tst R16
04DC D1F3 breq L59
04DE .dbline 169
04DE ; ch = rx_char(debugport);
04DE 01E0 ldi R16,1
04E0 0E940000 xcall _rx_char
04E4 A02E mov R10,R16
04E6 .dbline 170
04E6 ; if (ch == '2')
04E6 0233 cpi R16,50
04E8 09F0 breq X9
04EA 4DC0 xjmp L62
04EC X9:
04EC .dbline 171
04EC ; {
04EC .dbline 172
04EC ; FilePtr++;
04EC 8885 ldd R24,y+8
04EE 9985 ldd R25,y+9
04F0 0196 adiw R24,1
04F2 9987 std y+9,R25
04F4 8887 std y+8,R24
04F6 .dbline 173
04F6 ; if (FilePtr >= MaxFile) FilePtr--;
04F6 0C01 movw R0,R24
04F8 8E15 cp R24,R14
04FA 9F05 cpc R25,R15
04FC 18F0 brlo L64
04FE .dbline 173
04FE 0197 sbiw R24,1
0500 9987 std y+9,R25
0502 8887 std y+8,R24
0504 L64:
0504 .dbline 174
0504 ; if ((FilePtr / SONGPAGE) != Page)
0504 25E0 ldi R18,5
0506 30E0 ldi R19,0
0508 0885 ldd R16,y+8
050A 1985 ldd R17,y+9
050C 0E940000 xcall div16s
0510 0C15 cp R16,R12
0512 1D05 cpc R17,R13
0514 61F1 breq L66
0516 .dbline 175
0516 ; {
0516 .dbline 176
0516 ; Page = FilePtr / SONGPAGE;
0516 25E0 ldi R18,5
0518 30E0 ldi R19,0
051A 0885 ldd R16,y+8
051C 1985 ldd R17,y+9
051E 0E940000 xcall div16s
0522 6801 movw R12,R16
0524 .dbline 177
0524 ; ClrScr();
0524 0E940000 xcall _ClrScr
0528 .dbline 178
0528 ; GotoXY(1,1);
0528 21E0 ldi R18,1
052A 01E0 ldi R16,1
052C 0E940000 xcall _GotoXY
0530 .dbline 179
0530 ; tx_string(debugport,"--Song List --\0");
0530 20E0 ldi R18,<L55
0532 30E0 ldi R19,>L55
0534 01E0 ldi R16,1
0536 0E940000 xcall _tx_string
053A .dbline 180
053A ; GotoXY(2,2);
053A 22E0 ldi R18,2
053C 02E0 ldi R16,2
053E 0E940000 xcall _GotoXY
0542 .dbline 181
0542 ; GetDir(Cluster,FilePtr,SONGPAGE,FILE,TRUE);
0542 81E0 ldi R24,1
0544 90E0 ldi R25,0
0546 9F83 std y+7,R25
0548 8E83 std y+6,R24
054A 2224 clr R2
054C 3324 clr R3
054E 3D82 std y+5,R3
0550 2C82 std y+4,R2
0552 85E0 ldi R24,5
0554 9B83 std y+3,R25
0556 8A83 std y+2,R24
0558 0884 ldd R0,y+8
055A 1984 ldd R1,y+9
055C 1982 std y+1,R1
055E 0882 std y+0,R0
0560 FE01 movw R30,R28
0562 0489 ldd R16,z+20
0564 1589 ldd R17,z+21
0566 2689 ldd R18,z+22
0568 3789 ldd R19,z+23
056A 0E940000 xcall _GetDir
056E .dbline 182
056E ; }
056E L66:
056E .dbline 183
056E ; GotoXY(1,(FilePtr%SONGPAGE)+2);
056E 25E0 ldi R18,5
0570 30E0 ldi R19,0
0572 0885 ldd R16,y+8
0574 1985 ldd R17,y+9
0576 0E940000 xcall mod16s
057A 202F mov R18,R16
057C 2E5F subi R18,254 ; offset = 2
057E 3F4F sbci R19,255
0580 01E0 ldi R16,1
0582 0E940000 xcall _GotoXY
0586 .dbline 184
0586 ; }
0586 L62:
0586 .dbline 186
0586 ;
0586 ; if (ch == '8')
0586 8A2D mov R24,R10
0588 8833 cpi R24,56
058A 09F0 breq X10
058C 57C0 xjmp L68
058E X10:
058E .dbline 187
058E ; {
058E .dbline 188
058E ; FilePtr--;
058E 8885 ldd R24,y+8
0590 9985 ldd R25,y+9
0592 0197 sbiw R24,1
0594 9987 std y+9,R25
0596 8887 std y+8,R24
0598 .dbline 189
0598 ; if (FilePtr < 0) FilePtr = 0;
0598 8030 cpi R24,0
059A E0E0 ldi R30,0
059C 9E07 cpc R25,R30
059E 24F4 brge L70
05A0 .dbline 189
05A0 0024 clr R0
05A2 1124 clr R1
05A4 1986 std y+9,R1
05A6 0886 std y+8,R0
05A8 L70:
05A8 .dbline 190
05A8 ; if ((FilePtr / SONGPAGE) != Page)
05A8 25E0 ldi R18,5
05AA 30E0 ldi R19,0
05AC 0885 ldd R16,y+8
05AE 1985 ldd R17,y+9
05B0 0E940000 xcall div16s
05B4 0C15 cp R16,R12
05B6 1D05 cpc R17,R13
05B8 A9F1 breq L72
05BA .dbline 191
05BA ; {
05BA .dbline 192
05BA ; FilePtr -= (SONGPAGE - 1);
05BA 8885 ldd R24,y+8
05BC 9985 ldd R25,y+9
05BE 0497 sbiw R24,4
05C0 9987 std y+9,R25
05C2 8887 std y+8,R24
05C4 .dbline 193
05C4 ; Page = FilePtr / SONGPAGE;
05C4 25E0 ldi R18,5
05C6 30E0 ldi R19,0
05C8 8C01 movw R16,R24
05CA 0E940000 xcall div16s
05CE 6801 movw R12,R16
05D0 .dbline 194
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -