From: comp.sys.amiga.reviews Moderator Organization: The Amiga Online Review Column - ed. Jason L. Tibbitts III Subject: REVIEW: AMOS: The Creator Keywords: language, basic, amos, commercial Path: karazm.math.uh.edu!amiga-reviews Distribution: world Newsgroups: comp.sys.amiga.reviews Followup-To: comp.sys.amiga.programmer --text follows this line-- [This was sent to me by Charles Hill of AMReport fame. The last working address I have for him is: Charles Hill/InfoTrak <76370.3045@compuserve.com>. -JLT3] AMOS: The Creator is a BASIC package published by Mandarin Software of the U.K. and written by Francois Lionet of France. AMOS is considered the single best-selling non-game Amiga software to date with over 40,000 copies sold worldwide. AMOS itself was created using the DevPac II Assembler; DPaint III; Pix Mate; Cross-DOS and Mini Office Pro Communications. AMOS is a rewrite of the best-selling Atari ST BASIC language, STOS: The Game Creator. When AMOS was finished, the word "game" was removed because the resulting program was so powerful. Or so the manual says. B.A.S.I.C. Beginner's All-purpose Symbolic Instruction Code (BASIC) was one of the first languages most people were introduced to programming on. Versions of BASIC were included with the Commodore 64 and 128; the IBM PC and clones; the Atari ST and the early Amiga (until it was replaced by Amiga Vision). BASIC is usually the language taught in high school programming classes as well as introductory computer classes for non-computer majors in college. BASIC is simple to learn and simple to use. It is estimated that there is more BASIC coded programs laying around on PCs than in any other language. BASIC is estimated to rank number two in programming language of choice on all mainframe, mini and microcomputers -- after Cobol. [Ed. -- Before anyone comes ranting & raving to me about how many 'C' and assembly programs there are, I just report 'em as I read 'em. The study in question was done by the U.S. Gov't in 1989. I don't have any further information.] BASIC can be either interpreted, where the BASIC interpreter itself must be in memory; or compiled into executable code. Compiled programs are usually much faster to execute than interpreted programs. BASIC has not only garnered itself a reputation for simplicity, it has also gotten a reputation as a language suitable only for very small, very text-oriented programs that do not need to be speedy. Now, however, a new breed of BASIC is stepping forth and shaking off the old image of sluggish reactions. Borland's Turbo BASIC for MS/PC-DOS based machines can compile BASIC code which will execute at speeds comparable to Pascal, Modula or even C program. AMOS is part of this breed. Most people have relegated BASIC to the classroom because of this lack of speed and its simplicity in commands. High-level languages (those most resembling English) usually have high overhead, which causes the slow execute speeds. However, this is a fault of the complier or interpreter, not BASIC itself. A good BASIC compiler can compile programs that will run head-to-head with compiled C programs. This is the reason that Mandarin wanted the word "game" out of the program's name. This is also something the user must get through his/her head so AMOS can be looked at as a serious programming language and not "oh, it's just another BASIC ". THE CREATOR AMOS comes in three packages. The first is The Creator, which contains AMOS itself (v1.2), the editors, interpreter, tools and a number of example programs. AMOS: The Compiler is a compiler for AMOS programs and an update to the main program (v1.3). AMOS-3D is another update to the main program (v1.3+) and a 3D modeler and manipulator. The Compiler and 3D will be dealt with in separate articles. It should be noted that while The Creator will run without the other two packages, the Compiler and AMOS-3D require The Creator to run. THE MANUAL The AMOS manual is for version 1.0 and was written using WriteNow on a Macintosh and set up with Pagemaker. The manual contains twenty-two chapters ranging from an introduction to using machine language with AMOS. The manual is chock full of examples and the longer examples are included on one of the three disks. Examples are numerous and as far as I can tell, they all work like they should. The manual is written the The Queen's English, so some of the terms will be foreign to Americans. The manual is thoroughly understandable and if you know BASIC from somewhere else, you will breeze through it. (It took me less than four hours to read the entire 290+ pages -- most of it was a refresher course. That time includes trying a few examples.) Americans/Canadians be prepared for a small shock. AMOS was originally written for PAL systems (okay, so you Canadians get off there!) and for a European audience. Nowhere will you find a reference to a "monitor", though there are numerous points on hooking your Amiga up to a T.V. The entire manual was written with the following configuration in mind: Amiga 500 w/512k; one floppy drive and an RF hookup. Actually, the entire *program* was written with that configuration in mind, so if you have a hard drive or extra RAM you're going to have to jump through hoops to get a setup you like. The manual is good. It is complete and has useful and fun examples. There is a companion pamphlet that brings the manual up to date with version 1.2 and all the accessories. Oh, the manual makes many references of things being done 50 times a second. I assume that this is derived from the 50 cycle clock used in Europe and that it is 60 times a second for U.S. systems, but I have not confirmed this. THE EDITOR The editor is a full screen editor that bears most resemblance to the Commodore 64 interface. It is not Intuition-based and while it is nice, it take a LOT of getting used to. AMOS, however, can import ASCII code so you can use whatever editor you wish. Everything is in 320x200 lores to save RAM and on my system, just a tad off-center. (Remember, this is not an Intuition screen -- fiddling with Preferences doesn't do a thing.) Most commands are mapped to function keys and work smoothly. AMOS uses the ALT, SHIFT, CTRL, Left-AMIGA and Right-Amiga to delimit function keys. That makes for 60 function keys! The editor has two modes. Direct and edit. In edit, you are in a text editor designed to support AMOS. The concept is similar to LSE with Lattice/SAS C and seems to work fine. Direct mode is where you enter a command, hit and it does it. AMOS itself is wierd in multi-tasking. Want to switch back to the Workbench? Hit Left-AMIGA-A. You read that right. After that, you are in Workbench and whatever else you had. From there, the normal LA-N and LA-M will switch between non-AMOS tasks like normal. Want to get back to AMOS? Left-AMIGA-A again. Strange. THE LANGUAGE AMOS is BASIC all right. Most of the commands are very familiar and those that are not are very similar to what you would expect a BASIC command to look like. AMOS has over 500 commands. That's a lot. More than a few of those are specialized in dealing with graphics, sound, animation and effects. Commands for manipulating sprites, bobs, SMUS files, NT files, screens and windows abound. Want a screen opened? Type: SCREEN OPEN 0,320,200,32,Lowres and damned if a lores 32-color screen doesn't open! There are commands for handling split screens; super-bitmap screens; extra half-brite, HAM, scrolling screens; double buffered screens, sprites, bobs; loading and saving portions or entire screens, bobs, sprites; dual playfields; animation; music; sound effects; menus; windows; file requesters; file access and more. There are a few things missing in v1.2. For instance, there is no provision for opening an interlaced screen! How this was overlooked I'll never know, but all screens are only 200 lines high (255 in PAL) and a larger number makes them super-bitmap. This has been corrected in v1.3, though. There are also a number of commands for compressing data and graphics on the fly to save RAM space. Proper timing in your program and the decompression (usually less than 1 second) will never be noticed. AMOS also contains AMAL, and animation language that is interrupt driven. AMAL updates items at a rate of 60 times a second and it makes it very easy to have two-dozen bobs and half-a-dozen sprites on screen at the same time moving in complex patterns. Things may flicker a bit, but use the DOUBLE BUFFER option and it is all as smooth as silk. THE TOOLS AMOS comes with a number of tools, including a map editor (to make those fancy scrolling backgrounds); a sprite editor; grabbers; and more. All the tools are described fully in the pamphlet and are quite useful. The map editor will take an IFF screen and cut it up to use the sections as tiles for creating those ever-so-popular smooth scrolling backgrounds. It makes games like Ultima so damn simple to program it is a joke (the basics of Ultima, anyway). AMOS has a tool for converting ST/NT, Sonix and SMUS files to it's own format. It works nicely on what I've tested (ST/NT & SMUS files). THE PROGRAMS AMOS includes a number of example programs which are quite well done and the source code is very instructional. The games are cute and the graphics good. These are very good examples of what can be done with AMOS. THE PROBLEMS Here we go. AMOS is written with PAL systems in mind. It is a pain in the rear end to get it looking right on NTSC. The hard-drive install program is a joke. It doesn't work worth a damn and is a waste of disk space. The instructions in the manual on installing AMOS on a hard drive are no better. There were written by someone who obviously didn't have a hard drive. AMOS refuses to work from a sub-directory and demands that it be in the root directory of my hard drive. When starting AMOS from the CLI you must first CD to the directory where AMOS is *then* start it. Forget path names, etc. The editor is designed for PAL and even with the AMOS prefs set to NTSC is doesn't look right. Personally, I cannot go from working on my Amiga to booting up AMOS and programming. I have to go away and let my mind forget the Amiga interface and *then* go back and boot AMOS. If I don't, the wierdness of AMOS will make me put a (#*$*@# fist through the monitor in no time flat. The file-save requester doesn't work. It refuses to save if a file doesn't already exist. I get a "file not found" error when trying to SAVE AS... so I have to swap back to Workbench (NO! Not Left-Amiga-N! Left-Amiga-A! Ugh!) then create a dummy file, then switch back and save the beast. [I could redo the file requester in AMOS, but I'm too lazy so far.] The list goes on. THE SUPPORT AMOS has more support than any language I've ever seen. There is an AMOS PD disk collection (over 300 disks!) in Europe and a separate one in Australia. There is an AMOS newsletter out of England and contests paying cash for good AMOS programs. Mandarin has a standing offer for publishing good AMOS programs. AMOS has its own dedicated section in a number of European magazines and there is even a series of AMOS quick-reference cards included in Amiga Format now-and-then. Heck, there is even telephone technical support to help you when you get stuck! (The phone number is in England, though.) AMOS is *popular* is Europe and Australia. It is gaining in popularity in North America, too. CONCLUSION AMOS is by far the most powerful BASIC I've encountered. It is highly optimized for the Amiga, though it's Atari ST roots show in the editor and the interface. The interface can take a lot of getting used to. Still, AMOS supports ASCII so you can bypass the interface for the majority of the time. AMOS can program just about anything. Granted, I might not use it to do a top-of-the-line word processor or spread sheet, but that just might be my bias against BASIC as a "power" language. If any BASIC could do it, AMOS could. AMOS, along with the compiler, can generate commercial-quality software as long as the author has it in him. AMOS takes out all the tedium of programming "boiler plate" code like menu coding; sprite animation routines, etc. If you always wanted to program games, demos or anything with graphics and sound on the Amiga, but never could master C, AMOS is for you. If you liked BASIC and want a decent BASIC with some power on your Amiga, AMOS is for you. AMOS has hooks to support assembly code and external routines, so if you want you can mix C and AMOS smoothly. AMOS is fantastic for handling animation, graphics and sound on the Amiga. On a scale of 1 to 10, I would give AMOS a 7+. From what I've heard about the Compiler and v1.3 update, they would pull that to an 8+; and from what I've seen of AMOS-3D, it would rate a 9.