    IFND EXEC_ABLES_I
EXEC_ABLES_I  SET 1
**********************************************************************
*
*   Commodore Amiga -- ROM Operating System Executive Include File
*
**********************************************************************
*
*   Source Control:
*
*   $Header: ables.i,v 1.0 85/08/28 15:05:30 carl Exp $
*
*   $Locker:  $
*
**********************************************************************

    IFND EXEC_TYPES_I
    INCLUDE "exec/types.i"
    ENDC

    IFND EXEC_EXECBASE_I
    INCLUDE "exec/execbase.i"
    ENDC


*----------------------------------------------------------------
*
*   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
            ADDQ.B  #1,TDNestCnt(A6)
       ENDM


PERMIT      MACRO
       JSR       _LVOPermit(A6)
       ENDM

    ENDC
