Ok, more timing results on MD5-in-Forth, same conditions as used in the previous measurements (Linux, PIII/650). All of the tests below use threaded-Forth's, no assembly code. Modified code by Marcel Hendrix - md5-ne.frt: bigforth 0.73 mS gforth 10 mS pforth 44 mS ficl 48 mS (had to drop [IF] and PAD etc. Modified code by Jabari Zakiya - md5-jz.fth: bigforth 1.1 mS gforth 11 mS pforth 46 mS ficl 59 mS (again mods needed) Both versions introduce inlined coding via: S" ... " EVALUATE For comparison, here are the original algorithm's times (md5.fth): bigforth 1.5 mS gforth 15 mS pforth 59 mS (NOT 44, as reported on c.l.f!) ficl 84 mS (mods were needed) Both versions implement ROL as two shifts, as the original code did. On MacOS 9.0.4 G3/300, I have not had much success (Mops 4.01): md5-ne.frt does not compile (first use of +x[0] complains with a message "not a relocatable address - I can't figure it out) md5-jz.fth does compile and run (1.3 mS), but the reported digest is incorrect (the timing may be meaningful anyway) Both sources had to be modified slightly to be accepted by Mops, with changes such as adding ": to postpone -> ; immediate". For your reference, here are pointers to some of the relevant posts in the MD5 discussion so far: Fredrick W Warren shares his MD5 for public review (03nov2k): http://www.deja.com/[ST_rn=ps]/getdoc.xp?AN=689154313&fmt=text Announcing the page which compares MD5 implementations (12dec2k): http://www.deja.com/[ST_rn=ps]/getdoc.xp?AN=704199822&fmt=text Marcel Hendrix improves the code and times his iForth (14dec2k): http://www.deja.com/[ST_rn=ps]/getdoc.xp?AN=704998700&fmt=text Jabari Zakiya refactors and inserts macro's his way (15dec2k): http://www.deja.com/[ST_rn=ps]/getdoc.xp?AN=705041764&fmt=text Marcel takes it further into assembly mode (17dec2k): http://www.deja.com/[ST_rn=ps]/getdoc.xp?AN=705772910&fmt=text Copies of md5-ne.frt and md5-jz.fth from comp.lang.forth are here: http://www.equi4.com/md5/md5-ne.frt http://www.equi4.com/md5/md5-jz.fth