The Assembly Language Development System (ALDS) - History

[Copyright 2004,2005,2007,2011 Frank Durda IV, All Rights Reserved.
Mirroring of this web page in any form is expressly prohibited.
The official web site for this material is:  http://nemesis.lonestar.org
Contact this address for use clearances: clearance at nemesis.lonestar.org
Comments and queries to this address: web_software_2011 at nemesis.lonestar.org]

The genesis of ALDS

In the earliest days of software development at Tandy, the Z80 assembly language development for the TRS-80 and Tandy brands of personal computers work was done using a few different packages, including EDTASM, and one or more Z80 cross-assemblers (probably commercial products) that ran on a Tandem mainframe.

The Tandem mainframe was owned and operated by the Tandy Data Processing department, known internally simply as "DP", and the main functions of DP was to print pay checks, key-punch data from stores and tally store sales. In the first few years of the TRS-80 product line, the DP department had some spare computer time, so the early TRS-80 developers were allowed to use these systems. In addition, some smaller products were developed and assembled using the TRS-80s themselves, but at the time these were all floppy-based systems, and that greatly limited how large of a product could be produced using such a small development system.

At this time, the Z80-based computers being used had between 100K and 500K of storage available on each floppy diskette, and you really only had three disk drives you could use for software development at any moment (with the fourth drive consumed with the operating system and maybe the assembler itself). Therefore, the small amount of diskette storage was the main restriction, and anything that could be done to divide that up was a great help.

Around 1980, the TRS-80 software developers were ordered to get off the mainframe computers in DP because they were using too much of the available resources. To replace the development platform that was still needed for assembling large programs, a Digital Equipment Corporation VAX 11/780 was purchased in 1980 or early 1981 specifically for Tandy Software Design (TSD). The VAX system ran the VMS operating system up until the fall of 1982, when it was converted to BSD 4.1 UNIX. The VAX, known as "trsvax" and later known as "trsvax.tandy.com" was upgraded to BSD 4.3 in the mid-1980s and continued to run BSD UNIX until it left service in 1990. (The functions of trsvax were migrated to a 386-based PC running SCO UNIX, which continued in service until 1996.)

Initially, commercial third-party assemblers were used on the VAX. In addition, a few C compilers were tried that the early developers experimented with and used for writing in-house tools.

(Despite there being a number of C compilers purchased by TSD during the VMS period, there is no evidence that any software developed and sold by Tandy was written in C prior to the end of 1982. The first known program written in "C" that was sold by Tandy was the tx file transfer utility. It was originally developed for UNOS, but was eventually ported to and bundled with XENIX for the Model 16.)

At some point, Ron Light (who was one of the programmers in TSD) developed a Z80-assembler and linker for use on the VAX. It remains unclear whether this was a sanctioned project or one or the numerous "black projects" developed outside official channels that were common within TSD.

Ron's assembler and linker were known simply as "ALDS", and gradually grew into a fairly sophisticated system, complete with a full-featured assembler macro and relocation capabilities, as well as a linker for building even more complex programs. Notably, the linker was very useful in creating the overlays common to the operating systems of that period.

ALDS was written in C, and was initially used on the VAX VMS platform. Later it was ported again with minimal changes to the BSD UNIX operating system running on the same VAX 11/780. Years later, a small port of the BSD UNIX version allowed ALDS to be run on the Tandy 68000 XENIX operating systems with its PCC (Portable C Compiler), and finally ported to compile on GCC (GNU C Compiler) under the FreeBSD UNIX environment.

Most of what became known as TRSDOS-II (Tandy's operating system for the Model II/12 family) and the Z80 components of TRSDOS-16 were written using the "ALDS" assembler and linker on the VAX server, and for a few more years, most Tandy Z80 programs were assembled using this platform. There were even some unexpected products, like a mini-telephone PBX system (known internally as Project 20) which relied on the ALDS cross-platform development capabilities. Because of this continued use of ALDS within Tandy through the mid-1980s, additional features and support for new processors were added, along with bug fixes.

Sadly, Ron Light was killed in a traffic accident in May of 1989. He was one of three programmers from the early Tandy Computers days to die in separate traffic accidents over the years.

ALDS becomes a consumer product

In late 1981, Tandy began selling an 8 Megabyte hard disk system that could be connected to the Model II system, using TRSDOS-II. This now made it somewhat practical to assemble large programs on the Model II systems, and it was eventually decided to do a port of the ALDS assembler to these Z80-based systems.

Initially, the plan was to find a "C" compiler suitable for the TRSDOS environment, but after much searching, none could be found that would meet all the demands placed on it. So the decision was made to have programmers write Z80 assembly language code that would mimic each function of the original "C" ALDS assembler and linker. Some features were clearly unnecessary (like having the assembler be able to send e-mail once the assembly was complete), so a number of the existing ALDS assembly options were not included in the Z80 implementation.

Exactly who this development was originally meant for is not clear. There was a desire to be able to do assembly on the desktops, without having to deal with the user limits imposed by the VAX VMS operating system (another reason for the subsequent switch to BSD UNIX), and it was also thought some third party developers might benefit from having a native assembler available.

Based on the realization that now the TRS-80 themselves could finally be used to put together fairly complex assembly-language packages (particularly if developers bought some of those 8 Megabyte hard disk drives that Tandy was selling for $5,999 US), Tandy decided to package, expand and sell the Z80 assembler and linker, plus develop some additional tools to round out the package. The combined package was also called "ALDS", and around 1982, Tandy began to market ALDS for the Model II environment through the Radio Shack stores. Versions of ALDS for the Model III, and Model 4 were eventually prepared and sold.

The consumer ALDS package included the ALDS assembler (now coded in Z80 assembly language and now named ALASM), the Z80-assembly language version of the linker (now named ALLINK), a screen-based debugging system (ALDEBUG), a screen-based editor (ALEDIT), and a simple file transfer utility for moving files and programs between these four platforms (ALTRAN).

The ALEDIT, ALDEBUG and ALTRAN components of the ALDS system were initially developed in 1981 and 1982 mainly for the retail product, but were simultaneously being used in-house to develop other software. These components were never written in "C" for the VAX, mainly because both VAX operating systems came with editors, and each had at least one file transfer utility. In addition to writing the new tools that formed the consumer ALDS product, the original assembler and linker received some clean-up and polishing, as well as the inevitable introduction of a few bugs that the C-based version did not have.

Developers of Model 4 port of ALDS

In my first year at Tandy, I got to test the Model 4 version of ALDS, along with other members of the Quality Assurance department, where I worked at that time. I had already been using the Model II version for development of programs to test operating systems. The testing work on the Model 4 ALDS version occurred in March and April of 1983, with the Model 4 computer itself being announced to the public during March 1983.

I still have some of the Software Performance Reports from the Model 4 ALDS testing effort, and these reports provide some details on who was doing development on ALDS at that time. (The phrase "Software Performance Reports (or SPR) was the title of the forms that Digital Equipment Corporation made customers fill out in order to report bugs that the customer found in DECs software or hardware. This phrase was more politically correct and generic than 'Bug Report" form, so I got TSD-QA to use this instead of the handwritten forms used previously.)

Based on the Tandy SPRs, Richard Hay was probably the project leader for Model 4 ALDS port, and Larry West was also working on the package. I'm pretty sure that Carole Walton was also working on ALDS components, although her name does not appear on any of the Model 4 reports I still have.

The QA testers included myself, George Moore, Jim R., Kim Hoffpauir, and Shauna McManigal. (Kim and Jim appear to have generated the bulk of the problem reports on this product.)

The Model 4 version was essentially a port of the Model II version, but because the two operating systems were very different, a lot of work had to be re-done, particularly in the area of the debugger, screen editor and transfer utility. In addition to Mr, Hay, West and Mrs Walton, I am sure that there were other engineers working on the Model 4 ALDS project at various times. However, Richard responded to most of the SPRs instead of the individual engineers, so I don't have any further information.

It should be noted that a Model III version of ALDS was also produced, but it came out after the Model II and Model 4 versions did. The Model 4 version had priority in order to help boost the number of software titles available for that new computer system.

Possible Pre-Tandy source of concepts for the ALDS assembler (ALASM)

In 1990, I was cleaning out a filing closet at Tandy that was full of old Z80 and 68000 software-related materials that dated back to 1978. In this material (that management had now ordered be discarded simply because it was there), I came across a binder marked "ALDS Base Paper". Inside the binder was a short article published by BYTE magazine in 1979, with the title "A Z80 Assembler", written by Patrick A Crowe, then of Swindon England. The title on the binder interested me, so I saved these papers. These documents eventually got stored in a box of other Model 4 stuff, where it remained forgotten for many years.

In 2004, a review of the 1979 article suggests that it could have contributed some of the ideas behind the development of the ALASM component ALDS. In my opinion, both programs use some common terminology internally, but they are not copies of one another.

The comparison makes it pretty clear that ALASM is not copied from Mr. Crowes absolute-only assembler. That was originally written in Z80 assembler, while the original alds assembler was written in C. Further, the similarity of terminology that is seen may come from other common sources, as Mr. Crowe credits assembler structure information that he found in Zilog and Intel application manuals that Tandy engineers of that period would have also possessed.

It should also be mentioned that Mr. Crowes assembler produced absolute binary format files only and had no relocation/linker or macro capabilities, these features existed in the original "C" version of ALDS, and an editor, debugger and file transfer utility were added to ALDS for the Model II, Model III and Model 4 versions.


Return to the Assembly Language Development System index (HTML)

Visit the nemesis.lonestar.org home page and index

Valid HTML 4.01!

[Copyright 2004,2005,2007,2011 Frank Durda IV, All Rights Reserved.
Mirroring of this web page in any form is expressly prohibited.
The official web site for this material is:  http://nemesis.lonestar.org
Contact this address for use clearances: clearance at nemesis.lonestar.org
Comments and queries to this address: web_software_2011 at nemesis.lonestar.org]