Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Randy Cook: Where is this guy?

366 views
Skip to first unread message

Stuart Blake Tener

unread,
Nov 12, 2001, 10:50:05 PM11/12/01
to
TRS-80 enthusiasts:

I am curious, does anyone know what ever happened to Mr. Cook?

Stuart
Beverly Hills, CA

Skipp

unread,
Nov 15, 2001, 11:35:58 AM11/15/01
to
Hi Stuart,

Probably still living in Texas... I first met Mr Cook's software in the
form of model 1 trs-dos. If you typed a few keys and held down the 2&6
numbers after pressing enter, you received the hidden copyright message
with his name and address.
From what I heard, Tandy tried to screw him in court... and he nailed them
back with his hidden ownership claim... later versions have Tandy's name
in place.... It was very funny.

cheers
skipp
http://pilot.ucdavis.edu/trs80

: Stuart Blake Tener <stu...@misty.com> wrote:
: TRS-80 enthusiasts:

Neil Morrison

unread,
Nov 15, 2001, 7:02:23 PM11/15/01
to
The popup message

RANDY
COOK

became

TANDY
CORP

FWIW.

NM


"Skipp" <sk...@pilotNOSPAMPLEASE.ucdavis.edu> wrote in message
news:9t0qte$83$2...@woodrow.ucdavis.edu...

ven

unread,
Nov 25, 2001, 5:25:34 PM11/25/01
to
I'm surprised that Frank Durda IV doesn't know Randy (or his
whereabouts). Frank if you are reading this, can you fill in the
details on how Randy was chosen to do TRSDOS (or is there an "no
bad-mouth" clause that you signed); why wasn't a CP/M port cosidered?
etc?

-Ven

"Neil Morrison" <neil...@hotmail.com> wrote in message news:<jIYI7.4250
$hh4.7...@news.tor.primus.ca>...

Frank Durda IV

unread,
Nov 26, 2001, 3:07:01 PM11/26/01
to
ven <m...@xtracool.com> wrote:
: I'm surprised that Frank Durda IV doesn't know Randy (or his

: whereabouts). Frank if you are reading this, can you fill in the
: details on how Randy was chosen to do TRSDOS (or is there an "no
: bad-mouth" clause that you signed); why wasn't a CP/M port cosidered?
: etc?

I am pretty sure that I have never met Randy Cook or even talked with him.
I arrived years after Tandy and Randy parted, and people were still cursing
his name when I arrived at Tandy in March of 1982. That was as long as four
years after the parting of ways.

Apart from the verbal history handed-down by the people who were at Tandy
back then, I only know Randy from listings of code left from that era that I
went through one day in the late 1980s when Tandy management was on one of
their, "you won't ever need any of whatever that stuff is, so get rid of
it even though we don't need the space" flings.

Most of the software back then was either developed on floppy-based systems
or on a Tandem system run by the Tandy Data Processing group. In either
case, the original source code media for many systems was already lost by
the time I came along (a few have been recovered), leaving only the paper
listings.

I saved some interesting bits for myself, but most went in the bin. Tandy
essentially had no concept of the need to archive software in some form.

Three of the people who knew most about that period (George Robertson - who
was whom Randy reported to, Eric Schmitt and Ron Light) died in the 1980s and
early 1990s, so a lot of that history on the software side of Tandy is now
lost.

As a detached observer who has heard the stories told by many different people
from that era, I believe I can give a simplistic summary of what happened:
Randys was developing TRSDOS on Tandys nickel (or what Tandy considered their
nickel) and Randy expected to be able to also sell it or design components of
it to other companies. This made many people at Tandy mad and led to the way
Randy was ejected from Tandy. Randy also wanted to be visible, ie people
know it was his operating system instead of TRSDOS simply being known as a
product of Tandy, something that was bound to cause conflict eventually and
it did. Tandy was also very paranoid about allowing various types of
information about the computer systems out, even when it didn't make any
sense. Tandy discovering the secret "pop-up" message referring customer
support questions about TRSDOS to Randys home address was considered the
final straw, and a new release of TRSDOS was rushed-out mainly to replace the
Randy Cook part of that message.

All this made Tandy paranoid about "hidden" messages for many years, and I
personally had to break the news to Logical Systems that the names of all
their people could not be hidden in the A! and B! commands in LDOS like they
were prior to the 5.1.3/R version Tandy distributed. If the commands that
caused the names to appear had been documented, it probably would not have
been as big of an issue, but there were people inside Tandy who didn't want
any outside company providing the operating system for any Tandy computer,
so the entire LDOS project was on thin ice.

Curiously, what Randy did is very similar to what Bill Gates did to MITS.
In the late 1970s, MITS sued Bill Gates in New Mexico court because Bill was
selling the Altair interpreter BASIC to other computer makers. For some
insane reason, the judge decided that although the development and support of
that interpreter BASIC had been paid for by MITS, MITS didn't hold the
ownership to it and Bill (now incorporated as Microsoft), could freely sell
his BASIC interpreter to others (including Tandy as Level II BASIC) without
owing MITS anything. Legal types still shake their heads in disbelief over
this decision that defied logic.

If a similar set of legal circumstances had occurred for Randy, who knows
what would have happened.

Frank Durda IV - only this address works:|"Bugchk: SckMud - Shut her down
<uhclem.dec01%nemesis.lonestar.org> | Scotty, she's sucking mud again!"
| - A hidden message I put in XENIX
This Anti-spam address expires Dec. 31st | that got me punished for years.
Copr. 2001, ask before reprinting.

ven

unread,
Nov 27, 2001, 12:35:44 AM11/27/01
to
Thanks for the history session! Too bad the software side is lost.
Do you keep in "touch" with Steve Leininger/Don French? Have they
retired from Tandy?

Regarding L2 BASIC, old BillG was just a code porter? From all the
folklore, I thought he single-handledly wrote it from scratch. There
was one article mentioning how "they" (or what is just Bill) were
writing the interperter during flight and finished it just as the
plane was landing..etc, etc.

-Ven


Frank Durda IV <uhclem...@nemesis.lonestar.org> wrote in message news:<GnFBv...@nemesis.lonestar.org>...

Frank Durda IV

unread,
Nov 27, 2001, 4:17:30 PM11/27/01
to
ven <m...@xtracool.com> wrote:
: Thanks for the history session! Too bad the software side is lost.
: Do you keep in "touch" with Steve Leininger/Don French? Have they
: retired from Tandy?

Steve was bored into leaving Tandy in 1985 after being put into a futurist
technology research position reporting to Roach, a place where he could still
be with the company and ignored. Steve didn't beat the "PC compatible" and
"copy everything IBM does" drums like all the other merchies, constantly
railing against getting trapped making exactly what everybody else was making
and doing only what Microsoft told Tandy to do, so his opinions were usually
ignored.

My last contact was a lunch I had with him shortly before he left where he
expressed his displeasure with the way Tandy was headed. He pretty-much
predicted the demise of Tandy Computers seven years ahead of time, right
down to Microsoft stabbing Tandy in the back on a financially risky project,
which happened in 1992.

I vaguely recall the name Don French, so he must have left before 1982.


: Regarding L2 BASIC, old BillG was just a code porter? From all the


: folklore, I thought he single-handledly wrote it from scratch. There
: was one article mentioning how "they" (or what is just Bill) were
: writing the interperter during flight and finished it just as the
: plane was landing..etc, etc.

Most of that is revisionist rubbish that Microsoft PR puts out to cover up
the bits of history that don't praise Bill. For example, Xbox is Microsofts
SECOND attempt in the set-top game box market, not the first as they claim
these days. The first, a joint project with Tandy and with backing from
Zenith and other hardware makers, plus big-name software developers flopped
badly (some customers just aren't willing to wait five minutes to be asked
"Have you played this game before?", which is how long Kings Quest V took).

Microsofts abrupt back-out and later denial of the existence of the product
left many of the other companies in financial distress (some later got out
of the biz completely and Microsoft almost immediately entered that now-vacant
market segment with a similar product of their own). Microsoft actually went
before the press and said that Modular Windows wasn't a product, just a
concept, despite having pressed CDs and four-color manuals that anyone could
order. Later, the same code was a product again, having changed its
disguise, known more recently as Windows CE.

Anyway, having seen the old BASIC interpreter source code, the majority of the
original code was really written by Paul Allen, although he freely credits
(in the source code comments) the books he obtained various algorithms from.
The command parser/editor/tokenizer appears to be mainly Bills work, and also
appears to be based partly on algorithms already published, such as some
items from Knuth, although those modules don't credit their sources. All
math and string functions were done by Paul according to the comments in the
source code. Later features were the work of additional programmers.
By 1976, there were at least three other people touching that code.

After the original implementation, it was a largely a port product, since
the code by then was assembled using MACRO on a DECsystem-20. MACRO was a
very powerful assembler/pre-processor for the DECsystem platforms. Using the
appropriate conditionals and macro include files, the same set of source code
files could emit binary code for a 8080, 6502 and other processors, meaning
vendor "A" frequently unexpectedly picked-up fixes and feature-changes
ordered by vendor "B", or the new bugs introduced by the changes made for some
other vendor. The last big development on that code was done in the early
1980s when it was made somewhat compliant with the ANSI Minimal BASIC Language
standard, and that work was clearly done by other people.

Microsoft eventually had two DECsystem-20s they used for code assembly.
One was called "Central Heating Plant", and the other was "Miss Piggy".

The original BASIC interpreter code was abandoned when several high-speed
BASIC systems came along for the PC, which made the Microsoft interpreter
BASIC look pretty slow. These other systems did partial compilation of code
as it was entered (so no run-time syntax checks were needed), an idea that
can be found back in the HP2000/HP3000 time sharing systems of the 1970s.
Microsoft then bought one of those third-party systems and replaced BASICA
and GWBASIC with that faster system which I think was called Quick BASIC.
The same thing happened again a few years later when Microsoft bought another
graphically-oriented BASIC system that was gaining popularity, and that one
was renamed Visual BASIC.

Bills participation in the Model 100 is also widely enlarged by Microsofts PR
department, far beyond the actual contribution, although he did get Cc'ed on
a lot of the bug reports we sent up during development when things were
getting badly off schedule. Having high-level oversight into the software
side of the Model 100 project might be a more accurate description of his
real participation.


Frank Durda IV - only this address works:|"I picked up a Magic 8-Ball the
<uhclem.dec01%nemesis.lonestar.org> | other day and it said 'Outlook
| not so good'. I said 'Sure,
This Anti-spam address expires Dec. 31st | but Microsoft still ships it.'"

Kenneth Brody

unread,
Nov 28, 2001, 3:07:09 PM11/28/01
to
Frank Durda IV wrote:
[... Microsoft BASIC ...]

> After the original implementation, it was a largely a port product, since
> the code by then was assembled using MACRO on a DECsystem-20. MACRO was a
> very powerful assembler/pre-processor for the DECsystem platforms. Using the
> appropriate conditionals and macro include files, the same set of source code
> files could emit binary code for a 8080, 6502 and other processors, meaning
[...]

As one who disassembled both Tandy's Level 2 BASIC and Applesoft BASIC,
I can verify that fact. Having already done Tandy's, figuring out how
Apple's worked was a piece of cake, as the logic was virtually identical.

--

+---------+----------------------------------+-----------------------------+
| Kenneth | kenb...@bestweb.net | "The opinions expressed |
| J. | | herein are not necessarily |
| Brody | http://www.bestweb.net/~kenbrody | those of fP Technologies." |
+---------+----------------------------------+-----------------------------+
GCS (ver 3.12) d- s+++: a C++$(+++) ULAVHSC^++++$ P+>+++ L+(++) E-(---)
W++ N+ o+ K(---) w@ M@ V- PS++(+) PE@ Y+ PGP-(+) t+ R@ tv+() b+
DI+(++++) D---() G e* h---- r+++ y?

Frank Durda IV

unread,
Nov 28, 2001, 5:25:50 PM11/28/01
to
[5]Frank Durda IV wrote:
[5][... Microsoft BASIC ...]
[5]After the original implementation, it was a largely a port product, since
[5]the code by then was assembled using MACRO on a DECsystem-20. MACRO was a
[5]very powerful assembler/pre-processor for the DECsystem platforms. Using the
[5]appropriate conditionals and macro include files, the same set of source code
[5]files could emit binary code for a 8080, 6502 and other processors, meaning
[5][...]

Kenneth Brody <kenb...@bestweb.net> wrote:
[6]As one who disassembled both Tandy's Level 2 BASIC and Applesoft BASIC,
[6]I can verify that fact. Having already done Tandy's, figuring out how
[6] Apple's worked was a piece of cake, as the logic was virtually identical.


It also meant that the code used all non-8080 processors inefficiently,
typically ignoring superset instructions, such as those in the Z80. You will
find the code doing 16-bit math (like subtracts) using several 8-bit
instructions in little subroutines when a single 16-bit equivalent instruction
that could do the entire job sat there unused.

Only in OS-specific code would you see any use of any extra features of
the target processor or OS, like on the Model 4 where they had to get something
out of a table in the OS indexed via the IX/IY registers, a Z80-unique thing.


Frank Durda IV - only this address works:|"The Knights who say "LETNi"
<uhclem.dec01%nemesis.lonestar.org> | demand... A SEGMENT REGISTER!!!"
|"A what?"
This Anti-spam address expires Dec. 31st |"LETNi! LETNi! LETNi!" - 1983

Bruce Tomlin

unread,
Nov 29, 2001, 12:34:25 AM11/29/01
to
> Kenneth Brody <kenb...@bestweb.net> wrote:
> [6]As one who disassembled both Tandy's Level 2 BASIC and Applesoft BASIC,
> [6]I can verify that fact. Having already done Tandy's, figuring out how
> [6] Apple's worked was a piece of cake, as the logic was virtually identical.

Ditto for the 6809 Color Computer BASIC. However, I also disassembled
the Microsoft 6502 BASIC from an Ohio Scientific Challenger, and IIRC
that thing was a truly hacked up mess. The disk I/O support didn't use
GET/PUT like the Z-80 basic, but instead had a more Unix-like SEEK
(maybe a different word) command so you could use the PRINT and INPUT
commands at any address in the file.

And of course there was the Model 100 BASIC, which used a BCD floating
point library. In college, I ran the Model 100 ROM on an 8080 emulator
I wrote for a class, and found a DAA bug because of its BCD math.

I wouldn't be surprised (if I ever tried disassembling them) to find
strong similarities between the Xenix 16/6000 version and the Macintosh
version, as they both used BCD float.

In article <GnJ7n...@nemesis.lonestar.org>,


Frank Durda IV <uhclem...@nemesis.lonestar.org> wrote:

> It also meant that the code used all non-8080 processors inefficiently,
> typically ignoring superset instructions, such as those in the Z80. You will
> find the code doing 16-bit math (like subtracts) using several 8-bit
> instructions in little subroutines when a single 16-bit equivalent
> instruction that could do the entire job sat there unused.

Very true. The Level II BASIC code basically only used the JR
instructions of the Z-80, and even missed a couple of those.

The worst example was in the original 8086 versions, where a memory move
generated inefficient code that was almost certainly a direct
translation from 8080/Z-80 assembler code. I didn't disassemble it
myself; I read about this in an ancient issue of Dr. Dobbs.

0 new messages