Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
jpg
ATARI BASIC-Handbuch für Selb... 187.1 kB 1 19-Mar-2019 08:06 Roland B. Wassenberg ATARI BASIC-Handbuch für Selbststudium und Praxis-BOB ALBRECHT, Le Roy Finkel,
jpg
ATARI BASIC-Handbuch für Selb... 176.6 kB 1 19-Mar-2019 07:40 Roland B. Wassenberg ATARI BASIC-Handbuch für Selbststudium und Praxis-BOB ALBRECHT, Le Roy Finkel,
pdf
ATARI BASIC-Handbuch für Selbs... 44,779.2 kB 1 23-Apr-2014 02:52 Roland B. Wassenberg ATARI BASIC-Handbuch für Selbststudium und Praxis-BOB ALBRECHT, Le Roy Finkel, J
pdf
ATARI Basic Leitfaden.pdf 5,181.8 kB 1 23-Apr-2014 03:54 Roland B. Wassenberg ATARI Basic Leitfaden
jpg
ATARI_BASIC-Handbuch_fuer_Selb... 187.1 kB 1 19-Mar-2019 09:44 Roland B. Wassenberg ATARI_BASIC-Handbuch_fuer_Selbststudium_und_Praxis-BOB_ALBRECHT,_Le_Roy_Finkel,_
pdf
An_Invitation_to_Programming_1... 896.7 kB 1 22-Sep-2013 00:07 Roland B. Wassenberg An_Invitation_to_Programming_1-Screen_Version.pdf
jpg
An_Invitation_to_Programming_1... 327.0 kB 1 22-Sep-2013 00:08 Roland B. Wassenberg An_Invitation_to_Programming_1.jpg
jpg
An_Invitation_to_Programming_2... 246.9 kB 1 22-Sep-2013 00:08 Roland B. Wassenberg An_Invitation_to_Programming_2.jpg
jpg
An_Invitation_to_Programming_3... 251.1 kB 1 22-Sep-2013 00:09 Roland B. Wassenberg An_Invitation_to_Programming_3.jpg
jpg
Atari BASIC Quick Reference Gu... 95.9 kB 1 19-Mar-2019 09:44 Roland B. Wassenberg Atari BASIC Quick Reference Guide-Gilbert Held.jpg
pdf
Atari BASIC Quick Reference Gu... 10,374.7 kB 1 17-Mar-2014 04:11 Roland B. Wassenberg Atari BASIC Quick Reference Guide-Gilbert Held.pdf
rom
Atari Basic Rev. A.rom 8.2 kB 1 24-Feb-2014 21:46 Roland B. Wassenberg Atari Basic Rev. A.rom
rom
Atari Basic Rev. B.rom 8.2 kB 1 24-Feb-2014 21:46 Roland B. Wassenberg Atari Basic Rev. B.rom
rom
Atari Basic Rev. C.rom 8.2 kB 1 24-Feb-2014 21:46 Roland B. Wassenberg Atari Basic Rev. C.rom
pdf
Atari_BASIC_Source_Book_2006.p... 255.5 kB 1 19-Mar-2019 08:18 Roland B. Wassenberg Atari_BASIC_Source_Book_2006.pdf
jpg
Atari_Basic-Box.jpg 255.1 kB 2 19-Mar-2019 08:10 Roland B. Wassenberg Atari_Basic-Box.jpg
jpg
Atari_Basic-Referenz-Karten.jp... 39.4 kB 2 19-Mar-2019 08:10 Roland B. Wassenberg Atari_Basic-Referenz-Karten.jpg
jpg
Atari_Basic-Richard_Haskell.jp... 256.0 kB 2 19-Mar-2019 09:44 Roland B. Wassenberg Atari_Basic-Richard_Haskell.jpg
jpg
Atari_Basic-XL-Edition.jpg 191.7 kB 1 19-Mar-2019 08:11 Roland B. Wassenberg Atari_Basic-XL-Edition.jpg
jpg
Atari_Basic_1979.jpg 230.1 kB 1 19-Mar-2019 08:06 Roland B. Wassenberg Atari_Basic_1979.jpg
jpg
Atari_Basic_Keywords.jpg 329.7 kB 1 19-Mar-2019 08:07 Roland B. Wassenberg Atari_Basic_Keywords.jpg
jpg
Atari_Basic_Reference_Guide_XL... 459.9 kB 1 19-Mar-2019 08:08 Roland B. Wassenberg Atari_Basic_Reference_Guide_XL.jpg
pdf
Atari_Basic_Reference_Manual-P... 4,162.4 kB 1 17-Apr-2019 16:43 Roland B. Wassenberg Atari_Basic_Reference_Manual-Product_Update-C061038_Rev._A-©_1982_Atari,_Inc.pdf
jpg
Atari_Basic_Reference_Manual_8... 1,613.2 kB 1 19-Mar-2019 08:09 Roland B. Wassenberg Atari_Basic_Reference_Manual_800.jpg
jpg
Atari_Basic_Reference_Manual_8... 438.6 kB 2 19-Mar-2019 08:09 Roland B. Wassenberg Atari_Basic_Reference_Manual_800_.jpg
jpg
Atari_Basic_Reference_Manual_X... 120.0 kB 2 19-Mar-2019 08:09 Roland B. Wassenberg Atari_Basic_Reference_Manual_XE.jpg
pdf
Atari_Basic_Referenz-Karten.pd... 3,139.2 kB 1 19-Mar-2019 07:43 Roland B. Wassenberg Atari_Basic_Referenz-Karten.pdf
jpg
Atari_Basic_Referenz-Karten3.j... 295.8 kB 1 19-Mar-2019 08:10 Roland B. Wassenberg Atari_Basic_Referenz-Karten3.jpg
car
Atari_Basic_Rev._A.car 8.2 kB 1 14-Jun-2018 21:40 Roland B. Wassenberg Atari_Basic_Rev._A.car
car
Atari_Basic_Rev._B.car 8.2 kB 1 14-Jun-2018 21:41 Roland B. Wassenberg Atari_Basic_Rev._B.car
car
Atari_Basic_Rev._C.car 8.2 kB 1 14-Jun-2018 21:41 Roland B. Wassenberg Atari_Basic_Rev._C.car
car
Basic Rev. C.car 8.2 kB 1 24-Feb-2014 21:44 Roland B. Wassenberg Basic Rev. C.car
jpg
Cart_800er.jpg 13.7 kB 2 19-Mar-2019 08:11 Roland B. Wassenberg Cart_800er.jpg
jpg
Cart_XE.jpg 15.3 kB 2 19-Mar-2019 08:11 Roland B. Wassenberg Cart_XE.jpg
rom
Monkey Wrench II (OS-B, right,... 16.4 kB 1 15-Jun-2018 01:00 Roland B. Wassenberg Monkey Wrench II (OS-B, right, v1) with BASIC Rev. C.rom
rom
Monkey Wrench II (OS-B, right,... 16.4 kB 1 15-Jun-2018 01:00 Roland B. Wassenberg Monkey Wrench II (OS-B, right, v2) with BASIC Rev. C.rom
rom
Monkey Wrench II [OS-B, Right]... 16.4 kB 1 15-Jun-2018 00:56 Roland B. Wassenberg Monkey Wrench II [OS-B, Right](v1) with BASIC Rev. C.rom
rom
Monkey Wrench II [OS-B, Right]... 16.4 kB 1 15-Jun-2018 00:57 Roland B. Wassenberg Monkey Wrench II [OS-B, Right](v2) with BASIC Rev. C
pdf
Monkey_Wrench_II_-_Manual.pdf 2,480.0 kB 1 14-Jun-2018 21:24 Roland B. Wassenberg Monkey_Wrench_II_-_Manual.pdf
car
Monkey_Wrench_II_OS-B_right_v1... 8.2 kB 1 14-Jun-2018 21:41 Roland B. Wassenberg Monkey_Wrench_II_OS-B_right_v1.car
rom
Monkey_Wrench_II_OS-B_right_v1... 8.2 kB 1 14-Jun-2018 21:43 Roland B. Wassenberg Monkey_Wrench_II_OS-B_right_v1.rom
car
Monkey_Wrench_II_OS-B_right_v2... 8.2 kB 1 14-Jun-2018 21:41 Roland B. Wassenberg Monkey_Wrench_II_OS-B_right_v2.car
rom
Monkey_Wrench_II_OS-B_right_v2... 8.2 kB 1 14-Jun-2018 21:44 Roland B. Wassenberg Monkey_Wrench_II_OS-B_right_v2.rom
rtf
Monkey_Wrench_II_XL_-_Notes.rt... 1.2 kB 1 14-Jun-2018 21:44 Roland B. Wassenberg Monkey_Wrench_II_XL_-_Notes.rtf
car
Monkey_Wrench_II_XL_with_BASIC... 16.4 kB 1 14-Jun-2018 21:41 Roland B. Wassenberg Monkey_Wrench_II_XL_with_BASIC_(Rev._C).car
rom
Monkey_Wrench_II_XL_with_BASIC... 16.4 kB 1 14-Jun-2018 21:44 Roland B. Wassenberg Monkey_Wrench_II_XL_with_BASIC_(Rev._C).rom
car
Monkey_Wrench_with_BASIC_(Rev.... 16.4 kB 1 14-Jun-2018 21:42 Roland B. Wassenberg Monkey_Wrench_with_BASIC_(Rev._C).car
rom
Monkey_Wrench_with_BASIC_(Rev.... 16.4 kB 1 14-Jun-2018 21:44 Roland B. Wassenberg Monkey_Wrench_with_BASIC_(Rev._C).rom
txt
REV.B TO REV.C CONVERTER.txt 3.2 kB 1 17-Mar-2014 04:14 Roland B. Wassenberg REV.B TO REV.C CONVERTER.txt
atr
RevB2C.atr 92.2 kB 1 17-Mar-2014 04:14 Roland B. Wassenberg RevB2C.atr
car
The Monkey Wrench II.car 8.2 kB 1 24-Feb-2014 21:53 Roland B. Wassenberg The Monkey Wrench II.car
car
The Monkey Wrench.car 8.2 kB 1 24-Feb-2014 21:53 Roland B. Wassenberg The Monkey Wrench.car
jpg
The_Atari_BASIC_Source_Book-Bi... 136.3 kB 2 19-Mar-2019 09:00 Roland B. Wassenberg The_Atari_BASIC_Source_Book-Bill_Wilkinson-Kathleen_O_Brien-Paul_Laughton.jpg
pdf
oss-quick-reference-card-basic... 3,423.3 kB 1 07-May-2019 21:48 Roland B. Wassenberg oss-quick-reference-card-basic-a-plus.pdf

This page (revision-106) was last changed on 13-Dec-2021 17:05 by Maury Markowitz  

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

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 6 changed one line
Atari originally licensed the 6502-assembler code for Microsoft BASIC, which was about 9k in size. The Atari design limited cartridges to 8k, and the Atari programmers struggled to cut the MS code down enough to fit in a cart. That was bad enough of its own, but they really wanted to add additional instructions to take advantage of the Atari's graphics and sound as well. Eventually they gave up and went looking for a 3rd party to do it for them.
Atari originally licensed the 6502-assembler code for Microsoft BASIC. This came in two versions, a 9k one and a more widely used 12k version. The difference between the two was in the math library, the smaller version used 6-byte numbers while the larger used 9-byte numbers. The Atari hardware design limited cartridges to 8k, so the Atari programmers started with the smaller version and struggled to cut it down enough to fit in a cart. That was bad enough of its own, but they really wanted to add additional instructions to take advantage of the Atari's graphics and sound as well. Eventually they gave up and went looking for a 3rd party to do it for them.
At line 12 changed one line
Among the code moved to the OS ROMs was the floating point math system, which was based on a 6-byte binary-coded-decimal (BCD) format. The 9k version of MS BASIC also used this format, while the much more common 11k version (used by Commodore and others) used an expanded 9-byte format. This meant the Atari has somewhat less accuracy, although in practice this meant little (the IBM PC had even less). In contrast, a very real issue was that the SMI floating point code was terribly slow, and this had a significant performance impact on almost all programs.
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.
At line 14 changed one line
Generally, Atari BASIC was among the slowest BASICs of its era, both due to the math code and two problems involving loops. 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 [FastBasic].
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.
At line 17 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.
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".
At line 19 changed one line
Generally, one can describe Atari BASIC's design philosophy as "orthogonal", in that any command could be used anywhere (there was no difference between "immediate mode" other than the lack of a line number) and every output had a corresponding input. For instance, all BASICs include a LIST command that outputs the source in text form to the screen or another device. Atari BASIC added an ENTER command which did the reverse, taking text from a device and putting it into the program. This opened up a number of possible overlay techniques that other versions lacked.
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}}.
At line 21 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.
Additionally, most BASICs had commands that read input or produced output, for example, the {{INPUT}} can be thought of as the opposite of {{PRINT}}. Atari BASIC was orthogonal in that every such command had a partner. For instance, {{LIST}} produces output, so the new command {{ENTER}} reversed this, reading a program listing from a device. This opened up a number of possible overlay techniques that other BASICs lacked.
At line 23 added 2 lines
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.
At line 26 changed 5 lines
* TAB and SPC, for formatting output
* PRINT USING, which formatted output
* INPUT "prompt", A$, which printed the prompt and placed the cursor at the end
* DEF FN, which defines mathematical functions
* ON X GOTO/GOSUB, similar to C's switch construct
* {{TAB}} and {{SPC}}, for formatting output
* {{PRINT USING}}, which formatted output
* {{INPUT "prompt", A$}}, which printed the prompt and placed the cursor at the end
* {{DEF FN}}, which defines mathematical functions
* {{ON X GOTO/GOSUB}}, similar to C's switch construct
Version Date Modified Size Author Changes ... Change note
106 13-Dec-2021 17:05 17.904 kB Maury Markowitz to previous
105 16-Sep-2021 15:46 17.934 kB Maury Markowitz to previous | to last
104 16-Sep-2021 15:30 17.934 kB Maury Markowitz to previous | to last general cleanup
103 29-Jul-2020 23:57 17.769 kB Peter Dell to previous | to last TURBO-BASIC XL ==> Turbo-BASIC XL
102 23-May-2020 07:03 17.754 kB Roland B. Wassenberg to previous | to last
101 01-May-2020 04:03 17.632 kB Roland B. Wassenberg to previous | to last
« This page (revision-106) was last changed on 13-Dec-2021 17:05 by Maury Markowitz