📄 show_rec.lst
字号:
\ 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 + -