Advertisement
heavenriver

ExEsame10.asm

Jun 14th, 2012
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Exercise on slide 10: June 2nd, 2000 exam
  2.  
  3. org 400h
  4. device equ 0h         ;Interrupts CPU every 10 ms, checks if devtemp > maxtemp
  5.                       ;If so, disables device interrupts and sets DMAC to send alarm message
  6.                       ;When transfer is over, enables device and interrupts CPU
  7. devtemp equ 1h        ;Measures temperature
  8. dmac equ 2h           ;DMAC
  9. video equ 3h          ;Video output device, acquires alarm message
  10. buffer equ 0BBBBh     ;Initial memory buffer, alarm starts here
  11. maxtemp equ 400       ;Maximum possible temperature in decimals of °C
  12. code
  13. jsr init
  14. main: jmp main        ;Loops until interrupt
  15. halt
  16. init: start device    ;Initializing routine
  17. start devtemp
  18. setim device
  19. seti
  20. ret
  21. driver 0, 700h
  22. push R0
  23. inb devtemp, R0
  24. cmpb maxtemp, R0      ;Checks if devtemp > maxtemp WARNING: SYNTAX TO BE CHECKED
  25. jn alert              ;If so, sends alarm message to video
  26. pop R0
  27. rti
  28. alert: clrim device   ;Disables device interrupts
  29. outl #512, WC         ;Stars word counter at 512
  30. outl buffer, CAR      ;Starts CAR at current memory buffer
  31. start dmac
  32. setim dmac            ;Enables DMAC interrupt
  33. pop R0
  34. rti
  35. driver 2, 900h
  36. clrim dmac            ;Disables DMAC interrupt
  37. start device
  38. setim device
  39. rti
  40. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement