searchhandle.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,099 行 · 第 1/4 页
LST
1,099 行
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:01:36 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_radio\searchhandle.c #
# List file = d:\case_i_d90f\ap\ap_radio\list\searchhandle.lst #
# Object file = d:\case_i_d90f\ap\ap_radio\obj\searchhandle.r01 #
# ASM file = d:\case_i_d90f\ap\ap_radio\list\searchhandle.s01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_radio\Obj\ -e -K -w #
# -gA -s9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d90f\ap\ap_radio\List\ -q -t8 #
# -AD:\case_i_d90f\ap\ap_radio\List\ #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\AP\AP_RADIO\SearchHandle.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME searchhandle(17)
\ 0000 RSEG CODE_1(0)
\ 0000 RSEG CSTR(0)
\ 0000 EXTERN FMStatus
\ 0000 EXTERN Freqtab
\ 0000 EXTERN GetBattery
\ 0000 EXTERN ResShowPic
\ 0000 PUBLIC SearchHandle
\ 0000 PUBLIC Search_Show
\ 0000 PUBLIC ShowFreqInFM
\ 0000 EXTERN ShowStationCount
\ 0000 EXTERN Updateflag
\ 0000 EXTERN ap_get_message
\ 0000 EXTERN ap_handle_hotkey
\ 0000 EXTERN fmSendCommand
\ 0000 EXTERN g_comval
\ 0000 EXTERN itoa_2
\ 0000 EXTERN itoa_3
\ 0000 EXTERN main_ResShowPic
\ 0000 EXTERN radio_param
\ 0000 PUBLIC ui_show_FMdata
\ 0000 EXTERN ui_show_batt
\ 0000 PUBLIC ui_show_data
\ 0000 PUBLIC ui_show_volfm
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?US_DIV_L02
\ 0000 EXTERN ?SL_DIV_L03
\ 0000 EXTERN ?SL_MOD_L03
\ 0000 EXTERN ?SL_CMP_L03
\ 0000 EXTERN ?SL_DIVASG_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 ui_show_data:
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 * $Id: SearchHandle.c,v 1.1.1.1 2006/05/22 03:24:00 selina Exp $
10 *******************************************************************************
11 */
12
13 #pragma codeseg(CODE_1)
14
15 #include "ap_radio.h"
16 #include "actos.h"
17 extern comval_t g_comval;
18 extern fm_play_status_t FMStatus;
19 extern FMRADIO_param_t radio_param;
20 extern char Freqtab[10];
21 extern char Updateflag;
22 void ShowFreqInFM(); //FM主界面显示
23 bool Search_Show(FM_direct_t Direct); //自动搜台时的显示
24 void ui_show_data(char *buf, uchar x, uchar y) //zxs add for show CH number
25 {
\ 0000 DDE5 PUSH IX
\ 0002 C5 PUSH BC
\ 0003 D5 PUSH DE
\ 0004 DDE1 POP IX
\ 0006 ?0003:
26 while(1)
27 {
28 if(*buf!=0)main_ResShowPic(CHNUM0+*buf-0x30, x, y);
\ 0006 AF XOR A
\ 0007 DDB600 OR (IX+0)
\ 000A 2829 JR Z,?0002
\ 000C ?0005:
\ 000C 210800 LD HL,8
\ 000F 39 ADD HL,SP
\ 0010 4E LD C,(HL)
\ 0011 C5 PUSH BC
\ 0012 210200 LD HL,2
\ 0015 39 ADD HL,SP
\ 0016 4E LD C,(HL)
\ 0017 DD5E00 LD E,(IX+0)
\ 001A 1600 LD D,0
\ 001C 21F1FF LD HL,65521
\ 001F CD4100 CALL LWRD ?0138
\ 0022 F1 POP AF
29 else
\ 0023 ?0006:
30 break;
\ 0023 ?0007:
31 output8(0x4e,input8(0x4e)|0x08);
\ 0023 DB4E IN A,(78)
\ 0025 CBDF SET 3,A
\ 0027 D34E OUT (78),A
32 *buf++;
33 x+=6;
\ 0029 210000 LD HL,0
\ 002C 39 ADD HL,SP
\ 002D 7E LD A,(HL)
\ 002E C606 ADD A,6
\ 0030 77 LD (HL),A
34 }
35 }
\ 0031 DD23 INC IX
\ 0033 18D1 JR ?0003
\ 0035 ?0002:
\ 0035 E1 POP HL
\ 0036 DDE1 POP IX
\ 0038 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 003B ?0139:
\ 003B 5E LD E,(HL)
\ 003C 1600 LD D,0
\ 003E 21C100 LD HL,193
\ 0041 ?0138:
\ 0041 19 ADD HL,DE
\ 0042 EB EX DE,HL
\ 0043 3E00 LD A,BYTE3 main_ResShowPic
\ 0045 210000 LD HL,LWRD main_ResShowPic
\ 0048 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 004B ui_show_volfm:
36
37
38 void ui_show_volfm(BYTE volume) //显示音量信息 zxs add for show fm vol
39 {
\ 004B C5 PUSH BC
\ 004C D5 PUSH DE
\ 004D F5 PUSH AF
\ 004E F5 PUSH AF
40 char temp[3];
41 itoa_2(volume, temp);
\ 004F 210000 LD HL,0
\ 0052 39 ADD HL,SP
\ 0053 4D LD C,L
\ 0054 44 LD B,H
\ 0055 3E00 LD A,BYTE3 itoa_2
\ 0057 210000 LD HL,LWRD itoa_2
\ 005A CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
42 main_ResShowPic(TVNUM0+temp[0]-0x30,25,162);
\ 005D 0EA2 LD C,162
\ 005F C5 PUSH BC
\ 0060 0E19 LD C,25
\ 0062 210200 LD HL,2
\ 0065 39 ADD HL,SP
\ 0066 CD3B00 CALL LWRD ?0139
\ 0069 F1 POP AF
43 main_ResShowPic(TVNUM0+temp[1]-0x30,25+9,162);
\ 006A 0EA2 LD C,162
\ 006C C5 PUSH BC
\ 006D 0E22 LD C,34
\ 006F 210300 LD HL,3
\ 0072 39 ADD HL,SP
\ 0073 CD3B00 CALL LWRD ?0139
\ 0076 F1 POP AF
44 }
\ 0077 E1 POP HL
\ 0078 E1 POP HL
\ 0079 E1 POP HL
\ 007A C1 POP BC
\ 007B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 007E SearchHandle:
45
46 int SearchHandle(BYTE Direct)
47 {
\ 007E C5 PUSH BC
\ 007F DDE5 PUSH IX
\ 0081 D5 PUSH DE
\ 0082 F5 PUSH AF
48 int key;
49 bool need_draw=TRUE;
50 BYTE Searchflag=1;
\ 0083 210000 LD HL,0
\ 0086 39 ADD HL,SP
\ 0087 3601 LD (HL),1
\ 0089 1601 LD D,1
\ 008B ?0009:
51 while(1)
52 {
53 if(Direct!=0)
\ 008B 210200 LD HL,2
\ 008E 39 ADD HL,SP
\ 008F AF XOR A
\ 0090 B6 OR (HL)
\ 0091 CA5301 JP Z,?0044
\ 0094 ?0011:
54 {
55 if(Direct==10) //NEXT搜索处理
\ 0094 FE0A CP 10
\ 0096 2058 JR NZ,?0014
\ 0098 ?0013:
56 {
57 if(((FMStatus.freq+100)>0xa5e0)&&(FMStatus.mode==0))FMStatus.freq=0x53d8;
\ 0098 2A0100 LD HL,(FMStatus+1)
\ 009B 016400 LD BC,100
\ 009E 09 ADD HL,BC
\ 009F 4D LD C,L
\ 00A0 44 LD B,H
\ 00A1 21E0A5 LD HL,42464
\ 00A4 A7 AND A
\ 00A5 ED42 SBC HL,BC
\ 00A7 300B JR NC,?0016
\ 00A9 3A0500 LD A,(FMStatus+5)
\ 00AC B7 OR A
\ 00AD 2005 JR NZ,?0016
\ 00AF ?0018:
\ 00AF ?0017:
\ 00AF ?0015:
\ 00AF 21D853 LD HL,21464
\ 00B2 181A JR ?0123
\ 00B4 ?0016:
58 else if(((FMStatus.freq+100)>0x5f90)&&(FMStatus.mode==1))FMStatus.freq=0x28e0;
\ 00B4 2A0100 LD HL,(FMStatus+1)
\ 00B7 016400 LD BC,100
\ 00BA 09 ADD HL,BC
\ 00BB 4D LD C,L
\ 00BC 44 LD B,H
\ 00BD 21905F LD HL,24464
\ 00C0 A7 AND A
\ 00C1 ED42 SBC HL,BC
\ 00C3 300E JR NC,?0021
\ 00C5 3A0500 LD A,(FMStatus+5)
\ 00C8 3D DEC A
\ 00C9 2008 JR NZ,?0021
\ 00CB ?0023:
\ 00CB ?0022:
\ 00CB ?0020:
\ 00CB 21E028 LD HL,10464
\ 00CE ?0123:
\ 00CE 220100 LD (FMStatus+1),HL
59 else
\ 00D1 180B JR ?0122
\ 00D3 ?0021:
60 FMStatus.freq+=100;
\ 00D3 210100 LD HL,FMStatus+1
\ 00D6 7E LD A,(HL)
\ 00D7 C664 ADD A,100
\ 00D9 77 LD (HL),A
\ 00DA 3002 JR NC,?0122
\ 00DC 23 INC HL
\ 00DD 34 INC (HL)
\ 00DE ?0122:
\ 00DE ?0024:
\ 00DE ?0019:
61 if(Search_Show(UP))return 0;
\ 00DE D5 PUSH DE
\ 00DF 1E01 LD E,1
\ 00E1 3E00 LD A,BYTE3 Search_Show
\ 00E3 21FC01 LD HL,LWRD Search_Show
\ 00E6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00E9 2C INC L
\ 00EA 2D DEC L
\ 00EB D1 POP DE
\ 00EC 2865 JR Z,?0044
\ 00EE ?0025:
\ 00EE 185D JR ?0126
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?