Mark Wills unread, Apr 4, 2012, 4:19:56 AM 4/4/12   Delete You do not have permission to delete messages in this group Copy link Report message Show original message Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message to

...but is it the story of Forth?

Enjoy.

---------------------------------------------------------

A Forth Story

Allen Cekorich

Walnut Creek, California

Forth Dimensions, July/August 1995

In 1975, I was fresh out of college with a bachelors degree in physics

and a need to find a job that paid enough to support myself. After a

six-month search, I landed an entry-level position at MDH Industries

in Monrovia, California, where they promised to increase my minimum

wage starting salary once I proved myself useful. I was to work with

the president and owner, Dr. Howard Marshall, Ph.D., on a project to

develop an instrument to measure the real-time sulphur content of a

coal stream by detecting and analysing the prompt gamma ray spectrum

resulting from the absorption of thermal neutrons from a Californium

252 radioactive source. The opportunity sounded exciting to my naive

ears, as it was my first professional job. I was finally in the real

work world of adults and ready to go on to do great things. Remember,

this was twenty years ago and I was only twenty-two years old. I had

no previous experience to guide me in the situation I was in, no

mentor to teach me, no helping hand and no idea of where to begin or

what to do. Like most good engineers, I decided to fake it until I

understood my value.

I spent the first Year or So understanding the design parameters of a

Sulphur meter, which involved creating a computer model on a Tymshare

IBM 370 System accessed with a Teletype terminal at the fantastic rate

of 30 characters Per second. This was a revolution from the punch

cards I had used in college on a CDC 3150 that could be viewed through

a glass window in the foyer of the computer department. MY degree in

physics mandated that the modelling language would be Fortran, and I

naturally enjoyed programming, which was probably related to my

ability and love for mathematics. I had completed the coursework for a

degree in mathematics with a 4.0 average in college. I was proud of

the growing complexity and depth of my simulation, which was now

consuming hours of computer time during the night hours when the cost

was lowest.

It came to pass by the natural events of the development process that

construction of a sulphur meter prototype was to take place. Howard

Marshall had earned his doctorate in physics from the California

Institute of Technology, which is very much in bed with the Jet

Propulsion Laboratory in Pasadena. His contacts encouraged a computer-

based instrument and recommended a strange language called Forth that

was floating around the lab. They convinced him it was possible to

build a small, Z80-based controller that could acquire the spectrum

from the sodium iodide detector and maintain real-time signal

processing rates to compute the actual sulphur content.

Somehow, outside my area of responsibility, an S100-bus system showed

up from the Empirical Research Group. My electrical engineer office

mate had been assigned the task of fooling around with it for

development purposes, but no progress seemed to ever be at hand. After

some time had passed, a fellow named Martin Smith showed up from the

Cal Tech network. He brought with him a Forth running on a Monolithic

280-based multi-bus system, and progress toward a controller began.

I was preoccupied with designing the sulphur meter based on my Fortran

simulation. but the natural need to verify the model from real data

taken from the prototype was growing important. With the help of

Marty, I started playing with the Forth computer. This was the first

time in my life that I had actual, physical contact with a computer.

Those big, eight-inch Shugart floppy drives that held a whopping 120K

bytes, and the awesome 64K of fast RAM, along with the character-based

video display terminal, intoxicated me. What what was more puzzling

was this strange way of talking to the computer, called Forth. I had

taken a computer language survey class in college which included

Fortran, Algol, PWM, Cobol, Trac, Lisp, and APL, but had never heard

of anything called Forth. It was strange and unnatural without program

statements. I could not find the compiler, linker, or listing output.

I could not figure out how it worked, but I realized that I now had

direct contact with the CPU without the need to learn complex system

manuals. I finally had a computer under my control and I went to town.

Over the next few years, I had a good time writing programs on that

small Forth system to do data preprocessing for input to the real,

grown-up IBM Tymshare computer for comparison to my simulation.

I taught myself the Z80 assembler in the Forth, which gave me access

to the computer hardware. I played with serial comms, DMA for the disk

drive, video display controller, interrupts, and, most important of

all, the AMD 9511 floating-point coprocessor. I wrote linear matrix

functions, least squares routines, statistical measures, data filters,

and data stacks for working with the gamma ray spectra. I used that

little 64K computer to its limit to complete the calibration of the

first delivered sulphur meter. I also became an expert in using Forth,

although I still did not fully understand what I was doing.

About this time, around the beginning of the eighties, a recruiter

called me searching for a Forth programmer. I was not a Forth

programmer in my mind. I did not see myself as a Forth programmer. I

was a physicist using a tool to do a job. Anyway, I went on an

interview to Forth, Inc. in Manhattan Beach, California, and met a man

named Edward Conklin. We talked about what I had been doing with

Forth, I showed him some of my listings, toured the offices, and shook

hands upon departing. A few days later, the recruiter called saying I

had been offered a job for more money than I was making and encouraged

me to accept. I was puzzled. I was not a Forth programmer. Why did

they want me? What would it be like? I just did not understand where I

would fit in. I declined the position, Over the years, I have wondered

what direction my career would have taken if I had just said yes.

Looking back, it is easy to see now that I was an exceptional Forth

programmer, as following parts of my story will reveal; but remember,

I was still in my twenties, working on my first job, which limited my

view of my career horizon. My destiny would take me to other places

and back again, to Forth.

My job was winding up with the completion of the first sulphur meter.

Martin Smith had left earlier, going back to a previous job at

Technicolor in Hollywood. I had grown as an engineer, becoming more

than could be supported by the twenty-five person company that was

owned by a single person. The end of my first job had come, so I

resigned and, that weekend, I bought a Victor 9000 personal computer.

I did have the vision to see that what I had done with that small 280

computer spelled the death of my cherished IBM 370 computer running

Fortran over the phone line. The future was in small, personal systems

that clearly exceeded the power of the off-line dinosaurs. I did not

know what I would be doing, but I knew what I would have to do and

that was to learn the basics of the smaller machines. As fate would

have it, Many called me the following Monday, and a week later I was

working for Technicolor. It was now May of 1983.

I had taken the job as a computer programmer who would develop the

control software for a film printer. This was a special kind of

printer to reduce the cost of choosing the RGB color light levels for

a film scene by printing one frame of scene onto the positive, thereby

saving the cost of developing a complete print just to check the

production parameters. I had to learn Intel's version of PL/M and

assembly for the 8086, which was the heart of the Intel 88/40 multi-

bus board computer controller. I was back to compilers, linkers, and

locators, and got to play with in-circuit emulators. I discovered real-

time control that enables computers to interact with the physical

world. I learned multitasking, interrupt response times, and control

inputs and outputs from A/D and D/A chips, counters, and parallel

lines. I got to play with big servo motors. I had a ball. I almost

forgot about Forth.

But not completely. I obtained the fig-Forth listing for the 8086 with

the intention to boot a Forth on my Victor 9000. 1 spent many nights

and weekends typing in the listing as I learned about DOS and just how

the PC worked. I gathered documentation, bought some software, and

joined the Victor 9000 users group. Time passed. Work went well with

the nearing completion of the proof printer. Then Hollywood came into

the picture. Hollywood is not in the real world, they make it up as

they like. The engineering director and the chief engineer got

themselves fired for no apparent reason other than a pompous power

play which I never understood. The upshot was that my project was

cancelled, leaving me in limbo. I chose to resign a month later,

simply because I no longer had a defined job. It was July of 1984.

I spent the next five months working twelve-hour days at home on my

Forth system. I booted the kernel as a DOS executable, and promptly

rewrote it to my liking, including redesigning the inner interpreter.

I was forced, by finally understanding the true nature of Forth, to

add an 8086 assembler of original design, an interface to DOS for

files and display control, floating-point words for an 8087

coprocessor, and many utilities to work with my system. Looking back,

I wonder why I did it. Why would I create a complete Forth development

system for the PC? I had no use for it, nor any future plans for the

system. I believe the answer was just to learn how personal computers

work. Forth gave me direct access to the machine, and freedom to

explore designs that felt right to me. I did not have to depend on a

vendor to show me what I could do. My physics training led me to

explore fundamentals of computer operation much as I explored the

fundamental laws of the physical world. I also began reading Byte

magazine every month to keep up on the technology, and I read books

such as Donald Knuth's Art of Computer Programming. Forth gave me

freedom to explore beyond the limitations of a fixed compiler with a

straight-jacket syntax. I had finally caught the Forth bug.

The realities of living without an income finally caught up with me.

In December of 1984, I found a job with Litton Industries. The fibre

optic department under Mike Suman had a contract with Western

Geophysical to build a demonstration underwater fibre optic microphone

towed array for oil exploration. The job was to complete an Intel

multi-bus computer demodulator for five sensors. The software was

written in PL/M-86 and assembler, and was presented to me as almost

done. I learned quickly that the statement was politically correct but

entirely false from an engineering perspective. I had wandered blindly

into defence engineering for the first time. I redesigned the computer

system to use three single-board computers in a multi-bus backplane,

and wrote the software from scratch to multiplex the three 8086 CPUs

to accomplish the demodulation. Four months later, it was finished,

complete with a real-time video display of the sensor outputs for the

all-important demo. The next day, the contract was cancelled due to

the oil glut of the mid-eighties.

I wondered if I had a job. The major part of the fibre optic

directorate was involved in fibre optic rotation sensor development

for military applications. The program seemed to be headed by a man

named Dr. George Pavlath, who was a Ph.D. in physics from Stanford

University. He had a problem with the testing of the rotation sensors

on the rate tables which used H-P BASIC controllers. He knew from my

resume that I had experience with Forth, and he had heard from his

friends at Stanford that it was a very neat control language. I told

him I had developed my own Forth system for the PC, and we agreed to

try it out for rate table control. I brought in my system and spent a

few months porting it to the IBM PC, adding drivers to read IEEE-488

instruments via a Metrabyte card, and rate table position from a

CTM-05 counter board. I completed a fully automated rate table test

station and began to test fibre optic gyros.

The application of Forth to a flexible test environment was perfect. I

went much further and added online data analysis, and began

constructing my own unique plotting additions to Forth based on

Brodie's MAKE DOER construct. My Forth system grew to maturity as

different problems demanded solutions. I quickly returned to my

physics roots to contribute to the new technology of fibre optic

sensor development.

All was not well, though. I encountered the first resistance to the

Forth way of doing business. The Forth development environment was so

efficient that the H-P BASIC controllers were made obsolete. This led

to resentment by engineers who had invested their time learning H-P

BASIC. I offered to teach them Forth, but remember, this was a system

I had personally written. It was my creation, and no one could

understand it as well as myself. Why should they invest part of their

careers learning a tool that was the personal property of one

engineer? They did have a point. But the fact was that my system was

doing things that nobody thought possible before. It was even worse

than that. It turned out that someone in a different Litton division

was using Forth for production test station control for the same

reason, its efficiency and power. This person was upset that I had

brought in a new dialect. He had his box of tools and would not look

at mine, and we could not share code.

As the years passed, my system became entrenched in the fibre optic

directorate and enabled a lot of progress to be made, even though I

spent most of my time concentrating on the physics of the devices. A

few people finally learned my system, which became quite powerful, but

the lingering resentment remained. Other engineers felt I had cheated

by using Forth, that it was unfair to them. I even published my Forth

system, called AFORTH, through the Victor 9000 users group. I was told

that up to forty people bought copies, and the head of the users group

eventually got a job writing Forth.

Sometime in the eighties, I got it in my head that Forth could be

applied to build fast demodulators, especially since the advent of

Forth chips. I convinced George Pavlath to send me to a company called

Novix to check out a Forth-based CPU. It was on this trip that I met

Charles Moore. He and I talked for half an hour about possibilities. I

had a hard time believing that this was the creator of Forth. I played

with a Novix development system, unaware that the chip was not yet

real, in the sense that one could not buy one. In truth, I felt I was

sticking my neck out by suggesting a Forth design when other engineers

wanted my head for what I had accomplished in the testing area. The

reality was, it did not matter - I ordered a Novix chip which was

never delivered, since the company eventually folded. I felt relieved.

I went on to work with DSP processors such as the TMS320C25, which

were now capable of implementing complex demodulation designs and

provided me with new areas to explore.

Then the Berlin Wall fell. The defence build-up was over in a day, but

it took several years of excruciating pain for many innocent people to

accept the change in their lives. I held out until September of 1991,

when I finally admitted it was time for me to leave. I could no longer

pay the price required to survive. In January of 1989, I had replaced

my ageing Victor 9000 with a Dell 386 computer. I briefly went into

consulting with my Forth system. I worked several months for the

Physical Optics Corporation in Torrance, California, automating their

production holographic testers. I realized again that I was sticking

them with a custom solution that could not be updated without me. It

was just not viable. Even though they were delighted with the results

of my work, I never got called back; probably because the engineering

staff had changed in the interim.

I was out of work until May of 1992, when I got a call from Systron

Donner in Concord, California. A half-dozen Litton refugees had found

jobs there, and they were eager for me to join them. I moved from Los

Angeles to beautiful Contra Costa county, and thought I had found a

wonderful place to work. The CEO was Dick Terrell, who came from

Litton marketing, and was converting the company to quartz sensor

technology. It turned out that I was the last one hired before the

defence downsizing began in earnest at the company. I had to relive

the experience at Litton during the next year and a half.

I was hired to do DSP software for the Quartz Inertial Measurement

Unit, but the military requirements for software quality control were

beyond the resources of the company, so the project was cancelled a

month after I arrived. Instead, I was asked to work on a substitute

IMU for a contract delivery that was not going to happen on the

current schedule. One of the main problems was that the rate table

test station, which was being coded in C, would not be ready in time.

I volunteered my Forth system for the interim station, and completed

the work in several months. Once again, I experienced the wrath of

engineers who said I cheated because they were forced to use the

"correct C approach," while I used this thing called Forth, which

obviously made the work too easy. Go figure. I should have known

better; the truth was, nothing mattered, because the company was being

downsized with a vengeance, and when the CEO was replaced, I soon lost

my job in December of 1993.

Among the people who joined me going out the door was a guy who wanted

to start a company with a product, based on the Systron Donner

rotation sensor, which would measure body movements for medical

purposes. I met with him and agreed to program a prototype piece of

equipment using my Forth system, in exchange for a future piece of the

company. In one month, I had a prototype that displayed real-time

rotation movement and medical parameters for Parkinson's syndrome. It

was demonstrated to the Parkinson's institute and was well received.

However, I told my partner that the final device could not be

programmed in Forth. Why would I say such a thing? Simply because

technology had passed Forth by, in my opinion. It was no longer

possible for one person to develop all the software required in a

graphical environment. I needed to buy the tools I needed to leverage

my time for a professional job. I could no longer play the role of the

maverick programmer, nor did I want to. I need to be part of a

collaborative community in which I can give and receive work. I do not

see Forth as a viable solution as of today.

The start-up company never happened, for financial reasons, so I have

been unemployed since then. I am also forty-two years old, and am

looking at my life from the midway point. I have spent nearly twenty

years doing this Forth thing, and I do not know if I want to continue

with it. A year ago, I bought the Symantec C++ development package for

Windows. I have yet to use it. It does not excite me like Forth did,

because it does not give me the freedom to create those program

constructs which enable my ideas. I guess I am still undecided on the

issue of Forth, so I will renew my subscription to Forth Dimensions

for at least this one last time.