README.md
THIS UIC CONTAINS MISCELLANEOUS RSX-11M TASKS THAT MAY BE OF SOME GENERAL
USEFULNESS. INCLUDED ARE:
CATEST -- A CAMAC TEST TASK DESIGNED FOR USE WITH ANY DRIVER COMPATIBLE
WITH PHIL CANNON'S 3912/3992 DRIVER FOR RSX-11M. THIS TASK
ALLOWS A LIST OF COMMANDS TO BE ENTERED AND EXECUTED, AND
PROVIDES ACCESS TO THE DRIVER'S LAM HANDLING, LOOPING, AND
CRATE CHANGE COMMANDS, AS WELL AS PROVIDING FOR THE SAVING AND
RESTORING OF COMMAND LISTS, AND PRODUCING A HARDCOPY RECORD OF
THE TEST RUN (BY CREATING A LISTING FILE). CATEST.TXT IS A
BRIEF COMMAND SUMMARY.
DNDISPLAY -- A PROGRAM THAT BREAKS UP THE DISK REGISTERS FOR THE XYLOGICS
DISK CONTROLLER INTO INDIVIDUAL FIELDS, FOR USE IN EXAMINING
LOGS OF DISK ERRORS.
LOGLST -- A PROGRAM THAT CAN BE USED IN CONJUNCTION WITH JIM DOWNWARD'S
SYSLOG PACKAGE, TO PRINT OUT THE CONTENTS OF THE LOG SORTED BY
ENTRY TYPE, WITH USER NAMES INSTEAD OF ACCOUNT NUMBERS.
NSPOOL -- A SMALL TASK THAT ENABLES UNPRIVILEGED USERS TO STOP AND START
THE SPOOLER. THIS TASK ACCEPTS A "SEND DATA" MESSAGE FROM ANY
TASK, AND RESPONDS TO THE COMMAND IN THE MESSAGE BY SPAWNING
COMMANDS THAT START OR STOP THE PRINT SPOOLER. IT THEN
UNSTOPS THE SENDING TASK, WHICH CAN GO AHEAD AND USE THE
PRINTER (E.G. FOR PLOTTING OR OTHER DIRECT OPERATIONS).
THE ONLY REQUIREMENT IS THAT NSPOOL RUN ON A LOGGED-ON AND
PRIVILEGED TERMINAL (IDEALLY ON CO:).
ANOTHER TASK, "UNSPOOL", IS INCLUDED. THIS TASK SENDS THE
START AND STOP SPOOLER MESSAGES TO NSPOOL, AND MAY BE USED
TO IMPLEMENT START/STOP SPOOLER CCL COMMANDS FOR UNPRIVILEGED
USERS.
NSPOOL ALSO CAUSES A "TIME" COMMAND TO EXECUTE ON CO:
EVERY NIGHT AT MIDNIGHT, THUS MARKING THE DATE WHEN THE
CONSOLE LOG WAS PRODUCED. (THIS FUNCTION WAS ADDED TO NSPOOL
BECAUSE IT HAPPENS TO ALWAYS BE ACTIVE BUT ALMOST ALWAYS
STOPPED, AND IT'S A VERY SMALL TASK ANYWAY.)
FINALLY, A FORTRAN SUBROUTINE "SPOOL" IS INCLUDED. THIS
SUBROUTINE ALSO SENDS THE START/STOP MESSAGES TO NSPOOL.
CALL SPOOL(0) STOPS THE SPOOLER, ASSIGNS LUN 6 TO LP:, AND
ATTACHES THE PRINTER. CALL SPOOL(1) (OR ANY OTHER NONZERO
VALUE) DETACHES THE PRINTER AND RESTARTS THE SPOOLER.
SORT -- A TASK THAT WILL SORT ANY FILE OF FIXED-LENGTH RECORDS (UP TO
NINE LINES PER RECORD) INTO ASCENDING OR DESCENDING ORDER ON
UP TO NINE FIXED-LENGTH, FIXED-POSITION ASCII KEYS. A MAXIMUM
OF ABOUT 300K BYTES OF DATA (ABOUT 600 BLOCKS) MAY BE SORTED,
AS THE PROGRAM USES WORK FILES TO STORE PARTS OF THE SORTED
FILE. A QUICKSORT METHOD IS USED.
TSKBUILD -- THIS IS A MODEL COMMAND FILE THAT CAN BE CUSTOMIZED TO PROVIDE
EASIER TASKBUILDING FOR PROGRAM DEVELOPMENT SYSTEMS. BY
SUPPLYING PARAMETERS ON THE COMMAND LINE (E.G. "NOF4P" FOR NO
F4P RESIDENT LIBRARY, "TEK" FOR INCLUDING TEKTRONIX PLOTTING
PACKAGE) THE USER CAN SPECIFY STANDARD LIBRARIES THAT ARE
REQUIRED, WITHOUT HAVING TO REMEMBER WHERE THEY ARE LOCATED
OR WHICH MODULES MUST ALWAYS BE INCLUDED. THE COMMAND FILE
PROMPTS FOR INPUT AS TKB WOULD (E.G. AFTER "/" IT PROMPTS FOR
OPTIONS), AND CREATES A TKB COMMAND FILE WITH VERSION 777,
WHICH IT SUBMITS TO TKB. THE COMMAND FILE CAN BE DELETED
AUTOMATICALLY AFTER IT IS USED, OR IT CAN BE KEPT FOR FUTURE
USE DIRECTLY WITH TKB (E.G. TKB @CMDFILE).
WHEN -- A SMALL TASK THAT ACCEPTS COMMANDS OF THE FORM:
WHEN <TASKNAME> <MCR COMMAND>
WAITS FOR <TASKNAME> TO FINISH, AND THEN SPAWNS THE COMMAND.
IT CAN ALSO BE INVOKED AS: WHEN <TASKNAME> IN WHICH CASE IT
PROMPTS FOR COMMANDS TO BE SPAWNED IN SEQUENCE. EMBEDDED
"WHEN" COMMANDS OF THE SECOND TYPE CAN BE USED TO WAIT FOR
OTHER TASKS TO FINISH. THIS ALLOWS YOU TO "TYPE AHEAD" TO
SOME EXTENT; E.G. YOU DON'T HAVE TO WAIT FOR A COMPILATION
TO FINISH TO TYPE "TKB XYZ=XYZ,[1,1]F4POTS/LB"; YOU CAN TYPE:
WHEN F4P TKB XYZ=XYZ,[1,1]F4POTS/LB
(NOTICE THAT THREE CHARACTER NAMES FOR ...-TASKS ARE ACCEPTED,
AND WILL BE HANDLED CORRECTLY AS LONG AS THE TASK IS ACTIVE
ON YOUR TERMINAL.) ADMITTEDLY, THINGS LIKE THIS CAN BE DONE
BETTER WITH COMMAND FILES, BUT SOME OF US ARE TOO LAZY TO
CREATE AND MAINTAIN COMMAND FILES FOR ALL THESE LITTLE THINGS!
(BE A LITTLE CAREFUL WHEN USING THIS TASK WITH CCL; IF YOU
DO A SEQUENCE OF COMMANDS LIKE THIS:
>MAC XYZ=XYZ
>WHEN MAC
WHEN>LBR XYZLIB/RP=XYZ
WHEN>WHEN LBR
WHEN>TKB @XYZBLD
WHEN>^Z
AND ...LBR IS NOT INSTALLED, BUT IS IMPLEMENTED VIA CCL, THEN
CCL MAY NOT START THE TASK BEFORE THE "WHEN LBR" EXECUTES;
SINCE LBR IS NOT ACTIVE, IT IS ASSUMED THAT IT HAS COMPLETED,
AND THE TKB @XYZBLD IS STARTED. ONE WAY THIS PROBLEM CAN BE
SOLVED IS TO DO A "WHEN CA." BEFORE THE "WHEN LBR".)
XPR -- THIS TASK IS DESIGNED FOR USE WITH A VERSATEC 1200A PRINTER/
PLOTTER (OR EQUIVALENT), AND WITH VERSATEC'S LP: DRIVER. THE
1200A PRINTS 132 COLUMNS ON PAPER THAT IS 11" WIDE AND 8.5"
HIGH, WHEREAS NORMAL PEOPLE ARE USED TO PAPER THAT IS 11" HIGH
AND 8.5" WIDE. THIS TASK USES THE PLOTTING CAPABILITIES OF
THE 1200A (200 DOTS PER INCH) TO PERFORM SOFTWARE CHARACTER
GENERATION, AND PRINT MORE READABLE DOCUMENTS. AS LONG AS
CHARACTERS ARE GENERATED BY SOFTWARE, IT WAS DECIDED TO LET
THE PROGRAM ALSO DO PROPORTIONAL SPACING, RIGHT MARGIN
ALIGNMENT, SPECIAL SYMBOLS, UNDERLINING, DOUBLE-WIDTH
CHARACTERS, AND DOUBLE-SPACING. 59 LINES OF 80 CHARACTERS CAN
BE PRINTED WITH "NORMAL" SPACING; LINES MAY BE SHORTER OR
LONGER WITH OTHER SPACING OPTIONS. AUXILIARY TASKS ARE
SUPPLIED TO BUILD THE CHARACTER SET DATABASE, AND TO CREATE
SPECIAL SYMBOL FILES FOR GENERATING MATH OR SCIENTIFIC
SYMBOLS, SUBSCRIPTS AND SUPERSCRIPTS, ETC.
VTEDITMIM -- THIS .TEC FILE, ALONG WITH TECOMIM.INI, HAS BEEN USED TO
IMPLEMENT A SCREEN-EDITING TECO SYSTEM FOR MIME-I TERMINALS.
THE MIME-I EMULATES THE DEC VT52, BUT HAS NO ALTERNATE
KEYPAD. CONTROL CHARACTERS AND ESCAPE SEQUENCES THAT ARE
EASY TO REMEMBER ARE USED TO IMPLEMENT EDITING COMMANDS.
THE FILE TECOMIM.TXT CONTAINS THE COMMAND LIST. TECOMIM.INI
IS USED WITH A SLIGHTLY MODIFIED TECO.TSK, WHICH PICKS UP
TECO.INI FROM A STANDARD UIC (E.G. [1,2]) INSTEAD OF FROM
THE USER'S UIC. IT PREPROCESSES THE COMMAND LINE, AND THEN
STARTS UP THE VTEDIT MACRO FILE.
VSDRV -- THIS IS AN RSX-11M V3.2 DRIVER THAT IMPLEMENTS SOME OF THE
FUNCTIONALITY OF THE "VARAIBLE SEND DATA" FUNCTION AVAILABLE
ONLY WITH M-PLUS. THE DRIVER MANAGES ANY NUMBER OF NAMED
QUEUES OF VARIABLE-LENGTH MESSAGES. FUNCTION IMPLEMENTED
INCLUDE: CREATE QUEUE, DELETE QUEUE, "WRITE" (SEND MESSAGE),
AND "READ" (RECEIVE MESSAGE). IT IS POSSIBLE TO EMULATE THE
RECEIVE-DATA AST BY PERFORMING A "READ AND WAIT" QIO WITH AN
AST SPECIFIED. ALL STORAGE IS ALLOCATED FROM A PRIVATE POOL
AREA WITHIN THE DRIVER, SO THAT ONLY THE NECESSARY QIO PACKETS
COME OUT OF EXECUTIVE POOL SPACE.
INCLUDED WITH VSDRV IS A UTILITY PROGRAM "VSUTIL", WHICH CAN
BE USED TO CREATE AND DELETE QUEUES, AND TO DISPLAY THE
CURRENT CONTENTS OF THE DRIVER'S POOL.
ALL .CMD FILES EXCEPT TSKBUILD.CMD ARE DESIGNED TO GENERATE THE SPECIFIED
TASK OR SET OF TASKS. IT IS EXPECTED THAT F4P, MAC, LBR, AND TKB ARE
INSTALLED (OR IMPLEMENTED VIA CCL) WHEN THE COMMAND FILE IS INVOKED, AND THAT
THE F4P OTS IS IN [1,1]F4POTS.OLB. AN F4PRES UNDER [1,1] IS ALSO EXPECTED
(EDIT BUILD FILES TO REMOVE REFERENCES TO F4PRES IF NECESSARY.) THE .TKB
FILES ARE TASKBUILD COMMAND FILES.
VSDRV ASSUMES THAT RSXMC.MAC EXISTS UNDER [200,200], AND THAT RSX11M.STB
EXISTS UNDER [1,54].
ALL STANDARD LIBRARIES (SYSLIB, EXELIB) ARE ASSUMED TO BE UNDER [1,1].
BUILD FILES DO NOT REFERENCE ANY DEVICES EXPLICITLY (NOT EVEN LB: OR SY:)!!!
Submitted by
John Osudar
Science Applications, Inc.
1211 West 22 nd street
suite 901
Oakbrook, Il.
60521