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

📄 ui_pop_up_list.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   00F7  E1                POP     HL
   \   00F8  19                ADD     HL,DE
   \   00F9  5E                LD      E,(HL)
   \   00FA  23                INC     HL
   \   00FB  56                LD      D,(HL)
   \   00FC  3E00              LD      A,BYTE3 ResShowMultiString
   \   00FE  210000            LD      HL,LWRD ResShowMultiString
   \   0101  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0104  F1                POP     AF
   \   0105  F1                POP     AF
     45          }
   \   0106  E1                POP     HL
   \   0107  DDE1              POP     IX
   \   0109  FDE1              POP     IY
   \   010B  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   010E            ?0070:
   \   010E  0E09              LD      C,9
   \   0110  116400            LD      DE,100
   \   0113            ?0069:
   \   0113  3E00              LD      A,BYTE3 ResShowPic
   \   0115  210000            LD      HL,LWRD ResShowPic
   \   0118  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   011B            ?0071:
   \   011B  010000            LD      BC,0
   \   011E  11FFFF            LD      DE,65535
   \   0121  C30000            JP      LWRD SetPenColor
   \   0124            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          {
   \   0124  C5                PUSH    BC
   \   0125  FDE5              PUSH    IY
   \   0127  DDE5              PUSH    IX
   \   0129  DD210000          LD      IX,0
   \   012D  DD39              ADD     IX,SP
   \   012F  21E8FF            LD      HL,65512
   \   0132  39                ADD     HL,SP
   \   0133  F9                LD      SP,HL
   \   0134  D5                PUSH    DE
   \   0135  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;
   \   0137  210400            LD      HL,4
   \   013A  19                ADD     HL,DE
   \   013B  46                LD      B,(HL)
   \   013C  DD70E8            LD      (IX-24),B
   \   013F  23                INC     HL
   \   0140  66                LD      H,(HL)
   \   0141  DD74E9            LD      (IX-23),H
     74          
     75              if((list->total % LIST_NUM_ONE_PAGE) == 0) max_group--;
   \   0144  DD36FC00          LD      (IX-4),0
   \   0148  DD36FF01          LD      (IX-1),1
   \   014C  DD36FE00          LD      (IX-2),0
   \   0150  13                INC     DE
   \   0151  13                INC     DE
   \   0152  EB                EX      DE,HL
   \   0153  5E                LD      E,(HL)
   \   0154  23                INC     HL
   \   0155  56                LD      D,(HL)
   \   0156  010600            LD      BC,6
   \   0159  CD0000            CALL    LWRD ?SS_MOD_L02
   \   015C            ?0002:
   \   015C            ?0003:
     76              GetDCStatus(&oldDC_sav);
   \   015C  210400            LD      HL,4
   \   015F  39                ADD     HL,SP
   \   0160  EB                EX      DE,HL
   \   0161  CD0000            CALL    LWRD GetDCStatus
     77          
     78                  SetTextOutMode(1);       //设字体透明
   \   0164  1E01              LD      E,1
   \   0166  CD0000            CALL    LWRD SetTextOutMode
   \   0169            ?0005:
     79          
     80              while(1)
     81              {
     82                  if(need_drawall)
   \   0169  AF                XOR     A
   \   016A  DDB6FF            OR      (IX-1)
   \   016D  2808              JR      Z,?0008
   \   016F            ?0007:
     83                  {
     84          
     85                      need_drawall=FALSE;
     86                      need_draw=TRUE;
   \   016F  DD36FF00          LD      (IX-1),0
   \   0173  DD36FC01          LD      (IX-4),1
   \   0177            ?0008:
     87                  }
     88          
     89                  if(need_draw)
   \   0177  AF                XOR     A
   \   0178  DDB6FC            OR      (IX-4)
   \   017B  CA0A03            JP      Z,?0010
   \   017E            ?0009:
     90                  {
     91                      old_active=active;
     92                      cur_group = active / LIST_NUM_ONE_PAGE;
   \   017E  010600            LD      BC,6
   \   0181  DD5EE8            LD      E,(IX-24)
   \   0184  DD56E9            LD      D,(IX-23)
   \   0187  CD0000            CALL    LWRD ?SS_DIV_L02
   \   018A  DD73F6            LD      (IX-10),E
   \   018D  DD72F7            LD      (IX-9),D
     93                      n = cur_group*LIST_NUM_ONE_PAGE;
   \   0190  EB                EX      DE,HL
   \   0191  29                ADD     HL,HL
   \   0192  4D                LD      C,L
   \   0193  44                LD      B,H
   \   0194  29                ADD     HL,HL
   \   0195  09                ADD     HL,BC
   \   0196  DD75F4            LD      (IX-12),L
   \   0199  DD74F5            LD      (IX-11),H
     94                      ResShowPic(MENUTWO,0,0);
   \   019C  0E00              LD      C,0
   \   019E  C5                PUSH    BC
   \   019F  116D00            LD      DE,109
   \   01A2  CD1301            CALL    LWRD ?0069
   \   01A5  F1                POP     AF
     95                      ResShowPic(DHT,194,8);
   \   01A6  0E08              LD      C,8
   \   01A8  C5                PUSH    BC
   \   01A9  0EC2              LD      C,194
   \   01AB  112D00            LD      DE,45
   \   01AE  CD1301            CALL    LWRD ?0069
   \   01B1  F1                POP     AF
     96                      SetPenColor(Color_WHITE_def);
   \   01B2  CD1B01            CALL    LWRD ?0071
     97                      ResShowMultiString(list->headid, list->string_id,
     98                      list_str_x_def, list_str_y_def);
   \   01B5  0E94              LD      C,148
   \   01B7  C5                PUSH    BC
   \   01B8  0E16              LD      C,22
   \   01BA  C5                PUSH    BC
   \   01BB  FD4E08            LD      C,(IY+8)
   \   01BE  FD5E06            LD      E,(IY+6)
   \   01C1  FD5607            LD      D,(IY+7)
   \   01C4  3E00              LD      A,BYTE3 ResShowMultiString
   \   01C6  210000            LD      HL,LWRD ResShowMultiString
   \   01C9  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01CC  F1                POP     AF
   \   01CD  F1                POP     AF
     99          
    100                      SetPenColor(Color_WHITE_def);
   \   01CE  CD1B01            CALL    LWRD ?0071
    101                      if(callback != NULL)
   \   01D1  DD6EE8            LD      L,(IX-24)
   \   01D4  DD66E9            LD      H,(IX-23)
   \   01D7  DD75F8            LD      (IX-8),L
   \   01DA  DD74F9            LD      (IX-7),H
   \   01DD  DD7E0A            LD      A,(IX+10)
   \   01E0  DDB60B            OR      (IX+11)
   \   01E3  DDB60C            OR      (IX+12)
   \   01E6  2804              JR      Z,?0012
   \   01E8            ?0011:
    102                      callback(active);         
   \   01E8  EB                EX      DE,HL
   \   01E9  CDBE04            CALL    LWRD ?0073
   \   01EC            ?0012:
    103                       
    104                      for(i=0; i<LIST_NUM_ONE_PAGE; i++)
   \   01EC  AF                XOR     A
   \   01ED  DD77EA            LD      (IX-22),A
   \   01F0  DD77EB            LD      (IX-21),A
   \   01F3            ?0014:
   \   01F3  010680            LD      BC,32774
   \   01F6  DD6EEA            LD      L,(IX-22)
   \   01F9  DD66EB            LD      H,(IX-21)
   \   01FC  78                LD      A,B
   \   01FD  AC                XOR     H
   \   01FE  67                LD      H,A
   \   01FF  ED42              SBC     HL,BC
   \   0201  D20603            JP      NC,?0013
   \   0204            ?0015:
    105                      {
    106                          if(n+i >= list->total) break;    //处理不足LIST_NUM_ONE_PAGE个的情况
   \   0204  FD4E02            LD      C,(IY+2)
   \   0207  FD4603            LD      B,(IY+3)
   \   020A  DD6EEA            LD      L,(IX-22)
   \   020D  DD66EB            LD      H,(IX-21)
   \   0210  DD5EF4            LD      E,(IX-12)
   \   0213  DD56F5            LD      D,(IX-11)
   \   0216  19                ADD     HL,DE
   \   0217  F680              OR      128
   \   0219  ED42              SBC     HL,BC
   \   021B  E21F02            JP      PO,?0061
   \   021E  AC                XOR     H
   \   021F            ?0061:
   \   021F  F20603            JP      P,?0013
   \   0222            ?0017:
   \   0222            ?0018:
    107                          if(n+i==active)
   \   0222  DD6EEA            LD      L,(IX-22)
   \   0225  DD66EB            LD      H,(IX-21)
   \   0228  4B                LD      C,E
   \   0229  42                LD      B,D
   \   022A  09                ADD     HL,BC
   \   022B  DD4EE8            LD      C,(IX-24)
   \   022E  DD46E9            LD      B,(IX-23)
   \   0231  A7                AND     A
   \   0232  ED42              SBC     HL,BC
   \   0234  210000            LD      HL,menu_pos_list
   \   0237  DD4EEA            LD      C,(IX-22)
   \   023A  DD46EB            LD      B,(IX-21)
   \   023D  09                ADD     HL,BC
   \   023E  2071              JR      NZ,?0020
   \   0240            ?0019:
    108                          {
    109                              {
    110                                  ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_list[i]-4);
   \   0240  7E                LD      A,(HL)
   \   0241  C6FC              ADD     A,252
   \   0243  5F                LD      E,A
   \   0244  D5                PUSH    DE
   \   0245  CD0E01            CALL    LWRD ?0070
   \   0248  F1                POP     AF
    111                                  ResShowPic(DHTHK,194, menu_pos_list[i]+6);

⌨️ 快捷键说明

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