📄 autosearchhandle.lst
字号:
\ 00DC 0E62 LD C,98
\ 00DE 11B801 LD DE,440
\ 00E1 CD3602 CALL LWRD ?0189
\ 00E4 F1 POP AF
\ 00E5 ?0010:
101 }
102 //k=GetBattery();
103
104 //ui_show_batt(GetBattery()); //电池电量显示
105 ui_show_batt(GetBattery(), F_comval.BatteryType); //电池电量显示
\ 00E5 ED4B0F00 LD BC,(g_comval+15)
\ 00E9 CD0000 CALL LWRD GetBattery
\ 00EC 5F LD E,A
\ 00ED 1600 LD D,0
\ 00EF 3E00 LD A,BYTE3 ui_show_batt
\ 00F1 210000 LD HL,LWRD ui_show_batt
\ 00F4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
106 strcpy(Freqtab, "<");
\ 00F7 110700 LD DE,?0011
\ 00FA 210000 LD HL,Freqtab
\ 00FD CD0000 CALL LWRD ?STRCPY_L11
107 strcat(Freqtab, "FM");
\ 0100 110900 LD DE,?0012
\ 0103 210000 LD HL,Freqtab
\ 0106 CD0000 CALL LWRD ?STRCAT_L11
108 //频率换算及转换成ASCII码
109 k = FMStatus.freq;
\ 0109 FD2A0100 LD IY,(FMStatus+1)
110 if(FMStatus.mode==0)
\ 010D 3A0500 LD A,(FMStatus+5)
\ 0110 B7 OR A
\ 0111 010A00 LD BC,10
\ 0114 FDE5 PUSH IY
\ 0116 D1 POP DE
\ 0117 CD0000 CALL LWRD ?SS_DIV_L02
\ 011A 2018 JR NZ,?0014
\ 011C ?0013:
111 i=k/10 + 87;
\ 011C 215700 LD HL,87
\ 011F 1816 JR ?0158
\ 0121 7C LD A,H
\ 0122 1815 JR ?0160
\ 0124 9F SBC A,A
\ 0125 1814 JR ?0162
\ 0127 41 LD B,C
\ 0128 1813 JR ?0163
\ 012A DD74FB LD (IX-5),H
\ 012D 1814 JR ?0164
\ 012F DD70FD LD (IX-3),B
112 else
\ 0132 1815 JR ?0015
\ 0134 ?0014:
113 i=k/10 + 76;
\ 0134 214C00 LD HL,76
\ 0137 ?0158:
\ 0137 19 ADD HL,DE
\ 0138 7C LD A,H
\ 0139 ?0160:
\ 0139 07 RLCA
\ 013A 9F SBC A,A
\ 013B ?0162:
\ 013B 4F LD C,A
\ 013C 41 LD B,C
\ 013D ?0163:
\ 013D DD75FA LD (IX-6),L
\ 0140 DD74FB LD (IX-5),H
\ 0143 ?0164:
\ 0143 DD71FC LD (IX-4),C
\ 0146 DD70FD LD (IX-3),B
\ 0149 ?0015:
114
115 h=k%10;
\ 0149 010A00 LD BC,10
\ 014C FDE5 PUSH IY
\ 014E D1 POP DE
\ 014F CD0000 CALL LWRD ?SS_MOD_L02
\ 0152 DD73FE LD (IX-2),E
116
117
118 if (i < 100)
\ 0155 68 LD L,B
\ 0156 60 LD H,B
\ 0157 E5 PUSH HL
\ 0158 2E64 LD L,100
\ 015A E5 PUSH HL
\ 015B DD4EFC LD C,(IX-4)
\ 015E DD46FD LD B,(IX-3)
\ 0161 DD6EFA LD L,(IX-6)
\ 0164 DD66FB LD H,(IX-5)
\ 0167 CD0000 CALL LWRD ?SL_CMP_L03
\ 016A 210000 LD HL,0
\ 016D 3010 JR NC,?0017
\ 016F ?0016:
119 *itoa_2(i, buf);
\ 016F 39 ADD HL,SP
\ 0170 4D LD C,L
\ 0171 44 LD B,H
\ 0172 DD5EFA LD E,(IX-6)
\ 0175 3E00 LD A,BYTE3 itoa_2
\ 0177 210000 LD HL,LWRD itoa_2
\ 017A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
120 else
\ 017D 1811 JR ?0018
\ 017F ?0017:
121 *itoa_3(i, buf);
\ 017F 39 ADD HL,SP
\ 0180 4D LD C,L
\ 0181 44 LD B,H
\ 0182 DD5EFA LD E,(IX-6)
\ 0185 DD56FB LD D,(IX-5)
\ 0188 3E00 LD A,BYTE3 itoa_3
\ 018A 210000 LD HL,LWRD itoa_3
\ 018D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0190 ?0018:
122 strcat(Freqtab, buf);
\ 0190 210000 LD HL,0
\ 0193 39 ADD HL,SP
\ 0194 EB EX DE,HL
\ 0195 210000 LD HL,Freqtab
\ 0198 CD0000 CALL LWRD ?STRCAT_L11
123 strcat(Freqtab, ".");
\ 019B 110C00 LD DE,?0019
\ 019E 210000 LD HL,Freqtab
\ 01A1 CD0000 CALL LWRD ?STRCAT_L11
124 *itoa_1(h, buf);
\ 01A4 210000 LD HL,0
\ 01A7 39 ADD HL,SP
\ 01A8 4D LD C,L
\ 01A9 44 LD B,H
\ 01AA DD5EFE LD E,(IX-2)
\ 01AD 3E00 LD A,BYTE3 itoa_1
\ 01AF 210000 LD HL,LWRD itoa_1
\ 01B2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
125 //buf[1] = 0;
126 //buf[2] = 0;
127 strcat(Freqtab, buf);
\ 01B5 210000 LD HL,0
\ 01B8 39 ADD HL,SP
\ 01B9 EB EX DE,HL
\ 01BA 210000 LD HL,Freqtab
\ 01BD CD0000 CALL LWRD ?STRCAT_L11
128 strcat(Freqtab, ">");
\ 01C0 110E00 LD DE,?0020
\ 01C3 210000 LD HL,Freqtab
\ 01C6 CD0000 CALL LWRD ?STRCAT_L11
129 SetTextPos(40, 8); //SetTextPos((128-6*8)/2,8);
\ 01C9 0E08 LD C,8
\ 01CB 1E28 LD E,40
\ 01CD CD0000 CALL LWRD SetTextPos
130 PutS(Freqtab, -1); //显示电台频率
\ 01D0 0EFF LD C,255
\ 01D2 110000 LD DE,Freqtab
\ 01D5 CD0000 CALL LWRD PutS
131 if (FMStatus.mode == 0)
\ 01D8 3A0500 LD A,(FMStatus+5)
\ 01DB B7 OR A
\ 01DC ED4B0100 LD BC,(FMStatus+1)
\ 01E0 116400 LD DE,100
\ 01E3 CD0000 CALL LWRD ?S_MUL_L02
\ 01E6 01C800 LD BC,200
\ 01E9 CD0000 CALL LWRD ?US_DIV_L02
\ 01EC 0E10 LD C,16
\ 01EE C5 PUSH BC
\ 01EF 7B LD A,E
\ 01F0 2018 JR NZ,?0022
\ 01F2 ?0021:
132 {
133 k = (FMStatus.freq )*100/200;
134
135 ResShowPic(DWNARROW, 6 + k, 16); //显示箭头ResShowPic(DWNARROW,11-5+k,16);
\ 01F2 C606 ADD A,6
\ 01F4 CD3202 CALL LWRD ?0190
\ 01F7 F1 POP AF
136 ResShowPic(FQBAR, 0, 24); //显示US频率条
\ 01F8 0E18 LD C,24
\ 01FA C5 PUSH BC
\ 01FB 0E00 LD C,0
\ 01FD 11A700 LD DE,167
\ 0200 1816 JR ?0159
\ 0202 210000 LD HL,LWRD ResShowPic
\ 0205 1816 JR ?0161
\ 0207 F1 POP AF
137 }
138 else
\ 0208 1817 JR ?0023
\ 020A ?0022:
139 {
140 k = (FMStatus.freq )*100/200;
141 ResShowPic(DWNARROW, 24 + k, 16); //显示箭头 ResShowPic(DWNARROW,30-6+k,16);
\ 020A C618 ADD A,24
\ 020C CD3202 CALL LWRD ?0190
\ 020F F1 POP AF
142 ResShowPic(FQBAR2, 0, 24); //显示JP频率条
\ 0210 0E18 LD C,24
\ 0212 C5 PUSH BC
\ 0213 0E00 LD C,0
\ 0215 11A800 LD DE,168
\ 0218 ?0159:
\ 0218 3E00 LD A,BYTE3 ResShowPic
\ 021A 210000 LD HL,LWRD ResShowPic
\ 021D ?0161:
\ 021D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0220 F1 POP AF
\ 0221 ?0023:
143 }
144 UpdateScreen(NULL); //刷新
\ 0221 110000 LD DE,0
\ 0224 CD0000 CALL LWRD UpdateScreen
145 }
\ 0227 DDF9 LD SP,IX
\ 0229 DDE1 POP IX
\ 022B FDE1 POP IY
\ 022D D1 POP DE
\ 022E C1 POP BC
\ 022F C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0232 ?0190:
\ 0232 4F LD C,A
\ 0233 115E00 LD DE,94
\ 0236 ?0189:
\ 0236 3E00 LD A,BYTE3 ResShowPic
\ 0238 210000 LD HL,LWRD ResShowPic
\ 023B C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 023E Search_Show2:
146 /*
147 ********************************************************************************
148 * Description : 搜索下一个在电台表中没有的新电台.
149 *
150 * Arguments : Direct,Next或Last搜索.
151 *
152 * Returns : TRUE:搜到下一个新电台,FALSE:没有搜到.
153 *
154 * Notes :
155 *
156 ********************************************************************************
157 */
158 bool Search_Show2(FM_direct_t Direct)
159 {
\ 023E C5 PUSH BC
\ 023F FDE5 PUSH IY
\ 0241 DDE5 PUSH IX
\ 0243 DD210000 LD IX,0
\ 0247 DD39 ADD IX,SP
\ 0249 D5 PUSH DE
\ 024A F5 PUSH AF
\ 024B F5 PUSH AF
160 bool Search_Flag;
161 int i;
162 WORD temp;
163
164 FMStatus.stereo_status = 1;
\ 024C 3E01 LD A,1
\ 024E 320700 LD (FMStatus+7),A
165 FMStatus.station = 0;
\ 0251 AF XOR A
\ 0252 320300 LD (FMStatus+3),A
166 fmSendCommand(MC_MUTE, SetMUTE);
\ 0255 010100 LD BC,1
\ 0258 1E0C LD E,12
\ 025A CD0C03 CALL LWRD ?0191
167 fmSendCommand(MC_SETVOLUME, FMStatus.volume);
\ 025D CD0403 CALL LWRD ?0192
168 fmSendCommand(MC_RESTORE, (int) &radio_param);
\ 0260 010000 LD BC,radio_param
\ 0263 1E45 LD E,69
\ 0265 CD0C03 CALL LWRD ?0191
169 Search_Flag = fmSendCommand(MC_SEARCH, Direct);
\ 0268 DD4EFE LD C,(IX-2)
\ 026B 0600 LD B,0
\ 026D 1E0A LD E,10
\ 026F CD0C03 CALL LWRD ?0191
\ 0272 DD75FA LD (IX-6),L
170 if (Search_Flag) //搜台成功后,MUTE释放
\ 0275 2C INC L
\ 0276 2D DEC L
\ 0277 2860 JR Z,?0033
\ 0279 ?0024:
171 {
172 fmSendCommand(MC_GETFREQ, (int) &temp);
\ 0279 210200 LD HL,2
\ 027C 39 ADD HL,SP
\ 027D 4D LD C,L
\ 027E 44 LD B,H
\ 027F 1E11 LD E,17
\ 0281 CD0C03 CALL LWRD ?0191
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -