home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU15.ARC / MSD-DAVID (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  6.4 KB  |  209 lines

  1. 10 REM MSD SD-2 UTILITY PROGRAM
  2. 20 REM PUBLIC DOMAIN NOT FOR SALE
  3. 30 REM COPY RIGHT 1984
  4. 40 REM JIM RHODES
  5. 50 REM PO BOX 571, STERLING, VA 22170
  6. 60 PRINT CHR$(142):POKE 53281,1:POKE53280,1:PRINT"[147][144]":REM WHITE CURSER
  7. 70 PRINT"     ******************************"
  8. 80 PRINT"     * DUAL DRIVE UTILITY PROGRAM *"
  9. 90 PRINT"     *       COPYRIGHT 1984       *"
  10. 100 PRINT"     *         JIM RHODES         *"
  11. 110 PRINT"     * PUBLIC DOMAIN     REV  3.0[146] *"
  12. 120 PRINT"     ******************************":FORI=1TO2000:NEXT
  13. 130 PRINT"[147]       FUNCTIONS  SUPPORTED"
  14. 140 PRINT"       [197][197][197][197][197][197][197][197][197]  [197][197][197][197][197][197][197][197][197]"
  15. 150 PRINT"     DIR -------- DISK DIRECTORY"
  16. 160 PRINT"     FORMAT ----- FORMAT NEW DISK"
  17. 170 PRINT"     COPYDISK --- COPY DISK"
  18. 180 PRINT"     COPYFILE --- COPY FILE"
  19. 190 PRINT"     RENAME ----- RENAME FILE"
  20. 200 PRINT"     ERASE ------ ERASE FILE"
  21. 210 PRINT"     STATUS ----- DISK ERROR STATUS"
  22. 220 PRINT"     VALIDATE --- VALIDATE DISK"
  23. 230 PRINT"     DEVICE ----- CHANGE DEVICE NUMBER"
  24. 240 PRINT"     QUIT ------- EXIT PROGRAM"
  25. 300 GOSUB1005:INPUT"     COMMAND ";F$:IFF$=""THEN130
  26. 301 IFF$="?"THEN130
  27. 310 IFF$="DIR"THEN500
  28. 320 IFF$="FORMAT"THEN700
  29. 330 IFF$="COPYDISK"THEN750
  30. 340 IFF$="COPYFILE"THEN800
  31. 350 IFF$="RENAME"THEN825
  32. 360 IFF$="ERASE"THEN850
  33. 370 IFF$="STATUS"THEN865
  34. 380 IFF$="VALIDATE"THEN890
  35. 390 IFF$="DEVICE"THEN910
  36. 395 IFF$="QUIT"THENEND
  37. 400 PRINT
  38. 401 GOTO 300
  39. 500 PRINT"[147] DIRECTORY FOR DRIVE 0 OR 1 "
  40. 501 GETD$:IF D$=""THEN501
  41. 502 IFD$="0"THEN520
  42. 503 IFD$="1"THEN620
  43. 504 GOTO500
  44. 520 PRINT"[147]DRIVE 0    DIRECTORY":PRINT"    SIZE   FILE NAME        TYPE"
  45. 521 OPEN15,8,0,"$0":GET#15,A$,B$
  46. 522 GET#15,A$,B$
  47. 523 GET#15,A$,B$
  48. 524 C=0:IFA$<>""THENC=ASC(A$)
  49. 525 IFB$<>""THENC=C+ASC(B$)*256
  50. 526 PRINT"    "MID$(STR$(C),2);TAB(10);"[146]";
  51. 527 GET#15,B$:IFST<>0THENV$=MID$(STR$(C),2):V=VAL(V$):GOTO535
  52. 528 IFB$<>CHR$(34)THEN527
  53. 529 GET#15,B$:IFB$<>CHR$(34)THENPRINTB$;:GOTO529
  54. 530 GET#15,B$:IFB$=CHR$(32)THEN530
  55. 531 PRINTTAB(28);:C$=""
  56. 532 C$=C$+B$:GET#15,B$:IFB$<>""THEN532
  57. 533 PRINT" "LEFT$(C$,3)
  58. 534 IFST=0THEN522
  59. 535 PRINT"  BLOCKS FREE [146]":PRINT"   "(683-V)   "BLOCKS USED":CLOSE15
  60. 540 GOSUB550
  61. 550 PRINT"    HIT ANY KEY TO CONTINUE "
  62. 551 GETA$:IFA$=""THEN551
  63. 552 IFA$<>"[211]"THEN130
  64. 553 GOTO550
  65. 620 PRINT"[147]DRIVE 1    DIRECTORY":PRINT"    SIZE   FILE NAME        TYPE"
  66. 621 OPEN15,8,0,"$1":GET#15,A$,B$
  67. 622 GET#15,A$,B$
  68. 623 GET#15,A$,B$
  69. 624 C=0:IFA$<>""THENC=ASC(A$)
  70. 625 IFB$<>""THENC=C+ASC(B$)*256
  71. 626 PRINT"    "MID$(STR$(C),2);TAB(10);"[146]";
  72. 627 GET#15,B$:IFST<>0THENV$=MID$(STR$(C),2):V=VAL(V$):GOTO635
  73. 628 IFB$<>CHR$(34)THEN627
  74. 629 GET#15,B$:IFB$<>CHR$(34)THENPRINTB$;:GOTO629
  75. 630 GET#15,B$:IFB$=CHR$(32)THEN630
  76. 631 PRINTTAB(28);:C$=""
  77. 632 C$=C$+B$:GET#15,B$:IFB$<>""THEN632
  78. 633 PRINT" "LEFT$(C$,3)
  79. 634 IFST=0THEN622
  80. 635 PRINT"  BLOCKS FREE [146]":PRINT"   "(683-V)   "BLOCKS USED":CLOSE15
  81. 640 GOSUB550
  82. 700 PRINT"[147]  FORMATING NEW DISK OR ERASING OLD ONE"
  83. 701 PRINT"  [197][197][197][197][197][197][197][197][197] [197][197][197] [197][197][197][197] [197][197] [197][197][197][197][197][197][197] [197][197][197] [197][197][197]"
  84. 702 PRINT"           OK TO CONTINUE (Y/N) "
  85. 703 GETA$:IFA$=""THEN703
  86. 704 IFA$<>"Y"THEN130
  87. 705 PRINT"[145][145]INSERT DISK TO BE FORMATTED INTO DRIVE 0"
  88. 706 PRINT"           OK TO CONTINUE (Y/N) "
  89. 707 GETA$:IFA$=""THEN707
  90. 708 IFA$<>"Y"THEN130
  91. 709 INPUT"DISK NAME:";D$
  92. 710 INPUT"ID NUMBER";I$
  93. 711 PRINT"[147] FORMAT IN PROGRESS":FOR I=1TO1000:NEXT
  94. 712 OPEN15,8,15:PRINT#15,"N0:"+D$+","+I$
  95. 713 CLOSE15
  96. 714 PRINT"[147] FORMAT COMPLETE[146]":FORI=1TO1000:NEXT
  97. 715 GOTO130
  98. 750 PRINT"[147]      COPY DISK FROM DRIVE 0 TO 1"
  99. 751 PRINT"      [197][197][197][197] [197][197][197][197] [197][197][197][197] [197][197][197][197][197] [197] [197][197] [197]"
  100. 752 PRINT" 1. PLACE A WRITE PROTECT ON MASTER DISK"
  101. 753 PRINT" 2. PLACE MASTER DISK IN DRIVE 0"
  102. 754 PRINT" 3. PLACE DESTINATION DISK IN DRIVE 1"
  103. 755 PRINT"           OK TO CONTINUE (Y/N) "
  104. 756 GETA$:IFA$=""THEN756
  105. 757 IFA$<>"Y"THEN130
  106. 758 PRINT"[147] DISK COPY IN PROGRESS ":FOR I=1TO1000:NEXT
  107. 759 OPEN15,8,15:PRINT#15,"D1=0":CLOSE15
  108. 760 PRINT"[147]DISK COPY COMPLETE[146]":FOR I=1TO1000:NEXT
  109. 761 GOTO130
  110. 800 PRINT"[147]       COPY FILE FROM DRIVE 0 TO 1 "
  111. 801 PRINT"       [197][197][197][197] [197][197][197][197] [197][197][197][197] [197][197][197][197][197] [197] [197][197] [197]"
  112. 802 PRINT"           OK TO CONTINUE (Y/N) "
  113. 803 GETA$:IFA$=""THEN803
  114. 804 IFA$<>"Y"THEN130
  115. 805 PRINT"ENTER FILE NAME ":INPUT M$
  116. 807 PRINT"[147] COPY OF "M$" IN PROGRESS":FOR I=1TO1000
  117. 808 OPEN15,8,15:PRINT#15,"C1:"+M$+"=0:"+M$:CLOSE15
  118. 809 PRINT"[147] COPY OF "M$" COMPLETE[146] ":FORI=1TO500:NEXT
  119. 810 GOTO800
  120. 825 PRINT"[147]               RENAME FILE"
  121. 826 PRINT"               [197][197][197][197][197][197] [197][197][197][197]"
  122. 827 PRINT"           OK TO CONTINUE (Y/N) "
  123. 828 GETA$:IFA$=""THEN828
  124. 829 IFA$<>"Y"THEN130
  125. 830 INPUT"IS THE FILE ON DRIVE 0 OR 1";D$
  126. 831 IFD$="0"THEN834
  127. 832 IFD$="1"THEN840
  128. 833 GOTO827
  129. 834 PRINT"ENTER FILE TO BE RENAMED":INPUTO$
  130. 835 PRINT"ENTER NEW NAME FOR FILE":INPUTN$
  131. 836 PRINT"[147] RENAMING "O$:FOR I=1TO1000:NEXT:OPEN15,8,15:PRINT#15,"R0:"+N$+"=0:"+O$
  132. 837 CLOSE15:PRINT"[147] FILE WAS "O$:PRINT" NOW IS "N$"[146]":FOR I=1TO1000:NEXT
  133. 838 GOTO130
  134. 840 PRINT"ENTER FILE TO BE RENAMED":INPUTO$
  135. 841 PRINT"ENTER NEW NAME FOR FILE":INPUTN$
  136. 842 PRINT"[147] RENAMING "O$:FORI=1TO1000:NEXT:OPEN15,8,15:PRINT#15,"R1:"+N$+"=1:"+O$
  137. 843 CLOSE15:PRINT"[147] FILE WAS "O$:PRINT" NOW IS "N$"[146]":FOR I=1TO1000:NEXT
  138. 844 GOTO130
  139. 850 PRINT"[147]               ERASE A FILE "
  140. 851 PRINT"               [197][197][197][197][197] [197] [197][197][197][197]"
  141. 852 PRINT"           OK TO CONTINUE (Y/N) "
  142. 853 GETA$:IF A$=""THEN853
  143. 854 IFA$<>"Y"THEN130
  144. 855 PRINT"ENTER FILE TO BE ERASED":INPUTD$
  145. 856 INPUT"DRIVE 0 OR 1";A$
  146. 857 IFA$="0"THEN860
  147. 858 IFA$="1"THEN861
  148. 859 GOTO852
  149. 860 PRINT"[147] ERASING "D$" @0":FORI=1TO1000:NEXT:OPEN15,8,15:PRINT#15,"S0:"+D$:GOTO862
  150. 861 PRINT"[147] ERASING "D$" @1":FORI=1TO1000:NEXT:OPEN15,8,15:PRINT#15,"S1:"+D$:GOTO862
  151. 862 CLOSE15:PRINT"[147] "D$" ERASED[146]":FORI=1TO1000:NEXT:GOTO850
  152. 865 PRINT"[147]               ERROR STATUS"
  153. 866 PRINT"               [197][197][197][197][197] [197][197][197][197][197][197]"
  154. 870 INPUT" DRIVE 0 OR 1";D$
  155. 871 IF D$="0"THEN875
  156. 872 IF D$="1"THEN880
  157. 873 GOTO870
  158. 875 PRINT"[147]           ERROR STATUS DRIVE 0 "
  159. 876 PRINT"           [197][197][197][197][197] [197][197][197][197][197][197] [197][197][197][197][197] [197]"
  160. 877 OPEN15,8,15:INPUT#15,A,B$,C,D
  161. 878 PRINT" ERROR#: "A:PRINT" STATUS: ";B$:PRINT" TRACK:  ";C:PRINT" SECTOR: ";D
  162. 879 CLOSE15:GOSUB1001
  163. 880 PRINT"[147]           ERROR STATUS DRIVE 1 "
  164. 881 PRINT"           [197][197][197][197][197] [197][197][197][197][197][197] [197][197][197][197][197] [197]"
  165. 882 OPEN15,8,15:INPUT#15,A,B$,C,D
  166. 883 PRINT" ERROR#: "A:PRINT" STATUS: ";B$:PRINT" TRACK:  ";C:PRINT" SECTOR: ";D
  167. 884 CLOSE15:GOSUB1001
  168. 890 PRINT"[147]             VALIDATE DISK "
  169. 891 PRINT"             [197][197][197][197][197][197][197][197] [197][197][197][197]"
  170. 892 PRINT"           OK TO CONTINUE (Y/N) "
  171. 893 GETA$:IFA$=""THEN893
  172. 894 IFA$<>"Y"THEN130
  173. 895 PRINT"[145][145]INSERT DISK TO BE VALIDATED INTO DRIVE 0"
  174. 896 PRINT"           OK TO CONTINUE (Y/N) "
  175. 897 GETA$:IFA$=""THEN897
  176. 898 IFA$<>"Y"THEN130
  177. 899 PRINT"[147] VALIDATING DISK":FORI=1TO1000:NEXT:OPEN15,8,15:PRINT#15,"V0":CLOSE15
  178. 900 PRINT"[147] DISK VALIDATED[146]":FORI=1TO1000:NEXT:GOTO130
  179. 910 PRINT"[147]          CHANGE DEVICE NUMBER "
  180. 911 PRINT"          [197][197][197][197][197][197] [197][197][197][197][197][197] [197][197][197][197][197][197][197]"
  181. 912 INPUT" CHANGE TO (8,9,10,11,12)";A$
  182. 913 IFA$="9"THEN921
  183. 914 IFA$="10"THEN923
  184. 915 IFA$="11"THEN925
  185. 916 IFA$="12"THEN927
  186. 917 IFA$="8"THEN918:GOTO912
  187. 918 OPEN15,8,15:PRINT#15,"M-W"CHR$(119)CHR$(0)CHR$(2)CHR$(8+32)CHR$(8+64)
  188. 920 PRINT"[147] DEVICE NUMBER IS  8 [146]":CLOSE15:FORI=1TO1000:NEXT:GOTO130
  189. 921 OPEN15,8,15:PRINT#15,"M-W"CHR$(119)CHR$(0)CHR$(2)CHR$(9+32)CHR$(9+64)
  190. 922 PRINT"[147] DEVICE NUMBER IS  9 [146]":CLOSE15:FORI=1TO1000:NEXT:GOTO130
  191. 923 OPEN15,8,15:PRINT#15,"M-W"CHR$(119)CHR$(0)CHR$(2)CHR$(10+32)CHR$(10+64)
  192. 924 PRINT"[147] DEVICE NUMBER IS  10 [146]":CLOSE15:FORI=1TO1000:NEXT:GOTO130
  193. 925 OPEN15,8,15:PRINT#15,"M-W"CHR$(119)CHR$(0)CHR$(2)CHR$(11+32)CHR$(11+64)
  194. 926 PRINT"[147] DEVICE NUMBER IS  11 [146]":CLOSE15:FORI=1TO1000:NEXT:GOTO130
  195. 927 OPEN15,8,15:PRINT#15,"M-W"CHR$(119)CHR$(0)CHR$(2)CHR$(12+32)CHR$(12+64)
  196. 928 PRINT"[147] DEVICE NUMBER IS  12 [146]":CLOSE15:FORI=1TO1000:NEXT:GOTO130
  197. 1000 GOTO130
  198. 1001 PRINT"    HIT ANY KEY TO CONTINUE "
  199. 1002 GETA$:IFA$="" THEN1002
  200. 1003 IFA$<>"[211]"THEN130
  201. 1005 REM BEEPER
  202. 1006 SO=54272
  203. 1007 FORT=1TO5
  204. 1008 POKESO+1,250:POKESO+5,10:POKESO+15,200:POKESO+24,15:POKESO+4,21
  205. 1009 FORTT=1TO500:NEXT:POKESO+4,20
  206. 1010 NEXT
  207. 1011 FORCL=.TO24:POKESO+CL,.:NEXT
  208. 1012 RETURN
  209.