April 6, 1981 Frank R. Borger Instrumentation Division Head Department of Medical Physics Michael Reese Medical Center 29th Street and Ellis Avenue Chicago, IL 60616 Reese BASIC Users Dear User, This release of REESE BASIC is mainly a maintenance update. The basic working of the system has not changed, rather the emphasis has been to include bug fixes and better documenta- tion and 11M support. Changes include: 1. Attempting to load a program with the "/CO" switch, (implying a previously compiled version was saved,) when the source file was NOT complied, confused the blazes out of the interpreter. The current version sets the "FORTRAN Carriage-control" bit in the file header as a check when saving compiled versions of the file, and checks same when reading back in. As a result, previously compiled BASIC files must be re-compiled. 2. Immediate mode commands in source files could often blow BASIC out of the water. In the current ver- sion, any Immediate mode command read in from a saved program is reported as an error. (To deter- mine the location of an immediate mode command, after the error message, issue a "CLOSE" command from the keyboard, followed by a "LIST" command. The immediate mode command causing the error fol- lows the last line of the program.) 3. The manual has been significantly re-done. The ma- in change is a re-structuring of the format, into several more chapters, with the various commands and functions, more logically grouped. In addition appendices B and C provide much better documenta- tion on techniques for writing loadable macro su- broutines. 4. Due to the problems incurred in figuring out what DEC changed in the FORTRAN math routines, (SIN, COS, etc.) from release to release and from IV to IV-PLUS, we now include the routines in MATHLIB.OLB. (These are extracted from version 2 of FORTRAN-IV.) 5. Better support is provided for RSX11M. Present command files let one use all the bells and whis- tles, including loadable MACRO subroutines, SPAWN capability, etc. The following points should be made for 11M users: 1. The TKB "/MU" switch is entirely different in it's meaning between 11M and IAS. 11M TKB com- mand files which happen to have this switch in- cluded will jam all READ-ONLY P-SECTS up in ad- dress range 160000 to 1777776, and the resul- tant task will bomb when it trys to access those subroutines. (As usual, DEC documents this abnormality on a single page buried deep in the TKB manual, and doesn't say a thing about it on the page describing the MU switch.) 2. We haven't yet gotten a shared-code version running under 11M, and would appreciate feed-back from some users. 3. The SPAWN command can't spawn functions that are MCR overlays, rather than true tasks, (such as TIM, SET, etc.) 4. Under 11M, BASIC cannot spawn another version of himself, (due to system restrictions which do not let multiple copies of a task execute at the same terminal.) This can be gotten around by creating copies of the task image, and ins- talling them with the names "...BA1", "...BA2", etc. 6. Loadable subroutines Users acquainted with the loadable MACRO subroutine capability should look at a couple of new routines, including: 1. DIRECT, a routine which enables BASIC to issue any system directive. The BASIC program GETTI uses them to find out good things about what terminal one is running at. 2. EXITST, a routine that lets basic do an "EXIT WITH STATUS". 3. Several BASICn.doc files, extracted subroutine descriptions from BASIC0 thru BASIC4, which should make it easier for experienced system/macro programmers to write their own routines. 7. BASDOCMAK.BAS, a program to re-create the BASIC.MSG file, since FLX won't keep the fixed-length attri- butes of the BASIC error message file. 8. Users who would like a demonstration of the capa- blily of BASIC using the SPAWN capability should look at BASMANUAL.BAS. In essence, this master program: 1. CAUSES another version of basic to extract the RUNOFF source from the several MACRO source files, (and seperate them into the several chapters.) 2. Creates one concatenated RUNOFF source file for the manual. 3. Extracts table-of-contents information from a first RUNOFF pass on said source file. 4. Inserts the table-of-contents into the RUNOFF source using RNP, (available elsewhere on this tape) 5. Produces the final document, in two forms, one suitable for use on normal printers, the other tailored for DIABLO type printers, (includes proportional spacing and highlighting in RED) 6. Optional capability to use TWOPAGE.BAS to print the manual on both sides of 8&1/2 X 11 paper NOTE The above programs use a special REESE version of RUNOFF, plus the programs RNP.TSK and TWOPAGE.BAS, available on this tape under a seperate UIC. 9. Included in this release are some new conditionals and a couple of bug fixes, supplied by Daniel steinberg of SRI International. They provide the following enhancements and bug fixes. 1. Undefined variables correctly reported by error processing 2. Mixed mode arithmetic (A=B$) correctly reported by error processing 3. Conditional assembly parameter to automatically set a new variable to zero, (rather than gener- ating an error) 4. Conditional assembly for RSX11M to automatical- ly extend the task when user storage area is full. 5. A FLOATING-POINT emulator which lets BASIC run on non-FPP machines. Sincerely Yours, Frank R. Borger FRB/pdp