1 REM:POWR-DOS BACKUP-TO-CASSETTE Program 2 LFILESV:CLEAR512,MAXRAM-2694 4 FORX=HIMEM+6TOHIMEM+29:READI:POKEX,I:NEXT:ONERRORGOTO64 6 DATA33,216,235,17,228,240,1,12,5,26,150,50,111,235,192,35,19,11,121,176,194,121,235,201 8 CLS:PRINT" Disk-to-Cassette Backup":PRINT:PRINT" 1. Create Tape from Diskette":PRINT" 2. Verify Tape":PRINT" 3. Create disk from cassette":PRINT" 4. MENU":PRINT:PRINT" Press Key..."; 10 B$=INPUT$(1):IFB$<"1"ORB$>"4"THEN10ELSECLS:ONASC(B$)-ASC("0")GOTO22,12,14,62 12 PRINT"Insert diskette and tape to be":PRINT"verified";:GOSUB54:POKEHIMEM+4,1:GOTO18 14 PRINT"Insert a Blank, formatted diskette":PRINT"FORMAT.BA works best";:GOSUB54 16 POKEHIMEM+4,2 18 GOSUB50:PRINT"Loading directory (sector 0)":CLOADM"S00":GOSUB56 20 PRINT"Disk ";:IFPEEK(HIMEM+4)=1THENPRINT"Verification";ELSEPRINT"Creation"; 21 PRINT" will take"NS*.35"minutes.":FORI=1TO1000:NEXT:GOTO26 22 PRINT"Insert diskette to copy";:GOSUB54 24 DSKO$0,0,HIMEM+1402:GOSUB56:PRINT"Backup will take"NS*.35"minutes.":INPUT"Proceed (y/n)";B$:IFINSTR("yY",B$)=0THEN8ELSEPRINT"Setup cassette to record";:GOSUB54:PRINT"Skipping leader":MOTORON:FORI=1TO3000:NEXT:POKEHIMEM+4,0 26 POKEHIMEM,0:POKEHIMEM+1,0 28 ONERRORGOTO64:IFPEEK(PEEK(HIMEM)+HIMEM+30)=0THEN42ELSEPOKEHIMEM+1,PEEK(HIMEM+1)+1:F$="S"+RIGHT$(STR$(100+PEEK(HIMEM)),2) 30 IFPEEK(HIMEM+4)=0THENB$="Create"ELSEIFPEEK(HIMEM+4)=2THENB$="Restore"ELSEB$="Compare" 32 CLS:PRINT:PRINTB$" Sector"PEEK(HIMEM)"("RIGHT$(STR$(PEEK(HIMEM+1)),LEN(STR$(PEEK(HIMEM+1)))-1)" of"STR$(PEEK(HIMEM+2))")" 34 IFPEEK(HIMEM)<>0THENIFPEEK(HIMEM+4)=0THENDSKO$0,PEEK(HIMEM),HIMEM+1402ELSECLOADMF$ 36 ONERRORGOTO64 38 IFPEEK(HIMEM+4)=0THENB$="Goto 42"+CHR$(13):L=LEN(B$):FORI=1TOL:POKE(2*I-86),0:POKE(2*I-87),ASC(MID$(B$,I)):NEXT:POKE-86,L 40 ONPEEK(HIMEM+4)+1GOSUB44,46,48 42 POKEHIMEM,PEEK(HIMEM)+1:IFPEEK(HIMEM)<80THEN28ELSERUN 44 CSAVEMF$,HIMEM+1402,MAXRAM-1:RETURN 46 DSKO$0,PEEK(HIMEM),HIMEM+110:CALLHIMEM+6:IFPEEK(HIMEM+5)=0THENRETURNELSEBEEP:PRINT"Error in sector"PEEK(HIMEM):INPUT"Proceed (y/n)";B$:IFINSTR("yY",B$)=0THENRUNELSERETURN 48 DSKO$1,PEEK(HIMEM),HIMEM+1402:RETURN 50 PRINT:PRINT"Set up tape to playback"; 54 POKE-86,0:PRINT"...press key";:B$=INPUT$(1):PRINT:RETURN 56 I=128:X=HIMEM+2642:FORJ=0TO79:POKEHIMEM+J+30,PEEK(X)ANDI:I=INT(I/4):IFI=0THENI=128:X=X+1 58 IFPEEK(HIMEM+30+J)THENNS=NS+1 60 NEXT:POKEHIMEM+2,NS:RETURN 62 CLEAR0,MAXRAM:LFILESMENU 64 IFERR=18THENPRINT"Cassette or Disk I/O trouble"ELSEIFERR=66THENPRINT"Disk Reading Trouble"ELSEPRINT"Error code #"ERR"in line"ERL 66 PRINT"Error occurred!";:GOSUB54:RESUME68 68 RUN