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.

find.s 15KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037
  1. ;=============================================
  2. ; Filename find.x
  3. ;
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 00092a byte(s)
  8. ; Data size 000350 byte(s)
  9. ; Bss size 0015f2 byte(s)
  10. ; 177 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gfind.lab --overwrite find.x find.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 (L00226a),sp
  22. move.w #$0001,(L000c90)
  23. lea.l (L001a69),a2
  24. move.l a2,(L000c86)
  25. clr.l (L000c82)
  26. clr.l (L000c8a)
  27. clr.b (L001246)
  28. clr.b (L001247)
  29. clr.b (L001248)
  30. clr.b (L001249)
  31. clr.b (L00124a)
  32. clr.b (L000ec2)
  33. clr.b (L000fda)
  34. clr.b (L0010f2)
  35. movea.l (Start-$0000e0),a0
  36. addq.l #1,a0
  37. lea.l (L000c92),a1
  38. lea.l (L000daa),a2
  39. bsr.w L0004b2
  40. move.l d0,(L000c7a)
  41. tst.l d0
  42. beq.w L00028e
  43. cmp.l #$00000002,d0
  44. bhi.w L00028e
  45. lea.l (L000daa),a0
  46. L00008a:
  47. tst.b (a0)
  48. beq.s L0000e8
  49. bsr.w L00057e
  50. L000092:
  51. move.b (a0)+,d0
  52. beq.s L00008a
  53. cmp.b #$66,d0 ;'f'
  54. beq.s L0000c0
  55. cmp.b #$6e,d0 ;'n'
  56. beq.s L0000ca
  57. cmp.b #$6c,d0 ;'l'
  58. beq.s L0000d4
  59. cmp.b #$76,d0 ;'v'
  60. beq.s L0000de
  61. cmp.b #$63,d0 ;'c'
  62. bne.w L00028e
  63. move.b #-$01,(L00124a)
  64. bra.s L000092
  65. L0000c0:
  66. move.b #-$01,(L001246)
  67. bra.s L000092
  68. L0000ca:
  69. move.b #-$01,(L001247)
  70. bra.s L000092
  71. L0000d4:
  72. move.b #-$01,(L001248)
  73. bra.s L000092
  74. L0000de:
  75. move.b #-$01,(L001249)
  76. bra.s L000092
  77. L0000e8:
  78. lea.l (L000c92),a0
  79. move.b (a0),d3
  80. tst.b d3
  81. beq.w L00028e
  82. cmp.b #$22,d3 ;'"'
  83. beq.s L000106
  84. cmp.b #$27,d3 ;'''
  85. beq.s L000106
  86. clr.b d3
  87. bra.s L000108
  88. L000106:
  89. addq.l #1,a0
  90. L000108:
  91. movea.l a0,a1
  92. lea.l (L000ec2),a0
  93. bsr.w L00055e
  94. bsr.w L00056c
  95. adda.l d0,a0
  96. tst.b d3
  97. beq.s L000126
  98. cmp.b -(a0),d3
  99. bne.w L00028e
  100. clr.b (a0)
  101. L000126:
  102. cmpi.l #$00000001,(L000c7a)
  103. beq.s L00014e
  104. lea.l (L000c92),a0
  105. move.w #$0001,d2
  106. bsr.w L0007a0
  107. beq.s L00014e
  108. movea.l a0,a1
  109. lea.l (L000fda),a0
  110. bsr.w L00055e
  111. L00014e:
  112. tst.b (L000fda)
  113. beq.w L0001d6
  114. lea.l (L000fda),a0
  115. bsr.w L0005e6
  116. move.w #$0021,-(sp) ;'!'
  117. pea.l (L000fda)
  118. pea.l (L00120a)
  119. DOS _FILES
  120. lea.l ($000a,sp),sp
  121. tst.l d0
  122. bmi.s L0001be
  123. lea.l (L001228),a0
  124. bsr.w L0007b4
  125. lea.l (L0010f2),a0
  126. lea.l (L000fda),a1
  127. bsr.w L00055e
  128. bsr.w L00075c
  129. lea.l (L001228),a1
  130. bsr.w L00055e
  131. clr.w -(sp)
  132. pea.l (L0010f2)
  133. DOS _OPEN
  134. addq.l #6,sp
  135. tst.l d0
  136. bmi.w L0002aa
  137. move.w d0,(L000c8e)
  138. bra.s L0001da
  139. L0001be:
  140. pea.l (L000fda)
  141. DOS _OPEN
  142. addq.l #6,sp
  143. tst.l d0
  144. bmi.w L0002b2
  145. move.w d0,(L000c8e)
  146. bra.s L0001da
  147. L0001d6:
  148. bsr.w L00090e
  149. L0001da:
  150. lea.l (L001669),a0
  151. move.l a0,(L000c7e)
  152. clr.l (L000c82)
  153. moveq.l #$01,d3
  154. clr.b d4
  155. clr.l d5
  156. clr.l d7
  157. tst.b (L001248)
  158. beq.s L000206
  159. lea.l (L000ec2),a0
  160. bsr.w L00057e
  161. L000206:
  162. bsr.w L0002e2
  163. tst.b d4
  164. beq.s L000216
  165. tst.b (L001259)
  166. beq.s L000224
  167. L000216:
  168. bsr.w L00031c
  169. bsr.w L00039c
  170. addq.l #1,d3
  171. tst.b d4
  172. beq.s L000206
  173. L000224:
  174. subq.l #1,d3
  175. bsr.w L000428
  176. tst.b (L000fda)
  177. beq.s L00028a
  178. move.w (L000c8e),-(sp)
  179. DOS _CLOSE
  180. addq.l #2,sp
  181. tst.b (L0010f2)
  182. beq.s L00028a
  183. pea.l (L00120a)
  184. DOS _NFILES
  185. addq.l #4,sp
  186. tst.l d0
  187. bmi.s L00028a
  188. lea.l (L001228),a0
  189. bsr.w L0007b4
  190. lea.l (L0010f2),a0
  191. bsr.w L00075c
  192. lea.l (L001228),a1
  193. bsr.w L00055e
  194. clr.w -(sp)
  195. pea.l (L0010f2)
  196. DOS _OPEN
  197. addq.l #6,sp
  198. tst.l d0
  199. bmi.s L0002aa
  200. move.w d0,(L000c8e)
  201. bra.w L0001da
  202. L00028a:
  203. clr.l d0
  204. bra.s L0002de
  205. L00028e:
  206. lea.l (L000956),a0
  207. bsr.w L00056c
  208. move.l d0,-(sp)
  209. move.l a0,-(sp)
  210. move.w #$0002,-(sp)
  211. DOS _WRITE
  212. lea.l ($000a,sp),sp
  213. moveq.l #$01,d0
  214. bra.s L0002de
  215. L0002aa:
  216. lea.l (L000bbb),a0
  217. bra.s L0002c8
  218. L0002b2:
  219. lea.l (L000be0),a0
  220. bra.s L0002c8
  221. L0002ba:
  222. lea.l (L000c01),a0
  223. bra.s L0002c8
  224. L0002c2:
  225. lea.l (L000c1c),a0
  226. L0002c8:
  227. bsr.w L00056c
  228. move.l d0,-(sp)
  229. move.l a0,-(sp)
  230. move.w #$0002,-(sp)
  231. DOS _WRITE
  232. lea.l ($000a,sp),sp
  233. move.w #$0002,d0
  234. L0002de:
  235. move.w d0,-(sp)
  236. DOS _EXIT2
  237. L0002e2:
  238. lea.l (L001259),a1
  239. clr.l d2
  240. L0002ea:
  241. bsr.w L0007e6
  242. tst.l d0
  243. bmi.s L0002ba
  244. beq.s L000314
  245. cmp.b #$1a,d1
  246. beq.s L000314
  247. cmp.b #$0d,d1
  248. beq.s L0002ea
  249. cmp.b #$0a,d1
  250. beq.s L000318
  251. cmp.l #$000001ff,d2
  252. bhi.s L0002ea
  253. move.b d1,(a1)+
  254. addq.l #1,d2
  255. bra.s L0002ea
  256. L000314:
  257. move.b #-$01,d4
  258. L000318:
  259. clr.b (a1)
  260. rts
  261. L00031c:
  262. move.l d3,-(sp)
  263. lea.l (L000ec2),a0
  264. bsr.w L00056c
  265. move.l d0,d3
  266. cmp.l d0,d2
  267. bcs.s L000382
  268. lea.l (L001259),a1
  269. tst.b (L001248)
  270. beq.s L000356
  271. lea.l (L001461),a0
  272. bsr.w L00055e
  273. bsr.w L00057e
  274. lea.l (L001461),a1
  275. lea.l (L000ec2),a0
  276. L000356:
  277. move.l d2,d1
  278. sub.l d0,d1
  279. L00035a:
  280. move.l d3,d0
  281. bsr.w L0005c4
  282. beq.s L000388
  283. move.b (a1)+,d6
  284. cmp.b #$80,d6
  285. bcs.s L00037e
  286. cmp.b #$a0,d6
  287. bcs.s L000376
  288. cmp.b #$e0,d6
  289. bcs.s L00037e
  290. L000376:
  291. addq.l #1,a1
  292. dbra.w d1,L00037e
  293. bra.s L000382
  294. L00037e:
  295. dbra.w d1,L00035a
  296. L000382:
  297. clr.b d6
  298. addq.l #1,d7
  299. bra.s L00038e
  300. L000388:
  301. move.b #-$01,d6
  302. addq.l #1,d5
  303. L00038e:
  304. tst.b (L001249)
  305. beq.s L000398
  306. not.b d6
  307. L000398:
  308. move.l (sp)+,d3
  309. rts
  310. L00039c:
  311. tst.b (L00124a)
  312. bne.w L000426
  313. tst.b d6
  314. beq.s L000426
  315. tst.b (L001247)
  316. bne.s L000418
  317. tst.b (L001246)
  318. beq.s L0003ec
  319. tst.b (L0010f2)
  320. beq.s L0003ec
  321. move.w #$0017,d1
  322. lea.l (L001228),a0
  323. bsr.w L0008a8
  324. lea.l (L001228),a0
  325. bsr.w L00056c
  326. sub.w d0,d1
  327. tst.w d1
  328. beq.s L0003ec
  329. L0003e0:
  330. move.b #$20,d0 ;' '
  331. bsr.w L00083c
  332. dbra.w d1,L0003e0
  333. L0003ec:
  334. lea.l (L00124b),a0
  335. move.l d3,d0
  336. bsr.w L0008c8
  337. move.b #$3a,(L001255) ;':'
  338. move.b #$20,(L001256) ;' '
  339. clr.b (L001257)
  340. lea.l (L00124f),a0
  341. bsr.w L0008a8
  342. L000418:
  343. lea.l (L001259),a0
  344. bsr.w L0008a8
  345. bsr.w L0008b4
  346. L000426:
  347. rts
  348. L000428:
  349. tst.b (L00124a)
  350. beq.w L0004b0
  351. lea.l (L000c37),a0
  352. bsr.w L0008a8
  353. lea.l (L00124b),a0
  354. move.l d5,d0
  355. bsr.w L0008c8
  356. clr.b (L001255)
  357. lea.l (L00124e),a0
  358. bsr.w L0008a8
  359. bsr.w L0008b4
  360. lea.l (L000c4d),a0
  361. bsr.w L0008a8
  362. lea.l (L00124b),a0
  363. move.l d7,d0
  364. bsr.w L0008c8
  365. clr.b (L001255)
  366. lea.l (L00124e),a0
  367. bsr.w L0008a8
  368. bsr.w L0008b4
  369. lea.l (L000c63),a0
  370. bsr.w L0008a8
  371. lea.l (L00124b),a0
  372. move.l d3,d0
  373. bsr.w L0008c8
  374. clr.b (L001255)
  375. lea.l (L00124e),a0
  376. bsr.w L0008a8
  377. bsr.w L0008b4
  378. L0004b0:
  379. rts
  380. L0004b2:
  381. movem.l d1/a0-a2,-(sp)
  382. clr.l d1
  383. L0004b8:
  384. bsr.w L000544
  385. adda.l d0,a0
  386. tst.b (a0)
  387. beq.s L000534
  388. move.b (a0)+,d0
  389. cmp.b #$2d,d0 ;'-'
  390. beq.s L0004d0
  391. cmp.b #$2f,d0 ;'/'
  392. bne.s L0004e6
  393. L0004d0:
  394. move.b (a0)+,d0
  395. beq.s L000534
  396. cmp.b #$09,d0
  397. beq.s L0004e2
  398. cmp.b #$20,d0 ;' '
  399. beq.s L0004e2
  400. move.b d0,(a2)+
  401. L0004e2:
  402. clr.b (a2)+
  403. bra.s L0004b8
  404. L0004e6:
  405. addq.l #1,d1
  406. L0004e8:
  407. move.b d0,(a1)+
  408. cmp.b #$22,d0 ;'"'
  409. bne.s L0004fe
  410. L0004f0:
  411. move.b (a0)+,d0
  412. beq.s L000534
  413. move.b d0,(a1)+
  414. cmp.b #$22,d0 ;'"'
  415. bne.s L0004f0
  416. bra.s L000510
  417. L0004fe:
  418. cmp.b #$27,d0 ;'''
  419. bne.s L000510
  420. L000504:
  421. move.b (a0)+,d0
  422. beq.s L000534
  423. move.b d0,(a1)+
  424. cmp.b #$27,d0 ;'''
  425. bne.s L000504
  426. L000510:
  427. move.b (a0),d0
  428. beq.s L000534
  429. cmp.b #$2f,d0 ;'/'
  430. beq.s L000530
  431. cmp.b #$2d,d0 ;'-'
  432. beq.s L000530
  433. addq.l #1,a0
  434. cmp.b #$09,d0
  435. beq.s L000530
  436. cmp.b #$20,d0 ;' '
  437. beq.s L000530
  438. bra.s L0004e8
  439. L000530:
  440. clr.b (a1)+
  441. bra.s L0004b8
  442. L000534:
  443. clr.b (a1)+
  444. clr.b (a1)
  445. clr.b (a2)+
  446. clr.b (a2)
  447. move.l d1,d0
  448. movem.l (sp)+,d1/a0-a2
  449. rts
  450. L000544:
  451. move.l a0,-(sp)
  452. L000546:
  453. move.b (a0)+,d0
  454. cmpi.b #$20,d0 ;' '
  455. beq.s L000546
  456. cmpi.b #$09,d0
  457. beq.s L000546
  458. move.l a0,d0
  459. movea.l (sp)+,a0
  460. sub.l a0,d0
  461. subq.l #1,d0
  462. rts
  463. L00055e:
  464. movem.l a0-a1,-(sp)
  465. L000562:
  466. move.b (a1)+,(a0)+
  467. bne.s L000562
  468. movem.l (sp)+,a0-a1
  469. rts
  470. L00056c:
  471. move.l a0,-(sp)
  472. moveq.l #$ff,d0
  473. L000570:
  474. addi.l #$00000001,d0
  475. tst.b (a0)+
  476. bne.s L000570
  477. movea.l (sp)+,a0
  478. rts
  479. L00057e:
  480. movem.l d0-d1/a0,-(sp)
  481. clr.b d1
  482. L000584:
  483. move.b (a0),d0
  484. beq.s L0005be
  485. tst.b d1
  486. beq.s L000590
  487. clr.b d1
  488. bra.s L0005a6
  489. L000590:
  490. cmp.b #$80,d0
  491. bcs.s L0005aa
  492. cmp.b #$a0,d0
  493. bcs.s L0005a2
  494. cmp.b #$e0,d0
  495. bcs.s L0005aa
  496. L0005a2:
  497. move.b #$01,d1
  498. L0005a6:
  499. addq.l #1,a0
  500. bra.s L000584
  501. L0005aa:
  502. cmpi.b #$41,d0 ;'A'
  503. bcs.s L0005ba
  504. cmpi.b #$5a,d0 ;'Z'
  505. bhi.s L0005ba
  506. add.b #$20,d0 ;' '
  507. L0005ba:
  508. move.b d0,(a0)+
  509. bra.s L000584
  510. L0005be:
  511. movem.l (sp)+,d0-d1/a0
  512. rts
  513. L0005c4:
  514. movem.l a0-a1,-(sp)
  515. bra.s L0005ce
  516. L0005ca:
  517. cmpm.b (a0)+,(a1)+
  518. bne.s L0005d6
  519. L0005ce:
  520. dbra.w d0,L0005ca
  521. clr.l d0
  522. bra.s L0005de
  523. L0005d6:
  524. bcs.s L0005dc
  525. moveq.l #$01,d0
  526. bra.s L0005de
  527. L0005dc:
  528. moveq.l #$ff,d0
  529. L0005de:
  530. tst.l d0
  531. movem.l (sp)+,a0-a1
  532. rts
  533. L0005e6:
  534. link.w a6,#-$003c
  535. movem.l d0-d6/a1-a2,-(sp)
  536. move.w #$ffff,d2
  537. movea.l a0,a1
  538. bsr.w L00056c
  539. move.w d0,d1
  540. tst.w d1
  541. beq.w L00073c
  542. clr.b d3
  543. L000602:
  544. move.b (a1)+,d4
  545. beq.s L000638
  546. tst.b d3
  547. beq.s L000620
  548. cmp.b #$01,d3
  549. beq.s L00061a
  550. cmp.b #$2e,d4 ;'.'
  551. beq.s L000620
  552. clr.b d3
  553. bra.s L000620
  554. L00061a:
  555. move.b #$02,d3
  556. bra.s L000602
  557. L000620:
  558. cmp.b #$80,d4
  559. bcs.s L000602
  560. cmp.b #$a0,d4
  561. bcs.s L000632
  562. cmp.b #$e0,d4
  563. bcs.s L000602
  564. L000632:
  565. move.b #$01,d3
  566. bra.s L000602
  567. L000638:
  568. subq.l #1,a1
  569. tst.b d3
  570. bne.s L00065a
  571. cmpi.b #$5c,(-$0001,a1) ;'\'
  572. bne.s L00065a
  573. cmp.w #$0001,d1
  574. beq.w L00073c
  575. cmpi.b #$3a,(-$0002,a1) ;':'
  576. beq.w L00073c
  577. clr.b -(a1)
  578. L00065a:
  579. cmpi.b #$3a,(-$0001,a1) ;':'
  580. beq.w L00073c
  581. cmpi.b #$2e,(-$0001,a1) ;'.'
  582. bne.s L000692
  583. tst.b d3
  584. bne.s L000692
  585. cmp.w #$0001,d1
  586. beq.s L000686
  587. cmpi.b #$3a,(-$0002,a1) ;':'
  588. beq.s L000686
  589. cmpi.b #$5c,(-$0002,a1) ;'\'
  590. bne.s L000692
  591. L000686:
  592. move.b #$2a,(-$0001,a1) ;'*'
  593. move.b #$2e,(a1)+ ;'.'
  594. clr.b (a1)
  595. L000692:
  596. movea.l a0,a2
  597. L000694:
  598. move.b (a2)+,d0
  599. beq.s L0006a6
  600. cmp.b #$2a,d0 ;'*'
  601. beq.s L0006c2
  602. cmp.b #$3f,d0 ;'?'
  603. beq.s L0006c2
  604. bra.s L000694
  605. L0006a6:
  606. move.w #$0010,-(sp)
  607. move.l a0,-(sp)
  608. pea.l (-$003c,a6)
  609. DOS _FILES
  610. lea.l ($000a,sp),sp
  611. tst.l d0
  612. bmi.s L0006c2
  613. btst.b #$04,(-$0027,a6)
  614. bne.s L000738
  615. L0006c2:
  616. clr.b d3
  617. movea.l a0,a2
  618. clr.b d5
  619. clr.b d6
  620. L0006ca:
  621. move.b (a2)+,d0
  622. beq.s L000730
  623. tst.b d3
  624. beq.s L0006d6
  625. clr.b d3
  626. bra.s L0006ca
  627. L0006d6:
  628. cmp.b #$80,d0
  629. bcs.s L0006f2
  630. cmp.b #$a0,d0
  631. bcs.s L0006e8
  632. cmp.b #$e0,d0
  633. bcs.s L0006f2
  634. L0006e8:
  635. move.b #$01,d3
  636. move.b #$20,d5 ;' '
  637. bra.s L0006ca
  638. L0006f2:
  639. cmp.b #$2e,d0 ;'.'
  640. bne.s L000712
  641. tst.b d5
  642. beq.s L00070e
  643. cmp.b #$3a,d5 ;':'
  644. beq.s L00070e
  645. cmp.b #$5c,d5 ;'\'
  646. beq.s L00070e
  647. cmp.b #$2e,d5 ;'.'
  648. bne.s L000712
  649. L00070e:
  650. tst.b (a2)
  651. beq.s L000738
  652. L000712:
  653. cmpi.b #$5c,(a2) ;'\'
  654. bne.s L00071e
  655. tst.b ($0001,a2)
  656. beq.s L00073c
  657. L00071e:
  658. move.b d0,d5
  659. cmp.b #$2e,d0 ;'.'
  660. beq.s L00072c
  661. cmp.b #$5c,d0 ;'\'
  662. bne.s L0006ca
  663. L00072c:
  664. move.b d0,d6
  665. bra.s L0006ca
  666. L000730:
  667. cmp.b #$2e,d6 ;'.'
  668. beq.s L000754
  669. bra.s L000742
  670. L000738:
  671. move.b #$5c,(a1)+ ;'\'
  672. L00073c:
  673. move.b #$2a,(a1)+ ;'*'
  674. clr.w d2
  675. L000742:
  676. move.b #$2e,(a1)+ ;'.'
  677. move.b #$2a,(a1)+ ;'*'
  678. tst.w d2
  679. beq.s L000752
  680. clr.b (-$0001,a1)
  681. L000752:
  682. clr.b (a1)
  683. L000754:
  684. movem.l (sp)+,d0-d6/a1-a2
  685. unlk a6
  686. rts
  687. L00075c:
  688. movem.l d0-d1,-(sp)
  689. clr.b d1
  690. move.l a0,-(sp)
  691. L000764:
  692. move.b (a0)+,d0
  693. beq.s L000798
  694. tst.b d1
  695. beq.s L000770
  696. clr.b d1
  697. bra.s L000764
  698. L000770:
  699. cmp.b #$80,d0
  700. bcs.s L000788
  701. cmp.b #$a0,d0
  702. bcs.s L000782
  703. cmp.b #$e0,d0
  704. bcs.s L000788
  705. L000782:
  706. move.b #$01,d1
  707. bra.s L000764
  708. L000788:
  709. cmp.b #$5c,d0 ;'\'
  710. beq.s L000794
  711. cmp.b #$3a,d0 ;':'
  712. bne.s L000764
  713. L000794:
  714. move.l a0,(sp)
  715. bra.s L000764
  716. L000798:
  717. movea.l (sp)+,a0
  718. movem.l (sp)+,d0-d1
  719. rts
  720. L0007a0:
  721. tst.w d2
  722. beq.s L0007b0
  723. tst.b (a0)
  724. beq.s L0007b2
  725. L0007a8:
  726. tst.b (a0)+
  727. bne.s L0007a8
  728. subq.w #1,d2
  729. bra.s L0007a0
  730. L0007b0:
  731. tst.b (a0)
  732. L0007b2:
  733. rts
  734. L0007b4:
  735. tst.b (L00124a)
  736. bne.s L0007c4
  737. tst.b (L001246)
  738. bne.s L0007e4
  739. L0007c4:
  740. move.l a0,-(sp)
  741. lea.l (L000b91),a0
  742. bsr.w L0008a8
  743. movea.l (sp)+,a0
  744. bsr.w L0008a8
  745. lea.l (L000ba6),a0
  746. bsr.w L0008a8
  747. bsr.w L0008b4
  748. L0007e4:
  749. rts
  750. L0007e6:
  751. movem.l d2/a1,-(sp)
  752. movea.l (L000c7e),a1
  753. move.l (L000c82),d2
  754. tst.l d2
  755. bne.s L00081e
  756. move.l #$00000400,-(sp)
  757. pea.l (L001669)
  758. move.w (L000c8e),-(sp)
  759. DOS _READ
  760. lea.l ($000a,sp),sp
  761. lea.l (L001669),a1
  762. tst.l d0
  763. bls.s L000824
  764. move.l d0,d2
  765. L00081e:
  766. move.b (a1)+,d1
  767. subq.l #1,d2
  768. moveq.l #$01,d0
  769. L000824:
  770. move.l a1,(L000c7e)
  771. move.l d2,(L000c82)
  772. movem.l (sp)+,d2/a1
  773. rts
  774. L000836:
  775. movem.l d1/a1,-(sp)
  776. bra.s L000866
  777. L00083c:
  778. movem.l d1/a1,-(sp)
  779. movea.l (L000c86),a1
  780. move.l (L000c8a),d1
  781. move.b d0,(a1)+
  782. addq.l #1,d1
  783. move.l a1,(L000c86)
  784. move.l d1,(L000c8a)
  785. moveq.l #$01,d0
  786. cmp.l #$00000400,d1
  787. bne.s L0008a2
  788. L000866:
  789. move.l (L000c8a),d1
  790. tst.l d1
  791. beq.s L0008a2
  792. move.l d1,-(sp)
  793. pea.l (L001a69)
  794. move.w (L000c90),-(sp)
  795. DOS _WRITE
  796. lea.l ($000a,sp),sp
  797. tst.l d0
  798. bmi.w L0002c2
  799. lea.l (L001a69),a1
  800. move.l a1,(L000c86)
  801. move.l #$00000000,(L000c8a)
  802. moveq.l #$01,d0
  803. L0008a2:
  804. movem.l (sp)+,d1/a1
  805. rts
  806. L0008a8:
  807. move.b (a0)+,d0
  808. beq.s L0008b2
  809. bsr.s L00083c
  810. tst.l d0
  811. bpl.s L0008a8
  812. L0008b2:
  813. rts
  814. L0008b4:
  815. move.b #$0d,d0
  816. bsr.s L00083c
  817. move.b #$0a,d0
  818. bsr.w L00083c
  819. bsr.w L000836
  820. rts
  821. L0008c8:
  822. movem.l d0-d2/a0-a1,-(sp)
  823. movem.l a0,-(sp)
  824. lea.l (L00092a),a1
  825. L0008d6:
  826. clr.b d2
  827. move.l (a1)+,d1
  828. beq.s L0008ec
  829. L0008dc:
  830. addq.b #1,d2
  831. sub.l d1,d0
  832. bcc.s L0008dc
  833. add.l d1,d0
  834. add.b #$2f,d2 ;'/'
  835. move.b d2,(a0)+
  836. bra.s L0008d6
  837. L0008ec:
  838. clr.b (a0)
  839. movem.l (sp)+,a0
  840. L0008f2:
  841. move.b (a0)+,d0
  842. beq.s L000908
  843. cmp.b #$30,d0 ;'0'
  844. bne.s L000908
  845. tst.b (a0)
  846. beq.s L000908
  847. move.b #$20,(-$0001,a0) ;' '
  848. bra.s L0008f2
  849. L000908:
  850. movem.l (sp)+,d0-d2/a0-a1
  851. rts
  852. L00090e:
  853. clr.w -(sp)
  854. DOS _DUP
  855. tst.l d0
  856. bmi.w L0002ba
  857. move.w d0,(L000c8e)
  858. DOS _CLOSE
  859. move.w #$0002,(sp)
  860. DOS _DUP
  861. addq.l #2,sp
  862. rts
  863. .data
  864. L00092a:
  865. .dc.l $3b9aca00,$05f5e100
  866. .dc.l $00989680,$000f4240
  867. .dc.l $000186a0,$00002710
  868. .dc.l $000003e8,$00000064
  869. .dc.l $0000000a,$00000001
  870. .dc.l $00000000
  871. L000956:
  872. .dc.b 'X68k Find v1.01 Copyright 1989 SHARP/Hudson',$0d,$0a
  873. .dc.b '使用法:find[スイッチ]"検索文字列"[ファイル名]',$0d,$0a
  874. .dc.b $09,'/n',$09,'行頭にファイル名や行番号を付けない',$0d,$0a
  875. .dc.b $09,'/f',$09,'1ファイル検索毎にファイル名を表示しない',$0d,$0a
  876. .dc.b $09,'/l',$09,'半角英数字の大文字、小文字を区別しない',$0d,$0a
  877. .dc.b $09,'/v',$09,'検索文字列を含まない行を表示する',$0d,$0a
  878. .dc.b $09,'/c',$09,'検索集計結果のみを表示する',$0d,$0a
  879. .dc.b $0d,$0a
  880. .dc.b $09,'/fのスイッチを付けた場合行頭にファイル名を表示する',$0d,$0a
  881. .dc.b $09,'/cのスイッチを付けた場合 /n,/f,/v のスイッチは無視する',$0d,$0a
  882. .dc.b $09,'検索文字列にスペ-スかタブが入る時は " か ',$27,' でかこむ',$0d,$0a
  883. .dc.b $09,'ファイルを指定しない場合、標準入力から入力する',$0d,$0a
  884. .dc.b $09,'標準入力やデバイスから入力する場合ファイル名は付かない',$0d,$0a,$00
  885. L000b91:
  886. .dc.b '================== ',$00
  887. L000ba6:
  888. .dc.b ' ==================',$00
  889. L000bbb:
  890. .dc.b 'find: ファイルがオ-プンできません',$0d,$0a,$00
  891. L000be0:
  892. .dc.b 'find: ファイルが見つかりません',$0d,$0a,$00
  893. L000c01:
  894. .dc.b 'find: 読み込みできません',$0d,$0a,$00
  895. L000c1c:
  896. .dc.b 'find: 書き込みできません',$0d,$0a,$00
  897. L000c37:
  898. .dc.b '文字列を含む行数 :',$00
  899. L000c4d:
  900. .dc.b '文字列を含まない行数:',$00
  901. L000c63:
  902. .dc.b '全体の行数 :',$00,$00
  903. .bss
  904. L000c7a:
  905. .ds.l 1
  906. L000c7e:
  907. .ds.l 1
  908. L000c82:
  909. .ds.l 1
  910. L000c86:
  911. .ds.l 1
  912. L000c8a:
  913. .ds.l 1
  914. L000c8e:
  915. .ds.w 1
  916. L000c90:
  917. .ds.w 1
  918. L000c92:
  919. .ds.b 280
  920. L000daa:
  921. .ds.b 280
  922. L000ec2:
  923. .ds.b 280
  924. L000fda:
  925. .ds.b 280
  926. L0010f2:
  927. .ds.b 280
  928. L00120a:
  929. .ds.b 30
  930. L001228:
  931. .ds.b 30
  932. L001246:
  933. .ds.b 1
  934. L001247:
  935. .ds.b 1
  936. L001248:
  937. .ds.b 1
  938. L001249:
  939. .ds.b 1
  940. L00124a:
  941. .ds.b 1
  942. L00124b:
  943. .ds.b 3
  944. L00124e:
  945. .ds.b 1
  946. L00124f:
  947. .ds.b 6
  948. L001255:
  949. .ds.b 1
  950. L001256:
  951. .ds.b 1
  952. L001257:
  953. .ds.b 2
  954. L001259:
  955. .ds.b 520
  956. L001461:
  957. .ds.b 520
  958. L001669:
  959. .ds.b 1024
  960. L001a69:
  961. .ds.b 2049
  962. L00226a:
  963. .ds.b 2
  964. End:
  965. .end Start