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

📄 ui_slider.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   0323  FD9E09            SBC     A,(IY+9)
   \   0326            ?0100:
   \   0326  77                LD      (HL),A
    164                          value_changed = TRUE;
    165                          need_draw = TRUE;
   \   0327  DD36F601          LD      (IX-10),1
   \   032B            ?0105:
   \   032B  DD36F701          LD      (IX-9),1
   \   032F            ?0040:
    166                      }
    167                      
    168                      break;
   \   032F  1850              JR      ?0056
   \   0331            ?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;
   \   0331  AF                XOR     A
   \   0332  DDB6F5            OR      (IX-11)
   \   0335  204A              JR      NZ,?0056
   \   0337            ?0042:
   \   0337  DD36F501          LD      (IX-11),1
   \   033B            ?0043:
    174          
    175                      break;
   \   033B  1844              JR      ?0056
   \   033D            ?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;
   \   033D  AF                XOR     A
   \   033E  DDB6F5            OR      (IX-11)
   \   0341  203E              JR      NZ,?0056
   \   0343            ?0045:
   \   0343  DD36F502          LD      (IX-11),2
   \   0347            ?0046:
    181                      
    182                      break;
   \   0347  1838              JR      ?0056
   \   0349            ?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;
   \   0349  DD36F500          LD      (IX-11),0
    190                      
    191                      break;
   \   034D  1832              JR      ?0056
   \   034F            ?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
   \   034F  1818              JR      ?0093
    197          
    198                      
    199                  case AP_MSG_WAIT_TIMEOUT:
   \   0351  1824              JR      ?0082
   \   0353            ?0049:
    200                      if(ui_auto_select) return 0;
   \   0353  3A0000            LD      A,(ui_auto_select)
   \   0356  B7                OR      A
   \   0357  2828              JR      Z,?0056
   \   0359            ?0050:
   \   0359  180E              JR      ?0093
    201                  
    202                      break;
   \   035B  181A              JR      ?0082
   \   035D            ?0051:
   \   035D  1822              JR      ?0056
   \   035F            ?0052:
    203          
    204                      
    205                  default:
    206                      key = ap_handle_hotkey(key);
   \   035F  CD0000            CALL    LWRD ap_handle_hotkey
   \   0362  DD77F4            LD      (IX-12),A
    207                      if(key == RESULT_REDRAW) //need_draw = TRUE;
   \   0365  FE32              CP      50
   \   0367  2005              JR      NZ,?0054
   \   0369            ?0053:
    208                      {
    209                          //直接退出,因为控件不能重画背景
    210                          return 0;
   \   0369            ?0093:
   \   0369  210000            LD      HL,0
    211                      }
   \   036C  1809              JR      ?0082
   \   036E            ?0054:
    212                      else if(key != 0) return key;
   \   036E  AF                XOR     A
   \   036F  DDB6F4            OR      (IX-12)
   \   0372  280D              JR      Z,?0056
   \   0374            ?0055:
   \   0374  6F                LD      L,A
   \   0375  2600              LD      H,0
    213                  }
   \   0377            ?0082:
   \   0377  DDF9              LD      SP,IX
   \   0379  DDE1              POP     IX
   \   037B  FDE1              POP     IY
   \   037D  C1                POP     BC
   \   037E  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0381            ?0056:
   \   0381            ?0034:
    214           
    215          
    216                  //check if holding
    217                  if(hold_state == 1)        //holding up
   \   0381  DD46F5            LD      B,(IX-11)
   \   0384  05                DEC     B
   \   0385  2058              JR      NZ,?0058
   \   0387            ?0057:
    218                  {
    219                      if((slider->value + slider->step) <= slider->max)
   \   0387  FD6E08            LD      L,(IY+8)
   \   038A  FD6609            LD      H,(IY+9)
   \   038D  FD4E06            LD      C,(IY+6)
   \   0390  FD4607            LD      B,(IY+7)
   \   0393  09                ADD     HL,BC
   \   0394  4D                LD      C,L
   \   0395  44                LD      B,H
   \   0396  FD6E04            LD      L,(IY+4)
   \   0399  FD6605            LD      H,(IY+5)
   \   039C  F680              OR      128
   \   039E  ED42              SBC     HL,BC
   \   03A0  E2A403            JP      PO,?0088
   \   03A3  AC                XOR     H
   \   03A4            ?0088:
   \   03A4  FA3A04            JP      M,?0071
   \   03A7            ?0059:
    220                      {
    221                          slider->value += slider->step;
   \   03A7  210600            LD      HL,6
   \   03AA  FDE5              PUSH    IY
   \   03AC  C1                POP     BC
   \   03AD  09                ADD     HL,BC
   \   03AE  7E                LD      A,(HL)
   \   03AF  FD8608            ADD     A,(IY+8)
   \   03B2  77                LD      (HL),A
   \   03B3  23                INC     HL
   \   03B4  7E                LD      A,(HL)
   \   03B5  FD8E09            ADC     A,(IY+9)
   \   03B8  77                LD      (HL),A
    222                          value_changed = TRUE;
    223                          need_draw = TRUE;
   \   03B9  DD36F601          LD      (IX-10),1
   \   03BD  DD36F701          LD      (IX-9),1
   \   03C1            ?0062:
    224           
    225                          while(key != NULL)
   \   03C1  AF                XOR     A
   \   03C2  DDB6F4            OR      (IX-12)
   \   03C5  2877              JR      Z,?0077
   \   03C7            ?0063:
    226                          {
    227                              if((key & AP_KEY_UP) != NULL)
   \   03C7  DDCBF46E          BIT     5,(IX-12)
   \   03CB  2804              JR      Z,?0065
   \   03CD            ?0064:
    228                                  hold_state = 0;
   \   03CD  DD36F500          LD      (IX-11),0
   \   03D1            ?0065:
    229                              key = ap_get_message();
   \   03D1  CD0000            CALL    LWRD ap_get_message
   \   03D4  DD77F4            LD      (IX-12),A
    230                          }       
    231                      }
   \   03D7  18E8              JR      ?0062
   \   03D9            ?0061:
   \   03D9  1863              JR      ?0077
   \   03DB            ?0060:
    232                      else hold_state = 0;    //disable holding  
   \   03DB  185D              JR      ?0071
   \   03DD            ?0066:
   \   03DD  185F              JR      ?0077
   \   03DF            ?0058:
    233                  }
    234                  else if(hold_state == 2)    //holding down
   \   03DF  DD46F5            LD      B,(IX-11)
   \   03E2  05                DEC     B
   \   03E3  05                DEC     B
   \   03E4  2058              JR      NZ,?0077
   \   03E6            ?0068:
    235                  {
    236                      if((slider->value - slider->step) >= slider->min)
   \   03E6  FD4E02            LD      C,(IY+2)
   \   03E9  FD4603            LD      B,(IY+3)
   \   03EC  FD5E08            LD      E,(IY+8)
   \   03EF  FD5609            LD      D,(IY+9)
   \   03F2  FD6E06            LD      L,(IY+6)
   \   03F5  FD6607            LD      H,(IY+7)
   \   03F8  A7                AND     A
   \   03F9  ED52              SBC     HL,DE
   \   03FB  F680              OR      128
   \   03FD  ED42              SBC     HL,BC
   \   03FF  E20304            JP      PO,?0089
   \   0402  AC                XOR     H
   \   0403            ?0089:
   \   0403  FA3A04            JP      M,?0071
   \   0406            ?0070:
    237                      {
    238                          slider->value -= slider->step;
   \   0406  210600            LD      HL,6
   \   0409  FDE5              PUSH    IY
   \   040B  C1                POP     BC
   \   040C  09                ADD     HL,BC
   \   040D  7E                LD      A,(HL)
   \   040E  FD9608            SUB     (IY+8)
   \   0411  77                LD      (HL),A
   \   0412  23                INC     HL
   \   0413  7E                LD      A,(HL)
   \   0414  FD9E09            SBC     A,(IY+9)
   \   0417  77                LD      (HL),A
    239                          value_changed = TRUE;
    240                          need_draw = TRUE;
   \   0418  DD36F601          LD      (IX-10),1
   \   041C  DD36F701          LD      (IX-9),1
   \   0420            ?0073:
    241           
    242                          while(key != NULL)
   \   0420  AF                XOR     A
   \   0421  DDB6F4            OR      (IX-12)
   \   0424  2818              JR      Z,?0077
   \   0426            ?0074:
    243                          { 
    244                              if((key & AP_KEY_UP) != NULL)
   \   0426  DDCBF46E          BIT     5,(IX-12)
   \   042A  2804              JR      Z,?0076
   \   042C            ?0075:
    245                                  hold_state = 0; 
   \   042C  DD36F500          LD      (IX-11),0
   \   0430            ?0076:
    246                              key = ap_get_message();
   \   0430  CD0000            CALL    LWRD ap_get_message
   \   0433  DD77F4            LD      (IX-12),A
    247                          }
    248                      }
   \   0436  18E8              JR      ?0073
   \   0438            ?0072:
   \   0438  1804              JR      ?0077
   \   043A            ?0071:
    249                      else hold_state = 0;    //disable holding           
   \   043A  DD36F500          LD      (IX-11),0
   \   043E            ?0077:
   \   043E            ?0069:
   \   043E            ?0067:
    250                  }
    251          
    252                  //handle callback
    253                  if(callback != NULL && value_changed)
   \   043E  DD7E0A            LD      A,(IX+10)
   \   0441  DDB60B            OR      (IX+11)
   \   0444  DDB60C            OR      (IX+12)
   \   0447  CA3401            JP      Z,?0021
   \   044A  AF                XOR     A
   \   044B  DDB6F6            OR      (IX-10)
   \   044E  CA3401            JP      Z,?0021
   \   0451            ?0081:
   \   0451            ?0080:
   \   0451            ?0078:
    254                  {
    255                      callback(slider->value);
   \   0451  FD5E06            LD      E,(IY+6)
   \   0454  FD5607            LD      D,(IY+7)
   \   0457  DD7E0C            LD      A,(IX+12)
   \   045A  DD6E0A            LD      L,(IX+10)
   \   045D  DD660B            LD      H,(IX+11)
   \   0460  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    256                      value_changed = FALSE;
   \   0463  DD36F600          LD      (IX-10),0
   \   0467            ?0079:
    257                  }
    258                  
    259              }//while(1)
    260          }
   \   0467  C33401            JP      LWRD ?0021
   \   046A            ?0112:
   \   046A  1600              LD      D,0
   \   046C            ?0111:
   \   046C  210900            LD      HL,9
   \   046F  19                ADD     HL,DE
   \   0470  EB                EX      DE,HL
   \   0471            ?0110:
   \   0471  3E00              LD      A,BYTE3 main_ResShowPic
   \   0473  210000            LD      HL,LWRD main_ResShowPic
   \   0476  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
    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: 1145
Constant size: 4
Static variable size: Data(0) Iram(0)

⌨️ 快捷键说明

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