7-Jan-2005 18:16:19 -0800,798;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Fri, 7 Jan 2005 18:16:18 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id SAA16611; Fri, 7 Jan 2005 18:16:17 -0800 (PST)
Date: Fri, 7 Jan 2005 17:54:26 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: 2004, a busy year for the TOPS-20 list!
To: TOPS-20@lingling.panda.com
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <13992743263.13.MRC@lingling.panda.com>

The TOPS-20 list traffic in 2004 was the highest since 1986, after which
there was a rapid decline.  I would like to wish everybody on the list a
happy, prosperous, and healthy New Year!
-------
 7-Jan-2005 22:13:40 -0800,1510;000000000000
Return-Path: <smj@sdf.lonestar.org>
Received: via tmail-2002(14) for t20arc; Fri, 7 Jan 2005 22:13:40 -0800 (PST)
Return-Path: <smj@sdf.lonestar.org>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id WAA16695; Fri, 7 Jan 2005 22:13:39 -0800 (PST)
Received: from sdf.lonestar.org (mx.freeshell.org [192.94.73.21]) by lingling.panda.com with TCP/SMTP; Fri, 7 Jan 2005 21:52:52 -0800 (PST)
Received: from sdf.lonestar.org (ol.freeshell.org [192.94.73.20])
	by sdf.lonestar.org (8.12.10/8.12.10) with ESMTP id j085qj5n015213;
	Sat, 8 Jan 2005 05:52:45 GMT
Received: (from smj@localhost)
	by sdf.lonestar.org (8.12.10/8.12.8/Submit) id j085qjJh012563;
	Sat, 8 Jan 2005 05:52:45 GMT
From: Stephen Jones <smj@sdf.lonestar.org>
Message-Id: <200501080552.j085qjJh012563@sdf.lonestar.org>
Subject: Re: 2004, a busy year for the TOPS-20 list!
In-Reply-To: <13992743263.13.MRC@lingling.panda.com>
To: Mark Crispin <MRC@lingling.panda.com>
Date: Sat, 8 Jan 2005 05:52:45 +0000 (UTC)
CC: TOPS-20@lingling.panda.com
X-Mailer: ELM [version 2.4ME+ PL93 (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII

MRC wrote:
> The TOPS-20 list traffic in 2004 was the highest since 1986 ..

Deja vu .. didn't this happen last year too?

In related news, there were 2009 accounts created on twenex.org
during the entire year of 2004 .. however, that is down from the
6869 accounts that were created in 2003.
 8-Jan-2005 11:29:51 -0800,2393;000000000000
Return-Path: <dlm@opost.com>
Received: via tmail-2002(14) for t20arc; Sat, 8 Jan 2005 11:29:51 -0800 (PST)
Return-Path: <dlm@opost.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id LAA17057; Sat, 8 Jan 2005 11:29:50 -0800 (PST)
Received: from mv.opost.com ([199.125.75.195]) by lingling.panda.com with TCP/SMTP; Sat, 8 Jan 2005 11:06:51 -0800 (PST)
Received: from road.fpl (cpe-24-181-237-7.ma.charter.com [24.181.237.7])
	(authenticated bits=0)
	by mv.opost.com (8.12.8/8.12.8) with ESMTP id j08J6ltL031986
	for <TOPS-20@lingling.panda.com>; Sat, 8 Jan 2005 14:06:47 -0500
Received: from road.fpl (localhost [127.0.0.1])
	by road.fpl (8.12.10/8.12.10) with ESMTP id j08J6gut005409
	for <TOPS-20@lingling.panda.com>; Sat, 8 Jan 2005 14:06:42 -0500
Received: (from dlm@localhost)
	by road.fpl (8.12.10/8.12.10/Submit) id j08J6gtI005407
	for TOPS-20@lingling.panda.com; Sat, 8 Jan 2005 14:06:42 -0500
Date: Sat, 8 Jan 2005 14:06:42 -0500
Message-Id: <200501081906.j08J6gtI005407@road.fpl>
From: Dan Murphy <dlm@opost.com>
To: TOPS-20@lingling.panda.com
Subject: Re: 2004, a busy year for the TOPS-20 list!
Reply-To: Dan Murphy <dlm@opost.com>
X-OpostMailScanner: Not scanned


    Well, it seems that today is a day of discovery for me.  Until
    this post, I was not aware of twenex.org.  I just signed up for an
    account to help the 2005 total.
    
    Also, I was not until the very moment aware of the existence of
    the song "Teco and DDT".  Amazing!!  The old lore is not dead.

    Speaking of old songs, I put a bunch on a CD some years ago.
    "Digital County Store" and "Woman at the Well (then and now)"
    would be of particular interest to ex-Deccies and friends.  More
    description and all mp3s may be found at
    http://www.opost.com/opcd/ .  And yes, you can order a physical CD
    if you really want.
    
    
    
    dlm
    
    
=====================

    Stephen Jones <smj@sdf.lonestar.org> on Sat, 8 Jan 2005 05:52:45 +0000 (UTC) writes:

> MRC wrote:
> > The TOPS-20 list traffic in 2004 was the highest since 1986 ..

> Deja vu .. didn't this happen last year too?

> In related news, there were 2009 accounts created on twenex.org
> during the entire year of 2004 .. however, that is down from the
> 6869 accounts that were created in 2003.

 8-Jan-2005 16:45:30 -0800,4424;000000000000
Return-Path: <smj@sdf.lonestar.org>
Received: via tmail-2002(14) for t20arc; Sat, 8 Jan 2005 16:45:30 -0800 (PST)
Return-Path: <smj@sdf.lonestar.org>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id QAA17168; Sat, 8 Jan 2005 16:45:29 -0800 (PST)
Received: from sdf.lonestar.org (mx.freeshell.org [192.94.73.21]) by lingling.panda.com with TCP/SMTP; Sat, 8 Jan 2005 16:22:51 -0800 (PST)
Received: from sdf.lonestar.org (ol.freeshell.org [192.94.73.20])
	by sdf.lonestar.org (8.12.10/8.12.10) with ESMTP id j090MiCj012016;
	Sun, 9 Jan 2005 00:22:44 GMT
Received: (from smj@localhost)
	by sdf.lonestar.org (8.12.10/8.12.8/Submit) id j090MiJd001119;
	Sun, 9 Jan 2005 00:22:44 GMT
From: Stephen Jones <smj@sdf.lonestar.org>
Message-Id: <200501090022.j090MiJd001119@sdf.lonestar.org>
Subject: Re: 2004, a busy year for the TOPS-20 list!
In-Reply-To: <200501081906.j08J6gtI005407@road.fpl>
To: Dan Murphy <dlm@opost.com>
Date: Sun, 9 Jan 2005 00:22:44 +0000 (UTC)
CC: TOPS-20@lingling.panda.com
X-Mailer: ELM [version 2.4ME+ PL93 (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII

DLM wrote:

>     Well, it seems that today is a day of discovery for me.  Until
>     this post, I was not aware of twenex.org.  I just signed up for an
>     account to help the 2005 total.

Great to hear!  There are a number of visitors, but only a handful of
people persist.  Both KLH and MRC need to be thanked for providing the
software means of making it possible.  Prior to that the idea was to
use a KS10 from 1994 but the big hold up was finding reliable drives
(and not RP06 or RP07) that were affordable to run 24/7.  Ken's KL10B
emulator runs the 'panda dist' that Mark has put together on a DEC Alpha
DS10L.  I also need to thank MRC for the complete manual set (in shrink
wrap with updates) he gave me (and the RP06 I refused to haul away!)
See MRC, its been a few years now and I still didn't auction it all off
on ebay .. so you don't have to kill me with your rubber pellet tommy gun!

I still believe this manual set is the greatest thing anyone has ever
given me!
     
>     Also, I was not until the very moment aware of the existence of
>     the song "Teco and DDT".  Amazing!!  The old lore is not dead.

The band (under a different name) played that live from 1994.  A year
later Clive made those 30 years, 36 bits patch which I proudly put on
my guitar strap. AHH, I should also note that we played a variety show
at Club DaDa in Dallas Texas on Sunday 10-DEC-95 at 10PM in which we played 
TECO and DDT (to many people's enjoyment/annoyance) in between EVERY
song in our 10 song set.  We didn't record the song until 1999 and its
basically the last few lines of Alice's PDP-10 set to an Elvis Costello
style rockabilly form w/ solo.  

Whats interesting is that we've had kids tell us they like our 'hacking'
song .. though many of them do not understand what TECO or DDT is.

The album we released that on also contains a song called 'Technology 
Gone Bad' which features enjoyable/annoying lines such as:

new microchip.
segmentation faults.
but you line your pockets and you fill your vaults.
cause you don't care, no you don't care.
just spread your virus everywhere.
forget advancements of other machines 
KL-10 and LISP machine

The album is out of print, but we have a 7" record still available.  However,
it doesn't have the two afore mentioned tracks!  I know that the CD is
still available through one online store shop and if I did, I probably have
three or four copies left in my closet.  I should note that our music is
probably too noisey for most people's taste .. and probably considered 
idealistic or adolescent and unmarketable on the whole.

We've since released a few new recordings (two 7" and a three CDs) with the
2003 CD featuring a song about the DEC Alpha and the SDF public access
UNIX system which includes mostly annoying (and some enjoyable) lines:

IO I know
read & write
much too slow
ion polar mass store
read & write
friticion no more

I owe I know
first thirty six
then sixty four
DEC had RISC 
before intel
MS job must feel like hell

SDF
NetBSD
call malloc()
then call a free()
cached my stack
for a rehash
x86 into the trash
DEC had RISC
before intel
PeeCees suck
linux as well
 8-Jan-2005 17:44:02 -0800,2537;000000000000
Return-Path: <sra@hactrn.net>
Received: via tmail-2002(14) for t20arc; Sat, 8 Jan 2005 17:44:02 -0800 (PST)
Return-Path: <sra@hactrn.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id RAA17190; Sat, 8 Jan 2005 17:44:00 -0800 (PST)
Received: from cyteen.hactrn.net ([66.92.66.68]) by lingling.panda.com with TCP/SMTP; Sat, 8 Jan 2005 17:22:12 -0800 (PST)
Received: from thrintun.hactrn.net (thrintun.hactrn.net [IPv6:2002:425c:4242:0:250:daff:fe82:1c39])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client CN "thrintun.hactrn.net", Issuer "Grunchweather Associates" (verified OK))
	by cyteen.hactrn.net (Postfix) with ESMTP id 89205499
	for <TOPS-20@lingling.panda.com>; Sat,  8 Jan 2005 20:22:11 -0500 (EST)
Received: from thrintun.hactrn.net (localhost [IPv6:::1])
	by thrintun.hactrn.net (Postfix) with ESMTP id C25F241E7
	for <TOPS-20@lingling.panda.com>; Sat,  8 Jan 2005 20:22:10 -0500 (EST)
Date: Sat, 08 Jan 2005 20:22:10 -0500
From: Rob Austein <sra@hactrn.net>
To: TOPS-20@lingling.panda.com
Subject: Re: 2004, a busy year for the TOPS-20 list!
In-Reply-To: <200501090022.j090MiJd001119@sdf.lonestar.org>
References: <200501081906.j08J6gtI005407@road.fpl>
	<200501090022.j090MiJd001119@sdf.lonestar.org>
MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen")
Content-Type: text/plain; charset=US-ASCII
Message-Id: <20050109012210.C25F241E7@thrintun.hactrn.net>

> >     Also, I was not until the very moment aware of the existence of
> >     the song "Teco and DDT".  Amazing!!  The old lore is not dead.
> 
> The band (under a different name) played that live from 1994.  A year
> later Clive made those 30 years, 36 bits patch which I proudly put on
> my guitar strap. AHH, I should also note that we played a variety show
> at Club DaDa in Dallas Texas on Sunday 10-DEC-95 at 10PM in which we played 
> TECO and DDT (to many people's enjoyment/annoyance) in between EVERY
> song in our 10 song set.  We didn't record the song until 1999 and its
> basically the last few lines of Alice's PDP-10 set to an Elvis Costello
> style rockabilly form w/ solo.  

Yow.

Oddly enough, the saga of Alice's PDP-10 sort of started out with a
band.  One of the dorms I lived in back in college ran an ice cream
parlor with a floor show on weekends, and I originally memorized the
story of Alice's Restaurant as part of the act that my hall band put
together to earn ourselves a semester's worth of free ice cream....
 9-Jan-2005 12:25:38 -0800,2382;000000000000
Return-Path: <bowman@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Sun, 9 Jan 2005 12:25:38 -0800 (PST)
Return-Path: <bowman@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id MAA17671; Sun, 9 Jan 2005 12:25:37 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Sun, 9 Jan 2005 12:03:35 -0800 (PST)
Received: from tortola.math.utah.edu (IDENT:YSCtiOD2ziCfiQaxhkFuSMqmfEPZ2rzP@tortola.math.utah.edu [155.101.96.48])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j09K3X8R025319;
	Sun, 9 Jan 2005 13:03:33 -0700 (MST)
Received: from tortola.math.utah.edu (IDENT:37s6fREgGPiDXnxp1wPzZSYiUQcw9uLM@localhost [127.0.0.1])
	by tortola.math.utah.edu (8.12.11/8.12.10) with ESMTP id j09K3XON028243;
	Sun, 9 Jan 2005 13:03:33 -0700 (MST)
Received: (from bowman@localhost)
	by tortola.math.utah.edu (8.12.11/8.12.10/Submit) id j09K3X9N028242;
	Sun, 9 Jan 2005 13:03:33 -0700 (MST)
Date: Sun, 9 Jan 2005 13:03:33 -0700 (MST)
From: Pieter Bowman <bowman@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: bowman@math.utah.edu
X-US-Mail: "University of Utah, Department of Mathematics, 155 S 1400 E RM
        233, Salt Lake City, UT 84112-0090"
X-Telephone: 801-581-5252
X-Fax: 801-581-4148
Subject: Panda distribution
Message-ID: <CMM.0.92.0.1105301013.bowman@tortola.math.utah.edu>

Recently Nelson Beebe and I have been experimenting with klh10 and the
TOPS-20 distribution from trailing-edge.com, running on a Sun W2100z,
dual AMD Opteron system running Fedora Core 3.  I've got the system so
it boots and can be logged in to via telnet, but it's been so long
since I did anything with TOPS-20 (we shut science.utah.edu down on
9-Nov-90).  I've seen references to the availability of a Panda
distribution in the form of a disk image.  I was wondering if someone
could provide me with this image?

Thanks,

Pieter

Pieter Bowman                        Voice:                 1-801-581-5252
University of Utah                   FAX:                   1-801-581-4148
Department of Mathematics            Email:           bowman@math.utah.edu
155 S 1400 E RM 233                  URL: http://www.math.utah.edu/~bowman
Salt Lake City, Ut, 84112-0090       Office:                       103 LCB

 9-Jan-2005 23:27:53 -0800,1477;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Sun, 9 Jan 2005 23:27:53 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id XAA17921; Sun, 9 Jan 2005 23:27:51 -0800 (PST)
Date: Sun, 9 Jan 2005 23:06:57 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: Panda distribution
To: bowman@math.utah.edu
cc: TOPS-20@lingling.panda.com
In-Reply-To: <CMM.0.92.0.1105301013.bowman@tortola.math.utah.edu>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <13993324443.9.MRC@lingling.panda.com>

I distribute the Panda distribution, on individual request.  It
is not possible to pull the distribution from panda.com (due to
security and other reasons), so typically the requestor gives me
scp access (I need about 200MB free disk space) and I will push
it from here.

I generally prefer that people not redistribute the Panda
distribution, but I do *NOT* prohibit it.  The reason for the
preference is my desire that new installations get the newest
bits.  But, if you insist, you can get it from a third-party or
redistribute your copy.

My newest laptop computer has a CD-ROM burner, so I will probably
be moving towards a CD-ROM based distribution in the future,
since the Internet transfer takes nearly two hours over a DSL
line.  I will probably also start versioning.
-------
19-Jan-2005 09:31:13 -0800,5144;000000000000
Return-Path: <beebe@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Wed, 19 Jan 2005 09:31:13 -0800 (PST)
Return-Path: <beebe@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id JAA26087; Wed, 19 Jan 2005 09:31:11 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Wed, 19 Jan 2005 09:14:18 -0800 (PST)
Received: from psi.math.utah.edu (IDENT:xy86+F66pBGGTyPa6us3icPg59EMuAZP@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0JHEGAZ008459;
	Wed, 19 Jan 2005 10:14:16 -0700 (MST)
Received: from psi.math.utah.edu (IDENT:y+GXNth5kqHNb8TeeMsQ5P+XDpCPAY+a@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0JHEGUp016307;
	Wed, 19 Jan 2005 10:14:16 -0700 (MST)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j0JHEFbV016306;
	Wed, 19 Jan 2005 10:14:15 -0700 (MST)
Date: Wed, 19 Jan 2005 10:14:15 -0700 (MST)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Underflow handling on TOPS-20: memories, anyone?
Message-ID: <CMM.0.92.0.1106154855.beebe@psi.math.utah.edu>

On TOPS-20 on KLH10, a Fortran program to compute the floating-point
underflow limit behaves as expected:

	@type sglufl.for
	      real x
	      integer k

	      k = 0
	      x = 1.0
	 10   if (x / 2.0 .gt. 0.0) then
		 x = x / 2.0
		 k = k + 1
		 go to 10
	      end if
	      write (6,*) 'Single precision underflow after x = ',x,' = 2**-',k
	      write (6,'('' x = '', O12)') x
	      call exit
	      end

	@execute sglufl.for
	FORTRAN: SGLUFL
	MAIN.
	LINK:   Loading
	[LNKXCT SGLUFL execution]
	%Floating underflow at 10P+1 in MAIN. (PC 200)
	Single precision underflow after x = 1.4693679E-39 = 2**-129
	x = 000400000000
	CPU time 0.01   Elapsed time 0.01
	[1  Floating underflow]

Pascal also behaves (mostly) properly:

	@type sglufl.pas
	program sglufl(output);
	var x   : real;
	   xold : real;
	    k   : integer;

	begin
	   k := 0;
	   x := 1.0;
	   xold := 2.0;
	   while ((x / 2.0) > 0.0) AND (x < xold) do
	   begin
	      xold := x;
	      x := x / 2.0;
	      k := k + 1;
	   end;
	   writeln('Real underflow after x = ', x:17, ' = 2**-', k);
	   if x > xold then
	   begin
	      writeln('ERROR: underflow wrapped from ', xold:17, ' to ', x:17)
	   end
	end.

	@execute sglufl.pas
	PASCAL: SGLUFL
	LINK:   Loading
	[LNKXCT SGLUFL execution]
	OUTPUT     : tty:
	? Floating underflow at user PC 400027
	[Type CONTINUE to proceed if possible.]
	@continue
	Real underflow after x =      1.469368E-39 = 2**-         129

The corresponding program in C with kcc-20 goes into an infinite loop,
because the underflow wraps around to a large number, instead of being
set to zero by a software trap handler.  I therefore added some code
to check for the wrap, with these results:

	@type sglufl.c
	#include <stdio.h>
	#include <stdlib.h>
	#include <math.h>

	int
	main(void)
	{
		int k;
		float x, xold;

		k = 0;
		x = 1.0F;
		while ((x / 2.0F) > 0.0F)
		{
			xold = x;
			x /= 2.0F;
			++k;
			if (x > xold) break;
		}

		printf("Single precision underflow after x = %.10e = 2**(-%d)\n", x, k);
		if (x > xold)
			printf("ERROR: underflow wrapped from %.10e to %.10e\n", xold, x);
		return (EXIT_SUCCESS);
	}

	@execute sglufl.c
	LINK:   Loading
	[LNKXCT SGLUFL execution]
	Single precision underflow after x = 8.5070591730e+37 = 2**(-130)
	ERROR: underflow wrapped from 1.4693679385e-39 to 8.5070591730e+37

Does anyone on this list recall how one gets floating-point arithmetic
in C to be handled properly, so that overflow caps at the maximum
representable floating-point number, instead of wrapping to underflow,
and underflow goes to zero instead of wrapping to a large number?

I have a 14-year-old vague memory that there might have been a system
.rel file that could be loaded with the program to fix the problem.

This morning, I got a 35K-line numerical program in C to build in the
36-bit PDP-10 world, but it isn't practical to use it until I can
solve the underflow and overflow problems.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
20-Jan-2005 07:45:09 -0800,5953;000000000000
Return-Path: <beebe@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Thu, 20 Jan 2005 07:45:09 -0800 (PST)
Return-Path: <beebe@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id HAA26622; Thu, 20 Jan 2005 07:45:08 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Thu, 20 Jan 2005 07:27:15 -0800 (PST)
Received: from psi.math.utah.edu (IDENT:hTQhMRpLzx08lxIYe7hAuPYNKjZ86Wlk@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0KFRERw010318;
	Thu, 20 Jan 2005 08:27:14 -0700 (MST)
Received: from psi.math.utah.edu (IDENT:wkrhGWk7x9+X3QbYzXv/IoEvralmv1JY@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0KDjScp029381;
	Thu, 20 Jan 2005 06:45:28 -0700 (MST)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j0KDjSNg029380;
	Thu, 20 Jan 2005 06:45:28 -0700 (MST)
Date: Thu, 20 Jan 2005 06:45:28 -0700 (MST)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: [TOPS-20] Powers of 2: Fortran vs. C
Message-ID: <CMM.0.92.0.1106228728.beebe@psi.math.utah.edu>

In further work with my numerical program in C on TOPS-20, I found
another problem: severe accuracy loss of about 12 bits (out of 62) in
the C pow() function.

This is illustrated by two short programs, an accurate one in Fortran,
and an unacceptably inaccurate one in C, forcing me to write my own
replacement.

	@type tpower.for
	      double precision x
	      double precision two
	      two = 2.0d0
	      do 10 k = -40, 40, 4
		  write (6,'(1x,a,i3,a,1pe27.20,a,''0x'',z18.18)')
	     x        '2**', k, ' = ', two**k, ' = ', two**k
	   10 continue
	      end

	@execute tpower.for
	FORTRAN: TPOWER
	MAIN.
	LINK:   Loading
	[LNKXCT TPOWER execution]
	2**-40 =  9.09494701772928237920E-13 = 0x2CC000000000000000
	2**-36 =  1.45519152283668518070E-11 = 0x2EC000000000000000
	2**-32 =  2.32830643653869628910E-10 = 0x30C000000000000000
	2**-28 =  3.72529029846191406250E-09 = 0x32C000000000000000
	2**-24 =  5.96046447753906250000E-08 = 0x34C000000000000000
	2**-20 =  9.53674316406250000000E-07 = 0x36C000000000000000
	2**-16 =  1.52587890625000000000E-05 = 0x38C000000000000000
	2**-12 =  2.44140625000000000000E-04 = 0x3AC000000000000000
	2** -8 =  3.90625000000000000000E-03 = 0x3CC000000000000000
	2** -4 =  6.25000000000000000000E-02 = 0x3EC000000000000000
	2**  0 =  1.00000000000000000000E+00 = 0x40C000000000000000
	2**  4 =  1.60000000000000000000E+01 = 0x42C000000000000000
	2**  8 =  2.56000000000000000000E+02 = 0x44C000000000000000
	2** 12 =  4.09600000000000000000E+03 = 0x46C000000000000000
	2** 16 =  6.55360000000000000000E+04 = 0x48C000000000000000
	2** 20 =  1.04857600000000000000E+06 = 0x4AC000000000000000
	2** 24 =  1.67772160000000000000E+07 = 0x4CC000000000000000
	2** 28 =  2.68435456000000000000E+08 = 0x4EC000000000000000
	2** 32 =  4.29496729600000000000E+09 = 0x50C000000000000000
	2** 36 =  6.87194767360000000000E+10 = 0x52C000000000000000
	2** 40 =  1.09951162777600000000E+12 = 0x54C000000000000000
	CPU time 0.02   Elapsed time 0.10

	@delete tpower.rel
	 TPOWER.REL.1 [OK]

	@type tpower.c
	#include <stdio.h>
	#include <math.h>
	#include <stdlib.h>

	int
	main(void)
	{
	    int k;
	    union {double d; int i[2];} u;
	    for (k = -40; k <= 40; k += 4)
	    {
		u.d = pow(2.0, (double)k);
		printf("2**%3d = %.20le = 0x%09x_%09x\n", k, u.d, u.i[0], u.i[1]);
	    }
	    return (EXIT_SUCCESS);
	}

	@execute tpower.c
	KCC:    TPOWER
	<BEEBE>TPOWER.PRE.1
	<BEEBE>TPOWER.FAI.1
	FAIL:  TPOWER
	LINK:   Loading
	[LNKXCT TPOWER execution]
	2**-40 = 9.09494701772971442937e-13 = 0x2cc000000_00001abe0
	2**-36 = 1.45519152283674739357e-11 = 0x2ec000000_000018113
	2**-32 = 2.32830643653878475388e-10 = 0x30c000000_00001563b
	2**-28 = 3.72529029846203788706e-09 = 0x32c000000_000012b62
	2**-24 = 5.96046447753923226524e-08 = 0x34c000000_00001008a
	2**-20 = 9.53674316406272630508e-07 = 0x36c000000_00000d5bd
	2**-16 = 1.52587890625002895305e-05 = 0x38c000000_00000aae9
	2**-12 = 2.44140625000003471441e-04 = 0x3ac000000_000008012
	2** -8 = 3.90625000000003697216e-03 = 0x3cc000000_000005541
	2** -4 = 6.25000000000002944346e-02 = 0x3ec000000_000002a6e
	2**  0 = 1.00000000000000000000e+00 = 0x40c000000_000000000
	2**  4 = 1.59999999999999246349e+01 = 0x427ffffff_7ffffab25
	2**  8 = 2.55999999999997576976e+02 = 0x447ffffff_7ffff557e
	2** 12 = 4.09599999999994176039e+03 = 0x467ffffff_7fffeffdd
	2** 16 = 6.55359999999987564468e+04 = 0x487ffffff_7fffeaa2e
	2** 20 = 1.04857599999997511824e+06 = 0x4a7ffffff_7fffe5487
	2** 24 = 1.67772159999995221658e+07 = 0x4c7ffffff_7fffdfeed
	2** 28 = 2.68435455999991077948e+08 = 0x4e7ffffff_7fffda93c
	2** 32 = 4.29496729599983681144e+09 = 0x507ffffff_7fffd538b
	2** 36 = 6.87194767359970621299e+10 = 0x527ffffff_7fffcfddb
	2** 40 = 1.09951162777594776923e+12 = 0x547ffffff_7fffca841

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
20-Jan-2005 09:53:51 -0800,1576;000000000000
Return-Path: <billw@cisco.com>
Received: via tmail-2002(14) for t20arc; Thu, 20 Jan 2005 09:53:50 -0800 (PST)
Return-Path: <billw@cisco.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id JAA26684; Thu, 20 Jan 2005 09:53:49 -0800 (PST)
Received: from sj-iport-1.cisco.com ([171.71.176.70]) by lingling.panda.com with TCP/SMTP; Thu, 20 Jan 2005 09:35:52 -0800 (PST)
Received: from sj-core-2.cisco.com (171.71.177.254)
  by sj-iport-1.cisco.com with ESMTP; 20 Jan 2005 09:42:47 -0800
X-BrightmailFiltered: true
X-Brightmail-Tracker: AAAAAA==
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-2.cisco.com (8.12.10/8.12.6) with ESMTP id j0KHZgl2026166;
	Thu, 20 Jan 2005 09:35:42 -0800 (PST)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id JAA06371;
	Thu, 20 Jan 2005 09:35:50 -0800 (PST)
Sender: Bill Westfield <billw@cisco.com>
Date: Thu, 20 Jan 2005 9:35:49 PST
From: William "Chops" Westfield <billw@cisco.com>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Cc: TOPS-20@lingling.panda.com, beebe@math.utah.edu
Subject: Re: [TOPS-20] Powers of 2: Fortran vs. C
In-Reply-To: Your message of Thu, 20 Jan 2005 06:45:28 -0700 (MST)
Message-ID: <CMM.0.90.4.1106242549.billw@cypher>

Why don't you re-write the C compiler to (be able to) use the fortran
math libraries?  Seems to me that having a single set of math libararies
is a good thing, if only because you only have to fix bugs once after
that!  Does this option already exist?

BillW
20-Jan-2005 11:21:12 -0800,2338;000000000000
Return-Path: <sra@hactrn.net>
Received: via tmail-2002(14) for t20arc; Thu, 20 Jan 2005 11:21:12 -0800 (PST)
Return-Path: <sra@hactrn.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id LAA26745; Thu, 20 Jan 2005 11:21:11 -0800 (PST)
Received: from cyteen.hactrn.net ([66.92.66.68]) by lingling.panda.com with TCP/SMTP; Thu, 20 Jan 2005 11:03:30 -0800 (PST)
Received: from thrintun.hactrn.net (thrintun.hactrn.net [IPv6:2002:425c:4242:0:250:daff:fe82:1c39])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client CN "thrintun.hactrn.net", Issuer "Grunchweather Associates" (verified OK))
	by cyteen.hactrn.net (Postfix) with ESMTP id 928C676
	for <TOPS-20@lingling.panda.com>; Thu, 20 Jan 2005 14:03:28 -0500 (EST)
Received: from thrintun.hactrn.net (localhost [IPv6:::1])
	by thrintun.hactrn.net (Postfix) with ESMTP id 8AA7241E3
	for <TOPS-20@lingling.panda.com>; Thu, 20 Jan 2005 14:03:27 -0500 (EST)
Date: Thu, 20 Jan 2005 14:03:27 -0500
From: Rob Austein <sra@hactrn.net>
To: TOPS-20@lingling.panda.com
Subject: Re: [TOPS-20] Powers of 2: Fortran vs. C
In-Reply-To: <CMM.0.90.4.1106242549.billw@cypher>
MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen")
Content-Type: text/plain; charset=US-ASCII
Message-Id: <20050120190327.8AA7241E3@thrintun.hactrn.net>

At Thu, 20 Jan 2005 9:35:49 PST, William Chops Westfield wrote:
> 
> Why don't you re-write the C compiler to (be able to) use the fortran
> math libraries?  Seems to me that having a single set of math libararies
> is a good thing, if only because you only have to fix bugs once after
> that!  Does this option already exist?

I have a vague recollection that the FORTRAN calling sequence is
incompatable with KCC, Pascal, or any other language that allows
recursion.  So, while this would no doubt be doable, it would indeed
either require hacking the compiler or hacking assembly code to wrap
the calling sequence.  Be warned that, at least at one point, FOROTS
reserved the right to relocate the stack.  The manual included
warnings about storing data on the stack due to this quirk: pointers
to automatic variables would obviously be a problem, but I seem to
recall something close to blanket prohibition on storing anything
other than return addresses.
20-Jan-2005 11:32:13 -0800,881;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Thu, 20 Jan 2005 11:32:13 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id LAA26751; Thu, 20 Jan 2005 11:32:13 -0800 (PST)
Date: Thu, 20 Jan 2005 11:05:25 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: [TOPS-20] Powers of 2: Fortran vs. C
To: beebe@math.utah.edu
cc: TOPS-20@lingling.panda.com
In-Reply-To: <CMM.0.92.0.1106228728.beebe@psi.math.utah.edu>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <13996076676.9.MRC@lingling.panda.com>

For what it's worth, I just tried that C program on a XKL processor and got
identical (bad) results.  So it's definitely a problem in the C library and
not in the KLH10 processor.
-------
20-Jan-2005 12:06:38 -0800,966;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Thu, 20 Jan 2005 12:06:38 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id MAA26789; Thu, 20 Jan 2005 12:06:37 -0800 (PST)
Date: Thu, 20 Jan 2005 11:52:20 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: [TOPS-20] Powers of 2: Fortran vs. C
To: beebe@math.utah.edu
cc: TOPS-20@lingling.panda.com
In-Reply-To: <CMM.0.92.0.1106228728.beebe@psi.math.utah.edu>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <13996085219.9.MRC@lingling.panda.com>

I took at look at <KCC-6.LIB.MATH>POW.C and I can't see how the numerical
errors can be avoided given that implementation.  In short, it does power
via exp(y*log(x)).

It looks to me that the UNIX C library handles pow() specially when the
exponent is integral.
-------
24-Jan-2005 15:06:27 -0800,4171;000000000000
Return-Path: <beebe@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Mon, 24 Jan 2005 15:06:27 -0800 (PST)
Return-Path: <beebe@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id PAA00738; Mon, 24 Jan 2005 15:06:25 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Mon, 24 Jan 2005 14:47:42 -0800 (PST)
Received: from psi.math.utah.edu (IDENT:kpDS0JA8OYKJJD0HKlf346ylaVuF7lPO@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0OMldSd011932;
	Mon, 24 Jan 2005 15:47:39 -0700 (MST)
Received: from psi.math.utah.edu (IDENT:BkIc/EllqfP9lylcf0J9ZlqnYVBSHjen@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0OMldK3028618;
	Mon, 24 Jan 2005 15:47:39 -0700 (MST)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j0OMldKx028616;
	Mon, 24 Jan 2005 15:47:39 -0700 (MST)
Date: Mon, 24 Jan 2005 15:47:39 -0700 (MST)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: [TOPS-20] A linker surprise, and a workaround
Message-ID: <CMM.0.92.0.1106606859.beebe@psi.math.utah.edu>

After getting the numerical program that I'm working on running under
TOPS-20, after years of development on Unix, I found that the old
PDP-10 single-segment 2**18-word address space was too small for the
data that I want to process.

I looked at the documentation of kcc in "help cc", and found that
extended addressing is available with the -i option:

>> ...
>> 	<2 KCC Internals - Extended addressing>
>>
>> 		A C program can be run in an extended section by specifying
>> 	this in either of two ways at load time, depending on whether you are
>> 	using KCC or the EXEC to do the loading.
>>
>> 		(a) KCC: Use the "-i" switch.
>> 			e.g.	@cc -i prog.c
>> 			or:	@cc -i=extend prog.c
>> 		(b) LOAD (or LINK): The first module should be C:LIBCKX.
>> 			e.g.	@load c:libckx,prog
>>
>> 	No special switches need be given to KCC for the generated code to be
>> 	suitable for extended addressing - the same code will always run
>> 	either extended or non-extended.
>> ...

I then tried

	@cc -o foo *.rel
	@cc -i -o xfoo *.rel

to build two versions of my program.  To my surprise, the
single-segment version worked fine, but the extended-addressing
version behaved differently.

I put this issue aside until early Sunday morning, when a two-window
debugging session with ddt let me tediously step the two programs in
parallel until they diverged.  That happened like this:

good foo:

	452614/   PUSH 17,3   $x
	   17/   TLCN 13,247550(10)   3/   SUBXXX
	452615/   PUSHJ 17,CODE   $x
	   17/   TLCN 13,247551(11)
	<JUMP>
	CODE/   PUSH 17,PROGP

bad xfoo:
	1,,452605/   PUSH 17,3   $x
	   17/   2,,1217   1,,3/   SUBXXX
	1,,452606/   PUSHJ 17,$$$CPU   $x
	   17/   2,,1220
	<JUMP>
	$$$CPU/   POPJ 17,0

Hmm.... two different target addresses.

foo:
	code=420004   $$$cpu=523433

xfoo:
	$$$cpu=1,,400000   code=1,,400000

On a hunch that my function name "code" was colliding with a linker
symbol, I recompiled my program with the equivalent of -Dcode=code__,
and relinked with -i: it now works.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
24-Jan-2005 16:52:54 -0800,13113;000000000000
Return-Path: <beebe@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Mon, 24 Jan 2005 16:52:54 -0800 (PST)
Return-Path: <beebe@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id QAA00776; Mon, 24 Jan 2005 16:52:52 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Mon, 24 Jan 2005 16:35:26 -0800 (PST)
Received: from psi.math.utah.edu (IDENT:LeDJXi0esLLz+0uSlRj8mXFkqamef/wv@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0P0ZNhr016383;
	Mon, 24 Jan 2005 17:35:23 -0700 (MST)
Received: from psi.math.utah.edu (IDENT:SHFP35TJXbJHq1dhwliDVqxb2npIxcJg@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0P0ZN59029039;
	Mon, 24 Jan 2005 17:35:23 -0700 (MST)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j0P0ZNpI029037;
	Mon, 24 Jan 2005 17:35:23 -0700 (MST)
Date: Mon, 24 Jan 2005 17:35:23 -0700 (MST)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: [TOPS-20] News: ELEFUNT elementary function test results for Fortran
        and C
Message-ID: <CMM.0.92.0.1106613323.beebe@psi.math.utah.edu>

Many years ago, I began using the ELEFUNT test package for evaluating
the quality of the elementary functions (cos, cosh, exp, log, power,
sin, sinh, sqrt, tan, and tanh) defined in Fortran.  The ELEFUNT
package is described in this landmark, but now out-of-print, book:

	@String{pub-PH                  = "Pren{\-}tice-Hall"}
	@String{pub-PH:adr              = "Upper Saddle River, NJ 07458, USA"}

	@Book{Cody:SME80,
	  author =       "William J. {Cody, Jr.} and William Waite",
	  title =        "Software Manual for the Elementary Functions",
	  publisher =    pub-PH,
	  address =      pub-PH:adr,
	  pages =        "x + 269",
	  year =         "1980",
	  ISBN =         "0-13-822064-6",
	  LCCN =         "QA331 .C635 1980",
	  bibdate =      "Tue Dec 14 23:28:38 1993",
	}

In the summer of 1987, with a student assistant, we translated the
entire package from Fortran to C.  More recently, in late spring 2002,
I translated the package to Java, and also added Fortran and C
versions for testing quadruple-precision versions of the elementary
functions.  The Java translation includes a useful standalone Java
class for formatted output, something that is sorely lacking in that
language.

All of the ELEFUNT code, including our extensions, is freely available
at

	ftp://ftp.math.utah.edu/pub/elefunt
	http://www.math.utah.edu/pub/elefunt/

The ELEFUNT output listings are interesting but lengthy, so several
years ago I wrote a small awk filter to summarize the worst-case
reports from each test, one per line, omitting results that are
`sufficiently accurate' (default: errors of 2 bits or less).  This
makes it much easier to scan the cumulative output from many different
systems for the trouble spots.

In my archives, I have some 15-Oct-1981 reports that I wrote about the
ELEFUNT results in Fortran versions 5A and 6 on our DEC-20/60,
although it doesn't record the versions of the Exec or the Monitor.

At the time, the results with Fortran 5A were poor (in some cases, 2/3
of the computed bits were wrong), but they improved a lot with Fortran
version 6.  In my 1981 report, I wrote this about the results from the
latter:

>> ...
>> When the accuracy loss figures for V6 are compared with those given by
>> Cody and Waite for the single  precision functions tested in at  least
>> four environments (usually  2 IBM and  2 CDC), the  V6 performance  is
>> found to be no worse,  and often better than  all of the others.   The
>> only exception to this  is the DTANH function,  which loses about  0.6
>> bits more than the worst case  reported by Cody and Waite.  One  other
>> discrepancy was  noted  in  the  power  operator  test;  (-2.0)**(2.0)
>> returns 4.0 without an  error message.  This is  a clear violation  of
>> the FORTRAN 77 Standard (Section 6.1.4, p. 6-6, line 38).
>> ...

The troublesome results were these, reformatted to show worst-case
relative errors (WRE) and root mean square relative errors (RMS) in
bits in the 62-bit significand of the PDP-10 D-floating format 72-bit
hardware DOUBLE PRECISION arithmetic:

---------------------------------------------------------------------------------------
                                                          WRE      RMS     WRE      RMS
                                                        --BITS OKAY--     --BITS LOST--
---------------------------------------------------------------------------------------
TEST OF DATAN(X) VS TRUNCATED TAYLOR SERIES             -61.08 -999.00    0.92  -937.00
TEST OF DLOG10(X) VS DLOG10(11X/10)-DLOG10(11/10)       -59.25  -61.21    2.75     0.79
TEST OF X**1.0 VS X                                    -999.00 -999.00 -937.00  -937.00
TEST OF DSQRT(X*X) - X                                 -999.00 -999.00 -937.00  -937.00
TEST OF DTAN(X) VS 2*DTAN(X/2)/(1-DTAN(X/2)**2)         -59.61  -61.31    2.39     0.69
TEST OF DTAN(X) VS 2*DTAN(X/2)/(1-DTAN(X/2)**2)         -59.71  -61.30    2.29     0.70
---------------------------------------------------------------------------------------

The -999 results indicate test failures where unexpected overflow
caused problems.

Well, 23 years have gone by, and now we have a much newer TOPS-20
Fortran:

	@get sys:fortra
	@information (about) version
	 Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4
	 PANDA TOPS-20 Command processor 7.1(4453)-4
	 Program is FORTRA, version is 11(4561)

Here are the worst case results for it, computed two days ago:

-------------------------------------------------------------------------------------------------
                                                                       BITS OKAY       BITS LOST
                                                                       WRE   RMS      WRE    RMS
-------------------------------------------------------------------------------------------------
TEST OF DLOG10(X) VS DLOG10(11X/10)-DLOG10(11/10)                     59.25  61.21    2.75   0.79
TEST OF DCOSH(X) VS C*(DCOSH(X+1)+DCOSH(X-1))                         59.99  61.77    2.01   0.23
TEST OF DTAN(X) VS 2*DTAN(X/2)/(1-DTAN(X/2)**2)                       59.53  61.37    2.47   0.63
TEST OF DTAN(X) VS 2*DTAN(X/2)/(1-DTAN(X/2)**2)                       59.99  61.84    2.01   0.16
TEST OF DTAN(X) VS 2*DTAN(X/2)/(1-DTAN(X/2)**2)                       59.65  61.34    2.35   0.66
TEST OF DCOT(X) VS (DCOT(X/2)**2-1)/(2*DCOT(X/2))                     59.84  61.73    2.16   0.27
TEST OF DCOT(X) VS (DCOT(X/2)**2-1)/(2*DCOT(X/2))                     59.84  62.00    2.16   0.00
-------------------------------------------------------------------------------------------------

These results are really very good: it is very hard to do better
without resorting to higher-precision computation.  That would have
been relatively costly on 1980s hardware running at under 1 Mflop/s,
since it would have needed a complete quadruple-precision software
package.  In 50+ years of electronic computers, the only systems to
provide hardware quadruple-precision floating-point arithmetic have
been IBM mainframes in the System/360 family.

With the KCC-6 C math library in 2005, however, the picture is
decidedly not as rosy:

-------------------------------------------------------------------------------------------------
                                                                       BITS OKAY       BITS LOST
                                                                       WRE   RMS      WRE    RMS
-------------------------------------------------------------------------------------------------
TEST OF ALOG(X) VS T.S. EXPANSION OF ALOG(1+Y)                        58.53  59.05    3.47   2.95
TEST OF ALOG(X) VS ALOG(17X/16)-ALOG(17/16)                           48.75  50.15   13.25  11.85
TEST OF ALOG10(X) VS ALOG10(11X/10)-ALOG10(11/10)                     48.38  49.82   13.62  12.18
TEST OF ALOG(X*X) VS 2 * LOG(X)                                       52.06  53.94    9.94   8.06
TEST OF ASIN(X) VS TAYLOR SERIES                                      17.78  21.46   44.22  40.54
TEST OF ACOS(X) VS TAYLOR SERIES                                      26.42  30.34   35.58  31.66
TEST OF ASIN(X) VS TAYLOR SERIES                                      25.96  30.11   36.04  31.89
TEST OF ACOS(X) VS TAYLOR SERIES                                      24.86  28.96   37.14  33.04
TEST OF ACOS(X) VS TAYLOR SERIES                                      27.24  31.48   34.76  30.52
TEST OF ATAN(X) VS TRUNCATED TAYLOR SERIES                            17.71  20.92   44.29  41.08
TEST OF ATAN(X) VS ATAN(1/16) + ATAN((X-1/16)/(1+X/16))               21.88  26.06   40.12  35.94
TEST OF 2*ATAN(X) VS ATAN(2X/(1-X*X))                                 24.90  29.20   37.10  32.80
TEST OF 2*ATAN(X) VS ATAN(2X/(1-X*X))                                 24.84  28.92   37.16  33.08
TEST OF EXP(X- 0.0625) VS EXP(X)/EXP( 0.0625)                         53.31  54.08    8.69   7.92
TEST OF EXP(X- 2.8125) VS EXP(X)/EXP( 2.8125)                         53.34  55.14    8.66   6.86
TEST OF EXP(X- 2.8125) VS EXP(X)/EXP( 2.8125)                         53.33  55.19    8.67   6.81
TEST OF X**1.0 VS X                                                   49.54  51.42   12.46  10.58
TEST OF XSQ**1.5 VS XSQ*X                                             48.98  50.75   13.02  11.25
TEST OF XSQ**1.5 VS XSQ*X                                              5.05   9.15   56.95  52.85
TEST OF X**Y VS XSQ**(Y/2)                                            46.37  48.22   15.63  13.78
TEST OF SIN(X) VS 3*SIN(X/3)-4*SIN(X/3)**3                            53.72  54.76    8.28   7.24
TEST OF SIN(X) VS 3*SIN(X/3)-4*SIN(X/3)**3                            47.36  52.70   14.64   9.30
TEST OF COS(X) VS 4*COS(X/3)**3-3*COS(X/3)                            47.63  52.71   14.37   9.29
TEST OF SINH(X) VS T.S. EXPANSION OF SINH(X)                          46.92  49.83   15.08  12.17
TEST OF COSH(X) VS T.S. EXPANSION OF COSH(X)                          55.44  56.70    6.56   5.30
TEST OF SINH(X) VS C*(SINH(X+1)+SINH(X-1))                            53.39  55.30    8.61   6.70
TEST OF COSH(X) VS C*(COSH(X+1)+COSH(X-1))                             0.16   5.65   61.84  56.35
TEST OF TAN(X) VS 2*TAN(X/2)/(1-TAN(X/2)**2)                          52.60  53.69    9.40   8.31
TEST OF TAN(X) VS 2*TAN(X/2)/(1-TAN(X/2)**2)                          47.69  52.55   14.31   9.45
TEST OF TAN(X) VS 2*TAN(X/2)/(1-TAN(X/2)**2)                          43.51  48.99   18.49  13.01
TEST OF COT(X) VS (COT(X/2)**2-1)/(2*COT(X/2))                        46.33  51.65   15.67  10.35
TEST OF COT(X) VS (COT(X/2)**2-1)/(2*COT(X/2))                        46.33  54.87   15.67   7.13
TEST OF TANH(X) VS (TANH(X-1/8)+TANH(1/8))/(1+TANH(X-1/8)TANH(1/8))   50.87  52.98   11.13   9.02
TEST OF TANH(X) VS (TANH(X-1/8)+TANH(1/8))/(1+TANH(X-1/8)TANH(1/8))   45.19  49.10   16.81  12.90
-------------------------------------------------------------------------------------------------

These results do not show additional test failures that arise because
of the wraparound from overflow to underflow that I reported on this
list a few days ago.

It has already been observed on this list that interlanguage calling
was in general not possible on TOPS-20, because of different
argument-passing conventions, because the Fortran run-time library can
unpredictably move the stack, invalidating absolute pointers into it,
and because run-time error messages do not use the same I/O library
and file conventions.  Thus, it is unlikely to be feasible to replace
the deficient C math library with wrappers that call the Fortran
library instead.

I might return to the problem of providing a better math library for
kcc-20, but for now, the ELEFUNT tests identify the math library
weaknesses for C programmers.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
24-Jan-2005 17:03:07 -0800,2773;000000000000
Return-Path: <beebe@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Mon, 24 Jan 2005 17:03:07 -0800 (PST)
Return-Path: <beebe@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id RAA00793; Mon, 24 Jan 2005 17:03:06 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Mon, 24 Jan 2005 16:44:36 -0800 (PST)
Received: from psi.math.utah.edu (IDENT:KgvMCBRdCPjq+Dpkx80TnPLfJPjX9kSE@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0P0iYf8016681;
	Mon, 24 Jan 2005 17:44:35 -0700 (MST)
Received: from psi.math.utah.edu (IDENT:4lIfdXg4ogFAdKLMACiGvui0wBNCyhmi@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0P0iYB3029139;
	Mon, 24 Jan 2005 17:44:34 -0700 (MST)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j0P0iYcd029137;
	Mon, 24 Jan 2005 17:44:34 -0700 (MST)
Date: Mon, 24 Jan 2005 17:44:34 -0700 (MST)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: [TOPS-20] Does "set address-break" work on TOPS-20 with KLH10?
Message-ID: <CMM.0.92.0.1106613874.beebe@psi.math.utah.edu>

One of the great debugging features of TOPS-20 that I used to employ a
lot was the EXEC set address-break instruction:

	@get prog
	@set addRESS-BREAK (AT) main ,
	@@? confirm with carriage return
	  or one of the following:
	 AFTER     ALL        EXECUTE    NONE       READ       WRITE
	@@...

My experiments this past week suggest that, while I can set the break
at the EXEC level, the break is never taken: I've tried read, write,
and execute.

I can understand that this might have required some sort of special
microcoded hardware assist on our DEC-20/40 and 20/60 systems.  Is it
known not to work with the KLH10 machine?

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
24-Jan-2005 17:13:16 -0800,3500;000000000000
Return-Path: <beebe@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Mon, 24 Jan 2005 17:13:16 -0800 (PST)
Return-Path: <beebe@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id RAA00801; Mon, 24 Jan 2005 17:13:14 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Mon, 24 Jan 2005 16:51:47 -0800 (PST)
Received: from psi.math.utah.edu (IDENT:lPck0Bmq3jPVv2Nkx+z/ZGBK2uf4w7n7@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0P0pcoV017033;
	Mon, 24 Jan 2005 17:51:38 -0700 (MST)
Received: from psi.math.utah.edu (IDENT:CWcW17qUnztpWZmm12Mm4W6LJ8HOZYWC@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0P0pcXi029172;
	Mon, 24 Jan 2005 17:51:38 -0700 (MST)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j0P0pbEY029171;
	Mon, 24 Jan 2005 17:51:37 -0700 (MST)
Date: Mon, 24 Jan 2005 17:51:37 -0700 (MST)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: [TOPS-20] Command-line history and editing?
Message-ID: <CMM.0.92.0.1106614297.beebe@psi.math.utah.edu>

After 20+ years of using Unix shells with command history and command
editing, I'm finding it painful not to have it on TOPS-20.  Some
experiments suggest that it might/should be there:

	@dir hlp:exec*

	   TOPS20:<HELP>
	 EXEC-ALTER-KEYS.HLP.1
	 EXEC-COMMAND-EDITOR.HLP.1
	 EXEC-EMACS-KEYS.HLP.1
	 EXEC-SED-KEYS.HLP.1
	 EXEC-VMS-KEYS.HLP.1

	 Total of 5 pages in 5 files

	@set history 25

	@set edit hiSTORY 25

	@set edit modE (TO) emaCS-STYLE-COMMANDS

	...

	@i history
	 History: 25
	 [1] set edit modE (TO) emaCS-STYLE-COMMANDS
	 [2] type hlp:EXEC-EMACS-KEYS.HLP
	 [3] i term

The help file says:

	@type hlp:EXEC-EMACS-KEYS.HLP
	This is the Emacs mode command editor.

	<cr> Execute edited command        ^N   Edit the next command line
	^P   Edit previous command line    ^F   Move forward one character
	^B   Move back one character       ^L   Redisplay the command line
	^E   Move to end of the line       ^A   Move to beginning of the line
	^D   Delete character at cursor    ^K   Delete to end of line
	^Y   Yank text from kill buffer    ^V   Quote the next character for insert
	^T   Swap the character at the cursor with the one before it
	...

However, Ctl-P doesn't recall the last command in my vt100-mode
terminal windows.

Am I doing something wrong, or is command-line editing a TOPS-20
feature that was never completed?

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
24-Jan-2005 20:31:55 -0800,2232;000000000000
Return-Path: <MRC@CAC.Washington.EDU>
Received: via tmail-2002(14) for t20arc; Mon, 24 Jan 2005 20:31:54 -0800 (PST)
Return-Path: <MRC@CAC.Washington.EDU>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id UAA00892; Mon, 24 Jan 2005 20:31:53 -0800 (PST)
Received: from mxout2.cac.washington.edu ([140.142.33.4]) by lingling.panda.com with TCP/SMTP; Mon, 24 Jan 2005 20:17:08 -0800 (PST)
Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.139])
	by mxout2.cac.washington.edu (8.13.1+UW04.08/8.13.3+UW05.01) with ESMTP id j0P4H7Zi005114;
	Mon, 24 Jan 2005 20:17:07 -0800
Received: from Tomobiki-Cho.CAC.Washington.EDU (tomobiki-cho.cac.washington.edu [128.95.135.58])
	(authenticated bits=0)
	by smtp.washington.edu (8.13.1+UW04.08/8.13.3+UW05.01) with ESMTP id j0P4H77M023609
	(version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT);
	Mon, 24 Jan 2005 20:17:07 -0800
Date: Mon, 24 Jan 2005 20:17:09 -0800 (Pacific Standard Time)
From: Mark Crispin <MRC@CAC.Washington.EDU>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
cc: TOPS-20@lingling.panda.com
Subject: Re: [TOPS-20] News: ELEFUNT elementary function test results for
 Fortran        and C
In-Reply-To: <CMM.0.92.0.1106613323.beebe@psi.math.utah.edu>
Message-ID: <Pine.WNT.4.62.0501242006430.4012@Tomobiki-Cho.CAC.Washington.EDU>
References: <CMM.0.92.0.1106613323.beebe@psi.math.utah.edu>
Organization: Networks & Distributed Computing
Sender: mrc@lingling.panda.com
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Mon, 24 Jan 2005, Nelson H. F. Beebe wrote:
> I might return to the problem of providing a better math library for
> kcc-20, but for now, the ELEFUNT tests identify the math library
> weaknesses for C programmers.

Looking briefly at the math library sources for the C library, it seems to 
me that they were written to get them done, and not to be particularly 
accurate or high-performing.  So I suspect that you can get quite a bit of 
results with relatively modest work.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
24-Jan-2005 20:43:43 -0800,2093;000000000000
Return-Path: <MRC@CAC.Washington.EDU>
Received: via tmail-2002(14) for t20arc; Mon, 24 Jan 2005 20:43:43 -0800 (PST)
Return-Path: <MRC@CAC.Washington.EDU>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id UAA00911; Mon, 24 Jan 2005 20:43:40 -0800 (PST)
Received: from mxout3.cac.washington.edu ([140.142.32.166]) by lingling.panda.com with TCP/SMTP; Mon, 24 Jan 2005 20:20:40 -0800 (PST)
Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.139])
	by mxout3.cac.washington.edu (8.13.1+UW04.08/8.13.3+UW05.01) with ESMTP id j0P4KdvG011715;
	Mon, 24 Jan 2005 20:20:40 -0800
Received: from Tomobiki-Cho.CAC.Washington.EDU (tomobiki-cho.cac.washington.edu [128.95.135.58])
	(authenticated bits=0)
	by smtp.washington.edu (8.13.1+UW04.08/8.13.3+UW05.01) with ESMTP id j0P4KdpC023750
	(version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT);
	Mon, 24 Jan 2005 20:20:39 -0800
Date: Mon, 24 Jan 2005 20:20:41 -0800 (Pacific Standard Time)
From: Mark Crispin <MRC@CAC.Washington.EDU>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
cc: TOPS-20@lingling.panda.com
Subject: Re: [TOPS-20] Does "set address-break" work on TOPS-20 with KLH10?
In-Reply-To: <CMM.0.92.0.1106613874.beebe@psi.math.utah.edu>
Message-ID: <Pine.WNT.4.62.0501242017170.4012@Tomobiki-Cho.CAC.Washington.EDU>
References: <CMM.0.92.0.1106613874.beebe@psi.math.utah.edu>
Organization: Networks & Distributed Computing
Sender: mrc@lingling.panda.com
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Mon, 24 Jan 2005, Nelson H. F. Beebe wrote:
> One of the great debugging features of TOPS-20 that I used to employ a
> lot was the EXEC set address-break instruction

Address break is not implemented on the KLH10 processor.  Ken believes 
that it would be very slow if implemented.

Read klh10-2.0g/docs/backgrnd.txt for more information.

I miss it too.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
24-Jan-2005 20:54:29 -0800,2052;000000000000
Return-Path: <MRC@CAC.Washington.EDU>
Received: via tmail-2002(14) for t20arc; Mon, 24 Jan 2005 20:54:29 -0800 (PST)
Return-Path: <MRC@CAC.Washington.EDU>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id UAA00917; Mon, 24 Jan 2005 20:54:29 -0800 (PST)
Received: from mxout6.cac.washington.edu ([140.142.33.20]) by lingling.panda.com with TCP/SMTP; Mon, 24 Jan 2005 20:22:10 -0800 (PST)
Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.139])
	by mxout6.cac.washington.edu (8.13.1+UW04.08/8.13.3+UW05.01) with ESMTP id j0P4M99X027392;
	Mon, 24 Jan 2005 20:22:10 -0800
Received: from Tomobiki-Cho.CAC.Washington.EDU (tomobiki-cho.cac.washington.edu [128.95.135.58])
	(authenticated bits=0)
	by smtp.washington.edu (8.13.1+UW04.08/8.13.3+UW05.01) with ESMTP id j0P4M9le023822
	(version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT);
	Mon, 24 Jan 2005 20:22:09 -0800
Date: Mon, 24 Jan 2005 20:22:11 -0800 (Pacific Standard Time)
From: Mark Crispin <MRC@CAC.Washington.EDU>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
cc: TOPS-20@lingling.panda.com
Subject: Re: [TOPS-20] Command-line history and editing?
In-Reply-To: <CMM.0.92.0.1106614297.beebe@psi.math.utah.edu>
Message-ID: <Pine.WNT.4.62.0501242020500.4012@Tomobiki-Cho.CAC.Washington.EDU>
References: <CMM.0.92.0.1106614297.beebe@psi.math.utah.edu>
Organization: Networks & Distributed Computing
Sender: mrc@lingling.panda.com
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Mon, 24 Jan 2005, Nelson H. F. Beebe wrote:
> However, Ctl-P doesn't recall the last command in my vt100-mode
> terminal windows.

You have to set the edit interrupt-character to enable the command editor, 
and type that character to get into it.

I use:
 	SET EDIT INTERRUPT-CHARACTER ^X
 	SET EDIT MODE EMACS
 	SET EDIT HISTORY 20

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
25-Jan-2005 12:17:14 -0800,7473;000000000000
Return-Path: <slogin@optonline.net>
Received: via tmail-2002(14) for t20arc; Tue, 25 Jan 2005 12:17:13 -0800 (PST)
Return-Path: <slogin@optonline.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id MAA01329; Tue, 25 Jan 2005 12:17:12 -0800 (PST)
From: slogin@optonline.net
Received: from mta6.srv.hcvlny.cv.net ([167.206.5.72]) by lingling.panda.com with TCP/SMTP; Tue, 25 Jan 2005 12:00:12 -0800 (PST)
Received: from optonline.net (hamstr3.srv.hcvlny.cv.net [167.206.5.10])
 by mta6.srv.hcvlny.cv.net
 (iPlanet Messaging Server 5.2 HotFix 1.25 (built Mar  3 2004))
 with ESMTP id <0IAW00KCR25D7T@mta6.srv.hcvlny.cv.net> for
 TOPS-20@lingling.panda.com; Tue, 25 Jan 2005 14:58:26 -0500 (EST)
Received: from [167.206.5.45] (Forwarded-For: [66.114.69.214])
 by mstr3.srv.hcvlny.cv.net (mshttpd); Tue, 25 Jan 2005 14:58:25 -0500
Date: Tue, 25 Jan 2005 14:58:25 -0500
Subject: Re: [TOPS-20] Powers of 2: Fortran vs. C
To: sra@hactrn.net
Cc: TOPS-20@lingling.panda.com, beebe@math.utah.edu, billw@cisco.com
Message-id: <e91920e91215.e91215e91920@optonline.net>
MIME-version: 1.0
X-Mailer: iPlanet Messenger Express 5.2 HotFix 1.25 (built Mar  3 2004)
Content-type: text/plain; charset=us-ascii
Content-language: en
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-Accept-Language: en
Priority: normal

Funny, you should mention this, I was actually looking at the source
code to the Algol Run Time System (ALGOTS) a few months ago.  I had
re-discovered a short analysis that one of my WPI computer science
instructors (Stephan R. Alpert) had done around 1976 (?), entitled:
"Everything you ever wanted to know about ALGOTS but was afraid to
ask".  At the time, I was an undergraduate and WAS afraid to ask,
particularly about the analysis paper itself as I hadn't understood
that, either.  After some review, I believe that I might know
something more about ALGOTS now; I suppose that's some sort of
progress in 25 years ...

Algol can call Fortran subroutines and (of course) assembler.  I
believe that one area of concern would be what the Fortran subroutines
are doing.  If they tried to invoke an intrinsic routine that wanted
FOROTS around, then perhaps you might get an address space conflict as
both ALGOTS and FOROTS want to inhabit the same 'high segment'.  This
could also be a problem with C as it appears to want stuff up in the
'high segment' (i.e., page 400).  I think you would want to avoid this
problem by linking the FORTRAN support routines directly in via
FORLIB.

Further research on FOROTS shows that it can call COBOL and Macro
subroutines.  It is specifically set up to allow itself to be used as
an independent I/O subsystem for Macro programs.  The calling
sequences are all documented.  So, you'd need to write (what appears
to be) a small amount of C-to-Fortran assembler linkage or perhaps see
if the COBOL interfaces were more servicable.  One area that would
need to be handled would be routines with variable number of
arguments.

Some of this stuff might get hairy.  If FOROTS wants to mangle the
stack, then you'd have to set up a seperate stack for it to play with.
However, I would be surprised if you could call FOROTS recursively.
In fact, I'm not sure that this could happen.  I believe that in order
for a recursive call to FOROTS to happen, FOROTS itself must call
itself.  I don't believe it does this.  In other words, once FOROTS is
activatived by a library call, it completes and then returns to the
caller.

The only way recursion could happen would be indirectly by the use of
co-routines where FOROTS then invoked an external routine in the
course of its actions.  If that external routine then went recursive
or invoked FOROTS, then the results could be 'interesting'.  But, I
don't believe that FOROTS does this.  I don't remember that it
supports this, either.

Off the top of my head, I believe that there may be only two ways to
get FOROTS to be re-entered while it is doing its thing.  The first
would be to break out of the library call with the PSI.  If you then
did something that (in)directly invoked FOROTS during the interrupt
processing, then you could get into trouble.  In other words, if you
are inside of FOROTS, take an interrupt, have the interrupt routine
written in C which then invokes FOROTS, you could wind up having
problems.

Another issue would be unwinding the stack and clearing any created
frames.  If you changed the return address out of FOROTS before you
did the DEBRK%, then it's likely that you'd have some work to do to
put the stack back together and clean up any temporary FOROTS areas.
That sounds hard.  I guess you'd probably want to DEBRK% back into
FOROTS and then check for an interrupt when you returned.

The second way to have some sort of a concurrent reentrant call would
be to have a multi-forking C program which was trying to share a
single copy of FOROTS.  Either you'd have to have each fork have it's
own seperate 'hiseg' and have the 'loseg' data areas be private, or
you'd need to enforce serial usage of FOROTS (possibly with ENQ/DEQ).
Or, you could link in FORLIB (which I don't know a lot about).

In summary, in order to call Fortran mathematical routines from C, I
think you'd need at least some of the following:

 1) Properly convert calling sequences and preserve the register file.
    At least for ALGOL, COBOL and FORTRAN, these sequences are well
    documented.  I couldn't say about C.
 2) Verify that the FOROTS mathematical routines are either fully 
    reentrant or can NOT go recursive (i.e., don't call themselves)
 3) Make sure that you aren't doing anything with co-routines, PSI or
    forks that could involve concurrent library usage, or code to
    force serial usage.
 4) Verify that either FOROTS is not needed or that you can directly
    link in the routines that you need.  I think what you'd would be
    to link in FORLIB.
 5) Verify that you do have subroutine name conflict.  If that were
    the case, then you'd need to do some creative stuff with #define
    and then maybe play around with some symbol editing in LINK.

Well, *I* think it sounds like fun ...

> ----- Original Message -----
> From: Rob Austein <sra@hactrn.net>
> Date: Thursday, January 20, 2005 2:03 pm
> Subject: Re: [TOPS-20] Powers of 2: Fortran vs. C
> 
> I have a vague recollection that the FORTRAN calling sequence is
> incompatable with KCC, Pascal, or any other language that allows
> recursion.  So, while this would no doubt be doable, it would indeed
> either require hacking the compiler or hacking assembly code to wrap
> the calling sequence.
> 
> Be warned that, at least at one point, FOROTS reserved the right to
> relocate the stack.  The manual included warnings about storing data
> on the stack due to this quirk: pointers to automatic variables
> would obviously be a problem, but I seem to recall something close
> to blanket prohibition on storing anything other than return
> addresses.
>
> > At Thu, 20 Jan 2005 9:35:49 PST, William Chops Westfield wrote:
> > 
> > Why don't you re-write the C compiler to (be able to) use the
> > Fortran math libraries?  Seems to me that having a single set of
> > math libararies is a good thing, if only because you only have to
> > fix bugs once after that!  Does this option already exist?


26-Jan-2005 06:53:03 -0800,5521;000000000000
Return-Path: <beebe@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Wed, 26 Jan 2005 06:53:02 -0800 (PST)
Return-Path: <beebe@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id GAA01820; Wed, 26 Jan 2005 06:53:01 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Wed, 26 Jan 2005 06:20:28 -0800 (PST)
Received: from psi.math.utah.edu (IDENT:+w7kMBcbh8FJw1rxYUxTt+l3IAM3RXuL@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0QEKQCL011715;
	Wed, 26 Jan 2005 07:20:26 -0700 (MST)
Received: from psi.math.utah.edu (IDENT:HmiU5lMbPmG8XqJan6ymsaI+j0V/prIu@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0QEKP2v027230;
	Wed, 26 Jan 2005 07:20:25 -0700 (MST)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j0QEKPmG027228;
	Wed, 26 Jan 2005 07:20:25 -0700 (MST)
Date: Wed, 26 Jan 2005 07:20:25 -0700 (MST)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: [TOPS-20] kcc-20 code generation error
Message-ID: <CMM.0.92.0.1106749225.beebe@psi.math.utah.edu>

Two versions of my numerical program in C, one in float and the other
in double, gave different results in a critical function.

I've now been able to determine that the cause is missing instructions
to initialize a variable, and have been able to reproduce it with a
simple test file shown below: its assembly code for the critical two
statements is identical to that in my numerical program.

The IEEE 754 function Nextafter(x,y) should return the next
floating-point number closest to x, but different from it, in the
direction of y.  For example, in single precision, Nextafter(1.0F,
2.0F) should return 1.000000015 (hexadecimal 40c000001, octal
201400000001) on the PDP-10, and does so.

In double precision, however, Nextafter(1.0, 2.0) erroneously returned
instead 1.7014118346046923175e+38 (hexadecimal 7ffffffff_7ffffffff,
octal 377777777777_377777777777), the largest representable
floating-point number.

I reduced the code in Nextafter() to just the fragment for which the
compiler-generated code is wrong.  The test program should return -1,
but instead produces:

@ex bug001.c
KCC:    BUG001
<BEEBE.HOC72>BUG001.PRE.13
<BEEBE.HOC72>BUG001.FAI.1
FAIL:  BUG001
LINK:   Loading
[LNKXCT BUG001 execution]
Nextafter(1,2) = 1.7014118346046923175e+38

Here is the test program:

@type bug001.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>

double
Infinity(void)
{
    return (DBL_MAX);
}

double
MaxNormal(void)
{
    return (DBL_MAX);
}

double
Nextafter(double x, double y)
{    /* NB: fragmentary implementation to illustrate kcc-20 code generation error */
    if ((x == MaxNormal()) && (x < y))
	return (Infinity());
    else
	return (-1.0);
}

int
main(void)
{
    double x, y;

    x = 1.0;
    y = 2.0;
    asm("dmove 4,.dblma\n");
    printf("Nextafter(%g,%g) = %.20g\n", x, y, Nextafter(x,y));
    return (EXIT_SUCCESS);
}

Here is the generated code, with C-like annotations:

NEXTAF:
        PUSH 17,-2(17)		# push hi(x)
        PUSH 17,-2(17)		# push lo(x)
        PUSHJ 17,MAXNOR		# call MaxNormal(): result returned in registers 1 and 2
        POP 17,3		# get lo(x) from stack
        CAMN 3,2		# lo(x) != lo(MaxNormal()) ? skip : don't skip
         DMOVE 4,0(17)		# ???
        ADJSP 17,-1		# readjust stack
# Bug at the next instruction: register 4 was never initialized, and does not
# contain the expected hi(x).  It happens to contain fortuitous garbage.
        CAME 4,1		# hi(x) == hi(MaxNormal()) ? skip : don't skip
         JRST $2		# continue to next branch of if statement
        DMOVE 6,-2(17)		# load x into (R6,R7)
        DMOVE 10,-4(17)		# load y into (R10,R11)
        CAMG 6,10		# hi(x) > hi(y)  ? skip : don't skip
         CAML 7,11		# lo(x) > lo(y)  ? skip : don't skip
         CAMGE 6,10		# hi(x) >= hi(y) ? skip : don't skip
         JRST INFINI		# call Infinity() and return from there
$2==.
        DMOVE 1,[-201400000000
                0]      ; -1
        POPJ 17,

I now have to figure out a way to program around the code-generation
error.

The question is, has anyone on this list been inside the kcc code
generator and might know how to fix the bug?  Does anyone maintain
kcc?  The <KCC-6.KCC> directory file dates are from 1986 to 1996, and
files are owned by HELLIWELL.  Ken Harrenstien's KLH10 code dates end
in 2002.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
27-Jan-2005 13:33:12 -0800,4970;000000000000
Return-Path: <beebe@sunshine.math.utah.edu>
Received: via tmail-2002(14) for t20arc; Thu, 27 Jan 2005 13:33:12 -0800 (PST)
Return-Path: <beebe@sunshine.math.utah.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id NAA02551; Thu, 27 Jan 2005 13:33:11 -0800 (PST)
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Thu, 27 Jan 2005 13:15:41 -0800 (PST)
Received: from psi.math.utah.edu (IDENT:K3RbHJMa6cMn77DeiTF9ePG+FYp82Gd3@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0RLFdwr002204;
	Thu, 27 Jan 2005 14:15:39 -0700 (MST)
Received: from psi.math.utah.edu (IDENT:liUj5BE45RXwjz0mLQ4c/UgoK5DMdapM@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j0RLFdeN013675;
	Thu, 27 Jan 2005 14:15:39 -0700 (MST)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j0RLFbHO013673;
	Thu, 27 Jan 2005 14:15:37 -0700 (MST)
Date: Thu, 27 Jan 2005 14:15:37 -0700 (MST)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: [TOPS-20] kcc-20 constant conversion error
Message-ID: <CMM.0.92.0.1106860537.beebe@psi.math.utah.edu>

I have started on a modest-sized project to implement the Cody/Waite
algorithms for the elementary functions in a portable implementation
that can be used not only on TOPS-20 to fix the kcc-20 math library
deficiencies that I recently reported on this list, but also on any
other system where I run into similar problems.  

There are just too many system dependencies in trying to solve the
problem on TOPS-20 by calling Fortran from C, and that wouldn't help
on other platforms anyway.

The first routines that I have implemented are exp() and expf(), and
they pass the ELEFUNT tests on several different Unix architectures.

When I ran them on TOPS-20, I got results that were accurate for
small arguments, and then progressively worsened for larger-magnitude
arguments.  A printf() at a suitable place in the code exposed the
error: nonsensical conversion of precise floating-point constants.   

The bug can be reproduced in this simple program:

@type ctest.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void
dump(double x)
{
    printf("%.20g\n", x);    
}

int
main(int argc, char* argv[])
{
    dump(1.4426950408889634073599246810018921374266459541530);
    dump(1.442695040888963407359924681001892137426645954153);
    dump(1.44269504088896340735992468100189213742664595415);
    dump(1.4426950408889634073599246810018921374266459541);
    dump(1.442695040888963407359924681001892137426645954);
    dump(1.44269504088896340735992468100189213742664595);
    dump(1.4426950408889634073599246810018921374266459);
    dump(1.442695040888963407359924681001892137426645);
    dump(1.44269504088896340735992468100189213742664);
    dump(1.4426950408889634073599246810018921374266);
    dump(1.442695040888963407359924681001892137426);

    dump(1.44269504088896340735992468100);

    dump(1.4426950408889634073);

    dump(1.442695040);

    return (EXIT_SUCCESS);
}


@execute ctest.c
KCC:    CTEST
 "CTEST.C", line 34: [Note] Parameter "argc" not used
       (main+22, p.1 l.33):   dump(1.442695040);      return (EXIT_SUCCESS); } 

 "CTEST.C", line 34: [Note] Parameter "argv" not used
       (main+22, p.1 l.33):   dump(1.442695040);      return (EXIT_SUCCESS); } 

<BEEBE.HOC72.MATH>CTEST.PRE.3
<BEEBE.HOC72.MATH>CTEST.FAI.3
FAIL:  CTEST
LINK:   Loading
[LNKXCT CTEST execution]
7.47963809273909991e+37
7.47963809273909991e+37
7.4796380580014731383e+37
7.4796374790410269425e+37
7.4796363211201345733e+37
7.4795900042844396388e+37
7.479011043838253072e+37
7.4685897558068946068e+37
7.4106937111882365092e+37
6.947525354238971728e+37
1.4426950408889634074
1.4426950408889634074
1.4426950408889634074
1.4426950399999999997

Wow...this is a real zinger of a bug!

I can work around it for now, but it is a huge daemon lurking to break
numerical software.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
13-Feb-2005 23:35:27 -0800,1705;000000000000
Return-Path: <MRC@Lingling.Panda.COM>
Received: via tmail-2002(14) for t20arc; Sun, 13 Feb 2005 23:35:27 -0800 (PST)
Return-Path: <MRC@Lingling.Panda.COM>
Received: from Lingling.Panda.COM (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id XAA14326; Sun, 13 Feb 2005 23:35:25 -0800 (PST)
Date: Sun, 13 Feb 2005 23:15:35 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: at last, a PDP-10 with proper lights!
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14002501055.9.MRC@Lingling.Panda.COM>

I am pleased to announced that Lingling.Panda.COM now has proper
lights, as evidenced by the following web page:
	http://panda.com/tops-20
A larger version of the picture is:
	http://panda.com/Lingling.jpg

The 3-bit "Aux" register shows real-time system load ranging form
0 (system mostly idle) to 7 (system mostly busy).  The 36-bit
Program Data register is the familiar lights displayed via the
LITES% JSYS on TOPS-20 and the LIGHTS UUO on TOPS-10.  The four
larger lights are a CPU heartbeat and I/O activity lights.

The Panda Display was made by Spare Time Gizmos:
	http://www.sparetimegizmos.com
I recommend these folks highly (I also have one of their SBC6120
PDP-8 clones).  Please contact them for information on getting a
Panda Display board for your own KLH10 based system.

I am preparing an updated version of the Panda Distribution which
supports the Panda Display.

The artwork for the Panda Display is available on:
	http://panda.com/TOPS-20/PandaPanel.jpg

At long last, after 30 years of waiting, we once again have a
PDP-10 with lights!

-- Mark --
-------
13-Feb-2005 23:46:49 -0800,795;000000000000
Return-Path: <MRC@Lingling.Panda.COM>
Received: via tmail-2002(14) for t20arc; Sun, 13 Feb 2005 23:46:48 -0800 (PST)
Return-Path: <MRC@Lingling.Panda.COM>
Received: from Lingling.Panda.COM (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id XAA14332; Sun, 13 Feb 2005 23:46:48 -0800 (PST)
Date: Sun, 13 Feb 2005 23:18:03 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: seeking fun lights hacks
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14002501506.9.MRC@Lingling.Panda.COM>

Does anyone still have any of their fun programs that used the LIGHTS UUO
to draw pretty patterns in the LIGHTS?  Yes, I know that it's been 30 years...
After a while, just AOJA gets boring... :-)
-------
14-Feb-2005 00:31:50 -0800,2195;000000000000
Return-Path: <smj@sdf.lonestar.org>
Received: via tmail-2002(14) for t20arc; Mon, 14 Feb 2005 00:31:50 -0800 (PST)
Return-Path: <smj@sdf.lonestar.org>
Received: from Lingling.Panda.COM (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id AAA14356; Mon, 14 Feb 2005 00:31:48 -0800 (PST)
Received: from sdf.lonestar.org (mx.freeshell.org [192.94.73.21]) by Lingling.Panda.COM with TCP/SMTP; Mon, 14 Feb 2005 00:12:21 -0800 (PST)
Received: from sdf.lonestar.org (ol.freeshell.org [192.94.73.20])
	by sdf.lonestar.org (8.13.1/8.12.10) with ESMTP id j1E8BBsN027369;
	Mon, 14 Feb 2005 08:11:12 GMT
Received: (from smj@localhost)
	by sdf.lonestar.org (8.13.1/8.12.8/Submit) id j1E8BBiV004845;
	Mon, 14 Feb 2005 08:11:11 GMT
From: Stephen Jones <smj@sdf.lonestar.org>
Message-Id: <200502140811.j1E8BBiV004845@sdf.lonestar.org>
Subject: Re: at last, a PDP-10 with proper lights!
In-Reply-To: <14002501055.9.MRC@Lingling.Panda.COM>
To: Mark Crispin <MRC@Lingling.Panda.COM>
Date: Mon, 14 Feb 2005 08:11:11 +0000 (UTC)
CC: TOPS-20@Lingling.Panda.COM
X-Mailer: ELM [version 2.4ME+ PL93 (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII

MRC wrote:

> I recommend these folks highly (I also have one of their SBC6120
> PDP-8 clones).  Please contact them for information on getting a
> Panda Display board for your own KLH10 based system.

I will definately vouche for them as well.  Their 'PDP-8 in a picture frame'
is quite cool and can even used memory cards for storage.  Pavl Zachary 
who lugs around a large PDP-11 for fun also built a very nice walnut and
maple (I believe) wooden box for the SBC6120 kit.  They both usually show
up to the annual VCF.
 
> The artwork for the Panda Display is available on:
> 	http://panda.com/tops-20/PandaPanel.jpg

I'll humbly add that my wife Migiwa created that Panda for Panda.com 
specifically.  She's not a -10 hacker, but she really likes the modern
styling of the KL10's front panel and other hardware.
 
> At long last, after 30 years of waiting, we once again have a
> PDP-10 with lights!

Indeed .. this is really cool! Now I want a PeeCee... ;-)
14-Feb-2005 01:36:22 -0800,2631;000000000000
Return-Path: <MRC@Lingling.Panda.COM>
Received: via tmail-2002(14) for t20arc; Mon, 14 Feb 2005 01:36:22 -0800 (PST)
Return-Path: <MRC@Lingling.Panda.COM>
Received: from Lingling.Panda.COM (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id BAA14391; Mon, 14 Feb 2005 01:36:20 -0800 (PST)
Date: Mon, 14 Feb 2005 01:19:55 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: at last, a PDP-10 with proper lights!
To: smj@sdf.lonestar.org
cc: TOPS-20@Lingling.Panda.COM
In-Reply-To: <200502140811.j1E8BBiV004845@sdf.lonestar.org>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14002523691.10.MRC@Lingling.Panda.COM>

> > The artwork for the Panda Display is available on:
> > 	http://panda.com/tops-20/PandaPanel.jpg
> I'll humbly add that my wife Migiwa created that Panda for Panda.com 
> specifically.  She's not a -10 hacker, but she really likes the modern
> styling of the KL10's front panel and other hardware.

And please tell her thank you!  I had forgotten who had given me
that icon, but I figured that I'd find out soon enough after the
announcement!  :-)

> > At long last, after 30 years of waiting, we once again have a
> > PDP-10 with lights!
> Indeed .. this is really cool! Now I want a PeeCee... ;-)

Indeed it is.

Most of the driving of the lights is done by TOPS-20 and not by
the KLH10 microcode.  As far as the microcode is concerned, there
are simply three sets of lights which can be displayed:
 . a 36-bit set of lights
 . a 3-bit set of lights
 . a 4-bit register which collects a state, and displays on lights
    and clears state

The hardware is even simpler.  There's 5 registers of 8 lights
each, and a single register of 4 lights.  It connects to the PC
via the parallel port (usually LPT1 on 0x378).

The 36-bit set of lights is output on demand.  The operating
system can use either the new HSLITE or the traditional DATAO PI,
instruction.  [Note that the traditional DATAI APR, instruction
can not be used to read the console switches since it's used to
read the address break on KLs and later.]

The other bits are set or ORd in by the new HSWRIT instruction,
and is updated every 250ms.  TOPS-20 actually does the display at
the so-called "100ms clock", which actually is invoked quite a
bit more frequently than 100ms.

I got the idea for the system load value from SYSDPY.  Empirical
testing showed that the load average changed too slowly for the
real-time load-display that I wanted.  However, using the user
time as a percentage of real time was what I wanted.
-------
14-Feb-2005 12:08:58 -0800,1183;000000000000
Return-Path: <MRC@Lingling.Panda.COM>
Received: via tmail-2002(14) for t20arc; Mon, 14 Feb 2005 12:08:58 -0800 (PST)
Return-Path: <MRC@Lingling.Panda.COM>
Received: from Lingling.Panda.COM (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id MAA14706; Mon, 14 Feb 2005 12:08:56 -0800 (PST)
Date: Mon, 14 Feb 2005 11:07:12 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: program lights hack #1
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14002630600.10.MRC@Lingling.Panda.COM>

Here's an early effort.  Originally, the IOR 1,3 was an HRL 1,3
but the results are much more interesting with the IOR!

Can you figure out the pattern that it makes?  It's not what you
may think at first glance!

For those of you who are unfamiliar with it, CIRC (op code 247)
is a ROTC with AC+1 going the other way.  It's a very useful
instruction to reverse bit order!

	TITLE HACK
	SEARCH MONSYM

HACK:	SETZ 1,
HACK1:	TLNE 1,777777
	 JRST HACK
	MOVE 2,1
	CIRC 2,-^D18
	IOR 1,3
	LITES%
	 HALT
	HRRZ 2,1
	MOVEI 1,1
	DISMS%
	MOVE 1,2
	AOJA 1,HACK1

	END HACK
-------
23-Feb-2005 17:46:28 -0800,1889;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Wed, 23 Feb 2005 17:46:27 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id RAA21140; Wed, 23 Feb 2005 17:46:26 -0800 (PST)
Date: Wed, 23 Feb 2005 17:27:55 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: interest in lights panel for your KLH10-based TOPS-20 system?
To: TOPS-20@lingling.panda.com
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14005059206.10.MRC@lingling.panda.com>

I would like to get a straw poll of how many people would be
interested in having a lights panel, such as displayed on:
	http://panda.com/tops-20
for their own TOPS-20 system?

The panel is a parallel port device and is mounted on a PC tower
disk port bezel.  The existing software to drive it is for Linux
on Intel hardware, but it may also work on FreeBSD, etc. if it
has outb().

Pricing would depend upon the number of people interested, but
maximum price for a fully-assembled display, ready to install on
your PC, would be about $250.  For do-it-yourselfers, bare PC
boards (no parts) could be as little as $25 if there's enough
interest.

A system can have up to 4 lights panels.  The current software
only drives panel 0, but can be expanded in the future.

If you're interested, please let me know with your level of
interest:
	bare boards
	kit (boards + parts)
	fully-assembled unit
and how much you're willing to spend.  I'm not asking for a
commitment, but just want to gauge if it's worth putting together
an order to Spare Time Gizmos for boards and/or assembled units.

I'm not planning on making any money out of this; I'm basically
just passing along what Spare Time Gizmos has told me would be
the pricing.
-------
25-Feb-2005 16:18:51 -0800,1828;000000000000
Return-Path: <mike@zanker.org>
Received: via tmail-2002(14) for t20arc; Fri, 25 Feb 2005 16:18:50 -0800 (PST)
Return-Path: <mike@zanker.org>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id QAA22544; Fri, 25 Feb 2005 16:18:49 -0800 (PST)
Received: from mallard.zanker.org ([81.187.169.2]) by lingling.panda.com with TCP/SMTP; Fri, 25 Feb 2005 15:58:21 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
	s=thekey; d=zanker.org;
	b=QCAWYtZgktjLEMQaY9y+bVPDOJEgaoRpJmDNaIqt3E022LlWqLX79dSONGZ/8uVs4uT53VnU8HJipKgbzAD5AdDtx+JMo4+47gz2F7qM92wvQP6cdkjiXy9PcjgANgxp;
Received: from jemima.zanker.org ([2001:8b0:f:1:260:8ff:fe49:e6a4] helo=[IPv6:2001:8b0:f:1:260:8ff:fe49:e6a4])
	by mallard.zanker.org with esmtpsa (TLSv1:AES256-SHA:256)
	(Exim 4.47)
	id 1D4pLc-000488-6j
	for TOPS-20@lingling.panda.com; Fri, 25 Feb 2005 23:58:16 +0000
Message-ID: <421FBB97.7000605@zanker.org>
Date: Fri, 25 Feb 2005 23:58:15 +0000
From: Mike Zanker <mike@zanker.org>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: TOPS-20@lingling.panda.com
Subject: TOPS-20 SMTP server
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Mallard-MailScanner: Found to be clean (of known viruses)
X-Mallard-MailScanner-From: mike@zanker.org

Hi,

just trying to understand how the TOPS-20 SMTP server behaves out of the 
box. Am I correct in saying that my TOPS-20 system, tops-20.zanker.org, 
will relay mail from any server whose IP address resolves to *.zanker.org?

Does any configuration need to be done to harden it against crackers and 
spammers or is it safe out of the box?

Finally, does it keep a log of activity anywhere?

Thanks for your time,

Mike.
26-Feb-2005 15:00:37 -0800,2301;000000000000
Return-Path: <mike@zanker.org>
Received: via tmail-2002(14) for t20arc; Sat, 26 Feb 2005 15:00:37 -0800 (PST)
Return-Path: <mike@zanker.org>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id PAA23122; Sat, 26 Feb 2005 15:00:35 -0800 (PST)
Received: from mallard.zanker.org ([81.187.169.2]) by lingling.panda.com with TCP/SMTP; Sat, 26 Feb 2005 14:42:06 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
	s=thekey; d=zanker.org;
	b=L/Myx/zQbCPOkqCrVzjFb+8E+eIDTOyIPazg+0UEhcirzekj01iAkVrIlofGExYz2/SmxDKzbWhhq3ah7+Hcq6TOKvSOTX+gYBV9hurjaYjuBAX3J7ePhfe+74DD5ikj;
Received: from jemima.zanker.org ([2001:8b0:f:1:260:8ff:fe49:e6a4] helo=[IPv6:2001:8b0:f:1:260:8ff:fe49:e6a4])
	by mallard.zanker.org with esmtpsa (TLSv1:AES256-SHA:256)
	(Exim 4.47)
	id 1D5AdB-0008OY-LW
	for TOPS-20@lingling.panda.com; Sat, 26 Feb 2005 22:41:49 +0000
Message-ID: <4220FB2D.90506@zanker.org>
Date: Sat, 26 Feb 2005 22:41:49 +0000
From: Mike Zanker <mike@zanker.org>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: TOPS-20@lingling.panda.com
Subject: Networking dies after a couple of hours
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Mallard-MailScanner: Found to be clean (of known viruses)
X-Mallard-MailScanner-From: mike@zanker.org

Hi,

I'm running the latest Panda distribution on a Dell Poweredge 750 
(3.4GHz P4, 1GB RAM, 2 Intel E1000 NICs) under Red Hat Enterprise Linux 
3. The machine is very lightly loaded, just acting as a DNS server and 
backup mail server.

The system runs fine for around a couple of hours then IP networking 
seems to die - "no route to host" trying to reach it externally and 
"Trying... Host is not up, destination unreachable" trying to telnet 
out. Shutting down, exiting the emulator then starting up again brings 
it back (for another couple of hours).

Any ideas where to start debugging this? Is there anything I can check 
under TOPS-20 that might give an indication? There is nothing of 
relevance in the underlying Linux logs and, having captured all network 
traffic to both server and TOPS-20 system, I can see nothing out of the 
ordinary.

Thanks,

Mike.
26-Feb-2005 16:43:22 -0800,2024;000000000000
Return-Path: <mike@zanker.org>
Received: via tmail-2002(14) for t20arc; Sat, 26 Feb 2005 16:43:22 -0800 (PST)
Return-Path: <mike@zanker.org>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id QAA23150; Sat, 26 Feb 2005 16:43:21 -0800 (PST)
Received: from mallard.zanker.org ([81.187.169.2]) by lingling.panda.com with TCP/SMTP; Sat, 26 Feb 2005 16:25:25 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
	s=thekey; d=zanker.org;
	b=Pbo1vSwN1YLn7j4pKGkCE1PbPcEjES+UHD65MIjhe9NdW2PJz4Ttb1l++sG0EmvL8rI6mh43F/Javi0TjMP80rUa+Afev/YxDlzksWcZ9PkARKd/DD5RP7tlEbn8LCKL;
Received: from jemima.zanker.org ([2001:8b0:f:1:260:8ff:fe49:e6a4] helo=[IPv6:2001:8b0:f:1:260:8ff:fe49:e6a4])
	by mallard.zanker.org with esmtpsa (TLSv1:AES256-SHA:256)
	(Exim 4.47)
	id 1D5CFC-0000XZ-5T
	for TOPS-20@lingling.panda.com; Sun, 27 Feb 2005 00:25:10 +0000
Message-ID: <42211365.3040005@zanker.org>
Date: Sun, 27 Feb 2005 00:25:09 +0000
From: Mike Zanker <mike@zanker.org>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: TOPS-20@lingling.panda.com
Subject: Re: Networking dies after a couple of hours
References: <4220FB2D.90506@zanker.org>
In-Reply-To: <4220FB2D.90506@zanker.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Mallard-MailScanner: Found to be clean (of known viruses)
X-Mallard-MailScanner-From: mike@zanker.org

On 26/02/2005 22:41, Mike Zanker wrote:

> The system runs fine for around a couple of hours then IP networking 
> seems to die - "no route to host" trying to reach it externally and 
> "Trying... Host is not up, destination unreachable" trying to telnet 
> out. Shutting down, exiting the emulator then starting up again brings 
> it back (for another couple of hours).

Just to clarify, it is the TOPS-20 system that suffers the loss of 
networking - the underlying Linux OS continues to work just fine.

Mike.
27-Feb-2005 06:35:38 -0800,4175;000000000000
Return-Path: <slogin@optonline.net>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 06:35:38 -0800 (PST)
Return-Path: <slogin@optonline.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id GAA23528; Sun, 27 Feb 2005 06:35:36 -0800 (PST)
From: slogin@optonline.net
Received: from mta3.srv.hcvlny.cv.net ([167.206.5.69]) by lingling.panda.com with TCP/SMTP; Sun, 27 Feb 2005 06:20:05 -0800 (PST)
Received: from optonline.net (hamstr3.srv.hcvlny.cv.net [167.206.5.10])
 by mta3.srv.hcvlny.cv.net
 (iPlanet Messaging Server 5.2 HotFix 1.25 (built Mar  3 2004))
 with ESMTP id <0ICK003PAQHCE0@mta3.srv.hcvlny.cv.net> for
 TOPS-20@lingling.panda.com; Sun, 27 Feb 2005 09:20:00 -0500 (EST)
Received: from [10.240.3.38] (Forwarded-For: [24.47.48.231])
 by mstr3.srv.hcvlny.cv.net (mshttpd); Sun, 27 Feb 2005 09:20:00 -0500
Date: Sun, 27 Feb 2005 09:20:00 -0500
Subject: 127.0.0.1 Loopback (non-)usage
To: TOPS-20@lingling.panda.com
Message-id: <2979396298026e.298026e2979396@optonline.net>
MIME-version: 1.0
X-Mailer: iPlanet Messenger Express 5.2 HotFix 1.25 (built Mar  3 2004)
Content-type: text/plain; charset=us-ascii
Content-language: en
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-Accept-Language: en
Priority: normal

I was recently hacking some code to cache some local host information
in HSTNAM.MAC (more on that in another posting to follow) and I did
the following:

        DMOVE A,[ EXP .GTHNS,<POINT 7,$MYHST>] ; Get host name and status
        MOVE C,[MHOSTN(127,0,0,1)] ;Want the local host
        GTHST%                  ; Loopback IP address must exist
         ERJMPR R               ; Ditto: config error or serious illness
        DMOVEM C,$MYHSS         ; Save the host number and status
        RETSKP                  ; cached information

I had expected to get the name of the local host and had hoped for the
loopback address to get resolved to the primary host interface.  I got
neither but rather, "600704,Unknown host number", instead.  This isn't
the end of the world as the following does work:

        MOVX A,.GTHSZ           ; Return local host number in D
        GTHST%                  ; (32-bit Internet format)
         ERJMPR R               ; ??  TCP not well or not configured?
        JUMPLE D,R              ; Sanity result:  Must be non-zero positive
        DMOVEM B,$MYHCN         ; Cache table dimensions
        MOVEM D,$MYHSN          ; Also store my host number
        DMOVE A,[ EXP .GTHNS,<POINT 7,$MYHST>] ; Get host name and status
        MOVE C,D                ; Pass in my host number
        GTHST%                  ; Why doesn't 127.0.0.1 work?
         ERJMPR R               ; Ditto: config error or serious illness
        MOVEM D,$MYHSS          ; Save the host status
        RETSKP                  ; cached information

So, how come?  Is this because Tops-20 doesn't have a loopback device
to bind 127.0.0.1 to?  Does it really need one?  Is this a Unixism?


The following definitions were used in both examples:

$MYHSN: 0                       ; local host number
$MYHSS: 0                       ; My host status
$MYHCN: 0                       ; -number host names,,0
        0                       ; -length of HSTSTS table,,0
$MYHST: REPEAT HSTNMW,<0>       ; Some place to put the local host text

; Macro to construct an Internet host number from
; a set of tuples, which are laid out as follows:
;
;         N1       N2       N3       N4
; 0000 00000011 11111111 22222222 22333333
; 0123 45678901 23456789 01234567 89012345

DEFINE MHOSTN (N1<0>,N2<0>,N3<0>,N4<0>) < ;;Make a foreign host number

        IFE <<^D<'N1>>!<^D<'N2>>!<^D<'N3>>!<^D<'N4>>>,.FATAL Zero IP address
        IFN <<^D<'N1>>&<-1B27>>,.FATAL First Tuple exceeds 8 bits
        IFN <<^D<'N2>>&<-1B27>>,.FATAL Second Tuple exceeds 8 bits
        IFN <<^D<'N3>>&<-1B27>>,.FATAL Third Tuple exceeds 8 bits
        IFN <<^D<'N4>>&<-1B27>>,.FATAL Fourth Tuple exceeds 8 bits

        <<<^D<'N1>>B11>!<<^D<'N2>>B19>!<<^D<'N3>>B27>!<<^D<'N4>>B35>>

>;;End of MHOSTN



27-Feb-2005 09:26:07 -0800,3235;000000000000
Return-Path: <slogin@optonline.net>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 09:26:06 -0800 (PST)
Return-Path: <slogin@optonline.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id JAA23607; Sun, 27 Feb 2005 09:26:05 -0800 (PST)
From: slogin@optonline.net
Received: from mta9.srv.hcvlny.cv.net ([167.206.5.42]) by lingling.panda.com with TCP/SMTP; Sun, 27 Feb 2005 09:08:17 -0800 (PST)
Received: from optonline.net (hamstr3.srv.hcvlny.cv.net [167.206.5.10])
 by mta9.srv.hcvlny.cv.net
 (iPlanet Messaging Server 5.2 HotFix 1.25 (built Mar  3 2004))
 with ESMTP id <0ICK00GSOY9J0G@mta9.srv.hcvlny.cv.net> for
 TOPS-20@lingling.panda.com; Sun, 27 Feb 2005 12:08:07 -0500 (EST)
Received: from [10.240.3.39] (Forwarded-For: [24.47.48.231])
 by mstr3.srv.hcvlny.cv.net (mshttpd); Sun, 27 Feb 2005 12:08:07 -0500
Date: Sun, 27 Feb 2005 12:08:07 -0500
Subject: Definition of local host in DOMAIN reverse zone
To: TOPS-20@lingling.panda.com
Message-id: <2d7d1bd2d7f26b.2d7f26b2d7d1bd@optonline.net>
MIME-version: 1.0
X-Mailer: iPlanet Messenger Express 5.2 HotFix 1.25 (built Mar  3 2004)
Content-type: text/plain; charset=us-ascii
Content-language: en
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-Accept-Language: en
Priority: normal

I've been using my 20 to send a pile of mail, nearly all to local
addresses.  Everything works fine until I reply to a message that was
sent to me from a local user.  When I do this, MM hangs (it seems like
does this for over a minute).  When it comes back, the local name has
now been translated to an address in the DECnet realm.

Some analysis shows that MM is sitting in $GTDOM, waiting for a
response from the resolver (CHIVES), which doesn't seem to know about
the local host (TOMMYT)!  The call is from $GTHST, which is looking to
validate the hostname, doing a host match.  The resolver never finds
TOMMYT even though I know I put it both in the local host table and in
a zone.

SRA has very graciously spent some time helping me set up a zone, which
I believe that I've done correctly.  Note the following line from
DOMAIN:RESOLV.CONFIG:

        ZLOAD   168.192.IN-ADDR.ARPA.    DOMAIN:REVERSE.ZONE

And then the following relevant lines in DOMAIN:REVERSE.ZONE

;Hosts on primary cable (NOTE NAT!)

       5.1    3600    IN      PTR     ZY6HT.
       7.1    3600    IN      PTR     Phoenix.
       20.1   3600    IN      PTR     TOMMYT.
       8.3    3600    IN      PTR     B25.David.

I believe that I've got this at least partially right as evidenced by
the following output from FINGER:

 User    Personal name       Job Subsys  Idle TTY Console location
OINKY    Guinea Pig            8 FINGER        50 TOMMYT: Cellar
                              10 EXEC        . 51 B25.David: Cellar
SLOGIN   Thomas DeBellis       9 EMACS      3  44 Phoenix: Kitchen, #1
                              11 EXEC   11:57. 46 ZY6HT: Bedroom
                              12 SYSDPY    11  45 Phoenix: Kitchen, #2
                              13 TELNET        47 Phoenix: Kitchen, #3

No hanging, no waiting.  But why does MM hang?  What did I do wrong?


27-Feb-2005 09:59:00 -0800,9380;000000000000
Return-Path: <slogin@optonline.net>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 09:59:00 -0800 (PST)
Return-Path: <slogin@optonline.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id JAA23618; Sun, 27 Feb 2005 09:58:58 -0800 (PST)
From: slogin@optonline.net
Received: from mta10.srv.hcvlny.cv.net ([167.206.5.85]) by lingling.panda.com with TCP/SMTP; Sun, 27 Feb 2005 09:40:56 -0800 (PST)
Received: from optonline.net (hamstr3.srv.hcvlny.cv.net [167.206.5.10])
 by mta10.srv.hcvlny.cv.net
 (iPlanet Messaging Server 5.2 HotFix 1.25 (built Mar  3 2004))
 with ESMTP id <0ICK00HY0ZS7BB@mta10.srv.hcvlny.cv.net> for
 TOPS-20@lingling.panda.com; Sun, 27 Feb 2005 12:40:55 -0500 (EST)
Received: from [10.240.3.39] (Forwarded-For: [24.47.48.231])
 by mstr3.srv.hcvlny.cv.net (mshttpd); Sun, 27 Feb 2005 12:40:55 -0500
Date: Sun, 27 Feb 2005 12:40:55 -0500
Subject: HSTNAM Hack to handle (my) CHIVES reverse zone issue
To: TOPS-20@lingling.panda.com
Message-id: <2d83ee32d84ec8.2d84ec82d83ee3@optonline.net>
MIME-version: 1.0
X-Mailer: iPlanet Messenger Express 5.2 HotFix 1.25 (built Mar  3 2004)
Content-type: text/plain; charset=us-ascii
Content-language: en
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-Accept-Language: en
Priority: normal

I grew impatient looking at the source code to CHIVES.  My MACRO
was always better than my C (which isn't to imply that either were
stellar), and I put together a hack for HSTNAM for anybody who might
be wrestling with the same problem.  But!  If anybody does anything
different, please tell me!  Also, do not assume that MRC will take
these changes.

Basically, I've inserted some caching code in $GTHST.  If a request
comes in for stuff it knows about, it simply returns the information
without bothering to ask CHIVES.  I could say that a benefit of this
is to improve efficiency as you'd probably run the scheduler less, but
I doubt that this makes much of a difference when sending mail to a
single address.  Maybe to a list with a bunch of local recipients?

Also, part of this code is probably not a good idea for a number of
reasons.  Since the dimensions of the host table can change during the
run of the operating system, it's probably a bad idea to cache it.
Caching the host status might conceivably be bad, also.

However, the question is whether the whole philosophy is wrong, when
the host name table is only queried if the resolver doesn't have the
requested information.  This is backwards from what Unix and Windows
do.  The problem is that you can't quickly overide what is in the DNS.
One needs to do this for errors in the global DNS and for NAT'ed host.

Isn't it a lot easier to set up a local host table change then to set
up a whole DNS?  What if you only have one machine and don't have
another for the DNS server?  I've been wondering about this and would
like some opinions.  Anyway, here at the changes in HSTNAM.  You'll
need to increase the CODE .PSECT size in MM a little, also.

                       Change:
                       =======
$GTHST::CALL $DOGTD             ; try the domain system first
                         To:
                         ===
$GTHST::SKIPN $MYTRY            ; Do we want to do this anymore?
         SKIPN $GTHOK           ; OK to do GTHST%?
          JRST $GTHS1           ; No, hope somebody else knows what to do

        SKIPE $MYHSN            ; Did we ever find out who we are?
        IFSKP.
          CALL $GTCHI           ; Nope, cache (local) host information
           RET                  ; Pass an error up
        ENDIF.
                                ; Now see if we can answer some questions
$GTHS0: CAXN A,.GTHVN           ; Validate host name?
         CAXE C,.GTHVH          ;  and doing a host match (not a zone?)
        IFSKP.                  ; Yes to both means we might already know
          SAVEAC <E,E+1>        ; Save the request number
          DMOVE E,A             ; and host name pointer
          HRROI A,$MYHST        ; See if it is ours
          STCMP%
           ERJMPR .+1           ; Set AC1 if there is a problem
          IFN. A                ; Any sort of difference?
            DMOVE A,E           ; Restore orginal argument
            JRST $GTHS1         ; Hand off to regular processing
          ENDIF.
          MOVE E,B              ; Save the updated source
          MOVE A,D              ; Load the canonical host pointer
          HRROI B,$MYHST        ; Our host name is canonical (right?)
          SETZB C,D             ; Stop on a null
          SOUT%                 ; Should really have a local routine ...
           ERJMPR R             ; That really shouldn't fail
          MOVE D,A              ; Return updated canonical host pointer
          MOVE B,E              ; Return updated source
          MOVX A,.GTHVS         ; Return total success
          MOVX C,<.GTHCI,,.GTHTA>;Return internet class
          RETSKP                ; and host address (type A RR)
        ENDIF.                  ; End case .GTHVN

        CAXN A,.GTHNS           ; Return host name?
         CAME C,$MYHSN          ; Requested host number same as local?
        IFSKP.                  ; What about 127.0.0.1?
          MOVE A,B              ; Position destination
          HRROI B,$MYHST        ; Source is cached name
          SETZB C,D             ; Stopping on a null
          SOUT%                 ; Should really have a local routine ...
           ERJMPR R             ; That really shouldn't fail
          MOVE B,A              ; Returned updated position
          MOVX A,.GTHVS         ; Return total success
          DMOVE C,$MYHSN        ; Local host number and status
          RETSKP
        ENDIF.                  ; End case .GTHNS

        CAXE A,.GTHSN           ; Return host number?
        IFSKP.
          DMOVE C,A             ; Save the host name pointer
          HRROI A,$MYHST        ; See if it is ours
          STCMP%
           ERJMPR .+1           ; Set AC1 if there is a problem
          IFN. A                ; Any sort of difference?
            DMOVE A,C           ; Restore orginal argument
            JRST $GTHS1         ; Hand off to regular processing
          ENDIF.
          MOVX A,.GTHVS         ; Otherwise return total success
          DMOVE C,$MYHSN        ; Local host number and status
          RETSKP
        ENDIF.                  ; End case .GTHSN

        CAXE A,.GTHSZ           ; Wants local host name and table information?
        IFSKP.
          MOVX A,.GTHVS         ; Return total success
          DMOVE B,$MYHCN        ; Host table dimensions
          MOVE D,$MYHSN         ; Local host number
          RETSKP
        ENDIF.                  ; End case .GTHSZ
                                ; Here if we couldn't do it somehow
$GTHS1: CALL $DOGTD             ; try the domain system first


; The following code is used to support the above it is inserted
; directly before the END statement at the end of HSTNAM

;N.B.,  If we were really winning, we'd have a local STCMP% and SOUT%
;       routine to check and copy data.  In other words, there is
;       still some JSYS overhead that could be pruned out that would
;       result in less scheduler overhead.

;; Used to cache host information

$GTCHI: SAVEAC <A,B,C,D>        ; preserve calling AC's
        SETOM $MYTRY            ; Assume that this hasn't worked
        MOVX A,.GTHSZ           ; Return local host number in D
        GTHST%                  ; (32-bit Internet format)
         ERJMPR R               ; ??  TCP not well or not configured?
        JUMPLE D,R              ; Sanity result:  Must be non-zero positive
        DMOVEM B,$MYHCN         ; Cache table dimensions
        MOVEM D,$MYHSN          ; Also store my host number
        DMOVE A,[ EXP .GTHNS,<POINT 7,$MYHST>] ; Get host name and status
        MOVE C,D                ; Pass in my host number
        GTHST%                  ; Why doesn't 127.0.0.1 work?
         ERJMPR R               ; Ditto: config error or serious illness
        MOVEM D,$MYHSS          ; Save the host status
        SETZM $MYTRY            ; Flag that we are okay to retrieve
        RETSKP                  ; cached information

;N.B.,  Since we are using a CODE psect, it's probably reasonable to
;       assume that there is a DATA psect defined someplace.  However,
;       if there ISN'T, then we'll have to tell LINK where to put this.

        .ENDPS                  ; End of pure code

        .PSECT DATA             ; Space for cached host information

        REMARK ** DON'T ** change the order of these variables!  DMOVED!

$MYTRY: 0                       ; non-zero if we shouldn't bother anymore
$MYHSN: 0                       ; local host number
$MYHSS: 0                       ; My host status
$MYHCN: 0                       ; -number host names,,0
        0                       ; -length of HSTSTS table,,0
$MYHST: REPEAT HSTNMW,<0>       ; Some place to put the local host text

;N.B.,  Shouldn't the control flags ($GTDOK, $GTHOK, $GTMOK and
;       $GTFOK) be moved here?

        .ENDPS                  ; End of data




27-Feb-2005 10:11:32 -0800,1826;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 10:11:32 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id KAA23635; Sun, 27 Feb 2005 10:11:30 -0800 (PST)
Date: Sun, 27 Feb 2005 09:41:18 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: 127.0.0.1 Loopback (non-)usage
To: slogin@optonline.net
cc: TOPS-20@lingling.panda.com
In-Reply-To: <2979396298026e.298026e2979396@optonline.net>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14006022837.9.MRC@lingling.panda.com>

>         DMOVE A,[ EXP .GTHNS,<POINT 7,$MYHST>] ; Get host name and status
>         MOVE C,[MHOSTN(127,0,0,1)] ;Want the local host
>         GTHST%                  ; Loopback IP address must exist
>          ERJMPR R               ; Ditto: config error or serious illness

GTHST% only returns host table information from SYSTEM:HOSTS.TXT.
The Panda distribution does not enable the DEC DNS resolver
because they got the interface wrong and it does not work with
MMailr (I tried to fix the DEC resolver and gave up).

More importantly, 127.0.0.1 is a UNIXism (or more accurately,
it's a socketsism).  There is no loopback interface in TOPS-20.
The way that you look up your local host name is with an address
of -1.

However, I *strongly* recommend that you use the routines in my
HSTNAM.MAC module instead of calling GTHST%, GTDOM%, etc.
directly.  HSTNAM.REL should be on SYS: as a standard library.
The routines in HSTNAM provide a standard interface and also
provide extremely useful run-time tuning.  When the DNS is not
working, a single word change to a program that uses HSTNAM stops
it from doing so.
-------
27-Feb-2005 10:23:00 -0800,1288;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 10:23:00 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id KAA23641; Sun, 27 Feb 2005 10:22:59 -0800 (PST)
Date: Sun, 27 Feb 2005 09:48:42 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: Definition of local host in DOMAIN reverse zone
To: slogin@optonline.net
cc: TOPS-20@lingling.panda.com
In-Reply-To: <2d7d1bd2d7f26b.2d7f26b2d7d1bd@optonline.net>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14006024183.9.MRC@lingling.panda.com>

Do you have a forward reference (A record) zone for all these
names?  You need both the forward and reverse references.  Note
that these A records have to be in the root zone since these are
all root names.

You're asking for all sorts of fun and laughter doing things the
way you are doing.  Get yourself a proper domain name, put your
machines in that domain in both your forward and reverse zones,
and stop playing with root names.

You'll be much happier and pull much less hair.  What's more, you
have the prospect of those machines actually doing Internet mail.
-------
27-Feb-2005 11:49:41 -0800,1293;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 11:49:41 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id LAA23670; Sun, 27 Feb 2005 11:49:39 -0800 (PST)
Date: Sun, 27 Feb 2005 11:31:54 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: HSTNAM Hack to handle (my) CHIVES reverse zone issue
To: slogin@optonline.net
cc: TOPS-20@lingling.panda.com
In-Reply-To: <2d83ee32d84ec8.2d84ec82d83ee3@optonline.net>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14006042971.13.MRC@lingling.panda.com>

MM and MMailr already do their own caching.  I doubt that you'll
get much benefit from caching in HSTNAM, and there are some
possible harmful effects.

The resolver is supposed to be the general caching mechanism; and
I think that you'll be better off trying to determine why you are
having name resolution problems.

As I said in a previous message, I think that it's due to your
use of root level names.  If you're not on the Internet, there's
no reason to have a resolver; and if you are on the Internet, you
should have your local network namespace set up right.
-------
27-Feb-2005 12:12:36 -0800,2179;000000000000
Return-Path: <sra@hactrn.net>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 12:12:36 -0800 (PST)
Return-Path: <sra@hactrn.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id MAA23687; Sun, 27 Feb 2005 12:12:35 -0800 (PST)
Received: from cyteen.hactrn.net ([66.92.66.68]) by lingling.panda.com with TCP/SMTP; Sun, 27 Feb 2005 11:54:52 -0800 (PST)
Received: from orodruin.hactrn.net (pcp0010099834pcs.levtwn01.pa.comcast.net [69.242.36.56])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client CN "orodruin.hactrn.net", Issuer "Grunchweather Associates" (verified OK))
	by cyteen.hactrn.net (Postfix) with ESMTP id 4E35C759
	for <TOPS-20@lingling.panda.com>; Sun, 27 Feb 2005 14:54:51 -0500 (EST)
Received: from orodruin.hactrn.net (localhost [IPv6:::1])
	by orodruin.hactrn.net (Postfix) with ESMTP id D52113B9
	for <TOPS-20@lingling.panda.com>; Sun, 27 Feb 2005 19:54:48 +0000 (GMT)
Date: Sun, 27 Feb 2005 14:54:48 -0500
From: Rob Austein <sra@hactrn.net>
To: TOPS-20@lingling.panda.com
Subject: Re: HSTNAM Hack to handle (my) CHIVES reverse zone issue
In-Reply-To: <2d83ee32d84ec8.2d84ec82d83ee3@optonline.net>
References: <2d83ee32d84ec8.2d84ec82d83ee3@optonline.net>
User-Agent: Wanderlust/2.10.1 (Watching The Wheels) Emacs/21.3 Mule/5.0 (SAKAKI)
MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka")
Content-Type: text/plain; charset=US-ASCII
Message-Id: <20050227195448.D52113B9@orodruin.hactrn.net>

Well...

I agree with Mark that you'd be better off using a real DNS name than
making up fake TLDs.  While I no longer recall precisely what the
library code does, Mark's undoubtedly also correct about the forward
and reverse mappings needing to match in order for this to work right.

At the time CHIVES was written, HOSTS.TXT was still being maintained,
but poorly (not SRI-NIC's fault, people weren't reporting changes
properly anymore).  So it made sense to check the DNS before checking
the hosts table.  In those days, BSD unix also checked the DNS first.
Times have changed.  These days it would make more sense to check the
host table first.
27-Feb-2005 17:42:35 -0800,5471;000000000000
Return-Path: <slogin@optonline.net>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 17:42:34 -0800 (PST)
Return-Path: <slogin@optonline.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id RAA23838; Sun, 27 Feb 2005 17:42:33 -0800 (PST)
From: slogin@optonline.net
Received: from mta2.srv.hcvlny.cv.net ([167.206.5.68]) by lingling.panda.com with TCP/SMTP; Sun, 27 Feb 2005 17:23:47 -0800 (PST)
Received: from optonline.net (hamstr3.srv.hcvlny.cv.net [167.206.5.10])
 by mta2.srv.hcvlny.cv.net
 (iPlanet Messaging Server 5.2 HotFix 1.25 (built Mar  3 2004))
 with ESMTP id <0ICL00AMYL7M8H@mta2.srv.hcvlny.cv.net>; Sun,
 27 Feb 2005 20:23:46 -0500 (EST)
Received: from [10.240.3.35] (Forwarded-For: [24.47.48.231])
 by mstr3.srv.hcvlny.cv.net (mshttpd); Sun, 27 Feb 2005 20:23:46 -0500
Date: Sun, 27 Feb 2005 20:23:46 -0500
Subject: Re: Definition of local host in DOMAIN reverse zone
To: Mark Crispin <MRC@lingling.panda.com>
Cc: TOPS-20@lingling.panda.com
Message-id: <1af7edb1afc54e.1afc54e1af7edb@optonline.net>
MIME-version: 1.0
X-Mailer: iPlanet Messenger Express 5.2 HotFix 1.25 (built Mar  3 2004)
Content-type: text/plain; charset=us-ascii
Content-language: en
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-Accept-Language: en
Priority: normal

Mark,

Thanks for responding to this.  I heartily detest and generally resist
bugging people for answers unless I feel that I have something
(however hackish) to contribute.  Or I'm completely lost ...

> Do you have a forward reference (A record) zone for all these
> names?  You need both the forward and reverse references.  Note
> that these A records have to be in the root zone since these are
> all root names.

I think that the basic problem here is that my skill set and level of
expertise is quite disjointed in this area.  It seems clear that I
don't have enough background in DNS to fully understand what the
issues are.  So, I don't know what a forward reference is and I
haven't found any simple documentation to explain this to me.  What
are root zones?  Why are root zones?

Do you have a URL or other documentation pointer that explains how to
set this stuff up for CHIVES?  General theory?

> You're asking for all sorts of fun and laughter doing things the
> way you are doing.  Get yourself a proper domain name, put your
> machines in that domain in both your forward and reverse zones,
> and stop playing with root names.

Well, hacking HSTNAM *was* fun!  Er, my idea of fun!  And laughs!
More, below.  There are three general issues that I have with getting
a proper domain name.  For other reasons, however, I agree that I
should do this at some point and will do so.

 1) Don't I have to 'buy' a domain from somebody and then keep paying
    for it?  It's kind of like paying rent.  Being a prospective
    rentee, how do I tell when I have a good rentor?

    Also, as I take machines in and out of service (which I do as I
    rebuild stuff), don't I have to update the DNS?  (I.E., pay to do
    so?)

 2) Secondly, to respond to SRA's points: the question is what is the
    source of definitive information about a host or what I've heard
    called the Source Of Record (SOR).  For the public Internet
    proper, the DNS is the SOR--you have to count on it being correct.

    For an Internal LAN (possibly experimental), the public DNS may
    not be the SOR.  Further, the hosts on the LAN may have no
    Internet connectivity at all and for them, setting up a DNS may be
    overkill.  In this case, updating a HOSTS.TXT file with a few
    entries that I want to overide seems to be more appropriate.

 3) Third, I didn't have to be trained or bug people to pop a line
    into HOSTS.TXT and run IPHOST.

This suggests rethinking about what the source of record is for host
name resolution.  Historically, the reasons for choosing CHIVES (or
the DEC resolver) over HOSTS.TXT are clear: it turned out to be the
SOR.  However, things may be different now as evidenced by the policy
for the SOR policy of Windows and Linspire (nee' Lindows, the host for
TOMMYT).  Here, the HOSTS.TXT file is searched first before asking the
DNS.

That has a number advantages; perhaps one might manage the
experimental LAN situation easier?  You don't have to knock a DNS
together, you just edit the HOSTS.TXT file.  Isn't that easier?  Also,
you now have a mechanism to keep traffic away from 'bad' hosts.

What do you think of the following?  Define another monitor SMON/TMON
bit (or entry) for HSTNAM source of record.  If the bit is on, then
GTHST% is asked first over the resolver.  If it's off, then the
resolver is asked (as is the current default behavior).

A number of programs use HSTNAMs.  These are, at least, the mail
system (not just MM), TELNET, FTP, FINGER and the new FTP server.
It seems counter-intuitive to deposit values into all the executables
depending on where they are run.

> You'll be much happier and pull much less hair.  What's more, you
> have the prospect of those machines actually doing Internet mail.

One way or another, I will have a public Tops-20 machine doing
Internet mail.  My goal is to have one 20 behind a firewall on a VPN
connected to another machine on the Internet via a CI-20.  I intend to
take a crack at the CI after I am more or less 'done' with FTPSRV.


27-Feb-2005 19:14:04 -0800,3722;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 19:14:04 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id TAA23880; Sun, 27 Feb 2005 19:14:03 -0800 (PST)
Date: Sun, 27 Feb 2005 18:21:37 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: Definition of local host in DOMAIN reverse zone
To: slogin@optonline.net
cc: TOPS-20@lingling.panda.com
In-Reply-To: <1af7edb1afc54e.1afc54e1af7edb@optonline.net>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14006117558.13.MRC@lingling.panda.com>

> So, I don't know what a forward reference is and I
> haven't found any simple documentation to explain this to me.

A forward reference is a reference from a name to address (A
record) or mail relay list (MX record).  A reverse reference is a
reference from address to name (PTR record).

>  What
> are root zones?  Why are root zones?

Root zones are something that you normally should never touch.
These are the zones that hold COM, NET, ORG, etc.

The names you have are effectively root names, and thus are in
the root zone.  But they're not.  Hence the problem.

> Do you have a URL or other documentation pointer that explains how to
> set this stuff up for CHIVES?  General theory?

Ha ha ha!

Your only hope is to find an O'Reilly book that explains how to
set up DNS zones, and then once you have those zones worry about
how to do so in Chives.

>  1) Don't I have to 'buy' a domain from somebody and then keep paying
> > for it?  It's kind of like paying rent.  Being a prospective
> > rentee, how do I tell when I have a good rentor?

You own the domain, but you have to pay property tax on it to a
registrar and if you don't then you forfeit it.

There are lots of domain registrars out there.  Pick one.

> > Also, as I take machines in and out of service (which I do as I
> > rebuild stuff), don't I have to update the DNS?  (I.E., pay to do
> > so?)

Only if you change the names/IP addresses of the sites in
question.  And this isn't to the registrar, this is to whomever
runs your DNS server.  You could run it yourself.  My ISP runs my
DNS server as part of my basic service, and just takes updated
zone files from me as I provide them.

> > For an Internal LAN (possibly experimental), the public DNS may
> > not be the SOR.  Further, the hosts on the LAN may have no
> > Internet connectivity at all and for them, setting up a DNS may be
> > overkill.  In this case, updating a HOSTS.TXT file with a few
> > entries that I want to overide seems to be more appropriate.

If you aren't on the Internet, then don't run Chives.  No
resolver, no DNS.

> This suggests rethinking about what the source of record is for host
> name resolution.  Historically, the reasons for choosing CHIVES (or
> the DEC resolver) over HOSTS.TXT are clear: it turned out to be the
> SOR.  However, things may be different now

I respectfully disagree.  A fair deal of support problems that I
encounter has to do with UNIX's unfortunate belief of host table
over DNS.  Host tables have a tendency to be set up wrong with
respect to primary host names.

I am not going to change my software.  You can change your copy
if you wish -- you have sources.  But I recommend that you do not
do so; and if you do anyway then you're on your own.

I think that you'll be much happier if you just configure your
system properly.  It does not require much effort to do things
right, and is certainly less work than creating a new unsupported
configuration.
-------
27-Feb-2005 20:03:51 -0800,2203;000000000000
Return-Path: <jtw@lcs.mit.edu>
Received: via tmail-2002(14) for t20arc; Sun, 27 Feb 2005 20:03:51 -0800 (PST)
Return-Path: <jtw@lcs.mit.edu>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id UAA23903; Sun, 27 Feb 2005 20:03:50 -0800 (PST)
Received: from mercury.lcs.mit.edu ([18.26.0.122]) by lingling.panda.com with TCP/SMTP; Sun, 27 Feb 2005 19:48:08 -0800 (PST)
Received: from [192.168.2.4] (c-24-15-69-242.client.comcast.net [24.15.69.242])
	(using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits))
	(No client certificate requested)
	by mercury.lcs.mit.edu (Postfix) with ESMTP id CF833872E9;
	Sun, 27 Feb 2005 22:48:06 -0500 (EST)
Mime-Version: 1.0
Message-Id: <p06210204be4841b2c666@[192.168.2.4]>
In-Reply-To: <14006022837.9.MRC@lingling.panda.com>
References: <14006022837.9.MRC@lingling.panda.com>
Date: Sun, 27 Feb 2005 21:48:03 -0600
To: Mark Crispin <MRC@lingling.panda.com>, slogin@optonline.net
From: John Wroclawski <jtw@lcs.mit.edu>
Subject: Re: 127.0.0.1 Loopback (non-)usage
Cc: TOPS-20@lingling.panda.com
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

At 9:41 AM -0800 2/27/05, Mark Crispin wrote:
>
>More importantly, 127.0.0.1 is a UNIXism (or more accurately,
>it's a socketsism).


welll, sort of.

It certainly started that way, but 127.0.0.1 (more precisely, 127/8) 
is now documented as a loopback address in RFC 3330 and in the IANA 
assigned numbers database, and reserved for this purpose in the IPv4 
Address Registry 
(http://www.iana.org/assignments/ipv4-address-space). Pedants among 
us will reply that RFC3330 is informational, not standards-track, but 
even so we see phrases like "Each computer on the Internet uses 
127.0.0.0/8 to identify itself, to itself" in the IANA description of 
special-use addresses.

This raises an interesting question that I could answer if I had code 
handy, which is whether TOPS-20 correctly prevents 127/8 addresses 
from actually appearing on the net if someone tries to send to them. 
This requirement is widely documented, although on reflection I'm not 
sure it's formally spec'd in a standard either..

john
28-Feb-2005 01:48:48 -0800,1212;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Mon, 28 Feb 2005 01:48:47 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id BAA24028; Mon, 28 Feb 2005 01:48:45 -0800 (PST)
Date: Mon, 28 Feb 2005 01:30:50 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: 127.0.0.1 Loopback (non-)usage
To: jtw@lcs.mit.edu
cc: slogin@optonline.net, TOPS-20@lingling.panda.com
In-Reply-To: <p06210204be4841b2c666@[192.168.2.4]>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14006195692.9.MRC@lingling.panda.com>

> This raises an interesting question that I could answer if I had code 
> handy, which is whether TOPS-20 correctly prevents 127/8 addresses 
> from actually appearing on the net if someone tries to send to them. 
> This requirement is widely documented, although on reflection I'm not 
> sure it's formally spec'd in a standard either..

I don't recall any such code in TOPS-20.  Don't forget that the
IP code was last changed in 1990.

It probably would work to put in an appropriate routing entry.
-------
 1-Mar-2005 01:44:39 -0800,4971;000000000000
Return-Path: <MRC@Lingling.Panda.COM>
Received: via tmail-2002(14) for t20arc; Tue, 1 Mar 2005 01:44:38 -0800 (PST)
Return-Path: <MRC@Lingling.Panda.COM>
Received: from Lingling.Panda.COM (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id BAA24730; Tue, 1 Mar 2005 01:44:37 -0800 (PST)
Date: Tue, 1 Mar 2005 01:05:54 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: new machine instructions added at Panda
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14006453298.9.MRC@Lingling.Panda.COM>

For those of you who may be curious about the new Panda machine instructions,
I've produced the following document.

The KN10 processor used with the Panda monitor is largely
compatible with the DEC KL10 processor.  Please refer to the
KLDIFF help file for additional information.

The following machine instructions are added in the KN10
processor for Panda system.  Only CIRC is valid in user mode:

247	CIRC		Circulate

Circulate AC,AC+1 the number of places specified by E.  If E is
positive, circulate AC left; bit 0 is circulated into bit 36 (bit
0 of AC+1) and bit 71 (bit 35 of AC+1) into bit 35.  If E is
negative, circulate AC right; bit 35 is circulated into bit 71
and bit 36 into bit 0.

CIRC is colloquially called "a ROTC with AC+1 going the other way."

Example: CIRC AC,^D36 will reverse the order of the bits in AC
and AC+1, leaving the results in AC+1 and AC respectively.

-----------------------------------------------------------------
77004	HSRSW		Host Read Switches

Read the contents of the console data switches (set by the "set
sw" console command) into location E.

This instruction requires that the processor be in executive mode
or user IO mode.

	Note: the historical instruction DATAI APR, (and
	the MACRO RSW mnemonic) DO NOT work because the
	KL10 architecture uses that instruction for other
	purposes.

-----------------------------------------------------------------
77014	HSLITE		Host Display Lights
70054	DATAO PI,	Data Out, Console

Display the contents of location E in the console Program Data
indicator lights.

This instruction requires that the processor be in executive mode
or user IO mode.

	Note: the historical instruction DATAO PI, works as
	an alternative to HSLITE.  However, new programs should
	use HSLITE because the XKL-1 processor uses that
	instruction for other purposes.

-----------------------------------------------------------------
77020	HSWRIT		Write to Host

Perform the functions specified by bits 18-35 as follows:

B18	set CPU state register bit
B19	set disk state register bit
B20	set tape state register bit
B21	set network state register bit
B22	display CPU/disk/tape/network state register bits on
	 light panel and clear state register bits
B23	set auxillary lights from B24-B26
B24-B26	value to be set in auxillary lights if B23 set, otherwise
	 ignored
B35	idle microcode; processor hangs until next interrupt

	Note: the state register bits and the auxillary lights
	work differently.  The state register bits are set by
	ORing with the associated HSWRIT bit and are cleared
	by HSWRIT with B22 set.  It is possible to set a state
	register bit without setting B22.  The auxillary lights
	are set only if B23 is set; and the three auxillary
	lights are set or cleared based upon the value of B24-B26.

This instruction requires that the processor be in executive mode
or user IO mode.

-----------------------------------------------------------------
77024	HSREAD		Read from Host

Read the status of the host processor into E as shown:

B0-B17	Host processor signature word, currently always
	 SIXBIT/KLH/
B18	current CPU state register bit
B19	current disk state register bit
B20	current tape state register bit
B21	current network state register bit
B22	processor supports state register bits
B23	processor supports auxillary lights
B24-B26	current value of auxillary lights
B35	processor supports idling microcode

This instruction requires that the processor be in executive mode
or user IO mode.

-----------------------------------------------------------------
77030	HSRSZ		Host Read and Skip if Zero

Test the status of the host processor against the effective mask
E.  If all status bits selected by 1s in E are 0s, skip the next
instruction in sequence.  Only the right 18 bits are tested.

This instruction requires that the processor be in executive mode
or user IO mode.

-----------------------------------------------------------------
77034	HSRSO		Host Read and Skip if One

Test the status of the host processor against the effective mask
E.  If any status bit selected by 1s in E is 1, skip the next
instruction in sequence.  Only the right 18 bits are tested.

This instruction requires that the processor be in executive mode
or user IO mode.
-------
 2-Mar-2005 06:18:13 -0800,6316;000000000000
Return-Path: <slogin@optonline.net>
Received: via tmail-2002(14) for t20arc; Wed, 2 Mar 2005 06:18:12 -0800 (PST)
Return-Path: <slogin@optonline.net>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id GAA25522; Wed, 2 Mar 2005 06:18:11 -0800 (PST)
From: slogin@optonline.net
Received: from mta3.srv.hcvlny.cv.net ([167.206.5.69]) by lingling.panda.com with TCP/SMTP; Wed, 2 Mar 2005 06:00:42 -0800 (PST)
Received: from optonline.net (hamstr3.srv.hcvlny.cv.net [167.206.5.10])
 by mta3.srv.hcvlny.cv.net
 (iPlanet Messaging Server 5.2 HotFix 1.25 (built Mar  3 2004))
 with ESMTP id <0ICQ001TS9L4ZH@mta3.srv.hcvlny.cv.net> for
 TOPS-20@lingling.panda.com; Wed, 02 Mar 2005 09:00:40 -0500 (EST)
Received: from [10.240.3.40] (Forwarded-For: [66.114.69.214])
 by mstr3.srv.hcvlny.cv.net (mshttpd); Wed, 02 Mar 2005 09:00:40 -0500
Date: Wed, 02 Mar 2005 09:00:40 -0500
Subject: CFOBF% on Internet Extended Mode FTP server startup
To: TOPS-20@lingling.panda.com
Message-id: <2c72a6c2c75e76.2c75e762c72a6c@optonline.net>
MIME-version: 1.0
X-Mailer: iPlanet Messenger Express 5.2 HotFix 1.25 (built Mar  3 2004)
Content-type: text/plain; charset=iso-8859-1
Content-language: en
Content-transfer-encoding: quoted-printable
Content-disposition: inline
X-Accept-Language: en
Priority: normal

When the new extended mode FTP server comes up=2C it naturally wants to
type a system banner=2C as per RFC959=2E  One of the appropriate things t=
o
do before this is the conditioning the line=2E  In addition to seeing
what the Exec does=2C I also looked at Kermit and the BBN FTP server=2E  =
I
break links=2C refuse system messages=2C set the terminal type to ideal
(NVT)=2C condition the TTY mode and parameter words (see below) and then
I clear the input and output line buffers=2E

Clearing the terminal output buffer does something unexpected which
breaks certain FTP clients=2E  In particular=2C if I do a CFOBF=25 on
=2EPRIOU=2C then a 0x8ff 0x8F2 shows up in the output stream=2E  Under
EFTP3=2C this shows up as a =22=FF=F2=22 as the first two characters of t=
he
output stream=2E  Under the Windows 2000=2C these are displayed as =22=A0=
=3D=22
(actually greater than or equal to)=2E

Anyway=2C the two character sequence is unexpected for clearing an
output buffer (the program has already done a RESET=25) and it hangs
certain clients that are looking for a 220 or other numeric data as
the first things from the server=2E  They gronk on control data=2E

Anybody have any ideas of what is going on=3F  I can obviously comment
out the CFOBF=25=2C but I=27m curious as to why this would be happening=2E=

The routine and definitions are below=2E

=5EL      SUBTTL SETERM - Conditions NVT line for use

=3B Expects that somebody else has determined whether we should be invoke=
d!
=3B
=3B Note well=2C the order of the calls is specifically to prevent a link=
 or
=3B a system message from gumming up the rest of the works=2E  We prevent=
 these=2C
=3B then set the modes and THEN clear the buffers!

SETERM=3A INTERN SETERM           =3B Actually used EFTPSR=2EMAC
        DMOVE T1=2C=5BEXP =3CTL=25CRO!TL=25COR!TL=25SAB!TL=25STA!=2ERHALF=
=3E=2C =2ECTTRM=5D
        TLINK=25                  =3B break and refuse links and advice
         ERJMP =2E+1              =3B  Ignore ACJ=27s opinion on this =2E=
=2E=2E
        MOVX T1=2C=2ECTTRM          =3B Following functions on controllin=
g terminal
        DMOVE T2=2C=5BEXP =2EMOSNT=2C=2EMOSMN=5D
        MTOPR=25                  =3B refuse system messages
         ERCAL FATAL
        MOVX T2=2C=2ETTIDL          =3B set controlling terminal type to =
ideal
        STTYP=25
         ERCAL FATAL
        MOVX T2=2CTTYMOD          =3B Load JFN mode word
        SFMOD=25                  =3B Set program related mode
         ERCAL FATAL
        MOVX T2=2CTTYPAR          =3B Load JFN parameter word
        STPAR=25                  =3B Set device related parameters
         ERCAL FATAL
        DMOVE T2=2C=5BBYTE (2) 2=2C2=2C2=2C0=2C2=2C2=2C2=2C2=2C2=2C2=2C2=2C=
2=2C2=2C2=2C2=2C2=2C2=2C2
                  BYTE (2) 2=2C2=2C2=2C2=2C2=2C2=2C2=2C2=2C2=2C2=2C2=2C2=2C=
2=2C2=2C2=2C2=2C2=2C2=5D
        SFCOC=25                  =3B disable all echoing on controls
         ERCAL FATAL
        MOVX T1=2C=2EPRIIN
        CFIBF=25                  =3B clear possible crud in our input bu=
ffer
         ERCAL FATAL            =3B  from an earlier connection
        MOVX T1=2C=2EPRIOU
        CFOBF=25                  =3B plus any junk that might have accum=
ulated
         ERCAL FATAL            =3B  in our output buffer
        MOVE T1=2C=5BSIXBIT/EFTPSR/=5D =3B set our name
        SETNM=25
         ERCAL FATAL            =3B Why would that fail=3F=3F
        TQO F=25LIN               =3B Flag that we did this
        RET
=0C
The terminal mode and parameter words are defined in the extended FTP
server universal file and are included=2C below=2E

=3B Standard definitions for NVT server terminal
=3B
=3B Terminal mode word (program local settings)
=3B
=3B       TT=25OSP   output suppress control (0=3Dallow output)
=3B       TT=25WKF   Wakeup on formating control chars
=3B       TT=25WKN   Wakeup on non-formatting controls
=3B       TT=25WKP   Wakeup on punctuation
=3B       TT=25WKA   Wakeup on alphanumerics
=3B       TT=25ECO   Echoes on (0=3Doff)
=3B       TT=25DAM   Terminal data mode
=3B        =2ETTASC ASCII

TTYMOD=3D=3DTT=25WKF!TT=25WKN!TT=25WKP!TT=25WKA!=3CFLD =2ETTASC=2CTT=25DA=
M=3E

=3B Terminal parameter word (device global settings)
=3B
=3B       TT=25MFF   Mechanical formfeed present
=3B       TT=25TAB   Mechanical tab present
=3B       TT=25LCA   Lower case capabilities present
=3B       TT=25LEN   Page length field (0)
=3B       TT=25WID   Page width field (0)
=3B       TT=25ECM   Echo Mode (0=3Doff)
=3B       TT=25UOC   Upper case output control (0=3Ddo NOT indicate)
=3B       TT=25LIC   Lower case input control (0=3Dno conversion)
=3B       TT=25DUM   Duplex mode
=3B        =2ETTLDX  Line half duplex
=3B       TT=25PGM    pause-on-command mode (0=3Ddisable)

TTYPAR=3D=3DTT=25MFF!TT=25TAB!TT=25LCA!=3CFLD =2ETTLDX=2CTT=25DUM=3E



 2-Mar-2005 13:29:44 -0800,3971;000000000000
Return-Path: <MRC@Lingling.Panda.COM>
Received: via tmail-2002(14) for t20arc; Wed, 2 Mar 2005 13:29:44 -0800 (PST)
Return-Path: <MRC@Lingling.Panda.COM>
Received: from Lingling.Panda.COM (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id NAA25693; Wed, 2 Mar 2005 13:29:42 -0800 (PST)
Received: from mxout5.cac.washington.edu ([140.142.32.135]) by Lingling.Panda.COM with TCP/SMTP; Wed, 2 Mar 2005 13:11:31 -0800 (PST)
Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.139])
	by mxout5.cac.washington.edu (8.13.3+UW05.01/8.13.3+UW05.01) with ESMTP id j22KWkf0022772;
	Wed, 2 Mar 2005 12:32:46 -0800
Received: from Shimo-Tomobiki.panda.com (panda.com [206.124.149.114])
	(authenticated bits=0)
	by smtp.washington.edu (8.13.3+UW05.01/8.13.3+UW05.01) with ESMTP id j22KWQNo015773
	(version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT);
	Wed, 2 Mar 2005 12:32:40 -0800
Date: Wed, 2 Mar 2005 12:32:19 -0800
From: Mark Crispin <MRC@Lingling.Panda.COM>
To: slogin@optonline.net
cc: TOPS-20@Lingling.Panda.COM
Subject: Re: CFOBF% on Internet Extended Mode FTP server startup
In-Reply-To: <2c72a6c2c75e76.2c75e762c72a6c@optonline.net>
Message-ID: <Pine.WNT.4.63.0503021202310.2964@Shimo-Tomobiki.panda.com>
References: <2c72a6c2c75e76.2c75e762c72a6c@optonline.net>
Organization: Networks & Distributed Computing
Sender: mrc@ndcms.cac.washington.edu
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-2022-JP; FORMAT=flowed
Content-ID: <Pine.WNT.4.63.0503021210361.2964@Shimo-Tomobiki.panda.com>

On Wed, 2 Mar 2005 slogin@optonline.net wrote:
> Clearing the terminal output buffer does something unexpected which
> breaks certain FTP clients.  In particular, if I do a CFOBF% on
> .PRIOU, then a 0x8ff 0x8F2 shows up in the output stream.  Under
> EFTP3, this shows up as a "$B[U(B" as the first two characters of the
> output stream.  Under the Windows 2000, these are displayed as "$B^!(B"
> (actually greater than or equal to).

0x8ff 0x8f2 are not octets.

Did you mean to say 0xff 0xf2?  If so, that is IAC DM, which is perfectly 
reasonable to send over FTP.  Unlike most other protocols, FTP has TELNET 
control commands.

What's more, a CFOBF% on a TVT definitely sends an IAC DM.

> Anyway, the two character sequence is unexpected for clearing an
> output buffer (the program has already done a RESET%) and it hangs
> certain clients that are looking for a 220 or other numeric data as
> the first things from the server.  They gronk on control data.

Then that's a bug in those clients.

> Anybody have any ideas of what is going on?  I can obviously comment
> out the CFOBF%, but I'm curious as to why this would be happening.

The IMAP server and the SMTP server (back in the days when it ran on TVTs) 
do CFIBF% to remove any crud that was still in the TVT input buffer from a 
previous session, but they do not do CFOBF%.

As a programming note for the archives:

It is generally a bad idea to run on TVTs.  You can not prevent TELNET 
protocol from happening on TVTs, and TVTs are much much slower than 
redirected JFNs.

This is not a problem for FTP; FTP uses TELNET protocol and doesn't do 
substantial I/O on its primary I/O.  What's more, it needs to log in so it 
needs to be in its own job.

However, it's a problem for SMTP and IMAP, both of which need to do 
substantial I/O on primary I/O and neither of which do TELNET protocol. 
That is why, these days, SMTP runs as a subfork of SMTJFN and its primary 
I/O are redirected JFNs.

The current Panda distribution still runs the IMAP server on a TVT, but I 
just looked at the code and discovered to my surprised that I actually did 
the work to make it run as a subfork of IMAPSV.  That'll be fixed in the 
next Panda distribution.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
 3-Mar-2005 13:41:41 -0800,1207;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: via tmail-2002(14) for t20arc; Thu, 3 Mar 2005 13:41:41 -0800 (PST)
Return-Path: <MRC@lingling.panda.com>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id NAA26539; Thu, 3 Mar 2005 13:41:39 -0800 (PST)
Date: Thu, 3 Mar 2005 13:24:04 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: memory leak (possibly more?) bugfix to IPIPIP.MAC
To: TOPS-20@lingling.panda.com
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14007111966.11.MRC@lingling.panda.com>

At SNDFR5-7, there is the following code sequence:
	SKIPLE PKT,T1		; did we get the space?
	POP P,(P)		; Drop T1
	MOVE PKT,(P)		; Original PKT

There is a missing instruction here; there should be a JRST
SNDFR5 after the SKIPLE, e.g.:
	SKIPLE PKT,T1		; did we get the space?
	 JRST SNDFR5		; yes
	POP P,(P)		; Drop T1
	MOVE PKT,(P)		; Original PKT

This code comes into play when there are three or more fragments.
At the very least, this causes a memory leak; when GETBLK finally
fails it looks like the stack gets screwed up too.

Thanks to Fred Wright for this bugfix.
-------
 3-Mar-2005 15:01:50 -0800,1920;000000000000
Return-Path: <mike@zanker.org>
Received: via tmail-2002(14) for t20arc; Thu, 3 Mar 2005 15:01:50 -0800 (PST)
Return-Path: <mike@zanker.org>
Received: from lingling.panda.com (Lingling.Panda.COM [206.124.149.115]) by Ikkoku-Kan.Panda.COM id PAA26584; Thu, 3 Mar 2005 15:01:48 -0800 (PST)
Received: from mallard.zanker.org ([81.187.169.2]) by lingling.panda.com with TCP/SMTP; Thu, 3 Mar 2005 14:45:59 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
	s=thekey; d=zanker.org;
	b=ccUfKjs57QZB9FlXTcAjltDsOQrFSFvM3rYemogvjq6GaSwjAPfjwjaLqq0fCuz5QwWQLuLlh02FRLPC2yRROvWwVOQL6Z7a/tNLmoOEqz6licrYsSQ0fmC12cihlol5;
Received: from jemima.zanker.org ([2001:8b0:f:1:260:8ff:fe49:e6a4] helo=[IPv6:2001:8b0:f:1:260:8ff:fe49:e6a4])
	by mallard.zanker.org with esmtpsa (TLSv1:AES256-SHA:256)
	(Exim 4.47)
	id 1D6z4p-00027y-K7
	for TOPS-20@lingling.panda.com; Thu, 03 Mar 2005 22:45:51 +0000
Message-ID: <4227939E.4090004@zanker.org>
Date: Thu, 03 Mar 2005 22:45:50 +0000
From: Mike Zanker <mike@zanker.org>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: TOPS-20@lingling.panda.com
Subject: Re: memory leak (possibly more?) bugfix to IPIPIP.MAC
References: <14007111966.11.MRC@lingling.panda.com>
In-Reply-To: <14007111966.11.MRC@lingling.panda.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Mallard-MailScanner: Found to be clean (of known viruses)
X-Mallard-MailScanner-From: mike@zanker.org

On 03/03/2005 21:24, Mark Crispin wrote:

> This code comes into play when there are three or more fragments.
> At the very least, this causes a memory leak; when GETBLK finally
> fails it looks like the stack gets screwed up too.

Could this have anything to do with my dying network connection? I've 
eliminated everything except network traffic as the cause, I think...

Mike.
13-Mar-2005 23:47:14-PST,539;000000000001
Mail-From: MRC created at 13-Mar-2005 23:40:23
Date: Sun, 13 Mar 2005 23:40:23 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: lights panel available from Spare Time Gizmos
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14009845603.10.MRC@Lingling.Panda.COM>

If you are interested in getting a lights panel for your own KLH10-based
TOPS-20 system, Spare Time Gizmos is now offering it:
	http://www.sparetimegizmos.com/Hardware/Panda.htm
-------
17-Mar-2005 21:06:26-PST,1141;000000000000
Mail-From: MRC created at 17-Mar-2005 21:00:33
Date: Thu, 17 Mar 2005 21:00:33 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: bug in JRA instruction in KLH10
To: TOPS-20@Lingling.Panda.COM
cc: KLH@panix.com
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14010865080.10.MRC@Lingling.Panda.COM>

Problem:
	JRA instruction jumps to the wrong place when running in a
	non-zero section.

Diagnosis:
	KLH10 is jumping to the effective address, which in a non-zero
	section will have the AC restore address as a section number.
	JRA jumps must always be intra-section

Solution:
	In the KLH10 source module injrst.c, in routine i_jra(), change:
    PC_JUMP(e);				/* Jump to E */
to:
    va_lmake(va, PC_SECT, va_insect(e));
    PC_JUMP(va);			/ Jump to PC section,,RH(E) */

Thanks to Fred Wright for telling me about this problem.

[And you thought that nobody ever used JSA/JRA any more!  :-)]

-- Mark --

http://panda.com/tops-20
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
-------
17-Mar-2005 22:34:52-PST,2476;000000000000
Return-Path: <klh@panix.com>
Received: from mail1.panix.com ([166.84.1.72]) by Lingling.Panda.COM with TCP/SMTP; Thu, 17 Mar 2005 22:28:30 -0800 (PST)
Received: from panix1.panix.com (panix1.panix.com [166.84.1.1])
	by mail1.panix.com (Postfix) with ESMTP id 1317458AD3;
	Fri, 18 Mar 2005 01:28:30 -0500 (EST)
Received: (from klh@localhost)
	by panix1.panix.com (8.11.6p3/8.8.8/PanixN1.1) id j2I6SU806207;
	Fri, 18 Mar 2005 01:28:30 -0500 (EST)
Date: Fri, 18 Mar 2005 1:28:30 EST
From: Ken Harrenstien <klh@panix.com>
To: Mark Crispin <MRC@Lingling.Panda.COM>
Cc: TOPS-20@Lingling.Panda.COM, KLH@panix.com
Subject: Re: bug in JRA instruction in KLH10
In-Reply-To: Your message of Thu, 17 Mar 2005 21:00:33 -0800 (PST)
Message-ID: <CMM.0.91.0.1111127310.klh@panix1.panix.com>

> Problem:
> 	JRA instruction jumps to the wrong place when running in a
> 	non-zero section.
>
> Diagnosis:
> 	KLH10 is jumping to the effective address, which in a non-zero
> 	section will have the AC restore address as a section number.
> 	JRA jumps must always be intra-section

I had to look at the code, the PRM, and the microcode to figure out
what was going on here.  The only thing I couldn't do was run a test
on a real KL.

I would disagree with the diagnosis.  The AC restore address has
nothing whatsoever to do with the effective address, which is computed
(just like every other EA) before i_jra() is called.  The KLH10 code
is treating the jump just like any other jump, per the PRM
description.

What's really going on is that the KL microcode implementing JRA
appears to be buggy to begin with, and its actual behavior was never
documented in the PRM.  From KLX.MCR:

    JRA: AR12-17_PC SEC		;[235] put section in jump address.

My interpretation is that this forces the EA to always be clobbered
with the current PC section.  No other jump instruction appears to be
similarly crippled (although where the ucode is concerned, one can
never be completely sure of anything).

> Solution:
> 	In the KLH10 source module injrst.c, in routine i_jra(), change:
>     PC_JUMP(e);				/* Jump to E */
> to:
>     va_lmake(va, PC_SECT, va_insect(e));
>     PC_JUMP(va);			/ Jump to PC section,,RH(E) */

This should work.  (Don't forget to make that a "/* Jump" instead of
"/ Jump" :-)

> Thanks to Fred Wright for telling me about this problem.
>
> [And you thought that nobody ever used JSA/JRA any more!  :-)]

Indeed!

--Ken
17-Mar-2005 23:53:22-PST,476;000000000000
Mail-From: MRC created at 17-Mar-2005 23:48:08
Date: Thu, 17 Mar 2005 23:48:08 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: JRA and extended addressing
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14010895590.11.MRC@Lingling.Panda.COM>

I gave Ken a pointer to EXTENDED_ADDRESSING.MEM which is the real
documentation of how extended addressing works (unlike the PRM...).
-------
18-Mar-2005 15:17:34-PST,1375;000000000000
Return-Path: <GORIN@toed.xkl.com>
Received: from toed.xkl.com ([192.94.202.46]) by Lingling.Panda.COM with TCP/SMTP; Fri, 18 Mar 2005 15:12:09 -0800 (PST)
Date: Fri, 18 Mar 2005 15:09:24 -0800
From: Ralph Gorin <Gorin@toed.xkl.com>
Subject: Re: bug in JRA instruction in KLH10
To: klh@panix.com
cc: MRC@lingling.panda.com, TOPS-20@lingling.panda.com
In-Reply-To: <CMM.0.91.0.1111127310.klh@panix1.panix.com>
Reply-to: gorin@xkl.com
Message-ID: <14011063301.9.GORIN@toed.xkl.com>

Gents,

Although the behavior of JSA/JRA is incompletely described in DEC's
processor reference manual, it is discussed in some detail in
the "Extended Addressing" memorandum, revision 5, dating from July 1983.

The grammar leaves a lot to be desired, but the meaning is clear enough:

      The normal usage of JRA  is  of  the  form  JRA  AC,(AC)  and  the
      operation of the instruction is defined to take this into account.
      After the normal effective address calculation  is  performed,  PC
      section  is appended to the in-section addresses in AC to form the
      address of where the old contents of AC were stored and the new PC
      address.   This  forces  all  references to be in PC section. 

The KL10 microcode that Ken quotes forces E to be in the PC section.
The AC restore address must be forced into a section also.

Ralph
-------
19-Mar-2005 22:22:41-PST,7308;000000000000
Return-Path: <fw@well.com>
Received: from a.mail.sonic.net ([64.142.16.245]) by lingling.panda.com with TCP/SMTP; Sat, 19 Mar 2005 22:17:58 -0800 (PST)
Received: from Amiga.local (64-142-29-113.dsl.static.sonic.net [64.142.29.113])
	by a.mail.sonic.net (8.13.3/8.13.3) with ESMTP id j2K6Hw5S028348
	for <TOPS-20@Lingling.Panda.COM>; Sat, 19 Mar 2005 22:17:58 -0800
Date: Sat, 19 Mar 2005 22:17:58 -0800 (PST)
From: Fred Wright <fw@well.com>
X-Sender: fw@Amiga.local
Reply-To: Fred Wright <fw@well.com>
To: TOPS-20@Lingling.Panda.COM
Subject: Re: bug in JRA instruction in KLH10
In-Reply-To: <14011063301.9.GORIN@toed.xkl.com>
Message-ID: <Pine.AMI.4.21.0503192136160.173494936-200000@Amiga.local>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-469368732-1111299478=:173494936"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-469368732-1111299478=:173494936
Content-Type: TEXT/PLAIN; charset=US-ASCII


On Fri, 18 Mar 2005, Ken Harrenstien wrote:

> > Problem:
> > 	JRA instruction jumps to the wrong place when running in a
> > 	non-zero section.
> >
> > Diagnosis:
> > 	KLH10 is jumping to the effective address, which in a non-zero
> > 	section will have the AC restore address as a section number.
> > 	JRA jumps must always be intra-section
> 
> I had to look at the code, the PRM, and the microcode to figure out
> what was going on here.  The only thing I couldn't do was run a test
> on a real KL.

Whassamatta, you not willing to take the word of someone who's written
PDP-10 extended addressing microcode that runs TOPS-10 and TOPS-20
and passes all the diagnostics? :-)

> I would disagree with the diagnosis.  The AC restore address has
> nothing whatsoever to do with the effective address, which is computed

It has nothing *directly* to do with it, but in normal usage one has:

	JRA	AC,x(AC)	;x being the desired number of skips

where AC contains FOO,,BAR with FOO being the location of the saved AC and
BAR the saved PC.

> (just like every other EA) before i_jra() is called.  The KLH10 code

Exactly.  And unless FOO >= 400000 (or FOO&7777 == 0), in a nonzero
section this takes the low 12 bits of FOO as the section number for the
jump, which is almost always the wrong thing.

> is treating the jump just like any other jump, per the PRM
> description.

The PRM lies, in this as well as other cases. :-)

> What's really going on is that the KL microcode implementing JRA
> appears to be buggy to begin with, and its actual behavior was never
> documented in the PRM.  From KLX.MCR:
> 
>     JRA: AR12-17_PC SEC		;[235] put section in jump address.
> 
> My interpretation is that this forces the EA to always be clobbered
> with the current PC section.  No other jump instruction appears to be
> similarly crippled (although where the ucode is concerned, one can
> never be completely sure of anything).

If JRA behaved consistently with other instructions, it would be virtually
useless when running extended.  DEC chose usefulness over consistency.

It would have been less "crippled" if this kludge had been applied only
when XR==AC, but that would have needed extra hardware (and probably extra
time).  Thus, you can't do something like

	JRA	AC,@[BAR]

to JRA to another section.

> > Solution:
> > 	In the KLH10 source module injrst.c, in routine i_jra(), change:
> >     PC_JUMP(e);				/* Jump to E */
> > to:
> >     va_lmake(va, PC_SECT, va_insect(e));
> >     PC_JUMP(va);			/ Jump to PC section,,RH(E) */
> 
> This should work.  (Don't forget to make that a "/* Jump" instead of
> "/ Jump" :-)

Actually, I did it slightly differently, in that I used

	va_setinsect(va, va_insect(e));	/* Form PC sect,,E */

to form the address.  That exploits the fact that VA is already a local
address in the correct section, and merely needs the in-section part
replaced by RH(E) to form the correct jump address.

I attached the complete diff as I implemented it.  The conditional is
there mostly for informational purposes regarding the "old way", and isn't
logically required.

> > [And you thought that nobody ever used JSA/JRA any more!  :-)]
> 
> Indeed!

Actually, I didn't write the JRAs that caused trouble (in BACKUP's AC
save/restore coroutines), but I did make the previously section-0-only
code run extended, and there was no need to "fix" the JRAs on a properly
working processor.

On Fri, 18 Mar 2005, Ralph Gorin wrote:

> Although the behavior of JSA/JRA is incompletely described in DEC's
> processor reference manual, it is discussed in some detail in
> the "Extended Addressing" memorandum, revision 5, dating from July 1983.

Fortunately we had a copy of that when writing the SC30 microcode.

> The grammar leaves a lot to be desired, but the meaning is clear enough:
> 
>       The normal usage of JRA  is  of  the  form  JRA  AC,(AC)  and  the
>       operation of the instruction is defined to take this into account.
>       After the normal effective address calculation  is  performed,  PC
>       section  is appended to the in-section addresses in AC to form the
>       address of where the old contents of AC were stored and the new PC
>       address.   This  forces  all  references to be in PC section. 
> 
> The KL10 microcode that Ken quotes forces E to be in the PC section.
> The AC restore address must be forced into a section also.

Yes, although the latter part is pretty much obvious given that the AC
restore address is unequivocally an 18-bit (and hence local) address.  E,
however, is always a 30-bit address even when it's local, since it's
possible to have a local address in a different section.  Any application
of "PC section" normally occurs during the EA calculation, not the
instruction execution, with the local/global flag being retained only to
determine increment style and which sections contain ACs.  Hence, using PC
section is natural for the AC restore, but a special kludge for the jump
address.

					Fred Wright

---559023410-469368732-1111299478=:173494936
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="injrst.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.AMI.4.21.0503192217580.173494936@Amiga.local>
Content-Description: 
Content-Disposition: attachment; filename="injrst.diff"

LS0tIGtsaDEwLTIuMGgtZncvc3JjL2luanJzdC5jLm9yaWcJVGh1IE1hciAy
MSAwMTo1MTozNyAyMDAyDQorKysga2xoMTAtMi4waC1mdy9zcmMvaW5qcnN0
LmMJRnJpIEp1bCAzMCAwMDo0NDowOCAyMDA0DQpAQCAtMTE2LDcgKzExNiwx
MiBAQA0KIA0KICAgICB2YV9sbWFrZSh2YSwgUENfU0VDVCxhY19nZXRsaChh
YykpOwkvKiBNYWtlIEFDLmxoIGEgbG9jYWwgYWRkcmVzcyAqLw0KICAgICBh
Y19zZXQoYWMsIHZtX3JlYWQodmEpKTsJCS8qIEdldCBjKEFDLmxoKSBpbnRv
IEFDICovDQorI2lmICFLTEgxMF9FWFRBRFIJCS8qIEZpeGVkIHRoaXMgZm9y
IGV4dGVuZGVkIGNhc2UgLSBGVyAqLw0KICAgICBQQ19KVU1QKGUpOwkJCQkv
KiBKdW1wIHRvIEUgKi8NCisjZWxzZQ0KKwl2YV9zZXRpbnNlY3QodmEsIHZh
X2luc2VjdChlKSk7CS8qIEZvcm0gUEMgc2VjdCwsRSAqLw0KKwlQQ19KVU1Q
KHZhKTsJCQkJCS8qIEp1bXAgdGhlcmUgKi8NCisjZW5kaWYNCiAgICAgcmV0
dXJuIFBDSU5DXzA7DQogfQ0KIAwNCg==
---559023410-469368732-1111299478=:173494936--
20-Mar-2005 09:15:16-PST,3680;000000000000
Return-Path: <MRC@lingling.panda.com>
Received: from mxout5.cac.washington.edu ([140.142.32.135]) by lingling.panda.com with TCP/SMTP; Sun, 20 Mar 2005 09:10:40 -0800 (PST)
Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.139])
	by mxout5.cac.washington.edu (8.13.3+UW05.01/8.13.3+UW05.01) with ESMTP id j2KHAfTW032672;
	Sun, 20 Mar 2005 09:10:41 -0800
Received: from shiva0.cac.washington.edu (shiva0.cac.washington.edu [140.142.37.170])
	(authenticated bits=0)
	by smtp.washington.edu (8.13.3+UW05.01/8.13.3+UW05.01) with ESMTP id j2KHAe9R016179
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT);
	Sun, 20 Mar 2005 09:10:40 -0800
Date: Sun, 20 Mar 2005 09:10:40 -0800 (PST)
From: Mark Crispin <MRC@lingling.panda.com>
Sender: mrc@shiva0.cac.washington.edu
To: Fred Wright <fw@well.com>
cc: TOPS-20@lingling.panda.com
Subject: Re: bug in JRA instruction in KLH10
In-Reply-To: <Pine.AMI.4.21.0503192136160.173494936-200000@Amiga.local>
Message-ID: <Pine.LNX.4.63.0503200850020.5965@shiva0.cac.washington.edu>
References: <Pine.AMI.4.21.0503192136160.173494936-200000@Amiga.local>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; format=flowed
Content-ID: <Pine.LNX.4.63.0503200850022.5965@shiva0.cac.washington.edu>

On Sat, 19 Mar 2005, Fred Wright wrote:
> Whassamatta, you not willing to take the word of someone who's written
> PDP-10 extended addressing microcode that runs TOPS-10 and TOPS-20
> and passes all the diagnostics? :-)

I think that we can stipulate that Fred's expertise is unquestioned on 
this mailing list.  We're not a newsgroup here!  :-)  :-)

> It would have been less "crippled" if this kludge had been applied only
> when XR==AC, but that would have needed extra hardware (and probably extra
> time).  Thus, you can't do something like
> 	JRA	AC,@[BAR]
> to JRA to another section.

However, if I understand things correctly, indirection *can* reference 
other sections during the EA calculation via a GFIW; it's just the final 
value of E which is coerced to the PC section.

I can't imagine how this would be useful.  Although I wager that, if we 
said that in Stew Nelson's presence, he'd come up with something. :-)

> Actually, I did it slightly differently, in that I used
> 	va_setinsect(va, va_insect(e));	/* Form PC sect,,E */
> to form the address.  That exploits the fact that VA is already a local
> address in the correct section, and merely needs the in-section part
> replaced by RH(E) to form the correct jump address.

I'm neutral on which patch to use, and am willing to punt the decision to 
Ken.  I doubt that it makes a significant performance difference either 
way.  Fred's patch may be faster, my patch may be less likely to break if 
someone ever changes the i_jra() code in the future without looking 
carefully.

> Actually, I didn't write the JRAs that caused trouble (in BACKUP's AC
> save/restore coroutines), but I did make the previously section-0-only
> code run extended, and there was no need to "fix" the JRAs on a properly
> working processor.

Wow.  I don't know what amazes me me more, the fact that BACKUP uses 
JSA/JRA or that you made it run in a non-zero section.

This sounds like a fascinating story.  Care to tell it?

>> the "Extended Addressing" memorandum, revision 5, dating from July 1983.
> Fortunately we had a copy of that when writing the SC30 microcode.

Ken has that document; he just overlooked the section about JSA/JRA.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
20-Mar-2005 09:20:29-PST,1042;000000000000
Mail-From: MRC created at 20-Mar-2005 09:16:17
Date: Sun, 20 Mar 2005 09:16:17 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: CONS?
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14011523305.10.MRC@lingling.panda.com>

Does anyone know how CONS worked on the Stanford PDP-6?  The only
documentation that I have about it is "read the prints" and the
paper tape of the source of the CONS diagnostic.  The Stanford
PDP-6 was, sadly, donated to the Computer Museum which destroyed
it.

Although we are using opcode 247 for CIRC (which is definitely
more useful), I think that there is hack value in implementing
CONS in the 7xx space.  I suspect that it's hopelessly tied to
section 0 though.

If someone in the Seattle area has a paper tape reader and is willing
to read that tape, please let me know.  It's definitely an ASCII
tape.  People more distant have offered to read it, but I don't
want to let that tape out of my sight.
-------
20-Mar-2005 14:21:17-PST,2638;000000000000
Return-Path: <AMartin.MA.UltraNet@RCN.Com>
Received: from smtp04.mrf.mail.rcn.net ([207.172.4.63]) by lingling.panda.com with TCP/SMTP; Sun, 20 Mar 2005 14:15:57 -0800 (PST)
Received: from 207-172-216-226.s988.apx1.sbo.ma.dialup.rcn.com (HELO RCN.Com) (207.172.216.226)
  by smtp04.mrf.mail.rcn.net with ESMTP; 20 Mar 2005 17:15:55 -0500
Message-ID: <423DF621.863B1C5B@RCN.Com>
Date: Sun, 20 Mar 2005 17:16:01 -0500
From: "Alan H. Martin" <AMartin.MA.UltraNet@RCN.Com>
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,en-US,en-GB,es
MIME-Version: 1.0
To: TOPS-20@lingling.panda.com
Subject: Re: bug in JRA instruction in KLH10
References: <Pine.AMI.4.21.0503192136160.173494936-200000@Amiga.local> <Pine.LNX.4.63.0503200850020.5965@shiva0.cac.washington.edu>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Mark Crispin wrote:
> 
> On Sat, 19 Mar 2005, Fred Wright wrote:
...
> > Actually, I didn't write the JRAs that caused trouble (in BACKUP's AC
> > save/restore coroutines), but I did make the previously section-0-only
> > code run extended, and there was no need to "fix" the JRAs on a properly
> > working processor.
> 
> Wow.  I don't know what amazes me me more, the fact that BACKUP uses
> JSA/JRA ...

BACKUP.MAC (the command scanner) calls .SAVE1 in the .SAVE module of
SCAN:

"
;%4(275) DEC, 1973
...
;307	IMPLEMENT D.TODD'S LATEST .SAVEN
...
;%6(370) JULY, 1974
...
;521	IMPROVE SAVEN ROUTINES EVEN MORE
...
;.SAVE1 -- SUBROUTINE TO SAVE P1 FOR A SUBROUTINE
;CALL:	PUSHJ	P,.SAVE1
;RETURN	POPJ OR .POPJ1, RESTORES P1 AND EXITS AS SKIP OR NON-SKIP

.SAVE1::EXCH	P1,(P)		;SAVE P1, GET CALLER PC
	HRLI	P1,(P)		;GET ADDRESS WHERE P1 IS SAVED	[307,521]
	PUSHJ	P,SAVJMP	;STACK NEW RETURN PC AND JUMP	[521]
	  SOS	-1(P)		;NON-SKIP RETURN, COMPENSATE .POPJ1  [521]
	JRST	RET1		;RESTORE P1 AND EXIT
...
RET1:	POP	P,P1		;RESTORE P1
.POPJ1::AOS	(P)		;INCREMENT PC			[521]
.POPJ::	POPJ	P,		;RETURN

;THE FOLLOWING INSTRUCTION RETSTORES P1 AND DISPATCHES TO THE CALLER.

SAVJMP:	JRA	P1,(P1)		;RETURN TO CALLER		[521]
"

SCAN itself can call all of .SAVE1-.SAVE4 for one reason or another.

BACKRS.MAC (where the rubber hits the road) has similar routines SAVE1-
SAVE4:

"
SAVE1:  EXCH    P1,(P)
        PUSH    P,.+3
        HRLI    P1,-1(P)
        JRA     P1,(P1)
          CAIA  .
        AOS     -1(P)
        JRST    POP1
...
POP1:   POP     P,P1
        POPJ    P,0
"

Note that there are no uses of JSA in SCAN, BACKUP or BACKRS, just some
JRAs.
				/AHM
-- 
Alan Howard Martin			AMartin.MA.UltraNet@RCN.Com
20-Mar-2005 16:04:12-PST,3616;000000000000
Return-Path: <fw@well.com>
Received: from a.mail.sonic.net ([64.142.16.245]) by lingling.panda.com with TCP/SMTP; Sun, 20 Mar 2005 15:59:51 -0800 (PST)
Received: from [172.24.0.5] (64-142-29-113.dsl.static.sonic.net [64.142.29.113])
	(authenticated bits=0)
	by a.mail.sonic.net (8.13.3/8.13.3) with ESMTP id j2KNxmLI009488
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <TOPS-20@lingling.panda.com>; Sun, 20 Mar 2005 15:59:51 -0800
Date: Sun, 20 Mar 2005 15:59:48 -0800
From: Fred Wright <fw@well.com>
Reply-To: Fred Wright <fw@well.com>
To: TOPS-20@lingling.panda.com
Subject: Re: bug in JRA instruction in KLH10
Message-ID: <1D1ED96D2E8CA364CDDC99D9@[172.24.0.5]>
In-Reply-To: <Pine.LNX.4.63.0503200850020.5965@shiva0.cac.washington.edu>
References: <Pine.AMI.4.21.0503192136160.173494936-200000@Amiga.local>
 <Pine.LNX.4.63.0503200850020.5965@shiva0.cac.washington.edu>
X-Mailer: Mulberry/3.1.6 (Mac OS X)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--On Sunday, March 20, 2005 9:10 AM -0800 Mark Crispin 
<MRC@lingling.panda.com> wrote:
> On Sat, 19 Mar 2005, Fred Wright wrote:
>> Whassamatta, you not willing to take the word of someone who's written
>> PDP-10 extended addressing microcode that runs TOPS-10 and TOPS-20
>> and passes all the diagnostics? :-)
>
> I think that we can stipulate that Fred's expertise is unquestioned on
> this mailing list.  We're not a newsgroup here!  :-)  :-)

Anyone need any consulting?  No smiley.

>> It would have been less "crippled" if this kludge had been applied only
>> when XR==AC, but that would have needed extra hardware (and probably
>> extra time).  Thus, you can't do something like
>> 	JRA	AC,@[BAR]
>> to JRA to another section.
>
> However, if I understand things correctly, indirection *can* reference
> other sections during the EA calculation via a GFIW; it's just the final
> value of E which is coerced to the PC section.

Exactly.  As always, the EA calc is oblivious to the opcode.  But the 
section coercion renders constructs like the above pretty useless, which is 
what I was getting at.

> I can't imagine how this would be useful.  Although I wager that, if we
> said that in Stew Nelson's presence, he'd come up with something. :-)

Yeah, I imagine the guy who saw FSC as "add immediate to opcode" (until DEC 
spoiled the fun by making it normalize) could think of something. :-)

>> Actually, I didn't write the JRAs that caused trouble (in BACKUP's AC
>> save/restore coroutines), but I did make the previously section-0-only
>> code run extended, and there was no need to "fix" the JRAs on a properly
>> working processor.
>
> Wow.  I don't know what amazes me me more, the fact that BACKUP uses
> JSA/JRA or that you made it run in a non-zero section.
>
> This sounds like a fascinating story.  Care to tell it?

I didn't make all of BACKUP run extended by a long shot, and certainly not 
SCAN.  But I did make enough of the code run extended (as well as fixing a 
number of monitor bugs related to extended buffered-mode I/O) to allow it 
to use an extended section for the tape buffers, so that it could buffer 
more data.  On helical-scan drives, not keeping up with the tape isn't 
merely a performance issue - it's also a reliability issue due to the 
effects of all the "tape rocking".  Of course that was before the more 
recent "fix" for the tape-rocking problem, which was to teach it to dump on 
DVD-RAM. :-)

					Fred Wright


20-Mar-2005 16:40:29-PST,3849;000000000000
Return-Path: <fw@well.com>
Received: from a.mail.sonic.net ([64.142.16.245]) by lingling.panda.com with TCP/SMTP; Sun, 20 Mar 2005 16:36:11 -0800 (PST)
Received: from [172.24.0.5] (64-142-29-113.dsl.static.sonic.net [64.142.29.113])
	(authenticated bits=0)
	by a.mail.sonic.net (8.13.3/8.13.3) with ESMTP id j2L0a4mg015961
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO)
	for <TOPS-20@lingling.panda.com>; Sun, 20 Mar 2005 16:36:07 -0800
Date: Sun, 20 Mar 2005 16:36:05 -0800
From: Fred Wright <fw@well.com>
Reply-To: Fred Wright <fw@well.com>
To: TOPS-20@lingling.panda.com
Subject: Re: CONS?
Message-ID: <E170671EAC1AEFA5067496ED@[172.24.0.5]>
In-Reply-To: <14011523305.10.MRC@lingling.panda.com>
References:  <14011523305.10.MRC@lingling.panda.com>
X-Mailer: Mulberry/3.1.6 (Mac OS X)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--On Sunday, March 20, 2005 9:16 AM -0800 Mark Crispin 
<MRC@lingling.panda.com> wrote:

> Does anyone know how CONS worked on the Stanford PDP-6?  The only
> documentation that I have about it is "read the prints" and the
> paper tape of the source of the CONS diagnostic.  The Stanford
> PDP-6 was, sadly, donated to the Computer Museum which destroyed
> it.

Bruce Baumgart has been transferring a lot of stuff from old DART tapes to 
CD.  If the CONS diagnostic source was still on disk at that time it's 
probably been preserved.  I have a CD he gave me, but only with "FW" files.

> Although we are using opcode 247 for CIRC (which is definitely

Which is much harder to do in software.  Though it's also hard (and slow) 
in hardware that uses a barrel shifter and doesn't have a bit-reversing 
data path.
That's a problem with committing to making it a part of the architecture - 
sure it's an easy mod to a machine with an old bit-serial shifter, but is 
it worth forcing every modern design to include the extra data path?

The SC15 had a bit-reversing data path because it needed to make a one-way 
shift register sometimes shift the other way.  At one point, I implemented 
a "reverse bits" instruction by removing the wire that prevented its 
existence. :-)

> more useful), I think that there is hack value in implementing
> CONS in the 7xx space.  I suspect that it's hopelessly tied to
> section 0 though.

I actually doubt that there's much value in CONS, since it's so 
memory-bound that you don't gain much by making a single instruction out of 
it.  Note that Stanford never bothered implementing it on the KA.

The SC30 and SC40 have some special LISP instructions, but CONS isn't among 
them.  This was to speed up some of the Common LISP stuff that used runtime 
data types.  Originally, all of the operators were calls to subroutines 
that handled all the combinations of data types.  The special instructions 
dispatch on the data types and "cherry pick" the easy cases to do quickly, 
with a skip in those cases.  The other cases fall through to the same old 
subroutine call.  So the common cases get sped up significantly without 
having to implement the hairier cases in the microcode.

The Common LISP updated to exploit the new instructions ran benchmarks 
around a factor of 5 faster than the standard version.  Who says that 
performance is always gained by moving complexity *out of* the processor? 
:-)

> If someone in the Seattle area has a paper tape reader and is willing
> to read that tape, please let me know.  It's definitely an ASCII
> tape.  People more distant have offered to read it, but I don't
> want to let that tape out of my sight.

Or you could pull the tape past a video camera.  Then, recovering the data 
is just a small matter of software. :-)

					Fred Wright


20-Mar-2005 16:52:29-PST,1155;000000000000
Mail-From: MRC created at 20-Mar-2005 16:48:17
Date: Sun, 20 Mar 2005 16:48:17 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: bug in JRA instruction in KLH10
To: AMartin.MA.UltraNet@RCN.Com
cc: TOPS-20@Lingling.Panda.COM
In-Reply-To: <423DF621.863B1C5B@RCN.Com>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14011605591.14.MRC@lingling.panda.com>

> BACKUP.MAC (the command scanner) calls .SAVE1 in the .SAVE module of
> SCAN:

Wow.  At least they didn't use JSA.

I guess they didn't want to use a scratch AC for JSP (ala MACSYM)
which would have been fewer instructions:

	JSP CX,.SAVE1


.SAVE1:	PUSH P,P1
	PUSHJ P,(CX)
	 TRNA
	  AOS -1(P)
	POP P,P1
	POPJ P,

You can also do (assuming I haven't brain-farted):

	PUSHJ P,.SAVE1

.SAVE1:	POP P,OLDPC
	PUSH P,P1
	PUSHJ P,@OLDPC
	 TRNA
	  AOS -1(P)
	POP P,P1
	POPJ P,

which is the same number of memory locations but one less machine
instruction (but OLDPC can be used by other .SAVEx routines).

So, other than being a hack that actually uses JRA, I don't see
much value to doing it that way.
-------
20-Mar-2005 17:21:23-PST,1649;000000000000
Mail-From: MRC created at 20-Mar-2005 17:16:48
Date: Sun, 20 Mar 2005 17:16:48 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: CONS?
To: fw@well.com
cc: TOPS-20@Lingling.Panda.COM
In-Reply-To: <E170671EAC1AEFA5067496ED@[172.24.0.5]>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14011610781.14.MRC@lingling.panda.com>

> Bruce Baumgart has been transferring a lot of stuff from old DART tapes to 
> CD.  If the CONS diagnostic source was still on disk at that time it's 
> probably been preserved.  I have a CD he gave me, but only with "FW" files.

It was long gone from disk (if it was ever there) in 1977 when I
started work at SAIL.

Is your SAILDART CD still readable?  Mine isn't; I think that
maybe the label he used is corrosive.

> That's a problem with committing to making it a part of the architecture - 
> sure it's an easy mod to a machine with an old bit-serial shifter, but is 
> it worth forcing every modern design to include the extra data path?

Well, you need some number of data paths to do ROTC.  If you can
reverse the bits in a word, then CIRC AC,n is equivalent to:
	<reverse AC+1>
	ROTC AC,n
	<reverse AC+1>

> I actually doubt that there's much value in CONS, since it's so 
> memory-bound that you don't gain much by making a single instruction out of 
> it.  Note that Stanford never bothered implementing it on the KA.

I don't think that Stanford LISP ever used it on the PDP-6
either.  I remain curious as to what it did.  It had to be simple
enough to implement on the PDP-6, yet complex enough to be worth doing.
-------
20-Mar-2005 18:36:52-PST,3091;000000000000
Return-Path: <slogin@optonline.net>
Received: from mta1.srv.hcvlny.cv.net ([167.206.4.196]) by lingling.panda.com with TCP/SMTP; Sun, 20 Mar 2005 18:32:31 -0800 (PST)
Received: from optonline.net (hamstr3.srv.hcvlny.cv.net [167.206.5.10])
 by mta1.srv.hcvlny.cv.net
 (iPlanet Messaging Server 5.2 HotFix 1.25 (built Mar  3 2004))
 with ESMTP id <0IDO000NWKEKQY@mta1.srv.hcvlny.cv.net> for
 TOPS-20@lingling.panda.com; Sun, 20 Mar 2005 21:32:44 -0500 (EST)
Received: from [10.240.3.41] (Forwarded-For: [24.47.48.231])
 by mstr3.srv.hcvlny.cv.net (mshttpd); Sun, 20 Mar 2005 21:32:30 -0500
Date: Sun, 20 Mar 2005 21:32:30 -0500
From: slogin@optonline.net
Subject: BBN FTPSER one bit width byte processing observations
To: TOPS-20@lingling.panda.com
Message-id: <4202aaa42018ab.42018ab4202aaa@optonline.net>
MIME-version: 1.0
X-Mailer: iPlanet Messenger Express 5.2 HotFix 1.25 (built Mar  3 2004)
Content-type: text/plain; charset=us-ascii
Content-language: en
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-Accept-Language: en
Priority: normal

I've been doing some regression testing on my new FTP server (EFTPSR).
The data conversion routines that I've been writing to support the
various bit formats that the PDP-10 supports are complex to me and
I've wanted to make sure everything is compatible and correct by doing
a lot of double checking.

Thus far, ASCII mode is completely implemented, debugged and known to
be good.  PAGED mode is not implemented.  IMAGE mode is partially
implemented.  Code to support 8 bit mode exists, is completely
debugged and is known to be good.  16 and 32 bit mode code exists, is
debugged and is strongly suspected to be okay since it is part of the
8 bit code.

So, I've got 33 more byte widths to implement and test...  An
arbitrary wrapper/driver routine exists for all cases and is coded to
handle a lot of the house keeping chores for the lower level bit
bangers.  I finished the one bit byte code earlier this weekend and
began testing it against the BBN FTP server (FTPSER).  Boy was I
surprised to find that FTPSER chopped off the entire end of a test
file!

It's definately doing it; for one transfer, it didn't deliver a little
over one K of the tail of the file.  The good news, however, is that
the beginning of the transferred files match perfectly and decode
properly when transferred back.  A RETR to EFTPSR sends the entire
file while FTPSER doesn't deliver the last K or so.  So, interesting
...  I don't have any other information about this, other than it's
definately happening and is repeatable.

Anybody have any ideas?  I hesitate to flat out call this a bug
because it's hard to see how it could have escaped detection for all
these years.  I'd assume that a one bit file format would have been
used to transmit early monochrome picture data.  If that is the case,
then I would guess that this would have been bumped into before.  One
wonders if this is a problem with how FTPSER is closing the data
connection and not necessarily with the bit bangers.


20-Mar-2005 19:24:35-PST,2179;000000000000
Mail-From: MRC created at 20-Mar-2005 19:20:18
Date: Sun, 20 Mar 2005 19:20:18 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: BBN FTPSER one bit width byte processing observations
To: slogin@optonline.net
cc: TOPS-20@Lingling.Panda.COM
In-Reply-To: <4202aaa42018ab.42018ab4202aaa@optonline.net>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14011633262.10.MRC@lingling.panda.com>

> Thus far, ASCII mode is completely implemented, debugged and known to
> be good.  PAGED mode is not implemented.  IMAGE mode is partially
> implemented.  Code to support 8 bit mode exists, is completely
> debugged and is known to be good.  16 and 32 bit mode code exists, is
> debugged and is strongly suspected to be okay since it is part of the
> 8 bit code.

This is strictly IMHO,...

The following modes are important:
 (1) ASCII mode (TYPE A)
	-> generic
 (2) IMAGE mode in bytesize 36 (TYPE I and TYPE L 36)
	-> ITS, WAITS, TOPS-10
 (3) IMAGE mode in bytesize 8 (TYPE L 8)
	-> UNIX, Windows, VMS, etc.
 (4) PAGED mode (STRU P with TYPE L 36)
	-> TOPS-20

Although 16 and 32-bit IMAGE modes are easy enough to do, they
aren't particularly interesting or useful due to the little
endian problem.

Consequently, rather than implement other byte sizes, I strongly
recommend that you get PAGED and 36-bit IMAGE mode working.

I don't see any point to implementing any TYPE L values other
than 8 and 36.  Note that in PAGED mode, even odd-sized files are
still transferred with an underlying TYPE L 36.

> I hesitate to flat out call this a bug
> because it's hard to see how it could have escaped detection for all
> these years.

I call it a bug.  I very much doubt that anyone before you has
ever attempted to send a 1-bit bytesize file via a "TYPE L 1"
transfer in FTP.

> I'd assume that a one bit file format would have been
> used to transmit early monochrome picture data.

Even if it was a 1-bit file format on TOPS-20, it would have been
transmitted as PAGED to other TOPS-20 systems.

On UNIX systems, it would have just been an 8-bit bytesize file.

-- Mark --
-------
25-Mar-2005 21:58:44-PST,1036;000000000000
Mail-From: MRC created at 25-Mar-2005 21:54:11
Date: Fri, 25 Mar 2005 21:54:11 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: bug in PA1050
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14012971998.14.MRC@lingling.panda.com>

Problem:
	TOPS-10 programs that do GETTAB UUO can crash.

Diagnosis:
	Routine SKPUSR has a SAVEAC macro invocation which is not only
	unnecessary, but also generate bad code.  MACREL isn't loaded,
	and USRSAV (which MACREL normally defines) is a memory location
	in PAT.

Solution:
	Remove the unnecessary SAVEAC, and remember that you can't use
	MACREL routines in PA1050!  In PAT.MAC, at SKPUSR:, change:

SKPUSR:	SAVEAC <A,B,C,D>
	SKIPE STRNG1+.JIT20	;TOPS20 EXEC MODE?

	to:

SKPUSR:	SKIPE STRNG1+.JIT20	;TOPS20 EXEC MODE?


Believe it or not, I found this bug while running FOCAL!!

-- Mark --

PS: Man, it feels good to be posting TOPS-20 bugfixes on the TOPS-20 list
again...
-------
27-Mar-2005 11:28:47-PST,2968;000000000000
Mail-From: MRC created at 27-Mar-2005 11:20:23
Date: Sun, 27 Mar 2005 11:20:23 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: TOPS-20 future directions
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14013380906.10.MRC@lingling.panda.com>

I have been giving some thought to future directions for the Panda
distribution.  There isn't enough critical mass yet to actually start
on any of these projects, so currently these are gedanken exercises.

First is the question of disk space.  Currently, we're using emulated
RP07s with about 220,000 pages of disk space.  The Panda distribution
has DSKNB moved from 1B15 to 1B13, thus allowing two-RP07 structures
of about 440,000 pages but being compatible with structures built with
DEC monitors (basically adding 1B15 to available address space).  We
can go as far as 1B12, adding 1B14 to available address space, at the
cost of compatibility; this allows about 440,000 pages.

If we create a new type of disk, and address by pages instead of 128
word blocks, we can then address 2,097,152 pages before running
out.  That's a bit over 4GB.

Second is the question about SSH/SSL support.  This may sound heretical,
but I believe that the proper way to do an SSH server is to have the
SSH code run on the host system and the connections feed the PDP-10 like
front end (DTE) lines.  There's no need to go through all the overhead
of TOPS-20 TCP, and the DTE protocol could be extended to provide for
such features as terminal geometry.

SSL is tougher.  Someone's going to have to port it to the PDP-10, and
I shudder at the thought even if we can sweet-talk XKL into giving us
their GCC so we don't have to use KCC.  On the other hand, the idea of
ultimately being able to run Pine from TOPS-20 is quite attractive!

Finally is the question about leaving the KL behind and offering more
memory.  We're currently limited to 22 bits physical, 23 bits virtual.
By adopting a system of a "super section table", we can expand virtual
addressing to 30 bits.  Expanding physical addressing to 27 bits involves
some more work, but nothing like the work needed to go to 30 bits the way
XKL did.

In applications, as I said earlier I would like to see Pine on TOPS-20; I
know that XKL made MM run in extended addressing but I think that it's
time to let MM go.  I suspect that we'd do better in porting UW imapd to
TOPS-20 rather than all the work to upgrade MAPSER from IMAP2 to
IMAP4rev1; even though MAPSER was the Penultimate PDP-10 Assembly Program.
MMAILR probably needs to be totally rewritten, but we may be able to
salvage MMAILBOX and MAISER.  [Yes, this list is hopelessly biased towards
the mailsystem...]

Anyway, I thought that I would get a dialog started.  Note that I am not
volunteering to do any of this work, although probably I will take on some
part of it eventually.
-------
30-Mar-2005 18:31:46-PST,1558;000000000000
Mail-From: MRC created at 30-Mar-2005 18:27:09
Date: Wed, 30 Mar 2005 18:27:09 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: TOPS-20 Unicode utility library
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14014245027.11.MRC@lingling.panda.com>

I have begun a set of TOPS-20 Unicode utility routines.  The latest version
will always be available via ANONYMOUS FTP from lingling.panda.com on
	<UTF9>UTOOLS.MAC

The current version contains support to convert between a Unicode codepoint
and UTF-9, UTF-18, UTF-8, and UTF-16.  Additional routines are planned,
including conversion support between various encodings.

The specification on UTF-9 and UTF-18 will be published on Friday.  Briefly,
UTF-9 and UTF-18 are space-efficient encodings of Unicode that are particularly
suitable for PDP-10 systems.  By increasing the byte size for characters from 7
to 9 bits, UTF-9 allows encoding US-ASCII and ISO Latin 1 in one byte, all of
the Unicode Basic Multilingual Plane in no more than 2 bytes (including all
characters used in email in all charsets!), and all of Unicode in no more than
3 bytes.  UTF-18 encodes all of the assigned characters of Unicode in 18-bit
halfwords.

Of course, it will be necessary to support UTF-8 for terminals, but I think
that this is something that can be done through filters and we will want to
store Unicode data in UTF-9 and/or UTF-18.

Time to roll up sleeves and start programming... ;-)

-- Mark --
-------
30-Mar-2005 20:46:18-PST,633;000000000000
Mail-From: MRC created at 30-Mar-2005 20:41:55
Date: Wed, 30 Mar 2005 20:41:55 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: since RFC 4042 got released early...
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14014269561.10.MRC@lingling.panda.com>

RFC 4042 is the specification for UTF-9 and UTF-18.  It was easier to get it
published as an April 1 RFC than to go through the formal procedures.
Actually, some of the Unicode people *have* looked at it (although I wouldn't
go so far as to say that they approve!).

-- Mark --
-------
31-Mar-2005 07:46:37-PST,1287;000000000000
Return-Path: <bygg@cafax.se>
Received: from nic.cafax.se ([192.71.228.17]) by lingling.panda.com with TCP/SMTP; Thu, 31 Mar 2005 07:41:27 -0800 (PST)
Received: from nic.cafax.se (localhost [127.0.0.1])
	by nic.cafax.se (8.12.11/8.12.11) with ESMTP id j2VFfPFO009327
	for <TOPS-20@lingling.panda.com>; Thu, 31 Mar 2005 17:41:25 +0200 (MEST)
Received: (from bygg@localhost)
	by nic.cafax.se (8.12.11/8.12.11/Submit) id j2VFfPS6024125
	for TOPS-20@lingling.panda.com; Thu, 31 Mar 2005 17:41:25 +0200 (MEST)
Date: Thu, 31 Mar 2005 17:41:25 WET DST
From: Johnny Eriksson <bygg@cafax.se>
To: TOPS-20@lingling.panda.com
Subject: Re: TOPS-20 Unicode utility library
In-Reply-To: Your message of Wed, 30 Mar 2005 18:27:09 -0800 (PST)
Message-ID: <CMM.0.91.0.1112283685.bygg@nic.cafax.se>

> I have begun a set of TOPS-20 Unicode utility routines.  The latest version
> will always be available via ANONYMOUS FTP from lingling.panda.com on
> 	<UTF9>UTOOLS.MAC

I have taken a quick look at the code.  Comments so far:

The routine U42UT8 does not seem to end with a return statement.

The routines U42UT8 and U42U16 contain ILDB's with the byte pointer
in a literal.  I don't think that this is a good thing.  Maybe LDB's
are a better choice.

> -- Mark --

--Johnny
31-Mar-2005 10:02:38-PST,726;000000000000
Mail-From: MRC created at 31-Mar-2005 09:58:12
Date: Thu, 31 Mar 2005 09:58:12 -0800 (PST)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: TOPS-20 Unicode utility library
To: TOPS-20@Lingling.Panda.COM
In-Reply-To: <CMM.0.91.0.1112283685.bygg@nic.cafax.se>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14014414520.10.MRC@lingling.panda.com>

I forgot to cc TOPS-20 on my reply to Johnny.  He is, of course, correct;
U42UT8 should end with a RETSKP and the ILDBs of literal pointers should
all be LDBs.  Fixed in the updated <UTF9>UTOOLS.MAC on lingling.panda.com.

The UTF-8 and UTF-16 with last minute afterthoughts, and I didn't test
those routines... :-)
-------
 1-Apr-2005 09:52:40-PST,7545;000000000000
Return-Path: <mrc@CAC.Washington.EDU>
Received: from mxout4.cac.washington.edu ([140.142.33.19]) by lingling.panda.com with TCP/SMTP; Fri, 1 Apr 2005 09:47:54 -0800 (PST)
Received: from smtp.washington.edu (smtp.washington.edu [140.142.33.9])
	by mxout4.cac.washington.edu (8.13.3+UW05.01/8.13.3+UW05.01) with ESMTP id j31Hlqef011997
	for <tops-20@lingling.panda.com>; Fri, 1 Apr 2005 09:47:52 -0800
Received: from shiva2.cac.washington.edu (shiva2.cac.washington.edu [140.142.37.173])
	(authenticated bits=0)
	by smtp.washington.edu (8.13.3+UW05.01/8.13.3+UW05.01) with ESMTP id j31HlpLF021299
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT)
	for <tops-20@lingling.panda.com>; Fri, 1 Apr 2005 09:47:51 -0800
X-Return-Path: <ietf-announce-bounces@ietf.org>
X-Received: via tmail-2000(13) (invoked by user mailnull) for mrc+ietf; Fri, 1 Apr 2005 09:22:18 -0800 (PST)
X-Return-Path: <ietf-announce-bounces@ietf.org>
X-Received: from mx1.cac.washington.edu (mx1.cac.washington.edu [140.142.32.140])
	by ndcms.cac.washington.edu (8.13.4+UW05.03/8.13.3+UW05.01) with ESMTP id j31HMIDe030372;
	Fri, 1 Apr 2005 09:22:18 -0800
X-Received: from megatron.ietf.org (megatron.ietf.org [132.151.6.71])
	by mx1.cac.washington.edu (8.13.4+UW05.03/8.13.3+UW05.01) with ESMTP id j31HMAKm032724;
	Fri, 1 Apr 2005 09:22:16 -0800
X-Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org)
	by megatron.ietf.org with esmtp (Exim 4.32)
	id 1DHPj8-0004Om-8s; Fri, 01 Apr 2005 12:14:34 -0500
X-Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org)
	by megatron.ietf.org with esmtp (Exim 4.32) id 1DHPj6-0004OX-8O
	for ietf-announce@megatron.ietf.org; Fri, 01 Apr 2005 12:14:32 -0500
X-Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1])
	by ietf.org (8.9.1a/8.9.1a) with ESMTP id MAA16650
	for <ietf-announce@ietf.org>; Fri, 1 Apr 2005 12:14:29 -0500 (EST)
X-Received: from boreas.isi.edu ([128.9.160.161])
	by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1DHPqR-0002g6-E8
	for ietf-announce@ietf.org; Fri, 01 Apr 2005 12:22:08 -0500
X-Received: from ISI.EDU (adma.isi.edu [128.9.160.239])
	by boreas.isi.edu (8.11.6p2+0917/8.11.2) with ESMTP id j31HDH602182;
	Fri, 1 Apr 2005 09:13:17 -0800 (PST)
Message-Id: <200504011713.j31HDH602182@boreas.isi.edu>
To: ietf-announce@ietf.org
From: rfc-editor@rfc-editor.org
Mime-Version: 1.0
Content-Type: Multipart/Mixed; Boundary=NextPart
Date: Fri, 01 Apr 2005 09:13:17 -0800
X-ISI-4-39-6-MailScanner: Found to be clean
X-MailScanner-From: rfc-ed@isi.edu
X-Spam-Score: -14.6 (--------------)
X-Scan-Signature: a87a9cdae4ac5d3fbeee75cd0026d632
Cc: rfc-editor@rfc-editor.org
Subject: RFC 4042 on UTF-9 and UTF-18 Efficient Transformation Formats of
	Unicode
X-BeenThere: ietf-announce@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: ietf-announce.ietf.org
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/ietf-announce>,
	<mailto:ietf-announce-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:ietf-announce@ietf.org>
List-Help: <mailto:ietf-announce-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/ietf-announce>,
	<mailto:ietf-announce-request@ietf.org?subject=subscribe>
Sender: ietf-announce-bounces@ietf.org
Errors-To: ietf-announce-bounces@ietf.org
X-Scanned-By: MIMEDefang 2.49 on 140.142.32.140
X-Uwash-Spam: Gauge=IIIIIII, Probability=7%, Report='NO_REAL_NAME 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __HAS_MSGID 0, __MIME_VERSION 0, __SANE_MSGID 0'
ReSent-Date: Fri, 1 Apr 2005 09:47:46 -0800 (PST)
ReSent-From: Mark Crispin <mrc@CAC.Washington.EDU>
ReSent-To: tops-20@lingling.panda.com
ReSent-Subject: RFC 4042 on UTF-9 and UTF-18 Efficient Transformation Formats
 of Unicode
ReSent-Message-ID: <Pine.LNX.4.63.0504010947460.30429@shiva2.cac.washington.edu>


--NextPart


A new Request for Comments is now available in online RFC libraries.


         RFC 4042

         Title:      UTF-9 and UTF-18 Efficient Transformation Formats
                     of Unicode
         Author(s):  M. Crispin
         Status:     Informational
         Date:       1 April 2005
         Mailbox:    UTF9@Lingling.Panda.COM
         Pages:      9
         Characters: 19123
         Updates/Obsoletes/SeeAlso:    None


        URL:        ftp://ftp.rfc-editor.org/in-notes/rfc4042.txt


ISO-10646 defines a large character set called the Universal
Character Set (UCS), which encompasses most of the world's writing
systems.  The same set of codepoints is defined by Unicode, which
further defines additional character properties and other
implementation details.  By policy of the relevant standardization
committees, changes to Unicode and amendments and additions to
ISO/IEC 646 track each other, so that the character repertoires and
code point assignments remain in synchronization.

The current representation formats for Unicode (UTF-7, UTF-8, UTF-16)
are not storage and computation efficient on platforms that utilize
the 9 bit nonet as a natural storage unit instead of the 8 bit octet.

This document describes a transformation format of Unicode that takes
advantage of the nonet so that the format will be storage and
computation efficient.

This memo provides information for the Internet community.  It does
not specify an Internet standard of any kind.  Distribution of this
memo is unlimited.

This announcement is sent to the IETF list and the RFC-DIST list.
Requests to be added to or deleted from the IETF distribution list
should be sent to IETF-REQUEST@IETF.ORG.  Requests to be
added to or deleted from the RFC-DIST distribution list should
be sent to RFC-DIST-REQUEST@RFC-EDITOR.ORG.

Details on obtaining RFCs via FTP or EMAIL may be obtained by sending
an EMAIL message to rfc-info@RFC-EDITOR.ORG with the message body 
help: ways_to_get_rfcs.  For example:

        To: rfc-info@RFC-EDITOR.ORG
        Subject: getting rfcs

        help: ways_to_get_rfcs

Requests for special distribution should be addressed to either the
author of the RFC in question, or to RFC-Manager@RFC-EDITOR.ORG.  Unless
specifically noted otherwise on the RFC itself, all RFCs are for
unlimited distribution.

Submissions for Requests for Comments should be sent to
RFC-EDITOR@RFC-EDITOR.ORG.  Please consult RFC 2223, Instructions to RFC
Authors, for further information.


Joyce K. Reynolds and Sandy Ginoza
USC/Information Sciences Institute

...

Below is the data which will enable a MIME compliant Mail Reader 
implementation to automatically retrieve the ASCII version
of the RFCs.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body; access-type="mail-server";
	server="RFC-INFO@RFC-EDITOR.ORG"

Content-Type: text/plain
Content-ID: <050401091153.RFC@RFC-EDITOR.ORG>

RETRIEVE: rfc
DOC-ID: rfc4042

--OtherAccess
Content-Type: Message/External-body; name="rfc4042.txt"; site="ftp.isi.edu";
	access-type="anon-ftp"; directory="in-notes"

Content-Type: text/plain
Content-ID: <050401091153.RFC@RFC-EDITOR.ORG>


--OtherAccess--
--NextPart
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
IETF-Announce mailing list
IETF-Announce@ietf.org
https://www1.ietf.org/mailman/listinfo/ietf-announce

--NextPart--

 6-Apr-2005 00:28:00-PDT,1031;000000000000
Mail-From: MRC created at  6-Apr-2005 00:23:09
Date: Wed, 6 Apr 2005 00:23:09 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: bug in MNETDV.MAC operating system handling
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14015871778.14.MRC@lingling.panda.com>

Edit 9156 changed the OPSTAB table from being a TBLUK% format table to a
AOBJN lookup table that is handled via new routine OMATCH.  Unfortunately,
the calculation of NUMOPS was not changed to correspond to this.

In file MNETDV.MAC, change

NUMOPS=.-OPSTAB-1

to be

NUMOPS=.-OPSTAB

Note that this fix *only* applies if your MNETDV.MAC has edit 9156.  If
OPSTAB in your MNETDV.MAC has a first entry of XWD NUMOPS,NUMOPS then you
do *NOT* have edit 9156 and you should *NOT* apply this fix.

In particular, it appears that XKL monitors do *NOT* have edit 9156, and
thus this patch does not apply to XKL systems.  It does, however, apply to
Panda monitors.
-------
 6-Apr-2005 01:58:13-PDT,916;000000000000
Mail-From: MRC created at  6-Apr-2005 01:53:22
Date: Wed, 6 Apr 2005 01:53:22 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: strange interpretation of AC1 in PSOUT%
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14015888200.9.MRC@lingling.panda.com>

PSOUT% on TOPS-20 interprets the argument in AC1 in a strange way.  Rather
than the straightforward
	TLC 1,777777
	TLCN 1,777777
	 HRLI 1,(<POINT 7,>)
	XCTU [HLLM 1,1]
it does something truly wierd:
	TLNE 1,777777
	 JUMPGE 1,PSOUT0
	MOVSI C,440700
	CAML 1,[777777,,0]
	 XCTU [HLLM C,1]
PSOUT0:

I've been trying to figure out why they did this.  Tenex has the
straightforward way.  The only effective difference that I can
see is that it allows
	MOVEI 1,FOO
	PSOUT%
as an alternative form of the more common:
	HRROI 1,FOO
	PSOUT%

-- Mark --
-------
17-May-2005 00:13:37-PDT,531;000000000000
Mail-From: MRC created at 17-May-2005 00:09:00
Date: Tue, 17 May 2005 00:09:00 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: 22 years ago today...
To: TOPS-20@Lingling.Panda.COM
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14026617104.10.MRC@lingling.panda.com>

On May 17, 1983 was the infamous decision by DEC not only to cancel Project
Jupiter, but also not to make any new PDP-10 processors in favor of the VAX.

We're still here.  DEC isn't any more.
-------
17-May-2005 03:02:09-PDT,1588;000000000000
Return-Path: <carl@reststop.com>
Received: from smtpauth07.mail.atl.earthlink.net ([209.86.89.67]) by lingling.panda.com with TCP/SMTP; Tue, 17 May 2005 02:56:53 -0700 (PDT)
Received: from [24.221.177.162] (helo=[204.238.239.105])
	by smtpauth07.mail.atl.earthlink.net with asmtp (Exim 4.34)
	id 1DXyon-0004pD-0j; Tue, 17 May 2005 05:56:53 -0400
In-Reply-To: <14026617104.10.MRC@lingling.panda.com>
References: <14026617104.10.MRC@lingling.panda.com>
Mime-Version: 1.0 (Apple Message framework v622)
Content-Type: text/plain; charset=US-ASCII; format=flowed
Message-Id: <72c140597e5bd039a75bc0944a0531ea@reststop.com>
Content-Transfer-Encoding: 7bit
Cc: TOPS-20@lingling.panda.com
From: Carl Baltrunas <carl@reststop.com>
Subject: Re: 22 years ago today...
Date: Tue, 17 May 2005 02:56:53 -0700
To: Mark Crispin <MRC@lingling.panda.com>
X-Mailer: Apple Mail (2.622)
X-ELNK-Trace: 657dc9a5ceb70f7f3e74c9a82e36a01394f5150ab1c16ac06b48d29827cfba206eefe829dac86d3be27425419a301506350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 24.221.177.162

True... how true.

Last night I bumped into Doug Englebart at the Computer History Museum 
and he mentioned that he is running Augment on Tops-20 under emulation. 
  It just goes to prove that some systems have timeless quality.

-Carl


On May 17, 2005, at 12:09 AM, Mark Crispin wrote:

> On May 17, 1983 was the infamous decision by DEC not only to cancel 
> Project
> Jupiter, but also not to make any new PDP-10 processors in favor of 
> the VAX.
>
> We're still here.  DEC isn't any more.
> -------

17-May-2005 08:40:19-PDT,1454;000000000000
Return-Path: <wex@changing-leaves.com>
Received: from sccrmhc12.comcast.net ([204.127.202.56]) by lingling.panda.com with TCP/SMTP; Tue, 17 May 2005 08:35:04 -0700 (PDT)
Received: from [10.0.1.2] (c-24-91-108-249.hsd1.ma.comcast.net[24.91.108.249])
          by comcast.net (sccrmhc12) with ESMTP
          id <200505171535020120063qn4e>; Tue, 17 May 2005 15:35:03 +0000
Mime-Version: 1.0
X-Sender:  (Unverified)
Message-Id: <p0611040abeafbe7fdd67@[10.0.1.2]>
In-Reply-To: <14026617104.10.MRC@lingling.panda.com>
References: <14026617104.10.MRC@lingling.panda.com>
Date: Tue, 17 May 2005 11:34:57 -0400
To: Mark Crispin <MRC@lingling.panda.com>, TOPS-20@lingling.panda.com
From: Paul Wexelblat <wex@changing-leaves.com>
Subject: Re: 22 years ago today...
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

At 12:09 AM -0700 5/17/05, Mark Crispin wrote:
>On May 17, 1983 was the infamous decision by DEC not only to cancel Project
>Jupiter, but also not to make any new PDP-10 processors in favor of the VAX.
>
>We're still here.  DEC isn't any more.
>-------
Sure, but we all knew that a machine where the JUMP instruction 
didn't Jump and the SKIP instruction didn't skip would live forever.

...and the Jump and clear flags Instruction did neither - but didn't 
do either really fast

-- 
P.M. Wexelblat PhD
Dept. of Computer Science
University of Massachusetts Lowell
One University Ave
Lowell, MA 01854
17-May-2005 09:52:22-PDT,1397;000000000000
Return-Path: <wex@cs.uml.edu>
Received: from rwcrmhc13.comcast.net ([204.127.198.39]) by lingling.panda.com with TCP/SMTP; Tue, 17 May 2005 09:47:08 -0700 (PDT)
Received: from [10.0.1.2] (c-24-91-108-249.hsd1.ma.comcast.net[24.91.108.249])
          by comcast.net (rwcrmhc13) with ESMTP
          id <20050517164707015007jh00e>; Tue, 17 May 2005 16:47:08 +0000
Mime-Version: 1.0
X-Sender:  (Unverified)
Message-Id: <p0611040dbeafd06f11ae@[10.0.1.2]>
In-Reply-To: <14026617104.10.MRC@lingling.panda.com>
References: <14026617104.10.MRC@lingling.panda.com>
Date: Tue, 17 May 2005 12:47:03 -0400
To: TOPS-20@lingling.panda.com
From: Paul Wexelblat <wex@cs.uml.edu>
Subject: Re: 22 years ago today...
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

At 12:09 AM -0700 5/17/05, Mark Crispin wrote:
>On May 17, 1983 was the infamous decision by DEC not only to cancel Project
>Jupiter, but also not to make any new PDP-10 processors in favor of the VAX.
>
>We're still here.  DEC isn't any more.
>-------

Sure, but we all knew that a machine where the JUMP instruction
didn't Jump and the SKIP instruction didn't skip would live forever.

...and the Jump and clear flags Instruction did neither - but didn't
do either really fast

-- 
P.M. Wexelblat PhD
Dept. of Computer Science
University of Massachusetts Lowell
One University Ave
Lowell, MA 01854
17-May-2005 14:14:36-PDT,1249;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-2.cisco.com ([171.71.176.71]) by lingling.panda.com with TCP/SMTP; Tue, 17 May 2005 14:07:02 -0700 (PDT)
Received: from sj-core-5.cisco.com (171.71.177.238)
  by sj-iport-2.cisco.com with ESMTP; 17 May 2005 14:07:02 -0700
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-5.cisco.com (8.12.10/8.12.6) with ESMTP id j4HL6sPo001703;
	Tue, 17 May 2005 14:06:55 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id OAA18619;
	Tue, 17 May 2005 14:06:54 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Tue, 17 May 2005 14:06:54 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: Paul Wexelblat <wex@cs.uml.edu>
Cc: TOPS-20@lingling.panda.com
Subject: Re: 22 years ago today...
In-Reply-To: Your message of Tue, 17 May 2005 12:47:03 -0400
Message-ID: <CMM.0.90.4.1116364014.billw@cypher>

>We're still here.

"We" are hobbyists, right?  Does that count as 'still here'?


    ...and the Jump and clear flags Instruction did neither - but didn't
    do either really fast

But not as fast as (test and do nothing)

What's the fastest noop on the pentium micromachine PDP10s?

 :-)
BillW
17-May-2005 14:29:24-PDT,1390;000000000000
Return-Path: <wex@cs.uml.edu>
Received: from rwcrmhc11.comcast.net ([204.127.198.35]) by lingling.panda.com with TCP/SMTP; Tue, 17 May 2005 14:22:18 -0700 (PDT)
Received: from [10.0.1.2] (c-24-91-108-249.hsd1.ma.comcast.net[24.91.108.249])
          by comcast.net (rwcrmhc11) with ESMTP
          id <2005051721221701300pdvohe>; Tue, 17 May 2005 21:22:18 +0000
Mime-Version: 1.0
X-Sender:  (Unverified)
Message-Id: <p06110402beb010f2ce3c@[10.0.1.2]>
In-Reply-To: <CMM.0.90.4.1116364014.billw@cypher>
References: <CMM.0.90.4.1116364014.billw@cypher>
Date: Tue, 17 May 2005 17:22:12 -0400
To: William "Chops" Westfield <billw@cisco.com>
From: Paul Wexelblat <wex@cs.uml.edu>
Subject: Re: 22 years ago today...
Cc: TOPS-20@lingling.panda.com
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

At 2:06 PM -0700 5/17/05, William "Chops" Westfield wrote:
>  >We're still here.
>
>"We" are hobbyists, right?  Does that count as 'still here'?
>
>
>     ...and the Jump and clear flags Instruction did neither - but didn't
>     do either really fast
>
>But not as fast as (test and do nothing)
>
>What's the fastest noop on the pentium micromachine PDP10s?
>
>  :-)
>BillW

Wasn't JFCL the fastest no-op on the KA and KI?

-- 
P.M. Wexelblat PhD
Dept. of Computer Science
University of Massachusetts Lowell
One University Ave
Lowell, MA 01854
17-May-2005 14:36:32-PDT,514;000000000000
Mail-From: MRC created at 17-May-2005 14:30:12
Date: Tue, 17 May 2005 14:30:12 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: 22 years ago today...
To: wex@cs.uml.edu
cc: billw@cisco.com, TOPS-20@Lingling.Panda.COM
In-Reply-To: <p06110402beb010f2ce3c@[10.0.1.2]>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14026773881.13.MRC@lingling.panda.com>

Yes, JFCL was the fastest no-op on the KA and KI.  TRN was the fastest no-op
on the KL.
-------
17-May-2005 14:42:46-PDT,588;000000000000
Mail-From: MRC created at 17-May-2005 14:31:05
Date: Tue, 17 May 2005 14:31:05 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: 22 years ago today...
To: billw@cisco.com
cc: wex@cs.uml.edu, TOPS-20@Lingling.Panda.COM
In-Reply-To: <CMM.0.90.4.1116364014.billw@cypher>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14026774044.13.MRC@lingling.panda.com>

    "We" are hobbyists, right?  Does that count as 'still here'?

Some of us still do real work on TOPS-20 systems, even if there
is a hobby component to it.
-------
24-May-2005 15:00:15-PDT,3592;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 14:53:06 -0700 (PDT)
Received: from sunbeam.math.utah.edu (IDENT:5qsQgDc58Yd6MTEamyvykBIQvJgLMrOu@sunbeam.math.utah.edu [155.101.96.161])
	by sunshine.math.utah.edu (8.13.3/8.13.3) with ESMTP id j4OLr5SL018199;
	Tue, 24 May 2005 15:53:05 -0600 (MDT)
Received: from sunbeam.math.utah.edu (IDENT:ZZ59D1KEBfapbEip5YfBA98e2rmBEttq@localhost [127.0.0.1])
	by sunbeam.math.utah.edu (8.12.11/8.12.10) with ESMTP id j4OLr5Jl023911;
	Tue, 24 May 2005 15:53:05 -0600 (MDT)
Received: (from beebe@localhost)
	by sunbeam.math.utah.edu (8.12.11/8.12.10/Submit) id j4OLr5t2023910;
	Tue, 24 May 2005 15:53:05 -0600 (MDT)
Date: Tue, 24 May 2005 15:53:05 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: PDP-10 history: seeking TeX'78 source code in SAIL
Message-ID: <CMM.0.92.0.1116971585.beebe@sunbeam.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0b5 (sunshine.math.utah.edu [128.110.198.2]); Tue, 24 May 2005 15:53:05 -0600 (MDT)

I'm working on my keynote address for the Practical TeX '2005
conference next month, with a TUGboat article entitled ``The Design of
TeX and METAFONT: A retrospective''.  The topic is how the PDP-10
architecture, operating systems, and programming languages of the time
influenced Donald Knuth in his design of TeX and Metafont.

The 1977--78 prototypes for these programs were written in SAIL, and
then redesigned in 1982--1983 in Pascal.

I have online mirrors of our six RP06 and RP07 disks as they existed
when science.utah.edu retired on 31-Oct-1990.  In them, I have these
source files for the original METAFONT:

	old-mf-local/dsbitg.sai old-mf/mfdovr.sai       old-mf/mfout.sai
	old-mf-local/dsgigi.sai old-mf/mff20.sai        old-mf/mfpre.sai
	old-mf-local/dsmult.sai old-mf/mffil.sai        old-mf/mfrast.sai
	old-mf-local/mfhdr.sai  old-mf/mfhdr.sai        old-mf/mfsys.sai
	old-mf-local/mfrast.sai old-mf/mfntrp.sai       old-mf/presso.sai
	old-mf/mfbase.sai

	fonts/fntbbg.sai        mf/mffil.sai            mf/mfpre.sai
	fonts/vntbbg.sai        mf/mfhdr.sai            mf/mfrast.sai
	mf/mfbase.sai           mf/mfntrp.sai           mf/mfsys.sai
	mf/mfdovr.sai           mf/mfout.sai            mf/presso.sai
	mf/mff20.sai            mf/mfoutb.sai

However, I don't have companion sources for TeX in SAIL.

Does anyone have these in their TOPS-20 archives?  A Web search found
one possible site, but it is unreachable.

I'm chagrined that I seem not to have preserved this important
original program, and I don't know why it is missing.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
24-May-2005 15:07:32-PDT,6683;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 15:01:01 -0700 (PDT)
Received: from sunbeam.math.utah.edu (IDENT:OjuAc+S/mIeuRFl/nus1L15xmNaeNRrn@sunbeam.math.utah.edu [155.101.96.161])
	by sunshine.math.utah.edu (8.13.3/8.13.3) with ESMTP id j4OM10Mb018714;
	Tue, 24 May 2005 16:01:00 -0600 (MDT)
Received: from sunbeam.math.utah.edu (IDENT:72hsfl6fAAW18Hl0SMeEuA2WX9JwgkNS@localhost [127.0.0.1])
	by sunbeam.math.utah.edu (8.12.11/8.12.10) with ESMTP id j4OM10eq024157;
	Tue, 24 May 2005 16:01:00 -0600 (MDT)
Received: (from beebe@localhost)
	by sunbeam.math.utah.edu (8.12.11/8.12.10/Submit) id j4OM10Bh024156;
	Tue, 24 May 2005 16:01:00 -0600 (MDT)
Date: Tue, 24 May 2005 16:01:00 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: PDP-10 history: catalog of O/Ses
Message-ID: <CMM.0.92.0.1116972060.beebe@sunbeam.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0b5 (sunshine.math.utah.edu [128.110.198.2]); Tue, 24 May 2005 16:01:00 -0600 (MDT)

Another point in my Practical TeX '2005 keynote address article
mentioned in my previous posting is a recording of the operating
systems that ran on the PDP-10.  I wrote:

	The PDP-10 ran several operating systems, including DEC's
	TOPS-10 (BBN Tenex) and TOPS-20 (BBN Twenex), MIT's ITS
	(Incompatible Time Sharing System), and Stanford's LOTS (Low
	Overhead Timesharing System) and WAITS (Westcoast
	Alternative to ITS).  Although the operating systems
	differed, it was usually possible to move both source code
	and binary executable programs among them with few if any
	changes.

Two questions: (1) did I miss any operating systems?  (2) is my last
statement in the extract above accurate?  My memory says that it is,
but my wife asserts that my memory is not to be trusted.

I know that we often used the terms Tenex and Twenex informally, but
perhaps Twenex at least doesn't qualify as a proper name, in light of
this New Hacker's Dictionary entry from the jargon.info file:

:TWENEX:: /twe'neks/ /n./  The TOPS-20 operating system by DEC
   -- the second proprietary OS for the PDP-10 -- preferred by most
   PDP-10 hackers over TOPS-10 (that is, by those who were not
   {{ITS}} or {{WAITS}} partisans).  TOPS-20 began in 1969 as Bolt,
   Beranek & Newman's TENEX operating system using special paging
   hardware.  By the early 1970s, almost all of the systems on the
   ARPANET ran TENEX.  DEC purchased the rights to TENEX from BBN and
   began work to make it their own.  The first in-house code name for
   the operating system was VIROS (VIRtual memory Operating System);
   when customers started asking questions, the name was changed to
   SNARK so DEC could truthfully deny that there was any project
   called VIROS.  When the name SNARK became known, the name was
   briefly reversed to become KRANS; this was quickly abandoned when
   someone objected that `krans' meant `funeral wreath' in Swedish
   (though some Swedish speakers have since said it means simply
   `wreath'; this part of the story may be apocryphal).  Ultimately
   DEC picked TOPS-20 as the name of the operating system, and it was
   as TOPS-20 that it was marketed.  The hacker community, mindful of
   its origins, quickly dubbed it TWENEX (a contraction of `twenty
   TENEX'), even though by this point very little of the original
   TENEX code remained (analogously to the differences between AT&T V6
   Unix and BSD).  DEC people cringed when they heard "TWENEX", but
   the term caught on nevertheless (the written abbreviation `20x'
   was also used).  TWENEX was successful and very popular; in fact,
   there was a period in the early 1980s when it commanded as fervent
   a culture of partisans as Unix or ITS -- but DEC's decision to
   scrap all the internal rivals to the VAX architecture and its
   relatively stodgy VMS OS killed the DEC-20 and put a sad end to
   TWENEX's brief day in the sun.  DEC attempted to convince TOPS-20
   users to convert to {VMS}, but instead, by the late 1980s, most
   of the TOPS-20 hackers had migrated to Unix.

Here's what it records about WAITS:

:WAITS:: /wayts/ /n./  The mutant cousin of {{TOPS-10}} used
   on a handful of systems at {{SAIL}} up to 1990.  There was never
   an `official' expansion of WAITS (the name itself having been
   arrived at by a rather sideways process), but it was frequently
   glossed as `West-coast Alternative to ITS'.  Though WAITS was less
   visible than ITS, there was frequent exchange of people and ideas
   between the two communities, and innovations pioneered at WAITS
   exerted enormous indirect influence.  The early screen modes of
   {EMACS}, for example, were directly inspired by WAITS's `E'
   editor -- one of a family of editors that were the first to do
   `real-time editing', in which the editing commands were invisible
   and where one typed text at the point of insertion/overwriting.
   The modern style of multi-region windowing is said to have
   originated there, and WAITS alumni at XEROX PARC and elsewhere
   played major roles in the developments that led to the XEROX Star,
   the Macintosh, and the Sun workstations.  Also invented there were
   {bucky bits} -- thus, the ALT key on every IBM PC is a WAITS
   legacy.  One notable WAITS feature seldom duplicated elsewhere was
   a news-wire interface that allowed WAITS hackers to read, store,
   and filter AP and UPI dispatches from their terminals; the system
   also featured a still-unusual level of support for what is now
   called `multimedia' computing, allowing analog audio and video
   signals to be switched to programming terminals.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
24-May-2005 15:44:56-PDT,7301;000000000000
Return-Path: <lougheed@cisco.com>
Received: from sj-iport-3.cisco.com ([171.71.176.72]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 15:37:45 -0700 (PDT)
Received: from sj-core-5.cisco.com (171.71.177.238)
  by sj-iport-3.cisco.com with ESMTP; 24 May 2005 15:37:45 -0700
X-IronPort-AV: i="3.93,133,1115017200"; 
   d="scan'208"; a="269231710:sNHT32420118"
Received: from xbh-sjc-211.amer.cisco.com (xbh-sjc-211.cisco.com [171.70.151.144])
	by sj-core-5.cisco.com (8.12.10/8.12.6) with ESMTP id j4OMbalq007165;
	Tue, 24 May 2005 15:37:36 -0700 (PDT)
Received: from xfe-sjc-212.amer.cisco.com ([171.70.151.187]) by xbh-sjc-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.211);
	 Tue, 24 May 2005 15:37:35 -0700
Received: from [10.34.249.187] ([10.34.249.187]) by xfe-sjc-212.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.211);
	 Tue, 24 May 2005 15:37:35 -0700
Message-ID: <4293ACAF.5040107@cisco.com>
Date: Tue, 24 May 2005 15:37:35 -0700
From: Kirk Lougheed <lougheed@cisco.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.3) Gecko/20040910
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
CC: TOPS-20@lingling.panda.com
Subject: Re: PDP-10 history: catalog of O/Ses
References: <CMM.0.92.0.1116972060.beebe@sunbeam.math.utah.edu>
In-Reply-To: <CMM.0.92.0.1116972060.beebe@sunbeam.math.utah.edu>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 24 May 2005 22:37:35.0147 (UTC) FILETIME=[2E41CFB0:01C560B1]

You added an operating system.  The LOTS machines were all TOPS-20.

I know you could run TOPS-10 binaries on TOPS-20 systems, but not
conversely.  I rather doubt you could run an ITS or WAITS binary
on anything but ITS or WAITS.

Regards,
Kirk

Nelson H. F. Beebe wrote:

> Another point in my Practical TeX '2005 keynote address article
> mentioned in my previous posting is a recording of the operating
> systems that ran on the PDP-10.  I wrote:
> 
> 	The PDP-10 ran several operating systems, including DEC's
> 	TOPS-10 (BBN Tenex) and TOPS-20 (BBN Twenex), MIT's ITS
> 	(Incompatible Time Sharing System), and Stanford's LOTS (Low
> 	Overhead Timesharing System) and WAITS (Westcoast
> 	Alternative to ITS).  Although the operating systems
> 	differed, it was usually possible to move both source code
> 	and binary executable programs among them with few if any
> 	changes.
> 
> Two questions: (1) did I miss any operating systems?  (2) is my last
> statement in the extract above accurate?  My memory says that it is,
> but my wife asserts that my memory is not to be trusted.
> 
> I know that we often used the terms Tenex and Twenex informally, but
> perhaps Twenex at least doesn't qualify as a proper name, in light of
> this New Hacker's Dictionary entry from the jargon.info file:
> 
> :TWENEX:: /twe'neks/ /n./  The TOPS-20 operating system by DEC
>    -- the second proprietary OS for the PDP-10 -- preferred by most
>    PDP-10 hackers over TOPS-10 (that is, by those who were not
>    {{ITS}} or {{WAITS}} partisans).  TOPS-20 began in 1969 as Bolt,
>    Beranek & Newman's TENEX operating system using special paging
>    hardware.  By the early 1970s, almost all of the systems on the
>    ARPANET ran TENEX.  DEC purchased the rights to TENEX from BBN and
>    began work to make it their own.  The first in-house code name for
>    the operating system was VIROS (VIRtual memory Operating System);
>    when customers started asking questions, the name was changed to
>    SNARK so DEC could truthfully deny that there was any project
>    called VIROS.  When the name SNARK became known, the name was
>    briefly reversed to become KRANS; this was quickly abandoned when
>    someone objected that `krans' meant `funeral wreath' in Swedish
>    (though some Swedish speakers have since said it means simply
>    `wreath'; this part of the story may be apocryphal).  Ultimately
>    DEC picked TOPS-20 as the name of the operating system, and it was
>    as TOPS-20 that it was marketed.  The hacker community, mindful of
>    its origins, quickly dubbed it TWENEX (a contraction of `twenty
>    TENEX'), even though by this point very little of the original
>    TENEX code remained (analogously to the differences between AT&T V6
>    Unix and BSD).  DEC people cringed when they heard "TWENEX", but
>    the term caught on nevertheless (the written abbreviation `20x'
>    was also used).  TWENEX was successful and very popular; in fact,
>    there was a period in the early 1980s when it commanded as fervent
>    a culture of partisans as Unix or ITS -- but DEC's decision to
>    scrap all the internal rivals to the VAX architecture and its
>    relatively stodgy VMS OS killed the DEC-20 and put a sad end to
>    TWENEX's brief day in the sun.  DEC attempted to convince TOPS-20
>    users to convert to {VMS}, but instead, by the late 1980s, most
>    of the TOPS-20 hackers had migrated to Unix.
> 
> Here's what it records about WAITS:
> 
> :WAITS:: /wayts/ /n./  The mutant cousin of {{TOPS-10}} used
>    on a handful of systems at {{SAIL}} up to 1990.  There was never
>    an `official' expansion of WAITS (the name itself having been
>    arrived at by a rather sideways process), but it was frequently
>    glossed as `West-coast Alternative to ITS'.  Though WAITS was less
>    visible than ITS, there was frequent exchange of people and ideas
>    between the two communities, and innovations pioneered at WAITS
>    exerted enormous indirect influence.  The early screen modes of
>    {EMACS}, for example, were directly inspired by WAITS's `E'
>    editor -- one of a family of editors that were the first to do
>    `real-time editing', in which the editing commands were invisible
>    and where one typed text at the point of insertion/overwriting.
>    The modern style of multi-region windowing is said to have
>    originated there, and WAITS alumni at XEROX PARC and elsewhere
>    played major roles in the developments that led to the XEROX Star,
>    the Macintosh, and the Sun workstations.  Also invented there were
>    {bucky bits} -- thus, the ALT key on every IBM PC is a WAITS
>    legacy.  One notable WAITS feature seldom duplicated elsewhere was
>    a news-wire interface that allowed WAITS hackers to read, store,
>    and filter AP and UPI dispatches from their terminals; the system
>    also featured a still-unusual level of support for what is now
>    called `multimedia' computing, allowing analog audio and video
>    signals to be switched to programming terminals.
> 
> -------------------------------------------------------------------------------
> - Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
> - University of Utah                    FAX: +1 801 581 4148                  -
> - Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
> - 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
> - Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
> -------------------------------------------------------------------------------
> 
24-May-2005 16:09:34-PDT,1931;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-1.cisco.com ([171.71.176.70]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 16:02:21 -0700 (PDT)
Received: from sj-core-2.cisco.com (171.71.177.254)
  by sj-iport-1.cisco.com with ESMTP; 24 May 2005 16:02:21 -0700
X-IronPort-AV: i="3.93,133,1115017200"; 
   d="scan'208"; a="638349244:sNHT433862340"
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-2.cisco.com (8.12.10/8.12.6) with ESMTP id j4ON2Blw024231;
	Tue, 24 May 2005 16:02:12 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id QAA07515;
	Tue, 24 May 2005 16:02:16 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Tue, 24 May 2005 16:02:16 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Cc: TOPS-20@lingling.panda.com, beebe@math.utah.edu
Subject: Re: PDP-10 history: catalog of O/Ses
In-Reply-To: Your message of Tue, 24 May 2005 16:01:00 -0600 (MDT)
Message-ID: <CMM.0.90.4.1116975736.billw@cypher>

	The PDP-10 ran several operating systems, including DEC's
	TOPS-10 (BBN Tenex) and TOPS-20 (BBN Twenex), MIT's ITS
	(Incompatible Time Sharing System), and Stanford's LOTS (Low
	Overhead Timesharing System) and WAITS (Westcoast

TOPS10 was a DEC operating system not at all related to BBN TENEX.

TOPS20 was DECs rewrite(?) of BBN TENEX, but no long had any
connection with BBN.

LOTS was not an operating system; more of a concept in systems
administration; the LOTS facility ran essentially the same "stanford
modified tops20" that also ran at the computer science department
(SU-Score, Sushi) and EE department (Sierra...)

That leaves tops10, waits, its, tenex, and tops20 as the actual
operating sytems used, I think.  I suppose that it's amusing that ALL
of them were still in use at the date the 36bit line was killed...

BillW
24-May-2005 17:42:47-PDT,2466;000000000000
Return-Path: <clive.dawson@amd.com>
Received: from amdext4.amd.com ([163.181.251.6]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 17:35:25 -0700 (PDT)
Received: from SAUSGW02.amd.com (sausgw02.amd.com [163.181.250.22])
	by amdext4.amd.com (8.12.11/8.12.11/AMD) with ESMTP id j4P0YEla027291;
	Tue, 24 May 2005 19:34:15 -0500
Received: from 163.181.250.1 by SAUSGW02.amd.com with ESMTP (AMD SMTP
 Relay (Email Firewall v6.1.0)); Tue, 24 May 2005 19:34:07 -0500
X-Server-Uuid: 5FC0E2DF-CD44-48CD-883A-0ED95B391E89
Received: from optimon.amd.com (optimon.amd.com [163.181.34.104]) by
 amdint2.amd.com (8.12.8/8.12.8/AMD) with ESMTP id j4P0Y6c7019077; Tue,
 24 May 2005 19:34:06 -0500 (CDT)
Received: from labuena.amd.com (
 IDENT:I4f63Ebe0TkARznlO/5D0mNlL3clSQ0M@labuena.amd.com
 [163.181.10.243]) by optimon.amd.com (8.12.10/8.12.10) with ESMTP id
 j4P0Y6ot001923; Tue, 24 May 2005 19:34:06 -0500
Received: (from clive@localhost) by labuena.amd.com (
 8.9.3/8.9.3/8.9.3-MPD-evision: 1.5 $) id TAA14392; Tue, 24 May 2005
 19:34:06 -0500
Date: Tue, 24 May 2005 19:34:06 -0500
Message-ID: <200505250034.TAA14392@labuena.amd.com>
From: "Clive Dawson" <clive.dawson@amd.com>
To: TOPS-20@lingling.panda.com
cc: beebe@math.utah.edu, billw@cisco.com
In-Reply-To: <CMM.0.90.4.1116975736.billw@cypher>
Subject: Re: PDP-10 history: catalog of O/Ses
X-Virus-Scanned: ClamAV version 0.83, clamav-milter version 0.83 on
 optimon.amd.com
X-Virus-Status: Clean
MIME-Version: 1.0
X-WSS-ID: 6E8D18752DO1987241-01-01
Content-Type: text/plain
Content-Transfer-Encoding: 7bit


>That leaves tops10, waits, its, tenex, and tops20 as the actual
>operating sytems used, I think.  I suppose that it's amusing that ALL
>of them were still in use at the date the 36bit line was killed...

Yes, I think Bill has pretty much covered the major variations.
As he said, TOPS10 had nothing to do with BBN's TENEX.

But I wonder if anybody from CMU, Compuserve and/or TYMSHARE might
want to chime in.  As I recall, the OS's running at those places were
heavily modified versions of the original DEC OS for the PDP-10, which
didn't become known officially as "TOPS-10" until DEC went to 
"Level D" and the venerable version 4S72 was replaced with version 5, 
as I recall.

There is a lot of good info on this subject to be found at

     http://www.ultimate.com/phil/pdp10/

along with plenty of links.

Clive Dawson
AMD
Austin, TX



24-May-2005 19:32:34-PDT,5462;000000000000
Return-Path: <carl@reststop.com>
Received: from smtpauth06.mail.atl.earthlink.net ([209.86.89.66]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 19:25:06 -0700 (PDT)
Received: from [24.221.177.162] (helo=[204.238.239.105])
	by smtpauth06.mail.atl.earthlink.net with asmtp (Exim 4.34)
	id 1DalZx-0004Gl-SD; Tue, 24 May 2005 22:25:06 -0400
In-Reply-To: <200505250034.TAA14392@labuena.amd.com>
References: <200505250034.TAA14392@labuena.amd.com>
Mime-Version: 1.0 (Apple Message framework v622)
Content-Type: text/plain; charset=US-ASCII; format=flowed
Message-Id: <398d488b1204e2ba426c78bdc7ec60af@reststop.com>
Content-Transfer-Encoding: 7bit
Cc: TOPS-20@lingling.panda.com,
 beebe@math.utah.edu,
 billw@cisco.com
From: Carl Baltrunas <carl@reststop.com>
Subject: Re: PDP-10 history: catalog of O/Ses
Date: Tue, 24 May 2005 19:25:04 -0700
To: "Clive Dawson" <clive.dawson@amd.com>
X-Mailer: Apple Mail (2.622)
X-ELNK-Trace: 657dc9a5ceb70f7f3e74c9a82e36a01394f5150ab1c16ac06b48d29827cfba20a563a3c7eb3ea705c305942707c571ab350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 24.221.177.162

 From what I recall visiting CMU and converting FINE from their OS to 
run on TOPS-10 (and later TYMCOM-X), they were pretty much a TOPS-10 
shop with modifications for user-id and terminal support.  They had 
their own image mode when DEC gave the rest of us PIM or Packed Image 
Mode.  Otherwise fairly vanilla compared to things like ITS or WAITS.  
Someone from CMU can correct me if I'm mistaken.

BTW, thanks for the item about West-coast Alternative to ITS.  I never 
knew that.  I'll have to look in my WAITS monitor calls manual and see 
if it's listed in there.

TOPS-10 was called "Bottoms-10" by a lot of by a lot of the Tenex or 
Twenex crowd because it didn't originally have networking or page 
mapping until the KI model was released.  Even then, ANF-10 was the 
first networking it had, until the PDP-11 and VAXen had DECNET which 
was retrofit to work on TOPS-10.

Both Compuserv and On-Line Systems had heavily modified systems to 
provide their customers with a more "commercial" look and feel.  I 
recall hearing that On Line Systems started making their modifications 
back on the DECtape version of the OS.  I only saw it when taking a 
tour for a job interview in 1980, but accepted a position at Tymshare 
instead.

Tymshare had it's own custom OS called TYMCOM-X (and for the 2020s, 
TYMCOM-XX) which diverged from TOPS-10 at the 5.02 level.  Things were 
added to match features with TOP-10 and some Tenex influences  but 
remained custom.  We used a very close relative to COMPIL which was 
originally written by Bill Wehir (sp?) or (WFW), which was called RPG.  
If you look at versions of COMPIL you can still find many of the same 
lines of code with the same comments.  We had 4 different prompting 
modes, TYMCOM-IX (SDS-940), PDP-10, SUDS, and restricted (which ran a 
user level application immediately after LOGIN finished).  Tymshare 
never got around to multiple structures, so we had one very large DSKB: 
structure striped across all of the disks.  External memory, tape and 
disk drives were connected via an SA-10.  Tape controllers and drives 
were all from STC and disks were AMPEX or Memorex drives we got as 
hand-me-downs from the IBM systems.

Somewhere I have the "official" list that DEC supported in one of it's 
tables that allowed a program to poll the OS for which OS was running.  
It may even have made it into one of the JSYS entries... it's a good 
place to check.

We also had a Tymshare partner in Paris and they maintained a separate 
set of sources for many of the CUSPs which then prompted users in 
French.  I presume they watched whenever we came out with a new release 
to retrofit their changes into our code.

Also, you may want to give Systems Concepts honorable mention for their 
changes to the OS to run on their SC30M and later models. (I forget 
where the "-" goes).

Likewise, XKL in Redmond, WA had to make significant changes to both 
TOPS-20 and TOPS-10 in order to get them up and running on their 
TOAD-1s.  I don't know how extensive the TOPS-10 changes were, but they 
also added a number of UNIX shell commands.  TOPS-10 was running with 
console access on the TOAD but I do not know if Vance (aka Ernie) Socci 
or Ralph Gorin ever had network support for remote logins working.  
Check with Ralph for complete information on that.


On May 24, 2005, at 5:34 PM, Clive Dawson wrote:

>
>> That leaves tops10, waits, its, tenex, and tops20 as the actual
>> operating sytems used, I think.  I suppose that it's amusing that ALL
>> of them were still in use at the date the 36bit line was killed...
>
> Yes, I think Bill has pretty much covered the major variations.
> As he said, TOPS10 had nothing to do with BBN's TENEX.
>
> But I wonder if anybody from CMU, Compuserve and/or TYMSHARE might
> want to chime in.  As I recall, the OS's running at those places were
> heavily modified versions of the original DEC OS for the PDP-10, which
> didn't become known officially as "TOPS-10" until DEC went to
> "Level D" and the venerable version 4S72 was replaced with version 5,
> as I recall.
>
> There is a lot of good info on this subject to be found at
>
>      http://www.ultimate.com/phil/pdp10/
>
> along with plenty of links.
>
> Clive Dawson
> AMD
> Austin, TX
>
>
>

24-May-2005 19:46:40-PDT,1260;000000000000
Mail-From: MRC created at 24-May-2005 19:40:14
Date: Tue, 24 May 2005 19:40:14 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: PDP-10 history: catalog of O/Ses
To: TOPS-20@Lingling.Panda.COM
In-Reply-To: <4293ACAF.5040107@cisco.com>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14028665330.10.MRC@lingling.panda.com>

    I know you could run TOPS-10 binaries on TOPS-20 systems, but not
    conversely.  I rather doubt you could run an ITS or WAITS binary
    on anything but ITS or WAITS.

Some WAITS binaries (most notably, SUDS and PUB) could run under
ITS using DECUUO (the ITS equivalent of PA1050) set for SAIL
emulation.  You couldn't run the binary directly; you had to run
DECUUO and then have DECUUO load the WAITS binary.

DECUUO also could run some TOPS-10 binaries; at least well enough
to run MACRO and LINK.

If you converted a WAITS binary from the DMP format into SAV
format using FILEX, you could then try running it on TOPS-20.  To
the extent that you stuck to the traditional DEC UUOs circa 4
series monitors, it should run.  REL files were almost always
easier to port than a DMP file.

AFAIK, ITS binaries never ran anywhere other than on ITS.
-------
24-May-2005 19:54:44-PDT,1032;000000000000
Mail-From: MRC created at 24-May-2005 19:48:28
Date: Tue, 24 May 2005 19:48:28 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: PDP-10 history: catalog of O/Ses
To: TOPS-20@Lingling.Panda.COM
In-Reply-To: <CMM.0.90.4.1116975736.billw@cypher>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14028666827.10.MRC@lingling.panda.com>

> TOPS20 was DECs rewrite(?) of BBN TENEX, but no long had any
> connection with BBN.

DEC bought Tenex from BBN, and hired Dan Murphy (one of the two
original authors of Tenex).  That system became TOPS-20.

TOPS-20 forked from Tenex before Tenex 1.34, but I don't know
when exactly the fork happened.  Unfortunately, DEC deleted a lot
of old edit history in TOPS-20 sources so it's no longer possible
to track when things happened.  However, I see a SUBTTL in
PHYSIO.MAC from Len Bosack dated 17-May-75, and it looks like
Tenex 1.34 started in January 1975, so it's possible that TOPS-20
began as late as Tenex 1.33.
-------
24-May-2005 20:01:44-PDT,7401;000000000000
Return-Path: <carl@reststop.com>
Received: from smtpauth06.mail.atl.earthlink.net ([209.86.89.66]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 19:49:15 -0700 (PDT)
Received: from [24.221.177.162] (helo=[204.238.239.105])
	by smtpauth06.mail.atl.earthlink.net with asmtp (Exim 4.34)
	id 1DalxK-0007ep-UV; Tue, 24 May 2005 22:49:15 -0400
In-Reply-To: <398d488b1204e2ba426c78bdc7ec60af@reststop.com>
References: <200505250034.TAA14392@labuena.amd.com> <398d488b1204e2ba426c78bdc7ec60af@reststop.com>
Mime-Version: 1.0 (Apple Message framework v622)
Content-Type: text/plain; charset=US-ASCII; format=flowed
Message-Id: <5d9f4b278cc5abb3897adb89c75256ec@reststop.com>
Content-Transfer-Encoding: 7bit
Cc: TOPS-20@lingling.panda.com,
 beebe@math.utah.edu,
 "Clive Dawson" <clive.dawson@amd.com>,
 billw@cisco.com
From: Carl Baltrunas <carl@reststop.com>
Subject: Re: PDP-10 history: catalog of O/Ses -- PS
Date: Tue, 24 May 2005 19:49:12 -0700
To: Carl Baltrunas <carl@reststop.com>
X-Mailer: Apple Mail (2.622)
X-ELNK-Trace: 657dc9a5ceb70f7f3e74c9a82e36a01394f5150ab1c16ac06b48d29827cfba20becdb55da7340c63048ca60730777d58350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 24.221.177.162

Two more sets that I've overlooked.... someone can fill in for the 
remaining info...

At Tymshare, we had Doug Englebart (creator of the mouse) and his 
Augment project which ran under "August", a modified version of Tenex. 
It was running on KA-10s, KIs, KLs, Foonly F4s and 26KLs.

Dave Poole of Stanford and Foonly fame created the Foonly F1, F2, F3 
and F4.  The F1 project was a fast machine and really introduced KL 
paging which DEC reconstructed for their TOPS-20.  The F2 never saw the 
light of day (I'm pretty sure that was what I heard).  The F3 was a 
competitor for the 2020 and was able to run a modified Tenex, and 
TYMCOM-X/XX.  The F4 was also re-dubbed by McDonnell Douglas, the 26KL, 
and ran a modified Tenex/August OS.

Tymshare, aka McDonnell Douglas Field Service Company, took the F3/F4 
designs and created a TOAD, but the project was scrapped shortly after 
they had working prototypes as management felt that the manufacturing 
costs would not cover actual production of the new machines due to 
actual low demands.

The other missing OS is the one run on MAX-A, MAX-B and MAX-C at PARC.  
They were on the ARPAnet but I do not know if they were running a 
version of Tenex or something that XEROX created.  The scientists and 
researchers at PARC were so taken by the PDP-10s that they wanted to 
install a couple but were told by management that XEROX was a computer 
maker and they would not allow their engineers to buy another company's 
computers.  So, the engineers built their own.  They made 3 of them, 
and that was all that was ever made (or so I had heard).

-Carl

On May 24, 2005, at 7:25 PM, Carl Baltrunas wrote:

> From what I recall visiting CMU and converting FINE from their OS to 
> run on TOPS-10 (and later TYMCOM-X), they were pretty much a TOPS-10 
> shop with modifications for user-id and terminal support.  They had 
> their own image mode when DEC gave the rest of us PIM or Packed Image 
> Mode.  Otherwise fairly vanilla compared to things like ITS or WAITS.  
> Someone from CMU can correct me if I'm mistaken.
>
> BTW, thanks for the item about West-coast Alternative to ITS.  I never 
> knew that.  I'll have to look in my WAITS monitor calls manual and see 
> if it's listed in there.
>
> TOPS-10 was called "Bottoms-10" by a lot of by a lot of the Tenex or 
> Twenex crowd because it didn't originally have networking or page 
> mapping until the KI model was released.  Even then, ANF-10 was the 
> first networking it had, until the PDP-11 and VAXen had DECNET which 
> was retrofit to work on TOPS-10.
>
> Both Compuserv and On-Line Systems had heavily modified systems to 
> provide their customers with a more "commercial" look and feel.  I 
> recall hearing that On Line Systems started making their modifications 
> back on the DECtape version of the OS.  I only saw it when taking a 
> tour for a job interview in 1980, but accepted a position at Tymshare 
> instead.
>
> Tymshare had it's own custom OS called TYMCOM-X (and for the 2020s, 
> TYMCOM-XX) which diverged from TOPS-10 at the 5.02 level.  Things were 
> added to match features with TOP-10 and some Tenex influences  but 
> remained custom.  We used a very close relative to COMPIL which was 
> originally written by Bill Wehir (sp?) or (WFW), which was called RPG. 
>  If you look at versions of COMPIL you can still find many of the same 
> lines of code with the same comments.  We had 4 different prompting 
> modes, TYMCOM-IX (SDS-940), PDP-10, SUDS, and restricted (which ran a 
> user level application immediately after LOGIN finished).  Tymshare 
> never got around to multiple structures, so we had one very large 
> DSKB: structure striped across all of the disks.  External memory, 
> tape and disk drives were connected via an SA-10.  Tape controllers 
> and drives were all from STC and disks were AMPEX or Memorex drives we 
> got as hand-me-downs from the IBM systems.
>
> Somewhere I have the "official" list that DEC supported in one of it's 
> tables that allowed a program to poll the OS for which OS was running. 
>  It may even have made it into one of the JSYS entries... it's a good 
> place to check.
>
> We also had a Tymshare partner in Paris and they maintained a separate 
> set of sources for many of the CUSPs which then prompted users in 
> French.  I presume they watched whenever we came out with a new 
> release to retrofit their changes into our code.
>
> Also, you may want to give Systems Concepts honorable mention for 
> their changes to the OS to run on their SC30M and later models. (I 
> forget where the "-" goes).
>
> Likewise, XKL in Redmond, WA had to make significant changes to both 
> TOPS-20 and TOPS-10 in order to get them up and running on their 
> TOAD-1s.  I don't know how extensive the TOPS-10 changes were, but 
> they also added a number of UNIX shell commands.  TOPS-10 was running 
> with console access on the TOAD but I do not know if Vance (aka Ernie) 
> Socci or Ralph Gorin ever had network support for remote logins 
> working.  Check with Ralph for complete information on that.
>
>
> On May 24, 2005, at 5:34 PM, Clive Dawson wrote:
>
>>
>>> That leaves tops10, waits, its, tenex, and tops20 as the actual
>>> operating sytems used, I think.  I suppose that it's amusing that ALL
>>> of them were still in use at the date the 36bit line was killed...
>>
>> Yes, I think Bill has pretty much covered the major variations.
>> As he said, TOPS10 had nothing to do with BBN's TENEX.
>>
>> But I wonder if anybody from CMU, Compuserve and/or TYMSHARE might
>> want to chime in.  As I recall, the OS's running at those places were
>> heavily modified versions of the original DEC OS for the PDP-10, which
>> didn't become known officially as "TOPS-10" until DEC went to
>> "Level D" and the venerable version 4S72 was replaced with version 5,
>> as I recall.
>>
>> There is a lot of good info on this subject to be found at
>>
>>      http://www.ultimate.com/phil/pdp10/
>>
>> along with plenty of links.
>>
>> Clive Dawson
>> AMD
>> Austin, TX
>>
>>
>>
>

24-May-2005 20:27:40-PDT,1928;000000000000
Return-Path: <wex@cs.uml.edu>
Received: from sccrmhc12.comcast.net ([204.127.202.56]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 20:20:29 -0700 (PDT)
Received: from [10.0.1.2] (c-24-91-108-249.hsd1.ma.comcast.net[24.91.108.249])
          by comcast.net (sccrmhc12) with ESMTP
          id <2005052503202701200a49rpe>; Wed, 25 May 2005 03:20:28 +0000
Mime-Version: 1.0
X-Sender:  (Unverified)
Message-Id: <p06110402beb99e62c0b7@[10.0.1.2]>
In-Reply-To: <14028666827.10.MRC@lingling.panda.com>
References: <14028666827.10.MRC@lingling.panda.com>
Date: Tue, 24 May 2005 23:20:26 -0400
To: Mark Crispin <MRC@lingling.panda.com>, TOPS-20@lingling.panda.com
From: Paul Wexelblat <wex@cs.uml.edu>
Subject: Re: PDP-10 history: catalog of O/Ses
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

At 7:48 PM -0700 5/24/05, Mark Crispin wrote:
>  > TOPS20 was DECs rewrite(?) of BBN TENEX, but no long had any
>>  connection with BBN.
>
>DEC bought Tenex from BBN, and hired Dan Murphy (one of the two
>original authors of Tenex).  That system became TOPS-20.
>
>TOPS-20 forked from Tenex before Tenex 1.34, but I don't know
>when exactly the fork happened.  Unfortunately, DEC deleted a lot
>of old edit history in TOPS-20 sources so it's no longer possible
>to track when things happened.  However, I see a SUBTTL in
>PHYSIO.MAC from Len Bosack dated 17-May-75, and it looks like
>Tenex 1.34 started in January 1975, so it's possible that TOPS-20
>began as late as Tenex 1.33.
>-------

Gee, I have code in TOPS-10, TOPS-20 (Inter-process communications 
stuff - at DEC) Tenex (some Input routines for an ASCIIish noise 
monitor- at BBN), and PA1050 (The compatibility package (at BBN)). Am 
I the only one? Hadn't thought about that before

(PMW)
-- 
P.M. Wexelblat PhD
Dept. of Computer Science
University of Massachusetts Lowell
One University Ave
Lowell, MA 01854
24-May-2005 20:37:16-PDT,1402;000000000000
Return-Path: <phil@ultimate.com>
Received: from sccrmhc11.comcast.net ([204.127.202.55]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 20:30:21 -0700 (PDT)
Received: from c-66-30-204-193.hsd1.ma.comcast.net ([66.30.204.193])
          by comcast.net (sccrmhc11) with ESMTP
          id <2005052503302001100or35ge>; Wed, 25 May 2005 03:30:20 +0000
Received: (from phil@localhost)
	by ultimate.com (8.12.10/8.12.10) id j4P3UJAm022994;
	Tue, 24 May 2005 23:30:19 -0400 (EDT)
Date: Tue, 24 May 2005 23:30:19 -0400 (EDT)
From: Phil Budne <phil@ultimate.com>
Message-Id: <200505250330.j4P3UJAm022994@ultimate.com>
To: carl@reststop.com
Subject: Re: PDP-10 history: catalog of O/Ses -- PS
Cc: TOPS-20@lingling.panda.com, beebe@math.utah.edu, billw@cisco.com,
        clive.dawson@amd.com

Butler Lampson has this to say about MAXC at
http://research.microsoft.com/~lampson/Systems.html#maxc

   MAXC

   (1971-3): I designed and implemented the micro-programmed processor
   for a machine which emulated a PDP-10 [E. R. Fiala, The MAXC
   systems, IEEE Computer 11, 5 (May 1978), pp 57-67]. It ran somewhat
   faster than a KA-10, and much more reliably, more than once
   attaining an interval of 2000 hours between crashes while running
   the Tenex time-sharing system. Two of these machines were built;
   each operated for about 9 years before being decommissioned.

24-May-2005 20:44:03-PDT,1875;000000000000
Mail-From: MRC created at 24-May-2005 20:37:46
Date: Tue, 24 May 2005 20:37:46 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: PDP-10 history: catalog of O/Ses
To: TOPS-20@Lingling.Panda.COM
In-Reply-To: <p06110402beb99e62c0b7@[10.0.1.2]>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14028675803.10.MRC@lingling.panda.com>

> Gee, I have code in TOPS-10, TOPS-20 (Inter-process communications 
> stuff - at DEC) Tenex (some Input routines for an ASCIIish noise 
> monitor- at BBN), and PA1050 (The compatibility package (at BBN)). Am 
> I the only one? Hadn't thought about that before

Hmm, I can't claim something as good as that.

However, I did write the standard TELNET client for ITS, WAITS,
and TOPS-20 (my user interface was immortalized by Guy Steele in
"The Telnet Song" in the April 1984 Communications of the ACM) as
well as several of the network daemons for these three operating
systems.

I have written user programs (in more or less chronological
order): TOPS-10, ITS, CompuServe's TOPS-10 variant, Tenex, WAITS,
CMU's TOPS-10 variant, and TOPS-20; and have done kernel hacking
in WAITS, TOPS-20, and (very limited) ITS.

My very first kernel hacking project (strictly unauthorized) was
to convert WAITS' NCP to use 32-bit IMP addresses instead of
8-bit addresses.  It took me about a week.  I later found out
that BBN had been working on the corresponding project for Tenex
for quite a bit longer, and I apparently caused some embarassment
and consternation when I advertised my project (the first PDP-10
32-bit NCP).  BBN set up a special TIP in the high address space
to debunk my claim, and were a bit unhappy to find that I had
succeeded.  Then Dave Moon poured salt on the wounds by doing the
same thing for ITS' NCP in even less time.

-- Mark --
-------
24-May-2005 22:54:57-PDT,1459;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-1.cisco.com ([171.71.176.70]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 22:47:23 -0700 (PDT)
Received: from sj-core-1.cisco.com (171.71.177.237)
  by sj-iport-1.cisco.com with ESMTP; 24 May 2005 22:47:24 -0700
X-IronPort-AV: i="3.93,134,1115017200"; 
   d="scan'208"; a="638417872:sNHT25970376"
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-1.cisco.com (8.12.10/8.12.6) with ESMTP id j4P5lLbw010166;
	Tue, 24 May 2005 22:47:21 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id WAA28888;
	Tue, 24 May 2005 22:47:20 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Tue, 24 May 2005 22:47:20 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: Phil Budne <phil@ultimate.com>
Cc: carl@reststop.com, TOPS-20@lingling.panda.com, beebe@math.utah.edu,
        clive.dawson@amd.com
Subject: Re: PDP-10 history: catalog of O/Ses -- PS
In-Reply-To: Your message of Tue, 24 May 2005 23:30:19 -0400 (EDT)
Message-ID: <CMM.0.90.4.1117000040.billw@cypher>

>> MaxC, Foonley, Systems Concepts, XKL...

I suppose it's a matter of deep thought for techno-philosophers, when to
say that an operating system has become "new", but I don't think merely
making the changes necessary to port to new hardware causes this to happen.
MaxC and Foonley ran Tenex, SC and XKL ran Tops (primarily.)

BillW
24-May-2005 23:28:45-PDT,2227;000000000000
Return-Path: <carl@reststop.com>
Received: from smtpauth01.mail.atl.earthlink.net ([209.86.89.61]) by lingling.panda.com with TCP/SMTP; Tue, 24 May 2005 23:21:30 -0700 (PDT)
Received: from [24.221.177.162] (helo=[204.238.239.105])
	by smtpauth01.mail.atl.earthlink.net with asmtp (Exim 4.34)
	id 1DapGk-0002dT-2f
	for TOPS-20@lingling.panda.com; Wed, 25 May 2005 02:21:30 -0400
Mime-Version: 1.0 (Apple Message framework v622)
In-Reply-To: <CMM.0.90.4.1117000040.billw@cypher>
References: <CMM.0.90.4.1117000040.billw@cypher>
Content-Type: text/plain; charset=US-ASCII; format=flowed
Message-Id: <d47d8216f68fd6d227bd91d3fb1ff100@reststop.com>
Content-Transfer-Encoding: 7bit
From: Carl Baltrunas <carl@reststop.com>
Subject: Re: PDP-10 history: catalog of O/Ses -- PS
Date: Tue, 24 May 2005 23:21:28 -0700
To: Tops-20 Wizards <TOPS-20@lingling.panda.com>
X-Mailer: Apple Mail (2.622)
X-ELNK-Trace: 657dc9a5ceb70f7f3e74c9a82e36a01394f5150ab1c16ac06b48d29827cfba20b9159e4b2bfb73b61749700a972b1698350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 24.221.177.162




On May 24, 2005, at 10:47 PM, William Chops Westfield wrote:

>>> MaxC, Foonley, Systems Concepts, XKL...
>
> I suppose it's a matter of deep thought for techno-philosophers, when 
> to
> say that an operating system has become "new", but I don't think merely
> making the changes necessary to port to new hardware causes this to 
> happen.
> MaxC and Foonley ran Tenex, SC and XKL ran Tops (primarily.)
>
> BillW
>
The Foonly ran Tenex, TYMCOM-X, August (Doug's variant of Tenex), and 
TOPS-20 pretty much in that order.  Changes to the microcode were 
necessary, of course, and tweaks were made to support both KI and KL 
style paging.  The F3 ran Tenex and TYMCOM-X.  The F4/26KL ran all 
except TYMCOM-X.
I think they made microcode changes so that the F4 could run TYMCOM-X 
but it never ran it.

The link someone had provided that said that PARC ran Tenex at least 
answered the question if they had to write their own.  I'd still swear 
there were three, but you can't argue with one of the machine builders. 
  If he said they only built two, that third machine must have been 
something else.

-Carl

25-May-2005 11:23:23-PDT,1783;000000000000
Return-Path: <rossman@columbia.edu>
Received: from brinza.cc.columbia.edu ([128.59.29.8]) by Lingling.Panda.COM with TCP/SMTP; Wed, 25 May 2005 11:16:47 -0700 (PDT)
Received: from [192.168.0.101] (pcp09163523pcs.verona01.nj.comcast.net [69.141.118.203])
	(user=rossman mech=PLAIN bits=0)
	by brinza.cc.columbia.edu (8.13.0/8.13.0) with ESMTP id j4PFj9vn000387
	(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
	for <TOPS-20@lingling.panda.com>; Wed, 25 May 2005 11:45:10 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v730)
In-Reply-To: <14028665330.10.MRC@lingling.panda.com>
References: <14028665330.10.MRC@lingling.panda.com>
Content-Type: text/plain; charset=US-ASCII; format=flowed
Message-Id: <EDB827D9-1F17-454F-A702-4A6E4CB20717@columbia.edu>
Content-Transfer-Encoding: 7bit
From: Ken Rossman <rossman@columbia.edu>
Subject: Re: PDP-10 history: catalog of O/Ses
Date: Wed, 25 May 2005 11:45:08 -0400
To: TOPS-20@lingling.panda.com
X-Mailer: Apple Mail (2.730)
X-No-Spam-Score: Local
X-Scanned-By: MIMEDefang 2.48 on 128.59.29.8

On May 24, 2005, at 10:40 PM, Mark Crispin wrote:

>     I know you could run TOPS-10 binaries on TOPS-20 systems, but not
>     conversely.  I rather doubt you could run an ITS or WAITS binary
>     on anything but ITS or WAITS.
>
> Some WAITS binaries (most notably, SUDS and PUB) could run under
> ITS using DECUUO (the ITS equivalent of PA1050) set for SAIL
> emulation.  You couldn't run the binary directly; you had to run
> DECUUO and then have DECUUO load the WAITS binary.

So did that make DECUUO an *emulator*, or did it merely sit "alongside"
the loaded WAITS binaries (in a similar fashion to PA1050) and catch
kernel calls and handle them?


Ken Rossman
rossman@columbia.edu

25-May-2005 12:17:11-PDT,1961;000000000000
Mail-From: MRC created at 25-May-2005 12:10:45
Date: Wed, 25 May 2005 12:10:45 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: PDP-10 history: catalog of O/Ses
To: TOPS-20@Lingling.Panda.COM
In-Reply-To: <EDB827D9-1F17-454F-A702-4A6E4CB20717@columbia.edu>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14028845648.10.MRC@Lingling.Panda.COM>

> So did that make DECUUO an *emulator*, or did it merely sit "alongside"
> the loaded WAITS binaries (in a similar fashion to PA1050) and catch
> kernel calls and handle them?

DECUUO was neither.

Like PA1050, DECUUO lived in the upper portion of the address
space, ran in user mode, received MUUOs, and issued appropriate
ITS UUOs to do what the TOPS-10 UUO would have done.

Unlike PA1050, DECUOO was an ITS program.  Among its functions
was a loader that could read WAITS DMP files and TOPS-20 SAV (and
I think SHR) files and load them into the job's address space.

With PA1050, the first non-JSYS MUUO you did would cause the
TOPS-20 kernel to load PA1050 into your address space and set up
the traps to it.  With DECUUO, this had to be done by explicitly
running DECUOO on the program.

Think of having to do something like:
	@pa1050 sys:macro.exe
to run MACRO.

There is actually a good reason why DECUUO had to be that way;
there was overlap between TOPS-20 and ITS MUUOs.  Fortunately,
the overlap was modest, and the overlapped ITS MUUOs could be
done in a different way.  But this meant that there had to be a
system call that would disable the overlapping ITS MUUO so that
the MUUO would trap to DECUUO instead.

Since TOPS-20 only used JSYS as its system call (and on KAs with
Tenex it was a machine instruction not an MUUO) it was possible
to make PA1050 more seamless.  Also, the TOPS-20 kernel could
recognize and load TOPS-10 EXE and SAV files (I don't remember if
TOPS-20 can do SHR files).
-------
26-May-2005 12:39:22-PDT,2870;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by Lingling.Panda.COM with TCP/SMTP; Thu, 26 May 2005 12:32:30 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:Ae6kMt9eiMl11k7+ksC0HdtS+QF8ibaa@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.13.3/8.13.3) with ESMTP id j4QEraiS027984;
	Thu, 26 May 2005 08:53:36 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:g+uD3qdAgvcwNEl6P+Ea+CwgzeywjBCQ@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j4QEraur015971;
	Thu, 26 May 2005 08:53:36 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j4QEraqB015969;
	Thu, 26 May 2005 08:53:36 -0600 (MDT)
Date: Thu, 26 May 2005 08:53:36 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: PDP-10 history: catalog of O/Ses
Message-ID: <CMM.0.92.0.1117119216.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0b5 (sunshine.math.utah.edu [128.110.198.2]); Thu, 26 May 2005 08:53:36 -0600 (MDT)

Many thanks to the list members who responded to my request for a
verification of the list of operating systems that ran on the PDP-10.

I think that it is important to get history recorded, and I've done a
bit in that direction in the preprint of my conference talk:

	Keynote address: The design of TeX and METAFONT: A retrospective
	http://www.math.utah.edu/~beebe/publications/2005/pt2005.pdf

I'm giving that talk at Practical TeX 2005 next month in Chapel Hill,
NC, and a similar talk at TUG 2005 in Wuhan, China, in August.

Comments about the article via email to me offlist are welcome; they
need not clutter this list.  The proceedings won't be published for
several months, so there is time to repair any mistakes or omissions.
I have some TO-DO items left for the article, but I had a deadline of
midnight last night for the preprint volume printing that I barely
made.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
28-May-2005 19:28:10-PDT,17269;000000000000
Return-Path: <fw@well.com>
Received: from b.mail.sonic.net ([64.142.19.5]) by lingling.panda.com with TCP/SMTP; Sat, 28 May 2005 19:21:18 -0700 (PDT)
Received: from Amiga.local (64-142-29-113.dsl.static.sonic.net [64.142.29.113])
	by b.mail.sonic.net (8.13.3/8.13.3) with ESMTP id j4T2LGuK004997
	for <TOPS-20@lingling.panda.com>; Sat, 28 May 2005 19:21:16 -0700
Date: Sat, 28 May 2005 19:21:15 -0700 (PDT)
From: Fred Wright <fw@well.com>
X-Sender: fw@Amiga.local
Reply-To: Fred Wright <fw@well.com>
To: TOPS-20@lingling.panda.com
Subject: Re: PDP-10 history: catalog of O/Ses
In-Reply-To: <14028845648.10.MRC@Lingling.Panda.COM>
Message-ID: <Pine.AMI.4.21.0505281524170.167059480-100000@Amiga.local>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII


On Tue, 24 May 2005, Clive Dawson wrote:

> Yes, I think Bill has pretty much covered the major variations.
> As he said, TOPS10 had nothing to do with BBN's TENEX.

True, and as someone pointed out, "TOPS-10" was just a rename of a system
formerly just referred to as "Monitor", which dated back to the PDP-6
*long* before TENEX.  Early versions came in both a timesharing and a
single-user flavor, so that one could write standalone programs using some
of the same UUOs.  Although I don't have the manual handy for the exact
quote, my favorite line from the beginning of the AID manual goes
something like:

-----------------------------------------------------------------------
AID requires 11K of core, and won't run on a 16K machine if the Monitor
requires more than 5K.
-----------------------------------------------------------------------

Not only did TENEX have nothing to do with TOPS-10, but also it wasn't
really a new design in its own right, being merely a rewrite of the SDS
940 system for the PDP-10.  The 940 system, as well as the hardware
enhancements that turned the 930 into the 940, came from Project Genie at
UC Berkeley.  The hardware enhancements were taken over by SDS (later XDS)
to become the 940, though I'm not sure if SDS distributed a version of the
Project Genie OS or not.  There were certainly service bureaus running it,
though, since I recall using one of them in '68.

The 940 OS (mostly written by Peter Deutsch) was based on paging, viewed
memory primarily as a cache for drum, had jobs with multiple forks which
could optionally share pages, used the topmost fork of the job for the
"shell", and had command and filename completion.  Sound familiar?  
Although the 940 only had a 16KW (24 bits) address space (64KW physical),
the OS made page switching fairly convenient (and reasonably efficient) so
that programs could "juggle their way" around that with overlays.

BBN had developed a popular LISP implementation that ran on the 940, and
was getting squeezed by the limited address space.  They wanted to move to
another machine with more addressing, and the PDP-10 seemed like a good
candidate, but it lacked paging (this was years before the KI).  So they
decided to build their own pager for the KA10, with some rather complex
features designed to put some of the 940 OS's mechanisms into
hardware.  They also came up with the ugliest "fixes" for the KA10's
difficulties with recoverable memory protect violations anywhere (and a
step backwards from the 940).  I know of at least three cases of fixing
this "right", before DEC started getting it right on the KI and later.

TENEX was really not much more than a port of the 940 OS to the PDP-10,
except for changing some things that didn't scale well to larger address
spaces and storage devices.  I can recall seeing TENEX code that looked
literally like a line-by-line translation of 940 code, right down to using
only three registers (like the 940's A, B, and X), and with half the
instructions being MOVEs and MOVEMs since you can't keep much in three
registers.  They did, however, use a stack and PUSHJ/POPJ instead of
JSR/JRST. :-) The exception model for system calls was as ugly as their
hardware, instead of adopting an ITS-like PCLSR approach - another step
backwards from the 940 system, which in essence had simplified PCLSR.

When ARPA got onto their kick of wanting to standardize on a single PDP-10
OS for all ARPA sites, TENEX was the only available choice that supported
paging, which of course was a highly desirable feature.  Thus, TENEX was
selected as the "ARPA standard" OS on that basis alone.  However, BBN had
initially designed TENEX solely as a vehicle to support BBN LISP.  It was
designed almost in a vacuum, drawing only from the 940 system while
ignoring the substantial benefits of some of the features in ITS and
WAITS.  Needels to say, there was a lot of kicking and screaming over the
prospect of giving up important features just so that some bureaucrats in
DC could see the same commands no matter what ARPAnet site they connected
to, and eventually ARPA relented on the "TENEX mandate".  DEC's
willingness to take over TENEX and turn it into TOPS-20 may have played a
part in this; I'm not sure.

One of the things DEC did with TOPS-20 was to junk the TENEX filesystem,
which was widely known to be the most unreliable of all PDP-10
filesystems, and start over.  It's still not as robust as the TOPS-10
filesystem, but it's a lot better than TENEX.  The flaky TENEX filesystem
was probably also a 940 legacy, but the 940 only used it on the drum.  
Long-term storage was either on magtape (and it had an elaborate means for
allowing magtape files to be overwritten in place), or on disk partitions
accessed purely through a user program called KDF (Kludge Disk Files).  
Restoring the drum filesystem from tape was a frequent occurrence.

On Tue, 24 May 2005, Carl Baltrunas wrote:

> Tymshare had it's own custom OS called TYMCOM-X (and for the 2020s, 
> TYMCOM-XX) which diverged from TOPS-10 at the 5.02 level.  Things were 
> added to match features with TOP-10 and some Tenex influences  but 
> remained custom.  We used a very close relative to COMPIL which was 
> originally written by Bill Wehir (sp?) or (WFW), which was called RPG.  

Actually, the *very* original author was Dick Gruen.  Officially, "RPG"
stood for "Rapid Program Generation".  It was of course mere coincidence
that it happened to be written by Richard P. Gruen. :-) But indeed much
more of the code was from Bill Weiher.

> structure striped across all of the disks.  External memory, tape and 
> disk drives were connected via an SA-10.  Tape controllers and drives 
> were all from STC and disks were AMPEX or Memorex drives we got as 
> hand-me-downs from the IBM systems.

Well, I'm pretty sure your *memory* wasn't connected via an SA10. :-) But
it may have been from SC as well, since we did build some PDP-10 add-on
memory (including a fast 20-port memory for the ILLIAC-IV complex).

> Somewhere I have the "official" list that DEC supported in one of it's 
> tables that allowed a program to poll the OS for which OS was running.  
> It may even have made it into one of the JSYS entries... it's a good 
> place to check.

One of the CALLIs is GETTAB, which is the general call for obtaining
information from published system tables.  One particular entry (112) of
one particular table (11) includes the OS type code.  TOPS-20 has a
special kludge that handles that one case directly without mapping in
PA1050, so that a "TOPS-36" program which uses that as its very first
system call can decide which kind of calls to use without a gratuitous
PA1050.  I don't know if this works on ITS, since I don't remember what
ITS call that would be (it's opcode 47, which is in the ITS range).  
Naturally, a *fully* portable program should check user mode before
executing any UUOs.

> We also had a Tymshare partner in Paris and they maintained a separate 
> set of sources for many of the CUSPs which then prompted users in 
> French.  I presume they watched whenever we came out with a new release 
> to retrofit their changes into our code.

I imagine that was a legal requirement. :-)

> Also, you may want to give Systems Concepts honorable mention for their 
> changes to the OS to run on their SC30M and later models. (I forget 
> where the "-" goes).

If it's there, it would be "SC-30", although I've always preferred to use
"SC30".  And nobody ever used the letter except in "marketing stuff".

The changes *required* to run either TOPS-10 or TOPS-20 on the SC30 or
SC40 are zero, since they're fully upward-compatible with the KL (at my
insistence), though IIRC the TOPS-20 NI code needs a trivial patch to get
around some stupid program-delay timeout during the fake "microcode
load" or some such.  I actually came up with a scheme to eliminate even
that incompatibility, but never got around to implementing it.

One of the things that impressed one of the SC30 customers (besides the
speed) was the way they were able to bring their own RP06 pack to our
site, stick it in the drive, boot their TOPS-20, and run their
applications.

Of course if you want to run non-DEC-compatible *channels*, you need
drivers, and if you want to use more than 4MW of memory you need a bunch
of fixes, etc.

On Tue, 24 May 2005, Carl Baltrunas wrote:

> Dave Poole of Stanford and Foonly fame created the Foonly F1, F2, F3 

I'm pretty sure that Foonly Inc. involved Phil Petit as well as Dave
Poole, and I think Jack Holloway was somewhat involved as well.

> and F4.  The F1 project was a fast machine and really introduced KL 

It was fast for its day, but the SC30 was just as fast, and the SC40 was
much faster.  Both were much more "manufacturable". :-)

> paging which DEC reconstructed for their TOPS-20.  The F2 never saw the 

Meaning that DEC actually used stuff from the F1, or just that they
independently adapted the BBN pager architecture to the KL?

As far back as Super Foonly (which was pre-KI), it was recognized that the
machine would have paging, and would probably need to support some variant
of the BBN pager architecture, and possibly the MIT/ITS pager architecture
(Holloway's design) as well, but I'm not sure how much that part was
nailed down by the time the plug was pulled.

On Wed, 25 May 2005, Mark Crispin wrote:

> > So did that make DECUUO an *emulator*, or did it merely sit "alongside"
> > the loaded WAITS binaries (in a similar fashion to PA1050) and catch
> > kernel calls and handle them?
> 
> DECUUO was neither.
> 
> Like PA1050, DECUUO lived in the upper portion of the address

Are you sure about that, or are you just looking at it through
"TOPS-20-colored glasses"?  Because it certainly differs from the way I
envisioned it when I implemented the support for it.  I made the hardware
and OS changes necessary to make DEC monitor emulation possible, but left
the user-mode portion as an exercise for the reader.  Note that this was
on the *PDP-6*, which didn't even have dual protect-relocate, let alone
paging (though I'm not sure if the complete feature was ever implemented
on the -6).

Mapping emulation code into the target address space is a bad idea, albeit
an unavoidable one in some cases.  Aside from the lack of emulation
accuracy when "other stuff" is in the address space, not to mention the
possibility for strange bugs when emualtor *storage* is in the target
address space, there's also the risk of collision with the target code.  
I've sometimes had undesirable constraints imposed on the layout of
TOPS-10 code by the desire to be compatible with PA1050.  Of course that
would have been considerably alleviated if PA1050 had ever learned to run
extended (nad *completely* alleviated until such time as PA1050 actually
supported TOPS-10 extended addressing).

For an emulation to be "invisible", either the host needs a larger address
space than the target, or the host and target have to have distinct
address spaces.  The VAX's PDP-11 emulation won by virtue of the former,
and I'd intended ITS's "DEC monitor mode" to rely on the latter.

ITS has the concept of multiple "jobs" arranged in a tree, somewhat more
like Unix processes than TOPS-20 forks, but more compartmentalized in that
each job has its own I/O as well as memory.  There are software interrupts
(something like Unix signals), some of which stop the affected job and
interrupt its superior.  Class 1 interrupts do this always, class 2
interrupts do this by default but can interrupt the affected job instead
when enabled to do so, and class 3 interrupts either interrupt the
affected job or are ignored.  The idea here was that a job could enable
"DEC monitor mode" for an inferior, which would cause all MUUOs executed
by that inferior to generate class 1 interrupts.  There were already
calls permitting a job to read and/or write any portion of an inferior's
address space, so shared mapping was never a requirement (and not even a
possibility at the time).  This wasn't intended to be blindingly fast,
just usable.

This also required a hardware change to the MIT PDP-6, related to the
definition of "MUUO".  In the original PDP-6 design, all UUOs were MUUOs,
and hence trapped into exec mode using exec 40/41.  The MAC hackers
realized that UUOs are a useful construct within programs, and that the
overhead of trapping through the OS in that case is undesirable, so the
logic was modified to trap some UUOs through user 40/41 with no mode
switch.  ITS was very sparing in its use of major opcodes for system
calls, fitting entirely into the 40-47 range.  So the modified PDP-6
only trapped 0 and 40-47 (and illegal instructions) to exec mode, with
1-37 and 50-77 being LUUOs.

Clearly the emulation couldn't work if some DEC UUOs didn't trap to the OS
at all, so this had to be changed.  Greenblatt and I discussed this, since
some user programs took advantage of the dual ranges to allow two
independent parts of the code to allocate UUO opcodes independently.  
However, we decided that 1-37 was sufficient for the total *number* of
LUUOs, and that one could still get dual allocation by allocating one
group from the top down, and that fixing a few programs was a worthwhile
price for not having to take ITS down whenever someone wanted to run a DEC
program.  I believe ITS already had code to turn non-ITS MUUOs into LUUOs
in the normal case (probably dating back to before the hardware change),
so the only impact of turning 50-77 into MUUOs in the hardware on such
unupdated programs would be a performance penalty.  And of course, all
PDP-10 processors have adopted this definition of LUUO vs. MUUO.

The actual hardware change to the PDP-6 was pretty trivial (aside from
having to do it by soldering instead of wire-wrapping).  So trivial in
fact, that I not only didn't bother to power the machine off to make the
change (and risk killing a 6205), but I also made the mod with ITS running
and real users on.  Hey, it was only the instruction decoding logic. :-)

> Unlike PA1050, DECUOO was an ITS program.  Among its functions
> was a loader that could read WAITS DMP files and TOPS-20 SAV (and
> I think SHR) files and load them into the job's address space.

That *could have* been avoided by building the necessary support into DDT
(the ITS equivalent to the EXEC), but I guess nobody considered that
important.

> With PA1050, the first non-JSYS MUUO you did would cause the
> TOPS-20 kernel to load PA1050 into your address space and set up
> the traps to it.  With DECUUO, this had to be done by explicitly

Except of course for the %CNMNT GETTAB as noted above.

> There is actually a good reason why DECUUO had to be that way;
> there was overlap between TOPS-20 and ITS MUUOs.  Fortunately,

Umm, TOPS-10 and ITS MUUOs.

> the overlap was modest, and the overlapped ITS MUUOs could be
> done in a different way.  But this meant that there had to be a
> system call that would disable the overlapping ITS MUUO so that
> the MUUO would trap to DECUUO instead.

"Modest"?  From the ITS point of view, the "overlap" is total.  But as
long as the emulator runs as a different job (without the emulation mode
enabled) there's no conflict.

> Since TOPS-20 only used JSYS as its system call (and on KAs with
> Tenex it was a machine instruction not an MUUO) it was possible
> to make PA1050 more seamless.  Also, the TOPS-20 kernel could
> recognize and load TOPS-10 EXE and SAV files (I don't remember if
> TOPS-20 can do SHR files).

A complete "old-style" loader would need to accomodate SAV, LOW, HGH, and
SHR, though even TOPS-10 deprecated those a while back.

On the flip side, when I ported the TOPS-20 TCP/IP code to TOPS-10, I
implemented the JSYSes as JSYSes.  It seemed pointless to have a "JSYS
version" and "MUUO version" of each call (though some DEC "TOPS-36"
mechanisms tend to do something like that).  In the process, I threw in a
few simple non-network JSYSes as well.  I added a separate bit to the
%CNMNT GETTAB to indicate whether JSYSes are supported - once you know
they are you can use ERJMP et al in the usual way to test specific cases
without elaborate trap intercepts.

					Fred Wright

30-May-2005 08:41:19-PDT,2006;000000000000
Return-Path: <AMartin.MA.UltraNet@RCN.Com>
Received: from smtp05.mrf.mail.rcn.net ([207.172.4.64]) by lingling.panda.com with TCP/SMTP; Mon, 30 May 2005 08:33:46 -0700 (PDT)
Received: from 207-172-216-91.s853.apx1.sbo.ma.dialup.rcn.com (HELO RCN.Com) (207.172.216.91)
  by smtp05.mrf.mail.rcn.net with ESMTP; 30 May 2005 11:32:41 -0400
Message-ID: <429B31DE.E58A9390@RCN.Com>
Date: Mon, 30 May 2005 11:31:42 -0400
From: "Alan H. Martin" <AMartin.MA.UltraNet@RCN.Com>
X-Mailer: Mozilla 4.77 [en] (Win95; U)
X-Accept-Language: en,en-US,en-GB,es
MIME-Version: 1.0
To: Fred Wright <fw@well.com>
CC: TOPS-20@lingling.panda.com
Subject: Re: PDP-10 history: catalog of O/Ses
References: <Pine.AMI.4.21.0505281524170.167059480-100000@Amiga.local>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Fred Wright wrote:
> 
> On Tue, 24 May 2005, Clive Dawson wrote:
> 
> > Yes, I think Bill has pretty much covered the major variations.
> > As he said, TOPS10 had nothing to do with BBN's TENEX.
> 
> True, and as someone pointed out, "TOPS-10" was just a rename of a system
> formerly just referred to as "Monitor", which dated back to the PDP-6
> *long* before TENEX.  ....  Although I don't have the manual handy for the exact
> quote, my favorite line from the beginning of the AID manual goes
> something like:
> 
> -----------------------------------------------------------------------
> AID requires 11K of core, and won't run on a 16K machine if the Monitor
> requires more than 5K.
> -----------------------------------------------------------------------

	AID runs in approximately 11K of core memory (with 1K of user
	data area) and expands to 14K of core (with 4K of user data
	area) as required.  Note that AID will not run on a 16K
	machine if Monitor occupies more than 5K of core.
					- _AID_,
					  _PDP-10 Timesharing Handbook_,
					  Copyright 1968, 1969, 1970
				/AHM
-- 
Alan Howard Martin			AMartin.MA.UltraNet@RCN.Com
30-May-2005 23:06:42-PDT,2640;000000000000
Mail-From: MRC created at 30-May-2005 22:59:53
Date: Mon, 30 May 2005 22:59:53 -0700 (PDT)
From: Mark Crispin <MRC@Lingling.Panda.COM>
Subject: Re: PDP-10 history: catalog of O/Ses
To: fw@well.com
cc: TOPS-20@Lingling.Panda.COM
In-Reply-To: <Pine.AMI.4.21.0505281524170.167059480-100000@Amiga.local>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14030274540.10.MRC@lingling.panda.com>

> One of the CALLIs is GETTAB, which is the general call for obtaining
> information from published system tables.  One particular entry (112) of
> one particular table (11) includes the OS type code.  TOPS-20 has a
> special kludge that handles that one case directly without mapping in
> PA1050, so that a "TOPS-36" program which uses that as its very first
> system call can decide which kind of calls to use without a gratuitous
> PA1050.  I don't know if this works on ITS

This was implemented in DECUUO on ITS but not in the monitor since CALLI
conflicted with .ACCES on ITS.

> > Like PA1050, DECUUO lived in the upper portion of the address
> Are you sure about that, or are you just looking at it through
> "TOPS-20-colored glasses"?  Because it certainly differs from the way I
> envisioned it when I implemented the support for it.

Yes.  I was the maintainer of DECUUO in the mid 1970s.

> I made the hardware
> and OS changes necessary to make DEC monitor emulation possible, but left
> the user-mode portion as an exercise for the reader.

I think Jack Holloway wrote the original DECUUO.  Stallman hacked on it a
lot, and then me.  Stallman probably hacked on it after me too.

> (and risk killing a 6205)

*Snicker*.  I have a 6205 from Berkeley's PDP-6.  A truly jaw-dropping
board.  No wonder they went to tiny modules on the KA.

> > With PA1050, the first non-JSYS MUUO you did would cause the
> > TOPS-20 kernel to load PA1050 into your address space and set up
> > the traps to it.  With DECUUO, this had to be done by explicitly
> Except of course for the %CNMNT GETTAB as noted above.

Correct, except that %CNMNT only did that on TOPS-20, not ITS.

> "Modest"?  From the ITS point of view, the "overlap" is total.

Not at all.  ITS used UUOs 40-47.  TOPS-10 used UUOs 40, 41, 47-51, 55-100.

All ITS system calls could be accessed through one UUO: .CALL (043), so
there was no need to use the three ITS UUOs which conflicted with TOPS-10
UUOs: .IOT / CALL (040), .OPEN / INIT (041), and .ACCES / CALLI (047).

This may have been after your time in ITS.  By the mid 1970s, .CALL was the
preferred way to do things.

-- Mark --
-------
31-May-2005 03:29:50-PDT,10765;000000000000
Return-Path: <carl@reststop.com>
Received: from smtpauth01.mail.atl.earthlink.net ([209.86.89.61]) by lingling.panda.com with TCP/SMTP; Tue, 31 May 2005 03:22:32 -0700 (PDT)
Received: from [24.221.177.162] (helo=[204.238.239.105])
	by smtpauth01.mail.atl.earthlink.net with asmtp (Exim 4.34)
	id 1Dd3tG-0000ar-6p; Tue, 31 May 2005 06:22:30 -0400
In-Reply-To: <Pine.AMI.4.21.0505281524170.167059480-100000@Amiga.local>
References: <Pine.AMI.4.21.0505281524170.167059480-100000@Amiga.local>
Mime-Version: 1.0 (Apple Message framework v622)
Content-Type: text/plain; charset=US-ASCII; format=flowed
Message-Id: <a5bb9372e1461b516f5a54cae77d2b99@reststop.com>
Content-Transfer-Encoding: 7bit
Cc: TOPS-20@lingling.panda.com
From: Carl Baltrunas <carl@reststop.com>
Subject: Re: PDP-10 history: catalog of O/Ses
Date: Tue, 31 May 2005 03:22:28 -0700
To: Fred Wright <fw@well.com>
X-Mailer: Apple Mail (2.622)
X-ELNK-Trace: 657dc9a5ceb70f7f3e74c9a82e36a01394f5150ab1c16ac06b48d29827cfba20f43c8c91908013ea90f85249787c93e6350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 24.221.177.162

On May 28, 2005, at 7:21 PM, Fred Wright wrote:

> On Tue, 24 May 2005, Clive Dawson wrote:
>
>> Yes, I think Bill has pretty much covered the major variations.
>> As he said, TOPS10 had nothing to do with BBN's TENEX.
>
> Not only did TENEX have nothing to do with TOPS-10, but also it wasn't
> really a new design in its own right, being merely a rewrite of the SDS
> 940 system for the PDP-10.  The 940 system, as well as the hardware
> enhancements that turned the 930 into the 940, came from Project Genie 
> at
> UC Berkeley.  The hardware enhancements were taken over by SDS (later 
> XDS)
> to become the 940, though I'm not sure if SDS distributed a version of 
> the
> Project Genie OS or not.  There were certainly service bureaus running 
> it,
> though, since I recall using one of them in '68.

This is interesting news here as one of those service bureaus was 
Tymshare.
When I joined them in 1980, we had 21 SDS-940s up and running on Tymnet
as hosts 1-21.  Our OS was called TYMCOM-IX. Some network services were
still running on those 940s including user validations and network 
access
information.

On the PDP-10s about 90% of the users were by default set to TYMCOM-IX
mode, which provided nearly identical commands and syntax to the users.
Only the TYMCOM-X OS group and a few TOPS-10 customers were set to
PDP-10 mode which looked very much like TOPS-10 v5.02 with lots of
extensions.  At our peak we had 54 PDP-10s running TYMCOM-X/XX and
as many as 11 or 12 F4s or 26KLs running TENEX or TOPS-20/August.

I would NEVER have made the comparison of the TYMCOM-IX commands
to be similar to TENEX or TOPS-20.  It's quite possible that Tymshare 
was
running their own highly modified OS on the 940s as well, but I wasn't 
given
that impression.  Now that you've piqued my interest, I'm going to have 
to
check that out with one of my manager friends who did much of the 940
support while I was there.  I may also have a TYMCOM-IX assembler
manual around somewhere,
>
> The 940 OS (mostly written by Peter Deutsch) was based on paging, 
> viewed
> memory primarily as a cache for drum, had jobs with multiple forks 
> which
> could optionally share pages, used the topmost fork of the job for the
> "shell", and had command and filename completion.  Sound familiar?
> Although the 940 only had a 16KW (24 bits) address space (64KW 
> physical),
> the OS made page switching fairly convenient (and reasonably 
> efficient) so
> that programs could "juggle their way" around that with overlays.

Hmmm.  I don't recall anything like that in TYMCOM-IX.
>
> TENEX was really not much more than a port of the 940 OS to the PDP-10,
> except for changing some things that didn't scale well to larger 
> address
> spaces and storage devices.  I can recall seeing TENEX code that looked
> literally like a line-by-line translation of 940 code, right down to 
> using
> only three registers (like the 940's A, B, and X), and with half the
> instructions being MOVEs and MOVEMs since you can't keep much in three
> registers.  They did, however, use a stack and PUSHJ/POPJ instead of
> JSR/JRST. :-) The exception model for system calls was as ugly as their
> hardware, instead of adopting an ITS-like PCLSR approach - another step
> backwards from the 940 system, which in essence had simplified PCLSR.

>   The flaky TENEX filesystem
> was probably also a 940 legacy, but the 940 only used it on the drum.
> Long-term storage was either on magtape (and it had an elaborate means 
> for
> allowing magtape files to be overwritten in place), or on disk 
> partitions
> accessed purely through a user program called KDF (Kludge Disk Files).
> Restoring the drum filesystem from tape was a frequent occurrence.

The 940 tape drives actually wrote a sequence of bits to the tape 
rather than
bytes or words that we normally think of with PDP-10 writing to tape.  
So,
writing in-place was not that difficult.  I recall seeing somewhere the 
actual
bit patterns for tape marks, end of file markers, end of tape, etc.  I 
found it
amazing that some systems still did that.
>
> On Tue, 24 May 2005, Carl Baltrunas wrote:
>
>> Tymshare had it's own custom OS called TYMCOM-X (and for the 2020s,
>> TYMCOM-XX) which diverged from TOPS-10 at the 5.02 level.  Things were
>> added to match features with TOP-10 and some Tenex influences  but
>> remained custom.  We used a very close relative to COMPIL which was
>> originally written by Bill Wehir (sp?) or (WFW), which was called RPG.
>
> Actually, the *very* original author was Dick Gruen.  Officially, "RPG"
> stood for "Rapid Program Generation".  It was of course mere 
> coincidence
> that it happened to be written by Richard P. Gruen. :-) But indeed much
> more of the code was from Bill Weiher.

Actually I do recall Dick Gruen's name on the software.  At Tymshare, I
was the last person to ever modify RPG, which seemed to carry the
sticky fingers curse.  Last person to touch it had to fix all the 
remaining
bugs. The only way to pass it on to someone else was to quit. :-)
>
>> structure striped across all of the disks.  External memory, tape and
>> disk drives were connected via an SA-10.  Tape controllers and drives
>> were all from STC and disks were AMPEX or Memorex drives we got as
>> hand-me-downs from the IBM systems.
>
> Well, I'm pretty sure your *memory* wasn't connected via an SA10. :-) 
> But
> it may have been from SC as well, since we did build some PDP-10 add-on
> memory (including a fast 20-port memory for the ILLIAC-IV complex).

Well, it was and it wasn't.  We used external, multi-port memory.  If I 
recall
correctly, the KI/KL used one port, the SA-10 used one port, and the 
Tymnet
interface (a wire-wrapped board with several modules and it's own local
memory plugged into a Tymnet Engine (a 1-MB machine based on the
Interdata computer)).  I'd swear that something was connected to a 4th
port, but my memory was failing.  Since all disk and tape I/O went 
through
the SA-10, I can't imagine why either the STC tape controllers or disk
drive controller would use another port, so I must be hallucinating.
>
>> Somewhere I have the "official" list that DEC supported in one of it's
>> tables that allowed a program to poll the OS for which OS was running.
>> It may even have made it into one of the JSYS entries... it's a good
>> place to check.
>
> One of the CALLIs is GETTAB, which is the general call for obtaining
> information from published system tables.  One particular entry (112) 
> of
> one particular table (11) includes the OS type code.  TOPS-20 has a
> special kludge that handles that one case directly without mapping in
> PA1050, so that a "TOPS-36" program which uses that as its very first
> system call can decide which kind of calls to use without a gratuitous
> PA1050.  I don't know if this works on ITS, since I don't remember what
> ITS call that would be (it's opcode 47, which is in the ITS range).
> Naturally, a *fully* portable program should check user mode before
> executing any UUOs.

That was it.  The table included TOPS-10, TOPS-20, TENEX, ITS and
TYMCOM-X, not necessarily in that order.  I don't recall that it had an
entry for WAITS, but it may have.


> Of course if you want to run non-DEC-compatible *channels*, you need
> drivers, and if you want to use more than 4MW of memory you need a 
> bunch
> of fixes, etc.

We did use 4MW on several systems.  One problem we ran into which
was funny when you think about it, was if we traipsed through the entire
page table for 4MW of physical memory on a page-fault, we would
completely invalidate/reload the cache table.  This was quickly fixed
by making sure the page table was not cached, but it could have been
a great source of thrashing.
>
> On Tue, 24 May 2005, Carl Baltrunas wrote:
>
>> Dave Poole of Stanford and Foonly fame created the Foonly F1, F2, F3
>
> I'm pretty sure that Foonly Inc. involved Phil Petit as well as Dave
> Poole, and I think Jack Holloway was somewhat involved as well.
>
>> and F4.  The F1 project was a fast machine and really introduced KL
>
> It was fast for its day, but the SC30 was just as fast, and the SC40 
> was
> much faster.  Both were much more "manufacturable". :-)

I only saw Dave Poole once when they brought him in to work on a
microcode problem on the F4 and all my other stories about him were
2nd hand.  What I had heard was that he developed (with others) the
Foonly design while at Stanford.  Somehow, DEC was given the
opportunity to evaluate the Foonly design before they had finished
hammering out the details for the KL and they co-opted much of
his design, but "broke it" as far as Dave was concerned.  So Foonly
was formed to do it right.  This may be hear-say, or even an urban
legend.  If someone on this list actually knows what happened, I'd
love to hear the story.

To my understanding, one of the last times that Dave Poole had
visited Tymshare, shortly before I arrived, he and probably EVS
came in carrying a number of grocery bags which they proceeded
to take into the lab.  The bags contained all the "parts" needed to
assemble a Foonly F3 which was to be used for OS development
by our group.
>
>> paging which DEC reconstructed for their TOPS-20.  The F2 never saw 
>> the
>
> Meaning that DEC actually used stuff from the F1, or just that they
> independently adapted the BBN pager architecture to the KL?

I have no real info on this.  Just that Poole thought that DEC did it 
wrong.

-Carl


31-May-2005 06:33:58-PDT,4665;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Tue, 31 May 2005 06:27:06 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:Or6+Rd25YB+G8KSbE0AQvn+Sv6gEAk1T@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.13.3/8.13.3) with ESMTP id j4VDR4U2008260;
	Tue, 31 May 2005 07:27:04 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:7sAJiYVCrwodzXQvvl9p3wNQeMyXxz3w@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j4VDR36q020497;
	Tue, 31 May 2005 07:27:03 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j4VDR3La020496;
	Tue, 31 May 2005 07:27:03 -0600 (MDT)
Date: Tue, 31 May 2005 07:27:03 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: TOPS-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: PDP-10 history: catalog of O/Ses
Message-ID: <CMM.0.92.0.1117546023.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0b5 (sunshine.math.utah.edu [128.110.198.2]); Tue, 31 May 2005 07:27:04 -0600 (MDT)

Fred Wright <fw@well.com> writes on Sat, 28 May 2005 19:21:15 -0700 (PDT):

>> The 940 OS (mostly written by Peter Deutsch) was based on paging, ...

There are two such well-known people in computer science: one
publishes as "Peter Deutsch" or "Peter J. Deutsch" and founded Bunyip
Information Systems Inc.  The other is "L. Peter Deutsch".

Which one was meant?  I suspect the latter.

L. Peter Deutsch is the author of ghostscript, though now retired from
Aladdin Software and ghostscript work.  I'm a long-time ghostscript
beta tester, and I had the great pleasure of having dinner with Peter
and his partner on a visit to the San Francisco Bay Area a couple of
years ago.  Had I known then of his work on the PDP-10, we could have
had a topic for another dinner.  He is cited in Fiala's May 1978
Computer article ``The Maxc Systems'' as the developer of the Byte
Lisp instruction set that was added to the Maxc PDP-10 systems.
Here's an interesting table from that paper:

>> ...
>> Table 2. Some 2000 microinstructions implement the Maxc system,
>> although 5000 more are used in the diagnostics.
>> 
>>         ==================================================
>>         Use                             Instruction Count 
>>         ==================================================
>>         PDP-10 instruction set                    774
>>         Interlisp instruction set                 474
>>         Tenex Map                                 157
>>         Disk                                      228
>>         I/O instructions                          237
>>         Priority interrupt system                 107
>>         Other                                      93
>> 
>>         Total                                    2038
>>         Diagnostics                             ~5000
>>         ==================================================
>> ...

The large size of the instruction is pretty amazing, although Fiala
notes several times that the cleanness of the PDP-10 design made it
possible to reuse circuitry for many different instructions.

Before reading this article, I was unaware of any work on extending
the PDP-10 instruction set.  The PDP-11 was well-known for
user-written microcode extensions, but to do this on the PDP-10, I
guess that you had to design your own system like Fiala's group at
Xerox PARC did.

This morning, I scanned to PDF and OCR'ed the Fiala article, since the
online IEEE Computer archives only go back to 1978.  I suppose for
copyright reasons, I cannot post it on the Internet, but I might be
convinced to make it available to list members on individual off-list
request.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
 1-Jun-2005 15:54:19-PDT,2375;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Wed, 1 Jun 2005 15:47:20 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:6xG+cgYxjYhcAXitX/NtnvR1ABhWEgVw@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.13.3/8.13.3) with ESMTP id j51MlImj007017;
	Wed, 1 Jun 2005 16:47:18 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:7cadSpjnn2CesdfWSpeovYJ09IggKA6c@localhost [127.0.0.1])
	by psi.math.utah.edu (8.12.11/8.12.10) with ESMTP id j51MlIZr002639;
	Wed, 1 Jun 2005 16:47:18 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.12.11/8.12.10/Submit) id j51MlHMV002638;
	Wed, 1 Jun 2005 16:47:17 -0600 (MDT)
Date: Wed, 1 Jun 2005 16:47:17 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: BBN in the news
Message-ID: <CMM.0.92.0.1117666037.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0b5 (sunshine.math.utah.edu [128.110.198.2]); Wed, 01 Jun 2005 16:47:18 -0600 (MDT)

Some of you may be interested in looking at the new issue of
IEEE Annals of Computing, April-June 2005:

	Bolt Beranek and Newman:  The First 40 Years
	http://www.computer.org/pubs/annals

There are links from that page to the journal contents.  Readers
with IEEE digital library memberships (or belonging to suitable
subscribing institutions) should be able to download electronic
copies of the articles in HTML or PDF.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
 3-Jun-2005 21:56:47-PDT,827;000000000000
Mail-From: MRC created at  3-Jun-2005 21:40:06
Date: Fri, 3 Jun 2005 21:38:55 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: TOPS-20 list messages leaked to Google
To: TOPS-20@lingling.panda.com
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14031308374.10.MRC@lingling.panda.com>

I just discovered that TOPS-20 mailing list messages have been leaked and
appear on Google groups via a newsgroup called fa.info-tops20 that apparently
was linked by the info-tops20.ifi.uio.no address in the TOPS-20 mailing
list.

That address has been removed from the TOPS-20 mailing list.  I apologize for
any spam you may have received as result of your postings appearing in
Google.  I know that I've received some spam at this (previously secret)
email address.
-------
 4-Jun-2005 09:40:55-PDT,1055;000000000000
Return-Path: <phil@ultimate.com>
Received: from rwcrmhc12.comcast.net ([216.148.227.85]) by lingling.panda.com with TCP/SMTP; Sat, 4 Jun 2005 09:33:35 -0700 (PDT)
Received: from c-66-30-204-193.hsd1.ma.comcast.net ([66.30.204.193])
          by comcast.net (rwcrmhc12) with ESMTP
          id <20050604163333014003ji10e>; Sat, 4 Jun 2005 16:33:33 +0000
Received: (from phil@localhost)
	by ultimate.com (8.12.10/8.12.10) id j54GXWBQ001494;
	Sat, 4 Jun 2005 12:33:32 -0400 (EDT)
Date: Sat, 4 Jun 2005 12:33:32 -0400 (EDT)
From: Phil Budne <phil@ultimate.com>
Message-Id: <200506041633.j54GXWBQ001494@ultimate.com>
To: MRC@lingling.panda.com, TOPS-20@lingling.panda.com
Subject: Re:  TOPS-20 list messages leaked to Google

There has been some great info posted here, and I had been thinking it's
a shame if it wasn't being archived in a place that got picked up by search
engines.  Perhaps the mail could be sanitized (by replacing the domain
name in e-mail addrs with some constant string), and forwarded on to
the usenet group?

phil
 4-Jun-2005 14:03:18-PDT,684;000000000000
Mail-From: MRC created at  4-Jun-2005 13:56:42
Date: Sat, 4 Jun 2005 13:56:42 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re:  TOPS-20 list messages leaked to Google
To: phil@ultimate.com
cc: TOPS-20@lingling.panda.com
In-Reply-To: <200506041633.j54GXWBQ001494@ultimate.com>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14031486376.10.MRC@lingling.panda.com>

The mail is archived (in multiple places) but I do not want to
allow search engines to pick it up; at least not without my
consent and the consent of the list membership.  So far, such
consent has not been sought, much less given.

-- Mark --
-------
21-Jun-2005 21:58:57-PDT,1355;000000000000
Mail-From: MRC created at 21-Jun-2005 21:54:42
Date: Tue, 21 Jun 2005 21:54:42 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: starting DECnet on Ethernet?
To: TOPS-20@lingling.panda.com
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14036029839.10.MRC@lingling.panda.com>

Does anyone remember how to start DECnet on an NI?

I have two TOPS-20 systems on the same Ethernet, but I can't get them to
talk to each other.  In NCP, I see that line NI-0-0 has state "on", but
circuit NI-0-0 has state "off".  The command "set circuit ni-0-0 state on"
results in "Set Circuit Failed, Operation failure".

As far as I can tell, it goes into the bowels of the utterly undocumented
and unmaintainable NMLT20, from which no rational person can figure out
what's going on.

I saw in the DECNET.BWR file that DECnet wants to set the last two bytes
of the MAC address to match the DECnet node address.  Thinking that this
may be the problem, I observed that on one machine the MAC address was
00:11:24:79:17:26.  So, I swap bytes to get a DECNET address of 0x2617;
the high 6 bits are the area and the low 10 bits are the node number, so
that's a node address of 9.535 (decimal).  I set that up as the system's
DECnet node address and rebooted, but no joy in Mudville.

-- Mark --
-------
21-Jun-2005 22:24:30-PDT,1067;000000000000
Return-Path: <phil@ultimate.com>
Received: from rwcrmhc14.comcast.net ([216.148.227.89]) by lingling.panda.com with TCP/SMTP; Tue, 21 Jun 2005 22:20:15 -0700 (PDT)
Received: from c-66-30-204-193.hsd1.ma.comcast.net ([66.30.204.193])
          by comcast.net (rwcrmhc14) with ESMTP
          id <20050622052010014008eqkee>; Wed, 22 Jun 2005 05:20:10 +0000
Received: (from phil@localhost)
	by ultimate.com (8.13.4/8.13.4) id j5M5K92P005137;
	Wed, 22 Jun 2005 01:20:09 -0400 (EDT)
Date: Wed, 22 Jun 2005 01:20:09 -0400 (EDT)
From: Phil Budne <phil@ultimate.com>
Message-Id: <200506220520.j5M5K92P005137@ultimate.com>
To: MRC@lingling.panda.com, TOPS-20@lingling.panda.com
Subject: Re:  starting DECnet on Ethernet?

> I saw in the DECNET.BWR file that DECnet wants to set the last two bytes
> of the MAC address to match the DECnet node address.

More than that... DECnet wants to set the first four octets of your
MAC address to be AA-00-04-00

I woulda thunk it would do this for you when bringing up DECnet, but
you might as well give it a try.
21-Jun-2005 23:00:50-PDT,935;000000000000
Mail-From: MRC created at 21-Jun-2005 22:56:59
Date: Tue, 21 Jun 2005 22:56:59 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re:  starting DECnet on Ethernet?
To: phil@ultimate.com
cc: TOPS-20@lingling.panda.com
In-Reply-To: <200506220520.j5M5K92P005137@ultimate.com>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14036041179.10.MRC@lingling.panda.com>

> > I saw in the DECNET.BWR file that DECnet wants to set the last two bytes
> > of the MAC address to match the DECnet node address.
> More than that... DECnet wants to set the first four octets of your
> MAC address to be AA-00-04-00

Ugh.  Where does it do that?  Please don't tell me it's in NMLT20.

The MAC address can't be changed, because it's the same as the
host system's MAC address.  I was hoping to get it so that it
wouldn't try to change it at all.

Is it the .SFSEA code in SMON%?
-------
21-Jun-2005 23:09:43-PDT,566;000000000000
Mail-From: MRC created at 21-Jun-2005 23:06:04
Date: Tue, 21 Jun 2005 23:06:04 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re:  starting DECnet on Ethernet?
To: phil@ultimate.com, TOPS-20@lingling.panda.com
In-Reply-To: <14036041179.10.MRC@lingling.panda.com>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14036042832.10.MRC@lingling.panda.com>

Double ugh.  I found it.  It's symbol RTRHIO in D36COM.MAC, and ROUTER.MAC
uses it in multiple places.

What were they thinking?

-- Mark --
-------
21-Jun-2005 23:35:03-PDT,1471;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-3.cisco.com ([171.71.176.72]) by lingling.panda.com with TCP/SMTP; Tue, 21 Jun 2005 23:30:49 -0700 (PDT)
Received: from sj-core-5.cisco.com (171.71.177.238)
  by sj-iport-3.cisco.com with ESMTP; 21 Jun 2005 23:30:45 -0700
X-IronPort-AV: i="3.93,220,1115017200"; 
   d="scan'208"; a="281674007:sNHT25799768"
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-5.cisco.com (8.12.10/8.12.6) with ESMTP id j5M6Uhqi005157;
	Tue, 21 Jun 2005 23:30:43 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id XAA25664;
	Tue, 21 Jun 2005 23:30:36 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Tue, 21 Jun 2005 23:30:36 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: Mark Crispin <MRC@lingling.panda.com>
Cc: phil@ultimate.com, TOPS-20@lingling.panda.com
Subject: Re: starting DECnet on Ethernet?
In-Reply-To: Your message of Tue, 21 Jun 2005 22:56:59 -0700 (PDT)
Message-ID: <CMM.0.90.4.1119421836.billw@cypher>


    The MAC address can't be changed, because it's the same as the
    host system's MAC address.  I was hoping to get it so that it
    wouldn't try to change it at all.

Note that modern ethernet controllers (of the sort that go in ia86 "micro
engines") usually support multiple mac addresses on a single controller.
I don't know if the "microcode" supports and API for that, though...

BillW

21-Jun-2005 23:41:34-PDT,1874;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-5.cisco.com ([171.68.10.87]) by lingling.panda.com with TCP/SMTP; Tue, 21 Jun 2005 23:37:24 -0700 (PDT)
Received: from sj-core-2.cisco.com (171.71.177.254)
  by sj-iport-5.cisco.com with ESMTP; 21 Jun 2005 23:37:18 -0700
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-2.cisco.com (8.12.10/8.12.6) with ESMTP id j5M6bGlO011793;
	Tue, 21 Jun 2005 23:37:16 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id XAA26921;
	Tue, 21 Jun 2005 23:37:05 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Tue, 21 Jun 2005 23:37:05 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: Mark Crispin <MRC@lingling.panda.com>
Cc: phil@ultimate.com, TOPS-20@lingling.panda.com
Subject: Re: starting DECnet on Ethernet?
In-Reply-To: Your message of Tue, 21 Jun 2005 23:06:04 -0700 (PDT)
Message-ID: <CMM.0.90.4.1119422225.billw@cypher>


    What were they thinking?

They were probably thinking that they were one of the big three creators
of ethernet, and could do pretty much whatever they wanted.  There's
some little known verbage in ethernet (and token ring) specs about
"localy defined" ethernet addresses.  Presumably they were thinking all
of this rather before the ip community invented ARP.  It was a long time
ago, remember.  Xerox used raw ethernet addresses as XNS node
identifiers as well, although they didn't have so much in the way of
existing addressing infrastructure to remain compatible with.

There don't seem to be any downsides for most other protocols if the
ethernet switches "HW address" to the DECNet value.  That's how cisco
(and everyone else) was able to create multi-protocol routers that
included DECNet support even before the fancy multi-address ethernet
chips showed up.

BillW

22-Jun-2005 00:16:29-PDT,3982;000000000000
Return-Path: <fw@well.com>
Received: from b.mail.sonic.net ([64.142.19.5]) by lingling.panda.com with TCP/SMTP; Wed, 22 Jun 2005 00:12:52 -0700 (PDT)
Received: from Amiga.local (64-142-29-113.dsl.static.sonic.net [64.142.29.113])
	by b.mail.sonic.net (8.13.3/8.13.3) with ESMTP id j5M7CmPi032383
	for <TOPS-20@lingling.panda.com>; Wed, 22 Jun 2005 00:12:48 -0700
Date: Wed, 22 Jun 2005 00:12:48 -0700 (PDT)
From: Fred Wright <fw@well.com>
X-Sender: fw@Amiga.local
Reply-To: Fred Wright <fw@well.com>
To: TOPS-20@lingling.panda.com
Subject: Re:  starting DECnet on Ethernet?
In-Reply-To: <14036042832.10.MRC@lingling.panda.com>
Message-ID: <Pine.AMI.4.21.0506212335140.165027672-100000@Amiga.local>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII


On Tue, 21 Jun 2005, Mark Crispin wrote:

> > > I saw in the DECNET.BWR file that DECnet wants to set the last two bytes
> > > of the MAC address to match the DECnet node address.
> > More than that... DECnet wants to set the first four octets of your
> > MAC address to be AA-00-04-00
> 
> Ugh.  Where does it do that?  Please don't tell me it's in NMLT20.
> 
> The MAC address can't be changed, because it's the same as the
> host system's MAC address.  I was hoping to get it so that it
> wouldn't try to change it at all.

You have no choice, if you want to use TOPS-20 DECnet.

On Tue, 21 Jun 2005, Mark Crispin wrote:

> Double ugh.  I found it.  It's symbol RTRHIO in D36COM.MAC, and ROUTER.MAC
> uses it in multiple places.
> 
> What were they thinking?

DEC was always a bunch of complete idiots when it came to ARP-like issues.  
I recall arguing with Stu Grossman about this.  In fact, all the stuff for
the INTERNET-ETHERNET-MAPPINGS.BIN file suggests that they only grudgingly
supported ARP for IP. :-)

All versions of DECnet up through Phase IV lack the equivalent of ARP, and
demand that there be a 1:1 correspondence between DECnet addresses and MAC
addresses, as noted above.  AIUI they finally fixed that in Phase V, but
TOPS-20 never got past Phase IV.  So the only way to use TOPS-20 DECnet
with an emulator is either to clobber the NIC's MAC address to the DECnet
value, or to simulate an additional MAC address with promiscuous mode
(unless it actually supports multiple unicast addesses in the hardware and
OS).  This creates a strong motivation to have a separate dedicated NIC
just for the emulator.  It also caused me to put in a delay for initial
LAT multicasts, because some LAT implementations refuse to talk to a host
that changes its MAC address (for "security" reasons).

This stuff is controlled by the NODE and ETHERNET statements read from
7-CONFIG.CMD by SETSPD.  It may *also* be possible to fiddle it with NCP
commands, but that's not the normal way it's set.

They had a similar crock for IPCI, where the low byte of the IP address
was expected to match the CI node number.  I fixed that by implementing a
"trafficless" ARP exchange by using the SCA "connection data" to exchange
IP addresses with the peer nodes.

On Tue, 21 Jun 2005, William Chops Westfield wrote:

> There don't seem to be any downsides for most other protocols if the
> ethernet switches "HW address" to the DECNet value.  That's how cisco
> (and everyone else) was able to create multi-protocol routers that
> included DECNet support even before the fancy multi-address ethernet
> chips showed up.

As I pointed out to Stu years ago, this is analogous to designing a device
with a built-in terminator which hence demands that it be installed at the
end of the bus.  When you get *two* devices that *both* want to be "last",
you're in big trouble.  Similarly, running multiple protocols demanding
specific MAC address assignments won't work.  The only "fair" thing to do
is to insist that *no* protocol demand a specific MAC address.  Apparently
DEC eventually agreed, but too late for TOPS-20 (or TOPS-10).

					Fred Wright

22-Jun-2005 04:12:45-PDT,1704;000000000000
Return-Path: <rossman@columbia.edu>
Received: from serrano.cc.columbia.edu ([128.59.29.6]) by lingling.panda.com with TCP/SMTP; Wed, 22 Jun 2005 04:08:56 -0700 (PDT)
Received: from [192.168.0.101] (pcp09163523pcs.verona01.nj.comcast.net [69.141.118.203])
	(user=rossman mech=PLAIN bits=0)
	by serrano.cc.columbia.edu (8.13.0/8.13.0) with ESMTP id j5MB56uF019411
	(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT);
	Wed, 22 Jun 2005 07:05:06 -0400 (EDT)
In-Reply-To: <CMM.0.90.4.1119422225.billw@cypher>
References: <CMM.0.90.4.1119422225.billw@cypher>
Mime-Version: 1.0 (Apple Message framework v730)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <17B3EFF7-AD84-4D35-87CD-3663FE3234C8@columbia.edu>
Cc: Ken Rossman <rossman@columbia.edu>
Content-Transfer-Encoding: 7bit
From: Ken Rossman <rossman@columbia.edu>
Subject: Re: starting DECnet on Ethernet?
Date: Wed, 22 Jun 2005 07:05:06 -0400
To: TOPS-20@lingling.panda.com
X-Mailer: Apple Mail (2.730)
X-No-Spam-Score: Local
X-Scanned-By: MIMEDefang 2.48 on 128.59.29.6

My impression of this whole MAC address transformation thing with DECnet
always was that this was DEC's way of getting around having to have any
official ARP protocol equivalent.  Why do address resolution when you  
can
do address *calculation* instead?  I guess DEC thought that maybe DECnet
was going to eventually be THE network protocol or something.

Things get even more fun when you have a diskless workstation on the  
network
that you then want to run DECnet on also (as I did way back when)...   
somehow
I made it work, but it wasn't pretty.  I eventually gave up trying to  
run DECnet.

K

22-Jun-2005 04:20:56-PDT,3313;000000000000
Return-Path: <tpb@doctor.zk3.dec.com>
Received: from palrel12.hp.com ([156.153.255.237]) by lingling.panda.com with TCP/SMTP; Wed, 22 Jun 2005 04:16:44 -0700 (PDT)
Received: from mailrelay01.cac.cpqcorp.net (mailrelay01.cac.cpqcorp.net [16.47.132.152])
	by palrel12.hp.com (Postfix) with ESMTP id A9E3C403858;
	Wed, 22 Jun 2005 04:16:40 -0700 (PDT)
Received: from yquarry.zk3.dec.com (brrquarry.zk3.dec.com [16.141.56.3])
	by mailrelay01.cac.cpqcorp.net (Postfix) with ESMTP id 56AFC4D3;
	Wed, 22 Jun 2005 04:16:37 -0700 (PDT)
Received: from doctor.zk3.dec.com by yquarry.zk3.dec.com (8.8.8/1.1.22.3/03Mar00-0551AM)
	id HAA09318; Wed, 22 Jun 2005 07:16:39 -0400 (EDT)
Received: from localhost by doctor.zk3.dec.com (8.8.8/1.1.22.3/07Jun00-0914PM)
	id HAA0000010967; Wed, 22 Jun 2005 07:16:38 -0400 (EDT)
Message-Id: <200506221116.HAA0000010967@doctor.zk3.dec.com>
X-Authentication-Warning: doctor.zk3.dec.com: localhost [127.0.0.1] didn't use HELO protocol
To: Mark Crispin <MRC@lingling.panda.com>
Cc: TOPS-20@lingling.panda.com
Subject: Re: starting DECnet on Ethernet? 
In-reply-to: Your message of "Tue, 21 Jun 2005 23:06:04 PDT."
Date: Wed, 22 Jun 2005 07:16:37 -0400
From: "Dr Thomas.Blinn@HP.com" <tpb@doctor.zk3.dec.com>
X-Mts: smtp

> What were they thinking?

They were thinking that they "owned" the network and the hardware and
that every possible future "NI" built would support doing what they
were doing, to wit, setting the MAC address with software.  It worked
fine for DECnet, which was always an intranet, it would be a bad idea
for routed TCP/IP but that's not DECnet.  IIRC, other DECnet stacks of
the era did the same thing and it was all interoperable and so on..

It probably wasn't really necessary, provided each NI really had its
own unique MAC address, but using the hardware address introduces a
level of complexity in terms of discovering the mapping from the MAC
addresses to the software addresses; I'm no DECnet expert, but I'd
bet that has a lot to do with the implementation.  If you know the 
DECnet address of your intended communication partner (typically
from your hosts file since you don't have a DECnet name service in
most places) that is all you need with this approach.  I remember
the scripting used on VMS systems to copy in the corporate wide copy
of the hosts file for DECnet back in the day..

Tom

   Dr. Thomas P. Blinn + Tru64 UNIX Software + Hewlett-Packard Company
 Internet: tpb@zk3.dec.com, thomas.blinn@compaq.com, thomas.blinn@hp.com
  110 Spit Brook Road, MS ZKO3-2/W17   Nashua, New Hampshire 03062-2698
   Alpha Tru64 UNIX kernel support              Phone:  (603) 884-0646
     ACM Member: tpblinn@acm.org         PC@Home: tom@felines.mv.com

  Worry kills more people than work because more people worry than work.

      Keep your stick on the ice.        -- Steve Smith ("Red Green")

     My favorite palindrome is: Satan, oscillate my metallic sonatas.
                                -- Phil Agre, pagre@alpha.oac.ucla.edu

     Yesterday it worked / Today it is not working / UNIX is like that 
			-- apologies to Margaret Segall 

  Opinions expressed herein are my own, and do not necessarily represent
  those of my employer or anyone else, living or dead, real or imagined.
 
 4-Jul-2005 16:38:14-PDT,1779;000000000000
Return-Path: <smj@cirr.com>
Received: from sdf.lonestar.org (mx.freeshell.org [192.94.73.21]) by lingling.panda.com with TCP/SMTP; Mon, 4 Jul 2005 16:33:22 -0700 (PDT)
Received: from [10.0.0.2] (dsl254-015-081.sea1.dsl.speakeasy.net [216.254.15.81])
	(authenticated (0 bits))
	by sdf.lonestar.org (8.13.1/8.12.10) with ESMTP id j64NWgjv022860
	for <tops-20@lingling.panda.com>; Mon, 4 Jul 2005 23:32:42 GMT
Mime-Version: 1.0 (Apple Message framework v622)
Content-Transfer-Encoding: 7bit
Message-Id: <54fe210dabd40c004686dfc2e3ac1305@cirr.com>
Content-Type: text/plain; charset=US-ASCII; format=flowed
To: tops-20@lingling.panda.com
From: Stephen Jones <smj@cirr.com>
Subject: EXEC SubDir access control facility bug
Date: Mon, 4 Jul 2005 16:33:11 -0700
X-Mailer: Apple Mail (2.622)

I suppose this is directed mostly at MRC, but maybe it wasn't a bug.

I seem to remember something broken in EXEC or in the access control
facility that prevented an account from created a FILES-ONLY or even 
LOGIN
subdirectory under their own account.  I even remember MRC maybe having
a fix for this available for FTP, but I might be wrong ..

Does this sound familiar?

Also, does anyone know how to ^ESPEAK to SYSJOB in lowercase?  It
takes my command arguments and forces UPCASE.

Has anyone played with XKL's port of lynx?  I first played around with
it on the public toad 10 years ago and have been curious about it
lately.  The bin I have runs, but wants a hardcoded UNIX path to a
config file:

@lynx

Configuration file /usr/local/lib/lynx.cfg is not available.

I remember on the TD-1 they had a directory called <ROOT.USR.LOCAL.ETC>
where this file was located, and I played around with it, but had no
luck.  Maybe the bin could be edited?

 9-Jul-2005 23:00:10-PDT,1651;000000000000
Mail-From: MRC created at  9-Jul-2005 22:53:31
Date: Sat, 9 Jul 2005 22:53:31 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: EXEC SubDir access control facility bug
To: smj@cirr.com
cc: tops-20@lingling.panda.com, tops-20@lingling.panda.com
In-Reply-To: <54fe210dabd40c004686dfc2e3ac1305@cirr.com>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14040759141.16.MRC@lingling.panda.com>

> I seem to remember something broken in EXEC or in the access control
> facility that prevented an account from created a FILES-ONLY or even 
> LOGIN
> subdirectory under their own account.  I even remember MRC maybe having
> a fix for this available for FTP, but I might be wrong ..

If you are using the Panda ACJ, it prevents unprivileged users
from creating loginable subdirectories; unprivileged users must
create FILES-ONLY subdirectories.  Feature, not a bug.

> Also, does anyone know how to ^ESPEAK to SYSJOB in lowercase?  It
> takes my command arguments and forces UPCASE.

I'm not surprised (at least with SYSJOB, SYSJB1 may be more
forgiving) but the question is, why do you need lowercase with
any SYSJOB task?  Most SYSJOB tasks don't need it.  If you're
trying to talk to a PTY under SYSJOB, most people just ADVISE it.

> Has anyone played with XKL's port of lynx?

As far as I can tell, even if you fix the path issue LYNX will
not run on a vanilla TOPS-20 system.  It complains about an I/o
error on the network.  I suspect that it may use an XKL-only
monitor feature.  I never considered it important enough to
investigate further.

-- Mark --
-------
13-Jul-2005 14:27:44-PDT,3587;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Wed, 13 Jul 2005 14:23:24 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:Ayw0TeXu54CKh7X8dm1Gy/9TEc4nv7/W@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6DLNI6O021952;
	Wed, 13 Jul 2005 15:23:18 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:lnjUCc/VEHqYSXEc5VPyvcAbc5TtILg0@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6DLNIed007537;
	Wed, 13 Jul 2005 15:23:18 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j6DLNHpq007535;
	Wed, 13 Jul 2005 15:23:18 -0600 (MDT)
Date: Wed, 13 Jul 2005 15:23:18 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: PDP-10 history, TeX, and Metafont
Message-ID: <CMM.0.92.0.1121289797.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine.math.utah.edu [128.110.198.2]); Wed, 13 Jul 2005 15:23:18 -0600 (MDT)

I've just completed the final version of the conference proceedings
paper for my keynote address at the Practical TeX 2005 conference in
Chapel Hill, NC, June 14--17, 2005.

The paper is entitled

	The design of TeX and METAFONT: A retrospective

and is available here in alternate formats:

	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.pdf
	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.ps
	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.ps.gz

The final bundle of files for my article needs to go to the journal
editors by this Friday, but if anyone on this list is interested in
reading the article and commenting before then, I may be able to make
small tweaks before it goes to press.

There is a lot of PDP-10 history in the article, and some new
performance data in Figure 11 that list members may find interesting.
I've tried to make the document as typographically perfect as I can,
and the bibliography contains plenty of fodder for readers who wish to
delve further into this important piece of computer history.  It is
written for a very broad audience, including people with little
computing experience, and none on the PDP-10, so there is a fair
amount of background provided to aid in understanding how the PDP-10
affected TeX and METAFONT.

I'm taking a PDP-10 in my pocket to Wuhan, China next month, where
I'll present a talk similar to my Chapel Hill one, but to an entirely
different audience.

The slides of the first talk are available here

	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005-slides.pdf

but will be somewhat revised for China.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
13-Jul-2005 15:29:22-PDT,7262;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Wed, 13 Jul 2005 15:25:21 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:mtty/Mv8rzn5sbO+tvCoF7v0bGA/iCpC@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6DMPGsv024238;
	Wed, 13 Jul 2005 16:25:16 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:LTcxK13LnDKJ+vewEVYMCHgyZM4kBkmk@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6DMPGLM008303;
	Wed, 13 Jul 2005 16:25:16 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j6DMPGFS008301;
	Wed, 13 Jul 2005 16:25:16 -0600 (MDT)
Date: Wed, 13 Jul 2005 16:25:16 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: PDP-10 history: seeking TeX sources in SAIL
Message-ID: <CMM.0.92.0.1121293515.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine.math.utah.edu [128.110.198.2]); Wed, 13 Jul 2005 16:25:16 -0600 (MDT)

As part of my reconstruction of my PDP-10 working environment of the
early 1980s on the KLH10, I wanted to resurrect TeX and METAFONT in
their original incarnations in SAIL, before the 1979--1982 redesign
and rewrite in WEB/Pascal.

I have online on my desktop Unix workstation copies of all of the
contents of the RP06 and RP07 disks that we saved when our
DECsystem-20/60, UTAH-SCIENCE.ARPA (aka SCIENCE.UTAH.EDU) was retired
on 31-Oct-1990.  The text files are all intact, but due to a
regrettable error when the files were moved to or from optical disks,
all of the files with 36-bit bytes got corrupted: thus, all .rel and
.exe files need to be rebuilt on KLH10.

On those disk images, I find METAFONT in SAIL in the directory
ps:<tex.mf> in these files:

	alfhug.rel  mff20.sai  mfntrp.rel  mfpre.rel   mfsys.sai   t.compare
	files.inf   mffil.sai  mfntrp.sai  mfpre.sai   mlogo.mf
	mf.exe      mfhdr.sai  mfout.rel   mfrast.rel  presso.sai
	mfbase.sai  mfini.tbl  mfout.sai   mfrast.sai  sq.dvi
	mfdovr.sai  mflogo.mf  mfoutb.sai  mfsys.rel   sq.mf

I am able to compile, some, but not all, of these files:

	@compile mfbase.sai
	SAIL:   MFBASE.SAI.1 1
	START YOUR PROGRAM WITH BEGIN OR ENTRY - WILL SCAN FOR BEGIN.
	MFBASE.SAI.1, Page 1
	01000      internaldef
			       innput=0 # "input";

	^

	...
	@compile mfntrp.sai
	SAIL:   MFNTRP.SAI.1 1
	      MFHDR.SAI.1 1 2 3 4 5 6
	 2
	      MFBASE.SAI.1 1 2 3 4 5
	 3 4
	      MFF20.SAI.1 1
	 5 6 7 8 9 10

	@compile mfout.sai
	SAIL:   MFOUT.SAI.1 1
	      MFHDR.SAI.1 1 2 3 4 5 6
	 2 3 4 5 6 7 8 9 10 11 12 13
	....

The compilations produce these object files successfully:

	MFNTRP.REL.1
	MFOUT.REL.1
	MFPRE.REL.1
	MFRAST.REL.1
	MFSYS.REL.1

The compilation failures seem to be a dependency on source order, but
the directory has no .cmd or .mic files to automate the build, or any
documentation of how to do so.

There OUGHT to be a ps:<tex.tex> directory (or something similar) with
TeX in SAIL, but I don't have it, and I thus don't even know the names
that the files had.  I'm deeply chagrined and annoyed to have lost
this important part of history.  The DECUS PDP-10 software archive at

	http://pdp-10.trailing-edge.com/

does not have the METAFONT code, or as least the search-by-name box
does not find those files by name or by wildcard.  I tried *.sai, and
found only 89 files dating from 15-Dec-1975 to 30-Oct-1984, and none
of them appear to be TeX-related.  In my PDP-10 filesystem here, I
have 168 *.sai files.

Searches at http://www.google.com and http://www.archive.org/ found
nothing.

Does anyone on this list have any TeX/METAFONT material from the SAIL
days, and would be willing to make it available?  I also need the *.mf
files and *.tex files that made these systems usable: I have these
*.mf files in aps:<tex.old-mf.am>, and the command and documentation
files have enough info to generate fonts once I can get a working
mf.exe file:

	--fontlist.tex  font2160.ctl  iamsy8.tfm  lasy8.tfm             msym5.mf
	--mf-xref.txt   font2592.ctl  iamtt8.mf   lasy9.mf              msym6.mf
	--readme.txt    font3110.ctl  iamtt8.tfm  lasy9.tfm             msym7.mf
	00dir.cmd       font3732.ctl  icmbase.mf  lfonts.mic            msym8.mf
	00dir.lst       font528.ctl   iitalic.mf  line.mf               msym9.mf
	00tdir.cmd      font579.ctl   ilasy.mf    line10.mf             olddig.mf
	00tdir.lst      font590.ctl   ilasy8.mf   line10.tfm            punct.mf
	accent.mf       font694.ctl   ilasy8.tfm  linew10.mf            roman.mf
	calu.mf         font833.ctl   imathex.mf  linew10.tfm           romand.mf
	circle.mf       font912.ctl   iroman.mf   logo10.tfm            romanl.mf
	circle10.mf     gray.tfm      isroman.mf  logo8.tfm             romanp.mf
	circle10.tfm    greekl.mf     isymbol.mf  logosl10.tfm          romans.mf
	circlew10.mf    greeku.mf     itald.mf    make-1500-family.mic  romanu.mf
	circlew10.tfm   iaccent.mf    italic.mf   makeallsizes.mic      romlig.mf
	comlig.mf       iamex10.mf    italig.mf   makefont.mic          romms.mf
	cscset.mf       iamex10.tfm   itall.mf    manfnt.mf             romsub.mf
	dummy.tfm       iammi8.mf     italms.mf   manfnt.tfm            sfonts.ctl
	euf10.tfm       iammi8.tfm    italp.mf    manspe.mf             sfonts.mic
	euf7.tfm        iamssq8.mf    itals.mf    manspec.mf            spec.mf
	eufb12.tfm      iamssq8.tfm   lasy.mf     mathdl.mf             sroman.mf
	eufm12.tfm      iamssqi8.mf   lasy10.mf   mathex.mf             stip14.mf
	eul10.tfm       iamssqi8.tfm  lasy10.tfm  mathop.mf             stippl.mf
	eurb12.tfm      iamsss8.mf    lasy5.mf    msxm10.mf             sym.mf
	eurm12.tfm      iamsss8.tfm   lasy5.tfm   msxm5.mf              symbol.mf
	eusb12.tfm      iamsssb8.mf   lasy6.mf    msxm6.mf              texfonts.sub
	eusm12.tfm      iamsssb8.tfm  lasy6.tfm   msxm7.mf              texset.mf
	font1500.ctl    iamsssi8.mf   lasy7.mf    msxm8.mf
	font1643.ctl    iamsssi8.tfm  lasy7.tfm   msxm9.mf
	font1971.ctl    iamsy8.mf     lasy8.mf    msym10.mf

I can successfully build and run the Pascal versions of these
programs, as illustrated in Figures in the article that I posted a
note about earlier today.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
13-Jul-2005 15:46:13-PDT,1230;000000000000
Return-Path: <phil@ultimate.com>
Received: from sccrmhc11.comcast.net ([204.127.202.55]) by lingling.panda.com with TCP/SMTP; Wed, 13 Jul 2005 15:41:58 -0700 (PDT)
Received: from c-66-30-204-193.hsd1.ma.comcast.net ([66.30.204.193])
          by comcast.net (sccrmhc11) with ESMTP
          id <2005071322415201100il1ake>; Wed, 13 Jul 2005 22:41:53 +0000
Received: (from phil@localhost)
	by ultimate.com (8.13.4/8.13.4) id j6DMfpW9018473;
	Wed, 13 Jul 2005 18:41:51 -0400 (EDT)
Date: Wed, 13 Jul 2005 18:41:51 -0400 (EDT)
From: Phil Budne <phil@ultimate.com>
Message-Id: <200507132241.j6DMfpW9018473@ultimate.com>
To: beebe@math.utah.edu, tops-20@lingling.panda.com
Subject: Re:  PDP-10 history: seeking TeX sources in SAIL

> I am able to compile, some, but not all, of these files:
> 
> 	@compile mfbase.sai
> 	SAIL:   MFBASE.SAI.1 1
> 	START YOUR PROGRAM WITH BEGIN OR ENTRY - WILL SCAN FOR BEGIN.
> 	MFBASE.SAI.1, Page 1
> 	01000      internaldef
> 			       innput=0 # "input";
> 
> 	^
> 
> 	...

I suspect the 01000 is a "line squence number" or LSN, added by some
line editor (e.g. SOS).  Compilers knew to ignore them because they
had the low order bit (the one you've lost) set.....

phil
13-Jul-2005 15:56:28-PDT,6960;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Wed, 13 Jul 2005 15:52:53 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:uGzQREC1kFxJnW8Hp0W2V0po8kxnZmgH@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6DMqlAM025316;
	Wed, 13 Jul 2005 16:52:47 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:Cm6ruIG/LvrweNQHA+erTOzu6N0piS+8@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6DMqlm1008431;
	Wed, 13 Jul 2005 16:52:47 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j6DMqlK6008429;
	Wed, 13 Jul 2005 16:52:47 -0600 (MDT)
Date: Wed, 13 Jul 2005 16:52:47 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: News of mm
Message-ID: <CMM.0.92.0.1121295167.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine.math.utah.edu [128.110.198.2]); Wed, 13 Jul 2005 16:52:47 -0600 (MDT)

Back in 1986--1990, at Columbia University (CUCCA) Howie Kaye and
Andrew Lowry prepared ccmd, a C implementation of the TOPS-20 COMND%
JSYS.  With this code available, Chris Maio, Fuat Baran, Howie Kaye
and Melissa Metz translated Mark Crispin's mm from PDP-10 assembly
code to C, and so Columbia-MM was born.

We have used this code at Utah since at least 1990 on our Sun SunOS
and Solaris systems, but it is not been buildable on most other
flavors of Unix (we have 20+ in our software development lab).

In October 1998, I spent time examining the ccmd and mm code to see
whether I could make it 8-bit clean.  I wrote then:

>> ...
>> I make some experiments today in a several-hour-long session to see
>> whether mm could be made 8-bit clean, so that mail messages in the ISO
>> 8859-n character sets could be successfully sent and received.
>> 
>> In summary, the answer is a RESOUNDING NO!
>> 
>> Sadly, the assumptions about 7-bit characters run deep into both mm
>> and ccmd.  In ccmd.h, I tried moving the CC_QUO flag bit above the 8th
>> bit, but this breaks most code dealing with CC_QUO in ccmd, where
>> character strings are passed around as char* data, and it is assumed
>> that such data can be tested for the CC_QUO bit.
>> 
>> With ISO 8859-n becoming widespread, and Unicode increasingly common,
>> the lack of 8-bit (and eventually, 16-bit and 32-bit) character
>> support is going to make mm less and less desirable as a mail client.
>> 
>> This could be remedied by converting ccmd from char* to wchar_t* data
>> (wchar_t is typedef'ed to a 32-bit integer type in modern C
>> implementations).  However, the changes in ccmd, and then in mm, would
>> be rather extensive:
>> 
>> 	In ccmd:
>> 	% cat *.[ch] | grep -c 'char *[*]'
>> 	1040
>> 
>> 	In mm:
>> 	% cat *.[ch] | grep -c 'char *[*]'
>> 	1458
>> 
>> Obviously, a simple sed script could be used to change the char* data
>> types to wchar_t universally, but then all of the strxxx() functions
>> would have to be changed too:
>> 
>> 	In ccmd:
>> 	cat *.[ch] | egrep -c 'str[a-z0-9]+ *[(]'
>> 	383
>> 
>> 	In mm:
>> 	cat *.[ch] | egrep -c 'str[a-z0-9]+ *[(]'
>> 	585
>> 
>> and then all bitmasks would have to be carefully examined to see
>> whether further hidden assumptions of byte size were present, and all
>> I/O statements would have to be modified as well.
>> 
>> This is probably too big a project to tackle, given the many other
>> defiencies of the ccmd library.
>> 
>> This is further evidence of the desirability of a redesign in C++ (or
>> perhaps even Java!) to make the code independent of character-set
>> size, and much cleaner; there is altogether too much exposure of the
>> cmscb data structure in the code:
>> 
>> 	In ccmd:
>> 	cat *.[ch] | egrep -c 'cmcsb[.]'
>> 	762
>> 
>> 	In mm:
>> 	cat *.[ch] | egrep -c 'cmcsb[.]'
>> 	127
>> ...

It has bothered me ever since that ccmd and/or mm would not build on
most other flavors of Unix, and particularly, on GNU/Linux, which is
commonly present on personal and lab computers in our academic
computing environment.

When ccmd/mm failed to build on Sun Solaris 10, to which we are in the
process of migrating from Solaris 7, 8, and 9, it became urgent,
because for several of us, handling our large mail volume without mm
is utterly unthinkable.  [Yes, we have pine, emacs rmail, and several
others, and Mark Crispin and I had a long telephone conversation a
couple of months ago about the merits of various mail clients.]

In May of this year, I therefore spent more time on those packages,
primarily to get them working on Solaris 10.  I'm pleased to report
that I largely succeeded.  My README.mm-0.94 file records this:

>> ...
>> The Makefiles contain new solaris10 targets.
>> 
>> An additional extensive batch of updates on many other files produced
>> working versions of mm for the first time on GNU/Linux on these
>> architectures:
>> 
>> 	Alpha
>> 	AMD64
>> 	IA-32
>> 	IA-64
>> 	MIPS
>> 	PowerPC
>> 	SPARC
>> 
>> Also supported for the first time are:
>> 
>> 	FreeBSD 5.0 IA-32
>> 	NetBSD 1.6 IA-32
>> 	OpenBSD 3.2 IA-32
>> 	DEC OSF/1 4.0 Alpha 
>> 	Compaq OSF/1 5.2 Alpha 
>> ...

The last updates of ccmd and mm at ftp://kermit.columbia.edu/pub/mm/
are these files:

-rw-r--r--   1 staff       584592   Oct  9  2003   mm-ccmd-0.91-20031009.tar.gz
-rw-r--r--   1 staff       585297   Oct 17  2003   mm-ccmd-0.91-20031017.tar.gz

I am prepared to make mm-0.94 available privately on request to anyone
on this list, and could easily set up Web and FTP sites for it.
However, I'd prefer to have the new distribution available from
Columbia (Frank da Cruz, are you reading this?) so that there is one
definitive permanent source of ccmd + mm.

Web searches show that the programmers at Columbia who were involved
in the ccmd + mm effort have mostly moved on to new jobs, but Frank
and I are still around, and hope to be for many years yet.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
13-Jul-2005 16:39:07-PDT,4915;000000000000
Return-Path: <phil@ultimate.com>
Received: from rwcrmhc12.comcast.net ([216.148.227.85]) by lingling.panda.com with TCP/SMTP; Wed, 13 Jul 2005 16:34:35 -0700 (PDT)
Received: from c-66-30-204-193.hsd1.ma.comcast.net ([66.30.204.193])
          by comcast.net (rwcrmhc12) with ESMTP
          id <20050713231853014003644ne>; Wed, 13 Jul 2005 23:18:53 +0000
Received: (from phil@localhost)
	by ultimate.com (8.13.4/8.13.4) id j6DNIqSL019010;
	Wed, 13 Jul 2005 19:18:52 -0400 (EDT)
Date: Wed, 13 Jul 2005 19:18:52 -0400 (EDT)
From: Phil Budne <phil@ultimate.com>
Message-Id: <200507132318.j6DNIqSL019010@ultimate.com>
To: beebe@math.utah.edu, tops-20@lingling.panda.com
Subject: Re:  PDP-10 history, TeX, and Metafont

> and is available here in alternate formats:
> 
> 	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.pdf
> 	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.ps
> 	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.ps.gz

Some quick comments from reading the .pdf

Page 1002, section 3;

"Berkeley's Project Genie SDS 940"

Berkeley's Project Genie was a system which ran on the modified SDS
930 (which turned into the SDS 940).  It inspired TENEX.  Neither the
930 nor the 940 were PDP-10's.

"Compuserve 4S72"

Compuserve's system was derived from the PDP-6/10 Timesharing system
(which was later renamed TOPS-10).  4S72 refers to a version of the
PDP-6/10 Timesharing system.  I doubt the Compuserve folks thought
they were running 4S72.

Page 1004, figure 1.

The idiom you show (PUSHJ to litteral) is unfamiliar, and inefficient.

I would have written JRST to litteral, then returning with "JRST .+2"
(. retained the value from the outside of the litteral) instead of AOS
(P) + POPJ.  For the second block, use JRST, then JRST .+1 to return.

But I don't think I ever saw even this construct used, I think most
people would have written:

	CAIL	B, FOO
	 JRST	[ stuff here
		JRST blockend ]
	other stuff here
blockend:

Tho the simple case was popular.  Here is code from DIRECT.MAC
(the TOPS-10 DIR command):

        TXNE    T2,DV.TTA       ;SEE IF CONTROLLING TTY         [160]
        TROA    F,R.OUTO        ;YES--SET FLAG                  [160]
        JRST    [SKIPGE T1      ;UNLESS USER SET /SUM, FORCE SUMMARIES  [160]
                 MOVEI T1,1     ;  OK--SET SUMMARIES            [160]
                 JRST  .+1]     ;PROCEED                        [160]

Which shows the fun of skip chains.

Remember TRCE's in tripples (last TRCE never skips) for an idiom that
reverses two bits?

However, for every example is a counter-example.  Also from DIRECT.MAC:

        PUSHJ   P,[N$WARN (IS1,/ACCESS ignored in conjunction with /FIND)
                SETOM   S.ACCS  ;ZAPETH THE SWITCH
                POPJ    P,]     ;NO MORE /ACCESS
        SKIPLE  S.ACCT          ;OR /ACCOUNT?
        PUSHJ   P,[N$WARN (IF2,/ACCOUNT ignored in conjunction with /FIND)
                SETOM   S.ACCT  ;ZAPETH THE SWITCH
                POPJ    P,]     ;NO MORE /ACCOUNT
        SKIPLE  S.ALC           ;OR /ALLOCATE?
        PUSHJ   P,[N$WARN (IF3,/ALLOCATE ignored in conjunction with /FIND)
                SETOM   S.ALC   ;ZAPETH THE SWITCH
                POPJ    P,]     ;NO MORE /ACCOUNT
        SKIPLE  S.AUT           ;OR /AUTHOR?
        PUSHJ   P,[N$WARN (IF4,/AUTHOR ignored in conjunction with /FIND)
                SETOM   S.AUT   ;ZAPETH THE SWITCH
                POPJ    P,]     ;NO MORE /AUTHOR

But it seems foolish to do that extra pushing an popping.  The copy of
DIRECT I'm looking at has 41 JRST's to literals, and only 7 PUSHJ's.

However, The IF/THEN/ELSE construct *WAS* easy/popular when using the
TOPS-20 MACSYM.MAC IFSKP./ELSE./ENDIF. macros (also IFNSKP. ANSKP.);

This example at
www-mice.cs.ucl.ac.uk/multimedia/misc/tcp_ip/8601.mm.www/0217.html

         CALL TTSOBF ; Is output buffer full?
           IFSKP.
             CALL FRCPKT ; Yes, might as well send it now
           ELSE.
             CAIL T4,^D8 ; Looks like echoing?
             IFSKP.
               LOAD T1,QNEXT,<+TCBRXQ(TCB)> ; Yes, get RXQ
               CAIE T1,TCBRXQ(TCB) ; Is the retransmission queue empty?
             ANSKP.
               CALL FRCPKT ; Yes, queue for PZ promptly
             ELSE.
               MOVX T1,^D200 ; Output not full and not echoing, wait a bit
               CALL ENCPKT ; for more to output
             ENDIF.
           ENDIF. 
   >;IFN PANDASW 

Page 1007, figure 2.  Wouldn't DEK have seen back arrow instead of _?

Page 1009, figure 4.  Ditto CTRL/P and CTRL/Q

Glad to see examples of WEB source code, and weave typeset output, and
tangled PASCAL code...  I remember a DEK quote "I have come up with a
name for a new language... and I am now looking for a suitable
language to use it on" referred to WEB/TANGLE/WEAVE trio!

13-Jul-2005 17:02:52-PDT,5042;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine.math.utah.edu ([128.110.198.2]) by lingling.panda.com with TCP/SMTP; Wed, 13 Jul 2005 16:59:14 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:nSfOvr9ZTx6ZRNkOZrungoSW0JE1UZVD@psi.math.utah.edu [155.101.96.19])
	by sunshine.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6DNx8oK027353;
	Wed, 13 Jul 2005 17:59:08 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:PSMfb1hMW94KsFyQooOjmrceZPe6kJRY@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6DNx8wj008844;
	Wed, 13 Jul 2005 17:59:08 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j6DNx8Yw008842;
	Wed, 13 Jul 2005 17:59:08 -0600 (MDT)
Date: Wed, 13 Jul 2005 17:59:08 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: Phil Budne <phil@ultimate.com>
Cc: beebe@math.utah.edu, beebe@math.utah.edu, tops-20@lingling.panda.com
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: PDP-10 history: seeking TeX sources in SAIL
In-Reply-To: Your message of Wed, 13 Jul 2005 18:41:51 -0400 (EDT)
Message-ID: <CMM.0.92.0.1121299147.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine.math.utah.edu [128.110.198.2]); Wed, 13 Jul 2005 17:59:08 -0600 (MDT)

Phil Budne <phil@ultimate.com> comments on Wed, 13 Jul 2005 18:41:51-0400 (EDT) 
about my report of compilation failures of some of the Metafont
sources in SAIL:

>> ...
>> >       @compile mfbase.sai
>> >       SAIL:   MFBASE.SAI.1 1
>> >       START YOUR PROGRAM WITH BEGIN OR ENTRY - WILL SCAN FOR BEGIN.
>> >       MFBASE.SAI.1, Page 1
>> >       01000      internaldef
>> >                              innput=0 # "input";
>> >       ^
>>
>> I suspect the 01000 is a "line squence number" or LSN, added by some
>> line editor (e.g. SOS). 
>> ...

No, none of the SAIL sources have EDIT/SOS line numbers in them,
confirmed by Emacs both on Unix and on TOPS-20.  The mf*.sai files
were only transferred from Unix to TOPS-20 this afternoon.  

I think the issue is macro definitions, like this line from
mfhdr.sai:94

	define internaldef = comment #

That file begins

	comment The following declarations are used in all of METAFONT's modules.
	Only brief explanatory comments appear here -- fuller documentation appears
	in each individual module.

	This page lists several standard abbreviation conventions.
	The next four pages include declarations of everything external that is
	internal to MFSYS, MFNTRP, MFRAST, MFOUT, respectively;

Combining files doesn't help:

	@append mfhdr.sai, mfbase.sai foo3.sai
	 MFHDR.SAI.1 [OK]
	 MFBASE.SAI.1 [OK]

	@compile foo3.sai
	SAIL:   FOO3.SAI.1 1
	START YOUR PROGRAM WITH BEGIN OR ENTRY - WILL SCAN FOR BEGIN.
	FOO3.SAI.1, Page 1
	00900      require
			   "^P^Q^P^Q" delimiters; "used for macros"

	^

The 5 digit line numbers are being generated by SAIL: the error in
foo3.sai is at line 9 when I view that file in emacs.

It is of course possible that the SAIL compiler on WAITS would have
compiled the code, but not the one on TOPS-20, but I'm pretty sure
that we could run the SAIL versions just fine on TOPS-20.  However, I
don't know whether I ever built them from source code, or just
downloaded working mf.exe and tex.exe files over the ARPANET link at
UTAH-20.ARPA (aka today cs.utah.edu).

Here is the compiler version that I have:

	@get sys:sail

	@i ver
	 Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4
	 PANDA TOPS-20 Command processor 7.1(4453)-4
	 Program is SAIL, version is 23(21)-1

	@vdir sys:sail.exe

	   TOPS20:<SAIL>
	 SAIL.EXE.2;P777752        99 50688(36)   6-May-82 10:26:13 MRC       

	 Total of 99 pages in 1 file

The <SAIL> directory does not have compiler sources, and a recursive
listing of <*>*.*.* turns up only 29 *.sai files and 6 sai*.* files.

In the meantime, I'm going to experiment with writing some small tests
in SAIL myself.  Fortunately, I have the Newman & Sproull book
``Principles of Interactive Computer Graphics'' (1973) here on my
shelf with an appendix containing a SAIL reference manual and a
tutorial on LEAP data structures (associative arrays).

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
13-Jul-2005 17:58:09-PDT,5549;000000000000
Return-Path: <wex@changing-leaves.com>
Received: from rwcrmhc11.comcast.net ([204.127.198.35]) by lingling.panda.com with TCP/SMTP; Wed, 13 Jul 2005 17:53:34 -0700 (PDT)
Received: from [10.0.1.2] (c-24-91-108-249.hsd1.ma.comcast.net[24.91.108.249])
          by comcast.net (rwcrmhc11) with ESMTP
          id <20050714005329013002t2ive>; Thu, 14 Jul 2005 00:53:30 +0000
Mime-Version: 1.0
X-Sender: pwex@mail.comcast.net
Message-Id: <p06110405befb6763d07f@[10.0.1.2]>
In-Reply-To: <200507132318.j6DNIqSL019010@ultimate.com>
References: <200507132318.j6DNIqSL019010@ultimate.com>
Date: Wed, 13 Jul 2005 20:53:23 -0400
To: Phil Budne <phil@ultimate.com>, beebe@math.utah.edu,
 tops-20@lingling.panda.com
From: P&G Wexelblat <wex@changing-leaves.com>
Subject: Re:  PDP-10 history, TeX, and Metafont
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

Prior to being "TOPS-10" the OS was just referred to as the monitor (no caps)

As I remember, BBN got their 940 because of repeated delays on their 
desired Sigma 7



At 7:18 PM -0400 7/13/05, Phil Budne wrote:
>  > and is available here in alternate formats:
>>
>>	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.pdf
>>	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.ps
>>	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.ps.gz
>
>Some quick comments from reading the .pdf
>
>Page 1002, section 3;
>
>"Berkeley's Project Genie SDS 940"
>
>Berkeley's Project Genie was a system which ran on the modified SDS
>930 (which turned into the SDS 940).  It inspired TENEX.  Neither the
>930 nor the 940 were PDP-10's.
>
>"Compuserve 4S72"
>
>Compuserve's system was derived from the PDP-6/10 Timesharing system
>(which was later renamed TOPS-10).  4S72 refers to a version of the
>PDP-6/10 Timesharing system.  I doubt the Compuserve folks thought
>they were running 4S72.
>
>Page 1004, figure 1.
>
>The idiom you show (PUSHJ to litteral) is unfamiliar, and inefficient.
>
>I would have written JRST to litteral, then returning with "JRST .+2"
>(. retained the value from the outside of the litteral) instead of AOS
>(P) + POPJ.  For the second block, use JRST, then JRST .+1 to return.
>
>But I don't think I ever saw even this construct used, I think most
>people would have written:
>
>	CAIL	B, FOO
>	 JRST	[ stuff here
>		JRST blockend ]
>	other stuff here
>blockend:
>
>Tho the simple case was popular.  Here is code from DIRECT.MAC
>(the TOPS-10 DIR command):
>
>         TXNE    T2,DV.TTA       ;SEE IF CONTROLLING TTY         [160]
>         TROA    F,R.OUTO        ;YES--SET FLAG                  [160]
>         JRST    [SKIPGE T1      ;UNLESS USER SET /SUM, FORCE SUMMARIES  [160]
>                  MOVEI T1,1     ;  OK--SET SUMMARIES            [160]
>                  JRST  .+1]     ;PROCEED                        [160]
>
>Which shows the fun of skip chains.
>
>Remember TRCE's in tripples (last TRCE never skips) for an idiom that
>reverses two bits?
>
>However, for every example is a counter-example.  Also from DIRECT.MAC:
>
>         PUSHJ   P,[N$WARN (IS1,/ACCESS ignored in conjunction with /FIND)
>                 SETOM   S.ACCS  ;ZAPETH THE SWITCH
>                 POPJ    P,]     ;NO MORE /ACCESS
>         SKIPLE  S.ACCT          ;OR /ACCOUNT?
>         PUSHJ   P,[N$WARN (IF2,/ACCOUNT ignored in conjunction with /FIND)
>                 SETOM   S.ACCT  ;ZAPETH THE SWITCH
>                 POPJ    P,]     ;NO MORE /ACCOUNT
>         SKIPLE  S.ALC           ;OR /ALLOCATE?
>         PUSHJ   P,[N$WARN (IF3,/ALLOCATE ignored in conjunction with /FIND)
>                 SETOM   S.ALC   ;ZAPETH THE SWITCH
>                 POPJ    P,]     ;NO MORE /ACCOUNT
>         SKIPLE  S.AUT           ;OR /AUTHOR?
>         PUSHJ   P,[N$WARN (IF4,/AUTHOR ignored in conjunction with /FIND)
>                 SETOM   S.AUT   ;ZAPETH THE SWITCH
>                 POPJ    P,]     ;NO MORE /AUTHOR
>
>But it seems foolish to do that extra pushing an popping.  The copy of
>DIRECT I'm looking at has 41 JRST's to literals, and only 7 PUSHJ's.
>
>However, The IF/THEN/ELSE construct *WAS* easy/popular when using the
>TOPS-20 MACSYM.MAC IFSKP./ELSE./ENDIF. macros (also IFNSKP. ANSKP.);
>
>This example at
>www-mice.cs.ucl.ac.uk/multimedia/misc/tcp_ip/8601.mm.www/0217.html
>
>          CALL TTSOBF ; Is output buffer full?
>            IFSKP.
>              CALL FRCPKT ; Yes, might as well send it now
>            ELSE.
>              CAIL T4,^D8 ; Looks like echoing?
>              IFSKP.
>                LOAD T1,QNEXT,<+TCBRXQ(TCB)> ; Yes, get RXQ
>                CAIE T1,TCBRXQ(TCB) ; Is the retransmission queue empty?
>              ANSKP.
>                CALL FRCPKT ; Yes, queue for PZ promptly
>              ELSE.
>                MOVX T1,^D200 ; Output not full and not echoing, wait a bit
>                CALL ENCPKT ; for more to output
>              ENDIF.
>            ENDIF.
>    >;IFN PANDASW
>
>Page 1007, figure 2.  Wouldn't DEK have seen back arrow instead of _?
>
>Page 1009, figure 4.  Ditto CTRL/P and CTRL/Q
>
>Glad to see examples of WEB source code, and weave typeset output, and
>tangled PASCAL code...  I remember a DEK quote "I have come up with a
>name for a new language... and I am now looking for a suitable
>language to use it on" referred to WEB/TANGLE/WEAVE trio!


-- 
P.M. Wexelblat PhD
Dept. of Computer Science
University of Massachusetts Lowell
One University Ave
Lowell, MA 01854
13-Jul-2005 18:02:21-PDT,12395;000000000000
Return-Path: <wex@cs.uml.edu>
Received: from sccrmhc13.comcast.net ([204.127.202.64]) by lingling.panda.com with TCP/SMTP; Wed, 13 Jul 2005 17:55:04 -0700 (PDT)
Received: from [10.0.1.2] (c-24-91-108-249.hsd1.ma.comcast.net[24.91.108.249])
          by comcast.net (sccrmhc13) with ESMTP
          id <2005071400545701300aqeo5e>; Thu, 14 Jul 2005 00:54:59 +0000
Mime-Version: 1.0
X-Sender:  (Unverified)
Message-Id: <p06110406befb68510860@[10.0.1.2]>
In-Reply-To: <CMM.0.92.0.1121299147.beebe@psi.math.utah.edu>
References: <CMM.0.92.0.1121299147.beebe@psi.math.utah.edu>
Date: Wed, 13 Jul 2005 20:54:55 -0400
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>,
 Phil Budne <phil@ultimate.com>
From: Paul Wexelblat <wex@cs.uml.edu>
Subject: Re: PDP-10 history: seeking TeX sources in SAIL
Cc: beebe@math.utah.edu, tops-20@lingling.panda.com
Content-Type: multipart/alternative; boundary="============_-1090819997==_ma============"

--============_-1090819997==_ma============
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

Prior to being "TOPS-10" the OS was just referred to as the monitor (no caps)

As I remember, BBN got their 940 because of repeated delays on their 
desired Sigma 7




At 5:59 PM -0600 7/13/05, Nelson H. F. Beebe wrote:
>Phil Budne <phil@ultimate.com> comments on Wed, 13 Jul 2005 
>18:41:51-0400 (EDT)
>about my report of compilation failures of some of the Metafont
>sources in SAIL:
>
>>>  ...
>>>  >       @compile mfbase.sai
>>>  >       SAIL:   MFBASE.SAI.1 1
>>>  >       START YOUR PROGRAM WITH BEGIN OR ENTRY - WILL SCAN FOR BEGIN.
>>>  >       MFBASE.SAI.1, Page 1
>>>  >       01000      internaldef
>>>  >                              innput=0 # "input";
>>>  >       ^
>>>
>>>  I suspect the 01000 is a "line squence number" or LSN, added by some
>>>  line editor (e.g. SOS).
>>>  ...
>
>No, none of the SAIL sources have EDIT/SOS line numbers in them,
>confirmed by Emacs both on Unix and on TOPS-20.  The mf*.sai files
>were only transferred from Unix to TOPS-20 this afternoon. 
>
>I think the issue is macro definitions, like this line from
>mfhdr.sai:94
>
>	define internaldef = comment #
>
>That file begins
>
>	comment The following declarations are used in all of 
>METAFONT's modules.
>	Only brief explanatory comments appear here -- fuller 
>documentation appears
>	in each individual module.
>
>	This page lists several standard abbreviation conventions.
>	The next four pages include declarations of everything external that is
>	internal to MFSYS, MFNTRP, MFRAST, MFOUT, respectively;
>
>Combining files doesn't help:
>
>	@append mfhdr.sai, mfbase.sai foo3.sai
>	 MFHDR.SAI.1 [OK]
>	 MFBASE.SAI.1 [OK]
>
>	@compile foo3.sai
>	SAIL:   FOO3.SAI.1 1
>	START YOUR PROGRAM WITH BEGIN OR ENTRY - WILL SCAN FOR BEGIN.
>	FOO3.SAI.1, Page 1
>	00900      require
>			   "^P^Q^P^Q" delimiters; "used for macros"
>
>	^
>
>The 5 digit line numbers are being generated by SAIL: the error in
>foo3.sai is at line 9 when I view that file in emacs.
>
>It is of course possible that the SAIL compiler on WAITS would have
>compiled the code, but not the one on TOPS-20, but I'm pretty sure
>that we could run the SAIL versions just fine on TOPS-20.  However, I
>don't know whether I ever built them from source code, or just
>downloaded working mf.exe and tex.exe files over the ARPANET link at
>UTAH-20.ARPA (aka today cs.utah.edu).
>
>Here is the compiler version that I have:
>
>	@get sys:sail
>
>	@i ver
>	 Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4
>	PANDA TOPS-20 Command processor 7.1(4453)-4
>	 Program is SAIL, version is 23(21)-1
>
>	@vdir sys:sail.exe
>
>	   TOPS20:<SAIL>
>	 SAIL.EXE.2;P777752        99 50688(36)   6-May-82 10:26:13 MRC      
>
>	 Total of 99 pages in 1 file
>
>The <SAIL> directory does not have compiler sources, and a recursive
>listing of <*>*.*.* turns up only 29 *.sai files and 6 sai*.* files.
>
>In the meantime, I'm going to experiment with writing some small tests
>in SAIL myself.  Fortunately, I have the Newman & Sproull book
>``Principles of Interactive Computer Graphics'' (1973) here on my
>shelf with an appendix containing a SAIL reference manual and a
>tutorial on LEAP data structures (associative arrays).
>
>-------------------------------------------------------------------------------
>- Nelson H. F. Beebe                    Tel: +1 801 581 5254 
>-
>- University of Utah                    FAX: +1 801 581 4148 
>-
>- Department of Mathematics, 110 LCB    Internet e-mail: 
>beebe@math.utah.edu  -
>- 155 S 1400 E RM 233                       beebe@acm.org 
>beebe@computer.org -
>- Salt Lake City, UT 84112-0090, USA    URL: 
>http://www.math.utah.edu/~beebe  -
>-------------------------------------------------------------------------------


-- 
P.M. Wexelblat PhD
Dept. of Computer Science
University of Massachusetts Lowell
One University Ave
Lowell, MA 01854
--============_-1090819997==_ma============
Content-Type: text/html; charset="us-ascii"

<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
 --></style><title>Re: PDP-10 history: seeking TeX sources in
SAIL</title></head><body>
<div>Prior to being &quot;TOPS-10&quot; the OS was just referred to as
the monitor (no caps)</div>
<div><br></div>
<div>As I remember, BBN got their 940 because of repeated delays on
their desired Sigma 7</div>
<div><br></div>
<div><br></div>
<div><br></div>
<div><br></div>
<div>At 5:59 PM -0600 7/13/05, Nelson H. F. Beebe wrote:</div>
<blockquote type="cite" cite>Phil Budne &lt;phil@ultimate.com&gt;
comments on Wed, 13 Jul 2005 18:41:51-0400 (EDT)<br>
about my report of compilation failures of some of the Metafont<br>
sources in SAIL:<br>
<br>
&gt;&gt; ...<br>
&gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @compile
mfbase.sai<br>
&gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAIL:&nbsp;&nbsp;
MFBASE.SAI.1 1<br>
&gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; START YOUR PROGRAM
WITH BEGIN OR ENTRY - WILL SCAN FOR BEGIN.<br>
&gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MFBASE.SAI.1, Page
1<br>
&gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
01000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; internaldef<br>
&gt;&gt;
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; innput=0 #
&quot;input&quot;;<br>
&gt;&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^<br>
&gt;&gt;<br>
&gt;&gt; I suspect the 01000 is a &quot;line squence number&quot; or
LSN, added by some<br>
&gt;&gt; line editor (e.g. SOS).<br>
&gt;&gt; ...<br>
<br>
No, none of the SAIL sources have EDIT/SOS line numbers in them,<br>
confirmed by Emacs both on Unix and on TOPS-20.&nbsp; The mf*.sai
files<br>
were only transferred from Unix to TOPS-20 this afternoon.&nbsp;<br>
<br>
I think the issue is macro definitions, like this line from<br>
mfhdr.sai:94<br>
<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>define internaldef
= comment #<br>
<br>
That file begins<br>
<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>comment The
following declarations are used in all of METAFONT's modules.<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>Only brief
explanatory comments appear here -- fuller documentation appears<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>in each individual module.<br>
<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>This page lists several
standard abbreviation conventions.<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>The next four pages
include declarations of everything external that is<br>
<x-tab> </x-tab>internal to MFSYS, MFNTRP, MFRAST, MFOUT,
respectively;<br>
<br>
Combining files doesn't help:<br>
<br>
<x-tab>&nbsp;&nbsp;&nbsp; </x-tab>@append mfhdr.sai, mfbase.sai
foo3.sai<br>
<x-tab>&nbsp; </x-tab> MFHDR.SAI.1 [OK]<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab> MFBASE.SAI.1
[OK]<br>
<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>@compile foo3.sai<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>SAIL:&nbsp;&nbsp;
FOO3.SAI.1 1<br>
<x-tab>&nbsp;&nbsp;&nbsp; </x-tab>START YOUR PROGRAM WITH BEGIN OR
ENTRY - WILL SCAN FOR BEGIN.<br>
<x-tab>&nbsp;&nbsp; </x-tab>FOO3.SAI.1, Page 1<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</x-tab>00900&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; require<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</x-tab>&nbsp;&nbsp; &quot;^P^Q^P^Q&quot; delimiters; &quot;used for
macros&quot;<br>
<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>^<br>
<br>
The 5 digit line numbers are being generated by SAIL: the error in<br>
foo3.sai is at line 9 when I view that file in emacs.<br>
<br>
It is of course possible that the SAIL compiler on WAITS would
have<br>
compiled the code, but not the one on TOPS-20, but I'm pretty sure<br>
that we could run the SAIL versions just fine on TOPS-20.&nbsp;
However, I<br>
don't know whether I ever built them from source code, or just<br>
downloaded working mf.exe and tex.exe files over the ARPANET link
at<br>
UTAH-20.ARPA (aka today cs.utah.edu).<br>
<br>
Here is the compiler version that I have:<br>
<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>@get sys:sail<br>
<br>
<x-tab>&nbsp;&nbsp; </x-tab>@i ver<br>
<x-tab>&nbsp; </x-tab> Panda Distribution, PANDA TOPS-20 Monitor
7.1(21733)-4<br>
<x-tab> </x-tab>PANDA TOPS-20 Command processor 7.1(4453)-4<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp; </x-tab> Program is SAIL, version is
23(21)-1<br>
<br>
<x-tab>&nbsp;&nbsp; </x-tab>@vdir sys:sail.exe<br>
<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>&nbsp;&nbsp;
TOPS20:&lt;SAIL&gt;<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>
SAIL.EXE.2;P777752&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 99
50688(36)&nbsp;&nbsp; 6-May-82 10:26:13
MRC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
<x-tab>&nbsp;&nbsp; </x-tab> Total of 99 pages in 1 file<br>
<br>
The &lt;SAIL&gt; directory does not have compiler sources, and a
recursive<br>
listing of &lt;*&gt;*.*.* turns up only 29 *.sai files and 6 sai*.*
files.<br>
<br>
In the meantime, I'm going to experiment with writing some small
tests<br>
in SAIL myself.&nbsp; Fortunately, I have the Newman &amp; Sproull
book<br>
``Principles of Interactive Computer Graphics'' (1973) here on my<br>
shelf with an appendix containing a SAIL reference manual and a<br>
tutorial on LEAP data structures (associative arrays).<br>
<br>
---------------------------------------------------------------------<span
></span>----------<br>
- Nelson H. F.
Beebe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tel: +1
801 581
5254&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -<br>
- University of
Utah&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FAX: +1
801 581
4148&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -<br>
- Department of Mathematics, 110 LCB&nbsp;&nbsp;&nbsp; Internet
e-mail: beebe@math.utah.edu&nbsp; -<br>
- 155 S 1400 E RM
233&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
beebe@acm.org&nbsp; beebe@computer.org -<br>
- Salt Lake City, UT 84112-0090, USA&nbsp;&nbsp;&nbsp; URL:
http://www.math.utah.edu/~beebe&nbsp; -<br>
---------------------------------------------------------------------<span
></span>----------</blockquote>
<div><br></div>
<div><br></div>
<x-sigsep><pre>-- 
</pre></x-sigsep>
<div>P.M. Wexelblat PhD<br>
Dept. of Computer Science<br>
University of Massachusetts Lowell<br>
One University Ave<br>
Lowell, MA 01854</div>
</body>
</html>
--============_-1090819997==_ma============--
14-Jul-2005 00:07:02-PDT,1450;000000000000
Return-Path: <kz@kz.kz>
Received: from YALLA.kz.kz ([82.182.137.68]) by lingling.panda.com with TCP/SMTP; Thu, 14 Jul 2005 00:02:30 -0700 (PDT)
Received: from [127.0.0.1] (DHCP-100 [192.168.0.100])
	by YALLA.kz.kz (8.9.2/) with ESMTP id IAA99626;
	Thu, 14 Jul 2005 08:58:44 +0200 (CEST)
	(envelope-from kz@kz.kz)
Message-ID: <42D60DFB.4040901@kz.kz>
Date: Thu, 14 Jul 2005 09:02:19 +0200
From: Klaus Zeuge <kz@kz.kz>
User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
CC: tops-20@lingling.panda.com
Subject: Re: PDP-10 history: seeking TeX sources in SAIL
References: <CMM.0.92.0.1121299147.beebe@psi.math.utah.edu>
In-Reply-To: <CMM.0.92.0.1121299147.beebe@psi.math.utah.edu>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Nelson H. F. Beebe wrote:

> In the meantime, I'm going to experiment with writing some small tests
> in SAIL myself.  Fortunately, I have the Newman & Sproull book
> ``Principles of Interactive Computer Graphics'' (1973) here on my
> shelf with an appendix containing a SAIL reference manual and a
> tutorial on LEAP data structures (associative arrays).



I only have the second edition of said book, from 1981. (The eleventh 
printing from 1984). Unfortunatly, those appendixes seem to have been 
dropped. Bad luck for me.

	Klaus Zeuge



14-Jul-2005 07:15:32-PDT,4696;000000000000
Return-Path: <fdc@columbia.edu>
Received: from sesame.cc.columbia.edu ([128.59.59.56]) by lingling.panda.com with TCP/SMTP; Thu, 14 Jul 2005 07:11:35 -0700 (PDT)
Received: from sesame.cc.columbia.edu (localhost [127.0.0.1])
	by sesame.cc.columbia.edu (8.13.0/8.13.0) with ESMTP id j6EEBQ1J027949;
	Thu, 14 Jul 2005 10:11:26 -0400 (EDT)
Received: (from fdc@localhost)
	by sesame.cc.columbia.edu (8.13.0/8.12.8/Submit) id j6EEBQBl027948;
	Thu, 14 Jul 2005 10:11:26 -0400 (EDT)
Date: Thu, 14 Jul 2005 10:11:26 EDT
From: Frank da Cruz <fdc@columbia.edu>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Cc: tops-20@lingling.panda.com, beebe@math.utah.edu
Subject: Re: News of mm
In-Reply-To: <CMM.0.92.0.1121295167.beebe@psi.math.utah.edu>
Message-ID: <CMM.0.91.0.1121350286.fdc@sesame>

> Back in 1986--1990, at Columbia University (CUCCA) Howie Kaye and
> Andrew Lowry prepared ccmd, a C implementation of the TOPS-20 COMND%
> JSYS.  With this code available, Chris Maio, Fuat Baran, Howie Kaye
> and Melissa Metz translated Mark Crispin's mm from PDP-10 assembly
> code to C, and so Columbia-MM was born.
> 
> We have used this code at Utah since at least 1990 on our Sun SunOS
> and Solaris systems, but it is not been buildable on most other
> flavors of Unix (we have 20+ in our software development lab).
> 
As you noted further down, I use it too, and until I received this note,
thought that I was the only one touching the code any more.

On a historical note, I was the manager of the group that wrote CMM but
I didn't work on the code then because I was too busy with Kermit :-)
Ironically, although Kermit has a COMD-like interface I never picked up
CCMD because (a) it wasn't ready in time and (b) by the time it was ready
it was too big and seemed like overkill.  After that I kept working on
my stuff, adding variables and whatnot, until there was no going back.
CCMD definitely is more authentic though :-)

> In October 1998, I spent time examining the ccmd and mm code to see
> whether I could make it 8-bit clean.  I wrote then:
> 
I went through this too a couple years ago and gave up because, as you
found, the problem is deep, deep down.  In those days, it wasn't a problem.
If I'm not mistaken, they used the 8th bit as some kind of flag, so
converting to data was going to break something else.  I would have kept
pursuing it but I found a workaround, which I use many times every day,
that is described here:

  ftp://kermit.columbia.edu/kermit/mm/release-0.91.txt

Basically, if you always use the editor (EMACS in my case), you can compose
8-bit messages all you want.  Reading them was never a problem.

> It has bothered me ever since that ccmd and/or mm would not build on
> most other flavors of Unix, and particularly, on GNU/Linux, which is
> commonly present on personal and lab computers in our academic
> computing environment.
> 
Over the last few years, I've been building it on Linux, OpenBSD, and
NetBSD.  I tried some other builds (HP-UX, AIX, Tru64, etc) without success
but didn't have time to pursue them.

> When ccmd/mm failed to build on Sun Solaris 10, to which we are in the
> process of migrating from Solaris 7, 8, and 9, it became urgent,
> because for several of us, handling our large mail volume without mm
> is utterly unthinkable.
>
Me too.  CMM is still my one and only mail client and I hope I won't ever
have to switch.

> [Yes, we have pine, emacs rmail, and several
> others, and Mark Crispin and I had a long telephone conversation a
> couple of months ago about the merits of various mail clients.]
> 
Ditto.

> The last updates of ccmd and mm at ftp://kermit.columbia.edu/pub/mm/
> are these files:
> 
> -rw-r--r--   1 staff   584592   Oct  9  2003   mm-ccmd-0.91-20031009.tar.gz
> -rw-r--r--   1 staff   585297   Oct 17  2003   mm-ccmd-0.91-20031017.tar.gz
> 
> I am prepared to make mm-0.94 available privately on request to anyone
> on this list, and could easily set up Web and FTP sites for it.
> However, I'd prefer to have the new distribution available from
> Columbia (Frank da Cruz, are you reading this?) so that there is one
> definitive permanent source of ccmd + mm.
> 
Yes indeed; I'll pick it up as soon as I have a chance.  (I'm doing the
work of 7 people these days, it's hard to keep up.)

> Web searches show that the programmers at Columbia who were involved
> in the ccmd + mm effort have mostly moved on to new jobs, but Frank
> and I are still around, and hope to be for many years yet.
> 
Hear hear!  (Besides me, another one of the original team remains, but
doesn't have time to work on MM any more.)

- Frank
14-Jul-2005 08:40:27-PDT,5080;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine2.math.utah.edu ([155.101.96.3]) by lingling.panda.com with TCP/SMTP; Thu, 14 Jul 2005 08:36:11 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:tNGhBSoCsDjA0knaOkYuDznutEULN80o@psi.math.utah.edu [155.101.96.19])
	by sunshine2.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6EFZxvv021043;
	Thu, 14 Jul 2005 09:35:59 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:++y3ILKESlEdw+0Tw3Vladq0hGuwqD19@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6EFZxhP018149;
	Thu, 14 Jul 2005 09:35:59 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j6EFZxr6018148;
	Thu, 14 Jul 2005 09:35:59 -0600 (MDT)
Date: Thu, 14 Jul 2005 09:35:59 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: Klaus Zeuge <kz@kz.kz>, tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: PDP-10 history: seeking TeX sources in SAIL [+ remarks on Algol
        60, SAIL, and Bliss]
In-Reply-To: Your message of Thu, 14 Jul 2005 09:02:19 +0200
Message-ID: <CMM.0.92.0.1121355359.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine2.math.utah.edu [155.101.96.3]); Thu, 14 Jul 2005 09:35:59 -0600 (MDT)

Klaus Zeuge <kz@kz.kz> comments on my posting yesterday mentioning a
SAIL description in a book:

>> I only have the second edition of said book, from 1981. [Newman & Sproull]
>> ... Unfortunately, those appendixes seem to have been dropped. Bad luck for me.

Yes, the two editions are very different books.  Page xv of the
preface of the second edition says

	... program examples are now written in \textsc{Pascal}, a
	somewhat better-known language than \textsc{Sail}, whose use
	in the first edition necessitated the inclusion of a 20-page
	user's manual!

Since my posting yesterday, I've successfully written some short
(approx. 20 lines) programs in Algol 60 and SAIL on TOPS-20 to compute
the machine epsilon, underflow and overflow behavior, and Fibonacci
sequences.

In Algol 60, underflow wraps to overflow and the program is terminated
with a message and a transfer to a debugger:

	@execute ufl.alg
	ALGOL: UFL
	LINK:   Loading
	[LNKXCT UFL execution]
		  -1  5.0000000& -1
		  -2  2.5000000& -1
		  -3  1.2500000& -1
	...
		-127  5.8774718&-39
		-128  2.9387359&-39
		-129  1.4693679&-39


	?Run-time error at address 000156
	FLOATING POINT OVERFLOW

	On line 7 in module UFL
	in main program, level 0.1
	>> ^C

Notice that the overflow detection happened AFTER the underflow
wrapped around, so the trap message is misleading until you understand
what happened.

The overflow test program also reported "FLOATING POINT OVERFLOW",
although based on previous experience, one might have expected an
underflow report instead

Interestingly, Algol 60 is one of the few languages that detected
integer overflow in the Fibonacci test: see

	http://www.math.utah.edu/~beebe/software/java/fibonacci/

In SAIL, I discovered by experiment that double precision support in
the form of LONG REAL declarations was added to the language after the
Newman & Sproull book was published.

Unlike in Algol 60 on TOPS-20, in SAIL, floating-point underflow and
overflow silently wrap around without being caught (just as I reported
on this list in January for kcc-20).  This behavior makes
floating-point arithmetic unsafe in both SAIL and C.  I have not
abandoned my floating-point work in C on TOPS-20, but have been
working on a broad range of infrastructure issues that affect multiple
platforms in my software projects.

I attempted to do similar tests with Bliss, but even a simple "hello,
world" program is currently beyond me.  I've skimmed about 1000 pages
of two DEC Bliss manuals, and found that the tutio package should
provide the needed I/O library support:

	@type hello.bli
	MODULE main=
	BEGIN
	    REQUIRE 'TUTIO'; ! Missing on KLH10

	    TTY_PUT_QUO('Hello world from Bliss.');
	END
	ELUDOM

While our PANDA distribution has TOPS20:<DOCUMENTATION>TUTIO.HLP,
there are no other tutio.* files anywhere in the filesystem.  A google
search to find tutio.bli was unsuccessful.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
16-Jul-2005 18:41:22-PDT,3319;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine2.math.utah.edu ([155.101.96.3]) by lingling.panda.com with TCP/SMTP; Sat, 16 Jul 2005 18:37:15 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:gyfaYynHcMBQYMBGAsDqxM1UzAtbGDKd@psi.math.utah.edu [155.101.96.19])
	by sunshine2.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6H1b1ER010083;
	Sat, 16 Jul 2005 19:37:01 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:VtobDWjElHzH6kRtTfqMd8SqpiIp9J8/@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j6H1b0WU004341;
	Sat, 16 Jul 2005 19:37:01 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j6H1b0LG004340;
	Sat, 16 Jul 2005 19:37:00 -0600 (MDT)
Date: Sat, 16 Jul 2005 19:37:00 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: PDP-10 history, TeX, and Metafont
Message-ID: <CMM.0.92.0.1121564220.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine2.math.utah.edu [155.101.96.3]); Sat, 16 Jul 2005 19:37:01 -0600 (MDT)

Thanks to everyone who responded, both on-list and off-list, to my
posting of Wed, 13 Jul 2005 15:23:18 -0600 (MDT) about my keynote
address at the Practical TeX 2005 conference in Chapel Hill, NC, June
14--17, 2005.

I've made a few tweaks to correct errors and clarify the Ctl-P/Ctl-Q
delimiters, and shortened a couple of bibliography item notes to keep
the document on exactly 19 pages.  The Wednesday version is already in
the google database.

The updated PDF file is at the same location as before:

	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.pdf

I have not yet begun to edit the slides to repair errors and update
them for my talk next month in Wuhan, China, so the pt2005-slides.pdf
file has not yet been updated.

I elected not to change the PDP-10 assembly code example, because it
is reproduced verbatim from the cited source.  Ralph Gorin kindly
supplied some comments which have not yet been addressed; I'll see
whether the editors will let me make another small update on Monday.

There is still uncertainty about "Online Services" vs. "On-Line
Systems"; I was told the former by an Irish friend who actually worked
on OLS-10 in London in the 1970s.  However, I cannot confirm from
google searches which company OLS-10 belonged to.  If anyone can shed
some light on this point, I would be grateful.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
17-Jul-2005 23:20:44-PDT,2793;000000000000
Mail-From: MRC created at 17-Jul-2005 23:16:52
Date: Sun, 17 Jul 2005 23:16:52 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: new version of MAISER (TOPS-20 SMTP server)
To: TOPS-20@lingling.panda.com
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14042860541.16.MRC@lingling.panda.com>

I got fed up with receiving EBay phish spams on my TOPS-20 system
(curse the cretin who thought that it was "alright" to forward
TOPS-20 mail to netnews!) and so I decided it was time to make
MAISER's anti-spam features a bit stronger.

As of today, the following anti-spam features are in MAISER,
along with the following defaults set in the BUILD-MM.CTL file
(so the <MM.BINARIES>MAISER.EXE and SYSTEM:MAISER.EXE files no
longer are set differently).

$ASRES	when set non-zero, MAISER will reject any SMTP client
	whose IP address does not resolve with a PTR record to
	a name.  Defaults to 1 (set).

$ASRCP	when set non-zero, MAISER will not verify a name in RCPT,
	thus foiling dictionary attacks.  This is usually a bad
	idea because it will cause a bounce, possibly to some
	other address, and thus can be used to spam.  Defaults
	to 0 (NOT set).

$ASVFY	when set non-zero, disables the VRFY command.  VRFY, once
	a useful tool, is sometimes used by spammers doing
	dictionary attacks to get a directory of valid email
	addresses.  Defaults to 1 (set).

$ASEXP	when set non-zero, disables the EXPN command.  EXPN, once
	a useful tool, is frequently used by spammers especially
	on mailing list names to collect valid email addresses.
	Defaults to 1 (set).

$ASGRP	when set non-zero, sets a delay in milliseconds before
	the initial greeting banner is sent.  Any client SMTP
	commands sent before the banner is discards.  This
	stymies spam engines that blast a sequence of commands
	without looking at the responses.  Defaults to 5000. (5
	seconds of delay).

$ASHLO	when set non-zero, rejects SMTP clients which send a HELO
	or EHLO name of mail.local, localhost, of
	localhost.localdomain.  This prevents poorly-configured
	UNIX machines from connecting, as well as styming spam
	engines that send such things to get around simple
	relay filters.  Defaults to 1 (set).

$ASCBI	when set non-zero, clears the input buffer before sending
	the terminating CRLF from an SMTP response line.  This
	stymies spam engines that blast commands without looking
	at responses.  Note that this precludes implementing the
	ESMTP PIPELINING extension in the future.  Defaults to 1
	(set).

I've opened up Lingling's ANONYMOUS FTP server so you can FTP
these files from MM:BUILD-MM.CTL and MM:MAISER.MAC.  Please don't
abuse my FTP server by doing wholesale wildcard transfers.

-- Mark --
-------
18-Jul-2005 08:19:50-PDT,4830;000000000000
Return-Path: <len00001@mc.duke.edu>
Received: from porthos.duhs.duke.edu ([152.16.199.201]) by lingling.panda.com with TCP/SMTP; Mon, 18 Jul 2005 08:15:17 -0700 (PDT)
Received: from notesgv.notes.duke.edu (notesgv.notes.duke.edu [152.16.18.54])
	by porthos.duhs.duke.edu (8.12.11/8.12.11) with ESMTP id j6IFF8U21143330
	(version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO);
	Mon, 18 Jul 2005 11:15:08 -0400
In-Reply-To: <CMM.0.92.0.1121564220.beebe@psi.math.utah.edu>
Subject: Re: PDP-10 history, TeX, and Metafont
To: tops-20@lingling.panda.com, "Nelson H. F. Beebe" <beebe@math.utah.edu>
X-Mailer: Lotus Notes Release 6.0.3 September 26, 2003
Message-ID: <OF59EF2E5E.D21AB479-ON85257042.005068A8-85257042.0053F707@notes.duke.edu>
From: David M Len <len00001@mc.duke.edu>
Date: Mon, 18 Jul 2005 11:15:05 -0400
X-MIMETrack: Serialize by Router on notesgv.notes.duke.edu/DUMC_Services/mc/Duke(Release
 6.5.4|March 27, 2005) at 07/18/2005 11:11:55 AM
MIME-Version: 1.0
Content-type: text/plain; charset=US-ASCII
X-Scanned-By: MIMEDefang 2.39

In the 1970's there was a Pittsburgh, PA based company named On-Line
Systems.

They were a time-sharing vendor using DECsystem-10s.  Like CompuServe,
TymeShare and ADP the OS they used was significanty modified from some
version released from DEC.

I was a user of their service in 1977 while I was working for Mellon Bank.

I doubt if their modified OS was ever used anywhere other than On-Line
Systems.


   David M. Len

I got my BS in Computer Science from the University of Pittsburgh in 1975,
while they were using DECsystem-10s.
I then spent 18 years working for Digital going from TOPS-10 to TOPS-20 to
VMS.

I still miss TOPS-20.




                                                                                                                                 
                      "Nelson H. F.                                                                                              
                      Beebe"                   To:       tops-20@lingling.panda.com                                              
                      <beebe@math.utah.        cc:       beebe@math.utah.edu                                                     
                      edu>                     Subject:  Re: PDP-10 history, TeX, and Metafont                                   
                                                                                                                                 
                      07/16/2005 09:37                                                                                           
                      PM                                                                                                         
                                                                                                                                 




Thanks to everyone who responded, both on-list and off-list, to my
posting of Wed, 13 Jul 2005 15:23:18 -0600 (MDT) about my keynote
address at the Practical TeX 2005 conference in Chapel Hill, NC, June
14--17, 2005.

I've made a few tweaks to correct errors and clarify the Ctl-P/Ctl-Q
delimiters, and shortened a couple of bibliography item notes to keep
the document on exactly 19 pages.  The Wednesday version is already in
the google database.

The updated PDF file is at the same location as before:

             http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.pdf

I have not yet begun to edit the slides to repair errors and update
them for my talk next month in Wuhan, China, so the pt2005-slides.pdf
file has not yet been updated.

I elected not to change the PDP-10 assembly code example, because it
is reproduced verbatim from the cited source.  Ralph Gorin kindly
supplied some comments which have not yet been addressed; I'll see
whether the editors will let me make another small update on Monday.

There is still uncertainty about "Online Services" vs. "On-Line
Systems"; I was told the former by an Irish friend who actually worked
on OLS-10 in London in the 1970s.  However, I cannot confirm from
google searches which company OLS-10 belonged to.  If anyone can shed
some light on this point, I would be grateful.

-------------------------------------------------------------------------------

- Nelson H. F. Beebe                    Tel: +1 801 581 5254
-
- University of Utah                    FAX: +1 801 581 4148
-
- Department of Mathematics, 110 LCB    Internet e-mail:
beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org
beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL:
http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------



 1-Aug-2005 21:58:32-PDT,1688;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-3.cisco.com ([171.71.176.72]) by lingling.panda.com with TCP/SMTP; Mon, 1 Aug 2005 21:53:57 -0700 (PDT)
Received: from sj-core-5.cisco.com (171.71.177.238)
  by sj-iport-3.cisco.com with ESMTP; 01 Aug 2005 21:53:51 -0700
X-IronPort-AV: i="3.95,160,1120460400"; 
   d="scan'208"; a="328094918:sNHT26276552"
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-5.cisco.com (8.12.10/8.12.6) with ESMTP id j724rlJL007055;
	Mon, 1 Aug 2005 21:53:47 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id VAA18718;
	Mon, 1 Aug 2005 21:53:47 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Mon, 1 Aug 2005 21:53:47 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: Phil Budne <phil@ultimate.com>
Cc: beebe@math.utah.edu, tops-20@lingling.panda.com
Subject: Re: PDP-10 history, TeX, and Metafont
In-Reply-To: Your message of Wed, 13 Jul 2005 19:18:52 -0400 (EDT)
Message-ID: <CMM.0.90.4.1122958427.billw@cypher>

>> The idiom you show (PUSHJ to litteral) is unfamiliar, and inefficient.

I seem to recall seeing it fairly often.  Probably useful if your literal
uses the macros for local variables on the stack (as used in monitor and/or
exec sources, IIRC.)  Perhaps the N$WARN macro in your counterexample does
so...

    However, The IF/THEN/ELSE construct *WAS* easy/popular when using the
    TOPS-20 MACSYM.MAC IFSKP./ELSE./ENDIF. macros (also IFNSKP. ANSKP.);

There were some other similar macros floating around.  I had some
that implemented %IF/etc from some published source (can't remember
where, though.)

BillW

 1-Aug-2005 22:05:24-PDT,2000;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-3.cisco.com ([171.71.176.72]) by lingling.panda.com with TCP/SMTP; Mon, 1 Aug 2005 22:01:11 -0700 (PDT)
Received: from sj-core-1.cisco.com (171.71.177.237)
  by sj-iport-3.cisco.com with ESMTP; 01 Aug 2005 21:59:05 -0700
X-IronPort-AV: i="3.95,160,1120460400"; 
   d="scan'208"; a="328095814:sNHT30386440"
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-1.cisco.com (8.12.10/8.12.6) with ESMTP id j724wxIs028548;
	Mon, 1 Aug 2005 21:58:59 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id VAA19053;
	Mon, 1 Aug 2005 21:59:00 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Mon, 1 Aug 2005 21:59:00 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: Frank da Cruz <fdc@columbia.edu>
Cc: "Nelson H. F. Beebe" <beebe@math.utah.edu>, tops-20@lingling.panda.com,
        beebe@math.utah.edu
Subject: Re: News of mm
In-Reply-To: Your message of Thu, 14 Jul 2005 10:11:26 EDT
Message-ID: <CMM.0.90.4.1122958740.billw@cypher>

	[CCMD / MM]
    > We have used this code at Utah since at least 1990 on our Sun SunOS
    > and Solaris systems, but it is not been buildable on most other
    > flavors of Unix (we have 20+ in our software development lab).
    > 
    As you noted further down, I use it too, and until I received this note,
    thought that I was the only one touching the code any more.

Hmm.  I've been touching it too, although I thought I was pretty much alone
and haven't been very careful about revision control.  Sigh.  Now it'll bite
me.  Let's see.  There was the y2k fix attempts, the "mimetype" command, the
"howmany" that wasn't really needed...  Sigh.

Did you do other cleanups?  I keep looking at it (in light of 'modern'
styles of C programming) and getting very depressed about the prospects of
doing significant work, even though the list of desirable features keeps
getting longer...

BillW

 1-Aug-2005 22:16:43-PDT,539;000000000000
Mail-From: MRC created at  1-Aug-2005 22:13:07
Date: Mon, 1 Aug 2005 22:13:07 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: News of mm
To: TOPS-20@lingling.panda.com
In-Reply-To: <CMM.0.90.4.1122958740.billw@cypher>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14046781098.10.MRC@lingling.panda.com>

Is anyone interested in an effort to port Pine to TOPS-20?

The c-client library already is ported to TOPS-20, but we need to get Pine
and Pico ported too...
-------
 2-Aug-2005 06:41:38-PDT,4930;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine2.math.utah.edu ([155.101.96.3]) by lingling.panda.com with TCP/SMTP; Tue, 2 Aug 2005 06:37:49 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:VqfqOwGvTH+RJPFTFZnZlegJntH+Sy31@psi.math.utah.edu [155.101.96.19])
	by sunshine2.math.utah.edu (8.13.4/8.13.4) with ESMTP id j72DbMgl001379;
	Tue, 2 Aug 2005 07:37:22 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:c2kqazKBbNJjJVxt7AxDRkSWhBrNop7+@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j72DbMKE004710;
	Tue, 2 Aug 2005 07:37:22 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j72DbL9D004708;
	Tue, 2 Aug 2005 07:37:22 -0600 (MDT)
Date: Tue, 2 Aug 2005 07:37:22 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: William "Chops" Westfield <billw@cisco.com>
Cc: beebe@math.utah.edu, Frank da Cruz <fdc@columbia.edu>,
        "Nelson H. F. Beebe" <beebe@math.utah.edu>, tops-20@lingling.panda.com,
        beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: News of mm
In-Reply-To: Your message of Mon, 1 Aug 2005 21:59:00 PDT
Message-ID: <CMM.0.94.0.1122989841.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine2.math.utah.edu [155.101.96.3]); Tue, 02 Aug 2005 07:37:22 -0600 (MDT)

William "Chops" Westfield <billw@cisco.com> asks on Mon, 1 Aug 2005
21:59:00 PDT about my changes to the C version of mm:

>> I've been touching it too ... Did you do other cleanups?
>> I keep looking at it (in light of 'modern' styles of C programming) and
>> getting very depressed about the prospects of doing significant work, ...

Our work at Utah on mm has not added any new commands, but instead has
been directed at enhancing portability, and trying to make it 8-bit
clean.  We also disabled the mail file locking, since it doesn't work
reliably in an NFS environment: we simply warn our mm users that they
must avoid running multiple instances of mm, just as they already know
they must also avoid running multiple Web browsers.

All changes in both the ccmd and mm directories are under RCS control,
and the mm-0.94/mm/CHANGELOG file summarizes the changes.

We have succeeded in improving portability, since mm-0.94 now builds
on all of our 20+ flavors of Unix, but we failed in the 8-bit cleanup.
I found that there are pervasive assumptions in the ccmd
command-parser library that the high-order bit of each 8-bit character
can be used as a flag, and concluded long ago that the only solution
was a complete redesign and rewrite of the parsing package, possibly
in C++ or Java, with elimination of the TOPS-20 data structures in
favor of a much cleaner interface.  Inasmuch as there are 21,187 lines
of code in ccmd, and 36,088 lines of code in mm, any such project is
destined to take many months in the hands of skilled programmer, and
since we are all getting old and gray, that is hard to justify.  There
are lots of other programming projects that I want to work on.

As long as you keep the parser's hands off your text, you can use
8-bit characters in mm.  The header lines, like Subject:, gets parsed,
so they are stuck with 7-bit characters unless you edit them.

What I generally do is have a permanently-running emacs session with
the mail-server library preloaded, and then when I ask mm to get me to
an editor, it hands what I've typed so far off to emacs.  I can then
edit the entire message, using 8-bit characters as needed, even
putting those characters into mail headers.  For example, here is a
snippet of a Danish rhyme in ISO 8859-1 encoding:

	Subject: Danske bxrnerim og engelsk oversfttelse

	Xen i sxen har kun in barber,	The island in the lake has only one barber,
	men tilgengfld se klipper han	but then he clips
	alt hvad han ser.		everything he sees.

When I end the emacs message editing with C-x ! (server-edit), control
returns to mm, which is then happy to send my 8-bit characters, as
long as I don't try to edit them further by, for example, typing in a
new subject line.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
 2-Aug-2005 08:16:08-PDT,6780;000000000000
Return-Path: <fdc@columbia.edu>
Received: from sesame.cc.columbia.edu ([128.59.59.56]) by lingling.panda.com with TCP/SMTP; Tue, 2 Aug 2005 08:12:17 -0700 (PDT)
Received: from sesame.cc.columbia.edu (localhost [127.0.0.1])
	by sesame.cc.columbia.edu (8.13.0/8.13.0) with ESMTP id j72FCAtl012877;
	Tue, 2 Aug 2005 11:12:10 -0400 (EDT)
Received: (from fdc@localhost)
	by sesame.cc.columbia.edu (8.13.0/8.12.8/Submit) id j72FC5b7012858;
	Tue, 2 Aug 2005 11:12:05 -0400 (EDT)
Date: Tue, 2 Aug 2005 11:12:05 EDT
From: Frank da Cruz <fdc@columbia.edu>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Cc: tops-20@lingling.panda.com
Subject: Re: News of mm
In-Reply-To: <CMM.0.94.0.1122989841.beebe@psi.math.utah.edu>
Message-ID: <CMM.0.91.0.1122995525.fdc@sesame>

Nelson Wrote...
> William "Chops" Westfield <billw@cisco.com> asks on Mon, 1 Aug 2005
> 21:59:00 PDT about my changes to the C version of mm:
> 
> >> I've been touching it too ... Did you do other cleanups?
> >> I keep looking at it (in light of 'modern' styles of C programming) and
> >> getting very depressed about the prospects of doing significant work, ...
> 
> Our work at Utah on mm has not added any new commands, but instead has
> been directed at enhancing portability, and trying to make it 8-bit
> clean.  We also disabled the mail file locking, since it doesn't work
> reliably in an NFS environment: we simply warn our mm users that they
> must avoid running multiple instances of mm, just as they already know
> they must also avoid running multiple Web browsers.
> 
This is the major reason MM fell out of favor at Columbia, where we have a
big (Solaris) host pool.  With tens of thousands of users, it's just too
easy for somebody to get disconnected and leave behind an mm zombie, and
then not be able to get back to the same host to kill it, even if they knew
how to do that, so our help desk was always swamped with "my mailbox is
locked" calls.  Now the only people who use mm any more are the ones who
know how to take care of themselves.  It never occurred to me to just remove
the locking, but maybe at this point it's safe.

> All changes in both the ccmd and mm directories are under RCS control,
> and the mm-0.94/mm/CHANGELOG file summarizes the changes.
> 
> We have succeeded in improving portability, since mm-0.94 now builds
> on all of our 20+ flavors of Unix...
>
That's a big and badly needed step.

> ... but we failed in the 8-bit cleanup.
> I found that there are pervasive assumptions in the ccmd
> command-parser library that the high-order bit of each 8-bit character
> can be used as a flag, and concluded long ago that the only solution
> was a complete redesign and rewrite of the parsing package, possibly
> in C++ or Java, with elimination of the TOPS-20 data structures in
> favor of a much cleaner interface.  Inasmuch as there are 21,187 lines
> of code in ccmd, and 36,088 lines of code in mm, any such project is
> destined to take many months in the hands of skilled programmer, and
> since we are all getting old and gray, that is hard to justify.  There
> are lots of other programming projects that I want to work on.
> 
Right, this will probably never happen.  Anyway I like leaving CCMD as a
kind of memorial to how it was.  The DEC-20 was pretty much hardwired 7-bit
ASCII, despite its variable-length bytes (although I did hear rumors at the
time of installations in Japan that bought them for exactly that reason, and
used larger bytesizes for some combination of Roman, Kana, and Kanji -- I
visited the NTT lab in 1987 and didn't see any evidence of this, but maybe
Mark knows more).

Given the number of Scandinavians at Marlboro you'd think there would have
been some interest in at least Latin-1, but with them I think it was a
matter of pride to speak better English than Americans -- facilitating the
use of other languages would have been sign of weakness :-)

> As long as you keep the parser's hands off your text, you can use
> 8-bit characters in mm.  The header lines, like Subject:, gets parsed,
> so they are stuck with 7-bit characters unless you edit them.
> 
> What I generally do is have a permanently-running emacs session with
> the mail-server library preloaded, and then when I ask mm to get me to
> an editor, it hands what I've typed so far off to emacs.  I can then
> edit the entire message, using 8-bit characters as needed, even
> putting those characters into mail headers.  For example, here is a
> snippet of a Danish rhyme in ISO 8859-1 encoding:
> 
> Subject: Danske bxrnerim og engelsk oversfttelse
> 
> Xen i sxen har kun in barber,	The island in the lake has only one barber,
> men tilgengfld se klipper han	but then he clips
> alt hvad han ser.		everything he sees.
> 
> When I end the emacs message editing with C-x ! (server-edit), control
> returns to mm, which is then happy to send my 8-bit characters, as
> long as I don't try to edit them further by, for example, typing in a
> new subject line.
> 
I just "set use-editor-always true".  I send tons Latin-1 mail every day,
sometimes also UTF-8.  Now that we have relatively fast computers, the
penalty of starting EMACS on each messages is hardly noticeable.

BillW said:
>  There was the y2k fix attempts, the "mimetype" command, the
> "howmany" that wasn't really needed...  Sigh.
>
I should hope the current Columbia version (and therefore Nelson's) obviates
the need for any y2k fixes.  It also has a MIME-VERSION command.  One thing
I'm not happy about is the CONTENT-TYPE command that I added.  I assumed the
only thing I would ever use MM for was plain text, so this command only
fills in the character-set part of the Content-Type header, keeping
"text/plain" hardwired.  Now it seems I need to send HTML from time to time,
so this command should be changed to do what you'd expect -- specify the
content type!  I also have a few other items on my list.

I guess the ball is in my court.  I haven't had a chance to look at Nelson's
stuff yet.  The main thing that worries me is the 8-bit changes.  Since you
say they didn't work, I assume that you backed them out?

> -----------------------------------------------------------------------------
> - Nelson H. F. Beebe                  Tel: +1 801 581 5254                  -
> - University of Utah                  FAX: +1 801 581 4148                  -
> - Department of Mathematics, 110 LCB  Internet e-mail: beebe@math.utah.edu  -
> - 155 S 1400 E RM 233                    beebe@acm.org  beebe@computer.org  -
> - Salt Lake City, UT 84112-0090, USA  URL: http://www.math.utah.edu/~beebe  -
> -----------------------------------------------------------------------------

- Frank
 2-Aug-2005 08:38:33-PDT,2334;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine2.math.utah.edu ([155.101.96.3]) by lingling.panda.com with TCP/SMTP; Tue, 2 Aug 2005 08:34:58 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:Md8MPe2TFhnzFSM5vV2wheXTik9963Vy@psi.math.utah.edu [155.101.96.19])
	by sunshine2.math.utah.edu (8.13.4/8.13.4) with ESMTP id j72FYlSA005156;
	Tue, 2 Aug 2005 09:34:47 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:BgZGZHCBkW3jm8ORK8L78Bp7UIZD9ycf@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j72FYkAo006395;
	Tue, 2 Aug 2005 09:34:46 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j72FYkdL006394;
	Tue, 2 Aug 2005 09:34:46 -0600 (MDT)
Date: Tue, 2 Aug 2005 09:34:46 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: Frank da Cruz <fdc@columbia.edu>, tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: News of mm
In-Reply-To: Your message of Tue, 2 Aug 2005 11:12:05 EDT
Message-ID: <CMM.0.94.0.1122996886.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine2.math.utah.edu [155.101.96.3]); Tue, 02 Aug 2005 09:34:47 -0600 (MDT)

Frank da Cruz asks:

>> The main thing that worries me is the 8-bit changes.  Since you
>> say they didn't work, I assume that you backed them out?

They were all in a separate development branch that I versioned mm-0.93,
and then abandoned.  The mm-0.94 version is derived from the mm-0.92 one.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
 2-Aug-2005 11:28:50-PDT,2106;000000000000
Mail-From: MRC created at  2-Aug-2005 11:25:02
Date: Tue, 2 Aug 2005 11:25:02 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: Re: News of mm
To: fdc@columbia.edu
cc: beebe@math.utah.edu, tops-20@lingling.panda.com
In-Reply-To: <CMM.0.91.0.1122995525.fdc@sesame>
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14046925261.16.MRC@lingling.panda.com>

> This is the major reason MM fell out of favor at Columbia, where we have a
> big (Solaris) host pool.  With tens of thousands of users, it's just too
> easy for somebody to get disconnected and leave behind an mm zombie, and
> then not be able to get back to the same host to kill it, even if they knew
> how to do that, so our help desk was always swamped with "my mailbox is
> locked" calls.

This was something that I addressed in the course of
c-client/IMAP development.  There is, by the way, a baby version
of UNIX MM that is built upon c-client (and thus is IMAP capable)
and ccmd called...of course...MS.  I used it quite extensively
until I switched to Pine (which is also based upon c-client but
not ccmd).

> The DEC-20 was pretty much hardwired 7-bit
> ASCII, despite its variable-length bytes (although I did hear rumors at the
> time of installations in Japan that bought them for exactly that reason, and
> used larger bytesizes for some combination of Roman, Kana, and Kanji -- I
> visited the NTT lab in 1987 and didn't see any evidence of this, but maybe
> Mark knows more).

The PDP-10 systems in Japan all used ISO 2022 encoded JIS, which
is the standard way of sending Japanese email today.

By the way,...

I assume that everybody has read my UTF-9 and UTF-18 document
(RFC 4042) for how to do Unicode on PDP-10s.  I am quite serious
about this, and am thinking about how to handle 9-bit text files
seamlessly e.g., making 7-bit open mode truncate bits from a
9-bit file rather than bit-shifting, so that legacy 7-bit
applications can handle ASCII content 9-bit files.

So, after 35 years, IO.MAC may finally realize its promise.
-------
 2-Aug-2005 12:22:11-PDT,2393;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-4.cisco.com ([171.68.10.86]) by lingling.panda.com with TCP/SMTP; Tue, 2 Aug 2005 12:17:45 -0700 (PDT)
Received: from sj-core-3.cisco.com (171.68.223.137)
  by sj-iport-4.cisco.com with ESMTP; 02 Aug 2005 12:17:38 -0700
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-3.cisco.com (8.12.10/8.12.6) with ESMTP id j72JHaqK021109;
	Tue, 2 Aug 2005 12:17:36 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id MAA26533;
	Tue, 2 Aug 2005 12:17:36 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Tue, 2 Aug 2005 12:17:35 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: Frank da Cruz <fdc@columbia.edu>
Cc: "Nelson H. F. Beebe" <beebe@math.utah.edu>, tops-20@lingling.panda.com
Subject: Re: News of mm
In-Reply-To: Your message of Tue, 2 Aug 2005 11:12:05 EDT 2 Aug 2005 09:34:46
        -0600 (MDT)
Message-ID: <CMM.0.90.4.1123010255.billw@cypher>


    > ... but we failed in the 8-bit cleanup.
    > I found that there are pervasive assumptions in the ccmd
    > command-parser library that the high-order bit of each 8-bit character
    > can be used as a flag, and concluded long ago that the only solution
    > was a complete redesign and rewrite of the parsing package...

Couldn't you add 8-bit CMTXT style parsing without needing to make
ccmd completely "8bit clean"?  I wouldn't think that mm needs 8 bit
keywords and tokens and so on.  (This is more or less what I did at
cisco for international character support; a couple spots just pass on
the 8th bit when they didn't in the past, but the parser itself isn't
'8bit' by any means.  Never did get a good feel for how well that
worked in the field...)


    >  There was the y2k fix attempts, the "mimetype" command...
    >
    I should hope the current Columbia version obviates the need for any
    y2k fixes.  It also has a MIME-VERSION command.

Probably.  I think I got to a point where I couldn't (or believed I
couldn't) download new columbia code and still have it compile in our
solaris environment.  I'm still running 0.90.4...  "mimetype" is a
display command; simply a version of the "type" command with a
different output filter, so that you can pipe a message though mh's
(?)  metamail.  Cheap, easy, and pretty useful...

BillW

 2-Aug-2005 13:12:29-PDT,3410;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine2.math.utah.edu ([155.101.96.3]) by lingling.panda.com with TCP/SMTP; Tue, 2 Aug 2005 13:08:47 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:IeWExoBTYLmnLCYe5s+PjcrmvkyfPFdR@psi.math.utah.edu [155.101.96.19])
	by sunshine2.math.utah.edu (8.13.4/8.13.4) with ESMTP id j72K7UX8014852;
	Tue, 2 Aug 2005 14:07:30 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:1YX/VcE1wM2hHZ+Ucd90y1J3oqoz9MES@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j72K7Tbc007492;
	Tue, 2 Aug 2005 14:07:29 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j72K7TM5007491;
	Tue, 2 Aug 2005 14:07:29 -0600 (MDT)
Date: Tue, 2 Aug 2005 14:07:29 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: William "Chops" Westfield <billw@cisco.com>
Cc: beebe@math.utah.edu, Frank da Cruz <fdc@columbia.edu>,
        "Nelson H. F. Beebe" <beebe@math.utah.edu>, tops-20@lingling.panda.com
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: News of mm
In-Reply-To: Your message of Tue, 2 Aug 2005 12:17:35 PDT
Message-ID: <CMM.0.94.0.1123013249.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine2.math.utah.edu [155.101.96.3]); Tue, 02 Aug 2005 14:07:30 -0600 (MDT)

William "Chops" Westfield <billw@cisco.com> writes on Tue, 2 Aug 2005
12:17:35 PDT about the 8-bit limitation of the ccmd parsing package:

>> Couldn't you add 8-bit CMTXT style parsing without needing to make
>> ccmd completely "8bit clean"?

That is definitely an idea worth investigating: we could certainly
live without 8-bit characters in mm prompts and commands, since they
are in English to begin with, and are not easily internationalized
(although that should be a fundamental design point in any new
software).

More critical, however, is the issue of attachments.  Bill goes on to write:

>> ...
>> "mimetype" is a display command; simply a version of the "type"
>> command with a different output filter, so that you can pipe a message
>> though mh's (?)  metamail.  Cheap, easy, and pretty useful...
>> ...

Another good idea.  Bill, do think you might have the time to run
diffs of your mimetype additions against the mm-0.90 base and email
them to me offlist?  If they are not extensive and conflicting with
what I've done, I'll be happy to take a stab at merging them into the
mm-0.94 code.  I leave for China in two weeks, so nothing is likely to
happen to mm at my end before late September, at the earliest, so
there is no great rush.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
 2-Aug-2005 13:37:01-PDT,2416;000000000000
Return-Path: <rossman@columbia.edu>
Received: from serrano.cc.columbia.edu ([128.59.29.6]) by lingling.panda.com with TCP/SMTP; Tue, 2 Aug 2005 13:33:23 -0700 (PDT)
Received: from [192.168.0.103] (pool-138-89-140-119.mad.east.verizon.net [138.89.140.119])
	(user=rossman mech=PLAIN bits=0)
	by serrano.cc.columbia.edu (8.13.0/8.13.0) with ESMTP id j72KXFEi019351
	(version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
	for <tops-20@lingling.panda.com>; Tue, 2 Aug 2005 16:33:16 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v733)
In-Reply-To: <CMM.0.94.0.1123013249.beebe@psi.math.utah.edu>
References: <CMM.0.94.0.1123013249.beebe@psi.math.utah.edu>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <2B717863-45EB-4FE5-B815-26D3C7F95C08@columbia.edu>
Content-Transfer-Encoding: 7bit
From: Ken Rossman <rossman@columbia.edu>
Subject: Re: News of mm
Date: Tue, 2 Aug 2005 16:33:13 -0400
To: tops-20@lingling.panda.com
X-Mailer: Apple Mail (2.733)
X-No-Spam-Score: Local
X-Scanned-By: MIMEDefang 2.48 on 128.59.29.6

I think some work on ccmd and mm is well merited.  I'd love to get my  
hands
on at least some of the modules and do some work, time permitting.

I would advocate the following strategy for proceeding, for those who  
are
interested (and forgive me if some of this is naive - I have not  
looked at
a lot of this code in some time, much of it at all):

  1) Lets come up with a specific list of modifications that ought to  
be made
     to the code, and prioritize the list.

  2) Analyze the existing code to determine just how modular and "object
     oriented" it already is (not specifically strictly object oriented,
     of course, but lets determine how "insular" each individual routine
     is from everything else.  Likewise, lets flag the global data  
structures
     and see what can be done to modularize those in some way.  The  
idea here
     is how easily can each module be worked on independently from  
the rest
     of the code?...

  3) Assuming a reasonable level of insular modularity, lets divvy up  
the
     routines amongst interested parties, and go to work on it.  But  
we'd
     need to all agree on what the next general, global mod to ccmd & mm
     should be and move in that direction.

Just tossing in my two-cents...

:-)

Ken Rossman
rossman@columbia.edu

 3-Aug-2005 17:59:51-PDT,4037;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-1.cisco.com ([171.71.176.70]) by lingling.panda.com with TCP/SMTP; Wed, 3 Aug 2005 17:55:06 -0700 (PDT)
Received: from sj-core-5.cisco.com (171.71.177.238)
  by sj-iport-1.cisco.com with ESMTP; 03 Aug 2005 17:55:00 -0700
X-IronPort-AV: i="3.95,165,1120460400"; 
   d="scan'208"; a="652840151:sNHT27499944"
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-5.cisco.com (8.12.10/8.12.6) with ESMTP id j740svoo005834;
	Wed, 3 Aug 2005 17:54:58 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id RAA26063;
	Wed, 3 Aug 2005 17:54:57 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Wed, 3 Aug 2005 17:54:57 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: Ken Rossman <rossman@columbia.edu>
Cc: tops-20@lingling.panda.com
Subject: Re: News of mm
In-Reply-To: Your message of Tue, 2 Aug 2005 16:33:13 -0400
Message-ID: <CMM.0.90.4.1123116897.billw@cypher>

>> I think some work on ccmd and mm is well merited.
>>
>>  1) Lets come up with a specific list of modifications that ought to  
>>     be made to the code, and prioritize the list.
>>
>>  2) Analyze the existing code to determine just how modular and "object
>>     oriented" it already is (not specifically strictly object oriented,

Alas, the code is pretty sucky by modern C standards.  For instance, there
are no function prototypes.  Merely compiling with a modern compiler
requires things like --traditional, and there are still lots of warnings
generated :-( Whenever I contemplate touching it (ie for something like a
linux port), I keep running up agains the idea is that "first, I oughta
modernize it and get rid of the existing compiler-found bugs.")  Which
would be a moderate sized project in itself :-(

Things I've done anyway:

  Mime output via existing external mime filters.  Sorta.

  Add "fix-dates" commands to make the internal dates match the Date: fields
  in the message.  One of the y2k-related (?) bugs caused the internal date
  to "drift" a day at a time, causing "before" and similar search keywords to
  fail miserably.  (a hack, in case you had any doubts!)

  Fix (maybe, sorta) incorrect parsing of lines beginning with "From " that
  caused mm to think this meant the beginning of a new message. (perhaps only
  in some formats of mail files?)

  Do automatic "take newmail.rc" whenever mm detects new incoming mail (for
  spam removal.)  It would be REALLY nice if the newmail.rc file only had to
  operate on the new messages, rather than the whole file.  I didn't look at
  doing that...

  Be less anal about adding reply-to: fields if the From: field contains a
  reasonable-looking address.  (it was NOT helpful that mm kept adding
  "Reply-to: billw@internal-mail-host.cisco.com" when my From field already
  had "billw@cisco.com")

  Add "unto" search keyword ("head unseen unto billw"; very useful!)

  increase string sizes.


Things I want:

  Wildcards of at least a primitive kind for "dont-type-headers"

  flush useless headers (on request, and/or automatically) in the mail
  file.  By the time a message has been kept after reading for a month or
  so, I surely no longer need a couple Kbytes of "received" lines, right?

  Read ("examine") compressed mail files.

  Better spam filtering capabilities.

  Color output, especially in some form of "Headers" ?

  multi-file search.  It is MM's search capabilities, more than any other
  feature, that keeps me using it.  I can type a complex search like
     read to billw before 1-jun-2005 sub "CSCd" text "tty_printf"
  and get results faster than I can wade through the first level of "easy
  to use" search menus on a modern GUI mail reader.  But I want more.

  Check optimization for typical modern-sized emails and mail files.
  A one-year archive for me seems to run about 200Mbytes these days,
  with "many" messages exceeding 50kbytes

BillW
 4-Aug-2005 01:28:40-PDT,1478;000000000000
Return-Path: <sra@hactrn.net>
Received: from cyteen.hactrn.net ([66.92.66.68]) by lingling.panda.com with TCP/SMTP; Thu, 4 Aug 2005 01:24:10 -0700 (PDT)
Received: from thangorodrim.hactrn.net (open-24-185.ietf63.ietf.org [86.255.24.185])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client CN "thangorodrim.hactrn.net", Issuer "Grunchweather Associates" (verified OK))
	by cyteen.hactrn.net (Postfix) with ESMTP id C0D6E72
	for <tops-20@lingling.panda.com>; Thu,  4 Aug 2005 04:24:02 -0400 (EDT)
Received: from thangorodrim.hactrn.net (localhost [127.0.0.1])
	by thangorodrim.hactrn.net (Postfix) with ESMTP id AC61939
	for <tops-20@lingling.panda.com>; Thu,  4 Aug 2005 08:23:56 +0000 (UTC)
Date: Thu, 04 Aug 2005 10:23:55 +0200
From: Rob Austein <sra@hactrn.net>
To: tops-20@lingling.panda.com
Subject: Re: News of mm
In-Reply-To: <CMM.0.90.4.1123116897.billw@cypher>
User-Agent: Wanderlust/2.10.1 (Watching The Wheels) Emacs/21.3 Mule/5.0 (SAKAKI)
MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka")
Content-Type: text/plain; charset=US-ASCII
Message-Id: <20050804082356.AC61939@thangorodrim.hactrn.net>

At Wed, 3 Aug 2005 17:54:57 PDT, William Chops Westfield wrote:
> 
> Alas, the code is pretty sucky by modern C standards.  For instance, there
> are no function prototypes.

gcc's "protoize" command, while quirky and imperfect, does still do
about 80% of the job of fixing this sort of problem.  Might be worth a
try.
 4-Aug-2005 04:29:37-PDT,2984;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine2.math.utah.edu ([155.101.96.3]) by lingling.panda.com with TCP/SMTP; Thu, 4 Aug 2005 04:25:42 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:/MVrHjqMHwQce2dC7dWyHXdu4Z8kqluh@psi.math.utah.edu [155.101.96.19])
	by sunshine2.math.utah.edu (8.13.4/8.13.4) with ESMTP id j74BPTcU017098;
	Thu, 4 Aug 2005 05:25:29 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:AIf39PLnc267MpyWxmGvR/qtvTK6nS5q@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j74BPTQf003491;
	Thu, 4 Aug 2005 05:25:29 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j74BPSVw003490;
	Thu, 4 Aug 2005 05:25:28 -0600 (MDT)
Date: Thu, 4 Aug 2005 05:25:28 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: William "Chops" Westfield <billw@cisco.com>
Cc: beebe@math.utah.edu, Ken Rossman <rossman@columbia.edu>,
        tops-20@lingling.panda.com
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: News of mm
In-Reply-To: Your message of Wed, 3 Aug 2005 17:54:57 PDT
Message-ID: <CMM.0.94.0.1123154728.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine2.math.utah.edu [155.101.96.3]); Thu, 04 Aug 2005 05:25:29 -0600 (MDT)

William "Chops" Westfield <billw@cisco.com> writes on Wed, 3 Aug 2005
17:54:57 PDT about mm:

>> ... the code is pretty sucky by modern C standards.  For instance, there
>> are no function prototypes. 

That is fixed in the mm-0.94 distribution.  I'm a fanatic about having
function prototypes: in my experience, adding them to older programs
has invariably turned up several bugs of incorrect argument types or
numbers of arguments.  That is why I routinely build by own C code
with C++ compilers, because they are even more picky about argument
matching and type coercions.

Almost all of mm-0.94/ccmd can be successfully compiled with C++.  On
the mm-0.94/mm side, there is a type conflict in a header file used by
most of the code that makes C++ choke.  I could probably fix the
remaining C++ problems in an hour or two, and will likely do so when I
merge Bill's changes in.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
 4-Aug-2005 14:53:13-PDT,1303;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-4.cisco.com ([171.68.10.86]) by lingling.panda.com with TCP/SMTP; Thu, 4 Aug 2005 14:48:33 -0700 (PDT)
Received: from sj-core-3.cisco.com (171.68.223.137)
  by sj-iport-4.cisco.com with ESMTP; 04 Aug 2005 14:48:18 -0700
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-3.cisco.com (8.12.10/8.12.6) with ESMTP id j74LmFZ1029583;
	Thu, 4 Aug 2005 14:48:16 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id OAA08005;
	Thu, 4 Aug 2005 14:48:15 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Thu, 4 Aug 2005 14:48:15 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Cc: beebe@math.utah.edu, Ken Rossman <rossman@columbia.edu>,
        tops-20@lingling.panda.com
Subject: Re: News of mm
In-Reply-To: Your message of Thu, 4 Aug 2005 05:25:28 -0600 (MDT)
Message-ID: <CMM.0.90.4.1123192095.billw@cypher>

Did anyone fix the bug where text being composed in emacs dissappears on the
way back to MM, if the tmp file size is between 800 and 1200 bytes or so?
Unfortunately, the version I'm using now has a bunch of tmp files made
permanent in efforts to track and work around that problem...

BillW

 4-Aug-2005 15:53:10-PDT,3694;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine2.math.utah.edu ([155.101.96.3]) by lingling.panda.com with TCP/SMTP; Thu, 4 Aug 2005 15:49:23 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:X24Rk7yW3KaY2Z9S//Y5+DtCQ++Hd6VB@psi.math.utah.edu [155.101.96.19])
	by sunshine2.math.utah.edu (8.13.4/8.13.4) with ESMTP id j74MnGFW005848;
	Thu, 4 Aug 2005 16:49:16 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:k9FuJnnkytS4ta8Kuu9TT4Wbpfhqqczu@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j74MnGJ5008188;
	Thu, 4 Aug 2005 16:49:16 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j74MnFat008187;
	Thu, 4 Aug 2005 16:49:15 -0600 (MDT)
Date: Thu, 4 Aug 2005 16:49:15 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: William "Chops" Westfield <billw@cisco.com>, tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Re: News of mm
In-Reply-To: Your message of Thu, 4 Aug 2005 14:48:15 PDT
Message-ID: <CMM.0.94.0.1123195755.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine2.math.utah.edu [155.101.96.3]); Thu, 04 Aug 2005 16:49:16 -0600 (MDT)

William "Chops" Westfield <billw@cisco.com> asks on Thu, 4 Aug 2005 14:48:15 PDT:

>> ...
>> Did anyone fix the bug where text being composed in emacs dissappears on the
>> way back to MM, if the tmp file size is between 800 and 1200 bytes or so?
>> Unfortunately, the version I'm using now has a bunch of tmp files made
>> permanent in efforts to track and work around that problem...
>> ...

We used to see that a fair amount, and for that reason, I disabled the
deletion of the temporary files to allow recovery:

% ls -l ~/.mm*
-rw-------  1 beebe wheel  1241 Aug  1 18:52 /u/sy/beebe/.mm-outgoing.22323.~1~
-rw-------  1 beebe wheel   501 Jul 27 15:34 /u/sy/beebe/.mm-outgoing.22323.~2~
...

I clean them up manually now and then.

However, I've been running on Solaris 9 for many months now, sending
100--300 messages a day in mm-0.94, and have not had a single message
lost between mm and emacs (21.3.1).  Pieter also uses mm heavily, but
is away on vacation just now, so I cannot ask him whether he has seen
any message loss in recent months.

Pieter and I spent quite some time trying to track down the loss, and
decided that it looked much like a race condition in a signal handler.

An rcsdiff of exit.c against the original 1.1 version shows that there
are a fair number of macroized debug print statements that I inserted
to try to track down the problem, but no substantive code changes.

Thus, it is possible that Solaris 9, or the rebuild of mm under that
system, fixed the problem.  We have just three systems left running
Solaris 8, most of the rest are at Solaris 9, and a few are at 
Solaris 10.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
 4-Aug-2005 17:07:07-PDT,3963;000000000000
Return-Path: <beebe@math.utah.edu>
Received: from sunshine2.math.utah.edu ([155.101.96.3]) by lingling.panda.com with TCP/SMTP; Thu, 4 Aug 2005 17:03:06 -0700 (PDT)
Received: from psi.math.utah.edu (IDENT:ekiokozpPLeG9KWrvwz5mSz3h/IGQmJs@psi.math.utah.edu [155.101.96.19])
	by sunshine2.math.utah.edu (8.13.4/8.13.4) with ESMTP id j7502wYY007504;
	Thu, 4 Aug 2005 18:02:58 -0600 (MDT)
Received: from psi.math.utah.edu (IDENT:5/29X4tpc91cmwSDugvI879kWS2+IHYi@localhost [127.0.0.1])
	by psi.math.utah.edu (8.13.4/8.13.4) with ESMTP id j7502wQ6008739;
	Thu, 4 Aug 2005 18:02:58 -0600 (MDT)
Received: (from beebe@localhost)
	by psi.math.utah.edu (8.13.4/8.13.4/Submit) id j7502vW7008737;
	Thu, 4 Aug 2005 18:02:57 -0600 (MDT)
Date: Thu, 4 Aug 2005 18:02:57 -0600 (MDT)
From: "Nelson H. F. Beebe" <beebe@math.utah.edu>
To: tops-20@lingling.panda.com
Cc: beebe@math.utah.edu
X-US-Mail: "Department of Mathematics, 110 LCB, University of Utah, 155 S
        1400 E RM 233, Salt Lake City, UT 84112-0090, USA"
X-Telephone: +1 801 581 5254
X-FAX: +1 801 585 1640, +1 801 581 4148
X-URL: http://www.math.utah.edu/~beebe
Subject: Revisiting old languages: BCPL
Message-ID: <CMM.0.94.0.1123200177.beebe@psi.math.utah.edu>
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (sunshine2.math.utah.edu [155.101.96.3]); Thu, 04 Aug 2005 18:02:58 -0600 (MDT)

I have a Web page at

	http://www.math.utah.edu/~beebe/software/java/

that leads to hello-world programs in about 60 languages, and to the
next step up in complexity, generation and printing of the Fibonacci
sequence, in 41 languages.

A question came in this afternoon in private email to me about the
status of BCPL on the PDP-10, since it was a language that my
correspondent thought was available on that system, but I had not
discussed it in my article at

	http://www.math.utah.edu/~beebe/talks/pt2005/pt2005.pdf

I thought it might be interesting to add a BCPL program for the
Fibonacci problem.

I hunted around, and found a language reference manual that Dennis
Ritchie put up at

	http://cm.bell-labs.com/cm/cs/who/dmr/bcpl.pdf

and since BCPL is among the hello-world samples, I attempted to
compile and run it on TOPS-20:

	@type hello.bcp
	// From http://www.cuillin.demon.co.uk/nazz/trivia/hw/hw_bcpl.html

	// BCPL 'Hello World' program

	GET "LIBHDR"

	LET START () BE
	$(
	    WRITES ("Hello World!*N")
	$)

	@bcpl

	BCPL 3.3.3 1/6/78
	Inline JSYS
	=> ?
	[<rel name>[,<listing name>]_]<source name>[(<switches>)]<cr>
	(Type HELP<cr> for more help)

	=> help

	GTJFN error - No such directory name
	<bcpl>BCPL.HELP
	Can't help=>
	^Z

	@bcpl

	BCPL 3.3.3 1/6/78
	Inline JSYS
	=> hello.rel_hello.bcp
	Help called ...
	BCPL: can't find file bcpl.dictionary.

I tracked down the missing file and copied it into the current
directory:

	@copy sys:bcpl.dictionary dsk:
	 <UNSUPPORTED>BCPL.DICTIONARY.1 => BCPL.DICTIONARY.1 [OK]
	@bcpl

	BCPL 3.3.3 1/6/78
	Inline JSYS
	=> hello.rel_hello.bcp
	[BCPL: hello.bcp]

	GTJFN error -
	?Illegal memory WRITE at 13203

	@ddt
	DDT
	13203/   MOVEM 5,0(2)
	13204/   MOVEI JSETUP+14(16)
	13205/   PUSH GL1003+172
	13206/   PUSH GL105
	13207/   JSP 1,@GL8030   ^C

Has anyone on this list ever used BCPL on the PDP-10?  Does the above
compilation attempt work on your system?

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------
 4-Aug-2005 17:38:46-PDT,1440;000000000000
Return-Path: <billw@cisco.com>
Received: from sj-iport-2.cisco.com ([171.71.176.71]) by lingling.panda.com with TCP/SMTP; Thu, 4 Aug 2005 17:34:26 -0700 (PDT)
Received: from sj-core-5.cisco.com (171.71.177.238)
  by sj-iport-2.cisco.com with ESMTP; 04 Aug 2005 17:34:19 -0700
Received: from cisco.com (cypher.cisco.com [171.69.11.142])
	by sj-core-5.cisco.com (8.12.10/8.12.6) with ESMTP id j750YDoo009064;
	Thu, 4 Aug 2005 17:34:13 -0700 (PDT)
Received: (from billw@localhost)
	by cisco.com (8.8.8-Cisco List Logging/8.8.8) id RAA09523;
	Thu, 4 Aug 2005 17:34:13 -0700 (PDT)
Sender: Bill Westfield <billw@cisco.com>
Date: Thu, 4 Aug 2005 17:34:13 PDT
From: William "Chops" Westfield <billw@cisco.com>
To: "Nelson H. F. Beebe" <beebe@math.utah.edu>
Cc: tops-20@lingling.panda.com, beebe@math.utah.edu
Subject: Re: Revisiting old languages: BCPL
In-Reply-To: Your message of Thu, 4 Aug 2005 18:02:57 -0600 (MDT)
Message-ID: <CMM.0.90.4.1123202053.billw@cypher>


    A question came in this afternoon in private email to me about the
    status of BCPL on the PDP-10, since it was a language that my
    correspondent thought was available on that system, but I had not
    discussed it in my article

BBN's "Hermes" was my preferred mail reader when there were actual
dec20s around, and it was supposed to have been written in BCPL...

(anybody got hermes sources?  I still miss some of its features.)

BillW
 7-Aug-2005 07:19:13-PDT,1737;000000000000
Return-Path: <fdc@columbia.edu>
Received: from sesame.cc.columbia.edu ([128.59.59.56]) by lingling.panda.com with TCP/SMTP; Sun, 7 Aug 2005 07:14:20 -0700 (PDT)
Received: from sesame.cc.columbia.edu (localhost [127.0.0.1])
	by sesame.cc.columbia.edu (8.13.0/8.13.0) with ESMTP id j77EDxQr015480;
	Sun, 7 Aug 2005 10:13:59 -0400 (EDT)
Received: (from fdc@localhost)
	by sesame.cc.columbia.edu (8.13.0/8.12.8/Submit) id j77EDwB6015479;
	Sun, 7 Aug 2005 10:13:58 -0400 (EDT)
Date: Sun, 7 Aug 2005 10:13:58 EDT
From: Frank da Cruz <fdc@columbia.edu>
To: William "Chops" Westfield <billw@cisco.com>
Cc: "Nelson H. F. Beebe" <beebe@math.utah.edu>, beebe@math.utah.edu,
        Ken Rossman <rossman@columbia.edu>, tops-20@lingling.panda.com
Subject: Re: News of mm
In-Reply-To: <CMM.0.90.4.1123192095.billw@cypher>
Message-ID: <CMM.0.91.0.1123424038.fdc@sesame>

> Did anyone fix the bug where text being composed in emacs dissappears on the
> way back to MM, if the tmp file size is between 800 and 1200 bytes or so?
> Unfortunately, the version I'm using now has a bunch of tmp files made
> permanent in efforts to track and work around that problem...
> 
I meant to answer this earlier.  This was my primary reason for attacking
the code a few years ago.  My messages were being truncated more and more
often upon return from EMACS (on Solaris 2.5.1, over NFS).  It was not a
problem with EMACS or MM, but with NFS.  I added debugging, delays, the
retention of temp files, and all kinds of heuristics until finally it
stopped happening.  It isn't pretty but I haven't lost a message since
then.  What I did is described in the 0.91 edit history.

  ftp://kermit.columbia.edu/kermit/mm/notes-fdc.txt

- Frank
 8-Aug-2005 14:00:37-PDT,1942;000000000000
Mail-From: MRC created at  8-Aug-2005 13:56:33
Date: Mon, 8 Aug 2005 13:56:33 -0700 (PDT)
From: Mark Crispin <MRC@lingling.panda.com>
Subject: DST rule update to DATIME.MAC for 2005 Energy Bill
To: TOPS-20@lingling.panda.com
Pithy-Thought: TOPS-20 was a great improvement over its successors
Message-ID: <14048525708.13.MRC@lingling.panda.com>

After 18 years of leaving bad enough alone, our Congresscritters have
succumbed once again to the temptation of tinkering with the daylight
savings time rules.

Fortunately, 18 years ago, I created a table-based mechanism in
TOPS-20 to allow the entry of new rules and convinced DEC to
adopt it in TOPS-20 7.0.  OK, it's hopelessly US-centric and you
have to rebuild the monitor, but it's better than what was there
before.  [Anyone gonna say "thank you, Mark"??]

Here's the necessary change to DATIME.MAC in TOPS-20 7.0 to get your
monitor ready for 2007.  This patch doesn't apply to TOPS-20 4.1, which
has been broken since 1987.

File 1)	BACKUP:DATIME.MAC[4,31]	created: 2216 16-May-2002
File 2)	MON:DATIME.MAC[4,31]	created: 1740 05-Aug-2005

1)	; Edit= 9148 to DATIME.MAC on 21-Feb-90 by GSCOTT
****
2)1	;<MONITOR-SOURCES>DATIME.MAC.9149,  5-Aug-2005 17:40:27, Edit by MRC
2)	; Congress tinkered with DST rules again!
1)	; Edit= 9148 to DATIME.MAC on 21-Feb-90 by GSCOTT
**************
1)4	LSTMAR==31+29+31-1		;[9098] Last Sunday in March
****
2)	SNDMAR==31+29+14-1		;[9149] Second Sunday in March
2)	LSTMAR==31+29+31-1		;[9098] Last Sunday in March
**************
1)4	DWFUDG==2			;Constant to normalize day of week
****
2)	FSTNOV==31+29+31+30+31+30+31+31+30+31+7-1 ;[9149] First Sunday in November
2)	DWFUDG==2			;Constant to normalize day of week
**************
1)5		DST 1987,FSTAPR,LSTOCT	;[9098] Changed again
****
2)		DST 2007,SNDMAR,FSTNOV	;[9149] 2005 Energy bill
2)		DST 1987,FSTAPR,LSTOCT	;[9098] Changed again
**************
-------
17-Aug-2005 21:06:51-PDT,9951;000000000000
Return-Path: <slogin@optonline.net>
Received: from mta9.srv.hcvlny.cv.net ([167.206.4.204]) by lingling.panda.com with TCP/SMTP; Wed, 17 Aug 2005 21:00:17 -0700 (PDT)
Received: from optonline.net (hamstr3.srv.hcvlny.cv.net [167.206.5.10])
 by mta9.srv.hcvlny.cv.net
 (Sun Java System Messaging Server 6.2-2.06 (built May 11 2005))
 with ESMTP id <0ILE00GMDGGARI0Q@mta9.srv.hcvlny.cv.net> for
 TOPS-20@lingling.panda.com; Thu, 18 Aug 2005 00:00:10 -0400 (EDT)
Received: from [10.240.3.38] (Forwarded-For: [216.179.91.114])
 by mstr3.srv.hcvlny.cv.net (mshttpd); Thu, 18 Aug 2005 00:00:10 -0400
Date: Thu, 18 Aug 2005 00:00:10 -0400
From: slogin@optonline.net
Subject: Multiple section program behavior with the mini-exec and EXEC DDT
In-reply-to: <14048525708.13.MRC@lingling.panda.com>
To: TOPS-20@lingling.panda.com
Message-id: <e38fdd25bcef.4303cf8a@optonline.net>
MIME-version: 1.0
X-Mailer: Sun Java(tm) System Messenger Express 6.2-2.06 (built May 11 2005)
Content-type: text/plain; charset=us-ascii
Content-language: en
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-Accept-Language: en
Priority: normal
References: <14048525708.13.MRC@lingling.panda.com>

I found some unexpected behavior in the mini-exec and the EXEC EDDT
command which may be of interest.  The mini-exec RESET command does
not work for multiple section programs: it only resets the page map
for section zero.  In addition, replacing a multiple section program
with the EXEC can then cause problems with EXEC DDT.  Here are the
details:

The new FTP server runs in section 1 of the top level fork of the FTP
job.  While debugging some code, I have occasionally gronked the
server and wound up in the mini-exec.  No big deal if you've got wheel
enabled ...  However, I attempted to replicate some behavior in a
regular job by replacing the top-level EXEC with EFTPSR.  Everything
worked fine and when I was done, I did a RESET and EXEC and got back
to regular debugging.  Later, I noticed the following:

MX>rESET
MX>eXEC

 PANDA TOPS-20 Command processor 7.1(4454)-5
 End of TOPS20:<SLOGIN>COMAND.CMD.42
@i fil
 Connected to STAR:<FTP>.  JFNS:
 2   TOPS20:<SYSTEM>EXEC.EXE.2   Read, Execute
 1   EFTPSR.EXE.1405     Read, Execute

Devices assigned to/opened by this job: TTY47

@close 1
 1   EFTPSR.EXE.1405   Can't close file - File still mapped
@ena
!for 0
!i mem

280. pages, Entry vector loc EXEC len 3

  Section 0     R, W, E,  Private
0-12     Private   R, W, E
15-173   TOPS20:<SYSTEM>EXEC.EXE.2  2-160   R, E
200-273  TOPS20:<SYSTEM>EXEC.EXE.2  161-254   R, E
400-402  Private   R, W, E
440      Private   R, W, E
534      Private   R, W, E
545-547  Private   R, W, E
554-555  Private   R, W, E
644      Private   R, W, E
762-763  Private   R, W, E
  Section 1     R, W, E,  Private
1001     EFTPSR.EXE.1405  1   R, CW, E
1010-1014        EFTPSR.EXE.1405  2-6   R, E
1015     Private   R, E
1016-1043        EFTPSR.EXE.1405  10-35   R, E
1100-1103        Private   R, W, E
1104-1106        Private   R, CW, E
1107     Private   R, W, E
1777     Private   R, W, E
  Section 2     R, W, E,  Private
2000-2056        EFTPSR.EXE.1405  36-114   R, E
  Section 37    R, W, E,  Private
!
!unmap (CORE PAGES FROM) 1001 (TO) 2056
?Illegal to UNMAP EXEC
!

As can be seen, the mini-exec reset command didn't get rid of sections
1, 2 and 37.  Some investigation in MEXEC.MAC shows that RESET calls
DRESET, viz:

DRESET: MOVEI 1,-4
        KFORK                   ;KILL ALL FORKS
        MOVNI 1,1
        MOVSI 2,400000
        MOVE 3,[1B0+1000]       ;CLEAR ALL PAGES FROM USER MAP
        PMAP
        MOVNI 1,1               ;CLOSE ALL FILES
        CLOSF
        JFCL
        RET

As expected from the behavior above, the code only gets rid of pages
in section zero (which I wasn't using).  The problem is that I can't
use the EXEC to unmap the rest of the FTP server because the UNMAP
command thinks that I am trying to punt part of the EXEC itself!  I
then went into EXEC DDT and tried doing an SMAP% to get rid of the
sections, viz:

!^Eeddt
DDT
1[   457045,,430000   -1
B[   3   .fhslf,,1
C[   15000   37
D[   0   jsys 767$x

Interrupt at 155276
MX>sTART
!for 0
!i mem

206. pages, Entry vector loc EXEC len 3

  Section 0     R, W, E,  Private
0-12     Private   R, W, E
15-173   TOPS20:<SYSTEM>EXEC.EXE.2  2-160   R, E
200-273  TOPS20:<SYSTEM>EXEC.EXE.2  161-254   R, E
400-402  Private   R, W, E
440      Private   R, W, E
534      Private   R, W, E
535-544  Fork 0  263-272   R, E
545-547  Private   R, W, E
554-555  Private   R, W, E
644      Private   R, W, E
762-763  Private   R, W, E
770      TOPS20:<SUBSYS>UDDT.EXE.1  1   R, E
771      Private   R, W, E
777      Private   R, W, E

So far, so good, but at this point, EXEC DDT broke, viz:

!^Equit

Interrupt at 155276
MX>rESET
MX>eXEC

 PANDA TOPS-20 Command processor 7.1(4454)-5
 End of TOPS20:<SLOGIN>COMAND.CMD.42
@ena
!^Eeddt
SYS:XDDT.EXE does not have proper PDV
? Error encountered while attempting to load XDDT
Interrupt at 770233
MX>rESET
MX>eXEC

 PANDA TOPS-20 Command processor 7.1(4454)-5
 End of TOPS20:<SLOGIN>COMAND.CMD.42
@ena
!for 0
!i mem

235. pages, Entry vector loc EXEC len 3

  Section 0     R, W, E,  Private
0-12     Private   R, W, E
15-173   TOPS20:<SYSTEM>EXEC.EXE.2  2-160   R, E
200-273  TOPS20:<SYSTEM>EXEC.EXE.2  161-254   R, E
400-402  Private   R, W, E
440      Private   R, W, E
534      Private   R, W, E
545-547  Private   R, W, E
554-555  Private   R, W, E
644      Private   R, W, E
762-763  Private   R, W, E
  Section 37    R, W, E,  Private
37700-37701      TOPS20:<SUBSYS>XDDT.EXE.1  1-2   R, CW, E
37703-37732      TOPS20:<SUBSYS>XDDT.EXE.1  3-32   R, CW, E
37735-37736      TOPS20:<SUBSYS>XDDT.EXE.1  33-34   R, CW, E
37740-37753      TOPS20:<SUBSYS>XDDT.EXE.1  35-50   R, E
!^Eed
SYS:XDDT.EXE does not have proper PDV
? Error encountered while attempting to load XDDT
Interrupt at 770233