The Star Commander, Version 0.82 This is still not the final release of The Star Commander. Look out for further releases. Please, report bugs and ideas to me because I want Version 1.0 to be the final release. Because it took a significant amount of time to create this documentation, you are expected to read it thoroughly. For a list of important URL's, where you can find more information about the Commander and the cables it uses, see the 'Related Net resources' section. Note: This documentation is meant to be viewed with a monospace font, in IBM code page 437 (US default for DOS). With a proportional font, tables and drawings will fall apart; with other code pages, including but not limited to DOS 85x, Windows 125x and ISO 8859-x, some characters will look strange. You might want to view this file from the Commander itself. 0. Table of contents 1. Introduction 2. Copyright and license 3. System requirements 4. Installation 5. Usage 6. Advantages 7. Connecting a Commodore drive to your PC 8. The X1541-series interfaces 9. Technical background information 10. Troubleshooting 11. Reporting problems, ideas and wishes 12. Bugs fixed since the previous release 13. Other changes since the previous release 14. Known problems and limitations 15. Coming soon 16. Thanks to 17. Related Net resources 18. The author 1. Introduction This program handles the image files of the C64 Software Emulator (C64S, (C) by Miha Peternel and Seattle Lab, 1994-1997), the CCS64 emulator ((C) by Per Hkan Sundell, 1996-2001), Personal C64 (PC64, (C) by Wolfgang Lorenz, 1994-1997) and VICE ((C) by the VICE Team, 1993-2001). It copies files and disks between the PC and external Commodore 1541, 1570, 1571 and 1581 drives and converts several Commodore archive formats. It is similar to The Norton Commander (NC, (C) by Symantec Inc., 1986-1995) and The Volkov Commander (VC, (C) by Vsevolod V. Volkov, 1991-2001) so it will surely be easy to use. However, before you start using it, please, read this documentation and the online help carefully, for the differences from the other Commanders, the description of the X1541-series interfaces and other details. 2. Copyright and license The Star Commander is copyright (C) by Joe Forster/STA, 1994-2002. The Commander is giftware. You may use the unregistered version as long as you wish and you may give it to any individual, provided that it's in the original, unmodified archive. Don't distribute single files, only the whole package. To avoid confusion, you should download distribution packages from the homepage or other distribution sites listed below. If you get a package from somewhere else then make sure that the package has the author's authentic verification stamped on it. The unregistered version is in no way crippled, there are no nag screens or delays in it. However, if you are frequently using the Commander and you are satisfied with it then you are encouraged to register. Please, read the file REGISTER.TXT for more details. You must not distribute the personal keyfile you receive when you register. The source of the Commander is distributed under a public license that is similar to the GNU Public License but is more restrictive, for the protection of Commander users and the author. You may distribute only those modified versions or derived programs that satisfy all restrictions in the license. When you distribute the Commander, modified versions of it or programs derived from it, you may not ask for money above the normal fee of the distribution media itself. Furthermore, you may not publish the Commander or its source on floppy disks, CD-ROM's, FTP sites, WWW pages or any other distribution media, include it in a software compilation or bundle it with other software or hardware without prior permission of the author. Note that public distribution of the beta releases of the Commander is completely prohibited. The only public place where you can find them is the homepage. The Commander is provided "as is", without a warranty of any kind. You are using it at your own risk. The author is not liable for any damage or data loss caused by the program. The Commander supports the following X1541-series cables: - X1541 cable ((C) by Leopoldo Ghielmetti, 1992) - XE1541 extended cable ((C) by Nicolas Welte and Wolfgang Moser, 1997) - XM1541 multitask cable ((C) by Michael Klein and Nicolas Welte, 2000) - XA1541 active cable ((C) by Michael Klein and Nicolas Welte, 2000) - XH1541/XH1571 hybrid cables ((C) by Bigfoot, 1997) - XP1541/XP1571 parallel cables ((C) by Joe Forster/STA, 1997) If you produce and sell cables or adaptors that are compatible with these cables - except for the original X1541 cable -, you must give credits to the respective copyright owner or copyright owners. If your adaptors are built onto printed circuit boards then you must also make the complete layout available in a format and resolution that is suitable for high quality reproduction so that people can build the adaptors themselves, if they want. This common license for the cables is an agreement among the cable authors. However, because the author of the original X1541 cable couldn't be contacted, this license does not apply to the original X1541 cable. 3. System requirements You must have an IBM or compatible PC with an 80286 processor or higher with MS-DOS 3.20 or above installed on it and about 470 KBytes of free conventional memory. Some versions of the Linux dosemu don't like the the OverXMS unit of the Commander for some, yet unknown, reason. You may also try the Commander under the DOS emulator of OS/2, after having enabled the HW_TIMER option in the DOS settings. The Commander works quite well in DOS shells of Windows 3.x and Windows 95/98/ME. For Windows NT/2000/XP, see the tweak package. If you want to try accessing a Commodore drive under a multi-tasking system, you must enable the 'Force async transfer' option. Remember that, although some extra functions were implemented in the Commander to make it run better under multi-tasking systems, you are supposed to run it under real DOS. 4. Installation You can install the Commander simply by decompressing the distribution package using PKZIP 2.xx or any other compatible program. You don't need all the files to run the Commander, most of them are only for your comfort. Required: - SCMAIN.EXE: For an absolute minimum installation, you need the main executable. Recommended: - SC.EXE: If you want to have much more memory in the DOS shell, keep this loader and launch it instead of the main executable. - SC.HLP: Keep this to enable the online help. - SCVIEW.EXE, SCEDIT.EXE: With their help, you can view and edit DOS files and Commodore files inside image files and uncompressed archive files. Optional: - SCSETUP.EXE: Allows you to change the settings of the Commander outside the program. - *.MNU, *.EXT: Some sample menu and extension files to help you with handling PC and Commodore archives and formatting PC disks. - PALETTES.ZIP: Contains some predefined color palettes that resemble the palettes of other Commanders and Commander clones. - PRINTHLP.EXE: Run this to extract the online help into a text file or to send it to a printer. - SC.ICO, SC.PIF, ICONS.ZIP: If you want to use the Commander under OS/2, Windows 3.x, Windows 95/98/ME or Windows NT/2000/XP then these are just for you. - SC_WINNT.ZIP: Tweak package that allows the Commander to access Commodore drives under Windows NT/2000/XP. For more details, see the documentation inside the package. - SU???.ZIP: Contains the Star Utilities, the external utilities that help you with mass-converting Commodore archive formats. For more details, see the documentation inside the package. 5. Usage If you did an absolute minimum installation then start the program with SCMAIN.EXE. If you also have the loader then start the program with SC.EXE. They accept the following command line parameters: SC [options] [startup command] or SCMAIN [options] Options are case-insensitive and have to start with a slash; unlike in some other DOS programs, hyphens will not work. Valid options are the following: - /?: Displays the help screen of command line parameters. - /nolpt: Disables access of parallel ports completely. You will not be able to use Commodore drives from your PC but, in change, no strange behavior will occur either because the Commander will not touch the parallel ports. See below for a list of such strange behavior. - /novesa: Disables support for VESA BIOS extensions upon startup (when the current screen mode is determined), in case it causes strange behavior on your hardware. Note that this command line option does not override the option with a similar name in the configuration menus: that option rather controls the usage of the VESA BIOS when the Commander is already running. The startup command is a DOS command that is executed before the Commander starts up. Note that the main executable SCMAIN.EXE itself is unable to execute startup commands. Please, note that there's no documentation on how to use the Commander. However, the context-sensitive online help contains all information on how to use each function. If you're using the Commander for the first time then read the online help carefully, to find out what the Commander is capable of. You might want to use the included help printer program to have the online help printed into a text file or sent to your printer, for reading it later. To configure the Commander for your needs, enter the 'Configuration...' item of the 'Options' menu and go through all options in all configuration screens, reading the corresponding paragraph of the online help on your way. Proper configuration is especially important if you want to access a Commodore drive from your PC. Go to the main configuration screen, enter the 'Transfer options' menu and set, at least, the following options: - Transfer mode: For 1541, 1570 and 1571 drives, you should set it to 'Warp' because this is the fastest and most reliable of all. For other drives, leave it on 'Normal'. - Serial cable: Set the type of your X1541-series serial cable (X1541, XE1541, XM1541 or XA1541) here. Note that the listed cables are serial, even if you connect them to the parallel port of the PC. Use 'None' if you connected a real PC printer that would get confused when the Commander initializes the parallel ports. - Parallel cable: Set the type of your X1541-series parallel cable (XH1541/ XH1571 or XP1541/XP1571) here. Use 'None' if you have no parallel cable or you don't want the Commander to touch the corresponding parallel port. - Force async transfer: Disable for plain DOS and enable for multi-tasking systems (Linux, OS/2, Windows 3.x, Windows 95/98/ME, Windows NT/2000/XP). For Windows NT/2000/XP, also see the tweak package. - Manual timeouts: You might want to have it disabled all the time. - Delay value: Press the 'Recalibrate' button, to have a near optimal value computed for your machine. Note that this value depends on the CPU speed, the operating system and the CPU load. Make sure to recalibrate whenever using a preconfigured copy of the Commander on another PC or under another operating system. - Serial interface: Set the parallel port which your X1541-series serial cable is connected to. If your parallel port has a non-standard address, select one of the custom slots and enter the port address in hexadecimal notation. - Parallel interface: Set the parallel port which your X1541-series parallel cable is connected to. If your parallel port has a non-standard address, select one of the custom slots and enter the port address in hexadecimal notation. - Detect port modes: Enable it, to have warnings displayed about possible transfer problems. However, this may cause strange behavior or certain hardware, including lockups. Also, under Windows NT/2000/XP, it may cause long delays. In such cases, disable this option and hard reboot your PC or restart the DOS shell. - Drive type: Set the type of your Commodore drive here. For more details, see section 'Commodore drives' in the online help. Under certain circumstances, the usage of the parallel ports may cause strange behavior: - After having started the Commander, not even a printer can be accessed anymore, until the PC is rebooted. Possibly, your parallel port falls into an unusable state when the Commander tries to detect its mode. Disable 'Detect port modes' and reboot your machine. - There is a complete system lockup whenever the Commander is started. Very few parallel ports lock up the hardware when their mode is probed. Set your parallel port to another mode in the BIOS setup and try again. If none of the modes work without a lockup, disable 'Detect port modes'. - Under Windows NT/2000/XP, there are long delays upon startup or a few seconds/minutes after the Commander has started. When the Commander tries to detect the mode of the parallel port, Windows gets confused. Disable 'Detect port modes' and restart the DOS shell and the Commander. - Under Windows NT/2000/XP, when a real PC printer is attached, a page with garbage characters is printed upon every startup of the Commander. When the Commander initializes the parallel ports, Windows may think it wants to print something and it forwards bogus data to the printer. Set 'Serial interface' to 'None' to skip parallel port initialization. If you specify the "/nolpt" option upon startup, these problems should be gone - although you will be unable to use Commodore drives. If the problem is still there then it's not because of the way the Commander accesses parallel ports. If you have problems with accessing Commodore drives from your PC, you can find more solutions in the 'Troubleshooting' section of this documentation. 6. Advantages The following features make the Commander the best of its kind: - It is very comfortable to use the well-known Commander-style environment. There is no need to learn sequences of weird key combinations, only press some familiar ones. You can always clearly see what's happening on the screen. - Several configuration options allow power users to tune the Commander to maximum performance. - The Commander has built-in support for several Commodore archive formats (Lynx, filepacked ZipCode, LHA, Arkive and TAR). The external utilities also help you with mass-converting them. - The disk turbos, for Commodore 1541, 1570 and 1571 disk drives, provide an excellent compromise between transfer speed and reliability. Following is a benchmark of the Commander under plain DOS, using a serial cable only, without async transfer. An original 1541-II drive was used with a 35-track disk. The disk contained a 210-block file, stored below track #18. The soft interleave used to save the file was 10 sectors, head movement speed was set to 16. ͻ Whole disk copy Read from the 1541 Write to the 1541 ͹ Normal mode 7:50 (*) 9:55 (*) Ķ Turbo mode 2:25 (*) 2:25 (*) Ķ Warp mode 1:16 (*) 1:19 (*+) Ķ Hybrid turbo mode 1:09 (*) 0:48 (*) Ķ Hybrid warp mode 0:50 (*) 0:29 (*+) Ķ Parallel turbo mode 0:48 (*) 0:48 (*) Ķ Parallel warp mode 0:23 (*) 0:29 (*+) ͼ ͻ 210 block file copy Read from the 1541 Write to the 1541 ͹ Normal mode 2:20 2:25 Ķ Turbo mode 1:00 1:01 Ķ Warp mode 0:26 (*) 0:26 (*) Ķ Hybrid turbo mode 0:22 0:24 Ķ Hybrid warp mode 0:18 (*) 0:10 (*) Ķ Parallel turbo mode 0:22 0:24 Ķ Parallel warp mode 0:10 (*) 0:10 (*) ͼ (*) Capable of retrying bad sectors. (+) Capable of verifying data written onto the disk. - Most of the image file handling routines are faster than those of the other similar utilities. - Hopefully, you remember Disk-Demon, the great C64 disk editor, written by G. Brandt and A. Wellie in 1986/87. A similar disk editor is built into the Commander so that you can modify data in disk images and on disks in Commodore drives directly. - The Commander can optionally display everything with the C64 character set (only on EGA/VGA video cards). 7. Connecting a Commodore drive to your PC The serial connection is done using the X1541 interface or its substitutes. If you only have an EPP or ECP port then you have to substitute the X1541 interface with the XE1541, XM1541 or XA1541 interface. If you already have one of the serial cables mentioned above and want to achieve a much higher transfer speed and you're willing to modify your 1541, 1570 or 1571 drive and you have a bidirectional parallel port then you can make use of the XP1541 or XP1571 parallel interface. If you only have a unidirectional parallel port then the XH1541 or XH1571 hybrid interface gives you the best performance. You can find the description of all interfaces in the following section. The Commander was designed to access Commodore drives under plain DOS only. If you wish to do that under a multi-tasking system then you should either use the XH1541 or XH1571 hybrid cable or the XP1541 or XP1571 parallel cable or, if having a serial cable only, enable the 'Force async transfer' option. Still, it's not guaranteed to work absolutely error free. Boot real DOS, remove memory managers, device drivers and other resident programs, if having problems. The Commander has a machine independent synchronization method that uses the hardware system timers. The automatic calibrator inside the Commander tries to find a delay value that makes your PC communicate with the Commodore drive at the exact speed of the drive. However, if you encounter transfer problems or you want to fine tune the transfer speed then you may want to raise or lower the delay value in the 'Transfer options' menu manually. The Commander is equipped with optional fast transfer modes. In turbo mode, it transfers data from and to the external Commodore drive about 2-3 times faster and, in warp mode, 5-6 times faster. If you also connect your Commodore drive with the XH1541 or XH1571 hybrid cable to the PC, using turbo mode, the data transfer will be 6-12, with warp mode, 6-20 times faster. The XP1541 or XP1571 parallel cable gives you 6-12 times the original speed in turbo mode and is 10-20 times faster in warp mode. The Commander has turbo and warp command routines, as well. These speed up deleting files and validating disks to 2-10 times the original speed (depending on the number and length of the files on the disk) and formatting a disk takes only about 12 seconds. The Commander supports the following Commodore drives, including all models and compatible clones: - 1541 drives. 1 MHz, single-sided disks. - 1570 drives, in native 2 MHz mode. Single-sided disks only. - 1571 drives, in native 2 MHz mode. Double-sided disks are supported as well single-sided ones: the Commander autodetects the number of sides on the disk. - 1570/1571 drives, forced into 1541 emulation mode: 1 MHz, single-sided disks. - 1581 drives. Currently, there are no disk turbos for this drive so you're stuck with normal speed transfer. Disk turbos will be implemented in the next release. To use the built-in drive of a C128D or an SX64, see the 'Troubleshooting' section. 8. The X1541-series interfaces Here is the description of the X1541-series interfaces, with which you can connect a Commodore drive to your PC to use with the Commander. If you don't want to read through this complete chapter then you should, at least, read the most important facts about the cables and their compatibility with parallel ports of different modes. If you'd like to build cables and compatible adaptors yourself then you can find a more detailed description of them at the cables and adaptors pages. If you're not good at at soldering then visit The X1541 Shop and buy cheap but good quality cables and adaptors there. If you're having problems with your cable, you should download XCTest from the useful external programs page and test your cable with it. Serial cables are the following: - The X1541 cable works on older type SPP and PS/2 parallel ports, ones that have bidirectional control lines. The parallel port on I/O controller cards for 286, 386 and 486 machines and on Hercules video cards and the integrated parallel port of most newer 486 motherboards support the X1541 cable but only certain Pentium motherboards have compatible parallel ports. On motherboards with an integrated parallel port, you have to set the mode of the parallel port to SPP because the X1541 cable won't work with EPP and ECP parallel ports. However, on many newer motherboards, there's absolutely no way to make the X1541 cable work because the control lines are not bidirectional in any mode of the parallel port. You can test your parallel port's compatibility with the X1541 cable using X1541Test. If it proves to be incompatible then you need one of the other serial cables. - The XE1541 extended cable is a substitution for the X1541 cable. Its advantage is that works in all modes of all parallel ports. Its drawbacks are that you need special diodes to build it and that only a few programs support it. Please, note that this cable has problems with motherboards that use the ALI 5 chipset and certain laptops. On these machines, use the XA1541 active cable instead. - The XM1541 multitask cable differs from the XE1541 extended cable in two wires swapped at the Commodore end. This enables other transfer programs to use interrupts rather than polling for handshake with the external Commodore drive. Its drawbacks are similar to the XE1541 extended cable. It's supported by less programs than the XE1541 extended cable, however, it works under Linux, as well. - The XA1541 active cable is similar to the XM1541 multitask cable but it uses transistors and resistors instead of diodes. This makes it the ultimate transfer cable because it works with all kinds of parallel ports, including the ones the XE1541 extended cable and the XM1541 multitask cable have problems with. Again, it is supported by only a few programs. This cable also works under Linux. Optional parallel cables are the following: - The XP1541 parallel cable speeds up communication with a Commodore 1541 drive via a PS/2, EPP or ECP parallel port where the data lines are bidirectional. Its advantage is that both sending data to and receiving data from the drive becomes 3 times faster. Its disadvantages are that you have to modify your drive internally so that you can connect this cable to a parallel plug on the drive. Also, its need for a bidirectional port excludes the possibility to use it along with the X1541 cable, except on PS/2 ports. You can't use this cable alone, only together with one of the serial cables above. - The XP1571 parallel cable is a modified version of the XP1541 parallel cable, designed for 1570 and 1571 drives. Except for the periphery chip used in the Commodore drive, it is the same concept as the XP1541. - The XH1541 hybrid cable speeds up communication with a Commodore 1541 drive drive in all modes of all parallel ports. Its advantage is that sending data to the drive becomes 3 times, receiving data becomes 1.5 times faster. Its disadvantage is that you have to modify your drive internally so that you can connect this cable to a parallel plug on the drive. You can't use this cable alone, only together with the X1541 cable. You can't use this cable together with the other serial cables on the same port, because of the conflict between the pins used by the two cables on the PC parallel port. - The XH1571 hybrid cable is a modified version of the XH1541 hybrid cable, designed for 1570 and 1571 drives. Except for the periphery chip used in the Commodore drive, it is the same concept as the XH1541. - If you only have one parallel port but want to use the XH1541 or XH1571 hybrid cable or the XP1541 or XP1571 parallel cable then you can create a Y-shaped cable. One end plugs into the PC parallel port and the two other ends plug into the serial and parallel ports on the drive. You can use the X1541 cable together with the XH1541 or XH1571 hybrid cable on an SPP parallel port; the X1541 cable together with the XP1541 or XP1571 parallel cable on a PS/2 parallel port; and the XE1541 extended, XM1541 multitask or XA1541 active cable together with the XP1541 or XP1571 parallel cable on a PS/2, EPP or ECP port. You can't use the other serial cables together with the XH1541 or XH1571 hybrid cable on the same port, because of the conflict between the pins used by the two cables on the PC parallel port. The mode of your parallel port is a vital feature that determines which cables you can use with your machine so try to find out all the modes of your parallel port. Older I/O and parallel port cards only have the unidirectional SPP mode, most Pentium and newer 486 motherboards have integrated parallel ports and allow you to set the port mode in the BIOS setup, with the usual choices of SPP, EPP and ECP. It's possible that, when changing the mode of the integrated parallel port in your BIOS setup, you won't find the necessary modes as they are called in this documentation. Some BIOS setups have different names for the port modes. Compatible, Normal and Standard usually refer to SPP, Extended possibly means PS/2 or EPP and Enhanced stands for EPP or ECP. Below you find some advices about which cables to use with a given parallel port mode and vice versa. They are based on the fact that most SPP and PS/2 parallel ports support the X1541 cable and most EPP and ECP parallel ports don't. However, because of the lack of strict standards, there are exceptions to these rules: there exist SPP and PS/2 parallel ports that don't support the X1541 cable and it's also possible that certain EPP and ECP parallel ports do support it. You have to determine the true capabilities of your parallel port yourself before choosing the cables to use. If you have a unidirectional SPP parallel port then you can use the X1541 cable and, optionally, the XH1541 or XH1571 hybrid cable, for the highest speed possible on SPP ports. If you have a bidirectional PS/2 parallel port then you can use any of the cables. For maximum speed, you're advised to use the X1541 cable and the XP1541 or XP1571 parallel cable together. The X1541 cable doesn't work with most parallel ports in EPP and ECP mode. You will have to configure them to SPP mode with the BIOS setup program or with jumpers. If the Commander still doesn't work then you have to use one of the other three serial cables that substitute the X1541 cable. The X1541 interface is the easiest of all. You only have to connect certain pins of the serial port of the Commodore drive and pins of the parallel port of the PC. You need some plugs, some wires and some soldering skills. The XE1541 and XM1541 interfaces are not much harder, they only needs some diodes. However, the XA1541 interface needs a couple of resistors and SMD transistors which are quite hard to solder. Also, the XH1541, XH1571, XP1541 and XP1571 interfaces are relatively hard to build as you need to do some modifications inside your Commodore drive. If you're not experienced at soldering then don't even think about doing them yourself. In addition, the XH1541 and XH1571 interfaces also need some diodes. The following tables may help you to decide which cables suit your needs best. Depending on your parallel port hardware, your soldering skills and your patience, you may choose the cables that will work best for you. This table is a compatibility chart between different parallel port modes and different interfaces. ͻ Compatibility SPP PS/2 EPP/ECP ͹ Normal (X1541) yes yes no Ķ Extended (XE1541) yes yes yes Ķ Multitask (XM1541) yes yes yes Ķ Active (XA1541) yes yes yes Ķ Hybrid (XH1541 or XH1571) yes yes yes Ķ Parallel (XP1541 or XP1571) no yes yes ͼ Again, the standard X1541 cable doesn't work on most Pentium-class machines. You can test the compatibility of your parallel port with X1541Test. Also, the XE1541 extended cable and the XM1541 multitask cable don't work on motherboards with the ALI 5 chipset and certain laptops. Unfortunately, there is no way of testing this compatibility with purely software. This table shows the ways to achieve different speeds on a single parallel port in different modes. ͻ Single port SPP PS/2 EPP/ECP ͹ Minimum speed Normal Normal Extended/ (1) (1) Multitask/ Active Ķ Medium speed Normal+ Normal+ Hybrid Hybrid (1) Ķ Maximum speed Normal+ Extended/ Parallel Multitask/ Active+ Parallel ͼ Notes: (1) This is not the maximum performance for your parallel port, you may want to use another cable configuration. These tables show the ways to achieve different speeds on two parallel ports of different modes. The first cable refers to the primary parallel port, whose mode is indicated by the table title. The second refers to the secondary parallel port, whose mode is indicated by the column title. Note that when you're advised to swap your parallel ports then it's meant to be a logical swap, not a physical one. ͻ Two ports, SPP PS/2 EPP/ECP primary is SPP ͹ Minimum speed Normal Normal Normal (1,2) (1,2,3) (1,2) Ķ Medium speed Normal+ Normal+ Normal+ Hybrid Hybrid Hybrid (2) (1,2,3) (1,2) Ķ Maximum speed Normal+ Normal+ Parallel Parallel ͼ Notes: (1) This is not the maximum performance for your parallel ports, you may want to use another cable configuration. (2) You don't need two parallel ports for this cable configuration, you can hook the indicated cables up to the primary parallel port. (3) This is not the maximum performance for your parallel ports. Swap your parallel ports and try again. ͻ Two ports, SPP PS/2 EPP/ECP primary is PS/2 ͹ Minimum speed Normal Normal Normal (1,2) (1,2) (1,2) Ķ Medium speed Normal+ Normal+ Normal+ Hybrid Hybrid Hybrid (1,2) (1,2) (1,2) Ķ Maximum speed Normal+ Normal+ Normal+ Parallel Paralell Parallel (2) (2) (2) ͼ Notes: (1) This is not the maximum performance for your parallel ports, you may want to use another cable configuration. (2) You don't need two parallel ports for this cable configuration, you can hook the indicated cables up to the primary parallel port. ͻ Two ports, SPP PS/2 EPP/ECP primary is EPP/ECP ͹ Minimum speed (1) (1) Extended/ Multitask/ Active (2) Ķ Medium speed (1) (1) Extended/ Multitask/ Active+ Hybrid Ķ Maximum speed (1) (1) Extended/ Multitask/ Active+ Parallel (2) ͼ Notes: (1) You shouldn't have an EPP/ECP parallel port as your primary port. Swap your parallel ports and try again. (2) You don't need two parallel ports for this cable configuration, you can hook the indicated cables up to the primary parallel port. The following diagrams are pictured as viewed from the solder end (back side) of the plug. It may be of help to you that the numbers are often printed in small letters onto the plug itself. When wiring the interface cables, make sure that they are not too long. A cable longer than about two meters (eight inches) will possibly not work, especially if it isn't shielded at all. The PC parallel plug (male DB-25 connector): PaperEnd Busy SelectIn Ack Data 7 - Data 0 Strobe Ŀ V V V V V ͻ 13 12 11 10 9 8 7 6 5 4 3 2 1 o o o o o o o o o o o o o ͻ ͼ o o o o o o o o o o o o 25 24 23 22 21 20 19 18 17 16 15 14 ͼ ^ ^ ^ ^ Ground Select AutoFeed Init Error The Commodore drive serial bus plug (male 6-pin DIN connector): Reset V ͻ ͻ ͼ ͼ ͻ 5 1 Data > o 6 o < SrqIn o 4 2 Clk > o 3 o < Gnd o ͻ ͼ ͼ ^ Atn Commodore drive periphery chips are displayed as viewed from above. The small semicircular cut may help you with finding the correct orientation. The Commodore 1541 drive VIA#1 periphery chip: ͻ 40 21 ) 1 2 9 20 ͼ PA0 - PA7 You can find the VIA#1 by searching for a chip on the motherboard that has the type number 6522 on it and none of its pins 2-9 are connected to any other chip. The Commodore 1570/1571 drive CIA periphery chip: ͻ 40 21 ) 1 10 17 20 ͼ PB0 - PB7 The CIA chip has the type number 6526, 8520 or 8521 on it. The X1541 interface connects the following pins: CBM drive serial port PC parallel port 2 Gnd 18-25 Ground 3 Atn 1 Strobe 4 Clk 14 AutoFeed 5 Data 17 Select 6 Reset 16 Init The original specification of the X1541 interface requires the short connection of pins 2 and 15 on the parallel port plug. The X1541 program uses it for autodetection, the Commander doesn't make use of it. If you intend to use other transfer programs with your interface then you might want to do this alteration, as well. You have to connect the X1541 interface to an SPP or PS/2 parallel port as the lines used by this cable are not necessarily bidirectional on EPP and ECP parallel ports. The XE1541 extended interface connects the following pins: CBM drive serial port PC parallel port 2 Gnd 18-25 Ground 3 Atn 13 SelectIn >| 1 Strobe 4 Clk 12 PaperEnd >| 14 AutoFeed 5 Data 11 Busy >| 17 Select 6 Reset 10 Ack >| 16 Init This interface, unlike the X1541 interface, needs electronical components, namely diodes. These decouple the control lines of the PC parallel port while data is coming from the Commodore drive. You have to solder them right before each of pins 1, 14, 16 and 17, their cathodes - the end marked with a small band - pointing towards the pins. It is highly recommended to use 1N5819 or BAT85 diodes only, other diodes may make the cable inoperable on some hardware configurations. The XM1541 multitask interface connects the following pins: CBM drive serial port PC parallel port 2 Gnd 18-25 Ground 3 Atn 13 SelectIn >| 1 Strobe 4 Clk 12 PaperEnd >| 14 AutoFeed 5 Data 10 Ack >| 16 Init 6 Reset 11 Busy >| 17 Select Please, read the chapter of the XE1541 extended cable for more details. As you can see, the only difference is that the multitask cable has pins 5 (Data) and 6 (Reset) swapped in the Commodore plug. The XA1541 active interface connects the following pins: CBM drive serial port PC parallel port 2 Gnd 18-25 Ground 3 Atn 13 SelectIn () 1 Strobe 4 Clk 12 PaperEnd () 14 AutoFeed 5 Data 10 Ack () 16 Init 6 Reset 11 Busy () 17 Select This interface needs electronical components: transistors and resistors. These enhance signals while data is going to the Commodore drive and decouple the control lines of the PC parallel port while data is coming from the Commodore drive. You have to solder the enhancers right before each of pins 1, 14, 16 and 17; see the circuit diagram zoomed below. It is highly recommended to use BSV52 transistors and (SMD 1206-style) 4.7 kOhm resistors only, other transistors or resistors may make the cable inoperable on some hardware configurations. The enhancers are constructed the following way: Commodore pin PC input pin ------ / C \ \ / \B \ transistor | [////] PC output pin \ / / resistor \ E / / ------ GND In the enhancer, the collector is connected to the Commodore pin; the base is connected to the PC output pin, via a resistor; the emitter pin has to be to any or, preferably, all of pins 18-25 on the parallel port. The BSV52 transistor has its pins laid out the following way: C Ŀ Ŀ Ĵ B E This picture displays the transistor as viewed from above. Note that this pin layout belongs to the BSV52 transistor only, others may have their pins laid out differently. Also, the BSV52 transistor is a very small SMD component which makes its manual soldering quite difficult. If you don't wish to solder SMD components then a possible substitute for the BSV52 transistor is the 2N3904 transistor. Please, note that using this transistor is not recommended at all, as it may make the cable inoperable on some hardware configurations. The 2N3904 transistor has its pins laid out the following way: +------ | o C \ | \ | o B | | / | o E / +------ This picture displays the transistor as viewed from below, where its pins are. Note that this pin layout belongs to the 2N3904 transistor only, others may have their pins laid out differently. The XH1541 hybrid interface connects the following pins: CBM 1541 VIA#1 PC parallel port 2 PA0 13 SelectIn >| 2 Data 0 3 PA1 12 PaperEnd >| 3 Data 1 4 PA2 10 Ack >| 4 Data 2 5 PA3 11 Busy >| 5 Data 3 6 PA4 >| 6 Data 4 7 PA5 >| 7 Data 5 8 PA6 >| 8 Data 6 9 PA7 >| 9 Data 7 The XH1571 hybrid interface connects the following pins: CBM 1570/1571 CIA PC parallel port 10 PB0 13 SelectIn >| 2 Data 0 11 PB1 12 PaperEnd >| 3 Data 1 12 PB2 10 Ack >| 4 Data 2 13 PB3 11 Busy >| 5 Data 3 14 PB4 >| 6 Data 4 15 PB5 >| 7 Data 5 16 PB6 >| 8 Data 6 17 PB7 >| 9 Data 7 These interfaces need diodes. You have to solder them right before each of pins 2-9 of the PC parallel port, their cathodes - the end marked with a small band - pointing towards the parallel port pins. A suggested diode for this interface is the standard 1N4148 or equivalent. You can connect the XH1541 and XH1571 interfaces to any type of parallel port. They have no common lines with the X1541 interface therefore you can connect them, along with the X1541 interface, to the same SPP or PS/2 parallel port, using a Y-shaped cable. The XH1541 interface only works with Commodore 1541 drives and compatible clones. The XH1571 interface only works with Commodore 1570 and 1571 drives and compatible clones. The XP1541 parallel interface connects the following pins: CBM 1541 VIA#1 PC parallel port 2 PA0 2 Data 0 3 PA1 3 Data 1 4 PA2 4 Data 2 5 PA3 5 Data 3 6 PA4 6 Data 4 7 PA5 7 Data 5 8 PA6 8 Data 6 9 PA7 9 Data 7 The XP1571 parallel interface connects the following pins: CBM 1570/1571 CIA PC parallel port 10 PB0 2 Data 0 11 PB1 3 Data 1 12 PB2 4 Data 2 13 PB3 5 Data 3 14 PB4 6 Data 4 15 PB5 7 Data 5 16 PB6 8 Data 6 17 PB7 9 Data 7 You have to connect the XP1541 and XP1571 interfaces to a PS/2, EPP or ECP parallel port as on SPP parallel ports the data lines are unidirectional. If you have a PS/2 parallel port then you can connect the X1541 and XP1541 or the X1541 and XP1571 interfaces to the same parallel port, using a Y-shaped cable. If you have an EPP or ECP parallel port then you should use the XE1541, XM1541 or XA1541 interface rather than the X1541 interface. Alternatively, you can build two separate cables and buy a secondary old SPP parallel port card for the X1541 interface. The XP1541 interface only works with Commodore 1541 drives and compatible clones. The XP1571 interface only works with Commodore 1570 and 1571 drives and compatible clones. Please, note that none of the XH1541, XP1541, XH1571, or XP1571 interfaces is a substitute for the serial cables. You have to connect two cables to the Commodore drive and the PC at the same time to acquire the enhanced transfer capabilities. Don't connect the XH1541, XP1541, XH1571 or XP1571 cable alone to the Commodore drive: none of them contain a GND line so plugging them without a serial cable may short circuit your machines and, possibly, damage the periphery chips. Always connect the XH1541, XP1541, XH1571 or XP1571 interface to your Commodore drive and your PC before switching either of them on and switch both machines off before pulling the cables out. In 1541 drives, nothing is defined to any of the bits of Port A. You can solder the XH1541 interface and the XP1541 interface without any problem. In 1541C drives, bit 0 of Port A is used for the detection of the head being over track 1. After stripping this connection off of the chip, you will have to replace the DOS ROM with that of the 1541 or the 1541-II. Otherwise you'll get strange results when the drive is seeking: the DOS tries to rely on the detector line which doesn't exist anymore. In 1541-II drives, bit 0 of Port A is grounded, strip this connection off of the chip. In 1570 and 1571 drives, there are several lines connected to the bits of Port A of VIA#1. You can't use the XH1541 interface or the XP1541 interface with them. However, you can use the XH1571 or XP1571 interfaces, cables of the same design as the XH1541 and XH1571 interfaces, to a different chip, namely the CIA, most of whose pins are unused in these drives. 1581 drives are completely different from the aforementioned members of the Commodore drive family. You can't use the XH1541, XP1541, XH1571 or XP1571 interfaces with them. If you already have a floppy speeder like Speed DOS or Dolphin DOS in your 1541, 1570 or 1571 drive then you probably have a parallel plug at its rear. In this case, you have many options of implementing the XH1541, XP1541, XH1571 and XP1571 interface. You can create another cable to connect the drive to the PC with. You can also split the cable between the drive and the C64 into a Y-shaped cable, one end plugging into the drive, another into the C64 and the third one into the PC. In this case, remember not to plug the cable into the C64 and the PC at the same time. However, your best choice is creating a small adaptor that imitates the C64 user port on one side and plugs into the PC parallel port on the other side. If your 1541 or 1571 drive has no parallel capabilities then you might still want to create a plug at its rear. This way there will be no cable always hanging out of the drive. With another cable, you'll be able to use parallel transfer with the C64, too. Please, note that parallel copy programs for the C64 may require some additional connections on the VIA or CIA chip of the drive. Read their documentation before soldering so that you can connect the additional pins to the parallel plug, if needed. 9. Technical background information There are three types of lines on PC parallel ports: data lines are used to transfer data bytes between the PC and the external device; control lines are used by the PC to send control signals to the external device; status lines are used by the external device to send status signals to the PC. From the PC side, logically, data lines should be used for both input and output, control lines for output only, and status lines for input only. But this is not exactly the case. On the early SPP parallel ports, data lines can only be used for output; this is what we call a unidirectional parallel port. Note that this expression is mainly used for the usage of the data lines. Furthermore, with a little trick, the control lines can be used not only for output but for input, as well. On these early SPP parallel ports, the port pins are connected via open collectors to the chipset on the I/O controller card: there is a resistor between 5.0 V and the pin and a transistor between GND and the pin. The transistor is controlled by the chipset which, on the other hand, is controlled by the software. When the corresponding port bit is set to one, the transistor opens and the resistor pulls the signal level on the pin to high, a voltage level of between 3.5 V and 4.5 V. When the port bit is cleared to zero, the transistor closes and pulls the signal level to low, between 0.0 V and 0.4 V. The reason for the differences of the voltage intervals is that the transistor can pull stronger than the resistor. On Commodore drives, the pins of the serial port are also connected via open collectors to the periphery chip. When there are open collectors on the two ends of the same cable then three possibilities exist. If both ends pull the line low then the actual signal level, that can be read by both parties, will be low. If both ends pull the line high then the result will be a high signal. However, if one end pulls the line high and the other one pulls it low then, again, because of the strength of the transistor, the signal level will become low. The PC or the Commodore machine can pull the line high and low and the drive will be able to read this signal. However, if the machine pulled the line high then the drive will also be able to signal back, by pulling the line low. This is the only way to input data from the drive and this is exactly how Commodore machines and PC's, that use an X1541 interface, work. It is still a mystery why the original parallel port, designed by IBM, is a unidirectional parallel port. The port wouldn't have been more expensive if it allowed the software to switch the data lines into input mode. Actually, many parallel port cards are designed to be bidirectional but are crippled down to unidirectional mode. The way to enable bidirectional mode on these cards is described at the end of this chapter. Such bidirectional SPP ports are often called PS/2 parallel ports. However, with the introduction of high-speed peripherals, open collectors started to be replaced by totem poles: there are two transistors, one between 5.0 V and the pin, the other between GND and the pin. The two transistors are controlled in an inverted way: at a time, exactly one of them is open and the other is closed. When the port bit is cleared to zero then, as before, the transistor on the GND side closes and pulls the line low. However, when the port bit is set to one then it is also a transistor that pulls the line high. This way, the high signal level is a voltage of very close to 5.0 V, as opposed to between 2.8 V and 5.0 V in the open collector, and the speed of switching between signal levels is also significantly higher, allowing more data to be transferred within a given interval of time. On most Pentium and newer 486 motherboards, the pins of the integrated parallel port are connected via totem poles to the chipset. When a totem pole in the PC pulls the line high then it does that with a transistor. If the drive tries to pull the line low, to send a signal, then it also does that with a transistor. The two transistors will be fighting against each other and the outcome is unknown: the signal level may remain at high, if the transistor on the PC side is stronger; or become low, if the transistor in the drive is the stronger one. Most of the time, the transistors in the PC seem to be stronger and, therefore, no data can be input from the Commodore drive. And it is not only totem poles that can render transfer programs unable to work. The chipset on some other motherboards doesn't even contain the circuitry needed to read the signal level on lines other than the status lines. The new enhanced parallel ports, EPP and ECP ports, have bidirectional data lines so that data can be read from a hard disk or a scanner connected to the PC. However, as described above, their control lines are not bidirectional anymore. Additionally, on some motherboards, control lines are unidirectional even when the port is switched to SPP mode via the BIOS setup. The X1541 cable won't work on these parallel ports. If you can't make transfer programs work with your motherboard then you should stop testing immediately, because the fights between transistors put stress on the chips on both sides. You should rather build one of the other serial cables which are slightly different from the X1541 cable and work on more parallel ports. The X1541 cable is of the simplest design. It connects pins of the Commodore serial port and the PC parallel port without any conversion or wire split. So that the PC is able to also input data from the Commodore, not only output to it, it definitely needs the lines, it uses, to be bidirectional. If they are not then the cable doesn't work at all, no matter what software you're using with it. The XE1541 cable connects wires, coming from the Commodore end, to two pins on the parallel port. One of these pins belongs to a control line and there is a Schottky-diode in front of it. This is the line via which data is sent to the Commodore. The other pin belongs to a status line which is used to receive data. Because control lines can be used for output and status lines for input on any parallel port, this solves the problem with the X1541 cable. When the PC expects the Commodore to send to data, it sets the control line to a high level and listens to the signal level on the status line. The diode prevents current from flowing from the PC end, therefore, the Commodore is free to set the line to whatever level it wants to. Without the diode, the output lines of the PC and the Commodore would be fighting with each other, as described above. The XM1541 cable has only two wires swapped at the Commodore end. This results in the DATA line of the Commodore being connected to the ACK line of the PC parallel port. This latter line is the only one that is capable of generating interrupts on the PC. This way, when the PC is waiting for the next handshake arriving from the Commodore, it can do that by enabling the "ACK generates interrupt" feature and halting its execution. When the interrupt occurs, the PC can also continue with the next handshake. Until this happens, the program uses no CPU time because it's not running at all. This interrupt method uses significantly less CPU time than polling, that is, running in an endless loop that checks the signal level again and again. This is important for true multi-tasking systems such as Linux and Windows NT/2000/XP. The XA1541 cable is derived from the XM1541 cable. It also has the two wires swapped at the Commodore end, therefore, it also improves overall performance under a multi-tasking system. However, it corrects a problem with the XE1541 and XM1541 cables that occurs with certain parallel ports that are on the edge of the original IBM specification. According to the specification, the low level of a line means that the voltage is between 0.0 V and 0.4 V. When a Schottky-diode is applied onto this line then the voltage may go up to even 0.8 V because the typical voltage rise of such diodes is about 0.4 V. Unfortunately, this 0.8 V is also just the edge of the low level recognized by a Commodore. For a Commodore, voltages between 0.0 V and 0.8 V are low; 2.8 V to 5.0 are high; 0.8 V to 2.8 V are unknown. In the latter case, it is also unknown what the software running in the Commodore will see: sometimes a high, sometimes a low level. It is worth mentioning that exactly this is why Schottky-diodes were chosen for the XE1541 and XM1541 cables: other diodes raise the voltage even more. Instead of diodes, the XA1541 cable uses transistors and resistors. If the PC needs to pull the signal level to low on the wire then it sends out a high level on the parallel port. This closes the transistor between the wire and the ground. Because the transistor is strong, it can pull the signal level to typically at most 0.2 V which is accepted as a low level by the Commodore, as well. This voltage depends on the transistor but not on the voltage coming from the parallel port. Therefore, whatever parallel port you have, including the ones that are not compatible with the XE1541 and XM1541 cables, the resulting voltage will be enhanced to an acceptable level by the transistor. The resistor is used to adjust the working point of the transistor for optimum performance. Because a transistor will amplify currents, the base current has to be adjusted to a value that results in the needed output current. If the input current is too high, the transistor will work slower than it should be able to; if the input current is too low, the transistor will not switch reliably. You can convert unidirectional SPP parallel port cards into a bidirectional PS/2 port by disconnecting pin 1 of the data latch 74LS374 from ground and connecting it to one of the output pins on the control latch 74LS174. This pin can be any of pins 2, 5, 7, 10, 12 or 15 and must not be connected to any other chip on the board. The corresponding input pin (3, 4, 6, 11, 13 or 14) must be connected to bit 5 of the data bus. If this is not the case on your card then you can access this bit from the data latch. Find out which one of its output pins (2, 5, 6, 9, 12, 15, 16 or 19) is connected to pin 7 of the parallel port connector and get bit 5 from the corresponding input pin (3, 4, 7, 8, 13, 14, 17 or 18). 10. Troubleshooting If you encounter problems in this program, first of all, visit the homepage and download the very latest (beta) release as it may have the bug, which you have run into, already fixed. Also, its documentation may have more ideas on what to try when that particular problem occurs. If you find a problem that is not related to accessing an external Commodore drive, you should contact me with a detailed description of the bug, including a guide on how to reproduce it. See the next chapter on how a proper bug report should look like. However, if you can't access the external Commodore drive properly, here are some ideas for you. Bare boot your computer, disable all resident programs, memory managers and device drivers. Exit multi-tasking systems such as Linux, OS/2, Windows 3.x, Windows 95/98/ME or Windows NT/2000/XP. These circumstances may affect data transfer. Boot plain DOS on your machine or boot your Windows operating system in DOS mode and strip everything, you don't need, off your AUTOEXEC.BAT and CONFIG.SYS files. You may create a boot menu or a boot disk, too. Note that you definitely need the tweaking package to access Commodore drives under Windows NT/2000/XP. During your test, don't plug anything other than the serial interface into your PC parallel port and your Commodore drive. From your PC, remove dongles, parallel port switches and other devices that may filter data transfer via the parallel port. From your Commodore drive, remove daisy chained other drives, peripherals and Commodore machines. If the connection with the Commodore drive locks up then switch the drive off and pull the serial interface out of it. Wait for the error message "Drive not present", plug the interface back and turn the drive back on. Optionally, you can reset the drive, e.g. with Control-Alt-Backspace. Then try the following. If you get completely confused, you may want to simply delete the SC.INI file and start configuring the Commander again from scratch. Switch 'Transfer mode' to 'Warp' in the 'Transfer options' menu. This is not only the fastest transfer mode but the most reliable, as well. If you're experiencing problems during disk commands then switch 'Command exec mode' to 'Warp' in the 'Drive options' menu. This will make the Commander use its own, more stable, programs for disk commands. Raise or lower the delay value in the 'Transfer options' menu. It is very sensitive so change it at steps of one, with a butterfly method: add one to the original value; subtract one from the original value; add two; subtract two etc. The highest delay value you can use without transmission problems is the optimum. You can use the 'Recalibrate' button to have the - hopefully best - delay value calculated for you. Note that you definitely have to change the delay value if you started using the Commander under another operating system, e.g. switched from DOS to Windows or vice versa. The optimal delay value depends on the effective CPU speed of your PC which, in turn, is affected by the raw CPU speed, the operating system you use and the current CPU load. Check, in the 'Transfer options' menu, if you have correctly set the type of the serial cable and the parallel port it is connected to. Do the same with the parallel cable, in case you have one. If you have no additional cable, besides the serial cable, then set the parallel cable to 'None'. If you really want to access the Commodore drive via a serial cable under a multi-tasking system then enable the 'Force async transfer' option in the 'Transfer options' menu. Without that, you would most probably experience frequent lockups or timeouts. For Windows NT/2000/XP, see the tweak package. First, you should test the connection under plain DOS though. You might want to try the async transfer feature under plain DOS, as well, if you experience transmission problems. Under Windows, open the 'Properties' windows of the DOS shell, that the Commander is running in, go to the 'Misc' tab and set 'Idle sensitivity' to 'Low', the left end of the slider. This gives more CPU time to the Commander. Turn 'Manual timeouts' on or off. While it usually helps under plain DOS, it may turn things even worse under a multi-tasking system. Also, when it is enabled, the Commander doesn't really like it if you touch the keyboard or the mouse during its communication with the Commodore drive. Check whether the address and mode of your parallel port is detected and displayed correctly in the 'Transfer options' menu. If it is not detected at all then, in the case of an integrated parallel port, enter the BIOS setup and check your parallel port settings. On some motherboards, it is possible to set the parallel port into Auto mode. In this case, a plug-and-play compatible operating system has the chance to set the parallel port to the address and mode it likes. However, DOS is not one of these operating systems so set the address and the mode manually. See the next paragraph for the proper mode. If you have a Pentium or newer 486 motherboard, with an integrated parallel port and you're using the X1541 interface then change the mode of the parallel port to SPP or PS/2 (usual aliases are Normal, Standard, Compatible and Extended). In case you also use the XP1541 or XP1571 parallel cable, you must set its parallel port to PS/2, EPP or ECP (usual aliases are Extended and Enhanced) mode. To test your PC against compatibility with the X1541 cable, download X1541Test from the useful external programs page. For the other cables, the parallel port mode usually doesn't matter although there are some exceptions. You can read more about the compatibility of the cables at the separate cable info pages, below the cables and adaptors page. If you are still unable to access the Commodore drive then disable the 'Detect port modes' option in the Commander, save the setup and do a hard reboot with the RESET button of your PC. A very few parallel ports fall into an unusable state when the Commander attempts to detect their mode. If a given mode of your parallel port completely fails all trials, you may try switching it into another mode in the BIOS setup. It is worth mentioning that, on some motherboards, the Commander locks up the machine completely when it is trying to detect a parallel port that is in EPP 1.7 mode. This seems to be some kind of a hardware problem as it makes Linux also lock up completely upon startup. In this case, you rather have to switch the parallel port into EPP 1.9 or ECP mode in the BIOS setup. If you have a motherboard for a Pentium-class CPU then you're, most probably, the owner of an integrated parallel port that is incompatible with the X1541 cable. To test your PC against compatibility with the X1541 cable, use X1541Test. Try using an older I/O controller card, a parallel port card or a Hercules video card with a built-in parallel port. Alternatively, you can use the XE1541, XM1541 or XA1541 cable. If your motherboard allows overclocking the FSB (Front Side Bus) frequency then set it back to the default value in your BIOS setup. For the default value, refer to the motherboard manual. The Commander relies upon the hardware timers having the same speed on all PC's but changing the FSB frequency may affect the hardware timer frequency, as well, on some motherboards. If you use the built-in drive of a C128D or an SX64 then execute the command 'POKE 56576, 199' on the Commodore machine, before accessing its drive, to decouple the machine from the common serial bus, by switching the CLK line to high. Every time you also access the drive from the Commodore machine, you'll have to issue this command again afterwards. Note that the Commander decouples the PC from the serial bus one second after having completed a disk operation. Make sure that the serial interface is assembled well, it is shielded correctly and it is not too long. Check it against the diagrams above or at the cables and adaptors pages: it may be a mirrored cable or the electronical parts used in it may be off the specification. If you bought the cable from someone, you may want to contact the seller with a problem report. You can also try your cable with other PC's and/or other transfer programs. If you want to test your cable, download XCTest from the useful external programs page. Plug your Commodore drive to a Commodore machine to see if it works at all after all those years. You may want to borrow a tested drive from someone. If you have an integrated parallel port whose connector is not soldered onto the motherboard but rather has a cable that is plugged onto the motherboard then check this cable connection. It's possible that the cable of the parallel port is plugged onto the motherboard in a mirrored way. You can also check its functionality with a PC printer. If your network uses parallel port redirection then logout. If you've tried everything and you still can't find out which component is is not working properly, download XCDetect from the useful external programs page. Connect your Commodore drive via the cable to the PC, switch the drive on and run XCDetect in debug mode, by specifying the "-d" option on the command line. If the program manages to detect both your cable and your drive then there's either a Commander configuration problem or you have found a bug in the Commander. Please, note that if XCDetect displays "(NC:0x83)" or a similar hexadecimal error code after the device number then it did not detect a device with that particular device number. Also, there's a tester program for X1541-series cables called XCTest on the same page. It allows you to test the cable at a lower level, by letting you send outgoing signals to the drive via the cable and showing the incoming reply signals. If you're done with all these checks and still no luck, contact me. See below for more information on how a proper report should look like. Improper reports will not be replied to. 11. Reporting problems, ideas and wishes I do not have the possibility to test the program on many kinds of PC's. I ask you to contact me if you found bugs in the program (you will possibly find some as it is still under development) or have an idea of what improvements I should do in the future. Please, send me a note if you saw a grammatical error, misspelling, typo or something misunderstandable in the online help or this documentation. If you're having some problems with accessing your Commodore drive with the Commander, please, read the 'Troubleshooting' section in this documentation as it covers most usual mistakes and problems and, also, possible solutions. If that guide doesn't help you then send me an E-mail with your detailed report. A report should have the following information: - The description of the important components of your PC: motherboard brand and type, CPU type and speed, integrated chipset brand and type. Refer to your motherboard manual for this information. - The type of the serial - and, optionally, the parallel - cable that you used between the Commodore drive and the PC. Also, where you got the cable from: self-made; bought it in The X1541 Shop (see URL below); or bought it somewhere else (URL and/or E-mail address of seller, please). - The type of your Commodore drive. - Name and version of operating system used. - The exact version number of your Commander copy. Note that beta releases have a third version number, too, e.g. "0.12.34 beta". - What error you get and when you get it. Make sure to quote the exact error message. - The SC.INI file you used when the problem occurred. Send it uuencoded or attached, but compress it first with ZIP. - A guide on how to reproduce the error. Even if it occurs for you all the time, it might not be trivial to make the Commander do it again on another setup. - If you can't access the Commodore drive at all, include XCDetect's output in debug mode, as well, by typing "xcdetect -d > output.txt" into the DOS command line, and attaching the resulting "output.txt" file, compressed with ZIP. You may also want to run XCTest and include its output, too. - If the problem occurs only with a certain file or set of files then you can send it/them to me uuencoded or attached, as well. Please, compress all the files, you send to me, with ZIP. For ZIP archives larger than a few hundred Kbytes, ask first. - Please, confirm that you have read the 'Troubleshooting' section and tried everything described there! Reports that miss any of these informations will not be replied to. Please, understand that I don't have the time to find out what you mean in your report or make experiments on how to reproduce the reported problem on my own system. 12. Bugs fixed since the previous release The following bugs have been fixed since Version 0.81. For a complete list of bug fixes since older releases, see HISTORY.TXT. - a pointer went astray when switching to the C64 character set, it might have caused rare lockups - the EOI detection problem, that caused the loss of the last byte of some sectors during disk copy and the loss of the last directory sector during reading the directory in normal transfer mode, has been finally fixed - when the header of sectors are not found during warp disk copy, you get an error message instead of the transfer stopping, with the disk spinning but apparently no data being read - false timeout errors were reported at the end of file copies in normal and turbo mode - no files could be processed in directories inside archive files - the Commander, the viewer and the editor don't lock up under the long file name support program of Caldera OpenDOS anymore - the Commander doesn't lock up when reading a looping directory - if you were using the hybrid or parallel cable on an ECP parallel port and saved the setup with one of the panels being an external panel then the Commander didn't recognize external drives upon startups anymore - you get a warning when you leave the 'Transfer options' menu if one of the LPT ports is set to a non-existant port - if there was an error while preformatting the destination disk, the disk copy was aborted - the warp disk copy locked up when it tried to verify certain sector contents - wiping phantom files does not erase the directory anymore - the Commander and Star Ark computed the start offset of the data area of Arkive archives incorrectly so they sometimes extracted corrupted files - deleting files from filepacked ZipCode archives went crazy most of the time - no dialog box remains on the screen when a directory structure is copied - if you switched back to normal mode from either fast mode, only the first block of the directory was read from the Commodore drive - the GEOS file converter routines chopped off the last byte of VLIR records - GEOS files are now saved exactly the same way into disk images as under GEOS itself - when copying files out of file images automatically, using the 'Extract PC64 file images' option, the original Commodore name of the file is also extracted - when, during a file copy, the name of the destination PC64 file image resembles a device, an underscore is appended to the name; this follows PC64's original behavior - Commodore file names, that contain too many decimal digits, are now correctly converted into a PC64 file image name - LHA archives with entries of invalid Commodore file types or with trailing garbage are now considered to be valid - when extracting files from LHA archives, you are not asked twice for manual file name conversion anymore - turbo delete and validate work correctly on extended disks, too - if 'Keep non-standard ext' is switched off, when copying DOS files into a CBM panel, characters including and after the rightmost dot are cut off rather than the leftmost dot and everything after it - when copying DOS files or files in LHA or TAR archives from or into GEOS disk images, no ASCII-PETSCII file name conversion takes place - if a CD-ROM drive has no disk in it and you want to change to this drive, you will get the same error message as when changing to a floppy disk drive with no disk in it - under PTS-DOS, the 'Change drive' dialog box displays only those drive letters that are really available; also, there are no more problems when changing to a floppy disk drive - the handling of the phantom B: drive on single-floppy PC's is now more compatible with DOS clones - the critical error boxes display device errors correctly - the bug that makes C64S refuse paths given on the command line with a trailing backslash has been circumvented in the emulator launch file - if you entered an invalid image or archive then, after the error message, you got an empty DOS panel - if you pressed Enter on 'Cancel' buttons then the current function was continued as if you had pressed the 'OK' button - Control-PgDn enters directories, image and archive files only and never launches DOS files - the undocumented hotkeys Control-PgDn and Control-PgUp are now mentioned in the online help - the Commander locked up if you pressed Control+Backslash in an external panel - when sorting DOS directories by date, directories whose name starts with a dot won't be sorted before '..' anymore - when renaming files with long file names, asterisk wildcards are handled in a Unix-like way, e.g. 'a*' changes the first character of the file name to 'a' but keeps all other characters unchanged, including the extension - very long paths are truncated in the command line - long file names containing the characters ",", ";", "=" or "+" are also enclosed into quotes when inserted into the command line - file time stamps are displayed with the correct country-specific separator in the 'File attributes' dialog box - the bottom frame of Wide DOS panels with no mini status now joins the vertical separator line correctly - when copying multiple disks, destination disk images don't inherit the error info block of the previous one - in the disk copier, automatically skipped bad sectors don't inherit the error code of that sector where 'Skip auto' was selected - if an error occurs during copying a disk to a disk image, the first one or two sectors of the current track are not overwritten with the code of the turbo loader - when changing one of the panels to an external panel, the command line path automatically changes to the path of the opposite panel - GEOS disks in external Commodore drives are also displayed with the GEOS character set - you couldn't move files between images or archives with the same file name - there are no more lockups if files of empty names are copied into PC64 file images - when copying files inside PC64 file images into PC64 file images, the file type of the source file is preserved - when copying into PC64 file images, the progress indicator filled up with half speed and only reached the middle of the bar - if you copied files from Commodore drives with typing a file name pattern then the Commander tried to copy files in the second, third etc. directory sector again and again and the attribute of the destination files was also changed to DEL - by pressing 'Cancel' in the file name conversion confirmation dialog box, now you can abort the file copy process immediately - when you renamed or deleted files by entering a wildcard pattern, the cursor was placed onto an inappropriate file afterwards - directories containing files with dot as the first character of their file name couldn't be deleted - you are not allowed to copy multiple files with the same name into LHA and TAR archives anymore - there were several problems if you tried to compress files into LHA archives from disk images containing phantom files - you couldn't extract files from LHA archives with a long file name - when copying, moving or renaming files, file names are truncated to 16 characters, except for DOS, TAR and LHA panels - in Brief mode, file names in LHA and TAR directories are truncated to 16 characters - sometimes false errors were reported about trying to copy a file onto itself - you're not allowed to select relative files with Grey * anymore - you can select DOS directories with the right mouse button - frozen files copied into tape images were given invalid attributes so the emulator wouldn't load them - when saving files, the GEOS soft interleave is used if the source file is a GEOS file, not if the destination disk is a GEOS disk - while copying files into disk images, Convert archives are not converted into GEOS files if GEOS support is disabled - if you moved files and appended them to an already existing file then only every second source file was processed - you couldn't delete files in image and archive files with typing a file name pattern - if the destination file already existed, you were asked for confirmation about overwriting it, even if you pressed Escape while reading the first chunk of data from the source file - the Commander didn't recognize the standard Commodore file types in DOS file extensions - if you delete a file image which is opened in the inactive panel then the panel will fall back to DOS mode - if you enter a year less than 80 in the 'Attributes' dialog box then it will be assumed to be a date after 2000 - even when 'Auto unselect files' is unchecked, 'File attributes' unselects processed files - File info didn't recognize frozen files - files extracted from images or archives did not keep the date stamp if 'Keep file date stamps' is unchecked - the attributes of multiple files couldn't be changed in image and archives file, only one by one - no volume label was displayed for CD-ROM drives and a false volume label was reported for Windows 95 partitions where there was a long file name entry before the entry of the real label - there are no more lockups if you forget the colon at the end of the file name pattern in extension files - the 'Owner' function does not lockup anymore for crosslinked and looping files - inserting data in the text half of the sector editor works now - several problems related to Quick view panels have been fixed - the sample Commander screens in the external setup have been updated - keeping the left mouse button pressed will scroll the panel display up or down, even if you move off the panel rectangle - the viewer and editor now also display the symbols for control characters in screen code view mode - when creating a new file in the editor, several active functions in the key bar, at the bottom of the screen, weren't displayed - search strings were truncated at 21 characters both in the viewer and the editor - the editor couldn't backup files in shared environments - the editor didn't recognize when a file inside an image or archive file was too big and, while trying to load it fully into memory, locked up - in the ASCII half of the hexa mode of the editor, Alt-key combinations won't write a zero byte into a file anymore - the 'Save as' function of the editor now reads in the attribute of the file specified and warns you about it being a read-only, hidden and/or system file correctly - the Star Utilities had several problems with phantom files - Star ARC didn't stop displaying some archive titles because it didn't recognize their end - in Star LHA, you can use a dash before the command 'S' - Star List does not fall into an endless loop when listing messed up disk images and stops execution if you press Escape - Star List didn't display graphical characters correctly in LHA and TAR archives - Star List doesn't recurse into subdirectories unless you explicitly tell it to - Star Zip warns you if the destination disk is full 13. Other changes since the previous release The following features have been implemented since Version 0.81. For a complete list of changes since older releases, see HISTORY.TXT. - the Commander main executable has been restructured to an overlaid program, now it needs about 100 KBytes less conventional memory - the executable files and the online help are neither compressed nor encrypted anymore because their source is published anyway; feel free to compress the executable files yourself, if you need to fit them onto a floppy disk - the personal keyfile is now called 'sc.key' so that its extension doesn't conflict with that of Windows registry files; rename your keyfile to make it work again - introducing the command line option '/novesa', to disable VESA BIOS support upon startup - introducing the command line option '/nolpt', to completely disable parallel port access - the documentation contains some technical background information about PC parallel ports - raised the proposed registration fee to 10 EUR and 1000 HUF; the 10 USD remained unchanged; also, removed the possibility to pay by check - the extension of the documentation files of the Star Utilities was changed to '.txt' because they are plain DOS text files - introducing support for 1571 and 1581 disk images and Prologic DOS extended disk images - introducing support for Commodore 1570 and 1571 drives - introducing support for the XM1541 multitask and the XA1541 active cables - introducing support for the XH1571 hybrid and XP1571 parallel cables for Commodore 1570 and 1571 drives - introducing a new option called 'Force async mode' that, at the cost of a slightly lower transfer speed, allows you to access Commodore drives under a multi-tasking system, as well - introducing support for the "giveio" and "userport" drivers that enable access of Commodore drives under Windows NT, Windows 2000 and Windows XP; you must use the tweak package to make this possible - the complete external setup has been integrated into the main program, Control-F9 now opens the menu of configuration screens - introducing a new menu for maintaing local settings for all the Commodore drives you have, with Control-F10 assigned to it - now you can change the address of the parallel ports to any value using the two custom port address slots - introducing support for relative files - the Commander, the viewer and the editor can now process multiple files with the same name independently - the warp disk copier now recognizes 27 and 29 READ ERROR's - introducing support for VESA text screen modes up to 132x60, to be changed with Alt-F10 - introducing support for GEOS disk images in Star List - introducing a "printf"-style way to format the output of Star List - just like in the other Commanders, Shift+F10 positions to the item previously executed in the menu tree - introducing the warp delete and validate routines that read through the disk only once instead of tracking through the files on it one by one - the configuration menus have been rearranged; you can jump between submenus with the 'Next' and 'Previous' buttons - the online help pages now list all configuration options related to that particular function rather than only the important ones - introducing a smart drive presence detection routine - you should now be able to use your Commodore drive from a Commodore machine and a PC simultaneously, as the Commander decouples the PC from the common serial bus one second after having completed a disk operation - pressing Escape or F10, while messages or code fragments are transferred between the PC and the external drive, aborts the operation with a timeout error; with 'Manual timeouts', you can control whether you can generate timeouts manually or not - introducing clipboard support, buffering data on disk or, when available, in the common Windows clipboard - the mode of parallel ports is not checked upon returning from DOS shells anymore - now you can access tracks 36-40 on 1541 disks on any 1541 drive - you can again use Control+Shift to toggle the C64 character set - 'Quality C64 charset' lets you switch between the two VGA modes used to display the C64 character set on the screen - 'Prefer long names' lets you use long file names more comfortably - you can also select files by holding Shift when moving the cursor - you can use Control-N to toggle long file names - Control+Tab now completes DOS commands and file names on the command line and in file name input lines - pattern matching for Commodore file names is now case-sensitive, like on real Commodore drives, but the "*" wildcard is handled the Unix way (rather than the DOS way), unlike real Commodore drives - with a new option 'Alternative hotkeys', a few hotkeys, mainly ones that are hard to use on a laptop, can be replaced with other keys or key combinations on the alphanumerical keyboard - with a new option 'Cursor follows filename', you can set whether the cursor should jump onto the new position of a file after a rename operation and jump onto the new file or directory after having created one - 'Convert chars' makes the Commander convert those PETSCII characters to hexadecimal codes, that have no ASCII equivalent, and converts these codes back to PETSCII characters during file copies and any other inputs where Commodore strings are used - new possible values for the 'Into PC64 file images' and 'Extract PC64 file images' options allow you to copy into PC64 file images only if the source is a Commodore file and extract the contents of PC64 file images only if the destination is a Commodore panel; in parallel, the local override settings for these two options have been removed from the 'Copy' dialog box - now you can rename and delete files inside PC64 file images - you can use Alt-Up and Alt-Down to change the height of the panels row by row - you can change the width of the panels with Alt-Left and Alt-Right - you can change the width of the Name column with Alt-Shift-Left and Alt-Shift-Right - you can change the height of the mini status with Alt-Shift-Up and Alt-Shift-Down - the cursor moves in a smarter way between items in dialog boxes - when Tab or Shift-Tab is pressed in a group of radio buttons, the cursor jumps to the next or previous group of items - introducing the Wide panel mode for CBM panels - Wide DOS panels are now very similar to Full DOS panels, the only difference is that, in Wide panels, file names are not split into the name and extension parts - instead of radio buttons, the panel filters are now check boxes so that you can make the panels show files that belong to any of the selected groups rather than only one selected group; also, there is a new panel filter for PC archives - introducing the 'Restore selection' feature - you can sort the display of disk images, as well - there is a new configuration menu for soft and hard interleaves - to save memory, the disk editor discards the contents of temporary buffers upon exit - now you can also enter Commodore drive device numbers in the error dialog box that comes up if there's no disk in the PC drive you tried to change a panel to - DOS files are first opened in sharing mode and, if unsuccessful, then in compatibility mode - the visible length of the 'Program extension' input line has been raised to 8 characters - the checkbox 'Fast command exec' has been changed to a group of radio buttons called 'Command execution' with the possible values of 'Normal', 'Turbo' and 'Warp' - you are warned if the destination tape image grows above 64 entries because C64S can only handle the first 64 of them - instead of an error message that you have to confirm, you only hear a beep if there's not enough memory to read in the directory - if there are no more entries in destination tape image during file copy then you're asked about expanding it - under 4DOS and NDOS, files with the extension '.btm' are also recognized as executable files - you can now set the real number of retries, the search on adjacent halftracks and the head bump on retry separately - the default number of retries of disk errors on Commodore disks has been raised from 1 to 5 - the progress indicator boxes don't flicker anymore - when a disk error occurs while copying a file from a Commodore disk in warp transfer mode, it is possible to skip the current file only rather than cancelling the complete file copy - you can make the Commander save files into the unused sectors of the directory track, if there's no more space in the destination disk image, by checking 'Copy onto dir track' - when saving files onto disks or into disk images, the fill pattern for the unused part of their last block is determined by the 'Orig format pattern' option - when the destination file already exists, during a file copy, you can also choose 'Rename' to have the source file saved with another name - you can force the deletion of all read-only or write-protected files without further confirmation for each - in delete and overwrite confirmation boxes, you can choose to skip all files without further confirmation for each - the deletion of cross-linked files ends when arriving at the BAM or the first directory sector - 'Make directory' now creates a directory structure of any depth in one go - by checking the new item 'Keep lowercase chars', under Windows 95, you can create directories with lowercase file names - now there are separate soft interleave configurations for external drives and all types of disk images - the maximum value of interleaves has been raised to 21 - the hotkey Control-F7 is now assigned to 'File attributes' - you can change the attributes of a whole directory structure of DOS files - you can disable the head bump before disk format - both parallel ports assigned to the Commander are initialized to input mode and ECP ports are set to byte mode, upon startup and before every access of the Commodore drive - a lot more ASCII characters are converted to PETSCII in file names during file copy from a DOS panel to a CBM panel - now all PETSCII characters are converted to some similar ASCII character when displaying file names or copying files from CBM to DOS panels - the user menu displays the first 16 items only - the user menu item 'Minimize' deletes unused entries from tape images - if the first line of a menu or extension file is a comment starting with the word "title" then the rest of the line is taken as the title of the menu to be displayed on the screen - the user menu for external drives is expanded with an item which changes the head used by the 1571 drive in 1541 mode - you can protect and unprotect 1541 disk images from the user menu - with a new item in the user menu for disk images, you can select files that contain at least one bad sector - now the 'Clean' and 'Safe clean' functions don't touch at all sectors that are used but don't belong to a file - when cleaning disk images, the BAM, the first directory sector and the GEOS border sector are cleaned with their default contents rather than the current format pattern, if they're marked free - if no setup file is present, the parallel port assignments default to LPT1 both - critical error dialog boxes contain an additional 'Ignore' button, when allowed - with the 'Skip all' button in read error message boxes, you can have all subsequent read errors skipped for the current file being copied and during a disk editor session - you can enter wildcards into the speed-search dialog box - the speed search dialog box scrolls the panel in a smarter way so that a few entries around the target entry are also visible - in sort modes other than 'Unsorted', directories are sorted before normal files in LHA and TAR archives, too - the 'File sizes' warning now takes the actual amount of free space into account and works with DOS drives, as well - some steps were taken to better display file and disk sizes above 2 Gigabytes - when a bad sector is read from a disk image that has an error info block attached then an error message is displayed and the error code is cleared if a sector is overwritten; you can disable this by unchecking the new option 'Show read errors' - the menu of available commands in the disk editor has been moved to F9 because now several other commands are assigned to the other function keys - the disk editor asks for confirmation every time you read in a new sector and the current one had been modified - the confirmations in the disk editor now have three choices that allow you to save and proceed, discard and proceed or cancel - with several hotkeys in the disk editor you can jump to different important sectors of the disk or disk image - Shift-Home in the sector editor takes 'Orig format pattern' into account - in the BAM editor, free sectors are marked with a dot and used ones with an asterisk - you can jump to any sector directly from the BAM and error info editor - Ctrl-Gray Plus/Minus/Star select/unselect/invert the complete BAM in the BAM editor - using Shift-F1 to Shift-F8 and Alt-F1 to Alt-F8, you can jump to the first block and the info block of files directly from directory sectors - a new function in the disk editor lets you see the owner of the current block and you can move around the blocks that belong to the same file - the disk editor now shows the linear offset of the current sector in the disk image - with a new feature, you can make the disk editor display the sector contents in ASCII, as well - you can use Enter to enter and exit the sector editor - the sector editor remembers the last position of the cursor when you exit - you can pick up two bytes under the cursor in the sector editor and jump to the block at that track and sector - the disk copier has been extended with the ability to duplicate and merge disk images - it is now possible to manually select the sectors to be copied by the disk copier - if you leave the file name part of the destination blank in the disk copier then the source file name will be duplicated there; except when copying a Commodore disk into a disk image, in which case the file name 'disk0001' is added and indexing is switched on automatically - when copying multiple disks into disk images and the destination file already exists, the index is increased until a non-existant file is found - 'Fetch format label from source' has been removed from the 'Copy disk' dialog box, destination disks are always formatted with the label of the source disk image - upon input of disk labels, trailing spaces are not cut off from the disk name or ID code - you can make the disk copier check the BAM ID against the sector header ID and correct the BAM ID, if needed - with a new option in the disk copier, you can have the source disk directory displayed in the active panel before you'd actually copy it - to speed up the disk copy of multiple disk images, you're not asked for confirmation when preformatting the destination disks - the disk copier can also generate indices containing disk side letters, when copying multiple disks from a Commodore drive - the disk copy now always ends with seeking the head back to the directory track - you can switch disk copy modes in the 'Copy disk' dialog box with the function keys, too - if you're copying an extended 1541 disk or disk image and, for any reason, no data was copied from the extra tracks then you're asked about removing them completely from the resulting disk image - by checking a new option, 'Detect disk changes', you can make the disk copier continue copying the next disk or disk image as soon as you change the disk in the external Commodore drive - if you check a new option, 'Endless retry', the disk copier will keep reading bad sectors until it succeeds or you exit the loop by pressing Escape or F10 - if you choose to create an error info block at the end of a disk copy, the errors will be displayed in the error info editor - when specifying source files for copy, move, rename or deletion, you can enter a list of file name patterns, delimited with commas or semicolons - during a file copy from or to a Commodore 1541 drive, the extra tracks are detected only before copying the first file but not for subsequent files - you get an error message when you're trying to copy a GEOS file from a Commodore disk and a warning message when copying a GEOS file to a Commodore disk - there's an error message when you try to delete a GEOS file on a Commodore disk or try to validate a GEOS disk - the file copy is a bit faster when you copy selected files from a Commodore drive - in GEOS disk images, non-GEOS files are also saved the same way as GEOS files - you can format multiple disks in one session by checking 'Format multiple disks' in the 'Format' dialog box - when formatting Commodore disks, the characters '*', '=' and '?' are replaced with spaces so that the drive doesn't reply with an error message - files with the extension '.sfx' are now handled as LHA archives - files starting on the dirst directory sector or on any BAM sector are also considered to be phantom files - sizes in Info panels are now displayed in a single form, depending on the current status of 'DOS sizes in blocks' - Quick view panels now display file count and file size totals for directories in the opposite panel - the 'File info' dialog box shows the description of GEOS files - for BASIC programs, 'File info' now also displays the computer the file was, most probably, created on - when changing the attributes of a single Commodore file, the new default for the file type is 'Do not change' - the disk image maker is back to its original speed - the speed-search dialog boxes are now wider, allowing you to type more of long file names - when long file names are available, file name input lines allow data to be entered up to 255 characters - if a command being executed already exists in the history then it is moved to the end of the list instead of being duplicated - command lines containing spaces only are discarded - in input lines, Control-Del has the same function as Control-T - when inputting file names, Alt-24 and Alt-27 are converted to the up and left arrows of the PETSCII character set - good sectors are marked with a dash instead of a number '1' in the error info editor - the function that strips the error info block off the disk image is now assigned to F8 in the error info editor - with the symbol '!/' in user menu and extension files, you can insert the current path inside the current image file into the command line; also, the symbol '!#' inserts the zero-based index of the current file inside the current image file - standard viewers and editors are searched for in the PATH, not only the Commander home directory - the description of supported Commodore drives has been moved to a separate page in the online help - the maximum length of a line remaining unwrapped in the viewer and the editor has been raised to 2048 characters - the maximum length of search strings has been raised from 64 to 255 in both the viewer and the editor - the viewer and editor now accept file names containing spaces, even if they're not enclosed into quotation marks on the command line - when the load address is displayed in the viewer or editor, the 'Goto' function inputs and goes to a memory address rather than a file offset - in the viewer and editor, you can also use the mouse to select the file to view or edit in an image or archive file - the viewer and the editor now also display special symbols and do Tab translation in PETSCII mode - the viewer can also display file offsets based on the load address - the viewer now displays a warning about the current file being corrupted only once - if a long file name is specified in the command line and the file does not exist then the viewer truncates the file name to short form and retries opening the file - in the editor, there are separate Insert/Overwrite modes, indicated by the cursor shape and a marker in the title bar, for the text and hexa modes; when Insert is active in hexa mode, you can insert and delete bytes just like in text mode - in the editor, Ctrl-Del deletes the selected block, if there is one; otherwise, deletes the word to the right of the cursor, as before - the Replace function of the editor can now, in both text and hexa mode, either delete the old string and insert the new one in its place or patch the old string with the new - if you answer 'All' to the confirmation of the Replace function of the editor then the screen won't follow instances being replaced which speeds up the process to several times the original speed - you can select blocks with Shift-arrow keys, as well, in the editor - you can use wildcards in the 'Insert file' box of the editor - the Star Utilities can now handle long file names - the Star Utilities now have two more options that tell whether to display Commodore file names with the lowercase/uppercase or uppercase/graphics character set - a new option in the Star Utilities lets you delete successfully processed source files - the Star Utilities can now extract data into 1571 and 1581 disk images, too - the format descriptions in the Star Utilities now mention relative files - Star ARC now displays archive comments upon extraction - Star Zip, by default, stores the cosmetical ID in the BAM of the source disk image as the sector header ID stored into diskpacked ZipCode archives 14. Known problems and limitations The following problems and limitations are documented below so, please, don't bother reporting them: - Timeouts are not handled. All PC interrupts are disabled while accessing the Commodore drive, so errors during data transfer may lock up your PC. In this case, you have to generate a timeout manually by pressing Escape or F10 - if 'Manual timeouts' is enabled - or unplug the serial cable from either the PC or the drive. - Accessing Commodore drives under multi-tasking systems is not supported very well. For Linux, you should be using a native Linux application instead. For Windows NT/2000/XP, a similar device driver is needed for best performance; see the tweak package to make the Commander more or less work under these operating systems. - You can't use more than one Commodore drive at a time. Only one of the panels can show a Commodore drive and the disk turbos won't work if there are more drives connected and switched on. The best you can do is have all needed drives connected but only one of them turned on. The 'Drive setup' function helps you with configuring and switching among your drives easily. - For certain 1571 drives, it may take as long as a full minute to accept single-sided floppy disks, when the drive type is set to '1571' or '1570'. This is a bug in older 1571 DOS revisions and has nothing to do with the Commander, as it also occurs when the drive is connected to a Commodore machine. - You can't copy GEOS files from and to and relative files to Commodore disks. You have to use the disk copier to copy such files as part of a disk or disk image instead. Also, it is not possible to delete GEOS files on Commodore disks or to validate GEOS disks; this is implemented for disk images only. - When copying a GEOS file from a DOS file (in Convert format) into an image or archive file, the manual file name conversion box offers you the DOS file name, rather than the original Commodore file name inside the Convert archive. The reason for this is that the dialog box is displayed before the Commander would read any data from the source file and recognize that it's in Convert format. - Because of memory constraints, the Commander doesn't show more than 500 directory entries per panel. - Very long file and path names, those over 254 characters, get truncated. This is an inherent limitation of the Pascal language, in which strings may not be longer than 255 characters. - Instead of the usual extract command of LHA, both the Commander and Star LHA use the print command, which only works correctly with LHA 2.14 and newer versions. With older versions of LHA, you will find garbage in the extracted files. - The common clipboard of Windows pads text data with zero bytes to a multiple of 32 bytes. You may experience the loss of some bytes from the end of blocks, that contain zero bytes, when pasting them into input lines or into the editor. Fortunately, this doesn't occur with normal text, only binary data. Some of these problems may later be solved and some will not. 15. Coming soon I'm planning the following changes for the next version. Please, tell me if I should start working on the low priority items marked with (?), as well. - bug fixes, of course... - convert all documentations into HTML format - support for GCR-coded disk images - support for 1581 drives, including disk turbos for copying files and disks - support for reading, writing and formatting 1581 disks in the PC floppy disk drive - that is, integrating Wolfgang Moser's 1581COPY into the Commander - support for ZIP archives - restructure the disk copier so that it can copy data between any pairs of the following formats: disk in external Commodore drive, disk image, GCR-coded disk image, diskpacked ZipCode archive, sixpacked ZipCode archive - another retry counter for the disk copier that tells that a bad sector should be considered successfully read if the same - although apparently damaged - data has been read from it for this many successive retries - a 'Find file' function, with the ability to search for textual contents and, also, inside image and uncompressed archive files - command line interface for batch processing - display files in the border sector of GEOS disks and disk images - speed up the editor with a line buffer - allow associating menu files to different file name patterns in extension files - XMS and EMS usage for storing temporary data in DOS shells, to give more memory to programs and, also, for storing the clipboard - show the header ID of the current sector in the disk editor - the Star Utilities should be able to handle directory structures - "![]" macro in menu and extension files for asking the user to specify the value to be inserted into the command - circumvent the single-sided disk recognition delay bug in older 1571 DOS revisions - an alternative timing system that uses the Pentium time stamp counter (?) - support for copying GEOS files from and to external Commodore drives, deleting them and validating and formatting GEOS disks (?) - support for copying relative files to external Commodore drives (?) - comparing files or complete directory structures of files (recursively), no matter what format they are in (?) - allow to insert separator lines into the directory of disks and disk images; perhaps, some time a full-blown directory editor (?) - ability to create custom C128-style boot sectors, either with precompiled code or with the standard boot sector command to load a program off the disk (?) - make the editor allocate new sectors in the disk imageif the file being edited grows beyond its original size and, similarly, free unneeded sectors if the file shrinks (?) - interactive file copier that allows you to exactly tell onto which sectors to put the destination file data, when copying into disk images (?) - allow copying directory structures from and into 1581 disk images and LHA and TAR archives (?) - smart disk and disk image filling algorithm that copies the source files in groups that fill in the destination disk or disk image as much as possible (?) There are many ideas that I will not put inside the Commander. They are related to a multi-purpose utility, not a DOS shell and transfer program like the Commander. 16. Thanks to Without the following two persons, this program, this documentation and even the interface cables wouldn't be as good as they are: Wolfgang Moser Nicolas Welte I would like to thank my development team for their invaluable help: Todd A. Aiken Gustavo Ayala Bacchus/Fairlight Mathias Beilstein Jrgen Bullinger Clarence/Graffity Credo/SCS*TRC Michael J. Darschewski Dohos dm Edhellon/Resource Sven Goldt Halsz Csaba Matthias Hartung Lion/Chromance Stephen Lloyd Olav Morkrid/Panoramic Designs Piret Endre Gunther Richter Mathias Schroeder Darrin Smith Sorex/WOW Suba Pter Szigetvri Jzsef Tamsi Gyrgy Vic/COMA Wojtek Wasilewski The following people have contributed code fragments or their programs were used as examples: Marko Mkel original ZipCode and UnLynx for DOS Chris Smeets Commodore ARC and LHA extractors Turczi Ferenc original warp validate program The following people have given miscellaneous help with the development: Andreas Boose discussion about the 1581 track cache Markus Gebhard several sample 1571 disk images Hrsfalvi Levente the idea of TAR support for long file names Frank Kontros help with parallel cables and disk verify Chris Link many good ideas concerning the development Pasi Ojala help with the layout of 1581 disks Ettore Perazzoli discussion about the GNU Public License Slaygon/Censor permanent WWW and E-mail address SVS/[FIRE] additional, 256-color icons Andres Valloud general Pascal code optimization ideas Joe Votour help with the way GEOS saves files Special thanks go to: Mr. Axel for manufacturing stuff for The X1541 Shop BBT/Breeze for his 1571 drive Berkeley Softworks for GEOS Bigfoot for the XH1541 hybrid cable and other ideas Borland International for Borland Pascal and Turbo Assembler Ralf Brown for the x86/MSDOS Interrupt List Commodore Business Machines for the Commodore computers Leopoldo Ghielmetti for X1541 and the X1541 cable Michael Klein for the XA1541 active cable Wilbert van Leijen for the OverXMS unit Wolfgang Lorenz for Personal C64 Miha Peternel for the C64 Software Emulator Hans Pieters for his 1581 drive and other Commodore stuff Peter Schepers for 64COPY Bernhard Schwall for Trans64 John Socha for The Norton Commander Per Hkan Sundell for the CCS64 emulator VICE Team for the VICE emulator package Vsevolod V. Volkov for The Volkov Commander And thanks to you, too, for using the Commander, especially, if you took the time to register it. 17. Related Net resources The Star Commander homepage: http://sta.c64.org/sc.html Here you can always find the latest public release, along with the full source. The Star Utilities homepage: http://sta.c64.org/su.html The Star Utilities are external programs, for mass conversion between Commodore-related file formats. At their homepage, you can always find the latest public release, along with the full source. The Star Commander beta page: http://sta.c64.org/scbeta.html Here you can see information (bug fixes, modifications, new features) about the beta versions of the Commander and the utilities being developed and tested and download these betas. This is the only place on the Net where you can find beta releases; do not republish beta releases! Useful external programs for the Commander: http://sta.c64.org/scextprg.html Here you can find some additional programs that may help you with solving problems with the Commander and the X1541-series interfaces. X1541-series cables and adaptors page: http://sta.c64.org/xcables.html Here you can have a look at the documentation and the description of the X1541-series interfaces, those supported by the Commander. Also, there are construction pages that show you how to build the cables and adaptors yourself. The X1541 Shop: http://sta.c64.org/x1541shop.html Here you can buy X1541-series and other cables and adaptors for unusually low prices. You can also E-mail me any time to ask for a uuencoded or attached copy. Finger me at the address sta@sta.c64.org to find out the version number of the latest release. If you would like to subscribe to The Star Commander mailing list, to be notified about new (beta) releases, to ask questions or to just chat around, then send an E-mail to sclist-subscribe@yahoogroups.com. To post articles, send an E-mail to sclist@yahoogroups.com. Please, note that only members are allowed to post to the mailing list. To unsubscribe, send an E-mail to sclist-unsubscribe@yahoogroups.com. I also upload the newest releases to the following WWW sites: - Albion mirror site (Poland) http://biotop.umcs.lublin.pl/~ptracz/sc_site.htm - The C64 tools list, MS-DOS section (Sweden) http://www.fairlight.to/tools/pc.html - Zak's C64 Download Area (Poland) http://fanthom.irc.pl/~zak/c64/download.htm ...and the following FTP sites: - ADE BBS (Italy) ftp://bbs.cc.uniud.it/c64/tools/other_machines/pc/dos/ - Arnold, home of the Commodore games (USA) ftp://arnold.c64.org/pub/utils/transfer/ - Computer Workshops FTP site (USA) ftp://ftp.armory.com/pub/user/spectre/EMUL-UTIL/ - The Digital Dungeon (The Netherlands) ftp://utopia.hacktic.nl/pub/c64/Tools/Convert/ - Funet archive (Finland) ftp://ftp.funet.fi/pub/cbm/transfer/1541-to-PC/ - Gangsta's Paradise (Hungary) ftp://c64.rulez.org/pub/c64/other-OS/Dos/ - Kiarchive FTP server (Ukraine) ftp://ftp.kiarchive.ru/msdos/emulator/c64-128/ - Padua FTP site (Germany) ftp://ftp.padua.org/pub/c64/Tools/transfer/pc/ - Spockie's FTP site (Austria) ftp://ftp.giga.or.at/pub/c64/transfer/1541-pc/ If you know more good, stable WWW or FTP sites with C64 areas to which I should upload the Commander then an E-mail would be appreciated. 18. The author Please, send an E-mail to the address sta@c64.org if you have questions, problems, ideas or wishes concerning the Commander. In your E-mail, wrap your lines at 70-75 characters. Send plain text only, no rich text in HTML format or the message in an attachment. You can send snail-mails to me at this address: Kovcs Balzs Orsolya u. 5. IV/12. 1204 Budapest Hungary You can also call the phone number (+36-)1-285-3881 to contact me (8PM-10PM, GMT+1). Please, call me only if extremely urgent. My ICQ number is 43570569. I'm usually online on weekdays, during the working hours (10AM-6PM, GMT+1). Please, ICQ me only if very urgent. Please, use English or Hungarian. If you really have to, you can write in German, as well, but be warned, I can only understand it, I don't speak it. If you wish to send some files to me, either by E-mail or snail mail then ask me before you do it. I don't like being flooded with large E-mails or lots of disks without having been warned. Note that Hungarians, similarly to Chinese, Japanese, Vietnamese and, probably, some other Far-Asian people, have their names in a "reverse" order. If you really don't want to call me Joe then, please, use Balzs or Mr. Kovcs in your greeting rather than the opposite. 31st March, 2002 Joe Forster/STA