⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookmarkadd.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
	DEC	L
	JR	Z,?0050
?0021:
; 108.	                return FALSE;
?0022:
; 109.	        
; 110.	        bNewBookMark=FALSE;
	LD	(IX-4),0
; 111.	    if(!GetBMkInforA(curfile,&FileBKSecNo))
	LD	HL,2
	ADD	HL,SP
	CALL	LWRD ?0065
	INC	L
	DEC	L
	JR	NZ,?0024
?0023:
; 112.	    {
; 113.	        AddBMkInfor(curfile);
	LD	E,(IX+4)
	LD	D,(IX+5)
	LD	A,BYTE3 AddBMkInfor
	LD	HL,LWRD AddBMkInfor
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 114.	                bNewBookMark=TRUE;
	LD	(IX-4),1
?0024:
; 115.	    }
; 116.	
; 117.	    if(!FS_FSeek(FileBKSecNo,FS_SEEK_FFROMSTART,hBmkFileA))
	LD	HL,(hBmkFileA)
	PUSH	HL
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0066
	POP	HL
	POP	HL
	OR	A
	JR	NZ,?0026
?0025:
; 118.	    {
; 119.	        FS_FClose(hBmkFileA);
	CALL	LWRD ?0068
; 120.	        output8(0x27,BmkIMKA_Reg); 
; 121.	        return FALSE;
?0050:
	LD	L,0
; 122.	    }        
	JR	?0033
?0026:
; 123.	    FS_FRead(BMKFileDataBuffA,1,hBmkFileA);
	LD	HL,(hBmkFileA)
	PUSH	HL
	CALL	LWRD ?0063
	POP	HL
; 124.	 
; 125.	        if(bNewBookMark)
	XOR	A
	OR	(IX-4)
	JR	Z,?0028
?0027:
; 126.	        {
; 127.	                pMusicBookMarkFileA->CurRecordNO=0;
	LD	HL,0
	LD	(BMKFileDataBuffA),HL
; 128.	                pMusicBookMarkFileA->RecordCount=0;
	LD	(BMKFileDataBuffA+2),HL
?0028:
; 129.	        }
; 130.	    memcpy(&(pMusicBookMarkFileA->MusicBreakPoint[pMusicBookMarkFileA->CurRecordNO]),breakpt,sizeof(STRU_MusicBreakPoint));
	LD	DE,30
	LD	BC,(BMKFileDataBuffA)
	CALL	LWRD ?S_MUL_L02
	LD	HL,BMKFileDataBuffA
	ADD	HL,DE
	LD	BC,4
	ADD	HL,BC
	EX	DE,HL
	LD	L,(IX+2)
	LD	H,(IX+3)
	LD	C,30
	LDIR
; 131.	
; 132.	    (pMusicBookMarkFileA->CurRecordNO)++;   
	LD	HL,(BMKFileDataBuffA)
	INC	HL
	LD	(BMKFileDataBuffA),HL
; 133.	    if(pMusicBookMarkFileA->CurRecordNO>=MUSICBOOKMARK_MAX)
	LD	BC,32780
	LD	HL,(BMKFileDataBuffA)
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	C,?0030
?0029:
; 134.	        pMusicBookMarkFileA->CurRecordNO=0;
	LD	HL,0
	LD	(BMKFileDataBuffA),HL
?0030:
; 135.	    
; 136.	    if(pMusicBookMarkFileA->RecordCount<MUSICBOOKMARK_MAX)
	LD	HL,(BMKFileDataBuffA+2)
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0032
?0031:
; 137.	        (pMusicBookMarkFileA->RecordCount)++;
	LD	HL,(BMKFileDataBuffA+2)
	INC	HL
	LD	(BMKFileDataBuffA+2),HL
?0032:
; 138.	
; 139.	    FS_FSeek(FileBKSecNo,FS_SEEK_FFROMSTART,hBmkFileA);
	LD	HL,(hBmkFileA)
	PUSH	HL
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0066
	POP	HL
	POP	HL
; 140.	    FS_FWrite(BMKFileDataBuffA,1,hBmkFileA);
	LD	HL,(hBmkFileA)
	PUSH	HL
	CALL	LWRD ?0064
	POP	HL
; 141.	    FS_FClose(hBmkFileA);
	CALL	LWRD ?0067
; 142.	    output8(0x27,BmkIMKA_Reg);
; 143.	
; 144.	    return TRUE;
; 145.	}
?0033:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0065:
	LD	C,L
	LD	B,H
	LD	E,(IX+4)
	LD	D,(IX+5)
	LD	A,BYTE3 GetBMkInforA
	LD	HL,LWRD GetBMkInforA
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0066:
	LD	E,(IX-2)
	LD	D,(IX-1)
	LD	A,D
	RLCA
	SBC	A,A
	LD	C,A
	LD	B,C
	JP	LWRD FS_FSeek
?0067:
	LD	DE,(hBmkFileA)
	CALL	LWRD FS_FClose
	LD	A,(BmkIMKA_Reg)
	OUT	(39),A
	LD	L,1
	RET
?0068:
	LD	DE,(hBmkFileA)
	CALL	LWRD FS_FClose
	LD	A,(BmkIMKA_Reg)
	OUT	(39),A
	RET
GetBookMark:
; 146.	
; 147.	/****************************************************************
; 148.	*Description: get the Bookmark from BOOKMARK.BMK file by current file
; 149.	*Arguments:
; 150.	*            breakpt:bookmark record
; 151.	*                         curfile:current file
; 152.	* Returns:
; 153.	*            TRUE: Successful,
; 154.	*            FALSE: Fail.
; 155.	* Notes:
; 156.	****************************************************************/
; 157.	BOOL GetBookMark(STRU_MusicBookMark *bookmark,file_location_t *curfile)
; 158.	{
	CALL	LWRD ?ENT_AUTO_DIRECT_L09
	DEFW	65534
; 159.	    int FileBKSecNo;
; 160.	
; 161.	        if(!ReadBookMarkHeardA())
	LD	A,BYTE3 ReadBookMarkHeardA
	LD	HL,LWRD ReadBookMarkHeardA
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	Z,?0053
?0034:
; 162.	                return FALSE;
?0035:
; 163.	
; 164.	    if(!GetBMkInforA(curfile,&FileBKSecNo))
	LD	HL,0
	ADD	HL,SP
	CALL	LWRD ?0065
	INC	L
	DEC	L
	JR	Z,?0054
?0036:
; 165.	    {
; 166.	        FS_FClose(hBmkFileA);
; 167.	        output8(0x27,BmkIMKA_Reg); 
; 168.	        return FALSE;
; 169.	    }
?0037:
; 170.	
; 171.	    if(!FS_FSeek(FileBKSecNo,FS_SEEK_FFROMSTART,hBmkFileA))
	LD	HL,(hBmkFileA)
	PUSH	HL
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0066
	POP	HL
	POP	HL
	OR	A
	JR	NZ,?0039
?0038:
; 172.	    {
; 173.	        FS_FClose(hBmkFileA);
?0054:
	CALL	LWRD ?0068
; 174.	        output8(0x27,BmkIMKA_Reg); 
; 175.	        return FALSE;
?0053:
	LD	L,0
; 176.	    }        
	JR	?0040
?0039:
; 177.	    FS_FRead(BMKFileDataBuffA,1,hBmkFileA);
	LD	HL,(hBmkFileA)
	PUSH	HL
	CALL	LWRD ?0063
	POP	HL
; 178.	    FS_FClose(hBmkFileA);       
	CALL	LWRD ?0068
; 179.	    output8(0x27,BmkIMKA_Reg);
; 180.	
; 181.	    memcpy(bookmark,BMKFileDataBuffA,sizeof(STRU_MusicBookMark));
	LD	BC,366
	LD	E,(IX+2)
	LD	D,(IX+3)
	LD	HL,BMKFileDataBuffA
	LDIR
; 182.	            
; 183.	    return TRUE;
	LD	L,1
; 184.	
; 185.	}
?0040:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
CreateBookMarkFile:
; 186.	
; 187.	BOOL CreateBookMarkFile()
; 188.	{
	PUSH	BC
	PUSH	DE
	PUSH	IX
	PUSH	AF
	PUSH	AF
; 189.	        int SecCount;
; 190.	        long CurDirBak;
; 191.	        
; 192.	    BmkIMKA_Reg=input8(0x27);
; 193.	    output8(0x27,0);
; 194.	
; 195.	    CurDirBak=FS_GetCurDir();
	CALL	LWRD ?0061
	PUSH	HL
	LD	HL,2
	ADD	HL,SP
	POP	DE
	LD	(HL),E
	INC	HL
	LD	(HL),D
	INC	HL
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 196.	    FS_CD(sBmkRootA);
	CALL	LWRD ?0062
; 197.	
; 198.	    hBmkFileA=FS_FOpen(sBmkFileNameA,FS_OPEN_NORMAL);
; 199.	    if(hBmkFileA!=NULL)
	LD	A,L
	OR	H
	JR	Z,?0042
?0041:
; 200.	    {
; 201.	                FS_FClose(hBmkFileA);       
	EX	DE,HL
	CALL	LWRD FS_FClose
; 202.	                        FS_SetCurDir(CurDirBak);
	LD	HL,0
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	LWRD FS_SetCurDir
; 203.	                        output8(0x27,BmkIMKA_Reg);
	JR	?0060
; 204.	            return FALSE;
; 205.	    }
?0042:
; 206.	
; 207.	    FS_FRemove(sBmkFileNameA);             //zhangxs add 
	LD	DE,sBmkFileNameA
	CALL	LWRD FS_FRemove
; 208.	    hBmkFileA=FS_FCreate(sBmkFileNameA);
	LD	DE,sBmkFileNameA
	CALL	LWRD FS_FCreate
	LD	(hBmkFileA),HL
; 209.	        FS_SetCurDir(CurDirBak);
	LD	HL,0
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	LWRD FS_SetCurDir
; 210.	    if(hBmkFileA==NULL)
	LD	HL,(hBmkFileA)
	LD	A,L
	OR	H
	JR	NZ,?0044
?0043:
; 211.	    {
; 212.	        output8(0x27,BmkIMKA_Reg);
?0060:
	LD	A,(BmkIMKA_Reg)
	OUT	(39),A
; 213.	        return FALSE;
	LD	L,0
; 214.	    }    
	JR	?0049
?0044:
; 215.	    memset(BMKFileDataBuffA,0,sizeof(BMKFileDataBuffA));
	LD	BC,512
	LD	DE,BMKFileDataBuffA
	LD	L,C
	CALL	LWRD ?MEMSET_L11
; 216.	
; 217.	        for(SecCount=0;SecCount<(FILEBOOKMARK_MAX+1);SecCount++)
	LD	IX,0
?0046:
	LD	BC,32784
	PUSH	IX
	POP	HL
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0045
?0047:
; 218.	        FS_FWrite(BMKFileDataBuffA,1,hBmkFileA);
	LD	HL,(hBmkFileA)
	PUSH	HL
	CALL	LWRD ?0064
	POP	HL
	INC	IX
	JR	?0046
?0045:
; 219.	
; 220.	    FS_FClose(hBmkFileA);       
	CALL	LWRD ?0067
; 221.	    output8(0x27,BmkIMKA_Reg);
; 222.	    return TRUE;
; 223.	}
?0049:
	POP	AF
	POP	AF
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 224.	
	RSEG	COM_MUSICBOOKMARKA_C
sBmkFileNameA:
	DEFB	'BOOKMARKBMK'
	DEFB	0
sBmkRootA:
	DEFB	': '
	DEFB	0
	RSEG	COM_MUSICBOOKMARKA_D
hBmkFileA:
	DEFS	2
BmkIMKA_Reg:
	DEFS	1
BMKFileDataBuffA:
	DEFS	512
	END

⌨️ 快捷键说明

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