> The machine is a Codata 300
Wow.
I went to Leeds Poly (as it was then) in the mid 1980s.
There where two Codatas in the electronics dept., one in its
original plastic case and one 19inch rackmount - built as a
IEEE 488 controller; I assume what you have is one of those.
The former machine was loaded with Whitesmiths cross compilers
and I learnt z80 assembly language on it ☺
It ran V7 indeed, and was a friend of the Interdata/Perkin Elmer
3210, the main electronics teaching machine. If it is this
machine then it should have the V7 source from the 3210 (Xelos
as it was called) and the source for the drivers for the
codata (which we gained by "accident").
I may be able to remember some other snippets - contat me
off-list with specific questions. I can give you the names
of the lecturers who would know most about it but I guess they
are now retired (though they may still be Headingly somwhere).
(fondly remembers Leeds).
-Steve
Hi All.
This is really gonna stretch the memories. (I may have even asked about
it on this list before.)
At one of the earlier USENIX conferences that I attended, maybe in
Atlanta, there was a contest to make up humorous new errno values.
The one that won, which I remember to this day was:
EMISTERED:
A host is a host from coast to coast,
and no-one can talk to host that's close,
unless the host that isn't close
is busy, hung, or dead.
I have quoted this is the gawk doc for many years.
I'm wondering if there is a way to find out who was the author
of this gem? I'd like to give him/her credit.
Thanks,
Arnold
I just received a new TUHS subscription request along with
an interesting query. Can anybody help Michael with his problem?
Cheers, Warren
----- Forwarded message from "Engel, Michael" -----
Dear Warren,
Could you please subscribe me to the TUHS mailing list?
I haven't worked with old Unix systems for quite some time, but I was appointed as a
Senior Lecturer at Leeds Beckett University (UK) two months ago and - to my big
surprise - I found an old Unix machine collecting dust in a corner..
The machine is a Codata 300, a Multibus-based system using a licensed clone of the
original Sun 100U CPU board and a number of additional Multibus controllers. The
machine seems to be complete, including two 8" SMD disks and a Cipher 9-track
tape drive, we also seem to have a set of replacement boards and the CPU board
manual (including schematics and code snippets explaining how to access the onboard
devices - some Codata documentation can also be found on bitkeeper).
We haven't tried to power up the machine yet (and, built around 1983, it certainly needs
a close examination of the power supply and capacitors). From information on the net,
this machine runs a Unisoft port of 7th Edition Unix - similar to the Sun 1 machines and
probably a Whitesmiths C compiler (there's a Whitesmiths license badge attached to the
case). Definitely a very interesting and probably quite rare machine and we would like
to revive it (and, if things go well, create a FPGA reimplementation of the system in
the context of a student design project).
Now, I would love to know more details about the implementation of 7th Edition Unix on
the 68000 and the use of the custom MMU built out of fast SRAM and TTL logic.
I do not think that source code to any of the various 68k 7th Edition ports produced by
Unisoft is available somewhere - do you know of a possible source?
Alternatively, do you think it would be worthwhile asking Unisoft for the source code or
do you know if anyone has tried this already? According to the Unisoft history web page
(http://www.unisoft.com/history.html) they still seem to know that they were porting Unix
30 years ago...
The only remotely related source code I could find in my archives is the A/UX 0.7 source
(SVR2, if I'm not mistaken), which probably already required a 68020 with 68851 MMU.
Best regards,
Michael Engel
----- End forwarded message -----
> From: arnold(a)skeeve.com
> it was clear at the time that UNIX and what was happening was extremely
> special .. Those of you who were there really were part of a "golden
> age".
I once observed to Jerry Saltzer that when I started at the MIT CS labs, I
had been bummed because I had missed what I considered their 'Golden Age' -
the work on CTSS and Multics.
When I showed up there, I did a deal where they let me use a PDP-11/40 to
explore some OS ideas I had, if I woule write diagnostics on it for a ring
interface they were working on - part of a project on networking that
included work on something called internetworking.
I had no idea what I was getting into!
And of course the networking work soon sucked me in completely. In that
message to Jerry, I said something to the effect of 'clearly I've lived
through a second golden age, and only now am I understanding that'.
Noel
TMG was in v2-v6, sometimes in man1 and sometimes in man6.
I have an apparently complete source listing. The year is
uncertain. (Back then date headings from pr didn't mention the year!)
The accompanying manual, though, is dated 1972. There is also, besides
the TMGL definition of TMGL, a TMGL definition of pig Latin as a
simple test case.
None of this is useful, though, without a PDP-11 binary for tmg--
the usual chicken-and-egg problem with a full-blown compiler written
in its own language.
Doug
> >Speaking of TMG, is there an implementation for FreeBSD/Mac/Linux? Or do
> > I have to find a CDC/PDP-7 emulator first? :-)
> >
> >-- Dave
>
> TMG is mentioned in the v3 manual:
>
> /sys/tmg/tmgl.o -- the compiler-compiler
>
> There's no files for it for v5 but it is in v6 and it seems to
> disappear after that.
> On TUHS V6/usr/source/tmg/tmgl.t would seem to be a source file.
>
> I did manage to get something running for pdp-7 on simh and got to the
> GA prompt.
> Didn't get it to do much beyond printing "CAB DECSYS7 COPY 15 JUNE 1966"
>
> Mark
> From: Doug McIlroy <doug(a)cs.dartmouth.edu>
> None of this is useful, though, without a PDP-11 binary for tmg
There seems to be be binary for TMG on the V6 distribution.
Noel
Eric S. Raymond has written an article about the history of the time.h
functions at http://www.catb.org/esr/time-programming/
>From his blog post announcing it (http://esr.ibiblio.org/?p=6311)
> The C/UNIX library support for time and calendar programming is a nasty mess of historical contingency. I have grown tired of having to re-learn its quirks every time I’ve had to deal with it, so I’m doing something about that.
>
> Announcing Time, Clock, and Calendar Programming In C, a document which attempts to chart the historical clutter (so you can ignore it once you know why it’s there) and explain the mysteries.
>
> What I’ve released is an 0.9 beta version. My hope is that it will rapidly attract some thoroughgoing reviews so I can release a 1.0 in a week or so. More than that, I would welcome a subject matter expert as a collaborator.
When I saw it I thought it might be generally interesting to people who
subscribe to this list.
> From: Doug McIlroy <doug(a)cs.dartmouth.edu>
> Sorry for straying from direct Unix history
Au contraire. This was a fascinating account, and very valuable to have it
noted down for history. Please stray like that anytime you feel like it! :-)
Noel
scj wrote:
> There was a compiler/compiler in use at the Labs, imported I think by Doug
> McIlroy, called TMG.
Sorry for straying from direct Unix history, but this remark spurred a lot
of memories.
TMG (from "transmogrify", defined in Webster as "to change or alter, often
with grotesque or humorous effect") was imported from Bob McClure, erstwhile
Bell Labs person, then at Texas Instruments. And an interesting import
job it was. McClure had written TMG for the CDC 1604 in machine language. He
sent me green coding sheets hand-transliterated into 7090 code. Interesting
debugging: one knew that the logic of the code was sound, but the opcodes
might not always be right. Sometimes, for example, the wrong one of the two
accumulator-load instructions, CLA and CAL, was used.
Clem Pease converted TMG to the GE 635 for Multics by the artifice of defining
7090 opcodes as 635 macros--sometimes many instructions long to slavishly
emulate the 7090's peculiar accumulator (which mixed 38-bit sign-magnitude
with 37-bit twos-complement and 36-bit ones-complement arithmetic). It's
amusing to speculate about the progressive inflation of TMG had McClure sent
me a similar translation for the 7090.
TMG had a higher-level language written in TMG, which evolved during the
Multics project into something considerably more elaborate than McClure's
original, including features like syntax functions, e.g. seplist(a,b) denoted
a sequence of a's separated by b's, for arbitary syntactic categories a and
b. Syntax functions took TMG beyond the domain of context-free languages.
Multics was to be written in PL/I, a compiler for which was commissioned from
Digitek. They had brilliant Fortran technology, but flubbed PL/I. When it
appeared that the Digitek compiler was hopeless, Bob Morris proposed that
we write a quick and dirty one in TMG. Despite being slow (an interpreter
running on an emulated 7090) and providing only three diagnostics, this
compiler carried the project for a couple of years.
When Unix came along, we were again faced with how to bootstrap TMG across
machines. This time I wrote a bare-bones interpreter in PDP7 assembler, then
by stages grew the language back to the Multics state. Ken, in a compliment
I still treasure, once called this the most amazing program on the original
Unix machine.
I believe TMG was involved in the initial evolution of B, but the
real tour-de-force in B was the ability of an interpreted version to
exploit software paging and transcend the limited memory of the PDP-11.
The following scenario was to be repeated several times in the early days
of Unix. When the native version of B ran out of steam, the interpreted
version would be used to introduce some new optimization that would squeeze
the native version back to fit. (Bigger input, smaller output!) Subsequently
we saw the same thing happen with C and the kernel. When the kernel grew
too big, a new optimization would be introduced in C to squeeze it. (And to
squeeze the compiler, too. The compiler, though, never enjoyed B's advantage
of being able temporarily to run in a bigger arena.)
Doug