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.

where.s 7.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  1. ;=============================================
  2. ; Filename where.x
  3. ;
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 000410 byte(s)
  8. ; Data size 00015c byte(s)
  9. ; Bss size 00106c byte(s)
  10. ; 83 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gwhere.lab --overwrite where.x where.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 (L0015d6),sp
  22. clr.b (L000ae4)
  23. clr.b (L000ae5)
  24. movea.l (Start-$0000e0),a0
  25. addq.l #1,a0
  26. lea.l (L00056c),a1
  27. lea.l (L000684),a2
  28. bsr.w L0002ba
  29. cmp.l #$00000001,d0
  30. bne.w L000204
  31. lea.l (L000684),a0
  32. L00003a:
  33. tst.b (a0)
  34. beq.s L000068
  35. bsr.w L0003ca
  36. L000042:
  37. move.b (a0)+,d0
  38. beq.s L00003a
  39. cmp.b #$66,d0 ;'f'
  40. beq.s L00005e
  41. cmp.b #$61,d0 ;'a'
  42. bne.w L000204
  43. move.b #-$01,(L000ae4)
  44. bra.s L000042
  45. L00005e:
  46. move.b #-$01,(L000ae5)
  47. bra.s L000042
  48. L000068:
  49. clr.w d4
  50. move.b #$19,d5
  51. clr.b d6
  52. lea.l (L00056c),a1
  53. cmpi.b #$3a,($0001,a1) ;':'
  54. beq.s L00008a
  55. tst.b (L000ae4)
  56. bne.s L0000a0
  57. DOS _CURDRV
  58. bra.s L00009c
  59. L00008a:
  60. move.b (a1),d0
  61. or.b #$20,d0
  62. sub.b #$61,d0 ;'a'
  63. cmp.b #$19,d0
  64. bhi.w L000216
  65. L00009c:
  66. move.b d0,d4
  67. move.b d0,d5
  68. L0000a0:
  69. lea.l (L00056c),a0
  70. bsr.w L000386
  71. movea.l a0,a1
  72. lea.l (L00079c),a0
  73. bsr.w L000366
  74. lea.l (L00056c),a0
  75. bsr.w L000386
  76. clr.b (a0)
  77. lea.l (L00056c),a1
  78. cmpi.b #$3a,($0001,a1) ;':'
  79. bne.s L0000d2
  80. addq.l #2,a1
  81. L0000d2:
  82. lea.l (L0008b4),a0
  83. bsr.w L000366
  84. lea.l (L00079c),a0
  85. tst.b (a0)
  86. bne.s L0000ec
  87. move.b #$2a,(a0)+ ;'*'
  88. clr.b (a0)
  89. L0000ec:
  90. lea.l (L00079c),a0
  91. L0000f2:
  92. move.b (a0),d0
  93. beq.s L000100
  94. cmp.b #$2e,d0 ;'.'
  95. beq.s L00010a
  96. addq.l #1,a0
  97. bra.s L0000f2
  98. L000100:
  99. move.b #$2e,(a0)+ ;'.'
  100. move.b #$2a,(a0)+ ;'*'
  101. clr.b (a0)
  102. L00010a:
  103. lea.l (L0008b4),a0
  104. tst.b (a0)
  105. bne.s L00011a
  106. move.b #$5c,(a0)+ ;'\'
  107. clr.b (a0)
  108. L00011a:
  109. lea.l (L0009cc),a0
  110. move.b d4,d0
  111. add.b #$61,d0 ;'a'
  112. move.b d0,(a0)+
  113. move.b #$3a,(a0)+ ;':'
  114. lea.l (L0008b4),a1
  115. bsr.w L000366
  116. move.w d4,d0
  117. addq.w #1,d0
  118. move.w d0,-(sp)
  119. DOS _DRVCTRL
  120. addq.l #2,sp
  121. tst.l d0
  122. bmi.s L000170
  123. btst.l #$02,d0
  124. bne.s L00015a
  125. move.b d4,d0
  126. add.b #$61,d0 ;'a'
  127. move.b d0,(L0009cc)
  128. bsr.s L00018a
  129. bra.s L000170
  130. L00015a:
  131. move.b d4,d0
  132. add.b #$61,d0 ;'a'
  133. move.w d0,-(sp)
  134. DOS _PUTCHAR
  135. addq.l #2,sp
  136. pea.l (L000533)
  137. DOS _PRINT
  138. addq.l #4,sp
  139. L000170:
  140. addq.b #1,d4
  141. cmp.b d5,d4
  142. bls.s L00011a
  143. tst.b d6
  144. bne.s L000184
  145. pea.l (L00054d)
  146. DOS _PRINT
  147. addq.l #4,sp
  148. L000184:
  149. clr.w d0
  150. L000186:
  151. move.w d0,-(sp)
  152. DOS _EXIT2
  153. L00018a:
  154. link.w a6,#-$003c
  155. lea.l (L000bae),a0
  156. cmpa.l a0,sp
  157. bcs.w L00021e
  158. lea.l (L0009cc),a0
  159. bsr.w L000374
  160. adda.l d0,a0
  161. move.l a0,-(sp)
  162. clr.b (a0)
  163. bsr.w L000230
  164. movea.l (sp),a0
  165. lea.l (L000410),a1
  166. bsr.w L000366
  167. move.w #$0010,-(sp)
  168. pea.l (L0009cc)
  169. pea.l (-$003c,a6)
  170. DOS _FILES
  171. lea.l ($000a,sp),sp
  172. tst.l d0
  173. bmi.s L0001fc
  174. L0001d2:
  175. lea.l (-$001e,a6),a1
  176. cmpi.b #$2e,(a1) ;'.'
  177. beq.s L0001f0
  178. movea.l (sp),a0
  179. bsr.w L000366
  180. bsr.w L000374
  181. adda.l d0,a0
  182. move.b #$5c,(a0)+ ;'\'
  183. clr.b (a0)
  184. bsr.s L00018a
  185. L0001f0:
  186. pea.l (-$003c,a6)
  187. DOS _NFILES
  188. addq.l #4,sp
  189. tst.l d0
  190. bpl.s L0001d2
  191. L0001fc:
  192. movea.l (sp)+,a0
  193. clr.b (a0)
  194. unlk a6
  195. rts
  196. L000204:
  197. pea.l (L000414)
  198. DOS _PRINT
  199. addq.l #4,sp
  200. move.w #$0001,d0
  201. bra.w L000186
  202. L000216:
  203. pea.l (L000513)
  204. bra.s L000224
  205. L00021e:
  206. pea.l (L0004e5)
  207. L000224:
  208. DOS _PRINT
  209. addq.l #4,sp
  210. move.w #$0002,d0
  211. bra.w L000186
  212. L000230:
  213. link.w a6,#-$003c
  214. clr.b d3
  215. lea.l (L0009cc),a0
  216. bsr.w L000374
  217. adda.l d0,a0
  218. move.l a0,-(sp)
  219. lea.l (L00079c),a1
  220. bsr.w L000366
  221. move.w #$0021,-(sp) ;'!'
  222. pea.l (L0009cc)
  223. pea.l (-$003c,a6)
  224. DOS _FILES
  225. lea.l ($000a,sp),sp
  226. tst.l d0
  227. bmi.s L0002b4
  228. L000266:
  229. move.b (-$0027,a6),d0
  230. and.b #$18,d0
  231. bne.s L0002a8
  232. tst.b (L000ae5)
  233. beq.s L000284
  234. lea.l (-$001e,a6),a1
  235. movea.l (sp),a0
  236. bsr.w L000366
  237. bra.s L000290
  238. L000284:
  239. tst.b d3
  240. bne.s L0002a4
  241. move.b #-$01,d3
  242. movea.l (sp),a0
  243. clr.b (a0)
  244. L000290:
  245. pea.l (L0009cc)
  246. DOS _PRINT
  247. addq.l #4,sp
  248. pea.l (L000569)
  249. DOS _PRINT
  250. addq.l #4,sp
  251. L0002a4:
  252. move.b #-$01,d6
  253. L0002a8:
  254. pea.l (-$003c,a6)
  255. DOS _NFILES
  256. addq.l #4,sp
  257. tst.l d0
  258. bpl.s L000266
  259. L0002b4:
  260. movea.l (sp)+,a0
  261. unlk a6
  262. rts
  263. L0002ba:
  264. movem.l d1/a0-a2,-(sp)
  265. clr.l d1
  266. L0002c0:
  267. bsr.w L00034c
  268. adda.l d0,a0
  269. tst.b (a0)
  270. beq.s L00033c
  271. move.b (a0)+,d0
  272. cmp.b #$2d,d0 ;'-'
  273. beq.s L0002d8
  274. cmp.b #$2f,d0 ;'/'
  275. bne.s L0002ee
  276. L0002d8:
  277. move.b (a0)+,d0
  278. beq.s L00033c
  279. cmp.b #$09,d0
  280. beq.s L0002ea
  281. cmp.b #$20,d0 ;' '
  282. beq.s L0002ea
  283. move.b d0,(a2)+
  284. L0002ea:
  285. clr.b (a2)+
  286. bra.s L0002c0
  287. L0002ee:
  288. addq.l #1,d1
  289. L0002f0:
  290. move.b d0,(a1)+
  291. cmp.b #$22,d0 ;'"'
  292. bne.s L000306
  293. L0002f8:
  294. move.b (a0)+,d0
  295. beq.s L00033c
  296. move.b d0,(a1)+
  297. cmp.b #$22,d0 ;'"'
  298. bne.s L0002f8
  299. bra.s L000318
  300. L000306:
  301. cmp.b #$27,d0 ;'''
  302. bne.s L000318
  303. L00030c:
  304. move.b (a0)+,d0
  305. beq.s L00033c
  306. move.b d0,(a1)+
  307. cmp.b #$27,d0 ;'''
  308. bne.s L00030c
  309. L000318:
  310. move.b (a0),d0
  311. beq.s L00033c
  312. cmp.b #$2f,d0 ;'/'
  313. beq.s L000338
  314. cmp.b #$2d,d0 ;'-'
  315. beq.s L000338
  316. addq.l #1,a0
  317. cmp.b #$09,d0
  318. beq.s L000338
  319. cmp.b #$20,d0 ;' '
  320. beq.s L000338
  321. bra.s L0002f0
  322. L000338:
  323. clr.b (a1)+
  324. bra.s L0002c0
  325. L00033c:
  326. clr.b (a1)+
  327. clr.b (a1)
  328. clr.b (a2)+
  329. clr.b (a2)
  330. move.l d1,d0
  331. movem.l (sp)+,d1/a0-a2
  332. rts
  333. L00034c:
  334. move.l a0,-(sp)
  335. L00034e:
  336. move.b (a0)+,d0
  337. cmpi.b #$20,d0 ;' '
  338. beq.s L00034e
  339. cmpi.b #$09,d0
  340. beq.s L00034e
  341. move.l a0,d0
  342. movea.l (sp)+,a0
  343. sub.l a0,d0
  344. subq.l #1,d0
  345. rts
  346. L000366:
  347. movem.l a0-a1,-(sp)
  348. L00036a:
  349. move.b (a1)+,(a0)+
  350. bne.s L00036a
  351. movem.l (sp)+,a0-a1
  352. rts
  353. L000374:
  354. move.l a0,-(sp)
  355. moveq.l #$ff,d0
  356. L000378:
  357. addi.l #$00000001,d0
  358. tst.b (a0)+
  359. bne.s L000378
  360. movea.l (sp)+,a0
  361. rts
  362. L000386:
  363. movem.l d0-d1,-(sp)
  364. clr.b d1
  365. move.l a0,-(sp)
  366. L00038e:
  367. move.b (a0)+,d0
  368. beq.s L0003c2
  369. tst.b d1
  370. beq.s L00039a
  371. clr.b d1
  372. bra.s L00038e
  373. L00039a:
  374. cmp.b #$80,d0
  375. bcs.s L0003b2
  376. cmp.b #$a0,d0
  377. bcs.s L0003ac
  378. cmp.b #$e0,d0
  379. bcs.s L0003b2
  380. L0003ac:
  381. move.b #$01,d1
  382. bra.s L00038e
  383. L0003b2:
  384. cmp.b #$5c,d0 ;'\'
  385. beq.s L0003be
  386. cmp.b #$3a,d0 ;':'
  387. bne.s L00038e
  388. L0003be:
  389. move.l a0,(sp)
  390. bra.s L00038e
  391. L0003c2:
  392. movea.l (sp)+,a0
  393. movem.l (sp)+,d0-d1
  394. rts
  395. L0003ca:
  396. movem.l d0-d1/a0,-(sp)
  397. clr.b d1
  398. L0003d0:
  399. move.b (a0),d0
  400. beq.s L00040a
  401. tst.b d1
  402. beq.s L0003dc
  403. clr.b d1
  404. bra.s L0003f2
  405. L0003dc:
  406. cmp.b #$80,d0
  407. bcs.s L0003f6
  408. cmp.b #$a0,d0
  409. bcs.s L0003ee
  410. cmp.b #$e0,d0
  411. bcs.s L0003f6
  412. L0003ee:
  413. move.b #$01,d1
  414. L0003f2:
  415. addq.l #1,a0
  416. bra.s L0003d0
  417. L0003f6:
  418. cmpi.b #$41,d0 ;'A'
  419. bcs.s L000406
  420. cmpi.b #$5a,d0 ;'Z'
  421. bhi.s L000406
  422. add.b #$20,d0 ;' '
  423. L000406:
  424. move.b d0,(a0)+
  425. bra.s L0003d0
  426. L00040a:
  427. movem.l (sp)+,d0-d1/a0
  428. rts
  429. .data
  430. L000410:
  431. .dc.b '*.*',$00
  432. L000414:
  433. .dc.b 'X68k Where v1.01 Copyright 1989 SHARP/Hudson',$0d,$0a
  434. .dc.b '使用法:where[スイッチ][検索ファイル名]',$0d,$0a
  435. .dc.b $09,'/a',$09,'すべてのドライブを検索する',$0d,$0a
  436. .dc.b $09,'/f',$09,'検索したファイル名も表示する',$0d,$0a
  437. .dc.b $0d,$0a
  438. .dc.b $09,'/aのスイッチを付けた場合ドライブ名は指定しない',$0d,$0a,$00
  439. L0004e5:
  440. .dc.b 'where: ディレクトリが深すぎるので中断します',$0d,$0a,$00
  441. L000513:
  442. .dc.b 'where: ドライブ指定が無効です',$0d,$0a,$00
  443. L000533:
  444. .dc.b ':は準備が出来ていません',$0d,$0a,$00
  445. L00054d:
  446. .dc.b '検索ファイルは見つかりません'
  447. L000569:
  448. .dc.b $0d,$0a,$00
  449. .bss
  450. L00056c:
  451. .ds.b 280
  452. L000684:
  453. .ds.b 280
  454. L00079c:
  455. .ds.b 280
  456. L0008b4:
  457. .ds.b 280
  458. L0009cc:
  459. .ds.b 280
  460. L000ae4:
  461. .ds.b 1
  462. L000ae5:
  463. .ds.b 201
  464. L000bae:
  465. .ds.b 2600
  466. L0015d6:
  467. .ds.b 2
  468. End:
  469. .end Start