error.s 429 B

1234567891011121314151617181920212223242526272829303132
  1. .sect .text; .sect .rom; .sect .data; .sect .bss
  2. .define .error
  3. .define .Xtrp
  4. ! eax is trap number
  5. ! all registers must be saved
  6. ! because return is possible
  7. ! May only be called with error no's <16
  8. .sect .text
  9. .error:
  10. mov ecx,eax
  11. mov ebx,1
  12. sal ebx,cl
  13. .extern .ignmask
  14. .extern .trp
  15. test ebx,(.ignmask)
  16. jne 2f
  17. call .trp
  18. 2:
  19. ret
  20. .Xtrp:
  21. pusha
  22. cmp eax,16
  23. jge 1f
  24. call .error
  25. popa
  26. ret
  27. 1:
  28. call .trp
  29. popa
  30. ret