FAST Forth Native-Language Embedded Computers
FAST Forth Native-Language Embedded Computers
FAST Forth Native-Language Embedded Computers
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Listing Two. Parallel scalar vector multiplication. 1<br />
fload figurel<br />
30 CONSTANT SIZE<br />
USER VARIABLE U.1 FORTH<br />
SIZE []WORD V1<br />
SIZE []WORD V2<br />
SIZE 1+ [ICHAN N<br />
SIZE [ICHAN W<br />
SIZE [JCHANE<br />
\ DEF SIZE = 30 :<br />
\ VAR U.1<br />
\ V1 [SIZE],<br />
\ V2 [SIZE] :<br />
\ CHAN N[SIZE+l],<br />
\ W[SIZE] ,<br />
\ E[SIZE] :<br />
\ VAR Tl,T2, T3, T4:<br />
: VECT-MULT \ PROC VECT.MULT =<br />
\ SEQ<br />
SIZE 0 DO \ U.1 - [0 FOR SIZE]<br />
I 1+ I v1 ! \ Vl[U.I] := u.1 + 1<br />
I 1+ I v2 ! \ V2[U.I] := U.1 + 1<br />
LOOP \ PAR<br />
SIZE 0 DO I U.1 ! \ U.1 = [O FOR SIZE]<br />
I U.1 ! \ PAR<br />
I I ( u.1 @ Vl @ u.1 @ w >c ) \ W[U.Il ! Vl[U.I]<br />
[I( U.1 @ V2 @ U.1 @ E >C ) \ E[U.Il ! V2[U.I]<br />
I I ( \ SEQ<br />
U.1 @ W C> \ W[U.I] ? T1<br />
U.1 @ E C> * \ E(U.11 ? T2<br />
U.1 @ N C> + \ N[U.I] ? T3<br />
U.1 @ 1+ N >C \ N[U.I+l] ! Tl*T2+T3<br />
) \<br />
LOOP \<br />
II( 0 0 N >C ) \ N[O] ! 0<br />
1 1 ( SIZE N C> U. ) \ SEQ<br />
\ N[SIZE] ? T4<br />
\ WRITE(T4) :<br />
PAR ;<br />
Listing Three. Parallel alarm clock.<br />
f load figurel<br />
\ Alarm clock<br />
ANEW ALARM<br />
HIDDEN ALSO EDITOR ALSO<br />
USER<br />
VARIABLE ALARM-HM<br />
VARIABLE ALARM-STRING<br />
FORTH<br />
: ALARM" ( HOURS MINUTES I " )<br />
SWAP FLIP + 0 0. B>T DROP ALARM-HM ! \ Get time<br />
HERE ," ALARM-STRING ! \ Get alarming string<br />
EV (<br />
ALARM-HM @<br />
BEGIN \ Wait . . .<br />
1000 FOR PAUSE NEXT \ Skipping for efficiency<br />
DUP GETTIME DROP UBG WHITE >FG \ Select colours<br />
TRUE ALARM-STRING @ COUNT ?SOFTERROR \ Alarm ! !<br />
RESTCURSOR RESTSCR MULTI \ Restore screen & cursor<br />
) \ Enable parallelism<br />
ONLY FORTH ALSO DEFINITIONS<br />
pies less room in the dictionary<br />
than the variable approach.<br />
Availability<br />
In the best <strong>Forth</strong> tradition,<br />
the code is released to the pub-<br />
lic domain. Enjoy it in good<br />
health.<br />
Fast<strong>Forth</strong> for the Atari ST,<br />
including the above code, may<br />
be had in alpha release from<br />
the author, Charles Curley, P.O.<br />
Box 2071, Gillette, Wyoming<br />
82717-2071. Please consult the<br />
author for the current state of<br />
documentation, etc.<br />
<strong>Forth</strong> Dimensions 19 March 1994 April