![]() |
| Miles Davis |
I need to scan in all my old artwork and figure out the best place to post them.
"... So you see: We are Artists. Pirates. More than cooks are we."
...There are thoughts enoughMy thoughts were in embedded systems for the past 4 years. Four years ago I left behind large systems development. I went minimal -- 8-bits in fact. Improbable as it seems, I managed to get back into Forth development. I've spent the last 8 months writing Forth code on a 16-bit MCU (MSP430). The project is ending and the product is about to be delivered.
To blow men’s minds and tear great worlds apart
So whatever your hands find to do
You must do with all your heart
There are thoughts enough
To blow men’s minds and tear great worlds apart
There’s a healing touch to find you
On that broad highway somewhere
To lift you high
As music flying
Through the angel’s hair.
Don’t ask what you are not doing
Because your voice cannot command
In time we will move mountains
And it will come through your hands -- John Hiatt, "Through Your Hands"
\ Variable used to keep track of how many 'of' clauses we have.
\
variable _endof
: case ( n -- )
0 _endof !
[compile] >r
; immediate
: of ( n -- )
[compile] r@
[compile] =
postpone if
; immediate
: endof ( -- )
_endof incr
postpone else
; immediate
: endcase ( -- )
_endof @ 0 do postpone then loop
[compile] r>
[compile] drop
; immediate
: test ( number -- )
case
1 of ." one" endof
2 of ." two" endof
3 of ." three" endof
." none"
endcase
;
#include <msp430x54x.h>#include <numeric>#include <functional>static volatile int res;int main( void ){int a[] = { 9, 1, 5, 6, 7, 8};// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;res = accumulate(a,a+sizeof(a)/sizeof(int),0);res = accumulate(a, a+sizeof(a)/sizeof(int), 1, multiplies<int>());return 0;}
for (int i=0; i < sizeof(a)/sizeof(int); i++)res += a[i];
"I am a design chauvinist. I believe that good design is magical and not to be lightly tinkered with. The difference between a great design and a lousy one is in the meshing of the thousand details that either fit or don't, and the spirit of the passionate intellect that has tied them together, or tried. That's why programming---or buying software---on the basis of "lists of features" is a doomed and misguided effort. The features can be thrown together, as in a garbage can, or carefully laid together and interwoven in elegant unification, as in APL, or the Forth language, or the game of chess."
-- Ted Nelson