bookmarkmenu.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 225 行
LST
225 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:58:27 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_music\bookmarkmenu.c #
# List file = d:\case_i_d913f\ap\ap_music\list\bookmarkmenu.lst #
# Object file = d:\case_i_d913f\ap\ap_music\obj\bookmarkmenu.r01 #
# ASM file = d:\case_i_d913f\ap\ap_music\list\bookmarkmenu.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\bookmarkmenu.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME bookmarkmenu(17)
\ 0000 RSEG BOOKMARKMENU(0)
\ 0000 RSEG BOOKMARKMENU_C(0)
\ 0000 EXTERN AddBookMarkItem
\ 0000 PUBLIC UI_BookMark
\ 0000 EXTERN UI_BookMarkMenu
\ 0000 PUBLIC bookmark_string
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN musicpSendCommand
\ 0000 EXTERN ui_popup_list
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?S_S_SWITCH_L06
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 RSEG BOOKMARKMENU
\ 0000 UI_BookMark:
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
8 #pragma memory=constseg(BOOKMARKMENU_C)
9 const WORD bookmark_string[4] ={ MEB2,MEB4,MEB3,MSTOP5};
10 #pragma memory=default
11
12 #pragma memory=dataseg(BOOKMARKMENU_D)
13 //STRU_MusicBreakPoint MusicBreakPT;
14 #pragma memory=default
15
16 #pragma codeseg(BOOKMARKMENU)
17 int UI_BookMark(BYTE string_id)
18 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 EEFF DEFW 65518
\ 0005 FDE5 PUSH IY
19 int Result;
20 pop_up_list_t list;
21 uchar IMK_Reg;
22 Full_time_t time_buf;
23
24 list.strid = bookmark_string;
\ 0007 DD36F600 LD (IX-10),LOW(bookmark_string)
\ 000B DD36F700 LD (IX-9),HIGH(bookmark_string)
25 list.total = 4;
\ 000F DD36F804 LD (IX-8),4
\ 0013 DD36F900 LD (IX-7),0
26 list.active = 0;
\ 0017 AF XOR A
\ 0018 DD77FA LD (IX-6),A
\ 001B DD77FB LD (IX-5),A
27 list.string_id = string_id;
\ 001E DD4602 LD B,(IX+2)
\ 0021 DD70FE LD (IX-2),B
28
29 list.headid=MBMARK;
\ 0024 DD36FCAE LD (IX-4),174
\ 0028 DD36FD01 LD (IX-3),1
30 Result = ui_popup_list(&list, NULL);
\ 002C 4F LD C,A
\ 002D C5 PUSH BC
\ 002E 69 LD L,C
\ 002F 61 LD H,C
\ 0030 E5 PUSH HL
\ 0031 2E0E LD L,14
\ 0033 39 ADD HL,SP
\ 0034 EB EX DE,HL
\ 0035 3E00 LD A,BYTE3 ui_popup_list
\ 0037 210000 LD HL,LWRD ui_popup_list
\ 003A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 003D F1 POP AF
\ 003E F1 POP AF
31
32 if (Result == RESULT_IGNORE)
\ 003F 3E34 LD A,52
\ 0041 AD XOR L
\ 0042 B4 OR H
\ 0043 287D JR Z,?0006
\ 0045 ?0002:
33 return 0;
\ 0045 ?0003:
34 if (Result != 0)
\ 0045 7D LD A,L
\ 0046 B4 OR H
\ 0047 207C JR NZ,?0012
\ 0049 ?0004:
35 return Result;
\ 0049 ?0005:
36
37 switch(list.active)
\ 0049 DD5EFA LD E,(IX-6)
\ 004C DD56FB LD D,(IX-5)
\ 004F CD0000 CALL LWRD ?S_S_SWITCH_L06
\ 0052 0000 DEFW 0
\ 0054 0300 DEFW 3
\ 0056 C200 DEFW ?0006
\ 0058 5E00 DEFW ?0007
\ 005A 6400 DEFW ?0008
\ 005C 7600 DEFW ?0009
\ 005E ?0007:
38 {
39 case 0: //select
40 return(UI_BookMarkMenu(&g_music_vars.location,MUSICBOOKMARK_SELECT,string_id));
\ 005E 68 LD L,B
\ 005F E5 PUSH HL
\ 0060 0E01 LD C,1
\ 0062 1804 JR ?0014
41 case 1: //delete
\ 0064 ?0008:
42 return(UI_BookMarkMenu(&g_music_vars.location,MUSICBOOKMARK_DELETE,string_id));
\ 0064 68 LD L,B
\ 0065 E5 PUSH HL
\ 0066 0E02 LD C,2
\ 0068 ?0014:
\ 0068 110700 LD DE,g_music_vars+7
\ 006B 3E00 LD A,BYTE3 UI_BookMarkMenu
\ 006D 210000 LD HL,LWRD UI_BookMarkMenu
\ 0070 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0073 F1 POP AF
43
44 // DeleteBookMark(g_music_vars.location.filename);
45 // break;
46 case 2: //add
\ 0074 184F JR ?0012
\ 0076 ?0009:
47 IMK_Reg=input8(0x27);
\ 0076 DB27 IN A,(39)
\ 0078 DD77F4 LD (IX-12),A
48 output8(0x27,0);
\ 007B AF XOR A
\ 007C D327 OUT (39),A
49 musicpSendCommand(MC_BACKUP, NULL);
\ 007E 41 LD B,C
\ 007F 1E44 LD E,68
\ 0081 3E00 LD A,BYTE3 musicpSendCommand
\ 0083 210000 LD HL,LWRD musicpSendCommand
\ 0086 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
50 output8(0x27,IMK_Reg);
\ 0089 DD7EF4 LD A,(IX-12)
\ 008C D327 OUT (39),A
51 if(musicpSendCommand(MC_GETTIME, (int)& time_buf))
\ 008E 210200 LD HL,2
\ 0091 39 ADD HL,SP
\ 0092 4D LD C,L
\ 0093 44 LD B,H
\ 0094 1E80 LD E,128
\ 0096 3E00 LD A,BYTE3 musicpSendCommand
\ 0098 210000 LD HL,LWRD musicpSendCommand
\ 009B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 009E 2C INC L
\ 009F 2D DEC L
\ 00A0 2812 JR Z,?0011
\ 00A2 ?0010:
52 {
53 g_music_vars.BreakPTDisTime.hour = time_buf.TimeHour;
\ 00A2 DD7EF2 LD A,(IX-14)
\ 00A5 324D00 LD (g_music_vars+77),A
54 g_music_vars.BreakPTDisTime.minute = time_buf.TimeMinute;
\ 00A8 DD7EF1 LD A,(IX-15)
\ 00AB 324E00 LD (g_music_vars+78),A
55 g_music_vars.BreakPTDisTime.second = time_buf.TimeSecond;
\ 00AE DD7EF0 LD A,(IX-16)
\ 00B1 324F00 LD (g_music_vars+79),A
\ 00B4 ?0011:
56 }
57 AddBookMarkItem((STRU_MusicBreakPoint *)&(g_music_vars.BreakPTSave),&g_music_vars.location);
\ 00B4 010700 LD BC,g_music_vars+7
\ 00B7 113200 LD DE,g_music_vars+50
\ 00BA 3E00 LD A,BYTE3 AddBookMarkItem
\ 00BC 210000 LD HL,LWRD AddBookMarkItem
\ 00BF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
58
59 break;
\ 00C2 ?0006:
60 }
61 return NULL;
\ 00C2 210000 LD HL,0
62 }
\ 00C5 ?0012:
\ 00C5 FDE1 POP IY
\ 00C7 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
63
64
65
\ 0000 RSEG BOOKMARKMENU_C
\ 0000 bookmark_string:
\ 0000 A601 DEFW 422
\ 0002 A801 DEFW 424
\ 0004 A701 DEFW 423
\ 0006 D101 DEFW 465
\ 0008 END
Errors: none
Warnings: none
Code size: 202
Constant size: 8
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?