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

📄 show_rec.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0356  ED4A              ADC     HL,BC
   \   0358  E5                PUSH    HL
   \   0359  D5                PUSH    DE
   \   035A  DD6EF4            LD      L,(IX-12)
   \   035D  110000            LD      DE,0
   \   0360  63                LD      H,E
   \   0361  C1                POP     BC
   \   0362  09                ADD     HL,BC
   \   0363  EB                EX      DE,HL
   \   0364  C1                POP     BC
   \   0365  ED4A              ADC     HL,BC
   \   0367  4D                LD      C,L
   \   0368  44                LD      B,H
   \   0369  EB                EX      DE,HL
    304              num=(nowtime*88)/totaltime;
   \   036A  DD5EFC            LD      E,(IX-4)
   \   036D  DD56FD            LD      D,(IX-3)
   \   0370  D5                PUSH    DE
   \   0371  DD5EFA            LD      E,(IX-6)
   \   0374  DD56FB            LD      D,(IX-5)
   \   0377  D5                PUSH    DE
   \   0378  C5                PUSH    BC
   \   0379  E5                PUSH    HL
   \   037A  010000            LD      BC,0
   \   037D  215800            LD      HL,88
   \   0380  CD0000            CALL    LWRD ?L_MUL_L03
   \   0383  CD0000            CALL    LWRD ?SL_DIV_L03
   \   0386  E5                PUSH    HL
   \   0387  FDE1              POP     IY
    305              if(num>88)
   \   0389  4D                LD      C,L
   \   038A  44                LD      B,H
   \   038B  215800            LD      HL,88
   \   038E  F680              OR      128
   \   0390  ED42              SBC     HL,BC
   \   0392  E29603            JP      PO,?0111
   \   0395  AC                XOR     H
   \   0396            ?0111:
   \   0396  F29D03            JP      P,?0024
   \   0399            ?0023:
    306                          num=0;
   \   0399  FD210000          LD      IY,0
   \   039D            ?0024:
    307                          ResShowPic(FMBG00+num, 0, 119);
   \   039D  0E77              LD      C,119
   \   039F  C5                PUSH    BC
   \   03A0  0E00              LD      C,0
   \   03A2  212E00            LD      HL,46
   \   03A5  FDE5              PUSH    IY
   \   03A7  D1                POP     DE
   \   03A8  19                ADD     HL,DE
   \   03A9  EB                EX      DE,HL
   \   03AA  3E00              LD      A,BYTE3 ResShowPic
   \   03AC  210000            LD      HL,LWRD ResShowPic
   \   03AF  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   03B2  F1                POP     AF
    308                  
    309                  itoa_1(timenow.hour, &g_now_time[0]);
   \   03B3  010000            LD      BC,g_now_time
   \   03B6  DD5EF2            LD      E,(IX-14)
   \   03B9  3E00              LD      A,BYTE3 itoa_1
   \   03BB  210000            LD      HL,LWRD itoa_1
   \   03BE  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    310              g_now_time[1]=':';
   \   03C1  3E3A              LD      A,58
   \   03C3  320100            LD      (g_now_time+1),A
    311              itoa_2(timenow.minute, &g_now_time[2]);
   \   03C6  010200            LD      BC,g_now_time+2
   \   03C9  DD5EF3            LD      E,(IX-13)
   \   03CC  CDB402            CALL    LWRD ?0128
    312              g_now_time[4]=':';
   \   03CF  3E3A              LD      A,58
   \   03D1  320400            LD      (g_now_time+4),A
    313              itoa_2(timenow.second, &g_now_time[5]);
   \   03D4  010500            LD      BC,g_now_time+5
   \   03D7  DD5EF4            LD      E,(IX-12)
   \   03DA  CDB402            CALL    LWRD ?0128
    314              ui_show_d(g_now_time,0);
   \   03DD  0E00              LD      C,0
   \   03DF  110000            LD      DE,g_now_time
   \   03E2  3E00              LD      A,BYTE3 ui_show_d
   \   03E4  210000            LD      HL,LWRD ui_show_d
   \   03E7  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    315          }
   \   03EA  DDF9              LD      SP,IX
   \   03EC  DDE1              POP     IX
   \   03EE  FDE1              POP     IY
   \   03F0  C1                POP     BC
   \   03F1  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   03F4            is_lowbatt:
    316          
    317          
    318          /*
    319          ********************************************************************************
    320          * Description : 根据当前录音文件的文件大小, 查表判断电压是否低
    321          *
    322          * Arguments   : batt, 电池电压
    323                  全局变量
    324                  g_file_size, 当前录音文件的文件大小,单位page
    325          *
    326          * Returns     : TRUE, 电压低
    327                  FALSE, 电压正常
    328          *
    329          * Notes       :
    330          *
    331          ********************************************************************************
    332          */
    333          BOOL is_lowbatt(BYTE batt)
    334          {
   \   03F4  C5                PUSH    BC
   \   03F5  D5                PUSH    DE
    335              BYTE batt_level=40;     //0.95v is low_bat
    336          
    337              // file < 32M
    338              if(g_file_size < 32L * 1024 * 2)
   \   03F6  010000            LD      BC,0
   \   03F9  03                INC     BC
   \   03FA            ?0025:
    339              {
    340                  ///if(g_comval.BatteryType == BATT_TYPE_ALKALINE ) batt_level = 40;        //0.95v is low_bat in mode(00)
    341                  ///else if(g_comval.BatteryType == BATT_TYPE_NIH ) batt_level = 49;        //1v is low_bat in mode(00)
    342                  ///else if(g_comval.BatteryType == BATT_TYPE_LITHIUM) batt_level = 175;     //3.2v in mode(11)
    343                  ///else ASSERT(FALSE);
    344                  batt_level = 175;     //3.2v in mode(11)
    345              }
    346              // file >= 32M
    347              else
   \   03FA            ?0026:
    348              {
    349                  ///if(g_comval.BatteryType == BATT_TYPE_ALKALINE ) batt_level = 49;         //1.0v is low_bat in mode(00)
    350                  ///else if(g_comval.BatteryType == BATT_TYPE_NIH ) batt_level = 55;         //1.05v is low_bat in mode(00)
    351                  ///else if(g_comval.BatteryType == BATT_TYPE_LITHIUM) batt_level = 175;     //3.25v is low_bat in mode(11)
    352                  ///else ASSERT(FALSE);
    353                  batt_level = 175;     //3.25v is low_bat in mode(11)
   \   03FA  3EAF              LD      A,175
   \   03FC            ?0027:
    354              }
    355          
    356              if(batt <= batt_level) return TRUE;
   \   03FC  BB                CP      E
   \   03FD  3803              JR      C,?0029
   \   03FF            ?0028:
   \   03FF  69                LD      L,C
   \   0400  1801              JR      ?0030
   \   0402            ?0029:
    357              else return FALSE;
   \   0402  68                LD      L,B
    358          }
   \   0403            ?0030:
   \   0403  F1                POP     AF
   \   0404  C1                POP     BC
   \   0405  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0408            show_rec:
    359          
    360          
    361          /*
    362          ********************************************************************************
    363          * Description : 录音界面
    364          *
    365          * Arguments   :
    366          *
    367          * Returns     : 结果消息或0
    368                  RESULT_USER_STOP    //用户按键结束
    369          *
    370          * Notes       :
    371          *
    372          ********************************************************************************
    373          */
    374          int show_rec(void)
    375          {
   \   0408  C5                PUSH    BC
   \   0409  D5                PUSH    DE
   \   040A  FDE5              PUSH    IY
   \   040C  DDE5              PUSH    IX
   \   040E  DD210000          LD      IX,0
   \   0412  DD39              ADD     IX,SP
   \   0414  21E2FF            LD      HL,65506
   \   0417  39                ADD     HL,SP
   \   0418  F9                LD      SP,HL
    376              int result=0;    //result for return
    377              int mc_result=0;    //command result
    378              BOOL key_stop=FALSE;    //用户按键结束
    379              
    380              //当前状态
    381              /*enum
    382              {
    383                  recording,
    384                  wait_to_save,
    385                  saving
    386              }status;*/
    387              
    388              char key;
    389              BOOL need_draw=FALSE;    //stop -> rec ui no change!!!
    390              wav_rec_status_t rec_stat;
    391              int i=0;
    392              int page_count=0;
    393              BYTE low_power_count=0;        //获得低电压的次数
    394              BOOL vor_waiting=FALSE;        //vor 没有写盘
    395              BYTE vor_counter=0;        //vor没有写盘的次数
    396              BOOL flash_state=FALSE;        //时间闪动
    397              int batt_old=256;        //
    398              BOOL    is_result_main = FALSE;
    399              bool  CardOutFlag=0;
    400              ASSERT(ui_run_realtime == TRUE);
    401          
    402              //init the counter
    403              g_rec_time.hour = 0;
   \   0419  AF                XOR     A
   \   041A  320000            LD      (g_rec_time),A
    404              g_rec_time.minute = 0;
   \   041D  320100            LD      (g_rec_time+1),A
    405              g_rec_time.second = 0;
   \   0420  320200            LD      (g_rec_time+2),A
    406          
    407              //send record command
    408              recordSendCommand(MC_RECORD, 0);
   \   0423  4F                LD      C,A
   \   0424  47                LD      B,A
   \   0425  1E08              LD      E,8
   \   0427  CD0801            CALL    LWRD ?0125
    409              //output8(0x4e,input8(0x4e)|0x8);
    410              status = recording;
   \   042A  3E01              LD      A,1
   \   042C  320000            LD      (status),A
    411                          main_ResShowPic(PLAYICN,5,3);
   \   042F  0E03              LD      C,3
   \   0431  C5                PUSH    BC
   \   0432  0E05              LD      C,5
   \   0434  11DF00            LD      DE,223
   \   0437  3E00              LD      A,BYTE3 main_ResShowPic
   \   0439  210000            LD      HL,LWRD main_ResShowPic
   \   043C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   043F  F1                POP     AF
   \   0440  FD210000          LD      IY,0
   \   0444  AF                XOR     A
   \   0445  DD77E6            LD      (IX-26),A
   \   0448  DD77E8            LD      (IX-24),A
   \   044B  DD77F1            LD      (IX-15),A
   \   044E  DD77F2            LD      (IX-14),A
   \   0451  DD77F5            LD      (IX-11),A
   \   0454  DD77F6            LD      (IX-10),A
   \   0457  DD77F7            LD      (IX-9),A
   \   045A  DD77F8            LD      (IX-8),A
   \   045D  DD77F9            LD      (IX-7),A
   \   0460  DD36FA01          LD      (IX-6),1
   \   0464  DD77FB            LD      (IX-5),A
   \   0467            ?0032:
    412                          
    413              while(1)
    414              {
    415                  //show ui
    416                  if(need_draw)
   \   0467  AF                XOR     A
   \   0468  DDB6E8            OR      (IX-24)
   \   046B  2816              JR      Z,?0035
   \   046D            ?0034:
    417                  {
    418                      ui_draw();
   \   046D  3E00              LD      A,BYTE3 ui_draw
   \   046F  219001            LD      HL,LWRD ui_draw
   \   0472  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    419                      time_draw(FALSE);
   \   0475  1E00              LD      E,0
   \   0477  3E00              LD      A,BYTE3 time_draw
   \   0479  21BC02            LD      HL,LWRD time_draw
   \   047C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    420          
    421                      need_draw = FALSE;
   \   047F  DD36E800          LD      (IX-24),0
   \   0483            ?0035:
    422                  }
    423          
    424                  //handle msg
    425                  if((!is_result_main) &&(status != saving))
   \   0483  AF                XOR     A
   \   0484  DDB6FB            OR      (IX-5)
   \   0487  200D              JR      NZ,?0037
   \   0489  3A0000            LD      A,(status)
   \   048C  FE04              CP      4

⌨️ 快捷键说明

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