ui_directory.lst

来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,139 行 · 第 1/4 页

LST
1,139
字号
   \   0252  220000            LD      (list_active),HL
    172                                      cur_group=(list_total_num - 1)/GroupDefine;
   \   0255  010600            LD      BC,6
   \   0258  CDD104            CALL    LWRD ?0121
    173                                      top=(list_active/GroupDefine)*GroupDefine; //顶的序号
    174                                      bottom=top+GroupDefine-1;                  //底的序号
    175                                      if(bottom>(list_total_num-1))
   \   025B  4D                LD      C,L
   \   025C  44                LD      B,H
   \   025D  2A0000            LD      HL,(list_active)
   \   0260  A7                AND     A
   \   0261  ED42              SBC     HL,BC
   \   0263  300B              JR      NC,?0052
   \   0265            ?0051:
    176                                          bottom=list_total_num-1;
   \   0265  21FFFF            LD      HL,65535
   \   0268  ED4B0000          LD      BC,(list_total_num)
   \   026C  09                ADD     HL,BC
   \   026D  E5                PUSH    HL
   \   026E  FDE1              POP     IY
   \   0270            ?0052:
    177                                      DecodeOnePage(top,bottom,type,string_id);
   \   0270  DD6E0A            LD      L,(IX+10)
   \   0273  E5                PUSH    HL
   \   0274  DD6E04            LD      L,(IX+4)
   \   0277  E5                PUSH    HL
   \   0278  CD8C04            CALL    LWRD ?0119
   \   027B  E1                POP     HL
   \   027C  E1                POP     HL
    178                                      ShowDirectory(top,bottom,list_active,list_active,string_id,DiskFlag);
   \   027D  DD6EEE            LD      L,(IX-18)
   \   0280  E5                PUSH    HL
   \   0281  DD6E0A            LD      L,(IX+10)
   \   0284  E5                PUSH    HL
   \   0285  2A0000            LD      HL,(list_active)
   \   0288  E5                PUSH    HL
   \   0289            ?0112:
   \   0289  E5                PUSH    HL
   \   028A  FDE5              PUSH    IY
   \   028C  C1                POP     BC
   \   028D  DD5EEC            LD      E,(IX-20)
   \   0290  DD56ED            LD      D,(IX-19)
   \   0293  3E00              LD      A,BYTE3 ShowDirectory
   \   0295  210000            LD      HL,LWRD ShowDirectory
   \   0298  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   029B  E1                POP     HL
   \   029C  E1                POP     HL
   \   029D  E1                POP     HL
   \   029E  E1                POP     HL
   \   029F            ?0050:
   \   029F            ?0054:
    179                              }
    180                        while(ap_get_message() != 0);
   \   029F  CD0000            CALL    LWRD ap_get_message
   \   02A2  B7                OR      A
   \   02A3  20FA              JR      NZ,?0050
   \   02A5            ?0055:
    181                          break;
   \   02A5            ?0053:
   \   02A5  C3F800            JP      LWRD ?0025
   \   02A8            ?0056:
    182          
    183          
    184          
    185                      case AP_KEY_PLAY | AP_KEY_UP:
    186                              fselSetLocationC(location);
    187                          return RESULT_IGNORE;
    188                      break;
   \   02A8            ?0057:
    189          
    190                      case AP_KEY_MODE | AP_KEY_LONG:
    191                              key = RESULT_NULL;
   \   02A8  DD36EF00          LD      (IX-17),0
   \   02AC            ?0058:
    192          LongTime:
    193                              output8(0x4e,input8(0x4e) | 0x08);
    194                              TransOneRecord(&temp_record,(OnePageRecord+list_active%GroupDefine));
   \   02AC  CDED04            CALL    LWRD ?0122
    195                              fselDirLayer=temp_record.dirlayer;        //目录层次 0--根目录
    196                              fselDirNo[fselDirLayer]=temp_record.dirno[fselDirLayer];                //目录序号
   \   02AF  C5                PUSH    BC
   \   02B0  0600              LD      B,0
   \   02B2  210000            LD      HL,fselDirNo
   \   02B5  09                ADD     HL,BC
   \   02B6  C1                POP     BC
   \   02B7  70                LD      (HL),B
    197                              fselFileNo=temp_record.fileno;        //文件序号
   \   02B8  2A0900            LD      HL,(temp_record+9)
   \   02BB  220000            LD      (fselFileNo),HL
    198                              fselExtNo=temp_record.fselExtNo;
   \   02BE  3A0C00            LD      A,(temp_record+12)
   \   02C1  320000            LD      (fselExtNo),A
    199          
    200                              if(temp_record.name[0] == '\\')    //当前所处子目录首,需要返回父目录
   \   02C4  3A0D00            LD      A,(temp_record+13)
   \   02C7  FE5C              CP      92
   \   02C9  2008              JR      NZ,?0060
   \   02CB            ?0059:
    201                              {
    202                                          if(fselDirLayer==0)
   \   02CB  3A0000            LD      A,(fselDirLayer)
   \   02CE  B7                OR      A
   \   02CF  202E              JR      NZ,?0073
   \   02D1            ?0061:
    203                                              fselDirNo[fselDirLayer] = 0;
   \   02D1  1823              JR      ?0115
    204                                          else
   \   02D3            ?0062:
    205                                              fselDirLayer--;
   \   02D3            ?0063:
    206                                //    key=RESULT_NULL;
    207                              }
    208                              else    //当前所处可能是子目录或文件,需要分别处理
   \   02D3            ?0060:
    209                              {
    210                                  if(temp_record.filetype==TYPE_DIR)
   \   02D3  3A0000            LD      A,(temp_record)
   \   02D6  B7                OR      A
   \   02D7  3A0000            LD      A,(fselDirLayer)
   \   02DA  2017              JR      NZ,?0066
   \   02DC            ?0065:
    211                                  {
    212                                          if (fselDirLayer <= 7)
   \   02DC  47                LD      B,A
   \   02DD  3E07              LD      A,7
   \   02DF  B8                CP      B
   \   02E0  3821              JR      C,?0074
   \   02E2            ?0067:
    213                                          {
    214                                                 if(fselEntCurrentDir(temp_record.name))
   \   02E2  110D00            LD      DE,temp_record+13
   \   02E5  3E00              LD      A,BYTE3 fselEntCurrentDir
   \   02E7  210000            LD      HL,LWRD fselEntCurrentDir
   \   02EA  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   02ED  2C                INC     L
   \   02EE  2D                DEC     L
   \   02EF  2812              JR      Z,?0074
   \   02F1            ?0069:
    215                                                     fselDirLayer--;
   \   02F1  180C              JR      ?0073
   \   02F3            ?0070:
   \   02F3            ?0068:
    216                                          }
    217                                  }
    218                                  else
   \   02F3            ?0066:
    219                                  {
    220                                          if(fselDirLayer==0)
   \   02F3  B7                OR      A
   \   02F4  2009              JR      NZ,?0073
   \   02F6            ?0072:
    221                                              fselDirNo[fselDirLayer] = 0;
   \   02F6            ?0115:
   \   02F6  4F                LD      C,A
   \   02F7  41                LD      B,C
   \   02F8  210000            LD      HL,fselDirNo
   \   02FB  09                ADD     HL,BC
   \   02FC  70                LD      (HL),B
    222                                          else
   \   02FD  1804              JR      ?0074
   \   02FF            ?0073:
    223                                              fselDirLayer--;
   \   02FF  210000            LD      HL,fselDirLayer
   \   0302  35                DEC     (HL)
   \   0303            ?0074:
   \   0303            ?0071:
   \   0303            ?0064:
    224                                       //   key=RESULT_NULL;
    225                                  }
    226                              }
    227                             fselGetLocation(location);    //更新location
   \   0303  DD5E02            LD      E,(IX+2)
   \   0306  DD5603            LD      D,(IX+3)
   \   0309  3E00              LD      A,BYTE3 fselGetLocation
   \   030B  210000            LD      HL,LWRD fselGetLocation
   \   030E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    228                                return key;
   \   0311  DD6EEF            LD      L,(IX-17)
   \   0314  2600              LD      H,0
    229                      case AP_KEY_MODE | AP_KEY_UP:
   \   0316  C36704            JP      LWRD ?0106
   \   0319            ?0075:
    230                              output8(0x4e,input8(0x4e) | 0x08);
    231                              TransOneRecord(&temp_record,(OnePageRecord+list_active%GroupDefine));
   \   0319  CDED04            CALL    LWRD ?0122
    232                              fselDirLayer=temp_record.dirlayer;        //目录层次 0--根目录
    233                              fselDirNo[fselDirLayer]=temp_record.dirno[fselDirLayer];                //目录序号
   \   031C  C5                PUSH    BC
   \   031D  0600              LD      B,0
   \   031F  210000            LD      HL,fselDirNo
   \   0322  09                ADD     HL,BC
   \   0323  C1                POP     BC
   \   0324  70                LD      (HL),B
    234                              fselFileNo=temp_record.fileno;        //文件序号
   \   0325  2A0900            LD      HL,(temp_record+9)
   \   0328  220000            LD      (fselFileNo),HL
    235                              fselExtNo=temp_record.fselExtNo;
   \   032B  3A0C00            LD      A,(temp_record+12)
   \   032E  320000            LD      (fselExtNo),A
    236          
    237                              if(temp_record.name[0] == '\\')    //当前所处子目录首,需要返回父目录
   \   0331  3A0D00            LD      A,(temp_record+13)
   \   0334  FE5C              CP      92
   \   0336  2059              JR      NZ,?0077
   \   0338            ?0076:
    238                              {
    239                                      if (fselRetParentDir(Strname))
   \   0338  210A00            LD      HL,10
   \   033B  39                ADD     HL,SP
   \   033C  EB                EX      DE,HL
   \   033D  3E00              LD      A,BYTE3 fselRetParentDir
   \   033F  210000            LD      HL,LWRD fselRetParentDir
   \   0342  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0345  2C                INC     L
   \   0346  2D                DEC     L
   \   0347  2846              JR      Z,?0081
   \   0349            ?0078:
    240                                      {
    241                                          memcpy(temp_record.name,Strname, 11);
   \   0349  010B00            LD      BC,11
   \   034C  110D00            LD      DE,temp_record+13
   \   034F  210A00            LD      HL,10
   \   0352  39                ADD     HL,SP
   \   0353  EDB0              LDIR
    242          
    243                                          init_dir_buf();
   \   0355  CD8404            CALL    LWRD ?0117
    244                                          list_active=GetActiveDirFrom(temp_record.dirno[fselDirLayer]);
   \   0358  210100            LD      HL,temp_record+1
   \   035B  ED4B0000          LD      BC,(fselDirLayer)
   \   035F  0600              LD      B,0
   \   0361  09                ADD     HL,BC
   \   0362  5E                LD      E,(HL)
   \   0363  50                LD      D,B
   \   0364  3E00              LD      A,BYTE3 GetActiveDirFrom
   \   0366  210000            LD      HL,LWRD GetActiveDirFrom
   \   0369  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   036C  220000            LD      (list_active),HL
    245                                          cur_group=list_active/GroupDefine;
   \   036F  0E06              LD      C,6
   \   0371  CDD104            CALL    LWRD ?0121
    246                                          top=(list_active/GroupDefine)*GroupDefine; ; //顶的序号
    247                                          bottom=top+GroupDefine-1;                  //底的序号
    248                                          if(bottom>(list_total_num-1))
   \   0374  21FFFF            LD      HL,65535
   \   0377  ED4B0000          LD      BC,(list_total_num)
   \   037B  09                ADD     HL,BC
   \   037C  FDE5              PUSH    IY
   \   037E  C1                POP     BC
   \   037F  A7                AND     A
   \   0380  ED42              SBC     HL,BC
   \   0382  300B              JR      NC,?0081
   \   0384            ?0080:
    249                                          bottom=list_total_num-1;
   \   0384  21FFFF            LD      HL,65535
   \   0387  ED4B0000          LD      BC,(list_total_num)
   \   038B  09                ADD     HL,BC
   \   038C  E5                PUSH    HL
   \   038D  FDE1              POP     IY
   \   038F            ?0081:
    250          
    251                                      }
    252                                      else
   \   038F            ?0079:
   \   038F            ?0082:
    253                                      {
    254                                      }
    255                              }
    256                              else    //当前所处可能是子目录或文件,需要分别处理
   \   038F  1875              JR      ?0092
   \   0391            ?0077:
    257                              {
    258                                  if(temp_record.filetype==TYPE_DIR)
   \   0391  3A0000            LD      A,(temp_record)
   \   0394  B7                OR      A
   \   0395  3A0000            LD      A,(fselDirLayer)
   \   0398  204C              JR      NZ,?0085
   \   039A            ?0084:
    259                                  {
    260                                          if (fselDirLayer >= 7)         //需实验看看是7还是8?
   \   039A  FE07              CP      7
   \   039C  D2F800            JP      NC,?0025
   \   039F            ?0086:
    261                                          {
    262                                              break;

⌨️ 快捷键说明

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