URL
https://opencores.org/ocsvn/t400/t400/trunk
Subversion Repositories t400
[/] [t400/] [trunk/] [sw/] [verif/] [include/] [int_macros.inc] - Rev 83
Go to most recent revision | Compare with Previous | Blame | View Log
;; *******************************************************************
;; $Id: int_macros.inc,v 1.3 2006-05-28 13:35:23 arniml Exp $
;;
;; Defines macros for interrupt tests.
;;
;; -------------------------------------------------------------------
;; Save current A, M and C to M(3,15), M(3,14) and M(3,13).
;;
save_a_m_c MACRO
xad 3, 15 ; save A to M(3,15)
x 0 ; save current M
xad 3, 14 ; to M(3,14)
smb 0x0 ; save C
skc ; to M(3,13)
rmb 0x0 ;
x 0 ;
xad 3, 13 ;
ENDM
;; -------------------------------------------------------------------
;; Check SA against specified address
;;
check_sa MACRO addr
;; request nibble 0 of SA
ogi 0x0
inl
;; check this nibble
x 0
clra
IF addr & 0xf <> 0
aisc addr & 0xf
ENDIF
ske
jmp fail
;; request nibble 1 of SA
ogi 0x1
inl
;; check this nibble
x 0
clra
IF addr & 0x0f0 <> 0
aisc (addr >> 4) & 0xf
ENDIF
ske
jmp fail
;; request nibble 2 of SA
ogi 0x2
inl
;; check this nibble
x 0
clra
IF addr & 0xf00 <> 0
aisc (addr >> 8) & 0xf
ENDIF
ske
jmp fail
ENDM
;; -------------------------------------------------------------------
;; Restore C, M and A from M(3,13), M(3,14) and M(3,15)
;;
restore_c_m_a MACRO
xad 3, 13 ; restore C
x 0 ; from M(3,13)
rc ;
skmbz 0x0 ;
sc ;
xad 3, 14 ; restore current M
x 0 ; from M(3,14)
xad 3, 15 ; restore A
ENDM
Go to most recent revision | Compare with Previous | Blame | View Log