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

📄 main.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   01E4  3EFF              LD      A,255
   \   01E6  DDAEFE            XOR     (IX-2)
   \   01E9  DDB6FF            OR      (IX-1)
   \   01EC  2003              JR      NZ,?0033
   \   01EE            ?0032:
    191                  need_draw = FALSE;
   \   01EE  DD70F2            LD      (IX-14),B
   \   01F1            ?0033:
    192              //result=0;
    193              if (memcmp(fmdataflag, buf, 2) != 0)
   \   01F1  010200            LD      BC,2
   \   01F4  11A800            LD      DE,fmdataflag
   \   01F7  210600            LD      HL,6
   \   01FA  39                ADD     HL,SP
   \   01FB  CD0000            CALL    LWRD ?MEMCMP_L11
   \   01FE  7D                LD      A,L
   \   01FF  B4                OR      H
   \   0200  CAA902            JP      Z,?0035
   \   0203            ?0034:
    194              {
    195                  for (k = 0; k < 40; k++)
   \   0203  AF                XOR     A
   \   0204  DD77F6            LD      (IX-10),A
   \   0207  DD77F7            LD      (IX-9),A
   \   020A            ?0037:
   \   020A  012880            LD      BC,32808
   \   020D  DD6EF6            LD      L,(IX-10)
   \   0210  DD66F7            LD      H,(IX-9)
   \   0213  78                LD      A,B
   \   0214  AC                XOR     H
   \   0215  67                LD      H,A
   \   0216  ED42              SBC     HL,BC
   \   0218  3019              JR      NC,?0036
   \   021A            ?0038:
    196                  {
    197                      FMStationTab[k] = 0;
   \   021A  DD6EF6            LD      L,(IX-10)
   \   021D  DD66F7            LD      H,(IX-9)
   \   0220  29                ADD     HL,HL
   \   0221  013D00            LD      BC,FMStationTab
   \   0224  09                ADD     HL,BC
   \   0225  AF                XOR     A
   \   0226  77                LD      (HL),A
   \   0227  23                INC     HL
   \   0228  77                LD      (HL),A
   \   0229  DD34F6            INC     (IX-10)
   \   022C  20DC              JR      NZ,?0037
   \   022E  DD34F7            INC     (IX-9)
   \   0231  18D7              JR      ?0037
   \   0233            ?0036:
    198                  }
    199                  memcpy(fmdataflag, buf, 3); //FM BUFFER标志赋初值
   \   0233  010300            LD      BC,3
   \   0236  11A800            LD      DE,fmdataflag
   \   0239  210600            LD      HL,6
   \   023C  39                ADD     HL,SP
   \   023D  EDB0              LDIR
    200                  //US和JP暂存区赋初值
    201                  FMStatusUS.freq=5;          //if USBand Freq(x) = (x-87)*10;for example: f(101.2)=(101.2-87)*10=142
   \   023F  210500            LD      HL,5
   \   0242  229700            LD      (FMStatusUS+1),HL
    202                  FMStatusUS.mode = 0;
   \   0245  AF                XOR     A
   \   0246  329B00            LD      (FMStatusUS+5),A
    203                  FMStatusUS.volume = 24;
   \   0249  3E18              LD      A,24
   \   024B  329C00            LD      (FMStatusUS+6),A
    204                  FMStatusUS.vol_display = (FMStatusUS.volume * g_comval.VolumeMax) / 31;
   \   024E  ED4B3C00          LD      BC,(g_comval+31)
   \   0252  44                LD      B,H
   \   0253  50                LD      D,B
   \   0254  5F                LD      E,A
   \   0255  CD0000            CALL    LWRD ?S_MUL_L02
   \   0258  0E1F              LD      C,31
   \   025A  CD0000            CALL    LWRD ?SS_DIV_L02
   \   025D  7B                LD      A,E
   \   025E  329E00            LD      (FMStatusUS+8),A
    205                  FMStatusUS.station = 0;
   \   0261  AF                XOR     A
   \   0262  329900            LD      (FMStatusUS+3),A
    206                  FMStatusUS.station_count = 0;
   \   0265  329A00            LD      (FMStatusUS+4),A
    207                  FMStatusUS.stereo_status = 1;
   \   0268  3E01              LD      A,1
   \   026A  329D00            LD      (FMStatusUS+7),A
    208                  FMStatusJP.freq=1;
   \   026D  6F                LD      L,A
   \   026E  22A000            LD      (FMStatusJP+1),HL
    209                  FMStatusJP.mode = 1;
   \   0271  32A400            LD      (FMStatusJP+5),A
    210                  FMStatusJP.volume = 24;
   \   0274  3E18              LD      A,24
   \   0276  32A500            LD      (FMStatusJP+6),A
    211                  FMStatusJP.vol_display = (FMStatusJP.volume * g_comval.VolumeMax) / 31;
   \   0279  ED4B3C00          LD      BC,(g_comval+31)
   \   027D  44                LD      B,H
   \   027E  50                LD      D,B
   \   027F  5F                LD      E,A
   \   0280  CD0000            CALL    LWRD ?S_MUL_L02
   \   0283  0E1F              LD      C,31
   \   0285  CD0000            CALL    LWRD ?SS_DIV_L02
   \   0288  7B                LD      A,E
   \   0289  32A700            LD      (FMStatusJP+8),A
    212                  FMStatusJP.station = 0;
   \   028C  AF                XOR     A
   \   028D  32A200            LD      (FMStatusJP+3),A
    213                  FMStatusJP.station_count = 0;
   \   0290  32A300            LD      (FMStatusJP+4),A
    214                  FMStatusJP.stereo_status = 1;
   \   0293  7D                LD      A,L
   \   0294  32A600            LD      (FMStatusJP+7),A
    215                  memcpy(&FMStatus, &FMStatusUS, sizeof(FMStatus));
   \   0297  0E09              LD      C,9
   \   0299  118D00            LD      DE,FMStatus
   \   029C  219600            LD      HL,FMStatusUS
   \   029F  EDB0              LDIR
    216                  output8(0x99, input8(0x99) & 0xC0 | 0x18);
   \   02A1  DB99              IN      A,(153)
   \   02A3  E6C0              AND     192
   \   02A5  F618              OR      24
   \   02A7  D399              OUT     (153),A
   \   02A9            ?0035:
   \   02A9            ?0041:
    217              }
    218          
    219              //clear the message pool  清除“初始化...”过程中按下的键!
    220              while (ap_get_message() != AP_KEY_NULL)
   \   02A9  CD0000            CALL    LWRD ap_get_message
   \   02AC  B7                OR      A
   \   02AD  20FA              JR      NZ,?0035
   \   02AF            ?0042:
    221              {
    222                  ;
    223              }
    224          
    225              while (1)
   \   02AF            ?0040:
   \   02AF            ?0044:
    226              {
    227                  if (BandSwitch) //初始化
   \   02AF  AF                XOR     A
   \   02B0  DDB6F3            OR      (IX-13)
   \   02B3  287E              JR      Z,?0047
   \   02B5            ?0046:
    228                  {
    229                      //initial
    230                      if (FMStatus.mode == 0)
   \   02B5  3A9200            LD      A,(FMStatus+5)
   \   02B8  B7                OR      A
   \   02B9  2007              JR      NZ,?0049
   \   02BB            ?0048:
    231                          radio_param.param1 = FMStationTab;
   \   02BB  213D00            LD      HL,FMStationTab
   \   02BE  1805              JR      ?0137
    232                      else
   \   02C0  1806              JR      ?0050
   \   02C2            ?0049:
    233                          radio_param.param1 = &FMStationTab[20];
   \   02C2  216500            LD      HL,FMStationTab+40
   \   02C5            ?0137:
   \   02C5  220200            LD      (radio_param),HL
   \   02C8            ?0050:
    234                      (fm_play_status_t *) radio_param.param2 = &FMStatus;
   \   02C8  218D00            LD      HL,FMStatus
   \   02CB  220400            LD      (radio_param+2),HL
    235          
    236                      fmSendCommand(MC_RESTORE,(int)&radio_param);
   \   02CE  010200            LD      BC,radio_param
   \   02D1  1E45              LD      E,69
   \   02D3  CD4A00            CALL    LWRD ?0167
    237                      fmSendCommand(MC_SETVOLUME, 0);     //reagan vol =0 for mute pa
   \   02D6  010000            LD      BC,0
   \   02D9  1E40              LD      E,64
   \   02DB  CD4A00            CALL    LWRD ?0167
    238                      if(!fmSendCommand(MC_OPEN,SearchLevel))            //硬件错误提示
   \   02DE  010300            LD      BC,3
   \   02E1  1E01              LD      E,1
   \   02E3  CD4A00            CALL    LWRD ?0167
   \   02E6  2C                INC     L
   \   02E7  2D                DEC     L
   \   02E8  2036              JR      NZ,?0052
   \   02EA            ?0051:
    239                      {
    240                          
    241                          ClearScreen(NULL);
   \   02EA  5D                LD      E,L
   \   02EB  55                LD      D,L
   \   02EC  CD0000            CALL    LWRD ClearScreen
    242                          ResShowMultiString(FMERROR, F_comval.langid, -1, 8);
   \   02EF  0E08              LD      C,8
   \   02F1  C5                PUSH    BC
   \   02F2  0EFF              LD      C,255
   \   02F4  C5                PUSH    BC
   \   02F5  ED4B2900          LD      BC,(g_comval+12)
   \   02F9  119302            LD      DE,659
   \   02FC  3E00              LD      A,BYTE3 ResShowMultiString
   \   02FE  210000            LD      HL,LWRD ResShowMultiString
   \   0301  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0304  F1                POP     AF
   \   0305  F1                POP     AF
    243                          //UpdateScreen(NULL);
    244                          
    245                          
    246                          strcpy(fmdataflag, "  ");
   \   0306  110900            LD      DE,?0053
   \   0309  21A800            LD      HL,fmdataflag
   \   030C  CD0000            CALL    LWRD ?STRCPY_L11
    247                          ap_sleep(3);
   \   030F  110300            LD      DE,3
   \   0312  3E00              LD      A,BYTE3 ap_sleep
   \   0314  210000            LD      HL,LWRD ap_sleep
   \   0317  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    248                          return RESULT_MAIN;
   \   031A  211900            LD      HL,25
    249                      }
   \   031D  C3D806            JP      LWRD ?0129
   \   0320            ?0052:
    250                      
    251                      
    252                          fmSendCommand(MC_PLAY, 0);
   \   0320  010000            LD      BC,0
   \   0323  1E04              LD      E,4
   \   0325  CD4A00            CALL    LWRD ?0167
    253                          
    254                          fmSendCommand(MC_MUTE, SetMUTE);
   \   0328  CD4500            CALL    LWRD ?0169
    255                          
    256                          //fmSendCommand(MC_SETVOLUME, FMStatus.volume);
    257                           
    258                          //fmSendCommand(MC_GETSTATUS, (int) &FMStatus);
    259                          
    260                      BandSwitch = FALSE;
    261                      FirstWait = TRUE;
   \   032B  DD36F300          LD      (IX-13),0
   \   032F  DD36FC01          LD      (IX-4),1
   \   0333            ?0047:
    262                  }
    263          
    264                  if (need_draw) //屏幕重画
   \   0333  AF                XOR     A
   \   0334  DDB6F2            OR      (IX-14)
   \   0337  280C              JR      Z,?0055
   \   0339            ?0054:
    265                  {
    266                      ShowFreqInFM();
   \   0339  3E00              LD      A,BYTE3 ShowFreqInFM
   \   033B  210000            LD      HL,LWRD ShowFreqInFM
   \   033E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    267                      need_draw = FALSE;
   \   0341  DD36F200          LD      (IX-14),0
   \   0345            ?0055:
    268                  }
    269                  if (FirstWait) //初次进入AP等待1.5S释放MUTE(静音)
   \   0345  AF                XOR     A
   \   0346  DDB6FC            OR      (IX-4)
   \   0349  282E              JR      Z,?0059
   \   034B            ?0056:
    270                  {
    271                      FirstWait = FALSE;
    272                      ap_sleep(3);
   \   034B  110300            LD      DE,3
   \   034E  3E00              LD      A,BYTE3 ap_sleep
   \   0350  210000            LD      HL,LWRD ap_sleep
   \   0353  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    273                      //降噪 等FM稳定后打开PA的音量
    274                      fmSendCommand(MC_SETVOLUME, FMStatus.volume);
   \   0356  ED4B9300          LD      BC,(FMStatus+6)
   \   035A  0600              LD      B,0
   \   035C  1E40              LD      E,64
   \   035E  CD4A00            CALL    LWRD ?0167
    275                      fmSendCommand(MC_GETSTATUS, (int) &FMStatus);

⌨️ 快捷键说明

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