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.

more.s 8.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. ;=============================================
  2. ; Filename more.x
  3. ;
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 000512 byte(s)
  8. ; Data size 0000b6 byte(s)
  9. ; Bss size 000f54 byte(s)
  10. ; 97 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gmore.lab --overwrite more.x more.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. L000000:
  21. lea.l (L00151a),sp
  22. bsr.w L0004f4
  23. clr.b (L000802)
  24. movea.l (L000000-$0000e0),a0
  25. addq.l #1,a0
  26. lea.l (L0005d2),a1
  27. lea.l (L0006ea),a2
  28. bsr.w L000232
  29. tst.b (L0006ea)
  30. bne.w L000172
  31. tst.l d0
  32. beq.s L00006e
  33. cmp.l #$00000001,d0
  34. bne.w L000172
  35. lea.l (L0005d2),a1
  36. lea.l (L000802),a0
  37. bsr.w L0002de
  38. bsr.w L0002fe
  39. clr.w -(sp)
  40. pea.l (L000802)
  41. DOS _OPEN
  42. addq.l #6,sp
  43. tst.l d0
  44. bmi.w L00018e
  45. move.w d0,(L0005ca)
  46. bra.s L000072
  47. L00006e:
  48. bsr.w L0004d8
  49. L000072:
  50. lea.l (L000d1a),a2
  51. clr.l d4
  52. clr.l d5
  53. clr.b d6
  54. clr.b d7
  55. L000080:
  56. bsr.w L0001bc
  57. clr.b d3
  58. L000086:
  59. clr.b d2
  60. L000088:
  61. bsr.w L000472
  62. tst.l d0
  63. bmi.w L000196
  64. beq.w L00013c
  65. tst.b d6
  66. bne.s L0000ca
  67. cmp.b #$80,d1
  68. bcs.s L0000e6
  69. cmp.b #$a0,d1
  70. bcs.s L0000ac
  71. cmp.b #$e0,d1
  72. bcs.s L0000e6
  73. L0000ac:
  74. move.b d1,d7
  75. move.b #$01,d6
  76. cmp.b #$80,d1
  77. beq.s L000088
  78. cmp.b #$f0,d1
  79. bcc.s L000088
  80. cmp.b (L0005c8),d2
  81. bcc.s L000120
  82. addq.b #1,d2
  83. bra.s L000088
  84. L0000ca:
  85. clr.b d6
  86. move.b d7,d0
  87. bsr.w L0004a2
  88. tst.l d0
  89. bmi.w L00019e
  90. move.b d1,d0
  91. bsr.w L0004a2
  92. tst.l d0
  93. bmi.w L00019e
  94. bra.s L000112
  95. L0000e6:
  96. cmp.b #$1a,d1
  97. beq.s L00013c
  98. move.b d1,d0
  99. bsr.w L0004a2
  100. tst.l d0
  101. bmi.w L00019e
  102. cmp.b #$0a,d1
  103. beq.s L00011e
  104. cmp.b #$0d,d1
  105. beq.s L000088
  106. cmp.b #$09,d1
  107. bne.s L000112
  108. addq.b #8,d2
  109. and.b #$f8,d2
  110. bra.s L000114
  111. L000112:
  112. addq.b #1,d2
  113. L000114:
  114. cmp.b (L0005c8),d2
  115. bls.w L000088
  116. L00011e:
  117. clr.b d2
  118. L000120:
  119. bsr.w L0004b0
  120. tst.l d0
  121. bmi.s L00019e
  122. addq.b #1,d3
  123. cmp.b (L0005c9),d3
  124. bne.w L000086
  125. bsr.w L000206
  126. bra.w L000080
  127. L00013c:
  128. bsr.w L0004b0
  129. tst.l d0
  130. bmi.s L00019e
  131. cmp.b (L0005c9),d3
  132. bne.s L000150
  133. bsr.w L000206
  134. L000150:
  135. tst.b (L000802)
  136. beq.s L000162
  137. move.w (L0005ca),-(sp)
  138. DOS _CLOSE
  139. addq.l #2,sp
  140. L000162:
  141. pea.l (L0005c2)
  142. DOS _PRINT
  143. addq.l #4,sp
  144. clr.l d0
  145. L00016e:
  146. move.w d0,-(sp)
  147. DOS _EXIT2
  148. L000172:
  149. lea.l (L000519),a0
  150. bsr.w L0002ec
  151. move.l d0,-(sp)
  152. move.l a0,-(sp)
  153. move.w #$0002,-(sp)
  154. DOS _WRITE
  155. lea.l ($000a,sp),sp
  156. moveq.l #$01,d0
  157. bra.s L00016e
  158. L00018e:
  159. lea.l (L000569),a0
  160. bra.s L0001a4
  161. L000196:
  162. lea.l (L00058e),a0
  163. bra.s L0001a4
  164. L00019e:
  165. lea.l (L0005a8),a0
  166. L0001a4:
  167. bsr.w L0002ec
  168. move.l d0,-(sp)
  169. move.l a0,-(sp)
  170. move.w #$0002,-(sp)
  171. DOS _WRITE
  172. lea.l ($000a,sp),sp
  173. move.w #$0002,d0
  174. bra.s L00016e
  175. L0001bc:
  176. movem.l d0-d1,-(sp)
  177. move.w #$ffff,-(sp)
  178. move.w #$000e,-(sp)
  179. DOS _CONCTRL
  180. addq.l #4,sp
  181. move.b #$1e,d1
  182. cmp.b #$03,d0
  183. bne.s L0001da
  184. move.b #$1f,d1
  185. L0001da:
  186. move.b d1,(L0005c9)
  187. move.w #$ffff,-(sp)
  188. move.w #$0010,-(sp)
  189. DOS _CONCTRL
  190. addq.l #4,sp
  191. move.b #$3f,d1 ;'?'
  192. cmp.b #$01,d0
  193. bhi.s L0001fa
  194. move.b #$5f,d1 ;'_'
  195. L0001fa:
  196. move.b d1,(L0005c8)
  197. movem.l (sp)+,d0-d1
  198. rts
  199. L000206:
  200. tst.b d2
  201. beq.s L000214
  202. pea.l (L0005c5)
  203. DOS _PRINT
  204. addq.l #4,sp
  205. L000214:
  206. pea.l (L000512)
  207. DOS _PRINT
  208. addq.l #4,sp
  209. move.w #$0008,-(sp)
  210. DOS _KFLUSH
  211. addq.l #2,sp
  212. pea.l (L0005c2)
  213. DOS _PRINT
  214. addq.l #4,sp
  215. rts
  216. L000232:
  217. movem.l d1/a0-a2,-(sp)
  218. clr.l d1
  219. L000238:
  220. bsr.w L0002c4
  221. adda.l d0,a0
  222. tst.b (a0)
  223. beq.s L0002b4
  224. move.b (a0)+,d0
  225. cmp.b #$2d,d0 ;'-'
  226. beq.s L000250
  227. cmp.b #$2f,d0 ;'/'
  228. bne.s L000266
  229. L000250:
  230. move.b (a0)+,d0
  231. beq.s L0002b4
  232. cmp.b #$09,d0
  233. beq.s L000262
  234. cmp.b #$20,d0 ;' '
  235. beq.s L000262
  236. move.b d0,(a2)+
  237. L000262:
  238. clr.b (a2)+
  239. bra.s L000238
  240. L000266:
  241. addq.l #1,d1
  242. L000268:
  243. move.b d0,(a1)+
  244. cmp.b #$22,d0 ;'"'
  245. bne.s L00027e
  246. L000270:
  247. move.b (a0)+,d0
  248. beq.s L0002b4
  249. move.b d0,(a1)+
  250. cmp.b #$22,d0 ;'"'
  251. bne.s L000270
  252. bra.s L000290
  253. L00027e:
  254. cmp.b #$27,d0 ;'''
  255. bne.s L000290
  256. L000284:
  257. move.b (a0)+,d0
  258. beq.s L0002b4
  259. move.b d0,(a1)+
  260. cmp.b #$27,d0 ;'''
  261. bne.s L000284
  262. L000290:
  263. move.b (a0),d0
  264. beq.s L0002b4
  265. cmp.b #$2f,d0 ;'/'
  266. beq.s L0002b0
  267. cmp.b #$2d,d0 ;'-'
  268. beq.s L0002b0
  269. addq.l #1,a0
  270. cmp.b #$09,d0
  271. beq.s L0002b0
  272. cmp.b #$20,d0 ;' '
  273. beq.s L0002b0
  274. bra.s L000268
  275. L0002b0:
  276. clr.b (a1)+
  277. bra.s L000238
  278. L0002b4:
  279. clr.b (a1)+
  280. clr.b (a1)
  281. clr.b (a2)+
  282. clr.b (a2)
  283. move.l d1,d0
  284. movem.l (sp)+,d1/a0-a2
  285. rts
  286. L0002c4:
  287. move.l a0,-(sp)
  288. L0002c6:
  289. move.b (a0)+,d0
  290. cmpi.b #$20,d0 ;' '
  291. beq.s L0002c6
  292. cmpi.b #$09,d0
  293. beq.s L0002c6
  294. move.l a0,d0
  295. movea.l (sp)+,a0
  296. sub.l a0,d0
  297. subq.l #1,d0
  298. rts
  299. L0002de:
  300. movem.l a0-a1,-(sp)
  301. L0002e2:
  302. move.b (a1)+,(a0)+
  303. bne.s L0002e2
  304. movem.l (sp)+,a0-a1
  305. rts
  306. L0002ec:
  307. move.l a0,-(sp)
  308. moveq.l #$ff,d0
  309. L0002f0:
  310. addi.l #$00000001,d0
  311. tst.b (a0)+
  312. bne.s L0002f0
  313. movea.l (sp)+,a0
  314. rts
  315. L0002fe:
  316. link.w a6,#-$003c
  317. movem.l d0-d6/a1-a2,-(sp)
  318. move.w #$ffff,d2
  319. movea.l a0,a1
  320. bsr.s L0002ec
  321. move.w d0,d1
  322. tst.w d1
  323. beq.w L000452
  324. clr.b d3
  325. L000318:
  326. move.b (a1)+,d4
  327. beq.s L00034e
  328. tst.b d3
  329. beq.s L000336
  330. cmp.b #$01,d3
  331. beq.s L000330
  332. cmp.b #$2e,d4 ;'.'
  333. beq.s L000336
  334. clr.b d3
  335. bra.s L000336
  336. L000330:
  337. move.b #$02,d3
  338. bra.s L000318
  339. L000336:
  340. cmp.b #$80,d4
  341. bcs.s L000318
  342. cmp.b #$a0,d4
  343. bcs.s L000348
  344. cmp.b #$e0,d4
  345. bcs.s L000318
  346. L000348:
  347. move.b #$01,d3
  348. bra.s L000318
  349. L00034e:
  350. subq.l #1,a1
  351. tst.b d3
  352. bne.s L000370
  353. cmpi.b #$5c,(-$0001,a1) ;'\'
  354. bne.s L000370
  355. cmp.w #$0001,d1
  356. beq.w L000452
  357. cmpi.b #$3a,(-$0002,a1) ;':'
  358. beq.w L000452
  359. clr.b -(a1)
  360. L000370:
  361. cmpi.b #$3a,(-$0001,a1) ;':'
  362. beq.w L000452
  363. cmpi.b #$2e,(-$0001,a1) ;'.'
  364. bne.s L0003a8
  365. tst.b d3
  366. bne.s L0003a8
  367. cmp.w #$0001,d1
  368. beq.s L00039c
  369. cmpi.b #$3a,(-$0002,a1) ;':'
  370. beq.s L00039c
  371. cmpi.b #$5c,(-$0002,a1) ;'\'
  372. bne.s L0003a8
  373. L00039c:
  374. move.b #$2a,(-$0001,a1) ;'*'
  375. move.b #$2e,(a1)+ ;'.'
  376. clr.b (a1)
  377. L0003a8:
  378. movea.l a0,a2
  379. L0003aa:
  380. move.b (a2)+,d0
  381. beq.s L0003bc
  382. cmp.b #$2a,d0 ;'*'
  383. beq.s L0003d8
  384. cmp.b #$3f,d0 ;'?'
  385. beq.s L0003d8
  386. bra.s L0003aa
  387. L0003bc:
  388. move.w #$0010,-(sp)
  389. move.l a0,-(sp)
  390. pea.l (-$003c,a6)
  391. DOS _FILES
  392. lea.l ($000a,sp),sp
  393. tst.l d0
  394. bmi.s L0003d8
  395. btst.b #$04,(-$0027,a6)
  396. bne.s L00044e
  397. L0003d8:
  398. clr.b d3
  399. movea.l a0,a2
  400. clr.b d5
  401. clr.b d6
  402. L0003e0:
  403. move.b (a2)+,d0
  404. beq.s L000446
  405. tst.b d3
  406. beq.s L0003ec
  407. clr.b d3
  408. bra.s L0003e0
  409. L0003ec:
  410. cmp.b #$80,d0
  411. bcs.s L000408
  412. cmp.b #$a0,d0
  413. bcs.s L0003fe
  414. cmp.b #$e0,d0
  415. bcs.s L000408
  416. L0003fe:
  417. move.b #$01,d3
  418. move.b #$20,d5 ;' '
  419. bra.s L0003e0
  420. L000408:
  421. cmp.b #$2e,d0 ;'.'
  422. bne.s L000428
  423. tst.b d5
  424. beq.s L000424
  425. cmp.b #$3a,d5 ;':'
  426. beq.s L000424
  427. cmp.b #$5c,d5 ;'\'
  428. beq.s L000424
  429. cmp.b #$2e,d5 ;'.'
  430. bne.s L000428
  431. L000424:
  432. tst.b (a2)
  433. beq.s L00044e
  434. L000428:
  435. cmpi.b #$5c,(a2) ;'\'
  436. bne.s L000434
  437. tst.b ($0001,a2)
  438. beq.s L000452
  439. L000434:
  440. move.b d0,d5
  441. cmp.b #$2e,d0 ;'.'
  442. beq.s L000442
  443. cmp.b #$5c,d0 ;'\'
  444. bne.s L0003e0
  445. L000442:
  446. move.b d0,d6
  447. bra.s L0003e0
  448. L000446:
  449. cmp.b #$2e,d6 ;'.'
  450. beq.s L00046a
  451. bra.s L000458
  452. L00044e:
  453. move.b #$5c,(a1)+ ;'\'
  454. L000452:
  455. move.b #$2a,(a1)+ ;'*'
  456. clr.w d2
  457. L000458:
  458. move.b #$2e,(a1)+ ;'.'
  459. move.b #$2a,(a1)+ ;'*'
  460. tst.w d2
  461. beq.s L000468
  462. clr.b (-$0001,a1)
  463. L000468:
  464. clr.b (a1)
  465. L00046a:
  466. movem.l (sp)+,d0-d6/a1-a2
  467. unlk a6
  468. rts
  469. L000472:
  470. tst.l d4
  471. bne.s L00049a
  472. move.l #$00000400,-(sp)
  473. pea.l (L00091a)
  474. move.w (L0005ca),-(sp)
  475. DOS _READ
  476. lea.l ($000a,sp),sp
  477. lea.l (L00091a),a1
  478. tst.l d0
  479. bls.s L0004a0
  480. move.l d0,d4
  481. L00049a:
  482. move.b (a1)+,d1
  483. subq.l #1,d4
  484. moveq.l #$01,d0
  485. L0004a0:
  486. rts
  487. L0004a2:
  488. move.b d0,(a2)+
  489. addq.l #1,d5
  490. moveq.l #$01,d0
  491. cmp.l #$00000400,d5
  492. bne.s L0004d6
  493. L0004b0:
  494. tst.l d5
  495. beq.s L0004d6
  496. move.l d5,-(sp)
  497. pea.l (L000d1a)
  498. move.w (L0005cc),-(sp)
  499. DOS _WRITE
  500. lea.l ($000a,sp),sp
  501. tst.l d0
  502. bmi.s L0004d6
  503. clr.l d5
  504. lea.l (L000d1a),a2
  505. moveq.l #$01,d0
  506. L0004d6:
  507. rts
  508. L0004d8:
  509. clr.w -(sp)
  510. DOS _DUP
  511. tst.l d0
  512. bmi.w L000196
  513. move.w d0,(L0005ca)
  514. DOS _CLOSE
  515. move.w #$0002,(sp)
  516. DOS _DUP
  517. addq.l #2,sp
  518. rts
  519. L0004f4:
  520. move.w #$0001,-(sp)
  521. DOS _DUP
  522. tst.l d0
  523. bmi.w L000196
  524. move.w d0,(L0005cc)
  525. DOS _CLOSE
  526. move.w #$0002,(sp)
  527. DOS _DUP
  528. addq.l #2,sp
  529. rts
  530. .data
  531. L000512:
  532. .dc.b '-more-',$00
  533. L000519:
  534. .dc.b '使用法:more[ファイル名]',$0d,$0a
  535. .dc.b $09,'ファイル名を指定しない場合、標準入力から入力する',$0d,$0a,$00
  536. L000569:
  537. .dc.b 'more: ファイルがオ-プンできません',$0d,$0a,$00
  538. L00058e:
  539. .dc.b 'more: 読み込みできません',$0d,$0a
  540. L0005a8:
  541. .dc.b 'more: 書き込みできません',$0d,$0a
  542. L0005c2:
  543. .dc.b $0d,$0a,$00
  544. L0005c5:
  545. .dc.b $20,$0d,$00
  546. .bss
  547. L0005c8:
  548. .ds.b 1
  549. L0005c9:
  550. .ds.b 1
  551. L0005ca:
  552. .ds.w 1
  553. L0005cc:
  554. .ds.b 6
  555. L0005d2:
  556. .ds.b 280
  557. L0006ea:
  558. .ds.b 280
  559. L000802:
  560. .ds.b 280
  561. L00091a:
  562. .ds.b 1024
  563. L000d1a:
  564. .ds.b 2048
  565. L00151a:
  566. .ds.b 2
  567. L00151c:
  568. .end L000000