📄 main.lis
字号:
0174 0E940000 xcall _GotoXY
0178 .dbline 92
0178 ; tx_string(debugport,"-- Dir List --\0");
0178 20E0 ldi R18,<L32
017A 30E0 ldi R19,>L32
017C 01E0 ldi R16,1
017E 0E940000 xcall _tx_string
0182 .dbline 93
0182 ; FilePtr = Page * SONGPAGE;
0182 20910200 lds R18,L30
0186 30910300 lds R19,L30+1
018A 05E0 ldi R16,5
018C 10E0 ldi R17,0
018E 0E940000 xcall empy16s
0192 10930100 sts L29+1,R17
0196 00930000 sts L29,R16
019A .dbline 94
019A ; MaxFile = GetDir(Cluster,FilePtr,999,DIR,FALSE);
019A 2224 clr R2
019C 3324 clr R3
019E 3F82 std y+7,R3
01A0 2E82 std y+6,R2
01A2 81E0 ldi R24,1
01A4 90E0 ldi R25,0
01A6 9D83 std y+5,R25
01A8 8C83 std y+4,R24
01AA 87EE ldi R24,999
01AC 93E0 ldi R25,3
01AE 9B83 std y+3,R25
01B0 8A83 std y+2,R24
01B2 1801 movw R2,R16
01B4 3982 std y+1,R3
01B6 2882 std y+0,R2
01B8 FE01 movw R30,R28
01BA 0089 ldd R16,z+16
01BC 1189 ldd R17,z+17
01BE 2289 ldd R18,z+18
01C0 3389 ldd R19,z+19
01C2 0E940000 xcall _GetDir
01C6 5801 movw R10,R16
01C8 .dbline 95
01C8 ; GotoXY(2,2);
01C8 22E0 ldi R18,2
01CA 02E0 ldi R16,2
01CC 0E940000 xcall _GotoXY
01D0 .dbline 96
01D0 ; GetDir(2,FilePtr,SONGPAGE,DIR,TRUE);
01D0 81E0 ldi R24,1
01D2 90E0 ldi R25,0
01D4 9F83 std y+7,R25
01D6 8E83 std y+6,R24
01D8 9D83 std y+5,R25
01DA 8C83 std y+4,R24
01DC 85E0 ldi R24,5
01DE 9B83 std y+3,R25
01E0 8A83 std y+2,R24
01E2 20900000 lds R2,L29
01E6 30900100 lds R3,L29+1
01EA 3982 std y+1,R3
01EC 2882 std y+0,R2
01EE 02E0 ldi R16,2
01F0 10E0 ldi R17,0
01F2 20E0 ldi R18,0
01F4 30E0 ldi R19,0
01F6 0E940000 xcall _GetDir
01FA .dbline 97
01FA ; FilePtr = FilePtrSave;
01FA 20900000 lds R2,L31
01FE 30900100 lds R3,L31+1
0202 30920100 sts L29+1,R3
0206 20920000 sts L29,R2
020A .dbline 98
020A ; GotoXY(1,(FilePtr%SONGPAGE)+2);
020A 25E0 ldi R18,5
020C 30E0 ldi R19,0
020E 00910000 lds R16,L29
0212 10910100 lds R17,L29+1
0216 0E940000 xcall mod16s
021A 202F mov R18,R16
021C 2E5F subi R18,254 ; offset = 2
021E 3F4F sbci R19,255
0220 01E0 ldi R16,1
0222 0E940000 xcall _GotoXY
0226 06C1 xjmp L34
0228 X1:
0228 .dbline 100
0228 ; while(1)
0228 ; {
0228 L36:
0228 .dbline 101
0228 A895 wdr
022A L37:
022A .dbline 101
022A ; while(!is_char(debugport)) WDR();
022A 01E0 ldi R16,1
022C 0E940000 xcall _is_char
0230 0023 tst R16
0232 D1F3 breq L36
0234 .dbline 102
0234 ; ch = rx_char(debugport);
0234 01E0 ldi R16,1
0236 0E940000 xcall _rx_char
023A C02E mov R12,R16
023C .dbline 103
023C ; if (ch == '2')
023C 0233 cpi R16,50
023E 09F0 breq X3
0240 5FC0 xjmp L39
0242 X3:
0242 .dbline 104
0242 ; {
0242 .dbline 105
0242 ; FilePtr++;
0242 80910000 lds R24,L29
0246 90910100 lds R25,L29+1
024A 0196 adiw R24,1
024C 90930100 sts L29+1,R25
0250 80930000 sts L29,R24
0254 .dbline 106
0254 ; if (FilePtr >= MaxFile) FilePtr--;
0254 8A15 cp R24,R10
0256 9B05 cpc R25,R11
0258 28F0 brlo L41
025A .dbline 106
025A 0197 sbiw R24,1
025C 90930100 sts L29+1,R25
0260 80930000 sts L29,R24
0264 L41:
0264 .dbline 107
0264 ; if ((FilePtr / SONGPAGE) != Page)
0264 25E0 ldi R18,5
0266 30E0 ldi R19,0
0268 00910000 lds R16,L29
026C 10910100 lds R17,L29+1
0270 0E940000 xcall div16s
0274 20900200 lds R2,L30
0278 30900300 lds R3,L30+1
027C 0215 cp R16,R2
027E 1305 cpc R17,R3
0280 89F1 breq L43
0282 .dbline 108
0282 ; {
0282 .dbline 109
0282 ; Page = FilePtr / SONGPAGE;
0282 25E0 ldi R18,5
0284 30E0 ldi R19,0
0286 00910000 lds R16,L29
028A 10910100 lds R17,L29+1
028E 0E940000 xcall div16s
0292 10930300 sts L30+1,R17
0296 00930200 sts L30,R16
029A .dbline 110
029A ; ClrScr();
029A 0E940000 xcall _ClrScr
029E .dbline 111
029E ; GotoXY(1,1);
029E 21E0 ldi R18,1
02A0 01E0 ldi R16,1
02A2 0E940000 xcall _GotoXY
02A6 .dbline 112
02A6 ; tx_string(debugport,"-- Dir List --\0");
02A6 20E0 ldi R18,<L32
02A8 30E0 ldi R19,>L32
02AA 01E0 ldi R16,1
02AC 0E940000 xcall _tx_string
02B0 .dbline 113
02B0 ; GotoXY(2,2);
02B0 22E0 ldi R18,2
02B2 02E0 ldi R16,2
02B4 0E940000 xcall _GotoXY
02B8 .dbline 114
02B8 ; GetDir(Cluster,FilePtr,SONGPAGE,DIR,TRUE);
02B8 81E0 ldi R24,1
02BA 90E0 ldi R25,0
02BC 9F83 std y+7,R25
02BE 8E83 std y+6,R24
02C0 9D83 std y+5,R25
02C2 8C83 std y+4,R24
02C4 85E0 ldi R24,5
02C6 9B83 std y+3,R25
02C8 8A83 std y+2,R24
02CA 20900000 lds R2,L29
02CE 30900100 lds R3,L29+1
02D2 3982 std y+1,R3
02D4 2882 std y+0,R2
02D6 FE01 movw R30,R28
02D8 0089 ldd R16,z+16
02DA 1189 ldd R17,z+17
02DC 2289 ldd R18,z+18
02DE 3389 ldd R19,z+19
02E0 0E940000 xcall _GetDir
02E4 .dbline 115
02E4 ; }
02E4 L43:
02E4 .dbline 116
02E4 ; GotoXY(1,(FilePtr%SONGPAGE)+2);
02E4 25E0 ldi R18,5
02E6 30E0 ldi R19,0
02E8 00910000 lds R16,L29
02EC 10910100 lds R17,L29+1
02F0 0E940000 xcall mod16s
02F4 202F mov R18,R16
02F6 2E5F subi R18,254 ; offset = 2
02F8 3F4F sbci R19,255
02FA 01E0 ldi R16,1
02FC 0E940000 xcall _GotoXY
0300 .dbline 117
0300 ; }
0300 L39:
0300 .dbline 119
0300 ;
0300 ; if (ch == '8')
0300 8C2D mov R24,R12
0302 8833 cpi R24,56
0304 09F0 breq X4
0306 71C0 xjmp L45
0308 X4:
0308 .dbline 120
0308 ; {
0308 .dbline 121
0308 ; FilePtr--;
0308 80910000 lds R24,L29
030C 90910100 lds R25,L29+1
0310 0197 sbiw R24,1
0312 90930100 sts L29+1,R25
0316 80930000 sts L29,R24
031A .dbline 122
031A ; if (FilePtr < 0) FilePtr = 0;
031A 8030 cpi R24,0
031C E0E0 ldi R30,0
031E 9E07 cpc R25,R30
0320 34F4 brge L47
0322 .dbline 122
0322 2224 clr R2
0324 3324 clr R3
0326 30920100 sts L29+1,R3
032A 20920000 sts L29,R2
032E L47:
032E .dbline 123
032E ; if ((FilePtr / SONGPAGE) != Page)
032E 25E0 ldi R18,5
0330 30E0 ldi R19,0
0332 00910000 lds R16,L29
0336 10910100 lds R17,L29+1
033A 0E940000 xcall div16s
033E 20900200 lds R2,L30
0342 30900300 lds R3,L30+1
0346 0215 cp R16,R2
0348 1305 cpc R17,R3
034A 09F4 brne X5
034C 40C0 xjmp L49
034E X5:
034E .dbline 124
034E ; {
034E .dbline 125
034E ; FilePtr -= (SONGPAGE - 1);
034E 80910000 lds R24,L29
0352 90910100 lds R25,L29+1
0356 0497 sbiw R24,4
0358 90930100 sts L29+1,R25
035C 80930000 sts L29,R24
0360 .dbline 126
0360 ; Page = FilePtr / SONGPAGE;
0360 25E0 ldi R18,5
0362 30E0 ldi R19,0
0364 8C01 movw R16,R24
0366 0E940000 xcall div16s
036A 10930300 sts L30+1,R17
036E 00930200 sts L30,R16
0372 .dbline 127
0372 ; ClrScr();
0372 0E940000 xcall _ClrScr
0376 .dbline 128
0376 ; GotoXY(1,1);
0376 21E0 ldi R18,1
0378 01E0 ldi R16,1
037A 0E940000 xcall _GotoXY
037E .dbline 129
037E ; tx_string(debugport,"-- Dir List --\0");
037E 20E0 ldi R18,<L32
0380 30E0 ldi R19,>L32
0382 01E0 ldi R16,1
0384 0E940000 xcall _tx_string
0388 .dbline 130
0388 ; GotoXY(2,2);
0388 22E0 ldi R18,2
038A 02E0 ldi R16,2
038C 0E940000 xcall _GotoXY
0390 .dbline 131
0390 ; GetDir(Cluster,FilePtr,SONGPAGE,DIR,TRUE);
0390 81E0 ldi R24,1
0392 90E0 ldi R25,0
0394 9F83 std y+7,R25
0396 8E83 std y+6,R24
0398 9D83 std y+5,R25
039A 8C83 std y+4,R24
039C 85E0 ldi R24,5
039E 9B83 std y+3,R25
03A0 8A83 std y+2,R24
03A2 20900000 lds R2,L29
03A6 30900100 lds R3,L29+1
03AA 3982 std y+1,R3
03AC 2882 std y+0,R2
03AE FE01 movw R30,R28
03B0 0089 ldd R16,z+16
03B2 1189 ldd R17,z+17
03B4 2289 ldd R18,z+18
03B6 3389 ldd R19,z+19
03B8 0E940000 xcall _GetDir
03BC .dbline 132
03BC ; FilePtr += (SONGPAGE - 1);
03BC 80910000 lds R24,L29
03C0 90910100 lds R25,L29+1
03C4 0496 adiw R24,4
03C6 90930100 sts L29+1,R25
03CA 80930000 sts L29,R24
03CE .dbline 133
03CE ; }
03CE L49:
03CE .dbline 134
03CE ; GotoXY(1,(FilePtr%SONGPAGE)+2);
03CE 25E0 ldi R18,5
03D0 30E0 ldi R19,0
03D2 00910000 lds R16,L29
03D6 10910100 lds R17,L29+1
03DA 0E940000 xcall mod16s
03DE 202F mov R18,R16
03E0 2E5F subi R18,254 ; offset = 2
03E2 3F4F sbci R19,255
03E4 01E0 ldi R16,1
03E6 0E940000 xcall _GotoXY
03EA .dbline 135
03EA ; }
03EA L45:
03EA .dbline 137
03EA ;
03EA ; if (ch == '6')
03EA 8C2D mov R24,R12
03EC 8633 cpi R24,54
03EE 11F5 brne L51
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -