7

For several months in the late 1980s, I owned a Coleco Adam. During that time I tried programming a few things on the only language I had access to: SmartBASIC.

Having written thousands of lines of code previously in AppleSoft, I immediately noticed many similarities between the two languages. Off the top of my head, IIRC there was the 'GR' command, 'HOME', cursor movements, and several others, not to mention that the prompt was the ] similar to how AppleSoft did it. I point out these commands since I believe they were unique to the Apple II in the first place.

How similar were the two languages, and were there any legal agreements/issues on these similarities? Did SmartBASIC even have Microsoft code at its heart, or was it just written to look/function like AppleSoft?

1 Answer 1

0

From a review of the Coleco Adam by Jules H. Gilder in the April 1984 issue of BYTE (nearly half the article is dedicated to discussing SmartBASIC) we can glean some answers. The compatibility with Applesoft BASIC is clearly an intentional feature, but it's also clear that it's not a Microsoft product and differs in some significant ways.

Although Coleco boasts that its SmartBASIC is compatible with Applesoft, there are a number of differences in the languages. SmartBASIC was not written by Microsoft, as was Applesoft, and does not have the same internal construction as Microsoft BASIC.

We can also see from this article that various more modern features and bug fixes were included that are not present in Microsoft BASIC.

A positive result of this difference is that new ideas in interpreter design were included. For example, SmartBASIC checks syntax on entry. SmartBASIC is also more highly table-driven than Microsoft BASIC, increasing the operating speed. [...] Another advantage of SmartBASIC not being written by Microsoft is that it doesn't have the bugs associated with Microsoft BASIC. The author of this language made sure that all floating-point numbers are properly represented, with no round-off errors occurring as with Microsoft BASIC.

Here we can also infer that it's not a product of direct reverse engineering due to the structural differences mentioned.

The SmartBASIC interpreter's unusual way of storing program lines in memory was less understandable to me. Program lines don't have the familiar Microsoft line structure (2 bytes point to the next line, 2 bytes for the line number, a tokenized line, and a 0 as a line terminator). In SmartBASIC, the line numbers and next-line pointers are stored in separate tables elsewhere in memory.

The review also describes some key differences including here where it shows that SmartBASIC hews closer to more modern implementations of Microsoft BASIC than Applesoft BASIC does.

Another annoying feature of SmartBASIC is that it requires spaces between keywords, as do later versions of Microsoft BASIC. Applesoft is very tolerant of this sort of thing and is smart enough to recognize most keywords without spaces.

Given all the above it seems clear that no Microsoft code was used and we can conclude that the Adam's SmartBASIC is an original creation made with Applesoft BASIC compatibility in mind.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.