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

📄 basal_fmradio.lst

📁 5807收音机模块用于炬力平台
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   0311            ?0091:
    217                             {
    218                                 m_FMPlaystatus.station=k;
   \   0311  DD7EF8            LD      A,(IX-8)
   \   0314  322B00            LD      (m_FMPlaystatus+3),A
    219                                 break;
   \   0317  1804              JR      ?0085
   \   0319            ?0092:
   \   0319            ?0090:
   \   0319  FD23              INC     IY
   \   031B  18B2              JR      ?0086
   \   031D            ?0085:
    220                             }
    221                         }
    222                     }                             
    223                  memcpy((fm_play_status_t *) param, &m_FMPlaystatus, sizeof(fm_play_status_t));
   \   031D  010900            LD      BC,9
   \   0320  DD5EFE            LD      E,(IX-2)
   \   0323  DD56FF            LD      D,(IX-1)
   \   0326            ?0132:
   \   0326  212800            LD      HL,m_FMPlaystatus
   \   0329  180C              JR      ?0121
    224                  break;
   \   032B            ?0093:
    225                  case MC_GETTABLE:
    226                  memcpy((WORD *) param, &m_FMStationTab[0], 20);
   \   032B  011400            LD      BC,20
   \   032E  DD5EFE            LD      E,(IX-2)
   \   0331  DD56FF            LD      D,(IX-1)
   \   0334  210000            LD      HL,m_FMStationTab
   \   0337            ?0121:
   \   0337  EDB0              LDIR
    227                  break;
   \   0339  C30104            JP      LWRD ?0000
   \   033C            ?0094:
    228                  case MC_DELONE:
    229                  if (m_FMPlaystatus.station == 0)
   \   033C  3A2B00            LD      A,(m_FMPlaystatus+3)
   \   033F  B7                OR      A
   \   0340  2005              JR      NZ,?0096
   \   0342            ?0095:
    230                      return FALSE;
   \   0342            ?0128:
   \   0342  2E00              LD      L,0
   \   0344  C30304            JP      LWRD ?0114
   \   0347            ?0096:
    231                  //m_FMStationTab[m_FMPlaystatus.station-1]=0;
    232                  for (k = m_FMPlaystatus.station; k < m_FMPlaystatus.station_count + 1; k++)
   \   0347  DD77F8            LD      (IX-8),A
   \   034A            ?0098:
   \   034A  ED4B2C00          LD      BC,(m_FMPlaystatus+4)
   \   034E  0600              LD      B,0
   \   0350  03                INC     BC
   \   0351  DD6EF8            LD      L,(IX-8)
   \   0354  2600              LD      H,0
   \   0356  F680              OR      128
   \   0358  ED42              SBC     HL,BC
   \   035A  E25E03            JP      PO,?0115
   \   035D  AC                XOR     H
   \   035E            ?0115:
   \   035E  F28203            JP      P,?0097
   \   0361            ?0099:
    233                  {
    234                      m_FMStationTab[k - 1] = m_FMStationTab[k];
   \   0361  DD6EF8            LD      L,(IX-8)
   \   0364  2600              LD      H,0
   \   0366  29                ADD     HL,HL
   \   0367  01FEFF            LD      BC,m_FMStationTab-2
   \   036A  09                ADD     HL,BC
   \   036B  E5                PUSH    HL
   \   036C  DD6EF8            LD      L,(IX-8)
   \   036F  2600              LD      H,0
   \   0371  29                ADD     HL,HL
   \   0372  010000            LD      BC,m_FMStationTab
   \   0375  09                ADD     HL,BC
   \   0376  4E                LD      C,(HL)
   \   0377  23                INC     HL
   \   0378  46                LD      B,(HL)
   \   0379  E1                POP     HL
   \   037A  71                LD      (HL),C
   \   037B  23                INC     HL
   \   037C  70                LD      (HL),B
   \   037D  DD34F8            INC     (IX-8)
   \   0380  18C8              JR      ?0098
   \   0382            ?0097:
    235                  }
    236                  m_FMStationTab[m_FMPlaystatus.station_count - 1] = 0;
   \   0382  2A2C00            LD      HL,(m_FMPlaystatus+4)
   \   0385  2600              LD      H,0
   \   0387  29                ADD     HL,HL
   \   0388  01FEFF            LD      BC,m_FMStationTab-2
   \   038B  09                ADD     HL,BC
   \   038C  AF                XOR     A
   \   038D  77                LD      (HL),A
   \   038E  23                INC     HL
   \   038F  77                LD      (HL),A
    237                  m_FMPlaystatus.station_count--;
   \   0390  212C00            LD      HL,m_FMPlaystatus+4
   \   0393  35                DEC     (HL)
    238                  m_FMPlaystatus.station = 0;
   \   0394            ?0136:
   \   0394  322B00            LD      (m_FMPlaystatus+3),A
    239                  return TRUE;
   \   0397  1868              JR      ?0000
    240                  case MC_DELALL:
   \   0399            ?0101:
    241                  for (i = 0; i < 20; i++)
   \   0399  FD210000          LD      IY,0
   \   039D            ?0103:
   \   039D  011480            LD      BC,32788
   \   03A0  FDE5              PUSH    IY
   \   03A2  E1                POP     HL
   \   03A3  78                LD      A,B
   \   03A4  AC                XOR     H
   \   03A5  67                LD      H,A
   \   03A6  ED42              SBC     HL,BC
   \   03A8  3010              JR      NC,?0102
   \   03AA            ?0104:
    242                  {
    243                      m_FMStationTab[i] = 0;
   \   03AA  FDE5              PUSH    IY
   \   03AC  E1                POP     HL
   \   03AD  29                ADD     HL,HL
   \   03AE  010000            LD      BC,m_FMStationTab
   \   03B1  09                ADD     HL,BC
   \   03B2  AF                XOR     A
   \   03B3  77                LD      (HL),A
   \   03B4  23                INC     HL
   \   03B5  77                LD      (HL),A
   \   03B6  FD23              INC     IY
   \   03B8  18E3              JR      ?0103
   \   03BA            ?0102:
    244                  }
    245                  m_FMPlaystatus.station = 0;
   \   03BA  AF                XOR     A
   \   03BB  322B00            LD      (m_FMPlaystatus+3),A
    246                  m_FMPlaystatus.station_count = 0;
   \   03BE  322C00            LD      (m_FMPlaystatus+4),A
    247                  break;
   \   03C1  183E              JR      ?0000
   \   03C3            ?0106:
    248                  case MC_MUTE: //静音
    249                  BankSwitch(address_24_of(FM_MUTE) >> 16);
   \   03C3  210000            LD      HL,FM_MUTE
   \   03C6  0E00              LD      C,BYTE3 FM_MUTE
   \   03C8  CD2504            CALL    LWRD ?0141
   \   03CB            ?0108:
    250                  while (!(k = FM_MUTE(param)))
   \   03CB  DD5EFE            LD      E,(IX-2)
   \   03CE  CD0000            CALL    LWRD FM_MUTE
   \   03D1  B7                OR      A
   \   03D2  202D              JR      NZ,?0000
   \   03D4            ?0109:
    251                  {
    252                      output8(0x4e, input8(0x4e) | 0x8);
   \   03D4  DB4E              IN      A,(78)
   \   03D6  CBDF              SET     3,A
   \   03D8  D34E              OUT     (78),A
    253                      FM_GetStatus(&d_FMStatus);
   \   03DA  113100            LD      DE,d_FMStatus
   \   03DD  CD0000            CALL    LWRD FM_GetStatus
    254                  }
    255          
    256                  break;
   \   03E0  18E9              JR      ?0108
   \   03E2            ?0107:
   \   03E2            ?0110:
    257                  case MC_CLOSE:
    258                  BankSwitch(address_24_of(FM_Standby) >> 16);
   \   03E2  210000            LD      HL,FM_Standby
   \   03E5  0E00              LD      C,BYTE3 FM_Standby
   \   03E7  CD2504            CALL    LWRD ?0141
    259                     FM_Exit();                //防止退出FM菜单,POP声
   \   03EA  CD0000            CALL    LWRD FM_Exit
    260                     FM_Standby();
   \   03ED  CD0000            CALL    LWRD FM_Standby
    261          //           FM_Exit();
    262                  break;
   \   03F0  180F              JR      ?0000
   \   03F2            ?0111:
    263                  case MC_GETFREQ:
    264                  *(uint *) param = m_FMPlaystatus.freq;
   \   03F2  69                LD      L,C
   \   03F3  60                LD      H,B
   \   03F4            ?0138:
   \   03F4  ED4B2900          LD      BC,(m_FMPlaystatus+1)
   \   03F8  71                LD      (HL),C
   \   03F9  23                INC     HL
   \   03FA  70                LD      (HL),B
    265                  break;
   \   03FB  1804              JR      ?0000
   \   03FD            ?0112:
    266                  case MC_SETFREQ:
    267                  m_FMPlaystatus.freq = param;
   \   03FD  ED432900          LD      (m_FMPlaystatus+1),BC
    268                  break;
   \   0401            ?0113:
    269                  default:
    270                  break;
   \   0401            ?0000:
    271              }
    272          
    273              return TRUE;
   \   0401  2E01              LD      L,1
    274          }
   \   0403            ?0114:
   \   0403  DDF9              LD      SP,IX
   \   0405  DDE1              POP     IX
   \   0407  FDE1              POP     IY
   \   0409  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   040C            ?0140:
   \   040C  0600              LD      B,0
   \   040E  3E10              LD      A,16
   \   0410  CD0000            CALL    LWRD ?SL_RSH_L03
   \   0413  5D                LD      E,L
   \   0414  CD0000            CALL    LWRD BankSwitch
   \   0417  2A2900            LD      HL,(m_FMPlaystatus+1)
   \   041A  29                ADD     HL,HL
   \   041B  29                ADD     HL,HL
   \   041C  29                ADD     HL,HL
   \   041D  29                ADD     HL,HL
   \   041E  29                ADD     HL,HL
   \   041F  29                ADD     HL,HL
   \   0420  011000            LD      BC,16
   \   0423  09                ADD     HL,BC
   \   0424  C9                RET
   \   0425            ?0141:
   \   0425  0600              LD      B,0
   \   0427  3E10              LD      A,16
   \   0429  CD0000            CALL    LWRD ?SL_RSH_L03
   \   042C  5D                LD      E,L
   \   042D  CD0000            CALL    LWRD BankSwitch
   \   0430  C9                RET
    275          
   \   0000                    RSEG    RCODE
   \   0000            m_FMStationTab:
   \   0028                    DEFS    40
   \   0028            m_FMPlaystatus:
   \   0031                    DEFS    9
   \   0031            d_FMStatus:
   \   0034                    DEFS    3
   \   0034            disable_hosc:
   \   0035                    DEFS    1
   \   0035                    END

Errors: none
Warnings: none
Code size: 1073
Constant size: 0
Static variable size: Data(53) Iram(0)

⌨️ 快捷键说明

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