PRO-ESP - Enhanced System Package TABLE OF CONTENTS ALTDISK 2 ALTLD 4 ALTRES 5 CRLF/FLT 6 CTLG/FLT 7 CVT324 8 DOEDIT/FLT 14 FKEY 16 IOMON 17 MINIDOS/FLT 20 NAME 21 PRTOGGLE 22 RD40 23 UNREMOVE 25 XONXOFF/FLT 26 All programs: Copyright 1984 by Richard N. Deglin, Riclin Computer Products and Karl A. Hessinger, MicroConsultants, All rights reserved. PRO-ESP is published by MISOSYS, Inc., Sterling VA 22170. LS-DOS is a trademark of Logical Systems Inc. TRSDOS is a trademark of Tandy Corp. General Information This documentation covers the TRSDOS 6.x or LS-DOS 6.x (herinafter referred to as DOS) version called PRO-ESP. The PRO-ESP package provides the user with a collection of valuable utility programs and filters designed to enhance the operation of your DOS. The package of utilities is provided on a 40-track double density formatted data diskette. ALTDISK/CMD ALTDISK is a disk-drive simulator which creates a 32K or 64K DOS drive in the second (64K) bank of RAM. ALTDISK uses less than 30 bytes of low memory and about 100 bytes of high memory, and can be operated with all DOS products, including a hard disk driver or the I/O Monitor. You can load the DOS system files into the RAM disk, and use it as drive 0 for very fast system response. ALTDISK can be operated as any one of the eight allowable DOS drives, and upon invocation the target drive can be formatted, or re-enabled if previously formatted. ALTDISK (parm, parm, ...) DRIVE=n Specify the drive (1-7) which will be the RAM disk. Defaults to drive 7. FORMAT=sw ON, Y, or YES will format the drive, and erase all previous information. OFF, N, or NO will reenable a previously formatted RAM drive, with all information intact. Default is ON. HALF=sw ON, Y, or YES will cause ALTDISK to use only the 1st bank of alternate RAM, giving a 32K drive. Defaults to OFF. OFF Will disable ALTDISK and reclaim high memory if possible. abbr: DRIVE=D, FORMAT=F, HALF=H, OFF=N or NO ALTDISK will create or re-enable a RAM disk which, in its full configuration, has 16 cylinders, 4 granules per cylinder, and 4 sectors per granule. The files BOOT/SYS and DIR/SYS will be on the drive. BOOT/SYS uses one granule of cylinder 0, while DIR/SYS uses all of cylinder 1. This gives you 59K of free space, with directory capacity for 112 files. A half-size drive has 8 cylinders containing 27K of free space. When ALTDISK is invoked, it will inform you, if all goes well, that the selected drive has either been created or re-enabled: Drive n formatted and enabled (if FORMAT=ON) Drive n reenabled (if FORMAT=OFF) If, when ALTDISK is invoked, the upper alternate bank is currently in use, then ALTDISK will create a half size (32K) memory disk and will display an appropriate message. When you remove ALTDISK, one of the following messages will be displayed: ALTDISK removed, high memory not reclaimed ALTDISK removed, high memory reclaimed To use ALTDISK as drive 0, first invoke it as some other drive, backup all system files to it (except SYS0/SYS), and enter the SYSTEM (SYSTEM=n) command to switch the RAM disk to drive 0. For example: ALTDISK (DRIVE=7,HALF=NO,FORMAT=YES) BACKUP SYS/SYS:0 :7 (SYS) REMOVE SYS0/SYS.LSIDOS:7 SYSTEM (SYSTEM=7) If an error occurs when ALTDISK is invoked, one of the following messages will be displayed: Parameter error! - An invalid parameter was entered on the command line. Reenter the command line with correct syntax. Requested drive already enabled! - The requested drive already exists in your system; it may be any type of drive (floppy, hard, RAM disk). Use a drive which is currently inactive. Invalid drive number! - A drive number not in the range of 1 to 7 was entered. ALTDISK already active, drive n! - An ALTDISK RAM drive exists in your system, but it wasn't the requested drive. More than one RAM disk cannot be active at the same time. To change the drive number of an existing RAM disk, reboot and invoke ALTDISK with the new drive number and FORMAT=OFF. Can't - only valid at DOS Ready - You attempted to invoke ALTDISK from BASIC or a similar situation. Since ALTDISK alters the system high memory pointer, it can only be invoked from DOS Ready. Lower alternate bank already in use, ALTDISK not installed! - You attempted to install ALTDISK when the lower alternate bank was already in use. Can't remove drive 0! You attempted to remove ALTDISK when installed as drive 0. ALTDISK not installed! You attempted to remove ALTDISK when it was not active. Drive code table doesn't point to ALTDISK, can't remove! - ALTDISK has determined that it has been "filtered"; remove the "filter" first. NOTE: ALTDISK cannot be SYSGENed. ALTLD/CMD The ALTLD utility provides a simple way to rapidly save and restore the entire contents of the alternate RAM banks to and from a disk file. ALTLD filespec/RAM (parm) LOAD Loads the contents of the specified file into the alternate banks. DUMP Saves contents of alternate banks to a disk file. abbr: DUMP=D, LOAD=L If the DUMP parameter is specified, ALTLD will dump the entire contents of the alternate 64K of RAM to a disk file. This file may later be loaded back into the alternate RAM by use of the LOAD parameter. If the LOAD parameter is specified, ALTLD will load the contents of a previously dumped file into the alternate RAM banks. ALTLD will check the length of the specified file, and will only load the file into alternate RAM if the file is exactly 64K bytes in length; if this is not the case, an appropriate error message will be displayed and ALTLD will abort. This safeguard is there if you inadvertently attempt to load a file which is not a RAM image. If no parameters are specified, you will be prompted first for the RAM filespec and then: oad or ump? Type to load RAM from the file or type to dump RAM into the file. If you specify BOTH the DUMP and the LOAD parameters on a command line, the following message will be displayed and ALTLD will return to DOS Ready: Can't dump AND load! While ALTLD is loading or dumping the contents of the alternate RAM, it will display an incrementing memory page counter (in hexadecimal) as an indication of its progress. Upon finishing the process, a completion message will be displayed and you will be returned to DOS Ready. ALTRES/CMD ALTRES is a replacement for the SYSTEM (SYSRES=nn) command which places a specified system overlay into the upper alternate bank of memory. ALTRES (parm, parm...) SYSRES=nn Load system overlay nn into alternate RAM. OFF Disable ALTRES and reclaim memory if possible. abbr: SYSRES=S, OFF=N or NO ALTRES is a replacement for the SYSTEM (SYSRES=nn) command. ALTRES functions in the same way as SYSTEM (SYSRES=nn) except that the system modules are stored in the upper alternate bank. ALTRES only uses the upper of the two alternate banks, so if you wish to also use the ALTDISK driver, specify the HALF parameter to instruct ALTDISK to only use the lower bank. ALTRES will display an error message and abort if the upper alternate bank is already in use. ALTRES will also abort if the SYSTEM (SYSRES) high memory hook is already active. Specifying the OFF parameter will instruct ALTRES to remove itself from the system; and if possible, reclaim the space it used in high and low memory. Specifying the OFF parameter when ALTRES is not active will cause the error message: ALTRES not installed! to be displayed. ALTRES may be SYSGENed, with the following in mind. When ALTRES is initialized via the system boot configuration (@ICNFG) vector at reset time, it will perform a checksum on the alternate bank to determine if the system modules which were ALTRESed are still resident. This will allow ALTRES to recover from a reboot cleanly. If the checksums for any of the previously resident system modules are in error, then the ALTRES high memory hook will be active, but those particular modules will not be resident. Those modules which checksurnmed correctly will be resident again. In any case, you can invoke a JCL (using ALTRES) which will reload any or all of the desired system overlays back into the alternate bank. NOTE: SYS0, SYS6, SYS7, SYS8, and SYS13 (if present) cannot be made resident. CRLF/FLT The CRLF filter allows the DOS video driver to properly handle carriage return/linefeed pairs sent to it. Set *devspec [to] CRLF/FLT Filter *DO [using] *devspec There are no parameters. [Use CR for devspec] This filter is to be installed on the *DO device whenever you wish to properly handle carriage return/linefeed pairs sent to the video. This is accomplished by changing every carriage return control character (X'0D') sent to the filtered device into a beginning of line character (X'1D'); linefeed characters X'0A') are passed to the device unchanged. This filter will find use in conjunction with communications programs, such as COMM/CMD, whenever you are communicating with a remote computer system which transmits CR/LF pairs at the end of each line. Many mainframe computer systems use this method to terminate lines of output; without the use of the CRLF/FLT, reception of a CR/LF pair would cause double-spacing on your video display. Note that when using COMM with this filter, you must turn on the COMM option "Accept Linefeed" (<4>, <:>). CTLG/FLT The CTLG filter will cause your machine to beep every time an ASCII BEL character is sent to the filtered output device. Set *devspec1 [to] CTLG/FLT Filter *devspec2 [using] *devspec1 There are no parameters. [Use CG for devspec1] This filter will produce an audible beep using your machine's internal speaker whenever an ASCII BEL character (X'07') is sent to the filtered output device. Normally, the filter is installed on the *DO device; however, any output device will do. This filter will find use in conjunction with applications which require the generation of an audible tone. To demonstrate the use of this filter, install it on the *DO device, and, using COMM/CMD, type with the half duplex option on. Every time is depressed, you will hear a beep. For convenience, the constants used to generate the beep sound are located at X'3000' (tone) and X'3001' (duration) in the CTLG/FLT load module. These are passed to the system @SOUND SVC (the tone in bits 0-2 and the duration in bits 3-7 of register B) by the filter. The PATCH utility may be used to easily change these values, and thus the Control-G sound, if your sound generation hardware supports a variety of tones and/or durations. CVT324/CMD CVT324 will convert your DOS Version 5 BASIC programs to run on the DOS Version 6 BASIC. CVT324 input_file output_file There are no parameters. CVT324 will help you convert your old BASIC programs to run on DOS Version 6 BASIC. The input file must be a BASIC program stored in compressed format. The output file will be an ASCII file which can be loaded into BASIC. CVT324 will perform the following conversions on your program: 1) Add spaces around keywords. 2) Strip any trailing information after a CLEAR statement. 3) Convert PRINT @ statements for 80 x 24 screen. Besides the conversions, any line containing one of the keywords; INPUT, OUTPUT, POKE, PEEK, or USR, will cause the message: The line above contains a questionable statement to be displayed. Because of the differences between the BASIC provided with DOS Versions 5 and 6, these keywords will probably require changes for the program to run properly under DOS 6. Any line containing one of the keywords; SET, RESET, POINT, CLOAD, CSAVE, or SYSTEM will cause the message: The line above contains a bad taken and cannot be converted to be displayed. The above keywords are not supported by the BASIC supplied with DOS Version 6 and must be changed before the program can be used under this version of BASIC. DED/CMD The Disk EDitor allows you to easily modify the contents of any DOS compatibly formatted disk. DED :d There are no parameters. If the drive number is not specified on the command line then you will be prompted to enter it. Once a drive has been selected, DED will scan the drive and then display the first sector on the disk in the following format: 0123456789ABCDEF Byte 00 01 02 03 04 05 06 07 08 09 0A 0B 0C OD 0E 0F ============================================================================= | ..&!........&$.. | <00> | 00 1E 26 21 00 10 01 0F 03 CD BB 04 26 24 01 01 | | ....&.......!p.: | <10> | 01 CD BB 04 26 14 04 0C CD BB 04 FD 21 70 14 3A | | ...o.Ad.I. ....E | <20> | D8 07 CB 6F 01 41 64 11 49 1D 20 05 CB A8 11 45 | | ..w ....o.'. ..$ | <30> | 11 CB 77 20 0C CB B0 CB 6F 11 27 0F 20 03 11 24 | | ........w..q..r. | <40> | 09 FD 7E 03 E6 03 B0 FD 77 03 FD 71 04 FD 72 07 | | .s.:...w._..&#.. | <50> | FD 73 08 3A 02 04 FD 77 09 5F 06 00 26 23 CD BF | | ..K.#x. ....w.>" | <60> | 04 ED 4B CC 23 78 E6 20 FD 86 04 FD 77 04 3E 22 | | ..w.%.....:.#..2 | <70> | 81 FD 77 06 25 06 04 CD BF 04 3A 00 23 E6 10 32 | | .$!....>..2...2. | <80> | 0F 24 21 00 13 06 10 3E 10 90 32 ED 07 7E 32 El | | .#..>.!..U..>... | <90> | 07 23 10 F3 3E 04 21 00 15 55 5D F5 3E 09 F1 01 | | .....>.....>.... | | 00 04 CD D6 04 3E 06 CD D6 04 0B 3E 02 C0 CE 04 | | ...>......$....H | | 11 00 0C 3E 01 CD CE 04 C3 00 24 1E 00 18 01 48 | | .W...!.......... | | AF 57 FD E5 FD 21 D8 07 CD 03 00 FD El C9 D5 El | | .2..6 ..2....... | | 13 32 DC 07 36 20 D5 C5 32 DC 07 ED 80 C1 D1 C9 | | ................ | | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | | ................ | | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ============================================================================= Drive : 1 Cylinder : 0 Sector : 0 Byte X'00' = X'00' = 00000000 = 0 Sector assigned to : BOOT/SYS Command : The largest portion of the screen is taken up by the display of the sector buffer. The ASCII characters on the left correspond with the hexadecimal values to the right. If a byte has a value less than X'20' or greater than X'7F', it will be displayed in the ASCII section as a period. Beneath the sector display are two lines of information. The first informs you of your current position on the disk. This line contains the current drive, cylinder, sector and the relative byte position within the sector. Following the relative byte position, the value of the byte at that position is displayed in hexadecimal, binary, and decimal formats. The second information line contains the name of the file to which the current sector is assigned. When DED logs in a disk, it creates a map of the disk's file/sector assignments, which are then displayed on this line. DED does not support the ability to position to a relative sector within a file; it will only inform you as to which file the displayed sector is assigned. Before looking at the list of commands that DED supports, it is important to make note of two items. First, any command may be aborted at any time by depressing the key. Second, if any command terminates in error, for example if you attempted to display the previous sector when already positioned at the first sector of the disk, an asterisk will be displayed after the Command: prompt to indicate that an error has occurred. List of DED Commands Enter the ASCII modify mode. Search for an ASCII string. Select a new drive. Search for a hexadecimal string. Go to next occurrence of search string. Enter the hexadecimal modify mode. List the current sector to the printer. Position to next cylinder. <0> Output a TOF (ASCII X'0C') to the printer.

Position to the previous cylinder. Reposition to cylinder and sector. Save the sector buffer to the disk. Verify sectors. Exit to DOS Ready. <;> Position to next sector. <-> Position to previous sector. Display menu of commands. Cancel current command. Cursor Movement Left Arrow Move the cursor to the left one position. Right Arrow Move the cursor to the right one position. Down Arrow Move the cursor down one line. Up Arrow Move the cursor up one line. Shift Left Arrow Move the cursor to the start of the current line. Shift Right Arrow Move the cursor to the end of the current line. Shift Up Arrow Move the cursor to the start of the sector buffer.(Relative byte X'00') Shift Down Arrow Move the cursor to the end of the sector buffer. (Relative byte X'FF') @nn Depress the @ key followed by the two hex digits representing the relative sector position to move the cursor. Movement Commands <;> Next sector Depress the <;> key to advance to the next sector on the disk. If the last sector of the current cylinder is displayed DED will advance to the first sector of the next cylinder. If the last sector of the disk is being displayed DED will place an * in the command field to indicate that it cannot advance to the next cylinder since it does not exist. <-> Previous sector Depress the <-> key to reposition to the previous sector on the disk. If the first sector of the current cylinder is being displayed DED will position to the last sector of the previous cylinder. If the first sector of the disk is being displayed DED will place an * in the command field and will ignore the command. Next cylinder Depress the key to advance to the next cylinder on the disk. If the last cylinder of the disk is being displayed an * will be displayed in the command field and the command will be ignored.

Previous cylinder Depress the

key to reposition to the previous cylinder on the disk. If the first cylinder on the disk is being displayed an * will be displayed in the command field and the command will be ignored. Reposition Depress the key to reposition to a desired cylinder and sector. DED will prompt for the cylinder and then for the sector; enter them as decimal quantities. Depress to abort and remain positioned at the current cylinder and sector. If a cylinder or sector is entered which does not appear on the disk, you will be reprompted for the cylinder or sector. Modification Commands Hexadecimal modify Depress the key to enter the hexadecimal edit mode. To make changes to the sector buffer, position the cursor over the byte to be changed using the arrow keys. Any digits entered will be interpreted as hexadecimal values. Characters which are not legal hexadecimal digits will be ignored. The hex modify mode can be exited at any time by depressing the key. Remember that any changes made to the sector buffer will not be written to the disk until you issue a ave command. While in the hexadecimal modify mode, an additional command is available. Depress the key and DED will zero the remainder of the sector buffer following the byte at the cursor position. ASCII modify Depress the key to enter the ASCII modify mode. To make changes to the sector buffer, position the cursor over the byte to be changed using the arrow keys, and type the new text. As the text is entered the cursor will automatically advance to the next position in the sector buffer. The ASCII modify mode can be exited at any time by depressing the key. Remember that any changes made to the sector buffer will not be written to the disk until you issue a ave command. While in the ASCII modify mode, the @ cursor positioning command will not function. Save sector Depress the key followed by to save the current sector to the disk. Any modifications made in the sector buffer will not be written to the disk until you ave them. Search Commands Find ASCII string Depress the key and DED will prompt for an ASCII string. The ASCII search works exactly like the hexadecimal search described below. Find hexadecimal string Depress the key to search for a hex string. You will be prompted to enter the hex string. After the string of hexadecimal digit pairs has been entered DED will begin searching the disk for a match. The search will start at the byte following the current location of the cursor. If your cursor is positioned at relative byte X'40' on drive 1 cylinder X'00' sector X'00', the search will start from drive 1, cylinder X'00', sector X'00', relative byte X'41'. The search may be aborted at any time by depressing the key. If a match is found, DED will display the sector where the match is found with the cursor positioned to the first byte of the matching string. String search is not affected by sector boundaries. If you wish to search for another occurrence of the same string use the G command. Goto next occurrence Depress the key to go to the next occurrence of the search string. Miscellaneous Commands Select drive Depressing the key followed by the key will cause DED to prompt for a drive number. Enter the drive number you wish to scan or to return to DOS Ready. Exit to DOS Depress the key followed by the key to return to DOS Ready. Verify sectors Depress the key and DED will prompt for a sector count. Enter a decimal number less than or equal to 999. DED will then attempt to read that many sectors to verify that they are indeed readable. A running count of the unreadable sectors will be displayed. The verify command may be aborted at any time by depressing the key. After the verification has been completed DED will redisplay the original cylinder and sector. Output top-of-form Depress the key and DED will send a top-of-form (ASCII X'0C') to the printer. List sector Depress the key followed by the key and DED will list the contents of the current sector to the printer in the following format: Drive 01 Cylinder 00 Sector 00 0123456789ABCDEF Byte 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ======================================================================= ..&!........&$.. <00> 00 1E 26 21 00 10 01 0F 03 CD BB 04 26 24 01 01 ....&.......!p.: <10> 01 CD BB 04 26 14 04 0C CD BB 04 FD 21 70 14 3A ...o.Ad.I. ....E <20> D8 07 CB 6F 01 41 64 11 49 1D 20 05 CB A8 11 45 ..w ....o.'. ..$ <30> 11 CB 77 20 0C CB B0 CB 6F 11 27 0F 20 03 11 24 ........w..q..r. <40> 09 FD 7E 03 E6 03 B0 FD 77 03 FD 71 04 FD 72 07 .s.:...w._..&#.. <50> FD 73 08 3A 02 04 FD 77 09 5F 06 00 26 23 CD BF ..K.#x. ....w.>" <60> 04 ED 4B CC 23 78 E6 20 FD 86 04 FD 77 04 3E 22 ..w.%.....:.#..2 <70> 81 FD 77 06 25 06 04 CD BF 04 3A 00 23 E6 10 32 .$!....>..2...2. <80> 0F 24 21 00 13 06 10 3E 10 90 32 ED 07 7E 32 El .#..>.!..U..>... <90> 07 23 10 F3 3E 04 21 00 15 55 5D F5 3E 09 F1 01 .....>.....>.... 00 04 CD D6 04 3E 06 CD D6 04 0B 3E 02 C0 CE 04 ...>......$....H 11 00 0C 3E 01 CD CE 04 C3 00 24 1E 00 18 01 48 .W...!.......... AF 57 FD E5 FD 21 D8 07 CD 03 00 FD El C9 D5 El .2..6 ..2....... 13 32 DC 07 36 20 D5 C5 32 DC 07 ED 80 C1 D1 C9 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DOEDIT/FLT The DOEDIT filter will allow the editing of video information and will allow this edited information to be passed back through the *KI device. Set *devspec [to] DOEDIT/FLT (parm, parm...) Filter *KI [using] *devspec NOCR=ddd Character to inform DOEDIT not to send a Carriage Return after the edited text. CURSOR=ddd Character to use as the cursor when DOEDIT is active. ACTIVE=ddd Keystroke to use as the edit activation character. abbr: ACTIVE=A, CURSOR=C, NOCR=N [Use DE for devspec] Note that all parameters may be entered in decimal (ddd), hexadecimal (X'nn'), or ASCII ("a") format. Parameter Functions NOCR=value If this character is one position to the left of the cursor when is depressed, NO carriage return (X'0D') will be sent through the *KI device. This parameter defaults to 127 decimal (X'7F'). CURSOR=value This character will be displayed as the cursor while in edit mode. It will not change your normal system cursor! This parameter defaults to 95 decimal (X'5F'). ACTIVE=value Typing this keystroke will activate DOEDIT. This parameter defaults to . DOEDIT Keystroke Functions , , , and While DOEDIT is active these keystrokes will move the cursor one position up, down, left, or right, respectively. This key will move the cursor to the beginning of the current line. This key will move the cursor to the first space following the last non-blank character in the current line. This key will return control to the normal keyboard driver and passes NO characters through the *KI device. The cursor is restored to its position prior to activation of DOEDIT. This key will insert one space at the cursor location. All characters on the line to the right of the cursor shift one position to the right. This key will delete the character under the cursor. All characters on the line to the right of the cursor shift one position to the left. This key will redisplay the previously entered DOS command at the cursor position, without executing it, thus allowing editing of the command line. This key will act differently depending upon the presence or absence of the NOCR character, thus: 1) If the character immediately to the left of the cursor when is depressed is NOT the same as the NOCR character, then all characters to the left of the cursor on the current line will be sent through the *KI device, terminated with a carriage return (X'0D'). 2) If the character immediately to the left of the cursor 15 the NOCR character, then all characters to the left of the cursor on the current line (excluding the NOCR character itself) will be sent through the *KI device. The characters will NOT be terminated with a carriage return. All other keystrokes in the range 32 through 127 (X'20'-X'7F') will overtype the character under the cursor, and the cursor will move one position to the right. FKEY/CMD FKEY allows you to redefine the codes returned by the function keys. FKEY (parm, parm, ...) F1=nn Redefine the F1 key. SF1=nn Redefine the shifted F1 key. F2=nn Redefine the F2 key. SF2=nn Redefine the shifted F2 key. F3=nn Redefine the F3 key. SF3=nn Redefine the shifted F3 key. DEFAULT Return keys to DOS defaults. abbr: DEFAULT=D FKEY will allow you to easily redefine your function keys. Specifying the DEFAULT parameter will instruct FKEY to initialize the function keys to their default values of: F1 = X'81' / X'91' F2 = X'82' / X'92' F3 = X'83' / X'93' The first number is the unshifted value, and the second number is the value returned if the shift key is depressed along with the function key. To give you an idea of how FKEY may be used, try the following: 1) Install DOEDIT using the default value for the ACTIVE parameter. 2) Type FKEY (F1=X'E5'). 3) Depress the F1 key and see that DOEDIT is now active! NOTE: The changes made by FKEY will only remain until you reboot; they cannot be SYSGENed. IOMON/CMD IOMON/CMD 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. 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 reenable 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: Drive 0 => IOMON, X'F3B9' => $ADH, X'F57E' Drive 1 => IOMON, X'F3B9' => $FD, X'10A1' Drive 2 => IOMON, X'F3B9' => $FD, X'10A1' Drive 3 => IOMON, X'F3B9' => $FD, X'10A1' Drive 4 => IOMON, X'F3B9' => $FD, X'10A1' Drive 5 => Inactive Drive 6 => Inactive Drive 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. MINIDOS/FLT The MINIDOS filter allows you to access some DOS commands without the necessity of being at the DOS Ready level. Set *devspec [to] MINIDOS/FLT Filter *KI [using] *devspec There are no parameters. [You may use MD for devspec] After the MINIDOS filter has been installed, simultaneously depress the key, the key and one of the following action keys: , , , ,

, , , or . - The C command will toggle the state of the clock display. This is the same as using the TIME (CLOCK=ON) or TIME (CLOCK=OFF) library commands. - The D command will cause the system to load and execute the system debugger. You may return to the executing program by depressing G. - The F command will allow you to display the free space remaining on a diskette, in decimal Kilobytes. At the prompt {f}, type in the number of the drive whose free space you wish to view and depress . - The K command will allow you to remove a file from a disk. At the prompt {k}, enter the name of the file you wish to remove and depress . If an error occurs the appropriate error message will be displayed.

- The P command will allow you to send a byte to the printer device (*PR). At the prompt {p}, enter the DECIMAL value of the byte you wish to send to the printer, and depress . - The Q command will allow you to display the directory of a diskette. At the prompt {q}, enter the number of the drive whose directory you wish to view. You may limit the display by suffixing the drive number with a slash (/) followed by an up to three character file extension. Depress to finish your input. - The R command will allow you to rename a file. At the first prompt {r}, enter the current name of the file you wish to rename. At the second prompt {R}, enter the new filename. - The T command will send a Top-of-Form character (ASCII X'0C') to the printer device. If your printer is not capable of executing a hardware formfeed you will have to install the FORMS filter, too. Note that any MINIDOS function which generates a prompt may be aborted by striking the key. NAME/CMD The NAME utility allows you to change the name and/or date of a diskette. NAME :d (parm, parm) :d Indicates the drive containing the diskette to be changed. NAME="new name" Changes the specified diskette's name to "new name". DATE="mm/dd/yy" Changes the specified diskette's date to "mm/dd/yy". DATE=ON/YES/Y Changes the specified diskette's date to the current system date. abbr: NAME=N, DATE=D. There are no defaults. To change the name of a diskette, use the NAME parameter. Any printable ASCII characters (32 -127) are acceptable. The name may be one to eight characters long; it will be padded with spaces to the right to make a field that is eight characters in length. To change the date of a diskette, use the DATE="mm/dd/yy" parameter. Slashes must be used to delimit the month, day, and year fields. Alternatively, the DATE=ON parameter may be used to place the current system date onto the diskette. An invalid drive, name, or date specification will be flagged appropriately, and NAME will abort. If no parameters are entered, NAME will abort with the message, Nothing done! PRTOGGLE/CMD PRTOGGLE allows you to dynamically link the video device to the printer device with a single keystroke. PRTOGGLE/CMD (parm) ACTIVE=ddd Set activation keystroke. Defaults to . abbr: ACTIVE=A The ACTIVE parameter is used to set the activation keystroke for PRTOGGLE. This keystroke may be entered in decimal (ddd), hexadecimal (X'nn'), or ASCII ("a") format. The PRTOGGLE filter will monitor the keyboard (*KI) device for depression of the activation keystroke. Upon receipt of the activation keystroke, subsequent information directed to the video (*DO) device will also be copied to the printer (*PR) device. This "link" will remain active until the activation keystroke is again depressed. PRTOGGLE can only be applied at DOS Ready. Also, it creates the phantom devices *PK and *PD to implement its filters on the *KI and *DO devices, respectively. If either of these phantom devices is already active in the system, PRTOGGLE will not install itself, displaying an error message and returning to DOS Ready. Finally, PRTOGGLE will abort its installation process if no device space is available in the system (i.e. two free device control blocks are required); an appropriate message will be displayed. RD40/CMD RD40/CMD is a disk drive "filter" which, when installed, will allow the reading of a 40-cylinder diskette in an 80-cylinder drive. RD40 :d (parm) :d Specifies the number of the 80 cylinder drive which will be used to read the 40 cylinder diskettes. ON Installs the RD40 filter in high memory and enables its operation. OFF Disables the RD40 filter's operation and removes it from high memory if possible. ENABLE Enables the RD40 filter if it has been previously disabled. DISABLE Disables the RD40 filter's operation without removing it from high memory. Abbr: ON=YES or Y, OFF=NO or N, ENABLE=EN or E, DISABLE=DIS or D. Defaults: ON. The RD40 filter is installed with the simple command: RD40 :d (ON) RD40 will "filter" the 80-cylinder drive specified by ":d", allowing read-only access to 40-cylinder diskettes in that drive. The drive must be enabled in the system. The RD40 filter can be temporarily disabled, without removing it from high memory, by the command: RD40 :d (DISABLE) At this time, 80-cylinder diskettes may again be read from and/or written to in the specified drive. To re-enable the RD40 filter for 40-cylinder accesses, invoke the command: RD40 :d (ENABLE) The command: RD40 :d (OFF) will permanently remove the RD40 filter from the system; its high memory allocation will be released if possible. Remember, at most one of the four RD40 filter parameters may be specified in the same command line; any combination of two or more is an error and will cause the RD40 filter installation program to abort. RD40 may be installed independently on more than one drive; each time a new high memory allocation will be made. The module name will be different for each drive; installation on drive 3, for instance, would generate the module name "RD403". Also, every time RD40 is invoked for a particular drive, with any one of the four permissible parameters, the drive will be restored to cylinder 0 in preparation for further disk accesses to that drive. It is recommended that any newly mounted diskette in the RD40-filtered drive be logged in with either the DEVICE or LOG command before any I/O is attempted. Finally, the disk I/O monitor (IOMON/CMD) must be applied after the RD40 filter is established to prevent any spurious errors from being trapped during access of a 40-cylinder diskette. UNREMOVE/CMD The UNREMOVE utility allows you to recover a file which was inadvertently removed from a disk. UNREMOVE filename/ext:d filename/ext:d The complete specification of the file you want to restore. By using UNREMOVE you will be able to recover the file, provided that you haven't already reused the disk space in some other file(s). If more than one removed file is found on the specified disk with the specified name, then all of the matching filenames along with their creation dates will be displayed. Select which file you wish to unremove by depressing the number next to the file with the desired creation date. If an error occurs during the execution of UNREMOVE, one of the following errors will be displayed: Missing-drive number! - A filename is entered which does not contain a drive number Can't restore file. Granule(s) ALREADY allocated! - UNREMOVE determined that some of the disk space for the file has already been reused. Can't restore file. Attempt to allocate beyond end of disk! - UNREMOVE determined that a granule requested in the directory entry does not exist on the disk. This could occur if the directory entry has been damaged. If this is the case, the directory entry must be corrected before UNREMOVE can properly restore the file. Information in the "Programmer's Guide", section 4, should help you in use of the DED disk editor utility if you attempt to fix the problem. File NOT found! - The filename cannot be found on the disk. This could occur if you have specified the wrong disk or if the directory slot has already been reused by another file. File ALREADY exists! - The filename is already on the disk as an active file. If you wish to restore the original file, first rename the active file and use UNREMOVE again. XONXOFF/FLT The XONXOFF filter implements the standard XON-XOFF handshaking protocol for those serial devices which require it. Set *devspec1 [to] XONXOFF/FLT Set *devspec2 [to] COM/DVR Filter *devspec2 [using] *devspec1 There are no parameters. This filter is designed to allow the attachment of serial output devices (such as printers, terminals, or plotters) which require your host computer to honor the XON-XOFF flow control protocol. These devices will send an XOFF (Control-S or X'13') to the host when they can no longer accept incoming data, and will signal the host to resume transmission with an XON (Control-Q or X'11'). The XONXOFF/FLT can be applied to the communications line device in order to support this handshaking requirement. The filter will operate correctly regardless of baud rate, parity, or word size.