📄 musicedit_sel.lst
字号:
\ 02A0 0E01 LD C,1
\ 02A2 110000 LD DE,FileDataBuff
\ 02A5 CD0000 CALL LWRD FS_FWrite
\ 02A8 E1 POP HL
129 FS_FClose(temphfile);
\ 02A9 CDCF01 CALL LWRD ?0036
130 FS_SetCurDir(CurDirBackup);
131
132 output8(0x27,IMK_Reg);
\ 02AC 39 ADD HL,SP
\ 02AD 7E LD A,(HL)
\ 02AE D327 OUT (39),A
133
134 return TRUE;
\ 02B0 2E01 LD L,1
135 }
\ 02B2 ?0017:
\ 02B2 F1 POP AF
\ 02B3 F1 POP AF
\ 02B4 DDE1 POP IX
\ 02B6 FDE1 POP IY
\ 02B8 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 02BB DeleteAllSelSegment:
136
137 /****************************************************************
138 *Description: delete the edit ini file
139 * Returns:
140 * TRUE: Successful,
141 * FALSE: Fail.
142 * Notes:
143 ****************************************************************/
144 BOOL DeleteAllSelSegment()
145 {
\ 02BB C5 PUSH BC
\ 02BC D5 PUSH DE
\ 02BD DDE5 PUSH IX
\ 02BF F5 PUSH AF
146 HANDLE temphfile;
147 uchar IMK_Reg;
148
149 IMK_Reg=input8(0x27);
\ 02C0 DB27 IN A,(39)
\ 02C2 210000 LD HL,0
\ 02C5 39 ADD HL,SP
\ 02C6 77 LD (HL),A
150 output8(0x27,0);
151
152 CurDirBackup=FS_GetCurDir();
153 FS_CD(sSelRootDir);
\ 02C7 CD2E03 CALL LWRD ?0037
154
155 temphfile=FS_FOpen(sMusicEditIniFileName,FS_OPEN_NORMAL);
\ 02CA E5 PUSH HL
\ 02CB DDE1 POP IX
156 if(temphfile==NULL)
\ 02CD 7D LD A,L
\ 02CE B4 OR H
\ 02CF 280D JR Z,?0029
\ 02D1 ?0018:
157 {
158 FS_SetCurDir(CurDirBackup);
159 FS_FClose(temphfile);
160 output8(0x27,IMK_Reg);
161 DisplayErrInfor(NOSLFILE);
162 return FALSE;
163 }
\ 02D1 ?0019:
164 FS_FRead(FileDataBuff,1,temphfile);
\ 02D1 DDE5 PUSH IX
\ 02D3 CDC701 CALL LWRD ?0035
\ 02D6 E1 POP HL
165 if (pMusicEditIniFile->SelSegmemtCount==0)
\ 02D7 2A0400 LD HL,(FileDataBuff+4)
\ 02DA 7D LD A,L
\ 02DB B4 OR H
\ 02DC 201C JR NZ,?0021
\ 02DE ?0020:
166 {
167 FS_SetCurDir(CurDirBackup);
\ 02DE ?0029:
\ 02DE ED4B0202 LD BC,(CurDirBackup+2)
\ 02E2 ED5B0002 LD DE,(CurDirBackup)
\ 02E6 CD0000 CALL LWRD FS_SetCurDir
168 FS_FClose(temphfile);
\ 02E9 DDE5 PUSH IX
\ 02EB D1 POP DE
\ 02EC CD0000 CALL LWRD FS_FClose
169 output8(0x27,IMK_Reg);
\ 02EF 210000 LD HL,0
\ 02F2 39 ADD HL,SP
170 DisplayErrInfor(NOSLFILE);
\ 02F3 CDB901 CALL LWRD ?0034
171 return FALSE;
\ 02F6 2E00 LD L,0
172 }
\ 02F8 182C JR ?0022
\ 02FA ?0021:
173 // if(temphfile!=NULL)
174 {
175 //FS_FRemove(sMusicEditIniFileName);
176 memset(FileDataBuff,0,sizeof(FileDataBuff));
\ 02FA 010002 LD BC,512
\ 02FD 110000 LD DE,FileDataBuff
\ 0300 69 LD L,C
\ 0301 CD0000 CALL LWRD ?MEMSET_L11
177 FS_FWrite(FileDataBuff,1,temphfile);
\ 0304 DDE5 PUSH IX
\ 0306 0E01 LD C,1
\ 0308 CD0000 CALL LWRD FS_FWrite
\ 030B E1 POP HL
178 }
179
180 FS_SetCurDir(CurDirBackup);
\ 030C ED4B0202 LD BC,(CurDirBackup+2)
\ 0310 ED5B0002 LD DE,(CurDirBackup)
\ 0314 CD0000 CALL LWRD FS_SetCurDir
181 FS_FClose(temphfile);
\ 0317 DDE5 PUSH IX
\ 0319 D1 POP DE
\ 031A CD0000 CALL LWRD FS_FClose
182 output8(0x27,IMK_Reg);
\ 031D 210000 LD HL,0
\ 0320 39 ADD HL,SP
\ 0321 7E LD A,(HL)
\ 0322 D327 OUT (39),A
183
184 return TRUE;
\ 0324 2E01 LD L,1
185 }
\ 0326 ?0022:
\ 0326 F1 POP AF
\ 0327 DDE1 POP IX
\ 0329 D1 POP DE
\ 032A C1 POP BC
\ 032B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 032E ?0037:
\ 032E AF XOR A
\ 032F D327 OUT (39),A
\ 0331 CD0000 CALL LWRD FS_GetCurDir
\ 0334 220002 LD (CurDirBackup),HL
\ 0337 ED430202 LD (CurDirBackup+2),BC
\ 033B 110C00 LD DE,sSelRootDir
\ 033E CD0000 CALL LWRD FS_CD
\ 0341 0E00 LD C,0
\ 0343 110000 LD DE,sMusicEditIniFileName
\ 0346 CD0000 CALL LWRD FS_FOpen
\ 0349 C9 RET
\ 034A CreateMEIniFile:
186
187 /****************************************************************
188 *Description: save selected segment information to music edit INI file
189 *Arguments:
190 * SelSeg:the segment have been saved
191 * Returns:
192 * TRUE: Successful,
193 * FALSE: Fail.
194 * Notes:
195 ****************************************************************/
196 BOOL CreateMEIniFile()
197 {
\ 034A CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 034D FCFF DEFW 65532
198 HANDLE temphfile;
199 uchar IMK_Reg;
200
201 IMK_Reg=input8(0x27);
\ 034F DB27 IN A,(39)
\ 0351 DD77FE LD (IX-2),A
202 output8(0x27,0);
203
204 CurDirBackup=FS_GetCurDir();
205 FS_CD(sSelRootDir);
\ 0354 CD2E03 CALL LWRD ?0037
206
207 temphfile=FS_FOpen(sMusicEditIniFileName,FS_OPEN_NORMAL);
208 if(temphfile!=NULL)
\ 0357 7D LD A,L
\ 0358 B4 OR H
\ 0359 2812 JR Z,?0024
\ 035B ?0023:
209 {
210 FS_FClose(temphfile);
\ 035B 5D LD E,L
\ 035C 54 LD D,H
\ 035D CD0000 CALL LWRD FS_FClose
211 FS_SetCurDir(CurDirBackup);
\ 0360 ED4B0202 LD BC,(CurDirBackup+2)
\ 0364 ED5B0002 LD DE,(CurDirBackup)
\ 0368 CD0000 CALL LWRD FS_SetCurDir
212 output8(0x27,IMK_Reg);
\ 036B 182A JR ?0030
213 return FALSE;
214 }
\ 036D ?0024:
215
216 FS_FRemove(sMusicEditIniFileName); //文件存在但大小为0情况删除文件,防止创建文件不成功
\ 036D 110000 LD DE,sMusicEditIniFileName
\ 0370 CD0000 CALL LWRD FS_FRemove
217 temphfile=FS_FCreate(sMusicEditIniFileName);
\ 0373 110000 LD DE,sMusicEditIniFileName
\ 0376 CD0000 CALL LWRD FS_FCreate
\ 0379 DD75FC LD (IX-4),L
\ 037C DD74FD LD (IX-3),H
218 if(temphfile==NULL)
\ 037F 7D LD A,L
\ 0380 B4 OR H
\ 0381 201D JR NZ,?0026
\ 0383 ?0025:
219 {
220 FS_SetCurDir(CurDirBackup);
\ 0383 ED4B0202 LD BC,(CurDirBackup+2)
\ 0387 ED5B0002 LD DE,(CurDirBackup)
\ 038B CD0000 CALL LWRD FS_SetCurDir
221 FS_FClose(temphfile);
\ 038E DD5EFC LD E,(IX-4)
\ 0391 DD56FD LD D,(IX-3)
\ 0394 CD0000 CALL LWRD FS_FClose
222 output8(0x27,IMK_Reg);
\ 0397 ?0030:
\ 0397 DD7EFE LD A,(IX-2)
\ 039A D327 OUT (39),A
223 return FALSE;
\ 039C 2E00 LD L,0
224 }
\ 039E 182F JR ?0027
\ 03A0 ?0026:
225 memset(FileDataBuff,0,sizeof(FileDataBuff));
\ 03A0 010002 LD BC,512
\ 03A3 110000 LD DE,FileDataBuff
\ 03A6 69 LD L,C
\ 03A7 CD0000 CALL LWRD ?MEMSET_L11
226
227 FS_FWrite(FileDataBuff,1,temphfile);
\ 03AA DD6EFC LD L,(IX-4)
\ 03AD E5 PUSH HL
\ 03AE 0E01 LD C,1
\ 03B0 CD0000 CALL LWRD FS_FWrite
\ 03B3 E1 POP HL
228 FS_FClose(temphfile);
\ 03B4 DD5EFC LD E,(IX-4)
\ 03B7 DD56FD LD D,(IX-3)
\ 03BA CD0000 CALL LWRD FS_FClose
229
230 FS_SetCurDir(CurDirBackup);
\ 03BD ED4B0202 LD BC,(CurDirBackup+2)
\ 03C1 ED5B0002 LD DE,(CurDirBackup)
\ 03C5 CD0000 CALL LWRD FS_SetCurDir
231 output8(0x27,IMK_Reg);
\ 03C8 DD7EFE LD A,(IX-2)
\ 03CB D327 OUT (39),A
232
233 return TRUE;
\ 03CD 2E01 LD L,1
234 }
\ 03CF ?0027:
\ 03CF C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
235
\ 0000 RSEG COM_MUSICEDIT_SEL_C
\ 0000 sMusicEditIniFileName:
\ 0000 4D555349 DEFB 'MUSICEDTINI'
\ 0004 43454454
\ 0008 494E49
\ 000B 00 DEFB 0
\ 000C sSelRootDir:
\ 000C 3A20 DEFB ': '
\ 000E 00 DEFB 0
\ 0000 RSEG COM_MUSICEDIT_SEL_D
\ 0000 FileDataBuff:
\ 0200 DEFS 512
\ 0200 CurDirBackup:
\ 0204 DEFS 4
\ 0204 END
Errors: none
Warnings: none
Code size: 978
Constant size: 15
Static variable size: Data(516) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -