WIZ version 3.7 by Ray Van Tassle 1020 Fox Run Lane Algonquin, Ill, 60102 (847)-658-4941 internet email: rayvt@comm.mot.com August 1, 1996 WIZ program and manual copyright(c) 1990-1996 by Ray Van Tassle. Abstract: WIZ is a lightning-fast file finder. It will find file(s) based on full wildcard specifications (more powerful than standard DOS wildcard), and can also filter by file size and date. It can: * select only executable files (EXE, COM, BAT, BTM). * select only archive files (ZIP, ARC, etc.) * Compute & display the CRC-32 of selected files. * switch you to the disk\directory of a file that it found. * execute a DOS command for each file it finds. * look inside archives (ZIP, LZH, & ARJ) * recursively look inside archives! * Correct handling of the special files/directories created and maintained by STACKER, DoubleDisk, DoubleSpace, DriveSpace, Norton FILESAVE, and PCTOOLS DATA Sentry. It will look on multiple disk drives for all matching filenames. You can pre-specify several default lists of disk drives for it to search. WIZ program and manual copyright(c) 1990-1994 by Ray Van Tassle. WIZ is shareware, NOT freeware!!! You are granted a limited 21 day evaluation license. At the end of that period, you should either delete it and stop using it, or send in the registration fee of $20 ($15 if you don't want me to send you a disk). MANUAL ------ I was tempted to call this program YAFF (yet another file finder), but I settled on WIZ. This is a funny acronym for "where is". But it's also short for WIZARD, because it's so fast it seems like magic, and it's filename matching is so powerful. It looks on one or more disks for all filenames (including directories) that match the specified filename. By default, it starts on drive C, and goes up until it runs out of disks. It has been tested, and works, with DOS 3.x, including Zenith DOS 3.30, DOS 3.31, DOS 4.01, DOS 5.0, DOS6.2, Windows 95,and On-Track partitioning software. DOS 3.31+ have large (greater than 32MB) partitions with more than 65,536 sectors. Zenith DOS 3.30 and On-Track have large partitions by virtue of using large sectors (1024, 2048, or 4096 bytes, rather than 512 bytes). WIZ normally prints out, for each matching file, the filename, date, time, size, and path. Date is printed according to the country code (ex: USA=mm/dd/yy UK=dd/mm/yy JAP=yy/mm/dd). The files are NOT ordered or sorted. All "special" files (hidden, system) are flagged with a left-pointing triangle after the filename. Optionally, it will list the files in normal fully-pathed form (e.g., C:\UTIL\PGMS\ABC.BAT), suitable for processing by a program which expects normal filenames. When the found file is inside an archive (-l flag), it will be listed in a form suitable for the archiver (e.g., "C:\UTIL\PGMS\FOO.ZIP FILE.EXE") I deemed that most of the time, people (including me) want it to be FAST, rather than in some particular order. As WIZ reads the disk, it tries to optimize the head motion, so directories are not processed in order of path, but in the order that WIZ thinks will be quickest. However, it will generally look at the files in a directory before it looks at the sub-directories. However (especially if you have directories with lots of files and sub-directories), it may show some files in a directory, then show sub-directories, then show more files in the directory. WIZ will ignore STACKER, DUBLDISK, DRVSPACE, and DBLSPACE container files in the count of files & MB's scanned. This file has attributes of RHS, and is named "STACVOL.0??", "DUBLSPAC.0??", "DBLSPACE.0??", or "DRVSPACE.0??" Likewise, WIZ will ignore the special hidden directories where Norton's "FILESAVE" and PCTOOLS "DATAMON/SENTRY" move files that have been deleted. These tools & their directories are a super undelete, and they are reported by DOS to have been deleted, but the respective utilities really just have them tucked away in a hidden place. So WIZ treats these files as not being there, too. The "-r" switch will force WIZ to *not* ignore these directories. PERFORMANCE & Comparison with other file-find programs ------------------------------------------------------ Some tests, run on a 486/33mhz, searching for a non-existent file on a large disk partitioned into drives C thru J, 17,000 total files, 747MB in files, in 572 directories. WIZ 3.1 Target15 FFF45 Seek202 ------- -------- ----- ------- 19.1 83.3 53.1 47.3 No cache The command used were: WIZ c-j:*qwe* TARGET -e -hidden cdefghij: "qwe" FFF /e cdefghij: ".*qwe.*" SEEK cdefghij:qwe*.* Notes: TARGET claims to have real regexp's but they aren't. FFF appears to have real regexp's. When used with a disk cache, of 2MB (2048K). WIZ 3.1 Target15 FFF45 Seek202 ------- -------- ----- ------- 18.7 44.3 40.2 41.5 PC-CACHE v6.01 1.3 16.3 8.3 13.0 " 2nd command 19.7 37.4 30.2 ? SMARTDRV v5.0 19.5 37.8 29.8 ? " 2nd command 19.7 83.3 50.9 ? HYPER386 v4.65 16.1 53.5 36.7 ? The first line is just after clearing the cache. The next is running the same command again, giving maximum advantage to the cache. In my testing, I have found that PC-CACHE seems to provide the best all-around performance. In fact, with WIZ, SMARTDRV actually takes longer!! Starting with WIZ v2.9, it momentarily disables SMARTDRV while it scans a disk. ERRORLEVEL exit codes --------------------- 0 = Normal exit. 1 = Normal exit. -g changes disk/path 2 = Bad command line. 255 = Internal error. Error Messages -------------- "INVALID directory:" Encountered what appears to be an illegal directory entry. This is a clue for a corrupted disk, or a file which is NOT a directory masquerading as one. "Can't tell if FAT-12 or FAT-16. Assuming FAT-16!" Just what it says. I've only seen this on networked disk drives. If you know how to RELIABLY tell what type of FAT a disk has (other than going thru DOS), please let me know. "malloc failed for FAT_buf!" Can't allocate memory to read a FAT block. Most likely an internal error. "malloc failed for dir_sec_buf!" Can't allocate memory to read in a directory sector. Most likely an internal error. "Sorry, out of memory!!!" You lose. "Can't open file:" Failure to open an archive file. Most likely a disk error. Run CHKDSK. "Internal error in ZIP/LZH/ARJ file" The data read from in archive file isn't as expected. Most likely the archive has a new format, and WIZ hasn't yet been updated. 'Course, the archive file may be corrupted. "INVALID directory" A sub-directory (whose name is displayed) is not valid. Your directory structure has been corrupted. You should run a utility to fix it--Norton NDD or PC-TOOLS DISKFIX. "Can't recurse in this!" The archive file cannot be recursively searched, because it is compressed. NETWORK DRIVES -------------- WIZ has been tested, and runs ok under several networks: Pathworks (Digital Equipment Corp), $25Network (Information Modes), EBOX (Rupp). Also Novell, Lantastic, Interlink, and other networks. CD-ROMS ------- WIZ works on CD-ROM's. It will skip over a CD-ROM drive that doesn't have a data CD-ROM mounted. BUGS ---- No known bugs. However, WIZ mostly does not use DOS to process a disk, so errors on my part, or a change in the disk structure might break it. The most major bug reported was on huge disk partitions under MS-DOS 4.01. This bug caused WIZ to read a random block from the disk, and treat it as a directory. It made a valiant attempt to march down all the phony sub-directories, and would actually run for quite a while before printing one of the "malloc failure" messages. If you are having problems, try 1) use the "-v" switch, to isolate the error to a specific disk, 2) use "-vv", to see as it hits each sub-directory, 3) use "*.*" to see all the files, and watch until it walks off the edge of the world. Then call or write me. Command Line format and Switches -------------------------------- WIZ [disks:]file_pattern [-sN] [-dN] [-p] [-pp] [-gN] [-x] [-mN] [-e] [-qS] [-n] [-4] [-r] -[rr] [-y] [-a] [-v] [-l[b][l]] [-cS] [-?] [>output-file-name] As usual, the stuff inside the square brackets "[]" are optional and may be present or omitted. You do NOT include the brackets in your command line. The various fields and options may appear in any order, in either upper or lower case. The switch character can be either "-" or "/". You can have more than one set of "[disk:]pattern", and it does the correct thing. That is, it scans each set in turn. So you can say: "WIZ c:pyro* cd:*.cfg *.ovr". In order to fix a possible usage mistake (and to follow the syntax of other filefind programs), WIZ will accept a space between the ":" and the pattern. So, "WIZ c:pyro" acts the same as "WIZ c: pyro" Except for size (-s) and date (-d), the options may be run together. For example: "WIZ -g20xp" is the same as "WIZ -g20 -x -p". If you just invoke WIZ without any parameters, it gives you a brief help line. For more info, include '-?'. For even more, include '-??'. If you leave out a pattern, but do have switche(s), WIZ assumes that you want a pattern of "*". Disk(s): & filename_pattern --------------------------- 1) [disks:]pattern 2) pattern 3) :pattern With format 1, you specify the disk(s) you want it to look at, followed by ":". It will look at those drives, in the order you listed them. If you list the same one twice, it will look at it twice. You can specify a range of disks by using a dash--"C-F" is the same as "CDEF". With format 2, it will look at all drives beginning with C. It will stop when it hits a drive that it cannot read. With format 3, it will look at all drives beginning with A. It will stop when it hits a drive that it cannot read, except A & B, or a network drive, or a CD-ROM drive without a disk. If the floppy drive has a disk in, it will look at it, otherwise it will ignore the floppy drive. However, it will continue if the disk it can't read is an Interlink drive or network drive that doesn't take too long to fail. This feature allows WIZ to bypass intermediate drives that just don't happen to be configured or available. If you have only one floppy drive, WIZ will check to see if DOS last used it as A or B, and will skip the other drive letter (B or A). You do not (and cannot) specify path or directory names, because WIZ searches an entire disk. Processing Disk(s) and Environment Variable ------------------------------------------- You can over-ride the disks that WIZ looks at, and their order, by making an environment variable "WIZ". Do: "SET WIZ=floppy-disk-list:hard-disk-list". Example: "SET WIZ=AB:C-M". What actually happens is that WIZ will try to read all the disks to the left of the colon, then all those to the right of the colon. Those on the left are deemed to be floppies, and it will keep going if it can't read one. Those on the right are deemed to be hard drives, and it will quit on the first one that it can't read (except a network drive or a CD-ROM drive). You may omit the "default" disk set by leaving a space after the "=". This is most useful when you need only to put the "/M" switch, as: "SET WIZ= /M". If you specify disks on the command line, it will try to read them all, even if it can't read one. The list may be discontiguous, (e.g., "C-FL-M"). This is mostly useful if you are on a network, which tends to make the networked disks at the higher letters, and leaves a hole before them. Pre-defined Drive Sets ---------------------- You can actually have several pre-defined sets of disks to search. If the disk-specifier on the command line is a single digit (0-9), it will look for that specifier in the WIZ variable. For example, you might say: "SET WIZ=AB:C-F 1=CDEF 2=AB: 3=C-Z 4=C-Z:" As above, those to the left of the colon are deemed floppies, and WIZ will keep going if it can't read one; those to the right are hard drives, and WIZ will quit if it can't read one. However, if there isn't a colon, then they are ALL deemed to be hard drives. The command "WIZ z.z", will look on ABCDEF. The command "WIZ 1:z.z", will look on CDEF. The command "WIZ 2:z.z", will look on AB. The command "WIZ 3:z.z", will look on all drives C-Z (and will quit at the first on that it can't read). The command "WIZ 4:z.z", will look on all drives C-Z (and it will attempt to read each and every one of them). The command "WIZ 9:z.z", will give an error message. PATTERN: -------- I call it "pattern" rather than "filename", because WIZ does a full pattern-match against the actual filenames it reads from the disk. The pattern has four special characters (called meta-characters), plus all the other characters possible in a filename. (These are the same wildcard patterns as in 4DOS.) 1) "*" (star) 2) "?" (question mark) 3) "[" (square bracket) 4) "." (dot), 1) "*" This is the "rubber" wildcard meta-character. The star will match as many characters as possible, from none to the entire filename. It is "rubber", because it will shrink & stretch to match as many characters as required. 2) "?" This is the "single" wildcard meta-character. It will match exactly ONE character in the filename. 3) "[...]" This will match any single character within the brackets, including a range of characters. For example: [abcw-z] will match any of: a or b or c or w or x or y or z If the very next character after the "[" is a "!", then it is inverted---this will match any character that is NOT specified. For example: [!aeiou] will match any character EXCEPT a vowel. 4) "." This is the "separator" meta-character (it is NOT a wildcard character). If you specify a dot in the pattern, the disk filename (and the pattern) is treated as having two parts, one before the dot, and one after the dot. Each part undergoes it's own pattern matching. If you don't have any meta-characters in the filename pattern, WIZ appends a "*" on the end of what you specified. Proper pattern matching (like WIZ does) is almost a D.W.I.M. (do what I mean) operation. DOS's wildcards are so primitive that it is professionally embarrassing. Not only that, but the pattern-matching subroutine in WIZ is only a couple of dozen lines of code. And it's surprisingly fast. To give some examples: *A* means: any file which has an A anywhere in it, on either side of the dot. Z* Any file that starts with a Z (ZZBC.BAT Z.Z) ?. Any filename that has exactly one character in it, and has no extent. (A. B. but not AB. or A.BAT) ?* Any filename that isn't totally blank. A*T any file that starts with A and ends with T in the extent. (ABCDE.BAT A.T AB.ERT but not ABCERT.) A*T. any file that starts with A and ends with T, and has no extent. (ABCERT. but not ABCERT.RST) A*T.* any file that starts with A and ends with T, whether or not it has an extent. (ABCERT. ABCERT.RST ABCDET.COM) A*B*Z.* any file that starts with A, then somewhere to the right has a B, then ends with Z, and has any extent. (ABZ.BAT AMNOBPQRZ. ABYXZ.COM) *.C any file with an extent of C W*.C any file that starts with W and has a C extent. (W.C WIZ.C WIZ14.C) W*4.C any file that starts with W, ends with 4, and has an extent of C. ???.C any file that has exactly 3 characters in the name, and an extent of C. Directories also participate in the filename matching. A lot of other whereis programs don't tell you about directory names that match. I find this annoying, because many times I can remember the directory name (or at least part of it), but not the file names. This is especially true for things that I have downloaded. Since directories normally don't have an extent (although they can), for matching purposes a directory that does not have an extent is treated as if it has a blank extent, so it has a dot. But when it is printed out, this implied dot isn't printed. POPDROP. will match the directory name "POPDROP" and the filename "POPDROP.", but not "POPDROP.COM" POPDROP.* will match all of the above POPDROP will match all of the above, but also POPDROP2.COM etc. -s Size qualifier ----------------- Files may be further filtered by their size. Either or both minimum and maximum size may be specified. A file will match only if it's size falls between the two limits, inclusive. Note that a directory, while it is really a file, is not considered to have a size, so directories will NEVER show up if you give a size qualifier. This gives a way to never show directories: just add "-s0". All other files have a size that is greater than or equal to zero. -s[low_limit][:hi_limit] -s100 Files that are 100 or more bytes large. -s:10000 Files that are 10000 or less bytes large. -s500:600 Files whose size is greater than or equal to 500 bytes, and less than or equal to 600 bytes. -s1000:1000 Files that are exactly 1000 bytes large. -d Date qualifier ----------------- Files may also be filtered by date. Either or both lowest & highest date may be specified. A file will match only if it's date falls between the two limits, inclusive. -d[low_date][:high_date] The format for date is MM/DD/YY or MM-DD-YY or "*" or "*-N". The year can be given as either "91" or "1991". "*" means the current date. "*-N" means "N" days before the current date. -d1/1/90 Files dated on or after Jan 1, 1990. -d:12-31-87 Files dated on or before Dec 31, 1987. -d1-1-90:12-31-1990 Files dated anytime in 1990. -d12/12/90:11/11/90 No files---it's impossible for a file to be dated after Dec 12, 1990 and before Nov 11, 1990 (inclusive) -d* Files dated today or after today. -d:* Files dated before today. -d*:* Files dated today only. -d*-10 Files dated within the last 10 days. -d*-365 Files dated within the last year (365 days). -e Extended precision in time display ---------------------------------------- Displays seconds also in the date/time information. -4 Look at 4DOS file descriptions ------------------------------------ Rather than looking at filenames, WIZ will look at the 4DOS (and NDOS) file descriptions (found in a hidden file in each directory, named DESCRIPT.ION). The default without any "?" or "*" in the pattern is changed to be "*pattern*", so that it will find any occurance of the word(s) you give. With this option, WIZ will just print the path, filename, and description. Date and size are not examined, so they can't be used as a filter, and will not be printed. -n Skip over network drives ------------------------------ Many network drives can only be accessed in the "proper" way. This slows down WIZ quite a bit. This option will force WIZ to omit any drive that it figures requires this slow access method. Novell and Lantastic are two networks that will be slow. Little-Big-Lan (by Information Modes) is a great little lan that allows WIZ to use it's fast access method. -p List in canonical pathname format --------------------------------------- The matching files are listed in normal DOS format: disk:\path\name.ext If the "-l" flag ("look inside archives") is given, the format is: disk\path\archive-name.zip filename.ext Date, time, size are not given. This type of list is presumably going to be fed into a program as a list of files, so directories will not be listed. -pp List in pathname format, without header/trailer ----------------------------------------------------- Same as "-p", except the header and trailer information is omitted. This is particularly useful when the output is to be fed into another program, as a list of (only) matching filenames. -q Limit scan to certain path(s) ------------------------------------ This will allow you to limit the search to certain directory name(s). The format is: -qDIRECTORY-NAME If it starts with "\", then this is the path from the root. If it doesn't, then this is the trailing part of the path. If it ends with "\", then this is for all the subdirectories, too. If it doesn't, then this is for only this directory, not any sub-directories. -qdos Will scan files in "\dos", "\abc\dos", but not "\abc\dos\xyz". -q\dos Will scan files in "\dos", but not "\abc\dos". -q\abc\dos Will scan files in "\abc\dos", but not "\dos". -qdos\ Will scan files in "\dos", "\dos\abc", and "\abc\dos\xyz". -qray\van Will scan files in "\dos\ray\van", but not "\dos\ray\xyz" or "\dos\ray\van\tmp". -q\ Will scan only the root directory. -g Go to directory ---------------------- This will change your path to the disk & directory of the Nth file in the list of files that matched. If you omit N (or N is zero), it will ask you at each match if that is where you want to go. If that file is a directory, WIZ will set the path to that directory. On the other hand, if it is a file, WIZ will set the path to be the directory that the file is in. Obviously, if N is larger than the number of files that match, nothing will happen. -g5 Will change to the path of the 5th listed file. -g1 Will change to the path of the first listed file. -g Will ask you at each matched file if it should change to the path of the listed file. -x Executable files ---------------------- This switch will set a pre-filter, and select only executable files (.BAT, .BTM, .COM, .EXE) that pass the other filters (size, date, pattern). For this to work properly, the pattern should either not have a dot, or terminate with ".*" (because this is just an additional filter, albeit one with four holes). I added this because a lot of times I find myself looking for a handy but seldom-used program, and I can never remember if it's a COM or an EXE file. And if I put "*FOO*.*", WIZ lists everything, including the directory, DOC, README, etc. -m More (pause) ------------------ Act like "MORE"--pause and wait for a key to be hit after each screenful of lines have been displayed. It checks how many lines are actually displayed on the screen (25, 28, 43, 50, etc.) You can give a number after the "m", and it will use that size instead. -a Archive files ------------------- This works just like "-x", except it's for archive files. These are ZIP, ARC, LZH, ZOO, ARJ, PAK. -v Verbose ------------- If you have this flag once, WIZ will print the disk name when it starts as it starts on a disk. If you have it twice (-vv), it will also print the name of each directory as it starts processing it. This is mostly useful for trouble shooting, or to see a progress indication. -l Look inside archives -------------------------- This switch will make it look inside archives (ZIP, LZH, and ARJ archives only), for a matching filespec. Note that all the filters apply to the file INSIDE the archive, and NOT to the archive itself. The disk list will, however, still specify the disks to look at. Both PKZIP and ARJ come with information on the internal format of their archive files, including the header. Neither LHARC nor LHA do, but it was pretty easy for me to figure out. I do ZIP's because that is currently the most common type of archive. LHA compresses smaller, but lacks a few features, and is slower in compressing. ARJ is the BEST. It packs 5% - 10% tighter than ZIP (but is slower in compressing), and includes all the nice features of ZIP, including encryption, comments, etc, and also can automagically create a segmented archive, so you can put a huge archive onto several floppy disks, without having to use SLICE/SPLICE. It also comes with a handy utility to convert any other archive type to ARJ's. I didn't do any other archivers, because 1) I don't have information on the internal format, 2) these three are the most common, and best, and 3) I don't want WIZ to get any larger than necessary. -ll Look inside archives recursively --------------------------------------- This switch will tell WIZ that you want it to also look inside archives that are themselves in an archive. Naturally, WIZ can only do this if the inside archive is "stored" (no compression). However, ARJ and PKZIP v2, can (and WILL) compress a ZIP file as it adds it to an archive!! In the output, these show up with a "@" where you would normally see "\", which indicates that it's "kind of like" a path. If this pseudo-pathname gets too long, a "+" is tacked on at the end, instead of the actual filename; one for each level that is being omitted. You can also use the "-c" switch, but the filename that replaces the "*" in the command won't make any kind of sense to DOS, ARJ, LHA ZIP, etc., because of the "@" characters. -b Both ------------ This switch is used with "-l" to look both at normal files, and inside archives. -r Don't skip UNDELETE's hidden SENTRY directory ----------------------------------------------------- As stated. -rr Do file CRC's --------------------- This will: a) not skip over the hidden UNDELETE SENTRY directory, and b) calculate & display the CRC-32 of all files that pass the filename match and any filters. The total of the CRCs is printed in the summary. This is the arithmetic sum, so it will be the same no matter what order the files are encountered. This is useful for doing a verification after duplicating an entire disk over to another disk. This is the same CRC-32 as PKZIP and ARJ. -y Summary only -------------------- Only print the summary information. The information for the individual matching files is not printed. -c Execute a command ------------------------- This lets you execute a DOS command for each matching file. The format is '-cCOMMAND' or '-c COMMAND'. However, if the COMMAND has any special characters (space, |, <, >, etc.) you must enclose it in quotes: '-c"COMMAND"'. Each occurance (if any) of the character "*" in the command is replaced by the complete file-name (including disk and path). WIZ will spawn a new copy of the command-line shell (COMMAND.COM, 4DOS, etc.), and pass it the built command. The one exception is that the command "del*" or "del *" (to delete the file) is handled internally by WIZ itself. (Note that you can use the form: '-cdel*', and you do not need a space before the '*', nor do you need to enclose the command in quotes.) For this command, WIZ will prompt you to confirm each file to be deleted. (I did this because deleting files is a handy thing to do, and it's quicker to do it inside of WIZ than to spawn a shell to do it. But I'm no fool!! You have to confirm that you want delete, for each file. No way am I going to let it merrily delete every file on my disk(s) just because I make one little mistake on the command line!!) If you prefer to have the shell handle the file deletions, use "erase *" or "delete *". You can't do "-cdel*" along with "-l". If you have given the -l switch, the '*" is replaced with the complete filename of the archive (.ZIP, .LZH, .ARJ), a space, and then the filename. Examples: -c"type *" -- type each matching file -c"more <*" -- ditto, with a pause for each page -c"copy * a:\" -- copy each matching file to A: -c"set" -- display the environment at each matching file. -c"pkunzip *" -- extract matching files from a ZIP archive. Coming Attractions ------------------ An interactive screen interface. It will gather the file names instead of just printing them out. Then you will be able to sort by name, extent, disk, date, size. You'll also be able to tag files and delete, copy, move them, and find duplicates. Plus other things I think of, or get suggested. This is shareware, so I'm probably more interested and receptive in hearing comments and suggestions than a commercial software publisher would be. Just send them in, or give me a call. I can't promise to fix bugs, or add specific features, but I'll listen to everything. Even if you're cheap and haven't registered. BBS Support & New Versions -------------------------- There is no "official" support BBS. I also release it to the internet, on SimTel and Garbo. ******** Programming notes (if anyone is interested): The way I scan thru the disk, it pretty much sweeps thru the disk from front to back, without (much) hopping back & forth. So it scans the 1st cluster of ALL the directories and sub-directories on the disk, then makes a pass thru the FAT (from start to end within the FAT), and so on. This optimization of head movement really helps to speed it up, especially if you don't have a fast disk. The unfortunate side effect is that it looks at a directory one chunk at a time, interspersed with chunks of other directories. But it sure is fast!! -------------------------- INVOICE / REGISTRATION -------------------------- Sold to: ___________________________________________________ ___________________________________________________ ___________________________________________________ Date: ______________________________ ============================================================ I will normally send you the latest version on 5 1/4" disk. Add $2 for 3 1/2" disk. (Net $22) Deduct $5 (per copy) if you DON'T want me to send you a disk! _____ copies of WIZ version 3.7 at $20 each $____________ _____ copies of RCD version ___ at $20 each $____________ _____ add $2 for 3.5" disk $____________ _____ deduct $5 per copy for no disk (net $15) DISCOUNT for registering both is $5 off. ____________ TOTAL ENCLOSED....... $____________ NOTE: If you have the current version, I will send you a disk with the NEXT version, when I release it, unless you check here: Ray, YES, send me a disk NOW, even though I already have the current version: [__] Where did you get your copy of WIZ? Shareware distributor name:___________________ BBS name: ____________________ BBS phone #: ____________________ Send this invoice and your check to: Ray Van Tassle 1020 Fox Run Lane Algonquin, Il. 60102 (847)-658-4941 email: rayvt@comm.mot.com ============================================================= Thank you for your support ............... Ray Van Tassle