8-Bit Software Online Conversion

Advanced Disc Backup - Listing

10REM DISC BACKUPER 20REM (c) 1990 Ben Dooks 30REM This is a simple backuping 40REM utility. You could use it to 50REM backup some protected software 60REM Software piracy is the 70REM occupation of childish minds. 80MODE 7 90VDU 23;8202;0;0;0; 100OH%=HIMEM 110RE%=0:RT%=0 120LS%=0:LR%=0 130WE%=0:WT%=0 140HIMEM=TOP+&400 150STR%=HIMEM 160MAX%=(OH%-HIMEM)/&A00 170PROCget 180PROCdisplay 190PROCcopy 200END 210DEFPROCget 220INPUT " Input Drive : "ID% 230INPUT " Out Drive : "OD% 240INPUT " Start Track : "ST% 250INPUT " Finish Trk. : "FT% 260DS%=0:SL%=1+(2*((FT%-ST%)/MAX%)) 270ENDPROC 280DEFPROCdisplay 290CLS 300PRINT CHR$(141)" Universal Disc C opier V.1.14a" 310PRINT CHR$(141)" Universal Disc C opier V.1.14a" 320PRINT " (c) 1990 BARKSOFT " 330PRINT " Copying ";ID%;"]";OD%;" C opying ";(FT%-ST%);" Tracks " 340VDU 28,0,23,38,4 350ENDPROC 360DEFPROCcopy 370T%=ST% 380PROCins`src 390FOR O%=0 TO MAX% 400PROCltrack 410PROCstatus 420NEXT 430PROCins`dest 440SL%=SL%-1:DS%=DS%+1 450FOR O%=0 TO MAX% 460PROCstrack 470PROCstatus 480NEXT 490SL%=SL%-1:DS%=DS%+1 500IF (T%+8)>FT% THEN PROCend`cop:ENDP ROC 510T%=T%+1+MAX%:GOTO 380 520DEFPROCltrack 530IF (T%+O%)>FT% THEN ENDPROC 540?&900=ID% 550!&901=STR%+(O%*&A00) 560?&905=3 570?&906=&53 580?&907=(T%+O%) 590?&908=0 600?&909=&2A 610A%=&7F:Y%=9:CALL &FFF1 620PRINTTAB(1,3)" Reading Track ";(T%+ O%) 630LR%=(T%+O%) 640IF ?&90A<>0 THEN PROCread`err 650ENDPROC 660DEFPROCstrack 670LS%=(T%+O%) 680IF (T%+O%)>FT% THEN ENDPROC 690?&900=OD% 700!&901=STR%+(O%*&A00) 710?&905=3 720?&906=&4B 730?&907=(T%+O%) 740?&908=0 750?&909=&2A 760A%=&7F:Y%=9:CALL &FFF1 770PRINTTAB(1,5)" Writen Track ";(T%+O %) 780IF ?&90A<>0 THEN PROCwrite`err 790ENDPROC 800DEFPROCread`err 810PRINTTAB(1,11)" Read error ";?&90A; " at ";(T%+O%) 820RE%=?&90A:RT%=(T%+O%) 830ENDPROC 840DEFPROCwrite`err 850PRINTTAB(1,11)" Write error ";?&90A ;" at ";(T%+O%) 860WE%=?&90A:WT%=(T%+O%) 870ENDPROC 880DEFPROCins`src 890CLS 900PRINTTAB(0,6)" INSERT Source disk i nto drive ";ID% 910PRINTTAB(0,10)" ``````` THEN PRESS 'SPACE' ``````` " 920REPEAT:A=GET:UNTIL A=32 930PRINTTAB(0,6)" " 940PRINTTAB(0,10)" " 950ENDPROC 960DEFPROCins`dest 970CLS 980PRINTTAB(0,6)" INSERT Destination d isk into drive ";OD% 990PRINTTAB(0,10)" ``````` THEN PRESS 'SPACE' ``````` " 1000REPEAT:A=GET:UNTIL A=32 1010PRINTTAB(0,6)" " 1020PRINTTAB(0,10)" " 1030ENDPROC 1040DEFPROCstatus 1050VDU 26 1060PRINTTAB(0,17)"  PROGRESS REPORT  1070PRINTTAB(0,19)" Errors : READ ";RE% ;" at ";RT%;" WRITE ";WE%;" at ";WT% 1080PRINTTAB(0,20)" Disk swaps : DONE " ;DS%;" LEFT ";SL%;:IF SL%=9 PRINT" " 1090PRINT 1100PRINTTAB(8,23)" S---------M-------- -F" 1110PRINTTAB(0,21)" Write : "; 1120IF (T%+O%)>FT% THEN 1240 1130D%=((LS%-ST%)/(FT%-ST%))*100 1140P%=D%/5 1150FOR I=0 TO P% 1160VDU 255 1170NEXT 1180PRINTTAB(0,22)" Read : "; 1190D%=((LR%-ST%)/(FT%-ST%))*100 1200P%=D%/5 1210FOR I=0 TO P% 1220VDU 255 1230NEXT 1240VDU 28,0,16,38,4 1250ENDPROC 1260DEFPROCend`cop 1270CLS 1280PRINT ''CHR$(141)" ****** Copied di sk ******" 1290PRINT CHR$(141)" ****** Copied disk ******" 1300PRINT '''" Another (Y/N) "; 1310REPEAT:A=GET AND &DF:UNTIL A=89 OR A=78 1320VDU A 1330I=INKEY(200) 1340IF A=78 THEN VDU 26:CLS:PRINT '" Th e END"':END 1350RUN