RSX/IAS SIG Tape Distribution - Fall 1988 =========================================== This is the RSX/IAS SIG Symposium Tape from the Fall 1988 DECUS Symposium at Anaheim. The tape contains material submitted by the user community for the tape at that meeting. The programs on this tape are from user submissions. The DECUS staff, the RSX & IAS SIG staffs, and DEC are all in complete ignorance of the contents of the tapes. No warranty of any kind is implied in the distribution of these tapes. The programs may or may not be well documented, they may or may not work, they may even crash your system. If you have a problem with the contents of the tape, contact the author of the program. Do not contact DECUS, DEC, or the RSX or IAS SIGs. The tape contains about 727 files requiring 11,000 blocks of disk space. This will fit on a 600 foot reel of tape in BRU format at 1600 BPI, and so is being distributed in this way. To simplify distribution and production, the tape is a single BRU container file followed (for the LUG distribution only) by several extra files. Directory [300,1] contains the files documenting the contents of the tape. The following files are present: RSX88BTPE.DOC contains an abstract of the contents of the tape by UIC. ALLREADME.88B contains a concatenated list of all the README files on the tape. RSX88BDIR.LIS contains a directory of all the files on the tape (BRU does not produce nice directories). This is a brief listing with UICs and filenames only for space reasons. SUBMIT.DOC contains guidelines for submissions to the RSX/IAS Sig Tape collection. This is MUST reading for everyone who desires to submit a program to the SIG tape. BEGIN88B.DOC has a copy of this text. UICSET88B.CMD contains the UFD commands to create all the needed UIC's on a device whose name is asked for in the command file. Edit it to match your needs before using BRU to extract the tape contents. A word of caution: under at least some circumstances, 11M V4.0 BRU's /UFD switch creates directories even when it doesn't put anything in them. Glenn C. Everhart RSX/IAS SIG Tape Copy Coordinator GE Aerospace Technology Operations GE Corp. Bldg. 100, Room U3040 230 Goddard Blvd. King of Prussia, PA 19406 215-354-7610 Everhart%Arisia.decnet@GE-CRD.arpa Everhart@Arisia.GE.com Fall 1988 RSX SIG TAPE =================================== MD1:[301221]README.RNO;1 DR-11W DRIVER NORMAN N. RODEWALD PACIFIC MISSILE TEST CENTER CODE 1056 (805) 989-8804 POINT MUGU, CALIFORNIA 93042 This driver is designed to support a DR-11W under RSX-11M+ version 3.0 and later interfaced to an ACROAMATICS 2110 Telemetry data processor (TDP) system. The design of this driver follows the VAX/VMS XA driver in direct memory access (DMA) mode as closely as possible. This was done to ease compatibility of software access to the telemetry sys- tem, and its always nice to have a structure to follow. The driver accepts 4 general functions, read logical block, write logical block, set characteristics, and sense characteristics. In addition, the read and write accept subfunction codes reset, set function bits, and set time out. The device is flagged as a record structured sequen- tial device in the driver unit control block (UCB). This has the side effect of allowing use of read/write virtual, but the operating system will convert this to read/write logical and strip off all subfunction bits. The read and write logical functions are used to transfer data via a dma channel between the external device and the host PDP-11. The transfers can have either a reset or set function subfunction as required, and a new time out set if required. The processing of the subfunctions is per- formed prior to setting up the DMA channel, which would al- low for most hardware handshake protocols to be fulfilled. The time out processing is performed just before setting the go bit to start the transfer. The transfer complete is sig- nalled by an interrupt, which can come from either a word count register overflow or any of the exception interrupts. The transfer complete is signalled by placing the number of bytes transferred in the second word of the input output status block (IOSB) and success (is.suc) in the first word of the IOSB. A device time out will place a time out error code (ie.tmo) in the frist word of the IOSB and the CSR in the second word. The driver allocates and releases unibus mapping regis- ters (UMR's) for each data transfer. If a higher speed transfer is required, the driver could be modified to accept device allocation and permanently allocate UMR's at that time. The interface to the TDP has a 4K word first in first out (FIFO) buffer which allows extra processing time between transfers before a data overrun will occur. Since is is possible for rogue devices to generate spurious interrupts, or as in this device's case, to generate a DMA done interrupt coincident with a frame done interrupt when the requested transfer count exactly equals a telemetry frame. In this case, a hardware race will occur in which the ATTENTION interrupt and the DMA done interrupt will both be pending. To assure correct handling of all in- terrupts, all transfers are flagged with an interrupt ex- pected in the UCB and the interrupt handler clears the flag. If an interrupt occurs when the flag is clear, the interrupt is dismissed. All access to the interrupt expected flag is done at hardware priority (PR5) to assure proper synchroni- zation. All setting of the CSR is also done at device priority to assure stability. For non-DMA operations, the sense and set characteris- tics functions are available. For a Set characteristic (io.stc) function, the user parameter (first word of the I/O parameter block) has all but the lower three bits cleared, and these bits are then left shifted to the control bit positions and or'ed into the CSR. For a sense characteris- tics, the CSR is merely read. In both cases the entire CSR is returned in the second word of the IOSB. No interrupt processing is expected with these functions, and should one occur, it would be dismissed as an unexpected interrupt. The following code fragments shows a typical MACRO-11 interface to the QA driver. The setting up of the subfunc- tion codes is as follows: 1. IO.SFT=2 ;set function subfunction 2. IO.RES=4 ;reset subfunction 3. IO.STO=10 ;set time out subfunction The access to the driver is shown as follows: 1. Assign logical unit: alun$s #tdplun,#"QA,0 ; bcc setasn ;ok ? mov $dsw,r0 ;get status return return 2. Sense characteristics qiow$s #io.sec,#tdplun,#tdpflg,,#driosb,, bcc 15$ ;ok? mov $dsw,r0 return 15$: tstb driosb+1 ;check i/o bpl 20$ ;if plus, no error mov driosb,r0 ;and io status return 3. Write logical block, set function: wrset: mov r2,incnt ;set character count qiow$s #io.wlb!io.sft,#tdplun,#tdpflg,,#driosb,,<#inbuf,in cnt,#wrsetup> bcc 10$ ;ok ? mov $dsw,ro return 10$: tstb driosb+1 ;transfer ok? bmi 20$ ;minus, no cmp driosb+2,incnt ;how many bytes The read logical and set characteristics are are very similar to the write logical and sense characteristic exam- ples. The use of a new time out would be similar to the set function subfunction, being or'ed into the function code, and the new time out (in seconds) as the fourth element of the device dependant parameters. Two command files (asm.cmd and bld.cmd) are used to as- semble and build the driver. These files assume the source code is in the named directory [qadrv]. The driver map is placed in UIC [1,34] and the driver and symbol table in UIC [1,54]. The command file QA.CMD will load the driver at the top of the GEN partition and configure online the controller (QAA) and the unit (QA0). ============================================================================ MD1:[307120]README.1ST;3 .; .; This is the BRUTK50 command file which allows users and the system manager .; to use the BRU utility for backing up and restoring files to/from a TK50 .; magnetic tape drive. Note that this procedure is based on a paper in the .; January 1988, page 70, issue of the DEC Professional. .; .; Although the original procedure was developed for an RSX system, it is easily .; modifiable to suit your own purposes (RSX-11M+, other devices, batch backups .; at night, etc.). The original routine, BRUWORK.CMD, keyed in from the DEC .; Professional is included in this directory. .; .; Command files called from BRUTK50 are: .; .; None .; .; Programs or utilities this routine is dependent on: .; .; BRU, SRD .; .; Data files this routine is dependent on: .; .; [1,54]CLEAR.DAT (Homes cursor and clears screen.) .; [1,54]BELL.DAT (Rings bell on terminal when operation done.) .; [3,54]BACKUP.LOG (Log of incremental backup sets, date, time, etc.) .; .; The following files are also included in this directory: .; .; BRUWORK.CMD (The original RSX version keyed in from DEC Professional) .; README.1st (This file) .; BRUTK50.CMD (Version of BRUWORK.CMD modified for M+) .; .; Created by Doug Sasseen on 5-10-88. .; Revised by Doug Sasseen on 6-24-88 from RSX-11M to RSX-11M-Plus. .; Edited by Doug Sasseen on 9-29-88. .; National Food Laboratory (NFL) .; a.k.a. National Food Processors Association .; 6363 Clark Avenue .; Dublin, CA 94568 .; (415)828-1440 .; ============================================================================ MD1:[346100]README.1ST;1 Call this the last roundup of the RWS brand. For a long time, I have meaning to submit the following to the RSX SIG tape. I just never seem to get around to writing the documentation. So I hope you like reading listings. [346,102] CCS CCS is my version of CCL. It has some good features. All parsing is done using TPARS so it is easy to extend or change (at least for me as I know TPARS). It overcomes the 80 character command line problem on RSX-11M systems. The best feature is a table driven search list for the verb. See IPATHS. To add your own internal commands, see ITABLE. [346,103] Directive Tester This is the sources to test the speed of all RSX directives (as per one of my DEC/Professional articles). [346,104] QC: This is the neatest device driver I have every written. QC implements a software Ethernet. Each logical unit you assign is the equivalent of an Ethernet controller. You can send messages from point-to-point (lun-to-lun) or use a multicast address and send a single message to multiple tasks. It is easy to debug applications as promiscious mode is support so you can watch all messages. [346,105] 32-bit Dynamic Region This is a package which implements a dynamic pool, but using 32-bit addressing and PLAS regions. You can also use it to simply manage a large PLAS region as a set of address start from 0. [346,106] Error Handling I submit this a long time ago (1979) but still find it useful today so am putting back once again. This package uses [1,2]QIOSYM.TXT to put out error messages for directive and I/O errors. [346,107] Word Watching One common type of error is something is walking on some memory location and you cannot find who (happens often in Fortran commons for instance). This is a package to find such beast. The DEBCxx routines use T-bit trap to get after each instruction execution and can be started and stopped by subroutine calls. The DEBXxx also uses T-bit but starts as a result of the /DA switch. DEBNxx is a replacement for the $NAM routine so the check is made on each subroutine entry and exit (less overhead that other choices). The DECPxx give you a variety of ways to print results. [346,110] DEC/Professional Articles These are the drafts of my DEC/Profesional column. ============================================================================ MD1:[351144]README.1ST;1 JULIA: Compute Mandelbrot and Julia sets Author: T. R. Wyant III, E. I. DuPont de Nemours, Richmond, VA. Operating System: RSX, VMS, others? Language: Fortran-77/VAX FORTRAN Memory Required: VMS: 7KB RSX: 48KB (no resident libraries) Other Hardware Required: Sixel graphics device Keywords: Graphics, Mathematical Abstract: This program is a "generic" FORTRAN-77 program to plot Mandelbrot and Julia sets on any device that supports sixel graphics. It compiles under VAX FORTRAN and FORTRAN 77/RSX. Images have been produced on LA50 and LA75 printers, and VT330, VT340 screens, and on at least one Macintosh VT240 emulator. ============================================================================ MD1:[351145]README.1ST;1 This directory contains three papers that were to be presented at the Fall 1988 DECUS U.S. Symposium - A Practical Introduction to RMS (RX026) RMS Utilities for non-RMS users (RX027) Programming in the RSX Indirect Command Language (RX028) Also included are the command files from which the examples in RX028 came, and another paper that is not scheduled for presentation at this symposium, but which came along for the ride: Introduction to the RSX, P/OS, and RT Indirect Command File Processor (RX000) The files in this directory include: README .1ST;1 3./3. This file BRU .CMD;1 100./100. BRU Preprocessor (rewritten) CRASHDUMP.CMD;1 22./22. CDA preprocessor PRN .CMD;1 43./43. Printer port handler READ .CMD;1 2./2. Builder for ad-hoc indexed read READ .FTN;1 20./20. Source for ad-hoc indexed read RX000 .RNO;1 89./89. RUNOFF source for RX000 RX000 .TXT;1 52./52. Slides for RX000 RX026 .RNO;1 34./34. RUNOFF source for RX026 RX027 .RNO;1 21./21. RUNOFF source for RX027 RX028 .RNO;1 111./111. RUNOFF source for RX028 RX028 .TXT;1 57./57. Slides for (part of) RX028 SYMDMP .CMD;1 15./15. .STB file dumber UPCASE .FTN;1 3./3. Uppercase conversion for READ UPS .CMD;1 26./26. MAIL large numbers of files 15. Files selected 15. Files total Selected blocks used/allocated: 598./598. File sizes are subject to change, as the files themselves are subject to revision. ============================================================================ MD1:[354120]README.1ST;1 Uniform Random Numbers and Symbols command file 10 Files: ReadMe.1st (this file) InitU16.ftn Unifrm16.ftn | InitU32.ftn Unifrm32.ftn | random numbers Initu.for Unifrm.for | Symbols.cmd Symbols.com | symbols Symbols.txt | The random number routines are FORTRAN versions of combined random number generators recommended by Pierre L'Ecuyer (Efficient and Portable Combined Random Number Generators, Communications of the ACM, Vol. 31, No. 6 (June 1988), 742-749, 774). Three implementations are given: two for PDP-11's and one for VAXes. For PDP-11's, use the two '*16.ftn' files for short (16-bit) integers (especially if you don't have F77), or the two '*32.ftn' files for long (32-bit) integers (if you have F77). For VAXes, use the two '*.for' files. Note that the only real difference between the '*32.ftn' files and the '*.for' files is that the latter are specifically written for VAX FORTRAN: there is no difference in the generation formulae. Therefore, if you want a 16-bit generator for your VAX, you can use the '*16.ftn' files. The approximate period length for each generator is noted in the 'Unifrm*.*' files. The 'symbols.cmd' file is a PDP-11 command file skeleton that provides a large number of symbols for use by RSX Indirect (@). For PDP-11's, you would insert your command file instructions between the symbol definitions section and the subroutines section (near the end of the file). This grew from a VAX version that provided row and column positioning escape sequences for VT1xx, VT2xx, and VT3xx terminals, plus a few other video characteristics like bold and reverse video. I decided to make a small file for PDP-11's, so I could have some of the more common escape sequences, without using up too much symbol table space or taking too much time. Well, did I get a surprise!! It turns out that if you built the large (ICP) version of Indirect on RSX, you have gobs of symbol table space. If you use one of the J-11 CPU's (KDJ11-xx series), it doesn't take much time to define all those symbols either! So, this file now has symbols for 24 rows, 80 columns, plus most of the VT2xx escape sequences (video characteristics, selective erase, etc.). As it is right now, the symbols take only about 1/3 of the RSX ICP symbol table, and it takes about 2-3 seconds to run through the definitions. The 'symbols.cmd' file originated at the Wichita Farm Credit Services as 'form_symbols.com'. I have followed their standard (which I believe is a VERY GOOD one) for command files: "Command files shall contain NO non-printable characters." This is quite easy for VMS DCL, but is somewhat of a pain for RSX folks. (If you complain about VMS DCL, read 'symbols.txt' and 'symbols.cmd' and you will probably decide that things aren't really so bad after all.) For you VAX folks, there are two extra files: 'symbols.txt' explains how one would convert 'symbols.cmd' to a VMS DCL command file. 'symbols.com' is all of 'symbols.cmd'. I have not had an opportunity to test this file, but if there are any problems, they should be minor. James Fullerton Institute of Logopedics 2400 Jardine Drive Wichita, KS 67219 ============================================================================ MD1:[370120]README.1ST;3 Utilities Kelvin Smith Financial Computer Systems, Inc. 1 Strawberry Hill Ct. Stamford, CT 06902 (203) 357-0504 This submission contains TECO source (.TES), TECO compiled (.TEC), and documentation (.DOC) for the following: BSLASH - Put all backslashes in a BASIC program at the beginning of a line. This can be useful for setting up a program to run STRIP on it. This macro does not have a separate documentation file. Basic documentation is found at the beginning of the source (.TES) version. CASE - Convert lower case to upper case or vice versa in an entire file, not changing letters inside quoted strings or in comments (delimited by exclamation points). This is primarily intended for working on programs; thus, quoted strings must terminate on the same physical line and comments are held to terminate at the end of a physical line if not explicitly terminated by a second exclamation point. Optionally, you can also change colons to backslashes (for changing from old versions of BASIC to current VAX BASIC/BASIC-PLUS-2 standards). Note that you don't want to use this feature if you have statement labels. This macro does not have a separate documentation file. Basic documentation is found at the beginning of the source (.TES) version. RENAME - Rename variables in a BASIC program (including hard-to-find single letter variables). RENAME works properly on extend mode BASIC-PLUS, BASIC-PLUS-2, and VAX BASIC programs. STRIP - Remove unnecessary backslashes and ampersands from BASIC programs (primarily for converting from BASIC-PLUS-2 V1.6 to BP2 V2.x). This program was previously published in the December 1984 issue, Volume 6, Number 6, of the VAX/RSTS Professional (now VAX Professional); it and the documentation have been slightly updated. TECOIN - TECO Initialization: Documentation on how TECO on RSTS and VMS gets started, and an example of how to customize the initialization process. The example includes small macros to: delete to the n-th occurrence of a given character; backup a file being edited; exit from TECO marking the position in the file for future return; delete a section of text, saving the deleted text in a q-register; set flags and adjust the file specification on entry to TECO; specify a series of commands at DCL/CCL level to be executed within TECO. This program and documentation originally appeared in the January 1988 issue of Leverage, the newsletter of the Languages & Tools SIG. The compiled TECO program is called TECO.INI, rather than TECOIN.TEC, since it would normally be used with that name (see the documentation for details). This submission also contains source (.B2S) and documentation (.DOC) for the following BASIC-PLUS-2 program: BDUMP - A binary file dumper, with options to display ASCII values in octal or decimal by byte or by word. This program contains a highly optimized octal word formatter. The program can be easily altered to run under VAX BASIC (V2 or higher) or RSX BASIC-PLUS-2. All programs were originally designed and written for RSTS. They may or may not be as usable under other operating systems. ============================================================================ MD1:[373201]READ1STOF.ALL;9 The Sira RSX Library Kit ------------------------ Submitted by: Chris Doran Date: June 1987 Sira Ltd., South Hill, Chislehurst, Kent, BR7 5EH, England. Tel: +44 1 467 2636, Telex: 896649, FAX: +44 1 467 6515 This kit contains assorted utilities (usually for RSX-11M) which have been written at Sira, extracted from SIG tapes, or obtained from the DECUS program library (in the last two cases, probably with local bug-fixes and enhancements). Some of this will reach the DECUS library one day, when I have time (sic!). As it is, it has been thrown together rapidly, without any check for completeness. The only alternative, due to pressure of work, was not to do it at all. Let me know if anything is missing. This software is provided under the standard all-exclusive terms and conditions for free software:- If it doesn't function, crashes your system, erases your life's work, deletes YOUR personal entry in the payroll database, or otherwise behaves obnoxiously -- TOUGH!!!! I.e. Sira offers no guarantee that any of it works as documented (or at all), takes no responsibility whatever for any damage caused by its use or misuse, and does not provide a free software maintenance service! However, I would like to hear about bugs (bug-fixes are better) and suggested or implemented enhancements. Listings or machine-readable patches as SLP correction files (with checksums, please) are appreciated. As of July 1985, we are "going VAX", so the amount of support for these RSX utilities is questionable. Some work in compatibility mode, and I may be able to keep them going. Some don't, or aren't necessary, and their continuation is doubtful. Many of the programs have been specifically tailored for the Sira RSX-11M system. Some MACRO sources have been conditionalised for use with RSXMC.MAC defined symbols, but this is not true in every case, and the options that do not apply to us have rarely been tested. Just to help, a lot of the symbols that used to be in RSX-11M's RSXMC.MAC have dropped out of the M-PLUS version, and may have to be put back, or defaulted on R$$MPL. I have added M$$CIS, which should be defined if you have CIS. As a guide, we have a PDP11/44 with EIS, CIS (KE-44A), and floating-point processor (FP-11F), and run RSX-11M+ V2.1. Most tasks are linked to DEC's supervisor-mode FCSRES, and ANSI-specific FCS routines are in LB:[1,1]ANSLIB.OLB. The full-duplex terminal driver is used. Locally-written libraries are in [200,201] on pseudo-device LY:. Certain tasks use libraries PIPUTL.OLB and/or MCR.OLB from [1,24] on the RSX distribution kit, which must be mounted and assigned as pseudo-device LL:. Documentation sources (.RNOs) are often specific to Sira, and we have an extended RUNOFF, so watch out for .CPI, .IF, .PROP, .EPR, and other directives which the DECUS library RUNOFF will fail on). Read the README.1ST and .RNO/.DOC files in each directory for further details on everything. Best of luck, Chris Doran, Computer Manager, Index ----- This is a complete index to the Sira give-away kit, which takes at least an RL01. If you supplied me with anything smaller, then you haven't got all of it. Let me know what else you need. [Editor's note: To get the UICs to fit in the RSX US SIG tape scheme, they are being renamed to [373,2*]. Original directories are listed here after the new ones. ] New Old [373,201] [1,1] Floating-point ODT, and RUNMAC -- $R and $M versions of executive macros. [373,202] [1,2] Some extra HELP files. [373,203] [1,10] Miscellaneous fixes and utilities for Whitesmiths' C/Pascal. [373,204] [1,24] Some routines used in several places -- wildcard handling, convert spaces to tabs. [373,205] [3,24] HPX -- transfers files to/from the screen and tape/printer devices of the Hewlett-Packard 2648a terminal. [373,206] [4,24] Paper tape INPut and PUNch utilities. [373,207] [5,1] A Catchall task, including auto-install facilities. [373,210] [5,5] Machine-writable Readers Comment and SIR forms. [373,211] [5,24] SPELLing checker for RSX and RT-11. [373,212] [6,1] Some disk recovery programs. [373,213] [6,2] ANSI magtape recovery program. [373,214] [6,3] Richard Kirkman's UNDelete utility. [373,215] [6,24] PPP -- paper tape punch despooler. [373,216] [7,16] BRUDIR -- extended BRU tape directory. [373,217] [7,24] Sira version of LISTRS, which appears on several DECUS Sig tapes. This one has some extra features [373,220] [10,24] MAR -- experimental assembler taking (a subset of) VAX MACRO code, but producing PDP-11 object code. [373,221] [110,10] ORCAM -- extended and debugged version. [373,222] [200,201] RSX-11M versions of RT-11 Syslib string and multiple-precision integer routines. [373,223] [200,202] 3D plotting routines. [373,224] [200,203] Command files and .EDT INI files. [373,225] [220,10] Matrix, system call, and trace routines for BASIC-11. [373,226] [240,13] RTSIM. RT-11-type EMT handler which can be build into a task made from object files assembled as for RT-11. Poor man's RTEM, developed for testing long before RTEM was available. [373,227] [307,20] Hints on reducing the size of FORTRAN programs. [373,230] [344,43] Sira version of GREP, again extended from the versions on the DECUS tapes. [373,231] [370,150] HFE -- extended microprocessor hexadecimal file editor (Decus 11-480). ============================================================================