fopen.s 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. .file "fopen.c"
  2. #NO_APP
  3. .text
  4. tigcc_compiled.:
  5. #APP
  6. .set _A_LINE,0xA000
  7. .set MT_TEXT,0x8000
  8. .set MT_XREF,0x9000
  9. .set MT_ICON,0xA000
  10. .set MT_CASCADE,0x4000
  11. #NO_APP
  12. .section .rodata.__unalignedstr,"dmu"
  13. .LC0:
  14. .ascii "wa+\0"
  15. .text
  16. .even
  17. .globl fopen
  18. fopen:
  19. lea (-76,%sp),%sp
  20. movm.l #0x1f3e,-(%sp)
  21. move.l %a1,%a6
  22. sub.l %a4,%a4
  23. lea (62,%sp),%a5
  24. move.b (%a1),%d7
  25. clr.w 42(%sp)
  26. move.b 1(%a1),%d0
  27. cmp.b #98,%d0
  28. jbeq .L3
  29. tst.b %d0
  30. jbeq .L2
  31. cmp.b #98,2(%a1)
  32. jbne .L2
  33. .L3:
  34. move.w #1,42(%sp)
  35. .L2:
  36. clr.w %d6
  37. clr.w %d5
  38. clr.b (%a5)
  39. .L4:
  40. addq.l #1,%a5
  41. move.b (%a0)+,%d0
  42. move.b %d0,(%a5)
  43. jbne .L4
  44. #APP
  45. .xdef __ref_all___set_file_in_use_bit
  46. #NO_APP
  47. move.l 200.w,%a0
  48. move.l 384(%a0),%a0
  49. move.l %a5,-(%sp)
  50. jbsr (%a0)
  51. move.l %d0,%d4
  52. clr.w %d0
  53. swap %d0
  54. addq.l #4,%sp
  55. tst.w %d0
  56. jbeq .L7
  57. move.l 200.w,%a0
  58. move.l %d4,-(%sp)
  59. move.l 484(%a0),%a0
  60. jbsr (%a0)
  61. move.l %a0,%a2
  62. move.w 10(%a0),%d0
  63. and.w #-32232,%d0
  64. addq.l #4,%sp
  65. jbeq .L8
  66. move.l 200.w,%a0
  67. pea .LC0
  68. move.l %a6,-(%sp)
  69. move.l 2520(%a0),%a0
  70. jbsr (%a0)
  71. addq.l #8,%sp
  72. moveq.l #0,%d0
  73. cmp.w #0,%a0
  74. jbne .L1
  75. .L8:
  76. move.w 12(%a2),%d5
  77. jbra .L9
  78. .even
  79. .L7:
  80. moveq.l #0,%d0
  81. cmp.b #114,%d7
  82. jbeq .L1
  83. .L9:
  84. move.l 200.w,%a0
  85. pea 20.w
  86. move.l 648(%a0),%a0
  87. jbsr (%a0)
  88. move.l %a0,%a3
  89. addq.l #4,%sp
  90. moveq.l #0,%d0
  91. cmp.w #0,%a0
  92. jbeq .L1
  93. cmp.b #114,%d7
  94. jbeq .L13
  95. cmp.b #97,%d7
  96. jbne .L12
  97. .L13:
  98. moveq.l #1,%d6
  99. tst.w %d5
  100. jbeq .L14
  101. move.l 200.w,%a0
  102. move.w %d5,-(%sp)
  103. move.l 612(%a0),%a0
  104. jbsr (%a0)
  105. move.l %a0,%a4
  106. move.l 200.w,%a0
  107. move.w %d5,-(%sp)
  108. move.l 632(%a0),%a0
  109. jbsr (%a0)
  110. move.l %d0,14(%a3)
  111. addq.l #4,%sp
  112. jbra .L12
  113. .even
  114. .L14:
  115. moveq.l #119,%d7
  116. .L12:
  117. cmp.b #119,%d7
  118. jbne .L16
  119. moveq.l #2,%d6
  120. move.l 200.w,%a0
  121. lea (44,%sp),%a2
  122. move.l %a2,-(%sp)
  123. move.l 1664(%a0),%a0
  124. jbsr (%a0)
  125. #APP
  126. .xdef __ref_all___set_file_in_use_bit
  127. #NO_APP
  128. move.l 200.w,%a0
  129. move.l 368(%a0),%a0
  130. move.l %a5,-(%sp)
  131. jbsr (%a0)
  132. move.l %d0,%d4
  133. clr.w %d0
  134. swap %d0
  135. addq.l #8,%sp
  136. tst.w %d0
  137. seq %d0
  138. move.b %d0,%d3
  139. ext.w %d3
  140. neg.w %d3
  141. move.l 200.w,%a0
  142. move.l %a2,-(%sp)
  143. move.l 1668(%a0),%a0
  144. jbsr (%a0)
  145. addq.l #4,%sp
  146. tst.w %d3
  147. jbne .L17
  148. move.l 200.w,%a0
  149. pea 128.w
  150. move.l 576(%a0),%a0
  151. jbsr (%a0)
  152. move.w %d0,%d5
  153. move.l 200.w,%a0
  154. move.l %d4,-(%sp)
  155. move.l 484(%a0),%a0
  156. jbsr (%a0)
  157. move.w %d5,12(%a0)
  158. addq.l #8,%sp
  159. seq %d0
  160. move.b %d0,%d3
  161. ext.w %d3
  162. neg.w %d3
  163. .L17:
  164. move.l 200.w,%a0
  165. tst.w %d3
  166. jbeq .L18
  167. #APP
  168. .xdef __ref_all___set_file_in_use_bit
  169. #NO_APP
  170. move.l 376(%a0),%a0
  171. move.l %a5,-(%sp)
  172. jbsr (%a0)
  173. move.l 200.w,%a0
  174. move.l %a3,-(%sp)
  175. move.l 652(%a0),%a0
  176. jbsr (%a0)
  177. moveq.l #0,%d0
  178. addq.l #8,%sp
  179. jbra .L1
  180. .even
  181. .L18:
  182. move.l #128,14(%a3)
  183. move.w %d5,-(%sp)
  184. move.l 612(%a0),%a0
  185. jbsr (%a0)
  186. move.l %a0,%a4
  187. addq.l #2,%sp
  188. tst.w 42(%sp)
  189. jbeq .L19
  190. clr.w (%a0)
  191. jbra .L16
  192. .even
  193. .L19:
  194. move.l #327681,(%a0)
  195. move.l #536928256,4(%a0)
  196. .L16:
  197. clr.l %d0
  198. move.w (%a4),%d0
  199. add.l %a4,%d0
  200. tst.w 42(%sp)
  201. jbeq .L21
  202. addq.l #2,%d0
  203. .L21:
  204. cmp.b #97,%d7
  205. jbne .L22
  206. moveq.l #2,%d6
  207. move.l %d0,%a0
  208. jbra .L23
  209. .even
  210. .L22:
  211. lea (2,%a4),%a0
  212. tst.w 42(%sp)
  213. jbne .L23
  214. lea (5,%a4),%a0
  215. .L23:
  216. cmp.l %d0,%a0
  217. jbne .L26
  218. or.w #32,%d6
  219. .L26:
  220. cmp.b #43,1(%a6)
  221. jbeq .L28
  222. cmp.b #43,2(%a6)
  223. jbne .L27
  224. .L28:
  225. or.w #3,%d6
  226. .L27:
  227. tst.w 42(%sp)
  228. jbeq .L29
  229. or.w #64,%d6
  230. .L29:
  231. move.w %d5,8(%a3)
  232. move.l %a4,4(%a3)
  233. move.w %d6,10(%a3)
  234. move.l %a0,(%a3)
  235. clr.w 12(%a3)
  236. move.w #128,18(%a3)
  237. move.l %a3,%d0
  238. .L1:
  239. move.l %d0,%a0
  240. movm.l (%sp)+,#0x7cf8
  241. lea (76,%sp),%sp
  242. rts