Summary of changes from 3.40b1 to 4.00b1 ---------------------------------------- * Added "Program execution logging" - This allows the tracing of subroutine execution, and possibly bugs. It only traces "core" routines (windowing, panel drawing, mouse, keyboard, fkey bar) so a bug in the Text Editor outside of the monitored code will not be traceable. - You can enable it by either specifying "/log" on the command-line or use the Options menu Program Trace entry. - It likely will not be present in the standard release version of the program due to the amount of memory it uses, but it will be enabled in the beta releases. When a bug shows up which might be traceable by execution logging, I can send out a special version of the program with logging capability to help track down the problem. * Added several new Convert modes on F11, mostly related to GCR-type images: - D64+F64->G64: Converts D64 and the F64 error bytes to a G64 (GCR) image. This will likely be a very popular conversion method, especially for the Unicorn (64CD96) CD files. Provided that the F64 error codes are properly understood, this conversion should be almost perfect. - D64+F64->ZipCode Sixpack: Converts D64 and the F64 error bytes to ZipCode Sixpack files. Not terribly useful as some of the F64 errors cannot be represented in ZipCode. Most should convert ok, though. - D64+F64->D64+errors: Convert D64 and the F64 error bytes to D64 with error bytes. This should also prove to be a popular conversion as all emulators support the error byte form of D64, and not the F64 form. Not all the F64 errors can be represented by the D64 error bytes. - G64->D64+errors: Converts G64 (GCR) images to D64 + error bytes. This is a problematic conversion because all of the low level data that comprises the errors is lost. - G64->ZipCode Sixpack: Converts G64 (GCR) images to ZipCode Sixpack files. Most of the data relating to error reproduction can be stored in ZipCode, but not all. - D64+errors->ZipCode Sixpack: Converts D64 and error bytes to ZipCode Sixpack files. Not a very useful conversion, really only good for transfering the resulting file back to a C64. All the errors are reproduced. - D64+errors->G64: Converts D64 and error bytes to a G64 (GCR) image. All the errors are reproduced, but if the copy protection works on a D64, there's no need to create a G64. If the protection doesn't work with the existing D64 error codes, it likely won't work with a G64 image either. - ZipCode Sixpack->G64: Convert ZipCode Sixpack GCR files to a G64 (GCR) image. All errors contained in the ZipCode files are transferred to G64. - ZipCode Sixpack->D64+error: Convert ZipCode Sixpack GCR files to a D64 image with error bytes. This is not a very useful conversion as all the data that comprises the errors are lost. * Major change to the pull-down menu system: - Re-wrote major parts of the menuing system so that menus are defined as needed, and now exist in all full-screen functions (editors, disassembler, viewer etc). - The full-screen functions already have F9 used for other functions, so I cannot assign the "menu drop down" option to that key. Instead, either enable the "ALT key drops menus" option, or use the mouse and click in the title bar to access the menus. - This menu change also means that I've temporarily lost the ability to disable menu entries when a given function isn't available. I hope to put this feature back later. - All the pop-up menus that existed in the various editors on the left mouse button have been re-written to now use the new menu controller. This allows for greater flexibility in menu definition, and pop-ups look like regular menus. - Moved all emulator-related items in the panel menus to a new menu entry called "EMULATOR", between the FILE and COMMAND menus. It seemed a more appropriate place to group them there. * Changes and additions to the CheckDisk function: - Added Check F64 files. It only scans for errors and anomolies, but doesn't decipher them as nobody seems to know how F64 works. For now its main usefulness will be for the author to try to understand better how the combination of code, ID and checksum value makes up an error code. - Major improvements to CheckG64. It is no longer a simple track offset dump but now analyses all the data in all valid tracks and displays a complete list of what it finds. This includes gaps, SYNC marks, headers, etc. All errors are also detected, and displayed in order of precedence. - Added the option "Overwrite old log files" to allow for always creating new log files, rather than always appending to them or having to manually delete them before another check. - In Check ZipCode Sixpack, the sector value displayed is now what is actually stored in the header. - I've changed one of the options to "Do extra disk checks", moved a few dialogs, removed a few others and basically tried to streamline the whole process. Selecting the "Do extra disk checks" will bypass the normal warning dialog box that you would get halfway through the scan. - I've also made a few of the checks a bit smarter, detecting if they need to run or not, and reporting as such. - The "scan for lost chains" check will now skip chains which were also skipped in the "scan for deleted files" check. This prevents duplicate chains showing up. - When entering a filename to assign to a recovered chain, the filename would not have been put into the directory properly. * Major changes to the Disassembler: - I've removed it from within 64COPY and made it an external application (64DISASM.EXE), only executable from 64COPY. The reason for breaking it out is very simple, I needed to give it more memory. The change should be seamless, but... - Now that it is an external application, there are likely going to be some things that are different from the way the 64COPY application works. I've tried to bring along all the niceties (screen savers, clock, colors, help files, drop-down & pop-up menus etc), but there may still be problems. - Also, now that I've got more memory, I've raised the maximum label count to 6000 and increased the memory for label name storage by 15Kb. This should allow more room for those big disassemblies. - Fix: sometimes you could not set labels or tables, because the address values would be rejected as out-of-range. - If 64DISASM.EXE wasn't available in the PATH environment variable, and you were not in the 64COPY home path, then the disassembler would not launch. All you would see was a "Bad command or filename" error in the DOS window under the panels. * Major changes to the HELP system: This is the biggest change which has kept version 3.5 from being released for almost two years. It was a major re-write of the help code, the help compiler, the structure of each help topic and the structure of the HLP file. I'm glad it's almost done, but I've still got more work in breaking up the big topics and adding many subtopics. - I've completely altered the layout of the HELP file to allow for "sub-categories" under the main topic list. This change allows me to have 255 main topics, with up to 256 sub-categories each (you do the math... it's a lot of entries). All memory required is now allocated only when needed, so the programs memory requirements should not be as great. - All the topics have been restructured, with section headers preceeded by an HTML-like tag, replacing my original clumsy method of special characters as markers. This change makes the structure more readable (for me!) so new topics will be easier to build. - Topics with sub-categories will have a '' beside them in the HELP window. You can open topics to view the sub-entries by clicking on the '' arrow with the mouse, or using the right-arrow key on the keyboard. You can close an open topic by using the mouse, or pressing the left-arrow on the keyboard. - As a result of the rapid increase in the topic count, not all of the dialogs and error windows that come up will have the proper help ID's assigned, and I will continue to fix this. - Lines that contain hilited or bolded text were not bring formatted properly by my Text Editor. Now, the editor takes these characters into account when formatting a paragraph. This may not seem important, but the HELP topics are formatted more consistently. - I've tried to make more sense in my help files, windows and documents of the difference between "image" and "archive" files. I've removed almost all occurances of the words "emulator files" and replaced it with "image files". "Archive" generally refers to compressed files which would be stored for backup. "Image" refers to almost all other C64-related files. Hopefully this removes some confusion. - If there topic is missing from the HELP file, the title bar will still show the help id values. - The compression used is now more dynamic. - Updated and added many more topics/subtopics. * Major changes to the Button Controller: - Redesigned and reorganized much of the internals: memory allocation algorithm & structure, button storage structure, the way buttons get assigned and destroyed, how they get drawn. All of this was for the next feature: - Added "unavailable buttons" where buttons are greyed out and not accessible (can't click on or cursor/tab to) when an option they are dependant on is disabled. The best example to see is the Screen Savers configuration window. Disabling the "Enable Screen Saver" option will grey out all the buttons. - All input areas specified as HEX input were always defaulting to 2 byte words. I now honor whether they are 1 byte (char) or two bytes (word) wide. * Major update to the panel Filter function (under the Left or Right panel menus) - Redesigned the dialog box to allow for more options and much greater flexibility in selecting/deselecting what files and directories to display in each panel. You can now display, or choose not to display: * Directories (also using a pattern-match filter) * Executables (EXE, COM, BAT, CMD) * Images (virtually all of the emulator image types there are) * Files with hidden or system attribute set * Any other file type not covered above - Found out that the logic I was using for the old filter settings, when parsing the directory, was very faulty. Hopefully it's all been corrected in this change. - The default value for showing files was "show only" instead of "show all". * Added in a basic WAV file cleaner under the Commands menu. It is very simplistic, only made to remove single-sample errors that get generated when reading from scratched CD's. It has trouble cleaning audio that contains loud cymbal crashes as it will mangle it quite badly. There is a sensitivity scale, ranging from 0 to 100, where higher numbers mean the routine will clean every little thing it finds, even if it's not noise. Play with this value to see the difference in the cleaned output. You can use a WAV editor (Cool Edit, Sound Forge) to set cue points around the affected areas, and then select the option 'Use CUE/Marker points for cleaning boundaries' to only clean those areas. This keeps the possible WAV distortion to a minimum. * Changes to the Configuration windows: - Added Next & Prev(ious) buttons to all sub-windows to allow easier navigation. - Removed 'Recalc Pause' button from Other Things panel and moved it to a checkbox option instead. Checking it will do a pause value recalculation. - Broke up the topic Image Conversion into "Image Conversion" and "Image Creation". Moved many buttons around. - Added a new button under Image Creation called 'Auto-detect DOS type" which, when enabled, will attempt to detect the extended DOS type (Speed, Dolphin, Prologic) of the D64 image. If it's not enabled, anytime you try to enter an extended image, you will be asked what type of image it is. * Changes to the Text Editor: - Added in a New File menu command under the File menu. This allows you to quit editing the present document and restart the editor with an empty unnamed document. - When in search/replace mode, it would not update the status bar with X/Y cursor locations, TAG size, etc until after the function was done. - Added in option "X Scroll Size". This is the number of columns that the screen will rotate left or right when cursoring or typing past the left or right edged. - If you cursored to the right, scrolling the screen contents off to the left, clicking with the mouse to place the cursor would not place the cursor in the correct location. - Added in rudimentary Unicode detection & conversion. If the option "Auto-convert Unicode files" is enabled, the file will be checked and if it matches what I support for Unicode (see above), it will be automatically converted. If it is not enabled, you will be asked to convert the file first. - When copying tagged data to the clipboard, the tagged area is no longer cleared. - Tagging text with the right mouse button would not start the tag area correctly under certain circumstances. - The editor now recognizes my formatting characters that I use for the HELP files and will properly do a paragraph format, rather than making some lines too short. * Changes to FORMATS documents: - Added a "Last updated:" line to each document. This way the DOS time stamp and the "Last update" line do not have to corrsespond. - Changed many of the docs, changing the useage of the terms "ARCHIVE", "IMAGE", "EMULATOR" and "CONTAINER" so that they are now used consistently. - Updated CRT.TXT by adding a sample HEX dump for type 14, 16, 18 & 19. Added WRPSPEED.JPG which is the schematic for CRT type 16. Included a small write-up from Markus Brenner regarding mode switching. - Updated D64.TXT doc. Moved the REL file layout to it's own document (REL.TXT). Added in a section on C128 auto-boot disks. Added table describing differences between various 'speeder' DOS's. Updated the error tables and descriptions. - Updated the DISK.TXT document. - Updated BINARY.TXT - Added info to the GEOS.TXT doc. - Updated the F64.TXT document extensively - Updated the G64 document. Added in a description of the 1541 GCR layout - Added WAV description (because I needed it). * Fixes to the Disk Directory Editor - Getting a BAM message that exceeded the button width would cause some screen corruption * Added Disk Error Editor to the SHIFT Fkey menu on F12, beside the BAM Editor entry. Removed the old assignment for "Opening Window" display. * Added in a "Combine File" function on CTRL-F7, to combine tagged files into one. This is one of my speciality functions, written because I needed it. It comes in useful for combining text files into one. * Added in a "Split File" function on CTRL-F8, to split large files into sizes which are easier to transport, like copying to a floppy. This is another of my specialty functions, which I need once in a while. * Improved the File Compare function (CTRL-F5). There is now a progress bar, you can cancel the operation on long file compares, and the compare will only stop when too many errors have occurred to show in the results window. * Removed some items from the CTRL Fkey menu and added in the "Combine", "Split" and "Compare" options. * Added the capability of having a timer set on a window, so it will be canceled after a specified time, in seconds. The main opening window has a timer of 10 seconds on it, so it will automatically go away after that time. * Added a "String Search" function to CTRL-F9. This is a simplistic version of the UNIX command "strings" which will search a file and display (or log to a file) runs of alpha-numeric characters (strings) of a minimum length. * Changes for non-80 column screens. I tried playing with VGA utilities that allow for screen sizes like 120x64, and many things didn't look quite right: - I've removed all the hard-coded bits dealing with 80 column screens that I could find. - Changed the panel drawing routines and panel location calculations so that a greater than 80 column screen will show full-width panels. - Changed the Function Keybar drawing routines to pad the descriptions on screens wider than 80 columns. - Changed the detection routine so that I can now determine the exact lines per screen. Before, I could only detect three line modes (25/43/50) - I'm sure I haven't got all the things which still assume an 80 column screen, but I will tackle them as they come along. * Changed some of the characters used for the menus and window border drawing. Windows 2000 (and also XP) has hijacked specific characters like the checkmark symbol and replaced with something unusable. So, instead of the checkmark beside some of the menu items, you now see the "+" symbol. Instead of the vertical and horizontal lines meeting in the panels, now they don't. * Added a "No Change" option to the Screen Size section of the Visual Options configuration window. This setting will force the program to use the existing video mode (lines/columns) when launched, rather then overriding it to a specific size. * Added new option "Auto-convert Unicode files" to the Editors & Viewers page of the Configuration. When enabled, the Text Editor and File Viewer will attempt to detect when a Unicode file is being opened. If this option is off, you will be asked if you want to convert it. With it enabled, the conversion will happen automatically. I only support a small subset of Unicode. If the text file starts with FF FE and has 00 for every other byte, then it appears to be Unicode. * Added Unicode Format conversion type to Convert PETASCII to ASCII. See above for the Unicode files I detect as the subset is very small. The configuration switch "Auto-convert Unicode Files" has no effect here. * Added CRT type 18 to CheckCRT. * The panel variables were not all swapped properly when doing a "Swap Panels". Some of the D81 support variables were not swapped properly. * Clicking with the mouse when the ALT-SEARCH window is up will cancel the search and do the mouse click. * Added a "Reset" button to the Alt-F7 Search window. This allows you to clear the default drive search tags and select your own. * Changes for GEOS support: - Wrote a new routine to do better detection for GEOS files (SEQ and VLIR), regardless of disk format. - Changed the panel listing routines to show when a file is a GEOS type. It will show a "VLI" when a GEOS VLIR file is detected, and a "GEO" when an GEOS non-VLIR file is detected. - Files in the BORDER sector will now be displayed in the panel listing. This applies only to D64 and D71. I do not know what a GEOS format disk on either D2M or D81 would look like. * Extracted filenames from UUE files are now full-size. Filenames that contained spaces would get truncated at the first space. * Internal structure changes: - I attempted to restructure many of the variables used for various functions into a series of C structures, to make management easier. However, things didn't go too well, and I had to reverse those changes. I don't suspect too many typing mistakes occured in the reversal, but you never know. - Now, I'm renaming many global variables into groups, so that they make more sense. This is similar in scale the above aborted change to structures, but is hopefully less destructive. - I removed the dependancy that my Windowing functions have from the main code in an attempt to make them more portable. These functions include window management, buttons control, screen saver, keyboard control, help display, pull-down menus, clock display, mouse control and long filename functions. This might cause some problems especially regarding how these functions are externally configurable (like screen saver). I don't see anything, but... * Changes to Color Configuration: - The F9 fkey would not say "Restore" colors when it should have. - Added the color value in the window display. - Added a new color definition called Unavailable Button. This will be used in the future for button controller enhancements. * Changes to the error logging facility in RENAME/MOVE. - The RETRY count was off by 1 - The line separator was only, not - The reported bytes lost was grossly wrong. - The file errors count was wrong - Added '# Skipped' entry. This counts the number of files which are skipped during the copy because of read errors and file collisions. * The Ctrl-R "Re-read disk/directory contents" will now get the present working disk/directory first, and then re-read the contents. By doing this, if the drive/path has somehow changed for the panel, it will be reflected in the path and contents of the panel. * Added a new option to the Convert main window... "Add C64 type to name". This allows you to add the C64 filetype (PRG, SEQ, etc) extension to the destination filename when converting them to Binary/PRG (DOS binaries) only. Typically, when you convert to a DOS binary, the C64 filetype info is lost, so this way you can keep it in the file extension if you want to. * Removed two options from the Configuration/Panels window "Keep top menubar visible" and "Menubar off when panels off". You no longer have the ability to remove the top bar of the program at any time. This change was necessary because of changes to the Windowing code. * Added CRT filetype to File Info window * Some changes to the D64 HEX Editor: - If a D64 has an 'F64' file (error file) associated with it, the header bar will show the data from the F64 for that sector. - When copying data to the clipboard, the paste address for the data is now set to the start of the copied range (offset from the beginning of the sector), rather than 0. - Removed the "active cursor". You now have to click in either the HEX or the ASCII area to place the cursor. - If you entered an invalid track or sector in the F9 "goto" function, the "allowed range" would be wrong. You would also not be given a window to re-enter the proper values, but rather the entry boxes would be in the main display panel! - When copying tagged data to the clipboard, the tagged area is no longer cleared. * Changes to the HEX Editor - When copying tagged data to the clipboard, the tagged are is no longer cleared. * Check DOS Files (ALT-F12) was not visible on the menus. Added it to the Commands menu. * My logic for detecting D64 extended DOS types (40 track images) wasn't working. I could not detect the difference between freshly formatted Speed DOS and Dolphin DOS disks. I re-wrote the detection method, and now if I can't tell what the DOS is, you will get a dialog asking you to choose the DOS type, with the most likely candidate being the hilited one. * Changes to the Create New Images (F12) function: - Added the creation of G64 images. Right now, they only support 35 and extended 40 track D64 layout (no half-tracks), basically the same options that D64 has. - Added the different DOS type selections (Speed, Dolphin & ProLogic) to the Create D64 Image dialog box. Added full support for ProLogic DOS disk type. - Added some extra options to the Create D64 and Create X64 windows. * Changes to the Disk Error Editor - D64 Error Editor didn't drop the menus when you clicked in the title bar. - Right-clicking on a BAM entry will bring up a pop-up menu for error selection values. - Some warning messages would be displayed if you tried to edit nonsupported image types (like DOS files, directories). These are now ignored. * Changes to the Disk BAM Editor: - There is no longer an 'active cursor' where moving the mouse (without clicking the mouse button) would move the selection cursor around as well. Now you have to click to move the selection cursor around. - Added a pop-up menu on the right mouse button. Click on a BAM entry to get the allowed menu options. - Some warning messages would be displayed if you tried to edit nonsupported image types (like DOS files, directories). These are now ignored. * Launching the program from a floppy no longer causes the panel directory contents to be shown before the panels themselves are drawn. * The way the program remembered that an LFN filesystem was detected was broken. If you restored the default settings to the program configuration, it would not remember that an LFN was detected, but things still kind of worked. * I was losing about 2-4K every time I shelled out. Fixed. * Selecting "Drive Info" from the menu opposite to the active panel would bring up the info for the active panel. * When trying to set a custom message in the Message Control Center in the Disk Directory Customizer, the window would not be dismissed properly. * My mouse code was incorrectly generating a "mouse drag" mouse event when it should not have, and it was only affecting the Panel Layout Editor. * The DOS Change Attributes window, when multiple files were selected, would not let you mouse-click change the CLR column attributes. The SET column would always change instead. * A few panel variables were getting lost when shelling out of the program while displaying an extended disk image (40 track) in a panel. The extended disk type was not being preserved, and the 40 track flag was being clobbered. This would result in a 40-track Dolphin disk being displayed as a 35-track Speed disk. * When converting a ZipCode 6-pack file, the inactive panel path was being altered and not restored. * You could crash the program quite handily when trying to change the panel sort while trying to display a large directory (>700 elements). --------------------------------------------------------------------------- Summary of changes from 3.30 to 3.40 b1 --------------------------------------- * Substantially changed the Disassembler (not finished yet!) - ALL addresses are fully label-able, and labels may be up to 16 characters long. This means that the pre-defined ROM addresses are now changeable, like so many people wanted. In the case where you do not supply a label name, the disassembler will try to select an appropriate label based on the following rules: - If you branch backwards (loop) then the label starts with "loop" - If you branch forwards (skip) then the label starts with "skip" - Setting a table, label starts with "tabl" - Zero page starts with "zp_" - JSR starts with "sub_" - JMP starts with "goto" - All other labels are "labl" - There are several hundred pre-defined ROM, RAM and I/O addresses which can automatically be assigned when you start a disassembly. If you do not want to auto-assign the labels, this feature can be disabled in the configuration window before disassembling. - There are 4000 entries available in my label/table array. Note that each entry can have several modifiers (label, table, link label, comment and blank line insert). There is enough space in my comment array for a *minimum* of 2000 comments (assuming a maximum use of 30 bytes per comment) and 4000 labels (assuming an average size of 9 bytes per label). - Tables have much more flexibility. - Select from several table types 1. BYTE 2. WORD (lo/hi format) 3. DBYTE (hi/lo format) 4. ASC (or TEXT). Lines will break when a NULL ($00) occurs. Displayed text is shown in a "simulated C64 font" and not ASCII 5. FONT (defaults to BYTE table, BINARY format, 1 byte wide, 8 lines long) 6. SPRITE (defaults to BYTE table, BINARY format, 3 bytes wide, 22 lines long with a single byte terminator) - Select from 5 different bases to display them in 1. HEX 2. unsigned DECIMAL (only positive) 3. signed DECIMAL (+/-) 4. OCTAL 5. BINARY - Change the display width (in bytes). - Enter the starting address and the size of the table (rather than the start/end addresses). This is particularly useful for FONT and SPRITE tables, as they must be multiples of either 8 or 64 bytes, and simply entering the size needed is better. Any value entered into the SIZE field overrides the END ADDRESS value. - You can define tables within tables, overlap addresses etc. This allows you to define one encompassing table for a whole area, and subdivide it down easily. - If you are displaying WORD or DBYTE table data, and the 2-byte value being displayed matches a defined label, then the value will be replaced by the label (provided the option "[ ] Allow Labels" is set for the table range). - When disassembling any file for the first time, the Disassembler Configuration window is brought up, allowing you to set features before disassembling begins. This is especially useful if you don't want the ROM/IO labels to be auto-assigned. - The following display items have blank lines either preceeding or following them, and this feature is not disableable: - After RTS and JMP opcodes - Before and after ORG= statements - Where tables end - Where code ends and tables start - After each entry in a FONT and SPRITE table - You can "link" one address to another. This is done either in the F5 or F6 label functions by entering either an address or a label in the "Link this address to" fields. This is particularly useful for the indirect addressing mode display, i.e. "LDA ($F7),Y" would almost always have $F8 linked to $F7. Any display of the $F8 address will show the label assigned as "$F7+1". All label windows (master/slave and partial labels) will show a link count, if any exists. - You can create "partial" labels. This only applies to lines which load registers in absolute addressing mode, i.e. LDA #$45. You can assign this opcode to load one half of a label/address, i.e. "LDA #" line from bottom of display. - Re-arranged the F5/F6 set/clear labels functions. I now differentiate between source address (left column program address) an destination address (address following the opcode column). F5 sets the source label and F6 sets the destination label. The ALT-F5 and ALT-F6 keys remove the source and destination labels respectively. - Re-arranged the F7/F8 set/clear table address range functions. They work on the same principle as F5/F6. - All address entry fields default to the addresses contained under the highlited cursor line, depending on whether you have selected a "source" or "destination" function. - Redesigned the F5 through F8 set/clear dialog boxes. - Removed RETURN and SPACEBAR as keys that scrolled the disassembly window down. - Disassembling to a file (Alt-F2) now supports C64 SEQ (no line #'s), C64 PRG (line #'s) and DOS TXT filetypes. - Added display of stats (variable useage and other things) to ALT-I (Info) - Broke down the HELP topic into many different entries, to cover all the additions and improvements. - Conversion from old OVV 1.0 files (before version 3.4) should be ok. * Removed all of the keyboard MACRO playback/recorder code, references and HELP file entries. Personally, I never found it useful. As it was never capable of recording mouse movement and clicks, that very much limited it's capabilities. Also, it was much too strict in its playback, not knowing how to handle unexpected errors and conditions, which could be fatal to your data. Removing it freed up about 14Kbytes of RAM, which I can definitely use for better additions. * I've relaxed the rules (yet again!) to determine what is a valid disk image (D64, D71, D81, X64). As long as the file size is greater or equal to the base size (i.e. 174848 for a D64, 819200 for a D81), it will be considered a "legal" disk image, and 64COPY will try to work on it. However, I've also added in a warning message box when you attempt to work on a non-standard D64. * Changed the code for ARC, SDA and SFX files to correct for some anomolous file headers. I was given some file samples which didn't match the standards, and causes 64COPY some grief to display the contents. * Added disk serial#, volume label and file system to the CTRL-L "Disk Free" window. * T64 files now get created with a more descriptive tape label, rather than the standard "DEMO TAPE". I thought I was already doing this, but apparently not. * Added in two new options to the Config/Panel Options window, "[ ] Save active panel path on exit" and "[ ] Save inactive panel path on exit", for the saving of the paths when quitting the program. A recent change in version 3.3 meant I started to save the current panel path, but I reversed that and now only the non-active panel will be saved by default. * Mass-conversion of PC64 (P00) files no longer causes corruption of the filenames in the panel display. * When converting from P00 files to T64, the resulting T64 is now created with a minimum of extra blank entries in the directory. The value for empty entries is never more than the "T64 Directory Size" from the configuration window. * Button Controller changes: - Simplified the setup necessary for making specific button types ("[ ]" and "( )"). I now can specify whether to align on center/left/right on these types of button. This change affects all windows with those type of buttons. It also *could* affect the list, arrow and input areas. - Button widths were not calculated properly when no button name was assigned. - Modified the code to allow for pop-up menus (a single left-click on an item to bring up a menu). This will be an on-going upgrade, with pop-ups slowly being introduced throughout the program. So far I've added them to the Disassembler and the Text Editor. This modification was made at a *very low level* in the mouse code, and so will likely mess up other functions. I've fixed everything I could find, but little things continue to manifest themselves. - HEX input can now handle up to 4-byte HEX numbers (unsigned long) * Changes to the FORMATS.ZIP documents: * Updated .CRT doc. Added chart showing control line states and cartridge ROM locations. Added in the new CRT types. * Updated .WRA (Wraptor) doc * Added .S20 Phau Zeh VIC-20 snapshot image description * Added .PCV PCVIC VIC-20 snapshot image description * Added in a DISK.TXT doc, describing how Commodore disks allocate sectors for files (written by Joe Forster/STA) * Updated the SDA, SFX and ARC topics due to some unusual sample files which were sent to me that did not adhere to the standard. * Added .VSF, the VICE snapshot layout * Added in D2M (FD2000) image layout * Fixed a bug dealing with the tags on files in the panels "moving" to other files when certain panel operations were done. Many functions were updated, so look out for tags moving around after file operations, as this means I haven't fixed them all yet. * Added a window scroll-bar to the HEX Editor and File Viewer functions. Removed the "" scroll indicators in the information bar. * "Clear Tags" in the HEX Editor wasn't working as it should. I wasn't clearing out some important variables. * Appending to existing LOG files now works again. I must have broken the "append" function in my file routines some time ago. This meant that trying to append to any existing log file (DOS copy error logging, CheckD64 logging) would result in that log file being overwritten. * Removed the changes I previously made to the CHANGE DISK LABEL routine, so that you can once again enter the ID and DOS VERSION as one. * Changes to the Delete dialog and status windows: - The "selected size" is no longer calculated automatically, but there is now a button asking if you want this calculation to be done. - The status window is now a fixed width, showing much more info than before (total files to delete, directory count, total bytes). * Some changes to the Copy/Move (F5/F6) files routine: - Redesigned the entire "copy status" window. Now the window is a fixed size, showing source & destinations paths, total files to copy, size copied and to copy (in bytes), and total # of errors encountered. The new design allows much more info to be shown than before, and it's easier to watch when a copy is happening. - Added the LOG path onto the "Copy Files" window. This makes logging disk errors during copies/moves easier. - Redesigned the file name collision dialog. You now have the option to: * "cOpy" the file (or "mOve" if moving) * "copy All" (or "move All" if moving) to force all the files to copy/move, regardless of wether a collision happens or not. * "Skip", to not copy this one file * "Skip All" to skip all future filename collisions * "Log" to enable error logging, if it has not been enabled. - If a file error was detected (read/write/open), the error type was not being sent to the LOG file correctly, only junk was being sent. - If you press ESC during a copy/move, you will now be asked if you want to cancel, rather than simply exiting the copy/move. Not cancelling will continue the process with no data loss. - Added an option, to enable/disable the "calculating size" function. Sometimes you may *not* want to do the calculation, especially on a drive which could be damaged. - Added a "retry" option, to re-read difficult files. This forces the program to re-read up to the specified retry count before giving up on a file. * Added some extra file type detection into the FILE INFO screen. Now, MP3 audio files (up to ID1.1) are detected, and pertintant information is shown. * Added a screen-saver hotkey combination on CTRL-F10. * Executing 64COPY without any 64COPY.INI file resulted in an empty dialog box that just said "DRIVE"!. This no longer happens. * Added in a "Check DOS Files" routine on ALT-F12. This allows you to check a source drive/directories to see if the files are readable. This may not seem to useful (and for many it will not be), but if you have a CD-R or a CD-RW, and the need exists to check the whole thing for integrity (all 650Mb of it!), this routine will do so. The default path goes to the 64COPY path. * Added ability to read/write Macintosh and Unix text files in the Text Editor. The Macintosh uses the (carriage return) as a line delimiter instead of the PC's , and Unix uses only the . If a file being read for editing only uses anything other than the PC/DOS standard, it will be converted to . When saving files (or blocks), you will be informed as to the format being saved in, changeable in the Editor Configuration or the main Configuration windows. * File Viewer can now display Macintosh (carriage-return line delimited only) and Unix (line-feed only) text files properly. * Changed some Configuration windows (Editors/Viewers, Panel Options) for new features. Added a new Configuration window covering the options for the File Copy/Move function (F5/F6). * Changes to the HELP: 1. When HELP didn't have the memory to display the topic, the HELP window would not be drawn properly or the previous topic was not cleared out. 2. Updated and fixed *many* more HELP screens. Added "Dedication", "Features & Shortcuts" & "Processing Files" topics. 3. Topics over 255 lines long would get truncated. * Fixed a cursor positioning bug in the window SETCURSOR routine. * The window showing file access errors was not correctly showing the right filename. Usually it showed garbage for the filename. * Added file time and date to the Change Attribute window. No editing of this info yet. * Changes to the File Compare: - Added in a CRC32 calculation. The numbers are shown in the header, following the filenames. The CRC32 adds an extra layer of verification. - Added an intro dialog with the option to disable the CRC calculation. Doing a CRC on a large file can take some time, so having the ability to skip it is handy. - If the file sizes are different, the program will ask if you want the compare to continue. - You can now cancel the CRC32 calculation while it is in progress. * Added basic decoding of UU and HQX files on Alt-F10. UU/UUE (uuencode) is a common PC format and HQX is a common Macintosh format. They are used to encode binaries into a text-readable format which are then either mailed to individuals or posted to internet newsgroups. * Some system color changes: - Added in a BOLD text color to the full-screen functions. This BOLD color will slowly be incorporated into most of the full-screen functions. It will make the screen display a little nicer to read. - Changed some of the default system colors. - The version of the CLR file has changed. Any custom colors you have set will be lost. * Added some more error checking to the ZipCode-to-D64 converter dealing with missing sectors, and improved the error messages. * Unified the "Disk Repair" and "Tape Repair" windows under Config/CheckXXX to be one window called "File Repair". This option now covers repairing *all* files, be it Disk, Tape or CRT. * Changes to the CheckXXX routines: - Continuous output in CheckZipCode (both 4-pack and 6-pack) was not working. - Added some new options to the CheckDISK/TAPE/ZIP dialog window: 1. "Skip disk SEP files" allows you to skip the "directory separator" files, without having to go to the CONFIG window and change the scan/repair options the hard way. 2. "Enable file repair" allows you to enable/disable the "repair" function, and just do a simple scan. It is the same option as in the Config/CheckXXX window called "File Repair" 3. "Continuous output" allows you to not have the screen output stop after one page with a "continue" prompt. - Added continuous output control to T64 and Disk (D64/X64/D71/D81) images. - Improved the diagnostic messages in CheckDisk. - Added the display/repair of CRT contents. This allows you to see the various "chip" contents in the CRT's. The only repair available for now is the correction of the "header size". Many CRT files exist with an incorrect header size value of 32, when it should be 64. For what it's worth, this is now correctable. - Added the display of G64 (GCR) disks. For now they are "Scan Only", no fixing. This allows you to see the track offsets and speed zones in the G64's. - Changed the screen output of the CheckZipCode 4-pack and CheckZipCode 6-pack to a more organized table layout style. It should be easier to read. - Added better information display (X64 header info) on X64 files in CheckD64. - Recovered files in the disk images would not show up in the directory listing until the image was re-read. - Scan Mode was not being set right, and would sometimes get stuck on "scan only" mode. - X64's would not be checked properly only when inside the image. * Removed the "Show time estimate" option from the Config/CopyMove window. This option is no longer used as the estimate is now always visible. * Reduced the amount of files that the panels can display to 799 (from 999). This was to free up some more memory. * Internally restructured the programs overlay layout (gained some memory, lost some memory). I'm still striving to get a good layout, with the best memory savings, and still make it runnable from floppy... not an easy balance. * Set the default path for the Copy/Move log file to be the 64COPY path, rather than "C:\". * The drop-down menu items (on F9) will now move with the mouse scrolling. This makes them consistent with the new pop-up menus I have introduced. * The cursor location was not being restored when exiting the ALT-key filename search. * The Clipboard now stores the file offset address from where HEX data was copied. * Pasted HEX data from the clipboard into the Text Editor will now know what address it was copied from. It will be entered by default into the "address" field of the Paste dialog box. * Dates displayed in the panels beyond the year 2000 (i.e. 2001, 2002) were shown as 2000 (00). * The date/time display in the "Change Attributes" window for directory entries is now correct. It use to display the "zero" date "Jan 1, 1980" and "00:00:00 am". I am now using the date and time shown in the panel listing. * More spelling mistakes corrected. --------------------------------------------------------------------------- Summary of changes from 3.20 beta 2 to 3.30 full release -------------------------------------------------------- * Holding down the ALT key while left-clicking in any column of a panel (only in DOS panel mode) will change the sort to that column. So, if you want to sort by Name, simply ALT-click in the NAME column (or panel Title bar) to set the sort. Right-clicking in the panel display while holding the ALT key down will change the panel style (any type) between the "normal" and the "alternate" display. * The passing in of one image name on the command-line for quick-display was broken. * Changes to the 6502 Disassembler: 1. F9 GOTO address dialog will now contain the last address entered as a default address 2. Changed the OVV file layout to allow for version changes. Old version OVV's will still be readable, and will be converted to the new format when changes are saved. 3. You can now enter a $0000 address as the starting address for the disassembled code. 4. If you do not set the starting address, you can still use the F9 GOTO function. It use to be locked out if the starting address was unknown. 5. Finally fixed a long-standing bug in the Disassembler where two bytes on the end of the file being disassembled would not always be shown. * Both panel paths are now stored in the INI file, so when you re-start the program, both panels will be where they left off. * Doing a SEARCH (ASCII or HEX) in the HEX editor would fail to find matches when the match was at the end of the search buffer. This could happen throughout the file being searched, and not just at the end. * Rewrote the CHANGE DISK/TAPE LABEL routine (SHIFT-F10). The one for changing DISK labels didn't handle the ID and DOS VERSION bytes well. Also, both were not C64 character-set and upper/lower case friendly. * When changing the SORT method (Name, Ext, Time, Size), the tags in the panel will no longer be cleared unless you change to/from Unsorted. * Improved the display of error windows involving filenames. Now, instead of seeing "Can't open filename" without the file file in question being shown, you will see the filename (and many times with the path as well). * Pasting of a SEP group from inside the Directory Editor was broken if the SEP group started with or contained a non-existant entry. * Under certain circumstances, the panel header description of X64 files was wrong. If you previously had an extended D64 displayed (40-track, "S/40/E"), then the X64 would say the same thing. I was neglecting to clear out one variable. * Replaced some repetitious code with a new function call. This mostly affects the padding on filenames in images (Make new image, Format image, Rename files). * The WINDOW and LFN (long filename) routines are now self-initializing. This may not be important to the average user, but it helps me greatly as it prevents major problems when I forget to pre-condition them before useage. * Rewrote the way menus get disabled when the panels are off. It is now much more flexible. * You are no longer asked for a second confirmation when deleting files with hidden/system attributes set. They are treated like all other files. * When a DOS file copy failed, and LOGGING is enabled, the log probably would not contain the reason that the copy failed. * If a filename collision happens when copying files, and the destination files had some of the special attributes set (system/readonly), and you specified to overwrite "all" files, then those with the special attributes would still not be copied. * Moved the "testing team credits" from the CONCLUDE.TXT file in the FORMATS.ZIP archive to the README.TXT with the standard 64COPY distribution archive, which is where it always should have been. * Additions/changes to the FORMATS.ZIP document: 1. Added .G64 GCR file description 2. Added Sidplay/PSID format description 3. Added .TAP tap file description 4. Added .CRT file description 5. Added PC64 ROM file description * Changed some personal information in the online HELP and TXT documents. --------------------------------------------------------------------------- Summary of changes from 3.20 beta 1 to 3.2 beta 2 ------------------------------------------------- * Fixed a major bug: when converting a T64 file to a D64, the load address of the T64 file would get mangled. * Added read-only extract support for SPYne and CPK files. They work just like ARK or LBR where you can extract files, but you can't add/delete to them. * Added a new support file "64COPY.DIR" which holds all the Directory Customizer settings. I've recently started to do a lot of additions to this routine, and now allow multiple BAM message saving, custom SEPARATOR files, and the storing of groups of SEPARATOR files, all to make customizing the directory much quicker and easier. * Major changes to the Directory Editor: 1. Mouse/keyboard tagging was one line off. 2. Added a series of selectable file separator patterns on F7, with the last one user-definable. 3. Rewrote the way I deal with BAM messages by combining all the MESSAGE keys (ALT-F3/F4/F5) into one Message Control Center on ALT-F3. You can now store up to 5 messages, and view the one in the current D64 image. The F9 key is now the hot-key for setting the BAM message assuming you have selected the one you want in the Message Control Center. 4. Added a SEPARATOR control center on ALT-F7. This allows you to tag and save a common group of separators to a special area and them give the grouping a name. Thus whenever you need them, you can paste them into a disk image. It allows for up to 5 groups of separators, of 10 entries each. * Added a GEOS file info viewer to the FILES menu as "View GEOS info" (or use CTRL-V as a shortcut). This viewer shows you the GEOS ICON, structure type, load addresses, creation date/time, creator and other text information fields. If the file is not in GEOS format, you will be told, and no information will be displayed. * You can now click/enter Wraptor (WRA), Compressed ARKive (SRK) and LHA/LZH/LZS/SFX archives to view the contents, but you can do *nothing* else with them (no conversion, deletion, etc). SRK will show which subfiles are compressed, WRA will show the correct filetypes it supports (SEQ, PRG, USR, GEOS), and LHA will show the compression type (-LH?-) used on each file. * If certain errors occurred when extracting files from ARC/SDA archives, extraction would fail on *all* ARC/SDA file from then on. * You can now create images (F12) on disks with no root entries (like floppies). * The codes displayed in the error editor now correspond to the actual drive errors. i.e. 0 is error 20, 1 is error 21 ... 9 is error 29. 'F' is still defined as error 74. * When copying files into a T64, and you don't have the Config/Emulators switch "Auto-expand T64 dir." enabled, then when the directory fills up I will now ask if you want to expand the directory anyways. * If the switch "Use dir track for files" is enabled, and any sectors are available on track 53 of a D71 disk, they will be used. The "blocks free" count will also reflect the free sectors on track 53. * Convert now honors the native D71 interleave of 6. This value is adjustable on the Config/Emulator page. D81 sector interleave is hard-coded to 1. * Added a series of selectable file separators for disk images on InsertSep (SHIFT-F7). The last one is user-definable. * When trying to run 64COPY from a floppy (which I do, but I doubt anybody else does), and you accidentally execute something from the command-line by hitting return, you will now be asked if you want to execute the command. * Accidentally broke the passing of startup command-line execution for the options "QUIET", "MONO" etc. They are back now. * You can now pass in a name of an archive to display on the command-line, or by using associations under Win95 and double-clicking on it. * Rewrote much of D64-to-ZipCode to gain a reasonable speed increase. Also rewrote portions of ZipCode-to-D64 to clean up the code. * The diagnostic output of CheckZip (4 and 5 pack ZipCode) was missing some information when decoding specific sections of RLE-encoded sectors. * In the Text Editor, the CURSOR LEFT key, when it hits the left margin, will now go to the end of the previous line, providing some cursor wrapping function. * CheckZip Sixpack now shows the offset into the file where each sector resides. * When switching the panel display from an X64 to a D64, it was possible that the program would start to display the D64 as though it was an X64, due to a variable not getting set. * When converting from D64 to a diskpacked zipcode, the disk ID contained in the zipcode is the cosmetic ID from the D64 image at 18/0 offset 162, rather than a hardcoded value. * The BAM Editor display allows you to select your own character set for the used/free map from "*+þOX" for allocated and "úù-. " for free. This is on F6 when in BAMEDIT. * Added a check for GEOS disks to the CheckDisk routine. If it thinks it encounters a GEOS disk, you will be warned about continuing due to possible disk corruption. * The RIGHT menu didn't have the CTRL-F assignment for the FILTER window shortcut. * If you issued a "re-read" command from the menu for the opposite panel, only the presently active panel would get refreshed. * Additions/changes to the FORMATS documents: - Added SPYne "SPY" file description - Added 64NET "N64" file description - Added 64LAN "L64" file description - Added CCS64 "CRT" cartridge file description - Updated the ZIP topic - Updated the WRA topic - Updated the F64 topic - Updated the GEOS topic - Updated *many* other topics (thanks to Joe Forster/STA!) - Added a revision history to all the TXT doc's, to better track changes * Fixed some bad HELP screens --------------------------------------------------------------------------- Summary of changes from 3.10 beta 3 to 3.20 beta 1 -------------------------------------------------- Thats right folks, a new version, and this time I never even got the previous 3.10 version out of beta and officially released. What with the long filename functions included in 3.10, and now the D71 and D81 image support, I felt a need to change the version. The amount of internal changes to handle the new 1571 (D71) and 1581 (D81) images was so massive that I had no option but to change the version. I can't start to list what all had to be modified and re-written throughout the program to support these images, but suffice it to say that this version has to be tested all over again. Almost no function or sub-routine was spared in the re-write. * Added full support for D71 and D81 image files. No emulator yet uses them, but Star Commander does support them, and will have *native* high speed transfer routines for the 1571 and 1581. * Added in read-only extract support for filepacked ZipCode (A!xxxxxx) files. They work just a normal DOS directory. Hit return on one of the parts and select the files to copy/convert. * Added in convert-to-D64-only support for Sixpack ZipCodes (#!!xxxxx) on F11. The 6 zipcode files will be read, analysed for what errors exist, and converted into a D64 image, with the error bytes attached. Any major errors decoding the data will be reported. * I have changed *many* routines from using "static" to "dynamic" memory allocation for large strings. This seemed to alleviate a major stack overrun problem I was having, and I hope I didn't break too much. As a result, I was able to reduce the stack size down significantly (from 32000 to 10000 bytes). * Re-structured many subroutines in my overlay template to gain back more free memory (and of course I keep adding more to the program, taking some this "free memory" right back!) * You can now switch the panel font between the C64 upper and lower character sets (simulated sets) by holding down the ALT followed by a SHIFT key, or by the switch "Show C64 names in lower case" located on Config/Panel Setup. This also applies to the display in the D64 Directory Customizer and the D64 Hex Editor. Note: this is not the full font support I want to include, but its close. Now at least, you can switch the panel display to read some of the filenames you couldn't read before, especially when the case was mixed. Because of the changes relating to the font modifications, I had to alter some of the routines that depend on displaying and entering C64 characters (D64 Dir Edit, D64 Hex Edit, a few others). Be aware that all may not be well yet! * Changes to the Convert routine: 1. Added a new switch to the Config/Emulator page "Auto-expand T64 dir." which when set will expand a T64 directory (if necessary) if the directory will overflow before the copy is finished. Now, you can copy as much as you need into a T64 (up to the maximum files displayable) without getting the "T64 directory is full" error. 2. When converting files (from DOS), if a filename contains either "_" or "~", they will be converted to spaces. 3. Restructured the code, moving some code out to subroutines to reclaim some of the memory I have lost recently with the add-on of supporting D71 and D81 images. 4. When converting files into a disk image (D64, X64, D71, D81), and a duplicate filename is encountered, you now have the ability to change the name, or skip the filename. 5. Converting files to P00 format with the switch "Use long C64 dest names" enabled would generate a bad DOS P00 filename, seeing as all P00 files must be short names. 6. Crosslinked files in disk images were no longer being reported during a Convert. * Changes to the Directory Editor: 1. I allowed you to enter strange ALT-key combinations when it should not have. 2. Dummy entries that are created now have the track set to point to the start of the directory, making them appear to be separator files by default. 3. The dialog boxes for Set Columns (F2) looked terrible, so I redesigned them. 4. The BACKSPACE key now works again. * Changes to the HELP code: 1. Altered the main index screen to make finding topics a little easier. Each heading is now in a different color from the subtopics, with the subtopics indented. 2. Made extensive changes to the way I display text and its attributes (BOLD, CENTER, etc). 3. The mouse cursor would disappear when displaying the contents of any topic. * Some changes to the Text Editor: 1. Finally added paragraph justification. When the switch is set ("[ ] Justify paragraph on format" in Config/Editors or the Editor Configuration window), any paragraph being "Block Formatted" (ALT-B) will be justified to the maximum line width. 2. Added new switch "Append this block to this file" to the "Save Block" (F11) key. Now you can either save any tagged block to a new file, or append it to an existing file. If you are appending, and the destination filename doesn't exist, you will be asked if you want to create it. 3. When pasting data into a text document, you can now enter the starting address for the block. It use to assume a starting address of zero. It will also determine how many digits long the address should be by the starting address and the number of bytes being pasted. Any value being pasted below 33 ASCII (control codes and spaces) will be converted to a "ú" in the ASCII display section. This prevents pasting of LINEFEED, CARRIAGE RETURNS and FORM FEED codes that *really* screw up the editor. You also have control over whether you want: - ASCII block appended - Starting address prepended - Block title header prepended - Style of HEX numbers (C-style "0x??" or simple HEX list) 4. Block Format (ALT-B) will now remove extra spaces in the lines before it re-formats the entire paragraph. 5. Restructured the code to optimize the memory useage. 6. Block Format will now move the screen up if the cursor bar goes into the last few lines of the screen, so you can see what else is coming up before formatting it, rather than forcing you to scroll the screen up manually. 7. If the REPLACE fails (can't find a string to replace), the tag area will now be set in the right place. * Many additions and changes to the FORMATS.TXT document: 1. Added a new section to many of the topics about "what it takes to support xxx format". This might prove helpful to those people who want to understand and work with (especially creating/writing) the various file formats. 2. Added description of CVT, a format used to transfer GEOS files as sequential files. 3. Added description of D71, the 1571 disk layout. 4. Added description of D81, the 1581 disk layout. 5. Added description of F64, a rare companion file to the D64. * Changes to the Snake Game screen saver: 1. The saver would still appear to run out of snakes, and not regenerate. The error turned out to be that some snakes were being generated invisible (black color), so you could not see them. 2. Added a new config option called "Place obstructions". With this, you can place a random number of "blocks" as obstructions to the snake movements. * Changes to the Color Configuration: 1. Increased program colors to 100 per mode (B/W and COLOR) for 200 total. 2. Added some color schemes to the F9 (now the "Set Scheme" key). From there, you can load the default colors, or 3 pre-defined color schemes (Phil's, Alternate 1 or Alternate 2). 3. The color "Input area hilited" for the Error Windows has been changed, although in order to see the change you will have to go to the Color Config window, Error Windows heading, and press F9 to restore the colors. 4. If you loaded a color scheme (previously just default), and then went back in to edit the colors, the new scheme would not be active anymore. 5. Corrected some bad color values, and linked a few more colors together. * Changes to the Disassembler: 1. If "Include labels for common ROM and I/O calls" was enabled when Disassembling a file (F2) and a BYTE table was encountered, the output might be incorrect, and could contain ROM or I/O lable references. 2. Restructured the code to gain more free memory back (specifically changes to reduce the stack size down) * Changes to better support CD-ROM disks: 1. The "read-only" attribute is no longer kept when copying files from a CD-ROM. 2. The file time/date is now properly kept when copying from CD-ROM. 3. Cleaned up many routines, most of which use to heavily complain when working with files on *any* write-protected disk, such as CD-ROM. 4. Most routines will now "flash" the "View Only" message in the info bar when working with files that can't be modified. * Changes to the long-filename (LFN) code: 1. If I attempted to close a file handle that had already been closed, the results would be unpredictable. I likely do this in the program, and that would account for some strange bugs. 2. The "auto-detect" of an LFN-compatible OS didn't work right. It would say that pure DOS was LFN capable. 3. The date/time of files copied to/from remotely mounted disks (network drives) is now done properly. 4. Filenames that need to be created will now default to uppercase extensions (like "D64" rather than "d64") to try to keep the number of LFN entries to a minimum. However if you change the name so it has lower-case properties, then the name will be created LFN. * ALT-UPARROW and ALT-DOWNARROW now adjust the height of the panels, similar to the "% of screen" field in the Config/Visual page, but now a line at a time, versus a percentage of the screen height. * Implemented preliminary code to support "INFO", "QUICKVIEW" and "DIRTREE" panel modes. The actual code for these panel modes won't come for some time, but I thought it would be good to get the prliminary work out of the way. * Changing a C64 filename that contained graphics characters would totally destroy the filename. Also, you could not change the name of a separator file if there was already another name the same. * Added a new menu item "Mini Status" under the OPTIONS menu. This controls whether the INFO or FREE line gets displayed at the bottom of the panel. "BRIEF" only turns on the INFO line, "FULL" turns on the INFO and FREE line, "OFF" turns them both off. * Added a new option to the Miscellaneous page called "Use CRSR-LEFT/RIGHT nav.". This will make the CURSOR-LEFT key act like a "back up one directory level" command ("CD .."), and the CURSOR-RIGHT key will go into the directory or image/emulator file under the hilite bar. Instead of using the HOME/CURSORDOWN/ENTER sequence to enter directories, it makes directory and file navigation much easier, but substantially changes the way the program works/feels. * Files whose extension was shorter than 3 characters would be displayed when "show only executables" or "show only emulator files" was checked in the Filter menus. * Added a new "Panel Settings" page to the Configuration, and moved some of the switches from other screens (various Visual and Other) to it. * The ALT-key search routine now works a little differently. It will search from the present location of the panel hilight bar down until it finds a matching filename. If none are found, then it will search from the top of the list for a matching name. * If one panel drive letter was different from another, the ALT-Fx change drive window may not show the correct active drive letter. * The MACRO routine no longer records *any* mouse movements, clicking or dragging, but only records keyboard strokes. * Re-assigned ALT-UPARROW & ALT-DOWNARROW (recall history) to CTRL-UPARROW & CTRL-DOWNARROW. * The Button Controller now handles HEXADECIMAL ($0000 to $FFFF) entry fields, and limits the input to 0-9 & A-F. Also, NUMERIC entry areas can now only have numeric characters entered into them, such as 0-9, "+" and "-". * The HEX Editor now shows the tagged area amount. * If the panels have just been redrawn, and the hilite bar in the non-active panel was overtop of a long filename, the status line at the bottom of the panel would only show the short name until you switched (tabbed) to that panel. * The "Use long C64 dest. names" switch under the Config/Emulator page would still work even if the master "Use long filenames" switch from the Config/Miscellaneous page was off. Now, all long filename switches (including Panel Setup's "Display long filename only") are dependant on the master Miscellaneous switch. * Added a new switch to the Emulator page of the Configuration called "Keep DOS filename case". This will keep the upper/lower nature of the case (usually from a long filename), rather than converting the filename to upper only for a C64 file. * Renaming the file inside of a P00 would corrupt the DOS filename. * CheckZipCode will now page the output if you send it to the screen. You will be given the option to do "continuous" output, cancel the listing, or simply display another page. * If the panels were off, the LEFT/RIGHT menu sort options are still visible, but selecting one of them would not change the sort setting as it should. * If you got an error window (BAM warning, WipeFile, etc), the key/button pressed was not passed back to the calling routine properly. Cancelling the window might not be recognized as a cancel command. * Added a switch for the WipeFile pattern to the Miscellaneous page of the Configuration. This lets you set the overwriting pattern, either "linear" where a repeating pattern of 00, 01, 02,...,FF is written, or a completely random block. * Doing any form of "Jump to ROOT" command (CTRL-\, ALT-\, etc) when inside of an image file would only back out of the file to the directory where it was in. * The disk ID bytes for created disk images (either by Convert or F12) are now randomly chosen from text and numeric characters instead of being hard-coded to the same value. * The menu which drops down on an F9 (or tapping the ALT key) is now dependant on what panel you are currently in, just like Norton Commander. The LEFT menu will drop if you are in the left panel, and the RIGHT menu will drop if you are in the right panel. * The "Swap Panel" command was not swapping all the new panel variables I had created over the last few months. * Added the switch "[ ] Include directory tracks as file space" to the window when copying into disk images (D64/X64/D71/D81). This is the same switch as on the Config/Emulator Conversion window called "[ ] Use dir trak for files". * When in 25-line mode, the right-hand window shadow is now double-width, so that the shadows appear to be the same thickness. * Delete Files (F8 or SHIFT-F8) would allow you to try to delete the ".." directory. * Added a new option to the Panel Setup menu item called "[ ] Show scroll bar" where you can turn off either panel right-hand border scroll bar. * Unified all the search/replace strings among the various editors/viewers into one common string. * Spaces at the beginning of the command-line are are checked for, and removed, in more functions before they are executed. A blank command-line does nothing, and can (should!) be removed before doing cursor navigation, processing the command-line, etc. I've always done this, but simply expanded it to operate in more routines. * The Panel Layout Editor would lose changes made to the layouts and would not notice that changes had been made when exiting under some circumstances. * You could not create a directory separator (SHIFT-F7) immediately after a D81 sub-directory (DIR), but you could after a partition (CBM). * Clicking the "WipeFile..." button when deleting (F8) files or D81 partitions from inside disk images (D64, D71, D81) would not do a wipefile, but just a mere delete. * If you used SHIFT/CTRL/ALT keys and clicked on the FKEY bar function you wanted, it might not have gotten the function you wanted. * Finally added in a internal "write sector" routine, to write sectors out to disk images. I've implemented it in most routines that work with disk images. * Assigned CTRL-F to call up the FILTER menu item automatically. Added this short-cut key to the MENUS as well. * The Filter option "Include SEPS in +\- tag" is now defaulted on. * Spelling mistakes corrected. * Many changes to the FORMATS.ZIP * I've found a bug in Windows95 which affects how a *long* destination filename gets created, and at first it appeared to be a bug in 64OPY. Here's how to duplicate it from the 64COPY command line. Note you *must* be in Win95 to see this. 1. Copy (F5) a file, upper case name only, to a destination. 2. Rename the destination file (SHIFT-F6) after the copy so it is now lower case. This creates a LFN entry of the lower case name. 3. Delete (F8) the renamed file. 4. Now copy (F5) the file again, still in uppercase only, and see what name, and in what case, the destination is in. It will appear in LFN as a *lower* case name, not upper. What appears to be happening is Win95 thinks that the old LFN entry matches the new name, and doesn't realize that the case is actually wrong, and to re-write the name correctly. This only happens when there *was* a filename at the destination, with an LFN entry of the same name, but in the wrong case. ------------------------------------------------------------------------------- Summary of changes from 3.10 beta 2 to 3.10 beta 3 -------------------------------------------------- * Changes to the Convert routine: - Added create-only ARK support into the Convert routine. You can create them (and copy out of them), but you can't add to or delete from them. - Added full REL file support. You can copy them out of D64, ARK, LNX, ARC/SDA and R00 (PC64) files, and copy into D64/X64, LNX, R00 and ARK. They can be copied into T64's and DOS binaries, but they cease to be REL files. - If converting a ZipCode to a D64 failed, a partially created D64 file would be left. - The filetype would get mangled (set to FRZ) when copying T64 files into other T64 files. * Changes to Config/Screen Saver window: - Re-designed the config window, moving the "Test Savers" button and adding a "Config" button. - Arranged the list of savers into a user-selectable list. Now you select the specific saver you want to work with and either press Test or Config. - The checkboxes beside the saver names still exist, to enable/disable their execution. - Added extra configuration options to all the screen savers (under the config button). - When the SNAKE GAME ran out of snakes, they would not always regenerate. * Changes to the MACRO control center (CTRL-F9): - Added new buttons for Play, Record and Delete. - Any Fkeys that are not available in a particular mode are not shown. - Added two of the Config option switches "Auto-chain recording" and "Auto-repeat playback". * Changes to the Text Editor: - The tagging (F7/F8) in the Text Editor has been improved/fixed. - Added "delete word right" (CTRL-T), "delete word left" (CTRL-BACKSPACE) and "delete to end of line" (CTRL-K) - Added in a Norton Editor mode switch "Use Norton Editor keys". It emulates *most* of the operations of Norton Edit (like live tagging on F3), but the screen colors are not the same, and there are some subtle differences. * Added a new switch to the Config/Emulator page called "Use long C64 dest. names" which allows you to create long DOS names from long C64 names. i.e. If you have a filename "forb. forest ii", the converting to a DOS binary with this switch on, the resulting filename will be "forb._forest_ii.ext". Notice the '.' characters of C64 names will be retained. When not running an LFN os, make sure you don't enable this switch. This switch is also under program control, but only when the program is first executed. Once the program is running, you can change the switch manually. If 64COPY detects you are running under a long filename OS (Win95), then this will be turned on. If you're running under DOS only, this will be turned off. You can still change the switch during normal program operations, but be aware that the program *might* change it for you. * Removed a long-time (annoying!) bug in the screen saver. If you hit an "extended" key (like an Fkey or an ALT-key) to bring back the panel display when any screen saver is running, the keystroke would not be fully taken out of the keyboard buffer, making the mouse buttons inoperative and causing *lots* of other problems. * Turning the panels on/off (using ESC) enough times with the titlebar visible would eventually cause an "Internal error: no more windows available". * You can now cancel the changes made in the FILTER menu item, PANEL SETUP menu item, Color Configuration and Program Configuration windows by clicking the CANCEL button, or hitting ESC on the keyboard. Clicking on the OK button will go ahead with the changes. * Increased the user-settable options to 200, to make room for individual screen saver configuration (and more). * When the clock changed from 12:59 to 1:00, the leading "1" from the "12" would remain, making the time appear to say "11:xx" instead of "1:xx". * The cursor was accidentally being left activated when calling some functions from the menus, but only when the menus were brought up using the mouse, not F9. * The "Button Controller" can now handle confirmation buttons "OK/CANCEL" with an active key other than the first key of the button name (i.e. instead of a "Configure" button using the 'C' key, I can send it in as "conFigure", with the 'F' being the active key). Up until now I could not use buttons starting with the 'C' key, since that key is always reserved for "Cancel", whether its a visible button or not. * Greatly improved the randomness of the random number generator. * Added an extra line to the info header line of the File Viewer, to allow for very long filenames. * Changes to many entries in the FORMATS.TXT doc (esp. dealing with REL file support in various file types) * ARK files would not display file sizes over 256 blocks properly, and under some circumstances you could not extract from them properly. * Fixed some cursor movement and highlighting bugs in the D64 HEX Editor. * Formatting a D64 image would cause the BAM for track 18 to be incorrect (18/0 and 18/1 would not be allocated for the BAM and directory) * The HEX Editor now displays the ASCII code (hex and decimal) of the character you are on. * ZipCode's being displayed in the left panel no longer claim to have error bytes attached (35/E) * Compare can now compare two files in the same panel.