📄 call_lib.asm
字号:
_exit:
rts
ENDMOD
;.EFUNC ;API_SysLoadFATLib
;***************************************************************************
;* Func: API_SysInitFATSig
;* Input: none
;* Output: none
;*
;* Description:
;*
;***************************************************************************
;extern void API_SysInitFATSig(void);
MODULE API_SysInitFATSig
PUBLIC API_SysInitFATSig
RSEG APP
DEFFN API_SysInitFATSig(0,0,0,0,32768,0,0,0)
API_SysInitFATSig:
phx
jsr API_init_fat_sig
plx
rts
ENDMOD
;.EFUNC ;API_SysInitFATSig
;***************************************************************************
;* Func: API_SysLoadMediaLib
;* Input: void
;* Output: $A
;*
;* Description: API_SysLoadMediaLib
;*
;***************************************************************************
;uint8 API_SysLoadMediaLib(void)
MODULE API_SysLoadMediaLib
PUBLIC API_SysLoadMediaLib
RSEG APP
DEFFN API_SysLoadMediaLib(0,0,0,0,32768,0,0,0)
API_SysLoadMediaLib:
phx
;jsr API_include_mpl_lib
_LOAD_API _SA_INCLUDE_MPL_LIB,API_ID_INCLUDE_LIB_GP
plx
rts
ENDMOD
;.EFUNC ;API_SysLoadMediaLib
;***************************************************************************
;* Func: API_SysSDCardDetect
;* Input: void
;* Output: $A
;*
;* Description: API_SysSDCardDetect
;*
;***************************************************************************
;uint8 API_SysSDCardDetect(void)
MODULE API_SysSDCardDetect
PUBLIC API_SysSDCardDetect
RSEG APP
DEFFN API_SysSDCardDetect(0,0,0,0,32768,0,0,0)
API_SysSDCardDetect:
phx
jsr SDMMC_CardCheck ;success: return 0 fail:return 0xFF
plx
cmp #0
beq ?_sd_ok
lda #0
bra ?_sd_end
?_sd_ok:
lda #1
?_sd_end:
rts
ENDMOD
;.EFUNC ;API_SysSDCardDetect
;***************************************************************************
;* Func: API_SysRandom
;* Input: max (Maximum 4096)
;* Output: random number (1 ~ max)
;*
;* Description: random generator
;*
;***************************************************************************
;extern uint16 API_SysRandom(uint16 MaxNum);
MODULE API_SysRandom
PUBLIC API_SysRandom
RSEG APP
DEFFN API_SysRandom(0,0,0,0,32768,0,2,0)
API_SysRandom:
LDA np:LOCBN API_SysRandom
LDY np:LOCBN API_SysRandom+1
PHX
JSR API_random_gen
PLX
STA zp:-2,X
STY zp:-1,X
DEX
DEX
RTS
ENDMOD
;.EFUNC ;API_SysRandom
;***************************************************************************
;* Func: API_SysGetOneNumber
;* Input: Value
;* Carry
;* Output:
;*
;* Description: API_SysGetOneNumber
;*
;***************************************************************************
;extern uint8 API_SysGetOneNumber(uint16 Value,uint8 Carry);
MODULE API_SysGetOneNumber
PUBLIC API_SysGetOneNumber
RSEG APP
DEFFN API_SysGetOneNumber(0,0,4,0,32768,0,3,0)
API_SysGetOneNumber:
phx
SETB par_0,np:PRMBN API_SysGetOneNumber+0
SETB par_1,np:PRMBN API_SysGetOneNumber+1
;jsr API_2b_hex2bcd
_LOAD_API _SP_GP2_HEX2BCD,API_ID_GROUP2
sta np:LOCBN API_SysGetOneNumber+0
sty np:LOCBN API_SysGetOneNumber+1
SETB np:LOCBN API_SysGetOneNumber+2,#$0f
stz np:LOCBN API_SysGetOneNumber+3
ldy #0
?_asl_a:
cpy np:PRMBN API_SysGetOneNumber+2
beq ?_and
ASL16n np:LOCBN API_SysGetOneNumber+2,np:LOCBN API_SysGetOneNumber+3,4
iny
bra ?_asl_a
?_and:
lda np:LOCBN API_SysGetOneNumber+0
and np:LOCBN API_SysGetOneNumber+2
sta np:LOCBN API_SysGetOneNumber+2
lda np:LOCBN API_SysGetOneNumber+1
and np:LOCBN API_SysGetOneNumber+3
sta np:LOCBN API_SysGetOneNumber+3
ldy #0
?_lsr_a:
cpy np:PRMBN API_SysGetOneNumber+2
beq ?_exit
LSR16n np:LOCBN API_SysGetOneNumber+2,np:LOCBN API_SysGetOneNumber+3,4
iny
bra ?_lsr_a
?_exit:
lda np:LOCBN API_SysGetOneNumber+2
plx
rts
ENDMOD
;.EFUNC ;API_SysGetOneNumber
;***************************************************************************
;* Func: API_DebugShowAddress
;* Input: Ptr - pointer
;* Output: none
;*
;* Description: API_DebugShowAddress
;*
;***************************************************************************
;extern uint8 API_DebugShowAddress(uint8 *Ptr);
PUBLIC API_DebugShowAddress
DEFFN API_DebugShowAddress(0,0,0,0,32768,0,2,0)
API_DebugShowAddress:
phx
lda np:PRMBN API_DebugShowAddress
jsr lcm_char_dbg_hex
lda np:PRMBN API_DebugShowAddress+1
jsr lcm_char_dbg_hex
plx
rts
;.EFUNC ;API_DebugShowAddress
;***************************************************************************
;* Func: API_SysSaveValue
;* RFDlStrOffPs[hl:ll] - start sector
;* [$X:$A] - source addr
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern uint8 API_SysSaveValue(uint16 RamAdr, uint32 NandAdr);
MODULE API_SysSaveValue
PUBLIC API_SysSaveValue
RSEG APP
DEFFN API_SysSaveValue(0,0,0,0,32768,0,6,0)
API_SysSaveValue:
phx
php
;SETB RFDlStrSechl,np:PRMBN API_SysSaveValue+4 ;H
;SETB RFDlStrSeclh,np:PRMBN API_SysSaveValue+3 ;M
;SETB RFDlStrSecll,np:PRMBN API_SysSaveValue+2 ;L
SETB RFDlStrOffPshl,np:PRMBN API_SysSaveValue+4 ;H
SETB RFDlStrOffPslh,np:PRMBN API_SysSaveValue+3 ;M
SETB RFDlStrOffPsll,np:PRMBN API_SysSaveValue+2 ;L
;SETW RFDlAdrl,RFDlAdrh,np:PRMBN API_SysSaveValue+0,np:PRMBN API_SysSaveValue+1
LDA np:PRMBN API_SysSaveValue+0
LDX np:PRMBN API_SysSaveValue+1
;jsr FTL_SectorWrite
jsr WrMcuCodeToFlash
tya
plp
plx
rts
ENDMOD
;***************************************************************************
;* Func: API_SysLoadValue
;* Input:
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern uint8 API_SysLoadValue(uint32 NandAdr, uint16 RamAdr, uint8 Amount);
MODULE API_SysLoadValue
PUBLIC API_SysLoadValue
RSEG APP
DEFFN API_SysLoadValue(0,0,0,0,32768,0,7,0)
API_SysLoadValue:
phx
php
; SETB RFDlStrSecll,np:PRMBN API_SysLoadValue+0
; SETB RFDlStrSeclh,np:PRMBN API_SysLoadValue+1
; SETB RFDlStrSechl,np:PRMBN API_SysLoadValue+2
SETB RFDlStrOffPsll,np:PRMBN API_SysLoadValue+0
SETB RFDlStrOffPslh,np:PRMBN API_SysLoadValue+1
SETB RFDlStrOffPshl,np:PRMBN API_SysLoadValue+2
SETB RFDlSzRBl,np:PRMBN API_SysLoadValue+6
stz RFDlSzRBh
;stz RFDlSzPS
LDY #0
;SETW RFDlAdrl,RFDlAdrh,np:PRMBN API_SysLoadValue+4,np:PRMBN API_SysLoadValue+5
LDA np:PRMBN API_SysLoadValue+4
LDX np:PRMBN API_SysLoadValue+5
JSR RdMcuCodeFromFlash
plp
plx
rts
ENDMOD
;***************************************************************************
;* Func: API_SysLoadValueEX
;* Input:
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern uint8 API_SysLoadValueEX(uint32 NandAdr, uint16 RamAdr, uint16 Amount);
MODULE API_SysLoadValueEX
PUBLIC API_SysLoadValueEX
RSEG APP
DEFFN API_SysLoadValueEX(0,0,0,0,32768,0,7,0)
API_SysLoadValueEX:
phx
php
;source
; SETB RFDlStrSecll,np:PRMBN API_SysLoadValueEX+0
; SETB RFDlStrSeclh,np:PRMBN API_SysLoadValueEX+1
; SETB RFDlStrSechl,np:PRMBN API_SysLoadValueEX+2
SETB RFDlStrOffPsll,np:PRMBN API_SysLoadValueEX+0
SETB RFDlStrOffPslh,np:PRMBN API_SysLoadValueEX+1
SETB RFDlStrOffPshl,np:PRMBN API_SysLoadValueEX+2
;remain high bytes
lda np:PRMBN API_SysLoadValueEX+7
and #$01
sta RFDlSzRBh
;remain low byte
SETB RFDlSzRBl,np:PRMBN API_SysLoadValueEX+6
;amount/512 = high byte/2 = partial sector
;SETB RFDlSzPS,np:PRMBN API_SysLoadValueEX+7
;lsr RFDlSzPS
LSR np:PRMBN API_SysLoadValueEX+7
LDY np:PRMBN API_SysLoadValueEX+7
;destination
;SETW RFDlAdrl,RFDlAdrh,np:PRMBN API_SysLoadValueEX+4,np:PRMBN API_SysLoadValueEX+5
LDA np:PRMBN API_SysLoadValueEX+4
LDX np:PRMBN API_SysLoadValueEX+5
JSR RdMcuCodeFromFlash
plp
plx
rts
ENDMOD
;***************************************************************************
;* Func: API_SysWriteValue
;* Input:
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern void API_SysWriteValue(uint16 RamAdr, uint8 ValueOffset, uint8 Value);
MODULE API_SysWriteValue
PUBLIC API_SysWriteValue
RSEG APP
DEFFN API_SysWriteValue(0,0,0,0,32768,0,4,0)
API_SysWriteValue:
.EXTERN ?DP0_L00
LDA zp:?DP0_L00+1
PHA
LDA zp:?DP0_L00
PHA
LDA np:PRMBN API_SysWriteValue+0
STA zp:?DP0_L00
LDA np:PRMBN API_SysWriteValue+1
STA zp:?DP0_L00+1
LDY np:PRMBN API_SysWriteValue+2
LDA np:PRMBN API_SysWriteValue+3
STA (zp:?DP0_L00),Y
PLA
STA zp:?DP0_L00
PLA
STA zp:?DP0_L00+1
rts
; phx
;
; ldx np:PRMBN API_SysWriteValue+3
; lda np:PRMBN API_SysWriteValue+2
; sta np:PRMBN API_SysWriteValue+0,x
;
; plx
; rts
ENDMOD
;***************************************************************************
;* Func: API_SysReadValue
;* Input:
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern uint8 API_SysReadValue(uint16 RamAdr, uint8 ValueOffset);
MODULE API_SysReadValue
PUBLIC API_SysReadValue
RSEG APP
DEFFN API_SysReadValue(0,0,0,0,32768,0,3,0)
API_SysReadValue:
.EXTERN ?DP0_L00
LDA zp:?DP0_L00+1
PHA
LDA zp:?DP0_L00
PHA
LDA np:PRMBN API_SysReadValue+0
STA zp:?DP0_L00
LDA np:PRMBN API_SysReadValue+1
STA zp:?DP0_L00+1
LDY np:PRMBN API_SysReadValue+2
LDA (zp:?DP0_L00),Y
STA np:PRMBN API_SysReadValue+2 ;save value into np:PRMBN API_SysReadValue+2
PLA
STA zp:?DP0_L00
PLA
STA zp:?DP0_L00+1
LDA np:PRMBN API_SysReadValue+2
rts
ENDMOD
;***************************************************************************
;* Func: API_SysWriteValue2B
;* Input:
;* Output:
;*
;* Description:
;*
;***************************************************************************
;extern void API_SysWriteValue2B(uint16 RamAdr, uint8 ValueOffset, uint16 Value);
MODULE API_SysWriteValue2B
PUBLIC API_SysWriteValue2B
RSEG APP
DEFFN API_SysWriteValue2B(0,0,0,0,32768,0,5,0)
API_SysWriteValue2B:
.EXTERN ?DP0_L00
LDA zp:?DP0_L00+1
PHA
LDA zp:?DP0_L00
PHA
LDA np:PRMBN API_SysWriteValue2B+0
STA zp:?DP0_L00
LDA np:PRMBN API_SysWriteValue2B+1
STA zp:?DP0_L00+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -