̰CYCLONE(C)FRED BLOGGS ACK ";TS; ,`hhh`HHHCȱYȱCȱLȱOȱNȱ ťqsprsɠȱrpqserpO L D R U N hhh`e protected" . _SPACE 8 _TITLE B&16,8);"TRACKS";16,9);"______" LETRACK%=TS TE:5+3*(TRACK%10),TRACK% 10 +10);"";TRACK%;: VH0,20);(40);0,20)"INSERTSOURCE DISCINTO DRIVE ";SRC%:DR%=SRC% ` _SPACE jd DEST%<>SRC% DT%= 0,20);(40);0,20)"INSERTDESTINATION DIS  ON ERROR GOTO2000  N%(5) SECTMAX%(5)  BAD%(5)  PTX%(5)  PTY%(5)  S%20  UNFORM%(4)  PAR%(6)  CNT%(5) ( COMBUFFER% 135 2 BUFIDBUFFER% &21C < DBUFFER% &3300 F _START P _MAIN Z _END d n _MAIN x TRACKS%=TS TE 5 % TLS%=0 4:TRACK%=TRACKS%+TLS%  SCOM%=COMBUFFER%+(TLS%*27) ! BUFID%=BUFIDBUFFER%+TLS%*108 DBUF%=DBUFFER%+TLS%*2610 0,6)"SECTORS:"; -PTX%=5+3*(TRACK%10):PTY%=TRACK% 10 +10 PTX%,PTY%);"";TRACK%; 10,6);(40); _SEEK(TRACK%) b _READID(1): (RESULT% &1F)<>0 PTX%,PTY%);"";:UNFORM%(TLS%)=:TpB UNFORM%(TLS%)= _READID(26) CNT%=1 26  TST%=0 CNT%-1 8 !(BUFID%+4*TST%)<>!(BUFID%+4*CNT%) TST%: CNT%  CNT%=27  BAD%= " SS%=-1 , 6SS%=SS%+1 @% ?(BUFID%+4*SS%)=TRACK% BAD%= J SS%=(CNT%-1) (BAD%=) T7 BAD%= SECTMAX%=CNT%:N%=_VARS2(SECTMAX%):tnA ^ N%=-1 h r N%=N%+1 |BUFDAT%=DBUF% ' _READDATA(N%,?(BUFID%+2+4*SS%),1)  (RESULT% &1F)<>&E N%>4 F (RESULT% &1F)<>0 N%>4 PTX%,PTY%);"@@";:0,20);:TBC SECTMAX%=_VARS(N%) )10,6);(40);10,6);SECTMAX%,"|"); _READID(SECTMAX%) M%=0 CNT%-1:EPT%=M% BUFDAT%=DBUF%+M%*(128*2^N%) 2 ?(BUFID%+4*M%)<>TRACK% RESULT%=&FF: THB %_READDATA(N%,?(BUFID%+2+4*M%),1) & RESULT%=0 10+2*(M%),6)"|"; & RESULT%=&20 10+2*M%,6)"|"; V RESULT%=0 ?(SCOM%+M%)=&4B RESULT%=&20 ?(SCOM%+M%)=&4F ?(SCOM%+M%)=&FF G (RESULT% &1F)<>0 PTX%,PTY%);"";TRACK%;10+2*EPT%,6)"|"; * RESULT%=&FF BAD%=:?(SCOM%+M%)=&FF M% & ?(SCOM%+CNT%)=0 + TRACKS%+TLS%=TE TLS%=5 ,gCNT%(TLS%)=CNT%:BAD%(TLS%)=BAD%:N%(TLS%)=N%:SECTMAX%(TLS%)=SECTMAX%:PTX%(TLS%)=PTX%:PTY%(TLS%)=PTY% 0 TLS% : _SWAP b$ TLS%=0 4:TRACK%=TRACKS%+TLS% cgCNT%=CNT%(TLS%):BAD%=BAD%(TLS%):N%=N%(TLS%):SECTMAX%=SECTMAX%(TLS%):PTX%=PTX%(TLS%):PTY%=PTY%(TLS%) lSCOM%=COMBUFFER%+(TLS%*27) v! BUFID%=BUFIDBUFFER%+TLS%*108 { UNFORM%(TLS%)= diB  DBUF%=DBUFFER%+TLS%*2610  EFLAG%= _FORMAT(N%,CNT%) PTX%,PTY%);"";TRACK%;  M%=0 CNT%-1  BUFDAT%=DBUF%+M%*(128*2^N%) 8 ?(SCOM%+M%)=&FF PTX%,PTY%);"";TRACK%;: dPB  EFLAG%= &_WRITEDATA(N%,?(BUFID%+2+4*M%),1) 10+(M%)*2,6)"|"; #_VERIFY(N%,?(BUFID%+2+4*M%),1) * RESULT% &1F<>0 10+2*M%,6)"|"; % RESULT%=&20 10+2*M%,6)"|"; M%  TRACKS%+TLS%=TE TLS%=5  TLS%  _SWAP1  TRACKS%     _OSWORD * ATTEMPT%=10 4 REPEAT > ?S%=DR% H S%!1=BUF% R S%?5=PAR% \ S%?6=COM% fP%=1 PAR% p?(S%+6+P%)=PAR%(P%) zP%  X%=S%256  Y%=S%256  A%=&7F  &FFF1 RESULT%=?(S%+7+PAR%)  ATTEMPT%=ATTEMPT%-1 , UNTIL(RESULT% AND &8)=0 OR ATTEMPT%=0  _SEEK(TRACK%)  BUF%=&70  PAR%=1 PAR%(1)=TRACK%  COM%=&69  _OSWORD - RESULT%<>0 E$="SEEK TRACK":M%=0:_ERR  $_READID(ID%) .BUF%=BUFID% 8 PAR%=3 BPAR%(1)=TRACK% L PAR%(2)=0 VPAR%(3)=ID% ` COM%=&5B j _OSWORD t ~#_READDATA(N%,SECSTART%,SECT%) BUF%=BUFDAT%  COM%=&57  PAR%=3 PAR%(1)=TRACK% PAR%(2)=SECSTART% PAR%(3)=32*N%+SECT%  _OSWORD  $_WRITEDATA(N%,SECSTART%,SECT%) BUF%=BUFDAT% COM%=?(SCOM%+M%)  PAR%=3 PAR%(1)=TRACK%  PAR%(2)=SECSTART% PAR%(3)=32*N%+SECT%  _OSWORD () (RESULT% &1F)<>0 _FORERR:ThE 2 <"_VERIFY(N%,SECSTART%,SECT%) F BUF%=BUFDAT% P COM%=&5F Z PAR%=3 d PAR%(1)=TRACK% n PAR%(2)=SECSTART% x PAR%(3)=32*N%+SECT%  _OSWORD  (RESULT% &1F)<>0 _ERR  _FORMAT(N%,SECT%)  COM%=&63  PAR%=5 PAR%(1)=TRACK% PAR%(2)=16 PAR%(3)=SECT%+32*N%  PAR%(4)=0 PAR%(5)=16 BUF%=BUFID%  _OSWORD ! RESULT%<>0 _FORERR:TDF   _VARS(N%) " N%=0 =18 , N%=1 =10 6 N%=2 =5 @ N%=3 =2 J=1 T _VARS2(S%) ^ S%=1 N%=4 h S%=2 N%=3 r S%>2 N%=2 | S%>5 N%=1  S%>10 N%=0 =N%  _SWAP ' SRC%<>DEST% DT%= DR%=DEST%: .0,20);(40);9,20)"REMOVESOURCEDISC"  _SPACE C0,20);(40);0,20)"INSERTDESTINATION DISCINTO DRIVE ";DR%  _SPACE   _SWAP1 & SRC%<>DEST% DT%= DR%=SRC%: 30,20);(40);6,20)"REMOVEDESTINATION DISC"  _SPACE >0,20);(40);0,20)"INSERTSOURCE DISCINTO DRIVE ";DR%  _SPACE  & _SPACE 0 *FX15,1 := (-99) 0,23);7;" RELEASESPACE BARPLEASE";:TpG D&13,0,0,0 N/0,23);" Press SPACE BAR to continue"; X b =" " l 0,20);(120);0,23);(40); v  _START  _TITLE 0,6);"This facility will enable backup copies of all single sided single density discsto be made. It must be used for personalcopies ONLY."  90,11);(40);0,11);"ENTER DISC SIZE 40/80 TRACK ";  ""DS%  DS%=40 DS%=80 0,11);""; =0,13);(40);0,13);"ENTER NO. OF DRIVES PRESENT 1-4 "; DN%=_INPUT(1,4) 0,13);"";  p0,15);(80);0,15);"ENTER DRIVE TYPE SINGLE OR DOUBLE SIDED (D/S) ";:A$=:A$ "DdSs",A$)  0,15);"";0,16);""; . "Ss",A$) DN%=1 SRC%=0:DEST%=0:D\H  =0,18);(40);0,18);"ENTER SOURCE DRIVE NUMBER (0-3) "; *SRC%=_INPUT(0,3) 40,18);""; >B0,20);(40);0,20);"ENTER DESTINATION DRIVE NUMBER (0-3) "; HDEST%=_INPUT(0,3) R0,20);""; \G "Dd",A$) (((SRC%+2)=DEST%) ((SRC%-2)=DEST%)) DT%= DT%= f SRC%=DEST% DT%= p DN%=1 "Ss",A$) DT%= z _SPACE  _TITLE  >0,6);(40);0,6);"ENTER START TRACK (0-";(DS%-1);") ";  ""TS ! TS>=0 TS<=DS%-1 TS= TS 0,6);""  <0,8);(40);0,8);"ENTER END TRACK (0-";(DS%-1);") ";  ""TE " TE>=TS TE<=DS%-1 TE= TE 0,8);""; J 0,10);"YOU HAVE SELECTED :-";DN%;"DRIVES PRESENT";0,12);" "; & A$="S" "SINGLE"; "DOUBLE";  "SIDED ";DS%;"TRACK DISCS";2,14);"SOURCE DRIVE";SRC%;" DESTINATION DRIVE";DEST%;2,16);"ACTING ON TRACK ";TS; , TS=TE " ONLY"; "TO TRACK ";TE; 70,18);"PRESS ESCAPE IF ANY INPUT WAS INCORRECT"; $T0,20);"WARNING:-Ensure source disc ";0,21)" is write protected" . _SPACE 8 _TITLE B&16,8);"TRACKS";16,9);"______" LETRACK%=TS TE:5+3*(TRACK%10),TRACK% 10 +10);"";TRACK%;: VH0,20);(40);0,20)"INSERTSOURCE DISCINTO DRIVE ";SRC%:DR%=SRC% ` _SPACE jd DEST%<>SRC% DT%= 0,20);(40);0,20)"INSERTDESTINATION DISCINTO DRIVE ";DEST%:_SPACE t ~ _FORERR ! EFLAG%= "FORMAT ERROR": 0,19);(40);0,19);7;"ERROR:CheckDESTINATION DISCis in drive";DEST%+"and that it is NOTWRITE PROTECTED" _SPACE 0,19);(120) EFLAG%= _OSWORD  _ERR ؄0,19);(40);0,19);7;"ERROR:";E$;" FAILED";8,20);"AT TRACK ";TRACK%;" SECT ";M%;4,21);"SOURCE DISC OR DRIVE FAILURE" .0,23);" Press SPACE BAR to continue";  =" "  0,19);(120); :" AT LINE ";: G <>17 0,19);(40);0,19);7;"ERROR:PROGRAM CORRUPTED":TJJ (60,19);(40);0,19);7;"ERROR:ESCAPE PRESSED"; 260,23);(40);4,23);"Press SPACE BAR to restart"; < F =" " P Z _END d0,19);(120); n*0,19);9,19);7;"TRANSFER COMPLETE" x60,23);(40);4,23);"Press SPACE BAR to restart";  =" "  _TITLE F:149,157,10,13,149,157,10,13,149,157,10,13,149,157,10,13,149,157 9,0);141;" CYCLONE ";140;"V1.2";9,1);141;" CYCLONE ";9,2);" ======= ";8,3);"PROTECTED DISC COPIER";5,4);"(Copyright 1984 M.V.Hamblin)" 23,1,1;0;0;0;    _WRSPECREG(CTRACK%) BUF%=&70 PAR%=2  PAR%(1)=&12  PAR%(2)=CTRACK%  COM%=&7A  _OSWORD " , _INPUT(P1%,P2%) 6 A$ @ JA$= T A$>=P1% A$<=P2% ^A$; h = A$