ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,133 行 · 第 1/4 页
LST
1,133 行
\ 00EB 110000 LD DE,g_TagInfoBuf1
\ 00EE 210000 LD HL,g_TagInfoBuf
\ 00F1 EDB0 LDIR
\ 00F3 112100 LD DE,g_music_vars+33
\ 00F6 3E00 LD A,BYTE3 fselGetPrevFile
\ 00F8 210000 LD HL,LWRD fselGetPrevFile
\ 00FB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00FE 110700 LD DE,g_music_vars+7
\ 0101 3E00 LD A,BYTE3 fselGetLocation
\ 0103 210000 LD HL,LWRD fselGetLocation
\ 0106 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0109 ED5B0100 LD DE,(g_music_vars+1)
\ 010D 3E00 LD A,BYTE3 fselSetMode
\ 010F 210000 LD HL,LWRD fselSetMode
\ 0112 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0115 3E00 LD A,BYTE3 GetInformation
\ 0117 210000 LD HL,LWRD GetInformation
\ 011A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 011D 010000 LD BC,g_Openparam
\ 0120 1E01 LD E,1
\ 0122 3E00 LD A,BYTE3 musicpSendCommand
\ 0124 210000 LD HL,LWRD musicpSendCommand
\ 0127 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 012A 010000 LD BC,0
\ 012D 1E03 LD E,3
\ 012F 3E00 LD A,BYTE3 musicpSendCommand
\ 0131 210000 LD HL,LWRD musicpSendCommand
\ 0134 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0137 2600 LD H,0
\ 0139 220000 LD (g_result),HL
\ 013C AF XOR A
\ 013D 320100 LD (CaltimeFlag),A
\ 0140 320000 LD (WaitForCaltimeCNT),A
\ 0143 320000 LD (ui_auto_update),A
\ 0146 210000 LD HL,UpDisplayFlag
\ 0149 7E LD A,(HL)
\ 014A F6C1 OR 193
\ 014C 77 LD (HL),A
\ 014D 23 INC HL
\ 014E 36FF LD (HL),255
\ 0150 210000 LD HL,UpDisplayFlag
\ 0153 CB86 RES 0,(HL)
\ 0155 3E01 LD A,1
\ 0157 320000 LD (need_draw),A
\ 015A C9 RET
\ 015B ?0138:
\ 015B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 015E 220000 LD (g_result),HL
\ 0161 C9 RET
\ 0162 ?0141:
\ 0162 3E00 LD A,BYTE3 ChangeMusic
\ 0164 210000 LD HL,LWRD ChangeMusic
\ 0167 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 016A 2600 LD H,0
\ 016C 220000 LD (g_result),HL
\ 016F ?0139:
\ 016F 1E04 LD E,4
\ 0171 3E00 LD A,BYTE3 fselSetMode
\ 0173 210000 LD HL,LWRD fselSetMode
\ 0176 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0179 112100 LD DE,g_music_vars+33
\ 017C 3E00 LD A,BYTE3 fselGetNextFile
\ 017E 210000 LD HL,LWRD fselGetNextFile
\ 0181 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0184 110700 LD DE,g_music_vars+7
\ 0187 3E00 LD A,BYTE3 fselGetLocation
\ 0189 210000 LD HL,LWRD fselGetLocation
\ 018C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 018F ?0140:
\ 018F 3E00 LD A,BYTE3 GetInformation
\ 0191 210000 LD HL,LWRD GetInformation
\ 0194 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0197 ?0142:
\ 0197 ED5B0100 LD DE,(g_music_vars+1)
\ 019B 3E00 LD A,BYTE3 fselSetMode
\ 019D 210000 LD HL,LWRD fselSetMode
\ 01A0 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 01A3 ?0145:
\ 01A3 4F LD C,A
\ 01A4 47 LD B,A
\ 01A5 ?0144:
\ 01A5 1E13 LD E,19
\ 01A7 ?0143:
\ 01A7 3E00 LD A,BYTE3 musicpSendCommand
\ 01A9 210000 LD HL,LWRD musicpSendCommand
\ 01AC C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 01AF ui_stop_loop:
84 //======================================================================================
85
86 int ui_stop_loop()
87 //int ui_stop()
88 {
\ 01AF CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 01B2 F0FF DEFW 65520
\ 01B4 FDE5 PUSH IY
89 mp3_play_status_t status_buf;
90 char key;
91 char modekeystore = NULL;
\ 01B6 DD36F900 LD (IX-7),0
\ 01BA ?0016:
92 int result;
93 char i;
94
95
96 while(1)
97 {
98 //清空消息池
99 result = ap_get_message();
\ 01BA CD0000 CALL LWRD ap_get_message
\ 01BD 4F LD C,A
\ 01BE 0600 LD B,0
\ 01C0 C5 PUSH BC
\ 01C1 FDE1 POP IY
100 if (result == NULL)
\ 01C3 79 LD A,C
\ 01C4 B7 OR A
\ 01C5 280B JR Z,?0015
\ 01C7 ?0018:
101 {
102 break;
\ 01C7 ?0019:
103 }
104 if (result == AP_MSG_STANDBY)
\ 01C7 FDE5 PUSH IY
\ 01C9 E1 POP HL
\ 01CA 3E1D LD A,29
\ 01CC AD XOR L
\ 01CD B4 OR H
\ 01CE 20EA JR NZ,?0016
\ 01D0 ?0020:
105 {
106 //碰到 standby 消息时要优先处理,否则会漏掉 standby 消息
107 return RESULT_STANDBY;
\ 01D0 185F JR ?0031
108 }
\ 01D2 ?0021:
109 }
110
111
112 while (1)
\ 01D2 ?0015:
\ 01D2 ?0023:
113 {
114
115
116 key = ap_get_message();
\ 01D2 CD0000 CALL LWRD ap_get_message
\ 01D5 DD77F8 LD (IX-8),A
117 if (need_draw)
\ 01D8 3A0000 LD A,(need_draw)
\ 01DB B7 OR A
\ 01DC 280C JR Z,?0026
\ 01DE ?0025:
118 {
119 RefreshMainScreen();
\ 01DE 3E00 LD A,BYTE3 RefreshMainScreen
\ 01E0 210000 LD HL,LWRD RefreshMainScreen
\ 01E3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
120 need_draw = FALSE;
\ 01E6 AF XOR A
\ 01E7 320000 LD (need_draw),A
\ 01EA ?0026:
121 }
122
123 switch (key)
\ 01EA DD5EF8 LD E,(IX-8)
\ 01ED CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 01F0 1000 DEFW 16
\ 01F2 03 DEFB 3
\ 01F3 04 DEFB 4
\ 01F4 05 DEFB 5
\ 01F5 06 DEFB 6
\ 01F6 10 DEFB 16
\ 01F7 1C DEFB 28
\ 01F8 21 DEFB 33
\ 01F9 25 DEFB 37
\ 01FA 26 DEFB 38
\ 01FB 30 DEFB 48
\ 01FC 32 DEFB 50
\ 01FD 37 DEFB 55
\ 01FE 38 DEFB 56
\ 01FF 45 DEFB 69
\ 0200 46 DEFB 70
\ 0201 81 DEFB 129
\ 0202 3904 DEFW ?0097
\ 0204 3102 DEFW ?0031
\ 0206 AC03 DEFW ?0086
\ 0208 8903 DEFW ?0078
\ 020A 6604 DEFW ?0027
\ 020C 1A04 DEFW ?0093
\ 020E 6604 DEFW ?0027
\ 0210 4E03 DEFW ?0067
\ 0212 A303 DEFW ?0082
\ 0214 8003 DEFW ?0074
\ 0216 3702 DEFW ?0032
\ 0218 2402 DEFW ?0028
\ 021A 4803 DEFW ?0066
\ 021C AC03 DEFW ?0086
\ 021E 8903 DEFW ?0078
\ 0220 C603 DEFW ?0090
\ 0222 C603 DEFW ?0090
\ 0224 ?0028:
124 {
125 case AP_MSG_RTC:
126 if (!CaltimeFlag)
\ 0224 3A0100 LD A,(CaltimeFlag)
\ 0227 B7 OR A
\ 0228 2004 JR NZ,?0030
\ 022A ?0029:
127 {
128 WaitForCaltimeCNT++;
\ 022A 210000 LD HL,WaitForCaltimeCNT
\ 022D 34 INC (HL)
\ 022E ?0030:
129 }
130 break;
\ 022E C36604 JP LWRD ?0027
\ 0231 ?0031:
131
132 case AP_KEY_PLAY | AP_KEY_LONG:
133 return RESULT_STANDBY;
\ 0231 210200 LD HL,2
134 break;
\ 0234 C36104 JP LWRD ?0109
\ 0237 ?0032:
\ 0237 ?0034:
135
136 case AP_KEY_PLAY | AP_KEY_UP:
137 while(ap_get_message()!=NULL); //clear rtc message.
\ 0237 CD0000 CALL LWRD ap_get_message
\ 023A B7 OR A
\ 023B 20FA JR NZ,?0032
\ 023D ?0035:
\ 023D ?0033:
138 if (CaltimeFlag || ifSelBuffToltalTimeFlag)
\ 023D 3A0100 LD A,(CaltimeFlag)
\ 0240 B7 OR A
\ 0241 2006 JR NZ,?0038
\ 0243 3A0000 LD A,(ifSelBuffToltalTimeFlag)
\ 0246 B7 OR A
\ 0247 281C JR Z,?0041
\ 0249 ?0038:
\ 0249 ?0039:
\ 0249 ?0036:
139 {
140 musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
\ 0249 210200 LD HL,2
\ 024C 39 ADD HL,SP
\ 024D 4D LD C,L
\ 024E 44 LD B,H
\ 024F 1E83 LD E,131
\ 0251 CDA701 CALL LWRD ?0143
141 if (status_buf.status == PLAYING_ERROR)
\ 0254 DD7EF0 LD A,(IX-16)
\ 0257 FE0C CP 12
\ 0259 200A JR NZ,?0041
\ 025B ?0040:
142 {
143 g_music_vars.BreakPTDisTime.hour = 0;
\ 025B AF XOR A
\ 025C 324B00 LD (g_music_vars+75),A
144 g_music_vars.BreakPTDisTime.minute = 0;
\ 025F 324C00 LD (g_music_vars+76),A
145 g_music_vars.BreakPTDisTime.second = 0;
\ 0262 324D00 LD (g_music_vars+77),A
\ 0265 ?0041:
\ 0265 ?0037:
146 }
147 }
148
149 musicpSendCommand(MC_RESTORE, NULL);
\ 0265 010000 LD BC,0
\ 0268 1E45 LD E,69
\ 026A CDA701 CALL LWRD ?0143
150
151 musicpSendCommand(MC_SETPOWERCOUNT, 5); //set power out level count=2^4=16
\ 026D 010500 LD BC,5
\ 0270 1E59 LD E,89
\ 0272 CDA701 CALL LWRD ?0143
152
153 if (g_music_vars.MusicOpenMod == Nor_open)
\ 0275 3A0600 LD A,(g_music_vars+6)
\ 0278 B7 OR A
\ 0279 2004 JR NZ,?0043
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?