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 WAITS FOR TO FINISH, AND THEN SPAWNS THE COMMAND. IT CAN ALSO BE INVOKED AS: WHEN 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 (312) 655-5960