show_stop_menu.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,396 行 · 第 1/5 页
LST
1,396 行
330 channelnum = SINGLE_CH;
\ 032A 3E01 LD A,1
\ 032C 320000 LD (channelnum),A
\ 032F ?0068:
331 }
332
333 //g_record_vars.location.filename[0] = 0;
334 memset(g_record_vars.location.filename,0,12);
\ 032F 010C00 LD BC,12
\ 0332 CDEC03 CALL LWRD ?0196
335 }
336 else
\ 0335 181C JR ?0071
\ 0337 ?0064:
337 {
338 memcpy(file, g_record_vars.location.filename,12);
\ 0337 0E0C LD C,12
\ 0339 210400 LD HL,4
\ 033C 39 ADD HL,SP
\ 033D EB EX DE,HL
\ 033E 212400 LD HL,g_record_vars+36
\ 0341 EDB0 LDIR
339 g_record_vars.location.filename[0] = 0;
\ 0343 AF XOR A
\ 0344 322400 LD (g_record_vars+36),A
340 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
\ 0347 210A00 LD HL,g_record_vars+10
\ 034A 4E LD C,(HL)
\ 034B C5 PUSH BC
\ 034C 48 LD C,B
\ 034D C5 PUSH BC
\ 034E CDF303 CALL LWRD ?0197
\ 0351 F1 POP AF
\ 0352 F1 POP AF
\ 0353 ?0071:
341 }
342
343 fselGetLocation(&g_record_vars.location);
\ 0353 CDFF03 CALL LWRD ?0198
344 result = ui_directory(&g_record_vars.location, DIRECTORY_ALL, g_comval.langid);
\ 0356 C5 PUSH BC
\ 0357 CD0F04 CALL LWRD ?0199
\ 035A F1 POP AF
\ 035B DD75F0 LD (IX-16),L
\ 035E DD74F1 LD (IX-15),H
345 memcpy(g_record_vars.location.filename, file, 12);
\ 0361 010C00 LD BC,12
\ 0364 112400 LD DE,g_record_vars+36
\ 0367 210400 LD HL,4
\ 036A 39 ADD HL,SP
\ 036B EDB0 LDIR
346 g_menu_active = FALSE;
\ 036D AF XOR A
\ 036E 320000 LD (g_menu_active),A
347
348 if (result == RESULT_SD_OUT)
\ 0371 3E36 LD A,54
\ 0373 DDAEF0 XOR (IX-16)
\ 0376 DDB6F1 OR (IX-15)
\ 0379 2021 JR NZ,?0073
\ 037B ?0072:
349 {
350 show_error(CARDPULL);//显示卡拔出
\ 037B ?0173:
\ 037B 119101 LD DE,401
\ 037E CD2404 CALL LWRD ?0201
351 g_record_vars.location.disk = 'C';
\ 0381 3E43 LD A,67
\ 0383 320A00 LD (g_record_vars+10),A
352 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
\ 0386 4F LD C,A
\ 0387 C5 PUSH BC
\ 0388 48 LD C,B
\ 0389 C5 PUSH BC
\ 038A CDF303 CALL LWRD ?0197
\ 038D F1 POP AF
\ 038E F1 POP AF
353 fselGetLocation(&g_record_vars.location);
\ 038F 110A00 LD DE,g_record_vars+10
\ 0392 3E00 LD A,BYTE3 fselGetLocation
\ 0394 210000 LD HL,LWRD fselGetLocation
\ 0397 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
354 make_dirname();
\ 039A 1820 JR ?0077
355 return RESULT_DIR_CHANGED;
356 //return 0;
357 }
\ 039C ?0073:
358
359 if(result == RESULT_IGNORE)
\ 039C 3E34 LD A,52
\ 039E DDAEF0 XOR (IX-16)
\ 03A1 DDB6F1 OR (IX-15)
\ 03A4 2006 JR NZ,?0075
\ 03A6 ?0074:
360 result= 0;
\ 03A6 DD77F0 LD (IX-16),A
\ 03A9 DD77F1 LD (IX-15),A
\ 03AC ?0075:
361 if(result != 0) return result;
\ 03AC DD7EF0 LD A,(IX-16)
\ 03AF DDB6F1 OR (IX-15)
\ 03B2 2808 JR Z,?0077
\ 03B4 ?0076:
\ 03B4 ?0160:
\ 03B4 DD6EF0 LD L,(IX-16)
\ 03B7 DD66F1 LD H,(IX-15)
362 else
\ 03BA 1820 JR ?0082
\ 03BC ?0077:
363 {
364 make_dirname();
\ 03BC 3E00 LD A,BYTE3 make_dirname
\ 03BE 210000 LD HL,LWRD make_dirname
\ 03C1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
365 return RESULT_DIR_CHANGED;
\ 03C4 216700 LD HL,103
366 }
\ 03C7 1813 JR ?0082
\ 03C9 ?0078:
367
368
369
370 case 2:
371 result = show_RecFrom_menu();
\ 03C9 3E00 LD A,BYTE3 show_RecFrom_menu
\ 03CB 21F900 LD HL,LWRD show_RecFrom_menu
\ 03CE 1805 JR ?0167
372
373 return result;
374
375 case 3: //rec type
\ 03D0 ?0079:
376 result = show_rectype_menu();
\ 03D0 3E00 LD A,BYTE3 show_rectype_menu
\ 03D2 219100 LD HL,LWRD show_rectype_menu
\ 03D5 ?0167:
\ 03D5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
377
378 return result;
379 //break;
380 case 4: //exit
\ 03D8 1802 JR ?0082
\ 03DA ?0080:
381 return 0;
382 default:
\ 03DA ?0081:
\ 03DA ?0053:
383 //ASSERT(FALSE);
384 ;
385 }//switch
386 }
387 return 0;
\ 03DA 69 LD L,C
\ 03DB 60 LD H,B
388
389 }
\ 03DC ?0082:
\ 03DC DDF9 LD SP,IX
\ 03DE DDE1 POP IX
\ 03E0 D1 POP DE
\ 03E1 C1 POP BC
\ 03E2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 03E5 ?0195:
\ 03E5 3E43 LD A,67
\ 03E7 320A00 LD (g_record_vars+10),A
\ 03EA 0E0C LD C,12
\ 03EC ?0196:
\ 03EC 112400 LD DE,g_record_vars+36
\ 03EF 68 LD L,B
\ 03F0 C30000 JP LWRD ?MEMSET_L11
\ 03F3 ?0197:
\ 03F3 0E07 LD C,7
\ 03F5 1E02 LD E,2
\ 03F7 3E00 LD A,BYTE3 fselInit
\ 03F9 210000 LD HL,LWRD fselInit
\ 03FC C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 03FF ?0198:
\ 03FF 110A00 LD DE,g_record_vars+10
\ 0402 3E00 LD A,BYTE3 fselGetLocation
\ 0404 210000 LD HL,LWRD fselGetLocation
\ 0407 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 040A 210C00 LD HL,g_comval+12
\ 040D 4E LD C,(HL)
\ 040E C9 RET
\ 040F ?0199:
\ 040F 0E02 LD C,2
\ 0411 110A00 LD DE,g_record_vars+10
\ 0414 3E00 LD A,BYTE3 ui_directory
\ 0416 210000 LD HL,LWRD ui_directory
\ 0419 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 041C ?0200:
\ 041C 3E43 LD A,67
\ 041E 320A00 LD (g_record_vars+10),A
\ 0421 119401 LD DE,404
\ 0424 ?0201:
\ 0424 3E00 LD A,BYTE3 show_error
\ 0426 210000 LD HL,LWRD show_error
\ 0429 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 042C fm_show_stop_menu:
390
391 /*
392 ********************************************************************************
393 * Description : FM录音停止菜单界面
394 *
395 * Arguments :
396 *
397 * Returns : 结果消息或0
398 RESULT_DIR_CHANGED //录音目录改变
399 *
400 * Notes :
401 *
402 ********************************************************************************
403 */
404
405 int fm_show_stop_menu(void)
406 {
\ 042C C5 PUSH BC
\ 042D D5 PUSH DE
\ 042E DDE5 PUSH IX
\ 0430 DD210000 LD IX,0
\ 0434 DD39 ADD IX,SP
\ 0436 21F0FF LD HL,65520
\ 0439 39 ADD HL,SP
\ 043A F9 LD SP,HL
407 int result;
408 static char active=0; //保持选中菜单的序号
409 char file[12];
410 char menu_flag; //0:卡 1://no 卡
411 g_list.headid = STOPMENU;
\ 043B 21EA01 LD HL,490
\ 043E 220600 LD (g_list+6),HL
412 if (DRV_DetectUD(1) == 0x20) //card
\ 0441 5C LD E,H
\ 0442 CD0000 CALL LWRD DRV_DetectUD
\ 0445 FE20 CP 32
\ 0447 ED4B0100 LD BC,(?0083)
\ 044B 0600 LD B,0
\ 044D ED430400 LD (g_list+4),BC
\ 0451 2011 JR NZ,?0085
\ 0453 ?0084:
413 {
414 g_list.active = active;
415 g_list.total = sizeof(fm_stop_string_card) / 2;
\ 0453 210400 LD HL,4
\ 0456 220200 LD (g_list+2),HL
416 g_list.strid = fm_stop_string_card;
\ 0459 211800 LD HL,fm_stop_string_card
\ 045C 220000 LD (g_list),HL
417 menu_flag = 0;
\ 045F DD70F2 LD (IX-14),B
418 }
419 else
\ 0462 1810 JR ?0086
\ 0464 ?0085:
420 {
421 g_list.active = active;
422 g_list.total = 3;
\ 0464 210300 LD HL,3
\ 0467 220200 LD (g_list+2),HL
423 g_list.strid = fm_stop_string;
\ 046A 211200 LD HL,fm_stop_string
\ 046D 220000 LD (g_list),HL
424 menu_flag = 1;
\ 0470 DD36F201 LD (IX-14),1
\ 0474 ?0086:
425 }
426
427 g_list.string_id = g_comval.langid;
\ 0474 3A0C00 LD A,(g_comval+12)
\ 0477 320800 LD (g_list+8),A
428
429 result = ui_popup_list(&g_list, NULL);
\ 047A 48 LD C,B
\ 047B C5 PUSH BC
\ 047C C5 PUSH BC
\ 047D CDEE00 CALL LWRD ?0194
\ 0480 F1 POP AF
\ 0481 F1 POP AF
\ 0482 DD75F0 LD (IX-16),L
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?