ljdickey@water.UUCP (Lee Dickey) (10/28/86)
APL for the Atari ST I have had my copy of APL.68000 for two weeks now, and am pleased with it. APL.68000 is a complete implementation with enhancements that make use of many of (and allow the user to make use of) the special features of the ST, like dialog boxes, alert boxes, function keys, line graphs, and pull down menus. This APL has followed the lead of IBM in several ways. For instance, when APL.68000 first appeared, (some years ago), it included a copy of the IBM manual "THE APL LANGUAGE", and added a few pages about their own enhancements, such as the quad-SS function for string substitutions. A delightful feature is the use of the ALT key to provide access to all of the composite symbols. For example, the transpose symbol is traditionally created by typing a circle, a backspace, and a backslash. On the ST, I now press the ALT key and the "6" to get this effect. A set of keyfront stickers is included to show the mapping. This keyboard convention is not new. It seems to be the one that is used on IBM 3277 and 3278 terminals when used with APL and APL2, and it has also been adopted by other APL's such as WATCOM APL for their most recent version for the IBM PC and (I think) by STSC as well. A significant improvement indeed over the old way of composition. The ST release is version 1.0, but it is release 6.0 for the interpreter itself, which has been around since before the IBM PC was introduced. I have yet to find any bugs in the APL. There are a few things about the interface to special ST features that I have not been able to do yet, that I would like to do. For instance, I would like to be able to read *any* key under function control, and I can almost do this, but not quite, because there seem are a few key sequences that are mapped to the same byte. For instance, reading the keyboard, I get the same byte from the HELP and the UNDO key. I would also like to be able to tell the "2" above the "W" from the "2" on the number pad. This would allow me to write a panel with special meanings for the keys on the number pad, while keeping the ability to have numeric entry. The APL features a very nice "session monitor" that allows me to re-execute any line on the screen. It works like this: move the cursor back to any previous line, modify it (however I like), and press the return key. The modified line appears at the bottom of the screen and then it is executed. One aspect about this that I would change is this: I would like the previous line to pop back to its previous state, and then display and execute the modified line at the bottom of the screen. As it is, the previous line stays on the screen in its place, in the modified form. The screen memory seems to be 75 lines long, and is controlled by the mouse in the side-bar. There are two file systems available to the user. One is accessed by a set of supplied functions, with names like STCREATE, STREAD, STWRITE, and so on. With these, you can read and write ordinary native files. You can write any byte you choose, as many as you have room for on you disk. The other file system is a sophisticated APL component system, complete with multiple user access control facilities. Imagine, if you will, a number of STs connected together, and that you might like to share some information with me, and something else with a third party, but each of us should not be able to read the other's components. Well, the hooks are all there. Until this comes along, a component file system is a marvelously usefule thing just for one person to use. One component can hold a character array, another can hold a numeric aray, another a Boolean array. You read the component, you get the array. You can replace the contents of any component with any other APL object. I was easily able to make use of the native file functions and, with about 10 lines of code, write an "script" function that kept a copy of *all* my APL input lines, not just the last 75 lines that appeared on the screen. There is a full screen editing feature at all times. There is a quad-R that displays the last input line, which you can then modify and execute with the press of the return key. If you prefer, for the entry of conventional text, for instance, to use the conventional typewriter layout with lower case, upper case letters instead of upper case letters and special symbols, you can easily switch. There is also a function editor that will feel comfortable to users who have become accustomed to ST mouse features. The function keys are programmable from the keyboard. One of the first things I did do was to program one key and give )WSID, )FNS, )VARS, and )SI . I wrote a little function called EDIT that accepted a character string, the name of a function, which then programmed another key so that pressing it would open and display the named function. I created an experimental a PANEL system. It is clear from the experiments I did that full control is available. I could dynamically change the meanings of the function keys, or, in fact, set some predetermined action to happen at the stroke of any single key, and then at the end of the PANEL session, set everything back the way it was before. On my 1M machine, with some modest desk accessories, I get a workspace with about 600K. When I added a 500K ramdisk, I got a 100K workspace. The documentation is complete. There is a fat manual telling all about APL, a supplement that tells about special features for the ST, and a pocket guide with brief summaries of all features. I am pleased with APL.68000 on my ST. In the US, readers can get APL.68000 from the Spencer Organization, Box 248, Westwood New Jersey 07675. In the UK and elsewhere, it is available from MicroAPL Limited, Unit 1F, Nine Elms Industrial Estate, 87 Kirtling Street, London SW8 5BP. Lee Dickey 1986 10 28 Disclaimer: I am not afilliated with either of these companies. The views expressed in this article are strictly my own.
glk309@uiucuxa.CSO.UIUC.EDU (10/31/86)
Is there anyway I could send you a disk and some $$ and yoiu could send me a copy? Thanks. Mail response to glk309@uiucuxa Spieu!