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.

sys.s 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. ;=============================================
  2. ; Filename sys.x
  3. ;
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 000388 byte(s)
  8. ; Data size 000000 byte(s)
  9. ; Bss size 010494 byte(s)
  10. ; 38 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gsys.lab --overwrite sys.x sys.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 (StackBottom),sp
  22. move.l ($0008,a0),d7
  23. sub.l sp,d7
  24. DOS _CURDRV
  25. move.w d0,-(sp)
  26. DOS _CHGDRV
  27. move.b d0,(L00024c)
  28. move.w (sp)+,d0
  29. add.w #$0041,d0
  30. move.b d0,(L00024d)
  31. move.b d0,(L00024f)
  32. addq.l #1,a2
  33. L00002c:
  34. move.b (a2)+,d1
  35. beq.w L0000fa
  36. cmp.b #$20,d1 ;' '
  37. beq.s L00002c
  38. and.w #$00df,d1
  39. cmp.b #$41,d1 ;'A'
  40. bcs.w L0000fa
  41. cmp.b #$5a,d1 ;'Z'
  42. bhi.w L0000fa
  43. and.w #$001f,d1
  44. cmp.b (L00024c),d1
  45. bhi.w L0000fa
  46. move.w d1,d0
  47. add.w #$0040,d0
  48. move.b d0,(L00024e)
  49. cmp.b (L00024d),d0
  50. beq.w L0000fa
  51. sub.w #$0040,d0
  52. pea.l (L000388)
  53. move.w d0,-(sp)
  54. DOS _GETDPB
  55. addq.l #6,sp
  56. tst.l d0
  57. bmi.s L0000a8
  58. move.b (L00039e),d0
  59. cmp.b #$fe,d0
  60. beq.s L0000b0
  61. cmp.b #$f8,d0
  62. beq.s L0000b0
  63. cmp.b #$f9,d0
  64. beq.s L0000b0
  65. cmp.b #$f7,d0
  66. beq.s L0000b0
  67. cmp.b #$f6,d0
  68. beq.s L0000b0
  69. L0000a8:
  70. pea.l (L000366)
  71. bra.s L000100
  72. L0000b0:
  73. move.w #$0004,-(sp)
  74. pea.l (L00024f)
  75. pea.l (L0003e6)
  76. DOS _FILES
  77. lea.l ($000a,sp),sp
  78. tst.l d0
  79. bmi.s L0000f2
  80. move.w #$0a00,d0
  81. move.b (L00024e),d0
  82. sub.w #$0040,d0
  83. move.w d0,-(sp)
  84. DOS _DRVCTRL
  85. addq.l #2,sp
  86. L0000de:
  87. bsr.s L00010a
  88. pea.l (L0003e6)
  89. DOS _NFILES
  90. lea.l ($0004,sp),sp
  91. tst.l d0
  92. bpl.s L0000de
  93. DOS _EXIT
  94. L0000f2:
  95. pea.l (L000316)
  96. bra.s L000100
  97. L0000fa:
  98. pea.l (L00029a)
  99. L000100:
  100. DOS _PRINT
  101. addq.l #4,sp
  102. move.w #$0001,-(sp)
  103. DOS _EXIT2
  104. L00010a:
  105. clr.w d4
  106. move.b (L0003fb),d4
  107. lea.l (L000404),a0
  108. move.b #$5c,-(a0) ;'\'
  109. move.b #$3a,-(a0) ;':'
  110. move.b (L00024d),-(a0)
  111. clr.w -(sp)
  112. move.l a0,-(sp)
  113. DOS _OPEN
  114. addq.l #6,sp
  115. tst.l d0
  116. bmi.w L000202
  117. move.w d0,d2
  118. move.b (L00024e),(a0)
  119. move.w #$ffff,-(sp)
  120. move.l a0,-(sp)
  121. DOS _CHMOD
  122. addq.l #6,sp
  123. tst.l d0
  124. bmi.s L000156
  125. and.w #$00fb,d0
  126. move.w d0,-(sp)
  127. move.l a0,-(sp)
  128. DOS _CHMOD
  129. addq.l #6,sp
  130. L000156:
  131. move.w d4,-(sp)
  132. move.l a0,-(sp)
  133. DOS _CREATE
  134. addq.l #6,sp
  135. tst.l d0
  136. bmi.s L0001aa
  137. move.w d0,d3
  138. L000164:
  139. move.l d7,-(sp)
  140. pea.l (StackBottom)
  141. move.w d2,-(sp)
  142. DOS _READ
  143. lea.l ($000a,sp),sp
  144. tst.l d0
  145. bmi.s L000194
  146. beq.s L0001bc
  147. move.l d0,d1
  148. move.l d1,-(sp)
  149. pea.l (StackBottom)
  150. move.w d3,-(sp)
  151. DOS _WRITE
  152. lea.l ($000a,sp),sp
  153. tst.l d0
  154. bmi.s L000194
  155. cmp.l d0,d1
  156. beq.s L000164
  157. L000194:
  158. move.w d3,-(sp)
  159. DOS _CLOSE
  160. addq.l #2,sp
  161. move.w #$0020,-(sp) ;' '
  162. move.l a0,-(sp)
  163. DOS _CHMOD
  164. addq.l #6,sp
  165. move.l a0,-(sp)
  166. DOS _DELETE
  167. addq.l #4,sp
  168. L0001aa:
  169. move.l a0,-(sp)
  170. DOS _PRINT
  171. addq.l #4,sp
  172. pea.l (L000256)
  173. DOS _PRINT
  174. addq.l #4,sp
  175. bra.s L0001fc
  176. L0001bc:
  177. clr.l -(sp)
  178. move.w d2,-(sp)
  179. DOS _FILEDATE
  180. addq.l #6,sp
  181. swap.w d0
  182. cmp.w #$ffff,d0
  183. beq.s L000194
  184. swap.w d0
  185. move.l d0,-(sp)
  186. move.w d3,-(sp)
  187. DOS _FILEDATE
  188. addq.l #6,sp
  189. move.w d3,-(sp)
  190. DOS _CLOSE
  191. addq.l #2,sp
  192. bsr.s L000204
  193. move.l d0,-(sp)
  194. move.l a0,-(sp)
  195. DOS _PRINT
  196. addq.l #4,sp
  197. move.l (sp)+,d0
  198. beq.s L0001f2
  199. pea.l (L000271)
  200. bra.s L0001f8
  201. L0001f2:
  202. pea.l (L000341)
  203. L0001f8:
  204. DOS _PRINT
  205. addq.l #4,sp
  206. L0001fc:
  207. move.w d2,-(sp)
  208. DOS _CLOSE
  209. addq.l #2,sp
  210. L000202:
  211. rts
  212. L000204:
  213. DOS _VERNUM
  214. cmp.w #$0150,d0
  215. bcc.s L000228
  216. pea.l (StackBottom)
  217. move.l a0,-(sp)
  218. DOS _FATCHK
  219. addq.l #8,sp
  220. cmp.l #$00000008,d0
  221. beq.s L000224
  222. moveq.l #$ff,d0
  223. rts
  224. L000224:
  225. clr.l d0
  226. rts
  227. L000228:
  228. move.w #$fffe,-(sp)
  229. move.l #StackBottom,d0
  230. bset.l #$1f,d0
  231. move.l d0,-(sp)
  232. move.l a0,-(sp)
  233. DOS _FATCHK
  234. lea.l ($000a,sp),sp
  235. cmp.l #$0000000e,d0
  236. beq.s L000224
  237. moveq.l #$ff,d0
  238. rts
  239. L00024c:
  240. .dc.b $02
  241. L00024d:
  242. .dc.b $41
  243. L00024e:
  244. .dc.b $42
  245. L00024f:
  246. .dc.b $41,$3a,$5c,$2a,$2e,$2a,$00
  247. L000256:
  248. .dc.b ' は転送できませんでした',$0d,$0a,$00
  249. L000271:
  250. .dc.b ' は連続したFATに転送されていません',$0d,$0a,$00
  251. L00029a:
  252. .dc.b 'X68k SystemCopy v2.10 Copyright 1987-90 SHARP/Hudson',$0d,$0a
  253. .dc.b '使用法:sys ドライブ名',$0d,$0a
  254. .dc.b $09,'システム属性のついたファイルをコピーします',$0d,$0a,$00
  255. L000316:
  256. .dc.b 'システム属性のついたファイルはありません',$0d,$0a,$00
  257. L000341:
  258. .dc.b ' は連続したFATに転送されました',$0d,$0a,$00
  259. L000366:
  260. .dc.b 'このドライブには転送できません',$0d,$0a,$00,$00
  261. .bss
  262. L000388:
  263. .ds.b 22
  264. L00039e:
  265. .ds.b 72
  266. L0003e6:
  267. .ds.b 21
  268. L0003fb:
  269. .ds.b 9
  270. L000404:
  271. .ds.b 1048
  272. StackBottom:
  273. .ds.b 65536
  274. StackTop:
  275. .end Start