ui_userlist2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 765 行 · 第 1/3 页
LST
765 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:58:54 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_music\ui_userlist2.c #
# List file = d:\case_i_d913f\ap\ap_music\list\ui_userlist2.lst #
# Object file = d:\case_i_d913f\ap\ap_music\obj\ui_userlist2.r01 #
# ASM file = d:\case_i_d913f\ap\ap_music\list\ui_userlist2.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\ui_userlist2.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME ui_userlist2(17)
\ 0000 RSEG AP_UI_USERLIST(0)
\ 0000 RSEG APC_UI_USERLIST(0)
\ 0000 EXTERN Add_UserPL
\ 0000 EXTERN Count_Byte
\ 0000 EXTERN FS_Backup
\ 0000 EXTERN FS_Restore
\ 0000 EXTERN PutS
\ 0000 EXTERN ResShowMultiString
\ 0000 EXTERN ResShowPic
\ 0000 EXTERN ScrollFlag
\ 0000 EXTERN ScrollString
\ 0000 EXTERN SetBackgdColor
\ 0000 EXTERN SetPenColor
\ 0000 EXTERN SetTextOutMode
\ 0000 EXTERN SetTextPos
\ 0000 PUBLIC UI_Favourite
\ 0000 EXTERN WrHead_PL
\ 0000 EXTERN bList_Flag
\ 0000 EXTERN disbuff
\ 0000 PUBLIC favourite_string
\ 0000 EXTERN g_comval
\ 0000 EXTERN g_music_vars
\ 0000 EXTERN menu_pos_list
\ 0000 EXTERN menulist_bck_pic
\ 0000 EXTERN need_WPL
\ 0000 EXTERN region_scroll
\ 0000 EXTERN scroll_buf
\ 0000 EXTERN ui_popup_list
\ 0000 EXTERN ui_userplaylist
\ 0000 PUBLIC ui_viewlist
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?UC_MOD_L01
\ 0000 EXTERN ?S_MUL_L02
\ 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 EXTERN ?STRLEN_L11
\ 0000 RSEG AP_UI_USERLIST
\ 0000 ui_viewlist:
1 #include "ap_music.h"
2 #define Color_BULE_Scroll_def 0x0000001f//深蓝
3 extern handle UserPLfp;
4 #pragma memory=dataseg(APD_UI_PLAYLIST)
5 extern char vbuff[512];
6 extern char disbuff[MENU_GROUP*30];
7 extern char vfilename[12];
8 extern handle fpview;
9 extern WORD vFirstOffset;
10 extern WORD vLastOffset;
11 extern WORD vTotal;
12 extern WORD vsave_offset;
13 #pragma memory=default
14 extern const char menu_pos_list[6];
15 extern const WORD menulist_bck_pic[];
16 extern char ScrollFlag; //滚动标志位
17 extern char scroll_buf[]; //滚屏buffer区
18 extern region_t region_scroll; //滚屏区域
19 #pragma codeseg(AP_UI_USERLIST)
20
21 #pragma memory=constseg(APC_UI_USERLIST)
22 //const char userlist_file_pos[6] = { POSITION_MENU6, POSITION_MENU5,POSITION_MENU4,POSITION_MENU3,POSITION_MENU2,POSITION_MENU1}; //zxs add
23 //const WORD userlist_file_bck_pic[6]={ MENUBCK6,MENUBCK5,MENUBCK4,MENUBCK3,MENUBCK2,MENUBCK1 };
24 const WORD favourite_string[4] ={ MFAVIVIW,MFAVIADD,MFAVIDEL,MSTOP5};
25 #pragma memory=default
26
27
28 void ui_viewlist(char old_active,char new_active,char num,char type,bool scroll_flag)
29 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 FCFF DEFW 65532
30 BYTE tmp,i;
31 // DC oldDC_sav;
32 BYTE DisplayBytes;
33 region_scroll.x=explorer_str_x_def;
\ 0005 3E20 LD A,32
\ 0007 320000 LD (region_scroll),A
34 region_scroll.width=160;
\ 000A 3EA0 LD A,160
\ 000C 320200 LD (region_scroll+2),A
35 region_scroll.height=16;
\ 000F 3E10 LD A,16
\ 0011 320300 LD (region_scroll+3),A
36
37 if(scroll_flag)
\ 0014 AF XOR A
\ 0015 DDB60E OR (IX+14)
\ 0018 2826 JR Z,?0003
\ 001A ?0002:
38 {
39 SetTextOutMode(0);
\ 001A 1E00 LD E,0
\ 001C CD0000 CALL LWRD SetTextOutMode
40 SetBackgdColor(Color_BULE_Scroll_def);
\ 001F 010000 LD BC,0
\ 0022 111F00 LD DE,31
\ 0025 CD0000 CALL LWRD SetBackgdColor
41 ScrollString(scroll_buf, FALSE,g_comval.langid,®ion_scroll);
\ 0028 210000 LD HL,region_scroll
\ 002B E5 PUSH HL
\ 002C 210C00 LD HL,g_comval+12
\ 002F 4E LD C,(HL)
\ 0030 C5 PUSH BC
\ 0031 0E00 LD C,0
\ 0033 CD2C02 CALL LWRD ?0050
\ 0036 E1 POP HL
\ 0037 E1 POP HL
42 SetTextOutMode(1);
\ 0038 1E01 LD E,1
\ 003A CD0000 CALL LWRD SetTextOutMode
43 }
44 else
\ 003D C32702 JP LWRD ?0024
\ 0040 ?0003:
45 {
46 if(num>MENU_GROUP)
\ 0040 3E06 LD A,6
\ 0042 DDBE0A CP (IX+10)
\ 0045 3003 JR NC,?0006
\ 0047 ?0005:
47 num = MENU_GROUP;
\ 0047 DD770A LD (IX+10),A
\ 004A ?0006:
48 // GetDCStatus(&oldDC_sav);
49
50 SetTextOutMode(1);
\ 004A 1E01 LD E,1
\ 004C CD0000 CALL LWRD SetTextOutMode
51 SetPenColor(Color_WHITE_def);
\ 004F 010000 LD BC,0
\ 0052 11FFFF LD DE,65535
\ 0055 CD0000 CALL LWRD SetPenColor
52
53 if(old_active!=new_active)
\ 0058 DD7E02 LD A,(IX+2)
\ 005B DDBE04 CP (IX+4)
\ 005E CA2A01 JP Z,?0008
\ 0061 ?0007:
54 {
55 //清除旧的活动列表项
56 tmp = old_active%MENU_GROUP;
\ 0061 0606 LD B,6
\ 0063 CD3702 CALL LWRD ?0052
57 ResShowPic(menulist_bck_pic[tmp], menu_bck_x_def, menu_pos_list[tmp]-4);
\ 0066 C5 PUSH BC
\ 0067 0E09 LD C,9
\ 0069 DD6EFD LD L,(IX-3)
\ 006C 60 LD H,B
\ 006D 29 ADD HL,HL
\ 006E 110000 LD DE,menulist_bck_pic
\ 0071 19 ADD HL,DE
\ 0072 5E LD E,(HL)
\ 0073 23 INC HL
\ 0074 56 LD D,(HL)
\ 0075 CD4E02 CALL LWRD ?0053
\ 0078 F1 POP AF
58 ResShowPic(DHT,194,8);
\ 0079 0E08 LD C,8
\ 007B C5 PUSH BC
\ 007C 0EC2 LD C,194
\ 007E 112600 LD DE,38
\ 0081 CD4E02 CALL LWRD ?0053
\ 0084 F1 POP AF
59 ResShowPic(MFILE,explorer_pic_x_def,menu_pos_list[tmp]-1);
\ 0085 DD4EFD LD C,(IX-3)
\ 0088 0600 LD B,0
\ 008A 210000 LD HL,menu_pos_list
\ 008D 09 ADD HL,BC
\ 008E 7E LD A,(HL)
\ 008F C6FF ADD A,255
\ 0091 4F LD C,A
\ 0092 C5 PUSH BC
\ 0093 CD4902 CALL LWRD ?0054
\ 0096 F1 POP AF
60
61 SetTextPos(explorer_str_x_def, menu_pos_list[tmp]-2);
\ 0097 DD4EFD LD C,(IX-3)
\ 009A CD5602 CALL LWRD ?0055
62 DisplayBytes = Count_Byte(&(disbuff+old_active*30),g_comval.langid);
\ 009D ED4B0C00 LD BC,(g_comval+12)
\ 00A1 C5 PUSH BC
\ 00A2 DD5E02 LD E,(IX+2)
\ 00A5 CD7E02 CALL LWRD ?0057
\ 00A8 C1 POP BC
\ 00A9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
63 PutS(&(disbuff+old_active*30), DisplayBytes);
\ 00AC 4D LD C,L
\ 00AD C5 PUSH BC
\ 00AE DD5E02 LD E,(IX+2)
\ 00B1 1600 LD D,0
\ 00B3 011E00 LD BC,30
\ 00B6 CD0000 CALL LWRD ?S_MUL_L02
\ 00B9 210000 LD HL,disbuff
\ 00BC 19 ADD HL,DE
\ 00BD EB EX DE,HL
\ 00BE C1 POP BC
\ 00BF CD0000 CALL LWRD PutS
64
65 //显示当前活动项
66
67 tmp = new_active%MENU_GROUP;
\ 00C2 0606 LD B,6
\ 00C4 DD7E04 LD A,(IX+4)
\ 00C7 CD3702 CALL LWRD ?0052
68 ResShowPic(FILEBCK, explorer_str_x_def-2, menu_pos_list[tmp]-4);
\ 00CA C5 PUSH BC
\ 00CB 0E1E LD C,30
\ 00CD 112C00 LD DE,44
\ 00D0 CD4E02 CALL LWRD ?0053
\ 00D3 F1 POP AF
69 ResShowPic(DHTHK,194, menu_pos_list[tmp]+5);
\ 00D4 DD4EFD LD C,(IX-3)
\ 00D7 0600 LD B,0
\ 00D9 210000 LD HL,menu_pos_list
\ 00DC 09 ADD HL,BC
\ 00DD 7E LD A,(HL)
\ 00DE C605 ADD A,5
\ 00E0 4F LD C,A
\ 00E1 C5 PUSH BC
\ 00E2 0EC2 LD C,194
\ 00E4 112700 LD DE,39
\ 00E7 CD4E02 CALL LWRD ?0053
\ 00EA F1 POP AF
70 ResShowPic(MFILE,explorer_pic_x_def,menu_pos_list[tmp]-1);
\ 00EB DD4EFD LD C,(IX-3)
\ 00EE 0600 LD B,0
\ 00F0 210000 LD HL,menu_pos_list
\ 00F3 09 ADD HL,BC
\ 00F4 7E LD A,(HL)
\ 00F5 C6FF ADD A,255
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?