ui_stop.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,055 行 · 第 1/4 页
LST
1,055 行
\ 00AE 210000 LD HL,LWRD make_dirname
\ 00B1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
81 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
82
83 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
84 fselGetLocation(& g_amv_vars.location);
\ 00D0 CD6301 CALL LWRD ?0129
85 GetInformation(); //取文件信息
\ 00D3 CD3401 CALL LWRD ?0124
86 memcpy(g_TagInfoBuf1, g_TagInfoBuf, 20);
87 //g_TagInfoBuf1[18]=0;
88 g_TagInfoBuf1[20]=0;
89 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
90 fselGetLocation(& g_amv_vars.location);
\ 00E2 CD6301 CALL LWRD ?0129
91 GetInformation(); //取文件信息
\ 00E5 CD5B01 CALL LWRD ?0125
92
93 PlayStatus = StopSta;
\ 00E8 AF XOR A
\ 00E9 320000 LD (PlayStatus),A
94 need_draw = TRUE;
\ 00EC 3E01 LD A,1
\ 00EE 320000 LD (need_draw),A
95 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
96 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
97
98 }while( (g_result == RESULT_CURR_UI)
99 || (g_result == RESULT_UI_STOP)
100 || (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:
101 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:
102 {
103 return NULL;//不带参数回到上一级
\ 0121 ?0101:
\ 0121 210000 LD HL,0
104 }
\ 0124 ?0022:
105 return g_result;//带参数回到上一级
106 }
\ 0124 ?0023:
\ 0124 D1 POP DE
\ 0125 C1 POP BC
\ 0126 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0129 ?0122:
\ 0129 110000 LD DE,0
\ 012C ?0123:
\ 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 ?0124:
\ 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 ?0126:
\ 014C 1E04 LD E,4
\ 014E ?0127:
\ 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 ?0125:
\ 015B 3E00 LD A,BYTE3 GetInformation
\ 015D 210000 LD HL,LWRD GetInformation
\ 0160 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0163 ?0129:
\ 0163 220000 LD (g_result),HL
\ 0166 ?0128:
\ 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:
107 //======================================================================================
108
109 int ui_stop_loop()
110 {
\ 0171 C5 PUSH BC
\ 0172 D5 PUSH DE
\ 0173 F5 PUSH AF
111 char key;
112 int result;
113
114 if(time_cmp(&g_amv_vars.amvfilebreakpoint,
115 &Totaltime) > 0)
\ 0174 010000 LD BC,Totaltime
\ 0177 113000 LD DE,g_amv_vars+48
\ 017A 3E00 LD A,BYTE3 time_cmp
\ 017C 210000 LD HL,LWRD time_cmp
\ 017F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0182 4D LD C,L
\ 0183 44 LD B,H
\ 0184 210000 LD HL,0
\ 0187 F680 OR 128
\ 0189 ED42 SBC HL,BC
\ 018B E28F01 JP PO,?0113
\ 018E AC XOR H
\ 018F ?0113:
\ 018F F29A01 JP P,?0025
\ 0192 ?0024:
116 {
117 ClearTimePara();//时间断点参数从0开始
\ 0192 3E00 LD A,BYTE3 ClearTimePara
\ 0194 210000 LD HL,LWRD ClearTimePara
\ 0197 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 019A ?0025:
\ 019A ?0027:
118 }
119
120 while (1)
121 {
122 if (need_draw)
\ 019A 3A0000 LD A,(need_draw)
\ 019D B7 OR A
\ 019E 280C JR Z,?0030
\ 01A0 ?0029:
123 {
124 RefreshMainScreen();
\ 01A0 3E00 LD A,BYTE3 RefreshMainScreen
\ 01A2 210000 LD HL,LWRD RefreshMainScreen
\ 01A5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
125 need_draw = FALSE;
\ 01A8 AF XOR A
\ 01A9 320000 LD (need_draw),A
\ 01AC ?0030:
126 }
127
128 key = ap_get_message();
\ 01AC CD0000 CALL LWRD ap_get_message
\ 01AF 210000 LD HL,0
\ 01B2 39 ADD HL,SP
\ 01B3 77 LD (HL),A
129 if(g_from_browser)
\ 01B4 3A0000 LD A,(g_from_browser)
\ 01B7 B7 OR A
\ 01B8 2806 JR Z,?0032
\ 01BA ?0031:
130 {
131 key = (AP_KEY_PLAY | AP_KEY_UP);
132 g_from_browser = FALSE;
\ 01BA AF XOR A
\ 01BB 320000 LD (g_from_browser),A
\ 01BE 3621 LD (HL),33
\ 01C0 ?0032:
133 }
134
135 switch (key)
\ 01C0 5E LD E,(HL)
\ 01C1 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 01C4 1000 DEFW 16
\ 01C6 03 DEFB 3
\ 01C7 04 DEFB 4
\ 01C8 05 DEFB 5
\ 01C9 06 DEFB 6
\ 01CA 10 DEFB 16
\ 01CB 1B DEFB 27
\ 01CC 1C DEFB 28
\ 01CD 21 DEFB 33
\ 01CE 25 DEFB 37
\ 01CF 26 DEFB 38
\ 01D0 30 DEFB 48
\ 01D1 43 DEFB 67
\ 01D2 44 DEFB 68
\ 01D3 45 DEFB 69
\ 01D4 46 DEFB 70
\ 01D5 81 DEFB 129
\ 01D6 D603 DEFW ?0088
\ 01D8 F801 DEFW ?0034
\ 01DA 0F03 DEFW ?0067
\ 01DC DA02 DEFW ?0057
\ 01DE 5203 DEFW ?0077
\ 01E0 3A03 DEFW ?0071
\ 01E2 A002 DEFW ?0046
\ 01E4 0603 DEFW ?0063
\ 01E6 D102 DEFW ?0053
\ 01E8 FE01 DEFW ?0035
\ 01EA 9E03 DEFW ?0083
\ 01EC 9E03 DEFW ?0083
\ 01EE C902 DEFW ?0048
\ 01F0 0F03 DEFW ?0067
\ 01F2 DA02 DEFW ?0057
\ 01F4 5203 DEFW ?0077
\ 01F6 3A03 DEFW ?0071
\ 01F8 ?0034:
136 {
137 case AP_KEY_PLAY | AP_KEY_LONG:
138 return RESULT_STANDBY;
\ 01F8 210200 LD HL,2
139 break;
\ 01FB C3F203 JP LWRD ?0094
\ 01FE ?0035:
140
141 case AP_KEY_PLAY | AP_KEY_UP:
142 ui_run_realtime = TRUE;
\ 01FE 3E01 LD A,1
\ 0200 320000 LD (ui_run_realtime),A
143 #ifdef EAR_PROTECT
144 if (g_firstplay_flag)
\ 0203 3A0000 LD A,(g_firstplay_flag)
\ 0206 B7 OR A
\ 0207 280A JR Z,?0037
\ 0209 ?0036:
145 {
146 g_autoswitch_counter = 0;
\ 0209 210000 LD HL,0
\ 020C 220000 LD (g_autoswitch_counter),HL
147 g_firstplay_flag = FALSE;
\ 020F AF XOR A
\ 0210 320000 LD (g_firstplay_flag),A
\ 0213 ?0037:
148 }
149 #endif
150 //LightOnOff(1);
151
152 //byte tempReg4f;
153 VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?