📄 bookmarkadd.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:56:58 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\common\bookmarkadd.c #
# List file = d:\case_i_d913f\ap\ap_music\list\bookmarkadd.lst #
# Object file = d:\case_i_d913f\ap\ap_music\obj\bookmarkadd.r01 #
# ASM file = d:\case_i_d913f\ap\ap_music\list\bookmarkadd.s01 #
# Command line = -v0 -mb -OD:\case_i_d913f\ap\ap_music\Obj\ -e -K #
# -w -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d913f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d913f\ap\ap_music\List\ #
# -ND:\case_i_d913f\ap\ap_music\List\ -X #
# -Id:\sdk_i_913f\inc\ -Id:\case_i_d913f\inc\ #
# D:\CASE_I_D913F\AP\COMMON\bookmarkadd.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME bookmarkadd(17)
\ 0000 RSEG COM_MUSICBOOKMARKA(0)
\ 0000 RSEG COM_MUSICBOOKMARKA_C(0)
\ 0000 RSEG COM_MUSICBOOKMARKA_D(0)
\ 0000 PUBLIC AddBMkInfor
\ 0000 PUBLIC AddBookMarkItem
\ 0000 PUBLIC BMKFileDataBuffA
\ 0000 PUBLIC BmkIMKA_Reg
\ 0000 PUBLIC CreateBookMarkFile
\ 0000 EXTERN FS_CD
\ 0000 EXTERN FS_FClose
\ 0000 EXTERN FS_FCreate
\ 0000 EXTERN FS_FOpen
\ 0000 EXTERN FS_FRead
\ 0000 EXTERN FS_FRemove
\ 0000 EXTERN FS_FSeek
\ 0000 EXTERN FS_FWrite
\ 0000 EXTERN FS_GetCurDir
\ 0000 EXTERN FS_SetCurDir
\ 0000 PUBLIC GetBMkInforA
\ 0000 PUBLIC GetBookMark
\ 0000 PUBLIC ReadBookMarkHeardA
\ 0000 PUBLIC hBmkFileA
\ 0000 PUBLIC sBmkFileNameA
\ 0000 PUBLIC sBmkRootA
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?SS_CMP_L02
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?ENT_PARM_DIRECT_L09
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 EXTERN ?MEMSET_L11
\ 0000 EXTERN ?STRCMP_L11
\ 0000 RSEG COM_MUSICBOOKMARKA
\ 0000 ReadBookMarkHeardA:
1 /*******************************************************************************
2 * ACTOS AP
3 * ADPCM player basal module implementation
4 * (c) Copyright Actions Co,Ld.
5 *
6 * 2007.3 by mzh
7 *******************************************************************************/
8
9 #include "actos.h"
10 #include "ap_common.h"
11 #include <MusicBookMark.h>
12
13 #define pMusicBookMarkFileA ((STRU_MusicBookMark*)BMKFileDataBuffA)
14 #define pBookMarkHeardA ((STRU_BookMarkHeard*)BMKFileDataBuffA)
15
16 #pragma memory=constseg(COM_MUSICBOOKMARKA_C)
17 const char sBmkFileNameA[]="BOOKMARKBMK";
18 const char sBmkRootA[]=": ";
19 #pragma memory=default
20
21 #pragma memory=dataseg(COM_MUSICBOOKMARKA_D)
22 HANDLE hBmkFileA;
23 uchar BmkIMKA_Reg;
24 char BMKFileDataBuffA[512];
25 #pragma memory=default
26
27 #pragma codeseg(COM_MUSICBOOKMARKA)
28
29 BOOL ReadBookMarkHeardA()
30 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 FCFF DEFW 65532
31 long CurDirBak;
32
33 BmkIMKA_Reg=input8(0x27);
34 output8(0x27,0);
35
36 CurDirBak=FS_GetCurDir();
\ 0005 CD4000 CALL LWRD ?0061
\ 0008 DD75FC LD (IX-4),L
\ 000B DD74FD LD (IX-3),H
\ 000E DD71FE LD (IX-2),C
\ 0011 DD70FF LD (IX-1),B
37 FS_CD(sBmkRootA);
\ 0014 CD4B00 CALL LWRD ?0062
38
39 hBmkFileA=FS_FOpen(sBmkFileNameA,FS_OPEN_NORMAL);
40 FS_SetCurDir(CurDirBak);
\ 0017 DD4EFE LD C,(IX-2)
\ 001A DD46FF LD B,(IX-1)
\ 001D DD5EFC LD E,(IX-4)
\ 0020 DD56FD LD D,(IX-3)
\ 0023 CD0000 CALL LWRD FS_SetCurDir
41 if(hBmkFileA==NULL)
\ 0026 2A0000 LD HL,(hBmkFileA)
\ 0029 7D LD A,L
\ 002A B4 OR H
\ 002B 2009 JR NZ,?0003
\ 002D ?0002:
42 {
43 output8(0x27,BmkIMKA_Reg);
\ 002D 3A0200 LD A,(BmkIMKA_Reg)
\ 0030 D327 OUT (39),A
44 return FALSE;
\ 0032 2E00 LD L,0
45 }
\ 0034 1807 JR ?0004
\ 0036 ?0003:
46 FS_FRead(BMKFileDataBuffA,1,hBmkFileA);
\ 0036 E5 PUSH HL
\ 0037 CD5D00 CALL LWRD ?0063
\ 003A E1 POP HL
47 return TRUE;
\ 003B 2E01 LD L,1
48 }
\ 003D ?0004:
\ 003D C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0040 ?0061:
\ 0040 DB27 IN A,(39)
\ 0042 320200 LD (BmkIMKA_Reg),A
\ 0045 AF XOR A
\ 0046 D327 OUT (39),A
\ 0048 C30000 JP LWRD FS_GetCurDir
\ 004B ?0062:
\ 004B 110C00 LD DE,sBmkRootA
\ 004E CD0000 CALL LWRD FS_CD
\ 0051 0E00 LD C,0
\ 0053 110000 LD DE,sBmkFileNameA
\ 0056 CD0000 CALL LWRD FS_FOpen
\ 0059 220000 LD (hBmkFileA),HL
\ 005C C9 RET
\ 005D ?0063:
\ 005D 0E01 LD C,1
\ 005F 110300 LD DE,BMKFileDataBuffA
\ 0062 C30000 JP LWRD FS_FRead
\ 0065 GetBMkInforA:
49
50 BOOL GetBMkInforA(file_location_t *curfile, int *FileBKSecNo)
51 {
\ 0065 FDE5 PUSH IY
\ 0067 DDE5 PUSH IX
\ 0069 C5 PUSH BC
\ 006A D5 PUSH DE
\ 006B FDE1 POP IY
52 int CurRecNo;
53
54 if(pBookMarkHeardA->RecordCount>FILEBOOKMARK_MAX)
\ 006D ED4B0500 LD BC,(BMKFileDataBuffA+2)
\ 0071 210F00 LD HL,15
\ 0074 CD0000 CALL LWRD ?SS_CMP_L02
\ 0077 3004 JR NC,?0006
\ 0079 ?0005:
55 pBookMarkHeardA->RecordCount=0;
\ 0079 6C LD L,H
\ 007A 220500 LD (BMKFileDataBuffA+2),HL
\ 007D ?0006:
56 if(pBookMarkHeardA->CurRecordNO>=FILEBOOKMARK_MAX)
\ 007D 010F80 LD BC,32783
\ 0080 2A0300 LD HL,(BMKFileDataBuffA)
\ 0083 78 LD A,B
\ 0084 AC XOR H
\ 0085 67 LD H,A
\ 0086 ED42 SBC HL,BC
\ 0088 3806 JR C,?0008
\ 008A ?0007:
57 pBookMarkHeardA->CurRecordNO=0;
\ 008A 210000 LD HL,0
\ 008D 220300 LD (BMKFileDataBuffA),HL
\ 0090 ?0008:
58
59 CurRecNo=0;
\ 0090 DD210000 LD IX,0
\ 0094 ?0010:
60 while(CurRecNo<pBookMarkHeardA->RecordCount)
\ 0094 ED4B0500 LD BC,(BMKFileDataBuffA+2)
\ 0098 DDE5 PUSH IX
\ 009A E1 POP HL
\ 009B CD0000 CALL LWRD ?SS_CMP_L02
\ 009E 3062 JR NC,?0009
\ 00A0 ?0011:
61 {
62
63 if(pBookMarkHeardA->BMkInfor[CurRecNo].ClusterNo==curfile->ClusterNo)
\ 00A0 29 ADD HL,HL
\ 00A1 29 ADD HL,HL
\ 00A2 29 ADD HL,HL
\ 00A3 29 ADD HL,HL
\ 00A4 010300 LD BC,BMKFileDataBuffA
\ 00A7 09 ADD HL,BC
\ 00A8 010400 LD BC,4
\ 00AB 09 ADD HL,BC
\ 00AC 4E LD C,(HL)
\ 00AD 23 INC HL
\ 00AE 46 LD B,(HL)
\ 00AF 23 INC HL
\ 00B0 5E LD E,(HL)
\ 00B1 23 INC HL
\ 00B2 56 LD D,(HL)
\ 00B3 69 LD L,C
\ 00B4 60 LD H,B
\ 00B5 FD4E09 LD C,(IY+9)
\ 00B8 FD460A LD B,(IY+10)
\ 00BB A7 AND A
\ 00BC ED42 SBC HL,BC
\ 00BE 203E JR NZ,?0015
\ 00C0 EB EX DE,HL
\ 00C1 FD4E0B LD C,(IY+11)
\ 00C4 FD460C LD B,(IY+12)
\ 00C7 ED42 SBC HL,BC
\ 00C9 2033 JR NZ,?0015
\ 00CB ?0012:
64 {
65 if(strcmp(pBookMarkHeardA->BMkInfor[CurRecNo].FileName,curfile->filename)==0)
\ 00CB DDE5 PUSH IX
\ 00CD E1 POP HL
\ 00CE 29 ADD HL,HL
\ 00CF 29 ADD HL,HL
\ 00D0 29 ADD HL,HL
\ 00D1 29 ADD HL,HL
\ 00D2 010300 LD BC,BMKFileDataBuffA
\ 00D5 09 ADD HL,BC
\ 00D6 010800 LD BC,8
\ 00D9 09 ADD HL,BC
\ 00DA EB EX DE,HL
\ 00DB 211A00 LD HL,26
\ 00DE FDE5 PUSH IY
\ 00E0 C1 POP BC
\ 00E1 09 ADD HL,BC
\ 00E2 CD0000 CALL LWRD ?STRCMP_L11
\ 00E5 7D LD A,L
\ 00E6 B4 OR H
\ 00E7 2015 JR NZ,?0015
\ 00E9 ?0014:
66 {
67 *FileBKSecNo=CurRecNo+1;
\ 00E9 DDE5 PUSH IX
\ 00EB E1 POP HL
\ 00EC 23 INC HL
\ 00ED E5 PUSH HL
\ 00EE 210200 LD HL,2
\ 00F1 39 ADD HL,SP
\ 00F2 7E LD A,(HL)
\ 00F3 23 INC HL
\ 00F4 66 LD H,(HL)
\ 00F5 6F LD L,A
\ 00F6 C1 POP BC
\ 00F7 71 LD (HL),C
\ 00F8 23 INC HL
\ 00F9 70 LD (HL),B
68 return TRUE; // have record
\ 00FA 2E01 LD L,1
69 }
\ 00FC 1817 JR ?0016
\ 00FE ?0015:
\ 00FE ?0013:
70 }
71 CurRecNo++;
\ 00FE DD23 INC IX
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -