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

📄 ui_slider.lst

📁 action mp3 devo,eki e,eikf, kdife l
💻 LST
📖 第 1 页 / 共 4 页
字号:
    206                  case AP_KEY_PLAY | AP_KEY_UP:
    207                      return 0;        //ok and return
   \   03AB  1818              JR      ?0093
    208          
    209                      
    210                  case AP_MSG_WAIT_TIMEOUT:
   \   03AD  1824              JR      ?0081
   \   03AF            ?0048:
    211                      if(ui_auto_select) return 0;
   \   03AF  3A0000            LD      A,(ui_auto_select)
   \   03B2  B7                OR      A
   \   03B3  2828              JR      Z,?0055
   \   03B5            ?0049:
   \   03B5  180E              JR      ?0093
    212                  
    213                      break;
   \   03B7  181A              JR      ?0081
   \   03B9            ?0050:
   \   03B9  1822              JR      ?0055
   \   03BB            ?0051:
    214          
    215                      
    216                  default:
    217                      key = ap_handle_hotkey(key);
   \   03BB  CD0000            CALL    LWRD ap_handle_hotkey
   \   03BE  DD77F2            LD      (IX-14),A
    218                      if(key == RESULT_REDRAW) //need_draw = TRUE;
   \   03C1  FE32              CP      50
   \   03C3  2005              JR      NZ,?0053
   \   03C5            ?0052:
    219                      {
    220                          //直接退出,因为控件不能重画背景
    221                          return 0;
   \   03C5            ?0093:
   \   03C5  210000            LD      HL,0
    222                      }
   \   03C8  1809              JR      ?0081
   \   03CA            ?0053:
    223                      else if(key != 0) return key;
   \   03CA  AF                XOR     A
   \   03CB  DDB6F2            OR      (IX-14)
   \   03CE  280D              JR      Z,?0055
   \   03D0            ?0054:
   \   03D0  6F                LD      L,A
   \   03D1  2600              LD      H,0
    224                  }
   \   03D3            ?0081:
   \   03D3  DDF9              LD      SP,IX
   \   03D5  DDE1              POP     IX
   \   03D7  FDE1              POP     IY
   \   03D9  C1                POP     BC
   \   03DA  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   03DD            ?0055:
   \   03DD            ?0033:
    225                  //ASSERT(slider->value <= slider->max);
    226                  //ASSERT(slider->value >= slider->min);
    227          
    228                  //check if holding
    229                  if(hold_state == 1)        //holding up
   \   03DD  DD46F3            LD      B,(IX-13)
   \   03E0  05                DEC     B
   \   03E1  2058              JR      NZ,?0057
   \   03E3            ?0056:
    230                  {
    231                      if((slider->value + slider->step) <= slider->max)
   \   03E3  FD6E06            LD      L,(IY+6)
   \   03E6  FD6607            LD      H,(IY+7)
   \   03E9  FD4E04            LD      C,(IY+4)
   \   03EC  FD4605            LD      B,(IY+5)
   \   03EF  09                ADD     HL,BC
   \   03F0  4D                LD      C,L
   \   03F1  44                LD      B,H
   \   03F2  FD6E02            LD      L,(IY+2)
   \   03F5  FD6603            LD      H,(IY+3)
   \   03F8  F680              OR      128
   \   03FA  ED42              SBC     HL,BC
   \   03FC  E20004            JP      PO,?0087
   \   03FF  AC                XOR     H
   \   0400            ?0087:
   \   0400  FA9604            JP      M,?0070
   \   0403            ?0058:
    232                      {
    233                          slider->value += slider->step;
   \   0403  210400            LD      HL,4
   \   0406  FDE5              PUSH    IY
   \   0408  C1                POP     BC
   \   0409  09                ADD     HL,BC
   \   040A  7E                LD      A,(HL)
   \   040B  FD8606            ADD     A,(IY+6)
   \   040E  77                LD      (HL),A
   \   040F  23                INC     HL
   \   0410  7E                LD      A,(HL)
   \   0411  FD8E07            ADC     A,(IY+7)
   \   0414  77                LD      (HL),A
    234                          value_changed = TRUE;
    235                          need_draw = TRUE;
   \   0415  DD36F401          LD      (IX-12),1
   \   0419  DD36F501          LD      (IX-11),1
   \   041D            ?0061:
    236                          //while(key != NULL && (key & AP_KEY_UP) == NULL)key = ap_get_message();
    237                          while(key != NULL)
   \   041D  AF                XOR     A
   \   041E  DDB6F2            OR      (IX-14)
   \   0421  2877              JR      Z,?0076
   \   0423            ?0062:
    238                          {
    239                              if((key & AP_KEY_UP) != NULL)
   \   0423  DDCBF26E          BIT     5,(IX-14)
   \   0427  2804              JR      Z,?0064
   \   0429            ?0063:
    240                                  hold_state = 0;
   \   0429  DD36F300          LD      (IX-13),0
   \   042D            ?0064:
    241                              key = ap_get_message();
   \   042D  CD0000            CALL    LWRD ap_get_message
   \   0430  DD77F2            LD      (IX-14),A
    242                          }       
    243                      }
   \   0433  18E8              JR      ?0061
   \   0435            ?0060:
   \   0435  1863              JR      ?0076
   \   0437            ?0059:
    244                      else hold_state = 0;    //disable holding  
   \   0437  185D              JR      ?0070
   \   0439            ?0065:
   \   0439  185F              JR      ?0076
   \   043B            ?0057:
    245                  }
    246                  else if(hold_state == 2)    //holding down
   \   043B  DD46F3            LD      B,(IX-13)
   \   043E  05                DEC     B
   \   043F  05                DEC     B
   \   0440  2058              JR      NZ,?0076
   \   0442            ?0067:
    247                  {
    248                      if((slider->value - slider->step) >= slider->min)
   \   0442  FD4E00            LD      C,(IY+0)
   \   0445  FD4601            LD      B,(IY+1)
   \   0448  FD5E06            LD      E,(IY+6)
   \   044B  FD5607            LD      D,(IY+7)
   \   044E  FD6E04            LD      L,(IY+4)
   \   0451  FD6605            LD      H,(IY+5)
   \   0454  A7                AND     A
   \   0455  ED52              SBC     HL,DE
   \   0457  F680              OR      128
   \   0459  ED42              SBC     HL,BC
   \   045B  E25F04            JP      PO,?0088
   \   045E  AC                XOR     H
   \   045F            ?0088:
   \   045F  FA9604            JP      M,?0070
   \   0462            ?0069:
    249                      {
    250                          slider->value -= slider->step;
   \   0462  210400            LD      HL,4
   \   0465  FDE5              PUSH    IY
   \   0467  C1                POP     BC
   \   0468  09                ADD     HL,BC
   \   0469  7E                LD      A,(HL)
   \   046A  FD9606            SUB     (IY+6)
   \   046D  77                LD      (HL),A
   \   046E  23                INC     HL
   \   046F  7E                LD      A,(HL)
   \   0470  FD9E07            SBC     A,(IY+7)
   \   0473  77                LD      (HL),A
    251                          value_changed = TRUE;
    252                          need_draw = TRUE;
   \   0474  DD36F401          LD      (IX-12),1
   \   0478  DD36F501          LD      (IX-11),1
   \   047C            ?0072:
    253                          //while(key != NULL && (key & AP_KEY_UP) == NULL)key = ap_get_message();
    254                          while(key != NULL)
   \   047C  AF                XOR     A
   \   047D  DDB6F2            OR      (IX-14)
   \   0480  2818              JR      Z,?0076
   \   0482            ?0073:
    255                          { 
    256                              if((key & AP_KEY_UP) != NULL)
   \   0482  DDCBF26E          BIT     5,(IX-14)
   \   0486  2804              JR      Z,?0075
   \   0488            ?0074:
    257                                  hold_state = 0; 
   \   0488  DD36F300          LD      (IX-13),0
   \   048C            ?0075:
    258                              key = ap_get_message();
   \   048C  CD0000            CALL    LWRD ap_get_message
   \   048F  DD77F2            LD      (IX-14),A
    259                          }
    260                      }
   \   0492  18E8              JR      ?0072
   \   0494            ?0071:
   \   0494  1804              JR      ?0076
   \   0496            ?0070:
    261                      else hold_state = 0;    //disable holding           
   \   0496  DD36F300          LD      (IX-13),0
   \   049A            ?0076:
   \   049A            ?0068:
   \   049A            ?0066:
    262                  }
    263          
    264                  //handle callback
    265                  if(callback != NULL && value_changed)
   \   049A  DD7E0A            LD      A,(IX+10)
   \   049D  DDB60B            OR      (IX+11)
   \   04A0  DDB60C            OR      (IX+12)
   \   04A3  CADC00            JP      Z,?0010
   \   04A6  AF                XOR     A
   \   04A7  DDB6F4            OR      (IX-12)
   \   04AA  CADC00            JP      Z,?0010
   \   04AD            ?0080:
   \   04AD            ?0079:
   \   04AD            ?0077:
    266                  {
    267                      callback(slider->value);
   \   04AD  FD5E04            LD      E,(IY+4)
   \   04B0  FD5605            LD      D,(IY+5)
   \   04B3  DD7E0C            LD      A,(IX+12)
   \   04B6  DD6E0A            LD      L,(IX+10)
   \   04B9  DD660B            LD      H,(IX+11)
   \   04BC  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    268                      value_changed = FALSE;
   \   04BF  DD36F400          LD      (IX-12),0
   \   04C3            ?0078:
    269                  }
    270                  
    271              }//while(1)
    272              //return 0;
    273          }
   \   04C3  C3DC00            JP      LWRD ?0010
    274          
    275          
   \   0000                    RSEG    CONST
   \   0000            ?0007:
   \   0000  00                DEFB    0
   \   0001  10                DEFB    16
   \   0002  80                DEFB    128
   \   0003  10                DEFB    16
   \   0004            ?0008:
   \   0004  2C                DEFB    ','
   \   0005  08                DEFB    8
   \   0006  28                DEFB    '('
   \   0007  08                DEFB    8
   \   0008                    END

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

⌨️ 快捷键说明

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