:honX-sofT presents: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵ ÚÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÐÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÃÄÄÄ´ MOD-Eater V 3.01 ÃÄÄÄ´ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÒÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÙ ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ -> written by Axel Grossklaus <- RELEASE DATE: 06.9.1995 ³ 1. What is Mod-Eater ? (And who should care about it ?) ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú Mod-Eater is a tool to add comment-lines, BBS-ads or any other text to the song-message or sample-names-list of every common type of sound-module (i.e. MOD, XM, DMF, S3M, MTM, 669, ULT). For example: * This module passed * * World of Sound Net * * +49-40-2102138 * These text-lines (up to 16 of them) are appended, and no part of the existing song-message will be overwritten, as long as the file-format allows. Mod-Eater has archiver-support (every common type) and can also convert between the different types of archivers. Mod-Eater is a tool mainly for sysops, especially for sysops of sound-oriented BBSes or (even better) hatchers of sound-file-nets. Mod-Eater is specially prepared for this use and can for example be used together with an upload-processor or file-tosser. Mod-Eater has many configurable options and can do some nice things with sound-modules, even packed ones. ³ 2. What Mod-Eater can do.... ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú - append comment-lines to sound-modules (MOD, S3M, XM, DMF, MTM, 669, ULT ) - up to 16 lines of text - no part of the existing song-message will be overwritten - ARCHIVER SUPPORT !!!! ...unpacking of ARJ, ZIP, RAR, UC2 & LHA, and more types through additional support of the General Unpack Shell (GUS). ...repacking in ARJ, ZIP, RAR, UC2 & LHA. - repacking of modules with file-banner - creating backup-files ...and a nice and colourful screen-output ;) ³ 3. So....how does it work ? ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú Well....now we're getting to the interesting part.. Mod-Eater uses a config-file (normally called MEAT.CFG) where (almost) all parameters can be definded. Many of these options can temporarily be overridden through command-line-options. The config-file is mainly used to specify the lines if text that will be stamped into the mod-files. (The parameter /NO_MOD_SIG is the only one, that can not be defined in the config file...) Once Mod-Eater is configured, it can easily be started with a filename of a sound-module as a parameter (path & wildcards may (of course) be included) and that's all... The program is quite self-explaining (especially its config-file), so there should be no major problems... ³ 4. Let's configure something, uh huh huh.... ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú at first: some basics... The default-name of the config-file is MEAT.CFG, Mod-Eater will at first look for it in the current directory, and then in the directories that are included in the PATH environment-variable. (Mod-Eater will tell you which config-file it uses..) If MEAT.CFG can not be found, Mod-Eater will be terminated. It is possible to specify an alternative config-file at the command-line by typing @ (e.g. MEAT.EXE *.* @C:\TOOLS\CFG\ALT.CFG ). Mod-Eater will NOT look in the path-directories for this alternative config file. The config-file of Mod-Eater is a common plain-ASCII file, and can be edited with any normal text-editor, although you shouldn't use an editor that cuts off spaces at the end of lines (like mail- or source-editors). It's always like this: [data...] [data...] The keyword data starts *behind* the first space-character of a line. Any line starting with a ; will be ignored. The order of the keywords doesn't matter. At first you should give the lines of text that will be added to the sound-modules. Here's an example for *.MOD-files: MOD *This File Passed The* MOD * WoS-Net WHQ !! * MOD * Call 49-40-2102138 * You can specify from 0 to 16 lines of text (any further line will be ignored). The maximum length of text is defined by the file-format of the specific type of module. If the line is longer, it will be cut. Keyword: ³ Possible length of text: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ MOD ³ 22 characters ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ S3M ³ 27 characters ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DMF ³ 40 characters ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ULT ³ 32 characters ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ XM ³ 22 characters ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ MTM ³ 22 characters ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 669 ³ 12 characters ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Module-Keywords with no data will be ignored, if you want to have a blank line stamped into the sound-module, you have to type *TWO* spaces behind the keyword. So don't use mail- or source-editors to edit the config file, because they usually cut off spaces at the end of lines. ....and now the options... All other keywords configure the way Mod-Eater will handle the files. Some of them need some data behind them, others just need to be there to affect the way Mod-Eater will behave. To deactivate a keyword, just put a ; in front of it. If two keywords cannot be used at the same time, or one keyword is given more than once (apart from the ones that define the lines of text), the one that comes later in the config-file will be used. ...so, here are the keywords... FULL_BACKUP Is equal to the commandline-option /B. If SINGLE_BACKUP is active in the config-file backup-files of the modules will be created, called .BAK. SINGLE_BACKUP Is equal to the commandline-option /S. Like FULL_BACKUP, only that the backup-file will be caled MEATMOD.BAK. If MEATMOD.BAK already exists, the file will be overwritten. This option is only useful if you don't stamp more than one module at a time. SINGLE_BACKUP and FULL_BACKUP can not be active together !! NO_ARCHIVES Is equal to the commandline-option /A. If this keyword is active, no archives will be processed. (for Mod-Eater, archives are: ARJ, ZIP, RAR, UC2, ARC, LZH, ZOO, SQZ & LHA) MODS_ONLY Is equal to the commandline-option /M. If MODS_ONLY is active, only files with the following extensions: *.MOD, *.S3M, *.DMF, *.DMF, *.ULT, *.MTM & *.669, and archives, according to wether No_Archives is active, will be processed. (Files with the extension *.BAK will *NEVER* be touched !!!) COMMENT <[directory\]file> If a filename is given beghind COMMENT, this file will be added as file-banner when repacking modules from an archive. (At the moment only when using ARJ, ZIP & RAR...UC2 wil maybe implemented in further versions...) A path maybe included as well. UTILS If you specify a directory behind UTILS, Mod-Eater will look in this directory for the needed archivers, after he has looked in the current directory and before it will check the PATH environment variable. UNPACK The keyword UNPACK defines the program Mod-Eater calls to unpack archives. Two different settings are possible: GUS and PACKER. If UNPACK is set to GUS, the 'General Unpack Shell' will be used (refer to MEAT.DOC for further information on this), if PACKER is given, Mod-Eater will directly call the archiver. If GUS is used, Mod-Eater will process alll the archive-types I listed in the description of NO_ARCHIVES. If PACKER is set, Mod-Eater will only process the following types: ARJ, ZIP, RAR, UC2 & LHA The default setting is PACKER !!! PACK With this keyword you can specify the format the processed files from an archives will be repacked in. Possible settings: ARJ, ZIP, RAR, UC2, LHA & SAME. If this option is set to SAME, the files will be packed in the same format they were at the beginning, but with SAME, Mod-Eater again only supports: ARJ, ZIP, RAR, UC2 & LHA !!! So this option allows you to do archive-konverting of 'incoming' files ! The default setting is ARJ !!! ARC_SPEC This keyword gives the file-spec Mod-Eater looks for files in an archive with, like the file-spec at the command line, only that its used inside archives. (Don't include a path !!). So if you only want to process *.S3M Files in an archive, you set ARC_SPEC *.S3M DONT_KILL Equal to commandline-parameter /D. If this keyword is active, Mod-Eater will stop the processing of a sound module and restore its original form if the current number of song-message- or sample-lines plus the number of comment lines would exceed the number of lines the file-format allwos and Mod-Eater can not append the comment-lines. If this keyword is not given (which is the default !!), Mod-Eater will overwrite as many lines of the song-message as it needs to write the complete comment in the sound-module. CONVERT Equal to commandline-parameter /C. If CONVERT is active, archives will *always* be repacked with the archiver given with PACK. If CONVERT is disabled, the files will only be repacked, if at least one sound-module in the archive was succesfully processed, otherwise the archive will remain untouched. DONT_DO.. The seven DONT_DO..-keywords can be used to disable the processing of each module-type separately. ...and last but not least: NO_MOD_SIG !!!! This option can *only* be used at the command-line, in the config-file it will be ignored !! If this option is active, ALL FILES WITH THE EXTENSION *.MOD will be handled as files of this type, the checking of the file-signature at offset 1080 (e.g. M.K. or CHN8 ) will be skipped !!! With this option it is possible to stamp modules which have exotic,or changed signatures, or no signature at all. When using this option you should be VERY CAREFUL (!) and check very thoroughly if it really is a MOD-file, and it has a standard-header (Mod-Eater knows the following signatures for MOD-filesg: M.K. M!K! 4CHN 6CHN 8CHN 10CH 12CH FLT4 FLT8, with these signatures, you should be able to process 99.9 % of all MOD-file correctly. (If you know a signature which is not included here, please contact me quickly, i will implement it.) The test for "Mod-without-signature" is done as last one, after checking for all other types. THIS OPTION SHOULD BE USED VERY CAREFULLY !!! (you shouln't use wildcards when executing Mod-Eater with it) so, that were all the config-options.. ....if you can think of something else, you would like to have here, contact me, maybe i will implement it in further versions.. ³ 5. And now the stamping itself.... ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú You execute Mod-Eater with at least one parameter, the file(spec) for the modules. If wildcards are included in the filespec, the archive-attribute of EVERY file in this directory will be deleted. When Mod-Eater has successfully stamped a sound-module, the archive attribute will be set. So you can find out which of the files have already been stamped, if the execution of Mod-Eater could not be completed properly. Mod-Eater reads filenames of all files that fit the filespec at the beginning of its work. So you may not be able to stamp serveral thousand modules in one go, because of low memory. When detecting the type of a file, Mod-Eater checks the signature in the files when determining if its a sound module. Archives are only detected because of their file-extension. If Mod-Eater should encounter a file where the file-extension does not match the file-type, it will try to rename the file. If a file matches two signatures,the file extension will decide what the file is: MOD-signature + 669-signature + *.MOD-file-extension => MOD-file ! Mod-Eater does some additional error-detection by comparing the values for order, pattern & samples in the file with the maximum number, the file format allows. If the stamping of a module can not be completed, the original form of the file will be restored. The lines of text will be appended to the ones already existing in the sound-module. Because of this, the file will sometimes grow a little. Note that this makes *.TIC files for these files invalid, for they contain CRC checksums of the attached files. File-time and -date are NOT changed by stamping a module !! If there are no text-lines given in the config-file for a module-type, the stamping for this file-type will be turned off. Mod-Eater will NOT stamp files smaller than 8 kilobyte, thos files will simply be ignored and if there are only files <8k in a directory, Mod-Eater will say: 'No files found !' Under NO CIRCUMSTANCES, Mod-Eater will stamp *.BAK files !!!! Errorlevels of Mod-Eater are: 1 Warning (at least one module could not be stamped correctly, and remained untouched) 2 No modules found. 170 Config-file not found. 172 Severe error while unpacking an archive ! (e.g. disk full) 173 Severe error while repacking modules ! 255 No parameters given (Help page was displayed) Mod-Eater occupies ~150kB in the RAM and needs a 286er... Ú 6. Processing of archives..... ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú Mod-Eater is alsoo able to process module that are packed with an archiver. internally, Mod-Eater supports ARJ, ZIP, RAR, UC2 and LHA. If the GUS is used for unpacking (see below), Mod-Eater will also prcess ARC, ZOO & SQZ. Mod-Eater will lookd for the needed EXE-files in the current directory, in the directory specified with the UTILS option, an in the directory given in the PATH environment variable. When unpacking an archive the, all files will be unacked in one directory, any structure of sub-directories will be lost. furthermore, all Hidden & Read_Only file-attributes will be deleted. (Neither file-attributes nor subdirectories should IMO be in packed sound- modules.....tell me if your opinion is different..) If Mod-Eater cannot find any sound-module in an archive and CONVERT is not set the arhive will remain untouched. If all sound-modules in an archive are stamped, the files will be repacked with the archiver given with PACK. Ú 7. And what about security ??? ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú I've tried to make Mod-Eater as safe as possible, routines concerned with safety or testing do cover a rather large part of the source code. Mod-Eater was tested very thoroughly and has successfully processed over 400 different sound-modules of all types and has been used for some time now, for hatching files into the WorldOfSound-Net. Of course there is always a small risk left, that stamping destroys a file, especially if there was already a very small error in it But the probability is much higer that Mod-Eater refuses to process a module which is correct. Ú 8. What the h*** is GUS ??!? ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú The _G_eneral _U_npack _S_hell is a tool that provides a uniform interface for unpacking archives of all common types. You have only one set of parameters for any type of archive. A *VERY USEFUL* tool. :-) The GUS is very wide-spread in the 'BBS-scene' and should be available from any major BBS. The author of the General Unpack Shell (not of Mod-Eater ! ;) ) is Johan Zwiekhorst. Net-adresses: Snail-Mail: Internet jz@nfe.be Johan Zwiekhorst Compuserve >INTERNET:jz@nfe.be Dorpheidestraat 63 FIDOnet 2:292/100 & 2:292/118 3590 DIEPENBEEK (Belgium) Ú 9. Some more stuff about Mod-Eater... ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú The developement of Mod-Eater took about 4 month. I wrote Mod-Eater because I was furious about another program that was made for a somewhat similar purpose but virtually had no features (apart from an annoy-o-meter), was heavily shareware crippled and the programmer wanted money for it, anyway... The source of Mod-Eater is about 2600 lines and 80kB in size... Like you can easily see from the version number, this is the very first public release of Mod-Eater ;) (internal release ca. V 53.0 ;-> ) Ú 10. And now some boring stuff... ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú sorry, but i had to include this...the feds here in germany are going nuts at the moment...about copyright, and all this stuff... by using Mod-Eater, the user automatically agrees with the following conditions: Mod-Eater is FREEWARE and may be freely copied including via BBSes and file-nets. NO MONEY may be charged for it, apart from a cost-sharing fee at BBSes & file-nets. Mod-Eater may be included on CD-ROMs but *NOT* on PD/shareware disks or 'shareware-copying-terminals' in shops. If Mod-Eater is included on a CD-ROM, not more than the equal of 40 US-cents may be charged per program that is included on the CD-ROM. Mod-Eater may not be uses for commercial-purposes without the permission of the author. Mod-Eater was completely written by me, and *NO* source code from anyone else is included. I do not guarantee that Mod-Eater does a specific thing, or doesn't do another, even if these docs say so. *YOU USE MOD-EATER AT YOUR OWN RISK !!!* I am not responsible for the correct stamping of modules (no matter if they are defect or not). I am in no way responsible for any damage, loss of profit or other disadvantage the user of Mod-Eater hast through the use of Mod-Eater, even if this occurs throug a clearly visible malfunction of Mod-Eater as long as it is not proven that it occured because I knowingly implemented a routine with the sole purpose to do this damage (i.e. a Trojan etc.). If Mod-Eater is edited or changed in any way, this responsibility is void. Furthermore I am not repsonsible for any breach of copyright or intellectual property done by the user using Mod-Eater. Ú 11. And now...the end... ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú I would be very gratefule, if everyone, who uses Mod-Eater regularly would let me know and send me a postcard, so i can see how far Mod-Eater has travelled. If you snd me a postcard, I you are a registered user, and may receive a 'registered' version if you like... There are three ways to get this version to you: - Send me a disk and a self-adressed and stamped anvelope, if you don't live in Germany, enclose TWO international-response-coupons (available from your local post office) - Give me a fido adress, and I will put the program on HOLD at the Honx-Soft Support-BBS (2:240/5100) - Give me your E-Mail adress...you will receive a UUCode.. For a small contribution (this does NOT have to be money...think of something nice ;) ) i will write you a special version of Mod-Eater where the line-comments are hard-coded (see the WoS-Net Special Edition), or i will do something else with Mod-Eater....contact me... I would be very happy about any further comments, bug-reports, suggestions for features... My adresses: Axel.Grossklaus@Hamburg.NetSurf.DE (E-Mail) Axel Grossklaus@2:240/5100.24 @ fido Axel Grossklaus@37:104/213 @ TrekNet.TNG (German Trek-Net) Axel Grossklaus@46:4920/0.8 @ Wos.Net (World-of-Sound-Net) Snail: Axel Grossklaus Stettiner Str 124 D-21435 Stelle Tel.: +49-4174-3451 (I live in Germany, so please ONLY call here from 11 a.m. to 10 p.m. local time..) The support BBS is the Joey's BBS (WorldOfSound WHQ) in Hamburg, you can also reach me online there.. Tel: +49-40-2102138 (28k8) +49-40-21090290 (iSdN) The Joey's BBS (2:240/5100) always has the newest releases of my programs.. Many thanks to Jens Erbe (SysOp of Joey's BBS) for beta-testing, and letting my tool eat his precious mod-files :-) Greetings to: BetaZed, El Argentino, and the Rest of JOEY.INTERN-Crew... Panic_T.+SRM'95-Team, JoAe & Obi_Wan, Ines & Joey as well as the rest of the Members Of Joey's..... Ú 12. Notes on this English release.. ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú As you might have noticed, this is the English version of a German tool. I tried to translate the screen-output and these docs as well as possible and I hope you understood anything...if theres a word that doesn't fit into the context at all, I probably meant another word ;) ... I didn't consult my dictionary very often.... If you have any further question, contact me... It would also be very nice if you tell me the worst mistakes in this docs, so i can correct them in the next version.... Ú 13. Features yet to come... ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄ ÄÄ Ä ú I cannot thing of many more feature Mod-Eater should have..so the 'to-do-list' is somewhat short... tell me what you like... - more File-Formats (only if you really want that, or cool new format come up...) - more archivers (not very likely) - Move BackUp-Files to a different directory.. - move processed modules to another directory.. - check file-signatures of archives - more 'Upload Processor'-Features, more feature for automatic use of Mod-Eater at a BBS