Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84 exptools; site ihuxl.UUCP Path: utzoo!watmath!clyde!cbosgd!ihnp4!ihuxl!veach From: veach@ihuxl.UUCP (Michael T. Veach) Newsgroups: net.micro,net.micro.cbm Subject: Re: Promal Message-ID: <1646@ihuxl.UUCP> Date: Sat, 16-Nov-85 14:38:10 EST Article-I.D.: ihuxl.1646 Posted: Sat Nov 16 14:38:10 1985 Date-Received: Mon, 18-Nov-85 05:39:34 EST References: <2052@aecom.UUCP> Distribution: net Organization: AT&T Bell Laboratories Lines: 131 Xref: watmath net.micro:12721 net.micro.cbm:1820 I've used Promal for over 6 months and have been very happy with it. What is Promal? A very good attempt to put UNIX on a C-64. Of course, with only 64K of RAM and slow disk drives, it has many limitations. The system consists of three main programs 1) a shell (called the executive), 2) an editor and 3) a compiler. ----------- The compiler produces relocatable code (appears to be a P-code) and, as such, many, depending on size, programs can be load into memory at once. To run a program (e.g. myprog) the system first looks in memory for it (myprog) and if it is not found looks on disk for it (myprog.c). Command line systax includes i/o re-direction of stdin and stdout. myprog arga argb outfile.y Sorry no pipes. ______________________ All disk files are of the form xxxxxx.y (notice the '.' followed by a letter) and must be SEQ type. Some special files have 1 letter names. For example: myprog p Indicates to take the input from the Workspace file (an in-memory user file) and send the output to the printer. _________________________ Shell scripts are provided. However, to execute a script (e.g. myscript) you must enter: job myscript rather than just: myscript ______________________ The compiler uses a C-like syntax language. Variables of BYTE (1 char), INT (2 char signed) and WORD (2 char unsigned) are supported. (Floating point is supported also, but I always unload the floating point functions at boot time to get more space). The systax of the language uses identing (2 spaces) where C would use { and }. The compiler fits entirely in memory. If your source is in W, there is space for you object module in memory and the compiler is already in memory then the compile is fast. Large programs require the compiler to be read from disk, source to be read from disk, the object module to be written to disk, and the editor to be unload and thus re-read from disk on next use. Without FLASH the limiting factor is the disk accesses. With FLASH the limiting factor is the compiler. _______________________ Its easy to write hooks into the (C-64) kernel from Promal. Promal programs execute fast. I was able to write a 1200 baud terminal emulator with it. I don't know of any other WORKING 1200 baud non-assembly language terminal emulator. (Perhaps one of C-compilers can produce fast enough code for this application?) As of this time, I have not yet seen a sprite or sound package for Promal. However, I think I remember seeing that a package was being developed. _________________________________________________ If you are really an assembly language or hardware type of person then you'll love Promal in that it provides almost the same speed and freedom as assembly language, but is easier and less error prone than assembly language. __________________________________ If you do not really don't care about the details of how the machine works and are willing to pay some performance then you should really consider something else, such as COMAL. COMAL supports almost all the graphic and sound features of the C-64 in a high level language, COMAL is much faster than BASIC but slower than Promal. _________________________________________________ COMAL and Promal are trademarks of two different groups people that have provided something other than mindless games for the C-64. Show your support for this good work by buying their products rather than stealing a copy. __________________________________________ My choice: Assembly language to make fixes to existing assembly language programs. Basic if the task is very short, speed is not important and/or program is to shared with others who don't have Promal nor COMAL. Promal for applications needing top speed or just the joy of programming (its no fun if the computer does everything for me!). COMAL for tasks that would take too long to develop in Promal or if it needs sound and/or sprites. _______________________________________ The opinions expressed here are my own and may not agree with anybody else's either living or dead. Michael T. Veach ihuxl!veach -- Michael T. Veach ihuxl!veach