DMSChecker 1.0 coded by Martin Wulffeld Preface ~~~~~~~ The files in this distribution are Copyright (C) 1994 Martin Wulffeld. They may be freely distributed as long as no more than a nominal fee is charged to cover time and copying costs and all the files are included and remain unmodified. No commercial usage is permitted without written permission from me. Everything in this distribution must be kept together, in original unmodified form. If you find a bug or just want to express your joy over this most excellent program don't hesitate to contact me on one of the following addresses: Snail: Martin Wulffeld Fredensvej 14 4720 Pręstų Denmark Fidonet: 2:236:12.1 Amynet: 39:141/137.1 Disclaimer ~~~~~~~~~~ I, the author, can not be held responsible for ANY damage this program might inflict to your system. Use at your own risk. Requirements ~~~~~~~~~~~~ DMSChecker requires at least Kickstart 2.04. It also requires the Bootblock.library v1 and unpack.library v39 to be present in your LIBS: assign. Furthermore it requires the Bootblock.brainfile to be present in your L: assign. Those are included in this distribution. Function ~~~~~~~~ DMSChecker was coded for those who wish to check their DMS archives for bootblock vira and is therefore a perfect utility for sysop`s. It finds the vira using the Bootblock library and it takes 4 arguments. A=FILE/A - The file to check. You can also use pattern matching on this one. Eg. 'FILE #?.dms'. A=ALL/S - Specify this if you want DMSChecker to enter sub directories. C=CRC/S - Specify this if you the DMS archives to be checked for CRC errors. E=ERRORDIR/K - A path where the archives with errors or bootblock vira will be copied to. When scanning the files DMSChecker outputs the filenames and if it finds a virus it will (of course) inform you. But if you use DMSChecker from within a script matters are a bit different. If DMSChecker finds a virus or the CRC check failed it will return to DOS with an exit code of 10. If both things happen it will return 20. Here is an example script: .key filename .bra { .ket } FAILAT 11 DMSChecker {filename} CRC E=RAM: IF ERROR ECHO "Error 20" ENDIF IF WARN ECHO "DMS archive not safe" ENDIF Basic enough? Please remember that it's somewhat useless using a pattern within a script. Why? Well, because the script will only get the result of the LAST check of a file!! Credits ~~~~~~~ Brian Overby (Skyline Amy BBS +45 46 15 51 70) for giving me the idea. Pearl Jam (Vitalogy is great)