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

📄 main.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0175  1E04              LD      E,4
   \   0177  CDFD03            CALL    LWRD ?0139
    219              fselGetNextFile(g_voice_vars.location.filename);
    220              fselGetLocation(&g_voice_vars.location);
   \   017A  CDF203            CALL    LWRD ?0138
    221              memcpy(g_file_name_time, g_voice_vars.location.filename, 12);
   \   017D  010C00            LD      BC,12
   \   0180  116200            LD      DE,g_file_name_time
   \   0183  214000            LD      HL,g_voice_vars+32
   \   0186  EDB0              LDIR
    222              result = FS_GetName(g_file_name_time, 31); //取出长名
   \   0188  0E1F              LD      C,31
   \   018A  116200            LD      DE,g_file_name_time
   \   018D  CD0000            CALL    LWRD FS_GetName
   \   0190  0600              LD      B,0
    223                   if (result != 0)
   \   0192  B7                OR      A
   \   0193  2815              JR      Z,?0021
   \   0195            ?0020:
    224                      {
    225                          unitochar(g_file_name_time, sizeof(g_file_name_next), g_comval.langid);
   \   0195  210C00            LD      HL,g_comval+12
   \   0198  4E                LD      C,(HL)
   \   0199  C5                PUSH    BC
   \   019A  0E11              LD      C,17
   \   019C  116200            LD      DE,g_file_name_time
   \   019F  3E00              LD      A,BYTE3 unitochar
   \   01A1  210000            LD      HL,LWRD unitochar
   \   01A4  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01A7  F1                POP     AF
    226                      }
    227                      else
   \   01A8  1810              JR      ?0022
   \   01AA            ?0021:
    228                      {
    229                          memcpy(g_file_name_time, g_voice_vars.location.filename, 12);
   \   01AA  0E0C              LD      C,12
   \   01AC  116200            LD      DE,g_file_name_time
   \   01AF  214000            LD      HL,g_voice_vars+32
   \   01B2  EDB0              LDIR
    230                          g_file_name_time[8]=0;
   \   01B4  326A00            LD      (g_file_name_time+8),A
    231                          g_file_name_next[9]=0;
   \   01B7  32A100            LD      (g_file_name_next+9),A
   \   01BA            ?0022:
    232                      }
    233          
    234              output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
   \   01BA  DB4E              IN      A,(78)
   \   01BC  CBDF              SET     3,A
   \   01BE  D34E              OUT     (78),A
    235              memcpy(g_file_name_next,g_file_name_time,16);
   \   01C0  011000            LD      BC,16
   \   01C3  119800            LD      DE,g_file_name_next
   \   01C6  216200            LD      HL,g_file_name_time
   \   01C9  EDB0              LDIR
    236              g_file_name_next[16]=0;
   \   01CB  AF                XOR     A
   \   01CC  32A800            LD      (g_file_name_next+16),A
    237              fselGetPrevFile(g_voice_vars.location.filename);
   \   01CF  114000            LD      DE,g_voice_vars+32
   \   01D2  3E00              LD      A,BYTE3 fselGetPrevFile
   \   01D4  210000            LD      HL,LWRD fselGetPrevFile
   \   01D7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    238              fselGetLocation(&g_voice_vars.location);
   \   01DA  CDF203            CALL    LWRD ?0138
    239              FSELSetMode(g_voice_vars.repeat_mode);
   \   01DD  ED5B2300          LD      DE,(g_voice_vars+3)
   \   01E1  3E00              LD      A,BYTE3 fselSetMode
   \   01E3  210000            LD      HL,LWRD fselSetMode
   \   01E6  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    240              //parse voice type
    241              if(memcmp(&(g_voice_vars.location.filename[8]), "WAV", 3) == 0 ) g_voice_type = 1;
   \   01E9  0E03              LD      C,3
   \   01EB  114800            LD      DE,g_voice_vars+40
   \   01EE  210700            LD      HL,?0025
   \   01F1  CD0000            CALL    LWRD ?MEMCMP_L11
   \   01F4  7D                LD      A,L
   \   01F5  B4                OR      H
   \   01F6  2004              JR      NZ,?0024
   \   01F8            ?0023:
   \   01F8  3E01              LD      A,1
   \   01FA  180C              JR      ?0121
   \   01FC            ?0024:
    242              else if(memcmp(&(g_voice_vars.location.filename[8]), "ACT", 3) == 0 ) g_voice_type = 2;
   \   01FC  210B00            LD      HL,?0029
   \   01FF  CD0000            CALL    LWRD ?MEMCMP_L11
   \   0202  7D                LD      A,L
   \   0203  B4                OR      H
   \   0204  2007              JR      NZ,?0028
   \   0206            ?0027:
   \   0206  3E02              LD      A,2
   \   0208            ?0121:
   \   0208  325800            LD      (g_voice_type),A
    243              else
   \   020B  1807              JR      ?0030
   \   020D            ?0028:
    244              {
    245                  g_voice_type = 0;
   \   020D  AF                XOR     A
   \   020E  325800            LD      (g_voice_type),A
    246                  //DUMP(g_voice_vars.location.filename, 0);
    247                  return FALSE;
   \   0211  C3E103            JP      LWRD ?0124
    248              }
   \   0214            ?0030:
   \   0214            ?0026:
    249          
    250              f_handle = FS_FOpen(g_voice_vars.location.filename, FS_OPEN_NORMAL);
   \   0214  48                LD      C,B
   \   0215  114000            LD      DE,g_voice_vars+32
   \   0218  CD0000            CALL    LWRD FS_FOpen
   \   021B  E5                PUSH    HL
   \   021C  FDE1              POP     IY
    251              if(f_handle == NULL)
   \   021E  7D                LD      A,L
   \   021F  B4                OR      H
   \   0220  200F              JR      NZ,?0032
   \   0222            ?0031:
    252              {
    253                   FS_FClose(f_handle);
   \   0222  FDE5              PUSH    IY
   \   0224  D1                POP     DE
   \   0225  CD0000            CALL    LWRD FS_FClose
    254                   output8(0x4e,input8(0x4e)|0x8);
   \   0228  DB4E              IN      A,(78)
   \   022A  CBDF              SET     3,A
   \   022C  D34E              OUT     (78),A
    255                   return FALSE;
   \   022E  C3E103            JP      LWRD ?0124
    256              }
   \   0231            ?0032:
    257              //get the long file name
    258              strcpy(g_file_name_time, g_voice_vars.location.filename);
   \   0231  114000            LD      DE,g_voice_vars+32
   \   0234  216200            LD      HL,g_file_name_time
   \   0237  CD0000            CALL    LWRD ?STRCPY_L11
    259              len = FS_GetName(g_file_name_time, 16);
   \   023A  0E10              LD      C,16
   \   023C  116200            LD      DE,g_file_name_time
   \   023F  CD0000            CALL    LWRD FS_GetName
   \   0242  DD77FB            LD      (IX-5),A
    260              if(len == 0)    //no long name
   \   0245  B7                OR      A
   \   0246  2041              JR      NZ,?0034
   \   0248            ?0033:
    261              {
    262                  char *p;
    263                  WORD name_len;
    264          
    265                  //remove space
    266                  p = strchr(g_voice_vars.location.filename, ' ');
   \   0248  112000            LD      DE,32
   \   024B  214000            LD      HL,g_voice_vars+32
   \   024E  CD0000            CALL    LWRD ?STRCHR_L11
    267                  if(p == NULL) name_len = 8;
   \   0251  7D                LD      A,L
   \   0252  B4                OR      H
   \   0253  2009              JR      NZ,?0036
   \   0255            ?0035:
   \   0255  DD36FE08          LD      (IX-2),8
   \   0259  DD72FF            LD      (IX-1),D
   \   025C  180B              JR      ?0037
   \   025E            ?0036:
    268                  else name_len = (WORD)p - (WORD)&g_voice_vars.location.filename[0];
   \   025E  014000            LD      BC,g_voice_vars+32
   \   0261  ED42              SBC     HL,BC
   \   0263  DD75FE            LD      (IX-2),L
   \   0266  DD74FF            LD      (IX-1),H
   \   0269            ?0037:
    269          
    270                  //convert to xxx
    271                  memcpy(g_file_name_time, g_voice_vars.location.filename, name_len);
   \   0269  DD4EFE            LD      C,(IX-2)
   \   026C  79                LD      A,C
   \   026D  DD46FF            LD      B,(IX-1)
   \   0270  116200            LD      DE,g_file_name_time
   \   0273  214000            LD      HL,g_voice_vars+32
   \   0276  B0                OR      B
   \   0277  2802              JR      Z,?0120
   \   0279  EDB0              LDIR
   \   027B            ?0120:
    272                  g_file_name_time[name_len] = 0;
   \   027B  216200            LD      HL,g_file_name_time
   \   027E  DD4EFE            LD      C,(IX-2)
   \   0281  DD46FF            LD      B,(IX-1)
   \   0284  09                ADD     HL,BC
   \   0285  3600              LD      (HL),0
    273              }
    274              else
   \   0287  182D              JR      ?0038
   \   0289            ?0034:
    275              {
    276                  BYTE encode;
    277          
    278                  ASSERT(len <= 17);    // +zero end
    279          
    280                  if(g_comval.langid == 0) encode = CP_CHS;
   \   0289  3A0C00            LD      A,(g_comval+12)
   \   028C  B7                OR      A
   \   028D  2005              JR      NZ,?0040
   \   028F            ?0039:
   \   028F  DD77FC            LD      (IX-4),A
   \   0292  180D              JR      ?0044
   \   0294            ?0040:
    281                  else if(g_comval.langid == 1) encode = CP_ASCII;
   \   0294  3D                DEC     A
   \   0295  2006              JR      NZ,?0043
   \   0297            ?0042:
   \   0297  DD36FC01          LD      (IX-4),1
   \   029B  1804              JR      ?0044
   \   029D            ?0043:
    282                  else encode = CP_CHT;
   \   029D  DD36FC02          LD      (IX-4),2
   \   02A1            ?0044:
   \   02A1            ?0041:
    283                  unitochar(g_file_name_time, len, encode);
   \   02A1  DD6EFC            LD      L,(IX-4)
   \   02A4  E5                PUSH    HL
   \   02A5  DD4EFB            LD      C,(IX-5)
   \   02A8  0600              LD      B,0
   \   02AA  116200            LD      DE,g_file_name_time
   \   02AD  3E00              LD      A,BYTE3 unitochar
   \   02AF  210000            LD      HL,LWRD unitochar
   \   02B2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   02B5  F1                POP     AF
   \   02B6            ?0038:
    284              }
    285          
    286              //get file time
    287              FS_GetCrtTime(&time, f_handle);
   \   02B6  FDE5              PUSH    IY
   \   02B8  C1                POP     BC
   \   02B9  210200            LD      HL,2
   \   02BC  39                ADD     HL,SP
   \   02BD  EB                EX      DE,HL
   \   02BE  CD0000            CALL    LWRD FS_GetCrtTime
    288          
    289              //FS_FClose(f_handle);
    290          
    291              //format "name 04/01/01 12:00  "
    292              len = strlen(g_file_name_time);
   \   02C1  216200            LD      HL,g_file_name_time
   \   02C4  CD0000            CALL    LWRD ?STRLEN_L11
   \   02C7  DD75FB            LD      (IX-5),L
    293              g_file_name_time[len] = ' ';    //seperator
   \   02CA  2600              LD      H,0
   \   02CC  016200            LD      BC,g_file_name_time
   \   02CF  09                ADD     HL,BC
   \   02D0  3620              LD      (HL),32
    294          
    295              g_file_name_time[len + 1] = (time.year % 100) / 10 + '0';
   \   02D2  216300            LD      HL,g_file_name_time+1
   \   02D5  DD4EFB            LD      C,(IX-5)
   \   02D8  0600              LD      B,0
   \   02DA  09                ADD     HL,BC
   \   02DB  0E64              LD      C,100
   \   02DD  DD5EF2            LD      E,(IX-14)
   \   02E0  DD56F3            LD      D,(IX-13)
   \   02E3  CD0000            CALL    LWRD ?US_MOD_L02
   \   02E6  0E0A              LD      C,10
   \   02E8  CD0000            CALL    LWRD ?US_DIV_L02
   \   02EB  7B                LD      A,E
   \   02EC  C630              ADD     A,48
   \   02EE  77                LD      (HL),A
    296              g_file_name_time[len + 2] = (time.year % 10) + '0';
   \   02EF  216400            LD      HL,g_file_name_time+2
   \   02F2  DD4EFB            LD      C,(IX-5)
   \   02F5  09                ADD     HL,BC
   \   02F6  0E0A              LD      C,10
   \   02F8  DD5EF2            LD      E,(IX-14)
   \   02FB  DD56F3            LD      D,(IX-13)
   \   02FE  CD0000            CALL    LWRD ?US_MOD_L02
   \   0301  7B                LD      A,E
   \   0302  C630              ADD     A,48
   \   0304  77                LD      (HL),A
    297          
    298              //get date time,  2003/12/12 12:20
    299              g_file_name_time[len + 3] = '/';
   \   0305  216500            LD      HL,g_file_name_time+3
   \   0308  DD4EFB            LD      C,(IX-5)

⌨️ 快捷键说明

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