📄 searchhandle.lst
字号:
74 case AP_KEY_NEXT | AP_KEY_UP: //NEXT搜索时按NEXT键,停止搜索
75 if (Searchflag == 1)
\ 00E0 68 LD L,B
\ 00E1 60 LD H,B
\ 00E2 39 ADD HL,SP
\ 00E3 46 LD B,(HL)
\ 00E4 05 DEC B
\ 00E5 281D JR Z,?0110
\ 00E7 ?0044:
76 {
77 Searchflag = 0;
\ 00E7 ?0045:
78 }
79 else if (Direct == 10)
\ 00E7 7A LD A,D
\ 00E8 FE0A CP 10
\ 00EA C20E00 JP NZ,?0003
\ 00ED ?0047:
80 {
81 Direct = 50;
\ 00ED 1632 LD D,50
82 if(FMStatus.volume)
\ 00EF 3A0600 LD A,(FMStatus+6)
\ 00F2 B7 OR A
\ 00F3 CA0E00 JP Z,?0003
\ 00F6 ?0049:
83 fmSendCommand(MC_MUTE, releaseMUTE);
\ 00F6 181F JR ?0108
\ 00F8 ?0050:
\ 00F8 ?0048:
\ 00F8 ?0046:
84 }
85 break;
\ 00F8 ?0051:
\ 00F8 3E25 LD A,37
\ 00FA A9 XOR C
\ 00FB 2022 JR NZ,?0059
86 case AP_KEY_PREV | AP_KEY_UP: //LAST搜索时按LAST键,停止搜索
87 if (Searchflag == 1)
\ 00FD 68 LD L,B
\ 00FE 60 LD H,B
\ 00FF 39 ADD HL,SP
\ 0100 46 LD B,(HL)
\ 0101 05 DEC B
\ 0102 2004 JR NZ,?0053
\ 0104 ?0052:
88 {
89 Searchflag = 0;
\ 0104 ?0110:
\ 0104 70 LD (HL),B
\ 0105 C30E00 JP LWRD ?0003
\ 0108 ?0053:
90 }
91 else if (Direct == 20)
\ 0108 7A LD A,D
\ 0109 FE14 CP 20
\ 010B C20E00 JP NZ,?0003
\ 010E ?0055:
92 {
93 Direct = 50;
\ 010E 1632 LD D,50
94 if(FMStatus.volume)
\ 0110 3A0600 LD A,(FMStatus+6)
\ 0113 B7 OR A
\ 0114 CA0E00 JP Z,?0003
\ 0117 ?0057:
95 fmSendCommand(MC_MUTE, releaseMUTE);
\ 0117 ?0108:
\ 0117 D5 PUSH DE
\ 0118 CD4901 CALL LWRD ?0127
\ 011B D1 POP DE
\ 011C ?0058:
\ 011C ?0056:
\ 011C ?0054:
96 }
97 break;
\ 011C C30E00 JP LWRD ?0003
\ 011F ?0059:
98 default: //热键处理
99 key = ap_handle_hotkey(key);
\ 011F D5 PUSH DE
\ 0120 DDE5 PUSH IX
\ 0122 E1 POP HL
\ 0123 5D LD E,L
\ 0124 CD0000 CALL LWRD ap_handle_hotkey
\ 0127 4F LD C,A
\ 0128 C5 PUSH BC
\ 0129 DDE1 POP IX
\ 012B D1 POP DE
100 if (key == RESULT_REDRAW)
\ 012C 3E2E LD A,46
\ 012E A9 XOR C
\ 012F 2009 JR NZ,?0061
\ 0131 ?0060:
101 need_draw = TRUE;
\ 0131 210100 LD HL,1
\ 0134 39 ADD HL,SP
\ 0135 3601 LD (HL),1
\ 0137 C30E00 JP LWRD ?0003
\ 013A ?0061:
102 else if (key != 0)
\ 013A DDE5 PUSH IX
\ 013C E1 POP HL
\ 013D 7D LD A,L
\ 013E B4 OR H
\ 013F CA0E00 JP Z,?0003
\ 0142 ?0063:
103 {
104 return key;
105 }
\ 0142 ?0065:
\ 0142 F1 POP AF
\ 0143 DDE1 POP IX
\ 0145 C1 POP BC
\ 0146 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0149 ?0127:
\ 0149 010000 LD BC,0
\ 014C ?0128:
\ 014C 1E0C LD E,12
\ 014E ?0129:
\ 014E 3E00 LD A,BYTE3 fmSendCommand
\ 0150 210000 LD HL,LWRD fmSendCommand
\ 0153 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0156 ?0064:
\ 0156 ?0062:
\ 0156 ?0041:
106 }
107 }
108 }
\ 0156 Search_Show:
109
110 bool Search_Show(FM_direct_t Direct)
111 {
\ 0156 C5 PUSH BC
\ 0157 DDE5 PUSH IX
\ 0159 D5 PUSH DE
\ 015A F5 PUSH AF
112 bool Search_Flag;
113 int i;
114 FMStatus.stereo_status = 1;
\ 015B 3E01 LD A,1
\ 015D 320700 LD (FMStatus+7),A
115 FMStatus.station = 0;
\ 0160 AF XOR A
\ 0161 320300 LD (FMStatus+3),A
116 fmSendCommand(MC_MUTE, SetMUTE);
\ 0164 010100 LD BC,1
\ 0167 CD4C01 CALL LWRD ?0128
117 fmSendCommand(MC_SETVOLUME, FMStatus.volume);
\ 016A ED4B0600 LD BC,(FMStatus+6)
\ 016E 0600 LD B,0
\ 0170 1E40 LD E,64
\ 0172 CD4E01 CALL LWRD ?0129
118 fmSendCommand(MC_RESTORE, (int) &radio_param);
\ 0175 010000 LD BC,radio_param
\ 0178 1E45 LD E,69
\ 017A CD4E01 CALL LWRD ?0129
119 Search_Flag = fmSendCommand(MC_SEARCH, Direct);
\ 017D 210200 LD HL,2
\ 0180 39 ADD HL,SP
\ 0181 4E LD C,(HL)
\ 0182 0600 LD B,0
\ 0184 1E0A LD E,10
\ 0186 CD4E01 CALL LWRD ?0129
\ 0189 E5 PUSH HL
\ 018A 210200 LD HL,2
\ 018D 39 ADD HL,SP
\ 018E C1 POP BC
\ 018F 71 LD (HL),C
120 if (Search_Flag) //搜台成功后,MUTE释放
\ 0190 AF XOR A
\ 0191 B1 OR C
\ 0192 280B JR Z,?0067
\ 0194 ?0066:
121 {
122 fmSendCommand(MC_MUTE, releaseMUTE);
\ 0194 CD4901 CALL LWRD ?0127
123 fmSendCommand(MC_GETSTATUS, (int) &FMStatus);
\ 0197 010000 LD BC,FMStatus
\ 019A 1E83 LD E,131
\ 019C CD4E01 CALL LWRD ?0129
\ 019F ?0067:
124 }
125 ShowFreqInFM();
\ 019F 3E00 LD A,BYTE3 ShowFreqInFM
\ 01A1 21CA01 LD HL,LWRD ShowFreqInFM
\ 01A4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
126 for (i = 0; i < 0x3999; i++)
\ 01A7 DD210000 LD IX,0
\ 01AB ?0069:
\ 01AB 0199B9 LD BC,47513
\ 01AE DDE5 PUSH IX
\ 01B0 E1 POP HL
\ 01B1 3E80 LD A,128
\ 01B3 AC XOR H
\ 01B4 67 LD H,A
\ 01B5 ED42 SBC HL,BC
\ 01B7 3004 JR NC,?0068
\ 01B9 ?0070:
\ 01B9 DD23 INC IX
\ 01BB 18EE JR ?0069
\ 01BD ?0068:
127 {
128 }
129 return Search_Flag;
\ 01BD 210000 LD HL,0
\ 01C0 39 ADD HL,SP
\ 01C1 6E LD L,(HL)
130 }
\ 01C2 F1 POP AF
\ 01C3 F1 POP AF
\ 01C4 DDE1 POP IX
\ 01C6 C1 POP BC
\ 01C7 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 01CA ShowFreqInFM:
131
132 void ShowFreqInFM(void)
133 {
\ 01CA C5 PUSH BC
\ 01CB D5 PUSH DE
\ 01CC FDE5 PUSH IY
\ 01CE DDE5 PUSH IX
\ 01D0 DD210000 LD IX,0
\ 01D4 DD39 ADD IX,SP
\ 01D6 21EEFF LD HL,65518
\ 01D9 39 ADD HL,SP
\ 01DA F9 LD SP,HL
134 char buf[4] =
135 { "FM" };
\ 01DB EB EX DE,HL
\ 01DC 210000 LD HL,?0072
\ 01DF 010400 LD BC,4
\ 01E2 EDB0 LDIR
136 long i;
137 int k, h;
138 char FMTab[7];
139
140 ClearScreen(NULL);
\ 01E4 59 LD E,C
\ 01E5 50 LD D,B
\ 01E6 CD0000 CALL LWRD ClearScreen
141 SetTextPos(128 / 2 - 6 * 3, 0);
\ 01E9 1E2E LD E,46
\ 01EB CD0000 CALL LWRD SetTextPos
142 if ((FMStatus.station_count > 0) && (FMStatus.station > 0)) //显示电台号
\ 01EE 3A0400 LD A,(FMStatus+4)
\ 01F1 B7 OR A
\ 01F2 284C JR Z,?0074
\ 01F4 3A0300 LD A,(FMStatus+3)
\ 01F7 B7 OR A
\ 01F8 2846 JR Z,?0074
\ 01FA ?0076:
\ 01FA ?0075:
\ 01FA ?0073:
143 {
144 strcpy(FMTab, "[");
\ 01FA 110000 LD DE,?0077
\ 01FD 210400 LD HL,4
\ 0200 39 ADD HL,SP
\ 0201 CD0000 CALL LWRD ?STRCPY_L11
145 strcat(FMTab, "CH");
\ 0204 110200 LD DE,?0078
\ 0207 210400 LD HL,4
\ 020A 39 ADD HL,SP
\ 020B CD0000 CALL LWRD ?STRCAT_L11
146 *itoa_2(FMStatus.station, buf);
\ 020E 210000 LD HL,0
\ 0211 39 ADD HL,SP
\ 0212 4D LD C,L
\ 0213 44 LD B,H
\ 0214 ED5B0300 LD DE,(FMStatus+3)
\ 0218 3E00 LD A,BYTE3 itoa_2
\ 021A 210000 LD HL,LWRD itoa_2
\ 021D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
147 strcat(FMTab, buf);
\ 0220 210000 LD HL,0
\ 0223 39 ADD HL,SP
\ 0224 EB EX DE,HL
\ 0225 210400 LD HL,4
\ 0228 39 ADD HL,SP
\ 0229 CD0000 CALL LWRD ?STRCAT_L11
148 strcat(FMTab, "]");
\ 022C 110500 LD DE,?0079
\ 022F 210400 LD HL,4
\ 0232 39 ADD HL,SP
\ 0233 CD0000 CALL LWRD ?STRCAT_L11
149 PutS(FMTab, -1);
\ 0236 0EFF LD C,255
\ 0238 210400 LD HL,4
\ 023B 39 ADD HL,SP
\ 023C EB EX DE,HL
\ 023D CD0000 CALL LWRD PutS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -