FIX.DOC Fix is a super routine which gives you a lot of direct control over your disks. You can, for instance recover a file you have erased. And, you can specifically create files that cannot be accessed from the keyboard or that cannot be display on the screen. To use the Fix help command (good documentation), just type HELP(COMMAND NAME) For instance; HELP(RECOVER ERASED FILES) or HELP(DIRECTORY) and so on; HELP, by itself display the list of commands. Enjoy this great program. Commands are: BIOS Select Drive Block Directory Disk Parameters Erased File Directory Finished Fix Bad Spots Help Mark Bad Spot Recover Erased File Reset Drive Select Drive Track and Sector Turn Off/On Display of Bad Filename Verify What Files Where is File HELP(command) Displays all commands or one command in detail. For instance, typing "help" would give you a list of all the commands. Typing "help(list)" would give you a brief description of what the command "list" does. As with the rest of the commands, HELP can can be abbreviated (e.g. he, hel, he(di, h(fix), etc.) BIOS SELECT DRIVE(drive,[track,sector]) Selects drive directly through the BIOS. The reason for having this function is so you can select a disk with a bad directory. If you use this routine to select the disk, all that will happen is the drive will get selected. CP/M will not know that you have selected a new drive, so don't be surprised if DIRECTORY doesn't give correct answers. [track,sector] is optional. If present, track sector will be read. Display of bad file names is automatically turned off by this command. Examples: BIO sel(B), b s(c,3,21), etc. BLOCK(block number) Gives the file name in which the block occurs. Examples: block(15), bl(243, b(10, etc. DIRECTORY Gives a sorted directory listing of the currently selected drive. This routine will NOT work properly with disks that have more than 512 directory entries. DISK PARAMETERS Displays the disk parameters of the currently selected disk. For 1.4 systems, the following parameters are displayed: sectors/track, block shift factor, block mask, number of blocks, capacity of disk, number of directory entries, directory block allocation, and the number of tracks reserved for the operating system. For 2.2 systems, the extent mask and number of checked directory entries are also displayed. ERASED FILE DIRECTORY Same is DIRECTORY command, but the files displayed are files that have been erased. These files may be recovered using the RECOVER ERASED FILE command. FINISHED Return to CP/M. FIX BAD SPOTS Fix does two things: (1) Displays the track, sector, block and file (if any) that contains the bad spot and asks if it should attempt to fix it (by reading the sector, writing the sector, and reading it again). (2) Asks if the user wishes to place the bad block a bad spot file. The user may try to fix a sector as many times as he likes (through yes or no questions). *** IMPORTANT *** The VERIFY command must be called before FIX is called. VERIFY puts all the badspots in an array that is in turn used by FIX. To get back to the main program without going through all the badspots, the user can must hit the Escape key (ESC) followed by a carriage return when the computer asks 'Try to fix it?' MARK BAD SPOT(track,sector) Adds the block corresponding to track and sector in BADSPOT.!!! file. If bad spot file doesn't exist, one is created. This command is used when there is a known bad spot on the disk that for some reason the VERIFY command doesn't find. Examples: MARK BAD(45,6), mark(23,23), m b s(3,16, etc. RECOVER ERASED FILE(filename) This function attempts to recover the erased file given by . A check is made to see if any of the erased file's blocks have been re-allocated. Re-allocation of a block means that a piece of the file has been destroyed. The file will be recovered anyway. Examples: RECOVER(D.COM), recov(fix.spl, recov(junk.???), etc. RESET DRIVE(drive) This function resets the disk system and selects drive . This enables you to change disks without having to reboot. A typical use for this routine would be if you were verifying a bunch of disks and fixing all the errors on them. Examples: reset drive(b), r d(p), reset(A, etc. SELECT DRIVE(drive) This selects the disk drive to which all subsequent disk accesses will take place on this drive. The default drive is whichever drive is logged in when this program is run. Examples: s d(b), sel(c, s(a, etc. TRACK AND SECTOR(track,sector) Displays the file name of the file containing the track and sector . Examples: t a s(12,23), t(76,5, t a(34,15, etc. TURN OFF/ON DISPLAY OF BAD FILENAME(switch) This function is here so that you can control whether or not FIX will display the name of a bad file when it encounters a bad sector while doing either VERIFY or FIX BAD SPOTS. When the directory of the disk you're checking has a bad sector in it, you should turn the display off, otherwise, leave it on. is either 'off' or 'on' (upper or lower case). The default is ON. Examples: T O D(OFF), T O(off, t off/on(ON, t o(on, etc. >VERIFY(initial track,final track) This routine reads every track between the initial track and the final track. If neither the initial track nor the final track are specified, all the data from the directory track to the last track is verified. Unless explicitly asked for, VERIFY will not attempt to read the system tracks (tracks 0 and 1 usually). This is because track 0 is usually single density and if the rest of the disk is double density, FIX thinks that ALL the tracks are double density. The current track is always displayed on the screen. If an error is found, it displays the track, sector, and block in which the error occurred, and the file name (if any) in which the error exists. These are stored in an array that is later used by FIX BAD SPOTS. Hitting the Escape key (ESC) at any time will abort. Examples: ver(0,76), verify(45,55, v(34,34, v, verify, etc. WHAT FILES(track,track) This command displays the names of all the files that have data between the two tracks specified. Hitting the Escape key (ESC) at an time will abort. Examples: what f(10,11), w f(3,76, w files(5,5), etc. WHERE IS FILE(filename) Displays all the track, sector, and block numbers that occupies. For instance, if the file FOO.BAR occupies all of block 2, the following might appear: FOO.BAR: Track: 2, Sector: 20, Block: 2 FOO.BAR: Track: 2, Sector: 26, Block: 2 FOO.BAR: Track: 2, Sector: 6, Block: 2 FOO.BAR: Track: 2, Sector: 18, Block: 2 FOO.BAR: Track: 2, Sector: 24, Block: 2 FOO.BAR: Track: 2, Sector: 4, Block: 2 FOO.BAR: Track: 2, Sector: 10, Block: 2 Hitting the Escape key (ESC) at any time will abort. Examples: w i f(hi.ho), w i(d.com, w i(badspot.!!!, etc.