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