📄 app.inc
字号:
;Macros
;PUSH & POP process in low level interrupt
lpush_all macro
movff STATUS,PREINC1 ;STATUS
movff BSR,PREINC1 ;BSR
movwf PREINC1,0 ;WREG
movff FSR2H,PREINC1 ;FSR2H
movff FSR2L,PREINC1 ;FSR2L
movff FSR0H,PREINC1 ;FSR0H
movff FSR0L,PREINC1 ;FSR0L
movff PRODH,PREINC1 ;PRODH
movff PRODL,PREINC1 ;PRODL
movff TBLPTRU,PREINC1 ;TBLPTRU
movff TBLPTRH,PREINC1 ;TBLPTRH
movff TBLPTRL,PREINC1 ;TBLPTRL
movff TABLAT,PREINC1 ;TABLAT
movff PCLATH,PREINC1 ;PCLATH
movff PCLATU,PREINC1 ;PCLATU
movf POSTINC1,0x01,0 ;FSR1L++
;
;Save 0x2B Registers in BANK-0 from 0x000-0x02A
clrf FSR0H,0
clrf FSR0L,0
movlw SAVE_BANK0_PUSH_NUM
IntPushRegsInBank0:
movff POSTINC0,POSTINC1
decf WREG,0
bnz IntPushRegsInBank0
endm
;===================================================
lpop_all macro
movf POSTDEC1,0x01,0 ;FSR1L--
clrf FSR0H,0
movlw SAVE_BANK0_PUSH_END
movwf FSR0L,0
movlw SAVE_BANK0_PUSH_NUM-1 ;except the last,to avoid under-stack
IntPopRegsInBank0:
movff POSTDEC1,POSTDEC0
decf WREG,0
bnz IntPopRegsInBank0
movff POSTDEC1,INDF0
;
movff POSTDEC1,PCLATU ;PCLATU
movff POSTDEC1,PCLATH ;PCLATH
movff POSTDEC1,TABLAT
movff POSTDEC1,TBLPTRL
movff POSTDEC1,TBLPTRH
movff POSTDEC1,TBLPTRU
movff POSTDEC1,PRODL
movff POSTDEC1,PRODH
movff POSTDEC1,FSR0L
movff POSTDEC1,FSR0H
movff POSTDEC1,FSR2L
movff POSTDEC1,FSR2H
movf POSTDEC1,0x00,0
movff POSTDEC1,BSR
movff POSTDEC1,STATUS
endm
;PUSH & POP process in high level interrupt
;Saved reg: WREG, STATUS, BSR, TABLAT, TBLTRX
;Thus, no local variables can be used in the high level INT
hpush_all macro
movff WREG, WREG_SAVE
movff STATUS, STATUS_SAVE
movff BSR, BSR_SAVE
movff TABLAT, TABLAT_SAVE
movff TBLPTRL, TBLPTRL_SAVE
movff TBLPTRH, TBLPTRH_SAVE
movff TBLPTRU, TBLPTRU_SAVE
;movff PCLATH, PCLATH_SAVE
;movff PCLATU, PCLATU_SAVE
endm
hpop_all macro
;movff PCLATU_SAVE, PCLATU
;movff PCLATH_SAVE, PCLATH
movff TBLPTRU_SAVE, TBLPTRU
movff TBLPTRH_SAVE, TBLPTRH
movff TBLPTRL_SAVE, TBLPTRL
movff TABLAT_SAVE, TABLAT
movff BSR_SAVE, BSR
movff STATUS_SAVE, STATUS
movff WREG_SAVE, WREG
endm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -