IDE64 Plugins Setup by DJ Gruby/Oxyron Attitude #13, Septenber 2012 IDE64 device is equipped with the powerful IDEDOS system which is equipped with the powerful File Manager software, which in turn comes up bundled with an extensive plugin system. IDE64 User's Guide provides a comprehensive information on setting up and maximizing profits from its use. However, what is missing is a detailed description how to setup IDE64's plugin system easy, quickly and conveniently. And this is where Attitude disk magazine comes to your aid. If you want to know how to configure and use your IDE64's File Manager plugins in no more than a few minutes, read on. WHAT CAN I DO WITH PLUGINS? According to the IDE64 manual [1] plugins can for example display text files and miscellaneous graphic formats, play SID musics and GIF animations, extract files from archives and disk images, launch an assembler with the given source file that is loaded into an editor instantly, etc. As you can see external programs called by the File Manager can extend its functionality in many ways. The File Manager extensibility comes from bounding external plugins to four "function" keys: RETURN, 2, 3, and 4. Pressing one of them when highlighting the indicated file, combined with a properly configured plugin system, will fire up an applicable external program. Which action is actually taken depends on the configuration accesible by the File Manager in file called "1//:man,usr", which is looked-up on the system drive (use CMOS Setup utility to consult which drive is your system drive). When you press one of the plugin's "function" keys, the contents read during the initial startup of MAN file manager from this file will be consulted and, based on the information retrieved from it, an appropriate executable will be determined (or not) and invoked to handle requested action. WHERE CAN I GET PLUGINS? Now the problem we are going to solve by the end of this article is how to make this configuration work. Before that let's answer the question, where do we get all those fancy plugins from? Do we need to write them ourselves? The answer to the latter question is obviously: "No!" IDE64 Warez Site [2] is a place to go to get all the plugins available for your IDE64 device. Enter the website, click on the "Appz" button and scroll down until you reach the "Plugins" section. There you go. Miscellaneous utilities are there ready to be downloaded. There is a bunch of remarkable and considerably useful software available, which I will let you explore on your own. FOLLOWING DOCUMENTATION IDE64 manual describes the process of preparing File Manager configuration file and gives you a clear example in the form of a BASIC program that you need to enter yourself and then execute. In fact, what you can read about in chapter 9.2, is a detailed specification of a REL file type format. Information, how such a file is constructed, contains details like a character ending each line or position of a fake loading address within the configuration file. These are internal details of the MAN implementation, which are not necessarily particularly interesting for a regular user. A regular user should have not been aware of them and most likely does not want to even know them. MAKING EASY THINGS EASY File Manager plugin configuration can be easily created with a Perl script. No, you don't have to write one on your own. There's already a script, which is ready for use, and can be downloaded from IDE64 Warez Site. Once again enter the website (if you already have closed your browser's tab), click on the "PC toolz" button, and scroll down to the "Unix" section. Don't get confused if you are a Windows user. Nothing to worry about, since Perl is a cross-platform tool, it is not exclusively available to Unix users, there is a bunch of Windows ports, including the most popular ActiveState's ActivePerl [3]. In fact, ActivePerl is Perl implementation for Windows, Mac OS, Linux, AIX, HP-UX and Solaris and is claimed to be the industry-standard Perl distribution available (by ActiveState, obviously). If you haven't installed your Perl compiler of choice yet, do it now and begin using Perl. Tool you want to download from the IDE64 Warez Site is titled "man.usr creator". Get the file and unpack the downloaded archive. Now it is time to create your MAN configuration file. Open your favourite text editor (important note: do not confuse a plain text editor with a fanciful word processor here!) and create a new file. This text file is going to be used as a data source for the process of generating target "man,usr" configuration file. So how does it simplify the whole process of creating it? A lot. You no longer need to worry about the format of a configuration file, where every single byte matters (remember that misconfigured "man,usr" file will screw the whole plugin system in the File Manager). Generation of a target file is as easy as invoking Perl script from within a command line: $ perl create_man_usr_file.pl Note the first (and only one) argument to it is the name of a file, where your plugin configuration has been written to. Now the most important thing, how should we prepare the actual contents of the configuration text file. The very first line is expected to contain the information about the location of plugin executables. In most cases it is going to be something like this: 1//plugins/: Assuming that you will most likely place your plugin programs within the "plugins" direcory on your system drive, that is exactly what your configuration file should start up with. It should end up with a new line character, that means that this first line end with a colon and the next configuration item begins on the next line of your text file. Format of the file expects the following four sections to be separated by an "=" character, where each section contains plugin program names with wildcard matching patterns that are associated with them. Each single line is supposed to contain a single configuration item. For example in order to match your graphics created using FacePainter image editor, you would add the following line into your text file: fcp (f)*,prg "fcp" is a file name of the specific plugin program that has been copied into "plugins" directory of your IDE64 drive. Note that all FacePainter image files begin with a prefix of "(f)" that is why our wildcard matching pattern begins with an "(f)" followed by an asterisk "*", and ",prg" finally (which indicates PRG file type, the most common file format used for storing data on C64 disks). Now depending on whether you want to associate your pattern of choice with pressing one of four "function" keys (RETURN, 2, 3, and 4, remember?), you will place your configuration item in the section corresponding with a chosen key. Different sections consisting of plugin program names and wildcards associated with them are organised in the following order: 1. RETURN 2. 2 3. 3 4. 4 Once again it's worth to mention that sections are separated by an "=" character. It's crucial not to forget about it, otherwise any subsequent configuration item will still belong to the currently processed section, and that might not necessarily give you the output you had expected. So here comes the final example, which combines all the information described above, collected together into a file we name "man_usr.txt". This is a data source file content that you can use as a basis for any further analysis as well as extending it according to your personal preferences: 1//plugins/: fcp (f)*,prg fcp *,fcp mpic *mpic,prg mpic *,mpi d64l *,d64 = d64 *,d64 = txt *,txt = sid *,sid Save this text as a "man_usr.txt" file. In order to generate the output "man,usr" file, which will be understood and correctly interpreted by the File Manager, execute the following command from within your command line: $ perl create_man_usr_file.pl man_usr.txt If everything goes well, you will find newly generated "man,usr" file in the current working directory. Assuming that you have unpacked all required programs into "plugins" directory, upon applying this example your File Manager plugin system will enable you to perform the following operations: 1. Viewing FacePainter images by pressing ENTER on filenames with "(f)" prefix or "fcp" extension. 2. Viewing Advanced Art Studio images by pressing ENTER on filenames with "mpic" suffix or "mpi" extension. 3. Extracting D64 file contents by pressing ENTER on filenames with "d64" extension. 4. Browsing D64 file contents by pressing "2" on filenames with "d64" extension. 5. Viewing PC text file contents by pressing "3" on filenames with "txt" extension. 6. Playing SID music files by pressing "4" on filenames with "sid" extension. Congratulations, you have successfully installed configuration file for the plugin system of the IDEDOS File Manager! PC TEXT VS PETSCII CHARSET You may have noticed already that PC's ASCII character set does not fully comply with the PETSCII standard that was implemented in C64. That means there might be some special characters used in disk filenames which have no their equivalent representation in ASCII. What to do then? Our magic Perl script provides an easy solution that can be applied to resolve this issue. Simply use a dedicated format that is introduced and handled by a script, and enables usage of any PETSCII code in a text file, that is: a backslash (there is no ambiguity risk since C64 character set does not include a backslash character), followed by an opening curly brace, a two-digit hex number (the actual PETSCII code), and a closing curly brace. Sounds complicated? It's not, furthermore I have come across the need to use this syntax only once (with the Koala Painter images, which define a character encoded by hex value of $81 as the first item of their filenames). As you might have noticed in the examples presented in the previous section spacebar was used to separate plugin's executable filename from a wildcard matching pattern. So what if we want to use a regular space as a part of a pattern? There's one special character that is recognized by the script in a different way than all others. That is an underscore. If you put an underscore into your pattern, it will get internally translated into hexcode $20, that is a spacebar, and used this way by the File Manager plugin system of IDEDOS. Again, there is no ambiguity risk since C64 character set does not include an underscore character. Well, technically there is a PETSCII symbol that might be used to represent an underscore, but its meaning is not the actual equivalent of ASCII's underline, it's just a graphic symbol. So about the aformentioned Koala Painter image format, which can be displayed using dedicated viewer plugin? I have said it was easy, so let's have a look at the example: kla \{81}pic_*,prg Make sure to use the correct syntax when adding this particular configuration item to your custom "man_usr.txt" text file (it has to contain backslash and curly braces precisely). TRANSFERING CONFIGURATION FILE Now that you've got your "man,usr" configuration file prepared and ready for use, there is one last step that needs to be done. It's transferring the file from your PC's hard drive into a disk connected to your IDE64 device. There are of course many ways to do it, and I encourage you to familiarize with the IDE64 documentation to learn more about possible solutions. Follow user's guide chapter 14 titled "PCLink" to get an overview of IDEDOS support for a network drive, which makes file copying between different computers not only possible but very easy as well. The most obvious link includes connecting your PC with the C64 over a USB cable. My personal preference is accessing IDE64 hard drive directly under Linux using FUSECFS plugin, which has been developed by Soci/Singular. If you want to find out more on this topic, there was an article published in the tenth issue of "Attitude", describing in thorough details how to setup FUSECFS driver. Having driver properly set up and your disk drive mounted in the system, transferring generated "man,usr" configuration file into your IDE64 disk is only a matter of copying it between two mount points, your PC drive and your CFS-formatted filesystem. SUMMARY In this article you have learned how to generate plugin configuration file that is used by the IDEDOS File Manager to enhance its functionality. Current solution might not be ideal, but it is still much faster to perform and easier to maintain than typing in the BASIC program presented in the IDE64 user's guide. I have been planning to come up with a more decent utility realizing the same task for quite a long time now, one that could maybe even allow users to edit File Manager's plugin configuration directly on the C64 in a very convenient way, without having to transfer target files betwen PC and IDE64 device, without worrying about character set incompatibilities, etc. I had been delaying this project for such a long time mostly due to lack of user demand, I might however reconsider implementing this almost forgotten utility again. If you can provide me with some feedback regarding its look and deliver some user interface requirements, I would be more than happy to do some useful IDE64 coding. This amazing device needs more tools like that, however they won't be created without you sharing your ideas and specifying your expectations. DJ GRUBY/OXYRON References: [1] IDE64 Interface Cartridge User's Guide http://www.singularcrew.hu/idedos/IDE64_users_guide.pdf [2] IDE64 Warez Site http://www.singularcrew.hu/ide64warez/ [3] ActiveState's ActivePerl http://www.activestate.com/activeperl/