Summary of changes from release 2.12 to release 2.20
----------------------------------------------------

* Added in a Directory Editor (SHIFT-F2) for D/X64 disks. This allows you
to create customized directories with dummy entries, graphics, patterns,
separators, etc. Most of the D64 directory functions (like Swap Names and
Insert Directory Seps) are also in this function. Any directory
manipulation should now be done in here, as it is *very* convenient. You
can also use the D64 HEX editor for the more "fine-tuned" work. See the
help screen when in the Editor for some more info.


* Added in a simple macro capability on CTRL-F9 (Record Macro) and F9 (Play
Macro).

  1. When CTRL-F9 is pushed, a window will appear where you can rename,
     delete or select which macro to work with.  You can use F1 to edit the
     name, F8 to (re)record a macro, or DEL to remove the whole macro (name
     and all).

  2. If F8 is selected, you are now in "recording" mode. Up to 175
     keystrokes are recorded. Use ESC to stop the recording.

  3. A description of the macro must be entered if you try to record a
     new macro, or if you press F1 to edit the description. It can be up
     to 49 characters in length, which should be enough!

  4. To execute a stored macro, select it in the CTRL-F9 window by
     positioning the moveable bar over it and pressing the RETURN key. Then
     press F9 to execute. Once a macro is selected, it will remain
     selected, until you actually exit the program.

  5. You will be notified (by a flashing notice reading either "Macro
     Recording" or "Macro Playing") when something with macros is
     happening. If, at any time during the macro, an error window comes up
     or an error beep is supposed to sound, the macro will be stopped.

  6. All macros are stored in an external file called <name>.MAC. If the
     file has become corrupted, some or all of the macros might be lost.
     You will be notified when this has happened.

  7. One trick, when recording a macro and you want it to auto-repeat, is
     to press F9 at the end of the key sequence. This will cause the macro
     playback routine to re-run itself, making it look like the
     "auto-repeat macros" configuration option is set.

  8. Another trick is to chain macros together, also using the F9 Play
     Macro's key. Record Macro#1, and at the end of the sequence press
     CTRL-F9, select the next macro (using numbers 1-5 rather than arrows
     to move the bar around), press return to set it, and press F9 to play
     it. Now when you play macro #1, it will also execute the CTRL-F9,
     select and Play Macro #x sequence. Doing this, you can chain all 5
     macros together, allowing for a macro of almost 860 keystrokes.


* Added four more Configuration options, and made some more changes to the
Configuration code:

  1. Auto-Generate unique name. When doing a Convert Files, even with
     the "Auto-Convert Filenames" checked, you might still get a notice
     when you attempt to create a file that already exists. This will skip
     the warning and generate a filename based on the original name, but
     with a modified last 3 characters. When the conversion is done, you
     might find some wierd looking filenames on the destination drive.
     Simply change them to something a little more normal.

     NOTE: This option only applies to the Convert Filenames routine, not
     the DOS copy/move routines.

  2. Auto-Repeat Macros. This will re-run the macro after it has completed.

  3. "WipeFile" during Delete. This will *permanently* remove a file by
     overwriting it with a pattern, resizing the file to a length of 0
     bytes, eliminating the filename, then removing the file itself. You
     can (if you care to try) recover the file using your favorite recovery
     tool (Norton UnErase), but it will be of zero length, and its contents
     will be *completely* destroyed, and hence no good. You will be warned
     if this is set and you try delete any files. I have tried to include
     this option in *every* instance if file removal, and warn you when it
     might happen.

  4. Case-Sensitive Searches. This option applies to the Editor/Viewer/D64
     Editor Search (F5) and Search/Replace (F6). You can set what type of
     case sensitivity you want, from no, ask and yes.

  5. Completely redesigned (again!) the configuration screen, but now
     options are put together in their appropriate area. I also removed the
     "DOS CheckDisk command" option, as I saw no need for it. (I also had
     no room to put it back on the config screen once I redid it!).

  6. Increased the config options to 150 (but many are not used yet). This
     means that I have again changed the INI layout, and the old one is no
     longer valid. You will have to change the defaults back to the way you
     like them.


* Added "Change D64 Attributes". It is under CTRL-A, the same as the DOS
change attrib's function. It will do the changes either file by file, or
tagged.


* Several fixes/changes to the Editor:

  1. Fixed bug in keypad * paste function.

  2. Changed ALT-F5 to "Find New" and ALT-F6 to "Replace New", rather than
     saying "Find Again" or "Replace Again". It seemed to confusing to say
     "Find Again", when it did not really do that.


* Several changes to the HEX Editor/Text Viewer:

  1. Removed F7 "Search Again" feature and made ALT-F5 "Search For Text
     Again", as well as ALT-F6 to "Search For HEX Again". F5/F6 will now
     automatically do the search again without asking.

  2. Added the ability to Tag blocks of data in the HEX editor. Now with F7
     (Tag Start) and F8 (Tag End), as well as ALT-T (Adjust Tag Size), you
     can select what you want to save to another file.

  3. Added the ability to save a tagged block in the HEX editor. If you
     have a file which is composed of several binaries, and it needs to be
     split, just tag the area and save it out to another file.

  4. Added a simple copy/paste to the HEX editor. Copy is on ALT-C (and
     ALT-X), Paste is on ALT-V, and Clear Paste Buffer is on ALT-Z. The
     copy buffer is limited to 4096 bytes.

  5. The F9 "Goto Address" will default to the address of the first byte of
     the tagged region. If no region is defined, no address will be
     displayed. This can be useful if you want to go back to where you had
     tagged something, or where the search had found something, and you
     have since moved the displayed area somewhere else.

  6. The Text Viewer will now try to open *any* file in shared access mode,
     but if this is not possible, then it won't display it. If you try to
     HEX edit a file, it will try to open it up in read/write shared access
     mode. If this doesn't work, then it will try it read-only. If this
     still doesn't work, then the file cannot be displayed. This change
     will make it possible to view files (like active log files) which are
     currently opened up by another application (like the OS).

  7. Added an address and offset line to the top of the HEX display, so
     you can tell what byte you are on when in the HEX editor.

  8. Added case sensitivity to the ASCII searches.


* Changed Edit mode in D64 HEX Edit so that ALT-keypad values can be
entered. Now, if you need to add a ASCII 10, 27, 13 (any normally
non-printable character), you will get it. The normal keys (ESC, Return)
are still handled normally.


* Rethought the Search and Search/Replace in the D64 Hex editor, in order
to make them all the same. Now they are just like the Viewer/Editor/HEX
editor. You have F5 for search, ALT F5 for changing the search string, F6
for Replace and ALT F6 for changing the Replace string.


* Changed the CTRL-RETURN code for appending filenames to the command-line.
Now, it will insert a space automatically, if no space would precede the
filename.


* Cleaned up some cases where file-handles would be left open, eventually
making the program unuseable because files would not be able to be opened.


* Moved the Change D64/T64 Label from ALT-F10 to SHIFT-F10. It fit better
into the scheme of the SHIFT options.


* Changed the Copy File code so that files are opened in "shared" mode,
allowing you to copy "busy" files (like OS/2 system files, DLL's etc).
Before, the program would simply inform you that the file couldn't be
opened for read and continue on with the copy/move.

  Note: this change does not mean that *any* busy file can now be copied.
  If the file is opened for "exclusive access", nobody else can touch it,
  regardless of the "sharing" options.


* Fixed the 64COPY.EXE code for the new options added in version 2.12 (and
earlier). I neglected to set the defaults to the proper values when you run
the program for the first time. The keyboard settings were too slow, "Save
settings on exit" was not set, and a few others were out of sync. Most of
the others incorrect settings were not significant.


* Removed many of the "error beeps" that were present. This was done to
facilitate the running of Macro's, which would stop when *any* beep
occurred. Now when an error window (red window) comes up, when you overrun
the command-line or a dialog comes up which is really important, I will
give the beep, but nowhere else. This means that you shouldn't have to turn
off the beep in the configuration window any more.


* Pressing the RETURN key in *any* area of the Configuration window will
exit the window, with changes intact. ESC still does this as well.


* Pressing 'N' when asked if you want to overwrite the existing file when a
filename collision occurred would rename the file anyways.


* If an archive file (D64/T64/P00 etc) is busy (open by C64S/PC64), then
you will be informed that the file cannot be opened when you try to enter
it by hitting return on it. This really comes into play under a
multi-tasking OS when you are sorting software on D64 images, and this
program wouldn't say a thing when it couldn't open the image due to PC64
having it already open.


* Improved error reporting in the ZipCode to D64 code. Now it will report
if track/sector values are bad or if an EOF occurs too soon. Before you
would be told "Unable to read ZipCode part!", which was not too useful..


* Moving files from a D64 image was broken, only the first file would be
deleted, the rest would stay.


* You can now copy/move single files within the same directory, as long as
you rename them first. If you don't rename them, you will still get the
"Can't copy/move to the same directory" error.


* When cancelling a Print Files job, a form feed is now sent to the printer
to eject the last page.


* Changed all the references in the Create T64 code from a default of 30 to
what is defined on the Config screen, as it should be.


* Starting the Editor (F4) on either a directory or a ".." file will start
you off editing a new file.


* The file created when the "Log DOS Copy/Move Errors" is active was
recording the destination directory (instead of the source directory), and
was also including the formatting codes in the error messages.


* Deleting files from D/X64's will now remove REL files properly. It was
*very* broken.


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


Summary of changes from release 2.11 to release 2.12
----------------------------------------------------

* Added six more Configuration options:

  1. Choice between tall (�) or short (_) cursor.

  2. Default tab width for the Viewer/Editor.

  3. Keyboard repeat delay time (none to long).

  4. Keyboard repeat speed (fastest to slow).

  5. Mouse tracking speed (not very useful yet!)

  6. Save/don't save INI settings on exit.


* Made more changes to the screen saver...

  1. Added "hot corners" to activate/deactivate the screen saver. The top
     right corner will activate the saver (after about a 1 second delay),
     and the bottom right corner will disable the saver. Also, now the
     mouse movement is sensed, and the saver will be deactivated when the
     mouse is moved.

  2. Added "Blackout" screen saver. It simply clears the screen and
     displays randomly-selected pre-programmed phrases at random locations
     on screen. (If you have any other 'cute' phrases, mail them to me.)

  3. Included checks for low memory conditions, and if they exist, the
     screen saver is disabled.


* Added in a text file editor. Right now it is limited to files of <63k in
length. Attempts to edit files larger than this will result in only the
first 63k of the file being loaded. It is modelled rather heavily after
Qedit, one of my favorite editors, but there are some differences. See the
HELP window for the details on what keys do what. You can also use the
ALT-KEYPAD combinations to enter unusual ASCII characters you might need
(i.e. ALT-1-0 for a linefeed, ALT-2-6 for an EOF etc).


* Added in the total entry count into the T64 status bar. Now it says "xx
entries free (xx total)"


* Added a "time estimation" to the DOS copy window. It is an approximation
of the time remaining to complete the copy/move operation. It is not
terribly accurate, but it is a start. I doubt anyone (but myself) will find
it useful.


* Added a "cancel" option to the exit window of the Disassembly screen. If
you accidentally hit ESC (or F10), and you are presented with the "Save
.OVV file" dialog, you can cancel back the the edit screen by hitting 'C'.


* Added Insert key repeat (finally!). This should work under *any* OS (DOS,
Win95, OS/2). I used a very different method than Star Commander, so that
the OS/2 limitation was avoided.


* Files from inside a T64 image could not be Moved (F6) out, except for the
first file. All the rest would appear to be copied, and then the error
"Can't find filename!" would appear. In actual fact, the remaining files
would not be copied (although they appeared to be) but were trashed.


* Removed the "Undefined" phrase from the unused user menu entries. Now
they are just empty, so it is easier to see what is defined.


* Changed the Shift-F6 rename function to display a little more info (old
filename) and what type of file/dir you are renaming.


* Changed the Search (ALT-F7) dialog and how it finds matches. If you enter
"DE*" for a search string, now it will add ".*" to the end, to make it find
both files and directories.


* When the program exits, the original video mode (lines/screen) will be
restored, just in case this is important.


* The Insert Separators (SHIFT-F7) would fail after ~10 insertions. Fixed.


* You are now alerted with the error window "Can't enter directory" when
you try to go into a locked/bad/network-protected directory.


* Fixed another *major* bug. If you are moving files to somewhere on the
same drive (not copy or move to another drive), you could end up losing
some of the files or directories. It happened here in the shop (rarely) and
*finally* happened to me.


* Error messages generated during a copy/move were inadvertently removed
some time ago. They have been restored.


* Changed the Search dialog so that in order to cancel a search, you have
to hit ESC, otherwise the search will continue. It use to be "hit RETURN to
continue" which seemed a very silly thing to do.


* Removed my dependancy on the Watcom GRAPH.H library which provided the
mode switching capabilities (25/43/50 line modes). This provided a savings
of 18k of memory, which can be utilized for the needs of the internal
editor, under low memory conditions.


* Changed the maximum number of files displayable from 1500 to 1000. *Very*
few directories ever get past 1000 (even >500 is unusual, except for
Netscape cache directories). By reducing down the number, ~30k more memory
has been made available.


* Viewer (under certain circumstances) would use up all the available
"window handles" (an internal program limitation), thus rendering the
program unuseable. Attempts to quit at this point would crash the system.


* Both viewer and editor could be executed when no panels were visible.


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


Summary of changes from release 2.10 to release 2.11
----------------------------------------------------

* Added File Viewer on F3 and a HEX editor on ALT-F4. You can do the
following things:

  1. You can execute the BASIC UnLister, 6502 Disassembler, Print Files
     and the external text editor (the shortcut keys are defined the ALT
     menu).

  2. Switch Display Modes (F12) between Text (CR/LF/TAB) and Raw (no
     CR/LF/TAB translation). The Display Mode setting is retained if you
     exit the viewer.

  3. Includes a HEX viewer/editor (ALT-F4) as well.

  4. Display (F11) 'blank' IBM ASCII characters 0, 32 and 255 as '�',
     which would would normally not be visible, and CR/LF as a ''. The
     "Show Blanks" will be retained, so you can set it once and always
     view files with that setting.

  6. Search for text(F5)/HEX(F6) strings. F7 allows you to re-search for
     the same thing you looked for previous, without having to answer
     any dialog boxes.

  7. If you don't want to use a particular internal editor/viewer, you
     can specify that in the Configuration (ALT-F6) window to use your
     externally defined programs instead.


* Added full color to all the saver modules, and also made some other
small changes. Some of the modules would never draw to the edges of the
screen but would be short by one line (on the right and bottom).
Kaleidescope was drawing off the bottom of the screen (one line too
far), but I don't think there is anything in that area of memory which
would cause problems. They also work in Mono mode.


* Added in Filename Swap on Shift-F5, so that now in D64's *only* you
can re-arrange the filename order to whatever you like. It is basically
a manual method for sorting a directory. This feature won't ever work on
T64's (in this program) because of the way I display the T64 directory.
It is sorted and displayed in a special way, and swapping the names
means the displayed directory order will not change at all.


* Put the clock back in most of the full-screen operations like
CheckT64, CheckD64, DeTokenizer, Hex Edit, Viewer etc. For some reason,
I decided to turn it off and I should not have.


* Rewrote the Change Attributes (CTRL-A) command. Now, it looks more
like the normal Norton screen, with set and clear bits.


* Re-wrote the Configuration routine to make it easier to add in more
options, and moved a few things around. I also added in some more
options:

   1. Three options to select the use of internal/external
      editors/viewers. Hex Edit and Text View all default to "internal",
      but the Text Editor still defaults to "external".

   2. Clock on/off.


* Improved low-memory checking. If you are running low on memory, most
operations which require a chunk of memory (more than 8k) will fail,
reporting the condition. If the windowing system cannot allocate enough
to store the window contents, the program will quit. There are a few
other cases where the program will quit under low-memory, but you will
be informed when those happen.


* Added a "Sample Window" display (F7) to the color configuration. Now
you can see what a color combo will look like with a window and sample
text.


* Added in a % indicator into the Disassembler, so now you have a fairly
accurate indicator of how far you are into the file.


* Changed the look of the clock from all numbers "xx/xx/xx" to "Month
day/year".


* The "title" bar ("Hex Edit...") in the Hex Editor was not being
removed when you exited the editor. Also the track/sector locations were
being placed down 1 line too far when I went to Goto (F9) to another
t/s.


* I would glady inform you that the disk/file was write-protected, but
did really poor checking to prevent you from changing things.  This
applied to almost all routines. I modified all the routines which must
know about write-protection, and now lock out all things which would
cause a modify.


* Fixed a *major* bug in the T64 sort routine where the list was not
likely being sorted at all due to a variable not being assigned a value,
but was being used as a parameter in the sort routine. I'm suprised no
one saw or reported this one, but its gone now.


* Found another T64 bug, this time in the CheckT64 routine. I was once
again using a variable I had not assigned a value, and it would crash
sometimes (quite badly when it did!).


* Had to fix the check for "Moving to the same directory" (F6) again,
since it would not catch all cases. I could still cause it to fail, thus
deleting the file I was attempting to Move. Note this only applied when
F6 (Move) was selected, not F5.


* Other small improvements/changes all over the place.


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


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

* Added in almost complete support for LNX archives. They are now
treated just like a T64 (multiple files) except that you cannot delete,
create and CheckLynx them. Simply hit RETURN on them to go inside, and
you can now copy/convert to any other file type. This should make
conversion from LNX to any other filetype (especially T64's and D64's) a
breeze compared to before.


* You can now convert ZipCodes to a D64 directly from *inside* the LNX.
There is no longer any need for the intermediate step of converting them
to DOS binaries first. ZipCodes can be converted from either a DOS, LNX
or T64 archive, but not from a D64 archive.


* Added one more Configuration option... "Pause on return from shell".
Now, you can specify whether you want 64COPY to say "Press any key to
return to 64COPY" after executing an external program/command. It is set
to default to *not* pause.


* Made the preservation of your color configuration automatic. Now, when
you quit, the 64COPY.CLR file is created, which contains the color
configuration that you presently have. If I distribute a later version
where the .INI file has changed (which happens a lot), the program will
now see that the INI file can't be used, and will attempt to load the
colors from the .CLR file. You can still save the file when in the Color
Config window, but it will always be saved when you exit 64COPY.


* Removed the program name/author/email info from the CTRL-L (Drive
Size) command and moved it to the first page of the Help Screen (F1).
Now you can tell what version you are running besides from the opening
dialog box).


* Changes to the Disassembler:

  1. Increased the bytes/line for .BYTE tables from 5 to 8.

  2. Added the name "HLT" in place of all the "???" that the opcodes
     ending in 2 (02, 22, D2) would produce. Almost all of the x2
     opcodes crash the 64, so the code HLT seemed to fit. This only
     works when Illegal Opcodes is set on.

  3. Added a dialog to ask about the starting address. Most binary files
     have as the first two bytes the load address (in lo-hi format). I
     look at these and ask if they are the starting address. If you say
     yes, they are then always skipped. If you say no, they will be
     included in the disassembly.


* Changes to the BASIC detokenizer:

  1. Altered the way the screen gets drawn. Sometimes, you would get one
     too many lines written, and the top line would scroll off. Now,
     this won't happen.

  2. Added better support for "List hiding" techniques, where the author
     tried to prevent you from seeing the BASIC listing.

  3. Added "Load Address" and "Filename" display at top of screen.

  4. Added output filename changing, so that the source file won't get
     overwritten by the BASIC output file.


* Changes to the Screen Saver:

  1. Added screen saver "Game of Life". I hope you have seen this one
     before since it is rather common. Very interesting patterns can
     develop.

  2. Added another screen saver "Kaliedescope". Its still in being
     developed, and will improve.

  3. Altered the way "Snake" works. Now there are up to 20 snakes, and
     when they get stuck, they have up to a certain amount of time to
     get free, or else they die and disappear. They don't crash into
     each other any more, but rather will avoid each other. Much more
     enjoyable to watch.

  4. When the screen saver switches to another module, it will not run
     the same one twice in a row, and all of them will be run without
     repetition.


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


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.

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