B00101 ------------------------------------------------------------------------------ DISKISREADY B001 DETERMINE WHETHER A DISK IS ON LINE AND READY ------------------------------------------------------------------------------ Contribution Name......(16).: DISKISREADY File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. DISKISREADY.SBMT : 02. DISKISREADY.FTN : 03. DISKISREADY.LOD : 04. DISKISREADY.REL Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN77 Keywords.................: 1. DISK : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 19 Dec., 2001 Program Abstract............: DISKISREADY reports back whether or not a disk is up and ready. It will not itself cause the disk LU to be put DOWN. If the disk is ready, DISKISREADY exits with PRTN(1) set = 0 (ready). If not, it exits with PRTN(1) = 1 (not ready). An example of use in the WELCOME file: IF DISKISREADY 44 THEN MC 44 MC 45 ELSE ECHO `LU 44 is not ready` FI In this example DISKISREADY tests LU 44. If LU 44 is ready, then LUs 44 and 45 are mounted. If not, an error message is displayed. See also the WAITFORDISK contribution, which actually waits for a disk to come up ready, with a timeout. See source for more documentation. B00201 ------------------------------------------------------------------------------ IFSETTIME B002 BOOTUP OR LOGON TIME/DATE SAFETY CHECK ------------------------------------------------------------------------------ Contribution Name......(16).: IFSETTIME File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. IFSETTIME.SBMT : 02. IFSETTIME.FTN : 03. IFSETTIME.REL : 04. IFSETTIME.LOD : 05. TIME.FTN : 06. TIME.REL : 07. TIME.LOD Operating System(s)......: RTE-A, untested on RTE-6 but might work Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. TIME : 2. DATE : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: TIME portion resubmitted for convenience Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: The system clock is initially set to April 1, 1983 at bootup. IFSETTIME checks to be sure that the system time has been changed, i.e that the system date exceeds 1993 (the year the program was put into service). If not, then the system's automatic time-setting means (if any) has failed, and IFSETTIME schedules the program named TIME to collect the correct time and date from the operator instead. Note: the value 1993 can easily be changed in the source. For example, to allow only the years 2002 through 2037, change line 20 to read thus: IF (TIMEDATE.LT.'02' .OR. TIMEDATE.GT.'37') THEN ... IFSETTIME is normally used in the WELCOME file or an operator's HELLO (logon) file, or both. If used in the WELCOME file, the bootup process will halt until the operator manually responds to the TIME program's prompts. Schedule it as follows: RU, IFSETTIME A program called TIME is recontributed here as part of this contrib- ution, but any program named TIME will do. You may prefer your own. This version of TIME will only allow the time to be changed by a superuser or by the system session in the bootup WELCOME file. See source for more documentation. B00301 ------------------------------------------------------------------------------ WAITFORDISK B003 WAIT FOR A DISK TO COME ON LINE, WITH TIMEOUT ------------------------------------------------------------------------------ Contribution Name......(16).: WAITFORDISK File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. WAITFORDISK.SBMT : 02. WAITFORDISK.FTN : 03. WAITFORDISK.LOD : 04. WAITFORDISK.REL Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN77 Keywords.................: 1. DISK : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 19 Dec., 2001 Program Abstract............: WAITFORDISK just waits for a disk to come on line. It can be used at bootup in systems with multiple disks, where some disks don't spin up as quickly as the boot disk (e.g 7933, 7935 are slow). In such an application it prevents the slow disk from being put DOWN because it was accessed too soon. WAITFORDISK will not itself cause the disk to go DOWN. When the disk comes on line, WAITFORDISK exits with PRTN(1) set = 0 (successful). If the runstring supplied timeout occurs first, it exits with PRTN(1) = timeout value (unsuccessful). If it detects the BReak flag, it exits with PRTN(1) = 32767 (unsuccessful). An example of use in the WELCOME file: IF WAITFORDISK 44 1200 THEN ELSE ECHO `LU 44 failed to come up` FI In this example WAITFORDISK waits for LU 44, timing out after 1200 seconds (20 minutes). See also the DISKISREADY contribution, which reports whether a disk is ready without waiting. See source for more documentation. B00401 ------------------------------------------------------------------------------ COPYDISKFAST B004 COPY ONE DISK LU TO ANOTHER, WITH PROGRESS ------------------------------------------------------------------------------ Contribution Name......(16).: COPYDISKFAST File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. COPYDISKFAST.SBMT : 02. COPYDISKFAST.FTN : 03. COPYDISKFAST.REL : 04. COPYDISKFAST.LOD : 05. COPYDISKFAST.SEND Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. DISK : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: COPYDISKFAST copies one LU to another, as rapidly as possible, with a %-completion progress display. It is as fast as COPYL or faster. In particular, it seems to be faster than COPYL when copying to optical disks. In addition, it offers options such as: * Optional pre-read with abort if the source disk has any errors (avoids copying a bad disk over a better one). * Optional locking of the source disk during the copy. * Optional inhibit of all terminal display. * Optional verify of the copy. * Optional local handling of disk I/O errors (avoids a disk going DOWN during the copy). As with COPYL, the disk LUs must be the same size, in blocks. However, they need not be the same type of disk or the same number of blocks per track. Example application: Used disks are cheap now. COPYDISKFAST can be scheduled every night to make a warm backup, e.g copy LU 44 on one disk mechanism to LU 54 on another in the background as follows: XQ COPYDISKFAST 44 54 ELPQV See source for more documentation, particularly error reporting. See also the previous OSAVE/ORSTR submission, in CSL release 3326, which allows rapid copy of a disk LU to a FILE on another (larger, possibly optical) disk LU. These programs mimic ASAVE and ARSTR but with the archive file saved on disk rather than tape, and with progress reporting. B00501 ------------------------------------------------------------------------------ COPYSCREEN B005 COPY ANY SCREEN TO TERMINAL, PRINTER, OR FILE ------------------------------------------------------------------------------ Contribution Name......(16).: COPYSCREEN File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. COPYSCREEN.SBMT : 02. COPYSCREEN.FTN : 03. COPYSCREEN.REL : 04. COPYSCREEN.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 22 Dec., 2001 Program Abstract............: COPYSCREEN copies the screen of any terminal connected to the HP 1000, displaying the results on your terminal and optionally also writing them to a file or another device, such as a printer. It is very helpful for debugging users' problems or looking at the system console screen without actually being there. Also, it can easily copy your own screen to a printer or a file. At ICT it is often used to view the system console or a user's screen by dialup on a system hundreds or thousands of miles away. COPYSCREEN is an enhancement of Don Clapp's program CTOME, contribution 2730 L048, 1987. Usage: RU COPYSCREEN [FromTerm [DestFile [Opts]]] Where: FromTerm is the system LU of the HP terminal we will read. If not supplied, default is your own terminal screen. DestFile is a destination file or device in addition to your terminal. Opts (may be supplied in any combination): A Append this data if the file already exists. C Clear FromTerm screen after copying it. D Overwrite preexisting DestFile without asking. F Force cursor to bottom of screen after copying. H Write a 1-line Header/timestamp at the destinations. L Copy only from the current cursor position (Line) down. Q Quiet (inhibit) the display on your terminal. COPYSCREEN will not attempt to copy through a pending read on the FromTerm device. If you need to copy the screen of a terminal which has a pending read from an active program, you must first suspend the active program (SS,PROG/LU) and then abort the pending read (CN,LU,AB) before running COPYSCREEN. Afterward, you should resume the program (GO,PROG/LU). Your terminal must support normal HP control sequences, i.e it must allow EDIT to run in screen mode. It has not been tested with TELNET terminals but it should work. I recommend that you put COPYSCREEN in your list of Prototype IDs to be RP'd at bootup. See source for more documentation. See also the PSCREEN contribution for a simple command which copies your screen to a printer. B00601 ------------------------------------------------------------------------------ FCS80 B006 WAIT FOR CS/80 TAPE READY, FORMAT IF NECESSARY ------------------------------------------------------------------------------ Contribution Name......(16).: FCS80 File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. FCS80.SBMT : 02. FCS80.FTN : 03. FCS80.REL : 04. FCS80.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: FCS80 waits for a CS/80 tape drive to come up and ready, checks to see if the tape has been certified (formatted), and schedules FORMC to certify it if not. After the tape is ready and certified, FCS80 exits. Certification, if needed, will be done whether or not the operator is a superuser. This program is very helpful in command files which write to CS/80 tapes, such as FST backups. Prior to scheduling FST, schedule FCS80 as follows: RU FCS80 LU Where LU is the logical unit of the tape. This allows an operator to put a tape in the drive, start the backup operation, and leave without waiting for the tape to come ready. More important, if the tape is already certified, the time necessary to certify it is not wasted. FCS80 exits if it detects the BReak flag. It does not use the PRTN() parameters on any exit. See source for more documentation. See also WAITFORCS80, which also waits for the tape to be ready but does not certify the tape. B00701 ------------------------------------------------------------------------------ FILELU B007 REPORT THE LU CONTAINING A SPECIFIED FILE ------------------------------------------------------------------------------ Contribution Name......(16).: FILELU File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. FILELU.SBMT : 02. FILELU.FTN : 03. FILELU.REL : 04. FILELU.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: FILELU reports in $RETURN1 (PRTN(1)) and $RETURN_S the LU number of the volume containing a specified file. If no file is specified, it returns the LU number of the volume containing the file /SYSTEM.DIR. It is used in CI command files which need to know the LU numbers of specified files. For example, a CI command file could issue the correct ASAVE commands after first determining the LU numbers. Invoke FILELU as follows: RU FILELU [FileDescriptor] On exit, $RETURN1 and $RETURN_S will contain the same information: File found: LU number of the CI volume containing the file. Not found or other FMP error: Negative FMP error code, e.g -6. See source for more documentation. B00801 ------------------------------------------------------------------------------ FIXRPL B008 FIXES RPL CHECKSUMS OF ALL FILES IN A MASK ------------------------------------------------------------------------------ Contribution Name......(16).: FIXRPL File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. FIXRPL.SBMT : 02. FIXRPL.FTN : 03. FIXRPL.REL : 04. FIXRPL.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: FIXRPL fixes the RPL checksum on all type-6 files in a mask. For example, the command FIXRPL /PROGRAMS/@ will fix the RPL checksum in all type-6 files in the /PROGRAMS directory, if possible. Errors are reported for any that cannot be fixed. Those must be relinked. Files which are included in the mask but are not type-6 are ignored without error messages. FIXRPL is particularly useful when a new RTE-A system generation changes the RPL checksum, or when already-linked programs are copied from one system to another with a different RPL checksum. Then any already-linked programs will fail on first execution with the message "Changed RPL checksum." FIXRPL can be run once to correct ALL of the errant checksums. To fix all of the programs in the system: FIXRPL, @.@.E See source for more documentation. B00901 ------------------------------------------------------------------------------ KERMIT B009 FILE TRANSFER PROTOCOL PROGRAM ------------------------------------------------------------------------------ Contribution Name......(16).: KERMIT File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. KERMIT.SBMT This file : 02. CMDSTACK.MAC Command stack source : 03. CMDSTACK.REL Command stack relo : 04. CONNECT.HELP Kermit Help File : 05. INDEX1.MAC Character search source : 06. INDEX1.REL Character search relo : 07. KERLIB.FTN Library primary source : 08. KERLIB.MER Library merge file : 09. KERLIBA.LIB Library relocatables - A : 10. KERMEM.INCL Include file : 11. KERMIT.COMP Compile everything : 12. KERMIT.FTN Program source : 13. KERMIT.INCL Include file : 14. KERMIT.USER User Guide by Columbia : 15. KERMIT6.CMD Link program for RTE-6/VM : 16. KERMITA.CMD Link program for RTE-A : 17. KERMITA.REL Program relocatable - A : 18. KERMITMASTER.INCL Include file master : 19. LEFTJUSTIFY.MAC Subroutine source : 20. LEFTJUSTIFY.REL Rubroutine relo Operating System(s)......: RTE-A and RTE-6/VM Uses hierarchical files?.: Sure Language(s)..............: FTN7X mostly, MACRO slightly Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: No Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 23 Dec., 2001 Program Abstract............: KERMIT is a well-known file-transfer program, available free on almost all computers since the early 1980s. Versions of Kermit submitted by Paul Schumann of E-Systems have been in the HP 1000 CSL since 1986. This version of Kermit was derived from an early Schumann version, incorporated into the commercial CONNECT package, and regularly revised and improved until about 1997. Some possible differences between this version and others: 1. Handles Long Packets, up to 9024 bytes in length (default 2048). 2. Supports HP-1000 to HP-1000 transfer for all file types without loss of any file attributes, including update date. 3. You can run other programs from the KERMI> prompt. 4. Does NOT have terminal-emulation mode (CONNECT does that part), but will work fine as a remote host or server for a PC. If you own the CONNECT package, any revision, this version of KERMIT should be compatible with it. If you do not, you can still use this KERMIT as the remote host for PC terminal emulators like Reflection. Note: See Reflection configuration, below. Though this Kermit can handle packets of 9024 bytes, a packet size of 2048 is recommended because more program space is available for file operations. At 19,200 baud, tests at ICT show that the throughput improvement going from a packet size of 2048 bytes up to 9024 bytes is less than 5% with direct-connected computers. However, if you have large turnaround delays in your connection, such as a satellite hop, the larger packets may be more helpful. Of course, this Kermit will scale back to standard 93-byte packets when communicating with another Kermit which does not support long packets. But, because of turnaround delays inherent in the HP 1000 and its MUX, the throughput will be approximately one third of what it would be with long packets. Sliding windows are not implemented, nor are checksums larger than one byte. Installation notes: 1. You shouldn't have to recompile for RTE-A; the KERMITA relocatable and KERLIBA library are supplied. For RTE-6/VM you will have to recompile, see KERMIT.COMP below. 2. Execute the command file KERMITA.cmd to install on RTE-A, KERMIT6.CMD to install on RTE-6/VM. 3. KERMIT's help file is CONNECT.HELP. KERMIT looks for it first on /SYSTEM and then on /CONNECT, so copy it to one of those. 4. To completely recompile everything for both RTE-A and RTE-6/VM, except a few MACRO routines that never need recompiling, execute the command KERMIT.COMP. Then you might as well go out to lunch. 5. The file KERMIT.USER is a user manual written by the original authors of the first Kermit. It's interesting reading, but you will make more use of the Help facility within Kermit. Reflection is the most common PC terminal emulator for the HP 1000. Here are some setup suggestions for Reflection on your PC: FILE TRANSFER SETUP: In my version of Reflection: File --> Transfer Setup... --> Protocol (select Kermit) --> Kermit Tab (Transfer Type = ASCII, Checksum = 1 byte, Character Set Translation Off, File Name Translation On, Automatic Server Mode Off, Packet Size = 2048, Window Size = 1). HOST PROMPT: If you leave the host prompt set to anything except "none" or blank, you may get endless timeouts during file transfers. In my version of Reflection: Setup --> Terminal... --> Emulation --> Advanced --> Host Prompt (set it to none or blank). See source for more documentation. B01001 ------------------------------------------------------------------------------ LOGTIME B010 LOG THE DATE/TIME OF EVENTS SUCH AS BOOTUP ------------------------------------------------------------------------------ Contribution Name......(16).: LOGTIME File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. LOGTIME.SBMT : 02. LOGTIME.FTN : 03. LOGTIME.REL : 04. LOGTIME.LOD : 05. EMACOPY.MAC : 06. EMACOPY.REL : 07. LEFTJUSTIFY.MAC : 08. LEFTJUSTIFY.REL Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X, MACRO Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 22 Dec., 2001 Program Abstract............: LOGTIME keeps track of repeated events, such as bootups, successful backups, or even logons. It reads up an existing log file, puts the current time on TOP of the file, and rewrites the file. Thus the most-recent information is always on top of the file. When the file reaches LOGTIME's 1000-record limit, an old record is deleted to make room for each new record, thereby keeping the file to a nominal size. As submitted, that size cannot exceed about 330 blocks. Thus no maintenance is required. Usage: RU LOGTIME File [Prepend Text] Where: File is the descriptor of the file to be used. If it does not exist, it will be created. "Prepend Text" is text to be inserted in front of the date, e.g the text "Booted" or the text "Backup Successful". The program will always insert one space between the last nonblank character in the text and the date/time string. Usage examples: RU LOGTIME /SYSTEM/EVENTS.TXT `System booted` {in WELCOME file} RU LOGTIME /SYSTEM/EVENTS.TXT `Logon: `$LOGON`, session# `$SESSION {in logon HELLO file, makes an entry which looks like this: Logon: DON.NOGROUP, session# 70 Sat Dec 22, 2001, 2:18:00 pm} LOGTIME actually writes each new record in the file's SECOND record location, leaving the first record unchanged and pushing the old second record down to third, etc. Therefore, the top record in the file never moves and may be used as a title for the file, e.g "ICT HP 1000 Events." Have you ever wondered whether or not a user (or you yourself) performed a backup, or rebooted the system, or logged on, or whatever? Now you can keep track by inserting a LOGTIME command in the CI command file that the user would necessarily execute. LOGTIME calls EMACOPY and LEFTJUSTIFY, included in this contribution. See source for more documentation. B01101 ------------------------------------------------------------------------------ NULLJOB B011 DISPLAY TOTAL PERCENTAGE OF CPU UTILIZATION ------------------------------------------------------------------------------ Contribution Name......(16).: NULLJOB File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. This file : 02. NULLJOB.SBMT : 03. NULLJOB.FTN : 04. NULLJOB.REL : 05. NULLJOB.CAL Operating System(s)......: RTE-A or RTE-6/VM Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: No longer requires calibration file Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 21 Dec., 2001 Program Abstract............: NULLJOB reports the total percentage of CPU utilization by all processes including the operating system and its drivers. Previous versions required a calibration file (/SYSTEM/NULLJOB.CAL), but this version determines the CPU type and uses an internal calibration table if there is no calibration file. NULLJOB runs at priority 32767 (lowest possible) and executes a task previously calibrated to take 1.00 seconds. When the task completes, NULLJOB determines how long it really took, and uses that information to calculate the percentage of CPU time used by all OTHER tasks during the run period. NULLJOB takes into account not only all other running programs but all operating-system and driver activity as well, and is therefore quite accurate. It often reports substantially higher total CPU utilization than does HP's METER program, though METER has improved in recent RTE releases. To load it: LINK NULLJOB.REL NULLJOB.RUN::PROGRAMS. To run it: RU, NULLJOB. To stop it: CM> BR, NULLJ. When the system is running with no active programs, NULLJOB should report an execution time of 1.00 (seconds), corresponding to CPU utilization of 0.0%. It may jump up to 1.0% now and then, but should come back to 0.0%. If it does not, then the file NULLJOB.CAL should be edited and put on the /SYSTEM directory to provide correct calibration for the particular CPU. Only the first line of NULLJOB.CAL is used by NULLJOB; the remaining lines are documentation showing typical calibration values for several different CPU types. The calibration value for one CPU may be different than that for another of the same type, though in my experience this is rare. Adjust the value in the first line of NULLJOB.CAL::SYSTEM until NULLJOB displays every 1.00 (never 0.99, occasionally 1.01) seconds on an otherwise completely idle system. If you come up with a calibration value for an A700, please let me know what it is. The value in NULLJOB's internal table is a dummy, because I haven't had an A700 to calibrate it on. See source for more documentation. B01201 ------------------------------------------------------------------------------ NUMERICCENTURY B012 LIKE NUMERICTIME BUT WITH 4-DIGIT YEAR ------------------------------------------------------------------------------ Contribution Name......(16).: NUMERICCENTURY File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. NUMERICCENTURY.SBMT : 02. NUMERICCENTURY.FTN : 03. NUMERICCENTURY.REL Operating System(s)......: RTE-A or RTE-6/VM Uses hierarchical files?.: N/A Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: NUMERICCENTURY is a subroutine which mimics NUMERICTIME, except that it returns a 15-character string including a 4-character year, in the format CCYYMMDD.HHMMSS. NUMERICTIME returns a 13-character string including a 2-character year, in the format YYMMDD.HHMMSS. Thus NUMERICCENTURY returns values which can be sorted correctly, between the dates January 1, 1970, through January 18, 2038. It is called as follows: CALL NUMERICCENTURY (SS70, TIMEDATE15) Where: SS70 is the INTEGER*4 number of seconds since 1/1/1970. TIMEDATE15 is the output character string. It is meant to be used in new applications. See source for more documentation. B01301 ------------------------------------------------------------------------------ PSCREEN B013 COPY YOUR SCREEN TO YOUR PRINTER ------------------------------------------------------------------------------ Contribution Name......(16).: PSCREEN File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. PSCREEN.SBMT : 02. PSCREEN.FTN : 03. PSCREEN.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 22 Dec., 2001 Program Abstract............: PSCREEN is a simple command which prints your screen to your printer with a one-line time/date header at the top. It actually schedules the COPYSCREEN program to do the heavy lifting. Usage: PSCREEN There are no run-time parameters. Your terminal must support normal HP control sequences, i.e it must allow EDIT to run in screen mode. Before using PSCREEN at your site, you must modify it to print to the correct printer LU, and you may want to comment out line 33 (reset printer) if you are not printing to a laser jet. I recommend that you put both PSCREEN and COPYSCREEN in your list of Prototype IDs to be RP'd at bootup. See source for more documentation. See COPYSCREEN contribution, in this same CSL release. B01401 ------------------------------------------------------------------------------ RENAMEFORWINDOWS B014 RENAME FILES FOR TRANSFER TO A WINDOWS PC ------------------------------------------------------------------------------ Contribution Name......(16).: RENAMEFORWINDOWS File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. RENAMEFORWINDOWS.SBMT : 02. RENAMEFORWINDOWS.FTN : 03. RENAMEFORWINDOWS.REL : 04. RENAMEFORWINDOWS.LOD Operating System(s)......: RTE-A or RTE-6/VM Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 21 Dec., 2001 Program Abstract............: RENAMEFORWINDOWS examines the files in a mask for file-name characters which are illegal in Windows. It creates a list of those filenames in a list file, along with the name that it would prefer to use instead. If "OK" is supplied, it will actually rename the files in accordance with that list file. Files are renamed by sustituting a specific legal character for each Windows-illegal character (\ * ? " < > and |). After renaming, the files can be transferred to a Windows PC without difficulty. Usage: RU RENAMEFORWINDOWS mask [outfile] [OK] Where: Outfile is the list file, default RENAMEDFILES.TXT. OK gives permission to actually do the renaming. The lists of illegal characters and substitute characters can easily be changed if you wish. See source for more documentation. B01501 ------------------------------------------------------------------------------ RUNCI B015 RUN CI AT BOOTUP IN FMGR-ONLY SYSTEM ------------------------------------------------------------------------------ Contribution Name......(16).: RUNCI File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. RUNCI.SBMT : 02. RUNCI.FTN : 03. RUNCI.REL : 04. RUNCI.LOD Operating System(s)......: RTE-A Uses hierarchical files?.: That's the issue, none are available Language(s)..............: FTN7X Keywords.................: 1. BOOT : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: This very simple program offers a way to have CI execute a WELCOM file in a FMGR-only system. CI otherwise looks for its WELCOMExx.CMD file on the /SYSTEM directory, and will not find it on a FMGR LU. RUNCI is scheduled as the START program in the SYSTEM (BOOTEX command) file, and in turn runs CI to execute a command file called WELCOM::0. Why would anyone want to do this? You may want to set up a FMGR-only system (no CI volumes) for these reasons, among others: 1. To have a very minimal (emergency) disk-based system allowing operations such as backup or MPACK without any CI volumes mounted. 2. To put a simple operating system (e.g for backup) on a floppy or an optical disk. In either case, CI can be scheduled at startup for such tasks as initializing terminals or whatever. See source for more documentation. B01601 ------------------------------------------------------------------------------ TERMINALID B016 RETURN A TERMINAL'S ID IN $RETURN_S ------------------------------------------------------------------------------ Contribution Name......(16).: TERMINALID File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. TERMINALID.SBMT : 02. TERMINALID.FTN : 03. TERMINALID.REL : 04. TERMINALID.LOD : 05. GETSTAT.FTN : 06. GETSTAT.REL Operating System(s)......: RTE-A only Uses hierarchical files?.: n/a Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: TERMINALID queries a specified terminal for its ID (terminal type) and reports that back in the $RETURN_S string. For example, if the specified terminal is a 2392A, the returned string will contain the string "2392A". This can be useful in for correct initialization of some application programs that depend upon a specific terminal type. For example, the graphics programs for a 2623A are different from those for a 2397A. Therefore, knowledge of the actual terminal type will allow the correct application program to be invoked at startup. See source for more documentation. B01701 ------------------------------------------------------------------------------ TERMSTAT B017 OBTAIN AND DISPLAY A TERMINAL'S STATUS ------------------------------------------------------------------------------ Contribution Name......(16).: TERMSTAT File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. TERMSTAT.SBMT : 02. TERMSTAT.FTN : 03. TERMSTAT.REL : 04. TERMSTAT.LOD : 05. TERMSTAT.SEND : 06. GETSTAT.FTN : 07. GETSTAT.REL Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. TERMINAL : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: TERMSTAT reads and displays the configuration of another terminal. The other terminal must be turned on, connected, and with no other I/O pending. It is useful in some cases for diagnosing problems with a terminal or its configuration, especially when the terminal is not nearby. It has not been tested on terminals connected via TELNET. This is a typical display for a 2392: CI> termstat 70 5 2392A -1 2392A -2 2392A -3 2392A -4 2392A -5 2392A Primary Status: 4008000 Secondary Status: 0500000 1K Bytes F 2K Bytes F 4K Bytes T 8K Bytes F A Transmit Func Ky F B Space Overwrite F C Inh EOL Wrap F D Space Overwrite F E F F F G DC2 handshake F H Inhibit DC2 F Caps Lock Key F Block Mode Key F Auto LF Key F Secondary stat yes T Cursor sense pend F Func Key pending F ENTER Key pending F Secondary stat pen F Data Comm Error F Self Test error F Device Error F Device Stat pend F Device Op Stat pen F 1K Bytes buffer F 2K Bytes buffer F 4K Bytes buffer F 8K Bytes buffer F I/O Firmware in T APL Firmware in F Term IDs itself T Programmable term F J Auto Terminate F K Clear Terminator F L Self Test Inhib F M F N Prt Esc Code Xfr F P Compat Mode Scal F Q Compat Mode Unsc F R F S F T F U F V F W Data Comm Test F X F Y F Z F Mem Ovflow Prot F Memory Lock F Memory Full F CI> See source for more documentation. B01801 ------------------------------------------------------------------------------ TOPSORT B018 FAST EMA SORT OF LARGE STRING ARRAYS ------------------------------------------------------------------------------ Contribution Name...........: TOPSORT File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. TOPSORT.SBMT This file : 02. TOPSORT.FTN Source : 03. TOPSORT.REL Relocatable : 04. EMACOPY.MAC Source : 05. EMACOPY.REL Relocatable Operating System(s)......: RTE-A Uses hierarchical files?.: Sure Language(s)..............: FTN7X, MACRO Keywords.................: 1. EMA/VMA : 2. SORT : 3. STRINGS External Support Req'd...: This is a Fortran-callable subroutine If Re-submission, Reason.: Enhanced string length, improved documentation Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 Date..........: 22 Dec., 2001 Program Abstract............: This submission of TOPSORT is enhanced to allow sorting of strings up to 128 characters in length, and is further enhanced with improved documentation in the source. It is well tested now, and very fast. TOPSORT is an in-memory insert-sort routine which adds a new character item to an ordered list of character items each time it is called. The character items may be either in local space or EMA. It uses three tricks in an attempt to achieve speed: 1) Binary searches are used to find the insertion point for the incoming item; 2) The hardware MVW instruction is used to move data aside to create space for each insertion; 3) The character items themselves are not physically moved - instead, a list of integer pointers to the items are physically sorted. TOPSORT is used at ICT to sort IMAGE records according to a specified sort key. In most application programs the records are read twice: Once to build the ordered (sorted) array of keys with associated record numbers, and then again to read the complete records in sorted order and perhaps produce an appropriate report or mailing. The time required to sort a list of items is proportional to N*LogN, where N is the number of items. Speed measurements were done on an A400, using up to 1 Mbyte of memory for the item array and two different sizes of item. Items were artificially generated, in a non-sequential order, and all unique with the differences in the rightmost characters. Time required to generate the items was compensated out. The following actual sort times were measured: Item |<-------TEST 1------->| |<-------TEST 2------->| Array, Item Item Kbytes Length # Items Seconds Length # Items Seconds ------ ------ ------- ------- ------ ------- ------- 128 78 1680 13 32 4096 30 256 78 3361 28 32 8192 76 512 78 6721 66 32 16384 214 1024 78 13443 179 32 32766 468 Notes: 1) The amount of time required seems closely related to the number of items and relatively independent of the item length. 2) An A900 or A990 would be 3 to 8 times faster. I am not an expert on sorting methodology and do not know how this method compares with more sophisticated techniques. However, for more than a few hundred items it is MUCH faster than QUERY, which apparently uses a crude disk sort with time proportional to N**2 (N squared) or worse. To do much better, see the concurrently-submitted program FILESORT. TOPSORT may be compiled with CDS off or on. It could be used in a VMA (rather than EMA) program but there is reason to believe that other sorting methods might be more appropriate if the entire item array cannot be contained within the working set. See the source itself for a description of procedures for calling TOPSORT from a Fortran program. TOPSORT calls EMACOPY, a macro routine, previously contributed in 1988 and supplied again here. Both relocatables must be available when linking an application program which uses TOPSORT. See source for more documentation. See also the concurrent submissions TOPFIND and FILESORT. TOPFIND is a TOPSORT-style subroutine which finds items in the sorted array, but without modifying the array. FILESORT is a complete application which sorts files containing up to 25,000 records, each 80 up to characters long. Also see the EMACOPY macro subroutine, which can copy data into, out of, and within EMA arrays at the speed of the MOVEWORDS routine. It's a poor man's Vector Instruction Set, never changed since 1988 because it works really really well. B01901 ------------------------------------------------------------------------------ TOPFIND B019 FIND AN ITEM IN A TOPSORT ARRAY ------------------------------------------------------------------------------ Contribution Name......(16).: TOPFIND File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. TOPFIND.SBMT : 02. TOPFIND.FTN : 03. TOPFIND.REL Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. EMA/VMA : 2. SORT : 3. STRINGS : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 21 Dec, 2001 Program Abstract............: TOPFIND is a Fortran-callable function which searches for a character item in a sorted EMA array created by TOPSORT, also submitted in this CSL release. If an item matching the supplied key value is found, TOPFIND returns a TRUE value and the location of the item. If a match is not found, TOPFIND returns FALSE and points to the next- smaller item in the array. Because it uses a very fast binary search, it works only on an already-sorted TOPSORT-style array. TOPFIND calls the MACRO subroutine EMACOPY, which is contributed in this CSL release as part of the TOPSORT contribution. See source for more usage documentation. B02001 ------------------------------------------------------------------------------ FILESORT B020 SORT A FILE QUICKLY IN EMA ------------------------------------------------------------------------------ Contribution Name......(16).: FILESORT File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. FILESORT.SBMT : 02. FILESORT.FTN : 03. FILESORT.REL : 04. FILESORT.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. EMA/VMA : 2. SORT : 3. STRINGS : 4. : 5. External Support Req'd...: TOPSORT routines, submitted concurrently Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 22 Dec., 2001 Program Abstract............: FILESORT sorts the records in a file according to the standard ASCII collating sequence. Its output is a new file - the original is unmodified. It uses the TOPSORT routines to perform the sort in EMA, and as submitted can sort a file of up to 25,000 records, each up to 80 characters in length. Usage: RU, FILESORT, infile, outfile Where: Infile is the input file to be sorted. Outfile is the output file to receive the sorted records. It may be the same as Infile, but FILESORT will ask if it's OK to overwrite it. FILESORT will prompt for Infile or Outfile if not supplied. As submitted FILESORT is large, requiring a 1012-page partition, but can easily be made smaller for smaller arrays. To do so, set the ASIZE and MXCHR parameters to your actual maximum record count and record size. FILESORT can be similarly modified for different record counts and record lengths. For example, it can handle up to 32,766 records of 62 characters, or 16,351 records of 128 characters. The limit is the maximum EMA size of 1022 pages (just under 2 MBytes). VMA is another possible solution, but will slow the sort down a lot - other sort techniques might be preferable. FILESORT calls TOPSORT and EMACOPY, both submitted concurrently with FILESORT. See source for more documentation. B02101 ------------------------------------------------------------------------------ WHATCPU B021 REPORT CPU ID IN $RETURN1 ------------------------------------------------------------------------------ Contribution Name......(16).: WHATCPU File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. WHATCPU.SBMT : 02. WHATCPU.FTN : 03. WHATCPU.REL : 04. WHATCPU.LOD : 05. CPUID.MAC : 06. CPUID.REL Operating System(s)......: RTE-A only Uses hierarchical files?.: N/A Language(s)..............: FTN7X, MACRO Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: WHATCPU returns the CPU ID in $RETURN1 (PRTN(1)). Schedule it as follows: RU, WHATCPU The possible values in $RETURN1 are: 2 = A600 3 = A700 4 = A900 5 = A600+ 7 = A400 10 = A990 This program is used in WELCOME file or other command files to customize actions to the CPU. For example, if the CPU is an A400, execute the commands to initialize the OBIO ports. Or for example, if the CPU is an A990, use the A990 boot clock to set the system date/time, otherwise get the time and date another way. Note: WHATCPU calls the RTE-A function CPUID, which is not provided (or not documented?) in early revisions of RTE-A. If the link fails because CPUID is missing, link in the version of CPUID supplied with this submission. See source for more documentation. B02201 ------------------------------------------------------------------------------ WAITFORCS80 B022 WAIT FOR CS/80 TAPE DRIVE TO COME READY ------------------------------------------------------------------------------ Contribution Name......(16).: WAITFORCS80 File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. WAITFORCS80.SBMT : 02. WAITFORCS80.FTN : 03. WAITFORCS80.REL : 04. WAITFORCS80.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: Sure Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 20 Dec., 2001 Program Abstract............: WAITFORCS80 waits for a CS/80 tape drive to come up ready, then exits with status indicating whether or not the tape is certified. It is used in CI command files which certify tapes (regardless whether they have been certified before) or wherever an automatic wait-for-ready is needed. Schedule it as follows: RU WAITFORCS80 LU Where LU is the logical unit of the CS/80 tape. On exit, $RETURN1 (PRTN(1)) contains the following: 0 = Tape is not certified. 1 = Tape is certified. See source for more documentation. See also FCS80, which waits for the tape ready and then certifies it if it is not certified. B02301 ------------------------------------------------------------------------------ SPACE B023 DISPLAY DB DATA SET CAPACITIES & UTILIZATION ------------------------------------------------------------------------------ Contribution Name......(16).: SPACE File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. SPACE.SBMT : 02. SPACE.FTN : 03. SPACE.REL : 04. SPACE.LOD Operating System(s)......: RTE-A, not tested on RTE-6/VM Uses hierarchical files?.: Yep Language(s)..............: FTN7X Keywords.................: 1. IMAGE : 2. : 3. : 4. : 5. External Support Req'd...: IMAGE/1000-II Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 01 Jan., 2002 Program Abstract............: SPACE reports the utilization of the space in an IMAGE/1000-II data base. You give it the DB root file descriptor and the lowest level word, and it examines the DB, reporting the capacity and the percent utilization of each data set. The report is immediate, in a format similar to that of the DBSPA utility. SPACE opens the DB in shared read/write mode, but it doesn't actually read or write anything. Rather, it uses DBINF calls to determine the list of data sets, and the capacity and utilization of each. Run SPACE as follows: RU SPACE [DBName [Level [LU]]] Where: DBName is the file descriptor of a data base. If omitted, you will be prompted for it. You can easily change the program to specify a default name and avoid the prompt. Level is a level word giving at least read-access to at least one data set in the data base. If omitted, you will be prompted. You can easily change the program to specify a default level. LU is the LU# of an output device, or the name of a file to which the report will be sent. To examine several data bases at once, simply set up a command file which runs SPACE successively on each data base. SPACE is supplied with CDS ON, but will compile, link, and run just fine with CDS OFF. Link it with at least 2 pages of space above the data partition, preferably 6 for large data bases. See source for more documentation. B02401 ------------------------------------------------------------------------------ DBREPORTERROR B024 REPORT & DESCRIBE IMAGE/1000 ERROR ------------------------------------------------------------------------------ Contribution Name......(16).: DBREPORTERROR File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. DBREPORTERROR.SBMT : 02. DBREPORTERROR.FTN : 03. DBREPORTERROR.REL Operating System(s)......: RTE-A, not tested on RTE-6/VM Uses hierarchical files?.: Yes Language(s)..............: FTN7X Keywords.................: 1. IMAGE : 2. : 3. : 4. : 5. External Support Req'd...: IMAGE/1000 Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 01 Jan., 2002 Program Abstract............: DBREPORTERROR reports an Image/1000 error to LU 1 in a manner similar to FMPREPORTERROR, displaying the error number, the description of that error, and the data base name. Not every error is described, but the most likely ones are. The purpose is to avoid running to the Image/1000 manuals on every error, especially in the field where a manual may not be available. Call this routine whenever an Image call is finished. Call as follows: CALL DBREPORTERROR (ISTAT, DBNAME) Where: ISTAT is the error code. Positive for Image errors, negative for FMP errors. DBNAME is the name of the data base or file, to be reported along with the error description. DBNAME is reported verbatim, so you could also include other information such as the Image call that caused the error. Example: CALL DBREPORTERROR (119, '/PRODUCTION/INVENTORY') The display on LU 1 would be: IMAGE Error 119 Root file not found /PRODUCTION/INVENTORY Example 2: CALL DBREPORTERROR (ISTAT, 'Stmt 300 DBFND') Where ISTAT =107 The display on LU 1 would be: IMAGE Error 107 No master entry with key value Stmt 300 DBFND It's a fairly large subroutine, over 700 words, but it will normally be used with CDS ON. See source for more documentation. B02501 ------------------------------------------------------------------------------ DDESCRIBE B025 RETURN CS/80 DISK SIZE IN $RETURN & $RETURN_S ------------------------------------------------------------------------------ Contribution Name......(16).: DDESCRIBE File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. DDESCRIBE.SBMT : 02. DDESCRIBE.FTN : 03. DDESCRIBE.REL : 04. DDESCRIBE.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: Yes Language(s)..............: FTN7X Keywords.................: 1. : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 01 Jan., 2002 Program Abstract............: DDESCRIBE issues a DESCRIBE command to a CS/80 disk and returns the disk's highest block address as a double integer in $RETURN2 and $RETURN3 (PRTN(2&3)), and in the return string $RETURN_S (EXEC(14)). The returned value represents the size of the physical disk, not just the LU in the schedule call. The purpose is to allow CI or any other application program to know the actual size of the connected disk. Run it as follows: RU, DDESCRIBE, LU Where LU is one of the logicals unit on the physical disk. Values returned in RMPAR are: Word 1 0 if no error 2 \ 3 / Double integer block count 4,5 0 DDESCRIBE uses a subroutine in the $DTCLB library, and must be linked with a reference to it. See source for more documentation. B02601 ------------------------------------------------------------------------------ YYMMDD B026 RETURN DATE TO CI, OPTIONALLY WITH OFFSET ------------------------------------------------------------------------------ Contribution Name......(16).: YYMMDD Title...............(64).: Return Date to CI, Optionally with Offset File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. YYMMDD.SBMT : 02. YYMMDD.FTN : 03. YYMMDD.REL : 04. YYMMDD.LOD : 05. YYMMDD.HLP Operating System(s)......: RTE-A, RTE-6/VM Uses hierarchical files?.: N/A Language(s)..............: FTN7X Keywords.................: 1. DATE : 2. : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 15 January, 2002 Program Abstract............: YYMMDD determines the current date and returns it to the scheduling program in the EXEC 14 return string, in YYMMDD format. Optionally, it can calculate a specified offset (+/- days) from the current date and return that date instead. Run it as follows: RU YYMMDD [+/-offset] Where: +/-offset is the arithmetic operator plus (+) or minus (-), followed by an integer expressing an offset in days. There may be no blanks between the operator and the integer offset. Default is no offset. An integer by itself with no operator is ignored and results in no offset. Example: Today is January 14, 2002, and the runstring is RU, YYMMDD, -14. The returned 6-digit string will be 011231. In CI, the YYMMDD return value is in $RETURN_S. YYMMDD was created to provide CI with a modest ability to manipulate dates. For example, a CI script could schedule YYMMDD to calculate today's date minus 31 days, and then delete all files which match a mask and are that old or older. This script uses the RM program to silently delete all files in /TEMP which were last updated 31 days ago or earlier: YYMMDD, -31 RM, -Q, `/TEMP/@.@.U-`$RETURN_S Install the help file as follows: CO, YYMMDD.HLP, /HELP/YYMMDD. YYMMDD does no error checking or reporting; garbage in, garbage out. The source is also documented. B02701 ------------------------------------------------------------------------------ PORTMON B027 MONITOR I/O PORTS FOR UNAUTHORIZED LOGONS ------------------------------------------------------------------------------ Contribution Name......(16).: PORTMON Title...............(64).: Monitor I/O Ports for Unauthorized Logons File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. PORTMON.SBMT : 02. PORTMON.FTN : 03. PORTMON.REL : 04. PORTMON.LOD : 05. PORTMON.DAT : 06. GETTIME.MAC : 07. GETTIME.REL : 08. STOPTIME.MAC : 09. STOPTIME.REL : 10. SYLIBA.LIB Operating System(s)......: RTE-A only Uses hierarchical files?.: Yes Language(s)..............: FTN7X Keywords.................: 1. LOGON/LOGOFF : 2. MONITOR : 3. SECURITY : 4. TERMINAL : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 19 March, 2002 Program Abstract............: PORTMON monitors a specified list of terminal logical units, to be sure that no unauthorized user logs on there. Each LU in the list can have its own list of authorized user names, normally a small subset of the actual usernames on the system. PORTMON lurks in the system session, watching all of the ports in its list. Its name is converted to lower case, to make it hard for even a superuser to shut it off. When an unauthorized user does log on, PORTMON immediately and summarily deletes the user's session, reporting that to the system console and to the system error log file. It also disables the port LU for one minute (a changeable parameter) so that the port will appear to be dead for that time. PORTMON was initially developed to protect the dialup ports on a machine which had many users. When a user left the organization the system manager did not necessarily know it, and the user's account was not always deleted. Neither did the system manager want to implement a practice of regular password changes, because of the large number of users. Further, most users did not need dialup access anyway. With PORTMON, the dialup ports are protected from all but the very few users who really need to have dialup access. PORTMON could also be used in applications with different groups of users, where some users should not be allowed to log on at other users' terminals. For example, the system console might be protected from all users except the system manager. PORTMON gives no preference to superusers; an unauthorized superuser will be denied access just as a normal user would be. Configuration is done in the text file /USERS/PORTMON.DAT. PORTMON was written for a system with unsophisticated users. Its weakest point is that PORTMON.DAT configuration file, which is accessible to any superuser. Indeed, a clever superuser could figure out how that file is used and modify it, thereby nullifying the security provided by PORTMON. However, a clever system manager can hide or protect the file if more security is required. For example, the contents of the file could be incorporated right into the PORTMON.FTN source, the program compiled and linked, and then the source moved off the computer to a secure location. PORTMON does not add any extra levels of usernames or passwords. It merely limits the number of usernames with access to the computer at the most sensitive ports. As supplied, PORTMON runs every 10 seconds, which is frequent enough to achieve the desired result. At that setting, on an A400 CPU, PORTMON consumes about 0.1% (one tenth of one percent) of the total available CPU time. PORTMON is an adaptation of the ICT program AUTOLOGOFF, a part of the SYLOG package. Consequently, it uses a few calls from the library SYLIBA.LIB. That relocatable library is included here. The sources are omitted, however, not because they have any real value but because they are quite numerous and get into really systemy stuff. If you need something in particular, give me a call. See source for more documentation, particularly regarding the PORTMON.DAT file. B02801 ------------------------------------------------------------------------------ USERIDTABLE B028 DISPLAY THE RTE-A USERID TABLE IN DETAIL ------------------------------------------------------------------------------ Contribution Name......(16).: USERIDTABLE Title...............(64).: Display the RTE-A User ID Table in Detail File Names...............: 00. Rename Transfer File (INTEREX supplied) : 01. USERIDTABLE.SBMT : 02. USERIDTABLE.FTN : 03. USERIDTABLE.REL : 04. USERIDTABLE.LOD Operating System(s)......: RTE-A only Uses hierarchical files?.: N/A Language(s)..............: FTN7X Keywords.................: 1. ACCOUNTS : 2. LOGON/LOGOFF : 3. : 4. : 5. External Support Req'd...: Reason if resubmission...: Contributor's Name..........: Donald A. Wright Company.......: Interactive Computer Technology Street........: 2069 Lake Elmo Avenue North City..........: Lake Elmo State.........: MN Zip Code......: 55042 Country.......: USA Phone Number..: 651/770-3728 eMail.........: Don@DonWright.com Date..........: 28 Jan., 2002 Program Abstract............: USERIDTABLE examines the requested session table entries and displays most of the nuts and bolts information in those entries. It is more of a diagnostic tool than a display of user activity. See the RTE-A System Design Manual, Page 11-32 (7th Edition, Apr. 1995, Rev. 6.2) for a full description of the display. Schedule USERIDTABLE as follows: RU, USERIDTABLE [ALL] [L1 [,L2 ]] Where: 'ALL' means display all session table entries, empty or not. L1 is the starting LU (session number) to be displayed. In this mode only entries in use will be displayed. L2 is the ending LU to be displayed. If not supplied, only the L1 session will be displayed. L1 and L2 have no meaning if 'ALL' is specified. Example display on system with user DON at three terminals: CI> useridtable all Words per table entry: 22, Number of currently logged on users: 3 ENT SESSN USERNAME S SEQ STAT L PROGS UID CPU SESPR GID CAP 0 0 SYSTEM 1 0 3 0 17 2 141976 2 31 1 70 DON 0 13 2 0 2 5 3717 CI 0 20 2 90 DON 0 9 2 0 2 5 55283 CI 0 20 3 103 DON 0 39 2 0 1 5 3 CI 0 20 4 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 CI> Source is documented. B02901 ------------------------------------------------------------------------------ DISKCOPY B029 COPY'S DISK LU TO DISK LU ------------------------------------------------------------------------------ Contribution Name...........: DISKCOPY Title....................: Copy's disk LU to disk LU File Names...............:00. Rename Transfer File :01. diskcopy.sbmt :02. diskcopy.ftn :03. diskcopy.rel Operating System.........: RTE-A Uses hierarchical files?.: Language(s)..............: Ftn7x Keywords.................: 1.DISC : 2.COPY : 3.BACKUP External Support Req'd...: No If Re-submission, Reason.: Contributor's Name..........: Don Pottenger Company.......: hp Street........: 11000 Wolfe Rd. : City..........: Cupertino State.........: CA Country.......: USA Zip Code......: 95014 Phone Number..: Program Abstract............: This program does a disk track to track copy using VMAIO reading and writing 4 tracks at a time. It does not use FMP and the contents of the disks are not examined. Note: If the destination disk LU is larger then the source, the copy will proceed, however, D.RTR will not be able to mount the copied volume because some FMP file structures must be on the last track of the LU. See comments for other "features". Additional Documentation....: source file B03001 ------------------------------------------------------------------------------ DXREF B030 DXREF ------------------------------------------------------------------------------ Contribution Name...........: DXREF Title....................: Relocatable Cross-Referencer and Searcher File Names...............:00. Rename Transfer File :01. DXREF.SBMT Submission file :02 DXREF.FTN :03 DXREF.LOD :04 DXREF.REL :05 MAKEFILE :06 QSORT.PAS :07 QSORT.REL :08 NAMCK.REL :09 NAMCK.MAC :10 %INITS :11 %ISOL8 :12 %NAMCK :13 &INITS :14 &ISOL8 :15 DXREF.HLP Operating System.........: 6/VM, A Language(s)..............: FTN7X, ASMB, Pascal Keywords.................: 1. Cross Reference : 2. Library : 3. Relocatable : 4. Subroutine : 5. Entry Points External Support Req'd...: (only if recompiling) $PLIB If Re-submission, Reason.: Many changes since first submission. New file system support. New relocatable record support among other improvements. Contributor's Name..........: Don Pottenger Company.......: Hewlett-Packard Street........: Data Systems Division : 11000 Wolfe Road City..........: Cupertino State.........: CA Country.......: USA Zip Code......: 95014 Phone Number..: Program Abstract............: This submission is a part of HP GJOB/1000. DXREF, the SSK utility, allows you to find out many things about a relocatable file. It can display the NAM record (including the type, priority, and comment field), whether the module is an extended record (it's marked with a * if it is), and its entry points and externals. You can also search for an entry point or external using a filter similar to DLX's - and + file name filter. Its input can be one file or (using the BA batch option) many files; thus a mass search of several relocatables and libraries, scanning for an entry point, is possible. Additional Documentation....: In the file DXREF.HLP Disclaimer: The documentation has not been updated to reflect new file system terminology but still refers to FMGR NAMR file name and "cartridge reference numbers" (CRNs) etc. Also, the batch file capibilities of DXREF have problems. B03101 ------------------------------------------------------------------------------ GLOBALSPACE B031 GLOBALSPACE ------------------------------------------------------------------------------ Contribution Name...........: GLOBALSPACE Title....................: Global directory disk space reporting. File Names...............:00. Rename Transfer File (Interex-supplied) :01. GLOBALSPACE.SBMT :02. DISCSPACE.FTN :03. DISCSPACE.REL :04. GLOBALSPACE.FTN :05. GLOBALSPACE.LOD :06. GLOBALSPACE.REL :07. MAKEFILE Operating System(s)......: RTE-A, RTE-6/VM Language(s)..............: FTN7X Keywords.................: 1. Disc : 2. Management : 3. Directory External Support Req'd...: If Re-submission, Reason.: New version Contributor's Name..........: Don Pottenger Company.......: Hewlett Packard Street........: 11000 Wolfe Rd. City..........: Cupertino State.........: CA Country.......: USA Zip Code......: 95014 Phone Number..: Fax Number....: E-mail address: don_pottenger@hp.com Contribution Abstract.......: Reports disk space utilization under global directories on an LU by LU basis. Requires 6.1 rev of FOWN (which it calls). RU,GLOBALSPACE,?? shows help. Note: This is an updated version of the same program that was submitted in 1997 (Release 3735). This version added the disk size reporting options for Kbytes and Megabytes. B03201 ----------------------------------------------------------------------------- QXREF B032 EMA QXREF ----------------------------------------------------------------------------- Contribution Name...........: QXREF Title....................: EMA QXREF File Names...............: 0. Rename transfer file : 1. QXREF.SBMT - this file : 2. QXREF.FTN : 3. QXREF.REL : 4. QXREF.LOD Operating System(s)......: RTE-6, RTE-A Language(s)..............: FTN7X Keywords.................: 1. CROSS-REFERENCE : 2. RELOCATABLE External Support Req'd...: If Re-submission, Reason.: Resubmission of 2625 QXREF, K136 by Don Pottenger Contributor's Name..........: Don Pottenger Company.......: Hewlett-Packard Street........: 11000 Wolfe Rd. City..........: Cupertino State.........: CA Country.......: USA Zip Code......: 95014 Phone Number..: Program Abstract............: This program reads relocatable files and prints out information about the modules found in them. It tells which module calls which module, which file each module is found in, and more. This program greatly eases the pain of maintaining a large program (we found it essential when we modified the program SKETCH), libraries, or any large programming project. Additional Documentation....: This update fixes some looping problems with multilevel references and large numbers of variables (moved to EMA). Works with CDS variables now. Other minor changes. B03301 ------------------------------------------------------------------------------ WEEKDATE B033 WEEKDATE ------------------------------------------------------------------------------ Contribution Name...........: WEEKDATE Title....................: Calculate ISO 8601 week number File Names...............:00. Rename Transfer File :01. weekdate.sbmt :02. weekdate.ftn :03. weekdate.rel Operating System.........: RTE-A Uses hierarchical files?.: Language(s)..............: Ftn7x Keywords.................: 1.DATE : 2.CALENDAR : 3.TIME External Support Req'd...: No If Re-submission, Reason.: Contributor's Name..........: Don Pottenger Company.......: hp Street........: 11000 Wolfe Rd. : City..........: Cupertino State.........: CA Country.......: USA Zip Code......: 95014 Phone Number..: Program Abstract............: WeekDate returns year, week number, and day of the week for the current system time/date. Usage: ru,weekdate Return parameters: r1 = 0 r2 = year (1970:2038) r3 = week # (1:53) r4 = day of week (1:7) 1 = Monday Return String: 'yyyy-Www-d' Where: yyyy - year ww - week number d - day of week (ISO 8601 specifies that Week 01 of the year is the week containing the first Thursday.) A special thanks to Rick McCartywho provided the algorithm used in this program. ( see http://www.personal.ecu.edu/mccartyr/ISOwdALG.txt ) His ISO Week Date Calendar can be found at: http://www.personal.ecu.edu/mccartyr/isowdcal.html B03401 ------------------------------------------------------------------------------ AB2MI B034 AB2MI ------------------------------------------------------------------------------ Contribution Name...........: AB2MI Title....................: Absolute to memory image File Names...............:00. Rename Transfer File :01. ab2mi.sbmt :02. ab2mi.ftn :03. ab2mi.ftni Operating System.........: RTE-A Uses hierarchical files?.: Language(s)..............: Ftn7x Keywords.................: 1.BINARY : 2.BOOT-UP External Support Req'd...: No If Re-submission, Reason.: Contributor's Name..........: Alan Tibbetts Company.......: Strobe Data, Inc. Street........: 8405 165th Ave. NE : City..........: Redmond State.........: WA Country.......: USA Zip Code......: 98052-3913 Phone Number..: 425-861-4940 Program Abstract............: * The basic idea of this program is that it emulates the procedure of * loading paper tapes into core memory. A memory image array of 32KW * is first initialized to zeroes. If the specified output file exists, * the current contents are then read into the memory image. Next, the * specified input file is read and stored into the memory image. The * final step is to write the revised memory image to the output file. * The default output file size is 256 blocks (32k words). * For use in creating the memory image of the VCP code, two optional * parameters allow the user to emit only a portion of the memory image * to the output file. Additional Documentation....: see the source code