?? api_canary.a51
字號:
NAME API_CANARY;
;*A51**************************************************************************
; FILE_NAME : API_CANARY.a51
;----------------------------------------------------------------------------
; FILE_CREATED_BY : BERTHY JS
; FILE_CREATION_DATE: 14/01/00
;----------------------------------------------------------------------------
; FILE_PURPOSE: low level function for API
;******************************************************************************
PUBLIC API_ERASE_BLOC_8K ;
PUBLIC API_ERASE_BLOC_16K;
PUBLIC API_FULL_CHIP_ERASE;
PUBLIC API_WR_FLASH_CL;
PUBLIC API_RD_HW ;
PUBLIC API_RD_XAF ;
PUBLIC API_RD_FLASH ;
PUBLIC API_LAUNCH_PRG_FLASH;
PUBLIC API_LAUNCH_PRG_FUSE ;
PUBLIC API_LAUNCH_PRG_XAF;
PUBLIC API_LAUNCH_PRG_EEPROM;
PUBLIC API_RD_EEPROM ;
PUBLIC API_WR_EEPROM_CL;
PUBLIC ASM_JMP_DPTR ;
FCON EQU 0D1h
EECON EQU 0D2h
AUXR EQU 08Eh
C_LATCH_SIZE EQU 80h
START SEGMENT CODE
RSEG START
;*****************************************************************************
; FUNCTION_NAME: API_RD_XAF
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_RD_XAF:
MOV FCON, #0FBh ;RAZ field FMOD and select XROW array
Jmp READ_XAF
;*****************************************************************************
; FUNCTION_NAME: API_RD_FLASH
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_RD_FLASH:
Mov FCON, #0F0h ;RAZ field FMOD and select user array
Jmp READ_XAF
;*****************************************************************************
; FUNCTION_NAME: API_RD_HW
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_RD_HW:
Mov FCON, #04h ;RAZ field FMOD and select HW array
READ_XAF:
Clr A
Movc A, @A+DPTR
Mov FCON, #0F0h
Ret
;*****************************************************************************
; FUNCTION_NAME: API_WR_FLASH_CL
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_WR_FLASH_CL:
Mov FCON, #08h ; set bit FPS for access to the column latches
Movx @DPTR, A ; write in column latches
Mov FCON, #00h ; set bit FPS for access to the column latches
Ret
;*****************************************************************************
; FUNCTION_NAME: API_WR_EEPROM_CL
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_WR_EEPROM_CL:
Mov EECON, #02h ; set bit FPS for access to the column latches
Movx @DPTR, A ; write in column latches
Mov EECON, #00h ; set bit FPS for access to the column latches
Ret
;*****************************************************************************
; FUNCTION_NAME: API_RD_EEPROM
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_RD_EEPROM:
Mov EECON, #02h
Movx A, @DPTR
Mov EECON, #00h
Ret
;*****************************************************************************
; FUNCTION_NAME: API_LAUNCH_PRG_EEPROM
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_LAUNCH_PRG_EEPROM:
Mov EECON, #50h
Mov EECON, #0A0h
WAIT_EBUSY:
Mov A, EECON
Jb Acc.0, WAIT_EBUSY
Ret
;*****************************************************************************
; FUNCTION_NAME: API_FULL_CHIP_ERASE
; FUNCTION_NAME: API_ERASE_BLOC_8K
; FUNCTION_NAME: API_ERASE_BLOC_16K
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_ERASE_BLOC_8K:
Mov R0, #40h ; init loop
Jmp FILL_FLASH ;
API_ERASE_BLOC_16K:
Mov R0, #80h ; init loop
Jmp FILL_FLASH ;
API_FULL_CHIP_ERASE:
Mov A, #0FFh
Mov DPH, #000h
Mov DPL, #000h ; Erase BSB
Call API_WR_FLASH_CL
Mov DPL, #001h ; Erase SBV
Call API_WR_FLASH_CL
Mov DPL, #005h ; Erase SSB
Call API_WR_FLASH_CL
Mov DPL, #006h ; Erase BSB
Call API_WR_FLASH_CL
Call API_LAUNCH_PRG_XAF;
Mov DPL, #000h
Mov R0, #000h ; init loop
Jmp FILL_FLASH ;
FILL_FLASH:
Mov A, #0FFh
Mov R1, #C_LATCH_SIZE ;
FILL_C_LATCH:
Call API_WR_FLASH_CL
Inc DPTR ;
Djnz R1, FILL_C_LATCH ;
Call API_LAUNCH_PRG_FLASH;
Djnz R0, FILL_FLASH ;
Ret
;*****************************************************************************
; FUNCTION_NAME: API_LAUNCH_PRG_FUSE
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_LAUNCH_PRG_FUSE:
Mov FCON, #0Ch ;RAZ field FMOD and select HW array
Movx @DPTR, A ; write in column latches
Mov FCON, #54h
Mov FCON, #0A4h
Jmp WAIT_FBUSY
;*****************************************************************************
; FUNCTION_NAME: API_LAUNCH_PRG_XAF
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_LAUNCH_PRG_XAF:
Mov FCON, #52h
Mov FCON, #0A2h
Jmp WAIT_FBUSY
;*****************************************************************************
; FUNCTION_NAME: API_LAUNCH_PRG_FLASH
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_LAUNCH_PRG_FLASH:
Mov FCON, #50h
Mov FCON, #0A0h
WAIT_FBUSY:
Mov A, FCON
Jb ACC.0, WAIT_FBUSY
Mov FCON, #00h
Ret
;*****************************************************************************
; FUNCTION_NAME: ASM_JMP_DPTR
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
ASM_JMP_DPTR:
Clr A
Jmp @A+DPTR
Ret
;*****************************************************************************
; FUNCTION_NAME: API_LAUNCH_PRG_FLASH_PE
;----------------------------------------------------------------------------
; NOTE:
;*****************************************************************************
API_LAUNCH_PRG_FLASH_PE:
Mov FCON, #50h
Mov FCON, #0A0h
WAIT_FBUSY_PE:
Mov A, FCON
Jb ACC.0, WAIT_FBUSY_PE
Mov FCON, #00h
Ret
CSEG at 0FFF3h
Ljmp API_LAUNCH_PRG_FLASH_PE
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -