📄 call_lib.asm
字号:
LDY np:PRMBN API_SysWriteValue2B+2
;ASL A
;TAY
LDA np:PRMBN API_SysWriteValue2B+3
STA (zp:?DP0_L00),Y
INY
LDA np:PRMBN API_SysWriteValue2B+4
STA (zp:?DP0_L00),Y
PLA
STA zp:?DP0_L00
PLA
STA zp:?DP0_L00+1
rts
ENDMOD
;***************************************************************************
;* Func: API_SysReadValue2B
;* Input:
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern uint16 API_SysReadValue2B(uint16 RamAdr, uint8 ValueOffset);
MODULE API_SysReadValue2B
PUBLIC API_SysReadValue2B
RSEG APP
DEFFN API_SysReadValue2B(0,0,0,0,32768,0,3,0)
API_SysReadValue2B:
.EXTERN ?DP0_L00
LDA zp:?DP0_L00+1
PHA
LDA zp:?DP0_L00
PHA
LDA np:PRMBN API_SysReadValue2B+0
STA zp:?DP0_L00
LDA np:PRMBN API_SysReadValue2B+1
STA zp:?DP0_L00+1
LDY np:PRMBN API_SysReadValue2B+2
;ASL A
;TAY
LDA (zp:?DP0_L00),Y ;l
PHA
INY
LDA (zp:?DP0_L00),Y ;h
PHA
; PLA
; STA zp:-2,X ; store h
;
; PLA
; STA zp:-1,X ; store l
PLA
STA zp:-1,X ; store h
PLA
STA zp:-2,X ; store l
DEX
DEX
PLA
STA zp:?DP0_L00
PLA
STA zp:?DP0_L00+1
RTS
ENDMOD
;***************************************************************************
;* Func: API_SysWriteValue4B
;* Input:
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern void API_SysWriteValue4B(uint16 RamAdr, uint8 ValueOffset, uint32 Value);
MODULE API_SysWriteValue4B
PUBLIC API_SysWriteValue4B
RSEG APP
DEFFN API_SysWriteValue4B(0,0,0,0,32768,0,7,0)
API_SysWriteValue4B:
.EXTERN ?DP0_L00
LDA zp:?DP0_L00+1
PHA
LDA zp:?DP0_L00
PHA
LDA np:PRMBN API_SysWriteValue4B+0
STA zp:?DP0_L00
LDA np:PRMBN API_SysWriteValue4B+1
STA zp:?DP0_L00+1
LDY np:PRMBN API_SysWriteValue4B+2
LDA np:PRMBN API_SysWriteValue4B+3
STA (zp:?DP0_L00),Y
INY
LDA np:PRMBN API_SysWriteValue4B+4
STA (zp:?DP0_L00),Y
INY
LDA np:PRMBN API_SysWriteValue4B+5
STA (zp:?DP0_L00),Y
INY
LDA np:PRMBN API_SysWriteValue4B+6
STA (zp:?DP0_L00),Y
PLA
STA zp:?DP0_L00
PLA
STA zp:?DP0_L00+1
rts
ENDMOD
;***************************************************************************
;* Func: API_SysReadValue4B
;* Input:
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern uint32 API_SysReadValue4B(uint16 RamAdr, uint8 ValueOffset);
MODULE API_SysReadValue4B
PUBLIC API_SysReadValue4B
RSEG APP
DEFFN API_SysReadValue4B(0,0,0,0,32768,0,3,0)
API_SysReadValue4B:
.EXTERN ?DP0_L00
LDA zp:?DP0_L00+1
PHA
LDA zp:?DP0_L00
PHA
LDA np:PRMBN API_SysReadValue4B+0
STA zp:?DP0_L00
LDA np:PRMBN API_SysReadValue4B+1
STA zp:?DP0_L00+1
LDY np:PRMBN API_SysReadValue4B+2
LDA (zp:?DP0_L00),Y ;ll
STA zp:-4,X ; store ll
INY
LDA (zp:?DP0_L00),Y ;lh
STA zp:-3,X ; store lh
INY
LDA (zp:?DP0_L00),Y ;hl
STA zp:-2,X ; store hl
INY
LDA (zp:?DP0_L00),Y ;hh
STA zp:-1,X ; store hh
DEX
DEX
DEX
DEX
PLA
STA zp:?DP0_L00
PLA
STA zp:?DP0_L00+1
RTS
ENDMOD
;***************************************************************************
;* Func: API_SysPowerOff
;* Input: none
;* Output: none
;*
;* Description: power off
;*
;***************************************************************************
;extern void API_SysPowerOff(void);
MODULE API_SysPowerOff
PUBLIC API_SysPowerOff
RSEG APP
DEFFN API_SysPowerOff(0,0,0,0,32768,0,0,0)
API_SysPowerOff:
phx
jsr pwr_down_process
plx
rts
ENDMOD
;***************************************************************************
;* Func: API_SysGetVolLv
;* Input: none
;* Output: power voltage level
;BAT_VOT_31V: equ 1 ;; 3.1V
;BAT_VOT_32V: equ 2 ;; 3.2V
;BAT_VOT_33V: equ 3 ;; 3.3V
;BAT_VOT_34V: equ 4 ;; 3.4V
;BAT_VOT_35V: equ 5 ;; 3.5V
;BAT_VOT_36V: equ 6 ;; 3.6V
;BAT_VOT_37V: equ 7 ;; 3.7V
;BAT_VOT_38V: equ 8 ;; 3.8V
;BAT_VOT_39V: equ 9 ;; 3.9V
;BAT_VOT_40V: equ 10 ;; 4.0V
;BAT_VOT_41V: equ 11 ;; 4.1V
;BAT_VOT_42V: equ 12 ;; 4.2V
;BAT_VOT_43V: equ 13 ;; 4.3V
;* Description: get voltage level
;*
;***************************************************************************
;extern extern uint8 API_SysGetVolLv(void);
MODULE API_SysGetVolLv
PUBLIC API_SysGetVolLv
RSEG APP
DEFFN API_SysGetVolLv(0,0,0,0,32768,0,0,0)
API_SysGetVolLv:
lda bat_index
; pha
; stz pos_x_l
; stz pos_x_h
; stz pos_y_l
; ;stz pos_y_h
; jsr lcm_char_dbg_hex
; pla
rts
ENDMOD
;***************************************************************************
;* Func: API_SysGetUSBSource
;* Input: none
;* Output: USB source
;*
;* Output: USB source
;* 0 : PC USB on line
;* 1 : USB adapter
;* 2 : PC USB off line
;* 3 : NONE
;* Description:
;*
;***************************************************************************
;extern uint8 API_SysGetUSBSource(void);
MODULE API_SysGetUSBSource
PUBLIC API_SysGetUSBSource
RSEG APP
DEFFN API_SysGetUSBSource(0,0,0,0,32768,0,0,0)
API_SysGetUSBSource:
lda vbus_source
rts
ENDMOD
;.EFUNC ;API_SysGetUSBSource
;***************************************************************************
;* Func: API_SysGetOTPVersion
;* Input: none
;* Output: pointer to version string buffer
;*
;* Description: get OTP version string
;*
;***************************************************************************
;extern void API_SysGetOTPVersion(uint8 *pOTPVerBuf);
MODULE API_SysGetOTPVersion
PUBLIC API_SysGetOTPVersion
RSEG APP
DEFFN API_SysGetOTPVersion(0,0,0,0,32768,0,2,0)
API_SysGetOTPVersion:
phx
SETW par_0,par_1,np:PRMBN API_SysGetOTPVersion+0,np:PRMBN API_SysGetOTPVersion+1
;jsr API_get_otp_ver
_LOAD_API _SA_RD_OTP_VER,API_ID_RD_VER
plx
rts
ENDMOD
;.EFUNC ;API_SysGetOTPVersion
;***************************************************************************
;* Func: API_SysGetOSVersion
;* Input: none
;* Output: pointer to version string buffer
;*
;* Description: get OS version string
;*
;***************************************************************************
;extern void API_SysGetOSVersion(uint8 *pOSVerBuf);
MODULE API_SysGetOSVersion
PUBLIC API_SysGetOSVersion
RSEG APP
DEFFN API_SysGetOSVersion(0,0,0,0,32768,0,2,0)
API_SysGetOSVersion:
phx
SETW par_0,par_1,np:PRMBN API_SysGetOSVersion+0,np:PRMBN API_SysGetOSVersion+1
;jsr API_get_os_ver
_LOAD_API _SA_RD_OS_VER,API_ID_RD_VER
plx
rts
ENDMOD
;.EFUNC ;API_SysGetOSVersion
;***************************************************************************
;* Func: API_SysSetIdleTime
;* Input: idle_sec (1~250 second)
;* Output: none
;*
;* Description: Set idle time for idle event
;*
;***************************************************************************
;extern void API_SysSetIdleTime(uint16 IdleSec);
MODULE API_SysSetIdleTime
PUBLIC API_SysSetIdleTime
RSEG APP
DEFFN API_SysSetIdleTime(0,0,0,0,32768,0,2,0)
API_SysSetIdleTime:
phx
SETB key_idle_timel,np:PRMBN API_SysSetIdleTime+0
SETB key_idle_timeh,np:PRMBN API_SysSetIdleTime+1
jsr reset_key_idle_cnt
plx
rts
ENDMOD
;.EFUNC ;API_SysSetIdleTime
;***************************************************************************
;* Func: API_SysCleanWatchDogTimer
;* Input: none
;* Output: none
;*
;* Description: clean
;*
;***************************************************************************
;extern void API_SysCleanWatchDogTimer(void);
MODULE API_SysCleanWatchDogTimer
PUBLIC API_SysCleanWatchDogTimer
RSEG APP
DEFFN API_SysCleanWatchDogTimer(0,0,0,0,32768,0,0,0)
API_SysCleanWatchDogTimer:
phx
jsr wdt_clr
plx
rts
ENDMOD
;.EFUNC ;API_SysCleanWatchDogTimer
;***************************************************************************
;* Func: API_SysSetHardwareVolume
;* Input: source:
;* 000b: DAC
;* 001b: Line-in 1
;* 010b: Line-in 2
;* 011b: MIC
;* 100b: Mixer
;* 101b: ADC
;* 110b: MICBost
;*
;* volume:
;* Bit[4~0] = 0: 20db, Bit[4~0] = 8: 0db
;* Others:
;* Bit[4~0] = Gain value, Please reference hardware SPEC.
;*
;*
;* Output: none
;*
;* Description: clean
;*
;***************************************************************************
;extern void API_SysSetHardwareVolume(uint8 Source, uint8 Volume);
MODULE API_SysSetHardwareVolume
PUBLIC API_SysSetHardwareVolume
RSEG APP
DEFFN API_SysSetHardwareVolume(0,0,0,0,32768,0,2,0)
API_SysSetHardwareVolume:
phx
asl a
asl a
asl a
asl a
asl a
ora np:PRMBN API_SysSetHardwareVolume+1
; and #00011111b ;sel AI2
; ora #01000000b
tax
jsr MPL_SetHardwareVolume
plx
rts
ENDMOD
;.EFUNC ;API_SysSetHardwareVolume
;***************************************************************************
;* Func: API_SysMixerOutputSelection
;* Input: mixer_output
;* 0001b = MIC enable flag
;* 0010b = Line-in 2 enable flag (FM)
;* 0100b = Line-in 1 enable flag
;* 1000b = DAC enable flag
;*
;*
;* Output: none
;*
;* Description: clean
;*
;***************************************************************************
;extern void API_SysMixerOutputSelection(uint8 MixerOutput);
MODULE API_SysMixerOutputSelection
PUBLIC API_SysMixerOutputSelection
RSEG APP
DEFFN API_SysMixerOutputSelection(0,0,0,0,32768,0,1,0)
API_SysMixerOutputSelection:
phx
tax
jsr MPL_MixerOutputSelection
plx
rts
ENDMOD
;.EFUNC ;API_SysMixerOutputSelection
;***************************************************************************
;* Func: API_SysMPLDataProcessing
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -