home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
genie-commodore-file-library
/
C64Toolkit
/
UNIVERSAL-COPIER
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
5KB
|
107 lines
10 POKE53280,0:POKE53281,0:U9$=" UNIT "
100 GOSUB250:DIMB%(232),C%(232),N$(232),T%(232),T$(5)
110 Z=PEEK(0):X=45:V=256:IFZ=76THENX=42:GOTO120
115 IFPEEK(48)=4THENX=4624
120 M=PEEK(X)+PEEK(X+1)*V-362:D=M-V
130 Z=INT(D/V):POKEM+5,Z:POKEM+230,Z
140 P=D-20:BD=P-2:Z=150:IFX<>42THEN300
150 POKEM+94,Z:POKEM+258,Z:POKEM+298,Z
160 POKEM+300,Z:POKEM+311,Z:POKEM+341,Z:POKEM+348,Z:GOTO300
170 INPUT#4,E,E$,X,A:GOTO190
180 INPUT#6,E,E$,X,A
190 IFE<20THENE=0
191 IFETHENPRINT:PRINTE;E$;X;A
200 IFE=0THENE=(191ANDST):IFETHENPRINT" [155]*ST";E
210 IFEANDH=0THEN212
211 RETURN
212 PRINT"[155]ERROR: PRESS Q TO QUIT"
213 PRINT"[155] OR R TO RETRY. "
214 GETA$:IFA$="Q"THENEND
215 IFA$<>"R"THEN214
220 RUN
230 INPUT"[155] DRIVE ?[146] 0[157][157][157]";A:IFA*A<>ATHEN230
240 D$=CHR$(A+48):RETURN
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]"
251 PRINT"[147]"LN$:PRINT"[159] UNIVERSAL DISK-FILE COPY":PRINTLN$:RETURN
260 PRINT"[155] ANOTHER "X$" DISK READY ?[146] N[157][157][157]";
270 INPUTX$:IFLEFT$(X$,1)<>"Y"THENEND
280 RETURN
290 DATA12,50,119,0,*,SEQ,PRG,USR,REL,CBM
300 BB$=CHR$(160)+CHR$(160):SB$=BB$+BB$+BB$+BB$+BB$+BB$+BB$+BB$
310 Z$=CHR$(0):BB$=" ":B$=BB$+BB$+BB$:C=15
320 PRINT"[155] SHALL I CHANGE A"U9$"NR ?[146] N[157][157][157]";
330 INPUTD$:IFLEFT$(D$,1)<>"Y"THEN450
340 PRINT"[155] OLD"U9$"NR ?[146] 8[157][157][157]";:INPUTZ:IFZ<8ORZ>15THENPRINT"[145]";:GOTO340
350 PRINT"[155] NEW"U9$"NR ?[146] 9[157][157][157]";:INPUTN:IFN<8ORN>15THENPRINT"[145]";:GOTO350
360 PRINT"[155] ONLY ONE"U9$"NUMBER"Z"[157] SHOULD "
370 PRINT" BE ON NOW. PRESS SPACE WHEN READY"
380 GETX$:IFX$<>" "THEN380
390 OPEN1,Z,C:D$=CHR$(Z+32):E$=CHR$(Z+64)
400 PRINT#1,"M-R"CHR$(3)CHR$(164)CHR$(1)
401 GET#1,X$:IFX$="8"THENPRINT#1,"U0>"+CHR$(N):GOTO440
402 READA:IFA=0THENPRINT"[155] UNKNOWN"U9$"TYPE":CLOSE1:END
410 PRINT#1,"M-R"CHR$(A)Z$:GET#1,X$:IFX$<>D$GOTO402
420 PRINT#1,"M-R"CHR$(A+1)Z$:GET#1,X$:IFX$<>E$GOTO402
430 PRINT#1,"M-W"CHR$(A)Z$CHR$(2)CHR$(N+32)CHR$(N+64)
440 CLOSE1:GOSUB250:RESTORE
450 FORJ=1TO4:READX:NEXT:FORJ=0TO5:READT$(J):NEXT
452 PRINT"[155] SHALL I OPEN A PARTITION ?[146] N[157][157][157]";
453 INPUTD$:IFLEFT$(D$,1)<>"Y"THEN469
454 INPUT"[155] PARTITION NAME [146]";P$
455 IFP$=""ORLEN(P$)>16THENPRINT"[145][145][145]":GOTO454
456 PRINT"[155] READ OR WRITE TO PARTITION ?[146] R[157][157][157]";
457 INPUTD$:IFLEFT$(D$,1)<>"W"THEN460
458 P6$="/0:"+P$:GOTO469
460 P4$="/0:"+P$
469 PRINT"[155] COPY FROM"U9$"?[146] 8[157][157][157]";:INPUTF:GOSUB230:F$=D$
470 T=9:IFF>8THENT=8
471 PRINT"[155] COPY TO "U9$"[146]"T;
472 INPUT"[157][157][157][157]";T:GOSUB230:T$=D$:IFF$=T$ANDF=TTHENRUN
473 IFP4$=""THENP4$="I"+F$
474 IFP6$=""THENP6$="I"+T$
480 PRINT"[147]":GOSUB250:PRINT"[155] ENTER A NAME-SEARCH PATTERN "
490 INPUT" [146]? *[157][157][157]";X$:X$=CHR$(8)+Z$+Z$+LEFT$(X$+SB$,16)+Z$
500 FORJ=0TO19:POKEP+J,ASC(MID$(X$,J+1)):NEXT
510 PRINT"[155] PRESS 'Y' OR 'N' KEY TO SELECT"
520 PRINT"[155] THE FILES YOU WANT COPIED: ":N=0:Z=0:E=0
530 OPEN4,F,C,P4$:GOSUB170:OPEN3,F,3,"$"+F$:GOSUB170
540 SYSM:N$="":X=PEEK(D):IFX=0THEN660
550 FORJ=3TO18:A=PEEK(D+J):IFA=160THENJ=18:NEXT:GOTO570
560 N$=N$+CHR$(A):NEXT
570 X=X-128:B=PEEK(D+28)+PEEK(D+29)*V
580 PRINTB;TAB(6)N$TAB(24)T$(X)
590 GETX$:IFZTHENIFX$=""THEN630
600 IFX$="Y"ORX$="N"THENZ=0:E=ASC(X$)-78:GOTO630
610 IFX$=CHR$(13)THENZ=1:GOTO630
620 GOTO590
630 IFE=0THENPRINT"[145]"B$"[145]":GOTO650
640 N=N+1:B%(N)=B:N$(N)=N$:T%(N)=X:C%(N)=PEEK(D+21)
650 IFST=0ANDN<232GOTO540
660 CLOSE3:CLOSE4:IFNTHEN680
670 PRINT"[155] * NO FILES SELECTED *[146]":GOTO860
680 Z=0:FORJ=1TON:IFZ=0THEN710
690 IFB>B%(J)THEN790
700 PRINT"[155] * OUTPUT DISK FULL *[146]":X$="OUTPUT":GOSUB260
710 PRINT"[155] WANT TO NEW THE OUTPUT DISK ?[146] N[157][157][157]";
720 INPUTX$:IFLEFT$(X$,1)<>"Y"THEN750
730 PRINT"[155] ENTER DISK-NAME, ID[146]":INPUTX$,D$:H=1
740 OPEN6,T,C,"N"+T$+":"+X$+","+D$:GOSUB180:CLOSE6:H=0:IFETHEN710
750 OPEN6,T,C,P6$:GOSUB180:OPEN1,T,0,"$"+T$+":":GOSUB180
760 FORX=1TO35:GET#1,X$:NEXT:X=ASC(X$+Z$)
770 GET#1,X$:Z=ASC(X$+Z$):B=X+Z*V:Z=1
780 GOSUB250:PRINT" ("B" BLOCKS FREE )":CLOSE1:CLOSE6:H=1:GOTO690
790 OPEN4,F,C:OPEN6,T,C:PRINTB%(J);TAB(6)N$(J)TAB(24)T$(T%(J))" ";
800 OPEN3,F,3,F$+":"+N$(J)+","+T$(T%(J)):GOSUB170:IFETHEN850
810 IFT%(J)=4THENOPEN5,T,5,T$+":"+N$(J)+",L,"+CHR$(C%(J)):GOTO830
820 OPEN5,T,5,T$+":"+N$(J)+","+T$(T%(J))+",W"
830 GOSUB180:IFETHEN850
835 GOSUB900
840 POKEP,C%(J):SYSM+220:X=PEEK(D):N$(J)="":B=B-B%(J):GOSUB180:PRINT
850 CLOSE3:CLOSE4:CLOSE5:CLOSE6:NEXTJ
860 X$="INPUT":GOSUB260:H=0:GOTO480
900 Q=B%(J):N4=INT(Q/1000):Q=Q-(N4*1000)
910 N3=INT(Q/100):Q=Q-(N3*100)
920 N2=INT(Q/10):Q=Q-(N2*10)
940 N1=Q:POKEBD,(N4*16)+N3
950 POKEBD+1,(N2*16)+N1:RETURN