sub_function2.lst

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

LST
1,392
字号
   \   0084  D5                PUSH    DE
   \   0085  DDE1              POP     IX
     89              BYTE ext[4];
     90              memcpy(ext, filename + 8, 3);
   \   0087  210000            LD      HL,0
   \   008A  39                ADD     HL,SP
   \   008B  EB                EX      DE,HL
   \   008C  210800            LD      HL,8
   \   008F  DDE5              PUSH    IX
   \   0091  C1                POP     BC
   \   0092  09                ADD     HL,BC
   \   0093  010300            LD      BC,3
   \   0096  EDB0              LDIR
     91              ext[0] = (ext[0]>='a' && ext[0]<='z') ? ext[0] - 'a' + 'A' : ext[0];
   \   0098  69                LD      L,C
   \   0099  60                LD      H,B
   \   009A  39                ADD     HL,SP
   \   009B  7E                LD      A,(HL)
   \   009C  FE61              CP      97
   \   009E  380A              JR      C,?0021
   \   00A0  3E7A              LD      A,122
   \   00A2  BE                CP      (HL)
   \   00A3  3805              JR      C,?0021
   \   00A5  7E                LD      A,(HL)
   \   00A6  C6E0              ADD     A,224
   \   00A8  1801              JR      ?0022
   \   00AA            ?0021:
   \   00AA  7E                LD      A,(HL)
   \   00AB            ?0022:
   \   00AB  77                LD      (HL),A
     92              ext[1] = (ext[1]>='a' && ext[1]<='z') ? ext[1] - 'a' + 'A' : ext[1];
   \   00AC  23                INC     HL
   \   00AD  7E                LD      A,(HL)
   \   00AE  FE61              CP      97
   \   00B0  380A              JR      C,?0027
   \   00B2  3E7A              LD      A,122
   \   00B4  BE                CP      (HL)
   \   00B5  3805              JR      C,?0027
   \   00B7  7E                LD      A,(HL)
   \   00B8  C6E0              ADD     A,224
   \   00BA  1801              JR      ?0028
   \   00BC            ?0027:
   \   00BC  7E                LD      A,(HL)
   \   00BD            ?0028:
   \   00BD  77                LD      (HL),A
     93              ext[2] = (ext[2]>='a' && ext[2]<='z') ? ext[2] - 'a' + 'A' : ext[2];
   \   00BE  23                INC     HL
   \   00BF  7E                LD      A,(HL)
   \   00C0  FE61              CP      97
   \   00C2  380A              JR      C,?0033
   \   00C4  3E7A              LD      A,122
   \   00C6  BE                CP      (HL)
   \   00C7  3805              JR      C,?0033
   \   00C9  7E                LD      A,(HL)
   \   00CA  C6E0              ADD     A,224
   \   00CC  1801              JR      ?0034
   \   00CE            ?0033:
   \   00CE  7E                LD      A,(HL)
   \   00CF            ?0034:
   \   00CF  77                LD      (HL),A
     94              ext[3] = 0;
   \   00D0  23                INC     HL
   \   00D1  70                LD      (HL),B
     95          
     96              if (strcmp(ext, ExtMusicstr[0]) == 0)
   \   00D2  2B                DEC     HL
   \   00D3  2B                DEC     HL
   \   00D4  2B                DEC     HL
   \   00D5  EB                EX      DE,HL
   \   00D6  210000            LD      HL,ExtMusicstr
   \   00D9  CD3B01            CALL    LWRD ?0146
   \   00DC  2004              JR      NZ,?0037
   \   00DE            ?0036:
     97              {
     98                  return Music_MP3;
   \   00DE  2E01              LD      L,1
     99              }
   \   00E0  1851              JR      ?0048
   \   00E2            ?0037:
    100              else if (strcmp(ext, ExtMusicstr[1]) == 0)
   \   00E2  69                LD      L,C
   \   00E3  60                LD      H,B
   \   00E4  39                ADD     HL,SP
   \   00E5  EB                EX      DE,HL
   \   00E6  210400            LD      HL,ExtMusicstr+4
   \   00E9  CD3B01            CALL    LWRD ?0146
   \   00EC  2004              JR      NZ,?0039
   \   00EE            ?0038:
    101              {
    102                  return Music_WMA;
   \   00EE  2E02              LD      L,2
    103              }
   \   00F0  1841              JR      ?0048
   \   00F2            ?0039:
    104              else if (strcmp(ext, ExtMusicstr[2]) == 0)
   \   00F2  69                LD      L,C
   \   00F3  60                LD      H,B
   \   00F4  39                ADD     HL,SP
   \   00F5  EB                EX      DE,HL
   \   00F6  210800            LD      HL,ExtMusicstr+8
   \   00F9  CD3B01            CALL    LWRD ?0146
   \   00FC  2004              JR      NZ,?0041
   \   00FE            ?0040:
    105              {
    106                  return Music_ASF;
   \   00FE  2E03              LD      L,3
    107              }
   \   0100  1831              JR      ?0048
   \   0102            ?0041:
    108              else if (strcmp(ext, ExtMusicstr[3]) == 0)
   \   0102  69                LD      L,C
   \   0103  60                LD      H,B
   \   0104  39                ADD     HL,SP
   \   0105  EB                EX      DE,HL
   \   0106  210C00            LD      HL,ExtMusicstr+12
   \   0109  CD3B01            CALL    LWRD ?0146
   \   010C  2004              JR      NZ,?0043
   \   010E            ?0042:
    109              {
    110                  return Music_WMV;
   \   010E  2E04              LD      L,4
    111              }
   \   0110  1821              JR      ?0048
   \   0112            ?0043:
    112              else if (strcmp(ext, ExtMusicstr[4]) == 0)
   \   0112  69                LD      L,C
   \   0113  60                LD      H,B
   \   0114  39                ADD     HL,SP
   \   0115  EB                EX      DE,HL
   \   0116  211000            LD      HL,ExtMusicstr+16
   \   0119  CD3B01            CALL    LWRD ?0146
   \   011C  2004              JR      NZ,?0045
   \   011E            ?0044:
    113              {
    114                  return Music_OGG;
   \   011E  2E05              LD      L,5
    115              }
   \   0120  1811              JR      ?0048
   \   0122            ?0045:
    116              else if (strcmp(ext, ExtMusicstr[5]) == 0)
   \   0122  69                LD      L,C
   \   0123  60                LD      H,B
   \   0124  39                ADD     HL,SP
   \   0125  EB                EX      DE,HL
   \   0126  211400            LD      HL,ExtMusicstr+20
   \   0129  CD3B01            CALL    LWRD ?0146
   \   012C  2004              JR      NZ,?0047
   \   012E            ?0046:
    117              {
    118                  return Music_APE;
   \   012E  2E06              LD      L,6
    119              }  
   \   0130  1801              JR      ?0048
   \   0132            ?0047:
    120              else
    121              {
    122                  return Music_NON;
   \   0132  68                LD      L,B
    123              }
   \   0133            ?0048:
   \   0133  F1                POP     AF
   \   0134  F1                POP     AF
   \   0135  DDE1              POP     IX
   \   0137  C1                POP     BC
   \   0138  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   013B            ?0146:
   \   013B  CD0000            CALL    LWRD ?STRCMP_L11
   \   013E  7D                LD      A,L
   \   013F  B4                OR      H
   \   0140  C9                RET
    124          }
   \   0141            make_dirname:
    125          
    126          /*
    127          ********************************************************************************
    128          *             void read_var(void)
    129          *
    130          * Description : 读系统变量和ap局部变量
    131          *
    132          * Arguments   : void
    133          *
    134          * Returns     : void
    135          *
    136          * Notes       :
    137          *
    138          ********************************************************************************
    139          */
    140          void make_dirname(void)
    141          {
   \   0141  CD0000            CALL    LWRD ?ENT_AUTO_DIRECT_L09
   \   0144  DEFF              DEFW    65502
    142              int result;
    143              char Backbuf[32];
    144          
    145              fselGetLocation(&g_music_vars.location);
   \   0146  110700            LD      DE,g_music_vars+7
   \   0149  3E00              LD      A,BYTE3 fselGetLocation
   \   014B  210000            LD      HL,LWRD fselGetLocation
   \   014E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    146              if(g_music_vars.location.path[0]==':')
   \   0151  3A1500            LD      A,(g_music_vars+21)
   \   0154  FE3A              CP      58
   \   0156  200B              JR      NZ,?0050
   \   0158            ?0049:
    147                  {
    148                      strcpy(dir_name,"ROOT");
   \   0158  110000            LD      DE,?0051
   \   015B  210000            LD      HL,dir_name
   \   015E  CD0000            CALL    LWRD ?STRCPY_L11
    149                  }
    150              else
   \   0161  185A              JR      ?0052
   \   0163            ?0050:
    151                  {
    152          
    153                  FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
   \   0163  210000            LD      HL,0
   \   0166  E5                PUSH    HL
   \   0167  0E02              LD      C,2
   \   0169  2E04              LD      L,4
   \   016B  39                ADD     HL,SP
   \   016C  EB                EX      DE,HL
   \   016D  CD0000            CALL    LWRD FS_Backup
   \   0170  E1                POP     HL
    154          
    155                      FS_CD("\\");
   \   0171  110500            LD      DE,?0053
   \   0174  CD0000            CALL    LWRD FS_CD
    156                  memcpy(dir_name, g_music_vars.location.path, 12);
   \   0177  010C00            LD      BC,12
   \   017A  110000            LD      DE,dir_name
   \   017D  211500            LD      HL,g_music_vars+21
   \   0180  EDB0              LDIR
    157                      result = FS_GetName(dir_name, 14); //取出长名
   \   0182  0E0E              LD      C,14
   \   0184  110000            LD      DE,dir_name
   \   0187  CD0000            CALL    LWRD FS_GetName
   \   018A  0600              LD      B,0
    158                      if (result != 0)
   \   018C  B7                OR      A
   \   018D  2810              JR      Z,?0055
   \   018F            ?0054:
    159                      {
    160                          unitochar(dir_name, sizeof(dir_name), g_comval.langid);
   \   018F  210C00            LD      HL,g_comval+12
   \   0192  4E                LD      C,(HL)
   \   0193  C5                PUSH    BC
   \   0194  0E1E              LD      C,30
   \   0196  110000            LD      DE,dir_name
   \   0199  CDC301            CALL    LWRD ?0148
   \   019C  F1                POP     AF
    161                      }
    162                      else
   \   019D  1810              JR      ?0056
   \   019F            ?0055:
    163                      {
    164                          memcpy(dir_name, g_music_vars.location.path, 12);
   \   019F  0E0C              LD      C,12
   \   01A1  110000            LD      DE,dir_name
   \   01A4  211500            LD      HL,g_music_vars+21
   \   01A7  EDB0              LDIR
    165                          dir_name[8]=0;
   \   01A9  320800            LD      (dir_name+8),A
    166                          dir_name[9]=0;
   \   01AC  320900            LD      (dir_name+9),A
   \   01AF            ?0056:
    167                      }
    168                      FS_Restore(Backbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
   \   01AF  210000            LD      HL,0
   \   01B2  E5                PUSH    HL
   \   01B3  0E02              LD      C,2
   \   01B5  2E04              LD      L,4
   \   01B7  39                ADD     HL,SP
   \   01B8  EB                EX      DE,HL
   \   01B9  CD0000            CALL    LWRD FS_Restore
   \   01BC  E1                POP     HL
   \   01BD            ?0052:
    169                  }
    170          

⌨️ 快捷键说明

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