Summary of changes from release 2.08 to release 2.09
----------------------------------------------------

* More changes to the HEX editor:

  1. Added an extra ALT-T to turn off the tagging, if there is a tag
     area set. If there is no area set, then a new area will be started,
     like normal.

  2. Pressing BACKSPACE in either edit mode will delete characters, like
     it does in DOS, filling the deleted chars with 00's. When in VIEW
     mode, it will only move the cursor back 1 character.

  3. Added TAB key to move cursor forwards 8 characters.

  4. Pressing SPACE when in VIEW mode, it moves the cursor ahead 1
     character, but doesn't erase anything.

  5. Changed the way the cursor moves when using the arrow keys. Now, it
     will go up (or down/left/right) 1 line when you wrap around the end
     of lines, just like it does when you type in ASCII mode.


* Added in a Disassembler (SHIFT-F4). Here's how it works...

  1. Convert the file from C64 to Binary format. This funtion only works
     when the file is in binary.

  2. Enter the start address for the program (F12). You will not be
     allowed to do very much until you do.

  3. Go over the code, looking for all references to byte tables (look
     for LDA $xxxx,y or STA $xxxx,y or CMP $xxxx,y, etc. Any ABSOLUTE
     address reference (indexed or not) that falls in the program range,
     and is used for lookup or modification, is a table reference. You
     can spot them because they will be highlited if they have no label
     or table reference. Set up the tables throughout the program (F7)

  4. If you wish, you can enter any labels you want (F5).

  5. Once *all* the tables are found and entered, you can do all the
     rest of the labelling automatically (F3). This is a dangerous
     command, since there is no going back from it (well, you can, just
     make sure to save (F4) the OVerView file first). It will
     automatically determine *all* the JMP, JSR, indexed and branch
     addresses and label them. If you don't like the results, don't save
     the OVerView file, and you can then go back to the previous label
     structure.

  6. Once this is done, check over all the code again, and make sure no
     "???" opcodes exist. If they do, make sure no tables were missed.


* Added in a BASIC detokenizer (SHIFT-F3). Here's how it works...

  1. Position the bar over a DOS binary filename (this function only
     works on DOS files, so convert any file from C64 to BIN).

  2. Press SHIFT-F3, and the specify whether you want to dump it to
     screen or disk. If it is going to disk, it will create a file
     called <filename>.BAS. You can then look at it with a TEXT editor.
     Dumping to screen will dump one screen at a time, with a pause
     in between. You can press ESC any time to cancel.


* Added in the CheckTape code. It only checks for a few things, since
the format for T64's does not allow for much repairing. No data is
removed from the archive, only directory entries. For now, I
repair/check for the following things:

  1. Bad offset values in the directory entry. If the value is illegal,
     the dir entry is removed.

  2. Incorrect "entries used" counter. Many times, this counter will be
     completely wrong, and I check for the number of used entries to set
     it back to normal.


* Fixed error in Rename/Move where the copy would generally fail after
one use.


* Fixed an error in the SHIFT-F6 (Rename C64) where T64 directory
entries could not be changed.


* Fixed a bug in the text output of the windowing code. Don't worry, you
likely never saw it.


* Fixed it so you can again specify "MODE CO80,25" to change the screen
size. When I rewrote the video section (to allow for user selectable
defaults), I neglected to allow you to change it on the command-line. I also
broke the defaults... if you set the video mode to always be mono, when
you shelled and re-entered, the video mode went back to color.


* Added another Configuration option: CheckDisk command-line. This
allows you to customize the DOS ALT-F3 checkdisk with whatever you want
it to run, other than CHKDSK, like SCANDISK, NDD, etc. I also added in a
confirmation on the ALT-F3 (DOS) CHKDSK. Now, it will ask before running
the DOS checkdisk.


* Added another Configuration option... "Log DOS Copy/Move disk errors".
Now, if an error occurs while reading a disk (only in DOS mode), a box
will not come up but instead the error will be logged to a file that you
specify. At the end of the copy you will be informed that some files
were skipped due to errors encountered. This is a feature I don't expect
too many people to use since it is primarily for myself. I use the
program for DOS disk recovery, and it will be *very* useful for me to
know what files failed to be recovered by checking the log file.


* Added Save and Restore Colors to Color Config window. Now you can save
the color configuration to the file 64COPY.CLR and restore it later,
especially after I change the .INI file and you lose your custom color
configuration.


 * Changed the look of the CheckDisk and CheckTape windows... they are
now almost full-screen, with better contrast between the checking window
and the error messages that invariably come up. They use the Viewer
color, if you want to know to change it.


* Added a multi-module screen saver. It allows you to set the time from
"off" to 30 minutes. For now, there are three savers that will be
randomly selected from. One is the standard "Starry Night", one is
"Maze", and the third is "Snake". If you have any ideas for other
savers, let me know (but describe it in great detail). I can easily add
them in, as long as the resulting code is of reasonable size.


--------------------------------------------------------------------------


Summary of changes from release 2.07 to release 2.08 (a *LOT*)
--------------------------------------------------------------

* Made many changes to the Hex editor:

  1. Removed the "Are you sure you want to quit" box when you exit.

  2. Added "Status: " to show if a sector is allocated or not.

  3. Can now tag sections (using ALT-T) for copy/paste.

  4. Removed the "Are you sure..." from the paste (F12)

  5. The panel listings are now updated after exiting (in case of changes).

  6. Added better checking for valid track/sectors in the Next Sector (F7)

  7. Completed the ASCII (F5) and HEX (F6) search engine. The two have
     separate search strings, and the HEX search data can be entered in
     virtually any way (as long as it is groups of two hex chars).

  8. Editor will now start at the track/sector that the file you have
     selected in the panel points to.

  9. Changed Zero Sector to Zero Area. It will clear out either what you
     tag or the whole sector.

  10. ASCII edit will now flip the characters case, so that text entered
      in lower/upper case will appear that way on the C64 as well.


* Added seven new configuration options (and rearranged the Config
Screen as well)...

  1. Change sector interleave (range 1-15). Allows you to change the
     default interleave of 10 to what you think would be better.

  2. "Welcome To.." box on startup. You can turn off (or on) the
     "Welcome" box that would normally be displayed. If you have
     selected it to be displayed, it can still be overridden by the
     command line option '/quiet' to turn it off.

  3. Starting color mode. You can now set the program to work in either
     Mono or Color at all times. It can still be overridden by the
     command line option '/mono' or '/color' to force a color or mono
     mode. This mode might be a little confusing, since if you are on a
     mono screen, you cannot force a color mode, since to do so would
     be fruitless, but you can force a mono color scheme on a color
     monitor.

  4. Default entries for T64's created in the F11 Convert routine. This
     does not apply to T64's created by CTRL-F12, only those converted
     from other formats. It will always default to 30, with an
     allowable range of 1-1499.

  5. Default screen line mode. Now you can specify how many lines per
     screen you want to always see when you start up 64COPY. It will
     default to 43 line upon startup (with no .INI file), and no matter
     what video mode you are in, it will go back to this specified
     value upon execution.

  6. Convert default filetype. When you press F11 when in an emulator
     file, or on a DOS file, usually the default for conversion will be
     P00. Now you can select from D64, T64, P00, Binary and X64.

  7. Convert Filenames. This will allow you to auto-create DOS
     filenames that you are converting from other C64 files. Instead of
     asking you for a confirmation for each one, it will create it for
     you, and only inform you when a duplicate name occurs.


* Changed the handling of DIR separators ("-----------------" files).
They are identifiable by their starting sector (either 18,0 or 18,1)

  1. You can create DIR separators by SHIFT-F7. It will be inserted
     after the file you are presently on.

  2. Keypad +/-/* will no longer select them, making conversion easier.

  3. You can delete them by either the F8 or SHIFT-F8, and any contents
     they refer to will not be de-allocated. I would recommend running
     CheckDisk after such a delete.


* Changed the bar graphs in much of the program...

  a. Added a dual bar graph to the Copy/Move and Convert routines. The
     top one shows the % completion of the file copy and the bottom one
     shows the overall % completion. Note this also applies to the
     LNX/ZipCode/D64 conversion as well.

  b. Added a % graph to the Delete files.

  c. Added bar graph to Change Attributes.


* Added "Undo to User Settings" to the Color Configuration (installed
under F2). Now, if you make changes, but want to return to *your*
settings, use F2. If you want complete defaults, still use F9.


* Removed "window flashing" if you run 64COPY windowed (either in OS/2
or Windows). You could see this in full-screen as well if you watch the
bar-graph very closely... during operations it would be erased and
redrawn very quickly, but it was nowhere near as obvious.


* Removed the autodetection of filetypes in the UnLynx code, since it
was getting fooled into creating some *really* strange filetypes. Now
all files created are either ZipCode (#! files) or P00's, no more .SFX,
.SDA etc. You will have to convert them out of P00 after the conversion.


* Improved checking for when to convert files (F11) to/from ZipCode and
LNX. Now, if you have selected various files, some of which are not
ZipCode, D64/X64 or LNX, the Convert routine will assume you want to
convert them only, and not do anything else like UnZipCode. If you have
*only* selected the proper files, then *only* ZipCode, LNX or UnZipCode
will be executed. Remember, in order to convert ZipCodes, D64's or LNX
files, it must be done through the F11 key. If you select DIR's, they
will be untagged, since you cannot convert directories.


* Conversion to ZipCode will now retain the full filename. Before, a
file like "impossib.d64" would be ZipCoded to "1!imposs", losing the
last two letters of the name "ib". They are now retained as part of the
extension.


* You can now select a group of files inside a T64/X64/D64/P00 and do an
ALT-F5 Tagged Size, and a you will receive a % useage box. Different C64
files will return different info.


* Added display of free blocks when files have been tagged in a D/X64.
Before, it would just say "xxx blocks in xx files", now it says "xxx
blocks in xx files (xx free)".


* Added display of free entries in a T64 file (both with and without
files tagged). Note, this amount may be wrong, depending on what program
created the T64.


* Fixed the percentage calculations in the ALT-F5 (Tagged Size
totalling) and CTRL-L (Drive useage). Sometimes, they could be thrown
out by a good number (see what CD-ROM's still does to it!)


* Files converted to P/S/R/U00 from illegal file types (e.g. "!!!") will
now be created as PRG (P00) files, and not !!! (!00) like it use to.


* Added the size and number of the items you are going to delete in the
delete dialog box, instead of just the number of items.


* Modified the way that CTRL-U (Swap Panels) works. Now, it just swaps
the info, whereas before it would remove the panels, reread the info,
and re-display the panels. Tha old way was slower, and I didn't swap
half of the panel markers (hilite position, C64 mode, etc). It should be
a lot better.


* Once again I altered the way D64/X64's are recognized as valid. I
discovered some disks that still were incorrectly identified as *not*
being D64's when they were. I hope this is the last time I have to
change this.


* Added command-line option shortcuts... '/M' for '/MONO', '/Q' for
'/QUIET' and '/C' for '/COLOR'. These were easier to type in. These
options override (but won't change) any default setting you have in the
.INI file.


* Removed error window about creating duplicate Pxx files in the Convert
Routine. They will now be created automatically (up to 99 duplicates).


* Fixed the auto-create for D64 because it was never asking you for a
confirmation for creating the files. It always skipped that part.


* After investigating the way that the 1541 does its sector interleave,
I have had to rewrite most of the algorithm. My old method was close
(and likely won't cause any speed problems on a real C64). but I felt
that being as accurate as I could get would be the best. (I was doing
several things wrong...

  a) When I went past the end of the track, I went to the wrong sector

  b) When I had to change tracks, I went to the wrong sector

  c) When I reached one end of the disk (track 1 or 35), I didn't go
     searching for the next sector correctly.

Most of the errors are not large (only a few sectors off), and didn't
affect the whole file, only small sections of it. Errors 'a' and 'b'
would be the most obvious for speed. It now seems to work the way a real
1541 does, but I might find something in the future that needs fixing
again.


* Fixed bug in the History (ALT-F8) where if you shelled out by doing a
F4 (Edit), and came back, the history would be full of empty entries.
This was a very hard-to-duplicate error, and you may not have seen this,
but its gone now.


* Fixed a bug (likely introduced in 2.07) where, if you tag only 1 file,
move the hilite bar to another entry, and press F11 (Convert), no
conversion would take place.


* Fixed a bug in the Create Images (for D64/X64) where the *complete*
filename (including path) was being put into the header as a disk name,
not just the filename, and was overwriting too much area. It is not too
crucial, but looked stupid. This only applied when you were converting
(F5/F6/F11), and not to the Create D64 (F12). Now it just uses the
filename, without the extension.


* Fixed another bug in the Convert section where if you tried to convert
a file (any file) to T64. and you were already in a T64 in the opposite
panel, the file would not be converted but it would look like it was
being copied instead.


* Fixed an error in the window sizing and window text output in the
Directory Delete routine where the text could sometimes end up outside
the window. It was very hard to duplicate.


There is bound to be more changes than what I have listed here, but
these are the most important ones.


--------------------------------------------------------------------------


Summary of changes from release 2.06 to release 2.07
----------------------------------------------------

* Added a Directory Compression routine to the CheckDisk section. What
this does is eliminate the empty entries in the physical directory, and
pack them all together, then de-allocating the now unused sectors left
over. This can be useful if you have turned on the option to use track
18 as file space. If there is a lot of unused space in the directory,
and you need to have more file space, this might get a few extra sectors
for you.


* Fixed a bug where the name in the status line would go lowercase if
the other panel was in C64 mode, and certain operations were performed.


* Fixed a *major* bug in the T64 routines (introduced back in 2.06)
where the first few entries in the T64 will not be read due to my
reading the Tape Label, and failing to reset the file index pointer to
the beginning, thereby missing the first two directory entries. My
sincere apologies for this. It does not cause any damage, except that
the first entries are missed.


* Re-introduced the "Press any key..." message when, after shelling out
to do something, you re-enter the program. This was in earlier versions,
and still does this when you run 64MAIN.EXE by itself.


* Added a check for REL file side-sector info into the CheckDisk
routine. If you checked a disk with a REL file on it (before this
addition), the file size would not be correct (it would be 1-6 sectors
short), since the side sectors were not being counted and instead would
be de-allocated (if you said "Yes" to correcting the BAM and Block
Count.)


* Added in the Rename function for D64 and T64 directory entries, as
well as PC64 files (P##/S##/U##/R##). I use to have this code in a much
earlier version but, due to design changes, it was removed. It is now
installed under SHIFT-F6. An added bonus here is it will also change DOS
filenames (both files and directories, but only the name under the
cursor, no tagging.)


* Added deletion of REL file from D64/X64 types (had to add the removal
of side-sector info).


* Added error messages regarding REL file if errors occur while removing
or checking the side-sector info.


* Now, when you change the options "Show Hidden/System Files" or "Use
D64 Track 18...", the file listings will automatically get updated,
instead of making you do a re-read.


--------------------------------------------------------------------------


Summary of changes from release 2.05 to release 2.06
----------------------------------------------------

* Added ZipCode creation. Now you can create ZipCode files from D64 and
X64 archives. Just position the cursor over the D64/X64 file, press F11,
and the rest is automatic.


* Allow creation of X64 files in the Zip2D64 code. Now, when converting
ZipCode files to D64, if you change the extension of the destination
file to X64, an X64 file will be created, instead of a D64.


* Moved (actually more like crowbarred) the ZipCode-D64, D64-ZipCode and
Unlynx routines partially into the main Convert code. Now, if you have a
group of D64/X64's, ZipCodes and/or LNX files tagged, they will get
converted as a group. However, if you also include some other files (i.e
DOS files), things get very strange. Just don't do that.


* Found another bug in the T64 creation routine (but I think this one is
not very serious.) The "Tape Name" area in the header was 2 bytes early
from where it was supposed to be. It has been corrected, but if you view
the tape header, the name will not look right. This error did not
overwrite any important data (I think), since the bytes it was
overwriting were, in the T64 specifications, unused.


* Added displaying and changing of Disk (D/X64) and Tape (T64) labels.
Now, when you go into a disk or tape image, the label is displayed on
the bottom of the screen, where the "Disk Free" line usually is. You can
change it using the ALT-F10 key, now assigned "Change Label".


--------------------------------------------------------------------------


Summary of changes from release 2.04 to release 2.05
----------------------------------------------------

* Added a screen size and video mode display to the top line. Now you
can see what size of screen (80x25 or 80x50) you are on, as well as the
video mode (mono or color).


* If you now press ESC when the prompt line is empty, all the panels
will be turned off automatically. This might be *very* disliked for a
while, but once you get use to it, it is a very good shortcut to see the
screen versus using CTRL-O all the time. Most of the newer Norton clones
(Volkov Commander, and Star Commander are the ones I know of) support
this. It will take some getting use to.


* UnLynx and UnZipCode, when they finish, will now position the
highlight bar back over the file that was being worked on.


* Altered the way that the panel highlight bar gets updated after an
operation that might affect its location. Before, if you UnLynx'd a
file, the whole panel listing would be redrawn, with the highlight bar
in the center, but now, it will only re-position if it has to, not by
default.


* Fixed a bug in the UnLynx code where if a file had a bad Lynx header,
the file would (of course) not be Unlynx'd, but the progress-bar would
be drawn anyways, overtop of one of the panels.


* Significantly changed the color scheme and panel layout to look more
like Norton Commander. It's not exactly the same, but it looks much
closer.


* Panel display now shows (and sorts together) all hidden and/or system
files with the "" character, as I thought I was doing all along.


* Filenames converted from Lynx format had there case inverted (lower
to upper and vice versa).  Now they are always converted as the name is
stored in the archive. Apologies to those who might have experienced
this.


* Still cleaning up some lingering bugs dealing with shelling out of the
program to execute commands on the 64COPY command-line. The prompt was
not restored properly if the highlite bar was in the right panel... it
was always being restored as though it was in the left panel (when the
panels were off). Also the first history command (ALT-F8) was being
overwritten.


* Changed the panel display to read "UP--DIR" for ".." directories and
"SUB-DIR" for regular directories. I didn't realize that Norton
Commander did this.


* Added SHIFT FKeys (but nothing assigned to them yet). I actually
didn't know Norton Commander had these keys assigned as I never tried
them before.


* Fixed an error in the Change Video Mode (F9) routine, where if the
video mode could not be changed to a higher lines/screen, the error
would say "Could not change to 0 lines", rather than the lines/screen of
what was attempted.


* Added in a D64 HEX editor (ALT-F4). When you are in a D64, the
internal editor will always be selected. When you are in non-D64 (DOS)
mode, the external HEX editor will still be called (for now).


* If mouse is active, when the program is entered, the mouse is now at
the top left corner of the screen and out of the way instead of being
in the middle.


* Sped up the file list drawing by removing terribly some unnecessary
code.


* Finally added the Color Configuration window (CTRL-F6). Now you can
make the program as ugly as you want. Check it out.


* Changed the Configuration screen. You now have some user options you
can change from the Config panel, such as the editor names, and some
confirmations. Since I added in both the Config and Color screens, I
changed the layout of the INI file again. The old one is no longer
valid. However, since you now have color manipulation (and changeable
options), I don't think I will be changing the layout much more. All I
want to put in there is now there (I hope!)


* Fixed a whole mess of problems dealing with C64 files that start with
the "." (except the ".." Up-Dir filename) character. If such a file
existed, many (if not all) of the regular functions like Copy, Move,
Delete and Convert would not work at all. I hope they are all operating
properly now.


* Fixed a bug where if you hit return on a file when in an emulator
file, it would be treated like a DOS file. An attempt would then be made
to find a match in the .EXT file, and the associated command would then
be executed. You should never be able to associate commands to things
inside emulator files.


--------------------------------------------------------------------------


Summary of changes from release 2.03 to release 2.04
----------------------------------------------------

* Improved RENAME function to allow for deleting of destination file if
the name you want to rename to already exists.


* Split the program into two parts. The first program is still called
64COPY.EXE, but it is just a loader program for the main code which is
now contained in 64MAIN.EXE. When you execute 64COPY.EXE, 64MAIN.EXE is
then loaded, and control passed to it. When you execute a command-line
command, 64MAIN.EXE is unloaded, control is passed back to 64COPY.EXE,
the command is executed, and 64MAIN.EXE is reloaded. Now, when you
execute commands, instead of 64COPY taking up almost 230k of memory, it
is down to 24k. A great improvement to running programs from the 64COPY
command line.

  If you wish, you can run 64MAIN.EXE separately, but you don't get the
advantage of reduced memory useage, since if the loader is not used, it
will not unload itself but just execute the command. The only drawback
is the time taken to reload 64MAIN.EXE. On my machine it is anywhere
from 2-4 seconds. I am working on improving this.


* Modified the ALT-F1 and ALT-F2 (Change Drive) selection boxes. If you
had more than 24 drive letters (and don't we all), the list of drives
would exceed the width of the window, and wrap to the next line. Now,
when the number of drive letters exceeds 14, the display will narrow up,
making room for more.


* Show how many files are contained in a LYNX file (displayed in thge
dialog box) when you press F11 on the filename, just so you know how
many files you will be converting.


* Fixed progress bar in File Search (it usually wouldn't display any
movement at all).


--------------------------------------------------------------------------


Summary of changes from release 2.02 to release 2.03
----------------------------------------------------

* Changed checking for valid D64/X64. I use to look for the DOS marker
byte at track 18, sector 0 ,byte position 2 (value of 0x41), but found
that too many disks don't use the correct value, resulting in the error
message "Not a valid D64/X64 file". I altered the method so now it
should work regardless (but it will also likely result in garbled panel
displays when trying to display character and scenery disks which
contain no directory).


* Added UnLYXN and UnZipCode. By positioning the highlite bar over a
.LNX file, or over *any* part of a ZipCode (#!xxxx) file, and pressing
F11, the file will be converted into the present directory of where the
archived files exist. An LNX file which does not contain ZipCode files
or other LNX files will be extracted as a P00 file, so that the C64
filename can be preserved, and you can convert it to another filetype
later (i.e. D64, T64, X64). P00 was used simply because it is easy
filetype to support in a hurry, and conversion from them is a breeze.

NOTE: I might change this over the next several weeks, to incorporate it
      into the convert routines, but for now, this is as good as it
      gets. Making it any better has some difficulties, since I have
      seen .LNX files containing .LNX files, multiple files, ZIPCODE
      files ,etc. There is hardly any way to know what it contains even
      while you decode it. If I can figure out a way to handle .LNX
      files like a multi-file read-only T64 (no delete), then I will be
      able to do something. Until then, use it as it is. (One nice
      feature is it will auto-detect if the file contains a 4-part
      zipcode, and will structure the filename appropriately.)


--------------------------------------------------------------------------


Summary of changes from release 2.01 to release 2.02
----------------------------------------------------

* Added output logging to the CheckDisk function. Now all disk checking
is logged to files called <filename>.CHK, where <filename> is then same
as the file you are checking, and resides in the same directory as well.
It is constantly appended to, so it can get a little large. You get the
option of turning the logging on, with off as the default.


* Directory attributes were not being retained on copies. You would lose
any hidden/system/readonly attribute that was set, and be left with a
normal accessible directory, including during copies that spanned disks.
Fixed.


* File selection (Grey + - *) no longer select hidden files. Hidden
files are exceptional, and generally should never be operated on
anyways. You can still select them by using the INS key but not using
the pattern matching method. If there are any others you would like
excluded, let me know (like system and read-only files). I will likely
include this as a checkbox option once I get the mouse routines done,
and have the configuration screen ready to go.


* Moved the prompt line back to its original position above the function
key bar. I did this because of problems that arose when you hit
CTRL-BREAK... the whole screen would shift up by one line, forcing you
to do a redraw. Without a keyboard handler, there is no way to trap the
^C from being generated, so I moved the line to prevent the problem.
Besides, it looks better there.


* Fixed a bug in the Directory Delete and Copy/Move files (a bug which I
introduced several versions ago). It would fail after moving/deleting 10
directories, and would not be recoverable. An endless loop (into the
wrong section of code) would ensue, and be very annoying.


* Still fixing the video system. When you entered MODE MONO on the
command line, the screen would go into B/W mode, but the text would
still be color, not B/W. Fixed. 64COPY does not actually change the
video mode that the card is set for, but rather simply changes the
colors on the screen, and this leads to some interesting programming
troubles (since I have to keep track of two different video modes, the
real one and the simulated one, and when to change what).


* Fixed a bug in the File Search function where a search that spanned
disks would not actually go the other disks, but rather keep on happily
scanning the same drive over and over, as long as you pressed ENTER to
continue the search.


* Allow commenting in the EXT file, just in case you want to add
comments to any of the associations you have defined. See the 64COPY.EXT
file for more details on limitations and line formatting.


* Corrected some minor formatting errors in certain text strings (bad
wording, incorrect spelling, visual problems, etc)


* Keyboard speed automatically raised to highest level, to allow for
fast key repeat (useful in using the cursor keys to scroll up and down,
without the fast repeat, it is too slow for me). I hope it works for
you.


* Fixed a bug where if the .INI file contained a reference to an unknown
drive letter (i.e. the right panel default drive), when first starting
up 64COPY, you could ESC around the error box, and end up with a panel
showing the contents of something that doesn't exist. This one is hard
to explain, but it was annoying if you use the program on multiple
machines, where drive letters change all the time, and some would
invariably disappear.


* Changed default text editor and viewer from QEDIT to EDIT. This is a
more universal editor name, since all DOS's onward from 5.0 have
included a text editor. The INI version number has not changed, so any
text editor you have previosly defined will still be used. If you want
the new editor default used, delete the old INI file, or change the
entry to EDIT. I haven't found a better HEX editor than FED yet, but I
am looking. Any suggestions? (I will likely write my own anyways).


* File list now sorted by extension as well, and not just by filename.


* Enhanced the User Menu function. Now you can include the ! character
into your menu definition, and this will automatically expand out to
represent the filename presently under the highlight bar (in the active
panel). Note: only use one !, since I only am looking for one. If you
use it like !.!, this will not expand out correctly.


* Had to workaround a Watcom bug... when copying DOS system files
(FDISK.EXE, BACKUP.EXE, etc) from anywhere to anywhere, under OS/2 with
APPEND active, if the files you were copying also existed in the
directory pointed to by APPEND, then the destination would end up being
the APPEND location, not where you specified. Very weird!


* Enhanced the file move operation by *moving* the files, rather than
being *copied and deleted*, when going to and from the same drive. So if
you have to move a directory from one location to another, but on the
same drive letter, it will now move them instead of copying them (and
retain the attributes as well). Much faster.


* I now run all the C64 filenames through the name-conversion routine so
that on-screen they appear as close as they can to a real C64. So now,
in the convert window (or the Check window), the filenames look like
real C64 names, and not DOS names with bizarre characters.


* Any DOS file with the extension "DIR" would not be converted into a
C64 archive, since it thought it was a subdirectory, and you cannot
convert subdir's into archives. Fixed. Added an errorwindow telling you
that directories cannot be converted/copied, if you try to do so.


* Added support for CD-ROM's (and other write-protected disks). File
attributes (especially for C64 archives) are now kept intact. Before, I
would change any read-only/system/hidden attribute to the standard
archive setting, for read/write access. I still do so (if possible), but
I change it back after I have finished the operation. If the attribute
cannot be initially changed (such as for CD-ROM's), then you are
informed that either the operation could not be completed (file deletes,
moves), or are given read-only access (CheckDisk). The read-only
atribute on CD-ROM files will still be set when you copy files from
CD-ROM to any other disk. If you try to move files out of an archive on
a CD-ROM, the file will be *copied*, but the delete portion of the move
will not work (since the file is read-only).


* Added an error window informing you when the version of the .INI file
has changed, if you are trying to use a newer version of 64COPY with an
old .INI settings file.


* Corrected checking for copy/move of source file to the same location.
It will fail with an error message saying "Cannot copy/move to the same
directory."


* Some internal modifications to the keyboard scanning routines. All the
scan-codes use to be hard-coded into the source code, now it is
centralized (using #DEFINE's), making modifications much easier. The
only thing you might have noticed about this was pressing ALT-ESC (an
OS/2 key combination) under DOS would give you a 'd' character on the
command-line.


* Fixed a bug in the Filename Completion routine where with the panels
on, if you pressed ALT-Tab (or CTRL-Tab or Shift-Tab) to give you a list
of matches, you would get a list, but you shouldn't have. With panels
off, it worked basically ok.


* Copy/Move will no longer try to copy overtop of files which are busy
(such as executibles which are running while in OS/2). It will check to
see if the file is removeable first, and if not, it will fail.


* Date and Time fields are now retained when copying/moving. Before, the
time/date would be set to whatever the it was when you copied the file.
This applies to both files and *directories*. Normally, directories
cannot easily have their dates altered, but there is a (kludgy) way to
do it.


* When cancelling a file copy, the unfinished destination file was not
deleted.


* Enhanced the ALT-key search routine. Now when you press ALT and a
letter (or number), you are presented with a box, where you can narrow
down the search, just like NC.


* Files being moved onto the same drive as the source, with the filename
already existing on the destination would not be moved, as the
destination file was not being deleted.


--------------------------------------------------------------------------


Summary of changes from release 2.0 to release 2.01
---------------------------------------------------

* Added additional keyboard checking for cancellation of file copies. If
you were copying a large file, you had to wait for the whole copy to
complete before the ESC key would register to cancel the copy. Annoying
on those long file copies to the floppy!


* Fixed a bug that was repeated in every directory-related function
(such as copy/move, dir sizing, file searching and deleting), related to
network drives. On Novell-specific network drives (at least that is the
type of network I have at work), the directories do not contain any ".."
or "." files, and I assumed *all* dir's would have these. This oversight
would show itself as a failure to complete the requested task, but only
on empty directories. If a directory had any contents, everything was
fine.


* Fixed the /mono and /color command-line switches. I broke them
somewhere from beta 5 to release 2.0 (this bug may have never made it
out to public release!)


* Corrected a small text color problem where the text inside of windows
would get the wrong attribute, usually from the previous window.


--------------------------------------------------------------------------


Summary of changes from beta 5 to release 2.0
---------------------------------------------

* Added a moveable mouse (it doesn't actually do anything, it just looks
pretty!). At least the mouse support is on the way.


* Fixed bug in Print Files routine where dialog window would be removed
along with the one of the panels, only if you ESC'd from the main dialog
box. Also sped up the printing in both hex and text mode. It use to be
*dreadfully* slow.


* Added ALT + and ALT - (either keypad or normal) to do autoselect and
deselect without any pattern-matching. It will default to *.* with the
ALT key down. Also added ALT / to reflect the changes I made earlier for
the shortcut to the root of the drive. Now, any / or \ combo should
work.


* Started rewriting the color subsystem, to allow for user alteration of
all colors. The next step is going to be a full Color Configuration
window. So far, I have just added all the colors that I am allowing to
be changed (about 20 in all), along with making the default color config
much more conservative. You can always make it as gaudy as you like
later!


* On the same note as changing the color system, I added colors to the
file listing itself. Now, directories, tagged files, hilighted files,
etc all have different colors to them. Much easier to see what is
selected. When in mono mode, you do not get the colors on the tagged
files, you still just get the check marks.


--------------------------------------------------------------------------


Summary of changes from beta 4 to beta 5.
-----------------------------------------

* Finally rewrote the windowing routines to do direct video memory
writes, rather than BIOS calls. Now the windows and text get redrawn and
removed *MUCH* faster. You will be pleased!


* Removed program dependency with MODE.COM to change the video modes.
Program will now change video modes on its own (and I hope it works
better!).


* Rewrote the T64 routines to be more flexible. Earlier (in beta 4), I
was very strict about the structure of the T64 directory. Now, I am much
more lenient about having empty entries in the middle of good entries.
(You have to know the structure of the T64 files to understand). I also
removed the duplicate-file names checking, since this is not necessary
in a T64 archive. It now doesn't matter what you put in there. I do
still completely delete the entry from the central directory, rather
than just zeroing it out (since even if you set the flag in the
directory to indicate that the entry is free, C64s still sees it).


* Removed the progress bar graph indicator from all image file
creations. I changed the way I create the files to be much faster, so
the bar graph should now be unnecessary. Also fixed several bugs in the
Create T64 routine (couldn't create T64's greater than ~1000 entries).


* Corrected display of total byte count of tagged files in non-D64 file
listings from "blocks" to "bytes". The numbers were correct, only the
text was not corrected when I switched the listing from blocks to bytes
in beta 4.


* Added the code to automatically re-read a floppy if you switch to the
other panel, and the disk was changed. Basically, this is a disk-change
sensor. I've always found it very handy. It should only work on
removeables, and not the fixed disks (and I hope it works well, as I
have always wanted this feature).


* Added ALT-/ and ALT-\ to also act as the shortcut to the root of the
drive. Some foreign keyboards have the \ key in a wierd place, so I made
it easier to access.


* Corrected more bugs in the Checkdisk routine (mostly visual), and some
others in the Convert Files (unclosed file handles, and it wouldn't
escape when the ESC key was pressed).


* Now you can convert from P00 format without having to go inside the
P00 archive. Since there is only one file in each PC64 file, there
should be no need to *force* you to go into them (unless you want to).
If you have the cursor on a P00 (or S00/R00/U00), and press F11
(Convert), 64COPY will pick up the filename from inside the archive, and
act as though you went inside to convert it. It should make life easier
for all you PC64 users.


* Enhanced the checking of C64 image files. Before, if you hit return on
a filename whose extension was .Pxx (or Sxx/Uxx/Rxx, where xx is
anything), the program would think it was a PC64 file, and attempt to
read it as such. It won't do that now.


* Corrected a bug in the Convert Files area where, under certain
conditions, an F11 would not do a Convert, but instead it would default
to Copy.


* You can now switch disks (when copying to floppy) when the floppy runs
out of room. An error is generated when the floppy runs out, and the
program will ask you if you want to switch disks. You can do so at this
point, or hit ESC to cancel. Kind of nice for floppy fills. It will also
attempt to copy directories, by creating the directory structure up to
the point where the copy failed, and then continuing on with the copy.


* Fixed a bug in the CreateImages routine where empty C64 file (T64/D64)
were (sometimes) being created in the wrong directory.


* Added confirmation for the filename in the Convert routine. If you
only convert 1 file at a time, the program will ask you for the filename
to convert it to. If you are converting more than 1 file, it will ask if
you want to generate the filenames automatically, or manually. This
eliminates the extra step of renaming the files after the Convert, if
you were doing so. If you are *copying* files, no message box will
appear at all.


* Enhanced the Filename Completion routine, so now if you press ALT-TAB,
when any panel is on, it will attempt to complete the filename when only
*1* match occurs. If there is anything other than 1 match, nothing will
happen. With the panels off, ALT-TAB and TAB do the same thing, and they
will show *all* matches.


* Added support for conversion to/from all filetypes. It use to be that
*all* files would convert to a PRG type, so now I support all types,
including Miha's memory snapshots. These snapshots should only be copied
between T64's, and nowhere else, or else you *will* lose the snapshot
filetype. Now SEQ will stay SEQ's, USR's will remain USR's, and PRG's as
well. There is really no support for REL files (since none of the
emulators support them). If you copy a REL file, it will copy all the
data, but not the side-sector info.

  *NOTE* - When copying files into a T64, since this standard really
only supports PRG and snapshot filetypes, any other filetype that you
try to copy into it will be changed into a PRG type. Snapshots will
remain as they are, but SEQ/USR/REL will be converted into PRG files.


* Enhanced the conversion of graphics in the C64 filenames to those that
are similar in the PC character set. Now when you get names that contain
graphics, they will look more like the way they would on a real C64.


* Fixed a bug in the new windowing routines... If you entered MODE MONO
on the command line, your video would disappear. Everything was still
operating, but you couldn't see it. Also, if you entered MODE 80,25 (to
change the number of lines on screen), the line change would not be
picked up, and therefore the program would still draw everything
according to a screen that is now too long.


* Re-arranged the code that determined the course of action based on
file extension when <ENTER> was hit on a filename. Before, you could
define an entry in the extension file like "T64 : FED", and instead of
opening up the T64 image like a directory, the program would do the
extension definition first. Now the order of operations is (1) DIR, (2)
EXE/COM/BAT, (3) T64/D64/P00 (4) other extension definitions.


* Added better key-checking for dialog boxes. Now, when a box is waiting
for a certain set of keys and an unexpected one is pressed, a beep will
sound, but the box does not go away. All dialog boxes will wait for a
legitimate key before continuing.


* Along the same lines, any error windows that come up ("Attention!"
boxes) will be accompanied by a beep as well, just to let you know that
something wrong has happened. (I realize that adding sounds might not be
a popular move. If you don't like it, I can alter, remove or have
different ones depending on what type of error condition has happened. I
will also add an on/off button to the future Program Configuration
window).


--------------------------------------------------------------------------


Summary of changes from beta 3 to beta 4.
-----------------------------------------

* Added full X64 support. You can do all the standard D64 operations:

        - Create (Alt-F12)
        - Convert (to/from D64's as well)
        - Checkdisk
        - Copy into/out of


* Added full multi-file T64 support, such as:

        - Create (CTRL-F12) (it will ask for how many entries the
          directory, minimum 1, maximum 1499, default 30)
        - Improved the "Readtape" routine to handle multi-file T64's.
          Can now read tapes of up to 1499 files.
        - Copy/move in/out of.
        - Delete files from in T64

        - The only thing not yet incorporated is "Check Tape". I am
          working on this (but I don't know all what to add in yet).


* Added bar graph progress indicators for all conversions.


* Several bugs fixed in the Checkdisk routine. *Note, no bugs have been
found that would cause *any* kind of corruption in the disk images. I
was very careful to make sure that no changes would be made without user
acknowledgment.

        - Fixed bug relating to updating of time/date stamp when no user
          "ok" was given. I had an unitialized variable,  which would
          sometimes be non-zero, telling the "update sector" routine to
          update. This could not cause any corruption, since it would
          only be writing out the same info that it read in. It just
          caused the time/date on the file to change.

        - Fixed bug in "Clear unused sectors" where, if the last sector
          on the disk (track 35 sector 16) was all zeros, no garbage
          would be found. Garbage can now be detected and cleaned out.

        - Fixed a bug in the "Undelete files" where if a deleted
          filename was found, but the track/sector links in the first
          sector it pointed to were invalid, a 1 block filename would be
          created anyways. Now no more phantom files are created.


* Made some changes to the file listing when in C64 mode (T64/P00/D64/X64)

        - Added starting track/sector link to the D64/X64 file listing.

        - Added quotes around the filename, so that you can see the left
          and right limitations of the filename.

        - Changed the filenames to lower/upper case. Some C64 files use
          the case difference (looks like upper/graphics when in upper
          case on a real C64). Now you can always see what the filenames
          should be like. Also, instead of using most of the IBM char
          set in place of C64 graphics chars, I translate many of the
          chars to text (either lower or upper case), removed the
          display of chars <32, and kept the use of IBM graphics with
          chars >192).

        - When in a P00 or a T64, the file size is displayed in *bytes*,
          not blocks like it use to be. Since these images are not block
          oriented in nature, I figured it was the best move. There are
          other reasons as well.


* Removed the warning at the end of a delete from a D64 that said "Even
if no errors occurred, it would be adviseable to run Checkdisk...". It
got on my nerves, so I have removed it permanently!


* Added the (I hope) correct sector interleave algorithm, so that files
are now stored as they would be on a real 1541. When allocating a file,
I find the first available sector closest to the directory track, and
then proceed to interleave the sectors by 10. There is more to it, but
it tests out ok, and seems to follow something at least similar to the
operation of a real 1541. (I changed this because some people would
convert the image back to a real 1541 disk, and if you used the linear
method of storing files, i.e. 1,1 1,2 1,3 1,4, file access would be
unbearably slow on a real 1541.)


* Along the same lines, I added the correct interleaving on the
directory track as well. It uses an interleave of 3 (instead of 10), so
it now works like a real 1541.


* Improved the reading of damaged D64/X64 images. 64COPY will now
display the list of files that it has read up to the point of detecting
the error. You do get notification that the directory is damaged, and to
run CHECKDISK right away.


* Added a "Directory integrity" checker to the front-end of the
Checkdisk routine. It looks for a circular directory (one that never
ends, it just keeps going around), bad dir t/s links, and virtually
demands that you correct them. If you do not, the Checkdisk function
will not continue, since you will likely cause more harm than good!


* DOS CHKDSK no longer runs when you are inside *any* image file. I
found it annoying when inside either a P00 or a T64, you accidentally
hit Alt-F3, and suddenly you are in CHKDSK. Now, it will bring you into
the correct D64 Checkdisk, or when in a P00, tells you there is no
Checkdisk for P00 files.


* External editors will now edit the image file you are in, if you
select the Editor function from within any image file. Before, you had
to be on a legitimate filename (directories don't count), and the editor
would try to edit the actual filename you were on, not the image you
were working *inside* of.


* Delete files routine (for deleting files from T64's ONLY) now runs
backwards. If you select several files to delete, when you actually
delete them they will get deleted last to first (bottom-up as opposed to
top-down). This change was made because it is much faster to delete
files from inside a T64 if you go backwards. I doubt this change will
affect too many people adversly.

--------------------------------------------------------------------------
