home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C128Toolkit / C128-1581-BACKUP (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  4.4 KB  |  93 lines

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