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.

attrib.s 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. ;=============================================
  2. ; Filename attrib.x
  3. ;
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 00025c byte(s)
  8. ; Data size 0000be byte(s)
  9. ; Bss size 00108e byte(s)
  10. ; 44 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gattrib.lab --overwrite attrib.x attrib.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 (L0013a8),sp
  22. clr.b (L000260)
  23. move.b #$ff,(L000261)
  24. addq.l #1,a2
  25. L000016:
  26. bsr.w L000240
  27. beq.w L000232
  28. cmp.b #$2d,d0 ;'-'
  29. beq.s L00007c
  30. cmp.b #$2b,d0 ;'+'
  31. bne.w L0000e8
  32. L00002c:
  33. move.b (a2)+,d0
  34. L00002e:
  35. or.b #$20,d0
  36. cmp.b #$73,d0 ;'s'
  37. beq.s L00005a
  38. cmp.b #$72,d0 ;'r'
  39. beq.s L000050
  40. cmp.b #$68,d0 ;'h'
  41. bne.w L000232
  42. bset.b #$01,(L000260)
  43. bra.s L000062
  44. L000050:
  45. bset.b #$00,(L000260)
  46. bra.s L000062
  47. L00005a:
  48. bset.b #$02,(L000260)
  49. L000062:
  50. move.b (a2)+,d0
  51. beq.w L000232
  52. cmp.b #$2d,d0 ;'-'
  53. beq.s L00007c
  54. cmp.b #$2b,d0 ;'+'
  55. beq.s L00002c
  56. cmp.b #$20,d0 ;' '
  57. beq.s L000016
  58. bra.s L00002e
  59. L00007c:
  60. move.b (a2)+,d0
  61. L00007e:
  62. or.b #$20,d0
  63. cmp.b #$73,d0 ;'s'
  64. beq.s L0000ba
  65. cmp.b #$72,d0 ;'r'
  66. beq.s L0000a8
  67. cmp.b #$68,d0 ;'h'
  68. bne.w L000232
  69. bclr.b #$01,(L000260)
  70. bclr.b #$01,(L000261)
  71. bra.s L0000ca
  72. L0000a8:
  73. bclr.b #$00,(L000260)
  74. bclr.b #$00,(L000261)
  75. bra.s L0000ca
  76. L0000ba:
  77. bclr.b #$02,(L000260)
  78. bclr.b #$02,(L000261)
  79. L0000ca:
  80. move.b (a2)+,d0
  81. beq.w L000232
  82. cmp.b #$2d,d0 ;'-'
  83. beq.s L00007c
  84. cmp.b #$2b,d0 ;'+'
  85. beq.w L00002c
  86. cmp.b #$20,d0 ;' '
  87. beq.w L000016
  88. bra.s L00007e
  89. L0000e8:
  90. subq.l #1,a2
  91. pea.l (L00031a)
  92. move.l a2,-(sp)
  93. DOS _NAMESTS
  94. addq.l #8,sp
  95. tst.l d0
  96. bmi.w L000216
  97. lea.l (L00031a),a0
  98. cmpi.b #$ff,(a0)
  99. beq.w L000216
  100. move.b ($0001,a0),d0
  101. add.b #$41,d0 ;'A'
  102. move.b d0,(a0)+
  103. move.b #$3a,(a0)+ ;':'
  104. L000118:
  105. tst.b (a0)+
  106. bne.s L000118
  107. subq.l #1,a0
  108. move.l a0,(L00025c)
  109. move.w #$ffff,-(sp)
  110. move.l a2,-(sp)
  111. pea.l (L000372)
  112. DOS _FILES
  113. lea.l ($000a,sp),sp
  114. tst.l d0
  115. bmi.w L000224
  116. L00013c:
  117. clr.w d7
  118. move.b (L000387),d7
  119. tst.b (L000260)
  120. bne.s L000156
  121. cmpi.b #$ff,(L000261)
  122. beq.s L000188
  123. L000156:
  124. and.b (L000261),d7
  125. or.b (L000260),d7
  126. lea.l (L000390),a0
  127. movea.l (L00025c),a1
  128. L00016e:
  129. move.b (a0)+,(a1)+
  130. bne.s L00016e
  131. move.w d7,-(sp)
  132. pea.l (L00031a)
  133. DOS _CHMOD
  134. addq.l #6,sp
  135. tst.l d0
  136. bpl.s L000188
  137. move.b (L000387),d7
  138. L000188:
  139. clr.w d1
  140. move.b #$41,d1 ;'A'
  141. btst.l #$05,d7
  142. bne.s L000198
  143. move.b #$2d,d1 ;'-'
  144. L000198:
  145. bsr.w L00024c
  146. move.b #$44,d1 ;'D'
  147. btst.l #$04,d7
  148. bne.s L0001aa
  149. move.b #$2d,d1 ;'-'
  150. L0001aa:
  151. bsr.w L00024c
  152. move.b #$56,d1 ;'V'
  153. btst.l #$03,d7
  154. bne.s L0001bc
  155. move.b #$2d,d1 ;'-'
  156. L0001bc:
  157. bsr.w L00024c
  158. move.b #$53,d1 ;'S'
  159. btst.l #$02,d7
  160. bne.s L0001ce
  161. move.b #$2d,d1 ;'-'
  162. L0001ce:
  163. bsr.s L00024c
  164. move.b #$48,d1 ;'H'
  165. btst.l #$01,d7
  166. bne.s L0001de
  167. move.b #$2d,d1 ;'-'
  168. L0001de:
  169. bsr.s L00024c
  170. move.b #$52,d1 ;'R'
  171. btst.l #$00,d7
  172. bne.s L0001ee
  173. move.b #$2d,d1 ;'-'
  174. L0001ee:
  175. bsr.s L00024c
  176. moveq.l #$09,d1
  177. bsr.s L00024c
  178. lea.l (L000390),a5
  179. bsr.s L000254
  180. lea.l (L000262),a5
  181. bsr.s L000254
  182. pea.l (L000372)
  183. DOS _NFILES
  184. addq.l #4,sp
  185. tst.l d0
  186. bpl.w L00013c
  187. DOS _EXIT
  188. L000216:
  189. lea.l (L000265),a5
  190. bsr.s L000254
  191. move.w #$0002,-(sp)
  192. DOS _EXIT2
  193. L000224:
  194. lea.l (L00027c),a5
  195. bsr.s L000254
  196. move.w #$0003,-(sp)
  197. DOS _EXIT2
  198. L000232:
  199. lea.l (L000297),a5
  200. bsr.s L000254
  201. move.w #$0001,-(sp)
  202. DOS _EXIT2
  203. L000240:
  204. move.b (a2)+,d0
  205. beq.s L00024a
  206. cmp.b #$20,d0 ;' '
  207. beq.s L000240
  208. L00024a:
  209. rts
  210. L00024c:
  211. move.w d1,-(sp)
  212. DOS _PUTCHAR
  213. addq.l #2,sp
  214. rts
  215. L000254:
  216. move.l a5,-(sp)
  217. DOS _PRINT
  218. addq.l #4,sp
  219. rts
  220. .data
  221. L00025c:
  222. .dc.l L00031d
  223. L000260:
  224. .dc.b $00
  225. L000261:
  226. .dc.b $ff
  227. L000262:
  228. .dc.b $0d,$0a,$00
  229. L000265:
  230. .dc.b 'ファイル名が異常です',$0d,$0a,$00
  231. L00027c:
  232. .dc.b 'ファイルが見つかりません',$0d,$0a,$00
  233. L000297:
  234. .dc.b '使用法:attrib [スイッチ] ファイル名',$0d,$0a
  235. .dc.b $09,'+r',$09,'読み出し専用属性設定',$0d,$0a
  236. .dc.b $09,'-r',$09,'読み出し専用属性解除',$0d,$0a
  237. .dc.b $09,'+h',$09,'不可視属性設定',$0d,$0a
  238. .dc.b $09,'-h',$09,'不可視属性解除',$0d,$0a,$00
  239. .bss
  240. L00031a:
  241. .ds.b 3
  242. L00031d:
  243. .ds.b 85
  244. L000372:
  245. .ds.b 21
  246. L000387:
  247. .ds.b 9
  248. L000390:
  249. .ds.b 4120
  250. L0013a8:
  251. .end L000000