23.10.2013 Views

FAST Forth Native-Language Embedded Computers

FAST Forth Native-Language Embedded Computers

FAST Forth Native-Language Embedded Computers

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!