# Optimized Systems Software

Optimized Systems Software (OSS) was a company that produced disk operating systems, programming languages with integrated development environments, and applications primarily for Atari 8-bit computers. The founders of OSS previously developed Atari DOS, Atari BASIC, and the Atari Assembler Editor for Atari, Inc., and many OSS products are substantially improved versions. OS A+ and DOS XL are based on Atari DOS. BASIC A+, BASIC XL, and BASIC XE are based on Atari BASIC. EASMD and MAC/65 are modeled on the Atari Assembler Editor. Action! is an ALGOL-inspired compiled programming language with an integrated full-screen editor. OSS also sold some software for the Apple II.
OSS transitioned to the Atari ST with Personal Pascal and the Mac with Personal Prolog (which was also advertised for the Atari ST, but may not have been released). OSS was not as significant in those markets. The company merged with ICD in 1988.

## History

Optimized Systems Software was formed in early 1981 by Bill Wilkinson, Mike Peters, Paul Laughton, and Kathleen O'Brien. Laughton, the primary author of Atari BASIC, was still employed by Atari, Inc. at the time, and had permission to be involved with OSS from his manager. O'Brien wrote the Atari Assembler Editor for Atari. Laughton and O'Brien (married) were not as involved with the company and were bought out by Peters and Wilkinson.
OSS purchased Atari BASIC, Atari DOS, and Atari Assembler Editor from Shepardson Microsystems who had concluded that their versions of BASIC and DOS were not viable. The new company enhanced the programs, renaming them OS/A+ (the Disk Operating System), BASIC A+ (a disk-based language), and EASMD (an update to the Assembler Editor). OSS continued to work with Atari, Inc. (who had previously contracted with SMI) on enhanced products, most of which never reached the market.
OSS debuted at the West Coast Computer Faire in March 1981. The products they released over the next several years became respected among Atari programmers, particularly the MAC/65 assembler, the Action! programming language, and BASIC XL. In a 1984 interview, Bill Wilkinson said the company consisted of 15 people.
In January 1988, OSS merged with ICD (the makers of SpartaDOS and various Atari computer hardware add-ons). In 1994, Fine Tooned Engineering obtained limited rights to ICD's 8-bit products before disappearing.

## Disk Operating Systems
### OS/A+

Atari DOS 2.0S consisted of two portions, a memory-resident portion that facilitated access to disk files by programs, and a disk-resident portion providing menu-driven utilities to format, copy, delete, rename, and otherwise manipulate files on Atari's 810 disk drive. The menu system was too large to keep memory-resident, but the necessity to reload the menu system after every program was frustrating to many users.
* OS/A+ 2.0, 2.1 was a disk-based replacement for the Atari DOS and the Apple II DOS. It replaced the menu-driven utilities with a compact command line approach similar to CP/M (and later, MS-DOS). The command line was small enough to remain in memory with most applications, removing the need for the dreaded post-program reload. When first introduced at the West Coast Computer Faire, the program was named CP/A, but a lawyer from Digital Research (owners of CP/M) visited the booth and the name was changed. OSS couldn't have afforded even a court filing fee.
* OS/A+ 4.1 OSS extended the successful OS/A+ product with additional capabilities for version 4, many of which were arguably ahead of their time. For example, the strict "8.3" naming scheme (eight alphanumeric characters with a three character extension) was replaced by "long" filenames, similar to the Microsoft DOS transition to VFAT in 1995.
However, unlike VFAT, OS/A+ 4.1 disks were not backward compatible with earlier systems; Atari DOS or OS/A+ 2.1 could not read disks formatted by OS/A+ 4.1, breaking backward compatibility. The memory footprint was larger as well, resulting in insufficient memory to run some popular applications. As a result of these drawbacks, OS/A+ 4.1 did not achieve the market penetration as the earlier product. OSS did reissue OS/A+ 4.1 for a brief period when they decided not to modify DOS XL for double-sided disk support.

### DOS XL

DOS XL was designed to replace OS/A+. Included support for single and double-density disk drives. Utilized the command-prompt of OS/A+ but also included a menu program. Featured extensions that took advantage of unused memory space in Atari XL/XE computers and OSS supercartridges. Included support for Indus GT Synchromesh. Due to lack of demand and Atari working on a new version of DOS, OSS decided to halt development of DOS XL 4 and reissue OS/A+ version 4.1.

## BASIC

The team that developed Atari BASIC while at Shepherdson Microsystems developed a series of three increasingly sophisticated BASIC interpreters at OSS.

### BASIC A+

Atari BASIC was designed to fit in an 8K cartridge, with an optional cartridge for the second slot of the Atari 800 adding additional capability. The second cartridge was never produced. Instead, OSS produced the disk-based BASIC A Plus (or BASIC A+), which is compatible with Atari BASIC, corrects several bugs, and adds many new features. It includes PRINT USING (for formatted output), trace and debug enhancements, direct DOS commands, and explicit support for the graphics hardware including player/missile graphics. Because BASIC A+ had to be purchased, programs developed using its extended features could not be shared with people who did not own the interpreter.

### BASIC XL

BASIC XL is a bank-selected cartridge version of the language that replaced BASIC A+. It fixes bugs and has even more features. The BASIC XL Toolkit contains additional code and examples for use with the BASIC XL and a runtime package for redistribution.
A significant change in BASIC XL is the handling of line number lookups in GOTO/GOSUB and FOR...NEXT loops. In Atari BASIC, any GOTO searches the entire program for the provided line number, and FOR...NEXT loops use the same code. Microsoft BASIC simply jumps to a FOR statement via its address. The BASIC XL FAST command replaces constant targets of GOTO/GOSUB/NEXT with addresses. This gives a huge performance boost, making loops run as fast as Microsoft BASIC, and the program as a whole even faster. The downside is that an address becomes invalid if the program is edited during runtime, preventing it from being CONTinued, unlike Atari BASIC which generally allows this after any edit.
Antic in 1984 stated that "BASIC XL is the fastest and most powerful version of BASIC available for Atari computers", with "exceptional" documentation. The magazine concluded that "This is the language that should be built into Atari computers. Is anyone at Atari listening?"

### BASIC XE

BASIC XE is an enhanced version of the BASIC XL bank-selected cartridge, with additional functions and high-speed math routines. Because it requires 64KB, it only runs on an XL/XE systems. A runtime package was not released. The BASIC XL runtime can be used, but restricted to XL functions.

## Assemblers
### EASMD

EASMD (Edit/ASseMble/Debug) is the first editor/assembler from OSS. Based on the original Atari Assembler Editor, it was released in 1981 on disk. It was superseded by MAC/65.

### MAC/65

MAC/65 is a 6502 editor and assembler originally released on disk in 1982, then on a bank-switched "supercartridge" in 1983 which includes an integrated debugger (DDT). Like Atari BASIC, MAC/65 uses line-numbered source code and tokenizes each line as it is entered. It is significantly faster than Atari's assemblers. The MAC/65 Toolkit disk contains additional code and examples.

### BUG/65

BUG/65 is a machine language debugger. It was initially included with MAC/65, but the cartridge-based version of the assembler added its own debugger, DDT. BUG/65 was later added to DOS XL.

## Other languages
### Action!

A cartridge-based development system for a readable ALGOL-like language that compiles to efficient 6502 code. Action! combines a full-screen editor with a compiler that generates code directly to memory without involving disk access. The language found a niche for being over a hundred times faster than Atari BASIC, but much easier to program in than assembly language. Compiled Action! programs require the cartridge to be present, because standard library functions are on the cartridge. The separately available Action! Run-Time Package overcomes this limitation and allows distribution of Action!-compiled projects.
The Action! Toolkit (originally called the Programmer's Aid Disk, or PAD) contains additional code and examples for use with the Action! language.

### C/65

C/65 is a compiler developed by LightSpeed Software for a subset of the C programming language. C/65 outputs assembly source code. An assembler like MAC/65 is needed to create an executable file.

### Tiny C

Tiny C, stylized as tiny-c, is an interpreter for a subset of the C programming language; it was developed by Tiny C Associates.

### Personal Pascal

A one-pass, machine code generating compiler for the Pascal language developed by J. Lohse for the Atari ST and released by OSS in 1987. It came with a 500+ page manual.

## Applications
### The Writer's Tool

A word processing application available in a bank-selected cartridge and a double-sided disk (master disk on one side, dictionary disk on the other side). It was developed by Madison Micro and published by OSS in 1984. According to Bill Wilkinson, OSS was already building a word processor, but stopped when The Writer's Tool was submitted.

### SpeedRead+

SpeedRead+ is a speed reading tutor developed for the Atari 8-bit and Apple II computers.

## Sales

According to Bill Wilkinson, OSS sold about 12,000 copies of Basic XL before the ICD merger. Basic XL outsold Action! by about 2.5 or 3 to 1. MAC/65 outsold Action! by about 1.5 to 1. Basic XE sold poorly and lost money. Personal Pascal sold over 10,000 copies.