On 17/1/24 02:04, Paul Koning wrote:
On Jan 16, 2024, at 6:52 AM, Rodney Brown via cctalk <cctalk@classiccmp.org>
wrote:
Forth was ported to an HP-2100 in 1972, by Elizabeth Rather, so had early
history on HP hardware, though from what I can it it was never a product
available from HP.
I don't know if Forth Inc ever supported Forth on HP machines.
Anthony Pepin provided a Forth to the HP3000 Contributed Library in
September 1982, though I think his looks like a virtual machine, I don't
remember trying it in the day.
Thanks to Gavin Scott's "system" and J. David Bryan's SIMH HP-3000 emulator,
I can look at it now. ....
Is the HP implementation a derivative of FIG-FORTH? (FIG is "FORTH Interest Group".)
The PDP-11 FORTH available a bit later came from there. I don't know the full timeline, FIG may
have been later. That version was released by DEC as an "Unsupported" program for RSTS.
FORTH by its nature actually fits well in Harvard architectures. While it's
not quite the same consideration, a number of implementations of it handle
RAM/ROM or RAM/Flash splits nicely.
From the HP 3000 source:
September, 1982
This program is my personal implimentation of the FORTH
language for the HP-3000. It is based (roughly) on
fig-FORTH and trys to be 79-STANDARD.
The inital version does not support CODE words, nor
system INTRINSICS. While I eventually hope to support
INTRINSICS, I have not yet figured out how to make
CODE words work on the 3000. (Code is code and data is
data and never the twain shall meet -- easily, that is!)
...
Anthony Pepin
Why Forth?
FORTH is compact and powerful, though a bit tricky to use. I did a lot of work with it
at DEC (the RSTS FORTH port is my work, as are several of the FORTH based utilities that
shipped with it). And in the past 6 months I've gotten back into it, using the very nice
"Zeptoforth" version for the Raspberry Pico and similar dirt-cheap
microcontrollers.
A key FORTH principle is extensibility. The normal implementation technique is that a small set of
"words" is implemented in assembly code, and then all the rest is in FORTH. You can see
this in PDP-11 FORTH -- while it's all one big assembler source file, most of what's in it is FORTH
compiled code written out as a sequence of MACRO-11 statements. In Zeptoforth it's even more
explicit: the assembler code is for the "kernel" and you then feed it the FORTH source
files for everything else to give you the final product.
And FORTH applications can extend or adjust the language if they want. The
RSTS dump analyzer SDA is an example: it changes the FORTH interpreter from a
16-bit one to a 32-bit one so PDP-11 physical addresses can be manipulated
easily.
I've finally read some of Koopman, Philip (1989) "Stack Computers: The New
Wave" looked a little at his Harris RTX-2000 MS-DOS Emulator source, and at
James Bowman "J1: a small Forth CPU Core for FPGAs".
Like the HP 3000, the Harris RTX-20[01]0 & the J1 are 16-bit machines with a
16-bit instruction width (soley for the Harris & J1).
Later FORTH implementations may be 32-bit native; the Pico one is, for example.
The original FORTH definition is 16 bit oriented but later on that was cleaned
up; there is an ANSI FORTH standard that's independent of word size.
The Mecrisp implementations for 32-bit ARM or 32-bit RISCV might
interest, a smaller REPL than Micropython.
It would be an amusing retrocomputing exercise to port FORTH to old
architectures. It may be a good fit for the B5500 (though FORTH requires two
stacks, not the usual one). But imagine your favorite classic architecture
running FORTH...
Forth, Inc. "The Evolution of Forth"
https://www.forth.com/resources/forth-programming-language/ has a table
listing 16 models of computers Forth ran on from 1971-1980, with the
PDP-11 in 73, not including the microForth implementation for the
RCA-1802 microprocessor & subsequently the 8080, 6800, and Z80. I didn't
count the 8086 in the table in 1978.
Unfortunately, their archive of Forth Systems only includes microForth
source & documentation for the RCA 1802.
Perhaps Moore's microfiche listings of projects from the early days will
get to the Computer History Museum...
paul