navi_select.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 528 行 · 第 1/2 页
LST
528 行
\ 0136 3E7A LD A,122
\ 0138 B8 CP B
\ 0139 3807 JR C,?0011
\ 013B 3A0100 LD A,(ext+1)
\ 013E C6E0 ADD A,224
\ 0140 1803 JR ?0012
\ 0142 ?0011:
\ 0142 3A0100 LD A,(ext+1)
\ 0145 ?0012:
\ 0145 320100 LD (ext+1),A
46 ext[2] = (ext[2]>='a' && ext[2]<='z') ? ext[2] - 'a' + 'A' : ext[2];
\ 0148 3A0200 LD A,(ext+2)
\ 014B FE61 CP 97
\ 014D 3810 JR C,?0017
\ 014F 3A0200 LD A,(ext+2)
\ 0152 47 LD B,A
\ 0153 3E7A LD A,122
\ 0155 B8 CP B
\ 0156 3807 JR C,?0017
\ 0158 3A0200 LD A,(ext+2)
\ 015B C6E0 ADD A,224
\ 015D 1803 JR ?0018
\ 015F ?0017:
\ 015F 3A0200 LD A,(ext+2)
\ 0162 ?0018:
\ 0162 320200 LD (ext+2),A
47 ext[3] = 0;
\ 0165 AF XOR A
\ 0166 320300 LD (ext+3),A
48 for(i=0;i<NAVI_FILE_TYPE_NUM;i++)
\ 0169 DD71FE LD (IX-2),C
\ 016C ?0021:
\ 016C DD7EFE LD A,(IX-2)
\ 016F FE0D CP 13
\ 0171 3019 JR NC,?0020
\ 0173 ?0022:
49 {
50 if(strcmp(Navi_ext[i],ext)==0)
\ 0173 6F LD L,A
\ 0174 2600 LD H,0
\ 0176 29 ADD HL,HL
\ 0177 29 ADD HL,HL
\ 0178 010000 LD BC,Navi_ext
\ 017B 09 ADD HL,BC
\ 017C EB EX DE,HL
\ 017D 210000 LD HL,ext
\ 0180 CD0000 CALL LWRD ?STRCMP_L11
\ 0183 7D LD A,L
\ 0184 B4 OR H
\ 0185 2805 JR Z,?0020
\ 0187 ?0024:
51 break;
\ 0187 ?0025:
\ 0187 DD34FE INC (IX-2)
\ 018A 18E0 JR ?0021
\ 018C ?0020:
52 }
53 memcpy(&temp_browser_vars.location,&location,sizeof(file_location_t));
\ 018C 012B00 LD BC,43
\ 018F 113100 LD DE,temp_browser_vars+2
\ 0192 210400 LD HL,location
\ 0195 EDB0 LDIR
54 output8(0x27,0); //关DSP中断
\ 0197 AF XOR A
\ 0198 D327 OUT (39),A
55 VMWrite(&temp_browser_vars,VM_AP_BROWSER);
\ 019A 064C LD B,76
\ 019C 112F00 LD DE,temp_browser_vars
\ 019F CD0000 CALL LWRD VMWrite
56 output8(0x27,IO27Bak); //开DSP中断
\ 01A2 DD7EFF LD A,(IX-1)
\ 01A5 D327 OUT (39),A
57 if(i<6) //music
\ 01A7 DD7EFE LD A,(IX-2)
\ 01AA FE06 CP 6
\ 01AC 3010 JR NC,?0027
\ 01AE ?0026:
58 {
59 memcpy(&g_music_vars.location,&location,sizeof(file_location_t));
\ 01AE 012B00 LD BC,43
\ 01B1 110700 LD DE,g_music_vars+7
\ 01B4 210400 LD HL,location
\ 01B7 EDB0 LDIR
60 return RESULT_MUSIC_PLAY; //zhangxs changed for real play 2007.03.30
\ 01B9 211E00 LD HL,30
61 }
\ 01BC 181E JR ?0034
\ 01BE ?0027:
62 else if(i<8) //voice
\ 01BE FE08 CP 8
\ 01C0 3005 JR NC,?0029
\ 01C2 ?0028:
63 {
64 return RESULT_VOICE_PLAY;
\ 01C2 211F00 LD HL,31
\ 01C5 1815 JR ?0034
\ 01C7 ?0029:
65 }else if(i<11) //jpg
\ 01C7 FE0B CP 11
\ 01C9 3005 JR NC,?0031
\ 01CB ?0030:
66 {
67
68 return RESULT_VIEW_PLAY;
\ 01CB 212200 LD HL,34
\ 01CE 180C JR ?0034
\ 01D0 ?0031:
69 }else if(i<12) //text
\ 01D0 FE0C CP 12
\ 01D2 3005 JR NC,?0033
\ 01D4 ?0032:
70 {
71
72 return RESULT_READER_PLAY;
\ 01D4 212100 LD HL,33
73 }
\ 01D7 1803 JR ?0034
\ 01D9 ?0033:
74 else
75 {
76
77 return RESULT_MOVIE_PLAY;
\ 01D9 212000 LD HL,32
78 }
\ 01DC ?0034:
\ 01DC C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
79
80 }
\ 01DF Deal_play_Navi:
81
82 int Deal_play_Navi(void)
83 {
\ 01DF CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 01E2 FAFF DEFW -6
84 int result=0;
85 long CurDirBackup;
86 BYTE IO27Bak = input8(0x27);
\ 01E4 DB27 IN A,(39)
\ 01E6 DD77FA LD (IX-6),A
87 output8(0x27,IO27Bak&0xfe); //关DSP中断
\ 01E9 CB87 RES 0,A
\ 01EB D327 OUT (39),A
88 //FS_Backup(NaviBackbuf,FS_BACKUP_DIRINFO,0);//目录项备份
89 CurDirBackup=FS_GetCurDir();
\ 01ED CD0000 CALL LWRD FS_GetCurDir
\ 01F0 DD75FC LD (IX-4),L
\ 01F3 DD74FD LD (IX-3),H
\ 01F6 DD71FE LD (IX-2),C
\ 01F9 DD70FF LD (IX-1),B
90 FS_CD(FS_CD_ROOT); //返回根目录查找列表
\ 01FC 110000 LD DE,?0035
\ 01FF CD0000 CALL LWRD FS_CD
91 Navifp = FS_FOpen(msz_temp,FS_OPEN_NORMAL);
\ 0202 0E00 LD C,0
\ 0204 110000 LD DE,msz_temp
\ 0207 CD0000 CALL LWRD FS_FOpen
\ 020A 220000 LD (Navifp),HL
92 if(Navifp==NULL)
\ 020D 7D LD A,L
\ 020E B4 OR H
\ 020F 200D JR NZ,?0037
\ 0211 ?0036:
93 {
94 // FS_Restore(NaviBackbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
95 FS_SetCurDir(CurDirBackup);
\ 0211 CD4902 CALL LWRD ?0039
96 output8(0x27,IO27Bak);
\ 0214 DD7EFA LD A,(IX-6)
\ 0217 D327 OUT (39),A
97 return RESULT_IGNORE;
\ 0219 213400 LD HL,52
98 }
\ 021C 1828 JR ?0038
\ 021E ?0037:
99 output8(0x27,IO27Bak);
\ 021E DD7EFA LD A,(IX-6)
\ 0221 D327 OUT (39),A
100 result = UI_play_Navi();
\ 0223 3E00 LD A,BYTE3 UI_play_Navi
\ 0225 210000 LD HL,LWRD UI_play_Navi
\ 0228 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 022B EB EX DE,HL
101 output8(0x27,IO27Bak&0xfe);
\ 022C DD46FA LD B,(IX-6)
\ 022F CB80 RES 0,B
\ 0231 78 LD A,B
\ 0232 D327 OUT (39),A
102 FS_FClose(Navifp);
\ 0234 D5 PUSH DE
\ 0235 ED5B0000 LD DE,(Navifp)
\ 0239 CD0000 CALL LWRD FS_FClose
103 // FS_Restore(NaviBackbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
104 FS_SetCurDir(CurDirBackup);
\ 023C CD4902 CALL LWRD ?0039
\ 023F D1 POP DE
105 output8(0x27,IO27Bak);
\ 0240 DD7EFA LD A,(IX-6)
\ 0243 D327 OUT (39),A
106 return result;
\ 0245 EB EX DE,HL
107 }
\ 0246 ?0038:
\ 0246 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0249 ?0039:
\ 0249 DD4EFE LD C,(IX-2)
\ 024C DD46FF LD B,(IX-1)
\ 024F DD5EFC LD E,(IX-4)
\ 0252 DD56FD LD D,(IX-3)
\ 0255 C30000 JP LWRD FS_SetCurDir
\ 0000 RSEG CSTR
\ 0000 ?0035:
\ 0000 3A DEFB ':'
\ 0001 00 DEFB 0
\ 0000 RSEG CONST
\ 0000 msz_temp:
\ 0000 4E415649 DEFB 'NAVI 0 '
\ 0004 20202020
\ 0008 30202020
\ 0000 RSEG APD_NAVI_SELECT
\ 0000 ext:
\ 0004 DEFS 4
\ 0004 location:
\ 002F DEFS 43
\ 002F temp_browser_vars:
\ 005C DEFS 45
\ 005C navi_offset:
\ 0060 DEFS 4
\ 0000 RSEG AP_NAVI_UI_SELECT
\ 0000 Navi_ext:
\ 0000 4D5033 DEFB 'MP3'
\ 0003 00 DEFB 0
\ 0004 574D41 DEFB 'WMA'
\ 0007 00 DEFB 0
\ 0008 415346 DEFB 'ASF'
\ 000B 00 DEFB 0
\ 000C 574D56 DEFB 'WMV'
\ 000F 00 DEFB 0
\ 0010 4F4747 DEFB 'OGG'
\ 0013 00 DEFB 0
\ 0014 415045 DEFB 'APE'
\ 0017 00 DEFB 0
\ 0018 574156 DEFB 'WAV'
\ 001B 00 DEFB 0
\ 001C 414354 DEFB 'ACT'
\ 001F 00 DEFB 0
\ 0020 4A5047 DEFB 'JPG'
\ 0023 00 DEFB 0
\ 0024 424D50 DEFB 'BMP'
\ 0027 00 DEFB 0
\ 0028 474946 DEFB 'GIF'
\ 002B 00 DEFB 0
\ 002C 545854 DEFB 'TXT'
\ 002F 00 DEFB 0
\ 0030 414D56 DEFB 'AMV'
\ 0033 00 DEFB 0
\ 0034 END
Errors: none
Warnings: none
Code size: 600
Constant size: 66
Static variable size: Data(96) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?