📄 fm_drv.msa
字号:
/********************************************************************************************
FM module YTS7001 接口函数
writen by Gongjian. for GL3951 S1. 05-1-19
********************************************************************************************/
//为3951准备的汇编与C的转接口
//==================================================================
public FM_Init
public FM_Exit
public FM_SetFreq
public FM_MUTE
public FM_SetAudioMode
public FM_Standby
public FM_Search
public FM_GetStatus
public FM_VolumeSet
extern FM_INIT_Drv
extern FM_EXIT_Drv
extern FM_SETFREQ_Drv
extern FM_SEARCH_Drv
extern FM_SETMUTE_Drv
extern FM_STANDBY_Drv
extern FM_STEREO_Drv
extern FM_GETSTATUS_Drv
extern FM_VolumeSet_Drv
extern FM_result
//==================================================================
RSEG FM_CTRL_D
buffer DEFS 14
//==============================================================
// FM Init
// INPUT PARAMETER:E:band information.1-Japan 0-US
// C:SEEK Judgement Level:0~15
// OUTPUT PARAMETER:A:1-Success;0-Fail.
//==============================================================
FM_Init:
PUSH DE
PUSH HL
LD HL,LWRD buffer
LD A,E //band info.
LD (HL),A
INC HL
LD A,C
LD (HL),A //LEVEL
LD DE,LWRD buffer
CALL LWRD FM_INIT_Drv //Initialization FM
LD A,(LWRD FM_result)
POP HL
POP DE
RET
//==============================================================
// FM Exit
// INPUT PARAMETER:NO.
// OUTPUT PARAMETER:NO.
//==============================================================
FM_Exit:
PUSH AF
CALL LWRD FM_EXIT_Drv //disable bus
POP AF
RET
//==============================================================
// FM Set Frequency
// INPUT PARAMETER:DE:Frequency Value.
// OUTPUT PARAMETER:A:1-success;0-fail.
//==============================================================
FM_SetFreq:
PUSH DE
PUSH HL
LD HL,LWRD buffer //buffer中为频率值,3byte
LD (HL),E
INC HL
LD (HL),D
LD DE,LWRD buffer
CALL LWRD FM_SETFREQ_Drv
LD A,(LWRD FM_result)
POP HL
POP DE
RET
//==============================================================
// FM MUTE
// INPUT PARAMETER:E:1-MUTE;0-OFF.
// OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
FM_MUTE:
PUSH DE
LD A,E
LD DE,LWRD buffer
LD (DE),A
CALL LWRD FM_SETMUTE_Drv
LD A,(LWRD FM_result) //FM_result from Write_Register
POP DE
RET
//==============================================================
// FM SET Audio Mode
// INPUT PARAMETER:E:1-Mono;0-Stereo.
// OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
FM_SetAudioMode:
PUSH DE
LD A,E
LD DE,LWRD buffer
LD (DE),A
CALL LWRD FM_STEREO_Drv
LD A,(LWRD FM_result)
POP DE
RET
//==============================================================
// FM Standby Mode-PE=0
// INPUT PARAMETER:NO
// OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
FM_Standby:
PUSH DE
LD DE,LWRD buffer
LD A,00H
LD (DE),A
CALL LWRD FM_STANDBY_Drv
LD A,(LWRD FM_result)
POP DE
RET
//==============================================================
// FM Auto Search Station
// INPUT PARAMETER:DE:FREQUENCY;
// C:DIRECTION
// OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
FM_Search:
PUSH DE
PUSH HL
LD HL,LWRD buffer //buffer中为频率值,2byte
LD (HL),E
INC HL
LD (HL),D
INC HL
LD A,C
LD (HL),A //Search direct
LD DE,LWRD buffer
CALL LWRD FM_SEARCH_Drv
LD A,(LWRD FM_result)
POP HL
POP DE
RET
//==============================================================
// FM Get Status
// INPUT PARAMETER:DE:BUFFER
// OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
FM_GetStatus:
PUSH DE
LD DE,LWRD buffer
CALL LWRD FM_GETSTATUS_Drv
LD HL,LWRD buffer
POP DE
LD A,(HL)
LD (DE),A
INC DE
INC HL
LD A,(HL)
LD (DE),A
INC HL
INC DE
LD A,(HL)
LD (DE),A
LD A,(LWRD FM_result)
RET
//==============================================================
// FM SET Volume
// INPUT PARAMETER:E:Volume Level.
// OUTPUT PARAMETER:A:1-success;0-Fail
//==============================================================
FM_VolumeSet:
PUSH DE
LD A,E
LD DE,LWRD buffer
LD (DE),A
CALL LWRD FM_VolumeSet_Drv
LD A,(LWRD FM_result)
POP DE
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -