![]() Running the "Demo" program | |
Developer(s) | Microsoft |
---|---|
Initial release | 1985; 40 years ago (1985) |
Final release | 1.2 / 1988; 37 years ago (1988) |
Operating system | AmigaOS 1.1 to 1.3 |
Platform | Amiga |
Predecessor | ABasiC |
Successor | ARexx |
Type | Microsoft BASIC |
Amiga Basic is aninterpreted implementation of theBASICprogramming language for theAmiga. It was designed and written byMicrosoft. Amiga Basic shipped withAmigaOS versions 1.1 to 1.3. It succeededMetaComCo's ABasiC included in AmigaOS 1.0 and 1.1 and was superseded byARexx, aREXX-style scripting language, from AmigaOS version 2.0 onwards.
Amiga Basic provided not only the common BASIC language, but also attempted to provide an easy-to-useAPI for the Amiga's unique graphics and sound capabilities.OBJECT
commands, for example, made it easy to create moving objects –sprites andbobs that could be drawn with an external drawing program,Object editor, that was supplied with AmigaBASIC. An unusual feature of the language is that it theoretically allowed the calling of handwrittenassembly language subprograms; however, this feature never worked because of a bug that failed to align the assembly language instructions correctly on aword boundary, as required by the Amiga's nativeMC68000 processor.[citation needed]
Compute!, a popular computer magazine published while Amiga Basic was still being shipped, included many AmigaBASICtype-in programs in their articles. These were typically implementations of simple programs such as rudimentary games, system and fileutilities anddesk accessories such as analog clocks and address books.
Amiga Basic itself was rendered obsolete because of incompatibilities with AmigaOS 2.0 and the hardware successors to theMotorola 68000 CPU. Some incompatibilities were due to the disregard of programming guidelines set forth by Commodore.[citation needed] However, there were a number of third-party compiled BASIC languages released for the Amiga that could compile Amiga Basic programs with minimal changes, like A/C BASIC or Cursor (see below). Some of these compiled BASICs continued to work with AmigaOS 2.0, and as they were compiled rather than interpreted, they generally ran much faster than the original.
Although Amiga Basic was superseded by ARexx in AmigaOS 2.0, the two languages had very different functions and capabilities. Hobbyist programmers had changed by the time of AmigaOS 2.0's release and were more likely to be interested inscripting existing third party applications than in writing new programs entirely from scratch. ARexx was seen as better fitting their needs than BASIC.
Along with Microsoft's very similar BASIC for theMacintosh, Amiga Basic was the firstBASIC interpreter from Microsoft to not requireline numbers,[1][2] adopting instead a top-down approach to executing thelines of code, andlabels to indicate theGOTO
instruction where to jump. However programs that contained line numbers were able to run; the line numbers were simply treated as labels for the purpose of flow control. It was also the first Microsoft interpreted language capable of calling OS functions and dynamic libraries through the commandLIBRARY
. For example:LIBRARY Graphics.library
command invokes the standard Amiga Graphics.library from which to call functions.
' Hello World for Amiga BasicPRINT"Hello world!"
You can go one better by adding the following line:
SAYTRANSLATE$("HELLO WORLD")
The Amiga will then say "Hello world" usingspeech synthesis in addition to displaying it on screen.
The Macintosh and the Amiga have BASIC languages that are almost identical, both created by Microsoft...Both Amiga BASIC and Macintosh BASIC abandon the line numbers used in previous BASICs.
There's a different style to BASIC programming on the Amiga. You should take a close look at new features; you'll discover concepts that lead to a radically different style of programming and user interaction...there are no line numbers in Amiga BASIC. They are not needed. Even with GOTO or GOSUB, it's usual to identify a line with a label, not a number. (You may include line numbers if you like-a feature included for the sake of compatibility with other BASICs-but since the line numbers are treated simply as labels, numeric order is irrelevant.