home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / 3MINCPY.ARC / C35 10 (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  7.7 KB  |  575 lines

  1. 10 *= $0C9B
  2. 20 JSR $050E
  3. 30 JMP $0527
  4. 40 JSR $050E
  5. 50 JMP $0591
  6. 60 ORA ($00,X)
  7. 70 ;
  8. 80 SEI
  9. 90 LDA $1C00;DISK CONTROL BYTE
  10. 100 ORA #%00000100
  11. 110 STA $1C00;TURN ON DRIVE MOTOR
  12. 120 LDA #%11101110
  13. 130 STA $1C0C;PERIPHIAL CONTROL BYTE
  14. 140 ;
  15. 150 ;DELAY USED FOR DOS TO SET UP
  16. 160 ;
  17. 170 LDX #$00
  18. 180 LDY #$00
  19. 190 DEX
  20. 200 BNE $0CBB
  21. 210 DEY
  22. 220 BNE $0CBB
  23. 230 RTS
  24. 240 ;
  25. 250 ;SET TRACK TO #1 SECTOR TO 0
  26. 260 ;
  27. 270 LDA $050C;= #$01
  28. 280 STA $18;TRACK BYTE 1541 ZERO PAGE
  29. 290 LDA $050D;= #$00
  30. 300 STA $19;SECTOR  "   "    "    "
  31. 310 JSR $0668
  32. 320 ;
  33. 330 LDA #$03;NUMBER OF PASSES
  34. 340 STA $C7
  35. 350 ;
  36. 360 ;SET ACTIVE BUFFER TO $0300 1541 RAM
  37. 370 ;
  38. 380 LDA #$03
  39. 390 STA $31;HI BYTE ACTIVE BUFFER
  40. 400 ;
  41. 410 JSR $075E
  42. 420 BCC $0CE2
  43. 430 JSR $0657
  44. 440 JMP $0579
  45. 450 ;
  46. 460 ;READ IN 440 BYTES GCR CODE
  47. 470 ;
  48. 480 LDY #$00;POINTER ZERO PAGE Y ADDRESS
  49. 490 ;
  50. 500 ;1541 ROM USES V FLAGT TO INDICATE
  51. 510 ;A BYTE BUFFERED AT DATA PORT A
  52. 520 ;$1C01 IN 1541 RAM
  53. 530 ;
  54. 540 BVC $0CE4;NO BYTE BUFFERED
  55. 550 CLV;RESET V FLAG FOR NEXT BYTE
  56. 560 LDA $1C01;GET BYTE AND STORE
  57. 570 STA ($30),Y;POINTS TO $0300
  58. 580 INY
  59. 590 BNE $0CE4;GET NEXT BYTE
  60. 600 ;
  61. 610 ;$0100 USED FOR OVERFLOW BYTES OVER 256
  62. 620 ;
  63. 630 LDY #$BA
  64. 640 BVC $0CF1;SAME AS ABOVE
  65. 650 CLV
  66. 660 LDA $1C01
  67. 670 STA $0100,Y
  68. 680 INY
  69. 690 BNE $0CF1
  70. 700 ;
  71. 710 JSR $F8E0;ZERO BYTE COUNTER AND ACTIVE BUFFER POINTER
  72. 720 ;
  73. 730 LDA $38;DATA BLOCK ID #$07
  74. 740 CMP $47;USED BY DOS FOR DATA BLOCK ID
  75. 750 BNE $0D0D;NOT #$07 BAD DATA BLOCK (PROTECTION)
  76. 760 ;
  77. 770 JSR $F5E9;CALCULATE DATA BLOCK CHECKSUM
  78. 780 EOR $3A;STORAGE DATA OR HEADER CHECKSUM
  79. 790 BEQ $0D14;(null)OD DATA BLOCK
  80. 800 DEC $C7
  81. 810 BNE $0CD3;MORE TO READ
  82. 820 JSR $0657
  83. 830 ;
  84. 840 LDA $19;SECTOR NUMBER
  85. 850 JSR $0704;SEND OVER SERIAL BUS TO 64
  86. 860 ;SEND DATA BLOCK OVER SERIAL BUS TO 64
  87. 870 ;
  88. 880 LDY #$00
  89. 890 LDA $0300,Y
  90. 900 JSR $0704
  91. 910 INY
  92. 920 BNE $0D1B
  93. 930 JSR $0618
  94. 940 BCC $0CCF
  95. 950 JMP $065E
  96. 960 ;
  97. 970 ;CONVERT GCR TO BINARY
  98. 980 ;
  99. 990 LDA $050C
  100. 1000 STA $18;TRACK # BUFFER
  101. 1010 LDA $050D
  102. 1020 STA $19;SECTOR # BUFFER
  103. 1030 JSR $0668
  104. 1040 LDA #$03
  105. 1050 STA $31
  106. 1060 LDY #$00
  107. 1070 JSR $06D4
  108. 1080 STA ($30),Y;ACTIVE BUFFER $0300
  109. 1090 INY
  110. 1100 BNE $0D3F
  111. 1110 ;
  112. 1120 JSR $F5E9;CALCULATE DATA BLOCK CHECKSUM
  113. 1130 ;
  114. 1140 STA $3A;CHECKSUM BUFFER
  115. 1150 ;
  116. 1160 JSR $F78F;CONVERT GCR TO BINARY
  117. 1170 JSR $0731
  118. 1180 BCC $0D5A
  119. 1190 JSR $0657
  120. 1200 JMP $0601
  121. 1210 ;
  122. 1220 LDX #$08;PASS OVER DATA HEADER
  123. 1230 BVC $0D5C
  124. 1240 CLV
  125. 1250 DEX
  126. 1260 BNE $0D5C
  127. 1270 ;
  128. 1280 LDA #%11111111
  129. 1290 STA $1C03;DATA DIRECTION (OUT)
  130. 1300 LDA $1C0C;PERIPHIAL CONTROL
  131. 1310 AND #$1F;SET UP FOR WRITE
  132. 1320 ORA #$C0
  133. 1330 STA $1C0C
  134. 1340 LDA #$FF;SYNC MARK
  135. 1350 LDX #$05;FIVE OF THEM
  136. 1360 STA $1C01;PLACE IN BUFFER TO WRITE TO DISK
  137. 1370 BVC $0D78;DISK NOT READY FOR BYTE
  138. 1380 CLV;BYTE WRITEN RESET V FLAG
  139. 1390 DEX
  140. 1400 BNE $0D78
  141. 1410 ;
  142. 1420 ;NOW WRITE OVERFLOW BUFFER TO DISK
  143. 1430 ;
  144. 1440 LDY #$BB
  145. 1450 LDA $0100,Y
  146. 1460 BVC $0D83
  147. 1470 CLV
  148. 1480 STA $1C01
  149. 1490 INY
  150. 1500 BNE $0D80
  151. 1510 LDA ($30),Y
  152. 1520 BVC $0D8E
  153. 1530 CLV
  154. 1540 STA $1C01
  155. 1550 INY
  156. 1560 BNE $0D8C
  157. 1570 BVC $0D97
  158. 1580 JSR $FE00;DISABLE WRITE MODE
  159. 1590 ;
  160. 1600 LDA $19;SECTOR NUMBER
  161. 1610 JSR $0704;SEND OVER SERIAL BUS TO 64
  162. 1620 JSR $0618
  163. 1630 BCC $0D39
  164. 1640 LDA $18;CURRENT TRACK NUMBER
  165. 1650 STA $050C;SAVE
  166. 1660 LDA $19;SECTOR NUMBER
  167. 1670 STA $050D;SAVE
  168. 1680 JMP $065E
  169. 1690 ;
  170. 1700 LDX $19;SECTOR NUMBER
  171. 1710 INX
  172. 1720 LDA $C4
  173. 1730 CMP #$12;DIRECTORY TRACK (18)
  174. 1740 BNE $0DC2
  175. 1750 CPX $C4
  176. 1760 BEQ $0DC6
  177. 1770 BNE $0DD5
  178. 1780 CPX $C3
  179. 1790 BNE $0DD5
  180. 1800 LDA $18
  181. 1810 CMP #$29
  182. 1820 BEQ $0DCE
  183. 1830 INC $18
  184. 1840 JSR $066D
  185. 1850 LDA #$00
  186. 1860 BEQ $0DE9
  187. 1870 CLC
  188. 1880 LDA $19
  189. 1890 ADC $C3
  190. 1900 CMP $C4
  191. 1910 BCC $0DE9
  192. 1920 SBC $C4
  193. 1930 TAX
  194. 1940 LDA $C4
  195. 1950 CMP #$12
  196. 1960 BNE $0DE8
  197. 1970 INX
  198. 1980 TXA
  199. 1990 STA $19
  200. 2000 CLC
  201. 2010 DEC $C5
  202. 2020 BNE $0DF1
  203. 2030 SEC
  204. 2040 RTS
  205. 2050 LDA $18
  206. 2060 ORA #$80
  207. 2070 JMP $0704
  208. 2080 LDA $1C00
  209. 2090 AND #$FB
  210. 2100 STA $1C00
  211. 2110 CLI
  212. 2120 RTS
  213. 2130 ;
  214. 2140 JSR $06D4
  215. 2150 STA $C5
  216. 2160 SEC
  217. 2170 LDA $18
  218. 2180 SBC $22
  219. 2190 BEQ $0E4A
  220. 2200 BCS $0E16
  221. 2210 EOR #$FF
  222. 2220 TAX
  223. 2230 INX
  224. 2240 TXA
  225. 2250 STA $C2
  226. 2260 LDA #$01
  227. 2270 BCS $0E1E
  228. 2280 LDA #$FF
  229. 2290 STA $C0
  230. 2300 LDY #$02
  231. 2310 CLC
  232. 2320 LDA $1C00
  233. 2330 ADC $C0
  234. 2340 AND #$03
  235. 2350 STA $C1
  236. 2360 LDA $1C00
  237. 2370 AND #$FC
  238. 2380 ORA $C1
  239. 2390 STA $1C00
  240. 2400 LDA #$04
  241. 2410 STA $C1
  242. 2420 LDX #$00
  243. 2430 DEX
  244. 2440 BNE $0E3C
  245. 2450 DEC $C1
  246. 2460 BNE $0E3C
  247. 2470 DEY
  248. 2480 BNE $0E22
  249. 2490 DEC $C2
  250. 2500 BNE $0E20
  251. 2510 LDA $18
  252. 2520 STA $22
  253. 2530 JSR $F24B
  254. 2540 STA $C4
  255. 2550 LDA $06D0,X
  256. 2560 STA $C3
  257. 2570 TXA
  258. 2580 ASL
  259. 2590 ASL
  260. 2600 ASL
  261. 2610 ASL
  262. 2620 ASL
  263. 2630 STA $C1
  264. 2640 LDA $1C00
  265. 2650 AND #$9F
  266. 2660 ORA $C1
  267. 2670 STA $1C00
  268. 2680 RTS
  269. 2690 ORA #$09
  270. 2700 ASL
  271. 2710 ASO #$2C
  272. 2720 BRK
  273. 2730 CLC
  274. 2740 BPL $0E6F
  275. 2750 LDA #$10
  276. 2760 STA $1800
  277. 2770 BIT $1800
  278. 2780 BMI $0E79
  279. 2790 LDX #$04
  280. 2800 DEX
  281. 2810 BNE $0E80
  282. 2820 STX $1800
  283. 2830 LDX #$04
  284. 2840 LDA $1800
  285. 2850 LSR
  286. 2860 PHP
  287. 2870 LSR
  288. 2880 LSR
  289. 2890 ROR $C0
  290. 2900 PLP
  291. 2910 ROR $C0
  292. 2920 DEX
  293. 2930 BNE $0E88
  294. 2940 LDA #$0F
  295. 2950 STA $1800
  296. 2960 LDA $C0
  297. 2970 RTS
  298. 2980 STA $C0
  299. 2990 BIT $1800
  300. 3000 BPL $0EA1
  301. 3010 LDA #$10
  302. 3020 STA $1800
  303. 3030 BIT $1800
  304. 3040 BMI $0EAB
  305. 3050 LDX #$04
  306. 3060 LDA #$00
  307. 3070 ASL $C0
  308. 3080 ROL
  309. 3090 ASL
  310. 3100 ASL $C0
  311. 3110 ROL
  312. 3120 ASL
  313. 3130 STA $1800
  314. 3140 DEX
  315. 3150 BNE $0EB2
  316. 3160 PHA
  317. 3170 PLA
  318. 3180 PHA
  319. 3190 PLA
  320. 3200 LDA #$0F
  321. 3210 STA $1800
  322. 3220 RTS
  323. 3230 LDA $19
  324. 3240 EOR $16
  325. 3250 EOR $17
  326. 3260 EOR $18
  327. 3270 STA $1A
  328. 3280 JSR $F934
  329. 3290 LDY #$80
  330. 3300 JSR $0764
  331. 3310 BCC $0EE1
  332. 3320 RTS
  333. 3330 LDX #$00
  334. 3340 BVC $0EE3
  335. 3350 CLV
  336. 3360 LDA $1C01
  337. 3370 CMP $24,X
  338. 3380 BEQ $0EF2
  339. 3390 DEY
  340. 3400 BNE $0EDB
  341. 3410 SEC
  342. 3420 RTS
  343. 3430 INX
  344. 3440 CPX #$08
  345. 3450 BNE $0EE3
  346. 3460 CLC
  347. 3470 RTS
  348. 3480 JSR $0731
  349. 3490 BCC $0EFF
  350. 3500 RTS
  351. 3510 STY $C6
  352. 3520 LDY #$03
  353. 3530 LDA #$FF
  354. 3540 STA $1805
  355. 3550 LDA #$03
  356. 3560 BIT $1805
  357. 3570 BPL $0F1C
  358. 3580 BIT $1C00
  359. 3590 BMI $0F0A
  360. 3600 LDA $1C01
  361. 3610 CLV
  362. 3620 LDY $C6
  363. 3630 CLC
  364. 3640 RTS
  365. 3650 DEY
  366. 3660 BNE $0F03
  367. 3670 LDY $C6
  368. 3680 SEC
  369. 3690 RTS
  370. 3700 LDA #$01
  371. 3710 STA $22
  372. 3720 LDA #$0A
  373. 3730 STA $BA
  374. 3740 SEI
  375. 3750 LDA $1C00
  376. 3760 ORA #$04
  377. 3770 STA $1C00
  378. 3780 LDA #$0C
  379. 3790 STA $4A
  380. 3800 JSR $054C
  381. 3810 DEC $4A
  382. 3820 BNE $0F38
  383. 3830 LDX #$00
  384. 3840 JSR $0559
  385. 3850 JSR $0576
  386. 3860 LDA #$EE
  387. 3870 STA $1C0C
  388. 3880 JSR $05A1
  389. 3890 LDA $1C00
  390. 3900 AND #$FB
  391. 3910 STA $1C00
  392. 3920 LDA #$EC
  393. 3930 STA $1C0C
  394. 3940 CLI
  395. 3950 RTS
  396. 3960 LDY #$02
  397. 3970 LDX $1C00
  398. 3980 INX
  399. 3990 JSR $0559
  400. 4000 DEY
  401. 4010 BNE $0F60
  402. 4020 INC $22
  403. 4030 JMP $0576
  404. 4040 LDY #$02
  405. 4050 LDX $1C00
  406. 4060 DEX
  407. 4070 JSR $0559
  408. 4080 DEY
  409. 4090 BNE $0F71
  410. 4100 RTS
  411. 4110 TXA
  412. 4120 AND #$03
  413. 4130 STA $BB
  414. 4140 LDA $1C00
  415. 4150 AND #$FC
  416. 4160 ORA $BB
  417. 4170 STA $1C00
  418. 4180 LDA #$04
  419. 4190 STA $BB
  420. 4200 LDX #$00
  421. 4210 DEX
  422. 4220 BNE $0F91
  423. 4230 DEC $BB
  424. 4240 BNE $0F91
  425. 4250 RTS
  426. 4260 LDA $22
  427. 4270 JSR $F24B
  428. 4280 TXA
  429. 4290 ASL
  430. 4300 ASL
  431. 4310 ASL
  432. 4320 ASL
  433. 4330 ASL
  434. 4340 STA $44
  435. 4350 LDA $1C00
  436. 4360 AND #$9F
  437. 4370 ORA $44
  438. 4380 STA $1C00
  439. 4390 RTS
  440. 4400 LDA $1C0C
  441. 4410 AND #$1F
  442. 4420 ORA #$C0
  443. 4430 STA $1C0C
  444. 4440 LDA #$FF
  445. 4450 STA $1C03
  446. 4460 STA $1C01
  447. 4470 RTS
  448. 4480 LDA $22
  449. 4490 JSR $F24B
  450. 4500 STA $43
  451. 4510 JSR $058E
  452. 4520 LDA #$FF
  453. 4530 STA $1C01
  454. 4540 LDA #$00
  455. 4550 STA $BC
  456. 4560 TAX
  457. 4570 TAY
  458. 4580 LDA $39
  459. 4590 STA $0300,Y
  460. 4600 LDA $BC
  461. 4610 STA $0302,Y
  462. 4620 LDA $22
  463. 4630 STA $0303,Y
  464. 4640 LDA $13
  465. 4650 STA $0304,Y
  466. 4660 LDA $12
  467. 4670 STA $0305,Y
  468. 4680 LDA #$0F
  469. 4690 STA $0306,Y
  470. 4700 STA $0307,Y
  471. 4710 LDA #$00
  472. 4720 EOR $0302,Y
  473. 4730 EOR $0303,Y
  474. 4740 EOR $0304,Y
  475. 4750 EOR $0305,Y
  476. 4760 STA $0301,Y
  477. 4770 CLC
  478. 4780 TYA
  479. 4790 ADC #$08
  480. 4800 TAY
  481. 4810 INC $BC
  482. 4820 LDA $BC
  483. 4830 CMP $43
  484. 4840 BCC $0FD9
  485. 4850 TYA
  486. 4860 PHA
  487. 4870 INX
  488. 4880 TXA
  489. 4890 STA $0400,X
  490. 4900 INX
  491. 4910 BNE $101C
  492. 4920 LDA #$4B
  493. 4930 STA $0400
  494. 4940 LDA #$03
  495. 4950 STA $31
  496. 4960 JSR $FE30
  497. 4970 PLA
  498. 4980 TAY
  499. 4990 DEY
  500. 5000 JSR $FDE5
  501. 5010 JSR $FDF5
  502. 5020 LDA #$04
  503. 5030 STA $31
  504. 5040 JSR $F5E9
  505. 5050 STA $3A
  506. 5060 JSR $F78F
  507. 5070 LDA #$00
  508. 5080 STA $32
  509. 5090 LDA #$FF
  510. 5100 STA $1C01
  511. 5110 LDX #$05
  512. 5120 BVC $104E
  513. 5130 CLV
  514. 5140 DEX
  515. 5150 BNE $104E
  516. 5160 LDX #$0A
  517. 5170 LDY $32
  518. 5180 BVC $1058
  519. 5190 CLV
  520. 5200 LDA $0300,Y
  521. 5210 STA $1C01
  522. 5220 INY
  523. 5230 DEX
  524. 5240 BNE $1058
  525. 5250 STY $32
  526. 5260 LDX #$08
  527. 5270 BVC $1069
  528. 5280 CLV
  529. 5290 LDA #$55
  530. 5300 STA $1C01
  531. 5310 DEX
  532. 5320 BNE $1069
  533. 5330 LDA #$FF
  534. 5340 LDX #$05
  535. 5350 BVC $1078
  536. 5360 CLV
  537. 5370 STA $1C01
  538. 5380 DEX
  539. 5390 BNE $1078
  540. 5400 LDX #$BB
  541. 5410 BVC $1083
  542. 5420 CLV
  543. 5430 LDA $0100,X
  544. 5440 STA $1C01
  545. 5450 INX
  546. 5460 BNE $1083
  547. 5470 LDY #$00
  548. 5480 BVC $1091
  549. 5490 CLV
  550. 5500 LDA ($30),Y
  551. 5510 STA $1C01
  552. 5520 INY
  553. 5530 BNE $1091
  554. 5540 LDA #$55
  555. 5550 LDX #$08
  556. 5560 BVC $10A0
  557. 5570 CLV
  558. 5580 STA $1C01
  559. 5590 DEX
  560. 5600 BNE $10A0
  561. 5610 DEC $BC
  562. 5620 BNE $1047
  563. 5630 BVC $10AD
  564. 5640 CLV
  565. 5650 BVC $10B0
  566. 5660 CLV
  567. 5670 JSR $FE00
  568. 5680 LDA $22
  569. 5690 CMP #$29
  570. 5700 BEQ $10C2
  571. 5710 JSR $053B
  572. 5720 JMP $05A1
  573. 5730 RTS
  574. 5740 .END C35 EQ
  575.