Re: Long absence



R. Baldwin <res0k7yx@xxxxxxxxxxxxxxxxxxxx> wrote:
Paul J Gans <gans@xxxxxxxxx> wrote in
news:gg482b$oaf$1@xxxxxxxxxxxxxxxxx:

Vend <vend82@xxxxxxxxxxx> wrote:
On 20 Nov, 01:13, Paul J Gans <g...@xxxxxxxxx> wrote:
rnorman <rnor...@xxxxxxxxx> wrote:
On Nov 19, 12:49??pm, Friar Broccoli <Elia...@xxxxxxxxx> wrote:
On Nov 18, 10:38??pm, rnorman <rnor...@xxxxxxxxx> wrote:

My first paying consulting job resulted from
the fact that the math package couldn't run on embedded,
ROMable
code
because of the trick it used (common at the time) of passing
vari
ables
inline in the code instead of on the stack.

This doesn't sound like a biologist thing, which is what I
thought
you
were. ??How does this fit into your life history?

And how (if) did you fix that problem?
My life history is rather weird. ??My education was in math, comp
uters,
systems and information theory. ??I worked in the military-indust
rial
complex on computers and info theory until, during the VietNam War,
thought that it was not a suitable thing to do and switched to
mathematical/theoretical biology. I quickly discovered that ??not
to be
a "real" science. ??So I went into physiology and neurobiology, a
n area
of biology heavily biophysical and mathematical where my knowledge
of electronic instrumentation and systems/control theory was very
useful. ??Biology departments accepted my weirdness as I morphed
into a
real biologist especially as I started in a department with several
neurobiologists; one strange one with special math/instrumentation
skill was an asset. ??When microprocessor chips and systems came
out ??I
developed a small instrumentation microcomputer for my biology work
i
n
the mid 70's which led me into the local computer society where I
met the people with the need for that software I mentioned. ??I
quick
ly
discovered that moonlighting as a computer consultant paid
handsomely
,
rather nicely supplemented the pittance I got as a college
professor. Actually I applied my computing knowledge at the
university as I taught a computer science department course in
microcomputer operatin
g
systems for a number of years until they could hire somebody
specializing in that.
The software was needed for a computer controlling numerical
controlled machine tools. ??The need was to control a machine to
better
than 0.0001 inch out of a total sweep of some 30 inches, and to
direc
t
it both along straight lines and in circular arcs. ??The straight
line
is easy, Bresenham's algorithm for drawing straight lines was well
known. ??Computing a series of straight line chords to approximat
e a
circle to the desired accuracy was the problem. ??Single precisio
n
floating point was not quite accurate enough and double precision
floating point trig functions seemed to be the answer. ??But, as
I
said, the Microsoft package was not ROMable and this was a small,
embedded system based on the 8-bit Z80 chip that had to power up
running that one single program. ??It had to run in 64K memory,
counting RAM and ROM combined, with no auxiliary memory whatsoever;
n
o
hard drive, no tape, no nothing. ??32K ROM program and 32K workin
g
memory was it. ??So I said I could do the math package since I ha
d
pretty good knowledge of Z80 assembler programming and knew that
math. ??It turns out that all you need is a square root routine a
nd you
can do complete calculation of circular arcs so I wrote a system
that used 24 bit fixed-point arithmetic, 16 bits of fraction (to
accomodat
e
1/10,000 of an inch) and 8 bits of integer (to accomodate 30+
inches). ??I could compute square root of sums of squares using 4
8 bit
intermediary values so as to avoid truncation errors in the
computation. ??All with an 8 bit processor that did not have a bu
ilt-in
multiply or divide instruction. ??Everything was built on shifts
and
add/subtract. ??It worked well and I got paid well and I stayed o
n to
write statistical process control software for them. ??Later I br
anched
out into all sorts of other embedded small computer systems, first
8080/Z80, then 80186 or 80286 systems using assembler, FORTH, C,
and
C+
+ as things grew more and more sophisticated although I also did a
reasonable number of PIC microprocessor jobs.

Neat!

I am pleased to see how you worked your floating point. ??i hit
upon the same scheme (16 bits for mantissa, 8 for exponent) back
then when I wrote a floating point package for BDS C (Leor Zolman's
contribution to computing back in the CP/M days). ??It was distrib
uted
along with BDS C for a while and then faded and finally vanished
as the 8086/8087 chip set became available.

Heheh, I worked with floating point in hardware (FPGA) to implement a
Clifford algebra coprocessor for a college project. We had to use the
standard IEEE 754-1985 with all its conundrums Fortunately, we had
libraries for the basic operations.

Lucky you... Back in the day there were as yet no IEEE standards,
so it was a free-for-all. And of course the devil was in the details
and no two implementations got the same answer for any problem that
was at all complex.


Heck, back in the day it was the IRE.

Yes there was!

--
--- Paul J. Gans

.



Relevant Pages

  • Re: Long absence
    ... the fact that the math package couldn't run on embedded, ... Actually I applied my computing knowledge at the ... ??I could compute square root of sums of squares using 4 ...
    (talk.origins)
  • Re: New Complex Book!
    ... Many a student disappeared into the computing center, ... Pretty good grades ... firmware for embedded systems--none of which required very much math. ... Normally, I'd just use the book I have already: Marsden, first edition. ...
    (sci.math)
  • Re: Opinions on intro lisp books
    ... > Math is about "what" ... > Computing is about "how" ... How to calculate, say, to use a basic example, standard deviation with ... People who, their teachers included, avoid math and science. ...
    (comp.lang.lisp)
  • An Editorial Reply (Re: stat package)
    ... I just finished 20 years of teaching math at a university. ... the new computing advances and new techniques! ... It was an object oriented highly-powerful language ... It's STATISTICS area is possibly its WEAKEST ...
    (sci.stat.math)
  • Re: sqrt(a^2 + b^2) in synthesizable VHDL?
    ... clock cycles at 40 Mhz to complete the calculation. ... For square root, you could use modified Dijkstra's square root. ... You aren't really looking for square root, you are looking for vector magnitude. ... computing magnitude using a square root is going about it the hard way. ...
    (comp.arch.fpga)