Bob Swartz, founder of Mark Williams Co, has allowed the sources for
COHERENT to be published under a three-clause BSD license. Steve Ness is
hosting them. They are available here:
http://nesssoftware.com/home/mwc/source.php
For reference, for folks who don't know what COHERENT is, it started as a
clone of 7th Edition, but grew more modern features over time. Dennis
Ritchie's recollections of his interaction with it:
https://groups.google.com/forum/#!msg/alt.folklore.computers/_ZaYeY46eb4/5B…
And of course the requisite Wikipedia link:
http://en.wikipedia.org/wiki/Coherent_(operating_system)
- Dan C.
PS: I hold a soft spot for COHERENT in my heart. I became interested in
Unix in high school, but this was before Linux was really a thing and
access to other systems was still hard to come by. I spotted an ad for
COHERENT in the back of one of the PC-oriented publications at the time,
"Computer Shopper" or some such, and realized that it was *almost* within
my reach financially and that I could install it on the computer I already
owned. Over the next month or so, I scraped up enough money to buy a copy,
did so, and put it on my PC. It was quirky compared to actual Unix
distributions, but it was enough to give one a flavor for things. The
manual, in particular, did not follow the traditional Unix format, but
rather was an alphabetical "lexicon" of commands, system calls and
functions and was (I've always thought) particularly well done. Links to
the COHERENT lexicon and various other documents:
http://www.nesssoftware.com/home/mwc/.
I graduated onto other systems rather quickly, but COHERENT served as my
introduction to Unix and Unix-like systems.
PPS: Bob Swartz is the father of the late Aaron Swartz.
On 2015-01-06 17:32, Mary Ann Horton<mah(a)mhorton.net> wrote:
>
> On 01/06/2015 04:22 AM,arnold(a)skeeve.com wrote:
>>> >>Peter Jeremy scripsit:
>>>> >>>But you pay for the size of $TERMCAP in every process you run.
>> >John Cowan<cowan(a)mercury.ccil.org> wrote:
>>> >>A single termcap line doesn't cost that much, less than a KB in most cases.
>> >In 1981 terms, this has more weight. On a non-split I/D PDP-11 you only
>> >have 32KB to start with. (The discussion a few weeks ago about cutting
>> >yacc down to size comes to mind...)
>> >
>> >On a Vax with 2 Meg of memory, 512 bytes is a whole page, and it might
>> >even be paged out, and BSD on the vax didn't have copy-on-write.
>> >
>> >ISTR that the /etc/termcap file had a comment saying something like
>> >"you should move the entries needed at your site to the top of this file."
>> >Or am I imagining it?:-)
>> >
>> >In short - today, sure, no problem - back then, carrying around a large
>> >environment made more of a difference.
>> >
>> >Thanks,
>> >
>> >Arnold
> Even with TERMCAP in the environment, there's still that quadratic
> algorithm every time vi starts up.
I must be stupid or something. What quadratic algorithm?
vi gets the "correct" terminal database entry directly from the
environment. Admittedly, getting any variable out of the environment
means a linear search of the environment, but that's about it.
What am I missing? And once you have that, any operation still means
either searching through the terminal definition for the right function,
which in itself is also linear, unless you hash that up in your program.
But I fail to see where the quadratic behavior comes in.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
A very nice addition to the archives. Thank you.
I well remember our disbelief that Mark Williams wrote all its own
code, unlike other vendors who had professed the same. As Dennis
described, we had fun putting together black-box tests that
recognized undocumented quirks (or bugs) in our code. We were
duly impressed when the results came back negative.
Doug
A prosperous New Years to all us old UNIX farts.
Years ago the USENIX conference was in Atlanta. It was a stark contrast between us and the Southern Baptists who were in town for their conference as well (punctuated at some goofball Baptist standing up in the middle of one of the restaurants to sing God Bless America or some such).
Anyhow, right before the conference someone (I think it was Dennis) made some comment about nobody ever having asked him for a cast of his genitals. A couple of friends decided we needed to issue genital casting kits to certain of the UNIX notables. I went out to an art supply store and bought plaster, paper cups, popsicle sticks to mix with, etc… Gould computers let me use one of their booth machines and a printer to print out the instructions. I purloined some bags from the hotel. It was pointed out that you need vaseline in order for the plaster to not stick to the skin. Great, I head into the hotel gift shop and grab ten tiny jars of vaseline. As I plop these on the counter at the cashier, she looks at me for a minute and then announces…
I guess y’all aren’t with the baptists.
People took it pretty tongue in cheek when they were presented. All except Redman who flew off the handle.
Dave Horsfall:
> At yet another, we had a Sun 3/50 window connected to a Convex, and acted
> all innocent when various dweebs did the old "echo 99k2vp..." etc trick.
John Cowan:
High-precision approximation to sqrt(2). What's the trick?
======
Not really a trick, just a hoary old zero-order CPU benchmark:
echo 99k2vp | time dc
You can see why letting people type that on a Convex thinking it was
a Sun 3/50 might have entertainment value.
Modern systems are far too fast for that to be worth while, though.
I still use a variant of it: a shell script called dc-N, containing
dc <<!
99k[2vszla1-dsa0<b]sb${1-500}salbx
!
meant to be invoked as
time dc-N 10000
or the like. (The internal default of 500 has long since gone
stale too, of course.)
Norman Wilson
Toronto ON
On 2014-12-31 21:14, Clem Cole<clemc(a)ccc.com> wrote:
>
> Jake - you have lots of help from others and using curses(3) is definitely
> the right way to program.
>
> But to answer your specific question about printf(string), according to
> Chapter 3 (Programmer's Info) of my old VT-100 user's guide, I think what
> is you are doing wrong is that "\033c" is not the ANSI clear to end of
> screen command.
Right...
> When I saw your message on my iPhone last night, the cache said - wait that
> can't be correct. But I could not remember why. So I had to wait until
> I got back home today to look in my basement.
>
> As I suspected, it's not an ANSI sequence. So are you running in VT-100
> (ANSI) mode or VT52 mode? I ask because it is close to the VT52 cursor
> right command which is actually: "\033C" but I do not remember is case
> mattered.
Case do matter.
> In VT52 mode you need to send the terminal: "\033H\033J" to clear the
> screen.
>
> In ANSI mode, it becomes: "\033[1;1\033[0J"
Shorter form: "\033[H\033[J"
> A few things to remember:
> 1.) Clear takes the current cursor position and clears from there to end of
> X (where X depends on mode, and type of clear). So you need to move the
> cursor to home position (aka 1,1).
Not really. It's way more advanced than that.
If we start with the generic clear screen, it is CSI Pn J
Where CSI can be expressed as ESC [ (or "\033[" in the same parlance as
above.)
Pn, then is an argument to the function, while J is the actual function
(clear screen in this case).
Now, Pn can cause many things:
0 Clear from cursor to end of screen
1 Clear from cursor to end of screen
2 Clear from beginning of screen to cursor
3 Clear whole screen
If no argument is given, the default is 0.
> 2.) VT-100's did not implement the full ANSI spec like Ann Arbor, Heathkit,
> Wyse etc. So there are a number of things that those terminals did
> better. A really good reason to you curses(3) because all the knowledge is
> keep in the termcap and as a programmer you don't need to worry about it.
Probably true. However, I'm not sure Ann Arbor or Heathkit did much
better. As far as I can remember, they were always more "weird", but I
might just be confused. However, curses(3) is definitely a good way of
not having to care about different terminal oddities.
> 3.) I saw sites were VT52 mode was sometimes preferred because it was good
> enough for most editing, and needed fewer chars to do manipulation. On
> slow serial lines, this sometimes was helpful. That said, give me an AAA
> any day. Like others, I still miss that terminal.:-)
Yeah, the VT52 was simpler, and had shorter control strings. But of
course, with the additional limitations that came with that.
Personally, I'd give an AAA or a Heathkit away if one was dropped on me.
A VT100 I would keep. :-)
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
, but I can't see how you're supposed to clear the screen on a vt100 in
2.9BSD. I guess printf'ing ("\033c") would do the trick, but I assumed
there was a more proper way; something that leverages the vt100 termcap
entry and does the right thing. Anyone?
thx
jake
Evening all,
Am I correct in my guess that 4.4BSD was built cross on an HP300? I have
never found a binary dist of anything other than HP300 4.4...and my
attempts to build 4.4 on ULTRIX/SunOS have so far not succeeded...it had
to have been built SOMEHOW.
I picked up an HP300 to help me get somewhere...but it seems to only have
a 68010. :(
I either need to find a definitive 68020-minimum one on ebay...someone
with one available...or some tips of actually cross-building 4.4 for MIPS
or SPARCv7 (I have physical hardware for either)
I am very determined to run pure 4.4 on something bigger than a PIC32. ;)
--
Cory Smelosky
http://gewt.net Personal stuff
http://gimme-sympathy.org Projects
> From: Mary Ann Horton <mah(a)mhorton.net>
> I loved my Ambassador!
Ditto!
> Still have one.
Argh! Now you've made me want one for my vintage -11's! Alas, I don't see one
on eBay.... :-(
Noel
The information give is correct. You could possibly argue that you
shouldn't be using those functions, but should be using the curses(3)
library instead, which in turn uses this stuff... But it's all up to how
complex you want to be. :-)
Johnny
On 2014-12-31 07:16, Jacob Ritorto<jacob.ritorto(a)gmail.com> wrote:
> Mary, this is exactly what I needed -- good to go now; thank you!
>
> As a side note: Man, what an intimidating can of braindamage I've opened!:)
>
> thanks all!
> jake
>
> P.S. if anyone's bored enough, you can check out what we're up to at
> https://github.com/srphtygr/dhb. I'm trying to get my 11yo kid to spend a
> little time programming rather than just playing video games when he's near
> a computer. He'a actually getting through this stuff and is honestly
> interested when he understands it and sees it work -- and he even spotted a
> bug before me this afternoon! Feel free to raise issues, pull requests,
> etc. if you like -- I'm putting him through the git committing and pair
> programming paces, so outside interaction would be kinda fun:)
>
> P.P.S. We're actually using 2.11bsd after all..
>
>
> On Tue, Dec 30, 2014 at 9:33 PM, Mary Ann Horton<mah(a)mhorton.net> wrote:
>
>> >This is the right info. Be sure to scroll up to see how to use tgetent,
>> >tgetstr, and tputs. You aren't likely to need any padding.
>> >
>> >Essentially:
>> > tgetent using getenv("TERM") gets you the whole entry from
>> >/etc/termcap
>> > tgetstr of "cl" gets you the "clear"
>> >sequence
>> > tputs outputs the "clear"
>> >sequence
>> >
>> >
>> >On 12/30/2014 06:22 PM, Dan Stromberg wrote:
>> >
>>> >>Check outhttps://www.gnu.org/software/termutils/manual/termcap-1.3/
>>> >>html_mono/termcap.html#SEC30
>>> >>- especially the "cl" entry.
>>> >>
>>> >>ISTR the database being at /etc/termcap normally.
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol