📄 ui_playlist2.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:33 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\common\ui_playlist2.c #
# List file = d:\case_i_d90f\ap\ap_music\list\ui_playlist2.lst #
# Object file = d:\case_i_d90f\ap\ap_music\obj\ui_playlist2.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\ui_playlist2.s01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w #
# -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d90f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d90f\ap\ap_music\List\ #
# -ND:\case_i_d90f\ap\ap_music\List\ -X #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\AP\COMMON\ui_playlist2.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_playlist2(17)
\ 0000 RSEG COM_PLAYLIST(0)
\ 0000 RSEG IDM_COM_FSL_D(0)
\ 0000 EXTERN PlayListFileName
\ 0000 EXTERN PlayListScrollRegion
\ 0000 EXTERN PutS
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN ScrollFlag
\ 0000 EXTERN Scroll_PlayList
\ 0000 EXTERN SetAsciiFont
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 EXTERN SetTextPos
\ 0000 PUBLIC ShowPlaylist
\ 0000 PUBLIC com_fname
\ 0000 EXTERN fselGetCurGroupL
\ 0000 EXTERN fselGetNextGroup
\ 0000 EXTERN fselGetPrevGroup
\ 0000 EXTERN menu_pos_list
\ 0000 PUBLIC read_idm_data_playlist
\ 0000 PUBLIC reinit_idm_buf_playlist
\ 0000 EXTERN unitochar
\ 0000 PUBLIC write_idm_data_playlist
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?UC_MOD_L01
\ 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_AUTO_DIRECT_L09
\ 0000 EXTERN ?STRLEN_L11
\ 0000 RSEG COM_PLAYLIST
\ 0000 write_idm_data_playlist:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * ap common lib, directory control file
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: ui_playlist2.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
10 *******************************************************************************
11 */
12 #pragma codeseg(COM_PLAYLIST)
13
14 #include "ap_common.h"
15 #include "list.h"
16 #define Color_BULE_Scroll_def 0x0000001f//深蓝
17 #pragma memory=dataseg(IDM_COM_FSL_D)
18 char com_fname[5][LISTNAME_DISP_LENNGTH]; //可存放地址为页6的6000H-6FFFH
19 #pragma memory=default
20 //extern const char menu_pos_menu[6];
21 extern const char menu_pos_list[6];
22 extern char PlayListFileName[12];
23
24 extern region_t PlayListScrollRegion;
25 extern BYTE ScrollFlag;
26 extern void Scroll_PlayList( char * scrollstr, bool mode ,char language,region_t *scroll);
27 //向IDM数组写数据
28 BOOL write_idm_data_playlist(char *name, int count)
29 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 0000 DEFW 0
30 byte status;
31 status = input8(0x05);
\ 0005 DB05 IN A,(5)
\ 0007 5F LD E,A
32 output8(0x05, 0xf6);
\ 0008 3EF6 LD A,246
\ 000A D305 OUT (5),A
33 memcpy( com_fname[count], name, LISTNAME_DISP_LENNGTH);
\ 000C D5 PUSH DE
\ 000D 010002 LD BC,512
\ 0010 DD6E04 LD L,(IX+4)
\ 0013 65 LD H,L
\ 0014 69 LD L,C
\ 0015 29 ADD HL,HL
\ 0016 010000 LD BC,com_fname
\ 0019 09 ADD HL,BC
\ 001A EB EX DE,HL
\ 001B DD6E02 LD L,(IX+2)
\ 001E DD6603 LD H,(IX+3)
\ 0021 ?0040:
\ 0021 010002 LD BC,512
\ 0024 EDB0 LDIR
\ 0026 D1 POP DE
34 output8(0x05, status);
\ 0027 7B LD A,E
\ 0028 D305 OUT (5),A
35
36 }
\ 002A C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 002D reinit_idm_buf_playlist:
37
38 //取一屏数据到IDM数组中
39 void reinit_idm_buf_playlist(int top, int bottom, char *Longnamebuf, BYTE string_id,BOOL direction)
40 {
\ 002D CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0030 0000 DEFW 0
\ 0032 FDE5 PUSH IY
41 int i;
42 for(i = top; i <= bottom; i++)
\ 0034 DD6E02 LD L,(IX+2)
\ 0037 DD6603 LD H,(IX+3)
\ 003A E5 PUSH HL
\ 003B FDE1 POP IY
\ 003D ?0003:
\ 003D FDE5 PUSH IY
\ 003F C1 POP BC
\ 0040 DD6E04 LD L,(IX+4)
\ 0043 DD6605 LD H,(IX+5)
\ 0046 CD0000 CALL LWRD ?SS_CMP_L02
\ 0049 3877 JR C,?0002
\ 004B ?0004:
43 {
44 if( fselGetCurGroupL(Longnamebuf,LISTNAME_DISP_LENNGTH) )
\ 004B 010002 LD BC,512
\ 004E DD5E0A LD E,(IX+10)
\ 0051 DD560B LD D,(IX+11)
\ 0054 3E00 LD A,BYTE3 fselGetCurGroupL
\ 0056 210000 LD HL,LWRD fselGetCurGroupL
\ 0059 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 005C 2C INC L
\ 005D 2D DEC L
\ 005E 2816 JR Z,?0007
\ 0060 ?0006:
45 {
46 unitochar(Longnamebuf,LISTNAME_DISP_LENNGTH,string_id); //
\ 0060 DD6E0C LD L,(IX+12)
\ 0063 E5 PUSH HL
\ 0064 010002 LD BC,512
\ 0067 DD5E0A LD E,(IX+10)
\ 006A DD560B LD D,(IX+11)
\ 006D 3E00 LD A,BYTE3 unitochar
\ 006F 210000 LD HL,LWRD unitochar
\ 0072 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0075 F1 POP AF
\ 0076 ?0007:
47 }
48 if(direction)
\ 0076 AF XOR A
\ 0077 DDB60E OR (IX+14)
\ 007A 280B JR Z,?0009
\ 007C ?0008:
49 write_idm_data_playlist(Longnamebuf, i - top);
\ 007C DD4E02 LD C,(IX+2)
\ 007F DD4603 LD B,(IX+3)
\ 0082 FDE5 PUSH IY
\ 0084 E1 POP HL
\ 0085 1809 JR ?0032
50 else
\ 0087 ?0009:
51 write_idm_data_playlist(Longnamebuf, bottom-i);
\ 0087 FDE5 PUSH IY
\ 0089 C1 POP BC
\ 008A DD6E04 LD L,(IX+4)
\ 008D DD6605 LD H,(IX+5)
\ 0090 ?0032:
\ 0090 ED42 SBC HL,BC
\ 0092 4D LD C,L
\ 0093 44 LD B,H
\ 0094 DD5E0A LD E,(IX+10)
\ 0097 DD560B LD D,(IX+11)
\ 009A 3E00 LD A,BYTE3 write_idm_data_playlist
\ 009C 210000 LD HL,LWRD write_idm_data_playlist
\ 009F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00A2 ?0010:
52 if(direction)
\ 00A2 AF XOR A
\ 00A3 DDB60E OR (IX+14)
\ 00A6 DD5E0A LD E,(IX+10)
\ 00A9 DD560B LD D,(IX+11)
\ 00AC 2807 JR Z,?0012
\ 00AE ?0011:
53 fselGetNextGroup(Longnamebuf); // 取下页数据
\ 00AE 3E00 LD A,BYTE3 fselGetNextGroup
\ 00B0 210000 LD HL,LWRD fselGetNextGroup
\ 00B3 1805 JR ?0033
54 else
\ 00B5 ?0012:
55 fselGetPrevGroup(Longnamebuf); // 取上页数据
\ 00B5 3E00 LD A,BYTE3 fselGetPrevGroup
\ 00B7 210000 LD HL,LWRD fselGetPrevGroup
\ 00BA ?0033:
\ 00BA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00BD ?0013:
56 }
57
58 }
\ 00BD FD23 INC IY
\ 00BF C33D00 JP LWRD ?0003
\ 00C2 ?0002:
\ 00C2 FDE1 POP IY
\ 00C4 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 00C7 read_idm_data_playlist:
59
60 //读数据到数组name中
61 void read_idm_data_playlist(char *name, int count)
62 {
\ 00C7 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 00CA 0000 DEFW 0
63 byte status;
64 status = input8(0x05);
\ 00CC DB05 IN A,(5)
\ 00CE 5F LD E,A
65 output8(0x05 ,0xf6);
\ 00CF 3EF6 LD A,246
\ 00D1 D305 OUT (5),A
66 memcpy(name, com_fname[count], LISTNAME_DISP_LENNGTH);
\ 00D3 D5 PUSH DE
\ 00D4 010002 LD BC,512
\ 00D7 DD5E02 LD E,(IX+2)
\ 00DA DD5603 LD D,(IX+3)
\ 00DD DD6E04 LD L,(IX+4)
\ 00E0 65 LD H,L
\ 00E1 69 LD L,C
\ 00E2 29 ADD HL,HL
\ 00E3 010000 LD BC,com_fname
\ 00E6 09 ADD HL,BC
\ 00E7 C32100 JP LWRD ?0040
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -