info-mac@utcsrgv.UUCP (info-mac) (04/28/84)
Date: Fri 27 Apr 84 16:17:08-EST From: uw-beaver!INTMET@BBNA.ARPA Subject: MacForth, some comments. To: info-mac@SUMEX-AIM.ARPA Well I've had MacForth for about a week now. I have sent the folks at Creative solutions two four page letters in nine point type single spaced full of typos and bugs. MacForth is a lot of fun, mostly because the MacIntosh is a lot of fun, but like any obscure notation one grows to like it, your mind gets prideful of its new found skill. The documentation, of which there is a lot, is acceptable. There are lots of minor errors, a lot of "words" are undefined. "Word" is the forth term for a subprogram. Graphics are draw to windows. There are three coordinate systems for treating a window; the Quickdraw native coordinates, a MacForth coordinate system that includes scaling, rotation, y axis positive is up, and a MacForth coordinate system like the other that doesn't include rotation. It is difficult to infer which coordinate system which Words reffer to, experimentation will help with this. It isn't clear that a complete set of words is provided in any one of the coordinate systems. Window support is excellent. You can create windows of various types, though type isn't documented, of any shape, with scroll controls and size box. Best of all you may attach a Word to a window to be given control when the user clicks in that window. The Word will be terminated and control passed to another window if the user clicks in another window. A window manager routine is usually a loop that plucks events off of an event queue and then responds to them. For example it might react to mouse down by tracking the mouse. The flow of control for events is not clearly documented so it isn't clear who gets control when an exception is thrown, or what context a window manager executes in, or how a window manager is shut down when a new window becomes active. The level one release has a lot of stuff in it that is undocumented, and some of it is explicitly documented as not supported. Thus the mechinisms for using scroll bars isn't supported, nor is the tool box material for text handling. MacForth is fast, it can draw about 200 vectors in a second. There is a lot of stuff I presume is in the tool box that is not provided, forexample the stuff to drag an overlay, or do a push button, or track a control all is not supported and as far as I can tell isn't there. MacForth is a hackers device, and as such it is a lot of fun. It is a great way to learn about the machine's edges. It is probably a much better way to spend your money than to bye MS-Basic. It is probably much more powerful, bigger programs, faster programs, etc. than MacBasic, MacPascal. You don't have to wait, assuming that Creative Solutions doesn't get so embarsed by the implementation and documentation to pull it. If you buy one you will be very irritated at the numerous bugs and typos, you will have to keep reminding yourself that atlest your getting to program you Mac. Forth has a long tradition of being a public domain language. The company that advertises in Byte, Mountain View Press, tells me that they will have a public domain verion in a few months ( narc narc ). If you want to see what a Forth system looks like you can snarf these files from the public domain directories at SIMTEL20: MICRO:<CPM.FORTH-83>EXTEND80.BLK META80.BLK UTILITY.BLK Do not do this unless you are prepared to deal with a file that contains no carrage returns, or linefeeds. The file must be broken into 64 character lines. These are the complete sources for an implementation of the Forth dialect Forth-83, for the z80. That same directory includes an implementation for the 8086. Creative Solutions does not consider what they have done to be in the public domain at all. I'm happy with my MacForth, I'm glad I bought it, at least I'm playing with my Mac. Ben Hyde, Cambridge -------