Some people love Forth and some people hate it. However, you usually think of Forth as something running on a little computer such as an 8-bit microcomputer. When [Chuck Moore] developed the system back in the 1960s though, it ran on an IBM 1130. [Carl Claunch] took a scanned listing of the original code and got it running once again.
There are actually a few blog posts with details. Luckily, Forth is pretty simple — especially the core parts. However, there are a lot of differences from a modern Forth. The most obvious is that the dot keyword starts a definition and does not print the top of stack. However, internal details are different too — the system, for example, stores characters in packed EBCDIC — an ASCII-like code used by IBM computers.
Oddly, [Moore] used Forth to write code that would allow the big computer to help design carpets, although the project was ultimately unsuccessful. However, the language, which grew from [Moore’s] private card deck library, was much easier to use than the machine’s preferred FORTRAN.
The group working on this has released the original scans and promises a machine-readable version soon. Don’t have an IBM 1130 to run it on? Sure you do.
If you want something more modern and smaller, you have a choice of Hackaday-approved projects. For instance, Mecrisp-Stellaris Forth on an ARM. Or, go cloud, and run it in your browser.
Yes that is indeed an 1130. A computer who needs outside help to build some of its code. And one receives it’s mail in NJ.
I guess a lot of stuff was cross compiled on the larger System/360 machines?
The FORTRAN compiler and assembler ran on the machine, loaded from a disk pack drive (IBM 1311 or 2311). I did a lot of FORTRAN on one of these at what was then called Roswell Park Memorial Institute in Buffalo NY in the summer of 1965, when I was a junior in high school. I was working for the Ultracentrifuge Lab in a work-study program, plotting simulation results to a Calcomp 36″ wide plotter. Except for the EBCDIC (which I didn’t have to work with directly :-) it was a great computer!
” However, the language, which grew from [Moore’s] private card deck library, was much easier to use than the machine’s preferred FORTRAN.”
Choosy machines chose FORTRAN.
A Real Programmer can do anything in FORTRAN.
There’s one thing all us FORTRAN coders have in common. Blocks.
Forth is good for robots and artificial intelligence. The MindForth program thinks in English and has been translated into Perl for webservers and into JavaScript for tutorial experiments in artificial consciousness.
it was originally made to control a telescope.
Let’s not forget it was the first computer program;
“Go Forth and multiply!”
That was year 0 of the Kelvin calendar.
Forth is alive and well on ARM and many other MCU’s. I’m driving a $2 Nokia 5110 LCD display (84×48) with a STM32F0 right now. http://hightechdoc.net/mecrisp-stellaris/_build/html/nokia-5110.html#lcd
Since discovering Mecrisp Forth for the STM32 ARM chips (and jcw’s excellent libraries) about two years ago, I’ve been using it for 95% (? total guess) of my microcontrollering needs.
An interactive system, with easy chip-level hardware access and simple multitasking are killer features that make the whole “everything’s backwards” feeling worth getting over. Going back to C when necessary is oddly frustrating, even though it’s my native language.
And while it’s kinda fun to play around with Forth online in simulators, its real virtue is that it’s not much of a language at all, and doesn’t get in your way when you actually want to _do stuff_. Get the requisite $6 of hardware, download a Forth (shameless plug!) and learn on the job. Hook up some hardware and get hacking.
Elliot, you’re right on the money regarding C and Forth from my perspective also.
I always say 92.63% of all statistics are made up on the spot.
“Play nice with your brother, or I’m going to send you to your room!”
-Mother
And of course there’s FIGnition, a Jupiter Ace-like whole DIY computer that runs Forth!
https://sites.google.com/site/libby8dev/fignition
And because the effort to design carpets in the 1960’s with a computer failed, we ended up with the shag carpets of the 1970’s.
B^)
I worked with a guy who designed a system that drove one of the first 128 nozzle carpet printers. IMSAI 8080, CP/M (of course), and 8 custom S-100 cards with 16 PWM channels. Never saw the printer in action in person, but did see some 8mm film he took of it :) Pretty cutting edge stuff back then.
wonder how much s100 stuff is still working away unnoticed
“Hidden Figures” might know FORTH, as they were early adopters..
Forth is pretty fun, I wrote a Forth interpreter/compiler for a little Z80 computer I built.
https://github.com/koppanyh/KH-LF57K
I ran my entire first 1802 based system on FORTH. It scanned my hand wired keyboard, operated my memory mapped character based display, and performed all my cassette tape and later floppy access.
When I moved to the 6809 RS CoCo, I found a printed listing for a 6800 FORTH system with a target meta-compiler. I hand entered the source into a Motorola development system we had at work, modified it to take advantage of the upgraded processor (the 6800 code would have run directly on the 6809) and put it on an EPROM to bring home to my beloved Color Computer. On that system I was able to use the CoCo built in code as drivers to run the floppy and wrote a SCSI driver for a hard disk.
I am still looking for that code listing again because it had the ability to compile headless FORTH code for target systems as standalone code.
But alas, the PC started getting cheaper and cheaper to the point that the improved CoCo graphics card I was designing was beaten by a $15 IBM-PC color card.
The PC killed my hobby designing and wire wrapping computer hardware.