Original author(s) | Leor Zolman |
---|---|
Initial release | 1979 |
Stable release | 1.60c |
Operating system | CP/M |
Type | Compiler |
License | Public domain |
Website | www |
BDS C (or the BD Software C Compiler) is a compiler for a sizeable subset of the C programming language, that ran on and generated code for the Intel 8080 and Zilog Z80 processors. It was the first C compiler for CP/M. [1] It was written by Leor Zolman [2] and first released in 1979 when he was 20 years old. "BDS" stands for "Brain Damage Software." [3]
BDS C was popular and influential among CP/M users and developers. It ran much faster than other Z80-hosted compilers. It was possible to run BDS C on single-floppy machines with as little as 30K of RAM in comparison to most other commercial compilers which required many passes and the writing of intermediate files to disk.
Weak points of BDS C were that the floating point math routines and the file access functions were incompatible with the C compiler used on UNIX, and that its relocatable object files were incompatible with the Microsoft MACRO-80 assembler, making it more difficult to integrate C code with assembly language. [4]
BDS C was bundled with a subset of the Unix system written in about 1980, called MARC (Machine Assisted Resource Coordinator). This effort in some ways resembled GNU, though MARC was to be able to run CP/M software through emulation. Unfortunately MARC's author, Ed Ziemba, perished in a snorkeling accident before he could complete the project. [5]
In 2002, Leor Zolman released the 8080 assembly language source code for BDS C, along with the sources of 8080 assembler and linking tool, into the public domain.
Around 75,000 copies were sold, including a stripped down Japanese version.
A number of commercial CP/M products were written in the BDS C subset of the C language, including PeachText from PeachTree Software, MINCE and Scribble from Mark of the Unicorn, [1] and most of the software in the Perfect Software suite including Perfect Writer, PerfectCalc, PerfectSpeller, and PerfectFiler (which suite was bundled with the Kaypro).
The Zilog Z80 is an 8-bit microprocessor designed by Zilog that played an important role in the evolution of early computing. Software-compatible with the Intel 8080, it offered a compelling alternative due to its better integration and increased performance. As well as the 8080's seven registers and flags register, the Z80 had an alternate register set that duplicated them, two 16-bit index registers and additional instructions including bit manipulation and block copy/search.
CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/85-based microcomputers by Gary Kildall of Digital Research, Inc. CP/M is a disk operating system and its purpose is to organize files on a magnetic storage medium, and to load and run programs stored on a disk. Initially confined to single-tasking on 8-bit processors and no more than 64 kilobytes of memory, later versions of CP/M added multi-user variations and were migrated to 16-bit processors.
Zilog, Inc. is an American manufacturer of microprocessors, microcontrollers, and application-specific embedded system-on-chip (SoC) products.
The Commodore 128, also known as the C128, C-128, or C= 128, is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the CES in Las Vegas, it appeared three years after its predecessor, the Commodore 64, the bestselling computer of the 1980s. Approximately 2.5 million C128s were sold during its four year production run.
The Lattice C Compiler was released in June 1982 by Lifeboat Associates and was the first C compiler for the IBM Personal Computer. The compiler sold for $500 and would run on PC DOS or MS-DOS. The first hardware requirements were given as 96KB of RAM and one floppy drives. It was ported to many other platforms, such as mainframes (MVS), minicomputers (VMS), workstations (UNIX), OS/2, the Commodore Amiga, Atari ST and the Sinclair QL.
Small-C is both a subset of the C programming language, suitable for resource-limited microcomputers and embedded systems, and an implementation of that subset. Originally valuable as an early compiler for microcomputer systems available during the late 1970s and early 1980s, the implementation has also been useful as an example simple enough for teaching purposes.
Microsoft BASIC is the foundation software product of the Microsoft company and evolved into a line of BASIC interpreters and compiler(s) adapted for many different microcomputers. It first appeared in 1975 as Altair BASIC, which was the first version of BASIC published by Microsoft as well as the first high-level programming language available for the Altair 8800 microcomputer.
A fat binary is a computer executable program or library which has been expanded with code native to multiple instruction sets which can consequently be run on multiple processor types. This results in a file larger than a normal one-architecture binary file, thus the name.
A COM file is a type of simple executable file. On the Digital Equipment Corporation (DEC) VAX operating systems of the 1970s, .COM
was used as a filename extension for text files containing commands to be issued to the operating system. With the introduction of Digital Research's CP/M, the type of files commonly associated with COM extension changed to that of executable files. This convention was later carried over to DOS. Even when complemented by the more general EXE file format for executables, the compact COM files remained viable and frequently used under DOS.
This is an incomplete comparison of assemblers. Some assemblers are components of a compiler system for a high-level programming language and may have limited or no usable functionality outside of the compiler system. Some assemblers are hosted on the target processor and operating system, while other assemblers (cross-assemblers) may run under an unrelated operating system or processor. For example, assemblers for embedded systems are not usually hosted on the target system since it would not have the storage and terminal I/O to permit entry of a program from a keyboard. An assembler may have a single target processor or may have options to support multiple processor types.
A source-to-source translator, source-to-source compiler, transcompiler, or transpiler is a type of translator that takes the source code of a program written in a programming language as its input and produces an equivalent source code in the same or a different programming language. A source-to-source translator converts between programming languages that operate at approximately the same level of abstraction, while a traditional compiler translates from a higher level programming language to a lower level programming language. For example, a source-to-source translator may perform a translation of a program from Python to JavaScript, while a traditional compiler translates from a language like C to assembly or Java to bytecode. An automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations or language constructs.
MSX-DOS is a discontinued disk operating system developed by Microsoft's Japan subsidiary for the 8-bit home computer standard MSX, and is a cross between MS-DOS v1.25 and CP/M-80 v2.2.
The Z-80 SoftCard is a plug-in Apple II processor card developed by Microsoft to turn the computer into a CP/M system based upon the Zilog Z80 central processing unit (CPU). Becoming the most popular CP/M platform and Microsoft's top revenue source for 1980, it was eventually renamed the Microsoft SoftCard, and was succeeded by Microsoft's Premium Softcard IIe for the Apple IIe.
A BBC Micro expansion unit, for the BBC Micro is one of a number of peripherals in a box with the same profile and styling as the main computer.
Vedit is a commercial text editor for 8080/Z-80-based systems, Microsoft Windows and MS-DOS from Greenview Data, Inc.
Torch Computers Ltd was a computer hardware company with origins in a 1982 joint venture between Acorn Computers and Climar Group that led to the development of the Communicator or C-series computer, a system based on the BBC Micro with a Z80 second processor and integral modem, intended as a viewdata terminal.
MINCE is a text editor, originally created for 8080-based microcomputers running the CP/M operating system. Later versions of MINCE were available for GEMDOS on the Atari ST, VAX/VMS, RSX-11, and various flavors of Unix.
Perfect Writer is a word processor computer program published by Perfect Software for CP/M. In 1984, Thorn EMI Computer Software acquired an exclusive marketing and distribution licence for Perfect Software's products, and the program was rewritten and released as Perfect II for IBM PC compatible computers. Written in C and famous for its stability, it was an enhanced version of MINCE, which itself was a version of Emacs for microcomputer platforms. Emacs itself was too heavyweight to fit within the 64 KB RAM limit of most microcomputers. Like MINCE, it included a floppy disk based virtual memory system.
BDS-C was the first version of C on the market for CP/M. It has evolved over the years into a very bug-free product preferred by many users. The language is not as complete as the one described by Kernighan and Ritchie's The C Programming Language (Prentice-Hall, 1978), but it does contain a large subset of the important features.