📄 bookmarklst.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:58:23 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_music\bookmarklst.c #
# List file = d:\case_i_d913f\ap\ap_music\list\bookmarklst.lst #
# Object file = d:\case_i_d913f\ap\ap_music\obj\bookmarklst.r01 #
# ASM file = d:\case_i_d913f\ap\ap_music\list\bookmarklst.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\AP_MUSIC\BookMarkLst.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME bookmarklst(17)
\ 0000 RSEG BOOKMARKLST(0)
\ 0000 RSEG BOOKMARKLST_C(0)
\ 0000 RSEG BOOKMARKLST_D(0)
\ 0000 PUBLIC ActiveBookMark
\ 0000 PUBLIC BookMarkBuff
\ 0000 EXTERN DeleteBookMarkItem
\ 0000 PUBLIC GetBooKMarkItem
\ 0000 EXTERN GetBookMark
\ 0000 EXTERN PutS
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 PUBLIC SelIndexToArryIndex
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 EXTERN SetTextPos
\ 0000 PUBLIC ShowBookMarkList
\ 0000 PUBLIC TimeInforation
\ 0000 PUBLIC UI_BookMarkMenu
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN ap_sleep
\ 0000 EXTERN g_Openparam
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN itoa_2
\ 0000 EXTERN main_ResShowPic
\ 0000 EXTERN menu_pos_list
\ 0000 EXTERN menulist_bck_pic
\ 0000 EXTERN musicpSendCommand
\ 0000 PUBLIC yesornomenu
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_DIV_L02
\ 0000 EXTERN ?SS_MOD_L02
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?SS_CMP_L02
\ 0000 EXTERN ?C_V_SWITCH_L06
\ 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 RSEG BOOKMARKLST
\ 0000 SelIndexToArryIndex:
1 #include "actos.h"
2 #include "ap_common.h"
3 #include "ap_music.h"
4 #include <MusicBookMark.h>
5
6 extern music_vars_t g_music_vars;//本AP的公共变量
7 extern Open_param_t g_Openparam;
8
9 #pragma memory=constseg(BOOKMARKLST_C)
10 const WORD yesornomenu[3] ={MEB2,MEB4,MSTOP5};
11 #pragma memory=default
12
13 #pragma memory=dataseg(BOOKMARKLST_D)
14 STRU_MusicBookMark BookMarkBuff;
15 #pragma memory=default
16
17 #pragma codeseg(BOOKMARKLST)
18
19 //extern const char file_pos[6]; //zxs add
20 //extern const WORD file_bck_pic[6];
21 extern const char menu_pos_list[];
22 extern const WORD menulist_bck_pic[];
23 int SelIndexToArryIndex(int index)
24 {
\ 0000 C5 PUSH BC
\ 0001 FDE5 PUSH IY
\ 0003 DDE5 PUSH IX
\ 0005 D5 PUSH DE
\ 0006 DDE1 POP IX
25 int StartIndex;
26
27 if(index>=BookMarkBuff.RecordCount)
\ 0008 ED4B0200 LD BC,(BookMarkBuff+2)
\ 000C EB EX DE,HL
\ 000D CD0000 CALL LWRD ?SS_CMP_L02
\ 0010 3805 JR C,?0003
\ 0012 ?0002:
28 return 0xFFFF;
\ 0012 21FFFF LD HL,65535
\ 0015 1832 JR ?0009
\ 0017 ?0003:
29
30 if(BookMarkBuff.CurRecordNO>=BookMarkBuff.RecordCount)
\ 0017 2A0000 LD HL,(BookMarkBuff)
\ 001A CD0000 CALL LWRD ?SS_CMP_L02
\ 001D 300E JR NC,?0067
\ 001F ?0004:
31 StartIndex=BookMarkBuff.CurRecordNO-BookMarkBuff.RecordCount;
32 else
\ 001F ?0005:
33 StartIndex=MUSICBOOKMARK_MAX-(BookMarkBuff.RecordCount-BookMarkBuff.CurRecordNO);
\ 001F 69 LD L,C
\ 0020 60 LD H,B
\ 0021 ED4B0000 LD BC,(BookMarkBuff)
\ 0025 A7 AND A
\ 0026 ED42 SBC HL,BC
\ 0028 4D LD C,L
\ 0029 44 LD B,H
\ 002A 210C00 LD HL,12
\ 002D ?0067:
\ 002D A7 AND A
\ 002E ED42 SBC HL,BC
\ 0030 44 LD B,H
\ 0031 4D LD C,L
\ 0032 ?0006:
34 index=StartIndex+index;
\ 0032 DD09 ADD IX,BC
35 if(index>=MUSICBOOKMARK_MAX)
\ 0034 010C80 LD BC,32780
\ 0037 DDE5 PUSH IX
\ 0039 E1 POP HL
\ 003A 78 LD A,B
\ 003B AC XOR H
\ 003C 67 LD H,A
\ 003D ED42 SBC HL,BC
\ 003F 3805 JR C,?0008
\ 0041 ?0007:
36 index-=MUSICBOOKMARK_MAX;
\ 0041 01F4FF LD BC,65524
\ 0044 DD09 ADD IX,BC
\ 0046 ?0008:
37
38 return index;
\ 0046 DDE5 PUSH IX
\ 0048 E1 POP HL
39 }
\ 0049 ?0009:
\ 0049 DDE1 POP IX
\ 004B FDE1 POP IY
\ 004D C1 POP BC
\ 004E C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0051 TimeInforation:
40
41 void TimeInforation(char *dspbuff,time_t *bookmarktime)
42 {
\ 0051 FDE5 PUSH IY
\ 0053 DDE5 PUSH IX
\ 0055 D5 PUSH DE
\ 0056 DDE1 POP IX
\ 0058 C5 PUSH BC
\ 0059 FDE1 POP IY
43
44 dspbuff[0]='[';
\ 005B EB EX DE,HL
\ 005C 365B LD (HL),91
45 itoa_2(bookmarktime->hour,&dspbuff[1]);
\ 005E DDE5 PUSH IX
\ 0060 C1 POP BC
\ 0061 03 INC BC
\ 0062 FD5E00 LD E,(IY+0)
\ 0065 CD9D00 CALL LWRD ?0075
46 dspbuff[3]=':';
\ 0068 DD36033A LD (IX+3),58
47 itoa_2(bookmarktime->minute,&dspbuff[4]);
\ 006C 210400 LD HL,4
\ 006F DDE5 PUSH IX
\ 0071 C1 POP BC
\ 0072 09 ADD HL,BC
\ 0073 4D LD C,L
\ 0074 44 LD B,H
\ 0075 FD5E01 LD E,(IY+1)
\ 0078 CD9D00 CALL LWRD ?0075
48 dspbuff[6]=':';
\ 007B DD36063A LD (IX+6),58
49 itoa_2(bookmarktime->second,&dspbuff[7]);
\ 007F 210700 LD HL,7
\ 0082 DDE5 PUSH IX
\ 0084 C1 POP BC
\ 0085 09 ADD HL,BC
\ 0086 4D LD C,L
\ 0087 44 LD B,H
\ 0088 FD5E02 LD E,(IY+2)
\ 008B CD9D00 CALL LWRD ?0075
50 dspbuff[9]=']';
\ 008E DD36095D LD (IX+9),93
51 dspbuff[10]=0x00;
\ 0092 DD360A00 LD (IX+10),0
52 }
\ 0096 DDE1 POP IX
\ 0098 FDE1 POP IY
\ 009A C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 009D ?0075:
\ 009D 3E00 LD A,BYTE3 itoa_2
\ 009F 210000 LD HL,LWRD itoa_2
\ 00A2 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 00A5 GetBooKMarkItem:
53
54 BOOL GetBooKMarkItem(char *iteminfor,int index)
55 {
\ 00A5 DDE5 PUSH IX
\ 00A7 D5 PUSH DE
56 index=SelIndexToArryIndex(index);
\ 00A8 59 LD E,C
\ 00A9 50 LD D,B
\ 00AA 3E00 LD A,BYTE3 SelIndexToArryIndex
\ 00AC 210000 LD HL,LWRD SelIndexToArryIndex
\ 00AF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00B2 E5 PUSH HL
\ 00B3 DDE1 POP IX
57 if(index==0xFFFF)
\ 00B5 7D LD A,L
\ 00B6 A4 AND H
\ 00B7 3C INC A
\ 00B8 2003 JR NZ,?0011
\ 00BA ?0010:
58 return FALSE;
\ 00BA 6F LD L,A
\ 00BB 1820 JR ?0012
\ 00BD ?0011:
59 TimeInforation(iteminfor,&(BookMarkBuff.MusicBreakPoint[index].BKPTTime));
\ 00BD 211F00 LD HL,BookMarkBuff+31
\ 00C0 011E00 LD BC,30
\ 00C3 DDE5 PUSH IX
\ 00C5 D1 POP DE
\ 00C6 CD0000 CALL LWRD ?S_MUL_L02
\ 00C9 19 ADD HL,DE
\ 00CA 4D LD C,L
\ 00CB 44 LD B,H
\ 00CC 210000 LD HL,0
\ 00CF 39 ADD HL,SP
\ 00D0 5E LD E,(HL)
\ 00D1 23 INC HL
\ 00D2 56 LD D,(HL)
\ 00D3 3E00 LD A,BYTE3 TimeInforation
\ 00D5 215100 LD HL,LWRD TimeInforation
\ 00D8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
60
61 return TRUE;
\ 00DB 2E01 LD L,1
62 }
\ 00DD ?0012:
\ 00DD F1 POP AF
\ 00DE DDE1 POP IX
\ 00E0 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00E3 ShowBookMarkList:
63
64
65 /********************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -