📄 bookmarkadd.lst
字号:
\ 0100 1892 JR ?0010
\ 0102 ?0009:
72 }
73 *FileBKSecNo=pBookMarkHeardA->CurRecordNO+1;
\ 0102 2A0300 LD HL,(BMKFileDataBuffA)
\ 0105 23 INC HL
\ 0106 E5 PUSH HL
\ 0107 210200 LD HL,2
\ 010A 39 ADD HL,SP
\ 010B 7E LD A,(HL)
\ 010C 23 INC HL
\ 010D 66 LD H,(HL)
\ 010E 6F LD L,A
\ 010F C1 POP BC
\ 0110 71 LD (HL),C
\ 0111 23 INC HL
\ 0112 70 LD (HL),B
74 return FALSE;
\ 0113 2E00 LD L,0
75 }
\ 0115 ?0016:
\ 0115 F1 POP AF
\ 0116 DDE1 POP IX
\ 0118 FDE1 POP IY
\ 011A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 011D AddBMkInfor:
76
77 void AddBMkInfor(file_location_t *curfile)
78 {
\ 011D C5 PUSH BC
\ 011E DDE5 PUSH IX
\ 0120 D5 PUSH DE
\ 0121 DDE1 POP IX
79 pBookMarkHeardA->BMkInfor[pBookMarkHeardA->CurRecordNO].ClusterNo=curfile->ClusterNo;
\ 0123 2A0300 LD HL,(BMKFileDataBuffA)
\ 0126 29 ADD HL,HL
\ 0127 29 ADD HL,HL
\ 0128 29 ADD HL,HL
\ 0129 29 ADD HL,HL
\ 012A 010300 LD BC,BMKFileDataBuffA
\ 012D 09 ADD HL,BC
\ 012E 010400 LD BC,4
\ 0131 09 ADD HL,BC
\ 0132 E5 PUSH HL
\ 0133 210900 LD HL,9
\ 0136 19 ADD HL,DE
\ 0137 5E LD E,(HL)
\ 0138 23 INC HL
\ 0139 56 LD D,(HL)
\ 013A 23 INC HL
\ 013B 4E LD C,(HL)
\ 013C 23 INC HL
\ 013D 46 LD B,(HL)
\ 013E E1 POP HL
\ 013F 73 LD (HL),E
\ 0140 23 INC HL
\ 0141 72 LD (HL),D
\ 0142 23 INC HL
\ 0143 71 LD (HL),C
\ 0144 23 INC HL
\ 0145 70 LD (HL),B
80 memcpy(&(pBookMarkHeardA->BMkInfor[pBookMarkHeardA->CurRecordNO].FileName),curfile->filename,12);
\ 0146 2A0300 LD HL,(BMKFileDataBuffA)
\ 0149 29 ADD HL,HL
\ 014A 29 ADD HL,HL
\ 014B 29 ADD HL,HL
\ 014C 29 ADD HL,HL
\ 014D 110300 LD DE,BMKFileDataBuffA
\ 0150 19 ADD HL,DE
\ 0151 110800 LD DE,8
\ 0154 19 ADD HL,DE
\ 0155 EB EX DE,HL
\ 0156 2E1A LD L,26
\ 0158 DDE5 PUSH IX
\ 015A C1 POP BC
\ 015B 09 ADD HL,BC
\ 015C 010C00 LD BC,12
\ 015F EDB0 LDIR
81
82 pBookMarkHeardA->CurRecordNO++;
\ 0161 2A0300 LD HL,(BMKFileDataBuffA)
\ 0164 23 INC HL
\ 0165 220300 LD (BMKFileDataBuffA),HL
83 if(pBookMarkHeardA->CurRecordNO==FILEBOOKMARK_MAX)
\ 0168 2A0300 LD HL,(BMKFileDataBuffA)
\ 016B 3E0F LD A,15
\ 016D AD XOR L
\ 016E B4 OR H
\ 016F 2004 JR NZ,?0018
\ 0171 ?0017:
84 pBookMarkHeardA->CurRecordNO=0;
\ 0171 ED430300 LD (BMKFileDataBuffA),BC
\ 0175 ?0018:
85
86 if(pBookMarkHeardA->RecordCount<FILEBOOKMARK_MAX)
\ 0175 2A0500 LD HL,(BMKFileDataBuffA+2)
\ 0178 010F80 LD BC,32783
\ 017B 78 LD A,B
\ 017C AC XOR H
\ 017D 67 LD H,A
\ 017E ED42 SBC HL,BC
\ 0180 3007 JR NC,?0020
\ 0182 ?0019:
87 pBookMarkHeardA->RecordCount++;
\ 0182 2A0500 LD HL,(BMKFileDataBuffA+2)
\ 0185 23 INC HL
\ 0186 220500 LD (BMKFileDataBuffA+2),HL
\ 0189 ?0020:
88
89 FS_FWrite(BMKFileDataBuffA,1,hBmkFileA);
\ 0189 2A0000 LD HL,(hBmkFileA)
\ 018C E5 PUSH HL
\ 018D CD9701 CALL LWRD ?0064
\ 0190 E1 POP HL
90 }
\ 0191 DDE1 POP IX
\ 0193 C1 POP BC
\ 0194 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0197 ?0064:
\ 0197 0E01 LD C,1
\ 0199 110300 LD DE,BMKFileDataBuffA
\ 019C C30000 JP LWRD FS_FWrite
\ 019F AddBookMarkItem:
91
92 /****************************************************************
93 *Description: save bookmark information to BOOKMARK.BMK file
94 *Arguments:
95 * breakpt:bookmark record
96 * curfile:current file
97 * Returns:
98 * TRUE: Successful,
99 * FALSE: Fail.
100 * Notes:
101 ****************************************************************/
102 BOOL AddBookMarkItem(STRU_MusicBreakPoint *breakpt,file_location_t *curfile)
103 {
\ 019F CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 01A2 FCFF DEFW 65532
104 int FileBKSecNo;
105 BOOL bNewBookMark;
106
107 if(!ReadBookMarkHeardA())
\ 01A4 3E00 LD A,BYTE3 ReadBookMarkHeardA
\ 01A6 210000 LD HL,LWRD ReadBookMarkHeardA
\ 01A9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01AC 2C INC L
\ 01AD 2D DEC L
\ 01AE 2833 JR Z,?0050
\ 01B0 ?0021:
108 return FALSE;
\ 01B0 ?0022:
109
110 bNewBookMark=FALSE;
\ 01B0 DD36FC00 LD (IX-4),0
111 if(!GetBMkInforA(curfile,&FileBKSecNo))
\ 01B4 210200 LD HL,2
\ 01B7 39 ADD HL,SP
\ 01B8 CD6002 CALL LWRD ?0065
\ 01BB 2C INC L
\ 01BC 2D DEC L
\ 01BD 2012 JR NZ,?0024
\ 01BF ?0023:
112 {
113 AddBMkInfor(curfile);
\ 01BF DD5E04 LD E,(IX+4)
\ 01C2 DD5605 LD D,(IX+5)
\ 01C5 3E00 LD A,BYTE3 AddBMkInfor
\ 01C7 211D01 LD HL,LWRD AddBMkInfor
\ 01CA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
114 bNewBookMark=TRUE;
\ 01CD DD36FC01 LD (IX-4),1
\ 01D1 ?0024:
115 }
116
117 if(!FS_FSeek(FileBKSecNo,FS_SEEK_FFROMSTART,hBmkFileA))
\ 01D1 2A0000 LD HL,(hBmkFileA)
\ 01D4 E5 PUSH HL
\ 01D5 0E00 LD C,0
\ 01D7 C5 PUSH BC
\ 01D8 CD7002 CALL LWRD ?0066
\ 01DB E1 POP HL
\ 01DC E1 POP HL
\ 01DD B7 OR A
\ 01DE 2007 JR NZ,?0026
\ 01E0 ?0025:
118 {
119 FS_FClose(hBmkFileA);
\ 01E0 CD8D02 CALL LWRD ?0068
120 output8(0x27,BmkIMKA_Reg);
121 return FALSE;
\ 01E3 ?0050:
\ 01E3 2E00 LD L,0
122 }
\ 01E5 1876 JR ?0033
\ 01E7 ?0026:
123 FS_FRead(BMKFileDataBuffA,1,hBmkFileA);
\ 01E7 2A0000 LD HL,(hBmkFileA)
\ 01EA E5 PUSH HL
\ 01EB CD5D00 CALL LWRD ?0063
\ 01EE E1 POP HL
124
125 if(bNewBookMark)
\ 01EF AF XOR A
\ 01F0 DDB6FC OR (IX-4)
\ 01F3 2809 JR Z,?0028
\ 01F5 ?0027:
126 {
127 pMusicBookMarkFileA->CurRecordNO=0;
\ 01F5 210000 LD HL,0
\ 01F8 220300 LD (BMKFileDataBuffA),HL
128 pMusicBookMarkFileA->RecordCount=0;
\ 01FB 220500 LD (BMKFileDataBuffA+2),HL
\ 01FE ?0028:
129 }
130 memcpy(&(pMusicBookMarkFileA->MusicBreakPoint[pMusicBookMarkFileA->CurRecordNO]),breakpt,sizeof(STRU_MusicBreakPoint));
\ 01FE 111E00 LD DE,30
\ 0201 ED4B0300 LD BC,(BMKFileDataBuffA)
\ 0205 CD0000 CALL LWRD ?S_MUL_L02
\ 0208 210300 LD HL,BMKFileDataBuffA
\ 020B 19 ADD HL,DE
\ 020C 010400 LD BC,4
\ 020F 09 ADD HL,BC
\ 0210 EB EX DE,HL
\ 0211 DD6E02 LD L,(IX+2)
\ 0214 DD6603 LD H,(IX+3)
\ 0217 0E1E LD C,30
\ 0219 EDB0 LDIR
131
132 (pMusicBookMarkFileA->CurRecordNO)++;
\ 021B 2A0300 LD HL,(BMKFileDataBuffA)
\ 021E 23 INC HL
\ 021F 220300 LD (BMKFileDataBuffA),HL
133 if(pMusicBookMarkFileA->CurRecordNO>=MUSICBOOKMARK_MAX)
\ 0222 010C80 LD BC,32780
\ 0225 2A0300 LD HL,(BMKFileDataBuffA)
\ 0228 78 LD A,B
\ 0229 AC XOR H
\ 022A 67 LD H,A
\ 022B ED42 SBC HL,BC
\ 022D 3806 JR C,?0030
\ 022F ?0029:
134 pMusicBookMarkFileA->CurRecordNO=0;
\ 022F 210000 LD HL,0
\ 0232 220300 LD (BMKFileDataBuffA),HL
\ 0235 ?0030:
135
136 if(pMusicBookMarkFileA->RecordCount<MUSICBOOKMARK_MAX)
\ 0235 2A0500 LD HL,(BMKFileDataBuffA+2)
\ 0238 78 LD A,B
\ 0239 AC XOR H
\ 023A 67 LD H,A
\ 023B ED42 SBC HL,BC
\ 023D 3007 JR NC,?0032
\ 023F ?0031:
137 (pMusicBookMarkFileA->RecordCount)++;
\ 023F 2A0500 LD HL,(BMKFileDataBuffA+2)
\ 0242 23 INC HL
\ 0243 220500 LD (BMKFileDataBuffA+2),HL
\ 0246 ?0032:
138
139 FS_FSeek(FileBKSecNo,FS_SEEK_FFROMSTART,hBmkFileA);
\ 0246 2A0000 LD HL,(hBmkFileA)
\ 0249 E5 PUSH HL
\ 024A 0E00 LD C,0
\ 024C C5 PUSH BC
\ 024D CD7002 CALL LWRD ?0066
\ 0250 E1 POP HL
\ 0251 E1 POP HL
140 FS_FWrite(BMKFileDataBuffA,1,hBmkFileA);
\ 0252 2A0000 LD HL,(hBmkFileA)
\ 0255 E5 PUSH HL
\ 0256 CD9701 CALL LWRD ?0064
\ 0259 E1 POP HL
141 FS_FClose(hBmkFileA);
\ 025A CD7E02 CALL LWRD ?0067
142 output8(0x27,BmkIMKA_Reg);
143
144 return TRUE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -