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

📄 ui_director_rec2.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   03BD  F9                LD      SP,HL
   \   03BE  D1                POP     DE
   \   03BF  C1                POP     BC
   \   03C0  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   03C3            get_dir_name:
    274          
    275          /********************************************************************************
    276          * Description : 获取第N个有效的目录
    277          *
    278          * Arguments   :
    279          *
    280          * Returns     :
    281          *
    282          * Notes       :
    283          *
    284          ********************************************************************************
    285          */
    286          bool get_dir_name(char *file, WORD num)
    287          {
   \   03C3  FDE5              PUSH    IY
   \   03C5  DDE5              PUSH    IX
   \   03C7  C5                PUSH    BC
   \   03C8  F5                PUSH    AF
   \   03C9  D5                PUSH    DE
   \   03CA  DDE1              POP     IX
    288          
    289              WORD m, tmp,total_file;
    290              if(num>dir_total_num)
   \   03CC  2A4B00            LD      HL,(dir_total_num)
   \   03CF  A7                AND     A
   \   03D0  ED42              SBC     HL,BC
   \   03D2  3005              JR      NC,?0039
   \   03D4            ?0038:
    291                  return 0;
   \   03D4  2E00              LD      L,0
   \   03D6  C36204            JP      LWRD ?0051
   \   03D9            ?0039:
    292              if(num == 0)    //根目录或目录首
   \   03D9  79                LD      A,C
   \   03DA  B0                OR      B
   \   03DB  2030              JR      NZ,?0041
   \   03DD            ?0040:
    293              {
    294                  if(fselDirLayer==0)
   \   03DD  3A0000            LD      A,(fselDirLayer)
   \   03E0  B7                OR      A
   \   03E1  2015              JR      NZ,?0043
   \   03E3            ?0042:
    295                  {
    296                      file[0] = 'R';
   \   03E3  DD360052          LD      (IX+0),82
    297                      file[1] = 'O';
   \   03E7  DD36014F          LD      (IX+1),79
    298                      file[2] = 'O';
   \   03EB  DD36024F          LD      (IX+2),79
    299                      file[3] = 'T';
   \   03EF  DD360354          LD      (IX+3),84
    300                      file[4] = 0;
   \   03F3  DD7704            LD      (IX+4),A
    301                  }
    302                  else
   \   03F6  1808              JR      ?0044
   \   03F8            ?0043:
    303                  {
    304                      file[0] = '\\';
   \   03F8  DD36005C          LD      (IX+0),92
    305                      file[1] = 0;
   \   03FC  DD360100          LD      (IX+1),0
   \   0400            ?0044:
    306                  }
    307                  fselDirNo[fselDirLayer]=0;
   \   0400  ED4B0000          LD      BC,(fselDirLayer)
   \   0404  0600              LD      B,0
   \   0406  210000            LD      HL,fselDirNo
   \   0409  09                ADD     HL,BC
   \   040A  70                LD      (HL),B
    308                  return 1;
   \   040B  1853              JR      ?0047
    309          
    310             }
   \   040D            ?0041:
    311             else
    312             {
    313              tmp=num;
    314                  fselDirNo[fselDirLayer]=tmp;
   \   040D  ED4B0000          LD      BC,(fselDirLayer)
   \   0411  0600              LD      B,0
   \   0413  210000            LD      HL,fselDirNo
   \   0416  09                ADD     HL,BC
   \   0417  E5                PUSH    HL
   \   0418  210400            LD      HL,4
   \   041B  39                ADD     HL,SP
   \   041C  46                LD      B,(HL)
   \   041D  E1                POP     HL
   \   041E  70                LD      (HL),B
    315          
    316                  if(tmp > 0)
   \   041F  210000            LD      HL,0
   \   0422  39                ADD     HL,SP
   \   0423  E5                PUSH    HL
   \   0424  23                INC     HL
   \   0425  23                INC     HL
   \   0426  48                LD      C,B
   \   0427  23                INC     HL
   \   0428  46                LD      B,(HL)
   \   0429  E1                POP     HL
   \   042A  71                LD      (HL),C
   \   042B  23                INC     HL
   \   042C  70                LD      (HL),B
   \   042D  79                LD      A,C
   \   042E  B0                OR      B
   \   042F  282F              JR      Z,?0047
   \   0431            ?0045:
    317                  {
    318                      FS_Dir(file,  Ui_IgnoreExt, FS_DIR_DIR);
   \   0431  0E81              LD      C,129
   \   0433  C5                PUSH    BC
   \   0434  010000            LD      BC,Ui_IgnoreExt
   \   0437  CD0000            CALL    LWRD FS_Dir
   \   043A  E1                POP     HL
    319                      for(m = 2; m <= tmp; m++)
   \   043B  FD210200          LD      IY,2
   \   043F            ?0048:
   \   043F  FDE5              PUSH    IY
   \   0441  C1                POP     BC
   \   0442  210000            LD      HL,0
   \   0445  39                ADD     HL,SP
   \   0446  56                LD      D,(HL)
   \   0447  23                INC     HL
   \   0448  66                LD      H,(HL)
   \   0449  6A                LD      L,D
   \   044A  A7                AND     A
   \   044B  ED42              SBC     HL,BC
   \   044D  3811              JR      C,?0047
   \   044F            ?0049:
    320                        FS_Dir(file,  Ui_IgnoreExt, FS_DIR_DIR_CONT);
   \   044F  0E01              LD      C,1
   \   0451  C5                PUSH    BC
   \   0452  010000            LD      BC,Ui_IgnoreExt
   \   0455  DDE5              PUSH    IX
   \   0457  D1                POP     DE
   \   0458  CD0000            CALL    LWRD FS_Dir
   \   045B  E1                POP     HL
    321                  }
   \   045C  FD23              INC     IY
   \   045E  18DF              JR      ?0048
   \   0460            ?0047:
   \   0460            ?0046:
    322                  return 1;
   \   0460  2E01              LD      L,1
    323              }
   \   0462            ?0051:
   \   0462  F1                POP     AF
   \   0463  F1                POP     AF
   \   0464  DDE1              POP     IX
   \   0466  FDE1              POP     IY
   \   0468  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
    324          }
   \   046B            DecodeOnePage:
    325          
    326          /********************************************************************************
    327          * Description : decode onepage file record .
    328          *
    329          * Arguments  :
    330          *            top:first record
    331          *         bottom:last record
    332          *            type : show file kind
    333          *            string_id: language type
    334          * Returns     :
    335          *
    336          **type=  DIRECTORY_MUSIC/DIRECTORY_VOICE/...
    337          *
    338          ********************************************************************************/
    339          void DecodeOnePage(WORD top,WORD bottom,BYTE type, BYTE string_id)
    340          {
   \   046B  FDE5              PUSH    IY
   \   046D  DDE5              PUSH    IX
   \   046F  DD210000          LD      IX,0
   \   0473  DD39              ADD     IX,SP
   \   0475  C5                PUSH    BC
   \   0476  D5                PUSH    DE
   \   0477  21CEFF            LD      HL,65486
   \   047A  39                ADD     HL,SP
   \   047B  F9                LD      SP,HL
    341              WORD i,NameNum,temp;
    342              char Longnamebuf[50];
    343              for(i = top; i <= bottom; i++)
   \   047C  D5                PUSH    DE
   \   047D  FDE1              POP     IY
   \   047F            ?0053:
   \   047F  FDE5              PUSH    IY
   \   0481  C1                POP     BC
   \   0482  DD6EFE            LD      L,(IX-2)
   \   0485  DD66FF            LD      H,(IX-1)
   \   0488  A7                AND     A
   \   0489  ED42              SBC     HL,BC
   \   048B  3854              JR      C,?0052
   \   048D            ?0054:
    344              {
    345                   {
    346                      get_dir_name(file_name, i );
   \   048D  110000            LD      DE,file_name
   \   0490  3E00              LD      A,BYTE3 get_dir_name
   \   0492  21C303            LD      HL,LWRD get_dir_name
   \   0495  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    347                      temp_record.filetype= TYPE_DIR;
   \   0498  AF                XOR     A
   \   0499  320000            LD      (temp_record),A
    348                   }
    349                  GetLongNameAndSave(file_name,Longnamebuf,string_id);    //保存长,短名字到 temp_record
   \   049C  DD6E0A            LD      L,(IX+10)
   \   049F  E5                PUSH    HL
   \   04A0  210200            LD      HL,2
   \   04A3  39                ADD     HL,SP
   \   04A4  4D                LD      C,L
   \   04A5  44                LD      B,H
   \   04A6  110000            LD      DE,file_name
   \   04A9  3E00              LD      A,BYTE3 GetLongNameAndSave
   \   04AB  213F00            LD      HL,LWRD GetLongNameAndSave
   \   04AE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   04B1  E1                POP     HL
    350                  SaveOtherPara();                //保存其他目录结构相关参数到 temp_record
   \   04B2  3E00              LD      A,BYTE3 SaveOtherPara
   \   04B4  21A800            LD      HL,LWRD SaveOtherPara
   \   04B7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    351          
    352                  TransOneRecord(OnePageRecord+i-top,&temp_record);    //将temp_record的记录数据保存到idm中
   \   04BA  DD5EFC            LD      E,(IX-4)
   \   04BD  DD56FD            LD      D,(IX-3)
   \   04C0  FDE5              PUSH    IY
   \   04C2  E1                POP     HL
   \   04C3  A7                AND     A
   \   04C4  ED52              SBC     HL,DE
   \   04C6  EB                EX      DE,HL
   \   04C7  014B00            LD      BC,75
   \   04CA  CD0000            CALL    LWRD ?S_MUL_L02
   \   04CD  210000            LD      HL,OnePageRecord
   \   04D0  19                ADD     HL,DE
   \   04D1  EB                EX      DE,HL
   \   04D2  3E00              LD      A,BYTE3 TransOneRecord
   \   04D4  21CC00            LD      HL,LWRD TransOneRecord
   \   04D7  010000            LD      BC,temp_record
   \   04DA  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    353               }
    354          }
   \   04DD  FD23              INC     IY
   \   04DF  189E              JR      ?0053
   \   04E1            ?0052:
   \   04E1  DDF9              LD      SP,IX
   \   04E3  DDE1              POP     IX
   \   04E5  FDE1              POP     IY
   \   04E7  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0000                    RSEG    CONST
   \   0000            menu_pos:
   \   0000  16                DEFB    22
   \   0001  28                DEFB    '('
   \   0002  3A                DEFB    ':'
   \   0003  4C                DEFB    'L'
   \   0004  5E                DEFB    '^'
   \   0005  70                DEFB    'p'
   \   0000                    RSEG    DEC_COM_FSL_D
   \   0000            temp_record:
   \   004B                    DEFS    75
   \   004B            dir_total_num:
   \   004D                    DEFS    2
   \   004D            file_total_num:
   \   004F                    DEFS    2
   \   004F            list_total_num:
   \   0051                    DEFS    2
   \   0051            list_active:
   \   0053                    DEFS    2
   \   0053            cur_group:
   \   0055                    DEFS    2
   \   0000                    RSEG    IDM_COM_FSL_D
   \   0000            OnePageRecord:
   \   01C2                    DEFS    450
   \   01C2            dirbuf:
   \   023F                    DEFS    125
   \   0000                    RSEG    DEC_COM_FSL_R
   \   0000            Ui_IgnoreExt:
   \   0000  2A2020            DEFB    '*  '
   \   0003  00                DEFB    0
   \   0004                    END

Errors: none
Warnings: none
Code size: 1258
Constant size: 10
Static variable size: Data(660) Iram(0)

⌨️ 快捷键说明

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