⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 5 页
字号:
    106              TimeCount = 0;
   \   0091  210000            LD      HL,0
   \   0094  220000            LD      (TimeCount),HL
    107              ///////////////////////////////
    108              //    buffer_f3=input8(0xf3);        //由于外部rtc时间需要用到c0和c1口需要将其使能关闭
    109              //    output8(0xf3,0x00);
    110              //////////////////////////////
    111              for (i = 0; i < 599; i++)
   \   0097  23                INC     HL
   \   0098  23                INC     HL
   \   0099  39                ADD     HL,SP
   \   009A  AF                XOR     A
   \   009B  77                LD      (HL),A
   \   009C  23                INC     HL
   \   009D  77                LD      (HL),A
   \   009E            ?0008:
   \   009E  015782            LD      BC,33367
   \   00A1  2B                DEC     HL
   \   00A2  56                LD      D,(HL)
   \   00A3  23                INC     HL
   \   00A4  66                LD      H,(HL)
   \   00A5  6A                LD      L,D
   \   00A6  3E80              LD      A,128
   \   00A8  AC                XOR     H
   \   00A9  67                LD      H,A
   \   00AA  ED42              SBC     HL,BC
   \   00AC  3024              JR      NC,?0007
   \   00AE            ?0009:
    112              {
    113                  j = 50;
   \   00AE  DD213200          LD      IX,50
   \   00B2            ?0012:
    114                  for (; j > 0; j--)
   \   00B2  DDE5              PUSH    IX
   \   00B4  C1                POP     BC
   \   00B5  210000            LD      HL,0
   \   00B8  F680              OR      128
   \   00BA  ED42              SBC     HL,BC
   \   00BC  E2C000            JP      PO,?0134
   \   00BF  AC                XOR     H
   \   00C0            ?0134:
   \   00C0  F2C700            JP      P,?0011
   \   00C3            ?0013:
    115                  {
    116                      ;
    117                  }
    118              }
   \   00C3  DD2B              DEC     IX
   \   00C5  18EB              JR      ?0012
   \   00C7            ?0011:
   \   00C7  210200            LD      HL,2
   \   00CA  39                ADD     HL,SP
   \   00CB  34                INC     (HL)
   \   00CC  23                INC     HL
   \   00CD  20CF              JR      NZ,?0008
   \   00CF  34                INC     (HL)
   \   00D0  18CC              JR      ?0008
   \   00D2            ?0007:
   \   00D2            ?0016:
    119              //if(!DRV_Install("I2C_SLA.DRV",0)) while(1) {;}
    120          
    121              //clear message queue for make sure delay 0.5s
    122              while (ap_get_message() != 0)
   \   00D2  CD0000            CALL    LWRD ap_get_message
   \   00D5  B7                OR      A
   \   00D6  20FA              JR      NZ,?0007
   \   00D8            ?0017:
   \   00D8            ?0015:
    123              {
    124                  ;
    125              }
    126              ap_sleep(1);
   \   00D8  110100            LD      DE,1
   \   00DB  3E00              LD      A,BYTE3 ap_sleep
   \   00DD  210000            LD      HL,LWRD ap_sleep
   \   00E0  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    127          
    128              res_fp = ResOpen("ui30.res"); //打开资源
   \   00E3  110000            LD      DE,?0018
   \   00E6  3E00              LD      A,BYTE3 ResOpen
   \   00E8  210000            LD      HL,LWRD ResOpen
   \   00EB  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   00EE  220000            LD      (res_fp),HL
    129              ASSERT(res_fp != NULL); //问题报错,DEBUG时有效
    130              //-------安装ud驱动------------
    131              DRV_ActiveUD(0x00, MODE_SLOW);
   \   00F1  0E01              LD      C,1
   \   00F3  1E00              LD      E,0
   \   00F5  CD0000            CALL    LWRD DRV_ActiveUD
    132          
    133              result = VMRead(&F_comval, VM_SYSTEM, sizeof(F_comval)); //读系统变量
   \   00F8  212000            LD      HL,32
   \   00FB  E5                PUSH    HL
   \   00FC  010002            LD      BC,512
   \   00FF  111D00            LD      DE,g_comval
   \   0102  CD0000            CALL    LWRD VMRead
   \   0105  E1                POP     HL
    134              ASSERT(result);
    135              //check if valid
    136              if (F_comval.magic != MAGIC_COMVAL) //第一次读,初始化
   \   0106  21ADDE            LD      HL,57005
   \   0109  ED4B1D00          LD      BC,(g_comval)
   \   010D  A7                AND     A
   \   010E  ED42              SBC     HL,BC
   \   0110  2806              JR      Z,?0020
   \   0112            ?0019:
    137              {
    138                  DUMP_STRING("F_comval init-ed!");
    139                  //COMVAL_INIT(F_comval);
    140                  GetDefaultComval(&F_comval);
   \   0112  111D00            LD      DE,g_comval
   \   0115  CD0000            CALL    LWRD GetDefaultComval
   \   0118            ?0020:
    141              }
    142              ap_message_init(&F_comval); //系统消息(如RTC COUNTER)初始化
   \   0118  111D00            LD      DE,g_comval
   \   011B  3E00              LD      A,BYTE3 ap_message_init
   \   011D  210000            LD      HL,LWRD ap_message_init
   \   0120  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    143              result = VMRead(FMStationTab, VM_AP_RADIO, 80 + sizeof(fm_play_status_t) * 3 + 3); //长度重新计算
   \   0123  216E00            LD      HL,110
   \   0126  E5                PUSH    HL
   \   0127  010020            LD      BC,8192
   \   012A  113D00            LD      DE,FMStationTab
   \   012D  CD0000            CALL    LWRD VMRead
   \   0130  E1                POP     HL
    144              ASSERT(result);
    145              //    BatValue=GetBattery();
    146              {
    147                  BYTE KeyTone_bak;
    148                  KeyTone_bak = F_comval.KeyTone;
   \   0131  3A3A00            LD      A,(g_comval+29)
   \   0134  210700            LD      HL,7
   \   0137  39                ADD     HL,SP
   \   0138  77                LD      (HL),A
    149                  if (F_comval.KeyTone)
   \   0139  B7                OR      A
   \   013A  2804              JR      Z,?0022
   \   013C            ?0021:
    150                  {
    151                      F_comval.KeyTone = 0;
   \   013C  AF                XOR     A
   \   013D  323A00            LD      (g_comval+29),A
   \   0140            ?0022:
    152                      //sKY_Beep(F_comval.KeyTone);
    153                  }
    154                  result = FMdeal(param);
   \   0140  23                INC     HL
   \   0141  5E                LD      E,(HL)
   \   0142  23                INC     HL
   \   0143  56                LD      D,(HL)
   \   0144  3E00              LD      A,BYTE3 FMdeal
   \   0146  21B601            LD      HL,LWRD FMdeal
   \   0149  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   014C  E5                PUSH    HL
   \   014D  FDE1              POP     IY
    155                  F_comval.KeyTone = KeyTone_bak;
   \   014F  210700            LD      HL,7
   \   0152  39                ADD     HL,SP
   \   0153  7E                LD      A,(HL)
   \   0154  323A00            LD      (g_comval+29),A
    156              }
    157              //保存变量
    158              fmSendCommand(MC_BACKUP, (int) &radio_param);
   \   0157  010200            LD      BC,radio_param
   \   015A  1E44              LD      E,68
   \   015C  CD4A00            CALL    LWRD ?0167
    159              if (result == RESULT_RECORD) //截获FM中所有Rec热键录音。
   \   015F  FDE5              PUSH    IY
   \   0161  E1                POP     HL
   \   0162  3E33              LD      A,51
   \   0164  AD                XOR     L
   \   0165  B4                OR      H
   \   0166  2004              JR      NZ,?0024
   \   0168            ?0023:
    160                  result = RESULT_FMREC_START;
   \   0168  FD212200          LD      IY,34
   \   016C            ?0024:
    161              if ((result != RESULT_FMREC_NOSTART) && (result != RESULT_FMREC_START)) //非电台录音退出!for FM record by ccm
   \   016C  FDE5              PUSH    IY
   \   016E  E1                POP     HL
   \   016F  3E23              LD      A,35
   \   0171  AD                XOR     L
   \   0172  B4                OR      H
   \   0173  281A              JR      Z,?0026
   \   0175  3E22              LD      A,34
   \   0177  AD                XOR     L
   \   0178  B4                OR      H
   \   0179  2814              JR      Z,?0026
   \   017B            ?0028:
   \   017B            ?0027:
   \   017B            ?0025:
    162              {
    163                  fmSendCommand(MC_CLOSE, 0);
   \   017B  010000            LD      BC,0
   \   017E  1E02              LD      E,2
   \   0180  CD4A00            CALL    LWRD ?0167
    164                  //Close VCCOUT. by ccm
    165                  //        CloseFMPower();
    166                  CloseFMPower2();
   \   0183  DBC2              IN      A,(194)
   \   0185  CBC7              SET     0,A
   \   0187  D3C2              OUT     (194),A
    167                  CloseFMPower1();
   \   0189  DBC2              IN      A,(194)
   \   018B  CBC7              SET     0,A
   \   018D  D3C2              OUT     (194),A
   \   018F            ?0026:
    168              }
    169              ///////////////////////////////
    170              //由于外部rtc时间需要用到c0和c1口,需要将其使能恢复
    171              //    output8(0xf3,buffer_f3);
    172              //////////////////////////////
    173              VMWrite(FMStationTab, VM_AP_RADIO);
   \   018F  010020            LD      BC,8192
   \   0192  113D00            LD      DE,FMStationTab
   \   0195  CD0000            CALL    LWRD VMWrite
    174              ResClose(res_fp); //资源关闭
   \   0198  ED5B0000          LD      DE,(res_fp)
   \   019C  3E00              LD      A,BYTE3 ResClose
   \   019E  210000            LD      HL,LWRD ResClose
   \   01A1  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    175          
    176              return result;
   \   01A4  FDE5              PUSH    IY
   \   01A6  E1                POP     HL
    177          }
   \   01A7            ?0029:
   \   01A7  EB                EX      DE,HL
   \   01A8  210A00            LD      HL,10
   \   01AB  39                ADD     HL,SP
   \   01AC  F9                LD      SP,HL
   \   01AD  EB                EX      DE,HL
   \   01AE            ?0165:
   \   01AE  DDE1              POP     IX
   \   01B0  FDE1              POP     IY
   \   01B2  C1                POP     BC
   \   01B3  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01B6            FMdeal:
    178          
    179          int FMdeal(int test)
    180          {
   \   01B6  C5                PUSH    BC
   \   01B7  FDE5              PUSH    IY
   \   01B9  DDE5              PUSH    IX
   \   01BB  DD210000          LD      IX,0
   \   01BF  DD39              ADD     IX,SP
   \   01C1  D5                PUSH    DE
   \   01C2  21F4FF            LD      HL,65524
   \   01C5  39                ADD     HL,SP
   \   01C6  F9                LD      SP,HL
    181              int result = 0, key;
    182              char FMBand[3], buf[4] =
    183              { "FM" };
   \   01C7  210600            LD      HL,6
   \   01CA  39                ADD     HL,SP
   \   01CB  EB                EX      DE,HL
   \   01CC  213000            LD      HL,?0030
   \   01CF  010400            LD      BC,4
   \   01D2  EDB0              LDIR
    184              //标志:need_draw,重画 BandSwitch,频段切换 FirstWait,刚进AP
    185              bool need_draw = TRUE, BandSwitch = TRUE, FirstWait = TRUE;
    186              long i;
    187              int k, h;
    188              static char active = 0; //进入菜单的选中号
    189          
    190              if (test == 0xff)
   \   01D4  FD210000          LD      IY,0
   \   01D8  DD36F201          LD      (IX-14),1
   \   01DC  DD36F301          LD      (IX-13),1
   \   01E0  DD36FC01          LD      (IX-4),1

⌨️ 快捷键说明

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