main.lst

来自「MP3 整个 SDK」· LST 代码 · 共 1,352 行 · 第 1/5 页

LST
1,352
字号
##############################################################################
#                                                                            #
# 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\main.c                   #
#       List file     =  d:\case_i_d90f\ap\ap_radio\list\main.lst            #
#       Object file   =  d:\case_i_d90f\ap\ap_radio\obj\main.r01             #
#       ASM file      =  d:\case_i_d90f\ap\ap_radio\list\main.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\main.c                   #
#                                                                            #
#                                             (c) Copyright IAR Systems 1996 #
##############################################################################

   \   0000                    NAME    main(17)
   \   0000                    RSEG    CODE(0)
   \   0000                    RSEG    CSTR(0)
   \   0000                    RSEG    CONST(0)
   \   0000                    RSEG    UDATA0(0)
   \   0000                    RSEG    IDATA0(0)
   \   0000                    RSEG    CDATA0(0)
   \   0000                    EXTERN  AutoSearchHandle
   \   0000                    EXTERN  ClearScreen
   \   0000                    EXTERN  DRV_ActiveUD
   \   0000                    PUBLIC  FMStationTab
   \   0000                    PUBLIC  FMStatus
   \   0000                    PUBLIC  FMStatusJP
   \   0000                    PUBLIC  FMStatusUS
   \   0000                    PUBLIC  FMdeal
   \   0000                    PUBLIC  Freqtab
   \   0000                    EXTERN  GetBattery
   \   0000                    EXTERN  GetDefaultComval
   \   0000                    PUBLIC  MY_DUMP
   \   0000                    EXTERN  PutS
   \   0000                    EXTERN  ResClose
   \   0000                    EXTERN  ResOpen
   \   0000                    EXTERN  ResShowMultiString
   \   0000                    EXTERN  SearchHandle
   \   0000                    EXTERN  SetTextPos
   \   0000                    EXTERN  ShowFreqInFM
   \   0000                    PUBLIC  TimeCount
   \   0000                    EXTERN  UpdateScreen
   \   0000                    PUBLIC  Updateflag
   \   0000                    EXTERN  VMRead
   \   0000                    EXTERN  VMWrite
   \   0000                    EXTERN  ap_get_message
   \   0000                    EXTERN  ap_handle_hotkey
   \   0000                    EXTERN  ap_message_init
   \   0000                    EXTERN  ap_sleep
   \   0000                    PUBLIC  clrregion
   \   0000                    EXTERN  fmSendCommand
   \   0000                    PUBLIC  fmdataflag
   \   0000                    PUBLIC  g_comval
   \   0000                    PUBLIC  g_list
   \   0000                    EXTERN  itoa_4
   \   0000                    PUBLIC  main
   \   0000                    PUBLIC  radio_param
   \   0000                    EXTERN  res_fp
   \   0000                    PUBLIC  string
   \   0000                    EXTERN  ui_popup_list
   \   0000                    EXTERN  ui_show_batt
   \   0000                    EXTERN  ui_show_volfm
   \   0000                    PUBLIC  volmuteflag
   \   0000                    PUBLIC  volume_callback
   \   0000                    EXTERN  ?CLZ80B_4_04_L00
   \   0000                    EXTERN  ?S_V_SWITCH_L06
   \   0000                    EXTERN  ?BANK_CALL_DIRECT_L08
   \   0000                    EXTERN  ?BANK_FAST_LEAVE_L08
   \   0000                    EXTERN  ?STRCPY_L11
   \   0000                    EXTERN  ?MEMCMP_L11
   \   0000                    RSEG    CODE
   \   0000            volume_callback:
      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: main.c,v 1.1.1.1 2006/05/22 03:24:00 selina Exp $
     10          *******************************************************************************
     11          */
     12          #include "ap_radio.h"
     13          //#include "mem.h"
     14          #include "actos.h"
     15          
     16          #define OpenFMPower1() output8(0xf8,input8(0xf8)|0x02)    //enable GPIO_E1
     17          #define CloseFMPower1() output8(0xf8,input8(0xf8)&0xfd)    //disable GPIO_E1
     18          #define OpenFMPower2() output8(0xfa,input8(0xfa)&0xfd)       //set GPIO_E1 o 0
     19          #define CloseFMPower2() output8(0xfa,input8(0xfa)|0x02)    //set GPIO_E1 to 1
     20          int TimeCount;
     21          FMRADIO_param_t radio_param;
     22          //slider_t     slider;
     23          region_t     clrregion;
     24          //function_menu_t     menu;                    //菜单结构体
     25          pop_up_list_t g_list;
     26          comval_t    g_comval;
     27          char    Updateflag;           //刷新标志
     28              //电台频率对照表(注:频率范围87M-108M(US)或76M-90M(Japan),以K为精度要三位数,但由于最高位都是1,所以就可不记录,只记中低位就可以了).
     29              WORD     FMStationTab[40];
     30              fm_play_status_t    FMStatus;            //当前电台信息,8 bytes
     31              fm_play_status_t    FMStatusUS;            //US电台信息暂存,8 bytes
     32              fm_play_status_t    FMStatusJP;           //Japan电台信息暂存,8bytes
     33              char    fmdataflag[3];                    //第一次进FM标志,3 bytes
     34              char    Freqtab[10];
     35          
     36          
     37          
     38              const WORD string[] = {FMENU1, FMENU15, FMENU2, FMENU3, FMENU16, FMENU4, FMENU5,FMENU6};   //FMENU15:电台录音 by ccm
     39          //函数定义
     40          int    SearchHandle(BYTE Direct);                //自动搜索处理,Direct=10,NEXT,=20,LAST
     41          int    AutoSearchHandle(BYTE Direct);
     42          int     FMdeal();                                //FM应用的处理
     43          void    ShowFreqInFM();                        //FM主界面显示
     44          bool     Search_Show(FM_direct_t Direct);    //自动搜台时的显示
     45          bool   volmuteflag=0;              //静音标志
     46          void    volume_callback(int Vol)            //音量设置的CALLBACK函数
     47          {
   \   0000  C5                PUSH    BC
   \   0001  D5                PUSH    DE
     48          //实时改变音量的值
     49              fmSendCommand(MC_SETVOLUME,Vol);
   \   0002  4B                LD      C,E
   \   0003  42                LD      B,D
   \   0004  1E40              LD      E,64
   \   0006  CD1000            CALL    LWRD ?0169
     50          }
   \   0009  E1                POP     HL
   \   000A  C1                POP     BC
   \   000B  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   000E            ?0170:
   \   000E  1E0C              LD      E,12
   \   0010            ?0169:
   \   0010  3E00              LD      A,BYTE3 fmSendCommand
   \   0012            ?0171:
   \   0012  210000            LD      HL,LWRD fmSendCommand
   \   0015  C30000            JP      LWRD ?BANK_CALL_DIRECT_L08
   \   0018            MY_DUMP:
     51          
     52          
     53          void MY_DUMP(char *string, int value)
     54          {
   \   0018  C5                PUSH    BC
   \   0019  D5                PUSH    DE
   \   001A  F5                PUSH    AF
   \   001B  F5                PUSH    AF
   \   001C  F5                PUSH    AF
     55              char dump_buf[6];
     56                  dump_buf[0] = ',';
   \   001D  210000            LD      HL,0
   \   0020  39                ADD     HL,SP
   \   0021  362C              LD      (HL),44
     57                  SetTextPos(0, 16);
   \   0023  0E10              LD      C,16
   \   0025  1E00              LD      E,0
   \   0027  CD0000            CALL    LWRD SetTextPos
     58                  PutS((string), -1);
   \   002A  0EFF              LD      C,255
   \   002C  210600            LD      HL,6
   \   002F  39                ADD     HL,SP
   \   0030  5E                LD      E,(HL)
   \   0031  23                INC     HL
   \   0032  56                LD      D,(HL)
   \   0033  CD0000            CALL    LWRD PutS
     59                  itoa_4((value), &dump_buf[1]);
   \   0036  210000            LD      HL,0
   \   0039  39                ADD     HL,SP
   \   003A  010100            LD      BC,1
   \   003D  09                ADD     HL,BC
   \   003E  4D                LD      C,L
   \   003F  44                LD      B,H
   \   0040  210800            LD      HL,8
   \   0043  39                ADD     HL,SP
   \   0044  5E                LD      E,(HL)
   \   0045  23                INC     HL
   \   0046  56                LD      D,(HL)
   \   0047  3E00              LD      A,BYTE3 itoa_4
   \   0049  210000            LD      HL,LWRD itoa_4
   \   004C  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
     60                  dump_buf[5] = '>';
   \   004F  210500            LD      HL,5
   \   0052  39                ADD     HL,SP
   \   0053  363E              LD      (HL),62
     61          
     62                  PutS(dump_buf, 6);
   \   0055  0E06              LD      C,6
   \   0057  210000            LD      HL,0
   \   005A  39                ADD     HL,SP
   \   005B  EB                EX      DE,HL
   \   005C  CD0000            CALL    LWRD PutS
     63                  UpdateScreen(NULL);
   \   005F  110000            LD      DE,0
   \   0062  CD0000            CALL    LWRD UpdateScreen
   \   0065            ?0003:
     64                  while( ap_get_message() != (AP_KEY_PLAY| AP_KEY_UP)) {;}
   \   0065  CD0000            CALL    LWRD ap_get_message
   \   0068  FE21              CP      33
   \   006A  20F9              JR      NZ,?0003
   \   006C            ?0004:
     65          }
   \   006C            ?0002:
   \   006C  210A00            LD      HL,10
   \   006F  39                ADD     HL,SP
   \   0070  F9                LD      SP,HL
   \   0071  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0074            main:
     66          
     67          #define OpenFM()
     68          int main(int param)
     69          {
   \   0074  C5                PUSH    BC
   \   0075  FDE5              PUSH    IY
   \   0077  DDE5              PUSH    IX
   \   0079  D5                PUSH    DE
   \   007A  F5                PUSH    AF
     70              int    result;
     71          
     72              //Open VCCOUT for FM Module. by ccm
     73              int i,j;
     74              TimeCount=0;
   \   007B  210000            LD      HL,0
   \   007E  220000            LD      (TimeCount),HL
     75              OpenFMPower1();
   \   0081  DBF8              IN      A,(248)
   \   0083  CBCF              SET     1,A
   \   0085  D3F8              OUT     (248),A
     76          
     77              OpenFMPower2();
   \   0087  DBFA              IN      A,(250)
   \   0089  CB8F              RES     1,A
   \   008B  D3FA              OUT     (250),A
     78              for(i=0;i<599;i++)
   \   008D  39                ADD     HL,SP
   \   008E  AF                XOR     A
   \   008F  77                LD      (HL),A
   \   0090  23                INC     HL
   \   0091  77                LD      (HL),A
   \   0092            ?0006:
   \   0092  015782            LD      BC,33367
   \   0095  2B                DEC     HL
   \   0096  56                LD      D,(HL)
   \   0097  23                INC     HL
   \   0098  66                LD      H,(HL)
   \   0099  6A                LD      L,D
   \   009A  3E80              LD      A,128
   \   009C  AC                XOR     H
   \   009D  67                LD      H,A
   \   009E  ED42              SBC     HL,BC
   \   00A0  3024              JR      NC,?0005
   \   00A2            ?0007:
     79              {
     80                  j = 50;
   \   00A2  DD213200          LD      IX,50
   \   00A6            ?0010:
     81                  for(;j>0;j--) {;}
   \   00A6  DDE5              PUSH    IX
   \   00A8  C1                POP     BC
   \   00A9  210000            LD      HL,0
   \   00AC  F680              OR      128
   \   00AE  ED42              SBC     HL,BC
   \   00B0  E2B400            JP      PO,?0124
   \   00B3  AC                XOR     H

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?