sub_function1.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,380 行 · 第 1/5 页
LST
1,380 行
\ 00BC ?0009:
77 {
78 DisInFBHead( DisMod );//到头显示
\ 00BC 3E00 LD A,BYTE3 DisInFBHead
\ 00BE 210000 LD HL,LWRD DisInFBHead
\ 00C1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00C4 ?0012:
79 while ( ap_get_message() != (AP_KEY_PREV | AP_KEY_UP) );
\ 00C4 CD0000 CALL LWRD ap_get_message
\ 00C7 FE25 CP 37
\ 00C9 20F9 JR NZ,?0012
\ 00CB ?0013:
\ 00CB ?0011:
80 SelectCurMusic();
\ 00CB 3E00 LD A,BYTE3 SelectCurMusic
\ 00CD 214305 LD HL,LWRD SelectCurMusic
\ 00D0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00D3 1851 JR ?0028
\ 00D5 ?0010:
81
82 }
83 else if (PlayStatus == FFPlaySta)
\ 00D5 FE03 CP 3
\ 00D7 202F JR NZ,?0016
\ 00D9 ?0015:
84 {
85 DisInFFEnd( DisMod );//到尾显示
\ 00D9 3E00 LD A,BYTE3 DisInFFEnd
\ 00DB 214000 LD HL,LWRD DisInFFEnd
\ 00DE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00E1 ?0018:
86 while ( ap_get_message() != (AP_KEY_NEXT | AP_KEY_UP) );
\ 00E1 CD0000 CALL LWRD ap_get_message
\ 00E4 FE26 CP 38
\ 00E6 20F9 JR NZ,?0018
\ 00E8 ?0019:
\ 00E8 ?0017:
87 g_result = ToNextMusic(Play_play);
\ 00E8 CD2D01 CALL LWRD ?0218
88 if(DisMod == 0)
\ 00EB 39 ADD HL,SP
\ 00EC AF XOR A
\ 00ED B6 OR (HL)
\ 00EE 200D JR NZ,?0021
\ 00F0 ?0020:
89 {
90 SetFullInterface();
\ 00F0 320000 LD (ui_auto_update),A
\ 00F3 210000 LD HL,UpDisplayFlag
\ 00F6 7E LD A,(HL)
\ 00F7 F6C1 OR 193
\ 00F9 77 LD (HL),A
\ 00FA 23 INC HL
\ 00FB 36FF LD (HL),255
\ 00FD ?0021:
91 }
92 if(g_result == RESULT_UI_STOP) return g_result;
\ 00FD 2A0000 LD HL,(g_result)
\ 0100 3E66 LD A,102
\ 0102 AD XOR L
\ 0103 B4 OR H
\ 0104 2020 JR NZ,?0028
\ 0106 ?0022:
\ 0106 1821 JR ?0029
93 }
\ 0108 ?0023:
94
95 else
\ 0108 ?0016:
96 {
97 g_result = ToNextMusic(Play_play);
\ 0108 CD2D01 CALL LWRD ?0218
98 if(DisMod == 0)
\ 010B 39 ADD HL,SP
\ 010C AF XOR A
\ 010D B6 OR (HL)
\ 010E 200D JR NZ,?0026
\ 0110 ?0025:
99 {
100 SetFullInterface();
\ 0110 320000 LD (ui_auto_update),A
\ 0113 210000 LD HL,UpDisplayFlag
\ 0116 7E LD A,(HL)
\ 0117 F6C1 OR 193
\ 0119 77 LD (HL),A
\ 011A 23 INC HL
\ 011B 36FF LD (HL),255
\ 011D ?0026:
101 }
102 if(g_result == RESULT_UI_STOP) return g_result;
\ 011D 2A0000 LD HL,(g_result)
\ 0120 3E66 LD A,102
\ 0122 AD XOR L
\ 0123 B4 OR H
\ 0124 2803 JR Z,?0029
\ 0126 ?0027:
103 }
\ 0126 ?0028:
\ 0126 ?0024:
\ 0126 ?0014:
104 return NULL;
\ 0126 210000 LD HL,0
105 }
\ 0129 ?0029:
\ 0129 F1 POP AF
\ 012A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 012D ?0218:
\ 012D 1E01 LD E,1
\ 012F 3E00 LD A,BYTE3 ToNextMusic
\ 0131 210000 LD HL,LWRD ToNextMusic
\ 0134 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0137 220000 LD (g_result),HL
\ 013A 210000 LD HL,0
\ 013D C9 RET
\ 013E ChangeMusic:
106 //================================================
107
108
109 /*
110 *******************************************************************************
111 * Description : 换曲时要做的选曲,初始化动作
112 * Arguments :
113 * Returns :真时表示可继续放,假时表示要停止放(播放状态)
114 * Notes :
115 *******************************************************************************
116 */
117 bool ChangeMusic( BYTE Direct, Music_sel_mod_t mod )
118 {
\ 013E CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0141 FEFF DEFW 65534
119 bool result;
120
121 //清 WATCH_DOG
122 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0143 DB4E IN A,(78)
\ 0145 CBDF SET 3,A
\ 0147 D34E OUT (78),A
123
124 //选文件
125 RePlayStatus = NormalPlay;
\ 0149 AF XOR A
\ 014A 320000 LD (RePlayStatus),A
126 ClearTimePara();
\ 014D 3E00 LD A,BYTE3 ClearTimePara
\ 014F 210000 LD HL,LWRD ClearTimePara
\ 0152 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
127 g_TagInfoBuf[0] = 0x0;
\ 0155 AF XOR A
\ 0156 320000 LD (g_TagInfoBuf),A
128 BankSwitch((unsigned long)FSELInit >> 16);
\ 0159 1E00 LD E,BYTE3 fselInit
\ 015B EB EX DE,HL
\ 015C 5D LD E,L
\ 015D CD0000 CALL LWRD BankSwitch
129 if(fsel_mode_change_flag) //退出playlist 模式时要重新初始化文件选择器
\ 0160 3A0000 LD A,(fsel_mode_change_flag)
\ 0163 B7 OR A
\ 0164 2818 JR Z,?0031
\ 0166 ?0030:
130 {
131 fsel_mode_change_flag = FALSE;
\ 0166 AF XOR A
\ 0167 320000 LD (fsel_mode_change_flag),A
132 FSELInit(FSEL_TYPE_MUSIC, g_music_vars.repeat_mode, g_music_vars.fselmod ,g_music_vars.location.disk);//初始化文件选择器
\ 016A 210700 LD HL,g_music_vars+7
\ 016D 4E LD C,(HL)
\ 016E C5 PUSH BC
\ 016F 215100 LD HL,g_music_vars+81
\ 0172 4E LD C,(HL)
\ 0173 C5 PUSH BC
\ 0174 ED4B0100 LD BC,(g_music_vars+1)
\ 0178 5F LD E,A
\ 0179 CDCE02 CALL LWRD ?0220
\ 017C F1 POP AF
\ 017D F1 POP AF
\ 017E ?0031:
133 }
134 if(g_music_vars.file_list_type==0xff)
\ 017E 3A5C00 LD A,(g_music_vars+92)
\ 0181 3C INC A
\ 0182 C22D02 JP NZ,?0033
\ 0185 ?0032:
135 {
136 if (mod == Play_key)
\ 0185 DD4604 LD B,(IX+4)
\ 0188 05 DEC B
\ 0189 05 DEC B
\ 018A 2009 JR NZ,?0035
\ 018C ?0034:
137 {//play 按键的情况
138 switch (g_music_vars.repeat_mode)
\ 018C 3A0100 LD A,(g_music_vars+1)
\ 018F FE01 CP 1
\ 0191 200B JR NZ,?0041
\ 0193 ?0037:
139 {
140 case FSEL_ALL_REPEATONE:
141 FSELSetMode( FSEL_ALL_REPEATALL );//PLAY 时按键
\ 0193 1805 JR ?0193
142 break;
\ 0195 ?0038:
143
144
145 default:
146 FSELSetMode(g_music_vars.repeat_mode);//
147 break;
\ 0195 ?0036:
\ 0195 ?0035:
148 }
149 }
150 else if (mod == Stop_key)
\ 0195 DDB604 OR (IX+4)
\ 0198 2004 JR NZ,?0041
\ 019A ?0040:
151 {//
152 FSELSetMode(FSEL_ALL_REPEATALL);//STOP时按键
\ 019A ?0193:
\ 019A 1E04 LD E,4
\ 019C 1804 JR ?0183
153 }
154 else
\ 019E ?0041:
155 {//正常播放的情况
156 FSELSetMode(g_music_vars.repeat_mode);
\ 019E ED5B0100 LD DE,(g_music_vars+1)
\ 01A2 ?0183:
\ 01A2 CDDA02 CALL LWRD ?0222
\ 01A5 ?0042:
\ 01A5 ?0039:
157 }
158
159 switch (Direct)
\ 01A5 DD5E02 LD E,(IX+2)
\ 01A8 CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 01AB 00 DEFB 0
\ 01AC 0500 DEFW 5
\ 01AE 9A02 DEFW ?0190
\ 01B0 FC01 DEFW ?0043
\ 01B2 FC01 DEFW ?0043
\ 01B4 BA01 DEFW ?0046
\ 01B6 C001 DEFW ?0047
\ 01B8 E501 DEFW ?0052
\ 01BA ?0044:
160 {
161 case Music_Reset_Head:
162 break;
\ 01BA ?0045:
163
164 case Music_Reset_End:
165 break;
\ 01BA ?0046:
166
167 case Music_Cur:
168 result = TRUE;
\ 01BA DD36FE01 LD (IX-2),1
169 break;
\ 01BE 183C JR ?0043
\ 01C0 ?0047:
170
171 case Music_Next:
172 if(mod==list_key) //从播放列表选择文件模式
\ 01C0 DD7E04 LD A,(IX+4)
\ 01C3 FE03 CP 3
\ 01C5 2010 JR NZ,?0049
\ 01C7 ?0048:
173 {
174 result = TRUE;
\ 01C7 DD36FE01 LD (IX-2),1
175 if(!fselSetLocation(& g_music_vars.location)) //重新选择文件
\ 01CB CDF802 CALL LWRD ?0226
\ 01CE 2C INC L
\ 01CF 2D DEC L
\ 01D0 202A JR NZ,?0043
\ 01D2 ?0050:
176 {
177 DisplayErrMsg(MFILEOUT); //没有文件
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?