100 F=ABS(PEEK(65533)=255):REMF=0IF 64 105 IFF=1THENPOKE48,4:POKE47,0:CLR 110 SYS10246:R$="TRY" 115 POKE53281,0:POKE53280,0 120 WD=0:PS=0:BL$=" " 125 BL$=BL$+"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]":D$="" 130 L2$="[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][192]":ZZ=8:PX=57093:POKEPX,0:IF(PEEK(PX)<>0)THEN145 135 POKEPX,255:IF(PEEK(PX)<>255)THEN145 140 ZZ=2:IF((PEEK(PX-5)AND16)=0)THENZZ=4 145 ND=0:U=8:GOSUB415 150 U=9:GOSUB415:IFND=2THEN165 155 U=10:GOSUB415:IFND=2THEN165 160 U=11:GOSUB415 165 U=SU:AP$=RIGHT$(STR$(ZZ),2)+" PASSES ":IFND=2THENAP$=" ONE PASS " 170 PRINT"[147]"SPC(7)L2$:PRINTSPC(7)"[159] C128 BACKUP 1581 DISK ":PRINTSPC(7)L2$ 175 PRINT"[159] TO AVOID MISTAKES, SLIDE THE WRITE " 180 PRINT" PROTECT TAB ON THE RIGHT SIDE OF " 185 PRINT" YOUR ORIGINAL DISK INTO THE OPEN " 190 PRINT" POSITION. IT WILL TAKE"AP$ 195 PRINT" TO BACKUP THE WHOLE DISK. " 200 LN$=" "+L2$+"[192][192][192][192][192][192][192][192][192][192][192]":U$="[145][145][145][145][145][145][145][145]" 205 PRINT""LN$:PRINTSPC(2)"[159] INSTRUCTIONS:":PRINTLN$""D$ 210 UU=1:IFU>9THENUU=2 215 IFPEEK((null)("280C"))<>0THEN305 220 IF ND=0 THEN305 225 IFND=2THEN460 230 PRINTLN$:PRINT" [159]UNIT:"U SPC(UU)"[159] PASS: 1 [159]R TO RESTART":PRINTLN$"[145][145][145][145]"U$ 235 GOSUB450:POKE(null)("2811"),U:GOSUB315:SYS(null)("2800") 240 GOSUB400:IFA<>0THEN380 245 GOSUB315 250 SYS(null)("2803") 255 GOSUB400:IFA<>0THEN380 260 FORPX=0TOZZ-2 265 GOSUB315:SYS(null)("2800") 270 GOSUB400:IFA<>0THEN380 275 GOSUB315:SYS(null)("2803") 280 GOSUB400:IFA<>0THEN380 285 NEXTPX 290 OPEN15,U,15,"I0":CLOSE15 295 PRINT""D$D$D$:GOSUB410:PRINTSPC(13)"ALL DONE.":R$="RUN":GOTO385 300 POKE48,4:CLR:END 305 PRINT""D$D$D$:GOSUB410:PRINTSPC(9)"SORRY, THIS RUNS ON A" 310 PRINTSPC(8)"C128 WITH 1581 ONLY.":GOTO385 315 IF(PS>1)AND((PSAND1)=0)THENGOSUB405 320 AP$="WRIT":DP$="DESTINATION":PS=PS+1 325 IF(PSAND1)=1THENDP$="ORIGINAL":AP$="READ" 330 AG$=" AGAIN,":IFPS<3THENAG$="," 335 IFWD=0THEN AG$="," 345 IFPEEK(11226)<>0THEN360 350 IF(AP$="WRIT")THEN PRINTSPC(7)"EMPTY BUFFER...":RETURN 355 IFPS>1THENPRINTSPC(7)"STILL "AP$"ING THE":PRINTSPC(7)DP$" DISK...":RETURN 360 PRINTSPC(7)"INSERT "DP$" DISK"AG$ 361 PRINTSPC(7)"PRESS ANY KEY WHEN READY." 365 GET(null)A$:IFA$="R"THENCLR:GOTO395 370 IF(WD=0 AND AP$="WRIT")THENGOSUB435:WD=1 375 PRINTSPC(7)AP$"ING...":RETURN 380 PRINT""D$D$D$:GOSUB410:PRINTSPC(11)"SORRY, DISK ERROR" 385 PRINT:PRINTSPC(7)"PRESS Q TO QUIT; OR PRESS":PRINTSPC(7)"ANY OTHER KEY TO "R$" AGAIN." 390 GET(null)A$:IFA$="Q"THENPRINT"[147]":GOTO300 395 POKE48,4:POKE50,4:POKE52,4:CLR:RUN 400 OPEN15,U,15:INPUT#15,A,B$,C,D:CLOSE15 401 IFPEEK((null)("280E"))<>0THENA=78:B$="BACKUP ERROR" 402 RETURN 405 PRINT""SPC(19)PS/2+1"[145][145][145]" 410 PRINTU$;:FORX=1TO8:PRINTBL$"";:NEXTX:PRINT"[145]"U$:RETURN 415 B$="":(null)420:OPEN15,U,15:PRINT#15,"M-R"CHR$(198)CHR$(229)CHR$(1):GET#15,B$ 420 CLOSE15:IFASC(B$)<>255THEN430 425 ND=ND+1:DU=U:IFND=1THENSU=U 430 RETURN 435 OPEN15,U,15,"I0":INPUT#15,A,B$,C,D:CLOSE15:IFA<20THENRETURN 440 IFWD=0THENAP$="FORMATT":GOSUB375:PRINT"[145][145]" 441 (null)"TEM,"+ID$,U(U):AP$="WRIT":RETURN 450 OPEN2,U,0,"$0:":FORX=1TO26:GET#2,A$:NEXT:GET#2,A$,B$:ID$=A$+B$:CLOSE2:RETURN 455 REM-------- 460 PRINTLN$:PRINT" [159]UNIT:"SU"[159]TO"DU"[159] PASS: 1 [159]R TO RESTART":PRINTLN$"[145][145][145][145]"U$ 465 IF(null)(2)>4 THEN (null)%:(null):(null)&:(null)0 470 POKE(null)("281F"),0:WD=1 475 POKE(null)("2820"),1 480 PRINTSPC(7)"INSERT THE ORIGINAL DISK IN" 485 PRINTSPC(7)"UNIT"U"[157]. PUT THE DESTINATION" 490 PRINTSPC(7)"DISK IN UNIT"DU"[157]." 495 AP$="WORK":PRINT:GOSUB361:PRINT 500 GOSUB450:U=DU:GOSUB435 505 OPEN 8,SU,15,"I0":GOSUB530:IFA<>0THENCLOSE8:GOTO380 506 OPEN9,DU,15:GOSUB535:IFA<>0THENCLOSE9:CLOSE8:GOTO380 510 SYS(null)("2809") 515 X=PEEK((null)("2810")):Y=PEEK((null)("280E")):Z=PEEK((null)("280F")):Y=Z*256+Y 520 IFX>128THENX=X-128:IFY<>0THENCLOSE8:CLOSE9:GOTO380 525 CLOSE9:CLOSE8:OPEN9,DU,15,"I0":CLOSE9:GOTO295 530 INPUT#8,A,B$,C,D:RETURN 535 INPUT#9,A,A$,B$,C$:RETURN 540 "##############################"