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.

process.s 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  1. ;=============================================
  2. ; Filename process.x
  3. ; Time Stamp Mon Jan 2 12:00:00 1995
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 0006a4 byte(s)
  8. ; Data size 000244 byte(s)
  9. ; Bss size 004404 byte(s)
  10. ; 106 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gprocess.lab --overwrite process.x process.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 (L004cec),sp
  22. DOS _VERNUM
  23. cmp.w #$0332,d0
  24. bcc.w L0001f2
  25. clr.l -(sp)
  26. DOS _SUPER
  27. addq.l #4,sp
  28. pea.l (L0006a4)
  29. DOS _PRINT
  30. addq.l #4,sp
  31. clr.b (L0008e8)
  32. clr.b (L0008e9)
  33. clr.b (L0008ea)
  34. DOS _VERNUM
  35. cmp.w #$0148,d0
  36. bcs.s L000042
  37. move.b #-$01,(L0008ea)
  38. L000042:
  39. movea.l (L000000-$0000e0),a0
  40. addq.l #1,a0
  41. lea.l (L0008ec),a1
  42. lea.l (L0028ec),a2
  43. bsr.w L000376
  44. tst.l d0
  45. bne.w L0001d2
  46. lea.l (L0028ec),a0
  47. L000066:
  48. tst.b (a0)
  49. beq.s L0000bc
  50. bsr.w L000418
  51. L00006e:
  52. move.b (a0)+,d0
  53. beq.s L000066
  54. cmp.b #$61,d0 ;'a'
  55. beq.s L00009e
  56. cmp.b #$62,d0 ;'b'
  57. bne.w L0001d2
  58. tst.b (L0008ea)
  59. beq.w L0001d2
  60. tst.b (L0008e8)
  61. bne.w L0001d2
  62. move.b #-$01,(L0008e9)
  63. bra.s L00006e
  64. L00009e:
  65. tst.b (L0008ea)
  66. beq.w L0001d2
  67. tst.b (L0008e9)
  68. bne.w L0001d2
  69. move.b #-$01,(L0008e8)
  70. bra.s L00006e
  71. L0000bc:
  72. tst.b (L0008e9)
  73. bne.w L0001b0
  74. lea.l (L000000-$000100),a0
  75. lea.l (L0028ec),a1
  76. clr.l (a1)+
  77. clr.l (a1)+
  78. L0000d6:
  79. move.l ($0004,a0),d0
  80. move.l a0,(a1)+
  81. move.l d0,(a1)+
  82. tst.l d0
  83. beq.s L0000ec
  84. tst.b ($0004,a0)
  85. bne.s L0000ec
  86. movea.l d0,a0
  87. bra.s L0000d6
  88. L0000ec:
  89. movea.l a0,a2
  90. lea.l (L0028ec),a0
  91. L0000f4:
  92. cmpa.l a1,a0
  93. bcc.s L00010c
  94. move.l (-$0008,a1),d0
  95. move.l (-$0004,a1),d1
  96. move.l ($0004,a0),-(a1)
  97. move.l (a0),-(a1)
  98. move.l d0,(a0)+
  99. move.l d1,(a0)+
  100. bra.s L0000f4
  101. L00010c:
  102. lea.l (L0008ec),a1
  103. L000112:
  104. move.l ($0004,a2),d0
  105. move.l a2,(a1)+
  106. move.l d0,(a1)+
  107. tst.l ($000c,a2)
  108. beq.s L000126
  109. movea.l ($000c,a2),a2
  110. bra.s L000112
  111. L000126:
  112. clr.l (a1)+
  113. clr.l (a1)
  114. pea.l (L00079d)
  115. DOS _PRINT
  116. addq.l #4,sp
  117. lea.l (L0028ec),a2
  118. L00013a:
  119. tst.l (a2)
  120. beq.s L000150
  121. bsr.w L000202
  122. tst.l ($0008,a2)
  123. beq.s L000150
  124. bsr.w L0002c6
  125. addq.l #8,a2
  126. bra.s L00013a
  127. L000150:
  128. clr.b d4
  129. lea.l (L0008ec),a2
  130. L000158:
  131. tst.l (a2)
  132. beq.s L000182
  133. cmpi.b #$ff,($0004,a2)
  134. bne.s L00017e
  135. tst.b d4
  136. bne.s L000172
  137. pea.l (L0008e4)
  138. DOS _PRINT
  139. addq.l #4,sp
  140. L000172:
  141. bsr.w L000278
  142. bsr.w L0002c6
  143. move.b #-$01,d4
  144. L00017e:
  145. addq.l #8,a2
  146. bra.s L000158
  147. L000182:
  148. clr.b d4
  149. lea.l (L0008ec),a2
  150. L00018a:
  151. tst.l (a2)
  152. beq.s L0001b0
  153. cmpi.b #$fe,($0004,a2)
  154. bne.s L0001ac
  155. tst.b d4
  156. bne.s L0001a4
  157. pea.l (L0008e4)
  158. DOS _PRINT
  159. addq.l #4,sp
  160. L0001a4:
  161. bsr.w L0002aa
  162. move.b #-$01,d4
  163. L0001ac:
  164. addq.l #8,a2
  165. bra.s L00018a
  166. L0001b0:
  167. move.b (L0008e8),d0
  168. or.b (L0008e9),d0
  169. beq.s L0001d0
  170. bsr.w L00045e
  171. tst.l d0
  172. beq.s L0001d0
  173. pea.l (BackgroundManagerNotLoadedString)
  174. DOS _PRINT
  175. addq.l #4,sp
  176. L0001d0:
  177. DOS _EXIT
  178. L0001d2:
  179. tst.b (L0008ea)
  180. beq.s L0001e2
  181. pea.l (L0006d8)
  182. bra.s L0001e8
  183. L0001e2:
  184. pea.l (L00078b)
  185. L0001e8:
  186. DOS _PRINT
  187. addq.l #4,sp
  188. move.w #$0001,-(sp)
  189. DOS _EXIT2
  190. L0001f2:
  191. pea.l (L00088f)
  192. DOS _PRINT
  193. addq.l #4,sp
  194. move.w #$0002,-(sp)
  195. DOS _EXIT2
  196. L000202:
  197. move.l #$00006800,d2
  198. tst.l ($0004,a2)
  199. beq.s L000216
  200. move.l (a2),d2
  201. add.l #$00000010,d2
  202. L000216:
  203. movea.l (a2),a1
  204. move.l ($0008,a1),d3
  205. bsr.w L000310
  206. lea.l (L0008bf),a0
  207. tst.l ($0004,a2)
  208. beq.s L000240
  209. movea.l ($0008,a2),a1
  210. move.w ($0044,a1),d0
  211. and.w #$2000,d0
  212. bne.s L000240
  213. lea.l (L0008b6),a0
  214. L000240:
  215. move.l a0,-(sp)
  216. DOS _PRINT
  217. addq.l #4,sp
  218. lea.l (L0008ac),a1
  219. tst.l ($0004,a2)
  220. beq.s L000266
  221. movea.l (a2),a1
  222. adda.l #$00000080,a1
  223. move.l a1,-(sp)
  224. DOS _PRINT
  225. addq.l #4,sp
  226. adda.l #$00000044,a1
  227. L000266:
  228. move.l a1,-(sp)
  229. DOS _PRINT
  230. addq.l #4,sp
  231. pea.l (L0008e4)
  232. DOS _PRINT
  233. addq.l #4,sp
  234. rts
  235. L000278:
  236. move.l (a2),d2
  237. add.l #$00000010,d2
  238. movea.l (a2),a1
  239. move.l ($0008,a1),d3
  240. bsr.w L000310
  241. pea.l (L0008c8)
  242. DOS _PRINT
  243. addq.l #4,sp
  244. movea.l (a2),a1
  245. adda.l #$00000080,a1
  246. move.l a1,-(sp)
  247. DOS _PRINT
  248. addq.l #4,sp
  249. adda.l #$00000044,a1
  250. bra.s L000266
  251. L0002aa:
  252. move.l (a2),d2
  253. add.l #$00000010,d2
  254. movea.l (a2),a1
  255. move.l ($0008,a1),d3
  256. bsr.s L000310
  257. pea.l (L0008d1)
  258. DOS _PRINT
  259. addq.l #4,sp
  260. rts
  261. L0002c6:
  262. lea.l (L0008ec),a3
  263. L0002cc:
  264. move.l (a3),d2
  265. tst.l d2
  266. beq.s L00030e
  267. move.l ($0004,a3),d1
  268. tst.l d1
  269. beq.s L00030a
  270. cmp.l (a2),d1
  271. bne.s L00030a
  272. lea.l (L0028ec),a4
  273. L0002e4:
  274. tst.l (a4)
  275. beq.s L0002f0
  276. cmp.l (a4),d2
  277. beq.s L00030a
  278. addq.l #8,a4
  279. bra.s L0002e4
  280. L0002f0:
  281. move.l (a3),d2
  282. add.l #$00000010,d2
  283. movea.l (a3),a1
  284. move.l ($0008,a1),d3
  285. bsr.s L000310
  286. pea.l (L0008dc)
  287. DOS _PRINT
  288. addq.l #4,sp
  289. L00030a:
  290. addq.l #8,a3
  291. bra.s L0002cc
  292. L00030e:
  293. rts
  294. L000310:
  295. movem.l d1-d3,-(sp)
  296. move.l d2,d1
  297. bsr.s L00033a
  298. move.w #$0020,-(sp) ;' '
  299. DOS _PUTCHAR
  300. addq.l #2,sp
  301. move.l d3,d1
  302. subq.l #1,d1
  303. bsr.s L00033a
  304. move.w #$0020,-(sp) ;' '
  305. DOS _PUTCHAR
  306. addq.l #2,sp
  307. sub.l d2,d3
  308. move.l d3,d1
  309. bsr.s L00033a
  310. movem.l (sp)+,d1-d3
  311. rts
  312. L00033a:
  313. movem.l d2-d4,-(sp)
  314. bsr.s L000346
  315. movem.l (sp)+,d2-d4
  316. rts
  317. L000346:
  318. move.l d1,d3
  319. swap.w d3
  320. bsr.s L000356
  321. move.w d1,d2
  322. move.w d2,d3
  323. ror.w #8,d3
  324. bsr.s L000356
  325. move.b d2,d3
  326. L000356:
  327. move.b d3,d4
  328. ror.b #4,d4
  329. bsr.s L00035e
  330. move.b d3,d4
  331. L00035e:
  332. and.w #$000f,d4
  333. add.b #$30,d4 ;'0'
  334. cmp.b #$39,d4 ;'9'
  335. bls.s L00036e
  336. addq.b #7,d4
  337. L00036e:
  338. move.w d4,-(sp)
  339. DOS _PUTCHAR
  340. addq.l #2,sp
  341. rts
  342. L000376:
  343. movem.l d1/a0-a2,-(sp)
  344. clr.l d1
  345. L00037c:
  346. bsr.w L000406
  347. tst.b (a0)
  348. beq.s L0003f6
  349. move.b (a0)+,d0
  350. cmp.b #$2d,d0 ;'-'
  351. beq.s L000392
  352. cmp.b #$2f,d0 ;'/'
  353. bne.s L0003a8
  354. L000392:
  355. move.b (a0)+,d0
  356. beq.s L0003f6
  357. cmp.b #$09,d0
  358. beq.s L0003a4
  359. cmp.b #$20,d0 ;' '
  360. beq.s L0003a4
  361. move.b d0,(a2)+
  362. L0003a4:
  363. clr.b (a2)+
  364. bra.s L00037c
  365. L0003a8:
  366. addq.l #1,d1
  367. L0003aa:
  368. move.b d0,(a1)+
  369. cmp.b #$22,d0 ;'"'
  370. bne.s L0003c0
  371. L0003b2:
  372. move.b (a0)+,d0
  373. beq.s L0003f6
  374. move.b d0,(a1)+
  375. cmp.b #$22,d0 ;'"'
  376. bne.s L0003b2
  377. bra.s L0003d2
  378. L0003c0:
  379. cmp.b #$27,d0 ;'''
  380. bne.s L0003d2
  381. L0003c6:
  382. move.b (a0)+,d0
  383. beq.s L0003f6
  384. move.b d0,(a1)+
  385. cmp.b #$27,d0 ;'''
  386. bne.s L0003c6
  387. L0003d2:
  388. move.b (a0),d0
  389. beq.s L0003f6
  390. cmp.b #$2f,d0 ;'/'
  391. beq.s L0003f2
  392. cmp.b #$2d,d0 ;'-'
  393. beq.s L0003f2
  394. addq.l #1,a0
  395. cmp.b #$09,d0
  396. beq.s L0003f2
  397. cmp.b #$20,d0 ;' '
  398. beq.s L0003f2
  399. bra.s L0003aa
  400. L0003f2:
  401. clr.b (a1)+
  402. bra.s L00037c
  403. L0003f6:
  404. clr.b (a1)+
  405. clr.b (a1)
  406. clr.b (a2)+
  407. clr.b (a2)
  408. move.l d1,d0
  409. movem.l (sp)+,d1/a0-a2
  410. rts
  411. L000406:
  412. move.b (a0)+,d0
  413. cmpi.b #$20,d0 ;' '
  414. beq.s L000406
  415. cmpi.b #$09,d0
  416. beq.s L000406
  417. subq.l #1,a0
  418. rts
  419. L000418:
  420. movem.l d0-d1/a0,-(sp)
  421. clr.b d1
  422. L00041e:
  423. move.b (a0),d0
  424. beq.s L000458
  425. tst.b d1
  426. beq.s L00042a
  427. clr.b d1
  428. bra.s L000440
  429. L00042a:
  430. cmp.b #$80,d0
  431. bcs.s L000444
  432. cmp.b #$a0,d0
  433. bcs.s L00043c
  434. cmp.b #$e0,d0
  435. bcs.s L000444
  436. L00043c:
  437. move.b #$01,d1
  438. L000440:
  439. addq.l #1,a0
  440. bra.s L00041e
  441. L000444:
  442. cmpi.b #$41,d0 ;'A'
  443. bcs.s L000454
  444. cmpi.b #$5a,d0 ;'Z'
  445. bhi.s L000454
  446. add.b #$20,d0 ;' '
  447. L000454:
  448. move.b d0,(a0)+
  449. bra.s L00041e
  450. L000458:
  451. movem.l (sp)+,d0-d1/a0
  452. rts
  453. L00045e:
  454. DOS _CHANGE_PR
  455. pea.l (L000566)
  456. clr.w -(sp)
  457. DOS _GET_PR
  458. addq.l #6,sp
  459. tst.l d0
  460. bmi.s L00049a
  461. pea.l (L0005de)
  462. DOS _PRINT
  463. addq.l #4,sp
  464. clr.l d7
  465. bsr.s L0004a2
  466. L00047e:
  467. addq.w #1,d7
  468. cmp.w #$0020,d7 ;' '
  469. bcc.s L00049e
  470. pea.l (L000566)
  471. move.w d7,-(sp)
  472. DOS _GET_PR
  473. addq.l #6,sp
  474. tst.l d0
  475. bmi.s L00047e
  476. bsr.s L0004a2
  477. bra.s L00047e
  478. L00049a:
  479. moveq.l #$ff,d0
  480. rts
  481. L00049e:
  482. clr.l d0
  483. rts
  484. L0004a2:
  485. lea.l (L000566),a5
  486. move.l ($0008,a5),d0
  487. beq.s L000520
  488. add.l #$00000010,d0
  489. bsr.s L000532
  490. bsr.w L00055c
  491. move.l d7,d0
  492. bsr.w L000542
  493. bsr.w L00055c
  494. lea.l ($0060,a5),a0
  495. moveq.l #$0e,d1
  496. bsr.s L000522
  497. bsr.w L00055c
  498. move.b ($0004,a5),d0
  499. bne.s L0004e0
  500. move.b ($0006,a5),d0
  501. addq.w #1,d0
  502. bsr.s L000542
  503. bra.s L0004ea
  504. L0004e0:
  505. pea.l (L0006a1)
  506. DOS _PRINT
  507. addq.l #4,sp
  508. L0004ea:
  509. bsr.s L00055c
  510. move.l ($0070,a5),d0
  511. bsr.s L000532
  512. bsr.s L00055c
  513. move.l ($0052,a5),d0
  514. bsr.s L000532
  515. bsr.s L00055c
  516. move.l ($000c,a5),d0
  517. bsr.s L000532
  518. bsr.s L00055c
  519. move.l ($005c,a5),d0
  520. bsr.s L000532
  521. bsr.s L00055c
  522. movea.l ($005c,a5),a1
  523. IOCS _B_LPEEK
  524. bsr.s L000532
  525. pea.l (L00069e)
  526. DOS _PRINT
  527. addq.l #4,sp
  528. L000520:
  529. rts
  530. L000522:
  531. move.b (a0)+,d0
  532. bne.s L00052a
  533. subq.l #1,a0
  534. moveq.l #$20,d0 ;' '
  535. L00052a:
  536. bsr.s L00055e
  537. dbra.w d1,L000522
  538. rts
  539. L000532:
  540. move.w d0,-(sp)
  541. swap.w d0
  542. bsr.s L000542
  543. move.w (sp)+,d0
  544. move.w d0,-(sp)
  545. lsr.w #8,d0
  546. bsr.s L000542
  547. move.w (sp)+,d0
  548. L000542:
  549. move.w d0,-(sp)
  550. lsr.w #4,d0
  551. bsr.s L00054a
  552. move.w (sp)+,d0
  553. L00054a:
  554. and.w #$000f,d0
  555. cmp.w #$000a,d0
  556. bcs.s L000556
  557. addq.w #7,d0
  558. L000556:
  559. add.w #$0030,d0
  560. bra.s L00055e
  561. L00055c:
  562. moveq.l #$20,d0 ;' '
  563. L00055e:
  564. move.w d0,-(sp)
  565. DOS _PUTCHAR
  566. addq.l #2,sp
  567. rts
  568. L000566:
  569. .dc.l $00000000,$00000100
  570. .dc.l $00000000,$00000000
  571. .dc.l $00000000,$00000001
  572. .dc.l $00000002,$00000003
  573. .dc.l $00000004,$00000005
  574. .dc.l $00000006,$00000007
  575. .dc.l $00000000,$00000001
  576. .dc.l $00000002,$00000003
  577. .dc.l $00000004,$00000005
  578. .dc.l $00000006,$00000000
  579. .dc.l $00000000,$00000000
  580. .dc.l $00000000,$00000000
  581. L0005c6:
  582. .dc.b 'Human68k system',$00,$00,$00,$00,$00,$00,$00,$00,$00
  583. L0005de:
  584. .dc.b '---------------------------------------------------------------',$0d,$0a
  585. .dc.b 'PSP ID ID プログラム名 モード スリープ SSP USP バッファ 長さ',$0d,$0a
  586. .dc.b '------ -- --------------- -- ------ ------ ------ ------ ------'
  587. L00069e:
  588. .dc.b $0d,$0a,$00
  589. L0006a1:
  590. .dc.b $2d,$2d,$00
  591. .data
  592. L0006a4:
  593. .dc.b 'X68k Process v2.10 Copyright 1989-93 SHARP/Hudson',$0d,$0a,$00
  594. L0006d8:
  595. .dc.b '使用法:process[スイッチ]',$0d,$0a
  596. .dc.b $09,'/b',$09,'バックグラウンドプロセスの表示',$0d,$0a
  597. .dc.b $09,'/a',$09,'全プロセスの表示',$0d,$0a
  598. .dc.b $0d,$0a
  599. .dc.b $09,'/a,/bはどちらか1つを指定する',$0d,$0a
  600. .dc.b $09,'スイッチがない場合はフォアグラウンドプロセスを表示する',$0d,$0a,$00
  601. L00078b:
  602. .dc.b '使用法:process',$0d,$0a,$00
  603. L00079d:
  604. .dc.b '---------------------------------------------------------------',$0d,$0a
  605. .dc.b ' 開始 終了 長さ モード ファイル名',$0d,$0a
  606. .dc.b '------ ------ ------ ------ -----------------------------------',$0d,$0a,$00
  607. BackgroundManagerNotLoadedString:
  608. .dc.b 'バックグラウンドタスクマネージャーが組み込まれていません',$0d,$0a,$00
  609. L00088f:
  610. .dc.b 'このOSでは使用できません',$0d,$0a,$00
  611. L0008ac:
  612. .dc.b 'Human.sys',$00
  613. L0008b6:
  614. .dc.b ' USER ',$00
  615. L0008bf:
  616. .dc.b ' SUPER ',$00
  617. L0008c8:
  618. .dc.b ' KEEP ',$00
  619. L0008d1:
  620. .dc.b ' MEMDRV ',$0d,$0a,$00
  621. L0008dc:
  622. .dc.b ' MALLOC '
  623. L0008e4:
  624. .dc.b $0d,$0a,$00,$00
  625. .bss
  626. L0008e8:
  627. .ds.b 1
  628. L0008e9:
  629. .ds.b 1
  630. L0008ea:
  631. .ds.b 2
  632. L0008ec:
  633. .ds.b 8192
  634. L0028ec:
  635. .ds.b 9216
  636. L004cec:
  637. .end L000000