2 CLS:MOTOROFF:PRINT"TDD2PC.BA (C)1989 H.Sprow CIS 73625,365":ONERRORGOTO154:LFILESV:GOTO56REM 2/6/89 4 REM subroutines 6 REM check global match 8 OK=1:IFP$="????????"THEN16 10 FORJ=1TO8:IFMID$(P$,J,1)="?"THEN14 12 IFMID$(P$,J,1)<>MID$(F$(SF),J,1)THENOK=0:J=9:GOTO16 14 NEXT 16 RETURN 18 REM convert to upper case 20 FORK=1TOLEN(P$):Y=ASC(MID$(P$,K,1)):IFY>96ANDY<123THENMID$(P$,K,1)=CHR$(Y-32) 22 NEXT:RETURN 24 REM delay 26 FORT=1TO250:NEXT:RETURN 28 RETURN 30 REM kill disk file 32 ONERRORGOTO160:KILL"0:"+LEFT$(F$(SF),6)+"."+MID$(F$(SF),7) 34 ONERRORGOTO154:RETURN 36 REM switch drives 38 IFDR$="A"THENMOTORON:LFILESSBDELSEMOTOROFF:LFILESS19200 40 RETURN 42 IFDR$="A"THENMOTOROFF:LFILESS19200ELSEMOTORON:LFILESSBD 44 RETURN 46 REM open file 48 F=VARPTR(F$(SF)):CALLMAXRAMC+3,MD,PEEK(F+1)+256*PEEK(F+2):RETURN 50 REM close file 52 CALLMAXRAMC+15,2:RETURN 54 REM main program 56 MAXFILES=1:CLEAR0,MAXRAM:CLEAR500,MAXRAM-FRE(0)+2000:ONERRORGOTO156:DIMF$(40),S(40):FR=MAXRAM-HIMEM 58 PRINT@161,"A (MOTOROFF DRIVE)":PRINT" B (MOTORON DRIVE) 60 PRINT@120,"";:INPUT"SOURCE DRIVE";P$:PRINT:PRINT:IFP$=""THEN148 62 GOSUB20:DR$=P$:P$="":IFINSTR("AB",DR$)=0THENBEEP:RUN 64 BL$="B":INPUT"BOOSTER-LINK OR M100CO(B/M, ENTER=B)";BL$:IFINSTR("Bb",BL$)THENBL=1 66 PRINT"MOTORON side set to 19,200 bps.":BD$="N":INPUT"Reset to 9600 (Y/N, ENTER=N)";BD$:IFINSTR("Yy",BD$)THENBD=9600ELSEBD=19200 68 REM erase destination disk 70 GOSUB38 72 GOSUB26:LFILESTO"":OPEN""FORINPUTAS1 74 IFEOF(1)THEN76ELSELINEINPUT#1,A$:IFLEN(A$)<>17ORMID$(A$,10,1)<>" "THEN74ELSENF=NF+1:GOTO74 76 CLOSE1:IFNF=0THEN86ELSEPRINTNF"Files on destination disk.":D$="Y":INPUT"Delete them (Y/N, ENTER=Y)";D$:IFINSTR("Yy",D$)THEN78ELSE86 78 OPEN""FORINPUTAS1 80 IFEOF(1)THENCLOSE1:GOTO86ELSELINEINPUT#1,A$:IFLEN(A$)<>17ORMID$(A$,10,1)<>" "THEN80ELSEPRINTA$:KILL"0:"+LEFT$(A$,9) 82 GOTO80 84 REM read source file names 86 GOSUB42 88 GOSUB26:LFILESTO"":OPEN""FORINPUTAS1:NF=0 90 IFEOF(1)THEN92ELSELINEINPUT#1,A$:IFLEN(A$)<>17ORMID$(A$,10,1)<>" "THEN90ELSEIFMID$(A$,7,1)<>"."THEN90ELSENF=NF+1:F$(NF)=LEFT$(A$,6)+MID$(A$,8,2):S(NF)=VAL(RIGHT$(A$,5)):GOTO90 92 CLOSE1:KILL".DO":PRINTNF"files on source disk.":IFNF=0THEN148 94 REM get global name 96 LINEINPUT"Global name(ENTER=all):";P$:IFP$=""THENP$="????????":GOTO108ELSEX=INSTR(P$,"."):IFX<2THENBEEP:GOTO96 98 LP$=LEFT$(P$,X-1):IFLEN(LP$)<6THENLP$=LP$+SPACE$(6-LEN(LP$)) 100 IFLP$="* "THENLP$="??????" 102 RP$=MID$(P$,X+1):IFRP$="*"THENRP$="??" 104 P$=LP$+RP$:GOSUB20:IFLEN(P$)<>8THENBEEP:GOTO96 106 REM copy 108 FORSF=1TONF:GOSUB8:IFOK=0THEN144 110 REM copy source file to high RAM 112 GOSUB42 114 GOSUB26:PRINTLEFT$(F$(SF),6)"."MID$(F$(SF),7),S(SF):IFS(SF)>FRTHENPRINTS(SF)"too large!":PRINTFR"available":GOTO144 116 MD=3:GOSUB48 118 BK=INT(S(SF)/128):EX=S(SF)-128*BK:REM blocks of 128+extra 120 P=HIMEM:IFBK=0THEN124 122 FORI=1TOBK:CALLMAXRAMC+6,128,P:P=P+128:NEXT 124 IFEXTHENCALLMAXRAMC+6,EX,P 126 GOSUB52 128 REM write destination 130 GOSUB38 132 GOSUB26:IFBL=0ORDR$="B"THENGOSUB32 134 MD=1:GOSUB48 136 P=HIMEM:IFBK=0THEN140 138 FORI=1TOBK:CALLMAXRAMC+9,128,P:P=P+128:NEXT 140 IFEXTHENCALLMAXRAMC+9,EX,P 142 GOSUB52:PRINT" Copied":REM close 144 NEXTSF 146 REM end 148 MOTOROFF:LFILESS19200 150 CLEAR0,MAXRAM:MAXFILES=0:END 152 REM error traps 154 IFERR=5THENPRINT"POWR-DOS not loaded.":GOTO150 156 PRINT:PRINT"Error"ERR" Line"ERL 158 GOTO148 160 IFERR=52THENRESUME34ELSE156