RT-11 V05.3 UNSUPPORTED UTILITIES ================================= This file describes the following unsupported utilities dis- buted with RT-11 V5.03: CONFIG CONSOL DATIME LET NITEST RTMON SPLIT SPEED VBGEXE 1 CONFIG ------ CONFIG is an unsupported program that lets you determine certain system characteristics. You can use the CONFIG program to determine whether a handler is installed, whether a certain location exists in a system, or whether the contents of a certain location match a specific value. To determine whether a handler is installed, type the following command: .RUN CONFIG dev: The variable dev: can be a physical or logical device name. If the handler is installed, USERRB (memory location 53 in system communications area) is set to 1 for success. If the handler is not installed, USERRB is set to 4 for error. To check only physical device names (and ignore logical names), use the /P option: .RUN CONFIG dev:/P For example, the following CONFIG command determines whether the LS handler is installed. Since the option /P is included in the command, CONFIG searches for only physical LS and not for devices whose logical name is LS. .RUN CONFIG LS:/P To check information about memory locations, type the following command: .RUN CONFIG /option[/option...] - 2 - The variable option represents one or more of the following options: Option Purpose /A:addr Determines whether memory location addr exists. Useful for finding out how much memory a system includes. If a read of location addr succeeds, USERRB is set to 1. If a read causes a trap, USERRB is set to 10 (for severe error). /B Use with /A operations to perform a byte operation instead of a word operation. /M:mask Use with /A and /V:contents to test bits within the memory location specified with /A. The variable mask represents a bit mask that specifies which bits to test. /R:offset Use with /A to specify locations based on an offset from the beginning of RMON (offset) rather than an actual memory address (addr). /V:c Use with /A to verify that the contents of the specified location equal the value contents. If the contents of the location match the value contents, USERRB is set to 1. If they do not match, USERRB is set to 4. If accessing the location causes a trap (the location does not exist), USERRB is set to 10. The following command asks CONFIG to determine whether location 177776 exists, and tests whether the high eight bits match the value 1040. .RUN CONFIG /A:177776/V:104000/M:177400 2 CONSOL ------ The CONSOL utility changes the system console on systems that do not include multi-terminal support. To use the CONSOL utility, type RUN CONSOL. CONSOL requires no further commands or interaction. Depending on your hardware configuration, it may be necessary to edit CONSOL.MAC to reflect the correct CSR and vector of the new system console. In this case, you must also rebuild (reassemble and relink) CONSOL.SAV. - 3 - 3 DATIME ------ The DATIME utility is usually used in startup command files to force entry of the current date and time. The two versions, DATIME.COM (an IND control file procedure) and DATIME.SAV (a runnable save image), perform the same function. You can modify DATIME.COM yourself, but DATIME.COM requires that the file IND.SAV be on the system disk. Therefore, when running from small media, you may need to use DATIME.SAV. To use DATIME, include one of the following commands in your startup command file: .IND DATIME or .R DATIME 4 LET --- The LET utility enables character and string substitution when used with the single-line editor (SL). This provides a faster method of terminal input. To enable LET, type the following command: .SET SL LET,KMON (assumes SL is neither loaded nor ON) To define a substitution, type a LET command that equates a symbol with a character string. For example, the following line equates the symbol # with the string DX:MYPROG.MAC: .LET _#=DX:MYPROG.MAC Now, whenever you type "#", SL replaces it with "DX:MYPROG.MAC". So, if you type: .MACRO # this is what appears: .MACRO DX:MYPROG.MAC The "_" symbol tells SL that you are defining a symbol, so SL will not try to substitute a string for the character that follows. - 4 - The following summarizes all LET functions: .LET /HELP ! display help summary .LET /LIST ! display current character assignments .LET x/DELETE ! delete the assignment for "x" .LET /DELETE ! delete all assignments with an ! "Are you sure?" question. .LET /DEL:ALL ! delete all assignments without ! requesting confirmation .LET x=string ! assign the string contents to x You can have up to 5 symbols defined concurrently. Each character string can include up to 14 characters. Hint: In your startup file, delete all currently assigned characters and define those you will need for the work you are doing. For example: .LET /DELETE:ALL .LET #=LET.MAC .LET $=LET .LET ;=: .LET \= This sequence would assign LET.MAC to # and LET to $. It would also cause SL to translate ; to : and \ to nothing. (By this example, you may have guessed at the author's "shiftless" typing habits.) 5 NITEST ------ NITEST lets you verify that communications are possible between one machine on an ethernet running RT V5.3 and another machine on the same ethernet. 5.1 Building NITEST NITEST is distributed in commented source form and is built by executing the following commands: .MACRO NITEST .LINK NITEST - 5 - 5.1.1 Altering NITEST Normally, NITEST sends the loopback request to the loopback assist multicast address. Changing the address specified fol- lowing label XBUFF can let NITEST verify that communication is possible between two specific machines. 5.2 Running NITEST Execute NITEST using one of the following commands: .NITEST (CCL, runs NITEST from device SY:) .R NITEST (Runs NITEST from device SY:) .RUN NITEST (Runs NITEST from device DK:) .RUN dev:NITEST (Runs NITEST from device dev:) 5.2.1 Using NITEST When NITEST is started, it reports the physical address of the ethernet interface board (DECNA or DEQNA) installed in the machine. It then indicates that loopback assist is enabled and prompts the user to press . For example: .R NITEST Station address = xx-xx-xx-xx-xx-xx Loopback assist is enabled Type to test: If is typed at this point, a loopback request message is sent to the loopback assist multicast address (or a station's physical address, if NITEST has been altered as described in 5.1.1 above). If no response is received within 2 seconds, NITEST reports it and returns to the prompt. For example: Type to test: ?NITEST-W-No Response Type to test: - 6 - If a response is received, NITEST reports the address of the responding station. NITEST then compares the received data with the transmitted data and reports that the data is correct or corrupted. In either case, it then returns to the prompt. For example: Type to test: ?NITEST-I-Response received from xx-xx-xx-xx-xx-xx, data correct or ?NITEST-I-Response received from xx-xx-xx-xx-xx-xx, data corrupt Type to test: 5.3 NITEST operation When executing, NITEST responds to loopback requests (protocol 90-00) sent to the station's physical address or to the loopback assist multicast address. 5.4 Error messages ?NITEST-I-Response received from xx-xx-xx-xx-xx-xx, data correct A response was received from station xx-xx-xx-xx-xx-xx, and the received data matched the transmitted data. Indicates a successful test. ?NITEST-I-Response received from xx-xx-xx-xx-xx-xx, data corrupt A response was received from station xx-xx-xx-xx-xx-xx, but the received data did not match the transmitted data. ?NITEST-U-Enable multicast address error. An error occurred in enabling the loopback assist multicast address. Refer to the ENABLE MULTICAST ADDRESS spfun described in the ethernet handler documentation. ?NITEST-U-Enable protocol error An error occurred in enabling the loopback protocol. Refer the errors for the ENABLE PROTOCOL spfun described in the ethernet handler documentation. ?NITEST-U-Invalid device The handler required for ethernet access (NC for PRO-300 series processors, NQ for Qbus processors) was not found in the monitor device tables. Load the required handler and run the test again. - 7 - ?NITEST-U-Lookup error An error occurred while attempting to open a channel to the ethernet handler. Refer to the errors for a .LOOKUP. ?NITEST-U-No queue element A programmed request requiring a queue element was rejected due to lack of the queue element. This message should not occur. ?NITEST-U-Unit allocation error An error occured in allocating a unit of the ethernet handler. Refer to the errors for the ALLOCATE UNIT spfun described in the ethernet handler documentation. ?NITEST-W-No Response Following transmission of a loopback request, there was no response within 2 seconds. Hardware problems may be affecting transmission or reception; check the interface. There may be no stations on the ethernet, or may be none which respond to loopback messages. 6 RTMON ----- The RTMON utility, which runs as a foreground job, provides a real-time display of system activity. It requires a VT100, VT200 or PC300 series terminal or system. RTMON runs only under monitors that include system job support. To use RTMON, type FRUN RTMON in response to the monitor prompt. RTMON requires no further commands but will respond to some control characters, such as ^W to refresh the screen and ^Z to clear the screen and suspend RTMON. For best results, use a separate terminal for the RTMON display (this is possible only under monitors that include multi-terminal support). - 8 - 7 SPEED ----- SPEED is an unsupported program that lets you set the baud rate and other parameters of PDT-11 I/O ports. You specify CSI options in a command line to set the parameters. SPEED can be used to change the parameters of PDT systems only. You can use the following options to set parameters: Option Purpose /C:n Select character length (5, 6, 7, or 8 bits) /D Disable parity checking /E:n Enable parity, n=0=even, n=1=odd /H Display summary of SPEED options /M Select modem port and set asynchronous mode /P Select printer port /S:dddd. Set baud rate to dddd(decimal) /T:n Select terminal n (0, 1, 2 or 3) Each SPEED command line must include a device specification option (/M, /P, or /T). You can set parameters for only one device on a single SPEED command line. You can set PDT-11 I/O port parameters using SPEED in your startup file. For example, the following lines, when added to a start-up command file, set the optional cluster port 1 to 1200 baud with parity disabled, set the optional cluster port 2 to 600 baud with odd parity, and set the printer port to 2400 baud. .SPEED /T:1/S:1200./D .SPEED /T:2/S:600./E:1 .SPEED /P/S:2400. Do not set the baud rate above 2400 for a cluster port, or above 9600 for the console. 4800 baud is recommended for the console port if you use a screen editor such as KED. Some early PDTs are restricted to 2000 and 4800 for cluster ports and the console port respectively. See the PDT-11 hardware documents for details on the use of I/O ports. In general, PDT-11 port defaults are no parity, eight bits per character, and and one stop bit. The power-up speeds are: Modem Port: 1200 baud (asynchronous) Console: 9600 baud or autobaud Printer: 1200 baud Cluster port: 300 baud - 9 - 8 SPLIT ----- The SPLIT utility divides a file along block boundaries you specify and copies each segment to a separate file. SPLIT is primarily intended for dividing HELP.SAV into its component parts HELP.TXT and HELP.EXE, and for producing SYSMAC.MAC from SYSMAC.SML. However, you can use SPLIT to split other files as well. To divide a file, type a command with the following syntax: .SPLIT [outfil1,outfil2,outfil3,...]=infil/option In the command, infil represents the file you want to split, and outfil represents the files to which the input file divisions will be sent. You can specify up to three output files, and you can omit file file specifications by marking the missing specification's place with commas. The variable option represents one of the following options: Option Function /B:n[:m] Defines the boundaries along which to divide the input file; n and m represent the block number (octal) of the beginning of each division, starting with the second. (The beginning of the first division is block 0.) Therefore, you specify one less boundary than the number of divisions you want. For example, to divide a file into three parts you must specify two boundary block numbers. /H Displays HELP information. Use this option by itself, without specifying any input or output files. /2 Divides the input file in half. For example, the following command divides HELP.SAV into its component parts, HELP.EXE and HELP.TXT. .SPLIT HELP.EXE,,HELP.TXT=HELP.SAV/B:10:13 SPLIT writes blocks 0-7 (octal) of HELP.SAV to the file HELP.EXE, discards blocks 10-13 (no second file specification is given in the command line) and writes from block 14 (octal) to the end of HELP.SAV to the file HELP.TXT. The next example writes from block 4 to the end of the file SYSMAC.SML to the file SYSMAC.MAC. .SPLIT ,SYSMAC.MAC=SYSMAC.SML/B:4 - 10 - NOTE The values used for n and m in the two preceding examples (splitting HELP.SAV and SYSMAC.SML) may change. Refer to CUSTOM.TXT on your distribution kit for the current boundary values. In CUSTOM.TXT, the boundary value variables for splitting HELP.SAV are ..HLP1 and ..HLP2; The boundary value variable for splitting SYSMAC.SML is ..SYSM. The next example divides the file BOTH.SAV in half on a block boundary sends the resulting sections to files ONE.SAV and TWO.SAV. .SPLIT ONE.SAV,TWO.SAV=BOTH.SAV/2 The following command requests SPLIT help information. .SPLIT /H Note that when you split an ASCII file, division along block boundaries is likely to divide the file in mid-sentence. 9 VBGEXE ------ o VBGEXE, the virtual run utility, creates a pseudo SB/FB environ- ment that appears to extend the amount of low memory available under the XM monitor. VBGEXE lets you execute, without relinking, many well-behaved programs as if they were operating under SB or FB. If you are running under the XM monitor and there is not enough low memory for your program to execute, try using VBGEXE. The following example shows how to execute a program using VBGEXE: .R VBGEXE Program? MACRO ! Run MACRO using VBGEXE * ! This is MACRO's prompt. You can also execute VBGEXE as a foreground or system job, and even assign it to its own terminal. In addition, if your monitor includes system job support, you can use the /NAME option to specify the program you want VBGEXE to run. For example, the following command tells VBGEXE to execute BASIC at terminal 1. .SRUN SY:VBGEXE.SAV/NAME:BASIC/TERM:1 - 11 - o VBGEXE allocates and uses low memory for background or foreground and system jobs in the following manner: For a background job, VBGEXE allocates all free low memory to the monitor to satisfy user requests (.CDFN, .QSET, .FETCH) that re- quire low memory. For a foreground or system job, VBGEXE establishes approximately a 1248 (decimal) word buffer in low memory. About 767 (decimal) words of that buffer are available to the monitor to satisfy user requests (.CDFN and .QSET) that require low memory. The buffer is large enough to let VBGEXE run most jobs. If your job cannot run under VBGEXE because the .CDFN or .QSET programmed request requires more low memory, use the /BUFF:nnnnn option in the fol- lowing manner: .FRUN SY:VBGEXE.SAV/BUFF:nnnnn[/NAME:xxxxxx[/option]] or .SRUN SY:VBGEXE.SAV/BUFF:nnnnn[/NAME:xxxxxx[/option]] where nnnnn is a decimal value for the number of additional words you want VBGEXE to allocate as buffer space for that job. Note that increasing the buffer size decreases the available low memory. o It may be more convenient to create a UCL command called "V" by defining: V :== VBGEXE ^ and then simply enter: .V Program? In addition, you can use V in a CCL-style command syntax, for example: .V MACRO INPUT OUTPUT which is processed the same as would be the following command series: .V Program? MACRO *OUTPUT=INPUT *^C Do not attempt CCL-style command syntax without specifying both input and output files; doing so returns the monitor prompt rather than the utility prompt. - 12 - o The following restrictions apply to the programs VBGEXE can run: o The program cannot contain interrupt service routines. o The program cannot use the following programmed requests: .FORK .INTEN .MFPS .MTPS o The program can use only the .PEEK, .POKE, .GVAL, and .PVAL programmed requests to access the kernel address space (for example, monitor data and the I/O page). ------- end of UNSUP.TXT -----