📄 bookmarkdel.lst
字号:
\ 00DD 7E LD A,(HL)
\ 00DE 23 INC HL
\ 00DF 66 LD H,(HL)
\ 00E0 6F LD L,A
\ 00E1 C1 POP BC
\ 00E2 71 LD (HL),C
\ 00E3 23 INC HL
\ 00E4 70 LD (HL),B
59 return TRUE; // have record
\ 00E5 2E01 LD L,1
60 }
\ 00E7 1817 JR ?0016
\ 00E9 ?0015:
\ 00E9 ?0013:
61 }
62 CurRecNo++;
\ 00E9 DD23 INC IX
\ 00EB 1899 JR ?0010
\ 00ED ?0009:
63 }
64 *FileBKSecNo=pBookMarkHeardD->CurRecordNO+1;
\ 00ED 2A0300 LD HL,(BMKFileDataBuffD)
\ 00F0 23 INC HL
\ 00F1 E5 PUSH HL
\ 00F2 210200 LD HL,2
\ 00F5 39 ADD HL,SP
\ 00F6 7E LD A,(HL)
\ 00F7 23 INC HL
\ 00F8 66 LD H,(HL)
\ 00F9 6F LD L,A
\ 00FA C1 POP BC
\ 00FB 71 LD (HL),C
\ 00FC 23 INC HL
\ 00FD 70 LD (HL),B
65 return FALSE;
\ 00FE ?0047:
\ 00FE 2E00 LD L,0
66 }
\ 0100 ?0016:
\ 0100 F1 POP AF
\ 0101 DDE1 POP IX
\ 0103 FDE1 POP IY
\ 0105 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0108 ?0072:
\ 0108 ED4B0500 LD BC,(BMKFileDataBuffD+2)
\ 010C ?0073:
\ 010C DDE5 PUSH IX
\ 010E E1 POP HL
\ 010F C30000 JP LWRD ?SS_CMP_L02
\ 0112 DeleteBookMarkItem:
67
68 /****************************************************************
69 *Description: delete bookmark item by Record Index
70 *Arguments:
71 * SelIndex:record index
72 * curfile:current music file information
73 * Returns:
74 * TRUE: Successful,
75 * FALSE: Fail.
76 * Notes:
77 ****************************************************************/
78 BOOL DeleteBookMarkItem(int SelIndex,file_location_t *curfile)
79 {
\ 0112 FDE5 PUSH IY
\ 0114 DDE5 PUSH IX
\ 0116 C5 PUSH BC
\ 0117 F5 PUSH AF
\ 0118 D5 PUSH DE
\ 0119 DDE1 POP IX
80 int StartIndex;
81 int FileBKSecNo;
82
83 if(!ReadBookMarkHeardD())
\ 011B 3E00 LD A,BYTE3 ReadBookMarkHeardD
\ 011D 210000 LD HL,LWRD ReadBookMarkHeardD
\ 0120 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0123 2C INC L
\ 0124 2D DEC L
\ 0125 2848 JR Z,?0066
\ 0127 ?0017:
84 return FALSE;
\ 0127 ?0018:
85
86 if(!GetBMkInforD(curfile,&FileBKSecNo))
\ 0127 210000 LD HL,0
\ 012A 39 ADD HL,SP
\ 012B 4D LD C,L
\ 012C 44 LD B,H
\ 012D 23 INC HL
\ 012E 23 INC HL
\ 012F 5E LD E,(HL)
\ 0130 23 INC HL
\ 0131 56 LD D,(HL)
\ 0132 3E00 LD A,BYTE3 GetBMkInforD
\ 0134 215F00 LD HL,LWRD GetBMkInforD
\ 0137 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 013A 2C INC L
\ 013B 2D DEC L
\ 013C 2825 JR Z,?0067
\ 013E ?0019:
87 {
88 FS_FClose(hBmkFileD);
89 output8(0x27,BmkIMKD_Reg);
90 return FALSE;
91 }
\ 013E ?0020:
92
93 if(!FS_FSeek(FileBKSecNo,FS_SEEK_FFROMSTART,hBmkFileD))
\ 013E 2A0000 LD HL,(hBmkFileD)
\ 0141 E5 PUSH HL
\ 0142 0E00 LD C,0
\ 0144 C5 PUSH BC
\ 0145 210400 LD HL,4
\ 0148 39 ADD HL,SP
\ 0149 CDA002 CALL LWRD ?0074
\ 014C E1 POP HL
\ 014D E1 POP HL
\ 014E B7 OR A
\ 014F 2812 JR Z,?0067
\ 0151 ?0021:
94 {
95 FS_FClose(hBmkFileD);
96 output8(0x27,BmkIMKD_Reg);
97 return FALSE;
98 }
\ 0151 ?0022:
99 FS_FRead(BMKFileDataBuffD,1,hBmkFileD);
\ 0151 2A0000 LD HL,(hBmkFileD)
\ 0154 E5 PUSH HL
\ 0155 0E01 LD C,1
\ 0157 110300 LD DE,BMKFileDataBuffD
\ 015A CD0000 CALL LWRD FS_FRead
\ 015D E1 POP HL
100
101 if(SelIndex>=pMusicBookMarkFileD->RecordCount)
\ 015E CD0801 CALL LWRD ?0072
\ 0161 3811 JR C,?0024
\ 0163 ?0023:
102 {
103 FS_FClose(hBmkFileD);
\ 0163 ?0067:
\ 0163 ED5B0000 LD DE,(hBmkFileD)
\ 0167 CD0000 CALL LWRD FS_FClose
104 output8(0x27,BmkIMKD_Reg);
\ 016A 3A0200 LD A,(BmkIMKD_Reg)
\ 016D D327 OUT (39),A
105 return FALSE;
\ 016F ?0066:
\ 016F 2E00 LD L,0
106 }
\ 0171 C39C02 JP LWRD ?0045
\ 0174 ?0024:
107
108 if((pMusicBookMarkFileD->CurRecordNO>=MUSICBOOKMARK_MAX)||(pMusicBookMarkFileD->RecordCount>MUSICBOOKMARK_MAX))
\ 0174 010C80 LD BC,32780
\ 0177 2A0300 LD HL,(BMKFileDataBuffD)
\ 017A 78 LD A,B
\ 017B AC XOR H
\ 017C 67 LD H,A
\ 017D ED42 SBC HL,BC
\ 017F 300C JR NC,?0027
\ 0181 ED4B0500 LD BC,(BMKFileDataBuffD+2)
\ 0185 210C00 LD HL,12
\ 0188 CD0000 CALL LWRD ?SS_CMP_L02
\ 018B 300C JR NC,?0026
\ 018D ?0027:
\ 018D ?0028:
\ 018D ?0025:
109 {
110 pMusicBookMarkFileD->CurRecordNO=0;
\ 018D 210000 LD HL,0
\ 0190 220300 LD (BMKFileDataBuffD),HL
111 pMusicBookMarkFileD->RecordCount=0;
\ 0193 220500 LD (BMKFileDataBuffD+2),HL
112 }
113 else
\ 0196 C37102 JP LWRD ?0044
\ 0199 ?0026:
114 {
115 if(pMusicBookMarkFileD->CurRecordNO>=pMusicBookMarkFileD->RecordCount)
\ 0199 ED4B0500 LD BC,(BMKFileDataBuffD+2)
\ 019D 2A0300 LD HL,(BMKFileDataBuffD)
\ 01A0 CD0000 CALL LWRD ?SS_CMP_L02
\ 01A3 3809 JR C,?0031
\ 01A5 ?0030:
116 StartIndex=pMusicBookMarkFileD->CurRecordNO-pMusicBookMarkFileD->RecordCount;
\ 01A5 ED4B0500 LD BC,(BMKFileDataBuffD+2)
\ 01A9 2A0300 LD HL,(BMKFileDataBuffD)
\ 01AC 180F JR ?0062
117 else
\ 01AE ?0031:
118 StartIndex=MUSICBOOKMARK_MAX-(pMusicBookMarkFileD->RecordCount-pMusicBookMarkFileD->CurRecordNO);
\ 01AE 2A0500 LD HL,(BMKFileDataBuffD+2)
\ 01B1 ED4B0300 LD BC,(BMKFileDataBuffD)
\ 01B5 A7 AND A
\ 01B6 ED42 SBC HL,BC
\ 01B8 4D LD C,L
\ 01B9 44 LD B,H
\ 01BA 210C00 LD HL,12
\ 01BD ?0062:
\ 01BD A7 AND A
\ 01BE ED42 SBC HL,BC
\ 01C0 E5 PUSH HL
\ 01C1 FDE1 POP IY
\ 01C3 ?0032:
119
120 SelIndex=StartIndex+SelIndex;
\ 01C3 FDE5 PUSH IY
\ 01C5 C1 POP BC
\ 01C6 DD09 ADD IX,BC
121 if(SelIndex>=MUSICBOOKMARK_MAX)
\ 01C8 010C80 LD BC,32780
\ 01CB DDE5 PUSH IX
\ 01CD E1 POP HL
\ 01CE 78 LD A,B
\ 01CF AC XOR H
\ 01D0 67 LD H,A
\ 01D1 ED42 SBC HL,BC
\ 01D3 3805 JR C,?0034
\ 01D5 ?0033:
122 SelIndex-=MUSICBOOKMARK_MAX;
\ 01D5 01F4FF LD BC,65524
\ 01D8 DD09 ADD IX,BC
\ 01DA ?0034:
123
124 if(StartIndex<=SelIndex) //delete item from buffer
\ 01DA FDE5 PUSH IY
\ 01DC C1 POP BC
\ 01DD CD0C01 CALL LWRD ?0073
\ 01E0 3854 JR C,?0036
\ 01E2 ?0035:
125 {
126 if(SelIndex<(MUSICBOOKMARK_MAX-1))
\ 01E2 010B80 LD BC,32779
\ 01E5 78 LD A,B
\ 01E6 AC XOR H
\ 01E7 67 LD H,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -