The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: wkt@tuhs.org (Warren Toomey)
Subject: [TUHS] speak.c, or sometimes the bits are under your nose
Date: Fri, 9 Dec 2011 09:08:20 +1000	[thread overview]
Message-ID: <20111208230820.GA8547@minnie.tuhs.org> (raw)

Hi all, in the past few days I've been getting some
interesting e-mails from a new TUHS member,
Jonathan Gevaryahu. He has been searching for some
lost software, and his story of how he found it
is a good reminder to check through all the zeroes
and ones on the digital media at hand. With his
permission, I reproduce the e-mails below.

Cheers,
	Warren


Hi, I'm Jonathan Gevaryahu, one of the developers of MESS but also a
speech synthesis history buff. I've been trying to find a copy of the
old unix 'speak' command source code and rule tables that M. D. Mcilroy
wrote back in 1974ish, but the TUHS archives only have the man pages
for it, and not the actual program or its tables.

As for the "why?" of this, its an important piece of history, and the
phoneme set used on the Federal Screw Works "VOTRAX" Model VS-4 unit
which was used with 'speak' at Bell Labs is compatible with the later
Votrax Model VS-6 unit at CHM, and also with the Votrax "SC-01" chip
used in some arcade/video games, several computer peripherals, and on
the "Type 'N' Talk" and "Personal Speech System" products. So actually
running the old code and having it speak should be quite doable, if we
can recover enough of it to be useful.

[ Jonathan assumed that the 'speak' source code had been lost. ]

I even asked Doug McIlroy about it a few years ago and he didn't have
a copy, and I had assumed it was just plain lost... Until today.
I was poking around in random TUHS files (after reading about
the v1 unix restoration project) and noticed that the size of
recovered files from the ritchie v6 tapes in the .tar.gz files
is actually significantly smaller than the tapes themselves. I
assumed there had to be some other data there, possibly corrupt or
fragmentary, and got down to peeking at the file contents themselves.
There were some mentions of speak.m and .c and .v, but finally, in
http://minnie.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v6/v6doc.gz
I found the remains of the speak program. See
http://pastebin.com/FdvRYM2T for what I've managed to recover so far
(actually since i pasted that I recovered a good deal more of it, but
a lot is out of order and bits are missing) The file is fragmentary as
far as I can see, and is only speak.c (the .m file containing the rules
I haven't found yet, but since Doug has a scanned copy of the paper
describing speak on his website, hopefully I can just regenerate the
rule tables if needed), but it is there! Hopefully speak.m or .v are
still waiting to be found on that or one of the other tape images.

Also there are other things on that tape like the chess program, and
tic tac toe, which may not exist elsewhere. (Though, for these two I
honestly haven't checked)

Also, in the last 5 minutes I found a chunk of what I'm pretty sure is
either speak.m or speak.v, so there's more than just the .c file there.

Further progress attached of recovering speak from deleted disk pack
sectors: I have all of speak.c in order except for one 512-byte sector,
which was overwritten at some point, in the phoneme table. (This has to
be the least "damaging" sector of the entire program. lucky!) I also
have a good chunk (maybe 50-60%) of what may be a mix of speak.m and
speak.v, both out of order. I did not yet find
a copy of 'speakm', the rule displayer program for speak.m/.v. There is
a program, located after speak.c on the disk image, which looks like it
would convert numbers and months to their full speakable names.

In addition, either slightly more or slightly less of the files may be intact
on the
http://minnie.tuhs.org/Archive/PDP-11/Distributions/research/Ken_Wellsch_v6/v6.tape.gz
image, which appears to be originally an exact dd-copy of the dennis_v6
disk packs.

Ok, here's the 'repaired' speak.c file, with the missing entries of the
table filled in (this was IMMENSELY helped by the fact that speak.o, the
compiled object file, was also on the disk pack and appears to be fully
intact including the table; the ruleset files are fragmentary so far.)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: speak.fixed.c
Type: text/x-csrc
Size: 14336 bytes
Desc: not available
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20111209/ac749b67/attachment.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: speak.o
Type: application/x-object
Size: 2560 bytes
Desc: not available
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20111209/ac749b67/attachment.o>


             reply	other threads:[~2011-12-08 23:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-08 23:08 Warren Toomey [this message]
2011-12-09 22:43 ` Al Kossow
2011-12-09 23:17   ` Al Kossow
2011-12-11  2:11   ` Jonathan Gevaryahu
2011-12-11  0:34 ` Jonathan Gevaryahu
2011-12-11  2:51   ` Doug McIlroy
2011-12-12  8:13 ` Jonathan Gevaryahu
2011-12-13  3:08   ` [TUHS] Command line post-arguments with #! Random832
2011-12-14 23:36     ` Sven Mascheck
2011-12-13 19:29   ` [TUHS] speak.c, or sometimes the bits are under your nose Jonathan Gevaryahu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111208230820.GA8547@minnie.tuhs.org \
    --to=wkt@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).