Thank you. By some strange reason this fix does not work for me - nothing has changed. Plus I cannot access your web site (which is unrelated :)
-- Sergey On Wed, Oct 05, 2005 at 09:28:22PM +0200, Bernd Paysan wrote: > On Wednesday 05 October 2005 00:40, Sergey Plis wrote: > > It does seem like a bug to me. Please, help! > > Yes, it is. Thanks for creating an example that's easy to reproduce. > > That's how to fix it: Go to screen 211 of forth.fb. Change it to the > following code: > > \ fp save and restore 05oct05py > Code fpush ( f.. -- ) > fxam ( fwait ) AX fstsw $FD # AH and $41 # AH cmp > 0= IF 0 # -4 BP D) mov -4 # BP add Next THEN > $B # AX shr 7 # AX and 7 # AX xor 1 AX D) CX lea > BEGIN .fx -$C BP D) fstp $C # BP sub AX dec 0< UNTIL > CX -4 BP D) mov -4 # BP add Next end-code > Code fppll ( -- f.. ) R: BP SP mov S: AX push DX AX mov R: > AHEAD end-code > Code fppi ( -- f.. ) R: BP SP mov AHEAD end-code > Code fppv ( -- f.. ) R: BP SP mov lods THEN THEN > CX pop ?DO .fx SP ) fld $C # SP add > CX dec 0= UNTIL THEN BP pop Next end-code > Code fppf ( -- f.. ) R: BP SP mov lods > CX pop ?DO .fx SP ) fld $C # SP add 1 ST fxch > CX dec 0= UNTIL THEN BP pop Next end-code > > There are only three changes: AX CX mov becomes 1 AX D) CX lea, and the > two 0< UNTIL become 0= UNTIL. That's it. The reason for the failure is > that a stack with just one entry wasn't correctly handled (it had the > same "count" on the return stack as an empty stack). > > -- > Bernd Paysan > "If you want it done right, you have to do it yourself" > http://www.jwdt.com/~paysan/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
