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.

cmd.s 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. ;=============================================
  2. ; Filename cmd.x
  3. ; Time Stamp Fri Jan 18 05:42:11 2019
  4. ;
  5. ; Base address 000000
  6. ; Exec address 00001a
  7. ; Text size 0002a0 byte(s)
  8. ; Data size 000000 byte(s)
  9. ; Bss size 001000 byte(s)
  10. ; 40 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gcmd.lab --overwrite cmd.x cmd.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. .dc.l $00000000
  22. L000004:
  23. .dc.l $00000000
  24. L000008:
  25. .dc.l $00000000
  26. L00000c:
  27. .dc.b 'Command2.03Hu',$00
  28. L00001a:
  29. lea.l (L0012a0),sp
  30. DOS _VERNUM
  31. cmp.w #$0132,d0
  32. bcs.w L0000da
  33. bsr.w L000252
  34. lea.l (L001000),sp
  35. move.l sp,(L000008)
  36. lea.l (L0002a0),a0
  37. lea.l (L000000-$000080),a1
  38. bsr.w L000208
  39. lea.l (L000000-$00003c),a1
  40. bsr.w L000208
  41. move.l d0,-(sp)
  42. lea.l (L000000-$0000f0),a0
  43. lea.l (L001000),a1
  44. suba.l a0,a1
  45. move.l a1,-(sp)
  46. move.l a0,-(sp)
  47. DOS _SETBLOCK
  48. addq.l #8,sp
  49. move.l (sp)+,d0
  50. bne.s L000096
  51. move.l #$00ffffff,-(sp)
  52. DOS _MALLOC
  53. sub.l #$81000000,d0
  54. move.l d0,d1
  55. move.l d0,(sp)
  56. DOS _MALLOC
  57. addq.l #4,sp
  58. tst.l d0
  59. bmi.s L0000ea
  60. add.l d0,d1
  61. move.l d0,-(sp)
  62. bsr.w L00018e
  63. move.l (sp)+,d0
  64. addq.l #4,d0
  65. L000096:
  66. move.l d0,(L000004)
  67. movea.l d0,a0
  68. lea.l ($0012,a0),a2
  69. bsr.w L000236
  70. bne.s L0000e2
  71. subq.l #4,a0
  72. clr.l d0
  73. L0000ac:
  74. tst.l (a0)
  75. beq.s L0000be
  76. tst.l ($0004,a0)
  77. beq.s L0000ba
  78. add.l ($0010,a0),d0
  79. L0000ba:
  80. movea.l (a0),a0
  81. bra.s L0000ac
  82. L0000be:
  83. move.l d0,-(sp)
  84. DOS _MALLOC
  85. addq.l #4,sp
  86. tst.l d0
  87. bmi.s L0000ea
  88. move.l d0,(L000000)
  89. movea.l (L000004),a0
  90. move.l d0,(a0)
  91. jmp ($0010,a0)
  92. L0000da:
  93. lea.l (L000171),a0
  94. bra.s L0000f8
  95. L0000e2:
  96. lea.l (L000152),a0
  97. bra.s L0000f8
  98. L0000ea:
  99. lea.l (L000116),a0
  100. bra.s L0000f8
  101. L0000f2:
  102. lea.l (L000139),a0
  103. L0000f8:
  104. movea.l a0,a1
  105. moveq.l #$ff,d0
  106. L0000fc:
  107. addq.l #1,d0
  108. tst.b (a0)+
  109. bne.s L0000fc
  110. move.l d0,-(sp)
  111. move.l a1,-(sp)
  112. move.w #$0002,-(sp)
  113. DOS _WRITE
  114. lea.l ($000a,sp),sp
  115. move.w #$0700,-(sp)
  116. DOS _EXIT2
  117. L000116:
  118. .dc.b 'メモリが不足です',$0d,$0a
  119. .dc.b '異常終了します',$0d,$0a,$00
  120. L000139:
  121. .dc.b '常駐部が読み込めません',$0d,$0a,$00
  122. L000152:
  123. .dc.b '常駐部のバージョンが違います',$0d,$0a,$00
  124. L000171:
  125. .dc.b 'このOSでは使用できません',$0d,$0a,$00
  126. L00018e:
  127. move.l d0,-(sp)
  128. move.b #$01,d3
  129. movem.l d0,-(sp)
  130. DOS _VERNUM
  131. cmp.w #$0162,d0
  132. bcs.s L0001ae
  133. move.b (L000000-$00009c),d3
  134. addq.b #1,d3
  135. bne.s L0001ae
  136. move.b #$01,d3
  137. L0001ae:
  138. movem.l (sp)+,d0
  139. bsr.s L0001e6
  140. tst.l d0
  141. bmi.w L0000f2
  142. L0001ba:
  143. movea.l d4,a0
  144. L0001bc:
  145. clr.l (a0)
  146. addq.b #1,d3
  147. move.l d4,d0
  148. bsr.s L0001e6
  149. tst.l d0
  150. bmi.s L0001d4
  151. lea.l ($0014,a0),a2
  152. bsr.s L000236
  153. beq.s L0001ba
  154. move.l a0,d4
  155. bra.s L0001bc
  156. L0001d4:
  157. move.l (sp)+,d0
  158. move.l a0,d1
  159. addq.l #4,d1
  160. sub.l d0,d1
  161. move.l d1,-(sp)
  162. move.l d0,-(sp)
  163. DOS _SETBLOCK
  164. addq.l #8,sp
  165. rts
  166. L0001e6:
  167. movem.l a0,-(sp)
  168. move.l d0,d2
  169. bsr.s L000210
  170. tst.l d0
  171. bmi.s L000202
  172. movea.l d2,a0
  173. move.l d2,d4
  174. add.l ($0008,a0),d4
  175. addq.l #5,d4
  176. and.b #$fe,d4
  177. move.l d4,(a0)
  178. L000202:
  179. movem.l (sp)+,a0
  180. rts
  181. L000208:
  182. move.b (a1)+,(a0)+
  183. bne.s L000208
  184. subq.l #1,a0
  185. rts
  186. L000210:
  187. movem.l d1-d2/a0,-(sp)
  188. move.l d1,-(sp)
  189. addq.l #4,d2
  190. move.l d2,-(sp)
  191. pea.l (L0002a0)
  192. ori.b #$03,(sp)
  193. move.w #$0003,-(sp)
  194. or.b d3,(sp)
  195. DOS _EXEC
  196. lea.l ($000e,sp),sp
  197. movem.l (sp)+,d1-d2/a0
  198. rts
  199. L000236:
  200. movem.l d0-d1/a3,-(sp)
  201. lea.l (L00000c),a3
  202. move.w #$0009,d0
  203. L000244:
  204. move.b (a2)+,d1
  205. cmp.b (a3)+,d1
  206. dbne.w d0,L000244
  207. movem.l (sp)+,d0-d1/a3
  208. rts
  209. L000252:
  210. clr.l -(sp)
  211. DOS _SUPER
  212. move.l d0,(sp)
  213. lea.l (L0003a0),a1
  214. lea.l (L000000-$000100),a0
  215. L000264:
  216. move.l ($0004,a0),d0
  217. move.l d0,d1
  218. rol.l #8,d1
  219. tst.b d1
  220. bne.s L000278
  221. move.l d0,(a1)+
  222. beq.s L00027a
  223. movea.l d0,a0
  224. bra.s L000264
  225. L000278:
  226. clr.l (a1)
  227. L00027a:
  228. lea.l (L0003a0),a1
  229. L000280:
  230. move.l (a1)+,d0
  231. beq.s L000294
  232. movea.l d0,a0
  233. lea.l ($010c,a0),a2
  234. bsr.s L000236
  235. bne.s L000280
  236. move.l ($0104,a0),d0
  237. beq.s L000280
  238. L000294:
  239. move.l (sp),d1
  240. move.l d0,(sp)
  241. move.l d1,-(sp)
  242. DOS _SUPER
  243. move.l (sp)+,d0
  244. rts
  245. .bss
  246. L0002a0:
  247. .ds.b 256
  248. L0003a0:
  249. .ds.b 3168
  250. L001000:
  251. .ds.b 672
  252. L0012a0:
  253. .end L00001a