\ 1802exceptions

needs 1802regs
hex

variable dmaout
0 dmaout !
: raise-dma-out  ( -- )
    -1 dmaout ! ;

: lower-dma-out  ( -- )
    0 dmaout ! ;

: dma-out?  ( -- flag )
    dmaout @ ;
inline

variable interrupt
variable nointack
0 interrupt !
-1 nointack !

: raise-interrupt  ( -- )
    -1 interrupt ! ;

: ack-interrupt  ( -- )
    0 nointack ! ;

: lower-interrupt  ( -- )
    0 interrupt ! 
    -1 nointack ! ;

: interrupt?  ( -- flag )
    interrupt @
    if         IE @   nointack @ and
    else    false 
    then ;    
\    IE @ if
\        interrupt @   nointack @  and
\    else
\        0
\    then ;
inline

: reset-exceptions  ( -- )
    0 dmaout !
    0 interrupt !
    -1 nointack ! ;

reset-exceptions


