home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: AssemPro For Development Amiga Driver / Lowe_AssemProForDevelopmentAmigaDriver.adf / Includes / exec / ables.i next >
Encoding:
Text File  |  1978-06-06  |  2.3 KB  |  101 lines

  1.     IFND EXEC_ABLES_I@
  2. EXEC_ABLES_I@  = 1
  3. ;*********************************************************************
  4. ;
  5. ;   Commodore Amiga -- ROM Operating System Executive Include File
  6. ;
  7. ;*********************************************************************
  8. ;
  9. ;   Source Control:
  10. ;
  11. ;       $Header: ables.i,v 33.1 86/03/30 13:03:48 neil Exp $
  12. ;
  13. ;       $Locker: neil $
  14. ;
  15. ;*********************************************************************
  16.  
  17.     IFND EXEC_TYPES_I@
  18.     INCLUDE "exec/types.i"
  19.     ENDIF
  20.  
  21.     IFND EXEC_EXECBASE_I@
  22.     INCLUDE "exec/execbase.i"
  23.     ENDIF
  24.  
  25.  
  26. ;----------------------------------------------------------------
  27. ;
  28. ;   Interrupt Exclusion Macros
  29. ;
  30. ;----------------------------------------------------------------
  31.  
  32. INT_ABLES   MACRO                       ; externals for dis/enable
  33. ;            XREF    _intena
  34.             ENDM
  35.  
  36.  
  37. DISABLE     MACRO $\1  ; [scratchReg]
  38.             IFND     \1
  39.             MOVE.W  #$04000,_intena     ;(NOT IF_SETCLR)+IF_INTEN
  40.             ADDQ.B  #1,IDNestCnt(A6)
  41.             ELSE
  42.             MOVE.L  4,\1
  43.             MOVE.W  #$04000,_intena     ;(NOT IF_SETCLR)+IF_INTEN
  44.             ADDQ.B  #1,IDNestCnt(\1)
  45.             ENDIF
  46.             ENDM
  47.  
  48.  
  49. ENABLE      MACRO   $\1 ; [scratchReg]
  50.             IFND     \1
  51.             SUBQ.B  #1,IDNestCnt(A6)
  52.             BGE.S   ENABLE\@
  53.             MOVE.W  #$0C000,_intena     ;IF_SETCLR+IF_INTEN
  54. ENABLE\@:
  55.             ELSE
  56.             MOVE.L  4,\1
  57.             SUBQ.B  #1,IDNestCnt(\1)
  58.             BGE.S   ENABLE\@
  59.             MOVE.W  #$0C000,_intena
  60. ENABLE\@:
  61.             ENDIF
  62.             ENDM
  63.  
  64.  
  65. ;----------------------------------------------------------------
  66. ;
  67. ;   Tasking Exclusion Macros
  68. ;
  69. ;----------------------------------------------------------------
  70.  
  71. TASK_ABLES  MACRO
  72. ;           INCLUDE 'execbase.i' for TDNestCnt offset
  73. ;            XREF    _LVOPermit
  74.             ENDM
  75.  
  76.  
  77. FORBID      MACRO   $\1
  78.             IFND     \1
  79.             ADDQ.B  #1,TDNestCnt(A6)
  80.             ELSE
  81.             MOVE.L  4,\1
  82.             ADDQ.B  #1,TDNestCnt(\1)
  83.             ENDIF
  84.             ENDM
  85.  
  86.  
  87. PERMIT      MACRO   $\1
  88.             IFND     \1
  89.             JSR     _LVOPermit(A6)
  90.             ELSE
  91.             MOVE.L  A6,-(SP)
  92.             MOVE.L  4,A6
  93.             JSR     _LVOPermit(A6)
  94.             MOVE.L  (SP)+,A6
  95.             ENDIF
  96.             ENDM
  97.  
  98.     ENDIF
  99.     END
  100.