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

📄 main.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   0361  018D00            LD      BC,FMStatus
   \   0364  1E83              LD      E,131
   \   0366  CD4A00            CALL    LWRD ?0167
    276                      
    277                      if(FMStatus.volume)
   \   0369  DD36FC00          LD      (IX-4),0
   \   036D  3A9300            LD      A,(FMStatus+6)
   \   0370  B7                OR      A
   \   0371  2806              JR      Z,?0059
   \   0373            ?0058:
    278                      fmSendCommand(MC_MUTE, releaseMUTE);
   \   0373  010000            LD      BC,0
   \   0376  CD4800            CALL    LWRD ?0168
   \   0379            ?0059:
   \   0379            ?0057:
    279                  }
    280                  key = ap_get_message();
   \   0379  CD0000            CALL    LWRD ap_get_message
   \   037C  DD77F4            LD      (IX-12),A
   \   037F  0600              LD      B,0
    281                  if (test == 0xff)
   \   0381  3EFF              LD      A,255
   \   0383  DDAEFE            XOR     (IX-2)
   \   0386  DDB6FF            OR      (IX-1)
   \   0389  2004              JR      NZ,?0061
   \   038B            ?0060:
    282                      key = AP_KEY_MODE | AP_KEY_LONG;
   \   038B  DD36F487          LD      (IX-12),135
   \   038F            ?0061:
    283                  switch (key)
   \   038F  DD5EF4            LD      E,(IX-12)
   \   0392  50                LD      D,B
   \   0393  CD0000            CALL    LWRD ?S_V_SWITCH_L06
   \   0396  0A00              DEFW    10
   \   0398  0300              DEFW    3
   \   039A  0400              DEFW    4
   \   039C  1C00              DEFW    28
   \   039E  1D00              DEFW    29
   \   03A0  2100              DEFW    33
   \   03A2  2500              DEFW    37
   \   03A4  2600              DEFW    38
   \   03A6  2700              DEFW    39
   \   03A8  4500              DEFW    69
   \   03AA  4600              DEFW    70
   \   03AC  A706              DEFW    ?0117
   \   03AE  1804              DEFW    ?0069
   \   03B0  2704              DEFW    ?0070
   \   03B2  7704              DEFW    ?0073
   \   03B4  3704              DEFW    ?0071
   \   03B6  5704              DEFW    ?0072
   \   03B8  E605              DEFW    ?0111
   \   03BA  AF02              DEFW    ?0040
   \   03BC  C503              DEFW    ?0064
   \   03BE  0206              DEFW    ?0112
   \   03C0  0206              DEFW    ?0112
   \   03C2            ?0063:
    284                  {
    285                      case AP_MSG_STANDBY:
    286                      //do nothing
    287                      break;
   \   03C2  C3AF02            JP      LWRD ?0040
   \   03C5            ?0064:
    288                      case AP_MSG_RTC: //2HZ中断到来,屏幕重画,为了电池显示更新
    289                      ui_show_batt(GetBattery(), g_comval.BatteryType);
   \   03C5  ED4B2C00          LD      BC,(g_comval+15)
   \   03C9  CD0000            CALL    LWRD GetBattery
   \   03CC  5F                LD      E,A
   \   03CD  3E00              LD      A,BYTE3 ui_show_batt
   \   03CF  210000            LD      HL,LWRD ui_show_batt
   \   03D2  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    290                      if (g_comval.EarProtect_flag)
   \   03D5  3A3500            LD      A,(g_comval+24)
   \   03D8  B7                OR      A
   \   03D9  281B              JR      Z,?0066
   \   03DB            ?0065:
    291                      {
    292                          FMStatus.volume = input8(0x99) & 0x3f;
   \   03DB  DB99              IN      A,(153)
   \   03DD  E63F              AND     63
   \   03DF  329300            LD      (FMStatus+6),A
    293                          FMStatus.vol_display = FMStatus.volume * g_comval.VolumeMax / 31;
   \   03E2  ED4B3C00          LD      BC,(g_comval+31)
   \   03E6  0600              LD      B,0
   \   03E8  50                LD      D,B
   \   03E9  5F                LD      E,A
   \   03EA  CD0000            CALL    LWRD ?S_MUL_L02
   \   03ED  0E1F              LD      C,31
   \   03EF  CD0000            CALL    LWRD ?SS_DIV_L02
   \   03F2  7B                LD      A,E
   \   03F3  329500            LD      (FMStatus+8),A
   \   03F6            ?0066:
    294                      }
    295                      TimeCount++;
   \   03F6  2A0000            LD      HL,(TimeCount)
   \   03F9  23                INC     HL
   \   03FA  220000            LD      (TimeCount),HL
    296                      need_draw = FALSE;
   \   03FD  DD36F200          LD      (IX-14),0
    297                      if (TimeCount >= 100)
   \   0401  016480            LD      BC,32868
   \   0404  78                LD      A,B
   \   0405  AC                XOR     H
   \   0406  67                LD      H,A
   \   0407  ED42              SBC     HL,BC
   \   0409  DAAF02            JP      C,?0040
   \   040C            ?0067:
    298                      {
    299                          need_draw = TRUE;
    300                          TimeCount = 0;
   \   040C  210000            LD      HL,0
   \   040F  220000            LD      (TimeCount),HL
   \   0412  C3B006            JP      LWRD ?0147
   \   0415            ?0068:
    301                      }
    302                      break;
   \   0415  C3AF02            JP      LWRD ?0040
   \   0418            ?0069:
    303                      case AP_KEY_HOLD|AP_KEY_NEXT:
    304                          {    
    305          //                    FMStatus.freq+=1;
    306                              result=SearchHandle(10);
   \   0418  1E0A              LD      E,10
   \   041A  180D              JR      ?0144
   \   041C  210000            LD      HL,LWRD SearchHandle
   \   041F  180D              JR      ?0152
   \   0421  E5                PUSH    HL
   \   0422  FDE1              POP     IY
    307                          }
    308                              break;
   \   0424  C3AF02            JP      LWRD ?0040
   \   0427            ?0070:
    309                      case AP_KEY_HOLD|AP_KEY_PREV:
    310                          {
    311          //                    FMStatus.freq-=1;
    312                              result=SearchHandle(20);
   \   0427  1E14              LD      E,20
   \   0429            ?0144:
   \   0429  3E00              LD      A,BYTE3 SearchHandle
   \   042B  210000            LD      HL,LWRD SearchHandle
   \   042E            ?0152:
   \   042E  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   0431  E5                PUSH    HL
   \   0432  FDE1              POP     IY
    313                          }
    314                              break;
   \   0434  C3AF02            JP      LWRD ?0040
   \   0437            ?0071:
    315                      case AP_KEY_NEXT|AP_KEY_UP:
    316                          {      
    317                              fmSendCommand(MC_STEPGRID,UP);
   \   0437  0E01              LD      C,1
   \   0439  181D              JR      ?0145
   \   043B  3E00              LD      A,BYTE3 fmSendCommand
   \   043D  C3EC05            JP      LWRD ?0146
   \   0440  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    318                              fmSendCommand(MC_GETSTATUS,(int)&FMStatus);
   \   0443  C3EF05            JP      LWRD ?0161
   \   0446  1E83              LD      E,131
   \   0448  C3F405            JP      LWRD ?0156
   \   044B  210000            LD      HL,LWRD fmSendCommand
   \   044E  C3F905            JP      LWRD ?0163
    319                              need_draw=TRUE;
   \   0451  C3B006            JP      LWRD ?0147
    320                          }
    321                              break;
   \   0454  C3AF02            JP      LWRD ?0040
   \   0457            ?0072:
    322                      case AP_KEY_PREV|AP_KEY_UP:
    323                          {        
    324                            fmSendCommand(MC_STEPGRID,DOWN);
   \   0457  48                LD      C,B
   \   0458            ?0145:
   \   0458  1E09              LD      E,9
   \   045A  C3EA05            JP      LWRD ?0154
   \   045D  C3EC05            JP      LWRD ?0146
   \   0460  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    325                            fmSendCommand(MC_GETSTATUS,(int)&FMStatus);
   \   0463  C3EF05            JP      LWRD ?0161
   \   0466  1E83              LD      E,131
   \   0468  C3F405            JP      LWRD ?0156
   \   046B  210000            LD      HL,LWRD fmSendCommand
   \   046E  C3F905            JP      LWRD ?0163
    326                            need_draw=TRUE;
   \   0471  C3B006            JP      LWRD ?0147
    327                          }
    328                      break;
   \   0474  C3AF02            JP      LWRD ?0040
   \   0477            ?0073:
    329          
    330                      case AP_KEY_MODE | AP_KEY_UP:
    331                      menu.active = active;
   \   0477  ED4B0100          LD      BC,(?0031)
   \   047B  42                LD      B,D
   \   047C  ED431400          LD      (menu+2),BC
    332                      menu.total = 6 + 2; //'+1' for FM Record by ccm
   \   0480  210800            LD      HL,8
   \   0483  221200            LD      (menu),HL
    333                      menu.pic_inactive = (WORD *) pic_inactive;
   \   0486  210000            LD      HL,pic_inactive
   \   0489  221600            LD      (menu+4),HL
    334                      menu.pic_active = (WORD *) pic_active;
   \   048C  211000            LD      HL,pic_active
   \   048F  221800            LD      (menu+6),HL
    335                      menu.string = (WORD *) string;
   \   0492  212000            LD      HL,string
   \   0495  221A00            LD      (menu+8),HL
    336                      //menu.string_id=0;                    //多语言修改
    337                      menu.string_id = F_comval.langid; //语言标志的选择
   \   0498  3A2900            LD      A,(g_comval+12)
   \   049B  321C00            LD      (menu+10),A
    338                      ui_auto_update = FALSE; //FALSE时,保证整屏写完再刷新
   \   049E  AF                XOR     A
   \   049F  320000            LD      (ui_auto_update),A
    339                      result = ui_function_menu(&menu, NULL);
   \   04A2  48                LD      C,B
   \   04A3  C5                PUSH    BC
   \   04A4  C5                PUSH    BC
   \   04A5  111200            LD      DE,menu
   \   04A8  3E00              LD      A,BYTE3 ui_function_menu
   \   04AA  210000            LD      HL,LWRD ui_function_menu
   \   04AD  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
   \   04B0  F1                POP     AF
   \   04B1  F1                POP     AF
   \   04B2  E5                PUSH    HL
   \   04B3  FDE1              POP     IY
    340                      ui_auto_update = TRUE; //设置恢复
   \   04B5  3E01              LD      A,1
   \   04B7  320000            LD      (ui_auto_update),A
    341                      need_draw = TRUE;
   \   04BA  DD77F2            LD      (IX-14),A
    342                      //if(result==RESULT_IGNORE)result=0;    //del by ccm
    343                      if (result == RESULT_IGNORE) //按PLAY键和8s超时返回FM收音界面,不执行当前激活的菜单!
   \   04BD  3E30              LD      A,48
   \   04BF  AD                XOR     L
   \   04C0  B4                OR      H
   \   04C1  2007              JR      NZ,?0075
   \   04C3            ?0074:
    344                      {
    345                          result = 0;
   \   04C3  FD210000          LD      IY,0
    346                          break;
   \   04C7  C3AF02            JP      LWRD ?0040
   \   04CA            ?0075:
    347                      }
    348                      if (result != 0)
   \   04CA  7D                LD      A,L
   \   04CB  B4                OR      H
   \   04CC  2806              JR      Z,?0077
   \   04CE            ?0076:
    349                          return result;
   \   04CE  C3D506            JP      LWRD ?0128
   \   04D1  C3D806            JP      LWRD ?0129
   \   04D4            ?0077:
    350                      active = menu.active;
   \   04D4  3A1400            LD      A,(menu+2)
   \   04D7  320100            LD      (?0031),A
    351                      if (menu.active == 0) //电台保存
   \   04DA  2A1400            LD      HL,(menu+2)
   \   04DD  7D                LD      A,L
   \   04DE  B4                OR      H
   \   04DF  201A              JR      NZ,?0079
   \   04E1            ?0078:
    352                      {
    353                          if (fmSendCommand(MC_SAVESTATION, 0) != FALSE)
   \   04E1  1E0B              LD      E,11
   \   04E3  CD4A00            CALL    LWRD ?0167
   \   04E6  2C                INC     L
   \   04E7  2D                DEC     L
   \   04E8  CAAF02            JP      Z,?0040
   \   04EB            ?0080:
    354                          {

⌨️ 快捷键说明

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