DskMap 1.03 checks FAT/DIR integrity of a whole disk (floppy, ramdisk or harddisk) and produces a file map. Call it as: DSKMAP [drive:][template] just a drive letter may be given without colon, so 'DSKMAP A' means the same as 'DSKMAP A:*.*'. Any valid file template or file name may be given to search only for matching files. Do not enter any path information! Always all subdirectories of a drive are searched. If no argument is given, only a drive letter will be prompted. DSKMAP first asks for an output file. Here also devices CON: or PRT: can be used. Default is CON: (just type ENTER or RETURN). If no (or an invalid) drive letter is given in the command line, next this is prompted. Either small or capital letters are allowed, i.e. a or A for A: etc. Just type the letter, no ENTER or RETURN. DSKMAP then gets the BPB and reports like this: -------------------------------------------------------------------------- A: sector size is 512 bytes, clustersize is 2 sectors = 1024 bytes BOOT sector 0 ( 1) FAT 1 sectors 1... 5 ( 5) FAT 2 sectors 6... 10 ( 5) ROOT DIR sectors 11... 17 ( 7) DATA sectors 18... 1440 ( 1422) -------------------------------------------------------------------------- Then DSKMAP starts scanning FAT 1, which can be listed on request (default N = no report). 12- and 16-bit FATs are supported. Next FAT 2 is compared to FAT 1. All differing entries are reported. A FAT report may look like this: -------------------------------------------------------------------------- FAT 1 drive A: 0:-9 | 1:-1 | 2:-1 | 3:4 | 4:5 | 5:6 | 6:7 | 7:8 | 8:9 | 9:10 | 10:11 | 11:12 | 12:13 | 13:14 | 14:-1 | 15:0 | 16:0 | 17:0 | 18:0 | 19:0 | 20:0 | 21:0 | 22:0 | 23:0 | etc. FAT 2 drive A: no differences -------------------------------------------------------------------------- Entries 0 and 1 are always reserved, for all others the number is either a pointer to the next AU (allocation unit = cluster), or -1 for the last cluster of a file. A value of 0 means an empty AU, -9 stands for an unusable cluster (with a bad sector). In the following step the root directory and all subdirectories are scanned, and a file list is given on request, like this: -------------------------------------------------------------------------- DISK_1 . 0= 0c 000080/0000 ...V. 0 0 \ C . 0= 0c 020189/1610 ...D. 2 x \ DSKMAP .C 11930= 12c 020189/1617 ..... 3 A \C\ åPSKEL .C 7297= 8c 020189/1611 ..... 15 . \C\ åCSKEL .C 7974= 8c 020189/1611 ..... 23 . \C\ XFPRINTF.C 12721= 13c 020189/1611 ..... 31 B \C\ FIELDOUT.C 2006= 2c 020189/1612 ..... 44 C \C\ SOUND1 .C 400= 1c 020189/1612 ..... 46 D \C\ KALEND .C 1587= 2c 020189/1612 ..... 47 E \C\ FCOPY .C 9479= 10c 020189/1612 ..... 49 F \C\ åSIO .C 26261= 26c 020189/1612 ..... 59 . \C\ $control.$$$ 2660= 3c 020189/1612 .H... 85 G \C\ åDITFILE.C 32780= 33c 020189/1613 ..... 88 . \C\ åEDIT .C 64988= 64c 020189/1613 ..... 121 . \C\ FINDFILE.C 1930= 2c 020189/1613 ..... 185 H \C\ ACIA .C 4697= 5c 020189/1613 ..... 187 I \C\ åLASH .C 947= 1c 020189/1614 ..... 192 . \C\ SIEVE .C 803= 1c 020189/1614 ..... 193 J \C\ FIB .C 674= 1c 020189/1614 ..... 194 K \C\ SORT .C 388= 1c 020189/1614 ..... 195 L \C\ E .C 2587= 3c 020189/1614 ..... 196 M \C\ ECHO .C 283= 1c 020189/1614 ..... 199 N \C\ DSKMAP .TXT 5277= 6c 020189/1615 ..... 200 O \ åEDIT .PRG 63752= 63c 020189/1615 ..... 206 . \ -------------------------------------------------------------------------- xxxxxxxx file name .xxx file extension xxxxxxxx file size in bytes xxxx file size in clusters ddmmyy file date hhmm file time flags (see below) xxxxx first AU (cluster) of file xxxxx letter or digit in map x file path \xxxxxxxxxxxxxxxxxx deleted files have a å (sigma, $E5) as first letter flags are: R = read only H = hidden file S = system file D = subdirectory V = volume label C = archive flag For corrupted files, additional information is given: <#=20 AU chain smaller than file size in directory: number of allocated clusters is 20 >#=51 AU chain larger than file size in directory: number of allocated clusters is 51 i#2=-9 invalid cluster: 2nd cluster points to -9 o#3=44 overlap with other file: common cluster 44 is 3rd in this file The summary reads like this: -------------------------------------------------------------------------- volume DISK_1 has 15 files (15 matches, 0 empty) and 1 subdirs disk space 720 clusters = 737280 bytes data space 711 clusters = 728064 bytes used by data 63 clusters = 64512 bytes in subdirs 1 clusters = 1024 bytes free space 647 clusters = 662528 bytes usable by TOS 645 clusters = 660480 bytes bad sectors 0 clusters = 0 bytes lost 0 clusters = 0 bytes file overlap 0 clusters = 0 bytes -------------------------------------------------------------------------- and finally a disk map is produced: -------------------------------------------------------------------------- map drive A: A-Z,1-9,!=data s,x=subdirs :=reserved +=bad *=overlap @=lost .=empty 000 ::xAAAAAAAAAAAA................BBBBBBBBBBBBBCCDEEFFFFFFFFFF........... 070 ...............GGG.................................................... 140 .............................................HHIIIII.JKLMMMNOOOOOO.... 210 ...................................................................... 280 ...................................................................... 350 ...................................................................... 420 ...................................................................... 490 ...................................................................... 560 ...................................................................... 630 ...................................................................... 700 ............. -------------------------------------------------------------------------- (in the real report, the offset numbers have five instead of three digits) The exclamation mark (!) is used for all files that do not match your templates. Non-matching directories are flagged 's', matching ones 'x'. Enjoy the program -- Roland Waldi, BD05 @ DKAUNI2.BITNET