This page (revision-114) was last changed on 24-Feb-2023 14:10 by Andreas Tartz 

This page was created on 08-Mar-2010 20:15 by Carsten Strotmann

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
114 24-Feb-2023 14:10 18 KB Andreas Tartz to previous
113 24-Feb-2023 13:11 18 KB Andreas Tartz to previous | to last
112 24-Feb-2023 13:09 18 KB Andreas Tartz to previous | to last
111 24-Feb-2023 13:06 17 KB Andreas Tartz to previous | to last
110 24-Feb-2023 12:57 17 KB Andreas Tartz to previous | to last
109 24-Feb-2023 12:53 17 KB Andreas Tartz to previous | to last
108 24-Feb-2023 12:38 17 KB Andreas Tartz to previous | to last
107 03-Feb-2023 15:21 17 KB Maury Markowitz to previous | to last
106 13-Dec-2021 16:05 17 KB Maury Markowitz to previous | to last
105 16-Sep-2021 13:46 17 KB Maury Markowitz to previous | to last
104 16-Sep-2021 13:30 17 KB Maury Markowitz to previous | to last general cleanup
103 29-Jul-2020 21:57 17 KB Peter Dell to previous | to last TURBO-BASIC XL ==> Turbo-BASIC XL
102 23-May-2020 05:03 17 KB Roland B. Wassenberg to previous | to last
101 01-May-2020 02:03 17 KB Roland B. Wassenberg to previous | to last

Page References

Incoming links Outgoing links
Atari BASIC

Version management

Difference between version and

At line 8 changed one line
Atari had selected an 8k cartridge format because that was an easy size to supply in a single ROM. So the Atari programmers started with the smaller 8k version of the MS code and struggled to cut it down enough to fit in a cart. That was hard enough of its own, but they really wanted to add additional instructions to take advantage of the Atari's graphics and sound. Eventually, some time in the summer of 1978, they gave up and went looking for a 3rd party to do it for them.
When the project was still a games console, Atari had selected an 8k cartridge format because that was an easy size to supply in a single ROM. When the project moved to a computer, a BASIC interpreter was required and Atari naturally licensed MS's code. Atari programmers started with the smaller 8k version and struggled to cut it down enough to fit in the pre-selected 8k cartridge format. That was hard enough of its own, but they really wanted to add additional instructions to take advantage of the Atari's graphics and sound. Eventually, sometime in the summer of 1978, they gave up and went looking for a 3rd party to do it for them.
At line 12 changed one line
By the time SMI was hired, Atari was in something of a rush to get a working BASIC. They were planning to show the machines in January 1979, using the working MS version, but then sell the machines later that year with the SMI version instead. The original contract required SMI to make its final delivery in April 1979, but it contained bonus clauses if they finished early. They did: a working version was delivered in October 1978, so Atari to that to CES instead. To SMI's surprise, they learned that Atari had begun burning that version to ROM for sale, even though it had several known bugs. SMI offered an updated version with various fixes, but Atari didn't bother using it, and instead shipped the buggy version for years.
By the time SMI was hired, Atari was in something of a rush to get a working BASIC. They were planning to show the machines in January 1979, using the working MS version, but then sell the machines later that year with the SMI version instead. The original contract required SMI to make its final delivery in April 1979, but it contained bonus clauses if they finished early. They did: a working version was delivered in October 1978, so Atari to that to CES instead. To SMI's surprise, they learned that Atari had begun burning that version to ROM for sale, even though it had several known bugs. SMI offered an updated version with various fixes, but Atari didn't bother using it, and instead shipped the buggy version for several years.
At line 14 changed one line
Two major pieces of code were moved out of the BASIC into the OS ROM. The first was a set of graphics routines to set up the screen, draw lines, and similar. The second was the floating point math system, based on a new implementation of the 6-byte binary-coded-decimal (BCD) format. Both libraries were notoriously slow. Generally, Atari BASIC was among the slowest BASICs of its era, both due to the OS code and two problems involving loops.
In order to fit the code into a 8k ROM, two major pieces of code were moved out of the BASIC into the OS ROM. The first was a set of graphics routines to set up the screen, draw lines, and similar tasks. The second was the floating point math system, based on a new implementation of the 6-byte binary-coded-decimal (BCD) format. Both libraries were notoriously slow. Generally, Atari BASIC was among the slowest BASICs of its era, both due to the OS code and two problems involving loops.
At line 16 changed one line
The performance issues led to a profusion of 3rd party BASICs, some of which continue to be developed to this day. By replacing the math libraries and fixing these two loop issues, speed improves on the order of 3 to 5 times in most programs, and this is a common feature of 3rd party BASICs like [TURBO-BASIC XL] and [Altirra Basic]. For even higher performance, [FastBasic] uses a p-code system that can be quickly interpreted.
The performance issues led to a profusion of 3rd party BASICs, some of which continue to be developed to this day. By replacing the math libraries and fixing these two loop issues, speed improves on the order of 3 to 5 times in most programs, and this is a common feature of 3rd party BASICs like [Turbo-BASIC XL|TURBO-BASIC XL|Turbo-BASIC XL] and [Altirra Basic]. For even higher performance, [FastBasic] uses a p-code system that can be quickly interpreted.
At line 22 changed one line
Atari BASIC has some key differences with the more common MS-derived BASICs found on most contemporary machines. This included the 6-byte vs. 9-byte math, but also included numerous syntax changes as well. Generally, one can describe Atari BASIC's design philosophy as "modeless" and "orthogonal".
Atari BASIC has some key differences with the more common MS-derived BASICs found on most contemporary machines. Generally, one can describe Atari BASIC's design philosophy as "modeless" and "orthogonal".
At line 24 changed one line
Most BASICs of the era had the concept of "immediate mode" and "program mode", and some commands could only be used in one more or the other. A good example in MS BASIC is the {{LIST}} command, which could only be used in immediate mode, at the "command line". Atari BASIC removed this limitation, one could write a program containing {{10 LIST}}.
Most BASICs of the era had the concept of "immediate mode" and "program mode", and some commands could only be used in one mode or the other. A good example in MS BASIC is the {{LIST}} command, which could only be used in immediate mode, at the "command line". Atari BASIC removed this limitation, one could write a program consisting of {{10 LIST}}.
At line 28 changed one line
The most noticable difference between Atari BASIC and MS-derived versions is the string handling. Atari BASIC used a greatly simplified system of character-arrays instead of the dynamic strings in MS. This meant that all strings had to be predefined using {{DIM}}, and their length could not be changed during run-time. There are a number of advantages to this approach, notably speed, but memory handling is more difficult and conversion of standard programs from MS listings is more difficult.
The most noticeable difference between Atari BASIC and MS-derived versions is the string handling. Atari BASIC used a greatly simplified system of character-arrays instead of the dynamic strings in MS. This meant that all strings had to be predefined using {{DIM}}, and their length could not be changed during run-time. There are a number of advantages to this approach, notably speed and lower memory usage, but this means conversion of standard programs from MS listings may be difficult.
At line 34 changed one line
* {{PRINT USING}}, which formatted output
* {{PRINT USING}}, which formatted output (rarely supported on small machines)
At line 36 added one line
* {{INKEY$}}, which read the keyboard without pausing (unlike {{INPUT}})
At line 38 changed one line
Most 3rd party BASICs add many of these features, and more.
Most 3rd party BASICs for the Atari added many of these features, and more.
At line 41 changed one line
To allow BASIC programmers access to the advanced features of the system, Atari BASIC added commands for defining the GRAPHICS, changing COLORs, MOVEing and drawing a LINETO, playing SOUND, and others.
To allow BASIC programmers access to the advanced features of the system, Atari BASIC added commands for defining the GRAPHICS, changing COLORs, MOVEing and drawing a DRAWTO, playing SOUND, and others.
At line 114 added 49 lines
!!Abbreviations
|| Command || Abbreviation
|| BYE || B. \\
|| CLOAD || CLOA. \\
|| CLOSE || CL. \\
|| COLOR || C. \\
|| CONT || CON. \\
|| CSAVE || CS. \\
|| DATA || D. \\
|| DEG || DE. \\
|| DIM || DI. \\
|| DOS || DO. \\
|| DRAWTO || DR. \\
|| ENTER || E. \\
|| FOR || F. \\
|| GET || GE. \\
|| GOTO || G. \\
|| GOSUB || GOS. \\
|| GRAPHICS || GR. \\
|| INPUT || I. \\
|| LET || LE. \\
|| LIST || L. \\
|| LOAD || LO. \\
|| LOCATE || LOC. \\
|| LPRINT || LP. \\
|| NEXT || N. \\
|| NOTE || NO. \\
|| OPEN || O. \\
|| PLOT || PL. \\
|| POINT || P. \\
|| POKE || POK. \\
|| POSITION || POS. \\
|| PRINT || PR. \\
|| PUT || PU. \\
|| RAD || RA. \\
|| READ || REA. \\
|| REM || . \\
|| RESTORE || RES. \\
|| RETURN || RET. \\
|| RUN || RU. \\
|| SAVE || S. \\
|| SETCOLOR || SE. \\
|| SOUND || SO. \\
|| STATUS || ST. \\
|| STOP || STO. \\
|| TRAP || T. \\
|| XIO || X. \\
At line 142 changed one line
* [Kurs 2: Noch mehr BASIC-Lernen Sie BASIC mit Dagmar Berghoff-RXG 55007|Noch mehr BASIC RXG 55007]
* [Kurs 2: Noch mehr BASIC-Lernen Sie BASIC mit Dagmar Berghoff-TXG 55007|Noch mehr BASIC TXG 55007]
At line 146 changed 3 lines
* [Atari BASIC Article in Wikipedia|http://en.wikipedia.org/wiki/ATARI_BASIC]
* [Atari Basic vs. Commodore C64 Basic vs. Apple II Basic]
* [Atari BASIC: the good, the bad and the ugly|http://archive.li/njp7N]
* [Extended Atari Basic]
At line 214 added 5 lines
!! References
* [Atari BASIC Article in Wikipedia|http://en.wikipedia.org/wiki/ATARI_BASIC]
* [Atari Basic vs. Commodore C64 Basic vs. Apple II Basic]
* [Atari BASIC: the good, the bad and the ugly|https://web.archive.org/web/20070524044410/http://www3.sympatico.ca/maury/other_stuff/atari_basic.html]