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.

pr.s 16KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137
  1. ;=============================================
  2. ; Filename pr.x
  3. ;
  4. ;
  5. ; Base address 000000
  6. ; Exec address 000000
  7. ; Text size 000b6c byte(s)
  8. ; Data size 000000 byte(s)
  9. ; Bss size 0010aa byte(s)
  10. ; 190 Labels
  11. ;
  12. ; Commandline dis -b2 -h -m68000 --sp -q1 -B -M -o120 -gpr.lab --overwrite pr.x pr.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 (End),sp
  22. bsr.w L0007b8
  23. move.l a0,-(sp)
  24. bsr.w L000624
  25. movea.l (sp)+,a0
  26. bsr.w L000656
  27. bsr.w L0001aa
  28. bsr.w L000910
  29. clr.w d0
  30. bra.w L0007ee
  31. L000024:
  32. lea.l (L000167,pc),a0
  33. bra.s L000034
  34. L00002a:
  35. lea.l (L00018a,pc),a0
  36. bra.s L000034
  37. L000030:
  38. lea.l (L00003e,pc),a0
  39. L000034:
  40. bsr.w L000aa2
  41. moveq.l #$01,d0
  42. bra.w L0007ee
  43. L00003e:
  44. .dc.b 'X68k Print v1.01 Copyright 1989 SHARP/Hudson',$0d,$0a
  45. .dc.b '使用法:pr[スイッチ][入力ファイル][出力ファイル]',$0d,$0a
  46. .dc.b $09,'/f',$09,$09,'フォームフィードコードの出力',$0d,$0a
  47. .dc.b $09,'/hタイトル',$09,'タイトルの設定',$0d,$0a
  48. .dc.b $09,'/l数値',$09,$09,'ページ長',$0d,$0a
  49. .dc.b $09,'/w数値',$09,$09,'ページ幅',$0d,$0a
  50. .dc.b $09,'/n',$09,$09,'ラインナンバーの出力',$0d,$0a
  51. .dc.b $09,'/t',$09,$09,'ヘッダーの出力禁止',$0d,$0a
  52. .dc.b $09,'/b数値',$09,$09,'タブサイズ(2,4,8,16)',$0d,$0a,$00
  53. L000167:
  54. .dc.b 'pr:ファイルがオープンできません',$0d,$0a,$00
  55. L00018a:
  56. .dc.b 'pr:ファィルが見つかりません',$0d,$0a,$00,$00
  57. L0001aa:
  58. move.l #L0011f4,(L0011ec)
  59. move.l #L001604,(L0011f0)
  60. cmpi.w #$0001,(L0010c6)
  61. bhi.s L000202
  62. beq.s L0001fc
  63. bsr.w L000846
  64. tst.l d0
  65. bmi.w L000024
  66. bsr.w L000870
  67. lea.l (L000f7c),a1
  68. clr.w ($001e,a1)
  69. bsr.w L0007f2
  70. move.l d0,($0016,a1)
  71. bsr.w L000274
  72. movem.l a1,-(sp)
  73. bsr.w L000908
  74. movem.l (sp)+,a1
  75. rts
  76. L0001fc:
  77. bsr.w L000870
  78. bra.s L00020c
  79. L000202:
  80. lea.l (L00110a),a0
  81. bsr.w L0008d0
  82. L00020c:
  83. lea.l (L0010c8),a0
  84. lea.l (L000f7c),a1
  85. lea.l (L000fbc),a2
  86. bsr.w L0007fe
  87. tst.l d0
  88. bmi.w L00002a
  89. tst.b (L00114c)
  90. beq.s L000238
  91. bsr.w L0007f2
  92. move.l d0,($0016,a1)
  93. L000238:
  94. bsr.s L000256
  95. bsr.w L0008b8
  96. bsr.s L000274
  97. movem.l a1,-(sp)
  98. bsr.w L000908
  99. movem.l (sp)+,a1
  100. bsr.w L000816
  101. tst.l d0
  102. bpl.s L000238
  103. rts
  104. L000256:
  105. lea.l (L00103c),a0
  106. movem.l a0-a2,-(sp)
  107. L000260:
  108. move.b (a2)+,(a0)+
  109. bne.s L000260
  110. subq.l #1,a0
  111. lea.l ($001e,a1),a1
  112. L00026a:
  113. move.b (a1)+,(a0)+
  114. bne.s L00026a
  115. movem.l (sp)+,a0-a2
  116. rts
  117. L000274:
  118. move.l a1,-(sp)
  119. clr.w (L0011dc)
  120. clr.w (L0011da)
  121. clr.w (L0011de)
  122. L000288:
  123. clr.w (L0011e0)
  124. lea.l (L000b6c),a0
  125. bsr.w L00092e
  126. tst.l d0
  127. bmi.s L0002e6
  128. addq.w #1,(L0011da)
  129. L0002a2:
  130. tst.w (L0011de)
  131. bne.s L0002ac
  132. bsr.s L0002f6
  133. L0002ac:
  134. addq.w #1,(L0011de)
  135. addq.w #1,(L0011e0)
  136. bsr.w L0004f2
  137. move.l a0,-(sp)
  138. lea.l (L000d74),a0
  139. bsr.w L0009d2
  140. move.w (L0011d2),d0
  141. sub.w (L0011de),d0
  142. cmp.w #$0002,d0
  143. bhi.s L0002de
  144. bsr.w L000446
  145. L0002de:
  146. movea.l (sp)+,a0
  147. tst.b (a0)
  148. beq.s L000288
  149. bra.s L0002a2
  150. L0002e6:
  151. tst.w (L0011de)
  152. beq.s L0002f2
  153. bsr.w L000446
  154. L0002f2:
  155. movea.l (sp)+,a1
  156. rts
  157. L0002f6:
  158. tst.w (L0011d8)
  159. bne.s L00035e
  160. move.l a0,-(sp)
  161. addq.w #1,(L0011dc)
  162. lea.l (L000d74),a1
  163. bsr.s L00038a
  164. move.w #$0020,d0 ;' '
  165. move.b d0,(a1)+
  166. move.b d0,(a1)+
  167. lea.l (L00114c),a0
  168. tst.b (a0)
  169. bne.s L000326
  170. lea.l (L000f9a),a0
  171. L000326:
  172. bsr.s L000382
  173. move.w #$0020,d0 ;' '
  174. move.b d0,(a1)+
  175. move.b d0,(a1)+
  176. lea.l (L00037c,pc),a0
  177. bsr.s L000382
  178. move.w (L0011dc),d0
  179. bsr.w L0005c8
  180. lea.l (L0010bc),a0
  181. L000346:
  182. cmpi.b #$20,(a0)+ ;' '
  183. beq.s L000346
  184. subq.l #1,a0
  185. bsr.s L000382
  186. clr.b (a1)
  187. lea.l (L000d74),a0
  188. bsr.w L0009d2
  189. movea.l (sp)+,a0
  190. L00035e:
  191. move.l a0,-(sp)
  192. lea.l (L000484,pc),a0
  193. bsr.w L0009d2
  194. bsr.w L0009d2
  195. bsr.w L0009d2
  196. movea.l (sp)+,a0
  197. move.w #$0003,(L0011de)
  198. rts
  199. L00037c:
  200. .dc.b 'Page ',$00
  201. L000382:
  202. move.b (a0)+,(a1)+
  203. bne.s L000382
  204. subq.l #1,a1
  205. rts
  206. L00038a:
  207. move.l (L000f92),d1
  208. move.w d1,d0
  209. rol.w #7,d0
  210. and.l #$0000007f,d0
  211. add.w #$07bc,d0
  212. bsr.s L00041a
  213. move.b #$2d,(a1)+ ;'-'
  214. move.l d1,d0
  215. lsr.l #5,d0
  216. and.w #$000f,d0
  217. subq.w #1,d0
  218. lsl.w #2,d0
  219. lea.l (L0003ea,pc,d0.w),a0
  220. move.b (a0)+,(a1)+
  221. move.b (a0)+,(a1)+
  222. move.b (a0)+,(a1)+
  223. move.b #$2d,(a1)+ ;'-'
  224. move.l d1,d0
  225. and.w #$001f,d0
  226. bsr.s L000428
  227. move.b #$20,d0 ;' '
  228. move.b d0,(a1)+
  229. move.b d0,(a1)+
  230. swap.w d1
  231. move.w d1,d0
  232. rol.w #5,d0
  233. and.w #$001f,d0
  234. bsr.s L000428
  235. move.b #$3a,(a1)+ ;':'
  236. move.w d1,d0
  237. lsr.w #5,d0
  238. and.w #$003f,d0
  239. bsr.s L000428
  240. rts
  241. L0003ea:
  242. .dc.b 'Jan',$00
  243. L0003ee:
  244. .dc.b 'Feb',$00
  245. L0003f2:
  246. .dc.b 'Mar',$00
  247. L0003f6:
  248. .dc.b 'Apl',$00
  249. L0003fa:
  250. .dc.b 'May',$00
  251. L0003fe:
  252. .dc.b 'Jun',$00
  253. L000402:
  254. .dc.b 'Jul',$00
  255. L000406:
  256. .dc.b 'Aug',$00
  257. L00040a:
  258. .dc.b 'Sep',$00
  259. L00040e:
  260. .dc.b 'Oct',$00
  261. L000412:
  262. .dc.b 'Nov',$00
  263. L000416:
  264. .dc.b 'Dec',$00
  265. L00041a:
  266. and.l #$0000ffff,d0
  267. divu.w #$0064,d0
  268. bsr.s L000428
  269. swap.w d0
  270. L000428:
  271. move.l d0,-(sp)
  272. and.l #$0000ffff,d0
  273. divu.w #$000a,d0
  274. add.w #$0030,d0
  275. move.b d0,(a1)+
  276. swap.w d0
  277. add.w #$0030,d0
  278. move.b d0,(a1)+
  279. move.l (sp)+,d0
  280. rts
  281. L000446:
  282. tst.w (L0011d4)
  283. beq.s L00045e
  284. lea.l (L000482,pc),a0
  285. bsr.w L0009d2
  286. clr.w (L0011de)
  287. rts
  288. L00045e:
  289. lea.l (L000484,pc),a0
  290. L000462:
  291. bsr.w L0009d2
  292. addq.w #1,(L0011de)
  293. move.w (L0011de),d0
  294. cmp.w (L0011d2),d0
  295. bcs.s L000462
  296. clr.w (L0011de)
  297. rts
  298. L000482:
  299. .dc.b $0c,$00
  300. L000484:
  301. movep.w ($0000,a2),d6
  302. L000488:
  303. clr.w (L0011e2)
  304. tst.w (L0011d6)
  305. bne.s L000498
  306. rts
  307. L000498:
  308. move.l a0,-(sp)
  309. cmpi.w #$0001,(L0011e0)
  310. bne.s L0004e6
  311. move.b #$20,(a1)+ ;' '
  312. move.w (L0011da),d0
  313. divu.w #$000a,d0
  314. swap.w d0
  315. tst.w d0
  316. bne.s L0004be
  317. move.b #$2b,(-$0001,a1) ;'+'
  318. L0004be:
  319. move.w (L0011da),d0
  320. bsr.w L0005c8
  321. lea.l (L0010bd),a0
  322. bsr.w L000382
  323. move.b #$3a,(a1)+ ;':'
  324. L0004d6:
  325. move.b #$20,(a1)+ ;' '
  326. move.w #$0007,(L0011e2)
  327. movea.l (sp)+,a0
  328. rts
  329. L0004e6:
  330. move.w #$2020,d0 ;' '
  331. move.w d0,(a1)+
  332. move.w d0,(a1)+
  333. move.w d0,(a1)+
  334. bra.s L0004d6
  335. L0004f2:
  336. lea.l (L000d74),a1
  337. bsr.s L000488
  338. clr.w d7
  339. L0004fc:
  340. move.b (a0),d0
  341. beq.s L00052a
  342. addq.l #1,a0
  343. cmp.b #$09,d0
  344. beq.s L000536
  345. addq.w #1,d7
  346. move.b d0,(a1)+
  347. bsr.w L000594
  348. bcs.s L000518
  349. bsr.s L000564
  350. bcs.s L00052a
  351. bra.s L0004fc
  352. L000518:
  353. asl.w #8,d0
  354. move.b (a0)+,d0
  355. move.b d0,(a1)+
  356. bsr.w L0005b0
  357. bcs.s L000526
  358. addq.w #1,d7
  359. L000526:
  360. bsr.s L000564
  361. bcc.s L0004fc
  362. L00052a:
  363. move.b #$0d,(a1)+
  364. move.b #$0a,(a1)+
  365. clr.b (a1)
  366. rts
  367. L000536:
  368. move.w d7,d1
  369. move.w (L0011ce),d0
  370. lsl.w #1,d0
  371. move.w (L00055c,pc,d0.w),d2
  372. add.w d2,d1
  373. addq.w #1,d1
  374. not.w d2
  375. and.w d2,d1
  376. L00054c:
  377. addq.w #1,d7
  378. move.b #$20,(a1)+ ;' '
  379. bsr.s L000564
  380. bcs.s L00052a
  381. cmp.w d7,d1
  382. bne.s L00054c
  383. bra.s L0004fc
  384. L00055c:
  385. .dc.w $0001,$0003,$0007,$000f
  386. L000564:
  387. move.w d7,d0
  388. addq.w #1,d0
  389. add.w (L0011e2),d0
  390. cmp.w (L0011d0),d0
  391. bhi.s L00058e
  392. bcs.s L000588
  393. move.b (a0),d0
  394. bsr.s L000594
  395. bcc.s L000588
  396. asl.w #8,d0
  397. move.b ($0001,a0),d0
  398. bsr.s L0005b0
  399. bcc.s L00058e
  400. L000588:
  401. andi.b #$fe,ccr
  402. rts
  403. L00058e:
  404. ori.b #$01,ccr
  405. rts
  406. L000594:
  407. tst.b d0
  408. bpl.s L0005aa
  409. cmp.b #$e0,d0
  410. bcc.s L0005a4
  411. cmp.b #$a0,d0
  412. bcc.s L0005aa
  413. L0005a4:
  414. ori.b #$01,ccr
  415. rts
  416. L0005aa:
  417. andi.b #$fe,ccr
  418. rts
  419. L0005b0:
  420. cmp.w #$8140,d0
  421. bcs.s L0005c2
  422. cmp.w #$f000,d0
  423. bcc.s L0005c2
  424. andi.b #$fe,ccr
  425. rts
  426. L0005c2:
  427. ori.b #$01,ccr
  428. rts
  429. L0005c8:
  430. move.l a0,-(sp)
  431. lea.l (L0010bc),a0
  432. and.l #$0000ffff,d0
  433. move.w #$2710,d1
  434. bsr.s L000602
  435. move.w #$03e8,d1
  436. bsr.s L000602
  437. move.w #$0064,d1 ;'d'
  438. bsr.s L000602
  439. move.w #$000a,d1
  440. bsr.s L000602
  441. move.w #$0001,d1
  442. bsr.s L000602
  443. clr.b (a0)
  444. lea.l (L0010bc),a0
  445. bsr.s L000610
  446. movea.l (sp)+,a0
  447. rts
  448. L000602:
  449. divu.w d1,d0
  450. add.w #$0030,d0
  451. move.b d0,(a0)+
  452. clr.w d0
  453. swap.w d0
  454. rts
  455. L000610:
  456. moveq.l #$03,d1
  457. L000612:
  458. move.b (a0),d0
  459. cmp.b #$30,d0 ;'0'
  460. bne.s L000622
  461. move.b #$20,(a0)+ ;' '
  462. dbra.w d1,L000612
  463. L000622:
  464. rts
  465. L000624:
  466. move.w #$0042,(L0011d2) ;'B'
  467. move.w #$0050,(L0011d0) ;'P'
  468. move.w #$0002,(L0011ce)
  469. clr.w (L0011d4)
  470. clr.w (L00114c)
  471. clr.w (L0011d6)
  472. clr.w (L0011d8)
  473. rts
  474. L000656:
  475. clr.w (L0010c6)
  476. clr.w (L0010c8)
  477. clr.w (L00110a)
  478. L000668:
  479. bsr.s L000698
  480. tst.b (a0)
  481. beq.s L000674
  482. bsr.s L000676
  483. tst.b (a0)
  484. bne.s L000668
  485. L000674:
  486. rts
  487. L000676:
  488. lea.l (L0010c8),a1
  489. tst.w (a1)
  490. beq.s L00068c
  491. lea.l (L00110a),a1
  492. tst.w (a1)
  493. bne.w L000030
  494. L00068c:
  495. bsr.w L0007a4
  496. addq.w #1,(L0010c6)
  497. rts
  498. L000698:
  499. bsr.w L000764
  500. cmp.b #$2d,d0 ;'-'
  501. beq.s L0006aa
  502. cmp.b #$2f,d0 ;'/'
  503. beq.s L0006aa
  504. rts
  505. L0006aa:
  506. addq.l #1,a0
  507. L0006ac:
  508. move.b (a0),d0
  509. beq.s L000698
  510. cmp.b #$20,d0 ;' '
  511. beq.s L000698
  512. addq.l #1,a0
  513. bsr.w L000792
  514. lea.l (L0006d0,pc),a1
  515. L0006c0:
  516. move.w (a1)+,d1
  517. bmi.w L000030
  518. movea.l (a1)+,a2
  519. cmp.b d1,d0
  520. bne.s L0006c0
  521. jsr (a2)
  522. bra.s L0006ac
  523. L0006d0:
  524. .dc.b $00,$66
  525. .dc.l L0006fc
  526. .dc.b $00,$68
  527. .dc.l L000718
  528. .dc.b $00,$6c
  529. .dc.l L000724
  530. .dc.b $00,$6e
  531. .dc.l L000704
  532. .dc.b $00,$74
  533. .dc.l L00070c
  534. .dc.b $00,$77
  535. .dc.l L00072e
  536. .dc.b $00,$62
  537. .dc.l L000738
  538. .dc.b $ff,$ff
  539. L0006fc:
  540. lea.l (L0011d4),a1
  541. bra.s L000712
  542. L000704:
  543. lea.l (L0011d6),a1
  544. bra.s L000712
  545. L00070c:
  546. lea.l (L0011d8),a1
  547. L000712:
  548. eori.w #$ffff,(a1)
  549. rts
  550. L000718:
  551. lea.l (L00114c),a1
  552. bsr.w L0007a4
  553. rts
  554. L000724:
  555. bsr.s L00076e
  556. move.w d0,(L0011d2)
  557. rts
  558. L00072e:
  559. bsr.s L00076e
  560. move.w d0,(L0011d0)
  561. rts
  562. L000738:
  563. bsr.s L00076e
  564. clr.w d1
  565. cmp.w #$0002,d0
  566. beq.s L00075c
  567. addq.w #1,d1
  568. cmp.w #$0004,d0
  569. beq.s L00075c
  570. addq.w #1,d1
  571. cmp.w #$0008,d0
  572. beq.s L00075c
  573. addq.w #1,d1
  574. cmp.w #$0010,d0
  575. bne.w L000030
  576. L00075c:
  577. move.w d1,(L0011ce)
  578. rts
  579. L000764:
  580. cmpi.b #$20,(a0)+ ;' '
  581. beq.s L000764
  582. move.b -(a0),d0
  583. rts
  584. L00076e:
  585. clr.l d1
  586. clr.l d0
  587. L000772:
  588. move.b (a0)+,d0
  589. sub.w #$0030,d0
  590. bmi.s L000788
  591. cmp.w #$000a,d0
  592. bcc.s L000788
  593. mulu.w #$000a,d1
  594. add.l d0,d1
  595. bra.s L000772
  596. L000788:
  597. subq.l #1,a0
  598. move.l d1,d0
  599. beq.w L000030
  600. rts
  601. L000792:
  602. cmp.b #$5b,d0 ;'['
  603. bcc.s L0007a2
  604. cmp.b #$41,d0 ;'A'
  605. bcs.s L0007a2
  606. add.b #$20,d0 ;' '
  607. L0007a2:
  608. rts
  609. L0007a4:
  610. move.b (a0)+,d0
  611. beq.s L0007b2
  612. cmp.b #$20,d0 ;' '
  613. beq.s L0007b2
  614. move.b d0,(a1)+
  615. bra.s L0007a4
  616. L0007b2:
  617. subq.l #1,a0
  618. clr.b (a1)+
  619. rts
  620. L0007b8:
  621. adda.l #$00000010,a0
  622. suba.l a0,a1
  623. movem.l a0-a1,-(sp)
  624. DOS _SETBLOCK
  625. move.l #$00ffffff,(sp)
  626. DOS _MALLOC
  627. and.l #$00ffffff,d0
  628. move.l d0,(sp)
  629. DOS _MALLOC
  630. move.l d0,(L0011e4)
  631. add.l (sp)+,d0
  632. move.l d0,(L0011e8)
  633. addq.l #4,sp
  634. lea.l ($0001,a2),a0
  635. rts
  636. L0007ee:
  637. move.w d0,-(sp)
  638. DOS _EXIT2
  639. L0007f2:
  640. DOS _GETDATE
  641. move.w d0,-(sp)
  642. DOS _GETTIME
  643. swap.w d0
  644. move.w (sp)+,d0
  645. rts
  646. L0007fe:
  647. pea.l (a2)
  648. pea.l (a0)
  649. DOS _NAMECK
  650. addq.l #8,sp
  651. move.w #$0020,-(sp) ;' '
  652. pea.l (a0)
  653. pea.l (a1)
  654. DOS _FILES
  655. lea.l ($000a,sp),sp
  656. rts
  657. L000816:
  658. pea.l (a1)
  659. DOS _NFILES
  660. addq.l #4,sp
  661. rts
  662. L00081e:
  663. movea.l (L0011f0),a1
  664. move.l d0,-(sp)
  665. move.l a0,-(sp)
  666. move.w (a1),-(sp)
  667. DOS _WRITE
  668. lea.l ($000a,sp),sp
  669. rts
  670. L000832:
  671. movea.l (L0011ec),a1
  672. move.l d0,-(sp)
  673. move.l a0,-(sp)
  674. move.w (a1),-(sp)
  675. DOS _READ
  676. lea.l ($000a,sp),sp
  677. rts
  678. L000846:
  679. movea.l (L0011ec),a1
  680. move.w #$0000,-(sp)
  681. DOS _DUP
  682. tst.l d0
  683. bmi.s L00086c
  684. move.w d0,(a1)
  685. DOS _CLOSE
  686. move.w #$0002,(sp)
  687. DOS _DUP
  688. tst.l d0
  689. bmi.s L00086c
  690. addq.l #2,sp
  691. move.w #$0000,d0
  692. bra.s L00087e
  693. L00086c:
  694. addq.l #2,sp
  695. rts
  696. L000870:
  697. movea.l (L0011f0),a1
  698. move.w #$0001,(a1)
  699. move.w #$0001,d0
  700. L00087e:
  701. move.w d0,($0002,a1)
  702. clr.w ($0006,a1)
  703. clr.w ($0004,a1)
  704. clr.w ($0008,a1)
  705. rts
  706. L000890:
  707. move.l a0,($000a,a1)
  708. clr.w ($0006,a1)
  709. clr.w ($0004,a1)
  710. clr.w ($0008,a1)
  711. clr.w ($000e,a1)
  712. move.w ($0002,a1),-(sp)
  713. move.l a0,-(sp)
  714. DOS _OPEN
  715. addq.l #6,sp
  716. move.w d0,($0000.w,a1)
  717. movea.l ($000a,a1),a0
  718. rts
  719. L0008b8:
  720. movem.l a0-a1,-(sp)
  721. movea.l (L0011ec),a1
  722. move.w #$0000,($0002,a1)
  723. bsr.s L000890
  724. movem.l (sp)+,a0-a1
  725. rts
  726. L0008d0:
  727. movem.l a0-a1,-(sp)
  728. movea.l (L0011f0),a1
  729. move.w #$0002,($0002,a1)
  730. move.w #$0020,-(sp) ;' '
  731. pea.l (a0)
  732. DOS _DELETE
  733. DOS _CREATE
  734. addq.l #6,sp
  735. tst.l d0
  736. bpl.s L0008f2
  737. bsr.s L000890
  738. L0008f2:
  739. move.w d0,($0000.w,a1)
  740. clr.w ($0008,a1)
  741. clr.w ($000e,a1)
  742. move.l a0,($000a,a1)
  743. movem.l (sp)+,a0-a1
  744. rts
  745. L000908:
  746. movea.l (L0011ec),a1
  747. bra.s L000920
  748. L000910:
  749. movea.l (L0011f0),a1
  750. tst.w ($0000.w,a1)
  751. ble.s L000920
  752. bsr.w L000a58
  753. L000920:
  754. cmpi.w #$0005,(a1)
  755. bcs.s L00092c
  756. move.w (a1),-(sp)
  757. DOS _CLOSE
  758. addq.l #2,sp
  759. L00092c:
  760. rts
  761. L00092e:
  762. movem.l d1/a0-a1,-(sp)
  763. clr.w d1
  764. lea.l (L0011f4),a1
  765. L00093a:
  766. move.w ($0008,a1),d0
  767. cmp.w ($0006,a1),d0
  768. bcs.s L00094c
  769. bsr.w L000a34
  770. subq.l #1,d0
  771. bmi.s L0009a0
  772. L00094c:
  773. move.w ($0008,a1),d0
  774. move.b ($10,a1,d0.w),d0
  775. addq.w #1,($0008,a1)
  776. tst.w ($000e,a1)
  777. bne.s L000984
  778. cmp.b #$0d,d0
  779. beq.s L0009ac
  780. cmp.b #$1a,d0
  781. beq.s L00099c
  782. cmp.b #$80,d0
  783. bcs.s L000988
  784. cmp.b #$a0,d0
  785. bcs.s L00097c
  786. cmp.b #$e0,d0
  787. bcs.s L000988
  788. L00097c:
  789. move.w #$ffff,($000e,a1)
  790. bra.s L000988
  791. L000984:
  792. clr.w ($000e,a1)
  793. L000988:
  794. move.b d0,(a0)+
  795. addq.w #1,d1
  796. cmp.w #$00fe,d1
  797. bcs.s L00093a
  798. tst.w ($000e,a1)
  799. bne.s L00093a
  800. clr.b (a0)
  801. bra.s L0009cc
  802. L00099c:
  803. subq.w #1,($0008,a1)
  804. L0009a0:
  805. cmpa.l ($0004,sp),a0
  806. beq.s L0009ca
  807. clr.b (a0)
  808. clr.l d0
  809. bra.s L0009cc
  810. L0009ac:
  811. clr.b (a0)
  812. move.w ($0008,a1),d0
  813. cmp.w ($0006,a1),d0
  814. bcs.s L0009be
  815. bsr.s L000a34
  816. subq.l #1,d0
  817. bmi.s L0009c6
  818. L0009be:
  819. addq.w #1,($0008,a1)
  820. clr.l d0
  821. bra.s L0009cc
  822. L0009c6:
  823. clr.w ($0008,a1)
  824. L0009ca:
  825. moveq.l #$ff,d0
  826. L0009cc:
  827. movem.l (sp)+,d1/a0-a1
  828. rts
  829. L0009d2:
  830. movem.l a0-a1,-(sp)
  831. movea.l (L0011f0),a1
  832. L0009dc:
  833. clr.l d0
  834. move.w ($0008,a1),d0
  835. cmp.w #$0400,d0
  836. bcs.s L000a04
  837. move.l d0,-(sp)
  838. pea.l ($0010,a1)
  839. move.w ($0000.w,a1),-(sp)
  840. DOS _WRITE
  841. adda.l #$0000000a,sp
  842. cmp.w ($0008,a1),d0
  843. bne.s L000a7a
  844. clr.w ($0008,a1)
  845. L000a04:
  846. tst.w ($000e,a1)
  847. bne.s L000a1c
  848. move.b (a0),d0
  849. beq.s L000a2e
  850. bsr.w L000594
  851. bcc.s L000a20
  852. move.w #$ffff,($000e,a1)
  853. bra.s L000a20
  854. L000a1c:
  855. clr.w ($000e,a1)
  856. L000a20:
  857. move.w ($0008,a1),d0
  858. move.b (a0)+,($10,a1,d0.w)
  859. addq.w #1,($0008,a1)
  860. bra.s L0009dc
  861. L000a2e:
  862. movem.l (sp)+,a0-a1
  863. rts
  864. L000a34:
  865. move.l #$00000400,-(sp)
  866. pea.l ($0010,a1)
  867. move.w ($0000.w,a1),-(sp)
  868. DOS _READ
  869. adda.l #$0000000a,sp
  870. move.w d0,($0006,a1)
  871. addq.w #1,($0004,a1)
  872. clr.w ($0008,a1)
  873. rts
  874. L000a58:
  875. clr.l d0
  876. move.w ($0008,a1),d0
  877. beq.s L000a78
  878. move.l d0,-(sp)
  879. pea.l ($0010,a1)
  880. move.w ($0000.w,a1),-(sp)
  881. DOS _WRITE
  882. adda.l #$0000000a,sp
  883. cmp.w ($0008,a1),d0
  884. bne.s L000a7a
  885. L000a78:
  886. rts
  887. L000a7a:
  888. pea.l (L000a8c)
  889. DOS _PRINT
  890. addq.l #4,sp
  891. move.w #$0001,d0
  892. bra.w L0007ee
  893. L000a8c:
  894. .dc.b 'Abort: Device full',$0d,$0a,$00,$00
  895. L000aa2:
  896. pea.l (a0)
  897. DOS _PRINT
  898. addq.l #4,sp
  899. rts
  900. L000aaa:
  901. move.w d0,-(sp)
  902. DOS _PUTCHAR
  903. move.w (sp)+,d0
  904. rts
  905. L000ab2:
  906. move.l d0,-(sp)
  907. move.w #$000d,-(sp)
  908. DOS _PUTCHAR
  909. move.w #$000a,(sp)
  910. DOS _PUTCHAR
  911. addq.l #2,sp
  912. move.l (sp)+,d0
  913. rts
  914. L000ac6:
  915. movem.l d0-d2,-(sp)
  916. move.w d0,d2
  917. rol.w #8,d2
  918. bra.s L000ade
  919. L000ad0:
  920. movem.l d0-d2,-(sp)
  921. move.w d0,d2
  922. rol.w #4,d2
  923. bsr.s L000aec
  924. rol.w #4,d2
  925. bsr.s L000aec
  926. L000ade:
  927. rol.w #4,d2
  928. bsr.s L000aec
  929. rol.w #4,d2
  930. bsr.s L000aec
  931. movem.l (sp)+,d0-d2
  932. rts
  933. L000aec:
  934. move.w d2,d0
  935. and.w #$000f,d0
  936. cmp.w #$000a,d0
  937. bcs.s L000afa
  938. addq.w #7,d0
  939. L000afa:
  940. add.w #$0030,d0
  941. bra.s L000aaa
  942. L000b00:
  943. link.w a6,#-$0006
  944. movem.l d0-d2/a0,-(sp)
  945. lea.l (-$0006,a6),a0
  946. and.l #$0000ffff,d0
  947. move.w #$2710,d1
  948. bsr.s L000b46
  949. move.w #$03e8,d1
  950. bsr.s L000b46
  951. move.w #$0064,d1 ;'d'
  952. bsr.s L000b46
  953. move.w #$000a,d1
  954. bsr.s L000b46
  955. move.w #$0001,d1
  956. bsr.s L000b46
  957. clr.b (a0)
  958. lea.l (-$0006,a6),a0
  959. bsr.s L000b54
  960. addq.l #1,a0
  961. bsr.w L000aa2
  962. movem.l (sp)+,d0-d2/a0
  963. unlk a6
  964. rts
  965. L000b46:
  966. divu.w d1,d0
  967. add.w #$0030,d0
  968. move.b d0,(a0)+
  969. clr.w d0
  970. swap.w d0
  971. rts
  972. L000b54:
  973. move.l a0,-(sp)
  974. moveq.l #$03,d1
  975. L000b58:
  976. move.b (a0),d0
  977. cmp.b #$30,d0 ;'0'
  978. bne.s L000b68
  979. move.b #$20,(a0)+ ;' '
  980. dbra.w d1,L000b58
  981. L000b68:
  982. movea.l (sp)+,a0
  983. rts
  984. .bss
  985. L000b6c:
  986. .ds.b 520
  987. L000d74:
  988. .ds.b 520
  989. L000f7c:
  990. .ds.b 22
  991. L000f92:
  992. .ds.b 8
  993. L000f9a:
  994. .ds.b 34
  995. L000fbc:
  996. .ds.b 128
  997. L00103c:
  998. .ds.b 128
  999. L0010bc:
  1000. .ds.b 1
  1001. L0010bd:
  1002. .ds.b 9
  1003. L0010c6:
  1004. .ds.w 1
  1005. L0010c8:
  1006. .ds.b 66
  1007. L00110a:
  1008. .ds.b 66
  1009. L00114c:
  1010. .ds.b 130
  1011. L0011ce:
  1012. .ds.w 1
  1013. L0011d0:
  1014. .ds.w 1
  1015. L0011d2:
  1016. .ds.w 1
  1017. L0011d4:
  1018. .ds.w 1
  1019. L0011d6:
  1020. .ds.w 1
  1021. L0011d8:
  1022. .ds.w 1
  1023. L0011da:
  1024. .ds.w 1
  1025. L0011dc:
  1026. .ds.w 1
  1027. L0011de:
  1028. .ds.w 1
  1029. L0011e0:
  1030. .ds.w 1
  1031. L0011e2:
  1032. .ds.w 1
  1033. L0011e4:
  1034. .ds.l 1
  1035. L0011e8:
  1036. .ds.l 1
  1037. L0011ec:
  1038. .ds.l 1
  1039. L0011f0:
  1040. .ds.l 1
  1041. L0011f4:
  1042. .ds.b 1040
  1043. L001604:
  1044. .ds.b 1554
  1045. End:
  1046. .end Start