Part II: Atari Microsoft BASIC
In the first of this three-part series, I pointed out many of the strengths and weaknesses of Atari Microsoft BASIC (AMSB). In Part 2, I will make comparisons between the three versions of BASIC available to the Atari owner. To conserve space, the abbreviation 8K will be used for the standard Atari BASIC, and A+ will be used to indicate O.S.S. BASIC A + (Optimized Systems Software).
It somehow seems unfair to include 8K in these comparisons. The others did not have to fit into an 8K ROM cartridge. The fact that 8K is on a ROM, and that it requires far less RAM than the others, is its greatest asset. Those who have less than 32K, or do not have a disk drive, cannot consider the others at this time. For those with at least 32K and one disk drive, AMSB and A + can provide many useful features not found in 8K.
Sources at Atari tell me that a 16K AMSB ROM is in the planning stages, but will not be available until at least the end of this year.
One of the major arguments I've noticed when different versions of BASIC are compared, is the way strings are handled. Most Microsoft users cannot imagine how one could possibly live without string arrays. 8K and A + users have the "unlimited length string." They have learned that this can certainly be an advantage, and that one long string can be manipulated to simulate string arrays.
For those who require more than a two dimensional array, AMSB is the only choice.
It would appear that compatibility would be the most important factor in choosing between AMSB and A +. While AMSB is not 100% compatible with other versions of Microsoft BASK;, converting from other versions of Microsoft to AMSB is not all that difficult. All the necessary information is provided in the rather large AMSB manual. It would certainly be easier to convert from one Microsoft BASICS to another, than to convert from Microsoft to Atari 8K or to A + .
On the other hand, A + is compatible with 8K, and is a logical upgrade for current 8K users.
What is BASIC A + ? A+ is a version of BASIC which is available for the Atari as well as other microcomputers. It is available from Optimized Systems Software and sells for $80.00. While A + requires more RAM than Atari 8K, it uses about 3K less than AMSB. Overall, A+ is the fastest of the three.
A + has all the features of 8K, many of those found in AMSB, and a few unique to itself. Among its unique commands are DIR which is used to list a disk directory on the screen. LVAR lists all variables currently in use to any device. DPEEK and DPOKE may be used to access or change double byte locations. HSTICK and VSTICK provide a simple method for reading horizontal and vertical joystick positions. BGET and BPUT are used to GE7T and PUT blocks of data very quickly. Using only these two commands, an entire screen may be placed into a string. Similarly, RGET and RPUT are used to input and output fixed length records.
A + is the friendliest of all when it comes to using Player Missile Graphics (PMG). Briefly, the PMG command is used to turn off, or enable single, or double line resolution P/M Graphics. PMCLR is used to clear or erase players and/or missiles. PMCOLOR, PMWIDTH, PMADR, and PMMOVE statements are self-explanatory. The MISSILE command provides an easy way for a parent player to "shoot" a missile. The BUMP command is used to detect collisions.
A + is still being improved. The folks at O.S.S. tell me that RENUM command will be available by the time this article is printed. A+ is efficiently written, well documented, and moderately priced.
AMSB has the most accurate math package and its own unique features. Some, such as multidimensional, alphanumeric arrays, have already been discussed. AMSB also has integer, single, and double precision numeric variables and constants, and hexadecimal constants.
AMSB has the most commands from which to choose. Three of its unique commands I found particularly interesting and useful were TIME$, VERIFY, and COMMON.
TIME is set and reset by setting TIME = JIFFIES. A jiffy is 1/60 of a second. Once TIME has been set, the current time in the format of HOURS:MINUTES:SECONDS is automatically stored as TIME$. A demonstration program using TIME$ as well as other AMSB features will be the subject of the third and final part of this series.
VERIFY is used to match the program in memory with a program on cassette or diskette. If the two programs are not identical, a TYPE MISMATCH ERROR will let you know.
COMMON provides the ability to make variables in two programs the same in value as well as in name. Chaining programs takes on an entirely new dimension when the COMMON command is available.