Home » Personal collection » Commodore disks » disk46a_green.d64 » backup
backup
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Personal collection » Commodore disks » disk46a_green.d64 |
Filename: | backup |
Read OK: | ✔ |
File size: | 0B63 bytes |
Load address: | 0801 |
Exec address: | 0000 |
File contents
100 POKE52,24:POKE56,24:CLR 110 PRINT"<clr>BACKUP UTILITY":PRINT"<cursor down>FROM (T/D)";:GOSUB650:F$=Y$ 120 PRINT"<cursor down> TO (T/D)";:GOSUB650:T$=Y$ 130 PRINT"<cursor down>DIRECTORY (T/D/?)":GOSUB630:IF Y$="D"THENGOSUB800:GOTO130 140 IF Y$="T" THEN GOSUB690:GOTO130 150 PRINT"<cursor down>TYPE P/S";:GOSUB630:IF Y$<>"P" AND Y$<>"S" THEN 150 160 FT$=Y$:PRINT " ";FT$ 170 IF F$="D" AND T$="T" AND FT$="S" THEN GOSUB250:RUN 180 IF F$="T" AND T$="D" AND FT$="S" THEN GOSUB290:RUN 190 IF F$="D" AND T$="D" AND FT$="S" THEN GOSUB510:RUN 195 IF F$="T" AND T$="T" AND FT$="S" THEN GOSUB370:RUN 200 IF F$="D" AND T$="D" AND FT$="P" THEN GOSUB940:RUN 210 IF F$="D" AND T$="T" AND FT$="P" THEN GOSUB1010:RUN 220 IF F$="T" AND T$="T" AND FT$="P" THEN GOSUB1060:RUN 230 IF F$="T" AND T$="D" AND FT$="P" THEN GOSUB1100:RUN 240 RUN 250 GOSUB750:OPEN2,8,2,N$+",S,R":OPEN1,1,1,N$ 260 GET#2,R$:IF ST THEN 280 270 PRINT#1,Y$;:GOTO260 280 CLOSE 2:CLOSE 1:RETURN 290 OPEN1,1,0:GOSUB700:IF E=1 THEN GOSUB 750:GOTO 310 300 GOSUB760 310 PRINT"<cursor down>FILENAME ";CHR$(34);N$;CHR$(34);" OK (Y/N)":GOSUB630 320 IF Y$="N" THEN GOSUB 750 330 OPEN 3,8,3,"@0:"+N$+",S,W" 340 GET#1,Y$:IF ST THEN 360 350 PRINT#3,Y$;:GOTO 340 360 CLOSE 1:CLOSE 3:RETURN 370 Y=6144:OPEN 1,1,0:GOSUB700:IF E=1 THEN GOSUB750:GOTO390 380 GOSUB760 390 PRINT"<cursor down>FILENAME ";CHR$(34);N$;CHR$(34);" OK (Y/N)":GOSUB630 400 IF Y$="N" THEN GOSUB 750 410 GET#1,Y$:IF ST THEN 460 420 IF Y$="" THEN Y$=CHR$(0) 430 POKEY,ASC(Y$) 440 IF Y<40959 THEN Y=Y+1:GOTO410 450 PRINT"<cursor down>FILE TOO BIG. ONLY 34K COPIED." 460 CLOSE 1 470 GOSUB 490 480 OPEN 1,1,1,N$:FORI=6144 TO Y:PRINT#1,CHR$(PEEK(I));:NEXTI:CLOSE1:RETURN 490 PRINT"<cursor down>DESTINATION TAPE Y":GOSUB630:IFY$<>"Y"THEN490 500 RETURN 510 GOSUB750:OPEN2,8,2,N$+",S,R":Y=6144 520 GET#2,Y$:IF ST THEN 570 530 IF Y$="" THEN Y$=CHR$(0) 540 POKEY,ASC(Y$) 550 IF Y<40959 THEN Y=Y+1:GOTO520 560 PRINT"<cursor down>FILE TOO BIG. ONLY 34K COPIED" 570 CLOSE 2 580 GOSUB 610 590 OPEN 3,8,3,"@0:"+N$+",S,W":FORI=6144 TO Y:PRINT#3,CHR$(PEEK(I));:NEXTI 600 CLOSE3:RETURN 610 PRINT"<cursor down>DESTINATION DISC Y":GOSUB630:IFY$<>"Y" THEN 610 620 RETURN 630 GETY$:IF Y$="" THEN 630 640 RETURN 650 GOSUB630:IF Y$="T" THEN PRINT" TAPE":GOTO 680 660 IF Y$="D" THEN PRINT" DISC":GOTO680 670 GOTO 650 680 RETURN 690 PRINT"<cursor down>":OPEN1:CLOSE1:GOSUB700:PRINT"<cursor down><reverse on>REWIND TAPE<rev off>":RETURN 700 PRINT"TYPE FILENAME";SPC(10);"BUFFER START":I=PEEK(828):E=0 710 Y$=" PRG ":IF Y=4 THEN Y$=" SEQ " 720 PRINTY$;"<reverse on>";:FORI=833TO1019:X=PEEK(I):IF X<32 OR X>95 THEN X=63:E=1 730 PRINTCHR$(X);:IF I=849 THEN PRINT"<rev off><"; 740 NEXTI:PRINT"><reverse on>END<rev off>":RETURN 750 INPUT"<cursor down>FILENAME";N$:N$=LEFT$(N$,16):RETURN 760 N$="":FORI=848TO833STEP-1:X=PEEK(I) 770 IF X=32 AND N$="" THEN 790 780 N$=CHR$(X)+N$ 790 NEXTI:RETURN 800 PRINT"<clr>";:OPEN1,8,0,"$0":GET#1,Y$,Y$ 810 I=0:GET#1,Y$,Y$,Y$,X$:IF Y$<>"" THEN I=ASC(Y$) 820 IF X$<>"" THEN I=I+ASC(X$)*256 830 PRINTRIGHT$(" "+STR$(I),3;" ";:I=0 840 GET#1,Y$:IF ST THEN 930 850 IF Y$=CHR$(34) THEN I=I+1:PRINT CHR$(34);:GOTO840 860 IF I=0 THEN 840 870 IF I=1 THEN PRINTY$;:GOTO840 880 IF I=2 THEN PRINTTAB(22);:I=I+1 890 IF I=3 AND Y$=" " THEN 840 900 IF Y$<>"" THEN PRINT Y$;:GOTO 840 910 PRINT:GET Y$:IF Y$<>"" THEN GOSUB 630 920 IF ST=0 THEN 810 930 PRINT "BLOCKS FREE":CLOSE 1:GOSUB630:RETURN 940 GOSUB 750:FORI=1 TO LEN(N$):POKE832+I,ASC(MID$(N$,I,1)):NEXTI 950 FORI=833+LEN(N$)TO1019:POKEI,32:NEXTI 960 POKE183,LEN(N$):SYS49244 970 PRINT"<cursor down><reverse on>FILE WILL BE DELETED<rev off>":GOSUB610 980 OPEN15,8,15,"S0:"+N$:CLOSE15 990 POKE183,LEN(N$):SYS49343 1000 RETURN 1010 GOSUB750:FORI=1 TO LEN(N$):POKE832+I,ASC(MID$(N$,I,1)):NEXTI 1020 FORI=833+LEN(N$) TO 1019:POKEI,32:NEXTI 1030 POKE183,LEN(N$):SYS 49244 1040 SYS 49203 1050 RETURN 1060 SYS 49152 1070 GOSUB 490 1080 SYS 49203 1090 RETURN 1100 SYS 49152 1110 GOSUB 700:IF E=1 THEN GOSUB750:GOTO1130 1120 GOSUB760 1130 PRINT"<cursor down>FILENAME ";CHR$(34);N$;CHR$(34);" OK (Y/N)":GOSUB630 1140 IF Y$="N" THEN GOSUB 750 1150 PRINT"<cursor down><reverse on>FILE WILL BE DELETED<rev off>":GOSUB610 1160 OPEN 15,8,15,"S0:"+N$ 1170 POKE 183,LEN(N$):SYS 49343 1180 RETURN
d �52,24:�56,24:� Gn �"�BACKUP UTILITY":�"FROM (T/D)";:�650:F$�Y$ fx �" TO (T/D)";:�650:T$�Y$ �� �"DIRECTORY (T/D/?)":�630:� Y$�"D"��800:�130 �� � Y$�"T" � �690:�130 �� �"TYPE P/S";:�630:� Y$��"P" � Y$��"S" � 150 �� FT$�Y$:� " ";FT$ � � F$�"D" � T$�"T" � FT$�"S" � �250:� I � � F$�"T" � T$�"D" � FT$�"S" � �290:� r � � F$�"D" � T$�"D" � FT$�"S" � �510:� � � � F$�"T" � T$�"T" � FT$�"S" � �370:� � � � F$�"D" � T$�"D" � FT$�"P" � �940:� � � � F$�"D" � T$�"T" � FT$�"P" � �1010:� � � F$�"T" � T$�"T" � FT$�"P" � �1060:� B � � F$�"T" � T$�"D" � FT$�"P" � �1100:� H � � l � �750:�2,8,2,N$�",S,R":�1,1,1,N$ � �#2,R$:� ST � 280 � �1,Y$;:�260 � � 2:� 1:� � "�1,1,0:�700:� E�1 � � 750:� 310 � ,�760 � 6�"FILENAME ";�(34);N$;�(34);" OK (Y/N)":�630 @� Y$�"N" � � 750 0J� 3,8,3,"@0:"�N$�",S,W"