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

📄 call_lib.asm

📁 C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码C 代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        
        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 + -