From: Nao S. <n.s...@gm...> - 2011-08-25 01:33:36
|
Hi all, iMops now has got Stack Views. All of CORE and CORE EXT words in Forth200x draft are included (if I didn't forget some). So, I changed the version number. Some description about some deviations from the standard (candidate?) are in file "Mops-doc". Besides, some bugs, especially on 64bit literal value, were fixed (I hope). F>S , S>F , FCONSTANT , ZCONSTANT are newly included. FCONSTANT and ZCONSTANT are same as ZVALUE or FVALUE except for they cannot get gazinta (TO). CASE , OF , RANGEOF , ENDOF , ENDCASE family is also defined, though by some very classical way. There may be still many bugs in iMops. But I think, iMops now could be taken as a small X86 native Forth with Mac-like interface. By the way, I think Double integer feature is not needed in 64bit system. But the standard requires unsigned double integer as input parameters of some CORE words. Simply dropping high part would be ok. But I tried to implement double number division, meaning division whose quotient also is a double integer, for <#, #> family, using assembly word definition. UDQUOT/REM ( d-low d-high divisor -- qd-low qd-high remainder ) The code seems to work, but I don't confirm that the result is always correct. The code may not be fast, but probably that is not a problem for a model part of graphical words. For example, [code] -1 <enter> \ $ ffffffffffffffff $ 7FFFFFFFFFFFFFFF<enter> <# #S #> type<enter> [code-end] will print 39 digits number(decimal). The number of digits is correct, for 127*Log2 => 127*0.301...= 38.227... And high 15 digits seem to be correct. (I can't even read out the number in Japanese, or any other natural language.) Anyway, there may be no demand for such a feature. FP local is not implemented yet. As for Class/Object system, I have still much to learn ... That's all, at present. |