sub_function2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,392 行 · 第 1/5 页
LST
1,392 行
\ 0084 D5 PUSH DE
\ 0085 DDE1 POP IX
89 BYTE ext[4];
90 memcpy(ext, filename + 8, 3);
\ 0087 210000 LD HL,0
\ 008A 39 ADD HL,SP
\ 008B EB EX DE,HL
\ 008C 210800 LD HL,8
\ 008F DDE5 PUSH IX
\ 0091 C1 POP BC
\ 0092 09 ADD HL,BC
\ 0093 010300 LD BC,3
\ 0096 EDB0 LDIR
91 ext[0] = (ext[0]>='a' && ext[0]<='z') ? ext[0] - 'a' + 'A' : ext[0];
\ 0098 69 LD L,C
\ 0099 60 LD H,B
\ 009A 39 ADD HL,SP
\ 009B 7E LD A,(HL)
\ 009C FE61 CP 97
\ 009E 380A JR C,?0021
\ 00A0 3E7A LD A,122
\ 00A2 BE CP (HL)
\ 00A3 3805 JR C,?0021
\ 00A5 7E LD A,(HL)
\ 00A6 C6E0 ADD A,224
\ 00A8 1801 JR ?0022
\ 00AA ?0021:
\ 00AA 7E LD A,(HL)
\ 00AB ?0022:
\ 00AB 77 LD (HL),A
92 ext[1] = (ext[1]>='a' && ext[1]<='z') ? ext[1] - 'a' + 'A' : ext[1];
\ 00AC 23 INC HL
\ 00AD 7E LD A,(HL)
\ 00AE FE61 CP 97
\ 00B0 380A JR C,?0027
\ 00B2 3E7A LD A,122
\ 00B4 BE CP (HL)
\ 00B5 3805 JR C,?0027
\ 00B7 7E LD A,(HL)
\ 00B8 C6E0 ADD A,224
\ 00BA 1801 JR ?0028
\ 00BC ?0027:
\ 00BC 7E LD A,(HL)
\ 00BD ?0028:
\ 00BD 77 LD (HL),A
93 ext[2] = (ext[2]>='a' && ext[2]<='z') ? ext[2] - 'a' + 'A' : ext[2];
\ 00BE 23 INC HL
\ 00BF 7E LD A,(HL)
\ 00C0 FE61 CP 97
\ 00C2 380A JR C,?0033
\ 00C4 3E7A LD A,122
\ 00C6 BE CP (HL)
\ 00C7 3805 JR C,?0033
\ 00C9 7E LD A,(HL)
\ 00CA C6E0 ADD A,224
\ 00CC 1801 JR ?0034
\ 00CE ?0033:
\ 00CE 7E LD A,(HL)
\ 00CF ?0034:
\ 00CF 77 LD (HL),A
94 ext[3] = 0;
\ 00D0 23 INC HL
\ 00D1 70 LD (HL),B
95
96 if (strcmp(ext, ExtMusicstr[0]) == 0)
\ 00D2 2B DEC HL
\ 00D3 2B DEC HL
\ 00D4 2B DEC HL
\ 00D5 EB EX DE,HL
\ 00D6 210000 LD HL,ExtMusicstr
\ 00D9 CD3B01 CALL LWRD ?0146
\ 00DC 2004 JR NZ,?0037
\ 00DE ?0036:
97 {
98 return Music_MP3;
\ 00DE 2E01 LD L,1
99 }
\ 00E0 1851 JR ?0048
\ 00E2 ?0037:
100 else if (strcmp(ext, ExtMusicstr[1]) == 0)
\ 00E2 69 LD L,C
\ 00E3 60 LD H,B
\ 00E4 39 ADD HL,SP
\ 00E5 EB EX DE,HL
\ 00E6 210400 LD HL,ExtMusicstr+4
\ 00E9 CD3B01 CALL LWRD ?0146
\ 00EC 2004 JR NZ,?0039
\ 00EE ?0038:
101 {
102 return Music_WMA;
\ 00EE 2E02 LD L,2
103 }
\ 00F0 1841 JR ?0048
\ 00F2 ?0039:
104 else if (strcmp(ext, ExtMusicstr[2]) == 0)
\ 00F2 69 LD L,C
\ 00F3 60 LD H,B
\ 00F4 39 ADD HL,SP
\ 00F5 EB EX DE,HL
\ 00F6 210800 LD HL,ExtMusicstr+8
\ 00F9 CD3B01 CALL LWRD ?0146
\ 00FC 2004 JR NZ,?0041
\ 00FE ?0040:
105 {
106 return Music_ASF;
\ 00FE 2E03 LD L,3
107 }
\ 0100 1831 JR ?0048
\ 0102 ?0041:
108 else if (strcmp(ext, ExtMusicstr[3]) == 0)
\ 0102 69 LD L,C
\ 0103 60 LD H,B
\ 0104 39 ADD HL,SP
\ 0105 EB EX DE,HL
\ 0106 210C00 LD HL,ExtMusicstr+12
\ 0109 CD3B01 CALL LWRD ?0146
\ 010C 2004 JR NZ,?0043
\ 010E ?0042:
109 {
110 return Music_WMV;
\ 010E 2E04 LD L,4
111 }
\ 0110 1821 JR ?0048
\ 0112 ?0043:
112 else if (strcmp(ext, ExtMusicstr[4]) == 0)
\ 0112 69 LD L,C
\ 0113 60 LD H,B
\ 0114 39 ADD HL,SP
\ 0115 EB EX DE,HL
\ 0116 211000 LD HL,ExtMusicstr+16
\ 0119 CD3B01 CALL LWRD ?0146
\ 011C 2004 JR NZ,?0045
\ 011E ?0044:
113 {
114 return Music_OGG;
\ 011E 2E05 LD L,5
115 }
\ 0120 1811 JR ?0048
\ 0122 ?0045:
116 else if (strcmp(ext, ExtMusicstr[5]) == 0)
\ 0122 69 LD L,C
\ 0123 60 LD H,B
\ 0124 39 ADD HL,SP
\ 0125 EB EX DE,HL
\ 0126 211400 LD HL,ExtMusicstr+20
\ 0129 CD3B01 CALL LWRD ?0146
\ 012C 2004 JR NZ,?0047
\ 012E ?0046:
117 {
118 return Music_APE;
\ 012E 2E06 LD L,6
119 }
\ 0130 1801 JR ?0048
\ 0132 ?0047:
120 else
121 {
122 return Music_NON;
\ 0132 68 LD L,B
123 }
\ 0133 ?0048:
\ 0133 F1 POP AF
\ 0134 F1 POP AF
\ 0135 DDE1 POP IX
\ 0137 C1 POP BC
\ 0138 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 013B ?0146:
\ 013B CD0000 CALL LWRD ?STRCMP_L11
\ 013E 7D LD A,L
\ 013F B4 OR H
\ 0140 C9 RET
124 }
\ 0141 make_dirname:
125
126 /*
127 ********************************************************************************
128 * void read_var(void)
129 *
130 * Description : 读系统变量和ap局部变量
131 *
132 * Arguments : void
133 *
134 * Returns : void
135 *
136 * Notes :
137 *
138 ********************************************************************************
139 */
140 void make_dirname(void)
141 {
\ 0141 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0144 DEFF DEFW 65502
142 int result;
143 char Backbuf[32];
144
145 fselGetLocation(&g_music_vars.location);
\ 0146 110700 LD DE,g_music_vars+7
\ 0149 3E00 LD A,BYTE3 fselGetLocation
\ 014B 210000 LD HL,LWRD fselGetLocation
\ 014E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
146 if(g_music_vars.location.path[0]==':')
\ 0151 3A1500 LD A,(g_music_vars+21)
\ 0154 FE3A CP 58
\ 0156 200B JR NZ,?0050
\ 0158 ?0049:
147 {
148 strcpy(dir_name,"ROOT");
\ 0158 110000 LD DE,?0051
\ 015B 210000 LD HL,dir_name
\ 015E CD0000 CALL LWRD ?STRCPY_L11
149 }
150 else
\ 0161 185A JR ?0052
\ 0163 ?0050:
151 {
152
153 FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 0163 210000 LD HL,0
\ 0166 E5 PUSH HL
\ 0167 0E02 LD C,2
\ 0169 2E04 LD L,4
\ 016B 39 ADD HL,SP
\ 016C EB EX DE,HL
\ 016D CD0000 CALL LWRD FS_Backup
\ 0170 E1 POP HL
154
155 FS_CD("\\");
\ 0171 110500 LD DE,?0053
\ 0174 CD0000 CALL LWRD FS_CD
156 memcpy(dir_name, g_music_vars.location.path, 12);
\ 0177 010C00 LD BC,12
\ 017A 110000 LD DE,dir_name
\ 017D 211500 LD HL,g_music_vars+21
\ 0180 EDB0 LDIR
157 result = FS_GetName(dir_name, 14); //取出长名
\ 0182 0E0E LD C,14
\ 0184 110000 LD DE,dir_name
\ 0187 CD0000 CALL LWRD FS_GetName
\ 018A 0600 LD B,0
158 if (result != 0)
\ 018C B7 OR A
\ 018D 2810 JR Z,?0055
\ 018F ?0054:
159 {
160 unitochar(dir_name, sizeof(dir_name), g_comval.langid);
\ 018F 210C00 LD HL,g_comval+12
\ 0192 4E LD C,(HL)
\ 0193 C5 PUSH BC
\ 0194 0E1E LD C,30
\ 0196 110000 LD DE,dir_name
\ 0199 CDC301 CALL LWRD ?0148
\ 019C F1 POP AF
161 }
162 else
\ 019D 1810 JR ?0056
\ 019F ?0055:
163 {
164 memcpy(dir_name, g_music_vars.location.path, 12);
\ 019F 0E0C LD C,12
\ 01A1 110000 LD DE,dir_name
\ 01A4 211500 LD HL,g_music_vars+21
\ 01A7 EDB0 LDIR
165 dir_name[8]=0;
\ 01A9 320800 LD (dir_name+8),A
166 dir_name[9]=0;
\ 01AC 320900 LD (dir_name+9),A
\ 01AF ?0056:
167 }
168 FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 01AF 210000 LD HL,0
\ 01B2 E5 PUSH HL
\ 01B3 0E02 LD C,2
\ 01B5 2E04 LD L,4
\ 01B7 39 ADD HL,SP
\ 01B8 EB EX DE,HL
\ 01B9 CD0000 CALL LWRD FS_Restore
\ 01BC E1 POP HL
\ 01BD ?0052:
169 }
170
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?