📄 bookmarkadd.lst
字号:
145 }
\ 025D ?0033:
\ 025D C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0260 ?0065:
\ 0260 4D LD C,L
\ 0261 44 LD B,H
\ 0262 DD5E04 LD E,(IX+4)
\ 0265 DD5605 LD D,(IX+5)
\ 0268 3E00 LD A,BYTE3 GetBMkInforA
\ 026A 216500 LD HL,LWRD GetBMkInforA
\ 026D C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0270 ?0066:
\ 0270 DD5EFE LD E,(IX-2)
\ 0273 DD56FF LD D,(IX-1)
\ 0276 7A LD A,D
\ 0277 07 RLCA
\ 0278 9F SBC A,A
\ 0279 4F LD C,A
\ 027A 41 LD B,C
\ 027B C30000 JP LWRD FS_FSeek
\ 027E ?0067:
\ 027E ED5B0000 LD DE,(hBmkFileA)
\ 0282 CD0000 CALL LWRD FS_FClose
\ 0285 3A0200 LD A,(BmkIMKA_Reg)
\ 0288 D327 OUT (39),A
\ 028A 2E01 LD L,1
\ 028C C9 RET
\ 028D ?0068:
\ 028D ED5B0000 LD DE,(hBmkFileA)
\ 0291 CD0000 CALL LWRD FS_FClose
\ 0294 3A0200 LD A,(BmkIMKA_Reg)
\ 0297 D327 OUT (39),A
\ 0299 C9 RET
\ 029A 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 {
\ 029A CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 029D FEFF DEFW 65534
159 int FileBKSecNo;
160
161 if(!ReadBookMarkHeardA())
\ 029F 3E00 LD A,BYTE3 ReadBookMarkHeardA
\ 02A1 210000 LD HL,LWRD ReadBookMarkHeardA
\ 02A4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02A7 2C INC L
\ 02A8 2D DEC L
\ 02A9 281D JR Z,?0053
\ 02AB ?0034:
162 return FALSE;
\ 02AB ?0035:
163
164 if(!GetBMkInforA(curfile,&FileBKSecNo))
\ 02AB 210000 LD HL,0
\ 02AE 39 ADD HL,SP
\ 02AF CD6002 CALL LWRD ?0065
\ 02B2 2C INC L
\ 02B3 2D DEC L
\ 02B4 280F JR Z,?0054
\ 02B6 ?0036:
165 {
166 FS_FClose(hBmkFileA);
167 output8(0x27,BmkIMKA_Reg);
168 return FALSE;
169 }
\ 02B6 ?0037:
170
171 if(!FS_FSeek(FileBKSecNo,FS_SEEK_FFROMSTART,hBmkFileA))
\ 02B6 2A0000 LD HL,(hBmkFileA)
\ 02B9 E5 PUSH HL
\ 02BA 0E00 LD C,0
\ 02BC C5 PUSH BC
\ 02BD CD7002 CALL LWRD ?0066
\ 02C0 E1 POP HL
\ 02C1 E1 POP HL
\ 02C2 B7 OR A
\ 02C3 2007 JR NZ,?0039
\ 02C5 ?0038:
172 {
173 FS_FClose(hBmkFileA);
\ 02C5 ?0054:
\ 02C5 CD8D02 CALL LWRD ?0068
174 output8(0x27,BmkIMKA_Reg);
175 return FALSE;
\ 02C8 ?0053:
\ 02C8 2E00 LD L,0
176 }
\ 02CA 181B JR ?0040
\ 02CC ?0039:
177 FS_FRead(BMKFileDataBuffA,1,hBmkFileA);
\ 02CC 2A0000 LD HL,(hBmkFileA)
\ 02CF E5 PUSH HL
\ 02D0 CD5D00 CALL LWRD ?0063
\ 02D3 E1 POP HL
178 FS_FClose(hBmkFileA);
\ 02D4 CD8D02 CALL LWRD ?0068
179 output8(0x27,BmkIMKA_Reg);
180
181 memcpy(bookmark,BMKFileDataBuffA,sizeof(STRU_MusicBookMark));
\ 02D7 016E01 LD BC,366
\ 02DA DD5E02 LD E,(IX+2)
\ 02DD DD5603 LD D,(IX+3)
\ 02E0 210300 LD HL,BMKFileDataBuffA
\ 02E3 EDB0 LDIR
182
183 return TRUE;
\ 02E5 2E01 LD L,1
184
185 }
\ 02E7 ?0040:
\ 02E7 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 02EA CreateBookMarkFile:
186
187 BOOL CreateBookMarkFile()
188 {
\ 02EA C5 PUSH BC
\ 02EB D5 PUSH DE
\ 02EC DDE5 PUSH IX
\ 02EE F5 PUSH AF
\ 02EF F5 PUSH AF
189 int SecCount;
190 long CurDirBak;
191
192 BmkIMKA_Reg=input8(0x27);
193 output8(0x27,0);
194
195 CurDirBak=FS_GetCurDir();
\ 02F0 CD4000 CALL LWRD ?0061
\ 02F3 E5 PUSH HL
\ 02F4 210200 LD HL,2
\ 02F7 39 ADD HL,SP
\ 02F8 D1 POP DE
\ 02F9 73 LD (HL),E
\ 02FA 23 INC HL
\ 02FB 72 LD (HL),D
\ 02FC 23 INC HL
\ 02FD 71 LD (HL),C
\ 02FE 23 INC HL
\ 02FF 70 LD (HL),B
196 FS_CD(sBmkRootA);
\ 0300 CD4B00 CALL LWRD ?0062
197
198 hBmkFileA=FS_FOpen(sBmkFileNameA,FS_OPEN_NORMAL);
199 if(hBmkFileA!=NULL)
\ 0303 7D LD A,L
\ 0304 B4 OR H
\ 0305 2814 JR Z,?0042
\ 0307 ?0041:
200 {
201 FS_FClose(hBmkFileA);
\ 0307 EB EX DE,HL
\ 0308 CD0000 CALL LWRD FS_FClose
202 FS_SetCurDir(CurDirBak);
\ 030B 210000 LD HL,0
\ 030E 39 ADD HL,SP
\ 030F 5E LD E,(HL)
\ 0310 23 INC HL
\ 0311 56 LD D,(HL)
\ 0312 23 INC HL
\ 0313 4E LD C,(HL)
\ 0314 23 INC HL
\ 0315 46 LD B,(HL)
\ 0316 CD0000 CALL LWRD FS_SetCurDir
203 output8(0x27,BmkIMKA_Reg);
\ 0319 1824 JR ?0060
204 return FALSE;
205 }
\ 031B ?0042:
206
207 FS_FRemove(sBmkFileNameA); //zhangxs add
\ 031B 110000 LD DE,sBmkFileNameA
\ 031E CD0000 CALL LWRD FS_FRemove
208 hBmkFileA=FS_FCreate(sBmkFileNameA);
\ 0321 110000 LD DE,sBmkFileNameA
\ 0324 CD0000 CALL LWRD FS_FCreate
\ 0327 220000 LD (hBmkFileA),HL
209 FS_SetCurDir(CurDirBak);
\ 032A 210000 LD HL,0
\ 032D 39 ADD HL,SP
\ 032E 5E LD E,(HL)
\ 032F 23 INC HL
\ 0330 56 LD D,(HL)
\ 0331 23 INC HL
\ 0332 4E LD C,(HL)
\ 0333 23 INC HL
\ 0334 46 LD B,(HL)
\ 0335 CD0000 CALL LWRD FS_SetCurDir
210 if(hBmkFileA==NULL)
\ 0338 2A0000 LD HL,(hBmkFileA)
\ 033B 7D LD A,L
\ 033C B4 OR H
\ 033D 2009 JR NZ,?0044
\ 033F ?0043:
211 {
212 output8(0x27,BmkIMKA_Reg);
\ 033F ?0060:
\ 033F 3A0200 LD A,(BmkIMKA_Reg)
\ 0342 D327 OUT (39),A
213 return FALSE;
\ 0344 2E00 LD L,0
214 }
\ 0346 182A JR ?0049
\ 0348 ?0044:
215 memset(BMKFileDataBuffA,0,sizeof(BMKFileDataBuffA));
\ 0348 010002 LD BC,512
\ 034B 110300 LD DE,BMKFileDataBuffA
\ 034E 69 LD L,C
\ 034F CD0000 CALL LWRD ?MEMSET_L11
216
217 for(SecCount=0;SecCount<(FILEBOOKMARK_MAX+1);SecCount++)
\ 0352 DD210000 LD IX,0
\ 0356 ?0046:
\ 0356 011080 LD BC,32784
\ 0359 DDE5 PUSH IX
\ 035B E1 POP HL
\ 035C 78 LD A,B
\ 035D AC XOR H
\ 035E 67 LD H,A
\ 035F ED42 SBC HL,BC
\ 0361 300C JR NC,?0045
\ 0363 ?0047:
218 FS_FWrite(BMKFileDataBuffA,1,hBmkFileA);
\ 0363 2A0000 LD HL,(hBmkFileA)
\ 0366 E5 PUSH HL
\ 0367 CD9701 CALL LWRD ?0064
\ 036A E1 POP HL
\ 036B DD23 INC IX
\ 036D 18E7 JR ?0046
\ 036F ?0045:
219
220 FS_FClose(hBmkFileA);
\ 036F CD7E02 CALL LWRD ?0067
221 output8(0x27,BmkIMKA_Reg);
222 return TRUE;
223 }
\ 0372 ?0049:
\ 0372 F1 POP AF
\ 0373 F1 POP AF
\ 0374 DDE1 POP IX
\ 0376 D1 POP DE
\ 0377 C1 POP BC
\ 0378 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
224
\ 0000 RSEG COM_MUSICBOOKMARKA_C
\ 0000 sBmkFileNameA:
\ 0000 424F4F4B DEFB 'BOOKMARKBMK'
\ 0004 4D41524B
\ 0008 424D4B
\ 000B 00 DEFB 0
\ 000C sBmkRootA:
\ 000C 3A20 DEFB ': '
\ 000E 00 DEFB 0
\ 0000 RSEG COM_MUSICBOOKMARKA_D
\ 0000 hBmkFileA:
\ 0002 DEFS 2
\ 0002 BmkIMKA_Reg:
\ 0003 DEFS 1
\ 0003 BMKFileDataBuffA:
\ 0203 DEFS 512
\ 0203 END
Errors: none
Warnings: none
Code size: 891
Constant size: 15
Static variable size: Data(515) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -