main.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 889 行 · 第 1/3 页
LST
889 行
\ 0101 ED4B2000 LD BC,(g_langid)
\ 0105 115802 LD DE,600
\ 0108 3E00 LD A,BYTE3 ResShowMultiString
\ 010A 210000 LD HL,LWRD ResShowMultiString
\ 010D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0110 F1 POP AF
\ 0111 F1 POP AF
90
91 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0112 DB4E IN A,(78)
\ 0114 CBDF SET 3,A
\ 0116 D34E OUT (78),A
92
93 //把控件的常驻BANK切入
94 BankSwitch((unsigned long)ui_show_a >> 16);
\ 0118 0600 LD B,0
\ 011A 1E00 LD E,BYTE3 ui_show_a
\ 011C CD0000 CALL LWRD BankSwitch
95 FSELInit(FSEL_TYPE_ALL, FSEL_ALL_REPEATALL, 0,g_browser_vars.location.disk); //初始化当前磁盘的文件系统
\ 011F 212400 LD HL,g_browser_vars+2
\ 0122 4E LD C,(HL)
\ 0123 C5 PUSH BC
\ 0124 48 LD C,B
\ 0125 C5 PUSH BC
\ 0126 0E04 LD C,4
\ 0128 1E06 LD E,6
\ 012A 3E00 LD A,BYTE3 fselInit
\ 012C 210000 LD HL,LWRD fselInit
\ 012F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0132 F1 POP AF
\ 0133 F1 POP AF
96 //if (!FSELInit(FSEL_TYPE_AMV, FSEL_ALL_REPEATALL, 0,'C'))
97
98 // if (!FSELInit(FSEL_TYPE_ALL, FSEL_ALL_REPEATALL, 0,'g_browser_vars.location.disk'))
99 // return DealErrCase();
100 status=input8(0x05); //读05寄存器
\ 0134 DB05 IN A,(5)
\ 0136 210000 LD HL,0
\ 0139 39 ADD HL,SP
\ 013A 77 LD (HL),A
101 mainresult = ui_stop();// =============> 进入界面
\ 013B 3E00 LD A,BYTE3 ui_stop
\ 013D 210000 LD HL,LWRD ui_stop
\ 0140 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0143 E5 PUSH HL
\ 0144 DDE1 POP IX
102
103 ap_sleep(4);
\ 0146 110400 LD DE,4
\ 0149 3E00 LD A,BYTE3 ap_sleep
\ 014B 210000 LD HL,LWRD ap_sleep
\ 014E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
104
105 ResClose(g_Resfp_Sav);
\ 0151 ED5B5A00 LD DE,(g_Resfp_Sav)
\ 0155 3E00 LD A,BYTE3 ResClose
\ 0157 210000 LD HL,LWRD ResClose
\ 015A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
106 output8(0x5,status); // 恢复 05 regsiter 解决播放后进U盘提示格式化的问题 zxs add
\ 015D 210000 LD HL,0
\ 0160 39 ADD HL,SP
\ 0161 7E LD A,(HL)
\ 0162 D305 OUT (5),A
107 //记录
108 fselGetLocation(& g_browser_vars.location);
\ 0164 112400 LD DE,g_browser_vars+2
\ 0167 3E00 LD A,BYTE3 fselGetLocation
\ 0169 210000 LD HL,LWRD fselGetLocation
\ 016C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
109 result = VMWrite(&g_browser_vars, VM_AP_BROWSER);
\ 016F 01004C LD BC,19456
\ 0172 112200 LD DE,g_browser_vars
\ 0175 CD0000 CALL LWRD VMWrite
\ 0178 0600 LD B,0
110 if(mainresult==RESULT_IGNORE)
\ 017A DDE5 PUSH IX
\ 017C E1 POP HL
\ 017D 3E34 LD A,52
\ 017F AD XOR L
\ 0180 B4 OR H
\ 0181 2005 JR NZ,?0024
\ 0183 ?0023:
111 return RESULT_MAIN;
\ 0183 ?0081:
\ 0183 210A00 LD HL,10
\ 0186 1810 JR ?0027
\ 0188 ?0024:
112 else if(mainresult!=0)
\ 0188 7D LD A,L
\ 0189 B4 OR H
\ 018A 200C JR NZ,?0027
\ 018C ?0025:
113 return mainresult;
114 else
\ 018C ?0026:
115 return File_Type(g_browser_vars.location.filename);
\ 018C 113E00 LD DE,g_browser_vars+28
\ 018F 3E00 LD A,BYTE3 File_Type
\ 0191 21A101 LD HL,LWRD File_Type
\ 0194 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0197 60 LD H,B
116 }
\ 0198 ?0027:
\ 0198 F1 POP AF
\ 0199 F1 POP AF
\ 019A DDE1 POP IX
\ 019C D1 POP DE
\ 019D C1 POP BC
\ 019E C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 01A1 File_Type:
117
118 char File_Type( char * filename )
119 {
\ 01A1 C5 PUSH BC
\ 01A2 DDE5 PUSH IX
\ 01A4 21C8FF LD HL,65480
\ 01A7 39 ADD HL,SP
\ 01A8 F9 LD SP,HL
\ 01A9 D5 PUSH DE
\ 01AA DDE1 POP IX
120 const char Extstr [] [4] =
121 {
122 "MP3", "WMA", "ASF", "WMV", "OGG", "WAV", "ACT", "AMV", "TXT", "BMP", "JPG", "GIF","APE"
123 };
\ 01AC 210400 LD HL,4
\ 01AF 39 ADD HL,SP
\ 01B0 EB EX DE,HL
\ 01B1 210000 LD HL,?0028
\ 01B4 013400 LD BC,52
\ 01B7 EDB0 LDIR
124
125 BYTE ext[4];
126 memcpy(ext, filename + 8, 3);
\ 01B9 69 LD L,C
\ 01BA 60 LD H,B
\ 01BB 39 ADD HL,SP
\ 01BC EB EX DE,HL
\ 01BD 210800 LD HL,8
\ 01C0 DDE5 PUSH IX
\ 01C2 C1 POP BC
\ 01C3 09 ADD HL,BC
\ 01C4 010300 LD BC,3
\ 01C7 EDB0 LDIR
127
128 ext[0] = (ext[0]>='a' && ext[0]<='z') ? ext[0] - 'a' + 'A' : ext[0];
\ 01C9 69 LD L,C
\ 01CA 60 LD H,B
\ 01CB 39 ADD HL,SP
\ 01CC 7E LD A,(HL)
\ 01CD FE61 CP 97
\ 01CF 380A JR C,?0032
\ 01D1 3E7A LD A,122
\ 01D3 BE CP (HL)
\ 01D4 3805 JR C,?0032
\ 01D6 7E LD A,(HL)
\ 01D7 C6E0 ADD A,224
\ 01D9 1801 JR ?0033
\ 01DB ?0032:
\ 01DB 7E LD A,(HL)
\ 01DC ?0033:
\ 01DC 77 LD (HL),A
129 ext[1] = (ext[1]>='a' && ext[1]<='z') ? ext[1] - 'a' + 'A' : ext[1];
\ 01DD 23 INC HL
\ 01DE 7E LD A,(HL)
\ 01DF FE61 CP 97
\ 01E1 380A JR C,?0038
\ 01E3 3E7A LD A,122
\ 01E5 BE CP (HL)
\ 01E6 3805 JR C,?0038
\ 01E8 7E LD A,(HL)
\ 01E9 C6E0 ADD A,224
\ 01EB 1801 JR ?0039
\ 01ED ?0038:
\ 01ED 7E LD A,(HL)
\ 01EE ?0039:
\ 01EE 77 LD (HL),A
130 ext[2] = (ext[2]>='a' && ext[2]<='z') ? ext[2] - 'a' + 'A' : ext[2];
\ 01EF 23 INC HL
\ 01F0 7E LD A,(HL)
\ 01F1 FE61 CP 97
\ 01F3 380A JR C,?0044
\ 01F5 3E7A LD A,122
\ 01F7 BE CP (HL)
\ 01F8 3805 JR C,?0044
\ 01FA 7E LD A,(HL)
\ 01FB C6E0 ADD A,224
\ 01FD 1801 JR ?0045
\ 01FF ?0044:
\ 01FF 7E LD A,(HL)
\ 0200 ?0045:
\ 0200 77 LD (HL),A
131 ext[3] = 0;
\ 0201 23 INC HL
\ 0202 70 LD (HL),B
132
133 if (strcmp(ext, Extstr[0]) == 0)
\ 0203 2B DEC HL
\ 0204 2B DEC HL
\ 0205 2B DEC HL
\ 0206 EB EX DE,HL
\ 0207 210400 LD HL,4
\ 020A 39 ADD HL,SP
\ 020B CD1203 CALL LWRD ?0099
\ 020E 2006 JR NZ,?0048
\ 0210 ?0047:
134 {
135 return RESULT_MUSIC_PLAY;
\ 0210 C3FE02 JP LWRD ?0095
136 }
\ 0213 C30403 JP LWRD ?0073
\ 0216 ?0048:
137 else if (strcmp(ext, Extstr[1]) == 0)
\ 0216 69 LD L,C
\ 0217 60 LD H,B
\ 0218 39 ADD HL,SP
\ 0219 EB EX DE,HL
\ 021A 210400 LD HL,4
\ 021D 39 ADD HL,SP
\ 021E 0E04 LD C,4
\ 0220 CD1103 CALL LWRD ?0100
\ 0223 2006 JR NZ,?0050
\ 0225 ?0049:
138 {
139 return RESULT_MUSIC_PLAY;
\ 0225 C3FE02 JP LWRD ?0095
140 }
\ 0228 C30403 JP LWRD ?0073
\ 022B ?0050:
141 else if (strcmp(ext, Extstr[2]) == 0)
\ 022B 68 LD L,B
\ 022C 60 LD H,B
\ 022D 39 ADD HL,SP
\ 022E EB EX DE,HL
\ 022F 69 LD L,C
\ 0230 60 LD H,B
\ 0231 39 ADD HL,SP
\ 0232 0E08 LD C,8
\ 0234 CD1103 CALL LWRD ?0100
\ 0237 2006 JR NZ,?0052
\ 0239 ?0051:
142 {
143 return RESULT_MUSIC_PLAY;
\ 0239 C3FE02 JP LWRD ?0095
144 }
\ 023C C30403 JP LWRD ?0073
\ 023F ?0052:
145 else if (strcmp(ext, Extstr[3]) == 0)
\ 023F 68 LD L,B
\ 0240 60 LD H,B
\ 0241 39 ADD HL,SP
\ 0242 EB EX DE,HL
\ 0243 210400 LD HL,4
\ 0246 39 ADD HL,SP
\ 0247 0E0C LD C,12
\ 0249 CD1103 CALL LWRD ?0100
\ 024C 2006 JR NZ,?0054
\ 024E ?0053:
146 {
147 return RESULT_MUSIC_PLAY;
\ 024E C3FE02 JP LWRD ?0095
148 }
\ 0251 C30403 JP LWRD ?0073
\ 0254 ?0054:
149 else if (strcmp(ext, Extstr[4]) == 0)
\ 0254 68 LD L,B
\ 0255 60 LD H,B
\ 0256 39 ADD HL,SP
\ 0257 EB EX DE,HL
\ 0258 210400 LD HL,4
\ 025B 39 ADD HL,SP
\ 025C 0E10 LD C,16
\ 025E CD1103 CALL LWRD ?0100
\ 0261 2006 JR NZ,?0056
\ 0263 ?0055:
150 {
151 return RESULT_MUSIC_PLAY;
\ 0263 C3FE02 JP LWRD ?0095
152 }
\ 0266 C30403 JP LWRD ?0073
\ 0269 ?0056:
153 else if (strcmp(ext, Extstr[5]) == 0)
\ 0269 68 LD L,B
\ 026A 60 LD H,B
\ 026B 39 ADD HL,SP
\ 026C EB EX DE,HL
\ 026D 210400 LD HL,4
\ 0270 39 ADD HL,SP
\ 0271 0E14 LD C,20
\ 0273 CD1103 CALL LWRD ?0100
\ 0276 2005 JR NZ,?0058
\ 0278 ?0057:
154 {
155 return RESULT_VOICE_PLAY;
\ 0278 1812 JR ?0096
156 }
\ 027A C30403 JP LWRD ?0073
\ 027D ?0058:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?