rti_test.ds 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. ; This test needs to manually specify IRQs
  2. jmp irq0
  3. jmp irq1
  4. jmp irq2
  5. jmp irq3
  6. jmp irq4
  7. jmp accov_irq
  8. jmp irq6
  9. jmp irq7
  10. incdir "tests"
  11. include "dsp_base_noirq.inc"
  12. test_main:
  13. ; Use the accelerator to generate an IRQ by setting the start and end address to 0
  14. ; This will result in an interrupt on every read
  15. SI @0xffda, #0 ; pred_scale
  16. SI @0xffdb, #0 ; yn1
  17. SI @0xffdc, #0 ; yn2
  18. SI @0xffd1, #0 ; SampleFormat
  19. SI @ACSAH, #0
  20. SI @ACCAH, #0
  21. SI @ACSAL, #0
  22. SI @ACCAL, #0
  23. SI @ACEAH, #0
  24. SI @ACEAL, #0
  25. LRI $AX1.H, #0x0000
  26. LRS $AX0.L, @ARAM ; Trigger interrupt
  27. CALL send_back
  28. LRI $AX1.H, #0x0001
  29. LRS $AX0.L, @ARAM ; Trigger interrupt
  30. CALL send_back
  31. LRI $AX1.H, #0x0000
  32. LRS $AX0.L, @ARAM ; Trigger interrupt
  33. CALL send_back
  34. jmp end_of_test
  35. accov_irq:
  36. ; Restore registers, otherwise no new interrupt will be generated
  37. SI @0xffda, #0 ; pred_scale
  38. SI @0xffdb, #0 ; yn1
  39. SI @0xffdc, #0 ; yn2
  40. TSTAXH $AX1.H
  41. LRI $AX1.L, #0x1111
  42. cw 0x02f4 ; RTINZ if it exists
  43. LRI $AX1.L, #0x2222
  44. cw 0x02f5 ; RTIZ if it exists
  45. LRI $AX1.L, #0x3333
  46. RTI