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

📄 ui_slider.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
    164                          value_changed = TRUE;
    165                          need_draw = TRUE;
   \   02F2  DD36F601          LD      (IX-10),1
   \   02F6  DD36F701          LD      (IX-9),1
   \   02FA            ?0040:
    166                      }
    167                      
    168                      break;
   \   02FA  184B              JR      ?0056
   \   02FC            ?0041:
    169          
    170                  //hold 用来控制加速开关
    171                  case AP_KEY_NEXT | AP_KEY_HOLD:
    172                  case AP_KEY_VOLADD | AP_KEY_HOLD:
    173                      if(hold_state == 0) hold_state = 1;
   \   02FC  AF                XOR     A
   \   02FD  DDB6F5            OR      (IX-11)
   \   0300  2045              JR      NZ,?0056
   \   0302            ?0042:
   \   0302  DD36F501          LD      (IX-11),1
   \   0306            ?0043:
    174          
    175                      break;
   \   0306  183F              JR      ?0056
   \   0308            ?0044:
    176          
    177          
    178                  case AP_KEY_PREV | AP_KEY_HOLD:
    179                  case AP_KEY_VOLSUB | AP_KEY_HOLD:
    180                      if(hold_state == 0) hold_state = 2;
   \   0308  AF                XOR     A
   \   0309  DDB6F5            OR      (IX-11)
   \   030C  2039              JR      NZ,?0056
   \   030E            ?0045:
   \   030E  DD36F502          LD      (IX-11),2
   \   0312            ?0046:
    181                      
    182                      break;
   \   0312  1833              JR      ?0056
   \   0314            ?0047:
    183                      
    184          
    185                  case AP_KEY_NEXT | AP_KEY_UP:
    186                  case AP_KEY_VOLADD | AP_KEY_UP:
    187                  case AP_KEY_PREV | AP_KEY_UP:
    188                  case AP_KEY_VOLSUB | AP_KEY_UP:
    189                      hold_state = 0;
   \   0314  DD36F500          LD      (IX-11),0
    190                      
    191                      break;
   \   0318  182D              JR      ?0056
   \   031A            ?0048:
    192                      
    193                      
    194                  case AP_KEY_MODE | AP_KEY_UP:
    195                  case AP_KEY_PLAY | AP_KEY_UP:
    196                      return 0;        //ok and return
   \   031A  1818              JR      ?0089
    197          
    198                      
    199                  case AP_MSG_WAIT_TIMEOUT:
   \   031C  1824              JR      ?0082
   \   031E            ?0049:
    200                      if(ui_auto_select) return 0;
   \   031E  3A0000            LD      A,(ui_auto_select)
   \   0321  B7                OR      A
   \   0322  2823              JR      Z,?0056
   \   0324            ?0050:
   \   0324  180E              JR      ?0089
    201                  
    202                      break;
   \   0326  181A              JR      ?0082
   \   0328            ?0051:
   \   0328  181D              JR      ?0056
   \   032A            ?0052:
    203          
    204                      
    205                  default:
    206                      key = ap_handle_hotkey(key);
   \   032A  CD0000            CALL    LWRD ap_handle_hotkey
   \   032D  DD77F4            LD      (IX-12),A
    207                      if(key == RESULT_REDRAW) //need_draw = TRUE;
   \   0330  FE32              CP      50
   \   0332  2005              JR      NZ,?0054
   \   0334            ?0053:
    208                      {
    209                          //直接退出,因为控件不能重画背景
    210                          return 0;
   \   0334            ?0089:
   \   0334  210000            LD      HL,0
    211                      }
   \   0337  1809              JR      ?0082
   \   0339            ?0054:
    212                      else if(key != 0) return key;
   \   0339  AF                XOR     A
   \   033A  DDB6F4            OR      (IX-12)
   \   033D  2808              JR      Z,?0056
   \   033F            ?0055:
   \   033F  6F                LD      L,A
   \   0340  2600              LD      H,0
    213                  }
   \   0342            ?0082:
   \   0342  FDE1              POP     IY
   \   0344  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   0347            ?0056:
   \   0347            ?0034:
    214           
    215          
    216                  //check if holding
    217                  if(hold_state == 1)        //holding up
   \   0347  DD46F5            LD      B,(IX-11)
   \   034A  05                DEC     B
   \   034B  203A              JR      NZ,?0058
   \   034D            ?0057:
    218                  {
    219                      if((slider->value + slider->step) <= slider->max)
   \   034D  CD1D04            CALL    LWRD ?0108
   \   0350  3831              JR      C,?0060
   \   0352            ?0059:
    220                      {
    221                          slider->value += slider->step;
   \   0352  210600            LD      HL,6
   \   0355  FDE5              PUSH    IY
   \   0357  C1                POP     BC
   \   0358  09                ADD     HL,BC
   \   0359  7E                LD      A,(HL)
   \   035A  FD8608            ADD     A,(IY+8)
   \   035D  77                LD      (HL),A
   \   035E  23                INC     HL
   \   035F  7E                LD      A,(HL)
   \   0360  FD8E09            ADC     A,(IY+9)
   \   0363  77                LD      (HL),A
    222                          value_changed = TRUE;
    223                          need_draw = TRUE;
   \   0364  DD36F601          LD      (IX-10),1
   \   0368  DD36F701          LD      (IX-9),1
   \   036C            ?0062:
    224           
    225                          while(key != NULL)
   \   036C  AF                XOR     A
   \   036D  DDB6F4            OR      (IX-12)
   \   0370  286B              JR      Z,?0077
   \   0372            ?0063:
    226                          {
    227                              if((key & AP_KEY_UP) != NULL)
   \   0372  DDCBF46E          BIT     5,(IX-12)
   \   0376  2804              JR      Z,?0065
   \   0378            ?0064:
    228                                  hold_state = 0;
   \   0378  DD36F500          LD      (IX-11),0
   \   037C            ?0065:
    229                              key = ap_get_message();
   \   037C  CD1604            CALL    LWRD ?0107
    230                          }       
    231                      }
   \   037F  18EB              JR      ?0062
   \   0381            ?0061:
   \   0381  185A              JR      ?0077
   \   0383            ?0060:
    232                      else hold_state = 0;    //disable holding  
   \   0383  1854              JR      ?0071
   \   0385            ?0066:
   \   0385  1856              JR      ?0077
   \   0387            ?0058:
    233                  }
    234                  else if(hold_state == 2)    //holding down
   \   0387  DD46F5            LD      B,(IX-11)
   \   038A  05                DEC     B
   \   038B  05                DEC     B
   \   038C  204F              JR      NZ,?0077
   \   038E            ?0068:
    235                  {
    236                      if((slider->value - slider->step) >= slider->min)
   \   038E  FD4E02            LD      C,(IY+2)
   \   0391  FD4603            LD      B,(IY+3)
   \   0394  FD5E08            LD      E,(IY+8)
   \   0397  FD5609            LD      D,(IY+9)
   \   039A  FD6E06            LD      L,(IY+6)
   \   039D  FD6607            LD      H,(IY+7)
   \   03A0  A7                AND     A
   \   03A1  ED52              SBC     HL,DE
   \   03A3  CD0000            CALL    LWRD ?SS_CMP_L02
   \   03A6  3831              JR      C,?0071
   \   03A8            ?0070:
    237                      {
    238                          slider->value -= slider->step;
   \   03A8  210600            LD      HL,6
   \   03AB  FDE5              PUSH    IY
   \   03AD  C1                POP     BC
   \   03AE  09                ADD     HL,BC
   \   03AF  7E                LD      A,(HL)
   \   03B0  FD9608            SUB     (IY+8)
   \   03B3  77                LD      (HL),A
   \   03B4  23                INC     HL
   \   03B5  7E                LD      A,(HL)
   \   03B6  FD9E09            SBC     A,(IY+9)
   \   03B9  77                LD      (HL),A
    239                          value_changed = TRUE;
    240                          need_draw = TRUE;
   \   03BA  DD36F601          LD      (IX-10),1
   \   03BE  DD36F701          LD      (IX-9),1
   \   03C2            ?0073:
    241           
    242                          while(key != NULL)
   \   03C2  AF                XOR     A
   \   03C3  DDB6F4            OR      (IX-12)
   \   03C6  2815              JR      Z,?0077
   \   03C8            ?0074:
    243                          { 
    244                              if((key & AP_KEY_UP) != NULL)
   \   03C8  DDCBF46E          BIT     5,(IX-12)
   \   03CC  2804              JR      Z,?0076
   \   03CE            ?0075:
    245                                  hold_state = 0; 
   \   03CE  DD36F500          LD      (IX-11),0
   \   03D2            ?0076:
    246                              key = ap_get_message();
   \   03D2  CD1604            CALL    LWRD ?0107
    247                          }
    248                      }
   \   03D5  18EB              JR      ?0073
   \   03D7            ?0072:
   \   03D7  1804              JR      ?0077
   \   03D9            ?0071:
    249                      else hold_state = 0;    //disable holding           
   \   03D9  DD36F500          LD      (IX-11),0
   \   03DD            ?0077:
   \   03DD            ?0069:
   \   03DD            ?0067:
    250                  }
    251          
    252                  //handle callback
    253                  if(callback != NULL && value_changed)
   \   03DD  DD7E0A            LD      A,(IX+10)
   \   03E0  DDB60B            OR      (IX+11)
   \   03E3  DDB60C            OR      (IX+12)
   \   03E6  281C              JR      Z,?0079
   \   03E8  AF                XOR     A
   \   03E9  DDB6F6            OR      (IX-10)
   \   03EC  2816              JR      Z,?0079
   \   03EE            ?0081:
   \   03EE            ?0080:
   \   03EE            ?0078:
    254                  {
    255                      callback(slider->value);
   \   03EE  FD5E06            LD      E,(IY+6)
   \   03F1  FD5607            LD      D,(IY+7)
   \   03F4  DD7E0C            LD      A,(IX+12)
   \   03F7  DD6E0A            LD      L,(IX+10)
   \   03FA  DD660B            LD      H,(IX+11)
   \   03FD  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    256                      value_changed = FALSE;
   \   0400  DD36F600          LD      (IX-10),0
   \   0404            ?0079:
    257                  }
    258                  
    259              }//while(1)
    260          }
   \   0404  C32401            JP      LWRD ?0021
   \   0407            ?0106:
   \   0407  1600              LD      D,0
   \   0409            ?0105:
   \   0409  210900            LD      HL,9
   \   040C  19                ADD     HL,DE
   \   040D  EB                EX      DE,HL
   \   040E            ?0104:
   \   040E  3E00              LD      A,BYTE3 main_ResShowPic
   \   0410  210000            LD      HL,LWRD main_ResShowPic
   \   0413  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0416            ?0107:
   \   0416  CD0000            CALL    LWRD ap_get_message
   \   0419  DD77F4            LD      (IX-12),A
   \   041C  C9                RET
   \   041D            ?0108:
   \   041D  FD6E08            LD      L,(IY+8)
   \   0420  FD6609            LD      H,(IY+9)
   \   0423  FD4E06            LD      C,(IY+6)
   \   0426  FD4607            LD      B,(IY+7)
   \   0429  09                ADD     HL,BC
   \   042A  4D                LD      C,L
   \   042B  44                LD      B,H
   \   042C  FD6E04            LD      L,(IY+4)
   \   042F  FD6605            LD      H,(IY+5)
   \   0432  C30000            JP      LWRD ?SS_CMP_L02
    261          
    262          
   \   0000                    RSEG    CONST
   \   0000            ?0019:
   \   0000  2C                DEFB    ','
   \   0001  10                DEFB    16
   \   0002  28                DEFB    '('
   \   0003  10                DEFB    16
   \   0004                    END

Errors: none
Warnings: none
Code size: 1077
Constant size: 4
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

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