show_stop.lst

来自「MP3 整个 SDK」· LST 代码 · 共 1,184 行 · 第 1/4 页

LST
1,184
字号
     81          * Returns     : 全局变量
     82                  g_file_num, 总录音文件个数
     83          *
     84          * Notes       :
     85          *
     86          ********************************************************************************
     87          */
     88          void parse_total_num(void)
     89          {
   \   00F0  C5                PUSH    BC
   \   00F1  D5                PUSH    DE
   \   00F2  21F4FF            LD      HL,65524
   \   00F5  39                ADD     HL,SP
   \   00F6  F9                LD      SP,HL
     90              //fselInit(FSEL_TYPE_VOICE, FSEL_DIR_SEQUENCE, 1);
     91              //fselSetLocation(&g_record_vars.location);
     92              //g_file_num = fselGetTotal();
     93          
     94              char name[12];
     95          
     96              g_file_num = 0;
   \   00F7  AF                XOR     A
   \   00F8  320000            LD      (g_file_num),A
     97              
     98                  if(FS_Dir(name,  voice_ext[0], FS_DIR_FILE))
   \   00FB  0E80              LD      C,128
   \   00FD  C5                PUSH    BC
   \   00FE  010000            LD      BC,voice_ext
   \   0101  EB                EX      DE,HL
   \   0102  CD0000            CALL    LWRD FS_Dir
   \   0105  E1                POP     HL
   \   0106  B7                OR      A
   \   0107  2822              JR      Z,?0012
   \   0109            ?0010:
     99                  {
    100                      g_file_num++;
   \   0109  210000            LD      HL,g_file_num
   \   010C  34                INC     (HL)
   \   010D            ?0013:
    101                  
    102                      while( FS_Dir(name, voice_ext[0], FS_DIR_FILE_CONT))
   \   010D  0E00              LD      C,0
   \   010F  C5                PUSH    BC
   \   0110  010000            LD      BC,voice_ext
   \   0113  210200            LD      HL,2
   \   0116  39                ADD     HL,SP
   \   0117  EB                EX      DE,HL
   \   0118  CD0000            CALL    LWRD FS_Dir
   \   011B  E1                POP     HL
   \   011C  B7                OR      A
   \   011D  280C              JR      Z,?0012
   \   011F            ?0014:
    103                      {
    104                              g_file_num++;
   \   011F  210000            LD      HL,g_file_num
   \   0122  34                INC     (HL)
    105                              CLEAR_WATCHDOG();
   \   0123  DB4E              IN      A,(78)
   \   0125  CBDF              SET     3,A
   \   0127  D34E              OUT     (78),A
    106                      }
    107                  }
   \   0129  18E2              JR      ?0013
   \   012B            ?0012:
   \   012B            ?0011:
    108              
    109          }
   \   012B  210C00            LD      HL,12
   \   012E  39                ADD     HL,SP
   \   012F  F9                LD      SP,HL
   \   0130  D1                POP     DE
   \   0131  C1                POP     BC
   \   0132  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0135            format_filename:
    110          /*
    111          ********************************************************************************
    112          * Description : 格式化文件名
    113          *
    114          * Arguments   : 全局变量
    115                  g_record_vars.rec_type
    116          *
    117          * Returns     : 全局变量
    118                  g_record_vars.location.filename
    119          *
    120          * Notes       : RECxx.WAV or RECxx.ACT
    121          *
    122          ********************************************************************************
    123          */
    124          void format_filename(void)
    125          {
   \   0135  C5                PUSH    BC
   \   0136  D5                PUSH    DE
    126              //date_t date;
    127              
    128              strcpy(g_record_vars.location.filename, "REC");
   \   0137  110000            LD      DE,?0015
   \   013A  212400            LD      HL,g_record_vars+36
   \   013D  CD0000            CALL    LWRD ?STRCPY_L11
    129                  //REC000.WAV
    130                  itoa_3(g_record_vars.wav_num, &g_record_vars.location.filename[3]);
   \   0140  012700            LD      BC,g_record_vars+39
   \   0143  ED5B0600          LD      DE,(g_record_vars+6)
   \   0147  3E00              LD      A,BYTE3 itoa_3
   \   0149  210000            LD      HL,LWRD itoa_3
   \   014C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    131                  strcat(g_record_vars.location.filename, "  WAV");
   \   014F  110400            LD      DE,?0016
   \   0152  212400            LD      HL,g_record_vars+36
   \   0155  CD0000            CALL    LWRD ?STRCAT_L11
    132           
    133          }
   \   0158  D1                POP     DE
   \   0159  C1                POP     BC
   \   015A  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   015D            gen_filename:
    134          /*
    135          ********************************************************************************
    136          * Description : 生成新的录音文件名
    137          *
    138          * Arguments   : 全局变量
    139                  g_record_vars.rec_type
    140          *
    141          * Returns     : TRUE, 成功
    142                  FALSE, 编号01~99 文件都存在
    143                  全局变量
    144                  g_record_vars.location
    145                  g_record_vars.wav_num
    146                  g_file_name_time[], 文件名,文件时间字符串
    147          *
    148          * Notes       :
    149          *
    150          ********************************************************************************
    151          */
    152          BOOL gen_filename(void)
    153          {
   \   015D  C5                PUSH    BC
   \   015E  D5                PUSH    DE
   \   015F  DDE5              PUSH    IX
   \   0161  F5                PUSH    AF
   \   0162  F5                PUSH    AF
    154              date_t date;
    155              
    156              int num = GenNewName(&g_record_vars.location);
   \   0163  110A00            LD      DE,g_record_vars+10
   \   0166  3E00              LD      A,BYTE3 GenNewName
   \   0168  210000            LD      HL,LWRD GenNewName
   \   016B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    157          
    158              //check 01~99 full
    159              if(num == 0) return FALSE;
   \   016E  7D                LD      A,L
   \   016F  B4                OR      H
   \   0170  2003              JR      NZ,?0018
   \   0172            ?0017:
   \   0172  6F                LD      L,A
   \   0173  1853              JR      ?0020
   \   0175            ?0018:
    160                 g_record_vars.wav_num = num;
   \   0175  220600            LD      (g_record_vars+6),HL
    161              
    162              //build g_file_name_time for display
    163              memcpy(g_file_name_time, g_record_vars.location.filename, sizeof("REC00"));
   \   0178  010600            LD      BC,6
   \   017B  110000            LD      DE,g_file_name_time
   \   017E  212400            LD      HL,g_record_vars+36
   \   0181  EDB0              LDIR
    164              TM_GetDate(&date, 0);
   \   0183  69                LD      L,C
   \   0184  60                LD      H,B
   \   0185  39                ADD     HL,SP
   \   0186  EB                EX      DE,HL
   \   0187  CD0000            CALL    LWRD TM_GetDate
    165              //g_file_build_time[5] = ' ';    //"WAVxx "
    166              itoa_4(date.year, &g_file_build_time[0]);
   \   018A  010000            LD      BC,g_file_build_time
   \   018D  210000            LD      HL,0
   \   0190  39                ADD     HL,SP
   \   0191  5E                LD      E,(HL)
   \   0192  23                INC     HL
   \   0193  56                LD      D,(HL)
   \   0194  3E00              LD      A,BYTE3 itoa_4
   \   0196  210000            LD      HL,LWRD itoa_4
   \   0199  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    167              g_file_build_time[4] = '/';    //"WAVxx 2004/"    
   \   019C  3E2F              LD      A,47
   \   019E  320400            LD      (g_file_build_time+4),A
    168              itoa_2(date.month, &g_file_build_time[5]);
   \   01A1  010500            LD      BC,g_file_build_time+5
   \   01A4  210200            LD      HL,2
   \   01A7  39                ADD     HL,SP
   \   01A8  5E                LD      E,(HL)
   \   01A9  3E00              LD      A,BYTE3 itoa_2
   \   01AB  210000            LD      HL,LWRD itoa_2
   \   01AE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    169              g_file_build_time[7] = '/';    //"WAVxx 2004/01/"
   \   01B1  3E2F              LD      A,47
   \   01B3  320700            LD      (g_file_build_time+7),A
    170              itoa_2(date.day, &g_file_build_time[8]);
   \   01B6  010800            LD      BC,g_file_build_time+8
   \   01B9  210300            LD      HL,3
   \   01BC  39                ADD     HL,SP
   \   01BD  5E                LD      E,(HL)
   \   01BE  3E00              LD      A,BYTE3 itoa_2
   \   01C0  210000            LD      HL,LWRD itoa_2
   \   01C3  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    171              //"WAVxx 2004/01/01"
    172          
    173              return TRUE;
   \   01C6  2E01              LD      L,1
    174          }
   \   01C8            ?0020:
   \   01C8  F1                POP     AF
   \   01C9  F1                POP     AF
   \   01CA  DDE1              POP     IX
   \   01CC  D1                POP     DE
   \   01CD  C1                POP     BC
   \   01CE  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01D1            show_stop:
    175           
    176          /*
    177          ********************************************************************************
    178          * Description : 停止界面
    179          *
    180          * Arguments   : auto_start, 是否自动开始录音
    181          *
    182          * Returns     :
    183          *
    184          * Notes       :
    185          *
    186          ********************************************************************************
    187          */
    188          int show_stop(BOOL auto_start)
    189          {
   \   01D1  C5                PUSH    BC
   \   01D2  FDE5              PUSH    IY
   \   01D4  DDE5              PUSH    IX
   \   01D6  DD210000          LD      IX,0
   \   01DA  DD39              ADD     IX,SP
   \   01DC  D5                PUSH    DE
   \   01DD  F5                PUSH    AF
   \   01DE  F5                PUSH    AF
   \   01DF  F5                PUSH    AF
    190              int result;
    191              char key;
    192              //int i=0;    //loop counter
    193              BOOL need_draw=TRUE;
    194              BOOL need_parse=TRUE;    //需要分析文件个数,总时间
    195              BYTE rec_bitrate;        //改变前保存旧的
    196              BOOL waiting_keyup=FALSE;    //录音后在等待用户按键抬起
    197              
    198              g_menu_active = TRUE;
   \   01E0  3E01              LD      A,1
   \   01E2  320B00            LD      (g_menu_active),A
    199              
    200              Open_RecRoute(g_rec_from);               //根据当前录音源,打开及设置录音通道
   \   01E5  ED5B0000          LD      DE,(g_rec_from)
   \   01E9  3E00              LD      A,BYTE3 Open_RecRoute
   \   01EB  210000            LD      HL,LWRD Open_RecRoute
   \   01EE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   01F1  DD36FA01          LD      (IX-6),1
   \   01F5  DD36F801          LD      (IX-8),1
   \   01F9            ?0093:
   \   01F9  DD36FB00          LD      (IX-5),0
   \   01FD            ?0022:
    201              
    202              while(1)
    203              {
    204                  //check if need count num & time
    205                  if(need_parse)
   \   01FD  AF                XOR     A
   \   01FE  DDB6F8            OR      (IX-8)
   \   0201  CAF602            JP      Z,?0025
   \   0204            ?0024:
    206                  {
    207                      parse_total_num();
   \   0204  3E00              LD      A,BYTE3 parse_total_num
   \   0206  21F000            LD      HL,LWRD parse_total_num
   \   0209  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    208          
    209                      //recommend by ryan
    210                      if(g_file_num >= 200)
   \   020C  3A0000            LD      A,(g_file_num)
   \   020F  FEC8              CP      200
   \   0211  3835              JR      C,?0027
   \   0213            ?0026:
    211                      {
    212                          //print some error message
    213                          show_error(MDIROUT);
   \   0213  118D01            LD      DE,397
   \   0216  CD9704            CALL    LWRD ?0100
    214                          
    215                          //进入选项让用户选择其他目录,或者改类型
    216                          rec_bitrate = g_record_vars.rec_bitrate;
   \   0219  3A0300            LD      A,(g_record_vars+3)
   \   021C  DD77FC            LD      (IX-4),A
    217          

⌨️ 快捷键说明

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