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

📄 ui_slider.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   02DA  FD9E09            SBC     A,(IY+9)
   \   02DD  77                LD      (HL),A
    183                          value_changed = TRUE;
    184                          need_draw = TRUE;
   \   02DE  DD36FA01          LD      (IX-6),1
   \   02E2  DD36FB01          LD      (IX-5),1
   \   02E6            ?0048:
    185                      }
    186                      
    187                      break;
   \   02E6  1843              JR      ?0064
   \   02E8            ?0049:
    188          
    189                  //hold 用来控制加速开关
    190                  case AP_KEY_NEXT | AP_KEY_HOLD:
    191                  case AP_KEY_VOLADD | AP_KEY_HOLD:
    192                      if(hold_state == 0) hold_state = 1;
   \   02E8  AF                XOR     A
   \   02E9  DDB6F9            OR      (IX-7)
   \   02EC  203D              JR      NZ,?0064
   \   02EE            ?0050:
   \   02EE  DD36F901          LD      (IX-7),1
   \   02F2            ?0051:
    193          
    194                      break;
   \   02F2  1837              JR      ?0064
   \   02F4            ?0052:
    195          
    196          
    197                  case AP_KEY_PREV | AP_KEY_HOLD:
    198                  case AP_KEY_VOLSUB | AP_KEY_HOLD:
    199                      if(hold_state == 0) hold_state = 2;
   \   02F4  AF                XOR     A
   \   02F5  DDB6F9            OR      (IX-7)
   \   02F8  2031              JR      NZ,?0064
   \   02FA            ?0053:
   \   02FA  DD36F902          LD      (IX-7),2
   \   02FE            ?0054:
    200                      
    201                      break;
   \   02FE  182B              JR      ?0064
   \   0300            ?0055:
    202                      
    203          
    204                  case AP_KEY_NEXT | AP_KEY_UP:
    205                  case AP_KEY_VOLADD | AP_KEY_UP:
    206                  case AP_KEY_PREV | AP_KEY_UP:
    207                  case AP_KEY_VOLSUB | AP_KEY_UP:
    208                      hold_state = 0;
   \   0300  DD36F900          LD      (IX-7),0
    209                      
    210                      break;
   \   0304  1825              JR      ?0064
   \   0306            ?0056:
    211                      
    212                      
    213                  case AP_KEY_MODE | AP_KEY_UP:
    214                  case AP_KEY_PLAY | AP_KEY_UP:
    215                      return 0;        //ok and return
    216          
    217                      
    218                  case AP_MSG_WAIT_TIMEOUT:
   \   0306            ?0057:
    219                      if(ui_auto_select) return 0;
   \   0306  3A0000            LD      A,(ui_auto_select)
   \   0309  B7                OR      A
   \   030A  281F              JR      Z,?0064
   \   030C            ?0058:
   \   030C  180A              JR      ?0100
    220                  
    221                      break;
   \   030E            ?0059:
   \   030E            ?0060:
    222          
    223                      
    224                  default:
    225                      key = ap_handle_hotkey(key);
   \   030E  CD0000            CALL    LWRD ap_handle_hotkey
   \   0311  DD77F8            LD      (IX-8),A
    226                      if(key == RESULT_REDRAW) //need_draw = TRUE;
   \   0314  FE32              CP      50
   \   0316  2005              JR      NZ,?0062
   \   0318            ?0061:
    227                      {
    228                          //直接退出,因为控件不能重画背景
    229                          return 0;
   \   0318            ?0100:
   \   0318  210000            LD      HL,0
    230                      }
   \   031B  1809              JR      ?0090
   \   031D            ?0062:
    231                      else if(key != 0) return key;
   \   031D  AF                XOR     A
   \   031E  DDB6F8            OR      (IX-8)
   \   0321  2808              JR      Z,?0064
   \   0323            ?0063:
   \   0323  6F                LD      L,A
   \   0324  2600              LD      H,0
    232                  }
   \   0326            ?0090:
   \   0326  FDE1              POP     IY
   \   0328  C30000            JP      LWRD ?BANK_LEAVE_DIRECT_L08
   \   032B            ?0064:
   \   032B            ?0042:
    233           
    234          
    235                  //check if holding
    236                  if(hold_state == 1)        //holding up
   \   032B  DD46F9            LD      B,(IX-7)
   \   032E  05                DEC     B
   \   032F  2046              JR      NZ,?0066
   \   0331            ?0065:
    237                  {
    238                      if((slider->value + slider->step) <= slider->max)
   \   0331  CD1704            CALL    LWRD ?0109
   \   0334  382F              JR      C,?0068
   \   0336            ?0067:
    239                      {
    240                          slider->value += slider->step;
   \   0336  210600            LD      HL,6
   \   0339  FDE5              PUSH    IY
   \   033B  C1                POP     BC
   \   033C  09                ADD     HL,BC
   \   033D  7E                LD      A,(HL)
   \   033E  FD8608            ADD     A,(IY+8)
   \   0341  77                LD      (HL),A
   \   0342  23                INC     HL
   \   0343  7E                LD      A,(HL)
   \   0344  FD8E09            ADC     A,(IY+9)
   \   0347  77                LD      (HL),A
    241                          value_changed = TRUE;
    242                          need_draw = TRUE;
   \   0348  DD36FA01          LD      (IX-6),1
   \   034C  DD36FB01          LD      (IX-5),1
   \   0350            ?0070:
    243           
    244                          while(key != NULL)
   \   0350  AF                XOR     A
   \   0351  DDB6F8            OR      (IX-8)
   \   0354  281F              JR      Z,?0074
   \   0356            ?0071:
    245                          {
    246                              if((key & AP_KEY_UP) != NULL)
   \   0356  DDCBF86E          BIT     5,(IX-8)
   \   035A  2804              JR      Z,?0073
   \   035C            ?0072:
    247                                  hold_state = 0;
   \   035C  DD36F900          LD      (IX-7),0
   \   0360            ?0073:
    248                              key = ap_get_message();
   \   0360  CD1004            CALL    LWRD ?0108
    249                          }       
    250                      }
   \   0363  18EB              JR      ?0070
   \   0365            ?0069:
    251                      else
   \   0365            ?0068:
    252                      {
    253                                          hold_state = 0;    //disable holding
    254                                          slider->value=slider->max;
   \   0365  FD6E04            LD      L,(IY+4)
   \   0368  FD6605            LD      H,(IY+5)
   \   036B  FD7506            LD      (IY+6),L
   \   036E  FD7407            LD      (IY+7),H
   \   0371  DD36F900          LD      (IX-7),0
   \   0375            ?0074:
   \   0375  1860              JR      ?0085
   \   0377            ?0066:
    255                      }
    256                  }
    257                  else if(hold_state == 2)    //holding down
   \   0377  DD46F9            LD      B,(IX-7)
   \   037A  05                DEC     B
   \   037B  05                DEC     B
   \   037C  2059              JR      NZ,?0085
   \   037E            ?0076:
    258                  {
    259                      if((slider->value - slider->step) >= slider->min)
   \   037E  FD4E02            LD      C,(IY+2)
   \   0381  FD4603            LD      B,(IY+3)
   \   0384  FD5E08            LD      E,(IY+8)
   \   0387  FD5609            LD      D,(IY+9)
   \   038A  FD6E06            LD      L,(IY+6)
   \   038D  FD6607            LD      H,(IY+7)
   \   0390  A7                AND     A
   \   0391  ED52              SBC     HL,DE
   \   0393  CD0000            CALL    LWRD ?SS_CMP_L02
   \   0396  382F              JR      C,?0079
   \   0398            ?0078:
    260                      {
    261                          slider->value -= slider->step;
   \   0398  210600            LD      HL,6
   \   039B  FDE5              PUSH    IY
   \   039D  C1                POP     BC
   \   039E  09                ADD     HL,BC
   \   039F  7E                LD      A,(HL)
   \   03A0  FD9608            SUB     (IY+8)
   \   03A3  77                LD      (HL),A
   \   03A4  23                INC     HL
   \   03A5  7E                LD      A,(HL)
   \   03A6  FD9E09            SBC     A,(IY+9)
   \   03A9  77                LD      (HL),A
    262                          value_changed = TRUE;
    263                          need_draw = TRUE;
   \   03AA  DD36FA01          LD      (IX-6),1
   \   03AE  DD36FB01          LD      (IX-5),1
   \   03B2            ?0081:
    264           
    265                          while(key != NULL)
   \   03B2  AF                XOR     A
   \   03B3  DDB6F8            OR      (IX-8)
   \   03B6  281F              JR      Z,?0085
   \   03B8            ?0082:
    266                          { 
    267                              if((key & AP_KEY_UP) != NULL)
   \   03B8  DDCBF86E          BIT     5,(IX-8)
   \   03BC  2804              JR      Z,?0084
   \   03BE            ?0083:
    268                                  hold_state = 0; 
   \   03BE  DD36F900          LD      (IX-7),0
   \   03C2            ?0084:
    269                              key = ap_get_message();
   \   03C2  CD1004            CALL    LWRD ?0108
    270                          }
    271                      }
   \   03C5  18EB              JR      ?0081
   \   03C7            ?0080:
    272                      else
   \   03C7            ?0079:
    273                                  {
    274                                          hold_state = 0;    //disable holding  
    275                                          slider->value=slider->min;
   \   03C7  FD6E02            LD      L,(IY+2)
   \   03CA  FD6603            LD      H,(IY+3)
   \   03CD  FD7506            LD      (IY+6),L
   \   03D0  FD7407            LD      (IY+7),H
   \   03D3  DD36F900          LD      (IX-7),0
   \   03D7            ?0085:
   \   03D7            ?0077:
   \   03D7            ?0075:
    276                      }
    277                  }
    278          
    279                  //handle callback
    280                  if(callback != NULL && value_changed)
   \   03D7  DD7E0A            LD      A,(IX+10)
   \   03DA  DDB60B            OR      (IX+11)
   \   03DD  DDB60C            OR      (IX+12)
   \   03E0  281C              JR      Z,?0087
   \   03E2  AF                XOR     A
   \   03E3  DDB6FA            OR      (IX-6)
   \   03E6  2816              JR      Z,?0087
   \   03E8            ?0089:
   \   03E8            ?0088:
   \   03E8            ?0086:
    281                  {
    282                      callback(slider->value);
   \   03E8  FD5E06            LD      E,(IY+6)
   \   03EB  FD5607            LD      D,(IY+7)
   \   03EE  DD7E0C            LD      A,(IX+12)
   \   03F1  DD6E0A            LD      L,(IX+10)
   \   03F4  DD660B            LD      H,(IX+11)
   \   03F7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    283                      value_changed = FALSE;
   \   03FA  DD36FA00          LD      (IX-6),0
   \   03FE            ?0087:
    284                  }
    285                  
    286              }//while(1)
    287          }
   \   03FE  C31401            JP      LWRD ?0020
   \   0401            ?0107:
   \   0401  1600              LD      D,0
   \   0403            ?0106:
   \   0403  215A00            LD      HL,90
   \   0406  19                ADD     HL,DE
   \   0407  EB                EX      DE,HL
   \   0408            ?0105:
   \   0408  3E00              LD      A,BYTE3 main_ResShowPic
   \   040A  210000            LD      HL,LWRD main_ResShowPic
   \   040D  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0410            ?0108:
   \   0410  CD0000            CALL    LWRD ap_get_message
   \   0413  DD77F8            LD      (IX-8),A
   \   0416  C9                RET
   \   0417            ?0109:
   \   0417  FD6E08            LD      L,(IY+8)
   \   041A  FD6609            LD      H,(IY+9)
   \   041D  FD4E06            LD      C,(IY+6)
   \   0420  FD4607            LD      B,(IY+7)
   \   0423  09                ADD     HL,BC
   \   0424  4D                LD      C,L
   \   0425  44                LD      B,H
   \   0426  FD6E04            LD      L,(IY+4)
   \   0429  FD6605            LD      H,(IY+5)
   \   042C  C30000            JP      LWRD ?SS_CMP_L02
    288          
    289          
   \   042F                    END

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

⌨️ 快捷键说明

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