sub_function1.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 418 行 · 第 1/2 页
LST
418 行
73 FSELSetMode( FSEL_ALL_REPEATALL );//PLAY 时按键
74 break;
\ 007F ?0023:
\ 007F FE06 CP 6
\ 0081 2016 JR NZ,?0027
75 case FSEL_DIR_INTRO:
76 FSELSetMode(g_amv_vars.repeat_mode);
\ 0083 ED5B0300 LD DE,(g_amv_vars+3)
\ 0087 3E00 LD A,BYTE3 fselSetMode
\ 0089 210000 LD HL,LWRD fselSetMode
\ 008C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 008F ?0024:
77
78
79 default:
80 FSELSetMode(g_amv_vars.repeat_mode);//
\ 008F 1808 JR ?0027
81 break;
\ 0091 ?0021:
\ 0091 ?0020:
82 }
83 }
84 else if (mod == Stop_key)
\ 0091 AF XOR A
\ 0092 B6 OR (HL)
\ 0093 2004 JR NZ,?0027
\ 0095 ?0026:
85 {//
86 FSELSetMode(FSEL_ALL_REPEATALL);//STOP时按键
\ 0095 ?0052:
\ 0095 1E04 LD E,4
\ 0097 1804 JR ?0048
87 }
88 else
\ 0099 ?0027:
89 {//正常播放的情况
90 FSELSetMode(g_amv_vars.repeat_mode);
\ 0099 ED5B0300 LD DE,(g_amv_vars+3)
\ 009D ?0048:
\ 009D 3E00 LD A,BYTE3 fselSetMode
\ 009F 210000 LD HL,LWRD fselSetMode
\ 00A2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00A5 ?0028:
\ 00A5 ?0025:
91 }
92
93 switch (Direct)
\ 00A5 210200 LD HL,2
\ 00A8 39 ADD HL,SP
\ 00A9 5E LD E,(HL)
\ 00AA CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 00AD 00 DEFB 0
\ 00AE 0500 DEFW 5
\ 00B0 E000 DEFW ?0035
\ 00B2 E300 DEFW ?0029
\ 00B4 E300 DEFW ?0029
\ 00B6 BC00 DEFW ?0032
\ 00B8 C200 DEFW ?0033
\ 00BA CC00 DEFW ?0034
\ 00BC ?0030:
94 {
95 case Music_Reset_Head:
96 break;
\ 00BC ?0031:
97
98 case Music_Reset_End:
99 break;
\ 00BC ?0032:
100
101 case Music_Cur:
102 result = TRUE;
\ 00BC 2B DEC HL
\ 00BD 2B DEC HL
\ 00BE 3601 LD (HL),1
103 break;
\ 00C0 1821 JR ?0029
\ 00C2 ?0033:
104
105 case Music_Next:
106 result = FSELGetNext(g_amv_vars.location.filename);
\ 00C2 111F00 LD DE,g_amv_vars+31
\ 00C5 3E00 LD A,BYTE3 fselGetNextFile
\ 00C7 210000 LD HL,LWRD fselGetNextFile
\ 00CA 1808 JR ?0049
107 break;
\ 00CC ?0034:
108
109 case Music_Prev:
110 result = FSELGetPrev(g_amv_vars.location.filename);
\ 00CC 111F00 LD DE,g_amv_vars+31
\ 00CF 3E00 LD A,BYTE3 fselGetPrevFile
\ 00D1 210000 LD HL,LWRD fselGetPrevFile
\ 00D4 ?0049:
\ 00D4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00D7 E5 PUSH HL
\ 00D8 210200 LD HL,2
\ 00DB 39 ADD HL,SP
\ 00DC C1 POP BC
\ 00DD 71 LD (HL),C
111 break;
\ 00DE 1803 JR ?0029
\ 00E0 ?0035:
112
113 default:
114 return FALSE;
\ 00E0 69 LD L,C
115 }
\ 00E1 1859 JR ?0038
\ 00E3 ?0029:
116
117 if (!result)
\ 00E3 210000 LD HL,0
\ 00E6 39 ADD HL,SP
\ 00E7 AF XOR A
\ 00E8 B6 OR (HL)
\ 00E9 2003 JR NZ,?0037
\ 00EB ?0036:
118 {
119 return result;
\ 00EB 6F LD L,A
120 }
\ 00EC 184E JR ?0038
\ 00EE ?0037:
121 //取当前歌曲数状态
122 g_musicamount = (WORD)FSELGetTotal();
\ 00EE 3E00 LD A,BYTE3 fselGetTotal
\ 00F0 210000 LD HL,LWRD fselGetTotal
\ 00F3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00F6 7D LD A,L
\ 00F7 320000 LD (g_musicamount),A
123 g_musicsequence = (WORD)FSELGetNo();
\ 00FA 3E00 LD A,BYTE3 fselGetNo
\ 00FC 210000 LD HL,LWRD fselGetNo
\ 00FF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0102 7D LD A,L
\ 0103 320000 LD (g_musicsequence),A
124 FSELSetMode(g_amv_vars.repeat_mode);
\ 0106 ED5B0300 LD DE,(g_amv_vars+3)
\ 010A 3E00 LD A,BYTE3 fselSetMode
\ 010C 210000 LD HL,LWRD fselSetMode
\ 010F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
125
126 //确保选择器与AP的目录对应
127 fselGetLocation(& g_amv_vars.location);
\ 0112 110500 LD DE,g_amv_vars+5
\ 0115 3E00 LD A,BYTE3 fselGetLocation
\ 0117 210000 LD HL,LWRD fselGetLocation
\ 011A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
128 //获取目录的长名
129 make_dirname();
\ 011D 3E00 LD A,BYTE3 make_dirname
\ 011F 210000 LD HL,LWRD make_dirname
\ 0122 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
130
131 //检测Music的类型
132 g_currentMusicType = CheckMusicType(g_amv_vars.location.filename);
\ 0125 111F00 LD DE,g_amv_vars+31
\ 0128 3E00 LD A,BYTE3 CheckMusicType
\ 012A 210000 LD HL,LWRD CheckMusicType
\ 012D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0130 7D LD A,L
\ 0131 320000 LD (g_currentMusicType),A
133 //找歌词文件并打开
134
135 //清 WATCH_DOG
136 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0134 DB4E IN A,(78)
\ 0136 CBDF SET 3,A
\ 0138 D34E OUT (78),A
137
138 return TRUE;
\ 013A 2E01 LD L,1
139 }
\ 013C ?0038:
\ 013C F1 POP AF
\ 013D F1 POP AF
\ 013E F1 POP AF
\ 013F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0142 SelectCurMusic:
140
141 //===================重选当前歌曲=========================
142 void SelectCurMusic(void)
143 {
\ 0142 C5 PUSH BC
\ 0143 D5 PUSH DE
144 ChangeMusic(Music_Cur, Play_play); //播放当前歌曲
\ 0144 0E01 LD C,1
\ 0146 1E02 LD E,2
\ 0148 3E00 LD A,BYTE3 ChangeMusic
\ 014A 215300 LD HL,LWRD ChangeMusic
\ 014D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
145 GetInformation(); //取文件信息
\ 0150 3E00 LD A,BYTE3 GetInformation
\ 0152 210000 LD HL,LWRD GetInformation
\ 0155 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
146 }
\ 0158 D1 POP DE
\ 0159 C1 POP BC
\ 015A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
147 //========================================================
\ 015D END
Errors: none
Warnings: none
Code size: 349
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?