Index of /pub/ibm370/mts
Name Last modified Size Description
Parent Directory 03-Oct-1996 09:42 -
bb.s 17-Feb-1995 19:56 61k
dos11.s 17-Feb-1995 19:57 10k
fmt.s 17-Feb-1995 19:54 4k
ftp.s 17-Feb-1995 19:58 86k
tapesrv.s 19-Jul-1998 18:03 12k
uname.s 17-Feb-1995 19:58 1k
who.s 17-Feb-1995 19:58 28k
whonames.s 17-Feb-1995 19:59 11k
yow.s 17-Feb-1995 19:59 4k
#Execution begins
This directory contains a bunch of random projects I wrote for the IBM 370
(actually a 3081D, followed by a 3090, and now an ES/9000, which is no longer
available for general use at any price because RPI is run by idiots) running
MTS (the Michigan Terminal System). They're probably of no practical use to
anyone but they might be fun reading. MTS is nothing like the kind of hell
to program under that the IBM OSes are, so you can concentrate on the joys
of the 370 architecture itself when you're programming. Well it gets to
be a *little* fun if you do it enough!
John Wilson ID=HA8G Feb17/1995
#Execution terminated RC=4
bb.s Big Brother. This program reads a database maintained by WHO
which keeps track of every name that each userID has ever
been seen using, and every userID that each name has ever
been seen using. Under MTS you can have arbitrarily many
e-mail addresses per account, and you can use other mailboxes
if they're permitted properly (MTS has a very well-developed
concept of permissions, sadly it hasn't caught on in other
OSes).
Once RPI's MTS machine got its Internet hookup I decided that
since BB is already watching YOU, it should watch THEM too
so I added RPI's only MTS Finger client as part of BB rather
than as a separate program. Why not. This got kind of hairy
once we stopped using the host table (I used to have a
program which would build two cross-referenced files of host
names and IP addresses so you could look up either way based on
the 32-bit IP address or on a 32-bit hash of the name, which
was far faster than the linear search used by MTS's BSD-derived
FTP client) since MTS has no built-in DNS resolver, so I wrote
my own simple one (requires a recursive server).
There's also a HOST command which is supposed to look a little
like the old HOST program on MIT-OZ, it would look up a host's
IP addresses, CNAME and HINFO records, and MX records too if the
host has no IP address of its own. More stuff for BB to watch.
Also a LIST command which looks up mailing lists (by sending
EXPN commands to SMTP servers). See, this way BB can watch
whole groups too.
dos11.s Program to read DOS-11 magtapes on MTS. I had no tape drive
on my PDP-11/34a so I wrote this program to help me hand-build
a bootable RSTS/E V9.0 RK07 pack from a V8.0 pack and the V9.0
tapes. It wasn't easy!
fmt.s Program to reformat files for printing. MTS uses EBCDIC and
doesn't know about tabs or backspaces or anything. Yet the
MTS machine is the one with the nicest printer on campus
(double sided output, very fast). So I FTP stuff to MTS and
use this program to turn the (translated) control characters
into the appropriate FORTRAN carriage control codes (MTS really
likes FORTRAN, so you have to use carriage control codes in
column 1 in all output even if you're not using FORTRAN).
ftp.s My unfinished from-scratch FTP client. The "stock" one is
based on the one from 4BSD and thus, sucks. This one would
not have sucked if I had ever finished it.
tapesrv.s Ultra-simple write-only tape drive server program. Makes it
possible to access MTS's (three) tape drives via TCP from a
UNIX box. I used this to write ITS tapes for a PDP-10.
FTPing files and dumping them to tape works too, except that
MTS's TCP/IP code has the misfeature that closing a TCP
connection blocks your job for about 10 seconds, so you lose
big when you transfer a lot of little files. So I saved
many hours by batching things up on the UNIX side and squirting
them through a single TCP connection to this server.
uname.s A little subroutine which can be loaded by *TEXTFORM files
to retrieve the name that the user has currently $SET.
It just tickles me that you can call assembly language from
the text formatter input language. Anyway I used this to
put little blurbs in documents like "last updated by ___
on ___".
who.s Program to skip through the (undocumented) MTS task table
and print the names of everyone it finds who's also listed
in a file you supply attached to unit 1. This was a bit
risque at the time I wrote it because RPI had a very strict
policy about punishing people who attempted to reverse-
engineer MTS. Like what's the big deal. I also took some
shit from people who didn't want it to be generally known
that they spend all their time running *FORUM or ACM:CB
(the program has an option to list what files each user
has locks on), but like tough. It can be accomplished from
the command line anyway, this just makes it a lot easier.
So you're fooling yourself if you think getting rid of WHO
gives you privacy. There's another command line option
which makes the program update Big Brother's data files
(this added an extra nickel or so onto the cost of running
the program so I made it optional, some people objected to
Big Brother on moral grounds and didn't want to be forced
to help update it when they ran WHO).
whonames.s Program to add/remove/modify a user's own entry/ies in
the default names file for WHO, which is used by people
who want to see as many people as possible listed by name.
yow.s Program to print a random Zippy quote. Used to be part
of a program I wrote to stick an email message in a wrapper
and send it to the ARPAnet gateway at WISCVM, back when MTS
first got its Bitnet connection (but no ARPAnet) and it
took the sys progs *months* to get it working with the
"SEND" command in the real MTS mailer.