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

📄 ui_directory_scroll.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   022C  E5                PUSH    HL
   \   022D  FDE1              POP     IY
   \   022F            ?0052:
    184                                      DecodeOnePage(top,bottom,type,string_id);   
   \   022F  DD6E08            LD      L,(IX+8)
   \   0232  E5                PUSH    HL
   \   0233  DD6EFE            LD      L,(IX-2)
   \   0236  E5                PUSH    HL
   \   0237  CD4904            CALL    LWRD ?0128
   \   023A  E1                POP     HL
   \   023B  E1                POP     HL
    185                                      ScrollFlag = 0;                   
   \   023C  AF                XOR     A
   \   023D  320000            LD      (ScrollFlag),A
    186                                      ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
   \   0240  DD6EEA            LD      L,(IX-22)
   \   0243  E5                PUSH    HL
   \   0244  DD6E08            LD      L,(IX+8)
   \   0247  E5                PUSH    HL
   \   0248  2A0000            LD      HL,(list_active)
   \   024B  E5                PUSH    HL
   \   024C            ?0116:
   \   024C  E5                PUSH    HL
   \   024D  CD3804            CALL    LWRD ?0126
   \   0250  E1                POP     HL
   \   0251  E1                POP     HL
   \   0252  E1                POP     HL
   \   0253  E1                POP     HL
   \   0254            ?0050:
   \   0254            ?0054:
    187                              }              
    188                        while(ap_get_message() != 0);
   \   0254  CD0000            CALL    LWRD ap_get_message
   \   0257  B7                OR      A
   \   0258  CA0601            JP      Z,?0025
   \   025B            ?0055:
    189                          break;
   \   025B  18F7              JR      ?0050
   \   025D            ?0053:
   \   025D            ?0056:
    190          
    191                      case AP_KEY_PLAY | AP_KEY_UP:
    192                              fselSetLocationC(location);
    193                          return RESULT_IGNORE; 
    194                      break;
   \   025D            ?0057:
    195          
    196                      case AP_KEY_MODE | AP_KEY_LONG:       
    197                              key = RESULT_NULL; 
   \   025D  DD36EB00          LD      (IX-21),0
   \   0261            ?0058:
    198          LongTime:
    199                              output8(0x4e,input8(0x4e) | 0x08);
    200                              TransOneRecord(&temp_record,(OnePageRecord+list_active%GroupDefine)); 
   \   0261  CDAA04            CALL    LWRD ?0131
    201                              fselDirLayer=temp_record.dirlayer;        //目录层次 0--根目录
    202                              fselDirNo[fselDirLayer]=temp_record.dirno[fselDirLayer];                //目录序号
   \   0264  C5                PUSH    BC
   \   0265  0600              LD      B,0
   \   0267  210000            LD      HL,fselDirNo
   \   026A  09                ADD     HL,BC
   \   026B  C1                POP     BC
   \   026C  70                LD      (HL),B
    203                              fselFileNo=temp_record.fileno;        //文件序号
   \   026D  2A0900            LD      HL,(temp_record+9)
   \   0270  220000            LD      (fselFileNo),HL
    204                              fselExtNo=temp_record.fselExtNo;
   \   0273  3A0C00            LD      A,(temp_record+12)
   \   0276  320000            LD      (fselExtNo),A
    205                              
    206                              if(temp_record.name[0] == '\\')    //当前所处子目录首,需要返回父目录
   \   0279  3A0D00            LD      A,(temp_record+13)
   \   027C  FE5C              CP      92
   \   027E  2008              JR      NZ,?0060
   \   0280            ?0059:
    207                              {    
    208                                          if(fselDirLayer==0)
   \   0280  3A0000            LD      A,(fselDirLayer)
   \   0283  B7                OR      A
   \   0284  202E              JR      NZ,?0073
   \   0286            ?0061:
    209                                              fselDirNo[fselDirLayer] = 0;
   \   0286  1823              JR      ?0119
    210                                          else                    
   \   0288            ?0062:
    211                                              fselDirLayer--;
   \   0288            ?0063:
    212                              }
    213                              else    //当前所处可能是子目录或文件,需要分别处理
   \   0288            ?0060:
    214                              {
    215                                  if(temp_record.filetype==TYPE_DIR)
   \   0288  3A0000            LD      A,(temp_record)
   \   028B  B7                OR      A
   \   028C  3A0000            LD      A,(fselDirLayer)
   \   028F  2017              JR      NZ,?0066
   \   0291            ?0065:
    216                                  {
    217                                          if (fselDirLayer <= 7)         
   \   0291  47                LD      B,A
   \   0292  3E07              LD      A,7
   \   0294  B8                CP      B
   \   0295  3821              JR      C,?0074
   \   0297            ?0067:
    218                                          {
    219                                                 if(fselEntCurrentDir(temp_record.name))
   \   0297  110D00            LD      DE,temp_record+13
   \   029A  3E00              LD      A,BYTE3 fselEntCurrentDir
   \   029C  210000            LD      HL,LWRD fselEntCurrentDir
   \   029F  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   02A2  2C                INC     L
   \   02A3  2D                DEC     L
   \   02A4  2812              JR      Z,?0074
   \   02A6            ?0069:
    220                                                     fselDirLayer--; 
   \   02A6  180C              JR      ?0073
   \   02A8            ?0070:
   \   02A8            ?0068:
    221                                          }                    
    222                                  }
    223                                  else
   \   02A8            ?0066:
    224                                  {
    225                                          if(fselDirLayer==0)
   \   02A8  B7                OR      A
   \   02A9  2009              JR      NZ,?0073
   \   02AB            ?0072:
    226                                              fselDirNo[fselDirLayer] = 0;
   \   02AB            ?0119:
   \   02AB  4F                LD      C,A
   \   02AC  41                LD      B,C
   \   02AD  210000            LD      HL,fselDirNo
   \   02B0  09                ADD     HL,BC
   \   02B1  70                LD      (HL),B
    227                                          else                    
   \   02B2  1804              JR      ?0074
   \   02B4            ?0073:
    228                                              fselDirLayer--;
   \   02B4  210000            LD      HL,fselDirLayer
   \   02B7  35                DEC     (HL)
   \   02B8            ?0074:
   \   02B8            ?0071:
   \   02B8            ?0064:
    229                                  }
    230                              }
    231                             fselGetLocation(location);    //更新location         
   \   02B8  DD5EFC            LD      E,(IX-4)
   \   02BB  DD56FD            LD      D,(IX-3)
   \   02BE  3E00              LD      A,BYTE3 fselGetLocation
   \   02C0  210000            LD      HL,LWRD fselGetLocation
   \   02C3  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    232                                return key;   
   \   02C6  DD6EEB            LD      L,(IX-21)
   \   02C9  2600              LD      H,0
    233                      case AP_KEY_MODE | AP_KEY_UP:
   \   02CB  C30A04            JP      LWRD ?0110
   \   02CE            ?0075:
    234                              output8(0x4e,input8(0x4e) | 0x08);
    235                              TransOneRecord(&temp_record,(OnePageRecord+list_active%GroupDefine)); 
   \   02CE  CDAA04            CALL    LWRD ?0131
    236                              fselDirLayer=temp_record.dirlayer;        //目录层次 0--根目录
    237                              fselDirNo[fselDirLayer]=temp_record.dirno[fselDirLayer];                //目录序号
   \   02D1  C5                PUSH    BC
   \   02D2  0600              LD      B,0
   \   02D4  210000            LD      HL,fselDirNo
   \   02D7  09                ADD     HL,BC
   \   02D8  C1                POP     BC
   \   02D9  70                LD      (HL),B
    238                              fselFileNo=temp_record.fileno;        //文件序号
   \   02DA  2A0900            LD      HL,(temp_record+9)
   \   02DD  220000            LD      (fselFileNo),HL
    239                              fselExtNo=temp_record.fselExtNo;
   \   02E0  3A0C00            LD      A,(temp_record+12)
   \   02E3  320000            LD      (fselExtNo),A
    240                              
    241                              if(temp_record.name[0] == '\\')    //当前所处子目录首,需要返回父目录
   \   02E6  3A0D00            LD      A,(temp_record+13)
   \   02E9  FE5C              CP      92
   \   02EB  2054              JR      NZ,?0077
   \   02ED            ?0076:
    242                              {    
    243                                      if (fselRetParentDir(Strname))
   \   02ED  210800            LD      HL,8
   \   02F0  39                ADD     HL,SP
   \   02F1  EB                EX      DE,HL
   \   02F2  3E00              LD      A,BYTE3 fselRetParentDir
   \   02F4  210000            LD      HL,LWRD fselRetParentDir
   \   02F7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   02FA  2C                INC     L
   \   02FB  2D                DEC     L
   \   02FC  CABB03            JP      Z,?0092
   \   02FF            ?0078:
    244                                      {
    245                                          memcpy(temp_record.name,Strname, 11);
   \   02FF  010B00            LD      BC,11
   \   0302  110D00            LD      DE,temp_record+13
   \   0305  210800            LD      HL,8
   \   0308  39                ADD     HL,SP
   \   0309  EDB0              LDIR
    246                                          
    247                                          init_dir_buf(); 
   \   030B  3E00              LD      A,BYTE3 init_dir_buf
   \   030D  210000            LD      HL,LWRD init_dir_buf
   \   0310  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    248                                          list_active=GetActiveDirFrom(temp_record.dirno[fselDirLayer]);
   \   0313  210100            LD      HL,temp_record+1
   \   0316  ED4B0000          LD      BC,(fselDirLayer)
   \   031A  0600              LD      B,0
   \   031C  09                ADD     HL,BC
   \   031D  5E                LD      E,(HL)
   \   031E  50                LD      D,B
   \   031F  3E00              LD      A,BYTE3 GetActiveDirFrom
   \   0321  210000            LD      HL,LWRD GetActiveDirFrom
   \   0324  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0327  220000            LD      (list_active),HL
    249                                          cur_group=list_active/GroupDefine;                   
   \   032A  0E06              LD      C,6
   \   032C  CD8E04            CALL    LWRD ?0130
    250                                          top=(list_active/GroupDefine)*GroupDefine; ; //顶的序号
    251                                          bottom=top+GroupDefine-1;                  //底的序号
    252                                          if(bottom>(list_total_num-1)) 
   \   032F  21FFFF            LD      HL,65535
   \   0332  ED4B0000          LD      BC,(list_total_num)
   \   0336  09                ADD     HL,BC
   \   0337  FDE5              PUSH    IY
   \   0339  C1                POP     BC
   \   033A  A7                AND     A
   \   033B  ED42              SBC     HL,BC
   \   033D  307C              JR      NC,?0092
   \   033F            ?0080:
    253                                          bottom=list_total_num-1;
   \   033F  184D              JR      ?0123
   \   0341            ?0081:
    254                                      
    255                                      }
    256                                      else
   \   0341            ?0079:
   \   0341            ?0082:
    257                                      {
    258                                      }                
    259                              }
    260                              else    //当前所处可能是子目录或文件,需要分别处理
   \   0341            ?0077:
    261                              {
    262                                  if(temp_record.filetype==TYPE_DIR)
   \   0341  3A0000            LD      A,(temp_record)
   \   0344  B7                OR      A
   \   0345  3A0000            LD      A,(fselDirLayer)
   \   0348  2051              JR      NZ,?0085
   \   034A            ?0084:
    263                                  {
    264                                          if (fselDirLayer >= 7)         //需实验看看是7还是8?
   \   034A  FE07              CP      7
   \   034C  D20601            JP      NC,?0025
   \   034F            ?0086:
    265                                          {
    266                                              break;            
   \   034F            ?0087:
    267                                          }
    268                                          if (fselDirNo[fselDirLayer] > 0) 
   \   034F  4F                LD      C,A
   \   0350  0600              LD      B,0
   \   0352  210000            LD      HL,fselDirNo
   \   0355  09                ADD     HL,BC
   \   0356  7E                LD      A,(HL)
   \   0357  B7                OR      A
   \   0358  2861              JR      Z,?0092
   \   035A            ?0088:
    269                                          {
    270                                                  fselEntCurrentDir(temp_record.name);
   \   035A  110D00            LD      DE,temp_record+13
   \   035D  3E00              LD      A,BYTE3 fselEntCurrentDir
   \   035F  210000            LD      HL,LWRD fselEntCurrentDir
   \   0362  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    271                                              
    272                                          init_dir_buf();   
   \   0365  3E00              LD      A,BYTE3 init_dir_buf
   \   0367  210000            LD      HL,LWRD init_dir_buf
   \   036A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    273                                          list_active=0; 
   \   036D  68                LD      L,B

⌨️ 快捷键说明

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