CURRENT NOTES MARCH 1988 R E A L B A S I C A Lot of Potential, But It Still Needs Work Review by Stephen D. Eitelman Real Basic, from Computer Crossware Labs (CCL), has been on the market for several months. When CURRENT NOTES received a review copy back in the spring of 1987, a number of problems were discovered. CCL was contacted, and asked that the review be delayed until the next revision. Well, the promised revision is now available and there are still a number of problems, some being downright bugs. All in all, this version of Basic does not warrant a buy recommendation, although it's not all bad. Read on. REAL BASIC IN USE The programming environment of Real Basic has clearly had some considerable thought put into it. It is easy, almost intuitive, to use and a great improvement over the ST Basic environment. (How I despise those four screens!) The program, by the way, is not copy protected and works from a hard disk or ram disk. When I received version 1.3, I put it in the disk drive and double-clicked on REALBAS.PRG. It came right up with no installation required. Real Basic is run as a GEM program, so full use is made of the menu bar and all the other GEM features we take for granted. I was able to begin writing programs immediately - there were no unpleasant surprises about little things like spaces either being required or not; there was no problem about case - upper or lower case worked just fine. There are a few example programs on the distribution disk that are valuable for reference purposes, especially for finding things like how to peek a two byte address (not described in the manual). Labels can be used with GOTO and GOSUB, a considerable aid to structured programming, as well as WHILE-WEND. There is good sound support, and an excellent piano rendition example program, direct access to alert and dialog boxes plus AES and VDI call support. An in-line assembler is included for assembly language subroutines. After playing with some speed benchmarks, I tried loading a rather long engineering program that had been thoroughly debugged and works very well (Mini-NEC, an antenna analysis program). That is when most of the bugs and other difficulties showed up and my warm glow about a fine new basic turned into indigestion. THE PROBLEMS Some of the things I don't like about Real Basic are annoyances, some are poor design characteristics, but a few are just plain bugs. First of all, there are a number of functions available from the function keys. Great. But LOAD and SAVE are not included on the function keys. Why not? These are major functions in any Basic. ST - 1 - ST CURRENT NOTES MARCH 1988 Second, the manual is much too terse. CCL promises another manual, but the current one only describes the commands in as little space as possible and the editor is given equally short shrift. Next, the number of floating point significant figures is set at seven and cannot be changed by the user. No provision is made for double precision, a necessity in many number crunching applications. Real Basic will not accept the scientific notation commonly used in most Basic's. In fact, there is no discussion at all of numeric types in the manual. LPRINT using commas as column delimiters, e.g., 10 LPRINT,,"*****", produced an error message. Similarly, DEF FNFR(a whole bunch of math) produced an illegal address access error message. Yet this same function definition worked just fine under ST Basic, GFA Basic, and DBASIC. I found that Real Basic crashes very easily, locking out the key board, so that only the reset or on-off switch will regain control of the ST. In particular, the immediate statement PRINT PEEK(1210#) crashed it. (This was one of my abortive attempts to read the internal clock for timing purposes. I finally found the answer in CCL's version of the Sieve benchmark - PRINT PEEKL(1210)). Loading a long program from hard disk was much slower than loading the same program into ST Basic. As it was loading, the hard disk busy light would come on very briefly, then there would be a long pause while the interpreter digested what it had just gotten and then the cycle would repeat. CCL has included a variant on the common RUN statement called FLY which is supposed to speed up program execution. Well, FLY is a bit FLAKY! Sometimes it causes the program to crash and sometimes not. When I used it on the random string test, the difference between FLY and RUN was almost insignificant, with RUN actually running ever so slightly faster than FLY in creating and sorting strings! Since this review is far removed from a thorough beta-test, I am given to strong suspicions that there are other bugs and problems not as obvious as those I turned up. SPEED CCL advertises the speed of Real Basic, and it is, by and large, quite fast. It did lose all the benchmarks to DBASIC, but as pointed out in an earlier review of DBASIC, that dialect of Basic is a bit strange, not using TOS at all, designed from the ground up for speed at the expense of all else. Relative to ST Basic, Real Basic beat it in all but the creation of 1000 random strings. Relative to GFA's interpreter, Real Basic lost the cosine squared, and string creation and sort tests. Note that GFA Basic was almost ten times faster at sorting strings than Real Basic. String sorting is an important application in any language and can clearly be done much faster than in Real Basic. Real Basic is pretty speedy in numerical applications, but nothing to write home about. SPEED TESTS (Times in seconds) ST - 2 - ST CURRENT NOTES MARCH 1988 ========================================== A B C D E F ------------------------------------------ Real Basic 33 7 4 89 225 22 ------------------------------------------ ST Basic 38 251 31 69 304 105 ------------------------------------------ GFA Basic 16 13 6 7 24 34 ------------------------------------------ DBASIC 20 2 3 11 8 6 ========================================== Test Description: A: 1<=I<=10000, y=cos(I),x=y*y B: BYTE Sieve, 10 iterations, n=2047 C: BYTE Calculation benchmark D: Generate 1000 random strings E: Sort random strings (bubble sort) F: Print sorted strings to screen CONCLUSION Computer Crossware Labs has created a Basic with a lot of potential, but it still needs work. If CCL thoroughly debugs Real Basic, adds a few essential features, writes a thorough manual, and speeds up their string handling routines, they should have a first-class product. Until then, I can only be lukewarm about Real Basic. [CCL, 516 Fifth Ave, Suite 507, New York, NY 10036 (212)-644-2591.] ST - 3 - ST ve A and disk two in drive B. The source code MUST have