INTRO - introduction to the UW Tools package.
The UW Tools package contains a number of utility programs
designed to increase productivity at every stage of software
preparation: coding, debugging, testing, and documentation.
The B Programming Language:
B has proved itself time and again as one of the most
versatile languages for writing system software under GCOS-8. It
supports all modern program logic structures: IF-THEN-ELSE, WHILE
loops, SWITCH statements, and so on. Its operators allow
programmers to perform all the normal integer, floating point,
and character operations, as well as low-level actions like bit
shifting, ANDing, and ORing. Because B is a stack-oriented
language, recursion is permitted.
B comes complete with a reference manual, a tutorial guide,
and on-line descriptions of all library functions. The B compiler
and B programs can be prepared to run under either batch or TSS.
The B Run-Time Library:
One of the most important features of B is the library of
utility functions that comes as part of the package. These
functions perform such operations as
- formatted I/O, supporting all Media codes
- string manipulation
- invoking system calls
- sorting data
- dynamic memory allocation
The BOFF Debugger:
BOFF is a symbolic debugger designed to help debug any program
running under GCOS8. It is particularly useful with programs
written in B, since the B compiler produces debug tables that
BOFF can use to obtain information about the program and its
variables (source line numbers, local variable names, etc.). BOFF
can be used in several modes.
- To examine post-mortem dumps of aborted programs.
- To "babysit" a program as it runs.
- To patch locations in load modules (or any other kind of
file).
- To profile a program's execution.
- To act as an expression evaluator, printing out the
results of expressions in a variety of formats (octal,
decimal, hex, BCD, ASCII, etc.).
BOFF allows you to perform the following actions for
debugging:
- print out any memory location in a variety of formats
(octal, decimal, floating point, BCD, ASCII, GMAP
instruction, etc.).
- change the values of memory location (patching)
- set breakpoints at absolute memory locations, at
beginnings of functions, and at function return
- call program functions while stopped at a breakpoint
- create BOFF variables for use during a BOFF session
- obtain function tracebacks
- save and restore core images
- display register and variable values
The EXPLAIN Subsystem:
The EXPLAIN subsystem is a facility for providing on-line
documentation on a variety of topics. The documentation for the B
package is all available through EXPLAIN. As part of the standard
installation procedure, this material is stored under the catalog
LIBRARY/EXPL where the EXPLAIN command may locate it at a user's
request. Sites may add their own material to LIBRARY/EXPL or
modify the standard explanations to suit individual needs.
The FRED Text Editor:
FRED is a line editor descended from the QED editor. It allows
all the usual interactive editing operations: creating, deleting,
modifying and saving text, global substitutions, and the like. In
addition, it can be used to write sophisticated text manipulation
programs. Our current library of stored FRED programs includes
programs to play tic-tac-toe, to convert RUNOFF source into
source for our TF text formatter, to generate and run an EXEC
file to copy a catalog, and so on. Some of the features that
distinguish FRED from other editors are:
- The ability to "undo" up to 10 lines of
commands, if you make a mistake or change your mind.
- Multiple buffers (workspaces) to let you work on more
than one file at once, or move text about from one
location in a file to another.
- The ability to "capture" output from a FRED or
TSS command, and place that output in a buffer for
editing.
- A sophisticated pattern matcher, allowing you to locate
strings and perform various manipulations on them.
- Simple commands for upper or lower casing text.
- Control structures, including loops and GOTOs.
- The ability to put comments in FRED programs.
FRED comes complete with a reference manual, a tutorial for
beginners, and a more advanced guide to writing FRED programs.
There is also a small library of utility programs. FRED operates
in TSS or batch.
The TF Text Formatter:
TF is a sophisticated text formatter supporting macro
facilities that allow programmers to design their own formatting
instructions. In this way, simple packages can be created so that
even those who know nothing about TF can create well-formatted
documents that conform with company standards.
TF source looks much like RUNOFF source, but TF offers a much
larger choice of directives. For example, TF lets you eliminate
widows and orphans, those annoying single lines at the tops of
bottoms of pages, cut off from everything else. It also supports
input and output diversions, the ability to call and obtain
output from system commands, limited arithmetic capabilities, the
creation of proportionally-spaced output for devices that have
proportional spacing, and a variety of other features.
TF comes with a reference manual, tutorial guide, and a
library of ready-made macro packages. It runs in both batch and
TSS.
The Secure Command Loader:
The UW Tools package brings with it a new command loader
designed for more security than the stock command loader. This
loader also lets the UW Tools package provide many services that
would not be available under the normal permission system. None
of these services constitute violations of security, but users
have been denied these conveniences because the stock command
loader could not provide the services without providing
opportunity for true security violations.
Modified ACCESS Command:
A modified version of ACCESS is distributed with the package
in order to support some of the features of the Secure Command
Loader. This ACCESS has other important enhancements:
- The command line syntax has been simplified to make
typing easier (for example, arguments may be separated by
spaces instead of commas).
- The interface has been improved to make ACCESS easier to
use in command files and in calls from other programs.
The improvements make the *ACC interface obsolete.
- There is a "verify" option so that the user
gets a positive feedback about the action just performed.
- There is a full set of online explain files for the
ACCESS subsystem.
Utilities in the UW Tools Package:
Below we summarize the arsenal of utilities that come with the
UW Tools package.
- ACS
- A command to print a user's resources and limits. This is
basically an improved SMCL command that prints change
dates and handles UMC's on removeables or volume sets.
- ASM
- A program for submitting GMAP assembly jobs from TSS.
- BAFT
- A better AFT command that can list the contents of the
AFT, including full names of permanent files.
- BCMP
- A block mode file compare utility.
- BPP
- A simple macro preprocessor for B programs.
- BSORT
- A versatile utility for sorting files according to
multiple keys.
- BST
- A disassembler for object decks.
- BTEMP
- A better TEMP command that can be easily used by command
files and other programs.
- BTOG
- A program for converting B source code into GMAP assembly
code.
- BUCK
- A TSS command that tells what FMS bucket contains a given
userid.
- BW
- A TSS command that will return the current of all batch
jobs submitted by a specified user.
- CLIST
- A command that lists the "characteristics" of
one or more files or catalogs: general permissions,
specific permissions, current size, maximum size,
creation date, change date and time, number of accesses,
disk location, label on tape of most recent back-up, and
whether a file is random or sequential.
- CLONE
- A command to copy a file or entire catalog along with
permissions and other FMS attributes.
- COPY
- A utility for copying any kind of file.
- CSUS
- A program that temporarily suspends a CRUN session and
runs another command.
- DIFF
- A program that determines the differences between two
text files.
- DSTA
- A program for examining the status of DRUNs.
- ECHO
- A utility that echoes its arguments to the terminal or an
output file.
- EO
- A way of repeatedly executing commands while obtaining
parameters for the commands from an input file.
- EVAL
- A command that evaluates arithmetic, logical, and string
expressions.
- EXEC
- A facility similar to CRUN for conditionally executing a
file of TSS commands.
- EXPL
- A command that is capable of obtaining on-line
documentation and listing it in a convenient readable
form.
- F77
- A TSS command for invoking the Fortran 77 compiler.
- FDP
- A program for dumping the contents of files in readable
formats.
- FILE
- A utility for listing the names of all the files under a
given catalog; the command can also list just the files
that have a certain characteristic, e.g. all files that
have been changed since a particular date.
- FSTT
- A program that returns fuller explanations of derail
status codes.
- FTN
- A program for invoking the Fortran 66 compiler.
- GO
- A program loader for programs in B, C, or Pascal.
- GROW
- A command to grow a file.
- IF
- A command that executes a list of TSS commands, depending
on the result of a logical expression.
- KLIST
- A program for columnating input and optionally writing
the result to the line printer.
- KWIC
- A program to produce a "key word in context"
list.
- L
- A command for listing the contents of almost any kind of
file (e.g. text files, freeze files, qstar files,
mailboxes, and others).
- LC
- A command that gives a concise listing of the contents of
a catalog.
- LEN
- A utility to determine the length and type of a file.
This is similar to the stock LENGTH command, but
recognizes many more file formats.
- LINK
- A command to invoke GELOAD as a DRL TASK job.
- LOCA
- A utility that scans one or more text files and prints
out windows around lines that contain a particular string
of characters.
- LODL
- An editor for libraries of load modules.
- LOWE
- A command for putting all the alphabetic characters of an
ASCII file into lower case.
- OMINFO
- A command for obtaining information about OM object
module libraries.
- OMLED
- A command for editing OM object module libraries.
- P
- A utility for printing the contents of text files in a
fully-readable format.
- RANEDIT
- A command for editing a random object (GELOAD) library.
RANEDIT works in both batch and TSS.
- RENAME
- A command to change the AFT name of a file.
- RUED
- A command for editing RU (run-unit) libraries.
- SETC
- A command to set the working catalog with checks for
common errors such as missing passwords and non-existent
pathnames.
- SHRINK
- A command to shrink the physical size of a file down to
the file size that is actually being used.
- SLIST
- A command that will print the contents of temporary or
permanent files on the line printer.
- SRCLIB
- A command for editing source libraries (COBOL74 copy
libraries).
- STRP
- A program for stripping trailing blanks and sequence
number fields from text files.
- SWAP
- A utility for switching the position of programs on the
CALLSS stack.
- SWITCH
- A utility to set and display both program switch words.
- TAIL
- A command to display the last few lines of a file.
- TIME
- A command that prints the current date and time of day.
It can also be used to time the execution of other
commands.
- TSYST
- A batch utility to write system insert/edit tapes from Q*
files.
- TZDATA
- A command to process time zone definitions that can then
be incorporated into B programs.
- UNCL
- A command that will examine an object library to
determine which of the routines in the library reference
a particular SYMDEF.
- UNIQ
- A command to remove duplicate lines from a file.
- UPPE
- A command that converts a text file into upper case.
- WC
- A utility to count characters, words and lines in a file.
- WHERE
- A command that can be used to determine the name of
someone who has currently busied a particular file.
- WMI
- A command to display the current userid, system name, and
working catalog.
- WS
- A command that will execute a set of one or more TSS
commands upon each file in a given catalog.
- YAY
- A program that generates language parsers -- a simple
source format allows users to specify a language and what
actions should be taken when language constructs are
recognized. The output of YAY is either B or C source
code that can then be compiled to obtain the actual
parser.
Copyright © 1996, Thinkage Ltd.