📄 main.lst
字号:
358 {
359 sec_tester_count = 0;
\ 02E8 DD70F5 LD (IX-11),B
\ 02EB ?0110:
360 }
361
362 //staff
363 if(key == sec_staff[sec_staff_count])
\ 02EB DD4EF6 LD C,(IX-10)
\ 02EE 210500 LD HL,sec_staff
\ 02F1 09 ADD HL,BC
\ 02F2 7E LD A,(HL)
\ 02F3 DDBEEE CP (IX-18)
\ 02F6 2005 JR NZ,?0112
\ 02F8 ?0111:
364 {
365 sec_staff_count++;
\ 02F8 DD34F6 INC (IX-10)
366 }
367 else
\ 02FB 1803 JR ?0113
\ 02FD ?0112:
368 {
369 sec_staff_count = 0;
\ 02FD DD70F6 LD (IX-10),B
\ 0300 ?0113:
\ 0300 ?0105:
370 }
371 }
372
373 //handle msg
374 switch( key )
\ 0300 DD7EEE LD A,(IX-18)
\ 0303 FE06 CP 6
\ 0305 2804 JR Z,?0115
\ 0307 FE46 CP 70
\ 0309 202A JR NZ,?0119
\ 030B ?0115:
375 {
376 case AP_KEY_NEXT|AP_KEY_HOLD:
377 case AP_KEY_NEXT:
378 if(active < (item_count - 1))
\ 030B DD4EF7 LD C,(IX-9)
\ 030E 0600 LD B,0
\ 0310 0B DEC BC
\ 0311 DD6EEA LD L,(IX-22)
\ 0314 DD66EB LD H,(IX-21)
\ 0317 F680 OR 128
\ 0319 ED42 SBC HL,BC
\ 031B E21F03 JP PO,?0252
\ 031E AC XOR H
\ 031F ?0252:
\ 031F F22C03 JP P,?0117
\ 0322 ?0116:
379 {
380 active++;
\ 0322 DD34EA INC (IX-22)
\ 0325 2079 JR NZ,?0258
\ 0327 DD34EB INC (IX-21)
381 }
382 else
\ 032A 1874 JR ?0258
\ 032C ?0117:
383 {
384 active = 0;
\ 032C AF XOR A
\ 032D DD77EA LD (IX-22),A
\ 0330 DD77EB LD (IX-21),A
\ 0333 ?0118:
385 }
386 need_draw= TRUE;
\ 0333 186B JR ?0258
387
388 break;
\ 0335 ?0119:
\ 0335 FE05 CP 5
\ 0337 2804 JR Z,?0130
\ 0339 FE45 CP 69
\ 033B 202D JR NZ,?0123
\ 033D ?0130:
389 case AP_KEY_PREV|AP_KEY_HOLD:
390 case AP_KEY_PREV:
391 if(active > 0)
\ 033D DD4EEA LD C,(IX-22)
\ 0340 DD46EB LD B,(IX-21)
\ 0343 210000 LD HL,0
\ 0346 F680 OR 128
\ 0348 ED42 SBC HL,BC
\ 034A E24E03 JP PO,?0254
\ 034D AC XOR H
\ 034E ?0254:
\ 034E F25C03 JP P,?0121
\ 0351 ?0120:
392 {
393 active--;
\ 0351 69 LD L,C
\ 0352 60 LD H,B
\ 0353 2B DEC HL
\ 0354 DD75EA LD (IX-22),L
\ 0357 DD74EB LD (IX-21),H
394 }
395 else
\ 035A 1844 JR ?0258
\ 035C ?0121:
396 {
397 active = item_count - 1;
\ 035C DD4EF7 LD C,(IX-9)
\ 035F 0600 LD B,0
\ 0361 0B DEC BC
\ 0362 DD71EA LD (IX-22),C
\ 0365 DD70EB LD (IX-21),B
\ 0368 ?0122:
398 }
399 need_draw= TRUE;
\ 0368 1836 JR ?0258
400
401 break;
\ 036A ?0123:
\ 036A FE30 CP 48
\ 036C 201F JR NZ,?0127
402 case AP_KEY_MODE | AP_KEY_UP:
403 if(with_fm)
\ 036E AF XOR A
\ 036F DDB6F9 OR (IX-7)
\ 0372 DD6EEA LD L,(IX-22)
\ 0375 DD66EB LD H,(IX-21)
\ 0378 29 ADD HL,HL
\ 0379 2805 JR Z,?0125
\ 037B ?0124:
404 {
405 result = ap_id[active];
\ 037B 014000 LD BC,ap_id
\ 037E 1803 JR ?0257
406 }
407 else
\ 0380 ?0125:
408 {
409 result = ap_id_nofm[active];
\ 0380 014C00 LD BC,ap_id_nofm
\ 0383 ?0257:
\ 0383 09 ADD HL,BC
\ 0384 46 LD B,(HL)
\ 0385 23 INC HL
\ 0386 66 LD H,(HL)
\ 0387 68 LD L,B
\ 0388 E5 PUSH HL
\ 0389 FDE1 POP IY
\ 038B ?0126:
410 }
411
412 break;
\ 038B 1817 JR ?0129
\ 038D ?0127:
413 /*
414 //enter user defined test
415 case AP_KEY_EQ | AP_KEY_UP:
416 result = RESULT_MYTST;
417
418 break;
419 */
420 default:
421 result = ap_handle_hotkey(key);
\ 038D 5F LD E,A
\ 038E CD0000 CALL LWRD ap_handle_hotkey
\ 0391 4F LD C,A
\ 0392 0600 LD B,0
\ 0394 C5 PUSH BC
\ 0395 FDE1 POP IY
422 if(result == RESULT_REDRAW)
\ 0397 3E32 LD A,50
\ 0399 A9 XOR C
\ 039A 2008 JR NZ,?0129
\ 039C ?0128:
423 {
424 result = RESULT_NULL; //remember to clear result
425 need_draw = TRUE;
\ 039C FD210000 LD IY,0
\ 03A0 ?0258:
\ 03A0 DD36F401 LD (IX-12),1
\ 03A4 ?0129:
\ 03A4 ?0114:
426 }
427 }
428 ASSERT(active < MAIN_ITEMCOUNT);
429
430 //check sec counter
431 if(sec_tester_count == 5)
\ 03A4 DD7EF5 LD A,(IX-11)
\ 03A7 FE05 CP 5
\ 03A9 2008 JR NZ,?0132
\ 03AB ?0131:
432 {
433 sec_tester_count = 0;
434 result = RESULT_TESTER;
\ 03AB DD36F500 LD (IX-11),0
\ 03AF FD210100 LD IY,1
\ 03B3 ?0132:
435 }
436 if(sec_staff_count == 5)
\ 03B3 DD7EF6 LD A,(IX-10)
\ 03B6 FE05 CP 5
\ 03B8 C27701 JP NZ,?0066
\ 03BB ?0133:
437 {
438 sec_staff_count= 0;
439 draw_staff();
\ 03BB 3E00 LD A,BYTE3 draw_staff
\ 03BD 210000 LD HL,LWRD draw_staff
\ 03C0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
440 need_draw = TRUE;
\ 03C3 DD36F600 LD (IX-10),0
\ 03C7 C37506 JP LWRD ?0279
\ 03CA ?0134:
\ 03CA ?0071:
441 }
442
443 }//result == 0
444 else if(result == RESULT_POWERON)
\ 03CA 3E33 LD A,51
\ 03CC AD XOR L
\ 03CD B4 OR H
\ 03CE 203A JR NZ,?0137
\ 03D0 ?0136:
445 {
446 ClearScreen(NULL);
\ 03D0 5F LD E,A
\ 03D1 57 LD D,A
\ 03D2 CD0000 CALL LWRD ClearScreen
447 UpdateScreen(NULL);
\ 03D5 110000 LD DE,0
\ 03D8 CD0000 CALL LWRD UpdateScreen
448
449 //weng, 20040312
450 draw_logo(TRUE);
\ 03DB 1E01 LD E,1
\ 03DD 3E00 LD A,BYTE3 draw_logo
\ 03DF 210000 LD HL,LWRD draw_logo
\ 03E2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
451
452 if (g_comval.LightTime == 0) //每次开机判断一次!解决Bug Report:27
\ 03E5 3A0900 LD A,(g_comval+9)
\ 03E8 B7 OR A
\ 03E9 2005 JR NZ,?0139
\ 03EB ?0138:
453 sKY_CloseBacklight();
\ 03EB CD0000 CALL LWRD sKY_CloseBacklight
454 else
\ 03EE 1803 JR ?0140
\ 03F0 ?0139:
455 sKY_OpenBacklight(); //for s2 add by ccm
\ 03F0 CD0000 CALL LWRD sKY_OpenBacklight
\ 03F3 ?0140:
456
457 //DUMP("result_bak:", result_bak);
458 result = result_bak;
\ 03F3 DD6EF2 LD L,(IX-14)
\ 03F6 DD66F3 LD H,(IX-13)
\ 03F9 E5 PUSH HL
\ 03FA FDE1 POP IY
459 //standby 起来不要开始录音
460 if(result == RESULT_RECORD) result = RESULT_REC_NOSTART;
\ 03FC 3E09 LD A,9
\ 03FE AD XOR L
\ 03FF B4 OR H
\ 0400 C27506 JP NZ,?0279
\ 0403 ?0141:
\ 0403 FD216400 LD IY,100
\ 0407 ?0142:
461 need_draw = TRUE;
\ 0407 C37506 JP LWRD ?0279
462 }
463 else //boot with param or result != 0
\ 040A ?0137:
464 {
465 //close when exec ap
466 ResClose(res_fp);
\ 040A ED5B0000 LD DE,(res_fp)
\ 040E 3E00 LD A,BYTE3 ResClose
\ 0410 210000 LD HL,LWRD ResClose
\ 0413 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
467
468 //boot to what ap?
469 switch( result)
\ 0416 FDE5 PUSH IY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -