99 lines
1.8 KiB
OpenEdge ABL
99 lines
1.8 KiB
OpenEdge ABL
IFND EXEC_ABLES_I
|
|
EXEC_ABLES_I SET 1
|
|
**
|
|
** $Filename: exec/ables.i $
|
|
** $Release: 1.3 $
|
|
**
|
|
**
|
|
**
|
|
** (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
|
|
** All Rights Reserved
|
|
**
|
|
|
|
IFND EXEC_TYPES_I
|
|
INCLUDE "exec/types.i"
|
|
ENDC ; EXEC_TYPES_I
|
|
|
|
IFND EXEC_EXECBASE_I
|
|
INCLUDE "exec/execbase.i"
|
|
ENDC ; EXEC_EXECBASE_I
|
|
|
|
|
|
*----------------------------------------------------------------
|
|
*
|
|
* Interrupt Exclusion Macros
|
|
*
|
|
*----------------------------------------------------------------
|
|
|
|
INT_ABLES MACRO * externals for dis/enable
|
|
XREF _intena
|
|
ENDM
|
|
|
|
|
|
DISABLE MACRO * [scratchReg]
|
|
IFC '\1',''
|
|
MOVE.W #$04000,_intena *(NOT IF_SETCLR)+IF_INTEN
|
|
ADDQ.B #1,IDNestCnt(A6)
|
|
ENDC
|
|
IFNC '\1',''
|
|
MOVE.L 4,\1
|
|
MOVE.W #$04000,_intena *(NOT IF_SETCLR)+IF_INTEN
|
|
ADDQ.B #1,IDNestCnt(\1)
|
|
ENDC
|
|
ENDM
|
|
|
|
|
|
ENABLE MACRO * [scratchReg]
|
|
IFC '\1',''
|
|
SUBQ.B #1,IDNestCnt(A6)
|
|
BGE.S ENABLE\@
|
|
MOVE.W #$0C000,_intena *IF_SETCLR+IF_INTEN
|
|
ENABLE\@:
|
|
ENDC
|
|
IFNC '\1',''
|
|
MOVE.L 4,\1
|
|
SUBQ.B #1,IDNestCnt(\1)
|
|
BGE.S ENABLE\@
|
|
MOVE.W #$0C000,_intena
|
|
ENABLE\@:
|
|
ENDC
|
|
ENDM
|
|
|
|
|
|
*----------------------------------------------------------------
|
|
*
|
|
* Tasking Exclusion Macros
|
|
*
|
|
*----------------------------------------------------------------
|
|
|
|
TASK_ABLES MACRO
|
|
* INCLUDE "execbase.i" for TDNestCnt offset
|
|
XREF _LVOPermit
|
|
ENDM
|
|
|
|
|
|
FORBID MACRO
|
|
IFC '\1',''
|
|
ADDQ.B #1,TDNestCnt(A6)
|
|
ENDC
|
|
IFNC '\1',''
|
|
MOVE.L 4,\1
|
|
ADDQ.B #1,TDNestCnt(\1)
|
|
ENDC
|
|
ENDM
|
|
|
|
|
|
PERMIT MACRO
|
|
IFC '\1',''
|
|
JSR _LVOPermit(A6)
|
|
ENDC
|
|
IFNC '\1',''
|
|
MOVE.L A6,-(SP)
|
|
MOVE.L 4,A6
|
|
JSR _LVOPermit(A6)
|
|
MOVE.L (SP)+,A6
|
|
ENDC
|
|
ENDM
|
|
|
|
ENDC ; EXEC_ABLES_I
|