100 REM <CTRL-M><CTRL-M><CTRL-M><CTRL-M>============================<CTRL-M>CATALOG FILE SWAPPER<CTRL-M> EXCHANGES ANY TWO FILENAMES<CTRL-M> IN A CATALOG<CTRL-M><CTRL-M>I HOPE IT WORKS...<CTRL-M>============================<CTRL-J>
110 REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>BY BERT KERSEY<CTRL-M>BEAGLE BROS<CTRL-J><CTRL-J>
170 PRINT "THIS PROGRAM WILL SWAP ANY TWO": PRINT "FILE NAMES IN YOUR CATALOG."
180 FOR SEC = 1 TO 15:LOC = LOC +256: POKE 47085,SEC: POKE 47088,LOC - INT(LOC/256) *256: POKE 47089, INT(LOC/256): CALL 768: NEXT : REM READ^SECTORS^1-15
190 FOR F = 1 TO 2: PRINT : PRINT "FILE NAME #";F;: INPUT ":";FI$(F)
200 FOR I = 1 TO 30:FI$(F) = FI$(F) +" ": NEXT : REM ADD^TRAILING^SPACES
210 A$ = "": FOR X = 1 TO 30:A$ = A$ + CHR$( ASC( MID$ (FI$(F),X,1)) +128): NEXT :FI$(F) = A$: NEXT F: REM ADD^128^TO^EACH^CHARACTER'S^ASCII^VALUE
220 FOR F = 1 TO 2: PRINT : PRINT "SEARCHING SECTOR:";
230 FOR SEC = 15 TO 1 STEP -1: PRINT SEC;",";:LOC = 8192 +256 *SEC
240 FOR X = LOC +14 TO LOC +224 STEP 35: IF CHR$( PEEK(X)) < > LEFT$(FI$(F),1) THEN 260: REM LOOK^AT^1ST^CHARACTER
250 FOR Y = X +1 TO X +29: IF CHR$( PEEK(Y)) = MID$ (FI$(F),Y -X +1,1) THEN NEXT : GOTO 280: REM FILE^FOUND
260 NEXT X
270 NEXT SEC: PRINT : PRINT "FILE #";F;" NOT FOUND"; CHR$(7): PRINT : GOTO 190
280 PRINT : PRINT "FILE #";F;" FOUND IN SECTOR ";SEC:SEC(F) = SEC:LOC(F) = Y -33
290 NEXT F: PRINT
300 LOC = 24576: FOR X = 0 TO 34: POKE LOC +X, PEEK(LOC(1) +X): POKE LOC(1) +X, PEEK(LOC(2) +X): POKE LOC(2) +X, PEEK(LOC +X): NEXT : REM SWAP^FILENAMES
305 PRINT : PRINT : PRINT "HERE GOES...": FOR I = 1 TO 999: NEXT
310 RW = 2: POKE 47092,RW: FOR F = 1 TO 2: POKE 47085,SEC(F): POKE 47089, INT((8192 +SEC(F) *256)/256): CALL 768: NEXT : REM WRITE^SECTORS^TO^DISK