GO:MTCTM Golden Oldies: Maintenance Package OPERATOR MANUAL Copyright © 1988 MISOSYS, Inc., All rights reserved GO:MTCTM Golden Oldies: Maintenance Package OPERATOR MANUAL Revision 1.0.0 11/28/88 Copyright © 1988 MISOSYS, Inc., All rights reserved No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior written permission of MISOSYS, Inc. MISOSYS, Inc PO Box 239 Sterling, VA 22170-0239 703450-4181 SOFTWARE LICENSE AGREEMENT MISOSYS, Inc., authorizes you to use this software on only one computer at a time. You are authorized to make archived copies of the software for the sole purpose of backing up your software. MISOSYS, Inc., warrants the physical diskette and physical documentation to be free of defects in materials and workmanship for a period of 30 days from the date of purchase. Upon notification of defects in material or workmanship within the warranty period, MISOSYS, Inc., will replace the defective documentation or diskette. MISOSYS, Inc disclaims all other warranties, expressed or implied, including but not limited to any implied warranty of merchantability and/or fitness for particular purpose. Under no circumstances shall MISOSYS, Inc be liable for any loss of profit or any other damage, including but not limited to special, incidental, exemplary, consequential or other damages. LDOS is a trademark of MISOSYS, Inc LS-DOS is a trademark of MISOSYS, Inc. TRSDOS is a trademark of the Tandy Corporation. Table of Contents General Description iv DCT 1 DIRCHECK 11 FIXGAT 15 IOMON 19 MAPPER 23 RAMTEST 25 UNREMOVE 29 Glossary of Terms 31 General Description DCT: This program displays the Drive Code Table (DCT) for any one of the eight logical drive numbers to the screen and allows it to be modified. DIRCHECK: This program checks a diskette directory for flaws and attempts to fix detected errors. FIXGAT: If during any disk access, an error is received such as "Illegal Drive Number" and there is a diskette in the drive, the problem could be caused by the Granule Allocation Table (GAT) sector of the directory containing incorrect information. Other GAT related problems could include improper disk name or master password, of an incorrect date. The FIXGAT utility might help in any of these circumstances. IOMON: This is a disk drive "filter" which, when installed, will monitor disk input/output for errors and allow you to take corrective action when such occur. MAPPER: The operating system's directory command (DIR) will let you know what files you have on a disk, but MAPPER will show you where the files are positioned on that disk. RAMTEST: This program tests the standard 64K of memory from X'0000' to X'FFFF and any extra memory banks available to the DOS. UNREMOVE: This is used to re-instate a file which was previously deleted by using the REMOVE or PURGE command. DCT This program displays the Drive Code Table (DCT) for any one of the eight logical drive numbers to the screen and allows it to be modified. The syntax is: DCT [drivespec] no parameters are allowed drivespec is optional abbr: " :" in drivespec is optional The Drive Code Table (DCT) is the way in which LS-DOS interfaces the operating system with specific disk driver routines. Typing DCT at the DOS Ready prompt will enter the utility. The screen will clear and the following will appear: DCT - Version 2.0.0 - Drive Code Table Creator Copyright 1982/88 MISOSYS, Inc., All rights reserved Logical Drive Number <0-7> ? If the drivespec had been specified the display would skip to the next display. Enter the drive number desired and the current DCT will appear. For example, if a 0 were entered the following might be displayed: Logical Drive 0 X'0470'= C3 F4 OF 0C BO 05 98 1F 2F 4C X'C3'= 1100 0011 Enabled X'F4'= 1111 0100 LSB of Disk Driver X'OF'= 0000 1111 MSB of Disk Driver X'0C'= 0-0-0-0-1-1-00 SD, 5", Hard, Fixed X'B0'= 1-0-1-1-0000 SDC, Dcyl=Y, Alien DC, Start Head 1 X'05'= 0000 0101 Drive Select Code = 5 X'98'= 1001 1000 Cylinder Count = 306 X'1F'= 000-11111 Heads = 1, Sectors/Track = 32 X'2F'= 001-01111 Gran/Cylinder = 2, Sectors/Gran = 16 X'4C'= 0100 1100 Directory Cylinder = 76 Do you wish to modify (Y/N) ? Each logical drive will be entered into the DCT in a 10 byte sequence. The first line of the display indicates which logical drive is being displayed. The second line displays the address of the entry and the subsequent 10 bytes located there which comprise the information. In the example, drive 0 is shown at X'0470' followed by C3 F4 OF 0C BO 05 98 1F 2F 4C Each of the 10 bytes is then displayed in its own row. The first column is the byte to be shown. The second column breaks the byte into the appropriate bit pattern which is actually read by the system. The final column translates the bit pattern into an English mnemonic rendition of the information contained in the pattern. Each byte contains the information necessary to interface hardware of a non-standard type into the LS-DOS system. The explanation of each byte is as follows: Byte 00 The first byte of a three byte vector to the disk I/O driver routines. In the example, this is an X'C3', which is a jump (JP) to the address following. All enabled drives will have a jump (X'C3') at this byte. If the drive is disabled this byte will contain an X'C9' (RET) instruction. Byte 01 and Byte 02 These bytes will contain the jump address of the disk I/O routine which is handling this logical drive. Byte 02 is the MSB of the address and Byte 01 is the LSB of the address. In the example, the drive routine is located at X'0FF4'. Byte 03 This byte contains a series of seven flags as follows: bit 7 This is set to "1" if write-protected by software (SYSTEM WP command) or is a "0" if not software write-protected. The example, is software write enabled. bit 6 This is set to "1" if double density (DDEN) or set to "0" for single density (SDEN). The example indicates single density. The third column has an SD in it; it would be a DD if the bit were set. bit 5 Will be set to "I" if this is an 8" drive and set to "0" if it is a 5.25" drive. The last column will translate the bit as 8" or 5" bit 4 A "1" will indicate that the disk's second side has been selected. A "0" will indicate selection of the first side. The bit value will match the side indicator bit in the sector header written by the Floppy Disk Controller (FDC). The example indicates the first side has been selected. The last column does not translate this. When set to "1" this bit indicates a hard drive (Winchester) is in place. A "0" would indicate that the drive is either a 5.25 or 8 inch floppy. The third column would indicate "HARD" or "FLOPPY" as the translation. bit 2 This bit depends on whether the drive is a hard drive or a floppy drive. If it is a floppy drive, this bit will indicate the time delay between selection of a 5.25" drive and the first poll of the status register. The bit is set to "1" to indicate 0.5 seconds of delay while a "0" represents a 1 second delay (can be set by the SYSTEM command). The purpose of the delay is to get the 5.25" drive up to speed if the motor has been shut down. Since the 8" drive motors are always on, this bit is not used on 8" floppy drives. If the drive is a hard drive this bit indicates whether the disk is a fixed or removable type. A "0" set indicates that the drive is removable and the bit set to "1" indicates a fixed type. The last column will translate as either ".5 sec" or "Fixed" if "1"; or either "1 sec" of "Removable" if "0". bits 1 and 0 These bits will contain the floppy disk step rate specifications for the FDC (SYSTEM command). The stepping rate depends on the size of the drive according to the following chart bits at 5 inch 8 inch 00 6 ms 3 ms 01 12 ms 6 ms 10 20 ms 10 ms 11 40 ms 20 ms The appropriate value will display in the last column of the screen. Byte 04 This byte contains five more flags which are additional drive specifications. bit 7 If set, then no @CKDRV system call will be performed for this drive. bit 6 If this bit is set to "1", the controller is a double density controller (DDC). If it set to "0" the controller is a single density controller (SDC). Either DDC or SDC will be translated in the last column. bit 5 The information carried by this bit is dependent on whether the drive is hard or floppy. If floppy, the "1" indicates that the drive is two-sided and a "0" means single-sided. This should not be confused with bit 4, of byte 03. That bit informs the controller what side current I/O is to be on. This bit shows that the disk is two-sided. If the drive is hard, a "1" indicates that the amount of cylinders on the disk is double the amount indicated in byte 06. If "0" then no doubling is to occur. The third column will translate a "1" to be either "Sides=2" or "Dcyl=Y" and "0" to be either "Sides=1" or "Dcyl=N". bit 4 This bit will be set to "1" to reflect an alien disk controller and set to "0" to indicate a standard disk controller. Most floppies use the disk controller in their own interface (standard). If the drive is hard, this bit will be "1". The message displayed will be "Alien DC" or "STD DC" respectively. bits 3 through 0 If the drive is floppy, this nibble (half a byte) contains the physical drive address by direct binary conversion (i.e. 0001=1, 0010=2, 0100=4, 1000=8). The system will only support one bit set at a time. A "Phys #n" will be displayed in the translation column where n is the physical drive number (1, 2, 4, or 8). If the drive is hard, this nibble represents the starting head number offset from one. (A starting head of 3 would be stored as 0010.) Although this is a four bit field, only the 3 least significant bits are used. A "Start Head=n" where n is the starting head number, will be displayed in the translation column. Byte 05 This byte contains the current cylinder position of the floppy drive. Its normal purpose is to store the track register of the FDC. A "Current Cylinder=n" where n is the last accessed cylinder, will be shown for this byte. In case of a hard drive, this byte may show a drive select code and a "Drive Select Code=n" will be displayed, where n is the drive select code. Byte 06 This byte contains the highest numbered cylinder on the drive. Since cylinders are numbered from zero, this byte will represent the total number of cylinders minus one. Therefore, a 35-track would be X'22', 40-track X'27', and 80-track as X'4F'. If the drive is hard and the double bit (Byte 04 bit 5) is set, this byte would contain half of the total cylinder count. The display will translate "Cylinder Count=n" where n is the true calculated cylinder count regardless of floppy, hard or double conditions set. Byte 07 This byte contains certain allocation specifications set into two fields. bits 7 through 5 This 3 bit field represents the number of heads on a hard drive. The eight possible heads are numbered 0 to 7 in binary (000-111). To get the number of heads, add one to the binary number (e.g. 011=3+1=4 heads). The display will show "Heads=n" where n is the true number of heads, only if this is a hard drive. Otherwise, no display will occur for this field. bits 4 through 0 This 5 bit field contains the number of sectors per track. Since sectors are numbered from zero, add one to find the actual amount of sectors per track. If there were 10 sectors per track the field would be X'09'. If the drive is two-sided (Byte 04 bit 5) the sectors per cylinder would be twice this number. The display will show "Sectors/Track=n". where n is the true number of sectors per track on the drive. The number of sectors per cylinder is not shown. Byte 08 This byte is broken into two fields which contain additional allocation parameters. bits 7 through 5 This field contains the number of granules per track (a granule is the minimum number of sectors used for creating or extending a file). Again, add one to compute the actual quantity. A maximum of 8 granules per track is allowed. If two-sided operation is indicated (Byte 4 bit 5), the granules per cylinder will be twice this number. On a hard drive, this is the total granules per cylinder. The display will show the actual quantity in the expression "Gran/Track=n". bits 4 through 0 This field designates the number of sectors per granule that was used in theft formatting operation. This field must be offset by adding one to the stored value. The display will show the calculated result as "Sectors/Gran=n" where n is the number of sectors per granule. Note: The following formula must be met or the system will be susceptible to crashing: Sectors per Granule X Granules per Cylinder = Sectors X (Tracks X Sides) The DCT values contained in Byte 07 and 08 should conform to the standards used by LS-DOS, as illustrated in the following table. Note also that the values listed are for TRACKS not CYLINDERS. For double sided drives, the track values must be doubled. Drive Sectors Sectors Granules Type: Track Granule Track 5" SDEN 10 5 2 5" DDEN 18 6 3 8" SDEN 16 8 2 8" DDEN 30 10 3 *5" Rigid 32 16 2 *8" Rigid 32 32 1 * May vary depending on hard drive type. Byte 09 This byte contains the directory cylinder number. For any directory access, the system will first attempt to use this value prior to examining the BOOT sector directory storage byte in case the READ was unsuccessful. The display will translate this as "Directory Cylinder=n" where n is the number of the directory cylinder. Modifying the DCT information To modify the DCT associated with a given drive, answer the modification prompt with "Y". A series of questions will appear on the screen. By answering these questions, you will be allowed to directly modify the DCT information. The prompts that will appear will vary, depending on the drive types. For all drive types, the following prompts will appear in the order listed: Enable or Disable drive Driver Address (in Hex) ? Software Write Protect ? Single or Double Density ? Drive Type <0 = 5", 1 = 8"> ? Floppy or Hard drive ? For any DCT modification prompt, if the information pertaining to the question does not need to be modified, press , and the particular piece of DCT information will be untouched. Otherwise, answer the prompt with the changes to be made. If an invalid response is entered for a DCT modification prompt, an error message will appear on the screen and the prompt will be repeated. If is pressed in response to any modification prompt, the DCT utility will be aborted. Control will resume at the LS-DOS Ready prompt, and the DCT information for the drive in question will remain unchanged (no changes made to the DCT information prior to pressing will be reflected). If the "Floppy or Hard drive" prompt is answered with "F" (or the drive was seen by the system initially to be a floppy drive and was pressed), the following set of prompts will appear. Delay time <0 = 1 sec, 1 = .5 sec> ? Stepping Rate <0=6ms,1=12ms,2=20ms,3=30ms>? FDC capable of Double Density ? One or Two sided operation <1,2> ? Standard Floppy Disk Controller ? Physical Drive Address <1,2,4, or 8> ? Maximum Cylinder count ? Sectors per Granule ? Granules per Track ? Directory Cylinder ? If the "Single or Double Density" prompt is answered with "D" (or the drive is currently configured for double density), the "FDC capable of Double Density" prompt will not appear. If the "Floppy or Hard Drive" prompt is answered "H", the following prompts will appear in place of the prompts listed above. Removable or fixed ? FDC capable of Double Density ? Standard Floppy Disk Controller ? Starting Head Number <1-8> ? Drive Select Code ? Maximum Cylinder count ? Set Double Bit ? Number of Heads <1-8> ? Sectors per Granule ? Granules per Track ? Directory Cylinder ? After all of the modification prompts have been answered, the following prompt will appear: Install Modifications (Y/N) ? To incorporate the changes made into the DCT, answer this prompt with "Y". This will cause the DCT to be modified, and the status display will reappear on the screen with these changes. To not incorporate the changes made into the DCT, answer the above prompt with "N", and the DCT will remain the same as it was prior to being asked the first modification question. The DCT utility will stop and return to LS-DOS Ready. DIRCHECK This program checks a disk directory for flaws and attempts to fix detected errors. The proper syntax is: DIRCHECK drivespec (H,L,N,P,R) H= must be specified if the target drive is a hard drive with no cylinder locked out. If a number is specified also then that cylinder is assumed to be locked out. L must be specified if the target drive is a Laredo Hard Drive. N non-stop screen display of error messages. P sends error messages to line printer. R must be specified if the target drive is a Radio Shack Hard Drive. Abbr ":" in drivespec is optional To verify the integrity of a diskette, at DOS Ready type: DIRCHECK :d The DIRCHECK :d (P) syntax will send any error messages to the printer device as well as the video display. Hard drive directories differ from those found in floppy drives in that they have no lock out table for flawed cylinders detected during formatting. However, certain machines will have a cylinder(s) purposely locked out in order to reserve it for diagnostic purposes. It is for that reason that the following parameters are to be used with hard drives. DIRCHECK :d (R) or DIRCHECK :d (L) are specified for a Radio Shack or Laredo hard drive. This ignores a GAT error of "Allocated but not used" (see errors below) for cylinder X'01' or X'77' respectively. These cylinders have been deliberately locked out for future use but this establishes the cited error condition. For hard drives with no locked out cylinders, specify the "H" parameter. If this parameter is modified with a number (H=n : where 1 <= n <= 202), then the cylinder specified by the number will be treated as a locked out cylinder. Note that this could be used in lieu of the "R" or "L" parms with the proper cylinders specified. An example of this invocation of DIRCHECK would be DIRCHECK :2 (H=1) If you do not enter a drivespec on the DIRCHECK command line, DIRCHECK will prompt for the logical drive number containing the diskette that needs to be checked. Enter a number 0 through 7. Pressing at this prompt will return to the DOS Ready prompt. If no errors are detected, the message: Directory Check Complete, 0 Errors will appear and control returned to LDOS Ready. If any errors are detected a message with the appropriate information will appear. Error messages will be displayed as they are detected. If there are multiple problems within the directory, the messages will pause every 23 lines. To continue, press any key except . To abort, press . If the "N" parameter was specified the video display will not pause. Note that if "P" is specified that "N" is assumed. After all errors have been detected, the prompt: Directory Check Complete, X Errors Attempt to Fix Directory (Y/N)? will appear, where X is the total number of errors detected. Answering with "Y" will cause the utility to try and repair the damage. Answering "N" will abort the utility and in either case control is resumed at DOS Ready. It may be advantageous to run FIXGAT first before repairing with DIRCHECK. Certain errors cannot be corrected. Among these are: Directory Read Error (due to partial erasure or worn media), two or more files allocated to the same disk space, GAT Read Error or other "hard" errors. The utility will abort to DOS Ready if any non-recoverable error occurs. If the FIX prompt is reached, there is still no guarantee of total success. After a fix has taken place, run DIRCHECK again to make certain all errors have been repaired. It is not recommended to utilize a diskette with a flawed directory. If a partial reconstruct has occurred but some errors remain, recover files by copying to a known good diskette. DIRCHECK error messages NOTE: Throughout the list of error messages the phrase "Total Recovery is possible" should be taken with emphasis on the last word. If there is a media flaw or hardware malfunction, there is little that can be done by software to precipitate recovery. What is meant is that the chance of recovery is theoretically fairly good. Unable to Log in Drive - No recovery is possible. Aborts utility. Insufficient Memory to Check Directory - Most likely to occur on large volume drives that are quite full. No recovery is possible but there is not necessarily anything wrong. The utility had to abort. The following are all Hash Index Table (HIT) errors. Missing Hash Code at HIT X'nn' - A file has no entry in the Hash Index Table at hexadecimal table position X'nn'. Total Recovery is possible. Unnecessary Hash code at HIT X'nn' - A HIT entry exists at position X'nn' with no file. Total Recovery is possible. Incorrect Hash code at HIT X'nn' - A file has the wrong HIT entry at position X'nn'. Total Recovery is possible. The following are all Directory Entry Code (DEC) errors. Non-existent FXDE - > DEC X'nn' - A directory extension should exist at Directory Entry Code X'nn' but does not. No recovery is possible. FXDE Chain Error - > Extent ddd DEC X'nn' - A directory extension exists at X'nn' that does not point back to the original file. (ddd is the decimal number of the extent.) Recovery is sometimes possible. Illegal DIR/SYS Entry - the entry in the directory of itself is incorrect. Total Recovery is possible. The following are all Granule Allocation Table (GAT) errors. GAT Re-allocation - > Cylinder ddd Gran d - Two or more files think they own the same disk space. Automatic recovery is not possible. As a last resort, kill the offender and run DIRCHECK again. Chances of recovery by this method are rather slim. Granule(s) allocated In locked out cylinder ddd - During FORMAT unreadable cylinders are locked out to prevent their use. However, certain files have been allocated to these unreadable cylinders. Nothing is done by the DIRCHECK utility to correct the problem but it may be possible to COPY the file to another diskette if in fact the EOF has not progressed into the locked out cylinders. Granule d of Cylinder ddd, allocated but not used - This means that the granule has been indicated to be in use but in fact, is not. Total Recovery is possible. Granule d of Cylinder ddd, used but not allocated - This means that a file is actually occupying what is supposed to be available space. Total Recovery is possible. The following are disk Input or Output errors (I/O). Directory Sector X'nn' is unreadable - No recovery is possible of any files in that sector. Directory Write Error - Sector X'nn' - The attempt to write corrected information was not able to be verified. A "Retry Write (Y/N)" prompt will accompany this error. Answer "Y" to try again. If the error is constant, enter "N" to proceed. Recovery is not possible. FIXGAT FIXGAT drivespec There are no parameters abbr ":" in drivespec is optional If during any disk access, an error is received such as "Illegal Drive Number" and there is a diskette in the drive, the problem could be caused by the Granule Allocation Table (GAT) sector of the directory containing incorrect information. Other GAT related problems could include improper disk name or master password, or an incorrect date. The FIXGAT utility might help in any of these circumstances. Hardware errors such as disk I/O errors, parity read errors, or directory read errors might be due to worn media, improper formatting, or hardware faults. These latter types of errors cannot be repaired by software. The purpose and use of the GAT sector are explained in the DOS technical manual. FIXGAT simply overwrites information contained in relative bytes GAT+X'CB' through GAT + X'FF' of the first directory sector. After a series of prompts, the utility will write the block of information to the section described. It makes no determination regarding the validity of the existing information simply because there can be no guarantee that the stored data is correct. After a FIXGAT has been performed, the GAT has only those characteristics which were given as answers to the prompts. If the information supplied was not technically correct then unpredictable results will occur. If the media or disk drive are not functioning properly then this utility might not function correctly. Pressing for any prompt will return to DOS Ready. The following discussion will describe what happens in detail. Diskette Name (Default = XXXXXXXX) ? Whatever is contained in X'D0 through X'D7' is displayed as Default. To change the diskette name enter a new name. To leave it as is, press . Date (Default = XX/XX/XX) ? The diskette date is used as the default unless it is unreadable, in which case the current system date is displayed as the default date. Enter a date in the MM/DD/YY format to change it or press . Bytes X'D8' through X'DF' will be overwritten. Cylinder Count (Default = xxx) ? The default is taken from the target diskette, which might be totally incorrect if the GAT is defective. Be careful! Enter the proper cylinder count or press . Entering the incorrect count means that some files might never be seen again! Byte X'CC' is overwritten with the proper computed value. Number of Sides <1,2> (Default = X) ? All defaults from now on are read from byte X'CD'. Type answer or press . Bit five of byte X'CD' is set or reset based on this response. Density (Default = X) ? Bit six of byte X'CD' is set based upon this response. Granules per Cylinder (Default = X) ? Bits two through zero of byte X'CD' are set based upon this response. The chart below represents the DOS default values for the media type and size. In order to determine granules per cylinder, multiply granules per track times the number of surfaces. Drive Secs Secs Grans Type Track Gran Track 5" Single Density 10 5 2 5" Double Density 18 6 3 8" Single Density 16 8 2 8" Double Density 30 10 3 *5" Hard Drive 32 16 2 *8" Hard Drive 32 32 1 * may vary depending on manufacturer No answers are required but the following changes happen automatically. Byte X'CB' is set to X'51'. The master password of the diskette becomes "PASSWORD" (bytes X'CE'-X'CF'). Any AUTO sequence is removed (bytes X'E0' through X'FF'). The prompt : "Install Modifications (Y/N)" will now occur. Answer "Y" to implement the changes or answer "N" to abort the write. It must be realized that FIXGAT only changes certain "signs" in the GAT. Changing the "sign" does not change the reality. It is not correct to assume that this utility will change a single to a double density diskette or the alter the number of cylinders etc. After FIXGAT has been used, the DIRCHECK utility should be used. After all possible repairs are completed, make a BACKUP by class ($:s TO A) immediately. Note that a mirror image backup would merely reproduce the defective directory to the destination diskette. The repaired disk is, in all probability, incapable of properly allocating files especially if any locked out tracks were present on the disk. IOMON IOMON is a disk drive "filter" which, when installed, will monitor disk input/output for errors and allow you to take corrective action when such occur. The following table describes the syntax of IOMON command invocations: IOMON (parm, parm) ON Installs the I/O monitor in high memory and enables its operation. OFF Disables the I/O monitor's operation and removes it from high memory if possible. ENable Enables the I/O monitor if it has been previously disabled. DISable Disables the I/O monitor's operation without removing it from high memory. Table Displays the currently enabled disk drivers in a tabular format. Abbr: ON=YES or Y. OFF=NO or N, ENable=EN or E, DISable=DIS or D, TABLE=TAB or T. Defaults: ON and TABLE. The I/O monitor is installed with the simple command: IOMON (ON) IOMON will "filter" all currently enabled disk drives with its own error trapping routine. Any disabled disk drives will remain unfiltered so that they may be enabled at a later time, if needed, without the interference of the monitor. The monitor can be temporarily disabled, without removing it from high memory, by the command: IOMON (DISABLE) At this time, any new drivers or drive "filters" may be installed into the system. To re-enable the monitor, execute the command: IOMON (ENABLE) The command: IOMON (OFF) will permanently remove the monitor from the system; its high memory allocation will be released if possible. Remember, at most one of the four major monitor parameters (ON, OFF, ENABLE, or DISABLE) may be specified in the same command line; any combination of two or more is an error and will cause the monitor installation program to abort. The TABLE parameter may be entered along with any one of the other four. The TABLE parameter may be used to obtain a display of all currently active disk I/O drivers without affecting the current status of the monitor. Any use of the parameters OFF, ON, ENABLE, and DISABLE will also display the driver table. A typical table follows: :0 => IOMON, X'F3B9' => $ADH, X'F57E' :1 => IOMON, X'F3B9' => $FD, X'10A1' :2 => IOMON, X'F3B9' => $FD, X'10A1' :3 => IOMON, X'F3B9' => $FD, X'10A1' :4 => IOMON, X'F3B9' => $FD, X'10A1' :5 => Inactive ;6 => Inactive :7 => Inactive This table, for each drive, indicates whether the monitor is active and where in high memory the monitor resides, plus the next driver in the chain and where it resides. The system floppy disk driver is indicated by the module name "$FD". Any inactive drive is shown as such. When a trapped disk I/O error occurs, and the monitor is active, the following will be displayed: Disk I/O error X'nn': Function X'nn', Drive n, Cylinder X'nn', Sector X'nn', Buffer X'nnnn' etry, ontinue, gnore, bort? As shown, the error code, driver function, drive number, cylinder number, sector number, and buffer address will be displayed, along with a short explanatory message. A list of the driver function codes is available for reference in one of two publications: "The Programmers Guide to LDOS/TRSDOS Version 6" from MISOSYS, page 3-46; or the "TRS-80 Model 4 Technical Reference Manual", from Radio Shack, page 195. The following errors are trapped: Code Short Message Explanation X'01' Read Hdr - CRC Parity error during header read X'02' Read - Seek Seek error during read X'03' Read - LD Lost data during read X'04' Read - CRC Parity error during read X'05' Read - RNF Data record not found during read X'09' Write Hdr - CRC Parity error during header write X'0A' Write - Seek Seek error during write X'0B' Write - LD Lost data during write X'0C' Write - CRC Parity error during write X'0D' Write - RNF Data record not found during write X'0E' Write - Flt Write fault on disk drive X'0F' Write - WP Write protected disk At this point you must choose one of the four options listed in the third line of the error display. Simply type the first letter of the desired action to be taken, either "R", "C", "I", or "A". Lowercase is accepted. The etry option will issue the I/O command to the disk driver again in the hope that a retry will be successful. Note that the driver has already attempted the I/O operation several times without success (the exact number of automatic retries is defined by the system variable RFLAG$). Manual retries with the option are most effective for recovery from parity, lost data, and record not found errors, especially when you are executing a BACKUP or COPY operation. The ontinue option will exit the I/O monitor, passing the error code unchanged back to the calling program. Many system programs, such as the FORMAT utility, normally expect to see certain kinds of disk I/O errors, and contain routines which will handle the errors automatically. Use the option in these cases. The gnore option will exit the I/O monitor and return to the calling program as if no error ever occurred. Note that use of this option will prevent the calling program from detecting the error, and that the I/O buffer will probably contain invalid data. The option should only be used when repeated etries have been unsuccessful, and you wish the executing program to continue operation without aborting (for instance, you may wish to continue a BACKUP by class when an error occurs while copying one of the files being backed up). Finally, the bort option will immediately return to DOS Ready through the system abort routine. This will cancel any executing JCL. MAPPER The operating system's directory command (DIR) will let you know what files you have on a disk, but MAPPER will show you where the files are positioned on that disk. It is invoked via the syntax: MAPPER :d (Print) :d Specifies which drive to MAP. Print Sends output to the printer device. Abbr: P=PRINT MAPPER provides a diskette map by granule by file. You can use it just to get a look at what files occupy each granule of disk space. This information is great for other uses [such as reconstruction of damaged cylinders]. If you do not enter a drive number on the command line, MAPPER will prompt you to enter the drive number via the prompt: Drive ? While the map is being displayed on the video screen, the following keys will allow you to scroll through the map: Key Code Key Function display previous screen page display next screen page or Exit to DOS The PRINT parameter option will cause the disk map to be sent to the printer instead of the video display, MAPPER produces a screen or printer listing similar to the following illustration [some lines have been deleted to abbreviate the listing]: Diskname : TESTDISK Free Space : 108K Sides : 1 Density : Double Cylinders : 40 0 BOOT/SYS M80/CMD M80/CMD 1 M80/CMD M80/CMD M80/CMD 2 M80/CMD M80/CMD TEST/CMD 3 TEST/CMD TEST/CMD TEST/CMD 19 ** Empty ** ** Empty ** ** Empty ** 20 DIR/SYS DIR/SYS DIR/SYS 24 ** Empty ** ** Empty ** ** Empty ** 25 ** Locked ** ** Locked ** ** Locked ** 26 ** Empty ** ** Empty ** ** Empty ** 27 M80PACK/CMD M80PACK/CMD M80PACK/CMD 28 M80PACK/CMD M80PACK/CMD M80PACK/CMD 37 ** Empty ** ** Empty ** ** Empty 38 M80/CMD M80/CMD M80/CMD RAMTEST Tests the standard 64K of memory from X'0000' to X'FFFF' for a Model 4, 4P, or 4D TRS-80, and any extra memory banks available to the DOS. The syntax is: RAMTEST (Alpha,Fast,Quiet,Repeat,Xlr8) RAMTESTL (Quiet,Fast,Repeat) Alpha Used to force Alpha Technology bank switching for expanded memory. Fast Used to specify a quick memory test without adjacent cell interference testing. Quiet Disables the status beeping. Repeat Used to establish a repetition of the testing through all memory banks. The default is one iteration. A value of zero implies 65536 iterations. Xlr8 Used to force XLR8er bank switching for expanded memory. Abbr: Q=Quiet, X=XLR8, A=Alpha, F=Fast The RAMTEST utility performs a read/write/verify test of high memory from 8000H-FFFFH. It consists of multiple phases of four tests each, designated 1, 2, 3, and 4. Each phase tests one of the switchable memory banks. Each test consists of five iterations designated as A, B, C, D, and E. Tests 1A, 2A, 3A, and 4A each propagate a bit pattern through each byte of memory. The bit patterns are respectively all 1's, alternating 1's and 0's, alternating 0's and 1's, and all 0's. Tests B through E examine adjacent cell interference by comparing the byte above and below the tested byte address for pattern changes when the address under test is changed to one of the four bit patterns previously noted. During all testing, a status message of the following form will be displayed: Bank xx Test yz The "xx" field indicates the current memory bank under test. This value can vary from 00 through 30 depending on the installation of an expanded memory board. The "y" field designates the test number while the "z" field designates the particular pattern being tested (A-E). An alive bug is displayed in the upper right corner of the screen to indicate activity of the utility. As each portion of the test is invoked, a beep will sound from the internal speaker of your computer. This may be disabled via the QUIET parameter. If an error is detected, the screen will show: BAD RAM at location X'nnnn': Was xxH, should be yyH where nnnn is the hexadecimal address of the failure, xxH is the value detected at that address in memory, and yyH is the correct value. At this time the test will pause awaiting an . Make note of the address and repeat the test. If the test fails at the same location then there is more than likely a problem with your RAM. If the failure is during an "A" test, the difference in bit patterns between the bad value and the correct value may provide a clue as to the exact RAM chip which is bad. If the test fails at random locations, check power source, clean connections, and repeat the test. Note that if there is a problem in low memory (0000-7FFFH), it is possible that the RAMTEST program itself may be corrupted. Try running RAMTESTL to check low memory. You may abort RAMTEST during its testing by depressing . RAMTEST supports two expanded memory boards: the XLR8er board, from MISOSYS, and the Alpha Technology board. RAMTEST first performs an analysis of what memory is installed using the @BANK facility of the DOS, If it finds less than 11 banks of memory, it assumes no expanded memory board is installed. If it finds exactly 11, it will assume an XLR8er board; more than 11 will imply an Alpha Tech board. During testing, HIGH$ is respected and anything in high memory will be saved in low memory, if sufficient free space is available. After all tests have been complete, RAMTEST will restore HIGH memory and post a completion message. If any expanded memory was in use, RAMTEST will re-boot your computer as there is no provision to preserve the contents of expanded memory. RAMTESTL performs similar tests on the memory from X'0000' to X'7FFF'. The low memory from X'0000' through X'25FF' will be saved in high memory during the test and restored when the test has been completed. UNREMOVE This is used to re-instate a file which was previously deleted by using the REMOVE or PURGE command. The syntax is: UNREMOVE [filename/ext][:d] no parameters are allowed abbr: NONE Since REMOVE and PURGE only reset bits in the directory entries, reset the Hash Index Table (HIT) and Granule Allocation Table (GAT), and don't erase a file, it is possible to re-allocate file space provided the file hasn't been overwritten by another entry and all space that it previously occupied has not been re-allocated. Therefore, UNREMOVE should be used as soon as possible after the deletion has occurred. To re-activate a specific deleted file, type the following command at the DOS Ready prompt: UNREMOVE filename/ext:d The filespec must be identical to the deleted file including any extensions or drivespecs. If no drivespec is specified the command will default to drive 0 but will not search any other drives. If a password existed on the file, it will also be re-activated, although a password is not required to UNREMOVE it. It is possible to find multiple deleted files identically named residing on a particular disk drive. When this occurs, UNREMOVE will display the list of files with the modification date and time (where applicable) and the size of the deleted file. You can then select the particular one you wish to reinstate. If you are unsure of the exact name of a file which was deleted, enter the command as: UNREMOVE :d The program will then display a list of the first 22 deleted files on drive :d which can be restored. Select the desired one. An example of the UNREMOVE command for restoring a single file is: UNREMOVE ACCOUNT/DAT:1 The previously deleted file called ACCOUNT/DAT on drive 1 will now be re-activated if possible. If you are not sure of the name of a deleted file that you wish to recover, you can invoke the UNREMOVE command specifying only the drive specification of the disk where the file existed. UNREMOVE will then examine that disk and display a list of the first twenty deleted files it finds which can possibly be re-instated. Choose the file from that list. Some of the errors that could occur are: Illegal Filename: This means that an improper filename was used. Check the spelling or syntax and try again. Directory Read Error: The diskette directory is no longer readable in part or whole. Try again and if that produces the same error, switch drives and try again. If the same error occurs on more than one drive, the diskette is most likely the cause and no recovery of the file is possible. Directory Write Error: Verification of the attempted write was not obtained. Attempt to recover as if it were a read error. File Already Alive: An attempt was made to UNREMOVE an active file. If the deleted file has the same filename as a current file, RENAME the current file and attempt to UNREMOVE again. No File By That Name: No such filename is in the specified drive directory. Either the wrong disk was specified or another file has already overwritten the directory entry. In the latter case, no re-activation is possible. Cannot UNREMOVE File: The name of the deleted file was found but the diskette space allocated to it has already been used by another file. No re-activation is possible. ABORT Terminate an operation, usually with the key. ADDRESS The location in memory of a particular byte, word, or string. ATTRIBUTE A facet of a file indicative of such things as whether the file is invisible to the DIRectory command, whether it's a SYSTEM file, whether it's a Partitioned Data Set, etc. BACKUP An operating system command used to make a duplicate copy of a diskette or group of files. BANK A term which refers to a portion of the extended memory of your computer. A "bank" represents 32,768 (32K) characters of storage. BINARY A number system consisting entirely of 0's and 1's; an environment which can exist in either of two states (usually ON or OFF). BIT The smallest unit contained in a byte which is composed of eight bits. BOOT The action of starting up your computer by turning on its power, inserting a system disk into the floppy drive numbered 0, closing the drive door, and possibly depressing the RESET switch. BREAK A key labeled as such on your keyboard; this key is used by PRO-WAM applications to either abort a command operation or exit from the application. BUFFER A specific memory space reserved usually for intermediate storage of data being written to or read from a disk sector. BUG A malfunction of a computer program caused by an error in the program code. We hope there are none of these critters in this package. BYTE The smallest storage unit in your computer. A byte can contain a number value of from zero through 255; a character is usually represented by a byte value. A byte contains eight bits. CHARACTER A term applied to the symbols which make up the language we use to communicate with our computer and with which it communicates to us. These symbols may be alphanumerics, special characters (!@#$%^&*()-=+...), or non-printing control characters. CIM A file extension of files usually containing a Core Image Module. Such files are usually executable machine code in memory image form. CMD A file extension of executable command files. These are programs which can be run by typing the filename. COMMAND The general term applied to the many functions available in each application. The list of commands supported by a given application is usually displayed as a menu in the bottom portion of the application window. CONFIGURATION The current operating environment of your computer indicating such things as resident and active filters, condition of alterable DOS flags, device assignments, interrupt handlers, etc. CR An abbreviation for the term "carriage return". This is an ASCII character value 13 decimal; it is entered on your keyboard via the key labeled, . CRC An abbreviation for Cyclical Redundancy Check; it is a method of counteracting errors in data transmission by the use of redundant coding. CTRL This is the mnemonic on the keyboard key used to enter control characters; it is used in combination with another key. CURSOR Anytime your computer is waiting for you to enter a keystroke, its position on the video screen is usually marked with a special character. This character may be an underline, a block, or a right angle bracket. The character is termed the "cursor". The position of the cursor may be controllable via the ARROW keys. CYLINDER A term to designate all like numbered tracks on all surfaces of a multi-surface disk drive. A two-headed drive would have two surfaces and two tracks per cylinder. On a one-headed disk drive, a track and a cylinder are synonymous. DCB An acronym for Device Control Block; it is a system memory storage space associated with character devices (video, keyboard, printer, serial port, etc.). DCT An acronym for Drive Code Table; it contains the information which describes your disk drives to the DOS. DDEN An acronym for double density formatting associated with floppy diskettes. DEFAULT A particular operation or configuration which is installed or designated without any specific action by you. DELETE The action of removing, killing, or erasing a file, a record, a field, or any similar entity. DENSITY A term applicable to the method of recording data onto a disk drive media. For floppy diskettes, the methods are usually single or double density. DEVICE A term applied to a peripheral component of your computer usually associated with character input/output (e.g. keyboard device, video device, printer device, etc.). DIRECTORY A special file on a floppy or hard disk which contains the location and other pertinent details of all files stored on that disk. DISK The abbreviated term for "disk drive" which is the hardware apparatus used to either store your files, in the case of a hard or rigid disk drive, or is used to read your floppy diskettes, in the case of a floppy disk drive. DISKETTE A shorthand way of saying "floppy diskette", the flexible recording medium used by your computer's disk drives to store files. DISPLAY A shorthand way of referring to the video display screen of your computer. DOS An acronym for Disk Operating System. This is the system supplied with your computer which manages the files stored on diskettes and provides an operating environment for programs. DRIVE An abbreviation for "disk drive". DRIVER A special computer program connecting a hardware device to the DOS (e.g. COM/DVR). DRIVESPEC The disk drive identifier field of the file specification. This is indicated by a colon followed by a number in the range 0-7. EOF An abbreviation for "end of file". It is a position in a file indicating where the last byte is stored. FDC An acronym for Floppy Disk Controller, it is the hardware unit which connects floppy disk drives to the computer and controls their operation. FIELD One particular item in a group of data making up a record. FILE A collection of data records stored on disk. FILENAME The name field of a file specification. FILESPEC An abbreviation for file specification: the entire character string which identifies a particular file. It is composed of a file name, a file extension, a password, and a drivespec. FILTER A special program inserted logically into a device stream for the purpose of altering the behavior of input/output. FLAG A data field used to store a particular environment state. Flags are usually binary (e.g. ON/OFF, YES/NO, TRUE/FALSE). FLOPPY An abbreviation for "floppy diskette"; it is the flexible recording medium used to store files. FLT A file extension usually reserved for filter modules. FORMAT An operating system utility used to prepare a blank diskette before files can be stored on it, or other diskettes backed up to it. GAT An acronym for Granule Allocation Table; it contains information for a disk designating what granules are being used. GRAN A shortened form of granule. GRANULE A unit of space on a diskette; it is composed of a fixed number of sectors. Double density floppy diskettes have 6 sectors per granule under LS-DOS 6.3. HIT An acronym for Hash Index Table. It is a portion of the directory stored on a disk which contains the one-byte directory entry codes for each active file. INVISIBLE An attribute which can be placed on a file by the ATTRIB DOS library command which inhibits the file's information from being presented by the DIR DOS library command. JCL An acronym for Job Control Language. This is a DOS facility to execute a predetermined set of command lines. LOGICAL The term applied to an event which is simulated rather than physical. A character value of 127 decimal may be interpreted as a carriage return for export purposes; since 127 is not physically a 13 decimal, it is termed, in this case, a logical carriage return. LRL An acronym for Logical Record Length; it represents the length of a record in bytes. Since the record length is not a physical phenomena, it is termed logical. LSB An acronym for "low-order significant byte"; this is the lowest storage portion of a three-byte value. LS-DOS A nomenclature of the 6.3 release of the operating system used on the Model 4 computer. MAINTENANCE Repetitive actions performed at periodic intervals to keep something working, or to repair something that is broken. MEDIA A term indicating the magnetic or optical surface of material used to store computer files. MEMORY The storage area for characters and programs internal to your machine (in contrast to disk storage). MENU The list of commands supported by an application which appear at the bottom of the application's window. MESSAGE A phrase or sentence used to inform you of some event. It may apprise you of an error or prompt you for a particular response. MSB An acronym for "mid-order significant byte"; this is the middle storage portion of a three-byte value. PARAMETER An option, usually entered on the command line, which alters the behavior of a program. PARITY A term used to denote the quantity of "1" bits in a byte. Odd parity implies 1, 3, 5, or 7 "1" bits; even parity implies 2, 4, 6, or 8 "1" bits. Parity is used in a simplistic scheme to provide integrity of data during transmission by incorporating an additional bit to always make either even or odd parity. PARTITION Any one piece of a unit, commonly a hard disk drive, which has been divided up into more than one logical unit. PASSWORD A string of characters required as part of a file specification or entire disk before a given level of access is permitted. PROGRAM A predetermined sequence of machine instructions which together support some reasonably complex operations. PROMPT A displayed message which expects a usable response. PROTECTION Measures applied to a file for security purposes. It may relate to access level restrictions or password control before granting access. Protection is applied via the DOS ATTRIB command. PRO-WAM The trademarked name applied to the window controller and application manager published by MISOSYS. RAM A type of memory storage which provides both read and write capabilities. README/TXT A plain text file included on your program diskette which contains last minute information not printed in this manual. REGISTER A very fast memory storage location located within the Central Processing Unit (CPU) of your computer. REMOVE The act of erasing, killing, or deleting a file, a module, a record, or other similar entity. SCREEN Short for the video display screen. SDEN An acronym for single density; one of the recording methods used on floppy diskettes. SECTOR A physical storage unit of a floppy diskette or hard disk drive. SVC An acronym for "SuperVisor Call"; a facility of the DOS used to communicate with it at the program level in contrast to the command level. SYNTAX A particular requirement for the entering of information. -38 SYS A particular file extension indicating a "system" file; e.g. SYS0/SYS. SYSTEM The nomenclature of a diskette which is used to either BOOT your computer or which is used in drive :0. TRACK A circular virtual groove of a disk surface; it contains the sectors read during one rotation of the disk. USER Someone who operates computer programs but does no or little computer programming. UTILITY A computer program designed to do some maintenance operation. VIDEO Short for the video display screen. WILDCARD A string of characters which don't completely designate a file specification but which contain certain "global" characters such as "*", "$", or "?" used to match any character thereby specifying a group of "matching" file specifications. WORD In the mathematical sense, the term applied to a 16-bit value which will occupy a two-byte storage region. Also is the name of the word processor used to prepare this documentation. Golden Oldies: Maintenance Package - 34 - Golden Oldies: Maintenance Package - iii - Golden Oldies: Maintenance Package DCT – Drive Code Table Creator - 39 - DIRCHECK – Directory Integrity Checker FIXGAT - Fix Granule Allocation Table IOMON - Disk Drive I/O Monitor MAPPER – Directory Mapper RAMTEST - RAM Tester UNREMOVE - Deleted File Restorer Glossary of Terms