?? searchhandle.lst
字號:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Feb/109 14:15:34 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d95f\ap\ap_radio\searchhandle.c #
# List file = d:\case_i_d95f\ap\ap_radio\list\searchhandle.lst #
# Object file = d:\case_i_d95f\ap\ap_radio\obj\searchhandle.r01 #
# ASM file = d:\case_i_d95f\ap\ap_radio\list\searchhandle.s01 #
# Command line = -v0 -mb -OD:\case_i_d95f\ap\ap_radio\Obj\ -e -K -w #
# -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d95f\ap\ap_radio\List\ -q -t8 #
# -AD:\case_i_d95f\ap\ap_radio\List\ #
# -Id:\sdk_i_95f\inc\ -Id:\case_i_d95f\inc\ #
# d:\case_i_d95f\ap\ap_radio\SearchHandle.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME searchhandle(17)
\ 0000 RSEG CODE_1(0)
\ 0000 RSEG CSTR(0)
\ 0000 RSEG CONST(0)
\ 0000 EXTERN ClearScreen
\ 0000 EXTERN FMStatus
\ 0000 EXTERN Freqtab
\ 0000 EXTERN GetBattery
\ 0000 EXTERN PutS
\ 0000 EXTERN ResShowPic
\ 0000 PUBLIC SearchHandle
\ 0000 PUBLIC Search_Show
\ 0000 EXTERN SetTextPos
\ 0000 PUBLIC ShowFreqInFM
\ 0000 EXTERN UpdateScreen
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN fmSendCommand
\ 0000 EXTERN g_comval
\ 0000 EXTERN itoa_1
\ 0000 EXTERN itoa_2
\ 0000 EXTERN itoa_3
\ 0000 EXTERN radio_param
\ 0000 EXTERN ui_show_batt
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?US_DIV_L02
\ 0000 EXTERN ?SS_DIV_L02
\ 0000 EXTERN ?SS_MOD_L02
\ 0000 EXTERN ?S_MUL_L02
\ 0000 EXTERN ?SL_CMP_L03
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?STRCPY_L11
\ 0000 EXTERN ?STRCAT_L11
\ 0000 RSEG CODE_1
\ 0000 SearchHandle:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * main ap of sdk 3.0
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 *******************************************************************************
10 */
11
12 #pragma codeseg(CODE_1)
13
14 #include "ap_radio.h"
15 #include "actos.h"
16 extern comval_t F_comval;
17 extern fm_play_status_t FMStatus;
18 extern FMRADIO_param_t radio_param;
19 extern char Freqtab[10];
20 void ShowFreqInFM(void); //FM主界面顯示
21 bool Search_Show(FM_direct_t Direct); //自動搜臺時的顯示
22
23
24 extern FMStatus_Tab_t d_FMStatus;
25 extern char SearchFreq;
26 extern char SetFreq;
27
28 int SearchHandle(BYTE Direct)
29 {
\ 0000 C5 PUSH BC
\ 0001 DDE5 PUSH IX
\ 0003 F5 PUSH AF
\ 0004 53 LD D,E
30 int key;
31 bool need_draw = TRUE;
32 BYTE Searchflag = 1;
\ 0005 210100 LD HL,1
\ 0008 39 ADD HL,SP
\ 0009 3601 LD (HL),1
\ 000B 2B DEC HL
\ 000C 3601 LD (HL),1
\ 000E ?0003:
33 while (1)
34 {
35 if (Direct != 0)
\ 000E 14 INC D
\ 000F 15 DEC D
\ 0010 CAB600 JP Z,?0038
\ 0013 ?0005:
36 {
37 if (Direct == 10) //NEXT搜索處理
\ 0013 7A LD A,D
\ 0014 FE0A CP 10
\ 0016 203C JR NZ,?0008
\ 0018 ?0007:
38 {
39 if(((FMStatus.freq+1)>210)&&(FMStatus.mode==0))FMStatus.freq=0;
\ 0018 ED4B0100 LD BC,(FMStatus+1)
\ 001C 03 INC BC
\ 001D 21D200 LD HL,210
\ 0020 A7 AND A
\ 0021 ED42 SBC HL,BC
\ 0023 3006 JR NC,?0010
\ 0025 3A0500 LD A,(FMStatus+5)
\ 0028 B7 OR A
\ 0029 280E JR Z,?0109
\ 002B ?0012:
\ 002B ?0011:
\ 002B ?0009:
\ 002B ?0010:
40 else if(((FMStatus.freq+1)>140)&&(FMStatus.mode==1))FMStatus.freq=0;
\ 002B 218C00 LD HL,140
\ 002E A7 AND A
\ 002F ED42 SBC HL,BC
\ 0031 300A JR NC,?0015
\ 0033 3A0500 LD A,(FMStatus+5)
\ 0036 3D DEC A
\ 0037 2004 JR NZ,?0015
\ 0039 ?0017:
\ 0039 ?0016:
\ 0039 ?0014:
\ 0039 ?0109:
\ 0039 6F LD L,A
\ 003A 67 LD H,A
\ 003B 1802 JR ?0103
41 else
\ 003D ?0015:
42 {
43 FMStatus.freq+=1;
\ 003D 69 LD L,C
\ 003E 60 LD H,B
\ 003F ?0103:
\ 003F 220100 LD (FMStatus+1),HL
\ 0042 ?0018:
\ 0042 ?0013:
44 }
45 if(Search_Show(UP))return 0;
\ 0042 D5 PUSH DE
\ 0043 1E01 LD E,1
\ 0045 3E00 LD A,BYTE3 Search_Show
\ 0047 215601 LD HL,LWRD Search_Show
\ 004A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 004D 2C INC L
\ 004E 2D DEC L
\ 004F D1 POP DE
\ 0050 2864 JR Z,?0038
\ 0052 ?0019:
\ 0052 185C JR ?0107
46 }
\ 0054 ?0020:
\ 0054 ?0008:
47 else if (Direct == 20) //LAST搜索處理
\ 0054 FE14 CP 20
\ 0056 2054 JR NZ,?0023
\ 0058 ?0022:
48 {
49 if(((FMStatus.freq-1)<2)&&(FMStatus.mode==0))FMStatus.freq=210;
\ 0058 2A0100 LD HL,(FMStatus+1)
\ 005B 01FFFF LD BC,65535
\ 005E 09 ADD HL,BC
\ 005F 010200 LD BC,2
\ 0062 A7 AND A
\ 0063 ED42 SBC HL,BC
\ 0065 300B JR NC,?0025
\ 0067 3A0500 LD A,(FMStatus+5)
\ 006A B7 OR A
\ 006B 2005 JR NZ,?0025
\ 006D ?0027:
\ 006D ?0026:
\ 006D ?0024:
\ 006D 21D200 LD HL,210
\ 0070 1818 JR ?0105
\ 0072 ?0025:
50 else if(((FMStatus.freq-1)<2)&&(FMStatus.mode==1))FMStatus.freq=140;
\ 0072 2A0100 LD HL,(FMStatus+1)
\ 0075 01FFFF LD BC,65535
\ 0078 09 ADD HL,BC
\ 0079 010200 LD BC,2
\ 007C A7 AND A
\ 007D ED42 SBC HL,BC
\ 007F 300E JR NC,?0030
\ 0081 3A0500 LD A,(FMStatus+5)
\ 0084 3D DEC A
\ 0085 2008 JR NZ,?0030
\ 0087 ?0032:
\ 0087 ?0031:
\ 0087 ?0029:
\ 0087 218C00 LD HL,140
\ 008A ?0105:
\ 008A 220100 LD (FMStatus+1),HL
51 else
\ 008D 180C JR ?0033
\ 008F ?0030:
52 {
53 FMStatus.freq-=1;
\ 008F 210100 LD HL,FMStatus+1
\ 0092 7E LD A,(HL)
\ 0093 C6FF ADD A,255
\ 0095 77 LD (HL),A
\ 0096 23 INC HL
\ 0097 7E LD A,(HL)
\ 0098 CEFF ADC A,255
\ 009A 77 LD (HL),A
\ 009B ?0033:
\ 009B ?0028:
54 }
55 if(Search_Show(DOWN))return 0;
\ 009B D5 PUSH DE
\ 009C 58 LD E,B
\ 009D 3E00 LD A,BYTE3 Search_Show
\ 009F 215601 LD HL,LWRD Search_Show
\ 00A2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00A5 2C INC L
\ 00A6 2D DEC L
\ 00A7 D1 POP DE
\ 00A8 280C JR Z,?0038
\ 00AA ?0034:
\ 00AA 1804 JR ?0107
56 }
\ 00AC ?0035:
\ 00AC ?0023:
57 else if (Direct == 50)
\ 00AC FE32 CP 50
\ 00AE 2006 JR NZ,?0038
\ 00B0 ?0037:
58 {
59 Direct = 0;
60 return 0;
\ 00B0 ?0107:
\ 00B0 210000 LD HL,0
61 }
\ 00B3 C34201 JP LWRD ?0065
\ 00B6 ?0038:
\ 00B6 ?0036:
\ 00B6 ?0021:
\ 00B6 ?0006:
62 }
63 if (need_draw) //顯示
\ 00B6 210100 LD HL,1
\ 00B9 39 ADD HL,SP
\ 00BA AF XOR A
\ 00BB B6 OR (HL)
\ 00BC 280E JR Z,?0040
\ 00BE ?0039:
64 {
65 ShowFreqInFM();
\ 00BE 3E00 LD A,BYTE3 ShowFreqInFM
\ 00C0 21CA01 LD HL,LWRD ShowFreqInFM
\ 00C3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
66 need_draw = FALSE;
\ 00C6 210100 LD HL,1
\ 00C9 39 ADD HL,SP
\ 00CA 3600 LD (HL),0
\ 00CC ?0040:
67 }
68 key = ap_get_message();
\ 00CC CD0000 CALL LWRD ap_get_message
\ 00CF 4F LD C,A
\ 00D0 0600 LD B,0
\ 00D2 C5 PUSH BC
\ 00D3 DDE1 POP IX
69 switch (key)
\ 00D5 3E1D LD A,29
\ 00D7 A9 XOR C
\ 00D8 CA0E00 JP Z,?0003
\ 00DB ?0042:
70 {
71 case AP_MSG_STANDBY:
72 //do nothing
73 break;
\ 00DB ?0043:
\ 00DB 3E26 LD A,38
\ 00DD A9 XOR C
\ 00DE 2018 JR NZ,?0051
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -