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.

subst.s 6.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467
  1. ;=============================================
  2. ; Filename subst.x
  3. ;
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 0003da byte(s)
  8. ; Data size 00028e byte(s)
  9. ; Bss size 001200 byte(s)
  10. ; 71 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gsubst.lab --overwrite subst.x subst.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 (L001868),sp
  22. DOS _VERNUM
  23. cmp.w #$014a,d0
  24. bcs.s L000088
  25. addq.l #1,a2
  26. clr.l (L000668)
  27. clr.l (L000768)
  28. lea.l (L000668),a1
  29. bsr.w L000370
  30. beq.s L00003a
  31. lea.l (L000768),a1
  32. bsr.w L000370
  33. beq.s L00003a
  34. bsr.w L00034c
  35. bne.s L00006e
  36. L00003a:
  37. bsr.w L0002f2
  38. move.b (L000667),d0
  39. cmp.b #$64,d0 ;'d'
  40. beq.w L0001b4
  41. cmp.b #$6c,d0 ;'l'
  42. beq.w L000232
  43. move.l (L000668),d0
  44. clr.b d0
  45. move.l (L000768),d1
  46. clr.b d1
  47. tst.w d1
  48. bne.w L00014e
  49. tst.w d0
  50. bne.s L0000ae
  51. L00006e:
  52. pea.l (L0003da)
  53. DOS _PRINT
  54. addq.l #4,sp
  55. pea.l (L000409)
  56. L00007e:
  57. DOS _PRINT
  58. addq.l #4,sp
  59. move.w #$0001,-(sp)
  60. DOS _EXIT2
  61. L000088:
  62. pea.l (L0003da)
  63. DOS _PRINT
  64. addq.l #4,sp
  65. pea.l (L000584)
  66. bra.s L00007e
  67. L00009a:
  68. pea.l (L000768)
  69. move.w #$0004,-(sp)
  70. DOS _ASSIGN
  71. lea.l ($0006,sp),sp
  72. bra.w L0002aa
  73. L0000ae:
  74. tst.l d0
  75. beq.s L00006e
  76. tst.l d1
  77. beq.s L00006e
  78. cmpi.b #$3a,(L000669) ;':'
  79. bne.w L0002aa
  80. cmpi.b #$3a,(L000769) ;':'
  81. bne.w L0002aa
  82. move.b (L000668),d0
  83. or.b #$20,d0
  84. move.b (L000768),d1
  85. or.b #$20,d1
  86. cmp.b d1,d0
  87. beq.w L0002aa
  88. move.w #$0060,-(sp) ;'`'
  89. pea.l (L000668)
  90. pea.l (L000768)
  91. move.w #$0001,-(sp)
  92. DOS _ASSIGN
  93. lea.l ($000c,sp),sp
  94. tst.l d0
  95. bmi.w L0002ac
  96. pea.l (L000668)
  97. pea.l (L000768)
  98. move.w #$0000,-(sp)
  99. DOS _ASSIGN
  100. lea.l ($000a,sp),sp
  101. tst.l d0
  102. bmi.w L0002ac
  103. cmpi.w #$5c00,(L00066a)
  104. beq.w L00009a
  105. bsr.w L00031c
  106. pea.l (L0005df)
  107. DOS _PRINT
  108. addq.l #4,sp
  109. bsr.w L000328
  110. pea.l (L000604)
  111. DOS _PRINT
  112. addq.l #4,sp
  113. DOS _EXIT
  114. L00014e:
  115. tst.l d0
  116. beq.w L00006e
  117. tst.l d1
  118. beq.w L00006e
  119. move.w #$0050,-(sp) ;'P'
  120. pea.l (L000768)
  121. pea.l (L000668)
  122. move.w #$0001,-(sp)
  123. DOS _ASSIGN
  124. lea.l ($000c,sp),sp
  125. tst.l d0
  126. bmi.w L0002ac
  127. pea.l (L000768)
  128. pea.l (L000668)
  129. move.w #$0000,-(sp)
  130. DOS _ASSIGN
  131. lea.l ($000a,sp),sp
  132. tst.l d0
  133. bmi.w L0002ac
  134. bsr.w L00031c
  135. pea.l (L00059b)
  136. DOS _PRINT
  137. addq.l #4,sp
  138. bsr.w L000328
  139. pea.l (L0005b0)
  140. DOS _PRINT
  141. addq.l #4,sp
  142. DOS _EXIT
  143. L0001b4:
  144. tst.b (L000768)
  145. bne.w L00006e
  146. tst.b (L000668)
  147. beq.s L0001ec
  148. pea.l (L000668)
  149. move.w #$0004,-(sp)
  150. DOS _ASSIGN
  151. lea.l ($0006,sp),sp
  152. tst.l d0
  153. bmi.w L0002ac
  154. bsr.w L00031c
  155. pea.l (L000624)
  156. DOS _PRINT
  157. addq.l #4,sp
  158. DOS _EXIT
  159. L0001ec:
  160. DOS _CURDRV
  161. move.w d0,-(sp)
  162. DOS _CHGDRV
  163. addq.l #2,sp
  164. subq.w #1,d0
  165. move.w d0,d7
  166. move.l #$413a0000,d6
  167. L0001fe:
  168. move.l d6,(L000668)
  169. pea.l (L000668)
  170. move.w #$0004,-(sp)
  171. DOS _ASSIGN
  172. lea.l ($0006,sp),sp
  173. tst.l d0
  174. bmi.s L000226
  175. bsr.w L00031c
  176. pea.l (L000624)
  177. DOS _PRINT
  178. addq.l #4,sp
  179. L000226:
  180. add.l #$01000000,d6
  181. dbra.w d7,L0001fe
  182. DOS _EXIT
  183. L000232:
  184. tst.b (L000668)
  185. beq.s L000266
  186. tst.b (L000768)
  187. bne.w L00006e
  188. pea.l (L000768)
  189. pea.l (L000668)
  190. move.w #$0000,-(sp)
  191. DOS _ASSIGN
  192. lea.l ($000a,sp),sp
  193. tst.l d0
  194. bmi.s L0002ac
  195. bsr.s L0002d0
  196. bsr.w L0002f2
  197. DOS _EXIT
  198. L000266:
  199. DOS _CURDRV
  200. move.w d0,-(sp)
  201. DOS _CHGDRV
  202. addq.l #2,sp
  203. subq.w #1,d0
  204. move.w d0,d7
  205. move.l #$413a0000,d6
  206. L000278:
  207. move.l d6,(L000668)
  208. pea.l (L000768)
  209. pea.l (L000668)
  210. move.w #$0000,-(sp)
  211. DOS _ASSIGN
  212. lea.l ($000a,sp),sp
  213. tst.l d0
  214. bmi.s L00029c
  215. beq.s L00029c
  216. bsr.s L0002d0
  217. L00029c:
  218. add.l #$01000000,d6
  219. dbra.w d7,L000278
  220. bsr.s L0002f2
  221. DOS _EXIT
  222. L0002aa:
  223. moveq.l #$f2,d0
  224. L0002ac:
  225. lea.l (L0004c4),a0
  226. L0002b2:
  227. move.b (a0)+,d1
  228. beq.s L0002c0
  229. cmp.b d1,d0
  230. beq.s L0002c0
  231. L0002ba:
  232. move.b (a0)+,d1
  233. bne.s L0002ba
  234. bra.s L0002b2
  235. L0002c0:
  236. move.l a0,-(sp)
  237. DOS _PRINT
  238. addq.l #4,sp
  239. pea.l (L000664)
  240. bra.w L00007e
  241. L0002d0:
  242. cmp.b #$40,d0 ;'@'
  243. beq.s L0002fe
  244. cmp.b #$50,d0 ;'P'
  245. beq.s L000308
  246. cmp.b #$60,d0 ;'`'
  247. beq.s L000312
  248. bsr.s L00031c
  249. moveq.l #$20,d0 ;' '
  250. bsr.s L000334
  251. pea.l (L00065f)
  252. DOS _PRINT
  253. addq.l #4,sp
  254. L0002f2:
  255. pea.l (L000664)
  256. DOS _PRINT
  257. addq.l #4,sp
  258. rts
  259. L0002fe:
  260. bsr.s L00031c
  261. moveq.l #$3d,d0 ;'='
  262. bsr.s L000334
  263. bsr.s L000328
  264. bra.s L0002f2
  265. L000308:
  266. bsr.s L00031c
  267. moveq.l #$3e,d0 ;'>'
  268. bsr.s L000334
  269. bsr.s L000328
  270. bra.s L0002f2
  271. L000312:
  272. bsr.s L00031c
  273. moveq.l #$3c,d0 ;'<'
  274. bsr.s L000334
  275. bsr.s L000328
  276. bra.s L0002f2
  277. L00031c:
  278. pea.l (L000668)
  279. DOS _PRINT
  280. addq.l #4,sp
  281. rts
  282. L000328:
  283. pea.l (L000768)
  284. DOS _PRINT
  285. addq.l #4,sp
  286. rts
  287. L000334:
  288. move.w #$0020,-(sp) ;' '
  289. move.w d0,-(sp)
  290. move.w #$0020,-(sp) ;' '
  291. DOS _PUTCHAR
  292. addq.l #2,sp
  293. DOS _PUTCHAR
  294. addq.l #2,sp
  295. DOS _PUTCHAR
  296. addq.l #2,sp
  297. rts
  298. L00034c:
  299. bsr.s L0003c8
  300. beq.s L00035e
  301. cmp.b #$2d,d0 ;'-'
  302. beq.s L000362
  303. cmp.b #$2f,d0 ;'/'
  304. beq.s L000362
  305. rts
  306. L00035e:
  307. clr.l d0
  308. rts
  309. L000362:
  310. bsr.s L0003aa
  311. bne.s L00034c
  312. moveq.l #$ff,d0
  313. rts
  314. L00036a:
  315. bsr.s L0003aa
  316. bne.s L000370
  317. rts
  318. L000370:
  319. bsr.s L0003c8
  320. beq.s L0003a8
  321. cmp.b #$2d,d0 ;'-'
  322. beq.s L00036a
  323. cmp.b #$2f,d0 ;'/'
  324. beq.s L00036a
  325. L000380:
  326. move.b d0,(a1)+
  327. move.b (a2)+,d0
  328. beq.s L0003a6
  329. cmp.b #$20,d0 ;' '
  330. beq.s L00039e
  331. cmp.b #$09,d0
  332. beq.s L00039e
  333. cmp.b #$2d,d0 ;'-'
  334. beq.s L00039e
  335. cmp.b #$2f,d0 ;'/'
  336. bne.s L000380
  337. L00039e:
  338. subq.l #1,a2
  339. clr.b (a1)
  340. tst.b d0
  341. rts
  342. L0003a6:
  343. move.b d0,(a1)
  344. L0003a8:
  345. rts
  346. L0003aa:
  347. move.b (a2)+,d0
  348. or.b #$20,d0
  349. cmp.b #$64,d0 ;'d'
  350. beq.s L0003c0
  351. cmp.b #$6c,d0 ;'l'
  352. beq.s L0003c0
  353. clr.l d0
  354. rts
  355. L0003c0:
  356. move.b d0,(L000667)
  357. rts
  358. L0003c8:
  359. move.b (a2)+,d0
  360. beq.s L0003d8
  361. cmp.b #$20,d0 ;' '
  362. beq.s L0003c8
  363. cmp.b #$09,d0
  364. beq.s L0003c8
  365. L0003d8:
  366. rts
  367. .data
  368. L0003da:
  369. .dc.b 'X68k Subst v1.01 Copyright 1989 SHARP/Hudson',$0d,$0a,$00
  370. L000409:
  371. .dc.b '使用法:subst [スイッチ] パス名1 パス名2',$0d,$0a
  372. .dc.b $09,'パス名1をパス名2として割り当てます。',$0d,$0a
  373. .dc.b $09,'ただし片方はドライブ名のみ指定して下さい。',$0d,$0a
  374. .dc.b $09,'/D',$09,$09,'割り当てを解除します',$0d,$0a
  375. .dc.b $09,'/L',$09,$09,'割り当てを表示します',$0d,$0a,$00
  376. L0004c4:
  377. .dc.b $ff
  378. L0004c5:
  379. .dc.b 'パラメータの指定が違います',$00
  380. L0004e0:
  381. .dc.b $fe
  382. L0004e1:
  383. .dc.b 'パスが見つかりません',$00
  384. L0004f6:
  385. .dc.b $fd
  386. L0004f7:
  387. .dc.b 'パスが見つかりません',$00
  388. L00050c:
  389. .dc.b $f3
  390. L00050d:
  391. .dc.b 'ファイル名の指定に誤りがあります',$00
  392. L00052e:
  393. .dc.b $f2
  394. L00052f:
  395. .dc.b 'パラメータの指定に誤りがあります',$00
  396. L000550:
  397. .dc.b $f1
  398. L000551:
  399. .dc.b 'ドライブ指定に誤りがあります',$00,$00
  400. .dc.b 'エラーが発生しました',$00
  401. L000584:
  402. .dc.b 'バージョンが違います',$0d,$0a,$00
  403. L00059b:
  404. .dc.b 'でアクセスした場合、',$00
  405. L0005b0:
  406. .dc.b 'のディレクトリ下をアクセスすることになります',$0d,$0a,$00
  407. L0005df:
  408. .dc.b 'のディレクトリ下をアクセスした場合、',$00
  409. L000604:
  410. .dc.b '\をアクセスすることになります',$0d,$0a,$00
  411. L000624:
  412. .dc.b 'のドライブを元のドライブのルートディレクトリに戻しました',$0d,$0a,$00
  413. L00065f:
  414. .dc.b 'FREE',$00
  415. L000664:
  416. .dc.b $0d,$0a,$00
  417. L000667:
  418. .dc.b $00
  419. .bss
  420. L000668:
  421. .ds.b 1
  422. L000669:
  423. .ds.b 1
  424. L00066a:
  425. .ds.b 254
  426. L000768:
  427. .ds.b 1
  428. L000769:
  429. .ds.b 4351
  430. L001868:
  431. .end L000000