Sharp X68000 Disassemblies
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

tree.s 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. ;=============================================
  2. ; Filename tree.x
  3. ;
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 000306 byte(s)
  8. ; Data size 000000 byte(s)
  9. ; Bss size 001276 byte(s)
  10. ; 57 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gtree.lab --overwrite tree.x tree.s
  13. ; DIS version 3.16
  14. ;=============================================
  15. .include inc/doscall.mac
  16. .include inc/iocscall.mac
  17. .include inc/fefunc.mac
  18. .cpu 68000
  19. .text
  20. Start:
  21. lea.l (L00157c),sp
  22. bsr.w L000288
  23. move.l a0,-(sp)
  24. bsr.w L00027a
  25. movea.l (sp)+,a0
  26. bsr.w L0001c4
  27. bsr.w L00009e
  28. clr.w d0
  29. bra.w L0002c2
  30. L000020:
  31. lea.l (L000030,pc),a0
  32. bsr.w L0002e2
  33. move.w #$0001,d0
  34. bra.w L0002c2
  35. L000030:
  36. .dc.b 'X68k Tree v1.01 Copyright 1989 SHARP/Hudson',$0d,$0a
  37. .dc.b '使用法:tree [スイッチ][パス名]',$0d,$0a
  38. .dc.b $09,'/f',$09,'ファイル名も表示する',$0d,$0a,$00,$00
  39. L00009e:
  40. lea.l (L000308),a0
  41. lea.l (L000514),a1
  42. tst.w (L000306)
  43. beq.s L0000ba
  44. cmpi.b #$3a,($0001,a0) ;':'
  45. beq.s L0000c8
  46. L0000ba:
  47. bsr.w L0002c6
  48. add.w #$0061,d0
  49. move.b d0,(a1)+
  50. move.b #$3a,(a1)+ ;':'
  51. L0000c8:
  52. move.b (a0)+,(a1)+
  53. bne.s L0000c8
  54. lea.l (L000514),a0
  55. cmpi.b #$5c,($0002,a0) ;'\'
  56. beq.s L0000e0
  57. moveq.l #$5c,d0 ;'\'
  58. bsr.w L0002ea
  59. L0000e0:
  60. addq.l #2,a0
  61. bsr.w L0002e2
  62. bsr.w L0002f2
  63. subq.l #2,a0
  64. L0000ec:
  65. link.w a6,#-$0036
  66. addq.w #1,(L000512)
  67. lea.l (-$0036,a6),a1
  68. lea.l (L000514),a2
  69. L000100:
  70. tst.b (a2)+
  71. bne.s L000100
  72. move.b #$5c,(-$0001,a2) ;'\'
  73. move.b #$2a,(a2)+ ;'*'
  74. move.b #$2e,(a2)+ ;'.'
  75. move.b #$2a,(a2)+ ;'*'
  76. clr.b (a2)
  77. bsr.w L0002ca
  78. tst.l d0
  79. bmi.s L000158
  80. clr.b (-$0003,a2)
  81. lea.l (L000514),a2
  82. L00012a:
  83. btst.b #$04,($0015,a1)
  84. beq.s L000146
  85. cmpi.b #$2e,($001e,a1) ;'.'
  86. beq.s L000150
  87. bsr.s L000178
  88. bsr.w L0002f2
  89. bsr.s L000162
  90. bsr.s L00019a+$000004
  91. bra.s L000150
  92. L000146:
  93. tst.w (L000510)
  94. beq.s L000150
  95. bsr.s L000162
  96. L000150:
  97. bsr.w L0002da
  98. tst.l d0
  99. bpl.s L00012a
  100. L000158:
  101. subq.w #1,(L000512)
  102. unlk a6
  103. rts
  104. L000162:
  105. bsr.s L000178
  106. moveq.l #$2d,d0 ;'-'
  107. bsr.w L0002ea
  108. lea.l ($001e,a1),a0
  109. bsr.w L0002e2
  110. bsr.w L0002f2
  111. rts
  112. L000178:
  113. move.w #$007c,d0 ;'|'
  114. bsr.w L0002ea
  115. move.w (L000512),d1
  116. subq.w #2,d1
  117. bmi.s L000196
  118. L00018a:
  119. lea.l (L000198,pc),a0
  120. bsr.w L0002e2
  121. dbra.w d1,L00018a
  122. L000196:
  123. rts
  124. L000198:
  125. move.l -(a0),d0
  126. L00019a:
  127. movea.l #$000048e7,a0
  128. ori.w #$204a,-(a0)
  129. L0001a4:
  130. tst.b (a2)+
  131. bne.s L0001a4
  132. subq.l #1,a2
  133. move.l a2,-(sp)
  134. lea.l ($001e,a1),a1
  135. L0001b0:
  136. move.b (a1)+,(a2)+
  137. bne.s L0001b0
  138. clr.b (a2)
  139. bsr.w L0000ec
  140. movea.l (sp)+,a2
  141. clr.b (a2)
  142. movem.l (sp)+,a1-a2
  143. rts
  144. L0001c4:
  145. clr.w (L000306)
  146. clr.b (L000308)
  147. clr.b (L00040c)
  148. L0001d6:
  149. bsr.s L000204
  150. tst.b (a0)
  151. beq.s L0001e2
  152. bsr.s L0001e4
  153. tst.b (a0)
  154. bne.s L0001d6
  155. L0001e2:
  156. rts
  157. L0001e4:
  158. lea.l (L000308),a1
  159. tst.w (a1)
  160. beq.s L0001fa
  161. lea.l (L00040c),a1
  162. tst.w (a1)
  163. bne.w L000020
  164. L0001fa:
  165. bsr.s L000266
  166. addq.w #1,(L000306)
  167. rts
  168. L000204:
  169. bsr.s L00024a
  170. cmp.b #$2d,d0 ;'-'
  171. beq.s L000214
  172. cmp.b #$2f,d0 ;'/'
  173. beq.s L000214
  174. rts
  175. L000214:
  176. addq.l #1,a0
  177. L000216:
  178. move.b (a0),d0
  179. beq.s L000204
  180. cmp.b #$20,d0 ;' '
  181. beq.s L000204
  182. addq.l #1,a0
  183. bsr.s L000254
  184. lea.l (L000238,pc),a1
  185. L000228:
  186. move.w (a1)+,d1
  187. bmi.w L000020
  188. movea.l (a1)+,a2
  189. cmp.b d1,d0
  190. bne.s L000228
  191. jsr (a2)
  192. bra.s L000216
  193. L000238:
  194. .dc.w $0066
  195. .dc.l L000240
  196. .dc.w $ffff
  197. L000240:
  198. move.w #$ffff,(L000510)
  199. rts
  200. L00024a:
  201. cmpi.b #$20,(a0)+ ;' '
  202. beq.s L00024a
  203. move.b -(a0),d0
  204. rts
  205. L000254:
  206. cmp.b #$5b,d0 ;'['
  207. bcc.s L000264
  208. cmp.b #$41,d0 ;'A'
  209. bcs.s L000264
  210. add.b #$20,d0 ;' '
  211. L000264:
  212. rts
  213. L000266:
  214. move.b (a0)+,d0
  215. beq.s L000274
  216. cmp.b #$20,d0 ;' '
  217. beq.s L000274
  218. move.b d0,(a1)+
  219. bra.s L000266
  220. L000274:
  221. subq.l #1,a0
  222. clr.b (a1)+
  223. rts
  224. L00027a:
  225. clr.w (L000510)
  226. clr.w (L000512)
  227. rts
  228. L000288:
  229. adda.l #$00000010,a0
  230. suba.l a0,a1
  231. movem.l a0-a1,-(sp)
  232. DOS _SETBLOCK
  233. L000296:
  234. move.l #$00ffffff,(sp)
  235. DOS _MALLOC
  236. and.l #$00ffffff,d0
  237. move.l d0,(sp)
  238. DOS _MALLOC
  239. tst.l d0
  240. bmi.s L000296
  241. move.l d0,(L000574)
  242. add.l (sp)+,d0
  243. move.l d0,(L000578)
  244. addq.l #4,sp
  245. lea.l ($0001,a2),a0
  246. rts
  247. L0002c2:
  248. move.w d0,-(sp)
  249. DOS _EXIT
  250. L0002c6:
  251. DOS _CURDRV
  252. rts
  253. L0002ca:
  254. move.w #$003f,-(sp) ;'?'
  255. pea.l (a0)
  256. pea.l (a1)
  257. DOS _FILES
  258. lea.l ($000a,sp),sp
  259. rts
  260. L0002da:
  261. pea.l (a1)
  262. DOS _NFILES
  263. addq.l #4,sp
  264. rts
  265. L0002e2:
  266. pea.l (a0)
  267. DOS _PRINT
  268. addq.l #4,sp
  269. rts
  270. L0002ea:
  271. move.w d0,-(sp)
  272. DOS _PUTCHAR
  273. move.w (sp)+,d0
  274. rts
  275. L0002f2:
  276. move.l d0,-(sp)
  277. move.w #$000d,-(sp)
  278. DOS _PUTCHAR
  279. move.w #$000a,(sp)
  280. DOS _PUTCHAR
  281. addq.l #2,sp
  282. move.l (sp)+,d0
  283. rts
  284. .bss
  285. L000306:
  286. .ds.w 1
  287. L000308:
  288. .ds.b 260
  289. L00040c:
  290. .ds.b 260
  291. L000510:
  292. .ds.w 1
  293. L000512:
  294. .ds.w 1
  295. L000514:
  296. .ds.b 96
  297. L000574:
  298. .ds.l 1
  299. L000578:
  300. .ds.b 4100
  301. L00157c:
  302. .end Start