navi_ui.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 720 行 · 第 1/3 页
LST
720 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 18/Nov/107 22:58:44 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d913f\ap\ap_music\navi_ui.c #
# List file = d:\case_i_d913f\ap\ap_music\list\navi_ui.lst #
# Object file = d:\case_i_d913f\ap\ap_music\obj\navi_ui.r01 #
# ASM file = d:\case_i_d913f\ap\ap_music\list\navi_ui.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\navi_ui.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME navi_ui(17)
\ 0000 RSEG APC_NAVI_UI(0)
\ 0000 RSEG APD_NAVI_UI(0)
\ 0000 EXTERN Count_Byte
\ 0000 EXTERN CurTotalNum
\ 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 EXTERN g_comval
\ 0000 PUBLIC i
\ 0000 PUBLIC list_num
\ 0000 EXTERN menu_pos_list
\ 0000 EXTERN menulist_bck_pic
\ 0000 EXTERN navi_buff
\ 0000 EXTERN region_scroll
\ 0000 EXTERN scroll_buf
\ 0000 PUBLIC ui_Navi_list
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?UC_MOD_L01
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?SS_CMP_L02
\ 0000 EXTERN ?SL_MOD_L03
\ 0000 EXTERN ?SL_CMP_L03
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 EXTERN ?STRLEN_L11
\ 0000 RSEG APC_NAVI_UI
\ 0000 ui_Navi_list:
1 #include "ap_music.h"
2 #define Color_BULE_Scroll_def 0x0000001f//深蓝
3 extern handle Navifp;
4 extern long CurListoffset; //每个表的偏移量
5 extern long CurTotalNum;
6 extern long Navfileoffset; //当前表的已经读的偏移量
7 extern BOOL Navi_read(long fileoffset);
8
9 #pragma memory=dataseg(APD_NAVI)
10 extern char navi_buff[NAVI_GROUP*30];
11 extern char buffer[512];
12
13
14
15 #pragma memory=default
16 #pragma memory=dataseg(APD_NAVI_UI)
17
18 int i;
19 BYTE list_num;
20
21 #pragma memory=default
22 extern const char menu_pos_list[];
23 extern const WORD menulist_bck_pic[];
24 extern char ScrollFlag; //滚动标志位
25 extern char scroll_buf[]; //滚屏buffer区
26 extern region_t region_scroll; //滚屏区域
27
28 #pragma codeseg(APC_NAVI_UI)
29 void ui_Navi_list(BYTE active,BYTE old_active,long file_active,char direct,bool scroll_flag)
30 {
\ 0000 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0003 FEFF DEFW 65534
31
32 BYTE DisplayBytes;
33
34 region_scroll.x=explorer_str_x_def;
\ 0005 3E20 LD A,32
\ 0007 320000 LD (region_scroll),A
35 region_scroll.width=160;
\ 000A 3EA0 LD A,160
\ 000C 320200 LD (region_scroll+2),A
36 region_scroll.height=16;
\ 000F 3E10 LD A,16
\ 0011 320300 LD (region_scroll+3),A
37 if(scroll_flag)
\ 0014 AF XOR A
\ 0015 DDB610 OR (IX+16)
\ 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 CD2303 CALL LWRD ?0058
\ 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 C31E03 JP LWRD ?0043
\ 0040 ?0003:
45 {
46 SetTextOutMode(1);
\ 0040 1E01 LD E,1
\ 0042 CD0000 CALL LWRD SetTextOutMode
47 SetPenColor(Color_WHITE_def);
\ 0045 010000 LD BC,0
\ 0048 11FFFF LD DE,65535
\ 004B CD0000 CALL LWRD SetPenColor
48 if(old_active!=active)
\ 004E DD7E04 LD A,(IX+4)
\ 0051 DDBE02 CP (IX+2)
\ 0054 CA7801 JP Z,?0006
\ 0057 ?0005:
49 {
50 //清除旧的活动列表项
51 ResShowPic(menulist_bck_pic[old_active%NAVI_GROUP], menu_bck_x_def, menu_pos_list[old_active%7]-4);
\ 0057 0607 LD B,7
\ 0059 CD4703 CALL LWRD ?0061
\ 005C C5 PUSH BC
\ 005D 0E09 LD C,9
\ 005F 0606 LD B,6
\ 0061 DD7E04 LD A,(IX+4)
\ 0064 CD0000 CALL LWRD ?UC_MOD_L01
\ 0067 6F LD L,A
\ 0068 2600 LD H,0
\ 006A 29 ADD HL,HL
\ 006B 110000 LD DE,menulist_bck_pic
\ 006E 19 ADD HL,DE
\ 006F 5E LD E,(HL)
\ 0070 23 INC HL
\ 0071 56 LD D,(HL)
\ 0072 CD5B03 CALL LWRD ?0062
\ 0075 F1 POP AF
52 ResShowPic(DHT,194,8);
\ 0076 0E08 LD C,8
\ 0078 C5 PUSH BC
\ 0079 CD5603 CALL LWRD ?0063
\ 007C F1 POP AF
53 if(*(navi_buff+(old_active)*30)==1)
\ 007D DD4E04 LD C,(IX+4)
\ 0080 CD8C03 CALL LWRD ?0066
\ 0083 200B JR NZ,?0008
\ 0085 ?0007:
54 ResShowPic(MDIR,10,menu_pos_list[old_active%NAVI_GROUP]-4);
\ 0085 CD4703 CALL LWRD ?0061
\ 0088 C5 PUSH BC
\ 0089 0E0A LD C,10
\ 008B 11AF00 LD DE,175
\ 008E 1814 JR ?0044
55 else
\ 0090 ?0008:
56 ResShowPic(MFILE,13,menu_pos_list[old_active%NAVI_GROUP]-1);
\ 0090 CD0000 CALL LWRD ?UC_MOD_L01
\ 0093 4F LD C,A
\ 0094 0600 LD B,0
\ 0096 210000 LD HL,menu_pos_list
\ 0099 09 ADD HL,BC
\ 009A 7E LD A,(HL)
\ 009B C6FF ADD A,255
\ 009D 4F LD C,A
\ 009E C5 PUSH BC
\ 009F 0E0D LD C,13
\ 00A1 11C600 LD DE,198
\ 00A4 ?0044:
\ 00A4 CD5B03 CALL LWRD ?0062
\ 00A7 F1 POP AF
\ 00A8 ?0009:
57 SetTextPos(explorer_str_x_def, menu_pos_list[old_active%NAVI_GROUP]-2);
\ 00A8 0606 LD B,6
\ 00AA DD7E04 LD A,(IX+4)
\ 00AD CD0000 CALL LWRD ?UC_MOD_L01
\ 00B0 4F LD C,A
\ 00B1 0600 LD B,0
\ 00B3 210000 LD HL,menu_pos_list
\ 00B6 09 ADD HL,BC
\ 00B7 7E LD A,(HL)
\ 00B8 C6FE ADD A,254
\ 00BA 4F LD C,A
\ 00BB 1E20 LD E,32
\ 00BD CD0000 CALL LWRD SetTextPos
58 SetPenColor(Color_WHITE_def); //取列表名
\ 00C0 010000 LD BC,0
\ 00C3 11FFFF LD DE,65535
\ 00C6 CD0000 CALL LWRD SetPenColor
59 DisplayBytes = Count_Byte(&(navi_buff+old_active*30+1),g_comval.langid);
\ 00C9 ED4B0C00 LD BC,(g_comval+12)
\ 00CD C5 PUSH BC
\ 00CE 210100 LD HL,navi_buff+1
\ 00D1 DD5E04 LD E,(IX+4)
\ 00D4 1600 LD D,0
\ 00D6 011E00 LD BC,30
\ 00D9 CD0000 CALL LWRD ?S_MUL_L02
\ 00DC 19 ADD HL,DE
\ 00DD EB EX DE,HL
\ 00DE 3E00 LD A,BYTE3 Count_Byte
\ 00E0 210000 LD HL,LWRD Count_Byte
\ 00E3 C1 POP BC
\ 00E4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
60 PutS(&(navi_buff+old_active*30+1), DisplayBytes);
\ 00E7 4D LD C,L
\ 00E8 C5 PUSH BC
\ 00E9 210100 LD HL,navi_buff+1
\ 00EC DD5E04 LD E,(IX+4)
\ 00EF 1600 LD D,0
\ 00F1 011E00 LD BC,30
\ 00F4 CD0000 CALL LWRD ?S_MUL_L02
\ 00F7 19 ADD HL,DE
\ 00F8 EB EX DE,HL
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?