trp.s 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
  2. .sect .text
  3. .define trp~,fat~
  4. .extern trppc~,trpim~,savearea,retar
  5. ! $Id$
  6. fat~:
  7. jsr pc,trp~
  8. jsr pc,EXIT
  9. trp~:
  10. mov r0,-(sp)
  11. mov 04(sp),r0
  12. mov 02(sp),04(sp)
  13. mov (sp),02(sp)
  14. mov r1,(sp)
  15. cmp r0,$020
  16. jhis 0f
  17. mov $01,r1
  18. ashc r0,r1
  19. bit r1,trpim~
  20. bne 8f
  21. 0: mov r2,-(sp)
  22. mov r3,-(sp)
  23. mov r4,-(sp)
  24. movf r0,-(sp)
  25. movf r1,-(sp)
  26. movf r2,-(sp)
  27. movf r3,-(sp)
  28. stfps -(sp)
  29. mov $savearea,r2
  30. mov (r2)+,-(sp)
  31. mov (r2)+,-(sp)
  32. mov (r2)+,-(sp)
  33. mov (r2)+,-(sp)
  34. mov (r2)+,-(sp)
  35. mov (r2)+,-(sp)
  36. mov $retar,r2
  37. mov (r2)+,-(sp)
  38. mov (r2)+,-(sp)
  39. mov (r2)+,-(sp)
  40. mov (r2)+,-(sp)
  41. mov (r2)+,-(sp)
  42. mov (r2)+,-(sp)
  43. mov (r2)+,-(sp)
  44. mov (r2)+,-(sp)
  45. mov r0,-(sp)
  46. mov trppc~,r0
  47. beq 9f
  48. clr trppc~
  49. jsr pc,(r0)
  50. tst (sp)+
  51. mov $retar+020,r2
  52. mov (sp)+,-(r2)
  53. mov (sp)+,-(r2)
  54. mov (sp)+,-(r2)
  55. mov (sp)+,-(r2)
  56. mov (sp)+,-(r2)
  57. mov (sp)+,-(r2)
  58. mov (sp)+,-(r2)
  59. mov (sp)+,-(r2)
  60. mov $savearea+014,r2
  61. mov (sp)+,-(r2)
  62. mov (sp)+,-(r2)
  63. mov (sp)+,-(r2)
  64. mov (sp)+,-(r2)
  65. mov (sp)+,-(r2)
  66. mov (sp)+,-(r2)
  67. ldfps (sp)+
  68. movf (sp)+,r3
  69. movf (sp)+,r2
  70. movf (sp)+,r1
  71. movf (sp)+,r0
  72. mov (sp)+,r4
  73. mov (sp)+,r3
  74. mov (sp)+,r2
  75. 8: mov (sp)+,r1
  76. mov (sp)+,r0
  77. rts pc
  78. 9: mov (sp)+,r0
  79. mov $buf+011,r1
  80. mov $4,r2
  81. 1: mov r0,r3
  82. bic $0177770,r3
  83. bisb r3,-(r1)
  84. ash $-3,r0
  85. sob r2,1b
  86. mov $013,-(sp)
  87. mov $buf,-(sp)
  88. mov $2,-(sp)
  89. jsr pc,WRITE
  90. add $6,sp
  91. jsr pc,EXIT
  92. .sect .data
  93. retar: .space 16
  94. retend:
  95. buf: .ascii "err 00000\n"