musicedit_sel.s01

来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 808 行 · 第 1/2 页

S01
808
字号
; 93.	BOOL SetDealCommamd(STRU_SelMusicSegment *CurSeg,int Cmd,int CmdPara)
; 94.	{
	PUSH	IY
	PUSH	IX
	PUSH	BC
	PUSH	AF
	PUSH	DE
	POP	IX
; 95.	    HANDLE temphfile;
; 96.	    uchar IMK_Reg;
; 97.	
; 98.	    IMK_Reg=input8(0x27);
	IN	A,(39)
	LD	HL,0
	ADD	HL,SP
; 99.	    output8(0x27,0);
; 100.	   
; 101.	    CurDirBackup=FS_GetCurDir();
	CALL	LWRD ?0032
; 102.	    FS_CD(sSelRootDir);
; 103.	
; 104.	    temphfile=FS_FOpen(sMusicEditIniFileName,FS_OPEN_NORMAL);
; 105.	    if(temphfile==NULL)
	JR	NZ,?0014
?0013:
; 106.	    {
; 107.	        FS_SetCurDir(CurDirBackup);
	CALL	LWRD ?0033
; 108.	        FS_FClose(temphfile);
; 109.	        output8(0x27,IMK_Reg);
	ADD	HL,SP
; 110.	        DisplayErrInfor(NOSLFILE);
	CALL	LWRD ?0034
; 111.	        return FALSE;
	LD	L,0
; 112.	    }
	JP	LWRD ?0017
?0014:
; 113.	    FS_FRead(FileDataBuff,1,temphfile);
	PUSH	IY
	CALL	LWRD ?0035
	POP	HL
; 114.	
; 115.	    pMusicEditIniFile->EditCommand=Cmd;
	LD	HL,2
	ADD	HL,SP
	LD	B,(HL)
	INC	HL
	LD	H,(HL)
	LD	L,B
	LD	(FileDataBuff),HL
; 116.	    pMusicEditIniFile->EditCmdPara=CmdPara;
	LD	HL,12
	ADD	HL,SP
	LD	B,(HL)
	INC	HL
	LD	H,(HL)
	LD	L,B
	LD	(FileDataBuff+2),HL
; 117.	    if(CurSeg!=NULL)
	PUSH	IX
	POP	HL
	LD	A,L
	OR	H
	JR	Z,?0016
?0015:
; 118.	    {
; 119.	        pMusicEditIniFile->CurMusicEditSeg.StartSec=CurSeg->StartSec;
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	EX	DE,HL
	LD	(FileDataBuff+25),HL
	LD	(FileDataBuff+27),BC
; 120.	        pMusicEditIniFile->CurMusicEditSeg.EndSec=CurSeg->EndSec;
	LD	C,(IX+6)
	LD	B,(IX+7)
	LD	L,(IX+4)
	LD	H,(IX+5)
	LD	(FileDataBuff+29),HL
	LD	(FileDataBuff+31),BC
; 121.	        pMusicEditIniFile->CurMusicEditSeg.bSelected=TRUE;
	LD	A,1
	LD	(FileDataBuff+39),A
; 122.	        pMusicEditIniFile->CurMusicEditSeg.Disk=CurSeg->location->disk;
	LD	L,(IX+8)
	LD	H,(IX+9)
	LD	A,(HL)
	LD	(FileDataBuff+8),A
; 123.	        pMusicEditIniFile->CurMusicEditSeg.ClusterNo=CurSeg->location->ClusterNo;
	LD	L,(IX+8)
	LD	H,(IX+9)
	LD	BC,9
	ADD	HL,BC
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	EX	DE,HL
	LD	(FileDataBuff+9),HL
	LD	(FileDataBuff+11),BC
; 124.	        memcpy(&(pMusicEditIniFile->CurMusicEditSeg.FileName),CurSeg->location->filename,12);
	LD	BC,12
	LD	DE,FileDataBuff+13
	LD	L,(IX+8)
	LD	H,(IX+9)
	LD	C,26
	ADD	HL,BC
	LD	C,12
	LDIR
; 125.	        memcpy(&(pMusicEditIniFile->CurMusicEditSeg.StartTime),CurSeg->StartTime,sizeof(time_t));
	LD	C,3
	LD	DE,FileDataBuff+33
	LD	L,(IX+10)
	LD	H,(IX+11)
	LDIR
; 126.	        memcpy(&(pMusicEditIniFile->CurMusicEditSeg.EndTime),CurSeg->EndTime,sizeof(time_t));
	LD	C,3
	LD	DE,FileDataBuff+36
	LD	L,(IX+12)
	LD	H,(IX+13)
	LDIR
?0016:
; 127.	    }
; 128.	    FS_FWrite(FileDataBuff,1,temphfile);
	PUSH	IY
	LD	C,1
	LD	DE,FileDataBuff
	CALL	LWRD FS_FWrite
	POP	HL
; 129.	    FS_FClose(temphfile);   
	CALL	LWRD ?0036
; 130.	    FS_SetCurDir(CurDirBackup);
; 131.	                
; 132.	    output8(0x27,IMK_Reg);
	ADD	HL,SP
	LD	A,(HL)
	OUT	(39),A
; 133.	        
; 134.	    return TRUE;
	LD	L,1
; 135.	}
?0017:
	POP	AF
	POP	AF
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
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.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
	PUSH	AF
; 146.	    HANDLE temphfile;
; 147.	    uchar IMK_Reg;
; 148.	
; 149.	    IMK_Reg=input8(0x27);
	IN	A,(39)
	LD	HL,0
	ADD	HL,SP
	LD	(HL),A
; 150.	    output8(0x27,0);
; 151.	   
; 152.	    CurDirBackup=FS_GetCurDir();
; 153.	    FS_CD(sSelRootDir);
	CALL	LWRD ?0037
; 154.	
; 155.	    temphfile=FS_FOpen(sMusicEditIniFileName,FS_OPEN_NORMAL);
	PUSH	HL
	POP	IX
; 156.	    if(temphfile==NULL) 
	LD	A,L
	OR	H
	JR	Z,?0029
?0018:
; 157.	    {
; 158.	        FS_SetCurDir(CurDirBackup);
; 159.	        FS_FClose(temphfile);
; 160.	        output8(0x27,IMK_Reg);
; 161.	        DisplayErrInfor(NOSLFILE);
; 162.	        return FALSE;
; 163.	    }
?0019:
; 164.	    FS_FRead(FileDataBuff,1,temphfile);
	PUSH	IX
	CALL	LWRD ?0035
	POP	HL
; 165.	    if (pMusicEditIniFile->SelSegmemtCount==0)
	LD	HL,(FileDataBuff+4)
	LD	A,L
	OR	H
	JR	NZ,?0021
?0020:
; 166.	    {
; 167.	        FS_SetCurDir(CurDirBackup);
?0029:
	LD	BC,(CurDirBackup+2)
	LD	DE,(CurDirBackup)
	CALL	LWRD FS_SetCurDir
; 168.	        FS_FClose(temphfile);
	PUSH	IX
	POP	DE
	CALL	LWRD FS_FClose
; 169.	        output8(0x27,IMK_Reg);
	LD	HL,0
	ADD	HL,SP
; 170.	        DisplayErrInfor(NOSLFILE);
	CALL	LWRD ?0034
; 171.	        return FALSE;
	LD	L,0
; 172.	    }
	JR	?0022
?0021:
; 173.	//    if(temphfile!=NULL)
; 174.	    {
; 175.	        //FS_FRemove(sMusicEditIniFileName);
; 176.	        memset(FileDataBuff,0,sizeof(FileDataBuff));
	LD	BC,512
	LD	DE,FileDataBuff
	LD	L,C
	CALL	LWRD ?MEMSET_L11
; 177.	        FS_FWrite(FileDataBuff,1,temphfile);
	PUSH	IX
	LD	C,1
	CALL	LWRD FS_FWrite
	POP	HL
; 178.	    }
; 179.	
; 180.	    FS_SetCurDir(CurDirBackup);
	LD	BC,(CurDirBackup+2)
	LD	DE,(CurDirBackup)
	CALL	LWRD FS_SetCurDir
; 181.	    FS_FClose(temphfile);
	PUSH	IX
	POP	DE
	CALL	LWRD FS_FClose
; 182.	    output8(0x27,IMK_Reg);
	LD	HL,0
	ADD	HL,SP
	LD	A,(HL)
	OUT	(39),A
; 183.	
; 184.	        return TRUE;
	LD	L,1
; 185.	}
?0022:
	POP	AF
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0037:
	XOR	A
	OUT	(39),A
	CALL	LWRD FS_GetCurDir
	LD	(CurDirBackup),HL
	LD	(CurDirBackup+2),BC
	LD	DE,sSelRootDir
	CALL	LWRD FS_CD
	LD	C,0
	LD	DE,sMusicEditIniFileName
	CALL	LWRD FS_FOpen
	RET
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.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65532
; 198.	    HANDLE temphfile;
; 199.	    uchar IMK_Reg;
; 200.	
; 201.	    IMK_Reg=input8(0x27);
	IN	A,(39)
	LD	(IX-2),A
; 202.	    output8(0x27,0);
; 203.	    
; 204.	    CurDirBackup=FS_GetCurDir();
; 205.	    FS_CD(sSelRootDir);
	CALL	LWRD ?0037
; 206.	
; 207.	    temphfile=FS_FOpen(sMusicEditIniFileName,FS_OPEN_NORMAL);
; 208.	    if(temphfile!=NULL)
	LD	A,L
	OR	H
	JR	Z,?0024
?0023:
; 209.	    {
; 210.	        FS_FClose(temphfile);
	LD	E,L
	LD	D,H
	CALL	LWRD FS_FClose
; 211.	            FS_SetCurDir(CurDirBackup);
	LD	BC,(CurDirBackup+2)
	LD	DE,(CurDirBackup)
	CALL	LWRD FS_SetCurDir
; 212.	        output8(0x27,IMK_Reg);
	JR	?0030
; 213.	        return FALSE;   
; 214.	    }
?0024:
; 215.	
; 216.	    FS_FRemove(sMusicEditIniFileName);           //文件存在但大小为0情况删除文件,防止创建文件不成功
	LD	DE,sMusicEditIniFileName
	CALL	LWRD FS_FRemove
; 217.	    temphfile=FS_FCreate(sMusicEditIniFileName);
	LD	DE,sMusicEditIniFileName
	CALL	LWRD FS_FCreate
	LD	(IX-4),L
	LD	(IX-3),H
; 218.	    if(temphfile==NULL)
	LD	A,L
	OR	H
	JR	NZ,?0026
?0025:
; 219.	    {
; 220.	            FS_SetCurDir(CurDirBackup);
	LD	BC,(CurDirBackup+2)
	LD	DE,(CurDirBackup)
	CALL	LWRD FS_SetCurDir
; 221.	              FS_FClose(temphfile);
	LD	E,(IX-4)
	LD	D,(IX-3)
	CALL	LWRD FS_FClose
; 222.	        output8(0x27,IMK_Reg);
?0030:
	LD	A,(IX-2)
	OUT	(39),A
; 223.	        return FALSE;
	LD	L,0
; 224.	    }    
	JR	?0027
?0026:
; 225.	    memset(FileDataBuff,0,sizeof(FileDataBuff));
	LD	BC,512
	LD	DE,FileDataBuff
	LD	L,C
	CALL	LWRD ?MEMSET_L11
; 226.	    
; 227.	    FS_FWrite(FileDataBuff,1,temphfile);
	LD	L,(IX-4)
	PUSH	HL
	LD	C,1
	CALL	LWRD FS_FWrite
	POP	HL
; 228.	    FS_FClose(temphfile);
	LD	E,(IX-4)
	LD	D,(IX-3)
	CALL	LWRD FS_FClose
; 229.	    
; 230.	    FS_SetCurDir(CurDirBackup);
	LD	BC,(CurDirBackup+2)
	LD	DE,(CurDirBackup)
	CALL	LWRD FS_SetCurDir
; 231.	    output8(0x27,IMK_Reg);
	LD	A,(IX-2)
	OUT	(39),A
; 232.	      
; 233.	    return TRUE;
	LD	L,1
; 234.	}
?0027:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
; 235.	
	RSEG	COM_MUSICEDIT_SEL_C
sMusicEditIniFileName:
	DEFB	'MUSICEDTINI'
	DEFB	0
sSelRootDir:
	DEFB	': '
	DEFB	0
	RSEG	COM_MUSICEDIT_SEL_D
FileDataBuff:
	DEFS	512
CurDirBackup:
	DEFS	4
	END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?