
Lisp Interpreter in Tandy TRS-80/100 Basic - franze
https://m.facebook.com/#!/story.php?story_fbid=10157953582457370&id=780707369
======
LeServal
Hi... I'm the guy who ported this, which was actually not too difficult, as
the original gentleman, to whom all honour belongs, left good hints. Most
"issues" where really just IFs without THENs. There were only two errors I saw
in Ira Goldking's source, a wrong line number and a THRN instead of THEN. This
is a link for those not on Facebook:
[https://pastebin.com/2Mih71eF](https://pastebin.com/2Mih71eF)

~~~
eschaton
Any chance of putting it on github, perhaps even starting with the original?

~~~
LeServal
Chaire o eschaton!

As per your request:

[https://github.com/KedalionDaimon/LispForTandy](https://github.com/KedalionDaimon/LispForTandy)

------
haunter
From the author:

>This one is just for fun. When I first learned Lisp in 1981, I did so by
reading Winston and Horn's book and writing my own Lisp interpreter. The
interpreter was written in Basic on the only system I had access to at the
time: a TRS-80 Model I. This interpreter eventually ended up as part of a
series of three articles on Lisp that I wrote for 80 Micro, a TRS-80 hobbyist
magazine. The first part of the series, which contains the source code for the
interpreter itself, is included here. Note that the listing has all optional
spaces removed so that I could fit both the interpreter and 1100 (!) cons
cells into 16K (!!) of memory

[http://mypage.iu.edu/~rdbeer/](http://mypage.iu.edu/~rdbeer/)

~~~
imglorp
Oh hah, I know this guy from Case Western CS dept. Around 1990 he was writing
some Lisp on a TI Explorer lisp machine to simulate cockroach neurons for an
AI project.

------
leoc
If we're willing to extend the discussion to microcomputer Lisps targeting
machine language, I'll repost an old comment
[https://news.ycombinator.com/item?id=20019592](https://news.ycombinator.com/item?id=20019592)
:

> There were various Z80 and MOS 6502 microcomputer Lisp implementations
> written back in the '80s, some commercially released at the time, some
> readily accessible nowadays. [https://www.wisdomandwonder.com/link/3787/how-
> small-can-a-sc...](https://www.wisdomandwonder.com/link/3787/how-small-can-
> a-sc..).
> [https://groups.google.com/forum/#!topic/comp.lang.scheme/Z_2...](https://groups.google.com/forum/#!topic/comp.lang.scheme/Z_2..).

> (There's one that I'm horribly, horribly overdue to get back to the authors
> about archiving on the Internet, actually. Anyone who's based in North
> America and happens to have the hardware and the expertise to recover data
> from both 5.25" and 8" floppies in some CP/M format?)

~~~
kjs3
You might check out the ClassicCmp
([http://www.classiccmp.org/](http://www.classiccmp.org/)) or Vintage Computer
Foundation ([http://vcfed.org/wp/](http://vcfed.org/wp/)) mailing lists. There
are folks on there with extensive expertise and equipment for recovering and
archiving data.

~~~
leoc
Thanks!

------
velcrovan
Funny, my current job involves a lot of coding in BASIC (BASIS and ProvideX
commercial flavors) and I'm trying to wedge in some Racket where I can. I got
my start typing in listings from Rainbow magazine at age 10. (I never thought
I'd be writing BASIC for a living though, life took a turn at 35)

~~~
zozbot234
> BASIS and ProvideX commercial flavors

Looks like these are both "business" BASIC variants. Wiki has some information
about ProvideX, nothing about BASIS (either the company or the BASIC product).
What's the point of coding in these sorts of languages at the dawn of the
2020s? Do you still have a lot of legacy code around that can't be forward-
ported for some reason? Do you have non-technical folks surveying the code, or
even contributing to it?

~~~
bitwize
Business BASIC was all the rage in the 1970s, especially for small to medium-
sized businesses, and for good reason. It provided business functions like
forms and database access in a manner that was much, much easier to work with
than the dominant business language of the time, COBOL. It also had
sophisticated programming constructs. For example, while it didn't have
structured exception handling like Java, it did have Go-style mandatory error
handling; every command that performed I/O had to be passed, as required
parameters, the line numbers of where to branch under various error
conditions.

Both BASIS and ProvideX are based on Java and provide rather thorough JVM
integration. The languages themselves also haven't remained stagnant; they
have approximate feature parity with Visual Basic. Both are derived from the
MAI Basic Four dialect that was popular in the 1970s.

And yes, some large complicated business software, including the MAS 90 and
MAS 200 accounting systems, was built using Basic Four. Porting such a
complicated code base would be cost-prohibitive compared to porting the Basic
Four dialect of Business BASIC to new environments and just running it as is
-- so Business BASIC is COBOL-like in that regard also.

~~~
velcrovan
> "Both BASIS and ProvideX are based on Java and provide rather thorough JVM
> integration."

I'm aware of this evolution. However, the software at my company was not
maintained to keep pace with it. Instead it was endlessly customized within
the constraints of the original interpreter. At this point, updating the
software to use newer variants even by the same companies would take roughly
the same effort as rewriting it in Python, for far less reward.

------
RodgerTheGreat
Facebook has to be the least convenient way this could be hosted. Here's a
mirror: [https://pastebin.com/raw/Yq5khyQL](https://pastebin.com/raw/Yq5khyQL)

~~~
reaperducer
_Facebook has to be the least convenient way this could be hosted_

Compared to the rest of the internet, yes. But for the Model 100 people, this
is actually the cream of the crop.

Sadly, information in the Model 100 community is notoriously difficult to get
to. Well, not fully "difficult." More like "obnoxious."

Most of the good stuff is on old web sites with many broken links, little
documentation, and abysmal navigation. I think the main repository is actually
the web site of a guy who died years ago and is kept online, but unmaintained
and suffering from severe bitrot, by people about to go the same way.

For interactive discussion, the primary source is a mailing list where people
ask the same questions over and over and nobody trims their replies, so you
might get a message reply that just says "yep" followed by 150 lines of nested
quotes. In digest form, it's simply unusable.

So, amazingly, a Facebook post is a thoroughly modern and convenient way for
Model 100 enthusiasts to pass information around, compared to all of the other
methods they employ.

~~~
zozbot234
> Most of the good stuff is on old web sites with many broken links, little
> documentation, and abysmal navigation. I think the main repository is
> actually the web site of a guy who died years ago and is kept online, but
> unmaintained and suffering from severe bitrot, by people about to go the
> same way.

As long as the site(s) have been grabbed by Internet Archive, I'm not sure
that this has to be an issue. (I've noticed that the archive.org 'Wayback
machine' will even archive some downloads, albeit it's not something that
should be counted on.)

~~~
kjs3
I don't want to speak ill of them because they're doing an amazing job, but
the Internet Archive doesn't have everything (especially old, long gone and/or
obscure sites), isn't always complete, and often doesn't have things that back
in the day that were on FTP sites. Sometimes you get lucky, but I've not had
great luck there.

If you're maintaining some repository of information others find useful,
please-please-please have a plan to pass it on to a successor caretaker and a
notation in your will about your wishes.

~~~
zozbot234
I'm well aware of that, sadly. But often, part of "maintaining" a valuable
repository of information (especially one that has reached stability and is
not seeing ongoing updates) is uploading it to the Archive yourself. The
Internet Archive has "trouble" dealing with information in the gigabytes and
terabytes (which is why donations to them are valuable) but retrocomputing
stuff is not like that.

~~~
reaperducer
_part of "maintaining" a valuable repository of information... is uploading it
to the Archive yourself_

The problem is that we're talking about information that started suffering
from bitrot before the Internet Archive became a big thing. Or even before the
Internet Archive existed. Heck 99.999% of it existed before the internet.

Sure, it would have been great if on May 13, 1996 someone would have uploaded
all of the information that there has ever been about the TRS-80 Model 100 to
IA, but that didn't happen.

So often in places like HN the answer to flaws is "Well, you should have...,"
as if that solves the problem, or makes it go away. But it doesn't. It just
makes the person writing that look like a jerk who isn't interested in solving
problems, but in pointing out the failings of others.

------
leoc
You know what _else_ was written in BASIC? The original Smalltalk interpreter
[https://youtu.be/pACoq7r6KVI?t=1189](https://youtu.be/pACoq7r6KVI?t=1189) .
("I'm not ashamed, I got it going quickly" \- Dan Ingalls.) Obviously this was
just a scratch implementation of what became Smalltalk-72, rather than a
Smalltalk-80.

------
zozbot234
Blogpost reposting content from 80 Micro Magazine (published sometime in
1982). I assume that the original issue is somewhere in the archive.org
collection.

~~~
RodgerTheGreat
Good thinking. Looks like it might be this:
[https://archive.org/details/80-microcomputing-
magazine-1983-...](https://archive.org/details/80-microcomputing-
magazine-1983-03/page/n175)

~~~
zozbot234
From looking at the contents listing of this issue (400+ pages!) this looks
like it _might_ be Part 1 of a LISP tutorial that perhaps was extended in
subsequent issues? I wonder if archive.org has got it all.

~~~
haunter
Yes, in the next issues

Part 2 [https://archive.org/details/80-microcomputing-
magazine-1983-...](https://archive.org/details/80-microcomputing-
magazine-1983-04/page/n253)

Part 3 [https://archive.org/details/80-microcomputing-
magazine-1983-...](https://archive.org/details/80-microcomputing-
magazine-1983-05/page/n305)

------
simplify3
I'd wondered if there was a Color Computer variant and indeed there was/is:
From Hot Coco, April 1984
[http://www.colorcomputerarchive.com/coco/Documents/Magazines...](http://www.colorcomputerarchive.com/coco/Documents/Magazines/Hot%20CoCo%20\(Searchable%20image\)/)

Now to test it out.

------
LeServal
Hi everybody,

I put it also here as per eschaton's request:

[https://github.com/KedalionDaimon/LispForTandy](https://github.com/KedalionDaimon/LispForTandy)

------
perl4ever
There was a TRS-80 with a 68000...

Also, I know that ELIZA was available for TRS-DOS (which I think ran on the
Z80) and wasn't that based on Lisp?

------
venatiodecorus
Broken link, can't access without an account.

~~~
andrewshadura
I can’t access it even with an account.

