EBASDDJ.WS4 ----------- - "Notes on CP/M's BASIC-E" Gordon E. Eubanks, Jr. DDJ, #19, Vol.2, No.9, October 1977, p.35 (Retyped by Emmanuel ROCHE, posted in comp.os.cpm 27 Oct 2007.) Dear Mr. Warren, I would like to give you and your readers some background on the current status of a public domain disk BASIC known as BASIC-E. BASIC-E was developed at the Navy Postgraduate School, Monterey, California for my Masters thesis. The implementation is comprised of two subsystems, a compiler which generates code for a hypothetical stack machine, and a run-time monitor which interprets this code. The systems was written in PL/M, and runs with Digital Research's CP/M. BASIC-E provides standard Floating-Point arithmetic processing features following the proposed ANSI standard. Additional extensions include multi-dimensional numeric and string arrays, logical operators (AND, OR, XOR, NOT), and string processing. Also, disk support methods include sequential and random access to files. Strings are dynamically allocated as required, and may contain up to 255 characters. Concatenation and all standard functions are implemented. Logical operations use 32-bit two's complement binary representation of the integer portion of the variables. Files may be organized as either sequential or direct. Sequential files are a linear sequence of data items. Each reference to a sequential file retrieves the next data item, or writes another data item. A file may also be declared with a user-selected blocksize. These files may be accessed either sequentially or randomly. The original version (version 1) was distributed by a number of companies, including IMSAI and Digital Systems. There were several bugs in version 1 of BASIC-E. They involved file operations, string processing, and some of the predefined functions! Also, because of the nature of the Floating-Point package, integer numbers were often printed out with an error in the seventh digit. I have subsequently fixed the known bugs in version 1, and released version 2 of BASIC-E. Both versions are completely in the public domain. Version 2 fixes the integer problem mentioned above by printing only six digits of the seven which are maintained internally. Unfortunately, there are still copies of version 2 in use which have not had the integer problem corrected. Structured Systems Group has a patched version of BASIC-E which retains 7 digits without the integer problem (version K2.0 of the run-time package). I strongly recommend that anyone using BASIC-E obtain a copy of version 2. It is available through several distributors and at many retail outlets. I would be glad to provide a copy to dealers who need one for $30 copy charge. The source is also available in machine readable form for a $50 copy charge. I would like to thank the many people who have shown an interest in BASIC-E and, by using it, helped debug it. Special thanks go to Gary Kildall of Digital Research for converting it to the resident PL/M, and to Alan Cooper and Keith Parsons of Structured Systems Group who managed to find that last elusive bug. EOF