Basic XL#



The original Atari BASIC was written at Shepardson Microsystems (SMI) shortly before the 8-bit machines were released. A short time later, Shepardson dissolved, and the Atari programmers re-formed as Optimized Systems Software (OSS), taking the source code to the Atari products with them. In 1981, they released OSS Basic A+, based on the original Atari BASIC code but containing a number of bug fixes and a few expansions. This made it too large for the 8k ROM cartridges of the era, and A+ shipped only in disk form.

Basic XL was a further, but much larger, expansion on the Basic A+ model. As it was also based on the original source code, Basic XL remains a strict superset of Atari BASIC, and will run any Atari BASIC program without modification. In contrast to A+, however, XL added many new commands to work with player/missile graphics, simplified handling of joysticks and light pens, autogenerated line numbers and renumbering, and other extensions.

Much more notable, however, was Basic XL's FAST command. Atari BASIC was notoriously slow, due largely to two problems. One was that the floating point routines in the Atari OS ROMs were very slow, and every number in BASIC, even line numbers and array indexes, were sent through this code. The other issue stemmed from the way Atari BASIC handled GOTO and FOR/NEXT commands. FAST fixed the later of these problems; when this command was encountered within a program, Basic XL cached the location line numbers pointed to by the GOTO and FOR/NEXT loops. This made the jumps dramatically faster than Atari BASIC, which had to scan through the entire source code every time through a loop.

Another notable feature of Basic XL was the AUTORUN system. This was a small runtime library that could be added to a disk with Basic XL programs, allowing them to run on machines that did not have the Basic XL system. This made it far more practical than A+. On top of this, Basic XL was shipped in the form of a 16k "supercartridge" that used bank switching so it only took up 8k of memory, making its bartprint the same as Atari BASIC, as opposed to A+'s much larger size.

Basic XL was widely lauded in the press, and some stated it should be renamed Atari BASIC and built-into every machine. However, the release of Turbo-BASIC XL a year later largely ended the market for Basic XL. A further expansion, Basic XE, never became very popular.




On Side B the suffix BXE is used. Don't get confused, it is Basic XL, OSS just used the suffix BXE for that disk.

In October of 2019 robdaemon from AtariAge made a strange discovery the community didn't had a clue of, please see the discussion on AtariAge. Due to some discussions in the backgroud and again with the great help from 'kind soul', we could receive the toolkit in version 1.02. After a binary compare of each file on both disks, we could find, that 2 files only are different. These are AUTORUN.SYS and EXTEND.COM. The investigations still continue as of March 2020. If you have the 1.02 cartridge, then please use the toolkit 1.02 and if you have the 1.03 cartridge, then please use the toolkit 1.03. AtariWiki further highly recommends the reading of the fall 1986 OSS Newsletter from page 6 on for this case. In the newsletter the reader will even find a 6 lines code fix for problems regarding with the toolkit.

ROM version 1.02 works with extensions from toolkit 1.02 and 1.03 without errors. ROM version 1.03 works with extensions from toolkit 1.03 only without errors. Thanks to GoodByteXL for testing and letting us know.


Source Code for OSS Basic XL version 1.02 from February 5th, 1985:#

  • ; thank you so much for your help in this bob1200xl from AtariAge, that is such a great contribution, we really appreciate your help in that case. You will always be in our hearts and we will never forget you.
Thank you so much for your help bob1200xl from AtariAge!

This is(!) the source code for OSS Basic XL 1.02 on two DOS II Version 2.0D disks without any DOS. That means they are DD disks and can be opened with the original 815 DOS, which is inside the archive above.

The source has a .bak-file from February 5th, 1985. You need Mac/65 to read in the file: "master", which is without any suffix.

Further you need two DD drives: D1 and D2. Both atr images are renamed with the corresponding D. While running, files on drive 2 are accessed. All files which can be read are in a .txt-file inside the archive. So you all can get a quick look at.

1 BASICXL102D1.atr
2 BASICXL102D2.atr
3 DOS 2.0D.atr
4 Basic XL (OSS Type A-034M).bin
5 Basic XL (OSS Type B-M091).bin
6 Example from Master.jpg
7 Types of carts.jpg
8 Win Latin 1.jpg
11 D2-BASICC.923

the txt files are coded in Win Latin 1. Hope the CRs are coming the right way. The content of the two disks are in a folder each, too. So, you can get a quick look at. Position 11 and 12: these two files are accessed from the file: "CONVRT.LIS", but they are not on the disks. Maybe someone can help us here? Further, a call goes out here to enhance the source code to the final version of Basic XL 1.03.

Bob, we are so deep in your debt. Thank you so much again. :-)



OSS BASIC XL - manual cover