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

📄 show_rec.lst

📁 MP3 整个 SDK
💻 LST
📖 第 1 页 / 共 5 页
字号:
    290                  else if(g_comval.BatteryType == BATT_TYPE_LITHIUM) batt_level = 175;     //3.2v in mode(11)
   \   0386  3A0F00            LD      A,(g_comval+15)
   \   0389  3D                DEC     A
   \   038A  3D                DEC     A
   \   038B  2019              JR      NZ,?0040
   \   038D            ?0029:
   \   038D  1815              JR      ?0137
    291                  else ASSERT(FALSE);
   \   038F            ?0030:
   \   038F            ?0031:
   \   038F            ?0028:
   \   038F            ?0025:
    292              }
    293              // file >= 32M
    294              else
   \   038F            ?0022:
    295              {
    296                  if(g_comval.BatteryType == BATT_TYPE_ALKALINE ) batt_level = 49;         //1.0v is low_bat in mode(00)
   \   038F  B7                OR      A
   \   0390  2004              JR      NZ,?0034
   \   0392            ?0033:
   \   0392            ?0138:
   \   0392  1631              LD      D,49
   \   0394  1810              JR      ?0040
   \   0396            ?0034:
    297                  else if(g_comval.BatteryType == BATT_TYPE_NIH ) batt_level = 55;         //1.05v is low_bat in mode(00)
   \   0396  3D                DEC     A
   \   0397  2004              JR      NZ,?0037
   \   0399            ?0036:
   \   0399  1637              LD      D,55
   \   039B  1809              JR      ?0040
   \   039D            ?0037:
    298                  else if(g_comval.BatteryType == BATT_TYPE_LITHIUM) batt_level = 175;     //3.25v is low_bat in mode(11)
   \   039D  3A0F00            LD      A,(g_comval+15)
   \   03A0  3D                DEC     A
   \   03A1  3D                DEC     A
   \   03A2  2002              JR      NZ,?0040
   \   03A4            ?0039:
   \   03A4            ?0137:
   \   03A4  16AF              LD      D,175
    299                  else ASSERT(FALSE);
   \   03A6            ?0040:
   \   03A6            ?0041:
   \   03A6            ?0038:
   \   03A6            ?0035:
   \   03A6            ?0032:
    300              }
    301          
    302              if(batt <= batt_level) return TRUE;
   \   03A6  7A                LD      A,D
   \   03A7  BB                CP      E
   \   03A8  3803              JR      C,?0043
   \   03AA            ?0042:
   \   03AA  69                LD      L,C
   \   03AB  1801              JR      ?0044
   \   03AD            ?0043:
    303              else return FALSE;
   \   03AD  68                LD      L,B
    304          }
   \   03AE            ?0044:
   \   03AE  F1                POP     AF
   \   03AF  C1                POP     BC
   \   03B0  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   03B3            show_rec:
    305          
    306          
    307          /*
    308          ********************************************************************************
    309          * Description : 录音界面
    310          *
    311          * Arguments   :
    312          *
    313          * Returns     : 结果消息或0
    314                  RESULT_USER_STOP    //用户按键结束
    315          *
    316          * Notes       :
    317          *
    318          ********************************************************************************
    319          */
    320          int show_rec(void)
    321          {
   \   03B3  C5                PUSH    BC
   \   03B4  D5                PUSH    DE
   \   03B5  FDE5              PUSH    IY
   \   03B7  DDE5              PUSH    IX
   \   03B9  DD210000          LD      IX,0
   \   03BD  DD39              ADD     IX,SP
   \   03BF  21E2FF            LD      HL,65506
   \   03C2  39                ADD     HL,SP
   \   03C3  F9                LD      SP,HL
    322              int result=0;    //result for return
    323              int mc_result=0;    //command result
    324              BOOL key_stop=FALSE;    //用户按键结束
    325              //当前状态
    326              enum
    327              {
    328                  recording,
    329                  wait_to_save,
    330                  saving
    331              }status;
    332              char key;
    333              BOOL need_draw=FALSE;    //stop -> rec ui no change!!!
    334              wav_rec_status_t rec_stat;
    335              int i=0;
    336              int page_count=0;
    337              BYTE low_power_count=0;        //获得低电压的次数
    338              BOOL vor_waiting=FALSE;        //vor 没有写盘
    339              BYTE vor_counter=0;        //vor没有写盘的次数
    340              BOOL flash_state=FALSE;        //时间闪动
    341              int batt_old=256;        //
    342              BOOL    is_result_main = FALSE;
    343              bool  CardOutFlag=0;
    344              ASSERT(ui_run_realtime == TRUE);
    345          
    346              //init the counter
    347              g_rec_time.hour = 0;
   \   03C4  AF                XOR     A
   \   03C5  320000            LD      (g_rec_time),A
    348              g_rec_time.minute = 0;
   \   03C8  320100            LD      (g_rec_time+1),A
    349              g_rec_time.second = 0;
   \   03CB  320200            LD      (g_rec_time+2),A
    350          
    351              //send record command
    352              recordSendCommand(MC_RECORD, 0);
   \   03CE  4F                LD      C,A
   \   03CF  47                LD      B,A
   \   03D0  1E08              LD      E,8
   \   03D2  CD0601            CALL    LWRD ?0151
    353              //output8(0x4e,input8(0x4e)|0x8);
    354              status = recording;
   \   03D5  FD210000          LD      IY,0
   \   03D9  AF                XOR     A
   \   03DA  DD77E6            LD      (IX-26),A
   \   03DD  DD77E9            LD      (IX-23),A
   \   03E0  DD77F2            LD      (IX-14),A
   \   03E3  DD77F3            LD      (IX-13),A
   \   03E6  DD77F6            LD      (IX-10),A
   \   03E9  DD77F7            LD      (IX-9),A
   \   03EC  DD77F8            LD      (IX-8),A
   \   03EF  DD77F9            LD      (IX-7),A
   \   03F2  DD77FA            LD      (IX-6),A
   \   03F5  DD36FB01          LD      (IX-5),1
   \   03F9  DD77FC            LD      (IX-4),A
   \   03FC  DD77E7            LD      (IX-25),A
   \   03FF            ?0046:
    355          
    356              while(1)
    357              {
    358                  //show ui
    359                  if(need_draw)
   \   03FF  AF                XOR     A
   \   0400  DDB6E9            OR      (IX-23)
   \   0403  2816              JR      Z,?0049
   \   0405            ?0048:
    360                  {
    361                      ui_draw();
   \   0405  3E00              LD      A,BYTE3 ui_draw
   \   0407  21FB01            LD      HL,LWRD ui_draw
   \   040A  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    362                      time_draw(FALSE);
   \   040D  1E00              LD      E,0
   \   040F  3E00              LD      A,BYTE3 time_draw
   \   0411  210D03            LD      HL,LWRD time_draw
   \   0414  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    363          
    364                      need_draw = FALSE;
   \   0417  DD36E900          LD      (IX-23),0
   \   041B            ?0049:
    365                  }
    366          
    367                  //handle msg
    368                  if((!is_result_main) &&(status != saving))
   \   041B  AF                XOR     A
   \   041C  DDB6FC            OR      (IX-4)
   \   041F  200D              JR      NZ,?0051
   \   0421  DD46E7            LD      B,(IX-25)
   \   0424  05                DEC     B
   \   0425  05                DEC     B
   \   0426  2806              JR      Z,?0051
   \   0428            ?0053:
   \   0428            ?0052:
   \   0428            ?0050:
    369                      key = ap_get_message();    
   \   0428  CD0000            CALL    LWRD ap_get_message
   \   042B  DD77E8            LD      (IX-24),A
   \   042E            ?0051:
    370                  if(status==saving) 
   \   042E  DD46E7            LD      B,(IX-25)
   \   0431  05                DEC     B
   \   0432  05                DEC     B
   \   0433  2004              JR      NZ,?0055
   \   0435            ?0054:
    371                      key =AP_MSG_STANDBY;    
   \   0435  DD36E81D          LD      (IX-24),29
   \   0439            ?0055:
    372                  switch( key )
   \   0439  DD5EE8            LD      E,(IX-24)
   \   043C  CD0000            CALL    LWRD ?C_V_SWITCH_L06
   \   043F  0800              DEFW    8
   \   0441  1B                DEFB    27
   \   0442  1C                DEFB    28
   \   0443  1D                DEFB    29
   \   0444  21                DEFB    33
   \   0445  31                DEFB    49
   \   0446  37                DEFB    55
   \   0447  81                DEFB    129
   \   0448  91                DEFB    145
   \   0449  BF05              DEFW    ?0094
   \   044B  A904              DEFW    ?0069
   \   044D  A904              DEFW    ?0069
   \   044F  B505              DEFW    ?0091
   \   0451  5B04              DEFW    ?0058
   \   0453  5B04              DEFW    ?0058
   \   0455  E705              DEFW    ?0101
   \   0457  C204              DEFW    ?0071
   \   0459  B804              DEFW    ?0070
   \   045B            ?0057:
    373                  {          
    374                  //overwrite auto standby
    375                  //case AP_KEY_MODE | AP_KEY_LONG:
    376                  case AP_MSG_STANDBY:
    377                      //do nothing
    378          
    379                      break;
   \   045B            ?0058:
    380                  case AP_KEY_PLAY | AP_KEY_UP:
    381                  case AP_KEY_AB | AP_KEY_UP:
    382                      //正在保存不要暂停
    383                      if(status == recording)
   \   045B  AF                XOR     A
   \   045C  DDB6E7            OR      (IX-25)
   \   045F  2041              JR      NZ,?0060
   \   0461            ?0059:
    384                      {
    385                           recordSendCommand(MC_GETTIME, (int)&g_rec_time);   //取出现在时间
   \   0461  010000            LD      BC,g_rec_time
   \   0464  1E80              LD      E,128
   \   0466  CD0601            CALL    LWRD ?0151
    386                          //send record command
    387                          // 要在show_pause() BANK 切换之前发送 MC_PAUSE
    388                          recordSendCommand(MC_PAUSE, 0);
   \   0469  010000            LD      BC,0
   \   046C  1E05              LD      E,5
   \   046E  CD0601            CALL    LWRD ?0151
    389          
    390                          result = show_pause();
   \   0471  3E00              LD      A,BYTE3 show_pause
   \   0473  210000            LD      HL,LWRD show_pause
   \   0476  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0479  E5                PUSH    HL
   \   047A  FDE1              POP     IY
    391                          // 要在BANK 切换之后才发送 MC_RECORD, 避免DSP BUFFER FULL
    392                          recordSendCommand(MC_RECORD, 0);
   \   047C  010000            LD      BC,0
   \   047F  1E08              LD      E,8
   \   0481  CD0601            CALL    LWRD ?0151
    393          
    394                          if(result != 0)
   \   0484  FDE5              PUSH    IY
   \   0486  E1                POP     HL
   \   0487  7D                LD      A,L
   \   0488  B4                OR      H
   \   0489  CAE705            JP      Z,?0101
   \   048C            ?0061:
    395                          {
    396                              status = wait_to_save;
   \   048C  DD36E701          LD      (IX-25),1
    397          
    398                              //检查是否长按menu/play 返回
    399                              if(result == RESULT_USER_STOP)
   \   0490  3E65              LD      A,101
   \   0492  AD                XOR     L
   \   0493  B4                OR      H
   \   0494  2817              JR      Z,?0149
   \   0496            ?0063:
    400                              {
    401                                  key_stop = TRUE;
    402                                  result = 0;
   \   0496            ?0064:

⌨️ 快捷键说明

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