assert.s 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. .xdef __assertion_failed
  2. | This file requires the startup exit support.
  3. .xdef __ref_all___save_all_registers
  4. .text
  5. __assertion_failed:
  6. link.w %a6,#-1044
  7. move.l 0xC8,%a2
  8. move.w 16(%a6),(%sp)
  9. move.l 12(%a6),-(%sp)
  10. move.l 8(%a6),-(%sp)
  11. pea .L__assert_fmt
  12. lea -1000(%a6),%a4
  13. move.l %a4,-(%sp)
  14. move.l 332(%a2),%a0 /* sprintf */
  15. jsr (%a0)
  16. move.l 188(%a2),%a0 /* ScrRect */
  17. clr.l %d0
  18. move.b 2(%a0),%d0
  19. swap %d0
  20. move.b 3(%a0),%d0
  21. add.l #0xFFF5FFF1,%d0
  22. move.l %d0,(%sp)
  23. move.l #0xA000A,-(%sp)
  24. move.l 176(%a2),%a0 /* MakeWinRect */
  25. jsr (%a0)
  26. pea .L__assert_ttl
  27. move.w #0x1058,-(%sp)
  28. move.l %a0,-(%sp)
  29. pea -1042(%a6)
  30. move.l 120(%a2),%a0 /* WinOpen */
  31. jsr (%a0)
  32. move.l 4(%a2),%a0
  33. jsr (%a0)
  34. clr.w 4(%sp)
  35. move.l 76(%a2),%a0 /* WinFont */
  36. jsr (%a0)
  37. move.l %a4,4(%sp)
  38. move.l 148(%a2),%a0 /* WinStr */
  39. jsr (%a0)
  40. move.l #0x10008,4(%sp)
  41. move.l 212(%a2),%a0 /* DrawStaticButton */
  42. jsr (%a0)
  43. .L__assert_wkey:
  44. move.l 324(%a2),%a0 /* ngetchx */
  45. jsr (%a0)
  46. cmp.w #13,%d0
  47. jbne .L__assert_wkey
  48. move.l 44(%a2),%a0 /* WinClose */
  49. jsr (%a0)
  50. movea.l __save__sp__:l,%a7
  51. rts
  52. .L__assert_ttl:
  53. .ascii "ASSERTION FAILED"
  54. .word 0
  55. .L__assert_fmt:
  56. .byte 10
  57. .ascii " Condition: %s"
  58. .byte 10,10
  59. .ascii " File: %s Line: %d"
  60. .word 0