ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 978 行 · 第 1/4 页
LST
978 行
\ 009F 1E04 LD E,4
\ 00A1 3E00 LD A,BYTE3 fselSetMode
\ 00A3 210000 LD HL,LWRD fselSetMode
\ 00A6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
74 fselGetLocation(& g_amv_vars.location); //add by ybfu 2004-12-22 15:26
\ 00A9 CD6601 CALL LWRD ?0146
75 make_dirname();
\ 00AC 3E00 LD A,BYTE3 make_dirname
\ 00AE 210000 LD HL,LWRD make_dirname
\ 00B1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
76 g_currentMusicType = CheckMusicType(g_amv_vars.location.filename);
\ 00B4 111F00 LD DE,g_amv_vars+31
\ 00B7 3E00 LD A,BYTE3 CheckMusicType
\ 00B9 210000 LD HL,LWRD CheckMusicType
\ 00BC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00BF 7D LD A,L
\ 00C0 320000 LD (g_currentMusicType),A
77
78 g_result = FSELGetNext(g_amv_vars.location.filename);
\ 00C3 111F00 LD DE,g_amv_vars+31
\ 00C6 3E00 LD A,BYTE3 fselGetNextFile
\ 00C8 210000 LD HL,LWRD fselGetNextFile
\ 00CB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00CE 2600 LD H,0
79 fselGetLocation(& g_amv_vars.location);
\ 00D0 CD6301 CALL LWRD ?0147
80 GetInformation(); //取文件信息
\ 00D3 CD3401 CALL LWRD ?0142
81 memcpy(g_TagInfoBuf1, g_TagInfoBuf, 20);
82 //g_TagInfoBuf1[18]=0;
83 g_TagInfoBuf1[20]=0;
84 g_result = FSELGetPrev(g_amv_vars.location.filename);
\ 00D6 111F00 LD DE,g_amv_vars+31
\ 00D9 3E00 LD A,BYTE3 fselGetPrevFile
\ 00DB 210000 LD HL,LWRD fselGetPrevFile
\ 00DE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00E1 60 LD H,B
85 fselGetLocation(& g_amv_vars.location);
\ 00E2 CD6301 CALL LWRD ?0147
86 GetInformation(); //取文件信息
\ 00E5 CD5B01 CALL LWRD ?0143
87
88 PlayStatus = StopSta;
\ 00E8 AF XOR A
\ 00E9 320000 LD (PlayStatus),A
89 need_draw = TRUE;
\ 00EC 3E01 LD A,1
\ 00EE 320000 LD (need_draw),A
90 FSELSetMode(g_amv_vars.repeat_mode);
\ 00F1 ED5B0300 LD DE,(g_amv_vars+3)
\ 00F5 3E00 LD A,BYTE3 fselSetMode
\ 00F7 210000 LD HL,LWRD fselSetMode
\ 00FA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
91 g_result = ui_stop_loop();
\ 00FD 3E00 LD A,BYTE3 ui_stop_loop
\ 00FF 217101 LD HL,LWRD ui_stop_loop
\ 0102 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0105 220000 LD (g_result),HL
92
93 }while( (g_result == RESULT_CURR_UI)
94 || (g_result == RESULT_UI_STOP)
95 || (g_result == RESULT_UI_STOP2) );//还保持在ui_stop界面
\ 0108 7D LD A,L
\ 0109 B4 OR H
\ 010A CA5A00 JP Z,?0011
\ 010D 3E66 LD A,102
\ 010F AD XOR L
\ 0110 B4 OR H
\ 0111 CA5A00 JP Z,?0011
\ 0114 3E67 LD A,103
\ 0116 AD XOR L
\ 0117 B4 OR H
\ 0118 CA5A00 JP Z,?0011
\ 011B ?0009:
96 if (g_result == RESULT_LAST_UI)
\ 011B 3E65 LD A,101
\ 011D AD XOR L
\ 011E B4 OR H
\ 011F 2003 JR NZ,?0022
\ 0121 ?0021:
97 {
98 return NULL;//不带参数回到上一级
\ 0121 ?0119:
\ 0121 210000 LD HL,0
99 }
\ 0124 ?0022:
100 return g_result;//带参数回到上一级
101 }
\ 0124 ?0023:
\ 0124 D1 POP DE
\ 0125 C1 POP BC
\ 0126 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0129 ?0140:
\ 0129 110000 LD DE,0
\ 012C ?0141:
\ 012C 3E00 LD A,BYTE3 ap_message_init
\ 012E 210000 LD HL,LWRD ap_message_init
\ 0131 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0134 ?0142:
\ 0134 3E00 LD A,BYTE3 GetInformation
\ 0136 210000 LD HL,LWRD GetInformation
\ 0139 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 013C 011400 LD BC,20
\ 013F 110000 LD DE,g_TagInfoBuf1
\ 0142 210000 LD HL,g_TagInfoBuf
\ 0145 EDB0 LDIR
\ 0147 AF XOR A
\ 0148 321400 LD (g_TagInfoBuf1+20),A
\ 014B C9 RET
\ 014C ?0144:
\ 014C 1E04 LD E,4
\ 014E ?0145:
\ 014E 3E00 LD A,BYTE3 ChangeMusic
\ 0150 210000 LD HL,LWRD ChangeMusic
\ 0153 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0156 2600 LD H,0
\ 0158 220000 LD (g_result),HL
\ 015B ?0143:
\ 015B 3E00 LD A,BYTE3 GetInformation
\ 015D 210000 LD HL,LWRD GetInformation
\ 0160 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0163 ?0147:
\ 0163 220000 LD (g_result),HL
\ 0166 ?0146:
\ 0166 110500 LD DE,g_amv_vars+5
\ 0169 3E00 LD A,BYTE3 fselGetLocation
\ 016B 210000 LD HL,LWRD fselGetLocation
\ 016E C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0171 ui_stop_loop:
102 //======================================================================================
103
104 int ui_stop_loop()
105 {
\ 0171 C5 PUSH BC
\ 0172 D5 PUSH DE
\ 0173 DDE5 PUSH IX
\ 0175 F5 PUSH AF
106 char key;
107 int result;
108
109 if(time_cmp(&g_amv_vars.amvfilebreakpoint,
110 &Totaltime) > 0)
\ 0176 010000 LD BC,Totaltime
\ 0179 112E00 LD DE,g_amv_vars+46
\ 017C 3E00 LD A,BYTE3 time_cmp
\ 017E 210000 LD HL,LWRD time_cmp
\ 0181 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0184 4D LD C,L
\ 0185 44 LD B,H
\ 0186 210000 LD HL,0
\ 0189 F680 OR 128
\ 018B ED42 SBC HL,BC
\ 018D E29101 JP PO,?0131
\ 0190 AC XOR H
\ 0191 ?0131:
\ 0191 F29C01 JP P,?0025
\ 0194 ?0024:
111 {
112 ClearTimePara();//时间断点参数从0开始
\ 0194 3E00 LD A,BYTE3 ClearTimePara
\ 0196 210000 LD HL,LWRD ClearTimePara
\ 0199 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 019C ?0025:
\ 019C ?0027:
113 }
114
115 while (1)
116 {
117 if (need_draw)
\ 019C 3A0000 LD A,(need_draw)
\ 019F B7 OR A
\ 01A0 280C JR Z,?0030
\ 01A2 ?0029:
118 {
119 RefreshMainScreen();
\ 01A2 3E00 LD A,BYTE3 RefreshMainScreen
\ 01A4 210000 LD HL,LWRD RefreshMainScreen
\ 01A7 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
120 need_draw = FALSE;
\ 01AA AF XOR A
\ 01AB 320000 LD (need_draw),A
\ 01AE ?0030:
121 }
122
123 key = ap_get_message();
\ 01AE CD0000 CALL LWRD ap_get_message
124
125 switch (key)
\ 01B1 5F LD E,A
\ 01B2 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 01B5 1100 DEFW 17
\ 01B7 03 DEFB 3
\ 01B8 04 DEFB 4
\ 01B9 05 DEFB 5
\ 01BA 06 DEFB 6
\ 01BB 10 DEFB 16
\ 01BC 1B DEFB 27
\ 01BD 1C DEFB 28
\ 01BE 21 DEFB 33
\ 01BF 25 DEFB 37
\ 01C0 26 DEFB 38
\ 01C1 30 DEFB 48
\ 01C2 37 DEFB 55
\ 01C3 43 DEFB 67
\ 01C4 44 DEFB 68
\ 01C5 45 DEFB 69
\ 01C6 46 DEFB 70
\ 01C7 81 DEFB 129
\ 01C8 CD03 DEFW ?0106
\ 01CA EC01 DEFW ?0032
\ 01CC 5103 DEFW ?0095
\ 01CE 1C03 DEFW ?0085
\ 01D0 7D03 DEFW ?0099
\ 01D2 7D03 DEFW ?0099
\ 01D4 A603 DEFW ?0103
\ 01D6 E602 DEFW ?0074
\ 01D8 4803 DEFW ?0091
\ 01DA 1303 DEFW ?0081
\ 01DC F201 DEFW ?0033
\ 01DE 8D03 DEFW ?0102
\ 01E0 8D03 DEFW ?0102
\ 01E2 0B03 DEFW ?0076
\ 01E4 5103 DEFW ?0095
\ 01E6 1C03 DEFW ?0085
\ 01E8 7D03 DEFW ?0099
\ 01EA 7D03 DEFW ?0099
\ 01EC ?0032:
126 {
127 case AP_KEY_PLAY | AP_KEY_LONG:
128 return RESULT_STANDBY;
\ 01EC 210200 LD HL,2
129 break;
\ 01EF C3E903 JP LWRD ?0112
\ 01F2 ?0033:
130
131 case AP_KEY_PLAY | AP_KEY_UP:
132 ui_run_realtime = TRUE;
\ 01F2 3E01 LD A,1
\ 01F4 320000 LD (ui_run_realtime),A
133 // g_changevolume=0x00;
134 {
135 //comval_t g_comval;
136 //LightOnOff(1);
137 VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
\ 01F7 212000 LD HL,32
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?