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

📄 ui_directory_scroll.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   00DE  DD6EEA            LD      L,(IX-22)
   \   00E1  E5                PUSH    HL
   \   00E2  DD6E08            LD      L,(IX+8)
   \   00E5  E5                PUSH    HL
   \   00E6  2A0000            LD      HL,(list_active)
   \   00E9  E5                PUSH    HL
   \   00EA  E5                PUSH    HL
   \   00EB  CD3804            CALL    LWRD ?0126
   \   00EE  E1                POP     HL
   \   00EF  E1                POP     HL
   \   00F0  E1                POP     HL
   \   00F1  E1                POP     HL
   \   00F2            ?0022:
    101          
    102              while(ap_get_message()!=0) {;}
   \   00F2  CD0000            CALL    LWRD ap_get_message
   \   00F5  B7                OR      A
   \   00F6  20FA              JR      NZ,?0022
   \   00F8            ?0023:
   \   00F8            ?0021:
    103              
    104              ap_message_init(NULL);
   \   00F8  5F                LD      E,A
   \   00F9  57                LD      D,A
   \   00FA  3E00              LD      A,BYTE3 ap_message_init
   \   00FC  210000            LD      HL,LWRD ap_message_init
   \   00FF  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    105              ScrollFlag = 0;         //初始化为不滚屏
   \   0102  AF                XOR     A
   \   0103  320000            LD      (ScrollFlag),A
   \   0106            ?0025:
    106              while(1)
    107              {
    108                  //handle msg
    109                  key = ap_get_message();
   \   0106  CD0000            CALL    LWRD ap_get_message
    110                  switch(key)
   \   0109  5F                LD      E,A
   \   010A  CD0000            CALL    LWRD ?C_V_SWITCH_L06
   \   010D  0A00              DEFW    10
   \   010F  05                DEFB    5
   \   0110  06                DEFB    6
   \   0111  1E                DEFB    30
   \   0112  21                DEFB    33
   \   0113  30                DEFB    48
   \   0114  37                DEFB    55
   \   0115  38                DEFB    56
   \   0116  45                DEFB    69
   \   0117  46                DEFB    70
   \   0118  90                DEFB    144
   \   0119  FD03              DEFW    ?0103
   \   011B  5D02              DEFW    ?0057
   \   011D  2F01              DEFW    ?0028
   \   011F  D301              DEFW    ?0042
   \   0121  0601              DEFW    ?0025
   \   0123  EC03              DEFW    ?0099
   \   0125  CE02              DEFW    ?0075
   \   0127  D903              DEFW    ?0114
   \   0129  CE03              DEFW    ?0096
   \   012B  2F01              DEFW    ?0028
   \   012D  D301              DEFW    ?0042
   \   012F            ?0028:
    111                  {
    112          
    113                      case AP_KEY_NEXT:
    114                      case AP_KEY_NEXT | AP_KEY_HOLD:
    115                              if(list_active < list_total_num - 1)
   \   012F  21FFFF            LD      HL,65535
   \   0132  ED4B0000          LD      BC,(list_total_num)
   \   0136  09                ADD     HL,BC
   \   0137  4D                LD      C,L
   \   0138  44                LD      B,H
   \   0139  2A0000            LD      HL,(list_active)
   \   013C  A7                AND     A
   \   013D  ED42              SBC     HL,BC
   \   013F  303A              JR      NC,?0030
   \   0141            ?0029:
    116                              {
    117                                  list_active++;
   \   0141  2A0000            LD      HL,(list_active)
   \   0144  23                INC     HL
   \   0145  220000            LD      (list_active),HL
    118                                  if(list_active/GroupDefine==cur_group)
   \   0148  010600            LD      BC,6
   \   014B  EB                EX      DE,HL
   \   014C  CD0000            CALL    LWRD ?US_DIV_L02
   \   014F  2A0000            LD      HL,(cur_group)
   \   0152  A7                AND     A
   \   0153  ED52              SBC     HL,DE
   \   0155  201A              JR      NZ,?0032
   \   0157            ?0031:
    119                                  {
    120                                      ScrollFlag = 0;         //初始化为不滚屏
   \   0157  AF                XOR     A
   \   0158  320000            LD      (ScrollFlag),A
    121                                      ShowDirectory(top,bottom,list_active-1,list_active,string_id,DiskFlag);       //zxs change
   \   015B  DD6EEA            LD      L,(IX-22)
   \   015E  E5                PUSH    HL
   \   015F  DD6E08            LD      L,(IX+8)
   \   0162  E5                PUSH    HL
   \   0163  2A0000            LD      HL,(list_active)
   \   0166  E5                PUSH    HL
   \   0167  21FFFF            LD      HL,65535
   \   016A  ED4B0000          LD      BC,(list_active)
   \   016E  09                ADD     HL,BC
   \   016F  1851              JR      ?0115
    122                                   }
    123                                      else
   \   0171            ?0032:
    124                                      {
    125                                              cur_group=cur_group+1;
   \   0171  210100            LD      HL,1
    126                                              
    127                                              top=(list_active/GroupDefine)*GroupDefine; //顶的序号
   \   0174  CD5A04            CALL    LWRD ?0129
    128                                              bottom=top+GroupDefine-1;                  //底的序号
    129                                              if(bottom>(list_total_num-1)) 
   \   0177  302C              JR      NC,?0038
   \   0179            ?0034:
    130                                                  bottom=list_total_num-1;
   \   0179  181F              JR      ?0124
   \   017B            ?0035:
    131                                              
    132                                              DecodeOnePage(top,bottom,type,string_id);    
    133                                              ScrollFlag = 0;                  
    134                                              ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
   \   017B            ?0033:
    135                                      }
    136                              }     
    137                              else 
   \   017B            ?0030:
    138                              {
    139                                      list_active = 0;
   \   017B  210000            LD      HL,0
   \   017E  220000            LD      (list_active),HL
    140                                      cur_group=0;
   \   0181  220000            LD      (cur_group),HL
    141                                      top=0; //顶的序号
    142                                      bottom=top+GroupDefine-1;                  //底的序号
   \   0184  FD210500          LD      IY,5
    143                                      if(bottom>(list_total_num-1)) 
   \   0188  AF                XOR     A
   \   0189  DD77E8            LD      (IX-24),A
   \   018C  DD77E9            LD      (IX-23),A
   \   018F  2B                DEC     HL
   \   0190  03                INC     BC
   \   0191  09                ADD     HL,BC
   \   0192  FDE5              PUSH    IY
   \   0194  C1                POP     BC
   \   0195  A7                AND     A
   \   0196  ED42              SBC     HL,BC
   \   0198  300B              JR      NC,?0038
   \   019A            ?0037:
    144                                          bottom=list_total_num-1;                
   \   019A            ?0124:
   \   019A  21FFFF            LD      HL,65535
   \   019D  ED4B0000          LD      BC,(list_total_num)
   \   01A1  09                ADD     HL,BC
   \   01A2  E5                PUSH    HL
   \   01A3  FDE1              POP     IY
   \   01A5            ?0038:
    145                                      DecodeOnePage(top,bottom,type,string_id);    
   \   01A5  DD6E08            LD      L,(IX+8)
   \   01A8  E5                PUSH    HL
   \   01A9  DD6EFE            LD      L,(IX-2)
   \   01AC  E5                PUSH    HL
   \   01AD  CD4904            CALL    LWRD ?0128
   \   01B0  E1                POP     HL
   \   01B1  E1                POP     HL
    146                                      ScrollFlag = 0;                  
   \   01B2  AF                XOR     A
   \   01B3  320000            LD      (ScrollFlag),A
    147                                      ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
   \   01B6  DD6EEA            LD      L,(IX-22)
   \   01B9  E5                PUSH    HL
   \   01BA  DD6E08            LD      L,(IX+8)
   \   01BD  E5                PUSH    HL
   \   01BE  2A0000            LD      HL,(list_active)
   \   01C1  E5                PUSH    HL
   \   01C2            ?0115:
   \   01C2  E5                PUSH    HL
   \   01C3  CD3804            CALL    LWRD ?0126
   \   01C6  E1                POP     HL
   \   01C7  E1                POP     HL
   \   01C8  E1                POP     HL
   \   01C9  E1                POP     HL
   \   01CA            ?0036:
   \   01CA            ?0040:
    148                              }            
    149                          while(ap_get_message() != 0);
   \   01CA  CD0000            CALL    LWRD ap_get_message
   \   01CD  B7                OR      A
   \   01CE  CA0601            JP      Z,?0025
   \   01D1            ?0041:
    150                          break;
   \   01D1  18F7              JR      ?0036
   \   01D3            ?0039:
   \   01D3            ?0042:
    151          
    152                      case AP_KEY_PREV:
    153                      case AP_KEY_PREV | AP_KEY_HOLD :
    154                          if(list_active >0)
   \   01D3  2A0000            LD      HL,(list_active)
   \   01D6  7D                LD      A,L
   \   01D7  B4                OR      H
   \   01D8  282F              JR      Z,?0044
   \   01DA            ?0043:
    155                              {
    156                                  list_active--;
   \   01DA  2B                DEC     HL
   \   01DB  220000            LD      (list_active),HL
    157                                  if(list_active/GroupDefine==cur_group)                             
   \   01DE  010600            LD      BC,6
   \   01E1  EB                EX      DE,HL
   \   01E2  CD0000            CALL    LWRD ?US_DIV_L02
   \   01E5  2A0000            LD      HL,(cur_group)
   \   01E8  ED52              SBC     HL,DE
   \   01EA  2013              JR      NZ,?0046
   \   01EC            ?0045:
    158                                      {  
    159                                         ScrollFlag = 0;  
   \   01EC  AF                XOR     A
   \   01ED  320000            LD      (ScrollFlag),A
    160                                         ShowDirectory(top,bottom,list_active+1,list_active,string_id,DiskFlag);
   \   01F0  DD6EEA            LD      L,(IX-22)
   \   01F3  E5                PUSH    HL
   \   01F4  DD6E08            LD      L,(IX+8)
   \   01F7  E5                PUSH    HL
   \   01F8  2A0000            LD      HL,(list_active)
   \   01FB  E5                PUSH    HL
   \   01FC  23                INC     HL
   \   01FD  184D              JR      ?0116
    161                                      }
    162                                      else
   \   01FF            ?0046:
    163                                      {
    164                                              cur_group=cur_group-1;
   \   01FF  21FFFF            LD      HL,65535
    165                                              
    166                                              top=(list_active/GroupDefine)*GroupDefine; //顶的序号
   \   0202  CD5A04            CALL    LWRD ?0129
    167                                              bottom=top+GroupDefine-1;                  //底的序号
    168                                              if(bottom>(list_total_num-1)) 
   \   0205  3028              JR      NC,?0052
   \   0207            ?0048:
    169                                                  bottom=list_total_num-1;
   \   0207  181B              JR      ?0125
   \   0209            ?0049:
    170                                              
    171                                              DecodeOnePage(top,bottom,type,string_id);     
    172                                              ScrollFlag = 0;                 
    173                                              ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
   \   0209            ?0047:
    174                                      }
    175                              }     
    176                              else 
   \   0209            ?0044:
    177                              {
    178                                      list_active= list_total_num - 1;
   \   0209  21FFFF            LD      HL,65535
   \   020C  ED4B0000          LD      BC,(list_total_num)
   \   0210  09                ADD     HL,BC
   \   0211  220000            LD      (list_active),HL
    179                                      cur_group=(list_total_num - 1)/GroupDefine;
   \   0214  010600            LD      BC,6
   \   0217  CD8E04            CALL    LWRD ?0130
    180                                      top=(list_active/GroupDefine)*GroupDefine; //顶的序号
    181                                      bottom=top+GroupDefine-1;                  //底的序号
    182                                      if(bottom>(list_total_num-1)) 
   \   021A  4D                LD      C,L
   \   021B  44                LD      B,H
   \   021C  2A0000            LD      HL,(list_active)
   \   021F  A7                AND     A
   \   0220  ED42              SBC     HL,BC
   \   0222  300B              JR      NC,?0052
   \   0224            ?0051:
    183                                          bottom=list_total_num-1;
   \   0224            ?0125:
   \   0224  21FFFF            LD      HL,65535
   \   0227  ED4B0000          LD      BC,(list_total_num)
   \   022B  09                ADD     HL,BC

⌨️ 快捷键说明

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