mdavis@pro-sol.cts.COM (Morgan Davis) (11/06/87)
This message is intended for the following types of Info-Apple subscribers: o Apple software developers o UNIX users and programmers who own Apples o Dyed-in-the-wool techno-geeks who just love this kind of stuff If you're not one of these important members of this forum, press your cancel key now and just move onto the next message. =-=-=-= I've been waiting a year to place this message here. But first let me give a short introduction on what I'm about to tell you... About a year and half ago, a programmer named Brian Fox called my bulletin board system and signed up for an account. Brian is one of those "high-performance" assembly language programmers who just loves a great challenge. He sure picked a dilly of a coding project, too. That's what this message is all about. Now, before I dive in, let me say that this is not an advertisement. I'm not being remunerated in any way to post this here. This really is just a public announcement of a product that I believe all of you will be extremely interested in. Brian's software company is not a Pinpoint Publisher, so he needs all the exposure he can get. Being part of a very small software company myself (Living Legends), I know how important this kind of "grass roots" support can be for a new product. Anyway, back to the story... It seems that Brian thought he could write a version of EMACS for the Apple computer! His Apple version would be called AMACS, of course. And like all good stories, this one has a happy ending: Brian has written AMACS, and has done a remarkable job. So, just what is AMACS? Here's how the first paragraph in his user's manual describes it: AMACS is a powerful full screen text editor for users of the Apple // family of computer with 128k of RAM or more. It is modeled after the editor in use at the MIT Artificial Intelligence Laboratory called EMACS. Although EMACS is always typed in all caps, we don't believe that it is an acronym for anything in particular. Some people think that it recursively stands for "EMACS Makes All Computing Simple". We have decided that "AMACS Manages ASCII Characters Superbly" is too egotistical. Suffice to say that AMACS is the Apple version of EMACS. You've probably heard of EMACS. In fact, if you do any serious programming on a UNIX computer, you're probably using EMACS or something very close to it, like Jove, GNU Emacs, or whatever. Brian had asked me if I would be interested in checking out his editor. I'm always curious to see what other programmers are doing, so I expressed my interest. A few days later, I got a package in the mail containing a disk and a manual. It promptly went onto a shelf in the closet where it could collect an adequate layer of gray, household dust. One day when I had nothing to do, which occurs about as often as our national budget is balanced, I decided to try out AMACS. I had a few prodding messages from Brian asking me how I was coming along with it anyway. So, I booted up the disk and turned to page one in his manual. Now, understand that I have had plenty of experience with VI, line editors, and commercial word processors for the Apple, but never anything like EMACS, Jove, nor AMACS. Let's face it, this is not going to be your average testimonial, because the AMACS learning curve was rough for me. In fact, it wasn't a curve at all. It was more like hitting a ten-foot brick wall at high speed, and then having to scale it. Now, you're probably wondering why I'm telling you this negative stuff. Well, I'm being honest with you. Learning AMACS was tough; it took me about a week to master it. But I'm using it right now, a year later, writing you this note about how wonderful the program really is. In a personal note, Brian explained to me this difficulty in learning the program: "People tend to have a hard time learning EMACS style editors because it requires them to unlearn all of the bad things that they have already learned about software. The reason EMACS style editors make you more productive, is that they tend to open up your mind to *all* aspects of a program, not just the output, but the comments, the code organization, the algoritms, etc. This means that your programming becomes more concise algorithmically speaking, and more verbose (or meaningful) textually. People who use your program will notice that it is more consistent in user-interface than others that they have seen. This is a direct carry-over from using AMACS." And of course, he's right. My stumbling blocks were not due to AMACS, they were because of all the weirdness I had learned to submit to in all the other programs I had been using. When you can take a fresh look at AMACS, you realize just how logical it really is. Anyway, I'm digressing... Users and lovers of EMACS don't need any hype -- they're already hooked on the editor. For these people, this missive is just an announcement that there is an honest-to-goodness EMACS-style editor for the Apple, and a darn good one, too. The rest of this hype is for the skeptics... After a year of comparing AMACS to Jove (Jonathan's Own Version of EMACS) on a local UNIX system I have an account on, I'm extremely impressed with what Brian Fox has done. The accuracy and completeness is astounding. What's more, Brian has gone past EMACS and has implemented a lot of additional enhancements. Without a doubt, this editor is the epitome of a programmer's source code and text editor. It's quite prolific as a text editor, too. It provides special "modes" that allow you to edit text in a bunch of specialized formats. For example, the mode I'm using now is "Text Fill" -- which really means that AMACS acts like a word processor, with word-wrap, paragraph filling, and all that sort of neat stuff. But AMACS also has modes for assembly language, C programming, Pascal source editing, Lisp, and BASIC formats. You can set the size of the tab key to any number of columns, adjust the margins, and everything else you can do with other editors. I use AMACS to edit and create assembly source code for use with the Merlin assembler (AMACS was assembled with Merlin, by the way). But it's also excellent for working with APW Assembler, C, TML Pascal and TML BASIC source code, and regular text files. It really doesn't care what the file contains, so you can even read binary files into AMACS! Because AMACS has fourteen different editing buffers, you can edit a C program and a Pascal program at the *same* time: one file in one buffer, and the other file in a second buffer. AMACS allows you to easily cut and paste between buffers, as well as view two buffers on the screen at once in a "split screen" mode. This kind of power is what every good programmer needs in a text editor. But wait, there's more! Act now and you'll receive this handsome set of stainless steel kitchen knives...er...ahem. AMACS has over 136 unique editing functions that you can attach to any keys on the keyboard. This is because AMACS is totally flexible in the way it handles keyboard commands. You essentially have an "editor construction set" with AMACS. Each time AMACS runs, it processes an "init" file that contains addtional or replacement command-key definitions that you've set up. So AMACS is always ready to work just the way you want it to. Now, some of you sharper minds might be wondering how you can access 136 functions when there are only a few keys on the keyboard. AMACS can recognize the key itself (any letter, number, or symbol), the Control-key version, the Open-Apple key version, and the Open-Apple-Control-key version. In addition, AMACS knows the difference between the Control-H key and the Left-Arrow on the Apple IIGS keyboard (same with the rest of the arrow keys). So, you add them up. More than enough keys to represent all of AMACS' functions. Of course, editor commands that you don't assign to a particular keystroke can still be accessed in AMACS' "Command window". Perhaps the most powerful aspect of Brian's program is the ability to create macro commands. Macros, as we all know, are abbreviated forms of very complex sequences. They're great for churning out tedious tasks that would otherwise take a zillion keystrokes with any regular text editor. In AMACS, you could press one key and have a dozen functions be performed instantly, over and over again. With macros, a bunch of low-level editing functions can be used to create brand new commands. The possibilities are endless. I could go on and on about the gobs of built-in features in AMACS, such as the "parenthesis blinker", a fundamental part of AMACS that causes matching parens, curly brackets, or square brackets, to blink when you put the cursor on one of them. No more guessing on nested expressions! Then there's built-in printer handling that lets you control the output to any kind of printer, including the LaserWriter. Don't forget AMACS' dozens of disk-based libraries: each one adds even more commands and features to AMACS -- you choose only the ones you need, and you can write your own! I'd get carried away by listing the dozens of really nice features Brian has packed into AMACS. The help facilities built into AMACS are unparalleled. You can get help on EVERYTHING in the program. There is more descriptive text (in a disk-based file) that explains every command than you'll find in any program. You can find brief or verbose descriptions of a command, or what keys run a given command, or what commands have the word "file" in them. You can get a quick command listing, or find out what function is run by a key, or get detailed descriptions on everything that deals with a keyword (i.e., "tell me everything about 'buffers' in AMACS"). This is all done from within the program! So AMACS must be a real memory hog, right? Nope, not in the least. The 128K Apple //e and //c version gives you a 48K editing buffer, a testament to Brian's efficient coding abilities. The Apple IIGS version (work in progress) gives you many times more space for text, depending upon the amount of RAM in your computer. When you're done using AMACS, you can quit to the operating system, or you can exit directly from AMACS to another application. There's even a "Run Compiler" command that will allow you to press a key and have your compiler or assembler come up immediately. =-=-=-= Well, it's obvious that there are just too many good things to say about AMACS. Why haven't you heard to seen anything about it yet? Like I said, Brian's company is a small, but responsive, organization that, like so many others, has a great product but doesn't have the resources for mass marketing. The advantages to this are: excellent technical support, reasonable update policies, and very affordable pricing. Believe it or not, you can send a $79 check made out to Creative Thinking, Included, Brian's company, and get the very latest version of the program. For the skeptics, Creative Thinking will let you buy a 100 page AMACS manual and fully-functional version of AMACS for just $15. The only thing is that you won't be able to save text to disk until you give in and send the remainder of the $79 price to Creative Thinking. That's a fair deal if you're just interested in seeing if AMACS is for you. I didn't want this to sound like one of those half-hour product advertising shows that you see on cable TV, but AMACS has really boosted my productivity level beyond description. The fever has been caught by a lot of other high-powered programmers, too. Here are some comments from Brian about a few interesting people who use AMACS: Darach Foskett, Senior Programmer at UNICOM's Software Development Group has been using AMACS for over 1 1/2 years. He has just finished writing //Write for Random House Publishing, a WYSIWYG MacWrite look-alike for the Apple. His extensive use of AMACS has helped to make this product one of the most bullet-proof I have seen. The Bank Street Group, (Bank Street Writer) has a site license for AMACS, and have been using it for about 1 year. Gordon Riggs, a head programmer, has been especially helpful in suggesting enhancements to the program. Morgan Davis, the author of this mess, tells me he uses AMACS all the time. He never writes anything good though, so it's hard to tell. If he would only write something like a BBS, or perhaps an ampersand utility that would allow me to control my modem from within BASIC programs... As some of us know, Morgan is the author of ProLine, an extensively well thought out BBS system, as well as ModemWorks, the ampersand utility that allows direct control of your modem from within Applesoft BASIC. Steve Bannasch, of The Educational Research Center (TERC) uses AMACS. Steve is a prolific hardware and software wizard who, along with his cohort Sean Nolan, has written several useful Apple utilities, including Rosetta, an Applesoft pseudo-compiler, with a complete built-in enhancements package. The Applesoft Enhancements Package is an ampersand utility that gives you labeled subroutines, and pretty printing, among other things. Steve has written a tags-processing file for MAKETAGS (all part of AMACS) for determining the presence of an AppleSoft Enhancements label. There are more, like Chuck Kelly, designer of the Exterminator card, an indispensable tool in the debugging process, John Carey from MIT, George Bracket, author of several storyboards for the Apple, Michael Lowe, fiction writer, the programmers at United Software Industries, developers of MouseTalk and ASCII Express, Jerry Hewett, author of DiskWorks and Last-Cat from Living Legends Software, and the list goes on and on... One thing I have noticed, the people who use AMACS tend to be winners, and they like AMACS because it helps them to win faster. But that's why I wrote it. I needed to create an editor that could DWIM. (Do What I Mean...) ...and so he has. The thing I've noticed is that Brian uses the word "win" a lot. This attitude obviously has something to do with the success of AMACS. Occasionally, I've seen members of Info-Apple compare Apple word processors to EMACS: "AppleWriter is the next best thing to EMACS (which I really love)". Well, now's the time to forget playing with inane text editors move up to the most powerful text editing system you can get at ANY price for the Apple // series of computers. For more information, write Creative Thinking, Inc. at: AMACS c/o CTI 119 Hawthorne Street Chelsea, MA 02150 About the Author... Brian Fox is the author of AMACS, an implementation of EMACS for the Apple // series of computers. He has written the 128K version of Terrapin Logo, a complete command language specification for Corvus networks (Network Manager's Toolkit), designed and implemented a specialized file system for the Apple (netWORKS), and is currently hacking GNU with Richard Stallman at MIT, (GNU's Not Unix), a version of Unix to be given away as free software to the world. He is a music lover, children lover, lover of women, and not into long-winded, self-introspective, reflexive examinations of his id. You can reach Brian Fox at the following network addresses: UUCP: ...!crash!pnet01!pro-sol!amacs INET: amacs@pro-sol.cts.com ARPA: bfox@ai.ai.mit.edu.arpa bfox@wheaties.ai.mit.edu.arpa Thanks for putting up with all the "hype" here. I just got the latest version of AMACS tonite and I was just too jazzed about all of it's new features. I hope other serious Apple programmers do not miss the opportunity to check out this "winning" piece of code. --Morgan Davis UUCP: [ ihnp4 cbosgd hplabs!hp-sdd sdcsvax nosc ] !crash!pnet01!pro-sol!mdavis ARPA: crash!pnet01!pro-sol!mdavis@nosc.mil INET: mdavis@pro-sol.cts.com