
Summary of changes from release 2.21 to release 3.00 b4
-------------------------------------------------------

This is a very major release, encompassing changes to virtually *all* the
subsections of the program. It also includes the addition of more user
defaults, which means the .INI version has changed.


* The program is now in overlay format. This means that you cannot compress
it with DIET, LZEXE, PKLITE, etc.


* Major visual changes to the windows/dialog boxes:

  * Added the mouse. Left button is for selection, right button is for
    cancelling windows, or tagging/untagging files in the panels.

  * Rewrote the way I define/draw/remove windows. This change affected
    *all* the windows, making each one completely configurable (by me).

  * Wrote a generic button controller, to handle all the [ ], ( ),
    OK/CANCEL, text/numeric input and list items. Almost all of the window
    have been converted over, but most have not been checked/tested.

  * With the inclusion of a button controller, I now support OK/CANCEL at
    the bottom of most windows, a la Norton Commander. Even though I have
    removed the "y/n/c?" section from all dialog boxes, most of the time
    you can still press 'Y' or 'N' where you use to, but there will be
    exceptions. You can also select the option with the keyboard. The ESC
    key will still cancel the dialog.

  * Added in margins on the windows (Confirmation windows)

  * Added in single/double-width window borders

  * Added in a "shadow line" to the windows for the "3D" depth look.

  * Moved most of the "confirmation windows" ("Are you sure...") to the
    confirmation window color (see Color Configuration for more)

  * I can now have multi-color text on one line (see the Switch Panel Drive
    text for an example)


* Added drop-down menus on (mouseclick at the top of the screen, or F9).
They speak for themselves! Some of the new options include:

   * Panel sort type/direction
   * File display, tag filters and panel style for each panel
   * Configuration
   * Save settings
   * Fkeybar on/off
   * Path prompt display on/off
   * Full screen or short (60% of screen) panel display


* Added in a PETASCII to ASCII text converter on SHIFT-F9. Simply select
the files you want converted, and start. It only works on DOS binary files,
so convert the files you need from any emulator format (D64, P00) to DOS
first. Remember, the converted file will be created in the opposite panel.
You can either allow the converter to use its default "Auto-Detect" mode,
or you can override the setting by selecting another conversion type.

  It works on several different types of text, and will auto-detect what
type of conversion to use. The conversion type will be displayed in the
progress indicator.

  * Auto-detect format - This will analyse the text, and determine the best
                         form of conversion for you. This is always the
                         default.

  * Mostly DOS text - the detected text appears to be already in DOS text
                      format, in the hex range of 60-7F (lower case),
                      except possibly for upper case and CR and CR/LF
                      codes. The text will not be converted, except the CR
                      will be converted to CR/LF.

  * Standard PETASCII (40) - This is the normal style of PETASCII,
                             contained in the hex ranges of 40-5F (lower
                             case) and C0-DF (upper case). Text will be
                             converted down to the normal ASCII ranges,
                             along with CR and CR/LF conversion.

  * Low PETASCII (00) - This is text stored as screen pokes, occupying the
                        hex ranges of 00-1F (lower case) and 40-5F (upper
                        case). This format has the special problem of using
                        text in the range usually reserved for CR and
                        CR/LF. The codes used for CR and CR/LF vary between
                        each word processor, but I have attempted to find
                        all the typical codes used.

  The conversion will not be perfect, as it only converts the text portions
of the data, and not the control codes/graphics (except CR). Linefeeds (LF)
will be discarded, and re-inserted. This will likely result in unwanted
characters mixed in with the converted text. PaperClip files tend to be bad
when it comes to having extra characters, as the files include a lot of
control sequences throughout. Each word processor uses its own method of
storing files, including special codes.

  Some files are stored in a "40 column" format, where instead of a CR used
to end a line or a paragraph, spaces have been used to format the text to
fit a 40 column screen. When converted, these files do not display
properly, and will need some editing to get them to look reasonable.


* Added three new keywords to be used in the command area of the EXT file.
Use these where you would normally state what program to run. This way you
can use internal routines, without the delay of loading the program back
in. Note that the case of the keywords is not important. Also, the commands
listed are in order of execution priority. If a command contains two
specials, i.e. '@hex @edit', then the '@edit' command will be executed as
it has a higher priority than the other, regardless of the visible order.

  '@EDIT' for the internal text editor
  '@VIEW' for the internal file viewer
  '@HEX'  for the internal hex editor


* I changed the way I save the settings when the program is exited. I still
save the INI, but I moved the User Menu information to the new .MNU file,
and I also save the colors to the .CLR file, rather than saving them in the
INI as well. This makes it easier for me to make changes to the INI without
having you lose your color configuration and/or user menu definitions.


* Changes to the panel display:

  * Added date/time to the panel display, and therefore have removed the
    displaying of the file attributes. Attributes can still be viewed and
    changed from the Ctrl-A function.

  * Files now displayed in lower case, directories in upper case.

  * File sizes in D64 archives will now be displayed with their full value,
    and not as "999" if they are over 999 blocks.

  * Changed the File Info area to give all the info about what file the
    hilite bar is on (the same as that given in the panel)

  * Added a "Turn off panels" click button to the top-left of the screen.
    Clicking on this button will remove the panels, or bring them back.

  * Each panel can now have the "Disk free" and "File info" lines turned
    off, from the Panel Setup menu (under Left or Right menu)


* Changed the User Menu to add more '!' features. This makes the '!'
options the same as Star Commander, with some other additions. No longer
will just using '!' include both the filename and the extension, they must
be specified as follows.

  '!.!' - include full filename under the hilite bar, with extension
  '!'   - include just the filename under the hilite bar, no extension
  '!F'  - same as '!'
  '!E'  - include just the file extension of the file under the hilite bar
          (without the preceeding '.' character, you have to add this
          yourself)
  '!#'  - include a list of tagged files from the the active panel on the
          command line
  '!@'  - generate list of tagged files from the active window, if any
          tagged, and put them in the 64COPY.LST file, contained in the
          same directory as 64COPY is executed from.
  '!A'  - include active archive file (i.e. BLAKHAWK.D64) if applicable
  '!:'  - include drive letter only
  '!\'  - include path only, no drive letter
  '!D'  - include drive and directory of the active panel (without the
          ending '\' character. You must include this yourself)
  '!!'  - include a '!' character

  These options can be combined in any way you need. i.e. "pkzip !.zip @!@"
will do a PKZIP on the filename that the hilite bar is on but with the
extension ".zip" instead, and include the list of tagged files in
64COPY.LST. You can also stack the commands right next to each other like
"!D\!A\!" to concatenate the active directory, active archive file, and
active filename, with separating '\' characters. Note that the case of the
command ("!F" or "!f") is not important.


* The EXT file also supports the '!' commands above, the same ones as the
User Menu. However, if no '!' commands are included in the command area,
the FILENAME.EXT is automatically added in. If you include *any* '!'
commands in the command area, the FILENAME.EXT will *not* be automatically
added, and the '!' commands will be expanded as specified.

  Note that combining the '!' and '@' commands are pointless. If a '!'
command is on the same line as a '@' command, the '@' command will take
precedence, and the entire command line will be discarded in order to pass
the FILENAME.EXT to the internal function.


* Removed the really annoying time lag when starting the program. I owe a
BIG THANK YOU to Joe Forster (author of Star Commander), whose theory as to
what was causing the problem was right on the money.

  He investigated the Borland Pascal "crt" routines and found that the
DELAY function would actually pause the program for about 1 second before
executing the main code. It was timing how many operations could be
executed in 1 second, and basing all DELAY values from this. Once I removed
all useage of the Watcom DELAY function, the execution delay vanished.


* Because of the removal of the Watcom DELAY routine, I now employ several
different methods to handle timed delays, but there is very little
noticible difference from the old method. You will see a dialog box come up
when the program is first run saying "Calculating first pause", meaning
that the delay value needs to be calculated, and it is doing do so now.
This *should* only happen when the program is run for the first time, or
the INI version changes.


* Changes to the D64 Directory Editor:

  * Items are no longer left tagged after a move/duplicate/lock toggle

  * Numbers entered into the RelTr, RelSe or RelLen areas would not be put
    into the correct location of the directory and would come out very
    different than what was entered.

  * Removed functions "Clear Entries" and "Insert Blanks" as they were
    unnecessary.

  * Removed display of "Tagged Items" and "Max Entries" from the status
    bar, and replaced them with "Blocks Free" count and "Soft Write
    Protection" status. The maximum number of the entries in the directory
    is now the length of the list.

  * Moved "Duplicate Entries" to F6.

  * Added "Save Changes" to F4.

  * Added "Write protect files" toggle on F9.

  * Added detection of read-only images. If the one you want to edit is
    write-protected, you will be allowed to view only.

  * Added toggling of "soft write-protect" on Alt-F9. Soft write protection
    acts very similarly to hardware write-protection in that any write
    attempt to such a disk (on a 1541) will result in an error message.

  * Added UNDO feature on ALT-U.

  * Added user-changeable "Blocks Free" on ALT-F1. This allows you to enter
    a "blocks free" value up to 8670.

  * Added Set Message capability on ALT-F3. With this, you can type in a
    text message, and it will be put into the unused area of the BAM block,
    starting at position $B0. The message can be up to 80 characters and
    will automatically be converted to PETASCII. It will also be retained
    between edits, so it only need to be entered once.

  * Added in Get Message on ALT-F4. With this you can retrieve a message
    from the $B0-FF area of the BAM sector.

  * Added View Message Area on ALT-F5.

  * Any changes made (Soft-write, file lock/unlock, editing) are not saved
    until the editor is exited. Then you are asked if you want to save
    changes.

  * Changed Clear Columns (F2) to Set Columns. Now, you can change any
    column to any value you want, including filenames.

  * Values entered into blank entries will cause the entry to be cleared
    out first, removing the old entry info.

  * Out-of-range values for the SIZE field will no longer be displayed as
    negative integers.

  * Added in a link to the BAM editor on ALT-B. You will be asked to save
    your changes first, and I would recommend you do so, as once the BAM
    editor is finished, the Dir editor will re-start, losing all your
    changes. The Dir editor is totally dependant on the BAM, and changing
    it means I must re-start it.

  * You can now enter file sizes up to 65535 (no more 999 block limit)

  * Added checking for bad BAM's (incorrect "blocks free" count), and if it
    is found, you will be warned about the dangers of editing the BAM.


* Changes to the Text Editor:

  * The Text Editor would not paste text at the cursor position if you were
    on a blank line. It would go the beginning of the line in that case.

  * When saving a tagged block in the Text Editor, the displayed filename
    of the file being edited was being changed to the name of the saved
    block.

  * The Text Editor would allow you to save files/tagged blocks without
    checking if the filename already existed. Any existing file with the
    same name would be overwritten.

  * You can change the line width for Block Format inside of the Text
    Editor (Alt-F11). The change is only temporary, and will not be saved
    with the normal settings.

  * The Fkey bar will still show up at the bottom, even if it is *turned*
    off from the main menus.

  * Changed the screen jump from 30 to 5 when exceeding the right limit of
    the screen.

  * The Cut Text (KEYPADMINUS) function was simply removing the text,
    without remembering it for future pastes.

  * Files with sizes exact multiples of 2048 (i.e. 18432) would not load
    properly (i.e. they would fill up the edit buffer, then stop loading).

  * Changed the Search/Replace "text found" box, and I now show the "found
    text", highlighted, at the top of the screen.


* Changes to the Macro function:

  * A word of warning... DO NOT RECORD ANY MACROS WITH ANY MOUSE INVOLVED.
    It will not cause any *problems*, but simply holding down the mouse
    while recording will generate ~100 macro steps/second. This is an
    unavoidable side-effect of the new mouse routines, and it CANNOT be
    fixed or changed.

  * Added a version number check to the .MAC file. If the version in the
    MAC file is wrong for the program, the file will be ignored. 

  * Increased macro key-step count to 200 (from 175).

  * Added in future expansion of mouse movement/clicks into macros.

  * Removed the F9 "Play Macro" key and moved the function to the new
    CTRL-F9 all-encompassing Macro function. *All* macro functions now run
    from there. This allows for the use of the F9 key for the pull-down
    menus (I knew this would happen eventually!)

  * When recording a new macro, you are no longer *forced* to enter a name.
    You can enter it later. All names, if none entered, will default to the
    number of the macro, i.e. "Macro 1".

  * Pressing ESC during Macro recording will no longer stop the recording.
    The only way to stop recording is to call up the Macro window and
    specify the F12 "Stop Recording" key. That key sequence will not be
    recorded.

  * Error windows that come up during a Macro recording will no longer stop
    the recording. An error during *playback* will stop execution, along
    with pressing ESC during *playback* will still stop the execution.

  * The menu bar now displays the macro number and keystroke count of the
    macro being recorded or played back. This way, you can see when you
    might be reaching the keystroke limit of the present macro.

  * Macro Record chaining is a little different. If you want to record from
    one macro to another, record the macro you want, call up the Macro
    window, move to the new macro you want to record, and press F8 (Record)
    again. This will start recording at the new macro number, and chain the
    previous one to the new one. If you point the macro to itself, you will
    start recording overtop of what you have already recorded.

  * Macro repeating is a little different as well. This is where you want
    to record a macro, and have it *loop* back to itself or another macro.
    Record the macro(s) you want, call up the Macro window, move to the
    macro you want to start repeating from and press F9. This will point
    the present macro to the new one you specify, and stop the recording.
    If it points to itself, then that macro will loop.

  * In RECORD mode, the F1 (Change macro name), DEL (Delete macro) and F5
    (Set Loop) keys are not allowed, and are removed from the list of
    active keys in the Fkey bar. As soon as RECORD mode is off, the keys
    are active, and will be shown in the Fkey bar.

  * Added AUTO-CHAIN macros. This allows you to start recording at macro 1,
    and when you reach the end of that macro, the program will
    automatically point that macro to the next one, and start recording at
    the next macro. When the last macro (5) is reached, recording will stop
    like normal.

  * Each macro is displayed with the number of keys that have been
    recorded, so at least you know if there is something defined.

  * Added Macro Execution Speed. With this, you can control the speed of
    the macro playback, from fastest (no delay between steps), medium
    (average speed) and slow (long delay between steps).

  * Added in display of chained macros. If one macro is chained (looped) to
    another, this will be displayed right after the step count. i.e. "170
    steps, jump to 3" would mean the macro is 170 steps (or keys), and when
    it finishes, it jumps to macro 3, and continues.

  * Added in Set Macro Loop (F5). This allows you to set/unset a loop on a
    single macro, to make it auto-repeat.


* Changes to the Configuration screen:

  * Completely re-wrote the configuration window. I grouped what I consider
    to be the common buttons/toggles together. ALT-F6 now brings up a
    selection list of all the configurable areas, like that below:

      * Editors/Viewers
      * Mouse/Keyboard
      * Visual Options
      * Emulator Options
      * Macros
      * Screen Saver
      * Miscellaneous

  * Removed all the annoying warning messages from the Configuration
    window

  * Added "24 hour clock" to the Visual area, to display the time in
    military (0-23 hour) mode.

  * The following options have been moved to the menus...

     * Clock on/off
     * Tall cursor
     * Panel file filter options (each panel now has its own)

  * Added "Left-handed mouse" and "Mouse click speed" to the mouse config
    area.

  * Added new options for Macro recording and playback...

     * AutoChain Macros - to record one macro spanning several physical
       macros.

     * Macro playback speed - to adjust the speed that macros get
       executed.

  * Added option "CheckD/T/Zip repair", settable to "scan only" and
    "scan/query". If you set it for "scan only" you can scan D64's, T64's
    and ZipCode files very fast, simply getting a dump of what is found, no
    questions asked. If you select "scan/query", you will be asked all the
    normal questions when a problem is found.

  * Added "Remove menubar when panels off" to the Unusual settings area.
    With this enables, turning off both panels (by ESC, CTRL-O, CTRL-F1/F2)
    will remove the menu bar at the top of the screen as well. It will also
    add the string "64COPY" to the prompt display, letting you know you are
    still in 64COPY.

  * Added under the Screen Saver window the ability to disable certain
    saver modules and adjust the time before switching modules.


* Changes to the Color Configuration window:

  * Completely rewrote the color subsystem. Since I now have 75 colors
    defined, I grouped the colors together into common groups, and now you
    can edit them from there. There are at present 7 groups on the main
    window... just select the group you want and hit return to display the
    colors.

      * File display panels (11 colors)
      * Main dialog windows (9 colors)
      * Confirmation windows (9 colors)
      * Error windows (6 colors)
      * Function windows (DirEdit, Text Edit, etc) (7 colors)
      * Pull-down menus  (6 colors)
      * Miscellaneous (5 colors)

  * Changed the names of some of the Fkeys in the Color Configuration
    window to make more sense about what they do.

  * Added ALT-F5 (Decrement forground color) and ALT-F6 (Decrement
    background color)

  * Added a confirmation asking about using the new colors when exiting.

  * Colors which I thought should be together will have a number beside
    them, indicating which group they belong to (in that window). If you
    adjust the colors, and have "Color Synchronize" on, then they will all
    change at the same time.

  * Added in Color Synchronization (F11), where when you adjust the
    background colors, all the background colors that group will be kept
    the same. It's default is always "on".

  * If you set a color so as the text is invisible (same foreground and
    background color), you will be asked if this is what you want when you
    exit the edit screen.


* Changes to the BAM editor:

  * Added in BAM Edit to the main Fkeys on SHIFT-F11. Now, instead of
    having to go into the D64 Editor, or even go into the D64 image, you
    can edit just by positioning the cursor over the filename in the
    panel.

  * Added in checking/warning for bad BAM's (bad "blocks free" count).

  * Added filename display into the BAM editor (under the "Blocks Free")

  * Added in "Set User Blocks" in the BAM Editor (F2)

  * In 25 line mode the Fkey bar is no longer visible, but help is still
    available on F1. This way, I can still include the title bar and a
    header line.


* Changes to the clock display:

  * Shrunk down the clock display (removed the year portion), and fixed the
    color problem if you turned off the clock when the clock color was
    different from the top menu.

  * The clock was not updated when exiting certain full-screen functions.
    The time from when you entered the function would be displayed
    instead.

  * You can now display the clock in "24 hour" mode (military/European
    time). The option is under the General Config, visual area.


* Changes to the File Viewer / Hex Editor

  * Files edited in the HEX editor were not having their date/times
    modified, due to the way I was opening the files (in shared access
    mode).

  * You should be able to now *display* almost any file you need to (except
    those opened in single-access mode). I think I finally figured out the
    permissions needed for SHARED file access.


* Removed CTRL-F12/ALT-F12 (create T64/X64) and moved them to the new F12
"Create Archive File". From there you now select the archive filetype you
want to create. This way I can add the creation of more archive types much
more easily (like LNX).


* Increased the number of internal system colors to 75 (from 20). This
should provide enough colors for future expansion. This means the old .CLR
(used as a color backup) and the .INI files are no longer valid. What I
have done is re-wrote the entire color sub-system, defining a standard set
of colors for each function (menus, panels, message windows, confirmation
windows, error windows, function windows, and miscellaneous), which can be
altered. This separates the main panel colors from all other functions.


* Added detection of BAM "Blocks free" inconsistencies when copying into a
D64. If one is detected, you will be warned, and asked if you want to
continue with the copy/move. If a disk image is detected with this problem,
it is a good idea *not* to continue as you may overwrite sectors with
information. Run CheckDisk to see what is wrong.


* Commands executed from the command-line are no longer converted to upper
case. This includes commands retrieved from the .EXT file as well. Now, if
you have to pass any varying-case options to a program (i.e. pkzip's
"-rP"), you can do so.


* Changed the look and position of the ALT-filename search box. With the
introduction of the full/short panels, and info box on/off, it would no
longer work the old way.


* The File Info area was not being updated when you used the ALT keys to
find a file name in a panel.


* Edit Extension File only uses the internal editor now, not what the
Configuration window had set, i.e. internal/external editors.


* Changed all the search functions (Viewer, Editor, D64 Editor) so that
using F5 repeatedly (or F6 where applicable) will not remove the "String
not found" error window when it comes up.


* If there is no .EXT file, then when CTRL-F4 (Edit Extension File) is hit,
the EDITOR will start a new file with that name.


* Removed the CTRL-C "emergency-quit" checking. It wasn't working!


* The CheckZipCode routine now only works on *one* ZipCode section at a
time. If you want to check a full set of four ZipCode files, you will have
to do them one at a time. This should make it easier to make quick changes
and check one file, rather than having to wade through the log file output
of a four-file check.


* Cancelling a file copy into D64 images no longer leaves open t/s chains,
messing up future copies.


* Keypad +/- (Tag all) for the main panels will now accept multiple file
patterns... so now you can enter "*.txt *.doc *.??l" to tag/untag multiple
groups of files.


* Renaming a file inside a P00 file, where the resulting DOS filename did
not change, would fail with a "File exists" error.


* History window will no longer change width when items are removed from
it.


* If for some reason the program cannot find any room internally for a new
window (on my window stack), then the program will quit, and tell you this.
If this happens, I need to know this, as it means I am not destroying all
the windows when they should be, something which should *never* happen!


* If you get the "Convert ZipCode/D64" window, and you don't want to do
this, say "No", and you will be brought into the regular Convert window.
Pressing ESC will now cancel the entire operation.


* If you get the "Copy xxx into the D64/T64", then by selecting "no", you
will now drop into the regular copy/move dialog boxes. Selecting "cancel"
(or pressing ESC) will cancel the entire operation.


* Entering your own filename when converting into a LNX file would fail. If
you went with the default filename, everything worked.


* Program would abend if the BASIC Unlister encountered a quote mode
graphics token of 160 ($A0).


* Re-wrote the section in the MANUAL.TXT dealing with the command-line
switches, stressing the need to use the "/m" (monochrome) switch when
running 64COPY on a portable.


* When you change the state of the "Auto-save settings" in the General
Configuration window from checked to unchecked, the settings will be saved
immediately upon exiting the config window so that the INI is updated.


* Updated the FORMATS.TXT file to include the latest revision of the X64
specification (version 1.02), and a section on explanations of common
Commodore/computer terms and acronyms.


* Changed the header used to create X64 files to conform to the new v1.02
X64 standard.


* You can now use the CURSOR DOWN and CURSOR UP keys to navigate the
Configuration window, instead of the just the TAB/SHIFT-TAB keys.


* The Fkey display will only show what fkeys are applicable for a given
function. This way, you won't be trying to use Fkeys which are defined for
the main panels in a sub-function (like F1 for help, where it doesn't yet
exist)


* Hitting return on non-archive files, which were "active OS files" would
result in the error message "Can't open file", which you should have never
seen.


* Moved User-menu Edit command to F2 (from F1), making room for F1 Help in
the future.


* LNX/T64/P00 panel displays now show filesize in blocks, rather than
bytes.


* Added in Panel Setup to the Menus. Here you can select the style of the
panel you want to see. "Type 1" is the one you are use to, "Type 2" is an
alternate design I have in place.


* Added a file pattern to the Filter command (on the menus). This allows
you to *only* display the files that match the pattern you specify. No
pattern means display all files, but directories will always be displayed.


* Moved the calculation of the PAUSE value to when the program first gets
loaded. It will calculate the value only if the INI doesn't exist, and
store it in the INI, so it won't need to be re-calculated.


* Added CRC integrity checking to all the external support files (.CLR,
.INI, .MNU, .MAC). The macro file was already using a weaker checksum, but
I removed this in favor of a much stronger CRC check. If any of the files
are corrupted, you will be notified when the program starts.


* Any new colors I add later on will now be merged automatically into the
.CLR file. There should be no need for me to change the version of the CLR
file when I make color changes (unless I re-structure the file internally
or increase the number of system colors past the present 75).


* Fixed a bug in the History routine, where commands were not always being
stored, as they should have been.
