Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site ssc-vax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxj!houxm!vax135!cornell!uw-beaver!ssc-vax!gary From: gary@ssc-vax.UUCP (Gary J Albert) Newsgroups: net.micro.cbm Subject: PROMAL Message-ID: <368@ssc-vax.UUCP> Date: Tue, 22-Jan-85 21:22:26 EST Article-I.D.: ssc-vax.368 Posted: Tue Jan 22 21:22:26 1985 Date-Received: Fri, 25-Jan-85 05:10:18 EST Distribution: net Organization: Boeing Aerospace Co., Seattle, WA Lines: 127 Previously I had posted an article about the PROMAL package from Systems Management Associates and thought that now that I have had a little time to work with it I might be able to evaluate it a lit- tle better. First a brief description of the package, included are: - An Executive (operating system) - The compiler - A text editor - Documentation - Examples The operating system (or what the documentation calls the execu- tive) is certainly the best I've seen so far for the C64. It most certainly beats the resident BASIC system, and since CP/M does not work with a large portion of the C64's out there it is also a better choice than that. Briefly some of the commands to this OS are: - files ;lists the directory - type ;list a text file to the screen - map ;shows a memory map - job ;runs a job file (batch) - load ;loads an executable There are others but these are the most used ones. If a command is typed in which is not part of the executive then the disk is searched for an executable file and if found is loaded and run (much the same as CP/M). The compiler and the editor are examples of this. The executive also has something similar to the 'history' in Unix. A previous command can be recalled and executed. The function keys can also be programmed to perform any function the user desires. In addition, I/O redirection is supported, allowing the output of a program or command to be sent to one of several different places, ie. the screen (default), a disk file, or to memory. Input redirection is similar. A unique feature is that of files in memory. The PROMAL executive maintains an area of memory that it treats as a file. There can be more than one file in memory and the executive takes care of all the book-keeping. These files look to the user just like disk files with the exception that I/O is extremely fast. Basically this implements a type of RAM disk. One thing to keep in mind, however, is that if the system is looking for a given file (to edit, to compile, etc.) it first looks in the memory files. If one of these has the same name as one on the disk the one in memory gets used. To circumvent this the user must "unload" the file. No big deal, just something to keep in mind. The compiler itself is very simple and easy to use. It accepts as input an ASCII source file (true ASCII not PetSCII). The output object file can be directed to a file or to memory. Compiling directly to memory is a nice feature when in the debug stage since you can test the program without having to wait for the file to be written to the disk. As mentioned above, this is FAST. The language is pretty good, as with all early version products there are some problems and things on my wish list, but overall I am quite impressed. It is a high level language that allows access to the low levels, there is a useful assembly language interface and you can get to the hardware. The control structures are very similar to Pascal or C, these include the usual: if, while, repeat - until, case, etc. Functions and procedures are also supported. Data types of byte, word, int, and float are supported and strings are handled much the way they are in C. A string consists of an array of bytes terminated by a 0 byte (NULL). Speaking of arrays, this brings up one of the most serious omissions in the language, namely arrays can only be single dimensioned. The ability to have multiple dimension arrays is in my opinion very important. I real- ize that they can be implemented as separate parallel arrays but the programmer should not have to deal with this. I'll touch on this again later. An interesting feature is the method of defining the scope of a structured statement. Unlike Pascal and it's BEGIN and END or C's curly brackets, PROMAL makes the indentation significant. The statements to be executed within a given structure must be indented 2 spaces. At first this seems a bit strange but I must admit I kind of like it now that I've become accustomed to it. Besides this way you can't write code with poor style. Overall I am impressed with the language while realizing it is far from perfect. Features I would like to see added include user de- fined data structures and of course the aforementioned multiple dimensioned arrays. The text editor included in the package, while not the editor to end all editors, is quite adequate for writing programs in PROMAL. It works in real ASCII to produce the source files for the com- piler. The documentation says that the editor was written in PROMAL though the source is not provided. The editor is just your basic program editor, no word processing features. It has search, search and replace, insert, delete, and all the other things to be expected. I find it quite useful. The documentation provided is really quite good. I would never have expected anything of this quality with a $50 program. It comes bound in a nice 3 ring binder that opens flat. It covers the executive, the editor, the compiler, and the language. It seems to be quite complete, though I do find myself searching through it quite a bit. Fortunatly it is indexed so it's not to big a job to locate things. One last note, the level of support for this product is something SMA can be proud of. Never did I expect a company to support a $50 product the way they have. Since purchasing it I have received a list of patches to correct some known bugs, and recently an an- nouncement of the next version. For a mere $7.50 they are shipping me this latest version. And to top it all, upon receiving my check they sent a post card telling me on what date it would be shipped. Usually that kind of service is unheard of in products costing many times this. For this reason I fully expect that the problems in the package (arrays again) will be fixed and I wouldn't be surprised to see some nice features added in the future. If there are any questions about the package I would be happy to answer them if I can. Mail to me directly and if it is of general interest I will summarize to the net. Gary Albert (ssc-vax!gary) Boeing Aerospace Company Seattle, Wa