URL
https://opencores.org/ocsvn/t400/t400/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 176 |
Rev 179 |
;; *******************************************************************
|
;; *******************************************************************
|
;; $Id: test.asm,v 1.2 2006-05-28 19:22:35 arniml Exp $
|
;; $Id: test.asm 179 2009-04-01 19:48:38Z arniml $
|
;;
|
;;
|
;; Checks interrupt on JSR and RET.
|
;; Checks interrupt on JSR and RET.
|
;;
|
;;
|
|
|
;; the cpu type is defined on asl's command line
|
;; the cpu type is defined on asl's command line
|
|
|
include "int_macros.inc"
|
include "int_macros.inc"
|
|
|
org 0x00
|
org 0x00
|
clra
|
clra
|
|
|
int_flag_clear
|
int_flag_clear
|
;; write return instruction identifier to current M
|
;; write return instruction identifier to current M
|
;; ret_instr_230 = 0x01
|
;; ret_instr_230 = 0x01
|
clra
|
clra
|
aisc 0x1
|
aisc 0x1
|
x 0
|
x 0
|
|
|
lei 0x02
|
lei 0x02
|
jmp int_mark_230
|
jmp int_mark_230
|
|
|
org 0x230
|
org 0x230
|
int_mark_230:
|
int_mark_230:
|
nop
|
nop
|
nop
|
nop
|
int_instr_230:
|
int_instr_230:
|
jsr prep_2b0
|
jsr prep_2b0
|
nop
|
nop
|
ret_instr_2b0:
|
ret_instr_2b0:
|
;; check whether interrupt really occured
|
;; check whether interrupt really occured
|
int_flag_check
|
int_flag_check
|
|
|
jmp pass
|
jmp pass
|
|
|
|
|
org 0x290
|
org 0x290
|
jmp fail
|
jmp fail
|
org 0x292
|
org 0x292
|
prep_2b0:
|
prep_2b0:
|
nop
|
nop
|
ret_instr_230:
|
ret_instr_230:
|
;; check whether interrupt really occured
|
;; check whether interrupt really occured
|
int_flag_check
|
int_flag_check
|
|
|
;;
|
;;
|
;; prepare next interrupt
|
;; prepare next interrupt
|
;;
|
;;
|
int_flag_clear
|
int_flag_clear
|
;; write return instruction identifier to current M
|
;; write return instruction identifier to current M
|
;; ret_instr_2b0 = 0x2
|
;; ret_instr_2b0 = 0x2
|
clra
|
clra
|
aisc 0x2
|
aisc 0x2
|
x 0
|
x 0
|
|
|
lei 0x02
|
lei 0x02
|
jp int_mark_2b0
|
jp int_mark_2b0
|
|
|
org 0x2ae
|
org 0x2ae
|
jmp fail
|
jmp fail
|
org 0x2b0
|
org 0x2b0
|
int_mark_2b0:
|
int_mark_2b0:
|
nop
|
nop
|
nop
|
nop
|
int_instr_2b0:
|
int_instr_2b0:
|
ret
|
ret
|
|
|
|
|
;; *******************************************************************
|
;; *******************************************************************
|
;; Interrupt routine
|
;; Interrupt routine
|
;;
|
;;
|
org 0x0fd
|
org 0x0fd
|
jmp fail
|
jmp fail
|
int_routine:
|
int_routine:
|
nop
|
nop
|
save_a_m_c
|
save_a_m_c
|
|
|
int_flag_set
|
int_flag_set
|
|
|
;; access current M of main program
|
;; access current M of main program
|
ldd 3, 14
|
ldd 3, 14
|
x 0
|
x 0
|
skmbz 0x0
|
skmbz 0x0
|
jp check_sa_230
|
jp check_sa_230
|
skmbz 0x1
|
skmbz 0x1
|
jp check_sa_2b0
|
jp check_sa_2b0
|
jmp fail
|
jmp fail
|
|
|
check_sa_230:
|
check_sa_230:
|
check_sa ret_instr_230
|
check_sa ret_instr_230
|
jmp int_finished
|
jmp int_finished
|
check_sa_2b0:
|
check_sa_2b0:
|
check_sa ret_instr_2b0
|
check_sa ret_instr_2b0
|
|
|
int_finished:
|
int_finished:
|
restore_c_m_a
|
restore_c_m_a
|
ret
|
ret
|
;;
|
;;
|
;; *******************************************************************
|
;; *******************************************************************
|
|
|
|
|
org 0x200
|
org 0x200
|
include "int_pass_fail.asm"
|
include "int_pass_fail.asm"
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.