⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ui_pop_up_list.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
##############################################################################
#                                                                            #
# IAR Z80/64180 C-Compiler V4.04B/WIN                                        #
# Front End V4.20N                                       25/Dec/106  17:00:36 #
# Global Optimizer V1.05D                                                    #
#                                                                            #
#       Target option =  Z80                                                 #
#       Memory model  =  banked                                              #
#       Source file   =  d:\case_i_d90f\ap\common\ui_pop_up_list.c           #
#       List file     =  d:\case_i_d90f\ap\ap_music\list\ui_pop_up_list.lst  #
#       Object file   =  d:\case_i_d90f\ap\ap_music\obj\ui_pop_up_list.r01   #
#       ASM file      =  d:\case_i_d90f\ap\ap_music\list\ui_pop_up_list.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_pop_up_list.c           #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    ui_pop_up_list(17)
   \   0000                    RSEG    COM_CTRL(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    EXTERN  GetDCStatus
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  ResShowPic
   \   0000                    EXTERN  SetBackgdColor
   \   0000                    EXTERN  SetPenColor
   \   0000                    EXTERN  SetTextOutMode
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    PUBLIC  menu_pos_list
   \   0000                    PUBLIC  menulist_bck_pic
   \   0000                    PUBLIC  show_active_list1
   \   0000                    EXTERN  ui_auto_select
   \   0000                    PUBLIC  ui_popup_list
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?SS_DIV_L02
   \   0000                    EXTERN  ?SS_MOD_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_AUTO_DIRECT_L09
   \   0000                    RSEG    COM_CTRL
   \   0000            show_active_list1:
      1          /*
      2          *******************************************************************************
      3          *                ACTOS AP
      4          *           ap common lib file
      5          *
      6          *        (c) Copyright, Actions Co,Ld.
      7          *             All Right Reserved
      8          *
      9          *  $Id: ui_pop_up_list.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
     10          *******************************************************************************
     11          */
     12          #include "ap_common.h"
     13          #include "common.h"
     14          
     15          #define LIST_NUM_ONE_PAGE    6
     16          const char menu_pos_list[LIST_NUM_ONE_PAGE] = { POSITION_MENU6,POSITION_MENU5,
     17                  POSITION_MENU4,POSITION_MENU3,POSITION_MENU2,POSITION_MENU1};
     18          const WORD menulist_bck_pic[LIST_NUM_ONE_PAGE]={ MENUBCK6,MENUBCK5,MENUBCK4,MENUBCK3,MENUBCK2,MENUBCK1 };
     19          #pragma codeseg(COM_CTRL)
     20          // 定义背景颜色
     21          
     22          void show_active_list1(pop_up_list_t *list,int old_active, int active)
     23          {
   \   0000  FDE5              PUSH    IY
   \   0002  DDE5              PUSH    IX
   \   0004  C5                PUSH    BC
   \   0005  D5                PUSH    DE
   \   0006  FDE1              POP     IY
     24                  int tmp;
     25                  //清除旧的活动菜单项
     26                  tmp = old_active%LIST_NUM_ONE_PAGE;
   \   0008  010600            LD      BC,6
   \   000B  68                LD      L,B
   \   000C  60                LD      H,B
   \   000D  39                ADD     HL,SP
   \   000E  5E                LD      E,(HL)
   \   000F  23                INC     HL
   \   0010  56                LD      D,(HL)
   \   0011  CD0000            CALL    LWRD ?SS_MOD_L02
     27          
     28                      ResShowPic(menulist_bck_pic[tmp], menu_ptr_x_def, menu_pos_list[tmp]-4);
   \   0014  210000            LD      HL,menu_pos_list
   \   0017  19                ADD     HL,DE
   \   0018  7E                LD      A,(HL)
   \   0019  C6FC              ADD     A,252
   \   001B  4F                LD      C,A
   \   001C  C5                PUSH    BC
   \   001D  0E0A              LD      C,10
   \   001F  EB                EX      DE,HL
   \   0020  29                ADD     HL,HL
   \   0021  110600            LD      DE,menulist_bck_pic
   \   0024  19                ADD     HL,DE
   \   0025  5E                LD      E,(HL)
   \   0026  23                INC     HL
   \   0027  56                LD      D,(HL)
   \   0028  CD0D01            CALL    LWRD ?0067
   \   002B  F1                POP     AF
     29          
     30                  tmp = active%LIST_NUM_ONE_PAGE;
   \   002C  010600            LD      BC,6
   \   002F  210A00            LD      HL,10
   \   0032  39                ADD     HL,SP
   \   0033  CDFA00            CALL    LWRD ?0066
     31                  ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_list[tmp]-4);
   \   0036  7E                LD      A,(HL)
   \   0037  C6FC              ADD     A,252
   \   0039  4F                LD      C,A
   \   003A  C5                PUSH    BC
   \   003B  CD0801            CALL    LWRD ?0068
   \   003E  F1                POP     AF
     32                  ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_list[tmp]);
   \   003F  210000            LD      HL,menu_pos_list
   \   0042  DDE5              PUSH    IX
   \   0044  C1                POP     BC
   \   0045  09                ADD     HL,BC
   \   0046  5E                LD      E,(HL)
   \   0047  D5                PUSH    DE
   \   0048  0E0A              LD      C,10
   \   004A  116C00            LD      DE,108
   \   004D  CD0D01            CALL    LWRD ?0067
   \   0050  F1                POP     AF
     33                  ResShowPic(DHT,194,8);
   \   0051  0E08              LD      C,8
   \   0053  C5                PUSH    BC
   \   0054  0EC2              LD      C,194
   \   0056  112D00            LD      DE,45
   \   0059  CD0D01            CALL    LWRD ?0067
   \   005C  F1                POP     AF
     34                  ResShowPic(DHTHK,194, menu_pos_list[tmp]+6);
   \   005D  210000            LD      HL,menu_pos_list
   \   0060  DDE5              PUSH    IX
   \   0062  C1                POP     BC
   \   0063  09                ADD     HL,BC
   \   0064  7E                LD      A,(HL)
   \   0065  C606              ADD     A,6
   \   0067  5F                LD      E,A
   \   0068  D5                PUSH    DE
   \   0069  0EC2              LD      C,194
   \   006B  112E00            LD      DE,46
   \   006E  CD0D01            CALL    LWRD ?0067
   \   0071  F1                POP     AF
     35          
     36                  SetPenColor(Color_WHITE_def);
   \   0072  CD1501            CALL    LWRD ?0069
     37                  ResShowMultiString(list->strid[active], list->string_id, menu_str_x_def, menu_pos_list[tmp]-3);
   \   0075  210000            LD      HL,menu_pos_list
   \   0078  DDE5              PUSH    IX
   \   007A  C1                POP     BC
   \   007B  09                ADD     HL,BC
   \   007C  7E                LD      A,(HL)
   \   007D  C6FD              ADD     A,253
   \   007F  5F                LD      E,A
   \   0080  D5                PUSH    DE
   \   0081  1E20              LD      E,32
   \   0083  D5                PUSH    DE
   \   0084  FD4E08            LD      C,(IY+8)
   \   0087  FD6E00            LD      L,(IY+0)
   \   008A  FD6601            LD      H,(IY+1)
   \   008D  E5                PUSH    HL
   \   008E  211000            LD      HL,16
   \   0091  39                ADD     HL,SP
   \   0092  46                LD      B,(HL)
   \   0093  23                INC     HL
   \   0094  66                LD      H,(HL)
   \   0095  68                LD      L,B
   \   0096  29                ADD     HL,HL
   \   0097  EB                EX      DE,HL
   \   0098  E1                POP     HL
   \   0099  19                ADD     HL,DE
   \   009A  5E                LD      E,(HL)
   \   009B  23                INC     HL
   \   009C  56                LD      D,(HL)
   \   009D  3E00              LD      A,BYTE3 ResShowMultiString
   \   009F  210000            LD      HL,LWRD ResShowMultiString
   \   00A2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00A5  F1                POP     AF
   \   00A6  F1                POP     AF
     38          
     39                  //重新显示旧的活动菜单
     40                  SetPenColor(Color_WHITE_def);
   \   00A7  CD1501            CALL    LWRD ?0069
     41          
     42                  tmp = old_active%LIST_NUM_ONE_PAGE;
   \   00AA  010600            LD      BC,6
   \   00AD  68                LD      L,B
   \   00AE  60                LD      H,B
   \   00AF  39                ADD     HL,SP
   \   00B0  CDFA00            CALL    LWRD ?0066
     43                  ResShowPic(MENUARR1+tmp, menu_ptr_x_def, menu_pos_list[tmp]);
   \   00B3  4E                LD      C,(HL)
   \   00B4  C5                PUSH    BC
   \   00B5  0E0A              LD      C,10
   \   00B7  215E00            LD      HL,94
   \   00BA  19                ADD     HL,DE
   \   00BB  EB                EX      DE,HL
   \   00BC  CD0D01            CALL    LWRD ?0067
   \   00BF  F1                POP     AF
     44                  ResShowMultiString(list->strid[old_active], list->string_id, menu_str_x_def, menu_pos_list[tmp]-3);
   \   00C0  210000            LD      HL,menu_pos_list
   \   00C3  DDE5              PUSH    IX
   \   00C5  C1                POP     BC
   \   00C6  09                ADD     HL,BC
   \   00C7  7E                LD      A,(HL)
   \   00C8  C6FD              ADD     A,253
   \   00CA  4F                LD      C,A
   \   00CB  C5                PUSH    BC
   \   00CC  0E20              LD      C,32
   \   00CE  C5                PUSH    BC
   \   00CF  FD4E08            LD      C,(IY+8)
   \   00D2  FD6E00            LD      L,(IY+0)
   \   00D5  FD6601            LD      H,(IY+1)
   \   00D8  E5                PUSH    HL
   \   00D9  210600            LD      HL,6
   \   00DC  39                ADD     HL,SP
   \   00DD  46                LD      B,(HL)
   \   00DE  23                INC     HL
   \   00DF  66                LD      H,(HL)
   \   00E0  68                LD      L,B
   \   00E1  29                ADD     HL,HL
   \   00E2  EB                EX      DE,HL
   \   00E3  E1                POP     HL
   \   00E4  19                ADD     HL,DE
   \   00E5  5E                LD      E,(HL)
   \   00E6  23                INC     HL
   \   00E7  56                LD      D,(HL)
   \   00E8  3E00              LD      A,BYTE3 ResShowMultiString
   \   00EA  210000            LD      HL,LWRD ResShowMultiString
   \   00ED  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00F0  F1                POP     AF
   \   00F1  F1                POP     AF
     45          }
   \   00F2  E1                POP     HL
   \   00F3  DDE1              POP     IX
   \   00F5  FDE1              POP     IY
   \   00F7  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   00FA            ?0066:
   \   00FA  5E                LD      E,(HL)
   \   00FB  23                INC     HL
   \   00FC  56                LD      D,(HL)
   \   00FD  CD0000            CALL    LWRD ?SS_MOD_L02
   \   0100  D5                PUSH    DE
   \   0101  DDE1              POP     IX
   \   0103  210000            LD      HL,menu_pos_list
   \   0106  19                ADD     HL,DE
   \   0107  C9                RET
   \   0108            ?0068:
   \   0108  0E09              LD      C,9
   \   010A  116400            LD      DE,100
   \   010D            ?0067:
   \   010D  3E00              LD      A,BYTE3 ResShowPic
   \   010F  210000            LD      HL,LWRD ResShowPic
   \   0112  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0115            ?0069:
   \   0115  010000            LD      BC,0
   \   0118  11FFFF            LD      DE,65535
   \   011B  C30000            JP      LWRD SetPenColor
   \   011E            ui_popup_list:
     46          
     47          /*
     48          ********************************************************************************
     49          * Description : 弹出式列表选择窗体
     50          *
     51          * Arguments   :
     52          *    list,  弹出式列表结构体指针
     53          *    list->string, 语言
     54          *
     55          * Returns     : key
     56          *
     57          * Notes       :
     58          *
     59          ********************************************************************************
     60          */
     61          int ui_popup_list(pop_up_list_t *list, const void (*callback)(int value))
     62          {
   \   011E  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0121  E8FF              DEFW    65512
   \   0123  FDE5              PUSH    IY
   \   0125  DD6E02            LD      L,(IX+2)
   \   0128  DD6603            LD      H,(IX+3)
   \   012B  E5                PUSH    HL
   \   012C  FDE1              POP     IY
     63              int i,active,old_active;
     64              char key;
     65              bool need_draw=FALSE;
     66              bool need_drawall=TRUE;
     67              bool value_changed=FALSE;
     68              int max_group;    // list->total / 7
     69              int cur_group;        //list->active / LIST_NUM_ONE_PAGE
     70              int n;            //the item to show
     71              DC  oldDC_sav;
     72          
     73              active = list->active;
   \   012E  FD6E04            LD      L,(IY+4)
   \   0131  DD75E8            LD      (IX-24),L
   \   0134  FD6605            LD      H,(IY+5)
   \   0137  DD74E9            LD      (IX-23),H
     74          
     75              if((list->total % LIST_NUM_ONE_PAGE) == 0) max_group--;
   \   013A  DD36FC00          LD      (IX-4),0
   \   013E  DD36FF01          LD      (IX-1),1
   \   0142  DD36FE00          LD      (IX-2),0
   \   0146  FD5E02            LD      E,(IY+2)
   \   0149  FD5603            LD      D,(IY+3)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -