home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Toolkit / UNIVERSAL-COPIER (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  5KB  |  107 lines

  1. 10 POKE53280,0:POKE53281,0:U9$=" UNIT "
  2. 100 GOSUB250:DIMB%(232),C%(232),N$(232),T%(232),T$(5)
  3. 110 Z=PEEK(0):X=45:V=256:IFZ=76THENX=42:GOTO120
  4. 115 IFPEEK(48)=4THENX=4624
  5. 120 M=PEEK(X)+PEEK(X+1)*V-362:D=M-V
  6. 130 Z=INT(D/V):POKEM+5,Z:POKEM+230,Z
  7. 140 P=D-20:BD=P-2:Z=150:IFX<>42THEN300
  8. 150 POKEM+94,Z:POKEM+258,Z:POKEM+298,Z
  9. 160 POKEM+300,Z:POKEM+311,Z:POKEM+341,Z:POKEM+348,Z:GOTO300
  10. 170 INPUT#4,E,E$,X,A:GOTO190
  11. 180 INPUT#6,E,E$,X,A
  12. 190 IFE<20THENE=0
  13. 191 IFETHENPRINT:PRINTE;E$;X;A
  14. 200 IFE=0THENE=(191ANDST):IFETHENPRINT" [155]*ST";E
  15. 210 IFEANDH=0THEN212
  16. 211 RETURN
  17. 212 PRINT"[155]ERROR: PRESS Q TO QUIT"
  18. 213 PRINT"[155]       OR R TO RETRY. "
  19. 214 GETA$:IFA$="Q"THENEND
  20. 215 IFA$<>"R"THEN214
  21. 220 RUN
  22. 230 INPUT"[155] DRIVE ?[146] 0[157][157][157]";A:IFA*A<>ATHEN230
  23. 240 D$=CHR$(A+48):RETURN
  24. 250 LN$="[155] [192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  25. 251 PRINT"[147]"LN$:PRINT"[159] UNIVERSAL DISK-FILE COPY":PRINTLN$:RETURN
  26. 260 PRINT"[155] ANOTHER "X$" DISK READY ?[146] N[157][157][157]";
  27. 270 INPUTX$:IFLEFT$(X$,1)<>"Y"THENEND
  28. 280 RETURN
  29. 290 DATA12,50,119,0,*,SEQ,PRG,USR,REL,CBM
  30. 300 BB$=CHR$(160)+CHR$(160):SB$=BB$+BB$+BB$+BB$+BB$+BB$+BB$+BB$
  31. 310 Z$=CHR$(0):BB$="         ":B$=BB$+BB$+BB$:C=15
  32. 320 PRINT"[155] SHALL I CHANGE A"U9$"NR ?[146] N[157][157][157]";
  33. 330 INPUTD$:IFLEFT$(D$,1)<>"Y"THEN450
  34. 340 PRINT"[155] OLD"U9$"NR ?[146] 8[157][157][157]";:INPUTZ:IFZ<8ORZ>15THENPRINT"[145]";:GOTO340
  35. 350 PRINT"[155] NEW"U9$"NR ?[146] 9[157][157][157]";:INPUTN:IFN<8ORN>15THENPRINT"[145]";:GOTO350
  36. 360 PRINT"[155] ONLY ONE"U9$"NUMBER"Z"[157]  SHOULD  "
  37. 370 PRINT" BE ON NOW. PRESS SPACE WHEN READY"
  38. 380 GETX$:IFX$<>" "THEN380
  39. 390 OPEN1,Z,C:D$=CHR$(Z+32):E$=CHR$(Z+64)
  40. 400 PRINT#1,"M-R"CHR$(3)CHR$(164)CHR$(1)
  41. 401 GET#1,X$:IFX$="8"THENPRINT#1,"U0>"+CHR$(N):GOTO440
  42. 402 READA:IFA=0THENPRINT"[155] UNKNOWN"U9$"TYPE":CLOSE1:END
  43. 410 PRINT#1,"M-R"CHR$(A)Z$:GET#1,X$:IFX$<>D$GOTO402
  44. 420 PRINT#1,"M-R"CHR$(A+1)Z$:GET#1,X$:IFX$<>E$GOTO402
  45. 430 PRINT#1,"M-W"CHR$(A)Z$CHR$(2)CHR$(N+32)CHR$(N+64)
  46. 440 CLOSE1:GOSUB250:RESTORE
  47. 450 FORJ=1TO4:READX:NEXT:FORJ=0TO5:READT$(J):NEXT
  48. 452 PRINT"[155] SHALL I OPEN A PARTITION ?[146] N[157][157][157]";
  49. 453 INPUTD$:IFLEFT$(D$,1)<>"Y"THEN469
  50. 454 INPUT"[155] PARTITION NAME [146]";P$
  51. 455 IFP$=""ORLEN(P$)>16THENPRINT"[145][145][145]":GOTO454
  52. 456 PRINT"[155] READ OR WRITE TO PARTITION ?[146] R[157][157][157]";
  53. 457 INPUTD$:IFLEFT$(D$,1)<>"W"THEN460
  54. 458 P6$="/0:"+P$:GOTO469
  55. 460 P4$="/0:"+P$
  56. 469 PRINT"[155] COPY FROM"U9$"?[146] 8[157][157][157]";:INPUTF:GOSUB230:F$=D$
  57. 470 T=9:IFF>8THENT=8
  58. 471 PRINT"[155] COPY TO "U9$"[146]"T;
  59. 472 INPUT"[157][157][157][157]";T:GOSUB230:T$=D$:IFF$=T$ANDF=TTHENRUN
  60. 473 IFP4$=""THENP4$="I"+F$
  61. 474 IFP6$=""THENP6$="I"+T$
  62. 480 PRINT"[147]":GOSUB250:PRINT"[155] ENTER A NAME-SEARCH PATTERN  "
  63. 490 INPUT" [146]? *[157][157][157]";X$:X$=CHR$(8)+Z$+Z$+LEFT$(X$+SB$,16)+Z$
  64. 500 FORJ=0TO19:POKEP+J,ASC(MID$(X$,J+1)):NEXT
  65. 510 PRINT"[155] PRESS 'Y' OR 'N' KEY TO SELECT"
  66. 520 PRINT"[155] THE FILES YOU WANT COPIED:    ":N=0:Z=0:E=0
  67. 530 OPEN4,F,C,P4$:GOSUB170:OPEN3,F,3,"$"+F$:GOSUB170
  68. 540 SYSM:N$="":X=PEEK(D):IFX=0THEN660
  69. 550 FORJ=3TO18:A=PEEK(D+J):IFA=160THENJ=18:NEXT:GOTO570
  70. 560 N$=N$+CHR$(A):NEXT
  71. 570 X=X-128:B=PEEK(D+28)+PEEK(D+29)*V
  72. 580 PRINTB;TAB(6)N$TAB(24)T$(X)
  73. 590 GETX$:IFZTHENIFX$=""THEN630
  74. 600 IFX$="Y"ORX$="N"THENZ=0:E=ASC(X$)-78:GOTO630
  75. 610 IFX$=CHR$(13)THENZ=1:GOTO630
  76. 620 GOTO590
  77. 630 IFE=0THENPRINT"[145]"B$"[145]":GOTO650
  78. 640 N=N+1:B%(N)=B:N$(N)=N$:T%(N)=X:C%(N)=PEEK(D+21)
  79. 650 IFST=0ANDN<232GOTO540
  80. 660 CLOSE3:CLOSE4:IFNTHEN680
  81. 670 PRINT"[155] * NO FILES SELECTED *[146]":GOTO860
  82. 680 Z=0:FORJ=1TON:IFZ=0THEN710
  83. 690 IFB>B%(J)THEN790
  84. 700 PRINT"[155] * OUTPUT DISK FULL *[146]":X$="OUTPUT":GOSUB260
  85. 710 PRINT"[155] WANT TO NEW THE OUTPUT DISK ?[146] N[157][157][157]";
  86. 720 INPUTX$:IFLEFT$(X$,1)<>"Y"THEN750
  87. 730 PRINT"[155] ENTER DISK-NAME, ID[146]":INPUTX$,D$:H=1
  88. 740 OPEN6,T,C,"N"+T$+":"+X$+","+D$:GOSUB180:CLOSE6:H=0:IFETHEN710
  89. 750 OPEN6,T,C,P6$:GOSUB180:OPEN1,T,0,"$"+T$+":":GOSUB180
  90. 760 FORX=1TO35:GET#1,X$:NEXT:X=ASC(X$+Z$)
  91. 770 GET#1,X$:Z=ASC(X$+Z$):B=X+Z*V:Z=1
  92. 780 GOSUB250:PRINT" ("B" BLOCKS FREE )":CLOSE1:CLOSE6:H=1:GOTO690
  93. 790 OPEN4,F,C:OPEN6,T,C:PRINTB%(J);TAB(6)N$(J)TAB(24)T$(T%(J))"  ";
  94. 800 OPEN3,F,3,F$+":"+N$(J)+","+T$(T%(J)):GOSUB170:IFETHEN850
  95. 810 IFT%(J)=4THENOPEN5,T,5,T$+":"+N$(J)+",L,"+CHR$(C%(J)):GOTO830
  96. 820 OPEN5,T,5,T$+":"+N$(J)+","+T$(T%(J))+",W"
  97. 830 GOSUB180:IFETHEN850
  98. 835 GOSUB900
  99. 840 POKEP,C%(J):SYSM+220:X=PEEK(D):N$(J)="":B=B-B%(J):GOSUB180:PRINT
  100. 850 CLOSE3:CLOSE4:CLOSE5:CLOSE6:NEXTJ
  101. 860 X$="INPUT":GOSUB260:H=0:GOTO480
  102. 900 Q=B%(J):N4=INT(Q/1000):Q=Q-(N4*1000)
  103. 910 N3=INT(Q/100):Q=Q-(N3*100)
  104. 920 N2=INT(Q/10):Q=Q-(N2*10)
  105. 940 N1=Q:POKEBD,(N4*16)+N3
  106. 950 POKEBD+1,(N2*16)+N1:RETURN
  107.