📄 autosearchhandle.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 23/Feb/109 09:19:17 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d95f\ap\ap_radio\autosearchhandle.c #
# List file = d:\case_i_d95f\ap\ap_radio\list\autosearchhandle.lst#
# Object file = d:\case_i_d95f\ap\ap_radio\obj\autosearchhandle.r01 #
# ASM file = d:\case_i_d95f\ap\ap_radio\list\autosearchhandle.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\AutoSearchHandle.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME autosearchhandle(17)
\ 0000 RSEG CODE_2(0)
\ 0000 RSEG CSTR(0)
\ 0000 RSEG CONST(0)
\ 0000 RSEG UDATA0(0)
\ 0000 PUBLIC AutoSearchHandle
\ 0000 PUBLIC AutoTabNum
\ 0000 PUBLIC CleanStationCount
\ 0000 EXTERN ClearScreen
\ 0000 PUBLIC FMAutoTab
\ 0000 EXTERN FMStatus
\ 0000 EXTERN Freqtab
\ 0000 EXTERN GetBattery
\ 0000 EXTERN PutS
\ 0000 EXTERN ResShowPic
\ 0000 PUBLIC RestartSearch
\ 0000 PUBLIC Search_Show2
\ 0000 EXTERN SetTextPos
\ 0000 PUBLIC ShowFreqInFM2
\ 0000 PUBLIC ShowStationCount
\ 0000 EXTERN TryPlayingHandle
\ 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_2
\ 0000 ShowStationCount:
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_2)
13
14 #include "ap_radio.h"
15 #include "actos.h"
16
17 extern slider_t slider;
18 extern comval_t F_comval;
19 extern WORD FMStationTab[40]; // 前20个是US, 后20个是JP.
20 extern fm_play_status_t FMStatus;
21 extern FMRADIO_param_t radio_param;
22 extern char Freqtab[10];
23
24 WORD FMAutoTab[20]; // 全自动收台,预存台.
25 BYTE AutoTabNum; // 预存台数.
26
27 extern int TryPlayingHandle(void);
28 /*
29 ********************************************************************************
30 * Description : 显示电台号.
31 *
32 * Arguments :
33 *
34 * Returns :
35 *
36 * Notes :
37 *
38 ********************************************************************************
39 */
40 void ShowStationCount(int count)
41 {
\ 0000 C5 PUSH BC
\ 0001 DDE5 PUSH IX
\ 0003 21F4FF LD HL,65524
\ 0006 39 ADD HL,SP
\ 0007 F9 LD SP,HL
\ 0008 D5 PUSH DE
\ 0009 DDE1 POP IX
42 char buf[4];
43 char FMTab[7];
44
45 SetTextPos(46, 0); //SetTextPos(128/2-6*3,0);
\ 000B 0E00 LD C,0
\ 000D 1E2E LD E,46
\ 000F CD0000 CALL LWRD SetTextPos
46 if (count > 0) //显示电台号
\ 0012 DDE5 PUSH IX
\ 0014 C1 POP BC
\ 0015 210000 LD HL,0
\ 0018 F680 OR 128
\ 001A ED42 SBC HL,BC
\ 001C E22000 JP PO,?0157
\ 001F AC XOR H
\ 0020 ?0157:
\ 0020 F26900 JP P,?0003
\ 0023 ?0002:
47 {
48 strcpy(FMTab, "[");
\ 0023 110000 LD DE,?0004
\ 0026 210000 LD HL,0
\ 0029 39 ADD HL,SP
\ 002A CD0000 CALL LWRD ?STRCPY_L11
49 strcat(FMTab, "CH");
\ 002D 110200 LD DE,?0005
\ 0030 210000 LD HL,0
\ 0033 39 ADD HL,SP
\ 0034 CD0000 CALL LWRD ?STRCAT_L11
50 *itoa_2(count, buf);
\ 0037 210800 LD HL,8
\ 003A 39 ADD HL,SP
\ 003B 4D LD C,L
\ 003C 44 LD B,H
\ 003D DDE5 PUSH IX
\ 003F E1 POP HL
\ 0040 5D LD E,L
\ 0041 3E00 LD A,BYTE3 itoa_2
\ 0043 210000 LD HL,LWRD itoa_2
\ 0046 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
51 strcat(FMTab, buf);
\ 0049 210800 LD HL,8
\ 004C 39 ADD HL,SP
\ 004D EB EX DE,HL
\ 004E 210000 LD HL,0
\ 0051 39 ADD HL,SP
\ 0052 CD0000 CALL LWRD ?STRCAT_L11
52 strcat(FMTab, "]");
\ 0055 110500 LD DE,?0006
\ 0058 210000 LD HL,0
\ 005B 39 ADD HL,SP
\ 005C CD0000 CALL LWRD ?STRCAT_L11
53 PutS(FMTab, -1);
\ 005F 0EFF LD C,255
\ 0061 210000 LD HL,0
\ 0064 39 ADD HL,SP
\ 0065 EB EX DE,HL
\ 0066 CD0000 CALL LWRD PutS
\ 0069 ?0003:
54 }
55 UpdateScreen(NULL);
\ 0069 110000 LD DE,0
\ 006C CD0000 CALL LWRD UpdateScreen
56 }
\ 006F 210C00 LD HL,12
\ 0072 39 ADD HL,SP
\ 0073 F9 LD SP,HL
\ 0074 DDE1 POP IX
\ 0076 C1 POP BC
\ 0077 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 007A CleanStationCount:
57 /*
58 ********************************************************************************
59 * Description : 清除电台号
60 *
61 * Arguments :
62 *
63 * Returns :
64 *
65 * Notes :
66 *
67 ********************************************************************************
68 */
69 void CleanStationCount(void)
70 {
\ 007A C5 PUSH BC
\ 007B D5 PUSH DE
\ 007C F5 PUSH AF
\ 007D F5 PUSH AF
\ 007E F5 PUSH AF
\ 007F F5 PUSH AF
71 char FMTab[] = " ";
\ 0080 210000 LD HL,0
\ 0083 39 ADD HL,SP
\ 0084 EB EX DE,HL
\ 0085 210000 LD HL,?0007
\ 0088 010700 LD BC,7
\ 008B EDB0 LDIR
72 SetTextPos(46, 0); //SetTextPos(128/2-6*3,0);
\ 008D 1E2E LD E,46
\ 008F CD0000 CALL LWRD SetTextPos
73 PutS(FMTab, -1);
\ 0092 0EFF LD C,255
\ 0094 210000 LD HL,0
\ 0097 39 ADD HL,SP
\ 0098 EB EX DE,HL
\ 0099 CD0000 CALL LWRD PutS
74 UpdateScreen(NULL);
\ 009C 110000 LD DE,0
\ 009F CD0000 CALL LWRD UpdateScreen
75 }
\ 00A2 E1 POP HL
\ 00A3 E1 POP HL
\ 00A4 E1 POP HL
\ 00A5 E1 POP HL
\ 00A6 D1 POP DE
\ 00A7 C1 POP BC
\ 00A8 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00AB ShowFreqInFM2:
76 /*
77 ********************************************************************************
78 * Description : 显示全自动搜台界面
79 *
80 * Arguments :
81 *
82 * Returns :
83 *
84 * Notes :
85 *
86 ********************************************************************************
87 */
88 void ShowFreqInFM2(void)
89 {
\ 00AB C5 PUSH BC
\ 00AC D5 PUSH DE
\ 00AD FDE5 PUSH IY
\ 00AF DDE5 PUSH IX
\ 00B1 DD210000 LD IX,0
\ 00B5 DD39 ADD IX,SP
\ 00B7 21F6FF LD HL,65526
\ 00BA 39 ADD HL,SP
\ 00BB F9 LD SP,HL
90 char buf[4] =
91 { "FM" };
\ 00BC EB EX DE,HL
\ 00BD 210700 LD HL,?0008
\ 00C0 010400 LD BC,4
\ 00C3 EDB0 LDIR
92 long i;
93 int k, h;
94 char FMTab[5];
95
96 ClearScreen(NULL);
\ 00C5 59 LD E,C
\ 00C6 50 LD D,B
\ 00C7 CD0000 CALL LWRD ClearScreen
97 ResShowPic(RA_FM, 16, 0); //fm 标志显示
\ 00CA C5 PUSH BC
\ 00CB 0E10 LD C,16
\ 00CD 11B101 LD DE,433
\ 00D0 CD3602 CALL LWRD ?0189
\ 00D3 F1 POP AF
98 if (FMStatus.stereo_status == 0)
\ 00D4 3A0700 LD A,(FMStatus+7)
\ 00D7 B7 OR A
\ 00D8 200B JR NZ,?0010
\ 00DA ?0009:
99 {
100 ResShowPic(RA_STERE, 98, 0); //显示立体声 ResShowPic(RA_STERE,128-30,0);
\ 00DA 4F LD C,A
\ 00DB C5 PUSH BC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -