home *** CD-ROM | disk | FTP | other *** search
/ Loadstar Extras 3 / Ex3side3.d64 / disk.src < prev    next >
Text File  |  2022-08-28  |  7KB  |  652 lines

  1.  
  2. open =$ffc0
  3. readst =$ffb7
  4. setlfs =$ffba
  5. setnam =$ffbd
  6. load =$ffd5
  7. getin =$ffe4
  8. clrchn =$ffcc
  9. close =$ffc3   ;a
  10. chrin =$ffcf
  11. chkout =$ffc9  ;x
  12. chkin =$ffc6   ;x
  13. plot =$fff0
  14. chrout =$ffd2
  15. color'pointer =243
  16. screen'line'pointer =209
  17. print'number =$bdcd ;x,a
  18. clear'line =59903
  19. background =53281
  20. border =53280
  21. unlisten =$ffae
  22. clall =$ffe7
  23.  
  24. .org $c000
  25. .obj "@0:disk $c000
  26.  
  27. jmp read
  28. jmp write;3
  29. jmp print'file;6
  30. jmp wipe'marked;9
  31. jmp mark'file;12
  32. jmp read'mark;15
  33. jmp copy'file'buf1;18
  34. jmp copy'file'buf2;21
  35. jmp stash'buf1;24
  36. jmp stash'buf2;27
  37. jmp change'type;30
  38. jmp report'marked
  39. jmp insert'disjointed
  40. jmp report'type
  41.  
  42.  
  43. wipe'marked ldy #0
  44. tya
  45. - sta marked'files,y
  46. sta marked'files+256,y
  47. iny
  48. bne -
  49. rts
  50.  
  51. mark'file stx 251
  52. sty 252
  53. lda <marked'files
  54. clc
  55. adc 251
  56. sta 253
  57. lda >marked'files
  58. adc 252
  59. sta 254
  60. ldy #0
  61. lda (253),y
  62. eor #128
  63. sta (253),y
  64. rts
  65.  
  66. read'mark stx 251
  67. sty 252
  68. lda <marked'files
  69. clc
  70. adc 251
  71. sta 253
  72. lda >marked'files
  73. adc 252
  74. sta 254
  75. ldy #0
  76. lda (253),y
  77. sta 780
  78. rts
  79.  
  80. report'type jsr figure'file
  81. lda file'entry
  82. sta 780
  83. rts
  84.  
  85. read jsr figure
  86. ldx #2
  87. jsr chkin
  88. ldy #0
  89. - jsr getin
  90. jsr rom'out
  91. sta (253),y
  92. jsr rom'in
  93. iny
  94. bne -
  95. jsr clrchn
  96. jsr rom'out
  97. ldy #0
  98. lda (253),y
  99. sta 781
  100. iny
  101. lda (253),y
  102. sta 782
  103. jsr rom'in
  104. ldx 781
  105. ldy 782
  106. lda 253
  107. sta eof
  108. lda 254
  109. sta eof+1
  110. inc eof+1
  111. rts
  112.  
  113.  
  114. write lda $c800
  115. sta next'track
  116. lda $c801
  117. sta next'sector
  118. lda <$c900
  119. sta 253
  120. lda >$c900
  121. sta 254
  122.  
  123. - jsr clrchn
  124. ldx #15
  125. jsr chkout
  126. lda "b"
  127. jsr chrout
  128. lda "-"
  129. jsr chrout
  130. lda "p"
  131. jsr chrout
  132. lda " "
  133. jsr chrout
  134. lda "2"
  135. jsr chrout
  136. lda " "
  137. jsr chrout
  138. lda "0"
  139. jsr chrout
  140.  
  141. ;lda #2
  142. ;jsr close
  143. ;lda #1
  144. ;ldx <name
  145. ;ldy >name
  146. ;jsr setnam
  147. ;lda #2
  148. ;ldx 186
  149. ;ldy #2
  150. ;jsr setlfs
  151. ;jsr open
  152.  
  153. jsr clrchn
  154. ldx #2
  155. jsr chkout
  156. ldy #0
  157. - jsr rom'out
  158. lda (253),y
  159. jsr rom'in
  160. jsr chrout
  161. iny
  162. bne -
  163.  
  164. jsr clrchn
  165. ldx #15
  166. jsr chkout
  167. lda "u"
  168. jsr chrout
  169. lda "2"
  170. jsr chrout
  171. lda " "
  172. jsr chrout
  173. lda "2"
  174. jsr chrout
  175. lda " "
  176. jsr chrout
  177. lda "0"
  178. jsr chrout
  179. lda " "
  180. jsr chrout
  181. ldx next'track
  182. lda #0
  183. jsr $bdcd
  184. lda " "
  185. jsr chrout
  186. ldx next'sector
  187. lda #0
  188. jsr $bdcd
  189. jsr clrchn
  190.  
  191. ldy #0
  192. jsr rom'out
  193. lda (253),y
  194. sta next'track
  195. iny
  196. lda (253),y
  197. sta next'sector
  198. jsr rom'in
  199. inc 254
  200. lda next'track
  201. beq +
  202. jmp --
  203. + lda #15
  204. jsr close
  205. lda #2
  206. jsr close
  207. jmp clrchn
  208.  
  209.  
  210.  
  211.  
  212.  
  213. stx 253
  214. sty 254
  215. ldx #2
  216. jsr chkout
  217. ldy #0
  218. - jsr rom'out
  219. lda (253),y
  220. jsr rom'in
  221. jsr chrout
  222. iny
  223. bne -
  224. jsr clrchn
  225. jmp rom'in
  226.  
  227. figure sta 252
  228. lda #0
  229. sta 251
  230. lda <$c800
  231. sta 253
  232. lda >$c800
  233. sta 254
  234. lda 251
  235. clc 
  236. adc 253
  237. sta 253
  238. lda 252
  239. adc 254
  240. sta 254
  241. rts
  242.  
  243. figure'file stx 251
  244. sty 252
  245. ldy #4
  246. - asl 251
  247. rol 252
  248. dey
  249. bpl -
  250.  
  251. lda <$c900
  252. sta 253
  253. lda >$c900
  254. sta 254
  255. lda 251
  256. clc 
  257. adc 253
  258. sta 253
  259. lda 252
  260. adc 254
  261. sta 254
  262. jsr rom'out
  263. ldy #31
  264. - lda (253),y
  265. sta file'buffer,y
  266. dey
  267. bpl -
  268. jmp rom'in
  269.  
  270.  
  271. print'file jsr figure'file
  272.  
  273. lda file'entry
  274. jsr print'type
  275. ldx file'entry+1
  276. stx temp+1
  277. lda #0
  278. jsr print'number
  279. jsr printsp
  280. jsr fix'space
  281. print'sec ldx file'entry+2
  282. stx temp+1
  283. lda #0
  284. jsr print'number
  285. jsr printsp
  286. jsr fix'space
  287. lda #34
  288. jsr chrout
  289.  
  290.  
  291. ldy #3
  292. - lda file'entry,y
  293. cmp #160
  294. beq +
  295. jsr chrout
  296. iny
  297. cpy #19
  298. bne -
  299.  
  300. + lda #34
  301. jsr chrout
  302.  
  303. rts
  304.  
  305.  
  306. rom'out pha
  307. sei
  308. lda #$74
  309. sta 1
  310. pla
  311. rts
  312.  
  313. rom'in pha
  314. lda #$77
  315. sta 1
  316. cli
  317. pla
  318. rts
  319.  
  320. print'type sta temp
  321. and #15
  322. sta type
  323. asl
  324. tay
  325. lda types,y
  326. sta 251
  327. lda types+1,y
  328. sta 252
  329. ldy #0
  330. - lda (251),y
  331. jsr chrout
  332. iny
  333. cpy #3
  334. bne -
  335. jsr printsp
  336. lda temp
  337. and #$80
  338. bne +
  339. lda "*"
  340. jmp chrout
  341.  
  342.  
  343. + lda temp
  344. and #$c0
  345. bne printsp
  346. lda "<"
  347. jsr chrout
  348.  
  349. printsp lda " "
  350. jmp chrout
  351.  
  352. fix'space lda temp+1
  353. cmp #10
  354. bcs +
  355. jsr printsp
  356. jsr printsp
  357. jmp fix'out
  358. + cmp #100
  359. bcs fix'out
  360. jsr printsp
  361. fix'out rts
  362.  
  363. copy'file'buf1 jsr figure'file
  364. ldy #31
  365. - lda file'buffer,y
  366. sta buffer1,y
  367. dey
  368. bpl -
  369. rts
  370.  
  371. copy'file'buf2 jsr figure'file
  372. ldy #31
  373. - lda file'buffer,y
  374. sta buffer2,y
  375. dey
  376. bpl -
  377. rts
  378.  
  379. stash'buf1 jsr figure'file
  380. jsr rom'out
  381. ldy #2
  382. - lda buffer1,y
  383. sta (253),y
  384. iny
  385. cpy #32
  386. bne -
  387. jmp rom'in
  388.  
  389. stash'buf2 jsr figure'file
  390. jsr rom'out
  391. ldy #2
  392. - lda buffer2,y
  393. sta (253),y
  394. iny
  395. cpy #32
  396. bne -
  397. jmp rom'in
  398.  
  399. change'type stx file
  400. sty file+1
  401. sta ctype
  402. jsr figure'file
  403. ; and #$80
  404. ;beq +
  405. lda file'entry
  406. and #%11111000
  407. ora ctype
  408. ora #$80
  409. sta file'entry
  410. lda ctype
  411. bne +
  412. sta file'entry
  413. + ldy #31
  414. - lda file'buffer,y
  415. sta buffer1,y
  416. dey
  417. bpl -
  418. ldx file
  419. ldy file+1
  420. jsr stash'buf1
  421. ldx file
  422. ldy file+1
  423. + jmp print'file
  424.  
  425. report'marked ldx <marked'files
  426. ldy >marked'files
  427. stx 781
  428. sty 782
  429. rts
  430.  
  431. insert'disjointed stx insertion'point
  432. sty insertion'point+1
  433. sta number'of'blocks
  434. ldy #0
  435. sta number'of'files
  436. sty number'of'files+1
  437. asl number'of'files
  438. rol number'of'files+1
  439. asl number'of'files
  440. rol number'of'files+1
  441. asl number'of'files
  442. rol number'of'files+1
  443.  
  444.  
  445. outer lda #0
  446. sta current'file
  447. sta current'file+1
  448.  
  449. outer'loop ldx current'file
  450. ldy current'file+1
  451. jsr read'mark
  452. cmp #0
  453. beq next'outer
  454. jsr cut'current
  455. jsr insert'at'ip
  456.  
  457. next'outer inc current'file
  458. bne +
  459. inc current'file+1
  460. + lda current'file+1
  461. cmp number'of'files+1
  462. bcc outer'loop
  463. lda current'file
  464. cmp number'of'files
  465. bcc outer'loop
  466. beq outer'loop
  467. lda #255
  468. sta 787
  469. rts
  470.  
  471. cut'current ldx current'file
  472. ldy current'file+1
  473. jsr copy'file'buf1
  474.  
  475. lda current'file
  476. clc
  477. adc #1
  478. sta current'cut
  479. lda current'file+1
  480. adc #0
  481. sta current'cut+1
  482.  
  483. cut'loop ldx current'cut
  484. ldy current'cut+1
  485.  
  486. jsr copy'file'buf2
  487. ldx current'cut
  488. ldy current'cut+1
  489. dex
  490. cpx #255
  491. bne +
  492. dey
  493. + jsr stash'buf2
  494.  
  495. move'marks'too lda <marked'files-1
  496. clc
  497. adc current'cut
  498. sta 251
  499. lda >marked'files-1
  500. adc current'cut+1
  501. sta 252
  502.  
  503. ldy #1
  504. lda (251),y
  505. dey
  506. sta (251),y
  507.  
  508. next'cut inc current'cut
  509. bne +
  510. inc current'cut+1
  511. + lda current'cut+1
  512. cmp number'of'files+1
  513. bcc cut'loop
  514. lda current'cut
  515. cmp number'of'files
  516. bcc cut'loop
  517. beq cut'loop
  518.  
  519. lda insertion'point+1
  520. cmp current'file+1
  521. bcc +
  522. lda insertion'point
  523. cmp current'file
  524. bcc +
  525. beq +
  526.  
  527. lda insertion'point
  528. sec
  529. sbc #1
  530. sta insertion'point
  531. lda insertion'point+1
  532. sbc #0
  533. sta insertion'point+1
  534.  
  535. + rts
  536.  
  537.  
  538.  
  539. insert'at'ip lda number'of'files
  540. sec
  541. sbc #1
  542. sta current'insert
  543. lda number'of'files+1
  544. sbc #0
  545. sta current'insert+1
  546.  
  547. insert'loop ldx current'insert
  548. ldy current'insert+1
  549.  
  550. jsr copy'file'buf2
  551. ldx current'insert
  552. ldy current'insert+1
  553. inx
  554. bne +
  555. iny
  556. + jsr stash'buf2
  557.  
  558. move'marks lda <marked'files
  559. clc
  560. adc current'insert
  561. sta 251
  562. lda >marked'files
  563. adc current'insert+1
  564. sta 252
  565.  
  566. ldy #0
  567. lda (251),y
  568. iny
  569. sta (251),y
  570.  
  571. next'insert lda current'insert
  572. sec
  573. sbc #1
  574. sta current'insert
  575. lda current'insert+1
  576. sbc #0
  577. sta current'insert+1
  578. cmp #255
  579. beq +
  580.  
  581. lda insertion'point+1
  582. cmp current'insert+1
  583. bcc insert'loop
  584. lda insertion'point
  585. cmp current'insert
  586. bcc insert'loop
  587. beq insert'loop
  588.  
  589. + ldx insertion'point
  590. ldy insertion'point+1
  591. jsr stash'buf1
  592.  
  593. inc insertion'point
  594. bne +
  595. inc insertion'point+1
  596.  
  597. + lda insertion'point+1
  598. cmp current'file+1
  599. bcc +
  600. lda insertion'point
  601. cmp current'file
  602. bcc +
  603. beq +
  604.  
  605. lda current'file
  606. sec
  607. sbc #1
  608. sta current'file
  609. lda current'file+1
  610. sbc #0
  611. sta current'file+1
  612.  
  613. + rts
  614.  
  615.  
  616.  
  617. current'insert .word 0
  618. current'cut .word 0
  619. number'of'blocks .byte 0
  620. number'of'files .word 0
  621. current'file .word 0
  622. insertion'point .word 0
  623. eof .buf 2
  624. file .buf 2
  625. ctype .byt 0
  626.  
  627. file'buffer .buf 33
  628. buffer1 .buf 33
  629. buffer2 .buf 33
  630. track .byt 0
  631. sector .byt 0
  632. next'track .byt 0
  633. next'sector .byt 0
  634. name .asc "#"
  635. device .byt 0
  636.  
  637.  
  638. file'entry =file'buffer+2
  639. type .byte 0
  640.  
  641. types .word del,seq,prg,usr,rel,cbm,dir
  642.  
  643. del .asc "del"
  644. seq .asc "seq"
  645. prg .asc "prg"
  646. usr .asc "usr"
  647. rel .asc "rel"
  648. cbm .asc "cbm"
  649. dir .asc "dir"
  650. temp .byt 0,0,0,0,0
  651. marked'files .buf 512
  652.