📄 pcanapif.mac
字号:
;-----------------------------------------------------------------------
;
; Definition der im Modul PCANAPIF.A51 ben攖igten Macros
;
; Th. Fischler, 1.11.1990
;
;-----------------------------------------------------------------------
XCHR MACRO REG1, REG2
;; vertauscht den Inhalt von REG2 mit REG1 via A
MOV A, REG2
XCH A, REG1
MOV REG2, A
ENDM
; Das folgende Macro sichert die Register R3 bis R7 in den XDATA-Bereich
; ab X_ADR (INPAGE alloziert)
STORE_REGS MACRO X_ADR
MOV DPTR,#X_ADR
MOV A,R3
MOVX @DPTR,A
INC DPL
MOV A,R4
MOVX @DPTR,A
INC DPL
MOV A,R5
MOVX @DPTR,A
INC DPL
MOV A,R6
MOVX @DPTR,A
INC DPL
MOV A,R7
MOVX @DPTR,A
ENDM
; Das folgende Macro holt die Daten ab X_ADR zur乧k in die Register
; R3 bis R7 (Inpage alloziert)
RESTORE_REGS MACRO X_ADR
MOV DPTR,#X_ADR
MOVX A,@DPTR
MOV R3,A
INC DPL
MOVX A,@DPTR
MOV R4,A
INC DPL
MOVX A,@DPTR
MOV R5,A
INC DPL
MOVX A,@DPTR
MOV R6,A
INC DPL
MOVX A,@DPTR
MOV R7,A
ENDM
; Das folgende Macro setzt den C_ORDER_BUF (Inpage alloziert)
; f乺 die Befehls乥ergabe an den CAN-Task auf.
; ORDER ist der zu 乥ergebende Befehl, MAX_REG ist das gr攕ste R-Register,
; dass 乥ergeben werden muss :
; --> MAX_REG = 5, es werden R3, R4 und R5 乥ergeben
; --> MAX_REG = 0, es werden keine Register 乥ergeben
SETUP_ORDER MACRO ORDER, MAX_REG
MOV DPTR, #C_ORDER_BUF_ORDER
MOV A, #ORDER
MOVX @DPTR, A
INC DPL
IF MAX_REG = 0
CALL os_running_task_id
MOV DPTR, #C_ORDER_BUF_ORDER+1
MOV A, R7
MOVX @DPTR, A
EXITM
ENDIF
INC DPL
MOV A, R3
MOVX @DPTR, A
IF MAX_REG = 1
CALL os_running_task_id
MOV DPTR, #C_ORDER_BUF_ORDER+1
MOV A, R7
MOVX @DPTR, A
EXITM
ENDIF
INC DPL
MOV A, R4
MOVX @DPTR, A
IF MAX_REG = 2
CALL os_running_task_id
MOV DPTR, #C_ORDER_BUF_ORDER+1
MOV A, R7
MOVX @DPTR, A
EXITM
ENDIF
INC DPL
MOV A, R5
MOVX @DPTR, A
IF MAX_REG = 3
CALL os_running_task_id
MOV DPTR, #C_ORDER_BUF_ORDER+1
MOV A, R7
MOVX @DPTR, A
EXITM
ENDIF
INC DPL
MOV A, R6
MOVX @DPTR, A
IF MAX_REG = 4
CALL os_running_task_id
MOV DPTR, #C_ORDER_BUF_ORDER+1
MOV A, R7
MOVX @DPTR, A
EXITM
ENDIF
INC DPL
MOV A, R7
MOVX @DPTR, A
CALL os_running_task_id
MOV DPTR, #C_ORDER_BUF_ORDER+1
MOV A, R7
MOVX @DPTR, A
ENDM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -